man wordpress + plugins order post + slideshow
authorAnthony Ly <anthonyly.com@gmail.com>
Wed, 19 Dec 2012 17:46:52 -0800
changeset 204 09a1c134465b
parent 203 f507feede89a
child 205 a4f7897e21a9
man wordpress + plugins order post + slideshow
web/.htpasswd
web/wp-activate.php
web/wp-admin/about.php
web/wp-admin/admin-ajax.php
web/wp-admin/admin-footer.php
web/wp-admin/admin-header.php
web/wp-admin/admin.php
web/wp-admin/async-upload.php
web/wp-admin/credits.php
web/wp-admin/css/color-picker-rtl.css
web/wp-admin/css/color-picker-rtl.min.css
web/wp-admin/css/color-picker.css
web/wp-admin/css/color-picker.min.css
web/wp-admin/css/colors-classic.css
web/wp-admin/css/colors-classic.dev.css
web/wp-admin/css/colors-classic.min.css
web/wp-admin/css/colors-fresh.css
web/wp-admin/css/colors-fresh.dev.css
web/wp-admin/css/colors-fresh.min.css
web/wp-admin/css/customize-controls-rtl.css
web/wp-admin/css/customize-controls-rtl.dev.css
web/wp-admin/css/customize-controls-rtl.min.css
web/wp-admin/css/customize-controls.css
web/wp-admin/css/customize-controls.dev.css
web/wp-admin/css/customize-controls.min.css
web/wp-admin/css/ie-rtl.css
web/wp-admin/css/ie-rtl.dev.css
web/wp-admin/css/ie-rtl.min.css
web/wp-admin/css/ie.css
web/wp-admin/css/ie.dev.css
web/wp-admin/css/ie.min.css
web/wp-admin/css/install.css
web/wp-admin/css/install.dev.css
web/wp-admin/css/install.min.css
web/wp-admin/css/media-rtl.css
web/wp-admin/css/media-rtl.dev.css
web/wp-admin/css/media-rtl.min.css
web/wp-admin/css/media.css
web/wp-admin/css/media.dev.css
web/wp-admin/css/media.min.css
web/wp-admin/css/wp-admin-rtl.css
web/wp-admin/css/wp-admin-rtl.dev.css
web/wp-admin/css/wp-admin-rtl.min.css
web/wp-admin/css/wp-admin.css
web/wp-admin/css/wp-admin.dev.css
web/wp-admin/css/wp-admin.min.css
web/wp-admin/custom-background.php
web/wp-admin/custom-header.php
web/wp-admin/customize.php
web/wp-admin/edit-comments.php
web/wp-admin/edit-form-advanced.php
web/wp-admin/edit-form-comment.php
web/wp-admin/edit-link-form.php
web/wp-admin/edit-tag-form.php
web/wp-admin/edit-tags.php
web/wp-admin/edit.php
web/wp-admin/export.php
web/wp-admin/freedoms.php
web/wp-admin/gears-manifest.php
web/wp-admin/images/align-center-2x.png
web/wp-admin/images/align-center.png
web/wp-admin/images/align-left-2x.png
web/wp-admin/images/align-left.png
web/wp-admin/images/align-none-2x.png
web/wp-admin/images/align-none.png
web/wp-admin/images/align-right-2x.png
web/wp-admin/images/align-right.png
web/wp-admin/images/archive-link.png
web/wp-admin/images/arrows-2x.png
web/wp-admin/images/arrows-dark-2x.png
web/wp-admin/images/arrows-dark-vs-2x.png
web/wp-admin/images/arrows-dark-vs.png
web/wp-admin/images/arrows-dark.png
web/wp-admin/images/arrows-vs-2x.png
web/wp-admin/images/arrows-vs.png
web/wp-admin/images/arrows.png
web/wp-admin/images/blue-grad.png
web/wp-admin/images/bubble_bg-2x.gif
web/wp-admin/images/bubble_bg-rtl-2x.gif
web/wp-admin/images/button-grad-active.png
web/wp-admin/images/button-grad.png
web/wp-admin/images/comment-grey-bubble-2x.png
web/wp-admin/images/comment-grey-bubble.png
web/wp-admin/images/date-button-2x.gif
web/wp-admin/images/date-button.gif
web/wp-admin/images/ed-bg-vs.gif
web/wp-admin/images/ed-bg.gif
web/wp-admin/images/fade-butt.png
web/wp-admin/images/fav-arrow-rtl.gif
web/wp-admin/images/fav-arrow.gif
web/wp-admin/images/fav-vs.png
web/wp-admin/images/fav.png
web/wp-admin/images/generic.png
web/wp-admin/images/gray-grad.png
web/wp-admin/images/icons32-2x.png
web/wp-admin/images/icons32-vs-2x.png
web/wp-admin/images/icons32-vs.png
web/wp-admin/images/icons32.png
web/wp-admin/images/imgedit-icons-2x.png
web/wp-admin/images/imgedit-icons.png
web/wp-admin/images/list-2x.png
web/wp-admin/images/list.png
web/wp-admin/images/loading-publish.gif
web/wp-admin/images/logo-ghost.png
web/wp-admin/images/logo.gif
web/wp-admin/images/marker.png
web/wp-admin/images/mask.png
web/wp-admin/images/media-button-2x.png
web/wp-admin/images/media-button.png
web/wp-admin/images/menu-2x.png
web/wp-admin/images/menu-arrow-frame-rtl.png
web/wp-admin/images/menu-arrow-frame.png
web/wp-admin/images/menu-arrows.gif
web/wp-admin/images/menu-bits-rtl-vs.gif
web/wp-admin/images/menu-bits-rtl.gif
web/wp-admin/images/menu-bits-vs.gif
web/wp-admin/images/menu-bits.gif
web/wp-admin/images/menu-dark-rtl-vs.gif
web/wp-admin/images/menu-dark-rtl.gif
web/wp-admin/images/menu-dark-vs.gif
web/wp-admin/images/menu-dark.gif
web/wp-admin/images/menu-shadow-rtl.png
web/wp-admin/images/menu-shadow.png
web/wp-admin/images/menu-vs-2x.png
web/wp-admin/images/menu-vs.png
web/wp-admin/images/menu.png
web/wp-admin/images/no.png
web/wp-admin/images/press-this-2x.png
web/wp-admin/images/press-this.png
web/wp-admin/images/required.gif
web/wp-admin/images/resize-2x.gif
web/wp-admin/images/resize-rtl-2x.gif
web/wp-admin/images/screen-options-toggle-vs.gif
web/wp-admin/images/screen-options-toggle.gif
web/wp-admin/images/screenshots/about-color-picker.png
web/wp-admin/images/screenshots/about-media.png
web/wp-admin/images/screenshots/about-retina.png
web/wp-admin/images/screenshots/about-twenty-twelve.png
web/wp-admin/images/screenshots/captions-1.png
web/wp-admin/images/screenshots/captions-2.png
web/wp-admin/images/screenshots/flex-header-1.png
web/wp-admin/images/screenshots/flex-header-2.png
web/wp-admin/images/screenshots/flex-header-3.png
web/wp-admin/images/screenshots/flex-header-media-library.png
web/wp-admin/images/screenshots/theme-customizer.png
web/wp-admin/images/screenshots/twitter-embed-1.png
web/wp-admin/images/screenshots/twitter-embed-2.png
web/wp-admin/images/se.png
web/wp-admin/images/sort-2x.gif
web/wp-admin/images/stars-2x.png
web/wp-admin/images/stars-rtl-2x.png
web/wp-admin/images/stars-rtl.png
web/wp-admin/images/stars.png
web/wp-admin/images/toggle-arrow-rtl.gif
web/wp-admin/images/toggle-arrow.gif
web/wp-admin/images/upload-classic.png
web/wp-admin/images/upload-fresh.png
web/wp-admin/images/welcome-icons-2x.png
web/wp-admin/images/welcome-icons.png
web/wp-admin/images/wheel.png
web/wp-admin/images/white-grad-active.png
web/wp-admin/images/white-grad.png
web/wp-admin/images/widgets-arrow-vs.gif
web/wp-admin/images/widgets-arrow.gif
web/wp-admin/images/wordpress-logo.png
web/wp-admin/images/wp-badge.png
web/wp-admin/images/wp-logo-2x.png
web/wp-admin/images/wp-logo-vs-2x.png
web/wp-admin/images/wp-logo-vs.png
web/wp-admin/images/wp-logo.png
web/wp-admin/images/wpspin_dark.gif
web/wp-admin/images/wpspin_light-2x.gif
web/wp-admin/images/xit-2x.gif
web/wp-admin/images/yes.png
web/wp-admin/import.php
web/wp-admin/includes/ajax-actions.php
web/wp-admin/includes/bookmark.php
web/wp-admin/includes/class-wp-comments-list-table.php
web/wp-admin/includes/class-wp-filesystem-base.php
web/wp-admin/includes/class-wp-filesystem-ftpext.php
web/wp-admin/includes/class-wp-filesystem-ftpsockets.php
web/wp-admin/includes/class-wp-importer.php
web/wp-admin/includes/class-wp-links-list-table.php
web/wp-admin/includes/class-wp-list-table.php
web/wp-admin/includes/class-wp-media-list-table.php
web/wp-admin/includes/class-wp-ms-sites-list-table.php
web/wp-admin/includes/class-wp-ms-themes-list-table.php
web/wp-admin/includes/class-wp-ms-users-list-table.php
web/wp-admin/includes/class-wp-plugin-install-list-table.php
web/wp-admin/includes/class-wp-plugins-list-table.php
web/wp-admin/includes/class-wp-posts-list-table.php
web/wp-admin/includes/class-wp-terms-list-table.php
web/wp-admin/includes/class-wp-theme-install-list-table.php
web/wp-admin/includes/class-wp-themes-list-table.php
web/wp-admin/includes/class-wp-upgrader.php
web/wp-admin/includes/class-wp-users-list-table.php
web/wp-admin/includes/dashboard.php
web/wp-admin/includes/deprecated.php
web/wp-admin/includes/export.php
web/wp-admin/includes/file.php
web/wp-admin/includes/image-edit.php
web/wp-admin/includes/image.php
web/wp-admin/includes/import.php
web/wp-admin/includes/list-table.php
web/wp-admin/includes/manifest.php
web/wp-admin/includes/media.php
web/wp-admin/includes/meta-boxes.php
web/wp-admin/includes/misc.php
web/wp-admin/includes/ms-deprecated.php
web/wp-admin/includes/ms.php
web/wp-admin/includes/nav-menu.php
web/wp-admin/includes/plugin-install.php
web/wp-admin/includes/plugin.php
web/wp-admin/includes/post.php
web/wp-admin/includes/schema.php
web/wp-admin/includes/screen.php
web/wp-admin/includes/template.php
web/wp-admin/includes/theme-install.php
web/wp-admin/includes/theme.php
web/wp-admin/includes/update-core.php
web/wp-admin/includes/update.php
web/wp-admin/includes/upgrade.php
web/wp-admin/includes/user.php
web/wp-admin/includes/widgets.php
web/wp-admin/index.php
web/wp-admin/install.php
web/wp-admin/js/cat.dev.js
web/wp-admin/js/cat.js
web/wp-admin/js/cat.min.js
web/wp-admin/js/categories.dev.js
web/wp-admin/js/categories.js
web/wp-admin/js/categories.min.js
web/wp-admin/js/color-picker.js
web/wp-admin/js/color-picker.min.js
web/wp-admin/js/comment.dev.js
web/wp-admin/js/comment.js
web/wp-admin/js/comment.min.js
web/wp-admin/js/common.dev.js
web/wp-admin/js/common.js
web/wp-admin/js/common.min.js
web/wp-admin/js/custom-background.dev.js
web/wp-admin/js/custom-background.js
web/wp-admin/js/custom-background.min.js
web/wp-admin/js/custom-fields.dev.js
web/wp-admin/js/custom-fields.js
web/wp-admin/js/custom-fields.min.js
web/wp-admin/js/custom-header.js
web/wp-admin/js/customize-controls.dev.js
web/wp-admin/js/customize-controls.js
web/wp-admin/js/customize-controls.min.js
web/wp-admin/js/dashboard.dev.js
web/wp-admin/js/dashboard.js
web/wp-admin/js/dashboard.min.js
web/wp-admin/js/edit-comments.dev.js
web/wp-admin/js/edit-comments.js
web/wp-admin/js/edit-comments.min.js
web/wp-admin/js/editor.dev.js
web/wp-admin/js/editor.js
web/wp-admin/js/editor.min.js
web/wp-admin/js/gallery.dev.js
web/wp-admin/js/gallery.js
web/wp-admin/js/gallery.min.js
web/wp-admin/js/image-edit.dev.js
web/wp-admin/js/image-edit.js
web/wp-admin/js/image-edit.min.js
web/wp-admin/js/inline-edit-post.dev.js
web/wp-admin/js/inline-edit-post.js
web/wp-admin/js/inline-edit-post.min.js
web/wp-admin/js/inline-edit-tax.dev.js
web/wp-admin/js/inline-edit-tax.js
web/wp-admin/js/inline-edit-tax.min.js
web/wp-admin/js/iris.min.js
web/wp-admin/js/link.dev.js
web/wp-admin/js/link.js
web/wp-admin/js/link.min.js
web/wp-admin/js/media-gallery.dev.js
web/wp-admin/js/media-gallery.js
web/wp-admin/js/media-gallery.min.js
web/wp-admin/js/media-upload.dev.js
web/wp-admin/js/media-upload.js
web/wp-admin/js/media-upload.min.js
web/wp-admin/js/media.dev.js
web/wp-admin/js/media.js
web/wp-admin/js/media.min.js
web/wp-admin/js/nav-menu.dev.js
web/wp-admin/js/nav-menu.js
web/wp-admin/js/nav-menu.min.js
web/wp-admin/js/password-strength-meter.dev.js
web/wp-admin/js/password-strength-meter.js
web/wp-admin/js/password-strength-meter.min.js
web/wp-admin/js/plugin-install.dev.js
web/wp-admin/js/plugin-install.js
web/wp-admin/js/plugin-install.min.js
web/wp-admin/js/post.dev.js
web/wp-admin/js/post.js
web/wp-admin/js/post.min.js
web/wp-admin/js/postbox.dev.js
web/wp-admin/js/postbox.js
web/wp-admin/js/postbox.min.js
web/wp-admin/js/set-post-thumbnail.dev.js
web/wp-admin/js/set-post-thumbnail.js
web/wp-admin/js/set-post-thumbnail.min.js
web/wp-admin/js/tags.dev.js
web/wp-admin/js/tags.js
web/wp-admin/js/tags.min.js
web/wp-admin/js/theme-preview.dev.js
web/wp-admin/js/theme-preview.js
web/wp-admin/js/theme-preview.min.js
web/wp-admin/js/theme.dev.js
web/wp-admin/js/theme.js
web/wp-admin/js/theme.min.js
web/wp-admin/js/user-profile.dev.js
web/wp-admin/js/user-profile.js
web/wp-admin/js/user-profile.min.js
web/wp-admin/js/user-suggest.dev.js
web/wp-admin/js/user-suggest.js
web/wp-admin/js/user-suggest.min.js
web/wp-admin/js/utils.dev.js
web/wp-admin/js/utils.js
web/wp-admin/js/widgets.dev.js
web/wp-admin/js/widgets.js
web/wp-admin/js/widgets.min.js
web/wp-admin/js/word-count.dev.js
web/wp-admin/js/word-count.js
web/wp-admin/js/word-count.min.js
web/wp-admin/js/wp-fullscreen.dev.js
web/wp-admin/js/wp-fullscreen.js
web/wp-admin/js/wp-fullscreen.min.js
web/wp-admin/js/xfn.dev.js
web/wp-admin/js/xfn.js
web/wp-admin/js/xfn.min.js
web/wp-admin/link.php
web/wp-admin/load-scripts.php
web/wp-admin/load-styles.php
web/wp-admin/maint/repair.php
web/wp-admin/media-new.php
web/wp-admin/media-upload.php
web/wp-admin/menu-header.php
web/wp-admin/menu.php
web/wp-admin/ms-delete-site.php
web/wp-admin/nav-menus.php
web/wp-admin/network.php
web/wp-admin/network/menu.php
web/wp-admin/network/settings.php
web/wp-admin/network/site-info.php
web/wp-admin/network/site-new.php
web/wp-admin/network/site-themes.php
web/wp-admin/network/site-users.php
web/wp-admin/network/sites.php
web/wp-admin/network/themes.php
web/wp-admin/network/upgrade.php
web/wp-admin/network/users.php
web/wp-admin/options-discussion.php
web/wp-admin/options-general.php
web/wp-admin/options-media.php
web/wp-admin/options-permalink.php
web/wp-admin/options-privacy.php
web/wp-admin/options-reading.php
web/wp-admin/options-writing.php
web/wp-admin/options.php
web/wp-admin/plugin-editor.php
web/wp-admin/plugin-install.php
web/wp-admin/plugins.php
web/wp-admin/post-new.php
web/wp-admin/post.php
web/wp-admin/press-this.php
web/wp-admin/setup-config.php
web/wp-admin/theme-editor.php
web/wp-admin/theme-install.php
web/wp-admin/themes.php
web/wp-admin/update-core.php
web/wp-admin/update.php
web/wp-admin/upgrade.php
web/wp-admin/upload.php
web/wp-admin/user-edit.php
web/wp-admin/user-new.php
web/wp-admin/users.php
web/wp-admin/widgets.php
web/wp-app.php
web/wp-config.php
web/wp-content/languages/admin-fr_FR.mo
web/wp-content/languages/admin-fr_FR.po
web/wp-content/languages/admin-network-fr_FR.mo
web/wp-content/languages/admin-network-fr_FR.po
web/wp-content/languages/continents-cities-fr_FR.mo
web/wp-content/languages/continents-cities-fr_FR.po
web/wp-content/languages/fr_FR.mo
web/wp-content/languages/fr_FR.po
web/wp-content/languages/themes/twentyeleven-fr_FR.mo
web/wp-content/languages/themes/twentyeleven-fr_FR.po
web/wp-content/languages/themes/twentyten-fr_FR.mo
web/wp-content/languages/themes/twentyten-fr_FR.po
web/wp-content/languages/themes/twentytwelve-fr_FR.mo
web/wp-content/languages/themes/twentytwelve-fr_FR.po
web/wp-content/plugins/akismet/admin.php
web/wp-content/plugins/akismet/akismet.js
web/wp-content/plugins/akismet/akismet.php
web/wp-content/plugins/akismet/readme.txt
web/wp-content/plugins/all-in-one-seo-pack/aioseop.class.php
web/wp-content/plugins/all-in-one-seo-pack/aioseop_functions.php
web/wp-content/plugins/all-in-one-seo-pack/all_in_one_seo_pack.php
web/wp-content/plugins/all-in-one-seo-pack/readme.txt
web/wp-content/plugins/bbpress/bbpress.php
web/wp-content/plugins/bbpress/includes/admin/tools.php
web/wp-content/plugins/bbpress/includes/admin/users.php
web/wp-content/plugins/bbpress/includes/common/template-tags.php
web/wp-content/plugins/bbpress/includes/core/theme-compat.php
web/wp-content/plugins/bbpress/includes/core/update.php
web/wp-content/plugins/bbpress/includes/extend/buddypress/activity.php
web/wp-content/plugins/bbpress/includes/extend/buddypress/functions.php
web/wp-content/plugins/bbpress/includes/extend/buddypress/group.php
web/wp-content/plugins/bbpress/includes/users/template-tags.php
web/wp-content/plugins/bbpress/readme.txt
web/wp-content/plugins/bbpress/templates/default/bbpress/user-details.php
web/wp-content/plugins/duplicator/css/images/ui-bg_glass_95_fef1ec_1x400.png
web/wp-content/plugins/duplicator/css/images/ui-icons_2e83ff_256x240.png
web/wp-content/plugins/duplicator/css/jquery-ui.css
web/wp-content/plugins/duplicator/css/style.css
web/wp-content/plugins/duplicator/define.php
web/wp-content/plugins/duplicator/duplicator.php
web/wp-content/plugins/duplicator/img/delete.png
web/wp-content/plugins/duplicator/inc/actions.php
web/wp-content/plugins/duplicator/inc/class.zip.php
web/wp-content/plugins/duplicator/inc/functions.php
web/wp-content/plugins/duplicator/inc/javascript.php
web/wp-content/plugins/duplicator/inc/page.about.php
web/wp-content/plugins/duplicator/inc/page.diag.php
web/wp-content/plugins/duplicator/inc/page.main.php
web/wp-content/plugins/duplicator/inc/page.support.php
web/wp-content/plugins/duplicator/inc/view.options.php
web/wp-content/plugins/duplicator/inc/view.system.php
web/wp-content/plugins/duplicator/js/jquery-ui.min.js
web/wp-content/plugins/duplicator/lang/WPDuplicator-de_DE.mo
web/wp-content/plugins/duplicator/lang/wpduplicator-de_DE.po
web/wp-content/plugins/duplicator/lang/wpduplicator.mo
web/wp-content/plugins/duplicator/lang/wpduplicator.pot
web/wp-content/plugins/duplicator/readme.txt
web/wp-content/plugins/duplicator/screenshot-3.jpg
web/wp-content/plugins/feedburner-plugin/fdfeedburner.php
web/wp-content/plugins/feedburner-plugin/languages/fdfeedburner-ru_RU.mo
web/wp-content/plugins/feedburner-plugin/languages/fdfeedburner-ru_RU.po
web/wp-content/plugins/feedburner-plugin/languages/fdfeedburner.pot
web/wp-content/plugins/feedburner-plugin/languages/makemofiles
web/wp-content/plugins/feedburner-plugin/readme.txt
web/wp-content/plugins/network-publisher/networkpub.css
web/wp-content/plugins/network-publisher/networkpub.js
web/wp-content/plugins/network-publisher/networkpub.php
web/wp-content/plugins/network-publisher/readme.txt
web/wp-content/plugins/page2cat/readme.txt
web/wp-content/plugins/pik-slider/pik-slider.php
web/wp-content/plugins/quick-pagepost-redirect-plugin/license.txt
web/wp-content/plugins/quick-pagepost-redirect-plugin/page_post_redirect_plugin.php
web/wp-content/plugins/quick-pagepost-redirect-plugin/readme.txt
web/wp-content/plugins/quick-pagepost-redirect-plugin/screenshot-1.jpg
web/wp-content/plugins/quick-pagepost-redirect-plugin/screenshot-2.jpg
web/wp-content/plugins/quick-pagepost-redirect-plugin/screenshot-3.jpg
web/wp-content/plugins/quick-pagepost-redirect-plugin/screenshot-4.jpg
web/wp-content/plugins/quick-pagepost-redirect-plugin/screenshot-5.jpg
web/wp-content/plugins/quick-pagepost-redirect-plugin/screenshot-6.jpg
web/wp-content/plugins/slideshow-jquery-image-gallery/classes/SlideshowPlugin.php
web/wp-content/plugins/slideshow-jquery-image-gallery/classes/SlideshowPluginAjax.php
web/wp-content/plugins/slideshow-jquery-image-gallery/classes/SlideshowPluginPostType.php
web/wp-content/plugins/slideshow-jquery-image-gallery/classes/SlideshowPluginSecurity.php
web/wp-content/plugins/slideshow-jquery-image-gallery/classes/SlideshowPluginShortcode.php
web/wp-content/plugins/slideshow-jquery-image-gallery/classes/SlideshowPluginSlideInserter.php
web/wp-content/plugins/slideshow-jquery-image-gallery/classes/SlideshowPluginUpload.php
web/wp-content/plugins/slideshow-jquery-image-gallery/classes/SlideshowPluginWidget.php
web/wp-content/plugins/slideshow-jquery-image-gallery/images/SlideshowPlugin/dark-arrows.png
web/wp-content/plugins/slideshow-jquery-image-gallery/images/SlideshowPlugin/dark-controlpanel.png
web/wp-content/plugins/slideshow-jquery-image-gallery/images/SlideshowPlugin/light-arrows.png
web/wp-content/plugins/slideshow-jquery-image-gallery/images/SlideshowPlugin/light-controlpanel.png
web/wp-content/plugins/slideshow-jquery-image-gallery/images/SlideshowPluginPostType/adminIcon.png
web/wp-content/plugins/slideshow-jquery-image-gallery/images/SlideshowPluginPostType/delete.png
web/wp-content/plugins/slideshow-jquery-image-gallery/images/SlideshowPluginPostType/draggable.png
web/wp-content/plugins/slideshow-jquery-image-gallery/images/SlideshowPluginPostType/no-img.png
web/wp-content/plugins/slideshow-jquery-image-gallery/images/SlideshowPluginSlideInserter/close.png
web/wp-content/plugins/slideshow-jquery-image-gallery/images/adminIcon.png
web/wp-content/plugins/slideshow-jquery-image-gallery/images/button-next.png
web/wp-content/plugins/slideshow-jquery-image-gallery/images/button-previous.png
web/wp-content/plugins/slideshow-jquery-image-gallery/images/no-img.png
web/wp-content/plugins/slideshow-jquery-image-gallery/js/SlideshowPlugin/slideshow.js
web/wp-content/plugins/slideshow-jquery-image-gallery/js/SlideshowPlugin/swfobject.js
web/wp-content/plugins/slideshow-jquery-image-gallery/js/SlideshowPluginFeedback/feedback.js
web/wp-content/plugins/slideshow-jquery-image-gallery/js/SlideshowPluginPostType/jscolor/arrow.gif
web/wp-content/plugins/slideshow-jquery-image-gallery/js/SlideshowPluginPostType/jscolor/cross.gif
web/wp-content/plugins/slideshow-jquery-image-gallery/js/SlideshowPluginPostType/jscolor/hs.png
web/wp-content/plugins/slideshow-jquery-image-gallery/js/SlideshowPluginPostType/jscolor/hv.png
web/wp-content/plugins/slideshow-jquery-image-gallery/js/SlideshowPluginPostType/jscolor/jscolor.js
web/wp-content/plugins/slideshow-jquery-image-gallery/js/SlideshowPluginPostType/post-type-handler.js
web/wp-content/plugins/slideshow-jquery-image-gallery/js/SlideshowPluginPostType/style-settings.js
web/wp-content/plugins/slideshow-jquery-image-gallery/js/SlideshowPluginShortcode/shortcode-inserter.js
web/wp-content/plugins/slideshow-jquery-image-gallery/js/SlideshowPluginSlideInserter/slide-inserter.js
web/wp-content/plugins/slideshow-jquery-image-gallery/js/SlideshowPluginUpload/upload-button.js
web/wp-content/plugins/slideshow-jquery-image-gallery/languages/slideshow-plugin-nl_NL.mo
web/wp-content/plugins/slideshow-jquery-image-gallery/languages/slideshow-plugin-nl_NL.po
web/wp-content/plugins/slideshow-jquery-image-gallery/languages/slideshow-plugin-ru_RU.mo
web/wp-content/plugins/slideshow-jquery-image-gallery/languages/slideshow-plugin-ru_RU.po
web/wp-content/plugins/slideshow-jquery-image-gallery/languages/slideshow-plugin-zh_CN.mo
web/wp-content/plugins/slideshow-jquery-image-gallery/languages/slideshow-plugin-zh_CN.po
web/wp-content/plugins/slideshow-jquery-image-gallery/readme.txt
web/wp-content/plugins/slideshow-jquery-image-gallery/screenshot-1.png
web/wp-content/plugins/slideshow-jquery-image-gallery/screenshot-2.png
web/wp-content/plugins/slideshow-jquery-image-gallery/screenshot-3.png
web/wp-content/plugins/slideshow-jquery-image-gallery/screenshot-4.png
web/wp-content/plugins/slideshow-jquery-image-gallery/screenshot-5.png
web/wp-content/plugins/slideshow-jquery-image-gallery/screenshot-6.png
web/wp-content/plugins/slideshow-jquery-image-gallery/slideshow.php
web/wp-content/plugins/slideshow-jquery-image-gallery/style/SlideshowPlugin/functional.css
web/wp-content/plugins/slideshow-jquery-image-gallery/style/SlideshowPlugin/style-custom.css
web/wp-content/plugins/slideshow-jquery-image-gallery/style/SlideshowPlugin/style-dark.css
web/wp-content/plugins/slideshow-jquery-image-gallery/style/SlideshowPlugin/style-light.css
web/wp-content/plugins/slideshow-jquery-image-gallery/style/SlideshowPlugin/style-transparent.css
web/wp-content/plugins/slideshow-jquery-image-gallery/style/SlideshowPluginSlideInserter/slide-inserter.css
web/wp-content/plugins/slideshow-jquery-image-gallery/views/SlideshowPlugin/slideshow.php
web/wp-content/plugins/slideshow-jquery-image-gallery/views/SlideshowPluginPostType/information.php
web/wp-content/plugins/slideshow-jquery-image-gallery/views/SlideshowPluginPostType/settings.php
web/wp-content/plugins/slideshow-jquery-image-gallery/views/SlideshowPluginPostType/slides.php
web/wp-content/plugins/slideshow-jquery-image-gallery/views/SlideshowPluginPostType/style-settings.php
web/wp-content/plugins/slideshow-jquery-image-gallery/views/SlideshowPluginPostType/support-plugin.php
web/wp-content/plugins/slideshow-jquery-image-gallery/views/SlideshowPluginShortcode/shortcode-inserter.php
web/wp-content/plugins/slideshow-jquery-image-gallery/views/SlideshowPluginSlideInserter/insert-image-button.php
web/wp-content/plugins/slideshow-jquery-image-gallery/views/SlideshowPluginSlideInserter/insert-text-button.php
web/wp-content/plugins/slideshow-jquery-image-gallery/views/SlideshowPluginSlideInserter/insert-video-button.php
web/wp-content/plugins/slideshow-jquery-image-gallery/views/SlideshowPluginSlideInserter/search-popup.php
web/wp-content/plugins/slideshow-jquery-image-gallery/views/SlideshowPluginUpload/upload-button.php
web/wp-content/plugins/slideshow-jquery-image-gallery/views/SlideshowPluginWidget/form.php
web/wp-content/plugins/social/assets/comments.css
web/wp-content/plugins/wordpress-importer/languages/wordpress-importer.pot
web/wp-content/plugins/wordpress-importer/parsers.php
web/wp-content/plugins/wordpress-importer/readme.txt
web/wp-content/plugins/wordpress-importer/wordpress-importer.php
web/wp-content/plugins/wp-super-cache/readme.txt
web/wp-content/plugins/xili-dictionary/languages/xili-dictionary-fr_FR.mo
web/wp-content/plugins/xili-dictionary/languages/xili-dictionary-fr_FR.po
web/wp-content/plugins/xili-dictionary/readme.txt
web/wp-content/plugins/xili-dictionary/xili-dictionary.php
web/wp-content/themes/IRI-Theme/lang/fr_FR.mo
web/wp-content/themes/IRI-Theme/lang/fr_FR.po
web/wp-content/themes/IRI-Theme/single.php
web/wp-content/themes/IRI-Theme/style.css
web/wp-content/themes/twentyeleven/colors/dark.css
web/wp-content/themes/twentyeleven/comments.php
web/wp-content/themes/twentyeleven/content-aside.php
web/wp-content/themes/twentyeleven/content-featured.php
web/wp-content/themes/twentyeleven/content-gallery.php
web/wp-content/themes/twentyeleven/content-image.php
web/wp-content/themes/twentyeleven/content-link.php
web/wp-content/themes/twentyeleven/content-quote.php
web/wp-content/themes/twentyeleven/content-status.php
web/wp-content/themes/twentyeleven/content.php
web/wp-content/themes/twentyeleven/editor-style.css
web/wp-content/themes/twentyeleven/footer.php
web/wp-content/themes/twentyeleven/functions.php
web/wp-content/themes/twentyeleven/images/comment-bubble-dark-rtl.png
web/wp-content/themes/twentyeleven/images/comment-bubble-dark.png
web/wp-content/themes/twentyeleven/images/comment-bubble-rtl.png
web/wp-content/themes/twentyeleven/images/comment-bubble.png
web/wp-content/themes/twentyeleven/images/headers/chessboard.jpg
web/wp-content/themes/twentyeleven/images/headers/hanoi.jpg
web/wp-content/themes/twentyeleven/images/headers/lanterns-thumbnail.jpg
web/wp-content/themes/twentyeleven/images/headers/lanterns.jpg
web/wp-content/themes/twentyeleven/images/headers/pine-cone.jpg
web/wp-content/themes/twentyeleven/images/headers/shore.jpg
web/wp-content/themes/twentyeleven/images/headers/trolley.jpg
web/wp-content/themes/twentyeleven/images/headers/wheel.jpg
web/wp-content/themes/twentyeleven/images/headers/willow.jpg
web/wp-content/themes/twentyeleven/images/search.png
web/wp-content/themes/twentyeleven/inc/images/content-sidebar.png
web/wp-content/themes/twentyeleven/inc/images/content.png
web/wp-content/themes/twentyeleven/inc/images/dark.png
web/wp-content/themes/twentyeleven/inc/images/light.png
web/wp-content/themes/twentyeleven/inc/images/sidebar-content.png
web/wp-content/themes/twentyeleven/inc/widgets.php
web/wp-content/themes/twentyeleven/js/html5.js
web/wp-content/themes/twentyeleven/languages/fr_FR.mo
web/wp-content/themes/twentyeleven/languages/fr_FR.po
web/wp-content/themes/twentyeleven/languages/twentyeleven.pot
web/wp-content/themes/twentyeleven/screenshot.png
web/wp-content/themes/twentyeleven/showcase.php
web/wp-content/themes/twentyeleven/single.php
web/wp-content/themes/twentyeleven/style.css
web/wp-content/themes/twentyten/comments.php
web/wp-content/themes/twentyten/footer.php
web/wp-content/themes/twentyten/functions.php
web/wp-content/themes/twentyten/images/headers/berries-thumbnail.jpg
web/wp-content/themes/twentyten/images/headers/berries.jpg
web/wp-content/themes/twentyten/images/headers/cherryblossoms-thumbnail.jpg
web/wp-content/themes/twentyten/images/headers/cherryblossoms.jpg
web/wp-content/themes/twentyten/images/headers/concave-thumbnail.jpg
web/wp-content/themes/twentyten/images/headers/concave.jpg
web/wp-content/themes/twentyten/images/headers/fern-thumbnail.jpg
web/wp-content/themes/twentyten/images/headers/fern.jpg
web/wp-content/themes/twentyten/images/headers/forestfloor-thumbnail.jpg
web/wp-content/themes/twentyten/images/headers/forestfloor.jpg
web/wp-content/themes/twentyten/images/headers/inkwell-thumbnail.jpg
web/wp-content/themes/twentyten/images/headers/inkwell.jpg
web/wp-content/themes/twentyten/images/headers/path-thumbnail.jpg
web/wp-content/themes/twentyten/images/headers/path.jpg
web/wp-content/themes/twentyten/images/headers/sunset-thumbnail.jpg
web/wp-content/themes/twentyten/images/headers/sunset.jpg
web/wp-content/themes/twentyten/images/wordpress.png
web/wp-content/themes/twentyten/languages/_fr_FR.po
web/wp-content/themes/twentyten/languages/fr_FR.mo
web/wp-content/themes/twentyten/languages/local-fr_FR.po
web/wp-content/themes/twentyten/languages/twentyten.pot
web/wp-content/themes/twentyten/loop.php
web/wp-content/themes/twentyten/rtl.css
web/wp-content/themes/twentyten/screenshot.png
web/wp-content/themes/twentyten/style.css
web/wp-content/themes/twentytwelve/404.php
web/wp-content/themes/twentytwelve/archive.php
web/wp-content/themes/twentytwelve/author.php
web/wp-content/themes/twentytwelve/category.php
web/wp-content/themes/twentytwelve/comments.php
web/wp-content/themes/twentytwelve/content-aside.php
web/wp-content/themes/twentytwelve/content-image.php
web/wp-content/themes/twentytwelve/content-link.php
web/wp-content/themes/twentytwelve/content-none.php
web/wp-content/themes/twentytwelve/content-page.php
web/wp-content/themes/twentytwelve/content-quote.php
web/wp-content/themes/twentytwelve/content-status.php
web/wp-content/themes/twentytwelve/content.php
web/wp-content/themes/twentytwelve/css/ie.css
web/wp-content/themes/twentytwelve/editor-style-rtl.css
web/wp-content/themes/twentytwelve/editor-style.css
web/wp-content/themes/twentytwelve/footer.php
web/wp-content/themes/twentytwelve/functions.php
web/wp-content/themes/twentytwelve/header.php
web/wp-content/themes/twentytwelve/image.php
web/wp-content/themes/twentytwelve/inc/custom-header.php
web/wp-content/themes/twentytwelve/index.php
web/wp-content/themes/twentytwelve/js/html5.js
web/wp-content/themes/twentytwelve/js/navigation.js
web/wp-content/themes/twentytwelve/js/theme-customizer.js
web/wp-content/themes/twentytwelve/languages/twentytwelve.pot
web/wp-content/themes/twentytwelve/page-templates/front-page.php
web/wp-content/themes/twentytwelve/page-templates/full-width.php
web/wp-content/themes/twentytwelve/page.php
web/wp-content/themes/twentytwelve/rtl.css
web/wp-content/themes/twentytwelve/screenshot.png
web/wp-content/themes/twentytwelve/search.php
web/wp-content/themes/twentytwelve/sidebar-front.php
web/wp-content/themes/twentytwelve/sidebar.php
web/wp-content/themes/twentytwelve/single.php
web/wp-content/themes/twentytwelve/style.css
web/wp-content/themes/twentytwelve/tag.php
web/wp-content/uploads/2010/01/Copy-of-Page-TEch-ENMI-150x150.png
web/wp-content/uploads/2010/01/Copy-of-Page-TEch-ENMI-300x142.png
web/wp-content/uploads/2010/01/Copy-of-Page-TEch-ENMI.png
web/wp-content/uploads/2010/01/ENMI-Dec2012-Programme.2012-11-08.pdf
web/wp-content/uploads/2010/01/ENMI-Dec2012-Programme.2012-11-081.pdf
web/wp-content/uploads/2010/01/ENSCI-Grand-fond-PantoneRed-1024x809.png
web/wp-content/uploads/2010/01/ENSCI-Grand-fond-PantoneRed-150x150.png
web/wp-content/uploads/2010/01/ENSCI-Grand-fond-PantoneRed-300x237.png
web/wp-content/uploads/2010/01/ENSCI-Grand-fond-PantoneRed.png
web/wp-content/uploads/2010/01/FTV-150x150.jpg
web/wp-content/uploads/2010/01/FTV.jpg
web/wp-content/uploads/2010/01/Fing-150x150.jpg
web/wp-content/uploads/2010/01/Fing.jpg
web/wp-content/uploads/2010/01/Logo_IMT40.jpg
web/wp-content/uploads/2010/01/Organisateurs-ENMI-150x150.jpg
web/wp-content/uploads/2010/01/Organisateurs-ENMI-150x150.png
web/wp-content/uploads/2010/01/Organisateurs-ENMI-300x75.jpg
web/wp-content/uploads/2010/01/Organisateurs-ENMI-300x75.png
web/wp-content/uploads/2010/01/Organisateurs-ENMI.jpg
web/wp-content/uploads/2010/01/Organisateurs-ENMI.png
web/wp-content/uploads/2010/01/Page-Logos-ENMI3-150x150.png
web/wp-content/uploads/2010/01/Page-Logos-ENMI3-300x59.png
web/wp-content/uploads/2010/01/Page-Logos-ENMI3.png
web/wp-content/uploads/2010/01/Page-Logos-ENMI4-150x150.png
web/wp-content/uploads/2010/01/Page-Logos-ENMI4-300x82.png
web/wp-content/uploads/2010/01/Page-Logos-ENMI4.png
web/wp-content/uploads/2010/01/al_corp_h_rgb_75mm-1024x356.jpg
web/wp-content/uploads/2010/01/al_corp_h_rgb_75mm-150x150.jpg
web/wp-content/uploads/2010/01/al_corp_h_rgb_75mm-300x104.jpg
web/wp-content/uploads/2010/01/al_corp_h_rgb_75mm.jpg
web/wp-content/uploads/2010/01/knowtex-150x136.jpg
web/wp-content/uploads/2010/01/knowtex-300x110.jpg
web/wp-content/uploads/2010/01/knowtex.jpg
web/wp-content/uploads/2010/01/knowtex1-150x136.jpg
web/wp-content/uploads/2010/01/knowtex1-300x110.jpg
web/wp-content/uploads/2010/01/knowtex1.jpg
web/wp-content/uploads/2010/01/logo-final-unishared-couleur-1023x264.png
web/wp-content/uploads/2010/01/logo-final-unishared-couleur-150x150.png
web/wp-content/uploads/2010/01/logo-final-unishared-couleur-300x77.png
web/wp-content/uploads/2010/01/logo-final-unishared-couleur.png
web/wp-content/uploads/2010/01/logo_Cap_Digital_HD_RVB-1023x371.jpg
web/wp-content/uploads/2010/01/logo_Cap_Digital_HD_RVB-150x150.jpg
web/wp-content/uploads/2010/01/logo_Cap_Digital_HD_RVB-300x108.jpg
web/wp-content/uploads/2010/01/logo_Cap_Digital_HD_RVB.jpg
web/wp-content/uploads/2010/01/logo_iri_bleu_transparent-1024x465.jpg
web/wp-content/uploads/2010/01/logo_iri_bleu_transparent-150x150.jpg
web/wp-content/uploads/2010/01/logo_iri_bleu_transparent-300x136.jpg
web/wp-content/uploads/2010/01/logo_iri_bleu_transparent.jpg
web/wp-content/uploads/2011/02/PatrimoineHumaniteÌs.Puig_Version-OK.pdf
web/wp-content/uploads/2012/11/1-150x150.jpg
web/wp-content/uploads/2012/11/1-150x150.png
web/wp-content/uploads/2012/11/1-300x158.jpg
web/wp-content/uploads/2012/11/1-300x169.png
web/wp-content/uploads/2012/11/1.jpg
web/wp-content/uploads/2012/11/1.png
web/wp-content/uploads/2012/11/11-150x150.jpg
web/wp-content/uploads/2012/11/11-150x150.png
web/wp-content/uploads/2012/11/11-300x158.jpg
web/wp-content/uploads/2012/11/11-300x169.png
web/wp-content/uploads/2012/11/11.jpg
web/wp-content/uploads/2012/11/11.png
web/wp-content/uploads/2012/11/12-150x150.jpg
web/wp-content/uploads/2012/11/12-300x158.jpg
web/wp-content/uploads/2012/11/12.jpg
web/wp-content/uploads/2012/11/2-150x150.jpg
web/wp-content/uploads/2012/11/2-300x158.jpg
web/wp-content/uploads/2012/11/2.jpg
web/wp-content/uploads/2012/11/21-150x150.jpg
web/wp-content/uploads/2012/11/21-300x158.jpg
web/wp-content/uploads/2012/11/21.jpg
web/wp-content/uploads/2012/11/22-150x150.jpg
web/wp-content/uploads/2012/11/22-300x158.jpg
web/wp-content/uploads/2012/11/22.jpg
web/wp-content/uploads/2012/11/Capture-d’eÌcran-2012-06-01-aÌ€-14.49.18-150x150.png
web/wp-content/uploads/2012/11/Capture-d’eÌcran-2012-06-01-aÌ€-14.49.18-300x159.png
web/wp-content/uploads/2012/11/Capture-d’eÌcran-2012-06-01-aÌ€-14.49.18-568x300.png
web/wp-content/uploads/2012/11/Capture-d’eÌcran-2012-06-01-aÌ€-14.49.18.png
web/wp-content/uploads/2012/12/C_Archat_Yeelen_ailesdudesir_liens.pdf
web/wp-content/uploads/2012/12/bbm1-150x150.jpg
web/wp-content/uploads/2012/12/bbm1-300x158.jpg
web/wp-content/uploads/2012/12/bbm1.jpg
web/wp-content/uploads/2012/12/bubble-t1-150x150.jpg
web/wp-content/uploads/2012/12/bubble-t1-300x158.jpg
web/wp-content/uploads/2012/12/bubble-t1.jpg
web/wp-content/uploads/2012/12/bubble-tv1-150x150.jpg
web/wp-content/uploads/2012/12/bubble-tv1-300x158.jpg
web/wp-content/uploads/2012/12/bubble-tv1.jpg
web/wp-content/uploads/2012/12/cinecast1-150x150.jpg
web/wp-content/uploads/2012/12/cinecast1-300x158.jpg
web/wp-content/uploads/2012/12/cinecast1.jpg
web/wp-content/uploads/2012/12/egonomy1-150x150.jpg
web/wp-content/uploads/2012/12/egonomy1-300x158.jpg
web/wp-content/uploads/2012/12/egonomy1.jpg
web/wp-content/uploads/2012/12/eulalie1-150x150.jpg
web/wp-content/uploads/2012/12/eulalie1-300x158.jpg
web/wp-content/uploads/2012/12/eulalie1.jpg
web/wp-content/uploads/2012/12/fingersdance1-150x150.jpg
web/wp-content/uploads/2012/12/fingersdance1-300x158.jpg
web/wp-content/uploads/2012/12/fingersdance1.jpg
web/wp-content/uploads/2012/12/hdabo1-150x150.jpg
web/wp-content/uploads/2012/12/hdabo1-300x158.jpg
web/wp-content/uploads/2012/12/hdabo1.jpg
web/wp-content/uploads/2012/12/hdalab1-150x150.jpg
web/wp-content/uploads/2012/12/hdalab1-300x158.jpg
web/wp-content/uploads/2012/12/hdalab1.jpg
web/wp-content/uploads/2012/12/logiciel-ldt1-150x150.jpg
web/wp-content/uploads/2012/12/logiciel-ldt1-300x158.jpg
web/wp-content/uploads/2012/12/logiciel-ldt1.jpg
web/wp-content/uploads/2012/12/metadataplayer1-150x150.jpg
web/wp-content/uploads/2012/12/metadataplayer1-300x158.jpg
web/wp-content/uploads/2012/12/metadataplayer1.jpg
web/wp-content/uploads/2012/12/museologie1-150x150.jpg
web/wp-content/uploads/2012/12/museologie1-300x158.jpg
web/wp-content/uploads/2012/12/museologie1.jpg
web/wp-content/uploads/2012/12/periplus1-150x150.jpg
web/wp-content/uploads/2012/12/periplus1-300x158.jpg
web/wp-content/uploads/2012/12/periplus1.jpg
web/wp-content/uploads/2012/12/polemictweet1-150x150.jpg
web/wp-content/uploads/2012/12/polemictweet1-300x158.jpg
web/wp-content/uploads/2012/12/polemictweet1.jpg
web/wp-content/uploads/2012/12/seminaire-edito1-150x150.jpg
web/wp-content/uploads/2012/12/seminaire-edito1-300x158.jpg
web/wp-content/uploads/2012/12/seminaire-edito1.jpg
web/wp-content/uploads/2012/12/social-web1-150x150.jpg
web/wp-content/uploads/2012/12/social-web1-300x158.jpg
web/wp-content/uploads/2012/12/social-web1.jpg
web/wp-content/uploads/boss.zip
web/wp-cron.php
web/wp-includes/SimplePie/Author.php
web/wp-includes/SimplePie/Cache.php
web/wp-includes/SimplePie/Cache/Base.php
web/wp-includes/SimplePie/Cache/DB.php
web/wp-includes/SimplePie/Cache/File.php
web/wp-includes/SimplePie/Cache/Memcache.php
web/wp-includes/SimplePie/Cache/MySQL.php
web/wp-includes/SimplePie/Caption.php
web/wp-includes/SimplePie/Category.php
web/wp-includes/SimplePie/Content/Type/Sniffer.php
web/wp-includes/SimplePie/Copyright.php
web/wp-includes/SimplePie/Core.php
web/wp-includes/SimplePie/Credit.php
web/wp-includes/SimplePie/Decode/HTML/Entities.php
web/wp-includes/SimplePie/Enclosure.php
web/wp-includes/SimplePie/Exception.php
web/wp-includes/SimplePie/File.php
web/wp-includes/SimplePie/HTTP/Parser.php
web/wp-includes/SimplePie/IRI.php
web/wp-includes/SimplePie/Item.php
web/wp-includes/SimplePie/Locator.php
web/wp-includes/SimplePie/Misc.php
web/wp-includes/SimplePie/Net/IPv6.php
web/wp-includes/SimplePie/Parse/Date.php
web/wp-includes/SimplePie/Parser.php
web/wp-includes/SimplePie/Rating.php
web/wp-includes/SimplePie/Registry.php
web/wp-includes/SimplePie/Restriction.php
web/wp-includes/SimplePie/Sanitize.php
web/wp-includes/SimplePie/Source.php
web/wp-includes/SimplePie/XML/Declaration/Parser.php
web/wp-includes/SimplePie/gzdecode.php
web/wp-includes/admin-bar.php
web/wp-includes/author-template.php
web/wp-includes/bookmark-template.php
web/wp-includes/bookmark.php
web/wp-includes/cache.php
web/wp-includes/canonical.php
web/wp-includes/capabilities.php
web/wp-includes/category-template.php
web/wp-includes/category.php
web/wp-includes/class-IXR.php
web/wp-includes/class-feed.php
web/wp-includes/class-http.php
web/wp-includes/class-oembed.php
web/wp-includes/class-simplepie.php
web/wp-includes/class-wp-admin-bar.php
web/wp-includes/class-wp-ajax-response.php
web/wp-includes/class-wp-atom-server.php
web/wp-includes/class-wp-customize-control.php
web/wp-includes/class-wp-customize-manager.php
web/wp-includes/class-wp-customize-section.php
web/wp-includes/class-wp-customize-setting.php
web/wp-includes/class-wp-editor.php
web/wp-includes/class-wp-embed.php
web/wp-includes/class-wp-image-editor-gd.php
web/wp-includes/class-wp-image-editor-imagick.php
web/wp-includes/class-wp-image-editor.php
web/wp-includes/class-wp-theme.php
web/wp-includes/class-wp-walker.php
web/wp-includes/class-wp-xmlrpc-server.php
web/wp-includes/class-wp.php
web/wp-includes/class.wp-dependencies.php
web/wp-includes/class.wp-scripts.php
web/wp-includes/class.wp-styles.php
web/wp-includes/comment-template.php
web/wp-includes/comment.php
web/wp-includes/cron.php
web/wp-includes/css/admin-bar-rtl.css
web/wp-includes/css/admin-bar-rtl.dev.css
web/wp-includes/css/admin-bar-rtl.min.css
web/wp-includes/css/admin-bar.css
web/wp-includes/css/admin-bar.dev.css
web/wp-includes/css/admin-bar.min.css
web/wp-includes/css/buttons.css
web/wp-includes/css/buttons.min.css
web/wp-includes/css/editor.css
web/wp-includes/css/editor.dev.css
web/wp-includes/css/editor.min.css
web/wp-includes/css/jquery-ui-dialog.css
web/wp-includes/css/jquery-ui-dialog.dev.css
web/wp-includes/css/jquery-ui-dialog.min.css
web/wp-includes/css/media-views-rtl.css
web/wp-includes/css/media-views-rtl.min.css
web/wp-includes/css/media-views.css
web/wp-includes/css/media-views.min.css
web/wp-includes/css/wp-pointer.css
web/wp-includes/css/wp-pointer.dev.css
web/wp-includes/css/wp-pointer.min.css
web/wp-includes/default-constants.php
web/wp-includes/default-filters.php
web/wp-includes/default-widgets.php
web/wp-includes/deprecated.php
web/wp-includes/feed-atom-comments.php
web/wp-includes/feed-atom.php
web/wp-includes/feed-rss2-comments.php
web/wp-includes/feed-rss2.php
web/wp-includes/feed.php
web/wp-includes/formatting.php
web/wp-includes/functions.php
web/wp-includes/functions.wp-scripts.php
web/wp-includes/functions.wp-styles.php
web/wp-includes/general-template.php
web/wp-includes/http.php
web/wp-includes/images/admin-bar-sprite-2x.png
web/wp-includes/images/admin-bar-sprite.png
web/wp-includes/images/arrow-pointer-blue-2x.png
web/wp-includes/images/arrow-pointer-blue.png
web/wp-includes/images/crystal/archive.png
web/wp-includes/images/crystal/audio.png
web/wp-includes/images/crystal/code.png
web/wp-includes/images/crystal/default.png
web/wp-includes/images/crystal/document.png
web/wp-includes/images/crystal/interactive.png
web/wp-includes/images/crystal/spreadsheet.png
web/wp-includes/images/crystal/text.png
web/wp-includes/images/crystal/video.png
web/wp-includes/images/down_arrow-2x.gif
web/wp-includes/images/icon-pointer-flag-2x.png
web/wp-includes/images/rss-2x.png
web/wp-includes/images/rss.png
web/wp-includes/images/toggle-arrow-2x.png
web/wp-includes/images/toggle-arrow.png
web/wp-includes/images/upload.png
web/wp-includes/images/uploader-icons-2x.png
web/wp-includes/images/uploader-icons.png
web/wp-includes/images/wlw/wp-comments.png
web/wp-includes/images/wlw/wp-icon.png
web/wp-includes/images/wlw/wp-watermark.png
web/wp-includes/images/wpicons-2x.png
web/wp-includes/images/wpicons.png
web/wp-includes/images/wpmini-blue-2x.png
web/wp-includes/images/wpmini-blue.png
web/wp-includes/images/wpspin-2x.gif
web/wp-includes/images/wpspin.gif
web/wp-includes/images/xit-2x.gif
web/wp-includes/js/admin-bar.dev.js
web/wp-includes/js/admin-bar.js
web/wp-includes/js/admin-bar.min.js
web/wp-includes/js/autosave.dev.js
web/wp-includes/js/autosave.js
web/wp-includes/js/autosave.min.js
web/wp-includes/js/backbone.min.js
web/wp-includes/js/colorpicker.dev.js
web/wp-includes/js/colorpicker.js
web/wp-includes/js/colorpicker.min.js
web/wp-includes/js/comment-reply.dev.js
web/wp-includes/js/comment-reply.js
web/wp-includes/js/comment-reply.min.js
web/wp-includes/js/crop/marqueeHoriz.gif
web/wp-includes/js/crop/marqueeVert.gif
web/wp-includes/js/customize-base.dev.js
web/wp-includes/js/customize-base.js
web/wp-includes/js/customize-base.min.js
web/wp-includes/js/customize-loader.dev.js
web/wp-includes/js/customize-loader.js
web/wp-includes/js/customize-loader.min.js
web/wp-includes/js/customize-preview.dev.js
web/wp-includes/js/customize-preview.js
web/wp-includes/js/customize-preview.min.js
web/wp-includes/js/hoverIntent.dev.js
web/wp-includes/js/hoverIntent.js
web/wp-includes/js/hoverIntent.min.js
web/wp-includes/js/imgareaselect/border-anim-h.gif
web/wp-includes/js/imgareaselect/border-anim-v.gif
web/wp-includes/js/imgareaselect/jquery.imgareaselect.dev.js
web/wp-includes/js/imgareaselect/jquery.imgareaselect.js
web/wp-includes/js/imgareaselect/jquery.imgareaselect.min.js
web/wp-includes/js/jcrop/Jcrop.gif
web/wp-includes/js/jcrop/jquery.Jcrop.css
web/wp-includes/js/jcrop/jquery.Jcrop.dev.js
web/wp-includes/js/jcrop/jquery.Jcrop.js
web/wp-includes/js/jcrop/jquery.Jcrop.min.css
web/wp-includes/js/jcrop/jquery.Jcrop.min.js
web/wp-includes/js/jquery/jquery.color.dev.js
web/wp-includes/js/jquery/jquery.color.js
web/wp-includes/js/jquery/jquery.color.min.js
web/wp-includes/js/jquery/jquery.form.dev.js
web/wp-includes/js/jquery/jquery.form.js
web/wp-includes/js/jquery/jquery.form.min.js
web/wp-includes/js/jquery/jquery.hotkeys.dev.js
web/wp-includes/js/jquery/jquery.hotkeys.js
web/wp-includes/js/jquery/jquery.hotkeys.min.js
web/wp-includes/js/jquery/jquery.js
web/wp-includes/js/jquery/jquery.masonry.min.js
web/wp-includes/js/jquery/jquery.table-hotkeys.dev.js
web/wp-includes/js/jquery/jquery.table-hotkeys.js
web/wp-includes/js/jquery/jquery.table-hotkeys.min.js
web/wp-includes/js/jquery/suggest.dev.js
web/wp-includes/js/jquery/suggest.js
web/wp-includes/js/jquery/suggest.min.js
web/wp-includes/js/jquery/ui/jquery.effects.blind.min.js
web/wp-includes/js/jquery/ui/jquery.effects.bounce.min.js
web/wp-includes/js/jquery/ui/jquery.effects.clip.min.js
web/wp-includes/js/jquery/ui/jquery.effects.core.min.js
web/wp-includes/js/jquery/ui/jquery.effects.drop.min.js
web/wp-includes/js/jquery/ui/jquery.effects.explode.min.js
web/wp-includes/js/jquery/ui/jquery.effects.fade.min.js
web/wp-includes/js/jquery/ui/jquery.effects.fold.min.js
web/wp-includes/js/jquery/ui/jquery.effects.highlight.min.js
web/wp-includes/js/jquery/ui/jquery.effects.pulsate.min.js
web/wp-includes/js/jquery/ui/jquery.effects.scale.min.js
web/wp-includes/js/jquery/ui/jquery.effects.shake.min.js
web/wp-includes/js/jquery/ui/jquery.effects.slide.min.js
web/wp-includes/js/jquery/ui/jquery.effects.transfer.min.js
web/wp-includes/js/jquery/ui/jquery.ui.accordion.min.js
web/wp-includes/js/jquery/ui/jquery.ui.autocomplete.min.js
web/wp-includes/js/jquery/ui/jquery.ui.button.min.js
web/wp-includes/js/jquery/ui/jquery.ui.core.min.js
web/wp-includes/js/jquery/ui/jquery.ui.datepicker.min.js
web/wp-includes/js/jquery/ui/jquery.ui.dialog.min.js
web/wp-includes/js/jquery/ui/jquery.ui.draggable.min.js
web/wp-includes/js/jquery/ui/jquery.ui.droppable.min.js
web/wp-includes/js/jquery/ui/jquery.ui.effect-blind.min.js
web/wp-includes/js/jquery/ui/jquery.ui.effect-bounce.min.js
web/wp-includes/js/jquery/ui/jquery.ui.effect-clip.min.js
web/wp-includes/js/jquery/ui/jquery.ui.effect-drop.min.js
web/wp-includes/js/jquery/ui/jquery.ui.effect-explode.min.js
web/wp-includes/js/jquery/ui/jquery.ui.effect-fade.min.js
web/wp-includes/js/jquery/ui/jquery.ui.effect-fold.min.js
web/wp-includes/js/jquery/ui/jquery.ui.effect-highlight.min.js
web/wp-includes/js/jquery/ui/jquery.ui.effect-pulsate.min.js
web/wp-includes/js/jquery/ui/jquery.ui.effect-scale.min.js
web/wp-includes/js/jquery/ui/jquery.ui.effect-shake.min.js
web/wp-includes/js/jquery/ui/jquery.ui.effect-slide.min.js
web/wp-includes/js/jquery/ui/jquery.ui.effect-transfer.min.js
web/wp-includes/js/jquery/ui/jquery.ui.effect.min.js
web/wp-includes/js/jquery/ui/jquery.ui.menu.min.js
web/wp-includes/js/jquery/ui/jquery.ui.mouse.min.js
web/wp-includes/js/jquery/ui/jquery.ui.position.min.js
web/wp-includes/js/jquery/ui/jquery.ui.progressbar.min.js
web/wp-includes/js/jquery/ui/jquery.ui.resizable.min.js
web/wp-includes/js/jquery/ui/jquery.ui.selectable.min.js
web/wp-includes/js/jquery/ui/jquery.ui.slider.min.js
web/wp-includes/js/jquery/ui/jquery.ui.sortable.min.js
web/wp-includes/js/jquery/ui/jquery.ui.spinner.min.js
web/wp-includes/js/jquery/ui/jquery.ui.tabs.min.js
web/wp-includes/js/jquery/ui/jquery.ui.tooltip.min.js
web/wp-includes/js/jquery/ui/jquery.ui.widget.min.js
web/wp-includes/js/json2.dev.js
web/wp-includes/js/json2.js
web/wp-includes/js/json2.min.js
web/wp-includes/js/mce-view.js
web/wp-includes/js/mce-view.min.js
web/wp-includes/js/media-editor.js
web/wp-includes/js/media-editor.min.js
web/wp-includes/js/media-models.js
web/wp-includes/js/media-models.min.js
web/wp-includes/js/media-views.js
web/wp-includes/js/media-views.min.js
web/wp-includes/js/plupload/handlers.dev.js
web/wp-includes/js/plupload/handlers.js
web/wp-includes/js/plupload/handlers.min.js
web/wp-includes/js/plupload/wp-plupload.dev.js
web/wp-includes/js/plupload/wp-plupload.js
web/wp-includes/js/plupload/wp-plupload.min.js
web/wp-includes/js/prototype.js
web/wp-includes/js/quicktags.dev.js
web/wp-includes/js/quicktags.js
web/wp-includes/js/quicktags.min.js
web/wp-includes/js/scriptaculous/MIT-LICENSE
web/wp-includes/js/scriptaculous/builder.js
web/wp-includes/js/scriptaculous/controls.js
web/wp-includes/js/scriptaculous/dragdrop.js
web/wp-includes/js/scriptaculous/effects.js
web/wp-includes/js/scriptaculous/scriptaculous.js
web/wp-includes/js/scriptaculous/slider.js
web/wp-includes/js/scriptaculous/sound.js
web/wp-includes/js/scriptaculous/unittest.js
web/wp-includes/js/scriptaculous/wp-scriptaculous.js
web/wp-includes/js/shortcode.js
web/wp-includes/js/shortcode.min.js
web/wp-includes/js/swfupload/handlers.dev.js
web/wp-includes/js/swfupload/handlers.js
web/wp-includes/js/swfupload/handlers.min.js
web/wp-includes/js/thickbox/loadingAnimation.gif
web/wp-includes/js/thickbox/macFFBgHack.png
web/wp-includes/js/thickbox/tb-close-2x.png
web/wp-includes/js/thickbox/tb-close.png
web/wp-includes/js/thickbox/thickbox.css
web/wp-includes/js/thickbox/thickbox.js
web/wp-includes/js/tinymce/langs/wp-langs-en.js
web/wp-includes/js/tinymce/langs/wp-langs.php
web/wp-includes/js/tinymce/plugins/directionality/editor_plugin.js
web/wp-includes/js/tinymce/plugins/directionality/editor_plugin_src.js
web/wp-includes/js/tinymce/plugins/fullscreen/editor_plugin.js
web/wp-includes/js/tinymce/plugins/fullscreen/editor_plugin_src.js
web/wp-includes/js/tinymce/plugins/fullscreen/fullscreen.htm
web/wp-includes/js/tinymce/plugins/inlinepopups/skins/clearlooks2/img/alert.gif
web/wp-includes/js/tinymce/plugins/inlinepopups/skins/clearlooks2/img/button.gif
web/wp-includes/js/tinymce/plugins/inlinepopups/skins/clearlooks2/img/confirm.gif
web/wp-includes/js/tinymce/plugins/inlinepopups/skins/clearlooks2/img/corners.gif
web/wp-includes/js/tinymce/plugins/inlinepopups/skins/clearlooks2/img/drag.gif
web/wp-includes/js/tinymce/plugins/inlinepopups/skins/clearlooks2/img/vertical.gif
web/wp-includes/js/tinymce/plugins/inlinepopups/template.htm
web/wp-includes/js/tinymce/plugins/media/editor_plugin.js
web/wp-includes/js/tinymce/plugins/media/editor_plugin_src.js
web/wp-includes/js/tinymce/plugins/media/js/media.js
web/wp-includes/js/tinymce/plugins/media/media.htm
web/wp-includes/js/tinymce/plugins/paste/editor_plugin.js
web/wp-includes/js/tinymce/plugins/paste/editor_plugin_src.js
web/wp-includes/js/tinymce/plugins/paste/pastetext.htm
web/wp-includes/js/tinymce/plugins/paste/pasteword.htm
web/wp-includes/js/tinymce/plugins/spellchecker/classes/GoogleSpell.php
web/wp-includes/js/tinymce/plugins/spellchecker/editor_plugin.js
web/wp-includes/js/tinymce/plugins/spellchecker/editor_plugin_src.js
web/wp-includes/js/tinymce/plugins/tabfocus/editor_plugin.js
web/wp-includes/js/tinymce/plugins/tabfocus/editor_plugin_src.js
web/wp-includes/js/tinymce/plugins/wordpress/editor_plugin.js
web/wp-includes/js/tinymce/plugins/wordpress/editor_plugin_src.js
web/wp-includes/js/tinymce/plugins/wordpress/img/image.gif
web/wp-includes/js/tinymce/plugins/wordpress/img/video.gif
web/wp-includes/js/tinymce/plugins/wpdialogs/js/popup.dev.js
web/wp-includes/js/tinymce/plugins/wpdialogs/js/popup.js
web/wp-includes/js/tinymce/plugins/wpdialogs/js/popup.min.js
web/wp-includes/js/tinymce/plugins/wpdialogs/js/wpdialog.dev.js
web/wp-includes/js/tinymce/plugins/wpdialogs/js/wpdialog.js
web/wp-includes/js/tinymce/plugins/wpdialogs/js/wpdialog.min.js
web/wp-includes/js/tinymce/plugins/wpeditimage/css/editimage.css
web/wp-includes/js/tinymce/plugins/wpeditimage/editimage.html
web/wp-includes/js/tinymce/plugins/wpeditimage/editor_plugin.js
web/wp-includes/js/tinymce/plugins/wpeditimage/editor_plugin_src.js
web/wp-includes/js/tinymce/plugins/wpeditimage/img/delete-2x.png
web/wp-includes/js/tinymce/plugins/wpeditimage/img/delete.png
web/wp-includes/js/tinymce/plugins/wpeditimage/img/image-2x.png
web/wp-includes/js/tinymce/plugins/wpeditimage/img/image.png
web/wp-includes/js/tinymce/plugins/wpeditimage/js/editimage.dev.js
web/wp-includes/js/tinymce/plugins/wpeditimage/js/editimage.js
web/wp-includes/js/tinymce/plugins/wpeditimage/js/editimage.min.js
web/wp-includes/js/tinymce/plugins/wpfullscreen/css/wp-fullscreen.css
web/wp-includes/js/tinymce/plugins/wpfullscreen/editor_plugin.js
web/wp-includes/js/tinymce/plugins/wpfullscreen/editor_plugin_src.js
web/wp-includes/js/tinymce/plugins/wpgallery/editor_plugin.js
web/wp-includes/js/tinymce/plugins/wpgallery/editor_plugin_src.js
web/wp-includes/js/tinymce/plugins/wpgallery/img/delete-2x.png
web/wp-includes/js/tinymce/plugins/wpgallery/img/delete.png
web/wp-includes/js/tinymce/plugins/wpgallery/img/edit-2x.png
web/wp-includes/js/tinymce/plugins/wpgallery/img/edit.png
web/wp-includes/js/tinymce/plugins/wplink/editor_plugin.js
web/wp-includes/js/tinymce/plugins/wplink/editor_plugin_src.js
web/wp-includes/js/tinymce/plugins/wpview/editor_plugin.js
web/wp-includes/js/tinymce/plugins/wpview/editor_plugin_src.js
web/wp-includes/js/tinymce/themes/advanced/about.htm
web/wp-includes/js/tinymce/themes/advanced/anchor.htm
web/wp-includes/js/tinymce/themes/advanced/charmap.htm
web/wp-includes/js/tinymce/themes/advanced/color_picker.htm
web/wp-includes/js/tinymce/themes/advanced/editor_template.js
web/wp-includes/js/tinymce/themes/advanced/editor_template_src.js
web/wp-includes/js/tinymce/themes/advanced/image.htm
web/wp-includes/js/tinymce/themes/advanced/img/gotmoxie.png
web/wp-includes/js/tinymce/themes/advanced/img/icons.gif
web/wp-includes/js/tinymce/themes/advanced/js/anchor.js
web/wp-includes/js/tinymce/themes/advanced/js/color_picker.js
web/wp-includes/js/tinymce/themes/advanced/js/image.js
web/wp-includes/js/tinymce/themes/advanced/js/link.js
web/wp-includes/js/tinymce/themes/advanced/js/source_editor.js
web/wp-includes/js/tinymce/themes/advanced/link.htm
web/wp-includes/js/tinymce/themes/advanced/shortcuts.htm
web/wp-includes/js/tinymce/themes/advanced/skins/default/dialog.css
web/wp-includes/js/tinymce/themes/advanced/skins/default/ui.css
web/wp-includes/js/tinymce/themes/advanced/skins/highcontrast/dialog.css
web/wp-includes/js/tinymce/themes/advanced/skins/highcontrast/ui.css
web/wp-includes/js/tinymce/themes/advanced/skins/o2k7/dialog.css
web/wp-includes/js/tinymce/themes/advanced/skins/o2k7/ui.css
web/wp-includes/js/tinymce/themes/advanced/skins/wp_theme/content.css
web/wp-includes/js/tinymce/themes/advanced/skins/wp_theme/dialog.css
web/wp-includes/js/tinymce/themes/advanced/skins/wp_theme/img/embedded.png
web/wp-includes/js/tinymce/themes/advanced/skins/wp_theme/img/gallery.png
web/wp-includes/js/tinymce/themes/advanced/skins/wp_theme/img/page_bug.gif
web/wp-includes/js/tinymce/themes/advanced/skins/wp_theme/img/tabs.gif
web/wp-includes/js/tinymce/themes/advanced/skins/wp_theme/ui.css
web/wp-includes/js/tinymce/themes/advanced/source_editor.htm
web/wp-includes/js/tinymce/tiny_mce.js
web/wp-includes/js/tinymce/tiny_mce_popup.js
web/wp-includes/js/tinymce/wp-mce-help.php
web/wp-includes/js/tinymce/wp-tinymce-schema.js
web/wp-includes/js/tinymce/wp-tinymce.js.gz
web/wp-includes/js/tinymce/wp-tinymce.php
web/wp-includes/js/tw-sack.dev.js
web/wp-includes/js/tw-sack.js
web/wp-includes/js/tw-sack.min.js
web/wp-includes/js/underscore.min.js
web/wp-includes/js/utils.js
web/wp-includes/js/utils.min.js
web/wp-includes/js/wp-ajax-response.dev.js
web/wp-includes/js/wp-ajax-response.js
web/wp-includes/js/wp-ajax-response.min.js
web/wp-includes/js/wp-list-revisions.dev.js
web/wp-includes/js/wp-list-revisions.js
web/wp-includes/js/wp-list-revisions.min.js
web/wp-includes/js/wp-lists.dev.js
web/wp-includes/js/wp-lists.js
web/wp-includes/js/wp-lists.min.js
web/wp-includes/js/wp-pointer.dev.js
web/wp-includes/js/wp-pointer.js
web/wp-includes/js/wp-pointer.min.js
web/wp-includes/js/wplink.dev.js
web/wp-includes/js/wplink.js
web/wp-includes/js/wplink.min.js
web/wp-includes/kses.php
web/wp-includes/l10n.php
web/wp-includes/link-template.php
web/wp-includes/load.php
web/wp-includes/media-template.php
web/wp-includes/media.php
web/wp-includes/meta.php
web/wp-includes/ms-blogs.php
web/wp-includes/ms-default-constants.php
web/wp-includes/ms-default-filters.php
web/wp-includes/ms-functions.php
web/wp-includes/ms-load.php
web/wp-includes/ms-settings.php
web/wp-includes/nav-menu-template.php
web/wp-includes/nav-menu.php
web/wp-includes/option.php
web/wp-includes/pluggable-deprecated.php
web/wp-includes/pluggable.php
web/wp-includes/plugin.php
web/wp-includes/pomo/entry.php
web/wp-includes/pomo/mo.php
web/wp-includes/pomo/po.php
web/wp-includes/pomo/streams.php
web/wp-includes/pomo/translations.php
web/wp-includes/post-template.php
web/wp-includes/post.php
web/wp-includes/query.php
web/wp-includes/rewrite.php
web/wp-includes/script-loader.php
web/wp-includes/shortcodes.php
web/wp-includes/taxonomy.php
web/wp-includes/template-loader.php
web/wp-includes/template.php
web/wp-includes/theme-compat/comments-popup.php
web/wp-includes/theme-compat/comments.php
web/wp-includes/theme.php
web/wp-includes/update.php
web/wp-includes/user.php
web/wp-includes/vars.php
web/wp-includes/version.php
web/wp-includes/widgets.php
web/wp-includes/wp-db.php
web/wp-includes/wp-diff.php
web/wp-load.php
web/wp-login.php
web/wp-mail.php
web/wp-settings.php
web/wp-signup.php
web/xmlrpc.php
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/.htpasswd	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,5 @@
+presentation:PGx8YW6qkQpAE
+seminaire:kBbd6izNyoYL6
+fonds:5t5JRIE92LHpY
+iri:B4quP.V1JF29A
+simondon:VWI9WjodyJWGQ
--- a/web/wp-activate.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-activate.php	Wed Dec 19 17:46:52 2012 -0800
@@ -1,4 +1,12 @@
 <?php
+/**
+ * Confirms that the activation key that is sent in an email after a user signs
+ * up for a new blog matches the key for that user and then displays confirmation.
+ *
+ * @package WordPress
+ */
+
+/** Define ABSPATH as this file's directory */
 define( 'WP_INSTALLING', true );
 
 /** Sets up the WordPress Environment. */
@@ -16,11 +24,21 @@
 
 do_action( 'activate_header' );
 
+/**
+ * Adds an action hook specific to this page that fires on wp_head
+ *
+ * @since MU
+ */
 function do_activate_header() {
 	do_action( 'activate_wp_head' );
 }
 add_action( 'wp_head', 'do_activate_header' );
 
+/**
+ * Loads styles specific to this page.
+ *
+ * @since MU
+ */
 function wpmu_activate_stylesheet() {
 	?>
 	<style type="text/css">
@@ -77,7 +95,7 @@
 		} else {
 			extract($result);
 			$url = get_blogaddress_by_id( (int) $blog_id);
-			$user = new WP_User( (int) $user_id);
+			$user = get_userdata( (int) $user_id);
 			?>
 			<h2><?php _e('Your account is now active!'); ?></h2>
 
--- a/web/wp-admin/about.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-admin/about.php	Wed Dec 19 17:46:52 2012 -0800
@@ -19,7 +19,7 @@
 
 <h1><?php printf( __( 'Welcome to WordPress %s' ), $display_version ); ?></h1>
 
-<div class="about-text"><?php printf( __( 'Thank you for updating to the latest version! WordPress %s is already making your website better, faster, and more attractive, just like you!' ), $display_version ); ?></div>
+<div class="about-text"><?php printf( __( 'Thank you for updating to the latest version! WordPress %s is more polished and enjoyable than ever before. We hope you like it.' ), $display_version ); ?></div>
 
 <div class="wp-badge"><?php printf( __( 'Version %s' ), $display_version ); ?></div>
 
@@ -33,101 +33,88 @@
 	</a>
 </h2>
 
-<div class="changelog point-releases">
-	<h3><?php echo _n( 'Maintenance and Security Release', 'Maintenance and Security Releases', 2 ); ?></h3>
-	<p><?php printf( _n( '<strong>Version %1$s</strong> addressed some security issues and fixed %2$s bug.',
-         '<strong>Version %1$s</strong> addressed some security issues and fixed %2$s bugs.', 20 ), '3.4.2', number_format_i18n( 20 ) ); ?>
-		<?php printf( __( 'For more information, see <a href="%s">the release notes</a>.' ), 'http://codex.wordpress.org/Version_3.4.2' ); ?>
- 	</p>
+<div class="changelog">
+	<h3><?php _e( 'New Media Manager' ); ?></h3>
+
+	<div class="feature-section col two-col">
+		<img alt="" src="<?php echo esc_url( admin_url( 'images/screenshots/about-media.png' ) ); ?>" class="image-100" />
 
-	<p><?php printf( _n( '<strong>Version %1$s</strong> addressed some security issues and fixed %2$s bug.',
-         '<strong>Version %1$s</strong> addressed some security issues and fixed %2$s bugs.', 21 ), '3.4.1', number_format_i18n( 21 ) ); ?>
-		<?php printf( __( 'For more information, see <a href="%s">the release notes</a>.' ), 'http://codex.wordpress.org/Version_3.4.1' ); ?>
- 	</p>
-</div>
-
-<div class="changelog">
-	<h3><?php _e( 'Live Theme Previews' ); ?></h3>
-
-	<div class="feature-section images-stagger-right">
-		<img src="<?php echo esc_url( admin_url( 'images/screenshots/theme-customizer.png' ) ); ?>" class="image-50" />
-		<h4><?php _e( 'Try on New Themes' ); ?></h4>
-		<p><?php _e( 'Gone are the days of rushing to update your header, background, and the like as soon as you activate a new theme. You can now customize these options <strong>before</strong> activating a new theme. Note: this feature is available for installed themes only.' ); ?></p>
-
-		<h4><?php _e( 'Customize Current Theme' ); ?></h4>
-		<p><?php _e( 'Satisfy your curiosity and try on a fresh coat of paint &mdash; you can also use the live preview mode to customize your current theme. Look for the Customize link on the Themes screen.' ); ?></p>
+		<div>
+			<h4><?php _e( 'Beautiful Interface' ); ?></h4>
+			<p><?php _e( 'Adding media has been streamlined with an all-new experience, making it a breeze to upload files and place them into your posts.' ); ?></p>
+		</div>
+		<div class="last-feature">
+			<h4><?php _e( 'Picturesque Galleries' ); ?></h4>
+			<p><?php _e( 'Creating image galleries is faster with drag and drop reordering, inline caption editing, and simplified controls for layout.' ); ?></p>
+		</div>
 	</div>
 </div>
 
 <div class="changelog">
-	<h3><?php _e( 'Custom Headers' ); ?></h3>
-
-	<div class="feature-section">
-		<h4><?php _e( 'Flexible Sizes' ); ?></h4>
-		<p><?php _e( 'You can decide for yourself how tall or wide your custom header image should be. From now on, themes will provide a recommended image size for custom headers rather than a fixed requirement. Note: this feature requires <a href="http://codex.wordpress.org/Custom_Headers">theme support</a>.' ); ?></p>
-		<div class="three-col-images">
-			<img src="<?php echo esc_url( admin_url( 'images/screenshots/flex-header-1.png' ) ); ?>" class="image-30 first-feature" />
-			<img src="<?php echo esc_url( admin_url( 'images/screenshots/flex-header-2.png' ) ); ?>" class="image-30" />
-			<img src="<?php echo esc_url( admin_url( 'images/screenshots/flex-header-3.png' ) ); ?>" class="image-30 last-feature" />
-		</div>
-	</div>
+	<h3><?php _e( 'New Default Theme' ); ?></h3>
 
 	<div class="feature-section images-stagger-right">
-		<img src="<?php echo esc_url( admin_url( 'images/screenshots/flex-header-media-library.png' ) ); ?>" class="image-50" />
-		<h4><?php _e( 'Choose from Media Library' ); ?></h4>
-		<p><?php _e( 'Tired of re-uploading the same custom header image every time you check out a new theme? Now you can choose header images from your media library for easier customization.' ); ?></p>
+		<img alt="" src="<?php echo esc_url( admin_url( 'images/screenshots/about-twenty-twelve.png' ) ); ?>" class="image-66" />
+		<h4><?php _e( 'Introducing Twenty Twelve' ); ?></h4>
+		<p><?php _e( 'The newest default theme for WordPress is simple, flexible, and elegant.' ); ?></p>
+		<p><?php _e( 'What makes it really shine are the design details, like the gorgeous Open Sans typeface and a fully responsive design that looks great on any device.' ); ?></p>
+		<p><?php _e( 'Naturally, Twenty Twelve supports all the theme features you’ve come to know and love, but it is also designed to be as great for a website as it is for a blog.' ); ?></p>
 	</div>
 </div>
 
 <div class="changelog">
-	<h3><?php _e( 'Twitter Embeds' ); ?></h3>
+	<h3><?php _e( 'Retina Ready' ); ?></h3>
 
 	<div class="feature-section images-stagger-right">
-		<img src="<?php echo esc_url( admin_url( 'images/screenshots/twitter-embed-1.png' ) ); ?>" class="image-30" />
-		<img src="<?php echo esc_url( admin_url( 'images/screenshots/twitter-embed-2.png' ) ); ?>" class="image-30" />
-		<h4><?php _e( 'Share Tweets with Style' ); ?></h4>
-		<p><?php _e( 'You can now embed individual tweets in posts. It includes action links that allow readers to reply to, retweet, and favorite the tweet without leaving your site. Just paste a tweet URL on its own line.' ); ?></p>
-		<p><?php printf( __( 'This works with URLs from some other sites, too. For more, see the Codex article on <a href="%s">Embeds</a>.' ), __( 'http://codex.wordpress.org/Embeds' ) ); ?></p>
+		<img alt="" src="<?php echo esc_url( admin_url( 'images/screenshots/about-retina.png' ) ); ?>" class="image-66" />
+		<h4><?php _e( 'So Sharp You Can&#8217;t See the Pixels' ); ?></h4>
+		<p><?php _e( 'The WordPress dashboard now looks beautiful on high-resolution screens like those found on the iPad, Kindle Fire HD, Nexus 10, and MacBook Pro with Retina Display. Icons and other visual elements are crystal clear and full of detail.' ); ?></p>
 	</div>
-
 </div>
 
-
 <div class="changelog">
-	<h3><?php _e( 'Better Captions' ); ?></h3>
+	<h3><?php _e( 'Smoother Experience' ); ?></h3>
 
 	<div class="feature-section images-stagger-right">
-		<img src="<?php echo esc_url( admin_url( 'images/screenshots/captions-1.png' ) ); ?>" class="image-30" />
-		<img src="<?php echo esc_url( admin_url( 'images/screenshots/captions-2.png' ) ); ?>" class="image-30" />
-		<h4><?php _e( 'HTML Support' ); ?></h4>
-		<p><?php _e( 'Basic HTML support has been added to the caption field in the image uploader. This allows you to add links &mdash; great for photo credits or licensing details &mdash; and basic formatting such as bold and italicized text.' ); ?></p>
+		<img alt="" src="<?php echo esc_url( admin_url( 'images/screenshots/about-color-picker.png' ) ); ?>" class="image-30" />
+		<h4><?php _e( 'Better Accessibility' ); ?></h4>
+		<p><?php _e( 'WordPress supports more usage modes than ever before. Screenreaders, touch devices, and mouseless workflows all have improved ease of use and accessibility.' ); ?></p>
+
+		<h4><?php _e( 'More Polish' ); ?></h4>
+		<p><?php _e( 'A number of screens and controls have been refined. For example, a new color picker makes it easier for you to choose that perfect shade of blue.' ); ?></p>
 	</div>
 </div>
 
 <div class="changelog">
 	<h3><?php _e( 'Under the Hood' ); ?></h3>
 
-	<div class="feature-section three-col">
+	<div class="feature-section col three-col">
 		<div>
-			<h4><?php _e( 'Faster WP_Query' ); ?></h4>
-			<p><?php _e( 'Post queries have been optimized to improve performance, especially for sites with large databases.' ); ?></p>
-
-			<h4><?php _e( 'Faster Translations' ); ?></h4>
-			<p><?php _e( 'The number of strings loaded on the front end was greatly reduced, resulting in faster front page load times for localized installations.' ); ?> <?php _e( 'Also, better support for East Asian languages, right-to-left languages, theme translations, and more.' ); ?></p>
+			<h4><?php _e( 'Meta Query Additions' ); ?></h4>
+			<p><?php _e( 'The <code>WP_Comment_Query</code> and <code>WP_User_Query</code> classes now support meta queries just like <code>WP_Query.</code> Meta queries now support querying for objects without a particular meta key.' ); ?></p>
 		</div>
 		<div>
-			<h4><?php _e( 'Themes API' ); ?></h4>
-			<p><?php _e( 'WP_Theme, wp_get_themes(), wp_get_theme(). Faster, uses less memory, makes use of persistent caching.' ); ?></p>
-
-			<h4><?php _e( 'Custom Header and Background API' ); ?></h4>
-			<p><?php  _e( 'Custom header and background API relocated into the theme support API.' ); ?></p>
+			<h4><?php _e( 'Post Objects' ); ?></h4>
+			<p><?php _e( 'Post objects are now instances of a <code>WP_Post</code> class, which improves performance by loading selected properties on demand.' ); ?></p>
 		</div>
 		<div class="last-feature">
-			<h4><?php _e( 'XML-RPC API' ); ?></h4>
-			<p><?php printf( __( 'A new <a href="%s">WordPress API</a> that supports custom content types and taxonomies, as well as dozens of other bug fixes and improvements.' ), __( 'http://codex.wordpress.org/XML-RPC_WordPress_API' ) ); ?></p>
+			<h4><?php _e( 'Image Editing API' ); ?></h4>
+			<p><?php _e( 'The <code>WP_Image_Editor</code> class abstracts image editing functionality such as cropping and scaling, and uses ImageMagick when available.' ); ?></p>
+		</div>
+	</div>
 
+	<div class="feature-section col three-col">
+		<div>
+			<h4><?php _e( 'Multisite Improvements' ); ?></h4>
+			<p><?php _e( '<code>switch_to_blog()</code> is now significantly faster and more reliable.' ); ?></p>
+		</div>
+		<div>
+			<h4><?php _e( 'XML-RPC API' ); ?></h4>
+			<p><?php printf( __( 'The <a href="%s">WordPress API</a> is now always enabled, and supports fetching users, editing profiles, managing post revisions, and searching posts.' ), __( 'http://codex.wordpress.org/XML-RPC_WordPress_API' ) ); ?></p>
+		</div>
+		<div class="last-feature">
 			<h4><?php _e( 'External Libraries' ); ?></h4>
-			<p><?php _e( 'jQuery, jQuery UI, TinyMCE, Plupload, PHPMailer, SimplePie, and other libraries were updated. jQuery UI Touch Punch was introduced.' ); ?></p>
+			<p><?php printf( __( 'WordPress now includes the <a href="%1$s">Underscore</a> and <a href="%2$s">Backbone</a> JavaScript libraries. TinyMCE, jQuery, jQuery UI, and SimplePie have all been updated to the latest versions.' ), 'http://underscorejs.org/', 'http://backbonejs.org/' ); ?></p>
 		</div>
 	</div>
 </div>
--- a/web/wp-admin/admin-ajax.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-admin/admin-ajax.php	Wed Dec 19 17:46:52 2012 -0800
@@ -16,13 +16,16 @@
 define( 'DOING_AJAX', true );
 define( 'WP_ADMIN', true );
 
+/** Load WordPress Bootstrap */
+require_once( dirname( dirname( __FILE__ ) ) . '/wp-load.php' );
+
+/** Allow for cross-domain requests (from the frontend). */
+send_origin_headers();
+
 // Require an action parameter
 if ( empty( $_REQUEST['action'] ) )
 	die( '0' );
 
-/** Load WordPress Bootstrap */
-require_once( dirname( dirname( __FILE__ ) ) . '/wp-load.php' );
-
 /** Load WordPress Administration APIs */
 require_once( ABSPATH . 'wp-admin/includes/admin.php' );
 
@@ -33,6 +36,7 @@
 @header( 'X-Robots-Tag: noindex' );
 
 send_nosniff_header();
+nocache_headers();
 
 do_action( 'admin_init' );
 
@@ -50,7 +54,9 @@
 	'menu-locations-save', 'menu-quick-search', 'meta-box-order', 'get-permalink',
 	'sample-permalink', 'inline-save', 'inline-save-tax', 'find_posts', 'widgets-order',
 	'save-widget', 'set-post-thumbnail', 'date_format', 'time_format', 'wp-fullscreen-save-post',
-	'wp-remove-post-lock', 'dismiss-wp-pointer', 'upload-attachment',
+	'wp-remove-post-lock', 'dismiss-wp-pointer', 'upload-attachment', 'get-attachment',
+	'query-attachments', 'save-attachment', 'save-attachment-compat', 'send-link-to-editor',
+	'send-attachment-to-editor', 'save-attachment-order',
 );
 
 // Register core Ajax calls.
--- a/web/wp-admin/admin-footer.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-admin/admin-footer.php	Wed Dec 19 17:46:52 2012 -0800
@@ -15,17 +15,12 @@
 <div class="clear"></div></div><!-- wpbody -->
 <div class="clear"></div></div><!-- wpcontent -->
 
-<div id="footer">
+<div id="wpfooter">
 <?php do_action( 'in_admin_footer' ); ?>
 <p id="footer-left" class="alignleft"><?php
-$upgrade = apply_filters( 'update_footer', '' );
-$footer_text = array(
-	'<span id="footer-thankyou">' . __( 'Thank you for creating with <a href="http://wordpress.org/">WordPress</a>.' ) . '</span>',
-);
-echo apply_filters( 'admin_footer_text', implode( ' &bull; ', $footer_text ) );
-unset( $footer_text );
+echo apply_filters( 'admin_footer_text', '<span id="footer-thankyou">' . __( 'Thank you for creating with <a href="http://wordpress.org/">WordPress</a>.' ) . '</span>' );
 ?></p>
-<p id="footer-upgrade" class="alignright"><?php echo $upgrade; ?></p>
+<p id="footer-upgrade" class="alignright"><?php echo apply_filters( 'update_footer', '' ); ?></p>
 <div class="clear"></div>
 </div>
 <?php
--- a/web/wp-admin/admin-header.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-admin/admin-header.php	Wed Dec 19 17:46:52 2012 -0800
@@ -50,12 +50,7 @@
 ?>
 <script type="text/javascript">
 addLoadEvent = function(func){if(typeof jQuery!="undefined")jQuery(document).ready(func);else if(typeof wpOnload!='function'){wpOnload=func;}else{var oldonload=wpOnload;wpOnload=function(){oldonload();func();}}};
-var userSettings = {
-		'url': '<?php echo SITECOOKIEPATH; ?>',
-		'uid': '<?php if ( ! isset($current_user) ) $current_user = wp_get_current_user(); echo $current_user->ID; ?>',
-		'time':'<?php echo time() ?>'
-	},
-	ajaxurl = '<?php echo admin_url( 'admin-ajax.php', 'relative' ); ?>',
+var ajaxurl = '<?php echo admin_url( 'admin-ajax.php', 'relative' ); ?>',
 	pagenow = '<?php echo $current_screen->id; ?>',
 	typenow = '<?php echo $current_screen->post_type; ?>',
 	adminpage = '<?php echo $admin_body_class; ?>',
@@ -76,6 +71,9 @@
 if ( get_user_setting('mfold') == 'f' )
 	$admin_body_class .= ' folded';
 
+if ( !get_user_setting('unfold') )
+	$admin_body_class .= ' auto-fold';
+
 if ( is_admin_bar_showing() )
 	$admin_body_class .= ' admin-bar';
 
@@ -94,7 +92,7 @@
 
 ?>
 </head>
-<body class="wp-admin no-js <?php echo apply_filters( 'admin_body_class', '' ) . " $admin_body_class"; ?>">
+<body class="wp-admin wp-core-ui no-js <?php echo apply_filters( 'admin_body_class', '' ) . " $admin_body_class"; ?>">
 <script type="text/javascript">
 	document.body.className = document.body.className.replace('no-js','js');
 </script>
@@ -107,6 +105,7 @@
 ?>
 
 <div id="wpwrap">
+<a tabindex="1" href="#wpbody-content" class="screen-reader-shortcut"><?php _e('Skip to main content'); ?></a>
 <?php require(ABSPATH . 'wp-admin/menu-header.php'); ?>
 <div id="wpcontent">
 
@@ -122,7 +121,7 @@
 
 ?>
 
-<div id="wpbody-content">
+<div id="wpbody-content" aria-label="<?php esc_attr_e('Main content'); ?>" tabindex="0">
 <?php
 
 $current_screen->render_screen_meta();
--- a/web/wp-admin/admin.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-admin/admin.php	Wed Dec 19 17:46:52 2012 -0800
@@ -29,6 +29,8 @@
 
 require_once(dirname(dirname(__FILE__)) . '/wp-load.php');
 
+nocache_headers();
+
 if ( get_option('db_upgraded') ) {
 	flush_rewrite_rules();
 	update_option( 'db_upgraded',  false );
@@ -51,6 +53,7 @@
 		 * @since 2.8.4b
 		 */
 		$c = get_blog_count();
+		// If 50 or fewer sites, run every time. Else, run "about ten percent" of the time. Shh, don't check that math.
 		if ( $c <= 50 || ( $c > 50 && mt_rand( 0, (int)( $c / 50 ) ) == 1 ) ) {
 			require_once( ABSPATH . WPINC . '/http.php' );
 			$response = wp_remote_get( admin_url( 'upgrade.php?step=1' ), array( 'timeout' => 120, 'httpversion' => '1.1' ) );
@@ -65,8 +68,6 @@
 
 auth_redirect();
 
-nocache_headers();
-
 // Schedule trash collection
 if ( !wp_next_scheduled('wp_scheduled_delete') && !defined('WP_INSTALLING') )
 	wp_schedule_event(time(), 'daily', 'wp_scheduled_delete');
@@ -79,7 +80,6 @@
 wp_reset_vars(array('profile', 'redirect', 'redirect_url', 'a', 'text', 'trackback', 'pingback'));
 
 wp_enqueue_script( 'common' );
-wp_enqueue_script( 'jquery-color' );
 
 $editing = false;
 
@@ -187,6 +187,8 @@
 		exit;
 	}
 
+	do_action( 'load-importer-' . $importer );
+
 	$parent_file = 'tools.php';
 	$submenu_file = 'import.php';
 	$title = __('Import');
--- a/web/wp-admin/async-upload.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-admin/async-upload.php	Wed Dec 19 17:46:52 2012 -0800
@@ -13,20 +13,34 @@
 else
 	require_once('../wp-load.php');
 
-// Flash often fails to send cookies with the POST or upload, so we need to pass it in GET or POST instead
-if ( is_ssl() && empty($_COOKIE[SECURE_AUTH_COOKIE]) && !empty($_REQUEST['auth_cookie']) )
-	$_COOKIE[SECURE_AUTH_COOKIE] = $_REQUEST['auth_cookie'];
-elseif ( empty($_COOKIE[AUTH_COOKIE]) && !empty($_REQUEST['auth_cookie']) )
-	$_COOKIE[AUTH_COOKIE] = $_REQUEST['auth_cookie'];
-if ( empty($_COOKIE[LOGGED_IN_COOKIE]) && !empty($_REQUEST['logged_in_cookie']) )
-	$_COOKIE[LOGGED_IN_COOKIE] = $_REQUEST['logged_in_cookie'];
-unset($current_user);
+if ( ! ( isset( $_REQUEST['action'] ) && 'upload-attachment' == $_REQUEST['action'] ) ) {
+	// Flash often fails to send cookies with the POST or upload, so we need to pass it in GET or POST instead
+	if ( is_ssl() && empty($_COOKIE[SECURE_AUTH_COOKIE]) && !empty($_REQUEST['auth_cookie']) )
+		$_COOKIE[SECURE_AUTH_COOKIE] = $_REQUEST['auth_cookie'];
+	elseif ( empty($_COOKIE[AUTH_COOKIE]) && !empty($_REQUEST['auth_cookie']) )
+		$_COOKIE[AUTH_COOKIE] = $_REQUEST['auth_cookie'];
+	if ( empty($_COOKIE[LOGGED_IN_COOKIE]) && !empty($_REQUEST['logged_in_cookie']) )
+		$_COOKIE[LOGGED_IN_COOKIE] = $_REQUEST['logged_in_cookie'];
+	unset($current_user);
+}
+
 require_once('./admin.php');
 
+if ( !current_user_can('upload_files') )
+	wp_die(__('You do not have permission to upload files.'));
+
 header('Content-Type: text/html; charset=' . get_option('blog_charset'));
 
-if ( !current_user_can('upload_files') )
-	wp_die(__('You do not have permission to upload files.'));
+if ( isset( $_REQUEST['action'] ) && 'upload-attachment' === $_REQUEST['action'] ) {
+	define( 'DOING_AJAX', true );
+	include ABSPATH . 'wp-admin/includes/ajax-actions.php';
+
+	send_nosniff_header();
+	nocache_headers();
+
+	wp_ajax_upload_attachment();
+	die( '0' );
+}
 
 // just fetch the detail form for that attachment
 if ( isset($_REQUEST['attachment_id']) && ($id = intval($_REQUEST['attachment_id'])) && $_REQUEST['fetch'] ) {
@@ -37,19 +51,36 @@
 	if ( ! current_user_can( $post_type_object->cap->edit_post, $id ) )
 		wp_die( __( 'You are not allowed to edit this item.' ) );
 
-	if ( 2 == $_REQUEST['fetch'] ) {
-		add_filter('attachment_fields_to_edit', 'media_single_attachment_fields_to_edit', 10, 2);
-		echo get_media_item($id, array( 'send' => false, 'delete' => true ));
-	} else {
-		add_filter('attachment_fields_to_edit', 'media_post_single_attachment_fields_to_edit', 10, 2);
-		echo get_media_item($id);
+	switch ( $_REQUEST['fetch'] ) {
+		case 3 :
+			if ( $thumb_url = wp_get_attachment_image_src( $id, 'thumbnail', true ) )
+				echo '<img class="pinkynail" src="' . esc_url( $thumb_url[0] ) . '" alt="" />';
+			echo '<a class="edit-attachment" href="' . esc_url( get_edit_post_link( $id ) ) . '" target="_blank">' . _x( 'Edit', 'media item' ) . '</a>';
+			$title = $post->post_title ? $post->post_title : wp_basename( $post->guid ); // title shouldn't ever be empty, but use filename just in cas.e
+			echo '<div class="filename new"><span class="title">' . esc_html( wp_html_excerpt( $title, 60 ) ) . '</span></div>';
+			break;
+		case 2 :
+			add_filter('attachment_fields_to_edit', 'media_single_attachment_fields_to_edit', 10, 2);
+			echo get_media_item($id, array( 'send' => false, 'delete' => true ));
+			break;
+		default:
+			add_filter('attachment_fields_to_edit', 'media_post_single_attachment_fields_to_edit', 10, 2);
+			echo get_media_item($id);
+			break;
 	}
 	exit;
 }
 
 check_admin_referer('media-form');
 
-$id = media_handle_upload('async-upload', $_REQUEST['post_id']);
+$post_id = 0;
+if ( isset( $_REQUEST['post_id'] ) ) {
+	$post_id = absint( $_REQUEST['post_id'] );
+	if ( ! get_post( $post_id ) || ! current_user_can( 'edit_post', $post_id ) )
+		$post_id = 0;
+}
+
+$id = media_handle_upload( 'async-upload', $post_id );
 if ( is_wp_error($id) ) {
 	echo '<div class="error-div">
 	<a class="dismiss" href="#" onclick="jQuery(this).parents(\'div.media-item\').slideUp(200, function(){jQuery(this).remove();});">' . __('Dismiss') . '</a>
--- a/web/wp-admin/credits.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-admin/credits.php	Wed Dec 19 17:46:52 2012 -0800
@@ -30,7 +30,7 @@
 		if ( ! is_array( $results ) )
 			return false;
 
-		set_site_transient( 'wordpress_credits_' . $locale, $results, 86400 ); // One day
+		set_site_transient( 'wordpress_credits_' . $locale, $results, DAY_IN_SECONDS );
 	}
 
 	return $results;
@@ -52,7 +52,7 @@
 
 <h1><?php printf( __( 'Welcome to WordPress %s' ), $display_version ); ?></h1>
 
-<div class="about-text"><?php printf( __( 'Thank you for updating to the latest version! WordPress %s is already making your website better, faster, and more attractive, just like you!' ), $display_version ); ?></div>
+<div class="about-text"><?php printf( __( 'Thank you for updating to the latest version! WordPress %s is more polished and enjoyable than ever before. We hope you like it.' ), $display_version ); ?></div>
 
 <div class="wp-badge"><?php printf( __( 'Version %s' ), $display_version ); ?></div>
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-admin/css/color-picker-rtl.css	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,27 @@
+.wp-color-result {
+	margin: 0 0 6px 6px;
+	padding-left: 0;
+	padding-right: 30px;
+}
+
+.wp-color-result:after {
+	border-radius: 0 0 1px 1px;
+	border-left: 0;
+	border-right: 1px solid #bbb;
+	left: auto;
+	right: 0;
+}
+
+.wp-color-result:hover {
+	border-color: #aaa;
+}
+
+.wp-color-result:hover:after {
+	border-left: 0;
+	border-right: 1px solid #999;
+}
+
+.wp-picker-container .button {
+	margin-left: 0;
+	margin-right: 6px;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-admin/css/color-picker-rtl.min.css	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,1 @@
+.wp-color-result{margin:0 0 6px 6px;padding-left:0;padding-right:30px}.wp-color-result:after{border-radius:0 0 1px 1px;border-left:0;border-right:1px solid #bbb;left:auto;right:0}.wp-color-result:hover{border-color:#aaa}.wp-color-result:hover:after{border-left:0;border-right:1px solid #999}.wp-picker-container .button{margin-left:0;margin-right:6px}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-admin/css/color-picker.css	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,107 @@
+.wp-color-picker {
+	width: 80px;
+}
+
+.wp-picker-container .hidden {
+	display: none;
+}
+
+.wp-color-result {
+	background-color: #f9f9f9;
+	border: 1px solid #bbb;
+	border-radius: 2px;
+	cursor: pointer;
+	display: inline-block;
+	height: 22px;
+	margin: 0 6px 6px 0px;
+	position: relative;
+	top: 1px;
+	user-select: none;
+	-moz-user-select: none;
+	-ms-user-select: none;
+	-webkit-user-select: none;
+	vertical-align: bottom;
+	display: inline-block;
+	padding-left: 30px;
+}
+
+.wp-color-result:after {
+	background: #f3f3f3;
+	background-image: -webkit-gradient(linear, left top, left bottom, from(#fefefe), to(#f4f4f4));
+	background-image: -webkit-linear-gradient(top, #fefefe, #f4f4f4);
+	background-image:    -moz-linear-gradient(top, #fefefe, #f4f4f4);
+	background-image:      -o-linear-gradient(top, #fefefe, #f4f4f4);
+	background-image:   linear-gradient(to bottom, #fefefe, #f4f4f4);
+ 	color: #333;
+	text-shadow: 0 1px 0 #fff;
+	border-radius: 0 1px 1px 0;
+	border-left: 1px solid #bbb;
+	content: attr( title );
+	display: block;
+	font-size: 11px;
+	line-height: 22px;
+	padding: 0 6px;
+	position: relative;
+	right: 0;
+	text-align: center;
+	top: 0;
+}
+
+.wp-color-result:hover {
+	border-color: #aaa;
+	-webkit-box-shadow: 0 1px 2px rgba( 0, 0, 0, 0.2 );
+	box-shadow: 0 1px 1px rgba( 0, 0, 0, 0.1 );
+}
+
+.wp-color-result:hover:after {
+	color: #222;
+	border-color: #aaa;
+	border-left: 1px solid #999;
+}
+
+.wp-color-result.wp-picker-open {
+	top: 0;
+}
+
+.wp-color-result.wp-picker-open:after {
+	content: attr( data-current );
+}
+
+.wp-picker-container, .wp-picker-container:active {
+	display: inline-block;
+	outline: 0;
+}
+
+.wp-color-result:focus {
+	border-color: #888;
+	-webkit-box-shadow: 0 1px 2px rgba( 0, 0, 0, 0.2 );
+	box-shadow: 0 1px 2px rgba( 0, 0, 0, 0.2 );
+}
+
+.wp-color-result:focus:after {
+	border-color: #888;
+}
+
+.wp-picker-open + .wp-picker-input-wrap {
+	display: inline-block;
+	vertical-align: top;
+}
+
+.wp-picker-container .button {
+	margin-left: 6px;
+}
+
+.wp-picker-container .iris-square-slider .ui-slider-handle:focus {
+	background-color: #555
+}
+
+.wp-picker-container .iris-picker {
+	border-color: #dfdfdf;
+	margin-top: 6px;
+}
+
+input[type="text"].iris-error {
+	background-color: #ffebe8;
+	border-color: #c00;
+	color: #000;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-admin/css/color-picker.min.css	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,1 @@
+.wp-color-picker{width:80px}.wp-picker-container .hidden{display:none}.wp-color-result{background-color:#f9f9f9;border:1px solid #bbb;border-radius:2px;cursor:pointer;display:inline-block;height:22px;margin:0 6px 6px 0;position:relative;top:1px;user-select:none;-moz-user-select:none;-ms-user-select:none;-webkit-user-select:none;vertical-align:bottom;display:inline-block;padding-left:30px}.wp-color-result:after{background:#f3f3f3;background-image:-webkit-gradient(linear,left top,left bottom,from(#fefefe),to(#f4f4f4));background-image:-webkit-linear-gradient(top,#fefefe,#f4f4f4);background-image:-moz-linear-gradient(top,#fefefe,#f4f4f4);background-image:-o-linear-gradient(top,#fefefe,#f4f4f4);background-image:linear-gradient(to bottom,#fefefe,#f4f4f4);color:#333;text-shadow:0 1px 0 #fff;border-radius:0 1px 1px 0;border-left:1px solid #bbb;content:attr(title);display:block;font-size:11px;line-height:22px;padding:0 6px;position:relative;right:0;text-align:center;top:0}.wp-color-result:hover{border-color:#aaa;-webkit-box-shadow:0 1px 2px rgba(0,0,0,0.2);box-shadow:0 1px 1px rgba(0,0,0,0.1)}.wp-color-result:hover:after{color:#222;border-color:#aaa;border-left:1px solid #999}.wp-color-result.wp-picker-open{top:0}.wp-color-result.wp-picker-open:after{content:attr(data-current)}.wp-picker-container,.wp-picker-container:active{display:inline-block;outline:0}.wp-color-result:focus{border-color:#888;-webkit-box-shadow:0 1px 2px rgba(0,0,0,0.2);box-shadow:0 1px 2px rgba(0,0,0,0.2)}.wp-color-result:focus:after{border-color:#888}.wp-picker-open+.wp-picker-input-wrap{display:inline-block;vertical-align:top}.wp-picker-container .button{margin-left:6px}.wp-picker-container .iris-square-slider .ui-slider-handle:focus{background-color:#555}.wp-picker-container .iris-picker{border-color:#dfdfdf;margin-top:6px}input[type="text"].iris-error{background-color:#ffebe8;border-color:#c00;color:#000}
\ No newline at end of file
--- a/web/wp-admin/css/colors-classic.css	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-admin/css/colors-classic.css	Wed Dec 19 17:46:52 2012 -0800
@@ -1,1 +1,2201 @@
-html,.wp-dialog{background-color:#fff}* html input,* html .widget{border-color:#dfdfdf}textarea,input[type="text"],input[type="password"],input[type="file"],input[type="button"],input[type="submit"],input[type="reset"],input[type="email"],input[type="number"],input[type="search"],input[type="tel"],input[type="url"],select{border-color:#dfdfdf;background-color:#fff;color:#333}select{color:#000}textarea:focus,input[type="text"]:focus,input[type="password"]:focus,input[type="file"]:focus,input[type="button"]:focus,input[type="submit"]:focus,input[type="reset"]:focus,input[type="email"]:focus,input[type="number"]:focus,input[type="search"]:focus,input[type="tel"]:focus,input[type="url"]:focus,select:focus{border-color:#d1e5ee}kbd,code{background:#eaeaea}input[readonly]{background-color:#eee}.find-box-search{border-color:#dfdfdf;background-color:#f1f1f1}.find-box{background-color:#f1f1f1}.find-box-inside{background-color:#fff}a.page-numbers:hover{border-color:#999}body,#wpbody,.form-table .pre,.ui-autocomplete li a{color:#333}body>#upload-menu{border-bottom-color:#fff}#postcustomstuff table,#your-profile fieldset,#rightnow,div.dashboard-widget,#dashboard-widgets p.dashboard-widget-links{border-color:#d1e5ee}#poststuff .inside label.spam,#poststuff .inside label.deleted{color:red}#poststuff .inside label.waiting{color:orange}#poststuff .inside label.approved{color:green}#postcustomstuff table{border-color:#dfdfdf;background-color:#f9f9f9}#postcustomstuff thead th{background-color:#f1f1f1}#postcustomstuff table input,#postcustomstuff table textarea{border-color:#dfdfdf;background-color:#fff}.widefat{border-color:#d1e5ee;background-color:#fff}div.dashboard-widget-error{background-color:#c43}div.dashboard-widget-notice{background-color:#cfe1ef}div.dashboard-widget-submit{border-top-color:#ccc}ul.category-tabs li{border-color:transparent}div.tabs-panel,.wp-tab-panel,ul.category-tabs li.tabs,ul.add-menu-item-tabs li.tabs,.wp-tab-active{border-color:#dfdfdf;background-color:#fff}ul.category-tabs li.tabs,ul.add-menu-item-tabs li.tabs,.wp-tab-active{background-color:#fff}input.disabled,textarea.disabled{background-color:#ccc}#plugin-information .action-button a,#plugin-information .action-button a:hover,#plugin-information .action-button a:visited{color:#fff}.widget .widget-top,.postbox h3,.stuffbox h3,.widefat thead tr th,.widefat tfoot tr th,h3.dashboard-widget-title,h3.dashboard-widget-title span,h3.dashboard-widget-title small,.find-box-head,.sidebar-name,#nav-menu-header,#nav-menu-footer,.menu-item-handle,#fullscreen-topbar{background-color:#f5fafd;background-image:-ms-linear-gradient(top,#f7fcfe,#eff8ff);background-image:-moz-linear-gradient(top,#f7fcfe,#eff8ff);background-image:-o-linear-gradient(top,#f7fcfe,#eff8ff);background-image:-webkit-gradient(linear,left top,left bottom,from(#f7fcfe),to(#eff8ff));background-image:-webkit-linear-gradient(top,#f7fcfe,#eff8ff);background-image:linear-gradient(top,#f7fcfe,#eff8ff)}.widget .widget-top,.postbox h3,.stuffbox h3{border-bottom-color:#d1e5ee;text-shadow:#fff 0 1px 0;-moz-box-shadow:0 1px 0 #fff;-webkit-box-shadow:0 1px 0 #fff;box-shadow:0 1px 0 #fff}.form-table th,.form-wrap label{color:#222;text-shadow:#fff 0 1px 0}.description,.form-wrap p{color:#666}strong .post-com-count span{background-color:#21759b}.sorthelper{background-color:#ccf3fa}.ac_match,.subsubsub a.current{color:#000}.wrap h2{color:#174f69}.wrap .add-new-h2{background:#f1f1f1}.subtitle{color:#777}.ac_over{background-color:#f0f0b8}.ac_results{background-color:#fff;border-color:#808080}.ac_results li{color:#101010}.alternate,.alt{background-color:#f7fcfe}.available-theme a.screenshot{background-color:#f1f1f1;border-color:#ddd}.bar{background-color:#e8e8e8;border-right-color:#99d}#media-upload,#media-upload .media-item .slidetoggle{background:#fff}#media-upload .slidetoggle{border-top-color:#dfdfdf}div.error,.login #login_error{background-color:#ffebe8;border-color:#c00}div.error a{color:#c00}.form-invalid{background-color:#ffebe8!important}.form-invalid input,.form-invalid select{border-color:#c00!important}.submit,#commentsdiv #add-new-comment{border-color:#dfdfdf}.highlight{background-color:#e4f2fd;color:#000}.howto,.nonessential,#edit-slug-box,.form-input-tip,.subsubsub{color:#666}.media-upload-form label.form-help,td.help{color:#9a9a9a}.ui-autocomplete{background-color:#eff8ff;border-color:#d1e5ee}.ui-autocomplete li a.ui-state-hover{background-color:#def1ff}.post-com-count{background-image:url(../images/bubble_bg.gif);color:#fff}.post-com-count span{background-color:#bbb;color:#fff}.post-com-count:hover span{background-color:#d54e21}.quicktags,.search{background-color:#ccc;color:#000}.side-info h5{border-bottom-color:#dadada}.side-info ul{color:#666}.button,.button-secondary,.submit input,input[type=button],input[type=submit]{border-color:#bbb;color:#464646}.button:hover,.button-secondary:hover,.submit input:hover,input[type=button]:hover,input[type=submit]:hover{color:#000;border-color:#666}.button,.submit input,.button-secondary{background:#f2f2f2 url(../images/white-grad.png) repeat-x scroll left top;text-shadow:rgba(255,255,255,1) 0 1px 0}.button:active,.submit input:active,.button-secondary:active{background:#eee url(../images/white-grad-active.png) repeat-x scroll left top}input.button-primary,button.button-primary,a.button-primary{border-color:#298cba;font-weight:bold;color:#fff;background:#21759b url(../images/button-grad.png) repeat-x scroll left top;text-shadow:rgba(0,0,0,0.3) 0 -1px 0}input.button-primary:active,button.button-primary:active,a.button-primary:active{background:#21759b url(../images/button-grad-active.png) repeat-x scroll left top;color:#eaf2fa}input.button-primary:hover,button.button-primary:hover,a.button-primary:hover,a.button-primary:focus,a.button-primary:active{border-color:#13455b;color:#eaf2fa}.button-disabled,.button[disabled],.button:disabled,.button-secondary[disabled],.button-secondary:disabled,a.button.disabled{color:#aaa!important;border-color:#ddd!important}.button-primary-disabled,.button-primary[disabled],.button-primary:disabled{color:#9fd0d5!important;background:#298cba!important}a:hover,a:active,a:focus{color:#d54e21}#adminmenu a:hover,#adminmenu li.menu-top>a:focus,#adminmenu ul.wp-submenu a:hover,#the-comment-list .comment a:hover,#rightnow a:hover,#media-upload a.del-link:hover,div.dashboard-widget-submit input:hover,.subsubsub a:hover,.subsubsub a.current:hover,.ui-tabs-nav a:hover,.plugins .inactive a:hover,#all-plugins-table .plugins .inactive a:hover,#search-plugins-table .plugins .inactive a:hover{color:#d54e21}#the-comment-list .comment-item,#dashboard-widgets #dashboard_quick_press form p.submit{border-color:#dfdfdf}#side-sortables .category-tabs .tabs a,#side-sortables .add-menu-item-tabs .tabs a,.wp-tab-bar .wp-tab-active a{color:#333}#rightnow .rbutton{background-color:#ebebeb;color:#264761}.submitbox .submit{background-color:#464646;color:#ccc}.plugins a.delete:hover,#all-plugins-table .plugins a.delete:hover,#search-plugins-table .plugins a.delete:hover,.submitbox .submitdelete{color:#f00;border-bottom-color:#f00}.submitbox .submitdelete:hover,#media-items a.delete:hover{color:#fff;background-color:#f00;border-bottom-color:#f00}#normal-sortables .submitbox .submitdelete:hover{color:#000;background-color:#f00;border-bottom-color:#f00}.tablenav .dots{border-color:transparent}.tablenav .next,.tablenav .prev{border-color:transparent;color:#21759b}.tablenav .next:hover,.tablenav .prev:hover{border-color:transparent;color:#d54e21}div.updated,.login .message{background-color:#ffffe0;border-color:#e6db55}.update-message{color:#000}a.page-numbers{border-bottom-color:#b8d3e2}.commentlist li{border-bottom-color:#ccc}.widefat td,.widefat th{border-top-color:#fff;border-bottom-color:#d0dfe9}.widefat th{text-shadow:rgba(255,255,255,0.8) 0 1px 0}.widefat td{color:#555}.widefat p,.widefat ol,.widefat ul{color:#333}.widefat thead tr th,.widefat tfoot tr th,h3.dashboard-widget-title,h3.dashboard-widget-title span,h3.dashboard-widget-title small,.find-box-head{color:#333}th.sortable a:hover,th.sortable a:active,th.sortable a:focus{color:#333}h3.dashboard-widget-title small a{color:#d7d7d7}h3.dashboard-widget-title small a:hover{color:#fff}a,#adminmenu a,#the-comment-list p.comment-author strong a,#media-upload a.del-link,#media-items a.delete,.plugins a.delete,.ui-tabs-nav a{color:#21759b}#adminmenu .awaiting-mod,#adminmenu .update-plugins,#sidemenu a .update-plugins,#rightnow .reallynow{background-color:#464646;color:#fff;-moz-box-shadow:rgba(255,255,255,0.5) 0 1px 0;-webkit-box-shadow:rgba(255,255,255,0.5) 0 1px 0;box-shadow:rgba(255,255,255,0.5) 0 1px 0}#plugin-information .action-button{background-color:#d54e21;color:#fff}#adminmenu li.current a .awaiting-mod,#adminmenu li a.wp-has-current-submenu .update-plugins{background-color:#464646;color:#fff;-moz-box-shadow:rgba(255,255,255,0.5) 0 1px 0;-webkit-box-shadow:rgba(255,255,255,0.5) 0 1px 0;box-shadow:rgba(255,255,255,0.5) 0 1px 0}div#media-upload-header,div#plugin-information-header{background-color:#f9f9f9;border-bottom-color:#dfdfdf}#currenttheme img{border-color:#666}#dashboard_secondary div.dashboard-widget-content ul li a{background-color:#f9f9f9}input.readonly,textarea.readonly{background-color:#ddd}.quicktags-toolbar input{background:#fff;background-image:-ms-linear-gradient(bottom,#e5f0f8,#fff);background-image:-moz-linear-gradient(bottom,#e5f0f8,#fff);background-image:-o-linear-gradient(bottom,#e5f0f8,#fff);background-image:-webkit-gradient(linear,left bottom,left top,from(#e5f0f8),to(#fff));background-image:-webkit-linear-gradient(bottom,#e5f0f8,#fff)!important;background-image:linear-gradient(bottom,#e5f0f8,#fff)}#editable-post-name{background-color:#fffbcc}#edit-slug-box strong,.tablenav .displaying-num,#submitted-on,.submitted-on{color:#777}.login #nav a,.login #backtoblog a{color:#21759b!important}.login #nav a:hover,.login #backtoblog a:hover{color:#d54e21!important}#footer{color:#777;border-color:#b0c8d7}#media-items .media-item,.media-item .describe,.imgedit-group{border-color:#dfdfdf}.checkbox,.side-info,.plugins tr,#your-profile #rich_editing{background-color:#fcfcfc}.plugins .inactive,.plugins .inactive th,.plugins .inactive td,tr.inactive+tr.plugin-update-tr .plugin-update{background-color:#f4f4f4}.plugin-update-tr .update-message{background-color:#fffbe4;border-color:#dfdfdf}.plugins .active,.plugins .active th,.plugins .active td{color:#000}.plugins .inactive a{color:#579}#the-comment-list tr.undo,#the-comment-list div.undo{background-color:#f4f4f4}#the-comment-list .unapproved{background-color:#ffffe0}#the-comment-list .approve a{color:#006505}#the-comment-list .unapprove a{color:#d98500}table.widefat span.delete a,table.widefat span.trash a,table.widefat span.spam a,#dashboard_recent_comments .delete a,#dashboard_recent_comments .trash a,#dashboard_recent_comments .spam a{color:#bc0b0b}.welcome-panel{border-color:#d1e5ee}.welcome-panel p{color:#777}.welcome-panel-column p{color:#464646}.welcome-panel h3{text-shadow:1px 1px 1px white}.widget,#widget-list .widget-top,.postbox,#titlediv,#poststuff .postarea,.stuffbox{border-color:#d1e5ee;-moz-box-shadow:inset 0 1px 0 #fff;-webkit-box-shadow:inset 0 1px 0 #fff;box-shadow:inset 0 1px 0 #fff;-webkit-border-radius:3px;border-radius:3px}.widget,#widget-list .widget-top,.postbox,.menu-item-settings{background-color:#f7fcfe}.postbox h3{color:#174f69}.widget .widget-top{color:#174f69}.sidebar-name:hover h3,.postbox h3:hover{color:#000}.curtime #timestamp{background-image:url(../images/date-button.gif)}#quicktags #ed_link{color:#00f}#rightnow .youhave{background-color:#f0f6fb}#rightnow a{color:#448abd}.tagchecklist span a,#bulk-titles div a{background:url(../images/xit.gif) no-repeat}.tagchecklist span a:hover,#bulk-titles div a:hover{background:url(../images/xit.gif) no-repeat -10px 0}#update-nag,.update-nag{background-color:#fffbcc;border-color:#e6db55;color:#555}.login #backtoblog a{color:#464646}#wphead{border-bottom:#d0dfe9 1px solid}#wphead h1 a{color:#174f69}#footer a:link,#footer a:visited{text-decoration:none}#footer a:hover{color:#000;text-decoration:underline}.file-error,abbr.required,.widget-control-remove:hover,table.widefat .delete a:hover,table.widefat .trash a:hover,table.widefat .spam a:hover,#dashboard_recent_comments .delete a:hover,#dashboard_recent_comments .trash a:hover #dashboard_recent_comments .spam a:hover{color:#f00}#pass-strength-result{background-color:#eee;border-color:#ddd!important}#pass-strength-result.bad{background-color:#ffb78c;border-color:#ff853c!important}#pass-strength-result.good{background-color:#ffec8b;border-color:#fc0!important}#pass-strength-result.short{background-color:#ffa0a0;border-color:#f04040!important}#pass-strength-result.strong{background-color:#c3ff88;border-color:#8dff1c!important}#quicktags{border-color:#cfdfe9;background-color:#cfdfe9;background-image:url("../images/ed-bg-vs.gif?ver=20101102")}.quicktags-toolbar input{border-color:#b2c4c8}.quicktags-toolbar input:hover{border-color:#d0dfe9;background:#f0f8fe}#poststuff .wp-editor-wrap .wp_themeSkin .mceStatusbar{border-color:#d0dfe9}#poststuff .wp-editor-wrap .wp_themeSkin .mceStatusbar *{color:#555}#poststuff #editor-toolbar .active{border-color:#d0dfe9 #d0dfe9 #eff8ff;background-color:#eff8ff;color:#333}#post-status-info{background-color:#eff8ff}.wp-editor-wrap .wp_themeSkin *,.wp-editor-wrap .wp_themeSkin a:hover,.wp-editor-wrap .wp_themeSkin a:link,.wp-editor-wrap .wp_themeSkin a:visited,.wp-editor-wrap .wp_themeSkin a:active{color:#000}.wp-editor-wrap .wp_themeSkin table.mceLayout{border-color:#bed1dd #bed1dd #d0dfe9}#editorcontainer #content,#editorcontainer .wp-editor-wrap .wp_themeSkin .mceIframeContainer{-moz-box-shadow:inset 1px 1px 2px rgba(0,0,0,0.1);-webkit-box-shadow:inset 1px 1px 2px rgba(0,0,0,0.1);box-shadow:inset 1px 1px 2px rgba(0,0,0,0.1)}.wp-editor-wrap .wp_themeSkin iframe{background:transparent}.wp-editor-wrap .wp_themeSkin .mceStatusbar{color:#000;background-color:#f5f5f5}.wp-editor-wrap .wp_themeSkin .mceButton{border-color:#b0c8d7;background-color:#cfdfe9;background-image:-ms-linear-gradient(bottom,#cfdfe9,#fff);background-image:-moz-linear-gradient(bottom,#cfdfe9,#fff);background-image:-o-linear-gradient(bottom,#cfdfe9,#fff);background-image:-webkit-gradient(linear,left bottom,left top,from(#cfdfe9),to(#fff));background-image:-webkit-linear-gradient(bottom,#cfdfe9,#fff)!important;background-image:linear-gradient(bottom,#cfdfe9,#fff)}.wp-editor-wrap .wp_themeSkin a.mceButtonEnabled:hover{border-color:#5589aa!important;background-color:#c9c9c9;background-image:-ms-linear-gradient(bottom,#bdccd5,#fff);background-image:-moz-linear-gradient(bottom,#bdccd5,#fff);background-image:-o-linear-gradient(bottom,#bdccd5,#fff);background-image:-webkit-gradient(linear,left bottom,left top,from(#bdccd5),to(#fff));background-image:-webkit-linear-gradient(bottom,#bdccd5,#fff)!important;background-image:linear-gradient(bottom,#bdccd5,#fff)}.wp-editor-wrap .wp_themeSkin a.mceButton:active,.wp-editor-wrap .wp_themeSkin a.mceButtonEnabled:active,.wp-editor-wrap .wp_themeSkin a.mceButtonSelected:active,.wp-editor-wrap .wp_themeSkin a.mceButtonActive,.wp-editor-wrap .wp_themeSkin a.mceButtonActive:active,.wp-editor-wrap .wp_themeSkin a.mceButtonActive:hover{background:#b0c8d7!important;background-image:-ms-linear-gradient(bottom,#fff,#cfdfe9);background-image:-moz-linear-gradient(bottom,#fff,#cfdfe9);background-image:-o-linear-gradient(bottom,#fff,#cfdfe9);background-image:-webkit-gradient(linear,left bottom,left top,from(#fff),to(#cfdfe9));background-image:-webkit-linear-gradient(bottom,#fff,#cfdfe9)!important;background-image:linear-gradient(bottom,#fff,#cfdfe9);border-color:#5589aa!important}.wp-editor-wrap .wp_themeSkin .mceButtonDisabled{border-color:#b0c8d7!important}.wp-editor-wrap .wp_themeSkin .mceListBox .mceText,.wp-editor-wrap .wp_themeSkin .mceListBox .mceOpen{border-color:#b0c8d7;background-color:#cfdfe9;background-image:-ms-linear-gradient(bottom,#cfdfe9,#fff);background-image:-moz-linear-gradient(bottom,#cfdfe9,#fff);background-image:-o-linear-gradient(bottom,#cfdfe9,#fff);background-image:-webkit-gradient(linear,left bottom,left top,from(#cfdfe9),to(#fff));background-image:-webkit-linear-gradient(bottom,#cfdfe9,#fff)!important;background-image:linear-gradient(bottom,#cfdfe9,#fff)}.wp-editor-wrap .wp_themeSkin .mceListBox .mceOpen{border-left:0!important}.wp-editor-wrap .wp_themeSkin table.mceListBoxEnabled:hover .mceOpen,.wp-editor-wrap .wp_themeSkin .mceListBoxHover .mceOpen,.wp-editor-wrap .wp_themeSkin .mceListBoxHover:active .mceOpen,.wp-editor-wrap .wp_themeSkin .mceListBoxSelected .mceOpen,.wp-editor-wrap .wp_themeSkin .mceListBoxSelected .mceText,.wp-editor-wrap .wp_themeSkin table.mceListBoxEnabled:active .mceText{background:#b0c8d7;border-color:#5589aa!important}.wp-editor-wrap .wp_themeSkin table.mceListBoxEnabled:hover .mceText,.wp-editor-wrap .wp_themeSkin .mceListBoxHover .mceText,.wp-editor-wrap .wp_themeSkin table.mceListBoxEnabled:hover .mceOpen,.wp-editor-wrap .wp_themeSkin .mceListBoxHover .mceOpen{border-color:#5589aa!important;background-color:#c9c9c9;background-image:-ms-linear-gradient(bottom,#cfdfe9,#fff);background-image:-moz-linear-gradient(bottom,#cfdfe9,#fff);background-image:-o-linear-gradient(bottom,#cfdfe9,#fff);background-image:-webkit-gradient(linear,left bottom,left top,from(#cfdfe9),to(#fff));background-image:-webkit-linear-gradient(bottom,#cfdfe9,#fff)!important;background-image:linear-gradient(bottom,#cfdfe9,#fff)}.wp-editor-wrap .wp_themeSkin select.mceListBox{border-color:#b2b2b2;background-color:#fff}.wp-editor-wrap .wp_themeSkin .mceSplitButton a.mceAction,.wp-editor-wrap .wp_themeSkin .mceSplitButton a.mceOpen{border-color:#b0c8d7}.wp-editor-wrap .wp_themeSkin .mceSplitButton a.mceOpen:hover,.wp-editor-wrap .wp_themeSkin .mceSplitButtonSelected a.mceOpen,.wp-editor-wrap .wp_themeSkin table.mceSplitButtonEnabled:hover a.mceAction,.wp-editor-wrap .wp_themeSkin .mceSplitButton a.mceAction:hover{border-color:#5589aa!important}.wp-editor-wrap .wp_themeSkin table.mceSplitButton td{background-color:#cfdfe9;background-image:-ms-linear-gradient(bottom,#cfdfe9,#fff);background-image:-moz-linear-gradient(bottom,#cfdfe9,#fff);background-image:-o-linear-gradient(bottom,#cfdfe9,#fff);background-image:-webkit-gradient(linear,left bottom,left top,from(#cfdfe9),to(#fff));background-image:-webkit-linear-gradient(bottom,#cfdfe9,#fff)!important;background-image:linear-gradient(bottom,#cfdfe9,#fff)}.wp-editor-wrap .wp_themeSkin table.mceSplitButton:hover td{background-image:-ms-linear-gradient(bottom,#cfdfe9,#fff);background-image:-moz-linear-gradient(bottom,#cfdfe9,#fff);background-image:-o-linear-gradient(bottom,#cfdfe9,#fff);background-image:-webkit-gradient(linear,left bottom,left top,from(#cfdfe9),to(#fff));background-image:-webkit-linear-gradient(bottom,#cfdfe9,#fff)!important;background-image:linear-gradient(bottom,#cfdfe9,#fff)}.wp-editor-wrap .wp_themeSkin .mceSplitButtonActive{background-color:#b0c8d7}.wp-editor-wrap .wp_themeSkin div.mceColorSplitMenu table{background-color:#ebebeb;border-color:#b2b2b2}.wp-editor-wrap .wp_themeSkin .mceColorSplitMenu a{border-color:#b2b2b2}.wp-editor-wrap .wp_themeSkin .mceColorSplitMenu a.mceMoreColors{border-color:#fff}.wp-editor-wrap .wp_themeSkin .mceColorSplitMenu a.mceMoreColors:hover{border-color:#0a246a;background-color:#b6bdd2}.wp-editor-wrap .wp_themeSkin a.mceMoreColors:hover{border-color:#0a246a}.wp-editor-wrap .wp_themeSkin .mceMenu{border-color:#ddd}.wp-editor-wrap .wp_themeSkin .mceMenu table{background-color:#ebeaeb}.wp-editor-wrap .wp_themeSkin .mceMenu .mceText{color:#000}.wp-editor-wrap .wp_themeSkin .mceMenu .mceMenuItemEnabled a:hover,.wp-editor-wrap .wp_themeSkin .mceMenu .mceMenuItemActive{background-color:#f5f5f5}.wp-editor-wrap .wp_themeSkin td.mceMenuItemSeparator{background-color:#aaa}.wp-editor-wrap .wp_themeSkin .mceMenuItemTitle a{background-color:#ccc;border-bottom-color:#aaa}.wp-editor-wrap .wp_themeSkin .mceMenuItemTitle span.mceText{color:#000}.wp-editor-wrap .wp_themeSkin .mceMenuItemDisabled .mceText{color:#888}.wp-editor-wrap .wp_themeSkin tr.mceFirst td.mceToolbar{background:#cfdfe9 url("../images/ed-bg-vs.gif?ver=20101102") repeat-x scroll left top;border-color:#cfdfe9}.wp-admin #mceModalBlocker{background:#000}.wp-admin .clearlooks2 .mceFocus .mceTop .mceLeft{background:#444;border-left:1px solid #999;border-top:1px solid #999;-webkit-border-top-left-radius:3px;border-top-left-radius:3px}.wp-admin .clearlooks2 .mceFocus .mceTop .mceRight{background:#444;border-right:1px solid #999;border-top:1px solid #999;-webkit-border-top-right-radius:3px;border-top-right-radius:3px}.wp-admin .clearlooks2 .mceMiddle .mceLeft{background:#f1f1f1;border-left:1px solid #999}.wp-admin .clearlooks2 .mceMiddle .mceRight{background:#f1f1f1;border-right:1px solid #999}.wp-admin .clearlooks2 .mceBottom{background:#f1f1f1;border-bottom:1px solid #999}.wp-admin .clearlooks2 .mceBottom .mceLeft{background:#f1f1f1;border-bottom:1px solid #999;border-left:1px solid #999}.wp-admin .clearlooks2 .mceBottom .mceCenter{background:#f1f1f1;border-bottom:1px solid #999}.wp-admin .clearlooks2 .mceBottom .mceRight{background:#f1f1f1;border-bottom:1px solid #999;border-right:1px solid #999}.wp-admin .clearlooks2 .mceFocus .mceTop span{color:#e5e5e5}.wp-editor-wrap .wp-switch-editor{background-color:#f5fafd;border-color:#d1e5ee #d1e5ee #d1e5ee;color:#999}.wp-editor-wrap.tmce-active .switch-tmce,.wp-editor-wrap.html-active .switch-html{background-color:#eff8ff;border-color:#d1e5ee #d1e5ee #eff8ff;color:#333}.wp-editor-wrap.quicktags-toolbar input{color:#464646;border-color:#d1e5ee;background-color:#eff8ff;background-image:-ms-linear-gradient(bottom,#eff8ff,#fff);background-image:-moz-linear-gradient(bottom,#eff8ff,#fff);background-image:-o-linear-gradient(bottom,#eff8ff,#fff);background-image:-webkit-linear-gradient(bottom,#eff8ff,#fff);background-image:linear-gradient(bottom,#eff8ff,#fff)}.wp-editor-wrap .quicktags-toolbar,.wp-editor-wrap.wp_themeSkin tr.mceFirst td.mceToolbar{border-bottom:1px solid #ccc;background-color:#eff8ff;background-image:-ms-linear-gradient(bottom,#cfdfe9,#eff8ff);background-image:-moz-linear-gradient(bottom,#cfdfe9,#eff8ff);background-image:-o-linear-gradient(bottom,#cfdfe9,#eff8ff);background-image:-webkit-linear-gradient(bottom,#cfdfe9,#eff8ff);background-image:linear-gradient(bottom,#cfdfe9,#eff8ff)}.wp-editor-wrap .quicktags-toolbar input:hover{border-color:#aaa;background:#ddd}.wp-editor-wrap.wp_themeSkin .mceButton,.wp-editor-wrap.wp_themeSkin .mceListBox .mceText,.wp-editor-wrap.wp_themeSkin .mceListBox .mceOpen{border-color:#ccc;background-color:#eff8ff;background-image:-ms-linear-gradient(bottom,#eff8ff,#fff);background-image:-moz-linear-gradient(bottom,#eff8ff,#fff);background-image:-o-linear-gradient(bottom,#eff8ff,#fff);background-image:-webkit-gradient(linear,left bottom,left top,from(#eff8ff),to(#fff));background-image:-webkit-linear-gradient(bottom,#eff8ff,#fff);background-image:linear-gradient(bottom,#eff8ff,#fff)}.wp-editor-wrap.wp_themeSkin a.mceButtonEnabled:hover{border-color:#a0a0a0;background:#ddd;background-image:-ms-linear-gradient(bottom,#cfdfe9,#fff);background-image:-moz-linear-gradient(bottom,#cfdfe9,#fff);background-image:-o-linear-gradient(bottom,#cfdfe9,#fff);background-image:-webkit-gradient(linear,left bottom,left top,from(#cfdfe9),to(#fff));background-image:-webkit-linear-gradient(bottom,#cfdfe9,#fff);background-image:linear-gradient(bottom,#cfdfe9,#fff)}#titlediv #title{border-color:#bdccd5}#editorcontainer{border-color:#bdccd5 #bdccd5 #d0dfe9}#post-status-info{border-color:#d0dfe9 #bdccd5 #bdccd5}.editwidget .widget-inside{border-color:#d0dfe9}#titlediv #title{background-color:#fff}#tTips p#tTips_inside{background-color:#ddd;color:#333}#timestampdiv input,#namediv input,#poststuff .inside .the-tagcloud{border-color:#ddd}#adminmenuback,#adminmenuwrap{background-color:#eff8ff;border-color:#d1e5ee}#adminmenushadow,#adminmenuback{background-image:url(../images/menu-shadow.png);background-position:top right;background-repeat:repeat-y}#adminmenu li.wp-menu-separator{background:#d1e5ee;border-color:#bed1dd}#adminmenu div.separator{border-color:#d1e5ee}#adminmenu li.wp-has-current-submenu.wp-menu-open .wp-menu-toggle,#adminmenu li.wp-has-current-submenu:hover .wp-menu-toggle{background:transparent url(../images/arrows-dark-vs.png) no-repeat -1px 6px}#adminmenu .wp-has-submenu:hover .wp-menu-toggle,#adminmenu .wp-menu-open .wp-menu-toggle{background:transparent url(../images/arrows-vs.png) no-repeat -2px 6px}#adminmenu a.menu-top,.folded #adminmenu li.menu-top,#adminmenu .wp-submenu .wp-submenu-head{border-top-color:#fff;border-bottom-color:#cae6ff}#adminmenu li.wp-menu-open{border-color:#d1e5ee}#adminmenu li.menu-top:hover>a,#adminmenu li.menu-top.focused>a,#adminmenu li.menu-top>a:focus{background-color:#e0f1ff;text-shadow:0 1px 0 rgba(255,255,255,0.4)}#adminmenu li.wp-has-current-submenu a.wp-has-current-submenu,#adminmenu li.current a.menu-top,.folded #adminmenu li.wp-has-current-submenu,.folded #adminmenu li.current.menu-top,#adminmenu .wp-menu-arrow,#adminmenu .wp-has-current-submenu .wp-submenu .wp-submenu-head{background-color:#5589aa;background-image:-ms-linear-gradient(bottom,#5589aa,#619bbb);background-image:-moz-linear-gradient(bottom,#5589aa,#619bbb);background-image:-o-linear-gradient(bottom,#5589aa,#619bbb);background-image:-webkit-gradient(linear,left bottom,left top,from(#5589aa),to(#619bbb));background-image:-webkit-linear-gradient(bottom,#5589aa,#619bbb);background-image:linear-gradient(bottom,#5589aa,#619bbb)}#adminmenu .wp-menu-arrow div{background-color:#5589aa;background-image:-ms-linear-gradient(right bottom,#5589aa,#619bbb);background-image:-moz-linear-gradient(right bottom,#5589aa,#619bbb);background-image:-o-linear-gradient(right bottom,#5589aa,#619bbb);background-image:-webkit-gradient(linear,right bottom,left top,from(#5589aa),to(#619bbb));background-image:-webkit-linear-gradient(right bottom,#5589aa,#619bbb);background-image:linear-gradient(right bottom,#5589aa,#619bbb)}#adminmenu li.wp-not-current-submenu .wp-menu-arrow{border-top-color:#fff;border-bottom-color:#cae6ff;background:#e0f1ff}#adminmenu li.wp-not-current-submenu .wp-menu-arrow div{background:#e0f1ff;border-color:#cae6ff}.folded #adminmenu li.menu-top li:hover a{background-image:none}#adminmenu li.wp-has-current-submenu a.wp-has-current-submenu,#adminmenu li.current a.menu-top,#adminmenu .wp-has-current-submenu .wp-submenu .wp-submenu-head{text-shadow:0 -1px 0 #333;color:#fff;border-top-color:#5a8fad;border-bottom-color:#5589aa}.folded #adminmenu li.wp-has-current-submenu,.folded #adminmenu li.current.menu-top{border-top-color:#5a8fad;border-bottom-color:#5589aa}#adminmenu .wp-submenu a:hover,#adminmenu .wp-submenu a:focus{background-color:#eff8ff;color:#333}#adminmenu .wp-submenu li.current,#adminmenu .wp-submenu li.current a,#adminmenu .wp-submenu li.current a:hover{color:#333}#adminmenu .wp-submenu ul{background-color:#fff}#adminmenu .wp-submenu-wrap,#adminmenu .wp-submenu ul{border-color:#d0dfe9}#adminmenu .wp-submenu-wrap,.folded #adminmenu .wp-has-current-submenu .wp-submenu-wrap{-moz-box-shadow:2px 2px 5px rgba(0,0,0,0.4);-webkit-box-shadow:2px 2px 5px rgba(0,0,0,0.4);box-shadow:2px 2px 5px rgba(0,0,0,0.4)}#adminmenu .wp-submenu .wp-submenu-head{border-right-color:#e8eff4;background-color:#eff8ff}#adminmenu div.wp-submenu{background-color:transparent}#collapse-menu{color:#a0c3d5}#collapse-menu:hover{color:#5a8fad}#collapse-button{border-color:#d0dfe9;background-color:#eff8ff;background-image:-ms-linear-gradient(bottom,#eff8ff,#fff);background-image:-moz-linear-gradient(bottom,#eff8ff,#fff);background-image:-o-linear-gradient(bottom,#eff8ff,#fff);background-image:-webkit-gradient(linear,left bottom,left top,from(#eff8ff),to(#fff));background-image:-webkit-linear-gradient(bottom,#eff8ff,#fff);background-image:linear-gradient(bottom,#eff8ff,#fff)}#collapse-menu:hover #collapse-button{border-color:#a0c3d5}#collapse-button div{background:transparent url(../images/arrows-vs.png) no-repeat 0 -72px}.folded #collapse-button div{background-position:0 -108px}@media only screen and (max-width:900px){#adminmenu li.menu-top{border-top-color:#fff;border-bottom-color:#cae6ff}#adminmenu li.wp-has-current-submenu,#adminmenu li.current.menu-top{background-color:#5589aa;background-image:-ms-linear-gradient(bottom,#5589aa,#619bbb);background-image:-moz-linear-gradient(bottom,#5589aa,#619bbb);background-image:-o-linear-gradient(bottom,#5589aa,#619bbb);background-image:-webkit-gradient(linear,left bottom,left top,from(#5589aa),to(#619bbb));background-image:-webkit-linear-gradient(bottom,#5589aa,#619bbb);background-image:linear-gradient(bottom,#5589aa,#619bbb)}#adminmenu li.menu-top li:hover a{background-image:none}#adminmenu li.wp-has-current-submenu,#adminmenu li.current.menu-top{border-top-color:#5a8fad;border-bottom-color:#5589aa}#adminmenu .wp-has-current-submenu .wp-submenu-wrap{-moz-box-shadow:2px 2px 5px rgba(0,0,0,0.4);-webkit-box-shadow:2px 2px 5px rgba(0,0,0,0.4);box-shadow:2px 2px 5px rgba(0,0,0,0.4)}#collapse-button div{background-position:0 -108px}}.icon16,.icon32,div.wp-menu-image{background-color:transparent;background-repeat:no-repeat}.icon16.icon-dashboard,.menu-icon-dashboard div.wp-menu-image,.icon16.icon-post,.menu-icon-post div.wp-menu-image,.icon16.icon-media,.menu-icon-media div.wp-menu-image,.icon16.icon-links,.menu-icon-links div.wp-menu-image,.icon16.icon-page,.menu-icon-page div.wp-menu-image,.icon16.icon-comments,.menu-icon-comments div.wp-menu-image,.icon16.icon-appearance,.menu-icon-appearance div.wp-menu-image,.icon16.icon-plugins,.menu-icon-plugins div.wp-menu-image,.icon16.icon-users,.menu-icon-users div.wp-menu-image,.icon16.icon-tools,.menu-icon-tools div.wp-menu-image,.icon16.icon-settings,.menu-icon-settings div.wp-menu-image,.icon16.icon-site,.menu-icon-site div.wp-menu-image{background-image:url('../images/menu-vs.png?ver=20120201')}.icon16.icon-dashboard,#adminmenu .menu-icon-dashboard div.wp-menu-image{background-position:-59px -33px}#adminmenu .menu-icon-dashboard:hover div.wp-menu-image,#adminmenu .menu-icon-dashboard.wp-has-current-submenu div.wp-menu-image,#adminmenu .menu-icon-dashboard.current div.wp-menu-image{background-position:-59px -1px}.icon16.icon-post,#adminmenu .menu-icon-post div.wp-menu-image{background-position:-269px -33px}#adminmenu .menu-icon-post:hover div.wp-menu-image,#adminmenu .menu-icon-post.wp-has-current-submenu div.wp-menu-image,#adminmenu .menu-icon-post.current div.wp-menu-image{background-position:-269px -1px}.icon16.icon-media,#adminmenu .menu-icon-media div.wp-menu-image{background-position:-119px -33px}#adminmenu .menu-icon-media:hover div.wp-menu-image,#adminmenu .menu-icon-media.wp-has-current-submenu div.wp-menu-image,#adminmenu .menu-icon-media.current div.wp-menu-image{background-position:-119px -1px}.icon16.icon-links,#adminmenu .menu-icon-links div.wp-menu-image{background-position:-89px -33px}#adminmenu .menu-icon-links:hover div.wp-menu-image,#adminmenu .menu-icon-links.wp-has-current-submenu div.wp-menu-image,#adminmenu .menu-icon-links.current div.wp-menu-image{background-position:-89px -1px}.icon16.icon-page,#adminmenu .menu-icon-page div.wp-menu-image{background-position:-149px -33px}#adminmenu .menu-icon-page:hover div.wp-menu-image,#adminmenu .menu-icon-page.wp-has-current-submenu div.wp-menu-image,#adminmenu .menu-icon-page.current div.wp-menu-image{background-position:-149px -1px}.icon16.icon-comments,#adminmenu .menu-icon-comments div.wp-menu-image{background-position:-29px -33px}#adminmenu .menu-icon-comments:hover div.wp-menu-image,#adminmenu .menu-icon-comments.wp-has-current-submenu div.wp-menu-image,#adminmenu .menu-icon-comments.current div.wp-menu-image{background-position:-29px -1px}.icon16.icon-appearance,#adminmenu .menu-icon-appearance div.wp-menu-image{background-position:1px -33px}#adminmenu .menu-icon-appearance:hover div.wp-menu-image,#adminmenu .menu-icon-appearance.wp-has-current-submenu div.wp-menu-image,#adminmenu .menu-icon-appearance.current div.wp-menu-image{background-position:1px -1px}.icon16.icon-plugins,#adminmenu .menu-icon-plugins div.wp-menu-image{background-position:-179px -33px}#adminmenu .menu-icon-plugins:hover div.wp-menu-image,#adminmenu .menu-icon-plugins.wp-has-current-submenu div.wp-menu-image,#adminmenu .menu-icon-plugins.current div.wp-menu-image{background-position:-179px -1px}.icon16.icon-users,#adminmenu .menu-icon-users div.wp-menu-image{background-position:-300px -33px}#adminmenu .menu-icon-users:hover div.wp-menu-image,#adminmenu .menu-icon-users.wp-has-current-submenu div.wp-menu-image,#adminmenu .menu-icon-users.current div.wp-menu-image{background-position:-300px -1px}.icon16.icon-tools,#adminmenu .menu-icon-tools div.wp-menu-image{background-position:-209px -33px}#adminmenu .menu-icon-tools:hover div.wp-menu-image,#adminmenu .menu-icon-tools.wp-has-current-submenu div.wp-menu-image,#adminmenu .menu-icon-tools.current div.wp-menu-image{background-position:-209px -1px}.icon16.icon-settings,#adminmenu .menu-icon-settings div.wp-menu-image{background-position:-239px -33px}#adminmenu .menu-icon-settings:hover div.wp-menu-image,#adminmenu .menu-icon-settings.wp-has-current-submenu div.wp-menu-image,#adminmenu .menu-icon-settings.current div.wp-menu-image{background-position:-239px -1px}.icon16.icon-site,#adminmenu .menu-icon-site div.wp-menu-image{background-position:-359px -33px}#adminmenu .menu-icon-site:hover div.wp-menu-image,#adminmenu .menu-icon-site.wp-has-current-submenu div.wp-menu-image,#adminmenu .menu-icon-site.current div.wp-menu-image{background-position:-359px -1px}.icon32.icon-post,#icon-edit,#icon-post,.icon32.icon-dashboard,#icon-index,.icon32.icon-media,#icon-upload,.icon32.icon-links,#icon-link-manager,#icon-link,#icon-link-category,.icon32.icon-page,#icon-edit-pages,#icon-page,.icon32.icon-comments,#icon-edit-comments,.icon32.icon-appearance,#icon-themes,.icon32.icon-plugins,#icon-plugins,.icon32.icon-users,#icon-users,#icon-profile,#icon-user-edit,.icon32.icon-tools,#icon-tools,#icon-admin,.icon32.icon-settings,#icon-options-general,.icon32.icon-site,#icon-ms-admin{background-image:url(../images/icons32-vs.png?ver=20111206)}.icon32.icon-post,#icon-edit,#icon-post{background-position:-552px -5px}.icon32.icon-dashboard,#icon-index{background-position:-137px -5px}.icon32.icon-media,#icon-upload{background-position:-251px -5px}.icon32.icon-links,#icon-link-manager,#icon-link,#icon-link-category{background-position:-190px -5px}.icon32.icon-page,#icon-edit-pages,#icon-page{background-position:-312px -5px}.icon32.icon-comments,#icon-edit-comments{background-position:-72px -5px}.icon32.icon-appearance,#icon-themes{background-position:-11px -5px}.icon32.icon-plugins,#icon-plugins{background-position:-370px -5px}.icon32.icon-users,#icon-users,#icon-profile,#icon-user-edit{background-position:-600px -5px}.icon32.icon-tools,#icon-tools,#icon-admin{background-position:-432px -5px}.icon32.icon-settings,#icon-options-general{background-position:-492px -5px}.icon32.icon-site,#icon-ms-admin{background-position:-659px -5px}@media only screen and (-webkit-min-device-pixel-ratio:1.5){.icon32.icon-post,#icon-edit,#icon-post,.icon32.icon-dashboard,#icon-index,.icon32.icon-media,#icon-upload,.icon32.icon-links,#icon-link-manager,#icon-link,#icon-link-category,.icon32.icon-page,#icon-edit-pages,#icon-page,.icon32.icon-comments,#icon-edit-comments,.icon32.icon-appearance,#icon-themes,.icon32.icon-plugins,#icon-plugins,.icon32.icon-users,#icon-users,#icon-profile,#icon-user-edit,.icon32.icon-tools,#icon-tools,#icon-admin,.icon32.icon-settings,#icon-options-general,.icon32.icon-site,#icon-ms-admin{background-image:url(../images/icons32-vs-2x.png?ver=20120412);background-size:708px 45px}.icon16.icon-dashboard,.menu-icon-dashboard div.wp-menu-image,.icon16.icon-post,.menu-icon-post div.wp-menu-image,.icon16.icon-media,.menu-icon-media div.wp-menu-image,.icon16.icon-links,.menu-icon-links div.wp-menu-image,.icon16.icon-page,.menu-icon-page div.wp-menu-image,.icon16.icon-comments,.menu-icon-comments div.wp-menu-image,.icon16.icon-appearance,.menu-icon-appearance div.wp-menu-image,.icon16.icon-plugins,.menu-icon-plugins div.wp-menu-image,.icon16.icon-users,.menu-icon-users div.wp-menu-image,.icon16.icon-tools,.menu-icon-tools div.wp-menu-image,.icon16.icon-settings,.menu-icon-settings div.wp-menu-image,.icon16.icon-site,.menu-icon-site div.wp-menu-image{background-image:url('../images/menu-2x.png?ver=20120412');background-size:390px 64px}}table.diff .diff-deletedline{background-color:#fdd}table.diff .diff-deletedline del{background-color:#f99}table.diff .diff-addedline{background-color:#dfd}table.diff .diff-addedline ins{background-color:#9f9}#att-info{background-color:#e4f2fd}#sidemenu a{background-color:#f9f9f9;border-color:#f9f9f9;border-bottom-color:#dfdfdf}#sidemenu a.current{background-color:#fff;border-color:#dfdfdf #dfdfdf #fff;color:#d54e21}#screen-meta{background-color:#eff8ff;border-color:#d1e5ee;-webkit-box-shadow:0 1px 3px rgba(0,0,0,0.05);box-shadow:0 1px 3px rgba(0,0,0,0.05)}#contextual-help-back{background:#fff}.contextual-help-tabs a:hover{background-color:#ceeaff;color:#333}#contextual-help-back,.contextual-help-tabs .active{border-color:#d1e5ee}.contextual-help-tabs .active,.contextual-help-tabs .active a,.contextual-help-tabs .active a:hover{background:#fff;color:#000}#screen-options-link-wrap,#contextual-help-link-wrap{background-color:#eff8ff;border-right:1px solid #d1e5ee;border-left:1px solid #d1e5ee;border-bottom:1px solid #d1e5ee;background-image:-ms-linear-gradient(bottom,#eff8ff,#eff8ff);background-image:-moz-linear-gradient(bottom,#def1ff,#eff8ff);background-image:-o-linear-gradient(bottom,#def1ff,#eff8ff);background-image:-webkit-gradient(linear,left bottom,left top,from(#def1ff),to(#eff8ff));background-image:-webkit-linear-gradient(bottom,#def1ff,#eff8ff);background-image:linear-gradient(bottom,#def1ff,#eff8ff)}#screen-meta-links a.show-settings{color:#606060}#screen-meta-links a.show-settings:hover{color:#000}#screen-meta-links a.show-settings{background:transparent url(../images/arrows-vs.png) no-repeat right 4px}#screen-meta-links a.show-settings.screen-meta-active{background:transparent url(../images/arrows-vs.png) no-repeat right -31px}#replyerror{border-color:#ddd;background-color:#f9f9f9}.vim-current,.vim-current th,.vim-current td{background-color:#e4f2fd!important}#plugin-information .fyi ul{background-color:#eaf3fa}#plugin-information .fyi h2.mainheader{background-color:#cee1ef}#plugin-information pre,#plugin-information code{background-color:#ededff}#plugin-information pre{border:1px solid #ccc}.inline-edit-row fieldset input[type="text"],.inline-edit-row fieldset textarea,#bulk-titles{border-color:#ddd}.inline-editor div.title{background-color:#eaf3fa}.inline-editor ul.cat-checklist{background-color:#fff;border-color:#ddd}.inline-editor .categories .catshow,.inline-editor .categories .cathide{color:#21759b}.inline-editor .quick-edit-save{background-color:#f1f1f1}fieldset.inline-edit-col-right .inline-edit-col{border-color:#dfdfdf}.attention{color:#d54e21}.meta-box-sortables .postbox:hover .handlediv{background:transparent url(../images/arrows-vs.png) no-repeat 6px 7px}.tablenav .tablenav-pages{color:#555}.tablenav .tablenav-pages a{border-color:#d1e5ee;background:#eee url('../images/menu-bits-vs.gif?ver=20101102') repeat-x scroll left -379px}.tablenav .tablenav-pages a:hover,.tablenav .tablenav-pages a:focus{color:#d54e21}.tablenav .tablenav-pages a.disabled,.tablenav .tablenav-pages a.disabled:hover,.tablenav .tablenav-pages a.disabled:focus{color:#aaa}.tablenav .tablenav-pages .current{background:#dfdfdf;border-color:#d3d3d3}#availablethemes,#availablethemes td{border-color:#ddd}#current-theme img{border-color:#999}#TB_window #TB_title a.tb-theme-preview-link,#TB_window #TB_title a.tb-theme-preview-link:visited{color:#999}#TB_window #TB_title a.tb-theme-preview-link:hover,#TB_window #TB_title a.tb-theme-preview-link:focus{color:#ccc}.misc-pub-section{border-top-color:#fff;border-bottom-color:#eee}#minor-publishing{border-bottom-color:#ddd}#post-body .misc-pub-section{border-left-color:#eee}.post-com-count span{background-color:#bbb}.form-table .color-palette td{border-color:#fff}.sortable-placeholder{border-color:#bbb;background-color:#f5f5f5}#post-body ul.category-tabs li.tabs a,#post-body ul.add-menu-item-tabs li.tabs a,body.press-this ul.category-tabs li.tabs a{color:#333}.view-switch #view-switch-list{background:transparent url(../images/list.png) no-repeat 0 0}.view-switch .current #view-switch-list{background:transparent url(../images/list.png) no-repeat -40px 0}.view-switch #view-switch-excerpt{background:transparent url(../images/list.png) no-repeat -20px 0}.view-switch .current #view-switch-excerpt{background:transparent url(../images/list.png) no-repeat -60px 0}#header-logo{background:transparent url(../images/wp-logo-vs.png?ver=20101102) no-repeat scroll center center}.popular-tags,.feature-filter{background-color:#fff;border-color:#dfdfdf}div.widgets-sortables,#widgets-left .inactive{background-color:#f7fcfe;border-color:#d0dfe9}#available-widgets .widget-holder{background-color:#f7fcfe;border-color:#d0dfe9}#available-widgets .widget-description{color:#555}.sidebar-name{color:#464646;background-color:#f7fcfe;background-image:-ms-linear-gradient(top,#ecf8fe,#f7fcfe);background-image:-moz-linear-gradient(top,#ecf8fe,#f7fcfe);background-image:-o-linear-gradient(top,#ecf8fe,#f7fcfe);background-image:-webkit-gradient(linear,left top,left bottom,from(#ecf8fe),to(#f7fcfe));background-image:-webkit-linear-gradient(top,#ecf8fe,#f7fcfe);background-image:linear-gradient(top,#ecf8fe,#f7fcfe);text-shadow:#fff 0 1px 0;border-color:#d0dfe9;-moz-box-shadow:inset 0 1px 0 #fff;-webkit-box-shadow:inset 0 1px 0 #fff;box-shadow:inset 0 1px 0 #fff}.sidebar-name:hover,#removing-widget{color:#d54e21}#removing-widget span{color:black}.sidebar-name-arrow{background:transparent url(../images/arrows-vs.png) no-repeat 5px 9px}.sidebar-name:hover .sidebar-name-arrow{background:transparent url(../images/arrows-dark-vs.png) no-repeat 5px 9px}.in-widget-title{color:#606060}.deleting .widget-title *{color:#aaa}.imgedit-menu div{border-color:#d5d5d5;background-color:#f1f1f1}.imgedit-menu div:hover{border-color:#c1c1c1;background-color:#eaeaea}.imgedit-menu div.disabled{border-color:#ccc;background-color:#ddd;filter:alpha(opacity=50);opacity:.5}#dashboard_recent_comments div.undo{border-top-color:#dfdfdf}.comment-ays,.comment-ays th{border-color:#ddd}.comment-ays th{background-color:#f1f1f1}#menu-management .menu-edit{border-color:#d0dfe9}#post-body{background:#fff;border-top-color:#fff;border-bottom-color:#d0dfe9}#nav-menu-header{border-bottom-color:#d0dfe9}#nav-menu-footer{border-top-color:#fff}#menu-management .nav-tabs-arrow a{color:#c1c1c1}#menu-management .nav-tabs-arrow a:hover{color:#d54e21}#menu-management .nav-tabs-arrow a:active{color:#464646}#menu-management .nav-tab-active{border-color:#dfdfdf}#menu-management .nav-tab{background:#f7fcfe;border-color:#d0dfe9}.js .input-with-default-title{color:#aaa}#cancel-save{color:#f00}#cancel-save:hover{background-color:#f00;color:#fff}.list-container{border-color:#dfdfdf}.menu-item-handle{border-color:#d0dfe9}.menu li.deleting .menu-item-handle{background-color:#f66;text-shadow:#ccc}.item-type{color:#999}.item-controls .menu-item-delete:hover{color:#f00}.nav-menus-php .item-edit{background:transparent url(../images/arrows-vs.png) no-repeat 8px 10px;border-bottom-color:#eff8ff}.item-edit:hover{background:transparent url(../images/arrows-dark-vs.png) no-repeat 8px 10px}.menu-item-settings{border-color:#d0dfe9}.link-to-original{color:#777;border-color:#d0dfe9}#cancel-save:hover{color:#fff!important}#update-menu-item{color:#fff!important}#update-menu-item:hover,#update-menu-item:active,#update-menu-item:focus{color:#eaf2fa!important;border-color:#13455b!important}.submitbox .submitcancel{color:#21759b;border-bottom-color:#21759b}.submitbox .submitcancel:hover{background:#21759b;color:#fff}#menu-management .nav-tab-active,.menu-item-handle,.menu-item-settings{-moz-box-shadow:inset 0 1px 0 #fff;-webkit-box-shadow:inset 0 1px 0 #fff;box-shadow:inset 0 1px 0 #fff}#menu-management .nav-tab-active{background:#eff8ff;border-bottom-color:#eff8ff}#upload-form label{color:#777}.fullscreen-overlay{background:#fff}.wp-fullscreen-focus #wp-fullscreen-title,.wp-fullscreen-focus #wp-fullscreen-container{border-color:#bed1dd}#fullscreen-topbar{border-bottom-color:#d1e5ee}.about-wrap h1{color:#333;text-shadow:1px 1px 1px white}.about-text{color:#777}.wp-badge{color:#fff;text-shadow:0 -1px 0 rgba(22,57,81,0.3)}.about-wrap h2 .nav-tab{color:#21759b}.about-wrap h2 .nav-tab:hover{color:#d54e21}.about-wrap h2 .nav-tab-active,.about-wrap h2 .nav-tab-active:hover{color:#333}.about-wrap h2 .nav-tab-active{text-shadow:1px 1px 1px white;color:#464646}.about-wrap h3{color:#333;text-shadow:1px 1px 1px white}.about-wrap .feature-section h4{color:#464646}.about-wrap .feature-section img{background:#fff;border:1px #ccc solid;-moz-box-shadow:0 1px 3px rgba(0,0,0,0.3);-webkit-box-shadow:0 1px 3px rgba(0,0,0,0.3);box-shadow:0 1px 3px rgba(0,0,0,0.3)}.about-wrap .point-releases{border-bottom:1px solid #dfdfdf}.about-wrap .point-releases h3{border-top:1px solid #dfdfdf}.about-wrap .point-releases h3:first-child{border:0}.about-wrap h4.wp-people-group{text-shadow:1px 1px 1px white}.about-wrap li.wp-person img.gravatar{-moz-box-shadow:0 0 4px rgba(0,0,0,0.4);-webkit-box-shadow:0 0 4px rgba(0,0,0,0.4);box-shadow:0 0 4px rgba(0,0,0,0.4)}.about-wrap li.wp-person .title{color:#464646;text-shadow:1px 1px 1px white}.freedoms-php .about-wrap ol li{color:#999}.freedoms-php .about-wrap ol p{color:#464646}.rtl .bar{border-right-color:none;border-left-color:#99d}.rtl .post-com-count{background-image:url(../images/bubble_bg-rtl.gif)}.rtl #screen-meta-links a.show-settings{background-position:left 3px}.rtl #screen-meta-links a.show-settings.screen-meta-active{background-position:left -33px}.rtl #adminmenushadow,.rtl #adminmenuback{background-image:url(../images/menu-shadow-rtl.png);background-position:top left}.rtl #adminmenu li.wp-has-current-submenu.wp-menu-open .wp-menu-toggle,.rtl #adminmenu li.wp-has-current-submenu:hover .wp-menu-toggle{background:transparent url(../images/arrows-dark-vs.png) no-repeat 8px 6px}.rtl #adminmenu .wp-has-submenu:hover .wp-menu-toggle,.rtl #adminmenu .wp-menu-open .wp-menu-toggle{background:transparent url(../images/arrows-vs.png) no-repeat 8px 6px}.rtl #adminmenu .wp-submenu .wp-submenu-head{border-right-color:none;border-left-color:#d1e5ee}.rtl #adminmenu .wp-submenu-wrap,.rtl.folded #adminmenu .wp-has-current-submenu .wp-submenu-wrap{-moz-box-shadow:-2px 2px 5px rgba(0,0,0,0.4);-webkit-box-shadow:-2px 2px 5px rgba(0,0,0,0.4);box-shadow:-2px 2px 5px rgba(0,0,0,0.4)}.rtl #collapse-button div{background-position:0 -108px}.rtl.folded #collapse-button div{background-position:0 -72px}@media only screen and (max-width:900px){.rtl #adminmenu .wp-has-current-submenu .wp-submenu-wrap{-moz-box-shadow:-2px 2px 5px rgba(0,0,0,0.4);-webkit-box-shadow:-2px 2px 5px rgba(0,0,0,0.4);box-shadow:-2px 2px 5px rgba(0,0,0,0.4)}.rtl #collapse-button div{background-position:0 -72px}}.rtl .meta-box-sortables .postbox:hover .handlediv{background:transparent url(../images/arrows-vs.png) no-repeat 6px 7px}.rtl .tablenav .tablenav-pages a{border-color:#d1e5ee;background:#eee url('../images/menu-bits-rtl-vs.gif?ver=20100610') repeat-x scroll right -379px}.rtl #post-body .misc-pub-section{border-right-color:none;border-left-color:#d1e5ee}.rtl .sidebar-name-arrow{background:transparent url(../images/arrows-vs.png) no-repeat 5px 9px}.rtl .sidebar-name:hover .sidebar-name-arrow{background:transparent url(../images/arrows-dark-vs.png) no-repeat 5px 9px}
\ No newline at end of file
+/*------------------------------------------------------------------------------
+
+
+Howdy! This is the CSS file that controls the
+Blue (classic) color style on the WordPress Dashboard.
+
+This file contains both LTR and RTL styles.
+
+
+TABLE OF CONTENTS:
+------------------
+ 1.0 - Left to Right Styles
+ 2.0 - Right to Left Styles
+
+
+------------------------------------------------------------------------------*/
+
+
+/*------------------------------------------------------------------------------
+  1.0 - Left to Right Styles
+------------------------------------------------------------------------------*/
+
+.find-box-search,
+.find-box-buttons {
+	background-color: #eff8ff;
+	border-top: 1px solid #dce6f8;
+}
+
+.find-box {
+	background-color: #5589aa;
+}
+
+.find-box-head {
+	color: #fff;
+}
+
+.find-box-inside {
+	background-color: #fff;
+}
+
+a.page-numbers:hover {
+	border-color: #999;
+}
+
+body,
+#wpbody,
+.form-table .pre,
+.ui-autocomplete li a {
+	color: #333;
+}
+
+body > #upload-menu {
+	border-bottom-color: #fff;
+}
+
+#postcustomstuff table,
+#your-profile fieldset,
+#rightnow,
+div.dashboard-widget,
+#dashboard-widgets p.dashboard-widget-links {
+	border-color: #d1e5ee;
+}
+
+#poststuff .inside label.spam,
+#poststuff .inside label.deleted {
+	color: red;
+}
+
+#poststuff .inside label.waiting {
+	color: orange;
+}
+
+#poststuff .inside label.approved {
+	color: green;
+}
+
+#postcustomstuff table {
+	border-color: #dfdfdf;
+	background-color: #f9f9f9;
+}
+
+#postcustomstuff thead th {
+	background-color: #f1f1f1;
+}
+
+.widefat {
+	border-color: #d1e5ee;
+	background-color: #fff;
+}
+
+div.dashboard-widget-error {
+	background-color: #c43;
+}
+
+div.dashboard-widget-notice {
+	background-color: #cfe1ef;
+}
+
+div.dashboard-widget-submit {
+	border-top-color: #ccc;
+}
+
+ul.category-tabs li {
+	border-color: transparent;
+}
+
+div.tabs-panel,
+.wp-tab-panel,
+ul.add-menu-item-tabs li.tabs,
+.wp-tab-active {
+	border-color: #d1e5ee;
+	background-color: #fff;
+}
+
+ul.category-tabs li.tabs {
+	border-color: #d1e5ee #d1e5ee #fff;
+}
+
+ul.category-tabs li.tabs,
+ul.add-menu-item-tabs li.tabs,
+.wp-tab-active {
+	background-color: #fff;
+}
+
+kbd,
+code {
+	background: #eff8ff;
+}
+
+textarea,
+input[type="text"],
+input[type="password"],
+input[type="file"],
+input[type="email"],
+input[type="number"],
+input[type="search"],
+input[type="tel"],
+input[type="url"],
+select {
+	border-color: #d1e5ee;
+}
+
+textarea:focus,
+input[type="text"]:focus,
+input[type="password"]:focus,
+input[type="file"]:focus,
+input[type="email"]:focus,
+input[type="number"]:focus,
+input[type="search"]:focus,
+input[type="tel"]:focus,
+input[type="url"]:focus,
+select:focus {
+	border-color: #b0c8d7;
+}
+
+input.disabled,
+textarea.disabled {
+	background-color: #ccc;
+}
+
+#plugin-information .action-button a,
+#plugin-information .action-button a:hover,
+#plugin-information .action-button a:visited {
+	color: #fff;
+}
+
+.widget .widget-top,
+.postbox h3,
+.stuffbox h3,
+.widefat thead tr th,
+.widefat tfoot tr th,
+h3.dashboard-widget-title,
+h3.dashboard-widget-title span,
+h3.dashboard-widget-title small,
+.sidebar-name,
+#nav-menu-header,
+#nav-menu-footer,
+.menu-item-handle,
+#fullscreen-topbar {
+	background: #f5fafd;
+	background-image: -webkit-gradient(linear, left bottom, left top, from(#eff8ff), to(#f7fcfe));
+	background-image: -webkit-linear-gradient(bottom, #eff8ff, #f7fcfe);
+	background-image:    -moz-linear-gradient(bottom, #eff8ff, #f7fcfe);
+	background-image:      -o-linear-gradient(bottom, #eff8ff, #f7fcfe);
+	background-image: linear-gradient(to top, #eff8ff, #f7fcfe);
+}
+
+.widget .widget-top,
+.postbox h3,
+.stuffbox h3 {
+	border-bottom-color: #d1e5ee;
+	text-shadow: #fff 0 1px 0;
+	-webkit-box-shadow: 0 1px 0 #fff;
+	box-shadow: 0 1px 0 #fff;
+}
+
+.form-table th,
+.form-wrap label {
+	color: #222;
+	text-shadow: #fff 0 1px 0;
+}
+
+.description,
+.form-wrap p {
+	color: #666;
+}
+
+strong .post-com-count span {
+	background-color: #21759b;
+}
+
+.sorthelper {
+	background-color: #ccf3fa;
+}
+
+.ac_match,
+.subsubsub a.current {
+	color: #000;
+}
+
+.wrap h2 {
+	color: #174f69;
+}
+
+.wrap .add-new-h2,
+.wrap .add-new-h2:active {
+	background: #f1f1f1;
+}
+
+.subtitle {
+	color: #777;
+}
+
+.ac_over {
+	background-color: #f0f0b8;
+}
+
+.ac_results {
+	background-color: #fff;
+	border-color: #b0c8d7;
+}
+
+.ac_results li {
+	color: #101010;
+}
+
+.alternate,
+.alt {
+	background-color: #f7fcfe;
+}
+
+.available-theme a.screenshot {
+	background-color: #eff8ff;
+	border-color: #acd;
+}
+
+#current-theme {
+	border-bottom-color: #d1e5ee;
+}
+
+.bar {
+	background-color: #e8e8e8;
+	border-right-color: #99d;
+}
+
+#media-upload,
+#media-upload .media-item .slidetoggle {
+	background: #fff;
+}
+
+#media-upload .slidetoggle {
+	border-top-color: #dfdfdf;
+}
+
+div.error,
+.login #login_error {
+	background-color: #ffebe8;
+	border-color: #c00;
+}
+
+div.error a {
+	color: #c00;
+}
+
+.form-invalid {
+	background-color: #ffebe8 !important;
+}
+
+.form-invalid input,
+.form-invalid select {
+	border-color: #c00 !important;
+}
+
+.submit,
+#commentsdiv #add-new-comment {
+	border-color: #dfdfdf;
+}
+
+.highlight {
+	background-color: #e4f2fd;
+	color: #000;
+}
+
+.howto,
+.nonessential,
+#edit-slug-box,
+.form-input-tip,
+.subsubsub {
+	color: #666;
+}
+
+.media-upload-form label.form-help,
+td.help {
+	color: #9a9a9a;
+}
+
+.ui-autocomplete {
+	border-color: #b0c8d7;
+	background-color: #eff8ff;
+}
+
+.ui-autocomplete li a.ui-state-focus {
+	background-color: #def1ff;
+}
+
+.post-com-count {
+	color: #fff;
+}
+
+.post-com-count span {
+	background-color: #bbb;
+	color: #fff;
+}
+
+.post-com-count:hover span {
+	background-color: #d54e21;
+}
+
+.quicktags, .search {
+	background-color: #ccc;
+	color: #000;
+}
+
+.side-info h5 {
+	border-bottom-color: #dadada;
+}
+
+.side-info ul {
+	color: #666;
+}
+
+a:hover,
+a:active {
+	color: #d54e21;
+}
+
+a:focus {
+	color: #124964;
+}
+
+#adminmenu a:hover,
+#adminmenu li.menu-top > a:focus,
+#adminmenu .wp-submenu a:hover,
+#the-comment-list .comment a:hover,
+#rightnow a:hover,
+#media-upload a.del-link:hover,
+div.dashboard-widget-submit input:hover,
+.subsubsub a:hover,
+.subsubsub a.current:hover,
+.ui-tabs-nav a:hover,
+.plugins .inactive a:hover,
+#all-plugins-table .plugins .inactive a:hover,
+#search-plugins-table .plugins .inactive a:hover {
+	color: #d54e21;
+}
+
+#the-comment-list .comment-item,
+#dashboard-widgets #dashboard_quick_press form p.submit {
+	border-color: #dfdfdf;
+}
+
+#side-sortables .category-tabs .tabs a,
+#side-sortables .add-menu-item-tabs .tabs a,
+.wp-tab-bar .wp-tab-active a {
+	color: #333;
+}
+
+#dashboard_right_now .table_content,
+#dashboard_right_now .table_discussion {
+	border-top-color: #d1e5ee;
+}
+
+#rightnow .rbutton {
+	background-color: #ebebeb;
+	color: #264761;
+}
+
+.submitbox .submit {
+	background-color: #464646;
+	color: #ccc;
+}
+
+.plugins a.delete:hover,
+#all-plugins-table .plugins a.delete:hover,
+#search-plugins-table .plugins a.delete:hover,
+.submitbox .submitdelete {
+	color: #f00;
+	border-bottom-color: #f00;
+}
+
+.submitbox .submitdelete:hover,
+#media-items a.delete:hover,
+#media-items a.delete-permanently:hover {
+	color: #fff;
+	background-color: #f00;
+	border-bottom-color: #f00;
+}
+
+#normal-sortables .submitbox .submitdelete:hover {
+	color: #000;
+	background-color: #f00;
+	border-bottom-color: #f00;
+}
+
+.tablenav .dots {
+	border-color: transparent;
+}
+
+.tablenav .next,
+.tablenav .prev {
+	border-color: transparent;
+	color: #21759b;
+}
+
+.tablenav .next:hover,
+.tablenav .prev:hover {
+	border-color: transparent;
+	color: #d54e21;
+}
+
+div.updated,
+.login .message {
+	background-color: #ffffe0;
+	border-color: #e6db55;
+}
+
+.update-message {
+	color: #000;
+}
+
+a.page-numbers {
+	border-bottom-color: #b8d3e2;
+}
+
+.commentlist li {
+	border-bottom-color: #ccc;
+}
+
+.widefat td,
+.widefat th {
+	border-top-color: #fff;
+	border-bottom-color: #d0dfe9;
+}
+
+.widefat th {
+	text-shadow: rgba(255,255,255,0.8) 0 1px 0;
+}
+
+.widefat td {
+	color: #555;
+}
+.widefat p,
+.widefat ol,
+.widefat ul {
+	color: #333;
+}
+
+.widefat thead tr th,
+.widefat tfoot tr th,
+h3.dashboard-widget-title,
+h3.dashboard-widget-title span,
+h3.dashboard-widget-title small {
+	color: #333;
+}
+
+th.sortable a:hover,
+th.sortable a:active,
+th.sortable a:focus {
+	color: #333;
+}
+
+th.sortable a:focus {
+	background: #e1e1e1;
+	background-image: -webkit-gradient(linear, left bottom, left top, from(#dcdcdc), to(#e9e9e9));
+	background-image: -webkit-linear-gradient(bottom, #dcdcdc, #e9e9e9);
+	background-image:    -moz-linear-gradient(bottom, #dcdcdc, #e9e9e9);
+	background-image:      -o-linear-gradient(bottom, #dcdcdc, #e9e9e9);
+	background-image: linear-gradient(to top, #dcdcdc, #e9e9e9);
+}
+
+h3.dashboard-widget-title small a {
+	color: #d7d7d7;
+}
+
+h3.dashboard-widget-title small a:hover {
+	color: #fff;
+}
+
+a,
+#adminmenu a,
+#the-comment-list p.comment-author strong a,
+#media-upload a.del-link,
+#media-items a.delete,
+#media-items a.delete-permanently,
+.plugins a.delete,
+.ui-tabs-nav a {
+	color: #21759b;
+}
+
+#adminmenu .awaiting-mod,
+#adminmenu .update-plugins,
+#sidemenu a .update-plugins,
+#rightnow .reallynow {
+	background-color: #464646;
+	color: #fff;
+	-webkit-box-shadow: rgba(255,255,255,0.5) 0 1px 0;
+	box-shadow: rgba(255,255,255,0.5) 0 1px 0;
+}
+#plugin-information .action-button {
+	background-color: #d54e21;
+	color: #fff;
+}
+
+#adminmenu li.current a .awaiting-mod,
+#adminmenu	li a.wp-has-current-submenu .update-plugins{
+	background-color: #464646;
+	color: #fff;
+	-webkit-box-shadow: rgba(255,255,255,0.5) 0 1px 0;
+	box-shadow: rgba(255,255,255,0.5) 0 1px 0;
+}
+
+div#media-upload-header,
+div#plugin-information-header {
+	background-color: #f9f9f9;
+	border-bottom-color: #dfdfdf;
+}
+
+#currenttheme img {
+	border-color: #666;
+}
+
+#dashboard_secondary div.dashboard-widget-content ul li a {
+	background-color: #f9f9f9;
+}
+
+input.readonly, textarea.readonly {
+	background-color: #ddd;
+}
+
+#editable-post-name {
+	background-color: #fffbcc;
+}
+
+#edit-slug-box strong,
+.tablenav .displaying-num,
+#submitted-on,
+.submitted-on {
+	color: #777;
+}
+
+.login #nav a,
+.login #backtoblog a {
+	color: #21759b !important;
+}
+
+.login #nav a:hover,
+.login #backtoblog a:hover {
+	color: #d54e21 !important;
+}
+
+#wpfooter {
+	color: #777;
+	border-color: #b0c8d7;
+}
+
+.imgedit-group,
+#media-items .media-item,
+.media-item .describe {
+	border-color: #dfdfdf;
+}
+
+.checkbox,
+.side-info,
+.plugins tr,
+#your-profile #rich_editing {
+	background-color: #fcfcfc;
+}
+
+.plugins .inactive,
+.plugins .inactive th,
+.plugins .inactive td,
+tr.inactive + tr.plugin-update-tr .plugin-update {
+	background-color: #f7fcfe;
+}
+
+.plugin-update-tr .update-message {
+	background-color: #fffbe4;
+	border-color: #dfdfdf;
+}
+
+.plugins .active,
+.plugins .active th,
+.plugins .active td {
+	color: #000;
+}
+
+.plugins .inactive a {
+	color: #579;
+}
+
+#the-comment-list tr.undo,
+#the-comment-list div.undo {
+	background-color: #f4f4f4;
+}
+
+#the-comment-list .unapproved {
+	background-color: #ffffe0;
+}
+
+#the-comment-list .approve a {
+	color: #006505;
+}
+
+#the-comment-list .unapprove a {
+	color: #d98500;
+}
+
+table.widefat span.delete a,
+table.widefat span.trash a,
+table.widefat span.spam a,
+#dashboard_recent_comments .delete a,
+#dashboard_recent_comments .trash a,
+#dashboard_recent_comments .spam a {
+	color: #bc0b0b;
+}
+
+.welcome-panel {
+	background: #f5fafd;
+	background-image: -webkit-gradient(linear, left bottom, left top, from(#eff8ff), to(#f7fcfe));
+	background-image: -webkit-linear-gradient(bottom, #eff8ff, #f7fcfe);
+	background-image:    -moz-linear-gradient(bottom, #eff8ff, #f7fcfe);
+	background-image:      -o-linear-gradient(bottom, #eff8ff, #f7fcfe);
+	background-image: linear-gradient(to top, #eff8ff, #f7fcfe);
+	border-color: #d1e5ee;
+}
+.welcome-panel p {
+	color: #777;
+}
+.welcome-panel-column p {
+	color: #464646;
+}
+.welcome-panel h3 {
+	text-shadow: 1px 1px 1px #fff;
+}
+
+.widget,
+#widget-list .widget-top,
+.postbox,
+#titlediv,
+#poststuff .postarea,
+.stuffbox {
+	border-color: #d1e5ee;
+	-webkit-box-shadow: inset 0 1px 0 #fff;
+	box-shadow: inset 0 1px 0 #fff;
+	-webkit-border-radius: 3px;
+	border-radius: 3px;
+}
+
+.widget,
+#widget-list .widget-top,
+.postbox,
+.menu-item-settings {
+	background: #f5fafd;
+	background-image: -webkit-gradient(linear, left bottom, left top, from(#eff8ff), to(#f7fcfe));
+	background-image: -webkit-linear-gradient(bottom, #eff8ff, #f7fcfe);
+	background-image:    -moz-linear-gradient(bottom, #eff8ff, #f7fcfe);
+	background-image:      -o-linear-gradient(bottom, #eff8ff, #f7fcfe);
+	background-image: linear-gradient(to top, #eff8ff, #f7fcfe);
+}
+
+.postbox h3 {
+	color: #174f69;
+}
+
+.widget .widget-top {
+	color: #174f69;
+}
+
+.js .sidebar-name:hover h3,
+.js .postbox h3:hover {
+	color: #000;
+}
+
+.curtime #timestamp {
+	background-image: url(../images/date-button.gif);
+}
+
+#quicktags #ed_link {
+	color: #00f;
+}
+
+#rightnow .youhave {
+	background-color: #f0f6fb;
+}
+
+#rightnow a {
+	color: #448abd;
+}
+
+.tagchecklist span a,
+#bulk-titles div a {
+	background: url(../images/xit.gif) no-repeat;
+}
+
+.tagchecklist span a:hover,
+#bulk-titles div a:hover {
+	background: url(../images/xit.gif) no-repeat -10px 0;
+}
+
+#update-nag, .update-nag {
+	background-color: #fffbcc;
+	border-color: #e6db55;
+	color: #555;
+}
+
+#screen-meta {
+	background-color: #eff8ff;
+	border-color: #d1e5ee;
+	-webkit-box-shadow: 0 1px 3px rgba( 0, 0, 0, 0.05 );
+	box-shadow: 0 1px 3px rgba( 0, 0, 0, 0.05 );
+}
+
+#contextual-help-back {
+	background: #fff;
+}
+
+.contextual-help-tabs a:hover {
+	background-color: #ceeaff;
+	color: #333;
+}
+
+#contextual-help-back,
+.contextual-help-tabs .active {
+	border-color: #d1e5ee;
+}
+
+.contextual-help-tabs .active,
+.contextual-help-tabs .active a,
+.contextual-help-tabs .active a:hover {
+	background: #fff;
+	color: #000;
+}
+
+/* screen options and help tabs */
+#screen-options-link-wrap,
+#contextual-help-link-wrap {
+	border-right: 1px solid #d1e5ee;
+	border-left: 1px solid #d1e5ee;
+	border-bottom: 1px solid #d1e5ee;
+	background: #eff8ff;
+	background-image: -webkit-gradient(linear, left bottom, left top, from(#def1ff), to(#eff8ff));
+	background-image: -webkit-linear-gradient(bottom, #def1ff, #eff8ff);
+	background-image:    -moz-linear-gradient(bottom, #def1ff, #eff8ff);
+	background-image:      -o-linear-gradient(bottom, #def1ff, #eff8ff);
+	background-image: linear-gradient(to top, #def1ff, #eff8ff);
+}
+
+#screen-meta-links a {
+	color: #606060;
+	background: transparent url(../images/arrows.png) no-repeat right 4px;
+}
+
+#screen-meta-links a:hover,
+#screen-meta-links a:active {
+	color: #000;
+	background-color: transparent;
+}
+
+#screen-meta-links a.screen-meta-active {
+	background-position: right -31px;
+}
+
+/* end screen options and help tabs */
+
+.login #backtoblog a {
+	color: #464646;
+}
+
+#wphead {
+	border-bottom: 1px solid #d0dfe9;
+}
+
+#wphead h1 a {
+	color: #174f69;
+}
+
+#wpfooter a:link,
+#wpfooter a:visited {
+	text-decoration: none;
+}
+
+#wpfooter a:hover {
+	color: #000;
+	text-decoration: underline;
+}
+
+.file-error,
+abbr.required,
+.widget-control-remove:hover,
+table.widefat .delete a:hover,
+table.widefat .trash a:hover,
+table.widefat .spam a:hover,
+#dashboard_recent_comments .delete a:hover,
+#dashboard_recent_comments .trash a:hover
+#dashboard_recent_comments .spam a:hover {
+	color: #f00;
+}
+
+#pass-strength-result {
+	background-color: #eee;
+	border-color: #ddd !important;
+}
+
+#pass-strength-result.bad {
+	background-color: #ffb78c;
+	border-color: #ff853c !important;
+}
+
+#pass-strength-result.good {
+	background-color: #ffec8b;
+	border-color: #fc0 !important;
+}
+
+#pass-strength-result.short {
+	background-color: #ffa0a0;
+	border-color: #f04040 !important;
+}
+
+#pass-strength-result.strong {
+	background-color: #c3ff88;
+	border-color: #8dff1c !important;
+}
+
+/* editors */
+#poststuff .wp-editor-wrap .wp_themeSkin .mceStatusbar {
+	border-color: #d0dfe9;
+	background-color: #eff8ff;
+}
+
+#poststuff .wp-editor-wrap .wp_themeSkin .mceStatusbar * {
+	color: #555;
+}
+
+#poststuff #editor-toolbar .active {
+	border-color: #d0dfe9 #d0dfe9 #eff8ff;
+	background-color: #eff8ff;
+	color: #333;
+}
+
+.wp-editor-wrap .wp-editor-container,
+.wp-editor-wrap .wp_themeSkin table.mceLayout {
+	border-color: #d1e5ee #d1e5ee #d0dfe9;
+}
+
+#editorcontainer {
+	border-color: #d1e5ee #d1e5ee #d0dfe9;
+}
+
+#post-status-info {
+	border-color: #d0dfe9 #d1e5ee #d1e5ee;
+}
+
+/* TinyMCE */
+
+.wp-admin .wp-editor-wrap .wp-switch-editor {
+	background-color: #d3e9f2;
+	border-color: #d1e5ee #d1e5ee #d3e9f2;
+	color: #174F69;
+}
+
+.wp-admin .wp-editor-wrap .wp-switch-editor:active {
+	background-color: #f5fafd;
+}
+
+.wp-admin .wp-editor-wrap.tmce-active .switch-tmce,
+.wp-admin .wp-editor-wrap.html-active .switch-html {
+	background: #f7fcfe;
+	border-color: #d1e5ee #d1e5ee #f7fcfe;
+}
+
+.wp-admin .wp-editor-wrap .quicktags-toolbar,
+.wp-admin .wp-editor-wrap .wp_themeSkin tr.mceFirst td.mceToolbar {
+	border-color: #d0dfe9;
+	background-color: #f5fafd;
+	background-image: -webkit-gradient(linear, left bottom, left top, from(#eff8ff), to(#f7fcfe));
+	background-image: -webkit-linear-gradient(bottom, #eff8ff, #f7fcfe);
+	background-image:    -moz-linear-gradient(bottom, #eff8ff, #f7fcfe);
+	background-image:      -o-linear-gradient(bottom, #eff8ff, #f7fcfe);
+	background-image: linear-gradient(to top, #eff8ff, #f7fcfe);
+}
+
+.wp-admin .wp_themeSkin table.mceListBox {
+	border-color: #d1e5ee;
+}
+
+.wp-admin .wp_themeSkin table.mceListBoxEnabled:hover,
+.wp-admin .wp_themeSkin table.mceListBoxEnabled:active,
+.wp-admin .wp_themeSkin table.mceListBoxHover,
+.wp-admin .wp_themeSkin table.mceListBoxHover:active,
+.wp-admin .wp_themeSkin table.mceListBoxSelected {
+	border-color: #b8cfdf;
+}
+
+.wp-admin .wp_themeSkin a.mceButtonEnabled:hover,
+.wp-admin .wp_themeSkin table.mceSplitButton:hover {
+	border-color: #c3d2dc;
+	background: #f4f9fc;
+	background-image: -webkit-gradient(linear, left bottom, left top, from(#f4f9fc), to(#fff));
+	background-image: -webkit-linear-gradient(bottom, #f4f9fc, #fff);
+	background-image:    -moz-linear-gradient(bottom, #f4f9fc, #fff);
+	background-image:      -o-linear-gradient(bottom, #f4f9fc, #fff);
+	background-image: linear-gradient(to top, #f4f9fc, #fff);
+}
+
+.wp-admin .wp_themeSkin a.mceButton:active,
+.wp-admin .wp_themeSkin a.mceButtonEnabled:active,
+.wp-admin .wp_themeSkin a.mceButtonSelected:active,
+.wp-admin .wp_themeSkin a.mceButtonActive,
+.wp-admin .wp_themeSkin a.mceButtonActive:active,
+.wp-admin .wp_themeSkin a.mceButtonActive:hover,
+.wp-admin .wp_themeSkin .mceSplitButtonSelected table,
+.wp-admin .wp_themeSkin .mceSplitButtonSelected table:hover {
+	border-color: #8f9da9 #c3d2dc #c3d2dc #8f9da9;
+	background: #f4f9fc;
+	background-image: -webkit-gradient(linear, left bottom, left top, from(#fff), to(#f4f9fc));
+	background-image: -webkit-linear-gradient(bottom, #fff, #f4f9fc);
+	background-image:    -moz-linear-gradient(bottom, #fff, #f4f9fc);
+	background-image:      -o-linear-gradient(bottom, #fff, #f4f9fc);
+	background-image: linear-gradient(to top, #fff, #f4f9fc);
+}
+
+.wp-admin .wp_themeSkin .mceSplitButtonSelected table a.mceOpen,
+.wp-admin .wp_themeSkin .mceSplitButtonSelected table a.mceAction {
+	border-color: #8f9da9 #c3d2dc #c3d2dc #8f9da9;
+}
+
+.wp-admin .wp_themeSkin .mceSplitButton:hover a {
+	border-color: #c3d2dc;
+}
+/* end TinyMCE */
+
+.editwidget .widget-inside {
+	border-color: #d0dfe9;
+}
+
+#titlediv #title {
+	background-color: #fff;
+}
+
+#tTips p#tTips_inside {
+	background-color: #ddd;
+	color: #333;
+}
+
+#poststuff .inside .the-tagcloud {
+	border-color: #ddd;
+}
+
+/* menu */
+#adminmenuback,
+#adminmenuwrap {
+	background-color: #eff8ff;
+	border-color: #d1e5ee;
+}
+
+#adminmenushadow,
+#adminmenuback {
+	background-image: url(../images/menu-shadow.png);
+	background-position: top right;
+	background-repeat: repeat-y;
+}
+
+#adminmenu li.wp-menu-separator {
+	background: #d1e5ee;
+	border-color: #bed1dd;
+}
+
+#adminmenu div.separator {
+	border-color: #d1e5ee;
+}
+
+#adminmenu a.menu-top,
+#adminmenu .wp-submenu .wp-submenu-head {
+	border-top-color: #fff;
+	border-bottom-color: #cae6ff;
+}
+
+#adminmenu li.wp-menu-open {
+	border-color: #d1e5ee;
+}
+
+#adminmenu li.menu-top:hover,
+#adminmenu li.opensub > a.menu-top,
+#adminmenu li > a.menu-top:focus {
+	background-color: #e0f1ff;
+	color: #d54e21;
+	text-shadow: 0 1px 0 rgba( 255, 255, 255, 0.4 );
+}
+
+/* So it doesn't get applied to the number spans (comments, updates, etc) */
+#adminmenu li.menu-top:hover > a span,
+#adminmenu li.menu-top > a:focus span {
+	text-shadow: none;
+}
+
+#adminmenu li.wp-has-current-submenu a.wp-has-current-submenu,
+#adminmenu li.current a.menu-top,
+.folded #adminmenu li.wp-has-current-submenu,
+.folded #adminmenu li.current.menu-top,
+#adminmenu .wp-menu-arrow,
+#adminmenu .wp-has-current-submenu .wp-submenu .wp-submenu-head {
+	background: #5589aa;
+	background-image: -webkit-gradient(linear, left bottom, left top, from(#5589aa), to(#619bbb));
+	background-image: -webkit-linear-gradient(bottom, #5589aa, #619bbb);
+	background-image:    -moz-linear-gradient(bottom, #5589aa, #619bbb);
+	background-image:      -o-linear-gradient(bottom, #5589aa, #619bbb);
+	background-image: linear-gradient(to top, #5589aa, #619bbb);
+}
+
+#adminmenu .wp-menu-arrow div {
+	background: #5589aa;
+	background-image: -webkit-gradient(linear, right bottom, left top, from(#5589aa), to(#619bbb));
+	background-image: -webkit-linear-gradient(bottom right, #5589aa, #619bbb);
+	background-image:    -moz-linear-gradient(bottom right, #5589aa, #619bbb);
+	background-image:      -o-linear-gradient(bottom right, #5589aa, #619bbb);
+	background-image: linear-gradient(to top left, #5589aa, #619bbb);
+}
+
+#adminmenu li.wp-not-current-submenu .wp-menu-arrow {
+	border-top-color: #fff;
+	border-bottom-color: #cae6ff;
+	background: #e0f1ff;
+}
+
+#adminmenu li.wp-not-current-submenu .wp-menu-arrow div {
+	background: #e0f1ff;
+	border-color: #cae6ff;
+}
+
+.folded #adminmenu li.menu-top li:hover a {
+	background-image: none;
+}
+
+#adminmenu li.wp-has-current-submenu a.wp-has-current-submenu,
+#adminmenu li.current a.menu-top,
+#adminmenu .wp-has-current-submenu .wp-submenu .wp-submenu-head {
+	text-shadow: 0 -1px 0 #333;
+	color: #fff;
+	border-top-color: #5a8fad;
+	border-bottom-color: #5589aa;
+}
+
+.folded #adminmenu li.wp-has-current-submenu,
+.folded #adminmenu li.current.menu-top {
+	border-top-color: #5a8fad;
+	border-bottom-color: #5589aa;
+}
+
+#adminmenu .wp-submenu a:hover,
+#adminmenu .wp-submenu a:focus {
+	background-color: #eff8ff;
+	color: #333;
+}
+
+#adminmenu .wp-submenu li.current,
+#adminmenu .wp-submenu li.current a,
+#adminmenu .wp-submenu li.current a:hover {
+	color: #333;
+}
+
+#adminmenu .wp-submenu,
+.folded #adminmenu a.wp-has-current-submenu:focus + .wp-submenu,
+.folded #adminmenu .wp-has-current-submenu .wp-submenu {
+	background-color: #fff;
+	border-color: #d0dfe9;
+	-webkit-box-shadow: 2px 3px 6px rgba(0, 0, 0, 0.4);
+	box-shadow: 2px 3px 6px rgba(0, 0, 0, 0.4);
+}
+
+#adminmenu .wp-submenu .wp-submenu-head {
+	background-color: #e0f1ff;
+	color: #333;
+}
+
+/* collapse menu button */
+#collapse-menu {
+	color: #a0c3d5;
+	border-top-color: #f9f9f9;
+}
+
+#collapse-menu:hover {
+	color: #5a8fad;
+}
+
+#collapse-button {
+	border-color: #d0dfe9;
+	background: #eff8ff;
+	background-image: -webkit-gradient(linear, left bottom, left top, from(#eff8ff), to(#fff));
+	background-image: -webkit-linear-gradient(bottom, #eff8ff, #fff);
+	background-image:    -moz-linear-gradient(bottom, #eff8ff, #fff);
+	background-image:      -o-linear-gradient(bottom, #eff8ff, #fff);
+	background-image: linear-gradient(to top, #eff8ff, #fff);
+}
+
+#collapse-menu:hover #collapse-button {
+	border-color: #a0c3d5;
+}
+
+#collapse-button div {
+	background: transparent url(../images/arrows-vs.png) no-repeat 0 -72px;
+}
+
+.folded #collapse-button div {
+	background-position: 0 -108px;
+}
+
+/* Auto-folding of the admin menu */
+@media only screen and (max-width: 900px) {
+	.auto-fold #adminmenu li.wp-has-current-submenu,
+	.auto-fold #adminmenu li.current.menu-top {
+		background-color: #5589aa;
+		background-image: -webkit-gradient(linear, left bottom, left top, from(#5589aa), to(#619bbb));
+		background-image: -webkit-linear-gradient(bottom, #5589aa, #619bbb);
+		background-image: -moz-linear-gradient(bottom, #5589aa, #619bbb);
+		background-image: -o-linear-gradient(bottom, #5589aa, #619bbb);
+		background-image: linear-gradient(bottom, #5589aa, #619bbb);
+	}
+
+	.auto-fold #adminmenu li.wp-has-current-submenu,
+	.auto-fold #adminmenu li.current.menu-top {
+		border-top-color: #5a8fad;
+		border-bottom-color: #5589aa;
+	}
+
+	.auto-fold #adminmenu a.wp-has-current-submenu:focus + .wp-submenu,
+	.auto-fold #adminmenu .wp-has-current-submenu .wp-submenu {
+		background-color: #fff;
+		border-color: #d0dfe9;
+		-webkit-box-shadow: 2px 3px 6px rgba(0, 0, 0, 0.4);
+		box-shadow: 2px 3px 6px rgba(0, 0, 0, 0.4);
+	}
+
+	.auto-fold #collapse-button div {
+		background-position: 0 -108px;
+	}
+}
+
+/* menu and screen icons */
+.icon16,
+.icon32,
+div.wp-menu-image {
+	background-color: transparent;
+	background-repeat: no-repeat;
+}
+
+.icon16.icon-dashboard,
+.menu-icon-dashboard div.wp-menu-image,
+.icon16.icon-post,
+.menu-icon-post div.wp-menu-image,
+.icon16.icon-media,
+.menu-icon-media div.wp-menu-image,
+.icon16.icon-links,
+.menu-icon-links div.wp-menu-image,
+.icon16.icon-page,
+.menu-icon-page div.wp-menu-image,
+.icon16.icon-comments,
+.menu-icon-comments div.wp-menu-image,
+.icon16.icon-appearance,
+.menu-icon-appearance div.wp-menu-image,
+.icon16.icon-plugins,
+.menu-icon-plugins div.wp-menu-image,
+.icon16.icon-users,
+.menu-icon-users div.wp-menu-image,
+.icon16.icon-tools,
+.menu-icon-tools div.wp-menu-image,
+.icon16.icon-settings,
+.menu-icon-settings div.wp-menu-image,
+.icon16.icon-site,
+.menu-icon-site div.wp-menu-image,
+.icon16.icon-generic,
+.menu-icon-generic div.wp-menu-image {
+	background-image: url(../images/menu-vs.png?ver=20121105);
+}
+
+.icon16.icon-dashboard,
+#adminmenu .menu-icon-dashboard div.wp-menu-image {
+	background-position: -59px -33px;
+}
+
+#adminmenu .menu-icon-dashboard:hover div.wp-menu-image,
+#adminmenu .menu-icon-dashboard.wp-has-current-submenu div.wp-menu-image,
+#adminmenu .menu-icon-dashboard.current div.wp-menu-image {
+	background-position: -59px -1px;
+}
+
+.icon16.icon-post,
+#adminmenu .menu-icon-post div.wp-menu-image {
+	background-position: -269px -33px;
+}
+
+#adminmenu .menu-icon-post:hover div.wp-menu-image,
+#adminmenu .menu-icon-post.wp-has-current-submenu div.wp-menu-image,
+#adminmenu .menu-icon-post.current div.wp-menu-image {
+	background-position: -269px -1px;
+}
+
+.icon16.icon-media,
+#adminmenu .menu-icon-media div.wp-menu-image {
+	background-position: -119px -33px;
+}
+
+#adminmenu .menu-icon-media:hover div.wp-menu-image,
+#adminmenu .menu-icon-media.wp-has-current-submenu div.wp-menu-image,
+#adminmenu .menu-icon-media.current div.wp-menu-image {
+	background-position: -119px -1px;
+}
+
+.icon16.icon-links,
+#adminmenu .menu-icon-links div.wp-menu-image {
+	background-position: -89px -33px;
+}
+
+#adminmenu .menu-icon-links:hover div.wp-menu-image,
+#adminmenu .menu-icon-links.wp-has-current-submenu div.wp-menu-image,
+#adminmenu .menu-icon-links.current div.wp-menu-image {
+	background-position: -89px -1px;
+}
+
+.icon16.icon-page,
+#adminmenu .menu-icon-page div.wp-menu-image {
+	background-position: -149px -33px;
+}
+
+#adminmenu .menu-icon-page:hover div.wp-menu-image,
+#adminmenu .menu-icon-page.wp-has-current-submenu div.wp-menu-image,
+#adminmenu .menu-icon-page.current div.wp-menu-image {
+	background-position: -149px -1px;
+}
+
+.icon16.icon-comments,
+#adminmenu .menu-icon-comments div.wp-menu-image {
+	background-position: -29px -33px;
+}
+
+#adminmenu .menu-icon-comments:hover div.wp-menu-image,
+#adminmenu .menu-icon-comments.wp-has-current-submenu div.wp-menu-image,
+#adminmenu .menu-icon-comments.current div.wp-menu-image {
+	background-position: -29px -1px;
+}
+
+.icon16.icon-appearance,
+#adminmenu .menu-icon-appearance div.wp-menu-image {
+	background-position: 1px -33px;
+}
+
+#adminmenu .menu-icon-appearance:hover div.wp-menu-image,
+#adminmenu .menu-icon-appearance.wp-has-current-submenu div.wp-menu-image,
+#adminmenu .menu-icon-appearance.current div.wp-menu-image {
+	background-position: 1px -1px;
+}
+
+.icon16.icon-plugins,
+#adminmenu .menu-icon-plugins div.wp-menu-image {
+	background-position: -179px -33px;
+}
+
+#adminmenu .menu-icon-plugins:hover div.wp-menu-image,
+#adminmenu .menu-icon-plugins.wp-has-current-submenu div.wp-menu-image,
+#adminmenu .menu-icon-plugins.current div.wp-menu-image {
+	background-position: -179px -1px;
+}
+
+.icon16.icon-users,
+#adminmenu .menu-icon-users div.wp-menu-image {
+	background-position: -300px -33px;
+}
+
+#adminmenu .menu-icon-users:hover div.wp-menu-image,
+#adminmenu .menu-icon-users.wp-has-current-submenu div.wp-menu-image,
+#adminmenu .menu-icon-users.current div.wp-menu-image {
+	background-position: -300px -1px;
+}
+
+.icon16.icon-tools,
+#adminmenu .menu-icon-tools div.wp-menu-image {
+	background-position: -209px -33px;
+}
+
+#adminmenu .menu-icon-tools:hover div.wp-menu-image,
+#adminmenu .menu-icon-tools.wp-has-current-submenu div.wp-menu-image,
+#adminmenu .menu-icon-tools.current div.wp-menu-image {
+	background-position: -209px -1px;
+}
+
+.icon16.icon-settings,
+#adminmenu .menu-icon-settings div.wp-menu-image {
+	background-position: -239px -33px;
+}
+
+#adminmenu .menu-icon-settings:hover div.wp-menu-image,
+#adminmenu .menu-icon-settings.wp-has-current-submenu div.wp-menu-image,
+#adminmenu .menu-icon-settings.current div.wp-menu-image {
+	background-position: -239px -1px;
+}
+
+.icon16.icon-site,
+#adminmenu .menu-icon-site div.wp-menu-image {
+	background-position: -359px -33px;
+}
+
+#adminmenu .menu-icon-site:hover div.wp-menu-image,
+#adminmenu .menu-icon-site.wp-has-current-submenu div.wp-menu-image,
+#adminmenu .menu-icon-site.current div.wp-menu-image {
+	background-position: -359px -1px;
+}
+
+.icon16.icon-generic,
+#adminmenu .menu-icon-generic div.wp-menu-image {
+	background-position: -330px -33px;
+}
+
+#adminmenu .menu-icon-generic:hover div.wp-menu-image,
+#adminmenu .menu-icon-generic.wp-has-current-submenu div.wp-menu-image,
+#adminmenu .menu-icon-generic.current div.wp-menu-image {
+	background-position: -330px -1px;
+}
+/* end menu and screen icons */
+
+/* Screen Icons */
+.icon32.icon-post,
+#icon-edit,
+#icon-post,
+.icon32.icon-dashboard,
+#icon-index,
+.icon32.icon-media,
+#icon-upload,
+.icon32.icon-links,
+#icon-link-manager,
+#icon-link,
+#icon-link-category,
+.icon32.icon-page,
+#icon-edit-pages,
+#icon-page,
+.icon32.icon-comments,
+#icon-edit-comments,
+.icon32.icon-appearance,
+#icon-themes,
+.icon32.icon-plugins,
+#icon-plugins,
+.icon32.icon-users,
+#icon-users,
+#icon-profile,
+#icon-user-edit,
+.icon32.icon-tools,
+#icon-tools,
+#icon-admin,
+.icon32.icon-settings,
+#icon-options-general,
+.icon32.icon-site,
+#icon-ms-admin,
+.icon32.icon-generic,
+#icon-generic {
+	background-image: url(../images/icons32-vs.png?ver=20121105);
+}
+
+.icon32.icon-post,
+#icon-edit,
+#icon-post {
+	background-position: -552px -5px;
+}
+
+.icon32.icon-dashboard,
+#icon-index {
+	background-position: -137px -5px;
+}
+
+.icon32.icon-media,
+#icon-upload {
+	background-position: -251px -5px;
+}
+
+.icon32.icon-links,
+#icon-link-manager,
+#icon-link,
+#icon-link-category {
+	background-position: -190px -5px;
+}
+
+.icon32.icon-page,
+#icon-edit-pages,
+#icon-page {
+	background-position: -312px -5px;
+}
+
+.icon32.icon-comments,
+#icon-edit-comments {
+	background-position: -72px -5px;
+}
+
+.icon32.icon-appearance,
+#icon-themes {
+	background-position: -11px -5px;
+}
+
+.icon32.icon-plugins,
+#icon-plugins {
+	background-position: -370px -5px;
+}
+
+.icon32.icon-users,
+#icon-users,
+#icon-profile,
+#icon-user-edit {
+	background-position: -600px -5px;
+}
+
+.icon32.icon-tools,
+#icon-tools,
+#icon-admin {
+	background-position: -432px -5px;
+}
+
+.icon32.icon-settings,
+#icon-options-general {
+	background-position: -492px -5px;
+}
+
+.icon32.icon-site,
+#icon-ms-admin {
+	background-position: -659px -5px;
+}
+
+.icon32.icon-generic,
+#icon-generic {
+	background-position: -708px -5px;
+}
+
+/* end screen icons */
+
+/* Diff */
+table.diff .diff-deletedline {
+	background-color: #fdd;
+}
+
+table.diff .diff-deletedline del {
+	background-color: #f99;
+}
+
+table.diff .diff-addedline {
+	background-color: #dfd;
+}
+
+table.diff .diff-addedline ins {
+	background-color: #9f9;
+}
+
+#att-info {
+	background-color: #e4f2fd;
+}
+
+/* edit image */
+#sidemenu a {
+	background-color: #f9f9f9;
+	border-color: #f9f9f9;
+	border-bottom-color: #dfdfdf;
+}
+
+#sidemenu a.current {
+	background-color: #fff;
+	border-color: #dfdfdf #dfdfdf #fff;
+	color: #d54e21;
+}
+
+#replyerror {
+	border-color: #ddd;
+	background-color: #f9f9f9;
+}
+
+/* table vim shortcuts */
+.vim-current,
+.vim-current th,
+.vim-current td {
+	background-color: #e4f2fd !important;
+}
+
+/* Install Plugins */
+#plugin-information .fyi ul {
+	background-color: #eaf3fa;
+}
+
+#plugin-information .fyi h2.mainheader {
+	background-color: #cee1ef;
+}
+
+#plugin-information pre,
+#plugin-information code {
+	background-color: #ededff;
+}
+
+#plugin-information pre {
+	border: 1px solid #ccc;
+}
+
+/* inline editor */
+#bulk-titles {
+	border-color: #ddd;
+}
+
+.inline-editor div.title {
+	background-color: #eaf3fa;
+}
+
+.inline-editor ul.cat-checklist {
+	background-color: #fff;
+	border-color: #ddd;
+}
+
+.inline-editor .categories .catshow,
+.inline-editor .categories .cathide {
+	color: #21759b;
+}
+
+.inline-editor .quick-edit-save {
+	background-color: #f1f1f1;
+}
+
+fieldset.inline-edit-col-right .inline-edit-col {
+	border-color: #dfdfdf;
+}
+
+.attention {
+	color: #d54e21;
+}
+
+.js .meta-box-sortables .postbox:hover .handlediv {
+	background: transparent url(../images/arrows-vs.png) no-repeat 6px 7px;
+}
+
+.tablenav .tablenav-pages {
+	color: #555;
+}
+
+.tablenav .tablenav-pages a {
+	border-color: #d1e5ee;
+	background: #eee;
+	-moz-box-shadow:    inset 0 1px 0 #fff;
+	-webkit-box-shadow: inset 0 1px 0 #fff;
+	box-shadow:         inset 0 1px 0 #fff;
+}
+
+.tablenav .tablenav-pages a:hover,
+.tablenav .tablenav-pages a:focus {
+	color: #d54e21;
+}
+
+.tablenav .tablenav-pages a.disabled,
+.tablenav .tablenav-pages a.disabled:hover,
+.tablenav .tablenav-pages a.disabled:focus {
+	color: #aaa;
+}
+
+.tablenav .tablenav-pages .current {
+	background: #dfdfdf;
+	border-color: #d3d3d3;
+}
+
+#availablethemes,
+#availablethemes td {
+	border-color: #acd;
+}
+
+#current-theme img {
+	border-color: #b0c8d7;
+}
+
+#TB_window #TB_title a.tb-theme-preview-link,
+#TB_window #TB_title a.tb-theme-preview-link:visited {
+	color: #999;
+}
+
+#TB_window #TB_title a.tb-theme-preview-link:hover,
+#TB_window #TB_title a.tb-theme-preview-link:focus {
+	color: #ccc;
+}
+
+.misc-pub-section {
+	border-top-color: #fff;
+	border-bottom-color: #d1e5ee;
+}
+
+#minor-publishing {
+	border-bottom-color: #cae6ff;
+}
+
+#post-body .misc-pub-section {
+	border-left-color: #eee;
+}
+
+.post-com-count span {
+	background-color: #bbb;
+}
+
+.form-table .color-palette td {
+	border-color: #fff;
+}
+
+.sortable-placeholder {
+	border-color: #bbb;
+	background-color: #f5f5f5;
+}
+
+#post-body ul.category-tabs li.tabs a,
+#post-body ul.add-menu-item-tabs li.tabs a,
+body.press-this ul.category-tabs li.tabs a {
+	color: #333;
+}
+
+.view-switch #view-switch-list,
+.view-switch #view-switch-excerpt {
+	background-color: transparent;
+	background-image: url('../images/list.png');
+	background-repeat: no-repeat;
+}
+
+.view-switch #view-switch-list {
+	background-position: 0 0;
+}
+
+.view-switch .current #view-switch-list {
+	background-position: -40px 0;
+}
+
+.view-switch #view-switch-excerpt {
+	background-position: -20px 0;
+}
+
+.view-switch .current #view-switch-excerpt {
+	background-position: -60px 0;
+}
+
+#header-logo {
+	background: transparent url(../images/wp-logo-vs.png?ver=20101102) no-repeat scroll center center;
+}
+
+.popular-tags,
+.feature-filter {
+	background-color: #fff;
+	border-color: #d1e5ee;
+}
+
+div.widgets-sortables,
+#widgets-left .inactive,
+#available-widgets .widget-holder {
+	background-color: #f7fcfe;
+	border-color: #d0dfe9;
+}
+
+#available-widgets .widget-description {
+	color: #555;
+}
+
+.sidebar-name {
+	color: #464646;
+	text-shadow: #fff 0 1px 0;
+	border-color: #d0dfe9;
+	-webkit-box-shadow: inset 0 1px 0 #fff;
+	box-shadow: inset 0 1px 0 #fff;
+}
+
+.js .sidebar-name:hover,
+.js #removing-widget {
+	color: #d54e21;
+}
+
+#removing-widget span {
+	color: black;
+}
+
+.js .sidebar-name-arrow {
+	background: transparent url(../images/arrows-vs.png) no-repeat 5px 9px;
+}
+
+.js .sidebar-name:hover .sidebar-name-arrow {
+	background: transparent url(../images/arrows-dark-vs.png) no-repeat 5px 9px;
+}
+
+.in-widget-title {
+	color: #606060;
+}
+
+.deleting .widget-title * {
+	color: #aaa;
+}
+
+.imgedit-menu div {
+	border-color: #d5d5d5;
+	background-color: #f1f1f1;
+}
+
+.imgedit-menu div:hover {
+	border-color: #c1c1c1;
+	background-color: #eaeaea;
+}
+
+.imgedit-menu div.disabled {
+	border-color: #ccc;
+	background-color: #ddd;
+	filter: alpha(opacity=50);
+	opacity: 0.5;
+}
+
+#dashboard_recent_comments div.undo {
+	border-top-color: #dfdfdf;
+}
+
+.comment-ays,
+.comment-ays th {
+	border-color: #ddd;
+}
+
+.comment-ays th {
+	background-color: #f1f1f1;
+}
+
+/* added from nav-menu.css */
+#menu-management .menu-edit {
+	border-color: #d0dfe9;
+}
+
+#post-body {
+	background: #fff;
+	border-top-color: #fff;
+	border-bottom-color: #d0dfe9;
+}
+
+#nav-menu-header {
+	border-bottom-color: #d0dfe9;
+}
+
+#nav-menu-footer {
+	border-top-color: #fff;
+}
+
+#menu-management .nav-tabs-arrow a {
+	color: #c1c1c1;
+}
+
+#menu-management .nav-tabs-arrow a:hover {
+	color: #d54e21;
+}
+
+#menu-management .nav-tabs-arrow a:active {
+	color: #464646;
+}
+
+#menu-management .nav-tab-active {
+	border-color: #dfdfdf;
+}
+
+#menu-management .nav-tab {
+	background: #f7fcfe;
+	border-color: #d0dfe9;
+}
+
+.js .input-with-default-title {
+	color: #aaa;
+}
+
+#cancel-save {
+	color: #f00;
+}
+
+#cancel-save:hover {
+	background-color: #f00;
+	color: #fff;
+}
+
+.list-container {
+	border-color: #dfdfdf;
+}
+
+.menu-item-handle {
+	border-color: #d0dfe9;
+}
+
+.menu li.deleting .menu-item-handle {
+	background-color: #f66;
+	text-shadow: #ccc;
+}
+
+.item-type { /* Menu item controls */
+	color: #999;
+}
+
+.item-controls .menu-item-delete:hover {
+	color: #f00;
+}
+
+.nav-menus-php .item-edit {
+	background: transparent url(../images/arrows-vs.png) no-repeat 8px 10px;
+	border-bottom-color: #eff8ff;
+}
+
+.nav-menus-php .item-edit:hover {
+	background: transparent url(../images/arrows-dark-vs.png) no-repeat 8px 10px;
+}
+
+.menu-item-settings { /* Menu editing */
+	border-color: #d0dfe9;
+}
+
+.link-to-original {
+	color: #777;
+	border-color: #d0dfe9;
+}
+
+#cancel-save:hover {
+	color: #fff !important;
+}
+
+#update-menu-item {
+	color: #fff !important;
+}
+
+#update-menu-item:hover,
+#update-menu-item:active,
+#update-menu-item:focus {
+	color: #eaf2fa !important;
+	border-color: #13455b !important;
+}
+
+.submitbox .submitcancel {
+	color: #21759b;
+	border-bottom-color: #21759b;
+}
+
+.submitbox .submitcancel:hover {
+	background: #21759b;
+	color: #fff;
+}
+/* end added from nav-menu.css */
+
+.nav-tab {
+	border-color: #d1e5ee #d1e5ee #fff;
+}
+
+.nav-tab:hover,
+.nav-tab-active {
+	border-color: #acd #acd #fff;
+}
+
+h2.nav-tab-wrapper, h3.nav-tab-wrapper {
+	border-bottom-color: #acd;
+}
+
+#menu-management .nav-tab-active,
+.menu-item-handle,
+.menu-item-settings {
+	-webkit-box-shadow: inset 0 1px 0 #fff;
+	box-shadow: inset 0 1px 0 #fff;
+}
+
+#menu-management .nav-tab-active {
+	background: #f7fcfe;
+	border-bottom-color: #f7fcfe;
+}
+
+#upload-form label {
+	color: #777;
+}
+
+/* custom header & background pages */
+
+/* full screen */
+.fullscreen-overlay {
+	background: #fff;
+}
+
+.wp-fullscreen-focus #wp-fullscreen-title,
+.wp-fullscreen-focus #wp-fullscreen-container {
+    border-color: #bed1dd;
+}
+
+#fullscreen-topbar {
+	border-bottom-color: #d1e5ee;
+}
+
+/* Begin About Pages */
+
+.about-wrap h1 {
+	color: #333;
+	text-shadow: 1px 1px 1px #fff;
+}
+
+.about-text {
+	color: #777;
+}
+
+.wp-badge {
+	color: #fff;
+	text-shadow: 0 -1px 0 rgba(22, 57, 81, 0.3);
+}
+
+.about-wrap h2 .nav-tab {
+	color: #21759b;
+}
+
+.about-wrap h2 .nav-tab:hover {
+	color: #d54e21;
+}
+
+.about-wrap h2 .nav-tab-active,
+.about-wrap h2 .nav-tab-active:hover {
+	color: #333;
+}
+
+.about-wrap h2 .nav-tab-active {
+	text-shadow: 1px 1px 1px #fff;
+	color: #464646;
+}
+
+.about-wrap h3 {
+	color: #333;
+	text-shadow: 1px 1px 1px #fff;
+}
+
+.about-wrap .feature-section h4 {
+	color: #464646;
+}
+
+.about-wrap .feature-section img {
+	background: #fff;
+	border: 1px #ccc solid;
+	-webkit-box-shadow: 0 1px 3px rgba( 0, 0, 0, 0.3 );
+	box-shadow:         0 1px 3px rgba( 0, 0, 0, 0.3 );
+}
+
+.about-wrap h4.wp-people-group {
+	text-shadow: 1px 1px 1px #fff;
+}
+
+.about-wrap .point-releases {
+	border-bottom: 1px solid #dfdfdf;
+}
+
+.about-wrap .point-releases h3 {
+	border-top: 1px solid #dfdfdf;
+}
+
+.about-wrap .point-releases h3:first-child {
+	border: 0;
+}
+
+.about-wrap li.wp-person img.gravatar {
+	-webkit-box-shadow: 0 0 4px rgba( 0, 0, 0, 0.4 );
+	box-shadow: 0 0 4px rgba( 0, 0, 0, 0.4 );
+}
+
+.about-wrap li.wp-person .title {
+	color: #464646;
+	text-shadow: 1px 1px 1px #fff;
+}
+
+.freedoms-php .about-wrap ol li {
+	color: #999;
+}
+
+.freedoms-php .about-wrap ol p {
+	color: #464646;
+}
+
+/* End About Pages */
+
+
+/*------------------------------------------------------------------------------
+  2.0 - Right to Left Styles
+------------------------------------------------------------------------------*/
+
+.rtl .bar {
+	border-right-color: transparent;
+	border-left-color: #99d;
+}
+
+.rtl #screen-meta-links a.show-settings {
+	background-position: left 3px;
+}
+
+.rtl #screen-meta-links a.show-settings.screen-meta-active {
+	background-position: left -33px;
+}
+
+/* Menu */
+.rtl #adminmenushadow,
+.rtl #adminmenuback {
+	background-image: url(../images/menu-shadow-rtl.png);
+	background-position: top left;
+}
+
+.rtl #adminmenu .wp-submenu .wp-submenu-head {
+	border-right-color: transparent;
+	border-left-color: #d1e5ee;
+}
+
+.rtl #adminmenu .wp-submenu,
+.rtl.folded #adminmenu .wp-has-current-submenu .wp-submenu {
+	-webkit-box-shadow: -2px 2px 5px rgba( 0, 0, 0, 0.4 );
+	box-shadow: -2px 2px 5px rgba( 0, 0, 0, 0.4 );
+}
+
+.rtl #adminmenu .wp-has-current-submenu .wp-submenu {
+	-webkit-box-shadow: none;
+	box-shadow: none;
+}
+
+/* Collapse Menu Button */
+.rtl #collapse-button div {
+	background-position: 0 -108px;
+}
+
+.rtl.folded #collapse-button div {
+	background-position: 0 -72px;
+}
+
+/* Auto-folding of the admin menu for RTL */
+@media only screen and (max-width: 900px) {
+	.rtl.auto-fold #adminmenu a.wp-has-current-submenu:focus + .wp-submenu,
+	.rtl.auto-fold #adminmenu .wp-has-current-submenu .wp-submenu {
+		-webkit-box-shadow: -2px 2px 5px rgba( 0, 0, 0, 0.4 );
+		box-shadow: -2px 2px 5px rgba( 0, 0, 0, 0.4 );
+	}
+
+	.rtl.auto-fold #collapse-button div {
+		background-position: 0 -72px;
+	}
+}
+
+/* edit image */
+.js.rtl .meta-box-sortables .postbox:hover .handlediv {
+	background: transparent url(../images/arrows-vs.png) no-repeat 6px 7px;
+}
+
+.rtl #post-body .misc-pub-section {
+	border-right-color: transparent;
+	border-left-color: #d1e5ee;
+}
+
+.js.rtl .sidebar-name-arrow {
+	background: transparent url(../images/arrows-vs.png) no-repeat 5px 9px;
+}
+
+.js.rtl .sidebar-name:hover .sidebar-name-arrow {
+	background: transparent url(../images/arrows-dark-vs.png) no-repeat 5px 9px;
+}
+
+/**
+ * HiDPI Displays
+ */
+@media print,
+  (-o-min-device-pixel-ratio: 5/4),
+  (-webkit-min-device-pixel-ratio: 1.25),
+  (min-resolution: 120dpi) {
+
+	.curtime #timestamp {
+		background-image: url("../images/date-button-2x.gif?ver=20120916");
+		background-size: 16px auto;
+	}
+
+	.tagchecklist span a,
+	#bulk-titles div a,
+	.tagchecklist span a:hover,
+	#bulk-titles div a:hover {
+		background-image: url("../images/xit-2x.gif?ver=20120916");
+		background-size: 20px auto;
+	}
+
+	#screen-meta-links a.show-settings,
+	#screen-meta-links a.show-settings.screen-meta-active,
+	#adminmenu .wp-has-submenu:hover .wp-menu-toggle,
+	#adminmenu .wp-menu-open .wp-menu-toggle,
+	#collapse-button div,
+	.nav-menus-php .item-edit,
+	.js .meta-box-sortables .postbox:hover .handlediv,
+	.sidebar-name-arrow,
+	.rtl #adminmenu .wp-has-submenu:hover .wp-menu-toggle,
+	.rtl #adminmenu .wp-menu-open .wp-menu-toggle,
+	.js.rtl .meta-box-sortables .postbox:hover .handlediv,
+	.rtl .sidebar-name-arrow {
+		background-image: url("../images/arrows-vs-2x.png?ver=20120916");
+		background-size: 15px 123px;
+	}
+
+	#adminmenu li.wp-has-current-submenu.wp-menu-open .wp-menu-toggle,
+	#adminmenu li.wp-has-current-submenu:hover .wp-menu-toggle,
+	.nav-menus-php .item-edit:hover,
+	.sidebar-name:hover .sidebar-name-arrow,
+	.rtl #adminmenu li.wp-has-current-submenu.wp-menu-open .wp-menu-toggle,
+	.rtl #adminmenu li.wp-has-current-submenu:hover .wp-menu-toggle,
+	.rtl .sidebar-name:hover .sidebar-name-arrow {
+		background-image: url("../images/arrows-dark-vs-2x.png?ver=20120916");
+		background-size: 15px 123px;
+	}
+
+	.view-switch #view-switch-list,
+	.view-switch #view-switch-excerpt {
+		background-image: url("../images/list-2x.png?ver=20120916");
+		background-size: 80px 20px;
+	}
+
+	.icon32.icon-post,
+	#icon-edit,
+	#icon-post,
+	.icon32.icon-dashboard,
+	#icon-index,
+	.icon32.icon-media,
+	#icon-upload,
+	.icon32.icon-links,
+	#icon-link-manager,
+	#icon-link,
+	#icon-link-category,
+	.icon32.icon-page,
+	#icon-edit-pages,
+	#icon-page,
+	.icon32.icon-comments,
+	#icon-edit-comments,
+	.icon32.icon-appearance,
+	#icon-themes,
+	.icon32.icon-plugins,
+	#icon-plugins,
+	.icon32.icon-users,
+	#icon-users,
+	#icon-profile,
+	#icon-user-edit,
+	.icon32.icon-tools,
+	#icon-tools,
+	#icon-admin,
+	.icon32.icon-settings,
+	#icon-options-general,
+	.icon32.icon-site,
+	#icon-ms-admin,
+	.icon32.icon-generic,
+	#icon-generic {
+		background-image: url(../images/icons32-vs-2x.png?ver=20121105);
+		background-size: 756px 45px;
+	}
+
+	.icon16.icon-dashboard,
+	.menu-icon-dashboard div.wp-menu-image,
+	.icon16.icon-post,
+	.menu-icon-post div.wp-menu-image,
+	.icon16.icon-media,
+	.menu-icon-media div.wp-menu-image,
+	.icon16.icon-links,
+	.menu-icon-links div.wp-menu-image,
+	.icon16.icon-page,
+	.menu-icon-page div.wp-menu-image,
+	.icon16.icon-comments,
+	.menu-icon-comments div.wp-menu-image,
+	.icon16.icon-appearance,
+	.menu-icon-appearance div.wp-menu-image,
+	.icon16.icon-plugins,
+	.menu-icon-plugins div.wp-menu-image,
+	.icon16.icon-users,
+	.menu-icon-users div.wp-menu-image,
+	.icon16.icon-tools,
+	.menu-icon-tools div.wp-menu-image,
+	.icon16.icon-settings,
+	.menu-icon-settings div.wp-menu-image,
+	.icon16.icon-site,
+	.menu-icon-site div.wp-menu-image,
+	.icon16.icon-generic,
+	.menu-icon-generic div.wp-menu-image {
+		background-image: url('../images/menu-vs-2x.png?ver=20121105');
+		background-size: 390px 64px;
+	}
+
+	#header-logo {
+		background-image: url('../images/wp-logo-vs-2x.png?ver=20120916');
+		background-size: 16px auto;
+	}
+
+}
--- a/web/wp-admin/css/colors-classic.dev.css	Wed Dec 19 12:35:13 2012 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,2498 +0,0 @@
-/*------------------------------------------------------------------------------
-
-
-Howdy! This is the CSS file that controls the
-Blue (classic) color style on the WordPress Dashboard.
-
-This file contains both LTR and RTL styles.
-
-
-TABLE OF CONTENTS:
-------------------
- 1.0 - Left to Right Styles
- 2.0 - Right to Left Styles
-
-
-------------------------------------------------------------------------------*/
-
-
-/*------------------------------------------------------------------------------
-  1.0 - Left to Right Styles
-------------------------------------------------------------------------------*/
-
-html,
-.wp-dialog {
-	background-color: #fff;
-}
-
-* html input,
-* html .widget {
-	border-color: #dfdfdf;
-}
-
-textarea,
-input[type="text"],
-input[type="password"],
-input[type="file"],
-input[type="button"],
-input[type="submit"],
-input[type="reset"],
-input[type="email"],
-input[type="number"],
-input[type="search"],
-input[type="tel"],
-input[type="url"],
-select {
-	border-color: #dfdfdf;
-	background-color: #fff;
-	color: #333;
-}
-
-select {
-	color: #000;
-}
-
-textarea:focus,
-input[type="text"]:focus,
-input[type="password"]:focus,
-input[type="file"]:focus,
-input[type="button"]:focus,
-input[type="submit"]:focus,
-input[type="reset"]:focus,
-input[type="email"]:focus,
-input[type="number"]:focus,
-input[type="search"]:focus,
-input[type="tel"]:focus,
-input[type="url"]:focus,
-select:focus {
-	border-color: #d1e5ee;
-}
-
-kbd,
-code {
-	background: #eaeaea;
-}
-
-input[readonly] {
-	background-color: #eee;
-}
-
-.find-box-search {
-	border-color: #dfdfdf;
-	background-color: #f1f1f1;
-}
-
-.find-box {
-	background-color: #f1f1f1;
-}
-
-.find-box-inside {
-	background-color: #fff;
-}
-
-a.page-numbers:hover {
-	border-color: #999;
-}
-
-body,
-#wpbody,
-.form-table .pre,
-.ui-autocomplete li a {
-	color: #333;
-}
-
-body > #upload-menu {
-	border-bottom-color: #fff;
-}
-
-#postcustomstuff table,
-#your-profile fieldset,
-#rightnow,
-div.dashboard-widget,
-#dashboard-widgets p.dashboard-widget-links {
-	border-color: #D1E5EE
-}
-
-#poststuff .inside label.spam,
-#poststuff .inside label.deleted {
-	color: red;
-}
-
-#poststuff .inside label.waiting {
-	color: orange;
-}
-
-#poststuff .inside label.approved {
-	color: green;
-}
-
-#postcustomstuff table {
-	border-color: #dfdfdf;
-	background-color: #F9F9F9;
-}
-
-#postcustomstuff thead th {
-	background-color: #F1F1F1;
-}
-
-#postcustomstuff table input,
-#postcustomstuff table textarea {
-	border-color: #dfdfdf;
-	background-color: #fff;
-}
-
-.widefat {
-	border-color: #D1E5EE;
-	background-color: #fff;
-}
-
-div.dashboard-widget-error {
-	background-color: #c43;
-}
-
-div.dashboard-widget-notice {
-	background-color: #cfe1ef;
-}
-
-div.dashboard-widget-submit {
-	border-top-color: #ccc;
-}
-
-ul.category-tabs li {
-	border-color: transparent;
-}
-
-div.tabs-panel,
-.wp-tab-panel,
-ul.category-tabs li.tabs,
-ul.add-menu-item-tabs li.tabs,
-.wp-tab-active {
-	border-color: #dfdfdf;
-	background-color: #fff;
-}
-
-ul.category-tabs li.tabs,
-ul.add-menu-item-tabs li.tabs,
-.wp-tab-active {
-	background-color: #fff;
-}
-
-input.disabled,
-textarea.disabled {
-	background-color: #ccc;
-}
-/* #upload-menu li a.upload-tab-link, */
-#plugin-information .action-button a,
-#plugin-information .action-button a:hover,
-#plugin-information .action-button a:visited {
-	color: #fff;
-}
-
-.widget .widget-top,
-.postbox h3,
-.stuffbox h3,
-.widefat thead tr th,
-.widefat tfoot tr th,
-h3.dashboard-widget-title,
-h3.dashboard-widget-title span,
-h3.dashboard-widget-title small,
-.find-box-head,
-.sidebar-name,
-#nav-menu-header,
-#nav-menu-footer,
-.menu-item-handle,
-#fullscreen-topbar {
-	background-color: #f5fafd; /* Fallback */
-	background-image: -ms-linear-gradient(top, #f7fcfe, #eff8ff); /* IE10 */
-	background-image: -moz-linear-gradient(top, #f7fcfe, #eff8ff); /* Firefox */
-	background-image: -o-linear-gradient(top, #f7fcfe, #eff8ff); /* Opera */
-	background-image: -webkit-gradient(linear, left top, left bottom, from(#f7fcfe), to(#eff8ff)); /* old Webkit */
-	background-image: -webkit-linear-gradient(top, #f7fcfe, #eff8ff); /* new Webkit */
-	background-image: linear-gradient(top, #f7fcfe, #eff8ff); /* proposed W3C Markup */
-}
-
-.widget .widget-top,
-.postbox h3,
-.stuffbox h3 {
-	border-bottom-color: #D1E5EE;
-	text-shadow: #fff 0 1px 0;
-	-moz-box-shadow: 0 1px 0 #fff;
-	-webkit-box-shadow: 0 1px 0 #fff;
-	box-shadow: 0 1px 0 #fff;
-}
-
-.form-table th,
-.form-wrap label {
-	color: #222;
-	text-shadow: #fff 0 1px 0;
-}
-
-.description,
-.form-wrap p {
-	color: #666;
-}
-
-strong .post-com-count span {
-	background-color: #21759b;
-}
-
-.sorthelper {
-	background-color: #ccf3fa;
-}
-
-.ac_match,
-.subsubsub a.current {
-	color: #000;
-}
-
-.wrap h2 {
-	color: #174f69;
-}
-
-.wrap .add-new-h2 {
-	background: #f1f1f1;
-}
-
-.subtitle {
-	color: #777;
-}
-
-.ac_over {
-	background-color: #f0f0b8;
-}
-
-.ac_results {
-	background-color: #fff;
-	border-color: #808080;
-}
-
-.ac_results li {
-	color: #101010;
-}
-
-.alternate,
-.alt {
-	background-color: #f7fcfe;
-}
-
-.available-theme a.screenshot {
-	background-color: #f1f1f1;
-	border-color: #ddd;
-}
-
-.bar {
-	background-color: #e8e8e8;
-	border-right-color: #99d;
-}
-
-#media-upload,
-#media-upload .media-item .slidetoggle {
-	background: #fff;
-}
-
-#media-upload .slidetoggle {
-	border-top-color: #dfdfdf;
-}
-
-div.error,
-.login #login_error {
-	background-color: #ffebe8;
-	border-color: #c00;
-}
-
-div.error a {
-	color: #c00;
-}
-
-.form-invalid {
-	background-color: #ffebe8 !important;
-}
-
-.form-invalid input,
-.form-invalid select {
-	border-color: #c00 !important;
-}
-
-.submit,
-#commentsdiv #add-new-comment {
-	border-color: #dfdfdf;
-}
-
-.highlight {
-	background-color: #e4f2fd;
-	color: #000;
-}
-
-.howto,
-.nonessential,
-#edit-slug-box,
-.form-input-tip,
-.subsubsub {
-	color: #666;
-}
-
-.media-upload-form label.form-help,
-td.help {
-	color: #9a9a9a;
-}
-
-.ui-autocomplete {
-	background-color: #eff8ff;
-	border-color: #d1e5ee;
-}
-
-.ui-autocomplete li a.ui-state-hover {
-	background-color: #def1ff;
-}
-
-.post-com-count {
-	background-image: url(../images/bubble_bg.gif);
-	color: #fff;
-}
-
-.post-com-count span {
-	background-color: #bbb;
-	color: #fff;
-}
-
-.post-com-count:hover span {
-	background-color: #d54e21;
-}
-
-.quicktags, .search {
-	background-color: #ccc;
-	color: #000;
-}
-
-.side-info h5 {
-	border-bottom-color: #dadada;
-}
-
-.side-info ul {
-	color: #666;
-}
-
-.button,
-.button-secondary,
-.submit input,
-input[type=button],
-input[type=submit] {
-	border-color: #bbb;
-	color: #464646;
-}
-
-.button:hover,
-.button-secondary:hover,
-.submit input:hover,
-input[type=button]:hover,
-input[type=submit]:hover {
-	color: #000;
-	border-color: #666;
-}
-
-.button,
-.submit input,
-.button-secondary {
-	background: #f2f2f2 url(../images/white-grad.png) repeat-x scroll left top;
-	text-shadow: rgba(255,255,255,1) 0 1px 0;
-}
-
-.button:active,
-.submit input:active,
-.button-secondary:active {
-	background: #eee url(../images/white-grad-active.png) repeat-x scroll left top;
-}
-
-input.button-primary,
-button.button-primary,
-a.button-primary {
-	border-color: #298cba;
-	font-weight: bold;
-	color: #fff;
-	background: #21759B url(../images/button-grad.png) repeat-x scroll left top;
-	text-shadow: rgba(0,0,0,0.3) 0 -1px 0;
-}
-
-input.button-primary:active,
-button.button-primary:active,
-a.button-primary:active {
-	background: #21759b url(../images/button-grad-active.png) repeat-x scroll left top;
-	color: #eaf2fa;
-}
-
-input.button-primary:hover,
-button.button-primary:hover,
-a.button-primary:hover,
-a.button-primary:focus,
-a.button-primary:active {
-	border-color: #13455b;
-	color: #eaf2fa;
-}
-
-.button-disabled,
-.button[disabled],
-.button:disabled,
-.button-secondary[disabled],
-.button-secondary:disabled,
-a.button.disabled {
-	color: #aaa !important;
-	border-color: #ddd !important;
-}
-
-.button-primary-disabled,
-.button-primary[disabled],
-.button-primary:disabled {
-	color: #9FD0D5 !important;
-	background: #298CBA !important;
-}
-
-a:hover,
-a:active,
-a:focus {
-	color: #d54e21;
-}
-
-#adminmenu a:hover,
-#adminmenu li.menu-top > a:focus,
-#adminmenu ul.wp-submenu a:hover,
-#the-comment-list .comment a:hover,
-#rightnow a:hover,
-#media-upload a.del-link:hover,
-div.dashboard-widget-submit input:hover,
-.subsubsub a:hover,
-.subsubsub a.current:hover,
-.ui-tabs-nav a:hover,
-.plugins .inactive a:hover,
-#all-plugins-table .plugins .inactive a:hover,
-#search-plugins-table .plugins .inactive a:hover {
-	color: #d54e21;
-}
-
-#the-comment-list .comment-item,
-#dashboard-widgets #dashboard_quick_press form p.submit {
-	border-color: #dfdfdf;
-}
-
-#side-sortables .category-tabs .tabs a,
-#side-sortables .add-menu-item-tabs .tabs a,
-.wp-tab-bar .wp-tab-active a {
-	color: #333;
-}
-
-#rightnow .rbutton {
-	background-color: #ebebeb;
-	color: #264761;
-}
-
-.submitbox .submit {
-	background-color: #464646;
-	color: #ccc;
-}
-
-.plugins a.delete:hover,
-#all-plugins-table .plugins a.delete:hover,
-#search-plugins-table .plugins a.delete:hover,
-.submitbox .submitdelete {
-	color: #f00;
-	border-bottom-color: #f00;
-}
-
-.submitbox .submitdelete:hover,
-#media-items a.delete:hover {
-	color: #fff;
-	background-color: #f00;
-	border-bottom-color: #f00;
-}
-
-#normal-sortables .submitbox .submitdelete:hover {
-	color: #000;
-	background-color: #f00;
-	border-bottom-color: #f00;
-}
-
-.tablenav .dots {
-	border-color: transparent;
-}
-
-.tablenav .next,
-.tablenav .prev {
-	border-color: transparent;
-	color: #21759b;
-}
-
-.tablenav .next:hover,
-.tablenav .prev:hover {
-	border-color: transparent;
-	color: #d54e21;
-}
-
-div.updated,
-.login .message {
-	background-color: #ffffe0;
-	border-color: #e6db55;
-}
-
-.update-message {
-	color: #000;
-}
-
-a.page-numbers {
-	border-bottom-color: #B8D3E2;
-}
-
-.commentlist li {
-	border-bottom-color: #ccc;
-}
-
-.widefat td,
-.widefat th {
-	border-top-color: #fff;
-	border-bottom-color: #D0DFE9;
-}
-
-.widefat th {
-	text-shadow: rgba(255,255,255,0.8) 0 1px 0;
-}
-
-.widefat td {
-	color: #555;
-}
-.widefat p,
-.widefat ol,
-.widefat ul {
-	color: #333;
-}
-
-.widefat thead tr th,
-.widefat tfoot tr th,
-h3.dashboard-widget-title,
-h3.dashboard-widget-title span,
-h3.dashboard-widget-title small,
-.find-box-head {
-	color: #333;
-}
-
-th.sortable a:hover, th.sortable a:active, th.sortable a:focus {
-	color: #333;
-}
-
-h3.dashboard-widget-title small a {
-	color: #d7d7d7;
-}
-
-h3.dashboard-widget-title small a:hover {
-	color: #fff;
-}
-
-a,
-#adminmenu a,
-#the-comment-list p.comment-author strong a,
-#media-upload a.del-link,
-#media-items a.delete,
-.plugins a.delete,
-.ui-tabs-nav a {
-	color: #21759b;
-}
-
-#adminmenu .awaiting-mod,
-#adminmenu .update-plugins,
-#sidemenu a .update-plugins,
-#rightnow .reallynow {
-	background-color: #464646;
-	color: #fff;
-	-moz-box-shadow: rgba(255,255,255,0.5) 0 1px 0;
-	-webkit-box-shadow: rgba(255,255,255,0.5) 0 1px 0;
-	box-shadow: rgba(255,255,255,0.5) 0 1px 0;
-}
-#plugin-information .action-button {
-	background-color: #d54e21;
-	color: #fff;
-}
-
-#adminmenu li.current a .awaiting-mod,
-#adminmenu	li a.wp-has-current-submenu .update-plugins{
-	background-color: #464646;
-	color: #fff;
-	-moz-box-shadow: rgba(255,255,255,0.5) 0 1px 0;
-	-webkit-box-shadow: rgba(255,255,255,0.5) 0 1px 0;
-	box-shadow: rgba(255,255,255,0.5) 0 1px 0;
-}
-
-div#media-upload-header,
-div#plugin-information-header {
-	background-color: #f9f9f9;
-	border-bottom-color: #dfdfdf;
-}
-
-#currenttheme img {
-	border-color: #666;
-}
-
-#dashboard_secondary div.dashboard-widget-content ul li a {
-	background-color: #f9f9f9;
-}
-
-input.readonly, textarea.readonly {
-	background-color: #ddd;
-}
-
-.quicktags-toolbar input {
-	background: #fff;
-	background-image: -ms-linear-gradient(bottom, #e5f0f8, #fff); /* IE10 */
-	background-image: -moz-linear-gradient(bottom, #e5f0f8, #fff); /* Firefox */
-	background-image: -o-linear-gradient(bottom, #e5f0f8, #fff); /* Opera */
-	background-image: -webkit-gradient(linear, left bottom, left top, from(#e5f0f8), to(#fff)); /* old Webkit	 */
-	background-image: -webkit-linear-gradient(bottom, #e5f0f8, #fff) !important; /* new Webkit */
-	background-image: linear-gradient(bottom, #e5f0f8, #fff); /* proposed W3C Markup */
-}
-
-#editable-post-name {
-	background-color: #fffbcc;
-}
-
-#edit-slug-box strong,
-.tablenav .displaying-num,
-#submitted-on,
-.submitted-on {
-	color: #777;
-}
-
-.login #nav a,
-.login #backtoblog a {
-	color: #21759b !important;
-}
-
-.login #nav a:hover,
-.login #backtoblog a:hover {
-	color: #d54e21 !important;
-}
-
-#footer {
-	color: #777;
-	border-color: #b0c8d7;
-}
-
-#media-items .media-item,
-.media-item .describe,
-.imgedit-group {
-	border-color: #dfdfdf;
-}
-
-.checkbox,
-.side-info,
-.plugins tr,
-#your-profile #rich_editing {
-	background-color: #fcfcfc;
-}
-
-.plugins .inactive,
-.plugins .inactive th,
-.plugins .inactive td,
-tr.inactive + tr.plugin-update-tr .plugin-update {
-	background-color: #f4f4f4;
-}
-
-.plugin-update-tr .update-message {
-	background-color: #fffbe4;
-	border-color: #dfdfdf;
-}
-
-.plugins .active,
-.plugins .active th,
-.plugins .active td {
-	color: #000;
-}
-
-.plugins .inactive a {
-	color: #557799;
-}
-
-#the-comment-list tr.undo,
-#the-comment-list div.undo {
-	background-color: #f4f4f4;
-}
-
-#the-comment-list .unapproved {
-	background-color: #ffffe0;
-}
-
-#the-comment-list .approve a {
-	color: #006505;
-}
-
-#the-comment-list .unapprove a {
-	color: #d98500;
-}
-
-table.widefat span.delete a,
-table.widefat span.trash a,
-table.widefat span.spam a,
-#dashboard_recent_comments .delete a,
-#dashboard_recent_comments .trash a,
-#dashboard_recent_comments .spam a {
-	color: #bc0b0b;
-}
-
-.welcome-panel {
-	border-color: #d1e5ee;
-}
-.welcome-panel p {
-	color: #777;
-}
-.welcome-panel-column p {
-	color: #464646;
-}
-.welcome-panel h3 {
-	text-shadow: 1px 1px 1px white;
-}
-
-.widget,
-#widget-list .widget-top,
-.postbox,
-#titlediv,
-#poststuff .postarea,
-.stuffbox {
-	border-color: #d1e5ee;
-	-moz-box-shadow: inset 0 1px 0 #fff;
-	-webkit-box-shadow: inset 0 1px 0 #fff;
-	box-shadow: inset 0 1px 0 #fff;
-	-webkit-border-radius: 3px;
-	border-radius: 3px;
-}
-
-.widget,
-#widget-list .widget-top,
-.postbox,
-.menu-item-settings {
-	background-color: #f7fcfe;
-}
-
-.postbox h3 {
-	color: #174f69;
-}
-
-.widget .widget-top {
-	color: #174f69;
-}
-
-.sidebar-name:hover h3,
-.postbox h3:hover {
-	color: #000;
-}
-
-.curtime #timestamp {
-	background-image: url(../images/date-button.gif);
-}
-
-#quicktags #ed_link {
-	color: #00f;
-}
-
-#rightnow .youhave {
-	background-color: #f0f6fb;
-}
-
-#rightnow a {
-	color: #448abd;
-}
-
-.tagchecklist span a,
-#bulk-titles div a {
-	background: url(../images/xit.gif) no-repeat;
-}
-
-.tagchecklist span a:hover,
-#bulk-titles div a:hover {
-	background: url(../images/xit.gif) no-repeat -10px 0;
-}
-
-#update-nag, .update-nag {
-	background-color: #fffbcc;
-	border-color: #e6db55;
-	color: #555;
-}
-
-.login #backtoblog a {
-	color: #464646;
-}
-
-#wphead {
-	border-bottom:#d0dfe9 1px solid;
-}
-
-#wphead h1 a {
-	color: #174f69;
-}
-
-#footer a:link,
-#footer a:visited {
-	text-decoration: none;
-}
-
-#footer a:hover {
-	color: #000;
-	text-decoration: underline;
-}
-
-.file-error,
-abbr.required,
-.widget-control-remove:hover,
-table.widefat .delete a:hover,
-table.widefat .trash a:hover,
-table.widefat .spam a:hover,
-#dashboard_recent_comments .delete a:hover,
-#dashboard_recent_comments .trash a:hover
-#dashboard_recent_comments .spam a:hover {
-	color: #f00;
-}
-
-#pass-strength-result {
-	background-color: #eee;
-	border-color: #ddd !important;
-}
-
-#pass-strength-result.bad {
-	background-color: #ffb78c;
-	border-color: #ff853c !important;
-}
-
-#pass-strength-result.good {
-	background-color: #ffec8b;
-	border-color: #fc0 !important;
-}
-
-#pass-strength-result.short {
-	background-color: #ffa0a0;
-	border-color: #f04040 !important;
-}
-
-#pass-strength-result.strong {
-	background-color: #c3ff88;
-	border-color: #8dff1c !important;
-}
-
-/* editors */
-#quicktags {
-	border-color: #cfdfe9;
-	background-color: #cfdfe9;
-	background-image: url("../images/ed-bg-vs.gif?ver=20101102");
-}
-
-.quicktags-toolbar input {
-	border-color: #b2c4c8;
-}
-
-.quicktags-toolbar input:hover {
-	border-color: #d0dfe9;
-	background: #f0f8fe;
-}
-
-#poststuff .wp-editor-wrap .wp_themeSkin .mceStatusbar {
-	border-color: #d0dfe9;
-}
-
-#poststuff .wp-editor-wrap .wp_themeSkin .mceStatusbar * {
-	color: #555;
-}
-
-#poststuff #editor-toolbar .active {
-	border-color: #d0dfe9 #d0dfe9 #eff8ff;
-	background-color: #eff8ff;
-	color: #333;
-}
-
-/* TinyMCE */
-#post-status-info {
-	background-color: #eff8ff;
-}
-
-.wp-editor-wrap .wp_themeSkin *,
-.wp-editor-wrap .wp_themeSkin a:hover,
-.wp-editor-wrap .wp_themeSkin a:link,
-.wp-editor-wrap .wp_themeSkin a:visited,
-.wp-editor-wrap .wp_themeSkin a:active {
-	color: #000;
-}
-
-/* Containers */
-.wp-editor-wrap .wp_themeSkin table.mceLayout {
-	border-color: #bed1dd #bed1dd #d0dfe9;
-}
-
-#editorcontainer #content,
-#editorcontainer .wp-editor-wrap .wp_themeSkin .mceIframeContainer {
-	-moz-box-shadow: inset 1px 1px 2px rgba( 0, 0, 0, 0.1 );
-	-webkit-box-shadow: inset 1px 1px 2px rgba( 0, 0, 0, 0.1 );
-	box-shadow: inset 1px 1px 2px rgba( 0, 0, 0, 0.1 );
-}
-.wp-editor-wrap .wp_themeSkin iframe {
-	background: transparent;
-}
-
-/* Layout */
-.wp-editor-wrap .wp_themeSkin .mceStatusbar {
-	color: #000;
-	background-color: #f5f5f5;
-}
-
-/* Button */
-.wp-editor-wrap .wp_themeSkin .mceButton {
-	border-color: #B0C8D7;
-	background-color: #cfdfe9; /* Fallback */
-	background-image: -ms-linear-gradient(bottom, #cfdfe9, #fff); /* IE10 */
-	background-image: -moz-linear-gradient(bottom, #cfdfe9, #fff); /* Firefox */
-	background-image: -o-linear-gradient(bottom, #cfdfe9, #fff); /* Opera */
-	background-image: -webkit-gradient(linear, left bottom, left top, from(#cfdfe9), to(#fff)); /* old Webkit	*/
-	background-image: -webkit-linear-gradient(bottom, #cfdfe9, #fff) !important; /* new Webkit */
-	background-image: linear-gradient(bottom, #cfdfe9, #fff); /* proposed W3C Markup */
-}
-
-.wp-editor-wrap .wp_themeSkin a.mceButtonEnabled:hover {
-	border-color: #5589AA !important;
-	background-color: #c9c9c9; /* Fallback */
-	background-image: -ms-linear-gradient(bottom, #bdccd5, #fff); /* IE10 */
-	background-image: -moz-linear-gradient(bottom, #bdccd5, #fff); /* Firefox */
-	background-image: -o-linear-gradient(bottom, #bdccd5, #fff); /* Opera */
-	background-image: -webkit-gradient(linear, left bottom, left top, from(#bdccd5), to(#fff)); /* old Webkit	 */
-	background-image: -webkit-linear-gradient(bottom, #bdccd5, #fff) !important; /* new Webkit */
-	background-image: linear-gradient(bottom, #bdccd5, #fff); /* proposed W3C Markup */
-}
-
-.wp-editor-wrap .wp_themeSkin a.mceButton:active,
-.wp-editor-wrap .wp_themeSkin a.mceButtonEnabled:active,
-.wp-editor-wrap .wp_themeSkin a.mceButtonSelected:active,
-.wp-editor-wrap .wp_themeSkin a.mceButtonActive,
-.wp-editor-wrap .wp_themeSkin a.mceButtonActive:active,
-.wp-editor-wrap .wp_themeSkin a.mceButtonActive:hover {
-	background: #B0C8D7 !important;
-	background-image: -ms-linear-gradient(bottom, #fff, #cfdfe9); /* IE10 */
-	background-image: -moz-linear-gradient(bottom, #fff, #cfdfe9); /* Firefox */
-	background-image: -o-linear-gradient(bottom, #fff, #cfdfe9); /* Opera */
-	background-image: -webkit-gradient(linear, left bottom, left top, from(#fff), to(#cfdfe9)); /* old Webkit	 */
-	background-image: -webkit-linear-gradient(bottom, #fff, #cfdfe9) !important; /* new Webkit */
-	background-image: linear-gradient(bottom, #fff, #cfdfe9); /* proposed W3C Markup */
-	border-color: #5589AA !important;
-}
-
-.wp-editor-wrap .wp_themeSkin .mceButtonDisabled {
-	border-color: #B0C8D7 !important;
-}
-
-/* ListBox */
-.wp-editor-wrap .wp_themeSkin .mceListBox .mceText,
-.wp-editor-wrap .wp_themeSkin .mceListBox .mceOpen	{
-	border-color: #B0C8D7;
-	background-color: #cfdfe9; /* Fallback */
-	background-image: -ms-linear-gradient(bottom, #cfdfe9, #fff); /* IE10 */
-	background-image: -moz-linear-gradient(bottom, #cfdfe9, #fff); /* Firefox */
-	background-image: -o-linear-gradient(bottom, #cfdfe9, #fff); /* Opera */
-	background-image: -webkit-gradient(linear, left bottom, left top, from(#cfdfe9), to(#fff)); /* old Webkit	*/
-	background-image: -webkit-linear-gradient(bottom, #cfdfe9, #fff) !important; /* new Webkit */
-	background-image: linear-gradient(bottom, #cfdfe9, #fff); /* proposed W3C Markup */
-}
-
-.wp-editor-wrap .wp_themeSkin .mceListBox .mceOpen {
-	border-left: 0px !important;
-}
-
-.wp-editor-wrap .wp_themeSkin table.mceListBoxEnabled:hover .mceOpen,
-.wp-editor-wrap .wp_themeSkin .mceListBoxHover .mceOpen,
-.wp-editor-wrap .wp_themeSkin .mceListBoxHover:active .mceOpen,
-.wp-editor-wrap .wp_themeSkin .mceListBoxSelected .mceOpen,
-.wp-editor-wrap .wp_themeSkin .mceListBoxSelected .mceText,
-.wp-editor-wrap .wp_themeSkin table.mceListBoxEnabled:active .mceText {
-	background: #B0C8D7;
-	border-color: #5589AA !important;
-}
-
-/* List Box Hover */
-.wp-editor-wrap .wp_themeSkin table.mceListBoxEnabled:hover .mceText,
-.wp-editor-wrap .wp_themeSkin .mceListBoxHover .mceText,
-.wp-editor-wrap .wp_themeSkin table.mceListBoxEnabled:hover .mceOpen,
-.wp-editor-wrap .wp_themeSkin .mceListBoxHover .mceOpen {
-	border-color: #5589AA !important;
-	background-color: #c9c9c9; /* Fallback */
-	background-image: -ms-linear-gradient(bottom, #cfdfe9, #fff); /* IE10 */
-	background-image: -moz-linear-gradient(bottom, #cfdfe9, #fff); /* Firefox */
-	background-image: -o-linear-gradient(bottom, #cfdfe9, #fff); /* Opera */
-	background-image: -webkit-gradient(linear, left bottom, left top, from(#cfdfe9), to(#fff)); /* old Webkit	*/
-	background-image: -webkit-linear-gradient(bottom, #cfdfe9, #fff) !important; /* new Webkit */
-	background-image: linear-gradient(bottom, #cfdfe9, #fff); /* proposed W3C Markup */
-}
-
-.wp-editor-wrap .wp_themeSkin select.mceListBox {
-	border-color: #B2B2B2;
-	background-color: #fff;
-}
-
-/* SplitButton */
-.wp-editor-wrap .wp_themeSkin .mceSplitButton a.mceAction,
-.wp-editor-wrap .wp_themeSkin .mceSplitButton a.mceOpen {
-	border-color: #B0C8D7;
-}
-
-.wp-editor-wrap .wp_themeSkin .mceSplitButton a.mceOpen:hover,
-.wp-editor-wrap .wp_themeSkin .mceSplitButtonSelected a.mceOpen,
-.wp-editor-wrap .wp_themeSkin table.mceSplitButtonEnabled:hover a.mceAction,
-.wp-editor-wrap .wp_themeSkin .mceSplitButton a.mceAction:hover {
-	border-color: #5589AA !important;
-}
-
-.wp-editor-wrap .wp_themeSkin table.mceSplitButton td {
-	background-color: #cfdfe9; /* Fallback */
-	background-image: -ms-linear-gradient(bottom, #cfdfe9, #fff); /* IE10 */
-	background-image: -moz-linear-gradient(bottom, #cfdfe9, #fff); /* Firefox */
-	background-image: -o-linear-gradient(bottom, #cfdfe9, #fff); /* Opera */
-	background-image: -webkit-gradient(linear, left bottom, left top, from(#cfdfe9), to(#fff)); /* old Webkit	*/
-	background-image: -webkit-linear-gradient(bottom, #cfdfe9, #fff) !important; /* new Webkit */
-	background-image: linear-gradient(bottom, #cfdfe9, #fff); /* proposed W3C Markup */
-}
-
-.wp-editor-wrap .wp_themeSkin table.mceSplitButton:hover td {
-	background-image: -ms-linear-gradient(bottom, #cfdfe9, #fff); /* IE10 */
-	background-image: -moz-linear-gradient(bottom, #cfdfe9, #fff); /* Firefox */
-	background-image: -o-linear-gradient(bottom, #cfdfe9, #fff); /* Opera */
-	background-image: -webkit-gradient(linear, left bottom, left top, from(#cfdfe9), to(#fff)); /* old Webkit	*/
-	background-image: -webkit-linear-gradient(bottom, #cfdfe9, #fff) !important; /* new Webkit */
-	background-image: linear-gradient(bottom, #cfdfe9, #fff); /* proposed W3C Markup */
-}
-
-.wp-editor-wrap .wp_themeSkin .mceSplitButtonActive {
-	background-color: #B0C8D7;
-}
-
-/* ColorSplitButton */
-.wp-editor-wrap .wp_themeSkin div.mceColorSplitMenu table {
-	background-color: #ebebeb;
-	border-color: #B2B2B2;
-}
-
-.wp-editor-wrap .wp_themeSkin .mceColorSplitMenu a {
-	border-color: #B2B2B2;
-}
-
-.wp-editor-wrap .wp_themeSkin .mceColorSplitMenu a.mceMoreColors {
-	border-color: #fff;
-}
-
-.wp-editor-wrap .wp_themeSkin .mceColorSplitMenu a.mceMoreColors:hover {
-	border-color: #0A246A;
-	background-color: #B6BDD2;
-}
-
-.wp-editor-wrap .wp_themeSkin a.mceMoreColors:hover {
-	border-color: #0A246A;
-}
-
-/* Menu */
-.wp-editor-wrap .wp_themeSkin .mceMenu {
-	border-color: #ddd;
-}
-
-.wp-editor-wrap .wp_themeSkin .mceMenu table {
-	background-color: #ebeaeb;
-}
-
-.wp-editor-wrap .wp_themeSkin .mceMenu .mceText {
-	color: #000;
-}
-
-.wp-editor-wrap .wp_themeSkin .mceMenu .mceMenuItemEnabled a:hover,
-.wp-editor-wrap .wp_themeSkin .mceMenu .mceMenuItemActive {
-	background-color: #f5f5f5;
-}
-.wp-editor-wrap .wp_themeSkin td.mceMenuItemSeparator {
-	background-color: #aaa;
-}
-.wp-editor-wrap .wp_themeSkin .mceMenuItemTitle a {
-	background-color: #ccc;
-	border-bottom-color: #aaa;
-}
-.wp-editor-wrap .wp_themeSkin .mceMenuItemTitle span.mceText {
-	color: #000;
-}
-.wp-editor-wrap .wp_themeSkin .mceMenuItemDisabled .mceText {
-	color: #888;
-}
-
-.wp-editor-wrap .wp_themeSkin tr.mceFirst td.mceToolbar {
-	background: #cfdfe9 url("../images/ed-bg-vs.gif?ver=20101102") repeat-x scroll left top;
-	border-color: #cfdfe9;
-}
-
-.wp-admin #mceModalBlocker {
-	background: #000;
-}
-
-.wp-admin .clearlooks2 .mceFocus .mceTop .mceLeft {
-	background: #444444;
-	border-left: 1px solid #999;
-	border-top: 1px solid #999;
-	-webkit-border-top-left-radius: 3px;
-	border-top-left-radius: 3px;
-}
-
-.wp-admin .clearlooks2 .mceFocus .mceTop .mceRight {
-	background: #444444;
-	border-right: 1px solid #999;
-	border-top: 1px solid #999;
-	-webkit-border-top-right-radius: 3px;
-	border-top-right-radius: 3px;
-}
-
-.wp-admin .clearlooks2 .mceMiddle .mceLeft {
-	background: #f1f1f1;
-	border-left: 1px solid #999;
-}
-
-.wp-admin .clearlooks2 .mceMiddle .mceRight {
-	background: #f1f1f1;
-	border-right: 1px solid #999;
-}
-
-.wp-admin .clearlooks2 .mceBottom {
-	background: #f1f1f1;
-	border-bottom: 1px solid #999;
-}
-
-.wp-admin .clearlooks2 .mceBottom .mceLeft {
-	background: #f1f1f1;
-	border-bottom: 1px solid #999;
-	border-left: 1px solid #999;
-}
-
-.wp-admin .clearlooks2 .mceBottom .mceCenter {
-	background: #f1f1f1;
-	border-bottom: 1px solid #999;
-}
-
-.wp-admin .clearlooks2 .mceBottom .mceRight {
-	background: #f1f1f1;
-	border-bottom: 1px solid #999;
-	border-right: 1px solid #999;
-}
-
-.wp-admin .clearlooks2 .mceFocus .mceTop span {
-	color: #e5e5e5;
-}
-
-.wp-editor-wrap .wp-switch-editor {
-	background-color: #f5fafd;
-	border-color: #d1e5ee #d1e5ee #d1e5ee;
-	color: #999
-}
-
-.wp-editor-wrap.tmce-active .switch-tmce,
-.wp-editor-wrap.html-active .switch-html {
-	background-color: #eff8ff;
-	border-color: #d1e5ee #d1e5ee #eff8ff;
-	color: #333;
-}
-
-.wp-editor-wrap.quicktags-toolbar input {
-	color: #464646;
-	border-color: #d1e5ee;
-	background-color: #eff8ff;
-	background-image: -ms-linear-gradient(bottom, #eff8ff, #fff);
-	background-image: -moz-linear-gradient(bottom, #eff8ff, #fff);
-	background-image: -o-linear-gradient(bottom, #eff8ff, #fff);
-	background-image: -webkit-linear-gradient(bottom, #eff8ff, #fff);
-	background-image: linear-gradient(bottom, #eff8ff, #fff);
-}
-.wp-editor-wrap .quicktags-toolbar,
-.wp-editor-wrap.wp_themeSkin tr.mceFirst td.mceToolbar {
-	border-bottom: 1px solid #ccc;
-	background-color: #eff8ff; /* Fallback */
-	background-image: -ms-linear-gradient(bottom, #cfdfe9, #eff8ff); /* IE10 */
-	background-image: -moz-linear-gradient(bottom, #cfdfe9, #eff8ff); /* Firefox */
-	background-image: -o-linear-gradient(bottom, #cfdfe9, #eff8ff); /* Opera */
-	background-image: -webkit-linear-gradient(bottom, #cfdfe9, #eff8ff); /* new Webkit */
-	background-image: linear-gradient(bottom, #cfdfe9, #eff8ff); /* proposed W3C Markup */
-}
-.wp-editor-wrap .quicktags-toolbar input:hover {
-	border-color: #aaa;
-	background: #ddd;
-}
-
-.wp-editor-wrap.wp_themeSkin .mceButton,
-.wp-editor-wrap.wp_themeSkin .mceListBox .mceText,
-.wp-editor-wrap.wp_themeSkin .mceListBox .mceOpen {
-	border-color: #ccc;
-	background-color: #eff8ff; /* Fallback */
-	background-image: -ms-linear-gradient(bottom, #eff8ff, #fff); /* IE10 */
-	background-image: -moz-linear-gradient(bottom, #eff8ff, #fff); /* Firefox */
-	background-image: -o-linear-gradient(bottom, #eff8ff, #fff); /* Opera */
-	background-image: -webkit-gradient(linear, left bottom, left top, from(#eff8ff), to(#fff)); /* old Webkit */
-	background-image: -webkit-linear-gradient(bottom, #eff8ff, #fff); /* new Webkit */
-	background-image: linear-gradient(bottom, #eff8ff, #fff); /* proposed W3C Markup */
-}
-
-.wp-editor-wrap.wp_themeSkin a.mceButtonEnabled:hover {
-	border-color: #a0a0a0;
-	background: #ddd; /* Fallback */
-	background-image: -ms-linear-gradient(bottom, #cfdfe9, #fff); /* IE10 */
-	background-image: -moz-linear-gradient(bottom, #cfdfe9, #fff); /* Firefox */
-	background-image: -o-linear-gradient(bottom, #cfdfe9, #fff); /* Opera */
-	background-image: -webkit-gradient(linear, left bottom, left top, from(#cfdfe9), to(#fff)); /* old Webkit */
-	background-image: -webkit-linear-gradient(bottom, #cfdfe9, #fff); /* new Webkit */
-	background-image: linear-gradient(bottom, #cfdfe9, #fff); /* proposed W3C Markup */
-}
-
-/* end TinyMCE */
-
-#titlediv #title {
-	border-color: #bdccd5;
-}
-
-#editorcontainer {
-	border-color: #bdccd5 #bdccd5 #d0dfe9;
-}
-
-#post-status-info {
-	border-color: #d0dfe9 #bdccd5 #bdccd5;
-}
-
-.editwidget .widget-inside {
-	border-color: #d0dfe9;
-}
-
-#titlediv #title {
-	background-color: #fff;
-}
-
-#tTips p#tTips_inside {
-	background-color: #ddd;
-	color: #333;
-}
-
-#timestampdiv input,
-#namediv input,
-#poststuff .inside .the-tagcloud {
-	border-color: #ddd;
-}
-
-/* menu */
-#adminmenuback,
-#adminmenuwrap {
-    background-color: #EFF8FF;
-	border-color: #D1E5EE;
-}
-
-#adminmenushadow,
-#adminmenuback {
-	background-image: url(../images/menu-shadow.png);
-	background-position: top right;
-	background-repeat: repeat-y;
-}
-
-#adminmenu li.wp-menu-separator {
-	background: #D1E5EE;
-	border-color: #bed1dd;
-}
-
-#adminmenu div.separator {
-	border-color: #D1E5EE;
-}
-
-#adminmenu li.wp-has-current-submenu.wp-menu-open .wp-menu-toggle,
-#adminmenu li.wp-has-current-submenu:hover .wp-menu-toggle {
-	background: transparent url(../images/arrows-dark-vs.png) no-repeat -1px 6px;
-}
-
-#adminmenu .wp-has-submenu:hover .wp-menu-toggle,
-#adminmenu .wp-menu-open .wp-menu-toggle {
-	background: transparent url(../images/arrows-vs.png) no-repeat -2px 6px;
-}
-
-#adminmenu a.menu-top,
-.folded #adminmenu li.menu-top,
-#adminmenu .wp-submenu .wp-submenu-head {
-	border-top-color: #ffffff;
-	border-bottom-color: #cae6ff;
-}
-
-#adminmenu li.wp-menu-open {
-	border-color: #d1e5ee;
-}
-
-#adminmenu li.menu-top:hover > a,
-#adminmenu li.menu-top.focused > a,
-#adminmenu li.menu-top > a:focus {
-	background-color: #e0f1ff;
-	text-shadow: 0 1px 0 rgba( 255, 255, 255, 0.4 );
-}
-
-#adminmenu li.wp-has-current-submenu a.wp-has-current-submenu,
-#adminmenu li.current a.menu-top,
-.folded #adminmenu li.wp-has-current-submenu,
-.folded #adminmenu li.current.menu-top,
-#adminmenu .wp-menu-arrow,
-#adminmenu .wp-has-current-submenu .wp-submenu .wp-submenu-head {
-	background-color: #5589AA; /* Fallback */
-	background-image: -ms-linear-gradient(bottom, #5589AA, #619bbb); /* IE10 */
-	background-image: -moz-linear-gradient(bottom, #5589AA, #619bbb); /* Firefox */
-	background-image: -o-linear-gradient(bottom, #5589AA, #619bbb); /* Opera */
-	background-image: -webkit-gradient(linear, left bottom, left top, from(#5589AA), to(#619bbb)); /* old Webkit */
-	background-image: -webkit-linear-gradient(bottom, #5589AA, #619bbb); /* new Webkit */
-	background-image: linear-gradient(bottom, #5589AA, #619bbb); /* proposed W3C Markup */
-}
-
-#adminmenu .wp-menu-arrow div {
-	background-color: #5589AA; /* Fallback */
-	background-image: -ms-linear-gradient(right bottom, #5589AA, #619bbb); /* IE10 */
-	background-image: -moz-linear-gradient(right bottom, #5589AA, #619bbb); /* Firefox */
-	background-image: -o-linear-gradient(right bottom, #5589AA, #619bbb); /* Opera */
-	background-image: -webkit-gradient(linear, right bottom, left top, from(#5589AA), to(#619bbb)); /* old Webkit */
-	background-image: -webkit-linear-gradient(right bottom, #5589AA, #619bbb); /* new Webkit */
-	background-image: linear-gradient(right bottom, #5589AA, #619bbb); /* proposed W3C Markup */
-}
-
-#adminmenu li.wp-not-current-submenu .wp-menu-arrow {
-	border-top-color: #fff;
-	border-bottom-color: #cae6ff;
-	background: #e0f1ff;
-}
-
-#adminmenu li.wp-not-current-submenu .wp-menu-arrow div {
-	background: #e0f1ff;
-	border-color: #cae6ff;
-}
-
-.folded #adminmenu li.menu-top li:hover a {
-	background-image: none;
-}
-
-#adminmenu li.wp-has-current-submenu a.wp-has-current-submenu,
-#adminmenu li.current a.menu-top,
-#adminmenu .wp-has-current-submenu .wp-submenu .wp-submenu-head {
-	text-shadow: 0 -1px 0 #333;
-	color: #fff;
-	border-top-color: #5A8FAD;
-	border-bottom-color: #5589AA;
-}
-
-.folded #adminmenu li.wp-has-current-submenu,
-.folded #adminmenu li.current.menu-top {
-	border-top-color: #5A8FAD;
-	border-bottom-color: #5589AA;
-}
-
-#adminmenu .wp-submenu a:hover,
-#adminmenu .wp-submenu a:focus {
-	background-color: #EFF8FF;
-	color: #333;
-}
-
-#adminmenu .wp-submenu li.current,
-#adminmenu .wp-submenu li.current a,
-#adminmenu .wp-submenu li.current a:hover {
-	color: #333;
-}
-
-#adminmenu .wp-submenu ul {
-	background-color: #fff;
-}
-
-#adminmenu .wp-submenu-wrap,
-#adminmenu .wp-submenu ul {
-	border-color: #d0dfe9;
-}
-
-#adminmenu .wp-submenu-wrap,
-.folded #adminmenu .wp-has-current-submenu .wp-submenu-wrap {
-	-moz-box-shadow: 2px 2px 5px rgba( 0, 0, 0, 0.4 );
-	-webkit-box-shadow: 2px 2px 5px rgba( 0, 0, 0, 0.4 );
-	box-shadow: 2px 2px 5px rgba( 0, 0, 0, 0.4 );
-}
-
-#adminmenu .wp-submenu .wp-submenu-head {
-	border-right-color: #e8eff4;
-	background-color: #EFF8FF;
-}
-
-#adminmenu div.wp-submenu {
-	background-color: transparent;
-}
-
-/* collapse menu button */
-#collapse-menu {
-	color: #A0C3D5;
-}
-
-#collapse-menu:hover {
-	color: #5A8FAD;
-}
-
-#collapse-button {
-	border-color: #d0dfe9;
-	background-color: #eff8ff; /* Fallback */
-	background-image: -ms-linear-gradient(bottom, #eff8ff, #fff); /* IE10 */
-	background-image: -moz-linear-gradient(bottom, #eff8ff, #fff); /* Firefox */
-	background-image: -o-linear-gradient(bottom, #eff8ff, #fff); /* Opera */
-	background-image: -webkit-gradient(linear, left bottom, left top, from(#eff8ff), to(#fff)); /* old Webkit */
-	background-image: -webkit-linear-gradient(bottom, #eff8ff, #fff); /* new Webkit */
-	background-image: linear-gradient(bottom, #eff8ff, #fff); /* proposed W3C Markup */
-}
-#collapse-menu:hover #collapse-button {
-	border-color: #A0C3D5;
-}
-#collapse-button div {
-	background: transparent url(../images/arrows-vs.png) no-repeat 0 -72px;
-}
-.folded #collapse-button div {
-	background-position: 0 -108px;
-}
-
-/* Auto-folding of the admin menu */
-@media only screen and (max-width: 900px) {
-	#adminmenu li.menu-top {
-		border-top-color: #ffffff;
-		border-bottom-color: #cae6ff;
-	}
-
-	#adminmenu li.wp-has-current-submenu,
-	#adminmenu li.current.menu-top {
-		background-color: #5589AA; /* Fallback */
-		background-image: -ms-linear-gradient(bottom, #5589AA, #619bbb); /* IE10 */
-		background-image: -moz-linear-gradient(bottom, #5589AA, #619bbb); /* Firefox */
-		background-image: -o-linear-gradient(bottom, #5589AA, #619bbb); /* Opera */
-		background-image: -webkit-gradient(linear, left bottom, left top, from(#5589AA), to(#619bbb)); /* old Webkit */
-		background-image: -webkit-linear-gradient(bottom, #5589AA, #619bbb); /* new Webkit */
-		background-image: linear-gradient(bottom, #5589AA, #619bbb); /* proposed W3C Markup */
-	}
-
-	#adminmenu li.menu-top li:hover a {
-		background-image: none;
-	}
-
-	#adminmenu li.wp-has-current-submenu,
-	#adminmenu li.current.menu-top {
-		border-top-color: #5A8FAD;
-		border-bottom-color: #5589AA;
-	}
-
-	#adminmenu .wp-has-current-submenu .wp-submenu-wrap {
-		-moz-box-shadow: 2px 2px 5px rgba( 0, 0, 0, 0.4 );
-		-webkit-box-shadow: 2px 2px 5px rgba( 0, 0, 0, 0.4 );
-		box-shadow: 2px 2px 5px rgba( 0, 0, 0, 0.4 );
-	}
-
-	#collapse-button div {
-		background-position: 0 -108px;
-	}
-}
-
-/* menu and screen icons */
-.icon16,
-.icon32,
-div.wp-menu-image {
-	background-color: transparent;
-	background-repeat: no-repeat;
-}
-
-.icon16.icon-dashboard,
-.menu-icon-dashboard div.wp-menu-image,
-.icon16.icon-post,
-.menu-icon-post div.wp-menu-image,
-.icon16.icon-media,
-.menu-icon-media div.wp-menu-image,
-.icon16.icon-links,
-.menu-icon-links div.wp-menu-image,
-.icon16.icon-page,
-.menu-icon-page div.wp-menu-image,
-.icon16.icon-comments,
-.menu-icon-comments div.wp-menu-image,
-.icon16.icon-appearance,
-.menu-icon-appearance div.wp-menu-image,
-.icon16.icon-plugins,
-.menu-icon-plugins div.wp-menu-image,
-.icon16.icon-users,
-.menu-icon-users div.wp-menu-image,
-.icon16.icon-tools,
-.menu-icon-tools div.wp-menu-image,
-.icon16.icon-settings,
-.menu-icon-settings div.wp-menu-image,
-.icon16.icon-site,
-.menu-icon-site div.wp-menu-image {
-	background-image: url('../images/menu-vs.png?ver=20120201');
-}
-
-.icon16.icon-dashboard,
-#adminmenu .menu-icon-dashboard div.wp-menu-image {
-	background-position: -59px -33px;
-}
-
-#adminmenu .menu-icon-dashboard:hover div.wp-menu-image,
-#adminmenu .menu-icon-dashboard.wp-has-current-submenu div.wp-menu-image,
-#adminmenu .menu-icon-dashboard.current div.wp-menu-image {
-	background-position: -59px -1px;
-}
-
-.icon16.icon-post,
-#adminmenu .menu-icon-post div.wp-menu-image {
-	background-position: -269px -33px;
-}
-
-#adminmenu .menu-icon-post:hover div.wp-menu-image,
-#adminmenu .menu-icon-post.wp-has-current-submenu div.wp-menu-image,
-#adminmenu .menu-icon-post.current div.wp-menu-image {
-	background-position: -269px -1px;
-}
-
-.icon16.icon-media,
-#adminmenu .menu-icon-media div.wp-menu-image {
-	background-position: -119px -33px;
-}
-
-#adminmenu .menu-icon-media:hover div.wp-menu-image,
-#adminmenu .menu-icon-media.wp-has-current-submenu div.wp-menu-image,
-#adminmenu .menu-icon-media.current div.wp-menu-image {
-	background-position: -119px -1px;
-}
-
-.icon16.icon-links,
-#adminmenu .menu-icon-links div.wp-menu-image {
-	background-position: -89px -33px;
-}
-
-#adminmenu .menu-icon-links:hover div.wp-menu-image,
-#adminmenu .menu-icon-links.wp-has-current-submenu div.wp-menu-image,
-#adminmenu .menu-icon-links.current div.wp-menu-image {
-	background-position: -89px -1px;
-}
-
-.icon16.icon-page,
-#adminmenu .menu-icon-page div.wp-menu-image {
-	background-position: -149px -33px;
-}
-
-#adminmenu .menu-icon-page:hover div.wp-menu-image,
-#adminmenu .menu-icon-page.wp-has-current-submenu div.wp-menu-image,
-#adminmenu .menu-icon-page.current div.wp-menu-image {
-	background-position: -149px -1px;
-}
-
-.icon16.icon-comments,
-#adminmenu .menu-icon-comments div.wp-menu-image {
-	background-position: -29px -33px;
-}
-
-#adminmenu .menu-icon-comments:hover div.wp-menu-image,
-#adminmenu .menu-icon-comments.wp-has-current-submenu div.wp-menu-image,
-#adminmenu .menu-icon-comments.current div.wp-menu-image {
-	background-position: -29px -1px;
-}
-
-.icon16.icon-appearance,
-#adminmenu .menu-icon-appearance div.wp-menu-image {
-	background-position: 1px -33px;
-}
-
-#adminmenu .menu-icon-appearance:hover div.wp-menu-image,
-#adminmenu .menu-icon-appearance.wp-has-current-submenu div.wp-menu-image,
-#adminmenu .menu-icon-appearance.current div.wp-menu-image {
-	background-position: 1px -1px;
-}
-
-.icon16.icon-plugins,
-#adminmenu .menu-icon-plugins div.wp-menu-image {
-	background-position: -179px -33px;
-}
-
-#adminmenu .menu-icon-plugins:hover div.wp-menu-image,
-#adminmenu .menu-icon-plugins.wp-has-current-submenu div.wp-menu-image,
-#adminmenu .menu-icon-plugins.current div.wp-menu-image {
-	background-position: -179px -1px;
-}
-
-.icon16.icon-users,
-#adminmenu .menu-icon-users div.wp-menu-image {
-	background-position: -300px -33px;
-}
-
-#adminmenu .menu-icon-users:hover div.wp-menu-image,
-#adminmenu .menu-icon-users.wp-has-current-submenu div.wp-menu-image,
-#adminmenu .menu-icon-users.current div.wp-menu-image {
-	background-position: -300px -1px;
-}
-
-.icon16.icon-tools,
-#adminmenu .menu-icon-tools div.wp-menu-image {
-	background-position: -209px -33px;
-}
-
-#adminmenu .menu-icon-tools:hover div.wp-menu-image,
-#adminmenu .menu-icon-tools.wp-has-current-submenu div.wp-menu-image,
-#adminmenu .menu-icon-tools.current div.wp-menu-image {
-	background-position: -209px -1px;
-}
-
-.icon16.icon-settings,
-#adminmenu .menu-icon-settings div.wp-menu-image {
-	background-position: -239px -33px;
-}
-
-#adminmenu .menu-icon-settings:hover div.wp-menu-image,
-#adminmenu .menu-icon-settings.wp-has-current-submenu div.wp-menu-image,
-#adminmenu .menu-icon-settings.current div.wp-menu-image {
-	background-position: -239px -1px;
-}
-
-.icon16.icon-site,
-#adminmenu .menu-icon-site div.wp-menu-image {
-	background-position: -359px -33px;
-}
-
-#adminmenu .menu-icon-site:hover div.wp-menu-image,
-#adminmenu .menu-icon-site.wp-has-current-submenu div.wp-menu-image,
-#adminmenu .menu-icon-site.current div.wp-menu-image {
-	background-position: -359px -1px;
-}
-/* end menu and screen icons */
-
-/* Screen Icons */
-.icon32.icon-post,
-#icon-edit,
-#icon-post,
-.icon32.icon-dashboard,
-#icon-index,
-.icon32.icon-media,
-#icon-upload,
-.icon32.icon-links,
-#icon-link-manager,
-#icon-link,
-#icon-link-category,
-.icon32.icon-page,
-#icon-edit-pages,
-#icon-page,
-.icon32.icon-comments,
-#icon-edit-comments,
-.icon32.icon-appearance,
-#icon-themes,
-.icon32.icon-plugins,
-#icon-plugins,
-.icon32.icon-users,
-#icon-users,
-#icon-profile,
-#icon-user-edit,
-.icon32.icon-tools,
-#icon-tools,
-#icon-admin,
-.icon32.icon-settings,
-#icon-options-general,
-.icon32.icon-site,
-#icon-ms-admin {
-	background-image: url(../images/icons32-vs.png?ver=20111206);
-}
-
-.icon32.icon-post,
-#icon-edit,
-#icon-post {
-	background-position: -552px -5px;
-}
-
-.icon32.icon-dashboard,
-#icon-index {
-	background-position: -137px -5px;
-}
-
-.icon32.icon-media,
-#icon-upload {
-	background-position: -251px -5px;
-}
-
-.icon32.icon-links,
-#icon-link-manager,
-#icon-link,
-#icon-link-category {
-	background-position: -190px -5px;
-}
-
-.icon32.icon-page,
-#icon-edit-pages,
-#icon-page {
-	background-position: -312px -5px;
-}
-
-.icon32.icon-comments,
-#icon-edit-comments {
-	background-position: -72px -5px;
-}
-
-.icon32.icon-appearance,
-#icon-themes {
-	background-position: -11px -5px;
-}
-
-.icon32.icon-plugins,
-#icon-plugins {
-	background-position: -370px -5px;
-}
-
-.icon32.icon-users,
-#icon-users,
-#icon-profile,
-#icon-user-edit {
-	background-position: -600px -5px;
-}
-
-.icon32.icon-tools,
-#icon-tools,
-#icon-admin {
-	background-position: -432px -5px;
-}
-
-.icon32.icon-settings,
-#icon-options-general {
-	background-position: -492px -5px;
-}
-
-.icon32.icon-site,
-#icon-ms-admin {
-	background-position: -659px -5px;
-}
-
-@media only screen and (-webkit-min-device-pixel-ratio: 1.5) {
-	.icon32.icon-post,
-	#icon-edit,
-	#icon-post,
-	.icon32.icon-dashboard,
-	#icon-index,
-	.icon32.icon-media,
-	#icon-upload,
-	.icon32.icon-links,
-	#icon-link-manager,
-	#icon-link,
-	#icon-link-category,
-	.icon32.icon-page,
-	#icon-edit-pages,
-	#icon-page,
-	.icon32.icon-comments,
-	#icon-edit-comments,
-	.icon32.icon-appearance,
-	#icon-themes,
-	.icon32.icon-plugins,
-	#icon-plugins,
-	.icon32.icon-users,
-	#icon-users,
-	#icon-profile,
-	#icon-user-edit,
-	.icon32.icon-tools,
-	#icon-tools,
-	#icon-admin,
-	.icon32.icon-settings,
-	#icon-options-general,
-	.icon32.icon-site,
-	#icon-ms-admin {
-		background-image: url(../images/icons32-vs-2x.png?ver=20120412);
-		background-size: 708px 45px;
-	}
-
-	.icon16.icon-dashboard,
-	.menu-icon-dashboard div.wp-menu-image,
-	.icon16.icon-post,
-	.menu-icon-post div.wp-menu-image,
-	.icon16.icon-media,
-	.menu-icon-media div.wp-menu-image,
-	.icon16.icon-links,
-	.menu-icon-links div.wp-menu-image,
-	.icon16.icon-page,
-	.menu-icon-page div.wp-menu-image,
-	.icon16.icon-comments,
-	.menu-icon-comments div.wp-menu-image,
-	.icon16.icon-appearance,
-	.menu-icon-appearance div.wp-menu-image,
-	.icon16.icon-plugins,
-	.menu-icon-plugins div.wp-menu-image,
-	.icon16.icon-users,
-	.menu-icon-users div.wp-menu-image,
-	.icon16.icon-tools,
-	.menu-icon-tools div.wp-menu-image,
-	.icon16.icon-settings,
-	.menu-icon-settings div.wp-menu-image,
-	.icon16.icon-site,
-	.menu-icon-site div.wp-menu-image {
-		background-image: url('../images/menu-2x.png?ver=20120412');
-		background-size: 390px 64px;
-	}
-}
-/* end screen icons */
-
-/* Diff */
-table.diff .diff-deletedline {
-	background-color: #fdd;
-}
-
-table.diff .diff-deletedline del {
-	background-color: #f99;
-}
-
-table.diff .diff-addedline {
-	background-color: #dfd;
-}
-
-table.diff .diff-addedline ins {
-	background-color: #9f9;
-}
-
-#att-info {
-	background-color: #E4F2FD;
-}
-
-/* edit image */
-#sidemenu a {
-	background-color: #f9f9f9;
-	border-color: #f9f9f9;
-	border-bottom-color: #dfdfdf;
-}
-
-#sidemenu a.current {
-	background-color: #fff;
-	border-color: #dfdfdf #dfdfdf #fff;
-	color: #D54E21;
-}
-
-#screen-meta {
-	background-color: #EFF8FF;
-	border-color: #D1E5EE;
-	-webkit-box-shadow: 0 1px 3px rgba( 0, 0, 0, 0.05 );
-	box-shadow: 0 1px 3px rgba( 0, 0, 0, 0.05 );
-}
-
-#contextual-help-back {
-	background: #fff;
-}
-
-.contextual-help-tabs a:hover {
-	background-color: #ceeaff;
-	color: #333;
-}
-
-#contextual-help-back,
-.contextual-help-tabs .active {
-	border-color: #D1E5EE;
-}
-
-.contextual-help-tabs .active,
-.contextual-help-tabs .active a,
-.contextual-help-tabs .active a:hover {
-	background: #fff;
-	color: #000;
-}
-
-/* screen options and help tabs */
-#screen-options-link-wrap,
-#contextual-help-link-wrap {
-	background-color: #eff8ff; /* Fallback */
-	border-right: 1px solid #D1E5EE;
-	border-left: 1px solid #D1E5EE;
-	border-bottom: 1px solid #D1E5EE;
-	background-image: -ms-linear-gradient(bottom, #eff8ff, #eff8ff); /* IE10 */
-	background-image: -moz-linear-gradient(bottom, #def1ff, #eff8ff); /* Firefox */
-	background-image: -o-linear-gradient(bottom, #def1ff, #eff8ff); /* Opera */
-	background-image: -webkit-gradient(linear, left bottom, left top, from(#def1ff), to(#eff8ff)); /* old Webkit */
-	background-image: -webkit-linear-gradient(bottom, #def1ff, #eff8ff); /* new Webkit */
-	background-image: linear-gradient(bottom, #def1ff, #eff8ff); /* proposed W3C Markup */
-}
-
-#screen-meta-links a.show-settings {
-	color: #606060;
-}
-
-#screen-meta-links a.show-settings:hover {
-	color: #000;
-}
-
-#screen-meta-links a.show-settings {
-	background: transparent url(../images/arrows-vs.png) no-repeat right 4px;
-}
-
-#screen-meta-links a.show-settings.screen-meta-active  {
-	background: transparent url(../images/arrows-vs.png) no-repeat right -31px;
-}
-
-/* end screen options and help tabs */
-
-#replyerror {
-	border-color: #ddd;
-	background-color: #f9f9f9;
-}
-
-/* table vim shortcuts */
-.vim-current,
-.vim-current th,
-.vim-current td {
-	background-color: #E4F2FD !important;
-}
-
-/* Install Plugins */
-#plugin-information .fyi ul {
-	background-color: #eaf3fa;
-}
-
-#plugin-information .fyi h2.mainheader {
-	background-color: #cee1ef;
-}
-
-#plugin-information pre,
-#plugin-information code {
-	background-color: #ededff;
-}
-
-#plugin-information pre {
-	border: 1px solid #ccc;
-}
-
-/* inline editor */
-.inline-edit-row fieldset input[type="text"],
-.inline-edit-row fieldset textarea,
-#bulk-titles {
-	border-color: #ddd;
-}
-
-.inline-editor div.title {
-	background-color: #EAF3FA;
-}
-
-.inline-editor ul.cat-checklist {
-	background-color: #fff;
-	border-color: #ddd;
-}
-
-.inline-editor .categories .catshow,
-.inline-editor .categories .cathide {
-	color: #21759b;
-}
-
-.inline-editor .quick-edit-save {
-	background-color: #f1f1f1;
-}
-
-fieldset.inline-edit-col-right .inline-edit-col {
-	border-color: #dfdfdf;
-}
-
-.attention {
-	color: #D54E21;
-}
-
-.meta-box-sortables .postbox:hover .handlediv {
-	background: transparent url(../images/arrows-vs.png) no-repeat 6px 7px;
-}
-
-.tablenav .tablenav-pages {
-	color: #555;
-}
-
-.tablenav .tablenav-pages a {
-	border-color: #d1e5ee;
-	background: #eee url('../images/menu-bits-vs.gif?ver=20101102') repeat-x scroll left -379px;
-}
-
-.tablenav .tablenav-pages a:hover,
-.tablenav .tablenav-pages a:focus {
-	color: #d54e21;
-}
-
-.tablenav .tablenav-pages a.disabled,
-.tablenav .tablenav-pages a.disabled:hover,
-.tablenav .tablenav-pages a.disabled:focus {
-	color: #aaa;
-}
-
-.tablenav .tablenav-pages .current {
-	background: #dfdfdf;
-	border-color: #d3d3d3;
-}
-
-#availablethemes,
-#availablethemes td {
-	border-color: #ddd;
-}
-
-#current-theme img {
-	border-color: #999;
-}
-
-#TB_window #TB_title a.tb-theme-preview-link,
-#TB_window #TB_title a.tb-theme-preview-link:visited {
-	color: #999;
-}
-
-#TB_window #TB_title a.tb-theme-preview-link:hover,
-#TB_window #TB_title a.tb-theme-preview-link:focus {
-	color: #ccc;
-}
-
-.misc-pub-section {
-    border-top-color: #fff;
-	border-bottom-color: #eee;
-}
-
-#minor-publishing {
-	border-bottom-color: #ddd;
-}
-
-#post-body .misc-pub-section {
-	border-left-color: #eee;
-}
-
-.post-com-count span {
-	background-color: #bbb;
-}
-
-.form-table .color-palette td {
-	border-color: #fff;
-}
-
-.sortable-placeholder {
-	border-color: #bbb;
-	background-color: #f5f5f5;
-}
-
-#post-body ul.category-tabs li.tabs a,
-#post-body ul.add-menu-item-tabs li.tabs a,
-body.press-this ul.category-tabs li.tabs a {
-	color: #333;
-}
-
-.view-switch #view-switch-list {
-	background: transparent url(../images/list.png) no-repeat 0 0;
-}
-
-.view-switch .current #view-switch-list {
-	background: transparent url(../images/list.png) no-repeat -40px 0;
-}
-
-.view-switch #view-switch-excerpt {
-	background: transparent url(../images/list.png) no-repeat -20px 0;
-}
-
-.view-switch .current #view-switch-excerpt {
-	background: transparent url(../images/list.png) no-repeat -60px 0;
-}
-
-#header-logo {
-	background: transparent url(../images/wp-logo-vs.png?ver=20101102) no-repeat scroll center center;
-}
-
-.popular-tags,
-.feature-filter {
-	background-color: #fff;
-	border-color: #DFDFDF;
-}
-
-div.widgets-sortables,
-#widgets-left .inactive {
-	background-color: #f7fcfe;
-	border-color: #d0dfe9;
-}
-
-#available-widgets .widget-holder {
-	background-color: #f7fcfe;
-	border-color: #d0dfe9;
-}
-
-#available-widgets .widget-description {
-	color: #555;
-}
-
-.sidebar-name {
-	color: #464646;
-	background-color: #f7fcfe; /* Fallback */
-	background-image: -ms-linear-gradient(top, #ECF8FE, #f7fcfe); /* IE10 */
-	background-image: -moz-linear-gradient(top, #ECF8FE, #f7fcfe); /* Firefox */
-	background-image: -o-linear-gradient(top, #ECF8FE, #f7fcfe); /* Opera */
-	background-image: -webkit-gradient(linear, left top, left bottom, from(#ECF8FE), to(#f7fcfe)); /* old Webkit */
-	background-image: -webkit-linear-gradient(top, #ECF8FE, #f7fcfe); /* new Webkit */
-	background-image: linear-gradient(top, #ECF8FE, #f7fcfe); /* proposed W3C Markup */
-	text-shadow: #fff 0 1px 0;
-	border-color: #d0dfe9;
-	-moz-box-shadow: inset 0 1px 0 #fff;
-	-webkit-box-shadow: inset 0 1px 0 #fff;
-	box-shadow: inset 0 1px 0 #fff;
-}
-
-.sidebar-name:hover,
-#removing-widget {
-	color: #d54e21;
-}
-
-#removing-widget span {
-	color: black;
-}
-
-.sidebar-name-arrow {
-	background: transparent url(../images/arrows-vs.png) no-repeat 5px 9px;
-}
-
-.sidebar-name:hover .sidebar-name-arrow {
-	background: transparent url(../images/arrows-dark-vs.png) no-repeat 5px 9px;
-}
-
-.in-widget-title {
-	color: #606060;
-}
-
-.deleting .widget-title * {
-	color: #aaa;
-}
-
-.imgedit-menu div {
-	border-color: #d5d5d5;
-	background-color: #f1f1f1;
-}
-
-.imgedit-menu div:hover {
-	border-color: #c1c1c1;
-	background-color: #eaeaea;
-}
-
-.imgedit-menu div.disabled {
-	border-color: #ccc;
-	background-color: #ddd;
-	filter: alpha(opacity=50);
-	opacity: 0.5;
-}
-
-#dashboard_recent_comments div.undo {
-	border-top-color: #dfdfdf;
-}
-
-.comment-ays,
-.comment-ays th {
-	border-color: #ddd;
-}
-
-.comment-ays th {
-	background-color: #f1f1f1;
-}
-
-/* added from nav-menu.css */
-#menu-management .menu-edit {
-	border-color: #d0dfe9;
-}
-
-#post-body {
-	background: #ffffff;
-	border-top-color: #fff;
-	border-bottom-color: #d0dfe9;
-}
-
-#nav-menu-header {
-	border-bottom-color: #d0dfe9;
-}
-
-#nav-menu-footer {
-	border-top-color: #fff;
-}
-
-#menu-management .nav-tabs-arrow a {
-	color: #C1C1C1;
-}
-
-#menu-management .nav-tabs-arrow a:hover {
-	color: #D54E21;
-}
-
-#menu-management .nav-tabs-arrow a:active {
-	color: #464646;
-}
-
-#menu-management .nav-tab-active {
-	border-color: #dfdfdf;
-}
-
-#menu-management .nav-tab {
-	background: #f7fcfe;
-	border-color: #d0dfe9;
-}
-
-.js .input-with-default-title {
-	color: #aaa;
-}
-
-#cancel-save {
-	color: #ff0000;
-}
-
-#cancel-save:hover {
-	background-color: #FF0000;
-	color: #fff;
-}
-
-.list-container {
-	border-color: #dfdfdf;
-}
-
-.menu-item-handle {
-	border-color: #d0dfe9;
-}
-
-.menu li.deleting .menu-item-handle {
-	background-color: #f66;
-	text-shadow: #ccc;
-}
-
-.item-type { /* Menu item controls */
-	color: #999999;
-}
-
-.item-controls .menu-item-delete:hover {
-	color: #ff0000;
-}
-
-.nav-menus-php .item-edit {
-	background: transparent url(../images/arrows-vs.png) no-repeat 8px 10px;
-	border-bottom-color: #eff8ff;
-}
-
-.item-edit:hover {
-	background: transparent url(../images/arrows-dark-vs.png) no-repeat 8px 10px;
-}
-
-.menu-item-settings { /* Menu editing */
-	border-color: #d0dfe9;
-}
-
-.link-to-original {
-	color: #777;
-	border-color: #d0dfe9;
-}
-
-#cancel-save:hover {
-	color: #fff !important;
-}
-
-#update-menu-item {
-	color: #fff !important;
-}
-
-#update-menu-item:hover,
-#update-menu-item:active,
-#update-menu-item:focus {
-	color: #eaf2fa !important;
-	border-color: #13455b !important;
-}
-
-.submitbox .submitcancel {
-	color: #21759B;
-	border-bottom-color: #21759B;
-}
-
-.submitbox .submitcancel:hover {
-	background: #21759B;
-	color: #fff;
-}
-/* end added from nav-menu.css */
-
-#menu-management .nav-tab-active,
-.menu-item-handle,
-.menu-item-settings {
-	-moz-box-shadow: inset 0 1px 0 #fff;
-	-webkit-box-shadow: inset 0 1px 0 #fff;
-	box-shadow: inset 0 1px 0 #fff;
-}
-
-#menu-management .nav-tab-active {
-	background: #eff8ff;
-	border-bottom-color: #eff8ff;
-}
-
-#upload-form label {
-	color: #777;
-}
-/* custom header & background pages */
-
-/* full screen */
-.fullscreen-overlay {
-	background: #fff;
-}
-
-.wp-fullscreen-focus #wp-fullscreen-title,
-.wp-fullscreen-focus #wp-fullscreen-container {
-    border-color: #BED1DD;
-}
-
-#fullscreen-topbar {
-	border-bottom-color: #D1E5EE;
-}
-
-/* Begin About Pages */
-
-.about-wrap h1 {
-	color: #333;
-	text-shadow: 1px 1px 1px white;
-}
-
-.about-text {
-	color: #777;
-}
-
-.wp-badge {
-	color: #fff;
-	text-shadow: 0 -1px 0 rgba(22, 57, 81, 0.3);
-}
-
-.about-wrap h2 .nav-tab {
-	color: #21759B;
-}
-.about-wrap h2 .nav-tab:hover {
-	color: #d54e21;
-}
-.about-wrap h2 .nav-tab-active,
-.about-wrap h2 .nav-tab-active:hover {
-	color: #333;
-}
-.about-wrap h2 .nav-tab-active {
-	text-shadow: 1px 1px 1px white;
-	color: #464646;
-}
-
-.about-wrap h3 {
-	color: #333;
-	text-shadow: 1px 1px 1px white;
-}
-
-.about-wrap .feature-section h4 {
-	color: #464646;
-}
-
-.about-wrap .feature-section img {
-	background: #fff;
-	border: 1px #ccc solid;
-
-	-moz-box-shadow:    0 1px 3px rgba( 0, 0, 0, 0.3 );
-	-webkit-box-shadow: 0 1px 3px rgba( 0, 0, 0, 0.3 );
-	box-shadow:         0 1px 3px rgba( 0, 0, 0, 0.3 );
-}
-
-.about-wrap .point-releases {
-	border-bottom: 1px solid #dfdfdf;
-}
-
-.about-wrap .point-releases h3 {
-	border-top: 1px solid #dfdfdf;
-}
-
-.about-wrap .point-releases h3:first-child {
-	border: 0;
-}
-
-.about-wrap h4.wp-people-group {
-	text-shadow: 1px 1px 1px white;
-}
-
-.about-wrap li.wp-person img.gravatar {
-	-moz-box-shadow: 0 0 4px rgba( 0, 0, 0, 0.4 );
-	-webkit-box-shadow: 0 0 4px rgba( 0, 0, 0, 0.4 );
-	box-shadow: 0 0 4px rgba( 0, 0, 0, 0.4 );
-}
-.about-wrap li.wp-person .title {
-	color: #464646;
-	text-shadow: 1px 1px 1px white;
-}
-
-.freedoms-php .about-wrap ol li {
-	color: #999;
-}
-.freedoms-php .about-wrap ol p {
-	color: #464646;
-}
-
-/* End About Pages */
-
-
-/*------------------------------------------------------------------------------
-  2.0 - Right to Left Styles
-------------------------------------------------------------------------------*/
-
-.rtl .bar {
-	border-right-color: none;
-	border-left-color: #99d;
-}
-
-.rtl .post-com-count {
-	background-image: url(../images/bubble_bg-rtl.gif);
-}
-
-.rtl #screen-meta-links a.show-settings {
-	background-position: left 3px;
-}
-
-.rtl #screen-meta-links a.show-settings.screen-meta-active {
-	background-position: left -33px;
-}
-
-/* Menu */
-.rtl #adminmenushadow,
-.rtl #adminmenuback {
-	background-image: url(../images/menu-shadow-rtl.png);
-	background-position: top left;
-}
-
-.rtl #adminmenu li.wp-has-current-submenu.wp-menu-open .wp-menu-toggle,
-.rtl #adminmenu li.wp-has-current-submenu:hover .wp-menu-toggle {
-	background: transparent url(../images/arrows-dark-vs.png) no-repeat 8px 6px;
-}
-
-.rtl #adminmenu .wp-has-submenu:hover .wp-menu-toggle,
-.rtl #adminmenu .wp-menu-open .wp-menu-toggle {
-	background: transparent url(../images/arrows-vs.png) no-repeat 8px 6px;
-}
-
-.rtl #adminmenu .wp-submenu .wp-submenu-head {
-	border-right-color: none;
-	border-left-color: #d1e5ee;
-}
-
-.rtl #adminmenu .wp-submenu-wrap,
-.rtl.folded #adminmenu .wp-has-current-submenu .wp-submenu-wrap{
-	-moz-box-shadow: -2px 2px 5px rgba( 0, 0, 0, 0.4 );
-	-webkit-box-shadow: -2px 2px 5px rgba( 0, 0, 0, 0.4 );
-	box-shadow: -2px 2px 5px rgba( 0, 0, 0, 0.4 );
-}
-
-/* Collapse Menu Button */
-.rtl #collapse-button div {
-	background-position: 0 -108px;
-}
-
-.rtl.folded #collapse-button div {
-	background-position: 0 -72px;
-}
-
-/* Auto-folding of the admin menu for RTL */
-@media only screen and (max-width: 900px) {
-	.rtl #adminmenu .wp-has-current-submenu .wp-submenu-wrap{
-		-moz-box-shadow: -2px 2px 5px rgba( 0, 0, 0, 0.4 );
-		-webkit-box-shadow: -2px 2px 5px rgba( 0, 0, 0, 0.4 );
-		box-shadow: -2px 2px 5px rgba( 0, 0, 0, 0.4 );
-	}
-
-	.rtl #collapse-button div {
-		background-position: 0 -72px;
-	}
-}
-
-/* edit image */
-.rtl .meta-box-sortables .postbox:hover .handlediv {
-	background: transparent url(../images/arrows-vs.png) no-repeat 6px 7px;
-}
-
-.rtl .tablenav .tablenav-pages a {
-	border-color: #d1e5ee;
-	background: #eee url('../images/menu-bits-rtl-vs.gif?ver=20100610') repeat-x scroll right -379px;
-}
-
-.rtl #post-body .misc-pub-section {
-	border-right-color: none;
-	border-left-color: #d1e5ee;
-}
-
-.rtl .sidebar-name-arrow {
-	background: transparent url(../images/arrows-vs.png) no-repeat 5px 9px;
-}
-.rtl .sidebar-name:hover .sidebar-name-arrow {
-	background: transparent url(../images/arrows-dark-vs.png) no-repeat 5px 9px;
-}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-admin/css/colors-classic.min.css	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,1 @@
+.find-box-search,.find-box-buttons{background-color:#eff8ff;border-top:1px solid #dce6f8}.find-box{background-color:#5589aa}.find-box-head{color:#fff}.find-box-inside{background-color:#fff}a.page-numbers:hover{border-color:#999}body,#wpbody,.form-table .pre,.ui-autocomplete li a{color:#333}body>#upload-menu{border-bottom-color:#fff}#postcustomstuff table,#your-profile fieldset,#rightnow,div.dashboard-widget,#dashboard-widgets p.dashboard-widget-links{border-color:#d1e5ee}#poststuff .inside label.spam,#poststuff .inside label.deleted{color:red}#poststuff .inside label.waiting{color:orange}#poststuff .inside label.approved{color:green}#postcustomstuff table{border-color:#dfdfdf;background-color:#f9f9f9}#postcustomstuff thead th{background-color:#f1f1f1}.widefat{border-color:#d1e5ee;background-color:#fff}div.dashboard-widget-error{background-color:#c43}div.dashboard-widget-notice{background-color:#cfe1ef}div.dashboard-widget-submit{border-top-color:#ccc}ul.category-tabs li{border-color:transparent}div.tabs-panel,.wp-tab-panel,ul.add-menu-item-tabs li.tabs,.wp-tab-active{border-color:#d1e5ee;background-color:#fff}ul.category-tabs li.tabs{border-color:#d1e5ee #d1e5ee #fff}ul.category-tabs li.tabs,ul.add-menu-item-tabs li.tabs,.wp-tab-active{background-color:#fff}kbd,code{background:#eff8ff}textarea,input[type="text"],input[type="password"],input[type="file"],input[type="email"],input[type="number"],input[type="search"],input[type="tel"],input[type="url"],select{border-color:#d1e5ee}textarea:focus,input[type="text"]:focus,input[type="password"]:focus,input[type="file"]:focus,input[type="email"]:focus,input[type="number"]:focus,input[type="search"]:focus,input[type="tel"]:focus,input[type="url"]:focus,select:focus{border-color:#b0c8d7}input.disabled,textarea.disabled{background-color:#ccc}#plugin-information .action-button a,#plugin-information .action-button a:hover,#plugin-information .action-button a:visited{color:#fff}.widget .widget-top,.postbox h3,.stuffbox h3,.widefat thead tr th,.widefat tfoot tr th,h3.dashboard-widget-title,h3.dashboard-widget-title span,h3.dashboard-widget-title small,.sidebar-name,#nav-menu-header,#nav-menu-footer,.menu-item-handle,#fullscreen-topbar{background:#f5fafd;background-image:-webkit-gradient(linear,left bottom,left top,from(#eff8ff),to(#f7fcfe));background-image:-webkit-linear-gradient(bottom,#eff8ff,#f7fcfe);background-image:-moz-linear-gradient(bottom,#eff8ff,#f7fcfe);background-image:-o-linear-gradient(bottom,#eff8ff,#f7fcfe);background-image:linear-gradient(to top,#eff8ff,#f7fcfe)}.widget .widget-top,.postbox h3,.stuffbox h3{border-bottom-color:#d1e5ee;text-shadow:#fff 0 1px 0;-webkit-box-shadow:0 1px 0 #fff;box-shadow:0 1px 0 #fff}.form-table th,.form-wrap label{color:#222;text-shadow:#fff 0 1px 0}.description,.form-wrap p{color:#666}strong .post-com-count span{background-color:#21759b}.sorthelper{background-color:#ccf3fa}.ac_match,.subsubsub a.current{color:#000}.wrap h2{color:#174f69}.wrap .add-new-h2,.wrap .add-new-h2:active{background:#f1f1f1}.subtitle{color:#777}.ac_over{background-color:#f0f0b8}.ac_results{background-color:#fff;border-color:#b0c8d7}.ac_results li{color:#101010}.alternate,.alt{background-color:#f7fcfe}.available-theme a.screenshot{background-color:#eff8ff;border-color:#acd}#current-theme{border-bottom-color:#d1e5ee}.bar{background-color:#e8e8e8;border-right-color:#99d}#media-upload,#media-upload .media-item .slidetoggle{background:#fff}#media-upload .slidetoggle{border-top-color:#dfdfdf}div.error,.login #login_error{background-color:#ffebe8;border-color:#c00}div.error a{color:#c00}.form-invalid{background-color:#ffebe8!important}.form-invalid input,.form-invalid select{border-color:#c00!important}.submit,#commentsdiv #add-new-comment{border-color:#dfdfdf}.highlight{background-color:#e4f2fd;color:#000}.howto,.nonessential,#edit-slug-box,.form-input-tip,.subsubsub{color:#666}.media-upload-form label.form-help,td.help{color:#9a9a9a}.ui-autocomplete{border-color:#b0c8d7;background-color:#eff8ff}.ui-autocomplete li a.ui-state-focus{background-color:#def1ff}.post-com-count{color:#fff}.post-com-count span{background-color:#bbb;color:#fff}.post-com-count:hover span{background-color:#d54e21}.quicktags,.search{background-color:#ccc;color:#000}.side-info h5{border-bottom-color:#dadada}.side-info ul{color:#666}a:hover,a:active{color:#d54e21}a:focus{color:#124964}#adminmenu a:hover,#adminmenu li.menu-top>a:focus,#adminmenu .wp-submenu a:hover,#the-comment-list .comment a:hover,#rightnow a:hover,#media-upload a.del-link:hover,div.dashboard-widget-submit input:hover,.subsubsub a:hover,.subsubsub a.current:hover,.ui-tabs-nav a:hover,.plugins .inactive a:hover,#all-plugins-table .plugins .inactive a:hover,#search-plugins-table .plugins .inactive a:hover{color:#d54e21}#the-comment-list .comment-item,#dashboard-widgets #dashboard_quick_press form p.submit{border-color:#dfdfdf}#side-sortables .category-tabs .tabs a,#side-sortables .add-menu-item-tabs .tabs a,.wp-tab-bar .wp-tab-active a{color:#333}#dashboard_right_now .table_content,#dashboard_right_now .table_discussion{border-top-color:#d1e5ee}#rightnow .rbutton{background-color:#ebebeb;color:#264761}.submitbox .submit{background-color:#464646;color:#ccc}.plugins a.delete:hover,#all-plugins-table .plugins a.delete:hover,#search-plugins-table .plugins a.delete:hover,.submitbox .submitdelete{color:#f00;border-bottom-color:#f00}.submitbox .submitdelete:hover,#media-items a.delete:hover,#media-items a.delete-permanently:hover{color:#fff;background-color:#f00;border-bottom-color:#f00}#normal-sortables .submitbox .submitdelete:hover{color:#000;background-color:#f00;border-bottom-color:#f00}.tablenav .dots{border-color:transparent}.tablenav .next,.tablenav .prev{border-color:transparent;color:#21759b}.tablenav .next:hover,.tablenav .prev:hover{border-color:transparent;color:#d54e21}div.updated,.login .message{background-color:#ffffe0;border-color:#e6db55}.update-message{color:#000}a.page-numbers{border-bottom-color:#b8d3e2}.commentlist li{border-bottom-color:#ccc}.widefat td,.widefat th{border-top-color:#fff;border-bottom-color:#d0dfe9}.widefat th{text-shadow:rgba(255,255,255,0.8) 0 1px 0}.widefat td{color:#555}.widefat p,.widefat ol,.widefat ul{color:#333}.widefat thead tr th,.widefat tfoot tr th,h3.dashboard-widget-title,h3.dashboard-widget-title span,h3.dashboard-widget-title small{color:#333}th.sortable a:hover,th.sortable a:active,th.sortable a:focus{color:#333}th.sortable a:focus{background:#e1e1e1;background-image:-webkit-gradient(linear,left bottom,left top,from(#dcdcdc),to(#e9e9e9));background-image:-webkit-linear-gradient(bottom,#dcdcdc,#e9e9e9);background-image:-moz-linear-gradient(bottom,#dcdcdc,#e9e9e9);background-image:-o-linear-gradient(bottom,#dcdcdc,#e9e9e9);background-image:linear-gradient(to top,#dcdcdc,#e9e9e9)}h3.dashboard-widget-title small a{color:#d7d7d7}h3.dashboard-widget-title small a:hover{color:#fff}a,#adminmenu a,#the-comment-list p.comment-author strong a,#media-upload a.del-link,#media-items a.delete,#media-items a.delete-permanently,.plugins a.delete,.ui-tabs-nav a{color:#21759b}#adminmenu .awaiting-mod,#adminmenu .update-plugins,#sidemenu a .update-plugins,#rightnow .reallynow{background-color:#464646;color:#fff;-webkit-box-shadow:rgba(255,255,255,0.5) 0 1px 0;box-shadow:rgba(255,255,255,0.5) 0 1px 0}#plugin-information .action-button{background-color:#d54e21;color:#fff}#adminmenu li.current a .awaiting-mod,#adminmenu li a.wp-has-current-submenu .update-plugins{background-color:#464646;color:#fff;-webkit-box-shadow:rgba(255,255,255,0.5) 0 1px 0;box-shadow:rgba(255,255,255,0.5) 0 1px 0}div#media-upload-header,div#plugin-information-header{background-color:#f9f9f9;border-bottom-color:#dfdfdf}#currenttheme img{border-color:#666}#dashboard_secondary div.dashboard-widget-content ul li a{background-color:#f9f9f9}input.readonly,textarea.readonly{background-color:#ddd}#editable-post-name{background-color:#fffbcc}#edit-slug-box strong,.tablenav .displaying-num,#submitted-on,.submitted-on{color:#777}.login #nav a,.login #backtoblog a{color:#21759b!important}.login #nav a:hover,.login #backtoblog a:hover{color:#d54e21!important}#wpfooter{color:#777;border-color:#b0c8d7}.imgedit-group,#media-items .media-item,.media-item .describe{border-color:#dfdfdf}.checkbox,.side-info,.plugins tr,#your-profile #rich_editing{background-color:#fcfcfc}.plugins .inactive,.plugins .inactive th,.plugins .inactive td,tr.inactive+tr.plugin-update-tr .plugin-update{background-color:#f7fcfe}.plugin-update-tr .update-message{background-color:#fffbe4;border-color:#dfdfdf}.plugins .active,.plugins .active th,.plugins .active td{color:#000}.plugins .inactive a{color:#579}#the-comment-list tr.undo,#the-comment-list div.undo{background-color:#f4f4f4}#the-comment-list .unapproved{background-color:#ffffe0}#the-comment-list .approve a{color:#006505}#the-comment-list .unapprove a{color:#d98500}table.widefat span.delete a,table.widefat span.trash a,table.widefat span.spam a,#dashboard_recent_comments .delete a,#dashboard_recent_comments .trash a,#dashboard_recent_comments .spam a{color:#bc0b0b}.welcome-panel{background:#f5fafd;background-image:-webkit-gradient(linear,left bottom,left top,from(#eff8ff),to(#f7fcfe));background-image:-webkit-linear-gradient(bottom,#eff8ff,#f7fcfe);background-image:-moz-linear-gradient(bottom,#eff8ff,#f7fcfe);background-image:-o-linear-gradient(bottom,#eff8ff,#f7fcfe);background-image:linear-gradient(to top,#eff8ff,#f7fcfe);border-color:#d1e5ee}.welcome-panel p{color:#777}.welcome-panel-column p{color:#464646}.welcome-panel h3{text-shadow:1px 1px 1px #fff}.widget,#widget-list .widget-top,.postbox,#titlediv,#poststuff .postarea,.stuffbox{border-color:#d1e5ee;-webkit-box-shadow:inset 0 1px 0 #fff;box-shadow:inset 0 1px 0 #fff;-webkit-border-radius:3px;border-radius:3px}.widget,#widget-list .widget-top,.postbox,.menu-item-settings{background:#f5fafd;background-image:-webkit-gradient(linear,left bottom,left top,from(#eff8ff),to(#f7fcfe));background-image:-webkit-linear-gradient(bottom,#eff8ff,#f7fcfe);background-image:-moz-linear-gradient(bottom,#eff8ff,#f7fcfe);background-image:-o-linear-gradient(bottom,#eff8ff,#f7fcfe);background-image:linear-gradient(to top,#eff8ff,#f7fcfe)}.postbox h3{color:#174f69}.widget .widget-top{color:#174f69}.js .sidebar-name:hover h3,.js .postbox h3:hover{color:#000}.curtime #timestamp{background-image:url(../images/date-button.gif)}#quicktags #ed_link{color:#00f}#rightnow .youhave{background-color:#f0f6fb}#rightnow a{color:#448abd}.tagchecklist span a,#bulk-titles div a{background:url(../images/xit.gif) no-repeat}.tagchecklist span a:hover,#bulk-titles div a:hover{background:url(../images/xit.gif) no-repeat -10px 0}#update-nag,.update-nag{background-color:#fffbcc;border-color:#e6db55;color:#555}#screen-meta{background-color:#eff8ff;border-color:#d1e5ee;-webkit-box-shadow:0 1px 3px rgba(0,0,0,0.05);box-shadow:0 1px 3px rgba(0,0,0,0.05)}#contextual-help-back{background:#fff}.contextual-help-tabs a:hover{background-color:#ceeaff;color:#333}#contextual-help-back,.contextual-help-tabs .active{border-color:#d1e5ee}.contextual-help-tabs .active,.contextual-help-tabs .active a,.contextual-help-tabs .active a:hover{background:#fff;color:#000}#screen-options-link-wrap,#contextual-help-link-wrap{border-right:1px solid #d1e5ee;border-left:1px solid #d1e5ee;border-bottom:1px solid #d1e5ee;background:#eff8ff;background-image:-webkit-gradient(linear,left bottom,left top,from(#def1ff),to(#eff8ff));background-image:-webkit-linear-gradient(bottom,#def1ff,#eff8ff);background-image:-moz-linear-gradient(bottom,#def1ff,#eff8ff);background-image:-o-linear-gradient(bottom,#def1ff,#eff8ff);background-image:linear-gradient(to top,#def1ff,#eff8ff)}#screen-meta-links a{color:#606060;background:transparent url(../images/arrows.png) no-repeat right 4px}#screen-meta-links a:hover,#screen-meta-links a:active{color:#000;background-color:transparent}#screen-meta-links a.screen-meta-active{background-position:right -31px}.login #backtoblog a{color:#464646}#wphead{border-bottom:1px solid #d0dfe9}#wphead h1 a{color:#174f69}#wpfooter a:link,#wpfooter a:visited{text-decoration:none}#wpfooter a:hover{color:#000;text-decoration:underline}.file-error,abbr.required,.widget-control-remove:hover,table.widefat .delete a:hover,table.widefat .trash a:hover,table.widefat .spam a:hover,#dashboard_recent_comments .delete a:hover,#dashboard_recent_comments .trash a:hover #dashboard_recent_comments .spam a:hover{color:#f00}#pass-strength-result{background-color:#eee;border-color:#ddd!important}#pass-strength-result.bad{background-color:#ffb78c;border-color:#ff853c!important}#pass-strength-result.good{background-color:#ffec8b;border-color:#fc0!important}#pass-strength-result.short{background-color:#ffa0a0;border-color:#f04040!important}#pass-strength-result.strong{background-color:#c3ff88;border-color:#8dff1c!important}#poststuff .wp-editor-wrap .wp_themeSkin .mceStatusbar{border-color:#d0dfe9;background-color:#eff8ff}#poststuff .wp-editor-wrap .wp_themeSkin .mceStatusbar *{color:#555}#poststuff #editor-toolbar .active{border-color:#d0dfe9 #d0dfe9 #eff8ff;background-color:#eff8ff;color:#333}.wp-editor-wrap .wp-editor-container,.wp-editor-wrap .wp_themeSkin table.mceLayout{border-color:#d1e5ee #d1e5ee #d0dfe9}#editorcontainer{border-color:#d1e5ee #d1e5ee #d0dfe9}#post-status-info{border-color:#d0dfe9 #d1e5ee #d1e5ee}.wp-admin .wp-editor-wrap .wp-switch-editor{background-color:#d3e9f2;border-color:#d1e5ee #d1e5ee #d3e9f2;color:#174f69}.wp-admin .wp-editor-wrap .wp-switch-editor:active{background-color:#f5fafd}.wp-admin .wp-editor-wrap.tmce-active .switch-tmce,.wp-admin .wp-editor-wrap.html-active .switch-html{background:#f7fcfe;border-color:#d1e5ee #d1e5ee #f7fcfe}.wp-admin .wp-editor-wrap .quicktags-toolbar,.wp-admin .wp-editor-wrap .wp_themeSkin tr.mceFirst td.mceToolbar{border-color:#d0dfe9;background-color:#f5fafd;background-image:-webkit-gradient(linear,left bottom,left top,from(#eff8ff),to(#f7fcfe));background-image:-webkit-linear-gradient(bottom,#eff8ff,#f7fcfe);background-image:-moz-linear-gradient(bottom,#eff8ff,#f7fcfe);background-image:-o-linear-gradient(bottom,#eff8ff,#f7fcfe);background-image:linear-gradient(to top,#eff8ff,#f7fcfe)}.wp-admin .wp_themeSkin table.mceListBox{border-color:#d1e5ee}.wp-admin .wp_themeSkin table.mceListBoxEnabled:hover,.wp-admin .wp_themeSkin table.mceListBoxEnabled:active,.wp-admin .wp_themeSkin table.mceListBoxHover,.wp-admin .wp_themeSkin table.mceListBoxHover:active,.wp-admin .wp_themeSkin table.mceListBoxSelected{border-color:#b8cfdf}.wp-admin .wp_themeSkin a.mceButtonEnabled:hover,.wp-admin .wp_themeSkin table.mceSplitButton:hover{border-color:#c3d2dc;background:#f4f9fc;background-image:-webkit-gradient(linear,left bottom,left top,from(#f4f9fc),to(#fff));background-image:-webkit-linear-gradient(bottom,#f4f9fc,#fff);background-image:-moz-linear-gradient(bottom,#f4f9fc,#fff);background-image:-o-linear-gradient(bottom,#f4f9fc,#fff);background-image:linear-gradient(to top,#f4f9fc,#fff)}.wp-admin .wp_themeSkin a.mceButton:active,.wp-admin .wp_themeSkin a.mceButtonEnabled:active,.wp-admin .wp_themeSkin a.mceButtonSelected:active,.wp-admin .wp_themeSkin a.mceButtonActive,.wp-admin .wp_themeSkin a.mceButtonActive:active,.wp-admin .wp_themeSkin a.mceButtonActive:hover,.wp-admin .wp_themeSkin .mceSplitButtonSelected table,.wp-admin .wp_themeSkin .mceSplitButtonSelected table:hover{border-color:#8f9da9 #c3d2dc #c3d2dc #8f9da9;background:#f4f9fc;background-image:-webkit-gradient(linear,left bottom,left top,from(#fff),to(#f4f9fc));background-image:-webkit-linear-gradient(bottom,#fff,#f4f9fc);background-image:-moz-linear-gradient(bottom,#fff,#f4f9fc);background-image:-o-linear-gradient(bottom,#fff,#f4f9fc);background-image:linear-gradient(to top,#fff,#f4f9fc)}.wp-admin .wp_themeSkin .mceSplitButtonSelected table a.mceOpen,.wp-admin .wp_themeSkin .mceSplitButtonSelected table a.mceAction{border-color:#8f9da9 #c3d2dc #c3d2dc #8f9da9}.wp-admin .wp_themeSkin .mceSplitButton:hover a{border-color:#c3d2dc}.editwidget .widget-inside{border-color:#d0dfe9}#titlediv #title{background-color:#fff}#tTips p#tTips_inside{background-color:#ddd;color:#333}#poststuff .inside .the-tagcloud{border-color:#ddd}#adminmenuback,#adminmenuwrap{background-color:#eff8ff;border-color:#d1e5ee}#adminmenushadow,#adminmenuback{background-image:url(../images/menu-shadow.png);background-position:top right;background-repeat:repeat-y}#adminmenu li.wp-menu-separator{background:#d1e5ee;border-color:#bed1dd}#adminmenu div.separator{border-color:#d1e5ee}#adminmenu a.menu-top,#adminmenu .wp-submenu .wp-submenu-head{border-top-color:#fff;border-bottom-color:#cae6ff}#adminmenu li.wp-menu-open{border-color:#d1e5ee}#adminmenu li.menu-top:hover,#adminmenu li.opensub>a.menu-top,#adminmenu li>a.menu-top:focus{background-color:#e0f1ff;color:#d54e21;text-shadow:0 1px 0 rgba(255,255,255,0.4)}#adminmenu li.menu-top:hover>a span,#adminmenu li.menu-top>a:focus span{text-shadow:none}#adminmenu li.wp-has-current-submenu a.wp-has-current-submenu,#adminmenu li.current a.menu-top,.folded #adminmenu li.wp-has-current-submenu,.folded #adminmenu li.current.menu-top,#adminmenu .wp-menu-arrow,#adminmenu .wp-has-current-submenu .wp-submenu .wp-submenu-head{background:#5589aa;background-image:-webkit-gradient(linear,left bottom,left top,from(#5589aa),to(#619bbb));background-image:-webkit-linear-gradient(bottom,#5589aa,#619bbb);background-image:-moz-linear-gradient(bottom,#5589aa,#619bbb);background-image:-o-linear-gradient(bottom,#5589aa,#619bbb);background-image:linear-gradient(to top,#5589aa,#619bbb)}#adminmenu .wp-menu-arrow div{background:#5589aa;background-image:-webkit-gradient(linear,right bottom,left top,from(#5589aa),to(#619bbb));background-image:-webkit-linear-gradient(bottom right,#5589aa,#619bbb);background-image:-moz-linear-gradient(bottom right,#5589aa,#619bbb);background-image:-o-linear-gradient(bottom right,#5589aa,#619bbb);background-image:linear-gradient(to top left,#5589aa,#619bbb)}#adminmenu li.wp-not-current-submenu .wp-menu-arrow{border-top-color:#fff;border-bottom-color:#cae6ff;background:#e0f1ff}#adminmenu li.wp-not-current-submenu .wp-menu-arrow div{background:#e0f1ff;border-color:#cae6ff}.folded #adminmenu li.menu-top li:hover a{background-image:none}#adminmenu li.wp-has-current-submenu a.wp-has-current-submenu,#adminmenu li.current a.menu-top,#adminmenu .wp-has-current-submenu .wp-submenu .wp-submenu-head{text-shadow:0 -1px 0 #333;color:#fff;border-top-color:#5a8fad;border-bottom-color:#5589aa}.folded #adminmenu li.wp-has-current-submenu,.folded #adminmenu li.current.menu-top{border-top-color:#5a8fad;border-bottom-color:#5589aa}#adminmenu .wp-submenu a:hover,#adminmenu .wp-submenu a:focus{background-color:#eff8ff;color:#333}#adminmenu .wp-submenu li.current,#adminmenu .wp-submenu li.current a,#adminmenu .wp-submenu li.current a:hover{color:#333}#adminmenu .wp-submenu,.folded #adminmenu a.wp-has-current-submenu:focus+.wp-submenu,.folded #adminmenu .wp-has-current-submenu .wp-submenu{background-color:#fff;border-color:#d0dfe9;-webkit-box-shadow:2px 3px 6px rgba(0,0,0,0.4);box-shadow:2px 3px 6px rgba(0,0,0,0.4)}#adminmenu .wp-submenu .wp-submenu-head{background-color:#e0f1ff;color:#333}#collapse-menu{color:#a0c3d5;border-top-color:#f9f9f9}#collapse-menu:hover{color:#5a8fad}#collapse-button{border-color:#d0dfe9;background:#eff8ff;background-image:-webkit-gradient(linear,left bottom,left top,from(#eff8ff),to(#fff));background-image:-webkit-linear-gradient(bottom,#eff8ff,#fff);background-image:-moz-linear-gradient(bottom,#eff8ff,#fff);background-image:-o-linear-gradient(bottom,#eff8ff,#fff);background-image:linear-gradient(to top,#eff8ff,#fff)}#collapse-menu:hover #collapse-button{border-color:#a0c3d5}#collapse-button div{background:transparent url(../images/arrows-vs.png) no-repeat 0 -72px}.folded #collapse-button div{background-position:0 -108px}@media only screen and (max-width:900px){.auto-fold #adminmenu li.wp-has-current-submenu,.auto-fold #adminmenu li.current.menu-top{background-color:#5589aa;background-image:-webkit-gradient(linear,left bottom,left top,from(#5589aa),to(#619bbb));background-image:-webkit-linear-gradient(bottom,#5589aa,#619bbb);background-image:-moz-linear-gradient(bottom,#5589aa,#619bbb);background-image:-o-linear-gradient(bottom,#5589aa,#619bbb);background-image:linear-gradient(bottom,#5589aa,#619bbb)}.auto-fold #adminmenu li.wp-has-current-submenu,.auto-fold #adminmenu li.current.menu-top{border-top-color:#5a8fad;border-bottom-color:#5589aa}.auto-fold #adminmenu a.wp-has-current-submenu:focus+.wp-submenu,.auto-fold #adminmenu .wp-has-current-submenu .wp-submenu{background-color:#fff;border-color:#d0dfe9;-webkit-box-shadow:2px 3px 6px rgba(0,0,0,0.4);box-shadow:2px 3px 6px rgba(0,0,0,0.4)}.auto-fold #collapse-button div{background-position:0 -108px}}.icon16,.icon32,div.wp-menu-image{background-color:transparent;background-repeat:no-repeat}.icon16.icon-dashboard,.menu-icon-dashboard div.wp-menu-image,.icon16.icon-post,.menu-icon-post div.wp-menu-image,.icon16.icon-media,.menu-icon-media div.wp-menu-image,.icon16.icon-links,.menu-icon-links div.wp-menu-image,.icon16.icon-page,.menu-icon-page div.wp-menu-image,.icon16.icon-comments,.menu-icon-comments div.wp-menu-image,.icon16.icon-appearance,.menu-icon-appearance div.wp-menu-image,.icon16.icon-plugins,.menu-icon-plugins div.wp-menu-image,.icon16.icon-users,.menu-icon-users div.wp-menu-image,.icon16.icon-tools,.menu-icon-tools div.wp-menu-image,.icon16.icon-settings,.menu-icon-settings div.wp-menu-image,.icon16.icon-site,.menu-icon-site div.wp-menu-image,.icon16.icon-generic,.menu-icon-generic div.wp-menu-image{background-image:url(../images/menu-vs.png?ver=20121105)}.icon16.icon-dashboard,#adminmenu .menu-icon-dashboard div.wp-menu-image{background-position:-59px -33px}#adminmenu .menu-icon-dashboard:hover div.wp-menu-image,#adminmenu .menu-icon-dashboard.wp-has-current-submenu div.wp-menu-image,#adminmenu .menu-icon-dashboard.current div.wp-menu-image{background-position:-59px -1px}.icon16.icon-post,#adminmenu .menu-icon-post div.wp-menu-image{background-position:-269px -33px}#adminmenu .menu-icon-post:hover div.wp-menu-image,#adminmenu .menu-icon-post.wp-has-current-submenu div.wp-menu-image,#adminmenu .menu-icon-post.current div.wp-menu-image{background-position:-269px -1px}.icon16.icon-media,#adminmenu .menu-icon-media div.wp-menu-image{background-position:-119px -33px}#adminmenu .menu-icon-media:hover div.wp-menu-image,#adminmenu .menu-icon-media.wp-has-current-submenu div.wp-menu-image,#adminmenu .menu-icon-media.current div.wp-menu-image{background-position:-119px -1px}.icon16.icon-links,#adminmenu .menu-icon-links div.wp-menu-image{background-position:-89px -33px}#adminmenu .menu-icon-links:hover div.wp-menu-image,#adminmenu .menu-icon-links.wp-has-current-submenu div.wp-menu-image,#adminmenu .menu-icon-links.current div.wp-menu-image{background-position:-89px -1px}.icon16.icon-page,#adminmenu .menu-icon-page div.wp-menu-image{background-position:-149px -33px}#adminmenu .menu-icon-page:hover div.wp-menu-image,#adminmenu .menu-icon-page.wp-has-current-submenu div.wp-menu-image,#adminmenu .menu-icon-page.current div.wp-menu-image{background-position:-149px -1px}.icon16.icon-comments,#adminmenu .menu-icon-comments div.wp-menu-image{background-position:-29px -33px}#adminmenu .menu-icon-comments:hover div.wp-menu-image,#adminmenu .menu-icon-comments.wp-has-current-submenu div.wp-menu-image,#adminmenu .menu-icon-comments.current div.wp-menu-image{background-position:-29px -1px}.icon16.icon-appearance,#adminmenu .menu-icon-appearance div.wp-menu-image{background-position:1px -33px}#adminmenu .menu-icon-appearance:hover div.wp-menu-image,#adminmenu .menu-icon-appearance.wp-has-current-submenu div.wp-menu-image,#adminmenu .menu-icon-appearance.current div.wp-menu-image{background-position:1px -1px}.icon16.icon-plugins,#adminmenu .menu-icon-plugins div.wp-menu-image{background-position:-179px -33px}#adminmenu .menu-icon-plugins:hover div.wp-menu-image,#adminmenu .menu-icon-plugins.wp-has-current-submenu div.wp-menu-image,#adminmenu .menu-icon-plugins.current div.wp-menu-image{background-position:-179px -1px}.icon16.icon-users,#adminmenu .menu-icon-users div.wp-menu-image{background-position:-300px -33px}#adminmenu .menu-icon-users:hover div.wp-menu-image,#adminmenu .menu-icon-users.wp-has-current-submenu div.wp-menu-image,#adminmenu .menu-icon-users.current div.wp-menu-image{background-position:-300px -1px}.icon16.icon-tools,#adminmenu .menu-icon-tools div.wp-menu-image{background-position:-209px -33px}#adminmenu .menu-icon-tools:hover div.wp-menu-image,#adminmenu .menu-icon-tools.wp-has-current-submenu div.wp-menu-image,#adminmenu .menu-icon-tools.current div.wp-menu-image{background-position:-209px -1px}.icon16.icon-settings,#adminmenu .menu-icon-settings div.wp-menu-image{background-position:-239px -33px}#adminmenu .menu-icon-settings:hover div.wp-menu-image,#adminmenu .menu-icon-settings.wp-has-current-submenu div.wp-menu-image,#adminmenu .menu-icon-settings.current div.wp-menu-image{background-position:-239px -1px}.icon16.icon-site,#adminmenu .menu-icon-site div.wp-menu-image{background-position:-359px -33px}#adminmenu .menu-icon-site:hover div.wp-menu-image,#adminmenu .menu-icon-site.wp-has-current-submenu div.wp-menu-image,#adminmenu .menu-icon-site.current div.wp-menu-image{background-position:-359px -1px}.icon16.icon-generic,#adminmenu .menu-icon-generic div.wp-menu-image{background-position:-330px -33px}#adminmenu .menu-icon-generic:hover div.wp-menu-image,#adminmenu .menu-icon-generic.wp-has-current-submenu div.wp-menu-image,#adminmenu .menu-icon-generic.current div.wp-menu-image{background-position:-330px -1px}.icon32.icon-post,#icon-edit,#icon-post,.icon32.icon-dashboard,#icon-index,.icon32.icon-media,#icon-upload,.icon32.icon-links,#icon-link-manager,#icon-link,#icon-link-category,.icon32.icon-page,#icon-edit-pages,#icon-page,.icon32.icon-comments,#icon-edit-comments,.icon32.icon-appearance,#icon-themes,.icon32.icon-plugins,#icon-plugins,.icon32.icon-users,#icon-users,#icon-profile,#icon-user-edit,.icon32.icon-tools,#icon-tools,#icon-admin,.icon32.icon-settings,#icon-options-general,.icon32.icon-site,#icon-ms-admin,.icon32.icon-generic,#icon-generic{background-image:url(../images/icons32-vs.png?ver=20121105)}.icon32.icon-post,#icon-edit,#icon-post{background-position:-552px -5px}.icon32.icon-dashboard,#icon-index{background-position:-137px -5px}.icon32.icon-media,#icon-upload{background-position:-251px -5px}.icon32.icon-links,#icon-link-manager,#icon-link,#icon-link-category{background-position:-190px -5px}.icon32.icon-page,#icon-edit-pages,#icon-page{background-position:-312px -5px}.icon32.icon-comments,#icon-edit-comments{background-position:-72px -5px}.icon32.icon-appearance,#icon-themes{background-position:-11px -5px}.icon32.icon-plugins,#icon-plugins{background-position:-370px -5px}.icon32.icon-users,#icon-users,#icon-profile,#icon-user-edit{background-position:-600px -5px}.icon32.icon-tools,#icon-tools,#icon-admin{background-position:-432px -5px}.icon32.icon-settings,#icon-options-general{background-position:-492px -5px}.icon32.icon-site,#icon-ms-admin{background-position:-659px -5px}.icon32.icon-generic,#icon-generic{background-position:-708px -5px}table.diff .diff-deletedline{background-color:#fdd}table.diff .diff-deletedline del{background-color:#f99}table.diff .diff-addedline{background-color:#dfd}table.diff .diff-addedline ins{background-color:#9f9}#att-info{background-color:#e4f2fd}#sidemenu a{background-color:#f9f9f9;border-color:#f9f9f9;border-bottom-color:#dfdfdf}#sidemenu a.current{background-color:#fff;border-color:#dfdfdf #dfdfdf #fff;color:#d54e21}#replyerror{border-color:#ddd;background-color:#f9f9f9}.vim-current,.vim-current th,.vim-current td{background-color:#e4f2fd!important}#plugin-information .fyi ul{background-color:#eaf3fa}#plugin-information .fyi h2.mainheader{background-color:#cee1ef}#plugin-information pre,#plugin-information code{background-color:#ededff}#plugin-information pre{border:1px solid #ccc}#bulk-titles{border-color:#ddd}.inline-editor div.title{background-color:#eaf3fa}.inline-editor ul.cat-checklist{background-color:#fff;border-color:#ddd}.inline-editor .categories .catshow,.inline-editor .categories .cathide{color:#21759b}.inline-editor .quick-edit-save{background-color:#f1f1f1}fieldset.inline-edit-col-right .inline-edit-col{border-color:#dfdfdf}.attention{color:#d54e21}.js .meta-box-sortables .postbox:hover .handlediv{background:transparent url(../images/arrows-vs.png) no-repeat 6px 7px}.tablenav .tablenav-pages{color:#555}.tablenav .tablenav-pages a{border-color:#d1e5ee;background:#eee;-moz-box-shadow:inset 0 1px 0 #fff;-webkit-box-shadow:inset 0 1px 0 #fff;box-shadow:inset 0 1px 0 #fff}.tablenav .tablenav-pages a:hover,.tablenav .tablenav-pages a:focus{color:#d54e21}.tablenav .tablenav-pages a.disabled,.tablenav .tablenav-pages a.disabled:hover,.tablenav .tablenav-pages a.disabled:focus{color:#aaa}.tablenav .tablenav-pages .current{background:#dfdfdf;border-color:#d3d3d3}#availablethemes,#availablethemes td{border-color:#acd}#current-theme img{border-color:#b0c8d7}#TB_window #TB_title a.tb-theme-preview-link,#TB_window #TB_title a.tb-theme-preview-link:visited{color:#999}#TB_window #TB_title a.tb-theme-preview-link:hover,#TB_window #TB_title a.tb-theme-preview-link:focus{color:#ccc}.misc-pub-section{border-top-color:#fff;border-bottom-color:#d1e5ee}#minor-publishing{border-bottom-color:#cae6ff}#post-body .misc-pub-section{border-left-color:#eee}.post-com-count span{background-color:#bbb}.form-table .color-palette td{border-color:#fff}.sortable-placeholder{border-color:#bbb;background-color:#f5f5f5}#post-body ul.category-tabs li.tabs a,#post-body ul.add-menu-item-tabs li.tabs a,body.press-this ul.category-tabs li.tabs a{color:#333}.view-switch #view-switch-list,.view-switch #view-switch-excerpt{background-color:transparent;background-image:url('../images/list.png');background-repeat:no-repeat}.view-switch #view-switch-list{background-position:0 0}.view-switch .current #view-switch-list{background-position:-40px 0}.view-switch #view-switch-excerpt{background-position:-20px 0}.view-switch .current #view-switch-excerpt{background-position:-60px 0}#header-logo{background:transparent url(../images/wp-logo-vs.png?ver=20101102) no-repeat scroll center center}.popular-tags,.feature-filter{background-color:#fff;border-color:#d1e5ee}div.widgets-sortables,#widgets-left .inactive,#available-widgets .widget-holder{background-color:#f7fcfe;border-color:#d0dfe9}#available-widgets .widget-description{color:#555}.sidebar-name{color:#464646;text-shadow:#fff 0 1px 0;border-color:#d0dfe9;-webkit-box-shadow:inset 0 1px 0 #fff;box-shadow:inset 0 1px 0 #fff}.js .sidebar-name:hover,.js #removing-widget{color:#d54e21}#removing-widget span{color:black}.js .sidebar-name-arrow{background:transparent url(../images/arrows-vs.png) no-repeat 5px 9px}.js .sidebar-name:hover .sidebar-name-arrow{background:transparent url(../images/arrows-dark-vs.png) no-repeat 5px 9px}.in-widget-title{color:#606060}.deleting .widget-title *{color:#aaa}.imgedit-menu div{border-color:#d5d5d5;background-color:#f1f1f1}.imgedit-menu div:hover{border-color:#c1c1c1;background-color:#eaeaea}.imgedit-menu div.disabled{border-color:#ccc;background-color:#ddd;filter:alpha(opacity=50);opacity:.5}#dashboard_recent_comments div.undo{border-top-color:#dfdfdf}.comment-ays,.comment-ays th{border-color:#ddd}.comment-ays th{background-color:#f1f1f1}#menu-management .menu-edit{border-color:#d0dfe9}#post-body{background:#fff;border-top-color:#fff;border-bottom-color:#d0dfe9}#nav-menu-header{border-bottom-color:#d0dfe9}#nav-menu-footer{border-top-color:#fff}#menu-management .nav-tabs-arrow a{color:#c1c1c1}#menu-management .nav-tabs-arrow a:hover{color:#d54e21}#menu-management .nav-tabs-arrow a:active{color:#464646}#menu-management .nav-tab-active{border-color:#dfdfdf}#menu-management .nav-tab{background:#f7fcfe;border-color:#d0dfe9}.js .input-with-default-title{color:#aaa}#cancel-save{color:#f00}#cancel-save:hover{background-color:#f00;color:#fff}.list-container{border-color:#dfdfdf}.menu-item-handle{border-color:#d0dfe9}.menu li.deleting .menu-item-handle{background-color:#f66;text-shadow:#ccc}.item-type{color:#999}.item-controls .menu-item-delete:hover{color:#f00}.nav-menus-php .item-edit{background:transparent url(../images/arrows-vs.png) no-repeat 8px 10px;border-bottom-color:#eff8ff}.nav-menus-php .item-edit:hover{background:transparent url(../images/arrows-dark-vs.png) no-repeat 8px 10px}.menu-item-settings{border-color:#d0dfe9}.link-to-original{color:#777;border-color:#d0dfe9}#cancel-save:hover{color:#fff!important}#update-menu-item{color:#fff!important}#update-menu-item:hover,#update-menu-item:active,#update-menu-item:focus{color:#eaf2fa!important;border-color:#13455b!important}.submitbox .submitcancel{color:#21759b;border-bottom-color:#21759b}.submitbox .submitcancel:hover{background:#21759b;color:#fff}.nav-tab{border-color:#d1e5ee #d1e5ee #fff}.nav-tab:hover,.nav-tab-active{border-color:#acd #acd #fff}h2.nav-tab-wrapper,h3.nav-tab-wrapper{border-bottom-color:#acd}#menu-management .nav-tab-active,.menu-item-handle,.menu-item-settings{-webkit-box-shadow:inset 0 1px 0 #fff;box-shadow:inset 0 1px 0 #fff}#menu-management .nav-tab-active{background:#f7fcfe;border-bottom-color:#f7fcfe}#upload-form label{color:#777}.fullscreen-overlay{background:#fff}.wp-fullscreen-focus #wp-fullscreen-title,.wp-fullscreen-focus #wp-fullscreen-container{border-color:#bed1dd}#fullscreen-topbar{border-bottom-color:#d1e5ee}.about-wrap h1{color:#333;text-shadow:1px 1px 1px #fff}.about-text{color:#777}.wp-badge{color:#fff;text-shadow:0 -1px 0 rgba(22,57,81,0.3)}.about-wrap h2 .nav-tab{color:#21759b}.about-wrap h2 .nav-tab:hover{color:#d54e21}.about-wrap h2 .nav-tab-active,.about-wrap h2 .nav-tab-active:hover{color:#333}.about-wrap h2 .nav-tab-active{text-shadow:1px 1px 1px #fff;color:#464646}.about-wrap h3{color:#333;text-shadow:1px 1px 1px #fff}.about-wrap .feature-section h4{color:#464646}.about-wrap .feature-section img{background:#fff;border:1px #ccc solid;-webkit-box-shadow:0 1px 3px rgba(0,0,0,0.3);box-shadow:0 1px 3px rgba(0,0,0,0.3)}.about-wrap h4.wp-people-group{text-shadow:1px 1px 1px #fff}.about-wrap .point-releases{border-bottom:1px solid #dfdfdf}.about-wrap .point-releases h3{border-top:1px solid #dfdfdf}.about-wrap .point-releases h3:first-child{border:0}.about-wrap li.wp-person img.gravatar{-webkit-box-shadow:0 0 4px rgba(0,0,0,0.4);box-shadow:0 0 4px rgba(0,0,0,0.4)}.about-wrap li.wp-person .title{color:#464646;text-shadow:1px 1px 1px #fff}.freedoms-php .about-wrap ol li{color:#999}.freedoms-php .about-wrap ol p{color:#464646}.rtl .bar{border-right-color:transparent;border-left-color:#99d}.rtl #screen-meta-links a.show-settings{background-position:left 3px}.rtl #screen-meta-links a.show-settings.screen-meta-active{background-position:left -33px}.rtl #adminmenushadow,.rtl #adminmenuback{background-image:url(../images/menu-shadow-rtl.png);background-position:top left}.rtl #adminmenu .wp-submenu .wp-submenu-head{border-right-color:transparent;border-left-color:#d1e5ee}.rtl #adminmenu .wp-submenu,.rtl.folded #adminmenu .wp-has-current-submenu .wp-submenu{-webkit-box-shadow:-2px 2px 5px rgba(0,0,0,0.4);box-shadow:-2px 2px 5px rgba(0,0,0,0.4)}.rtl #adminmenu .wp-has-current-submenu .wp-submenu{-webkit-box-shadow:none;box-shadow:none}.rtl #collapse-button div{background-position:0 -108px}.rtl.folded #collapse-button div{background-position:0 -72px}@media only screen and (max-width:900px){.rtl.auto-fold #adminmenu a.wp-has-current-submenu:focus+.wp-submenu,.rtl.auto-fold #adminmenu .wp-has-current-submenu .wp-submenu{-webkit-box-shadow:-2px 2px 5px rgba(0,0,0,0.4);box-shadow:-2px 2px 5px rgba(0,0,0,0.4)}.rtl.auto-fold #collapse-button div{background-position:0 -72px}}.js.rtl .meta-box-sortables .postbox:hover .handlediv{background:transparent url(../images/arrows-vs.png) no-repeat 6px 7px}.rtl #post-body .misc-pub-section{border-right-color:transparent;border-left-color:#d1e5ee}.js.rtl .sidebar-name-arrow{background:transparent url(../images/arrows-vs.png) no-repeat 5px 9px}.js.rtl .sidebar-name:hover .sidebar-name-arrow{background:transparent url(../images/arrows-dark-vs.png) no-repeat 5px 9px}@media print,(-o-min-device-pixel-ratio:5/4),(-webkit-min-device-pixel-ratio:1.25),(min-resolution:120dpi){.curtime #timestamp{background-image:url("../images/date-button-2x.gif?ver=20120916");background-size:16px auto}.tagchecklist span a,#bulk-titles div a,.tagchecklist span a:hover,#bulk-titles div a:hover{background-image:url("../images/xit-2x.gif?ver=20120916");background-size:20px auto}#screen-meta-links a.show-settings,#screen-meta-links a.show-settings.screen-meta-active,#adminmenu .wp-has-submenu:hover .wp-menu-toggle,#adminmenu .wp-menu-open .wp-menu-toggle,#collapse-button div,.nav-menus-php .item-edit,.js .meta-box-sortables .postbox:hover .handlediv,.sidebar-name-arrow,.rtl #adminmenu .wp-has-submenu:hover .wp-menu-toggle,.rtl #adminmenu .wp-menu-open .wp-menu-toggle,.js.rtl .meta-box-sortables .postbox:hover .handlediv,.rtl .sidebar-name-arrow{background-image:url("../images/arrows-vs-2x.png?ver=20120916");background-size:15px 123px}#adminmenu li.wp-has-current-submenu.wp-menu-open .wp-menu-toggle,#adminmenu li.wp-has-current-submenu:hover .wp-menu-toggle,.nav-menus-php .item-edit:hover,.sidebar-name:hover .sidebar-name-arrow,.rtl #adminmenu li.wp-has-current-submenu.wp-menu-open .wp-menu-toggle,.rtl #adminmenu li.wp-has-current-submenu:hover .wp-menu-toggle,.rtl .sidebar-name:hover .sidebar-name-arrow{background-image:url("../images/arrows-dark-vs-2x.png?ver=20120916");background-size:15px 123px}.view-switch #view-switch-list,.view-switch #view-switch-excerpt{background-image:url("../images/list-2x.png?ver=20120916");background-size:80px 20px}.icon32.icon-post,#icon-edit,#icon-post,.icon32.icon-dashboard,#icon-index,.icon32.icon-media,#icon-upload,.icon32.icon-links,#icon-link-manager,#icon-link,#icon-link-category,.icon32.icon-page,#icon-edit-pages,#icon-page,.icon32.icon-comments,#icon-edit-comments,.icon32.icon-appearance,#icon-themes,.icon32.icon-plugins,#icon-plugins,.icon32.icon-users,#icon-users,#icon-profile,#icon-user-edit,.icon32.icon-tools,#icon-tools,#icon-admin,.icon32.icon-settings,#icon-options-general,.icon32.icon-site,#icon-ms-admin,.icon32.icon-generic,#icon-generic{background-image:url(../images/icons32-vs-2x.png?ver=20121105);background-size:756px 45px}.icon16.icon-dashboard,.menu-icon-dashboard div.wp-menu-image,.icon16.icon-post,.menu-icon-post div.wp-menu-image,.icon16.icon-media,.menu-icon-media div.wp-menu-image,.icon16.icon-links,.menu-icon-links div.wp-menu-image,.icon16.icon-page,.menu-icon-page div.wp-menu-image,.icon16.icon-comments,.menu-icon-comments div.wp-menu-image,.icon16.icon-appearance,.menu-icon-appearance div.wp-menu-image,.icon16.icon-plugins,.menu-icon-plugins div.wp-menu-image,.icon16.icon-users,.menu-icon-users div.wp-menu-image,.icon16.icon-tools,.menu-icon-tools div.wp-menu-image,.icon16.icon-settings,.menu-icon-settings div.wp-menu-image,.icon16.icon-site,.menu-icon-site div.wp-menu-image,.icon16.icon-generic,.menu-icon-generic div.wp-menu-image{background-image:url('../images/menu-vs-2x.png?ver=20121105');background-size:390px 64px}#header-logo{background-image:url('../images/wp-logo-vs-2x.png?ver=20120916');background-size:16px auto}}
\ No newline at end of file
--- a/web/wp-admin/css/colors-fresh.css	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-admin/css/colors-fresh.css	Wed Dec 19 17:46:52 2012 -0800
@@ -1,1 +1,2076 @@
-html,.wp-dialog{background-color:#fff}textarea,input[type="text"],input[type="password"],input[type="file"],input[type="button"],input[type="submit"],input[type="reset"],input[type="email"],input[type="number"],input[type="search"],input[type="tel"],input[type="url"],select{border-color:#dfdfdf;background-color:#fff;color:#333}select{color:#000}textarea:focus,input[type="text"]:focus,input[type="password"]:focus,input[type="file"]:focus,input[type="button"]:focus,input[type="submit"]:focus,input[type="reset"]:focus,input[type="email"]:focus,input[type="number"]:focus,input[type="search"]:focus,input[type="tel"]:focus,input[type="url"]:focus,select:focus{border-color:#bbb}kbd,code{background:#eaeaea}input[readonly]{background-color:#eee}.find-box-search{border-color:#dfdfdf;background-color:#f1f1f1}.find-box{background-color:#f1f1f1}.find-box-inside{background-color:#fff}a.page-numbers:hover{border-color:#999}body,#wpbody,.form-table .pre,.ui-autocomplete li a{color:#333}body>#upload-menu{border-bottom-color:#fff}#postcustomstuff table,#your-profile fieldset,#rightnow,div.dashboard-widget,#dashboard-widgets p.dashboard-widget-links{border-color:#ccc}#poststuff .inside label.spam,#poststuff .inside label.deleted{color:red}#poststuff .inside label.waiting{color:orange}#poststuff .inside label.approved{color:green}#postcustomstuff table{border-color:#dfdfdf;background-color:#f9f9f9}#postcustomstuff thead th{background-color:#f1f1f1}.widefat{border-color:#dfdfdf;background-color:#f9f9f9}textarea.widefat{background-color:#fff}div.dashboard-widget-error{background-color:#c43}div.dashboard-widget-notice{background-color:#cfe1ef}div.dashboard-widget-submit{border-top-color:#ccc}ul.category-tabs li{border-color:transparent}div.tabs-panel,.wp-tab-panel,ul.category-tabs li.tabs,ul.add-menu-item-tabs li.tabs,.wp-tab-active{border-color:#dfdfdf;background-color:#fff}ul.category-tabs li.tabs,ul.add-menu-item-tabs li.tabs,.wp-tab-active{background-color:#fff}input.disabled,textarea.disabled{background-color:#ccc}#plugin-information .action-button a,#plugin-information .action-button a:hover,#plugin-information .action-button a:visited{color:#fff}.widget .widget-top,.postbox h3,.stuffbox h3,.widefat thead tr th,.widefat tfoot tr th,h3.dashboard-widget-title,h3.dashboard-widget-title span,h3.dashboard-widget-title small,.find-box-head,.sidebar-name,#nav-menu-header,#nav-menu-footer,.menu-item-handle{background-color:#f1f1f1;background-image:-ms-linear-gradient(top,#f9f9f9,#ececec);background-image:-moz-linear-gradient(top,#f9f9f9,#ececec);background-image:-o-linear-gradient(top,#f9f9f9,#ececec);background-image:-webkit-gradient(linear,left top,left bottom,from(#f9f9f9),to(#ececec));background-image:-webkit-linear-gradient(top,#f9f9f9,#ececec);background-image:linear-gradient(top,#f9f9f9,#ececec)}.widget .widget-top,.postbox h3,.stuffbox h3{border-bottom-color:#dfdfdf;text-shadow:#fff 0 1px 0;-moz-box-shadow:0 1px 0 #fff;-webkit-box-shadow:0 1px 0 #fff;box-shadow:0 1px 0 #fff}.form-table th,.form-wrap label{color:#222;text-shadow:#fff 0 1px 0}.description,.form-wrap p{color:#666}strong .post-com-count span{background-color:#21759b}.sorthelper{background-color:#ccf3fa}.ac_match,.subsubsub a.current{color:#000}.wrap h2{color:#464646}.wrap .add-new-h2{background:#f1f1f1}.subtitle{color:#777}.ac_over{background-color:#f0f0b8}.ac_results{background-color:#fff;border-color:#808080}.ac_results li{color:#101010}.alternate,.alt{background-color:#fcfcfc}.available-theme a.screenshot{background-color:#f1f1f1;border-color:#ddd}.bar{background-color:#e8e8e8;border-right-color:#99d}#media-upload,#media-upload .media-item .slidetoggle{background:#fff}#media-upload .slidetoggle{border-top-color:#dfdfdf}div.error,.login #login_error{background-color:#ffebe8;border-color:#c00}div.error a{color:#c00}.form-invalid{background-color:#ffebe8!important}.form-invalid input,.form-invalid select{border-color:#c00!important}.submit,#commentsdiv #add-new-comment{border-color:#dfdfdf}.highlight{background-color:#e4f2fd;color:#000}.howto,.nonessential,#edit-slug-box,.form-input-tip,.subsubsub{color:#666}.media-upload-form label.form-help,td.help{color:#9a9a9a}.ui-autocomplete{background-color:#efefef;border-color:#bbb}.ui-autocomplete li a.ui-state-hover{background-color:#ddd}.post-com-count{background-image:url(../images/bubble_bg.gif);color:#fff}.post-com-count span{background-color:#bbb;color:#fff}.post-com-count:hover span{background-color:#d54e21}.quicktags,.search{background-color:#ccc;color:#000}.side-info h5{border-bottom-color:#dadada}.side-info ul{color:#666}.button,.button-secondary,.submit input,input[type=button],input[type=submit]{border-color:#bbb;color:#464646}.button:hover,.button-secondary:hover,.submit input:hover,input[type=button]:hover,input[type=submit]:hover{color:#000;border-color:#666}.button,.submit input,.button-secondary{background:#f2f2f2 url(../images/white-grad.png) repeat-x scroll left top;text-shadow:rgba(255,255,255,1) 0 1px 0}.button:active,.submit input:active,.button-secondary:active{background:#eee url(../images/white-grad-active.png) repeat-x scroll left top}input.button-primary,button.button-primary,a.button-primary{border-color:#298cba;font-weight:bold;color:#fff;background:#21759b url(../images/button-grad.png) repeat-x scroll left top;text-shadow:rgba(0,0,0,0.3) 0 -1px 0}input.button-primary:active,button.button-primary:active,a.button-primary:active{background:#21759b url(../images/button-grad-active.png) repeat-x scroll left top;color:#eaf2fa}input.button-primary:hover,button.button-primary:hover,a.button-primary:hover,a.button-primary:focus,a.button-primary:active{border-color:#13455b;color:#eaf2fa}.button-disabled,.button[disabled],.button:disabled,.button-secondary[disabled],.button-secondary:disabled,a.button.disabled{color:#aaa!important;border-color:#ddd!important}.button-primary-disabled,.button-primary[disabled],.button-primary:disabled{color:#9fd0d5!important;background:#298cba!important}a:hover,a:active,a:focus{color:#d54e21}#adminmenu a:hover,#adminmenu li.menu-top>a:focus,#adminmenu ul.wp-submenu a:hover,#the-comment-list .comment a:hover,#rightnow a:hover,#media-upload a.del-link:hover,div.dashboard-widget-submit input:hover,.subsubsub a:hover,.subsubsub a.current:hover,.ui-tabs-nav a:hover,.plugins .inactive a:hover,#all-plugins-table .plugins .inactive a:hover,#search-plugins-table .plugins .inactive a:hover{color:#d54e21}#the-comment-list .comment-item,#dashboard-widgets #dashboard_quick_press form p.submit{border-color:#dfdfdf}#side-sortables .category-tabs .tabs a,#side-sortables .add-menu-item-tabs .tabs a,.wp-tab-bar .wp-tab-active a{color:#333}#rightnow .rbutton{background-color:#ebebeb;color:#264761}.submitbox .submit{background-color:#464646;color:#ccc}.plugins a.delete:hover,#all-plugins-table .plugins a.delete:hover,#search-plugins-table .plugins a.delete:hover,.submitbox .submitdelete{color:#f00;border-bottom-color:#f00}.submitbox .submitdelete:hover,#media-items a.delete:hover{color:#fff;background-color:#f00;border-bottom-color:#f00}#normal-sortables .submitbox .submitdelete:hover{color:#000;background-color:#f00;border-bottom-color:#f00}.tablenav .dots{border-color:transparent}.tablenav .next,.tablenav .prev{border-color:transparent;color:#21759b}.tablenav .next:hover,.tablenav .prev:hover{border-color:transparent;color:#d54e21}div.updated,.login .message{background-color:#ffffe0;border-color:#e6db55}.update-message{color:#000}a.page-numbers{border-bottom-color:#b8d3e2}.commentlist li{border-bottom-color:#ccc}.widefat td,.widefat th{border-top-color:#fff;border-bottom-color:#dfdfdf}.widefat th{text-shadow:rgba(255,255,255,0.8) 0 1px 0}.widefat td{color:#555}.widefat p,.widefat ol,.widefat ul{color:#333}.widefat thead tr th,.widefat tfoot tr th,h3.dashboard-widget-title,h3.dashboard-widget-title span,h3.dashboard-widget-title small,.find-box-head{color:#333}th.sortable a:hover,th.sortable a:active,th.sortable a:focus{color:#333}h3.dashboard-widget-title small a{color:#d7d7d7}h3.dashboard-widget-title small a:hover{color:#fff}a,#adminmenu a,#the-comment-list p.comment-author strong a,#media-upload a.del-link,#media-items a.delete,.plugins a.delete,.ui-tabs-nav a{color:#21759b}#adminmenu .awaiting-mod,#adminmenu .update-plugins,#sidemenu a .update-plugins,#rightnow .reallynow{background-color:#464646;color:#fff;-moz-box-shadow:rgba(255,255,255,0.5) 0 1px 0;-webkit-box-shadow:rgba(255,255,255,0.5) 0 1px 0;box-shadow:rgba(255,255,255,0.5) 0 1px 0}#plugin-information .action-button{background-color:#d54e21;color:#fff}#adminmenu li.current a .awaiting-mod,#adminmenu li a.wp-has-current-submenu .update-plugins{background-color:#464646;color:#fff;-moz-box-shadow:rgba(255,255,255,0.5) 0 1px 0;-webkit-box-shadow:rgba(255,255,255,0.5) 0 1px 0;box-shadow:rgba(255,255,255,0.5) 0 1px 0}div#media-upload-header,div#plugin-information-header{background-color:#f9f9f9;border-bottom-color:#dfdfdf}#currenttheme img{border-color:#666}#dashboard_secondary div.dashboard-widget-content ul li a{background-color:#f9f9f9}input.readonly,textarea.readonly{background-color:#ddd}#editable-post-name{background-color:#fffbcc}#edit-slug-box strong,.tablenav .displaying-num,#submitted-on,.submitted-on{color:#777}.login #nav a,.login #backtoblog a{color:#21759b!important}.login #nav a:hover,.login #backtoblog a:hover{color:#d54e21!important}#footer{color:#777;border-color:#dfdfdf}.imgedit-group,#media-items .media-item,.media-item .describe{border-color:#dfdfdf}.checkbox,.side-info,.plugins tr,#your-profile #rich_editing{background-color:#fcfcfc}.plugins .inactive,.plugins .inactive th,.plugins .inactive td,tr.inactive+tr.plugin-update-tr .plugin-update{background-color:#f4f4f4}.plugin-update-tr .update-message{background-color:#fffbe4;border-color:#dfdfdf}.plugins .active,.plugins .active th,.plugins .active td{color:#000}.plugins .inactive a{color:#579}#the-comment-list tr.undo,#the-comment-list div.undo{background-color:#f4f4f4}#the-comment-list .unapproved{background-color:#ffffe0}#the-comment-list .approve a{color:#006505}#the-comment-list .unapprove a{color:#d98500}table.widefat span.delete a,table.widefat span.trash a,table.widefat span.spam a,#dashboard_recent_comments .delete a,#dashboard_recent_comments .trash a,#dashboard_recent_comments .spam a{color:#bc0b0b}.welcome-panel{border-color:#dfdfdf}.welcome-panel p{color:#777}.welcome-panel-column p{color:#464646}.welcome-panel h3{text-shadow:1px 1px 1px white}.widget,#widget-list .widget-top,.postbox,#titlediv,#poststuff .postarea,.stuffbox{border-color:#dfdfdf;-moz-box-shadow:inset 0 1px 0 #fff;-webkit-box-shadow:inset 0 1px 0 #fff;box-shadow:inset 0 1px 0 #fff;-webkit-border-radius:3px;border-radius:3px}.widget,#widget-list .widget-top,.postbox,.menu-item-settings{background-color:#f5f5f5;background-image:-ms-linear-gradient(top,#f9f9f9,#f5f5f5);background-image:-moz-linear-gradient(top,#f9f9f9,#f5f5f5);background-image:-o-linear-gradient(top,#f9f9f9,#f5f5f5);background-image:-webkit-gradient(linear,left top,left bottom,from(#f9f9f9),to(#f5f5f5));background-image:-webkit-linear-gradient(top,#f9f9f9,#f5f5f5);background-image:linear-gradient(top,#f9f9f9,#f5f5f5)}.postbox h3{color:#464646}.widget .widget-top{color:#222}.sidebar-name:hover h3,.postbox h3:hover{color:#000}.curtime #timestamp{background-image:url(../images/date-button.gif)}#quicktags #ed_link{color:#00f}#rightnow .youhave{background-color:#f0f6fb}#rightnow a{color:#448abd}.tagchecklist span a,#bulk-titles div a{background:url(../images/xit.gif) no-repeat}.tagchecklist span a:hover,#bulk-titles div a:hover{background:url(../images/xit.gif) no-repeat -10px 0}#update-nag,.update-nag{background-color:#fffbcc;border-color:#e6db55;color:#555}#screen-meta{background-color:#f1f1f1;border-color:#ccc;-webkit-box-shadow:0 1px 3px rgba(0,0,0,0.05);box-shadow:0 1px 3px rgba(0,0,0,0.05)}#contextual-help-back{background:#fff}.contextual-help-tabs a:hover{color:#333}#contextual-help-back,.contextual-help-tabs .active{border-color:#ccc}.contextual-help-tabs .active,.contextual-help-tabs .active a,.contextual-help-tabs .active a:hover{background:#fff;color:#333}#screen-options-link-wrap,#contextual-help-link-wrap{background-color:#e3e3e3;border-right:1px solid #ccc;border-left:1px solid #ccc;border-bottom:1px solid #ccc;background-image:-ms-linear-gradient(bottom,#dfdfdf,#f1f1f1);background-image:-moz-linear-gradient(bottom,#dfdfdf,#f1f1f1);background-image:-o-linear-gradient(bottom,#dfdfdf,#f1f1f1);background-image:-webkit-gradient(linear,left bottom,left top,from(#dfdfdf),to(#f1f1f1));background-image:-webkit-linear-gradient(bottom,#dfdfdf,#f1f1f1);background-image:linear-gradient(bottom,#dfdfdf,#f1f1f1)}#screen-meta-links a.show-settings{color:#777}#screen-meta-links a.show-settings:hover{color:#333}#screen-meta-links a.show-settings{background:transparent url(../images/arrows.png) no-repeat right 4px}#screen-meta-links a.show-settings.screen-meta-active{background:transparent url(../images/arrows.png) no-repeat right -31px}.login #backtoblog a{color:#464646}#wphead{border-bottom:#dfdfdf 1px solid}#wphead h1 a{color:#464646}#footer a:link,#footer a:visited{text-decoration:none}#footer a:hover{text-decoration:underline}.file-error,abbr.required,.widget-control-remove:hover,table.widefat .delete a:hover,table.widefat .trash a:hover,table.widefat .spam a:hover,#dashboard_recent_comments .delete a:hover,#dashboard_recent_comments .trash a:hover #dashboard_recent_comments .spam a:hover{color:#f00}#pass-strength-result{background-color:#eee;border-color:#ddd!important}#pass-strength-result.bad{background-color:#ffb78c;border-color:#ff853c!important}#pass-strength-result.good{background-color:#ffec8b;border-color:#fc0!important}#pass-strength-result.short{background-color:#ffa0a0;border-color:#f04040!important}#pass-strength-result.strong{background-color:#c3ff88;border-color:#8dff1c!important}#titlediv #title{border-color:#ccc}#post-status-info{border-color:#dfdfdf #ccc #ccc;background-color:#eaeaea}.editwidget .widget-inside{border-color:#dfdfdf}#titlediv #title{background-color:#fff}#tTips p#tTips_inside{background-color:#ddd;color:#333}#timestampdiv input,#namediv input,#poststuff .inside .the-tagcloud{border-color:#ddd}#adminmenuback,#adminmenuwrap{background-color:#ececec;border-color:#ccc}#adminmenushadow,#adminmenuback{background-image:url(../images/menu-shadow.png);background-position:top right;background-repeat:repeat-y}#adminmenu li.wp-menu-separator{background:#dfdfdf;border-color:#cfcfcf}#adminmenu div.separator{border-color:#e1e1e1}#adminmenu li.wp-has-current-submenu.wp-menu-open .wp-menu-toggle,#adminmenu li.wp-has-current-submenu:hover .wp-menu-toggle{background:transparent url(../images/arrows-dark.png) no-repeat -1px 6px}#adminmenu .wp-has-submenu:hover .wp-menu-toggle,#adminmenu .wp-menu-open .wp-menu-toggle{background:transparent url(../images/arrows.png) no-repeat -2px 6px}#adminmenu a.menu-top,.folded #adminmenu li.menu-top,#adminmenu .wp-submenu .wp-submenu-head{border-top-color:#f9f9f9;border-bottom-color:#dfdfdf}#adminmenu li.wp-menu-open{border-color:#dfdfdf}#adminmenu li.menu-top:hover>a,#adminmenu li.menu-top.focused>a,#adminmenu li.menu-top>a:focus{background-color:#e4e4e4;text-shadow:0 1px 0 rgba(255,255,255,0.4)}#adminmenu li.wp-has-current-submenu a.wp-has-current-submenu,#adminmenu li.current a.menu-top,.folded #adminmenu li.wp-has-current-submenu,.folded #adminmenu li.current.menu-top,#adminmenu .wp-menu-arrow,#adminmenu .wp-has-current-submenu .wp-submenu .wp-submenu-head{background-color:#777;background-image:-ms-linear-gradient(bottom,#6d6d6d,#808080);background-image:-moz-linear-gradient(bottom,#6d6d6d,#808080);background-image:-o-linear-gradient(bottom,#6d6d6d,#808080);background-image:-webkit-gradient(linear,left bottom,left top,from(#6d6d6d),to(#808080));background-image:-webkit-linear-gradient(bottom,#6d6d6d,#808080);background-image:linear-gradient(bottom,#6d6d6d,#808080)}#adminmenu .wp-menu-arrow div{background-color:#777;background-image:-ms-linear-gradient(right bottom,#6d6d6d,#808080);background-image:-moz-linear-gradient(right bottom,#6d6d6d,#808080);background-image:-o-linear-gradient(right bottom,#6d6d6d,#808080);background-image:-webkit-gradient(linear,right bottom,left top,from(#6d6d6d),to(#808080));background-image:-webkit-linear-gradient(right bottom,#6d6d6d,#808080);background-image:linear-gradient(right bottom,#6d6d6d,#808080)}#adminmenu li.wp-not-current-submenu .wp-menu-arrow{border-top-color:#f9f9f9;border-bottom-color:#dfdfdf;background:#e4e4e4}#adminmenu li.wp-not-current-submenu .wp-menu-arrow div{background:#e4e4e4;border-color:#ccc}.folded #adminmenu li.menu-top li:hover a{background-image:none}#adminmenu li.wp-has-current-submenu a.wp-has-current-submenu,#adminmenu li.current a.menu-top,#adminmenu .wp-has-current-submenu .wp-submenu .wp-submenu-head{text-shadow:0 -1px 0 #333;color:#fff;border-top-color:#808080;border-bottom-color:#6d6d6d}.folded #adminmenu li.wp-has-current-submenu,.folded #adminmenu li.current.menu-top{border-top-color:#808080;border-bottom-color:#6d6d6d}#adminmenu .wp-submenu a:hover,#adminmenu .wp-submenu a:focus{background-color:#eaf2fa;color:#333}#adminmenu .wp-submenu li.current,#adminmenu .wp-submenu li.current a,#adminmenu .wp-submenu li.current a:hover{color:#333}#adminmenu .wp-submenu ul{background-color:#fff}#adminmenu .wp-submenu-wrap,#adminmenu .wp-submenu ul{border-color:#dfdfdf}#adminmenu .wp-submenu-wrap,.folded #adminmenu .wp-has-current-submenu .wp-submenu-wrap{-moz-box-shadow:2px 2px 5px rgba(0,0,0,0.4);-webkit-box-shadow:2px 2px 5px rgba(0,0,0,0.4);box-shadow:2px 2px 5px rgba(0,0,0,0.4)}#adminmenu .wp-submenu .wp-submenu-head{border-right-color:#dfdfdf;background-color:#ececec}#adminmenu div.wp-submenu{background-color:transparent}#collapse-menu{color:#aaa}#collapse-menu:hover{color:#999}#collapse-button{border-color:#ccc;background-color:#f4f4f4;background-image:-ms-linear-gradient(bottom,#dfdfdf,#fff);background-image:-moz-linear-gradient(bottom,#dfdfdf,#fff);background-image:-o-linear-gradient(bottom,#dfdfdf,#fff);background-image:-webkit-gradient(linear,left bottom,left top,from(#dfdfdf),to(#fff));background-image:-webkit-linear-gradient(bottom,#dfdfdf,#fff);background-image:linear-gradient(bottom,#dfdfdf,#fff)}#collapse-menu:hover #collapse-button{border-color:#aaa}#collapse-button div{background:transparent url(../images/arrows.png) no-repeat 0 -72px}.folded #collapse-button div{background-position:0 -108px}@media only screen and (max-width:900px){#adminmenu li.menu-top{border-top-color:#f9f9f9;border-bottom-color:#dfdfdf}#adminmenu li.wp-has-current-submenu,#adminmenu li.current.menu-top{background-color:#777;background-image:-ms-linear-gradient(bottom,#6d6d6d,#808080);background-image:-moz-linear-gradient(bottom,#6d6d6d,#808080);background-image:-o-linear-gradient(bottom,#6d6d6d,#808080);background-image:-webkit-gradient(linear,left bottom,left top,from(#6d6d6d),to(#808080));background-image:-webkit-linear-gradient(bottom,#6d6d6d,#808080);background-image:linear-gradient(bottom,#6d6d6d,#808080)}#adminmenu li.menu-top li:hover a{background-image:none}#adminmenu li.wp-has-current-submenu,#adminmenu li.current.menu-top{border-top-color:#808080;border-bottom-color:#6d6d6d}#adminmenu .wp-has-current-submenu .wp-submenu-wrap{-moz-box-shadow:2px 2px 5px rgba(0,0,0,0.4);-webkit-box-shadow:2px 2px 5px rgba(0,0,0,0.4);box-shadow:2px 2px 5px rgba(0,0,0,0.4)}#collapse-button div{background-position:0 -108px}}.icon16,.icon32,div.wp-menu-image{background-color:transparent;background-repeat:no-repeat}.icon16.icon-dashboard,.menu-icon-dashboard div.wp-menu-image,.icon16.icon-post,.menu-icon-post div.wp-menu-image,.icon16.icon-media,.menu-icon-media div.wp-menu-image,.icon16.icon-links,.menu-icon-links div.wp-menu-image,.icon16.icon-page,.menu-icon-page div.wp-menu-image,.icon16.icon-comments,.menu-icon-comments div.wp-menu-image,.icon16.icon-appearance,.menu-icon-appearance div.wp-menu-image,.icon16.icon-plugins,.menu-icon-plugins div.wp-menu-image,.icon16.icon-users,.menu-icon-users div.wp-menu-image,.icon16.icon-tools,.menu-icon-tools div.wp-menu-image,.icon16.icon-settings,.menu-icon-settings div.wp-menu-image,.icon16.icon-site,.menu-icon-site div.wp-menu-image{background-image:url('../images/menu.png?ver=20120201')}.icon16.icon-dashboard,#adminmenu .menu-icon-dashboard div.wp-menu-image{background-position:-59px -33px}#adminmenu .menu-icon-dashboard:hover div.wp-menu-image,#adminmenu .menu-icon-dashboard.wp-has-current-submenu div.wp-menu-image,#adminmenu .menu-icon-dashboard.current div.wp-menu-image{background-position:-59px -1px}.icon16.icon-post,#adminmenu .menu-icon-post div.wp-menu-image{background-position:-269px -33px}#adminmenu .menu-icon-post:hover div.wp-menu-image,#adminmenu .menu-icon-post.wp-has-current-submenu div.wp-menu-image,#adminmenu .menu-icon-post.current div.wp-menu-image{background-position:-269px -1px}.icon16.icon-media,#adminmenu .menu-icon-media div.wp-menu-image{background-position:-119px -33px}#adminmenu .menu-icon-media:hover div.wp-menu-image,#adminmenu .menu-icon-media.wp-has-current-submenu div.wp-menu-image,#adminmenu .menu-icon-media.current div.wp-menu-image{background-position:-119px -1px}.icon16.icon-links,#adminmenu .menu-icon-links div.wp-menu-image{background-position:-89px -33px}#adminmenu .menu-icon-links:hover div.wp-menu-image,#adminmenu .menu-icon-links.wp-has-current-submenu div.wp-menu-image,#adminmenu .menu-icon-links.current div.wp-menu-image{background-position:-89px -1px}.icon16.icon-page,#adminmenu .menu-icon-page div.wp-menu-image{background-position:-149px -33px}#adminmenu .menu-icon-page:hover div.wp-menu-image,#adminmenu .menu-icon-page.wp-has-current-submenu div.wp-menu-image,#adminmenu .menu-icon-page.current div.wp-menu-image{background-position:-149px -1px}.icon16.icon-comments,#adminmenu .menu-icon-comments div.wp-menu-image{background-position:-29px -33px}#adminmenu .menu-icon-comments:hover div.wp-menu-image,#adminmenu .menu-icon-comments.wp-has-current-submenu div.wp-menu-image,#adminmenu .menu-icon-comments.current div.wp-menu-image{background-position:-29px -1px}.icon16.icon-appearance,#adminmenu .menu-icon-appearance div.wp-menu-image{background-position:1px -33px}#adminmenu .menu-icon-appearance:hover div.wp-menu-image,#adminmenu .menu-icon-appearance.wp-has-current-submenu div.wp-menu-image,#adminmenu .menu-icon-appearance.current div.wp-menu-image{background-position:1px -1px}.icon16.icon-plugins,#adminmenu .menu-icon-plugins div.wp-menu-image{background-position:-179px -33px}#adminmenu .menu-icon-plugins:hover div.wp-menu-image,#adminmenu .menu-icon-plugins.wp-has-current-submenu div.wp-menu-image,#adminmenu .menu-icon-plugins.current div.wp-menu-image{background-position:-179px -1px}.icon16.icon-users,#adminmenu .menu-icon-users div.wp-menu-image{background-position:-300px -33px}#adminmenu .menu-icon-users:hover div.wp-menu-image,#adminmenu .menu-icon-users.wp-has-current-submenu div.wp-menu-image,#adminmenu .menu-icon-users.current div.wp-menu-image{background-position:-300px -1px}.icon16.icon-tools,#adminmenu .menu-icon-tools div.wp-menu-image{background-position:-209px -33px}#adminmenu .menu-icon-tools:hover div.wp-menu-image,#adminmenu .menu-icon-tools.wp-has-current-submenu div.wp-menu-image,#adminmenu .menu-icon-tools.current div.wp-menu-image{background-position:-209px -1px}.icon16.icon-settings,#adminmenu .menu-icon-settings div.wp-menu-image{background-position:-239px -33px}#adminmenu .menu-icon-settings:hover div.wp-menu-image,#adminmenu .menu-icon-settings.wp-has-current-submenu div.wp-menu-image,#adminmenu .menu-icon-settings.current div.wp-menu-image{background-position:-239px -1px}.icon16.icon-site,#adminmenu .menu-icon-site div.wp-menu-image{background-position:-359px -33px}#adminmenu .menu-icon-site:hover div.wp-menu-image,#adminmenu .menu-icon-site.wp-has-current-submenu div.wp-menu-image,#adminmenu .menu-icon-site.current div.wp-menu-image{background-position:-359px -1px}.icon32.icon-post,#icon-edit,#icon-post,.icon32.icon-dashboard,#icon-index,.icon32.icon-media,#icon-upload,.icon32.icon-links,#icon-link-manager,#icon-link,#icon-link-category,.icon32.icon-page,#icon-edit-pages,#icon-page,.icon32.icon-comments,#icon-edit-comments,.icon32.icon-appearance,#icon-themes,.icon32.icon-plugins,#icon-plugins,.icon32.icon-users,#icon-users,#icon-profile,#icon-user-edit,.icon32.icon-tools,#icon-tools,#icon-admin,.icon32.icon-settings,#icon-options-general,.icon32.icon-site,#icon-ms-admin{background-image:url(../images/icons32.png?ver=20111206)}.icon32.icon-post,#icon-edit,#icon-post{background-position:-552px -5px}.icon32.icon-dashboard,#icon-index{background-position:-137px -5px}.icon32.icon-media,#icon-upload{background-position:-251px -5px}.icon32.icon-links,#icon-link-manager,#icon-link,#icon-link-category{background-position:-190px -5px}.icon32.icon-page,#icon-edit-pages,#icon-page{background-position:-312px -5px}.icon32.icon-comments,#icon-edit-comments{background-position:-72px -5px}.icon32.icon-appearance,#icon-themes{background-position:-11px -5px}.icon32.icon-plugins,#icon-plugins{background-position:-370px -5px}.icon32.icon-users,#icon-users,#icon-profile,#icon-user-edit{background-position:-600px -5px}.icon32.icon-tools,#icon-tools,#icon-admin{background-position:-432px -5px}.icon32.icon-settings,#icon-options-general{background-position:-492px -5px}.icon32.icon-site,#icon-ms-admin{background-position:-659px -5px}@media only screen and (-webkit-min-device-pixel-ratio:1.5){.icon32.icon-post,#icon-edit,#icon-post,.icon32.icon-dashboard,#icon-index,.icon32.icon-media,#icon-upload,.icon32.icon-links,#icon-link-manager,#icon-link,#icon-link-category,.icon32.icon-page,#icon-edit-pages,#icon-page,.icon32.icon-comments,#icon-edit-comments,.icon32.icon-appearance,#icon-themes,.icon32.icon-plugins,#icon-plugins,.icon32.icon-users,#icon-users,#icon-profile,#icon-user-edit,.icon32.icon-tools,#icon-tools,#icon-admin,.icon32.icon-settings,#icon-options-general,.icon32.icon-site,#icon-ms-admin{background-image:url(../images/icons32-2x.png?ver=20120412);background-size:708px 45px}.icon16.icon-dashboard,.menu-icon-dashboard div.wp-menu-image,.icon16.icon-post,.menu-icon-post div.wp-menu-image,.icon16.icon-media,.menu-icon-media div.wp-menu-image,.icon16.icon-links,.menu-icon-links div.wp-menu-image,.icon16.icon-page,.menu-icon-page div.wp-menu-image,.icon16.icon-comments,.menu-icon-comments div.wp-menu-image,.icon16.icon-appearance,.menu-icon-appearance div.wp-menu-image,.icon16.icon-plugins,.menu-icon-plugins div.wp-menu-image,.icon16.icon-users,.menu-icon-users div.wp-menu-image,.icon16.icon-tools,.menu-icon-tools div.wp-menu-image,.icon16.icon-settings,.menu-icon-settings div.wp-menu-image,.icon16.icon-site,.menu-icon-site div.wp-menu-image{background-image:url('../images/menu-2x.png?ver=20120412');background-size:390px 64px}}table.diff .diff-deletedline{background-color:#fdd}table.diff .diff-deletedline del{background-color:#f99}table.diff .diff-addedline{background-color:#dfd}table.diff .diff-addedline ins{background-color:#9f9}#att-info{background-color:#e4f2fd}#sidemenu a{background-color:#f9f9f9;border-color:#f9f9f9;border-bottom-color:#dfdfdf}#sidemenu a.current{background-color:#fff;border-color:#dfdfdf #dfdfdf #fff;color:#d54e21}#replyerror{border-color:#ddd;background-color:#f9f9f9}.vim-current,.vim-current th,.vim-current td{background-color:#e4f2fd!important}#plugin-information .fyi ul{background-color:#eaf3fa}#plugin-information .fyi h2.mainheader{background-color:#cee1ef}#plugin-information pre,#plugin-information code{background-color:#ededff}#plugin-information pre{border:1px solid #ccc}.inline-edit-row fieldset input[type="text"],.inline-edit-row fieldset textarea,#bulk-titles{border-color:#ddd}.inline-editor div.title{background-color:#eaf3fa}.inline-editor ul.cat-checklist{background-color:#fff;border-color:#ddd}.inline-editor .categories .catshow,.inline-editor .categories .cathide{color:#21759b}.inline-editor .quick-edit-save{background-color:#f1f1f1}fieldset.inline-edit-col-right .inline-edit-col{border-color:#dfdfdf}.attention{color:#d54e21}.meta-box-sortables .postbox:hover .handlediv{background:transparent url(../images/arrows.png) no-repeat 6px 7px}.tablenav .tablenav-pages{color:#555}.tablenav .tablenav-pages a{border-color:#e3e3e3;background:#eee url('../images/menu-bits.gif?ver=20100610') repeat-x scroll left -379px}.tablenav .tablenav-pages a:hover,.tablenav .tablenav-pages a:focus{color:#d54e21}.tablenav .tablenav-pages a.disabled,.tablenav .tablenav-pages a.disabled:hover,.tablenav .tablenav-pages a.disabled:focus{color:#aaa}.tablenav .tablenav-pages .current{background:#dfdfdf;border-color:#d3d3d3}#availablethemes,#availablethemes td{border-color:#ddd}#current-theme img{border-color:#999}#TB_window #TB_title a.tb-theme-preview-link,#TB_window #TB_title a.tb-theme-preview-link:visited{color:#999}#TB_window #TB_title a.tb-theme-preview-link:hover,#TB_window #TB_title a.tb-theme-preview-link:focus{color:#ccc}.misc-pub-section{border-top-color:#fff;border-bottom-color:#dfdfdf}#minor-publishing{border-bottom-color:#dfdfdf}#post-body .misc-pub-section{border-left-color:#eee}.post-com-count span{background-color:#bbb}.form-table .color-palette td{border-color:#fff}.sortable-placeholder{border-color:#bbb;background-color:#f5f5f5}#post-body ul.category-tabs li.tabs a,#post-body ul.add-menu-item-tabs li.tabs a,body.press-this ul.category-tabs li.tabs a{color:#333}.view-switch #view-switch-list{background:transparent url(../images/list.png) no-repeat 0 0}.view-switch .current #view-switch-list{background:transparent url(../images/list.png) no-repeat -40px 0}.view-switch #view-switch-excerpt{background:transparent url(../images/list.png) no-repeat -20px 0}.view-switch .current #view-switch-excerpt{background:transparent url(../images/list.png) no-repeat -60px 0}#header-logo{background:transparent url(../images/wp-logo.png?ver=20110504) no-repeat scroll center center}.popular-tags,.feature-filter{background-color:#fff;border-color:#dfdfdf}div.widgets-sortables,#widgets-left .inactive,#available-widgets .widget-holder{background-color:#fcfcfc;border-color:#dfdfdf}#available-widgets .widget-description{color:#555}.sidebar-name{color:#464646;text-shadow:#fff 0 1px 0;border-color:#dfdfdf;-moz-box-shadow:inset 0 1px 0 #fff;-webkit-box-shadow:inset 0 1px 0 #fff;box-shadow:inset 0 1px 0 #fff}.sidebar-name:hover,#removing-widget{color:#d54e21}#removing-widget span{color:black}.sidebar-name-arrow{background:transparent url(../images/arrows.png) no-repeat 5px 9px}.sidebar-name:hover .sidebar-name-arrow{background:transparent url(../images/arrows-dark.png) no-repeat 5px 9px}.in-widget-title{color:#606060}.deleting .widget-title *{color:#aaa}.imgedit-menu div{border-color:#d5d5d5;background-color:#f1f1f1}.imgedit-menu div:hover{border-color:#c1c1c1;background-color:#eaeaea}.imgedit-menu div.disabled{border-color:#ccc;background-color:#ddd;filter:alpha(opacity=50);opacity:.5}#dashboard_recent_comments div.undo{border-top-color:#dfdfdf}.comment-ays,.comment-ays th{border-color:#ddd}.comment-ays th{background-color:#f1f1f1}#menu-management .menu-edit{border-color:#dfdfdf}#post-body{background:#fff;border-top-color:#fff;border-bottom-color:#dfdfdf}#nav-menu-header{border-bottom-color:#dfdfdf}#nav-menu-footer{border-top-color:#fff}#menu-management .nav-tabs-arrow a{color:#c1c1c1}#menu-management .nav-tabs-arrow a:hover{color:#d54e21}#menu-management .nav-tabs-arrow a:active{color:#464646}#menu-management .nav-tab-active{border-color:#dfdfdf}#menu-management .nav-tab{background:#fbfbfb;border-color:#dfdfdf}.js .input-with-default-title{color:#aaa}#cancel-save{color:#f00}#cancel-save:hover{background-color:#f00;color:#fff}.list-container,.menu-item-handle{border-color:#dfdfdf}.menu li.deleting .menu-item-handle{background-color:#f66;text-shadow:#ccc}.item-type{color:#999}.item-controls .menu-item-delete:hover{color:#f00}.nav-menus-php .item-edit{background:transparent url(../images/arrows.png) no-repeat 8px 10px;border-bottom-color:#eee}.item-edit:hover{background:transparent url(../images/arrows-dark.png) no-repeat 8px 10px}.menu-item-settings{border-color:#dfdfdf}.link-to-original{color:#777;border-color:#dfdfdf}#cancel-save:hover{color:#fff!important}#update-menu-item{color:#fff!important}#update-menu-item:hover,#update-menu-item:active,#update-menu-item:focus{color:#eaf2fa!important;border-color:#13455b!important}.submitbox .submitcancel{color:#21759b;border-bottom-color:#21759b}.submitbox .submitcancel:hover{background:#21759b;color:#fff}#menu-management .nav-tab-active,.menu-item-handle,.menu-item-settings{-moz-box-shadow:inset 0 1px 0 #fff;-webkit-box-shadow:inset 0 1px 0 #fff;box-shadow:inset 0 1px 0 #fff}#menu-management .nav-tab-active{background:#f9f9f9;border-bottom-color:#f9f9f9}#upload-form label{color:#777}.about-wrap h1{color:#333;text-shadow:1px 1px 1px white}.about-text{color:#777}.wp-badge{color:#fff;text-shadow:0 -1px 0 rgba(22,57,81,0.3)}.about-wrap h2 .nav-tab{color:#21759b}.about-wrap h2 .nav-tab:hover{color:#d54e21}.about-wrap h2 .nav-tab-active,.about-wrap h2 .nav-tab-active:hover{color:#333}.about-wrap h2 .nav-tab-active{text-shadow:1px 1px 1px white;color:#464646}.about-wrap h3{color:#333;text-shadow:1px 1px 1px white}.about-wrap .feature-section h4{color:#464646}.about-wrap .feature-section img{background:#fff;border:1px #ccc solid;-moz-box-shadow:0 1px 3px rgba(0,0,0,0.3);-webkit-box-shadow:0 1px 3px rgba(0,0,0,0.3);box-shadow:0 1px 3px rgba(0,0,0,0.3)}.about-wrap h4.wp-people-group{text-shadow:1px 1px 1px white}.about-wrap .point-releases{border-bottom:1px solid #dfdfdf}.about-wrap .point-releases h3{border-top:1px solid #dfdfdf}.about-wrap .point-releases h3:first-child{border:0}.about-wrap li.wp-person img.gravatar{-moz-box-shadow:0 0 4px rgba(0,0,0,0.4);-webkit-box-shadow:0 0 4px rgba(0,0,0,0.4);box-shadow:0 0 4px rgba(0,0,0,0.4)}.about-wrap li.wp-person .title{color:#464646;text-shadow:1px 1px 1px white}.freedoms-php .about-wrap ol li{color:#999}.freedoms-php .about-wrap ol p{color:#464646}.rtl .bar{border-right-color:none;border-left-color:#99d}.rtl .post-com-count{background-image:url(../images/bubble_bg-rtl.gif)}.rtl #screen-meta-links a.show-settings{background-position:left 3px}.rtl #screen-meta-links a.show-settings.screen-meta-active{background-position:left -33px}.rtl #adminmenushadow,.rtl #adminmenuback{background-image:url(../images/menu-shadow-rtl.png);background-position:top left}.rtl #adminmenu li.wp-has-current-submenu.wp-menu-open .wp-menu-toggle,.rtl #adminmenu li.wp-has-current-submenu:hover .wp-menu-toggle{background:transparent url(../images/arrows-dark.png) no-repeat 8px 6px}.rtl #adminmenu .wp-has-submenu:hover .wp-menu-toggle,.rtl #adminmenu .wp-menu-open .wp-menu-toggle{background:transparent url(../images/arrows.png) no-repeat 8px 6px}.rtl #adminmenu .wp-submenu .wp-submenu-head{border-right-color:none;border-left-color:#dfdfdf}.rtl #adminmenu .wp-submenu-wrap,.rtl.folded #adminmenu .wp-has-current-submenu .wp-submenu-wrap{-moz-box-shadow:-2px 2px 5px rgba(0,0,0,0.4);-webkit-box-shadow:-2px 2px 5px rgba(0,0,0,0.4);box-shadow:-2px 2px 5px rgba(0,0,0,0.4)}.rtl #collapse-button div{background-position:0 -108px}.rtl.folded #collapse-button div{background-position:0 -72px}@media only screen and (max-width:900px){.rtl #adminmenu .wp-has-current-submenu .wp-submenu-wrap{-moz-box-shadow:-2px 2px 5px rgba(0,0,0,0.4);-webkit-box-shadow:-2px 2px 5px rgba(0,0,0,0.4);box-shadow:-2px 2px 5px rgba(0,0,0,0.4)}.rtl #collapse-button div{background-position:0 -72px}}.rtl .meta-box-sortables .postbox:hover .handlediv{background:transparent url(../images/arrows.png) no-repeat 6px 7px}.rtl .tablenav .tablenav-pages a{border-color:#e3e3e3;background:#eee url('../images/menu-bits-rtl.gif?ver=20100610') repeat-x scroll right -379px}.rtl #post-body .misc-pub-section{border-right-color:none;border-left-color:#eee}.rtl .sidebar-name-arrow{background:transparent url(../images/arrows.png) no-repeat 5px 9px}.rtl .sidebar-name:hover .sidebar-name-arrow{background:transparent url(../images/arrows-dark.png) no-repeat 5px 9px}
\ No newline at end of file
+/*------------------------------------------------------------------------------
+
+
+Howdy! This is the CSS file that controls the
+Gray (fresh) color style on the WordPress Dashboard.
+
+This file contains both LTR and RTL styles.
+
+
+TABLE OF CONTENTS:
+------------------
+ 1.0 - Left to Right Styles
+ 2.0 - Right to Left Styles
+
+
+------------------------------------------------------------------------------*/
+
+
+/*------------------------------------------------------------------------------
+  1.0 - Left to Right Styles
+------------------------------------------------------------------------------*/
+
+.find-box-search,
+.find-box-buttons {
+	background-color: #f7f7f7;
+	border-top: 1px solid #ddd;
+}
+
+.find-box {
+	background-color: #444;
+}
+
+.find-box-head {
+	color: #eee;
+}
+
+.find-box-inside {
+	background-color: #fff;
+}
+
+a.page-numbers:hover {
+	border-color: #999;
+}
+
+body,
+#wpbody,
+.form-table .pre,
+.ui-autocomplete li a {
+	color: #333;
+}
+
+body > #upload-menu {
+	border-bottom-color: #fff;
+}
+
+#postcustomstuff table,
+#your-profile fieldset,
+#rightnow,
+div.dashboard-widget,
+#dashboard-widgets p.dashboard-widget-links {
+	border-color: #ccc;
+}
+
+#poststuff .inside label.spam,
+#poststuff .inside label.deleted {
+	color: red;
+}
+
+#poststuff .inside label.waiting {
+	color: orange;
+}
+
+#poststuff .inside label.approved {
+	color: green;
+}
+
+#postcustomstuff table {
+	border-color: #dfdfdf;
+	background-color: #f9f9f9;
+}
+
+#postcustomstuff thead th {
+	background-color: #f1f1f1;
+}
+
+.widefat {
+	border-color: #dfdfdf;
+	background-color: #f9f9f9;
+}
+textarea.widefat {
+	background-color: #fff;
+}
+
+div.dashboard-widget-error {
+	background-color: #c43;
+}
+
+div.dashboard-widget-notice {
+	background-color: #cfe1ef;
+}
+
+div.dashboard-widget-submit {
+	border-top-color: #ccc;
+}
+
+ul.category-tabs li {
+	border-color: transparent;
+}
+
+div.tabs-panel,
+.wp-tab-panel,
+ul.add-menu-item-tabs li.tabs,
+.wp-tab-active {
+	border-color: #dfdfdf;
+	background-color: #fff;
+}
+
+ul.category-tabs li.tabs {
+	border-color: #dfdfdf #dfdfdf #fff;
+}
+
+ul.category-tabs li.tabs,
+ul.add-menu-item-tabs li.tabs,
+.wp-tab-active {
+	background-color: #fff;
+}
+
+kbd,
+code {
+	background: #eaeaea;
+}
+
+textarea,
+input[type="text"],
+input[type="password"],
+input[type="file"],
+input[type="email"],
+input[type="number"],
+input[type="search"],
+input[type="tel"],
+input[type="url"],
+select {
+	border-color: #dfdfdf;
+}
+
+textarea:focus,
+input[type="text"]:focus,
+input[type="password"]:focus,
+input[type="file"]:focus,
+input[type="email"]:focus,
+input[type="number"]:focus,
+input[type="search"]:focus,
+input[type="tel"]:focus,
+input[type="url"]:focus,
+select:focus {
+	border-color: #aaa;
+}
+
+input.disabled,
+textarea.disabled {
+	background-color: #ccc;
+}
+
+#plugin-information .action-button a,
+#plugin-information .action-button a:hover,
+#plugin-information .action-button a:visited {
+	color: #fff;
+}
+
+.widget .widget-top,
+.postbox h3,
+.stuffbox h3,
+.widefat thead tr th,
+.widefat tfoot tr th,
+h3.dashboard-widget-title,
+h3.dashboard-widget-title span,
+h3.dashboard-widget-title small,
+.sidebar-name,
+#nav-menu-header,
+#nav-menu-footer,
+.menu-item-handle {
+	background: #f1f1f1;
+	background-image: -webkit-gradient(linear, left bottom, left top, from(#ececec), to(#f9f9f9));
+	background-image: -webkit-linear-gradient(bottom, #ececec, #f9f9f9);
+	background-image:    -moz-linear-gradient(bottom, #ececec, #f9f9f9);
+	background-image:      -o-linear-gradient(bottom, #ececec, #f9f9f9);
+	background-image: linear-gradient(to top, #ececec, #f9f9f9);
+}
+
+.widget .widget-top,
+.postbox h3,
+.stuffbox h3 {
+	border-bottom-color: #dfdfdf;
+	text-shadow: #fff 0 1px 0;
+	-webkit-box-shadow: 0 1px 0 #fff;
+	box-shadow: 0 1px 0 #fff;
+}
+
+.form-table th,
+.form-wrap label {
+	color: #222;
+	text-shadow: #fff 0 1px 0;
+}
+
+.description,
+.form-wrap p {
+	color: #666;
+}
+
+strong .post-com-count span {
+	background-color: #21759b;
+}
+
+.sorthelper {
+	background-color: #ccf3fa;
+}
+
+.ac_match,
+.subsubsub a.current {
+	color: #000;
+}
+
+.wrap h2 {
+	color: #464646;
+}
+
+.wrap .add-new-h2,
+.wrap .add-new-h2:active {
+	background: #f1f1f1;
+}
+
+.subtitle {
+	color: #777;
+}
+
+.ac_over {
+	background-color: #f0f0b8;
+}
+
+.ac_results {
+	background-color: #fff;
+	border-color: #808080;
+}
+
+.ac_results li {
+	color: #101010;
+}
+
+.alternate,
+.alt {
+	background-color: #fcfcfc;
+}
+
+.available-theme a.screenshot {
+	background-color: #f1f1f1;
+	border-color: #ddd;
+}
+
+#current-theme {
+	border-bottom-color: #dfdfdf;
+}
+
+.bar {
+	background-color: #e8e8e8;
+	border-right-color: #99d;
+}
+
+#media-upload,
+#media-upload .media-item .slidetoggle {
+	background: #fff;
+}
+
+#media-upload .slidetoggle {
+	border-top-color: #dfdfdf;
+}
+
+div.error,
+.login #login_error {
+	background-color: #ffebe8;
+	border-color: #c00;
+}
+
+div.error a {
+	color: #c00;
+}
+
+.form-invalid {
+	background-color: #ffebe8 !important;
+}
+
+.form-invalid input,
+.form-invalid select {
+	border-color: #c00 !important;
+}
+
+.submit,
+#commentsdiv #add-new-comment {
+	border-color: #dfdfdf;
+}
+
+.highlight {
+	background-color: #e4f2fd;
+	color: #000;
+}
+
+.howto,
+.nonessential,
+#edit-slug-box,
+.form-input-tip,
+.subsubsub {
+	color: #666;
+}
+
+.media-upload-form label.form-help,
+td.help {
+	color: #9a9a9a;
+}
+
+.ui-autocomplete {
+	border-color: #aaa;
+	background-color: #efefef;
+}
+
+.ui-autocomplete li a.ui-state-focus {
+	background-color: #ddd;
+}
+
+.post-com-count {
+	color: #fff;
+}
+
+.post-com-count span {
+	background-color: #bbb;
+	color: #fff;
+}
+
+.post-com-count:hover span {
+	background-color: #d54e21;
+}
+
+.quicktags, .search {
+	background-color: #ccc;
+	color: #000;
+}
+
+.side-info h5 {
+	border-bottom-color: #dadada;
+}
+
+.side-info ul {
+	color: #666;
+}
+
+a:hover,
+a:active {
+	color: #d54e21;
+}
+
+a:focus {
+	color: #124964;
+}
+
+#adminmenu a:hover,
+#adminmenu li.menu-top > a:focus,
+#adminmenu .wp-submenu a:hover,
+#the-comment-list .comment a:hover,
+#rightnow a:hover,
+#media-upload a.del-link:hover,
+div.dashboard-widget-submit input:hover,
+.subsubsub a:hover,
+.subsubsub a.current:hover,
+.ui-tabs-nav a:hover,
+.plugins .inactive a:hover,
+#all-plugins-table .plugins .inactive a:hover,
+#search-plugins-table .plugins .inactive a:hover {
+	color: #d54e21;
+}
+
+#the-comment-list .comment-item,
+#dashboard-widgets #dashboard_quick_press form p.submit {
+	border-color: #dfdfdf;
+}
+
+#side-sortables .category-tabs .tabs a,
+#side-sortables .add-menu-item-tabs .tabs a,
+.wp-tab-bar .wp-tab-active a {
+	color: #333;
+}
+
+#rightnow .rbutton {
+	background-color: #ebebeb;
+	color: #264761;
+}
+
+#dashboard_right_now .table_content,
+#dashboard_right_now .table_discussion {
+	border-top-color: #ececec;
+}
+
+.submitbox .submit {
+	background-color: #464646;
+	color: #ccc;
+}
+
+.plugins a.delete:hover,
+#all-plugins-table .plugins a.delete:hover,
+#search-plugins-table .plugins a.delete:hover,
+.submitbox .submitdelete {
+	color: #f00;
+	border-bottom-color: #f00;
+}
+
+.submitbox .submitdelete:hover,
+#media-items a.delete:hover,
+#media-items a.delete-permanently:hover {
+	color: #fff;
+	background-color: #f00;
+	border-bottom-color: #f00;
+}
+
+#normal-sortables .submitbox .submitdelete:hover {
+	color: #000;
+	background-color: #f00;
+	border-bottom-color: #f00;
+}
+
+.tablenav .dots {
+	border-color: transparent;
+}
+
+.tablenav .next,
+.tablenav .prev {
+	border-color: transparent;
+	color: #21759b;
+}
+
+.tablenav .next:hover,
+.tablenav .prev:hover {
+	border-color: transparent;
+	color: #d54e21;
+}
+
+div.updated,
+.login .message {
+	background-color: #ffffe0;
+	border-color: #e6db55;
+}
+
+.update-message {
+	color: #000;
+}
+
+a.page-numbers {
+	border-bottom-color: #b8d3e2;
+}
+
+.commentlist li {
+	border-bottom-color: #ccc;
+}
+
+.widefat td,
+.widefat th {
+	border-top-color: #fff;
+	border-bottom-color: #dfdfdf;
+}
+
+.widefat th {
+	text-shadow: rgba(255,255,255,0.8) 0 1px 0;
+}
+
+.widefat td {
+	color: #555;
+}
+.widefat p,
+.widefat ol,
+.widefat ul {
+	color: #333;
+}
+
+.widefat thead tr th,
+.widefat tfoot tr th,
+h3.dashboard-widget-title,
+h3.dashboard-widget-title span,
+h3.dashboard-widget-title small {
+	color: #333;
+}
+
+th.sortable a:hover,
+th.sortable a:active,
+th.sortable a:focus {
+	color: #333;
+}
+
+th.sortable a:focus {
+	background: #e1e1e1;
+	background-image: -webkit-gradient(linear, left bottom, left top, from(#dcdcdc), to(#e9e9e9));
+	background-image: -webkit-linear-gradient(bottom, #dcdcdc, #e9e9e9);
+	background-image:    -moz-linear-gradient(bottom, #dcdcdc, #e9e9e9);
+	background-image:      -o-linear-gradient(bottom, #dcdcdc, #e9e9e9);
+	background-image: linear-gradient(to top, #dcdcdc, #e9e9e9);
+}
+
+h3.dashboard-widget-title small a {
+	color: #d7d7d7;
+}
+
+h3.dashboard-widget-title small a:hover {
+	color: #fff;
+}
+
+a,
+#adminmenu a,
+#the-comment-list p.comment-author strong a,
+#media-upload a.del-link,
+#media-items a.delete,
+#media-items a.delete-permanently,
+.plugins a.delete,
+.ui-tabs-nav a {
+	color: #21759b;
+}
+
+#adminmenu .awaiting-mod,
+#adminmenu .update-plugins,
+#sidemenu a .update-plugins,
+#rightnow .reallynow {
+	background-color: #464646;
+	color: #fff;
+	-webkit-box-shadow: rgba(255,255,255,0.5) 0 1px 0;
+	box-shadow: rgba(255,255,255,0.5) 0 1px 0;
+}
+#plugin-information .action-button {
+	background-color: #d54e21;
+	color: #fff;
+}
+
+#adminmenu li.current a .awaiting-mod,
+#adminmenu	li a.wp-has-current-submenu .update-plugins{
+	background-color: #464646;
+	color: #fff;
+	-webkit-box-shadow: rgba(255,255,255,0.5) 0 1px 0;
+	box-shadow: rgba(255,255,255,0.5) 0 1px 0;
+}
+
+div#media-upload-header,
+div#plugin-information-header {
+	background-color: #f9f9f9;
+	border-bottom-color: #dfdfdf;
+}
+
+#currenttheme img {
+	border-color: #666;
+}
+
+#dashboard_secondary div.dashboard-widget-content ul li a {
+	background-color: #f9f9f9;
+}
+
+input.readonly, textarea.readonly {
+	background-color: #ddd;
+}
+
+#editable-post-name {
+	background-color: #fffbcc;
+}
+
+#edit-slug-box strong,
+.tablenav .displaying-num,
+#submitted-on,
+.submitted-on {
+	color: #777;
+}
+
+.login #nav a,
+.login #backtoblog a {
+	color: #21759b !important;
+}
+
+.login #nav a:hover,
+.login #backtoblog a:hover {
+	color: #d54e21 !important;
+}
+
+#wpfooter {
+	color: #777;
+	border-color: #dfdfdf;
+}
+
+.imgedit-group,
+#media-items .media-item,
+.media-item .describe {
+	border-color: #dfdfdf;
+}
+
+.checkbox,
+.side-info,
+.plugins tr,
+#your-profile #rich_editing {
+	background-color: #fcfcfc;
+}
+
+.plugins .inactive,
+.plugins .inactive th,
+.plugins .inactive td,
+tr.inactive + tr.plugin-update-tr .plugin-update {
+	background-color: #f4f4f4;
+}
+
+.plugin-update-tr .update-message {
+	background-color: #fffbe4;
+	border-color: #dfdfdf;
+}
+
+.plugins .active,
+.plugins .active th,
+.plugins .active td {
+	color: #000;
+}
+
+.plugins .inactive a {
+	color: #579;
+}
+
+#the-comment-list tr.undo,
+#the-comment-list div.undo {
+	background-color: #f4f4f4;
+}
+
+#the-comment-list .unapproved {
+	background-color: #ffffe0;
+}
+
+#the-comment-list .approve a {
+	color: #006505;
+}
+
+#the-comment-list .unapprove a {
+	color: #d98500;
+}
+
+table.widefat span.delete a,
+table.widefat span.trash a,
+table.widefat span.spam a,
+#dashboard_recent_comments .delete a,
+#dashboard_recent_comments .trash a,
+#dashboard_recent_comments .spam a {
+	color: #bc0b0b;
+}
+
+.welcome-panel {
+	background: #f5f5f5;
+	background-image: -webkit-gradient(linear, left bottom, left top, from(#f5f5f5), to(#fafafa));
+	background-image: -webkit-linear-gradient(bottom, #f5f5f5, #fafafa);
+	background-image:    -moz-linear-gradient(bottom, #f5f5f5, #fafafa);
+	background-image:      -o-linear-gradient(bottom, #f5f5f5, #fafafa);
+	background-image: linear-gradient(to top, #f5f5f5, #fafafa);
+	border-color: #dfdfdf;
+}
+.welcome-panel p {
+	color: #777;
+}
+.welcome-panel-column p {
+	color: #464646;
+}
+.welcome-panel h3 {
+	text-shadow: 1px 1px 1px #fff;
+}
+
+.widget,
+#widget-list .widget-top,
+.postbox,
+#titlediv,
+#poststuff .postarea,
+.stuffbox {
+	border-color: #dfdfdf;
+	-webkit-box-shadow: inset 0 1px 0 #fff;
+	box-shadow: inset 0 1px 0 #fff;
+	-webkit-border-radius: 3px;
+	border-radius: 3px;
+}
+
+.widget,
+#widget-list .widget-top,
+.postbox,
+.menu-item-settings {
+	background: #f5f5f5;
+	background-image: -webkit-gradient(linear, left bottom, left top, from(#f5f5f5), to(#f9f9f9));
+	background-image: -webkit-linear-gradient(bottom, #f5f5f5, #f9f9f9);
+	background-image:    -moz-linear-gradient(bottom, #f5f5f5, #f9f9f9);
+	background-image:      -o-linear-gradient(bottom, #f5f5f5, #f9f9f9);
+	background-image: linear-gradient(to top, #f5f5f5, #f9f9f9);
+}
+
+.postbox h3 {
+	color: #464646;
+}
+
+.widget .widget-top {
+	color: #222;
+}
+
+.js .sidebar-name:hover h3,
+.js .postbox h3:hover {
+	color: #000;
+}
+
+.curtime #timestamp {
+	background-image: url(../images/date-button.gif);
+}
+
+#rightnow .youhave {
+	background-color: #f0f6fb;
+}
+
+#rightnow a {
+	color: #448abd;
+}
+
+.tagchecklist span a,
+#bulk-titles div a {
+	background: url(../images/xit.gif) no-repeat;
+}
+
+.tagchecklist span a:hover,
+#bulk-titles div a:hover {
+	background: url(../images/xit.gif) no-repeat -10px 0;
+}
+
+#update-nag, .update-nag {
+	background-color: #fffbcc;
+	border-color: #e6db55;
+	color: #555;
+}
+
+#screen-meta {
+	background-color: #f1f1f1;
+	border-color: #ccc;
+	-webkit-box-shadow: 0 1px 3px rgba( 0, 0, 0, 0.05 );
+	box-shadow: 0 1px 3px rgba( 0, 0, 0, 0.05 );
+}
+
+#contextual-help-back {
+	background: #fff;
+}
+
+.contextual-help-tabs a:hover {
+	color: #333;
+}
+
+#contextual-help-back,
+.contextual-help-tabs .active {
+	border-color: #ccc;
+}
+
+.contextual-help-tabs .active,
+.contextual-help-tabs .active a,
+.contextual-help-tabs .active a:hover {
+	background: #fff;
+	color: #333;
+}
+
+/* screen options and help tabs */
+#screen-options-link-wrap,
+#contextual-help-link-wrap {
+	border-right: 1px solid #ccc;
+	border-left: 1px solid #ccc;
+	border-bottom: 1px solid #ccc;
+	background: #e3e3e3;
+	background-image: -webkit-gradient(linear, left bottom, left top, from(#dfdfdf), to(#f1f1f1));
+	background-image: -webkit-linear-gradient(bottom, #dfdfdf, #f1f1f1);
+	background-image:    -moz-linear-gradient(bottom, #dfdfdf, #f1f1f1);
+	background-image:      -o-linear-gradient(bottom, #dfdfdf, #f1f1f1);
+	background-image: linear-gradient(to top, #dfdfdf, #f1f1f1);
+}
+
+#screen-meta-links a {
+	color: #777;
+	background: transparent url(../images/arrows.png) no-repeat right 4px;
+}
+
+#screen-meta-links a:hover,
+#screen-meta-links a:active {
+	color: #333;
+	background-color: transparent;
+}
+
+#screen-meta-links a.screen-meta-active {
+	background-position: right -31px;
+}
+
+/* end screen options and help tabs */
+
+.login #backtoblog a {
+	color: #464646;
+}
+
+#wphead {
+	border-bottom: #dfdfdf 1px solid;
+}
+
+#wphead h1 a {
+	color: #464646;
+}
+
+#wpfooter a:link,
+#wpfooter a:visited {
+	text-decoration: none;
+}
+
+#wpfooter a:hover {
+	text-decoration: underline;
+}
+
+.file-error,
+abbr.required,
+.widget-control-remove:hover,
+table.widefat .delete a:hover,
+table.widefat .trash a:hover,
+table.widefat .spam a:hover,
+#dashboard_recent_comments .delete a:hover,
+#dashboard_recent_comments .trash a:hover
+#dashboard_recent_comments .spam a:hover {
+	color: #f00;
+}
+
+#pass-strength-result {
+	background-color: #eee;
+	border-color: #ddd !important;
+}
+
+#pass-strength-result.bad {
+	background-color: #ffb78c;
+	border-color: #ff853c !important;
+}
+
+#pass-strength-result.good {
+	background-color: #ffec8b;
+	border-color: #fc0 !important;
+}
+
+#pass-strength-result.short {
+	background-color: #ffa0a0;
+	border-color: #f04040 !important;
+}
+
+#pass-strength-result.strong {
+	background-color: #c3ff88;
+	border-color: #8dff1c !important;
+}
+
+#post-status-info {
+	border-color: #dfdfdf #ccc #ccc;
+	background-color: #eaeaea;
+}
+
+.editwidget .widget-inside {
+	border-color: #dfdfdf;
+}
+
+#titlediv #title {
+	background-color: #fff;
+}
+
+#tTips p#tTips_inside {
+	background-color: #ddd;
+	color: #333;
+}
+
+#poststuff .inside .the-tagcloud {
+	border-color: #ddd;
+}
+
+/* menu */
+#adminmenuback,
+#adminmenuwrap {
+	background-color: #ececec;
+	border-color: #ccc;
+}
+
+#adminmenushadow,
+#adminmenuback {
+	background-image: url(../images/menu-shadow.png);
+	background-position: top right;
+	background-repeat: repeat-y;
+}
+
+#adminmenu li.wp-menu-separator {
+	background: #dfdfdf;
+	border-color: #cfcfcf;
+}
+
+#adminmenu div.separator {
+	border-color: #e1e1e1;
+}
+
+#adminmenu a.menu-top,
+#adminmenu .wp-submenu .wp-submenu-head {
+	border-top-color: #f9f9f9;
+	border-bottom-color: #dfdfdf;
+}
+
+#adminmenu li.wp-menu-open {
+	border-color: #dfdfdf;
+}
+
+#adminmenu li.menu-top:hover,
+#adminmenu li.opensub > a.menu-top,
+#adminmenu li > a.menu-top:focus {
+	background-color: #e4e4e4;
+	color: #d54e21;
+	text-shadow: 0 1px 0 rgba( 255, 255, 255, 0.4 );
+}
+
+/* So it doesn't get applied to the number spans (comments, updates, etc) */
+#adminmenu li.menu-top:hover > a span,
+#adminmenu li.menu-top > a:focus span {
+	text-shadow: none;
+}
+
+#adminmenu li.wp-has-current-submenu a.wp-has-current-submenu,
+#adminmenu li.current a.menu-top,
+.folded #adminmenu li.wp-has-current-submenu,
+.folded #adminmenu li.current.menu-top,
+#adminmenu .wp-menu-arrow,
+#adminmenu .wp-has-current-submenu .wp-submenu .wp-submenu-head {
+	background: #777;
+	background-image: -webkit-gradient(linear, left bottom, left top, from(#6d6d6d), to(#808080));
+	background-image: -webkit-linear-gradient(bottom, #6d6d6d, #808080);
+	background-image:    -moz-linear-gradient(bottom, #6d6d6d, #808080);
+	background-image:      -o-linear-gradient(bottom, #6d6d6d, #808080);
+	background-image: linear-gradient(to top, #6d6d6d, #808080);
+}
+
+#adminmenu .wp-menu-arrow div {
+	background: #777;
+	background-image: -webkit-gradient(linear, right bottom, left top, from(#6d6d6d), to(#808080));
+	background-image: -webkit-linear-gradient(bottom right, #6d6d6d, #808080);
+	background-image:    -moz-linear-gradient(bottom right, #6d6d6d, #808080);
+	background-image:      -o-linear-gradient(bottom right, #6d6d6d, #808080);
+	background-image: linear-gradient(to top left, #6d6d6d, #808080);
+}
+
+#adminmenu li.wp-not-current-submenu .wp-menu-arrow {
+	border-top-color: #f9f9f9;
+	border-bottom-color: #dfdfdf;
+	background: #e4e4e4;
+}
+
+#adminmenu li.wp-not-current-submenu .wp-menu-arrow div {
+	background: #e4e4e4;
+	border-color: #ccc;
+}
+
+.folded #adminmenu li.menu-top li:hover a {
+	background-image: none;
+}
+
+#adminmenu li.wp-has-current-submenu a.wp-has-current-submenu,
+#adminmenu li.current a.menu-top,
+#adminmenu .wp-has-current-submenu .wp-submenu .wp-submenu-head {
+	text-shadow: 0 -1px 0 #333;
+	color: #fff;
+	border-top-color: #808080;
+	border-bottom-color: #6d6d6d;
+}
+
+.folded #adminmenu li.wp-has-current-submenu,
+.folded #adminmenu li.current.menu-top {
+	border-top-color: #808080;
+	border-bottom-color: #6d6d6d;
+}
+
+#adminmenu .wp-submenu a:hover,
+#adminmenu .wp-submenu a:focus {
+	background-color: #eaf2fa;
+	color: #333;
+}
+
+#adminmenu .wp-submenu li.current,
+#adminmenu .wp-submenu li.current a,
+#adminmenu .wp-submenu li.current a:hover {
+	color: #333;
+}
+
+#adminmenu .wp-submenu,
+.folded #adminmenu a.wp-has-current-submenu:focus + .wp-submenu,
+.folded #adminmenu .wp-has-current-submenu .wp-submenu {
+	background-color: #fff;
+	border-color: #dfdfdf;
+	-webkit-box-shadow: 2px 3px 6px rgba(0, 0, 0, 0.4);
+	box-shadow: 2px 3px 6px rgba(0, 0, 0, 0.4);
+}
+
+#adminmenu .wp-submenu .wp-submenu-head {
+	background-color: #e4e4e4;
+	color: #333;
+}
+
+/* collapse menu button */
+#collapse-menu {
+	color: #aaa;
+	border-top-color: #f9f9f9;
+}
+
+#collapse-menu:hover {
+	color: #999;
+}
+
+#collapse-button {
+	border-color: #ccc;
+	background: #f4f4f4;
+	background-image: -webkit-gradient(linear, left bottom, left top, from(#dfdfdf), to(#fff));
+	background-image: -webkit-linear-gradient(bottom, #dfdfdf, #fff);
+	background-image:    -moz-linear-gradient(bottom, #dfdfdf, #fff);
+	background-image:      -o-linear-gradient(bottom, #dfdfdf, #fff);
+	background-image: linear-gradient(to top, #dfdfdf, #fff);
+}
+
+#collapse-menu:hover #collapse-button {
+	border-color: #aaa;
+}
+
+#collapse-button div {
+	background: transparent url(../images/arrows.png) no-repeat 0 -72px;
+}
+
+.folded #collapse-button div {
+	background-position: 0 -108px;
+}
+
+/* Auto-folding of the admin menu */
+@media only screen and (max-width: 900px) {
+	.auto-fold #adminmenu li.wp-has-current-submenu,
+	.auto-fold #adminmenu li.current.menu-top {
+		background-color: #777;
+		background-image: -webkit-gradient(linear, left bottom, left top, from(#6d6d6d), to(#808080));
+		background-image: -webkit-linear-gradient(bottom, #6d6d6d, #808080);
+		background-image: -moz-linear-gradient(bottom, #6d6d6d, #808080);
+		background-image: -o-linear-gradient(bottom, #6d6d6d, #808080);
+		background-image: linear-gradient(bottom, #6d6d6d, #808080);
+	}
+
+	.auto-fold #adminmenu li.wp-has-current-submenu,
+	.auto-fold #adminmenu li.current.menu-top {
+		border-top-color: #808080;
+		border-bottom-color: #6d6d6d;
+	}
+
+	.auto-fold #adminmenu a.wp-has-current-submenu:focus + .wp-submenu,
+	.auto-fold #adminmenu .wp-has-current-submenu .wp-submenu {
+		background-color: #fff;
+		border-color: #dfdfdf;
+		-webkit-box-shadow: 2px 3px 6px rgba(0, 0, 0, 0.4);
+		box-shadow: 2px 3px 6px rgba(0, 0, 0, 0.4);
+	}
+
+	.auto-fold #collapse-button div {
+		background-position: 0 -108px;
+	}
+}
+
+/* menu and screen icons */
+.icon16,
+.icon32,
+div.wp-menu-image {
+	background-color: transparent;
+	background-repeat: no-repeat;
+}
+
+.icon16.icon-dashboard,
+.menu-icon-dashboard div.wp-menu-image,
+.icon16.icon-post,
+.menu-icon-post div.wp-menu-image,
+.icon16.icon-media,
+.menu-icon-media div.wp-menu-image,
+.icon16.icon-links,
+.menu-icon-links div.wp-menu-image,
+.icon16.icon-page,
+.menu-icon-page div.wp-menu-image,
+.icon16.icon-comments,
+.menu-icon-comments div.wp-menu-image,
+.icon16.icon-appearance,
+.menu-icon-appearance div.wp-menu-image,
+.icon16.icon-plugins,
+.menu-icon-plugins div.wp-menu-image,
+.icon16.icon-users,
+.menu-icon-users div.wp-menu-image,
+.icon16.icon-tools,
+.menu-icon-tools div.wp-menu-image,
+.icon16.icon-settings,
+.menu-icon-settings div.wp-menu-image,
+.icon16.icon-site,
+.menu-icon-site div.wp-menu-image,
+.icon16.icon-generic,
+.menu-icon-generic div.wp-menu-image {
+	background-image: url(../images/menu.png?ver=20121105);
+}
+
+.icon16.icon-dashboard,
+#adminmenu .menu-icon-dashboard div.wp-menu-image {
+	background-position: -59px -33px;
+}
+
+#adminmenu .menu-icon-dashboard:hover div.wp-menu-image,
+#adminmenu .menu-icon-dashboard.wp-has-current-submenu div.wp-menu-image,
+#adminmenu .menu-icon-dashboard.current div.wp-menu-image {
+	background-position: -59px -1px;
+}
+
+.icon16.icon-post,
+#adminmenu .menu-icon-post div.wp-menu-image {
+	background-position: -269px -33px;
+}
+
+#adminmenu .menu-icon-post:hover div.wp-menu-image,
+#adminmenu .menu-icon-post.wp-has-current-submenu div.wp-menu-image,
+#adminmenu .menu-icon-post.current div.wp-menu-image {
+	background-position: -269px -1px;
+}
+
+.icon16.icon-media,
+#adminmenu .menu-icon-media div.wp-menu-image {
+	background-position: -119px -33px;
+}
+
+#adminmenu .menu-icon-media:hover div.wp-menu-image,
+#adminmenu .menu-icon-media.wp-has-current-submenu div.wp-menu-image,
+#adminmenu .menu-icon-media.current div.wp-menu-image {
+	background-position: -119px -1px;
+}
+
+.icon16.icon-links,
+#adminmenu .menu-icon-links div.wp-menu-image {
+	background-position: -89px -33px;
+}
+
+#adminmenu .menu-icon-links:hover div.wp-menu-image,
+#adminmenu .menu-icon-links.wp-has-current-submenu div.wp-menu-image,
+#adminmenu .menu-icon-links.current div.wp-menu-image {
+	background-position: -89px -1px;
+}
+
+.icon16.icon-page,
+#adminmenu .menu-icon-page div.wp-menu-image {
+	background-position: -149px -33px;
+}
+
+#adminmenu .menu-icon-page:hover div.wp-menu-image,
+#adminmenu .menu-icon-page.wp-has-current-submenu div.wp-menu-image,
+#adminmenu .menu-icon-page.current div.wp-menu-image {
+	background-position: -149px -1px;
+}
+
+.icon16.icon-comments,
+#adminmenu .menu-icon-comments div.wp-menu-image {
+	background-position: -29px -33px;
+}
+
+#adminmenu .menu-icon-comments:hover div.wp-menu-image,
+#adminmenu .menu-icon-comments.wp-has-current-submenu div.wp-menu-image,
+#adminmenu .menu-icon-comments.current div.wp-menu-image {
+	background-position: -29px -1px;
+}
+
+.icon16.icon-appearance,
+#adminmenu .menu-icon-appearance div.wp-menu-image {
+	background-position: 1px -33px;
+}
+
+#adminmenu .menu-icon-appearance:hover div.wp-menu-image,
+#adminmenu .menu-icon-appearance.wp-has-current-submenu div.wp-menu-image,
+#adminmenu .menu-icon-appearance.current div.wp-menu-image {
+	background-position: 1px -1px;
+}
+
+.icon16.icon-plugins,
+#adminmenu .menu-icon-plugins div.wp-menu-image {
+	background-position: -179px -33px;
+}
+
+#adminmenu .menu-icon-plugins:hover div.wp-menu-image,
+#adminmenu .menu-icon-plugins.wp-has-current-submenu div.wp-menu-image,
+#adminmenu .menu-icon-plugins.current div.wp-menu-image {
+	background-position: -179px -1px;
+}
+
+.icon16.icon-users,
+#adminmenu .menu-icon-users div.wp-menu-image {
+	background-position: -300px -33px;
+}
+
+#adminmenu .menu-icon-users:hover div.wp-menu-image,
+#adminmenu .menu-icon-users.wp-has-current-submenu div.wp-menu-image,
+#adminmenu .menu-icon-users.current div.wp-menu-image {
+	background-position: -300px -1px;
+}
+
+.icon16.icon-tools,
+#adminmenu .menu-icon-tools div.wp-menu-image {
+	background-position: -209px -33px;
+}
+
+#adminmenu .menu-icon-tools:hover div.wp-menu-image,
+#adminmenu .menu-icon-tools.wp-has-current-submenu div.wp-menu-image,
+#adminmenu .menu-icon-tools.current div.wp-menu-image {
+	background-position: -209px -1px;
+}
+
+.icon16.icon-settings,
+#adminmenu .menu-icon-settings div.wp-menu-image {
+	background-position: -239px -33px;
+}
+
+#adminmenu .menu-icon-settings:hover div.wp-menu-image,
+#adminmenu .menu-icon-settings.wp-has-current-submenu div.wp-menu-image,
+#adminmenu .menu-icon-settings.current div.wp-menu-image {
+	background-position: -239px -1px;
+}
+
+.icon16.icon-site,
+#adminmenu .menu-icon-site div.wp-menu-image {
+	background-position: -359px -33px;
+}
+
+#adminmenu .menu-icon-site:hover div.wp-menu-image,
+#adminmenu .menu-icon-site.wp-has-current-submenu div.wp-menu-image,
+#adminmenu .menu-icon-site.current div.wp-menu-image {
+	background-position: -359px -1px;
+}
+
+.icon16.icon-generic,
+#adminmenu .menu-icon-generic div.wp-menu-image {
+	background-position: -330px -33px;
+}
+
+#adminmenu .menu-icon-generic:hover div.wp-menu-image,
+#adminmenu .menu-icon-generic.wp-has-current-submenu div.wp-menu-image,
+#adminmenu .menu-icon-generic.current div.wp-menu-image {
+	background-position: -330px -1px;
+}
+
+/* end menu and screen icons */
+
+/* Screen Icons */
+.icon32.icon-post,
+#icon-edit,
+#icon-post,
+.icon32.icon-dashboard,
+#icon-index,
+.icon32.icon-media,
+#icon-upload,
+.icon32.icon-links,
+#icon-link-manager,
+#icon-link,
+#icon-link-category,
+.icon32.icon-page,
+#icon-edit-pages,
+#icon-page,
+.icon32.icon-comments,
+#icon-edit-comments,
+.icon32.icon-appearance,
+#icon-themes,
+.icon32.icon-plugins,
+#icon-plugins,
+.icon32.icon-users,
+#icon-users,
+#icon-profile,
+#icon-user-edit,
+.icon32.icon-tools,
+#icon-tools,
+#icon-admin,
+.icon32.icon-settings,
+#icon-options-general,
+.icon32.icon-site,
+#icon-ms-admin,
+.icon32.icon-generic,
+#icon-generic {
+	background-image: url(../images/icons32.png?ver=20121105);
+}
+
+.icon32.icon-post,
+#icon-edit,
+#icon-post {
+	background-position: -552px -5px;
+}
+
+.icon32.icon-dashboard,
+#icon-index {
+	background-position: -137px -5px;
+}
+
+.icon32.icon-media,
+#icon-upload {
+	background-position: -251px -5px;
+}
+
+.icon32.icon-links,
+#icon-link-manager,
+#icon-link,
+#icon-link-category {
+	background-position: -190px -5px;
+}
+
+.icon32.icon-page,
+#icon-edit-pages,
+#icon-page {
+	background-position: -312px -5px;
+}
+
+.icon32.icon-comments,
+#icon-edit-comments {
+	background-position: -72px -5px;
+}
+
+.icon32.icon-appearance,
+#icon-themes {
+	background-position: -11px -5px;
+}
+
+.icon32.icon-plugins,
+#icon-plugins {
+	background-position: -370px -5px;
+}
+
+.icon32.icon-users,
+#icon-users,
+#icon-profile,
+#icon-user-edit {
+	background-position: -600px -5px;
+}
+
+.icon32.icon-tools,
+#icon-tools,
+#icon-admin {
+	background-position: -432px -5px;
+}
+
+.icon32.icon-settings,
+#icon-options-general {
+	background-position: -492px -5px;
+}
+
+.icon32.icon-site,
+#icon-ms-admin {
+	background-position: -659px -5px;
+}
+
+.icon32.icon-generic,
+#icon-generic {
+	background-position: -708px -5px;
+}
+
+/* end screen icons */
+
+/* Diff */
+table.diff .diff-deletedline {
+	background-color: #fdd;
+}
+
+table.diff .diff-deletedline del {
+	background-color: #f99;
+}
+
+table.diff .diff-addedline {
+	background-color: #dfd;
+}
+
+table.diff .diff-addedline ins {
+	background-color: #9f9;
+}
+
+#att-info {
+	background-color: #e4f2Fd;
+}
+
+/* edit image */
+#sidemenu a {
+	background-color: #f9f9f9;
+	border-color: #f9f9f9;
+	border-bottom-color: #dfdfdf;
+}
+
+#sidemenu a.current {
+	background-color: #fff;
+	border-color: #dfdfdf #dfdfdf #fff;
+	color: #d54e21;
+}
+
+#replyerror {
+	border-color: #ddd;
+	background-color: #f9f9f9;
+}
+
+/* table vim shortcuts */
+.vim-current,
+.vim-current th,
+.vim-current td {
+	background-color: #E4F2FD !important;
+}
+
+/* Install Plugins */
+#plugin-information .fyi ul {
+	background-color: #eaf3fa;
+}
+
+#plugin-information .fyi h2.mainheader {
+	background-color: #cee1ef;
+}
+
+#plugin-information pre,
+#plugin-information code {
+	background-color: #ededff;
+}
+
+#plugin-information pre {
+	border: 1px solid #ccc;
+}
+
+/* inline editor */
+#bulk-titles {
+	border-color: #ddd;
+}
+
+.inline-editor div.title {
+	background-color: #eaf3fa;
+}
+
+.inline-editor ul.cat-checklist {
+	background-color: #fff;
+	border-color: #ddd;
+}
+
+.inline-editor .categories .catshow,
+.inline-editor .categories .cathide {
+	color: #21759b;
+}
+
+.inline-editor .quick-edit-save {
+	background-color: #f1f1f1;
+}
+
+fieldset.inline-edit-col-right .inline-edit-col {
+	border-color: #dfdfdf;
+}
+
+.attention {
+	color: #d54e21;
+}
+
+.js .meta-box-sortables .postbox:hover .handlediv {
+	background: transparent url(../images/arrows.png) no-repeat 6px 7px;
+}
+
+.tablenav .tablenav-pages {
+	color: #555;
+}
+
+.tablenav .tablenav-pages a {
+	border-color: #e3e3e3;
+	background: #eee;
+	-moz-box-shadow:    inset 0 1px 0 #fff;
+	-webkit-box-shadow: inset 0 1px 0 #fff;
+	box-shadow:         inset 0 1px 0 #fff;
+}
+
+.tablenav .tablenav-pages a:hover,
+.tablenav .tablenav-pages a:focus {
+	color: #d54e21;
+}
+
+.tablenav .tablenav-pages a.disabled,
+.tablenav .tablenav-pages a.disabled:hover,
+.tablenav .tablenav-pages a.disabled:focus {
+	color: #aaa;
+}
+
+.tablenav .tablenav-pages .current {
+	background: #dfdfdf;
+	border-color: #d3d3d3;
+}
+
+#availablethemes,
+#availablethemes td {
+	border-color: #ddd;
+}
+
+#current-theme img {
+	border-color: #999;
+}
+
+#TB_window #TB_title a.tb-theme-preview-link,
+#TB_window #TB_title a.tb-theme-preview-link:visited {
+	color: #999;
+}
+
+#TB_window #TB_title a.tb-theme-preview-link:hover,
+#TB_window #TB_title a.tb-theme-preview-link:focus {
+	color: #ccc;
+}
+
+.misc-pub-section {
+	border-top-color: #fff;
+	border-bottom-color: #dfdfdf;
+}
+
+#minor-publishing {
+	border-bottom-color: #dfdfdf;
+}
+
+#post-body .misc-pub-section {
+	border-left-color: #eee;
+}
+
+.post-com-count span {
+	background-color: #bbb;
+}
+
+.form-table .color-palette td {
+	border-color: #fff;
+}
+
+.sortable-placeholder {
+	border-color: #bbb;
+	background-color: #f5f5f5;
+}
+
+#post-body ul.category-tabs li.tabs a,
+#post-body ul.add-menu-item-tabs li.tabs a,
+body.press-this ul.category-tabs li.tabs a {
+	color: #333;
+}
+
+.view-switch #view-switch-list,
+.view-switch #view-switch-excerpt {
+	background-color: transparent;
+	background-image: url('../images/list.png');
+	background-repeat: no-repeat;
+}
+
+.view-switch #view-switch-list {
+	background-position: 0 0;
+}
+
+.view-switch .current #view-switch-list {
+	background-position: -40px 0;
+}
+
+.view-switch #view-switch-excerpt {
+	background-position: -20px 0;
+}
+
+.view-switch .current #view-switch-excerpt {
+	background-position: -60px 0;
+}
+
+#header-logo {
+	background: transparent url(../images/wp-logo.png?ver=20110504) no-repeat scroll center center;
+}
+
+.popular-tags,
+.feature-filter {
+	background-color: #fff;
+	border-color: #dfdfdf;
+}
+
+div.widgets-sortables,
+#widgets-left .inactive,
+#available-widgets .widget-holder {
+	background-color: #fcfcfc;
+	border-color: #dfdfdf;
+}
+
+#available-widgets .widget-description {
+	color: #555;
+}
+
+.sidebar-name {
+	color: #464646;
+	text-shadow: #fff 0 1px 0;
+	border-color: #dfdfdf;
+	-webkit-box-shadow: inset 0 1px 0 #fff;
+	box-shadow: inset 0 1px 0 #fff;
+}
+
+.js .sidebar-name:hover,
+.js #removing-widget {
+	color: #d54e21;
+}
+
+#removing-widget span {
+	color: black;
+}
+
+.js .sidebar-name-arrow {
+	background: transparent url(../images/arrows.png) no-repeat 5px 9px;
+}
+
+.js .sidebar-name:hover .sidebar-name-arrow {
+	background: transparent url(../images/arrows-dark.png) no-repeat 5px 9px;
+}
+
+.in-widget-title {
+	color: #606060;
+}
+
+.deleting .widget-title * {
+	color: #aaa;
+}
+
+.imgedit-menu div {
+	border-color: #d5d5d5;
+	background-color: #f1f1f1;
+}
+
+.imgedit-menu div:hover {
+	border-color: #c1c1c1;
+	background-color: #eaeaea;
+}
+
+.imgedit-menu div.disabled {
+	border-color: #ccc;
+	background-color: #ddd;
+	filter: alpha(opacity=50);
+	opacity: 0.5;
+}
+
+#dashboard_recent_comments div.undo {
+	border-top-color: #dfdfdf;
+}
+
+.comment-ays,
+.comment-ays th {
+	border-color: #ddd;
+}
+
+.comment-ays th {
+	background-color: #f1f1f1;
+}
+
+/* added from nav-menu.css */
+#menu-management .menu-edit {
+	border-color: #dfdfdf;
+}
+
+#post-body {
+	background: #fff;
+	border-top-color: #fff;
+	border-bottom-color: #dfdfdf;
+}
+
+#nav-menu-header {
+	border-bottom-color: #dfdfdf;
+}
+
+#nav-menu-footer {
+	border-top-color: #fff;
+}
+
+#menu-management .nav-tabs-arrow a {
+	color: #c1c1c1;
+}
+
+#menu-management .nav-tabs-arrow a:hover {
+	color: #d54e21;
+}
+
+#menu-management .nav-tabs-arrow a:active {
+	color: #464646;
+}
+
+#menu-management .nav-tab-active {
+	border-color: #dfdfdf;
+}
+
+#menu-management .nav-tab {
+	background: #fbfbfb;
+	border-color: #dfdfdf;
+}
+
+.js .input-with-default-title {
+	color: #aaa;
+}
+
+#cancel-save {
+	color: #f00;
+}
+
+#cancel-save:hover {
+	background-color: #f00;
+	color: #fff;
+}
+
+.list-container,
+.menu-item-handle {
+	border-color: #dfdfdf;
+}
+
+.menu li.deleting .menu-item-handle {
+	background-color: #f66;
+	text-shadow: #ccc;
+}
+
+.item-type { /* Menu item controls */
+	color: #999;
+}
+
+.item-controls .menu-item-delete:hover {
+	color: #f00;
+}
+
+.nav-menus-php .item-edit {
+	background: transparent url(../images/arrows.png) no-repeat 8px 10px;
+	border-bottom-color: #eee;
+}
+
+.nav-menus-php .item-edit:hover {
+	background: transparent url(../images/arrows-dark.png) no-repeat 8px 10px;
+}
+
+.menu-item-settings { /* Menu editing */
+	border-color: #dfdfdf;
+}
+
+.link-to-original {
+	color: #777;
+	border-color: #dfdfdf;
+}
+
+#cancel-save:hover {
+	color: #fff !important;
+}
+
+#update-menu-item {
+	color: #fff !important;
+}
+
+#update-menu-item:hover,
+#update-menu-item:active,
+#update-menu-item:focus {
+	color: #eaf2fa !important;
+	border-color: #13455b !important;
+}
+
+.submitbox .submitcancel {
+	color: #21759b;
+	border-bottom-color: #21759b;
+}
+
+.submitbox .submitcancel:hover {
+	background: #21759b;
+	color: #fff;
+}
+/* end added from nav-menu.css */
+
+.nav-tab {
+	border-color: #dfdfdf #dfdfdf #fff;
+}
+
+.nav-tab:hover,
+.nav-tab-active {
+	border-color: #ccc #ccc #fff;
+}
+
+h2.nav-tab-wrapper, h3.nav-tab-wrapper {
+	border-bottom-color: #ccc;
+}
+
+#menu-management .nav-tab-active,
+.menu-item-handle,
+.menu-item-settings {
+	-webkit-box-shadow: inset 0 1px 0 #fff;
+	box-shadow: inset 0 1px 0 #fff;
+}
+
+#menu-management .nav-tab-active {
+	background: #f9f9f9;
+	border-bottom-color: #f9f9f9;
+}
+
+#upload-form label {
+	color: #777;
+}
+
+/* Begin About Pages */
+
+.about-wrap h1 {
+	color: #333;
+	text-shadow: 1px 1px 1px #fff;
+}
+
+.about-text {
+	color: #777;
+}
+
+.wp-badge {
+	color: #fff;
+	text-shadow: 0 -1px 0 rgba(22, 57, 81, 0.3);
+}
+
+.about-wrap h2 .nav-tab {
+	color: #21759b;
+}
+
+.about-wrap h2 .nav-tab:hover {
+	color: #d54e21;
+}
+
+.about-wrap h2 .nav-tab-active,
+.about-wrap h2 .nav-tab-active:hover {
+	color: #333;
+}
+
+.about-wrap h2 .nav-tab-active {
+	text-shadow: 1px 1px 1px #fff;
+	color: #464646;
+}
+
+.about-wrap h3 {
+	color: #333;
+	text-shadow: 1px 1px 1px #fff;
+}
+
+.about-wrap .feature-section h4 {
+	color: #464646;
+}
+
+.about-wrap .feature-section img {
+	background: #fff;
+	border: 1px #ccc solid;
+	-webkit-box-shadow: 0 1px 3px rgba( 0, 0, 0, 0.3 );
+	box-shadow:         0 1px 3px rgba( 0, 0, 0, 0.3 );
+}
+
+.about-wrap h4.wp-people-group {
+	text-shadow: 1px 1px 1px #fff;
+}
+
+.about-wrap .point-releases {
+	border-bottom: 1px solid #dfdfdf;
+}
+
+.about-wrap .point-releases h3 {
+	border-top: 1px solid #dfdfdf;
+}
+
+.about-wrap .point-releases h3:first-child {
+	border: 0;
+}
+
+.about-wrap li.wp-person img.gravatar {
+	-webkit-box-shadow: 0 0 4px rgba( 0, 0, 0, 0.4 );
+	box-shadow: 0 0 4px rgba( 0, 0, 0, 0.4 );
+}
+
+.about-wrap li.wp-person .title {
+	color: #464646;
+	text-shadow: 1px 1px 1px #fff;
+}
+
+.freedoms-php .about-wrap ol li {
+	color: #999;
+}
+
+.freedoms-php .about-wrap ol p {
+	color: #464646;
+}
+
+/* End About Pages */
+
+
+/*------------------------------------------------------------------------------
+  2.0 - Right to Left Styles
+------------------------------------------------------------------------------*/
+
+.rtl .bar {
+	border-right-color: transparent;
+	border-left-color: #99d;
+}
+
+.rtl #screen-meta-links a.show-settings {
+	background-position: left 3px;
+}
+
+.rtl #screen-meta-links a.show-settings.screen-meta-active {
+	background-position: left -33px;
+}
+
+/* Menu */
+.rtl #adminmenushadow,
+.rtl #adminmenuback {
+	background-image: url(../images/menu-shadow-rtl.png);
+	background-position: top left;
+}
+
+.rtl #adminmenu .wp-submenu .wp-submenu-head {
+	border-right-color: transparent;
+	border-left-color: #dfdfdf;
+}
+
+.rtl #adminmenu .wp-submenu,
+.rtl.folded #adminmenu .wp-has-current-submenu .wp-submenu {
+	-webkit-box-shadow: -2px 2px 5px rgba( 0, 0, 0, 0.4 );
+	box-shadow: -2px 2px 5px rgba( 0, 0, 0, 0.4 );
+}
+
+.rtl #adminmenu .wp-has-current-submenu .wp-submenu {
+	-webkit-box-shadow: none;
+	box-shadow: none;
+}
+
+/* Collapse Menu Button */
+.rtl #collapse-button div {
+	background-position: 0 -108px;
+}
+
+.rtl.folded #collapse-button div {
+	background-position: 0 -72px;
+}
+
+/* Auto-folding of the admin menu for RTL */
+@media only screen and (max-width: 900px) {
+	.rtl.auto-fold #adminmenu a.wp-has-current-submenu:focus + .wp-submenu,
+	.rtl.auto-fold #adminmenu .wp-has-current-submenu .wp-submenu {
+		-webkit-box-shadow: -2px 2px 5px rgba( 0, 0, 0, 0.4 );
+		box-shadow: -2px 2px 5px rgba( 0, 0, 0, 0.4 );
+	}
+
+	.rtl.auto-fold #collapse-button div {
+		background-position: 0 -72px;
+	}
+}
+
+/* Edit Image */
+.js.rtl .meta-box-sortables .postbox:hover .handlediv {
+	background: transparent url(../images/arrows.png) no-repeat 6px 7px;
+}
+
+.rtl #post-body .misc-pub-section {
+	border-right-color: transparent;
+	border-left-color: #eee;
+}
+
+.js.rtl .sidebar-name-arrow {
+	background: transparent url(../images/arrows.png) no-repeat 5px 9px;
+}
+
+.js.rtl .sidebar-name:hover .sidebar-name-arrow {
+	background: transparent url(../images/arrows-dark.png) no-repeat 5px 9px;
+}
+
+/**
+ * HiDPI Displays
+ */
+@media print,
+  (-o-min-device-pixel-ratio: 5/4),
+  (-webkit-min-device-pixel-ratio: 1.25),
+  (min-resolution: 120dpi) {
+
+	.curtime #timestamp {
+		background-image: url("../images/date-button-2x.gif?ver=20120916");
+		background-size: 16px auto;
+	}
+
+	.tagchecklist span a,
+	#bulk-titles div a,
+	.tagchecklist span a:hover,
+	#bulk-titles div a:hover {
+		background-image: url("../images/xit-2x.gif?ver=20120916");
+		background-size: 20px auto;
+	}
+
+	#screen-meta-links a.show-settings,
+	#screen-meta-links a.show-settings.screen-meta-active,
+	#adminmenu .wp-has-submenu:hover .wp-menu-toggle,
+	#adminmenu .wp-menu-open .wp-menu-toggle,
+	#collapse-button div,
+	.nav-menus-php .item-edit,
+	.js .meta-box-sortables .postbox:hover .handlediv,
+	.sidebar-name-arrow,
+	.rtl #adminmenu .wp-has-submenu:hover .wp-menu-toggle,
+	.rtl #adminmenu .wp-menu-open .wp-menu-toggle,
+	.js.rtl .meta-box-sortables .postbox:hover .handlediv,
+	.rtl .sidebar-name-arrow {
+		background-image: url("../images/arrows-2x.png?ver=20120916");
+		background-size: 15px 123px;
+	}
+
+	#adminmenu li.wp-has-current-submenu.wp-menu-open .wp-menu-toggle,
+	#adminmenu li.wp-has-current-submenu:hover .wp-menu-toggle,
+	.sidebar-name:hover .sidebar-name-arrow,
+	.nav-menus-php .item-edit:hover,
+	.rtl #adminmenu li.wp-has-current-submenu.wp-menu-open .wp-menu-toggle,
+	.rtl #adminmenu li.wp-has-current-submenu:hover .wp-menu-toggle,
+	.rtl .sidebar-name:hover .sidebar-name-arrow {
+		background-image: url("../images/arrows-dark-2x.png?ver=20120916");
+		background-size: 15px 123px;
+	}
+
+	.view-switch #view-switch-list,
+	.view-switch #view-switch-excerpt {
+		background-image: url("../images/list-2x.png?ver=20120916");
+		background-size: 80px 20px;
+	}
+
+	.icon32.icon-post,
+	#icon-edit,
+	#icon-post,
+	.icon32.icon-dashboard,
+	#icon-index,
+	.icon32.icon-media,
+	#icon-upload,
+	.icon32.icon-links,
+	#icon-link-manager,
+	#icon-link,
+	#icon-link-category,
+	.icon32.icon-page,
+	#icon-edit-pages,
+	#icon-page,
+	.icon32.icon-comments,
+	#icon-edit-comments,
+	.icon32.icon-appearance,
+	#icon-themes,
+	.icon32.icon-plugins,
+	#icon-plugins,
+	.icon32.icon-users,
+	#icon-users,
+	#icon-profile,
+	#icon-user-edit,
+	.icon32.icon-tools,
+	#icon-tools,
+	#icon-admin,
+	.icon32.icon-settings,
+	#icon-options-general,
+	.icon32.icon-site,
+	#icon-ms-admin,
+	.icon32.icon-generic,
+	#icon-generic {
+		background-image: url(../images/icons32-2x.png?ver=20121105);
+		background-size: 756px 45px;
+	}
+
+	.icon16.icon-dashboard,
+	.menu-icon-dashboard div.wp-menu-image,
+	.icon16.icon-post,
+	.menu-icon-post div.wp-menu-image,
+	.icon16.icon-media,
+	.menu-icon-media div.wp-menu-image,
+	.icon16.icon-links,
+	.menu-icon-links div.wp-menu-image,
+	.icon16.icon-page,
+	.menu-icon-page div.wp-menu-image,
+	.icon16.icon-comments,
+	.menu-icon-comments div.wp-menu-image,
+	.icon16.icon-appearance,
+	.menu-icon-appearance div.wp-menu-image,
+	.icon16.icon-plugins,
+	.menu-icon-plugins div.wp-menu-image,
+	.icon16.icon-users,
+	.menu-icon-users div.wp-menu-image,
+	.icon16.icon-tools,
+	.menu-icon-tools div.wp-menu-image,
+	.icon16.icon-settings,
+	.menu-icon-settings div.wp-menu-image,
+	.icon16.icon-site,
+	.menu-icon-site div.wp-menu-image,
+	.icon16.icon-generic,
+	.menu-icon-generic div.wp-menu-image {
+		background-image: url('../images/menu-2x.png?ver=20121105');
+		background-size: 390px 64px;
+	}
+
+	#header-logo {
+		background-image: url('../images/wp-logo-2x.png?ver=20120916');
+		background-size: 16px auto;
+	}
+
+}
--- a/web/wp-admin/css/colors-fresh.dev.css	Wed Dec 19 12:35:13 2012 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,2086 +0,0 @@
-/*------------------------------------------------------------------------------
-
-
-Howdy! This is the CSS file that controls the
-Gray (fresh) color style on the WordPress Dashboard.
-
-This file contains both LTR and RTL styles.
-
-
-TABLE OF CONTENTS:
-------------------
- 1.0 - Left to Right Styles
- 2.0 - Right to Left Styles
-
-
-------------------------------------------------------------------------------*/
-
-
-/*------------------------------------------------------------------------------
-  1.0 - Left to Right Styles
-------------------------------------------------------------------------------*/
-
-html,
-.wp-dialog {
-	background-color: #fff;
-}
-
-textarea,
-input[type="text"],
-input[type="password"],
-input[type="file"],
-input[type="button"],
-input[type="submit"],
-input[type="reset"],
-input[type="email"],
-input[type="number"],
-input[type="search"],
-input[type="tel"],
-input[type="url"],
-select {
-	border-color: #dfdfdf;
-	background-color: #fff;
-	color: #333;
-}
-
-select {
-	color: #000;
-}
-
-textarea:focus,
-input[type="text"]:focus,
-input[type="password"]:focus,
-input[type="file"]:focus,
-input[type="button"]:focus,
-input[type="submit"]:focus,
-input[type="reset"]:focus,
-input[type="email"]:focus,
-input[type="number"]:focus,
-input[type="search"]:focus,
-input[type="tel"]:focus,
-input[type="url"]:focus,
-select:focus {
-	border-color: #bbb;
-}
-
-kbd,
-code {
-	background: #eaeaea;
-}
-
-input[readonly] {
-	background-color: #eee;
-}
-
-.find-box-search {
-	border-color: #dfdfdf;
-	background-color: #f1f1f1;
-}
-
-.find-box {
-	background-color: #f1f1f1;
-}
-
-.find-box-inside {
-	background-color: #fff;
-}
-
-a.page-numbers:hover {
-	border-color: #999;
-}
-
-body,
-#wpbody,
-.form-table .pre,
-.ui-autocomplete li a {
-	color: #333;
-}
-
-body > #upload-menu {
-	border-bottom-color: #fff;
-}
-
-#postcustomstuff table,
-#your-profile fieldset,
-#rightnow,
-div.dashboard-widget,
-#dashboard-widgets p.dashboard-widget-links {
-	border-color: #ccc;
-}
-
-#poststuff .inside label.spam,
-#poststuff .inside label.deleted {
-	color: red;
-}
-
-#poststuff .inside label.waiting {
-	color: orange;
-}
-
-#poststuff .inside label.approved {
-	color: green;
-}
-
-#postcustomstuff table {
-	border-color: #dfdfdf;
-	background-color: #F9F9F9;
-}
-
-#postcustomstuff thead th {
-	background-color: #F1F1F1;
-}
-
-.widefat {
-	border-color: #dfdfdf;
-	background-color: #f9f9f9;
-}
-textarea.widefat {
-	background-color: #fff;
-}
-
-div.dashboard-widget-error {
-	background-color: #c43;
-}
-
-div.dashboard-widget-notice {
-	background-color: #cfe1ef;
-}
-
-div.dashboard-widget-submit {
-	border-top-color: #ccc;
-}
-
-ul.category-tabs li {
-	border-color: transparent;
-}
-
-div.tabs-panel,
-.wp-tab-panel,
-ul.category-tabs li.tabs,
-ul.add-menu-item-tabs li.tabs,
-.wp-tab-active {
-	border-color: #dfdfdf;
-	background-color: #fff;
-}
-
-ul.category-tabs li.tabs,
-ul.add-menu-item-tabs li.tabs,
-.wp-tab-active {
-	background-color: #fff;
-}
-
-input.disabled,
-textarea.disabled {
-	background-color: #ccc;
-}
-/* #upload-menu li a.upload-tab-link, */
-#plugin-information .action-button a,
-#plugin-information .action-button a:hover,
-#plugin-information .action-button a:visited {
-	color: #fff;
-}
-
-.widget .widget-top,
-.postbox h3,
-.stuffbox h3,
-.widefat thead tr th,
-.widefat tfoot tr th,
-h3.dashboard-widget-title,
-h3.dashboard-widget-title span,
-h3.dashboard-widget-title small,
-.find-box-head,
-.sidebar-name,
-#nav-menu-header,
-#nav-menu-footer,
-.menu-item-handle {
-	background-color: #f1f1f1; /* Fallback */
-	background-image: -ms-linear-gradient(top, #f9f9f9, #ececec); /* IE10 */
-	background-image: -moz-linear-gradient(top, #f9f9f9, #ececec); /* Firefox */
-	background-image: -o-linear-gradient(top, #f9f9f9, #ececec); /* Opera */
-	background-image: -webkit-gradient(linear, left top, left bottom, from(#f9f9f9), to(#ececec)); /* old Webkit */
-	background-image: -webkit-linear-gradient(top, #f9f9f9, #ececec); /* new Webkit */
-	background-image: linear-gradient(top, #f9f9f9, #ececec); /* proposed W3C Markup */
-}
-
-.widget .widget-top,
-.postbox h3,
-.stuffbox h3 {
-	border-bottom-color: #dfdfdf;
-	text-shadow: #fff 0 1px 0;
-	-moz-box-shadow: 0 1px 0 #fff;
-	-webkit-box-shadow: 0 1px 0 #fff;
-	box-shadow: 0 1px 0 #fff;
-}
-
-.form-table th,
-.form-wrap label {
-	color: #222;
-	text-shadow: #fff 0 1px 0;
-}
-
-.description,
-.form-wrap p {
-	color: #666;
-}
-
-strong .post-com-count span {
-	background-color: #21759b;
-}
-
-.sorthelper {
-	background-color: #ccf3fa;
-}
-
-.ac_match,
-.subsubsub a.current {
-	color: #000;
-}
-
-.wrap h2 {
-	color: #464646;
-}
-
-.wrap .add-new-h2 {
-	background: #f1f1f1;
-}
-
-.subtitle {
-	color: #777;
-}
-
-.ac_over {
-	background-color: #f0f0b8;
-}
-
-.ac_results {
-	background-color: #fff;
-	border-color: #808080;
-}
-
-.ac_results li {
-	color: #101010;
-}
-
-.alternate,
-.alt {
-	background-color: #fcfcfc;
-}
-
-.available-theme a.screenshot {
-	background-color: #f1f1f1;
-	border-color: #ddd;
-}
-
-.bar {
-	background-color: #e8e8e8;
-	border-right-color: #99d;
-}
-
-#media-upload,
-#media-upload .media-item .slidetoggle {
-	background: #fff;
-}
-
-#media-upload .slidetoggle {
-	border-top-color: #dfdfdf;
-}
-
-div.error,
-.login #login_error {
-	background-color: #ffebe8;
-	border-color: #c00;
-}
-
-div.error a {
-	color: #c00;
-}
-
-.form-invalid {
-	background-color: #ffebe8 !important;
-}
-
-.form-invalid input,
-.form-invalid select {
-	border-color: #c00 !important;
-}
-
-.submit,
-#commentsdiv #add-new-comment {
-	border-color: #dfdfdf;
-}
-
-.highlight {
-	background-color: #e4f2fd;
-	color: #000;
-}
-
-.howto,
-.nonessential,
-#edit-slug-box,
-.form-input-tip,
-.subsubsub {
-	color: #666;
-}
-
-.media-upload-form label.form-help,
-td.help {
-	color: #9a9a9a;
-}
-
-.ui-autocomplete {
-	background-color: #efefef;
-	border-color: #bbb;
-}
-
-.ui-autocomplete li a.ui-state-hover {
-	background-color: #ddd;
-}
-
-.post-com-count {
-	background-image: url(../images/bubble_bg.gif);
-	color: #fff;
-}
-
-.post-com-count span {
-	background-color: #bbb;
-	color: #fff;
-}
-
-.post-com-count:hover span {
-	background-color: #d54e21;
-}
-
-.quicktags, .search {
-	background-color: #ccc;
-	color: #000;
-}
-
-.side-info h5 {
-	border-bottom-color: #dadada;
-}
-
-.side-info ul {
-	color: #666;
-}
-
-.button,
-.button-secondary,
-.submit input,
-input[type=button],
-input[type=submit] {
-	border-color: #bbb;
-	color: #464646;
-}
-
-.button:hover,
-.button-secondary:hover,
-.submit input:hover,
-input[type=button]:hover,
-input[type=submit]:hover {
-	color: #000;
-	border-color: #666;
-}
-
-.button,
-.submit input,
-.button-secondary {
-	background: #f2f2f2 url(../images/white-grad.png) repeat-x scroll left top;
-	text-shadow: rgba(255,255,255,1) 0 1px 0;
-}
-
-.button:active,
-.submit input:active,
-.button-secondary:active {
-	background: #eee url(../images/white-grad-active.png) repeat-x scroll left top;
-}
-
-input.button-primary,
-button.button-primary,
-a.button-primary {
-	border-color: #298cba;
-	font-weight: bold;
-	color: #fff;
-	background: #21759B url(../images/button-grad.png) repeat-x scroll left top;
-	text-shadow: rgba(0,0,0,0.3) 0 -1px 0;
-}
-
-input.button-primary:active,
-button.button-primary:active,
-a.button-primary:active {
-	background: #21759b url(../images/button-grad-active.png) repeat-x scroll left top;
-	color: #eaf2fa;
-}
-
-input.button-primary:hover,
-button.button-primary:hover,
-a.button-primary:hover,
-a.button-primary:focus,
-a.button-primary:active {
-	border-color: #13455b;
-	color: #eaf2fa;
-}
-
-.button-disabled,
-.button[disabled],
-.button:disabled,
-.button-secondary[disabled],
-.button-secondary:disabled,
-a.button.disabled {
-	color: #aaa !important;
-	border-color: #ddd !important;
-}
-
-.button-primary-disabled,
-.button-primary[disabled],
-.button-primary:disabled {
-	color: #9FD0D5 !important;
-	background: #298CBA !important;
-}
-
-a:hover,
-a:active,
-a:focus {
-	color: #d54e21;
-}
-
-#adminmenu a:hover,
-#adminmenu li.menu-top > a:focus,
-#adminmenu ul.wp-submenu a:hover,
-#the-comment-list .comment a:hover,
-#rightnow a:hover,
-#media-upload a.del-link:hover,
-div.dashboard-widget-submit input:hover,
-.subsubsub a:hover,
-.subsubsub a.current:hover,
-.ui-tabs-nav a:hover,
-.plugins .inactive a:hover,
-#all-plugins-table .plugins .inactive a:hover,
-#search-plugins-table .plugins .inactive a:hover {
-	color: #d54e21;
-}
-
-#the-comment-list .comment-item,
-#dashboard-widgets #dashboard_quick_press form p.submit {
-	border-color: #dfdfdf;
-}
-
-#side-sortables .category-tabs .tabs a,
-#side-sortables .add-menu-item-tabs .tabs a,
-.wp-tab-bar .wp-tab-active a {
-	color: #333;
-}
-
-#rightnow .rbutton {
-	background-color: #ebebeb;
-	color: #264761;
-}
-
-.submitbox .submit {
-	background-color: #464646;
-	color: #ccc;
-}
-
-.plugins a.delete:hover,
-#all-plugins-table .plugins a.delete:hover,
-#search-plugins-table .plugins a.delete:hover,
-.submitbox .submitdelete {
-	color: #f00;
-	border-bottom-color: #f00;
-}
-
-.submitbox .submitdelete:hover,
-#media-items a.delete:hover {
-	color: #fff;
-	background-color: #f00;
-	border-bottom-color: #f00;
-}
-
-#normal-sortables .submitbox .submitdelete:hover {
-	color: #000;
-	background-color: #f00;
-	border-bottom-color: #f00;
-}
-
-.tablenav .dots {
-	border-color: transparent;
-}
-
-.tablenav .next,
-.tablenav .prev {
-	border-color: transparent;
-	color: #21759b;
-}
-
-.tablenav .next:hover,
-.tablenav .prev:hover {
-	border-color: transparent;
-	color: #d54e21;
-}
-
-div.updated,
-.login .message {
-	background-color: #ffffe0;
-	border-color: #e6db55;
-}
-
-.update-message {
-	color: #000;
-}
-
-a.page-numbers {
-	border-bottom-color: #B8D3E2;
-}
-
-.commentlist li {
-	border-bottom-color: #ccc;
-}
-
-.widefat td,
-.widefat th {
-	border-top-color: #fff;
-	border-bottom-color: #dfdfdf;
-}
-
-.widefat th {
-	text-shadow: rgba(255,255,255,0.8) 0 1px 0;
-}
-
-.widefat td {
-	color: #555;
-}
-.widefat p,
-.widefat ol,
-.widefat ul {
-	color: #333;
-}
-
-.widefat thead tr th,
-.widefat tfoot tr th,
-h3.dashboard-widget-title,
-h3.dashboard-widget-title span,
-h3.dashboard-widget-title small,
-.find-box-head {
-	color: #333;
-}
-
-th.sortable a:hover, th.sortable a:active, th.sortable a:focus {
-	color: #333;
-}
-
-h3.dashboard-widget-title small a {
-	color: #d7d7d7;
-}
-
-h3.dashboard-widget-title small a:hover {
-	color: #fff;
-}
-
-a,
-#adminmenu a,
-#the-comment-list p.comment-author strong a,
-#media-upload a.del-link,
-#media-items a.delete,
-.plugins a.delete,
-.ui-tabs-nav a {
-	color: #21759b;
-}
-
-#adminmenu .awaiting-mod,
-#adminmenu .update-plugins,
-#sidemenu a .update-plugins,
-#rightnow .reallynow {
-	background-color: #464646;
-	color: #fff;
-	-moz-box-shadow: rgba(255,255,255,0.5) 0 1px 0;
-	-webkit-box-shadow: rgba(255,255,255,0.5) 0 1px 0;
-	box-shadow: rgba(255,255,255,0.5) 0 1px 0;
-}
-#plugin-information .action-button {
-	background-color: #d54e21;
-	color: #fff;
-}
-
-#adminmenu li.current a .awaiting-mod,
-#adminmenu	li a.wp-has-current-submenu .update-plugins{
-	background-color: #464646;
-	color: #fff;
-	-moz-box-shadow: rgba(255,255,255,0.5) 0 1px 0;
-	-webkit-box-shadow: rgba(255,255,255,0.5) 0 1px 0;
-	box-shadow: rgba(255,255,255,0.5) 0 1px 0;
-}
-
-div#media-upload-header,
-div#plugin-information-header {
-	background-color: #f9f9f9;
-	border-bottom-color: #dfdfdf;
-}
-
-#currenttheme img {
-	border-color: #666;
-}
-
-#dashboard_secondary div.dashboard-widget-content ul li a {
-	background-color: #f9f9f9;
-}
-
-input.readonly, textarea.readonly {
-	background-color: #ddd;
-}
-
-#editable-post-name {
-	background-color: #fffbcc;
-}
-
-#edit-slug-box strong,
-.tablenav .displaying-num,
-#submitted-on,
-.submitted-on {
-	color: #777;
-}
-
-.login #nav a,
-.login #backtoblog a {
-	color: #21759b !important;
-}
-
-.login #nav a:hover,
-.login #backtoblog a:hover {
-	color: #d54e21 !important;
-}
-
-#footer {
-	color: #777;
-	border-color: #dfdfdf;
-}
-
-.imgedit-group,
-#media-items .media-item,
-.media-item .describe {
-	border-color: #dfdfdf;
-}
-
-.checkbox,
-.side-info,
-.plugins tr,
-#your-profile #rich_editing {
-	background-color: #fcfcfc;
-}
-
-.plugins .inactive,
-.plugins .inactive th,
-.plugins .inactive td,
-tr.inactive + tr.plugin-update-tr .plugin-update {
-	background-color: #f4f4f4;
-}
-
-.plugin-update-tr .update-message {
-	background-color: #fffbe4;
-	border-color: #dfdfdf;
-}
-
-.plugins .active,
-.plugins .active th,
-.plugins .active td {
-	color: #000;
-}
-
-.plugins .inactive a {
-	color: #557799;
-}
-
-#the-comment-list tr.undo,
-#the-comment-list div.undo {
-	background-color: #f4f4f4;
-}
-
-#the-comment-list .unapproved {
-	background-color: #ffffe0;
-}
-
-#the-comment-list .approve a {
-	color: #006505;
-}
-
-#the-comment-list .unapprove a {
-	color: #d98500;
-}
-
-table.widefat span.delete a,
-table.widefat span.trash a,
-table.widefat span.spam a,
-#dashboard_recent_comments .delete a,
-#dashboard_recent_comments .trash a,
-#dashboard_recent_comments .spam a {
-	color: #bc0b0b;
-}
-
-.welcome-panel {
-	border-color: #dfdfdf;
-}
-.welcome-panel p {
-	color: #777;
-}
-.welcome-panel-column p {
-	color: #464646;
-}
-.welcome-panel h3 {
-	text-shadow: 1px 1px 1px white;
-}
-
-.widget,
-#widget-list .widget-top,
-.postbox,
-#titlediv,
-#poststuff .postarea,
-.stuffbox {
-	border-color: #dfdfdf;
-	-moz-box-shadow: inset 0 1px 0 #fff;
-	-webkit-box-shadow: inset 0 1px 0 #fff;
-	box-shadow: inset 0 1px 0 #fff;
-	-webkit-border-radius: 3px;
-	border-radius: 3px;
-}
-
-.widget,
-#widget-list .widget-top,
-.postbox,
-.menu-item-settings {
-	background-color: #f5f5f5; /* Fallback */
-	background-image: -ms-linear-gradient(top, #f9f9f9, #f5f5f5); /* IE10 */
-	background-image: -moz-linear-gradient(top, #f9f9f9, #f5f5f5); /* Firefox */
-	background-image: -o-linear-gradient(top, #f9f9f9, #f5f5f5); /* Opera */
-	background-image: -webkit-gradient(linear, left top, left bottom, from(#f9f9f9), to(#f5f5f5)); /* old Webkit */
-	background-image: -webkit-linear-gradient(top, #f9f9f9, #f5f5f5); /* new Webkit */
-	background-image: linear-gradient(top, #f9f9f9, #f5f5f5); /* proposed W3C Markup */
-}
-
-.postbox h3 {
-	color: #464646;
-}
-
-.widget .widget-top {
-	color: #222;
-}
-
-.sidebar-name:hover h3,
-.postbox h3:hover {
-	color: #000;
-}
-
-.curtime #timestamp {
-	background-image: url(../images/date-button.gif);
-}
-
-#quicktags #ed_link {
-	color: #00f;
-}
-
-#rightnow .youhave {
-	background-color: #f0f6fb;
-}
-
-#rightnow a {
-	color: #448abd;
-}
-
-.tagchecklist span a,
-#bulk-titles div a {
-	background: url(../images/xit.gif) no-repeat;
-}
-
-.tagchecklist span a:hover,
-#bulk-titles div a:hover {
-	background: url(../images/xit.gif) no-repeat -10px 0;
-}
-
-#update-nag, .update-nag {
-	background-color: #FFFBCC;
-	border-color: #E6DB55;
-	color: #555;
-}
-
-#screen-meta {
-	background-color: #f1f1f1;
-	border-color: #ccc;
-	-webkit-box-shadow: 0 1px 3px rgba( 0, 0, 0, 0.05 );
-	box-shadow: 0 1px 3px rgba( 0, 0, 0, 0.05 );
-}
-
-#contextual-help-back {
-	background: #fff;
-}
-
-.contextual-help-tabs a:hover {
-	color: #333;
-}
-
-#contextual-help-back,
-.contextual-help-tabs .active {
-	border-color: #ccc;
-}
-
-.contextual-help-tabs .active,
-.contextual-help-tabs .active a,
-.contextual-help-tabs .active a:hover {
-	background: #fff;
-	color: #333;
-}
-
-/* screen options and help tabs */
-#screen-options-link-wrap,
-#contextual-help-link-wrap {
-	background-color: #e3e3e3; /* Fallback */
-	border-right: 1px solid #ccc;
-	border-left: 1px solid #ccc;
-	border-bottom: 1px solid #ccc;
-	background-image: -ms-linear-gradient(bottom, #dfdfdf, #f1f1f1); /* IE10 */
-	background-image: -moz-linear-gradient(bottom, #dfdfdf, #f1f1f1); /* Firefox */
-	background-image: -o-linear-gradient(bottom, #dfdfdf, #f1f1f1); /* Opera */
-	background-image: -webkit-gradient(linear, left bottom, left top, from(#dfdfdf), to(#f1f1f1)); /* old Webkit */
-	background-image: -webkit-linear-gradient(bottom, #dfdfdf, #f1f1f1); /* new Webkit */
-	background-image: linear-gradient(bottom, #dfdfdf, #f1f1f1); /* proposed W3C Markup */
-}
-
-#screen-meta-links a.show-settings {
-	color: #777;
-}
-
-#screen-meta-links a.show-settings:hover {
-	color: #333;
-}
-
-#screen-meta-links a.show-settings {
-	background: transparent url(../images/arrows.png) no-repeat right 4px;
-}
-
-#screen-meta-links a.show-settings.screen-meta-active {
-	background: transparent url(../images/arrows.png) no-repeat right -31px;
-}
-
-/* end screen options and help tabs */
-
-.login #backtoblog a {
-	color: #464646;
-}
-
-#wphead {
-	border-bottom:#dfdfdf 1px solid;
-}
-
-#wphead h1 a {
-	color: #464646;
-}
-
-#footer a:link,
-#footer a:visited {
-	text-decoration: none;
-}
-
-#footer a:hover {
-	text-decoration: underline;
-}
-
-.file-error,
-abbr.required,
-.widget-control-remove:hover,
-table.widefat .delete a:hover,
-table.widefat .trash a:hover,
-table.widefat .spam a:hover,
-#dashboard_recent_comments .delete a:hover,
-#dashboard_recent_comments .trash a:hover
-#dashboard_recent_comments .spam a:hover {
-	color: #f00;
-}
-
-#pass-strength-result {
-	background-color: #eee;
-	border-color: #ddd !important;
-}
-
-#pass-strength-result.bad {
-	background-color: #ffb78c;
-	border-color: #ff853c !important;
-}
-
-#pass-strength-result.good {
-	background-color: #ffec8b;
-	border-color: #fc0 !important;
-}
-
-#pass-strength-result.short {
-	background-color: #ffa0a0;
-	border-color: #f04040 !important;
-}
-
-#pass-strength-result.strong {
-	background-color: #c3ff88;
-	border-color: #8dff1c !important;
-}
-
-#titlediv #title {
-	border-color: #ccc;
-}
-
-#post-status-info {
-	border-color: #dfdfdf #ccc #ccc;
-	background-color: #eaeaea;
-}
-
-.editwidget .widget-inside {
-	border-color: #dfdfdf;
-}
-
-#titlediv #title {
-	background-color: #fff;
-}
-
-#tTips p#tTips_inside {
-	background-color: #ddd;
-	color: #333;
-}
-
-#timestampdiv input,
-#namediv input,
-#poststuff .inside .the-tagcloud {
-	border-color: #ddd;
-}
-
-/* menu */
-#adminmenuback,
-#adminmenuwrap {
-	background-color: #ececec;
-	border-color: #ccc;
-}
-
-#adminmenushadow,
-#adminmenuback {
-	background-image: url(../images/menu-shadow.png);
-	background-position: top right;
-	background-repeat: repeat-y;
-}
-
-#adminmenu li.wp-menu-separator {
-	background: #dfdfdf;
-	border-color: #cfcfcf;
-}
-
-#adminmenu div.separator {
-	border-color: #e1e1e1;
-}
-
-#adminmenu li.wp-has-current-submenu.wp-menu-open .wp-menu-toggle,
-#adminmenu li.wp-has-current-submenu:hover .wp-menu-toggle {
-	background: transparent url(../images/arrows-dark.png) no-repeat -1px 6px;
-}
-
-#adminmenu .wp-has-submenu:hover .wp-menu-toggle,
-#adminmenu .wp-menu-open .wp-menu-toggle {
-	background: transparent url(../images/arrows.png) no-repeat -2px 6px;
-}
-
-#adminmenu a.menu-top,
-.folded #adminmenu li.menu-top,
-#adminmenu .wp-submenu .wp-submenu-head {
-	border-top-color: #f9f9f9;
-	border-bottom-color: #dfdfdf;
-}
-
-#adminmenu li.wp-menu-open {
-	border-color: #dfdfdf;
-}
-
-#adminmenu li.menu-top:hover > a,
-#adminmenu li.menu-top.focused > a,
-#adminmenu li.menu-top > a:focus {
-	background-color: #e4e4e4;
-	text-shadow: 0 1px 0 rgba( 255, 255, 255, 0.4 );
-}
-
-#adminmenu li.wp-has-current-submenu a.wp-has-current-submenu,
-#adminmenu li.current a.menu-top,
-.folded #adminmenu li.wp-has-current-submenu,
-.folded #adminmenu li.current.menu-top,
-#adminmenu .wp-menu-arrow,
-#adminmenu .wp-has-current-submenu .wp-submenu .wp-submenu-head {
-	background-color: #777; /* Fallback */
-	background-image: -ms-linear-gradient(bottom, #6d6d6d, #808080); /* IE10 */
-	background-image: -moz-linear-gradient(bottom, #6d6d6d, #808080); /* Firefox */
-	background-image: -o-linear-gradient(bottom, #6d6d6d, #808080); /* Opera */
-	background-image: -webkit-gradient(linear, left bottom, left top, from(#6d6d6d), to(#808080)); /* old Webkit */
-	background-image: -webkit-linear-gradient(bottom, #6d6d6d, #808080); /* new Webkit */
-	background-image: linear-gradient(bottom, #6d6d6d, #808080); /* proposed W3C Markup */
-}
-
-#adminmenu .wp-menu-arrow div {
-	background-color: #777; /* Fallback */
-	background-image: -ms-linear-gradient(right bottom, #6d6d6d, #808080); /* IE10 */
-	background-image: -moz-linear-gradient(right bottom, #6d6d6d, #808080); /* Firefox */
-	background-image: -o-linear-gradient(right bottom, #6d6d6d, #808080); /* Opera */
-	background-image: -webkit-gradient(linear, right bottom, left top, from(#6d6d6d), to(#808080)); /* old Webkit */
-	background-image: -webkit-linear-gradient(right bottom, #6d6d6d, #808080); /* new Webkit */
-	background-image: linear-gradient(right bottom, #6d6d6d, #808080); /* proposed W3C Markup */
-}
-
-#adminmenu li.wp-not-current-submenu .wp-menu-arrow {
-	border-top-color: #f9f9f9;
-	border-bottom-color: #dfdfdf;
-	background: #E4E4E4;
-}
-
-#adminmenu li.wp-not-current-submenu .wp-menu-arrow div {
-	background: #E4E4E4;
-	border-color: #ccc;
-}
-
-.folded #adminmenu li.menu-top li:hover a {
-	background-image: none;
-}
-
-#adminmenu li.wp-has-current-submenu a.wp-has-current-submenu,
-#adminmenu li.current a.menu-top,
-#adminmenu .wp-has-current-submenu .wp-submenu .wp-submenu-head {
-	text-shadow: 0 -1px 0 #333;
-	color: #fff;
-	border-top-color: #808080;
-	border-bottom-color: #6d6d6d;
-}
-
-.folded #adminmenu li.wp-has-current-submenu,
-.folded #adminmenu li.current.menu-top {
-	border-top-color: #808080;
-	border-bottom-color: #6d6d6d;
-}
-
-#adminmenu .wp-submenu a:hover,
-#adminmenu .wp-submenu a:focus {
-	background-color: #EAF2FA;
-	color: #333;
-}
-
-#adminmenu .wp-submenu li.current,
-#adminmenu .wp-submenu li.current a,
-#adminmenu .wp-submenu li.current a:hover {
-	color: #333;
-}
-
-#adminmenu .wp-submenu ul {
-	background-color: #fff;
-}
-
-#adminmenu .wp-submenu-wrap,
-#adminmenu .wp-submenu ul {
-	border-color: #dfdfdf;
-}
-
-#adminmenu .wp-submenu-wrap,
-.folded #adminmenu .wp-has-current-submenu .wp-submenu-wrap {
-	-moz-box-shadow: 2px 2px 5px rgba( 0, 0, 0, 0.4 );
-	-webkit-box-shadow: 2px 2px 5px rgba( 0, 0, 0, 0.4 );
-	box-shadow: 2px 2px 5px rgba( 0, 0, 0, 0.4 );
-}
-
-#adminmenu .wp-submenu .wp-submenu-head {
-	border-right-color: #dfdfdf;
-	background-color: #ececec;
-}
-
-#adminmenu div.wp-submenu {
-	background-color: transparent;
-}
-
-/* collapse menu button */
-#collapse-menu {
-	color: #aaa;
-}
-
-#collapse-menu:hover {
-	color: #999;
-}
-
-#collapse-button {
-	border-color: #ccc;
-	background-color: #f4f4f4; /* Fallback */
-	background-image: -ms-linear-gradient(bottom, #dfdfdf, #fff); /* IE10 */
-	background-image: -moz-linear-gradient(bottom, #dfdfdf, #fff); /* Firefox */
-	background-image: -o-linear-gradient(bottom, #dfdfdf, #fff); /* Opera */
-	background-image: -webkit-gradient(linear, left bottom, left top, from(#dfdfdf), to(#fff)); /* old Webkit */
-	background-image: -webkit-linear-gradient(bottom, #dfdfdf, #fff); /* new Webkit */
-	background-image: linear-gradient(bottom, #dfdfdf, #fff); /* proposed W3C Markup */
-}
-
-#collapse-menu:hover #collapse-button {
-	border-color: #aaa;
-}
-
-#collapse-button div {
-	background: transparent url(../images/arrows.png) no-repeat 0 -72px;
-}
-
-.folded #collapse-button div {
-	background-position: 0 -108px;
-}
-
-/* Auto-folding of the admin menu */
-@media only screen and (max-width: 900px) {
-	#adminmenu li.menu-top {
-		border-top-color: #f9f9f9;
-		border-bottom-color: #dfdfdf;
-	}
-
-	#adminmenu li.wp-has-current-submenu,
-	#adminmenu li.current.menu-top {
-		background-color: #777; /* Fallback */
-		background-image: -ms-linear-gradient(bottom, #6d6d6d, #808080); /* IE10 */
-		background-image: -moz-linear-gradient(bottom, #6d6d6d, #808080); /* Firefox */
-		background-image: -o-linear-gradient(bottom, #6d6d6d, #808080); /* Opera */
-		background-image: -webkit-gradient(linear, left bottom, left top, from(#6d6d6d), to(#808080)); /* old Webkit */
-		background-image: -webkit-linear-gradient(bottom, #6d6d6d, #808080); /* new Webkit */
-		background-image: linear-gradient(bottom, #6d6d6d, #808080); /* proposed W3C Markup */
-	}
-
-	#adminmenu li.menu-top li:hover a {
-		background-image: none;
-	}
-
-	#adminmenu li.wp-has-current-submenu,
-	#adminmenu li.current.menu-top {
-		border-top-color: #808080;
-		border-bottom-color: #6d6d6d;
-	}
-
-	#adminmenu .wp-has-current-submenu .wp-submenu-wrap {
-		-moz-box-shadow: 2px 2px 5px rgba( 0, 0, 0, 0.4 );
-		-webkit-box-shadow: 2px 2px 5px rgba( 0, 0, 0, 0.4 );
-		box-shadow: 2px 2px 5px rgba( 0, 0, 0, 0.4 );
-	}
-
-	#collapse-button div {
-		background-position: 0 -108px;
-	}
-}
-
-/* menu and screen icons */
-.icon16,
-.icon32,
-div.wp-menu-image {
-	background-color: transparent;
-	background-repeat: no-repeat;
-}
-
-.icon16.icon-dashboard,
-.menu-icon-dashboard div.wp-menu-image,
-.icon16.icon-post,
-.menu-icon-post div.wp-menu-image,
-.icon16.icon-media,
-.menu-icon-media div.wp-menu-image,
-.icon16.icon-links,
-.menu-icon-links div.wp-menu-image,
-.icon16.icon-page,
-.menu-icon-page div.wp-menu-image,
-.icon16.icon-comments,
-.menu-icon-comments div.wp-menu-image,
-.icon16.icon-appearance,
-.menu-icon-appearance div.wp-menu-image,
-.icon16.icon-plugins,
-.menu-icon-plugins div.wp-menu-image,
-.icon16.icon-users,
-.menu-icon-users div.wp-menu-image,
-.icon16.icon-tools,
-.menu-icon-tools div.wp-menu-image,
-.icon16.icon-settings,
-.menu-icon-settings div.wp-menu-image,
-.icon16.icon-site,
-.menu-icon-site div.wp-menu-image {
-	background-image: url('../images/menu.png?ver=20120201');
-}
-
-.icon16.icon-dashboard,
-#adminmenu .menu-icon-dashboard div.wp-menu-image {
-	background-position: -59px -33px;
-}
-
-#adminmenu .menu-icon-dashboard:hover div.wp-menu-image,
-#adminmenu .menu-icon-dashboard.wp-has-current-submenu div.wp-menu-image,
-#adminmenu .menu-icon-dashboard.current div.wp-menu-image {
-	background-position: -59px -1px;
-}
-
-.icon16.icon-post,
-#adminmenu .menu-icon-post div.wp-menu-image {
-	background-position: -269px -33px;
-}
-
-#adminmenu .menu-icon-post:hover div.wp-menu-image,
-#adminmenu .menu-icon-post.wp-has-current-submenu div.wp-menu-image,
-#adminmenu .menu-icon-post.current div.wp-menu-image {
-	background-position: -269px -1px;
-}
-
-.icon16.icon-media,
-#adminmenu .menu-icon-media div.wp-menu-image {
-	background-position: -119px -33px;
-}
-
-#adminmenu .menu-icon-media:hover div.wp-menu-image,
-#adminmenu .menu-icon-media.wp-has-current-submenu div.wp-menu-image,
-#adminmenu .menu-icon-media.current div.wp-menu-image {
-	background-position: -119px -1px;
-}
-
-.icon16.icon-links,
-#adminmenu .menu-icon-links div.wp-menu-image {
-	background-position: -89px -33px;
-}
-
-#adminmenu .menu-icon-links:hover div.wp-menu-image,
-#adminmenu .menu-icon-links.wp-has-current-submenu div.wp-menu-image,
-#adminmenu .menu-icon-links.current div.wp-menu-image {
-	background-position: -89px -1px;
-}
-
-.icon16.icon-page,
-#adminmenu .menu-icon-page div.wp-menu-image {
-	background-position: -149px -33px;
-}
-
-#adminmenu .menu-icon-page:hover div.wp-menu-image,
-#adminmenu .menu-icon-page.wp-has-current-submenu div.wp-menu-image,
-#adminmenu .menu-icon-page.current div.wp-menu-image {
-	background-position: -149px -1px;
-}
-
-.icon16.icon-comments,
-#adminmenu .menu-icon-comments div.wp-menu-image {
-	background-position: -29px -33px;
-}
-
-#adminmenu .menu-icon-comments:hover div.wp-menu-image,
-#adminmenu .menu-icon-comments.wp-has-current-submenu div.wp-menu-image,
-#adminmenu .menu-icon-comments.current div.wp-menu-image {
-	background-position: -29px -1px;
-}
-
-.icon16.icon-appearance,
-#adminmenu .menu-icon-appearance div.wp-menu-image {
-	background-position: 1px -33px;
-}
-
-#adminmenu .menu-icon-appearance:hover div.wp-menu-image,
-#adminmenu .menu-icon-appearance.wp-has-current-submenu div.wp-menu-image,
-#adminmenu .menu-icon-appearance.current div.wp-menu-image {
-	background-position: 1px -1px;
-}
-
-.icon16.icon-plugins,
-#adminmenu .menu-icon-plugins div.wp-menu-image {
-	background-position: -179px -33px;
-}
-
-#adminmenu .menu-icon-plugins:hover div.wp-menu-image,
-#adminmenu .menu-icon-plugins.wp-has-current-submenu div.wp-menu-image,
-#adminmenu .menu-icon-plugins.current div.wp-menu-image {
-	background-position: -179px -1px;
-}
-
-.icon16.icon-users,
-#adminmenu .menu-icon-users div.wp-menu-image {
-	background-position: -300px -33px;
-}
-
-#adminmenu .menu-icon-users:hover div.wp-menu-image,
-#adminmenu .menu-icon-users.wp-has-current-submenu div.wp-menu-image,
-#adminmenu .menu-icon-users.current div.wp-menu-image {
-	background-position: -300px -1px;
-}
-
-.icon16.icon-tools,
-#adminmenu .menu-icon-tools div.wp-menu-image {
-	background-position: -209px -33px;
-}
-
-#adminmenu .menu-icon-tools:hover div.wp-menu-image,
-#adminmenu .menu-icon-tools.wp-has-current-submenu div.wp-menu-image,
-#adminmenu .menu-icon-tools.current div.wp-menu-image {
-	background-position: -209px -1px;
-}
-
-.icon16.icon-settings,
-#adminmenu .menu-icon-settings div.wp-menu-image {
-	background-position: -239px -33px;
-}
-
-#adminmenu .menu-icon-settings:hover div.wp-menu-image,
-#adminmenu .menu-icon-settings.wp-has-current-submenu div.wp-menu-image,
-#adminmenu .menu-icon-settings.current div.wp-menu-image {
-	background-position: -239px -1px;
-}
-
-.icon16.icon-site,
-#adminmenu .menu-icon-site div.wp-menu-image {
-	background-position: -359px -33px;
-}
-
-#adminmenu .menu-icon-site:hover div.wp-menu-image,
-#adminmenu .menu-icon-site.wp-has-current-submenu div.wp-menu-image,
-#adminmenu .menu-icon-site.current div.wp-menu-image {
-	background-position: -359px -1px;
-}
-/* end menu and screen icons */
-
-/* Screen Icons */
-.icon32.icon-post,
-#icon-edit,
-#icon-post,
-.icon32.icon-dashboard,
-#icon-index,
-.icon32.icon-media,
-#icon-upload,
-.icon32.icon-links,
-#icon-link-manager,
-#icon-link,
-#icon-link-category,
-.icon32.icon-page,
-#icon-edit-pages,
-#icon-page,
-.icon32.icon-comments,
-#icon-edit-comments,
-.icon32.icon-appearance,
-#icon-themes,
-.icon32.icon-plugins,
-#icon-plugins,
-.icon32.icon-users,
-#icon-users,
-#icon-profile,
-#icon-user-edit,
-.icon32.icon-tools,
-#icon-tools,
-#icon-admin,
-.icon32.icon-settings,
-#icon-options-general,
-.icon32.icon-site,
-#icon-ms-admin {
-	background-image: url(../images/icons32.png?ver=20111206);
-}
-
-.icon32.icon-post,
-#icon-edit,
-#icon-post {
-	background-position: -552px -5px;
-}
-
-.icon32.icon-dashboard,
-#icon-index {
-	background-position: -137px -5px;
-}
-
-.icon32.icon-media,
-#icon-upload {
-	background-position: -251px -5px;
-}
-
-.icon32.icon-links,
-#icon-link-manager,
-#icon-link,
-#icon-link-category {
-	background-position: -190px -5px;
-}
-
-.icon32.icon-page,
-#icon-edit-pages,
-#icon-page {
-	background-position: -312px -5px;
-}
-
-.icon32.icon-comments,
-#icon-edit-comments {
-	background-position: -72px -5px;
-}
-
-.icon32.icon-appearance,
-#icon-themes {
-	background-position: -11px -5px;
-}
-
-.icon32.icon-plugins,
-#icon-plugins {
-	background-position: -370px -5px;
-}
-
-.icon32.icon-users,
-#icon-users,
-#icon-profile,
-#icon-user-edit {
-	background-position: -600px -5px;
-}
-
-.icon32.icon-tools,
-#icon-tools,
-#icon-admin {
-	background-position: -432px -5px;
-}
-
-.icon32.icon-settings,
-#icon-options-general {
-	background-position: -492px -5px;
-}
-
-.icon32.icon-site,
-#icon-ms-admin {
-	background-position: -659px -5px;
-}
-
-@media only screen and (-webkit-min-device-pixel-ratio: 1.5) {
-	.icon32.icon-post,
-	#icon-edit,
-	#icon-post,
-	.icon32.icon-dashboard,
-	#icon-index,
-	.icon32.icon-media,
-	#icon-upload,
-	.icon32.icon-links,
-	#icon-link-manager,
-	#icon-link,
-	#icon-link-category,
-	.icon32.icon-page,
-	#icon-edit-pages,
-	#icon-page,
-	.icon32.icon-comments,
-	#icon-edit-comments,
-	.icon32.icon-appearance,
-	#icon-themes,
-	.icon32.icon-plugins,
-	#icon-plugins,
-	.icon32.icon-users,
-	#icon-users,
-	#icon-profile,
-	#icon-user-edit,
-	.icon32.icon-tools,
-	#icon-tools,
-	#icon-admin,
-	.icon32.icon-settings,
-	#icon-options-general,
-	.icon32.icon-site,
-	#icon-ms-admin {
-		background-image: url(../images/icons32-2x.png?ver=20120412);
-		background-size: 708px 45px;
-	}
-
-	.icon16.icon-dashboard,
-	.menu-icon-dashboard div.wp-menu-image,
-	.icon16.icon-post,
-	.menu-icon-post div.wp-menu-image,
-	.icon16.icon-media,
-	.menu-icon-media div.wp-menu-image,
-	.icon16.icon-links,
-	.menu-icon-links div.wp-menu-image,
-	.icon16.icon-page,
-	.menu-icon-page div.wp-menu-image,
-	.icon16.icon-comments,
-	.menu-icon-comments div.wp-menu-image,
-	.icon16.icon-appearance,
-	.menu-icon-appearance div.wp-menu-image,
-	.icon16.icon-plugins,
-	.menu-icon-plugins div.wp-menu-image,
-	.icon16.icon-users,
-	.menu-icon-users div.wp-menu-image,
-	.icon16.icon-tools,
-	.menu-icon-tools div.wp-menu-image,
-	.icon16.icon-settings,
-	.menu-icon-settings div.wp-menu-image,
-	.icon16.icon-site,
-	.menu-icon-site div.wp-menu-image {
-		background-image: url('../images/menu-2x.png?ver=20120412');
-		background-size: 390px 64px;
-	}
-}
-/* end screen icons */
-
-/* Diff */
-table.diff .diff-deletedline {
-	background-color: #fdd;
-}
-
-table.diff .diff-deletedline del {
-	background-color: #f99;
-}
-
-table.diff .diff-addedline {
-	background-color: #dfd;
-}
-
-table.diff .diff-addedline ins {
-	background-color: #9f9;
-}
-
-#att-info {
-	background-color: #E4F2FD;
-}
-
-/* edit image */
-#sidemenu a {
-	background-color: #f9f9f9;
-	border-color: #f9f9f9;
-	border-bottom-color: #dfdfdf;
-}
-
-#sidemenu a.current {
-	background-color: #fff;
-	border-color: #dfdfdf #dfdfdf #fff;
-	color: #D54E21;
-}
-
-#replyerror {
-	border-color: #ddd;
-	background-color: #f9f9f9;
-}
-
-/* table vim shortcuts */
-.vim-current,
-.vim-current th,
-.vim-current td {
-	background-color: #E4F2FD !important;
-}
-
-/* Install Plugins */
-#plugin-information .fyi ul {
-	background-color: #eaf3fa;
-}
-
-#plugin-information .fyi h2.mainheader {
-	background-color: #cee1ef;
-}
-
-#plugin-information pre,
-#plugin-information code {
-	background-color: #ededff;
-}
-
-#plugin-information pre {
-	border: 1px solid #ccc;
-}
-
-/* inline editor */
-.inline-edit-row fieldset input[type="text"],
-.inline-edit-row fieldset textarea,
-#bulk-titles {
-	border-color: #ddd;
-}
-
-.inline-editor div.title {
-	background-color: #EAF3FA;
-}
-
-.inline-editor ul.cat-checklist {
-	background-color: #fff;
-	border-color: #ddd;
-}
-
-.inline-editor .categories .catshow,
-.inline-editor .categories .cathide {
-	color: #21759b;
-}
-
-.inline-editor .quick-edit-save {
-	background-color: #f1f1f1;
-}
-
-fieldset.inline-edit-col-right .inline-edit-col {
-	border-color: #dfdfdf;
-}
-
-.attention {
-	color: #D54E21;
-}
-
-.meta-box-sortables .postbox:hover .handlediv {
-	background: transparent url(../images/arrows.png) no-repeat 6px 7px;
-}
-
-.tablenav .tablenav-pages {
-	color: #555;
-}
-
-.tablenav .tablenav-pages a {
-	border-color: #e3e3e3;
-	background: #eee url('../images/menu-bits.gif?ver=20100610') repeat-x scroll left -379px;
-}
-
-.tablenav .tablenav-pages a:hover,
-.tablenav .tablenav-pages a:focus {
-	color: #d54e21;
-}
-
-.tablenav .tablenav-pages a.disabled,
-.tablenav .tablenav-pages a.disabled:hover,
-.tablenav .tablenav-pages a.disabled:focus {
-	color: #aaa;
-}
-
-.tablenav .tablenav-pages .current {
-	background: #dfdfdf;
-	border-color: #d3d3d3;
-}
-
-#availablethemes,
-#availablethemes td {
-	border-color: #ddd;
-}
-
-#current-theme img {
-	border-color: #999;
-}
-
-#TB_window #TB_title a.tb-theme-preview-link,
-#TB_window #TB_title a.tb-theme-preview-link:visited {
-	color: #999;
-}
-
-#TB_window #TB_title a.tb-theme-preview-link:hover,
-#TB_window #TB_title a.tb-theme-preview-link:focus {
-	color: #ccc;
-}
-
-.misc-pub-section {
-	border-top-color: #fff;
-	border-bottom-color: #dfdfdf;
-}
-
-#minor-publishing {
-	border-bottom-color: #dfdfdf;
-}
-
-#post-body .misc-pub-section {
-	border-left-color: #eee;
-}
-
-.post-com-count span {
-	background-color: #bbb;
-}
-
-.form-table .color-palette td {
-	border-color: #fff;
-}
-
-.sortable-placeholder {
-	border-color: #bbb;
-	background-color: #f5f5f5;
-}
-
-#post-body ul.category-tabs li.tabs a,
-#post-body ul.add-menu-item-tabs li.tabs a,
-body.press-this ul.category-tabs li.tabs a {
-	color: #333;
-}
-
-.view-switch #view-switch-list {
-	background: transparent url(../images/list.png) no-repeat 0 0;
-}
-
-.view-switch .current #view-switch-list {
-	background: transparent url(../images/list.png) no-repeat -40px 0;
-}
-
-.view-switch #view-switch-excerpt {
-	background: transparent url(../images/list.png) no-repeat -20px 0;
-}
-
-.view-switch .current #view-switch-excerpt {
-	background: transparent url(../images/list.png) no-repeat -60px 0;
-}
-
-#header-logo {
-	background: transparent url(../images/wp-logo.png?ver=20110504) no-repeat scroll center center;
-}
-
-.popular-tags,
-.feature-filter {
-	background-color: #fff;
-	border-color: #DFDFDF;
-}
-
-div.widgets-sortables,
-#widgets-left .inactive,
-#available-widgets .widget-holder {
-	background-color: #fcfcfc;
-	border-color: #dfdfdf;
-}
-
-#available-widgets .widget-description {
-	color: #555;
-}
-
-.sidebar-name {
-	color: #464646;
-	text-shadow: #fff 0 1px 0;
-	border-color: #dfdfdf;
-	-moz-box-shadow: inset 0 1px 0 #fff;
-	-webkit-box-shadow: inset 0 1px 0 #fff;
-	box-shadow: inset 0 1px 0 #fff;
-}
-
-.sidebar-name:hover,
-#removing-widget {
-	color: #d54e21;
-}
-
-#removing-widget span {
-	color: black;
-}
-
-.sidebar-name-arrow {
-	background: transparent url(../images/arrows.png) no-repeat 5px 9px;
-}
-
-.sidebar-name:hover .sidebar-name-arrow {
-	background: transparent url(../images/arrows-dark.png) no-repeat 5px 9px;
-}
-
-.in-widget-title {
-	color: #606060;
-}
-
-.deleting .widget-title * {
-	color: #aaa;
-}
-
-.imgedit-menu div {
-	border-color: #d5d5d5;
-	background-color: #f1f1f1;
-}
-
-.imgedit-menu div:hover {
-	border-color: #c1c1c1;
-	background-color: #eaeaea;
-}
-
-.imgedit-menu div.disabled {
-	border-color: #ccc;
-	background-color: #ddd;
-	filter: alpha(opacity=50);
-	opacity: 0.5;
-}
-
-#dashboard_recent_comments div.undo {
-	border-top-color: #dfdfdf;
-}
-
-.comment-ays,
-.comment-ays th {
-	border-color: #ddd;
-}
-
-.comment-ays th {
-	background-color: #f1f1f1;
-}
-
-/* added from nav-menu.css */
-#menu-management .menu-edit {
-	border-color: #dfdfdf;
-}
-
-#post-body {
-	background: #fff;
-	border-top-color: #fff;
-	border-bottom-color: #dfdfdf;
-}
-
-#nav-menu-header {
-	border-bottom-color: #dfdfdf;
-}
-
-#nav-menu-footer {
-	border-top-color: #fff;
-}
-
-#menu-management .nav-tabs-arrow a {
-	color: #C1C1C1;
-}
-
-#menu-management .nav-tabs-arrow a:hover {
-	color: #D54E21;
-}
-
-#menu-management .nav-tabs-arrow a:active {
-	color: #464646;
-}
-
-#menu-management .nav-tab-active {
-	border-color: #dfdfdf;
-}
-
-#menu-management .nav-tab {
-	background: #fbfbfb;
-	border-color: #dfdfdf;
-}
-
-.js .input-with-default-title {
-	color: #aaa;
-}
-
-#cancel-save {
-	color: #ff0000;
-}
-
-#cancel-save:hover {
-	background-color: #FF0000;
-	color: #fff;
-}
-
-.list-container,
-.menu-item-handle {
-	border-color: #dfdfdf;
-}
-
-.menu li.deleting .menu-item-handle {
-	background-color: #f66;
-	text-shadow: #ccc;
-}
-
-.item-type { /* Menu item controls */
-	color: #999999;
-}
-
-.item-controls .menu-item-delete:hover {
-	color: #ff0000;
-}
-
-.nav-menus-php .item-edit {
-	background: transparent url(../images/arrows.png) no-repeat 8px 10px;
-	border-bottom-color: #eee;
-}
-
-.item-edit:hover {
-	background: transparent url(../images/arrows-dark.png) no-repeat 8px 10px;
-}
-
-.menu-item-settings { /* Menu editing */
-	border-color: #dfdfdf;
-}
-
-.link-to-original {
-	color: #777;
-	border-color: #dfdfdf;
-}
-
-#cancel-save:hover {
-	color: #fff !important;
-}
-
-#update-menu-item {
-	color: #fff !important;
-}
-
-#update-menu-item:hover,
-#update-menu-item:active,
-#update-menu-item:focus {
-	color: #eaf2fa !important;
-	border-color: #13455b !important;
-}
-
-.submitbox .submitcancel {
-	color: #21759B;
-	border-bottom-color: #21759B;
-}
-
-.submitbox .submitcancel:hover {
-	background: #21759B;
-	color: #fff;
-}
-/* end added from nav-menu.css */
-
-#menu-management .nav-tab-active,
-.menu-item-handle,
-.menu-item-settings {
-	-moz-box-shadow: inset 0 1px 0 #fff;
-	-webkit-box-shadow: inset 0 1px 0 #fff;
-	box-shadow: inset 0 1px 0 #fff;
-}
-
-#menu-management .nav-tab-active {
-	background: #f9f9f9;
-	border-bottom-color: #f9f9f9;
-}
-
-#upload-form label {
-	color: #777;
-}
-
-/* Begin About Pages */
-
-.about-wrap h1 {
-	color: #333;
-	text-shadow: 1px 1px 1px white;
-}
-
-.about-text {
-	color: #777;
-}
-
-.wp-badge {
-	color: #fff;
-	text-shadow: 0 -1px 0 rgba(22, 57, 81, 0.3);
-}
-
-.about-wrap h2 .nav-tab {
-	color: #21759B;
-}
-.about-wrap h2 .nav-tab:hover {
-	color: #d54e21;
-}
-.about-wrap h2 .nav-tab-active,
-.about-wrap h2 .nav-tab-active:hover {
-	color: #333;
-}
-.about-wrap h2 .nav-tab-active {
-	text-shadow: 1px 1px 1px white;
-	color: #464646;
-}
-
-.about-wrap h3 {
-	color: #333;
-	text-shadow: 1px 1px 1px white;
-}
-
-.about-wrap .feature-section h4 {
-	color: #464646;
-}
-
-.about-wrap .feature-section img {
-	background: #fff;
-	border: 1px #ccc solid;
-
-	-moz-box-shadow:    0 1px 3px rgba( 0, 0, 0, 0.3 );
-	-webkit-box-shadow: 0 1px 3px rgba( 0, 0, 0, 0.3 );
-	box-shadow:         0 1px 3px rgba( 0, 0, 0, 0.3 );
-}
-
-.about-wrap h4.wp-people-group {
-	text-shadow: 1px 1px 1px white;
-}
-
-.about-wrap .point-releases {
-	border-bottom: 1px solid #dfdfdf;
-}
-
-.about-wrap .point-releases h3 {
-	border-top: 1px solid #dfdfdf;
-}
-
-.about-wrap .point-releases h3:first-child {
-	border: 0;
-}
-
-.about-wrap li.wp-person img.gravatar {
-	-moz-box-shadow: 0 0 4px rgba( 0, 0, 0, 0.4 );
-	-webkit-box-shadow: 0 0 4px rgba( 0, 0, 0, 0.4 );
-	box-shadow: 0 0 4px rgba( 0, 0, 0, 0.4 );
-}
-.about-wrap li.wp-person .title {
-	color: #464646;
-	text-shadow: 1px 1px 1px white;
-}
-
-.freedoms-php .about-wrap ol li {
-	color: #999;
-}
-.freedoms-php .about-wrap ol p {
-	color: #464646;
-}
-
-/* End About Pages */
-
-
-/*------------------------------------------------------------------------------
-  2.0 - Right to Left Styles
-------------------------------------------------------------------------------*/
-
-.rtl .bar {
-	border-right-color: none;
-	border-left-color: #99d;
-}
-
-.rtl .post-com-count {
-	background-image: url(../images/bubble_bg-rtl.gif);
-}
-
-.rtl #screen-meta-links a.show-settings {
-	background-position: left 3px;
-}
-
-.rtl #screen-meta-links a.show-settings.screen-meta-active {
-	background-position: left -33px;
-}
-
-/* Menu */
-.rtl #adminmenushadow,
-.rtl #adminmenuback {
-	background-image: url(../images/menu-shadow-rtl.png);
-	background-position: top left;
-}
-
-.rtl #adminmenu li.wp-has-current-submenu.wp-menu-open .wp-menu-toggle,
-.rtl #adminmenu li.wp-has-current-submenu:hover .wp-menu-toggle {
-	background: transparent url(../images/arrows-dark.png) no-repeat 8px 6px;
-}
-
-.rtl #adminmenu .wp-has-submenu:hover .wp-menu-toggle,
-.rtl #adminmenu .wp-menu-open .wp-menu-toggle {
-	background: transparent url(../images/arrows.png) no-repeat 8px 6px;
-}
-
-.rtl #adminmenu .wp-submenu .wp-submenu-head {
-	border-right-color: none;
-	border-left-color: #dfdfdf;
-}
-
-.rtl #adminmenu .wp-submenu-wrap,
-.rtl.folded #adminmenu .wp-has-current-submenu .wp-submenu-wrap{
-	-moz-box-shadow: -2px 2px 5px rgba( 0, 0, 0, 0.4 );
-	-webkit-box-shadow: -2px 2px 5px rgba( 0, 0, 0, 0.4 );
-	box-shadow: -2px 2px 5px rgba( 0, 0, 0, 0.4 );
-}
-
-/* Collapse Menu Button */
-.rtl #collapse-button div {
-	background-position: 0 -108px;
-}
-
-.rtl.folded #collapse-button div {
-	background-position: 0 -72px;
-}
-
-/* Auto-folding of the admin menu for RTL */
-@media only screen and (max-width: 900px) {
-	.rtl #adminmenu .wp-has-current-submenu .wp-submenu-wrap{
-		-moz-box-shadow: -2px 2px 5px rgba( 0, 0, 0, 0.4 );
-		-webkit-box-shadow: -2px 2px 5px rgba( 0, 0, 0, 0.4 );
-		box-shadow: -2px 2px 5px rgba( 0, 0, 0, 0.4 );
-	}
-
-	.rtl #collapse-button div {
-		background-position: 0 -72px;
-	}
-}
-
-/* Edit Image */
-.rtl .meta-box-sortables .postbox:hover .handlediv {
-	background: transparent url(../images/arrows.png) no-repeat 6px 7px;
-}
-
-.rtl .tablenav .tablenav-pages a {
-	border-color: #e3e3e3;
-	background: #eee url('../images/menu-bits-rtl.gif?ver=20100610') repeat-x scroll right -379px;
-}
-
-.rtl #post-body .misc-pub-section {
-	border-right-color: none;
-	border-left-color: #eee;
-}
-
-.rtl .sidebar-name-arrow {
-	background: transparent url(../images/arrows.png) no-repeat 5px 9px;
-}
-
-.rtl .sidebar-name:hover .sidebar-name-arrow {
-	background: transparent url(../images/arrows-dark.png) no-repeat 5px 9px;
-}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-admin/css/colors-fresh.min.css	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,1 @@
+.find-box-search,.find-box-buttons{background-color:#f7f7f7;border-top:1px solid #ddd}.find-box{background-color:#444}.find-box-head{color:#eee}.find-box-inside{background-color:#fff}a.page-numbers:hover{border-color:#999}body,#wpbody,.form-table .pre,.ui-autocomplete li a{color:#333}body>#upload-menu{border-bottom-color:#fff}#postcustomstuff table,#your-profile fieldset,#rightnow,div.dashboard-widget,#dashboard-widgets p.dashboard-widget-links{border-color:#ccc}#poststuff .inside label.spam,#poststuff .inside label.deleted{color:red}#poststuff .inside label.waiting{color:orange}#poststuff .inside label.approved{color:green}#postcustomstuff table{border-color:#dfdfdf;background-color:#f9f9f9}#postcustomstuff thead th{background-color:#f1f1f1}.widefat{border-color:#dfdfdf;background-color:#f9f9f9}textarea.widefat{background-color:#fff}div.dashboard-widget-error{background-color:#c43}div.dashboard-widget-notice{background-color:#cfe1ef}div.dashboard-widget-submit{border-top-color:#ccc}ul.category-tabs li{border-color:transparent}div.tabs-panel,.wp-tab-panel,ul.add-menu-item-tabs li.tabs,.wp-tab-active{border-color:#dfdfdf;background-color:#fff}ul.category-tabs li.tabs{border-color:#dfdfdf #dfdfdf #fff}ul.category-tabs li.tabs,ul.add-menu-item-tabs li.tabs,.wp-tab-active{background-color:#fff}kbd,code{background:#eaeaea}textarea,input[type="text"],input[type="password"],input[type="file"],input[type="email"],input[type="number"],input[type="search"],input[type="tel"],input[type="url"],select{border-color:#dfdfdf}textarea:focus,input[type="text"]:focus,input[type="password"]:focus,input[type="file"]:focus,input[type="email"]:focus,input[type="number"]:focus,input[type="search"]:focus,input[type="tel"]:focus,input[type="url"]:focus,select:focus{border-color:#aaa}input.disabled,textarea.disabled{background-color:#ccc}#plugin-information .action-button a,#plugin-information .action-button a:hover,#plugin-information .action-button a:visited{color:#fff}.widget .widget-top,.postbox h3,.stuffbox h3,.widefat thead tr th,.widefat tfoot tr th,h3.dashboard-widget-title,h3.dashboard-widget-title span,h3.dashboard-widget-title small,.sidebar-name,#nav-menu-header,#nav-menu-footer,.menu-item-handle{background:#f1f1f1;background-image:-webkit-gradient(linear,left bottom,left top,from(#ececec),to(#f9f9f9));background-image:-webkit-linear-gradient(bottom,#ececec,#f9f9f9);background-image:-moz-linear-gradient(bottom,#ececec,#f9f9f9);background-image:-o-linear-gradient(bottom,#ececec,#f9f9f9);background-image:linear-gradient(to top,#ececec,#f9f9f9)}.widget .widget-top,.postbox h3,.stuffbox h3{border-bottom-color:#dfdfdf;text-shadow:#fff 0 1px 0;-webkit-box-shadow:0 1px 0 #fff;box-shadow:0 1px 0 #fff}.form-table th,.form-wrap label{color:#222;text-shadow:#fff 0 1px 0}.description,.form-wrap p{color:#666}strong .post-com-count span{background-color:#21759b}.sorthelper{background-color:#ccf3fa}.ac_match,.subsubsub a.current{color:#000}.wrap h2{color:#464646}.wrap .add-new-h2,.wrap .add-new-h2:active{background:#f1f1f1}.subtitle{color:#777}.ac_over{background-color:#f0f0b8}.ac_results{background-color:#fff;border-color:#808080}.ac_results li{color:#101010}.alternate,.alt{background-color:#fcfcfc}.available-theme a.screenshot{background-color:#f1f1f1;border-color:#ddd}#current-theme{border-bottom-color:#dfdfdf}.bar{background-color:#e8e8e8;border-right-color:#99d}#media-upload,#media-upload .media-item .slidetoggle{background:#fff}#media-upload .slidetoggle{border-top-color:#dfdfdf}div.error,.login #login_error{background-color:#ffebe8;border-color:#c00}div.error a{color:#c00}.form-invalid{background-color:#ffebe8!important}.form-invalid input,.form-invalid select{border-color:#c00!important}.submit,#commentsdiv #add-new-comment{border-color:#dfdfdf}.highlight{background-color:#e4f2fd;color:#000}.howto,.nonessential,#edit-slug-box,.form-input-tip,.subsubsub{color:#666}.media-upload-form label.form-help,td.help{color:#9a9a9a}.ui-autocomplete{border-color:#aaa;background-color:#efefef}.ui-autocomplete li a.ui-state-focus{background-color:#ddd}.post-com-count{color:#fff}.post-com-count span{background-color:#bbb;color:#fff}.post-com-count:hover span{background-color:#d54e21}.quicktags,.search{background-color:#ccc;color:#000}.side-info h5{border-bottom-color:#dadada}.side-info ul{color:#666}a:hover,a:active{color:#d54e21}a:focus{color:#124964}#adminmenu a:hover,#adminmenu li.menu-top>a:focus,#adminmenu .wp-submenu a:hover,#the-comment-list .comment a:hover,#rightnow a:hover,#media-upload a.del-link:hover,div.dashboard-widget-submit input:hover,.subsubsub a:hover,.subsubsub a.current:hover,.ui-tabs-nav a:hover,.plugins .inactive a:hover,#all-plugins-table .plugins .inactive a:hover,#search-plugins-table .plugins .inactive a:hover{color:#d54e21}#the-comment-list .comment-item,#dashboard-widgets #dashboard_quick_press form p.submit{border-color:#dfdfdf}#side-sortables .category-tabs .tabs a,#side-sortables .add-menu-item-tabs .tabs a,.wp-tab-bar .wp-tab-active a{color:#333}#rightnow .rbutton{background-color:#ebebeb;color:#264761}#dashboard_right_now .table_content,#dashboard_right_now .table_discussion{border-top-color:#ececec}.submitbox .submit{background-color:#464646;color:#ccc}.plugins a.delete:hover,#all-plugins-table .plugins a.delete:hover,#search-plugins-table .plugins a.delete:hover,.submitbox .submitdelete{color:#f00;border-bottom-color:#f00}.submitbox .submitdelete:hover,#media-items a.delete:hover,#media-items a.delete-permanently:hover{color:#fff;background-color:#f00;border-bottom-color:#f00}#normal-sortables .submitbox .submitdelete:hover{color:#000;background-color:#f00;border-bottom-color:#f00}.tablenav .dots{border-color:transparent}.tablenav .next,.tablenav .prev{border-color:transparent;color:#21759b}.tablenav .next:hover,.tablenav .prev:hover{border-color:transparent;color:#d54e21}div.updated,.login .message{background-color:#ffffe0;border-color:#e6db55}.update-message{color:#000}a.page-numbers{border-bottom-color:#b8d3e2}.commentlist li{border-bottom-color:#ccc}.widefat td,.widefat th{border-top-color:#fff;border-bottom-color:#dfdfdf}.widefat th{text-shadow:rgba(255,255,255,0.8) 0 1px 0}.widefat td{color:#555}.widefat p,.widefat ol,.widefat ul{color:#333}.widefat thead tr th,.widefat tfoot tr th,h3.dashboard-widget-title,h3.dashboard-widget-title span,h3.dashboard-widget-title small{color:#333}th.sortable a:hover,th.sortable a:active,th.sortable a:focus{color:#333}th.sortable a:focus{background:#e1e1e1;background-image:-webkit-gradient(linear,left bottom,left top,from(#dcdcdc),to(#e9e9e9));background-image:-webkit-linear-gradient(bottom,#dcdcdc,#e9e9e9);background-image:-moz-linear-gradient(bottom,#dcdcdc,#e9e9e9);background-image:-o-linear-gradient(bottom,#dcdcdc,#e9e9e9);background-image:linear-gradient(to top,#dcdcdc,#e9e9e9)}h3.dashboard-widget-title small a{color:#d7d7d7}h3.dashboard-widget-title small a:hover{color:#fff}a,#adminmenu a,#the-comment-list p.comment-author strong a,#media-upload a.del-link,#media-items a.delete,#media-items a.delete-permanently,.plugins a.delete,.ui-tabs-nav a{color:#21759b}#adminmenu .awaiting-mod,#adminmenu .update-plugins,#sidemenu a .update-plugins,#rightnow .reallynow{background-color:#464646;color:#fff;-webkit-box-shadow:rgba(255,255,255,0.5) 0 1px 0;box-shadow:rgba(255,255,255,0.5) 0 1px 0}#plugin-information .action-button{background-color:#d54e21;color:#fff}#adminmenu li.current a .awaiting-mod,#adminmenu li a.wp-has-current-submenu .update-plugins{background-color:#464646;color:#fff;-webkit-box-shadow:rgba(255,255,255,0.5) 0 1px 0;box-shadow:rgba(255,255,255,0.5) 0 1px 0}div#media-upload-header,div#plugin-information-header{background-color:#f9f9f9;border-bottom-color:#dfdfdf}#currenttheme img{border-color:#666}#dashboard_secondary div.dashboard-widget-content ul li a{background-color:#f9f9f9}input.readonly,textarea.readonly{background-color:#ddd}#editable-post-name{background-color:#fffbcc}#edit-slug-box strong,.tablenav .displaying-num,#submitted-on,.submitted-on{color:#777}.login #nav a,.login #backtoblog a{color:#21759b!important}.login #nav a:hover,.login #backtoblog a:hover{color:#d54e21!important}#wpfooter{color:#777;border-color:#dfdfdf}.imgedit-group,#media-items .media-item,.media-item .describe{border-color:#dfdfdf}.checkbox,.side-info,.plugins tr,#your-profile #rich_editing{background-color:#fcfcfc}.plugins .inactive,.plugins .inactive th,.plugins .inactive td,tr.inactive+tr.plugin-update-tr .plugin-update{background-color:#f4f4f4}.plugin-update-tr .update-message{background-color:#fffbe4;border-color:#dfdfdf}.plugins .active,.plugins .active th,.plugins .active td{color:#000}.plugins .inactive a{color:#579}#the-comment-list tr.undo,#the-comment-list div.undo{background-color:#f4f4f4}#the-comment-list .unapproved{background-color:#ffffe0}#the-comment-list .approve a{color:#006505}#the-comment-list .unapprove a{color:#d98500}table.widefat span.delete a,table.widefat span.trash a,table.widefat span.spam a,#dashboard_recent_comments .delete a,#dashboard_recent_comments .trash a,#dashboard_recent_comments .spam a{color:#bc0b0b}.welcome-panel{background:#f5f5f5;background-image:-webkit-gradient(linear,left bottom,left top,from(#f5f5f5),to(#fafafa));background-image:-webkit-linear-gradient(bottom,#f5f5f5,#fafafa);background-image:-moz-linear-gradient(bottom,#f5f5f5,#fafafa);background-image:-o-linear-gradient(bottom,#f5f5f5,#fafafa);background-image:linear-gradient(to top,#f5f5f5,#fafafa);border-color:#dfdfdf}.welcome-panel p{color:#777}.welcome-panel-column p{color:#464646}.welcome-panel h3{text-shadow:1px 1px 1px #fff}.widget,#widget-list .widget-top,.postbox,#titlediv,#poststuff .postarea,.stuffbox{border-color:#dfdfdf;-webkit-box-shadow:inset 0 1px 0 #fff;box-shadow:inset 0 1px 0 #fff;-webkit-border-radius:3px;border-radius:3px}.widget,#widget-list .widget-top,.postbox,.menu-item-settings{background:#f5f5f5;background-image:-webkit-gradient(linear,left bottom,left top,from(#f5f5f5),to(#f9f9f9));background-image:-webkit-linear-gradient(bottom,#f5f5f5,#f9f9f9);background-image:-moz-linear-gradient(bottom,#f5f5f5,#f9f9f9);background-image:-o-linear-gradient(bottom,#f5f5f5,#f9f9f9);background-image:linear-gradient(to top,#f5f5f5,#f9f9f9)}.postbox h3{color:#464646}.widget .widget-top{color:#222}.js .sidebar-name:hover h3,.js .postbox h3:hover{color:#000}.curtime #timestamp{background-image:url(../images/date-button.gif)}#rightnow .youhave{background-color:#f0f6fb}#rightnow a{color:#448abd}.tagchecklist span a,#bulk-titles div a{background:url(../images/xit.gif) no-repeat}.tagchecklist span a:hover,#bulk-titles div a:hover{background:url(../images/xit.gif) no-repeat -10px 0}#update-nag,.update-nag{background-color:#fffbcc;border-color:#e6db55;color:#555}#screen-meta{background-color:#f1f1f1;border-color:#ccc;-webkit-box-shadow:0 1px 3px rgba(0,0,0,0.05);box-shadow:0 1px 3px rgba(0,0,0,0.05)}#contextual-help-back{background:#fff}.contextual-help-tabs a:hover{color:#333}#contextual-help-back,.contextual-help-tabs .active{border-color:#ccc}.contextual-help-tabs .active,.contextual-help-tabs .active a,.contextual-help-tabs .active a:hover{background:#fff;color:#333}#screen-options-link-wrap,#contextual-help-link-wrap{border-right:1px solid #ccc;border-left:1px solid #ccc;border-bottom:1px solid #ccc;background:#e3e3e3;background-image:-webkit-gradient(linear,left bottom,left top,from(#dfdfdf),to(#f1f1f1));background-image:-webkit-linear-gradient(bottom,#dfdfdf,#f1f1f1);background-image:-moz-linear-gradient(bottom,#dfdfdf,#f1f1f1);background-image:-o-linear-gradient(bottom,#dfdfdf,#f1f1f1);background-image:linear-gradient(to top,#dfdfdf,#f1f1f1)}#screen-meta-links a{color:#777;background:transparent url(../images/arrows.png) no-repeat right 4px}#screen-meta-links a:hover,#screen-meta-links a:active{color:#333;background-color:transparent}#screen-meta-links a.screen-meta-active{background-position:right -31px}.login #backtoblog a{color:#464646}#wphead{border-bottom:#dfdfdf 1px solid}#wphead h1 a{color:#464646}#wpfooter a:link,#wpfooter a:visited{text-decoration:none}#wpfooter a:hover{text-decoration:underline}.file-error,abbr.required,.widget-control-remove:hover,table.widefat .delete a:hover,table.widefat .trash a:hover,table.widefat .spam a:hover,#dashboard_recent_comments .delete a:hover,#dashboard_recent_comments .trash a:hover #dashboard_recent_comments .spam a:hover{color:#f00}#pass-strength-result{background-color:#eee;border-color:#ddd!important}#pass-strength-result.bad{background-color:#ffb78c;border-color:#ff853c!important}#pass-strength-result.good{background-color:#ffec8b;border-color:#fc0!important}#pass-strength-result.short{background-color:#ffa0a0;border-color:#f04040!important}#pass-strength-result.strong{background-color:#c3ff88;border-color:#8dff1c!important}#post-status-info{border-color:#dfdfdf #ccc #ccc;background-color:#eaeaea}.editwidget .widget-inside{border-color:#dfdfdf}#titlediv #title{background-color:#fff}#tTips p#tTips_inside{background-color:#ddd;color:#333}#poststuff .inside .the-tagcloud{border-color:#ddd}#adminmenuback,#adminmenuwrap{background-color:#ececec;border-color:#ccc}#adminmenushadow,#adminmenuback{background-image:url(../images/menu-shadow.png);background-position:top right;background-repeat:repeat-y}#adminmenu li.wp-menu-separator{background:#dfdfdf;border-color:#cfcfcf}#adminmenu div.separator{border-color:#e1e1e1}#adminmenu a.menu-top,#adminmenu .wp-submenu .wp-submenu-head{border-top-color:#f9f9f9;border-bottom-color:#dfdfdf}#adminmenu li.wp-menu-open{border-color:#dfdfdf}#adminmenu li.menu-top:hover,#adminmenu li.opensub>a.menu-top,#adminmenu li>a.menu-top:focus{background-color:#e4e4e4;color:#d54e21;text-shadow:0 1px 0 rgba(255,255,255,0.4)}#adminmenu li.menu-top:hover>a span,#adminmenu li.menu-top>a:focus span{text-shadow:none}#adminmenu li.wp-has-current-submenu a.wp-has-current-submenu,#adminmenu li.current a.menu-top,.folded #adminmenu li.wp-has-current-submenu,.folded #adminmenu li.current.menu-top,#adminmenu .wp-menu-arrow,#adminmenu .wp-has-current-submenu .wp-submenu .wp-submenu-head{background:#777;background-image:-webkit-gradient(linear,left bottom,left top,from(#6d6d6d),to(#808080));background-image:-webkit-linear-gradient(bottom,#6d6d6d,#808080);background-image:-moz-linear-gradient(bottom,#6d6d6d,#808080);background-image:-o-linear-gradient(bottom,#6d6d6d,#808080);background-image:linear-gradient(to top,#6d6d6d,#808080)}#adminmenu .wp-menu-arrow div{background:#777;background-image:-webkit-gradient(linear,right bottom,left top,from(#6d6d6d),to(#808080));background-image:-webkit-linear-gradient(bottom right,#6d6d6d,#808080);background-image:-moz-linear-gradient(bottom right,#6d6d6d,#808080);background-image:-o-linear-gradient(bottom right,#6d6d6d,#808080);background-image:linear-gradient(to top left,#6d6d6d,#808080)}#adminmenu li.wp-not-current-submenu .wp-menu-arrow{border-top-color:#f9f9f9;border-bottom-color:#dfdfdf;background:#e4e4e4}#adminmenu li.wp-not-current-submenu .wp-menu-arrow div{background:#e4e4e4;border-color:#ccc}.folded #adminmenu li.menu-top li:hover a{background-image:none}#adminmenu li.wp-has-current-submenu a.wp-has-current-submenu,#adminmenu li.current a.menu-top,#adminmenu .wp-has-current-submenu .wp-submenu .wp-submenu-head{text-shadow:0 -1px 0 #333;color:#fff;border-top-color:#808080;border-bottom-color:#6d6d6d}.folded #adminmenu li.wp-has-current-submenu,.folded #adminmenu li.current.menu-top{border-top-color:#808080;border-bottom-color:#6d6d6d}#adminmenu .wp-submenu a:hover,#adminmenu .wp-submenu a:focus{background-color:#eaf2fa;color:#333}#adminmenu .wp-submenu li.current,#adminmenu .wp-submenu li.current a,#adminmenu .wp-submenu li.current a:hover{color:#333}#adminmenu .wp-submenu,.folded #adminmenu a.wp-has-current-submenu:focus+.wp-submenu,.folded #adminmenu .wp-has-current-submenu .wp-submenu{background-color:#fff;border-color:#dfdfdf;-webkit-box-shadow:2px 3px 6px rgba(0,0,0,0.4);box-shadow:2px 3px 6px rgba(0,0,0,0.4)}#adminmenu .wp-submenu .wp-submenu-head{background-color:#e4e4e4;color:#333}#collapse-menu{color:#aaa;border-top-color:#f9f9f9}#collapse-menu:hover{color:#999}#collapse-button{border-color:#ccc;background:#f4f4f4;background-image:-webkit-gradient(linear,left bottom,left top,from(#dfdfdf),to(#fff));background-image:-webkit-linear-gradient(bottom,#dfdfdf,#fff);background-image:-moz-linear-gradient(bottom,#dfdfdf,#fff);background-image:-o-linear-gradient(bottom,#dfdfdf,#fff);background-image:linear-gradient(to top,#dfdfdf,#fff)}#collapse-menu:hover #collapse-button{border-color:#aaa}#collapse-button div{background:transparent url(../images/arrows.png) no-repeat 0 -72px}.folded #collapse-button div{background-position:0 -108px}@media only screen and (max-width:900px){.auto-fold #adminmenu li.wp-has-current-submenu,.auto-fold #adminmenu li.current.menu-top{background-color:#777;background-image:-webkit-gradient(linear,left bottom,left top,from(#6d6d6d),to(#808080));background-image:-webkit-linear-gradient(bottom,#6d6d6d,#808080);background-image:-moz-linear-gradient(bottom,#6d6d6d,#808080);background-image:-o-linear-gradient(bottom,#6d6d6d,#808080);background-image:linear-gradient(bottom,#6d6d6d,#808080)}.auto-fold #adminmenu li.wp-has-current-submenu,.auto-fold #adminmenu li.current.menu-top{border-top-color:#808080;border-bottom-color:#6d6d6d}.auto-fold #adminmenu a.wp-has-current-submenu:focus+.wp-submenu,.auto-fold #adminmenu .wp-has-current-submenu .wp-submenu{background-color:#fff;border-color:#dfdfdf;-webkit-box-shadow:2px 3px 6px rgba(0,0,0,0.4);box-shadow:2px 3px 6px rgba(0,0,0,0.4)}.auto-fold #collapse-button div{background-position:0 -108px}}.icon16,.icon32,div.wp-menu-image{background-color:transparent;background-repeat:no-repeat}.icon16.icon-dashboard,.menu-icon-dashboard div.wp-menu-image,.icon16.icon-post,.menu-icon-post div.wp-menu-image,.icon16.icon-media,.menu-icon-media div.wp-menu-image,.icon16.icon-links,.menu-icon-links div.wp-menu-image,.icon16.icon-page,.menu-icon-page div.wp-menu-image,.icon16.icon-comments,.menu-icon-comments div.wp-menu-image,.icon16.icon-appearance,.menu-icon-appearance div.wp-menu-image,.icon16.icon-plugins,.menu-icon-plugins div.wp-menu-image,.icon16.icon-users,.menu-icon-users div.wp-menu-image,.icon16.icon-tools,.menu-icon-tools div.wp-menu-image,.icon16.icon-settings,.menu-icon-settings div.wp-menu-image,.icon16.icon-site,.menu-icon-site div.wp-menu-image,.icon16.icon-generic,.menu-icon-generic div.wp-menu-image{background-image:url(../images/menu.png?ver=20121105)}.icon16.icon-dashboard,#adminmenu .menu-icon-dashboard div.wp-menu-image{background-position:-59px -33px}#adminmenu .menu-icon-dashboard:hover div.wp-menu-image,#adminmenu .menu-icon-dashboard.wp-has-current-submenu div.wp-menu-image,#adminmenu .menu-icon-dashboard.current div.wp-menu-image{background-position:-59px -1px}.icon16.icon-post,#adminmenu .menu-icon-post div.wp-menu-image{background-position:-269px -33px}#adminmenu .menu-icon-post:hover div.wp-menu-image,#adminmenu .menu-icon-post.wp-has-current-submenu div.wp-menu-image,#adminmenu .menu-icon-post.current div.wp-menu-image{background-position:-269px -1px}.icon16.icon-media,#adminmenu .menu-icon-media div.wp-menu-image{background-position:-119px -33px}#adminmenu .menu-icon-media:hover div.wp-menu-image,#adminmenu .menu-icon-media.wp-has-current-submenu div.wp-menu-image,#adminmenu .menu-icon-media.current div.wp-menu-image{background-position:-119px -1px}.icon16.icon-links,#adminmenu .menu-icon-links div.wp-menu-image{background-position:-89px -33px}#adminmenu .menu-icon-links:hover div.wp-menu-image,#adminmenu .menu-icon-links.wp-has-current-submenu div.wp-menu-image,#adminmenu .menu-icon-links.current div.wp-menu-image{background-position:-89px -1px}.icon16.icon-page,#adminmenu .menu-icon-page div.wp-menu-image{background-position:-149px -33px}#adminmenu .menu-icon-page:hover div.wp-menu-image,#adminmenu .menu-icon-page.wp-has-current-submenu div.wp-menu-image,#adminmenu .menu-icon-page.current div.wp-menu-image{background-position:-149px -1px}.icon16.icon-comments,#adminmenu .menu-icon-comments div.wp-menu-image{background-position:-29px -33px}#adminmenu .menu-icon-comments:hover div.wp-menu-image,#adminmenu .menu-icon-comments.wp-has-current-submenu div.wp-menu-image,#adminmenu .menu-icon-comments.current div.wp-menu-image{background-position:-29px -1px}.icon16.icon-appearance,#adminmenu .menu-icon-appearance div.wp-menu-image{background-position:1px -33px}#adminmenu .menu-icon-appearance:hover div.wp-menu-image,#adminmenu .menu-icon-appearance.wp-has-current-submenu div.wp-menu-image,#adminmenu .menu-icon-appearance.current div.wp-menu-image{background-position:1px -1px}.icon16.icon-plugins,#adminmenu .menu-icon-plugins div.wp-menu-image{background-position:-179px -33px}#adminmenu .menu-icon-plugins:hover div.wp-menu-image,#adminmenu .menu-icon-plugins.wp-has-current-submenu div.wp-menu-image,#adminmenu .menu-icon-plugins.current div.wp-menu-image{background-position:-179px -1px}.icon16.icon-users,#adminmenu .menu-icon-users div.wp-menu-image{background-position:-300px -33px}#adminmenu .menu-icon-users:hover div.wp-menu-image,#adminmenu .menu-icon-users.wp-has-current-submenu div.wp-menu-image,#adminmenu .menu-icon-users.current div.wp-menu-image{background-position:-300px -1px}.icon16.icon-tools,#adminmenu .menu-icon-tools div.wp-menu-image{background-position:-209px -33px}#adminmenu .menu-icon-tools:hover div.wp-menu-image,#adminmenu .menu-icon-tools.wp-has-current-submenu div.wp-menu-image,#adminmenu .menu-icon-tools.current div.wp-menu-image{background-position:-209px -1px}.icon16.icon-settings,#adminmenu .menu-icon-settings div.wp-menu-image{background-position:-239px -33px}#adminmenu .menu-icon-settings:hover div.wp-menu-image,#adminmenu .menu-icon-settings.wp-has-current-submenu div.wp-menu-image,#adminmenu .menu-icon-settings.current div.wp-menu-image{background-position:-239px -1px}.icon16.icon-site,#adminmenu .menu-icon-site div.wp-menu-image{background-position:-359px -33px}#adminmenu .menu-icon-site:hover div.wp-menu-image,#adminmenu .menu-icon-site.wp-has-current-submenu div.wp-menu-image,#adminmenu .menu-icon-site.current div.wp-menu-image{background-position:-359px -1px}.icon16.icon-generic,#adminmenu .menu-icon-generic div.wp-menu-image{background-position:-330px -33px}#adminmenu .menu-icon-generic:hover div.wp-menu-image,#adminmenu .menu-icon-generic.wp-has-current-submenu div.wp-menu-image,#adminmenu .menu-icon-generic.current div.wp-menu-image{background-position:-330px -1px}.icon32.icon-post,#icon-edit,#icon-post,.icon32.icon-dashboard,#icon-index,.icon32.icon-media,#icon-upload,.icon32.icon-links,#icon-link-manager,#icon-link,#icon-link-category,.icon32.icon-page,#icon-edit-pages,#icon-page,.icon32.icon-comments,#icon-edit-comments,.icon32.icon-appearance,#icon-themes,.icon32.icon-plugins,#icon-plugins,.icon32.icon-users,#icon-users,#icon-profile,#icon-user-edit,.icon32.icon-tools,#icon-tools,#icon-admin,.icon32.icon-settings,#icon-options-general,.icon32.icon-site,#icon-ms-admin,.icon32.icon-generic,#icon-generic{background-image:url(../images/icons32.png?ver=20121105)}.icon32.icon-post,#icon-edit,#icon-post{background-position:-552px -5px}.icon32.icon-dashboard,#icon-index{background-position:-137px -5px}.icon32.icon-media,#icon-upload{background-position:-251px -5px}.icon32.icon-links,#icon-link-manager,#icon-link,#icon-link-category{background-position:-190px -5px}.icon32.icon-page,#icon-edit-pages,#icon-page{background-position:-312px -5px}.icon32.icon-comments,#icon-edit-comments{background-position:-72px -5px}.icon32.icon-appearance,#icon-themes{background-position:-11px -5px}.icon32.icon-plugins,#icon-plugins{background-position:-370px -5px}.icon32.icon-users,#icon-users,#icon-profile,#icon-user-edit{background-position:-600px -5px}.icon32.icon-tools,#icon-tools,#icon-admin{background-position:-432px -5px}.icon32.icon-settings,#icon-options-general{background-position:-492px -5px}.icon32.icon-site,#icon-ms-admin{background-position:-659px -5px}.icon32.icon-generic,#icon-generic{background-position:-708px -5px}table.diff .diff-deletedline{background-color:#fdd}table.diff .diff-deletedline del{background-color:#f99}table.diff .diff-addedline{background-color:#dfd}table.diff .diff-addedline ins{background-color:#9f9}#att-info{background-color:#e4f2fd}#sidemenu a{background-color:#f9f9f9;border-color:#f9f9f9;border-bottom-color:#dfdfdf}#sidemenu a.current{background-color:#fff;border-color:#dfdfdf #dfdfdf #fff;color:#d54e21}#replyerror{border-color:#ddd;background-color:#f9f9f9}.vim-current,.vim-current th,.vim-current td{background-color:#e4f2fd!important}#plugin-information .fyi ul{background-color:#eaf3fa}#plugin-information .fyi h2.mainheader{background-color:#cee1ef}#plugin-information pre,#plugin-information code{background-color:#ededff}#plugin-information pre{border:1px solid #ccc}#bulk-titles{border-color:#ddd}.inline-editor div.title{background-color:#eaf3fa}.inline-editor ul.cat-checklist{background-color:#fff;border-color:#ddd}.inline-editor .categories .catshow,.inline-editor .categories .cathide{color:#21759b}.inline-editor .quick-edit-save{background-color:#f1f1f1}fieldset.inline-edit-col-right .inline-edit-col{border-color:#dfdfdf}.attention{color:#d54e21}.js .meta-box-sortables .postbox:hover .handlediv{background:transparent url(../images/arrows.png) no-repeat 6px 7px}.tablenav .tablenav-pages{color:#555}.tablenav .tablenav-pages a{border-color:#e3e3e3;background:#eee;-moz-box-shadow:inset 0 1px 0 #fff;-webkit-box-shadow:inset 0 1px 0 #fff;box-shadow:inset 0 1px 0 #fff}.tablenav .tablenav-pages a:hover,.tablenav .tablenav-pages a:focus{color:#d54e21}.tablenav .tablenav-pages a.disabled,.tablenav .tablenav-pages a.disabled:hover,.tablenav .tablenav-pages a.disabled:focus{color:#aaa}.tablenav .tablenav-pages .current{background:#dfdfdf;border-color:#d3d3d3}#availablethemes,#availablethemes td{border-color:#ddd}#current-theme img{border-color:#999}#TB_window #TB_title a.tb-theme-preview-link,#TB_window #TB_title a.tb-theme-preview-link:visited{color:#999}#TB_window #TB_title a.tb-theme-preview-link:hover,#TB_window #TB_title a.tb-theme-preview-link:focus{color:#ccc}.misc-pub-section{border-top-color:#fff;border-bottom-color:#dfdfdf}#minor-publishing{border-bottom-color:#dfdfdf}#post-body .misc-pub-section{border-left-color:#eee}.post-com-count span{background-color:#bbb}.form-table .color-palette td{border-color:#fff}.sortable-placeholder{border-color:#bbb;background-color:#f5f5f5}#post-body ul.category-tabs li.tabs a,#post-body ul.add-menu-item-tabs li.tabs a,body.press-this ul.category-tabs li.tabs a{color:#333}.view-switch #view-switch-list,.view-switch #view-switch-excerpt{background-color:transparent;background-image:url('../images/list.png');background-repeat:no-repeat}.view-switch #view-switch-list{background-position:0 0}.view-switch .current #view-switch-list{background-position:-40px 0}.view-switch #view-switch-excerpt{background-position:-20px 0}.view-switch .current #view-switch-excerpt{background-position:-60px 0}#header-logo{background:transparent url(../images/wp-logo.png?ver=20110504) no-repeat scroll center center}.popular-tags,.feature-filter{background-color:#fff;border-color:#dfdfdf}div.widgets-sortables,#widgets-left .inactive,#available-widgets .widget-holder{background-color:#fcfcfc;border-color:#dfdfdf}#available-widgets .widget-description{color:#555}.sidebar-name{color:#464646;text-shadow:#fff 0 1px 0;border-color:#dfdfdf;-webkit-box-shadow:inset 0 1px 0 #fff;box-shadow:inset 0 1px 0 #fff}.js .sidebar-name:hover,.js #removing-widget{color:#d54e21}#removing-widget span{color:black}.js .sidebar-name-arrow{background:transparent url(../images/arrows.png) no-repeat 5px 9px}.js .sidebar-name:hover .sidebar-name-arrow{background:transparent url(../images/arrows-dark.png) no-repeat 5px 9px}.in-widget-title{color:#606060}.deleting .widget-title *{color:#aaa}.imgedit-menu div{border-color:#d5d5d5;background-color:#f1f1f1}.imgedit-menu div:hover{border-color:#c1c1c1;background-color:#eaeaea}.imgedit-menu div.disabled{border-color:#ccc;background-color:#ddd;filter:alpha(opacity=50);opacity:.5}#dashboard_recent_comments div.undo{border-top-color:#dfdfdf}.comment-ays,.comment-ays th{border-color:#ddd}.comment-ays th{background-color:#f1f1f1}#menu-management .menu-edit{border-color:#dfdfdf}#post-body{background:#fff;border-top-color:#fff;border-bottom-color:#dfdfdf}#nav-menu-header{border-bottom-color:#dfdfdf}#nav-menu-footer{border-top-color:#fff}#menu-management .nav-tabs-arrow a{color:#c1c1c1}#menu-management .nav-tabs-arrow a:hover{color:#d54e21}#menu-management .nav-tabs-arrow a:active{color:#464646}#menu-management .nav-tab-active{border-color:#dfdfdf}#menu-management .nav-tab{background:#fbfbfb;border-color:#dfdfdf}.js .input-with-default-title{color:#aaa}#cancel-save{color:#f00}#cancel-save:hover{background-color:#f00;color:#fff}.list-container,.menu-item-handle{border-color:#dfdfdf}.menu li.deleting .menu-item-handle{background-color:#f66;text-shadow:#ccc}.item-type{color:#999}.item-controls .menu-item-delete:hover{color:#f00}.nav-menus-php .item-edit{background:transparent url(../images/arrows.png) no-repeat 8px 10px;border-bottom-color:#eee}.nav-menus-php .item-edit:hover{background:transparent url(../images/arrows-dark.png) no-repeat 8px 10px}.menu-item-settings{border-color:#dfdfdf}.link-to-original{color:#777;border-color:#dfdfdf}#cancel-save:hover{color:#fff!important}#update-menu-item{color:#fff!important}#update-menu-item:hover,#update-menu-item:active,#update-menu-item:focus{color:#eaf2fa!important;border-color:#13455b!important}.submitbox .submitcancel{color:#21759b;border-bottom-color:#21759b}.submitbox .submitcancel:hover{background:#21759b;color:#fff}.nav-tab{border-color:#dfdfdf #dfdfdf #fff}.nav-tab:hover,.nav-tab-active{border-color:#ccc #ccc #fff}h2.nav-tab-wrapper,h3.nav-tab-wrapper{border-bottom-color:#ccc}#menu-management .nav-tab-active,.menu-item-handle,.menu-item-settings{-webkit-box-shadow:inset 0 1px 0 #fff;box-shadow:inset 0 1px 0 #fff}#menu-management .nav-tab-active{background:#f9f9f9;border-bottom-color:#f9f9f9}#upload-form label{color:#777}.about-wrap h1{color:#333;text-shadow:1px 1px 1px #fff}.about-text{color:#777}.wp-badge{color:#fff;text-shadow:0 -1px 0 rgba(22,57,81,0.3)}.about-wrap h2 .nav-tab{color:#21759b}.about-wrap h2 .nav-tab:hover{color:#d54e21}.about-wrap h2 .nav-tab-active,.about-wrap h2 .nav-tab-active:hover{color:#333}.about-wrap h2 .nav-tab-active{text-shadow:1px 1px 1px #fff;color:#464646}.about-wrap h3{color:#333;text-shadow:1px 1px 1px #fff}.about-wrap .feature-section h4{color:#464646}.about-wrap .feature-section img{background:#fff;border:1px #ccc solid;-webkit-box-shadow:0 1px 3px rgba(0,0,0,0.3);box-shadow:0 1px 3px rgba(0,0,0,0.3)}.about-wrap h4.wp-people-group{text-shadow:1px 1px 1px #fff}.about-wrap .point-releases{border-bottom:1px solid #dfdfdf}.about-wrap .point-releases h3{border-top:1px solid #dfdfdf}.about-wrap .point-releases h3:first-child{border:0}.about-wrap li.wp-person img.gravatar{-webkit-box-shadow:0 0 4px rgba(0,0,0,0.4);box-shadow:0 0 4px rgba(0,0,0,0.4)}.about-wrap li.wp-person .title{color:#464646;text-shadow:1px 1px 1px #fff}.freedoms-php .about-wrap ol li{color:#999}.freedoms-php .about-wrap ol p{color:#464646}.rtl .bar{border-right-color:transparent;border-left-color:#99d}.rtl #screen-meta-links a.show-settings{background-position:left 3px}.rtl #screen-meta-links a.show-settings.screen-meta-active{background-position:left -33px}.rtl #adminmenushadow,.rtl #adminmenuback{background-image:url(../images/menu-shadow-rtl.png);background-position:top left}.rtl #adminmenu .wp-submenu .wp-submenu-head{border-right-color:transparent;border-left-color:#dfdfdf}.rtl #adminmenu .wp-submenu,.rtl.folded #adminmenu .wp-has-current-submenu .wp-submenu{-webkit-box-shadow:-2px 2px 5px rgba(0,0,0,0.4);box-shadow:-2px 2px 5px rgba(0,0,0,0.4)}.rtl #adminmenu .wp-has-current-submenu .wp-submenu{-webkit-box-shadow:none;box-shadow:none}.rtl #collapse-button div{background-position:0 -108px}.rtl.folded #collapse-button div{background-position:0 -72px}@media only screen and (max-width:900px){.rtl.auto-fold #adminmenu a.wp-has-current-submenu:focus+.wp-submenu,.rtl.auto-fold #adminmenu .wp-has-current-submenu .wp-submenu{-webkit-box-shadow:-2px 2px 5px rgba(0,0,0,0.4);box-shadow:-2px 2px 5px rgba(0,0,0,0.4)}.rtl.auto-fold #collapse-button div{background-position:0 -72px}}.js.rtl .meta-box-sortables .postbox:hover .handlediv{background:transparent url(../images/arrows.png) no-repeat 6px 7px}.rtl #post-body .misc-pub-section{border-right-color:transparent;border-left-color:#eee}.js.rtl .sidebar-name-arrow{background:transparent url(../images/arrows.png) no-repeat 5px 9px}.js.rtl .sidebar-name:hover .sidebar-name-arrow{background:transparent url(../images/arrows-dark.png) no-repeat 5px 9px}@media print,(-o-min-device-pixel-ratio:5/4),(-webkit-min-device-pixel-ratio:1.25),(min-resolution:120dpi){.curtime #timestamp{background-image:url("../images/date-button-2x.gif?ver=20120916");background-size:16px auto}.tagchecklist span a,#bulk-titles div a,.tagchecklist span a:hover,#bulk-titles div a:hover{background-image:url("../images/xit-2x.gif?ver=20120916");background-size:20px auto}#screen-meta-links a.show-settings,#screen-meta-links a.show-settings.screen-meta-active,#adminmenu .wp-has-submenu:hover .wp-menu-toggle,#adminmenu .wp-menu-open .wp-menu-toggle,#collapse-button div,.nav-menus-php .item-edit,.js .meta-box-sortables .postbox:hover .handlediv,.sidebar-name-arrow,.rtl #adminmenu .wp-has-submenu:hover .wp-menu-toggle,.rtl #adminmenu .wp-menu-open .wp-menu-toggle,.js.rtl .meta-box-sortables .postbox:hover .handlediv,.rtl .sidebar-name-arrow{background-image:url("../images/arrows-2x.png?ver=20120916");background-size:15px 123px}#adminmenu li.wp-has-current-submenu.wp-menu-open .wp-menu-toggle,#adminmenu li.wp-has-current-submenu:hover .wp-menu-toggle,.sidebar-name:hover .sidebar-name-arrow,.nav-menus-php .item-edit:hover,.rtl #adminmenu li.wp-has-current-submenu.wp-menu-open .wp-menu-toggle,.rtl #adminmenu li.wp-has-current-submenu:hover .wp-menu-toggle,.rtl .sidebar-name:hover .sidebar-name-arrow{background-image:url("../images/arrows-dark-2x.png?ver=20120916");background-size:15px 123px}.view-switch #view-switch-list,.view-switch #view-switch-excerpt{background-image:url("../images/list-2x.png?ver=20120916");background-size:80px 20px}.icon32.icon-post,#icon-edit,#icon-post,.icon32.icon-dashboard,#icon-index,.icon32.icon-media,#icon-upload,.icon32.icon-links,#icon-link-manager,#icon-link,#icon-link-category,.icon32.icon-page,#icon-edit-pages,#icon-page,.icon32.icon-comments,#icon-edit-comments,.icon32.icon-appearance,#icon-themes,.icon32.icon-plugins,#icon-plugins,.icon32.icon-users,#icon-users,#icon-profile,#icon-user-edit,.icon32.icon-tools,#icon-tools,#icon-admin,.icon32.icon-settings,#icon-options-general,.icon32.icon-site,#icon-ms-admin,.icon32.icon-generic,#icon-generic{background-image:url(../images/icons32-2x.png?ver=20121105);background-size:756px 45px}.icon16.icon-dashboard,.menu-icon-dashboard div.wp-menu-image,.icon16.icon-post,.menu-icon-post div.wp-menu-image,.icon16.icon-media,.menu-icon-media div.wp-menu-image,.icon16.icon-links,.menu-icon-links div.wp-menu-image,.icon16.icon-page,.menu-icon-page div.wp-menu-image,.icon16.icon-comments,.menu-icon-comments div.wp-menu-image,.icon16.icon-appearance,.menu-icon-appearance div.wp-menu-image,.icon16.icon-plugins,.menu-icon-plugins div.wp-menu-image,.icon16.icon-users,.menu-icon-users div.wp-menu-image,.icon16.icon-tools,.menu-icon-tools div.wp-menu-image,.icon16.icon-settings,.menu-icon-settings div.wp-menu-image,.icon16.icon-site,.menu-icon-site div.wp-menu-image,.icon16.icon-generic,.menu-icon-generic div.wp-menu-image{background-image:url('../images/menu-2x.png?ver=20121105');background-size:390px 64px}#header-logo{background-image:url('../images/wp-logo-2x.png?ver=20120916');background-size:16px auto}}
\ No newline at end of file
--- a/web/wp-admin/css/customize-controls-rtl.css	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-admin/css/customize-controls-rtl.css	Wed Dec 19 17:46:52 2012 -0800
@@ -1,1 +1,85 @@
-.control-section .customize-section-title{font-family:Tahoma,Arial,sans-serif}.customize-section-title:after{right:auto;left:20px}#customize-header-actions .button-primary{float:left}#customize-header-actions img{float:left;margin-right:0;margin-left:4px}.customize-control{float:right}.customize-control-radio input,.customize-control-checkbox input{margin-right:0;margin-left:5px}.customize-section .dropdown{float:right}.customize-section .dropdown-content{float:right;margin-right:0;margin-left:16px;-webkit-border-radius:0 3px 3px 0;border-radius:0 3px 3px 0}.customize-control .dropdown-arrow{right:auto;left:0;border-color:#ccc;border-style:solid;border-width:1px 0 1px 1px;-webkit-border-radius:3px 0 0 3px;border-radius:3px 0 0 3px}.customize-control .dropdown-arrow:after{right:auto;left:4px}.customize-control-color .dropdown{margin-right:0;margin-left:5px}.customize-section input[type="text"].color-picker-hex,.customize-control-color .farbtastic-placeholder{float:right}.customize-section .customize-control-image .actions{text-align:left}.customize-control-image .library,.customize-control-image .actions,.customize-section .customize-control-image .library ul,.customize-section .customize-control-image .library li,.customize-section .customize-control-image .library-content{float:right}
\ No newline at end of file
+.control-section .customize-section-title {
+	font-family: Tahoma, Arial, sans-serif;
+}
+.customize-section-title:after {
+	right: auto;
+	left: 20px;
+}
+
+#customize-header-actions .button-primary {
+	float: left;
+}
+
+#customize-header-actions .spinner {
+	float: left;
+	margin-right: 0;
+	margin-left: 4px;
+}
+
+.customize-control {
+	float: right;
+}
+
+.customize-control-radio input,
+.customize-control-checkbox input {
+	margin-right: 0;
+	margin-left: 5px;
+}
+
+/*
+ * Dropdowns
+ */
+.customize-section .dropdown {
+	float: right;
+}
+
+.customize-section .dropdown-content {
+	float: right;
+	margin-right: 0px;
+	margin-left: 16px;
+	-webkit-border-radius: 0 3px 3px 0;
+	border-radius: 0 3px 3px 0;
+}
+
+.customize-control .dropdown-arrow {
+	right: auto;
+	left: 0;
+
+	border-color: #ccc;
+	border-style: solid;
+	border-width: 1px 0 1px 1px;
+	-webkit-border-radius: 3px 0 0 3px;
+	border-radius: 3px 0 0 3px;
+}
+
+.customize-control .dropdown-arrow:after {
+	right: auto;
+	left: 4px;
+}
+
+/*
+ * Color Picker
+ */
+.customize-control-color .dropdown {
+	margin-right: 0;
+	margin-left: 5px;
+}
+
+.customize-section input[type="text"].color-picker-hex {
+	float: right;
+}
+
+/*
+ * Image Picker
+ */
+.customize-section .customize-control-image .actions {
+	text-align: left;
+}
+
+.customize-control-image .library,
+.customize-control-image .actions,
+.customize-section .customize-control-image .library ul,
+.customize-section .customize-control-image .library li,
+.customize-section .customize-control-image .library-content {
+	float: right;
+}
--- a/web/wp-admin/css/customize-controls-rtl.dev.css	Wed Dec 19 12:35:13 2012 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,86 +0,0 @@
-.control-section .customize-section-title {
-	font-family: Tahoma, Arial, sans-serif;
-}
-.customize-section-title:after {
-	right: auto;
-	left: 20px;
-}
-
-#customize-header-actions .button-primary {
-	float: left;
-}
-
-#customize-header-actions img {
-	float: left;
-	margin-right: 0;
-	margin-left: 4px;
-}
-
-.customize-control {
-	float: right;
-}
-
-.customize-control-radio input,
-.customize-control-checkbox input {
-	margin-right: 0;
-	margin-left: 5px;
-}
-
-/*
- * Dropdowns
- */
-.customize-section .dropdown {
-	float: right;
-}
-
-.customize-section .dropdown-content {
-	float: right;
-	margin-right: 0px;
-	margin-left: 16px;
-	-webkit-border-radius: 0 3px 3px 0;
-	border-radius: 0 3px 3px 0;
-}
-
-.customize-control .dropdown-arrow {
-	right: auto;
-	left: 0;
-
-	border-color: #ccc;
-	border-style: solid;
-	border-width: 1px 0 1px 1px;
-	-webkit-border-radius: 3px 0 0 3px;
-	border-radius: 3px 0 0 3px;
-}
-
-.customize-control .dropdown-arrow:after {
-	right: auto;
-	left: 4px;
-}
-
-/*
- * Color Picker
- */
-.customize-control-color .dropdown {
-	margin-right: 0;
-	margin-left: 5px;
-}
-
-.customize-section input[type="text"].color-picker-hex,
-.customize-control-color .farbtastic-placeholder {
-	float: right;
-}
-
-/*
- * Image Picker
- */
-.customize-section .customize-control-image .actions {
-	text-align: left;
-}
-
-.customize-control-image .library,
-.customize-control-image .actions,
-.customize-section .customize-control-image .library ul,
-.customize-section .customize-control-image .library li,
-.customize-section .customize-control-image .library-content {
-	float: right;
-}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-admin/css/customize-controls-rtl.min.css	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,1 @@
+.control-section .customize-section-title{font-family:Tahoma,Arial,sans-serif}.customize-section-title:after{right:auto;left:20px}#customize-header-actions .button-primary{float:left}#customize-header-actions .spinner{float:left;margin-right:0;margin-left:4px}.customize-control{float:right}.customize-control-radio input,.customize-control-checkbox input{margin-right:0;margin-left:5px}.customize-section .dropdown{float:right}.customize-section .dropdown-content{float:right;margin-right:0;margin-left:16px;-webkit-border-radius:0 3px 3px 0;border-radius:0 3px 3px 0}.customize-control .dropdown-arrow{right:auto;left:0;border-color:#ccc;border-style:solid;border-width:1px 0 1px 1px;-webkit-border-radius:3px 0 0 3px;border-radius:3px 0 0 3px}.customize-control .dropdown-arrow:after{right:auto;left:4px}.customize-control-color .dropdown{margin-right:0;margin-left:5px}.customize-section input[type="text"].color-picker-hex{float:right}.customize-section .customize-control-image .actions{text-align:left}.customize-control-image .library,.customize-control-image .actions,.customize-section .customize-control-image .library ul,.customize-section .customize-control-image .library li,.customize-section .customize-control-image .library-content{float:right}
\ No newline at end of file
--- a/web/wp-admin/css/customize-controls.css	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-admin/css/customize-controls.css	Wed Dec 19 17:46:52 2012 -0800
@@ -1,1 +1,527 @@
-body{overflow:hidden}#customize-controls a{text-decoration:none}.customize-section{border-top:1px solid #fff;border-bottom:1px solid #dfdfdf;margin:0}.control-section.customize-section:hover,.control-section.customize-section.open{border-top-color:#808080}.control-section.customize-section:hover{border-bottom-color:#6d6d6d}.customize-section.open:hover{border-bottom-color:#dfdfdf}.customize-section:last-child{box-shadow:0 1px 0 0 #fff}.customize-section-title{margin:0;padding:15px 20px;position:relative;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.cannot-expand .customize-section-title{cursor:auto}.customize-section-content{display:none;padding:10px 20px 15px;overflow:hidden}.control-section .customize-section-title{padding:10px 20px;font-size:15px;font-family:Georgia,"Times New Roman","Bitstream Charter",Times,serif;font-weight:normal;text-shadow:0 1px 0 #fff;background-color:#f5f5f5;background-image:-webkit-linear-gradient(top,#f5f5f5,#eee);background-image:-moz-linear-gradient(top,#f5f5f5,#eee);background-image:-ms-linear-gradient(top,#f5f5f5,#eee);background-image:-o-linear-gradient(top,#f5f5f5,#eee);background-image:linear-gradient(top,#f5f5f5,#eee)}.control-section:hover .customize-section-title,.control-section .customize-section-title:hover,.control-section.open .customize-section-title{color:#fff;text-shadow:0 -1px 0 #333;background-color:#808080;background-image:-webkit-linear-gradient(top,#808080,#6d6d6d);background-image:-moz-linear-gradient(top,#808080,#6d6d6d);background-image:-ms-linear-gradient(top,#808080,#6d6d6d);background-image:-o-linear-gradient(top,#808080,#6d6d6d);background-image:linear-gradient(top,#808080,#6d6d6d)}.control-section.open .customize-section-title{border-bottom:1px solid #6d6d6d}.customize-section.open .customize-section-content{display:block;background:#fdfdfd}.customize-section-title:after{content:'';width:0;height:0;border-color:#ccc transparent;border-style:solid;border-width:6px 6px 0;position:absolute;top:25px;right:20px;z-index:1}.cannot-expand .customize-section-title:after{display:none}.customize-section-title:hover:after{border-color:#aaa transparent}.control-section .customize-section-title:hover:after{border-color:#eee transparent}.control-section .customize-section-title:after{top:15px}#customize-info .customize-section-content{background:transparent}#customize-info .preview-notice{font-size:13px;line-height:24px;color:#999}#customize-info .theme-name{font-size:20px;font-weight:200;line-height:24px;color:#333;display:block;text-shadow:0 1px 0 #fff}#customize-info .theme-screenshot{width:258px;border:1px solid #ccc}#customize-info .theme-description{margin-top:1em;color:#777;line-height:20px}#customize-controls .submit{text-align:center}#customize-theme-controls>ul,#customize-theme-controls .customize-section-content{margin:0}#customize-header-actions .button-primary{float:right;margin-top:11px}#customize-header-actions img{display:none;float:right;margin-top:13px;margin-right:4px}.saving #customize-header-actions img{display:block}.customize-control{width:100%;float:left;clear:both;margin-bottom:8px}.customize-control-title{display:block;line-height:24px;font-weight:bold}.customize-control select,.customize-control input[type="text"],.customize-control input[type="radio"],.customize-control input[type="checkbox"],.customize-control-color .color-picker,.customize-control-checkbox label,.customize-control-upload div{line-height:28px}.customize-control input[type="text"]{width:98%;line-height:18px;margin:0}.customize-control select{min-width:50%;max-width:100%;height:28px;line-height:28px}.customize-control-checkbox input{margin-right:5px}.customize-control-radio{padding:5px 0 10px}.customize-control-radio .customize-control-title{margin-bottom:0;line-height:22px}.customize-control-radio label{line-height:20px}.customize-control-radio input{margin-right:5px}#customize-preview iframe{width:100%;height:100%}.customize-section .dropdown{float:left;display:block;position:relative;cursor:pointer;-webkit-border-radius:3px;border-radius:3px}.customize-section .dropdown-content{overflow:hidden;float:left;min-width:30px;height:16px;line-height:16px;margin-right:16px;padding:4px 5px;background-color:#eee;border:1px solid #ccc;-webkit-border-radius:3px 0 0 3px;border-radius:3px 0 0 3px;-webkit-user-select:none;-moz-user-select:none;user-select:none}.customize-control .dropdown-arrow{position:absolute;top:0;bottom:0;right:0;width:15px;border-color:#ccc;border-style:solid;border-width:1px 1px 1px 0;-webkit-border-radius:0 3px 3px 0;border-radius:0 3px 3px 0}.customize-control .dropdown-arrow:after{content:'';width:0;height:0;border-color:#ccc transparent;border-style:solid;border-width:4px 4px 0 4px;position:absolute;top:50%;margin-top:-1px;right:4px;z-index:1}.customize-section .dropdown:hover .dropdown-content,.customize-control .dropdown:hover .dropdown-arrow{border-color:#aaa}.customize-section .dropdown:hover .dropdown-arrow:after{border-color:#aaa transparent}.customize-control .dropdown-status{display:none;max-width:112px;color:#777}.customize-control-color .color-picker-hex,.customize-control-color .farbtastic-placeholder{display:none}.customize-control-color.open .color-picker-hex,.customize-control-color.open .farbtastic-placeholder{display:block}.customize-control-color .dropdown{margin-right:5px;margin-bottom:5px}.customize-control-color .dropdown .dropdown-content{background-color:#fff;border:1px solid rgba(0,0,0,0.15)}.customize-control-color .dropdown:hover .dropdown-content{border-color:rgba(0,0,0,0.25)}.customize-section input[type="text"].color-picker-hex{float:left;width:85px;font-family:monospace;text-align:center}.customize-section input[type="text"].color-picker-hex:focus::-webkit-input-placeholder{color:transparent}.customize-section input[type="text"].color-picker-hex:-moz-placeholder{color:#999}.customize-control-color .farbtastic-placeholder{width:100%;margin:5px 0 10px;float:left}.customize-control-color .farbtastic{margin:0 auto}.customize-control-image .library,.customize-control-image .actions{display:none;float:left;width:100%}.customize-control-image.open .library,.customize-control-image.open .actions{display:block}.customize-section .customize-control-image .dropdown-content{height:auto;min-height:24px;min-width:40px;padding:0}.customize-section .customize-control-image .dropdown-status{padding:4px 5px}.customize-section .customize-control-image .preview-thumbnail img{display:block;width:100%;max-width:122px;max-height:98px;margin:0 auto}.customize-section .customize-control-image .actions{text-align:right}.customize-section .customize-control-image .library ul{border-bottom:1px solid #dfdfdf;float:left;width:100%;margin:10px 0 0}.customize-section .customize-control-image .library li{color:#999;float:left;padding:3px 5px;margin:0;border-style:solid;border-color:transparent;border-width:1px 1px 0 1px}.customize-section .customize-control-image .library li.library-selected{margin-bottom:-1px;padding-bottom:4px;color:#777;background:#fdfdfd;border-color:#dfdfdf;-webkit-border-radius:3px 3px 0 0;border-radius:3px 3px 0 0}.customize-section .customize-control-image .library-content{display:none;width:100%;float:left;padding:10px 0}.customize-section .customize-control-image .library-content.library-selected{display:block}.customize-section .customize-control-image .library .thumbnail{display:block;width:100%}.customize-section .customize-control-image .library .thumbnail:hover img{border-color:#21759b}.customize-section .customize-control-image .library .thumbnail img{display:block;max-width:90%;max-height:80px;margin:5px auto;padding:4px;background:#fff;border:1px solid #dfdfdf}.customize-section .customize-control-upload .upload-fallback,.customize-section .customize-control-image .upload-fallback{display:none}.customize-section .customize-control-upload .upload-dropzone,.customize-section .customize-control-image .upload-dropzone{display:none;padding:15px 10px;border:3px dashed #dfdfdf;margin:5px auto;text-align:center;color:#777;position:relative;cursor:default}.customize-section .customize-control-upload .upload-dropzone.supports-drag-drop,.customize-section .customize-control-image .upload-dropzone.supports-drag-drop{display:block;-webkit-transition:border-color .1s;-moz-transition:border-color .1s;-ms-transition:border-color .1s;-o-transition:border-color .1s;transition:border-color .1s}.customize-section .customize-control-upload .library ul li,.customize-section .customize-control-image .library ul li{cursor:pointer}.customize-section .customize-control-upload .upload-dropzone.supports-drag-drop.drag-over,.customize-section .customize-control-image .upload-dropzone.supports-drag-drop.drag-over{border-color:#83b4d8}.ios .wp-full-overlay{position:relative}.ios #customize-preview{position:relative}.ios #customize-controls .wp-full-overlay-sidebar-content{-webkit-overflow-scrolling:touch}body.cheatin{min-width:0;background:#f9f9f9;padding:50px}body.cheatin p{max-width:700px;margin:0 auto;padding:2em;font-size:14px;background:#fff;border:1px solid #dfdfdf;-webkit-border-radius:3px;border-radius:3px}
\ No newline at end of file
+body {
+	overflow: hidden;
+}
+
+#customize-controls a {
+	text-decoration: none;
+}
+
+.customize-section {
+	border-top: 1px solid #fff;
+	border-bottom: 1px solid #dfdfdf;
+	margin: 0;
+}
+
+.control-section.customize-section:hover,
+.control-section.customize-section.open {
+	border-top-color: #808080;
+}
+
+.control-section.customize-section:hover {
+	border-bottom-color: #6d6d6d;
+}
+
+.customize-section.open:hover {
+	border-bottom-color: #dfdfdf;
+}
+
+.customize-section:last-child {
+	box-shadow: 0 1px 0 0px #fff;
+}
+
+.customize-section-title {
+	margin: 0;
+	padding: 15px 20px;
+	position: relative;
+
+	cursor: pointer;
+
+	-webkit-user-select: none;
+	-moz-user-select: none;
+	user-select: none;
+}
+
+.customize-section-title:focus {
+	outline: none;
+}
+
+.cannot-expand .customize-section-title {
+	cursor: auto;
+}
+
+.customize-section-content {
+	display: none;
+	padding: 10px 20px 15px;
+	overflow: hidden;
+}
+
+.control-section .customize-section-title {
+	padding: 10px 20px;
+	font-size: 15px;
+	font-family: Georgia, "Times New Roman", "Bitstream Charter", Times, serif;
+	font-weight: normal;
+	text-shadow: 0 1px 0 #fff;
+	background: #f5f5f5;
+	background-image: -webkit-gradient(linear, left bottom, left top, from(#eee), to(#f5f5f5));
+	background-image: -webkit-linear-gradient(bottom, #eee, #f5f5f5);
+	background-image:    -moz-linear-gradient(bottom, #eee, #f5f5f5);
+	background-image:      -o-linear-gradient(bottom, #eee, #f5f5f5);
+	background-image: linear-gradient(to top, #eee, #f5f5f5);
+}
+
+.control-section:hover .customize-section-title,
+.control-section .customize-section-title:hover,
+.control-section.open .customize-section-title,
+.control-section .customize-section-title:focus {
+	color: #fff;
+	text-shadow: 0 -1px 0 #333;
+	background: #808080;
+	background-image: -webkit-gradient(linear, left bottom, left top, from(#6d6d6d), to(#808080));
+	background-image: -webkit-linear-gradient(bottom, #6d6d6d, #808080);
+	background-image:    -moz-linear-gradient(bottom, #6d6d6d, #808080);
+	background-image:      -o-linear-gradient(bottom, #6d6d6d, #808080);
+	background-image: linear-gradient(to top, #6d6d6d, #808080);
+}
+
+.control-section.open .customize-section-title {
+	border-bottom: 1px solid #6d6d6d;
+}
+
+.customize-section.open .customize-section-content {
+	display: block;
+	background: #fdfdfd;
+}
+
+.customize-section-title:after {
+	content: '';
+	width: 0;
+	height: 0;
+	border-color: #ccc transparent;
+	border-style: solid;
+	border-width: 6px 6px 0;
+	position: absolute;
+	top: 25px;
+	right: 20px;
+	z-index: 1;
+}
+
+.cannot-expand .customize-section-title:after {
+	display: none;
+}
+
+.customize-section-title:hover:after,
+.customize-section-title:focus:after {
+	border-color: #aaa transparent;
+}
+
+.control-section .customize-section-title:hover:after,
+.control-section .customize-section-title:focus:after {
+	border-color: #eee transparent;
+}
+
+.control-section .customize-section-title:after {
+	top: 15px;
+}
+
+#customize-info .customize-section-content {
+	background: transparent;
+}
+
+#customize-info .preview-notice {
+	font-size: 13px;
+	line-height: 24px;
+	color: #999;
+}
+
+#customize-info .theme-name {
+	font-size: 20px;
+	font-weight: 200;
+	line-height: 24px;
+	color: #333;
+	display: block;
+	text-shadow: 0 1px 0 #fff;
+}
+
+#customize-info .theme-screenshot {
+	width: 258px;
+	border: 1px solid #ccc;
+}
+
+#customize-info .theme-description {
+	margin-top: 1em;
+	color: #777;
+	line-height: 20px;
+}
+
+#customize-controls .submit {
+	text-align: center;
+}
+
+#customize-theme-controls > ul,
+#customize-theme-controls .customize-section-content {
+	margin: 0;
+}
+
+#customize-header-actions .button-primary {
+	float: right;
+	margin-top: 10px;
+}
+
+#customize-header-actions .spinner {
+	margin-top: 16px;
+	margin-right: 4px;
+}
+
+.saving #customize-header-actions .spinner {
+	display: block;
+}
+
+.customize-control {
+	width: 100%;
+	float: left;
+	clear: both;
+	margin-bottom: 8px;
+}
+
+.customize-control-title {
+	display: block;
+	line-height: 24px;
+	font-weight: bold;
+}
+
+.customize-control select,
+.customize-control input[type="text"],
+.customize-control input[type="radio"],
+.customize-control input[type="checkbox"],
+.customize-control-color .color-picker,
+.customize-control-checkbox label,
+.customize-control-upload div {
+	line-height: 28px;
+}
+
+.customize-control input[type="text"] {
+	width: 98%;
+	line-height: 18px;
+	margin: 0;
+}
+
+.customize-control select {
+	min-width: 50%;
+	max-width: 100%;
+	height: 28px;
+	line-height: 28px;
+}
+
+.customize-control-checkbox input {
+	margin-right: 5px;
+}
+
+.customize-control-radio {
+	padding: 5px 0 10px;
+}
+
+.customize-control-radio .customize-control-title {
+	margin-bottom: 0;
+	line-height: 22px;
+}
+
+.customize-control-radio label {
+	line-height: 20px;
+}
+
+.customize-control-radio input {
+	margin-right: 5px;
+}
+
+#customize-preview iframe {
+	width: 100%;
+	height: 100%;
+}
+
+/*
+ * Style for custom settings
+ */
+
+/*
+ * Dropdowns
+ */
+.customize-section .dropdown {
+	float: left;
+	display: block;
+	position: relative;
+	cursor: pointer;
+
+	-webkit-border-radius: 3px;
+	border-radius: 3px;
+}
+
+.customize-section .dropdown-content {
+	overflow: hidden;
+	float: left;
+	min-width: 30px;
+	height: 16px;
+	line-height: 16px;
+	margin-right: 16px;
+	padding: 4px 5px;
+	background-color: #eee;
+	border: 1px solid #ccc;
+	-webkit-border-radius: 3px 0 0 3px;
+	border-radius: 3px 0 0 3px;
+
+	-webkit-user-select: none;
+	-moz-user-select: none;
+	user-select: none;
+}
+
+.customize-control .dropdown-arrow {
+	position: absolute;
+	top: 0;
+	bottom: 0;
+	right: 0;
+	width: 15px;
+
+	border-color: #ccc;
+	border-style: solid;
+	border-width: 1px 1px 1px 0;
+	-webkit-border-radius: 0 3px 3px 0;
+	border-radius: 0 3px 3px 0;
+}
+
+.customize-control .dropdown-arrow:after {
+	content: '';
+	width: 0;
+	height: 0;
+	border-color: #ccc transparent;
+	border-style: solid;
+	border-width: 4px 4px 0 4px;
+	position: absolute;
+	top: 50%;
+	margin-top: -1px;
+	right: 4px;
+	z-index: 1;
+}
+
+.customize-section .dropdown:hover .dropdown-content,
+.customize-control .dropdown:hover .dropdown-arrow {
+	border-color: #aaa;
+}
+
+.customize-section .dropdown:hover .dropdown-arrow:after {
+	border-color: #aaa transparent;
+}
+
+.customize-control .dropdown-status {
+	display: none;
+	max-width: 112px;
+	color: #777;
+}
+
+/*
+ * Color Picker
+ */
+.customize-control-color .color-picker-hex {
+	display: none;
+}
+
+.customize-control-color.open .color-picker-hex {
+	display: block;
+}
+
+.customize-control-color .dropdown {
+	margin-right: 5px;
+	margin-bottom: 5px;
+}
+
+.customize-control-color .dropdown .dropdown-content {
+	background-color: #fff;
+	border: 1px solid rgba( 0, 0, 0, 0.15 );
+}
+
+.customize-control-color .dropdown:hover .dropdown-content {
+	border-color: rgba( 0, 0, 0, 0.25 );
+}
+
+.customize-section input[type="text"].color-picker-hex {
+	width: 65px;
+	font-family: monospace;
+	text-align: center;
+	line-height: 16px;
+}
+
+/* The centered cursor overlaps the placeholder in webkit. Hide it when selected. */
+.customize-section input[type="text"].color-picker-hex:focus::-webkit-input-placeholder {
+	color: transparent;
+}
+.customize-section input[type="text"].color-picker-hex:-moz-placeholder {
+	color: #999;
+}
+
+/*
+ * Image Picker
+ */
+.customize-control-image .library,
+.customize-control-image .actions {
+	display: none;
+	float: left;
+	width: 100%;
+}
+
+.customize-control-image.open .library,
+.customize-control-image.open .actions {
+	display: block;
+}
+
+.customize-section .customize-control-image .dropdown-content {
+	height: auto;
+	min-height: 24px;
+	min-width: 40px;
+	padding: 0;
+}
+
+.customize-section .customize-control-image .dropdown-status {
+	padding: 4px 5px;
+}
+
+.customize-section .customize-control-image .preview-thumbnail img {
+	display: block;
+	width: 100%;
+	max-width: 122px;
+	max-height: 98px;
+	margin: 0 auto;
+}
+
+.customize-section .customize-control-image .actions {
+	text-align: right;
+}
+
+.customize-section .customize-control-image .library ul {
+	border-bottom: 1px solid #dfdfdf;
+	float: left;
+	width: 100%;
+	margin: 10px 0 0;
+}
+
+.customize-section .customize-control-image .library li {
+	color: #999;
+	float: left;
+	padding: 3px 5px;
+	margin: 0;
+	border-style: solid;
+	border-color: transparent;
+	border-width: 1px 1px 0 1px;
+}
+
+.customize-section .customize-control-image .library li.library-selected {
+	margin-bottom: -1px;
+	padding-bottom: 4px;
+
+	color: #777;
+	background: #fdfdfd;
+	border-color: #dfdfdf;
+	-webkit-border-radius: 3px 3px 0 0;
+	border-radius: 3px 3px 0 0 ;
+}
+
+.customize-section .customize-control-image .library-content {
+	display: none;
+	width: 100%;
+	float: left;
+	padding: 10px 0;
+}
+
+.customize-section .customize-control-image .library-content.library-selected {
+	display: block;
+}
+
+.customize-section .customize-control-image .library .thumbnail {
+	display: block;
+	width: 100%;
+}
+
+.customize-section .customize-control-image .library .thumbnail:hover img {
+	border-color: #21759b;
+}
+
+.customize-section .customize-control-image .library .thumbnail img {
+	display: block;
+	max-width: 90%;
+	max-height: 80px;
+
+	margin: 5px auto;
+	padding: 4px;
+	background: #fff;
+	border: 1px solid #dfdfdf;
+}
+
+.customize-section .customize-control-upload .upload-fallback,
+.customize-section .customize-control-image .upload-fallback {
+	display: none;
+}
+
+.customize-section .customize-control-upload .upload-dropzone,
+.customize-section .customize-control-image .upload-dropzone {
+	display: none;
+	padding: 15px 10px;
+	border: 3px dashed #dfdfdf;
+	margin: 5px auto;
+	text-align: center;
+	color: #777;
+	position: relative;
+	cursor: default;
+}
+
+.customize-section .customize-control-upload .upload-dropzone.supports-drag-drop,
+.customize-section .customize-control-image .upload-dropzone.supports-drag-drop {
+	display: block;
+	-webkit-transition: border-color 0.1s;
+	-moz-transition:    border-color 0.1s;
+	-ms-transition:     border-color 0.1s;
+	-o-transition:      border-color 0.1s;
+	transition:         border-color 0.1s;
+}
+
+.customize-section .customize-control-upload .library ul li,
+.customize-section .customize-control-image .library ul li {
+	cursor: pointer;
+}
+
+.customize-section .customize-control-upload .upload-dropzone.supports-drag-drop.drag-over,
+.customize-section .customize-control-image .upload-dropzone.supports-drag-drop.drag-over {
+	border-color: #83b4d8;
+}
+
+/**
+ * iOS can't scroll iframes,
+ * instead it expands the iframe size to match the size of the content
+ */
+.ios .wp-full-overlay {
+	position: relative;
+}
+
+.ios #customize-preview {
+	position: relative;
+}
+
+.ios #customize-controls .wp-full-overlay-sidebar-content {
+	-webkit-overflow-scrolling: touch;
+}
+
+/**
+ * Handle cheaters.
+ */
+body.cheatin {
+	min-width: 0;
+	background: #f9f9f9;
+	padding: 50px;
+}
+
+body.cheatin p {
+	max-width: 700px;
+	margin: 0 auto;
+	padding: 2em;
+	font-size: 14px;
+	background: #fff;
+	border: 1px solid #dfdfdf;
+	-webkit-border-radius: 3px;
+	border-radius:         3px;
+}
--- a/web/wp-admin/css/customize-controls.dev.css	Wed Dec 19 12:35:13 2012 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,537 +0,0 @@
-body {
-	overflow: hidden;
-}
-
-#customize-controls a {
-	text-decoration: none;
-}
-
-.customize-section {
-	border-top: 1px solid #fff;
-	border-bottom: 1px solid #dfdfdf;
-	margin: 0;
-}
-
-.control-section.customize-section:hover,
-.control-section.customize-section.open {
-	border-top-color: #808080;
-}
-
-.control-section.customize-section:hover {
-	border-bottom-color: #6d6d6d;
-}
-
-.customize-section.open:hover {
-	border-bottom-color: #dfdfdf;
-}
-
-.customize-section:last-child {
-	box-shadow: 0 1px 0 0px #fff;
-}
-
-.customize-section-title {
-	margin: 0;
-	padding: 15px 20px;
-	position: relative;
-
-	cursor: pointer;
-
-	-webkit-user-select: none;
-	-moz-user-select: none;
-	user-select: none;
-}
-
-.cannot-expand .customize-section-title {
-	cursor: auto;
-}
-
-.customize-section-content {
-	display: none;
-	padding: 10px 20px 15px;
-	overflow: hidden;
-}
-
-.control-section .customize-section-title {
-	padding: 10px 20px;
-	font-size: 15px;
-	font-family: Georgia, "Times New Roman", "Bitstream Charter", Times, serif;
-	font-weight: normal;
-	text-shadow: 0 1px 0 #fff;
-
-	background-color: #f5f5f5;
-	background-image: -webkit-linear-gradient( top, #f5f5f5, #eee );
-	background-image:    -moz-linear-gradient( top, #f5f5f5, #eee );
-	background-image:     -ms-linear-gradient( top, #f5f5f5, #eee );
-	background-image:      -o-linear-gradient( top, #f5f5f5, #eee );
-	background-image:         linear-gradient( top, #f5f5f5, #eee );
-}
-
-.control-section:hover .customize-section-title,
-.control-section .customize-section-title:hover,
-.control-section.open .customize-section-title {
-	color: #fff;
-	text-shadow: 0 -1px 0 #333;
-	background-color: #808080;
-	background-image: -webkit-linear-gradient( top, #808080, #6d6d6d );
-	background-image:    -moz-linear-gradient( top, #808080, #6d6d6d );
-	background-image:     -ms-linear-gradient( top, #808080, #6d6d6d );
-	background-image:      -o-linear-gradient( top, #808080, #6d6d6d );
-	background-image:         linear-gradient( top, #808080, #6d6d6d );
-}
-
-.control-section.open .customize-section-title {
-	border-bottom: 1px solid #6d6d6d;
-}
-
-.customize-section.open .customize-section-content {
-	display: block;
-	background: #fdfdfd;
-}
-
-.customize-section-title:after {
-	content: '';
-	width: 0;
-	height: 0;
-	border-color: #ccc transparent;
-	border-style: solid;
-	border-width: 6px 6px 0;
-	position: absolute;
-	top: 25px;
-	right: 20px;
-	z-index: 1;
-}
-
-.cannot-expand .customize-section-title:after {
-	display: none;
-}
-
-.customize-section-title:hover:after {
-	border-color: #aaa transparent;
-}
-
-.control-section .customize-section-title:hover:after {
-	border-color: #eee transparent;
-}
-
-.control-section .customize-section-title:after {
-	top: 15px;
-}
-
-#customize-info .customize-section-content {
-	background: transparent;
-}
-
-#customize-info .preview-notice {
-	font-size: 13px;
-	line-height: 24px;
-	color: #999;
-}
-
-#customize-info .theme-name {
-	font-size: 20px;
-	font-weight: 200;
-	line-height: 24px;
-	color: #333;
-	display: block;
-	text-shadow: 0 1px 0 #fff;
-}
-
-#customize-info .theme-screenshot {
-	width: 258px;
-	border: 1px solid #ccc;
-}
-
-#customize-info .theme-description {
-	margin-top: 1em;
-	color: #777;
-	line-height: 20px;
-}
-
-#customize-controls .submit {
-	text-align: center;
-}
-
-#customize-theme-controls > ul,
-#customize-theme-controls .customize-section-content {
-	margin: 0;
-}
-
-#customize-header-actions .button-primary {
-	float: right;
-	margin-top: 11px;
-}
-
-#customize-header-actions img {
-	display: none;
-	float: right;
-	margin-top: 13px;
-	margin-right: 4px;
-}
-
-.saving #customize-header-actions img {
-	display: block;
-}
-
-.customize-control {
-	width: 100%;
-	float: left;
-	clear: both;
-	margin-bottom: 8px;
-}
-
-.customize-control-title {
-	display: block;
-	line-height: 24px;
-	font-weight: bold;
-}
-
-.customize-control select,
-.customize-control input[type="text"],
-.customize-control input[type="radio"],
-.customize-control input[type="checkbox"],
-.customize-control-color .color-picker,
-.customize-control-checkbox label,
-.customize-control-upload div {
-	line-height: 28px;
-}
-
-.customize-control input[type="text"] {
-	width: 98%;
-	line-height: 18px;
-	margin: 0;
-}
-
-.customize-control select {
-	min-width: 50%;
-	max-width: 100%;
-	height: 28px;
-	line-height: 28px;
-}
-
-.customize-control-checkbox input {
-	margin-right: 5px;
-}
-
-.customize-control-radio {
-	padding: 5px 0 10px;
-}
-
-.customize-control-radio .customize-control-title {
-	margin-bottom: 0;
-	line-height: 22px;
-}
-
-.customize-control-radio label {
-	line-height: 20px;
-}
-
-.customize-control-radio input {
-	margin-right: 5px;
-}
-
-#customize-preview iframe {
-	width: 100%;
-	height: 100%;
-}
-
-/*
- * Style for custom settings
- */
-
-/*
- * Dropdowns
- */
-.customize-section .dropdown {
-	float: left;
-	display: block;
-	position: relative;
-	cursor: pointer;
-
-	-webkit-border-radius: 3px;
-	border-radius: 3px;
-}
-
-.customize-section .dropdown-content {
-	overflow: hidden;
-	float: left;
-	min-width: 30px;
-	height: 16px;
-	line-height: 16px;
-	margin-right: 16px;
-	padding: 4px 5px;
-	background-color: #eee;
-	border: 1px solid #ccc;
-	-webkit-border-radius: 3px 0 0 3px;
-	border-radius: 3px 0 0 3px;
-
-	-webkit-user-select: none;
-	-moz-user-select: none;
-	user-select: none;
-}
-
-.customize-control .dropdown-arrow {
-	position: absolute;
-	top: 0;
-	bottom: 0;
-	right: 0;
-	width: 15px;
-
-	border-color: #ccc;
-	border-style: solid;
-	border-width: 1px 1px 1px 0;
-	-webkit-border-radius: 0 3px 3px 0;
-	border-radius: 0 3px 3px 0;
-}
-
-.customize-control .dropdown-arrow:after {
-	content: '';
-	width: 0;
-	height: 0;
-	border-color: #ccc transparent;
-	border-style: solid;
-	border-width: 4px 4px 0 4px;
-	position: absolute;
-	top: 50%;
-	margin-top: -1px;
-	right: 4px;
-	z-index: 1;
-}
-
-.customize-section .dropdown:hover .dropdown-content,
-.customize-control .dropdown:hover .dropdown-arrow {
-	border-color: #aaa;
-}
-
-.customize-section .dropdown:hover .dropdown-arrow:after {
-	border-color: #aaa transparent;
-}
-
-.customize-control .dropdown-status {
-	display: none;
-	max-width: 112px;
-	color: #777;
-}
-
-/*
- * Color Picker
- */
-.customize-control-color .color-picker-hex,
-.customize-control-color .farbtastic-placeholder {
-	display: none;
-}
-
-.customize-control-color.open .color-picker-hex,
-.customize-control-color.open .farbtastic-placeholder {
-	display: block;
-}
-
-.customize-control-color .dropdown {
-	margin-right: 5px;
-	margin-bottom: 5px;
-}
-
-.customize-control-color .dropdown .dropdown-content {
-	background-color: #fff;
-	border: 1px solid rgba( 0, 0, 0, 0.15 );
-}
-
-.customize-control-color .dropdown:hover .dropdown-content {
-	border-color: rgba( 0, 0, 0, 0.25 );
-}
-
-.customize-section input[type="text"].color-picker-hex {
-	float: left;
-	width: 85px;
-	font-family: monospace;
-	text-align: center;
-}
-
-/* The centered cursor overlaps the placeholder in webkit. Hide it when selected. */
-.customize-section input[type="text"].color-picker-hex:focus::-webkit-input-placeholder {
-	color: transparent;
-}
-.customize-section input[type="text"].color-picker-hex:-moz-placeholder {
-	color: #999;
-}
-
-.customize-control-color .farbtastic-placeholder {
-	width: 100%;
-	margin: 5px 0 10px;
-	float: left;
-}
-
-.customize-control-color .farbtastic {
-	margin: 0 auto;
-}
-
-/*
- * Image Picker
- */
-.customize-control-image .library,
-.customize-control-image .actions {
-	display: none;
-	float: left;
-	width: 100%;
-}
-
-.customize-control-image.open .library,
-.customize-control-image.open .actions {
-	display: block;
-}
-
-.customize-section .customize-control-image .dropdown-content {
-	height: auto;
-	min-height: 24px;
-	min-width: 40px;
-	padding: 0;
-}
-
-.customize-section .customize-control-image .dropdown-status {
-	padding: 4px 5px;
-}
-
-.customize-section .customize-control-image .preview-thumbnail img {
-	display: block;
-	width: 100%;
-	max-width: 122px;
-	max-height: 98px;
-	margin: 0 auto;
-}
-
-.customize-section .customize-control-image .actions {
-	text-align: right;
-}
-
-.customize-section .customize-control-image .library ul {
-	border-bottom: 1px solid #dfdfdf;
-	float: left;
-	width: 100%;
-	margin: 10px 0 0;
-}
-
-.customize-section .customize-control-image .library li {
-	color: #999;
-	float: left;
-	padding: 3px 5px;
-	margin: 0;
-	border-style: solid;
-	border-color: transparent;
-	border-width: 1px 1px 0 1px;
-}
-
-.customize-section .customize-control-image .library li.library-selected {
-	margin-bottom: -1px;
-	padding-bottom: 4px;
-
-	color: #777;
-	background: #fdfdfd;
-	border-color: #dfdfdf;
-	-webkit-border-radius: 3px 3px 0 0;
-	border-radius: 3px 3px 0 0 ;
-}
-
-.customize-section .customize-control-image .library-content {
-	display: none;
-	width: 100%;
-	float: left;
-	padding: 10px 0;
-}
-
-.customize-section .customize-control-image .library-content.library-selected {
-	display: block;
-}
-
-.customize-section .customize-control-image .library .thumbnail {
-	display: block;
-	width: 100%;
-}
-
-.customize-section .customize-control-image .library .thumbnail:hover img {
-	border-color: #21759b;
-}
-
-.customize-section .customize-control-image .library .thumbnail img {
-	display: block;
-	max-width: 90%;
-	max-height: 80px;
-
-	margin: 5px auto;
-	padding: 4px;
-	background: #fff;
-	border: 1px solid #dfdfdf;
-}
-
-.customize-section .customize-control-upload .upload-fallback,
-.customize-section .customize-control-image .upload-fallback {
-	display: none;
-}
-
-.customize-section .customize-control-upload .upload-dropzone,
-.customize-section .customize-control-image .upload-dropzone {
-	display: none;
-	padding: 15px 10px;
-	border: 3px dashed #dfdfdf;
-	margin: 5px auto;
-	text-align: center;
-	color: #777;
-	position: relative;
-	cursor: default;
-}
-
-.customize-section .customize-control-upload .upload-dropzone.supports-drag-drop,
-.customize-section .customize-control-image .upload-dropzone.supports-drag-drop {
-	display: block;
-	-webkit-transition: border-color 0.1s;
-	-moz-transition:    border-color 0.1s;
-	-ms-transition:     border-color 0.1s;
-	-o-transition:      border-color 0.1s;
-	transition:         border-color 0.1s;
-}
-
-.customize-section .customize-control-upload .library ul li,
-.customize-section .customize-control-image .library ul li {
-	cursor: pointer;
-}
-
-.customize-section .customize-control-upload .upload-dropzone.supports-drag-drop.drag-over,
-.customize-section .customize-control-image .upload-dropzone.supports-drag-drop.drag-over {
-	border-color: #83b4d8;
-}
-
-/**
- * iOS can't scroll iframes,
- * instead it expands the iframe size to match the size of the content
- */
-.ios .wp-full-overlay {
-	position: relative;
-}
-
-.ios #customize-preview {
-	position: relative;
-}
-
-.ios #customize-controls .wp-full-overlay-sidebar-content {
-	-webkit-overflow-scrolling: touch;
-}
-
-/**
- * Handle cheaters.
- */
-body.cheatin {
-	min-width: 0;
-	background: #f9f9f9;
-	padding: 50px;
-}
-
-body.cheatin p {
-	max-width: 700px;
-	margin: 0 auto;
-	padding: 2em;
-	font-size: 14px;
-
-	background: #fff;
-	border: 1px solid #dfdfdf;
-
-	-webkit-border-radius: 3px;
-	border-radius:         3px;
-}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-admin/css/customize-controls.min.css	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,1 @@
+body{overflow:hidden}#customize-controls a{text-decoration:none}.customize-section{border-top:1px solid #fff;border-bottom:1px solid #dfdfdf;margin:0}.control-section.customize-section:hover,.control-section.customize-section.open{border-top-color:#808080}.control-section.customize-section:hover{border-bottom-color:#6d6d6d}.customize-section.open:hover{border-bottom-color:#dfdfdf}.customize-section:last-child{box-shadow:0 1px 0 0 #fff}.customize-section-title{margin:0;padding:15px 20px;position:relative;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none}.customize-section-title:focus{outline:0}.cannot-expand .customize-section-title{cursor:auto}.customize-section-content{display:none;padding:10px 20px 15px;overflow:hidden}.control-section .customize-section-title{padding:10px 20px;font-size:15px;font-family:Georgia,"Times New Roman","Bitstream Charter",Times,serif;font-weight:normal;text-shadow:0 1px 0 #fff;background:#f5f5f5;background-image:-webkit-gradient(linear,left bottom,left top,from(#eee),to(#f5f5f5));background-image:-webkit-linear-gradient(bottom,#eee,#f5f5f5);background-image:-moz-linear-gradient(bottom,#eee,#f5f5f5);background-image:-o-linear-gradient(bottom,#eee,#f5f5f5);background-image:linear-gradient(to top,#eee,#f5f5f5)}.control-section:hover .customize-section-title,.control-section .customize-section-title:hover,.control-section.open .customize-section-title,.control-section .customize-section-title:focus{color:#fff;text-shadow:0 -1px 0 #333;background:#808080;background-image:-webkit-gradient(linear,left bottom,left top,from(#6d6d6d),to(#808080));background-image:-webkit-linear-gradient(bottom,#6d6d6d,#808080);background-image:-moz-linear-gradient(bottom,#6d6d6d,#808080);background-image:-o-linear-gradient(bottom,#6d6d6d,#808080);background-image:linear-gradient(to top,#6d6d6d,#808080)}.control-section.open .customize-section-title{border-bottom:1px solid #6d6d6d}.customize-section.open .customize-section-content{display:block;background:#fdfdfd}.customize-section-title:after{content:'';width:0;height:0;border-color:#ccc transparent;border-style:solid;border-width:6px 6px 0;position:absolute;top:25px;right:20px;z-index:1}.cannot-expand .customize-section-title:after{display:none}.customize-section-title:hover:after,.customize-section-title:focus:after{border-color:#aaa transparent}.control-section .customize-section-title:hover:after,.control-section .customize-section-title:focus:after{border-color:#eee transparent}.control-section .customize-section-title:after{top:15px}#customize-info .customize-section-content{background:transparent}#customize-info .preview-notice{font-size:13px;line-height:24px;color:#999}#customize-info .theme-name{font-size:20px;font-weight:200;line-height:24px;color:#333;display:block;text-shadow:0 1px 0 #fff}#customize-info .theme-screenshot{width:258px;border:1px solid #ccc}#customize-info .theme-description{margin-top:1em;color:#777;line-height:20px}#customize-controls .submit{text-align:center}#customize-theme-controls>ul,#customize-theme-controls .customize-section-content{margin:0}#customize-header-actions .button-primary{float:right;margin-top:10px}#customize-header-actions .spinner{margin-top:16px;margin-right:4px}.saving #customize-header-actions .spinner{display:block}.customize-control{width:100%;float:left;clear:both;margin-bottom:8px}.customize-control-title{display:block;line-height:24px;font-weight:bold}.customize-control select,.customize-control input[type="text"],.customize-control input[type="radio"],.customize-control input[type="checkbox"],.customize-control-color .color-picker,.customize-control-checkbox label,.customize-control-upload div{line-height:28px}.customize-control input[type="text"]{width:98%;line-height:18px;margin:0}.customize-control select{min-width:50%;max-width:100%;height:28px;line-height:28px}.customize-control-checkbox input{margin-right:5px}.customize-control-radio{padding:5px 0 10px}.customize-control-radio .customize-control-title{margin-bottom:0;line-height:22px}.customize-control-radio label{line-height:20px}.customize-control-radio input{margin-right:5px}#customize-preview iframe{width:100%;height:100%}.customize-section .dropdown{float:left;display:block;position:relative;cursor:pointer;-webkit-border-radius:3px;border-radius:3px}.customize-section .dropdown-content{overflow:hidden;float:left;min-width:30px;height:16px;line-height:16px;margin-right:16px;padding:4px 5px;background-color:#eee;border:1px solid #ccc;-webkit-border-radius:3px 0 0 3px;border-radius:3px 0 0 3px;-webkit-user-select:none;-moz-user-select:none;user-select:none}.customize-control .dropdown-arrow{position:absolute;top:0;bottom:0;right:0;width:15px;border-color:#ccc;border-style:solid;border-width:1px 1px 1px 0;-webkit-border-radius:0 3px 3px 0;border-radius:0 3px 3px 0}.customize-control .dropdown-arrow:after{content:'';width:0;height:0;border-color:#ccc transparent;border-style:solid;border-width:4px 4px 0 4px;position:absolute;top:50%;margin-top:-1px;right:4px;z-index:1}.customize-section .dropdown:hover .dropdown-content,.customize-control .dropdown:hover .dropdown-arrow{border-color:#aaa}.customize-section .dropdown:hover .dropdown-arrow:after{border-color:#aaa transparent}.customize-control .dropdown-status{display:none;max-width:112px;color:#777}.customize-control-color .color-picker-hex{display:none}.customize-control-color.open .color-picker-hex{display:block}.customize-control-color .dropdown{margin-right:5px;margin-bottom:5px}.customize-control-color .dropdown .dropdown-content{background-color:#fff;border:1px solid rgba(0,0,0,0.15)}.customize-control-color .dropdown:hover .dropdown-content{border-color:rgba(0,0,0,0.25)}.customize-section input[type="text"].color-picker-hex{width:65px;font-family:monospace;text-align:center;line-height:16px}.customize-section input[type="text"].color-picker-hex:focus::-webkit-input-placeholder{color:transparent}.customize-section input[type="text"].color-picker-hex:-moz-placeholder{color:#999}.customize-control-image .library,.customize-control-image .actions{display:none;float:left;width:100%}.customize-control-image.open .library,.customize-control-image.open .actions{display:block}.customize-section .customize-control-image .dropdown-content{height:auto;min-height:24px;min-width:40px;padding:0}.customize-section .customize-control-image .dropdown-status{padding:4px 5px}.customize-section .customize-control-image .preview-thumbnail img{display:block;width:100%;max-width:122px;max-height:98px;margin:0 auto}.customize-section .customize-control-image .actions{text-align:right}.customize-section .customize-control-image .library ul{border-bottom:1px solid #dfdfdf;float:left;width:100%;margin:10px 0 0}.customize-section .customize-control-image .library li{color:#999;float:left;padding:3px 5px;margin:0;border-style:solid;border-color:transparent;border-width:1px 1px 0 1px}.customize-section .customize-control-image .library li.library-selected{margin-bottom:-1px;padding-bottom:4px;color:#777;background:#fdfdfd;border-color:#dfdfdf;-webkit-border-radius:3px 3px 0 0;border-radius:3px 3px 0 0}.customize-section .customize-control-image .library-content{display:none;width:100%;float:left;padding:10px 0}.customize-section .customize-control-image .library-content.library-selected{display:block}.customize-section .customize-control-image .library .thumbnail{display:block;width:100%}.customize-section .customize-control-image .library .thumbnail:hover img{border-color:#21759b}.customize-section .customize-control-image .library .thumbnail img{display:block;max-width:90%;max-height:80px;margin:5px auto;padding:4px;background:#fff;border:1px solid #dfdfdf}.customize-section .customize-control-upload .upload-fallback,.customize-section .customize-control-image .upload-fallback{display:none}.customize-section .customize-control-upload .upload-dropzone,.customize-section .customize-control-image .upload-dropzone{display:none;padding:15px 10px;border:3px dashed #dfdfdf;margin:5px auto;text-align:center;color:#777;position:relative;cursor:default}.customize-section .customize-control-upload .upload-dropzone.supports-drag-drop,.customize-section .customize-control-image .upload-dropzone.supports-drag-drop{display:block;-webkit-transition:border-color .1s;-moz-transition:border-color .1s;-ms-transition:border-color .1s;-o-transition:border-color .1s;transition:border-color .1s}.customize-section .customize-control-upload .library ul li,.customize-section .customize-control-image .library ul li{cursor:pointer}.customize-section .customize-control-upload .upload-dropzone.supports-drag-drop.drag-over,.customize-section .customize-control-image .upload-dropzone.supports-drag-drop.drag-over{border-color:#83b4d8}.ios .wp-full-overlay{position:relative}.ios #customize-preview{position:relative}.ios #customize-controls .wp-full-overlay-sidebar-content{-webkit-overflow-scrolling:touch}body.cheatin{min-width:0;background:#f9f9f9;padding:50px}body.cheatin p{max-width:700px;margin:0 auto;padding:2em;font-size:14px;background:#fff;border:1px solid #dfdfdf;-webkit-border-radius:3px;border-radius:3px}
\ No newline at end of file
--- a/web/wp-admin/css/ie-rtl.css	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-admin/css/ie-rtl.css	Wed Dec 19 17:46:52 2012 -0800
@@ -1,1 +1,240 @@
-body{direction:rtl;width:99.5%}.rtl #adminmenuback{left:auto;right:0;background-image:none}.rtl #adminmenuback,.rtl #adminmenuwrap{border-width:0 0 0 1px}#plupload-upload-ui{zoom:1}.post-com-count-wrapper a.post-com-count{float:none}#adminmenu .wp-submenu ul{width:99%}#adminmenu .wp-submenu .wp-submenu .wp-submenu-wrap,#adminmenu .wp-menu-open .wp-submenu .wp-submenu-wrap{border:1px solid #dfdfdf}.folded #adminmenu .wp-submenu{right:30px;top:-4px}#adminmenu .wp-submenu .wp-submenu-head{padding:6px 10px 6px 4px}#adminmenu .wp-menu-arrow{display:none!important}#wpcontent #adminmenu .wp-submenu li.wp-submenu-head{padding:3px 10px 4px 4px}div.quicktags-toolbar input{min-width:0}.inline-edit-row fieldset label span.title{float:right}.inline-edit-row fieldset label span.input-text-wrap{margin-right:0}p.search-box{float:left}#bh{margin:7px 10px 0 0;float:left}.postbox div.inside,.wp-editor-wrap .wp-editor-container .wp-editor-area,#nav-menu-theme-locations .howto select{width:97.5%}div#dashboard-widgets{padding-right:0;padding-left:1px}#dashboard_quick_press h4{text-align:right}.tagchecklist span a{margin:4px -9px 0 0}.widefat th input{margin:0 5px 0 0}#TB_window{width:670px;position:absolute;top:50%;left:50%;margin-right:335px!important}#dashboard_plugins{direction:ltr}#dashboard_plugins h3.hndle{direction:rtl}#dashboard_incoming_links ul li,#dashboard_secondary ul li,#dashboard_primary ul li,p.row-actions{width:100%}#post-status-info{height:25px}p.submit{height:22px}form#widgets-filter{position:static}.menu-item-depth-0{margin-left:0}.menu-item-depth-1{margin-left:-30px}.menu-item-depth-2{margin-left:-60px}.menu-item-depth-3{margin-left:-90px}.menu-item-depth-4{margin-left:-120px}.menu-item-depth-5{margin-left:-150px}.menu-item-depth-6{margin-left:-180px}.menu-item-depth-7{margin-left:-210px}.menu-item-depth-8{margin-left:-240px}.menu-item-depth-9{margin-left:-270px}.menu-item-depth-10{margin-left:-300px}.menu-item-depth-11{margin-left:-330px}#menu-management,.nav-menus-php .menu-edit,#nav-menu-header .submitbox{zoom:1}.nav-menus-php label{max-width:90%!important}p.button-controls,.nav-menus-php .tabs-panel{max-width:90%}.nav-menus-php .major-publishing-actions .publishing-action{float:none}#wpbody #nav-menu-header label{float:none}#nav-menu-header{margin-top:-10px}#nav-menu-footer{margin-bottom:-20px}#update-nav-menu .publishing-action{max-width:200px}#nav-menus-frame #update-nav-menu .delete-action{margin-top:-25px;float:left}#menu-to-edit li{margin-top:-10px;margin-bottom:-10px}.sortable-placeholder{margin-top:0!important;margin-left:0!important;margin-bottom:13px!important;padding:0!important}.auto-add-pages{clear:both;float:none}#nav-menus-frame .open-label span{float:none;display:inline-block}#nav-menus-frame .delete-action{float:none}
\ No newline at end of file
+
+body {
+	direction: rtl;
+	width: 99.5%;
+}
+
+.rtl #adminmenuback {
+	left: auto;
+	right: 0;
+	background-image: none;
+}
+
+.rtl #adminmenuback,
+.rtl #adminmenuwrap {
+	border-width: 0 0 0 1px;
+}
+
+#plupload-upload-ui {
+	zoom: 1;
+}
+
+.post-com-count-wrapper a.post-com-count {
+	float: none;
+}
+
+#adminmenu .wp-submenu ul {
+	width: 99%;
+}
+
+#adminmenu .wp-submenu .wp-submenu .wp-submenu,
+#adminmenu .wp-menu-open .wp-submenu .wp-submenu {
+	border: 1px solid #dfdfdf;
+}
+
+.folded #adminmenu .wp-submenu {
+	right: 30px;
+}
+
+#wpcontent #adminmenu .wp-submenu li.wp-submenu-head {
+	padding: 3px 10px 4px 4px;
+}
+
+div.quicktags-toolbar input {
+	min-width: 0;
+}
+
+.inline-edit-row fieldset label span.title {
+	float: right;
+}
+
+.inline-edit-row fieldset label span.input-text-wrap {
+	margin-right: 0;
+}
+
+p.search-box {
+	float: left;
+}
+
+#bh {
+	margin: 7px 10px 0 0;
+	float: left;
+}
+
+.postbox div.inside,
+.wp-editor-wrap .wp-editor-container .wp-editor-area,
+#nav-menu-theme-locations .howto select {
+	width: 97.5%;
+}
+
+/* without this dashboard widgets appear in one column for some screen widths */
+div#dashboard-widgets {
+	padding-right: 0;
+	padding-left: 1px;
+}
+
+.tagchecklist span a {
+	margin: 4px -9px 0 0;
+}
+
+.widefat th input {
+	margin: 0 5px 0 0;
+}
+
+/* ---------- add by navid */
+#TB_window {
+	width: 670px;
+	position: absolute;
+	top: 50%;
+	left: 50%;
+	margin-right: 335px !important;
+}
+
+#dashboard_plugins {
+	direction: ltr;
+}
+
+#dashboard_plugins h3.hndle {
+	direction: rtl;
+}
+
+#dashboard_incoming_links ul li,
+#dashboard_secondary ul li,
+#dashboard_primary ul li,
+p.row-actions {
+	width: 100%;
+}
+
+#post-status-info {
+	height: 25px;
+}
+
+p.submit { /* quick edit and reply in edit-comments.php */
+	height:22px;
+}
+
+.available-theme .action-links li {
+	padding-left: 7px;
+	margin-left: 7px;
+}
+
+form#widgets-filter { /* fix widget page */
+	position: static;
+}
+
+/* nav menus
+.menu-max-depth-0 #menu-management { width: 460px; }
+.menu-max-depth-1 #menu-management { width: 490px; }
+.menu-max-depth-2 #menu-management { width: 520px; }
+.menu-max-depth-3 #menu-management { width: 550px; }
+.menu-max-depth-4 #menu-management { width: 580px; }
+.menu-max-depth-5 #menu-management { width: 610px; }
+.menu-max-depth-6 #menu-management { width: 640px; }
+.menu-max-depth-7 #menu-management { width: 670px; }
+.menu-max-depth-8 #menu-management { width: 700px; }
+.menu-max-depth-9 #menu-management { width: 730px; }
+.menu-max-depth-10 #menu-management { width: 760px; }
+.menu-max-depth-11 #menu-management { width: 790px; }
+*/
+.menu-item-depth-0 { margin-left: 0px; }
+.menu-item-depth-1 { margin-left: -30px; }
+.menu-item-depth-2 { margin-left: -60px; }
+.menu-item-depth-3 { margin-left: -90px; }
+.menu-item-depth-4 { margin-left: -120px; }
+.menu-item-depth-5 { margin-left: -150px; }
+.menu-item-depth-6 { margin-left: -180px; }
+.menu-item-depth-7 { margin-left: -210px; }
+.menu-item-depth-8 { margin-left: -240px; }
+.menu-item-depth-9 { margin-left: -270px; }
+.menu-item-depth-10 { margin-left: -300px; }
+.menu-item-depth-11 { margin-left: -330px; }
+
+/*
+#menu-to-edit li dl {
+	padding: 0 !important;
+	margin: 0 !important;
+}
+
+.ui-sortable-helper .menu-item-transport {
+	margin-top: 13px;
+}
+
+.ui-sortable-helper .menu-item-transport .menu-item-transport {
+	margin-top: 0;
+}
+*/
+
+#menu-management,
+.nav-menus-php .menu-edit,
+#nav-menu-header .submitbox {
+	zoom: 1;
+}
+
+.nav-menus-php label {
+	max-width: 90% !important;
+}
+
+p.button-controls,
+.nav-menus-php .tabs-panel {
+	max-width: 90%;
+}
+
+.nav-menus-php .major-publishing-actions .publishing-action {
+	float: none;
+}
+
+#wpbody #nav-menu-header label {
+	float: none;
+}
+
+#nav-menu-header {
+	margin-top: -10px;
+}
+
+#nav-menu-footer {
+	margin-bottom: -20px;
+}
+
+#update-nav-menu .publishing-action {
+	max-width: 200px;
+}
+
+#nav-menus-frame #update-nav-menu .delete-action {
+	margin-top: -25px;
+	float: left;
+}
+
+#menu-to-edit li {
+	margin-top: -10px;
+	margin-bottom: -10px;
+}
+
+.sortable-placeholder {
+	margin-top: 0 !important;
+	margin-left: 0 !important;
+	margin-bottom: 13px !important;
+	padding: 0 !important;
+}
+
+.auto-add-pages {
+	clear: both;
+	float: none;
+}
+
+#nav-menus-frame .open-label span {
+	float: none;
+	display: inline-block;
+}
+
+#nav-menus-frame .delete-action {
+	float: none;
+}
+
+#title-wrap #title-prompt-text {
+	right: 0;
+}
+
+.screen-reader-text { 
+	right: auto;
+	text-indent: -1000em; 
+} 
\ No newline at end of file
--- a/web/wp-admin/css/ie-rtl.dev.css	Wed Dec 19 12:35:13 2012 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,239 +0,0 @@
-
-body {
-	direction: rtl;
-	width: 99.5%;
-}
-
-.rtl #adminmenuback {
-	left: auto;
-	right: 0;
-	background-image: none;
-}
-
-.rtl #adminmenuback,
-.rtl #adminmenuwrap {
-	border-width: 0 0 0 1px;
-}
-
-#plupload-upload-ui {
-	zoom: 1;
-}
-
-.post-com-count-wrapper a.post-com-count {
-	float: none;
-}
-
-#adminmenu .wp-submenu ul {
-	width: 99%;
-}
-
-#adminmenu .wp-submenu .wp-submenu .wp-submenu-wrap,
-#adminmenu .wp-menu-open .wp-submenu .wp-submenu-wrap {
-	border: 1px solid #dfdfdf;
-}
-
-.folded #adminmenu .wp-submenu {
-	right: 30px;
-	top: -4px;
-}
-
-#adminmenu .wp-submenu .wp-submenu-head {
-	padding: 6px 10px 6px 4px;
-}
-
-#adminmenu .wp-menu-arrow {
-	display: none !important;
-}
-
-#wpcontent #adminmenu .wp-submenu li.wp-submenu-head {
-	padding: 3px 10px 4px 4px;
-}
-
-div.quicktags-toolbar input {
-	min-width: 0;
-}
-
-.inline-edit-row fieldset label span.title {
-	float: right;
-}
-
-.inline-edit-row fieldset label span.input-text-wrap {
-	margin-right: 0;
-}
-
-p.search-box {
-	float: left;
-}
-
-#bh {
-	margin: 7px 10px 0 0;
-	float: left;
-}
-
-.postbox div.inside,
-.wp-editor-wrap .wp-editor-container .wp-editor-area,
-#nav-menu-theme-locations .howto select {
-	width: 97.5%;
-}
-
-/* without this dashboard widgets appear in one column for some screen widths */
-div#dashboard-widgets {
-	padding-right: 0;
-	padding-left: 1px;
-}
-
-#dashboard_quick_press h4 {
-	text-align: right;
-}
-
-.tagchecklist span a {
-	margin: 4px -9px 0 0;
-}
-
-.widefat th input {
-	margin: 0 5px 0 0;
-}
-
-/* ---------- add by navid */
-#TB_window {
-	width: 670px;
-	position: absolute;
-	top: 50%;
-	left: 50%;
-	margin-right: 335px !important;
-}
-
-#dashboard_plugins {
-	direction: ltr;
-}
-
-#dashboard_plugins h3.hndle {
-	direction: rtl;
-}
-
-#dashboard_incoming_links ul li,
-#dashboard_secondary ul li,
-#dashboard_primary ul li,
-p.row-actions {
-	width: 100%;
-}
-
-#post-status-info {
-	height: 25px;
-}
-
-p.submit { /* quick edit and reply in edit-comments.php */
-	height:22px;
-}
-
-form#widgets-filter { /* fix widget page */
-	position: static;
-}
-
-/* nav menus
-.menu-max-depth-0 #menu-management { width: 460px; }
-.menu-max-depth-1 #menu-management { width: 490px; }
-.menu-max-depth-2 #menu-management { width: 520px; }
-.menu-max-depth-3 #menu-management { width: 550px; }
-.menu-max-depth-4 #menu-management { width: 580px; }
-.menu-max-depth-5 #menu-management { width: 610px; }
-.menu-max-depth-6 #menu-management { width: 640px; }
-.menu-max-depth-7 #menu-management { width: 670px; }
-.menu-max-depth-8 #menu-management { width: 700px; }
-.menu-max-depth-9 #menu-management { width: 730px; }
-.menu-max-depth-10 #menu-management { width: 760px; }
-.menu-max-depth-11 #menu-management { width: 790px; }
-*/
-.menu-item-depth-0 { margin-left: 0px; }
-.menu-item-depth-1 { margin-left: -30px; }
-.menu-item-depth-2 { margin-left: -60px; }
-.menu-item-depth-3 { margin-left: -90px; }
-.menu-item-depth-4 { margin-left: -120px; }
-.menu-item-depth-5 { margin-left: -150px; }
-.menu-item-depth-6 { margin-left: -180px; }
-.menu-item-depth-7 { margin-left: -210px; }
-.menu-item-depth-8 { margin-left: -240px; }
-.menu-item-depth-9 { margin-left: -270px; }
-.menu-item-depth-10 { margin-left: -300px; }
-.menu-item-depth-11 { margin-left: -330px; }
-
-/*
-#menu-to-edit li dl {
-	padding: 0 !important;
-	margin: 0 !important;
-}
-
-.ui-sortable-helper .menu-item-transport {
-	margin-top: 13px;
-}
-
-.ui-sortable-helper .menu-item-transport .menu-item-transport {
-	margin-top: 0;
-}
-*/
-
-#menu-management,
-.nav-menus-php .menu-edit,
-#nav-menu-header .submitbox {
-	zoom: 1;
-}
-
-.nav-menus-php label {
-	max-width: 90% !important;
-}
-
-p.button-controls,
-.nav-menus-php .tabs-panel {
-	max-width: 90%;
-}
-
-.nav-menus-php .major-publishing-actions .publishing-action {
-	float: none;
-}
-
-#wpbody #nav-menu-header label {
-	float: none;
-}
-
-#nav-menu-header {
-	margin-top: -10px;
-}
-
-#nav-menu-footer {
-	margin-bottom: -20px;
-}
-
-#update-nav-menu .publishing-action {
-	max-width: 200px;
-}
-
-#nav-menus-frame #update-nav-menu .delete-action {
-	margin-top: -25px;
-	float: left;
-}
-
-#menu-to-edit li {
-	margin-top: -10px;
-	margin-bottom: -10px;
-}
-
-.sortable-placeholder {
-	margin-top: 0 !important;
-	margin-left: 0 !important;
-	margin-bottom: 13px !important;
-	padding: 0 !important;
-}
-
-.auto-add-pages {
-	clear: both;
-	float: none;
-}
-
-#nav-menus-frame .open-label span {
-	float: none;
-	display: inline-block;
-}
-
-#nav-menus-frame .delete-action {
-	float: none;
-}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-admin/css/ie-rtl.min.css	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,1 @@
+body{direction:rtl;width:99.5%}.rtl #adminmenuback{left:auto;right:0;background-image:none}.rtl #adminmenuback,.rtl #adminmenuwrap{border-width:0 0 0 1px}#plupload-upload-ui{zoom:1}.post-com-count-wrapper a.post-com-count{float:none}#adminmenu .wp-submenu ul{width:99%}#adminmenu .wp-submenu .wp-submenu .wp-submenu,#adminmenu .wp-menu-open .wp-submenu .wp-submenu{border:1px solid #dfdfdf}.folded #adminmenu .wp-submenu{right:30px}#wpcontent #adminmenu .wp-submenu li.wp-submenu-head{padding:3px 10px 4px 4px}div.quicktags-toolbar input{min-width:0}.inline-edit-row fieldset label span.title{float:right}.inline-edit-row fieldset label span.input-text-wrap{margin-right:0}p.search-box{float:left}#bh{margin:7px 10px 0 0;float:left}.postbox div.inside,.wp-editor-wrap .wp-editor-container .wp-editor-area,#nav-menu-theme-locations .howto select{width:97.5%}div#dashboard-widgets{padding-right:0;padding-left:1px}.tagchecklist span a{margin:4px -9px 0 0}.widefat th input{margin:0 5px 0 0}#TB_window{width:670px;position:absolute;top:50%;left:50%;margin-right:335px!important}#dashboard_plugins{direction:ltr}#dashboard_plugins h3.hndle{direction:rtl}#dashboard_incoming_links ul li,#dashboard_secondary ul li,#dashboard_primary ul li,p.row-actions{width:100%}#post-status-info{height:25px}p.submit{height:22px}.available-theme .action-links li{padding-left:7px;margin-left:7px}form#widgets-filter{position:static}.menu-item-depth-0{margin-left:0}.menu-item-depth-1{margin-left:-30px}.menu-item-depth-2{margin-left:-60px}.menu-item-depth-3{margin-left:-90px}.menu-item-depth-4{margin-left:-120px}.menu-item-depth-5{margin-left:-150px}.menu-item-depth-6{margin-left:-180px}.menu-item-depth-7{margin-left:-210px}.menu-item-depth-8{margin-left:-240px}.menu-item-depth-9{margin-left:-270px}.menu-item-depth-10{margin-left:-300px}.menu-item-depth-11{margin-left:-330px}#menu-management,.nav-menus-php .menu-edit,#nav-menu-header .submitbox{zoom:1}.nav-menus-php label{max-width:90%!important}p.button-controls,.nav-menus-php .tabs-panel{max-width:90%}.nav-menus-php .major-publishing-actions .publishing-action{float:none}#wpbody #nav-menu-header label{float:none}#nav-menu-header{margin-top:-10px}#nav-menu-footer{margin-bottom:-20px}#update-nav-menu .publishing-action{max-width:200px}#nav-menus-frame #update-nav-menu .delete-action{margin-top:-25px;float:left}#menu-to-edit li{margin-top:-10px;margin-bottom:-10px}.sortable-placeholder{margin-top:0!important;margin-left:0!important;margin-bottom:13px!important;padding:0!important}.auto-add-pages{clear:both;float:none}#nav-menus-frame .open-label span{float:none;display:inline-block}#nav-menus-frame .delete-action{float:none}#title-wrap #title-prompt-text{right:0}.screen-reader-text{right:auto;text-indent:-1000em}
\ No newline at end of file
--- a/web/wp-admin/css/ie.css	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-admin/css/ie.css	Wed Dec 19 17:46:52 2012 -0800
@@ -1,1 +1,626 @@
-.wp-editor-wrap .wp-editor-container textarea.wp-editor-area{width:97%}#post-body.columns-2 #postbox-container-1{padding-left:19px}.welcome-panel .wp-badge{position:absolute}.welcome-panel .welcome-panel-column{margin:0 -25px 0 4%}#wp-fullscreen-title{width:97%}#wp_mce_fullscreen_ifr{background-color:#f9f9f9}#wp-fullscreen-tagline{color:#888;font-size:14px}#adminmenushadow{display:none}#adminmenuback{left:0;background-image:none}#adminmenuwrap{position:static}#adminmenu{position:relative}#adminmenu li.wp-menu-separator,#adminmenu li.wp-menu-separator-last{font-size:1px;line-height:1}#adminmenu a.menu-top{border-bottom:0 none;border-top:1px solid #ddd}#adminmenu .separator{font-size:1px;line-height:1px}#adminmenu .wp-submenu ul{margin:0}.folded #adminmenu .wp-submenu ul{margin-left:5px}#adminmenu li.menu-top{margin-bottom:-2px}#adminmenu li.wp-not-current-submenu:hover .wp-menu-arrow{display:none}#wpcontent #adminmenu .wp-submenu li.wp-submenu-head{padding:3px 4px 4px 10px;zoom:100%}.js.folded #adminmenu .menu-top{height:30px}.js.folded #adminmenu .wp-submenu{margin:-1px 0 0 0}.js.folded #adminmenu li.menu-top{display:block;zoom:100%}ul#adminmenu{z-index:99}#adminmenu li.menu-top a.menu-top{min-width:auto;width:auto}#wpcontent #adminmenu li.wp-has-current-submenu a.wp-has-submenu{font-style:normal}#wpcontent #adminmenu .wp-submenu li{padding:0}#collapse-menu{line-height:23px}#wpadminbar .ab-comments-icon{padding-top:7px}table.fixed th,table.fixed td{border-top:1px solid #ddd}#wpbody-content input.button,#wpbody-content input.button-primary,#wpbody-content input.button-secondary,#wpbody-content input.button-highlighted{overflow:visible}#dashboard-widgets #dashboard_quick_press form p.submit #publish{float:none}#dashboard-widgets h3 a{height:14px;line-height:14px}#dashboard_browser_nag{color:#fff}#dashboard_browser_nag .browser-icon{position:relative}.tablenav-pages .current-page{vertical-align:middle}#wpbody-content .postbox{border:1px solid #dfdfdf}#wpbody-content .postbox h3{margin-bottom:-1px}.major-publishing-actions,.wp-submenu,.wp-submenu li,.wp-menu-toggle,#template,#template div,#editcat,#addcat{zoom:100%}.wp-menu-arrow{height:28px}.submitbox{margin-top:10px}#wpbody-content .quick-edit-row-post .inline-edit-col-left{width:39%}#wpbody-content .inline-edit-row-post .inline-edit-col-center{width:19%}#wpbody-content .quick-edit-row-page .inline-edit-col-left{width:49%}#wpbody-content .bulk-edit-row .inline-edit-col-left{width:29%}.inline-edit-row p.submit{zoom:100%}.inline-edit-row fieldset label span.title{display:block;float:left;width:5em}.inline-edit-row fieldset label span.input-text-wrap{margin-left:0;zoom:100%}#wpbody-content .inline-edit-row fieldset label span.input-text-wrap input{line-height:130%}#wpbody-content .inline-edit-row .input-text-wrap input{width:95%}#wpbody-content .inline-edit-row .input-text-wrap input.inline-edit-password-input{width:8em}#titlediv #title{width:98%}a.button{line-height:1.4em;margin:1px;padding:2px 6px}#screen-options-wrap{overflow:hidden}#the-comment-list .comment-item,#post-status-info,#wpwrap,#wrap,#postdivrich,#postdiv,#poststuff,.metabox-holder,#titlediv,#post-body,#editorcontainer,.tablenav,.widget-liquid-left,.widget-liquid-right,#widgets-left,.widgets-sortables,#dragHelper,.widget .widget-top,.widget,.widget-control-actions,.tagchecklist,#col-container,#col-left,#col-right,.fileedit-sub{display:block;zoom:100%}p.search-box{position:static;float:right;margin:-3px 0 4px}#editorcontainer #content{overflow:auto;margin:auto;width:98%}form#template div{width:100%}.wp-editor-container .quicktags-toolbar input{overflow:visible;padding:0 4px}#poststuff h2{font-size:1.6em}#bh{margin:7px 10px 0 0;float:right}div#dashboard-widgets{padding-right:1px}.tagchecklist span,.tagchecklist span a{display:inline-block;display:block}.tagchecklist span a{margin:4px 0 0 -9px}.tablenav .button-secondary,.nav .button-secondary{padding-top:2px;padding-bottom:2px}.tablenav select{font-size:13px;display:inline-block;vertical-align:top;margin-top:2px}.tablenav .actions select{width:155px}table.ie-fixed{table-layout:fixed}.widefat tr,.widefat th{margin-bottom:0;border-spacing:0}.widefat th input{margin:0 0 0 5px}.widefat .check-column{padding:6px 0 2px}.widefat tbody th.check-column{padding:4px 0 22px}.widefat{empty-cells:show;border-collapse:collapse}.tablenav a.button-secondary{display:inline-block;padding:2px 5px}.inactive-sidebar .widgets-sortables{padding-bottom:8px}#available-widgets .widget-holder{padding-bottom:65px}#widgets-left .inactive{padding-bottom:10px}.widget-liquid-right .widget,.inactive-sidebar .widget{position:relative}#wpcontent .button-primary-disabled{color:#9fd0d5;background:#298cba}#wpcontent #ajax-loading,#wpcontent .ajax-loading{vertical-align:baseline}#the-comment-list .unapproved tr,#the-comment-list .unapproved td{background-color:#ffffe0}.imgedit-submit{width:300px}#nav-menus-frame,#wpbody,.menu li{zoom:100%}#update-nav-menu #post-body{overflow:hidden}.menu li{min-width:100%}.menu li.sortable-placeholder{min-width:400px}.about-wrap img.element-screenshot{padding:2px}.about-wrap .feature-section img,.about-wrap .feature-section .image-mask{border-width:1px;border-style:solid}.about-wrap .feature-section.three-col img{margin-left:0}.available-theme{display:inline}.available-theme ul{margin:0}.about-wrap .three-col-images img{margin:0 .6% 10px}.about-wrap .three-col-images .last-feature,.about-wrap .three-col-images .first-feature{float:none}* html .row-actions{visibility:visible}* html div.widget-liquid-left,* html div.widget-liquid-right{display:block;position:relative}* html #editorcontainer{padding:0}* html #poststuff h2{margin-left:0}* html .stuffbox,* html .stuffbox input,* html .stuffbox textarea{border:1px solid #dfdfdf}* html .feature-filter .feature-group li{width:145px}* html .widget-top .widget-title-action a{background:url("../images/menu-bits.gif?ver=20100610") no-repeat scroll 0 -110px}* html div.widget-liquid-left{width:99%}* html .widgets-sortables{height:50px}* html a#content_resize{right:-2px}* html .widget-title h4{width:205px}* html #removing-widget .in-widget-title{display:none}* html .media-item .pinkynail{height:32px;width:40px}* html .describe .field input.text,* html .describe .field textarea{width:440px}* html input{border:1px solid #dfdfdf}* html .meta-box-sortables .postbox .handlediv{background:transparent url(../images/menu-bits-vs.gif) no-repeat scroll left -111px}* html .edit-box{display:inline}* html .postbox-container .meta-box-sortables{height:300px}* html #wpbody-content #screen-options-link-wrap{display:inline-block;width:150px;text-align:center}* html #wpbody-content #contextual-help-link-wrap{display:inline-block;width:100px;text-align:center}* html #adminmenu{margin-left:-80px}* html .folded #adminmenu{margin-left:-22px}* html #wpcontent #adminmenu li.menu-top{display:inline;padding:0;margin:0}* html #footer{margin:0}* html #wpcontent #adminmenu .wp-menu-open .wp-menu-toggle{background:0}* html #wpcontent #adminmenu .wp-has-submenu .wp-menu-toggle{background:url(../images/menu-bits.gif?ver=20100610) no-repeat scroll left -109px}* html #wpcontent #adminmenu li.wp-has-current-submenu .wp-menu-toggle{background:url(../images/menu-bits.gif?ver=20100610) no-repeat scroll left -206px}* html #adminmenu div.wp-menu-image{height:29px}
\ No newline at end of file
+/* Fixes for IE 7 bugs */
+
+#dashboard-widgets form .input-text-wrap input,
+#dashboard-widgets form .textarea-wrap textarea {
+	width: 99%;
+}
+
+#dashboard-widgets form #title {
+	width: 98%;
+}
+
+.wp-editor-wrap .wp-editor-container textarea.wp-editor-area {
+	width: 97%;
+}
+
+#post-body.columns-2 #postbox-container-1 {
+	padding-left: 19px;
+}
+
+.welcome-panel .wp-badge {
+	position: absolute;
+}
+
+.welcome-panel .welcome-panel-column:first-child {
+	width: 35%;
+}
+
+#wp-fullscreen-title {
+	width: 97%;
+}
+
+#wp_mce_fullscreen_ifr {
+	background-color: #f9f9f9;
+}
+
+#wp-fullscreen-tagline {
+	color: #888;
+	font-size: 14px;
+}
+
+#adminmenushadow {
+	display: none;
+}
+
+#adminmenuback {
+	left: 0;
+	background-image: none;
+}
+
+#adminmenuwrap {
+	position: static;
+}
+
+#adminmenu {
+	position: relative;
+}
+
+#adminmenu,
+#adminmenu a {
+	cursor: pointer;
+}
+
+#adminmenu li.wp-menu-separator,
+#adminmenu li.wp-menu-separator-last {
+	font-size: 1px;
+	line-height: 1;
+}
+
+#adminmenu a.menu-top {
+	border-bottom: 0 none;
+	border-top: 1px solid #ddd;
+}
+
+#adminmenu .separator {
+	font-size: 1px;
+	line-height: 1px;
+}
+
+#adminmenu .wp-submenu ul {
+	margin: 0;
+}
+
+.folded #adminmenu .wp-submenu {
+	border-top-color: transparent;
+}
+
+#adminmenu .wp-submenu .wp-submenu-head {
+	border-top-color: #ddd;
+}
+
+.folded #adminmenu .wp-submenu ul {
+	margin-left: 5px;
+}
+
+#adminmenu li.menu-top {
+	margin-bottom: -2px;
+}
+
+#adminmenu .wp-menu-arrow {
+	display: none !important;
+}
+
+.js.folded #adminmenu li.menu-top {
+	display: block;
+	zoom: 100%;
+}
+
+ul#adminmenu {
+	z-index: 99;
+}
+
+#adminmenu li.menu-top a.menu-top {
+	min-width: auto;
+	width: auto;
+}
+
+#wpcontent #adminmenu li.wp-has-current-submenu a.wp-has-submenu {
+	font-style: normal;
+}
+
+#wpcontent #adminmenu .wp-submenu li {
+	padding: 0;
+}
+
+#collapse-menu {
+	line-height: 23px;
+}
+
+#wpadminbar .ab-comments-icon {
+	padding-top: 7px;
+}
+
+table.fixed th,
+table.fixed td {
+	border-top: 1px solid #ddd;
+}
+
+#wpbody-content input.button,
+#wpbody-content input.button-primary,
+#wpbody-content input.button-secondary {
+	overflow: visible;
+}
+
+#dashboard-widgets #dashboard_quick_press form p.submit #publish {
+	float: none;
+}
+
+#dashboard-widgets h3 a {
+	height: 14px;
+	line-height: 14px;
+}
+
+#dashboard_browser_nag {
+	color: #fff;
+}
+
+#dashboard_browser_nag .browser-icon {
+	position: relative;
+}
+
+.tablenav-pages .current-page {
+	vertical-align: middle;
+}
+
+#wpbody-content .postbox {
+	border: 1px solid #dfdfdf;
+}
+
+#wpbody-content .postbox h3 {
+	margin-bottom: -1px;
+}
+
+.major-publishing-actions,
+.wp-submenu,
+.wp-submenu li,
+#template,
+#template div,
+#editcat,
+#addcat {
+	zoom: 100%;
+}
+
+.wp-menu-arrow {
+	height: 28px;
+}
+
+.submitbox {
+	margin-top: 10px;
+}
+
+/* Inline Editor */
+#wpbody-content .quick-edit-row-post .inline-edit-col-left {
+	width: 39%;
+}
+
+#wpbody-content .inline-edit-row-post .inline-edit-col-center {
+	width: 19%;
+}
+
+#wpbody-content .quick-edit-row-page .inline-edit-col-left {
+	width: 49%;
+}
+
+#wpbody-content .bulk-edit-row .inline-edit-col-left {
+	width: 29%;
+}
+
+.inline-edit-row p.submit {
+	zoom: 100%;
+}
+
+.inline-edit-row fieldset label span.title {
+	display: block;
+	float: left;
+	width: 5em;
+}
+
+.inline-edit-row fieldset label span.input-text-wrap {
+	margin-left: 0;
+	zoom: 100%;
+}
+
+#wpbody-content .inline-edit-row fieldset label span.input-text-wrap input {
+	line-height: 130%;
+}
+
+#wpbody-content .inline-edit-row .input-text-wrap input {
+	width: 95%;
+}
+
+#wpbody-content .inline-edit-row .input-text-wrap input.inline-edit-password-input {
+	width: 8em;
+}
+/* end Inline Editor */
+
+#titlediv #title {
+	width: 98%;
+}
+
+.button,
+input[type="reset"],
+input[type="button"],
+input[type="submit"] {
+	padding: 0 8px;
+	line-height: 20px;
+	height: auto;
+}
+
+.button.button-large,
+input[type="reset"].button-large,
+input[type="button"].button-large,
+input[type="submit"].button-large {
+	padding: 0 10px;
+	line-height: 24px;
+	height: auto;
+}
+
+.button.button-small,
+input[type="reset"].button-small,
+input[type="button"].button-small,
+input[type="submit"].button-small {
+	padding: 0 6px;
+	line-height: 16px;
+	height: auto;
+}
+
+a.button {
+	margin: 1px;
+	padding: 1px 9px 2px;
+}
+
+a.button.button-large {
+	padding: 1px 11px 2px;
+}
+
+a.button.button-small {
+	padding: 1px 7px 2px;
+}
+
+#screen-options-wrap {
+	overflow: hidden;
+}
+
+#the-comment-list .comment-item,
+#post-status-info,
+#wpwrap,
+#wrap,
+#postdivrich,
+#postdiv,
+#poststuff,
+.metabox-holder,
+#titlediv,
+#post-body,
+#editorcontainer,
+.tablenav,
+.widget-liquid-left,
+.widget-liquid-right,
+#widgets-left,
+.widgets-sortables,
+#dragHelper,
+.widget .widget-top,
+.widget-control-actions,
+.tagchecklist,
+#col-container,
+#col-left,
+#col-right,
+.fileedit-sub {
+	display: block;
+	zoom: 100%;
+}
+
+p.search-box {
+	position: static;
+	float: right;
+	margin: -3px 0 4px;
+}
+
+#widget-list .widget,
+.feature-filter .feature-group li {
+	display: inline;
+}
+
+.feature-filter .feature-group li input {
+	vertical-align: middle;
+}
+
+#editorcontainer #content {
+	overflow: auto;
+	margin: auto;
+	width: 98%;
+}
+
+form#template div {
+	width: 100%;
+}
+
+.wp-editor-container .quicktags-toolbar input {
+	overflow: visible;
+	padding: 0 4px;
+}
+
+#poststuff h2 {
+	font-size: 1.6em;
+}
+
+#poststuff .inside #parent_id,
+#poststuff .inside #page_template,
+.inline-edit-row #post_parent,
+.inline-edit-row select[name="page_template"] {
+	width: 250px;
+}
+
+#submitdiv input,
+#submitdiv select,
+#submitdiv a.button {
+	position: relative;
+}
+
+#bh {
+	margin: 7px 10px 0 0;
+	float: right;
+}
+
+/* without this dashboard widgets appear in one column for some screen widths */
+div#dashboard-widgets {
+	padding-right: 1px;
+}
+
+.tagchecklist span, .tagchecklist span a {
+	display: inline-block;
+	display: block;
+}
+
+.tagchecklist span a {
+	margin: 4px 0 0 -9px;
+}
+
+.tablenav .button-secondary,
+.nav .button-secondary {
+	padding-top: 2px;
+	padding-bottom: 2px;
+}
+
+.tablenav select {
+	font-size: 13px;
+	display: inline-block;
+	vertical-align: top;
+	margin-top: 2px;
+}
+
+.tablenav .actions select {
+	width: 155px;
+}
+
+.subsubsub li {
+	display: inline;
+}
+
+table.ie-fixed {
+	table-layout: fixed;
+}
+
+.widefat tr,
+.widefat th {
+	margin-bottom: 0;
+	border-spacing: 0;
+}
+
+.widefat th input {
+	margin: 0 0 0 5px;
+}
+
+.widefat thead .check-column,
+.widefat tfoot .check-column {
+	padding-top: 6px;
+}
+
+.widefat tbody th.check-column,
+.media.widefat tbody th.check-column {
+	padding: 4px 0 0;
+}
+
+.widefat {
+	empty-cells: show;
+	border-collapse: collapse;
+}
+
+.tablenav a.button-secondary {
+	display: inline-block;
+	padding: 2px 5px;
+}
+
+.inactive-sidebar .widgets-sortables {
+	padding-bottom: 8px;
+}
+
+#available-widgets .widget-holder {
+	padding-bottom: 65px;
+}
+
+#widgets-left .inactive {
+	padding-bottom: 10px;
+}
+
+.widget-liquid-right .widget,
+.inactive-sidebar .widget {
+	position: relative;
+}
+
+.inactive-sidebar .widget {
+	display: block;
+	float: left;
+}
+
+#wpcontent .button-primary-disabled {
+	color: #9FD0D5;
+	background: #298CBA;
+}
+
+#the-comment-list .unapproved tr,
+#the-comment-list .unapproved td {
+	background-color: #ffffe0;
+}
+
+.imgedit-submit {
+	width: 300px;
+}
+
+#nav-menus-frame,
+#wpbody,
+.menu li {
+	zoom: 100%;
+}
+
+#update-nav-menu #post-body {
+	overflow:hidden;
+}
+
+.menu li {
+	min-width: 100%;
+}
+
+.menu li.sortable-placeholder {
+	min-width: 400px;
+}
+
+.about-wrap img.element-screenshot {
+	padding: 2px;
+}
+
+.about-wrap .feature-section img,
+.about-wrap .feature-section .image-mask {
+	border-width: 1px;
+	border-style: solid;
+}
+
+.about-wrap .feature-section.three-col img {
+	margin-left: 0;
+}
+
+.available-theme {
+	display: inline;
+}
+
+.available-theme ul {
+	margin: 0;
+}
+
+.available-theme .action-links li {
+	padding-right: 7px;
+	margin-right: 7px;
+}
+
+.about-wrap .three-col-images img {
+	margin: 0 0.6% 10px;
+}
+
+.about-wrap .three-col-images .last-feature,
+.about-wrap .three-col-images .first-feature {
+	float: none;
+}
+
+/* IE6 leftovers */
+* html .row-actions {
+	visibility: visible;
+}
+
+* html div.widget-liquid-left,
+* html div.widget-liquid-right {
+	display: block;
+	position: relative;
+}
+
+* html #editorcontainer {
+	padding: 0;
+}
+
+* html #poststuff h2 {
+	margin-left: 0;
+}
+
+* html .stuffbox,
+* html .stuffbox input,
+* html .stuffbox textarea {
+	border: 1px solid #DFDFDF;
+}
+
+* html .feature-filter .feature-group li {
+	width: 145px;
+}
+
+* html div.widget-liquid-left {
+	width: 99%;
+}
+
+* html .widgets-sortables {
+	height: 50px;
+}
+
+* html a#content_resize {
+	right: -2px;
+}
+
+* html .widget-title h4 {
+	width: 205px;
+}
+
+* html #removing-widget .in-widget-title {
+	display: none;
+}
+
+* html .media-item .pinkynail {
+	height: 32px;
+	width: 40px;
+}
+
+* html .describe .field input.text,
+* html .describe .field textarea {
+	width: 440px;
+}
+
+* html input {
+	border: 1px solid #dfdfdf;
+}
+
+* html .edit-box {
+	display: inline;
+}
+
+* html .postbox-container .meta-box-sortables {
+	height: 300px;
+}
+
+* html #wpbody-content #screen-options-link-wrap {
+	display: inline-block;
+	width: 150px;
+	text-align: center;
+}
+
+* html #wpbody-content #contextual-help-link-wrap {
+	display: inline-block;
+	width: 100px;
+	text-align: center;
+}
+
+* html #adminmenu {
+	margin-left: -80px;
+}
+
+* html .folded #adminmenu {
+	margin-left: -22px;
+}
+
+* html #wpcontent #adminmenu li.menu-top {
+	display: inline;
+	padding: 0;
+	margin: 0;
+}
+
+* html #wpfooter {
+	margin: 0;
+}
+
+* html #adminmenu div.wp-menu-image {
+	height: 29px;
+}
--- a/web/wp-admin/css/ie.dev.css	Wed Dec 19 12:35:13 2012 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,573 +0,0 @@
-/* Fixes for IE 7 bugs */
-
-.wp-editor-wrap .wp-editor-container textarea.wp-editor-area {
-	width: 97%;
-}
-
-#post-body.columns-2 #postbox-container-1 {
-	padding-left: 19px;
-}
-
-.welcome-panel .wp-badge {
-	position: absolute;
-}
-
-.welcome-panel .welcome-panel-column {
-	margin: 0 -25px 0 4%;
-}
-
-#wp-fullscreen-title {
-	width: 97%;
-}
-
-#wp_mce_fullscreen_ifr {
-	background-color: #f9f9f9;
-}
-
-#wp-fullscreen-tagline {
-	color: #888;
-	font-size: 14px;
-}
-
-#adminmenushadow {
-	display: none;
-}
-
-#adminmenuback {
-	left: 0;
-	background-image: none;
-}
-
-#adminmenuwrap {
-	position: static;
-}
-
-#adminmenu {
-	position: relative;
-}
-
-#adminmenu li.wp-menu-separator,
-#adminmenu li.wp-menu-separator-last {
-	font-size: 1px;
-	line-height: 1;
-}
-
-#adminmenu a.menu-top {
-	border-bottom: 0 none;
-	border-top: 1px solid #ddd;
-}
-
-#adminmenu .separator {
-	font-size: 1px;
-	line-height: 1px;
-}
-
-#adminmenu .wp-submenu ul {
-	margin: 0;
-}
-
-.folded #adminmenu .wp-submenu ul {
-	margin-left: 5px;
-}
-
-#adminmenu li.menu-top {
-	margin-bottom: -2px;
-}
-
-#adminmenu li.wp-not-current-submenu:hover .wp-menu-arrow {
-	display: none;
-}
-
-#wpcontent #adminmenu .wp-submenu li.wp-submenu-head {
-	padding: 3px 4px 4px 10px;
-	zoom: 100%;
-}
-
-.js.folded #adminmenu .menu-top {
-	height: 30px;
-}
-
-.js.folded #adminmenu .wp-submenu {
-	margin: -1px 0 0 0;
-}
-
-.js.folded #adminmenu li.menu-top {
-	display: block;
-	zoom: 100%;
-}
-
-ul#adminmenu {
-	z-index: 99;
-}
-
-#adminmenu li.menu-top a.menu-top {
-	min-width: auto;
-	width: auto;
-}
-
-#wpcontent #adminmenu li.wp-has-current-submenu a.wp-has-submenu {
-	font-style: normal;
-}
-
-#wpcontent #adminmenu .wp-submenu li {
-	padding: 0;
-}
-
-#collapse-menu {
-	line-height: 23px;
-}
-
-#wpadminbar .ab-comments-icon {
-	padding-top: 7px;
-}
-
-table.fixed th,
-table.fixed td {
-	border-top: 1px solid #ddd;
-}
-
-#wpbody-content input.button,
-#wpbody-content input.button-primary,
-#wpbody-content input.button-secondary,
-#wpbody-content input.button-highlighted {
-	overflow: visible;
-}
-
-#dashboard-widgets #dashboard_quick_press form p.submit #publish {
-	float: none;
-}
-
-#dashboard-widgets h3 a {
-	height: 14px;
-	line-height: 14px;
-}
-
-#dashboard_browser_nag {
-	color: #fff;
-}
-
-#dashboard_browser_nag .browser-icon {
-	position: relative;
-}
-
-.tablenav-pages .current-page {
-	vertical-align: middle;
-}
-
-#wpbody-content .postbox {
-	border: 1px solid #dfdfdf;
-}
-
-#wpbody-content .postbox h3 {
-	margin-bottom: -1px;
-}
-
-.major-publishing-actions,
-.wp-submenu,
-.wp-submenu li,
-.wp-menu-toggle,
-#template,
-#template div,
-#editcat,
-#addcat {
-	zoom: 100%;
-}
-
-.wp-menu-arrow {
-	height: 28px;
-}
-
-.submitbox {
-	margin-top: 10px;
-}
-
-/* Inline Editor */
-#wpbody-content .quick-edit-row-post .inline-edit-col-left {
-	width: 39%;
-}
-
-#wpbody-content .inline-edit-row-post .inline-edit-col-center {
-	width: 19%;
-}
-
-#wpbody-content .quick-edit-row-page .inline-edit-col-left {
-	width: 49%;
-}
-
-#wpbody-content .bulk-edit-row .inline-edit-col-left {
-	width: 29%;
-}
-
-.inline-edit-row p.submit {
-	zoom: 100%;
-}
-
-.inline-edit-row fieldset label span.title {
-	display: block;
-	float: left;
-	width: 5em;
-}
-
-.inline-edit-row fieldset label span.input-text-wrap {
-	margin-left: 0;
-	zoom: 100%;
-}
-
-#wpbody-content .inline-edit-row fieldset label span.input-text-wrap input {
-	line-height: 130%;
-}
-
-#wpbody-content .inline-edit-row .input-text-wrap input {
-	width: 95%;
-}
-
-#wpbody-content .inline-edit-row .input-text-wrap input.inline-edit-password-input {
-	width: 8em;
-}
-/* end Inline Editor */
-
-#titlediv #title {
-	width: 98%;
-}
-
-a.button {
-	line-height: 1.4em;
-	margin: 1px;
-	padding: 2px 6px;
-}
-
-#screen-options-wrap {
-	overflow: hidden;
-}
-
-#the-comment-list .comment-item,
-#post-status-info,
-#wpwrap,
-#wrap,
-#postdivrich,
-#postdiv,
-#poststuff,
-.metabox-holder,
-#titlediv,
-#post-body,
-#editorcontainer,
-.tablenav,
-.widget-liquid-left,
-.widget-liquid-right,
-#widgets-left,
-.widgets-sortables,
-#dragHelper,
-.widget .widget-top,
-.widget,
-.widget-control-actions,
-.tagchecklist,
-#col-container,
-#col-left,
-#col-right,
-.fileedit-sub {
-	display: block;
-	zoom: 100%;
-}
-
-p.search-box {
-	position: static;
-	float: right;
-	margin: -3px 0 4px;
-}
-
-
-#editorcontainer #content {
-	overflow: auto;
-	margin: auto;
-	width: 98%;
-}
-
-form#template div {
-	width: 100%;
-}
-
-.wp-editor-container .quicktags-toolbar input {
-	overflow: visible;
-	padding: 0 4px;
-}
-
-#poststuff h2 {
-	font-size: 1.6em;
-}
-
-#bh {
-	margin: 7px 10px 0 0;
-	float: right;
-}
-
-/* without this dashboard widgets appear in one column for some screen widths */
-div#dashboard-widgets {
-	padding-right: 1px;
-}
-
-.tagchecklist span, .tagchecklist span a {
-	display: inline-block;
-	display: block;
-}
-
-.tagchecklist span a {
-	margin: 4px 0 0 -9px;
-}
-
-.tablenav .button-secondary,
-.nav .button-secondary {
-	padding-top: 2px;
-	padding-bottom: 2px;
-}
-
-.tablenav select {
-	font-size: 13px;
-	display: inline-block;
-	vertical-align: top;
-	margin-top: 2px;
-}
-
-.tablenav .actions select {
-	width: 155px;
-}
-
-table.ie-fixed {
-	table-layout: fixed;
-}
-
-.widefat tr, .widefat th {
-	margin-bottom: 0;
-	border-spacing: 0;
-}
-
-.widefat th input {
-	margin: 0 0 0 5px;
-}
-
-.widefat .check-column {
-	padding: 6px 0 2px;
-}
-
-.widefat tbody th.check-column {
-	padding: 4px 0 22px;
-}
-
-.widefat {
-	empty-cells: show;
-	border-collapse: collapse;
-}
-
-.tablenav a.button-secondary {
-	display: inline-block;
-	padding: 2px 5px;
-}
-
-.inactive-sidebar .widgets-sortables {
-	padding-bottom: 8px;
-}
-
-#available-widgets .widget-holder {
-	padding-bottom: 65px;
-}
-
-#widgets-left .inactive {
-	padding-bottom: 10px;
-}
-
-.widget-liquid-right .widget,
-.inactive-sidebar .widget {
-	position: relative;
-}
-
-#wpcontent .button-primary-disabled {
-	color: #9FD0D5;
-	background: #298CBA;
-}
-
-#wpcontent #ajax-loading,
-#wpcontent .ajax-loading {
-	vertical-align: baseline;
-}
-
-#the-comment-list .unapproved tr,
-#the-comment-list .unapproved td {
-	background-color: #ffffe0;
-}
-
-.imgedit-submit {
-	width: 300px;
-}
-
-#nav-menus-frame,
-#wpbody,
-.menu li {
-	zoom: 100%;
-}
-
-#update-nav-menu #post-body {
-	overflow:hidden;
-}
-
-.menu li {
-	min-width: 100%;
-}
-
-.menu li.sortable-placeholder {
-	min-width: 400px;
-}
-
-.about-wrap img.element-screenshot {
-	padding: 2px;
-}
-
-.about-wrap .feature-section img,
-.about-wrap .feature-section .image-mask {
-	border-width: 1px;
-	border-style: solid;
-}
-
-.about-wrap .feature-section.three-col img {
-	margin-left: 0;
-}
-
-.available-theme {
-	display: inline;
-}
-
-.available-theme ul {
-	margin: 0;
-}
-
-.about-wrap .three-col-images img {
-	margin: 0 0.6% 10px;
-}
-
-.about-wrap .three-col-images .last-feature,
-.about-wrap .three-col-images .first-feature {
-	float: none;
-}
-
-/* IE6 leftovers */
-* html .row-actions {
-	visibility: visible;
-}
-
-* html div.widget-liquid-left,
-* html div.widget-liquid-right {
-	display: block;
-	position: relative;
-}
-
-* html #editorcontainer {
-	padding: 0;
-}
-
-* html #poststuff h2 {
-	margin-left: 0;
-}
-
-* html .stuffbox,
-* html .stuffbox input,
-* html .stuffbox textarea {
-	border: 1px solid #DFDFDF;
-}
-
-* html .feature-filter .feature-group li {
-	width: 145px;
-}
-
-* html .widget-top .widget-title-action a {
-	background: url("../images/menu-bits.gif?ver=20100610") no-repeat scroll 0 -110px;
-}
-
-* html div.widget-liquid-left {
-	width: 99%;
-}
-
-* html .widgets-sortables {
-	height: 50px;
-}
-
-* html a#content_resize {
-	right: -2px;
-}
-
-* html .widget-title h4 {
-	width: 205px;
-}
-
-* html #removing-widget .in-widget-title {
-	display: none;
-}
-
-* html .media-item .pinkynail {
-	height: 32px;
-	width: 40px;
-}
-
-* html .describe .field input.text,
-* html .describe .field textarea {
-	width: 440px;
-}
-
-* html input {
-	border: 1px solid #dfdfdf;
-}
-
-* html .meta-box-sortables .postbox .handlediv {
-	background: transparent url(../images/menu-bits-vs.gif) no-repeat scroll left -111px;
-}
-
-* html .edit-box {
-	display: inline;
-}
-
-* html .postbox-container .meta-box-sortables {
-	height: 300px;
-}
-
-* html #wpbody-content #screen-options-link-wrap {
-	display: inline-block;
-	width: 150px;
-	text-align: center;
-}
-
-* html #wpbody-content #contextual-help-link-wrap {
-	display: inline-block;
-	width: 100px;
-	text-align: center;
-}
-
-* html #adminmenu {
-	margin-left: -80px;
-}
-
-* html .folded #adminmenu {
-	margin-left: -22px;
-}
-
-* html #wpcontent #adminmenu li.menu-top {
-	display: inline;
-	padding: 0;
-	margin: 0;
-}
-
-* html #footer {
-	margin: 0;
-}
-
-* html #wpcontent #adminmenu .wp-menu-open .wp-menu-toggle {
-	background: none;
-}
-
-* html #wpcontent #adminmenu .wp-has-submenu .wp-menu-toggle {
-	background: url(../images/menu-bits.gif?ver=20100610) no-repeat scroll left -109px;
-}
-
-* html #wpcontent #adminmenu li.wp-has-current-submenu .wp-menu-toggle {
-	background: url(../images/menu-bits.gif?ver=20100610) no-repeat scroll left -206px;
-}
-
-* html #adminmenu div.wp-menu-image {
-	height: 29px;
-}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-admin/css/ie.min.css	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,1 @@
+#dashboard-widgets form .input-text-wrap input,#dashboard-widgets form .textarea-wrap textarea{width:99%}#dashboard-widgets form #title{width:98%}.wp-editor-wrap .wp-editor-container textarea.wp-editor-area{width:97%}#post-body.columns-2 #postbox-container-1{padding-left:19px}.welcome-panel .wp-badge{position:absolute}.welcome-panel .welcome-panel-column:first-child{width:35%}#wp-fullscreen-title{width:97%}#wp_mce_fullscreen_ifr{background-color:#f9f9f9}#wp-fullscreen-tagline{color:#888;font-size:14px}#adminmenushadow{display:none}#adminmenuback{left:0;background-image:none}#adminmenuwrap{position:static}#adminmenu{position:relative}#adminmenu,#adminmenu a{cursor:pointer}#adminmenu li.wp-menu-separator,#adminmenu li.wp-menu-separator-last{font-size:1px;line-height:1}#adminmenu a.menu-top{border-bottom:0 none;border-top:1px solid #ddd}#adminmenu .separator{font-size:1px;line-height:1px}#adminmenu .wp-submenu ul{margin:0}.folded #adminmenu .wp-submenu{border-top-color:transparent}#adminmenu .wp-submenu .wp-submenu-head{border-top-color:#ddd}.folded #adminmenu .wp-submenu ul{margin-left:5px}#adminmenu li.menu-top{margin-bottom:-2px}#adminmenu .wp-menu-arrow{display:none!important}.js.folded #adminmenu li.menu-top{display:block;zoom:100%}ul#adminmenu{z-index:99}#adminmenu li.menu-top a.menu-top{min-width:auto;width:auto}#wpcontent #adminmenu li.wp-has-current-submenu a.wp-has-submenu{font-style:normal}#wpcontent #adminmenu .wp-submenu li{padding:0}#collapse-menu{line-height:23px}#wpadminbar .ab-comments-icon{padding-top:7px}table.fixed th,table.fixed td{border-top:1px solid #ddd}#wpbody-content input.button,#wpbody-content input.button-primary,#wpbody-content input.button-secondary{overflow:visible}#dashboard-widgets #dashboard_quick_press form p.submit #publish{float:none}#dashboard-widgets h3 a{height:14px;line-height:14px}#dashboard_browser_nag{color:#fff}#dashboard_browser_nag .browser-icon{position:relative}.tablenav-pages .current-page{vertical-align:middle}#wpbody-content .postbox{border:1px solid #dfdfdf}#wpbody-content .postbox h3{margin-bottom:-1px}.major-publishing-actions,.wp-submenu,.wp-submenu li,#template,#template div,#editcat,#addcat{zoom:100%}.wp-menu-arrow{height:28px}.submitbox{margin-top:10px}#wpbody-content .quick-edit-row-post .inline-edit-col-left{width:39%}#wpbody-content .inline-edit-row-post .inline-edit-col-center{width:19%}#wpbody-content .quick-edit-row-page .inline-edit-col-left{width:49%}#wpbody-content .bulk-edit-row .inline-edit-col-left{width:29%}.inline-edit-row p.submit{zoom:100%}.inline-edit-row fieldset label span.title{display:block;float:left;width:5em}.inline-edit-row fieldset label span.input-text-wrap{margin-left:0;zoom:100%}#wpbody-content .inline-edit-row fieldset label span.input-text-wrap input{line-height:130%}#wpbody-content .inline-edit-row .input-text-wrap input{width:95%}#wpbody-content .inline-edit-row .input-text-wrap input.inline-edit-password-input{width:8em}#titlediv #title{width:98%}.button,input[type="reset"],input[type="button"],input[type="submit"]{padding:0 8px;line-height:20px;height:auto}.button.button-large,input[type="reset"].button-large,input[type="button"].button-large,input[type="submit"].button-large{padding:0 10px;line-height:24px;height:auto}.button.button-small,input[type="reset"].button-small,input[type="button"].button-small,input[type="submit"].button-small{padding:0 6px;line-height:16px;height:auto}a.button{margin:1px;padding:1px 9px 2px}a.button.button-large{padding:1px 11px 2px}a.button.button-small{padding:1px 7px 2px}#screen-options-wrap{overflow:hidden}#the-comment-list .comment-item,#post-status-info,#wpwrap,#wrap,#postdivrich,#postdiv,#poststuff,.metabox-holder,#titlediv,#post-body,#editorcontainer,.tablenav,.widget-liquid-left,.widget-liquid-right,#widgets-left,.widgets-sortables,#dragHelper,.widget .widget-top,.widget-control-actions,.tagchecklist,#col-container,#col-left,#col-right,.fileedit-sub{display:block;zoom:100%}p.search-box{position:static;float:right;margin:-3px 0 4px}#widget-list .widget,.feature-filter .feature-group li{display:inline}.feature-filter .feature-group li input{vertical-align:middle}#editorcontainer #content{overflow:auto;margin:auto;width:98%}form#template div{width:100%}.wp-editor-container .quicktags-toolbar input{overflow:visible;padding:0 4px}#poststuff h2{font-size:1.6em}#poststuff .inside #parent_id,#poststuff .inside #page_template,.inline-edit-row #post_parent,.inline-edit-row select[name="page_template"]{width:250px}#submitdiv input,#submitdiv select,#submitdiv a.button{position:relative}#bh{margin:7px 10px 0 0;float:right}div#dashboard-widgets{padding-right:1px}.tagchecklist span,.tagchecklist span a{display:inline-block;display:block}.tagchecklist span a{margin:4px 0 0 -9px}.tablenav .button-secondary,.nav .button-secondary{padding-top:2px;padding-bottom:2px}.tablenav select{font-size:13px;display:inline-block;vertical-align:top;margin-top:2px}.tablenav .actions select{width:155px}.subsubsub li{display:inline}table.ie-fixed{table-layout:fixed}.widefat tr,.widefat th{margin-bottom:0;border-spacing:0}.widefat th input{margin:0 0 0 5px}.widefat thead .check-column,.widefat tfoot .check-column{padding-top:6px}.widefat tbody th.check-column,.media.widefat tbody th.check-column{padding:4px 0 0}.widefat{empty-cells:show;border-collapse:collapse}.tablenav a.button-secondary{display:inline-block;padding:2px 5px}.inactive-sidebar .widgets-sortables{padding-bottom:8px}#available-widgets .widget-holder{padding-bottom:65px}#widgets-left .inactive{padding-bottom:10px}.widget-liquid-right .widget,.inactive-sidebar .widget{position:relative}.inactive-sidebar .widget{display:block;float:left}#wpcontent .button-primary-disabled{color:#9fd0d5;background:#298cba}#the-comment-list .unapproved tr,#the-comment-list .unapproved td{background-color:#ffffe0}.imgedit-submit{width:300px}#nav-menus-frame,#wpbody,.menu li{zoom:100%}#update-nav-menu #post-body{overflow:hidden}.menu li{min-width:100%}.menu li.sortable-placeholder{min-width:400px}.about-wrap img.element-screenshot{padding:2px}.about-wrap .feature-section img,.about-wrap .feature-section .image-mask{border-width:1px;border-style:solid}.about-wrap .feature-section.three-col img{margin-left:0}.available-theme{display:inline}.available-theme ul{margin:0}.available-theme .action-links li{padding-right:7px;margin-right:7px}.about-wrap .three-col-images img{margin:0 .6% 10px}.about-wrap .three-col-images .last-feature,.about-wrap .three-col-images .first-feature{float:none}* html .row-actions{visibility:visible}* html div.widget-liquid-left,* html div.widget-liquid-right{display:block;position:relative}* html #editorcontainer{padding:0}* html #poststuff h2{margin-left:0}* html .stuffbox,* html .stuffbox input,* html .stuffbox textarea{border:1px solid #dfdfdf}* html .feature-filter .feature-group li{width:145px}* html div.widget-liquid-left{width:99%}* html .widgets-sortables{height:50px}* html a#content_resize{right:-2px}* html .widget-title h4{width:205px}* html #removing-widget .in-widget-title{display:none}* html .media-item .pinkynail{height:32px;width:40px}* html .describe .field input.text,* html .describe .field textarea{width:440px}* html input{border:1px solid #dfdfdf}* html .edit-box{display:inline}* html .postbox-container .meta-box-sortables{height:300px}* html #wpbody-content #screen-options-link-wrap{display:inline-block;width:150px;text-align:center}* html #wpbody-content #contextual-help-link-wrap{display:inline-block;width:100px;text-align:center}* html #adminmenu{margin-left:-80px}* html .folded #adminmenu{margin-left:-22px}* html #wpcontent #adminmenu li.menu-top{display:inline;padding:0;margin:0}* html #wpfooter{margin:0}* html #adminmenu div.wp-menu-image{height:29px}
\ No newline at end of file
--- a/web/wp-admin/css/install.css	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-admin/css/install.css	Wed Dec 19 17:46:52 2012 -0800
@@ -1,1 +1,261 @@
-html{background:#f9f9f9}body{background:#fff;color:#333;font-family:sans-serif;margin:2em auto;padding:1em 2em;-webkit-border-radius:3px;border-radius:3px;border:1px solid #dfdfdf;max-width:700px}a{color:#21759b;text-decoration:none}a:hover{color:#d54e21}h1{border-bottom:1px solid #dadada;clear:both;color:#666;font:24px Georgia,"Times New Roman",Times,serif;margin:30px 0 0 0;padding:0;padding-bottom:7px}h2{font-size:16px}p,li,dd,dt{padding-bottom:2px;font-size:14px;line-height:1.5}code,.code{font-size:14px}ul,ol,dl{padding:5px 5px 5px 22px}a img{border:0}abbr{border:0;font-variant:normal}#logo{margin:6px 0 14px 0;border-bottom:0;text-align:center}.step{margin:20px 0 15px}.step,th{text-align:left;padding:0}.submit input,.button,.button-secondary{font-family:sans-serif;text-decoration:none;font-size:14px!important;line-height:16px;padding:6px 12px;cursor:pointer;border:1px solid #bbb;color:#464646;-webkit-border-radius:15px;border-radius:15px;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}.button:hover,.button-secondary:hover,.submit input:hover{color:#000;border-color:#666}.button,.submit input,.button-secondary{background:#f2f2f2 url(../images/white-grad.png) repeat-x scroll left top}.button:active,.submit input:active,.button-secondary:active{background:#eee url(../images/white-grad-active.png) repeat-x scroll left top}textarea{border:1px solid #dfdfdf;-webkit-border-radius:3px;border-radius:3px;font-family:sans-serif;width:695px}.form-table{border-collapse:collapse;margin-top:1em;width:100%}.form-table td{margin-bottom:9px;padding:10px 20px 10px 0;border-bottom:8px solid #fff;font-size:14px;vertical-align:top}.form-table th{font-size:14px;text-align:left;padding:16px 20px 10px 0;border-bottom:8px solid #fff;width:140px;vertical-align:top}.form-table code{line-height:18px;font-size:14px}.form-table p{margin:4px 0 0 0;font-size:11px}.form-table input{line-height:20px;font-size:15px;padding:2px;border:1px #dfdfdf solid;-webkit-border-radius:3px;border-radius:3px;font-family:sans-serif}.form-table input[type=text],.form-table input[type=password]{width:206px}.form-table th p{font-weight:normal}.form-table.install-success td{vertical-align:middle;padding:16px 20px 10px 0}.form-table.install-success td p{margin:0;font-size:14px}.form-table.install-success td code{margin:0;font-size:18px}#error-page{margin-top:50px}#error-page p{font-size:14px;line-height:18px;margin:25px 0 20px}#error-page code,.code{font-family:Consolas,Monaco,monospace}#pass-strength-result{background-color:#eee;border-color:#ddd!important;border-style:solid;border-width:1px;margin:5px 5px 5px 0;padding:5px;text-align:center;width:200px;display:none}#pass-strength-result.bad{background-color:#ffb78c;border-color:#ff853c!important}#pass-strength-result.good{background-color:#ffec8b;border-color:#fc0!important}#pass-strength-result.short{background-color:#ffa0a0;border-color:#f04040!important}#pass-strength-result.strong{background-color:#c3ff88;border-color:#8dff1c!important}.message{border:1px solid #e6db55;padding:.3em .6em;margin:5px 0 15px;background-color:#ffffe0}body.rtl{font-family:Tahoma,arial}.rtl h1{font-family:arial;margin:5px -4px 0 0}.rtl ul,.rtl ol{padding:5px 22px 5px 5px}.rtl .step,.rtl th,.rtl .form-table th{text-align:right}.rtl .submit input,.rtl .button,.rtl .button-secondary{margin-right:0}.rtl #dbname,.rtl #uname,.rtl #pwd,.rtl #dbhost,.rtl #prefix,.rtl #user_login,.rtl #admin_email,.rtl #pass1,.rtl #pass2{direction:ltr}
\ No newline at end of file
+html {
+	background: #f9f9f9;
+}
+
+body {
+	background: #fff;
+	color: #333;
+	font-family: sans-serif;
+	margin: 2em auto;
+	padding: 1em 2em;
+	-webkit-border-radius: 3px;
+	border-radius: 3px;
+	border: 1px solid #dfdfdf;
+	max-width: 700px;
+}
+
+a {
+	color: #21759b;
+	text-decoration: none;
+}
+
+a:hover {
+	color: #d54e21;
+}
+
+h1 {
+	border-bottom: 1px solid #dadada;
+	clear: both;
+	color: #666;
+	font: 24px Georgia, "Times New Roman", Times, serif;
+	margin: 30px 0 0 0;
+	padding: 0;
+	padding-bottom: 7px;
+}
+
+h2 {
+	font-size: 16px;
+}
+
+p, li, dd, dt {
+	padding-bottom: 2px;
+	font-size: 14px;
+	line-height: 1.5;
+}
+
+code, .code {
+	font-size: 14px;
+}
+
+ul, ol, dl {
+	padding: 5px 5px 5px 22px;
+}
+
+a img {
+	border:0
+}
+abbr {
+	border: 0;
+	font-variant: normal;
+}
+#logo {
+	margin: 6px 0 14px 0;
+	border-bottom: none;
+	text-align:center
+}
+#logo a {
+	background-image: url('../images/wordpress-logo.png?ver=20120216');
+	background-size: 274px 63px;
+	background-position: top center;
+	background-repeat: no-repeat;
+	height: 67px;
+	text-indent: -9999px;
+	outline: none;
+	overflow: hidden;
+	display: block;
+}
+@media print,
+  (-o-min-device-pixel-ratio: 5/4),
+  (-webkit-min-device-pixel-ratio: 1.25),
+  (min-resolution: 120dpi) {
+	#logo a {
+		background-image: url('../images/wordpress-logo-2x.png?ver=20120412');
+		background-size: 274px 63px;
+	}
+}
+.step {
+	margin: 20px 0 15px;
+}
+.step, th {
+	text-align: left;
+	padding: 0;
+}
+.step .button-large {
+	font-size: 14px;
+}
+textarea {
+	border: 1px solid #dfdfdf;
+	-webkit-border-radius: 3px;
+	border-radius: 3px;
+	font-family: sans-serif;
+	width:  695px;
+}
+
+.form-table {
+	border-collapse: collapse;
+	margin-top: 1em;
+	width: 100%;
+}
+
+.form-table td {
+	margin-bottom: 9px;
+	padding: 10px 20px 10px 0;
+	border-bottom: 8px solid #fff;
+	font-size: 14px;
+	vertical-align: top
+}
+
+.form-table th {
+	font-size: 14px;
+	text-align: left;
+	padding: 16px 20px 10px 0;
+	border-bottom: 8px solid #fff;
+	width: 140px;
+	vertical-align: top;
+}
+
+.form-table code {
+	line-height: 18px;
+	font-size: 14px;
+}
+
+.form-table p {
+	margin: 4px 0 0 0;
+	font-size: 11px;
+}
+
+.form-table input {
+	line-height: 20px;
+	font-size: 15px;
+	padding: 2px;
+	border: 1px #dfdfdf solid;
+	-webkit-border-radius: 3px;
+	border-radius: 3px;
+	font-family: sans-serif;
+}
+
+.form-table input[type=text],
+.form-table input[type=password] {
+	width: 206px;
+}
+
+.form-table th p {
+	font-weight: normal;
+}
+
+.form-table.install-success td {
+	vertical-align: middle;
+	padding: 16px 20px 10px 0;
+}
+
+.form-table.install-success td p {
+	margin: 0;
+	font-size: 14px;
+}
+
+.form-table.install-success td code {
+	margin: 0;
+	font-size: 18px;
+}
+
+#error-page {
+	margin-top: 50px;
+}
+
+#error-page p {
+	font-size: 14px;
+	line-height: 18px;
+	margin: 25px 0 20px;
+}
+
+#error-page code, .code {
+	font-family: Consolas, Monaco, monospace;
+}
+
+#pass-strength-result {
+	background-color: #eee;
+	border-color: #ddd !important;
+	border-style: solid;
+	border-width: 1px;
+	margin: 5px 5px 5px 0;
+	padding: 5px;
+	text-align: center;
+	width: 200px;
+	display: none;
+}
+
+#pass-strength-result.bad {
+	background-color: #ffb78c;
+	border-color: #ff853c !important;
+}
+
+#pass-strength-result.good {
+	background-color: #ffec8b;
+	border-color: #ffcc00 !important;
+}
+
+#pass-strength-result.short {
+	background-color: #ffa0a0;
+	border-color: #f04040 !important;
+}
+
+#pass-strength-result.strong {
+	background-color: #c3ff88;
+	border-color: #8dff1c !important;
+}
+
+.message {
+	border: 1px solid #e6db55;
+	padding: 0.3em 0.6em;
+	margin: 5px 0 15px;
+	background-color: #ffffe0;
+}
+
+/* install-rtl */
+body.rtl {
+	font-family: Tahoma, arial;
+}
+
+.rtl h1 {
+	font-family: arial;
+	margin: 5px -4px 0 0;
+}
+
+.rtl ul,
+.rtl ol {
+	padding: 5px 22px 5px 5px;
+}
+
+.rtl .step,
+.rtl th,
+.rtl .form-table th {
+	text-align: right;
+}
+
+.rtl .submit input,
+.rtl .button,
+.rtl .button-secondary {
+	margin-right: 0;
+}
+
+.rtl #dbname,
+.rtl #uname,
+.rtl #pwd,
+.rtl #dbhost,
+.rtl #prefix,
+.rtl #user_login,
+.rtl #admin_email,
+.rtl #pass1,
+.rtl #pass2 {
+	direction: ltr;
+}
--- a/web/wp-admin/css/install.dev.css	Wed Dec 19 12:35:13 2012 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,268 +0,0 @@
-html {
-	background: #f9f9f9;
-}
-
-body {
-	background: #fff;
-	color: #333;
-	font-family: sans-serif;
-	margin: 2em auto;
-	padding: 1em 2em;
-	-webkit-border-radius: 3px;
-	border-radius: 3px;
-	border: 1px solid #dfdfdf;
-	max-width: 700px;
-}
-
-a {
-	color: #21759B;
-	text-decoration: none;
-}
-
-a:hover {
-	color: #D54E21;
-}
-
-h1 {
-	border-bottom: 1px solid #dadada;
-	clear: both;
-	color: #666;
-	font: 24px Georgia, "Times New Roman", Times, serif;
-	margin: 30px 0 0 0;
-	padding: 0;
-	padding-bottom: 7px;
-}
-
-h2 {
-	font-size: 16px;
-}
-
-p, li, dd, dt {
-	padding-bottom: 2px;
-	font-size: 14px;
-	line-height: 1.5;
-}
-
-code, .code {
-	font-size: 14px;
-}
-
-ul, ol, dl {
-	padding: 5px 5px 5px 22px;
-}
-
-a img {
-	border:0
-}
-abbr {
-	border: 0;
-	font-variant: normal;
-}
-#logo {
-	margin: 6px 0 14px 0;
-	border-bottom: none;
-	text-align:center
-}
-.step {
-	margin: 20px 0 15px;
-}
-.step, th {
-	text-align: left;
-	padding: 0;
-}
-
-.submit input, .button, .button-secondary {
-	font-family: sans-serif;
-	text-decoration: none;
-	font-size: 14px !important;
-	line-height: 16px;
-	padding: 6px 12px;
-	cursor: pointer;
-	border: 1px solid #bbb;
-	color: #464646;
-	-webkit-border-radius: 15px;
-	border-radius: 15px;
-	-moz-box-sizing: content-box;
-	-webkit-box-sizing: content-box;
-	box-sizing: content-box;
-}
-
-.button:hover, .button-secondary:hover, .submit input:hover {
-	color: #000;
-	border-color: #666;
-}
-
-.button, .submit input, .button-secondary {
-	background: #f2f2f2 url(../images/white-grad.png) repeat-x scroll left top;
-}
-
-.button:active, .submit input:active, .button-secondary:active {
-	background: #eee url(../images/white-grad-active.png) repeat-x scroll left top;
-}
-
-textarea {
-	border: 1px solid #dfdfdf;
-	-webkit-border-radius: 3px;
-	border-radius: 3px;
-	font-family: sans-serif;
-	width:  695px;
-}
-
-.form-table {
-	border-collapse: collapse;
-	margin-top: 1em;
-	width: 100%;
-}
-
-.form-table td {
-	margin-bottom: 9px;
-	padding: 10px 20px 10px 0;
-	border-bottom: 8px solid #fff;
-	font-size: 14px;
-	vertical-align: top
-}
-
-.form-table th {
-	font-size: 14px;
-	text-align: left;
-	padding: 16px 20px 10px 0;
-	border-bottom: 8px solid #fff;
-	width: 140px;
-	vertical-align: top;
-}
-
-.form-table code {
-	line-height: 18px;
-	font-size: 14px;
-}
-
-.form-table p {
-	margin: 4px 0 0 0;
-	font-size: 11px;
-}
-
-.form-table input {
-	line-height: 20px;
-	font-size: 15px;
-	padding: 2px;
-	border: 1px #DFDFDF solid;
-	-webkit-border-radius: 3px;
-	border-radius: 3px;
-	font-family: sans-serif;
-}
-
-.form-table input[type=text],
-.form-table input[type=password] {
-	width: 206px;
-}
-
-.form-table th p {
-	font-weight: normal;
-}
-
-.form-table.install-success td {
-	vertical-align: middle;
-	padding: 16px 20px 10px 0;
-}
-
-.form-table.install-success td p {
-	margin: 0;
-	font-size: 14px;
-}
-
-.form-table.install-success td code {
-	margin: 0;
-	font-size: 18px;
-}
-
-#error-page {
-	margin-top: 50px;
-}
-
-#error-page p {
-	font-size: 14px;
-	line-height: 18px;
-	margin: 25px 0 20px;
-}
-
-#error-page code, .code {
-	font-family: Consolas, Monaco, monospace;
-}
-
-#pass-strength-result {
-	background-color: #eee;
-	border-color: #ddd !important;
-	border-style: solid;
-	border-width: 1px;
-	margin: 5px 5px 5px 0;
-	padding: 5px;
-	text-align: center;
-	width: 200px;
-	display: none;
-}
-
-#pass-strength-result.bad {
-	background-color: #ffb78c;
-	border-color: #ff853c !important;
-}
-
-#pass-strength-result.good {
-	background-color: #ffec8b;
-	border-color: #ffcc00 !important;
-}
-
-#pass-strength-result.short {
-	background-color: #ffa0a0;
-	border-color: #f04040 !important;
-}
-
-#pass-strength-result.strong {
-	background-color: #c3ff88;
-	border-color: #8dff1c !important;
-}
-
-.message {
-	border: 1px solid #e6db55;
-	padding: 0.3em 0.6em;
-	margin: 5px 0 15px;
-	background-color: #ffffe0;
-}
-
-/* install-rtl */
-body.rtl {
-	font-family: Tahoma, arial;
-}
-
-.rtl h1 {
-	font-family: arial;
-	margin: 5px -4px 0 0;
-}
-
-.rtl ul,
-.rtl ol {
-	padding: 5px 22px 5px 5px;
-}
-
-.rtl .step,
-.rtl th,
-.rtl .form-table th {
-	text-align: right;
-}
-
-.rtl .submit input,
-.rtl .button,
-.rtl .button-secondary {
-	margin-right: 0;
-}
-
-.rtl #dbname,
-.rtl #uname,
-.rtl #pwd,
-.rtl #dbhost,
-.rtl #prefix,
-.rtl #user_login,
-.rtl #admin_email,
-.rtl #pass1,
-.rtl #pass2 {
-	direction: ltr;
-}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-admin/css/install.min.css	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,1 @@
+html{background:#f9f9f9}body{background:#fff;color:#333;font-family:sans-serif;margin:2em auto;padding:1em 2em;-webkit-border-radius:3px;border-radius:3px;border:1px solid #dfdfdf;max-width:700px}a{color:#21759b;text-decoration:none}a:hover{color:#d54e21}h1{border-bottom:1px solid #dadada;clear:both;color:#666;font:24px Georgia,"Times New Roman",Times,serif;margin:30px 0 0 0;padding:0;padding-bottom:7px}h2{font-size:16px}p,li,dd,dt{padding-bottom:2px;font-size:14px;line-height:1.5}code,.code{font-size:14px}ul,ol,dl{padding:5px 5px 5px 22px}a img{border:0}abbr{border:0;font-variant:normal}#logo{margin:6px 0 14px 0;border-bottom:0;text-align:center}#logo a{background-image:url('../images/wordpress-logo.png?ver=20120216');background-size:274px 63px;background-position:top center;background-repeat:no-repeat;height:67px;text-indent:-9999px;outline:0;overflow:hidden;display:block}@media print,(-o-min-device-pixel-ratio:5/4),(-webkit-min-device-pixel-ratio:1.25),(min-resolution:120dpi){#logo a{background-image:url('../images/wordpress-logo-2x.png?ver=20120412');background-size:274px 63px}}.step{margin:20px 0 15px}.step,th{text-align:left;padding:0}.step .button-large{font-size:14px}textarea{border:1px solid #dfdfdf;-webkit-border-radius:3px;border-radius:3px;font-family:sans-serif;width:695px}.form-table{border-collapse:collapse;margin-top:1em;width:100%}.form-table td{margin-bottom:9px;padding:10px 20px 10px 0;border-bottom:8px solid #fff;font-size:14px;vertical-align:top}.form-table th{font-size:14px;text-align:left;padding:16px 20px 10px 0;border-bottom:8px solid #fff;width:140px;vertical-align:top}.form-table code{line-height:18px;font-size:14px}.form-table p{margin:4px 0 0 0;font-size:11px}.form-table input{line-height:20px;font-size:15px;padding:2px;border:1px #dfdfdf solid;-webkit-border-radius:3px;border-radius:3px;font-family:sans-serif}.form-table input[type=text],.form-table input[type=password]{width:206px}.form-table th p{font-weight:normal}.form-table.install-success td{vertical-align:middle;padding:16px 20px 10px 0}.form-table.install-success td p{margin:0;font-size:14px}.form-table.install-success td code{margin:0;font-size:18px}#error-page{margin-top:50px}#error-page p{font-size:14px;line-height:18px;margin:25px 0 20px}#error-page code,.code{font-family:Consolas,Monaco,monospace}#pass-strength-result{background-color:#eee;border-color:#ddd!important;border-style:solid;border-width:1px;margin:5px 5px 5px 0;padding:5px;text-align:center;width:200px;display:none}#pass-strength-result.bad{background-color:#ffb78c;border-color:#ff853c!important}#pass-strength-result.good{background-color:#ffec8b;border-color:#fc0!important}#pass-strength-result.short{background-color:#ffa0a0;border-color:#f04040!important}#pass-strength-result.strong{background-color:#c3ff88;border-color:#8dff1c!important}.message{border:1px solid #e6db55;padding:.3em .6em;margin:5px 0 15px;background-color:#ffffe0}body.rtl{font-family:Tahoma,arial}.rtl h1{font-family:arial;margin:5px -4px 0 0}.rtl ul,.rtl ol{padding:5px 22px 5px 5px}.rtl .step,.rtl th,.rtl .form-table th{text-align:right}.rtl .submit input,.rtl .button,.rtl .button-secondary{margin-right:0}.rtl #dbname,.rtl #uname,.rtl #pwd,.rtl #dbhost,.rtl #prefix,.rtl #user_login,.rtl #admin_email,.rtl #pass1,.rtl #pass2{direction:ltr}
\ No newline at end of file
--- a/web/wp-admin/css/media-rtl.css	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-admin/css/media-rtl.css	Wed Dec 19 17:46:52 2012 -0800
@@ -1,1 +1,71 @@
-body#media-upload ul#sidemenu{left:auto;right:0}#search-filter{text-align:left}.align .field label{padding:0 23px 0 0;margin:0 3px 0 1em}.image-align-none-label,.image-align-left-label,.image-align-center-label,.image-align-right-label{background-position:center right}tr.image-size label{margin:0 5px 0 0}.file-error{margin:0 50px 5px 0}.progress{left:auto;right:0}.describe td{padding:0 0 0 5px}#media-upload .describe th.label{text-align:right}.menu_order{float:left}.media-upload-form label.form-help,td.help,#media-upload p.help,#media-upload label.help{font-family:Tahoma,Arial}#gallery-settings #basic th.label{padding:5px 0 5px 5px}#gallery-settings .title,h3.media-title{font-family:Tahoma,Arial}#gallery-settings .describe th.label{text-align:right}#gallery-settings label,#gallery-settings legend{margin-right:0;margin-left:15px}#gallery-settings .align .field label{margin:0 3px 0 1em}#sort-buttons{margin:3px 0 -8px 25px;text-align:left}#sort-buttons #asc,#sort-buttons #showall{padding-left:0;padding-right:5px}#sort-buttons span{margin-right:0;margin-left:25px}
\ No newline at end of file
+body#media-upload ul#sidemenu {
+	left: auto;
+	right: 0;
+}
+#search-filter {
+	text-align: left;
+}
+/* specific to the image upload form */
+.align .field label {
+	padding: 0 23px 0 0;
+	margin: 0 3px 0 1em;
+}
+.image-align-none-label, .image-align-left-label, .image-align-center-label, .image-align-right-label {
+	background-position: center right;
+}
+tr.image-size label {
+	margin: 0 5px 0 0;
+}
+.file-error {
+	margin: 0 50px 5px 0;
+}
+.progress {
+	left: auto;
+	right: 0;
+}
+.describe td {
+	padding: 0 0 0 5px;
+}
+
+/* Specific to Uploader */
+#media-upload .describe th.label {
+	text-align: right;
+}
+.menu_order {
+	float: left;
+}
+.media-upload-form label.form-help, td.help, #media-upload p.help, #media-upload label.help {
+	font-family: Tahoma, Arial;
+}
+#gallery-settings #basic th.label {
+	padding: 5px 0 5px 5px;
+}
+#gallery-settings .title, h3.media-title {
+	font-family: Tahoma, Arial;
+}
+#gallery-settings .describe th.label {
+	text-align: right;
+}
+#gallery-settings label,
+#gallery-settings legend {
+	margin-right: 0;
+	margin-left: 15px;
+}
+#gallery-settings .align .field label {
+	margin: 0 3px 0 1em;
+}
+#sort-buttons {
+	margin: 3px 0 -8px 25px;
+	text-align: left;
+}
+
+#sort-buttons #asc,
+#sort-buttons #showall {
+	padding-left: 0;
+	padding-right: 5px;
+}
+
+#sort-buttons span {
+	margin-right: 0;
+	margin-left: 25px;
+}
--- a/web/wp-admin/css/media-rtl.dev.css	Wed Dec 19 12:35:13 2012 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,71 +0,0 @@
-body#media-upload ul#sidemenu {
-	left: auto;
-	right: 0;
-}
-#search-filter {
-	text-align: left;
-}
-/* specific to the image upload form */
-.align .field label {
-	padding: 0 23px 0 0;
-	margin: 0 3px 0 1em;
-}
-.image-align-none-label, .image-align-left-label, .image-align-center-label, .image-align-right-label {
-	background-position: center right;
-}
-tr.image-size label {
-	margin: 0 5px 0 0;
-}
-.file-error {
-	margin: 0 50px 5px 0;
-}
-.progress {
-	left: auto;
-	right: 0;
-}
-.describe td {
-	padding: 0 0 0 5px;
-}
-
-/* Specific to Uploader */
-#media-upload .describe th.label {
-	text-align: right;
-}
-.menu_order {
-	float: left;
-}
-.media-upload-form label.form-help, td.help, #media-upload p.help, #media-upload label.help {
-	font-family: Tahoma, Arial;
-}
-#gallery-settings #basic th.label {
-	padding: 5px 0 5px 5px;
-}
-#gallery-settings .title, h3.media-title {
-	font-family: Tahoma, Arial;
-}
-#gallery-settings .describe th.label {
-	text-align: right;
-}
-#gallery-settings label,
-#gallery-settings legend {
-	margin-right: 0;
-	margin-left: 15px;
-}
-#gallery-settings .align .field label {
-	margin: 0 3px 0 1em;
-}
-#sort-buttons {
-	margin: 3px 0 -8px 25px;
-	text-align: left;
-}
-
-#sort-buttons #asc,
-#sort-buttons #showall {
-	padding-left: 0;
-	padding-right: 5px;
-}
-
-#sort-buttons span {
-	margin-right: 0;
-	margin-left: 25px;
-}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-admin/css/media-rtl.min.css	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,1 @@
+body#media-upload ul#sidemenu{left:auto;right:0}#search-filter{text-align:left}.align .field label{padding:0 23px 0 0;margin:0 3px 0 1em}.image-align-none-label,.image-align-left-label,.image-align-center-label,.image-align-right-label{background-position:center right}tr.image-size label{margin:0 5px 0 0}.file-error{margin:0 50px 5px 0}.progress{left:auto;right:0}.describe td{padding:0 0 0 5px}#media-upload .describe th.label{text-align:right}.menu_order{float:left}.media-upload-form label.form-help,td.help,#media-upload p.help,#media-upload label.help{font-family:Tahoma,Arial}#gallery-settings #basic th.label{padding:5px 0 5px 5px}#gallery-settings .title,h3.media-title{font-family:Tahoma,Arial}#gallery-settings .describe th.label{text-align:right}#gallery-settings label,#gallery-settings legend{margin-right:0;margin-left:15px}#gallery-settings .align .field label{margin:0 3px 0 1em}#sort-buttons{margin:3px 0 -8px 25px;text-align:left}#sort-buttons #asc,#sort-buttons #showall{padding-left:0;padding-right:5px}#sort-buttons span{margin-right:0;margin-left:25px}
\ No newline at end of file
--- a/web/wp-admin/css/media.css	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-admin/css/media.css	Wed Dec 19 17:46:52 2012 -0800
@@ -1,1 +1,353 @@
-div#media-upload-header{margin:0;padding:5px 5px 0;font-weight:bold;position:relative;border-bottom-width:1px;border-bottom-style:solid}body#media-upload ul#sidemenu{font-weight:normal;margin:0 5px;left:0;bottom:-1px;float:none;overflow:hidden}form{margin:1em}#search-filter{text-align:right}th{position:relative}.media-upload-form label.form-help,td.help{font-family:sans-serif;font-style:italic;font-weight:normal}.media-upload-form p.help{margin:0;padding:0}.media-upload-form fieldset{width:100%;border:0;text-align:justify;margin:0 0 1em 0;padding:0}.image-align-none-label{background:url(../images/align-none.png) no-repeat center left}.image-align-left-label{background:url(../images/align-left.png) no-repeat center left}.image-align-center-label{background:url(../images/align-center.png) no-repeat center left}.image-align-right-label{background:url(../images/align-right.png) no-repeat center left}tr.image-size td{width:460px}tr.image-size div.image-size-item{margin:0 0 5px}#library-form .progress,#gallery-form .progress,.insert-gallery,.describe.startopen,.describe.startclosed{display:none}.media-item .thumbnail{max-width:128px;max-height:128px}thead.media-item-info tr{background-color:transparent}.form-table thead.media-item-info{border:8px solid #fff}abbr.required{text-decoration:none;border:0}.describe label{display:inline}.describe td.error{padding:2px 8px}.describe td.A1{width:132px}.describe input[type="text"],.describe textarea{width:460px;border-width:1px;border-style:solid}#media-upload p.ml-submit{padding:1em 0}#media-upload p.help,#media-upload label.help{font-family:sans-serif;font-style:italic;font-weight:normal}#media-upload .ui-sortable .media-item{cursor:move}#media-upload tr.image-size{margin-bottom:1em;height:3em}#media-upload #filter{width:623px}#media-upload #filter .subsubsub{margin:8px 0}#filter .tablenav select{border-style:solid;border-width:1px;padding:2px;vertical-align:top;width:auto}#media-upload .del-attachment{display:none;margin:5px 0}.menu_order{float:right;font-size:11px;margin:10px 10px 0}.menu_order_input{border:1px solid #ddd;font-size:10px;padding:1px;width:23px}.ui-sortable-helper{background-color:#fff;border:1px solid #aaa;opacity:.6;filter:alpha(opacity=60)}#media-upload th.order-head{width:20%;text-align:center}#media-upload th.actions-head{width:25%;text-align:center}#media-upload a.wp-post-thumbnail{margin:0 20px}#media-items a.delete{display:block;float:right}#media-upload .widefat{width:626px;border-style:solid solid none}.sorthelper{height:37px;width:623px;display:block}#gallery-settings th.label{width:160px}#gallery-settings #basic th.label{padding:5px 5px 5px 0}#gallery-settings .title{clear:both;padding:0 0 3px;font-size:1.6em;border-bottom:1px solid #dadada}h3.media-title{font-size:1.6em}h4.media-sub-title{border-bottom:1px solid #dadada;font-size:1.3em;margin:12px;padding:0 0 3px}#gallery-settings .title,h3.media-title,h4.media-sub-title{font-family:Georgia,"Times New Roman",Times,serif;font-weight:normal;color:#5a5a5a}#gallery-settings .describe td{vertical-align:middle;height:3em}#gallery-settings .describe th.label{padding-top:.5em;text-align:left}#gallery-settings .describe{padding:5px;width:615px;clear:both;cursor:default}#gallery-settings .describe select{width:15em}#gallery-settings .describe select option,#gallery-settings .describe td{padding:0}#gallery-settings label,#gallery-settings legend{font-size:13px;color:#464646;margin-right:15px}#gallery-settings .align .field label{margin:0 1em 0 3px}#gallery-settings p.ml-submit{border-top:1px solid #dfdfdf}#gallery-settings select#columns{width:6em}#sort-buttons{font-size:.8em;margin:3px 25px -8px 0;text-align:right;max-width:625px}#sort-buttons a{text-decoration:none}#sort-buttons #asc,#sort-buttons #showall{padding-left:5px}#sort-buttons span{margin-right:25px}p.media-types{margin:1em}tr.not-image{display:none}table.not-image tr.not-image{display:table-row}table.not-image tr.image-only{display:none}
\ No newline at end of file
+/* Styles for the media library iframe (not used on the Library screen) */
+
+div#media-upload-header {
+	margin: 0;
+	padding: 5px 5px 0;
+	font-weight: bold;
+	position: relative;
+	border-bottom-width: 1px;
+	border-bottom-style: solid;
+}
+
+body#media-upload ul#sidemenu {
+	font-weight: normal;
+	margin: 0 5px;
+	left: 0;
+	bottom: -1px;
+	float: none;
+	overflow: hidden;
+}
+
+form {
+	margin: 1em;
+}
+
+#search-filter {
+	text-align: right;
+}
+
+th {
+	position: relative;
+}
+
+.media-upload-form label.form-help, td.help {
+	font-family: sans-serif;
+	font-style: italic;
+	font-weight: normal;
+}
+
+.media-upload-form p.help {
+	margin: 0;
+	padding: 0;
+}
+
+.media-upload-form fieldset {
+	width: 100%;
+	border: none;
+	text-align: justify;
+	margin: 0 0 1em 0;
+	padding: 0;
+}
+
+/* specific to the image upload form */
+
+.image-align-none-label {
+	background: url(../images/align-none.png) no-repeat center left;
+}
+
+.image-align-left-label {
+	background: url(../images/align-left.png) no-repeat center left;
+}
+
+.image-align-center-label {
+	background: url(../images/align-center.png) no-repeat center left;
+}
+
+.image-align-right-label {
+	background: url(../images/align-right.png) no-repeat center left;
+}
+
+tr.image-size td {
+	width: 460px;
+}
+
+tr.image-size div.image-size-item {
+	margin: 0 0 5px;
+}
+
+#library-form .progress,
+#gallery-form .progress,
+.insert-gallery,
+.describe.startopen,
+.describe.startclosed {
+	display: none;
+}
+
+.media-item .thumbnail {
+	max-width: 128px;
+	max-height: 128px;
+}
+
+thead.media-item-info tr {
+	background-color: transparent;
+}
+
+.form-table thead.media-item-info {
+	border: 8px solid #fff;
+}
+
+abbr.required {
+	text-decoration: none;
+	border: none;
+}
+
+.describe label {
+	display: inline;
+}
+
+.describe td.error {
+	padding: 2px 8px;
+}
+
+.describe td.A1 {
+	width: 132px;
+}
+
+.describe input[type="text"],
+.describe textarea {
+	width: 460px;
+	border-width: 1px;
+	border-style: solid;
+}
+
+/* Specific to Uploader */
+
+#media-upload p.ml-submit {
+	padding: 1em 0;
+}
+
+#media-upload p.help,
+#media-upload label.help {
+	font-family: sans-serif;
+	font-style: italic;
+	font-weight: normal;
+}
+
+#media-upload .ui-sortable .media-item {
+	cursor: move;
+}
+
+#media-upload tr.image-size {
+	margin-bottom: 1em;
+	height: 3em;
+}
+
+#media-upload #filter {
+	width: 623px;
+}
+
+#media-upload #filter .subsubsub {
+	margin: 8px 0;
+}
+
+#filter .tablenav select {
+	border-style: solid;
+	border-width: 1px;
+	padding: 2px;
+	vertical-align: top;
+	width: auto;
+}
+
+#media-upload .del-attachment {
+	display: none;
+	margin: 5px 0;
+}
+
+.menu_order {
+	float: right;
+	font-size: 11px;
+	margin: 10px 10px 0;
+}
+
+.menu_order_input {
+	border: 1px solid #ddd;
+	font-size: 10px;
+	padding: 1px;
+	width: 23px;
+}
+
+.ui-sortable-helper {
+	background-color: #fff;
+	border: 1px solid #aaa;
+	opacity: 0.6;
+	filter: alpha(opacity=60);
+}
+
+#media-upload th.order-head {
+	width: 20%;
+	text-align: center;
+}
+
+#media-upload th.actions-head {
+	width: 25%;
+	text-align: center;
+}
+
+#media-upload a.wp-post-thumbnail {
+	margin: 0 20px;
+}
+
+#media-upload .widefat {
+	width: 626px;
+	border-style: solid solid none;
+}
+
+.sorthelper {
+	height: 37px;
+	width: 623px;
+	display: block;
+}
+
+#gallery-settings th.label {
+	width: 160px;
+}
+
+#gallery-settings #basic th.label {
+	padding: 5px 5px 5px 0;
+}
+
+#gallery-settings .title {
+	clear: both;
+	padding: 0 0 3px;
+	font-size: 1.6em;
+	border-bottom: 1px solid #DADADA;
+}
+
+h3.media-title  {
+	font-size: 1.6em;
+}
+
+h4.media-sub-title  {
+	border-bottom: 1px solid #DADADA;
+	font-size: 1.3em;
+	margin: 12px;
+	padding: 0 0 3px;
+}
+
+#gallery-settings .title,
+h3.media-title,
+h4.media-sub-title {
+	font-family: Georgia,"Times New Roman",Times,serif;
+	font-weight: normal;
+	color: #5A5A5A;
+}
+
+#gallery-settings .describe td {
+	vertical-align: middle;
+	height: 3em;
+}
+
+#gallery-settings .describe th.label {
+	padding-top: .5em;
+	text-align: left;
+}
+
+#gallery-settings .describe {
+	padding: 5px;
+	width: 615px;
+	clear: both;
+	cursor: default;
+}
+
+#gallery-settings .describe select {
+	width: 15em;
+}
+
+#gallery-settings .describe select option,
+#gallery-settings .describe td {
+	padding: 0;
+}
+
+#gallery-settings label,
+#gallery-settings legend {
+	font-size: 13px;
+	color: #464646;
+	margin-right: 15px;
+}
+
+#gallery-settings .align .field label {
+	margin: 0 1em 0 3px;
+}
+
+#gallery-settings p.ml-submit {
+	border-top: 1px solid #dfdfdf;
+}
+
+#gallery-settings select#columns {
+	width: 6em;
+}
+
+#sort-buttons {
+	font-size: 0.8em;
+	margin: 3px 25px -8px 0;
+	text-align: right;
+	max-width: 625px;
+}
+
+#sort-buttons a {
+	text-decoration: none;
+}
+
+#sort-buttons #asc,
+#sort-buttons #showall {
+	padding-left: 5px;
+}
+
+#sort-buttons span {
+	margin-right: 25px;
+}
+
+p.media-types {
+	margin: 1em;
+}
+
+tr.not-image {
+	display: none;
+}
+
+table.not-image tr.not-image {
+	display: table-row;
+}
+
+table.not-image tr.image-only {
+	display: none;
+}
+
+/**
+ * HiDPI Displays
+ */
+@media print,
+  (-o-min-device-pixel-ratio: 5/4),
+  (-webkit-min-device-pixel-ratio: 1.25),
+  (min-resolution: 120dpi) {
+
+	.image-align-none-label {
+		background-image: url("../images/align-none-2x.png?ver=20120916");
+		background-size: 21px 15px;
+	}
+
+	.image-align-left-label {
+		background-image: url("../images/align-left-2x.png?ver=20120916");
+		background-size: 22px 15px;
+	}
+
+	.image-align-center-label {
+		background-image: url("../images/align-center-2x.png?ver=20120916");
+		background-size: 21px 15px;
+	}
+
+	.image-align-right-label {
+		background-image: url("../images/align-right-2x.png?ver=20120916");
+		background-size: 22px 15px;
+	}
+}
--- a/web/wp-admin/css/media.dev.css	Wed Dec 19 12:35:13 2012 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,329 +0,0 @@
-/* Styles for the media library iframe (not used on the Library screen) */
-
-div#media-upload-header {
-	margin: 0;
-	padding: 5px 5px 0;
-	font-weight: bold;
-	position: relative;
-	border-bottom-width: 1px;
-	border-bottom-style: solid;
-}
-
-body#media-upload ul#sidemenu {
-	font-weight: normal;
-	margin: 0 5px;
-	left: 0;
-	bottom: -1px;
-	float: none;
-	overflow: hidden;
-}
-
-form {
-	margin: 1em;
-}
-
-#search-filter {
-	text-align: right;
-}
-
-th {
-	position: relative;
-}
-
-.media-upload-form label.form-help, td.help {
-	font-family: sans-serif;
-	font-style: italic;
-	font-weight: normal;
-}
-
-.media-upload-form p.help {
-	margin: 0;
-	padding: 0;
-}
-
-.media-upload-form fieldset {
-	width: 100%;
-	border: none;
-	text-align: justify;
-	margin: 0 0 1em 0;
-	padding: 0;
-}
-
-/* specific to the image upload form */
-
-.image-align-none-label {
-	background: url(../images/align-none.png) no-repeat center left;
-}
-
-.image-align-left-label {
-	background: url(../images/align-left.png) no-repeat center left;
-}
-
-.image-align-center-label {
-	background: url(../images/align-center.png) no-repeat center left;
-}
-
-.image-align-right-label {
-	background: url(../images/align-right.png) no-repeat center left;
-}
-
-tr.image-size td {
-	width: 460px;
-}
-
-tr.image-size div.image-size-item {
-	margin: 0 0 5px;
-}
-
-#library-form .progress,
-#gallery-form .progress,
-.insert-gallery,
-.describe.startopen,
-.describe.startclosed {
-	display: none;
-}
-
-.media-item .thumbnail {
-	max-width: 128px;
-	max-height: 128px;
-}
-
-thead.media-item-info tr {
-	background-color: transparent;
-}
-
-.form-table thead.media-item-info {
-	border: 8px solid #fff;
-}
-
-abbr.required {
-	text-decoration: none;
-	border: none;
-}
-
-.describe label {
-	display: inline;
-}
-
-.describe td.error {
-	padding: 2px 8px;
-}
-
-.describe td.A1 {
-	width: 132px;
-}
-
-.describe input[type="text"],
-.describe textarea {
-	width: 460px;
-	border-width: 1px;
-	border-style: solid;
-}
-
-/* Specific to Uploader */
-
-#media-upload p.ml-submit {
-	padding: 1em 0;
-}
-
-#media-upload p.help,
-#media-upload label.help {
-	font-family: sans-serif;
-	font-style: italic;
-	font-weight: normal;
-}
-
-#media-upload .ui-sortable .media-item {
-	cursor: move;
-}
-
-#media-upload tr.image-size {
-	margin-bottom: 1em;
-	height: 3em;
-}
-
-#media-upload #filter {
-	width: 623px;
-}
-
-#media-upload #filter .subsubsub {
-	margin: 8px 0;
-}
-
-#filter .tablenav select {
-	border-style: solid;
-	border-width: 1px;
-	padding: 2px;
-	vertical-align: top;
-	width: auto;
-}
-
-#media-upload .del-attachment {
-	display: none;
-	margin: 5px 0;
-}
-
-.menu_order {
-	float: right;
-	font-size: 11px;
-	margin: 10px 10px 0;
-}
-
-.menu_order_input {
-	border: 1px solid #ddd;
-	font-size: 10px;
-	padding: 1px;
-	width: 23px;
-}
-
-.ui-sortable-helper {
-	background-color: #fff;
-	border: 1px solid #aaa;
-	opacity: 0.6;
-	filter: alpha(opacity=60);
-}
-
-#media-upload th.order-head {
-	width: 20%;
-	text-align: center;
-}
-
-#media-upload th.actions-head {
-	width: 25%;
-	text-align: center;
-}
-
-#media-upload a.wp-post-thumbnail {
-	margin: 0 20px;
-}
-
-#media-items a.delete {
-	display: block;
-	float: right;
-}
-
-#media-upload .widefat {
-	width: 626px;
-	border-style: solid solid none;
-}
-
-.sorthelper {
-	height: 37px;
-	width: 623px;
-	display: block;
-}
-
-#gallery-settings th.label {
-	width: 160px;
-}
-
-#gallery-settings #basic th.label {
-	padding: 5px 5px 5px 0;
-}
-
-#gallery-settings .title {
-	clear: both;
-	padding: 0 0 3px;
-	font-size: 1.6em;
-	border-bottom: 1px solid #DADADA;
-}
-
-h3.media-title  {
-	font-size: 1.6em;
-}
-
-h4.media-sub-title  {
-	border-bottom: 1px solid #DADADA;
-	font-size: 1.3em;
-	margin: 12px;
-	padding: 0 0 3px;
-}
-
-#gallery-settings .title,
-h3.media-title,
-h4.media-sub-title {
-	font-family: Georgia,"Times New Roman",Times,serif;
-	font-weight: normal;
-	color: #5A5A5A;
-}
-
-#gallery-settings .describe td {
-	vertical-align: middle;
-	height: 3em;
-}
-
-#gallery-settings .describe th.label {
-	padding-top: .5em;
-	text-align: left;
-}
-
-#gallery-settings .describe {
-	padding: 5px;
-	width: 615px;
-	clear: both;
-	cursor: default;
-}
-
-#gallery-settings .describe select {
-	width: 15em;
-}
-
-#gallery-settings .describe select option,
-#gallery-settings .describe td {
-	padding: 0;
-}
-
-#gallery-settings label,
-#gallery-settings legend {
-	font-size: 13px;
-	color: #464646;
-	margin-right: 15px;
-}
-
-#gallery-settings .align .field label {
-	margin: 0 1em 0 3px;
-}
-
-#gallery-settings p.ml-submit {
-	border-top: 1px solid #dfdfdf;
-}
-
-#gallery-settings select#columns {
-	width: 6em;
-}
-
-#sort-buttons {
-	font-size: 0.8em;
-	margin: 3px 25px -8px 0;
-	text-align: right;
-	max-width: 625px;
-}
-
-#sort-buttons a {
-	text-decoration: none;
-}
-
-#sort-buttons #asc,
-#sort-buttons #showall {
-	padding-left: 5px;
-}
-
-#sort-buttons span {
-	margin-right: 25px;
-}
-
-p.media-types {
-	margin: 1em;
-}
-
-tr.not-image {
-	display: none;
-}
-
-table.not-image tr.not-image {
-	display: table-row;
-}
-
-table.not-image tr.image-only {
-	display: none;
-}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-admin/css/media.min.css	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,1 @@
+div#media-upload-header{margin:0;padding:5px 5px 0;font-weight:bold;position:relative;border-bottom-width:1px;border-bottom-style:solid}body#media-upload ul#sidemenu{font-weight:normal;margin:0 5px;left:0;bottom:-1px;float:none;overflow:hidden}form{margin:1em}#search-filter{text-align:right}th{position:relative}.media-upload-form label.form-help,td.help{font-family:sans-serif;font-style:italic;font-weight:normal}.media-upload-form p.help{margin:0;padding:0}.media-upload-form fieldset{width:100%;border:0;text-align:justify;margin:0 0 1em 0;padding:0}.image-align-none-label{background:url(../images/align-none.png) no-repeat center left}.image-align-left-label{background:url(../images/align-left.png) no-repeat center left}.image-align-center-label{background:url(../images/align-center.png) no-repeat center left}.image-align-right-label{background:url(../images/align-right.png) no-repeat center left}tr.image-size td{width:460px}tr.image-size div.image-size-item{margin:0 0 5px}#library-form .progress,#gallery-form .progress,.insert-gallery,.describe.startopen,.describe.startclosed{display:none}.media-item .thumbnail{max-width:128px;max-height:128px}thead.media-item-info tr{background-color:transparent}.form-table thead.media-item-info{border:8px solid #fff}abbr.required{text-decoration:none;border:0}.describe label{display:inline}.describe td.error{padding:2px 8px}.describe td.A1{width:132px}.describe input[type="text"],.describe textarea{width:460px;border-width:1px;border-style:solid}#media-upload p.ml-submit{padding:1em 0}#media-upload p.help,#media-upload label.help{font-family:sans-serif;font-style:italic;font-weight:normal}#media-upload .ui-sortable .media-item{cursor:move}#media-upload tr.image-size{margin-bottom:1em;height:3em}#media-upload #filter{width:623px}#media-upload #filter .subsubsub{margin:8px 0}#filter .tablenav select{border-style:solid;border-width:1px;padding:2px;vertical-align:top;width:auto}#media-upload .del-attachment{display:none;margin:5px 0}.menu_order{float:right;font-size:11px;margin:10px 10px 0}.menu_order_input{border:1px solid #ddd;font-size:10px;padding:1px;width:23px}.ui-sortable-helper{background-color:#fff;border:1px solid #aaa;opacity:.6;filter:alpha(opacity=60)}#media-upload th.order-head{width:20%;text-align:center}#media-upload th.actions-head{width:25%;text-align:center}#media-upload a.wp-post-thumbnail{margin:0 20px}#media-upload .widefat{width:626px;border-style:solid solid none}.sorthelper{height:37px;width:623px;display:block}#gallery-settings th.label{width:160px}#gallery-settings #basic th.label{padding:5px 5px 5px 0}#gallery-settings .title{clear:both;padding:0 0 3px;font-size:1.6em;border-bottom:1px solid #dadada}h3.media-title{font-size:1.6em}h4.media-sub-title{border-bottom:1px solid #dadada;font-size:1.3em;margin:12px;padding:0 0 3px}#gallery-settings .title,h3.media-title,h4.media-sub-title{font-family:Georgia,"Times New Roman",Times,serif;font-weight:normal;color:#5a5a5a}#gallery-settings .describe td{vertical-align:middle;height:3em}#gallery-settings .describe th.label{padding-top:.5em;text-align:left}#gallery-settings .describe{padding:5px;width:615px;clear:both;cursor:default}#gallery-settings .describe select{width:15em}#gallery-settings .describe select option,#gallery-settings .describe td{padding:0}#gallery-settings label,#gallery-settings legend{font-size:13px;color:#464646;margin-right:15px}#gallery-settings .align .field label{margin:0 1em 0 3px}#gallery-settings p.ml-submit{border-top:1px solid #dfdfdf}#gallery-settings select#columns{width:6em}#sort-buttons{font-size:.8em;margin:3px 25px -8px 0;text-align:right;max-width:625px}#sort-buttons a{text-decoration:none}#sort-buttons #asc,#sort-buttons #showall{padding-left:5px}#sort-buttons span{margin-right:25px}p.media-types{margin:1em}tr.not-image{display:none}table.not-image tr.not-image{display:table-row}table.not-image tr.image-only{display:none}@media print,(-o-min-device-pixel-ratio:5/4),(-webkit-min-device-pixel-ratio:1.25),(min-resolution:120dpi){.image-align-none-label{background-image:url("../images/align-none-2x.png?ver=20120916");background-size:21px 15px}.image-align-left-label{background-image:url("../images/align-left-2x.png?ver=20120916");background-size:22px 15px}.image-align-center-label{background-image:url("../images/align-center-2x.png?ver=20120916");background-size:21px 15px}.image-align-right-label{background-image:url("../images/align-right-2x.png?ver=20120916");background-size:22px 15px}}
\ No newline at end of file
--- a/web/wp-admin/css/wp-admin-rtl.css	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-admin/css/wp-admin-rtl.css	Wed Dec 19 17:46:52 2012 -0800
@@ -1,1 +1,2641 @@
-ol{margin-left:0;margin-right:2em}.code,code{font-family:monospace;direction:ltr}.quicktags,.search{font:12px Tahoma,Arial,sans-serif}.icon32{float:right;margin-right:0;margin-left:8px}.icon16{float:right;margin-right:-8px;margin-left:0}.howto{font-style:normal;font-family:Tahoma,Arial,sans-serif}p.install-help{font-style:normal}#doaction,#doaction2,#post-query-submit{margin-right:0;margin-left:8px}#timezone_string option{margin-left:0;margin-right:1em}#pass-strength-result{float:right;margin:13px 1px 5px 5px}p.search-box{float:left}input[type=password]{direction:ltr}input[type="text"].ui-autocomplete-loading{background:transparent url('../images/loading.gif') no-repeat left center}ul#add-to-blog-users{margin:0 14px 0 0}.ui-autocomplete li{text-align:right}#delete-action{float:right}#publishing-action{float:left}#post-body .misc-pub-section{border-right:0;border-left-width:1px;border-left-style:solid}#post-body .misc-pub-section-last{border-left:0}#minor-publishing-actions{padding:10px 8px 2px 10px;text-align:left}#save-post{float:right}#minor-publishing .ajax-loading{padding:3px 4px 0 0;float:right}.preview{float:left}#sticky-span{margin-left:0;margin-right:18px}.side-info ul{padding-left:0;padding-right:18px}td.action-links,th.action-links{text-align:left}.describe .del-link{padding-left:0;padding-right:5px}form.upgrade .hint{font-style:normal}#ajax-response.alignleft{margin-left:0;margin-right:2em}#quicktags{background-position:right top}#ed_reply_toolbar input{margin:1px 1px 1px 2px}#wphead{height:32px;margin-left:15px;margin-right:2px}#header-logo{float:right}#wphead h1{float:right}#screen-meta-links{margin-right:0;margin-left:24px}#screen-meta{margin-right:5px;margin-left:15px}#screen-options-link-wrap,#contextual-help-link-wrap{float:left;margin-left:0;margin-right:6px}#screen-meta-links a.show-settings{padding-right:6px;padding-left:16px}.toggle-arrow{background-position:top right}.toggle-arrow-active{background-position:bottom right}.metabox-prefs label{padding-right:0;padding-left:15px}.metabox-prefs label input{margin-right:2px;margin-left:5px}#contextual-help-wrap{margin-left:0;margin-right:-4px}#contextual-help-back{left:170px;right:150px}#contextual-help-wrap.no-sidebar #contextual-help-back{left:0;right:150px;border-right-width:1px;border-left-width:0;-webkit-border-bottom-right-radius:0;border-bottom-right-radius:0;-webkit-border-bottom-left-radius:2px;border-bottom-left-radius:2px}.contextual-help-tabs{float:right}.contextual-help-tabs a{padding-left:5px;padding-right:12px}.contextual-help-tabs .active{margin-right:0;margin-left:-1px}.contextual-help-tabs .active,.contextual-help-tabs-wrap{border-left:0;border-right-width:1px}.help-tab-content{margin-right:0;margin-left:22px}.help-tab-content li{margin-left:0;margin-right:18px}.contextual-help-sidebar{float:left;padding-right:12px;padding-left:8px}#adminmenuback,#adminmenuwrap{border-width:0 0 0 1px}#adminmenushadow{right:auto;left:0}#adminmenu li .wp-submenu{left:auto;right:146px}.folded #adminmenu .wp-submenu,.folded #adminmenu .wp-has-current-submenu .wp-submenu{left:auto;right:26px}#adminmenu .wp-submenu.sub-open,#adminmenu li.focused.wp-not-current-submenu .wp-submenu,.folded #adminmenu li.focused.wp-has-current-submenu .wp-submenu,.folded #adminmenu .wp-has-current-submenu .wp-submenu.sub-open,.no-js #adminmenu .wp-has-submenu:hover .wp-submenu,.no-js.folded #adminmenu .wp-has-current-submenu:hover .wp-submenu{padding:0 0 8px 8px}#adminmenu div.wp-menu-image{float:right}#adminmenu li li{margin-left:0;margin-right:8px}#adminmenu .wp-submenu a,#adminmenu li li a,.folded #adminmenu .wp-not-current-submenu li a{padding-left:0;padding-right:12px}#adminmenu .wp-not-current-submenu li a{padding-left:0;padding-right:18px}.folded #adminmenu li li{margin-left:inherit;margin-right:0}.folded #adminmenu li li a{padding-left:inherit;padding-right:0}.wp-menu-arrow{right:0;-moz-transform:translate(-139px);-webkit-transform:translate(-139px);-o-transform:translate(-139px);-ms-transform:translate(-139px);transform:translate(-139px)}.ie8 .wp-menu-arrow{right:-20px}#adminmenu .wp-menu-arrow div{left:-8px;width:16px}#adminmenu li.wp-not-current-submenu .wp-menu-arrow{-moz-transform:translate(-138px);-webkit-transform:translate(-138px);-o-transform:translate(-138px);-ms-transform:translate(-138px);transform:translate(-138px)}.folded .wp-menu-arrow{-moz-transform:translate(-27px);-webkit-transform:translate(-27px);-o-transform:translate(-27px);-ms-transform:translate(-27px);transform:translate(-27px)}#adminmenu .wp-not-current-submenu .wp-menu-arrow div{border-style:solid solid none none;border-width:1px 1px 0 0}#adminmenu .wp-menu-image img{float:right;padding:5px 2px 0 0}#adminmenu .wp-submenu .wp-submenu-head{padding:6px 10px 5px 4px}#adminmenu li .wp-submenu-wrap{border-width:1px 0 1px 1px;border-style:solid none solid solid;-webkit-border-bottom-right-radius:0;-webkit-border-bottom-left-radius:3px;-webkit-border-top-right-radius:0;-webkit-border-top-left-radius:3px;border-bottom-right-radius:0;border-bottom-left-radius:3px;border-top-right-radius:0;border-top-left-radius:3px}.folded #adminmenu .wp-submenu ul{border-width:0 1px 0 0}.folded #adminmenu .wp-submenu a{padding-left:0;padding-right:10px}.folded #adminmenu a.wp-has-submenu{margin-left:0;margin-right:40px}#adminmenu .wp-menu-toggle{clear:left;float:left;padding:1px 0 0 2px}#adminmenu .awaiting-mod,#adminmenu span.update-plugins,#sidemenu li a span.update-plugins{font-family:Tahoma,Arial,sans-serif;margin-left:0;margin-right:7px}#collapse-button{float:right}@media only screen and (max-width:900px){#adminmenu li .wp-submenu,#adminmenu .wp-has-current-submenu .wp-submenu{left:auto;right:26px}#adminmenu li.focused.wp-has-current-submenu .wp-submenu,#adminmenu .wp-has-current-submenu .wp-submenu.sub-open{padding:0 0 8px 8px}.folded #adminmenu .wp-not-current-submenu li a{padding-left:0;padding-right:12px}#adminmenu li li,#adminmenu li li a{padding-left:inherit;padding-right:0}.wp-menu-arrow{-moz-transform:translate(-27px);-webkit-transform:translate(-27px);-o-transform:translate(-27px);-ms-transform:translate(-27px);transform:translate(-27px)}#adminmenu .wp-submenu ul{border-width:0 1px 0 0}#adminmenu .wp-submenu a{padding-left:0;padding-right:10px}#adminmenu a.wp-has-submenu{margin-left:0;margin-right:40px}body #wpcontent{margin-left:0;margin-right:52px}body .wp-admin #footer{margin-left:15px;margin-right:52px}}.post-com-count-wrapper{font-family:Tahoma,Arial,sans-serif}.column-response .post-com-count{float:right;margin-right:0;margin-left:5px}.response-links{float:right}.widefat th{font-family:Tahoma,Arial,sans-serif}.widefat td p{margin:2px 0 .8em}.postbox-container{float:right}.postbox .handlediv{float:left}#the-comment-list p.comment-author img{float:right;margin-right:0;margin-left:8px}#dashboard_browser_nag p.browser-update-nag.has-browser-icon{padding-right:0;padding-left:125px}.welcome-panel .welcome-panel-close{right:auto;left:10px}.welcome-panel .welcome-panel-close:before{left:auto;right:-12px}.welcome-panel .wp-badge{float:right}.welcome-panel-content .about-description,.welcome-panel h3{margin-left:0;margin-right:190px}.welcome-panel .welcome-panel-column{margin:0 -25px 0 5%;padding-left:0;padding-right:25px;float:right}.welcome-panel .welcome-panel-column.welcome-panel-last{margin-right:auto;padding-right:0;margin-left:0}.welcome-panel h4 .icon16{margin-left:0;margin-right:-32px}.welcome-panel .welcome-panel-column-container{padding:0 25px 0 0}.welcome-panel .welcome-panel-column ul{margin:1.6em 1.3em 1em 1em}.welcome-panel .welcome-panel-column li{padding-left:0;padding-right:2px}.fixed .column-comments{text-align:right}.fixed .column-comments .vers{padding-left:0;padding-right:3px}.fixed .column-comments a{float:right}.sorting-indicator{margin-left:0;margin-right:7px}th.sortable a span,th.sorted a span{float:right}.tablenav-pages a{margin-right:0;margin-left:1px}.tablenav-pages .next-page{margin-left:0;margin-right:2px}.tablenav a.button-secondary{margin:3px 0 0 8px}.tablenav .tablenav-pages{float:left}.tablenav .displaying-num{margin-right:0;margin-left:10px;font-family:Tahoma,Arial,sans-serif;font-style:normal}.tablenav .actions{padding:2px 0 0 8px}.tablenav .delete{margin-right:0;margin-left:20px}.view-switch{float:left}.filter{float:right;margin:-5px 10px 0 0}.filter .subsubsub{margin-left:0;margin-right:-10px}#posts-filter fieldset{float:right;margin:0 0 1em 1.5ex}#posts-filter fieldset legend{padding:0 1px .2em 0}#wpbody-content .inline-edit-row fieldset{float:right}#wpbody-content .quick-edit-row-page fieldset.inline-edit-col-right .inline-edit-col{border-width:0 1px 0 0}#wpbody-content .bulk-edit-row .inline-edit-col-bottom{float:left}.inline-edit-row fieldset label span.title{float:right}.inline-edit-row fieldset label span.input-text-wrap{margin-left:0;margin-right:5em}.quick-edit-row-post fieldset.inline-edit-col-right label span.title{padding-right:0;padding-left:.5em}#wpbody-content .quick-edit-row fieldset .inline-edit-group label.alignleft:first-child{margin-right:0;margin-left:.5em}.inline-edit-row fieldset span.title,.inline-edit-row fieldset span.checkbox-title{font-family:Tahoma,Arial,sans-serif;font-style:normal}.inline-edit-row fieldset .inline-edit-date{float:right}.inline-edit-row fieldset ul.cat-checklist label,.inline-edit-row .catshow,.inline-edit-row .cathide,.inline-edit-row #bulk-titles div{font-family:Tahoma,Arial,sans-serif}.quick-edit-row-post fieldset label.inline-edit-status{float:right}#bulk-titles div a{float:right;margin:3px -2px 0 3px;overflow:hidden;text-indent:-9999px}#post-body-content{float:right}#poststuff #post-body.columns-2{margin-left:300px;margin-right:0}#post-body.columns-2 #postbox-container-1{float:left;margin-left:-300px;margin-right:0}@media only screen and (max-width:850px){#wpbody-content #post-body.columns-2 #postbox-container-1{margin-left:0}}#titlediv #title-prompt-text,#wp-fullscreen-title-prompt-text{right:0}#sample-permalink{direction:ltr}#sample-permalink #editable-post-name{unicode-bidi:embed}#wp-fullscreen-title-prompt-text{left:auto;right:0}.postarea h3 label{float:right}.submitbox .submit{text-align:right}.inside-submitbox #post_status{margin:2px -2px 2px 0}.submitbox .submit input{margin-right:0;margin-left:4px}#normal-sortables .postbox .submit{float:left}.taxonomy div.tabs-panel{margin:0 125px 0 5px}#side-sortables .comments-box thead th,#normal-sortables .comments-box thead th{font-style:normal}#commentsdiv img.waiting{padding-left:0;padding-right:5px}#post-body .add-menu-item-tabs li.tabs{border-width:1px 1px 1px 0;margin-right:0;margin-left:-1px}#post-body .tagsdiv #newtag{margin-right:0;margin-left:5px}.autosave-info{padding:2px 2px 2px 15px;text-align:left}#post-body .wp_themeSkin .mceStatusbar a.mceResize{background:transparent url(../images/resize-rtl.gif) no-repeat scroll left bottom;cursor:sw-resize}.curtime #timestamp{background-position:right top;padding-left:0;padding-right:18px}#postcustomstuff table input,#postcustomstuff table select,#postcustomstuff table textarea{margin:8px 8px 8px 0}table.diff td,table.diff th{font-family:Consolas,Monaco,monospace}.category-adder{margin-left:0;margin-right:120px}#post-body ul.add-menu-item-tabs{float:right;text-align:left;margin:0 5px 0 -120px}#post-body ul.add-menu-item-tabs li.tabs{-webkit-border-top-left-radius:0;-webkit-border-top-right-radius:3px;-webkit-border-bottom-left-radius:0;-webkit-border-bottom-right-radius:3px;border-top-left-radius:0;border-top-right-radius:3px;border-bottom-left-radius:0;border-bottom-right-radius:3px}#front-page-warning,#front-static-pages ul,ul.export-filters,.inline-editor ul.cat-checklist ul,.categorydiv ul.categorychecklist ul,.customlinkdiv ul.categorychecklist ul,.posttypediv ul.categorychecklist ul,.taxonomydiv ul.categorychecklist ul{margin-left:0;margin-right:18px}#post-body .add-menu-item-tabs li.tabs{border-style:solid solid solid none;border-width:1px 1px 1px 0;margin-right:0;margin-left:-1px}p.help,p.description,span.description,.form-wrap p{font-style:normal;font-family:Tahoma,Arial,sans-serif}.taghint{margin:15px 12px -24px 0}#poststuff .tagsdiv .howto{margin:0 8px 6px 0}.ac_results li{text-align:right}.links-table th{text-align:right}#wpbody-content .describe th{text-align:right}.describe .media-item-info .A1B1{padding:0 10px 0 0}.media-upload-form td label{margin-left:6px;margin-right:2px}.media-upload-form .align .field label{padding:0 23px 0 0;margin:0 3px 0 1em}.media-upload-form tr.image-size label{margin:0 5px 0 0}#wpbody-content .describe p.help{padding:0 5px 0 0}.media-item .error-div a.dismiss,.describe-toggle-on,.describe-toggle-off{float:left;margin-right:0;margin-left:15px}.media-item .error-div a.dismiss{padding:0 15px 0 0}.media-item .error-div{padding-left:0;padding-right:10px}.media-item .pinkynail{float:right}.media-item .describe td{padding:0 0 8px 8px}.media-item .progress{float:left;margin:6px 0 0 10px}#find-posts-response .found-radio{padding:5px 8px 0 0}.find-box-search label{padding-right:0;padding-left:6px}.find-box #resize-se{right:auto;left:1px}form.upgrade .hint{font-style:normal}.imgedit-menu div{float:right}.imgedit-help{font-style:normal}.imgedit-submit-btn{margin-left:0;margin-right:20px}.form-table th{text-align:right}.form-table input.tog{margin-right:0;margin-left:2px;float:right}.form-table table.color-palette{float:right}#replysubmit img.waiting,.inline-edit-save img.waiting{float:left}#replysubmit .button{margin-right:0;margin-left:5px}#edithead .inside{float:right;padding:3px 5px 2px 0}.comment-ays th{border-right-style:none;border-left-style:solid;border-right-width:0;border-left-width:1px}.spam-undo-inside .avatar,.trash-undo-inside .avatar{margin-left:8px}#comment-status-radio input{margin:2px 0 5px 3px}h3.available-themes{float:right}.available-theme{margin-right:0;margin-left:10px;padding:20px 0 20px 20px}#current-theme .theme-info li,.theme-options li,.available-theme .action-links li{float:right;padding-right:0;padding-left:10px;margin-right:0;margin-left:10px;border-right:0;border-left:1px solid #dfdfdf}.available-theme .action-links li{padding-left:8px;margin-left:8px}#current-theme .theme-info li:last-child,.theme-options li:last-child,.available-theme .action-links li:last-child{padding-left:0;margin-right:0;border-left:0}.available-theme .action-links .delete-theme{float:left;margin-left:0;margin-right:8px}.available-theme .action-links p{float:right}#current-theme.has-screenshot{padding-left:0;padding-right:330px}#current-theme h4 span{margin-left:0;margin-right:20px}#current-theme img{float:right;width:300px;margin-left:0;margin-right:-330px}.theme-options .load-customize{margin-right:0;margin-left:30px;float:right}.theme-options span{float:right;margin-right:0;margin-left:10px}.theme-options ul{float:right}@media only screen and (max-width:1200px){#current-theme.has-screenshot{padding-right:270px}#current-theme img{margin-right:-270px;width:240px}}#broken-themes{text-align:right}.appearance_page_custom-header .available-headers .default-header{float:right;margin:0 0 20px 20px}.appearance_page_custom-header .random-header{margin:0 0 20px 20px}.appearance_page_custom-header .available-headers label input,.appearance_page_custom-header .random-header label input{margin-right:0;margin-left:10px}.nav-tab{margin:0 0 -1px 6px}h2 .nav-tab{font-family:Tahoma,Arial,sans-serif}.plugins .desc ul,.plugins .desc ol{margin:0 2em 0 0}#wpbody-content .plugins .plugin-title,#wpbody-content .plugins .theme-title{padding-right:0;padding-left:12px}#profile-page .form-table #rich_editing{margin-right:0;margin-left:5px}#profile-page #pass1,#profile-page #pass2,#profile-page #user_login{direction:ltr}#your-profile legend{font-family:Tahoma,Arial,sans-serif}.pressthis a span{background-position:right 5px;padding:8px 27px 8px 11px}.pressthis a:after{right:auto;left:10px;background:transparent;transform:skew(-20deg) rotate(-6deg);-webkit-transform:skew(-20deg) rotate(-6deg);-moz-transform:skew(-20deg) rotate(-6deg)}.pressthis a:hover:after{transform:skew(-20deg) rotate(-9deg);-webkit-transform:skew(-20deg) rotate(-9deg);-moz-transform:skew(-20deg) rotate(-9deg)}#utc-time,#local-time{padding-left:0;padding-right:25px;font-style:normal;font-family:Tahoma,Arial,sans-serif}#footer{margin-left:20px}#wpcontent,#footer{margin-right:165px}.wrap.about-wrap{margin-left:40px;margin-right:20px}.about-wrap h1,.about-text{margin-right:0;margin-left:200px}.about-wrap h2.nav-tab-wrapper{padding-left:0;padding-right:6px}.about-wrap .wp-badge{right:auto;left:0}.about-wrap h2 .nav-tab{margin-right:0;margin-left:3px}.about-wrap .changelog li{margin-left:0;margin-right:3em}.about-wrap .three-col-images .last-feature{float:left}.about-wrap .three-col-images .first-feature{float:right}.about-wrap .feature-section.three-col div{margin-right:0;margin-left:4.999999999%;float:right}.about-wrap .feature-section.three-col h4{text-align:right}.about-wrap .feature-section.three-col img{margin-right:5px;margin-left:0}.about-wrap .feature-section.three-col .last-feature{margin-left:0}.about-wrap .feature-section img{margin:0 0 10px .7%}.about-wrap .feature-section.images-stagger-right img{float:left;margin:0 12px 12px 5px}.about-wrap .feature-section.images-stagger-left img{float:right;margin:0 5px 12px 12px}.about-wrap li.wp-person,.about-wrap li.wp-person img.gravatar{float:right;margin-right:0;margin-left:10px}#template div{margin-right:0;margin-left:190px}.column-author img,.column-username img{float:right;margin-right:0;margin-left:10px}.tagchecklist{margin-left:0;margin-right:14px}.tagchecklist strong{margin-left:0;margin-right:-8px}.tagchecklist span{margin-right:0;margin-left:25px;float:right}.tagchecklist span a{margin:6px -9px 0 0;float:right}#poststuff h2{clear:right}#poststuff h3,.metabox-holder h3{font-family:Tahoma,Arial,sans-serif}.tool-box .title{font-family:Tahoma,Arial,sans-serif}#sidemenu{margin:-30px 315px 0 15px;float:left;padding-left:0;padding-right:10px}#sidemenu a{float:right}table .vers,table .column-visible,table .column-rating{text-align:right}.screen-meta-toggle{right:auto;left:15px}* html #template div{margin-left:0}.list-ajax-loading{float:left;margin-right:0;margin-left:9px}#editorcontainer .wp_themeSkin .mceStatusbar{padding-left:0;padding-right:5px}#editorcontainer .wp_themeSkin .mceStatusbar div{float:right}#editorcontainer .wp_themeSkin .mceStatusbar a.mceResize{float:left}.wp-full-overlay .wp-full-overlay-sidebar{margin:0;left:auto;right:0;border-right:0;border-left:1px solid rgba(0,0,0,0.2)}.wp-full-overlay-sidebar:after{right:auto;left:0;box-shadow:inset 5px 0 4px -4px rgba(0,0,0,0.1)}.wp-full-overlay.collapsed,.wp-full-overlay.expanded .wp-full-overlay-sidebar{margin-right:0!important}.wp-full-overlay.expanded{margin-right:300px;margin-left:0}.wp-full-overlay.collapsed .wp-full-overlay-sidebar{margin-right:-300px;margin-left:0}.wp-full-overlay .collapse-sidebar{right:0;left:auto;margin-right:15px}.wp-full-overlay.collapsed .collapse-sidebar{right:100%}.wp-full-overlay .collapse-sidebar-arrow{margin-right:2px;margin-left:0;background:transparent url('../../wp-admin/images/arrows.png') no-repeat 0 -108px}.wp-full-overlay.collapsed .collapse-sidebar-arrow{background-position:0 -72px}.wp-full-overlay .collapse-sidebar-label{right:100%;left:auto;margin-right:10px;margin-left:0}.install-theme-info .theme-install{float:left}#wpcontent{margin-left:0;margin-right:165px}.folded #wpcontent{margin-left:0;margin-right:52px}.folded.wp-admin #footer{margin-left:15px;margin-right:52px}#wpbody-content{float:right}#adminmenuwrap{float:right}#adminmenu{clear:right}.inner-sidebar{float:left;clear:left}.has-right-sidebar #post-body{float:right;clear:right;margin-right:0;margin-left:-340px}.has-right-sidebar #post-body-content{margin-right:0;margin-left:300px}#col-right{float:left;clear:left}.alignleft{float:right}.alignright{float:left}.textleft{text-align:right}.textright{text-align:left}.screen-reader-text,.screen-reader-text span{left:auto;right:-1000em}body,td,textarea,input,select{font-family:Tahoma,Arial,sans-serif}ul.ul-disc,ul.ul-square,ol.ol-decimal{margin-left:0;margin-right:1.8em}.subsubsub{float:right}.widefat thead th:first-of-type{-webkit-border-top-left-radius:0;-webkit-border-top-right-radius:3px;border-top-left-radius:0;border-top-right-radius:3px}.widefat thead th:last-of-type{-webkit-border-top-right-radius:0;-webkit-border-top-left-radius:3px;border-top-right-radius:0;border-top-left-radius:3px}.widefat tfoot th:first-of-type{-webkit-border-bottom-left-radius:0;-webkit-border-bottom-right-radius:3px;border-bottom-left-radius:0;border-bottom-right-radius:3px}.widefat tfoot th:last-of-type{-webkit-border-bottom-right-radius:0;-webkit-border-bottom-left-radius:3px;border-bottom-right-radius:0;border-bottom-left-radius:3px}.widefat th{text-align:right}.widefat th input{margin:0 8px 0 0}.wrap{margin-right:0;margin-left:15px}.wrap h2,.subtitle{font-family:Tahoma,Arial,sans-serif}.wrap h2{padding-right:0;padding-left:15px}.subtitle{padding-left:0;padding-right:25px}.wrap .add-new-h2{font-family:Tahoma,Arial,sans-serif;margin-left:0;margin-right:4px}.wrap h2.long-header{padding-left:0}#dashboard-widgets-wrap .has-sidebar{margin-right:0;margin-left:-51%}#dashboard-widgets-wrap .has-sidebar .has-sidebar-content{margin-right:0;margin-left:51%}.view-all{right:auto;left:0}#dashboard_right_now p.sub,#dashboard-widgets h4,a.rsswidget,#dashboard_plugins h4,#dashboard_plugins h5,#dashboard_recent_comments .comment-meta .approve,#dashboard_right_now td.b,#dashboard_right_now .versions a{font-family:Tahoma,Arial,sans-serif}#dashboard_right_now p.sub{left:auto;right:15px}#dashboard_right_now td.b{padding-right:0;padding-left:6px;text-align:left}#dashboard_right_now .t{padding-right:0;padding-left:12px}#dashboard_right_now .table_content{float:right}#dashboard_right_now .table_discussion{float:left}#dashboard_right_now a.button{float:left;clear:left}#dashboard_plugins .inside span{padding-left:0;padding-right:5px}#dashboard-widgets h3 .postbox-title-action{right:auto;left:30px}#the-comment-list .pingback{padding-left:0!important;padding-right:9px!important}#the-comment-list .comment-item{padding:1em 70px 1em 10px}#the-comment-list .comment-item .avatar{float:right;margin-left:0;margin-right:-60px}.rss-widget cite{text-align:left}.rss-widget span.rss-date{font-family:Tahoma,Arial,sans-serif;margin-left:0;margin-right:3px}#dashboard_quick_press h4{float:right;text-align:left}#dashboard_quick_press .wp-media-buttons{margin:0 5em .5em 0}#dashboard_quick_press h4 label{margin-right:0;margin-left:10px}#dashboard_quick_press .input-text-wrap,#dashboard_quick_press .textarea-wrap{margin:0 5em 1em 0}#dashboard_quick_press #media-buttons{margin:0 5em .5em 0;padding:0}#dashboard-widgets #dashboard_quick_press form p.submit{margin-left:0;margin-right:4.6em}#dashboard-widgets #dashboard_quick_press form p.submit input{float:right}#dashboard-widgets #dashboard_quick_press form p.submit #save-post{margin:0 10px 0 1em}#dashboard-widgets #dashboard_quick_press form p.submit #publish{float:left}#dashboard-widgets #dashboard_quick_press form p.submit img.waiting{margin:4px 0 0 6px}#dashboard_recent_drafts h4 abbr{font-family:Tahoma,Arial,sans-serif;margin-left:0;margin-right:3px}body.login{font-family:Tahoma,Arial,sans-serif}.login form{margin-right:8px;margin-left:0}.login form .forgetmenot{float:right}.login form .submit{float:left}#login form .submit input{font-family:Tahoma,Arial,sans-serif}.login #nav,.login #backtoblog{margin:0 16px 0 0}#login_error,.login .message{margin:0 8px 16px 0}.login #user_pass,.login #user_login,.login #user_email{margin-left:6px;margin-right:0;direction:ltr}.login h1 a{text-decoration:none}.login .button-primary{float:left}#nav-menus-frame{margin-right:300px;margin-left:0}#wpbody-content #menu-settings-column{margin-right:-300px;margin-left:0;float:right}#menu-management-liquid{float:right}#menu-management{margin-left:20px;margin-right:0}.post-body-plain{padding:10px 0 0 10px}#menu-management .nav-tabs-arrow-left{right:0;left:auto}#menu-management .nav-tabs-arrow-right{left:0;right:auto;text-align:left;font-family:Tahoma,Arial,sans-serif}#menu-management .nav-tabs{padding-right:20px;padding-left:10px}.js #menu-management .nav-tabs{float:right;margin-right:0;margin-left:-400px}#select-nav-menu-container{text-align:left}#wpbody .open-label{float:right}#wpbody .open-label span{padding-left:10px;padding-right:0}.js .input-with-default-title{font-style:normal;font-weight:bold}.postbox .howto input{float:left}#nav-menu-theme-locations .button-controls{text-align:left}.meta-sep,.submitcancel{float:right}#cancel-save{margin-left:0;margin-right:20px}.list-controls{float:right}.add-to-menu{float:left}#add-custom-link label span{float:right;padding-left:5px;padding-right:0}.nav-menus-php .howto span{float:right}.list li .menu-item-title input{margin-left:3px;margin-right:0}.menu-item-handle{padding-right:10px;padding-left:0}.menu-item-edit-active .menu-item-handle{-webkit-border-bottom-left-radius:0;-webkit-border-bottom-right-radius:0;border-bottom-left-radius:0;border-bottom-right-radius:0}.menu-item-handle .item-title{margin-left:13em;margin-right:0}.menu-item-handle .item-edit{right:auto;left:-20px}.menu-item-depth-0{margin-right:0;margin-left:0}.menu-item-depth-1{margin-right:30px;margin-left:0}.menu-item-depth-2{margin-right:60px;margin-left:0}.menu-item-depth-3{margin-right:90px;margin-left:0}.menu-item-depth-4{margin-right:120px;margin-left:0}.menu-item-depth-5{margin-right:150px;margin-left:0}.menu-item-depth-6{margin-right:180px;margin-left:0}.menu-item-depth-7{margin-right:210px;margin-left:0}.menu-item-depth-8{margin-right:240px;margin-left:0}.menu-item-depth-9{margin-right:270px;margin-left:0}.menu-item-depth-10{margin-right:300px;margin-left:0}.menu-item-depth-11{margin-right:330px;margin-left:0}.menu-item-depth-0 .menu-item-transport{margin-right:0;margin-left:0}.menu-item-depth-1 .menu-item-transport{margin-right:-30px;margin-left:0}.menu-item-depth-2 .menu-item-transport{margin-right:-60px;margin-left:0}.menu-item-depth-3 .menu-item-transport{margin-right:-90px;margin-left:0}.menu-item-depth-4 .menu-item-transport{margin-right:-120px;margin-left:0}.menu-item-depth-5 .menu-item-transport{margin-right:-150px;margin-left:0}.menu-item-depth-6 .menu-item-transport{margin-right:-180px;margin-left:0}.menu-item-depth-7 .menu-item-transport{margin-right:-210px;margin-left:0}.menu-item-depth-8 .menu-item-transport{margin-right:-240px;margin-left:0}.menu-item-depth-9 .menu-item-transport{margin-right:-270px;margin-left:0}.menu-item-depth-10 .menu-item-transport{margin-right:-300px;margin-left:0}.menu-item-depth-11 .menu-item-transport{margin-right:-330px;margin-left:0}.item-type{padding-left:10px;padding-right:0}.item-controls{left:20px;right:auto}.item-controls .item-order{padding-left:10px;padding-right:0}.item-edit{left:-20px;right:auto;-webkit-border-bottom-right-radius:3px;-webkit-border-bottom-left-radius:0;border-bottom-right-radius:3px;border-bottom-left-radius:0}.menu-item-settings{padding:10px 10px 10px 0;border-width:0 1px 1px 1px}#custom-menu-item-url{direction:ltr}.link-to-original{font-style:normal;font-weight:bold}.link-to-original a{padding-right:4px;padding-left:0}.menu-item-settings .description-thin,.menu-item-settings .description-wide{margin-left:10px;margin-right:0;float:right}.major-publishing-actions .publishing-action{text-align:left;float:left}.major-publishing-actions .delete-action{text-align:right;float:right;padding-left:15px;padding-right:0}.menu-name-label{margin-left:15px;margin-right:0}.auto-add-pages{float:right}div.star-holder{background:url('../images/stars-rtl.png?ver=20120506.png') repeat-x bottom right}div.star-holder .star-rating{background:url('../images/stars-rtl.png?ver=20120506.png') repeat-x top right;float:right}#plugin-information ul#sidemenu{left:auto;right:0}#plugin-information h2{margin-right:0;margin-left:200px}#plugin-information .fyi{margin-left:5px;margin-right:20px}#plugin-information .fyi h2{margin-left:0}#plugin-information .fyi ul{padding:10px 7px 10px 5px}#plugin-information #section-screenshots li p{padding-left:0;padding-right:20px}#plugin-information #section-screenshots ol,#plugin-information .updated,#plugin-information pre{margin-right:0;margin-left:215px}#plugin-information .updated,#plugin-information .error{clear:none;direction:rtl}#plugin-information #section-holder .section{direction:ltr}.posting{margin-left:212px;margin-right:0;position:relative}h3.tb{margin-left:0;margin-right:5px}#publish{float:left}.postbox .handlediv{float:left}.actions li{float:right;margin-right:0;margin-left:10px}#extra-fields .actions{margin:-23px 0 0 -7px}#img_container a{float:right}#category-add input,#category-add select{font-family:Tahoma,Arial,sans-serif}#tagsdiv #newtag{margin-right:0;margin-left:5px}#tagadd{margin-left:0;margin-right:3px}#tagchecklist span{margin-left:.5em;margin-right:10px;float:right}#tagchecklist span a{margin:6px -9px 0 0;float:right}.submit input,.button,.button-primary,.button-secondary,.button-highlighted,#postcustomstuff .submit input{font-family:Tahoma,Arial,sans-serif}.ac_results li{text-align:right}#TB_ajaxContent #options{right:auto;left:25px}#post_status{margin-left:0;margin-right:10px}#templateside{float:left}#template textarea,#docs-list{direction:ltr}.theme-details .theme-version{float:right}.theme-details .star-holder{float:left}.feature-filter .feature-group{float:right}.feature-filter .feature-name{float:right;text-align:left}.feature-filter .feature-group li{float:right;padding-right:0;padding-left:25px}div.widget-liquid-left{float:right;clear:right;margin-right:0;margin-left:-325px}div#widgets-left{margin-right:5px;margin-left:325px}div.widget-liquid-right{float:left;clear:left}.inactive-sidebar .widget{float:right}div.sidebar-name h3{font-family:Tahoma,Arial,sans-serif}#widget-list .widget{float:right}.inactive-sidebar .widget-placeholder{float:right}.widget-top .widget-title-action{float:left}.widget-control-edit{padding:0 0 0 8px}.sidebar-name-arrow{float:left}.press-this-sidebar{float:left}.press-this #header-logo,.press-this #wphead h1{float:right}.ltr{direction:ltr}body.locale-he-il,.locale-he-il .quicktags,.locale-he-il .search,.locale-he-il .howto,.locale-he-il #adminmenu .awaiting-mod,.locale-he-il #adminmenu span.update-plugins,.locale-he-il #sidemenu li a span.update-plugins,.locale-he-il .post-com-count-wrapper,.locale-he-il .widefat th,.locale-he-il .tablenav .displaying-num,.locale-he-il .inline-edit-row fieldset span.title,.locale-he-il .inline-edit-row fieldset span.checkbox-title,.locale-he-il .inline-edit-row fieldset ul.cat-checklist label,.locale-he-il .inline-edit-row .catshow,.locale-he-il .inline-edit-row .cathide,.locale-he-il .inline-edit-row #bulk-titles div,.locale-he-il p.help,.locale-he-il p.description,.locale-he-il span.description,.locale-he-il .form-wrap p,.locale-he-il h2 .nav-tab,.locale-he-il #your-profile legend,.locale-he-il #utc-time,.locale-he-il #local-time,.locale-he-il #poststuff h3,.locale-he-il .metabox-holder h3,.locale-he-il .tool-box .title,.locale-he-il td,.locale-he-il textarea,.locale-he-il input,.locale-he-il select,.locale-he-il .wrap h2,.locale-he-il .subtitle,.locale-he-il .wrap .add-new-h2,.locale-he-il #dashboard_right_now p.sub,.locale-he-il #dashboard-widgets h4,.locale-he-il a.rsswidget,.locale-he-il #dashboard_plugins h4,.locale-he-il #dashboard_plugins h5,.locale-he-il #dashboard_recent_comments .comment-meta .approve,.locale-he-il #dashboard_right_now td.b,.locale-he-il #dashboard_right_now .versions a,.locale-he-il .rss-widget span.rss-date,.locale-he-il #dashboard_recent_drafts h4 abbr,body.login.locale-he-il,.locale-he-il #login form .submit input,.locale-he-il #menu-management .nav-tabs-arrow-right,.locale-he-il #category-add input,.locale-he-il #category-add select,.locale-he-il .submit input,.locale-he-il .button,.locale-he-il .button-primary,.locale-he-il .button-secondary,.locale-he-il .button-highlighted,.locale-he-il #postcustomstuff .submit input,.locale-he-il div.sidebar-name h3{font-family:Arial,sans-serif}.locale-he-il em{font-style:normal;font-weight:bold}
\ No newline at end of file
+/*------------------------------------------------------------------------------
+
+
+Hello, this is the RTL version of the  main WordPress admin CSS file.
+All the important stuff is in here.
+
+
+TABLE OF CONTENTS:
+------------------
+ 1.0 - Text Elements
+ 2.0 - Forms
+ 3.0 - Actions
+ 4.0 - Notifications
+ 5.0 - TinyMCE
+ 6.0 - Admin Header
+	6.1 - Screen Options Tabs
+ 7.0 - Main Navigation
+ 8.0 - Layout Blocks
+ 9.0 - Dashboard
+10.0 - List Posts
+	10.1 - Inline Editing
+11.0 - Write/Edit Post Screen
+	11.1 - Custom Fields
+	11.2 - Post Revisions
+	11.3 - Featured Images
+12.0 - Categories
+13.0 - Tags
+14.0 - Media Screen
+	14.1 - Media Uploader
+	14.2 - Image Editor
+15.0 - Comments Screen
+16.0 - Themes
+	16.1 - Custom Header
+	16.2 - Custom Background
+	16.3 - Tabbed Admin Screen Interface
+17.0 - Plugins
+18.0 - Users
+19.0 - Tools
+20.0 - Settings
+21.0 - Admin Footer
+22.0 - About Pages
+23.0 - Misc
+24.0 - Dead
+25.0 - TinyMCE tweaks
+26.0 - Full Overlay w/ Sidebar
+27.0 - Customize Loader
+
+
+------------------------------------------------------------------------------*/
+
+
+/*------------------------------------------------------------------------------
+  1.0 - Text Styles
+------------------------------------------------------------------------------*/
+
+ol {
+	margin-left: 0;
+	margin-right: 2em;
+}
+
+.code, code {
+	font-family: monospace;
+	direction: ltr;
+}
+
+.quicktags, .search {
+	font: 12px Tahoma, Arial, sans-serif;
+}
+
+.icon32 {
+	float: right;
+	margin-right: 0;
+	margin-left: 8px;
+}
+
+.icon16 {
+	float: right;
+	margin-right: -8px;
+	margin-left: 0;
+}
+
+.howto {
+	font-style: normal;
+	font-family: Tahoma, Arial, sans-serif;
+}
+
+p.install-help {
+	font-style: normal;
+}
+
+
+/*------------------------------------------------------------------------------
+  2.0 - Forms
+------------------------------------------------------------------------------*/
+
+#doaction,
+#doaction2,
+#post-query-submit {
+	margin-right: 0;
+	margin-left: 8px;
+}
+
+#timezone_string option {
+	margin-left: 0;
+	margin-right: 1em;
+}
+
+#pass-strength-result {
+	float: right;
+	margin: 13px 1px 5px 5px;
+}
+
+p.search-box {
+	float: left;
+}
+
+.search-box input[name="s"],
+#search-plugins input[name="s"],
+.tagsdiv .newtag {
+	float: right;
+	margin-right: 0;
+	margin-left: 4px;
+}
+
+input[type=password] {
+	direction: ltr;
+}
+
+input[type="text"].ui-autocomplete-loading {
+	background: transparent url('../images/loading.gif') no-repeat left center;
+}
+
+ul#add-to-blog-users {
+	margin: 0 14px 0 0;
+}
+
+.ui-autocomplete li {
+	text-align: right;
+}
+
+/*------------------------------------------------------------------------------
+  3.0 - Actions
+------------------------------------------------------------------------------*/
+
+#delete-action {
+	float: right;
+}
+
+#publishing-action {
+	float: left;
+	text-align: left;
+}
+
+#publishing-action .spinner {
+	float: right;
+}
+
+#post-body .misc-pub-section {
+	border-right: 0;
+	border-left-width: 1px;
+	border-left-style: solid;
+}
+
+#post-body .misc-pub-section-last {
+	border-left: 0;
+}
+
+#minor-publishing-actions {
+	padding: 10px 8px 2px 10px;
+	text-align: left;
+}
+
+#save-post {
+	float: right;
+}
+
+.preview {
+	float: left;
+}
+
+#sticky-span {
+	margin-left: 0;
+	margin-right: 18px;
+}
+
+.side-info ul {
+	padding-left: 0;
+	padding-right: 18px;
+}
+
+td.action-links,
+th.action-links {
+	text-align: left;
+}
+
+
+/*------------------------------------------------------------------------------
+  4.0 - Notifications
+------------------------------------------------------------------------------*/
+
+form.upgrade .hint {
+	font-style: normal;
+}
+
+#ajax-response.alignleft {
+	margin-left: 0;
+	margin-right: 2em;
+}
+
+
+/*------------------------------------------------------------------------------
+  5.0 - TinyMCE
+------------------------------------------------------------------------------*/
+
+#quicktags {
+	background-position: right top;
+}
+
+#ed_reply_toolbar input {
+	margin: 1px 1px 1px 2px;
+}
+
+/*------------------------------------------------------------------------------
+  6.0 - Admin Header
+------------------------------------------------------------------------------*/
+#wphead {
+	height: 32px;
+	margin-left: 15px;
+	margin-right: 2px;
+}
+
+#header-logo {
+	float: right;
+}
+
+#wphead h1 {
+	float: right;
+}
+
+/*------------------------------------------------------------------------------
+  6.1 - Screen Options Tabs
+------------------------------------------------------------------------------*/
+
+#screen-meta-links {
+	margin-right: 0;
+	margin-left: 24px;
+}
+
+#screen-meta {
+	margin-right: 5px;
+	margin-left: 15px;
+}
+
+#screen-options-link-wrap,
+#contextual-help-link-wrap {
+	float: left;
+	margin-left: 0;
+	margin-right: 6px;
+}
+
+#screen-meta-links a.show-settings {
+	padding-right: 6px;
+	padding-left: 16px;
+}
+
+.toggle-arrow {
+	background-position: top right;
+}
+.toggle-arrow-active {
+	background-position: bottom right;
+}
+
+.metabox-prefs label {
+	padding-right: 0;
+	padding-left: 15px;
+}
+
+.metabox-prefs label input {
+	margin-right: 2px;
+	margin-left: 5px;
+}
+
+/*------------------------------------------------------------------------------
+  6.2 - Help Menu
+------------------------------------------------------------------------------*/
+
+#contextual-help-wrap {
+	margin-left: 0;
+	margin-right: -4px;
+}
+
+#contextual-help-back {
+	left: 170px;
+	right: 150px;
+}
+
+#contextual-help-wrap.no-sidebar #contextual-help-back {
+	left: 0;
+	right: 150px;
+
+	border-right-width: 1px;
+	border-left-width: 0;
+	-webkit-border-bottom-right-radius: 0;
+	border-bottom-right-radius: 0;
+	-webkit-border-bottom-left-radius: 2px;
+	border-bottom-left-radius: 2px;
+}
+
+.contextual-help-tabs {
+	float: right;
+}
+
+.contextual-help-tabs a {
+	padding-left: 5px;
+	padding-right: 12px;
+}
+
+.contextual-help-tabs .active {
+	margin-right: 0;
+	margin-left: -1px;
+}
+
+.contextual-help-tabs .active,
+.contextual-help-tabs-wrap {
+	border-left: 0;
+	border-right-width: 1px;
+}
+
+.help-tab-content {
+	margin-right: 0;
+	margin-left: 22px;
+}
+
+.help-tab-content li {
+	margin-left: 0;
+	margin-right: 18px;
+}
+
+.contextual-help-sidebar {
+	float: left;
+	padding-right: 12px;
+	padding-left: 8px;
+}
+
+/*------------------------------------------------------------------------------
+  7.0 - Main Navigation (Right Menu) (RTL: Left Menu)
+------------------------------------------------------------------------------*/
+
+.folded #wpcontent {
+	margin-left: 0;
+	margin-right: 52px;
+}
+
+.folded.wp-admin #wpfooter {
+	margin-left: 15px;
+	margin-right: 52px;
+}
+
+#adminmenuback,
+#adminmenuwrap {
+	border-width: 0 0 0 1px;
+}
+
+#adminmenushadow {
+	right: auto;
+	left: 0;
+}
+
+#adminmenu li .wp-submenu {
+	left: auto;
+	right: 146px;
+}
+
+
+.folded #adminmenu .wp-submenu.sub-open,
+.folded #adminmenu .opensub .wp-submenu,
+.folded #adminmenu .wp-has-current-submenu .wp-submenu.sub-open,
+.folded #adminmenu .wp-has-current-submenu.opensub .wp-submenu,
+.folded #adminmenu a.menu-top:focus + .wp-submenu,
+.folded #adminmenu .wp-has-current-submenu a.menu-top:focus + .wp-submenu,
+.no-js.folded #adminmenu .wp-has-submenu:hover .wp-submenu  {
+	left: auto;
+	right: 32px;
+}
+
+#adminmenu div.wp-menu-image,
+.folded #adminmenu div.wp-menu-image {
+	float: right;
+	width: 30px;
+}
+
+#adminmenu .wp-submenu a,
+#adminmenu li li a,
+.folded #adminmenu .wp-not-current-submenu li a {
+	padding-left: 0;
+	padding-right: 12px;
+}
+
+#adminmenu .wp-not-current-submenu li a {
+	padding-left: 0;
+	padding-right: 18px;
+}
+
+.wp-menu-arrow {
+	right: 0;
+
+	-moz-transform:    translate( -139px );
+	-webkit-transform: translate( -139px );
+	-o-transform:      translate( -139px );
+	-ms-transform:     translate( -139px );
+	transform:         translate( -139px );
+}
+
+.ie8 .wp-menu-arrow {
+	right: -20px;
+}
+
+#adminmenu .wp-menu-arrow div {
+	left: -8px;
+	width: 16px;
+}
+
+#adminmenu li.wp-not-current-submenu .wp-menu-arrow {
+	-moz-transform:    translate( -138px );
+	-webkit-transform: translate( -138px );
+	-o-transform:      translate( -138px );
+	-ms-transform:     translate( -138px );
+	transform:         translate( -138px );
+}
+
+.folded #adminmenu li .wp-menu-arrow {
+	-moz-transform:    translate( -26px );
+	-webkit-transform: translate( -26px );
+	-o-transform:      translate( -26px );
+	-ms-transform:     translate( -26px );
+	transform:         translate( -26px );
+}
+
+#adminmenu .wp-not-current-submenu .wp-menu-arrow div {
+    border-style: solid solid none none;
+    border-width: 1px 1px 0 0;
+}
+
+#adminmenu .wp-menu-image img {
+	padding: 7px 7px 0 0;
+}
+
+#adminmenu .wp-submenu .wp-submenu-head {
+	padding: 5px 10px 5px 4px;
+	-webkit-border-top-right-radius: 0;
+	-webkit-border-top-left-radius: 3px;
+	border-top-right-radius: 0;
+	border-top-left-radius: 3px;
+}
+
+.folded #adminmenu li.wp-has-current-submenu .wp-submenu {
+	border-width: 1px;
+	border-style: solid;
+	-webkit-border-bottom-right-radius: 0;
+	-webkit-border-bottom-left-radius: 3px;
+	-webkit-border-top-right-radius: 0;
+	-webkit-border-top-left-radius: 3px;
+	border-bottom-right-radius: 0;
+	border-bottom-left-radius: 3px;
+	border-top-right-radius: 0;
+	border-top-left-radius: 3px;
+}
+
+#adminmenu .awaiting-mod,
+#adminmenu span.update-plugins,
+#sidemenu li a span.update-plugins {
+	font-family: Tahoma, Arial, sans-serif;
+	margin-left: 0;
+	margin-right: 7px;
+}
+
+#collapse-button {
+	float: right;
+}
+
+/* Auto-folding of the admin menu */
+@media only screen and (max-width: 900px) {
+	.auto-fold #wpcontent {
+		margin-left: 0;
+		margin-right: 52px;
+	}
+
+	.auto-fold.wp-admin #wpfooter {
+		margin-left: 15px;
+		margin-right: 52px;
+	}
+
+	.auto-fold #adminmenu div.wp-menu-image {
+		float: right;
+		width: 30px;
+	}
+
+	.auto-fold #adminmenu .wp-submenu.sub-open,
+	.auto-fold #adminmenu .opensub .wp-submenu,
+	.auto-fold #adminmenu .wp-has-current-submenu .wp-submenu.sub-open,
+	.auto-fold #adminmenu .wp-has-current-submenu.opensub .wp-submenu,
+	.auto-fold #adminmenu a.menu-top:focus + .wp-submenu,
+	.auto-fold #adminmenu .wp-has-current-submenu a.menu-top:focus + .wp-submenu,
+	.no-js.auto-fold #adminmenu .wp-has-submenu:hover .wp-submenu  {
+		left: auto;
+		right: 32px;
+	}
+
+	.auto-fold #adminmenu .wp-not-current-submenu li a {
+		padding-left: 0;
+		padding-right: 12px;
+	}
+
+	.auto-fold #adminmenu li .wp-menu-arrow {
+		-moz-transform:    translate( -27px );
+		-webkit-transform: translate( -27px );
+		-o-transform:      translate( -27px );
+		-ms-transform:     translate( -27px );
+		transform:         translate( -27px );
+	}
+
+	.auto-fold #adminmenu li.wp-has-current-submenu .wp-submenu {
+		border-width: 1px;
+		border-style: solid;
+		-webkit-border-bottom-right-radius: 0;
+		-webkit-border-bottom-left-radius: 3px;
+		-webkit-border-top-right-radius: 0;
+		-webkit-border-top-left-radius: 3px;
+		border-bottom-right-radius: 0;
+		border-bottom-left-radius: 3px;
+		border-top-right-radius: 0;
+		border-top-left-radius: 3px;
+	}
+}
+
+/* List table styles */
+.post-com-count-wrapper {
+	font-family: Tahoma, Arial, sans-serif;
+}
+
+.post-com-count {
+	background-image: url('../images/bubble_bg-rtl.gif');
+}
+
+.column-response .post-com-count {
+	float: right;
+	margin-right: 0;
+	margin-left: 5px;
+}
+
+.response-links {
+	float: right;
+}
+
+
+/*------------------------------------------------------------------------------
+  8.0 - Layout Blocks
+------------------------------------------------------------------------------*/
+
+.widefat th {
+	font-family: Tahoma, Arial, sans-serif;
+}
+
+.postbox-container {
+	float: right;
+}
+
+#post-body-content {
+	float: right;
+}
+
+#poststuff #post-body.columns-2 {
+	margin-left: 300px;
+	margin-right: 0;
+}
+
+#post-body.columns-2 #postbox-container-1 {
+	float: left;
+	margin-left: -300px;
+	margin-right: 0;
+}
+
+@media only screen and (max-width: 850px) {
+	#wpbody-content #post-body.columns-2 #postbox-container-1 {
+		margin-left: 0;
+	}
+}
+
+.postbox .handlediv {
+	float: left;
+}
+
+/*------------------------------------------------------------------------------
+  9.0 - Dashboard
+------------------------------------------------------------------------------*/
+
+#the-comment-list p.comment-author img {
+	float: right;
+	margin-right: 0;
+	margin-left: 8px;
+}
+
+/* Browser Nag */
+#dashboard_browser_nag p.browser-update-nag.has-browser-icon {
+	padding-right: 0;
+	padding-left: 125px;
+}
+
+/* Welcome Panel */
+.welcome-panel .welcome-panel-close {
+	right: auto;
+	left: 10px;
+}
+
+.welcome-panel .welcome-panel-close:before {
+	left: auto;
+	right: -12px;
+}
+
+.welcome-panel-content {
+	margin-left: 0;
+	margin-right: 13px;
+}
+
+.welcome-panel .welcome-panel-column {
+	float: right;
+}
+
+.welcome-panel .welcome-panel-column ul {
+	margin-right: 0;
+	margin-left: 1em;
+}
+
+.welcome-panel .welcome-panel-column li {
+	padding-left: 0;
+	padding-right: 2px;
+}
+
+.welcome-panel .welcome-add-page {
+	background-position: right 2px;
+}
+
+.welcome-panel .welcome-edit-page {
+	background-position: right -90px;
+}
+
+.welcome-panel .welcome-learn-more {
+	background-position: right -136px;
+}
+
+.welcome-panel .welcome-comments {
+	background-position: right -182px;
+}
+
+.welcome-panel .welcome-view-site {
+	background-position: right -274px;
+}
+
+.welcome-panel .welcome-widgets-menus {
+	background-position: right -229px;
+	line-height: 14px;
+}
+
+.welcome-panel .welcome-write-blog {
+ 	background-position: right -44px;
+}
+
+.welcome-panel .welcome-icon {
+	padding: 2px 32px 8px 0;
+}
+
+@media screen and (max-width: 870px) {
+	.welcome-panel .welcome-panel-column li {
+		margin-right: 0;
+		margin-left: 13px;
+	}
+
+	.welcome-panel .welcome-icon {
+		padding-right: 25px;
+		padding-left: 0;
+	}
+}
+
+/*------------------------------------------------------------------------------
+  10.0 - List Posts (/Pages/etc)
+------------------------------------------------------------------------------*/
+
+.fixed .column-comments {
+	text-align: right;
+}
+.fixed .column-comments .vers {
+	padding-left: 0;
+	padding-right: 3px;
+}
+.fixed .column-comments a {
+	float: right;
+}
+.sorting-indicator {
+	margin-left: 0;
+	margin-right: 7px;
+}
+th.sortable a span,
+th.sorted a span {
+	float: right;
+}
+
+/* Bulk Actions */
+
+.tablenav-pages a {
+	margin-right: 0;
+	margin-left: 1px;
+}
+.tablenav-pages .next-page {
+	margin-left: 0;
+	margin-right: 2px;
+}
+
+.tablenav a.button-secondary {
+	margin: 3px 0 0 8px;
+}
+
+.tablenav .tablenav-pages {
+	float: left;
+}
+
+.tablenav .displaying-num {
+	margin-right: 0;
+	margin-left: 10px;
+	font-family: Tahoma, Arial, sans-serif;
+	font-style: normal;
+}
+
+.tablenav .actions {
+	padding: 2px 0 0 8px;
+}
+
+.tablenav .actions select {
+	float: right;
+	margin-right: 0;
+	margin-left: 6px;
+}
+
+.tablenav .delete {
+	margin-right: 0;
+	margin-left: 20px;
+}
+
+.view-switch {
+	float: left;
+}
+
+.filter {
+	float: right;
+	margin: -5px 10px 0 0;
+}
+
+.filter .subsubsub {
+	margin-left: 0;
+	margin-right: -10px;
+}
+
+#posts-filter fieldset {
+	float: right;
+	margin: 0 0 1em 1.5ex;
+}
+
+#posts-filter fieldset legend {
+	padding: 0 1px .2em 0;
+}
+
+/*------------------------------------------------------------------------------
+  10.1 - Inline Editing
+------------------------------------------------------------------------------*/
+
+#wpbody-content .inline-edit-row fieldset {
+	float: right;
+}
+
+#wpbody-content .quick-edit-row-page fieldset.inline-edit-col-right .inline-edit-col {
+	border-width: 0 1px 0 0;
+}
+
+#wpbody-content .bulk-edit-row .inline-edit-col-bottom {
+	float: left;
+}
+
+.inline-edit-row fieldset label span.title {
+	float: right;
+}
+
+.inline-edit-row fieldset label span.input-text-wrap {
+	margin-left: 0;
+	margin-right: 5em;
+}
+
+.quick-edit-row-post fieldset.inline-edit-col-right label span.title {
+	padding-right: 0;
+	padding-left: 0.5em;
+}
+
+#wpbody-content .quick-edit-row fieldset .inline-edit-group label.alignleft:first-child {
+	margin-right: 0;
+	margin-left: 0.5em
+}
+
+/*	Styling */
+
+.inline-edit-row fieldset span.title,
+.inline-edit-row fieldset span.checkbox-title {
+	font-family: Tahoma, Arial, sans-serif;
+	font-style: normal;
+}
+
+.inline-edit-row fieldset .inline-edit-date {
+	float: right;
+}
+
+.inline-edit-row fieldset ul.cat-checklist label,
+.inline-edit-row .catshow,
+.inline-edit-row .cathide,
+.inline-edit-row #bulk-titles div {
+	font-family: Tahoma, Arial, sans-serif;
+}
+
+.quick-edit-row-post fieldset label.inline-edit-status {
+	float: right;
+}
+
+#bulk-titles div a {
+	float: right;
+	margin: 3px -2px 0 3px;
+	overflow: hidden;
+	text-indent: -9999px;
+}
+
+
+/*------------------------------------------------------------------------------
+  11.0 - Write/Edit Post Screen
+------------------------------------------------------------------------------*/
+
+#save-action .spinner,
+#show-comments a,
+#show-comments .spinner {
+	float: right;
+}
+
+#titlediv #title-prompt-text,
+#wp-fullscreen-title-prompt-text {
+	right: 0;
+}
+
+#sample-permalink {
+	direction: ltr;
+}
+
+#sample-permalink #editable-post-name {
+	unicode-bidi: embed;
+}
+
+#wp-fullscreen-title-prompt-text {
+	left: auto;
+	right: 0;
+}
+
+#wp-fullscreen-save .spinner,
+#wp-fullscreen-save .fs-saved {
+	float: left;
+}
+
+#edit-slug-box .cancel {
+	margin-right: 0;
+	margin-left: 10px;
+}
+
+.postarea h3 label {
+	float: right;
+}
+
+.submitbox .submit {
+	text-align: right;
+}
+
+.inside-submitbox #post_status {
+	margin: 2px -2px 2px 0;
+}
+
+.submitbox .submit input {
+	margin-right: 0;
+	margin-left: 4px;
+}
+
+#normal-sortables .postbox .submit {
+	float: left;
+}
+
+.taxonomy div.tabs-panel {
+	margin: 0 125px 0 5px;
+}
+
+#side-sortables .comments-box thead th,
+#normal-sortables .comments-box thead th {
+	font-style: normal;
+}
+
+#commentsdiv .spinner {
+	padding-left: 0;
+	padding-right: 5px;
+}
+
+#post-body .add-menu-item-tabs li.tabs {
+	border-width: 1px 1px 1px 0;
+	margin-right: 0;
+	margin-left: -1px;
+}
+
+/* Global classes */
+
+#post-body .tagsdiv #newtag {
+	margin-right: 0;
+	margin-left: 5px;
+}
+
+.autosave-info {
+	padding: 2px 2px 2px 15px;
+	text-align: left;
+}
+
+#post-body .wp_themeSkin .mceStatusbar a.mceResize {
+	background: transparent url('../images/resize-rtl.gif') no-repeat scroll left bottom;
+	cursor: sw-resize;
+}
+
+.curtime #timestamp {
+	background-position: right top;
+	padding-left: 0;
+	padding-right: 18px;
+}
+
+.compat-attachment-fields th {
+	padding-right: 0;
+	padding-left: 10px;
+}
+
+/*------------------------------------------------------------------------------
+  11.1 - Custom Fields
+------------------------------------------------------------------------------*/
+
+/* No RTL for now, this space intentionally left blank */
+
+/*------------------------------------------------------------------------------
+  11.2 - Post Revisions
+------------------------------------------------------------------------------*/
+
+table.diff td, table.diff th {
+	font-family: Consolas, Monaco, monospace;
+}
+
+/*------------------------------------------------------------------------------
+  11.3 - Featured Images
+------------------------------------------------------------------------------*/
+
+#select-featured-image a {
+	float: right;
+}
+
+/*------------------------------------------------------------------------------
+  12.0 - Categories
+------------------------------------------------------------------------------*/
+
+.category-adder {
+	margin-left: 0;
+	margin-right: 120px;
+}
+
+#post-body ul.add-menu-item-tabs {
+	float: right;
+	text-align: left;
+	/* Negative margin for the sake of those without JS: all tabs display */
+	margin: 0 5px 0 -120px;
+}
+
+#post-body ul.add-menu-item-tabs li.tabs {
+	-webkit-border-top-left-radius: 0;
+	-webkit-border-top-right-radius: 3px;
+	-webkit-border-bottom-left-radius: 0;
+	-webkit-border-bottom-right-radius: 3px;
+	border-top-left-radius: 0;
+	border-top-right-radius: 3px;
+	border-bottom-left-radius: 0;
+	border-bottom-right-radius: 3px;
+}
+
+#front-page-warning,
+#front-static-pages ul,
+ul.export-filters,
+.inline-editor ul.cat-checklist ul,
+.categorydiv ul.categorychecklist ul,
+.customlinkdiv ul.categorychecklist ul,
+.posttypediv ul.categorychecklist ul,
+.taxonomydiv ul.categorychecklist ul {
+	margin-left: 0;
+	margin-right: 18px;
+}
+
+#post-body .add-menu-item-tabs li.tabs {
+	border-style: solid solid solid none;
+	border-width: 1px 1px 1px 0;
+	margin-right: 0;
+	margin-left: -1px;
+}
+
+p.help,
+p.description,
+span.description,
+.form-wrap p {
+	font-style: normal;
+	font-family: Tahoma, Arial, sans-serif;
+}
+
+/*------------------------------------------------------------------------------
+  13.0 - Tags
+------------------------------------------------------------------------------*/
+
+.taghint {
+	margin: 15px 12px -24px 0;
+}
+
+#poststuff .tagsdiv .howto {
+	margin: 0 8px 6px 0;
+}
+
+.ac_results li {
+	text-align: right;
+}
+
+.links-table th {
+	text-align: right;
+}
+
+/*------------------------------------------------------------------------------
+  14.0 - Media Screen
+------------------------------------------------------------------------------*/
+
+#wpbody-content .describe th {
+	text-align: right;
+
+}
+
+.describe .media-item-info .A1B1 {
+	padding: 0 10px 0 0;
+}
+
+.media-upload-form td label {
+	margin-left: 6px;
+	margin-right: 2px;
+}
+
+.media-upload-form .align .field label {
+	padding: 0 23px 0 0;
+	margin: 0 3px 0 1em;
+}
+
+.media-upload-form tr.image-size label {
+	margin: 0 5px 0 0;
+}
+
+#wpbody-content .describe p.help {
+	padding: 0 5px 0 0;
+}
+
+.media-item .edit-attachment,
+.media-item .error-div a.dismiss,
+.describe-toggle-on,
+.describe-toggle-off {
+	float: left;
+	margin-right: 0;
+	margin-left: 15px;
+}
+
+.media-item .error-div a.dismiss {
+	padding: 0 15px 0 0;
+}
+
+.media-item .error-div {
+	padding-left: 0;
+	padding-right: 10px;
+}
+
+.media-item .pinkynail {
+	float: right;
+}
+
+.media-item .describe td {
+	padding: 0 0 8px 8px;
+}
+
+.media-item .progress {
+	float: left;
+    margin: 6px 0 0 10px;
+}
+
+/*------------------------------------------------------------------------------
+  14.1 - Media Uploader
+------------------------------------------------------------------------------*/
+
+#find-posts-input {
+	float: right;
+}
+
+#find-posts-search {
+	float: right;
+	margin-right: 3px;
+	margin-left: 4px;
+}
+
+.find-box-search .spinner {
+	left: auto;
+	right: 115px;
+}
+
+#find-posts-response .found-radio {
+	padding: 5px 8px 0 0;
+}
+
+.find-box-search label {
+	padding-right: 0;
+	padding-left: 6px;
+}
+
+.find-box #resize-se {
+	right: auto;
+	left: 1px;
+}
+
+form.upgrade .hint {
+	font-style: normal;
+}
+
+
+/*------------------------------------------------------------------------------
+  14.2 - Image Editor
+------------------------------------------------------------------------------*/
+
+.wp_attachment_image .button,
+.A1B1 .button {
+	float: right;
+}
+
+.wp_attachment_image .spinner,
+.A1B1 .spinner {
+	float: right;
+}
+
+.imgedit-menu div {
+	float: right;
+}
+
+.imgedit-crop {
+	margin: 0;
+}
+
+.imgedit-rleft,
+.imgedit-flipv,
+.imgedit-undo {
+	margin: 0 8px 0 3px;
+}
+
+.imgedit-rright,
+.imgedit-fliph,
+.imgedit-redo {
+	margin: 0 3px;
+}
+
+.imgedit-applyto img {
+	margin: 0 0 0 8px;
+}
+
+.imgedit-help {
+	font-style: normal;
+}
+
+.imgedit-submit-btn {
+	margin-left: 0;
+	margin-right: 20px;
+}
+
+
+/*------------------------------------------------------------------------------
+  15.0 - Comments Screen
+------------------------------------------------------------------------------*/
+
+.form-table th {
+	text-align: right;
+}
+
+.form-table input.tog {
+	margin-right: 0;
+	margin-left: 2px;
+	float: right;
+}
+
+.form-table table.color-palette {
+	float: right;
+}
+
+/* reply to comments */
+
+#replysubmit .spinner,
+.inline-edit-save .spinner {
+	float: left;
+}
+
+#replysubmit .button {
+	margin-right: 0;
+	margin-left: 5px;
+}
+
+#edithead .inside {
+	float: right;
+	padding: 3px 5px 2px 0;
+}
+
+.comment-ays th {
+	border-right-style: none;
+	border-left-style: solid;
+	border-right-width: 0;
+	border-left-width: 1px;
+}
+
+.spam-undo-inside .avatar,
+.trash-undo-inside .avatar {
+	margin-left: 8px;
+}
+
+#comment-status-radio input {
+	margin: 2px 0 5px 3px;
+}
+
+/*------------------------------------------------------------------------------
+  16.0 - Themes
+------------------------------------------------------------------------------*/
+
+h3.available-themes {
+	float: right;
+}
+
+.available-theme {
+	margin-right: 0;
+	margin-left: 10px;
+	padding: 20px 0 20px 20px;
+}
+
+#current-theme .theme-info li,
+.theme-options li,
+.available-theme .action-links li {
+	float: right;
+	padding-right: 0;
+	padding-left: 10px;
+	margin-right: 0;
+	margin-left: 10px;
+	border-right: none;
+	border-left: 1px solid #dfdfdf;
+}
+
+.available-theme .action-links li {
+	padding-left: 8px;
+	margin-left: 8px;
+}
+
+.ie8 .available-theme .action-links li {
+	padding-left: 7px;
+	margin-left: 7px;
+}
+
+#current-theme .theme-info li:last-child,
+.theme-options li:last-child,
+.available-theme .action-links li:last-child {
+	padding-left: 0;
+	margin-right: 0;
+	border-left: 0;
+}
+
+.available-theme .action-links .delete-theme {
+	float: left;
+	margin-left: 0;
+	margin-right: 8px;
+}
+
+.available-theme .action-links p {
+	float: right;
+}
+
+#current-theme.has-screenshot {
+	padding-left: 0;
+	padding-right: 330px;
+}
+
+#current-theme h4 span {
+	margin-left: 0;
+	margin-right: 20px;
+}
+
+#current-theme img {
+	float: right;
+	width: 300px;
+	margin-left: 0;
+	margin-right: -330px;
+}
+
+.theme-options .load-customize {
+	margin-right: 0;
+	margin-left: 30px;
+	float: right;
+}
+
+.theme-options span {
+	float: right;
+	margin-right: 0;
+	margin-left: 10px;
+}
+
+.theme-options ul {
+	float: right;
+}
+
+/* Allow for three-up on 1024px wide screens, e.g. tablets */
+@media only screen and (max-width: 1200px) {
+	#current-theme.has-screenshot {
+		padding-right: 270px;
+	}
+
+	#current-theme img {
+		margin-right: -270px;
+		width: 240px;
+	}
+}
+
+#broken-themes {
+	text-align: right;
+}
+
+/*------------------------------------------------------------------------------
+  16.1 - Custom Header Screen
+------------------------------------------------------------------------------*/
+
+.appearance_page_custom-header .available-headers .default-header {
+	float: right;
+	margin: 0 0 20px 20px;
+}
+
+.appearance_page_custom-header .random-header {
+	margin: 0 0 20px 20px;
+}
+
+.appearance_page_custom-header .available-headers label input,
+.appearance_page_custom-header .random-header label input {
+	margin-right: 0;
+	margin-left: 10px;
+}
+
+/*------------------------------------------------------------------------------
+  16.2 - Custom Background Screen
+------------------------------------------------------------------------------*/
+
+/* No RTL for now, this space intentionally left blank */
+
+
+/*------------------------------------------------------------------------------
+  16.3 - Tabbed Admin Screen Interface (Experimental)
+------------------------------------------------------------------------------*/
+
+.nav-tab {
+	margin: 0 0 -1px 6px;
+}
+
+h2 .nav-tab {
+	font-family: Tahoma, Arial, sans-serif;
+}
+
+
+/*------------------------------------------------------------------------------
+  17.0 - Plugins
+------------------------------------------------------------------------------*/
+
+.plugins .desc ul,
+.plugins .desc ol {
+	margin: 0 2em 0 0;
+}
+
+#wpbody-content .plugins .plugin-title, #wpbody-content .plugins .theme-title {
+	padding-right: 0;
+	padding-left: 12px;
+}
+
+
+/*------------------------------------------------------------------------------
+  18.0 - Users
+------------------------------------------------------------------------------*/
+
+#profile-page .form-table #rich_editing {
+	margin-right: 0;
+	margin-left: 5px
+}
+
+#profile-page #pass1,
+#profile-page #pass2,
+#profile-page #user_login {
+	direction: ltr;
+}
+
+#your-profile legend {
+	font-family: Tahoma, Arial, sans-serif;
+}
+
+/*------------------------------------------------------------------------------
+  19.0 - Tools
+------------------------------------------------------------------------------*/
+
+.pressthis a span {
+	background-position: right 5px;
+	padding: 8px 27px 8px 11px;
+}
+
+.pressthis a:after {
+	right: auto;
+	left: 10px;
+	background: transparent;
+	transform: skew(-20deg) rotate(-6deg);
+	-webkit-transform: skew(-20deg) rotate(-6deg);
+	-moz-transform: skew(-20deg) rotate(-6deg);
+}
+
+
+.pressthis a:hover:after {
+	transform: skew(-20deg) rotate(-9deg);
+	-webkit-transform: skew(-20deg) rotate(-9deg);
+	-moz-transform: skew(-20deg) rotate(-9deg);
+}
+
+/*------------------------------------------------------------------------------
+  20.0 - Settings
+------------------------------------------------------------------------------*/
+
+#utc-time, #local-time {
+	padding-left: 0;
+	padding-right: 25px;
+	font-style: normal;
+	font-family: Tahoma, Arial, sans-serif;
+}
+
+/*------------------------------------------------------------------------------
+  21.0 - Admin Footer
+------------------------------------------------------------------------------*/
+
+#wpfooter {
+	margin-left: 20px;
+}
+
+#wpcontent,
+#wpfooter {
+	margin-right: 165px;
+}
+
+/*------------------------------------------------------------------------------
+  22.0 - About Pages
+------------------------------------------------------------------------------*/
+
+.wrap.about-wrap {
+	margin-left: 40px;
+	margin-right: 20px;
+}
+
+.about-wrap h1,
+.about-text {
+	margin-right: 0;
+	margin-left: 200px;
+}
+
+.about-wrap h2.nav-tab-wrapper {
+	padding-left: 0px;
+	padding-right: 6px;
+}
+
+.about-wrap .wp-badge {
+	right: auto;
+	left: 0;
+}
+
+.about-wrap h2 .nav-tab {
+	margin-right: 0;
+	margin-left: 3px;
+}
+
+.about-wrap .changelog li {
+	margin-left: 0;
+	margin-right: 3em;
+}
+
+.about-wrap .three-col-images .last-feature {
+	float: left;
+}
+
+.about-wrap .three-col-images .first-feature {
+	float: right;
+}
+
+.about-wrap .feature-section.three-col div {
+	margin-right: 0;
+	margin-left: 4.999999999%;
+	float: right;
+}
+
+.about-wrap .feature-section.three-col h4 {
+	text-align: right;
+}
+
+.about-wrap .feature-section.three-col img {
+	margin-right: 5px;
+	margin-left: 0;
+}
+
+.about-wrap .feature-section.three-col .last-feature {
+	margin-left: 0;
+}
+
+.about-wrap .feature-section img {
+	margin: 0 0 10px 0.7%;
+}
+
+.about-wrap .feature-section.images-stagger-right img {
+	float: left;
+	margin: 0 2em 12px 5px;
+}
+
+.about-wrap .feature-section.images-stagger-left img {
+	float: right;
+	margin: 0 5px 12px 2em;
+}
+
+.about-wrap li.wp-person,
+.about-wrap li.wp-person img.gravatar {
+	float: right;
+	margin-right: 0;
+	margin-left: 10px;
+}
+
+@media only screen and (max-width: 768px) {
+	.about-wrap .feature-section img.image-66 {
+		float: none;
+	}
+
+	.about-wrap .feature-section.images-stagger-right img.image-66 {
+		margin-right: 3px;
+	}
+
+	.about-wrap .feature-section.images-stagger-left img.image-66 {
+		margin-left: 3px;
+	}
+}
+
+/*------------------------------------------------------------------------------
+  23.0 - Misc
+------------------------------------------------------------------------------*/
+
+#template div {
+	margin-right: 0;
+	margin-left: 190px;
+}
+
+.column-author img, .column-username img {
+	float: right;
+	margin-right: 0;
+	margin-left: 10px;
+}
+
+.tagchecklist {
+	margin-left: 0;
+	margin-right: 14px;
+}
+
+.tagchecklist strong {
+	margin-left: 0;
+	margin-right: -8px;
+}
+
+.tagchecklist span {
+	margin-right: 0;
+	margin-left: 25px;
+	float: right;
+
+}
+.tagchecklist span a {
+	margin: 6px -9px 0pt 0pt;
+	float: right;
+}
+
+#poststuff h2 {
+	clear: right;
+}
+
+#poststuff h3,
+.metabox-holder h3 {
+	font-family: Tahoma, Arial, sans-serif;
+}
+
+.tool-box .title {
+	font-family: Tahoma, Arial, sans-serif;
+}
+
+#sidemenu {
+	margin: -30px 315px 0 15px;
+	float: left;
+	padding-left: 0;
+	padding-right: 10px;
+}
+#sidemenu a {
+	float: right;
+}
+
+table .vers,
+table .column-visible,
+table .column-rating {
+	text-align: right;
+}
+
+.screen-meta-toggle {
+	right: auto;
+	left: 15px;
+}
+
+.screen-reader-text,
+.screen-reader-text span,
+.ui-helper-hidden-accessible {
+	left: auto;
+	right: -1000em;
+}
+
+.screen-reader-shortcut:focus {
+	left: auto;
+	right: 6px;
+}
+
+/*------------------------------------------------------------------------------
+  24.0  - Dead
+------------------------------------------------------------------------------*/
+
+/* - Not used anywhere in WordPress - verify and then deprecate
+------------------------------------------------------------------------------*/
+
+/* No RTL for now, this space intentionally left blank */
+
+
+/* - Only used once or twice in all of WP - deprecate for global style
+------------------------------------------------------------------------------*/
+
+* html #template div {margin-left: 0;}
+
+/* - Used - but could/should be deprecated with a CSS reset
+------------------------------------------------------------------------------*/
+/* No RTL for now, this space intentionally left blank */
+
+
+/*------------------------------------------------------------------------------
+ 25.0 - TinyMCE tweaks
+		Small tweaks for until tinymce css files are proprely RTLized
+------------------------------------------------------------------------------*/
+#editorcontainer .wp_themeSkin .mceStatusbar {
+	padding-left: 0;
+	padding-right: 5px;
+}
+
+#editorcontainer .wp_themeSkin .mceStatusbar div {
+	float: right;
+}
+
+#editorcontainer .wp_themeSkin .mceStatusbar a.mceResize {
+	float: left;
+}
+
+#content-resize-handle {
+	background: transparent url('../images/resize-rtl.gif') no-repeat scroll left bottom;
+	right: auto;
+	left: 2px;
+	cursor: sw-resize;
+}
+
+/*------------------------------------------------------------------------------
+  26.0 - Full Overlay w/ Sidebar
+------------------------------------------------------------------------------*/
+.wp-full-overlay .wp-full-overlay-sidebar {
+	margin: 0;
+	left: auto;
+	right: 0;
+	border-right: 0;
+	border-left: 1px solid rgba( 0, 0, 0, 0.2 );
+}
+
+.wp-full-overlay-sidebar:after {
+	right: auto;
+	left: 0;
+	box-shadow: inset 5px 0 4px -4px rgba(0, 0, 0, 0.1);
+}
+
+.wp-full-overlay.collapsed,
+.wp-full-overlay.expanded .wp-full-overlay-sidebar {
+	margin-right: 0 !important;
+}
+
+.wp-full-overlay.expanded {
+	margin-right: 300px;
+	margin-left: 0;
+}
+
+.wp-full-overlay.collapsed .wp-full-overlay-sidebar {
+	margin-right: -300px;
+	margin-left: 0;
+}
+
+/* Collapse Button */
+.wp-full-overlay .collapse-sidebar {
+	right: 0;
+	left: auto;
+	margin-right: 15px;
+}
+
+.wp-full-overlay.collapsed .collapse-sidebar {
+	right: 100%;
+}
+
+.wp-full-overlay .collapse-sidebar-arrow {
+	margin-right: 2px;
+	margin-left: 0;
+	background: transparent url('../images/arrows.png') no-repeat 0 -108px;
+}
+
+.wp-full-overlay.collapsed .collapse-sidebar-arrow {
+	background-position: 0 -72px;
+}
+
+.wp-full-overlay .collapse-sidebar-label {
+	right: 100%;
+	left: auto;
+	margin-right: 10px;
+	margin-left: 0;
+}
+
+/*------------------------------------------------------------------------------
+  27.0 - Customize Loader
+------------------------------------------------------------------------------*/
+.install-theme-info .theme-install {
+	float: left;
+}
+
+/* MERGED */
+
+/* global */
+
+/* 2 column liquid layout */
+
+#wpcontent {
+	margin-left: 0;
+	margin-right: 165px;
+}
+
+#wpbody-content {
+	float: right;
+}
+
+#adminmenuwrap {
+	float: right;
+}
+
+#adminmenu {
+	clear: right;
+}
+
+/* inner 2 column liquid layout */
+.inner-sidebar {
+	float: left;
+	clear: left;
+}
+
+.has-right-sidebar #post-body {
+	float: right;
+	clear: right;
+	margin-right: 0;
+	margin-left: -340px;
+}
+
+.has-right-sidebar #post-body-content {
+	margin-right: 0;
+	margin-left: 300px;
+}
+
+/* 2 columns main area */
+
+#col-right {
+	float: left;
+	clear: left;
+}
+
+/* utility classes*/
+.alignleft {
+	float: right;
+}
+
+.alignright {
+	float: left;
+}
+
+.textleft {
+	text-align: right;
+}
+
+.textright {
+	text-align: left;
+}
+
+/* styles for use by people extending the WordPress interface */
+
+body,
+td,
+textarea,
+input,
+select {
+	font-family: Tahoma, Arial, sans-serif;
+}
+
+ul.ul-disc,
+ul.ul-square,
+ol.ol-decimal {
+	margin-left: 0;
+	margin-right: 1.8em;
+}
+
+.subsubsub {
+	float: right;
+}
+
+.widefat thead th:first-of-type {
+	-webkit-border-top-left-radius: 0;
+	-webkit-border-top-right-radius: 3px;
+	border-top-left-radius: 0;
+	border-top-right-radius: 3px;
+}
+
+.widefat thead th:last-of-type {
+	-webkit-border-top-right-radius: 0;
+	-webkit-border-top-left-radius: 3px;
+	border-top-right-radius: 0;
+	border-top-left-radius: 3px;
+}
+.widefat tfoot th:first-of-type {
+	-webkit-border-bottom-left-radius: 0;
+	-webkit-border-bottom-right-radius: 3px;
+	border-bottom-left-radius: 0;
+	border-bottom-right-radius: 3px;
+}
+.widefat tfoot th:last-of-type {
+	-webkit-border-bottom-right-radius: 0;
+	-webkit-border-bottom-left-radius: 3px;
+	border-bottom-right-radius: 0;
+	border-bottom-left-radius: 3px;
+}
+
+.widefat th {
+	text-align: right;
+}
+
+.widefat th input {
+	margin: 0 8px 0 0;
+}
+
+.wrap {
+	margin-right: 0;
+	margin-left: 15px;
+}
+
+.wrap h2,
+.subtitle {
+	font-family: Tahoma, Arial, sans-serif;
+}
+
+.wrap h2 {
+	padding-right: 0;
+	padding-left: 15px;
+}
+
+.subtitle {
+	padding-left: 0;
+	padding-right: 25px;
+}
+
+.wrap .add-new-h2 {
+	font-family: Tahoma, Arial, sans-serif;
+	margin-left: 0;
+	margin-right: 4px;
+}
+
+.wrap h2.long-header {
+	padding-left: 0;
+}
+
+/* dashboard */
+#dashboard-widgets-wrap .has-sidebar {
+	margin-right: 0;
+	margin-left: -51%;
+}
+
+#dashboard-widgets-wrap .has-sidebar .has-sidebar-content {
+	margin-right: 0;
+	margin-left: 51%;
+}
+
+.view-all {
+	right: auto;
+	left: 0;
+}
+
+#dashboard_right_now p.sub,
+#dashboard-widgets h4,
+a.rsswidget,
+#dashboard_plugins h4,
+#dashboard_plugins h5,
+#dashboard_recent_comments .comment-meta .approve,
+#dashboard_right_now td.b,
+#dashboard_right_now .versions a {
+	font-family: Tahoma, Arial, sans-serif;
+}
+
+#dashboard_right_now p.sub  {
+	left:auto;
+	right:15px;
+}
+
+#dashboard_right_now td.b {
+	padding-right: 0;
+	padding-left: 6px;
+	text-align: left;
+}
+
+#dashboard_right_now .t {
+	padding-right: 0;
+	padding-left: 12px;
+}
+
+#dashboard_right_now .table_content {
+	float:right;
+}
+
+#dashboard_right_now .table_discussion {
+	float:left;
+}
+
+#dashboard_right_now a.button {
+	float: left;
+	clear: left;
+}
+
+#dashboard_plugins .inside span {
+	 padding-left: 0;
+	 padding-right: 5px;
+}
+
+#dashboard-widgets h3 .postbox-title-action {
+	right: auto;
+	left: 10px;
+}
+
+.js #dashboard-widgets h3 .postbox-title-action {
+	right: auto;
+	left: 30px;
+}
+
+#the-comment-list .pingback {
+	padding-left: 0 !important;
+	padding-right: 9px !important;
+}
+
+/* Recent Comments */
+#the-comment-list .comment-item {
+	padding: 1em 70px 1em 10px;
+}
+
+#the-comment-list .comment-item .avatar {
+	float: right;
+	margin-left: 0;
+	margin-right: -60px;
+}
+
+/* Feeds */
+.rss-widget cite {
+	text-align: left;
+}
+
+.rss-widget span.rss-date {
+	font-family: Tahoma, Arial, sans-serif;
+	margin-left: 0;
+	margin-right: 3px;
+}
+
+/* QuickPress */
+#dashboard-widgets #dashboard_quick_press form p.submit input {
+	float: right;
+}
+
+#dashboard-widgets #dashboard_quick_press form p.submit #save-post {
+	margin: 0 1px 0 0.7em;
+}
+
+#dashboard-widgets #dashboard_quick_press form p.submit #publish {
+	float: left;
+}
+
+#dashboard-widgets #dashboard_quick_press form p.submit .spinner {
+	margin: 4px 0 0 6px;
+}
+
+/* Recent Drafts */
+#dashboard_recent_drafts h4 abbr {
+	font-family: Tahoma, Arial, sans-serif;
+	margin-left:0;
+	margin-right: 3px;
+}
+
+/* login */
+body.login {
+	font-family: Tahoma, Arial, sans-serif;
+}
+
+.login form {
+	margin-right: 8px;
+	margin-left: 0;
+}
+
+.login form .forgetmenot {
+	float: right;
+}
+
+.login form .submit {
+	float: left;
+}
+
+#login form .submit input {
+	font-family: Tahoma, Arial, sans-serif;
+}
+
+.login #nav,
+.login #backtoblog {
+	margin: 0 16px 0 0;
+}
+
+#login_error,
+.login .message {
+	margin: 0 8px 16px 0;
+}
+
+.login #user_pass,
+.login #user_login,
+.login #user_email {
+	margin-left: 6px;
+	margin-right: 0;
+	direction: ltr;
+}
+
+.login h1 a {
+	text-decoration: none;
+}
+
+.login .button-primary {
+	float: left;
+}
+
+/* nav-menu */
+#nav-menus-frame {
+	margin-right: 300px;
+	margin-left: 0;
+}
+
+#wpbody-content #menu-settings-column {
+	margin-right: -300px;
+	margin-left: 0;
+	float: right;
+}
+
+/* Menu Container */
+#menu-management-liquid {
+	float: right;
+}
+
+#menu-management {
+	margin-left: 20px;
+	margin-right: 0;
+}
+
+.post-body-plain {
+	padding: 10px 0 0 10px;
+}
+
+/* Menu Tabs */
+
+#menu-management .nav-tabs-arrow-left {
+	right: 0;
+	left:auto;
+}
+
+#menu-management .nav-tabs-arrow-right {
+	left: 0;
+	right:auto;
+	text-align: left;
+	font-family: Tahoma, Arial, sans-serif;
+}
+
+#menu-management .nav-tabs {
+	padding-right: 20px;
+	padding-left: 10px;
+}
+
+.js #menu-management .nav-tabs {
+	float: right;
+	margin-right: 0px;
+	margin-left: -400px;
+}
+
+#select-nav-menu-container {
+	text-align: left;
+}
+
+#wpbody .open-label {
+	float:right;
+}
+
+#wpbody .open-label span {
+	padding-left: 10px;
+	padding-right:0;
+}
+
+.js .input-with-default-title {
+	font-style: normal;
+	font-weight: bold;
+}
+
+/* Add Menu Item Boxes */
+.postbox .howto input {
+	float: left;
+}
+#nav-menu-theme-locations .button-controls {
+	text-align: left;
+}
+
+/* Button Primary Actions */
+
+.meta-sep,
+.submitcancel {
+	float: right;
+}
+
+#cancel-save {
+	margin-left: 0;
+	margin-right: 20px;
+}
+
+.button.right, .button-secondary.right, .button-primary.right {
+	float: left;
+}
+
+/* Button Secondary Actions */
+.list-controls {
+	 float: right;
+}
+.add-to-menu {
+	float: left;
+}
+
+/* Custom Links */
+#add-custom-link label span {
+	float: right;
+	padding-left: 5px;
+	padding-right: 0;
+}
+
+.nav-menus-php .howto span {
+	float: right;
+}
+
+.list li .menu-item-title input {
+	margin-left: 3px;
+	margin-right: 0;
+}
+
+/* Nav Menu */
+.menu-item-handle {
+	padding-right: 10px;
+	padding-left: 0;
+}
+.menu-item-edit-active .menu-item-handle {
+	-webkit-border-bottom-left-radius: 0;
+	-webkit-border-bottom-right-radius: 0;
+	border-bottom-left-radius: 0;
+	border-bottom-right-radius: 0;
+}
+.menu-item-handle .item-title {
+	margin-left:13em;
+	margin-right:0;
+}
+.menu-item-handle .item-edit {
+	right: auto;
+	left: -20px;
+}
+
+/* WARNING: The factor of 30px is hardcoded into the nav-menus javascript. */
+.menu-item-depth-0 { margin-right: 0px; margin-left:0;}
+.menu-item-depth-1 { margin-right: 30px; margin-left:0;}
+.menu-item-depth-2 { margin-right: 60px; margin-left:0;}
+.menu-item-depth-3 { margin-right: 90px; margin-left:0;}
+.menu-item-depth-4 { margin-right: 120px; margin-left:0;}
+.menu-item-depth-5 { margin-right: 150px; margin-left:0;}
+.menu-item-depth-6 { margin-right: 180px; margin-left:0;}
+.menu-item-depth-7 { margin-right: 210px; margin-left:0;}
+.menu-item-depth-8 { margin-right: 240px; margin-left:0;}
+.menu-item-depth-9 { margin-right: 270px; margin-left:0;}
+.menu-item-depth-10 { margin-right: 300px; margin-left:0;}
+.menu-item-depth-11 { margin-right: 330px; margin-left:0;}
+
+.menu-item-depth-0 .menu-item-transport { margin-right: 0px; margin-left:0;}
+.menu-item-depth-1 .menu-item-transport { margin-right: -30px; margin-left:0;}
+.menu-item-depth-2 .menu-item-transport { margin-right: -60px; margin-left:0;}
+.menu-item-depth-3 .menu-item-transport { margin-right: -90px; margin-left:0;}
+.menu-item-depth-4 .menu-item-transport { margin-right: -120px; margin-left:0;}
+.menu-item-depth-5 .menu-item-transport { margin-right: -150px; margin-left:0;}
+.menu-item-depth-6 .menu-item-transport { margin-right: -180px; margin-left:0;}
+.menu-item-depth-7 .menu-item-transport { margin-right: -210px; margin-left:0;}
+.menu-item-depth-8 .menu-item-transport { margin-right: -240px; margin-left:0;}
+.menu-item-depth-9 .menu-item-transport { margin-right: -270px; margin-left:0;}
+.menu-item-depth-10 .menu-item-transport { margin-right: -300px; margin-left:0;}
+.menu-item-depth-11 .menu-item-transport { margin-right: -330px; margin-left:0;}
+
+/* Menu item controls */
+.item-type {
+	padding-left: 10px;
+	padding-right:0;
+}
+
+.item-controls {
+	left: 20px;
+	right: auto;
+}
+
+.item-controls .item-order {
+	padding-left: 10px;
+	padding-right: 0;
+}
+
+.item-edit {
+	left: -20px;
+	right:auto;
+	-webkit-border-bottom-right-radius: 3px;
+	-webkit-border-bottom-left-radius: 0;
+	border-bottom-right-radius: 3px;
+	border-bottom-left-radius: 0;
+}
+
+/* Menu editing */
+.menu-item-settings {
+	padding: 10px 10px 10px 0;
+	border-width: 0 1px 1px 1px;
+}
+
+#custom-menu-item-url {
+	direction: ltr;
+}
+
+.link-to-original {
+	font-style: normal;
+	font-weight: bold;
+}
+
+.link-to-original a {
+	padding-right: 4px;
+	padding-left:0;
+}
+
+.menu-item-settings .description-thin,
+.menu-item-settings .description-wide {
+	margin-left: 10px;
+	margin-right:0;
+	float: right;
+}
+
+/* Major/minor publishing actions (classes) */
+.major-publishing-actions .publishing-action {
+	text-align: left;
+	float: left;
+}
+
+.major-publishing-actions .delete-action {
+	text-align: right;
+	float: right;
+	padding-left: 15px;
+	padding-right:0;
+}
+
+.menu-name-label {
+	margin-left: 15px;
+	margin-right:0;
+}
+
+.auto-add-pages {
+	float: right;
+}
+
+/* Star ratings */
+div.star-holder {
+	background: url('../images/stars-rtl.png?ver=20121108') repeat-x bottom right;
+}
+div.star-holder .star-rating {
+	background: url('../images/stars-rtl.png?ver=20121108') repeat-x top right;
+	float: right;
+}
+
+#plugin-information ul#sidemenu {
+	left: auto;
+	right: 0;
+}
+
+#plugin-information h2 {
+	margin-right: 0;
+	margin-left: 200px;
+}
+
+#plugin-information .fyi {
+	margin-left: 5px;
+	margin-right: 20px;
+}
+
+#plugin-information .fyi h2 {
+	margin-left: 0;
+}
+
+#plugin-information .fyi ul {
+	padding: 10px 7px 10px 5px;
+}
+
+#plugin-information #section-screenshots li p {
+	padding-left: 0;
+	padding-right: 20px;
+}
+
+#plugin-information #section-screenshots ol,
+#plugin-information .updated,
+#plugin-information pre {
+	margin-right: 0;
+	margin-left: 215px;
+}
+
+#plugin-information .updated,
+#plugin-information .error {
+	clear: none;
+	direction: rtl;
+}
+
+#plugin-information #section-holder .section {
+	direction: ltr;
+}
+
+/* Editor/Main Column */
+.posting {
+	margin-left: 212px;
+	margin-right: 0;
+	position: relative;
+}
+
+h3.tb {
+	margin-left: 0;
+	margin-right: 5px;
+}
+
+#publish {
+	float: left;
+}
+
+.postbox .handlediv {
+	float: left;
+}
+
+.actions li {
+	float: right;
+	margin-right: 0;
+	margin-left: 10px;
+}
+
+#extra-fields .actions {
+    margin: -23px 0 0 -7px;
+}
+
+/* Photo Styles */
+#img_container a {
+	float: right;
+}
+
+#category-add input,
+#category-add select {
+	font-family: Tahoma, Arial, sans-serif;
+}
+
+/* Tags */
+#tagsdiv #newtag {
+	margin-right: 0;
+	margin-left: 5px;
+}
+
+#tagadd {
+	margin-left: 0;
+	margin-right: 3px;
+}
+
+#tagchecklist span {
+	margin-left: .5em;
+	margin-right: 10px;
+	float: right;
+}
+#tagchecklist span a {
+	margin: 6px -9px 0 0;
+	float: right;
+}
+
+.submit input,
+.button,
+.button-primary,
+.button-secondary,
+#postcustomstuff .submit input {
+	font-family: Tahoma, Arial, sans-serif;
+}
+
+.ac_results li {
+	text-align: right;
+}
+
+#TB_ajaxContent #options {
+	right: auto;
+	left: 25px;
+}
+
+#post_status {
+	margin-left: 0;
+	margin-right: 10px;
+}
+
+/* theme-editor, plugin-editor */
+#templateside {
+	float: left;
+}
+
+#template textarea,
+#docs-list {
+	direction: ltr;
+}
+
+/* theme-install */
+.theme-details .theme-version {
+	float: right;
+}
+
+.theme-details .star-holder {
+	float: left;
+}
+
+.feature-filter .feature-group {
+	float: right;
+}
+
+.feature-filter .feature-group li {
+	padding-right: 0;
+	padding-left: 25px;
+}
+
+/* widgets */
+/* 2 column liquid layout */
+div.widget-liquid-left {
+	float: right;
+	clear: right;
+	margin-right: 0;
+	margin-left: -325px;
+}
+
+div#widgets-left {
+	margin-right: 5px;
+	margin-left: 325px;
+}
+
+div.widget-liquid-right {
+	float: left;
+	clear: left;
+}
+
+.inactive-sidebar .widget {
+	float: right;
+}
+
+div.sidebar-name h3 {
+	font-family: Tahoma, Arial, sans-serif;
+}
+
+#widget-list .widget {
+	float: right;
+}
+
+.inactive-sidebar .widget-placeholder {
+	float: right;
+}
+
+.widget-top .widget-title-action {
+	float: left;
+}
+
+.widget-control-edit {
+	padding: 0 0 0 8px;
+}
+
+.sidebar-name-arrow {
+	float: left;
+}
+
+/* Press This */
+.press-this-sidebar {
+	float: left;
+}
+
+.press-this #header-logo,
+.press-this #wphead h1 {
+	float: right;
+}
+
+/* RTL */
+.ltr {
+	direction: ltr;
+}
+
+/**
+ * HiDPI Displays
+ */
+@media print,
+  (-o-min-device-pixel-ratio: 5/4),
+  (-webkit-min-device-pixel-ratio: 1.25),
+  (min-resolution: 120dpi) {
+	.post-com-count {
+		background-image: url('../images/bubble_bg-rtl-2x.gif');
+		background-size: 18px 100px;
+	}
+
+	#content-resize-handle, #post-body .wp_themeSkin .mceStatusbar a.mceResize {
+		background: transparent url('../images/resize-rtl-2x.gif') no-repeat scroll right bottom;
+		background-size: 11px 11px;
+	}
+
+	.wp-full-overlay .collapse-sidebar-arrow {
+		background-image: url('../images/arrows-2x.png');
+		background-size: 15px 123px;
+	}
+
+	div.star-holder {
+		background: url('../images/stars-rtl-2x.png?ver=20121108') repeat-x bottom right;
+		background-size: 21px 37px;
+	}
+
+	div.star-holder .star-rating {
+		background: url('../images/stars-rtl-2x.png?ver=20121108') repeat-x top right;
+		background-size: 21px 37px;
+	}
+
+	#post-body .wp_themeSkin .mceStatusbar a.mceResize,
+	#content-resize-handle {
+		background: transparent url('../images/resize-rtl-2x.gif') no-repeat scroll left bottom;
+	}
+}
+
+/* =Localized CSS
+-------------------------------------------------------------- */
+
+/* he_IL: Remove Tahoma from the font stack. Arial is best for Hebrew. */
+body.locale-he-il,
+.locale-he-il .quicktags, .locale-he-il .search,
+.locale-he-il .howto,
+.locale-he-il #adminmenu .awaiting-mod,
+.locale-he-il #adminmenu span.update-plugins,
+.locale-he-il #sidemenu li a span.update-plugins,
+.locale-he-il .post-com-count-wrapper,
+.locale-he-il .widefat th,
+.locale-he-il .tablenav .displaying-num,
+.locale-he-il .inline-edit-row fieldset span.title,
+.locale-he-il .inline-edit-row fieldset span.checkbox-title,
+.locale-he-il .inline-edit-row fieldset ul.cat-checklist label,
+.locale-he-il .inline-edit-row .catshow,
+.locale-he-il .inline-edit-row .cathide,
+.locale-he-il .inline-edit-row #bulk-titles div,
+.locale-he-il p.help,
+.locale-he-il p.description,
+.locale-he-il span.description,
+.locale-he-il .form-wrap p,
+.locale-he-il h2 .nav-tab,
+.locale-he-il #your-profile legend,
+.locale-he-il #utc-time, .locale-he-il #local-time,
+.locale-he-il #poststuff h3,
+.locale-he-il .metabox-holder h3,
+.locale-he-il .tool-box .title,
+.locale-he-il td,
+.locale-he-il textarea,
+.locale-he-il input,
+.locale-he-il select,
+.locale-he-il .wrap h2,
+.locale-he-il .subtitle,
+.locale-he-il .wrap .add-new-h2,
+.locale-he-il #dashboard_right_now p.sub,
+.locale-he-il #dashboard-widgets h4,
+.locale-he-il a.rsswidget,
+.locale-he-il #dashboard_plugins h4,
+.locale-he-il #dashboard_plugins h5,
+.locale-he-il #dashboard_recent_comments .comment-meta .approve,
+.locale-he-il #dashboard_right_now td.b,
+.locale-he-il #dashboard_right_now .versions a,
+.locale-he-il .rss-widget span.rss-date,
+.locale-he-il #dashboard_recent_drafts h4 abbr,
+body.login.locale-he-il,
+.locale-he-il #login form .submit input,
+.locale-he-il #menu-management .nav-tabs-arrow-right,
+.locale-he-il #category-add input,
+.locale-he-il #category-add select,
+.locale-he-il .submit input,
+.locale-he-il .button,
+.locale-he-il .button-primary,
+.locale-he-il .button-secondary,
+.locale-he-il #postcustomstuff .submit input,
+.locale-he-il div.sidebar-name h3 {
+	font-family: Arial, sans-serif;
+}
+
+/* he_IL: Have <em> be bold rather than italic. */
+.locale-he-il em {
+	font-style: normal;
+	font-weight: bold;
+}
--- a/web/wp-admin/css/wp-admin-rtl.dev.css	Wed Dec 19 12:35:13 2012 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,2532 +0,0 @@
-/*------------------------------------------------------------------------------
-
-
-Hello, this is the RTL version of the  main WordPress admin CSS file.
-All the important stuff is in here.
-
-
-TABLE OF CONTENTS:
-------------------
- 1.0 - Text Elements
- 2.0 - Forms
- 3.0 - Actions
- 4.0 - Notifications
- 5.0 - TinyMCE
- 6.0 - Admin Header
-	6.1 - Screen Options Tabs
- 7.0 - Main Navigation
- 8.0 - Layout Blocks
- 9.0 - Dashboard
-10.0 - List Posts
-	10.1 - Inline Editing
-11.0 - Write/Edit Post Screen
-	11.1 - Custom Fields
-	11.2 - Post Revisions
-12.0 - Categories
-13.0 - Tags
-14.0 - Media Screen
-	14.1 - Media Uploader
-	14.2 - Image Editor
-15.0 - Comments Screen
-16.0 - Themes
-	16.1 - Custom Header
-	16.2 - Custom Background
-	16.3 - Tabbed Admin Screen Interface
-17.0 - Plugins
-18.0 - Users
-19.0 - Tools
-20.0 - Settings
-21.0 - Admin Footer
-22.0 - About Pages
-23.0 - Misc
-24.0 - Dead
-25.0 - TinyMCE tweaks
-26.0 - Full Overlay w/ Sidebar
-27.0 - Customize Loader
-
-
-------------------------------------------------------------------------------*/
-
-
-/*------------------------------------------------------------------------------
-  1.0 - Text Styles
-------------------------------------------------------------------------------*/
-
-ol {
-	margin-left: 0;
-	margin-right: 2em;
-}
-
-.code, code {
-	font-family: monospace;
-	direction: ltr;
-}
-
-.quicktags, .search {
-	font: 12px Tahoma, Arial, sans-serif;
-}
-
-.icon32 {
-	float: right;
-	margin-right: 0;
-	margin-left: 8px;
-}
-
-.icon16 {
-	float: right;
-	margin-right: -8px;
-	margin-left: 0;
-}
-
-.howto {
-	font-style: normal;
-	font-family: Tahoma, Arial, sans-serif;
-}
-
-p.install-help {
-	font-style: normal;
-}
-
-
-/*------------------------------------------------------------------------------
-  2.0 - Forms
-------------------------------------------------------------------------------*/
-
-#doaction,
-#doaction2,
-#post-query-submit {
-	margin-right: 0;
-	margin-left: 8px;
-}
-
-#timezone_string option {
-	margin-left: 0;
-	margin-right: 1em;
-}
-
-#pass-strength-result {
-	float: right;
-	margin: 13px 1px 5px 5px;
-}
-
-p.search-box {
-	float: left;
-}
-
-input[type=password] {
-	direction: ltr;
-}
-
-input[type="text"].ui-autocomplete-loading {
-	background: transparent url('../images/loading.gif') no-repeat left center;
-}
-
-ul#add-to-blog-users {
-	margin: 0 14px 0 0;
-}
-
-.ui-autocomplete li {
-	text-align: right;
-}
-
-/*------------------------------------------------------------------------------
-  3.0 - Actions
-------------------------------------------------------------------------------*/
-
-#delete-action {
-	float: right;
-}
-
-#publishing-action {
-	float: left;
-}
-
-#post-body .misc-pub-section {
-	border-right:0;
-	border-left-width: 1px;
-	border-left-style: solid;
-}
-
-#post-body .misc-pub-section-last {
-	border-left: 0;
-}
-
-#minor-publishing-actions {
-	padding: 10px 8px 2px 10px;
-	text-align: left;
-}
-
-#save-post {
-	float: right;
-}
-
-#minor-publishing .ajax-loading {
-	padding: 3px 4px 0 0;
-	float: right;
-}
-
-.preview {
-	float: left;
-}
-
-#sticky-span {
-	margin-left: 0;
-	margin-right: 18px;
-}
-
-.side-info ul {
-	padding-left: 0;
-	padding-right: 18px;
-}
-
-td.action-links,
-th.action-links {
-	text-align: left;
-}
-
-.describe .del-link {
-	padding-left: 0;
-	padding-right: 5px;
-}
-
-
-/*------------------------------------------------------------------------------
-  4.0 - Notifications
-------------------------------------------------------------------------------*/
-
-form.upgrade .hint {
-	font-style: normal;
-}
-
-#ajax-response.alignleft {
-	margin-left: 0;
-	margin-right: 2em;
-}
-
-
-/*------------------------------------------------------------------------------
-  5.0 - TinyMCE
-------------------------------------------------------------------------------*/
-
-#quicktags {
-	background-position: right top;
-}
-
-#ed_reply_toolbar input {
-	margin: 1px 1px 1px 2px;
-}
-
-/*------------------------------------------------------------------------------
-  6.0 - Admin Header
-------------------------------------------------------------------------------*/
-#wphead {
-	height: 32px;
-	margin-left: 15px;
-	margin-right: 2px;
-}
-
-#header-logo {
-	float: right;
-}
-
-#wphead h1 {
-	float: right;
-}
-
-/*------------------------------------------------------------------------------
-  6.1 - Screen Options Tabs
-------------------------------------------------------------------------------*/
-
-#screen-meta-links {
-	margin-right: 0;
-	margin-left: 24px;
-}
-
-#screen-meta {
-	margin-right: 5px;
-	margin-left: 15px;
-}
-
-#screen-options-link-wrap,
-#contextual-help-link-wrap {
-	float: left;
-	margin-left: 0;
-	margin-right: 6px;
-}
-
-#screen-meta-links a.show-settings {
-	padding-right: 6px;
-	padding-left: 16px;
-}
-
-.toggle-arrow {
-	background-position: top right;
-}
-.toggle-arrow-active {
-	background-position: bottom right;
-}
-
-.metabox-prefs label {
-	padding-right: 0;
-	padding-left: 15px;
-}
-
-.metabox-prefs label input {
-	margin-right: 2px;
-	margin-left: 5px;
-}
-
-/*------------------------------------------------------------------------------
-  6.2 - Help Menu
-------------------------------------------------------------------------------*/
-
-#contextual-help-wrap {
-	margin-left: 0;
-	margin-right: -4px;
-}
-
-#contextual-help-back {
-	left: 170px;
-	right: 150px;
-}
-
-#contextual-help-wrap.no-sidebar #contextual-help-back {
-	left: 0;
-	right: 150px;
-
-	border-right-width: 1px;
-	border-left-width: 0;
-	-webkit-border-bottom-right-radius: 0;
-	border-bottom-right-radius: 0;
-	-webkit-border-bottom-left-radius: 2px;
-	border-bottom-left-radius: 2px;
-}
-
-.contextual-help-tabs {
-	float: right;
-}
-
-.contextual-help-tabs a {
-	padding-left: 5px;
-	padding-right: 12px;
-}
-
-.contextual-help-tabs .active {
-	margin-right: 0;
-	margin-left: -1px;
-}
-
-.contextual-help-tabs .active,
-.contextual-help-tabs-wrap {
-	border-left: 0;
-	border-right-width: 1px;
-}
-
-.help-tab-content {
-	margin-right: 0;
-	margin-left: 22px;
-}
-
-.help-tab-content li {
-	margin-left: 0;
-	margin-right: 18px;
-}
-
-.contextual-help-sidebar {
-	float: left;
-	padding-right: 12px;
-	padding-left: 8px;
-}
-
-/*------------------------------------------------------------------------------
-  7.0 - Main Navigation (Right Menu) (RTL: Left Menu)
-------------------------------------------------------------------------------*/
-
-#adminmenuback,
-#adminmenuwrap {
-	border-width: 0 0 0 1px;
-}
-
-#adminmenushadow {
-	right: auto;
-	left: 0;
-}
-
-#adminmenu li .wp-submenu {
-	left: auto;
-	right: 146px;
-}
-
-.folded #adminmenu .wp-submenu,
-.folded #adminmenu .wp-has-current-submenu .wp-submenu {
-	left: auto;
-	right: 26px;
-}
-
-#adminmenu .wp-submenu.sub-open,
-#adminmenu li.focused.wp-not-current-submenu .wp-submenu,
-.folded #adminmenu li.focused.wp-has-current-submenu .wp-submenu,
-.folded #adminmenu .wp-has-current-submenu .wp-submenu.sub-open,
-.no-js #adminmenu .wp-has-submenu:hover .wp-submenu,
-.no-js.folded #adminmenu .wp-has-current-submenu:hover .wp-submenu {
-	padding: 0 0 8px 8px;
-}
-
-#adminmenu div.wp-menu-image {
-	float: right;
-}
-
-#adminmenu li li {
-	margin-left: 0;
-	margin-right: 8px
-}
-
-#adminmenu .wp-submenu a,
-#adminmenu li li a,
-.folded #adminmenu .wp-not-current-submenu li a {
-	padding-left: 0;
-	padding-right: 12px;
-}
-
-#adminmenu .wp-not-current-submenu li a {
-	padding-left: 0;
-	padding-right: 18px;
-}
-
-.folded #adminmenu li li {
-	margin-left: inherit;
-	margin-right: 0
-}
-
-.folded #adminmenu li li a {
-	padding-left: inherit;
-	padding-right: 0
-}
-
-.wp-menu-arrow {
-	right: 0;
-
-	-moz-transform:    translate( -139px );
-	-webkit-transform: translate( -139px );
-	-o-transform:      translate( -139px );
-	-ms-transform:     translate( -139px );
-	transform:         translate( -139px );
-}
-
-.ie8 .wp-menu-arrow {
-	right: -20px;
-}
-
-#adminmenu .wp-menu-arrow div {
-	left: -8px;
-	width: 16px;
-}
-
-#adminmenu li.wp-not-current-submenu .wp-menu-arrow {
-	-moz-transform:    translate( -138px );
-	-webkit-transform: translate( -138px );
-	-o-transform:      translate( -138px );
-	-ms-transform:     translate( -138px );
-	transform:         translate( -138px );
-}
-
-.folded .wp-menu-arrow {
-	-moz-transform:    translate( -27px );
-	-webkit-transform: translate( -27px );
-	-o-transform:      translate( -27px );
-	-ms-transform:     translate( -27px );
-	transform:         translate( -27px );
-}
-
-#adminmenu .wp-not-current-submenu .wp-menu-arrow div {
-    border-style: solid solid none none;
-    border-width: 1px 1px 0 0;
-}
-
-#adminmenu .wp-menu-image img {
-	float: right;
-	padding: 5px 2px 0 0;
-}
-
-#adminmenu .wp-submenu .wp-submenu-head {
-	padding: 6px 10px 5px 4px;
-}
-
-#adminmenu li .wp-submenu-wrap {
-	border-width: 1px 0 1px 1px;
-	border-style: solid none solid solid;
-	-webkit-border-bottom-right-radius: 0;
-	-webkit-border-bottom-left-radius: 3px;
-	-webkit-border-top-right-radius: 0;
-	-webkit-border-top-left-radius: 3px;
-	border-bottom-right-radius: 0;
-	border-bottom-left-radius: 3px;
-	border-top-right-radius: 0;
-	border-top-left-radius: 3px;
-}
-
-.folded #adminmenu .wp-submenu ul {
-	border-width: 0 1px 0 0;
-}
-
-.folded #adminmenu .wp-submenu a {
-	padding-left: 0;
-	padding-right: 10px;
-}
-
-.folded #adminmenu a.wp-has-submenu {
-	margin-left: 0;
-	margin-right: 40px;
-}
-
-#adminmenu .wp-menu-toggle {
-	clear: left;
-	float: left;
-	padding: 1px 0 0 2px;
-}
-
-#adminmenu .awaiting-mod,
-#adminmenu span.update-plugins,
-#sidemenu li a span.update-plugins {
-	font-family: Tahoma, Arial, sans-serif;
-	margin-left: 0;
-	margin-right: 7px;
-}
-
-#collapse-button {
-	float: right;
-}
-
-/* Auto-folding of the admin menu */
-@media only screen and (max-width: 900px) {
-	#adminmenu li .wp-submenu,
-	#adminmenu .wp-has-current-submenu .wp-submenu {
-		left: auto;
-		right: 26px;
-	}
-
-	#adminmenu li.focused.wp-has-current-submenu .wp-submenu,
-	#adminmenu .wp-has-current-submenu .wp-submenu.sub-open {
-		padding: 0 0 8px 8px;
-	}
-
-	.folded #adminmenu .wp-not-current-submenu li a {
-		padding-left: 0;
-		padding-right: 12px;
-	}
-
-	#adminmenu li li,
-	#adminmenu li li a {
-		padding-left: inherit;
-		padding-right: 0
-	}
-
-	.wp-menu-arrow {
-		-moz-transform:    translate( -27px );
-		-webkit-transform: translate( -27px );
-		-o-transform:      translate( -27px );
-		-ms-transform:     translate( -27px );
-		transform:         translate( -27px );
-	}
-
-	#adminmenu .wp-submenu ul {
-		border-width: 0 1px 0 0;
-	}
-
-	#adminmenu .wp-submenu a {
-		padding-left: 0;
-		padding-right: 10px;
-	}
-
-	#adminmenu a.wp-has-submenu {
-		margin-left: 0;
-		margin-right: 40px;
-	}
-
-	body #wpcontent {
-		margin-left: 0;
-		margin-right: 52px;
-	}
-
-	body .wp-admin #footer {
-		margin-left: 15px;
-		margin-right: 52px;
-	}
-}
-
-/* List table styles */
-.post-com-count-wrapper {
-	font-family: Tahoma, Arial, sans-serif;
-}
-
-.column-response .post-com-count {
-	float: right;
-	margin-right: 0;
-	margin-left: 5px;
-}
-
-.response-links {
-	float: right;
-}
-
-
-/*------------------------------------------------------------------------------
-  8.0 - Layout Blocks
-------------------------------------------------------------------------------*/
-
-.widefat th {
-	font-family: Tahoma, Arial, sans-serif;
-}
-
-.widefat td p {
-	margin: 2px 0 0.8em;
-}
-
-.postbox-container {
-	float: right;
-}
-
-.postbox .handlediv {
-	float: left;
-}
-
-/*------------------------------------------------------------------------------
-  9.0 - Dashboard
-------------------------------------------------------------------------------*/
-
-#the-comment-list p.comment-author img {
-	float: right;
-	margin-right: 0;
-	margin-left: 8px;
-}
-
-/* Browser Nag */
-#dashboard_browser_nag p.browser-update-nag.has-browser-icon {
-	padding-right: 0;
-	padding-left: 125px;
-}
-
-.welcome-panel .welcome-panel-close {
-	right: auto;
-	left: 10px;
-}
-
-.welcome-panel .welcome-panel-close:before {
-	left: auto;
-	right: -12px;
-}
-
-.welcome-panel .wp-badge {
-	float: right;
-}
-
-.welcome-panel-content .about-description, .welcome-panel h3 {
-	margin-left: 0;
-	margin-right: 190px;
-}
-
-.welcome-panel .welcome-panel-column {
-	margin: 0 -25px 0 5%;
-	padding-left: 0;
-	padding-right: 25px;
-	float: right;
-}
-
-.welcome-panel .welcome-panel-column.welcome-panel-last {
-	margin-right: auto;
-	padding-right: 0;
-	margin-left: 0;
-}
-
-.welcome-panel h4 .icon16 {
-	margin-left: 0;
-	margin-right: -32px;
-}
-
-.welcome-panel .welcome-panel-column-container {
-	padding: 0 25px 0 0;
-}
-
-.welcome-panel .welcome-panel-column ul {
-	margin: 1.6em 1.3em 1em 1em;
-}
-
-.welcome-panel .welcome-panel-column li {
-	padding-left: 0;
-	padding-right: 2px;
-}
-
-/*------------------------------------------------------------------------------
-  10.0 - List Posts (/Pages/etc)
-------------------------------------------------------------------------------*/
-
-.fixed .column-comments {
-	text-align: right;
-}
-.fixed .column-comments .vers {
-	padding-left: 0;
-	padding-right: 3px;
-}
-.fixed .column-comments a {
-	float: right;
-}
-.sorting-indicator {
-	margin-left: 0;
-	margin-right: 7px;
-}
-th.sortable a span,
-th.sorted a span {
-	float: right;
-}
-
-/* Bulk Actions */
-
-.tablenav-pages a {
-	margin-right: 0;
-	margin-left: 1px;
-}
-.tablenav-pages .next-page {
-	margin-left: 0;
-	margin-right: 2px;
-}
-
-.tablenav a.button-secondary {
-	margin: 3px 0 0 8px;
-}
-
-.tablenav .tablenav-pages {
-	float: left;
-}
-
-.tablenav .displaying-num {
-	margin-right: 0;
-	margin-left: 10px;
-	font-family: Tahoma, Arial, sans-serif;
-	font-style: normal;
-}
-
-.tablenav .actions {
-	padding: 2px 0 0 8px;
-}
-
-.tablenav .delete {
-	margin-right: 0;
-	margin-left: 20px;
-}
-
-.view-switch {
-	float: left;
-}
-
-.filter {
-	float: right;
-	margin: -5px 10px 0 0;
-}
-
-.filter .subsubsub {
-	margin-left: 0;
-	margin-right: -10px;
-}
-
-#posts-filter fieldset {
-	float: right;
-	margin: 0 0 1em 1.5ex;
-}
-
-#posts-filter fieldset legend {
-	padding: 0 1px .2em 0;
-}
-
-/*------------------------------------------------------------------------------
-  10.1 - Inline Editing
-------------------------------------------------------------------------------*/
-
-#wpbody-content .inline-edit-row fieldset {
-	float: right;
-}
-
-#wpbody-content .quick-edit-row-page fieldset.inline-edit-col-right .inline-edit-col {
-	border-width: 0 1px 0 0;
-}
-
-#wpbody-content .bulk-edit-row .inline-edit-col-bottom {
-	float: left;
-}
-
-.inline-edit-row fieldset label span.title {
-	float: right;
-}
-
-.inline-edit-row fieldset label span.input-text-wrap {
-	margin-left: 0;
-	margin-right: 5em;
-}
-
-.quick-edit-row-post fieldset.inline-edit-col-right label span.title {
-	padding-right: 0;
-	padding-left: 0.5em;
-}
-
-#wpbody-content .quick-edit-row fieldset .inline-edit-group label.alignleft:first-child {
-	margin-right: 0;
-	margin-left: 0.5em
-}
-
-/*	Styling */
-
-.inline-edit-row fieldset span.title,
-.inline-edit-row fieldset span.checkbox-title {
-	font-family: Tahoma, Arial, sans-serif;
-	font-style: normal;
-}
-
-.inline-edit-row fieldset .inline-edit-date {
-	float: right;
-}
-
-.inline-edit-row fieldset ul.cat-checklist label,
-.inline-edit-row .catshow,
-.inline-edit-row .cathide,
-.inline-edit-row #bulk-titles div {
-	font-family: Tahoma, Arial, sans-serif;
-}
-
-.quick-edit-row-post fieldset label.inline-edit-status {
-	float: right;
-}
-
-#bulk-titles div a {
-	float: right;
-	margin: 3px -2px 0 3px;
-	overflow: hidden;
-	text-indent: -9999px;
-}
-
-
-/*------------------------------------------------------------------------------
-  11.0 - Write/Edit Post Screen
-------------------------------------------------------------------------------*/
-/* structural/layout */
-#post-body-content {
-	float: right;
-}
-
-#poststuff #post-body.columns-2 {
-	margin-left: 300px;
-	margin-right: 0;
-}
-
-#post-body.columns-2 #postbox-container-1 {
-	float: left;
-	margin-left: -300px;
-	margin-right: 0;
-}
-
-@media only screen and (max-width: 850px) {
-	#wpbody-content #post-body.columns-2 #postbox-container-1 {
-		margin-left: 0;
-	}
-}
-
-#titlediv #title-prompt-text,
-#wp-fullscreen-title-prompt-text {
-	right:0;
-}
-
-#sample-permalink {
-	direction:ltr;
-}
-
-#sample-permalink #editable-post-name {
-	unicode-bidi:embed;
-}
-#wp-fullscreen-title-prompt-text {
-	left: auto;
-	right: 0;
-}
-
-.postarea h3 label {
-	float: right;
-}
-
-.submitbox .submit {
-	text-align: right;
-}
-
-.inside-submitbox #post_status {
-	margin: 2px -2px 2px 0;
-}
-
-.submitbox .submit input {
-	margin-right: 0;
-	margin-left: 4px;
-}
-
-#normal-sortables .postbox .submit {
-	float: left;
-}
-
-.taxonomy div.tabs-panel {
-	margin: 0 125px 0 5px;
-}
-
-#side-sortables .comments-box thead th,
-#normal-sortables .comments-box thead th {
-	font-style: normal;
-}
-
-#commentsdiv img.waiting {
-	padding-left: 0;
-	padding-right: 5px;
-}
-
-#post-body .add-menu-item-tabs li.tabs {
-	border-width: 1px 1px 1px 0;
-	margin-right: 0;
-	margin-left: -1px;
-}
-
-/* Global classes */
-
-#post-body .tagsdiv #newtag {
-	margin-right: 0;
-	margin-left: 5px;
-}
-
-.autosave-info {
-	padding: 2px 2px 2px 15px;
-	text-align: left;
-}
-
-#post-body .wp_themeSkin .mceStatusbar a.mceResize {
-	background: transparent url(../images/resize-rtl.gif) no-repeat scroll left bottom;
-	cursor: sw-resize;
-}
-
-.curtime #timestamp {
-	background-position: right top;
-	padding-left: 0;
-	padding-right: 18px;
-}
-
-/*------------------------------------------------------------------------------
-  11.1 - Custom Fields
-------------------------------------------------------------------------------*/
-
-#postcustomstuff table input,
-#postcustomstuff table select,
-#postcustomstuff table textarea {
-	margin: 8px 8px 8px 0;
-}
-
-/*------------------------------------------------------------------------------
-  11.2 - Post Revisions
-------------------------------------------------------------------------------*/
-
-table.diff td, table.diff th {
-	font-family: Consolas, Monaco, monospace;
-}
-
-/*------------------------------------------------------------------------------
-  12.0 - Categories
-------------------------------------------------------------------------------*/
-
-.category-adder {
-	margin-left: 0;
-	margin-right: 120px;
-}
-
-#post-body ul.add-menu-item-tabs {
-	float: right;
-	text-align: left;
-	/* Negative margin for the sake of those without JS: all tabs display */
-	margin: 0 5px 0 -120px;
-}
-
-#post-body ul.add-menu-item-tabs li.tabs {
-	-webkit-border-top-left-radius: 0;
-	-webkit-border-top-right-radius: 3px;
-	-webkit-border-bottom-left-radius: 0;
-	-webkit-border-bottom-right-radius: 3px;
-	border-top-left-radius: 0;
-	border-top-right-radius: 3px;
-	border-bottom-left-radius: 0;
-	border-bottom-right-radius: 3px;
-}
-
-#front-page-warning,
-#front-static-pages ul,
-ul.export-filters,
-.inline-editor ul.cat-checklist ul,
-.categorydiv ul.categorychecklist ul,
-.customlinkdiv ul.categorychecklist ul,
-.posttypediv ul.categorychecklist ul,
-.taxonomydiv ul.categorychecklist ul {
-	margin-left: 0;
-	margin-right: 18px;
-}
-
-#post-body .add-menu-item-tabs li.tabs {
-	border-style: solid solid solid none;
-	border-width: 1px 1px 1px 0;
-	margin-right: 0;
-	margin-left: -1px;
-}
-
-p.help,
-p.description,
-span.description,
-.form-wrap p {
-	font-style: normal;
-	font-family: Tahoma, Arial, sans-serif;
-}
-
-/*------------------------------------------------------------------------------
-  13.0 - Tags
-------------------------------------------------------------------------------*/
-
-.taghint {
-	margin: 15px 12px -24px 0;
-}
-
-#poststuff .tagsdiv .howto {
-	margin: 0 8px 6px 0;
-}
-
-.ac_results li {
-	text-align: right;
-}
-
-.links-table th {
-	text-align: right;
-}
-
-/*------------------------------------------------------------------------------
-  14.0 - Media Screen
-------------------------------------------------------------------------------*/
-
-#wpbody-content .describe th {
-	text-align: right;
-
-}
-
-.describe .media-item-info .A1B1 {
-	padding: 0 10px 0 0;
-}
-
-.media-upload-form td label {
-	margin-left: 6px;
-	margin-right: 2px;
-}
-
-.media-upload-form .align .field label {
-	padding: 0 23px 0 0;
-	margin: 0 3px 0 1em;
-}
-
-.media-upload-form tr.image-size label {
-	margin: 0 5px 0 0;
-}
-
-#wpbody-content .describe p.help {
-	padding: 0 5px 0 0;
-}
-
-.media-item .error-div a.dismiss,
-.describe-toggle-on,
-.describe-toggle-off {
-	float: left;
-	margin-right: 0;
-	margin-left: 15px;
-}
-
-.media-item .error-div a.dismiss {
-	padding: 0 15px 0 0;
-}
-
-.media-item .error-div {
-	padding-left: 0;
-	padding-right: 10px;
-}
-
-.media-item .pinkynail {
-	float: right;
-}
-
-.media-item .describe td {
-	padding: 0 0 8px 8px;
-}
-
-.media-item .progress {
-	float: left;
-    margin: 6px 0 0 10px;
-}
-
-/*------------------------------------------------------------------------------
-  14.1 - Media Uploader
-------------------------------------------------------------------------------*/
-
-#find-posts-response .found-radio {
-	padding: 5px 8px 0 0;
-}
-
-.find-box-search label {
-	padding-right: 0;
-	padding-left: 6px;
-}
-
-.find-box #resize-se {
-	right: auto;
-	left: 1px;
-}
-
-form.upgrade .hint {
-	font-style: normal;
-}
-
-
-/*------------------------------------------------------------------------------
-  14.2 - Image Editor
-------------------------------------------------------------------------------*/
-
-.imgedit-menu div {
-	float: right;
-}
-
-.imgedit-help {
-	font-style: normal;
-}
-
-.imgedit-submit-btn {
-	margin-left: 0;
-	margin-right: 20px;
-}
-
-
-/*------------------------------------------------------------------------------
-  15.0 - Comments Screen
-------------------------------------------------------------------------------*/
-
-.form-table th {
-	text-align: right;
-}
-
-.form-table input.tog {
-	margin-right: 0;
-	margin-left: 2px;
-	float: right;
-}
-
-.form-table table.color-palette {
-	float: right;
-}
-
-/* reply to comments */
-
-#replysubmit img.waiting,
-.inline-edit-save img.waiting {
-	float: left;
-}
-
-#replysubmit .button {
-	margin-right: 0;
-	margin-left: 5px;
-}
-
-#edithead .inside {
-	float: right;
-	padding: 3px 5px 2px 0;
-}
-
-.comment-ays th {
-	border-right-style: none;
-	border-left-style: solid;
-	border-right-width: 0;
-	border-left-width: 1px;
-}
-
-.spam-undo-inside .avatar,
-.trash-undo-inside .avatar {
-	margin-left: 8px;
-}
-
-#comment-status-radio input {
-	margin: 2px 0 5px 3px;
-}
-
-/*------------------------------------------------------------------------------
-  16.0 - Themes
-------------------------------------------------------------------------------*/
-
-h3.available-themes {
-	float: right;
-}
-
-.available-theme {
-	margin-right: 0;
-	margin-left: 10px;
-	padding: 20px 0 20px 20px;
-}
-
-#current-theme .theme-info li,
-.theme-options li,
-.available-theme .action-links li {
-	float: right;
-	padding-right: 0;
-	padding-left: 10px;
-	margin-right: 0;
-	margin-left: 10px;
-	border-right: none;
-	border-left: 1px solid #dfdfdf;
-}
-
-.available-theme .action-links li {
-	padding-left: 8px;
-	margin-left: 8px;
-}
-
-#current-theme .theme-info li:last-child,
-.theme-options li:last-child,
-.available-theme .action-links li:last-child {
-	padding-left: 0;
-	margin-right: 0;
-	border-left: 0;
-}
-
-.available-theme .action-links .delete-theme {
-	float: left;
-	margin-left: 0;
-	margin-right: 8px;
-}
-
-.available-theme .action-links p {
-	float: right;
-}
-
-#current-theme.has-screenshot {
-	padding-left: 0;
-	padding-right: 330px;
-}
-
-#current-theme h4 span {
-	margin-left: 0;
-	margin-right: 20px;
-}
-
-#current-theme img {
-	float: right;
-	width: 300px;
-	margin-left: 0;
-	margin-right: -330px;
-}
-
-.theme-options .load-customize {
-	margin-right: 0;
-	margin-left: 30px;
-	float: right;
-}
-
-.theme-options span {
-	float: right;
-	margin-right: 0;
-	margin-left: 10px;
-}
-
-.theme-options ul {
-	float: right;
-}
-
-/* Allow for three-up on 1024px wide screens, e.g. tablets */
-@media only screen and (max-width: 1200px) {
-	#current-theme.has-screenshot {
-		padding-right: 270px;
-	}
-
-	#current-theme img {
-		margin-right: -270px;
-		width: 240px;
-	}
-}
-
-#broken-themes {
-	text-align: right;
-}
-
-/*------------------------------------------------------------------------------
-  16.1 - Custom Header Screen
-------------------------------------------------------------------------------*/
-
-.appearance_page_custom-header .available-headers .default-header {
-	float: right;
-	margin: 0 0 20px 20px;
-}
-
-.appearance_page_custom-header .random-header {
-	margin: 0 0 20px 20px;
-}
-
-.appearance_page_custom-header .available-headers label input,
-.appearance_page_custom-header .random-header label input {
-	margin-right: 0;
-	margin-left: 10px;
-}
-
-/*------------------------------------------------------------------------------
-  16.2 - Custom Background Screen
-------------------------------------------------------------------------------*/
-
-/* No RTL for now, this space intentionally left blank */
-
-
-/*------------------------------------------------------------------------------
-  16.3 - Tabbed Admin Screen Interface (Experimental)
-------------------------------------------------------------------------------*/
-
-.nav-tab {
-	margin: 0 0 -1px 6px;
-}
-
-h2 .nav-tab {
-	font-family: Tahoma, Arial, sans-serif;
-}
-
-
-/*------------------------------------------------------------------------------
-  17.0 - Plugins
-------------------------------------------------------------------------------*/
-
-.plugins .desc ul,
-.plugins .desc ol {
-	margin: 0 2em 0 0;
-}
-
-#wpbody-content .plugins .plugin-title, #wpbody-content .plugins .theme-title {
-	padding-right: 0;
-	padding-left: 12px;
-}
-
-
-/*------------------------------------------------------------------------------
-  18.0 - Users
-------------------------------------------------------------------------------*/
-
-#profile-page .form-table #rich_editing {
-	margin-right: 0;
-	margin-left: 5px
-}
-
-#profile-page #pass1,
-#profile-page #pass2,
-#profile-page #user_login {
-	direction: ltr;
-}
-
-#your-profile legend {
-	font-family: Tahoma, Arial, sans-serif;
-}
-
-/*------------------------------------------------------------------------------
-  19.0 - Tools
-------------------------------------------------------------------------------*/
-
-.pressthis a span {
-	background-position: right 5px;
-	padding: 8px 27px 8px 11px;
-}
-
-.pressthis a:after {
-	right: auto;
-	left: 10px;
-	background: transparent;
-	transform: skew(-20deg) rotate(-6deg);
-	-webkit-transform: skew(-20deg) rotate(-6deg);
-	-moz-transform: skew(-20deg) rotate(-6deg);
-}
-
-
-.pressthis a:hover:after {
-	transform: skew(-20deg) rotate(-9deg);
-	-webkit-transform: skew(-20deg) rotate(-9deg);
-	-moz-transform: skew(-20deg) rotate(-9deg);
-}
-
-/*------------------------------------------------------------------------------
-  20.0 - Settings
-------------------------------------------------------------------------------*/
-
-#utc-time, #local-time {
-	padding-left: 0;
-	padding-right: 25px;
-	font-style: normal;
-	font-family: Tahoma, Arial, sans-serif;
-}
-
-/*------------------------------------------------------------------------------
-  21.0 - Admin Footer
-------------------------------------------------------------------------------*/
-
-#footer {
-	margin-left: 20px;
-}
-
-#wpcontent,
-#footer {
-	margin-right: 165px;
-}
-
-/*------------------------------------------------------------------------------
-  22.0 - About Pages
-------------------------------------------------------------------------------*/
-
-.wrap.about-wrap {
-	margin-left: 40px;
-	margin-right: 20px;
-}
-
-.about-wrap h1,
-.about-text {
-	margin-right: 0;
-	margin-left: 200px;
-}
-
-.about-wrap h2.nav-tab-wrapper {
-	padding-left: 0px;
-	padding-right: 6px;
-}
-
-.about-wrap .wp-badge {
-	right: auto;
-	left: 0;
-}
-
-.about-wrap h2 .nav-tab {
-	margin-right: 0;
-	margin-left: 3px;
-}
-
-.about-wrap .changelog li {
-	margin-left: 0;
-	margin-right: 3em;
-}
-
-.about-wrap .three-col-images .last-feature {
-	float: left;
-}
-
-.about-wrap .three-col-images .first-feature {
-	float: right;
-}
-
-.about-wrap .feature-section.three-col div {
-	margin-right: 0;
-	margin-left: 4.999999999%;
-	float: right;
-}
-
-.about-wrap .feature-section.three-col h4 {
-	text-align: right;
-}
-
-.about-wrap .feature-section.three-col img {
-	margin-right: 5px;
-	margin-left: 0;
-}
-
-.about-wrap .feature-section.three-col .last-feature {
-	margin-left: 0;
-}
-
-.about-wrap .feature-section img {
-	margin: 0 0 10px 0.7%;
-}
-
-.about-wrap .feature-section.images-stagger-right img {
-	float: left;
-	margin: 0 12px 12px 5px;
-}
-
-.about-wrap .feature-section.images-stagger-left img {
-	float: right;
-	margin: 0 5px 12px 12px;
-}
-
-.about-wrap li.wp-person,
-.about-wrap li.wp-person img.gravatar {
-	float: right;
-	margin-right: 0;
-	margin-left: 10px;
-}
-
-/*------------------------------------------------------------------------------
-  23.0 - Misc
-------------------------------------------------------------------------------*/
-
-#template div {
-	margin-right: 0;
-	margin-left: 190px;
-}
-
-.column-author img, .column-username img {
-	float: right;
-	margin-right: 0;
-	margin-left: 10px;
-}
-
-.tagchecklist {
-	margin-left: 0;
-	margin-right: 14px;
-}
-
-.tagchecklist strong {
-	margin-left: 0;
-	margin-right: -8px;
-}
-
-.tagchecklist span {
-	margin-right: 0;
-	margin-left: 25px;
-	float: right;
-
-}
-.tagchecklist span a {
-	margin: 6px -9px 0pt 0pt;
-	float: right;
-}
-
-#poststuff h2 {
-	clear: right;
-}
-
-#poststuff h3,
-.metabox-holder h3 {
-	font-family: Tahoma, Arial, sans-serif;
-}
-
-.tool-box .title {
-	font-family: Tahoma, Arial, sans-serif;
-}
-
-#sidemenu {
-	margin: -30px 315px 0 15px;
-	float: left;
-	padding-left: 0;
-	padding-right: 10px;
-}
-#sidemenu a {
-	float: right;
-}
-
-table .vers,
-table .column-visible,
-table .column-rating {
-	text-align: right;
-}
-
-.screen-meta-toggle {
-	right: auto;
-	left: 15px;
-}
-
-/*------------------------------------------------------------------------------
-  24.0  - Dead
-------------------------------------------------------------------------------*/
-
-/* - Not used anywhere in WordPress - verify and then deprecate
-------------------------------------------------------------------------------*/
-
-/* No RTL for now, this space intentionally left blank */
-
-
-/* - Only used once or twice in all of WP - deprecate for global style
-------------------------------------------------------------------------------*/
-
-* html #template div {margin-left: 0;}
-
-.list-ajax-loading {
-	float: left;
-	margin-right: 0;
-	margin-left: 9px;
-}
-
-/* - Used - but could/should be deprecated with a CSS reset
-------------------------------------------------------------------------------*/
-/* No RTL for now, this space intentionally left blank */
-
-
-/*------------------------------------------------------------------------------
- 25.0 - TinyMCE tweaks
-		Small tweaks for until tinymce css files are proprely RTLized
-------------------------------------------------------------------------------*/
-#editorcontainer .wp_themeSkin .mceStatusbar {
-	padding-left: 0;
-	padding-right: 5px;
-}
-#editorcontainer .wp_themeSkin .mceStatusbar div {
-	float: right;
-}
-
-#editorcontainer .wp_themeSkin .mceStatusbar a.mceResize {
-	float: left;
-}
-
-/*------------------------------------------------------------------------------
-  26.0 - Full Overlay w/ Sidebar
-------------------------------------------------------------------------------*/
-.wp-full-overlay .wp-full-overlay-sidebar {
-	margin: 0;
-	left: auto;
-	right: 0;
-	border-right: 0;
-	border-left: 1px solid rgba( 0, 0, 0, 0.2 );
-}
-
-.wp-full-overlay-sidebar:after {
-	right: auto;
-	left: 0;
-	box-shadow: inset 5px 0 4px -4px rgba(0, 0, 0, 0.1);
-}
-
-.wp-full-overlay.collapsed,
-.wp-full-overlay.expanded .wp-full-overlay-sidebar {
-	margin-right: 0 !important;
-}
-
-.wp-full-overlay.expanded {
-	margin-right: 300px;
-	margin-left: 0;
-}
-
-.wp-full-overlay.collapsed .wp-full-overlay-sidebar {
-	margin-right: -300px;
-	margin-left: 0;
-}
-
-/* Collapse Button */
-.wp-full-overlay .collapse-sidebar {
-	right: 0;
-	left: auto;
-	margin-right: 15px;
-}
-
-.wp-full-overlay.collapsed .collapse-sidebar {
-	right: 100%;
-}
-
-.wp-full-overlay .collapse-sidebar-arrow {
-	margin-right: 2px;
-	margin-left: 0;
-	background: transparent url('../../wp-admin/images/arrows.png') no-repeat 0 -108px;
-}
-
-.wp-full-overlay.collapsed .collapse-sidebar-arrow {
-	background-position: 0 -72px;
-}
-
-.wp-full-overlay .collapse-sidebar-label {
-	right: 100%;
-	left: auto;
-	margin-right: 10px;
-	margin-left: 0;
-}
-
-/*------------------------------------------------------------------------------
-  27.0 - Customize Loader
-------------------------------------------------------------------------------*/
-.install-theme-info .theme-install {
-	float: left;
-}
-
-/* MERGED */
-
-/* global */
-
-/* 2 column liquid layout */
-
-#wpcontent {
-	margin-left: 0;
-	margin-right: 165px;
-}
-
-.folded #wpcontent {
-	margin-left: 0;
-	margin-right: 52px;
-}
-
-.folded.wp-admin #footer {
-	margin-left: 15px;
-	margin-right: 52px;
-}
-
-#wpbody-content {
-	float: right;
-}
-
-#adminmenuwrap {
-	float: right;
-}
-
-#adminmenu {
-	clear: right;
-}
-
-/* inner 2 column liquid layout */
-.inner-sidebar {
-	float: left;
-	clear: left;
-}
-
-.has-right-sidebar #post-body {
-	float: right;
-	clear: right;
-	margin-right: 0;
-	margin-left: -340px;
-}
-
-.has-right-sidebar #post-body-content {
-	margin-right: 0;
-	margin-left: 300px;
-}
-
-/* 2 columns main area */
-
-#col-right {
-	float: left;
-	clear: left;
-}
-
-/* utility classes*/
-.alignleft {
-	float: right;
-}
-
-.alignright {
-	float: left;
-}
-
-.textleft {
-	text-align: right;
-}
-
-.textright {
-	text-align: left;
-}
-
-/* Hide visually but not from screen readers */
-.screen-reader-text, .screen-reader-text span {
-	left: auto;
-	right: -1000em;
-}
-
-/* styles for use by people extending the WordPress interface */
-
-body,
-td,
-textarea,
-input,
-select {
-	font-family: Tahoma, Arial, sans-serif;
-}
-
-ul.ul-disc,
-ul.ul-square,
-ol.ol-decimal {
-	margin-left: 0;
-	margin-right: 1.8em;
-}
-
-.subsubsub {
-	float: right;
-}
-
-.widefat thead th:first-of-type {
-	-webkit-border-top-left-radius: 0;
-	-webkit-border-top-right-radius: 3px;
-	border-top-left-radius: 0;
-	border-top-right-radius: 3px;
-}
-
-.widefat thead th:last-of-type {
-	-webkit-border-top-right-radius: 0;
-	-webkit-border-top-left-radius: 3px;
-	border-top-right-radius: 0;
-	border-top-left-radius: 3px;
-}
-.widefat tfoot th:first-of-type {
-	-webkit-border-bottom-left-radius: 0;
-	-webkit-border-bottom-right-radius: 3px;
-	border-bottom-left-radius: 0;
-	border-bottom-right-radius: 3px;
-}
-.widefat tfoot th:last-of-type {
-	-webkit-border-bottom-right-radius: 0;
-	-webkit-border-bottom-left-radius: 3px;
-	border-bottom-right-radius: 0;
-	border-bottom-left-radius: 3px;
-}
-
-.widefat th {
-	text-align: right;
-}
-
-.widefat th input {
-	margin: 0 8px 0 0;
-}
-
-.wrap {
-	margin-right: 0;
-	margin-left: 15px;
-}
-
-.wrap h2,
-.subtitle {
-	font-family: Tahoma, Arial, sans-serif;
-}
-
-.wrap h2 {
-	padding-right: 0;
-	padding-left: 15px;
-}
-
-.subtitle {
-	padding-left: 0;
-	padding-right: 25px;
-}
-
-.wrap .add-new-h2 {
-	font-family: Tahoma, Arial, sans-serif;
-	margin-left: 0;
-	margin-right: 4px;
-}
-
-.wrap h2.long-header {
-	padding-left: 0;
-}
-
-/* dashboard */
-#dashboard-widgets-wrap .has-sidebar {
-	margin-right: 0;
-	margin-left: -51%;
-}
-
-#dashboard-widgets-wrap .has-sidebar .has-sidebar-content {
-	margin-right: 0;
-	margin-left: 51%;
-}
-
-.view-all {
-	right: auto;
-	left: 0;
-}
-
-#dashboard_right_now p.sub,
-#dashboard-widgets h4,
-a.rsswidget,
-#dashboard_plugins h4,
-#dashboard_plugins h5,
-#dashboard_recent_comments .comment-meta .approve,
-#dashboard_right_now td.b,
-#dashboard_right_now .versions a {
-	font-family: Tahoma, Arial, sans-serif;
-}
-
-#dashboard_right_now p.sub  {
-	left:auto;
-	right:15px;
-}
-
-#dashboard_right_now td.b {
-	padding-right: 0;
-	padding-left: 6px;
-	text-align: left;
-}
-
-#dashboard_right_now .t {
-	padding-right: 0;
-	padding-left: 12px;
-}
-
-#dashboard_right_now .table_content {
-	float:right;
-}
-
-#dashboard_right_now .table_discussion {
-	float:left;
-}
-
-#dashboard_right_now a.button {
-	float: left;
-	clear: left;
-}
-
-#dashboard_plugins .inside span {
-	 padding-left: 0;
-	 padding-right: 5px;
-}
-
-#dashboard-widgets h3 .postbox-title-action {
-	right: auto;
-	left: 30px;
-}
-
-#the-comment-list .pingback {
-	padding-left: 0 !important;
-	padding-right: 9px !important;
-}
-
-/* Recent Comments */
-#the-comment-list .comment-item {
-	padding: 1em 70px 1em 10px;
-}
-
-#the-comment-list .comment-item .avatar {
-	float: right;
-	margin-left: 0;
-	margin-right: -60px;
-}
-
-/* Feeds */
-.rss-widget cite {
-	text-align: left;
-}
-
-.rss-widget span.rss-date {
-	font-family: Tahoma, Arial, sans-serif;
-	margin-left: 0;
-	margin-right: 3px;
-}
-
-/* QuickPress */
-#dashboard_quick_press h4 {
-	float: right;
-	text-align: left;
-}
-
-#dashboard_quick_press .wp-media-buttons {
-	margin: 0 5em 0.5em 0;
-}
-
-#dashboard_quick_press h4 label {
-	margin-right: 0;
-	margin-left: 10px;
-}
-
-#dashboard_quick_press .input-text-wrap,
-#dashboard_quick_press .textarea-wrap {
-	margin: 0 5em 1em 0;
-}
-
-#dashboard_quick_press #media-buttons {
-	margin: 0 5em .5em 0;
-	padding: 0;
-}
-
-#dashboard-widgets #dashboard_quick_press form p.submit {
-	margin-left: 0;
-	margin-right: 4.6em;
-}
-
-#dashboard-widgets #dashboard_quick_press form p.submit input {
-	float: right;
-}
-
-#dashboard-widgets #dashboard_quick_press form p.submit #save-post {
-	margin: 0 10px 0 1em;
-}
-
-#dashboard-widgets #dashboard_quick_press form p.submit #publish {
-	float: left;
-}
-
-#dashboard-widgets #dashboard_quick_press form p.submit img.waiting {
-	margin: 4px 0 0 6px;
-}
-
-/* Recent Drafts */
-#dashboard_recent_drafts h4 abbr {
-	font-family: Tahoma, Arial, sans-serif;
-	margin-left:0;
-	margin-right: 3px;
-}
-
-/* login */
-body.login {
-	font-family: Tahoma, Arial, sans-serif;
-}
-
-.login form {
-	margin-right: 8px;
-	margin-left: 0;
-}
-
-.login form .forgetmenot {
-	float: right;
-}
-
-.login form .submit {
-	float: left;
-}
-
-#login form .submit input {
-	font-family: Tahoma, Arial, sans-serif;
-}
-
-.login #nav,
-.login #backtoblog {
-	margin: 0 16px 0 0;
-}
-
-#login_error,
-.login .message {
-	margin: 0 8px 16px 0;
-}
-
-.login #user_pass,
-.login #user_login,
-.login #user_email {
-	margin-left: 6px;
-	margin-right: 0;
-	direction: ltr;
-}
-
-.login h1 a {
-	text-decoration: none;
-}
-
-.login .button-primary {
-	float: left;
-}
-
-/* nav-menu */
-#nav-menus-frame {
-	margin-right: 300px;
-	margin-left: 0;
-}
-
-#wpbody-content #menu-settings-column {
-	margin-right: -300px;
-	margin-left: 0;
-	float: right;
-}
-
-/* Menu Container */
-#menu-management-liquid {
-	float: right;
-}
-
-#menu-management {
-	margin-left: 20px;
-	margin-right: 0;
-}
-
-.post-body-plain {
-	padding: 10px 0 0 10px;
-}
-
-/* Menu Tabs */
-
-#menu-management .nav-tabs-arrow-left {
-	right: 0;
-	left:auto;
-}
-
-#menu-management .nav-tabs-arrow-right {
-	left: 0;
-	right:auto;
-	text-align: left;
-	font-family: Tahoma, Arial, sans-serif;
-}
-
-#menu-management .nav-tabs {
-	padding-right: 20px;
-	padding-left: 10px;
-}
-
-.js #menu-management .nav-tabs {
-	float: right;
-	margin-right: 0px;
-	margin-left: -400px;
-}
-
-#select-nav-menu-container {
-	text-align: left;
-}
-
-#wpbody .open-label {
-	float:right;
-}
-
-#wpbody .open-label span {
-	padding-left: 10px;
-	padding-right:0;
-}
-
-.js .input-with-default-title {
-	font-style: normal;
-	font-weight: bold;
-}
-
-/* Add Menu Item Boxes */
-.postbox .howto input {
-	float: left;
-}
-#nav-menu-theme-locations .button-controls {
-	text-align: left;
-}
-
-/* Button Primary Actions */
-
-.meta-sep,
-.submitcancel {
-	float: right;
-}
-
-#cancel-save {
-	margin-left: 0;
-	margin-right: 20px;
-}
-
-/* Button Secondary Actions */
-.list-controls {
-	 float: right;
-}
-.add-to-menu {
-	float: left;
-}
-
-/* Custom Links */
-#add-custom-link label span {
-	float: right;
-	padding-left: 5px;
-	padding-right: 0;
-}
-
-.nav-menus-php .howto span {
-	float: right;
-}
-
-.list li .menu-item-title input {
-	margin-left: 3px;
-	margin-right: 0;
-}
-
-/* Nav Menu */
-.menu-item-handle {
-	padding-right: 10px;
-	padding-left: 0;
-}
-.menu-item-edit-active .menu-item-handle {
-	-webkit-border-bottom-left-radius: 0;
-	-webkit-border-bottom-right-radius: 0;
-	border-bottom-left-radius: 0;
-	border-bottom-right-radius: 0;
-}
-.menu-item-handle .item-title {
-	margin-left:13em;
-	margin-right:0;
-}
-.menu-item-handle .item-edit {
-	right: auto;
-	left: -20px;
-}
-
-/* WARNING: The factor of 30px is hardcoded into the nav-menus javascript. */
-.menu-item-depth-0 { margin-right: 0px; margin-left:0;}
-.menu-item-depth-1 { margin-right: 30px; margin-left:0;}
-.menu-item-depth-2 { margin-right: 60px; margin-left:0;}
-.menu-item-depth-3 { margin-right: 90px; margin-left:0;}
-.menu-item-depth-4 { margin-right: 120px; margin-left:0;}
-.menu-item-depth-5 { margin-right: 150px; margin-left:0;}
-.menu-item-depth-6 { margin-right: 180px; margin-left:0;}
-.menu-item-depth-7 { margin-right: 210px; margin-left:0;}
-.menu-item-depth-8 { margin-right: 240px; margin-left:0;}
-.menu-item-depth-9 { margin-right: 270px; margin-left:0;}
-.menu-item-depth-10 { margin-right: 300px; margin-left:0;}
-.menu-item-depth-11 { margin-right: 330px; margin-left:0;}
-
-.menu-item-depth-0 .menu-item-transport { margin-right: 0px; margin-left:0;}
-.menu-item-depth-1 .menu-item-transport { margin-right: -30px; margin-left:0;}
-.menu-item-depth-2 .menu-item-transport { margin-right: -60px; margin-left:0;}
-.menu-item-depth-3 .menu-item-transport { margin-right: -90px; margin-left:0;}
-.menu-item-depth-4 .menu-item-transport { margin-right: -120px; margin-left:0;}
-.menu-item-depth-5 .menu-item-transport { margin-right: -150px; margin-left:0;}
-.menu-item-depth-6 .menu-item-transport { margin-right: -180px; margin-left:0;}
-.menu-item-depth-7 .menu-item-transport { margin-right: -210px; margin-left:0;}
-.menu-item-depth-8 .menu-item-transport { margin-right: -240px; margin-left:0;}
-.menu-item-depth-9 .menu-item-transport { margin-right: -270px; margin-left:0;}
-.menu-item-depth-10 .menu-item-transport { margin-right: -300px; margin-left:0;}
-.menu-item-depth-11 .menu-item-transport { margin-right: -330px; margin-left:0;}
-
-/* Menu item controls */
-.item-type {
-	padding-left: 10px;
-	padding-right:0;
-}
-
-.item-controls {
-	left: 20px;
-	right: auto;
-}
-
-.item-controls .item-order {
-	padding-left: 10px;
-	padding-right: 0;
-}
-
-.item-edit {
-	left: -20px;
-	right:auto;
-	-webkit-border-bottom-right-radius: 3px;
-	-webkit-border-bottom-left-radius: 0;
-	border-bottom-right-radius: 3px;
-	border-bottom-left-radius: 0;
-}
-
-/* Menu editing */
-.menu-item-settings {
-	padding: 10px 10px 10px 0;
-	border-width: 0 1px 1px 1px;
-}
-
-#custom-menu-item-url {
-	direction: ltr;
-}
-
-.link-to-original {
-	font-style: normal;
-	font-weight: bold;
-}
-
-.link-to-original a {
-	padding-right: 4px;
-	padding-left:0;
-}
-
-.menu-item-settings .description-thin,
-.menu-item-settings .description-wide {
-	margin-left: 10px;
-	margin-right:0;
-	float: right;
-}
-
-/* Major/minor publishing actions (classes) */
-.major-publishing-actions .publishing-action {
-	text-align: left;
-	float: left;
-}
-
-.major-publishing-actions .delete-action {
-	text-align: right;
-	float: right;
-	padding-left: 15px;
-	padding-right:0;
-}
-
-.menu-name-label {
-	margin-left: 15px;
-	margin-right:0;
-}
-
-.auto-add-pages {
-	float: right;
-}
-
-/* Star ratings */
-div.star-holder {
-	background: url('../images/stars-rtl.png?ver=20120506.png') repeat-x bottom right;
-}
-div.star-holder .star-rating {
-	background: url('../images/stars-rtl.png?ver=20120506.png') repeat-x top right;
-	float: right;
-}
-
-#plugin-information ul#sidemenu {
-	left: auto;
-	right: 0;
-}
-
-#plugin-information h2 {
-	margin-right: 0;
-	margin-left: 200px;
-}
-
-#plugin-information .fyi {
-	margin-left: 5px;
-	margin-right: 20px;
-}
-
-#plugin-information .fyi h2 {
-	margin-left: 0;
-}
-
-#plugin-information .fyi ul {
-	padding: 10px 7px 10px 5px;
-}
-
-#plugin-information #section-screenshots li p {
-	padding-left: 0;
-	padding-right: 20px;
-}
-
-#plugin-information #section-screenshots ol,
-#plugin-information .updated,
-#plugin-information pre {
-	margin-right: 0;
-	margin-left: 215px;
-}
-
-#plugin-information .updated,
-#plugin-information .error {
-	clear: none;
-	direction: rtl;
-}
-
-#plugin-information #section-holder .section {
-	direction: ltr;
-}
-
-/* Editor/Main Column */
-.posting {
-	margin-left: 212px;
-	margin-right: 0;
-	position: relative;
-}
-
-h3.tb {
-	margin-left: 0;
-	margin-right: 5px;
-}
-
-#publish {
-	float: left;
-}
-
-.postbox .handlediv {
-	float: left;
-}
-
-.actions li {
-	float: right;
-	margin-right: 0;
-	margin-left: 10px;
-}
-
-#extra-fields .actions {
-    margin: -23px 0 0 -7px;
-}
-
-/* Photo Styles */
-#img_container a {
-	float: right;
-}
-
-#category-add input,
-#category-add select {
-	font-family: Tahoma, Arial, sans-serif;
-}
-
-/* Tags */
-#tagsdiv #newtag {
-	margin-right: 0;
-	margin-left: 5px;
-}
-
-#tagadd {
-	margin-left: 0;
-	margin-right: 3px;
-}
-
-#tagchecklist span {
-	margin-left: .5em;
-	margin-right: 10px;
-	float: right;
-}
-#tagchecklist span a {
-	margin: 6px -9px 0 0;
-	float: right;
-}
-
-.submit input,
-.button,
-.button-primary,
-.button-secondary,
-.button-highlighted,
-#postcustomstuff .submit input {
-	font-family: Tahoma, Arial, sans-serif;
-}
-
-.ac_results li {
-	text-align: right;
-}
-
-#TB_ajaxContent #options {
-	right: auto;
-	left: 25px;
-}
-
-#post_status {
-	margin-left: 0;
-	margin-right: 10px;
-}
-
-/* theme-editor, plugin-editor */
-#templateside {
-	float: left;
-}
-
-#template textarea,
-#docs-list {
-	direction: ltr;
-}
-
-/* theme-install */
-.theme-details .theme-version {
-	float: right;
-}
-
-.theme-details .star-holder {
-	float: left;
-}
-
-.feature-filter .feature-group {
-	float: right;
-}
-
-.feature-filter .feature-name {
-	float: right;
-	text-align: left;
-}
-
-.feature-filter .feature-group li {
-	float: right;
-	padding-right: 0;
-	padding-left: 25px;
-}
-
-/* widgets */
-/* 2 column liquid layout */
-div.widget-liquid-left {
-	float: right;
-	clear: right;
-	margin-right: 0;
-	margin-left: -325px;
-}
-
-div#widgets-left {
-	margin-right: 5px;
-	margin-left: 325px;
-}
-
-div.widget-liquid-right {
-	float: left;
-	clear: left;
-}
-
-.inactive-sidebar .widget {
-	float: right;
-}
-
-div.sidebar-name h3 {
-	font-family: Tahoma, Arial, sans-serif;
-}
-
-#widget-list .widget {
-	float: right;
-}
-
-.inactive-sidebar .widget-placeholder {
-	float: right;
-}
-
-.widget-top .widget-title-action {
-	float: left;
-}
-
-.widget-control-edit {
-	padding: 0 0 0 8px;
-}
-
-.sidebar-name-arrow {
-	float: left;
-}
-
-/* Press This */
-.press-this-sidebar {
-	float: left;
-}
-
-.press-this #header-logo,
-.press-this #wphead h1 {
-	float: right;
-}
-
-/* RTL */
-.ltr {
-	direction: ltr;
-}
-
-/* =Localized CSS
--------------------------------------------------------------- */
-
-/* he_IL: Remove Tahoma from the font stack. Arial is best for Hebrew. */
-body.locale-he-il,
-.locale-he-il .quicktags, .locale-he-il .search,
-.locale-he-il .howto,
-.locale-he-il #adminmenu .awaiting-mod,
-.locale-he-il #adminmenu span.update-plugins,
-.locale-he-il #sidemenu li a span.update-plugins,
-.locale-he-il .post-com-count-wrapper,
-.locale-he-il .widefat th,
-.locale-he-il .tablenav .displaying-num,
-.locale-he-il .inline-edit-row fieldset span.title,
-.locale-he-il .inline-edit-row fieldset span.checkbox-title,
-.locale-he-il .inline-edit-row fieldset ul.cat-checklist label,
-.locale-he-il .inline-edit-row .catshow,
-.locale-he-il .inline-edit-row .cathide,
-.locale-he-il .inline-edit-row #bulk-titles div,
-.locale-he-il p.help,
-.locale-he-il p.description,
-.locale-he-il span.description,
-.locale-he-il .form-wrap p,
-.locale-he-il h2 .nav-tab,
-.locale-he-il #your-profile legend,
-.locale-he-il #utc-time, .locale-he-il #local-time,
-.locale-he-il #poststuff h3,
-.locale-he-il .metabox-holder h3,
-.locale-he-il .tool-box .title,
-.locale-he-il td,
-.locale-he-il textarea,
-.locale-he-il input,
-.locale-he-il select,
-.locale-he-il .wrap h2,
-.locale-he-il .subtitle,
-.locale-he-il .wrap .add-new-h2,
-.locale-he-il #dashboard_right_now p.sub,
-.locale-he-il #dashboard-widgets h4,
-.locale-he-il a.rsswidget,
-.locale-he-il #dashboard_plugins h4,
-.locale-he-il #dashboard_plugins h5,
-.locale-he-il #dashboard_recent_comments .comment-meta .approve,
-.locale-he-il #dashboard_right_now td.b,
-.locale-he-il #dashboard_right_now .versions a,
-.locale-he-il .rss-widget span.rss-date,
-.locale-he-il #dashboard_recent_drafts h4 abbr,
-body.login.locale-he-il,
-.locale-he-il #login form .submit input,
-.locale-he-il #menu-management .nav-tabs-arrow-right,
-.locale-he-il #category-add input,
-.locale-he-il #category-add select,
-.locale-he-il .submit input,
-.locale-he-il .button,
-.locale-he-il .button-primary,
-.locale-he-il .button-secondary,
-.locale-he-il .button-highlighted,
-.locale-he-il #postcustomstuff .submit input,
-.locale-he-il div.sidebar-name h3 {
-	font-family: Arial, sans-serif;
-}
-
-/* he_IL: Have <em> be bold rather than italic. */
-.locale-he-il em {
-	font-style: normal;
-	font-weight: bold;
-}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-admin/css/wp-admin-rtl.min.css	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,1 @@
+ol{margin-left:0;margin-right:2em}.code,code{font-family:monospace;direction:ltr}.quicktags,.search{font:12px Tahoma,Arial,sans-serif}.icon32{float:right;margin-right:0;margin-left:8px}.icon16{float:right;margin-right:-8px;margin-left:0}.howto{font-style:normal;font-family:Tahoma,Arial,sans-serif}p.install-help{font-style:normal}#doaction,#doaction2,#post-query-submit{margin-right:0;margin-left:8px}#timezone_string option{margin-left:0;margin-right:1em}#pass-strength-result{float:right;margin:13px 1px 5px 5px}p.search-box{float:left}.search-box input[name="s"],#search-plugins input[name="s"],.tagsdiv .newtag{float:right;margin-right:0;margin-left:4px}input[type=password]{direction:ltr}input[type="text"].ui-autocomplete-loading{background:transparent url('../images/loading.gif') no-repeat left center}ul#add-to-blog-users{margin:0 14px 0 0}.ui-autocomplete li{text-align:right}#delete-action{float:right}#publishing-action{float:left;text-align:left}#publishing-action .spinner{float:right}#post-body .misc-pub-section{border-right:0;border-left-width:1px;border-left-style:solid}#post-body .misc-pub-section-last{border-left:0}#minor-publishing-actions{padding:10px 8px 2px 10px;text-align:left}#save-post{float:right}.preview{float:left}#sticky-span{margin-left:0;margin-right:18px}.side-info ul{padding-left:0;padding-right:18px}td.action-links,th.action-links{text-align:left}form.upgrade .hint{font-style:normal}#ajax-response.alignleft{margin-left:0;margin-right:2em}#quicktags{background-position:right top}#ed_reply_toolbar input{margin:1px 1px 1px 2px}#wphead{height:32px;margin-left:15px;margin-right:2px}#header-logo{float:right}#wphead h1{float:right}#screen-meta-links{margin-right:0;margin-left:24px}#screen-meta{margin-right:5px;margin-left:15px}#screen-options-link-wrap,#contextual-help-link-wrap{float:left;margin-left:0;margin-right:6px}#screen-meta-links a.show-settings{padding-right:6px;padding-left:16px}.toggle-arrow{background-position:top right}.toggle-arrow-active{background-position:bottom right}.metabox-prefs label{padding-right:0;padding-left:15px}.metabox-prefs label input{margin-right:2px;margin-left:5px}#contextual-help-wrap{margin-left:0;margin-right:-4px}#contextual-help-back{left:170px;right:150px}#contextual-help-wrap.no-sidebar #contextual-help-back{left:0;right:150px;border-right-width:1px;border-left-width:0;-webkit-border-bottom-right-radius:0;border-bottom-right-radius:0;-webkit-border-bottom-left-radius:2px;border-bottom-left-radius:2px}.contextual-help-tabs{float:right}.contextual-help-tabs a{padding-left:5px;padding-right:12px}.contextual-help-tabs .active{margin-right:0;margin-left:-1px}.contextual-help-tabs .active,.contextual-help-tabs-wrap{border-left:0;border-right-width:1px}.help-tab-content{margin-right:0;margin-left:22px}.help-tab-content li{margin-left:0;margin-right:18px}.contextual-help-sidebar{float:left;padding-right:12px;padding-left:8px}.folded #wpcontent{margin-left:0;margin-right:52px}.folded.wp-admin #wpfooter{margin-left:15px;margin-right:52px}#adminmenuback,#adminmenuwrap{border-width:0 0 0 1px}#adminmenushadow{right:auto;left:0}#adminmenu li .wp-submenu{left:auto;right:146px}.folded #adminmenu .wp-submenu.sub-open,.folded #adminmenu .opensub .wp-submenu,.folded #adminmenu .wp-has-current-submenu .wp-submenu.sub-open,.folded #adminmenu .wp-has-current-submenu.opensub .wp-submenu,.folded #adminmenu a.menu-top:focus+.wp-submenu,.folded #adminmenu .wp-has-current-submenu a.menu-top:focus+.wp-submenu,.no-js.folded #adminmenu .wp-has-submenu:hover .wp-submenu{left:auto;right:32px}#adminmenu div.wp-menu-image,.folded #adminmenu div.wp-menu-image{float:right;width:30px}#adminmenu .wp-submenu a,#adminmenu li li a,.folded #adminmenu .wp-not-current-submenu li a{padding-left:0;padding-right:12px}#adminmenu .wp-not-current-submenu li a{padding-left:0;padding-right:18px}.wp-menu-arrow{right:0;-moz-transform:translate(-139px);-webkit-transform:translate(-139px);-o-transform:translate(-139px);-ms-transform:translate(-139px);transform:translate(-139px)}.ie8 .wp-menu-arrow{right:-20px}#adminmenu .wp-menu-arrow div{left:-8px;width:16px}#adminmenu li.wp-not-current-submenu .wp-menu-arrow{-moz-transform:translate(-138px);-webkit-transform:translate(-138px);-o-transform:translate(-138px);-ms-transform:translate(-138px);transform:translate(-138px)}.folded #adminmenu li .wp-menu-arrow{-moz-transform:translate(-26px);-webkit-transform:translate(-26px);-o-transform:translate(-26px);-ms-transform:translate(-26px);transform:translate(-26px)}#adminmenu .wp-not-current-submenu .wp-menu-arrow div{border-style:solid solid none none;border-width:1px 1px 0 0}#adminmenu .wp-menu-image img{padding:7px 7px 0 0}#adminmenu .wp-submenu .wp-submenu-head{padding:5px 10px 5px 4px;-webkit-border-top-right-radius:0;-webkit-border-top-left-radius:3px;border-top-right-radius:0;border-top-left-radius:3px}.folded #adminmenu li.wp-has-current-submenu .wp-submenu{border-width:1px;border-style:solid;-webkit-border-bottom-right-radius:0;-webkit-border-bottom-left-radius:3px;-webkit-border-top-right-radius:0;-webkit-border-top-left-radius:3px;border-bottom-right-radius:0;border-bottom-left-radius:3px;border-top-right-radius:0;border-top-left-radius:3px}#adminmenu .awaiting-mod,#adminmenu span.update-plugins,#sidemenu li a span.update-plugins{font-family:Tahoma,Arial,sans-serif;margin-left:0;margin-right:7px}#collapse-button{float:right}@media only screen and (max-width:900px){.auto-fold #wpcontent{margin-left:0;margin-right:52px}.auto-fold.wp-admin #wpfooter{margin-left:15px;margin-right:52px}.auto-fold #adminmenu div.wp-menu-image{float:right;width:30px}.auto-fold #adminmenu .wp-submenu.sub-open,.auto-fold #adminmenu .opensub .wp-submenu,.auto-fold #adminmenu .wp-has-current-submenu .wp-submenu.sub-open,.auto-fold #adminmenu .wp-has-current-submenu.opensub .wp-submenu,.auto-fold #adminmenu a.menu-top:focus+.wp-submenu,.auto-fold #adminmenu .wp-has-current-submenu a.menu-top:focus+.wp-submenu,.no-js.auto-fold #adminmenu .wp-has-submenu:hover .wp-submenu{left:auto;right:32px}.auto-fold #adminmenu .wp-not-current-submenu li a{padding-left:0;padding-right:12px}.auto-fold #adminmenu li .wp-menu-arrow{-moz-transform:translate(-27px);-webkit-transform:translate(-27px);-o-transform:translate(-27px);-ms-transform:translate(-27px);transform:translate(-27px)}.auto-fold #adminmenu li.wp-has-current-submenu .wp-submenu{border-width:1px;border-style:solid;-webkit-border-bottom-right-radius:0;-webkit-border-bottom-left-radius:3px;-webkit-border-top-right-radius:0;-webkit-border-top-left-radius:3px;border-bottom-right-radius:0;border-bottom-left-radius:3px;border-top-right-radius:0;border-top-left-radius:3px}}.post-com-count-wrapper{font-family:Tahoma,Arial,sans-serif}.post-com-count{background-image:url('../images/bubble_bg-rtl.gif')}.column-response .post-com-count{float:right;margin-right:0;margin-left:5px}.response-links{float:right}.widefat th{font-family:Tahoma,Arial,sans-serif}.postbox-container{float:right}#post-body-content{float:right}#poststuff #post-body.columns-2{margin-left:300px;margin-right:0}#post-body.columns-2 #postbox-container-1{float:left;margin-left:-300px;margin-right:0}@media only screen and (max-width:850px){#wpbody-content #post-body.columns-2 #postbox-container-1{margin-left:0}}.postbox .handlediv{float:left}#the-comment-list p.comment-author img{float:right;margin-right:0;margin-left:8px}#dashboard_browser_nag p.browser-update-nag.has-browser-icon{padding-right:0;padding-left:125px}.welcome-panel .welcome-panel-close{right:auto;left:10px}.welcome-panel .welcome-panel-close:before{left:auto;right:-12px}.welcome-panel-content{margin-left:0;margin-right:13px}.welcome-panel .welcome-panel-column{float:right}.welcome-panel .welcome-panel-column ul{margin-right:0;margin-left:1em}.welcome-panel .welcome-panel-column li{padding-left:0;padding-right:2px}.welcome-panel .welcome-add-page{background-position:right 2px}.welcome-panel .welcome-edit-page{background-position:right -90px}.welcome-panel .welcome-learn-more{background-position:right -136px}.welcome-panel .welcome-comments{background-position:right -182px}.welcome-panel .welcome-view-site{background-position:right -274px}.welcome-panel .welcome-widgets-menus{background-position:right -229px;line-height:14px}.welcome-panel .welcome-write-blog{background-position:right -44px}.welcome-panel .welcome-icon{padding:2px 32px 8px 0}@media screen and (max-width:870px){.welcome-panel .welcome-panel-column li{margin-right:0;margin-left:13px}.welcome-panel .welcome-icon{padding-right:25px;padding-left:0}}.fixed .column-comments{text-align:right}.fixed .column-comments .vers{padding-left:0;padding-right:3px}.fixed .column-comments a{float:right}.sorting-indicator{margin-left:0;margin-right:7px}th.sortable a span,th.sorted a span{float:right}.tablenav-pages a{margin-right:0;margin-left:1px}.tablenav-pages .next-page{margin-left:0;margin-right:2px}.tablenav a.button-secondary{margin:3px 0 0 8px}.tablenav .tablenav-pages{float:left}.tablenav .displaying-num{margin-right:0;margin-left:10px;font-family:Tahoma,Arial,sans-serif;font-style:normal}.tablenav .actions{padding:2px 0 0 8px}.tablenav .actions select{float:right;margin-right:0;margin-left:6px}.tablenav .delete{margin-right:0;margin-left:20px}.view-switch{float:left}.filter{float:right;margin:-5px 10px 0 0}.filter .subsubsub{margin-left:0;margin-right:-10px}#posts-filter fieldset{float:right;margin:0 0 1em 1.5ex}#posts-filter fieldset legend{padding:0 1px .2em 0}#wpbody-content .inline-edit-row fieldset{float:right}#wpbody-content .quick-edit-row-page fieldset.inline-edit-col-right .inline-edit-col{border-width:0 1px 0 0}#wpbody-content .bulk-edit-row .inline-edit-col-bottom{float:left}.inline-edit-row fieldset label span.title{float:right}.inline-edit-row fieldset label span.input-text-wrap{margin-left:0;margin-right:5em}.quick-edit-row-post fieldset.inline-edit-col-right label span.title{padding-right:0;padding-left:.5em}#wpbody-content .quick-edit-row fieldset .inline-edit-group label.alignleft:first-child{margin-right:0;margin-left:.5em}.inline-edit-row fieldset span.title,.inline-edit-row fieldset span.checkbox-title{font-family:Tahoma,Arial,sans-serif;font-style:normal}.inline-edit-row fieldset .inline-edit-date{float:right}.inline-edit-row fieldset ul.cat-checklist label,.inline-edit-row .catshow,.inline-edit-row .cathide,.inline-edit-row #bulk-titles div{font-family:Tahoma,Arial,sans-serif}.quick-edit-row-post fieldset label.inline-edit-status{float:right}#bulk-titles div a{float:right;margin:3px -2px 0 3px;overflow:hidden;text-indent:-9999px}#save-action .spinner,#show-comments a,#show-comments .spinner{float:right}#titlediv #title-prompt-text,#wp-fullscreen-title-prompt-text{right:0}#sample-permalink{direction:ltr}#sample-permalink #editable-post-name{unicode-bidi:embed}#wp-fullscreen-title-prompt-text{left:auto;right:0}#wp-fullscreen-save .spinner,#wp-fullscreen-save .fs-saved{float:left}#edit-slug-box .cancel{margin-right:0;margin-left:10px}.postarea h3 label{float:right}.submitbox .submit{text-align:right}.inside-submitbox #post_status{margin:2px -2px 2px 0}.submitbox .submit input{margin-right:0;margin-left:4px}#normal-sortables .postbox .submit{float:left}.taxonomy div.tabs-panel{margin:0 125px 0 5px}#side-sortables .comments-box thead th,#normal-sortables .comments-box thead th{font-style:normal}#commentsdiv .spinner{padding-left:0;padding-right:5px}#post-body .add-menu-item-tabs li.tabs{border-width:1px 1px 1px 0;margin-right:0;margin-left:-1px}#post-body .tagsdiv #newtag{margin-right:0;margin-left:5px}.autosave-info{padding:2px 2px 2px 15px;text-align:left}#post-body .wp_themeSkin .mceStatusbar a.mceResize{background:transparent url('../images/resize-rtl.gif') no-repeat scroll left bottom;cursor:sw-resize}.curtime #timestamp{background-position:right top;padding-left:0;padding-right:18px}.compat-attachment-fields th{padding-right:0;padding-left:10px}table.diff td,table.diff th{font-family:Consolas,Monaco,monospace}#select-featured-image a{float:right}.category-adder{margin-left:0;margin-right:120px}#post-body ul.add-menu-item-tabs{float:right;text-align:left;margin:0 5px 0 -120px}#post-body ul.add-menu-item-tabs li.tabs{-webkit-border-top-left-radius:0;-webkit-border-top-right-radius:3px;-webkit-border-bottom-left-radius:0;-webkit-border-bottom-right-radius:3px;border-top-left-radius:0;border-top-right-radius:3px;border-bottom-left-radius:0;border-bottom-right-radius:3px}#front-page-warning,#front-static-pages ul,ul.export-filters,.inline-editor ul.cat-checklist ul,.categorydiv ul.categorychecklist ul,.customlinkdiv ul.categorychecklist ul,.posttypediv ul.categorychecklist ul,.taxonomydiv ul.categorychecklist ul{margin-left:0;margin-right:18px}#post-body .add-menu-item-tabs li.tabs{border-style:solid solid solid none;border-width:1px 1px 1px 0;margin-right:0;margin-left:-1px}p.help,p.description,span.description,.form-wrap p{font-style:normal;font-family:Tahoma,Arial,sans-serif}.taghint{margin:15px 12px -24px 0}#poststuff .tagsdiv .howto{margin:0 8px 6px 0}.ac_results li{text-align:right}.links-table th{text-align:right}#wpbody-content .describe th{text-align:right}.describe .media-item-info .A1B1{padding:0 10px 0 0}.media-upload-form td label{margin-left:6px;margin-right:2px}.media-upload-form .align .field label{padding:0 23px 0 0;margin:0 3px 0 1em}.media-upload-form tr.image-size label{margin:0 5px 0 0}#wpbody-content .describe p.help{padding:0 5px 0 0}.media-item .edit-attachment,.media-item .error-div a.dismiss,.describe-toggle-on,.describe-toggle-off{float:left;margin-right:0;margin-left:15px}.media-item .error-div a.dismiss{padding:0 15px 0 0}.media-item .error-div{padding-left:0;padding-right:10px}.media-item .pinkynail{float:right}.media-item .describe td{padding:0 0 8px 8px}.media-item .progress{float:left;margin:6px 0 0 10px}#find-posts-input{float:right}#find-posts-search{float:right;margin-right:3px;margin-left:4px}.find-box-search .spinner{left:auto;right:115px}#find-posts-response .found-radio{padding:5px 8px 0 0}.find-box-search label{padding-right:0;padding-left:6px}.find-box #resize-se{right:auto;left:1px}form.upgrade .hint{font-style:normal}.wp_attachment_image .button,.A1B1 .button{float:right}.wp_attachment_image .spinner,.A1B1 .spinner{float:right}.imgedit-menu div{float:right}.imgedit-crop{margin:0}.imgedit-rleft,.imgedit-flipv,.imgedit-undo{margin:0 8px 0 3px}.imgedit-rright,.imgedit-fliph,.imgedit-redo{margin:0 3px}.imgedit-applyto img{margin:0 0 0 8px}.imgedit-help{font-style:normal}.imgedit-submit-btn{margin-left:0;margin-right:20px}.form-table th{text-align:right}.form-table input.tog{margin-right:0;margin-left:2px;float:right}.form-table table.color-palette{float:right}#replysubmit .spinner,.inline-edit-save .spinner{float:left}#replysubmit .button{margin-right:0;margin-left:5px}#edithead .inside{float:right;padding:3px 5px 2px 0}.comment-ays th{border-right-style:none;border-left-style:solid;border-right-width:0;border-left-width:1px}.spam-undo-inside .avatar,.trash-undo-inside .avatar{margin-left:8px}#comment-status-radio input{margin:2px 0 5px 3px}h3.available-themes{float:right}.available-theme{margin-right:0;margin-left:10px;padding:20px 0 20px 20px}#current-theme .theme-info li,.theme-options li,.available-theme .action-links li{float:right;padding-right:0;padding-left:10px;margin-right:0;margin-left:10px;border-right:0;border-left:1px solid #dfdfdf}.available-theme .action-links li{padding-left:8px;margin-left:8px}.ie8 .available-theme .action-links li{padding-left:7px;margin-left:7px}#current-theme .theme-info li:last-child,.theme-options li:last-child,.available-theme .action-links li:last-child{padding-left:0;margin-right:0;border-left:0}.available-theme .action-links .delete-theme{float:left;margin-left:0;margin-right:8px}.available-theme .action-links p{float:right}#current-theme.has-screenshot{padding-left:0;padding-right:330px}#current-theme h4 span{margin-left:0;margin-right:20px}#current-theme img{float:right;width:300px;margin-left:0;margin-right:-330px}.theme-options .load-customize{margin-right:0;margin-left:30px;float:right}.theme-options span{float:right;margin-right:0;margin-left:10px}.theme-options ul{float:right}@media only screen and (max-width:1200px){#current-theme.has-screenshot{padding-right:270px}#current-theme img{margin-right:-270px;width:240px}}#broken-themes{text-align:right}.appearance_page_custom-header .available-headers .default-header{float:right;margin:0 0 20px 20px}.appearance_page_custom-header .random-header{margin:0 0 20px 20px}.appearance_page_custom-header .available-headers label input,.appearance_page_custom-header .random-header label input{margin-right:0;margin-left:10px}.nav-tab{margin:0 0 -1px 6px}h2 .nav-tab{font-family:Tahoma,Arial,sans-serif}.plugins .desc ul,.plugins .desc ol{margin:0 2em 0 0}#wpbody-content .plugins .plugin-title,#wpbody-content .plugins .theme-title{padding-right:0;padding-left:12px}#profile-page .form-table #rich_editing{margin-right:0;margin-left:5px}#profile-page #pass1,#profile-page #pass2,#profile-page #user_login{direction:ltr}#your-profile legend{font-family:Tahoma,Arial,sans-serif}.pressthis a span{background-position:right 5px;padding:8px 27px 8px 11px}.pressthis a:after{right:auto;left:10px;background:transparent;transform:skew(-20deg) rotate(-6deg);-webkit-transform:skew(-20deg) rotate(-6deg);-moz-transform:skew(-20deg) rotate(-6deg)}.pressthis a:hover:after{transform:skew(-20deg) rotate(-9deg);-webkit-transform:skew(-20deg) rotate(-9deg);-moz-transform:skew(-20deg) rotate(-9deg)}#utc-time,#local-time{padding-left:0;padding-right:25px;font-style:normal;font-family:Tahoma,Arial,sans-serif}#wpfooter{margin-left:20px}#wpcontent,#wpfooter{margin-right:165px}.wrap.about-wrap{margin-left:40px;margin-right:20px}.about-wrap h1,.about-text{margin-right:0;margin-left:200px}.about-wrap h2.nav-tab-wrapper{padding-left:0;padding-right:6px}.about-wrap .wp-badge{right:auto;left:0}.about-wrap h2 .nav-tab{margin-right:0;margin-left:3px}.about-wrap .changelog li{margin-left:0;margin-right:3em}.about-wrap .three-col-images .last-feature{float:left}.about-wrap .three-col-images .first-feature{float:right}.about-wrap .feature-section.three-col div{margin-right:0;margin-left:4.999999999%;float:right}.about-wrap .feature-section.three-col h4{text-align:right}.about-wrap .feature-section.three-col img{margin-right:5px;margin-left:0}.about-wrap .feature-section.three-col .last-feature{margin-left:0}.about-wrap .feature-section img{margin:0 0 10px .7%}.about-wrap .feature-section.images-stagger-right img{float:left;margin:0 2em 12px 5px}.about-wrap .feature-section.images-stagger-left img{float:right;margin:0 5px 12px 2em}.about-wrap li.wp-person,.about-wrap li.wp-person img.gravatar{float:right;margin-right:0;margin-left:10px}@media only screen and (max-width:768px){.about-wrap .feature-section img.image-66{float:none}.about-wrap .feature-section.images-stagger-right img.image-66{margin-right:3px}.about-wrap .feature-section.images-stagger-left img.image-66{margin-left:3px}}#template div{margin-right:0;margin-left:190px}.column-author img,.column-username img{float:right;margin-right:0;margin-left:10px}.tagchecklist{margin-left:0;margin-right:14px}.tagchecklist strong{margin-left:0;margin-right:-8px}.tagchecklist span{margin-right:0;margin-left:25px;float:right}.tagchecklist span a{margin:6px -9px 0 0;float:right}#poststuff h2{clear:right}#poststuff h3,.metabox-holder h3{font-family:Tahoma,Arial,sans-serif}.tool-box .title{font-family:Tahoma,Arial,sans-serif}#sidemenu{margin:-30px 315px 0 15px;float:left;padding-left:0;padding-right:10px}#sidemenu a{float:right}table .vers,table .column-visible,table .column-rating{text-align:right}.screen-meta-toggle{right:auto;left:15px}.screen-reader-text,.screen-reader-text span,.ui-helper-hidden-accessible{left:auto;right:-1000em}.screen-reader-shortcut:focus{left:auto;right:6px}* html #template div{margin-left:0}#editorcontainer .wp_themeSkin .mceStatusbar{padding-left:0;padding-right:5px}#editorcontainer .wp_themeSkin .mceStatusbar div{float:right}#editorcontainer .wp_themeSkin .mceStatusbar a.mceResize{float:left}#content-resize-handle{background:transparent url('../images/resize-rtl.gif') no-repeat scroll left bottom;right:auto;left:2px;cursor:sw-resize}.wp-full-overlay .wp-full-overlay-sidebar{margin:0;left:auto;right:0;border-right:0;border-left:1px solid rgba(0,0,0,0.2)}.wp-full-overlay-sidebar:after{right:auto;left:0;box-shadow:inset 5px 0 4px -4px rgba(0,0,0,0.1)}.wp-full-overlay.collapsed,.wp-full-overlay.expanded .wp-full-overlay-sidebar{margin-right:0!important}.wp-full-overlay.expanded{margin-right:300px;margin-left:0}.wp-full-overlay.collapsed .wp-full-overlay-sidebar{margin-right:-300px;margin-left:0}.wp-full-overlay .collapse-sidebar{right:0;left:auto;margin-right:15px}.wp-full-overlay.collapsed .collapse-sidebar{right:100%}.wp-full-overlay .collapse-sidebar-arrow{margin-right:2px;margin-left:0;background:transparent url('../images/arrows.png') no-repeat 0 -108px}.wp-full-overlay.collapsed .collapse-sidebar-arrow{background-position:0 -72px}.wp-full-overlay .collapse-sidebar-label{right:100%;left:auto;margin-right:10px;margin-left:0}.install-theme-info .theme-install{float:left}#wpcontent{margin-left:0;margin-right:165px}#wpbody-content{float:right}#adminmenuwrap{float:right}#adminmenu{clear:right}.inner-sidebar{float:left;clear:left}.has-right-sidebar #post-body{float:right;clear:right;margin-right:0;margin-left:-340px}.has-right-sidebar #post-body-content{margin-right:0;margin-left:300px}#col-right{float:left;clear:left}.alignleft{float:right}.alignright{float:left}.textleft{text-align:right}.textright{text-align:left}body,td,textarea,input,select{font-family:Tahoma,Arial,sans-serif}ul.ul-disc,ul.ul-square,ol.ol-decimal{margin-left:0;margin-right:1.8em}.subsubsub{float:right}.widefat thead th:first-of-type{-webkit-border-top-left-radius:0;-webkit-border-top-right-radius:3px;border-top-left-radius:0;border-top-right-radius:3px}.widefat thead th:last-of-type{-webkit-border-top-right-radius:0;-webkit-border-top-left-radius:3px;border-top-right-radius:0;border-top-left-radius:3px}.widefat tfoot th:first-of-type{-webkit-border-bottom-left-radius:0;-webkit-border-bottom-right-radius:3px;border-bottom-left-radius:0;border-bottom-right-radius:3px}.widefat tfoot th:last-of-type{-webkit-border-bottom-right-radius:0;-webkit-border-bottom-left-radius:3px;border-bottom-right-radius:0;border-bottom-left-radius:3px}.widefat th{text-align:right}.widefat th input{margin:0 8px 0 0}.wrap{margin-right:0;margin-left:15px}.wrap h2,.subtitle{font-family:Tahoma,Arial,sans-serif}.wrap h2{padding-right:0;padding-left:15px}.subtitle{padding-left:0;padding-right:25px}.wrap .add-new-h2{font-family:Tahoma,Arial,sans-serif;margin-left:0;margin-right:4px}.wrap h2.long-header{padding-left:0}#dashboard-widgets-wrap .has-sidebar{margin-right:0;margin-left:-51%}#dashboard-widgets-wrap .has-sidebar .has-sidebar-content{margin-right:0;margin-left:51%}.view-all{right:auto;left:0}#dashboard_right_now p.sub,#dashboard-widgets h4,a.rsswidget,#dashboard_plugins h4,#dashboard_plugins h5,#dashboard_recent_comments .comment-meta .approve,#dashboard_right_now td.b,#dashboard_right_now .versions a{font-family:Tahoma,Arial,sans-serif}#dashboard_right_now p.sub{left:auto;right:15px}#dashboard_right_now td.b{padding-right:0;padding-left:6px;text-align:left}#dashboard_right_now .t{padding-right:0;padding-left:12px}#dashboard_right_now .table_content{float:right}#dashboard_right_now .table_discussion{float:left}#dashboard_right_now a.button{float:left;clear:left}#dashboard_plugins .inside span{padding-left:0;padding-right:5px}#dashboard-widgets h3 .postbox-title-action{right:auto;left:10px}.js #dashboard-widgets h3 .postbox-title-action{right:auto;left:30px}#the-comment-list .pingback{padding-left:0!important;padding-right:9px!important}#the-comment-list .comment-item{padding:1em 70px 1em 10px}#the-comment-list .comment-item .avatar{float:right;margin-left:0;margin-right:-60px}.rss-widget cite{text-align:left}.rss-widget span.rss-date{font-family:Tahoma,Arial,sans-serif;margin-left:0;margin-right:3px}#dashboard-widgets #dashboard_quick_press form p.submit input{float:right}#dashboard-widgets #dashboard_quick_press form p.submit #save-post{margin:0 1px 0 .7em}#dashboard-widgets #dashboard_quick_press form p.submit #publish{float:left}#dashboard-widgets #dashboard_quick_press form p.submit .spinner{margin:4px 0 0 6px}#dashboard_recent_drafts h4 abbr{font-family:Tahoma,Arial,sans-serif;margin-left:0;margin-right:3px}body.login{font-family:Tahoma,Arial,sans-serif}.login form{margin-right:8px;margin-left:0}.login form .forgetmenot{float:right}.login form .submit{float:left}#login form .submit input{font-family:Tahoma,Arial,sans-serif}.login #nav,.login #backtoblog{margin:0 16px 0 0}#login_error,.login .message{margin:0 8px 16px 0}.login #user_pass,.login #user_login,.login #user_email{margin-left:6px;margin-right:0;direction:ltr}.login h1 a{text-decoration:none}.login .button-primary{float:left}#nav-menus-frame{margin-right:300px;margin-left:0}#wpbody-content #menu-settings-column{margin-right:-300px;margin-left:0;float:right}#menu-management-liquid{float:right}#menu-management{margin-left:20px;margin-right:0}.post-body-plain{padding:10px 0 0 10px}#menu-management .nav-tabs-arrow-left{right:0;left:auto}#menu-management .nav-tabs-arrow-right{left:0;right:auto;text-align:left;font-family:Tahoma,Arial,sans-serif}#menu-management .nav-tabs{padding-right:20px;padding-left:10px}.js #menu-management .nav-tabs{float:right;margin-right:0;margin-left:-400px}#select-nav-menu-container{text-align:left}#wpbody .open-label{float:right}#wpbody .open-label span{padding-left:10px;padding-right:0}.js .input-with-default-title{font-style:normal;font-weight:bold}.postbox .howto input{float:left}#nav-menu-theme-locations .button-controls{text-align:left}.meta-sep,.submitcancel{float:right}#cancel-save{margin-left:0;margin-right:20px}.button.right,.button-secondary.right,.button-primary.right{float:left}.list-controls{float:right}.add-to-menu{float:left}#add-custom-link label span{float:right;padding-left:5px;padding-right:0}.nav-menus-php .howto span{float:right}.list li .menu-item-title input{margin-left:3px;margin-right:0}.menu-item-handle{padding-right:10px;padding-left:0}.menu-item-edit-active .menu-item-handle{-webkit-border-bottom-left-radius:0;-webkit-border-bottom-right-radius:0;border-bottom-left-radius:0;border-bottom-right-radius:0}.menu-item-handle .item-title{margin-left:13em;margin-right:0}.menu-item-handle .item-edit{right:auto;left:-20px}.menu-item-depth-0{margin-right:0;margin-left:0}.menu-item-depth-1{margin-right:30px;margin-left:0}.menu-item-depth-2{margin-right:60px;margin-left:0}.menu-item-depth-3{margin-right:90px;margin-left:0}.menu-item-depth-4{margin-right:120px;margin-left:0}.menu-item-depth-5{margin-right:150px;margin-left:0}.menu-item-depth-6{margin-right:180px;margin-left:0}.menu-item-depth-7{margin-right:210px;margin-left:0}.menu-item-depth-8{margin-right:240px;margin-left:0}.menu-item-depth-9{margin-right:270px;margin-left:0}.menu-item-depth-10{margin-right:300px;margin-left:0}.menu-item-depth-11{margin-right:330px;margin-left:0}.menu-item-depth-0 .menu-item-transport{margin-right:0;margin-left:0}.menu-item-depth-1 .menu-item-transport{margin-right:-30px;margin-left:0}.menu-item-depth-2 .menu-item-transport{margin-right:-60px;margin-left:0}.menu-item-depth-3 .menu-item-transport{margin-right:-90px;margin-left:0}.menu-item-depth-4 .menu-item-transport{margin-right:-120px;margin-left:0}.menu-item-depth-5 .menu-item-transport{margin-right:-150px;margin-left:0}.menu-item-depth-6 .menu-item-transport{margin-right:-180px;margin-left:0}.menu-item-depth-7 .menu-item-transport{margin-right:-210px;margin-left:0}.menu-item-depth-8 .menu-item-transport{margin-right:-240px;margin-left:0}.menu-item-depth-9 .menu-item-transport{margin-right:-270px;margin-left:0}.menu-item-depth-10 .menu-item-transport{margin-right:-300px;margin-left:0}.menu-item-depth-11 .menu-item-transport{margin-right:-330px;margin-left:0}.item-type{padding-left:10px;padding-right:0}.item-controls{left:20px;right:auto}.item-controls .item-order{padding-left:10px;padding-right:0}.item-edit{left:-20px;right:auto;-webkit-border-bottom-right-radius:3px;-webkit-border-bottom-left-radius:0;border-bottom-right-radius:3px;border-bottom-left-radius:0}.menu-item-settings{padding:10px 10px 10px 0;border-width:0 1px 1px 1px}#custom-menu-item-url{direction:ltr}.link-to-original{font-style:normal;font-weight:bold}.link-to-original a{padding-right:4px;padding-left:0}.menu-item-settings .description-thin,.menu-item-settings .description-wide{margin-left:10px;margin-right:0;float:right}.major-publishing-actions .publishing-action{text-align:left;float:left}.major-publishing-actions .delete-action{text-align:right;float:right;padding-left:15px;padding-right:0}.menu-name-label{margin-left:15px;margin-right:0}.auto-add-pages{float:right}div.star-holder{background:url('../images/stars-rtl.png?ver=20121108') repeat-x bottom right}div.star-holder .star-rating{background:url('../images/stars-rtl.png?ver=20121108') repeat-x top right;float:right}#plugin-information ul#sidemenu{left:auto;right:0}#plugin-information h2{margin-right:0;margin-left:200px}#plugin-information .fyi{margin-left:5px;margin-right:20px}#plugin-information .fyi h2{margin-left:0}#plugin-information .fyi ul{padding:10px 7px 10px 5px}#plugin-information #section-screenshots li p{padding-left:0;padding-right:20px}#plugin-information #section-screenshots ol,#plugin-information .updated,#plugin-information pre{margin-right:0;margin-left:215px}#plugin-information .updated,#plugin-information .error{clear:none;direction:rtl}#plugin-information #section-holder .section{direction:ltr}.posting{margin-left:212px;margin-right:0;position:relative}h3.tb{margin-left:0;margin-right:5px}#publish{float:left}.postbox .handlediv{float:left}.actions li{float:right;margin-right:0;margin-left:10px}#extra-fields .actions{margin:-23px 0 0 -7px}#img_container a{float:right}#category-add input,#category-add select{font-family:Tahoma,Arial,sans-serif}#tagsdiv #newtag{margin-right:0;margin-left:5px}#tagadd{margin-left:0;margin-right:3px}#tagchecklist span{margin-left:.5em;margin-right:10px;float:right}#tagchecklist span a{margin:6px -9px 0 0;float:right}.submit input,.button,.button-primary,.button-secondary,#postcustomstuff .submit input{font-family:Tahoma,Arial,sans-serif}.ac_results li{text-align:right}#TB_ajaxContent #options{right:auto;left:25px}#post_status{margin-left:0;margin-right:10px}#templateside{float:left}#template textarea,#docs-list{direction:ltr}.theme-details .theme-version{float:right}.theme-details .star-holder{float:left}.feature-filter .feature-group{float:right}.feature-filter .feature-group li{padding-right:0;padding-left:25px}div.widget-liquid-left{float:right;clear:right;margin-right:0;margin-left:-325px}div#widgets-left{margin-right:5px;margin-left:325px}div.widget-liquid-right{float:left;clear:left}.inactive-sidebar .widget{float:right}div.sidebar-name h3{font-family:Tahoma,Arial,sans-serif}#widget-list .widget{float:right}.inactive-sidebar .widget-placeholder{float:right}.widget-top .widget-title-action{float:left}.widget-control-edit{padding:0 0 0 8px}.sidebar-name-arrow{float:left}.press-this-sidebar{float:left}.press-this #header-logo,.press-this #wphead h1{float:right}.ltr{direction:ltr}@media print,(-o-min-device-pixel-ratio:5/4),(-webkit-min-device-pixel-ratio:1.25),(min-resolution:120dpi){.post-com-count{background-image:url('../images/bubble_bg-rtl-2x.gif');background-size:18px 100px}#content-resize-handle,#post-body .wp_themeSkin .mceStatusbar a.mceResize{background:transparent url('../images/resize-rtl-2x.gif') no-repeat scroll right bottom;background-size:11px 11px}.wp-full-overlay .collapse-sidebar-arrow{background-image:url('../images/arrows-2x.png');background-size:15px 123px}div.star-holder{background:url('../images/stars-rtl-2x.png?ver=20121108') repeat-x bottom right;background-size:21px 37px}div.star-holder .star-rating{background:url('../images/stars-rtl-2x.png?ver=20121108') repeat-x top right;background-size:21px 37px}#post-body .wp_themeSkin .mceStatusbar a.mceResize,#content-resize-handle{background:transparent url('../images/resize-rtl-2x.gif') no-repeat scroll left bottom}}body.locale-he-il,.locale-he-il .quicktags,.locale-he-il .search,.locale-he-il .howto,.locale-he-il #adminmenu .awaiting-mod,.locale-he-il #adminmenu span.update-plugins,.locale-he-il #sidemenu li a span.update-plugins,.locale-he-il .post-com-count-wrapper,.locale-he-il .widefat th,.locale-he-il .tablenav .displaying-num,.locale-he-il .inline-edit-row fieldset span.title,.locale-he-il .inline-edit-row fieldset span.checkbox-title,.locale-he-il .inline-edit-row fieldset ul.cat-checklist label,.locale-he-il .inline-edit-row .catshow,.locale-he-il .inline-edit-row .cathide,.locale-he-il .inline-edit-row #bulk-titles div,.locale-he-il p.help,.locale-he-il p.description,.locale-he-il span.description,.locale-he-il .form-wrap p,.locale-he-il h2 .nav-tab,.locale-he-il #your-profile legend,.locale-he-il #utc-time,.locale-he-il #local-time,.locale-he-il #poststuff h3,.locale-he-il .metabox-holder h3,.locale-he-il .tool-box .title,.locale-he-il td,.locale-he-il textarea,.locale-he-il input,.locale-he-il select,.locale-he-il .wrap h2,.locale-he-il .subtitle,.locale-he-il .wrap .add-new-h2,.locale-he-il #dashboard_right_now p.sub,.locale-he-il #dashboard-widgets h4,.locale-he-il a.rsswidget,.locale-he-il #dashboard_plugins h4,.locale-he-il #dashboard_plugins h5,.locale-he-il #dashboard_recent_comments .comment-meta .approve,.locale-he-il #dashboard_right_now td.b,.locale-he-il #dashboard_right_now .versions a,.locale-he-il .rss-widget span.rss-date,.locale-he-il #dashboard_recent_drafts h4 abbr,body.login.locale-he-il,.locale-he-il #login form .submit input,.locale-he-il #menu-management .nav-tabs-arrow-right,.locale-he-il #category-add input,.locale-he-il #category-add select,.locale-he-il .submit input,.locale-he-il .button,.locale-he-il .button-primary,.locale-he-il .button-secondary,.locale-he-il #postcustomstuff .submit input,.locale-he-il div.sidebar-name h3{font-family:Arial,sans-serif}.locale-he-il em{font-style:normal;font-weight:bold}
\ No newline at end of file
--- a/web/wp-admin/css/wp-admin.css	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-admin/css/wp-admin.css	Wed Dec 19 17:46:52 2012 -0800
@@ -1,1 +1,8589 @@
-#wpwrap{height:auto;min-height:100%;width:100%;position:relative}#wpcontent{height:100%}#wpcontent,#footer{margin-left:165px}.folded #wpcontent,.folded #footer{margin-left:52px}#wpbody-content{padding-bottom:65px;float:left;width:100%}#adminmenuback,#adminmenuwrap,#adminmenu,#adminmenu .wp-submenu,#adminmenu .wp-submenu-wrap,.folded #adminmenu .wp-has-current-submenu .wp-submenu{width:145px}#adminmenuback{position:absolute;top:0;bottom:0;z-index:-1}#adminmenu{clear:left;margin:0;padding:0;list-style:none}.folded #adminmenuback,.folded #adminmenuwrap,.folded #adminmenu,.folded #adminmenu li.menu-top{width:32px}.inner-sidebar{float:right;clear:right;display:none;width:281px;position:relative}.columns-2 .inner-sidebar{margin-right:auto;width:286px;display:block}.inner-sidebar #side-sortables,.columns-2 .inner-sidebar #side-sortables{min-height:300px;width:280px;padding:0}.has-right-sidebar .inner-sidebar{display:block}.has-right-sidebar #post-body{float:left;clear:left;width:100%;margin-right:-2000px}.has-right-sidebar #post-body-content{margin-right:300px;float:none;width:auto}#col-container,#col-left,#col-right{overflow:hidden;padding:0;margin:0}#col-left{width:35%}#col-right{float:right;clear:right;width:65%}.col-wrap{padding:0 7px}.alignleft{float:left}.alignright{float:right}.textleft{text-align:left}.textright{text-align:right}.clear{clear:both}.screen-reader-text,.screen-reader-text span{position:absolute;left:-1000em;height:1px;width:1px;overflow:hidden}.hidden,.js .closed .inside,.js .hide-if-js,.no-js .hide-if-no-js{display:none}input[type="text"],input[type="password"],input[type="number"],input[type="search"],input[type="email"],input[type="url"],textarea{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box}input[type="checkbox"],input[type="radio"]{vertical-align:text-top;padding:0;margin:1px 0 0}input[type="search"]{-webkit-appearance:textfield}input[type="search"]::-webkit-search-decoration{display:none}html,body{height:100%;margin:0;padding:0}body{font-family:sans-serif;font-size:12px;line-height:1.4em;min-width:600px}body.iframe{min-width:0}body.login{background:#fbfbfb;min-width:0}iframe,img{border:0}td,textarea,input,select{font-family:inherit;font-size:inherit;font-weight:inherit}td,textarea{line-height:inherit}input,select{line-height:15px}a,input,select{outline:0}blockquote,q{quotes:none}blockquote:before,blockquote:after,q:before,q:after{content:'';content:none}p{margin:1em 0}blockquote{margin:1em}label{cursor:pointer}li,dd{margin-bottom:6px}textarea,input,select{margin:1px;padding:3px}h1,h2,h3,h4,h5,h6{display:block;font-weight:bold}h1{font-size:2em;margin:.67em 0}h2{font-size:1.5em;margin:.83em 0}h3{font-size:1.17em;margin:1em 0}h4{font-size:1em;margin:1.33em 0}h5{font-size:.83em;margin:1.67em 0}h6{font-size:.67em;margin:2.33em 0}ul,ol{padding:0}ul{list-style:none}ol{list-style-type:decimal;margin-left:2em}ul.ul-disc{list-style:disc outside}ul.ul-square{list-style:square outside}ol.ol-decimal{list-style:decimal outside}ul.ul-disc,ul.ul-square,ol.ol-decimal{margin-left:1.8em}ul.ul-disc>li,ul.ul-square>li,ol.ol-decimal>li{margin:0 0 .5em}.code,code{font-family:Consolas,Monaco,monospace}kbd,code{padding:1px 3px;margin:0 1px;font-size:11px}.subsubsub{list-style:none;margin:8px 0 5px;padding:0;white-space:nowrap;font-size:12px;float:left}.subsubsub a{line-height:2;padding:.2em;text-decoration:none}.subsubsub a .count,.subsubsub a.current .count{color:#999;font-weight:normal}.subsubsub a.current{font-weight:bold;background:0;border:0}.subsubsub li{display:inline;margin:0;padding:0}.widefat,div.updated,div.error,.wrap .add-new-h2,textarea,input[type="text"],input[type="password"],input[type="file"],input[type="button"],input[type="submit"],input[type="reset"],input[type="email"],input[type="number"],input[type="search"],input[type="tel"],input[type="url"],select,.tablenav .tablenav-pages a,.tablenav-pages span.current,#titlediv #title,.postbox,#postcustomstuff table,#postcustomstuff input,#postcustomstuff textarea,.imgedit-menu div,.plugin-update-tr .update-message,#poststuff .inside .the-tagcloud,.login form,#login_error,.login .message,#menu-management .menu-edit,.nav-menus-php .list-container,.menu-item-handle,.link-to-original,.nav-menus-php .major-publishing-actions .form-invalid,.press-this #message,#TB_window,.tbtitle,.highlight,.feature-filter,#widget-list .widget-top,.editwidget .widget-inside{-webkit-border-radius:3px;border-radius:3px;border-width:1px;border-style:solid}.widefat{border-spacing:0;width:100%;clear:both;margin:0}.widefat *{word-wrap:break-word}.widefat a{text-decoration:none}.widefat thead th:first-of-type{-webkit-border-top-left-radius:3px;border-top-left-radius:3px}.widefat thead th:last-of-type{-webkit-border-top-right-radius:3px;border-top-right-radius:3px}.widefat tfoot th:first-of-type{-webkit-border-bottom-left-radius:3px;border-bottom-left-radius:3px}.widefat tfoot th:last-of-type{-webkit-border-bottom-right-radius:3px;border-bottom-right-radius:3px}.widefat td,.widefat th{border-width:1px 0;border-style:solid}.widefat tfoot th{border-bottom:0}.widefat .no-items td{border-bottom-width:0}.widefat td{font-size:12px;padding:4px 7px 2px;vertical-align:top}.widefat td p,.widefat td ol,.widefat td ul{font-size:12px}.widefat th{padding:7px 7px 8px;text-align:left;line-height:1.3em;font-size:14px}.widefat th input{margin:0 0 0 8px;padding:0;vertical-align:text-top}.widefat .check-column{width:2.2em;padding:11px 0 0;vertical-align:top}.widefat tbody th.check-column{padding:9px 0 22px}.widefat .num,.column-comments,.column-links,.column-posts{text-align:center}.widefat th#comments{vertical-align:middle}.wrap{margin:4px 15px 0 0}div.updated,div.error{padding:0 .6em;margin:5px 15px 2px}div.updated p,div.error p{margin:.5em 0;padding:2px}.wrap div.updated,.wrap div.error,.media-upload-form div.error{margin:5px 0 15px}.wrap h2,.subtitle{font-weight:normal;margin:0;text-shadow:#fff 0 1px 0}.wrap h2{font-size:23px;padding:9px 15px 4px 0;line-height:29px}.subtitle{font-size:14px;padding-left:25px}.wrap .add-new-h2{font-family:sans-serif;margin-left:4px;padding:3px 8px;position:relative;top:-3px;text-decoration:none;font-size:12px;border:0 none}.wrap h2.long-header{padding-right:0}div.sidebar-name h3,#menu-management .nav-tab,#dashboard_plugins h5,a.rsswidget,#dashboard_right_now td.b,#dashboard-widgets h4,.tool-box .title,#poststuff h3,.metabox-holder h3,.pressthis a,#your-profile legend,.inline-edit-row fieldset span.title,.inline-edit-row fieldset span.checkbox-title,.tablenav .displaying-num,.widefat th,.quicktags,.search{font-family:Georgia,"Times New Roman","Bitstream Charter",Times,serif}h2 .nav-tab,.wrap h2,.subtitle,.login form .input{font-family:"HelveticaNeue-Light","Helvetica Neue Light","Helvetica Neue",sans-serif}.quicktags,.search{font-size:12px}.icon32{float:left;height:34px;margin:7px 8px 0 0;width:36px}.icon16{height:18px;width:18px;padding:6px 6px;margin:-6px 0 0 -8px;float:left}.key-labels label{line-height:24px}.pre{white-space:pre-wrap;white-space:-moz-pre-wrap!important;white-space:-pre-wrap;white-space:-o-pre-wrap;word-wrap:break-word}.howto{font-style:italic;display:block;font-family:sans-serif}p.install-help{margin:8px 0;font-style:italic}.no-break{white-space:nowrap}.wp-admin select{padding:2px;height:2em}.wp-admin select[multiple]{height:auto}select option{padding:2px}.submit{padding:1.5em 0;margin:5px 0;-webkit-border-bottom-left-radius:3px;-webkit-border-bottom-right-radius:3px;border-bottom-left-radius:3px;border-bottom-right-radius:3px}form p.submit a.cancel:hover{text-decoration:none}.submit input,.button,input.button,.button-primary,input.button-primary,.button-secondary,input.button-secondary,.button-highlighted,input.button-highlighted,#postcustomstuff .submit input{text-decoration:none;font-size:12px!important;line-height:13px;padding:3px 8px;cursor:pointer;border-width:1px;border-style:solid;-webkit-border-radius:11px;border-radius:11px;-moz-box-sizing:content-box;-webkit-box-sizing:content-box;box-sizing:content-box}#minor-publishing-actions input,#major-publishing-actions input,#minor-publishing-actions .preview{min-width:80px;text-align:center}textarea.all-options,input.all-options{width:250px}input.large-text,textarea.large-text{width:99%}input.regular-text,#adduser .form-field input{width:25em}input.small-text{width:50px}input[type="number"].small-text{width:60px}#doaction,#doaction2,#post-query-submit{margin-right:8px}.tablenav select[name="action"],.tablenav select[name="action2"]{width:130px}.tablenav select[name="m"]{width:155px}.tablenav select#cat{width:170px}#wpcontent option{padding:2px}#timezone_string option{margin-left:1em}label,#your-profile label+a{vertical-align:middle}#misc-publishing-actions label{vertical-align:baseline}#pass-strength-result{border-style:solid;border-width:1px;float:left;margin:13px 5px 5px 1px;padding:3px 5px;text-align:center;width:200px;display:none}.indicator-hint{padding-top:8px}p.search-box{float:right;margin:0}input[type="text"].ui-autocomplete-loading{background:transparent url('../images/loading.gif') no-repeat right center;visibility:visible}ul#add-to-blog-users{margin:0 0 0 14px}.ui-autocomplete-input.open{border-bottom-right-radius:0;border-bottom-left-radius:0}.ui-autocomplete{padding:0;margin:0;list-style:none;position:absolute;z-index:10000;border-bottom-right-radius:3px;border-bottom-left-radius:3px;border-width:1px;border-style:solid}.ui-autocomplete li{margin-bottom:0;white-space:nowrap;text-align:left}.ui-autocomplete li a{display:block;height:100%;padding:4px 10px}.ui-autocomplete li a.ui-state-hover{cursor:pointer}#major-publishing-actions{padding:10px 10px 8px;clear:both;border-top:1px solid #f5f5f5;margin-top:-2px}#delete-action{line-height:25px;vertical-align:middle;text-align:left;float:left}#publishing-action{text-align:right;float:right;line-height:23px}#misc-publishing-actions{padding:6px 0 0}.misc-pub-section{padding:6px 10px 8px;border-width:1px 0;border-style:solid}.misc-pub-section:first-child{border-top-width:0}.misc-pub-section-last{border-bottom-width:0}#minor-publishing-actions{padding:10px 10px 2px 8px;text-align:right}#minor-publishing{border-bottom-width:1px;border-bottom-style:solid;-webkit-box-shadow:0 1px 0 #fff;-moz-box-shadow:0 1px 0 #fff;box-shadow:0 1px 0 #fff}#save-post{float:left}#minor-publishing .ajax-loading{padding:3px 0 0 4px;float:left}.preview{float:right}#sticky-span{margin-left:18px}.side-info{margin:0;padding:4px;font-size:11px}.side-info h5{padding-bottom:7px;font-size:14px;margin:12px 2px 5px;border-bottom-width:1px;border-bottom-style:solid}.side-info ul{margin:0;padding-left:18px;list-style:square}a.button,a.button-primary,a.button-secondary{line-height:15px;padding:3px 10px;white-space:nowrap;-webkit-border-radius:10px}.approve,.unapproved .unapprove{display:none}.unapproved .approve,.spam .approve,.trash .approve{display:inline}td.action-links,th.action-links{text-align:right}.describe .del-link{padding-left:5px}#update-nag,.update-nag{line-height:19px;padding:5px 0;font-size:12px;text-align:center;margin:-1px 15px 0 5px;border-width:1px;border-style:solid;-webkit-border-bottom-right-radius:3px;-webkit-border-bottom-left-radius:3px;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.plugins .plugin-update{padding:0}.plugin-update .update-message{margin:0 10px 8px 31px;font-weight:bold}ul#dismissed-updates{display:none}form.upgrade{margin-top:8px}form.upgrade .hint{font-style:italic;font-size:85%;margin:-0.5em 0 2em 0}.ajax-feedback{visibility:hidden;vertical-align:bottom}#ajax-response.alignleft{margin-left:2em}#adminmenu a,#sidemenu a,#taglist a,#catlist a{text-decoration:none}#screen-options-wrap,#contextual-help-wrap{margin:0;padding:8px 20px 12px;position:relative;overflow:auto}#screen-meta .screen-reader-text{visibility:hidden}#screen-meta-links{margin:0 24px 0 0}#screen-meta{display:none;position:relative;margin:0 15px 0 5px;border-width:0 1px 1px;border-style:none solid solid}#screen-options-link-wrap,#contextual-help-link-wrap{float:right;height:23px;padding:0;margin:0 0 0 6px;font-family:sans-serif}#screen-options-link-wrap,#contextual-help-link-wrap,#screen-meta{-webkit-border-bottom-left-radius:3px;-webkit-border-bottom-right-radius:3px;border-bottom-left-radius:3px;border-bottom-right-radius:3px}#screen-meta-links .screen-meta-toggle{position:relative;top:-1px}#screen-meta-links a.show-settings{text-decoration:none;z-index:1;padding:1px 16px 0 6px;height:22px;line-height:22px;font-size:12px;display:block;text-shadow:rgba(255,255,255,0.7) 0 1px 0}#screen-meta-links a.show-settings:hover{text-decoration:none}.toggle-arrow{background-repeat:no-repeat;background-position:top left;background-color:transparent;height:22px;line-height:22px;display:block}.toggle-arrow-active{background-position:bottom left}#screen-options-wrap h5,#contextual-help-wrap h5{margin:8px 0;font-size:13px}.metabox-prefs label{display:inline-block;padding-right:15px;white-space:nowrap;line-height:30px}.metabox-prefs label input{margin:0 5px 0 2px}.metabox-prefs .columns-prefs label input{margin:0 2px}.metabox-prefs label a{display:none}#contextual-help-wrap{padding:0;margin-left:-4px}#contextual-help-columns{position:relative}#contextual-help-back{position:absolute;top:0;bottom:0;left:150px;right:170px;border-width:0 1px;border-style:solid}#contextual-help-wrap.no-sidebar #contextual-help-back{right:0;border-right-width:0;-webkit-border-bottom-right-radius:2px;border-bottom-right-radius:2px}.contextual-help-tabs{float:left;width:150px;margin:0}.contextual-help-tabs ul{margin:1em 0}.contextual-help-tabs li{margin-bottom:0;list-style-type:none;border-style:solid;border-width:1px 0;border-color:transparent}.contextual-help-tabs a{display:block;padding:5px 5px 5px 12px;line-height:18px;text-decoration:none}.contextual-help-tabs .active{padding:0;margin:0 -1px 0 0;border-width:1px 0 1px 1px;border-style:solid}.contextual-help-tabs-wrap{padding:0 20px;overflow:auto}.help-tab-content{display:none;margin:0 22px 12px 0;line-height:1.6em}.help-tab-content.active{display:block}.help-tab-content li{list-style-type:disc;margin-left:18px}.contextual-help-sidebar{width:150px;float:right;padding:0 8px 0 12px;overflow:auto}#adminmenuback,#adminmenuwrap{border-width:0 1px 0 0;border-style:solid}#adminmenuwrap{position:relative;float:left}#adminmenushadow{position:absolute;top:0;right:0;bottom:0;width:6px;z-index:20}#adminmenu *{-webkit-user-select:none;-moz-user-select:none;user-select:none}#adminmenu .wp-submenu{list-style:none;padding:0;margin:0;overflow:hidden}#adminmenu li .wp-submenu,.folded #adminmenu .wp-has-current-submenu .wp-submenu{display:none;position:absolute;top:-1px;left:146px;z-index:999;overflow:hidden}.js #adminmenu .wp-submenu.sub-open,.folded #adminmenu .wp-has-current-submenu .wp-submenu.sub-open,.no-js #adminmenu .wp-has-submenu:hover .wp-submenu,#adminmenu .wp-has-current-submenu .wp-submenu,#adminmenu li.focused .wp-submenu{display:block}#adminmenu .wp-has-current-submenu .wp-submenu{position:relative;z-index:2;top:auto;left:auto;right:auto;bottom:auto;padding:0}#adminmenu .wp-has-current-submenu .wp-submenu-wrap{-moz-box-shadow:none;-webkit-box-shadow:none;box-shadow:none}.folded #adminmenu .wp-submenu,.folded #adminmenu .wp-has-current-submenu .wp-submenu{top:-5px;left:26px}#adminmenu .wp-submenu.sub-open,#adminmenu li.focused.wp-not-current-submenu .wp-submenu,.folded #adminmenu li.focused.wp-has-current-submenu .wp-submenu,.folded #adminmenu .wp-has-current-submenu .wp-submenu.sub-open,.no-js #adminmenu .wp-has-submenu:hover .wp-submenu,.no-js.folded #adminmenu .wp-has-current-submenu:hover .wp-submenu{padding:0 8px 8px 0}.no-js #adminmenu .wp-has-current-submenu:hover .wp-submenu,#adminmenu .wp-has-current-submenu .wp-submenu{padding:0}#adminmenu .wp-submenu a{font-size:12px;line-height:18px}#adminmenu a.menu-top,#adminmenu .wp-submenu-head{font-size:13px;line-height:18px}#adminmenu div.wp-submenu-head{display:none}.folded #adminmenu div.wp-submenu-head{display:block}.folded #adminmenu a.menu-top,body.no-js #adminmenu .wp-menu-toggle,.folded #adminmenu div.wp-menu-toggle{display:none}#adminmenu div.wp-menu-image{float:left;width:28px;height:28px}.folded #adminmenu div.wp-menu-image{width:30px}#adminmenu li{margin:0;padding:0;cursor:pointer}#adminmenu a{display:block;line-height:18px;padding:2px 5px}#adminmenu li.menu-top{min-height:29px;position:relative}#adminmenu a.menu-top{font-weight:bold;line-height:18px;min-width:10em;padding:5px 5px;border-width:1px 0 1px;border-style:solid}#adminmenu li.wp-menu-open{border-width:0 0 1px;border-style:solid}#adminmenu .wp-submenu ul{padding:4px 0}#adminmenu .wp-submenu a{margin:0}#adminmenu li li{margin-left:8px}#adminmenu .wp-submenu a,#adminmenu li li a,.folded #adminmenu .wp-not-current-submenu li a{padding-left:12px}#adminmenu .wp-not-current-submenu li a{padding-left:18px}.folded #adminmenu li li{margin-left:0}.folded #adminmenu li li a{padding-left:0}.wp-menu-arrow{display:none;cursor:auto;z-index:25;position:absolute;right:100%;margin:0;height:30px;width:6px;-moz-transform:translate(146px);-webkit-transform:translate(146px);-o-transform:translate(146px);-ms-transform:translate(146px);transform:translate(146px)}#adminmenu li.wp-has-current-submenu .wp-menu-arrow,#adminmenu li.menu-top:hover .wp-menu-arrow,#adminmenu li.current .wp-menu-arrow,#adminmenu li.focused .wp-menu-arrow,#adminmenu li.menu-top.wp-has-submenu:hover .wp-menu-arrow div{display:block}#adminmenu li.wp-not-current-submenu:hover .wp-menu-arrow div{display:none}#adminmenu li.menu-top:hover .wp-menu-arrow,#adminmenu li.menu-top.focused .wp-menu-arrow{z-index:1001}.ie8 #adminmenu li.menu-top:hover .wp-menu-arrow{display:none}#adminmenu .wp-menu-arrow div{position:absolute;top:7px;left:-1px;width:14px;height:15px;-moz-transform:matrix(-0.6,1,0.6,1,0,0);-webkit-transform:matrix(-0.6,1,0.6,1,0,0);-o-transform:matrix(-0.6,1,0.6,1,0,0);-ms-transform:matrix(-0.6,1,0.6,1,0,0);transform:matrix(-0.6,1,0.6,1,0,0)}#adminmenu li.wp-not-current-submenu .wp-menu-arrow{-moz-transform:translate(145px);-webkit-transform:translate(145px);-o-transform:translate(145px);-ms-transform:translate(145px);transform:translate(145px);height:28px;border-width:1px 0;border-style:solid}.folded .wp-menu-arrow{-moz-transform:translate(33px);-webkit-transform:translate(33px);-o-transform:translate(33px);-ms-transform:translate(33px);transform:translate(33px)}#adminmenu .wp-not-current-submenu .wp-menu-arrow div{width:15px;top:6px;border-width:0 0 1px 1px;border-style:solid}.wp-menu-arrow,.folded #adminmenu li.menu-top:hover .wp-menu-arrow{display:none}.folded #adminmenu li.current:hover .wp-menu-arrow,.folded #adminmenu li.menu-top.wp-menu-open:hover .wp-menu-arrow{display:block;z-index:125}#adminmenu .wp-submenu li{padding:0;margin:0}.folded #adminmenu li.menu-top{border-width:1px 0;border-style:solid none}#adminmenu .wp-menu-image img{float:left;padding:5px 0 0 2px;opacity:.6;filter:alpha(opacity=60)}#adminmenu li.menu-top:hover .wp-menu-image img,#adminmenu li.wp-has-current-submenu .wp-menu-image img{opacity:1;filter:alpha(opacity=100)}#adminmenu li.wp-menu-separator{height:3px;padding:0;margin:0;border-width:1px 0;border-style:solid;cursor:inherit}#adminmenu div.separator{height:1px;padding:0;border-width:1px 0 0 0;border-style:solid}#adminmenu .wp-submenu .wp-submenu-head{padding:6px 4px 5px 10px;cursor:default;border-width:1px 0;border-style:solid}#adminmenu li .wp-submenu-wrap{border-width:1px 1px 1px 0;border-style:solid solid solid none;position:relative;-webkit-border-bottom-right-radius:3px;-webkit-border-top-right-radius:3px;border-bottom-right-radius:3px;border-top-right-radius:3px}#adminmenu li.wp-menu-open .wp-submenu-wrap{border:0 none}.folded #adminmenu .wp-submenu .wp-submenu-wrap{margin-top:3px}.folded #adminmenu .wp-has-current-submenu{margin-bottom:1px}.folded #adminmenu .wp-has-current-submenu.menu-top-last{margin-bottom:0}.folded #adminmenu .wp-has-current-submenu .wp-submenu-wrap{margin-top:4px}.folded #adminmenu .wp-submenu ul{border-width:0 0 0 1px;border-style:solid}.folded #adminmenu .wp-submenu a{padding-left:10px}.folded #adminmenu a.wp-has-submenu{margin-left:40px}#adminmenu .wp-menu-toggle{width:18px;clear:right;float:right;margin:1px 0 0;height:27px;padding:1px 2px 0 0;cursor:pointer}#adminmenu .wp-menu-image a{height:24px}#adminmenu .awaiting-mod,#adminmenu span.update-plugins,#sidemenu li a span.update-plugins{position:absolute;font-family:sans-serif;font-size:9px;line-height:17px;font-weight:bold;margin-top:1px;margin-left:7px;-webkit-border-radius:10px;border-radius:10px}#adminmenu li .awaiting-mod span,#adminmenu li span.update-plugins span,#sidemenu li a span.update-plugins span{display:block;padding:0 6px}#adminmenu li span.count-0,#sidemenu li a .count-0{display:none}#collapse-menu{font-size:12px;line-height:34px}.folded #collapse-menu span{display:none}#collapse-button,#collapse-button div{width:15px;height:15px}#collapse-button{float:left;margin:8px 6px;border-width:1px;border-style:solid;-webkit-border-radius:10px;border-radius:10px}@media only screen and (max-width:900px){#wpcontent,#footer{margin-left:52px}#adminmenuback,#adminmenuwrap,#adminmenu,#adminmenu li.menu-top{width:32px}#adminmenu .wp-has-current-submenu .wp-submenu{display:none;position:absolute;width:145px;z-index:999;overflow:hidden}#adminmenu .wp-has-current-submenu .wp-submenu.sub-open{display:block}#adminmenu li .wp-submenu,#adminmenu .wp-has-current-submenu .wp-submenu{top:-5px;left:26px}#adminmenu li.focused.wp-has-current-submenu .wp-submenu,#adminmenu .wp-has-current-submenu .wp-submenu.sub-open{padding:0 8px 8px 0}#adminmenu div.wp-submenu-head{display:block}#adminmenu a.menu-top,#adminmenu div.wp-menu-toggle{display:none}#adminmenu div.wp-menu-image{width:30px}#adminmenu .wp-not-current-submenu li a{padding-left:12px}#adminmenu li li{margin-left:0}#adminmenu li li a{padding-left:0}.wp-menu-arrow{-moz-transform:translate(33px);-webkit-transform:translate(33px);-o-transform:translate(33px);-ms-transform:translate(33px);transform:translate(33px)}#adminmenu li.menu-top:hover .wp-menu-arrow{display:none}#adminmenu li.current:hover .wp-menu-arrow,#adminmenu li.menu-top.wp-menu-open:hover .wp-menu-arrow{display:block;z-index:125}#adminmenu li.menu-top{border-width:1px 0;border-style:solid none}#adminmenu .wp-submenu .wp-submenu-wrap{margin-top:3px}#adminmenu .wp-has-current-submenu{margin-bottom:1px}#adminmenu .wp-has-current-submenu.menu-top-last{margin-bottom:0}#adminmenu .wp-has-current-submenu .wp-submenu-wrap{margin-top:4px}#adminmenu .wp-submenu ul{border-width:0 0 0 1px;border-style:solid}#adminmenu .wp-submenu a{padding-left:10px}#adminmenu a.wp-has-submenu{margin-left:40px}#collapse-menu{display:none}}.post-com-count-wrapper{min-width:22px;font-family:sans-serif}.post-com-count{height:1.3em;line-height:1.1em;display:block;text-decoration:none;padding:0 0 6px;cursor:pointer;background-position:center -80px;background-repeat:no-repeat}.post-com-count span{font-size:11px;font-weight:bold;height:1.4em;line-height:1.4em;min-width:.7em;padding:0 6px;display:inline-block;-webkit-border-radius:5px;border-radius:5px}strong .post-com-count{background-position:center -55px}.post-com-count:hover{background-position:center -3px}.column-response .post-com-count{float:left;margin-right:5px;text-align:center}.response-links{float:left}#the-comment-list .attachment-80x60{padding:4px 8px}html.wp-toolbar{padding-top:28px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.narrow{width:70%;margin-bottom:40px}.narrow p{line-height:150%}.widefat th,.widefat td{overflow:hidden}.widefat th{font-weight:normal}.widefat td p{margin:2px 0 .8em}.widefat .column-comment p{margin:.6em 0}.postbox-container{float:left}#dashboard-widgets.columns-1 .postbox-container{width:100%}#dashboard-widgets.columns-2 .postbox-container{width:49.5%}#dashboard-widgets.columns-2 #postbox-container-2,#dashboard-widgets.columns-2 #postbox-container-3,#dashboard-widgets.columns-2 #postbox-container-4{float:right;width:50.5%}#dashboard-widgets.columns-3 .postbox-container{width:33.5%}#dashboard-widgets.columns-3 #postbox-container-1{width:33%}#dashboard-widgets.columns-3 #postbox-container-3,#dashboard-widgets.columns-3 #postbox-container-4{float:right}#dashboard-widgets.columns-4 .postbox-container{width:25%}.postbox-container .meta-box-sortables{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box}.metabox-holder .postbox-container .empty-container{border:3px dashed #ccc;height:250px}.metabox-holder.columns-1 .postbox-container .empty-container,.columns-2 #postbox-container-3 .empty-container,.columns-2 #postbox-container-4 .empty-container,.columns-3 #postbox-container-4 .empty-container{border:0 none;height:0;min-height:0}#poststuff{padding-top:10px}#poststuff #post-body{padding:0}#post-body-content{width:100%;float:left}#poststuff .postbox-container{width:100%}#poststuff #post-body.columns-2{margin-right:300px}#post-body.columns-2 #postbox-container-1{float:right;margin-right:-300px;width:280px}#post-body.columns-2 #side-sortables{min-height:250px}@media only screen and (max-width:799px){#wpbody-content #dashboard-widgets .postbox-container{width:100%}#wpbody-content .metabox-holder .postbox-container .empty-container{border:0 none;height:0;min-height:0}}@media only screen and (min-width:800px) and (max-width:1200px){#wpbody-content #dashboard-widgets .postbox-container{width:49.5%}#wpbody-content #dashboard-widgets #postbox-container-2,#wpbody-content #dashboard-widgets #postbox-container-3,#wpbody-content #dashboard-widgets #postbox-container-4{float:right;width:50.5%}#dashboard-widgets #postbox-container-3 .empty-container,#dashboard-widgets #postbox-container-4 .empty-container{border:0 none;height:0;min-height:0}#wpbody #wpbody-content #dashboard-widgets.columns-1 .postbox-container{width:100%}#wpbody #wpbody-content .metabox-holder.columns-1 .postbox-container .empty-container{border:0 none;height:0;min-height:0}.index-php .screen-layout,.index-php .columns-prefs{display:block}.columns-prefs .columns-prefs-3,.columns-prefs .columns-prefs-4{display:none}}@media only screen and (max-width:850px){#wpbody-content #poststuff #post-body{margin:0}#wpbody-content #post-body.columns-2 #postbox-container-1{margin-right:0;width:100%}#poststuff #postbox-container-1 .empty-container,#poststuff #postbox-container-1 #side-sortables:empty{border:0 none;height:0;min-height:0}#poststuff #post-body.columns-2 #side-sortables{min-height:0}.screen-layout,.columns-prefs{display:none}}.postbox .hndle{cursor:move;-webkit-border-top-left-radius:3px;-webkit-border-top-right-radius:3px;border-top-left-radius:3px;border-top-right-radius:3px}.postbox.closed .hndle{-webkit-border-radius:3px;border-radius:3px}.hndle a{font-size:11px;font-weight:normal}.postbox .handlediv{float:right;width:27px;height:30px;cursor:pointer}.sortable-placeholder{border-width:1px;border-style:dashed;margin-bottom:20px}.widget,.postbox,.stuffbox{margin-bottom:20px;padding:0;border-width:1px;border-style:solid;line-height:1}.widget .widget-top,.postbox h3,.stuffbox h3{margin-top:1px;border-bottom-width:1px;border-bottom-style:solid;cursor:move;-webkit-user-select:none;-moz-user-select:none;user-select:none}.stuffbox h3{cursor:auto}.postbox .inside,.stuffbox .inside{padding:0 10px;line-height:1.4em}.postbox .inside{margin:10px 0;position:relative}.postbox.closed h3{border:0;-moz-box-shadow:none;-webkit-box-shadow:none;box-shadow:none}.postbox table.form-table{margin-bottom:0}.temp-border{border:1px dotted #ccc}.columns-prefs label{padding:0 5px}#dashboard-widgets-wrap{margin:0 -8px}#wpbody-content .metabox-holder{padding-top:10px}#dashboard-widgets .meta-box-sortables{margin:0 8px}#dashboard_recent_comments div.undo{border-top-style:solid;border-top-width:1px;margin:0 -10px;padding:3px 8px;font-size:11px}#the-comment-list td.comment p.comment-author{margin-top:0;margin-left:0}#the-comment-list p.comment-author img{float:left;margin-right:8px}#the-comment-list p.comment-author strong a{border:0}#the-comment-list td{vertical-align:top}#the-comment-list td.comment{word-wrap:break-word}.welcome-panel{margin:20px 8px;padding:30px 10px 20px;border-width:1px 0;border-style:solid;position:relative;line-height:1.6em;overflow:auto}.welcome-panel h3{font-family:"HelveticaNeue-Light","Helvetica Neue Light","Helvetica Neue",sans-serif;font-size:32px;font-weight:normal;line-height:1.2;margin:.1em 0 .8em}.welcome-panel h4{font-size:14px}.welcome-panel .welcome-panel-close{position:absolute;top:0;right:10px;padding:8px 3px;font-size:13px;text-decoration:none}.welcome-panel .welcome-panel-close:before{background:url('../images/xit.gif') 0 17% no-repeat;content:' ';height:100%;width:10px;left:-12px;position:absolute}.welcome-panel .welcome-panel-close:hover:before{background-position:100% 17%}.welcome-panel .wp-badge{float:left;margin-bottom:20px}.welcome-panel-content{max-width:1500px}.welcome-panel-content .about-description,.welcome-panel h3{margin-left:190px}.welcome-panel p.welcome-panel-dismiss{clear:both;padding:1em 0 0 0}.welcome-panel .welcome-panel-column-container{clear:both;overflow:hidden;position:relative;padding-left:26px}.welcome-panel .welcome-panel-column{margin:0 5% 0 -25px;padding-left:25px;width:30%;min-width:200px;float:left}.welcome-panel .welcome-panel-column.welcome-panel-last{margin-right:0}.welcome-panel h4 .icon16{margin-left:-32px}.welcome-panel .welcome-panel-column ul{margin:1.6em 1em 1em 1.3em}.welcome-panel .welcome-panel-column li{list-style-type:disc;padding-left:2px}table.fixed{table-layout:fixed}.fixed .column-rating,.fixed .column-visible{width:8%}.fixed .column-date,.fixed .column-parent,.fixed .column-links{width:10%}.fixed .column-response,.fixed .column-author,.fixed .column-categories,.fixed .column-tags,.fixed .column-rel,.fixed .column-role{width:15%}.fixed .column-comments{width:4em;padding:8px 0;text-align:left}.fixed .column-comments .vers{padding-left:3px}.fixed .column-comments a{float:left}.fixed .column-slug{width:25%}.fixed .column-posts{width:10%}.fixed .column-icon{width:80px}#comments-form .fixed .column-author{width:20%}#commentsdiv.postbox .inside{margin:0;padding:0}#commentsdiv .inside .row-actions{line-height:18px}#commentsdiv .inside .column-author{width:25%}#commentsdiv .column-comment p{margin:.6em 0;padding:0}#commentsdiv #replyrow td{padding:0}#commentsdiv p{padding:8px 10px;margin:0}#commentsdiv #add-new-comment{border-width:0 0 1px;border-style:none none solid}#commentsdiv .comments-box{border:0 none}#commentsdiv .comments-box thead th{background:transparent;padding:0 7px 4px;font-style:italic}#commentsdiv .comments-box tr:last-child td{border-bottom:0 none}#commentsdiv img.waiting{padding-left:5px}.sorting-indicator{display:none;width:7px;height:4px;margin-top:8px;margin-left:7px;background-image:url(../images/sort.gif);background-repeat:no-repeat}.fixed .column-comments .sorting-indicator{margin-top:3px}.widefat th.sortable,.widefat th.sorted{padding:0}th.sortable a,th.sorted a{display:block;overflow:hidden;padding:7px 7px 8px}.fixed .column-comments.sortable a,.fixed .column-comments.sorted a{padding:8px 0}th.sortable a span,th.sorted a span{float:left;cursor:pointer}th.sorted.asc .sorting-indicator,th.desc:hover span.sorting-indicator{display:block;background-position:0 0}th.sorted.desc .sorting-indicator,th.asc:hover span.sorting-indicator{display:block;background-position:-7px 0}.tablenav-pages a{border-bottom-style:solid;border-bottom-width:2px;font-weight:bold;margin-right:1px;padding:0 2px}.tablenav-pages .current-page{text-align:center}.tablenav-pages .next-page{margin-left:2px}.tablenav a.button-secondary{display:block;margin:3px 8px 0 0}.tablenav{clear:both;height:30px;margin:6px 0 4px;vertical-align:middle}.tablenav.themes{max-width:98%}.tablenav .tablenav-pages{float:right;display:block;cursor:default;height:30px;line-height:30px;font-size:12px}.tablenav .no-pages,.tablenav .one-page .pagination-links{display:none}.tablenav .tablenav-pages a,.tablenav-pages span.current{text-decoration:none;padding:3px 6px}.tablenav .tablenav-pages a.disabled:hover,.tablenav .tablenav-pages a.disabled:active{cursor:default}.tablenav .displaying-num{margin-right:10px;font-size:12px;font-style:italic}.tablenav .actions{padding:2px 8px 0 0}.tablenav .delete{margin-right:20px}.view-switch{float:right;margin:6px 8px 0}.view-switch a{text-decoration:none}.filter{float:left;margin:-5px 0 0 10px}.filter .subsubsub{margin-left:-10px;margin-top:13px}.screen-per-page{width:4em}#posts-filter fieldset{float:left;margin:0 1.5ex 1em 0;padding:0}#posts-filter fieldset legend{padding:0 0 .2em 1px}span.post-state-format{font-weight:normal}#wpbody-content .inline-edit-row fieldset{font-size:12px;float:left;margin:0;padding:0;width:100%}tr.inline-edit-row td,#wpbody-content .inline-edit-row fieldset .inline-edit-col{padding:0 .5em}#wpbody-content .quick-edit-row-page fieldset.inline-edit-col-right .inline-edit-col{border-width:0 0 0 1px;border-style:none none none solid}#wpbody-content .quick-edit-row-post .inline-edit-col-left{width:40%}#wpbody-content .quick-edit-row-post .inline-edit-col-right{width:39%}#wpbody-content .inline-edit-row-post .inline-edit-col-center{width:20%}#wpbody-content .quick-edit-row-page .inline-edit-col-left{width:50%}#wpbody-content .quick-edit-row-page .inline-edit-col-right,#wpbody-content .bulk-edit-row-post .inline-edit-col-right{width:49%}#wpbody-content .bulk-edit-row .inline-edit-col-left{width:30%}#wpbody-content .bulk-edit-row-page .inline-edit-col-right{width:69%}#wpbody-content .bulk-edit-row .inline-edit-col-bottom{float:right;width:69%}#wpbody-content .inline-edit-row-page .inline-edit-col-right{margin-top:27px}.inline-edit-row fieldset .inline-edit-group{clear:both}.inline-edit-row fieldset .inline-edit-group:after{content:".";display:block;height:0;clear:both;visibility:hidden}.inline-edit-row p.submit{clear:both;padding:.5em;margin:.5em 0 0}.inline-edit-row span.error{line-height:22px;margin:0 15px;padding:3px 5px}.inline-edit-row h4{margin:.2em 0;padding:0;line-height:23px}.inline-edit-row fieldset span.title,.inline-edit-row fieldset span.checkbox-title{margin:0;padding:0;line-height:27px}.inline-edit-row fieldset label,.inline-edit-row fieldset span.inline-edit-categories-label{display:block;margin:.2em 0}.inline-edit-row fieldset label.inline-edit-tags{margin-top:0}.inline-edit-row fieldset label.inline-edit-tags span.title{margin:.2em 0}.inline-edit-row fieldset label span.title{display:block;float:left;width:5em}.inline-edit-row fieldset label span.input-text-wrap{display:block;margin-left:5em}.quick-edit-row-post fieldset.inline-edit-col-right label span.title{width:auto;padding-right:.5em}.inline-edit-row .input-text-wrap input[type=text]{width:100%}.inline-edit-row fieldset label input[type=checkbox]{vertical-align:text-bottom}.inline-edit-row fieldset label textarea{width:100%;height:4em}#wpbody-content .bulk-edit-row fieldset .inline-edit-group label{max-width:50%}#wpbody-content .quick-edit-row fieldset .inline-edit-group label.alignleft:first-child{margin-right:.5em}.inline-edit-col-right .input-text-wrap input.inline-edit-menu-order-input{width:6em}.inline-edit-row h4{text-transform:uppercase}.inline-edit-row fieldset span.title,.inline-edit-row fieldset span.checkbox-title{font-style:italic;line-height:1.8em}.inline-edit-row fieldset input[type="text"],.inline-edit-row fieldset textarea{border-style:solid;border-width:1px}.inline-edit-row fieldset .inline-edit-date{float:left}.inline-edit-row fieldset input[name=jj],.inline-edit-row fieldset input[name=hh],.inline-edit-row fieldset input[name=mn]{font-size:12px;width:2.1em}.inline-edit-row fieldset input[name=aa]{font-size:12px;width:3.5em}.inline-edit-row fieldset label input.inline-edit-password-input{width:8em}.inline-edit-row .catshow,.inline-edit-row .cathide{cursor:pointer}ul.cat-checklist{height:12em;border-style:solid;border-width:1px;overflow-y:scroll;padding:0 5px;margin:0}#bulk-titles{display:block;height:12em;border-style:solid;border-width:1px;overflow-y:scroll;padding:0 5px;margin:0 0 5px}.inline-edit-row fieldset ul.cat-checklist li,.inline-edit-row fieldset ul.cat-checklist input{margin:0}.inline-edit-row fieldset ul.cat-checklist label,.inline-edit-row .catshow,.inline-edit-row .cathide,.inline-edit-row #bulk-titles div{font-family:sans-serif;font-style:normal;font-size:11px}table .inline-edit-row fieldset ul.cat-hover{height:auto;max-height:30em;overflow-y:auto;position:absolute}.inline-edit-row fieldset label input.inline-edit-menu-order-input{width:3em}.inline-edit-row fieldset label input.inline-edit-slug-input{width:75%}.quick-edit-row-post fieldset label.inline-edit-status{float:left}#bulk-titles{line-height:140%}#bulk-titles div{margin:.2em .3em}#bulk-titles div a{cursor:pointer;display:block;float:left;height:10px;margin:3px 3px 0 -2px;overflow:hidden;position:relative;text-indent:-9999px;width:10px}#titlediv{position:relative;margin-bottom:20px}#titlediv label{cursor:text}#titlediv div.inside{margin:0}#poststuff #titlewrap{border:0;padding:0}#titlediv #title{padding:3px 8px;font-size:1.7em;line-height:100%;width:100%;outline:0}#titlediv #title-prompt-text,#wp-fullscreen-title-prompt-text{color:#bbb;position:absolute;font-size:1.7em;padding:8px 10px}#wp-fullscreen-title-prompt-text{left:0;padding:11px}#poststuff .inside-submitbox,#side-sortables .inside-submitbox{margin:0 3px;font-size:11px}input#link_description,input#link_url{width:98%}#pending{background:0 none;border:0 none;padding:0;font-size:11px;margin-top:-1px}#edit-slug-box{height:1em;margin-top:8px;padding:0 10px}#editable-post-name-full{display:none}#editable-post-name input{width:16em}.postarea h3 label{float:left}#submitpost #ajax-loading,#submitpost .ajax-loading{vertical-align:middle}#wpcontent .ajax-loading{visibility:hidden}.submitbox .submit{text-align:left;padding:12px 10px 10px;font-size:11px}.submitbox .submitdelete{text-decoration:none;padding:1px 2px}.submitbox .submitdelete,.submitbox .submit a:hover{border-bottom-width:1px;border-bottom-style:solid}.submitbox .submit input{margin-bottom:8px;margin-right:4px;padding:6px}.inside-submitbox #post_status{margin:2px 0 2px -2px}#post-status-select,#post-format{line-height:2.5em;margin-top:3px}#post-body #normal-sortables{min-height:50px}.postbox{position:relative;min-width:255px}#trackback_url{width:99%}#normal-sortables .postbox .submit{background:transparent none;border:0 none;float:right;padding:0 12px;margin:0}.category-add input[type="text"],.category-add select{width:100%;max-width:260px}.press-this #side-sortables .category-tabs li,ul.category-tabs li,#side-sortables .add-menu-item-tabs li,.wp-tab-bar li{display:inline;line-height:1.35em}.no-js .category-tabs li.hide-if-no-js{display:none}.category-tabs a,#side-sortables .add-menu-item-tabs a,.wp-tab-bar a{text-decoration:none}.category-tabs{margin:8px 0 3px}#category-adder h4{margin:10px 0}#side-sortables .add-menu-item-tabs,.wp-tab-bar{margin-bottom:3px}#normal-sortables .postbox #replyrow .submit{float:none;margin:0;padding:0 7px 5px}#side-sortables .submitbox .submit input,#side-sortables .submitbox .submit .preview,#side-sortables .submitbox .submit a.preview:hover{border:0 none}#side-sortables .inside-submitbox .insidebox,.stuffbox .insidebox{margin:11px 0}ul.category-tabs,ul.add-menu-item-tabs,ul.wp-tab-bar{margin-top:12px}ul.category-tabs li,ul.add-menu-item-tabs li.tabs,.wp-tab-active{border-style:solid solid none;border-width:1px 1px 0}#post-body .add-menu-item-tabs li.tabs{border-style:solid none solid solid;border-width:1px 0 1px 1px;margin-right:-1px}ul.category-tabs li,ul.add-menu-item-tabs li,ul.wp-tab-bar li{padding:3px 5px 5px;-webkit-border-top-left-radius:3px;-webkit-border-top-right-radius:3px;border-top-left-radius:3px;border-top-right-radius:3px}form#tags-filter{position:relative}td.post-title strong,td.plugin-title strong{display:block;margin-bottom:.2em}td.post-title p,td.plugin-title p{margin:6px 0}.wp-hidden-children .wp-hidden-child,.ui-tabs-hide{display:none}.commentlist .avatar{vertical-align:text-top}#post-body .tagsdiv #newtag{margin-right:5px;width:16em}#side-sortables input#post_password{width:94%}#side-sortables .tagsdiv #newtag{width:68%}#post-status-info{border-width:0 1px 1px;border-style:none solid solid;width:100%;-webkit-border-bottom-left-radius:3px;-webkit-border-bottom-right-radius:3px;border-bottom-left-radius:3px;border-bottom-right-radius:3px}#post-status-info td{font-size:12px}.autosave-info{padding:2px 15px;text-align:right}#editorcontent #post-status-info{border:0}#post-body .wp_themeSkin .mceStatusbar a.mceResize{display:block;background:transparent url(../images/resize.gif) no-repeat scroll right bottom;width:12px;cursor:se-resize;margin:0 2px;position:relative;top:-2px}#post-body .postarea .wp_themeSkin .mceStatusbar a.mceResize{top:20px}#wp-word-count{display:block;padding:2px 10px}#timestampdiv select{height:20px;line-height:14px;padding:0;vertical-align:top}#aa,#jj,#hh,#mn{padding:1px;font-size:12px}#jj,#hh,#mn{width:2em}#aa{width:3.4em}.curtime #timestamp{background-repeat:no-repeat;background-position:left top;padding-left:18px}#timestampdiv{padding-top:5px;line-height:23px}#timestampdiv p{margin:8px 0 6px}#timestampdiv input{border-width:1px;border-style:solid}#postcustomstuff .updatemeta,#postcustomstuff .deletemeta{margin:auto}#postcustomstuff thead th{padding:5px 8px 8px}#postcustom #postcustomstuff .submit{border:0 none;float:none;padding:5px 8px}#side-sortables #postcustom #postcustomstuff .submit{padding:0 5px}#side-sortables #postcustom #postcustomstuff td.left input{margin:3px 3px 0}#side-sortables #postcustom #postcustomstuff #the-list textarea{height:85px;margin:3px}#postcustomstuff table{margin:0;width:100%;border-width:1px;border-style:solid;border-spacing:0}#postcustomstuff table input,#postcustomstuff table select,#postcustomstuff table textarea{width:95%;margin:8px 0 8px 8px}#postcustomstuff th.left,#postcustomstuff td.left{width:38%}#postcustomstuff #newmeta .submit{padding:0 8px}#postcustomstuff .submit input,#postcustomstuff table #addmetasub{width:auto}#postcustomstuff #newmetaleft{vertical-align:top}#postcustomstuff #newmetaleft a{padding:0 10px;text-decoration:none}table.diff{width:100%}table.diff col.content{width:50%}table.diff tr{background-color:transparent}table.diff td,table.diff th{padding:.5em;font-family:Consolas,Monaco,monospace;border:0}table.diff .diff-deletedline del,table.diff .diff-addedline ins{text-decoration:none}.category-adder{margin-left:120px;padding:4px 0}.category-adder h4{margin:0 0 8px}#side-sortables .category-adder{margin:0}#post-body ul.add-menu-item-tabs{float:left;width:120px;text-align:right;margin:0 -120px 0 5px;padding:0}#post-body ul.add-menu-item-tabs li{padding:8px}#post-body ul.add-menu-item-tabs li.tabs{-webkit-border-top-left-radius:3px;-webkit-border-bottom-left-radius:3px;border-top-left-radius:3px;border-bottom-left-radius:3px}.wp-tab-panel,.categorydiv div.tabs-panel,.customlinkdiv div.tabs-panel,.posttypediv div.tabs-panel,.taxonomydiv div.tabs-panel{height:200px;overflow:auto;padding:.5em .9em;border-style:solid;border-width:1px}.nav-menus-php .customlinkdiv div.tabs-panel,.nav-menus-php .posttypediv div.tabs-panel,.nav-menus-php .taxonomydiv div.tabs-panel{height:auto;max-height:205px}div.tabs-panel-active{display:block}div.tabs-panel-inactive{display:none}.colunms-1 .categorydiv div.tabs-panel,.taxonomy div.tabs-panel{margin:0 5px 0 125px}.customlinkdiv ul,.posttypediv ul,.taxonomydiv ul{list-style:none;padding:0;margin:0}#front-page-warning,#front-static-pages ul,ul.export-filters,.inline-editor ul.cat-checklist ul,.categorydiv ul.categorychecklist ul,.customlinkdiv ul.categorychecklist ul,.posttypediv ul.categorychecklist ul,.taxonomydiv ul.categorychecklist ul{margin-left:18px}ul.categorychecklist li{margin:0;padding:0;line-height:19px;word-wrap:break-word}.categorydiv .tabs-panel,.customlinkdiv .tabs-panel,.posttypediv .tabs-panel,.taxonomydiv .tabs-panel{border-width:3px;border-style:solid}.form-wrap p,.form-wrap label{font-size:11px}.form-wrap label{display:block;padding:2px;font-size:12px}.form-field input,.form-field textarea{border-style:solid;border-width:1px;width:95%}p.description,.form-wrap p{margin:2px 0 5px}p.help,p.description,span.description,.form-wrap p{font-size:12px;font-style:italic;font-family:sans-serif}.form-wrap .form-field{margin:0 0 10px;padding:8px}.col-wrap h3{margin:12px 0;font-size:1.1em}.col-wrap p.submit{margin-top:-10px}#poststuff .taghint{color:#aaa;margin:15px 0 -24px 12px}#poststuff .tagsdiv .howto{margin:0 0 6px 8px}.ajaxtag .newtag{position:relative}.tagsdiv .newtag{width:180px}.tagsdiv .the-tags{display:block;height:60px;margin:0 auto;overflow:auto;width:260px}#post-body-content .tagsdiv .the-tags{margin:0 5px}p.popular-tags{-webkit-border-radius:8px;border-radius:8px;border-width:1px;border-style:solid;line-height:2em;max-width:1000px;padding:8px 12px 12px;text-align:justify}p.popular-tags a{padding:0 3px}.tagcloud{width:97%;margin:0 0 40px;text-align:justify}.tagcloud h3{margin:2px 0 12px}.ac_results{padding:0;margin:0;list-style:none;position:absolute;z-index:10000;display:none;border-width:1px;border-style:solid}.ac_results li{padding:2px 5px;white-space:nowrap;text-align:left}.ac_over{cursor:pointer}.ac_match{text-decoration:underline}table.links-table{width:100%}.links-table th{font-weight:normal;text-align:left;vertical-align:top;min-width:80px;width:20%;word-wrap:break-word}.links-table th,.links-table td{padding:5px 0}.links-table td label{margin-right:8px}.links-table td input[type="text"],.links-table td textarea{width:100%}.links-table #link_rel{max-width:280px}.media-item .describe{border-collapse:collapse;width:100%;border-top-style:solid;border-top-width:1px;clear:both;cursor:default}.media-item.media-blank .describe{border:0}.media-item .describe th{vertical-align:top;text-align:left;padding:5px 10px 10px;width:140px}.media-item .describe .align th{padding-top:0}.media-item .media-item-info tr{background-color:transparent}.media-item .describe td{padding:0 8px 8px 0;vertical-align:top}.media-item thead.media-item-info td{padding:4px 10px 0}.media-item .media-item-info .A1B1{padding:0 0 0 10px}.media-item td.savesend{padding-bottom:15px}.media-item .thumbnail{max-height:128px;max-width:128px}#wpbody-content #async-upload-wrap a{display:none}.media-upload-form{margin-top:20px}.media-upload-form td label{margin-right:6px;margin-left:2px}.media-upload-form .align .field label{display:inline;padding:0 0 0 23px;margin:0 1em 0 3px;font-weight:bold}.media-upload-form tr.image-size label{margin:0 0 0 5px;font-weight:bold}.media-upload-form th.label label{font-weight:bold;margin:.5em;font-size:13px}.media-upload-form th.label label span{padding:0 5px}abbr.required{border:medium none;text-decoration:none}.media-item .describe input[type="text"],.media-item .describe textarea{width:460px}.media-item .describe p.help{margin:0;padding:0 0 0 5px}.describe-toggle-on,.describe-toggle-off{display:block;line-height:36px;float:right;margin-right:15px}.media-item .describe-toggle-off,.media-item.open .describe-toggle-on,.media-item.open img.pinkynail{display:none}.media-item.open .describe-toggle-off{display:block}#media-items .media-item{border-style:solid;border-width:1px;min-height:36px;position:relative;margin-top:-1px;width:100%}#media-items{width:623px}#media-items:empty{border:0 none}.media-item .filename{line-height:36px;overflow:hidden;padding:0 10px}.media-item .error-div{padding-left:10px}.media-item .pinkynail{float:left;margin:2px 2px 0;max-width:40px;max-height:32px}.media-item .startopen,.media-item .startclosed{display:none}.media-item .original{position:relative;height:34px}.media-item .progress{float:right;height:22px;margin:6px 10px 0 0;width:200px;line-height:2em;padding:0;overflow:hidden;margin-bottom:2px;border:1px solid #d1d1d1;background:#fff;background-image:linear-gradient(bottom,#fff 0,#f7f7f7 100%);background-image:-o-linear-gradient(bottom,#fff 0,#f7f7f7 100%);background-image:-moz-linear-gradient(bottom,#fff 0,#f7f7f7 100%);background-image:-webkit-linear-gradient(bottom,#fff 0,#f7f7f7 100%);background-image:-ms-linear-gradient(bottom,#fff 0,#f7f7f7 100%);-webkit-border-radius:3px;border-radius:3px;-webkit-box-shadow:inset 0 0 3px rgba(0,0,0,0.1);box-shadow:inset 0 0 3px rgba(0,0,0,0.1)}.media-item .bar{z-index:9;width:0;height:100%;margin-top:-24px;background-color:#83b4d8;background-image:linear-gradient(bottom,#72a7cf 0,#90c5ee 100%);background-image:-o-linear-gradient(bottom,#72a7cf 0,#90c5ee 100%);background-image:-moz-linear-gradient(bottom,#72a7cf 0,#90c5ee 100%);background-image:-webkit-linear-gradient(bottom,#72a7cf 0,#90c5ee 100%);background-image:-ms-linear-gradient(bottom,#72a7cf 0,#90c5ee 100%);-webkit-border-radius:3px;border-radius:3px;-webkit-box-shadow:0 0 3px rgba(0,0,0,0.3);box-shadow:0 0 3px rgba(0,0,0,0.3)}.media-item .progress .percent{z-index:10;position:relative;width:200px;padding:0 8px;text-shadow:0 1px 0 rgba(255,255,255,0.4);color:rgba(0,0,0,0.6)}.upload-php .fixed .column-parent{width:25%}.js .html-uploader #plupload-upload-ui{display:none}.js .html-uploader #html-upload-ui{display:block}.media-upload-form .media-item.error{margin:0;padding:0}.media-upload-form .media-item.error p,.media-item .error-div{line-height:16px;margin:5px 10px;padding:0}.media-item .error-div a.dismiss{display:block;float:right;margin:5px 4px 0 15px}.find-box{width:500px;height:300px;overflow:hidden;padding:33px 5px 40px;position:absolute;z-index:1000}.find-box-head{cursor:move;font-weight:bold;height:2em;line-height:2em;padding:1px 12px;position:absolute;top:5px;width:100%}.find-box-inside{overflow:auto;width:100%;height:100%}.find-box-search{padding:12px;border-width:1px;border-style:none none solid}#find-posts-response{margin:8px 0;padding:0 1px}#find-posts-response table{width:100%}#find-posts-response .found-radio{padding:5px 0 0 8px;width:15px}.find-box-buttons{width:480px;margin:8px}.find-box-search label{padding-right:6px}.find-box #resize-se{position:absolute;right:1px;bottom:1px}ul#dismissed-updates{display:none}form.upgrade{margin-top:8px}form.upgrade .hint{font-style:italic;font-size:85%;margin:-0.5em 0 2em 0}#poststuff .inside .the-tagcloud{margin:5px 0 10px;padding:8px;border-width:1px;border-style:solid;line-height:1.8em;word-spacing:3px;-webkit-border-radius:6px;border-radius:6px}.drag-drop #drag-drop-area{border:4px dashed #ddd;height:200px}.drag-drop .drag-drop-inside{margin:70px auto 0;width:250px}.drag-drop-inside p{color:#aaa;font-size:14px;margin:5px 0;display:none}.drag-drop .drag-drop-inside p{text-align:center}.drag-drop-inside p.drag-drop-info{font-size:20px}.drag-drop .drag-drop-inside p,.drag-drop-inside p.drag-drop-buttons{display:block}.drag-drop.drag-over #drag-drop-area{border-color:#83b4d8}#plupload-upload-ui{position:relative}.describe .image-editor{vertical-align:top}.imgedit-wrap{position:relative}.imgedit-settings p{margin:8px 0}.describe .imgedit-wrap table td{vertical-align:top;padding-top:0}.imgedit-wrap p,.describe .imgedit-wrap table td{font-size:11px;line-height:18px}.describe .imgedit-wrap table td.imgedit-settings{padding:0 5px}td.imgedit-settings input{vertical-align:middle}.imgedit-wait{position:absolute;top:0;background:#fff url(../images/wpspin_light.gif) no-repeat scroll 22px 10px;opacity:.7;filter:alpha(opacity=70);width:100%;height:500px;display:none}.media-disabled,.imgedit-settings .disabled{color:grey}.imgedit-wait-spin{padding:0 4px 4px;vertical-align:bottom;visibility:hidden}.imgedit-menu{margin:0 0 12px;min-width:300px}.imgedit-menu div{float:left;width:32px;height:32px}.imgedit-crop-wrap{position:relative}.imgedit-crop{background:transparent url(../images/imgedit-icons.png) no-repeat scroll -9px -31px;margin:0 8px 0 0}.imgedit-crop.disabled:hover{background-position:-9px -31px}.imgedit-crop:hover{background-position:-9px -1px}.imgedit-rleft{background:transparent url(../images/imgedit-icons.png) no-repeat scroll -46px -31px;margin:0 3px}.imgedit-rleft.disabled:hover{background-position:-46px -31px}.imgedit-rleft:hover{background-position:-46px -1px}.imgedit-rright{background:transparent url(../images/imgedit-icons.png) no-repeat scroll -77px -31px;margin:0 8px 0 3px}.imgedit-rright.disabled:hover{background-position:-77px -31px}.imgedit-rright:hover{background-position:-77px -1px}.imgedit-flipv{background:transparent url(../images/imgedit-icons.png) no-repeat scroll -115px -31px;margin:0 3px}.imgedit-flipv.disabled:hover{background-position:-115px -31px}.imgedit-flipv:hover{background-position:-115px -1px}.imgedit-fliph{background:transparent url(../images/imgedit-icons.png) no-repeat scroll -147px -31px;margin:0 8px 0 3px}.imgedit-fliph.disabled:hover{background-position:-147px -31px}.imgedit-fliph:hover{background-position:-147px -1px}.imgedit-undo{background:transparent url(../images/imgedit-icons.png) no-repeat scroll -184px -31px;margin:0 3px}.imgedit-undo.disabled:hover{background-position:-184px -31px}.imgedit-undo:hover{background-position:-184px -1px}.imgedit-redo{background:transparent url(../images/imgedit-icons.png) no-repeat scroll -215px -31px;margin:0 8px 0 3px}.imgedit-redo.disabled:hover{background-position:-215px -31px}.imgedit-redo:hover{background-position:-215px -1px}.imgedit-applyto img{margin:0 8px 0 0}.imgedit-group-top{margin:5px 0}.imgedit-applyto .imgedit-label{padding:2px 0 0;display:block}.imgedit-help{display:none;font-style:italic;margin-bottom:8px}.imgedit-help ul li{font-size:11px}a.imgedit-help-toggle{text-decoration:none}#wpbody-content .imgedit-response div{width:600px;margin:8px}.form-table td.imgedit-response{padding:0}.imgedit-submit{margin:8px 0}.imgedit-submit-btn{margin-left:20px}.imgedit-wrap .nowrap{white-space:nowrap}span.imgedit-scale-warn{color:red;font-size:20px;font-style:normal;visibility:hidden;vertical-align:middle}.imgedit-group{border-width:1px;border-style:solid;-webkit-border-radius:8px;border-radius:8px;margin-bottom:8px;padding:2px 10px}.form-table{border-collapse:collapse;margin-top:.5em;width:100%;margin-bottom:-8px;clear:both}.form-table td{margin-bottom:9px;padding:8px 10px;line-height:20px;font-size:12px}.form-table th,.form-wrap label{font-weight:normal;text-shadow:#fff 0 1px 0}.form-table th{vertical-align:top;text-align:left;padding:10px;width:200px}.form-table th.th-full{width:auto}.form-table div.color-option{display:block;clear:both;margin-top:12px}.form-table input.tog{margin-top:2px;margin-right:2px;float:left}.form-table td p{margin-top:4px}.form-table table.color-palette{vertical-align:bottom;float:left;margin:-12px 3px 11px}.form-table .color-palette td{border-width:1px 1px 0;border-style:solid solid none;height:10px;line-height:20px;width:10px}.commentlist li{padding:1em 1em .2em;margin:0;border-bottom-width:1px;border-bottom-style:solid}.commentlist li li{border-bottom:0;padding:0}.commentlist p{padding:0;margin:0 0 .8em}#replyrow input{border-width:1px;border-style:solid}#replyrow td{padding:2px}#replysubmit{margin:0;padding:0 7px 3px;text-align:center}#replysubmit img.waiting,.inline-edit-save img.waiting{padding:4px 10px 0;vertical-align:top;float:right}#replysubmit .button{margin-right:5px}#replysubmit .error{color:red;line-height:21px;text-align:center;vertical-align:center}#replyrow h5{margin:.2em 0 0;padding:0 5px;line-height:1.4em;font-size:1em}#edithead .inside{float:left;padding:3px 0 2px 5px;margin:0;text-align:center}#edithead .inside input{width:180px}#edithead label{padding:2px 0}#replycontainer{padding:5px}#replycontent{height:120px}.comment-ays{margin-bottom:0;border-style:solid;border-width:1px}.comment-ays th{border-right-style:solid;border-right-width:1px}.trash-undo-inside,.spam-undo-inside{margin:1px 8px 1px 0;line-height:16px}.spam-undo-inside .avatar,.trash-undo-inside .avatar{height:20px;width:20px;margin-right:8px;vertical-align:middle}.stuffbox .editcomment{clear:none}#comment-status-radio p{margin:3px 0 5px}#comment-status-radio input{margin:2px 3px 5px 0;vertical-align:middle}#comment-status-radio label{padding:5px 0}.commentlist .avatar{vertical-align:text-top}.theme-install-php .tablenav{height:auto}h3.available-themes{margin:0 0 1em;float:left}.available-theme{display:inline-block;margin-right:10px;overflow:hidden;padding:20px 20px 20px 0;vertical-align:top;width:300px}.available-theme .screenshot{width:300px;height:225px;display:block;border-width:1px;border-style:solid;margin-bottom:10px;overflow:hidden}.available-theme img{width:300px}.available-theme h3{margin:15px 0 0}.available-theme .theme-author{line-height:18px}.available-theme .action-links{margin-top:10px;overflow:hidden}#current-theme .theme-info li,.theme-options li,.available-theme .action-links li{float:left;padding-right:10px;margin-right:10px;border-right:1px solid #dfdfdf}.available-theme .action-links li{padding-right:8px;margin-right:8px}#current-theme .theme-info li:last-child,.theme-options li:last-child,.available-theme .action-links li:last-child{padding-right:0;margin-right:0;border-right:0}.available-theme .action-links .delete-theme{float:right;margin-left:8px;margin-right:0}.available-theme .action-links .delete-theme a{color:red;padding:2px}.available-theme .action-links .delete-theme a:hover{background:red;color:#fff;text-decoration:none}.available-theme .action-links p{float:left}#current-theme{margin:20px 0 10px;padding:0 0 20px;border-bottom:1px solid #dfdfdf;overflow:hidden}#current-theme.has-screenshot{padding-left:330px}#current-theme h3{margin:0;font-size:12px;font-weight:normal;color:#999}#current-theme h4{margin:3px 0 16px;font-size:20px}#current-theme h4 span{margin-left:20px;font-size:12px;font-weight:normal}#current-theme a{border-bottom:0}#current-theme .theme-info{margin:1em 0;overflow:hidden}#current-theme .theme-description{margin-top:5px;max-width:600px;line-height:1.6em}#current-theme img{float:left;width:300px;margin-left:-330px;border-width:1px;border-style:solid}.theme-options{overflow:hidden;font-size:14px;padding-bottom:10px}.theme-options .load-customize{margin-right:30px;float:left}.theme-options span{float:left;margin-right:10px;text-transform:uppercase;font-size:11px;line-height:18px;color:#999}.theme-options ul{float:left;margin:0}@media only screen and (max-width:1200px){.available-theme,.available-theme .screenshot,#current-theme img{width:240px}.available-theme .screenshot{height:180px}.available-theme img{width:100%}#current-theme.has-screenshot{padding-left:270px}#current-theme img{margin-left:-270px}}#post-body ul.add-menu-item-tabs li.tabs a,#TB_window #TB_title a.tb-theme-preview-link,#TB_window #TB_title a.tb-theme-preview-link:visited{font-weight:bold;text-decoration:none}#TB_window #TB_title{background-color:#222;color:#cfcfcf}#broken-themes{text-align:left;width:50%;border-spacing:3px;padding:3px}.theme-install-php h4{margin:2.5em 0 8px}.appearance_page_custom-header #headimg{border:1px solid #dfdfdf;width:100%}.appearance_page_custom-header #upload-form p label{font-size:12px}.appearance_page_custom-header .available-headers .default-header{float:left;margin:0 20px 20px 0}.appearance_page_custom-header .random-header{clear:both;margin:0 20px 20px 0;vertical-align:middle}.appearance_page_custom-header .available-headers label input,.appearance_page_custom-header .random-header label input{margin-right:10px}.appearance_page_custom-header .available-headers label img{vertical-align:middle}div#custom-background-image{min-height:100px;border:1px solid #dfdfdf}div#custom-background-image img{max-width:400px;max-height:300px}.nav-tab{border-style:solid;border-color:#dfdfdf #dfdfdf #fff;border-width:1px 1px 0;color:#aaa;text-shadow:#fff 0 1px 0;font-size:12px;line-height:16px;display:inline-block;padding:4px 14px 6px;text-decoration:none;margin:0 6px -1px 0;-webkit-border-top-left-radius:3px;-webkit-border-top-right-radius:3px;border-top-left-radius:3px;border-top-right-radius:3px}.nav-tab-active{border-width:1px;color:#464646}.nav-tab:hover,.nav-tab-active{border-color:#ccc #ccc #fff}h2.nav-tab-wrapper,h3.nav-tab-wrapper{border-bottom:1px solid #ccc;padding-bottom:0}h2 .nav-tab{padding:4px 10px 6px;font-weight:200;font-size:20px;line-height:24px}#dashboard_right_now .versions .b,#post-status-display,#post-visibility-display,#adminmenu .wp-submenu li.current,#adminmenu .wp-submenu li.current a,#adminmenu .wp-submenu li.current a:hover,.media-item .percent,.plugins .name,#pass-strength-result.strong,#pass-strength-result.short,.button-highlighted,input.button-highlighted,#quicktags #ed_strong,#ed_reply_toolbar #ed_reply_strong,.item-controls .item-order a,.feature-filter .feature-name{font-weight:bold}.plugins p{margin:0 4px;padding:0}.plugins .desc p{margin:0 0 8px}.plugins td.desc{line-height:1.5em}.plugins .desc ul,.plugins .desc ol{margin:0 0 0 2em}.plugins .desc ul{list-style-type:disc}.plugins .row-actions-visible{padding:0}.plugins tbody th.check-column{padding:7px 0}.plugins .inactive td,.plugins .inactive th,.plugins .active td,.plugins .active th{border-top-style:solid;border-top-width:1px;padding:5px 7px 0}.plugins .update th,.plugins .update td{border-bottom:0}.plugin-update-tr td{border-top:0}#wpbody-content .plugins .plugin-title,#wpbody-content .plugins .theme-title{padding-right:12px;white-space:nowrap}.plugins .second,.plugins .row-actions-visible{padding:0 0 5px}.plugins .update .second,.plugins .update .row-actions-visible{padding-bottom:0}.plugins-php .widefat tfoot th,.plugins-php .widefat tfoot td{border-top-style:solid;border-top-width:1px}.plugin-update-tr .update-message{margin:5px;padding:3px 5px}.plugin-install-php h4{margin:2.5em 0 8px}#profile-page .form-table textarea{width:500px;margin-bottom:6px}#profile-page .form-table #rich_editing{margin-right:5px}#your-profile legend{font-size:22px}#your-profile #rich_editing{border:0}#display_name{width:15em}#createuser .form-field input{width:25em}.pressthis{margin:20px 0}.pressthis a{display:inline-block;position:relative;cursor:move;color:#333;background:#dfdfdf;background-image:-webkit-gradient(linear,left bottom,left top,color-stop(0.07,#e6e6e6),color-stop(0.77,#d8d8d8));background-image:-webkit-linear-gradient(bottom,#e6e6e6 7%,#d8d8d8 77%);background-image:-moz-linear-gradient(bottom,#e6e6e6 7%,#d8d8d8 77%);background-image:-ms-linear-gradient(bottom,#e6e6e6 7%,#d8d8d8 77%);background-image:-o-linear-gradient(bottom,#e6e6e6 7%,#d8d8d8 77%);background-image:linear-gradient(bottom,#e6e6e6 7%,#d8d8d8 77%);-webkit-border-radius:5px;border-radius:5px;border:1px solid #b4b4b4;font-style:normal;line-height:16px;font-size:14px;text-decoration:none;text-shadow:0 1px 0 #fff}.pressthis a:hover,.pressthis a:active{color:#333}.pressthis a:hover:after{transform:skew(20deg) rotate(9deg);-webkit-transform:skew(20deg) rotate(9deg);-moz-transform:skew(20deg) rotate(9deg);box-shadow:0 10px 8px rgba(0,0,0,0.7);-webkit-box-shadow:0 10px 8px rgba(0,0,0,0.7);-moz-box-shadow:0 10px 8px rgba(0,0,0,0.7)}.pressthis a span{background:url(../images/press-this.png?v=20120502) no-repeat 0 5px;padding:8px 11px 8px 27px;margin:0 5px;display:inline-block}.pressthis a:after{content:'';width:70%;height:55%;z-index:-1;position:absolute;right:10px;bottom:9px;background:transparent;transform:skew(20deg) rotate(6deg);-webkit-transform:skew(20deg) rotate(6deg);-moz-transform:skew(20deg) rotate(6deg);box-shadow:0 10px 8px rgba(0,0,0,0.6);-webkit-box-shadow:0 10px 8px rgba(0,0,0,0.6);-moz-box-shadow:0 10px 8px rgba(0,0,0,0.6)}#utc-time,#local-time{padding-left:25px;font-style:italic;font-family:sans-serif}.defaultavatarpicker .avatar{margin:2px 0;vertical-align:middle}#footer{position:absolute;bottom:0;left:0;right:0;padding:10px 0;margin-right:20px;border-top-width:1px;border-top-style:solid}#footer p{margin:0;line-height:20px}#footer a{text-decoration:none}#footer a:hover{text-decoration:underline}.about-wrap{position:relative;margin:25px 40px 0 20px;max-width:1050px;font-size:15px}.about-wrap div.updated,.about-wrap div.error{display:none!important}.about-wrap p{line-height:1.6em}.about-wrap h1{margin:.2em 200px 0 0;line-height:1.2em;font-size:2.8em;font-weight:200}.about-text,.about-description,.about-wrap li.wp-person a.web{font-family:"HelveticaNeue-Light","Helvetica Neue Light","Helvetica Neue",sans-serif;font-weight:normal;line-height:1.6em;font-size:20px}.about-description{margin-top:1.4em}.about-text{margin:1em 200px 1.4em 0;min-height:60px;font-size:24px}.about-wrap h3{font-size:24px;margin-bottom:1em;padding-top:20px}.about-wrap .changelog{overflow:hidden}.about-wrap .changelog li{list-style-type:disc;margin-left:3em}.about-wrap .feature-section{padding-bottom:20px}.about-wrap .feature-section h4{margin-bottom:.6em}.about-wrap .feature-section p{margin-top:.6em}.about-wrap code{font-size:14px}.about-wrap .point-releases{margin-top:5px}.about-wrap .changelog.point-releases h3{padding-top:35px}.about-wrap .changelog.point-releases h3:first-child{padding-top:7px}.wp-badge{padding-top:142px;height:50px;width:173px;font-weight:bold;font-size:14px;text-align:center;margin:0 -5px;background:url('../images/wp-badge.png?ver=20111120') no-repeat}.about-wrap .wp-badge{position:absolute;top:0;right:0}.about-wrap h2.nav-tab-wrapper{padding-left:6px}.about-wrap h2 .nav-tab{padding:4px 10px 6px;margin:0 3px -1px 0;font-size:18px;vertical-align:top}.about-wrap h2 .nav-tab-active{font-weight:bold;padding-top:3px}.about-wrap .feature-section img{border:0;margin:0 1.94% 10px 0;-webkit-border-radius:3px;border-radius:3px}.about-wrap .feature-section img.image-50{max-width:50%}.about-wrap .feature-section img.image-30{max-width:31.2381%}.ie8 .about-wrap .feature-section img{border-width:1px;border-style:solid}.about-wrap .feature-section.three-col{padding-top:15px;margin-bottom:0}.about-wrap .feature-section.three-col div{width:30%;margin-right:4.999999999%;float:left}.about-wrap .feature-section.three-col h4{margin:0 0 .6em 0}.about-wrap .feature-section.three-col img{margin:.5em 0 .5em 5px;max-width:100%;float:none}.ie8 .about-wrap .feature-section.three-col img{margin-left:0}.about-wrap .feature-section.three-col .last-feature{margin-right:0}.about-wrap .three-col-images{text-align:center}.about-wrap .three-col-images img{margin:0 0 10px}.about-wrap .three-col-images .last-feature{float:right}.about-wrap .three-col-images .first-feature{float:left}.about-wrap .feature-section.images-stagger-right img{float:right;margin:0 5px 12px 12px}.about-wrap .feature-section.images-stagger-left img{float:left;margin:0 12px 12px 5px}@media only screen and (max-width:900px){.about-wrap .feature-section.images-stagger-left img,.about-wrap .feature-section.images-stagger-right img{clear:both}}.about-wrap .return-to-dashboard{margin:30px 0 0 -5px;font-size:14px;font-weight:bold}.about-wrap .return-to-dashboard a{text-decoration:none;padding:0 5px}.about-wrap h4.wp-people-group{margin-top:2.6em;font-size:16px}.about-wrap ul.wp-people-group{overflow:hidden;padding:5px;margin:0 -15px 0 -5px}.about-wrap ul.compact{margin-bottom:0}.about-wrap li.wp-person{float:left;margin-right:10px}.about-wrap li.wp-person img.gravatar{float:left;margin:0 10px 10px 0;padding:2px;width:60px;height:60px}.about-wrap ul.compact li.wp-person img.gravatar{width:30px;height:30px}.about-wrap li.wp-person{height:70px;width:280px;padding-bottom:15px}.about-wrap ul.compact li.wp-person{height:auto;width:180px;padding-bottom:0;margin-bottom:0}.about-wrap #wp-people-group-validators+p.wp-credits-list{margin-top:0}.about-wrap li.wp-person a.web{display:block;margin:6px 0 2px;font-size:16px;text-decoration:none}.about-wrap p.wp-credits-list a{white-space:nowrap}.freedoms-php .about-wrap ol{margin:40px 60px}.freedoms-php .about-wrap ol li{list-style-type:decimal;font-weight:bold}.freedoms-php .about-wrap ol p{font-weight:normal;margin:.6em 0}body.full-overlay-active{overflow:hidden}.wp-full-overlay{background:#fff;z-index:500000;position:fixed;overflow:visible;top:0;bottom:0;left:0;right:0;height:100%;min-width:0}.wp-full-overlay-sidebar{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;position:fixed;width:300px;height:100%;top:0;bottom:0;left:0;padding:0;margin:0;z-index:10;overflow:auto;background:#f5f5f5;border-right:1px solid rgba(0,0,0,0.2)}.wp-full-overlay.collapsed .wp-full-overlay-sidebar{overflow:visible}.wp-full-overlay.collapsed,.wp-full-overlay.expanded .wp-full-overlay-sidebar{margin-left:0!important}.wp-full-overlay.expanded{margin-left:300px}.wp-full-overlay.collapsed .wp-full-overlay-sidebar{margin-left:-300px}.wp-full-overlay-sidebar:after{content:'';display:block;position:absolute;top:0;bottom:0;right:0;width:3px;box-shadow:-5px 0 4px -4px rgba(0,0,0,0.1) inset;z-index:1000}.wp-full-overlay-main{position:absolute;left:0;right:0;top:0;bottom:0;height:100%}.wp-full-overlay-sidebar .wp-full-overlay-header,.wp-full-overlay-sidebar .wp-full-overlay-footer{position:absolute;left:0;right:0;height:45px;padding:0 20px;line-height:45px;z-index:10;margin:0}.wp-full-overlay-sidebar .wp-full-overlay-header{top:0;border-top:0;border-bottom:1px solid #fff;box-shadow:inset 0 -1px 0 0 #dfdfdf}.wp-full-overlay-sidebar .wp-full-overlay-footer{bottom:0;border-bottom:0;border-top:1px solid #dfdfdf;box-shadow:inset 0 1px 0 0 #fff}.wp-full-overlay-sidebar .wp-full-overlay-sidebar-content{position:absolute;top:45px;bottom:45px;left:0;right:0;overflow:auto}.wp-full-overlay .close-full-overlay{text-decoration:none}.wp-full-overlay .collapse-sidebar{position:absolute;bottom:12px;left:0;z-index:50;display:block;width:19px;height:19px;margin-left:15px;padding:0;border-radius:50%;text-decoration:none}.wp-full-overlay.collapsed .collapse-sidebar{position:absolute;left:100%}.wp-full-overlay .collapse-sidebar-arrow{position:absolute;margin-top:2px;margin-left:2px;display:block;width:15px;height:15px;background:transparent url('../images/arrows.png') no-repeat 0 -72px}.wp-full-overlay.collapsed .collapse-sidebar-arrow{background-position:0 -108px}.wp-full-overlay .collapse-sidebar-label{position:absolute;left:100%;color:#808080;line-height:20px;margin-left:10px}.wp-full-overlay.collapsed .collapse-sidebar-label{display:none}.wp-full-overlay .collapse-sidebar:hover .collapse-sidebar-label{color:#666}.wp-full-overlay,.wp-full-overlay-sidebar,.wp-full-overlay .collapse-sidebar,.wp-full-overlay-main{-webkit-transition-property:left,right,top,bottom,width,margin;-moz-transition-property:left,right,top,bottom,width,margin;-ms-transition-property:left,right,top,bottom,width,margin;-o-transition-property:left,right,top,bottom,width,margin;transition-property:left,right,top,bottom,width,margin;-webkit-transition-duration:.2s;-moz-transition-duration:.2s;-ms-transition-duration:.2s;-o-transition-duration:.2s;transition-duration:.2s}.no-customize-support .hide-if-no-customize,.customize-support .hide-if-customize{display:none}#customize-container{display:none;background:#fff;z-index:500000;position:fixed;overflow:visible;top:0;bottom:0;left:0;right:0;height:100%}.customize-active #customize-container{display:block}.customize-loading #customize-container iframe{opacity:0}.customize-loading #customize-container{background:#fff url("../images/wpspin_light.gif") no-repeat fixed center center}#customize-container iframe,#theme-installer iframe{height:100%;width:100%;z-index:20;-webkit-transition:opacity .3s;-moz-transition:opacity .3s;-ms-transition:opacity .3s;-o-transition:opacity .3s;transition:opacity .3s}#customize-container .collapse-sidebar{bottom:16px}#theme-installer{display:none}#theme-installer.single-theme{display:block}.install-theme-info{display:none;padding:10px 20px 20px}.single-theme .install-theme-info{padding-top:15px}#theme-installer .install-theme-info{display:block}.install-theme-info .theme-install{float:right;margin-top:18px}.install-theme-info .theme-name{font-size:16px;line-height:24px;margin-bottom:0}.install-theme-info .theme-screenshot{margin-top:15px;width:258px;border:1px solid #ccc}.install-theme-info .theme-details{overflow:hidden}.theme-details .theme-version{margin:15px 0;float:left}.theme-details .star-holder{margin:14px 0;float:right}.theme-details .theme-description{float:left;color:#777;line-height:20px}#excerpt,.attachmentlinks{margin:0;height:4em;width:98%}#template div{margin-right:190px}p.pagenav{margin:0;display:inline}.pagenav span{font-weight:bold;margin:0 6px}.row-title{font-size:13px!important;font-weight:bold}.column-author img,.column-username img{float:left;margin-right:10px;margin-top:1px}.row-actions{visibility:hidden;padding:2px 0 0}.mobile .row-actions{visibility:visible}tr:hover .row-actions,div.comment-item:hover .row-actions{visibility:visible}.row-actions-visible{padding:2px 0 0}.form-table .pre{padding:8px;margin:0}table.form-table td .updated{font-size:13px}.tagchecklist{margin-left:14px;font-size:12px;overflow:auto}.tagchecklist strong{margin-left:-8px;position:absolute}.tagchecklist span{margin-right:25px;display:block;float:left;font-size:11px;line-height:1.8em;white-space:nowrap;cursor:default}.tagchecklist span a{margin:6px 0 0 -9px;cursor:pointer;width:10px;height:10px;display:block;float:left;text-indent:-9999px;overflow:hidden;position:absolute}#poststuff h2{margin-top:20px;font-size:1.5em;margin-bottom:15px;padding:0 0 3px;clear:left}#poststuff h3,.metabox-holder h3{font-size:15px;font-weight:normal;padding:7px 10px;margin:0;line-height:1}#poststuff .inside{margin:6px 0 8px}#poststuff .inside #parent_id,.inline-edit-row #post_parent{max-width:100%}#post-visibility-select,#post-formats-select{line-height:1.5em;margin-top:3px}#poststuff #submitdiv .inside{margin:0;padding:0}#titlediv,#poststuff .postarea{margin-bottom:20px}#templateside ul li a{text-decoration:none}.tool-box .title{margin:8px 0;font-size:18px;font-weight:normal;line-height:24px}#sidemenu{margin:-30px 15px 0 315px;list-style:none;position:relative;float:right;padding-left:10px;font-size:12px}#sidemenu a{padding:0 7px;display:block;float:left;line-height:28px;border-top-width:1px;border-top-style:solid;border-bottom-width:1px;border-bottom-style:solid}#sidemenu li{display:inline;line-height:200%;list-style:none;text-align:center;white-space:nowrap;margin:0;padding:0}#sidemenu a.current{font-weight:normal;padding-left:6px;padding-right:6px;-webkit-border-top-left-radius:3px;-webkit-border-top-right-radius:3px;border-top-left-radius:3px;border-top-right-radius:3px;border-width:1px;border-style:solid}#sidemenu li a .count-0{display:none}.plugin-install #description,.plugin-install-network #description{width:60%}table .vers,table .column-visible,table .column-rating{text-align:left}.error-message{color:red;font-weight:bold}body.iframe{height:98%}td.media-icon{text-align:center;width:80px;padding-top:8px;padding-bottom:8px}td.media-icon img{max-width:80px;max-height:60px}.list-ajax-loading{float:right;margin-right:9px;margin-top:-1px}.tablenav .list-ajax-loading{margin-top:7px}#howto{font-size:11px;margin:0 5px;display:block}.importers td{padding-right:14px}.importers{font-size:16px;width:auto}#namediv table{width:100%}#namediv td.first{width:10px;white-space:nowrap}#namediv input{width:98%}#namediv p{margin:10px 0}#submitdiv h3{margin-bottom:0!important}.zerosize{height:0;width:0;margin:0;border:0;padding:0;overflow:hidden;position:absolute}br.clear{height:2px;line-height:2px}.checkbox{border:0;margin:0;padding:0}fieldset{border:0;padding:0;margin:0}.post-categories{display:inline;margin:0;padding:0}.post-categories li{display:inline}.edit-box{display:none}h3:hover .edit-box{display:inline}.index-php form .input-text-wrap{background:#fff;border-style:solid;border-width:1px;padding:2px 3px;border-color:#ccc}#dashboard-widgets form .input-text-wrap input{border:0 none;outline:0;margin:0;padding:0;width:99%;color:#333}form .textarea-wrap{background:#fff;border-style:solid;border-width:1px;padding:2px;border-color:#ccc}#dashboard-widgets form .textarea-wrap textarea{border:0 none;padding:0;outline:0;width:99%;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}#dashboard-widgets .postbox form .submit{float:none;margin:.5em 0 0;padding:0;border:0}#dashboard-widgets-wrap #dashboard-widgets .postbox form .submit input{margin:0}#dashboard-widgets-wrap #dashboard-widgets .postbox form .submit #publish{min-width:0}#dashboard-widgets a{text-decoration:none}#dashboard-widgets h3 a{text-decoration:underline}#dashboard-widgets h3 .postbox-title-action{position:absolute;right:30px;padding:0;top:5px}#dashboard-widgets h4{font-weight:normal;font-size:13px;margin:0 0 .2em;padding:0}#dashboard_right_now p.sub,#dashboard_right_now .table,#dashboard_right_now .versions{margin:-12px}#dashboard_right_now .inside{font-size:12px;padding-top:20px}#dashboard_right_now p.sub{padding:5px 0 15px;color:#8f8f8f;font-size:14px;position:absolute;top:-17px;left:15px}#dashboard_right_now .table{margin:0;padding:0;position:relative}#dashboard_right_now .table_content{float:left;border-top:#ececec 1px solid;width:45%}#dashboard_right_now .table_discussion{float:right;border-top:#ececec 1px solid;width:45%}#dashboard_right_now table td{padding:3px 0;white-space:nowrap}#dashboard_right_now table tr.first td{border-top:0}#dashboard_right_now td.b{padding-right:6px;text-align:right;font-size:14px;width:1%}#dashboard_right_now td.b a{font-size:18px}#dashboard_right_now td.b a:hover{color:#d54e21}#dashboard_right_now .t{font-size:12px;padding-right:12px;padding-top:6px;color:#777}#dashboard_right_now .t a{white-space:nowrap}#dashboard_right_now .spam{color:red}#dashboard_right_now .waiting{color:#e66f00}#dashboard_right_now .approved{color:green}#dashboard_right_now .versions{padding:6px 10px 12px;clear:both}#dashboard_right_now a.button{float:right;clear:right;position:relative;top:-5px}#dashboard_recent_comments h3{margin-bottom:0}#dashboard_recent_comments .inside{margin-top:0}#dashboard_recent_comments .comment-meta .approve{font-style:italic;font-family:sans-serif;font-size:10px}#dashboard_recent_comments .subsubsub{float:none;white-space:normal}#the-comment-list{position:relative}#the-comment-list .comment-item{padding:1em 10px;border-top:1px solid}#the-comment-list .pingback{padding-left:9px!important}#the-comment-list .comment-item,#the-comment-list #replyrow{margin:0 -10px}#the-comment-list .comment-item:first-child{border-top:0}#the-comment-list .comment-item .avatar{float:left;margin:0 10px 5px 0}#the-comment-list .comment-item h4{line-height:1.7em;margin-top:-0.4em;color:#777}#the-comment-list .comment-item h4 cite{font-style:normal;font-weight:normal}#the-comment-list .comment-item blockquote,#the-comment-list .comment-item blockquote p{margin:0;padding:0;display:inline}#dashboard_recent_comments #the-comment-list .trackback blockquote,#dashboard_recent_comments #the-comment-list .pingback blockquote{display:block}#the-comment-list .comment-item p.row-actions{margin:3px 0 0;padding:0;font-size:12px}#dashboard_quick_press h4{font-family:sans-serif;float:left;width:5em;clear:both;font-weight:normal;text-align:right;font-size:12px}#dashboard_quick_press h4 label{margin-right:10px}#dashboard_quick_press .input-text-wrap,#dashboard_quick_press .textarea-wrap{margin:0 0 1em 5em}#dashboard_quick_press .wp-media-buttons{margin:0 0 .5em 5em;padding:0}#dashboard_quick_press .wp-media-buttons a{color:#777}#dashboard-widgets #dashboard_quick_press form p.submit{margin-left:4.6em}#dashboard-widgets #dashboard_quick_press form p.submit input{float:left}#dashboard-widgets #dashboard_quick_press form p.submit #save-post{margin:0 1em 0 10px}#dashboard-widgets #dashboard_quick_press form p.submit #publish{float:right}#dashboard-widgets #dashboard_quick_press form p.submit img.waiting{vertical-align:middle;visibility:hidden;margin:4px 6px 0 0}#dashboard_recent_drafts ul,#dashboard_recent_drafts p{margin:0;padding:0;word-wrap:break-word}#dashboard_recent_drafts ul{list-style:none}#dashboard_recent_drafts ul li{margin-bottom:1em}#dashboard_recent_drafts h4{line-height:1.7em;word-wrap:break-word}#dashboard_recent_drafts h4 abbr{font-weight:normal;font-family:sans-serif;font-size:12px;color:#999;margin-left:3px}.rss-widget ul{margin:0;padding:0;list-style:none}a.rsswidget{font-size:13px;line-height:1.7em}.rss-widget ul li{line-height:1.5em;margin-bottom:12px}.rss-widget span.rss-date{color:#999;font-size:12px;margin-left:3px}.rss-widget cite{display:block;text-align:right;margin:0 0 1em;padding:0}.rss-widget cite:before{content:'\2014'}#dashboard_plugins h4{line-height:1.7em}#dashboard_plugins h5{font-weight:normal;font-size:13px;margin:0;display:inline;line-height:1.4em}#dashboard_plugins h5 a{line-height:1.4em}#dashboard_plugins .inside span{font-size:12px;padding-left:5px}#dashboard_plugins p{margin:.3em 0 1.4em;line-height:1.4em}.dashboard-comment-wrap{overflow:hidden;word-wrap:break-word}#dashboard_browser_nag a.update-browser-link{font-size:1.2em;font-weight:bold}#dashboard_browser_nag a{text-decoration:underline}#dashboard_browser_nag p.browser-update-nag.has-browser-icon{padding-right:125px}#dashboard_browser_nag .browser-icon{margin-top:-35px}#dashboard_browser_nag.postbox.browser-insecure{background-color:#ac1b1b;border-color:#ac1b1b}#dashboard_browser_nag.postbox{background-color:#e29808;background-image:none;border-color:#edc048;-moz-box-shadow:none;-webkit-box-shadow:none;box-shadow:none;color:#fff}#dashboard_browser_nag.postbox.browser-insecure h3{border-bottom-color:#cd5a5a;color:#fff}#dashboard_browser_nag.postbox h3{border-bottom-color:#f6e2ac;text-shadow:none;-moz-box-shadow:none;-webkit-box-shadow:none;box-shadow:none;background:transparent none;color:#fff}#dashboard_browser_nag a{color:#fff}#dashboard_browser_nag.browser-insecure a.browse-happy-link,#dashboard_browser_nag.browser-insecure a.update-browser-link{text-shadow:#871b15 0 1px 0}#dashboard_browser_nag a.browse-happy-link,#dashboard_browser_nag a.update-browser-link{text-shadow:#d29a04 0 1px 0}.login *{margin:0;padding:0}.login form{margin-left:8px;padding:26px 24px 46px;font-weight:normal;background:#fff;border:1px solid #e5e5e5;-moz-box-shadow:rgba(200,200,200,0.7) 0 4px 10px -1px;-webkit-box-shadow:rgba(200,200,200,0.7) 0 4px 10px -1px;box-shadow:rgba(200,200,200,0.7) 0 4px 10px -1px}.login form .forgetmenot{font-weight:normal;float:left;margin-bottom:0}.login .button-primary{font-size:13px!important;line-height:16px;padding:3px 10px;float:right}#login form p{margin-bottom:0}#login form p.submit{padding:0}.login label{color:#777;font-size:14px}.login form .forgetmenot label{font-size:12px;line-height:19px}.login form p{margin-bottom:24px}.login h1 a{background-image:url('../images/wordpress-logo.png?ver=20120216');background-size:274px 63px;background-position:top center;background-repeat:no-repeat;width:326px;height:67px;text-indent:-9999px;overflow:hidden;padding-bottom:15px;display:block}@media only screen and (-webkit-min-device-pixel-ratio:1.5){.login h1 a{background-image:url('../images/wordpress-logo-2x.png?ver=20120412');background-size:274px 63px}.wp-badge{background-image:url('../images/wp-badge-2x.png?ver=20120516');background-size:173px 194px}}#login{width:320px;padding:114px 0 0;margin:auto}#login_error,.login .message{margin:0 0 16px 8px;padding:12px}.login #nav,.login #backtoblog{text-shadow:#fff 0 1px 0;margin:0 0 0 16px;padding:16px 16px 0}#backtoblog{padding:12px 16px 0}.login form .input,.login input[type="text"]{color:#555;font-weight:200;font-size:24px;line-height:1;width:100%;padding:3px;margin-top:2px;margin-right:6px;margin-bottom:16px;border:1px solid #e5e5e5;background:#fbfbfb;outline:0;-moz-box-shadow:inset 1px 1px 2px rgba(200,200,200,0.2);-webkit-box-shadow:inset 1px 1px 2px rgba(200,200,200,0.2);box-shadow:inset 1px 1px 2px rgba(200,200,200,0.2)}.login #pass-strength-result{width:250px;font-weight:bold;border-style:solid;border-width:1px;margin:12px 0 6px;padding:6px 5px;text-align:center}.mobile #login{padding:20px 0}.mobile #login form,.mobile #login .message,.mobile #login_error{margin-left:0}.mobile #login #nav,.mobile #login #backtoblog{margin-left:8px}.mobile #login h1 a{width:auto}#dashboard_right_now p.musub{margin-top:12px;border-top:1px solid #ececec;padding-left:16px;position:static}.rtl #dashboard_right_now p.musub{padding-left:0;padding-right:16px}#dashboard_right_now td.b a.musublink{font-size:16px}#dashboard_right_now div.musubtable{border-top:0}#dashboard_right_now div.musubtable .t{white-space:normal}.wp-list-table .site-deleted{background:#ff8573}.wp-list-table .site-spammed{background:#faafaa}.wp-list-table .site-archived{background:#ffebe8}.wp-list-table .site-mature{background:#fecac2}#nav-menus-frame{margin-left:300px}#wpbody-content #menu-settings-column{display:inline;width:281px;margin-left:-300px;clear:both;float:left;padding-top:24px}.no-js #wpbody-content #menu-settings-column{padding-top:31px}#menu-settings-column .inside{clear:both}.metabox-holder-disabled .postbox{opacity:.5;filter:alpha(opacity=50)}.metabox-holder-disabled .button-controls .select-all{display:none}#wpbody{position:relative}#menu-management-liquid{float:left;min-width:100%}#menu-management{position:relative;margin-right:20px;margin-top:-3px;width:100%}#menu-management .menu-edit{margin-bottom:20px}.nav-menus-php #post-body{padding:10px;border-width:1px 0;border-style:solid}#nav-menu-header,#nav-menu-footer{padding:0 10px}#nav-menu-header{border-bottom:1px solid}#nav-menu-footer{border-top:1px solid}.nav-menus-php #post-body div.updated,.nav-menus-php #post-body div.error{margin:0}.nav-menus-php #post-body-content{position:relative;float:none}#menu-management .menu-add-new abbr{font-weight:bold}#menu-management .nav-tabs-nav{margin:0 20px}#menu-management .nav-tabs-arrow{width:10px;padding:0 5px 4px;cursor:pointer;position:absolute;top:0;line-height:22px;font-size:18px;text-shadow:0 1px 0 #fff}#menu-management .nav-tabs-arrow-left{left:0}#menu-management .nav-tabs-arrow-right{right:0;text-align:right}#menu-management .nav-tabs-wrapper{width:100%;height:28px;margin-bottom:-1px;overflow:hidden}#menu-management .nav-tabs{padding-left:20px;padding-right:10px}.js #menu-management .nav-tabs{float:left;margin-left:0;margin-right:-400px}#menu-management .nav-tab{margin-bottom:0;font-size:14px}#select-nav-menu-container{text-align:right;padding:0 10px 3px 10px;margin-bottom:5px}#select-nav-menu{width:100px;display:inline}#menu-name-label{margin-top:-2px}#wpbody .open-label{display:block;float:left}#wpbody .open-label span{padding-right:10px}.js .input-with-default-title{font-style:italic}#menu-management .inside{padding:0 10px}.postbox .howto input{width:180px;float:right}.customlinkdiv .howto input{width:200px}#nav-menu-theme-locations .howto select{width:100%}#nav-menu-theme-locations .button-controls{text-align:right}.add-menu-item-view-all{height:400px}#menu-container .submit{margin:0 0 10px;padding:0}.nav-menus-php .meta-sep,.nav-menus-php .submitdelete,.nav-menus-php .submitcancel{display:block;float:left;margin:4px 0;line-height:15px}.meta-sep{padding:0 2px}#cancel-save{text-decoration:underline;font-size:12px;margin-left:20px;margin-top:5px}.list-controls{float:left;margin-top:5px}.add-to-menu{float:right}.postbox img.waiting{display:none;vertical-align:middle}.button-controls{clear:both;margin:10px 0}.show-all,.hide-all{cursor:pointer}.hide-all{display:none}#menu-name{width:270px}#manage-menu .inside{padding:0}#available-links dt{display:block}#add-custom-link .howto{font-size:12px}#add-custom-link label span{display:block;float:left;margin-top:5px;padding-right:5px}.menu-item-textbox{width:180px}.nav-menus-php .howto span{margin-top:4px;display:block;float:left}.quick-search{width:190px}.nav-menus-php .list-wrap{display:none;clear:both;margin-bottom:10px}.nav-menus-php .list-container{max-height:200px;overflow-y:auto;padding:10px 10px 5px}.nav-menus-php .postbox p.submit{margin-bottom:0}.nav-menus-php .list li{display:none;margin:0;margin-bottom:5px}.nav-menus-php .list li .menu-item-title{cursor:pointer;display:block}.nav-menus-php .list li .menu-item-title input{margin-right:3px;margin-top:-3px}#menu-container .inside{padding-bottom:10px}.menu{padding-top:1em}#menu-to-edit{padding:1em 0}.menu ul{width:100%}.menu li{margin-bottom:0;position:relative}.menu-item-bar{clear:both;line-height:1.5em;position:relative;margin:13px 0 0 0}.menu-item-handle{border:1px solid #dfdfdf;position:relative;padding-left:10px;height:auto;width:400px;line-height:35px;text-shadow:0 1px 0 #fff;overflow:hidden;word-wrap:break-word}#menu-to-edit .menu-item-invalid .menu-item-handle{background-color:#f6c9cc;background-image:-ms-linear-gradient(bottom,#f6c9cc,#fdf8ff);background-image:-moz-linear-gradient(bottom,#f6c9cc,#fdf8ff);background-image:-o-linear-gradient(bottom,#f6c9cc,#fdf8ff);background-image:-webkit-gradient(linear,left bottom,left top,from(#f6c9cc),to(#fdf8ff));background-image:-webkit-linear-gradient(bottom,#f6c9cc,#fdf8ff);background-image:linear-gradient(bottom,#f6c9cc,#fdf8ff)}.menu-item-edit-active .menu-item-handle{-webkit-border-bottom-right-radius:0;-webkit-border-bottom-left-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.no-js .menu-item-edit-active .item-edit{display:none}.js .menu-item-handle{cursor:move}.menu li.deleting .menu-item-handle{background-image:none;text-shadow:0}.menu-item-handle .item-title{font-size:12px;font-weight:bold;padding:7px 0;line-height:20px;display:block;margin-right:13em}li.menu-item.ui-sortable-helper dl{margin-top:0}li.menu-item.ui-sortable-helper .menu-item-transport dl{margin-top:13px}.menu .sortable-placeholder{height:35px;width:410px;margin-top:13px}.menu-item-depth-0{margin-left:0}.menu-item-depth-1{margin-left:30px}.menu-item-depth-2{margin-left:60px}.menu-item-depth-3{margin-left:90px}.menu-item-depth-4{margin-left:120px}.menu-item-depth-5{margin-left:150px}.menu-item-depth-6{margin-left:180px}.menu-item-depth-7{margin-left:210px}.menu-item-depth-8{margin-left:240px}.menu-item-depth-9{margin-left:270px}.menu-item-depth-10{margin-left:300px}.menu-item-depth-11{margin-left:330px}.menu-item-depth-0 .menu-item-transport{margin-left:0}.menu-item-depth-1 .menu-item-transport{margin-left:-30px}.menu-item-depth-2 .menu-item-transport{margin-left:-60px}.menu-item-depth-3 .menu-item-transport{margin-left:-90px}.menu-item-depth-4 .menu-item-transport{margin-left:-120px}.menu-item-depth-5 .menu-item-transport{margin-left:-150px}.menu-item-depth-6 .menu-item-transport{margin-left:-180px}.menu-item-depth-7 .menu-item-transport{margin-left:-210px}.menu-item-depth-8 .menu-item-transport{margin-left:-240px}.menu-item-depth-9 .menu-item-transport{margin-left:-270px}.menu-item-depth-10 .menu-item-transport{margin-left:-300px}.menu-item-depth-11 .menu-item-transport{margin-left:-330px}body.menu-max-depth-0{min-width:950px!important}body.menu-max-depth-1{min-width:980px!important}body.menu-max-depth-2{min-width:1010px!important}body.menu-max-depth-3{min-width:1040px!important}body.menu-max-depth-4{min-width:1070px!important}body.menu-max-depth-5{min-width:1100px!important}body.menu-max-depth-6{min-width:1130px!important}body.menu-max-depth-7{min-width:1160px!important}body.menu-max-depth-8{min-width:1190px!important}body.menu-max-depth-9{min-width:1220px!important}body.menu-max-depth-10{min-width:1250px!important}body.menu-max-depth-11{min-width:1280px!important}.item-type{font-size:12px;padding-right:10px}.item-controls{font-size:12px;position:absolute;right:20px;top:-1px}.item-controls a{text-decoration:none}.item-controls a:hover{cursor:pointer}.item-controls .item-order{padding-right:10px}.nav-menus-php .item-edit{position:absolute;right:-20px;top:0;display:block;width:30px;height:36px;overflow:hidden;text-indent:-999em;border-bottom:1px solid;-webkit-border-bottom-left-radius:3px;border-bottom-left-radius:3px}.menu-instructions-inactive{display:none}.menu-item-settings{display:block;width:400px;padding:10px 0 10px 10px;border:solid;border-width:0 1px 1px 1px;-webkit-border-bottom-right-radius:3px;-webkit-border-bottom-left-radius:3px;border-bottom-left-radius:3px;border-bottom-right-radius:3px}.menu-item-edit-active .menu-item-settings{display:block}.menu-item-edit-inactive .menu-item-settings{display:none}.add-menu-item-pagelinks{margin:.5em auto;text-align:center}.link-to-original{display:block;margin:0 0 10px;padding:3px 5px 5px;font-size:12px;font-style:italic}.link-to-original a{padding-left:4px;font-style:normal}.hidden-field{display:none}.menu-item-settings .description-thin,.menu-item-settings .description-wide{margin-right:10px;float:left}.description-thin{width:190px;height:40px}.description-wide{width:390px}.menu-item-actions{padding-top:15px}#cancel-save{cursor:pointer}.nav-menus-php .major-publishing-actions{clear:both;padding:3px 0 5px}.nav-menus-php .major-publishing-actions .publishing-action{text-align:right;float:right;line-height:23px;margin:5px 0 1px}.nav-menus-php .major-publishing-actions .delete-action{vertical-align:middle;text-align:left;float:left;padding-right:15px;margin-top:5px}.menu-name-label span,.auto-add-pages label{font-size:12px;font-style:normal}.menu-name-label{margin-right:15px}.auto-add-pages input{margin-top:0}.auto-add-pages{margin-top:4px;float:left}.nav-menus-php .submitbox .submitcancel{border-bottom:1px solid;padding:1px 2px;text-decoration:none}.nav-menus-php .major-publishing-actions .form-invalid{padding-left:4px;margin-left:-4px;border:0 none}#menu-item-name-wrap:after,#menu-item-url-wrap:after,#menu-name-label:after,#menu-settings-column .inside:after,#nav-menus-frame:after,.nav-menus-php #post-body-content:after,.nav-menus-php .button-controls:after,.nav-menus-php .major-publishing-actions:after,.nav-menus-php .menu-item-settings:after{clear:both;content:".";display:block;height:0;visibility:hidden}#nav-menus-frame,.button-controls,#menu-item-url-wrap,#menu-item-name-wrap{display:block}div.star-holder{position:relative;height:17px;width:100px;background:url('../images/stars.png?ver=20120307') repeat-x bottom left}div.star-holder .star-rating{background:url('../images/stars.png?ver=20120307') repeat-x top left;height:17px;float:left}div.action-links{font-weight:normal;margin:6px 0 0}#plugin-information-header{margin:0;padding:0 5px;font-weight:bold;position:relative;border-bottom-width:1px;border-bottom-style:solid;height:2.5em}#plugin-information ul#sidemenu{font-weight:normal;margin:0 5px;position:absolute;left:0;bottom:-1px}#plugin-information p.action-button{width:100%;padding-bottom:0;margin-bottom:0;margin-top:10px;-webkit-border-top-left-radius:3px;-webkit-border-bottom-left-radius:3px;border-top-left-radius:3px;border-bottom-left-radius:3px}#plugin-information .action-button a{text-align:center;font-weight:bold;text-decoration:none;display:block;line-height:2em}#plugin-information h2{clear:none!important;margin-right:200px}#plugin-information .fyi{margin:0 10px 50px;width:210px}#plugin-information .fyi h2{font-size:.9em;margin-bottom:0;margin-right:0}#plugin-information .fyi h2.mainheader{padding:5px;-webkit-border-top-left-radius:3px;border-top-left-radius:3px}#plugin-information .fyi ul{padding:10px 5px 10px 7px;margin:0;list-style:none;-webkit-border-bottom-left-radius:3px;border-bottom-left-radius:3px}#plugin-information .fyi li{margin-right:0}#plugin-information #section-holder{padding:10px}#plugin-information .section ul,#plugin-information .section ol{margin-left:16px;list-style-type:square;list-style-image:none}#plugin-information #section-screenshots ol{list-style:none;margin:0}#plugin-information #section-screenshots li img{vertical-align:text-top;max-width:100%;width:auto;height:auto}#plugin-information #section-screenshots li p{font-style:italic;padding-left:20px;padding-bottom:2em}#plugin-information #section-screenshots ol,#plugin-information .updated,#plugin-information pre{margin-right:215px}#plugin-information pre{padding:7px;overflow:auto}body.press-this{color:#333;margin:0;padding:0;min-width:675px;min-height:400px}img{border:0}.press-this #wphead{height:32px;margin-left:0;margin-right:0;margin-bottom:5px}.press-this #header-logo{float:left;margin:7px 7px 0;-webkit-user-select:none;-moz-user-select:none;user-select:none}.press-this #wphead h1{font-weight:normal;font-size:16px;line-height:32px;margin:0;float:left}.press-this #wphead h1 a{text-decoration:none}.press-this #wphead h1 a:hover{text-decoration:underline}.press-this #message{margin:10px 0}.press-this-sidebar{float:right;width:200px;padding-top:10px}.press-this #title{margin-left:0;margin-right:0;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box}.press-this .tagchecklist span a{background:transparent url(../images/xit.gif) no-repeat 0 0}.press-this #titlediv{margin:0}.press-this .wp-media-buttons{cursor:default;padding:8px 8px 0}.press-this .howto{margin-top:2px;margin-bottom:3px;font-size:12px;font-style:italic;display:block}.press-this #poststuff{margin:0 10px 10px}#poststuff #editor-toolbar{height:30px}div.zerosize{border:0 none;height:0;margin:0;overflow:hidden;padding:0;width:0}.posting{margin-right:212px;position:relative}.press-this .inner-sidebar{width:200px}.press-this .inner-sidebar .sleeve{padding-top:5px}.press-this #submitdiv p{margin:0;padding:6px}.press-this #submitdiv #publishing-actions{border-bottom:1px solid #dfdfdf}.press-this #publish{float:right}.press-this #poststuff h2,.press-this #poststuff h3{font-size:14px;line-height:1}.press-this #tagsdiv-post_tag h3,.press-this #categorydiv h3{cursor:pointer}.press-this #submitdiv h3{cursor:default}h3.tb{text-shadow:0 1px 0 #fff;font-weight:bold;font-size:12px;margin-left:5px}#TB_window{border:1px solid #333}.press-this .postbox,.press-this .stuffbox{margin-bottom:10px;min-width:0}.postbox:hover .handlediv,.stuffbox:hover .handlediv{background:transparent url(../images/arrows.png) no-repeat 6px 7px}.press-this #submitdiv:hover .handlediv{background:0}.tbtitle{font-size:1.7em;outline:0;padding:3px 4px;border-color:#dfdfdf}.press-this .actions{float:right;margin:-19px 0 0}.press-this #extra-fields .actions{margin:-25px -7px 0 0}.press-this .actions li{float:left;list-style:none;margin-right:10px}#extra-fields .button{margin-right:5px}#photo_saving{margin:0 8px 8px;vertical-align:middle}#img_container_container{overflow:auto}#extra-fields{margin-top:10px;position:relative}#extra-fields h2{margin:12px}#waiting{margin-top:10px}#extra-fields .postbox{margin-bottom:5px}#extra-fields .titlewrap{padding:0;overflow:auto;height:100px}#img_container a{display:block;float:left;overflow:hidden;vertical-align:center}#img_container img,#img_container a{width:68px;height:68px}#img_container img{border:0;background-color:#f4f4f4;cursor:pointer}#img_container a,#img_container a:link,#img_container a:visited{border:1px solid #ccc;display:block;position:relative}#img_container a:hover,#img_container a:active{border-color:#000;z-index:1000;border-width:2px;margin:-1px}#embed-code{width:100%;height:98px}.press-this .categorydiv div.tabs-panel{height:100px}.press-this .tagsdiv .newtag{width:130px}.press-this #content{margin:5px 0;padding:0 5px;border:0 none;height:357px;font-family:Consolas,Monaco,monospace;font-size:13px;line-height:19px;background:transparent}#saving{display:inline;vertical-align:middle}#TB_ajaxContent #options{position:absolute;top:20px;right:25px;padding:5px}#TB_ajaxContent h3{margin-bottom:.25em}.error a{text-decoration:underline}.updated a{text-decoration:none;padding-bottom:2px}.taghint{color:#aaa;margin:-17px 0 0 7px;visibility:hidden}input.newtag ~ div.taghint{visibility:visible}input.newtag:focus ~ div.taghint{visibility:hidden}#mce_fullscreen_container{background:#fff}#photo-add-url-div input[type="text"]{width:300px}.alignleft h3{margin:0}h3 span{font-weight:normal}#template textarea{font-family:Consolas,Monaco,monospace;font-size:12px;width:97%;background:#f9f9f9;outline:0}#template p{width:97%}#templateside{float:right;width:190px;word-wrap:break-word}#templateside h3,#postcustomstuff p.submit{margin:0}#templateside h4{margin:1em 0 0}#templateside ol,#templateside ul{margin:.5em;padding:0}#templateside li{margin:4px 0}#templateside ul li a span.highlight{display:block}.nonessential{font-size:11px;font-style:italic;padding-left:12px}.highlight{padding:3px 3px 3px 12px;margin-left:-12px;font-weight:bold;border:0 none}#documentation{margin-top:10px}#documentation label{line-height:22px;vertical-align:top;font-weight:bold}.fileedit-sub{padding:10px 0 8px;line-height:180%}#filter-box{clear:both}.feature-filter{padding:8px 12px 0}.feature-filter .feature-group{float:left;margin:5px 10px 10px}.feature-filter .feature-group li{display:inline;float:left;list-style-type:none;padding-right:25px;width:150px}.feature-container{width:100%;overflow:auto;margin-bottom:10px}div.widget-liquid-left{float:left;clear:left;width:100%;margin-right:-325px}div#widgets-left{margin-left:5px;margin-right:325px}div#widgets-right{width:285px;margin:0 auto}div.widget-liquid-right{float:right;clear:right;width:300px}.widget-liquid-right .widget,.inactive-sidebar .widget,.widget-liquid-right .sidebar-description{width:250px;margin:0 auto 20px;overflow:hidden}.widget-liquid-right .sidebar-description{margin-bottom:10px}.inactive-sidebar .widget{margin:0 10px 20px;float:left}div.sidebar-name h3{font-weight:normal;font-size:15px;margin:0;padding:8px 10px;overflow:hidden;white-space:nowrap}div.sidebar-name{cursor:pointer;font-size:13px;border-width:1px;border-style:solid;-webkit-border-top-right-radius:3px;-webkit-border-top-left-radius:3px;border-top-right-radius:3px;border-top-left-radius:3px}.js .closed .sidebar-name{-webkit-border-bottom-right-radius:3px;-webkit-border-bottom-left-radius:3px;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.widget-liquid-right .widgets-sortables,#widgets-left .widget-holder{border-width:0 1px 1px;border-style:none solid solid;-webkit-border-bottom-right-radius:3px;-webkit-border-bottom-left-radius:3px;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.js .closed .widgets-sortables,.js .closed .widget-holder{display:none}.widget-liquid-right .widgets-sortables{padding:15px 0 0}#available-widgets .widget-holder{padding:7px 5px 0}#available-widgets .widget{-moz-box-shadow:none;-webkit-box-shadow:none;box-shadow:none}.inactive-sidebar{padding:5px 5px 0}#widget-list .widget{width:250px;margin:0 10px 15px;border:0 none;background:transparent;float:left}#widget-list .widget-description{padding:5px 8px}.widget-placeholder{border-width:1px;border-style:dashed;margin:0 auto 20px;height:26px;width:250px}.inactive-sidebar .widget-placeholder{margin:0 10px 20px;float:left}div.widgets-holder-wrap{padding:0;margin:10px 0 20px}#widgets-left #available-widgets{background-color:transparent;border:0 none}ul#widget-list{list-style:none;margin:0;padding:0;min-height:100px}.widget .widget-top{margin-bottom:-1px;font-size:12px;font-weight:bold;height:26px;overflow:hidden}.widget-top .widget-title{padding:7px 9px}.widget-top .widget-title-action{float:right}a.widget-action{display:block;width:24px;height:26px}#available-widgets a.widget-action{display:none}.widget-top a.widget-action{background:transparent url(../images/arrows.png) no-repeat 4px 6px}.widget-top a.widget-action:hover{background:transparent url(../images/arrows-dark.png) no-repeat 4px 6px}.widget .widget-inside,.widget .widget-description{padding:12px 12px 10px;font-size:12px;line-height:16px}.widget-inside,.widget-description{display:none}#available-widgets .widget-description{display:block}.widget .widget-inside p{margin:0 0 1em;padding:0}.widget-title h4{margin:0;line-height:1;overflow:hidden;white-space:nowrap}.widgets-sortables{min-height:90px}.widget-control-actions{margin-top:8px}.widget-control-actions a{text-decoration:none}.widget-control-actions a:hover{text-decoration:underline}.widget-control-actions .ajax-feedback{padding-bottom:3px}.widget-control-actions div.alignleft{margin-top:6px}div#sidebar-info{padding:0 1em;margin-bottom:1em;font-size:12px}.widget-title a,.widget-title a:hover{text-decoration:none;border-bottom:0}.widget-control-edit{display:block;font-size:12px;font-weight:normal;line-height:26px;padding:0 8px 0 0}a.widget-control-edit{text-decoration:none}.widget-control-edit .add,.widget-control-edit .edit{display:none}#available-widgets .widget-control-edit .add,#widgets-right .widget-control-edit .edit,.inactive-sidebar .widget-control-edit .edit{display:inline}.editwidget{margin:0 auto 15px}.editwidget .widget-inside{display:block;padding:10px}.inactive p.description{margin:5px 15px 10px}#available-widgets p.description{margin:0 12px 12px}.widget-position{margin-top:8px}.inactive{padding-top:2px}.sidebar-name-arrow{float:right;height:29px;width:26px}.widget-title .in-widget-title{font-size:12px;white-space:nowrap}#removing-widget{display:none;font-weight:normal;padding-left:15px;font-size:12px;line-height:1}.widget-control-noform,#access-off,.widgets_access .widget-action,.widgets_access .sidebar-name-arrow,.widgets_access #access-on,.widgets_access .widget-holder .description{display:none}.widgets_access .widget-holder,.widgets_access #widget-list{padding-top:10px}.widgets_access #access-off{display:inline}.widgets_access #wpbody-content .widget-title-action,.widgets_access #wpbody-content .widget-control-edit,.widgets_access .closed .widgets-sortables,.widgets_access .closed .widget-holder{display:block}.widgets_access .closed .sidebar-name{-webkit-border-bottom-right-radius:0;-webkit-border-bottom-left-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.widgets_access .sidebar-name,.widgets_access .widget .widget-top{cursor:default}@media only screen and (max-width:768px){#col-left{width:100%}#col-right{width:100%}}@media only screen and (min-width:769px){#col-left{width:35%}#col-right{width:65%}}@media only screen and (max-width:860px){#col-left{width:35%}#col-right{width:65%}}@media only screen and (min-width:980px){#col-left{width:35%}#col-right{width:65%}}@media only screen and (max-width:768px){#col-left{width:100%}#col-right{width:100%}.form-field input,.form-field textarea{width:99%}.form-wrap .form-field{padding:0}#profile-page .form-table textarea{max-width:400px;width:auto}}.locale-zh-cn .howto,.locale-zh-cn .tablenav .displaying-num,.locale-zh-cn .js .input-with-default-title,.locale-zh-cn .link-to-original,.locale-zh-cn .inline-edit-row fieldset span.title,.locale-zh-cn .inline-edit-row fieldset span.checkbox-title,.locale-zh-cn #utc-time,.locale-zh-cn #local-time,.locale-zh-cn p.install-help,.locale-zh-cn p.help,.locale-zh-cn p.description,.locale-zh-cn span.description,.locale-zh-cn .form-wrap p{font-style:normal}.locale-zh-cn .hdnle a{font-size:12px}.locale-zh-cn form.upgrade .hint{font-style:normal;font-size:100%}.locale-zh-cn #wp-fullscreen-tagline{font-family:KaiTi,"楷体",sans-serif}.locale-zh-cn #wp-fullscreen-modes a{font-size:12px}.locale-zh-cn #sort-buttons{font-size:1em!important}.locale-ru-ru #dashboard_quick_press .input-text-wrap,.locale-ru-ru #dashboard_quick_press .textarea-wrap,.locale-ru-ru #dashboard_quick_press .wp-media-buttons{margin-left:5.7em}.locale-ru-ru #dashboard_quick_press h4{width:5.7em}.locale-ru-ru #dashboard-widgets #dashboard_quick_press form p.submit{margin-left:5.3em}.locale-ru-ru .inline-edit-row fieldset label span.title{width:auto;min-width:5em}.locale-ru-ru.press-this .posting{margin-right:257px}.locale-ru-ru.press-this #photo-add-url-div input[type="text"]{width:255px}.locale-ru-ru.press-this #side-sortables{width:245px}.locale-lt-lt #dashboard_quick_press .input-text-wrap,.locale-lt-lt #dashboard_quick_press .textarea-wrap,.locale-lt-lt #dashboard_quick_press .wp-media-buttons{margin-left:7em}.locale-lt-lt #dashboard_quick_press h4{width:7em}.locale-lt-lt .inline-edit-row fieldset label span.title{width:8em}.locale-lt-lt .inline-edit-row fieldset label span.input-text-wrap{margin-left:8em}
\ No newline at end of file
+/*------------------------------------------------------------------------------
+
+
+Hello, this is the main WordPress admin CSS file.
+All the important stuff is in here.
+
+
+TABLE OF CONTENTS:
+------------------
+ 1.0 - Text Elements
+ 2.0 - Forms
+ 3.0 - Actions
+ 4.0 - Notifications
+ 5.0 - TinyMCE
+ 6.0 - Admin Header
+	6.1 - Screen Options Tabs
+	6.2 - Help Menu
+ 7.0 - Main Navigation
+ 8.0 - Layout Blocks
+ 9.0 - Dashboard
+10.0 - List Posts
+	10.1 - Inline Editing
+11.0 - Write/Edit Post Screen
+	11.1 - Custom Fields
+	11.2 - Post Revisions
+	11.3 - Featured Images
+12.0 - Categories
+13.0 - Tags
+14.0 - Media Screen
+	14.1 - Media Library
+	14.2 - Image Editor
+15.0 - Comments Screen
+16.0 - Themes
+	16.1 - Custom Header
+	16.2 - Custom Background
+	16.3 - Tabbed Admin Screen Interface
+17.0 - Plugins
+18.0 - Users
+19.0 - Tools
+20.0 - Settings
+21.0 - Admin Footer
+22.0 - About Pages
+23.0 - Full Overlay w/ Sidebar
+24.0 - Customize Loader
+25.0 - Misc
+
+------------------------------------------------------------------------*/
+
+/* 2 column liquid layout */
+#wpwrap {
+	height: auto;
+	min-height: 100%;
+	width: 100%;
+	position: relative;
+}
+
+#wpcontent {
+	height: 100%;
+}
+
+#wpcontent,
+#wpfooter {
+	margin-left: 165px;
+}
+
+.folded #wpcontent,
+.folded #wpfooter {
+	margin-left: 52px;
+}
+
+#wpbody-content {
+	padding-bottom: 65px;
+	float: left;
+	width: 100%;
+}
+
+#adminmenuback,
+#adminmenuwrap,
+#adminmenu,
+#adminmenu .wp-submenu {
+	width: 145px;
+}
+
+#adminmenuback {
+	position: absolute;
+	top: 0;
+	bottom: 0;
+	z-index: -1;
+}
+
+#adminmenu {
+	clear: left;
+	margin: 0;
+	padding: 0;
+	list-style: none;
+}
+
+.folded #adminmenuback,
+.folded #adminmenuwrap,
+.folded #adminmenu,
+.folded #adminmenu li.menu-top {
+	width: 32px;
+}
+
+/* inner 2 column liquid layout */
+
+.inner-sidebar {
+	float: right;
+	clear: right;
+	display: none;
+	width: 281px;
+	position: relative;
+}
+
+.columns-2 .inner-sidebar {
+	margin-right: auto;
+	width: 286px;
+	display: block;
+}
+
+.inner-sidebar #side-sortables,
+.columns-2 .inner-sidebar #side-sortables {
+	min-height: 300px;
+	width: 280px;
+	padding: 0;
+}
+
+.has-right-sidebar .inner-sidebar {
+	display: block;
+}
+
+.has-right-sidebar #post-body {
+	float: left;
+	clear: left;
+	width: 100%;
+	margin-right: -2000px;
+}
+
+.has-right-sidebar #post-body-content {
+	margin-right: 300px;
+	float: none;
+	width: auto;
+}
+
+/* 2 columns main area */
+
+#col-container,
+#col-left,
+#col-right {
+	overflow: hidden;
+	padding: 0;
+	margin: 0;
+}
+
+#col-left {
+	width: 35%;
+}
+
+#col-right {
+	float: right;
+	clear: right;
+	width: 65%;
+}
+
+.col-wrap {
+	padding: 0 7px;
+}
+
+/* utility classes */
+.alignleft {
+	float: left;
+}
+
+.alignright {
+	float: right;
+}
+
+.textleft {
+	text-align: left;
+}
+
+.textright {
+	text-align: right;
+}
+
+.clear {
+	clear: both;
+}
+
+/* Hide visually but not from screen readers */
+.screen-reader-text,
+.screen-reader-text span,
+.ui-helper-hidden-accessible {
+	position: absolute;
+	left: -1000em;
+	top: -1000em;
+	height: 1px;
+	width: 1px;
+	overflow: hidden;
+}
+
+.screen-reader-shortcut {
+	position: absolute;
+	top: -1000em;
+}
+
+.screen-reader-shortcut:focus {
+	left: 6px;
+	top: -21px;
+	height: auto;
+	width: auto;
+	display: block;
+	font-size: 14px;
+	font-weight: bold;
+	padding: 15px 23px 14px;
+	background: #f1f1f1;
+	color: #21759b;
+	border-radius: 3px;
+	z-index: 100000;
+	line-height: normal;
+	-webkit-box-shadow: 0 0 2px 2px rgba(0,0,0,.6);
+	box-shadow: 0 0 2px 2px rgba(0,0,0,.6);
+	text-decoration: none;
+}
+
+.hidden,
+.js .closed .inside,
+.js .hide-if-js,
+.no-js .hide-if-no-js,
+.js.wp-core-ui .hide-if-js,
+.js .wp-core-ui .hide-if-js,
+.no-js.wp-core-ui .hide-if-no-js,
+.no-js .wp-core-ui .hide-if-no-js {
+	display: none;
+}
+
+/* include margin and padding in the width calculation of input and textarea */
+input[type="text"],
+input[type="password"],
+input[type="number"],
+input[type="search"],
+input[type="email"],
+input[type="url"],
+textarea {
+	-moz-box-sizing: border-box;
+	-webkit-box-sizing: border-box;
+	-ms-box-sizing: border-box; /* ie8 only */
+	box-sizing: border-box;
+}
+
+input[type="checkbox"],
+input[type="radio"] {
+	vertical-align: text-top;
+	padding: 0;
+	margin: 1px 0 0;
+}
+
+input[type="search"] {
+	-webkit-appearance: textfield;
+}
+
+input[type="search"]::-webkit-search-decoration {
+	display: none;
+}
+
+/* general */
+html,
+body {
+	height: 100%;
+	margin: 0;
+	padding: 0;
+}
+
+body {
+	font-family: sans-serif;
+	font-size: 12px;
+	line-height: 1.4em;
+	min-width: 600px;
+}
+
+body.iframe {
+	min-width: 0;
+}
+
+body.login {
+	background: #fbfbfb;
+	min-width: 0;
+}
+
+iframe,
+img {
+	border: 0;
+}
+
+td,
+textarea,
+input,
+select,
+button {
+	font-family: inherit;
+	font-size: inherit;
+	font-weight: inherit;
+}
+
+td,
+textarea {
+	line-height: inherit;
+}
+
+input,
+select {
+	line-height: 15px;
+}
+
+a,
+input[type="text"],
+input[type="password"],
+input[type="number"],
+input[type="search"],
+input[type="email"],
+input[type="url"],
+select,
+textarea,
+div {
+	outline: 0;
+}
+
+a:focus,
+a:active {
+	outline: thin dotted;
+}
+
+#adminmenu a:focus,
+#adminmenu a:active,
+.screen-reader-text:focus {
+	outline: none;
+}
+
+blockquote,
+q {
+	quotes: none;
+}
+
+blockquote:before,
+blockquote:after,
+q:before,
+q:after {
+	content: '';
+	content: none;
+}
+
+p {
+	margin: 1em 0;
+}
+
+blockquote {
+	margin: 1em;
+}
+
+label {
+	cursor: pointer;
+}
+
+li,
+dd {
+	margin-bottom: 6px;
+}
+
+textarea,
+input,
+select {
+	margin: 1px;
+	padding: 3px;
+}
+
+h1,
+h2,
+h3,
+h4,
+h5,
+h6 {
+	display: block;
+	font-weight: bold;
+}
+
+h1 {
+	font-size: 2em;
+	margin: .67em 0;
+}
+
+h2 {
+	font-size: 1.5em;
+	margin: .83em 0;
+}
+
+h3 {
+	font-size: 1.17em;
+	margin: 1em 0;
+}
+
+h4 {
+	font-size: 1em;
+	margin: 1.33em 0;
+}
+
+h5 {
+	font-size: 0.83em;
+	margin: 1.67em 0;
+}
+
+h6 {
+	font-size: 0.67em;
+	margin: 2.33em 0;
+}
+
+ul,
+ol {
+	padding: 0;
+}
+
+ul {
+	list-style: none;
+}
+
+ol {
+	list-style-type: decimal;
+	margin-left: 2em;
+}
+
+ul.ul-disc {
+	list-style: disc outside;
+}
+
+ul.ul-square {
+	list-style: square outside;
+}
+
+ol.ol-decimal {
+	list-style: decimal outside;
+}
+
+ul.ul-disc,
+ul.ul-square,
+ol.ol-decimal {
+	margin-left: 1.8em;
+}
+
+ul.ul-disc > li,
+ul.ul-square > li,
+ol.ol-decimal > li {
+	margin: 0 0 0.5em;
+}
+
+.code,
+code {
+	font-family: Consolas, Monaco, monospace;
+}
+
+kbd,
+code {
+	padding: 1px 3px;
+	margin: 0 1px;
+	font-size: 11px;
+}
+
+.subsubsub {
+	list-style: none;
+	margin: 8px 0 5px;
+	padding: 0;
+	font-size: 12px;
+	float: left;
+}
+
+.subsubsub a {
+	line-height: 2;
+	padding: .2em;
+	text-decoration: none;
+}
+
+.subsubsub a .count,
+.subsubsub a.current .count {
+	color: #999;
+	font-weight: normal;
+}
+
+.subsubsub a.current {
+	font-weight: bold;
+	border: none;
+}
+
+.subsubsub li {
+	display: inline-block;
+	margin: 0;
+	padding: 0;
+	white-space: nowrap;
+}
+
+.widefat,
+div.updated,
+div.error,
+.wrap .add-new-h2,
+textarea,
+input[type="text"],
+input[type="password"],
+input[type="file"],
+input[type="email"],
+input[type="number"],
+input[type="search"],
+input[type="tel"],
+input[type="url"],
+select,
+.tablenav .tablenav-pages a,
+.tablenav-pages span.current,
+#titlediv #title,
+.postbox,
+#postcustomstuff table,
+#postcustomstuff input,
+#postcustomstuff textarea,
+.imgedit-menu div,
+.plugin-update-tr .update-message,
+#poststuff .inside .the-tagcloud,
+.login form,
+#login_error,
+.login .message,
+#menu-management .menu-edit,
+.nav-menus-php .list-container,
+.menu-item-handle,
+.link-to-original,
+.nav-menus-php .major-publishing-actions .form-invalid,
+.press-this #message,
+#TB_window,
+.tbtitle,
+.highlight,
+.feature-filter,
+#widget-list .widget-top,
+.editwidget .widget-inside {
+	-webkit-border-radius: 3px;
+	border-radius: 3px;
+	border-width: 1px;
+	border-style: solid;
+}
+
+/* .widefat - main style for tables */
+.widefat {
+	border-spacing: 0;
+	width: 100%;
+	clear: both;
+	margin: 0;
+}
+
+.widefat * {
+	word-wrap: break-word;
+}
+
+.widefat a {
+	text-decoration: none;
+}
+
+.widefat thead th:first-of-type {
+	-webkit-border-top-left-radius: 3px;
+	border-top-left-radius: 3px;
+}
+.widefat thead th:last-of-type {
+	-webkit-border-top-right-radius: 3px;
+	border-top-right-radius: 3px;
+}
+.widefat tfoot th:first-of-type {
+	-webkit-border-bottom-left-radius: 3px;
+	border-bottom-left-radius: 3px;
+}
+.widefat tfoot th:last-of-type {
+	-webkit-border-bottom-right-radius: 3px;
+	border-bottom-right-radius: 3px;
+}
+
+.widefat td,
+.widefat th {
+	border-width: 1px 0;
+	border-style: solid;
+}
+.widefat tfoot th {
+	border-bottom: none;
+}
+
+.widefat .no-items td {
+	border-bottom-width: 0;
+}
+
+.widefat td {
+	font-size: 12px;
+	padding: 4px 7px 2px;
+	vertical-align: top;
+}
+
+.widefat td p,
+.widefat td ol,
+.widefat td ul {
+	font-size: 12px;
+}
+
+.widefat th {
+	padding: 7px 7px 8px;
+	text-align: left;
+	line-height: 1.3em;
+	font-size: 14px;
+}
+
+.widefat th input {
+	margin: 0 0 0 8px;
+	padding: 0;
+	vertical-align: text-top;
+}
+
+.widefat .check-column {
+	width: 2.2em;
+	padding: 6px 0 25px;
+	vertical-align: top;
+}
+
+.widefat tbody th.check-column {
+	padding: 9px 0 22px;
+}
+
+.widefat.media .check-column {
+	padding-top: 8px;
+}
+
+.widefat thead .check-column,
+.widefat tfoot .check-column {
+	padding: 10px 0 0;
+}
+
+.no-js .widefat thead .check-column input,
+.no-js .widefat tfoot .check-column input {
+	display: none;
+}
+
+.widefat .num,
+.column-comments,
+.column-links,
+.column-posts {
+	text-align: center;
+}
+
+.widefat th#comments {
+	vertical-align: middle;
+}
+
+.wrap {
+	margin: 4px 15px 0 0;
+}
+
+div.updated,
+div.error {
+	padding: 0 0.6em;
+	margin: 5px 15px 2px;
+}
+
+div.updated p,
+div.error p {
+	margin: 0.5em 0;
+	padding: 2px;
+}
+
+.wrap div.updated,
+.wrap div.error,
+.media-upload-form div.error {
+	margin: 5px 0 15px;
+}
+
+.wrap h2,
+.subtitle {
+	font-weight: normal;
+	margin: 0;
+	text-shadow: #fff 0 1px 0;
+}
+
+.wrap h2 {
+	font-size: 23px;
+	padding: 9px 15px 4px 0;
+	line-height: 29px;
+}
+
+.subtitle {
+	font-size: 14px;
+	padding-left: 25px;
+}
+
+.wrap .add-new-h2 {
+	font-family: sans-serif;
+	margin-left: 4px;
+	padding: 3px 8px;
+	position: relative;
+	top: -3px;
+	text-decoration: none;
+	font-size: 12px;
+	border: 0 none;
+}
+
+.wrap h2.long-header {
+	padding-right: 0;
+}
+
+html,
+.wp-dialog {
+	background-color: #fff;
+}
+
+textarea,
+input[type="text"],
+input[type="password"],
+input[type="file"],
+input[type="email"],
+input[type="number"],
+input[type="search"],
+input[type="tel"],
+input[type="url"],
+select {
+	background-color: #fff;
+	color: #333;
+}
+
+select {
+	color: #000;
+}
+
+select[disabled] {
+	color: #7f7f7f;
+}
+
+select:focus {
+	border-color: #aaa;
+}
+
+textarea:focus,
+input[type="text"]:focus,
+input[type="password"]:focus,
+input[type="file"]:focus,
+input[type="email"]:focus,
+input[type="number"]:focus,
+input[type="search"]:focus,
+input[type="tel"]:focus,
+input[type="url"]:focus,
+select:focus {
+	-webkit-box-shadow: 1px 1px 2px rgba(0,0,0,0.1);
+	box-shadow: 1px 1px 2px rgba(0,0,0,0.1);
+}
+
+input[readonly] {
+	background-color: #eee;
+}
+
+:-moz-placeholder {
+   color: #a9a9a9;
+}
+
+/*------------------------------------------------------------------------------
+  1.0 - Text Styles
+------------------------------------------------------------------------------*/
+
+div.sidebar-name h3,
+#menu-management .nav-tab,
+#dashboard_plugins h5,
+a.rsswidget,
+#dashboard_right_now td.b,
+#dashboard-widgets h4,
+.tool-box .title,
+#poststuff h3,
+.metabox-holder h3,
+.pressthis a,
+#your-profile legend,
+.inline-edit-row fieldset span.title,
+.inline-edit-row fieldset span.checkbox-title,
+.tablenav .displaying-num,
+.widefat th,
+.quicktags,
+.search {
+	font-family: Georgia, "Times New Roman", "Bitstream Charter", Times, serif;
+}
+
+h2 .nav-tab,
+.wrap h2,
+.subtitle,
+.login form .input {
+	font-family: "HelveticaNeue-Light", "Helvetica Neue Light", "Helvetica Neue", sans-serif;
+}
+
+.quicktags,
+.search {
+	font-size: 12px;
+}
+
+.icon32 {
+	float: left;
+	height: 34px;
+	margin: 7px 8px 0 0;
+	width: 36px;
+}
+
+.icon16 {
+	height: 18px;
+	width: 18px;
+	padding: 6px 6px;
+	margin: -6px 0 0 -8px;
+	float: left;
+}
+
+.key-labels label {
+	line-height: 24px;
+}
+
+.pre {
+	/* https://developer.mozilla.org/en-US/docs/CSS/white-space */
+	white-space: pre-wrap; /* css-3 */
+	word-wrap: break-word; /* IE 5.5 - 7 */
+}
+
+.howto {
+	font-style: italic;
+	display: block;
+	font-family: sans-serif;
+}
+
+p.install-help {
+	margin: 8px 0;
+	font-style: italic;
+}
+
+.no-break {
+	white-space: nowrap;
+}
+
+/*------------------------------------------------------------------------------
+  2.0 - Forms
+------------------------------------------------------------------------------*/
+
+
+.wp-admin select {
+	padding: 2px;
+	height: 2em;
+}
+
+.wp-admin select[multiple] {
+	height: auto;
+}
+
+.submit {
+	padding: 1.5em 0;
+	margin: 5px 0;
+	-webkit-border-bottom-left-radius: 3px;
+	-webkit-border-bottom-right-radius: 3px;
+	border-bottom-left-radius: 3px;
+	border-bottom-right-radius: 3px;
+}
+
+form p.submit a.cancel:hover {
+	text-decoration: none;
+}
+
+#minor-publishing-actions input,
+#major-publishing-actions input,
+#minor-publishing-actions .preview {
+	text-align: center;
+}
+
+textarea.all-options,
+input.all-options {
+	width: 250px;
+}
+
+input.large-text,
+textarea.large-text {
+	width: 99%;
+}
+
+input.regular-text,
+#adduser .form-field input {
+	width: 25em;
+}
+
+input.small-text {
+	width: 50px;
+}
+
+input[type="number"].small-text {
+	width: 60px;
+}
+
+#doaction,
+#doaction2,
+#post-query-submit {
+	margin: 1px 8px 0 0;
+}
+
+.tablenav #changeit,
+.tablenav #delete_all,
+.tablenav #clear-recent-list {
+	margin-top: 1px;
+}
+
+.tablenav .actions select {
+	float: left;
+	margin-right: 6px;
+	max-width: 200px;
+}
+
+.ie8 .tablenav .actions select {
+	width: 155px;
+}
+
+.ie8 .tablenav .actions select#cat {
+	width: 200px;
+}
+
+#timezone_string option {
+	margin-left: 1em;
+}
+
+label,
+#your-profile label + a {
+	vertical-align: middle;
+}
+
+#misc-publishing-actions label {
+	vertical-align: baseline;
+}
+
+#pass-strength-result {
+	border-style: solid;
+	border-width: 1px;
+	float: left;
+	margin: 13px 5px 5px 1px;
+	padding: 3px 5px;
+	text-align: center;
+	width: 200px;
+	display: none;
+}
+.indicator-hint {
+	padding-top: 8px;
+}
+
+p.search-box {
+	float: right;
+	margin: 0;
+}
+
+.search-box input[name="s"],
+#search-plugins input[name="s"],
+.tagsdiv .newtag {
+	float: left;
+	height: 2em;
+	margin: 0 4px 0 0;
+}
+
+input[type="text"].ui-autocomplete-loading {
+	background: transparent url('../images/loading.gif') no-repeat right center;
+	visibility: visible;
+}
+
+ul#add-to-blog-users {
+	margin: 0 0 0 14px;
+}
+
+.ui-autocomplete-input.open {
+	border-bottom-right-radius: 0;
+	border-bottom-left-radius: 0;
+}
+
+.ui-autocomplete {
+	padding: 0;
+	margin: 0;
+	list-style: none;
+	position: absolute;
+	z-index: 10000;
+	border-bottom-right-radius: 3px;
+	border-bottom-left-radius: 3px;
+	border-width: 1px;
+	border-style: solid;
+}
+
+.ui-autocomplete li {
+	margin-bottom: 0;
+	white-space: nowrap;
+	text-align: left;
+}
+
+.ui-autocomplete li a {
+	display: block;
+	height: 100%;
+	padding: 4px 10px;
+}
+
+.ui-autocomplete li a.ui-state-focus {
+	cursor: pointer;
+}
+
+/*------------------------------------------------------------------------------
+  3.0 - Actions
+------------------------------------------------------------------------------*/
+
+#major-publishing-actions {
+	padding: 10px 10px 8px;
+	clear: both;
+	border-top: 1px solid #f5f5f5;
+	margin-top: -2px;
+}
+
+#delete-action {
+	line-height: 25px;
+	vertical-align: middle;
+	text-align: left;
+	float: left;
+}
+
+#publishing-action {
+	text-align: right;
+	float: right;
+	line-height: 23px;
+}
+
+#publishing-action .spinner {
+	float: left;
+}
+
+#misc-publishing-actions {
+	padding: 6px 0 0;
+}
+
+.misc-pub-section {
+	padding: 6px 10px 8px;
+	border-width: 1px 0;
+	border-style: solid;
+}
+
+.misc-pub-section:first-child {
+	border-top-width: 0;
+}
+
+.misc-pub-section-last {
+	border-bottom-width: 0;
+}
+
+#minor-publishing-actions {
+	padding: 10px 10px 2px 8px;
+	text-align: right;
+}
+
+#minor-publishing {
+	border-bottom-width: 1px;
+	border-bottom-style: solid;
+	-webkit-box-shadow: 0 1px 0 #fff;
+	box-shadow: 0 1px 0 #fff;
+}
+
+#save-post {
+	float: left;
+}
+
+.preview {
+	float: right;
+}
+
+#sticky-span {
+	margin-left: 18px;
+}
+
+.side-info {
+	margin: 0;
+	padding: 4px;
+	font-size: 11px;
+}
+
+.side-info h5 {
+	padding-bottom: 7px;
+	font-size: 14px;
+	margin: 12px 2px 5px;
+	border-bottom-width: 1px;
+	border-bottom-style: solid;
+}
+
+.side-info ul {
+	margin: 0;
+	padding-left: 18px;
+	list-style: square;
+}
+
+.approve,
+.unapproved .unapprove {
+	display: none;
+}
+
+.unapproved .approve,
+.spam .approve,
+.trash .approve {
+	display: inline;
+}
+
+td.action-links,
+th.action-links {
+	text-align: right;
+}
+
+
+/*------------------------------------------------------------------------------
+  4.0 - Notifications
+------------------------------------------------------------------------------*/
+
+#update-nag,
+.update-nag {
+	line-height: 19px;
+	padding: 5px 0;
+	font-size: 12px;
+	text-align: center;
+	margin: -1px 15px 0 5px;
+	border-width: 1px;
+	border-style: solid;
+	-webkit-border-bottom-right-radius: 3px;
+	-webkit-border-bottom-left-radius: 3px;
+	border-bottom-right-radius: 3px;
+	border-bottom-left-radius: 3px;
+}
+
+.plugins .plugin-update {
+	padding: 0;
+}
+
+.plugin-update .update-message {
+	margin: 0 10px 8px 31px;
+	font-weight: bold;
+}
+
+ul#dismissed-updates {
+	display: none;
+}
+
+form.upgrade {
+	margin-top: 8px;
+}
+
+form.upgrade .hint {
+	font-style: italic;
+	font-size: 85%;
+	margin: -0.5em 0 2em 0;
+}
+
+#ajax-loading,
+.ajax-loading,
+.ajax-feedback,
+.imgedit-wait-spin,
+.list-ajax-loading { /* deprecated */
+	visibility: hidden;
+}
+
+#ajax-response.alignleft {
+	margin-left: 2em;
+}
+
+
+/*------------------------------------------------------------------------------
+  6.0 - Admin Header
+------------------------------------------------------------------------------*/
+#adminmenu a,
+#sidemenu a,
+#taglist a,
+#catlist a {
+	text-decoration: none;
+}
+
+/*------------------------------------------------------------------------------
+  6.1 - Screen Options Tabs
+------------------------------------------------------------------------------*/
+
+#screen-options-wrap,
+#contextual-help-wrap {
+	margin: 0;
+	padding: 8px 20px 12px;
+	position: relative;
+}
+
+#contextual-help-wrap {
+	overflow: auto;
+}
+
+#screen-meta .screen-reader-text {
+	visibility: hidden;
+}
+
+#screen-meta-links {
+	margin: 0 24px 0 0;
+}
+
+#screen-meta-links a:focus {
+	-webkit-box-shadow: 1px 1px 1px rgba(0,0,0,0.4);
+	box-shadow: 1px 1px 1px rgba(0,0,0,0.4);
+	outline: none;
+}
+
+/* screen options and help tabs revert */
+#screen-meta {
+	display: none;
+	position: relative;
+	margin: 0 15px 0 5px;
+	border-width: 0 1px 1px;
+	border-style: none solid solid;
+}
+
+#screen-options-link-wrap,
+#contextual-help-link-wrap {
+	float: right;
+	height: 23px;
+	padding: 0;
+	margin: 0 0 0 6px;
+	font-family: sans-serif;
+}
+
+#screen-options-link-wrap,
+#contextual-help-link-wrap,
+#screen-meta {
+	-webkit-border-bottom-left-radius: 3px;
+	-webkit-border-bottom-right-radius: 3px;
+	border-bottom-left-radius: 3px;
+	border-bottom-right-radius: 3px;
+}
+
+#screen-meta-links .screen-meta-toggle {
+	position: relative;
+	top: -1px;
+}
+
+#screen-meta-links a.show-settings {
+	text-decoration: none;
+	z-index: 1;
+	padding: 1px 16px 0 6px;
+	height: 22px;
+	line-height: 22px;
+	font-size: 12px;
+	display: block;
+	text-shadow: rgba(255,255,255,0.7) 0 1px 0;
+}
+
+#screen-meta-links a.show-settings:hover {
+	text-decoration: none;
+}
+/* end screen options and help tabs */
+
+.toggle-arrow {
+	background-repeat: no-repeat;
+	background-position: top left;
+	background-color: transparent;
+	height: 22px;
+	line-height: 22px;
+	display: block;
+}
+
+.toggle-arrow-active {
+	background-position: bottom left;
+}
+
+#screen-options-wrap h5,
+#contextual-help-wrap h5 {
+	margin: 8px 0;
+	font-size: 13px;
+}
+
+.metabox-prefs label {
+	display: inline-block;
+	padding-right: 15px;
+	white-space: nowrap;
+	line-height: 30px;
+}
+
+.metabox-prefs label input {
+	margin: 0 5px 0 2px;
+}
+
+.metabox-prefs .columns-prefs label input {
+	margin: 0 2px;
+}
+
+.metabox-prefs label a {
+	display: none;
+}
+
+/*------------------------------------------------------------------------------
+  6.2 - Help Menu
+------------------------------------------------------------------------------*/
+
+#contextual-help-wrap {
+	padding: 0;
+	margin-left: -4px;
+}
+
+#contextual-help-columns {
+	position: relative;
+}
+
+#contextual-help-back {
+	position: absolute;
+	top: 0;
+	bottom: 0;
+	left: 150px;
+	right: 170px;
+	border-width: 0 1px;
+	border-style: solid;
+}
+
+#contextual-help-wrap.no-sidebar #contextual-help-back {
+	right: 0;
+
+	border-right-width: 0;
+	-webkit-border-bottom-right-radius: 2px;
+	border-bottom-right-radius: 2px;
+}
+
+.contextual-help-tabs {
+	float: left;
+	width: 150px;
+	margin: 0;
+}
+
+.contextual-help-tabs ul {
+	margin: 1em 0;
+}
+
+.contextual-help-tabs li {
+	margin-bottom: 0;
+	list-style-type: none;
+	border-style: solid;
+	border-width: 1px 0;
+	border-color: transparent;
+}
+
+.contextual-help-tabs a {
+	display: block;
+	padding: 5px 5px 5px 12px;
+	line-height: 18px;
+	text-decoration: none;
+}
+
+.contextual-help-tabs .active {
+	padding: 0;
+	margin: 0 -1px 0 0;
+	border-width: 1px 0 1px 1px;
+	border-style: solid;
+}
+
+.contextual-help-tabs-wrap {
+	padding: 0 20px;
+	overflow: auto;
+}
+
+.help-tab-content {
+	display: none;
+	margin: 0 22px 12px 0;
+	line-height: 1.6em;
+}
+
+.help-tab-content.active {
+	display: block;
+}
+
+.help-tab-content li {
+	list-style-type: disc;
+	margin-left: 18px;
+}
+
+.contextual-help-sidebar {
+	width: 150px;
+	float: right;
+	padding: 0 8px 0 12px;
+	overflow: auto;
+}
+
+
+/*------------------------------------------------------------------------------
+  7.0 - Main Navigation (Left Menu)
+------------------------------------------------------------------------------*/
+
+#adminmenuback,
+#adminmenuwrap {
+	border-width: 0 1px 0 0;
+	border-style: solid;
+}
+
+#adminmenuwrap {
+	position: relative;
+	float: left;
+}
+
+#adminmenushadow {
+	position: absolute;
+	top: 0;
+	right: 0;
+	bottom: 0;
+	width: 6px;
+	z-index: 20;
+}
+
+/* side admin menu */
+#adminmenu * {
+	-webkit-user-select: none;
+	-moz-user-select: none;
+	user-select: none;
+}
+
+#adminmenu li {
+	margin: 0;
+	padding: 0;
+	cursor: pointer;
+}
+
+#adminmenu a {
+	display: block;
+	line-height: 18px;
+	padding: 2px 5px;
+}
+
+#adminmenu li.menu-top {
+	min-height: 28px;
+	position: relative;
+}
+
+#adminmenu .wp-submenu {
+	list-style: none;
+	padding: 4px 0;
+	margin: 0;
+	position: absolute;
+	top: -1000em;
+	left: 146px;
+	z-index: 1000;
+	overflow: visible;
+	border-width: 1px;
+	border-style: solid;
+	-webkit-border-bottom-right-radius: 3px;
+	-webkit-border-top-right-radius: 3px;
+	border-bottom-right-radius: 3px;
+	border-top-right-radius: 3px;
+}
+
+.js #adminmenu .sub-open,
+.js #adminmenu .opensub .wp-submenu,
+#adminmenu a.menu-top:focus + .wp-submenu,
+.no-js li.wp-has-submenu:hover .wp-submenu {
+	top: -1px;
+}
+
+#adminmenu .wp-has-current-submenu .wp-submenu,
+.no-js li.wp-has-current-submenu:hover .wp-submenu,
+#adminmenu a.wp-has-current-submenu:focus + .wp-submenu,
+#adminmenu .wp-has-current-submenu .wp-submenu.sub-open,
+#adminmenu .wp-has-current-submenu.opensub .wp-submenu {
+	position: relative;
+	z-index: 2;
+	top: auto;
+	left: auto;
+	right: auto;
+	bottom: auto;
+	border: 0 none;
+
+	-webkit-box-shadow: none;
+	box-shadow: none;
+}
+
+.folded #adminmenu .wp-submenu.sub-open,
+.folded #adminmenu .opensub .wp-submenu,
+.folded #adminmenu .wp-has-current-submenu .wp-submenu.sub-open,
+.folded #adminmenu .wp-has-current-submenu.opensub .wp-submenu,
+.folded #adminmenu a.menu-top:focus + .wp-submenu,
+.folded #adminmenu .wp-has-current-submenu a.menu-top:focus + .wp-submenu,
+.no-js.folded #adminmenu .wp-has-submenu:hover .wp-submenu  {
+	top: -1px;
+	left: 32px;
+}
+
+.folded #adminmenu a.wp-has-current-submenu:focus + .wp-submenu,
+.folded #adminmenu .wp-has-current-submenu .wp-submenu {
+	border-width: 1px;
+	border-style: solid;
+	position: absolute;
+	top: -1000em;
+}
+
+#adminmenu .wp-submenu a {
+	font-size: 12px;
+	line-height: 18px;
+	margin: 0;
+	padding-left: 12px;
+}
+
+#adminmenu .wp-not-current-submenu li > a {
+	padding-left: 16px;
+}
+
+#adminmenu .wp-has-current-submenu ul > li > a,
+.folded #adminmenu li.menu-top .wp-submenu > li > a {
+	padding-left: 12px;
+}
+
+#adminmenu a.menu-top,
+#adminmenu .wp-submenu-head {
+	font-size: 13px;
+	font-weight: bold;
+	line-height: 18px;
+	padding: 0;
+}
+
+#adminmenu .wp-submenu-head,
+.folded #adminmenu .wp-menu-name {
+	display: none;
+}
+
+.folded #adminmenu .wp-submenu-head {
+	display: block;
+}
+
+#adminmenu .wp-submenu li {
+	padding: 0;
+	margin: 0;
+	overflow: hidden;
+}
+
+#adminmenu a.menu-top {
+	border-width: 1px 0;
+	border-style: solid none;
+}
+
+#adminmenu .wp-menu-image img {
+	padding: 7px 0 0 7px;
+	opacity: 0.6;
+	filter: alpha(opacity=60);
+}
+
+#adminmenu div.wp-menu-name {
+	padding: 5px;
+}
+
+#adminmenu div.wp-menu-image {
+	float: left;
+	width: 28px;
+	height: 28px;
+}
+
+.folded #adminmenu div.wp-menu-image {
+	width: 32px;
+	position: absolute;
+	z-index: 25;
+}
+
+.folded #adminmenu a.menu-top {
+	height: 28px;
+}
+
+.wp-menu-arrow {
+	z-index: 25;
+	position: absolute;
+	right: 100%;
+	margin: 0;
+	height: 30px;
+	width: 6px;
+
+	-moz-transform:    translate( 146px );
+	-webkit-transform: translate( 146px );
+	-o-transform:      translate( 146px );
+	-ms-transform:     translate( 146px );
+	transform:         translate( 146px );
+}
+
+#adminmenu .wp-menu-arrow div {
+	display: none;
+	position: absolute;
+	top: 7px;
+	left: -1px;
+	width: 14px;
+	height: 15px;
+
+	-moz-transform:    matrix( -0.6, 1, 0.6, 1, 0, 0 );
+	-webkit-transform: matrix( -0.6, 1, 0.6, 1, 0, 0 );
+	-o-transform:      matrix( -0.6, 1, 0.6, 1, 0, 0 );
+	-ms-transform:     matrix( -0.6, 1, 0.6, 1, 0, 0 );
+	transform:         matrix( -0.6, 1, 0.6, 1, 0, 0 );
+}
+
+#adminmenu li.wp-not-current-submenu .wp-menu-arrow {
+	-moz-transform:    translate( 145px );
+	-webkit-transform: translate( 145px );
+	-o-transform:      translate( 145px );
+	-ms-transform:     translate( 145px );
+	transform:         translate( 145px );
+	height: 28px;
+	border-width: 1px 0;
+	border-style: solid;
+	top: 0;
+}
+
+.folded #adminmenu li .wp-menu-arrow {
+	-moz-transform:    translate( 32px );
+	-webkit-transform: translate( 32px );
+	-o-transform:      translate( 32px );
+	-ms-transform:     translate( 32px );
+	transform:         translate( 32px );
+}
+
+#adminmenu li.current .wp-menu-arrow,
+#adminmenu li.wp-has-current-submenu .wp-menu-arrow,
+#adminmenu li.wp-has-current-submenu .wp-menu-arrow div,
+#adminmenu li.wp-has-submenu .wp-menu-arrow div,
+#adminmenu li.current .wp-menu-arrow div,
+.no-js #adminmenu li.wp-has-submenu:hover .wp-menu-arrow,
+#adminmenu li.wp-has-submenu.opensub .wp-menu-arrow,
+#adminmenu a.wp-has-submenu:focus .wp-menu-arrow,
+#adminmenu a:hover .wp-menu-arrow {
+	display: block;
+}
+
+#adminmenu li.current .wp-menu-arrow,
+#adminmenu li.wp-menu-open .wp-menu-arrow {
+	top: 0;
+}
+
+.no-js #adminmenu li.wp-has-submenu:hover .wp-menu-arrow,
+#adminmenu li.wp-has-submenu.opensub .wp-menu-arrow,
+#adminmenu a.wp-has-submenu:focus .wp-menu-arrow {
+	z-index: 1001;
+}
+
+.ie8 #adminmenu li.menu-top:hover .wp-menu-arrow {
+	display: none;
+}
+
+#adminmenu .wp-not-current-submenu .wp-menu-arrow div {
+	width: 15px;
+	top: 6px;
+	border-width: 0 0 1px 1px;
+	border-style: solid;
+}
+
+.wp-menu-arrow,
+.folded #adminmenu li .wp-menu-arrow div,
+.no-js #adminmenu li.wp-not-current-submenu:hover .wp-menu-arrow {
+	display: none;
+}
+
+.folded #adminmenu li.current .wp-menu-arrow,
+.folded #adminmenu li.current .wp-menu-arrow div,
+.folded #adminmenu li.wp-has-current-submenu .wp-menu-arrow div,
+.folded #adminmenu li.wp-menu-open .wp-menu-arrow,
+.folded #adminmenu li a:focus .wp-menu-arrow {
+	display: block;
+}
+
+#adminmenu li.menu-top:hover .wp-menu-image img,
+#adminmenu li.wp-has-current-submenu .wp-menu-image img {
+	opacity: 1;
+	filter: alpha(opacity=100);
+}
+
+#adminmenu li.wp-menu-separator {
+	height: 3px;
+	padding: 0;
+	margin: 0;
+	border-width: 1px 0;
+	border-style: solid;
+	cursor: inherit;
+}
+
+#adminmenu div.separator {
+	height: 1px;
+	padding: 0;
+	border-width: 1px 0 0 0;
+	border-style: solid;
+}
+
+#adminmenu .wp-submenu .wp-submenu-head {
+	padding: 5px 4px 5px 10px;
+	margin: -4px -1px 4px;
+	border-width: 1px 0;
+	border-style: solid;
+	-webkit-border-top-right-radius: 3px;
+	border-top-right-radius: 3px;
+}
+
+#adminmenu li.wp-menu-open {
+	border-width: 0 0 1px;
+	border-style: solid;
+}
+
+#adminmenu li.current,
+.folded #adminmenu li.wp-menu-open {
+	border: 0 none;
+}
+
+.folded #adminmenu li.wp-has-current-submenu {
+	margin-bottom: 1px;
+}
+
+.folded #adminmenu .wp-has-current-submenu.menu-top-last {
+	margin-bottom: 0;
+}
+
+#adminmenu .awaiting-mod,
+#adminmenu span.update-plugins,
+#sidemenu li a span.update-plugins {
+	position: absolute;
+	font-family: sans-serif;
+	font-size: 9px;
+	line-height: 17px;
+	font-weight: bold;
+	margin-top: 1px;
+	margin-left: 7px;
+	-webkit-border-radius: 10px;
+	border-radius: 10px;
+	z-index: 26;
+}
+
+#adminmenu li .awaiting-mod span,
+#adminmenu li span.update-plugins span,
+#sidemenu li a span.update-plugins span {
+	display: block;
+	padding: 0 6px;
+}
+
+#adminmenu li span.count-0,
+#sidemenu li a .count-0 {
+	display: none;
+}
+
+#collapse-menu {
+	font-size: 12px;
+	line-height: 34px;
+	border-width: 1px 0 0;
+	border-style: solid;
+}
+
+.folded #collapse-menu span {
+	display: none;
+}
+
+#collapse-button,
+#collapse-button div {
+	width: 15px;
+	height: 15px;
+}
+
+#collapse-button {
+	float: left;
+	margin: 8px 6px;
+	border-width: 1px;
+	border-style: solid;
+	-webkit-border-radius: 10px;
+	border-radius: 10px;
+}
+
+/* Auto-folding of the admin menu */
+@media only screen and (max-width: 900px) {
+	.auto-fold #wpcontent,
+	.auto-fold #wpfooter {
+		margin-left: 52px;
+	}
+
+	.auto-fold #adminmenuback,
+	.auto-fold #adminmenuwrap,
+	.auto-fold #adminmenu,
+	.auto-fold #adminmenu li.menu-top {
+		width: 32px;
+	}
+
+	.auto-fold #adminmenu .wp-submenu.sub-open,
+	.auto-fold #adminmenu .opensub .wp-submenu,
+	.auto-fold #adminmenu .wp-has-current-submenu .wp-submenu.sub-open,
+	.auto-fold #adminmenu .wp-has-current-submenu.opensub .wp-submenu,
+	.auto-fold #adminmenu a.menu-top:focus + .wp-submenu,
+	.auto-fold #adminmenu .wp-has-current-submenu a.menu-top:focus + .wp-submenu  {
+		top: -1px;
+		left: 32px;
+	}
+
+	.auto-fold #adminmenu a.wp-has-current-submenu:focus + .wp-submenu,
+	.auto-fold #adminmenu .wp-has-current-submenu .wp-submenu {
+		border-width: 1px;
+		border-style: solid;
+		position: absolute;
+		top: -1000em;
+	}
+
+	.auto-fold #adminmenu li.menu-top .wp-submenu > li > a {
+		padding-left: 12px;
+	}
+
+	.auto-fold #adminmenu .wp-menu-name {
+		display: none;
+	}
+
+	.auto-fold #adminmenu .wp-submenu-head {
+		display: block;
+	}
+
+	.auto-fold #adminmenu div.wp-menu-image {
+		width: 32px;
+		position: absolute;
+		z-index: 25;
+	}
+
+	.auto-fold #adminmenu a.menu-top {
+		height: 28px;
+	}
+
+	.auto-fold #adminmenu li .wp-menu-arrow {
+		-moz-transform:    translate( 32px );
+		-webkit-transform: translate( 32px );
+		-o-transform:      translate( 32px );
+		-ms-transform:     translate( 32px );
+		transform:         translate( 32px );
+	}
+
+	.auto-fold #adminmenu li .wp-menu-arrow div {
+		display: none;
+	}
+
+	.auto-fold #adminmenu li.current .wp-menu-arrow,
+	.auto-fold #adminmenu li.current .wp-menu-arrow div,
+	.auto-fold #adminmenu li.wp-has-current-submenu .wp-menu-arrow div,
+	.auto-fold #adminmenu li.wp-menu-open .wp-menu-arrow,
+	.auto-fold #adminmenu li a:focus .wp-menu-arrow {
+		display: block;
+	}
+
+	.auto-fold #adminmenu li.wp-menu-open {
+		border: 0 none;
+	}
+
+	.auto-fold #adminmenu li.wp-has-current-submenu {
+		margin-bottom: 1px;
+	}
+
+	.auto-fold #adminmenu .wp-has-current-submenu.menu-top-last {
+		margin-bottom: 0;
+	}
+
+	.auto-fold #collapse-menu span {
+		display: none;
+	}
+
+}
+
+/* List table styles */
+.post-com-count-wrapper {
+	min-width: 22px;
+	font-family: sans-serif;
+}
+
+.post-com-count {
+	background-image: url('../images/bubble_bg.gif');
+	height: 1.3em;
+	line-height: 1.1em;
+	display: block;
+	text-decoration: none;
+	padding: 0 0 6px;
+	cursor: pointer;
+	background-position: center -80px;
+	background-repeat: no-repeat;
+}
+
+.post-com-count span {
+	font-size: 11px;
+	font-weight: bold;
+	height: 1.4em;
+	line-height: 1.4em;
+	min-width: 0.7em;
+	padding: 0 6px;
+	display: inline-block;
+	-webkit-border-radius: 5px;
+	border-radius: 5px;
+}
+
+strong .post-com-count {
+	background-position: center -55px;
+}
+
+.post-com-count:hover {
+	background-position: center -3px;
+}
+
+.column-response .post-com-count {
+	float: left;
+	margin-right: 5px;
+	text-align: center;
+}
+
+.response-links {
+	float: left;
+}
+
+#the-comment-list .attachment-80x60 {
+	padding: 4px 8px;
+}
+
+th .comment-grey-bubble {
+	background-image: url('../images/comment-grey-bubble.png');
+	background-repeat: no-repeat;
+	height: 12px;
+	width: 12px;
+}
+
+/*------------------------------------------------------------------------------
+  8.0 - Layout Blocks
+------------------------------------------------------------------------------*/
+
+html.wp-toolbar {
+	padding-top: 28px;
+	-webkit-box-sizing: border-box;
+	-moz-box-sizing: border-box;
+	box-sizing: border-box;
+}
+
+.narrow {
+	width: 70%;
+	margin-bottom: 40px;
+}
+
+.narrow p {
+	line-height: 150%;
+}
+
+.widefat th,
+.widefat td {
+	overflow: hidden;
+}
+
+.widefat th {
+	font-weight: normal;
+}
+
+.widefat td p {
+	margin: 2px 0 0.8em;
+}
+
+.widefat .column-comment p {
+	margin: 0.6em 0;
+}
+
+/* Screens with postboxes */
+.postbox-container {
+	float: left;
+}
+
+#dashboard-widgets.columns-1 .postbox-container {
+	width: 100%;
+}
+
+#dashboard-widgets.columns-2 .postbox-container {
+	width: 49.5%;
+}
+
+#dashboard-widgets.columns-2 #postbox-container-2,
+#dashboard-widgets.columns-2 #postbox-container-3,
+#dashboard-widgets.columns-2 #postbox-container-4 {
+	float: right;
+	width: 50.5%;
+}
+
+#dashboard-widgets.columns-3 .postbox-container {
+	width: 33.5%;
+}
+
+#dashboard-widgets.columns-3 #postbox-container-1 {
+	width: 33%;
+}
+
+#dashboard-widgets.columns-3 #postbox-container-3,
+#dashboard-widgets.columns-3 #postbox-container-4 {
+	float: right;
+}
+
+#dashboard-widgets.columns-4 .postbox-container {
+	width: 25%;
+}
+
+.postbox-container .meta-box-sortables {
+	-moz-box-sizing: border-box;
+	-webkit-box-sizing: border-box;
+	-ms-box-sizing: border-box;
+	box-sizing: border-box;
+}
+
+.metabox-holder .postbox-container .empty-container {
+	border: 3px dashed #CCCCCC;
+	height: 250px;
+}
+
+.metabox-holder.columns-1 .postbox-container .empty-container,
+.columns-2 #postbox-container-3 .empty-container,
+.columns-2 #postbox-container-4 .empty-container,
+.columns-3 #postbox-container-4 .empty-container {
+	border: 0 none;
+	height: 0;
+	min-height: 0;
+}
+
+#poststuff {
+	padding-top: 10px;
+}
+
+#poststuff #post-body {
+	padding: 0;
+}
+
+#post-body-content {
+	width: 100%;
+	float: left;
+}
+
+#poststuff .postbox-container {
+	width: 100%;
+}
+
+#poststuff #post-body.columns-2 {
+	margin-right: 300px;
+}
+
+#post-body.columns-2 #postbox-container-1 {
+	float: right;
+	margin-right: -300px;
+	width: 280px;
+}
+
+#post-body.columns-2 #side-sortables {
+	min-height: 250px;
+}
+
+/* one column on the dash */
+@media only screen and (max-width: 799px) {
+	#wpbody-content #dashboard-widgets .postbox-container {
+		width: 100%;
+	}
+
+	#wpbody-content .metabox-holder .postbox-container .empty-container {
+		border: 0 none;
+		height: 0;
+		min-height: 0;
+	}
+}
+
+/* two columns on the dash, but keep the setting if one is selected */
+@media only screen and (min-width: 800px) and (max-width: 1200px) {
+	#wpbody-content #dashboard-widgets .postbox-container {
+		width: 49.5%;
+	}
+
+	#wpbody-content #dashboard-widgets #postbox-container-2,
+	#wpbody-content #dashboard-widgets #postbox-container-3,
+	#wpbody-content #dashboard-widgets #postbox-container-4 {
+		float: right;
+		width: 50.5%;
+	}
+
+	#dashboard-widgets #postbox-container-3 .empty-container,
+	#dashboard-widgets #postbox-container-4 .empty-container {
+		border: 0 none;
+		height: 0;
+		min-height: 0;
+	}
+
+	#wpbody #wpbody-content #dashboard-widgets.columns-1 .postbox-container {
+		width: 100%;
+	}
+
+	#wpbody #wpbody-content .metabox-holder.columns-1 .postbox-container .empty-container {
+		border: 0 none;
+		height: 0;
+		min-height: 0;
+	}
+
+	/* show the radio buttons for column prefs only for one or two columns */
+	.index-php .screen-layout,
+	.index-php .columns-prefs {
+		display: block;
+	}
+
+	.columns-prefs .columns-prefs-3,
+	.columns-prefs .columns-prefs-4 {
+		display: none;
+	}
+}
+
+/* one column on the post write/edit screen */
+@media only screen and (max-width: 850px) {
+	#wpbody-content #poststuff #post-body {
+		margin: 0;
+	}
+
+	#wpbody-content #post-body.columns-2 #postbox-container-1 {
+		margin-right: 0;
+		width: 100%;
+	}
+
+	#poststuff #postbox-container-1 .empty-container,
+	#poststuff #postbox-container-1 #side-sortables:empty {
+		border: 0 none;
+		height: 0;
+		min-height: 0;
+	}
+
+	#poststuff #post-body.columns-2 #side-sortables {
+		min-height: 0;
+	}
+
+	/* hide the radio buttons for column prefs */
+	.screen-layout,
+	.columns-prefs {
+		display: none;
+	}
+}
+
+.postbox .hndle {
+	-webkit-border-top-left-radius: 3px;
+	-webkit-border-top-right-radius: 3px;
+	border-top-left-radius: 3px;
+	border-top-right-radius: 3px;
+}
+
+.js .postbox .hndle {
+	cursor: move;
+}
+
+.postbox.closed .hndle {
+	-webkit-border-radius: 3px;
+	border-radius: 3px;
+}
+
+.hndle a {
+	font-size: 11px;
+	font-weight: normal;
+}
+
+.postbox .handlediv {
+	float: right;
+	width: 27px;
+	height: 30px;
+}
+
+.js .postbox .handlediv {
+	cursor: pointer;
+}
+
+.sortable-placeholder {
+	border-width: 1px;
+	border-style: dashed;
+	margin-bottom: 20px;
+}
+
+.widget,
+.postbox,
+.stuffbox {
+	margin-bottom: 20px;
+	padding: 0;
+	border-width: 1px;
+	border-style: solid;
+	line-height: 1;
+}
+
+.widget .widget-top,
+.postbox h3,
+.stuffbox h3 {
+	margin-top: 1px;
+	border-bottom-width: 1px;
+	border-bottom-style: solid;
+	-webkit-user-select: none;
+	-moz-user-select: none;
+	user-select: none;
+}
+
+.js .widget .widget-top,
+.js .postbox h3 {
+	cursor: move;
+}
+
+.postbox .inside,
+.stuffbox .inside {
+	padding: 0 12px 0 10px;
+	line-height: 1.4em;
+}
+
+.postbox .inside {
+	margin: 10px 0;
+	position: relative;
+}
+
+.postbox.closed h3 {
+	border: none;
+	-webkit-box-shadow: none;
+	box-shadow: none;
+}
+
+.postbox table.form-table {
+	margin-bottom: 0;
+}
+
+.temp-border {
+	border: 1px dotted #ccc;
+}
+
+.columns-prefs label {
+	padding: 0 5px;
+}
+
+
+/*------------------------------------------------------------------------------
+  9.0 - Dashboard
+------------------------------------------------------------------------------*/
+
+#dashboard-widgets-wrap {
+	margin: 0 -8px;
+}
+
+#wpbody-content .metabox-holder {
+	padding-top: 10px;
+}
+
+#dashboard-widgets .meta-box-sortables {
+	margin: 0 8px;
+}
+
+#dashboard_recent_comments div.undo {
+	border-top-style: solid;
+	border-top-width: 1px;
+	margin: 0 -10px;
+	padding: 3px 8px;
+	font-size: 11px;
+}
+
+#the-comment-list td.comment p.comment-author {
+	margin-top: 0;
+	margin-left: 0;
+}
+
+#the-comment-list p.comment-author img {
+	float: left;
+	margin-right: 8px;
+}
+
+#the-comment-list p.comment-author strong a {
+	border: none;
+}
+
+#the-comment-list td {
+	vertical-align: top;
+}
+
+#the-comment-list td.comment {
+	word-wrap: break-word;
+}
+
+/* Welcome Panel */
+.welcome-panel {
+	position: relative;
+	overflow: auto;
+	margin: 20px 0;
+	padding: 23px 10px 12px;
+	border-width: 1px;
+	border-style: solid;
+	border-radius: 3px;
+	font-size: 13px;
+	line-height: 2.1em;
+}
+
+.welcome-panel h3 {
+	margin: 0;
+	font-family: "HelveticaNeue-Light", "Helvetica Neue Light", "Helvetica Neue", sans-serif;
+	font-size: 21px;
+	font-weight: normal;
+	line-height: 1.2;
+}
+.welcome-panel h4 {
+	margin: 1.33em 0 0;
+	font-size: 13px;
+}
+
+.welcome-panel .about-description {
+	font-size: 16px;
+	margin: 0;
+}
+
+.welcome-panel .welcome-panel-close {
+	position: absolute;
+	top: 5px;
+	right: 10px;
+	padding: 8px 3px;
+	font-size: 13px;
+	text-decoration: none;
+	line-height: 1;
+}
+
+.welcome-panel .welcome-panel-close:before {
+	content: ' ';
+	position: absolute;
+	left: -12px;
+	width: 10px;
+	height: 100%;
+	background: url('../images/xit.gif') 0 17% no-repeat;
+}
+
+.welcome-panel .welcome-panel-close:hover:before {
+	background-position: 100% 17%;
+}
+
+.wp-core-ui .welcome-panel .button.button-hero {
+    margin: 15px 0 3px;
+}
+
+.welcome-panel-content {
+	margin-left: 13px;
+	max-width: 1500px;
+}
+
+.welcome-panel .welcome-panel-column-container {
+	clear: both;
+	overflow: hidden;
+	position: relative;
+}
+
+.welcome-panel .welcome-panel-column {
+	width: 32%;
+	min-width: 200px;
+	float: left;
+}
+
+.ie8 .welcome-panel .welcome-panel-column {
+	min-width: 230px;
+}
+
+.welcome-panel .welcome-panel-column:first-child {
+	width: 36%;
+}
+
+.welcome-panel-column p {
+	margin-top: 7px;
+}
+
+.welcome-panel .welcome-icon {
+	display: block;
+	padding: 2px 0 8px 32px;
+	background-image: url('../images/welcome-icons.png');
+	background-repeat: no-repeat;
+	background-size: 16px;
+}
+
+.welcome-panel .welcome-add-page {
+	background-position: 0 2px;
+}
+
+.welcome-panel .welcome-edit-page {
+	background-position: 0 -90px;
+}
+
+.welcome-panel .welcome-learn-more {
+	background-position: 0 -136px;
+}
+
+.welcome-panel .welcome-comments {
+	background-position: 0 -182px;
+}
+
+.welcome-panel .welcome-view-site {
+	background-position: 0 -274px;
+}
+
+.welcome-panel .welcome-widgets-menus {
+	background-position: 1px -229px;
+	line-height: 14px;
+}
+
+.welcome-panel .welcome-write-blog {
+ 	background-position: 0 -44px;
+}
+
+.welcome-panel .welcome-panel-column ul {
+	margin: 0.8em 1em 1em 0;
+}
+
+.welcome-panel .welcome-panel-column li {
+    line-height: 16px;
+    list-style-type: none;
+}
+
+@media screen and (max-width: 870px) {
+	.welcome-panel .welcome-panel-column,
+	.welcome-panel .welcome-panel-column:first-child {
+		display: block;
+		float: none;
+		width: 100%;
+	}
+
+	.welcome-panel .welcome-panel-column li {
+		display: inline-block;
+		margin-right: 13px;
+	}
+
+	.welcome-panel .welcome-panel-column ul {
+		margin: 0.4em 0 0;
+	}
+
+	.welcome-panel .welcome-icon {
+		padding-left: 25px;
+	}
+}
+
+/*------------------------------------------------------------------------------
+  10.0 - List Posts (/Pages/etc)
+------------------------------------------------------------------------------*/
+
+table.fixed {
+	table-layout: fixed;
+}
+
+.fixed .column-rating,
+.fixed .column-visible {
+	width: 8%;
+}
+
+.fixed .column-date,
+.fixed .column-parent,
+.fixed .column-links {
+	width: 10%;
+}
+
+.fixed .column-response,
+.fixed .column-author,
+.fixed .column-categories,
+.fixed .column-tags,
+.fixed .column-rel,
+.fixed .column-role {
+	width: 15%;
+}
+
+.fixed .column-comments {
+	width: 4em;
+	padding: 8px 0;
+	text-align: left;
+}
+
+.fixed .column-comments .vers {
+	padding-left: 3px;
+}
+
+.fixed .column-comments a {
+	float: left;
+}
+
+.fixed .column-slug {
+	width: 25%;
+}
+
+.fixed .column-posts {
+	width: 10%;
+}
+
+.fixed .column-icon {
+	width: 80px;
+}
+
+#comments-form .fixed .column-author {
+	width: 20%;
+}
+
+#commentsdiv.postbox .inside {
+	margin: 0;
+	padding: 0;
+}
+
+#commentsdiv .inside .row-actions {
+	line-height:18px;
+}
+
+#commentsdiv .inside .column-author {
+	width: 25%;
+}
+
+#commentsdiv .column-comment p {
+	margin: 0.6em 0;
+	padding: 0;
+}
+
+#commentsdiv #replyrow td {
+	padding: 0;
+}
+
+#commentsdiv p {
+	padding: 8px 10px;
+	margin: 0;
+}
+
+#commentsdiv #add-new-comment {
+	border-width: 0 0 1px;
+	border-style: none none solid;
+}
+
+#commentsdiv .comments-box {
+	border: 0 none;
+}
+
+#commentsdiv .comments-box thead th {
+	background: transparent;
+	padding: 0 7px 4px;
+	font-style: italic;
+}
+
+#commentsdiv .comments-box tr:last-child td {
+	border-bottom: 0 none;
+}
+
+#commentsdiv .spinner {
+	padding-left: 5px;
+}
+
+.sorting-indicator {
+	display: none;
+	width: 7px;
+	height: 4px;
+	margin-top: 8px;
+	margin-left: 7px;
+	background-image: url('../images/sort.gif');
+	background-repeat: no-repeat;
+}
+
+.fixed .column-comments .sorting-indicator {
+	margin-top: 3px;
+}
+
+.widefat th.sortable,
+.widefat th.sorted {
+	padding: 0;
+}
+
+th.sortable a,
+th.sorted a {
+	display: block;
+	overflow: hidden;
+	padding: 7px 7px 8px;
+}
+
+.fixed .column-comments.sortable a,
+.fixed .column-comments.sorted a {
+	padding: 8px 0;
+}
+
+th.sortable a span,
+th.sorted a span {
+	float: left;
+	cursor: pointer;
+}
+
+th.sorted.asc .sorting-indicator,
+th.desc:hover span.sorting-indicator {
+	display: block;
+	background-position: 0 0;
+}
+
+th.sorted.desc .sorting-indicator,
+th.asc:hover span.sorting-indicator {
+	display: block;
+	background-position: -7px 0;
+}
+
+/* Bulk Actions */
+.tablenav-pages a {
+	border-bottom-style: solid;
+	border-bottom-width: 2px;
+	font-weight: bold;
+	margin-right: 1px;
+	padding: 0 2px;
+}
+.tablenav-pages .current-page {
+	text-align: center;
+}
+.tablenav-pages .next-page {
+	margin-left: 2px;
+}
+
+.tablenav a.button-secondary {
+	display: block;
+	margin: 3px 8px 0 0;
+}
+
+.tablenav {
+	clear: both;
+	height: 30px;
+	margin: 6px 0 4px;
+	vertical-align: middle;
+}
+
+.tablenav.themes {
+	max-width: 98%;
+}
+
+.tablenav .tablenav-pages {
+	float: right;
+	display: block;
+	cursor: default;
+	height: 30px;
+	line-height: 30px;
+	font-size: 12px;
+}
+
+.tablenav .no-pages,
+.tablenav .one-page .pagination-links {
+	display: none;
+}
+
+.tablenav .tablenav-pages a,
+.tablenav-pages span.current  {
+	text-decoration: none;
+	padding: 3px 6px;
+}
+
+.tablenav .tablenav-pages a.disabled:hover ,
+.tablenav .tablenav-pages a.disabled:active {
+	cursor: default;
+}
+
+.tablenav .displaying-num {
+	margin-right: 10px;
+	font-size: 12px;
+	font-style: italic;
+}
+
+.tablenav .actions {
+	overflow: hidden;
+	padding: 2px 8px 0 0;
+}
+
+.tablenav .delete {
+	margin-right: 20px;
+}
+
+.view-switch {
+	float: right;
+	margin: 6px 8px 0;
+}
+
+.view-switch a {
+	text-decoration: none;
+}
+
+.filter {
+	float: left;
+	margin: -5px 0 0 10px;
+}
+
+.filter .subsubsub {
+	margin-left: -10px;
+	margin-top: 13px;
+}
+.screen-per-page {
+	width: 4em;
+}
+
+#posts-filter fieldset {
+	float: left;
+	margin: 0 1.5ex 1em 0;
+	padding: 0;
+}
+
+#posts-filter fieldset legend {
+	padding: 0 0 .2em 1px;
+}
+
+span.post-state-format {
+	font-weight: normal;
+}
+
+
+/*------------------------------------------------------------------------------
+  10.1 - Inline Editing
+------------------------------------------------------------------------------*/
+
+/*
+.quick-edit* is for Quick Edit
+.bulk-edit* is for Bulk Edit
+.inline-edit* is for everything
+*/
+
+/*	Layout */
+
+#wpbody-content .inline-edit-row fieldset {
+	font-size: 12px;
+	float: left;
+	margin: 0;
+	padding: 0;
+	width: 100%;
+}
+
+tr.inline-edit-row td,
+#wpbody-content .inline-edit-row fieldset .inline-edit-col {
+	padding: 0 0.5em;
+}
+
+#wpbody-content .quick-edit-row-page fieldset.inline-edit-col-right .inline-edit-col {
+	border-width: 0 0 0 1px;
+	border-style: none none none solid;
+}
+
+#wpbody-content .quick-edit-row-post .inline-edit-col-left {
+	width: 40%;
+}
+
+#wpbody-content .quick-edit-row-post .inline-edit-col-right {
+	width: 39%;
+}
+
+#wpbody-content .inline-edit-row-post .inline-edit-col-center {
+	width: 20%;
+}
+
+#wpbody-content .quick-edit-row-page .inline-edit-col-left {
+	width: 50%;
+}
+
+#wpbody-content .quick-edit-row-page .inline-edit-col-right,
+#wpbody-content .bulk-edit-row-post .inline-edit-col-right {
+	width: 49%;
+}
+
+#wpbody-content .bulk-edit-row .inline-edit-col-left {
+	width: 30%;
+}
+
+#wpbody-content .bulk-edit-row-page .inline-edit-col-right {
+	width: 69%;
+}
+
+#wpbody-content .bulk-edit-row .inline-edit-col-bottom {
+	float: right;
+	width: 69%;
+}
+
+#wpbody-content .inline-edit-row-page .inline-edit-col-right {
+	margin-top: 27px;
+}
+
+.inline-edit-row fieldset .inline-edit-group {
+	clear: both;
+}
+
+.inline-edit-row fieldset .inline-edit-group:after {
+	content: ".";
+	display: block;
+	height: 0;
+	clear: both;
+	visibility: hidden;
+}
+
+.inline-edit-row p.submit {
+	clear: both;
+	padding: 0.5em;
+	margin: 0.5em 0 0;
+}
+
+.inline-edit-row span.error {
+	line-height: 22px;
+	margin: 0 15px;
+	padding: 3px 5px;
+}
+
+/*	Positioning */
+.inline-edit-row h4 {
+	margin: .2em 0;
+	padding: 0;
+	line-height: 23px;
+}
+.inline-edit-row fieldset span.title,
+.inline-edit-row fieldset span.checkbox-title {
+	margin: 0;
+	padding: 0;
+	line-height: 27px;
+}
+
+.inline-edit-row fieldset label,
+.inline-edit-row fieldset span.inline-edit-categories-label {
+	display: block;
+	margin: .2em 0;
+}
+
+.inline-edit-row fieldset label.inline-edit-tags {
+	margin-top: 0;
+}
+
+.inline-edit-row fieldset label.inline-edit-tags span.title {
+	margin: .2em 0;
+}
+
+.inline-edit-row fieldset label span.title {
+	display: block;
+	float: left;
+	width: 5em;
+}
+
+.inline-edit-row fieldset label span.input-text-wrap {
+	display: block;
+	margin-left: 5em;
+}
+
+.quick-edit-row-post fieldset.inline-edit-col-right label span.title {
+	width: auto;
+	padding-right: 0.5em;
+}
+
+.inline-edit-row .input-text-wrap input[type=text] {
+	width: 100%;
+}
+
+.inline-edit-row fieldset label input[type=checkbox] {
+	vertical-align: text-bottom;
+}
+
+.inline-edit-row fieldset label textarea {
+	width: 100%;
+	height: 4em;
+}
+
+#wpbody-content .bulk-edit-row fieldset .inline-edit-group label {
+	max-width: 50%;
+}
+
+#wpbody-content .quick-edit-row fieldset .inline-edit-group label.alignleft:first-child {
+	margin-right: 0.5em
+}
+
+.inline-edit-col-right .input-text-wrap input.inline-edit-menu-order-input {
+	width: 6em;
+}
+
+.inline-edit-save .spinner {
+	padding: 4px 10px 0;
+	vertical-align: top;
+	float: right;
+}
+
+/*	Styling */
+.inline-edit-row h4 {
+	text-transform: uppercase;
+}
+
+.inline-edit-row fieldset span.title,
+.inline-edit-row fieldset span.checkbox-title {
+	font-style: italic;
+	line-height: 1.8em;
+}
+
+/*	Specific Elements */
+.inline-edit-row fieldset input[type="text"],
+.inline-edit-row fieldset textarea {
+	border-style: solid;
+	border-width: 1px;
+}
+
+.inline-edit-row fieldset .inline-edit-date {
+	float: left;
+}
+
+.inline-edit-row fieldset input[name=jj],
+.inline-edit-row fieldset input[name=hh],
+.inline-edit-row fieldset input[name=mn] {
+	font-size: 12px;
+	width: 2.1em;
+}
+
+.inline-edit-row fieldset input[name=aa] {
+	font-size: 12px;
+	width: 3.5em;
+}
+
+.inline-edit-row fieldset label input.inline-edit-password-input {
+	width: 8em;
+}
+
+.inline-edit-row .catshow,
+.inline-edit-row .cathide {
+	cursor: pointer;
+}
+
+ul.cat-checklist {
+	height: 12em;
+	border-style: solid;
+	border-width: 1px;
+	overflow-y: scroll;
+	padding: 0 5px;
+	margin: 0;
+}
+
+#bulk-titles {
+	display: block;
+	height: 12em;
+	border-style: solid;
+	border-width: 1px;
+	overflow-y: scroll;
+	padding: 0 5px;
+	margin: 0 0 5px;
+}
+
+.inline-edit-row fieldset ul.cat-checklist li,
+.inline-edit-row fieldset ul.cat-checklist input {
+	margin: 0;
+}
+
+.inline-edit-row fieldset ul.cat-checklist label,
+.inline-edit-row .catshow,
+.inline-edit-row .cathide,
+.inline-edit-row #bulk-titles div {
+	font-family: sans-serif;
+	font-style: normal;
+	font-size: 11px;
+}
+
+table .inline-edit-row fieldset ul.cat-hover {
+	height: auto;
+	max-height: 30em;
+	overflow-y: auto;
+	position: absolute;
+}
+
+.inline-edit-row fieldset label input.inline-edit-menu-order-input {
+	width: 3em;
+}
+
+.inline-edit-row fieldset label input.inline-edit-slug-input {
+	width: 75%;
+}
+
+.quick-edit-row-post fieldset label.inline-edit-status {
+	float: left;
+}
+
+#bulk-titles {
+	line-height: 140%;
+}
+#bulk-titles div {
+	margin: 0.2em 0.3em;
+}
+
+#bulk-titles div a {
+	cursor: pointer;
+	display: block;
+	float: left;
+	height: 10px;
+	margin: 3px 3px 0 -2px;
+	overflow: hidden;
+	position: relative;
+	text-indent: -9999px;
+	width: 10px;
+}
+
+
+/*------------------------------------------------------------------------------
+  11.0 - Write/Edit Post Screen
+------------------------------------------------------------------------------*/
+
+#show-comments {
+	overflow: hidden;
+}
+
+#save-action .spinner,
+#show-comments a,
+#show-comments .spinner {
+	float: left;
+}
+
+#titlediv {
+	position: relative;
+	margin-bottom: 10px;
+}
+
+#titlediv label {
+	cursor: text;
+}
+
+#titlediv div.inside {
+	margin: 0;
+}
+
+#poststuff #titlewrap {
+	border: 0;
+	padding: 0;
+}
+
+#titlediv #title {
+	padding: 3px 8px;
+	font-size: 1.7em;
+	line-height: 100%;
+	width: 100%;
+	outline: none;
+}
+
+#titlediv #title-prompt-text,
+#wp-fullscreen-title-prompt-text {
+	color: #bbb;
+	position: absolute;
+	font-size: 1.7em;
+	padding: 8px 10px;
+}
+
+#wp-fullscreen-save .fs-saved {
+	color: #999;
+	float: right;
+	margin-top: 4px;
+}
+
+#wp-fullscreen-title-prompt-text {
+	padding: 11px;
+}
+
+#poststuff .inside-submitbox,
+#side-sortables .inside-submitbox {
+	margin: 0 3px;
+	font-size: 11px;
+}
+
+input#link_description,
+input#link_url {
+	width: 98%;
+}
+
+#pending {
+	background: 0 none;
+	border: 0 none;
+	padding: 0;
+	font-size: 11px;
+	margin-top: -1px;
+}
+
+#edit-slug-box {
+	line-height: 23px;
+	min-height: 23px;
+	margin-top: 5px;
+	padding: 0 10px;
+}
+
+#edit-slug-box .cancel {
+	margin-right: 10px;
+	font-size: 11px;
+}
+
+#editable-post-name-full {
+	display: none;
+}
+
+#editable-post-name input {
+	width: 16em;
+}
+
+.postarea h3 label {
+	float: left;
+}
+
+.submitbox .submit {
+	text-align: left;
+	padding: 12px 10px 10px;
+	font-size: 11px;
+}
+
+.submitbox .submitdelete {
+	text-decoration: none;
+	padding: 1px 2px;
+}
+
+.submitbox .submitdelete,
+.submitbox .submit a:hover {
+	border-bottom-width: 1px;
+	border-bottom-style: solid;
+}
+
+.submitbox .submit input {
+	margin-bottom: 8px;
+	margin-right: 4px;
+	padding: 6px;
+}
+
+.inside-submitbox #post_status {
+	margin: 2px 0 2px -2px;
+}
+
+#post-status-select, #post-format {
+	line-height: 2.5em;
+	margin-top: 3px;
+}
+
+/* Post Screen */
+#post-body #normal-sortables {
+	min-height: 50px;
+}
+
+.postbox {
+	position: relative;
+	min-width: 255px;
+}
+
+#trackback_url {
+	width: 99%;
+}
+
+#normal-sortables .postbox .submit {
+	background: transparent none;
+	border: 0 none;
+	float: right;
+	padding: 0 12px;
+	margin:0;
+}
+
+.category-add input[type="text"],
+.category-add select {
+	width: 100%;
+	max-width: 260px;
+}
+
+.press-this #side-sortables .category-tabs li,
+ul.category-tabs li,
+#side-sortables .add-menu-item-tabs li,
+.wp-tab-bar li {
+	display: inline;
+	line-height: 1.35em;
+}
+
+.no-js .category-tabs li.hide-if-no-js {
+ 	display: none;
+}
+
+.category-tabs a,
+#side-sortables .add-menu-item-tabs a,
+.wp-tab-bar a {
+	text-decoration: none;
+}
+
+.category-tabs {
+	margin: 8px 0 3px;
+}
+
+#category-adder h4 {
+	margin: 10px 0;
+}
+
+#side-sortables .add-menu-item-tabs,
+.wp-tab-bar {
+	margin-bottom: 3px;
+}
+
+#normal-sortables .postbox #replyrow .submit {
+	float: none;
+	margin: 0;
+	padding: 0 7px 5px;
+}
+
+#side-sortables .submitbox .submit input,
+#side-sortables .submitbox .submit .preview,
+#side-sortables .submitbox .submit a.preview:hover {
+	border: 0 none;
+}
+
+#side-sortables .inside-submitbox .insidebox,
+.stuffbox .insidebox {
+	margin: 11px 0;
+}
+
+ul.category-tabs,
+ul.add-menu-item-tabs,
+ul.wp-tab-bar {
+	margin-top: 12px;
+}
+
+ul.category-tabs li {
+	border-style: solid;
+	border-width: 1px;
+	position: relative;
+}
+
+ul.add-menu-item-tabs li.tabs,
+.wp-tab-active {
+	border-style: solid solid none;
+	border-width: 1px 1px 0;
+}
+
+#post-body .add-menu-item-tabs li.tabs {
+	border-style: solid none solid solid;
+	border-width: 1px 0 1px 1px;
+	margin-right: -1px;
+}
+
+ul.category-tabs li,
+ul.add-menu-item-tabs li,
+ul.wp-tab-bar li {
+	padding: 3px 5px 5px;
+	-webkit-border-top-left-radius: 3px;
+	-webkit-border-top-right-radius: 3px;
+	border-top-left-radius: 3px;
+	border-top-right-radius: 3px;
+}
+
+/* positioning etc. */
+form#tags-filter {
+	position: relative;
+}
+
+/* Edit posts */
+td.post-title strong,
+td.plugin-title strong {
+	display: block;
+	margin-bottom: .2em;
+}
+
+td.post-title p,
+td.plugin-title p {
+	margin: 6px 0;
+}
+
+/* Global classes */
+.wp-hidden-children .wp-hidden-child,
+.ui-tabs-hide {
+	display: none;
+}
+
+.commentlist .avatar {
+	vertical-align: text-top;
+}
+
+#post-body .tagsdiv #newtag {
+	margin-right: 5px;
+	width: 16em;
+}
+
+#side-sortables input#post_password {
+	width: 94%
+}
+
+#side-sortables .tagsdiv #newtag {
+	width: 68%;
+}
+
+#post-status-info {
+	border-width: 0 1px 1px;
+	border-style: none solid solid;
+	width: 100%;
+	-webkit-border-bottom-left-radius: 3px;
+	-webkit-border-bottom-right-radius: 3px;
+	border-bottom-left-radius: 3px;
+	border-bottom-right-radius: 3px;
+}
+
+#post-status-info td {
+	font-size: 12px;
+}
+
+.autosave-info {
+	padding: 2px 15px;
+	text-align: right;
+}
+
+#editorcontent #post-status-info {
+	border: none;
+}
+
+#post-body .wp_themeSkin .mceStatusbar a.mceResize {
+	display: block;
+	background: transparent url('../images/resize.gif') no-repeat scroll right bottom;
+	width: 12px;
+	cursor: se-resize;
+	margin: 0 1px;
+	position: relative;
+	top: -2px;
+}
+
+#post-body .postarea .wp_themeSkin .mceStatusbar a.mceResize {
+	top: 20px;
+}
+
+#content-resize-handle {
+	background: transparent url('../images/resize.gif') no-repeat scroll right bottom;
+	width: 12px;
+	cursor: se-resize;
+	position: absolute;
+	right: 2px;
+	height: 19px;
+}
+
+.press-this #content-resize-handle {
+	bottom: 2px;
+}
+
+.tmce-active #content-resize-handle {
+	display: none;
+}
+
+#wp-word-count {
+	display: block;
+	padding: 2px 10px;
+}
+
+#timestampdiv select {
+	height: 20px;
+	line-height: 14px;
+	padding: 0;
+	vertical-align: top;
+}
+
+#aa, #jj, #hh, #mn {
+	padding: 1px;
+	font-size: 12px;
+}
+
+#jj, #hh, #mn {
+	width: 2em;
+}
+
+#aa {
+	width: 3.4em;
+}
+
+.curtime #timestamp {
+	background-repeat: no-repeat;
+	background-position: left center;
+	padding: 2px 0 1px 20px;
+}
+
+#timestampdiv {
+	padding-top: 5px;
+	line-height: 23px;
+}
+
+#timestampdiv p {
+	margin: 8px 0 6px;
+}
+
+#timestampdiv input {
+	border-width: 1px;
+	border-style: solid;
+}
+
+
+/*------------------------------------------------------------------------------
+  11.1 - Custom Fields
+------------------------------------------------------------------------------*/
+
+#postcustomstuff thead th {
+	padding: 5px 8px 8px;
+}
+
+#postcustom #postcustomstuff .submit {
+	border: 0 none;
+	float: none;
+	padding: 0 8px 8px;
+}
+
+#side-sortables #postcustom #postcustomstuff .submit {
+	margin: 0;
+	padding: 0;
+}
+
+#side-sortables #postcustom #postcustomstuff #the-list textarea {
+	height: 85px;
+}
+
+#side-sortables #postcustom #postcustomstuff td.left input,
+#side-sortables #postcustom #postcustomstuff td.left select,
+#side-sortables #postcustomstuff #newmetaleft a {
+	margin: 3px 3px 0;
+}
+
+#postcustomstuff table {
+	margin: 0;
+	width: 100%;
+	border-width: 1px;
+	border-style: solid;
+	border-spacing: 0;
+}
+
+#postcustomstuff tr {
+	vertical-align: top;
+}
+
+#postcustomstuff table input,
+#postcustomstuff table select,
+#postcustomstuff table textarea {
+	width: 96%;
+	margin: 8px;
+}
+
+#side-sortables #postcustomstuff table input,
+#side-sortables #postcustomstuff table select,
+#side-sortables #postcustomstuff table textarea {
+	margin: 3px;
+}
+
+#postcustomstuff th.left,
+#postcustomstuff td.left {
+	width: 38%;
+}
+
+#postcustomstuff .submit input {
+	margin: 0;
+	width: auto;
+}
+
+#postcustomstuff #newmetaleft a {
+	display: inline-block;
+	margin: 0 8px 8px;
+	text-decoration: none;
+}
+
+.no-js #postcustomstuff #enternew {
+	display: none;
+}
+
+#post-body-content .compat-attachment-fields {
+	margin-bottom: 20px;
+}
+
+.compat-attachment-fields th {
+	padding-top: 5px;
+	padding-right: 10px;
+}
+
+/*------------------------------------------------------------------------------
+  11.2 - Post Revisions
+------------------------------------------------------------------------------*/
+
+table.diff {
+	width: 100%;
+}
+
+table.diff col.content {
+	width: 50%;
+}
+
+table.diff tr {
+	background-color: transparent;
+}
+
+table.diff td, table.diff th {
+	padding: .5em;
+	font-family: Consolas, Monaco, monospace;
+	border: none;
+}
+
+table.diff .diff-deletedline del, table.diff .diff-addedline ins {
+	text-decoration: none;
+}
+
+/*------------------------------------------------------------------------------
+  11.3 - Featured Images
+------------------------------------------------------------------------------*/
+
+#select-featured-image {
+	padding: 4px 0;
+	overflow: hidden;
+}
+
+#select-featured-image img {
+	max-width: 100%;
+	height: auto;
+	margin-bottom: 10px;
+}
+
+#select-featured-image a {
+	float: left;
+	clear: both;
+}
+
+#select-featured-image .remove {
+	display: none;
+	margin-top: 10px;
+}
+
+.js #select-featured-image.has-featured-image .remove {
+	display: inline-block;
+}
+
+.no-js #select-featured-image .choose {
+	display: none;
+}
+
+/*------------------------------------------------------------------------------
+  12.0 - Categories
+------------------------------------------------------------------------------*/
+
+.category-adder {
+	margin-left: 120px;
+	padding: 4px 0;
+}
+
+.category-adder h4 {
+	margin: 0 0 8px;
+}
+
+#side-sortables .category-adder {
+	margin: 0;
+}
+
+#post-body ul.add-menu-item-tabs {
+	float: left;
+	width: 120px;
+	text-align: right;
+	/* Negative margin for the sake of those without JS: all tabs display */
+	margin: 0 -120px 0 5px;
+	padding: 0;
+}
+
+#post-body ul.add-menu-item-tabs li {
+	padding: 8px;
+}
+
+#post-body ul.add-menu-item-tabs li.tabs {
+	-webkit-border-top-left-radius: 3px;
+	-webkit-border-bottom-left-radius: 3px;
+	border-top-left-radius: 3px;
+	border-bottom-left-radius: 3px;
+}
+
+.wp-tab-panel,
+.categorydiv div.tabs-panel,
+.customlinkdiv div.tabs-panel,
+.posttypediv div.tabs-panel,
+.taxonomydiv div.tabs-panel {
+	min-height: 42px;
+	max-height: 200px;
+	overflow: auto;
+	padding: 0 0.9em;
+	border-style: solid;
+	border-width: 1px;
+}
+
+div.tabs-panel-active {
+	display:block;
+}
+
+div.tabs-panel-inactive {
+	display:none;
+}
+
+.customlinkdiv ul,
+.posttypediv ul,
+.taxonomydiv ul {
+	list-style: none;
+	padding: 0;
+	margin: 0;
+}
+
+#front-page-warning,
+#front-static-pages ul,
+ul.export-filters,
+.inline-editor ul.cat-checklist ul,
+.categorydiv ul.categorychecklist ul,
+.customlinkdiv ul.categorychecklist ul,
+.posttypediv ul.categorychecklist ul,
+.taxonomydiv ul.categorychecklist ul {
+	margin-left: 18px;
+}
+
+ul.categorychecklist li {
+	margin: 0;
+	padding: 0;
+	line-height: 19px;
+	word-wrap: break-word;
+}
+
+.categorydiv .tabs-panel,
+.customlinkdiv .tabs-panel,
+.posttypediv .tabs-panel,
+.taxonomydiv .tabs-panel {
+	border-width: 3px;
+	border-style: solid;
+}
+
+.form-wrap p,
+.form-wrap label {
+	font-size: 11px;
+}
+
+.form-wrap label {
+	display: block;
+	padding: 2px;
+	font-size: 12px;
+}
+
+.form-field input,
+.form-field textarea {
+	border-style: solid;
+	border-width: 1px;
+	width: 95%;
+}
+
+p.description,
+.form-wrap p {
+	margin: 2px 0 5px;
+}
+
+p.help,
+p.description,
+span.description,
+.form-wrap p {
+	font-size: 12px;
+	font-style: italic;
+	font-family: sans-serif;
+}
+
+.form-wrap .form-field {
+	margin: 0 0 10px;
+	padding: 8px 0;
+}
+
+.col-wrap h3 {
+	margin: 12px 0;
+	font-size: 1.1em;
+}
+
+.col-wrap p.submit {
+	margin-top: -10px;
+}
+
+
+/*------------------------------------------------------------------------------
+  13.0 - Tags
+------------------------------------------------------------------------------*/
+
+#poststuff .taghint {
+	color: #aaa;
+	margin: 15px 0 -24px 12px;
+}
+
+#poststuff .tagsdiv .howto {
+	margin: 0 0 6px 8px;
+}
+
+.ajaxtag .newtag {
+	position: relative;
+}
+
+.tagsdiv .newtag {
+	width: 180px;
+}
+
+.tagsdiv .the-tags {
+	display: block;
+	height: 60px;
+	margin: 0 auto;
+	overflow: auto;
+	width: 260px;
+}
+
+#post-body-content .tagsdiv .the-tags {
+	margin: 0 5px;
+}
+
+p.popular-tags {
+	-webkit-border-radius: 8px;
+	border-radius: 8px;
+	border-width: 1px;
+	border-style: solid;
+	line-height: 2em;
+	max-width: 1000px;
+	padding: 8px 12px 12px;
+	text-align: justify;
+}
+
+p.popular-tags a {
+	padding: 0 3px;
+}
+
+.tagcloud {
+	width: 97%;
+	margin: 0 0 40px;
+	text-align: justify;
+}
+
+.tagcloud h3 {
+	margin: 2px 0 12px;
+}
+
+.ac_results {
+	padding: 0;
+	margin: 0;
+	list-style: none;
+	position: absolute;
+	z-index: 10000;
+	display: none;
+	border-width: 1px;
+	border-style: solid;
+}
+
+.ac_results li {
+	padding: 2px 5px;
+	white-space: nowrap;
+	text-align: left;
+}
+
+.ac_over {
+	cursor: pointer;
+}
+
+.ac_match {
+	text-decoration: underline;
+}
+
+/* links tables */
+table.links-table {
+	width: 100%;
+}
+
+.links-table th {
+	font-weight: normal;
+	text-align: left;
+	vertical-align: top;
+	min-width: 80px;
+	width: 20%;
+	word-wrap: break-word;
+}
+
+.links-table th,
+.links-table td {
+	padding: 5px 0;
+}
+
+.links-table td label {
+	margin-right: 8px;
+}
+
+.links-table td input[type="text"],
+.links-table td textarea {
+	width: 100%;
+}
+
+.links-table #link_rel {
+	max-width: 280px;
+}
+
+/*------------------------------------------------------------------------------
+  14.0 - Media Screen
+------------------------------------------------------------------------------*/
+
+.media-item .describe {
+	border-collapse: collapse;
+	width: 100%;
+	border-top-style: solid;
+	border-top-width: 1px;
+	clear: both;
+	cursor: default;
+}
+
+.media-item.media-blank .describe {
+	border: 0;
+}
+
+.media-item .describe th {
+	vertical-align: top;
+	text-align: left;
+	padding: 5px 10px 10px;
+	width: 140px;
+}
+
+.media-item .describe .align th {
+	padding-top: 0;
+}
+
+.media-item .media-item-info tr {
+	background-color: transparent;
+}
+
+.media-item .describe td {
+	padding: 0 8px 8px 0;
+	vertical-align: top;
+}
+
+.media-item thead.media-item-info td {
+	padding: 4px 10px 0;
+}
+
+.media-item .media-item-info .A1B1 {
+	padding: 0 0 0 10px;
+}
+
+.media-item td.savesend {
+	padding-bottom: 15px;
+}
+
+.media-item .thumbnail {
+	max-height: 128px;
+	max-width: 128px;
+}
+
+#wpbody-content #async-upload-wrap a {
+	display: none;
+}
+
+.media-upload-form {
+	margin-top: 20px;
+}
+
+.media-upload-form td label {
+	margin-right: 6px;
+	margin-left: 2px;
+}
+
+.media-upload-form .align .field label {
+	display: inline;
+	padding: 0 0 0 23px;
+	margin: 0 1em 0 3px;
+	font-weight: bold;
+}
+
+.media-upload-form tr.image-size label {
+	margin: 0 0 0 5px;
+	font-weight: bold;
+}
+
+.media-upload-form th.label label {
+	font-weight: bold;
+	margin: 0.5em;
+	font-size: 13px;
+}
+
+.media-upload-form th.label label span {
+	padding: 0 5px;
+}
+
+abbr.required {
+	border: medium none;
+	text-decoration: none;
+}
+
+.media-item .describe input[type="text"],
+.media-item .describe textarea {
+	width: 460px;
+}
+
+.media-item .describe p.help {
+	margin: 0;
+	padding: 0 0 0 5px;
+}
+
+.media-item .edit-attachment,
+.describe-toggle-on,
+.describe-toggle-off {
+	display: block;
+	line-height: 36px;
+	float: right;
+	margin-right: 15px;
+}
+
+.media-item .describe-toggle-off,
+.media-item.open .describe-toggle-on {
+	display: none;
+}
+
+.media-item.open .describe-toggle-off {
+	display: block;
+}
+
+#media-items .media-item {
+	border-style: solid;
+	border-width: 1px;
+	min-height: 36px;
+	position: relative;
+	margin-top: -1px;
+	width: 100%;
+}
+
+#media-items {
+	width: 623px;
+}
+
+.media-new-php #media-items {
+	margin: 1em 0;
+}
+
+#media-items:empty {
+	border: 0 none;
+}
+
+.media-item .filename {
+	line-height: 36px;
+	overflow: hidden;
+	padding: 0 10px;
+}
+
+.media-item .error-div {
+	padding-left: 10px;
+}
+
+.media-item .pinkynail {
+	float: left;
+	margin: 2px 2px 0;
+	max-width: 40px;
+	max-height: 32px;
+}
+
+.media-item .startopen,
+.media-item .startclosed {
+	display: none;
+}
+
+.media-item .original {
+	position: relative;
+	height: 34px;
+}
+
+.media-item .progress {
+	float: right;
+	height: 22px;
+	margin: 6px 10px 0 0;
+	width: 200px;
+	line-height: 2em;
+	padding: 0;
+	overflow: hidden;
+	margin-bottom: 2px;
+	border: 1px solid #d1d1d1;
+	background: #f7f7f7;
+	background-image: -webkit-gradient(linear, left bottom, left top, from(#fff), to(#f7f7f7));
+	background-image: -webkit-linear-gradient(bottom, #fff, #f7f7f7);
+	background-image:    -moz-linear-gradient(bottom, #fff, #f7f7f7);
+	background-image:      -o-linear-gradient(bottom, #fff, #f7f7f7);
+	background-image: linear-gradient(to top, #fff, #f7f7f7);
+	-webkit-border-radius: 3px;
+	border-radius: 3px;
+	-webkit-box-shadow: inset 0 0 3px rgba(0,0,0,0.1);
+	box-shadow: inset 0 0 3px rgba(0,0,0,0.1);
+}
+
+.media-item .bar {
+	z-index: 9;
+	width: 0;
+	height: 100%;
+	margin-top: -24px;
+	background-color: #8cc1e9;
+	background-image: -webkit-gradient(linear, left bottom, left top, from(#72a7cf), to(#8cc1e9));
+	background-image: -webkit-linear-gradient(bottom, #72a7cf, #8cc1e9);
+	background-image:    -moz-linear-gradient(bottom, #72a7cf, #8cc1e9);
+	background-image:      -o-linear-gradient(bottom, #72a7cf, #8cc1e9);
+	background-image: linear-gradient(to top, #72a7cf, #8cc1e9);
+	-webkit-border-radius: 3px;
+	border-radius: 3px;
+	-webkit-box-shadow: 0 0 3px rgba(0,0,0,0.3);
+	box-shadow: 0 0 3px rgba(0,0,0,0.3);
+}
+
+.media-item .progress .percent {
+	z-index: 10;
+	position: relative;
+	width: 200px;
+	padding: 0 8px;
+	text-shadow: 0 1px 0 rgba(255,255,255,0.4);
+	color: rgba(0,0,0,0.6);
+}
+
+.upload-php .fixed .column-parent {
+	width: 15%;
+}
+
+.js .html-uploader #plupload-upload-ui {
+	display: none;
+}
+
+.js .html-uploader #html-upload-ui {
+	display: block;
+}
+
+.media-upload-form .media-item.error {
+	margin: 0;
+	padding: 0;
+}
+
+.media-upload-form .media-item.error p,
+.media-item .error-div {
+	line-height: 16px;
+	margin: 5px 10px;
+	padding: 0;
+}
+
+.media-item .error-div a.dismiss {
+	display: block;
+	float: right;
+	margin: 5px 4px 0 15px;
+}
+
+/*------------------------------------------------------------------------------
+  14.1 - Media Library
+------------------------------------------------------------------------------*/
+
+.find-box {
+	width: 600px;
+	height: 300px;
+	overflow: hidden;
+	padding: 33px 0 51px;
+	position: absolute;
+	z-index: 1000;
+}
+
+.find-box-head {
+	cursor: move;
+	font-weight: bold;
+	height: 2em;
+	line-height: 2em;
+	padding: 1px 12px;
+	position: absolute;
+	top: 5px;
+	width: 100%;
+}
+
+.find-box-inside {
+	overflow: auto;
+	padding: 6px;
+	height: 100%;
+}
+
+.find-box-search {
+	overflow: hidden;
+	padding: 9px;
+	position: relative;
+}
+
+.find-box-search .spinner {
+	float: none;
+	left: 125px;
+	position: absolute;
+	top: 9px;
+}
+
+#find-posts-input {
+	float: left;
+	width: 140px;
+	height: 24px;
+}
+
+#find-posts-search {
+	float: left;
+	margin: 1px 4px 0 3px;
+}
+
+#find-posts-response {
+	margin: 8px 0;
+	padding: 0 1px 6px;
+}
+
+#find-posts-response table {
+	width: 100%;
+}
+
+#find-posts-response .found-radio {
+	padding: 3px 0 0 8px;
+	width: 15px;
+}
+
+.find-box-buttons {
+	padding: 8px;
+	overflow: hidden;
+}
+
+.find-box #resize-se {
+	position: absolute;
+	right: 1px;
+	bottom: 1px;
+}
+
+.ui-find-overlay {
+	position: absolute;
+	top: 0;
+	left: 0;
+	background-color: #000;
+	opacity: 0.6;
+	filter: alpha(opacity=60);
+}
+
+ul#dismissed-updates {
+	display: none;
+}
+
+form.upgrade {
+	margin-top: 8px;
+}
+
+form.upgrade .hint {
+	font-style: italic;
+	font-size: 85%;
+	margin: -0.5em 0 2em 0;
+}
+
+#poststuff .inside .the-tagcloud {
+	margin: 5px 0 10px;
+	padding: 8px;
+	border-width: 1px;
+	border-style: solid;
+	line-height: 1.8em;
+	word-spacing: 3px;
+	-webkit-border-radius: 6px;
+	border-radius: 6px;
+}
+
+.drag-drop #drag-drop-area {
+	border: 4px dashed #DDDDDD;
+	height: 200px;
+}
+
+.drag-drop .drag-drop-inside {
+	margin: 70px auto 0;
+	width: 250px;
+}
+
+.drag-drop-inside p {
+	color: #aaa;
+	font-size: 14px;
+	margin: 5px 0;
+	display: none;
+}
+
+.drag-drop .drag-drop-inside p {
+	text-align: center;
+}
+
+.drag-drop-inside p.drag-drop-info {
+	font-size: 20px;
+}
+
+.drag-drop .drag-drop-inside p,
+.drag-drop-inside p.drag-drop-buttons {
+	display: block;
+}
+
+/*
+#drag-drop-area:-moz-drag-over {
+	border-color: #83b4d8;
+}
+borger color while dragging a file over the uploader drop area */
+.drag-drop.drag-over #drag-drop-area {
+	border-color: #83b4d8;
+}
+
+#plupload-upload-ui {
+	position: relative;
+}
+
+
+/*------------------------------------------------------------------------------
+  14.2 - Image Editor
+------------------------------------------------------------------------------*/
+
+.describe .image-editor {
+	vertical-align: top;
+}
+
+.imgedit-wrap {
+	position: relative;
+}
+
+.imgedit-settings p {
+	margin: 8px 0;
+}
+
+.post-php .imgedit-wrap table {
+	width: 100%;
+}
+
+.describe .imgedit-wrap table td,
+.wp_attachment_holder .imgedit-wrap table td {
+	vertical-align: top;
+	padding-top: 0;
+}
+
+.describe .imgedit-wrap table td.imgedit-settings {
+	padding: 0 5px;
+}
+
+.wp_attachment_holder .imgedit-wrap table td.imgedit-settings {
+	width: 250px;
+}
+
+td.imgedit-settings input {
+	margin-top: 0;
+	vertical-align: middle;
+}
+
+.imgedit-wait {
+	position: absolute;
+	top: 0;
+	background: #fff url(../images/wpspin_light.gif) no-repeat scroll 22px 10px;
+	background-size: 16px 16px;
+	opacity: 0.7;
+	filter: alpha(opacity=70);
+	width: 100%;
+	height: 500px;
+	display: none;
+}
+
+.spinner {
+	background: url(../images/wpspin_light.gif) no-repeat;
+	background-size: 16px 16px;
+	display: none;
+	float: right;
+	opacity: 0.7;
+	filter: alpha(opacity=70);
+	width: 16px;
+	height: 16px;
+	margin: 5px 5px 0;
+}
+
+.no-float {
+	float: none;
+}
+
+.media-disabled,
+.imgedit-settings .disabled  {
+	color: grey;
+}
+
+.wp_attachment_image,
+.A1B1 {
+	overflow: hidden;
+}
+
+.wp_attachment_image .button,
+.A1B1 .button {
+	float: left;
+}
+
+.no-js .wp_attachment_image .button {
+	display: none;
+}
+
+.wp_attachment_image .spinner,
+.A1B1 .spinner {
+	float: left;
+	padding: 0 4px 4px;
+	vertical-align: bottom;
+}
+
+.imgedit-menu {
+	margin: 0 0 12px;
+	min-width: 300px;
+}
+
+.imgedit-menu div {
+	float: left;
+	width: 32px;
+	height: 32px;
+}
+
+.imgedit-crop-wrap {
+	position: relative;
+}
+
+.imgedit-crop {
+	background: transparent url('../images/imgedit-icons.png') no-repeat scroll -9px -31px;
+	margin: 0 8px 0 0;
+}
+
+.imgedit-crop.disabled:hover {
+	background-position: -9px -31px;
+}
+
+.imgedit-crop:hover {
+	background-position: -9px -1px;
+}
+
+.imgedit-rleft {
+	background: transparent url('../images/imgedit-icons.png') no-repeat scroll -46px -31px;
+	margin: 0 3px;
+}
+
+.imgedit-rleft.disabled:hover {
+	background-position: -46px -31px;
+}
+
+.imgedit-rleft:hover {
+	background-position: -46px -1px;
+}
+
+.imgedit-rright {
+	background: transparent url('../images/imgedit-icons.png') no-repeat scroll -77px -31px;
+	margin: 0 8px 0 3px;
+}
+
+.imgedit-rright.disabled:hover {
+	background-position: -77px -31px;
+}
+
+.imgedit-rright:hover {
+	background-position: -77px -1px;
+}
+
+.imgedit-flipv {
+	background: transparent url('../images/imgedit-icons.png') no-repeat scroll -115px -31px;
+	margin: 0 3px;
+}
+
+.imgedit-flipv.disabled:hover {
+	background-position: -115px -31px;
+}
+
+.imgedit-flipv:hover {
+	background-position: -115px -1px;
+}
+
+.imgedit-fliph {
+	background: transparent url('../images/imgedit-icons.png') no-repeat scroll -147px -31px;
+	margin: 0 8px 0 3px;
+}
+
+.imgedit-fliph.disabled:hover {
+	background-position: -147px -31px;
+}
+
+.imgedit-fliph:hover {
+	background-position: -147px -1px;
+}
+
+.imgedit-undo {
+	background: transparent url('../images/imgedit-icons.png') no-repeat scroll -184px -31px;
+	margin: 0 3px;
+}
+
+.imgedit-undo.disabled:hover {
+	background-position: -184px -31px;
+}
+
+.imgedit-undo:hover {
+	background-position: -184px -1px;
+}
+
+.imgedit-redo {
+	background: transparent url('../images/imgedit-icons.png') no-repeat scroll -215px -31px;
+	margin: 0 8px 0 3px;
+}
+
+.imgedit-redo.disabled:hover {
+	background-position: -215px -31px;
+}
+
+.imgedit-redo:hover {
+	background-position: -215px -1px;
+}
+
+.imgedit-applyto img {
+	margin: 0 8px 0 0;
+}
+
+.imgedit-group-top {
+	margin: 5px 0;
+}
+
+.imgedit-applyto .imgedit-label {
+	padding: 2px 0 0;
+	display: block;
+}
+
+.imgedit-help {
+	display: none;
+	font-style: italic;
+	margin-bottom: 8px;
+}
+
+a.imgedit-help-toggle {
+	text-decoration: none;
+}
+
+.form-table td.imgedit-response {
+	padding: 0;
+}
+
+.imgedit-submit {
+	margin: 8px 0;
+}
+
+.imgedit-submit-btn {
+	margin-left: 20px;
+}
+
+.imgedit-wrap .nowrap {
+	white-space: nowrap;
+}
+
+span.imgedit-scale-warn {
+	color: red;
+	font-size: 20px;
+	font-style: normal;
+	visibility: hidden;
+	vertical-align: middle;
+}
+
+.imgedit-group {
+	border-width: 1px;
+	border-style: solid;
+	-webkit-border-radius: 3px;
+	border-radius: 3px;
+	margin-bottom: 8px;
+	padding: 2px 10px;
+}
+
+.wp_attachment_details {
+	margin-bottom: 20px;
+}
+
+/*------------------------------------------------------------------------------
+  15.0 - Comments Screen
+------------------------------------------------------------------------------*/
+
+.form-table {
+	border-collapse: collapse;
+	margin-top: 0.5em;
+	width: 100%;
+	margin-bottom: -8px;
+	clear: both;
+}
+
+.form-table td {
+	margin-bottom: 9px;
+	padding: 8px 10px;
+	line-height: 20px;
+	font-size: 12px;
+}
+
+.form-table th,
+.form-wrap label {
+	font-weight: normal;
+	text-shadow: #fff 0 1px 0;
+}
+
+.form-table th {
+	vertical-align: top;
+	text-align: left;
+	padding: 10px;
+	width: 200px;
+}
+
+.form-table th.th-full {
+	width: auto;
+}
+
+.form-table div.color-option {
+	display: block;
+	clear: both;
+	margin-top: 12px;
+}
+
+.form-table input.tog {
+	margin-top: 2px;
+	margin-right: 2px;
+	float: left;
+}
+
+.form-table td p {
+	margin-top: 4px;
+}
+
+.form-table table.color-palette {
+	vertical-align: bottom;
+	float: left;
+	margin: -12px 3px 11px;
+}
+
+.form-table .color-palette td {
+	border-width: 1px 1px 0;
+	border-style: solid solid none;
+	height: 10px;
+	line-height: 20px;
+	width: 10px;
+}
+
+.commentlist li {
+	padding: 1em 1em .2em;
+	margin: 0;
+	border-bottom-width: 1px;
+	border-bottom-style: solid;
+}
+
+.commentlist li li {
+	border-bottom: 0;
+	padding: 0;
+}
+
+.commentlist p {
+	padding: 0;
+	margin: 0 0 .8em;
+}
+
+/* reply to comments */
+#replyrow input {
+	border-width: 1px;
+	border-style: solid;
+}
+
+#replyrow td {
+	padding: 2px;
+}
+
+#replysubmit {
+	margin: 0;
+	padding: 0 5px 3px;
+	text-align: center;
+}
+
+#replysubmit .spinner {
+	padding: 2px 0 0;
+	vertical-align: top;
+	float: right;
+}
+
+#replysubmit .button {
+	margin-right: 5px;
+}
+
+#replysubmit .error {
+	color: red;
+	line-height: 21px;
+	text-align: center;
+}
+
+#replyrow h5 {
+	margin: .2em 0 0;
+	padding: 0 5px;
+	line-height: 1.4em;
+	font-size: 1em;
+}
+
+#edithead .inside {
+	float: left;
+	padding: 3px 0 2px 5px;
+	margin: 0;
+	text-align: center;
+}
+
+#edithead .inside input {
+	width: 180px;
+}
+
+#edithead label {
+	padding: 2px 0;
+}
+
+#replycontainer {
+	padding: 5px;
+}
+
+#replycontent {
+	height: 120px;
+	-webkit-box-shadow: none;
+	box-shadow: none;
+}
+
+.comment-php .wp-editor-area {
+	height: 200px;
+}
+
+.comment-ays {
+	margin-bottom: 0;
+	border-style: solid;
+	border-width: 1px;
+}
+
+.comment-ays th {
+	border-right-style: solid;
+	border-right-width: 1px;
+}
+
+.trash-undo-inside,
+.spam-undo-inside {
+	margin: 1px 8px 1px 0;
+	line-height: 16px;
+}
+
+.spam-undo-inside .avatar,
+.trash-undo-inside .avatar {
+	height: 20px;
+	width: 20px;
+	margin-right: 8px;
+	vertical-align: middle;
+}
+
+.stuffbox .editcomment {
+	clear: none;
+}
+
+#comment-status-radio p {
+	margin: 3px 0 5px;
+}
+
+#comment-status-radio input {
+	margin: 2px 3px 5px 0;
+	vertical-align: middle;
+}
+
+#comment-status-radio label {
+	padding: 5px 0;
+}
+
+.commentlist .avatar {
+	vertical-align: text-top;
+}
+
+
+/*------------------------------------------------------------------------------
+  16.0 - Themes
+------------------------------------------------------------------------------*/
+
+.theme-install-php .tablenav {
+	height: auto;
+}
+
+.theme-install-php .spinner {
+	margin-top: 9px;
+}
+
+h3.available-themes {
+	margin: 0 0 1em;
+	float: left;
+}
+
+.available-theme {
+	display: inline-block;
+	margin-right: 10px;
+	overflow: hidden;
+	padding: 20px 20px 20px 0;
+	vertical-align: top;
+	width: 300px;
+}
+
+.available-theme .screenshot {
+	width: 300px;
+	height: 225px;
+	display: block;
+	border-width: 1px;
+	border-style: solid;
+	margin-bottom: 10px;
+	overflow: hidden;
+}
+
+.available-theme img {
+	width: 300px;
+}
+
+.available-theme h3 {
+	margin: 15px 0 0;
+}
+
+.available-theme .theme-author {
+	line-height: 18px;
+}
+
+.available-theme .action-links {
+	margin-top: 10px;
+	overflow: hidden;
+}
+
+.available-theme a.screenshot:focus {
+	border-color: #777;
+}
+
+#current-theme .theme-info li,
+.theme-options li,
+.available-theme .action-links li {
+	float: left;
+	padding-right: 10px;
+	margin-right: 10px;
+	border-right: 1px solid #dfdfdf;
+}
+
+.available-theme .action-links li {
+	padding-right: 8px;
+	margin-right: 8px;
+}
+
+.ie8 .available-theme .action-links li {
+	padding-right: 7px;
+	margin-right: 7px;
+}
+
+#current-theme .theme-info li:last-child,
+.theme-options li:last-child,
+.available-theme .action-links li:last-child {
+	padding-right: 0;
+	margin-right: 0;
+	border-right: 0;
+}
+
+.available-theme .action-links .delete-theme {
+	float: right;
+	margin-left: 8px;
+	margin-right: 0;
+}
+
+.available-theme .action-links .delete-theme a {
+	color: red;
+	padding: 2px;
+}
+
+.available-theme .action-links .delete-theme a:hover {
+	background: red;
+	color: #fff;
+	text-decoration: none;
+}
+
+.available-theme .action-links p {
+	float: left;
+}
+
+#current-theme {
+	margin: 20px 0 10px;
+	padding: 0 0 20px;
+	border-bottom-width: 1px;
+	border-bottom-style: solid;
+	overflow: hidden;
+}
+
+#current-theme.has-screenshot {
+	padding-left: 330px;
+}
+
+#current-theme h3 {
+	margin: 0;
+	font-size: 12px;
+	font-weight: normal;
+	color: #999;
+}
+
+#current-theme h4 {
+	margin: 3px 0 16px;
+	font-size: 20px;
+}
+
+#current-theme h4 span {
+	margin-left: 20px;
+	font-size: 12px;
+	font-weight: normal;
+}
+
+#current-theme a {
+	border-bottom: none;
+}
+
+#current-theme .theme-info {
+	margin: 1em 0;
+	overflow: hidden;
+}
+
+#current-theme .theme-description {
+	margin-top: 5px;
+	max-width: 600px;
+	line-height: 1.6em;
+}
+
+#current-theme img {
+	float: left;
+	width: 300px;
+	margin-left: -330px;
+
+	border-width: 1px;
+	border-style: solid;
+}
+
+.theme-options {
+	overflow: hidden;
+	font-size: 14px;
+	padding-bottom: 10px;
+}
+
+.theme-options .load-customize {
+	margin-right: 30px;
+	float: left;
+}
+
+.theme-options span {
+	float: left;
+	margin-right: 10px;
+	text-transform: uppercase;
+	font-size: 11px;
+	line-height: 18px;
+	color: #999;
+}
+
+.theme-options ul {
+	float: left;
+	margin: 0;
+}
+
+/* Allow for three-up on 1024px wide screens, e.g. tablets */
+@media only screen and (max-width: 1200px) {
+	.available-theme,
+	.available-theme .screenshot,
+	#current-theme img {
+		width: 240px;
+	}
+
+	.available-theme .screenshot {
+		height: 180px;
+	}
+
+	.available-theme img {
+		width: 100%;
+	}
+
+	#current-theme.has-screenshot {
+		padding-left: 270px;
+	}
+
+	#current-theme img {
+		margin-left: -270px;
+	}
+}
+
+#post-body ul.add-menu-item-tabs li.tabs a,
+#TB_window #TB_title a.tb-theme-preview-link,
+#TB_window #TB_title a.tb-theme-preview-link:visited {
+	font-weight: bold;
+	text-decoration: none;
+}
+
+#TB_window #TB_title {
+	background-color: #222;
+	color: #cfcfcf;
+}
+
+#broken-themes {
+	text-align: left;
+	width: 50%;
+	border-spacing: 3px;
+	padding: 3px;
+}
+
+.theme-install-php h4 {
+	margin: 2.5em 0 8px;
+}
+
+
+/*------------------------------------------------------------------------------
+  16.1 - Custom Header Screen
+------------------------------------------------------------------------------*/
+
+.appearance_page_custom-header #headimg {
+	border: 1px solid #DFDFDF;
+	overflow: hidden;
+	width: 100%;
+}
+
+.appearance_page_custom-header #upload-form p label {
+	font-size: 12px;
+}
+
+.appearance_page_custom-header .available-headers .default-header {
+	float: left;
+	margin: 0 20px 20px 0;
+}
+
+.appearance_page_custom-header .random-header {
+	clear: both;
+	margin: 0 20px 20px 0;
+	vertical-align: middle;
+}
+
+.appearance_page_custom-header .available-headers label input,
+.appearance_page_custom-header .random-header label input {
+	margin-right: 10px;
+}
+
+.appearance_page_custom-header .available-headers label img {
+	vertical-align: middle;
+}
+
+
+/*------------------------------------------------------------------------------
+  16.2 - Custom Background Screen
+------------------------------------------------------------------------------*/
+
+div#custom-background-image {
+	min-height: 100px;
+	border: 1px solid #dfdfdf;
+}
+
+div#custom-background-image img {
+	max-width: 400px;
+	max-height: 300px;
+}
+
+
+/*------------------------------------------------------------------------------
+  16.3 - Tabbed Admin Screen Interface (Experimental)
+------------------------------------------------------------------------------*/
+
+.nav-tab {
+	border-style: solid;
+	border-width: 1px 1px 0;
+	color: #aaa;
+	text-shadow: #fff 0 1px 0;
+	font-size: 12px;
+	line-height: 16px;
+	display: inline-block;
+	padding: 4px 14px 6px;
+	text-decoration: none;
+	margin: 0 6px -1px 0;
+	-webkit-border-top-left-radius: 3px;
+	-webkit-border-top-right-radius: 3px;
+	border-top-left-radius: 3px;
+	border-top-right-radius: 3px;
+}
+
+.nav-tab-active {
+	border-width: 1px;
+	color: #464646;
+}
+
+h2.nav-tab-wrapper, h3.nav-tab-wrapper {
+	border-bottom-width: 1px;
+	border-bottom-style: solid;
+	padding-bottom: 0;
+}
+
+h2 .nav-tab {
+	padding: 4px 10px 6px;
+	font-weight: 200;
+	font-size: 20px;
+	line-height: 24px;
+
+}
+
+
+/*------------------------------------------------------------------------------
+  17.0 - Plugins
+------------------------------------------------------------------------------*/
+
+#dashboard_right_now .versions .b,
+#post-status-display,
+#post-visibility-display,
+#adminmenu .wp-submenu li.current,
+#adminmenu .wp-submenu li.current a,
+#adminmenu .wp-submenu li.current a:hover,
+.media-item .percent,
+.plugins .name,
+#pass-strength-result.strong,
+#pass-strength-result.short,
+#ed_reply_toolbar #ed_reply_strong,
+.item-controls .item-order a,
+.feature-filter .feature-name {
+	font-weight: bold;
+}
+
+.plugins p {
+	margin: 0 4px;
+	padding: 0;
+}
+
+.plugins .desc p {
+	margin: 0 0 8px;
+}
+
+.plugins td.desc {
+	line-height: 1.5em;
+}
+
+.plugins .desc ul,
+.plugins .desc ol {
+	margin: 0 0 0 2em;
+}
+
+.plugins .desc ul {
+	list-style-type: disc;
+}
+
+.plugins .row-actions-visible {
+	padding: 0;
+}
+
+.plugins tbody th.check-column {
+	padding: 7px 0;
+}
+
+.plugins .inactive td,
+.plugins .inactive th,
+.plugins .active td,
+.plugins .active th {
+	border-top-style: solid;
+	border-top-width: 1px;
+	padding: 5px 7px 0;
+}
+
+.plugins .update th,
+.plugins .update td {
+	border-bottom: 0;
+}
+.plugin-update-tr td {
+	border-top: 0;
+}
+
+#wpbody-content .plugins .plugin-title,
+#wpbody-content .plugins .theme-title {
+	padding-right: 12px;
+	white-space:nowrap;
+}
+
+.plugins .second,
+.plugins .row-actions-visible {
+	padding: 0 0 5px;
+}
+
+.plugins .update .second,
+.plugins .update .row-actions-visible {
+	padding-bottom: 0;
+}
+
+.plugins-php .widefat tfoot th,
+.plugins-php .widefat tfoot td {
+	border-top-style: solid;
+	border-top-width: 1px;
+}
+
+.plugin-update-tr .update-message {
+	margin: 5px;
+	padding: 3px 5px;
+}
+
+.plugin-install-php h4 {
+	margin: 2.5em 0 8px;
+}
+
+
+/*------------------------------------------------------------------------------
+  18.0 - Users
+------------------------------------------------------------------------------*/
+
+#profile-page .form-table textarea {
+	width: 500px;
+	margin-bottom: 6px;
+}
+
+#profile-page .form-table #rich_editing {
+	margin-right: 5px
+}
+
+#your-profile legend {
+	font-size: 22px;
+}
+
+#your-profile #rich_editing {
+	border: none;
+}
+
+#display_name {
+	width: 15em;
+}
+
+#createuser .form-field input {
+	width: 25em;
+}
+
+/*------------------------------------------------------------------------------
+  19.0 - Tools
+------------------------------------------------------------------------------*/
+
+.pressthis {
+	margin: 20px 0;
+}
+
+.pressthis a,
+.pressthis a:hover,
+.pressthis a:focus,
+.pressthis a:active {
+	display: inline-block;
+	position: relative;
+	cursor: move;
+	color: #333;
+	background: #e6e6e6;
+	background-image: -webkit-gradient(linear, left bottom, left top, color-stop(7%, #e6e6e6), color-stop(77%, #d8d8d8));
+	background-image: -webkit-linear-gradient(bottom, #e6e6e6 7%, #d8d8d8 77%);
+	background-image:    -moz-linear-gradient(bottom, #e6e6e6 7%, #d8d8d8 77%);
+	background-image:      -o-linear-gradient(bottom, #e6e6e6 7%, #d8d8d8 77%);
+	background-image: linear-gradient(to top, #e6e6e6 7%, #d8d8d8 77%);
+	-webkit-border-radius: 5px;
+	border-radius: 5px;
+	border: 1px solid #b4b4b4;
+	font-style: normal;
+	line-height: 16px;
+	font-size: 14px;
+	text-decoration: none;
+	text-shadow: 0 1px 0px #fff;
+}
+
+.pressthis a:active {
+	outline: none;
+}
+
+.pressthis a:hover:after {
+	-webkit-transform: skew(20deg) rotate(9deg);
+	-moz-transform: skew(20deg) rotate(9deg);
+	transform: skew(20deg) rotate(9deg);
+	-webkit-box-shadow: 0 10px 8px rgba(0, 0, 0, 0.7);
+	box-shadow: 0 10px 8px rgba(0, 0, 0, 0.7);
+}
+
+.pressthis a span {
+	background: url(../images/press-this.png?v=20120502) no-repeat 0px 5px;
+	background-size: 24px 20px;
+	padding: 8px 11px 8px 27px;
+	margin: 0 5px;
+	display: inline-block;
+}
+
+.pressthis a:after {
+	content: '';
+	width: 70%;
+	height: 55%;
+	z-index: -1;
+	position: absolute;
+	right: 10px;
+	bottom: 9px;
+	background: transparent;
+
+	-webkit-transform: skew(20deg) rotate(6deg);
+	-moz-transform: skew(20deg) rotate(6deg);
+	transform: skew(20deg) rotate(6deg);
+	-webkit-box-shadow: 0 10px 8px rgba(0, 0, 0, 0.6);
+	box-shadow: 0 10px 8px rgba(0, 0, 0, 0.6);
+}
+
+/*------------------------------------------------------------------------------
+  20.0 - Settings
+------------------------------------------------------------------------------*/
+
+#utc-time, #local-time {
+	padding-left: 25px;
+	font-style: italic;
+	font-family: sans-serif;
+}
+
+.defaultavatarpicker .avatar {
+	margin: 2px 0;
+	vertical-align: middle;
+}
+
+.options-general-php .spinner {
+	float: none;
+	margin: -3px 3px;
+}
+
+/*------------------------------------------------------------------------------
+  21.0 - Admin Footer
+------------------------------------------------------------------------------*/
+
+#wpfooter {
+	position: absolute;
+	bottom: 0;
+	left: 0;
+	right: 0;
+	padding: 10px 0;
+	margin-right: 20px;
+	border-top-width: 1px;
+	border-top-style: solid;
+}
+
+#wpfooter p {
+	margin: 0;
+	line-height: 20px;
+}
+
+#wpfooter a {
+	text-decoration: none;
+}
+
+#wpfooter a:hover {
+	text-decoration: underline;
+}
+
+/*------------------------------------------------------------------------------
+  22.0 - About Pages
+------------------------------------------------------------------------------*/
+
+.about-wrap {
+	position: relative;
+	margin: 25px 40px 0 20px;
+	max-width: 1050px; /* readability */
+
+	font-size: 15px;
+}
+
+.about-wrap div.updated,
+.about-wrap div.error {
+	display: none !important;
+}
+
+/* Typography */
+
+.about-wrap p {
+	line-height: 1.6em;
+}
+
+.about-wrap h1 {
+	margin: 0.2em 200px 0 0;
+	line-height: 1.2em;
+	font-size: 2.8em;
+	font-weight: 200;
+}
+
+.about-text,
+.about-description,
+.about-wrap li.wp-person a.web {
+	font-family: "HelveticaNeue-Light", "Helvetica Neue Light", "Helvetica Neue", sans-serif;
+	font-weight: normal;
+	line-height: 1.6em;
+	font-size: 20px;
+}
+
+.about-description {
+	margin-top: 1.4em;
+}
+
+.about-text {
+	margin: 1em 200px 1.4em 0;
+	min-height: 60px;
+	font-size: 24px;
+}
+
+.about-wrap h3 {
+	font-size: 24px;
+	margin-bottom: 1em;
+	padding-top: 20px;
+}
+
+.about-wrap .feature-section {
+	padding-bottom: 20px;
+}
+
+.about-wrap .feature-section h4 {
+	margin-bottom: 0.6em;
+}
+
+.about-wrap .feature-section p {
+	margin-top: 0.6em;
+}
+
+.about-wrap code {
+	font-size: 14px;
+}
+
+/* Point Releases */
+
+.about-wrap .point-releases {
+	margin-top: 5px;
+}
+
+.about-wrap .changelog.point-releases h3 {
+	padding-top: 35px;
+}
+
+.about-wrap .changelog.point-releases h3:first-child {
+	padding-top: 7px;
+}
+
+/* WordPress Version Badge */
+
+.wp-badge {
+	padding-top: 142px;
+	height: 50px;
+	width: 173px;
+	font-weight: bold;
+	font-size: 14px;
+	text-align: center;
+	margin: 0 -5px;
+	background: url('../images/wp-badge.png?ver=20111120') no-repeat;
+}
+
+.about-wrap .wp-badge {
+	position: absolute;
+	top: 0;
+	right: 0;
+}
+
+/* Tabs */
+
+.about-wrap h2.nav-tab-wrapper {
+	padding-left: 6px;
+}
+
+.about-wrap h2 .nav-tab {
+	padding: 4px 10px 6px;
+	margin: 0 3px -1px 0;
+	font-size: 18px;
+	vertical-align: top;
+}
+
+.about-wrap h2 .nav-tab-active {
+	font-weight: bold;
+	padding-top: 3px;
+}
+
+/* Changelog / Update screen */
+
+.about-wrap .feature-section img {
+	border: none;
+	margin: 0 1.94% 10px 0;
+	-webkit-border-radius: 3px;
+	border-radius: 3px;
+}
+
+.about-wrap .feature-section.three-col img {
+	margin: 0.5em 0 0.5em 5px;
+	max-width: 100%;
+	float: none;
+}
+
+.ie8 .about-wrap .feature-section.three-col img {
+	margin-left: 0;
+}
+
+.about-wrap .feature-section.images-stagger-right img {
+	float: right;
+	margin: 0 5px 12px 2em;
+}
+
+.about-wrap .feature-section.images-stagger-left img {
+	float: left;
+	margin: 0 2em 12px 5px;
+}
+
+.about-wrap .feature-section img.image-100 {
+	margin: 0 0 2em 0;
+	width: 100%;
+}
+
+.about-wrap .feature-section img.image-66 {
+	width: 65%;
+}
+
+.about-wrap .feature-section img.image-50 {
+	max-width: 50%;
+}
+
+.about-wrap .feature-section img.image-30 {
+	max-width: 31.2381%;
+}
+
+.ie8 .about-wrap .feature-section img {
+	border-width: 1px;
+	border-style: solid;
+}
+
+.about-wrap .images-stagger-right img.image-30:nth-child(2) {
+	margin-left: 1em;
+}
+
+.about-wrap .feature-section.col {
+	margin-bottom: 0;
+}
+
+.about-wrap .feature-section.col h4 {
+	margin:  0 0 0.6em 0;
+}
+
+.about-wrap .feature-section.col .last-feature {
+	margin-right: 0;
+}
+
+.about-wrap .feature-section.two-col div {
+	width: 47%;
+	margin-right: 4.999999999%;
+	float: left;
+}
+
+.about-wrap .feature-section.three-col div {
+	width: 30%;
+	margin-right: 4.999999999%;
+	float: left;
+}
+
+.about-wrap .three-col-images {
+	text-align: center;
+}
+
+.about-wrap .three-col-images img {
+	margin: 0 0 10px;
+}
+
+.about-wrap .three-col-images .last-feature {
+	float: right;
+}
+
+.about-wrap .three-col-images .first-feature {
+	float: left;
+}
+
+.about-wrap .changelog .feature-section {
+	overflow: hidden;
+	padding-bottom: 0;
+}
+
+.about-wrap .changelog li {
+	list-style-type: disc;
+	margin-left: 3em;
+}
+
+@media only screen and (max-width: 900px) {
+	.about-wrap .feature-section.images-stagger-left img,
+	.about-wrap .feature-section.images-stagger-right img {
+		clear: both;
+	}
+}
+
+@media only screen and (max-width: 768px) {
+	.about-wrap .feature-section img.image-66 {
+		float: none;
+		width: 98%;
+		max-width: 98%;
+	}
+
+	.about-wrap .feature-section.images-stagger-right img.image-66 {
+		margin-left: 3px;
+	}
+
+	.about-wrap .feature-section.images-stagger-left img.image-66 {
+		margin-right: 3px;
+	}
+}
+
+/* Return to Dashboard Home link */
+
+.about-wrap .return-to-dashboard {
+	margin: 30px 0 0 -5px;
+	font-size: 14px;
+	font-weight: bold;
+}
+
+.about-wrap .return-to-dashboard a {
+	text-decoration: none;
+	padding: 0 5px;
+}
+
+/* Credits */
+
+.about-wrap h4.wp-people-group {
+	margin-top: 2.6em;
+	font-size: 16px;
+}
+
+.about-wrap ul.wp-people-group {
+	overflow: hidden;
+	padding: 5px;
+	margin: 0 -15px 0 -5px;
+}
+
+.about-wrap ul.compact {
+	margin-bottom: 0
+}
+
+.about-wrap li.wp-person {
+	float: left;
+	margin-right: 10px;
+}
+
+.about-wrap li.wp-person img.gravatar {
+	float: left;
+	margin: 0 10px 10px 0;
+	padding: 2px;
+	width: 60px;
+	height: 60px;
+}
+
+.about-wrap ul.compact li.wp-person img.gravatar {
+	width: 30px;
+	height: 30px;
+}
+
+.about-wrap li.wp-person {
+	height: 70px;
+	width: 280px;
+	padding-bottom: 15px;
+}
+
+.about-wrap ul.compact li.wp-person {
+	height: auto;
+	width: 180px;
+	padding-bottom: 0;
+	margin-bottom: 0;
+}
+
+.about-wrap #wp-people-group-validators + p.wp-credits-list {
+	margin-top: 0;
+}
+
+.about-wrap li.wp-person a.web {
+	display: block;
+	margin: 6px 0 2px;
+	font-size: 16px;
+	text-decoration: none;
+}
+
+.about-wrap p.wp-credits-list a {
+	white-space: nowrap;
+}
+
+/* Freedoms */
+
+.freedoms-php .about-wrap ol {
+	margin: 40px 60px;
+}
+
+.freedoms-php .about-wrap ol li {
+	list-style-type: decimal;
+	font-weight: bold;
+}
+
+.freedoms-php .about-wrap ol p {
+	font-weight: normal;
+	margin: 0.6em 0;
+}
+
+/*------------------------------------------------------------------------------
+  23.0 - Full Overlay w/ Sidebar
+------------------------------------------------------------------------------*/
+
+body.full-overlay-active {
+	overflow: hidden;
+}
+
+.wp-full-overlay {
+	background: #fff;
+	z-index: 500000;
+	position: fixed;
+	overflow: visible;
+	top: 0;
+	bottom: 0;
+	left: 0;
+	right: 0;
+	height: 100%;
+	min-width: 0;
+}
+
+.wp-full-overlay-sidebar {
+	-webkit-box-sizing: border-box;
+	-moz-box-sizing:    border-box;
+	box-sizing:         border-box;
+
+	position: fixed;
+	width: 300px;
+	height: 100%;
+	top: 0;
+	bottom: 0;
+	left: 0;
+	padding: 0;
+	margin: 0;
+	z-index: 10;
+	overflow: auto;
+	background: #f5f5f5;
+	border-right: 1px solid rgba( 0, 0, 0, 0.2 );
+}
+
+.wp-full-overlay.collapsed .wp-full-overlay-sidebar {
+	overflow: visible;
+}
+
+.wp-full-overlay.collapsed,
+.wp-full-overlay.expanded .wp-full-overlay-sidebar {
+	margin-left: 0 !important;
+}
+
+.wp-full-overlay.expanded {
+	margin-left: 300px;
+}
+
+.wp-full-overlay.collapsed .wp-full-overlay-sidebar {
+	margin-left: -300px;
+}
+
+.wp-full-overlay-sidebar:after {
+	content: '';
+	display: block;
+	position: absolute;
+	top: 0;
+	bottom: 0;
+	right: 0;
+	width: 3px;
+	box-shadow: -5px 0 4px -4px rgba(0, 0, 0, 0.1) inset;
+	z-index: 1000;
+}
+
+.wp-full-overlay-main {
+	position: absolute;
+	left: 0;
+	right: 0;
+	top: 0;
+	bottom: 0;
+	height: 100%;
+}
+
+.wp-full-overlay-sidebar .wp-full-overlay-header {
+	position: absolute;
+	left: 0;
+	right: 0;
+	height: 45px;
+	padding: 0 20px;
+	line-height: 45px;
+	z-index: 10;
+	margin: 0;
+}
+
+.wp-full-overlay-sidebar .wp-full-overlay-header {
+	border-top: 0;
+	border-bottom: 1px solid #fff;
+	box-shadow: inset 0 -1px 0 0px #dfdfdf;
+}
+
+.wp-full-overlay-sidebar .wp-full-overlay-footer {
+	bottom: 0;
+	border-bottom: 0;
+	border-top: 1px solid #dfdfdf;
+	box-shadow: inset 0 1px 0 0px #fff;
+}
+
+.wp-full-overlay-sidebar .wp-full-overlay-sidebar-content {
+	position: absolute;
+	top: 45px;
+	bottom: 45px;
+	left: 0;
+	right: 0;
+	overflow: auto;
+}
+
+/* Close Link */
+.wp-full-overlay .close-full-overlay {
+	text-decoration: none;
+}
+
+/* Collapse Button */
+.wp-full-overlay a.collapse-sidebar {
+	position: absolute;
+	bottom: 12px;
+	left: 0;
+	z-index: 50;
+	display: block;
+	width: 19px;
+	height: 19px;
+	margin-left: 15px;
+	padding: 0;
+	border-radius: 50%;
+	text-decoration: none;
+}
+
+.wp-full-overlay.collapsed .collapse-sidebar {
+	position: absolute;
+	left: 100%;
+}
+
+.wp-full-overlay .collapse-sidebar-arrow {
+	position: absolute;
+	margin-top: 2px;
+	margin-left: 2px;
+	display: block;
+	width: 15px;
+	height: 15px;
+	background: transparent url('../images/arrows.png') no-repeat -1px -73px;
+}
+
+.wp-full-overlay.collapsed .collapse-sidebar-arrow {
+	background-position: -1px -109px;
+}
+
+.wp-full-overlay .collapse-sidebar-label {
+	position: absolute;
+	left: 100%;
+	color: #808080;
+	line-height: 20px;
+	margin-left: 10px;
+}
+
+.wp-full-overlay.collapsed .collapse-sidebar-label {
+	display: none;
+}
+
+.wp-full-overlay .collapse-sidebar:hover .collapse-sidebar-label {
+	color: #666;
+}
+
+/* Animations */
+.wp-full-overlay,
+.wp-full-overlay-sidebar,
+.wp-full-overlay .collapse-sidebar,
+.wp-full-overlay-main {
+	-webkit-transition-property: left, right, top, bottom, width, margin;
+	-moz-transition-property:    left, right, top, bottom, width, margin;
+	-ms-transition-property:     left, right, top, bottom, width, margin;
+	-o-transition-property:      left, right, top, bottom, width, margin;
+	transition-property:         left, right, top, bottom, width, margin;
+
+	-webkit-transition-duration: 0.2s;
+	-moz-transition-duration:    0.2s;
+	-ms-transition-duration:     0.2s;
+	-o-transition-duration:      0.2s;
+	transition-duration:         0.2s;
+}
+
+
+/*------------------------------------------------------------------------------
+  24.0 - Customize Loader
+------------------------------------------------------------------------------*/
+
+.no-customize-support .hide-if-no-customize,
+.customize-support .hide-if-customize,
+.no-customize-support.wp-core-ui .hide-if-no-customize,
+.no-customize-support .wp-core-ui .hide-if-no-customize,
+.customize-support.wp-core-ui .hide-if-customize,
+.customize-support .wp-core-ui .hide-if-customize {
+	display: none;
+}
+
+#customize-container {
+	display: none;
+	background: #fff;
+	z-index: 500000;
+	position: fixed;
+	overflow: visible;
+	top: 0;
+	bottom: 0;
+	left: 0;
+	right: 0;
+	height: 100%;
+}
+
+.customize-active #customize-container {
+	display: block;
+}
+
+.customize-loading #customize-container iframe {
+	opacity: 0;
+}
+
+.customize-loading #customize-container {
+	background: #fff url("../images/wpspin_light.gif") no-repeat fixed center center;
+	background-size: 16px 16px;
+}
+
+#customize-container iframe,
+#theme-installer iframe {
+	height: 100%;
+	width: 100%;
+	z-index: 20;
+
+	-webkit-transition: opacity 0.3s;
+	-moz-transition:    opacity 0.3s;
+	-ms-transition:     opacity 0.3s;
+	-o-transition:      opacity 0.3s;
+	transition:         opacity 0.3s;
+}
+
+#customize-container .collapse-sidebar {
+	bottom: 16px;
+}
+
+#theme-installer {
+	display: none;
+}
+
+#theme-installer.single-theme {
+	display: block;
+}
+
+.install-theme-info {
+	display: none;
+	padding: 10px 20px 20px;
+}
+
+.single-theme .install-theme-info {
+	padding-top: 15px;
+}
+
+#theme-installer .install-theme-info {
+	display: block;
+}
+
+.install-theme-info .theme-install {
+	float: right;
+	margin-top: 18px;
+}
+
+.install-theme-info .theme-name {
+	font-size: 16px;
+	line-height: 24px;
+	margin-bottom: 0;
+}
+
+.install-theme-info .theme-screenshot {
+	margin-top: 15px;
+	width: 258px;
+	border: 1px solid #ccc;
+}
+
+.install-theme-info .theme-details {
+	overflow: hidden;
+}
+
+.theme-details .theme-version {
+	margin: 15px 0;
+	float: left;
+}
+
+.theme-details .star-holder {
+	margin: 14px 0;
+	float: right;
+}
+
+.theme-details .theme-description {
+	float: left;
+	color: #777;
+	line-height: 20px;
+}
+
+/*------------------------------------------------------------------------------
+  25.0 - Misc
+------------------------------------------------------------------------------*/
+
+#excerpt,
+.attachmentlinks {
+	margin: 0;
+	height: 4em;
+	width: 98%;
+}
+
+#template div {
+	margin-right: 190px;
+}
+
+p.pagenav {
+	margin: 0;
+	display: inline;
+}
+
+.pagenav span {
+	font-weight: bold;
+	margin: 0 6px;
+}
+
+.row-title {
+	font-size: 13px !important;
+	font-weight: bold;
+}
+
+.column-author img, .column-username img {
+	float: left;
+	margin-right: 10px;
+	margin-top: 1px;
+}
+
+.row-actions {
+	visibility: hidden;
+	padding: 2px 0 0;
+}
+
+.mobile .row-actions {
+	visibility: visible;
+}
+
+tr:hover .row-actions,
+div.comment-item:hover .row-actions {
+	visibility: visible;
+}
+
+.row-actions-visible {
+	padding: 2px 0 0;
+}
+
+.form-table .pre {
+	padding: 8px;
+	margin: 0;
+}
+
+table.form-table td .updated {
+	font-size: 13px;
+}
+
+.tagchecklist {
+	margin-left: 14px;
+	font-size: 12px;
+	overflow: auto;
+}
+.tagchecklist strong {
+	margin-left: -8px;
+	position: absolute;
+}
+.tagchecklist span {
+	margin-right: 25px;
+	display: block;
+	float: left;
+	font-size: 11px;
+	line-height: 1.8em;
+	white-space: nowrap;
+	cursor: default;
+}
+.tagchecklist span a {
+	margin: 6px 0pt 0pt -9px;
+	cursor: pointer;
+	width: 10px;
+	height: 10px;
+	display: block;
+	float: left;
+	text-indent: -9999px;
+	overflow: hidden;
+	position: absolute;
+}
+
+#poststuff h2 {
+	margin-top: 20px;
+	font-size: 1.5em;
+	margin-bottom: 15px;
+	padding: 0 0 3px;
+	clear: left;
+}
+
+#poststuff h3,
+.metabox-holder h3 {
+	font-size: 15px;
+	font-weight: normal;
+	padding: 7px 10px;
+	margin: 0;
+	line-height: 1;
+}
+
+#poststuff .inside {
+	margin: 6px 0 8px;
+}
+
+#poststuff .inside #parent_id,
+#poststuff .inside #page_template {
+	max-width: 100%;
+}
+
+.inline-edit-row #post_parent,
+.inline-edit-row select[name="page_template"] {
+	max-width: 80%;
+}
+
+.ie8 #poststuff .inside #parent_id,
+.ie8 #poststuff .inside #page_template,
+.ie8 .inline-edit-row #post_parent,
+.ie8 .inline-edit-row select[name="page_template"] {
+	width: 250px;
+}
+
+#post-visibility-select,
+#post-formats-select {
+	line-height: 1.5em;
+	margin-top: 3px;
+}
+
+#poststuff #submitdiv .inside {
+	margin: 0;
+	padding: 0;
+}
+
+#post-body-content {
+	margin-bottom: 20px;
+}
+
+#templateside ul li a {
+	text-decoration: none;
+}
+
+.tool-box .title {
+	margin: 8px 0;
+	font-size: 18px;
+	font-weight: normal;
+	line-height: 24px;
+}
+
+#sidemenu {
+	margin: -30px 15px 0 315px;
+	list-style: none;
+	position: relative;
+	float: right;
+	padding-left: 10px;
+	font-size: 12px;
+}
+
+#sidemenu a {
+	padding: 0 7px;
+	display: block;
+	float: left;
+	line-height: 28px;
+	border-top-width: 1px;
+	border-top-style: solid;
+	border-bottom-width: 1px;
+	border-bottom-style: solid;
+}
+
+#sidemenu li {
+	display: inline;
+	line-height: 200%;
+	list-style: none;
+	text-align: center;
+	white-space: nowrap;
+	margin: 0;
+	padding: 0;
+}
+
+#sidemenu a.current {
+	font-weight: normal;
+	padding-left: 6px;
+	padding-right: 6px;
+	-webkit-border-top-left-radius: 3px;
+	-webkit-border-top-right-radius: 3px;
+	border-top-left-radius: 3px;
+	border-top-right-radius: 3px;
+	border-width: 1px;
+	border-style: solid;
+}
+
+#sidemenu li a .count-0 {
+	display: none;
+}
+
+.plugin-install #description,
+.plugin-install-network #description {
+	width: 60%;
+}
+
+table .vers,
+table .column-visible,
+table .column-rating {
+	text-align: left;
+}
+
+.error-message {
+	color: red;
+	font-weight: bold;
+}
+
+/* Scrollbar fix for bulk upgrade iframe */
+body.iframe {
+	height: 98%;
+}
+
+
+/* - Only used once or twice in all of WP - deprecate for global style
+------------------------------------------------------------------------------*/
+td.media-icon {
+	text-align: center;
+	width: 80px;
+	padding-top: 8px;
+	padding-bottom: 8px;
+}
+
+td.media-icon img {
+	max-width: 80px;
+	max-height: 60px;
+}
+
+#howto {
+	font-size: 11px;
+	margin: 0 5px;
+	display: block;
+}
+
+.importers td {
+	padding-right: 14px;
+}
+
+.importers {
+	font-size: 16px;
+	width: auto;
+}
+
+#namediv table {
+	width: 100%;
+}
+
+#namediv td.first {
+	width: 10px;
+	white-space: nowrap;
+}
+
+#namediv input {
+	width: 98%;
+}
+
+#namediv p {
+	margin: 10px 0;
+}
+
+#submitdiv h3 {
+	margin-bottom: 0 !important;
+}
+
+/* - Used - but could/should be deprecated with a CSS reset
+------------------------------------------------------------------------------*/
+.zerosize {
+	height: 0;
+	width: 0;
+	margin: 0;
+	border: 0;
+	padding: 0;
+	overflow: hidden;
+	position: absolute;
+}
+
+br.clear {
+	height: 2px;
+	line-height: 2px;
+}
+
+.checkbox {
+	border: none;
+	margin: 0;
+	padding: 0;
+}
+
+fieldset {
+	border: 0;
+	padding: 0;
+	margin: 0;
+}
+
+.post-categories {
+	display: inline;
+	margin: 0;
+	padding: 0;
+}
+
+.post-categories li {
+	display: inline;
+}
+
+
+/*-----------------------------------------------------------------------------
+ MERGED
+-------------------------------------------------------------------------------*/
+
+/* dashboard */
+.edit-box {
+	display: none;
+}
+
+h3:hover .edit-box {
+	display: inline;
+}
+
+#dashboard-widgets form .input-text-wrap input {
+	width: 100%;
+}
+
+#dashboard-widgets form .textarea-wrap textarea {
+	width: 100%;
+}
+
+#dashboard-widgets .postbox form .submit {
+	float: none;
+	margin: .5em 0 0;
+	padding: 0;
+	border: none;
+}
+
+#dashboard-widgets-wrap #dashboard-widgets .postbox form .submit #publish {
+	min-width: 0;
+}
+
+#dashboard-widgets a {
+	text-decoration: none;
+}
+
+#dashboard-widgets h3 a {
+	text-decoration: underline;
+}
+
+#dashboard-widgets h3 .postbox-title-action {
+	position: absolute;
+	right: 10px;
+	padding: 0;
+	top: 5px;
+}
+
+.js #dashboard-widgets h3 .postbox-title-action {
+	right: 30px;
+}
+
+#dashboard-widgets h4 {
+	font-weight: normal;
+	font-size: 13px;
+	margin: 0 0 .2em;
+	padding: 0;
+}
+
+/* Right Now */
+#dashboard_right_now p.sub,
+#dashboard_right_now .table, #dashboard_right_now .versions {
+	margin: -12px;
+}
+
+#dashboard_right_now .inside {
+	font-size: 12px;
+	padding-top: 20px;
+}
+
+#dashboard_right_now p.sub {
+	padding: 5px 0 15px;
+	color: #8f8f8f;
+	font-size: 14px;
+	position: absolute;
+	top: -17px;
+	left: 15px;
+}
+
+#dashboard_right_now .table {
+	margin: 0;
+	padding: 0;
+	position: relative;
+}
+
+#dashboard_right_now .table_content {
+	float: left;
+	border-top-width: 1px;
+	border-top-style: solid;
+	width: 45%;
+}
+
+#dashboard_right_now .table_discussion {
+	float: right;
+	border-top-width: 1px;
+	border-top-style: solid;
+	width: 45%;
+}
+
+#dashboard_right_now table td {
+	padding: 3px 0;
+	white-space: nowrap;
+}
+
+#dashboard_right_now table tr.first td {
+	border-top: none;
+}
+
+#dashboard_right_now td.b {
+	padding-right: 6px;
+	text-align: right;
+	font-size: 14px;
+	width: 1%;
+}
+
+#dashboard_right_now td.b a {
+	font-size: 18px;
+}
+
+#dashboard_right_now td.b a:hover {
+	color: #d54e21;
+}
+
+#dashboard_right_now .t {
+	font-size: 12px;
+	padding-right: 12px;
+	padding-top: 6px;
+	color: #777;
+}
+
+#dashboard_right_now .t a {
+	white-space: nowrap;
+}
+
+#dashboard_right_now .spam {
+	color: red;
+}
+
+#dashboard_right_now .waiting {
+	color: #e66f00;
+}
+
+#dashboard_right_now .approved {
+	color: green;
+}
+
+#dashboard_right_now .versions {
+	padding: 6px 10px 12px;
+	clear: both;
+}
+
+#dashboard_right_now a.button {
+	float: right;
+	clear: right;
+	position: relative;
+	top: -5px;
+}
+
+/* Recent Comments */
+#dashboard_recent_comments h3 {
+	margin-bottom: 0;
+}
+
+#dashboard_recent_comments .inside {
+	margin-top: 0;
+}
+
+#dashboard_recent_comments .comment-meta .approve {
+	font-style: italic;
+	font-family: sans-serif;
+	font-size: 10px;
+}
+
+#dashboard_recent_comments .subsubsub {
+	float: none;
+	white-space: normal;
+}
+
+#the-comment-list {
+	position: relative;
+}
+
+#the-comment-list .comment-item {
+	padding: 1em 10px;
+	border-top: 1px solid;
+}
+
+#the-comment-list .pingback {
+	padding-left: 9px !important;
+}
+
+#the-comment-list .comment-item,
+#the-comment-list #replyrow {
+	margin: 0 -10px;
+}
+
+#the-comment-list .comment-item:first-child {
+	border-top: none;
+}
+
+#the-comment-list .comment-item .avatar {
+	float: left;
+	margin: 0 10px 5px 0;
+}
+
+#the-comment-list .comment-item h4 {
+	line-height: 1.7em;
+	margin-top: -0.4em;
+	color: #777;
+}
+
+#the-comment-list .comment-item h4 cite {
+	font-style: normal;
+	font-weight: normal;
+}
+
+#the-comment-list .comment-item blockquote,
+#the-comment-list .comment-item blockquote p {
+	margin: 0;
+	padding: 0;
+	display: inline;
+}
+
+#dashboard_recent_comments #the-comment-list .trackback blockquote,
+#dashboard_recent_comments #the-comment-list .pingback blockquote {
+	display: block;
+}
+
+#the-comment-list .comment-item p.row-actions {
+	margin: 3px 0 0;
+	padding: 0;
+	font-size: 12px;
+}
+
+/* QuickPress */
+.no-js #dashboard_quick_press {
+	display: none;
+}
+
+#dashboard_quick_press .easy-blogging {
+	padding: 0 8px;
+	text-align: left;
+}
+
+#dashboard_quick_press .input-text-wrap {
+	position: relative;
+}
+
+#dashboard_quick_press .prompt {
+	color: #bbb;
+	position: absolute;
+}
+
+#dashboard_quick_press div.updated  {
+	padding: 0 5px;
+}
+
+#title-wrap label,
+#tags-input-wrap label {
+	cursor: text;
+}
+
+#title-wrap #title {
+	padding: 2px 6px;
+	font-size: 1.3em;
+	line-height: 100%;
+	outline: none;
+}
+
+#tags-input-wrap #tags-input {
+	outline: none;
+}
+
+#title-wrap #title-prompt-text {
+	font-size: 1.3em;
+	padding: 5px 8px;
+}
+
+#tags-input-wrap #tags-input-prompt-text {
+	font-size: 1em;
+	padding: 4px 8px;
+}
+
+#dashboard_quick_press .input-text-wrap,
+#dashboard_quick_press .textarea-wrap {
+	margin: 0 0 1em 0;
+}
+
+#dashboard_quick_press .wp-media-buttons {
+	margin: 0 0 .2em 1px;
+	padding: 0;
+}
+
+#dashboard_quick_press .wp-media-buttons a {
+	color: #777;
+}
+
+#dashboard-widgets #dashboard_quick_press form p.submit input {
+	float: left;
+}
+
+#dashboard-widgets #dashboard_quick_press form p.submit #save-post {
+	margin: 0 0.7em 0 1px;
+}
+
+#dashboard-widgets #dashboard_quick_press form p.submit #publish {
+	float: right;
+}
+
+#dashboard-widgets #dashboard_quick_press form p.submit .spinner {
+	vertical-align: middle;
+	margin: 4px 6px 0 0;
+}
+
+/* Recent Drafts */
+#dashboard_recent_drafts ul,
+#dashboard_recent_drafts p {
+	margin: 0;
+	padding: 0;
+	word-wrap: break-word;
+}
+
+#dashboard_recent_drafts ul {
+	list-style: none;
+}
+
+#dashboard_recent_drafts ul li {
+	margin-bottom: 1em;
+}
+
+#dashboard_recent_drafts h4 {
+	line-height: 1.7em;
+	word-wrap: break-word;
+}
+
+#dashboard_recent_drafts h4 abbr {
+	font-weight: normal;
+	font-family: sans-serif;
+	font-size: 12px;
+	color: #999;
+	margin-left: 3px;
+}
+
+/* Feeds */
+.rss-widget ul {
+	margin: 0;
+	padding: 0;
+	list-style: none;
+}
+
+a.rsswidget {
+	font-size: 13px;
+	line-height: 1.7em;
+}
+
+.rss-widget ul li {
+	line-height: 1.5em;
+	margin-bottom: 12px;
+}
+
+.rss-widget span.rss-date {
+	color: #999;
+	font-size: 12px;
+	margin-left: 3px;
+}
+
+.rss-widget cite {
+	display: block;
+	text-align: right;
+	margin: 0 0 1em;
+	padding: 0;
+}
+
+.rss-widget cite:before {
+	content: '\2014';
+}
+
+/* Plugins */
+#dashboard_plugins h4 {
+	line-height: 1.7em;
+}
+
+#dashboard_plugins h5 {
+	font-weight: normal;
+	font-size: 13px;
+	margin: 0;
+	display: inline;
+	line-height: 1.4em;
+}
+
+#dashboard_plugins h5 a {
+	line-height: 1.4em;
+}
+
+#dashboard_plugins .inside span {
+	font-size: 12px;
+	padding-left: 5px;
+}
+
+#dashboard_plugins p {
+	margin: 0.3em 0 1.4em;
+	line-height: 1.4em;
+}
+
+.dashboard-comment-wrap {
+	overflow: hidden;
+	word-wrap: break-word;
+}
+
+/* Browser Nag */
+#dashboard_browser_nag a.update-browser-link {
+	font-size: 1.2em;
+	font-weight: bold;
+}
+
+#dashboard_browser_nag a {
+	text-decoration: underline;
+}
+
+#dashboard_browser_nag p.browser-update-nag.has-browser-icon {
+	padding-right: 125px;
+}
+
+#dashboard_browser_nag .browser-icon {
+	margin-top: -35px;
+}
+
+#dashboard_browser_nag.postbox.browser-insecure {
+	background-color: #ac1b1b;
+	border-color: #ac1b1b;
+}
+
+#dashboard_browser_nag.postbox {
+	background-color: #e29808;
+	background-image: none;
+	border-color: #edc048;
+	color: #fff;
+	-webkit-box-shadow: none;
+	box-shadow: none;
+}
+
+#dashboard_browser_nag.postbox.browser-insecure h3 {
+	border-bottom-color: #cd5a5a;
+	color: #fff;
+}
+
+#dashboard_browser_nag.postbox h3 {
+	border-bottom-color: #f6e2ac;
+	text-shadow: none;
+	background: transparent none;
+	color: #fff;
+	-webkit-box-shadow: none;
+	box-shadow: none;
+}
+
+#dashboard_browser_nag a {
+	color: #fff;
+}
+
+#dashboard_browser_nag.browser-insecure a.browse-happy-link,
+#dashboard_browser_nag.browser-insecure a.update-browser-link {
+	text-shadow: #871b15 0 1px 0;
+}
+
+#dashboard_browser_nag a.browse-happy-link,
+#dashboard_browser_nag a.update-browser-link {
+	text-shadow: #d29a04 0 1px 0;
+}
+
+
+/* login */
+
+.login * {
+	margin: 0;
+	padding: 0;
+}
+
+.login form {
+	margin-left: 8px;
+	padding: 26px 24px 46px;
+	font-weight: normal;
+	background: #fff;
+	border: 1px solid #e5e5e5;
+	-webkit-box-shadow: rgba(200, 200, 200, 0.7) 0px 4px 10px -1px;
+	box-shadow: rgba(200, 200, 200, 0.7) 0px 4px 10px -1px;
+}
+
+.login form .forgetmenot {
+	font-weight: normal;
+	float: left;
+	margin-bottom: 0;
+}
+
+.login .button-primary {
+	float: right;
+}
+
+#login form p {
+	margin-bottom: 0;
+}
+
+#login form p.submit {
+	padding: 0;
+}
+
+.login label {
+	color: #777;
+	font-size: 14px;
+}
+
+.login form .forgetmenot label {
+	font-size: 12px;
+	line-height: 19px;
+}
+
+.login h1 a {
+	background-image: url('../images/wordpress-logo.png?ver=20120216');
+	background-size: 274px 63px;
+	background-position: top center;
+	background-repeat: no-repeat;
+	width: 326px;
+	height: 67px;
+	text-indent: -9999px;
+	outline: none;
+	overflow: hidden;
+	padding-bottom: 15px;
+	display: block;
+}
+
+#login {
+	width: 320px;
+	padding: 114px 0 0;
+	margin: auto;
+}
+
+#login_error,
+.login .message {
+	margin: 0 0 16px 8px;
+	padding: 12px;
+}
+
+.login #nav,
+.login #backtoblog {
+	text-shadow: #fff 0 1px 0;
+	margin: 0 0 0 16px;
+	padding: 16px 16px 0;
+}
+
+#backtoblog {
+	padding: 12px 16px 0;
+}
+
+.login form .input,
+.login input[type="text"] {
+	color: #555;
+	font-weight: 200;
+	font-size: 24px;
+	line-height: 1;
+	width: 100%;
+	padding: 3px;
+	margin-top: 2px;
+	margin-right: 6px;
+	margin-bottom: 16px;
+	border: 1px solid #e5e5e5;
+	background: #fbfbfb;
+	outline: none;
+	-webkit-box-shadow: inset 1px 1px 2px rgba(200, 200, 200, 0.2);
+	box-shadow: inset 1px 1px 2px rgba(200, 200, 200, 0.2);
+}
+
+.login #pass-strength-result {
+	width: 250px;
+	font-weight: bold;
+	border-style: solid;
+	border-width: 1px;
+	margin: 12px 0 6px;
+	padding: 6px 5px;
+	text-align: center;
+}
+
+.mobile #login {
+	padding: 20px 0;
+}
+
+.mobile #login form,
+.mobile #login .message,
+.mobile #login_error {
+	margin-left: 0;
+}
+
+.mobile #login #nav,
+.mobile #login #backtoblog {
+	margin-left: 8px;
+}
+
+.mobile #login h1 a {
+	width: auto;
+}
+
+
+/* ms */
+/* Dashboard: MS Specific Data */
+#dashboard_right_now p.musub {
+	margin-top: 12px;
+	border-top: 1px solid #ececec;
+	padding-left: 16px;
+	position: static;
+}
+
+.rtl #dashboard_right_now p.musub {
+	padding-left: 0;
+	padding-right: 16px;
+}
+
+#dashboard_right_now td.b a.musublink {
+	font-size: 16px;
+}
+
+#dashboard_right_now div.musubtable {
+	border-top: none;
+}
+
+#dashboard_right_now div.musubtable .t {
+	white-space: normal;
+}
+
+/* Background Color for Site Status */
+.wp-list-table .site-deleted {
+	background: #ff8573;
+}
+.wp-list-table .site-spammed {
+	background: #faafaa;
+}
+.wp-list-table .site-archived {
+	background: #ffebe8;
+}
+.wp-list-table .site-mature {
+	background: #fecac2;
+}
+
+/* nav-menu */
+
+#nav-menus-frame {
+	margin-left: 300px;
+}
+
+#wpbody-content #menu-settings-column {
+	display:inline;
+	width:281px;
+	margin-left: -300px;
+	clear: both;
+	float: left;
+	padding-top: 24px;
+}
+
+.no-js #wpbody-content #menu-settings-column {
+	padding-top: 31px;
+}
+
+#menu-settings-column .inside {
+	clear: both;
+	margin: 10px 0 0;
+}
+
+.metabox-holder-disabled .postbox {
+	opacity: 0.5;
+	filter: alpha(opacity=50);
+}
+
+.metabox-holder-disabled .button-controls .select-all {
+	display: none;
+}
+
+#wpbody {
+	position: relative;
+}
+
+/* Menu Container */
+#menu-management-liquid {
+	float: left;
+	min-width: 100%;
+}
+
+#menu-management {
+	position: relative;
+	margin-right: 20px;
+	margin-top: -3px;
+	width: 100%;
+}
+
+#menu-management .menu-edit {
+	margin-bottom: 20px;
+}
+
+.nav-menus-php #post-body {
+	padding: 10px;
+	border-width: 1px 0;
+	border-style: solid;
+}
+
+#nav-menu-header,
+#nav-menu-footer {
+	padding: 0 10px;
+}
+
+#nav-menu-header {
+	border-bottom: 1px solid;
+}
+
+#nav-menu-footer {
+	border-top: 1px solid;
+}
+
+.nav-menus-php #post-body div.updated,
+.nav-menus-php #post-body div.error {
+	margin: 0;
+}
+
+.nav-menus-php #post-body-content {
+	position: relative;
+	float: none;
+}
+
+#menu-management .menu-add-new abbr {
+	font-weight:bold;
+}
+
+/* Menu Tabs */
+
+#menu-management .nav-tabs-nav {
+	margin: 0 20px;
+}
+
+#menu-management .nav-tabs-arrow {
+	width: 10px;
+	padding: 0 5px 4px;
+	cursor: pointer;
+	position: absolute;
+	top: 0;
+	line-height: 22px;
+	font-size: 18px;
+	text-shadow: 0 1px 0 #fff;
+}
+
+#menu-management .nav-tabs-arrow-left {
+	left: 0;
+}
+
+#menu-management .nav-tabs-arrow-right {
+	right: 0;
+	text-align: right;
+}
+
+#menu-management .nav-tabs-wrapper {
+	width: 100%;
+	height: 28px;
+	margin-bottom: -1px;
+	overflow: hidden;
+}
+
+#menu-management .nav-tabs {
+	padding-left: 20px;
+	padding-right: 10px;
+}
+
+.js #menu-management .nav-tabs {
+	float: left;
+	margin-left: 0px;
+	margin-right: -400px;
+}
+
+#menu-management .nav-tab {
+	margin-bottom: 0;
+	font-size: 14px;
+}
+
+#select-nav-menu-container {
+	text-align: right;
+	padding: 0 10px 3px 10px;
+	margin-bottom: 5px;
+}
+
+#select-nav-menu {
+	width: 100px;
+	display: inline;
+}
+
+#menu-name-label {
+	margin-top: -2px;
+}
+
+#wpbody .open-label {
+	display: block;
+	float:left;
+}
+
+#wpbody .open-label span {
+	padding-right: 10px;
+}
+
+.js .input-with-default-title {
+	font-style: italic;
+}
+
+#menu-management .inside {
+	padding: 0 10px;
+}
+
+/* Add Menu Item Boxes */
+.postbox .howto input {
+	width: 180px;
+	float: right;
+}
+
+.customlinkdiv .howto input {
+	width: 200px;
+}
+
+#nav-menu-theme-locations .howto select {
+	width: 100%;
+}
+
+#nav-menu-theme-locations .button-controls {
+	text-align: right;
+}
+
+.add-menu-item-view-all {
+	height: 400px;
+}
+
+/* Button Primary Actions */
+#menu-container .submit {
+	margin: 0px 0px 10px;
+	padding: 0px;
+}
+
+.nav-menus-php .meta-sep,
+.nav-menus-php .submitdelete,
+.nav-menus-php .submitcancel {
+	display: block;
+	float: left;
+	margin: 4px 0;
+	line-height: 15px;
+}
+
+.meta-sep {
+	padding: 0 2px;
+}
+
+#cancel-save {
+	text-decoration: underline;
+	font-size: 12px;
+	margin-left: 20px;
+	margin-top: 5px;
+}
+
+.button.right, .button-secondary.right, .button-primary.right {
+	float: right;
+}
+
+/* Button Secondary Actions */
+.list-controls {
+	float: left;
+	margin-top: 5px;
+}
+
+.add-to-menu {
+	float: right;
+}
+
+.postbox .spinner {
+	display: none;
+	vertical-align: middle;
+}
+
+.button-controls {
+	clear:both;
+	margin: 10px 0;
+}
+
+.show-all,
+.hide-all {
+	cursor: pointer;
+}
+
+.hide-all {
+	display: none;
+}
+
+/* Create Menu */
+#menu-name {
+	width: 270px;
+}
+
+#manage-menu .inside {
+	padding: 0px 0px;
+}
+
+/* Custom Links */
+#available-links dt {
+	display: block;
+}
+
+#add-custom-link .howto {
+	font-size: 12px;
+}
+
+#add-custom-link label span {
+	display: block;
+	float: left;
+	margin-top: 5px;
+	padding-right: 5px;
+}
+
+.menu-item-textbox {
+	width: 180px;
+}
+
+.nav-menus-php .howto span {
+	margin-top: 4px;
+	display: block;
+	float: left;
+}
+
+/* Menu item types */
+.quick-search {
+	width: 190px;
+}
+
+.nav-menus-php .list-wrap {
+	display: none;
+	clear: both;
+	margin-bottom: 10px;
+}
+
+.nav-menus-php .list-container {
+	max-height: 200px;
+	overflow-y: auto;
+	padding: 10px 10px 5px;
+}
+
+.nav-menus-php .postbox p.submit {
+	margin-bottom: 0;
+}
+
+/* Listings */
+.nav-menus-php .list li {
+	display: none;
+	margin: 0;
+	margin-bottom: 5px;
+}
+
+.nav-menus-php .list li .menu-item-title {
+	cursor: pointer;
+	display: block;
+}
+
+.nav-menus-php .list li .menu-item-title input {
+	margin-right: 3px;
+	margin-top: -3px;
+}
+
+/* Nav Menu */
+#menu-container .inside {
+	padding-bottom: 10px;
+}
+
+.menu {
+	padding-top:1em;
+}
+
+#menu-to-edit {
+	padding: 1em 0;
+}
+
+.menu ul {
+	width: 100%;
+}
+
+.menu li {
+	margin-bottom: 0;
+	position:relative;
+}
+
+.menu-item-bar {
+	clear:both;
+	line-height:1.5em;
+	position:relative;
+	margin: 13px 0 0 0;
+}
+
+.menu-item-handle {
+	border: 1px solid #dfdfdf;
+	position: relative;
+	padding-left: 10px;
+	height: auto;
+	width: 400px;
+	line-height: 35px;
+	text-shadow: 0 1px 0 #FFFFFF;
+	overflow: hidden;
+	word-wrap: break-word;
+}
+
+#menu-to-edit .menu-item-invalid .menu-item-handle {
+	background: #f6c9cc;
+	background-image: -webkit-gradient(linear, left bottom, left top, from(#f6c9cc), to(#fdf8ff));
+	background-image: -webkit-linear-gradient(bottom, #f6c9cc, #fdf8ff);
+	background-image:    -moz-linear-gradient(bottom, #f6c9cc, #fdf8ff);
+	background-image:      -o-linear-gradient(bottom, #f6c9cc, #fdf8ff);
+	background-image: linear-gradient(to top, #f6c9cc, #fdf8ff);
+}
+
+.menu-item-edit-active .menu-item-handle {
+	-webkit-border-bottom-right-radius: 0;
+	-webkit-border-bottom-left-radius: 0;
+	border-bottom-right-radius: 0;
+	border-bottom-left-radius: 0;
+}
+
+.no-js .menu-item-edit-active .item-edit {
+	display: none;
+}
+
+.js .menu-item-handle {
+	cursor: move;
+}
+
+.menu li.deleting .menu-item-handle {
+	background-image: none;
+	text-shadow: 0 0 0;
+}
+
+.menu-item-handle .item-title {
+	font-size: 12px;
+	font-weight: bold;
+	padding: 7px 0;
+	line-height: 20px;
+	display:block;
+	margin-right:13em;
+}
+
+/* Sortables */
+li.menu-item.ui-sortable-helper dl {
+	margin-top: 0;
+}
+
+li.menu-item.ui-sortable-helper .menu-item-transport dl {
+	margin-top: 13px;
+}
+
+.menu .sortable-placeholder {
+	height: 35px;
+	width: 410px;
+	margin-top: 13px;
+}
+
+/* WARNING: The factor of 30px is hardcoded into the nav-menus javascript. */
+.menu-item-depth-0 { margin-left: 0px; }
+.menu-item-depth-1 { margin-left: 30px; }
+.menu-item-depth-2 { margin-left: 60px; }
+.menu-item-depth-3 { margin-left: 90px; }
+.menu-item-depth-4 { margin-left: 120px; }
+.menu-item-depth-5 { margin-left: 150px; }
+.menu-item-depth-6 { margin-left: 180px; }
+.menu-item-depth-7 { margin-left: 210px; }
+.menu-item-depth-8 { margin-left: 240px; }
+.menu-item-depth-9 { margin-left: 270px; }
+.menu-item-depth-10 { margin-left: 300px; }
+.menu-item-depth-11 { margin-left: 330px; }
+
+.menu-item-depth-0 .menu-item-transport { margin-left: 0px; }
+.menu-item-depth-1 .menu-item-transport { margin-left: -30px; }
+.menu-item-depth-2 .menu-item-transport { margin-left: -60px; }
+.menu-item-depth-3 .menu-item-transport { margin-left: -90px; }
+.menu-item-depth-4 .menu-item-transport { margin-left: -120px; }
+.menu-item-depth-5 .menu-item-transport { margin-left: -150px; }
+.menu-item-depth-6 .menu-item-transport { margin-left: -180px; }
+.menu-item-depth-7 .menu-item-transport { margin-left: -210px; }
+.menu-item-depth-8 .menu-item-transport { margin-left: -240px; }
+.menu-item-depth-9 .menu-item-transport { margin-left: -270px; }
+.menu-item-depth-10 .menu-item-transport { margin-left: -300px; }
+.menu-item-depth-11 .menu-item-transport { margin-left: -330px; }
+
+body.menu-max-depth-0 { min-width: 950px !important; }
+body.menu-max-depth-1 { min-width: 980px !important; }
+body.menu-max-depth-2 { min-width: 1010px !important; }
+body.menu-max-depth-3 { min-width: 1040px !important; }
+body.menu-max-depth-4 { min-width: 1070px !important; }
+body.menu-max-depth-5 { min-width: 1100px !important; }
+body.menu-max-depth-6 { min-width: 1130px !important; }
+body.menu-max-depth-7 { min-width: 1160px !important; }
+body.menu-max-depth-8 { min-width: 1190px !important; }
+body.menu-max-depth-9 { min-width: 1220px !important; }
+body.menu-max-depth-10 { min-width: 1250px !important; }
+body.menu-max-depth-11 { min-width: 1280px !important; }
+
+/* Menu item controls */
+.item-type {
+	font-size: 12px;
+	padding-right: 10px;
+}
+
+.item-controls {
+	font-size: 12px;
+	position: absolute;
+	right: 20px;
+	top: -1px;
+}
+
+.item-controls a {
+	text-decoration: none;
+}
+
+.item-controls a:hover {
+	cursor: pointer;
+}
+
+.item-controls .item-order {
+	padding-right: 10px;
+}
+
+.nav-menus-php .item-edit {
+	position: absolute;
+	right: -20px;
+	top: 0;
+	display: block;
+	width: 30px;
+	height: 36px;
+	overflow: hidden;
+	text-indent:-999em;
+	border-bottom: 1px solid;
+	-webkit-border-bottom-left-radius: 3px;
+	border-bottom-left-radius: 3px;
+}
+
+/* Menu editing */
+.menu-instructions-inactive {
+	display: none;
+}
+
+.menu-item-settings {
+	display: block;
+	width: 400px;
+	padding: 10px 0 10px 10px;
+	border: solid;
+	border-width: 0 1px 1px 1px;
+	-webkit-border-bottom-right-radius: 3px;
+	-webkit-border-bottom-left-radius: 3px;
+	border-bottom-left-radius: 3px;
+	border-bottom-right-radius: 3px;
+}
+
+.menu-item-edit-active .menu-item-settings {
+	display: block;
+}
+
+.menu-item-edit-inactive .menu-item-settings {
+	display: none;
+}
+
+.add-menu-item-pagelinks {
+	margin: .5em auto;
+	text-align: center;
+}
+
+.link-to-original {
+	display: block;
+	margin: 0 0 10px;
+	padding: 3px 5px 5px;
+	font-size: 12px;
+	font-style: italic;
+}
+
+.link-to-original a {
+	padding-left: 4px;
+	font-style: normal;
+}
+
+.hidden-field {
+	display: none;
+}
+
+.menu-item-settings .description-thin,
+.menu-item-settings .description-wide {
+	margin-right: 10px;
+	float: left;
+}
+
+.description-thin {
+	width: 190px;
+	height: 40px;
+}
+
+.description-wide {
+	width: 390px;
+}
+
+.menu-item-actions {
+	padding-top: 15px;
+}
+
+#cancel-save {
+	cursor: pointer;
+}
+
+/* Major/minor publishing actions (classes) */
+.nav-menus-php .major-publishing-actions {
+	clear: both;
+	padding: 3px 0 5px;
+}
+
+.nav-menus-php .major-publishing-actions .publishing-action {
+	text-align: right;
+	float: right;
+	line-height: 23px;
+	margin: 5px 0 1px;
+}
+
+.nav-menus-php .major-publishing-actions .delete-action {
+	vertical-align: middle;
+	text-align: left;
+	float: left;
+	padding-right: 15px;
+	margin-top: 5px;
+}
+
+.menu-name-label span,
+.auto-add-pages label {
+	font-size: 12px;
+	font-style: normal;
+}
+
+.menu-name-label {
+	margin-right: 15px;
+}
+
+.auto-add-pages input {
+	margin-top: 0;
+}
+
+.auto-add-pages {
+	margin-top: 4px;
+	float: left;
+}
+
+.nav-menus-php .submitbox .submitcancel {
+	border-bottom: 1px solid;
+	padding: 1px 2px;
+	text-decoration: none;
+}
+
+.nav-menus-php .major-publishing-actions .form-invalid {
+	padding-left: 4px;
+	margin-left: -4px;
+	border: 0 none;
+}
+
+/* Clearfix */
+#menu-item-name-wrap:after,
+#menu-item-url-wrap:after,
+#menu-name-label:after,
+#menu-settings-column .inside:after,
+#nav-menus-frame:after,
+.nav-menus-php #post-body-content:after,
+.nav-menus-php .button-controls:after,
+.nav-menus-php .major-publishing-actions:after,
+.nav-menus-php .menu-item-settings:after {
+	clear: both;
+	content: ".";
+	display: block;
+	height: 0;
+	visibility: hidden;
+}
+
+#nav-menus-frame,
+.button-controls,
+#menu-item-url-wrap,
+#menu-item-name-wrap {
+	display: block;
+}
+
+/* Star ratings */
+div.star-holder {
+	position: relative;
+	height: 17px;
+	width: 100px;
+	background: url('../images/stars.png?ver=20121108') repeat-x bottom left;
+}
+
+div.star-holder .star-rating {
+	background: url('../images/stars.png?ver=20121108') repeat-x top left;
+	height: 17px;
+	float: left;
+}
+
+div.action-links {
+	font-weight: normal;
+	margin: 6px 0 0;
+}
+
+/* Header on thickbox */
+#plugin-information-header {
+	margin: 0;
+	padding: 0 5px;
+	font-weight: bold;
+	position: relative;
+	border-bottom-width: 1px;
+	border-bottom-style: solid;
+	height: 2.5em;
+}
+#plugin-information ul#sidemenu {
+	font-weight: normal;
+	margin: 0 5px;
+	position: absolute;
+	left: 0;
+	bottom: -1px;
+}
+
+/* Install sidemenu */
+#plugin-information p.action-button {
+	width: 100%;
+	padding-bottom: 0;
+	margin-bottom: 0;
+	margin-top: 10px;
+	-webkit-border-top-left-radius: 3px;
+	-webkit-border-bottom-left-radius: 3px;
+	border-top-left-radius: 3px;
+	border-bottom-left-radius: 3px;
+}
+
+#plugin-information .action-button a {
+	text-align: center;
+	font-weight: bold;
+	text-decoration: none;
+	display: block;
+	line-height: 2em;
+}
+
+#plugin-information h2 {
+	clear: none !important;
+	margin-right: 200px;
+}
+
+#plugin-information .fyi {
+	margin: 0 10px 50px;
+	width: 210px;
+}
+
+#plugin-information .fyi h2 {
+	font-size: 0.9em;
+	margin-bottom: 0;
+	margin-right: 0;
+}
+
+#plugin-information .fyi h2.mainheader {
+	padding: 5px;
+	-webkit-border-top-left-radius: 3px;
+	border-top-left-radius: 3px;
+}
+
+#plugin-information .fyi ul {
+	padding: 10px 5px 10px 7px;
+	margin: 0;
+	list-style: none;
+	-webkit-border-bottom-left-radius: 3px;
+	border-bottom-left-radius: 3px;
+}
+
+#plugin-information .fyi li {
+	margin-right: 0;
+}
+
+#plugin-information #section-holder {
+	padding: 10px;
+}
+
+#plugin-information .section ul,
+#plugin-information .section ol {
+	margin-left: 16px;
+	list-style-type: square;
+	list-style-image: none;
+}
+
+#plugin-information #section-screenshots ol {
+	list-style: none;
+	margin: 0;
+}
+
+#plugin-information #section-screenshots li img {
+	vertical-align: text-top;
+	max-width: 100%;
+	width: auto;
+	height: auto;
+}
+
+#plugin-information #section-screenshots li p {
+	font-style: italic;
+	padding-left: 20px;
+	padding-bottom: 2em;
+}
+
+#plugin-information #section-screenshots ol,
+#plugin-information .updated,
+#plugin-information pre {
+	margin-right: 215px;
+}
+
+#plugin-information pre {
+	padding: 7px;
+	overflow: auto;
+}
+
+/* press-this */
+body.press-this {
+	color: #333;
+	margin: 0;
+	padding: 0;
+	min-width: 675px;
+	min-height: 400px;
+}
+
+img {
+	border: none;
+}
+
+/* Header */
+.press-this #wphead {
+	height: 32px;
+	margin-left: 0;
+	margin-right: 0;
+	margin-bottom: 5px;
+}
+
+.press-this #header-logo {
+	float: left;
+	margin: 7px 7px 0;
+	-webkit-user-select: none;
+	-moz-user-select: none;
+	user-select: none;
+}
+
+.press-this #wphead h1 {
+	font-weight: normal;
+	font-size: 16px;
+	line-height: 32px;
+	margin: 0;
+	float: left;
+}
+
+.press-this #wphead h1 a {
+	text-decoration: none;
+}
+
+.press-this #wphead h1 a:hover {
+	text-decoration: underline;
+}
+
+.press-this #message {
+	margin: 10px 0;
+}
+
+.press-this-sidebar {
+	float: right;
+	width: 200px;
+	padding-top: 10px;
+}
+
+.press-this #title {
+	margin-left: 0;
+	margin-right: 0;
+	-moz-box-sizing: border-box;
+	-webkit-box-sizing: border-box;
+	-ms-box-sizing: border-box;
+	box-sizing: border-box;
+}
+
+.press-this .tagchecklist span a {
+	background: transparent url(../images/xit.gif) no-repeat 0 0;
+}
+
+.press-this #titlediv {
+	margin: 0;
+}
+
+.press-this .wp-media-buttons {
+	cursor: default;
+	padding: 8px 8px 0;
+}
+
+.press-this .howto {
+	margin-top: 2px;
+	margin-bottom: 3px;
+	font-size: 12px;
+	font-style: italic;
+	display: block;
+}
+
+/* Editor/Main Column */
+.press-this #poststuff {
+	margin: 0 10px 10px;
+	padding: 0;
+}
+
+.press-this #photo-add-url-div input[type="text"] {
+	width: 220px;
+}
+
+#poststuff #editor-toolbar {
+	height: 30px;
+}
+
+div.zerosize {
+	border: 0 none;
+	height: 0;
+	margin: 0;
+	overflow: hidden;
+	padding: 0;
+	width: 0;
+}
+
+.posting {
+	margin-right: 212px;
+	position: relative;
+}
+
+.press-this .inner-sidebar {
+	width: 200px;
+}
+
+.press-this .inner-sidebar .sleeve {
+	padding-top: 5px;
+}
+
+.press-this #submitdiv p {
+	margin: 0;
+	padding: 6px;
+}
+
+.press-this #submitdiv #publishing-actions {
+	border-bottom: 1px solid #dfdfdf;
+}
+
+.press-this #publish {
+	float: right;
+}
+
+.press-this #poststuff h2,
+.press-this #poststuff h3 {
+	font-size: 14px;
+	line-height: 1;
+}
+
+.press-this #tagsdiv-post_tag h3,
+.press-this #categorydiv h3 {
+	cursor: pointer;
+}
+
+.press-this #submitdiv h3 {
+	cursor: default;
+}
+
+h3.tb {
+	text-shadow: 0 1px 0 #fff;
+	font-weight: bold;
+	font-size: 12px;
+	margin-left: 5px;
+}
+
+#TB_window {
+	border: 1px solid #333;
+}
+
+.press-this .postbox,
+.press-this .stuffbox {
+	margin-bottom: 10px;
+	min-width: 0;
+}
+
+.js .postbox:hover .handlediv,
+.js .stuffbox:hover .handlediv {
+	background: transparent url(../images/arrows.png) no-repeat 6px 7px;
+}
+
+.press-this #submitdiv:hover .handlediv {
+	background: none;
+}
+
+.tbtitle {
+	font-size: 1.7em;
+	outline: none;
+	padding: 3px 4px;
+	border-color: #dfdfdf;
+}
+
+.press-this .actions {
+	float: right;
+	margin: -19px 0 0;
+}
+
+.press-this #extra-fields .actions {
+	margin: -32px -7px 0 0;
+}
+
+.press-this .actions li {
+	float: left;
+	list-style: none;
+	margin-right: 10px;
+}
+
+#extra-fields .button {
+	margin-right: 5px;
+}
+
+/* Photo Styles */
+#photo_saving {
+	margin: 0 8px 8px;
+	vertical-align: middle;
+}
+
+#img_container_container {
+	overflow: auto;
+}
+
+#extra-fields {
+	margin-top: 10px;
+	position: relative;
+}
+
+#extra-fields h2 {
+	margin: 12px;
+}
+
+#waiting {
+	margin-top: 10px;
+	overflow: hidden;
+}
+
+#waiting span {
+	float: right;
+	margin: 0 0 0 5px;
+}
+
+#waiting .spinner {
+	display: block;
+}
+
+#extra-fields .postbox {
+	margin-bottom: 5px;
+}
+
+#extra-fields .titlewrap {
+	padding: 0;
+	overflow: auto;
+	height: 100px;
+}
+
+#img_container a {
+	display: block;
+	float: left;
+	overflow: hidden;
+}
+
+#img_container img,
+#img_container a {
+	width: 68px;
+	height: 68px;
+}
+
+#img_container img {
+	border: none;
+	background-color: #f4f4f4;
+	cursor: pointer;
+}
+
+#img_container a,
+#img_container a:link,
+#img_container a:visited {
+	border: 1px solid #ccc;
+	display: block;
+	position: relative;
+}
+
+#img_container a:hover,
+#img_container a:active {
+	border-color: #000;
+	z-index: 1000;
+	border-width: 2px;
+	margin: -1px;
+}
+
+/* Video */
+#embed-code {
+	width: 100%;
+	height: 98px;
+}
+
+/* Categories */
+.press-this .categorydiv div.tabs-panel {
+	height: 100px;
+}
+
+/* Tags */
+.press-this .tagsdiv .newtag {
+	width: 120px;
+}
+
+.press-this #content {
+	margin: 5px 0;
+	padding: 0 5px;
+	border: 0 none;
+	height: 345px;
+	font-family: Consolas, Monaco, monospace;
+	font-size: 13px;
+	line-height: 19px;
+	background: transparent;
+}
+
+/* Submit */
+.press-this #publishing-actions .spinner {
+	display: inline;
+	vertical-align: middle;
+}
+
+#TB_ajaxContent #options {
+	position: absolute;
+	top: 20px;
+	right: 25px;
+	padding: 5px;
+}
+
+#TB_ajaxContent h3 {
+	margin-bottom: .25em;
+}
+
+.error a {
+	text-decoration: underline;
+}
+
+.updated a {
+	text-decoration: none;
+	padding-bottom: 2px;
+}
+
+/* tag hints */
+.taghint {
+	color: #aaa;
+	margin: -17px 0 0 7px;
+	visibility: hidden;
+}
+
+input.newtag ~ div.taghint {
+	visibility: visible;
+}
+
+input.newtag:focus ~ div.taghint {
+	visibility: hidden;
+}
+
+/* TinyMCE */
+#mce_fullscreen_container {
+	background: #fff;
+}
+
+#photo-add-url-div input[type="text"] {
+	width: 300px;
+}
+
+/* theme-editor */
+.alignleft h3 {
+	margin: 0;
+}
+
+h3 span {
+	font-weight: normal;
+}
+
+#template textarea {
+	font-family: Consolas, Monaco, monospace;
+	font-size: 12px;
+	width: 97%;
+	background: #f9f9f9;
+	outline: none;
+}
+
+#template p {
+	width: 97%;
+}
+
+#templateside {
+	float: right;
+	width: 190px;
+	word-wrap: break-word;
+}
+
+#templateside h3,
+#postcustomstuff p.submit {
+	margin: 0;
+}
+
+#templateside h4 {
+	margin: 1em 0 0;
+}
+
+#templateside ol,
+#templateside ul {
+	margin: .5em;
+	padding: 0;
+}
+
+#templateside li {
+	margin: 4px 0;
+}
+
+#templateside ul li a span.highlight {
+	display:block;
+}
+
+.nonessential {
+	font-size: 11px;
+	font-style: italic;
+	padding-left: 12px;
+}
+
+.highlight {
+	padding: 3px 3px 3px 12px;
+	margin-left: -12px;
+	font-weight: bold;
+	border: 0 none;
+}
+
+#documentation {
+	margin-top: 10px;
+}
+#documentation label {
+	line-height: 22px;
+	vertical-align: top;
+	font-weight: bold;
+}
+
+.fileedit-sub {
+	padding: 10px 0 8px;
+	line-height: 180%;
+}
+
+#filter-box {
+	clear: both;
+}
+
+.feature-filter {
+	padding: 8px 12px 0;
+}
+
+.feature-filter .feature-group {
+	float: left;
+	margin: 5px 10px 10px;
+}
+
+.feature-filter .feature-group li {
+	display: inline-block;
+	vertical-align: top;
+	list-style-type: none;
+	padding-right: 25px;
+	width: 150px;
+}
+
+.feature-container {
+	width: 100%;
+	overflow: auto;
+	margin-bottom: 10px;
+}
+
+/* widgets */
+
+/* 2 column liquid layout */
+div.widget-liquid-left {
+	float: left;
+	clear: left;
+	width: 100%;
+	margin-right: -325px;
+}
+
+div#widgets-left {
+	margin-left: 5px;
+	margin-right: 325px;
+}
+
+div#widgets-right {
+	width: 285px;
+	margin: 0 auto;
+}
+
+div.widget-liquid-right {
+	float: right;
+	clear: right;
+	width: 300px;
+}
+
+.widget-liquid-right .widget,
+.inactive-sidebar .widget,
+.widget-liquid-right .sidebar-description {
+	width: 250px;
+	margin: 0 auto 20px;
+	overflow: hidden;
+}
+
+.widget-liquid-right .sidebar-description {
+	margin-bottom: 10px;
+}
+
+.inactive-sidebar .widget {
+	margin: 0 10px 20px;
+	display: inline-block;
+}
+
+div.sidebar-name h3 {
+	font-weight: normal;
+	font-size: 15px;
+	margin: 0;
+	padding: 8px 10px;
+	overflow: hidden;
+	white-space: nowrap;
+}
+
+div.sidebar-name {
+	font-size: 13px;
+	border-width: 1px;
+	border-style: solid;
+	-webkit-border-top-right-radius: 3px;
+	-webkit-border-top-left-radius: 3px;
+	border-top-right-radius: 3px;
+	border-top-left-radius: 3px;
+}
+
+.js .sidebar-name {
+	cursor: pointer;
+}
+
+.js .closed .sidebar-name {
+	-webkit-border-bottom-right-radius: 3px;
+	-webkit-border-bottom-left-radius: 3px;
+	border-bottom-right-radius: 3px;
+	border-bottom-left-radius: 3px;
+}
+
+.widget-liquid-right .widgets-sortables,
+#widgets-left .widget-holder {
+	border-width: 0 1px 1px;
+	border-style: none solid solid;
+	-webkit-border-bottom-right-radius: 3px;
+	-webkit-border-bottom-left-radius: 3px;
+	border-bottom-right-radius: 3px;
+	border-bottom-left-radius: 3px;
+}
+
+.js .closed .widgets-sortables,
+.js .closed .widget-holder {
+	display: none;
+}
+
+.widget-liquid-right .widgets-sortables {
+	padding: 15px 0 0;
+}
+
+#available-widgets .widget-holder {
+	padding: 7px 5px 0;
+}
+
+#available-widgets .widget {
+	-webkit-box-shadow: none;
+	box-shadow: none;
+}
+
+.inactive-sidebar {
+	padding: 5px 5px 0;
+}
+
+#widget-list .widget {
+	width: 250px;
+	margin: 0 10px 15px;
+	border: 0 none;
+	background: transparent;
+	display: inline-block;
+	vertical-align: top;
+}
+
+#widget-list .widget-description {
+	padding: 5px 8px;
+}
+
+.widget-placeholder {
+	border-width: 1px;
+	border-style: dashed;
+	margin: 0 auto 20px;
+	height: 27px;
+	width: 250px;
+}
+
+.inactive-sidebar .widget-placeholder {
+	margin: 0 10px 20px;
+	float: left;
+}
+
+div.widgets-holder-wrap {
+	padding: 0;
+	margin: 10px 0 20px;
+}
+
+#widgets-left #available-widgets {
+	background-color: transparent;
+	border: 0 none;
+}
+
+ul#widget-list {
+	list-style: none;
+	margin: 0;
+	padding: 0;
+	min-height: 100px;
+}
+
+.widget .widget-top {
+	margin-bottom: -1px;
+	font-size: 12px;
+	font-weight: bold;
+	height: 26px;
+	overflow: hidden;
+}
+
+.widget-top .widget-title {
+	padding: 7px 9px;
+}
+
+.widget-top .widget-title-action {
+	float: right;
+}
+
+a.widget-action {
+	display: block;
+	width: 24px;
+	height: 26px;
+}
+
+#available-widgets a.widget-action {
+	display: none;
+}
+
+.widget-top a.widget-action {
+	background: transparent url(../images/arrows.png) no-repeat 4px 6px;
+}
+
+.widget-top a.widget-action:hover {
+	background: transparent url(../images/arrows-dark.png) no-repeat 4px 6px;
+}
+
+.widget .widget-inside,
+.widget .widget-description {
+	padding: 12px 12px 10px;
+	font-size: 12px;
+	line-height: 16px;
+}
+
+.widget-inside,
+.widget-description {
+	display: none;
+}
+
+#available-widgets .widget-description {
+	display: block;
+}
+
+.widget .widget-inside p {
+	margin: 0 0 1em;
+	padding: 0;
+}
+
+.widget-title h4 {
+	margin: 0;
+	padding-bottom: 0.2em;
+	line-height: 1;
+	overflow: hidden;
+	white-space: nowrap;
+}
+
+.widgets-sortables {
+	min-height: 90px;
+}
+
+.widget-control-actions {
+	margin-top: 8px;
+}
+
+.widget-control-actions a {
+	text-decoration: none;
+}
+
+.widget-control-actions a:hover {
+	text-decoration: underline;
+}
+
+.widget-control-actions div.alignleft {
+	margin-top: 6px;
+}
+
+div#sidebar-info {
+	padding: 0 1em;
+	margin-bottom: 1em;
+	font-size: 12px;
+}
+
+.widget-title a,
+.widget-title a:hover {
+	text-decoration: none;
+	border-bottom: none;
+}
+
+.widget-control-edit {
+	display: block;
+	font-size: 12px;
+	font-weight: normal;
+	line-height: 26px;
+	padding: 0 8px 0 0;
+}
+
+a.widget-control-edit {
+	text-decoration: none;
+}
+
+.widget-control-edit .add,
+.widget-control-edit .edit {
+	display: none;
+}
+
+#available-widgets .widget-control-edit .add,
+#widgets-right .widget-control-edit .edit,
+.inactive-sidebar .widget-control-edit .edit {
+	display: inline;
+}
+
+.editwidget {
+	margin: 0 auto 15px;
+}
+
+.editwidget .widget-inside {
+	display: block;
+	padding: 10px;
+}
+
+.inactive p.description {
+	margin: 5px 15px 10px;
+}
+
+#available-widgets p.description {
+	margin: 0 12px 12px;
+}
+
+.widget-position {
+	margin-top: 8px;
+}
+
+.inactive {
+	padding-top: 2px;
+}
+
+.sidebar-name .spinner {
+	float: none;
+	margin: 0 3px -3px;
+}
+
+.sidebar-name-arrow {
+	float: right;
+	height: 29px;
+	width: 26px;
+}
+
+.widget-title .in-widget-title {
+	font-size: 12px;
+	white-space: nowrap;
+}
+
+#removing-widget {
+	display: none;
+	font-weight: normal;
+	padding-left: 15px;
+	font-size: 12px;
+	line-height: 1;
+}
+
+.widget-control-noform,
+#access-off,
+.widgets_access .widget-action,
+.widgets_access .sidebar-name-arrow,
+.widgets_access #access-on,
+.widgets_access .widget-holder .description {
+	display: none;
+}
+
+.widgets_access .widget-holder,
+.widgets_access #widget-list {
+	padding-top: 10px;
+}
+
+.widgets_access #access-off {
+	display: inline;
+}
+
+.widgets_access #wpbody-content .widget-title-action,
+.widgets_access #wpbody-content .widget-control-edit,
+.widgets_access .closed .widgets-sortables,
+.widgets_access .closed .widget-holder {
+	display: block;
+}
+
+.widgets_access .closed .sidebar-name {
+	-webkit-border-bottom-right-radius: 0;
+	-webkit-border-bottom-left-radius: 0;
+	border-bottom-right-radius: 0;
+	border-bottom-left-radius: 0;
+}
+
+.widgets_access .sidebar-name,
+.widgets_access .widget .widget-top {
+	cursor: default;
+}
+
+/* Enable draggable on IE10 touch events until it's rolled into jQuery UI core */
+.ui-sortable,
+.ui-draggable {
+	-ms-touch-action: none;
+}
+
+/* =Media Queries
+-------------------------------------------------------------- */
+
+@media only screen and (max-width: 768px) {
+	/* categories */
+	#col-left {
+		width: 100%;
+	}
+
+	#col-right {
+		width: 100%;
+	}
+}
+
+@media only screen and (min-width: 769px) {
+	/* categories */
+	#col-left {
+		width: 35%;
+	}
+
+	#col-right {
+		width: 65%;
+	}
+}
+
+@media only screen and (max-width: 860px) {
+
+	/* categories */
+	#col-left {
+		width: 35%;
+	}
+
+	#col-right {
+		width: 65%;
+	}
+}
+
+@media only screen and (min-width: 980px) {
+
+	/* categories */
+	#col-left {
+		width: 35%;
+	}
+
+	#col-right {
+		width: 65%;
+	}
+}
+
+@media only screen and (max-width: 768px) {
+	/* categories */
+	#col-left {
+		width: 100%;
+	}
+
+	#col-right {
+		width: 100%;
+	}
+
+	.form-field input,
+	.form-field textarea {
+		width: 99%;
+	}
+
+	.form-wrap .form-field {
+		padding:0;
+	}
+
+	/* users */
+	#profile-page .form-table textarea {
+		max-width: 400px;
+		width: auto;
+	}
+}
+
+/**
+ * HiDPI Displays
+ */
+@media print,
+  (-o-min-device-pixel-ratio: 5/4),
+  (-webkit-min-device-pixel-ratio: 1.25),
+  (min-resolution: 120dpi) {
+
+	.press-this .tagchecklist span a {
+	 	background-image: url('../images/xit-2x.gif');
+	 	background-size: 20px auto;
+	 }
+
+	.js .postbox:hover .handlediv,
+	.js .stuffbox:hover .handlediv,
+	.widget-top a.widget-action {
+	 	background-image: url('../images/arrows-2x.png');
+	 	background-size: 15px 123px;
+	 }
+
+	.widget-top a.widget-action:hover {
+	 	background-image: url('../images/arrows-dark-2x.png');
+	 	background-size: 15px 123px;
+	}
+
+	.post-com-count {
+		background-image: url('../images/bubble_bg-2x.gif');
+		background-size: 18px 100px;
+	}
+
+	th .comment-grey-bubble {
+		background-image: url('../images/comment-grey-bubble-2x.png');
+		background-size: 12px 12px;
+	}
+
+	.sorting-indicator {
+		background-image: url('../images/sort-2x.gif');
+		background-size: 14px 4px;
+	}
+
+	#content-resize-handle,
+	#post-body .wp_themeSkin .mceStatusbar a.mceResize {
+		background: transparent url('../images/resize-2x.gif') no-repeat scroll right bottom;
+		background-size: 11px 11px;
+	}
+
+	div.star-holder {
+		background: url('../images/stars-2x.png?ver=20121108') repeat-x bottom left;
+		background-size: 21px 37px;
+	}
+
+	div.star-holder .star-rating {
+		background: url('../images/stars-2x.png?ver=20121108') repeat-x top left;
+		background-size: 21px 37px;
+	}
+
+	.welcome-panel .welcome-panel-close:before {
+		background-image: url('../images/xit-2x.gif');
+		background-size: 20px auto;
+	}
+
+	.welcome-panel .welcome-icon {
+		background-image: url('../images/welcome-icons-2x.png');
+	}
+
+	.login h1 a {
+		background-image: url('../images/wordpress-logo-2x.png?ver=20120412');
+		background-size: 274px 63px;
+	}
+
+	.wp-badge {
+		background-image: url('../images/wp-badge-2x.png?ver=20120516');
+		background-size: 173px 194px;
+	}
+
+	.wp-full-overlay .collapse-sidebar-arrow {
+	 	background-image: url('../images/arrows-2x.png');
+	 	background-size: 15px 123px;
+	 }
+
+	.pressthis a span {
+		background-image: url(../images/press-this-2x.png?v=20121105);
+	}
+
+	.imgedit-crop,
+	.imgedit-rleft,
+	.imgedit-rright,
+	.imgedit-flipv,
+	.imgedit-fliph,
+	.imgedit-undo,
+	.imgedit-redo {
+		background-image: url('../images/imgedit-icons-2x.png');
+		background-size: 260px 64px;
+	}
+
+	.spinner,
+	.imgedit-wait,
+	.customize-loading #customize-container {
+		background-image: url(../images/wpspin_light-2x.gif);
+	}
+}
+
+/* =Localized CSS
+-------------------------------------------------------------- */
+
+/* zh_CN: Remove italic properties. */
+.locale-zh-cn .howto,
+.locale-zh-cn .tablenav .displaying-num,
+.locale-zh-cn .js .input-with-default-title,
+.locale-zh-cn .link-to-original,
+.locale-zh-cn .inline-edit-row fieldset span.title,
+.locale-zh-cn .inline-edit-row fieldset span.checkbox-title,
+.locale-zh-cn #utc-time,
+.locale-zh-cn #local-time,
+.locale-zh-cn p.install-help,
+.locale-zh-cn p.help,
+.locale-zh-cn p.description,
+.locale-zh-cn span.description,
+.locale-zh-cn .form-wrap p {
+	font-style: normal;
+}
+
+/* zh_CN: Enlarge dashboard widget 'Configure' link */
+.locale-zh-cn .hdnle a { font-size: 12px; }
+
+/* zn_CH: Enlarge font size, set font-size: normal */
+.locale-zh-cn form.upgrade .hint { font-style: normal; font-size: 100%; }
+
+/* Zn_CH: Distraction free writing.
+ *  More beautiful font for "Just write."
+ *  Larger text for HTML/Visual mode.
+ */
+.locale-zh-cn #wp-fullscreen-tagline { font-family: KaiTi, "楷体", sans-serif; }
+.locale-zh-cn #wp-fullscreen-modes a { font-size: 12px; }
+
+/* zh_CN: Enlarge font-size. */
+.locale-zh-cn #sort-buttons { font-size: 1em !important; }
+
+/* ru_RU: Text needs more room to breathe. */
+.locale-ru-ru .inline-edit-row fieldset label span.title {
+	width: auto; /* default 5em */
+	min-width: 5em;
+}
+.locale-ru-ru.press-this .posting {
+	margin-right: 257px; /* default 212px + 45px */
+}
+.locale-ru-ru.press-this #photo-add-url-div input[type="text"]  {
+	width: 255px; /* default 300px - 45px */
+}
+.locale-ru-ru.press-this #side-sortables {
+	width: 245px; /* default 200px + 45px */
+}
+.locale-ru-ru #customize-header-actions .button {
+	padding: 0 8px 1px; /* default 0 10px 1px; */
+}
+
+/* lt_LT: QuickEdit */
+.locale-lt-lt .inline-edit-row fieldset label span.title {
+	width: 8em;
+}
+.locale-lt-lt .inline-edit-row fieldset label span.input-text-wrap {
+	margin-left: 8em;
+}
+
+.update-php .spinner {
+	float: none;
+	margin: -4px 0;
+}
--- a/web/wp-admin/css/wp-admin.dev.css	Wed Dec 19 12:35:13 2012 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,8221 +0,0 @@
-/*------------------------------------------------------------------------------
-
-
-Hello, this is the main WordPress admin CSS file.
-All the important stuff is in here.
-
-
-TABLE OF CONTENTS:
-------------------
- 1.0 - Text Elements
- 2.0 - Forms
- 3.0 - Actions
- 4.0 - Notifications
- 5.0 - TinyMCE
- 6.0 - Admin Header
-	6.1 - Screen Options Tabs
-	6.2 - Help Menu
- 7.0 - Main Navigation
- 8.0 - Layout Blocks
- 9.0 - Dashboard
-10.0 - List Posts
-	10.1 - Inline Editing
-11.0 - Write/Edit Post Screen
-	11.1 - Custom Fields
-	11.2 - Post Revisions
-12.0 - Categories
-13.0 - Tags
-14.0 - Media Screen
-	14.1 - Media Library
-	14.2 - Image Editor
-15.0 - Comments Screen
-16.0 - Themes
-	16.1 - Custom Header
-	16.2 - Custom Background
-	16.3 - Tabbed Admin Screen Interface
-17.0 - Plugins
-18.0 - Users
-19.0 - Tools
-20.0 - Settings
-21.0 - Admin Footer
-22.0 - About Pages
-23.0 - Full Overlay w/ Sidebar
-24.0 - Customize Loader
-25.0 - Misc
-
-------------------------------------------------------------------------*/
-
-/* 2 column liquid layout */
-#wpwrap {
-	height: auto;
-	min-height: 100%;
-	width: 100%;
-	position: relative;
-}
-
-#wpcontent {
-	height: 100%;
-}
-
-#wpcontent,
-#footer {
-	margin-left: 165px;
-}
-
-.folded #wpcontent,
-.folded #footer {
-	margin-left: 52px;
-}
-
-#wpbody-content {
-	padding-bottom: 65px;
-	float: left;
-	width: 100%;
-}
-
-#adminmenuback,
-#adminmenuwrap,
-#adminmenu,
-#adminmenu .wp-submenu,
-#adminmenu .wp-submenu-wrap,
-.folded #adminmenu .wp-has-current-submenu .wp-submenu {
-	width: 145px;
-}
-
-#adminmenuback {
-	position: absolute;
-	top: 0;
-	bottom: 0;
-	z-index: -1;
-}
-
-#adminmenu {
-	clear: left;
-	margin: 0;
-	padding: 0;
-	list-style: none;
-}
-
-.folded #adminmenuback,
-.folded #adminmenuwrap,
-.folded #adminmenu,
-.folded #adminmenu li.menu-top {
-	width: 32px;
-}
-
-/* inner 2 column liquid layout */
-
-.inner-sidebar {
-	float: right;
-	clear: right;
-	display: none;
-	width: 281px;
-	position: relative;
-}
-
-.columns-2 .inner-sidebar {
-	margin-right: auto;
-	width: 286px;
-	display: block;
-}
-
-.inner-sidebar #side-sortables,
-.columns-2 .inner-sidebar #side-sortables {
-	min-height: 300px;
-	width: 280px;
-	padding: 0;
-}
-
-.has-right-sidebar .inner-sidebar {
-	display: block;
-}
-
-.has-right-sidebar #post-body {
-	float: left;
-	clear: left;
-	width: 100%;
-	margin-right: -2000px;
-}
-
-.has-right-sidebar #post-body-content {
-	margin-right: 300px;
-	float: none;
-	width: auto;
-}
-
-/* 2 columns main area */
-
-#col-container,
-#col-left,
-#col-right {
-	overflow: hidden;
-	padding: 0;
-	margin: 0;
-}
-
-#col-left {
-	width: 35%;
-}
-
-#col-right {
-	float: right;
-	clear: right;
-	width: 65%;
-}
-
-.col-wrap {
-	padding: 0 7px;
-}
-
-/* utility classes */
-.alignleft {
-	float: left;
-}
-
-.alignright {
-	float: right;
-}
-
-.textleft {
-	text-align: left;
-}
-
-.textright {
-	text-align: right;
-}
-
-.clear {
-	clear: both;
-}
-
-/* Hide visually but not from screen readers */
-.screen-reader-text,
-.screen-reader-text span {
-	position: absolute;
-	left: -1000em;
-	height: 1px;
-	width: 1px;
-	overflow: hidden;
-}
-
-.hidden,
-.js .closed .inside,
-.js .hide-if-js,
-.no-js .hide-if-no-js {
-	display: none;
-}
-
-/* include margin and padding in the width calculation of input and textarea */
-input[type="text"],
-input[type="password"],
-input[type="number"],
-input[type="search"],
-input[type="email"],
-input[type="url"],
-textarea {
-	-moz-box-sizing: border-box;
-	-webkit-box-sizing: border-box;
-	-ms-box-sizing: border-box; /* ie8 only */
-	box-sizing: border-box;
-}
-
-input[type="checkbox"],
-input[type="radio"] {
-	vertical-align: text-top;
-	padding: 0;
-	margin: 1px 0 0;
-}
-
-input[type="search"] {
-	-webkit-appearance: textfield;
-}
-
-input[type="search"]::-webkit-search-decoration {
-	display: none;
-}
-
-/* general */
-html,
-body {
-	height: 100%;
-	margin: 0;
-	padding: 0;
-}
-
-body {
-	font-family: sans-serif;
-	font-size: 12px;
-	line-height: 1.4em;
-	min-width: 600px;
-}
-
-body.iframe {
-	min-width: 0;
-}
-
-body.login {
-	background: #fbfbfb;
-	min-width: 0;
-}
-
-iframe,
-img {
-	border: 0;
-}
-
-td,
-textarea,
-input,
-select {
-	font-family: inherit;
-	font-size: inherit;
-	font-weight: inherit;
-}
-
-td,
-textarea {
-	line-height: inherit;
-}
-
-input,
-select {
-	line-height: 15px;
-}
-
-a,
-input,
-select {
-	outline: 0;
-}
-
-blockquote,
-q {
-	quotes: none;
-}
-
-blockquote:before,
-blockquote:after,
-q:before,
-q:after {
-	content: '';
-	content: none;
-}
-
-p {
-	margin: 1em 0;
-}
-
-blockquote {
-	margin: 1em;
-}
-
-label {
-	cursor: pointer;
-}
-
-li,
-dd {
-	margin-bottom: 6px;
-}
-
-textarea,
-input,
-select {
-	margin: 1px;
-	padding: 3px;
-}
-
-h1,
-h2,
-h3,
-h4,
-h5,
-h6 {
-	display: block;
-	font-weight: bold;
-}
-
-h1 {
-	font-size: 2em;
-	margin: .67em 0;
-}
-
-h2 {
-	font-size: 1.5em;
-	margin: .83em 0;
-}
-
-h3 {
-	font-size: 1.17em;
-	margin: 1em 0;
-}
-
-h4 {
-	font-size: 1em;
-	margin: 1.33em 0;
-}
-
-h5 {
-	font-size: 0.83em;
-	margin: 1.67em 0;
-}
-
-h6 {
-	font-size: 0.67em;
-	margin: 2.33em 0;
-}
-
-ul,
-ol {
-	padding: 0;
-}
-
-ul {
-	list-style: none;
-}
-
-ol {
-	list-style-type: decimal;
-	margin-left: 2em;
-}
-
-ul.ul-disc {
-	list-style: disc outside;
-}
-
-ul.ul-square {
-	list-style: square outside;
-}
-
-ol.ol-decimal {
-	list-style: decimal outside;
-}
-
-ul.ul-disc,
-ul.ul-square,
-ol.ol-decimal {
-	margin-left: 1.8em;
-}
-
-ul.ul-disc > li,
-ul.ul-square > li,
-ol.ol-decimal > li {
-	margin: 0 0 0.5em;
-}
-
-.code,
-code {
-	font-family: Consolas, Monaco, monospace;
-}
-
-kbd,
-code {
-	padding: 1px 3px;
-	margin: 0 1px;
-	font-size: 11px;
-}
-
-.subsubsub {
-	list-style: none;
-	margin: 8px 0 5px;
-	padding: 0;
-	white-space: nowrap;
-	font-size: 12px;
-	float: left;
-}
-
-.subsubsub a {
-	line-height: 2;
-	padding: .2em;
-	text-decoration: none;
-}
-
-.subsubsub a .count,
-.subsubsub a.current .count {
-	color: #999;
-	font-weight: normal;
-}
-
-.subsubsub a.current {
-	font-weight: bold;
-	background: none;
-	border: none;
-}
-
-.subsubsub li {
-	display: inline;
-	margin: 0;
-	padding: 0;
-}
-
-.widefat,
-div.updated,
-div.error,
-.wrap .add-new-h2,
-textarea,
-input[type="text"],
-input[type="password"],
-input[type="file"],
-input[type="button"],
-input[type="submit"],
-input[type="reset"],
-input[type="email"],
-input[type="number"],
-input[type="search"],
-input[type="tel"],
-input[type="url"],
-select,
-.tablenav .tablenav-pages a,
-.tablenav-pages span.current,
-#titlediv #title,
-.postbox,
-#postcustomstuff table,
-#postcustomstuff input,
-#postcustomstuff textarea,
-.imgedit-menu div,
-.plugin-update-tr .update-message,
-#poststuff .inside .the-tagcloud,
-.login form,
-#login_error,
-.login .message,
-#menu-management .menu-edit,
-.nav-menus-php .list-container,
-.menu-item-handle,
-.link-to-original,
-.nav-menus-php .major-publishing-actions .form-invalid,
-.press-this #message,
-#TB_window,
-.tbtitle,
-.highlight,
-.feature-filter,
-#widget-list .widget-top,
-.editwidget .widget-inside {
-	-webkit-border-radius: 3px;
-	border-radius: 3px;
-	border-width: 1px;
-	border-style: solid;
-}
-
-/* .widefat - main style for tables */
-.widefat {
-	border-spacing: 0;
-	width: 100%;
-	clear: both;
-	margin: 0;
-}
-
-.widefat * {
-	word-wrap: break-word;
-}
-
-.widefat a {
-	text-decoration: none;
-}
-
-.widefat thead th:first-of-type {
-	-webkit-border-top-left-radius: 3px;
-	border-top-left-radius: 3px;
-}
-.widefat thead th:last-of-type {
-	-webkit-border-top-right-radius: 3px;
-	border-top-right-radius: 3px;
-}
-.widefat tfoot th:first-of-type {
-	-webkit-border-bottom-left-radius: 3px;
-	border-bottom-left-radius: 3px;
-}
-.widefat tfoot th:last-of-type {
-	-webkit-border-bottom-right-radius: 3px;
-	border-bottom-right-radius: 3px;
-}
-
-.widefat td,
-.widefat th {
-	border-width: 1px 0;
-	border-style: solid;
-}
-.widefat tfoot th {
-	border-bottom: none;
-}
-
-.widefat .no-items td {
-	border-bottom-width: 0;
-}
-
-.widefat td {
-	font-size: 12px;
-	padding: 4px 7px 2px;
-	vertical-align: top;
-}
-
-.widefat td p,
-.widefat td ol,
-.widefat td ul {
-	font-size: 12px;
-}
-
-.widefat th {
-	padding: 7px 7px 8px;
-	text-align: left;
-	line-height: 1.3em;
-	font-size: 14px;
-}
-
-.widefat th input {
-	margin: 0 0 0 8px;
-	padding: 0;
-	vertical-align: text-top;
-}
-
-.widefat .check-column {
-	width: 2.2em;
-	padding: 11px 0 0;
-	vertical-align: top;
-}
-
-.widefat tbody th.check-column {
-	padding: 9px 0 22px;
-}
-
-.widefat .num,
-.column-comments,
-.column-links,
-.column-posts {
-	text-align: center;
-}
-
-.widefat th#comments {
-	vertical-align: middle;
-}
-
-.wrap {
-	margin: 4px 15px 0 0;
-}
-
-div.updated,
-div.error {
-	padding: 0 0.6em;
-	margin: 5px 15px 2px;
-}
-
-div.updated p,
-div.error p {
-	margin: 0.5em 0;
-	padding: 2px;
-}
-
-.wrap div.updated,
-.wrap div.error,
-.media-upload-form div.error {
-	margin: 5px 0 15px;
-}
-
-.wrap h2,
-.subtitle {
-	font-weight: normal;
-	margin: 0;
-	text-shadow: #fff 0 1px 0;
-}
-
-.wrap h2 {
-	font-size: 23px;
-	padding: 9px 15px 4px 0;
-	line-height: 29px;
-}
-
-.subtitle {
-	font-size: 14px;
-	padding-left: 25px;
-}
-
-.wrap .add-new-h2 {
-	font-family: sans-serif;
-	margin-left: 4px;
-	padding: 3px 8px;
-	position: relative;
-	top: -3px;
-	text-decoration: none;
-	font-size: 12px;
-	border: 0 none;
-}
-
-.wrap h2.long-header {
-	padding-right: 0;
-}
-
-
-/*------------------------------------------------------------------------------
-  1.0 - Text Styles
-------------------------------------------------------------------------------*/
-
-div.sidebar-name h3,
-#menu-management .nav-tab,
-#dashboard_plugins h5,
-a.rsswidget,
-#dashboard_right_now td.b,
-#dashboard-widgets h4,
-.tool-box .title,
-#poststuff h3,
-.metabox-holder h3,
-.pressthis a,
-#your-profile legend,
-.inline-edit-row fieldset span.title,
-.inline-edit-row fieldset span.checkbox-title,
-.tablenav .displaying-num,
-.widefat th,
-.quicktags,
-.search {
-	font-family: Georgia, "Times New Roman", "Bitstream Charter", Times, serif;
-}
-
-h2 .nav-tab,
-.wrap h2,
-.subtitle,
-.login form .input {
-	font-family: "HelveticaNeue-Light", "Helvetica Neue Light", "Helvetica Neue", sans-serif;
-}
-
-.quicktags,
-.search {
-	font-size: 12px;
-}
-
-.icon32 {
-	float: left;
-	height: 34px;
-	margin: 7px 8px 0 0;
-	width: 36px;
-}
-
-.icon16 {
-	height: 18px;
-	width: 18px;
-	padding: 6px 6px;
-	margin: -6px 0 0 -8px;
-	float: left;
-}
-
-.key-labels label {
-	line-height: 24px;
-}
-
-.pre {
-	/* http://www.longren.org/2006/09/27/wrapping-text-inside-pre-tags/ */
-	white-space: pre-wrap; /* css-3 */
-	white-space: -moz-pre-wrap !important; /* Mozilla, since 1999 */
-	white-space: -pre-wrap; /* Opera 4-6 */
-	white-space: -o-pre-wrap; /* Opera 7 */
-	word-wrap: break-word; /* Internet Explorer 5.5+ */
-}
-
-.howto {
-	font-style: italic;
-	display: block;
-	font-family: sans-serif;
-}
-
-p.install-help {
-	margin: 8px 0;
-	font-style: italic;
-}
-
-.no-break {
-	white-space: nowrap;
-}
-
-/*------------------------------------------------------------------------------
-  2.0 - Forms
-------------------------------------------------------------------------------*/
-
-
-.wp-admin select {
-	padding: 2px;
-	height: 2em;
-}
-
-.wp-admin select[multiple] {
-	height: auto;
-}
-
-select option {
-	padding: 2px;
-}
-
-.submit {
-	padding: 1.5em 0;
-	margin: 5px 0;
-	-webkit-border-bottom-left-radius: 3px;
-	-webkit-border-bottom-right-radius: 3px;
-	border-bottom-left-radius: 3px;
-	border-bottom-right-radius: 3px;
-}
-
-form p.submit a.cancel:hover {
-	text-decoration: none;
-}
-
-.submit input,
-.button,
-input.button,
-.button-primary,
-input.button-primary,
-.button-secondary,
-input.button-secondary,
-.button-highlighted,
-input.button-highlighted,
-#postcustomstuff .submit input {
-	text-decoration: none;
-	font-size: 12px !important;
-	line-height: 13px;
-	padding: 3px 8px;
-	cursor: pointer;
-	border-width: 1px;
-	border-style: solid;
-	-webkit-border-radius: 11px;
-	border-radius: 11px;
-	-moz-box-sizing: content-box;
-	-webkit-box-sizing: content-box;
-	box-sizing: content-box;
-}
-
-#minor-publishing-actions input,
-#major-publishing-actions input,
-#minor-publishing-actions .preview {
-	min-width: 80px;
-	text-align: center;
-}
-
-textarea.all-options,
-input.all-options {
-	width: 250px;
-}
-
-input.large-text,
-textarea.large-text {
-	width: 99%;
-}
-
-input.regular-text,
-#adduser .form-field input {
-	width: 25em;
-}
-
-input.small-text {
-	width: 50px;
-}
-
-input[type="number"].small-text {
-	width: 60px;
-}
-
-#doaction,
-#doaction2,
-#post-query-submit {
-	margin-right: 8px;
-}
-
-.tablenav select[name="action"],
-.tablenav select[name="action2"] {
-	width: 130px;
-}
-
-.tablenav select[name="m"] {
-	width: 155px;
-}
-
-.tablenav select#cat {
-	width: 170px;
-}
-
-#wpcontent option {
-	padding: 2px;
-}
-
-#timezone_string option {
-	margin-left: 1em;
-}
-
-label,
-#your-profile label + a {
-	vertical-align: middle;
-}
-
-#misc-publishing-actions label {
-	vertical-align: baseline;
-}
-
-#pass-strength-result {
-	border-style: solid;
-	border-width: 1px;
-	float: left;
-	margin: 13px 5px 5px 1px;
-	padding: 3px 5px;
-	text-align: center;
-	width: 200px;
-	display: none;
-}
-.indicator-hint {
-	padding-top: 8px;
-}
-
-p.search-box {
-	float: right;
-	margin: 0;
-}
-
-input[type="text"].ui-autocomplete-loading {
-	background: transparent url('../images/loading.gif') no-repeat right center;
-	visibility: visible;
-}
-
-ul#add-to-blog-users {
-	margin: 0 0 0 14px;
-}
-
-.ui-autocomplete-input.open {
-	border-bottom-right-radius: 0;
-	border-bottom-left-radius: 0;
-}
-
-.ui-autocomplete {
-	padding: 0;
-	margin: 0;
-	list-style: none;
-	position: absolute;
-	z-index: 10000;
-	border-bottom-right-radius: 3px;
-	border-bottom-left-radius: 3px;
-	border-width: 1px;
-	border-style: solid;
-}
-
-.ui-autocomplete li {
-	margin-bottom: 0;
-	white-space: nowrap;
-	text-align: left;
-}
-
-.ui-autocomplete li a {
-	display: block;
-	height: 100%;
-	padding: 4px 10px;
-}
-
-.ui-autocomplete li a.ui-state-hover {
-	cursor: pointer;
-}
-
-/*------------------------------------------------------------------------------
-  3.0 - Actions
-------------------------------------------------------------------------------*/
-
-#major-publishing-actions {
-	padding: 10px 10px 8px;
-	clear: both;
-	border-top: 1px solid #f5f5f5;
-	margin-top: -2px;
-}
-
-#delete-action {
-	line-height: 25px;
-	vertical-align: middle;
-	text-align: left;
-	float: left;
-}
-
-#publishing-action {
-	text-align: right;
-	float: right;
-	line-height: 23px;
-}
-
-#misc-publishing-actions {
-	padding: 6px 0 0;
-}
-
-.misc-pub-section {
-	padding: 6px 10px 8px;
-	border-width: 1px 0;
-	border-style: solid;
-}
-
-.misc-pub-section:first-child {
-	border-top-width: 0;
-}
-
-.misc-pub-section-last {
-	border-bottom-width: 0;
-}
-
-#minor-publishing-actions {
-	padding: 10px 10px 2px 8px;
-	text-align: right;
-}
-
-#minor-publishing {
-	border-bottom-width: 1px;
-	border-bottom-style: solid;
-	-webkit-box-shadow: 0 1px 0 #fff;
-	-moz-box-shadow: 0 1px 0 #fff;
-	box-shadow: 0 1px 0 #fff;
-}
-
-#save-post {
-	float: left;
-}
-
-#minor-publishing .ajax-loading {
-	padding: 3px 0 0 4px;
-	float: left;
-}
-
-.preview {
-	float: right;
-}
-
-#sticky-span {
-	margin-left: 18px;
-}
-
-.side-info {
-	margin: 0;
-	padding: 4px;
-	font-size: 11px;
-}
-
-.side-info h5 {
-	padding-bottom: 7px;
-	font-size: 14px;
-	margin: 12px 2px 5px;
-	border-bottom-width: 1px;
-	border-bottom-style: solid;
-}
-
-.side-info ul {
-	margin: 0;
-	padding-left: 18px;
-	list-style: square;
-}
-
-a.button,
-a.button-primary,
-a.button-secondary {
-	line-height: 15px;
-	padding: 3px 10px;
-	white-space: nowrap;
-	-webkit-border-radius: 10px;
-}
-
-.approve,
-.unapproved .unapprove {
-	display: none;
-}
-
-.unapproved .approve,
-.spam .approve,
-.trash .approve {
-	display: inline;
-}
-
-td.action-links,
-th.action-links {
-	text-align: right;
-}
-
-.describe .del-link {
-	padding-left: 5px;
-}
-
-
-/*------------------------------------------------------------------------------
-  4.0 - Notifications
-------------------------------------------------------------------------------*/
-
-#update-nag,
-.update-nag {
-	line-height: 19px;
-	padding: 5px 0;
-	font-size: 12px;
-	text-align: center;
-	margin: -1px 15px 0 5px;
-	border-width: 1px;
-	border-style: solid;
-	-webkit-border-bottom-right-radius: 3px;
-	-webkit-border-bottom-left-radius: 3px;
-	border-bottom-right-radius: 3px;
-	border-bottom-left-radius: 3px;
-}
-
-.plugins .plugin-update {
-	padding: 0;
-}
-
-.plugin-update .update-message {
-	margin: 0 10px 8px 31px;
-	font-weight: bold;
-}
-
-ul#dismissed-updates {
-	display: none;
-}
-
-form.upgrade {
-	margin-top: 8px;
-}
-
-form.upgrade .hint {
-	font-style: italic;
-	font-size: 85%;
-	margin: -0.5em 0 2em 0;
-}
-
-.ajax-feedback {
-	visibility: hidden;
-	vertical-align: bottom;
-}
-
-#ajax-response.alignleft {
-	margin-left: 2em;
-}
-
-
-/*------------------------------------------------------------------------------
-  6.0 - Admin Header
-------------------------------------------------------------------------------*/
-#adminmenu a,
-#sidemenu a,
-#taglist a,
-#catlist a {
-	text-decoration: none;
-}
-
-/*------------------------------------------------------------------------------
-  6.1 - Screen Options Tabs
-------------------------------------------------------------------------------*/
-
-#screen-options-wrap,
-#contextual-help-wrap {
-	margin: 0;
-	padding: 8px 20px 12px;
-	position: relative;
-	overflow: auto;
-}
-
-#screen-meta .screen-reader-text {
-	visibility: hidden;
-}
-
-#screen-meta-links {
-	margin: 0 24px 0 0;
-}
-
-/* screen options and help tabs revert */
-#screen-meta {
-	display: none;
-	position: relative;
-	margin: 0 15px 0 5px;
-	border-width: 0 1px 1px;
-	border-style: none solid solid;
-}
-
-#screen-options-link-wrap,
-#contextual-help-link-wrap {
-	float: right;
-	height: 23px;
-	padding: 0;
-	margin: 0 0 0 6px;
-	font-family: sans-serif;
-}
-
-#screen-options-link-wrap,
-#contextual-help-link-wrap,
-#screen-meta {
-	-webkit-border-bottom-left-radius: 3px;
-	-webkit-border-bottom-right-radius: 3px;
-	border-bottom-left-radius: 3px;
-	border-bottom-right-radius: 3px;
-}
-
-#screen-meta-links .screen-meta-toggle {
-	position: relative;
-	top: -1px;
-}
-
-#screen-meta-links a.show-settings {
-	text-decoration: none;
-	z-index: 1;
-	padding: 1px 16px 0 6px;
-	height: 22px;
-	line-height: 22px;
-	font-size: 12px;
-	display: block;
-	text-shadow: rgba(255,255,255,0.7) 0 1px 0;
-}
-
-#screen-meta-links a.show-settings:hover {
-	text-decoration: none;
-}
-/* end screen options and help tabs */
-
-.toggle-arrow {
-	background-repeat: no-repeat;
-	background-position: top left;
-	background-color: transparent;
-	height: 22px;
-	line-height: 22px;
-	display: block;
-}
-
-.toggle-arrow-active {
-	background-position: bottom left;
-}
-
-#screen-options-wrap h5,
-#contextual-help-wrap h5 {
-	margin: 8px 0;
-	font-size: 13px;
-}
-
-.metabox-prefs label {
-	display: inline-block;
-	padding-right: 15px;
-	white-space: nowrap;
-	line-height: 30px;
-}
-
-.metabox-prefs label input {
-	margin: 0 5px 0 2px;
-}
-
-.metabox-prefs .columns-prefs label input {
-	margin: 0 2px;
-}
-
-.metabox-prefs label a {
-	display: none;
-}
-
-/*------------------------------------------------------------------------------
-  6.2 - Help Menu
-------------------------------------------------------------------------------*/
-
-#contextual-help-wrap {
-	padding: 0;
-	margin-left: -4px;
-}
-
-#contextual-help-columns {
-	position: relative;
-}
-
-#contextual-help-back {
-	position: absolute;
-	top: 0;
-	bottom: 0;
-	left: 150px;
-	right: 170px;
-	border-width: 0 1px;
-	border-style: solid;
-}
-
-#contextual-help-wrap.no-sidebar #contextual-help-back {
-	right: 0;
-
-	border-right-width: 0;
-	-webkit-border-bottom-right-radius: 2px;
-	border-bottom-right-radius: 2px;
-}
-
-.contextual-help-tabs {
-	float: left;
-	width: 150px;
-	margin: 0;
-}
-
-.contextual-help-tabs ul {
-	margin: 1em 0;
-}
-
-.contextual-help-tabs li {
-	margin-bottom: 0;
-	list-style-type: none;
-	border-style: solid;
-	border-width: 1px 0;
-	border-color: transparent;
-}
-
-.contextual-help-tabs a {
-	display: block;
-	padding: 5px 5px 5px 12px;
-	line-height: 18px;
-	text-decoration: none;
-}
-
-.contextual-help-tabs .active {
-	padding: 0;
-	margin: 0 -1px 0 0;
-	border-width: 1px 0 1px 1px;
-	border-style: solid;
-}
-
-.contextual-help-tabs-wrap {
-	padding: 0 20px;
-	overflow: auto;
-}
-
-.help-tab-content {
-	display: none;
-	margin: 0 22px 12px 0;
-	line-height: 1.6em;
-}
-
-.help-tab-content.active {
-	display: block;
-}
-
-.help-tab-content li {
-	list-style-type: disc;
-	margin-left: 18px;
-}
-
-.contextual-help-sidebar {
-	width: 150px;
-	float: right;
-	padding: 0 8px 0 12px;
-	overflow: auto;
-}
-
-
-/*------------------------------------------------------------------------------
-  7.0 - Main Navigation (Left Menu)
-------------------------------------------------------------------------------*/
-
-#adminmenuback,
-#adminmenuwrap {
-	border-width: 0 1px 0 0;
-	border-style: solid;
-}
-
-#adminmenuwrap {
-	position: relative;
-	float: left;
-}
-
-#adminmenushadow {
-	position: absolute;
-	top: 0;
-	right: 0;
-	bottom: 0;
-	width: 6px;
-	z-index: 20;
-}
-
-/* side admin menu */
-#adminmenu * {
-	-webkit-user-select: none;
-	-moz-user-select: none;
-	user-select: none;
-}
-
-#adminmenu .wp-submenu {
-	list-style: none;
-	padding: 0;
-	margin: 0;
-	overflow: hidden;
-}
-
-#adminmenu li .wp-submenu,
-.folded #adminmenu .wp-has-current-submenu .wp-submenu {
-	display: none;
-	position: absolute;
-	top: -1px;
-	left: 146px;
-	z-index: 999;
-	overflow: hidden;
-}
-
-.js #adminmenu .wp-submenu.sub-open,
-.folded #adminmenu .wp-has-current-submenu .wp-submenu.sub-open,
-.no-js #adminmenu .wp-has-submenu:hover .wp-submenu,
-#adminmenu .wp-has-current-submenu .wp-submenu,
-#adminmenu li.focused .wp-submenu {
-	display: block;
-}
-
-#adminmenu .wp-has-current-submenu .wp-submenu {
-	position: relative;
-	z-index: 2;
-	top: auto;
-	left: auto;
-	right: auto;
-	bottom: auto;
-	padding: 0;
-}
-
-#adminmenu .wp-has-current-submenu .wp-submenu-wrap {
-	-moz-box-shadow: none;
-	-webkit-box-shadow: none;
-	box-shadow: none;
-}
-
-.folded #adminmenu .wp-submenu,
-.folded #adminmenu .wp-has-current-submenu .wp-submenu {
-	top: -5px;
-	left: 26px;
-}
-
-#adminmenu .wp-submenu.sub-open,
-#adminmenu li.focused.wp-not-current-submenu .wp-submenu,
-.folded #adminmenu li.focused.wp-has-current-submenu .wp-submenu,
-.folded #adminmenu .wp-has-current-submenu .wp-submenu.sub-open,
-.no-js #adminmenu .wp-has-submenu:hover .wp-submenu,
-.no-js.folded #adminmenu .wp-has-current-submenu:hover .wp-submenu {
-	padding: 0 8px 8px 0;
-}
-
-.no-js #adminmenu .wp-has-current-submenu:hover .wp-submenu,
-#adminmenu .wp-has-current-submenu .wp-submenu {
-	padding: 0;
-}
-
-#adminmenu .wp-submenu a {
-	font-size: 12px;
-	line-height: 18px;
-}
-
-#adminmenu a.menu-top,
-#adminmenu .wp-submenu-head {
-	font-size: 13px;
-	line-height: 18px;
-}
-
-#adminmenu div.wp-submenu-head {
-	display: none;
-}
-
-.folded #adminmenu div.wp-submenu-head {
-	display: block;
-}
-
-.folded #adminmenu a.menu-top,
-body.no-js #adminmenu .wp-menu-toggle,
-.folded #adminmenu div.wp-menu-toggle {
-	display: none;
-}
-
-#adminmenu div.wp-menu-image {
-	float: left;
-	width: 28px;
-	height: 28px;
-}
-
-.folded #adminmenu div.wp-menu-image {
-	width: 30px;
-}
-
-#adminmenu li {
-	margin: 0;
-	padding: 0;
-	cursor: pointer;
-}
-
-#adminmenu a {
-	display: block;
-	line-height: 18px;
-	padding: 2px 5px;
-}
-
-#adminmenu li.menu-top {
-	min-height: 29px;
-	position: relative;
-}
-
-#adminmenu a.menu-top {
-	font-weight: bold;
-	line-height: 18px;
-	min-width: 10em;
-	padding: 5px 5px;
-	border-width: 1px 0 1px;
-	border-style: solid;
-}
-
-#adminmenu li.wp-menu-open {
-	border-width: 0 0 1px;
-	border-style: solid;
-}
-
-#adminmenu .wp-submenu ul {
-	padding: 4px 0;
-}
-
-#adminmenu .wp-submenu a {
-	margin: 0;
-}
-
-#adminmenu li li {
-	margin-left: 8px;
-}
-
-#adminmenu .wp-submenu a,
-#adminmenu li li a,
-.folded #adminmenu .wp-not-current-submenu li a {
-	padding-left: 12px;
-}
-
-#adminmenu .wp-not-current-submenu li a {
-	padding-left: 18px;
-}
-
-.folded #adminmenu li li {
-	margin-left: 0;
-}
-
-.folded #adminmenu li li a {
-	padding-left: 0;
-}
-
-.wp-menu-arrow {
-	display: none;
-	cursor: auto;
-	z-index: 25;
-	position: absolute;
-	right: 100%;
-	margin: 0;
-	height: 30px;
-	width: 6px;
-
-	-moz-transform:    translate( 146px );
-	-webkit-transform: translate( 146px );
-	-o-transform:      translate( 146px );
-	-ms-transform:     translate( 146px );
-	transform:         translate( 146px );
-}
-
-#adminmenu li.wp-has-current-submenu .wp-menu-arrow,
-#adminmenu li.menu-top:hover .wp-menu-arrow,
-#adminmenu li.current .wp-menu-arrow,
-#adminmenu li.focused .wp-menu-arrow,
-#adminmenu li.menu-top.wp-has-submenu:hover .wp-menu-arrow div {
-	display: block;
-}
-
-#adminmenu li.wp-not-current-submenu:hover .wp-menu-arrow div {
-	display: none;
-}
-
-#adminmenu li.menu-top:hover .wp-menu-arrow,
-#adminmenu li.menu-top.focused .wp-menu-arrow {
-	z-index: 1001;
-}
-
-.ie8 #adminmenu li.menu-top:hover .wp-menu-arrow {
-	display: none;
-}
-
-#adminmenu .wp-menu-arrow div {
-	position: absolute;
-	top: 7px;
-	left: -1px;
-	width: 14px;
-	height: 15px;
-
-	-moz-transform:    matrix( -0.6, 1, 0.6, 1, 0, 0 );
-	-webkit-transform: matrix( -0.6, 1, 0.6, 1, 0, 0 );
-	-o-transform:      matrix( -0.6, 1, 0.6, 1, 0, 0 );
-	-ms-transform:     matrix( -0.6, 1, 0.6, 1, 0, 0 );
-	transform:         matrix( -0.6, 1, 0.6, 1, 0, 0 );
-}
-
-#adminmenu li.wp-not-current-submenu .wp-menu-arrow {
-	-moz-transform:    translate( 145px );
-	-webkit-transform: translate( 145px );
-	-o-transform:      translate( 145px );
-	-ms-transform:     translate( 145px );
-	transform:         translate( 145px );
-	height: 28px;
-	border-width: 1px 0;
-	border-style: solid;
-}
-
-.folded .wp-menu-arrow {
-	-moz-transform:    translate( 33px );
-	-webkit-transform: translate( 33px );
-	-o-transform:      translate( 33px );
-	-ms-transform:     translate( 33px );
-	transform:         translate( 33px );
-}
-
-#adminmenu .wp-not-current-submenu .wp-menu-arrow div {
-	width: 15px;
-	top: 6px;
-	border-width: 0 0 1px 1px;
-	border-style: solid;
-}
-
-.wp-menu-arrow,
-.folded #adminmenu li.menu-top:hover .wp-menu-arrow {
-	display: none;
-}
-
-.folded #adminmenu li.current:hover .wp-menu-arrow,
-.folded #adminmenu li.menu-top.wp-menu-open:hover .wp-menu-arrow {
-	display: block;
-	z-index: 125;
-}
-
-#adminmenu .wp-submenu li {
-	padding: 0;
-	margin: 0;
-}
-
-.folded #adminmenu li.menu-top {
-	border-width: 1px 0;
-	border-style: solid none;
-}
-
-#adminmenu .wp-menu-image img {
-	float: left;
-	padding: 5px 0 0 2px;
-	opacity: 0.6;
-	filter: alpha(opacity=60);
-}
-
-#adminmenu li.menu-top:hover .wp-menu-image img,
-#adminmenu li.wp-has-current-submenu .wp-menu-image img {
-	opacity: 1;
-	filter: alpha(opacity=100);
-}
-
-#adminmenu li.wp-menu-separator {
-	height: 3px;
-	padding: 0;
-	margin: 0;
-	border-width: 1px 0;
-	border-style: solid;
-	cursor: inherit;
-}
-
-#adminmenu div.separator {
-	height: 1px;
-	padding: 0;
-	border-width: 1px 0 0 0;
-	border-style: solid;
-}
-
-#adminmenu .wp-submenu .wp-submenu-head {
-	padding: 6px 4px 5px 10px;
-	cursor: default;
-	border-width: 1px 0;
-	border-style: solid;
-}
-
-#adminmenu li .wp-submenu-wrap {
-	border-width: 1px 1px 1px 0;
-	border-style: solid solid solid none;
-	position: relative;
-	-webkit-border-bottom-right-radius: 3px;
-	-webkit-border-top-right-radius: 3px;
-	border-bottom-right-radius: 3px;
-	border-top-right-radius: 3px;
-}
-
-#adminmenu li.wp-menu-open .wp-submenu-wrap {
-	border: 0 none;
-}
-
-.folded #adminmenu .wp-submenu .wp-submenu-wrap {
-	margin-top: 3px;
-}
-
-.folded #adminmenu .wp-has-current-submenu {
-	margin-bottom: 1px;
-}
-
-.folded #adminmenu .wp-has-current-submenu.menu-top-last {
-	margin-bottom: 0;
-}
-
-.folded #adminmenu .wp-has-current-submenu .wp-submenu-wrap {
-	margin-top: 4px;
-}
-
-.folded #adminmenu .wp-submenu ul {
-	border-width: 0 0 0 1px;
-	border-style: solid;
-}
-
-.folded #adminmenu .wp-submenu a {
-	padding-left: 10px;
-}
-
-.folded #adminmenu a.wp-has-submenu {
-	margin-left: 40px;
-}
-
-#adminmenu .wp-menu-toggle {
-	width: 18px;
-	clear: right;
-	float: right;
-	margin: 1px 0 0;
-	height: 27px;
-	padding: 1px 2px 0 0;
-	cursor: pointer;
-}
-
-#adminmenu .wp-menu-image a {
-	height: 24px;
-}
-
-#adminmenu .awaiting-mod,
-#adminmenu span.update-plugins,
-#sidemenu li a span.update-plugins {
-	position: absolute;
-	font-family: sans-serif;
-	font-size: 9px;
-	line-height: 17px;
-	font-weight: bold;
-	margin-top: 1px;
-	margin-left: 7px;
-	-webkit-border-radius: 10px;
-	border-radius: 10px;
-}
-
-#adminmenu li .awaiting-mod span,
-#adminmenu li span.update-plugins span,
-#sidemenu li a span.update-plugins span {
-	display: block;
-	padding: 0 6px;
-}
-
-#adminmenu li span.count-0,
-#sidemenu li a .count-0 {
-	display: none;
-}
-
-#collapse-menu {
-	font-size: 12px;
-	line-height: 34px;
-}
-
-.folded #collapse-menu span {
-	display: none;
-}
-
-#collapse-button,
-#collapse-button div {
-	width: 15px;
-	height: 15px;
-}
-
-#collapse-button {
-	float: left;
-	margin: 8px 6px;
-	border-width: 1px;
-	border-style: solid;
-	-webkit-border-radius: 10px;
-	border-radius: 10px;
-}
-
-/* Auto-folding of the admin menu */
-@media only screen and (max-width: 900px) {
-	#wpcontent,
-	#footer {
-		margin-left: 52px;
-	}
-
-	#adminmenuback,
-	#adminmenuwrap,
-	#adminmenu,
-	#adminmenu li.menu-top {
-		width: 32px;
-	}
-
-	#adminmenu .wp-has-current-submenu .wp-submenu {
-		display: none;
-		position: absolute;
-		width: 145px;
-		z-index: 999;
-		overflow: hidden;
-	}
-
-	#adminmenu .wp-has-current-submenu .wp-submenu.sub-open {
-		display: block;
-	}
-
-	#adminmenu li .wp-submenu,
-	#adminmenu .wp-has-current-submenu .wp-submenu {
-		top: -5px;
-		left: 26px;
-	}
-
-	#adminmenu li.focused.wp-has-current-submenu .wp-submenu,
-	#adminmenu .wp-has-current-submenu .wp-submenu.sub-open {
-		padding: 0 8px 8px 0;
-	}
-
-	#adminmenu div.wp-submenu-head {
-		display: block;
-	}
-
-	#adminmenu a.menu-top,
-	#adminmenu div.wp-menu-toggle {
-		display: none;
-	}
-
-	#adminmenu div.wp-menu-image {
-		width: 30px;
-	}
-
-	#adminmenu .wp-not-current-submenu li a {
-		padding-left: 12px;
-	}
-
-	#adminmenu li li {
-		margin-left: 0;
-	}
-
-	#adminmenu li li a {
-		padding-left: 0;
-	}
-
-	.wp-menu-arrow {
-		-moz-transform:    translate( 33px );
-		-webkit-transform: translate( 33px );
-		-o-transform:      translate( 33px );
-		-ms-transform:     translate( 33px );
-		transform:         translate( 33px );
-	}
-
-	#adminmenu li.menu-top:hover .wp-menu-arrow {
-		display: none;
-	}
-
-	#adminmenu li.current:hover .wp-menu-arrow,
-	#adminmenu li.menu-top.wp-menu-open:hover .wp-menu-arrow {
-		display: block;
-		z-index: 125;
-	}
-
-	#adminmenu li.menu-top {
-		border-width: 1px 0;
-		border-style: solid none;
-	}
-
-	#adminmenu .wp-submenu .wp-submenu-wrap {
-		margin-top: 3px;
-	}
-
-	#adminmenu .wp-has-current-submenu {
-		margin-bottom: 1px;
-	}
-
-	#adminmenu .wp-has-current-submenu.menu-top-last {
-		margin-bottom: 0;
-	}
-
-	#adminmenu .wp-has-current-submenu .wp-submenu-wrap {
-		margin-top: 4px;
-	}
-
-	#adminmenu .wp-submenu ul {
-		border-width: 0 0 0 1px;
-		border-style: solid;
-	}
-
-	#adminmenu .wp-submenu a {
-		padding-left: 10px;
-	}
-
-	#adminmenu a.wp-has-submenu {
-		margin-left: 40px;
-	}
-
-	#collapse-menu {
-		display: none;
-	}
-}
-
-/* List table styles */
-.post-com-count-wrapper {
-	min-width: 22px;
-	font-family: sans-serif;
-}
-
-.post-com-count {
-	height: 1.3em;
-	line-height: 1.1em;
-	display: block;
-	text-decoration: none;
-	padding: 0 0 6px;
-	cursor: pointer;
-	background-position: center -80px;
-	background-repeat: no-repeat;
-}
-
-.post-com-count span {
-	font-size: 11px;
-	font-weight: bold;
-	height: 1.4em;
-	line-height: 1.4em;
-	min-width: 0.7em;
-	padding: 0 6px;
-	display: inline-block;
-	-webkit-border-radius: 5px;
-	border-radius: 5px;
-}
-
-strong .post-com-count {
-	background-position: center -55px;
-}
-
-.post-com-count:hover {
-	background-position: center -3px;
-}
-
-.column-response .post-com-count {
-	float: left;
-	margin-right: 5px;
-	text-align: center;
-}
-
-.response-links {
-	float: left;
-}
-
-#the-comment-list .attachment-80x60 {
-	padding: 4px 8px;
-}
-
-
-/*------------------------------------------------------------------------------
-  8.0 - Layout Blocks
-------------------------------------------------------------------------------*/
-
-html.wp-toolbar {
-	padding-top: 28px;
-	-webkit-box-sizing: border-box;
-	-moz-box-sizing: border-box;
-	box-sizing: border-box;
-}
-
-.narrow {
-	width: 70%;
-	margin-bottom: 40px;
-}
-
-.narrow p {
-	line-height: 150%;
-}
-
-.widefat th,
-.widefat td {
-	overflow: hidden;
-}
-
-.widefat th {
-	font-weight: normal;
-}
-
-.widefat td p {
-	margin: 2px 0 0.8em;
-}
-
-.widefat .column-comment p {
-	margin: 0.6em 0;
-}
-
-/* Screens with postboxes */
-.postbox-container {
-	float: left;
-}
-
-#dashboard-widgets.columns-1 .postbox-container {
-	width: 100%;
-}
-
-#dashboard-widgets.columns-2 .postbox-container {
-	width: 49.5%;
-}
-
-#dashboard-widgets.columns-2 #postbox-container-2,
-#dashboard-widgets.columns-2 #postbox-container-3,
-#dashboard-widgets.columns-2 #postbox-container-4 {
-	float: right;
-	width: 50.5%;
-}
-
-#dashboard-widgets.columns-3 .postbox-container {
-	width: 33.5%;
-}
-
-#dashboard-widgets.columns-3 #postbox-container-1 {
-	width: 33%;
-}
-
-#dashboard-widgets.columns-3 #postbox-container-3,
-#dashboard-widgets.columns-3 #postbox-container-4 {
-	float: right;
-}
-
-#dashboard-widgets.columns-4 .postbox-container {
-	width: 25%;
-}
-
-.postbox-container .meta-box-sortables {
-	-moz-box-sizing: border-box;
-	-webkit-box-sizing: border-box;
-	-ms-box-sizing: border-box;
-	box-sizing: border-box;
-}
-
-.metabox-holder .postbox-container .empty-container {
-	border: 3px dashed #CCCCCC;
-	height: 250px;
-}
-
-.metabox-holder.columns-1 .postbox-container .empty-container,
-.columns-2 #postbox-container-3 .empty-container,
-.columns-2 #postbox-container-4 .empty-container,
-.columns-3 #postbox-container-4 .empty-container {
-	border: 0 none;
-	height: 0;
-	min-height: 0;
-}
-
-#poststuff {
-	padding-top: 10px;
-}
-
-#poststuff #post-body {
-	padding: 0;
-}
-
-#post-body-content {
-	width: 100%;
-	float: left;
-}
-
-#poststuff .postbox-container {
-	width: 100%;
-}
-
-#poststuff #post-body.columns-2 {
-	margin-right: 300px;
-}
-
-#post-body.columns-2 #postbox-container-1 {
-	float: right;
-	margin-right: -300px;
-	width: 280px;
-}
-
-#post-body.columns-2 #side-sortables {
-	min-height: 250px;
-}
-
-/* one column on the dash */
-@media only screen and (max-width: 799px) {
-	#wpbody-content #dashboard-widgets .postbox-container {
-		width: 100%;
-	}
-
-	#wpbody-content .metabox-holder .postbox-container .empty-container {
-		border: 0 none;
-		height: 0;
-		min-height: 0;
-	}
-}
-
-/* two columns on the dash, but keep the setting if one is selected */
-@media only screen and (min-width: 800px) and (max-width: 1200px) {
-	#wpbody-content #dashboard-widgets .postbox-container {
-		width: 49.5%;
-	}
-
-	#wpbody-content #dashboard-widgets #postbox-container-2,
-	#wpbody-content #dashboard-widgets #postbox-container-3,
-	#wpbody-content #dashboard-widgets #postbox-container-4 {
-		float: right;
-		width: 50.5%;
-	}
-
-	#dashboard-widgets #postbox-container-3 .empty-container,
-	#dashboard-widgets #postbox-container-4 .empty-container {
-		border: 0 none;
-		height: 0;
-		min-height: 0;
-	}
-
-	#wpbody #wpbody-content #dashboard-widgets.columns-1 .postbox-container {
-		width: 100%;
-	}
-
-	#wpbody #wpbody-content .metabox-holder.columns-1 .postbox-container .empty-container {
-		border: 0 none;
-		height: 0;
-		min-height: 0;
-	}
-
-	/* show the radio buttons for column prefs only for one or two columns */
-	.index-php .screen-layout,
-	.index-php .columns-prefs {
-		display: block;
-	}
-
-	.columns-prefs .columns-prefs-3,
-	.columns-prefs .columns-prefs-4 {
-		display: none;
-	}
-}
-
-/* one column on the post write/edit screen */
-@media only screen and (max-width: 850px) {
-	#wpbody-content #poststuff #post-body {
-		margin: 0;
-	}
-
-	#wpbody-content #post-body.columns-2 #postbox-container-1 {
-		margin-right: 0;
-		width: 100%;
-	}
-
-	#poststuff #postbox-container-1 .empty-container,
-	#poststuff #postbox-container-1 #side-sortables:empty {
-		border: 0 none;
-		height: 0;
-		min-height: 0;
-	}
-
-	#poststuff #post-body.columns-2 #side-sortables {
-		min-height: 0;
-	}
-
-	/* hide the radio buttons for column prefs */
-	.screen-layout,
-	.columns-prefs {
-		display: none;
-	}
-}
-
-.postbox .hndle {
-	cursor: move;
-	-webkit-border-top-left-radius: 3px;
-	-webkit-border-top-right-radius: 3px;
-	border-top-left-radius: 3px;
-	border-top-right-radius: 3px;
-}
-
-.postbox.closed .hndle {
-	-webkit-border-radius: 3px;
-	border-radius: 3px;
-}
-
-.hndle a {
-	font-size: 11px;
-	font-weight: normal;
-}
-
-.postbox .handlediv {
-	float: right;
-	width: 27px;
-	height: 30px;
-	cursor: pointer;
-}
-
-.sortable-placeholder {
-	border-width: 1px;
-	border-style: dashed;
-	margin-bottom: 20px;
-}
-
-.widget,
-.postbox,
-.stuffbox {
-	margin-bottom: 20px;
-	padding: 0;
-	border-width: 1px;
-	border-style: solid;
-	line-height: 1;
-}
-
-.widget .widget-top,
-.postbox h3,
-.stuffbox h3 {
-	margin-top: 1px;
-	border-bottom-width: 1px;
-	border-bottom-style: solid;
-	cursor: move;
-	-webkit-user-select: none;
-	-moz-user-select: none;
-	user-select: none;
-}
-
-.stuffbox h3 {
-	cursor: auto;
-}
-
-.postbox .inside,
-.stuffbox .inside {
-	padding: 0 10px;
-	line-height: 1.4em;
-}
-
-.postbox .inside {
-	margin: 10px 0;
-	position: relative;
-}
-
-.postbox.closed h3 {
-	border: none;
-	-moz-box-shadow: none;
-	-webkit-box-shadow: none;
-	box-shadow: none;
-}
-
-.postbox table.form-table {
-	margin-bottom: 0;
-}
-
-.temp-border {
-	border: 1px dotted #ccc;
-}
-
-.columns-prefs label {
-	padding: 0 5px;
-}
-
-
-/*------------------------------------------------------------------------------
-  9.0 - Dashboard
-------------------------------------------------------------------------------*/
-
-#dashboard-widgets-wrap {
-	margin: 0 -8px;
-}
-
-#wpbody-content .metabox-holder {
-	padding-top: 10px;
-}
-
-#dashboard-widgets .meta-box-sortables {
-	margin: 0 8px;
-}
-
-#dashboard_recent_comments div.undo {
-	border-top-style: solid;
-	border-top-width: 1px;
-	margin: 0 -10px;
-	padding: 3px 8px;
-	font-size: 11px;
-}
-
-#the-comment-list td.comment p.comment-author {
-	margin-top: 0;
-	margin-left: 0;
-}
-
-#the-comment-list p.comment-author img {
-	float: left;
-	margin-right: 8px;
-}
-
-#the-comment-list p.comment-author strong a {
-	border: none;
-}
-
-#the-comment-list td {
-	vertical-align: top;
-}
-
-#the-comment-list td.comment {
-	word-wrap: break-word;
-}
-
-/* Welcome Panel */
-.welcome-panel {
-	margin: 20px 8px;
-	padding: 30px 10px 20px;
-	border-width: 1px 0;
-	border-style: solid;
-	position: relative;
-	line-height: 1.6em;
-	overflow: auto;
-}
-
-.welcome-panel h3 {
-	font-family: "HelveticaNeue-Light", "Helvetica Neue Light", "Helvetica Neue", sans-serif;
-	font-size: 32px;
-	font-weight: normal;
-	line-height: 1.2;
-	margin: 0.1em 0 0.8em;
-}
-.welcome-panel h4 {
-	font-size: 14px;
-}
-
-.welcome-panel .welcome-panel-close {
-	position: absolute;
-	top: 0;
-	right: 10px;
-	padding: 8px 3px;
-	font-size: 13px;
-	text-decoration: none;
-}
-
-.welcome-panel .welcome-panel-close:before {
-	background: url('../images/xit.gif') 0 17% no-repeat;
-	content: ' ';
-	height: 100%;
-	width: 10px;
-	left: -12px;
-	position: absolute;
-}
-
-.welcome-panel .welcome-panel-close:hover:before {
-	background-position: 100% 17%;
-}
-
-.welcome-panel .wp-badge {
-	float: left;
-	margin-bottom: 20px;
-}
-
-.welcome-panel-content {
-	max-width: 1500px;
-}
-
-.welcome-panel-content .about-description,
-.welcome-panel h3 {
-	margin-left: 190px;
-}
-
-.welcome-panel p.welcome-panel-dismiss {
-	clear: both;
-	padding: 1em 0 0 0;
-}
-
-.welcome-panel .welcome-panel-column-container {
-	clear: both;
-	overflow: hidden;
-	position: relative;
-	padding-left: 26px;
-}
-
-.welcome-panel .welcome-panel-column {
-	margin: 0 5% 0 -25px;
-	padding-left: 25px;
-	width: 30%;
-	min-width: 200px;
-	float: left;
-}
-
-.welcome-panel .welcome-panel-column.welcome-panel-last {
-	margin-right: 0;
-}
-
-.welcome-panel h4 .icon16 {
-	margin-left: -32px;
-}
-
-.welcome-panel .welcome-panel-column ul {
-	margin: 1.6em 1em 1em 1.3em;
-}
-
-.welcome-panel .welcome-panel-column li {
-	list-style-type: disc;
-	padding-left: 2px;
-}
-
-
-/*------------------------------------------------------------------------------
-  10.0 - List Posts (/Pages/etc)
-------------------------------------------------------------------------------*/
-
-table.fixed {
-	table-layout: fixed;
-}
-
-.fixed .column-rating,
-.fixed .column-visible {
-	width: 8%;
-}
-
-.fixed .column-date,
-.fixed .column-parent,
-.fixed .column-links {
-	width: 10%;
-}
-
-.fixed .column-response,
-.fixed .column-author,
-.fixed .column-categories,
-.fixed .column-tags,
-.fixed .column-rel,
-.fixed .column-role {
-	width: 15%;
-}
-
-.fixed .column-comments {
-	width: 4em;
-	padding: 8px 0;
-	text-align: left;
-}
-
-.fixed .column-comments .vers {
-	padding-left: 3px;
-}
-
-.fixed .column-comments a {
-	float: left;
-}
-
-.fixed .column-slug {
-	width: 25%;
-}
-
-.fixed .column-posts {
-	width: 10%;
-}
-
-.fixed .column-icon {
-	width: 80px;
-}
-
-#comments-form .fixed .column-author {
-	width: 20%;
-}
-
-#commentsdiv.postbox .inside {
-	margin: 0;
-	padding: 0;
-}
-
-#commentsdiv .inside .row-actions {
-	line-height:18px;
-}
-
-#commentsdiv .inside .column-author {
-	width: 25%;
-}
-
-#commentsdiv .column-comment p {
-	margin: 0.6em 0;
-	padding: 0;
-}
-
-#commentsdiv #replyrow td {
-	padding: 0;
-}
-
-#commentsdiv p {
-	padding: 8px 10px;
-	margin: 0;
-}
-
-#commentsdiv #add-new-comment {
-	border-width: 0 0 1px;
-	border-style: none none solid;
-}
-
-#commentsdiv .comments-box {
-	border: 0 none;
-}
-
-#commentsdiv .comments-box thead th {
-	background: transparent;
-	padding: 0 7px 4px;
-	font-style: italic;
-}
-
-#commentsdiv .comments-box tr:last-child td {
-	border-bottom: 0 none;
-}
-
-#commentsdiv img.waiting {
-	padding-left: 5px;
-}
-
-.sorting-indicator {
-	display: none;
-	width: 7px;
-	height: 4px;
-	margin-top: 8px;
-	margin-left: 7px;
-	background-image: url(../images/sort.gif);
-	background-repeat: no-repeat;
-}
-
-.fixed .column-comments .sorting-indicator {
-	margin-top: 3px;
-}
-
-.widefat th.sortable,
-.widefat th.sorted {
-	padding: 0;
-}
-
-th.sortable a,
-th.sorted a {
-	display: block;
-	overflow: hidden;
-	padding: 7px 7px 8px;
-}
-
-.fixed .column-comments.sortable a,
-.fixed .column-comments.sorted a {
-	padding: 8px 0;
-}
-
-th.sortable a span,
-th.sorted a span {
-	float: left;
-	cursor: pointer;
-}
-
-th.sorted.asc .sorting-indicator,
-th.desc:hover span.sorting-indicator {
-	display: block;
-	background-position: 0 0;
-}
-
-th.sorted.desc .sorting-indicator,
-th.asc:hover span.sorting-indicator {
-	display: block;
-	background-position: -7px 0;
-}
-
-/* Bulk Actions */
-.tablenav-pages a {
-	border-bottom-style: solid;
-	border-bottom-width: 2px;
-	font-weight: bold;
-	margin-right: 1px;
-	padding: 0 2px;
-}
-.tablenav-pages .current-page {
-	text-align: center;
-}
-.tablenav-pages .next-page {
-	margin-left: 2px;
-}
-
-.tablenav a.button-secondary {
-	display: block;
-	margin: 3px 8px 0 0;
-}
-
-.tablenav {
-	clear: both;
-	height: 30px;
-	margin: 6px 0 4px;
-	vertical-align: middle;
-}
-
-.tablenav.themes {
-	max-width: 98%;
-}
-
-.tablenav .tablenav-pages {
-	float: right;
-	display: block;
-	cursor: default;
-	height: 30px;
-	line-height: 30px;
-	font-size: 12px;
-}
-
-.tablenav .no-pages,
-.tablenav .one-page .pagination-links {
-	display: none;
-}
-
-.tablenav .tablenav-pages a,
-.tablenav-pages span.current  {
-	text-decoration: none;
-	padding: 3px 6px;
-}
-
-.tablenav .tablenav-pages a.disabled:hover ,
-.tablenav .tablenav-pages a.disabled:active {
-	cursor: default;
-}
-
-.tablenav .displaying-num {
-	margin-right: 10px;
-	font-size: 12px;
-	font-style: italic;
-}
-
-.tablenav .actions {
-	padding: 2px 8px 0 0;
-}
-
-.tablenav .delete {
-	margin-right: 20px;
-}
-
-.view-switch {
-	float: right;
-	margin: 6px 8px 0;
-}
-
-.view-switch a {
-	text-decoration: none;
-}
-
-.filter {
-	float: left;
-	margin: -5px 0 0 10px;
-}
-
-.filter .subsubsub {
-	margin-left: -10px;
-	margin-top: 13px;
-}
-.screen-per-page {
-	width: 4em;
-}
-
-#posts-filter fieldset {
-	float: left;
-	margin: 0 1.5ex 1em 0;
-	padding: 0;
-}
-
-#posts-filter fieldset legend {
-	padding: 0 0 .2em 1px;
-}
-
-span.post-state-format {
-	font-weight: normal;
-}
-
-
-/*------------------------------------------------------------------------------
-  10.1 - Inline Editing
-------------------------------------------------------------------------------*/
-
-/*
-.quick-edit* is for Quick Edit
-.bulk-edit* is for Bulk Edit
-.inline-edit* is for everything
-*/
-
-/*	Layout */
-
-#wpbody-content .inline-edit-row fieldset {
-	font-size: 12px;
-	float: left;
-	margin: 0;
-	padding: 0;
-	width: 100%;
-}
-
-tr.inline-edit-row td,
-#wpbody-content .inline-edit-row fieldset .inline-edit-col {
-	padding: 0 0.5em;
-}
-
-#wpbody-content .quick-edit-row-page fieldset.inline-edit-col-right .inline-edit-col {
-	border-width: 0 0 0 1px;
-	border-style: none none none solid;
-}
-
-#wpbody-content .quick-edit-row-post .inline-edit-col-left {
-	width: 40%;
-}
-
-#wpbody-content .quick-edit-row-post .inline-edit-col-right {
-	width: 39%;
-}
-
-#wpbody-content .inline-edit-row-post .inline-edit-col-center {
-	width: 20%;
-}
-
-#wpbody-content .quick-edit-row-page .inline-edit-col-left {
-	width: 50%;
-}
-
-#wpbody-content .quick-edit-row-page .inline-edit-col-right,
-#wpbody-content .bulk-edit-row-post .inline-edit-col-right {
-	width: 49%;
-}
-
-#wpbody-content .bulk-edit-row .inline-edit-col-left {
-	width: 30%;
-}
-
-#wpbody-content .bulk-edit-row-page .inline-edit-col-right {
-	width: 69%;
-}
-
-#wpbody-content .bulk-edit-row .inline-edit-col-bottom {
-	float: right;
-	width: 69%;
-}
-
-#wpbody-content .inline-edit-row-page .inline-edit-col-right {
-	margin-top: 27px;
-}
-
-.inline-edit-row fieldset .inline-edit-group {
-	clear: both;
-}
-
-.inline-edit-row fieldset .inline-edit-group:after {
-	content: ".";
-	display: block;
-	height: 0;
-	clear: both;
-	visibility: hidden;
-}
-
-.inline-edit-row p.submit {
-	clear: both;
-	padding: 0.5em;
-	margin: 0.5em 0 0;
-}
-
-.inline-edit-row span.error {
-	line-height: 22px;
-	margin: 0 15px;
-	padding: 3px 5px;
-}
-
-/*	Positioning */
-.inline-edit-row h4 {
-	margin: .2em 0;
-	padding: 0;
-	line-height: 23px;
-}
-.inline-edit-row fieldset span.title,
-.inline-edit-row fieldset span.checkbox-title {
-	margin: 0;
-	padding: 0;
-	line-height: 27px;
-}
-
-.inline-edit-row fieldset label,
-.inline-edit-row fieldset span.inline-edit-categories-label {
-	display: block;
-	margin: .2em 0;
-}
-
-.inline-edit-row fieldset label.inline-edit-tags {
-	margin-top: 0;
-}
-
-.inline-edit-row fieldset label.inline-edit-tags span.title {
-	margin: .2em 0;
-}
-
-.inline-edit-row fieldset label span.title {
-	display: block;
-	float: left;
-	width: 5em;
-}
-
-.inline-edit-row fieldset label span.input-text-wrap {
-	display: block;
-	margin-left: 5em;
-}
-
-.quick-edit-row-post fieldset.inline-edit-col-right label span.title {
-	width: auto;
-	padding-right: 0.5em;
-}
-
-.inline-edit-row .input-text-wrap input[type=text] {
-	width: 100%;
-}
-
-.inline-edit-row fieldset label input[type=checkbox] {
-	vertical-align: text-bottom;
-}
-
-.inline-edit-row fieldset label textarea {
-	width: 100%;
-	height: 4em;
-}
-
-#wpbody-content .bulk-edit-row fieldset .inline-edit-group label {
-	max-width: 50%;
-}
-
-#wpbody-content .quick-edit-row fieldset .inline-edit-group label.alignleft:first-child {
-	margin-right: 0.5em
-}
-
-.inline-edit-col-right .input-text-wrap input.inline-edit-menu-order-input {
-	width: 6em;
-}
-
-/*	Styling */
-.inline-edit-row h4 {
-	text-transform: uppercase;
-}
-
-.inline-edit-row fieldset span.title,
-.inline-edit-row fieldset span.checkbox-title {
-	font-style: italic;
-	line-height: 1.8em;
-}
-
-/*	Specific Elements */
-.inline-edit-row fieldset input[type="text"],
-.inline-edit-row fieldset textarea {
-	border-style: solid;
-	border-width: 1px;
-}
-
-.inline-edit-row fieldset .inline-edit-date {
-	float: left;
-}
-
-.inline-edit-row fieldset input[name=jj],
-.inline-edit-row fieldset input[name=hh],
-.inline-edit-row fieldset input[name=mn] {
-	font-size: 12px;
-	width: 2.1em;
-}
-
-.inline-edit-row fieldset input[name=aa] {
-	font-size: 12px;
-	width: 3.5em;
-}
-
-.inline-edit-row fieldset label input.inline-edit-password-input {
-	width: 8em;
-}
-
-.inline-edit-row .catshow,
-.inline-edit-row .cathide {
-	cursor: pointer;
-}
-
-ul.cat-checklist {
-	height: 12em;
-	border-style: solid;
-	border-width: 1px;
-	overflow-y: scroll;
-	padding: 0 5px;
-	margin: 0;
-}
-
-#bulk-titles {
-	display: block;
-	height: 12em;
-	border-style: solid;
-	border-width: 1px;
-	overflow-y: scroll;
-	padding: 0 5px;
-	margin: 0 0 5px;
-}
-
-.inline-edit-row fieldset ul.cat-checklist li,
-.inline-edit-row fieldset ul.cat-checklist input {
-	margin: 0;
-}
-
-.inline-edit-row fieldset ul.cat-checklist label,
-.inline-edit-row .catshow,
-.inline-edit-row .cathide,
-.inline-edit-row #bulk-titles div {
-	font-family: sans-serif;
-	font-style: normal;
-	font-size: 11px;
-}
-
-table .inline-edit-row fieldset ul.cat-hover {
-	height: auto;
-	max-height: 30em;
-	overflow-y: auto;
-	position: absolute;
-}
-
-.inline-edit-row fieldset label input.inline-edit-menu-order-input {
-	width: 3em;
-}
-
-.inline-edit-row fieldset label input.inline-edit-slug-input {
-	width: 75%;
-}
-
-.quick-edit-row-post fieldset label.inline-edit-status {
-	float: left;
-}
-
-#bulk-titles {
-	line-height: 140%;
-}
-#bulk-titles div {
-	margin: 0.2em 0.3em;
-}
-
-#bulk-titles div a {
-	cursor: pointer;
-	display: block;
-	float: left;
-	height: 10px;
-	margin: 3px 3px 0 -2px;
-	overflow: hidden;
-	position: relative;
-	text-indent: -9999px;
-	width: 10px;
-}
-
-
-/*------------------------------------------------------------------------------
-  11.0 - Write/Edit Post Screen
-------------------------------------------------------------------------------*/
-
-#titlediv {
-	position: relative;
-	margin-bottom: 20px;
-}
-#titlediv label { cursor: text; }
-
-#titlediv div.inside {
-	margin: 0;
-}
-
-#poststuff #titlewrap {
-	border: 0;
-	padding: 0;
-}
-
-#titlediv #title {
-	padding: 3px 8px;
-	font-size: 1.7em;
-	line-height: 100%;
-	width: 100%;
-	outline: none;
-}
-
-#titlediv #title-prompt-text,
-#wp-fullscreen-title-prompt-text {
-	color: #bbb;
-	position: absolute;
-	font-size: 1.7em;
-	padding: 8px 10px;
-}
-
-#wp-fullscreen-title-prompt-text {
-	left: 0;
-	padding: 11px;
-}
-
-#poststuff .inside-submitbox,
-#side-sortables .inside-submitbox {
-	margin: 0 3px;
-	font-size: 11px;
-}
-
-input#link_description,
-input#link_url {
-	width: 98%;
-}
-
-#pending {
-	background: 0 none;
-	border: 0 none;
-	padding: 0;
-	font-size: 11px;
-	margin-top: -1px;
-}
-
-#edit-slug-box {
-	height: 1em;
-	margin-top: 8px;
-	padding: 0 10px;
-}
-
-#editable-post-name-full {
-	display: none;
-}
-
-#editable-post-name input {
-	width: 16em;
-}
-
-.postarea h3 label {
-	float: left;
-}
-
-#submitpost #ajax-loading,
-#submitpost .ajax-loading {
-	vertical-align: middle;
-}
-
-#wpcontent .ajax-loading {
-	visibility: hidden;
-}
-
-.submitbox .submit {
-	text-align: left;
-	padding: 12px 10px 10px;
-	font-size: 11px;
-}
-
-.submitbox .submitdelete {
-	text-decoration: none;
-	padding: 1px 2px;
-}
-
-.submitbox .submitdelete,
-.submitbox .submit a:hover {
-	border-bottom-width: 1px;
-	border-bottom-style: solid;
-}
-
-.submitbox .submit input {
-	margin-bottom: 8px;
-	margin-right: 4px;
-	padding: 6px;
-}
-
-.inside-submitbox #post_status {
-	margin: 2px 0 2px -2px;
-}
-
-#post-status-select, #post-format {
-	line-height: 2.5em;
-	margin-top: 3px;
-}
-
-/* Post Screen */
-#post-body #normal-sortables {
-	min-height: 50px;
-}
-
-.postbox {
-	position: relative;
-	min-width: 255px;
-}
-
-#trackback_url {
-	width: 99%;
-}
-
-#normal-sortables .postbox .submit {
-	background: transparent none;
-	border: 0 none;
-	float: right;
-	padding: 0 12px;
-	margin:0;
-}
-
-.category-add input[type="text"],
-.category-add select {
-	width: 100%;
-	max-width: 260px;
-}
-
-.press-this #side-sortables .category-tabs li,
-ul.category-tabs li,
-#side-sortables .add-menu-item-tabs li,
-.wp-tab-bar li {
-	display: inline;
-	line-height: 1.35em;
-}
-
-.no-js .category-tabs li.hide-if-no-js {
- 	display: none;
-}
-
-.category-tabs a,
-#side-sortables .add-menu-item-tabs a,
-.wp-tab-bar a {
-	text-decoration: none;
-}
-
-.category-tabs {
-	margin: 8px 0 3px;
-}
-
-#category-adder h4 {
-	margin: 10px 0;
-}
-
-#side-sortables .add-menu-item-tabs,
-.wp-tab-bar {
-	margin-bottom: 3px;
-}
-
-#normal-sortables .postbox #replyrow .submit {
-	float: none;
-	margin: 0;
-	padding: 0 7px 5px;
-}
-
-#side-sortables .submitbox .submit input,
-#side-sortables .submitbox .submit .preview,
-#side-sortables .submitbox .submit a.preview:hover {
-	border: 0 none;
-}
-
-#side-sortables .inside-submitbox .insidebox,
-.stuffbox .insidebox {
-	margin: 11px 0;
-}
-
-ul.category-tabs,
-ul.add-menu-item-tabs,
-ul.wp-tab-bar {
-	margin-top: 12px;
-}
-
-ul.category-tabs li,
-ul.add-menu-item-tabs li.tabs,
-.wp-tab-active {
-	border-style: solid solid none;
-	border-width: 1px 1px 0;
-}
-
-#post-body .add-menu-item-tabs li.tabs {
-	border-style: solid none solid solid;
-	border-width: 1px 0 1px 1px;
-	margin-right: -1px;
-}
-
-ul.category-tabs li,
-ul.add-menu-item-tabs li,
-ul.wp-tab-bar li {
-	padding: 3px 5px 5px;
-	-webkit-border-top-left-radius: 3px;
-	-webkit-border-top-right-radius: 3px;
-	border-top-left-radius: 3px;
-	border-top-right-radius: 3px;
-}
-
-/* positioning etc. */
-form#tags-filter {
-	position: relative;
-}
-
-/* Edit posts */
-td.post-title strong,
-td.plugin-title strong {
-	display: block;
-	margin-bottom: .2em;
-}
-
-td.post-title p,
-td.plugin-title p {
-	margin: 6px 0;
-}
-
-/* Global classes */
-.wp-hidden-children .wp-hidden-child,
-.ui-tabs-hide {
-	display: none;
-}
-
-.commentlist .avatar {
-	vertical-align: text-top;
-}
-
-#post-body .tagsdiv #newtag {
-	margin-right: 5px;
-	width: 16em;
-}
-
-#side-sortables input#post_password {
-	width: 94%
-}
-
-#side-sortables .tagsdiv #newtag {
-	width: 68%;
-}
-
-#post-status-info {
-	border-width: 0 1px 1px;
-	border-style: none solid solid;
-	width: 100%;
-	-webkit-border-bottom-left-radius: 3px;
-	-webkit-border-bottom-right-radius: 3px;
-	border-bottom-left-radius: 3px;
-	border-bottom-right-radius: 3px;
-}
-
-#post-status-info td {
-	font-size: 12px;
-}
-
-.autosave-info {
-	padding: 2px 15px;
-	text-align: right;
-}
-
-#editorcontent #post-status-info {
-	border: none;
-}
-
-#post-body .wp_themeSkin .mceStatusbar a.mceResize {
-	display: block;
-	background: transparent url(../images/resize.gif) no-repeat scroll right bottom;
-	width: 12px;
-	cursor: se-resize;
-	margin: 0 2px;
-	position: relative;
-	top: -2px;
-}
-
-#post-body .postarea .wp_themeSkin .mceStatusbar a.mceResize {
-	top: 20px;
-}
-
-#wp-word-count {
-	display: block;
-	padding: 2px 10px;
-}
-
-#timestampdiv select {
-	height: 20px;
-	line-height: 14px;
-	padding: 0;
-	vertical-align: top;
-}
-
-#aa, #jj, #hh, #mn {
-	padding: 1px;
-	font-size: 12px;
-}
-
-#jj, #hh, #mn {
-	width: 2em;
-}
-
-#aa {
-	width: 3.4em;
-}
-
-.curtime #timestamp {
-	background-repeat: no-repeat;
-	background-position: left top;
-	padding-left: 18px;
-}
-
-#timestampdiv {
-	padding-top: 5px;
-	line-height: 23px;
-}
-
-#timestampdiv p {
-	margin: 8px 0 6px;
-}
-
-#timestampdiv input {
-	border-width: 1px;
-	border-style: solid;
-}
-
-
-/*------------------------------------------------------------------------------
-  11.1 - Custom Fields
-------------------------------------------------------------------------------*/
-
-#postcustomstuff .updatemeta,
-#postcustomstuff .deletemeta {
-	margin: auto;
-}
-
-#postcustomstuff thead th {
-	padding: 5px 8px 8px;
-}
-
-#postcustom #postcustomstuff .submit {
-	border: 0 none;
-	float: none;
-	padding: 5px 8px;
-}
-
-#side-sortables #postcustom #postcustomstuff .submit {
-	padding: 0 5px;
-}
-
-#side-sortables #postcustom #postcustomstuff td.left input {
-	margin: 3px 3px 0;
-}
-
-#side-sortables #postcustom #postcustomstuff #the-list textarea {
-	height: 85px;
-	margin: 3px;
-}
-
-#postcustomstuff table {
-	margin: 0;
-	width: 100%;
-	border-width: 1px;
-	border-style: solid;
-	border-spacing: 0;
-}
-
-#postcustomstuff table input,
-#postcustomstuff table select,
-#postcustomstuff table textarea {
-	width: 95%;
-	margin: 8px 0 8px 8px;
-}
-
-#postcustomstuff th.left,
-#postcustomstuff td.left {
-	width: 38%;
-}
-
-#postcustomstuff #newmeta .submit {
-	padding: 0 8px;
-}
-
-#postcustomstuff .submit input,
-#postcustomstuff table #addmetasub {
-	width: auto;
-}
-
-#postcustomstuff #newmetaleft {
-	vertical-align: top;
-}
-
-#postcustomstuff #newmetaleft a {
-	padding: 0 10px;
-	text-decoration: none;
-}
-
-
-/*------------------------------------------------------------------------------
-  11.2 - Post Revisions
-------------------------------------------------------------------------------*/
-
-table.diff {
-	width: 100%;
-}
-
-table.diff col.content {
-	width: 50%;
-}
-
-table.diff tr {
-	background-color: transparent;
-}
-
-table.diff td, table.diff th {
-	padding: .5em;
-	font-family: Consolas, Monaco, monospace;
-	border: none;
-}
-
-table.diff .diff-deletedline del, table.diff .diff-addedline ins {
-	text-decoration: none;
-}
-
-
-/*------------------------------------------------------------------------------
-  12.0 - Categories
-------------------------------------------------------------------------------*/
-
-.category-adder {
-	margin-left: 120px;
-	padding: 4px 0;
-}
-
-.category-adder h4 {
-	margin: 0 0 8px;
-}
-
-#side-sortables .category-adder {
-	margin: 0;
-}
-
-#post-body ul.add-menu-item-tabs {
-	float: left;
-	width: 120px;
-	text-align: right;
-	/* Negative margin for the sake of those without JS: all tabs display */
-	margin: 0 -120px 0 5px;
-	padding: 0;
-}
-
-#post-body ul.add-menu-item-tabs li {
-	padding: 8px;
-}
-
-#post-body ul.add-menu-item-tabs li.tabs {
-	-webkit-border-top-left-radius: 3px;
-	-webkit-border-bottom-left-radius: 3px;
-	border-top-left-radius: 3px;
-	border-bottom-left-radius: 3px;
-}
-
-.wp-tab-panel,
-.categorydiv div.tabs-panel,
-.customlinkdiv div.tabs-panel,
-.posttypediv div.tabs-panel,
-.taxonomydiv div.tabs-panel {
-	height: 200px;
-	overflow: auto;
-	padding: 0.5em 0.9em;
-	border-style: solid;
-	border-width: 1px;
-}
-
-.nav-menus-php .customlinkdiv div.tabs-panel,
-.nav-menus-php .posttypediv div.tabs-panel,
-.nav-menus-php .taxonomydiv div.tabs-panel {
-	height: auto;
-	max-height: 205px;
-}
-
-div.tabs-panel-active {
-	display:block;
-}
-
-div.tabs-panel-inactive {
-	display:none;
-}
-
-.colunms-1 .categorydiv div.tabs-panel,
-.taxonomy div.tabs-panel {
-	margin: 0 5px 0 125px;
-}
-
-.customlinkdiv ul,
-.posttypediv ul,
-.taxonomydiv ul {
-	list-style: none;
-	padding: 0;
-	margin: 0;
-}
-
-#front-page-warning,
-#front-static-pages ul,
-ul.export-filters,
-.inline-editor ul.cat-checklist ul,
-.categorydiv ul.categorychecklist ul,
-.customlinkdiv ul.categorychecklist ul,
-.posttypediv ul.categorychecklist ul,
-.taxonomydiv ul.categorychecklist ul {
-	margin-left: 18px;
-}
-
-ul.categorychecklist li {
-	margin: 0;
-	padding: 0;
-	line-height: 19px;
-	word-wrap: break-word;
-}
-
-.categorydiv .tabs-panel,
-.customlinkdiv .tabs-panel,
-.posttypediv .tabs-panel,
-.taxonomydiv .tabs-panel {
-	border-width: 3px;
-	border-style: solid;
-}
-
-.form-wrap p,
-.form-wrap label {
-	font-size: 11px;
-}
-
-.form-wrap label {
-	display: block;
-	padding: 2px;
-	font-size: 12px;
-}
-
-.form-field input,
-.form-field textarea {
-	border-style: solid;
-	border-width: 1px;
-	width: 95%;
-}
-
-p.description,
-.form-wrap p {
-	margin: 2px 0 5px;
-}
-
-p.help,
-p.description,
-span.description,
-.form-wrap p {
-	font-size: 12px;
-	font-style: italic;
-	font-family: sans-serif;
-}
-
-.form-wrap .form-field {
-	margin: 0 0 10px;
-	padding: 8px;
-}
-
-.col-wrap h3 {
-	margin: 12px 0;
-	font-size: 1.1em;
-}
-
-.col-wrap p.submit {
-	margin-top: -10px;
-}
-
-
-/*------------------------------------------------------------------------------
-  13.0 - Tags
-------------------------------------------------------------------------------*/
-
-#poststuff .taghint {
-	color: #aaa;
-	margin: 15px 0 -24px 12px;
-}
-
-#poststuff .tagsdiv .howto {
-	margin: 0 0 6px 8px;
-}
-
-.ajaxtag .newtag {
-	position: relative;
-}
-
-.tagsdiv .newtag {
-	width: 180px;
-}
-
-.tagsdiv .the-tags {
-	display: block;
-	height: 60px;
-	margin: 0 auto;
-	overflow: auto;
-	width: 260px;
-}
-
-#post-body-content .tagsdiv .the-tags {
-	margin: 0 5px;
-}
-
-p.popular-tags {
-	-webkit-border-radius: 8px;
-	border-radius: 8px;
-	border-width: 1px;
-	border-style: solid;
-	line-height: 2em;
-	max-width: 1000px;
-	padding: 8px 12px 12px;
-	text-align: justify;
-}
-
-p.popular-tags a {
-	padding: 0 3px;
-}
-
-.tagcloud {
-	width: 97%;
-	margin: 0 0 40px;
-	text-align: justify;
-}
-
-.tagcloud h3 {
-	margin: 2px 0 12px;
-}
-
-.ac_results {
-	padding: 0;
-	margin: 0;
-	list-style: none;
-	position: absolute;
-	z-index: 10000;
-	display: none;
-	border-width: 1px;
-	border-style: solid;
-}
-
-.ac_results li {
-	padding: 2px 5px;
-	white-space: nowrap;
-	text-align: left;
-}
-
-.ac_over {
-	cursor: pointer;
-}
-
-.ac_match {
-	text-decoration: underline;
-}
-
-/* links tables */
-table.links-table {
-	width: 100%;
-}
-
-.links-table th {
-	font-weight: normal;
-	text-align: left;
-	vertical-align: top;
-	min-width: 80px;
-	width: 20%;
-	word-wrap: break-word;
-}
-
-.links-table th,
-.links-table td {
-	padding: 5px 0;
-}
-
-.links-table td label {
-	margin-right: 8px;
-}
-
-.links-table td input[type="text"],
-.links-table td textarea {
-	width: 100%;
-}
-
-.links-table #link_rel {
-	max-width: 280px;
-}
-
-/*------------------------------------------------------------------------------
-  14.0 - Media Screen
-------------------------------------------------------------------------------*/
-
-.media-item .describe {
-	border-collapse: collapse;
-	width: 100%;
-	border-top-style: solid;
-	border-top-width: 1px;
-	clear: both;
-	cursor: default;
-}
-
-.media-item.media-blank .describe {
-	border: 0;
-}
-
-.media-item .describe th {
-	vertical-align: top;
-	text-align: left;
-	padding: 5px 10px 10px;
-	width: 140px;
-}
-
-.media-item .describe .align th {
-	padding-top: 0;
-}
-
-.media-item .media-item-info tr {
-	background-color: transparent;
-}
-
-.media-item .describe td {
-	padding: 0 8px 8px 0;
-	vertical-align: top;
-}
-
-.media-item thead.media-item-info td {
-	padding: 4px 10px 0;
-}
-
-.media-item .media-item-info .A1B1 {
-	padding: 0 0 0 10px;
-}
-
-.media-item td.savesend {
-	padding-bottom: 15px;
-}
-
-.media-item .thumbnail {
-	max-height: 128px;
-	max-width: 128px;
-}
-
-#wpbody-content #async-upload-wrap a {
-	display: none;
-}
-
-.media-upload-form {
-	margin-top: 20px;
-}
-
-.media-upload-form td label {
-	margin-right: 6px;
-	margin-left: 2px;
-}
-
-.media-upload-form .align .field label {
-	display: inline;
-	padding: 0 0 0 23px;
-	margin: 0 1em 0 3px;
-	font-weight: bold;
-}
-
-.media-upload-form tr.image-size label {
-	margin: 0 0 0 5px;
-	font-weight: bold;
-}
-
-.media-upload-form th.label label {
-	font-weight: bold;
-	margin: 0.5em;
-	font-size: 13px;
-}
-
-.media-upload-form th.label label span {
-	padding: 0 5px;
-}
-
-abbr.required {
-	border: medium none;
-	text-decoration: none;
-}
-
-.media-item .describe input[type="text"],
-.media-item .describe textarea {
-	width: 460px;
-}
-
-.media-item .describe p.help {
-	margin: 0;
-	padding: 0 0 0 5px;
-}
-
-.describe-toggle-on,
-.describe-toggle-off {
-	display: block;
-	line-height: 36px;
-	float: right;
-	margin-right: 15px;
-}
-
-.media-item .describe-toggle-off,
-.media-item.open .describe-toggle-on,
-.media-item.open img.pinkynail {
-	display: none;
-}
-
-.media-item.open .describe-toggle-off {
-	display: block;
-}
-
-#media-items .media-item {
-	border-style: solid;
-	border-width: 1px;
-	min-height: 36px;
-	position: relative;
-	margin-top: -1px;
-	width: 100%;
-}
-
-#media-items {
-	width: 623px;
-}
-
-#media-items:empty {
-	border: 0 none;
-}
-
-.media-item .filename {
-	line-height: 36px;
-	overflow: hidden;
-	padding: 0 10px;
-}
-
-.media-item .error-div {
-	padding-left: 10px;
-}
-
-.media-item .pinkynail {
-	float: left;
-	margin: 2px 2px 0;
-	max-width: 40px;
-	max-height: 32px;
-}
-
-.media-item .startopen,
-.media-item .startclosed {
-	display: none;
-}
-
-.media-item .original {
-	position: relative;
-	height: 34px;
-}
-
-.media-item .progress {
-	float: right;
-	height: 22px;
-	margin: 6px 10px 0 0;
-	width: 200px;
-	line-height: 2em;
-	padding: 0;
-	overflow: hidden;
-	margin-bottom: 2px;
-	border: 1px solid #d1d1d1;
-	background: #fff;
-	background-image: linear-gradient(bottom, rgb(255,255,255) 0%, rgb(247,247,247) 100%);
-	background-image: -o-linear-gradient(bottom, rgb(255,255,255) 0%, rgb(247,247,247) 100%);
-	background-image: -moz-linear-gradient(bottom, rgb(255,255,255) 0%, rgb(247,247,247) 100%);
-	background-image: -webkit-linear-gradient(bottom, rgb(255,255,255) 0%, rgb(247,247,247) 100%);
-	background-image: -ms-linear-gradient(bottom, rgb(255,255,255) 0%, rgb(247,247,247) 100%);
-	-webkit-border-radius: 3px;
-	border-radius: 3px;
-	-webkit-box-shadow: inset 0 0 3px rgba(0,0,0,0.1);
-	box-shadow: inset 0 0 3px rgba(0,0,0,0.1);
-}
-
-.media-item .bar {
-	z-index: 9;
-	width: 0;
-	height: 100%;
-	margin-top: -24px;
-	background-color: #83B4D8;
-	background-image: linear-gradient(bottom, rgb(114,167,207) 0%, rgb(144,197,238) 100%);
-	background-image: -o-linear-gradient(bottom, rgb(114,167,207) 0%, rgb(144,197,238) 100%);
-	background-image: -moz-linear-gradient(bottom, rgb(114,167,207) 0%, rgb(144,197,238) 100%);
-	background-image: -webkit-linear-gradient(bottom, rgb(114,167,207) 0%, rgb(144,197,238) 100%);
-	background-image: -ms-linear-gradient(bottom, rgb(114,167,207) 0%, rgb(144,197,238) 100%);
-	-webkit-border-radius: 3px;
-	border-radius: 3px;
-	-webkit-box-shadow: 0 0 3px rgba(0,0,0,0.3);
-	box-shadow: 0 0 3px rgba(0,0,0,0.3);
-}
-
-.media-item .progress .percent {
-	z-index: 10;
-	position: relative;
-	width: 200px;
-	padding: 0 8px;
-	text-shadow: 0 1px 0 rgba(255,255,255,0.4);
-	color: rgba(0,0,0,0.6);
-}
-
-.upload-php .fixed .column-parent {
-	width: 25%;
-}
-
-.js .html-uploader #plupload-upload-ui {
-	display: none;
-}
-
-.js .html-uploader #html-upload-ui {
-	display: block;
-}
-
-.media-upload-form .media-item.error {
-	margin: 0;
-	padding: 0;
-}
-
-.media-upload-form .media-item.error p,
-.media-item .error-div {
-	line-height: 16px;
-	margin: 5px 10px;
-	padding: 0;
-}
-
-.media-item .error-div a.dismiss {
-	display: block;
-	float: right;
-	margin: 5px 4px 0 15px;
-}
-
-/*------------------------------------------------------------------------------
-  14.1 - Media Library
-------------------------------------------------------------------------------*/
-
-.find-box {
-	width: 500px;
-	height: 300px;
-	overflow: hidden;
-	padding: 33px 5px 40px;
-	position: absolute;
-	z-index: 1000;
-}
-
-.find-box-head {
-	cursor: move;
-	font-weight: bold;
-	height: 2em;
-	line-height: 2em;
-	padding: 1px 12px;
-	position: absolute;
-	top: 5px;
-	width: 100%;
-}
-
-.find-box-inside {
-	overflow: auto;
-	width: 100%;
-	height: 100%;
-}
-
-.find-box-search {
-	padding: 12px;
-	border-width: 1px;
-	border-style: none none solid;
-}
-
-#find-posts-response {
-	margin: 8px 0;
-	padding: 0 1px;
-}
-
-#find-posts-response table {
-	width: 100%;
-}
-
-#find-posts-response .found-radio {
-	padding: 5px 0 0 8px;
-	width: 15px;
-}
-
-.find-box-buttons {
-	width: 480px;
-	margin: 8px;
-}
-
-.find-box-search label {
-	padding-right: 6px;
-}
-
-.find-box #resize-se {
-	position: absolute;
-	right: 1px;
-	bottom: 1px;
-}
-
-ul#dismissed-updates {
-	display: none;
-}
-
-form.upgrade {
-	margin-top: 8px;
-}
-
-form.upgrade .hint {
-	font-style: italic;
-	font-size: 85%;
-	margin: -0.5em 0 2em 0;
-}
-
-#poststuff .inside .the-tagcloud {
-	margin: 5px 0 10px;
-	padding: 8px;
-	border-width: 1px;
-	border-style: solid;
-	line-height: 1.8em;
-	word-spacing: 3px;
-	-webkit-border-radius: 6px;
-	border-radius: 6px;
-}
-
-.drag-drop #drag-drop-area {
-	border: 4px dashed #DDDDDD;
-	height: 200px;
-}
-
-.drag-drop .drag-drop-inside {
-	margin: 70px auto 0;
-	width: 250px;
-}
-
-.drag-drop-inside p {
-	color: #aaa;
-	font-size: 14px;
-	margin: 5px 0;
-	display: none;
-}
-
-.drag-drop .drag-drop-inside p {
-	text-align: center;
-}
-
-.drag-drop-inside p.drag-drop-info {
-	font-size: 20px;
-}
-
-.drag-drop .drag-drop-inside p,
-.drag-drop-inside p.drag-drop-buttons {
-	display: block;
-}
-
-/*
-#drag-drop-area:-moz-drag-over {
-	border-color: #83b4d8;
-}
-borger color while dragging a file over the uploader drop area */
-.drag-drop.drag-over #drag-drop-area {
-	border-color: #83b4d8;
-}
-
-#plupload-upload-ui {
-	position: relative;
-}
-
-
-/*------------------------------------------------------------------------------
-  14.2 - Image Editor
-------------------------------------------------------------------------------*/
-
-.describe .image-editor {
-	vertical-align: top;
-}
-
-.imgedit-wrap {
-	position: relative;
-}
-
-.imgedit-settings p {
-	margin: 8px 0;
-}
-
-.describe .imgedit-wrap table td {
-	vertical-align: top;
-	padding-top: 0;
-}
-
-.imgedit-wrap p,
-.describe .imgedit-wrap table td {
-	font-size: 11px;
-	line-height: 18px;
-}
-
-.describe .imgedit-wrap table td.imgedit-settings {
-	padding: 0 5px;
-}
-
-td.imgedit-settings input {
-	vertical-align: middle;
-}
-
-.imgedit-wait {
-	position: absolute;
-	top: 0;
-	background: #FFFFFF url(../images/wpspin_light.gif) no-repeat scroll 22px 10px;
-	opacity: 0.7;
-	filter: alpha(opacity=70);
-	width: 100%;
-	height: 500px;
-	display: none;
-}
-
-.media-disabled,
-.imgedit-settings .disabled  {
-	color: grey;
-}
-
-.imgedit-wait-spin {
-	padding: 0 4px 4px;
-	vertical-align: bottom;
-	visibility: hidden;
-}
-
-.imgedit-menu {
-	margin: 0 0 12px;
-	min-width: 300px;
-}
-
-.imgedit-menu div {
-	float: left;
-	width: 32px;
-	height: 32px;
-}
-
-.imgedit-crop-wrap {
-	position: relative;
-}
-
-.imgedit-crop {
-	background: transparent url(../images/imgedit-icons.png) no-repeat scroll -9px -31px;
-	margin: 0 8px 0 0;
-}
-
-.imgedit-crop.disabled:hover {
-	background-position: -9px -31px;
-}
-
-.imgedit-crop:hover {
-	background-position: -9px -1px;
-}
-
-.imgedit-rleft {
-	background: transparent url(../images/imgedit-icons.png) no-repeat scroll -46px -31px;
-	margin: 0 3px;
-}
-
-.imgedit-rleft.disabled:hover {
-	background-position: -46px -31px;
-}
-
-.imgedit-rleft:hover {
-	background-position: -46px -1px;
-}
-
-.imgedit-rright {
-	background: transparent url(../images/imgedit-icons.png) no-repeat scroll -77px -31px;
-	margin: 0 8px 0 3px;
-}
-
-.imgedit-rright.disabled:hover {
-	background-position: -77px -31px;
-}
-
-.imgedit-rright:hover {
-	background-position: -77px -1px;
-}
-
-.imgedit-flipv {
-	background: transparent url(../images/imgedit-icons.png) no-repeat scroll -115px -31px;
-	margin: 0 3px;
-}
-
-.imgedit-flipv.disabled:hover {
-	background-position: -115px -31px;
-}
-
-.imgedit-flipv:hover {
-	background-position: -115px -1px;
-}
-
-.imgedit-fliph {
-	background: transparent url(../images/imgedit-icons.png) no-repeat scroll -147px -31px;
-	margin: 0 8px 0 3px;
-}
-
-.imgedit-fliph.disabled:hover {
-	background-position: -147px -31px;
-}
-
-.imgedit-fliph:hover {
-	background-position: -147px -1px;
-}
-
-.imgedit-undo {
-	background: transparent url(../images/imgedit-icons.png) no-repeat scroll -184px -31px;
-	margin: 0 3px;
-}
-
-.imgedit-undo.disabled:hover {
-	background-position: -184px -31px;
-}
-
-.imgedit-undo:hover {
-	background-position: -184px -1px;
-}
-
-.imgedit-redo {
-	background: transparent url(../images/imgedit-icons.png) no-repeat scroll -215px -31px;
-	margin: 0 8px 0 3px;
-}
-
-.imgedit-redo.disabled:hover {
-	background-position: -215px -31px;
-}
-
-.imgedit-redo:hover {
-	background-position: -215px -1px;
-}
-
-.imgedit-applyto img {
-	margin: 0 8px 0 0;
-}
-
-.imgedit-group-top {
-	margin: 5px 0;
-}
-
-.imgedit-applyto .imgedit-label {
-	padding: 2px 0 0;
-	display: block;
-}
-
-.imgedit-help {
-	display: none;
-	font-style: italic;
-	margin-bottom: 8px;
-}
-
-.imgedit-help ul li {
-	font-size: 11px;
-}
-
-a.imgedit-help-toggle {
-	text-decoration: none;
-}
-
-#wpbody-content .imgedit-response div {
-	width: 600px;
-	margin: 8px;
-}
-
-.form-table td.imgedit-response {
-	padding: 0;
-}
-
-.imgedit-submit {
-	margin: 8px 0;
-}
-
-.imgedit-submit-btn {
-	margin-left: 20px;
-}
-
-.imgedit-wrap .nowrap {
-	white-space: nowrap;
-}
-
-span.imgedit-scale-warn {
-	color: red;
-	font-size: 20px;
-	font-style: normal;
-	visibility: hidden;
-	vertical-align: middle;
-}
-
-.imgedit-group {
-	border-width: 1px;
-	border-style: solid;
-	-webkit-border-radius: 8px;
-	border-radius: 8px;
-	margin-bottom: 8px;
-	padding: 2px 10px;
-}
-
-
-/*------------------------------------------------------------------------------
-  15.0 - Comments Screen
-------------------------------------------------------------------------------*/
-
-.form-table {
-	border-collapse: collapse;
-	margin-top: 0.5em;
-	width: 100%;
-	margin-bottom: -8px;
-	clear: both;
-}
-
-.form-table td {
-	margin-bottom: 9px;
-	padding: 8px 10px;
-	line-height: 20px;
-	font-size: 12px;
-}
-
-.form-table th,
-.form-wrap label {
-	font-weight: normal;
-	text-shadow: #fff 0 1px 0;
-}
-
-.form-table th {
-	vertical-align: top;
-	text-align: left;
-	padding: 10px;
-	width: 200px;
-}
-
-.form-table th.th-full {
-	width: auto;
-}
-
-.form-table div.color-option {
-	display: block;
-	clear: both;
-	margin-top: 12px;
-}
-
-.form-table input.tog {
-	margin-top: 2px;
-	margin-right: 2px;
-	float: left;
-}
-
-.form-table td p {
-	margin-top: 4px;
-}
-
-.form-table table.color-palette {
-	vertical-align: bottom;
-	float: left;
-	margin: -12px 3px 11px;
-}
-
-.form-table .color-palette td {
-	border-width: 1px 1px 0;
-	border-style: solid solid none;
-	height: 10px;
-	line-height: 20px;
-	width: 10px;
-}
-
-.commentlist li {
-	padding: 1em 1em .2em;
-	margin: 0;
-	border-bottom-width: 1px;
-	border-bottom-style: solid;
-}
-
-.commentlist li li {
-	border-bottom: 0;
-	padding: 0;
-}
-
-.commentlist p {
-	padding: 0;
-	margin: 0 0 .8em;
-}
-
-/* reply to comments */
-#replyrow input {
-	border-width: 1px;
-	border-style: solid;
-}
-
-#replyrow td {
-	padding: 2px;
-}
-
-#replysubmit {
-	margin: 0;
-	padding: 0 7px 3px;
-	text-align: center;
-}
-
-#replysubmit img.waiting,
-.inline-edit-save img.waiting {
-	padding: 4px 10px 0;
-	vertical-align: top;
-	float: right;
-}
-
-#replysubmit .button {
-	margin-right: 5px;
-}
-
-#replysubmit .error {
-	color: red;
-	line-height: 21px;
-	text-align: center;
-	vertical-align: center;
-}
-
-#replyrow h5 {
-	margin: .2em 0 0;
-	padding: 0 5px;
-	line-height: 1.4em;
-	font-size: 1em;
-}
-
-#edithead .inside {
-	float: left;
-	padding: 3px 0 2px 5px;
-	margin: 0;
-	text-align: center;
-}
-
-#edithead .inside input {
-	width: 180px;
-}
-
-#edithead label {
-	padding: 2px 0;
-}
-
-#replycontainer {
-	padding: 5px;
-}
-
-#replycontent {
-	height: 120px;
-}
-
-.comment-ays {
-	margin-bottom: 0;
-	border-style: solid;
-	border-width: 1px;
-}
-
-.comment-ays th {
-	border-right-style: solid;
-	border-right-width: 1px;
-}
-
-.trash-undo-inside,
-.spam-undo-inside {
-	margin: 1px 8px 1px 0;
-	line-height: 16px;
-}
-
-.spam-undo-inside .avatar,
-.trash-undo-inside .avatar {
-	height: 20px;
-	width: 20px;
-	margin-right: 8px;
-	vertical-align: middle;
-}
-
-.stuffbox .editcomment {
-	clear: none;
-}
-
-#comment-status-radio p {
-	margin: 3px 0 5px;
-}
-
-#comment-status-radio input {
-	margin: 2px 3px 5px 0;
-	vertical-align: middle;
-}
-
-#comment-status-radio label {
-	padding: 5px 0;
-}
-
-.commentlist .avatar {
-	vertical-align: text-top;
-}
-
-
-/*------------------------------------------------------------------------------
-  16.0 - Themes
-------------------------------------------------------------------------------*/
-
-.theme-install-php .tablenav {
-	height: auto;
-}
-
-h3.available-themes {
-	margin: 0 0 1em;
-	float: left;
-}
-
-.available-theme {
-	display: inline-block;
-	margin-right: 10px;
-	overflow: hidden;
-	padding: 20px 20px 20px 0;
-	vertical-align: top;
-	width: 300px;
-}
-
-.available-theme .screenshot {
-	width: 300px;
-	height: 225px;
-	display: block;
-	border-width: 1px;
-	border-style: solid;
-	margin-bottom: 10px;
-	overflow: hidden;
-}
-
-.available-theme img {
-	width: 300px;
-}
-
-.available-theme h3 {
-	margin: 15px 0 0;
-}
-
-.available-theme .theme-author {
-	line-height: 18px;
-}
-
-.available-theme .action-links {
-	margin-top: 10px;
-	overflow: hidden;
-}
-
-#current-theme .theme-info li,
-.theme-options li,
-.available-theme .action-links li {
-	float: left;
-	padding-right: 10px;
-	margin-right: 10px;
-	border-right: 1px solid #dfdfdf;
-}
-
-.available-theme .action-links li {
-	padding-right: 8px;
-	margin-right: 8px;
-}
-
-#current-theme .theme-info li:last-child,
-.theme-options li:last-child,
-.available-theme .action-links li:last-child {
-	padding-right: 0;
-	margin-right: 0;
-	border-right: 0;
-}
-
-.available-theme .action-links .delete-theme {
-	float: right;
-	margin-left: 8px;
-	margin-right: 0;
-}
-
-.available-theme .action-links .delete-theme a {
-	color: red;
-	padding: 2px;
-}
-
-.available-theme .action-links .delete-theme a:hover {
-	background: red;
-	color: #fff;
-	text-decoration: none;
-}
-
-.available-theme .action-links p {
-	float: left;
-}
-
-#current-theme {
-	margin: 20px 0 10px;
-	padding: 0 0 20px;
-	border-bottom: 1px solid #dfdfdf;
-	overflow: hidden;
-}
-
-#current-theme.has-screenshot {
-	padding-left: 330px;
-}
-
-#current-theme h3 {
-	margin: 0;
-	font-size: 12px;
-	font-weight: normal;
-	color: #999;
-}
-
-#current-theme h4 {
-	margin: 3px 0 16px;
-	font-size: 20px;
-}
-
-#current-theme h4 span {
-	margin-left: 20px;
-	font-size: 12px;
-	font-weight: normal;
-}
-
-#current-theme a {
-	border-bottom: none;
-}
-
-#current-theme .theme-info {
-	margin: 1em 0;
-	overflow: hidden;
-}
-
-#current-theme .theme-description {
-	margin-top: 5px;
-	max-width: 600px;
-	line-height: 1.6em;
-}
-
-#current-theme img {
-	float: left;
-	width: 300px;
-	margin-left: -330px;
-
-	border-width: 1px;
-	border-style: solid;
-}
-
-.theme-options {
-	overflow: hidden;
-	font-size: 14px;
-	padding-bottom: 10px;
-}
-
-.theme-options .load-customize {
-	margin-right: 30px;
-	float: left;
-}
-
-.theme-options span {
-	float: left;
-	margin-right: 10px;
-	text-transform: uppercase;
-	font-size: 11px;
-	line-height: 18px;
-	color: #999;
-}
-
-.theme-options ul {
-	float: left;
-	margin: 0;
-}
-
-/* Allow for three-up on 1024px wide screens, e.g. tablets */
-@media only screen and (max-width: 1200px) {
-	.available-theme,
-	.available-theme .screenshot,
-	#current-theme img {
-		width: 240px;
-	}
-
-	.available-theme .screenshot {
-		height: 180px;
-	}
-
-	.available-theme img {
-		width: 100%;
-	}
-
-	#current-theme.has-screenshot {
-		padding-left: 270px;
-	}
-
-	#current-theme img {
-		margin-left: -270px;
-	}
-}
-
-#post-body ul.add-menu-item-tabs li.tabs a,
-#TB_window #TB_title a.tb-theme-preview-link,
-#TB_window #TB_title a.tb-theme-preview-link:visited {
-	font-weight: bold;
-	text-decoration: none;
-}
-
-#TB_window #TB_title {
-	background-color: #222;
-	color: #cfcfcf;
-}
-
-#broken-themes {
-	text-align: left;
-	width: 50%;
-	border-spacing: 3px;
-	padding: 3px;
-}
-
-.theme-install-php h4 {
-	margin: 2.5em 0 8px;
-}
-
-
-/*------------------------------------------------------------------------------
-  16.1 - Custom Header Screen
-------------------------------------------------------------------------------*/
-
-.appearance_page_custom-header #headimg {
-	border: 1px solid #DFDFDF;
-	width: 100%;
-}
-
-.appearance_page_custom-header #upload-form p label {
-	font-size: 12px;
-}
-
-.appearance_page_custom-header .available-headers .default-header {
-	float: left;
-	margin: 0 20px 20px 0;
-}
-
-.appearance_page_custom-header .random-header {
-	clear: both;
-	margin: 0 20px 20px 0;
-	vertical-align: middle;
-}
-
-.appearance_page_custom-header .available-headers label input,
-.appearance_page_custom-header .random-header label input {
-	margin-right: 10px;
-}
-
-.appearance_page_custom-header .available-headers label img {
-	vertical-align: middle;
-}
-
-
-/*------------------------------------------------------------------------------
-  16.2 - Custom Background Screen
-------------------------------------------------------------------------------*/
-
-div#custom-background-image {
-	min-height: 100px;
-	border: 1px solid #dfdfdf;
-}
-
-div#custom-background-image img {
-	max-width: 400px;
-	max-height: 300px;
-}
-
-
-/*------------------------------------------------------------------------------
-  16.3 - Tabbed Admin Screen Interface (Experimental)
-------------------------------------------------------------------------------*/
-
-.nav-tab {
-	border-style: solid;
-	border-color: #dfdfdf #dfdfdf #fff;
-	border-width: 1px 1px 0;
-	color: #aaa;
-	text-shadow: #fff 0 1px 0;
-	font-size: 12px;
-	line-height: 16px;
-	display: inline-block;
-	padding: 4px 14px 6px;
-	text-decoration: none;
-	margin: 0 6px -1px 0;
-	-webkit-border-top-left-radius: 3px;
-	-webkit-border-top-right-radius: 3px;
-	border-top-left-radius: 3px;
-	border-top-right-radius: 3px;
-}
-
-.nav-tab-active {
-	border-width: 1px;
-	color: #464646;
-}
-
-.nav-tab:hover,
-.nav-tab-active {
-	border-color: #ccc #ccc #fff;
-}
-
-h2.nav-tab-wrapper, h3.nav-tab-wrapper {
-	border-bottom: 1px solid #ccc;
-	padding-bottom: 0;
-}
-
-h2 .nav-tab {
-	padding: 4px 10px 6px;
-	font-weight: 200;
-	font-size: 20px;
-	line-height: 24px;
-
-}
-
-
-/*------------------------------------------------------------------------------
-  17.0 - Plugins
-------------------------------------------------------------------------------*/
-
-#dashboard_right_now .versions .b,
-#post-status-display,
-#post-visibility-display,
-#adminmenu .wp-submenu li.current,
-#adminmenu .wp-submenu li.current a,
-#adminmenu .wp-submenu li.current a:hover,
-.media-item .percent,
-.plugins .name,
-#pass-strength-result.strong,
-#pass-strength-result.short,
-.button-highlighted,
-input.button-highlighted,
-#quicktags #ed_strong,
-#ed_reply_toolbar #ed_reply_strong,
-.item-controls .item-order a,
-.feature-filter .feature-name {
-	font-weight: bold;
-}
-
-.plugins p {
-	margin: 0 4px;
-	padding: 0;
-}
-
-.plugins .desc p {
-	margin: 0 0 8px;
-}
-
-.plugins td.desc {
-	line-height: 1.5em;
-}
-
-.plugins .desc ul,
-.plugins .desc ol {
-	margin: 0 0 0 2em;
-}
-
-.plugins .desc ul {
-	list-style-type: disc;
-}
-
-.plugins .row-actions-visible {
-	padding: 0;
-}
-
-.plugins tbody th.check-column {
-	padding: 7px 0;
-}
-
-.plugins .inactive td,
-.plugins .inactive th,
-.plugins .active td,
-.plugins .active th {
-	border-top-style: solid;
-	border-top-width: 1px;
-	padding: 5px 7px 0;
-}
-
-.plugins .update th,
-.plugins .update td {
-	border-bottom: 0;
-}
-.plugin-update-tr td {
-	border-top: 0;
-}
-
-#wpbody-content .plugins .plugin-title,
-#wpbody-content .plugins .theme-title {
-	padding-right: 12px;
-	white-space:nowrap;
-}
-
-.plugins .second,
-.plugins .row-actions-visible {
-	padding: 0 0 5px;
-}
-
-.plugins .update .second,
-.plugins .update .row-actions-visible {
-	padding-bottom: 0;
-}
-
-.plugins-php .widefat tfoot th,
-.plugins-php .widefat tfoot td {
-	border-top-style: solid;
-	border-top-width: 1px;
-}
-
-.plugin-update-tr .update-message {
-	margin: 5px;
-	padding: 3px 5px;
-}
-
-.plugin-install-php h4 {
-	margin: 2.5em 0 8px;
-}
-
-
-/*------------------------------------------------------------------------------
-  18.0 - Users
-------------------------------------------------------------------------------*/
-
-#profile-page .form-table textarea {
-	width: 500px;
-	margin-bottom: 6px;
-}
-
-#profile-page .form-table #rich_editing {
-	margin-right: 5px
-}
-
-#your-profile legend {
-	font-size: 22px;
-}
-
-#your-profile #rich_editing {
-	border: none;
-}
-
-#display_name {
-	width: 15em;
-}
-
-#createuser .form-field input {
-	width: 25em;
-}
-
-/*------------------------------------------------------------------------------
-  19.0 - Tools
-------------------------------------------------------------------------------*/
-
-.pressthis {
-	margin: 20px 0;
-}
-
-.pressthis a {
-	display: inline-block;
-	position: relative;
-	cursor: move;
-	color: #333;
-	background: #dfdfdf;
-	background-image: -webkit-gradient(linear, left bottom, left top, color-stop(0.07, #e6e6e6), color-stop(0.77, #d8d8d8));
-	background-image: -webkit-linear-gradient(bottom, #e6e6e6 7%, #d8d8d8 77%);
-	background-image: -moz-linear-gradient(bottom, #e6e6e6 7%, #d8d8d8 77%);
-	background-image: -ms-linear-gradient(bottom, #e6e6e6 7%, #d8d8d8 77%);
-	background-image: -o-linear-gradient(bottom, #e6e6e6 7%, #d8d8d8 77%);
-	background-image: linear-gradient(bottom, #e6e6e6 7%, #d8d8d8 77%);
-	-webkit-border-radius: 5px;
-	border-radius: 5px;
-	border: 1px solid #b4b4b4;
-	font-style: normal;
-	line-height: 16px;
-	font-size: 14px;
-	text-decoration: none;
-	text-shadow: 0 1px 0px #fff;
-}
-
-.pressthis a:hover,
-.pressthis a:active {
-	color: #333
-}
-
-.pressthis a:hover:after {
-	transform: skew(20deg) rotate(9deg);
-	-webkit-transform: skew(20deg) rotate(9deg);
-	-moz-transform: skew(20deg) rotate(9deg);
-	box-shadow: 0 10px 8px rgba(0, 0, 0, 0.7);
-	-webkit-box-shadow: 0 10px 8px rgba(0, 0, 0, 0.7);
-	-moz-box-shadow: 0 10px 8px rgba(0, 0, 0, 0.7);
-}
-
-.pressthis a span {
-	background: url(../images/press-this.png?v=20120502) no-repeat 0px 5px;
-	padding: 8px 11px 8px 27px;
-	margin: 0 5px;
-	display: inline-block;
-}
-
-.pressthis a:after {
-	content: '';
-	width: 70%;
-	height: 55%;
-	z-index: -1;
-	position: absolute;
-	right: 10px;
-	bottom: 9px;
-	background: transparent;
-	transform: skew(20deg) rotate(6deg);
-	-webkit-transform: skew(20deg) rotate(6deg);
-	-moz-transform: skew(20deg) rotate(6deg);
-	box-shadow: 0 10px 8px rgba(0, 0, 0, 0.6);
-	-webkit-box-shadow: 0 10px 8px rgba(0, 0, 0, 0.6);
-	-moz-box-shadow: 0 10px 8px rgba(0, 0, 0, 0.6);
-}
-
-
-/*------------------------------------------------------------------------------
-  20.0 - Settings
-------------------------------------------------------------------------------*/
-
-#utc-time, #local-time {
-	padding-left: 25px;
-	font-style: italic;
-	font-family: sans-serif;
-}
-
-.defaultavatarpicker .avatar {
-	margin: 2px 0;
-	vertical-align: middle;
-}
-
-
-/*------------------------------------------------------------------------------
-  21.0 - Admin Footer
-------------------------------------------------------------------------------*/
-
-#footer {
-	position: absolute;
-	bottom: 0;
-	left: 0;
-	right: 0;
-	padding: 10px 0;
-	margin-right: 20px;
-	border-top-width: 1px;
-	border-top-style: solid;
-}
-
-#footer p {
-	margin: 0;
-	line-height: 20px;
-}
-
-#footer a {
-	text-decoration: none;
-}
-
-#footer a:hover {
-	text-decoration: underline;
-}
-
-/*------------------------------------------------------------------------------
-  22.0 - About Pages
-------------------------------------------------------------------------------*/
-
-.about-wrap {
-	position: relative;
-	margin: 25px 40px 0 20px;
-	max-width: 1050px; /* readability */
-
-	font-size: 15px;
-}
-
-.about-wrap div.updated,
-.about-wrap div.error {
-	display: none !important;
-}
-
-/* Typography */
-
-.about-wrap p {
-	line-height: 1.6em;
-}
-
-.about-wrap h1 {
-	margin: 0.2em 200px 0 0;
-	line-height: 1.2em;
-	font-size: 2.8em;
-	font-weight: 200;
-}
-
-.about-text,
-.about-description,
-.about-wrap li.wp-person a.web {
-	font-family: "HelveticaNeue-Light", "Helvetica Neue Light", "Helvetica Neue", sans-serif;
-	font-weight: normal;
-	line-height: 1.6em;
-	font-size: 20px;
-}
-
-.about-description {
-	margin-top: 1.4em;
-}
-
-.about-text {
-	margin: 1em 200px 1.4em 0;
-	min-height: 60px;
-	font-size: 24px;
-}
-
-.about-wrap h3 {
-	font-size: 24px;
-	margin-bottom: 1em;
-	padding-top: 20px;
-}
-
-.about-wrap .changelog {
-	overflow: hidden;
-}
-
-.about-wrap .changelog li {
-	list-style-type: disc;
-	margin-left: 3em;
-}
-
-.about-wrap .feature-section {
-	padding-bottom: 20px;
-}
-
-.about-wrap .feature-section h4 {
-	margin-bottom: 0.6em;
-}
-
-.about-wrap .feature-section p {
-	margin-top: 0.6em;
-}
-
-.about-wrap code {
-	font-size: 14px;
-}
-
-/* Point Releases */
-
-.about-wrap .point-releases {
-	margin-top: 5px;
-}
-
-.about-wrap .changelog.point-releases h3 {
-	padding-top: 35px;
-}
-
-.about-wrap .changelog.point-releases h3:first-child {
-	padding-top: 7px;
-}
-
-/* WordPress Version Badge */
-
-.wp-badge {
-	padding-top: 142px;
-	height: 50px;
-	width: 173px;
-	font-weight: bold;
-	font-size: 14px;
-	text-align: center;
-	margin: 0 -5px;
-	background: url('../images/wp-badge.png?ver=20111120') no-repeat;
-}
-
-.about-wrap .wp-badge {
-	position: absolute;
-	top: 0;
-	right: 0;
-}
-
-/* Tabs */
-
-.about-wrap h2.nav-tab-wrapper {
-	padding-left: 6px;
-}
-
-.about-wrap h2 .nav-tab {
-	padding: 4px 10px 6px;
-	margin: 0 3px -1px 0;
-	font-size: 18px;
-	vertical-align: top;
-}
-
-.about-wrap h2 .nav-tab-active {
-	font-weight: bold;
-	padding-top: 3px;
-}
-
-/* Changelog / Update screen */
-
-.about-wrap .feature-section img {
-	border: none;
-	margin: 0 1.94% 10px 0;
-	-webkit-border-radius: 3px;
-	border-radius: 3px;
-}
-
-.about-wrap .feature-section img.image-50 {
-	max-width: 50%;
-}
-
-.about-wrap .feature-section img.image-30 {
-	max-width: 31.2381%;
-}
-
-.ie8 .about-wrap .feature-section img {
-	border-width: 1px;
-	border-style: solid;
-}
-
-.about-wrap .feature-section.three-col {
-	padding-top: 15px;
-	margin-bottom: 0;
-}
-
-.about-wrap .feature-section.three-col div {
-	width: 30%;
-	margin-right: 4.999999999%;
-	float: left;
-}
-
-.about-wrap .feature-section.three-col h4 {
-	margin:  0 0 0.6em 0;
-}
-
-.about-wrap .feature-section.three-col img {
-	margin: 0.5em 0 0.5em 5px;
-	max-width: 100%;
-	float: none;
-}
-
-.ie8 .about-wrap .feature-section.three-col img {
-	margin-left: 0;
-}
-
-.about-wrap .feature-section.three-col .last-feature {
-	margin-right: 0;
-}
-
-.about-wrap .three-col-images {
-	text-align: center;
-}
-
-.about-wrap .three-col-images img {
-	margin: 0 0 10px;
-}
-
-.about-wrap .three-col-images .last-feature {
-	float: right;
-}
-
-.about-wrap .three-col-images .first-feature {
-	float: left;
-}
-
-.about-wrap .feature-section.images-stagger-right img {
-	float: right;
-	margin: 0 5px 12px 12px;
-}
-
-.about-wrap .feature-section.images-stagger-left img {
-	float: left;
-	margin: 0 12px 12px 5px;
-}
-
-@media only screen and (max-width: 900px) {
-	.about-wrap .feature-section.images-stagger-left img,
-	.about-wrap .feature-section.images-stagger-right img {
-		clear: both;
-	}
-}
-
-/* Return to Dashboard Home link */
-
-.about-wrap .return-to-dashboard {
-	margin: 30px 0 0 -5px;
-	font-size: 14px;
-	font-weight: bold;
-}
-
-.about-wrap .return-to-dashboard a {
-	text-decoration: none;
-	padding: 0 5px;
-}
-
-/* Credits */
-
-.about-wrap h4.wp-people-group {
-	margin-top: 2.6em;
-	font-size: 16px;
-}
-
-.about-wrap ul.wp-people-group {
-	overflow: hidden;
-	padding: 5px;
-	margin: 0 -15px 0 -5px;
-}
-
-.about-wrap ul.compact {
-	margin-bottom: 0
-}
-
-.about-wrap li.wp-person {
-	float: left;
-	margin-right: 10px;
-}
-
-.about-wrap li.wp-person img.gravatar {
-	float: left;
-	margin: 0 10px 10px 0;
-	padding: 2px;
-	width: 60px;
-	height: 60px;
-}
-
-.about-wrap ul.compact li.wp-person img.gravatar {
-	width: 30px;
-	height: 30px;
-}
-
-.about-wrap li.wp-person {
-	height: 70px;
-	width: 280px;
-	padding-bottom: 15px;
-}
-
-.about-wrap ul.compact li.wp-person {
-	height: auto;
-	width: 180px;
-	padding-bottom: 0;
-	margin-bottom: 0;
-}
-
-.about-wrap #wp-people-group-validators + p.wp-credits-list {
-	margin-top: 0;
-}
-
-.about-wrap li.wp-person a.web {
-	display: block;
-	margin: 6px 0 2px;
-	font-size: 16px;
-	text-decoration: none;
-}
-
-.about-wrap p.wp-credits-list a {
-	white-space: nowrap;
-}
-
-/* Freedoms */
-
-.freedoms-php .about-wrap ol {
-	margin: 40px 60px;
-}
-
-.freedoms-php .about-wrap ol li {
-	list-style-type: decimal;
-	font-weight: bold;
-}
-
-.freedoms-php .about-wrap ol p {
-	font-weight: normal;
-	margin: 0.6em 0;
-}
-
-/*------------------------------------------------------------------------------
-  23.0 - Full Overlay w/ Sidebar
-------------------------------------------------------------------------------*/
-
-body.full-overlay-active {
-	overflow: hidden;
-}
-
-.wp-full-overlay {
-	background: #fff;
-	z-index: 500000;
-	position: fixed;
-	overflow: visible;
-	top: 0;
-	bottom: 0;
-	left: 0;
-	right: 0;
-	height: 100%;
-	min-width: 0;
-}
-
-.wp-full-overlay-sidebar {
-	-webkit-box-sizing: border-box;
-	-moz-box-sizing:    border-box;
-	box-sizing:         border-box;
-
-	position: fixed;
-	width: 300px;
-	height: 100%;
-	top: 0;
-	bottom: 0;
-	left: 0;
-	padding: 0;
-	margin: 0;
-	z-index: 10;
-	overflow: auto;
-	background: #f5f5f5;
-	border-right: 1px solid rgba( 0, 0, 0, 0.2 );
-}
-
-.wp-full-overlay.collapsed .wp-full-overlay-sidebar {
-	overflow: visible;
-}
-
-.wp-full-overlay.collapsed,
-.wp-full-overlay.expanded .wp-full-overlay-sidebar {
-	margin-left: 0 !important;
-}
-
-.wp-full-overlay.expanded {
-	margin-left: 300px;
-}
-
-.wp-full-overlay.collapsed .wp-full-overlay-sidebar {
-	margin-left: -300px;
-}
-
-.wp-full-overlay-sidebar:after {
-	content: '';
-	display: block;
-	position: absolute;
-	top: 0;
-	bottom: 0;
-	right: 0;
-	width: 3px;
-	box-shadow: -5px 0 4px -4px rgba(0, 0, 0, 0.1) inset;
-	z-index: 1000;
-}
-
-.wp-full-overlay-main {
-	position: absolute;
-	left: 0;
-	right: 0;
-	top: 0;
-	bottom: 0;
-	height: 100%;
-}
-
-.wp-full-overlay-sidebar .wp-full-overlay-header,
-.wp-full-overlay-sidebar .wp-full-overlay-footer {
-	position: absolute;
-	left: 0;
-	right: 0;
-	height: 45px;
-	padding: 0 20px;
-	line-height: 45px;
-	z-index: 10;
-	margin: 0;
-}
-
-.wp-full-overlay-sidebar .wp-full-overlay-header {
-	top: 0;
-	border-top: 0;
-	border-bottom: 1px solid #fff;
-	box-shadow: inset 0 -1px 0 0px #dfdfdf;
-}
-
-.wp-full-overlay-sidebar .wp-full-overlay-footer {
-	bottom: 0;
-	border-bottom: 0;
-	border-top: 1px solid #dfdfdf;
-	box-shadow: inset 0 1px 0 0px #fff;
-}
-
-.wp-full-overlay-sidebar .wp-full-overlay-sidebar-content {
-	position: absolute;
-	top: 45px;
-	bottom: 45px;
-	left: 0;
-	right: 0;
-	overflow: auto;
-}
-
-/* Close Link */
-.wp-full-overlay .close-full-overlay {
-	text-decoration: none;
-}
-
-/* Collapse Button */
-.wp-full-overlay .collapse-sidebar {
-	position: absolute;
-	bottom: 12px;
-	left: 0;
-	z-index: 50;
-	display: block;
-	width: 19px;
-	height: 19px;
-	margin-left: 15px;
-	padding: 0;
-	border-radius: 50%;
-	text-decoration: none;
-}
-
-.wp-full-overlay.collapsed .collapse-sidebar {
-	position: absolute;
-	left: 100%;
-}
-
-.wp-full-overlay .collapse-sidebar-arrow {
-	position: absolute;
-	margin-top: 2px;
-	margin-left: 2px;
-	display: block;
-	width: 15px;
-	height: 15px;
-	background: transparent url('../images/arrows.png') no-repeat 0 -72px;
-}
-
-.wp-full-overlay.collapsed .collapse-sidebar-arrow {
-	background-position: 0 -108px;
-}
-
-.wp-full-overlay .collapse-sidebar-label {
-	position: absolute;
-	left: 100%;
-	color: #808080;
-	line-height: 20px;
-	margin-left: 10px;
-}
-
-.wp-full-overlay.collapsed .collapse-sidebar-label {
-	display: none;
-}
-
-.wp-full-overlay .collapse-sidebar:hover .collapse-sidebar-label {
-	color: #666;
-}
-
-/* Animations */
-.wp-full-overlay,
-.wp-full-overlay-sidebar,
-.wp-full-overlay .collapse-sidebar,
-.wp-full-overlay-main {
-	-webkit-transition-property: left, right, top, bottom, width, margin;
-	-moz-transition-property:    left, right, top, bottom, width, margin;
-	-ms-transition-property:     left, right, top, bottom, width, margin;
-	-o-transition-property:      left, right, top, bottom, width, margin;
-	transition-property:         left, right, top, bottom, width, margin;
-
-	-webkit-transition-duration: 0.2s;
-	-moz-transition-duration:    0.2s;
-	-ms-transition-duration:     0.2s;
-	-o-transition-duration:      0.2s;
-	transition-duration:         0.2s;
-}
-
-/*------------------------------------------------------------------------------
-  24.0 - Customize Loader
-------------------------------------------------------------------------------*/
-
-.no-customize-support .hide-if-no-customize,
-.customize-support .hide-if-customize {
-	display: none;
-}
-
-#customize-container {
-	display: none;
-	background: #fff;
-	z-index: 500000;
-	position: fixed;
-	overflow: visible;
-	top: 0;
-	bottom: 0;
-	left: 0;
-	right: 0;
-	height: 100%;
-}
-
-.customize-active #customize-container {
-	display: block;
-}
-
-.customize-loading #customize-container iframe {
-	opacity: 0;
-}
-
-.customize-loading #customize-container {
-	background: #fff url("../images/wpspin_light.gif") no-repeat fixed center center;
-}
-
-#customize-container iframe,
-#theme-installer iframe {
-	height: 100%;
-	width: 100%;
-	z-index: 20;
-
-	-webkit-transition: opacity 0.3s;
-	-moz-transition:    opacity 0.3s;
-	-ms-transition:     opacity 0.3s;
-	-o-transition:      opacity 0.3s;
-	transition:         opacity 0.3s;
-}
-
-#customize-container .collapse-sidebar {
-	bottom: 16px;
-}
-
-#theme-installer {
-	display: none;
-}
-
-#theme-installer.single-theme {
-	display: block;
-}
-
-.install-theme-info {
-	display: none;
-	padding: 10px 20px 20px;
-}
-
-.single-theme .install-theme-info {
-	padding-top: 15px;
-}
-
-#theme-installer .install-theme-info {
-	display: block;
-}
-
-.install-theme-info .theme-install {
-	float: right;
-	margin-top: 18px;
-}
-
-.install-theme-info .theme-name {
-	font-size: 16px;
-	line-height: 24px;
-	margin-bottom: 0;
-}
-
-.install-theme-info .theme-screenshot {
-	margin-top: 15px;
-	width: 258px;
-	border: 1px solid #ccc;
-}
-
-.install-theme-info .theme-details {
-	overflow: hidden;
-}
-
-.theme-details .theme-version {
-	margin: 15px 0;
-	float: left;
-}
-
-.theme-details .star-holder {
-	margin: 14px 0;
-	float: right;
-}
-
-.theme-details .theme-description {
-	float: left;
-	color: #777;
-	line-height: 20px;
-}
-
-/*------------------------------------------------------------------------------
-  25.0 - Misc
-------------------------------------------------------------------------------*/
-
-#excerpt,
-.attachmentlinks {
-	margin: 0;
-	height: 4em;
-	width: 98%;
-}
-
-#template div {
-	margin-right: 190px;
-}
-
-p.pagenav {
-	margin: 0;
-	display: inline;
-}
-
-.pagenav span {
-	font-weight: bold;
-	margin: 0 6px;
-}
-
-.row-title {
-	font-size: 13px !important;
-	font-weight: bold;
-}
-
-.column-author img, .column-username img {
-	float: left;
-	margin-right: 10px;
-	margin-top: 1px;
-}
-
-.row-actions {
-	visibility: hidden;
-	padding: 2px 0 0;
-}
-
-.mobile .row-actions {
-	visibility: visible;
-}
-
-tr:hover .row-actions,
-div.comment-item:hover .row-actions {
-	visibility: visible;
-}
-
-.row-actions-visible {
-	padding: 2px 0 0;
-}
-
-.form-table .pre {
-	padding: 8px;
-	margin: 0;
-}
-
-table.form-table td .updated {
-	font-size: 13px;
-}
-
-.tagchecklist {
-	margin-left: 14px;
-	font-size: 12px;
-	overflow: auto;
-}
-.tagchecklist strong {
-	margin-left: -8px;
-	position: absolute;
-}
-.tagchecklist span {
-	margin-right: 25px;
-	display: block;
-	float: left;
-	font-size: 11px;
-	line-height: 1.8em;
-	white-space: nowrap;
-	cursor: default;
-}
-.tagchecklist span a {
-	margin: 6px 0pt 0pt -9px;
-	cursor: pointer;
-	width: 10px;
-	height: 10px;
-	display: block;
-	float: left;
-	text-indent: -9999px;
-	overflow: hidden;
-	position: absolute;
-}
-
-#poststuff h2 {
-	margin-top: 20px;
-	font-size: 1.5em;
-	margin-bottom: 15px;
-	padding: 0 0 3px;
-	clear: left;
-}
-
-#poststuff h3,
-.metabox-holder h3 {
-	font-size: 15px;
-	font-weight: normal;
-	padding: 7px 10px;
-	margin: 0;
-	line-height: 1;
-}
-
-#poststuff .inside {
-	margin: 6px 0 8px;
-}
-
-#poststuff .inside #parent_id,
-.inline-edit-row #post_parent {
-	max-width: 100%;
-}
-
-#post-visibility-select,
-#post-formats-select {
-	line-height: 1.5em;
-	margin-top: 3px;
-}
-
-#poststuff #submitdiv .inside {
-	margin: 0;
-	padding: 0;
-}
-
-#titlediv,
-#poststuff .postarea {
-	margin-bottom: 20px;
-}
-
-#templateside ul li a {
-	text-decoration: none;
-}
-
-.tool-box .title {
-	margin: 8px 0;
-	font-size: 18px;
-	font-weight: normal;
-	line-height: 24px;
-}
-
-#sidemenu {
-	margin: -30px 15px 0 315px;
-	list-style: none;
-	position: relative;
-	float: right;
-	padding-left: 10px;
-	font-size: 12px;
-}
-
-#sidemenu a {
-	padding: 0 7px;
-	display: block;
-	float: left;
-	line-height: 28px;
-	border-top-width: 1px;
-	border-top-style: solid;
-	border-bottom-width: 1px;
-	border-bottom-style: solid;
-}
-
-#sidemenu li {
-	display: inline;
-	line-height: 200%;
-	list-style: none;
-	text-align: center;
-	white-space: nowrap;
-	margin: 0;
-	padding: 0;
-}
-
-#sidemenu a.current {
-	font-weight: normal;
-	padding-left: 6px;
-	padding-right: 6px;
-	-webkit-border-top-left-radius: 3px;
-	-webkit-border-top-right-radius: 3px;
-	border-top-left-radius: 3px;
-	border-top-right-radius: 3px;
-	border-width: 1px;
-	border-style: solid;
-}
-
-#sidemenu li a .count-0 {
-	display: none;
-}
-
-.plugin-install #description,
-.plugin-install-network #description {
-	width: 60%;
-}
-
-table .vers,
-table .column-visible,
-table .column-rating {
-	text-align: left;
-}
-
-.error-message {
-	color: red;
-	font-weight: bold;
-}
-
-/* Scrollbar fix for bulk upgrade iframe */
-body.iframe {
-	height: 98%;
-}
-
-
-/* - Only used once or twice in all of WP - deprecate for global style
-------------------------------------------------------------------------------*/
-td.media-icon {
-	text-align: center;
-	width: 80px;
-	padding-top: 8px;
-	padding-bottom: 8px;
-}
-
-td.media-icon img {
-	max-width: 80px;
-	max-height: 60px;
-}
-
-.list-ajax-loading {
-	float: right;
-	margin-right: 9px;
-	margin-top: -1px;
-}
-
-.tablenav .list-ajax-loading {
-	margin-top: 7px;
-}
-
-#howto {
-	font-size: 11px;
-	margin: 0 5px;
-	display: block;
-}
-
-.importers td {
-	padding-right: 14px;
-}
-
-.importers {
-	font-size: 16px;
-	width: auto;
-}
-
-#namediv table {
-	width: 100%;
-}
-
-#namediv td.first {
-	width: 10px;
-	white-space: nowrap;
-}
-
-#namediv input {
-	width: 98%;
-}
-
-#namediv p {
-	margin: 10px 0;
-}
-
-#submitdiv h3 {
-	margin-bottom: 0 !important;
-}
-
-/* - Used - but could/should be deprecated with a CSS reset
-------------------------------------------------------------------------------*/
-.zerosize {
-	height: 0;
-	width: 0;
-	margin: 0;
-	border: 0;
-	padding: 0;
-	overflow: hidden;
-	position: absolute;
-}
-
-br.clear {
-	height: 2px;
-	line-height: 2px;
-}
-
-.checkbox {
-	border: none;
-	margin: 0;
-	padding: 0;
-}
-
-fieldset {
-	border: 0;
-	padding: 0;
-	margin: 0;
-}
-
-.post-categories {
-	display: inline;
-	margin: 0;
-	padding: 0;
-}
-
-.post-categories li {
-	display: inline;
-}
-
-
-/*-----------------------------------------------------------------------------
- MERGED
--------------------------------------------------------------------------------*/
-
-/* dashboard */
-.edit-box {
-	display: none;
-}
-
-h3:hover .edit-box {
-	display: inline;
-}
-
-.index-php form .input-text-wrap {
-	background: #fff;
-	border-style: solid;
-	border-width: 1px;
-	padding: 2px 3px;
-	border-color: #ccc;
-}
-
-#dashboard-widgets form .input-text-wrap input {
-	border: 0 none;
-	outline: none;
-	margin: 0;
-	padding: 0;
-	width: 99%;
-	color: #333;
-}
-
-form .textarea-wrap {
-	background: #fff;
-	border-style: solid;
-	border-width: 1px;
-	padding: 2px;
-	border-color: #ccc;
-}
-
-#dashboard-widgets form .textarea-wrap textarea {
-	border: 0 none;
-	padding: 0;
-	outline: none;
-	width: 99%;
-	-moz-box-sizing: border-box;
-	-webkit-box-sizing: border-box;
-	box-sizing: border-box;
-}
-
-#dashboard-widgets .postbox form .submit {
-	float: none;
-	margin: .5em 0 0;
-	padding: 0;
-	border: none;
-}
-
-#dashboard-widgets-wrap #dashboard-widgets .postbox form .submit input {
-	margin: 0;
-}
-
-#dashboard-widgets-wrap #dashboard-widgets .postbox form .submit #publish {
-	min-width: 0;
-}
-
-#dashboard-widgets a {
-	text-decoration: none;
-}
-
-#dashboard-widgets h3 a {
-	text-decoration: underline;
-}
-
-#dashboard-widgets h3 .postbox-title-action {
-	position: absolute;
-	right: 30px;
-	padding: 0;
-	top: 5px;
-}
-
-#dashboard-widgets h4 {
-	font-weight: normal;
-	font-size: 13px;
-	margin: 0 0 .2em;
-	padding: 0;
-}
-
-/* Right Now */
-#dashboard_right_now p.sub,
-#dashboard_right_now .table, #dashboard_right_now .versions {
-	margin: -12px;
-}
-
-#dashboard_right_now .inside {
-	font-size: 12px;
-	padding-top: 20px;
-}
-
-#dashboard_right_now p.sub {
-	padding: 5px 0 15px;
-	color: #8f8f8f;
-	font-size: 14px;
-	position: absolute;
-	top: -17px;
-	left: 15px;
-}
-
-#dashboard_right_now .table {
-	margin: 0;
-	padding: 0;
-	position: relative;
-}
-
-#dashboard_right_now .table_content {
-	float: left;
-	border-top: #ececec 1px solid;
-	width: 45%;
-}
-
-#dashboard_right_now .table_discussion {
-	float: right;
-	border-top: #ececec 1px solid;
-	width: 45%;
-}
-
-#dashboard_right_now table td {
-	padding: 3px 0;
-	white-space: nowrap;
-}
-
-#dashboard_right_now table tr.first td {
-	border-top: none;
-}
-
-#dashboard_right_now td.b {
-	padding-right: 6px;
-	text-align: right;
-	font-size: 14px;
-	width: 1%;
-}
-
-#dashboard_right_now td.b a {
-	font-size: 18px;
-}
-
-#dashboard_right_now td.b a:hover {
-	color: #d54e21;
-}
-
-#dashboard_right_now .t {
-	font-size: 12px;
-	padding-right: 12px;
-	padding-top: 6px;
-	color: #777;
-}
-
-#dashboard_right_now .t a {
-	white-space: nowrap;
-}
-
-#dashboard_right_now .spam {
-	color: red;
-}
-
-#dashboard_right_now .waiting {
-	color: #e66f00;
-}
-
-#dashboard_right_now .approved {
-	color: green;
-}
-
-#dashboard_right_now .versions {
-	padding: 6px 10px 12px;
-	clear: both;
-}
-
-#dashboard_right_now a.button {
-	float: right;
-	clear: right;
-	position: relative;
-	top: -5px;
-}
-
-/* Recent Comments */
-#dashboard_recent_comments h3 {
-	margin-bottom: 0;
-}
-
-#dashboard_recent_comments .inside {
-	margin-top: 0;
-}
-
-#dashboard_recent_comments .comment-meta .approve {
-	font-style: italic;
-	font-family: sans-serif;
-	font-size: 10px;
-}
-
-#dashboard_recent_comments .subsubsub {
-	float: none;
-	white-space: normal;
-}
-
-#the-comment-list {
-	position: relative;
-}
-
-#the-comment-list .comment-item {
-	padding: 1em 10px;
-	border-top: 1px solid;
-}
-
-#the-comment-list .pingback {
-	padding-left: 9px !important;
-}
-
-#the-comment-list .comment-item,
-#the-comment-list #replyrow {
-	margin: 0 -10px;
-}
-
-#the-comment-list .comment-item:first-child {
-	border-top: none;
-}
-
-#the-comment-list .comment-item .avatar {
-	float: left;
-	margin: 0 10px 5px 0;
-}
-
-#the-comment-list .comment-item h4 {
-	line-height: 1.7em;
-	margin-top: -0.4em;
-	color: #777;
-}
-
-#the-comment-list .comment-item h4 cite {
-	font-style: normal;
-	font-weight: normal;
-}
-
-#the-comment-list .comment-item blockquote,
-#the-comment-list .comment-item blockquote p {
-	margin: 0;
-	padding: 0;
-	display: inline;
-}
-
-#dashboard_recent_comments #the-comment-list .trackback blockquote,
-#dashboard_recent_comments #the-comment-list .pingback blockquote {
-	display: block;
-}
-
-#the-comment-list .comment-item p.row-actions {
-	margin: 3px 0 0;
-	padding: 0;
-	font-size: 12px;
-}
-
-/* QuickPress */
-#dashboard_quick_press h4 {
-	font-family: sans-serif;
-	float: left;
-	width: 5em;
-	clear: both;
-	font-weight: normal;
-	text-align: right;
-	font-size: 12px;
-}
-
-#dashboard_quick_press h4 label {
-	margin-right: 10px;
-}
-
-#dashboard_quick_press .input-text-wrap,
-#dashboard_quick_press .textarea-wrap {
-	margin: 0 0 1em 5em;
-}
-
-#dashboard_quick_press .wp-media-buttons {
-	margin: 0 0 .5em 5em;
-	padding: 0;
-}
-
-#dashboard_quick_press .wp-media-buttons a {
-	color: #777;
-}
-
-#dashboard-widgets #dashboard_quick_press form p.submit {
-	margin-left: 4.6em;
-}
-
-#dashboard-widgets #dashboard_quick_press form p.submit input {
-	float: left;
-}
-
-#dashboard-widgets #dashboard_quick_press form p.submit #save-post {
-	margin: 0 1em 0 10px;
-}
-
-#dashboard-widgets #dashboard_quick_press form p.submit #publish {
-	float: right;
-}
-
-#dashboard-widgets #dashboard_quick_press form p.submit img.waiting {
-	vertical-align: middle;
-	visibility: hidden;
-	margin: 4px 6px 0 0;
-}
-
-/* Recent Drafts */
-#dashboard_recent_drafts ul,
-#dashboard_recent_drafts p {
-	margin: 0;
-	padding: 0;
-	word-wrap: break-word;
-}
-
-#dashboard_recent_drafts ul {
-	list-style: none;
-}
-
-#dashboard_recent_drafts ul li {
-	margin-bottom: 1em;
-}
-
-#dashboard_recent_drafts h4 {
-	line-height: 1.7em;
-	word-wrap: break-word;
-}
-
-#dashboard_recent_drafts h4 abbr {
-	font-weight: normal;
-	font-family: sans-serif;
-	font-size: 12px;
-	color: #999;
-	margin-left: 3px;
-}
-
-/* Feeds */
-.rss-widget ul {
-	margin: 0;
-	padding: 0;
-	list-style: none;
-}
-
-a.rsswidget {
-	font-size: 13px;
-	line-height: 1.7em;
-}
-
-.rss-widget ul li {
-	line-height: 1.5em;
-	margin-bottom: 12px;
-}
-
-.rss-widget span.rss-date {
-	color: #999;
-	font-size: 12px;
-	margin-left: 3px;
-}
-
-.rss-widget cite {
-	display: block;
-	text-align: right;
-	margin: 0 0 1em;
-	padding: 0;
-}
-
-.rss-widget cite:before {
-	content: '\2014';
-}
-
-/* Plugins */
-#dashboard_plugins h4 {
-	line-height: 1.7em;
-}
-
-#dashboard_plugins h5 {
-	font-weight: normal;
-	font-size: 13px;
-	margin: 0;
-	display: inline;
-	line-height: 1.4em;
-}
-
-#dashboard_plugins h5 a {
-	line-height: 1.4em;
-}
-
-#dashboard_plugins .inside span {
-	font-size: 12px;
-	padding-left: 5px;
-}
-
-#dashboard_plugins p {
-	margin: 0.3em 0 1.4em;
-	line-height: 1.4em;
-}
-
-.dashboard-comment-wrap {
-	overflow: hidden;
-	word-wrap: break-word;
-}
-
-/* Browser Nag */
-#dashboard_browser_nag a.update-browser-link {
-	font-size: 1.2em;
-	font-weight: bold;
-}
-
-#dashboard_browser_nag a {
-	text-decoration: underline;
-}
-
-#dashboard_browser_nag p.browser-update-nag.has-browser-icon {
-	padding-right: 125px;
-}
-
-#dashboard_browser_nag .browser-icon {
-	margin-top: -35px;
-}
-
-#dashboard_browser_nag.postbox.browser-insecure {
-	background-color: #ac1b1b;
-	border-color: #ac1b1b;
-}
-
-#dashboard_browser_nag.postbox {
-	background-color: #e29808;
-	background-image: none;
-	border-color: #edc048;
-	-moz-box-shadow: none;
-	-webkit-box-shadow: none;
-	box-shadow: none;
-	color: #fff;
-}
-
-#dashboard_browser_nag.postbox.browser-insecure h3 {
-	border-bottom-color: #cd5a5a;
-	color: #fff;
-}
-
-#dashboard_browser_nag.postbox h3 {
-	border-bottom-color: #f6e2ac;
-	text-shadow: none;
-	-moz-box-shadow: none;
-	-webkit-box-shadow: none;
-	box-shadow: none;
-	background: transparent none;
-	color: #fff;
-}
-
-#dashboard_browser_nag a {
-	color: #fff;
-}
-
-#dashboard_browser_nag.browser-insecure a.browse-happy-link,
-#dashboard_browser_nag.browser-insecure a.update-browser-link {
-	text-shadow: #871b15 0 1px 0;
-}
-
-#dashboard_browser_nag a.browse-happy-link,
-#dashboard_browser_nag a.update-browser-link {
-	text-shadow: #d29a04 0 1px 0;
-}
-
-
-/* login */
-
-.login * {
-	margin: 0;
-	padding: 0;
-}
-
-.login form {
-	margin-left: 8px;
-	padding: 26px 24px 46px;
-	font-weight: normal;
-	background: #fff;
-	border: 1px solid #e5e5e5;
-	-moz-box-shadow: rgba(200, 200, 200, 0.7) 0px 4px 10px -1px;
-	-webkit-box-shadow: rgba(200, 200, 200, 0.7) 0px 4px 10px -1px;
-	box-shadow: rgba(200, 200, 200, 0.7) 0px 4px 10px -1px;
-}
-
-.login form .forgetmenot {
-	font-weight: normal;
-	float: left;
-	margin-bottom: 0;
-}
-
-.login .button-primary {
-	font-size: 13px !important;
-	line-height: 16px;
-	padding: 3px 10px;
-	float: right;
-}
-
-#login form p {
-	margin-bottom: 0;
-}
-
-#login form p.submit {
-	padding: 0;
-}
-
-.login label {
-	color: #777;
-	font-size: 14px;
-}
-
-.login form .forgetmenot label {
-	font-size: 12px;
-	line-height: 19px;
-}
-
-.login form p {
-	margin-bottom: 24px;
-}
-
-.login h1 a {
-	background-image: url('../images/wordpress-logo.png?ver=20120216');
-	background-size: 274px 63px;
-	background-position: top center;
-	background-repeat: no-repeat;
-	width: 326px;
-	height: 67px;
-	text-indent: -9999px;
-	overflow: hidden;
-	padding-bottom: 15px;
-	display: block;
-}
-
-@media only screen and (-webkit-min-device-pixel-ratio: 1.5) {
-	.login h1 a {
-		background-image: url('../images/wordpress-logo-2x.png?ver=20120412');
-		background-size: 274px 63px;
-	}
-
-	.wp-badge {
-		background-image: url('../images/wp-badge-2x.png?ver=20120516');
-		background-size: 173px 194px;
-	}
-}
-
-#login {
-	width: 320px;
-	padding: 114px 0 0;
-	margin: auto;
-}
-
-#login_error,
-.login .message {
-	margin: 0 0 16px 8px;
-	padding: 12px;
-}
-
-.login #nav,
-.login #backtoblog {
-	text-shadow: #fff 0 1px 0;
-	margin: 0 0 0 16px;
-	padding: 16px 16px 0;
-}
-
-#backtoblog {
-	padding: 12px 16px 0;
-}
-
-.login form .input,
-.login input[type="text"] {
-	color: #555;
-	font-weight: 200;
-	font-size: 24px;
-	line-height: 1;
-	width: 100%;
-	padding: 3px;
-	margin-top: 2px;
-	margin-right: 6px;
-	margin-bottom: 16px;
-	border: 1px solid #e5e5e5;
-	background: #fbfbfb;
-	outline: none;
-	-moz-box-shadow: inset 1px 1px 2px rgba(200, 200, 200, 0.2);
-	-webkit-box-shadow: inset 1px 1px 2px rgba(200, 200, 200, 0.2);
-	box-shadow: inset 1px 1px 2px rgba(200, 200, 200, 0.2);
-}
-
-.login #pass-strength-result {
-	width: 250px;
-	font-weight: bold;
-	border-style: solid;
-	border-width: 1px;
-	margin: 12px 0 6px;
-	padding: 6px 5px;
-	text-align: center;
-}
-
-.mobile #login {
-	padding: 20px 0;
-}
-
-.mobile #login form,
-.mobile #login .message,
-.mobile #login_error {
-	margin-left: 0;
-}
-
-.mobile #login #nav,
-.mobile #login #backtoblog {
-	margin-left: 8px;
-}
-
-.mobile #login h1 a {
-	width: auto;
-}
-
-
-/* ms */
-/* Dashboard: MS Specific Data */
-#dashboard_right_now p.musub {
-	margin-top: 12px;
-	border-top: 1px solid #ececec;
-	padding-left: 16px;
-	position: static;
-}
-
-.rtl #dashboard_right_now p.musub {
-	padding-left: 0;
-	padding-right: 16px;
-}
-
-#dashboard_right_now td.b a.musublink {
-	font-size: 16px;
-}
-
-#dashboard_right_now div.musubtable {
-	border-top: none;
-}
-
-#dashboard_right_now div.musubtable .t {
-	white-space: normal;
-}
-
-/* Background Color for Site Status */
-.wp-list-table .site-deleted {
-	background: #ff8573;
-}
-.wp-list-table .site-spammed {
-	background: #faafaa;
-}
-.wp-list-table .site-archived {
-	background: #ffebe8;
-}
-.wp-list-table .site-mature {
-	background: #fecac2;
-}
-
-/* nav-menu */
-
-#nav-menus-frame {
-	margin-left: 300px;
-}
-
-#wpbody-content #menu-settings-column {
-	display:inline;
-	width:281px;
-	margin-left: -300px;
-	clear: both;
-	float: left;
-	padding-top: 24px;
-}
-
-.no-js #wpbody-content #menu-settings-column {
-	padding-top: 31px;
-}
-
-#menu-settings-column .inside {
-	clear: both;
-}
-
-.metabox-holder-disabled .postbox {
-	opacity: 0.5;
-	filter: alpha(opacity=50);
-}
-
-.metabox-holder-disabled .button-controls .select-all {
-	display: none;
-}
-
-#wpbody {
-	position: relative;
-}
-
-/* Menu Container */
-#menu-management-liquid {
-	float: left;
-	min-width: 100%;
-}
-
-#menu-management {
-	position: relative;
-	margin-right: 20px;
-	margin-top: -3px;
-	width: 100%;
-}
-
-#menu-management .menu-edit {
-	margin-bottom: 20px;
-}
-
-.nav-menus-php #post-body {
-	padding: 10px;
-	border-width: 1px 0;
-	border-style: solid;
-}
-
-#nav-menu-header,
-#nav-menu-footer {
-	padding: 0 10px;
-}
-
-#nav-menu-header {
-	border-bottom: 1px solid;
-}
-
-#nav-menu-footer {
-	border-top: 1px solid;
-}
-
-.nav-menus-php #post-body div.updated,
-.nav-menus-php #post-body div.error {
-	margin: 0;
-}
-
-.nav-menus-php #post-body-content {
-	position: relative;
-	float: none;
-}
-
-#menu-management .menu-add-new abbr {
-	font-weight:bold;
-}
-
-/* Menu Tabs */
-
-#menu-management .nav-tabs-nav {
-	margin: 0 20px;
-}
-
-#menu-management .nav-tabs-arrow {
-	width: 10px;
-	padding: 0 5px 4px;
-	cursor: pointer;
-	position: absolute;
-	top: 0;
-	line-height: 22px;
-	font-size: 18px;
-	text-shadow: 0 1px 0 #fff;
-}
-
-#menu-management .nav-tabs-arrow-left {
-	left: 0;
-}
-
-#menu-management .nav-tabs-arrow-right {
-	right: 0;
-	text-align: right;
-}
-
-#menu-management .nav-tabs-wrapper {
-	width: 100%;
-	height: 28px;
-	margin-bottom: -1px;
-	overflow: hidden;
-}
-
-#menu-management .nav-tabs {
-	padding-left: 20px;
-	padding-right: 10px;
-}
-
-.js #menu-management .nav-tabs {
-	float: left;
-	margin-left: 0px;
-	margin-right: -400px;
-}
-
-#menu-management .nav-tab {
-	margin-bottom: 0;
-	font-size: 14px;
-}
-
-#select-nav-menu-container {
-	text-align: right;
-	padding: 0 10px 3px 10px;
-	margin-bottom: 5px;
-}
-
-#select-nav-menu {
-	width: 100px;
-	display: inline;
-}
-
-#menu-name-label {
-	margin-top: -2px;
-}
-
-#wpbody .open-label {
-	display: block;
-	float:left;
-}
-
-#wpbody .open-label span {
-	padding-right: 10px;
-}
-
-.js .input-with-default-title {
-	font-style: italic;
-}
-
-#menu-management .inside {
-	padding: 0 10px;
-}
-
-/* Add Menu Item Boxes */
-.postbox .howto input {
-	width: 180px;
-	float: right;
-}
-
-.customlinkdiv .howto input {
-	width: 200px;
-}
-
-#nav-menu-theme-locations .howto select {
-	width: 100%;
-}
-
-#nav-menu-theme-locations .button-controls {
-	text-align: right;
-}
-
-.add-menu-item-view-all {
-	height: 400px;
-}
-
-/* Button Primary Actions */
-#menu-container .submit {
-	margin: 0px 0px 10px;
-	padding: 0px;
-}
-
-.nav-menus-php .meta-sep,
-.nav-menus-php .submitdelete,
-.nav-menus-php .submitcancel {
-	display: block;
-	float: left;
-	margin: 4px 0;
-	line-height: 15px;
-}
-
-.meta-sep {
-	padding: 0 2px;
-}
-
-#cancel-save {
-	text-decoration: underline;
-	font-size: 12px;
-	margin-left: 20px;
-	margin-top: 5px;
-}
-
-/* Button Secondary Actions */
-.list-controls {
-	float: left;
-	margin-top: 5px;
-}
-
-.add-to-menu {
-	float: right;
-}
-
-.postbox img.waiting {
-	display: none;
-	vertical-align: middle;
-}
-
-.button-controls {
-	clear:both;
-	margin: 10px 0;
-}
-
-.show-all,
-.hide-all {
-	cursor: pointer;
-}
-
-.hide-all {
-	display: none;
-}
-
-/* Create Menu */
-#menu-name {
-	width: 270px;
-}
-
-#manage-menu .inside {
-	padding: 0px 0px;
-}
-
-/* Custom Links */
-#available-links dt {
-	display: block;
-}
-
-#add-custom-link .howto {
-	font-size: 12px;
-}
-
-#add-custom-link label span {
-	display: block;
-	float: left;
-	margin-top: 5px;
-	padding-right: 5px;
-}
-
-.menu-item-textbox {
-	width: 180px;
-}
-
-.nav-menus-php .howto span {
-	margin-top: 4px;
-	display: block;
-	float: left;
-}
-
-/* Menu item types */
-.quick-search {
-	width: 190px;
-}
-
-.nav-menus-php .list-wrap {
-	display: none;
-	clear: both;
-	margin-bottom: 10px;
-}
-
-.nav-menus-php .list-container {
-	max-height: 200px;
-	overflow-y: auto;
-	padding: 10px 10px 5px;
-}
-
-.nav-menus-php .postbox p.submit {
-	margin-bottom: 0;
-}
-
-/* Listings */
-.nav-menus-php .list li {
-	display: none;
-	margin: 0;
-	margin-bottom: 5px;
-}
-
-.nav-menus-php .list li .menu-item-title {
-	cursor: pointer;
-	display: block;
-}
-
-.nav-menus-php .list li .menu-item-title input {
-	margin-right: 3px;
-	margin-top: -3px;
-}
-
-/* Nav Menu */
-#menu-container .inside {
-	padding-bottom: 10px;
-}
-
-.menu {
-	padding-top:1em;
-}
-
-#menu-to-edit {
-	padding: 1em 0;
-}
-
-.menu ul {
-	width: 100%;
-}
-
-.menu li {
-	margin-bottom: 0;
-	position:relative;
-}
-
-.menu-item-bar {
-	clear:both;
-	line-height:1.5em;
-	position:relative;
-	margin: 13px 0 0 0;
-}
-
-.menu-item-handle {
-	border: 1px solid #dfdfdf;
-	position: relative;
-	padding-left: 10px;
-	height: auto;
-	width: 400px;
-	line-height: 35px;
-	text-shadow: 0 1px 0 #FFFFFF;
-	overflow: hidden;
-	word-wrap: break-word;
-}
-
-#menu-to-edit .menu-item-invalid .menu-item-handle {
-	background-color: #f6c9cc; /* Fallback */
-	background-image: -ms-linear-gradient(bottom, #f6c9cc, #fdf8ff); /* IE10 */
-	background-image: -moz-linear-gradient(bottom, #f6c9cc, #fdf8ff); /* Firefox */
-	background-image: -o-linear-gradient(bottom, #f6c9cc, #fdf8ff); /* Opera */
-	background-image: -webkit-gradient(linear, left bottom, left top, from(#f6c9cc), to(#fdf8ff)); /* old Webkit  */
-	background-image: -webkit-linear-gradient(bottom, #f6c9cc, #fdf8ff); /* new Webkit */
-	background-image: linear-gradient(bottom, #f6c9cc, #fdf8ff); /* proposed W3C Markup */
-}
-
-.menu-item-edit-active .menu-item-handle {
-	-webkit-border-bottom-right-radius: 0;
-	-webkit-border-bottom-left-radius: 0;
-	border-bottom-right-radius: 0;
-	border-bottom-left-radius: 0;
-}
-
-.no-js .menu-item-edit-active .item-edit {
-	display: none;
-}
-
-.js .menu-item-handle {
-	cursor: move;
-}
-
-.menu li.deleting .menu-item-handle {
-	background-image: none;
-	text-shadow: 0 0 0;
-}
-
-.menu-item-handle .item-title {
-	font-size: 12px;
-	font-weight: bold;
-	padding: 7px 0;
-	line-height: 20px;
-	display:block;
-	margin-right:13em;
-}
-
-/* Sortables */
-li.menu-item.ui-sortable-helper dl {
-	margin-top: 0;
-}
-
-li.menu-item.ui-sortable-helper .menu-item-transport dl {
-	margin-top: 13px;
-}
-
-.menu .sortable-placeholder {
-	height: 35px;
-	width: 410px;
-	margin-top: 13px;
-}
-
-/* WARNING: The factor of 30px is hardcoded into the nav-menus javascript. */
-.menu-item-depth-0 { margin-left: 0px; }
-.menu-item-depth-1 { margin-left: 30px; }
-.menu-item-depth-2 { margin-left: 60px; }
-.menu-item-depth-3 { margin-left: 90px; }
-.menu-item-depth-4 { margin-left: 120px; }
-.menu-item-depth-5 { margin-left: 150px; }
-.menu-item-depth-6 { margin-left: 180px; }
-.menu-item-depth-7 { margin-left: 210px; }
-.menu-item-depth-8 { margin-left: 240px; }
-.menu-item-depth-9 { margin-left: 270px; }
-.menu-item-depth-10 { margin-left: 300px; }
-.menu-item-depth-11 { margin-left: 330px; }
-
-.menu-item-depth-0 .menu-item-transport { margin-left: 0px; }
-.menu-item-depth-1 .menu-item-transport { margin-left: -30px; }
-.menu-item-depth-2 .menu-item-transport { margin-left: -60px; }
-.menu-item-depth-3 .menu-item-transport { margin-left: -90px; }
-.menu-item-depth-4 .menu-item-transport { margin-left: -120px; }
-.menu-item-depth-5 .menu-item-transport { margin-left: -150px; }
-.menu-item-depth-6 .menu-item-transport { margin-left: -180px; }
-.menu-item-depth-7 .menu-item-transport { margin-left: -210px; }
-.menu-item-depth-8 .menu-item-transport { margin-left: -240px; }
-.menu-item-depth-9 .menu-item-transport { margin-left: -270px; }
-.menu-item-depth-10 .menu-item-transport { margin-left: -300px; }
-.menu-item-depth-11 .menu-item-transport { margin-left: -330px; }
-
-body.menu-max-depth-0 { min-width: 950px !important; }
-body.menu-max-depth-1 { min-width: 980px !important; }
-body.menu-max-depth-2 { min-width: 1010px !important; }
-body.menu-max-depth-3 { min-width: 1040px !important; }
-body.menu-max-depth-4 { min-width: 1070px !important; }
-body.menu-max-depth-5 { min-width: 1100px !important; }
-body.menu-max-depth-6 { min-width: 1130px !important; }
-body.menu-max-depth-7 { min-width: 1160px !important; }
-body.menu-max-depth-8 { min-width: 1190px !important; }
-body.menu-max-depth-9 { min-width: 1220px !important; }
-body.menu-max-depth-10 { min-width: 1250px !important; }
-body.menu-max-depth-11 { min-width: 1280px !important; }
-
-/* Menu item controls */
-.item-type {
-	font-size: 12px;
-	padding-right: 10px;
-}
-
-.item-controls {
-	font-size: 12px;
-	position: absolute;
-	right: 20px;
-	top: -1px;
-}
-
-.item-controls a {
-	text-decoration: none;
-}
-
-.item-controls a:hover {
-	cursor: pointer;
-}
-
-.item-controls .item-order {
-	padding-right: 10px;
-}
-
-.nav-menus-php .item-edit {
-	position: absolute;
-	right: -20px;
-	top: 0;
-	display: block;
-	width: 30px;
-	height: 36px;
-	overflow: hidden;
-	text-indent:-999em;
-	border-bottom: 1px solid;
-	-webkit-border-bottom-left-radius: 3px;
-	border-bottom-left-radius: 3px;
-}
-
-/* Menu editing */
-.menu-instructions-inactive {
-	display: none;
-}
-
-.menu-item-settings {
-	display: block;
-	width: 400px;
-	padding: 10px 0 10px 10px;
-	border: solid;
-	border-width: 0 1px 1px 1px;
-	-webkit-border-bottom-right-radius: 3px;
-	-webkit-border-bottom-left-radius: 3px;
-	border-bottom-left-radius: 3px;
-	border-bottom-right-radius: 3px;
-}
-
-.menu-item-edit-active .menu-item-settings {
-	display: block;
-}
-
-.menu-item-edit-inactive .menu-item-settings {
-	display: none;
-}
-
-.add-menu-item-pagelinks {
-	margin: .5em auto;
-	text-align: center;
-}
-
-.link-to-original {
-	display: block;
-	margin: 0 0 10px;
-	padding: 3px 5px 5px;
-	font-size: 12px;
-	font-style: italic;
-}
-
-.link-to-original a {
-	padding-left: 4px;
-	font-style: normal;
-}
-
-.hidden-field {
-	display: none;
-}
-
-.menu-item-settings .description-thin,
-.menu-item-settings .description-wide {
-	margin-right: 10px;
-	float: left;
-}
-
-.description-thin {
-	width: 190px;
-	height: 40px;
-}
-
-.description-wide {
-	width: 390px;
-}
-
-.menu-item-actions {
-	padding-top: 15px;
-}
-
-#cancel-save {
-	cursor: pointer;
-}
-
-/* Major/minor publishing actions (classes) */
-.nav-menus-php .major-publishing-actions {
-	clear: both;
-	padding: 3px 0 5px;
-}
-
-.nav-menus-php .major-publishing-actions .publishing-action {
-	text-align: right;
-	float: right;
-	line-height: 23px;
-	margin: 5px 0 1px;
-}
-
-.nav-menus-php .major-publishing-actions .delete-action {
-	vertical-align: middle;
-	text-align: left;
-	float: left;
-	padding-right: 15px;
-	margin-top: 5px;
-}
-
-.menu-name-label span,
-.auto-add-pages label {
-	font-size: 12px;
-	font-style: normal;
-}
-
-.menu-name-label {
-	margin-right: 15px;
-}
-
-.auto-add-pages input {
-	margin-top: 0;
-}
-
-.auto-add-pages {
-	margin-top: 4px;
-	float: left;
-}
-
-.nav-menus-php .submitbox .submitcancel {
-	border-bottom: 1px solid;
-	padding: 1px 2px;
-	text-decoration: none;
-}
-
-.nav-menus-php .major-publishing-actions .form-invalid {
-	padding-left: 4px;
-	margin-left: -4px;
-	border: 0 none;
-}
-
-/* Clearfix */
-#menu-item-name-wrap:after,
-#menu-item-url-wrap:after,
-#menu-name-label:after,
-#menu-settings-column .inside:after,
-#nav-menus-frame:after,
-.nav-menus-php #post-body-content:after,
-.nav-menus-php .button-controls:after,
-.nav-menus-php .major-publishing-actions:after,
-.nav-menus-php .menu-item-settings:after {
-	clear: both;
-	content: ".";
-	display: block;
-	height: 0;
-	visibility: hidden;
-}
-
-#nav-menus-frame,
-.button-controls,
-#menu-item-url-wrap,
-#menu-item-name-wrap {
-	display: block;
-}
-
-/* Star ratings */
-div.star-holder {
-	position: relative;
-	height: 17px;
-	width: 100px;
-	background: url('../images/stars.png?ver=20120307') repeat-x bottom left;
-}
-
-div.star-holder .star-rating {
-	background: url('../images/stars.png?ver=20120307') repeat-x top left;
-	height: 17px;
-	float: left;
-}
-
-div.action-links {
-	font-weight: normal;
-	margin: 6px 0 0;
-}
-
-/* Header on thickbox */
-#plugin-information-header {
-	margin: 0;
-	padding: 0 5px;
-	font-weight: bold;
-	position: relative;
-	border-bottom-width: 1px;
-	border-bottom-style: solid;
-	height: 2.5em;
-}
-#plugin-information ul#sidemenu {
-	font-weight: normal;
-	margin: 0 5px;
-	position: absolute;
-	left: 0;
-	bottom: -1px;
-}
-
-/* Install sidemenu */
-#plugin-information p.action-button {
-	width: 100%;
-	padding-bottom: 0;
-	margin-bottom: 0;
-	margin-top: 10px;
-	-webkit-border-top-left-radius: 3px;
-	-webkit-border-bottom-left-radius: 3px;
-	border-top-left-radius: 3px;
-	border-bottom-left-radius: 3px;
-}
-
-#plugin-information .action-button a {
-	text-align: center;
-	font-weight: bold;
-	text-decoration: none;
-	display: block;
-	line-height: 2em;
-}
-
-#plugin-information h2 {
-	clear: none !important;
-	margin-right: 200px;
-}
-
-#plugin-information .fyi {
-	margin: 0 10px 50px;
-	width: 210px;
-}
-
-#plugin-information .fyi h2 {
-	font-size: 0.9em;
-	margin-bottom: 0;
-	margin-right: 0;
-}
-
-#plugin-information .fyi h2.mainheader {
-	padding: 5px;
-	-webkit-border-top-left-radius: 3px;
-	border-top-left-radius: 3px;
-}
-
-#plugin-information .fyi ul {
-	padding: 10px 5px 10px 7px;
-	margin: 0;
-	list-style: none;
-	-webkit-border-bottom-left-radius: 3px;
-	border-bottom-left-radius: 3px;
-}
-
-#plugin-information .fyi li {
-	margin-right: 0;
-}
-
-#plugin-information #section-holder {
-	padding: 10px;
-}
-
-#plugin-information .section ul,
-#plugin-information .section ol {
-	margin-left: 16px;
-	list-style-type: square;
-	list-style-image: none;
-}
-
-#plugin-information #section-screenshots ol {
-	list-style: none;
-	margin: 0;
-}
-
-#plugin-information #section-screenshots li img {
-	vertical-align: text-top;
-	max-width: 100%;
-	width: auto;
-	height: auto;
-}
-
-#plugin-information #section-screenshots li p {
-	font-style: italic;
-	padding-left: 20px;
-	padding-bottom: 2em;
-}
-
-#plugin-information #section-screenshots ol,
-#plugin-information .updated,
-#plugin-information pre {
-	margin-right: 215px;
-}
-
-#plugin-information pre {
-	padding: 7px;
-	overflow: auto;
-}
-
-/* press-this */
-body.press-this {
-	color: #333;
-	margin: 0;
-	padding: 0;
-	min-width: 675px;
-	min-height: 400px;
-}
-
-img {
-	border: none;
-}
-
-/* Header */
-.press-this #wphead {
-	height: 32px;
-	margin-left: 0;
-	margin-right: 0;
-	margin-bottom: 5px;
-}
-
-.press-this #header-logo {
-	float: left;
-	margin: 7px 7px 0;
-	-webkit-user-select: none;
-	-moz-user-select: none;
-	user-select: none;
-}
-
-.press-this #wphead h1 {
-	font-weight: normal;
-	font-size: 16px;
-	line-height: 32px;
-	margin: 0;
-	float: left;
-}
-
-.press-this #wphead h1 a {
-	text-decoration: none;
-}
-
-.press-this #wphead h1 a:hover {
-	text-decoration: underline;
-}
-
-.press-this #message {
-	margin: 10px 0;
-}
-
-.press-this-sidebar {
-	float: right;
-	width: 200px;
-	padding-top: 10px;
-}
-
-.press-this #title {
-	margin-left: 0;
-	margin-right: 0;
-	-moz-box-sizing: border-box;
-	-webkit-box-sizing: border-box;
-	-ms-box-sizing: border-box;
-	box-sizing: border-box;
-}
-
-.press-this .tagchecklist span a {
-	background: transparent url(../images/xit.gif) no-repeat 0 0;
-}
-
-.press-this #titlediv {
-	margin: 0;
-}
-
-.press-this .wp-media-buttons {
-	cursor: default;
-	padding: 8px 8px 0;
-}
-
-.press-this .howto {
-	margin-top: 2px;
-	margin-bottom: 3px;
-	font-size: 12px;
-	font-style: italic;
-	display: block;
-}
-
-/* Editor/Main Column */
-.press-this #poststuff {
-	margin: 0 10px 10px;
-}
-
-#poststuff #editor-toolbar {
-	height: 30px;
-}
-
-div.zerosize {
-	border: 0 none;
-	height: 0;
-	margin: 0;
-	overflow: hidden;
-	padding: 0;
-	width: 0;
-}
-
-.posting {
-	margin-right: 212px;
-	position: relative;
-}
-
-.press-this .inner-sidebar {
-	width: 200px;
-}
-
-.press-this .inner-sidebar .sleeve {
-	padding-top: 5px;
-}
-
-.press-this #submitdiv p {
-	margin: 0;
-	padding: 6px;
-}
-
-.press-this #submitdiv #publishing-actions {
-	border-bottom: 1px solid #dfdfdf;
-}
-
-.press-this #publish {
-	float: right;
-}
-
-.press-this #poststuff h2,
-.press-this #poststuff h3 {
-	font-size: 14px;
-	line-height: 1;
-}
-
-.press-this #tagsdiv-post_tag h3,
-.press-this #categorydiv h3 {
-	cursor: pointer;
-}
-
-.press-this #submitdiv h3 {
-	cursor: default;
-}
-
-h3.tb {
-	text-shadow: 0 1px 0 #fff;
-	font-weight: bold;
-	font-size: 12px;
-	margin-left: 5px;
-}
-
-#TB_window {
-	border: 1px solid #333;
-}
-
-.press-this .postbox,
-.press-this .stuffbox {
-	margin-bottom: 10px;
-	min-width: 0;
-}
-
-.postbox:hover .handlediv,
-.stuffbox:hover .handlediv {
-	background: transparent url(../images/arrows.png) no-repeat 6px 7px;
-}
-
-.press-this #submitdiv:hover .handlediv {
-	background: none;
-}
-
-.tbtitle {
-	font-size: 1.7em;
-	outline: none;
-	padding: 3px 4px;
-	border-color: #dfdfdf;
-}
-
-.press-this .actions {
-	float: right;
-	margin: -19px 0 0;
-}
-
-.press-this #extra-fields .actions {
-	margin: -25px -7px 0 0;
-}
-
-.press-this .actions li {
-	float: left;
-	list-style: none;
-	margin-right: 10px;
-}
-
-#extra-fields .button {
-	margin-right: 5px;
-}
-
-/* Photo Styles */
-#photo_saving {
-	margin: 0 8px 8px;
-	vertical-align: middle;
-}
-
-#img_container_container {
-	overflow: auto;
-}
-
-#extra-fields {
-	margin-top: 10px;
-	position: relative;
-}
-
-#extra-fields h2 {
-	margin: 12px;
-}
-
-#waiting {
-	margin-top: 10px;
-}
-
-#extra-fields .postbox {
-	margin-bottom: 5px;
-}
-
-#extra-fields .titlewrap {
-	padding: 0;
-	overflow: auto;
-	height: 100px;
-}
-
-#img_container a {
-	display: block;
-	float: left;
-	overflow: hidden;
-	vertical-align: center;
-}
-
-#img_container img,
-#img_container a {
-	width: 68px;
-	height: 68px;
-}
-
-#img_container img {
-	border: none;
-	background-color: #f4f4f4;
-	cursor: pointer;
-}
-
-#img_container a,
-#img_container a:link,
-#img_container a:visited {
-	border: 1px solid #ccc;
-	display: block;
-	position: relative;
-}
-
-#img_container a:hover,
-#img_container a:active {
-	border-color: #000;
-	z-index: 1000;
-	border-width: 2px;
-	margin: -1px;
-}
-
-/* Video */
-#embed-code {
-	width: 100%;
-	height: 98px;
-}
-
-/* Categories */
-.press-this .categorydiv div.tabs-panel {
-	height: 100px;
-}
-
-/* Tags */
-.press-this .tagsdiv .newtag {
-	width: 130px;
-}
-
-.press-this #content {
-	margin: 5px 0;
-	padding: 0 5px;
-	border: 0 none;
-	height: 357px;
-	font-family: Consolas, Monaco, monospace;
-	font-size: 13px;
-	line-height: 19px;
-	background: transparent;
-}
-
-/* Submit */
-#saving {
-	display: inline;
-	vertical-align: middle;
-}
-
-#TB_ajaxContent #options {
-	position: absolute;
-	top: 20px;
-	right: 25px;
-	padding: 5px;
-}
-
-#TB_ajaxContent h3 {
-	margin-bottom: .25em;
-}
-
-.error a {
-	text-decoration: underline;
-}
-
-.updated a {
-	text-decoration: none;
-	padding-bottom: 2px;
-}
-
-/* tag hints */
-.taghint {
-	color: #aaa;
-	margin: -17px 0 0 7px;
-	visibility: hidden;
-}
-
-input.newtag ~ div.taghint {
-	visibility: visible;
-}
-
-input.newtag:focus ~ div.taghint {
-	visibility: hidden;
-}
-
-/* TinyMCE */
-#mce_fullscreen_container {
-	background: #fff;
-}
-
-#photo-add-url-div input[type="text"] {
-	width: 300px;
-}
-
-/* theme-editor */
-.alignleft h3 {
-	margin: 0;
-}
-
-h3 span {
-	font-weight: normal;
-}
-
-#template textarea {
-	font-family: Consolas, Monaco, monospace;
-	font-size: 12px;
-	width: 97%;
-	background: #f9f9f9;
-	outline: none;
-}
-
-#template p {
-	width: 97%;
-}
-
-#templateside {
-	float: right;
-	width: 190px;
-	word-wrap: break-word;
-}
-
-#templateside h3,
-#postcustomstuff p.submit {
-	margin: 0;
-}
-
-#templateside h4 {
-	margin: 1em 0 0;
-}
-
-#templateside ol,
-#templateside ul {
-	margin: .5em;
-	padding: 0;
-}
-
-#templateside li {
-	margin: 4px 0;
-}
-
-#templateside ul li a span.highlight {
-	display:block;
-}
-
-.nonessential {
-	font-size: 11px;
-	font-style: italic;
-	padding-left: 12px;
-}
-
-.highlight {
-	padding: 3px 3px 3px 12px;
-	margin-left: -12px;
-	font-weight: bold;
-	border: 0 none;
-}
-
-#documentation {
-	margin-top: 10px;
-}
-#documentation label {
-	line-height: 22px;
-	vertical-align: top;
-	font-weight: bold;
-}
-
-.fileedit-sub {
-	padding: 10px 0 8px;
-	line-height: 180%;
-}
-
-#filter-box {
-	clear: both;
-}
-
-.feature-filter {
-	padding: 8px 12px 0;
-}
-
-.feature-filter .feature-group {
-	float: left;
-	margin: 5px 10px 10px;
-}
-
-.feature-filter .feature-group li {
-	display: inline;
-	float: left;
-	list-style-type: none;
-	padding-right: 25px;
-	width: 150px;
-}
-
-.feature-container {
-width: 100%;
-overflow: auto;
-margin-bottom: 10px;
-}
-
-/* widgets */
-
-/* 2 column liquid layout */
-div.widget-liquid-left {
-	float: left;
-	clear: left;
-	width: 100%;
-	margin-right: -325px;
-}
-
-div#widgets-left {
-	margin-left: 5px;
-	margin-right: 325px;
-}
-
-div#widgets-right {
-	width: 285px;
-	margin: 0 auto;
-}
-
-div.widget-liquid-right {
-	float: right;
-	clear: right;
-	width: 300px;
-}
-
-.widget-liquid-right .widget,
-.inactive-sidebar .widget,
-.widget-liquid-right .sidebar-description {
-	width: 250px;
-	margin: 0 auto 20px;
-	overflow: hidden;
-}
-
-.widget-liquid-right .sidebar-description {
-	margin-bottom: 10px;
-}
-
-.inactive-sidebar .widget {
-	margin: 0 10px 20px;
-	float: left;
-}
-
-div.sidebar-name h3 {
-	font-weight: normal;
-	font-size: 15px;
-	margin: 0;
-	padding: 8px 10px;
-	overflow: hidden;
-	white-space: nowrap;
-}
-
-div.sidebar-name {
-	cursor: pointer;
-	font-size: 13px;
-	border-width: 1px;
-	border-style: solid;
-	-webkit-border-top-right-radius: 3px;
-	-webkit-border-top-left-radius: 3px;
-	border-top-right-radius: 3px;
-	border-top-left-radius: 3px;
-}
-
-.js .closed .sidebar-name {
-	-webkit-border-bottom-right-radius: 3px;
-	-webkit-border-bottom-left-radius: 3px;
-	border-bottom-right-radius: 3px;
-	border-bottom-left-radius: 3px;
-}
-
-.widget-liquid-right .widgets-sortables,
-#widgets-left .widget-holder {
-	border-width: 0 1px 1px;
-	border-style: none solid solid;
-	-webkit-border-bottom-right-radius: 3px;
-	-webkit-border-bottom-left-radius: 3px;
-	border-bottom-right-radius: 3px;
-	border-bottom-left-radius: 3px;
-}
-
-.js .closed .widgets-sortables,
-.js .closed .widget-holder {
-	display: none;
-}
-
-.widget-liquid-right .widgets-sortables {
-	padding: 15px 0 0;
-}
-
-#available-widgets .widget-holder {
-	padding: 7px 5px 0;
-}
-
-#available-widgets .widget {
-	-moz-box-shadow: none;
-	-webkit-box-shadow: none;
-	box-shadow: none;
-}
-
-.inactive-sidebar {
-	padding: 5px 5px 0;
-}
-
-#widget-list .widget {
-	width: 250px;
-	margin: 0 10px 15px;
-	border: 0 none;
-	background: transparent;
-	float: left;
-}
-
-#widget-list .widget-description {
-	padding: 5px 8px;
-}
-
-.widget-placeholder {
-	border-width: 1px;
-	border-style: dashed;
-	margin: 0 auto 20px;
-	height: 26px;
-	width: 250px;
-}
-
-.inactive-sidebar .widget-placeholder {
-	margin: 0 10px 20px;
-	float: left;
-}
-
-div.widgets-holder-wrap {
-	padding: 0;
-	margin: 10px 0 20px;
-}
-
-#widgets-left #available-widgets {
-	background-color: transparent;
-	border: 0 none;
-}
-
-ul#widget-list {
-	list-style: none;
-	margin: 0;
-	padding: 0;
-	min-height: 100px;
-}
-
-.widget .widget-top {
-	margin-bottom: -1px;
-	font-size: 12px;
-	font-weight: bold;
-	height: 26px;
-	overflow: hidden;
-}
-
-.widget-top .widget-title {
-	padding: 7px 9px;
-}
-
-.widget-top .widget-title-action {
-	float: right;
-}
-
-a.widget-action {
-	display: block;
-	width: 24px;
-	height: 26px;
-}
-
-#available-widgets a.widget-action {
-	display: none;
-}
-
-.widget-top a.widget-action {
-	background: transparent url(../images/arrows.png) no-repeat 4px 6px;
-}
-
-.widget-top a.widget-action:hover {
-	background: transparent url(../images/arrows-dark.png) no-repeat 4px 6px;
-}
-
-.widget .widget-inside,
-.widget .widget-description {
-	padding: 12px 12px 10px;
-	font-size: 12px;
-	line-height: 16px;
-}
-
-.widget-inside,
-.widget-description {
-	display: none;
-}
-
-#available-widgets .widget-description {
-	display: block;
-}
-
-.widget .widget-inside p {
-	margin: 0 0 1em;
-	padding: 0;
-}
-
-.widget-title h4 {
-	margin: 0;
-	line-height: 1;
-	overflow: hidden;
-	white-space: nowrap;
-}
-
-.widgets-sortables {
-	min-height: 90px;
-}
-
-.widget-control-actions {
-	margin-top: 8px;
-}
-
-.widget-control-actions a {
-	text-decoration: none;
-}
-
-.widget-control-actions a:hover {
-	text-decoration: underline;
-}
-
-.widget-control-actions .ajax-feedback {
-	padding-bottom: 3px;
-}
-
-.widget-control-actions div.alignleft {
-	margin-top: 6px;
-}
-
-div#sidebar-info {
-	padding: 0 1em;
-	margin-bottom: 1em;
-	font-size: 12px;
-}
-
-.widget-title a,
-.widget-title a:hover {
-	text-decoration: none;
-	border-bottom: none;
-}
-
-.widget-control-edit {
-	display: block;
-	font-size: 12px;
-	font-weight: normal;
-	line-height: 26px;
-	padding: 0 8px 0 0;
-}
-
-a.widget-control-edit {
-	text-decoration: none;
-}
-
-.widget-control-edit .add,
-.widget-control-edit .edit {
-	display: none;
-}
-
-#available-widgets .widget-control-edit .add,
-#widgets-right .widget-control-edit .edit,
-.inactive-sidebar .widget-control-edit .edit {
-	display: inline;
-}
-
-.editwidget {
-	margin: 0 auto 15px;
-}
-
-.editwidget .widget-inside {
-	display: block;
-	padding: 10px;
-}
-
-.inactive p.description {
-	margin: 5px 15px 10px;
-}
-
-#available-widgets p.description {
-	margin: 0 12px 12px;
-}
-
-.widget-position {
-	margin-top: 8px;
-}
-
-.inactive {
-	padding-top: 2px;
-}
-
-.sidebar-name-arrow {
-	float: right;
-	height: 29px;
-	width: 26px;
-}
-
-.widget-title .in-widget-title {
-	font-size: 12px;
-	white-space: nowrap;
-}
-
-#removing-widget {
-	display: none;
-	font-weight: normal;
-	padding-left: 15px;
-	font-size: 12px;
-	line-height: 1;
-}
-
-.widget-control-noform,
-#access-off,
-.widgets_access .widget-action,
-.widgets_access .sidebar-name-arrow,
-.widgets_access #access-on,
-.widgets_access .widget-holder .description {
-	display: none;
-}
-
-.widgets_access .widget-holder,
-.widgets_access #widget-list {
-	padding-top: 10px;
-}
-
-.widgets_access #access-off {
-	display: inline;
-}
-
-.widgets_access #wpbody-content .widget-title-action,
-.widgets_access #wpbody-content .widget-control-edit,
-.widgets_access .closed .widgets-sortables,
-.widgets_access .closed .widget-holder {
-	display: block;
-}
-
-.widgets_access .closed .sidebar-name {
-	-webkit-border-bottom-right-radius: 0;
-	-webkit-border-bottom-left-radius: 0;
-	border-bottom-right-radius: 0;
-	border-bottom-left-radius: 0;
-}
-
-.widgets_access .sidebar-name,
-.widgets_access .widget .widget-top {
-	cursor: default;
-}
-
-/* =Media Queries
--------------------------------------------------------------- */
-
-@media only screen and (max-width: 768px) {
-	/* categories */
-	#col-left {
-		width: 100%;
-	}
-
-	#col-right {
-		width: 100%;
-	}
-}
-
-@media only screen and (min-width: 769px) {
-	/* categories */
-	#col-left {
-		width: 35%;
-	}
-
-	#col-right {
-		width: 65%;
-	}
-}
-
-@media only screen and (max-width: 860px) {
-
-	/* categories */
-	#col-left {
-		width: 35%;
-	}
-
-	#col-right {
-		width: 65%;
-	}
-}
-
-@media only screen and (min-width: 980px) {
-
-	/* categories */
-	#col-left {
-		width: 35%;
-	}
-
-	#col-right {
-		width: 65%;
-	}
-}
-
-@media only screen and (max-width: 768px) {
-	/* categories */
-	#col-left {
-		width: 100%;
-	}
-
-	#col-right {
-		width: 100%;
-	}
-
-	.form-field input,
-	.form-field textarea {
-		width: 99%;
-	}
-
-	.form-wrap .form-field {
-		padding:0;
-	}
-
-	/* users */
-	#profile-page .form-table textarea {
-		max-width: 400px;
-		width: auto;
-	}
-}
-
-/* =Localized CSS
--------------------------------------------------------------- */
-
-/* zh_CN: Remove italic properties. */
-.locale-zh-cn .howto,
-.locale-zh-cn .tablenav .displaying-num,
-.locale-zh-cn .js .input-with-default-title,
-.locale-zh-cn .link-to-original,
-.locale-zh-cn .inline-edit-row fieldset span.title,
-.locale-zh-cn .inline-edit-row fieldset span.checkbox-title,
-.locale-zh-cn #utc-time,
-.locale-zh-cn #local-time,
-.locale-zh-cn p.install-help,
-.locale-zh-cn p.help,
-.locale-zh-cn p.description,
-.locale-zh-cn span.description,
-.locale-zh-cn .form-wrap p {
-	font-style: normal;
-}
-
-/* zh_CN: Enlarge dashboard widget 'Configure' link */
-.locale-zh-cn .hdnle a { font-size: 12px; }
-
-/* zn_CH: Enlarge font size, set font-size: normal */
-.locale-zh-cn form.upgrade .hint { font-style: normal; font-size: 100%; }
-
-/* Zn_CH: Distraction free writing.
- *  More beautiful font for "Just write."
- *  Larger text for HTML/Visual mode.
- */
-.locale-zh-cn #wp-fullscreen-tagline { font-family: KaiTi, "楷体", sans-serif; }
-.locale-zh-cn #wp-fullscreen-modes a { font-size: 12px; }
-
-/* zh_CN: Enlarge font-size. */
-.locale-zh-cn #sort-buttons { font-size: 1em !important; }
-
-/* ru_RU: Text needs more room to breathe. */
-.locale-ru-ru #dashboard_quick_press .input-text-wrap,
-.locale-ru-ru #dashboard_quick_press .textarea-wrap,
-.locale-ru-ru #dashboard_quick_press .wp-media-buttons  {
-	margin-left: 5.7em; /* default 5em + 0.7em */
-}
-.locale-ru-ru #dashboard_quick_press h4 {
-	width: 5.7em; /* default 5.5em + 0.2em */
-}
-.locale-ru-ru #dashboard-widgets #dashboard_quick_press form p.submit {
-	margin-left: 5.3em; /* default 4.6em + 0.7em */
-}
-.locale-ru-ru .inline-edit-row fieldset label span.title {
-	width: auto; /* default 5em */
-	min-width: 5em;
-}
-.locale-ru-ru.press-this .posting {
-	margin-right: 257px; /* default 212px + 45px */
-}
-.locale-ru-ru.press-this #photo-add-url-div input[type="text"]  {
-	width: 255px; /* default 300px - 45px */
-}
-.locale-ru-ru.press-this #side-sortables {
-	width: 245px; /* default 200px + 45px */
-}
-
-/* lt_LT: QuickPress + QuickEdit */
-.locale-lt-lt #dashboard_quick_press .input-text-wrap,
-.locale-lt-lt #dashboard_quick_press .textarea-wrap,
-.locale-lt-lt #dashboard_quick_press .wp-media-buttons  {
-	margin-left: 7em;
-}
-.locale-lt-lt #dashboard_quick_press h4 {
-	width: 7em;
-}
-.locale-lt-lt .inline-edit-row fieldset label span.title {
-	width: 8em;
-}
-.locale-lt-lt .inline-edit-row fieldset label span.input-text-wrap {
-	margin-left: 8em;
-}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-admin/css/wp-admin.min.css	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,1 @@
+#wpwrap{height:auto;min-height:100%;width:100%;position:relative}#wpcontent{height:100%}#wpcontent,#wpfooter{margin-left:165px}.folded #wpcontent,.folded #wpfooter{margin-left:52px}#wpbody-content{padding-bottom:65px;float:left;width:100%}#adminmenuback,#adminmenuwrap,#adminmenu,#adminmenu .wp-submenu{width:145px}#adminmenuback{position:absolute;top:0;bottom:0;z-index:-1}#adminmenu{clear:left;margin:0;padding:0;list-style:none}.folded #adminmenuback,.folded #adminmenuwrap,.folded #adminmenu,.folded #adminmenu li.menu-top{width:32px}.inner-sidebar{float:right;clear:right;display:none;width:281px;position:relative}.columns-2 .inner-sidebar{margin-right:auto;width:286px;display:block}.inner-sidebar #side-sortables,.columns-2 .inner-sidebar #side-sortables{min-height:300px;width:280px;padding:0}.has-right-sidebar .inner-sidebar{display:block}.has-right-sidebar #post-body{float:left;clear:left;width:100%;margin-right:-2000px}.has-right-sidebar #post-body-content{margin-right:300px;float:none;width:auto}#col-container,#col-left,#col-right{overflow:hidden;padding:0;margin:0}#col-left{width:35%}#col-right{float:right;clear:right;width:65%}.col-wrap{padding:0 7px}.alignleft{float:left}.alignright{float:right}.textleft{text-align:left}.textright{text-align:right}.clear{clear:both}.screen-reader-text,.screen-reader-text span,.ui-helper-hidden-accessible{position:absolute;left:-1000em;top:-1000em;height:1px;width:1px;overflow:hidden}.screen-reader-shortcut{position:absolute;top:-1000em}.screen-reader-shortcut:focus{left:6px;top:-21px;height:auto;width:auto;display:block;font-size:14px;font-weight:bold;padding:15px 23px 14px;background:#f1f1f1;color:#21759b;border-radius:3px;z-index:100000;line-height:normal;-webkit-box-shadow:0 0 2px 2px rgba(0,0,0,.6);box-shadow:0 0 2px 2px rgba(0,0,0,.6);text-decoration:none}.hidden,.js .closed .inside,.js .hide-if-js,.no-js .hide-if-no-js,.js.wp-core-ui .hide-if-js,.js .wp-core-ui .hide-if-js,.no-js.wp-core-ui .hide-if-no-js,.no-js .wp-core-ui .hide-if-no-js{display:none}input[type="text"],input[type="password"],input[type="number"],input[type="search"],input[type="email"],input[type="url"],textarea{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box}input[type="checkbox"],input[type="radio"]{vertical-align:text-top;padding:0;margin:1px 0 0}input[type="search"]{-webkit-appearance:textfield}input[type="search"]::-webkit-search-decoration{display:none}html,body{height:100%;margin:0;padding:0}body{font-family:sans-serif;font-size:12px;line-height:1.4em;min-width:600px}body.iframe{min-width:0}body.login{background:#fbfbfb;min-width:0}iframe,img{border:0}td,textarea,input,select,button{font-family:inherit;font-size:inherit;font-weight:inherit}td,textarea{line-height:inherit}input,select{line-height:15px}a,input[type="text"],input[type="password"],input[type="number"],input[type="search"],input[type="email"],input[type="url"],select,textarea,div{outline:0}a:focus,a:active{outline:thin dotted}#adminmenu a:focus,#adminmenu a:active,.screen-reader-text:focus{outline:0}blockquote,q{quotes:none}blockquote:before,blockquote:after,q:before,q:after{content:'';content:none}p{margin:1em 0}blockquote{margin:1em}label{cursor:pointer}li,dd{margin-bottom:6px}textarea,input,select{margin:1px;padding:3px}h1,h2,h3,h4,h5,h6{display:block;font-weight:bold}h1{font-size:2em;margin:.67em 0}h2{font-size:1.5em;margin:.83em 0}h3{font-size:1.17em;margin:1em 0}h4{font-size:1em;margin:1.33em 0}h5{font-size:.83em;margin:1.67em 0}h6{font-size:.67em;margin:2.33em 0}ul,ol{padding:0}ul{list-style:none}ol{list-style-type:decimal;margin-left:2em}ul.ul-disc{list-style:disc outside}ul.ul-square{list-style:square outside}ol.ol-decimal{list-style:decimal outside}ul.ul-disc,ul.ul-square,ol.ol-decimal{margin-left:1.8em}ul.ul-disc>li,ul.ul-square>li,ol.ol-decimal>li{margin:0 0 .5em}.code,code{font-family:Consolas,Monaco,monospace}kbd,code{padding:1px 3px;margin:0 1px;font-size:11px}.subsubsub{list-style:none;margin:8px 0 5px;padding:0;font-size:12px;float:left}.subsubsub a{line-height:2;padding:.2em;text-decoration:none}.subsubsub a .count,.subsubsub a.current .count{color:#999;font-weight:normal}.subsubsub a.current{font-weight:bold;border:0}.subsubsub li{display:inline-block;margin:0;padding:0;white-space:nowrap}.widefat,div.updated,div.error,.wrap .add-new-h2,textarea,input[type="text"],input[type="password"],input[type="file"],input[type="email"],input[type="number"],input[type="search"],input[type="tel"],input[type="url"],select,.tablenav .tablenav-pages a,.tablenav-pages span.current,#titlediv #title,.postbox,#postcustomstuff table,#postcustomstuff input,#postcustomstuff textarea,.imgedit-menu div,.plugin-update-tr .update-message,#poststuff .inside .the-tagcloud,.login form,#login_error,.login .message,#menu-management .menu-edit,.nav-menus-php .list-container,.menu-item-handle,.link-to-original,.nav-menus-php .major-publishing-actions .form-invalid,.press-this #message,#TB_window,.tbtitle,.highlight,.feature-filter,#widget-list .widget-top,.editwidget .widget-inside{-webkit-border-radius:3px;border-radius:3px;border-width:1px;border-style:solid}.widefat{border-spacing:0;width:100%;clear:both;margin:0}.widefat *{word-wrap:break-word}.widefat a{text-decoration:none}.widefat thead th:first-of-type{-webkit-border-top-left-radius:3px;border-top-left-radius:3px}.widefat thead th:last-of-type{-webkit-border-top-right-radius:3px;border-top-right-radius:3px}.widefat tfoot th:first-of-type{-webkit-border-bottom-left-radius:3px;border-bottom-left-radius:3px}.widefat tfoot th:last-of-type{-webkit-border-bottom-right-radius:3px;border-bottom-right-radius:3px}.widefat td,.widefat th{border-width:1px 0;border-style:solid}.widefat tfoot th{border-bottom:0}.widefat .no-items td{border-bottom-width:0}.widefat td{font-size:12px;padding:4px 7px 2px;vertical-align:top}.widefat td p,.widefat td ol,.widefat td ul{font-size:12px}.widefat th{padding:7px 7px 8px;text-align:left;line-height:1.3em;font-size:14px}.widefat th input{margin:0 0 0 8px;padding:0;vertical-align:text-top}.widefat .check-column{width:2.2em;padding:6px 0 25px;vertical-align:top}.widefat tbody th.check-column{padding:9px 0 22px}.widefat.media .check-column{padding-top:8px}.widefat thead .check-column,.widefat tfoot .check-column{padding:10px 0 0}.no-js .widefat thead .check-column input,.no-js .widefat tfoot .check-column input{display:none}.widefat .num,.column-comments,.column-links,.column-posts{text-align:center}.widefat th#comments{vertical-align:middle}.wrap{margin:4px 15px 0 0}div.updated,div.error{padding:0 .6em;margin:5px 15px 2px}div.updated p,div.error p{margin:.5em 0;padding:2px}.wrap div.updated,.wrap div.error,.media-upload-form div.error{margin:5px 0 15px}.wrap h2,.subtitle{font-weight:normal;margin:0;text-shadow:#fff 0 1px 0}.wrap h2{font-size:23px;padding:9px 15px 4px 0;line-height:29px}.subtitle{font-size:14px;padding-left:25px}.wrap .add-new-h2{font-family:sans-serif;margin-left:4px;padding:3px 8px;position:relative;top:-3px;text-decoration:none;font-size:12px;border:0 none}.wrap h2.long-header{padding-right:0}html,.wp-dialog{background-color:#fff}textarea,input[type="text"],input[type="password"],input[type="file"],input[type="email"],input[type="number"],input[type="search"],input[type="tel"],input[type="url"],select{background-color:#fff;color:#333}select{color:#000}select[disabled]{color:#7f7f7f}select:focus{border-color:#aaa}textarea:focus,input[type="text"]:focus,input[type="password"]:focus,input[type="file"]:focus,input[type="email"]:focus,input[type="number"]:focus,input[type="search"]:focus,input[type="tel"]:focus,input[type="url"]:focus,select:focus{-webkit-box-shadow:1px 1px 2px rgba(0,0,0,0.1);box-shadow:1px 1px 2px rgba(0,0,0,0.1)}input[readonly]{background-color:#eee}:-moz-placeholder{color:#a9a9a9}div.sidebar-name h3,#menu-management .nav-tab,#dashboard_plugins h5,a.rsswidget,#dashboard_right_now td.b,#dashboard-widgets h4,.tool-box .title,#poststuff h3,.metabox-holder h3,.pressthis a,#your-profile legend,.inline-edit-row fieldset span.title,.inline-edit-row fieldset span.checkbox-title,.tablenav .displaying-num,.widefat th,.quicktags,.search{font-family:Georgia,"Times New Roman","Bitstream Charter",Times,serif}h2 .nav-tab,.wrap h2,.subtitle,.login form .input{font-family:"HelveticaNeue-Light","Helvetica Neue Light","Helvetica Neue",sans-serif}.quicktags,.search{font-size:12px}.icon32{float:left;height:34px;margin:7px 8px 0 0;width:36px}.icon16{height:18px;width:18px;padding:6px 6px;margin:-6px 0 0 -8px;float:left}.key-labels label{line-height:24px}.pre{white-space:pre-wrap;word-wrap:break-word}.howto{font-style:italic;display:block;font-family:sans-serif}p.install-help{margin:8px 0;font-style:italic}.no-break{white-space:nowrap}.wp-admin select{padding:2px;height:2em}.wp-admin select[multiple]{height:auto}.submit{padding:1.5em 0;margin:5px 0;-webkit-border-bottom-left-radius:3px;-webkit-border-bottom-right-radius:3px;border-bottom-left-radius:3px;border-bottom-right-radius:3px}form p.submit a.cancel:hover{text-decoration:none}#minor-publishing-actions input,#major-publishing-actions input,#minor-publishing-actions .preview{text-align:center}textarea.all-options,input.all-options{width:250px}input.large-text,textarea.large-text{width:99%}input.regular-text,#adduser .form-field input{width:25em}input.small-text{width:50px}input[type="number"].small-text{width:60px}#doaction,#doaction2,#post-query-submit{margin:1px 8px 0 0}.tablenav #changeit,.tablenav #delete_all,.tablenav #clear-recent-list{margin-top:1px}.tablenav .actions select{float:left;margin-right:6px;max-width:200px}.ie8 .tablenav .actions select{width:155px}.ie8 .tablenav .actions select#cat{width:200px}#timezone_string option{margin-left:1em}label,#your-profile label+a{vertical-align:middle}#misc-publishing-actions label{vertical-align:baseline}#pass-strength-result{border-style:solid;border-width:1px;float:left;margin:13px 5px 5px 1px;padding:3px 5px;text-align:center;width:200px;display:none}.indicator-hint{padding-top:8px}p.search-box{float:right;margin:0}.search-box input[name="s"],#search-plugins input[name="s"],.tagsdiv .newtag{float:left;height:2em;margin:0 4px 0 0}input[type="text"].ui-autocomplete-loading{background:transparent url('../images/loading.gif') no-repeat right center;visibility:visible}ul#add-to-blog-users{margin:0 0 0 14px}.ui-autocomplete-input.open{border-bottom-right-radius:0;border-bottom-left-radius:0}.ui-autocomplete{padding:0;margin:0;list-style:none;position:absolute;z-index:10000;border-bottom-right-radius:3px;border-bottom-left-radius:3px;border-width:1px;border-style:solid}.ui-autocomplete li{margin-bottom:0;white-space:nowrap;text-align:left}.ui-autocomplete li a{display:block;height:100%;padding:4px 10px}.ui-autocomplete li a.ui-state-focus{cursor:pointer}#major-publishing-actions{padding:10px 10px 8px;clear:both;border-top:1px solid #f5f5f5;margin-top:-2px}#delete-action{line-height:25px;vertical-align:middle;text-align:left;float:left}#publishing-action{text-align:right;float:right;line-height:23px}#publishing-action .spinner{float:left}#misc-publishing-actions{padding:6px 0 0}.misc-pub-section{padding:6px 10px 8px;border-width:1px 0;border-style:solid}.misc-pub-section:first-child{border-top-width:0}.misc-pub-section-last{border-bottom-width:0}#minor-publishing-actions{padding:10px 10px 2px 8px;text-align:right}#minor-publishing{border-bottom-width:1px;border-bottom-style:solid;-webkit-box-shadow:0 1px 0 #fff;box-shadow:0 1px 0 #fff}#save-post{float:left}.preview{float:right}#sticky-span{margin-left:18px}.side-info{margin:0;padding:4px;font-size:11px}.side-info h5{padding-bottom:7px;font-size:14px;margin:12px 2px 5px;border-bottom-width:1px;border-bottom-style:solid}.side-info ul{margin:0;padding-left:18px;list-style:square}.approve,.unapproved .unapprove{display:none}.unapproved .approve,.spam .approve,.trash .approve{display:inline}td.action-links,th.action-links{text-align:right}#update-nag,.update-nag{line-height:19px;padding:5px 0;font-size:12px;text-align:center;margin:-1px 15px 0 5px;border-width:1px;border-style:solid;-webkit-border-bottom-right-radius:3px;-webkit-border-bottom-left-radius:3px;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.plugins .plugin-update{padding:0}.plugin-update .update-message{margin:0 10px 8px 31px;font-weight:bold}ul#dismissed-updates{display:none}form.upgrade{margin-top:8px}form.upgrade .hint{font-style:italic;font-size:85%;margin:-0.5em 0 2em 0}#ajax-loading,.ajax-loading,.ajax-feedback,.imgedit-wait-spin,.list-ajax-loading{visibility:hidden}#ajax-response.alignleft{margin-left:2em}#adminmenu a,#sidemenu a,#taglist a,#catlist a{text-decoration:none}#screen-options-wrap,#contextual-help-wrap{margin:0;padding:8px 20px 12px;position:relative}#contextual-help-wrap{overflow:auto}#screen-meta .screen-reader-text{visibility:hidden}#screen-meta-links{margin:0 24px 0 0}#screen-meta-links a:focus{-webkit-box-shadow:1px 1px 1px rgba(0,0,0,0.4);box-shadow:1px 1px 1px rgba(0,0,0,0.4);outline:0}#screen-meta{display:none;position:relative;margin:0 15px 0 5px;border-width:0 1px 1px;border-style:none solid solid}#screen-options-link-wrap,#contextual-help-link-wrap{float:right;height:23px;padding:0;margin:0 0 0 6px;font-family:sans-serif}#screen-options-link-wrap,#contextual-help-link-wrap,#screen-meta{-webkit-border-bottom-left-radius:3px;-webkit-border-bottom-right-radius:3px;border-bottom-left-radius:3px;border-bottom-right-radius:3px}#screen-meta-links .screen-meta-toggle{position:relative;top:-1px}#screen-meta-links a.show-settings{text-decoration:none;z-index:1;padding:1px 16px 0 6px;height:22px;line-height:22px;font-size:12px;display:block;text-shadow:rgba(255,255,255,0.7) 0 1px 0}#screen-meta-links a.show-settings:hover{text-decoration:none}.toggle-arrow{background-repeat:no-repeat;background-position:top left;background-color:transparent;height:22px;line-height:22px;display:block}.toggle-arrow-active{background-position:bottom left}#screen-options-wrap h5,#contextual-help-wrap h5{margin:8px 0;font-size:13px}.metabox-prefs label{display:inline-block;padding-right:15px;white-space:nowrap;line-height:30px}.metabox-prefs label input{margin:0 5px 0 2px}.metabox-prefs .columns-prefs label input{margin:0 2px}.metabox-prefs label a{display:none}#contextual-help-wrap{padding:0;margin-left:-4px}#contextual-help-columns{position:relative}#contextual-help-back{position:absolute;top:0;bottom:0;left:150px;right:170px;border-width:0 1px;border-style:solid}#contextual-help-wrap.no-sidebar #contextual-help-back{right:0;border-right-width:0;-webkit-border-bottom-right-radius:2px;border-bottom-right-radius:2px}.contextual-help-tabs{float:left;width:150px;margin:0}.contextual-help-tabs ul{margin:1em 0}.contextual-help-tabs li{margin-bottom:0;list-style-type:none;border-style:solid;border-width:1px 0;border-color:transparent}.contextual-help-tabs a{display:block;padding:5px 5px 5px 12px;line-height:18px;text-decoration:none}.contextual-help-tabs .active{padding:0;margin:0 -1px 0 0;border-width:1px 0 1px 1px;border-style:solid}.contextual-help-tabs-wrap{padding:0 20px;overflow:auto}.help-tab-content{display:none;margin:0 22px 12px 0;line-height:1.6em}.help-tab-content.active{display:block}.help-tab-content li{list-style-type:disc;margin-left:18px}.contextual-help-sidebar{width:150px;float:right;padding:0 8px 0 12px;overflow:auto}#adminmenuback,#adminmenuwrap{border-width:0 1px 0 0;border-style:solid}#adminmenuwrap{position:relative;float:left}#adminmenushadow{position:absolute;top:0;right:0;bottom:0;width:6px;z-index:20}#adminmenu *{-webkit-user-select:none;-moz-user-select:none;user-select:none}#adminmenu li{margin:0;padding:0;cursor:pointer}#adminmenu a{display:block;line-height:18px;padding:2px 5px}#adminmenu li.menu-top{min-height:28px;position:relative}#adminmenu .wp-submenu{list-style:none;padding:4px 0;margin:0;position:absolute;top:-1000em;left:146px;z-index:1000;overflow:visible;border-width:1px;border-style:solid;-webkit-border-bottom-right-radius:3px;-webkit-border-top-right-radius:3px;border-bottom-right-radius:3px;border-top-right-radius:3px}.js #adminmenu .sub-open,.js #adminmenu .opensub .wp-submenu,#adminmenu a.menu-top:focus+.wp-submenu,.no-js li.wp-has-submenu:hover .wp-submenu{top:-1px}#adminmenu .wp-has-current-submenu .wp-submenu,.no-js li.wp-has-current-submenu:hover .wp-submenu,#adminmenu a.wp-has-current-submenu:focus+.wp-submenu,#adminmenu .wp-has-current-submenu .wp-submenu.sub-open,#adminmenu .wp-has-current-submenu.opensub .wp-submenu{position:relative;z-index:2;top:auto;left:auto;right:auto;bottom:auto;border:0 none;-webkit-box-shadow:none;box-shadow:none}.folded #adminmenu .wp-submenu.sub-open,.folded #adminmenu .opensub .wp-submenu,.folded #adminmenu .wp-has-current-submenu .wp-submenu.sub-open,.folded #adminmenu .wp-has-current-submenu.opensub .wp-submenu,.folded #adminmenu a.menu-top:focus+.wp-submenu,.folded #adminmenu .wp-has-current-submenu a.menu-top:focus+.wp-submenu,.no-js.folded #adminmenu .wp-has-submenu:hover .wp-submenu{top:-1px;left:32px}.folded #adminmenu a.wp-has-current-submenu:focus+.wp-submenu,.folded #adminmenu .wp-has-current-submenu .wp-submenu{border-width:1px;border-style:solid;position:absolute;top:-1000em}#adminmenu .wp-submenu a{font-size:12px;line-height:18px;margin:0;padding-left:12px}#adminmenu .wp-not-current-submenu li>a{padding-left:16px}#adminmenu .wp-has-current-submenu ul>li>a,.folded #adminmenu li.menu-top .wp-submenu>li>a{padding-left:12px}#adminmenu a.menu-top,#adminmenu .wp-submenu-head{font-size:13px;font-weight:bold;line-height:18px;padding:0}#adminmenu .wp-submenu-head,.folded #adminmenu .wp-menu-name{display:none}.folded #adminmenu .wp-submenu-head{display:block}#adminmenu .wp-submenu li{padding:0;margin:0;overflow:hidden}#adminmenu a.menu-top{border-width:1px 0;border-style:solid none}#adminmenu .wp-menu-image img{padding:7px 0 0 7px;opacity:.6;filter:alpha(opacity=60)}#adminmenu div.wp-menu-name{padding:5px}#adminmenu div.wp-menu-image{float:left;width:28px;height:28px}.folded #adminmenu div.wp-menu-image{width:32px;position:absolute;z-index:25}.folded #adminmenu a.menu-top{height:28px}.wp-menu-arrow{z-index:25;position:absolute;right:100%;margin:0;height:30px;width:6px;-moz-transform:translate(146px);-webkit-transform:translate(146px);-o-transform:translate(146px);-ms-transform:translate(146px);transform:translate(146px)}#adminmenu .wp-menu-arrow div{display:none;position:absolute;top:7px;left:-1px;width:14px;height:15px;-moz-transform:matrix(-0.6,1,0.6,1,0,0);-webkit-transform:matrix(-0.6,1,0.6,1,0,0);-o-transform:matrix(-0.6,1,0.6,1,0,0);-ms-transform:matrix(-0.6,1,0.6,1,0,0);transform:matrix(-0.6,1,0.6,1,0,0)}#adminmenu li.wp-not-current-submenu .wp-menu-arrow{-moz-transform:translate(145px);-webkit-transform:translate(145px);-o-transform:translate(145px);-ms-transform:translate(145px);transform:translate(145px);height:28px;border-width:1px 0;border-style:solid;top:0}.folded #adminmenu li .wp-menu-arrow{-moz-transform:translate(32px);-webkit-transform:translate(32px);-o-transform:translate(32px);-ms-transform:translate(32px);transform:translate(32px)}#adminmenu li.current .wp-menu-arrow,#adminmenu li.wp-has-current-submenu .wp-menu-arrow,#adminmenu li.wp-has-current-submenu .wp-menu-arrow div,#adminmenu li.wp-has-submenu .wp-menu-arrow div,#adminmenu li.current .wp-menu-arrow div,.no-js #adminmenu li.wp-has-submenu:hover .wp-menu-arrow,#adminmenu li.wp-has-submenu.opensub .wp-menu-arrow,#adminmenu a.wp-has-submenu:focus .wp-menu-arrow,#adminmenu a:hover .wp-menu-arrow{display:block}#adminmenu li.current .wp-menu-arrow,#adminmenu li.wp-menu-open .wp-menu-arrow{top:0}.no-js #adminmenu li.wp-has-submenu:hover .wp-menu-arrow,#adminmenu li.wp-has-submenu.opensub .wp-menu-arrow,#adminmenu a.wp-has-submenu:focus .wp-menu-arrow{z-index:1001}.ie8 #adminmenu li.menu-top:hover .wp-menu-arrow{display:none}#adminmenu .wp-not-current-submenu .wp-menu-arrow div{width:15px;top:6px;border-width:0 0 1px 1px;border-style:solid}.wp-menu-arrow,.folded #adminmenu li .wp-menu-arrow div,.no-js #adminmenu li.wp-not-current-submenu:hover .wp-menu-arrow{display:none}.folded #adminmenu li.current .wp-menu-arrow,.folded #adminmenu li.current .wp-menu-arrow div,.folded #adminmenu li.wp-has-current-submenu .wp-menu-arrow div,.folded #adminmenu li.wp-menu-open .wp-menu-arrow,.folded #adminmenu li a:focus .wp-menu-arrow{display:block}#adminmenu li.menu-top:hover .wp-menu-image img,#adminmenu li.wp-has-current-submenu .wp-menu-image img{opacity:1;filter:alpha(opacity=100)}#adminmenu li.wp-menu-separator{height:3px;padding:0;margin:0;border-width:1px 0;border-style:solid;cursor:inherit}#adminmenu div.separator{height:1px;padding:0;border-width:1px 0 0 0;border-style:solid}#adminmenu .wp-submenu .wp-submenu-head{padding:5px 4px 5px 10px;margin:-4px -1px 4px;border-width:1px 0;border-style:solid;-webkit-border-top-right-radius:3px;border-top-right-radius:3px}#adminmenu li.wp-menu-open{border-width:0 0 1px;border-style:solid}#adminmenu li.current,.folded #adminmenu li.wp-menu-open{border:0 none}.folded #adminmenu li.wp-has-current-submenu{margin-bottom:1px}.folded #adminmenu .wp-has-current-submenu.menu-top-last{margin-bottom:0}#adminmenu .awaiting-mod,#adminmenu span.update-plugins,#sidemenu li a span.update-plugins{position:absolute;font-family:sans-serif;font-size:9px;line-height:17px;font-weight:bold;margin-top:1px;margin-left:7px;-webkit-border-radius:10px;border-radius:10px;z-index:26}#adminmenu li .awaiting-mod span,#adminmenu li span.update-plugins span,#sidemenu li a span.update-plugins span{display:block;padding:0 6px}#adminmenu li span.count-0,#sidemenu li a .count-0{display:none}#collapse-menu{font-size:12px;line-height:34px;border-width:1px 0 0;border-style:solid}.folded #collapse-menu span{display:none}#collapse-button,#collapse-button div{width:15px;height:15px}#collapse-button{float:left;margin:8px 6px;border-width:1px;border-style:solid;-webkit-border-radius:10px;border-radius:10px}@media only screen and (max-width:900px){.auto-fold #wpcontent,.auto-fold #wpfooter{margin-left:52px}.auto-fold #adminmenuback,.auto-fold #adminmenuwrap,.auto-fold #adminmenu,.auto-fold #adminmenu li.menu-top{width:32px}.auto-fold #adminmenu .wp-submenu.sub-open,.auto-fold #adminmenu .opensub .wp-submenu,.auto-fold #adminmenu .wp-has-current-submenu .wp-submenu.sub-open,.auto-fold #adminmenu .wp-has-current-submenu.opensub .wp-submenu,.auto-fold #adminmenu a.menu-top:focus+.wp-submenu,.auto-fold #adminmenu .wp-has-current-submenu a.menu-top:focus+.wp-submenu{top:-1px;left:32px}.auto-fold #adminmenu a.wp-has-current-submenu:focus+.wp-submenu,.auto-fold #adminmenu .wp-has-current-submenu .wp-submenu{border-width:1px;border-style:solid;position:absolute;top:-1000em}.auto-fold #adminmenu li.menu-top .wp-submenu>li>a{padding-left:12px}.auto-fold #adminmenu .wp-menu-name{display:none}.auto-fold #adminmenu .wp-submenu-head{display:block}.auto-fold #adminmenu div.wp-menu-image{width:32px;position:absolute;z-index:25}.auto-fold #adminmenu a.menu-top{height:28px}.auto-fold #adminmenu li .wp-menu-arrow{-moz-transform:translate(32px);-webkit-transform:translate(32px);-o-transform:translate(32px);-ms-transform:translate(32px);transform:translate(32px)}.auto-fold #adminmenu li .wp-menu-arrow div{display:none}.auto-fold #adminmenu li.current .wp-menu-arrow,.auto-fold #adminmenu li.current .wp-menu-arrow div,.auto-fold #adminmenu li.wp-has-current-submenu .wp-menu-arrow div,.auto-fold #adminmenu li.wp-menu-open .wp-menu-arrow,.auto-fold #adminmenu li a:focus .wp-menu-arrow{display:block}.auto-fold #adminmenu li.wp-menu-open{border:0 none}.auto-fold #adminmenu li.wp-has-current-submenu{margin-bottom:1px}.auto-fold #adminmenu .wp-has-current-submenu.menu-top-last{margin-bottom:0}.auto-fold #collapse-menu span{display:none}}.post-com-count-wrapper{min-width:22px;font-family:sans-serif}.post-com-count{background-image:url('../images/bubble_bg.gif');height:1.3em;line-height:1.1em;display:block;text-decoration:none;padding:0 0 6px;cursor:pointer;background-position:center -80px;background-repeat:no-repeat}.post-com-count span{font-size:11px;font-weight:bold;height:1.4em;line-height:1.4em;min-width:.7em;padding:0 6px;display:inline-block;-webkit-border-radius:5px;border-radius:5px}strong .post-com-count{background-position:center -55px}.post-com-count:hover{background-position:center -3px}.column-response .post-com-count{float:left;margin-right:5px;text-align:center}.response-links{float:left}#the-comment-list .attachment-80x60{padding:4px 8px}th .comment-grey-bubble{background-image:url('../images/comment-grey-bubble.png');background-repeat:no-repeat;height:12px;width:12px}html.wp-toolbar{padding-top:28px;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.narrow{width:70%;margin-bottom:40px}.narrow p{line-height:150%}.widefat th,.widefat td{overflow:hidden}.widefat th{font-weight:normal}.widefat td p{margin:2px 0 .8em}.widefat .column-comment p{margin:.6em 0}.postbox-container{float:left}#dashboard-widgets.columns-1 .postbox-container{width:100%}#dashboard-widgets.columns-2 .postbox-container{width:49.5%}#dashboard-widgets.columns-2 #postbox-container-2,#dashboard-widgets.columns-2 #postbox-container-3,#dashboard-widgets.columns-2 #postbox-container-4{float:right;width:50.5%}#dashboard-widgets.columns-3 .postbox-container{width:33.5%}#dashboard-widgets.columns-3 #postbox-container-1{width:33%}#dashboard-widgets.columns-3 #postbox-container-3,#dashboard-widgets.columns-3 #postbox-container-4{float:right}#dashboard-widgets.columns-4 .postbox-container{width:25%}.postbox-container .meta-box-sortables{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box}.metabox-holder .postbox-container .empty-container{border:3px dashed #ccc;height:250px}.metabox-holder.columns-1 .postbox-container .empty-container,.columns-2 #postbox-container-3 .empty-container,.columns-2 #postbox-container-4 .empty-container,.columns-3 #postbox-container-4 .empty-container{border:0 none;height:0;min-height:0}#poststuff{padding-top:10px}#poststuff #post-body{padding:0}#post-body-content{width:100%;float:left}#poststuff .postbox-container{width:100%}#poststuff #post-body.columns-2{margin-right:300px}#post-body.columns-2 #postbox-container-1{float:right;margin-right:-300px;width:280px}#post-body.columns-2 #side-sortables{min-height:250px}@media only screen and (max-width:799px){#wpbody-content #dashboard-widgets .postbox-container{width:100%}#wpbody-content .metabox-holder .postbox-container .empty-container{border:0 none;height:0;min-height:0}}@media only screen and (min-width:800px) and (max-width:1200px){#wpbody-content #dashboard-widgets .postbox-container{width:49.5%}#wpbody-content #dashboard-widgets #postbox-container-2,#wpbody-content #dashboard-widgets #postbox-container-3,#wpbody-content #dashboard-widgets #postbox-container-4{float:right;width:50.5%}#dashboard-widgets #postbox-container-3 .empty-container,#dashboard-widgets #postbox-container-4 .empty-container{border:0 none;height:0;min-height:0}#wpbody #wpbody-content #dashboard-widgets.columns-1 .postbox-container{width:100%}#wpbody #wpbody-content .metabox-holder.columns-1 .postbox-container .empty-container{border:0 none;height:0;min-height:0}.index-php .screen-layout,.index-php .columns-prefs{display:block}.columns-prefs .columns-prefs-3,.columns-prefs .columns-prefs-4{display:none}}@media only screen and (max-width:850px){#wpbody-content #poststuff #post-body{margin:0}#wpbody-content #post-body.columns-2 #postbox-container-1{margin-right:0;width:100%}#poststuff #postbox-container-1 .empty-container,#poststuff #postbox-container-1 #side-sortables:empty{border:0 none;height:0;min-height:0}#poststuff #post-body.columns-2 #side-sortables{min-height:0}.screen-layout,.columns-prefs{display:none}}.postbox .hndle{-webkit-border-top-left-radius:3px;-webkit-border-top-right-radius:3px;border-top-left-radius:3px;border-top-right-radius:3px}.js .postbox .hndle{cursor:move}.postbox.closed .hndle{-webkit-border-radius:3px;border-radius:3px}.hndle a{font-size:11px;font-weight:normal}.postbox .handlediv{float:right;width:27px;height:30px}.js .postbox .handlediv{cursor:pointer}.sortable-placeholder{border-width:1px;border-style:dashed;margin-bottom:20px}.widget,.postbox,.stuffbox{margin-bottom:20px;padding:0;border-width:1px;border-style:solid;line-height:1}.widget .widget-top,.postbox h3,.stuffbox h3{margin-top:1px;border-bottom-width:1px;border-bottom-style:solid;-webkit-user-select:none;-moz-user-select:none;user-select:none}.js .widget .widget-top,.js .postbox h3{cursor:move}.postbox .inside,.stuffbox .inside{padding:0 12px 0 10px;line-height:1.4em}.postbox .inside{margin:10px 0;position:relative}.postbox.closed h3{border:0;-webkit-box-shadow:none;box-shadow:none}.postbox table.form-table{margin-bottom:0}.temp-border{border:1px dotted #ccc}.columns-prefs label{padding:0 5px}#dashboard-widgets-wrap{margin:0 -8px}#wpbody-content .metabox-holder{padding-top:10px}#dashboard-widgets .meta-box-sortables{margin:0 8px}#dashboard_recent_comments div.undo{border-top-style:solid;border-top-width:1px;margin:0 -10px;padding:3px 8px;font-size:11px}#the-comment-list td.comment p.comment-author{margin-top:0;margin-left:0}#the-comment-list p.comment-author img{float:left;margin-right:8px}#the-comment-list p.comment-author strong a{border:0}#the-comment-list td{vertical-align:top}#the-comment-list td.comment{word-wrap:break-word}.welcome-panel{position:relative;overflow:auto;margin:20px 0;padding:23px 10px 12px;border-width:1px;border-style:solid;border-radius:3px;font-size:13px;line-height:2.1em}.welcome-panel h3{margin:0;font-family:"HelveticaNeue-Light","Helvetica Neue Light","Helvetica Neue",sans-serif;font-size:21px;font-weight:normal;line-height:1.2}.welcome-panel h4{margin:1.33em 0 0;font-size:13px}.welcome-panel .about-description{font-size:16px;margin:0}.welcome-panel .welcome-panel-close{position:absolute;top:5px;right:10px;padding:8px 3px;font-size:13px;text-decoration:none;line-height:1}.welcome-panel .welcome-panel-close:before{content:' ';position:absolute;left:-12px;width:10px;height:100%;background:url('../images/xit.gif') 0 17% no-repeat}.welcome-panel .welcome-panel-close:hover:before{background-position:100% 17%}.wp-core-ui .welcome-panel .button.button-hero{margin:15px 0 3px}.welcome-panel-content{margin-left:13px;max-width:1500px}.welcome-panel .welcome-panel-column-container{clear:both;overflow:hidden;position:relative}.welcome-panel .welcome-panel-column{width:32%;min-width:200px;float:left}.ie8 .welcome-panel .welcome-panel-column{min-width:230px}.welcome-panel .welcome-panel-column:first-child{width:36%}.welcome-panel-column p{margin-top:7px}.welcome-panel .welcome-icon{display:block;padding:2px 0 8px 32px;background-image:url('../images/welcome-icons.png');background-repeat:no-repeat;background-size:16px}.welcome-panel .welcome-add-page{background-position:0 2px}.welcome-panel .welcome-edit-page{background-position:0 -90px}.welcome-panel .welcome-learn-more{background-position:0 -136px}.welcome-panel .welcome-comments{background-position:0 -182px}.welcome-panel .welcome-view-site{background-position:0 -274px}.welcome-panel .welcome-widgets-menus{background-position:1px -229px;line-height:14px}.welcome-panel .welcome-write-blog{background-position:0 -44px}.welcome-panel .welcome-panel-column ul{margin:.8em 1em 1em 0}.welcome-panel .welcome-panel-column li{line-height:16px;list-style-type:none}@media screen and (max-width:870px){.welcome-panel .welcome-panel-column,.welcome-panel .welcome-panel-column:first-child{display:block;float:none;width:100%}.welcome-panel .welcome-panel-column li{display:inline-block;margin-right:13px}.welcome-panel .welcome-panel-column ul{margin:.4em 0 0}.welcome-panel .welcome-icon{padding-left:25px}}table.fixed{table-layout:fixed}.fixed .column-rating,.fixed .column-visible{width:8%}.fixed .column-date,.fixed .column-parent,.fixed .column-links{width:10%}.fixed .column-response,.fixed .column-author,.fixed .column-categories,.fixed .column-tags,.fixed .column-rel,.fixed .column-role{width:15%}.fixed .column-comments{width:4em;padding:8px 0;text-align:left}.fixed .column-comments .vers{padding-left:3px}.fixed .column-comments a{float:left}.fixed .column-slug{width:25%}.fixed .column-posts{width:10%}.fixed .column-icon{width:80px}#comments-form .fixed .column-author{width:20%}#commentsdiv.postbox .inside{margin:0;padding:0}#commentsdiv .inside .row-actions{line-height:18px}#commentsdiv .inside .column-author{width:25%}#commentsdiv .column-comment p{margin:.6em 0;padding:0}#commentsdiv #replyrow td{padding:0}#commentsdiv p{padding:8px 10px;margin:0}#commentsdiv #add-new-comment{border-width:0 0 1px;border-style:none none solid}#commentsdiv .comments-box{border:0 none}#commentsdiv .comments-box thead th{background:transparent;padding:0 7px 4px;font-style:italic}#commentsdiv .comments-box tr:last-child td{border-bottom:0 none}#commentsdiv .spinner{padding-left:5px}.sorting-indicator{display:none;width:7px;height:4px;margin-top:8px;margin-left:7px;background-image:url('../images/sort.gif');background-repeat:no-repeat}.fixed .column-comments .sorting-indicator{margin-top:3px}.widefat th.sortable,.widefat th.sorted{padding:0}th.sortable a,th.sorted a{display:block;overflow:hidden;padding:7px 7px 8px}.fixed .column-comments.sortable a,.fixed .column-comments.sorted a{padding:8px 0}th.sortable a span,th.sorted a span{float:left;cursor:pointer}th.sorted.asc .sorting-indicator,th.desc:hover span.sorting-indicator{display:block;background-position:0 0}th.sorted.desc .sorting-indicator,th.asc:hover span.sorting-indicator{display:block;background-position:-7px 0}.tablenav-pages a{border-bottom-style:solid;border-bottom-width:2px;font-weight:bold;margin-right:1px;padding:0 2px}.tablenav-pages .current-page{text-align:center}.tablenav-pages .next-page{margin-left:2px}.tablenav a.button-secondary{display:block;margin:3px 8px 0 0}.tablenav{clear:both;height:30px;margin:6px 0 4px;vertical-align:middle}.tablenav.themes{max-width:98%}.tablenav .tablenav-pages{float:right;display:block;cursor:default;height:30px;line-height:30px;font-size:12px}.tablenav .no-pages,.tablenav .one-page .pagination-links{display:none}.tablenav .tablenav-pages a,.tablenav-pages span.current{text-decoration:none;padding:3px 6px}.tablenav .tablenav-pages a.disabled:hover,.tablenav .tablenav-pages a.disabled:active{cursor:default}.tablenav .displaying-num{margin-right:10px;font-size:12px;font-style:italic}.tablenav .actions{overflow:hidden;padding:2px 8px 0 0}.tablenav .delete{margin-right:20px}.view-switch{float:right;margin:6px 8px 0}.view-switch a{text-decoration:none}.filter{float:left;margin:-5px 0 0 10px}.filter .subsubsub{margin-left:-10px;margin-top:13px}.screen-per-page{width:4em}#posts-filter fieldset{float:left;margin:0 1.5ex 1em 0;padding:0}#posts-filter fieldset legend{padding:0 0 .2em 1px}span.post-state-format{font-weight:normal}#wpbody-content .inline-edit-row fieldset{font-size:12px;float:left;margin:0;padding:0;width:100%}tr.inline-edit-row td,#wpbody-content .inline-edit-row fieldset .inline-edit-col{padding:0 .5em}#wpbody-content .quick-edit-row-page fieldset.inline-edit-col-right .inline-edit-col{border-width:0 0 0 1px;border-style:none none none solid}#wpbody-content .quick-edit-row-post .inline-edit-col-left{width:40%}#wpbody-content .quick-edit-row-post .inline-edit-col-right{width:39%}#wpbody-content .inline-edit-row-post .inline-edit-col-center{width:20%}#wpbody-content .quick-edit-row-page .inline-edit-col-left{width:50%}#wpbody-content .quick-edit-row-page .inline-edit-col-right,#wpbody-content .bulk-edit-row-post .inline-edit-col-right{width:49%}#wpbody-content .bulk-edit-row .inline-edit-col-left{width:30%}#wpbody-content .bulk-edit-row-page .inline-edit-col-right{width:69%}#wpbody-content .bulk-edit-row .inline-edit-col-bottom{float:right;width:69%}#wpbody-content .inline-edit-row-page .inline-edit-col-right{margin-top:27px}.inline-edit-row fieldset .inline-edit-group{clear:both}.inline-edit-row fieldset .inline-edit-group:after{content:".";display:block;height:0;clear:both;visibility:hidden}.inline-edit-row p.submit{clear:both;padding:.5em;margin:.5em 0 0}.inline-edit-row span.error{line-height:22px;margin:0 15px;padding:3px 5px}.inline-edit-row h4{margin:.2em 0;padding:0;line-height:23px}.inline-edit-row fieldset span.title,.inline-edit-row fieldset span.checkbox-title{margin:0;padding:0;line-height:27px}.inline-edit-row fieldset label,.inline-edit-row fieldset span.inline-edit-categories-label{display:block;margin:.2em 0}.inline-edit-row fieldset label.inline-edit-tags{margin-top:0}.inline-edit-row fieldset label.inline-edit-tags span.title{margin:.2em 0}.inline-edit-row fieldset label span.title{display:block;float:left;width:5em}.inline-edit-row fieldset label span.input-text-wrap{display:block;margin-left:5em}.quick-edit-row-post fieldset.inline-edit-col-right label span.title{width:auto;padding-right:.5em}.inline-edit-row .input-text-wrap input[type=text]{width:100%}.inline-edit-row fieldset label input[type=checkbox]{vertical-align:text-bottom}.inline-edit-row fieldset label textarea{width:100%;height:4em}#wpbody-content .bulk-edit-row fieldset .inline-edit-group label{max-width:50%}#wpbody-content .quick-edit-row fieldset .inline-edit-group label.alignleft:first-child{margin-right:.5em}.inline-edit-col-right .input-text-wrap input.inline-edit-menu-order-input{width:6em}.inline-edit-save .spinner{padding:4px 10px 0;vertical-align:top;float:right}.inline-edit-row h4{text-transform:uppercase}.inline-edit-row fieldset span.title,.inline-edit-row fieldset span.checkbox-title{font-style:italic;line-height:1.8em}.inline-edit-row fieldset input[type="text"],.inline-edit-row fieldset textarea{border-style:solid;border-width:1px}.inline-edit-row fieldset .inline-edit-date{float:left}.inline-edit-row fieldset input[name=jj],.inline-edit-row fieldset input[name=hh],.inline-edit-row fieldset input[name=mn]{font-size:12px;width:2.1em}.inline-edit-row fieldset input[name=aa]{font-size:12px;width:3.5em}.inline-edit-row fieldset label input.inline-edit-password-input{width:8em}.inline-edit-row .catshow,.inline-edit-row .cathide{cursor:pointer}ul.cat-checklist{height:12em;border-style:solid;border-width:1px;overflow-y:scroll;padding:0 5px;margin:0}#bulk-titles{display:block;height:12em;border-style:solid;border-width:1px;overflow-y:scroll;padding:0 5px;margin:0 0 5px}.inline-edit-row fieldset ul.cat-checklist li,.inline-edit-row fieldset ul.cat-checklist input{margin:0}.inline-edit-row fieldset ul.cat-checklist label,.inline-edit-row .catshow,.inline-edit-row .cathide,.inline-edit-row #bulk-titles div{font-family:sans-serif;font-style:normal;font-size:11px}table .inline-edit-row fieldset ul.cat-hover{height:auto;max-height:30em;overflow-y:auto;position:absolute}.inline-edit-row fieldset label input.inline-edit-menu-order-input{width:3em}.inline-edit-row fieldset label input.inline-edit-slug-input{width:75%}.quick-edit-row-post fieldset label.inline-edit-status{float:left}#bulk-titles{line-height:140%}#bulk-titles div{margin:.2em .3em}#bulk-titles div a{cursor:pointer;display:block;float:left;height:10px;margin:3px 3px 0 -2px;overflow:hidden;position:relative;text-indent:-9999px;width:10px}#show-comments{overflow:hidden}#save-action .spinner,#show-comments a,#show-comments .spinner{float:left}#titlediv{position:relative;margin-bottom:10px}#titlediv label{cursor:text}#titlediv div.inside{margin:0}#poststuff #titlewrap{border:0;padding:0}#titlediv #title{padding:3px 8px;font-size:1.7em;line-height:100%;width:100%;outline:0}#titlediv #title-prompt-text,#wp-fullscreen-title-prompt-text{color:#bbb;position:absolute;font-size:1.7em;padding:8px 10px}#wp-fullscreen-save .fs-saved{color:#999;float:right;margin-top:4px}#wp-fullscreen-title-prompt-text{padding:11px}#poststuff .inside-submitbox,#side-sortables .inside-submitbox{margin:0 3px;font-size:11px}input#link_description,input#link_url{width:98%}#pending{background:0 none;border:0 none;padding:0;font-size:11px;margin-top:-1px}#edit-slug-box{line-height:23px;min-height:23px;margin-top:5px;padding:0 10px}#edit-slug-box .cancel{margin-right:10px;font-size:11px}#editable-post-name-full{display:none}#editable-post-name input{width:16em}.postarea h3 label{float:left}.submitbox .submit{text-align:left;padding:12px 10px 10px;font-size:11px}.submitbox .submitdelete{text-decoration:none;padding:1px 2px}.submitbox .submitdelete,.submitbox .submit a:hover{border-bottom-width:1px;border-bottom-style:solid}.submitbox .submit input{margin-bottom:8px;margin-right:4px;padding:6px}.inside-submitbox #post_status{margin:2px 0 2px -2px}#post-status-select,#post-format{line-height:2.5em;margin-top:3px}#post-body #normal-sortables{min-height:50px}.postbox{position:relative;min-width:255px}#trackback_url{width:99%}#normal-sortables .postbox .submit{background:transparent none;border:0 none;float:right;padding:0 12px;margin:0}.category-add input[type="text"],.category-add select{width:100%;max-width:260px}.press-this #side-sortables .category-tabs li,ul.category-tabs li,#side-sortables .add-menu-item-tabs li,.wp-tab-bar li{display:inline;line-height:1.35em}.no-js .category-tabs li.hide-if-no-js{display:none}.category-tabs a,#side-sortables .add-menu-item-tabs a,.wp-tab-bar a{text-decoration:none}.category-tabs{margin:8px 0 3px}#category-adder h4{margin:10px 0}#side-sortables .add-menu-item-tabs,.wp-tab-bar{margin-bottom:3px}#normal-sortables .postbox #replyrow .submit{float:none;margin:0;padding:0 7px 5px}#side-sortables .submitbox .submit input,#side-sortables .submitbox .submit .preview,#side-sortables .submitbox .submit a.preview:hover{border:0 none}#side-sortables .inside-submitbox .insidebox,.stuffbox .insidebox{margin:11px 0}ul.category-tabs,ul.add-menu-item-tabs,ul.wp-tab-bar{margin-top:12px}ul.category-tabs li{border-style:solid;border-width:1px;position:relative}ul.add-menu-item-tabs li.tabs,.wp-tab-active{border-style:solid solid none;border-width:1px 1px 0}#post-body .add-menu-item-tabs li.tabs{border-style:solid none solid solid;border-width:1px 0 1px 1px;margin-right:-1px}ul.category-tabs li,ul.add-menu-item-tabs li,ul.wp-tab-bar li{padding:3px 5px 5px;-webkit-border-top-left-radius:3px;-webkit-border-top-right-radius:3px;border-top-left-radius:3px;border-top-right-radius:3px}form#tags-filter{position:relative}td.post-title strong,td.plugin-title strong{display:block;margin-bottom:.2em}td.post-title p,td.plugin-title p{margin:6px 0}.wp-hidden-children .wp-hidden-child,.ui-tabs-hide{display:none}.commentlist .avatar{vertical-align:text-top}#post-body .tagsdiv #newtag{margin-right:5px;width:16em}#side-sortables input#post_password{width:94%}#side-sortables .tagsdiv #newtag{width:68%}#post-status-info{border-width:0 1px 1px;border-style:none solid solid;width:100%;-webkit-border-bottom-left-radius:3px;-webkit-border-bottom-right-radius:3px;border-bottom-left-radius:3px;border-bottom-right-radius:3px}#post-status-info td{font-size:12px}.autosave-info{padding:2px 15px;text-align:right}#editorcontent #post-status-info{border:0}#post-body .wp_themeSkin .mceStatusbar a.mceResize{display:block;background:transparent url('../images/resize.gif') no-repeat scroll right bottom;width:12px;cursor:se-resize;margin:0 1px;position:relative;top:-2px}#post-body .postarea .wp_themeSkin .mceStatusbar a.mceResize{top:20px}#content-resize-handle{background:transparent url('../images/resize.gif') no-repeat scroll right bottom;width:12px;cursor:se-resize;position:absolute;right:2px;height:19px}.press-this #content-resize-handle{bottom:2px}.tmce-active #content-resize-handle{display:none}#wp-word-count{display:block;padding:2px 10px}#timestampdiv select{height:20px;line-height:14px;padding:0;vertical-align:top}#aa,#jj,#hh,#mn{padding:1px;font-size:12px}#jj,#hh,#mn{width:2em}#aa{width:3.4em}.curtime #timestamp{background-repeat:no-repeat;background-position:left center;padding:2px 0 1px 20px}#timestampdiv{padding-top:5px;line-height:23px}#timestampdiv p{margin:8px 0 6px}#timestampdiv input{border-width:1px;border-style:solid}#postcustomstuff thead th{padding:5px 8px 8px}#postcustom #postcustomstuff .submit{border:0 none;float:none;padding:0 8px 8px}#side-sortables #postcustom #postcustomstuff .submit{margin:0;padding:0}#side-sortables #postcustom #postcustomstuff #the-list textarea{height:85px}#side-sortables #postcustom #postcustomstuff td.left input,#side-sortables #postcustom #postcustomstuff td.left select,#side-sortables #postcustomstuff #newmetaleft a{margin:3px 3px 0}#postcustomstuff table{margin:0;width:100%;border-width:1px;border-style:solid;border-spacing:0}#postcustomstuff tr{vertical-align:top}#postcustomstuff table input,#postcustomstuff table select,#postcustomstuff table textarea{width:96%;margin:8px}#side-sortables #postcustomstuff table input,#side-sortables #postcustomstuff table select,#side-sortables #postcustomstuff table textarea{margin:3px}#postcustomstuff th.left,#postcustomstuff td.left{width:38%}#postcustomstuff .submit input{margin:0;width:auto}#postcustomstuff #newmetaleft a{display:inline-block;margin:0 8px 8px;text-decoration:none}.no-js #postcustomstuff #enternew{display:none}#post-body-content .compat-attachment-fields{margin-bottom:20px}.compat-attachment-fields th{padding-top:5px;padding-right:10px}table.diff{width:100%}table.diff col.content{width:50%}table.diff tr{background-color:transparent}table.diff td,table.diff th{padding:.5em;font-family:Consolas,Monaco,monospace;border:0}table.diff .diff-deletedline del,table.diff .diff-addedline ins{text-decoration:none}#select-featured-image{padding:4px 0;overflow:hidden}#select-featured-image img{max-width:100%;height:auto;margin-bottom:10px}#select-featured-image a{float:left;clear:both}#select-featured-image .remove{display:none;margin-top:10px}.js #select-featured-image.has-featured-image .remove{display:inline-block}.no-js #select-featured-image .choose{display:none}.category-adder{margin-left:120px;padding:4px 0}.category-adder h4{margin:0 0 8px}#side-sortables .category-adder{margin:0}#post-body ul.add-menu-item-tabs{float:left;width:120px;text-align:right;margin:0 -120px 0 5px;padding:0}#post-body ul.add-menu-item-tabs li{padding:8px}#post-body ul.add-menu-item-tabs li.tabs{-webkit-border-top-left-radius:3px;-webkit-border-bottom-left-radius:3px;border-top-left-radius:3px;border-bottom-left-radius:3px}.wp-tab-panel,.categorydiv div.tabs-panel,.customlinkdiv div.tabs-panel,.posttypediv div.tabs-panel,.taxonomydiv div.tabs-panel{min-height:42px;max-height:200px;overflow:auto;padding:0 .9em;border-style:solid;border-width:1px}div.tabs-panel-active{display:block}div.tabs-panel-inactive{display:none}.customlinkdiv ul,.posttypediv ul,.taxonomydiv ul{list-style:none;padding:0;margin:0}#front-page-warning,#front-static-pages ul,ul.export-filters,.inline-editor ul.cat-checklist ul,.categorydiv ul.categorychecklist ul,.customlinkdiv ul.categorychecklist ul,.posttypediv ul.categorychecklist ul,.taxonomydiv ul.categorychecklist ul{margin-left:18px}ul.categorychecklist li{margin:0;padding:0;line-height:19px;word-wrap:break-word}.categorydiv .tabs-panel,.customlinkdiv .tabs-panel,.posttypediv .tabs-panel,.taxonomydiv .tabs-panel{border-width:3px;border-style:solid}.form-wrap p,.form-wrap label{font-size:11px}.form-wrap label{display:block;padding:2px;font-size:12px}.form-field input,.form-field textarea{border-style:solid;border-width:1px;width:95%}p.description,.form-wrap p{margin:2px 0 5px}p.help,p.description,span.description,.form-wrap p{font-size:12px;font-style:italic;font-family:sans-serif}.form-wrap .form-field{margin:0 0 10px;padding:8px 0}.col-wrap h3{margin:12px 0;font-size:1.1em}.col-wrap p.submit{margin-top:-10px}#poststuff .taghint{color:#aaa;margin:15px 0 -24px 12px}#poststuff .tagsdiv .howto{margin:0 0 6px 8px}.ajaxtag .newtag{position:relative}.tagsdiv .newtag{width:180px}.tagsdiv .the-tags{display:block;height:60px;margin:0 auto;overflow:auto;width:260px}#post-body-content .tagsdiv .the-tags{margin:0 5px}p.popular-tags{-webkit-border-radius:8px;border-radius:8px;border-width:1px;border-style:solid;line-height:2em;max-width:1000px;padding:8px 12px 12px;text-align:justify}p.popular-tags a{padding:0 3px}.tagcloud{width:97%;margin:0 0 40px;text-align:justify}.tagcloud h3{margin:2px 0 12px}.ac_results{padding:0;margin:0;list-style:none;position:absolute;z-index:10000;display:none;border-width:1px;border-style:solid}.ac_results li{padding:2px 5px;white-space:nowrap;text-align:left}.ac_over{cursor:pointer}.ac_match{text-decoration:underline}table.links-table{width:100%}.links-table th{font-weight:normal;text-align:left;vertical-align:top;min-width:80px;width:20%;word-wrap:break-word}.links-table th,.links-table td{padding:5px 0}.links-table td label{margin-right:8px}.links-table td input[type="text"],.links-table td textarea{width:100%}.links-table #link_rel{max-width:280px}.media-item .describe{border-collapse:collapse;width:100%;border-top-style:solid;border-top-width:1px;clear:both;cursor:default}.media-item.media-blank .describe{border:0}.media-item .describe th{vertical-align:top;text-align:left;padding:5px 10px 10px;width:140px}.media-item .describe .align th{padding-top:0}.media-item .media-item-info tr{background-color:transparent}.media-item .describe td{padding:0 8px 8px 0;vertical-align:top}.media-item thead.media-item-info td{padding:4px 10px 0}.media-item .media-item-info .A1B1{padding:0 0 0 10px}.media-item td.savesend{padding-bottom:15px}.media-item .thumbnail{max-height:128px;max-width:128px}#wpbody-content #async-upload-wrap a{display:none}.media-upload-form{margin-top:20px}.media-upload-form td label{margin-right:6px;margin-left:2px}.media-upload-form .align .field label{display:inline;padding:0 0 0 23px;margin:0 1em 0 3px;font-weight:bold}.media-upload-form tr.image-size label{margin:0 0 0 5px;font-weight:bold}.media-upload-form th.label label{font-weight:bold;margin:.5em;font-size:13px}.media-upload-form th.label label span{padding:0 5px}abbr.required{border:medium none;text-decoration:none}.media-item .describe input[type="text"],.media-item .describe textarea{width:460px}.media-item .describe p.help{margin:0;padding:0 0 0 5px}.media-item .edit-attachment,.describe-toggle-on,.describe-toggle-off{display:block;line-height:36px;float:right;margin-right:15px}.media-item .describe-toggle-off,.media-item.open .describe-toggle-on{display:none}.media-item.open .describe-toggle-off{display:block}#media-items .media-item{border-style:solid;border-width:1px;min-height:36px;position:relative;margin-top:-1px;width:100%}#media-items{width:623px}.media-new-php #media-items{margin:1em 0}#media-items:empty{border:0 none}.media-item .filename{line-height:36px;overflow:hidden;padding:0 10px}.media-item .error-div{padding-left:10px}.media-item .pinkynail{float:left;margin:2px 2px 0;max-width:40px;max-height:32px}.media-item .startopen,.media-item .startclosed{display:none}.media-item .original{position:relative;height:34px}.media-item .progress{float:right;height:22px;margin:6px 10px 0 0;width:200px;line-height:2em;padding:0;overflow:hidden;margin-bottom:2px;border:1px solid #d1d1d1;background:#f7f7f7;background-image:-webkit-gradient(linear,left bottom,left top,from(#fff),to(#f7f7f7));background-image:-webkit-linear-gradient(bottom,#fff,#f7f7f7);background-image:-moz-linear-gradient(bottom,#fff,#f7f7f7);background-image:-o-linear-gradient(bottom,#fff,#f7f7f7);background-image:linear-gradient(to top,#fff,#f7f7f7);-webkit-border-radius:3px;border-radius:3px;-webkit-box-shadow:inset 0 0 3px rgba(0,0,0,0.1);box-shadow:inset 0 0 3px rgba(0,0,0,0.1)}.media-item .bar{z-index:9;width:0;height:100%;margin-top:-24px;background-color:#8cc1e9;background-image:-webkit-gradient(linear,left bottom,left top,from(#72a7cf),to(#8cc1e9));background-image:-webkit-linear-gradient(bottom,#72a7cf,#8cc1e9);background-image:-moz-linear-gradient(bottom,#72a7cf,#8cc1e9);background-image:-o-linear-gradient(bottom,#72a7cf,#8cc1e9);background-image:linear-gradient(to top,#72a7cf,#8cc1e9);-webkit-border-radius:3px;border-radius:3px;-webkit-box-shadow:0 0 3px rgba(0,0,0,0.3);box-shadow:0 0 3px rgba(0,0,0,0.3)}.media-item .progress .percent{z-index:10;position:relative;width:200px;padding:0 8px;text-shadow:0 1px 0 rgba(255,255,255,0.4);color:rgba(0,0,0,0.6)}.upload-php .fixed .column-parent{width:15%}.js .html-uploader #plupload-upload-ui{display:none}.js .html-uploader #html-upload-ui{display:block}.media-upload-form .media-item.error{margin:0;padding:0}.media-upload-form .media-item.error p,.media-item .error-div{line-height:16px;margin:5px 10px;padding:0}.media-item .error-div a.dismiss{display:block;float:right;margin:5px 4px 0 15px}.find-box{width:600px;height:300px;overflow:hidden;padding:33px 0 51px;position:absolute;z-index:1000}.find-box-head{cursor:move;font-weight:bold;height:2em;line-height:2em;padding:1px 12px;position:absolute;top:5px;width:100%}.find-box-inside{overflow:auto;padding:6px;height:100%}.find-box-search{overflow:hidden;padding:9px;position:relative}.find-box-search .spinner{float:none;left:125px;position:absolute;top:9px}#find-posts-input{float:left;width:140px;height:24px}#find-posts-search{float:left;margin:1px 4px 0 3px}#find-posts-response{margin:8px 0;padding:0 1px 6px}#find-posts-response table{width:100%}#find-posts-response .found-radio{padding:3px 0 0 8px;width:15px}.find-box-buttons{padding:8px;overflow:hidden}.find-box #resize-se{position:absolute;right:1px;bottom:1px}.ui-find-overlay{position:absolute;top:0;left:0;background-color:#000;opacity:.6;filter:alpha(opacity=60)}ul#dismissed-updates{display:none}form.upgrade{margin-top:8px}form.upgrade .hint{font-style:italic;font-size:85%;margin:-0.5em 0 2em 0}#poststuff .inside .the-tagcloud{margin:5px 0 10px;padding:8px;border-width:1px;border-style:solid;line-height:1.8em;word-spacing:3px;-webkit-border-radius:6px;border-radius:6px}.drag-drop #drag-drop-area{border:4px dashed #ddd;height:200px}.drag-drop .drag-drop-inside{margin:70px auto 0;width:250px}.drag-drop-inside p{color:#aaa;font-size:14px;margin:5px 0;display:none}.drag-drop .drag-drop-inside p{text-align:center}.drag-drop-inside p.drag-drop-info{font-size:20px}.drag-drop .drag-drop-inside p,.drag-drop-inside p.drag-drop-buttons{display:block}.drag-drop.drag-over #drag-drop-area{border-color:#83b4d8}#plupload-upload-ui{position:relative}.describe .image-editor{vertical-align:top}.imgedit-wrap{position:relative}.imgedit-settings p{margin:8px 0}.post-php .imgedit-wrap table{width:100%}.describe .imgedit-wrap table td,.wp_attachment_holder .imgedit-wrap table td{vertical-align:top;padding-top:0}.describe .imgedit-wrap table td.imgedit-settings{padding:0 5px}.wp_attachment_holder .imgedit-wrap table td.imgedit-settings{width:250px}td.imgedit-settings input{margin-top:0;vertical-align:middle}.imgedit-wait{position:absolute;top:0;background:#fff url(../images/wpspin_light.gif) no-repeat scroll 22px 10px;background-size:16px 16px;opacity:.7;filter:alpha(opacity=70);width:100%;height:500px;display:none}.spinner{background:url(../images/wpspin_light.gif) no-repeat;background-size:16px 16px;display:none;float:right;opacity:.7;filter:alpha(opacity=70);width:16px;height:16px;margin:5px 5px 0}.no-float{float:none}.media-disabled,.imgedit-settings .disabled{color:grey}.wp_attachment_image,.A1B1{overflow:hidden}.wp_attachment_image .button,.A1B1 .button{float:left}.no-js .wp_attachment_image .button{display:none}.wp_attachment_image .spinner,.A1B1 .spinner{float:left;padding:0 4px 4px;vertical-align:bottom}.imgedit-menu{margin:0 0 12px;min-width:300px}.imgedit-menu div{float:left;width:32px;height:32px}.imgedit-crop-wrap{position:relative}.imgedit-crop{background:transparent url('../images/imgedit-icons.png') no-repeat scroll -9px -31px;margin:0 8px 0 0}.imgedit-crop.disabled:hover{background-position:-9px -31px}.imgedit-crop:hover{background-position:-9px -1px}.imgedit-rleft{background:transparent url('../images/imgedit-icons.png') no-repeat scroll -46px -31px;margin:0 3px}.imgedit-rleft.disabled:hover{background-position:-46px -31px}.imgedit-rleft:hover{background-position:-46px -1px}.imgedit-rright{background:transparent url('../images/imgedit-icons.png') no-repeat scroll -77px -31px;margin:0 8px 0 3px}.imgedit-rright.disabled:hover{background-position:-77px -31px}.imgedit-rright:hover{background-position:-77px -1px}.imgedit-flipv{background:transparent url('../images/imgedit-icons.png') no-repeat scroll -115px -31px;margin:0 3px}.imgedit-flipv.disabled:hover{background-position:-115px -31px}.imgedit-flipv:hover{background-position:-115px -1px}.imgedit-fliph{background:transparent url('../images/imgedit-icons.png') no-repeat scroll -147px -31px;margin:0 8px 0 3px}.imgedit-fliph.disabled:hover{background-position:-147px -31px}.imgedit-fliph:hover{background-position:-147px -1px}.imgedit-undo{background:transparent url('../images/imgedit-icons.png') no-repeat scroll -184px -31px;margin:0 3px}.imgedit-undo.disabled:hover{background-position:-184px -31px}.imgedit-undo:hover{background-position:-184px -1px}.imgedit-redo{background:transparent url('../images/imgedit-icons.png') no-repeat scroll -215px -31px;margin:0 8px 0 3px}.imgedit-redo.disabled:hover{background-position:-215px -31px}.imgedit-redo:hover{background-position:-215px -1px}.imgedit-applyto img{margin:0 8px 0 0}.imgedit-group-top{margin:5px 0}.imgedit-applyto .imgedit-label{padding:2px 0 0;display:block}.imgedit-help{display:none;font-style:italic;margin-bottom:8px}a.imgedit-help-toggle{text-decoration:none}.form-table td.imgedit-response{padding:0}.imgedit-submit{margin:8px 0}.imgedit-submit-btn{margin-left:20px}.imgedit-wrap .nowrap{white-space:nowrap}span.imgedit-scale-warn{color:red;font-size:20px;font-style:normal;visibility:hidden;vertical-align:middle}.imgedit-group{border-width:1px;border-style:solid;-webkit-border-radius:3px;border-radius:3px;margin-bottom:8px;padding:2px 10px}.wp_attachment_details{margin-bottom:20px}.form-table{border-collapse:collapse;margin-top:.5em;width:100%;margin-bottom:-8px;clear:both}.form-table td{margin-bottom:9px;padding:8px 10px;line-height:20px;font-size:12px}.form-table th,.form-wrap label{font-weight:normal;text-shadow:#fff 0 1px 0}.form-table th{vertical-align:top;text-align:left;padding:10px;width:200px}.form-table th.th-full{width:auto}.form-table div.color-option{display:block;clear:both;margin-top:12px}.form-table input.tog{margin-top:2px;margin-right:2px;float:left}.form-table td p{margin-top:4px}.form-table table.color-palette{vertical-align:bottom;float:left;margin:-12px 3px 11px}.form-table .color-palette td{border-width:1px 1px 0;border-style:solid solid none;height:10px;line-height:20px;width:10px}.commentlist li{padding:1em 1em .2em;margin:0;border-bottom-width:1px;border-bottom-style:solid}.commentlist li li{border-bottom:0;padding:0}.commentlist p{padding:0;margin:0 0 .8em}#replyrow input{border-width:1px;border-style:solid}#replyrow td{padding:2px}#replysubmit{margin:0;padding:0 5px 3px;text-align:center}#replysubmit .spinner{padding:2px 0 0;vertical-align:top;float:right}#replysubmit .button{margin-right:5px}#replysubmit .error{color:red;line-height:21px;text-align:center}#replyrow h5{margin:.2em 0 0;padding:0 5px;line-height:1.4em;font-size:1em}#edithead .inside{float:left;padding:3px 0 2px 5px;margin:0;text-align:center}#edithead .inside input{width:180px}#edithead label{padding:2px 0}#replycontainer{padding:5px}#replycontent{height:120px;-webkit-box-shadow:none;box-shadow:none}.comment-php .wp-editor-area{height:200px}.comment-ays{margin-bottom:0;border-style:solid;border-width:1px}.comment-ays th{border-right-style:solid;border-right-width:1px}.trash-undo-inside,.spam-undo-inside{margin:1px 8px 1px 0;line-height:16px}.spam-undo-inside .avatar,.trash-undo-inside .avatar{height:20px;width:20px;margin-right:8px;vertical-align:middle}.stuffbox .editcomment{clear:none}#comment-status-radio p{margin:3px 0 5px}#comment-status-radio input{margin:2px 3px 5px 0;vertical-align:middle}#comment-status-radio label{padding:5px 0}.commentlist .avatar{vertical-align:text-top}.theme-install-php .tablenav{height:auto}.theme-install-php .spinner{margin-top:9px}h3.available-themes{margin:0 0 1em;float:left}.available-theme{display:inline-block;margin-right:10px;overflow:hidden;padding:20px 20px 20px 0;vertical-align:top;width:300px}.available-theme .screenshot{width:300px;height:225px;display:block;border-width:1px;border-style:solid;margin-bottom:10px;overflow:hidden}.available-theme img{width:300px}.available-theme h3{margin:15px 0 0}.available-theme .theme-author{line-height:18px}.available-theme .action-links{margin-top:10px;overflow:hidden}.available-theme a.screenshot:focus{border-color:#777}#current-theme .theme-info li,.theme-options li,.available-theme .action-links li{float:left;padding-right:10px;margin-right:10px;border-right:1px solid #dfdfdf}.available-theme .action-links li{padding-right:8px;margin-right:8px}.ie8 .available-theme .action-links li{padding-right:7px;margin-right:7px}#current-theme .theme-info li:last-child,.theme-options li:last-child,.available-theme .action-links li:last-child{padding-right:0;margin-right:0;border-right:0}.available-theme .action-links .delete-theme{float:right;margin-left:8px;margin-right:0}.available-theme .action-links .delete-theme a{color:red;padding:2px}.available-theme .action-links .delete-theme a:hover{background:red;color:#fff;text-decoration:none}.available-theme .action-links p{float:left}#current-theme{margin:20px 0 10px;padding:0 0 20px;border-bottom-width:1px;border-bottom-style:solid;overflow:hidden}#current-theme.has-screenshot{padding-left:330px}#current-theme h3{margin:0;font-size:12px;font-weight:normal;color:#999}#current-theme h4{margin:3px 0 16px;font-size:20px}#current-theme h4 span{margin-left:20px;font-size:12px;font-weight:normal}#current-theme a{border-bottom:0}#current-theme .theme-info{margin:1em 0;overflow:hidden}#current-theme .theme-description{margin-top:5px;max-width:600px;line-height:1.6em}#current-theme img{float:left;width:300px;margin-left:-330px;border-width:1px;border-style:solid}.theme-options{overflow:hidden;font-size:14px;padding-bottom:10px}.theme-options .load-customize{margin-right:30px;float:left}.theme-options span{float:left;margin-right:10px;text-transform:uppercase;font-size:11px;line-height:18px;color:#999}.theme-options ul{float:left;margin:0}@media only screen and (max-width:1200px){.available-theme,.available-theme .screenshot,#current-theme img{width:240px}.available-theme .screenshot{height:180px}.available-theme img{width:100%}#current-theme.has-screenshot{padding-left:270px}#current-theme img{margin-left:-270px}}#post-body ul.add-menu-item-tabs li.tabs a,#TB_window #TB_title a.tb-theme-preview-link,#TB_window #TB_title a.tb-theme-preview-link:visited{font-weight:bold;text-decoration:none}#TB_window #TB_title{background-color:#222;color:#cfcfcf}#broken-themes{text-align:left;width:50%;border-spacing:3px;padding:3px}.theme-install-php h4{margin:2.5em 0 8px}.appearance_page_custom-header #headimg{border:1px solid #dfdfdf;overflow:hidden;width:100%}.appearance_page_custom-header #upload-form p label{font-size:12px}.appearance_page_custom-header .available-headers .default-header{float:left;margin:0 20px 20px 0}.appearance_page_custom-header .random-header{clear:both;margin:0 20px 20px 0;vertical-align:middle}.appearance_page_custom-header .available-headers label input,.appearance_page_custom-header .random-header label input{margin-right:10px}.appearance_page_custom-header .available-headers label img{vertical-align:middle}div#custom-background-image{min-height:100px;border:1px solid #dfdfdf}div#custom-background-image img{max-width:400px;max-height:300px}.nav-tab{border-style:solid;border-width:1px 1px 0;color:#aaa;text-shadow:#fff 0 1px 0;font-size:12px;line-height:16px;display:inline-block;padding:4px 14px 6px;text-decoration:none;margin:0 6px -1px 0;-webkit-border-top-left-radius:3px;-webkit-border-top-right-radius:3px;border-top-left-radius:3px;border-top-right-radius:3px}.nav-tab-active{border-width:1px;color:#464646}h2.nav-tab-wrapper,h3.nav-tab-wrapper{border-bottom-width:1px;border-bottom-style:solid;padding-bottom:0}h2 .nav-tab{padding:4px 10px 6px;font-weight:200;font-size:20px;line-height:24px}#dashboard_right_now .versions .b,#post-status-display,#post-visibility-display,#adminmenu .wp-submenu li.current,#adminmenu .wp-submenu li.current a,#adminmenu .wp-submenu li.current a:hover,.media-item .percent,.plugins .name,#pass-strength-result.strong,#pass-strength-result.short,#ed_reply_toolbar #ed_reply_strong,.item-controls .item-order a,.feature-filter .feature-name{font-weight:bold}.plugins p{margin:0 4px;padding:0}.plugins .desc p{margin:0 0 8px}.plugins td.desc{line-height:1.5em}.plugins .desc ul,.plugins .desc ol{margin:0 0 0 2em}.plugins .desc ul{list-style-type:disc}.plugins .row-actions-visible{padding:0}.plugins tbody th.check-column{padding:7px 0}.plugins .inactive td,.plugins .inactive th,.plugins .active td,.plugins .active th{border-top-style:solid;border-top-width:1px;padding:5px 7px 0}.plugins .update th,.plugins .update td{border-bottom:0}.plugin-update-tr td{border-top:0}#wpbody-content .plugins .plugin-title,#wpbody-content .plugins .theme-title{padding-right:12px;white-space:nowrap}.plugins .second,.plugins .row-actions-visible{padding:0 0 5px}.plugins .update .second,.plugins .update .row-actions-visible{padding-bottom:0}.plugins-php .widefat tfoot th,.plugins-php .widefat tfoot td{border-top-style:solid;border-top-width:1px}.plugin-update-tr .update-message{margin:5px;padding:3px 5px}.plugin-install-php h4{margin:2.5em 0 8px}#profile-page .form-table textarea{width:500px;margin-bottom:6px}#profile-page .form-table #rich_editing{margin-right:5px}#your-profile legend{font-size:22px}#your-profile #rich_editing{border:0}#display_name{width:15em}#createuser .form-field input{width:25em}.pressthis{margin:20px 0}.pressthis a,.pressthis a:hover,.pressthis a:focus,.pressthis a:active{display:inline-block;position:relative;cursor:move;color:#333;background:#e6e6e6;background-image:-webkit-gradient(linear,left bottom,left top,color-stop(7%,#e6e6e6),color-stop(77%,#d8d8d8));background-image:-webkit-linear-gradient(bottom,#e6e6e6 7%,#d8d8d8 77%);background-image:-moz-linear-gradient(bottom,#e6e6e6 7%,#d8d8d8 77%);background-image:-o-linear-gradient(bottom,#e6e6e6 7%,#d8d8d8 77%);background-image:linear-gradient(to top,#e6e6e6 7%,#d8d8d8 77%);-webkit-border-radius:5px;border-radius:5px;border:1px solid #b4b4b4;font-style:normal;line-height:16px;font-size:14px;text-decoration:none;text-shadow:0 1px 0 #fff}.pressthis a:active{outline:0}.pressthis a:hover:after{-webkit-transform:skew(20deg) rotate(9deg);-moz-transform:skew(20deg) rotate(9deg);transform:skew(20deg) rotate(9deg);-webkit-box-shadow:0 10px 8px rgba(0,0,0,0.7);box-shadow:0 10px 8px rgba(0,0,0,0.7)}.pressthis a span{background:url(../images/press-this.png?v=20120502) no-repeat 0 5px;background-size:24px 20px;padding:8px 11px 8px 27px;margin:0 5px;display:inline-block}.pressthis a:after{content:'';width:70%;height:55%;z-index:-1;position:absolute;right:10px;bottom:9px;background:transparent;-webkit-transform:skew(20deg) rotate(6deg);-moz-transform:skew(20deg) rotate(6deg);transform:skew(20deg) rotate(6deg);-webkit-box-shadow:0 10px 8px rgba(0,0,0,0.6);box-shadow:0 10px 8px rgba(0,0,0,0.6)}#utc-time,#local-time{padding-left:25px;font-style:italic;font-family:sans-serif}.defaultavatarpicker .avatar{margin:2px 0;vertical-align:middle}.options-general-php .spinner{float:none;margin:-3px 3px}#wpfooter{position:absolute;bottom:0;left:0;right:0;padding:10px 0;margin-right:20px;border-top-width:1px;border-top-style:solid}#wpfooter p{margin:0;line-height:20px}#wpfooter a{text-decoration:none}#wpfooter a:hover{text-decoration:underline}.about-wrap{position:relative;margin:25px 40px 0 20px;max-width:1050px;font-size:15px}.about-wrap div.updated,.about-wrap div.error{display:none!important}.about-wrap p{line-height:1.6em}.about-wrap h1{margin:.2em 200px 0 0;line-height:1.2em;font-size:2.8em;font-weight:200}.about-text,.about-description,.about-wrap li.wp-person a.web{font-family:"HelveticaNeue-Light","Helvetica Neue Light","Helvetica Neue",sans-serif;font-weight:normal;line-height:1.6em;font-size:20px}.about-description{margin-top:1.4em}.about-text{margin:1em 200px 1.4em 0;min-height:60px;font-size:24px}.about-wrap h3{font-size:24px;margin-bottom:1em;padding-top:20px}.about-wrap .feature-section{padding-bottom:20px}.about-wrap .feature-section h4{margin-bottom:.6em}.about-wrap .feature-section p{margin-top:.6em}.about-wrap code{font-size:14px}.about-wrap .point-releases{margin-top:5px}.about-wrap .changelog.point-releases h3{padding-top:35px}.about-wrap .changelog.point-releases h3:first-child{padding-top:7px}.wp-badge{padding-top:142px;height:50px;width:173px;font-weight:bold;font-size:14px;text-align:center;margin:0 -5px;background:url('../images/wp-badge.png?ver=20111120') no-repeat}.about-wrap .wp-badge{position:absolute;top:0;right:0}.about-wrap h2.nav-tab-wrapper{padding-left:6px}.about-wrap h2 .nav-tab{padding:4px 10px 6px;margin:0 3px -1px 0;font-size:18px;vertical-align:top}.about-wrap h2 .nav-tab-active{font-weight:bold;padding-top:3px}.about-wrap .feature-section img{border:0;margin:0 1.94% 10px 0;-webkit-border-radius:3px;border-radius:3px}.about-wrap .feature-section.three-col img{margin:.5em 0 .5em 5px;max-width:100%;float:none}.ie8 .about-wrap .feature-section.three-col img{margin-left:0}.about-wrap .feature-section.images-stagger-right img{float:right;margin:0 5px 12px 2em}.about-wrap .feature-section.images-stagger-left img{float:left;margin:0 2em 12px 5px}.about-wrap .feature-section img.image-100{margin:0 0 2em 0;width:100%}.about-wrap .feature-section img.image-66{width:65%}.about-wrap .feature-section img.image-50{max-width:50%}.about-wrap .feature-section img.image-30{max-width:31.2381%}.ie8 .about-wrap .feature-section img{border-width:1px;border-style:solid}.about-wrap .images-stagger-right img.image-30:nth-child(2){margin-left:1em}.about-wrap .feature-section.col{margin-bottom:0}.about-wrap .feature-section.col h4{margin:0 0 .6em 0}.about-wrap .feature-section.col .last-feature{margin-right:0}.about-wrap .feature-section.two-col div{width:47%;margin-right:4.999999999%;float:left}.about-wrap .feature-section.three-col div{width:30%;margin-right:4.999999999%;float:left}.about-wrap .three-col-images{text-align:center}.about-wrap .three-col-images img{margin:0 0 10px}.about-wrap .three-col-images .last-feature{float:right}.about-wrap .three-col-images .first-feature{float:left}.about-wrap .changelog .feature-section{overflow:hidden;padding-bottom:0}.about-wrap .changelog li{list-style-type:disc;margin-left:3em}@media only screen and (max-width:900px){.about-wrap .feature-section.images-stagger-left img,.about-wrap .feature-section.images-stagger-right img{clear:both}}@media only screen and (max-width:768px){.about-wrap .feature-section img.image-66{float:none;width:98%;max-width:98%}.about-wrap .feature-section.images-stagger-right img.image-66{margin-left:3px}.about-wrap .feature-section.images-stagger-left img.image-66{margin-right:3px}}.about-wrap .return-to-dashboard{margin:30px 0 0 -5px;font-size:14px;font-weight:bold}.about-wrap .return-to-dashboard a{text-decoration:none;padding:0 5px}.about-wrap h4.wp-people-group{margin-top:2.6em;font-size:16px}.about-wrap ul.wp-people-group{overflow:hidden;padding:5px;margin:0 -15px 0 -5px}.about-wrap ul.compact{margin-bottom:0}.about-wrap li.wp-person{float:left;margin-right:10px}.about-wrap li.wp-person img.gravatar{float:left;margin:0 10px 10px 0;padding:2px;width:60px;height:60px}.about-wrap ul.compact li.wp-person img.gravatar{width:30px;height:30px}.about-wrap li.wp-person{height:70px;width:280px;padding-bottom:15px}.about-wrap ul.compact li.wp-person{height:auto;width:180px;padding-bottom:0;margin-bottom:0}.about-wrap #wp-people-group-validators+p.wp-credits-list{margin-top:0}.about-wrap li.wp-person a.web{display:block;margin:6px 0 2px;font-size:16px;text-decoration:none}.about-wrap p.wp-credits-list a{white-space:nowrap}.freedoms-php .about-wrap ol{margin:40px 60px}.freedoms-php .about-wrap ol li{list-style-type:decimal;font-weight:bold}.freedoms-php .about-wrap ol p{font-weight:normal;margin:.6em 0}body.full-overlay-active{overflow:hidden}.wp-full-overlay{background:#fff;z-index:500000;position:fixed;overflow:visible;top:0;bottom:0;left:0;right:0;height:100%;min-width:0}.wp-full-overlay-sidebar{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;position:fixed;width:300px;height:100%;top:0;bottom:0;left:0;padding:0;margin:0;z-index:10;overflow:auto;background:#f5f5f5;border-right:1px solid rgba(0,0,0,0.2)}.wp-full-overlay.collapsed .wp-full-overlay-sidebar{overflow:visible}.wp-full-overlay.collapsed,.wp-full-overlay.expanded .wp-full-overlay-sidebar{margin-left:0!important}.wp-full-overlay.expanded{margin-left:300px}.wp-full-overlay.collapsed .wp-full-overlay-sidebar{margin-left:-300px}.wp-full-overlay-sidebar:after{content:'';display:block;position:absolute;top:0;bottom:0;right:0;width:3px;box-shadow:-5px 0 4px -4px rgba(0,0,0,0.1) inset;z-index:1000}.wp-full-overlay-main{position:absolute;left:0;right:0;top:0;bottom:0;height:100%}.wp-full-overlay-sidebar .wp-full-overlay-header{position:absolute;left:0;right:0;height:45px;padding:0 20px;line-height:45px;z-index:10;margin:0}.wp-full-overlay-sidebar .wp-full-overlay-header{border-top:0;border-bottom:1px solid #fff;box-shadow:inset 0 -1px 0 0 #dfdfdf}.wp-full-overlay-sidebar .wp-full-overlay-footer{bottom:0;border-bottom:0;border-top:1px solid #dfdfdf;box-shadow:inset 0 1px 0 0 #fff}.wp-full-overlay-sidebar .wp-full-overlay-sidebar-content{position:absolute;top:45px;bottom:45px;left:0;right:0;overflow:auto}.wp-full-overlay .close-full-overlay{text-decoration:none}.wp-full-overlay a.collapse-sidebar{position:absolute;bottom:12px;left:0;z-index:50;display:block;width:19px;height:19px;margin-left:15px;padding:0;border-radius:50%;text-decoration:none}.wp-full-overlay.collapsed .collapse-sidebar{position:absolute;left:100%}.wp-full-overlay .collapse-sidebar-arrow{position:absolute;margin-top:2px;margin-left:2px;display:block;width:15px;height:15px;background:transparent url('../images/arrows.png') no-repeat -1px -73px}.wp-full-overlay.collapsed .collapse-sidebar-arrow{background-position:-1px -109px}.wp-full-overlay .collapse-sidebar-label{position:absolute;left:100%;color:#808080;line-height:20px;margin-left:10px}.wp-full-overlay.collapsed .collapse-sidebar-label{display:none}.wp-full-overlay .collapse-sidebar:hover .collapse-sidebar-label{color:#666}.wp-full-overlay,.wp-full-overlay-sidebar,.wp-full-overlay .collapse-sidebar,.wp-full-overlay-main{-webkit-transition-property:left,right,top,bottom,width,margin;-moz-transition-property:left,right,top,bottom,width,margin;-ms-transition-property:left,right,top,bottom,width,margin;-o-transition-property:left,right,top,bottom,width,margin;transition-property:left,right,top,bottom,width,margin;-webkit-transition-duration:.2s;-moz-transition-duration:.2s;-ms-transition-duration:.2s;-o-transition-duration:.2s;transition-duration:.2s}.no-customize-support .hide-if-no-customize,.customize-support .hide-if-customize,.no-customize-support.wp-core-ui .hide-if-no-customize,.no-customize-support .wp-core-ui .hide-if-no-customize,.customize-support.wp-core-ui .hide-if-customize,.customize-support .wp-core-ui .hide-if-customize{display:none}#customize-container{display:none;background:#fff;z-index:500000;position:fixed;overflow:visible;top:0;bottom:0;left:0;right:0;height:100%}.customize-active #customize-container{display:block}.customize-loading #customize-container iframe{opacity:0}.customize-loading #customize-container{background:#fff url("../images/wpspin_light.gif") no-repeat fixed center center;background-size:16px 16px}#customize-container iframe,#theme-installer iframe{height:100%;width:100%;z-index:20;-webkit-transition:opacity .3s;-moz-transition:opacity .3s;-ms-transition:opacity .3s;-o-transition:opacity .3s;transition:opacity .3s}#customize-container .collapse-sidebar{bottom:16px}#theme-installer{display:none}#theme-installer.single-theme{display:block}.install-theme-info{display:none;padding:10px 20px 20px}.single-theme .install-theme-info{padding-top:15px}#theme-installer .install-theme-info{display:block}.install-theme-info .theme-install{float:right;margin-top:18px}.install-theme-info .theme-name{font-size:16px;line-height:24px;margin-bottom:0}.install-theme-info .theme-screenshot{margin-top:15px;width:258px;border:1px solid #ccc}.install-theme-info .theme-details{overflow:hidden}.theme-details .theme-version{margin:15px 0;float:left}.theme-details .star-holder{margin:14px 0;float:right}.theme-details .theme-description{float:left;color:#777;line-height:20px}#excerpt,.attachmentlinks{margin:0;height:4em;width:98%}#template div{margin-right:190px}p.pagenav{margin:0;display:inline}.pagenav span{font-weight:bold;margin:0 6px}.row-title{font-size:13px!important;font-weight:bold}.column-author img,.column-username img{float:left;margin-right:10px;margin-top:1px}.row-actions{visibility:hidden;padding:2px 0 0}.mobile .row-actions{visibility:visible}tr:hover .row-actions,div.comment-item:hover .row-actions{visibility:visible}.row-actions-visible{padding:2px 0 0}.form-table .pre{padding:8px;margin:0}table.form-table td .updated{font-size:13px}.tagchecklist{margin-left:14px;font-size:12px;overflow:auto}.tagchecklist strong{margin-left:-8px;position:absolute}.tagchecklist span{margin-right:25px;display:block;float:left;font-size:11px;line-height:1.8em;white-space:nowrap;cursor:default}.tagchecklist span a{margin:6px 0 0 -9px;cursor:pointer;width:10px;height:10px;display:block;float:left;text-indent:-9999px;overflow:hidden;position:absolute}#poststuff h2{margin-top:20px;font-size:1.5em;margin-bottom:15px;padding:0 0 3px;clear:left}#poststuff h3,.metabox-holder h3{font-size:15px;font-weight:normal;padding:7px 10px;margin:0;line-height:1}#poststuff .inside{margin:6px 0 8px}#poststuff .inside #parent_id,#poststuff .inside #page_template{max-width:100%}.inline-edit-row #post_parent,.inline-edit-row select[name="page_template"]{max-width:80%}.ie8 #poststuff .inside #parent_id,.ie8 #poststuff .inside #page_template,.ie8 .inline-edit-row #post_parent,.ie8 .inline-edit-row select[name="page_template"]{width:250px}#post-visibility-select,#post-formats-select{line-height:1.5em;margin-top:3px}#poststuff #submitdiv .inside{margin:0;padding:0}#post-body-content{margin-bottom:20px}#templateside ul li a{text-decoration:none}.tool-box .title{margin:8px 0;font-size:18px;font-weight:normal;line-height:24px}#sidemenu{margin:-30px 15px 0 315px;list-style:none;position:relative;float:right;padding-left:10px;font-size:12px}#sidemenu a{padding:0 7px;display:block;float:left;line-height:28px;border-top-width:1px;border-top-style:solid;border-bottom-width:1px;border-bottom-style:solid}#sidemenu li{display:inline;line-height:200%;list-style:none;text-align:center;white-space:nowrap;margin:0;padding:0}#sidemenu a.current{font-weight:normal;padding-left:6px;padding-right:6px;-webkit-border-top-left-radius:3px;-webkit-border-top-right-radius:3px;border-top-left-radius:3px;border-top-right-radius:3px;border-width:1px;border-style:solid}#sidemenu li a .count-0{display:none}.plugin-install #description,.plugin-install-network #description{width:60%}table .vers,table .column-visible,table .column-rating{text-align:left}.error-message{color:red;font-weight:bold}body.iframe{height:98%}td.media-icon{text-align:center;width:80px;padding-top:8px;padding-bottom:8px}td.media-icon img{max-width:80px;max-height:60px}#howto{font-size:11px;margin:0 5px;display:block}.importers td{padding-right:14px}.importers{font-size:16px;width:auto}#namediv table{width:100%}#namediv td.first{width:10px;white-space:nowrap}#namediv input{width:98%}#namediv p{margin:10px 0}#submitdiv h3{margin-bottom:0!important}.zerosize{height:0;width:0;margin:0;border:0;padding:0;overflow:hidden;position:absolute}br.clear{height:2px;line-height:2px}.checkbox{border:0;margin:0;padding:0}fieldset{border:0;padding:0;margin:0}.post-categories{display:inline;margin:0;padding:0}.post-categories li{display:inline}.edit-box{display:none}h3:hover .edit-box{display:inline}#dashboard-widgets form .input-text-wrap input{width:100%}#dashboard-widgets form .textarea-wrap textarea{width:100%}#dashboard-widgets .postbox form .submit{float:none;margin:.5em 0 0;padding:0;border:0}#dashboard-widgets-wrap #dashboard-widgets .postbox form .submit #publish{min-width:0}#dashboard-widgets a{text-decoration:none}#dashboard-widgets h3 a{text-decoration:underline}#dashboard-widgets h3 .postbox-title-action{position:absolute;right:10px;padding:0;top:5px}.js #dashboard-widgets h3 .postbox-title-action{right:30px}#dashboard-widgets h4{font-weight:normal;font-size:13px;margin:0 0 .2em;padding:0}#dashboard_right_now p.sub,#dashboard_right_now .table,#dashboard_right_now .versions{margin:-12px}#dashboard_right_now .inside{font-size:12px;padding-top:20px}#dashboard_right_now p.sub{padding:5px 0 15px;color:#8f8f8f;font-size:14px;position:absolute;top:-17px;left:15px}#dashboard_right_now .table{margin:0;padding:0;position:relative}#dashboard_right_now .table_content{float:left;border-top-width:1px;border-top-style:solid;width:45%}#dashboard_right_now .table_discussion{float:right;border-top-width:1px;border-top-style:solid;width:45%}#dashboard_right_now table td{padding:3px 0;white-space:nowrap}#dashboard_right_now table tr.first td{border-top:0}#dashboard_right_now td.b{padding-right:6px;text-align:right;font-size:14px;width:1%}#dashboard_right_now td.b a{font-size:18px}#dashboard_right_now td.b a:hover{color:#d54e21}#dashboard_right_now .t{font-size:12px;padding-right:12px;padding-top:6px;color:#777}#dashboard_right_now .t a{white-space:nowrap}#dashboard_right_now .spam{color:red}#dashboard_right_now .waiting{color:#e66f00}#dashboard_right_now .approved{color:green}#dashboard_right_now .versions{padding:6px 10px 12px;clear:both}#dashboard_right_now a.button{float:right;clear:right;position:relative;top:-5px}#dashboard_recent_comments h3{margin-bottom:0}#dashboard_recent_comments .inside{margin-top:0}#dashboard_recent_comments .comment-meta .approve{font-style:italic;font-family:sans-serif;font-size:10px}#dashboard_recent_comments .subsubsub{float:none;white-space:normal}#the-comment-list{position:relative}#the-comment-list .comment-item{padding:1em 10px;border-top:1px solid}#the-comment-list .pingback{padding-left:9px!important}#the-comment-list .comment-item,#the-comment-list #replyrow{margin:0 -10px}#the-comment-list .comment-item:first-child{border-top:0}#the-comment-list .comment-item .avatar{float:left;margin:0 10px 5px 0}#the-comment-list .comment-item h4{line-height:1.7em;margin-top:-0.4em;color:#777}#the-comment-list .comment-item h4 cite{font-style:normal;font-weight:normal}#the-comment-list .comment-item blockquote,#the-comment-list .comment-item blockquote p{margin:0;padding:0;display:inline}#dashboard_recent_comments #the-comment-list .trackback blockquote,#dashboard_recent_comments #the-comment-list .pingback blockquote{display:block}#the-comment-list .comment-item p.row-actions{margin:3px 0 0;padding:0;font-size:12px}.no-js #dashboard_quick_press{display:none}#dashboard_quick_press .easy-blogging{padding:0 8px;text-align:left}#dashboard_quick_press .input-text-wrap{position:relative}#dashboard_quick_press .prompt{color:#bbb;position:absolute}#dashboard_quick_press div.updated{padding:0 5px}#title-wrap label,#tags-input-wrap label{cursor:text}#title-wrap #title{padding:2px 6px;font-size:1.3em;line-height:100%;outline:0}#tags-input-wrap #tags-input{outline:0}#title-wrap #title-prompt-text{font-size:1.3em;padding:5px 8px}#tags-input-wrap #tags-input-prompt-text{font-size:1em;padding:4px 8px}#dashboard_quick_press .input-text-wrap,#dashboard_quick_press .textarea-wrap{margin:0 0 1em 0}#dashboard_quick_press .wp-media-buttons{margin:0 0 .2em 1px;padding:0}#dashboard_quick_press .wp-media-buttons a{color:#777}#dashboard-widgets #dashboard_quick_press form p.submit input{float:left}#dashboard-widgets #dashboard_quick_press form p.submit #save-post{margin:0 .7em 0 1px}#dashboard-widgets #dashboard_quick_press form p.submit #publish{float:right}#dashboard-widgets #dashboard_quick_press form p.submit .spinner{vertical-align:middle;margin:4px 6px 0 0}#dashboard_recent_drafts ul,#dashboard_recent_drafts p{margin:0;padding:0;word-wrap:break-word}#dashboard_recent_drafts ul{list-style:none}#dashboard_recent_drafts ul li{margin-bottom:1em}#dashboard_recent_drafts h4{line-height:1.7em;word-wrap:break-word}#dashboard_recent_drafts h4 abbr{font-weight:normal;font-family:sans-serif;font-size:12px;color:#999;margin-left:3px}.rss-widget ul{margin:0;padding:0;list-style:none}a.rsswidget{font-size:13px;line-height:1.7em}.rss-widget ul li{line-height:1.5em;margin-bottom:12px}.rss-widget span.rss-date{color:#999;font-size:12px;margin-left:3px}.rss-widget cite{display:block;text-align:right;margin:0 0 1em;padding:0}.rss-widget cite:before{content:'\2014'}#dashboard_plugins h4{line-height:1.7em}#dashboard_plugins h5{font-weight:normal;font-size:13px;margin:0;display:inline;line-height:1.4em}#dashboard_plugins h5 a{line-height:1.4em}#dashboard_plugins .inside span{font-size:12px;padding-left:5px}#dashboard_plugins p{margin:.3em 0 1.4em;line-height:1.4em}.dashboard-comment-wrap{overflow:hidden;word-wrap:break-word}#dashboard_browser_nag a.update-browser-link{font-size:1.2em;font-weight:bold}#dashboard_browser_nag a{text-decoration:underline}#dashboard_browser_nag p.browser-update-nag.has-browser-icon{padding-right:125px}#dashboard_browser_nag .browser-icon{margin-top:-35px}#dashboard_browser_nag.postbox.browser-insecure{background-color:#ac1b1b;border-color:#ac1b1b}#dashboard_browser_nag.postbox{background-color:#e29808;background-image:none;border-color:#edc048;color:#fff;-webkit-box-shadow:none;box-shadow:none}#dashboard_browser_nag.postbox.browser-insecure h3{border-bottom-color:#cd5a5a;color:#fff}#dashboard_browser_nag.postbox h3{border-bottom-color:#f6e2ac;text-shadow:none;background:transparent none;color:#fff;-webkit-box-shadow:none;box-shadow:none}#dashboard_browser_nag a{color:#fff}#dashboard_browser_nag.browser-insecure a.browse-happy-link,#dashboard_browser_nag.browser-insecure a.update-browser-link{text-shadow:#871b15 0 1px 0}#dashboard_browser_nag a.browse-happy-link,#dashboard_browser_nag a.update-browser-link{text-shadow:#d29a04 0 1px 0}.login *{margin:0;padding:0}.login form{margin-left:8px;padding:26px 24px 46px;font-weight:normal;background:#fff;border:1px solid #e5e5e5;-webkit-box-shadow:rgba(200,200,200,0.7) 0 4px 10px -1px;box-shadow:rgba(200,200,200,0.7) 0 4px 10px -1px}.login form .forgetmenot{font-weight:normal;float:left;margin-bottom:0}.login .button-primary{float:right}#login form p{margin-bottom:0}#login form p.submit{padding:0}.login label{color:#777;font-size:14px}.login form .forgetmenot label{font-size:12px;line-height:19px}.login h1 a{background-image:url('../images/wordpress-logo.png?ver=20120216');background-size:274px 63px;background-position:top center;background-repeat:no-repeat;width:326px;height:67px;text-indent:-9999px;outline:0;overflow:hidden;padding-bottom:15px;display:block}#login{width:320px;padding:114px 0 0;margin:auto}#login_error,.login .message{margin:0 0 16px 8px;padding:12px}.login #nav,.login #backtoblog{text-shadow:#fff 0 1px 0;margin:0 0 0 16px;padding:16px 16px 0}#backtoblog{padding:12px 16px 0}.login form .input,.login input[type="text"]{color:#555;font-weight:200;font-size:24px;line-height:1;width:100%;padding:3px;margin-top:2px;margin-right:6px;margin-bottom:16px;border:1px solid #e5e5e5;background:#fbfbfb;outline:0;-webkit-box-shadow:inset 1px 1px 2px rgba(200,200,200,0.2);box-shadow:inset 1px 1px 2px rgba(200,200,200,0.2)}.login #pass-strength-result{width:250px;font-weight:bold;border-style:solid;border-width:1px;margin:12px 0 6px;padding:6px 5px;text-align:center}.mobile #login{padding:20px 0}.mobile #login form,.mobile #login .message,.mobile #login_error{margin-left:0}.mobile #login #nav,.mobile #login #backtoblog{margin-left:8px}.mobile #login h1 a{width:auto}#dashboard_right_now p.musub{margin-top:12px;border-top:1px solid #ececec;padding-left:16px;position:static}.rtl #dashboard_right_now p.musub{padding-left:0;padding-right:16px}#dashboard_right_now td.b a.musublink{font-size:16px}#dashboard_right_now div.musubtable{border-top:0}#dashboard_right_now div.musubtable .t{white-space:normal}.wp-list-table .site-deleted{background:#ff8573}.wp-list-table .site-spammed{background:#faafaa}.wp-list-table .site-archived{background:#ffebe8}.wp-list-table .site-mature{background:#fecac2}#nav-menus-frame{margin-left:300px}#wpbody-content #menu-settings-column{display:inline;width:281px;margin-left:-300px;clear:both;float:left;padding-top:24px}.no-js #wpbody-content #menu-settings-column{padding-top:31px}#menu-settings-column .inside{clear:both;margin:10px 0 0}.metabox-holder-disabled .postbox{opacity:.5;filter:alpha(opacity=50)}.metabox-holder-disabled .button-controls .select-all{display:none}#wpbody{position:relative}#menu-management-liquid{float:left;min-width:100%}#menu-management{position:relative;margin-right:20px;margin-top:-3px;width:100%}#menu-management .menu-edit{margin-bottom:20px}.nav-menus-php #post-body{padding:10px;border-width:1px 0;border-style:solid}#nav-menu-header,#nav-menu-footer{padding:0 10px}#nav-menu-header{border-bottom:1px solid}#nav-menu-footer{border-top:1px solid}.nav-menus-php #post-body div.updated,.nav-menus-php #post-body div.error{margin:0}.nav-menus-php #post-body-content{position:relative;float:none}#menu-management .menu-add-new abbr{font-weight:bold}#menu-management .nav-tabs-nav{margin:0 20px}#menu-management .nav-tabs-arrow{width:10px;padding:0 5px 4px;cursor:pointer;position:absolute;top:0;line-height:22px;font-size:18px;text-shadow:0 1px 0 #fff}#menu-management .nav-tabs-arrow-left{left:0}#menu-management .nav-tabs-arrow-right{right:0;text-align:right}#menu-management .nav-tabs-wrapper{width:100%;height:28px;margin-bottom:-1px;overflow:hidden}#menu-management .nav-tabs{padding-left:20px;padding-right:10px}.js #menu-management .nav-tabs{float:left;margin-left:0;margin-right:-400px}#menu-management .nav-tab{margin-bottom:0;font-size:14px}#select-nav-menu-container{text-align:right;padding:0 10px 3px 10px;margin-bottom:5px}#select-nav-menu{width:100px;display:inline}#menu-name-label{margin-top:-2px}#wpbody .open-label{display:block;float:left}#wpbody .open-label span{padding-right:10px}.js .input-with-default-title{font-style:italic}#menu-management .inside{padding:0 10px}.postbox .howto input{width:180px;float:right}.customlinkdiv .howto input{width:200px}#nav-menu-theme-locations .howto select{width:100%}#nav-menu-theme-locations .button-controls{text-align:right}.add-menu-item-view-all{height:400px}#menu-container .submit{margin:0 0 10px;padding:0}.nav-menus-php .meta-sep,.nav-menus-php .submitdelete,.nav-menus-php .submitcancel{display:block;float:left;margin:4px 0;line-height:15px}.meta-sep{padding:0 2px}#cancel-save{text-decoration:underline;font-size:12px;margin-left:20px;margin-top:5px}.button.right,.button-secondary.right,.button-primary.right{float:right}.list-controls{float:left;margin-top:5px}.add-to-menu{float:right}.postbox .spinner{display:none;vertical-align:middle}.button-controls{clear:both;margin:10px 0}.show-all,.hide-all{cursor:pointer}.hide-all{display:none}#menu-name{width:270px}#manage-menu .inside{padding:0}#available-links dt{display:block}#add-custom-link .howto{font-size:12px}#add-custom-link label span{display:block;float:left;margin-top:5px;padding-right:5px}.menu-item-textbox{width:180px}.nav-menus-php .howto span{margin-top:4px;display:block;float:left}.quick-search{width:190px}.nav-menus-php .list-wrap{display:none;clear:both;margin-bottom:10px}.nav-menus-php .list-container{max-height:200px;overflow-y:auto;padding:10px 10px 5px}.nav-menus-php .postbox p.submit{margin-bottom:0}.nav-menus-php .list li{display:none;margin:0;margin-bottom:5px}.nav-menus-php .list li .menu-item-title{cursor:pointer;display:block}.nav-menus-php .list li .menu-item-title input{margin-right:3px;margin-top:-3px}#menu-container .inside{padding-bottom:10px}.menu{padding-top:1em}#menu-to-edit{padding:1em 0}.menu ul{width:100%}.menu li{margin-bottom:0;position:relative}.menu-item-bar{clear:both;line-height:1.5em;position:relative;margin:13px 0 0 0}.menu-item-handle{border:1px solid #dfdfdf;position:relative;padding-left:10px;height:auto;width:400px;line-height:35px;text-shadow:0 1px 0 #fff;overflow:hidden;word-wrap:break-word}#menu-to-edit .menu-item-invalid .menu-item-handle{background:#f6c9cc;background-image:-webkit-gradient(linear,left bottom,left top,from(#f6c9cc),to(#fdf8ff));background-image:-webkit-linear-gradient(bottom,#f6c9cc,#fdf8ff);background-image:-moz-linear-gradient(bottom,#f6c9cc,#fdf8ff);background-image:-o-linear-gradient(bottom,#f6c9cc,#fdf8ff);background-image:linear-gradient(to top,#f6c9cc,#fdf8ff)}.menu-item-edit-active .menu-item-handle{-webkit-border-bottom-right-radius:0;-webkit-border-bottom-left-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.no-js .menu-item-edit-active .item-edit{display:none}.js .menu-item-handle{cursor:move}.menu li.deleting .menu-item-handle{background-image:none;text-shadow:0}.menu-item-handle .item-title{font-size:12px;font-weight:bold;padding:7px 0;line-height:20px;display:block;margin-right:13em}li.menu-item.ui-sortable-helper dl{margin-top:0}li.menu-item.ui-sortable-helper .menu-item-transport dl{margin-top:13px}.menu .sortable-placeholder{height:35px;width:410px;margin-top:13px}.menu-item-depth-0{margin-left:0}.menu-item-depth-1{margin-left:30px}.menu-item-depth-2{margin-left:60px}.menu-item-depth-3{margin-left:90px}.menu-item-depth-4{margin-left:120px}.menu-item-depth-5{margin-left:150px}.menu-item-depth-6{margin-left:180px}.menu-item-depth-7{margin-left:210px}.menu-item-depth-8{margin-left:240px}.menu-item-depth-9{margin-left:270px}.menu-item-depth-10{margin-left:300px}.menu-item-depth-11{margin-left:330px}.menu-item-depth-0 .menu-item-transport{margin-left:0}.menu-item-depth-1 .menu-item-transport{margin-left:-30px}.menu-item-depth-2 .menu-item-transport{margin-left:-60px}.menu-item-depth-3 .menu-item-transport{margin-left:-90px}.menu-item-depth-4 .menu-item-transport{margin-left:-120px}.menu-item-depth-5 .menu-item-transport{margin-left:-150px}.menu-item-depth-6 .menu-item-transport{margin-left:-180px}.menu-item-depth-7 .menu-item-transport{margin-left:-210px}.menu-item-depth-8 .menu-item-transport{margin-left:-240px}.menu-item-depth-9 .menu-item-transport{margin-left:-270px}.menu-item-depth-10 .menu-item-transport{margin-left:-300px}.menu-item-depth-11 .menu-item-transport{margin-left:-330px}body.menu-max-depth-0{min-width:950px!important}body.menu-max-depth-1{min-width:980px!important}body.menu-max-depth-2{min-width:1010px!important}body.menu-max-depth-3{min-width:1040px!important}body.menu-max-depth-4{min-width:1070px!important}body.menu-max-depth-5{min-width:1100px!important}body.menu-max-depth-6{min-width:1130px!important}body.menu-max-depth-7{min-width:1160px!important}body.menu-max-depth-8{min-width:1190px!important}body.menu-max-depth-9{min-width:1220px!important}body.menu-max-depth-10{min-width:1250px!important}body.menu-max-depth-11{min-width:1280px!important}.item-type{font-size:12px;padding-right:10px}.item-controls{font-size:12px;position:absolute;right:20px;top:-1px}.item-controls a{text-decoration:none}.item-controls a:hover{cursor:pointer}.item-controls .item-order{padding-right:10px}.nav-menus-php .item-edit{position:absolute;right:-20px;top:0;display:block;width:30px;height:36px;overflow:hidden;text-indent:-999em;border-bottom:1px solid;-webkit-border-bottom-left-radius:3px;border-bottom-left-radius:3px}.menu-instructions-inactive{display:none}.menu-item-settings{display:block;width:400px;padding:10px 0 10px 10px;border:solid;border-width:0 1px 1px 1px;-webkit-border-bottom-right-radius:3px;-webkit-border-bottom-left-radius:3px;border-bottom-left-radius:3px;border-bottom-right-radius:3px}.menu-item-edit-active .menu-item-settings{display:block}.menu-item-edit-inactive .menu-item-settings{display:none}.add-menu-item-pagelinks{margin:.5em auto;text-align:center}.link-to-original{display:block;margin:0 0 10px;padding:3px 5px 5px;font-size:12px;font-style:italic}.link-to-original a{padding-left:4px;font-style:normal}.hidden-field{display:none}.menu-item-settings .description-thin,.menu-item-settings .description-wide{margin-right:10px;float:left}.description-thin{width:190px;height:40px}.description-wide{width:390px}.menu-item-actions{padding-top:15px}#cancel-save{cursor:pointer}.nav-menus-php .major-publishing-actions{clear:both;padding:3px 0 5px}.nav-menus-php .major-publishing-actions .publishing-action{text-align:right;float:right;line-height:23px;margin:5px 0 1px}.nav-menus-php .major-publishing-actions .delete-action{vertical-align:middle;text-align:left;float:left;padding-right:15px;margin-top:5px}.menu-name-label span,.auto-add-pages label{font-size:12px;font-style:normal}.menu-name-label{margin-right:15px}.auto-add-pages input{margin-top:0}.auto-add-pages{margin-top:4px;float:left}.nav-menus-php .submitbox .submitcancel{border-bottom:1px solid;padding:1px 2px;text-decoration:none}.nav-menus-php .major-publishing-actions .form-invalid{padding-left:4px;margin-left:-4px;border:0 none}#menu-item-name-wrap:after,#menu-item-url-wrap:after,#menu-name-label:after,#menu-settings-column .inside:after,#nav-menus-frame:after,.nav-menus-php #post-body-content:after,.nav-menus-php .button-controls:after,.nav-menus-php .major-publishing-actions:after,.nav-menus-php .menu-item-settings:after{clear:both;content:".";display:block;height:0;visibility:hidden}#nav-menus-frame,.button-controls,#menu-item-url-wrap,#menu-item-name-wrap{display:block}div.star-holder{position:relative;height:17px;width:100px;background:url('../images/stars.png?ver=20121108') repeat-x bottom left}div.star-holder .star-rating{background:url('../images/stars.png?ver=20121108') repeat-x top left;height:17px;float:left}div.action-links{font-weight:normal;margin:6px 0 0}#plugin-information-header{margin:0;padding:0 5px;font-weight:bold;position:relative;border-bottom-width:1px;border-bottom-style:solid;height:2.5em}#plugin-information ul#sidemenu{font-weight:normal;margin:0 5px;position:absolute;left:0;bottom:-1px}#plugin-information p.action-button{width:100%;padding-bottom:0;margin-bottom:0;margin-top:10px;-webkit-border-top-left-radius:3px;-webkit-border-bottom-left-radius:3px;border-top-left-radius:3px;border-bottom-left-radius:3px}#plugin-information .action-button a{text-align:center;font-weight:bold;text-decoration:none;display:block;line-height:2em}#plugin-information h2{clear:none!important;margin-right:200px}#plugin-information .fyi{margin:0 10px 50px;width:210px}#plugin-information .fyi h2{font-size:.9em;margin-bottom:0;margin-right:0}#plugin-information .fyi h2.mainheader{padding:5px;-webkit-border-top-left-radius:3px;border-top-left-radius:3px}#plugin-information .fyi ul{padding:10px 5px 10px 7px;margin:0;list-style:none;-webkit-border-bottom-left-radius:3px;border-bottom-left-radius:3px}#plugin-information .fyi li{margin-right:0}#plugin-information #section-holder{padding:10px}#plugin-information .section ul,#plugin-information .section ol{margin-left:16px;list-style-type:square;list-style-image:none}#plugin-information #section-screenshots ol{list-style:none;margin:0}#plugin-information #section-screenshots li img{vertical-align:text-top;max-width:100%;width:auto;height:auto}#plugin-information #section-screenshots li p{font-style:italic;padding-left:20px;padding-bottom:2em}#plugin-information #section-screenshots ol,#plugin-information .updated,#plugin-information pre{margin-right:215px}#plugin-information pre{padding:7px;overflow:auto}body.press-this{color:#333;margin:0;padding:0;min-width:675px;min-height:400px}img{border:0}.press-this #wphead{height:32px;margin-left:0;margin-right:0;margin-bottom:5px}.press-this #header-logo{float:left;margin:7px 7px 0;-webkit-user-select:none;-moz-user-select:none;user-select:none}.press-this #wphead h1{font-weight:normal;font-size:16px;line-height:32px;margin:0;float:left}.press-this #wphead h1 a{text-decoration:none}.press-this #wphead h1 a:hover{text-decoration:underline}.press-this #message{margin:10px 0}.press-this-sidebar{float:right;width:200px;padding-top:10px}.press-this #title{margin-left:0;margin-right:0;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box}.press-this .tagchecklist span a{background:transparent url(../images/xit.gif) no-repeat 0 0}.press-this #titlediv{margin:0}.press-this .wp-media-buttons{cursor:default;padding:8px 8px 0}.press-this .howto{margin-top:2px;margin-bottom:3px;font-size:12px;font-style:italic;display:block}.press-this #poststuff{margin:0 10px 10px;padding:0}.press-this #photo-add-url-div input[type="text"]{width:220px}#poststuff #editor-toolbar{height:30px}div.zerosize{border:0 none;height:0;margin:0;overflow:hidden;padding:0;width:0}.posting{margin-right:212px;position:relative}.press-this .inner-sidebar{width:200px}.press-this .inner-sidebar .sleeve{padding-top:5px}.press-this #submitdiv p{margin:0;padding:6px}.press-this #submitdiv #publishing-actions{border-bottom:1px solid #dfdfdf}.press-this #publish{float:right}.press-this #poststuff h2,.press-this #poststuff h3{font-size:14px;line-height:1}.press-this #tagsdiv-post_tag h3,.press-this #categorydiv h3{cursor:pointer}.press-this #submitdiv h3{cursor:default}h3.tb{text-shadow:0 1px 0 #fff;font-weight:bold;font-size:12px;margin-left:5px}#TB_window{border:1px solid #333}.press-this .postbox,.press-this .stuffbox{margin-bottom:10px;min-width:0}.js .postbox:hover .handlediv,.js .stuffbox:hover .handlediv{background:transparent url(../images/arrows.png) no-repeat 6px 7px}.press-this #submitdiv:hover .handlediv{background:0}.tbtitle{font-size:1.7em;outline:0;padding:3px 4px;border-color:#dfdfdf}.press-this .actions{float:right;margin:-19px 0 0}.press-this #extra-fields .actions{margin:-32px -7px 0 0}.press-this .actions li{float:left;list-style:none;margin-right:10px}#extra-fields .button{margin-right:5px}#photo_saving{margin:0 8px 8px;vertical-align:middle}#img_container_container{overflow:auto}#extra-fields{margin-top:10px;position:relative}#extra-fields h2{margin:12px}#waiting{margin-top:10px;overflow:hidden}#waiting span{float:right;margin:0 0 0 5px}#waiting .spinner{display:block}#extra-fields .postbox{margin-bottom:5px}#extra-fields .titlewrap{padding:0;overflow:auto;height:100px}#img_container a{display:block;float:left;overflow:hidden}#img_container img,#img_container a{width:68px;height:68px}#img_container img{border:0;background-color:#f4f4f4;cursor:pointer}#img_container a,#img_container a:link,#img_container a:visited{border:1px solid #ccc;display:block;position:relative}#img_container a:hover,#img_container a:active{border-color:#000;z-index:1000;border-width:2px;margin:-1px}#embed-code{width:100%;height:98px}.press-this .categorydiv div.tabs-panel{height:100px}.press-this .tagsdiv .newtag{width:120px}.press-this #content{margin:5px 0;padding:0 5px;border:0 none;height:345px;font-family:Consolas,Monaco,monospace;font-size:13px;line-height:19px;background:transparent}.press-this #publishing-actions .spinner{display:inline;vertical-align:middle}#TB_ajaxContent #options{position:absolute;top:20px;right:25px;padding:5px}#TB_ajaxContent h3{margin-bottom:.25em}.error a{text-decoration:underline}.updated a{text-decoration:none;padding-bottom:2px}.taghint{color:#aaa;margin:-17px 0 0 7px;visibility:hidden}input.newtag ~ div.taghint{visibility:visible}input.newtag:focus ~ div.taghint{visibility:hidden}#mce_fullscreen_container{background:#fff}#photo-add-url-div input[type="text"]{width:300px}.alignleft h3{margin:0}h3 span{font-weight:normal}#template textarea{font-family:Consolas,Monaco,monospace;font-size:12px;width:97%;background:#f9f9f9;outline:0}#template p{width:97%}#templateside{float:right;width:190px;word-wrap:break-word}#templateside h3,#postcustomstuff p.submit{margin:0}#templateside h4{margin:1em 0 0}#templateside ol,#templateside ul{margin:.5em;padding:0}#templateside li{margin:4px 0}#templateside ul li a span.highlight{display:block}.nonessential{font-size:11px;font-style:italic;padding-left:12px}.highlight{padding:3px 3px 3px 12px;margin-left:-12px;font-weight:bold;border:0 none}#documentation{margin-top:10px}#documentation label{line-height:22px;vertical-align:top;font-weight:bold}.fileedit-sub{padding:10px 0 8px;line-height:180%}#filter-box{clear:both}.feature-filter{padding:8px 12px 0}.feature-filter .feature-group{float:left;margin:5px 10px 10px}.feature-filter .feature-group li{display:inline-block;vertical-align:top;list-style-type:none;padding-right:25px;width:150px}.feature-container{width:100%;overflow:auto;margin-bottom:10px}div.widget-liquid-left{float:left;clear:left;width:100%;margin-right:-325px}div#widgets-left{margin-left:5px;margin-right:325px}div#widgets-right{width:285px;margin:0 auto}div.widget-liquid-right{float:right;clear:right;width:300px}.widget-liquid-right .widget,.inactive-sidebar .widget,.widget-liquid-right .sidebar-description{width:250px;margin:0 auto 20px;overflow:hidden}.widget-liquid-right .sidebar-description{margin-bottom:10px}.inactive-sidebar .widget{margin:0 10px 20px;display:inline-block}div.sidebar-name h3{font-weight:normal;font-size:15px;margin:0;padding:8px 10px;overflow:hidden;white-space:nowrap}div.sidebar-name{font-size:13px;border-width:1px;border-style:solid;-webkit-border-top-right-radius:3px;-webkit-border-top-left-radius:3px;border-top-right-radius:3px;border-top-left-radius:3px}.js .sidebar-name{cursor:pointer}.js .closed .sidebar-name{-webkit-border-bottom-right-radius:3px;-webkit-border-bottom-left-radius:3px;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.widget-liquid-right .widgets-sortables,#widgets-left .widget-holder{border-width:0 1px 1px;border-style:none solid solid;-webkit-border-bottom-right-radius:3px;-webkit-border-bottom-left-radius:3px;border-bottom-right-radius:3px;border-bottom-left-radius:3px}.js .closed .widgets-sortables,.js .closed .widget-holder{display:none}.widget-liquid-right .widgets-sortables{padding:15px 0 0}#available-widgets .widget-holder{padding:7px 5px 0}#available-widgets .widget{-webkit-box-shadow:none;box-shadow:none}.inactive-sidebar{padding:5px 5px 0}#widget-list .widget{width:250px;margin:0 10px 15px;border:0 none;background:transparent;display:inline-block;vertical-align:top}#widget-list .widget-description{padding:5px 8px}.widget-placeholder{border-width:1px;border-style:dashed;margin:0 auto 20px;height:27px;width:250px}.inactive-sidebar .widget-placeholder{margin:0 10px 20px;float:left}div.widgets-holder-wrap{padding:0;margin:10px 0 20px}#widgets-left #available-widgets{background-color:transparent;border:0 none}ul#widget-list{list-style:none;margin:0;padding:0;min-height:100px}.widget .widget-top{margin-bottom:-1px;font-size:12px;font-weight:bold;height:26px;overflow:hidden}.widget-top .widget-title{padding:7px 9px}.widget-top .widget-title-action{float:right}a.widget-action{display:block;width:24px;height:26px}#available-widgets a.widget-action{display:none}.widget-top a.widget-action{background:transparent url(../images/arrows.png) no-repeat 4px 6px}.widget-top a.widget-action:hover{background:transparent url(../images/arrows-dark.png) no-repeat 4px 6px}.widget .widget-inside,.widget .widget-description{padding:12px 12px 10px;font-size:12px;line-height:16px}.widget-inside,.widget-description{display:none}#available-widgets .widget-description{display:block}.widget .widget-inside p{margin:0 0 1em;padding:0}.widget-title h4{margin:0;padding-bottom:.2em;line-height:1;overflow:hidden;white-space:nowrap}.widgets-sortables{min-height:90px}.widget-control-actions{margin-top:8px}.widget-control-actions a{text-decoration:none}.widget-control-actions a:hover{text-decoration:underline}.widget-control-actions div.alignleft{margin-top:6px}div#sidebar-info{padding:0 1em;margin-bottom:1em;font-size:12px}.widget-title a,.widget-title a:hover{text-decoration:none;border-bottom:0}.widget-control-edit{display:block;font-size:12px;font-weight:normal;line-height:26px;padding:0 8px 0 0}a.widget-control-edit{text-decoration:none}.widget-control-edit .add,.widget-control-edit .edit{display:none}#available-widgets .widget-control-edit .add,#widgets-right .widget-control-edit .edit,.inactive-sidebar .widget-control-edit .edit{display:inline}.editwidget{margin:0 auto 15px}.editwidget .widget-inside{display:block;padding:10px}.inactive p.description{margin:5px 15px 10px}#available-widgets p.description{margin:0 12px 12px}.widget-position{margin-top:8px}.inactive{padding-top:2px}.sidebar-name .spinner{float:none;margin:0 3px -3px}.sidebar-name-arrow{float:right;height:29px;width:26px}.widget-title .in-widget-title{font-size:12px;white-space:nowrap}#removing-widget{display:none;font-weight:normal;padding-left:15px;font-size:12px;line-height:1}.widget-control-noform,#access-off,.widgets_access .widget-action,.widgets_access .sidebar-name-arrow,.widgets_access #access-on,.widgets_access .widget-holder .description{display:none}.widgets_access .widget-holder,.widgets_access #widget-list{padding-top:10px}.widgets_access #access-off{display:inline}.widgets_access #wpbody-content .widget-title-action,.widgets_access #wpbody-content .widget-control-edit,.widgets_access .closed .widgets-sortables,.widgets_access .closed .widget-holder{display:block}.widgets_access .closed .sidebar-name{-webkit-border-bottom-right-radius:0;-webkit-border-bottom-left-radius:0;border-bottom-right-radius:0;border-bottom-left-radius:0}.widgets_access .sidebar-name,.widgets_access .widget .widget-top{cursor:default}.ui-sortable,.ui-draggable{-ms-touch-action:none}@media only screen and (max-width:768px){#col-left{width:100%}#col-right{width:100%}}@media only screen and (min-width:769px){#col-left{width:35%}#col-right{width:65%}}@media only screen and (max-width:860px){#col-left{width:35%}#col-right{width:65%}}@media only screen and (min-width:980px){#col-left{width:35%}#col-right{width:65%}}@media only screen and (max-width:768px){#col-left{width:100%}#col-right{width:100%}.form-field input,.form-field textarea{width:99%}.form-wrap .form-field{padding:0}#profile-page .form-table textarea{max-width:400px;width:auto}}@media print,(-o-min-device-pixel-ratio:5/4),(-webkit-min-device-pixel-ratio:1.25),(min-resolution:120dpi){.press-this .tagchecklist span a{background-image:url('../images/xit-2x.gif');background-size:20px auto}.js .postbox:hover .handlediv,.js .stuffbox:hover .handlediv,.widget-top a.widget-action{background-image:url('../images/arrows-2x.png');background-size:15px 123px}.widget-top a.widget-action:hover{background-image:url('../images/arrows-dark-2x.png');background-size:15px 123px}.post-com-count{background-image:url('../images/bubble_bg-2x.gif');background-size:18px 100px}th .comment-grey-bubble{background-image:url('../images/comment-grey-bubble-2x.png');background-size:12px 12px}.sorting-indicator{background-image:url('../images/sort-2x.gif');background-size:14px 4px}#content-resize-handle,#post-body .wp_themeSkin .mceStatusbar a.mceResize{background:transparent url('../images/resize-2x.gif') no-repeat scroll right bottom;background-size:11px 11px}div.star-holder{background:url('../images/stars-2x.png?ver=20121108') repeat-x bottom left;background-size:21px 37px}div.star-holder .star-rating{background:url('../images/stars-2x.png?ver=20121108') repeat-x top left;background-size:21px 37px}.welcome-panel .welcome-panel-close:before{background-image:url('../images/xit-2x.gif');background-size:20px auto}.welcome-panel .welcome-icon{background-image:url('../images/welcome-icons-2x.png')}.login h1 a{background-image:url('../images/wordpress-logo-2x.png?ver=20120412');background-size:274px 63px}.wp-badge{background-image:url('../images/wp-badge-2x.png?ver=20120516');background-size:173px 194px}.wp-full-overlay .collapse-sidebar-arrow{background-image:url('../images/arrows-2x.png');background-size:15px 123px}.pressthis a span{background-image:url(../images/press-this-2x.png?v=20121105)}.imgedit-crop,.imgedit-rleft,.imgedit-rright,.imgedit-flipv,.imgedit-fliph,.imgedit-undo,.imgedit-redo{background-image:url('../images/imgedit-icons-2x.png');background-size:260px 64px}.spinner,.imgedit-wait,.customize-loading #customize-container{background-image:url(../images/wpspin_light-2x.gif)}}.locale-zh-cn .howto,.locale-zh-cn .tablenav .displaying-num,.locale-zh-cn .js .input-with-default-title,.locale-zh-cn .link-to-original,.locale-zh-cn .inline-edit-row fieldset span.title,.locale-zh-cn .inline-edit-row fieldset span.checkbox-title,.locale-zh-cn #utc-time,.locale-zh-cn #local-time,.locale-zh-cn p.install-help,.locale-zh-cn p.help,.locale-zh-cn p.description,.locale-zh-cn span.description,.locale-zh-cn .form-wrap p{font-style:normal}.locale-zh-cn .hdnle a{font-size:12px}.locale-zh-cn form.upgrade .hint{font-style:normal;font-size:100%}.locale-zh-cn #wp-fullscreen-tagline{font-family:KaiTi,"楷体",sans-serif}.locale-zh-cn #wp-fullscreen-modes a{font-size:12px}.locale-zh-cn #sort-buttons{font-size:1em!important}.locale-ru-ru .inline-edit-row fieldset label span.title{width:auto;min-width:5em}.locale-ru-ru.press-this .posting{margin-right:257px}.locale-ru-ru.press-this #photo-add-url-div input[type="text"]{width:255px}.locale-ru-ru.press-this #side-sortables{width:245px}.locale-ru-ru #customize-header-actions .button{padding:0 8px 1px}.locale-lt-lt .inline-edit-row fieldset label span.title{width:8em}.locale-lt-lt .inline-edit-row fieldset label span.input-text-wrap{margin-left:8em}.update-php .spinner{float:none;margin:-4px 0}
\ No newline at end of file
--- a/web/wp-admin/custom-background.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-admin/custom-background.php	Wed Dec 19 17:46:52 2012 -0800
@@ -73,12 +73,6 @@
 		add_action("load-$page", array(&$this, 'take_action'), 49);
 		add_action("load-$page", array(&$this, 'handle_upload'), 49);
 
-		if ( isset( $_REQUEST['context'] ) && $_REQUEST['context'] == 'custom-background' ) {
-			add_filter( 'attachment_fields_to_edit', array( $this, 'attachment_fields_to_edit' ), 10, 2 );
-			add_filter( 'media_upload_tabs', array( $this, 'filter_upload_tabs' ) );
-			add_filter( 'media_upload_mime_type_links', '__return_empty_array' );
-		}
-
 		if ( $this->admin_header_callback )
 			add_action("admin_head-$page", $this->admin_header_callback, 51);
 	}
@@ -94,8 +88,8 @@
 			'title'   => __('Overview'),
 			'content' =>
 				'<p>' . __( 'You can customize the look of your site without touching any of your theme&#8217;s code by using a custom background. Your background can be an image or a color.' ) . '</p>' .
-				'<p>' . __( 'To use a background image, simply upload it, then choose your display options below. You can display a single instance of your image, or tile it to fill the screen. You can have your background fixed in place, so your site content moves on top of it, or you can have it scroll with your site.' ) . '</p>' .
-				'<p>' . __( 'You can also choose a background color. If you know the hexadecimal code for the color you want, enter it in the Background Color field. If not, click on the Select a Color link, and a color picker will allow you to choose the exact shade you want.' ) . '</p>' .
+				'<p>' . __( 'To use a background image, simply upload it or choose an image that has already been uploaded to your Media Library by clicking the &#8220;Choose Image&#8221; button. You can display a single instance of your image, or tile it to fill the screen. You can have your background fixed in place, so your site content moves on top of it, or you can have it scroll with your site.' ) . '</p>' .
+				'<p>' . __( 'You can also choose a background color by clicking the Select Color button and either typing in a legitimate HTML hex value, e.g. &#8220;#ff0000&#8221; for red, or by choosing a color using the color picker.' ) . '</p>' .
 				'<p>' . __( 'Don&#8217;t forget to click on the Save Changes button when you are finished.' ) . '</p>'
 		) );
 
@@ -105,10 +99,9 @@
 			'<p>' . __( '<a href="http://wordpress.org/support/" target="_blank">Support Forums</a>' ) . '</p>'
 		);
 
-		add_thickbox();
-		wp_enqueue_script('media-upload');
+		wp_enqueue_media();
 		wp_enqueue_script('custom-background');
-		wp_enqueue_style('farbtastic');
+		wp_enqueue_style('wp-color-picker');
 	}
 
 	/**
@@ -254,7 +247,7 @@
 <?php endif; ?>
 <tr valign="top">
 <th scope="row"><?php _e('Select Image'); ?></th>
-<td><form enctype="multipart/form-data" id="upload-form" method="post" action="">
+<td><form enctype="multipart/form-data" id="upload-form" class="wp-upload-form" method="post" action="">
 	<p>
 		<label for="upload"><?php _e( 'Choose an image from your computer:' ); ?></label><br />
 		<input type="file" id="upload" name="import" />
@@ -262,14 +255,11 @@
 		<?php wp_nonce_field( 'custom-background-upload', '_wpnonce-custom-background-upload' ); ?>
 		<?php submit_button( __( 'Upload' ), 'button', 'submit', false ); ?>
 	</p>
-	<?php
-		$image_library_url = get_upload_iframe_src( 'image', null, 'library' );
-		$image_library_url = remove_query_arg( 'TB_iframe', $image_library_url );
-		$image_library_url = add_query_arg( array( 'context' => 'custom-background', 'TB_iframe' => 1 ), $image_library_url );
-	?>
 	<p>
 		<label for="choose-from-library-link"><?php _e( 'Or choose an image from your media library:' ); ?></label><br />
-		<a id="choose-from-library-link" class="button thickbox" href="<?php echo esc_url( $image_library_url ); ?>"><?php _e( 'Choose Image' ); ?></a>
+		<a id="choose-from-library-link" class="button"
+			data-choose="<?php esc_attr_e( 'Choose a Background Image' ); ?>"
+			data-update="<?php esc_attr_e( 'Set as background' ); ?>"><?php _e( 'Choose Image' ); ?></a>
 	</p>
 	</form>
 </td>
@@ -327,11 +317,12 @@
 <tr valign="top">
 <th scope="row"><?php _e( 'Background Color' ); ?></th>
 <td><fieldset><legend class="screen-reader-text"><span><?php _e( 'Background Color' ); ?></span></legend>
-<?php $show_clear = get_theme_mod('background_color') ? '' : ' style="display:none"'; ?>
-<input type="text" name="background-color" id="background-color" value="#<?php echo esc_attr(get_background_color()) ?>" />
-<a class="hide-if-no-js" href="#" id="pickcolor"><?php _e('Select a Color'); ?></a> <span<?php echo $show_clear; ?> class="hide-if-no-js" id="clearcolor"> (<a href="#"><?php current_theme_supports( 'custom-background', 'default-color' ) ? _e( 'Default' ) : _e( 'Clear' ); ?></a>)</span>
-<input type="hidden" id="defaultcolor" value="<?php if ( current_theme_supports( 'custom-background', 'default-color' ) ) echo '#' . esc_attr( get_theme_support( 'custom-background', 'default-color' ) ); ?>" />
-<div id="colorPickerDiv" style="z-index: 100; background:#eee; border:1px solid #ccc; position:absolute; display:none;"></div>
+<?php
+$default_color = '';
+if ( current_theme_supports( 'custom-background', 'default-color' ) )
+	$default_color = ' data-default-color="#' . esc_attr( get_theme_support( 'custom-background', 'default-color' ) ) . '"';
+?>
+<input type="text" name="background-color" id="background-color" value="#<?php echo esc_attr( get_background_color() ); ?>"<?php echo $default_color ?> />
 </fieldset></td>
 </tr>
 </tbody>
@@ -357,7 +348,13 @@
 
 		check_admin_referer('custom-background-upload', '_wpnonce-custom-background-upload');
 		$overrides = array('test_form' => false);
-		$file = wp_handle_upload($_FILES['import'], $overrides);
+
+		$uploaded_file = $_FILES['import'];
+		$wp_filetype = wp_check_filetype_and_ext( $uploaded_file['tmp_name'], $uploaded_file['name'], false );
+		if ( ! wp_match_mime_types( 'image', $wp_filetype['type'] ) )
+			wp_die( __( 'The uploaded file is not a valid image. Please try again.' ) );
+
+		$file = wp_handle_upload($uploaded_file, $overrides);
 
 		if ( isset($file['error']) )
 			wp_die( $file['error'] );
@@ -393,25 +390,21 @@
 	}
 
 	/**
-	 * Replace default attachment actions with "Set as background" link.
+	 * Unused since 3.5.0.
 	 *
 	 * @since 3.4.0
 	 */
-	function attachment_fields_to_edit( $form_fields, $post ) {
-		$form_fields = array( 'image-size' => $form_fields['image-size'] );
-		$form_fields['buttons'] = array( 'tr' => '<tr class="submit"><td></td><td><a data-attachment-id="' . $post->ID . '" class="wp-set-background">' . __( 'Set as background' ) . '</a></td></tr>' );
-		$form_fields['context'] = array( 'input' => 'hidden', 'value' => 'custom-background' );
-
+	function attachment_fields_to_edit( $form_fields ) {
 		return $form_fields;
 	}
 
 	/**
-	 * Leave only "Media Library" tab in the uploader window.
+	 * Unused since 3.5.0.
 	 *
 	 * @since 3.4.0
 	 */
-	function filter_upload_tabs() {
-		return array( 'library' => __('Media Library') );
+	function filter_upload_tabs( $tabs ) {
+		return $tabs;
 	}
 
 	public function wp_set_background_image() {
--- a/web/wp-admin/custom-header.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-admin/custom-header.php	Wed Dec 19 17:46:52 2012 -0800
@@ -93,12 +93,6 @@
 		add_action("admin_head-$page", array(&$this, 'js'), 50);
 		if ( $this->admin_header_callback )
 			add_action("admin_head-$page", $this->admin_header_callback, 51);
-
-		if ( isset( $_REQUEST['context'] ) && $_REQUEST['context'] == 'custom-header' ) {
-			add_filter( 'attachment_fields_to_edit', array( $this, 'attachment_fields_to_edit' ), 10, 2 );
-			add_filter( 'media_upload_tabs', array( $this, 'filter_upload_tabs' ) );
-			add_filter( 'media_upload_mime_type_links', '__return_empty_array' );
-		}
 	}
 
 	/**
@@ -130,8 +124,8 @@
 			'title'   => __('Header Text'),
 			'content' =>
 				'<p>' . sprintf( __( 'For most themes, the header text is your Site Title and Tagline, as defined in the <a href="%1$s">General Settings</a> section.' ), admin_url( 'options-general.php' ) ) . '<p>' .
-				'<p>' . __( 'In the Header Text section of this page, you can choose whether to display this text or hide it. You can also choose a color for the text by typing in a legitimate HTML hex value (eg: &#8220;#ff0000&#8221; for red) or by clicking &#8220;Select a Color&#8221; and dialing in a color using the color picker.') . '</p>' .
-				'<p>' . __( 'Don&#8217;t forget to Save Changes when you&#8217;re done!') . '</p>'
+				'<p>' . __( 'In the Header Text section of this page, you can choose whether to display this text or hide it. You can also choose a color for the text by clicking the Select Color button and either typing in a legitimate HTML hex value, e.g. &#8220;#ff0000&#8221; for red, or by choosing a color using the color picker.' ) . '</p>' .
+				'<p>' . __( 'Don&#8217;t forget to click &#8220;Save Changes&#8221; when you&#8217;re done!') . '</p>'
 		) );
 
 		get_current_screen()->set_help_sidebar(
@@ -171,11 +165,10 @@
 		$step = $this->step();
 
 		if ( ( 1 == $step || 3 == $step ) ) {
-			add_thickbox();
-			wp_enqueue_script( 'media-upload' );
+			wp_enqueue_media();
 			wp_enqueue_script( 'custom-header' );
 			if ( current_theme_supports( 'custom-header', 'header-text' ) )
-				wp_enqueue_script('farbtastic');
+				wp_enqueue_script( 'wp-color-picker' );
 		} elseif ( 2 == $step ) {
 			wp_enqueue_script('imgareaselect');
 		}
@@ -190,7 +183,7 @@
 		$step = $this->step();
 
 		if ( ( 1 == $step || 3 == $step ) && current_theme_supports( 'custom-header', 'header-text' ) )
-			wp_enqueue_style('farbtastic');
+			wp_enqueue_style( 'wp-color-picker' );
 		elseif ( 2 == $step )
 			wp_enqueue_style('imgareaselect');
 	}
@@ -215,12 +208,6 @@
 			return;
 		}
 
-		if ( isset( $_POST['resettext'] ) ) {
-			check_admin_referer( 'custom-header-options', '_wpnonce-custom-header-options' );
-			remove_theme_mod('header_textcolor');
-			return;
-		}
-
 		if ( isset( $_POST['removeheader'] ) ) {
 			check_admin_referer( 'custom-header-options', '_wpnonce-custom-header-options' );
 			$this->remove_header_image();
@@ -332,7 +319,6 @@
 	function js_1() { ?>
 <script type="text/javascript">
 /* <![CDATA[ */
-var farbtastic;
 (function($){
 	var default_color = '#<?php echo get_theme_support( 'custom-header', 'default-text-color' ); ?>',
 		header_text_fields;
@@ -341,7 +327,6 @@
 		$('#name').css('color', color);
 		$('#desc').css('color', color);
 		$('#text-color').val(color);
-		farbtastic.setColor(color);
 	}
 
 	function toggle_text() {
@@ -360,45 +345,20 @@
 	}
 
 	$(document).ready(function() {
+		var text_color = $('#text-color');
 		header_text_fields = $('.displaying-header-text');
-		$('#pickcolor').click(function(e) {
-			e.preventDefault();
-			$('#color-picker').show();
-		});
-
-		$('#display-header-text').click( toggle_text );
-
-		$('#defaultcolor').click(function() {
-			pickColor(default_color);
-			$('#text-color').val(default_color);
+		text_color.wpColorPicker({
+			change: function( event, ui ) {
+				pickColor( text_color.wpColorPicker('color') );
+			},
+			clear: function() {
+				pickColor( '' );
+			}
 		});
-
-		$('#text-color').keyup(function() {
-			var _hex = $('#text-color').val();
-			var hex = _hex;
-			if ( hex[0] != '#' )
-				hex = '#' + hex;
-			hex = hex.replace(/[^#a-fA-F0-9]+/, '');
-			if ( hex != _hex )
-				$('#text-color').val(hex);
-			if ( hex.length == 4 || hex.length == 7 )
-				pickColor( hex );
-		});
-
-		$(document).mousedown(function(){
-			$('#color-picker').each( function() {
-				var display = $(this).css('display');
-				if (display == 'block')
-					$(this).fadeOut(2);
-			});
-		});
-
-		farbtastic = $.farbtastic('#color-picker', function(color) { pickColor(color); });
-		<?php if ( display_header_text() ) { ?>
-		pickColor('#<?php echo get_header_textcolor(); ?>');
-		<?php } else { ?>
+		$('#display-header-text').click( toggle_text );
+		<?php if ( ! display_header_text() ) : ?>
 		toggle_text();
-		<?php } ?>
+		<?php endif; ?>
 	});
 })(jQuery);
 /* ]]> */
@@ -510,8 +470,14 @@
 	<?php if ( $this->admin_image_div_callback ) {
 	  call_user_func( $this->admin_image_div_callback );
 	} else {
+		$custom_header = get_custom_header();
+		$header_image_style = 'background-image:url(' . esc_url( get_header_image() ) . ');';
+		if ( $custom_header->width )
+			$header_image_style .= 'max-width:' . $custom_header->width . 'px;';
+		if ( $custom_header->height )
+			$header_image_style .= 'height:' . $custom_header->height . 'px;';
 	?>
-	<div id="headimg" style="background-image:url(<?php esc_url ( header_image() ) ?>);max-width:<?php echo get_custom_header()->width; ?>px;height:<?php echo get_custom_header()->height; ?>px;">
+	<div id="headimg" style="<?php echo $header_image_style; ?>">
 		<?php
 		if ( display_header_text() )
 			$style = ' style="color:#' . get_header_textcolor() . ';"';
@@ -528,7 +494,7 @@
 <tr valign="top">
 <th scope="row"><?php _e( 'Select Image' ); ?></th>
 <td>
-	<p><?php _e( 'You can upload a custom header image to be shown at the top of your site instead of the default one. On the next screen you will be able to crop the image.' ); ?><br />
+	<p><?php _e( 'You can select an image to be shown at the top of your site by uploading from your computer or choosing from your media library. After selecting an image you will be able to crop it.' ); ?><br />
 	<?php
 	if ( ! current_theme_supports( 'custom-header', 'flex-height' ) && ! current_theme_supports( 'custom-header', 'flex-width' ) ) {
 		printf( __( 'Images of exactly <strong>%1$d &times; %2$d pixels</strong> will be used as-is.' ) . '<br />', get_theme_support( 'custom-header', 'width' ), get_theme_support( 'custom-header', 'height' ) );
@@ -546,7 +512,7 @@
 			printf( __( 'Suggested height is <strong>%1$d pixels</strong>.' ) . ' ', get_theme_support( 'custom-header', 'height' ) );
 	}
 	?></p>
-	<form enctype="multipart/form-data" id="upload-form" method="post" action="<?php echo esc_attr( add_query_arg( 'step', 2 ) ) ?>">
+	<form enctype="multipart/form-data" id="upload-form" class="wp-upload-form" method="post" action="<?php echo esc_url( add_query_arg( 'step', 2 ) ) ?>">
 	<p>
 		<label for="upload"><?php _e( 'Choose an image from your computer:' ); ?></label><br />
 		<input type="file" id="upload" name="import" />
@@ -555,13 +521,18 @@
 		<?php submit_button( __( 'Upload' ), 'button', 'submit', false ); ?>
 	</p>
 	<?php
-		$image_library_url = get_upload_iframe_src( 'image', null, 'library' );
-		$image_library_url = remove_query_arg( 'TB_iframe', $image_library_url );
-		$image_library_url = add_query_arg( array( 'context' => 'custom-header', 'TB_iframe' => 1 ), $image_library_url );
+		$modal_update_href = esc_url( add_query_arg( array(
+			'page' => 'custom-header',
+			'step' => 2,
+			'_wpnonce-custom-header-upload' => wp_create_nonce('custom-header-upload'),
+		), admin_url('themes.php') ) );
 	?>
 	<p>
 		<label for="choose-from-library-link"><?php _e( 'Or choose an image from your media library:' ); ?></label><br />
-		<a id="choose-from-library-link" class="button thickbox" href="<?php echo esc_url( $image_library_url ); ?>"><?php _e( 'Choose Image' ); ?></a>
+		<a id="choose-from-library-link" class="button"
+			data-update-link="<?php echo esc_attr( $modal_update_href ); ?>"
+			data-choose="<?php esc_attr_e( 'Choose a Custom Header' ); ?>"
+			data-update="<?php esc_attr_e( 'Set as header' ); ?>"><?php _e( 'Choose Image' ); ?></a>
 	</p>
 	</form>
 </td>
@@ -570,7 +541,7 @@
 </tbody>
 </table>
 
-<form method="post" action="<?php echo esc_attr( add_query_arg( 'step', 1 ) ) ?>">
+<form method="post" action="<?php echo esc_url( add_query_arg( 'step', 1 ) ) ?>">
 <table class="form-table">
 <tbody>
 	<?php if ( get_uploaded_header_images() ) : ?>
@@ -641,27 +612,20 @@
 <th scope="row"><?php _e( 'Text Color' ); ?></th>
 <td>
 	<p>
-<?php if ( display_header_text() ) : ?>
-		<input type="text" name="text-color" id="text-color" value="#<?php echo esc_attr( get_header_textcolor() ); ?>" />
-<?php else : ?>
-		<input type="text" name="text-color" id="text-color" value="#<?php echo esc_attr( get_theme_support( 'custom-header', 'default-text-color' ) ); ?>" />
-<?php endif; ?>
-		<a href="#" class="hide-if-no-js" id="pickcolor"><?php _e( 'Select a Color' ); ?></a>
+<?php
+$header_textcolor = display_header_text() ? get_header_textcolor() : get_theme_support( 'custom-header', 'default-text-color' );
+$default_color = '';
+if ( current_theme_supports( 'custom-header', 'default-text-color' ) ) {
+	$default_color = '#' . get_theme_support( 'custom-header', 'default-text-color' );
+	$default_color_attr = ' data-default-color="' . esc_attr( $default_color ) . '"';
+	echo '<input type="text" name="text-color" id="text-color" value="#' . esc_attr( $header_textcolor ) . '"' . $default_color_attr . ' />';
+	if ( $default_color )
+		echo ' <span class="description hide-if-js">' . sprintf( _x( 'Default: %s', 'color' ), $default_color ) . '</span>';
+}
+?>
 	</p>
-	<div id="color-picker" style="z-index: 100; background:#eee; border:1px solid #ccc; position:absolute; display:none;"></div>
 </td>
 </tr>
-
-	<?php if ( current_theme_supports( 'custom-header', 'default-text-color' ) && get_theme_mod( 'header_textcolor' ) ) { ?>
-<tr valign="top">
-<th scope="row"><?php _e('Reset Text Color'); ?></th>
-<td>
-	<p><?php _e( 'This will restore the original header text. You will not be able to restore any customizations.' ) ?></p>
-	<?php submit_button( __( 'Restore Original Header Text' ), 'button', 'resettext', false ); ?>
-</td>
-</tr>
-	<?php } ?>
-
 </tbody>
 </table>
 <?php endif;
@@ -745,7 +709,7 @@
 <?php screen_icon(); ?>
 <h2><?php _e( 'Crop Header Image' ); ?></h2>
 
-<form method="post" action="<?php echo esc_attr(add_query_arg('step', 3)); ?>">
+<form method="post" action="<?php echo esc_url(add_query_arg('step', 3)); ?>">
 	<p class="hide-if-no-js"><?php _e('Choose the part of the image you want to use as your header.'); ?></p>
 	<p class="hide-if-js"><strong><?php _e( 'You need Javascript to choose a part of the image.'); ?></strong></p>
 
@@ -767,7 +731,7 @@
 	<p class="submit">
 	<?php submit_button( __( 'Crop and Publish' ), 'primary', 'submit', false ); ?>
 	<?php
-	if ( isset( $oitar ) && 1 == $oitar )
+	if ( isset( $oitar ) && 1 == $oitar && ( current_theme_supports( 'custom-header', 'flex-height' ) || current_theme_supports( 'custom-header', 'flex-width' ) ) )
 		submit_button( __( 'Skip Cropping, Publish Image as Is' ), 'secondary', 'skip-cropping', false );
 	?>
 	</p>
@@ -784,7 +748,13 @@
 	 */
 	function step_2_manage_upload() {
 		$overrides = array('test_form' => false);
-		$file = wp_handle_upload($_FILES['import'], $overrides);
+
+		$uploaded_file = $_FILES['import'];
+		$wp_filetype = wp_check_filetype_and_ext( $uploaded_file['tmp_name'], $uploaded_file['name'], false );
+		if ( ! wp_match_mime_types( 'image', $wp_filetype['type'] ) )
+			wp_die( __( 'The uploaded file is not a valid image. Please try again.' ) );
+
+		$file = wp_handle_upload($uploaded_file, $overrides);
 
 		if ( isset($file['error']) )
 			wp_die( $file['error'],  __( 'Image Upload Error' ) );
@@ -819,6 +789,9 @@
 		if ( ! current_theme_supports( 'custom-header', 'uploads' ) )
 			wp_die( __( 'Cheatin&#8217; uh?' ) );
 
+		if ( ! empty( $_POST['skip-cropping'] ) && ! ( current_theme_supports( 'custom-header', 'flex-height' ) || current_theme_supports( 'custom-header', 'flex-width' ) ) )
+			wp_die( __( 'Cheatin&#8217; uh?' ) );
+
 		if ( $_POST['oitar'] > 1 ) {
 			$_POST['x1'] = $_POST['x1'] * $_POST['oitar'];
 			$_POST['y1'] = $_POST['y1'] * $_POST['oitar'];
@@ -930,32 +903,21 @@
 	}
 
 	/**
-	 * Replace default attachment actions with "Set as header" link.
+	 * Unused since 3.5.0.
 	 *
 	 * @since 3.4.0
 	 */
-	function attachment_fields_to_edit( $form_fields, $post ) {
-		$form_fields = array();
-		$href = esc_url(add_query_arg(array(
-			'page' => 'custom-header',
-			'step' => 2,
-			'_wpnonce-custom-header-upload' => wp_create_nonce('custom-header-upload'),
-			'file' => $post->ID
-		), admin_url('themes.php')));
-
-		$form_fields['buttons'] = array( 'tr' => '<tr class="submit"><td></td><td><a data-location="' . $href . '" class="wp-set-header">' . __( 'Set as header' ) . '</a></td></tr>' );
-		$form_fields['context'] = array( 'input' => 'hidden', 'value' => 'custom-header' );
-
+	function attachment_fields_to_edit( $form_fields ) {
 		return $form_fields;
 	}
 
 	/**
-	 * Leave only "Media Library" tab in the uploader window.
+	 * Unused since 3.5.0.
 	 *
 	 * @since 3.4.0
 	 */
-	function filter_upload_tabs() {
-		return array( 'library' => __('Media Library') );
+	function filter_upload_tabs( $tabs ) {
+		return $tabs;
 	}
 
 	/**
--- a/web/wp-admin/customize.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-admin/customize.php	Wed Dec 19 17:46:52 2012 -0800
@@ -44,7 +44,7 @@
 wp_user_settings();
 _wp_admin_html_begin();
 
-$body_class = '';
+$body_class = 'wp-core-ui';
 
 if ( wp_is_mobile() ) :
 	$body_class .= ' mobile';
@@ -57,6 +57,10 @@
 if ( $is_ios )
 	$body_class .= ' ios';
 
+if ( is_rtl() )
+	$body_class .=  ' rtl';
+$body_class .= ' locale-' . sanitize_html_class( strtolower( str_replace( '_', '-', get_locale() ) ) );
+
 $admin_title = sprintf( __( '%1$s &#8212; WordPress' ), strip_tags( sprintf( __( 'Customize %s' ), $wp_customize->theme()->display('Name') ) ) );
 ?><title><?php echo $admin_title; ?></title><?php
 
@@ -67,12 +71,13 @@
 <body class="<?php echo esc_attr( $body_class ); ?>">
 <div class="wp-full-overlay expanded">
 	<form id="customize-controls" class="wrap wp-full-overlay-sidebar">
+
 		<div id="customize-header-actions" class="wp-full-overlay-header">
 			<?php
 				$save_text = $wp_customize->is_theme_active() ? __( 'Save &amp; Publish' ) : __( 'Save &amp; Activate' );
-				submit_button( $save_text, 'primary', 'save', false );
+				submit_button( $save_text, 'primary save', 'save', false );
 			?>
-			<img src="<?php echo esc_url( admin_url( 'images/wpspin_light.gif' ) ); ?>" />
+			<span class="spinner"></span>
 			<a class="back button" href="<?php echo esc_url( $return ? $return : admin_url( 'themes.php' ) ); ?>">
 				<?php _e( 'Cancel' ); ?>
 			</a>
@@ -83,9 +88,9 @@
 			$cannot_expand = ! ( $screenshot || $wp_customize->theme()->get('Description') );
 		?>
 
-		<div class="wp-full-overlay-sidebar-content">
+		<div class="wp-full-overlay-sidebar-content" tabindex="-1">
 			<div id="customize-info" class="customize-section<?php if ( $cannot_expand ) echo ' cannot-expand'; ?>">
-				<div class="customize-section-title">
+				<div class="customize-section-title" aria-label="<?php esc_attr_e( 'Theme Customizer Options' ); ?>" tabindex="0">
 					<span class="preview-notice"><?php
 						/* translators: %s is the theme name in the Customize/Live Preview pane */
 						echo sprintf( __( 'You are previewing %s' ), '<strong class="theme-name">' . $wp_customize->theme()->display('Name') . '</strong>' );
--- a/web/wp-admin/edit-comments.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-admin/edit-comments.php	Wed Dec 19 17:46:52 2012 -0800
@@ -124,7 +124,7 @@
 		'<p>' . __( 'A yellow row means the comment is waiting for you to moderate it.' ) . '</p>' .
 		'<p>' . __( 'In the <strong>Author</strong> column, in addition to the author&#8217;s name, email address, and blog URL, the commenter&#8217;s IP address is shown. Clicking on this link will show you all the comments made from this IP address.' ) . '</p>' .
 		'<p>' . __( 'In the <strong>Comment</strong> column, above each comment it says &#8220;Submitted on,&#8221; followed by the date and time the comment was left on your site. Clicking on the date/time link will take you to that comment on your live site. Hovering over any comment gives you options to approve, reply (and approve), quick edit, edit, spam mark, or trash that comment.' ) . '</p>' .
-		'<p>' . __( 'In the <strong>In Response To</strong> column, there are three elements. The text is the name of the post that inspired the comment, and links to the post editor for that entry. The View Post link leads to that post on your live site. The small bubble with the number in it shows how many comments that post has received. If the bubble is gray, you have moderated all comments for that post. If it is blue, there are pending comments. Clicking the bubble will filter the comments screen to show only comments on that post.' ) . '</p>' .
+		'<p>' . __( 'In the <strong>In Response To</strong> column, there are three elements. The text is the name of the post that inspired the comment, and links to the post editor for that entry. The View Post link leads to that post on your live site. The small bubble with the number in it shows the number of approved comments that post has received. If the bubble is gray, you have moderated all comments for that post. If it is blue, there are pending comments. Clicking the bubble will filter the comments screen to show only comments on that post.' ) . '</p>' .
 		'<p>' . __( 'Many people take advantage of keyboard shortcuts to moderate their comments more quickly. Use the link to the side to learn more.' ) . '</p>'
 ) );
 
--- a/web/wp-admin/edit-form-advanced.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-admin/edit-form-advanced.php	Wed Dec 19 17:46:52 2012 -0800
@@ -15,11 +15,6 @@
 if ( wp_is_mobile() )
 	wp_enqueue_script( 'jquery-touch-punch' );
 
-if ( post_type_supports($post_type, 'editor') || post_type_supports($post_type, 'thumbnail') ) {
-	add_thickbox();
-	wp_enqueue_script('media-upload');
-}
-
 /**
  * Post ID global
  * @name $post_ID
@@ -29,6 +24,11 @@
 $user_ID = isset($user_ID) ? (int) $user_ID : 0;
 $action = isset($action) ? $action : '';
 
+if ( post_type_supports($post_type, 'editor') || post_type_supports($post_type, 'thumbnail') ) {
+	add_thickbox();
+	wp_enqueue_media( array( 'post' => $post_ID ) );
+}
+
 $messages = array();
 $messages['post'] = array(
 	 0 => '', // Unused. Messages start at index 1.
@@ -59,6 +59,7 @@
 	 9 => sprintf( __('Page scheduled for: <strong>%1$s</strong>. <a target="_blank" href="%2$s">Preview page</a>'), date_i18n( __( 'M j, Y @ G:i' ), strtotime( $post->post_date ) ), esc_url( get_permalink($post_ID) ) ),
 	10 => sprintf( __('Page draft updated. <a target="_blank" href="%s">Preview page</a>'), esc_url( add_query_arg( 'preview', 'true', get_permalink($post_ID) ) ) ),
 );
+$messages['attachment'] = array_fill( 1, 10, __( 'Media attachment updated.' ) ); // Hack, for now.
 
 $messages = apply_filters( 'post_updated_messages', $messages );
 
@@ -83,7 +84,7 @@
 }
 
 $form_action = 'editpost';
-$nonce_action = 'update-' . $post_type . '_' . $post_ID;
+$nonce_action = 'update-post_' . $post_ID;
 $form_extra .= "<input type='hidden' id='post_ID' name='post_ID' value='" . esc_attr($post_ID) . "' />";
 
 // Detect if there exists an autosave newer than the post and if that autosave is different than the post
@@ -102,13 +103,20 @@
 // All meta boxes should be defined and added before the first do_meta_boxes() call (or potentially during the do_meta_boxes action).
 require_once('./includes/meta-boxes.php');
 
-add_meta_box('submitdiv', __('Publish'), 'post_submit_meta_box', null, 'side', 'core');
+if ( 'attachment' == $post_type ) {
+	wp_enqueue_script( 'image-edit' );
+	wp_enqueue_style( 'imgareaselect' );
+	add_meta_box( 'submitdiv', __('Save'), 'attachment_submit_meta_box', null, 'side', 'core' );
+	add_action( 'edit_form_after_title', 'edit_form_image_editor' );
+} else {
+	add_meta_box( 'submitdiv', __( 'Publish' ), 'post_submit_meta_box', null, 'side', 'core' );
+}
 
 if ( current_theme_supports( 'post-formats' ) && post_type_supports( $post_type, 'post-formats' ) )
 	add_meta_box( 'formatdiv', _x( 'Format', 'post format' ), 'post_format_meta_box', null, 'side', 'core' );
 
 // all taxonomies
-foreach ( get_object_taxonomies($post_type) as $tax_name ) {
+foreach ( get_object_taxonomies( $post ) as $tax_name ) {
 	$taxonomy = get_taxonomy($tax_name);
 	if ( ! $taxonomy->show_ui )
 		continue;
@@ -140,10 +148,10 @@
 if ( post_type_supports($post_type, 'comments') )
 	add_meta_box('commentstatusdiv', __('Discussion'), 'post_comment_status_meta_box', null, 'normal', 'core');
 
-if ( ('publish' == $post->post_status || 'private' == $post->post_status) && post_type_supports($post_type, 'comments') )
+if ( ( 'publish' == get_post_status( $post ) || 'private' == get_post_status( $post ) ) && post_type_supports($post_type, 'comments') )
 	add_meta_box('commentsdiv', __('Comments'), 'post_comment_meta_box', null, 'normal', 'core');
 
-if ( !( 'pending' == $post->post_status && !current_user_can( $post_type_object->cap->publish_posts ) ) )
+if ( ! ( 'pending' == get_post_status( $post ) && ! current_user_can( $post_type_object->cap->publish_posts ) ) )
 	add_meta_box('slugdiv', __('Slug'), 'post_slug_meta_box', null, 'normal', 'core');
 
 if ( post_type_supports($post_type, 'author') ) {
@@ -164,7 +172,7 @@
 add_screen_option('layout_columns', array('max' => 2, 'default' => 2) );
 
 if ( 'post' == $post_type ) {
-	$customize_display = '<p>' . __('The title field and the big Post Editing Area are fixed in place, but you can reposition all the other boxes using drag and drop, and can minimize or expand them by clicking the title bar of each box. Use the Screen Options tab to unhide more boxes (Excerpt, Send Trackbacks, Custom Fields, Discussion, Slug, Author) or to choose a 1- or 2-column layout for this screen.') . '</p>';
+	$customize_display = '<p>' . __('The title field and the big Post Editing Area are fixed in place, but you can reposition all the other boxes using drag and drop. You can also minimize or expand them by clicking the title bar of each box. Use the Screen Options tab to unhide more boxes (Excerpt, Send Trackbacks, Custom Fields, Discussion, Slug, Author) or to choose a 1- or 2-column layout for this screen.') . '</p>';
 
 	get_current_screen()->add_help_tab( array(
 		'id'      => 'customize-display',
@@ -173,7 +181,7 @@
 	) );
 
 	$title_and_editor  = '<p>' . __('<strong>Title</strong> - Enter a title for your post. After you enter a title, you&#8217;ll see the permalink below, which you can edit.') . '</p>';
-	$title_and_editor .= '<p>' . __('<strong>Post editor</strong> - Enter the text for your post. There are two modes of editing: Visual and HTML. Choose the mode by clicking on the appropriate tab. Visual mode gives you a WYSIWYG editor. Click the last icon in the row to get a second row of controls. The HTML mode allows you to enter raw HTML along with your post text. You can insert media files by clicking the icons above the post editor and following the directions. You can go to the distraction-free writing screen via the Fullscreen icon in Visual mode (second to last in the top row) or the Fullscreen button in HTML mode (last in the row). Once there, you can make buttons visible by hovering over the top area. Exit Fullscreen back to the regular post editor.') . '</p>';
+	$title_and_editor .= '<p>' . __('<strong>Post editor</strong> - Enter the text for your post. There are two modes of editing: Visual and Text. Choose the mode by clicking on the appropriate tab. Visual mode gives you a WYSIWYG editor. Click the last icon in the row to get a second row of controls. The Text mode allows you to enter HTML along with your post text. Line breaks will be converted to paragraphs automatically. You can insert media files by clicking the icons above the post editor and following the directions. You can go to the distraction-free writing screen via the Fullscreen icon in Visual mode (second to last in the top row) or the Fullscreen button in Text mode (last in the row). Once there, you can make buttons visible by hovering over the top area. Exit Fullscreen back to the regular post editor.') . '</p>';
 
 	get_current_screen()->add_help_tab( array(
 		'id'      => 'title-post-editor',
@@ -181,19 +189,74 @@
 		'content' => $title_and_editor,
 	) );
 
-	$publish_box = '<p>' . __('<strong>Publish</strong> - You can set the terms of publishing your post in the Publish box. For Status, Visibility, and Publish (immediately), click on the Edit link to reveal more options. Visibility includes options for password-protecting a post or making it stay at the top of your blog indefinitely (sticky). Publish (immediately) allows you to set a future or past date and time, so you can schedule a post to be published in the future or backdate a post.') . '</p>';
+	get_current_screen()->set_help_sidebar(
+			'<p>' . sprintf(__('You can also create posts with the <a href="%s">Press This bookmarklet</a>.'), 'options-writing.php') . '</p>' .
+			'<p><strong>' . __('For more information:') . '</strong></p>' .
+			'<p>' . __('<a href="http://codex.wordpress.org/Posts_Add_New_Screen" target="_blank">Documentation on Writing and Editing Posts</a>') . '</p>' .
+			'<p>' . __('<a href="http://wordpress.org/support/" target="_blank">Support Forums</a>') . '</p>'
+	);
+} elseif ( 'page' == $post_type ) {
+	$about_pages = '<p>' . __('Pages are similar to Posts in that they have a title, body text, and associated metadata, but they are different in that they are not part of the chronological blog stream, kind of like permanent posts. Pages are not categorized or tagged, but can have a hierarchy. You can nest Pages under other Pages by making one the &#8220;Parent&#8221; of the other, creating a group of Pages.') . '</p>' .
+		'<p>' . __('Creating a Page is very similar to creating a Post, and the screens can be customized in the same way using drag and drop, the Screen Options tab, and expanding/collapsing boxes as you choose. This screen also has the distraction-free writing space, available in both the Visual and Text modes via the Fullscreen buttons. The Page editor mostly works the same as the Post editor, but there are some Page-specific features in the Page Attributes box:') . '</p>';
+
+	get_current_screen()->add_help_tab( array(
+		'id'      => 'about-pages',
+		'title'   => __('About Pages'),
+		'content' => $about_pages,
+	) );
+
+	get_current_screen()->set_help_sidebar(
+			'<p><strong>' . __('For more information:') . '</strong></p>' .
+			'<p>' . __('<a href="http://codex.wordpress.org/Pages_Add_New_Screen" target="_blank">Documentation on Adding New Pages</a>') . '</p>' .
+			'<p>' . __('<a href="http://codex.wordpress.org/Pages_Screen#Editing_Individual_Pages" target="_blank">Documentation on Editing Pages</a>') . '</p>' .
+			'<p>' . __('<a href="http://wordpress.org/support/" target="_blank">Support Forums</a>') . '</p>'
+	);
+} elseif ( 'attachment' == $post_type ) {
+	get_current_screen()->add_help_tab( array(
+		'id'      => 'overview',
+		'title'   => __('Overview'),
+		'content' =>
+			'<p>' . __('This screen allows you to edit four fields for metadata in a file within the media library.') . '</p>' .
+			'<p>' . __('For images only, you can click on Edit Image under the thumbnail to expand out an inline image editor with icons for cropping, rotating, or flipping the image as well as for undoing and redoing. The boxes on the right give you more options for scaling the image, for cropping it, and for cropping the thumbnail in a different way than you crop the original image. You can click on Help in those boxes to get more information.') . '</p>' .
+			'<p>' . __('Note that you crop the image by clicking on it (the Crop icon is already selected) and dragging the cropping frame to select the desired part. Then click Save to retain the cropping.') . '</p>' .
+			'<p>' . __('Remember to click Update Media to save metadata entered or changed.') . '</p>'
+	) );
+
+	get_current_screen()->set_help_sidebar(
+	'<p><strong>' . __('For more information:') . '</strong></p>' .
+	'<p>' . __('<a href="http://codex.wordpress.org/Media_Add_New_Screen#Edit_Media" target="_blank">Documentation on Edit Media</a>') . '</p>' .
+	'<p>' . __('<a href="http://wordpress.org/support/" target="_blank">Support Forums</a>') . '</p>'
+	);
+}
+
+if ( 'post' == $post_type || 'page' == $post_type ) {
+	$inserting_media = '<p>' . __( 'You can upload and insert media (images, audio, documents, etc.) by clicking the Add Media button. You can select from the images and files already uploaded to the Media Library, or upload new media to add to your page or post. To create an image gallery, select the images to add and click the &#8220;Create a new gallery&#8221; button.' ) . '</p>';
+	$inserting_media .= '<p>' . __( 'You can also embed media from many popular websites including Twitter, YouTube, Flickr and others by pasting the media URL on its own line into the content of your post/page. Please refer to the Codex to <a href="http://codex.wordpress.org/Embeds">learn more about embeds</a>.' ) . '</p>';
+
+	get_current_screen()->add_help_tab( array(
+		'id'		=> 'inserting-media',
+		'title'		=> __( 'Inserting Media' ),
+		'content' 	=> $inserting_media,
+	) );
+}
+
+if ( 'post' == $post_type ) {
+	$publish_box = '<p>' . __('Several boxes on this screen contain settings for how your content will be published, including:') . '</p>';
+	$publish_box .= '<ul><li>' . __('<strong>Publish</strong> - You can set the terms of publishing your post in the Publish box. For Status, Visibility, and Publish (immediately), click on the Edit link to reveal more options. Visibility includes options for password-protecting a post or making it stay at the top of your blog indefinitely (sticky). Publish (immediately) allows you to set a future or past date and time, so you can schedule a post to be published in the future or backdate a post.') . '</li>';
 
 	if ( current_theme_supports( 'post-formats' ) && post_type_supports( 'post', 'post-formats' ) ) {
-		$publish_box .= '<p>' . __( '<strong>Post Format</strong> - This designates how your theme will display a specific post. For example, you could have a <em>standard</em> blog post with a title and paragraphs, or a short <em>aside</em> that omits the title and contains a short text blurb. Please refer to the Codex for <a href="http://codex.wordpress.org/Post_Formats#Supported_Formats">descriptions of each post format</a>. Your theme could enable all or some of 10 possible formats.' ) . '</p>';
+		$publish_box .= '<li>' . __( '<strong>Format</strong> - Post Formats designate how your theme will display a specific post. For example, you could have a <em>standard</em> blog post with a title and paragraphs, or a short <em>aside</em> that omits the title and contains a short text blurb. Please refer to the Codex for <a href="http://codex.wordpress.org/Post_Formats#Supported_Formats">descriptions of each post format</a>. Your theme could enable all or some of 10 possible formats.' ) . '</li>';
 	}
 
 	if ( current_theme_supports( 'post-thumbnails' ) && post_type_supports( 'post', 'thumbnail' ) ) {
-		$publish_box .= '<p>' . __('<strong>Featured Image</strong> - This allows you to associate an image with your post without inserting it. This is usually useful only if your theme makes use of the featured image as a post thumbnail on the home page, a custom header, etc.') . '</p>';
+		$publish_box .= '<li>' . __('<strong>Featured Image</strong> - This allows you to associate an image with your post without inserting it. This is usually useful only if your theme makes use of the featured image as a post thumbnail on the home page, a custom header, etc.') . '</li>';
 	}
 
+	$publish_box .= '</ul>';
+
 	get_current_screen()->add_help_tab( array(
 		'id'      => 'publish-box',
-		'title'   => __('Publish Box'),
+		'title'   => __('Publish Settings'),
 		'content' => $publish_box,
 	) );
 
@@ -205,23 +268,7 @@
 		'title'   => __('Discussion Settings'),
 		'content' => $discussion_settings,
 	) );
-
-	get_current_screen()->set_help_sidebar(
-			'<p>' . sprintf(__('You can also create posts with the <a href="%s">Press This bookmarklet</a>.'), 'options-writing.php') . '</p>' .
-			'<p><strong>' . __('For more information:') . '</strong></p>' .
-			'<p>' . __('<a href="http://codex.wordpress.org/Posts_Add_New_Screen" target="_blank">Documentation on Writing and Editing Posts</a>') . '</p>' .
-			'<p>' . __('<a href="http://wordpress.org/support/" target="_blank">Support Forums</a>') . '</p>'
-	);
 } elseif ( 'page' == $post_type ) {
-	$about_pages = '<p>' . __('Pages are similar to Posts in that they have a title, body text, and associated metadata, but they are different in that they are not part of the chronological blog stream, kind of like permanent posts. Pages are not categorized or tagged, but can have a hierarchy. You can nest Pages under other Pages by making one the &#8220;Parent&#8221; of the other, creating a group of Pages.') . '</p>' .
-		'<p>' . __('Creating a Page is very similar to creating a Post, and the screens can be customized in the same way using drag and drop, the Screen Options tab, and expanding/collapsing boxes as you choose. This screen also has the distraction-free writing space, available in both the Visual and HTML modes via the Fullscreen buttons. The Page editor mostly works the same as the Post editor, but there are some Page-specific features in the Page Attributes box:') . '</p>';
-
-	get_current_screen()->add_help_tab( array(
-		'id'      => 'about-pages',
-		'title'   => __('About Pages'),
-		'content' => $about_pages,
-	) );
-
 	$page_attributes = '<p>' . __('<strong>Parent</strong> - You can arrange your pages in hierarchies. For example, you could have an &#8220;About&#8221; page that has &#8220;Life Story&#8221; and &#8220;My Dog&#8221; pages under it. There are no limits to how many levels you can nest pages.') . '</p>' .
 		'<p>' . __('<strong>Template</strong> - Some themes have custom templates you can use for certain pages that might have additional features or custom layouts. If so, you&#8217;ll see them in this dropdown menu.') . '</p>' .
 		'<p>' . __('<strong>Order</strong> - Pages are usually ordered alphabetically, but you can choose your own order by entering a number (1 for first, etc.) in this field.') . '</p>';
@@ -231,13 +278,6 @@
 		'title' => __('Page Attributes'),
 		'content' => $page_attributes,
 	) );
-
-	get_current_screen()->set_help_sidebar(
-			'<p><strong>' . __('For more information:') . '</strong></p>' .
-			'<p>' . __('<a href="http://codex.wordpress.org/Pages_Add_New_Screen" target="_blank">Documentation on Adding New Pages</a>') . '</p>' .
-			'<p>' . __('<a href="http://codex.wordpress.org/Pages_Screen#Editing_Individual_Pages" target="_blank">Documentation on Editing Pages</a>') . '</p>' .
-			'<p>' . __('<a href="http://wordpress.org/support/" target="_blank">Support Forums</a>') . '</p>'
-	);
 }
 
 require_once('./admin-header.php');
@@ -245,7 +285,11 @@
 
 <div class="wrap">
 <?php screen_icon(); ?>
-<h2><?php echo esc_html( $title ); ?><?php if ( isset( $post_new_file ) ) : ?> <a href="<?php echo esc_url( $post_new_file ) ?>" class="add-new-h2"><?php echo esc_html($post_type_object->labels->add_new); ?></a><?php endif; ?></h2>
+<h2><?php
+echo esc_html( $title );
+if ( isset( $post_new_file ) && current_user_can( $post_type_object->cap->create_posts ) )
+	echo ' <a href="' . esc_url( $post_new_file ) . '" class="add-new-h2">' . esc_html( $post_type_object->labels->add_new ) . '</a>';
+?></h2>
 <?php if ( $notice ) : ?>
 <div id="notice" class="error"><p><?php echo $notice ?></p></div>
 <?php endif; ?>
@@ -265,7 +309,7 @@
 <input type="hidden" id="active_post_lock" value="<?php echo esc_attr( implode( ':', $active_post_lock ) ); ?>" />
 <?php
 }
-if ( 'draft' != $post->post_status )
+if ( 'draft' != get_post_status( $post ) )
 	wp_original_referer_field(true, 'previous');
 
 echo $form_extra;
@@ -282,20 +326,20 @@
 <?php if ( post_type_supports($post_type, 'title') ) { ?>
 <div id="titlediv">
 <div id="titlewrap">
-	<label class="hide-if-no-js" style="visibility:hidden" id="title-prompt-text" for="title"><?php echo apply_filters( 'enter_title_here', __( 'Enter title here' ), $post ); ?></label>
-	<input type="text" name="post_title" size="30" tabindex="1" value="<?php echo esc_attr( htmlspecialchars( $post->post_title ) ); ?>" id="title" autocomplete="off" />
+	<label class="screen-reader-text" id="title-prompt-text" for="title"><?php echo apply_filters( 'enter_title_here', __( 'Enter title here' ), $post ); ?></label>
+	<input type="text" name="post_title" size="30" value="<?php echo esc_attr( htmlspecialchars( $post->post_title ) ); ?>" id="title" autocomplete="off" />
 </div>
 <div class="inside">
 <?php
 $sample_permalink_html = $post_type_object->public ? get_sample_permalink_html($post->ID) : '';
 $shortlink = wp_get_shortlink($post->ID, 'post');
 if ( !empty($shortlink) )
-    $sample_permalink_html .= '<input id="shortlink" type="hidden" value="' . esc_attr($shortlink) . '" /><a href="#" class="button" onclick="prompt(&#39;URL:&#39;, jQuery(\'#shortlink\').val()); return false;">' . __('Get Shortlink') . '</a>';
+    $sample_permalink_html .= '<input id="shortlink" type="hidden" value="' . esc_attr($shortlink) . '" /><a href="#" class="button button-small" onclick="prompt(&#39;URL:&#39;, jQuery(\'#shortlink\').val()); return false;">' . __('Get Shortlink') . '</a>';
 
-if ( $post_type_object->public && ! ( 'pending' == $post->post_status && !current_user_can( $post_type_object->cap->publish_posts ) ) ) { ?>
-	<div id="edit-slug-box">
+if ( $post_type_object->public && ! ( 'pending' == get_post_status( $post ) && !current_user_can( $post_type_object->cap->publish_posts ) ) ) { ?>
+	<div id="edit-slug-box" class="hide-if-no-js">
 	<?php
-		if ( ! empty($post->ID) && ! empty($sample_permalink_html) && 'auto-draft' != $post->post_status )
+		if ( $sample_permalink_html && 'auto-draft' != $post->post_status )
 			echo $sample_permalink_html;
 	?>
 	</div>
@@ -306,13 +350,17 @@
 <?php
 wp_nonce_field( 'samplepermalink', 'samplepermalinknonce', false );
 ?>
-</div>
-<?php } ?>
+</div><!-- /titlediv -->
+<?php
+}
 
-<?php if ( post_type_supports($post_type, 'editor') ) { ?>
+do_action( 'edit_form_after_title' );
+
+if ( post_type_supports($post_type, 'editor') ) {
+?>
 <div id="postdivrich" class="postarea">
 
-<?php wp_editor($post->post_content, 'content', array('dfw' => true, 'tabindex' => 1) ); ?>
+<?php wp_editor($post->post_content, 'content', array('dfw' => true, 'tabfocus_elements' => 'sample-permalink,post-preview', 'editor_height' => 360) ); ?>
 
 <table id="post-status-info" cellspacing="0"><tbody><tr>
 	<td id="wp-word-count"><?php printf( __( 'Word count: %s' ), '<span class="word-count">0</span>' ); ?></td>
@@ -334,6 +382,8 @@
 
 </div>
 <?php } ?>
+
+<?php do_action( 'edit_form_after_editor' ); ?>
 </div><!-- /post-body-content -->
 
 <div id="postbox-container-1" class="postbox-container">
@@ -378,7 +428,7 @@
 	wp_comment_reply();
 ?>
 
-<?php if ((isset($post->post_title) && '' == $post->post_title) || (isset($_GET['message']) && 2 > $_GET['message'])) : ?>
+<?php if ( (isset($post->post_title) && '' == $post->post_title) || (isset($_GET['message']) && 2 > $_GET['message']) ) : ?>
 <script type="text/javascript">
 try{document.post.title.focus();}catch(e){}
 </script>
--- a/web/wp-admin/edit-form-comment.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-admin/edit-form-comment.php	Wed Dec 19 17:46:52 2012 -0800
@@ -31,7 +31,7 @@
 <tbody>
 <tr valign="top">
 	<td class="first"><?php _e( 'Name:' ); ?></td>
-	<td><input type="text" name="newcomment_author" size="30" value="<?php echo esc_attr( $comment->comment_author ); ?>" tabindex="1" id="name" /></td>
+	<td><input type="text" name="newcomment_author" size="30" value="<?php echo esc_attr( $comment->comment_author ); ?>" id="name" /></td>
 </tr>
 <tr valign="top">
 	<td class="first">
@@ -42,7 +42,7 @@
 			_e( 'E-mail:' );
 		}
 ?></td>
-	<td><input type="text" name="newcomment_author_email" size="30" value="<?php echo $comment->comment_author_email; ?>" tabindex="2" id="email" /></td>
+	<td><input type="text" name="newcomment_author_email" size="30" value="<?php echo $comment->comment_author_email; ?>" id="email" /></td>
 </tr>
 <tr valign="top">
 	<td class="first">
@@ -53,7 +53,7 @@
 		} else {
 			_e( 'URL:' );
 		} ?></td>
-	<td><input type="text" id="newcomment_author_url" name="newcomment_author_url" size="30" class="code" value="<?php echo esc_attr($comment->comment_author_url); ?>" tabindex="3" /></td>
+	<td><input type="text" id="newcomment_author_url" name="newcomment_author_url" size="30" class="code" value="<?php echo esc_attr($comment->comment_author_url); ?>" /></td>
 </tr>
 </tbody>
 </table>
@@ -98,8 +98,8 @@
 $stamp = __('Submitted on: <b>%1$s</b>');
 $date = date_i18n( $datef, strtotime( $comment->comment_date ) );
 ?>
-<span id="timestamp"><?php printf($stamp, $date); ?></span>&nbsp;<a href="#edit_timestamp" class="edit-timestamp hide-if-no-js" tabindex='4'><?php _e('Edit') ?></a>
-<div id='timestampdiv' class='hide-if-js'><?php touch_time(('editcomment' == $action), 0, 5); ?></div>
+<span id="timestamp"><?php printf($stamp, $date); ?></span>&nbsp;<a href="#edit_timestamp" class="edit-timestamp hide-if-no-js"><?php _e('Edit') ?></a>
+<div id='timestampdiv' class='hide-if-js'><?php touch_time(('editcomment' == $action), 0); ?></div>
 </div>
 </div> <!-- misc actions -->
 <div class="clear"></div>
@@ -110,7 +110,7 @@
 <?php echo "<a class='submitdelete deletion' href='" . wp_nonce_url("comment.php?action=" . ( !EMPTY_TRASH_DAYS ? 'deletecomment' : 'trashcomment' ) . "&amp;c=$comment->comment_ID&amp;_wp_original_http_referer=" . urlencode(wp_get_referer()), 'delete-comment_' . $comment->comment_ID) . "'>" . ( !EMPTY_TRASH_DAYS ? __('Delete Permanently') : __('Move to Trash') ) . "</a>\n"; ?>
 </div>
 <div id="publishing-action">
-<?php submit_button( __( 'Update' ), 'primary', 'save', false, array( 'tabindex' => '4' ) ); ?>
+<?php submit_button( __( 'Update' ), 'primary', 'save', false ); ?>
 </div>
 <div class="clear"></div>
 </div>
--- a/web/wp-admin/edit-link-form.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-admin/edit-link-form.php	Wed Dec 19 17:46:52 2012 -0800
@@ -82,7 +82,7 @@
 <div id="namediv" class="stuffbox">
 <h3><label for="link_name"><?php _ex('Name', 'link name') ?></label></h3>
 <div class="inside">
-	<input type="text" name="link_name" size="30" tabindex="1" value="<?php echo esc_attr($link->link_name); ?>" id="link_name" />
+	<input type="text" name="link_name" size="30" value="<?php echo esc_attr($link->link_name); ?>" id="link_name" />
     <p><?php _e('Example: Nifty blogging software'); ?></p>
 </div>
 </div>
@@ -90,7 +90,7 @@
 <div id="addressdiv" class="stuffbox">
 <h3><label for="link_url"><?php _e('Web Address') ?></label></h3>
 <div class="inside">
-	<input type="text" name="link_url" size="30" class="code" tabindex="1" value="<?php echo esc_attr($link->link_url); ?>" id="link_url" />
+	<input type="text" name="link_url" size="30" class="code" value="<?php echo esc_attr($link->link_url); ?>" id="link_url" />
     <p><?php _e('Example: <code>http://wordpress.org/</code> &#8212; don&#8217;t forget the <code>http://</code>'); ?></p>
 </div>
 </div>
@@ -98,7 +98,7 @@
 <div id="descriptiondiv" class="stuffbox">
 <h3><label for="link_description"><?php _e('Description') ?></label></h3>
 <div class="inside">
-	<input type="text" name="link_description" size="30" tabindex="1" value="<?php echo isset($link->link_description) ? esc_attr($link->link_description) : ''; ?>" id="link_description" />
+	<input type="text" name="link_description" size="30" value="<?php echo isset($link->link_description) ? esc_attr($link->link_description) : ''; ?>" id="link_description" />
     <p><?php _e('This will be shown when someone hovers over the link in the blogroll, or optionally below the link.'); ?></p>
 </div>
 </div>
--- a/web/wp-admin/edit-tag-form.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-admin/edit-tag-form.php	Wed Dec 19 17:46:52 2012 -0800
@@ -62,7 +62,7 @@
 		<tr class="form-field">
 			<th scope="row" valign="top"><label for="description"><?php _ex('Description', 'Taxonomy Description'); ?></label></th>
 			<td><textarea name="description" id="description" rows="5" cols="50" class="large-text"><?php echo $tag->description; // textarea_escaped ?></textarea><br />
-			<span class="description"><?php _e('The description is not prominent by default, however some themes may show it.'); ?></span></td>
+			<span class="description"><?php _e('The description is not prominent by default; however, some themes may show it.'); ?></span></td>
 		</tr>
 		<?php
 		// Back compat hooks
@@ -91,3 +91,6 @@
 ?>
 </form>
 </div>
+<script type="text/javascript">
+try{document.forms.edittag.name.focus();}catch(e){}
+</script>
--- a/web/wp-admin/edit-tags.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-admin/edit-tags.php	Wed Dec 19 17:46:52 2012 -0800
@@ -26,7 +26,7 @@
 $title = $tax->labels->name;
 
 if ( 'post' != $post_type ) {
-	$parent_file = "edit.php?post_type=$post_type";
+	$parent_file = ( 'attachment' == $post_type ) ? 'upload.php' : "edit.php?post_type=$post_type";
 	$submenu_file = "edit-tags.php?taxonomy=$taxonomy&amp;post_type=$post_type";
 } else if ( 'link_category' == $tax->name ) {
 	$parent_file = 'link-manager.php';
@@ -36,7 +36,7 @@
 	$submenu_file = "edit-tags.php?taxonomy=$taxonomy";
 }
 
-add_screen_option( 'per_page', array('label' => $title, 'default' => 20, 'option' => 'edit_' . $tax->name . '_per_page') );
+add_screen_option( 'per_page', array( 'label' => $title, 'default' => 20, 'option' => 'edit_' . $tax->name . '_per_page' ) );
 
 switch ( $wp_list_table->current_action() ) {
 
@@ -195,7 +195,7 @@
 		$help = '<p>' . __( 'You can assign keywords to your posts using <strong>tags</strong>. Unlike categories, tags have no hierarchy, meaning there&#8217;s no relationship from one tag to another.' ) . '</p>';
 
 	if ( 'link_category' == $taxonomy )
-		$help .= '<p>' . __( 'You can delete Link Categories in the Bulk Action pulldown, but that action does not delete the links within the category. Instead, it moves them to the default Link Category.' ) . '</p>';
+		$help .= '<p>' . __( 'You can delete Link Categories in the Bulk Action pull-down, but that action does not delete the links within the category. Instead, it moves them to the default Link Category.' ) . '</p>';
 	else
 		$help .='<p>' . __( 'What&#8217;s the difference between categories and tags? Normally, tags are ad-hoc keywords that identify important information in your post (names, subjects, etc) that may or may not recur in other posts, while categories are pre-determined sections. If you think of your site like a book, the categories are like the Table of Contents and the tags are like the terms in the index.' ) . '</p>';
 
@@ -218,7 +218,7 @@
 			$help .= '<li>' . __( '<strong>Slug</strong> - The &#8220;slug&#8221; is the URL-friendly version of the name. It is usually all lowercase and contains only letters, numbers, and hyphens.' ) . '</li>';
 
 		if ( 'category' == $taxonomy )
-			$help .= '<li>' . __( '<strong>Parent</strong> - Categories, unlike tags, can have a hierarchy. You might have a Jazz category, and under that have children categories for Bebop and Big Band. Totally optional. To create a subcategory, just choose another category from the Parent dropdown.' ) . '</li>';
+			$help .= '<li>' . __( '<strong>Parent</strong> - Categories, unlike tags, can have a hierarchy. You might have a Jazz category, and under that have child categories for Bebop and Big Band. Totally optional. To create a subcategory, just choose another category from the Parent dropdown.' ) . '</li>';
 
 		$help .= '<li>' . __( '<strong>Description</strong> - The description is not prominent by default; however, some themes may display it.' ) . '</li>' .
 		'</ul>' .
@@ -305,7 +305,7 @@
 </div>
 <?php elseif ( 'post_tag' == $taxonomy && current_user_can( 'import' ) ) : ?>
 <div class="form-wrap">
-<p><?php printf(__('Tags can be selectively converted to categories using the <a href="%s">tag to category converter</a>'), 'import.php') ;?>.</p>
+<p><?php printf(__('Tags can be selectively converted to categories using the <a href="%s">tag to category converter</a>.'), 'import.php') ;?></p>
 </div>
 <?php endif;
 do_action('after-' . $taxonomy . '-table', $taxonomy);
@@ -388,7 +388,7 @@
 	do_action('add_tag_form_fields', $taxonomy);
 do_action($taxonomy . '_add_form_fields', $taxonomy);
 
-submit_button( $tax->labels->add_new_item, 'button' );
+submit_button( $tax->labels->add_new_item );
 
 // Back compat hooks. Deprecated in preference to {$taxonomy}_add_form
 if ( 'category' == $taxonomy )
@@ -408,7 +408,9 @@
 
 </div><!-- /col-container -->
 </div><!-- /wrap -->
-
+<script type="text/javascript">
+try{document.forms.addtag['tag-name'].focus();}catch(e){}
+</script>
 <?php $wp_list_table->inline_edit(); ?>
 
 <?php
--- a/web/wp-admin/edit.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-admin/edit.php	Wed Dec 19 17:46:52 2012 -0800
@@ -103,7 +103,7 @@
 		case 'delete':
 			$deleted = 0;
 			foreach( (array) $post_ids as $post_id ) {
-				$post_del = & get_post($post_id);
+				$post_del = get_post($post_id);
 
 				if ( !current_user_can($post_type_object->cap->delete_post, $post_id) )
 					wp_die( __('You are not allowed to delete this item.') );
@@ -215,16 +215,19 @@
 	);
 }
 
-add_screen_option( 'per_page', array('label' => $title, 'default' => 20) );
+add_screen_option( 'per_page', array( 'label' => $title, 'default' => 20, 'option' => 'edit_' . $post_type . '_per_page' ) );
 
 require_once('./admin-header.php');
 ?>
 <div class="wrap">
 <?php screen_icon(); ?>
-<h2><?php echo esc_html( $post_type_object->labels->name ); ?> <a href="<?php echo $post_new_file ?>" class="add-new-h2"><?php echo esc_html($post_type_object->labels->add_new); ?></a> <?php
+<h2><?php
+echo esc_html( $post_type_object->labels->name );
+if ( current_user_can( $post_type_object->cap->create_posts ) )
+	echo ' <a href="' . esc_url( $post_new_file ) . '" class="add-new-h2">' . esc_html( $post_type_object->labels->add_new ) . '</a>';
 if ( ! empty( $_REQUEST['s'] ) )
-	printf( '<span class="subtitle">' . __('Search results for &#8220;%s&#8221;') . '</span>', get_search_query() ); ?>
-</h2>
+	printf( ' <span class="subtitle">' . __('Search results for &#8220;%s&#8221;') . '</span>', get_search_query() );
+?></h2>
 
 <?php if ( isset( $_REQUEST['locked'] ) || isset( $_REQUEST['updated'] ) || isset( $_REQUEST['deleted'] ) || isset( $_REQUEST['trashed'] ) || isset( $_REQUEST['untrashed'] ) ) {
 	$messages = array();
--- a/web/wp-admin/export.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-admin/export.php	Wed Dec 19 17:46:52 2012 -0800
@@ -16,7 +16,12 @@
 require_once('./includes/export.php');
 $title = __('Export');
 
-function add_js() {
+/**
+ * Display JavaScript on the page.
+ *
+ * @since 3.5.0
+ */
+function export_add_js() {
 ?>
 <script type="text/javascript">
 //<![CDATA[
@@ -36,7 +41,7 @@
 </script>
 <?php
 }
-add_action( 'admin_head', 'add_js' );
+add_action( 'admin_head', 'export_add_js' );
 
 get_current_screen()->add_help_tab( array(
 	'id'      => 'overview',
@@ -89,6 +94,8 @@
 		$args['content'] = $_GET['content'];
 	}
 
+	$args = apply_filters( 'export_args', $args );
+
 	export_wp( $args );
 	die();
 }
@@ -204,7 +211,9 @@
 <p><label><input type="radio" name="content" value="<?php echo esc_attr( $post_type->name ); ?>" /> <?php echo esc_html( $post_type->label ); ?></label></p>
 <?php endforeach; ?>
 
-<?php submit_button( __('Download Export File'), 'secondary' ); ?>
+<?php do_action( 'export_filters' ) ?>
+
+<?php submit_button( __('Download Export File') ); ?>
 </form>
 </div>
 
--- a/web/wp-admin/freedoms.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-admin/freedoms.php	Wed Dec 19 17:46:52 2012 -0800
@@ -19,7 +19,7 @@
 
 <h1><?php printf( __( 'Welcome to WordPress %s' ), $display_version ); ?></h1>
 
-<div class="about-text"><?php printf( __( 'Thank you for updating to the latest version! WordPress %s is already making your website better, faster, and more attractive, just like you!' ), $display_version ); ?></div>
+<div class="about-text"><?php printf( __( 'Thank you for updating to the latest version! WordPress %s is more polished and enjoyable than ever before. We hope you like it.' ), $display_version ); ?></div>
 
 <div class="wp-badge"><?php printf( __( 'Version %s' ), $display_version ); ?></div>
 
--- a/web/wp-admin/gears-manifest.php	Wed Dec 19 12:35:13 2012 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,51 +0,0 @@
-<?php
-/**
- * Defines the Gears manifest file for Google Gears offline storage.
- *
- * @package WordPress
- * @subpackage Administration
- */
-
-/**
- * Disable error reporting
- *
- * Set this to error_reporting( E_ALL ) or error_reporting( E_ALL | E_STRICT ) for debugging
- */
-error_reporting(0);
-
-/** Set ABSPATH for execution */
-define( 'ABSPATH', dirname(dirname(__FILE__)) . '/' );
-
-require(ABSPATH . '/wp-admin/includes/manifest.php');
-
-$files = get_manifest();
-
-header( 'Expires: Wed, 11 Jan 1984 05:00:00 GMT' );
-header( 'Last-Modified: ' . gmdate( 'D, d M Y H:i:s' ) . ' GMT' );
-header( 'Cache-Control: no-cache, must-revalidate, max-age=0' );
-header( 'Pragma: no-cache' );
-header( 'Content-Type: application/x-javascript; charset=UTF-8' );
-?>
-{
-"betaManifestVersion" : 1,
-"version" : "<?php echo $man_version; ?>",
-"entries" : [
-<?php
-$entries = '';
-
-foreach ( $files as $file ) {
-	// Set ignoreQuery, defaulting to true
-	$ignore_query = ( isset($file[2]) && !$file[2] ) ? '' : ', "ignoreQuery" : true ';
-
-	// If version is not set, just output the file
-	if ( !isset($file[1]) )
-		$entries .= '{ "url" : "' . $file[0] . '"' . $ignore_query . ' }' . "\n";
-	// Output url and src
-	else
-		$entries .= '{ "url" : "' . $file[0] . '", "src" : "' . $file[0] . '?' . $file[1] . '"' . $ignore_query . ' },' . "\n";
-}
-
-echo trim( trim($entries), ',' );
-?>
-
-]}
Binary file web/wp-admin/images/align-center-2x.png has changed
Binary file web/wp-admin/images/align-center.png has changed
Binary file web/wp-admin/images/align-left-2x.png has changed
Binary file web/wp-admin/images/align-left.png has changed
Binary file web/wp-admin/images/align-none-2x.png has changed
Binary file web/wp-admin/images/align-none.png has changed
Binary file web/wp-admin/images/align-right-2x.png has changed
Binary file web/wp-admin/images/align-right.png has changed
Binary file web/wp-admin/images/archive-link.png has changed
Binary file web/wp-admin/images/arrows-2x.png has changed
Binary file web/wp-admin/images/arrows-dark-2x.png has changed
Binary file web/wp-admin/images/arrows-dark-vs-2x.png has changed
Binary file web/wp-admin/images/arrows-dark-vs.png has changed
Binary file web/wp-admin/images/arrows-dark.png has changed
Binary file web/wp-admin/images/arrows-vs-2x.png has changed
Binary file web/wp-admin/images/arrows-vs.png has changed
Binary file web/wp-admin/images/arrows.png has changed
Binary file web/wp-admin/images/blue-grad.png has changed
Binary file web/wp-admin/images/bubble_bg-2x.gif has changed
Binary file web/wp-admin/images/bubble_bg-rtl-2x.gif has changed
Binary file web/wp-admin/images/button-grad-active.png has changed
Binary file web/wp-admin/images/button-grad.png has changed
Binary file web/wp-admin/images/comment-grey-bubble-2x.png has changed
Binary file web/wp-admin/images/comment-grey-bubble.png has changed
Binary file web/wp-admin/images/date-button-2x.gif has changed
Binary file web/wp-admin/images/date-button.gif has changed
Binary file web/wp-admin/images/ed-bg-vs.gif has changed
Binary file web/wp-admin/images/ed-bg.gif has changed
Binary file web/wp-admin/images/fade-butt.png has changed
Binary file web/wp-admin/images/fav-arrow-rtl.gif has changed
Binary file web/wp-admin/images/fav-arrow.gif has changed
Binary file web/wp-admin/images/fav-vs.png has changed
Binary file web/wp-admin/images/fav.png has changed
Binary file web/wp-admin/images/generic.png has changed
Binary file web/wp-admin/images/gray-grad.png has changed
Binary file web/wp-admin/images/icons32-2x.png has changed
Binary file web/wp-admin/images/icons32-vs-2x.png has changed
Binary file web/wp-admin/images/icons32-vs.png has changed
Binary file web/wp-admin/images/icons32.png has changed
Binary file web/wp-admin/images/imgedit-icons-2x.png has changed
Binary file web/wp-admin/images/imgedit-icons.png has changed
Binary file web/wp-admin/images/list-2x.png has changed
Binary file web/wp-admin/images/list.png has changed
Binary file web/wp-admin/images/loading-publish.gif has changed
Binary file web/wp-admin/images/logo-ghost.png has changed
Binary file web/wp-admin/images/logo.gif has changed
Binary file web/wp-admin/images/marker.png has changed
Binary file web/wp-admin/images/mask.png has changed
Binary file web/wp-admin/images/media-button-2x.png has changed
Binary file web/wp-admin/images/media-button.png has changed
Binary file web/wp-admin/images/menu-2x.png has changed
Binary file web/wp-admin/images/menu-arrow-frame-rtl.png has changed
Binary file web/wp-admin/images/menu-arrow-frame.png has changed
Binary file web/wp-admin/images/menu-arrows.gif has changed
Binary file web/wp-admin/images/menu-bits-rtl-vs.gif has changed
Binary file web/wp-admin/images/menu-bits-rtl.gif has changed
Binary file web/wp-admin/images/menu-bits-vs.gif has changed
Binary file web/wp-admin/images/menu-bits.gif has changed
Binary file web/wp-admin/images/menu-dark-rtl-vs.gif has changed
Binary file web/wp-admin/images/menu-dark-rtl.gif has changed
Binary file web/wp-admin/images/menu-dark-vs.gif has changed
Binary file web/wp-admin/images/menu-dark.gif has changed
Binary file web/wp-admin/images/menu-shadow-rtl.png has changed
Binary file web/wp-admin/images/menu-shadow.png has changed
Binary file web/wp-admin/images/menu-vs-2x.png has changed
Binary file web/wp-admin/images/menu-vs.png has changed
Binary file web/wp-admin/images/menu.png has changed
Binary file web/wp-admin/images/no.png has changed
Binary file web/wp-admin/images/press-this-2x.png has changed
Binary file web/wp-admin/images/press-this.png has changed
Binary file web/wp-admin/images/required.gif has changed
Binary file web/wp-admin/images/resize-2x.gif has changed
Binary file web/wp-admin/images/resize-rtl-2x.gif has changed
Binary file web/wp-admin/images/screen-options-toggle-vs.gif has changed
Binary file web/wp-admin/images/screen-options-toggle.gif has changed
Binary file web/wp-admin/images/screenshots/about-color-picker.png has changed
Binary file web/wp-admin/images/screenshots/about-media.png has changed
Binary file web/wp-admin/images/screenshots/about-retina.png has changed
Binary file web/wp-admin/images/screenshots/about-twenty-twelve.png has changed
Binary file web/wp-admin/images/screenshots/captions-1.png has changed
Binary file web/wp-admin/images/screenshots/captions-2.png has changed
Binary file web/wp-admin/images/screenshots/flex-header-1.png has changed
Binary file web/wp-admin/images/screenshots/flex-header-2.png has changed
Binary file web/wp-admin/images/screenshots/flex-header-3.png has changed
Binary file web/wp-admin/images/screenshots/flex-header-media-library.png has changed
Binary file web/wp-admin/images/screenshots/theme-customizer.png has changed
Binary file web/wp-admin/images/screenshots/twitter-embed-1.png has changed
Binary file web/wp-admin/images/screenshots/twitter-embed-2.png has changed
Binary file web/wp-admin/images/se.png has changed
Binary file web/wp-admin/images/sort-2x.gif has changed
Binary file web/wp-admin/images/stars-2x.png has changed
Binary file web/wp-admin/images/stars-rtl-2x.png has changed
Binary file web/wp-admin/images/stars-rtl.png has changed
Binary file web/wp-admin/images/stars.png has changed
Binary file web/wp-admin/images/toggle-arrow-rtl.gif has changed
Binary file web/wp-admin/images/toggle-arrow.gif has changed
Binary file web/wp-admin/images/upload-classic.png has changed
Binary file web/wp-admin/images/upload-fresh.png has changed
Binary file web/wp-admin/images/welcome-icons-2x.png has changed
Binary file web/wp-admin/images/welcome-icons.png has changed
Binary file web/wp-admin/images/wheel.png has changed
Binary file web/wp-admin/images/white-grad-active.png has changed
Binary file web/wp-admin/images/white-grad.png has changed
Binary file web/wp-admin/images/widgets-arrow-vs.gif has changed
Binary file web/wp-admin/images/widgets-arrow.gif has changed
Binary file web/wp-admin/images/wordpress-logo.png has changed
Binary file web/wp-admin/images/wp-badge.png has changed
Binary file web/wp-admin/images/wp-logo-2x.png has changed
Binary file web/wp-admin/images/wp-logo-vs-2x.png has changed
Binary file web/wp-admin/images/wp-logo-vs.png has changed
Binary file web/wp-admin/images/wp-logo.png has changed
Binary file web/wp-admin/images/wpspin_dark.gif has changed
Binary file web/wp-admin/images/wpspin_light-2x.gif has changed
Binary file web/wp-admin/images/xit-2x.gif has changed
Binary file web/wp-admin/images/yes.png has changed
--- a/web/wp-admin/import.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-admin/import.php	Wed Dec 19 17:46:52 2012 -0800
@@ -29,22 +29,19 @@
 	'<p>' . __('<a href="http://wordpress.org/support/" target="_blank">Support Forums</a>') . '</p>'
 );
 
-$popular_importers = array();
-if ( current_user_can('install_plugins') )
-	$popular_importers = array(
-		'blogger' => array( __('Blogger'), __('Install the Blogger importer to import posts, comments, and users from a Blogger blog.'), 'install' ),
-		'wpcat2tag' => array(__('Categories and Tags Converter'), __('Install the category/tag converter to convert existing categories to tags or tags to categories, selectively.'), 'install', 'wp-cat2tag' ),
-		'livejournal' => array( __( 'LiveJournal' ), __( 'Install the LiveJournal importer to import posts from LiveJournal using their API.' ), 'install' ),
-		'movabletype' => array( __('Movable Type and TypePad'), __('Install the Movable Type importer to import posts and comments from a Movable Type or TypePad blog.'), 'install', 'mt' ),
-		'opml' => array( __('Blogroll'), __('Install the blogroll importer to import links in OPML format.'), 'install' ),
-		'rss' => array( __('RSS'), __('Install the RSS importer to import posts from an RSS feed.'), 'install' ),
-		'tumblr' => array( __('Tumblr'), __('Install the Tumblr importer to import posts &amp; media from Tumblr using their API.'), 'install' ),
-		'wordpress' => array( 'WordPress', __('Install the WordPress importer to import posts, pages, comments, custom fields, categories, and tags from a WordPress export file.'), 'install' )
-	);
+if ( current_user_can( 'install_plugins' ) )
+	$popular_importers = wp_get_popular_importers();
+else
+	$popular_importers = array();
 
-if ( ! empty( $_GET['invalid'] ) && !empty($popular_importers[$_GET['invalid']][3]) ) {
-	wp_redirect( admin_url('import.php?import=' . $popular_importers[$_GET['invalid']][3]) );
-	exit;
+// Detect and redirect invalid importers like 'movabletype', which is registered as 'mt'
+if ( ! empty( $_GET['invalid'] ) && isset( $popular_importers[ $_GET['invalid'] ] ) ) {
+	$importer_id = $popular_importers[ $_GET['invalid'] ]['importer-id'];
+	if ( $importer_id != $_GET['invalid'] ) { // Prevent redirect loops.
+		wp_redirect( admin_url( 'admin.php?import=' . $importer_id ) );
+		exit;
+	}
+	unset( $importer_id );
 }
 
 add_thickbox();
@@ -68,28 +65,26 @@
 
 // If a popular importer is not registered, create a dummy registration that links to the plugin installer.
 foreach ( $popular_importers as $pop_importer => $pop_data ) {
-	if ( isset( $importers[$pop_importer] ) )
+	if ( isset( $importers[ $pop_importer ] ) )
 		continue;
-	if ( isset( $pop_data[3] ) && isset( $importers[ $pop_data[3] ] ) )
+	if ( isset( $importers[ $pop_data['importer-id'] ] ) )
 		continue;
-
-	$importers[$pop_importer] = $popular_importers[$pop_importer];
+	$importers[ $pop_data['importer-id'] ] = array( $pop_data['name'], $pop_data['description'], 'install' => $pop_data['plugin-slug'] );
 }
 
-if ( empty($importers) ) {
-	echo '<p>'.__('No importers are available.').'</p>'; // TODO: make more helpful
+if ( empty( $importers ) ) {
+	echo '<p>' . __('No importers are available.') . '</p>'; // TODO: make more helpful
 } else {
-	uasort($importers, create_function('$a, $b', 'return strcmp($a[0], $b[0]);'));
+	uasort($importers, create_function('$a, $b', 'return strnatcasecmp($a[0], $b[0]);'));
 ?>
 <table class="widefat importers" cellspacing="0">
 
 <?php
-	$style = '';
-	foreach ($importers as $id => $data) {
-		$style = ('class="alternate"' == $style || 'class="alternate active"' == $style) ? '' : 'alternate';
+	$alt = '';
+	foreach ($importers as $importer_id => $data) {
 		$action = '';
-		if ( 'install' == $data[2] ) {
-			$plugin_slug = $id . '-importer';
+		if ( isset( $data['install'] ) ) {
+			$plugin_slug = $data['install'];
 			if ( file_exists( WP_PLUGIN_DIR . '/' . $plugin_slug ) ) {
 				// Looks like Importer is installed, But not active
 				$plugins = get_plugins( '/' . $plugin_slug );
@@ -111,13 +106,12 @@
 				}
 			}
 		} else {
-			$action = "<a href='" . esc_url("admin.php?import=$id") . "' title='" . esc_attr( wptexturize(strip_tags($data[1])) ) ."'>{$data[0]}</a>";
+			$action = "<a href='" . esc_url( "admin.php?import=$importer_id" ) . "' title='" . esc_attr( wptexturize( strip_tags( $data[1] ) ) ) ."'>{$data[0]}</a>";
 		}
 
-		if ($style != '')
-			$style = 'class="'.$style.'"';
+		$alt = $alt ? '' : ' class="alternate"';
 		echo "
-			<tr $style>
+			<tr$alt>
 				<td class='import-system row-title'>$action</td>
 				<td class='desc'>{$data[1]}</td>
 			</tr>";
--- a/web/wp-admin/includes/ajax-actions.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-admin/includes/ajax-actions.php	Wed Dec 19 17:46:52 2012 -0800
@@ -29,17 +29,12 @@
  * GET-based Ajax handlers.
  */
 function wp_ajax_fetch_list() {
-	global $current_screen, $wp_list_table;
+	global $wp_list_table;
 
 	$list_class = $_GET['list_args']['class'];
 	check_ajax_referer( "fetch-list-$list_class", '_ajax_fetch_list_nonce' );
 
-	$current_screen = convert_to_screen( $_GET['list_args']['screen']['id'] );
-
-	define( 'WP_NETWORK_ADMIN', $current_screen->is_network );
-	define( 'WP_USER_ADMIN', $current_screen->is_user );
-
-	$wp_list_table = _get_list_table( $list_class );
+	$wp_list_table = _get_list_table( $list_class, array( 'screen' => $_GET['list_args']['screen']['id'] ) );
 	if ( ! $wp_list_table )
 		wp_die( 0 );
 
@@ -193,7 +188,7 @@
 }
 
 function wp_ajax_dashboard_widgets() {
-	require ABSPATH . 'wp-admin/includes/dashboard.php';
+	require_once ABSPATH . 'wp-admin/includes/dashboard.php';
 
 	switch ( $_GET['widget'] ) {
 		case 'dashboard_incoming_links' :
@@ -331,7 +326,7 @@
 		$term_id = $parent->term_id;
 
 		while ( $parent->parent ) { // get the top parent
-			$parent = &get_term( $parent->parent, $taxonomy->name );
+			$parent = get_term( $parent->parent, $taxonomy->name );
 			if ( is_wp_error( $parent ) )
 				break;
 			$term_id = $parent->term_id;
@@ -512,7 +507,7 @@
 	if ( !current_user_can( 'delete_page', $id ) )
 		wp_die( -1 );
 
-	if ( !get_page( $id ) )
+	if ( ! get_post( $id ) )
 		wp_die( 1 );
 
 	if ( wp_delete_post( $id ) )
@@ -615,9 +610,7 @@
 		$x->send();
 	}
 
-	set_current_screen( $_POST['screen'] );
-
-	$wp_list_table = _get_list_table('WP_Terms_List_Table');
+	$wp_list_table = _get_list_table( 'WP_Terms_List_Table', array( 'screen' => $_POST['screen'] ) );
 
 	$level = 0;
 	if ( is_taxonomy_hierarchical($taxonomy) ) {
@@ -686,9 +679,7 @@
 
 	check_ajax_referer( $action );
 
-	set_current_screen( 'edit-comments' );
-
-	$wp_list_table = _get_list_table('WP_Post_Comments_List_Table');
+	$wp_list_table = _get_list_table( 'WP_Post_Comments_List_Table', array( 'screen' => 'edit-comments' ) );
 
 	if ( !current_user_can( 'edit_post', $post_id ) )
 		wp_die( -1 );
@@ -723,8 +714,6 @@
 
 	check_ajax_referer( $action, '_ajax_nonce-replyto-comment' );
 
-	set_current_screen( 'edit-comments' );
-
 	$comment_post_ID = (int) $_POST['comment_post_ID'];
 	if ( !current_user_can( 'edit_post', $comment_post_ID ) )
 		wp_die( -1 );
@@ -760,12 +749,6 @@
 	$comment_auto_approved = false;
 	$commentdata = compact('comment_post_ID', 'comment_author', 'comment_author_email', 'comment_author_url', 'comment_content', 'comment_type', 'comment_parent', 'user_ID');
 
-	$comment_id = wp_new_comment( $commentdata );
-	$comment = get_comment($comment_id);
-	if ( ! $comment ) wp_die( 1 );
-
-	$position = ( isset($_POST['position']) && (int) $_POST['position'] ) ? (int) $_POST['position'] : '-1';
-
 	// automatically approve parent comment
 	if ( !empty($_POST['approve_parent']) ) {
 		$parent = get_comment( $comment_parent );
@@ -776,15 +759,21 @@
 		}
 	}
 
+	$comment_id = wp_new_comment( $commentdata );
+	$comment = get_comment($comment_id);
+	if ( ! $comment ) wp_die( 1 );
+
+	$position = ( isset($_POST['position']) && (int) $_POST['position'] ) ? (int) $_POST['position'] : '-1';
+
 	ob_start();
 		if ( 'dashboard' == $_REQUEST['mode'] ) {
 			require_once( ABSPATH . 'wp-admin/includes/dashboard.php' );
 			_wp_dashboard_recent_comments_row( $comment );
 		} else {
 			if ( 'single' == $_REQUEST['mode'] ) {
-				$wp_list_table = _get_list_table('WP_Post_Comments_List_Table');
+				$wp_list_table = _get_list_table('WP_Post_Comments_List_Table', array( 'screen' => 'edit-comments' ) );
 			} else {
-				$wp_list_table = _get_list_table('WP_Comments_List_Table');
+				$wp_list_table = _get_list_table('WP_Comments_List_Table', array( 'screen' => 'edit-comments' ) );
 			}
 			$wp_list_table->single_row( $comment );
 		}
@@ -811,8 +800,6 @@
 
 	check_ajax_referer( 'replyto-comment', '_ajax_nonce-replyto-comment' );
 
-	set_current_screen( 'edit-comments' );
-
 	$comment_id = (int) $_POST['comment_ID'];
 	if ( ! current_user_can( 'edit_comment', $comment_id ) )
 		wp_die( -1 );
@@ -827,7 +814,7 @@
 	$comments_status = isset($_POST['comments_listing']) ? $_POST['comments_listing'] : '';
 
 	$checkbox = ( isset($_POST['checkbox']) && true == $_POST['checkbox'] ) ? 1 : 0;
-	$wp_list_table = _get_list_table( $checkbox ? 'WP_Comments_List_Table' : 'WP_Post_Comments_List_Table' );
+	$wp_list_table = _get_list_table( $checkbox ? 'WP_Comments_List_Table' : 'WP_Post_Comments_List_Table', array( 'screen' => 'edit-comments' ) );
 
 	$comment = get_comment( $comment_id );
 
@@ -1018,17 +1005,19 @@
 		) );
 		$x->send();
 	}
-	$user_object = new WP_User( $user_id );
+	$user_object = get_userdata( $user_id );
 
 	$wp_list_table = _get_list_table('WP_Users_List_Table');
 
+	$role = current( $user_object->roles );
+
 	$x = new WP_Ajax_Response( array(
 		'what' => 'user',
 		'id' => $user_id,
-		'data' => $wp_list_table->single_row( $user_object, '', $user_object->roles[0] ),
+		'data' => $wp_list_table->single_row( $user_object, '', $role ),
 		'supplemental' => array(
 			'show-link' => sprintf(__( 'User <a href="#%s">%s</a> added' ), "user-$user_id", $user_object->user_login),
-			'role' => $user_object->roles[0]
+			'role' => $role,
 		)
 	) );
 	$x->send();
@@ -1328,8 +1317,6 @@
 			wp_die( __( 'You are not allowed to edit this post.' ) );
 	}
 
-	set_current_screen( $_POST['screen'] );
-
 	if ( $last = wp_check_post_lock( $post_ID ) ) {
 		$last_user = get_userdata( $last );
 		$last_user_name = $last_user ? $last_user->display_name : __( 'Someone' );
@@ -1365,10 +1352,21 @@
 	// update the post
 	edit_post();
 
-	$wp_list_table = _get_list_table('WP_Posts_List_Table');
+	$wp_list_table = _get_list_table( 'WP_Posts_List_Table', array( 'screen' => $_POST['screen'] ) );
 
 	$mode = $_POST['post_view'];
-	$wp_list_table->display_rows( array( get_post( $_POST['post_ID'] ) ) );
+
+	$level = 0;
+	$request_post = array( get_post( $_POST['post_ID'] ) );
+	$parent = $request_post[0]->post_parent;
+
+	while ( $parent > 0 ) {
+		$parent_post = get_post( $parent );
+		$parent = $parent_post->post_parent;
+		$level++;
+	}
+
+	$wp_list_table->display_rows( array( get_post( $_POST['post_ID'] ) ), $level );
 
 	wp_die();
 }
@@ -1386,9 +1384,7 @@
 	if ( ! current_user_can( $tax->cap->edit_terms ) )
 		wp_die( -1 );
 
-	set_current_screen( 'edit-' . $taxonomy );
-
-	$wp_list_table = _get_list_table('WP_Terms_List_Table');
+	$wp_list_table = _get_list_table( 'WP_Terms_List_Table', array( 'screen' => 'edit-' . $taxonomy ) );
 
 	if ( ! isset($_POST['tax_ID']) || ! ( $id = (int) $_POST['tax_ID'] ) )
 		wp_die( -1 );
@@ -1404,14 +1400,19 @@
 				wp_die( $tag->get_error_message() );
 			wp_die( __( 'Item not updated.' ) );
 		}
-
-		echo $wp_list_table->single_row( $tag );
 	} else {
 		if ( is_wp_error($updated) && $updated->get_error_message() )
 			wp_die( $updated->get_error_message() );
 		wp_die( __( 'Item not updated.' ) );
 	}
-
+	$level = 0;
+	$parent = $tag->parent;
+	while ( $parent > 0 ) {
+		$parent_tag = get_term( $parent, $taxonomy );
+		$parent = $parent_tag->parent;
+		$level++;
+	}
+	echo $wp_list_table->single_row( $tag, $level );
 	wp_die();
 }
 
@@ -1420,37 +1421,27 @@
 
 	check_ajax_referer( 'find-posts' );
 
-	if ( empty($_POST['ps']) )
-		wp_die();
+	$post_types = get_post_types( array( 'public' => true ), 'objects' );
+	unset( $post_types['attachment'] );
 
-	if ( !empty($_POST['post_type']) && in_array( $_POST['post_type'], get_post_types() ) )
-		$what = $_POST['post_type'];
-	else
-		$what = 'post';
-
-	$s = stripslashes($_POST['ps']);
-	preg_match_all('/".*?("|$)|((?<=[\\s",+])|^)[^\\s",+]+/', $s, $matches);
-	$search_terms = array_map('_search_terms_tidy', $matches[0]);
-
+	$s = stripslashes( $_POST['ps'] );
 	$searchand = $search = '';
-	foreach ( (array) $search_terms as $term ) {
-		$term = esc_sql( like_escape( $term ) );
-		$search .= "{$searchand}(($wpdb->posts.post_title LIKE '%{$term}%') OR ($wpdb->posts.post_content LIKE '%{$term}%'))";
-		$searchand = ' AND ';
-	}
-	$term = esc_sql( like_escape( $s ) );
-	if ( count($search_terms) > 1 && $search_terms[0] != $s )
-		$search .= " OR ($wpdb->posts.post_title LIKE '%{$term}%') OR ($wpdb->posts.post_content LIKE '%{$term}%')";
+	$args = array(
+		'post_type' => array_keys( $post_types ),
+		'post_status' => 'any',
+		'posts_per_page' => 50,
+	);
+	if ( '' !== $s )
+		$args['s'] = $s;
 
-	$posts = $wpdb->get_results( "SELECT ID, post_title, post_status, post_date FROM $wpdb->posts WHERE post_type = '$what' AND post_status IN ('draft', 'publish') AND ($search) ORDER BY post_date_gmt DESC LIMIT 50" );
+	$posts = get_posts( $args );
 
-	if ( ! $posts ) {
-		$posttype = get_post_type_object($what);
-		wp_die( $posttype->labels->not_found );
-	}
+	if ( ! $posts )
+		wp_die( __('No items found.') );
 
-	$html = '<table class="widefat" cellspacing="0"><thead><tr><th class="found-radio"><br /></th><th>'.__('Title').'</th><th>'.__('Date').'</th><th>'.__('Status').'</th></tr></thead><tbody>';
+	$html = '<table class="widefat" cellspacing="0"><thead><tr><th class="found-radio"><br /></th><th>'.__('Title').'</th><th class="no-break">'.__('Type').'</th><th class="no-break">'.__('Date').'</th><th class="no-break">'.__('Status').'</th></tr></thead><tbody>';
 	foreach ( $posts as $post ) {
+		$title = trim( $post->post_title ) ? $post->post_title : __( '(no title)' );
 
 		switch ( $post->post_status ) {
 			case 'publish' :
@@ -1476,17 +1467,16 @@
 		}
 
 		$html .= '<tr class="found-posts"><td class="found-radio"><input type="radio" id="found-'.$post->ID.'" name="found_post_id" value="' . esc_attr($post->ID) . '"></td>';
-		$html .= '<td><label for="found-'.$post->ID.'">'.esc_html( $post->post_title ).'</label></td><td>'.esc_html( $time ).'</td><td>'.esc_html( $stat ).'</td></tr>'."\n\n";
+		$html .= '<td><label for="found-'.$post->ID.'">' . esc_html( $title ) . '</label></td><td class="no-break">' . esc_html( $post_types[$post->post_type]->labels->singular_name ) . '</td><td class="no-break">'.esc_html( $time ) . '</td><td class="no-break">' . esc_html( $stat ). ' </td></tr>' . "\n\n";
 	}
+
 	$html .= '</tbody></table>';
 
 	$x = new WP_Ajax_Response();
 	$x->add( array(
-		'what' => $what,
 		'data' => $html
 	));
 	$x->send();
-
 }
 
 function wp_ajax_widgets_order() {
@@ -1595,28 +1585,45 @@
 	check_ajax_referer( 'media-form' );
 
 	if ( ! current_user_can( 'upload_files' ) )
-		wp_die( -1 );
+		wp_die();
 
 	if ( isset( $_REQUEST['post_id'] ) ) {
 		$post_id = $_REQUEST['post_id'];
 		if ( ! current_user_can( 'edit_post', $post_id ) )
-			wp_die( -1 );
+			wp_die();
 	} else {
 		$post_id = null;
 	}
 
 	$post_data = isset( $_REQUEST['post_data'] ) ? $_REQUEST['post_data'] : array();
 
+	// If the context is custom header or background, make sure the uploaded file is an image.
+	if ( isset( $post_data['context'] ) && in_array( $post_data['context'], array( 'custom-header', 'custom-background' ) ) ) {
+		$wp_filetype = wp_check_filetype_and_ext( $_FILES['async-upload']['tmp_name'], $_FILES['async-upload']['name'], false );
+		if ( ! wp_match_mime_types( 'image', $wp_filetype['type'] ) ) {
+			echo json_encode( array(
+				'success' => false,
+				'data'    => array(
+					'message'  => __( 'The uploaded file is not a valid image. Please try again.' ),
+					'filename' => $_FILES['async-upload']['name'],
+				)
+			) );
+
+			wp_die();
+		}
+	}
+
 	$attachment_id = media_handle_upload( 'async-upload', $post_id, $post_data );
 
 	if ( is_wp_error( $attachment_id ) ) {
 		echo json_encode( array(
-			'type' => 'error',
-			'data' => array(
+			'success' => false,
+			'data'    => array(
 				'message'  => $attachment_id->get_error_message(),
 				'filename' => $_FILES['async-upload']['name'],
-			),
+			)
 		) );
+
 		wp_die();
 	}
 
@@ -1628,18 +1635,14 @@
 			update_post_meta( $attachment_id, '_wp_attachment_is_custom_header', $post_data['theme'] );
 	}
 
-	$post = get_post( $attachment_id );
+	if ( ! $attachment = wp_prepare_attachment_for_js( $attachment_id ) )
+		wp_die();
 
 	echo json_encode( array(
-		'type' => 'success',
-		'data' => array(
-			'id'       => $attachment_id,
-			'title'    => esc_attr( $post->post_title ),
-			'filename' => esc_html( basename( $post->guid ) ),
-			'url'      => wp_get_attachment_url( $attachment_id ),
-			'meta'     => wp_get_attachment_metadata( $attachment_id ),
-		),
+		'success' => true,
+		'data'    => $attachment,
 	) );
+
 	wp_die();
 }
 
@@ -1671,22 +1674,33 @@
 }
 
 function wp_ajax_set_post_thumbnail() {
+	$json = ! empty( $_REQUEST['json'] ); // New-style request
+
 	$post_ID = intval( $_POST['post_id'] );
-	if ( !current_user_can( 'edit_post', $post_ID ) )
+	if ( ! current_user_can( 'edit_post', $post_ID ) )
 		wp_die( -1 );
+
 	$thumbnail_id = intval( $_POST['thumbnail_id'] );
 
-	check_ajax_referer( "set_post_thumbnail-$post_ID" );
+	if ( $json )
+		check_ajax_referer( "update-post_$post_ID" );
+	else
+		check_ajax_referer( "set_post_thumbnail-$post_ID" );
 
 	if ( $thumbnail_id == '-1' ) {
-		if ( delete_post_thumbnail( $post_ID ) )
-			wp_die( _wp_post_thumbnail_html( null, $post_ID ) );
-		else
+		if ( delete_post_thumbnail( $post_ID ) ) {
+			$return = _wp_post_thumbnail_html( null, $post_ID );
+			$json ? wp_send_json_success( $return ) : wp_die( $return );
+		} else {
 			wp_die( 0 );
+		}
 	}
 
-	if ( set_post_thumbnail( $post_ID, $thumbnail_id ) )
-		wp_die( _wp_post_thumbnail_html( $thumbnail_id, $post_ID ) );
+	if ( set_post_thumbnail( $post_ID, $thumbnail_id ) ) {
+		$return = _wp_post_thumbnail_html( $thumbnail_id, $post_ID );
+		$json ? wp_send_json_success( $return ) : wp_die( $return );
+	}
+
 	wp_die( 0 );
 }
 
@@ -1711,7 +1725,7 @@
 	elseif ( isset( $_POST['post_type'] ) && post_type_exists( $_POST['post_type'] ) )
 		$post_type = $_POST['post_type'];
 
-	check_ajax_referer('update-' . $post_type . '_' . $post_id, '_wpnonce');
+	check_ajax_referer('update-post_' . $post_id, '_wpnonce');
 
 	$post_id = edit_post();
 
@@ -1753,7 +1767,7 @@
 	if ( ! $post = get_post( $post_id ) )
 		wp_die( 0 );
 
-	check_ajax_referer( 'update-' . $post->post_type . '_' . $post_id );
+	check_ajax_referer( 'update-post_' . $post_id );
 
 	if ( ! current_user_can( 'edit_post', $post_id ) )
 		wp_die( -1 );
@@ -1785,3 +1799,274 @@
 	update_user_meta( get_current_user_id(), 'dismissed_wp_pointers', $dismissed );
 	wp_die( 1 );
 }
+
+/**
+ * Get an attachment.
+ *
+ * @since 3.5.0
+ */
+function wp_ajax_get_attachment() {
+	if ( ! isset( $_REQUEST['id'] ) )
+		wp_send_json_error();
+
+	if ( ! $id = absint( $_REQUEST['id'] ) )
+		wp_send_json_error();
+
+	if ( ! $post = get_post( $id ) )
+		wp_send_json_error();
+
+	if ( 'attachment' != $post->post_type )
+		wp_send_json_error();
+
+	if ( ! current_user_can( 'upload_files' ) )
+		wp_send_json_error();
+
+	if ( ! $attachment = wp_prepare_attachment_for_js( $id ) )
+		wp_send_json_error();
+
+	wp_send_json_success( $attachment );
+}
+
+/**
+ * Query for attachments.
+ *
+ * @since 3.5.0
+ */
+function wp_ajax_query_attachments() {
+	if ( ! current_user_can( 'upload_files' ) )
+		wp_send_json_error();
+
+	$query = isset( $_REQUEST['query'] ) ? (array) $_REQUEST['query'] : array();
+	$query = array_intersect_key( $query, array_flip( array(
+		's', 'order', 'orderby', 'posts_per_page', 'paged', 'post_mime_type',
+		'post_parent', 'post__in', 'post__not_in',
+	) ) );
+
+	$query['post_type'] = 'attachment';
+	$query['post_status'] = 'inherit';
+	if ( current_user_can( get_post_type_object( 'attachment' )->cap->read_private_posts ) )
+		$query['post_status'] .= ',private';
+
+	$query = new WP_Query( $query );
+
+	$posts = array_map( 'wp_prepare_attachment_for_js', $query->posts );
+	$posts = array_filter( $posts );
+
+	wp_send_json_success( $posts );
+}
+
+/**
+ * Save attachment attributes.
+ *
+ * @since 3.5.0
+ */
+function wp_ajax_save_attachment() {
+	if ( ! isset( $_REQUEST['id'] ) || ! isset( $_REQUEST['changes'] ) )
+		wp_send_json_error();
+
+	if ( ! $id = absint( $_REQUEST['id'] ) )
+		wp_send_json_error();
+
+	check_ajax_referer( 'update-post_' . $id, 'nonce' );
+
+	if ( ! current_user_can( 'edit_post', $id ) )
+		wp_send_json_error();
+
+	$changes = $_REQUEST['changes'];
+	$post    = get_post( $id, ARRAY_A );
+
+	if ( 'attachment' != $post['post_type'] )
+		wp_send_json_error();
+
+	if ( isset( $changes['title'] ) )
+		$post['post_title'] = $changes['title'];
+
+	if ( isset( $changes['caption'] ) )
+		$post['post_excerpt'] = $changes['caption'];
+
+	if ( isset( $changes['description'] ) )
+		$post['post_content'] = $changes['description'];
+
+	if ( isset( $changes['alt'] ) ) {
+		$alt = get_post_meta( $id, '_wp_attachment_image_alt', true );
+		$new_alt = stripslashes( $changes['alt'] );
+		if ( $alt != $new_alt ) {
+			$new_alt = wp_strip_all_tags( $new_alt, true );
+			update_post_meta( $id, '_wp_attachment_image_alt', addslashes( $new_alt ) );
+		}
+	}
+
+	wp_update_post( $post );
+	wp_send_json_success();
+}
+
+/**
+ * Save backwards compatible attachment attributes.
+ *
+ * @since 3.5.0
+ */
+function wp_ajax_save_attachment_compat() {
+	if ( ! isset( $_REQUEST['id'] ) )
+		wp_send_json_error();
+
+	if ( ! $id = absint( $_REQUEST['id'] ) )
+		wp_send_json_error();
+
+	if ( empty( $_REQUEST['attachments'] ) || empty( $_REQUEST['attachments'][ $id ] ) )
+		wp_send_json_error();
+	$attachment_data = $_REQUEST['attachments'][ $id ];
+
+	check_ajax_referer( 'update-post_' . $id, 'nonce' );
+
+	if ( ! current_user_can( 'edit_post', $id ) )
+		wp_send_json_error();
+
+	$post = get_post( $id, ARRAY_A );
+
+	if ( 'attachment' != $post['post_type'] )
+		wp_send_json_error();
+
+	$post = apply_filters( 'attachment_fields_to_save', $post, $attachment_data );
+
+	if ( isset( $post['errors'] ) ) {
+		$errors = $post['errors']; // @todo return me and display me!
+		unset( $post['errors'] );
+	}
+
+	wp_update_post( $post );
+
+	foreach ( get_attachment_taxonomies( $post ) as $taxonomy ) {
+		if ( isset( $attachment_data[ $taxonomy ] ) )
+			wp_set_object_terms( $id, array_map( 'trim', preg_split( '/,+/', $attachment_data[ $taxonomy ] ) ), $taxonomy, false );
+	}
+
+	if ( ! $attachment = wp_prepare_attachment_for_js( $id ) )
+		wp_send_json_error();
+
+	wp_send_json_success( $attachment );
+}
+
+function wp_ajax_save_attachment_order() {
+	if ( ! isset( $_REQUEST['post_id'] ) )
+		wp_send_json_error();
+
+	if ( ! $post_id = absint( $_REQUEST['post_id'] ) )
+		wp_send_json_error();
+
+	if ( empty( $_REQUEST['attachments'] ) )
+		wp_send_json_error();
+
+	check_ajax_referer( 'update-post_' . $post_id, 'nonce' );
+
+	$attachments = $_REQUEST['attachments'];
+
+	if ( ! current_user_can( 'edit_post', $post_id ) )
+		wp_send_json_error();
+
+	$post = get_post( $post_id, ARRAY_A );
+
+	foreach ( $attachments as $attachment_id => $menu_order ) {
+		if ( ! current_user_can( 'edit_post', $attachment_id ) )
+			continue;
+		if ( ! $attachment = get_post( $attachment_id ) )
+			continue;
+		if ( 'attachment' != $attachment->post_type )
+			continue;
+
+		wp_update_post( array( 'ID' => $attachment_id, 'menu_order' => $menu_order ) );
+	}
+
+	wp_send_json_success();
+}
+
+/**
+ * Generates the HTML to send an attachment to the editor.
+ * Backwards compatible with the media_send_to_editor filter and the chain
+ * of filters that follow.
+ *
+ * @since 3.5.0
+ */
+function wp_ajax_send_attachment_to_editor() {
+	check_ajax_referer( 'media-send-to-editor', 'nonce' );
+
+	$attachment = stripslashes_deep( $_POST['attachment'] );
+
+	$id = intval( $attachment['id'] );
+
+	if ( ! $post = get_post( $id ) )
+		wp_send_json_error();
+
+	if ( 'attachment' != $post->post_type )
+		wp_send_json_error();
+
+	if ( current_user_can( 'edit_post', $id ) ) {
+		// If this attachment is unattached, attach it. Primarily a back compat thing.
+		if ( 0 == $post->post_parent && $insert_into_post_id = intval( $_POST['post_id'] ) ) {
+			wp_update_post( array( 'ID' => $id, 'post_parent' => $insert_into_post_id ) );
+		}
+	}
+
+	$rel = $url = '';
+	$html = $title = isset( $attachment['post_title'] ) ? $attachment['post_title'] : '';
+	if ( ! empty( $attachment['url'] ) ) {
+		$url = $attachment['url'];
+		if ( strpos( $url, 'attachment_id') || get_attachment_link( $id ) == $url )
+			$rel = ' rel="attachment wp-att-' . $id . '"';
+		$html = '<a href="' . esc_url( $url ) . '"' . $rel . '>' . $html . '</a>';
+	}
+
+	remove_filter( 'media_send_to_editor', 'image_media_send_to_editor', 10, 3 );
+
+	if ( 'image' === substr( $post->post_mime_type, 0, 5 ) ) {
+		$align = isset( $attachment['align'] ) ? $attachment['align'] : 'none';
+		$size = isset( $attachment['image-size'] ) ? $attachment['image-size'] : 'medium';
+		$alt = isset( $attachment['image_alt'] ) ? $attachment['image_alt'] : '';
+		$caption = isset( $attachment['post_excerpt'] ) ? $attachment['post_excerpt'] : '';
+		$title = ''; // We no longer insert title tags into <img> tags, as they are redundant.
+		$html = get_image_send_to_editor( $id, $caption, $title, $align, $url, (bool) $rel, $size, $alt );
+	}
+
+	$html = apply_filters( 'media_send_to_editor', $html, $id, $attachment );
+
+	wp_send_json_success( $html );
+}
+
+/**
+ * Generates the HTML to send a non-image embed link to the editor.
+ *
+ * Backwards compatible with the following filters:
+ * - file_send_to_editor_url
+ * - audio_send_to_editor_url
+ * - video_send_to_editor_url
+ *
+ * @since 3.5.0
+ */
+function wp_ajax_send_link_to_editor() {
+	check_ajax_referer( 'media-send-to-editor', 'nonce' );
+
+	if ( ! $src = stripslashes( $_POST['src'] ) )
+		wp_send_json_error();
+
+	if ( ! strpos( $src, '://' ) )
+		$src = 'http://' . $src;
+
+	if ( ! $src = esc_url_raw( $src ) )
+		wp_send_json_error();
+
+	if ( ! $title = trim( stripslashes( $_POST['title'] ) ) )
+		$title = wp_basename( $src );
+
+	$html = '';
+	if ( $title )
+		$html = '<a href="' . esc_url( $src ) . '">' . $title . '</a>';
+
+	// Figure out what filter to run:
+	$type = 'file';
+	if ( ( $ext = preg_replace( '/^.+?\.([^.]+)$/', '$1', $src ) ) && ( $ext_type = wp_ext2type( $ext ) )
+		&& ( 'audio' == $ext_type || 'video' == $ext_type ) )
+			$type = $ext_type;
+
+	$html = apply_filters( $type . '_send_to_editor_url', $html, $src, $title );
+
+	wp_send_json_success( $html );
+}
--- a/web/wp-admin/includes/bookmark.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-admin/includes/bookmark.php	Wed Dec 19 17:46:52 2012 -0800
@@ -266,3 +266,25 @@
 
 	return wp_insert_link( $linkdata );
 }
+
+/**
+ * @since 3.5.0
+ * @access private
+ */
+function wp_link_manager_disabled_message() {
+	global $pagenow;
+	if ( 'link-manager.php' != $pagenow && 'link-add.php' != $pagenow && 'link.php' != $pagenow )
+		return;
+
+	add_filter( 'pre_option_link_manager_enabled', '__return_true', 100 );
+	$really_can_manage_links = current_user_can( 'manage_links' );
+	remove_filter( 'pre_option_link_manager_enabled', '__return_true', 100 );
+
+	if ( $really_can_manage_links && current_user_can( 'install_plugins' ) ) {
+		$link = network_admin_url( 'plugin-install.php?tab=search&amp;s=Link+Manager' );
+		wp_die( sprintf( __( 'If you are looking to use the link manager, please install the <a href="%s">Link Manager</a> plugin.' ), $link ) );
+	}
+
+	wp_die( __( 'You do not have sufficient permissions to edit the links for this site.' ) );
+}
+add_action( 'admin_page_access_denied', 'wp_link_manager_disabled_message' );
--- a/web/wp-admin/includes/class-wp-comments-list-table.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-admin/includes/class-wp-comments-list-table.php	Wed Dec 19 17:46:52 2012 -0800
@@ -21,7 +21,7 @@
 
 	var $pending_count = array();
 
-	function __construct() {
+	function __construct( $args = array() ) {
 		global $post_id;
 
 		$post_id = isset( $_REQUEST['p'] ) ? absint( $_REQUEST['p'] ) : 0;
@@ -33,6 +33,7 @@
 			'plural' => 'comments',
 			'singular' => 'comment',
 			'ajax' => true,
+			'screen' => isset( $args['screen'] ) ? $args['screen'] : null,
 		) );
 	}
 
@@ -81,7 +82,8 @@
 
 		$status_map = array(
 			'moderated' => 'hold',
-			'approved' => 'approve'
+			'approved' => 'approve',
+			'all' => '',
 		);
 
 		$args = array(
@@ -224,13 +226,14 @@
 			?>
 			</select>
 <?php
-			submit_button( __( 'Filter' ), 'secondary', false, false, array( 'id' => 'post-query-submit' ) );
+			do_action( 'restrict_manage_comments' );
+			submit_button( __( 'Filter' ), 'button', false, false, array( 'id' => 'post-query-submit' ) );
 		}
 
 		if ( ( 'spam' == $comment_status || 'trash' == $comment_status ) && current_user_can( 'moderate_comments' ) ) {
 			wp_nonce_field( 'bulk-destroy', '_destroy_nonce' );
 			$title = ( 'spam' == $comment_status ) ? esc_attr__( 'Empty Spam' ) : esc_attr__( 'Empty Trash' );
-			submit_button( $title, 'button-secondary apply', 'delete_all', false );
+			submit_button( $title, 'apply', 'delete_all', false );
 		}
 		do_action( 'manage_comments_nav', $comment_status );
 		echo '</div>';
@@ -288,11 +291,11 @@
 	</tr>
 	</tfoot>
 
-	<tbody id="the-comment-list" class="list:comment">
+	<tbody id="the-comment-list" data-wp-lists="list:comment">
 		<?php $this->display_rows_or_placeholder(); ?>
 	</tbody>
 
-	<tbody id="the-extra-comment-list" class="list:comment" style="display: none;">
+	<tbody id="the-extra-comment-list" data-wp-lists="list:comment" style="display: none;">
 		<?php $this->items = $this->extra_items; $this->display_rows(); ?>
 	</tbody>
 </table>
@@ -317,12 +320,16 @@
 	}
 
 	function column_cb( $comment ) {
-		if ( $this->user_can )
-			echo "<input type='checkbox' name='delete_comments[]' value='$comment->comment_ID' />";
+		if ( $this->user_can ) { ?>
+		<label class="screen-reader-text" for="cb-select-<?php echo $comment->comment_ID; ?>"><?php _e( 'Select comment' ); ?></label>
+		<input id="cb-select-<?php echo $comment->comment_ID; ?>" type="checkbox" name="delete_comments[]" value="<?php echo $comment->comment_ID; ?>" />
+		<?php
+		}
 	}
 
 	function column_comment( $comment ) {
-		global $post, $comment_status;
+		global $comment_status;
+		$post = get_post();
 
 		$user_can = $this->user_can;
 
@@ -330,7 +337,7 @@
 		$the_comment_status = wp_get_comment_status( $comment->comment_ID );
 
 		$ptime = date( 'G', strtotime( $comment->comment_date ) );
-		if ( ( abs( time() - $ptime ) ) < 86400 )
+		if ( ( abs( time() - $ptime ) ) < DAY_IN_SECONDS )
 			$ptime = sprintf( __( '%s ago' ), human_time_diff( $ptime ) );
 		else
 			$ptime = mysql2date( __( 'Y/m/d \a\t g:i A' ), $comment->comment_date );
@@ -389,26 +396,26 @@
 
 			if ( $comment_status && 'all' != $comment_status ) { // not looking at all comments
 				if ( 'approved' == $the_comment_status )
-					$actions['unapprove'] = "<a href='$unapprove_url' class='delete:the-comment-list:comment-$comment->comment_ID:e7e7d3:action=dim-comment&amp;new=unapproved vim-u vim-destructive' title='" . esc_attr__( 'Unapprove this comment' ) . "'>" . __( 'Unapprove' ) . '</a>';
+					$actions['unapprove'] = "<a href='$unapprove_url' data-wp-lists='delete:the-comment-list:comment-$comment->comment_ID:e7e7d3:action=dim-comment&amp;new=unapproved' class='vim-u vim-destructive' title='" . esc_attr__( 'Unapprove this comment' ) . "'>" . __( 'Unapprove' ) . '</a>';
 				else if ( 'unapproved' == $the_comment_status )
-					$actions['approve'] = "<a href='$approve_url' class='delete:the-comment-list:comment-$comment->comment_ID:e7e7d3:action=dim-comment&amp;new=approved vim-a vim-destructive' title='" . esc_attr__( 'Approve this comment' ) . "'>" . __( 'Approve' ) . '</a>';
+					$actions['approve'] = "<a href='$approve_url' data-wp-lists='delete:the-comment-list:comment-$comment->comment_ID:e7e7d3:action=dim-comment&amp;new=approved' class='vim-a vim-destructive' title='" . esc_attr__( 'Approve this comment' ) . "'>" . __( 'Approve' ) . '</a>';
 			} else {
-				$actions['approve'] = "<a href='$approve_url' class='dim:the-comment-list:comment-$comment->comment_ID:unapproved:e7e7d3:e7e7d3:new=approved vim-a' title='" . esc_attr__( 'Approve this comment' ) . "'>" . __( 'Approve' ) . '</a>';
-				$actions['unapprove'] = "<a href='$unapprove_url' class='dim:the-comment-list:comment-$comment->comment_ID:unapproved:e7e7d3:e7e7d3:new=unapproved vim-u' title='" . esc_attr__( 'Unapprove this comment' ) . "'>" . __( 'Unapprove' ) . '</a>';
+				$actions['approve'] = "<a href='$approve_url' data-wp-lists='dim:the-comment-list:comment-$comment->comment_ID:unapproved:e7e7d3:e7e7d3:new=approved' class='vim-a' title='" . esc_attr__( 'Approve this comment' ) . "'>" . __( 'Approve' ) . '</a>';
+				$actions['unapprove'] = "<a href='$unapprove_url' data-wp-lists='dim:the-comment-list:comment-$comment->comment_ID:unapproved:e7e7d3:e7e7d3:new=unapproved' class='vim-u' title='" . esc_attr__( 'Unapprove this comment' ) . "'>" . __( 'Unapprove' ) . '</a>';
 			}
 
 			if ( 'spam' != $the_comment_status && 'trash' != $the_comment_status ) {
-				$actions['spam'] = "<a href='$spam_url' class='delete:the-comment-list:comment-$comment->comment_ID::spam=1 vim-s vim-destructive' title='" . esc_attr__( 'Mark this comment as spam' ) . "'>" . /* translators: mark as spam link */ _x( 'Spam', 'verb' ) . '</a>';
+				$actions['spam'] = "<a href='$spam_url' data-wp-lists='delete:the-comment-list:comment-$comment->comment_ID::spam=1' class='vim-s vim-destructive' title='" . esc_attr__( 'Mark this comment as spam' ) . "'>" . /* translators: mark as spam link */ _x( 'Spam', 'verb' ) . '</a>';
 			} elseif ( 'spam' == $the_comment_status ) {
-				$actions['unspam'] = "<a href='$unspam_url' class='delete:the-comment-list:comment-$comment->comment_ID:66cc66:unspam=1 vim-z vim-destructive'>" . _x( 'Not Spam', 'comment' ) . '</a>';
+				$actions['unspam'] = "<a href='$unspam_url' data-wp-lists='delete:the-comment-list:comment-$comment->comment_ID:66cc66:unspam=1' class='vim-z vim-destructive'>" . _x( 'Not Spam', 'comment' ) . '</a>';
 			} elseif ( 'trash' == $the_comment_status ) {
-				$actions['untrash'] = "<a href='$untrash_url' class='delete:the-comment-list:comment-$comment->comment_ID:66cc66:untrash=1 vim-z vim-destructive'>" . __( 'Restore' ) . '</a>';
+				$actions['untrash'] = "<a href='$untrash_url' data-wp-lists='delete:the-comment-list:comment-$comment->comment_ID:66cc66:untrash=1' class='vim-z vim-destructive'>" . __( 'Restore' ) . '</a>';
 			}
 
 			if ( 'spam' == $the_comment_status || 'trash' == $the_comment_status || !EMPTY_TRASH_DAYS ) {
-				$actions['delete'] = "<a href='$delete_url' class='delete:the-comment-list:comment-$comment->comment_ID::delete=1 delete vim-d vim-destructive'>" . __( 'Delete Permanently' ) . '</a>';
+				$actions['delete'] = "<a href='$delete_url' data-wp-lists='delete:the-comment-list:comment-$comment->comment_ID::delete=1' class='delete vim-d vim-destructive'>" . __( 'Delete Permanently' ) . '</a>';
 			} else {
-				$actions['trash'] = "<a href='$trash_url' class='delete:the-comment-list:comment-$comment->comment_ID::trash=1 delete vim-d vim-destructive' title='" . esc_attr__( 'Move this comment to the trash' ) . "'>" . _x( 'Trash', 'verb' ) . '</a>';
+				$actions['trash'] = "<a href='$trash_url' data-wp-lists='delete:the-comment-list:comment-$comment->comment_ID::trash=1' class='delete vim-d vim-destructive' title='" . esc_attr__( 'Move this comment to the trash' ) . "'>" . _x( 'Trash', 'verb' ) . '</a>';
 			}
 
 			if ( 'spam' != $the_comment_status && 'trash' != $the_comment_status ) {
@@ -476,7 +483,7 @@
 	}
 
 	function column_response( $comment ) {
-		global $post;
+		$post = get_post();
 
 		if ( isset( $this->pending_count[$post->ID] ) ) {
 			$pending_comments = $this->pending_count[$post->ID];
@@ -545,7 +552,7 @@
 		wp_nonce_field( "fetch-list-" . get_class( $this ), '_ajax_fetch_list_nonce' );
 ?>
 <table class="<?php echo implode( ' ', $this->get_table_classes() ); ?>" cellspacing="0" style="display:none;">
-	<tbody id="the-comment-list"<?php if ( $singular ) echo " class='list:$singular'"; ?>>
+	<tbody id="the-comment-list"<?php if ( $singular ) echo " data-wp-lists='list:$singular'"; ?>>
 		<?php if ( ! $output_empty ) $this->display_rows_or_placeholder(); ?>
 	</tbody>
 </table>
--- a/web/wp-admin/includes/class-wp-filesystem-base.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-admin/includes/class-wp-filesystem-base.php	Wed Dec 19 17:46:52 2012 -0800
@@ -193,12 +193,13 @@
 		$folder = untrailingslashit($folder);
 
 		$folder_parts = explode('/', $folder);
-		$last_path = $folder_parts[ count($folder_parts) - 1 ];
+		$last_index = array_pop( array_keys( $folder_parts ) );
+		$last_path = $folder_parts[ $last_index ];
 
 		$files = $this->dirlist( $base );
 
-		foreach ( $folder_parts as $key ) {
-			if ( $key == $last_path )
+		foreach ( $folder_parts as $index => $key ) {
+			if ( $index == $last_index )
 				continue; //We want this to be caught by the next code block.
 
 			//Working from /home/ to /user/ to /wordpress/ see if that file exists within the current folder,
@@ -210,7 +211,9 @@
 				$newdir = trailingslashit(path_join($base, $key));
 				if ( $this->verbose )
 					printf( __('Changing to %s') . '<br/>', $newdir );
-				if ( $ret = $this->search_for_folder( $folder, $newdir, $loop) )
+				// only search for the remaining path tokens in the directory, not the full path again
+				$newfolder = implode( '/', array_slice( $folder_parts, $index + 1 ) );
+				if ( $ret = $this->search_for_folder( $newfolder, $newdir, $loop) )
 					return $ret;
 			}
 		}
@@ -304,14 +307,14 @@
 		   if ($key = array_search($attarray[$i], $legal))
 			   $realmode .= $legal[$key];
 
-		$mode = str_pad($realmode, 9, '-');
+		$mode = str_pad($realmode, 10, '-', STR_PAD_LEFT);
 		$trans = array('-'=>'0', 'r'=>'4', 'w'=>'2', 'x'=>'1');
 		$mode = strtr($mode,$trans);
 
-		$newmode = '';
-		$newmode .= $mode[0] + $mode[1] + $mode[2];
-		$newmode .= $mode[3] + $mode[4] + $mode[5];
-		$newmode .= $mode[6] + $mode[7] + $mode[8];
+		$newmode = $mode[0];
+		$newmode .= $mode[1] + $mode[2] + $mode[3];
+		$newmode .= $mode[4] + $mode[5] + $mode[6];
+		$newmode .= $mode[7] + $mode[8] + $mode[9];
 		return $newmode;
 	}
 
--- a/web/wp-admin/includes/class-wp-filesystem-ftpext.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-admin/includes/class-wp-filesystem-ftpext.php	Wed Dec 19 17:46:52 2012 -0800
@@ -330,6 +330,10 @@
 			}
 		}
 
+		// Replace symlinks formatted as "source -> target" with just the source name
+		if ( $b['islink'] )
+			$b['name'] = preg_replace( '/(\s*->\s*.*)$/', '', $b['name'] );
+
 		return $b;
 	}
 
--- a/web/wp-admin/includes/class-wp-filesystem-ftpsockets.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-admin/includes/class-wp-filesystem-ftpsockets.php	Wed Dec 19 17:46:52 2012 -0800
@@ -318,6 +318,10 @@
 					$struc['files'] = array();
 			}
 
+			// Replace symlinks formatted as "source -> target" with just the source name
+			if ( $struc['islink'] )
+				$struc['name'] = preg_replace( '/(\s*->\s*.*)$/', '', $struc['name'] );
+
 			$ret[ $struc['name'] ] = $struc;
 		}
 		return $ret;
--- a/web/wp-admin/includes/class-wp-importer.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-admin/includes/class-wp-importer.php	Wed Dec 19 17:46:52 2012 -0800
@@ -132,9 +132,6 @@
 				exit();
 			}
 			$blog_id = (int) $blog->blog_id;
-			// Restore global $current_blog
-			global $current_blog;
-			$current_blog = $blog;
 		}
 
 		if ( function_exists( 'is_multisite' ) ) {
@@ -212,8 +209,6 @@
 	 * @return bool
 	 */
 	function is_user_over_quota() {
-		global $current_blog;
-
 		if ( function_exists( 'upload_is_user_over_quota' ) ) {
 			if ( upload_is_user_over_quota( 1 ) ) {
 				echo "Sorry, you have used your upload quota.\n";
--- a/web/wp-admin/includes/class-wp-links-list-table.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-admin/includes/class-wp-links-list-table.php	Wed Dec 19 17:46:52 2012 -0800
@@ -9,9 +9,10 @@
  */
 class WP_Links_List_Table extends WP_List_Table {
 
-	function __construct() {
+	function __construct( $args = array() ) {
 		parent::__construct( array(
 			'plural' => 'bookmarks',
+			'screen' => isset( $args['screen'] ) ? $args['screen'] : null,
 		) );
 	}
 
@@ -68,7 +69,7 @@
 				'orderby' => 'name',
 			);
 			wp_dropdown_categories( $dropdown_options );
-			submit_button( __( 'Filter' ), 'secondary', false, false, array( 'id' => 'post-query-submit' ) );
+			submit_button( __( 'Filter' ), 'button', false, false, array( 'id' => 'post-query-submit' ) );
 ?>
 		</div>
 <?php
@@ -128,8 +129,12 @@
 				$attributes = $class . $style;
 
 				switch ( $column_name ) {
-					case 'cb':
-						echo '<th scope="row" class="check-column"><input type="checkbox" name="linkcheck[]" value="'. esc_attr( $link->link_id ) .'" /></th>';
+					case 'cb': ?>
+						<th scope="row" class="check-column">
+							<label class="screen-reader-text" for="cb-select-<?php echo $link->link_id; ?>"><?php echo sprintf( __( 'Select %s' ), $link->link_name ); ?></label>
+							<input type="checkbox" name="linkcheck[]" id="cb-select-<?php echo $link->link_id; ?>" value="<?php echo esc_attr( $link->link_id ); ?>" />
+						</th>
+						<?php
 						break;
 
 					case 'name':
--- a/web/wp-admin/includes/class-wp-list-table.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-admin/includes/class-wp-list-table.php	Wed Dec 19 17:46:52 2012 -0800
@@ -81,15 +81,16 @@
 		$args = wp_parse_args( $args, array(
 			'plural' => '',
 			'singular' => '',
-			'ajax' => false
+			'ajax' => false,
+			'screen' => null,
 		) );
 
-		$screen = get_current_screen();
+		$this->screen = convert_to_screen( $args['screen'] );
 
-		add_filter( "manage_{$screen->id}_columns", array( &$this, 'get_columns' ), 0 );
+		add_filter( "manage_{$this->screen->id}_columns", array( &$this, 'get_columns' ), 0 );
 
 		if ( !$args['plural'] )
-			$args['plural'] = $screen->base;
+			$args['plural'] = $this->screen->base;
 
 		$args['plural'] = sanitize_key( $args['plural'] );
 		$args['singular'] = sanitize_key( $args['singular'] );
@@ -209,6 +210,10 @@
 			echo '<input type="hidden" name="orderby" value="' . esc_attr( $_REQUEST['orderby'] ) . '" />';
 		if ( ! empty( $_REQUEST['order'] ) )
 			echo '<input type="hidden" name="order" value="' . esc_attr( $_REQUEST['order'] ) . '" />';
+		if ( ! empty( $_REQUEST['post_mime_type'] ) )
+			echo '<input type="hidden" name="post_mime_type" value="' . esc_attr( $_REQUEST['post_mime_type'] ) . '" />';
+		if ( ! empty( $_REQUEST['detached'] ) )
+			echo '<input type="hidden" name="detached" value="' . esc_attr( $_REQUEST['detached'] ) . '" />';
 ?>
 <p class="search-box">
 	<label class="screen-reader-text" for="<?php echo $input_id ?>"><?php echo $text; ?>:</label>
@@ -238,10 +243,8 @@
 	 * @access public
 	 */
 	function views() {
-		$screen = get_current_screen();
-
 		$views = $this->get_views();
-		$views = apply_filters( 'views_' . $screen->id, $views );
+		$views = apply_filters( 'views_' . $this->screen->id, $views );
 
 		if ( empty( $views ) )
 			return;
@@ -274,12 +277,10 @@
 	 * @access public
 	 */
 	function bulk_actions() {
-		$screen = get_current_screen();
-
 		if ( is_null( $this->_actions ) ) {
 			$no_new_actions = $this->_actions = $this->get_bulk_actions();
 			// This filter can currently only be used to remove actions.
-			$this->_actions = apply_filters( 'bulk_actions-' . $screen->id, $this->_actions );
+			$this->_actions = apply_filters( 'bulk_actions-' . $this->screen->id, $this->_actions );
 			$this->_actions = array_intersect_assoc( $this->_actions, $no_new_actions );
 			$two = '';
 		} else {
@@ -300,7 +301,7 @@
 
 		echo "</select>\n";
 
-		submit_button( __( 'Apply' ), 'button-secondary action', false, false, array( 'id' => "doaction$two" ) );
+		submit_button( __( 'Apply' ), 'action', false, false, array( 'id' => "doaction$two" ) );
 		echo "\n";
 	}
 
@@ -490,7 +491,7 @@
 
 		$current = $this->get_pagenum();
 
-		$current_url = ( is_ssl() ? 'https://' : 'http://' ) . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
+		$current_url = set_url_scheme( 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'] );
 
 		$current_url = remove_query_arg( array( 'hotkeys_highlight_last', 'hotkeys_highlight_first' ), $current_url );
 
@@ -600,12 +601,10 @@
 		if ( isset( $this->_column_headers ) )
 			return $this->_column_headers;
 
-		$screen = get_current_screen();
+		$columns = get_column_headers( $this->screen );
+		$hidden = get_hidden_columns( $this->screen );
 
-		$columns = get_column_headers( $screen );
-		$hidden = get_hidden_columns( $screen );
-
-		$_sortable = apply_filters( "manage_{$screen->id}_sortable_columns", $this->get_sortable_columns() );
+		$_sortable = apply_filters( "manage_{$this->screen->id}_sortable_columns", $this->get_sortable_columns() );
 
 		$sortable = array();
 		foreach ( $_sortable as $id => $data ) {
@@ -647,11 +646,9 @@
 	 * @param bool $with_id Whether to set the id attribute or not
 	 */
 	function print_column_headers( $with_id = true ) {
-		$screen = get_current_screen();
-
 		list( $columns, $hidden, $sortable ) = $this->get_column_info();
 
-		$current_url = ( is_ssl() ? 'https://' : 'http://' ) . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
+		$current_url = set_url_scheme( 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'] );
 		$current_url = remove_query_arg( 'paged', $current_url );
 
 		if ( isset( $_GET['orderby'] ) )
@@ -664,6 +661,13 @@
 		else
 			$current_order = 'asc';
 
+		if ( ! empty( $columns['cb'] ) ) {
+			static $cb_counter = 1;
+			$columns['cb'] = '<label class="screen-reader-text" for="cb-select-all-' . $cb_counter . '">' . __( 'Select All' ) . '</label>'
+				. '<input id="cb-select-all-' . $cb_counter . '" type="checkbox" />';
+			$cb_counter++;
+		}
+
 		foreach ( $columns as $column_key => $column_display_name ) {
 			$class = array( 'manage-column', "column-$column_key" );
 
@@ -728,7 +732,7 @@
 	</tr>
 	</tfoot>
 
-	<tbody id="the-list"<?php if ( $singular ) echo " class='list:$singular'"; ?>>
+	<tbody id="the-list"<?php if ( $singular ) echo " data-wp-lists='list:$singular'"; ?>>
 		<?php $this->display_rows_or_placeholder(); ?>
 	</tbody>
 </table>
@@ -761,7 +765,7 @@
 	<div class="tablenav <?php echo esc_attr( $which ); ?>">
 
 		<div class="alignleft actions">
-			<?php $this->bulk_actions( $which ); ?>
+			<?php $this->bulk_actions(); ?>
 		</div>
 <?php
 		$this->extra_tablenav( $which );
@@ -903,13 +907,11 @@
 	 * @access private
 	 */
 	function _js_vars() {
-		$current_screen = get_current_screen();
-
 		$args = array(
 			'class'  => get_class( $this ),
 			'screen' => array(
-				'id'   => $current_screen->id,
-				'base' => $current_screen->base,
+				'id'   => $this->screen->id,
+				'base' => $this->screen->base,
 			)
 		);
 
--- a/web/wp-admin/includes/class-wp-media-list-table.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-admin/includes/class-wp-media-list-table.php	Wed Dec 19 17:46:52 2012 -0800
@@ -9,11 +9,12 @@
  */
 class WP_Media_List_Table extends WP_List_Table {
 
-	function __construct() {
+	function __construct( $args = array() ) {
 		$this->detached = isset( $_REQUEST['detached'] ) || isset( $_REQUEST['find_detached'] );
 
 		parent::__construct( array(
-			'plural' => 'media'
+			'plural' => 'media',
+			'screen' => isset( $args['screen'] ) ? $args['screen'] : null,
 		) );
 	}
 
@@ -91,13 +92,13 @@
 			$this->months_dropdown( 'attachment' );
 
 			do_action( 'restrict_manage_posts' );
-			submit_button( __( 'Filter' ), 'secondary', false, false, array( 'id' => 'post-query-submit' ) );
+			submit_button( __( 'Filter' ), 'button', false, false, array( 'id' => 'post-query-submit' ) );
 		}
 
 		if ( $this->detached ) {
 			submit_button( __( 'Scan for lost attachments' ), 'secondary', 'find_detached', false );
 		} elseif ( $this->is_trash && current_user_can( 'edit_others_posts' ) ) {
-			submit_button( __( 'Empty Trash' ), 'button-secondary apply', 'delete_all', false );
+			submit_button( __( 'Empty Trash' ), 'apply', 'delete_all', false );
 		} ?>
 		</div>
 <?php
@@ -131,12 +132,31 @@
 		/* translators: column name */
 		$posts_columns['title'] = _x( 'File', 'column name' );
 		$posts_columns['author'] = __( 'Author' );
-		//$posts_columns['tags'] = _x( 'Tags', 'column name' );
+
+		$taxonomies = array();
+
+		$taxonomies = get_taxonomies_for_attachments( 'objects' );
+		$taxonomies = wp_filter_object_list( $taxonomies, array( 'show_admin_column' => true ), 'and', 'name' );
+
+		$taxonomies = apply_filters( 'manage_taxonomies_for_attachment_columns', $taxonomies, 'attachment' );
+		$taxonomies = array_filter( $taxonomies, 'taxonomy_exists' );
+
+		foreach ( $taxonomies as $taxonomy ) {
+			if ( 'category' == $taxonomy )
+				$column_key = 'categories';
+			elseif ( 'post_tag' == $taxonomy )
+				$column_key = 'tags';
+			else
+				$column_key = 'taxonomy-' . $taxonomy;
+
+			$posts_columns[ $column_key ] = get_taxonomy( $taxonomy )->labels->name;
+		}
+
 		/* translators: column name */
 		if ( !$this->detached ) {
-			$posts_columns['parent'] = _x( 'Attached to', 'column name' );
+			$posts_columns['parent'] = _x( 'Uploaded to', 'column name' );
 			if ( post_type_supports( 'attachment', 'comments' ) )
-				$posts_columns['comments'] = '<span class="vers"><img alt="' . esc_attr__( 'Comments' ) . '" src="' . esc_url( admin_url( 'images/comment-grey-bubble.png' ) ) . '" /></span>';
+				$posts_columns['comments'] = '<span class="vers"><div title="' . esc_attr__( 'Comments' ) . '" class="comment-grey-bubble"></div></span>';
 		}
 		/* translators: column name */
 		$posts_columns['date'] = _x( 'Date', 'column name' );
@@ -191,7 +211,8 @@
 ?>
 		<th scope="row" class="check-column">
 			<?php if ( $user_can_edit ) { ?>
-				<input type="checkbox" name="media[]" value="<?php the_ID(); ?>" />
+				<label class="screen-reader-text" for="cb-select-<?php the_ID(); ?>"><?php echo sprintf( __( 'Select %s' ), $att_title );?></label>
+				<input type="checkbox" name="media[]" id="cb-select-<?php the_ID(); ?>" value="<?php the_ID(); ?>" />
 			<?php } ?>
 		</th>
 <?php
@@ -249,23 +270,6 @@
 <?php
 		break;
 
-	case 'tags':
-?>
-		<td <?php echo $attributes ?>><?php
-		$tags = get_the_tags();
-		if ( !empty( $tags ) ) {
-			$out = array();
-			foreach ( $tags as $c )
-				$out[] = "<a href='edit.php?tag=$c->slug'> " . esc_html( sanitize_term_field( 'name', $c->name, $c->term_id, 'post_tag', 'display' ) ) . "</a>";
-			echo join( ', ', $out );
-		} else {
-			_e( 'No Tags' );
-		}
-?>
-		</td>
-<?php
-		break;
-
 	case 'desc':
 ?>
 		<td <?php echo $attributes ?>><?php echo has_excerpt() ? $post->post_excerpt : ''; ?></td>
@@ -273,13 +277,12 @@
 		break;
 
 	case 'date':
-		if ( '0000-00-00 00:00:00' == $post->post_date && 'date' == $column_name ) {
-			$t_time = $h_time = __( 'Unpublished' );
+		if ( '0000-00-00 00:00:00' == $post->post_date ) {
+			$h_time = __( 'Unpublished' );
 		} else {
-			$t_time = get_the_time( __( 'Y/m/d g:i:s A' ) );
 			$m_time = $post->post_date;
 			$time = get_post_time( 'G', true, $post, false );
-			if ( ( abs( $t_diff = time() - $time ) ) < 86400 ) {
+			if ( ( abs( $t_diff = time() - $time ) ) < DAY_IN_SECONDS ) {
 				if ( $t_diff < 0 )
 					$h_time = sprintf( __( '%s from now' ), human_time_diff( $time ) );
 				else
@@ -338,6 +341,38 @@
 		break;
 
 	default:
+		if ( 'categories' == $column_name )
+			$taxonomy = 'category';
+		elseif ( 'tags' == $column_name )
+			$taxonomy = 'post_tag';
+		elseif ( 0 === strpos( $column_name, 'taxonomy-' ) )
+			$taxonomy = substr( $column_name, 9 );
+		else
+			$taxonomy = false;
+
+		if ( $taxonomy ) {
+			$taxonomy_object = get_taxonomy( $taxonomy );
+			echo '<td ' . $attributes . '>';
+			if ( $terms = get_the_terms( $post->ID, $taxonomy ) ) {
+				$out = array();
+				foreach ( $terms as $t ) {
+					$posts_in_term_qv = array();
+					$posts_in_term_qv['taxonomy'] = $taxonomy;
+					$posts_in_term_qv['term'] = $t->slug;
+
+					$out[] = sprintf( '<a href="%s">%s</a>',
+						esc_url( add_query_arg( $posts_in_term_qv, 'upload.php' ) ),
+						esc_html( sanitize_term_field( 'name', $t->name, $t->term_id, $taxonomy, 'display' ) )
+					);
+				}
+				/* translators: used between list items, there is a space after the comma */
+				echo join( __( ', ' ), $out );
+			} else {
+				echo '&#8212;';
+			}
+			echo '</td>';
+			break;
+		}
 ?>
 		<td <?php echo $attributes ?>>
 			<?php do_action( 'manage_media_custom_column', $column_name, $id ); ?>
@@ -359,10 +394,10 @@
 				$actions['edit'] = '<a href="' . get_edit_post_link( $post->ID, true ) . '">' . __( 'Edit' ) . '</a>';
 			if ( current_user_can( 'delete_post', $post->ID ) )
 				if ( EMPTY_TRASH_DAYS && MEDIA_TRASH ) {
-					$actions['trash'] = "<a class='submitdelete' href='" . wp_nonce_url( "post.php?action=trash&amp;post=$post->ID", 'trash-attachment_' . $post->ID ) . "'>" . __( 'Trash' ) . "</a>";
+					$actions['trash'] = "<a class='submitdelete' href='" . wp_nonce_url( "post.php?action=trash&amp;post=$post->ID", 'trash-post_' . $post->ID ) . "'>" . __( 'Trash' ) . "</a>";
 				} else {
 					$delete_ays = !MEDIA_TRASH ? " onclick='return showNotice.warn();'" : '';
-					$actions['delete'] = "<a class='submitdelete'$delete_ays href='" . wp_nonce_url( "post.php?action=delete&amp;post=$post->ID", 'delete-attachment_' . $post->ID ) . "'>" . __( 'Delete Permanently' ) . "</a>";
+					$actions['delete'] = "<a class='submitdelete'$delete_ays href='" . wp_nonce_url( "post.php?action=delete&amp;post=$post->ID", 'delete-post_' . $post->ID ) . "'>" . __( 'Delete Permanently' ) . "</a>";
 				}
 			$actions['view'] = '<a href="' . get_permalink( $post->ID ) . '" title="' . esc_attr( sprintf( __( 'View &#8220;%s&#8221;' ), $att_title ) ) . '" rel="permalink">' . __( 'View' ) . '</a>';
 			if ( current_user_can( 'edit_post', $post->ID ) )
@@ -373,12 +408,12 @@
 				$actions['edit'] = '<a href="' . get_edit_post_link( $post->ID, true ) . '">' . __( 'Edit' ) . '</a>';
 			if ( current_user_can( 'delete_post', $post->ID ) ) {
 				if ( $this->is_trash )
-					$actions['untrash'] = "<a class='submitdelete' href='" . wp_nonce_url( "post.php?action=untrash&amp;post=$post->ID", 'untrash-attachment_' . $post->ID ) . "'>" . __( 'Restore' ) . "</a>";
+					$actions['untrash'] = "<a class='submitdelete' href='" . wp_nonce_url( "post.php?action=untrash&amp;post=$post->ID", 'untrash-post_' . $post->ID ) . "'>" . __( 'Restore' ) . "</a>";
 				elseif ( EMPTY_TRASH_DAYS && MEDIA_TRASH )
-					$actions['trash'] = "<a class='submitdelete' href='" . wp_nonce_url( "post.php?action=trash&amp;post=$post->ID", 'trash-attachment_' . $post->ID ) . "'>" . __( 'Trash' ) . "</a>";
+					$actions['trash'] = "<a class='submitdelete' href='" . wp_nonce_url( "post.php?action=trash&amp;post=$post->ID", 'trash-post_' . $post->ID ) . "'>" . __( 'Trash' ) . "</a>";
 				if ( $this->is_trash || !EMPTY_TRASH_DAYS || !MEDIA_TRASH ) {
 					$delete_ays = ( !$this->is_trash && !MEDIA_TRASH ) ? " onclick='return showNotice.warn();'" : '';
-					$actions['delete'] = "<a class='submitdelete'$delete_ays href='" . wp_nonce_url( "post.php?action=delete&amp;post=$post->ID", 'delete-attachment_' . $post->ID ) . "'>" . __( 'Delete Permanently' ) . "</a>";
+					$actions['delete'] = "<a class='submitdelete'$delete_ays href='" . wp_nonce_url( "post.php?action=delete&amp;post=$post->ID", 'delete-post_' . $post->ID ) . "'>" . __( 'Delete Permanently' ) . "</a>";
 				}
 			}
 			if ( !$this->is_trash ) {
--- a/web/wp-admin/includes/class-wp-ms-sites-list-table.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-admin/includes/class-wp-ms-sites-list-table.php	Wed Dec 19 17:46:52 2012 -0800
@@ -9,9 +9,10 @@
  */
 class WP_MS_Sites_List_Table extends WP_List_Table {
 
-	function __construct() {
+	function __construct( $args = array() ) {
 		parent::__construct( array(
 			'plural' => 'sites',
+			'screen' => isset( $args['screen'] ) ? $args['screen'] : null,
 		) );
 	}
 
@@ -213,6 +214,7 @@
 				switch ( $column_name ) {
 					case 'cb': ?>
 						<th scope="row" class="check-column">
+							<label class="screen-reader-text" for="blog_<?php echo $blog['blog_id']; ?>"><?php printf( __( 'Select %s' ), $blogname ); ?></label>
 							<input type="checkbox" id="blog_<?php echo $blog['blog_id'] ?>" name="allblogs[]" value="<?php echo esc_attr( $blog['blog_id'] ) ?>" />
 						</th>
 					<?php
@@ -229,8 +231,11 @@
 						echo "<td class='column-$column_name $column_name'$style>"; ?>
 							<a href="<?php echo esc_url( network_admin_url( 'site-info.php?id=' . $blog['blog_id'] ) ); ?>" class="edit"><?php echo $blogname . $blog_state; ?></a>
 							<?php
-							if ( 'list' != $mode )
-								echo '<p>' . sprintf( _x( '%1$s &#8211; <em>%2$s</em>', '%1$s: site name. %2$s: site tagline.' ), get_blog_option( $blog['blog_id'], 'blogname' ), get_blog_option( $blog['blog_id'], 'blogdescription ' ) ) . '</p>';
+							if ( 'list' != $mode ) {
+								switch_to_blog( $blog['blog_id'] );
+								echo '<p>' . sprintf( _x( '%1$s &#8211; <em>%2$s</em>', '%1$s: site name. %2$s: site tagline.' ), get_option( 'blogname' ), get_option( 'blogdescription ' ) ) . '</p>';
+								restore_current_blog();
+							}
 
 							// Preordered.
 							$actions = array(
@@ -264,7 +269,7 @@
 									$actions['delete']	= '<span class="delete"><a href="' . esc_url( wp_nonce_url( network_admin_url( 'sites.php?action=confirm&amp;action2=deleteblog&amp;id=' . $blog['blog_id'] . '&amp;msg=' . urlencode( sprintf( __( 'You are about to delete the site %s.' ), $blogname ) ) ), 'confirm') ) . '">' . __( 'Delete' ) . '</a></span>';
 							}
 
-							$actions['visit']	= "<span class='view'><a href='" . esc_url( get_home_url( $blog['blog_id'] ) ) . "' rel='permalink'>" . __( 'Visit' ) . '</a></span>';
+							$actions['visit']	= "<span class='view'><a href='" . esc_url( get_home_url( $blog['blog_id'], '/' ) ) . "' rel='permalink'>" . __( 'Visit' ) . '</a></span>';
 
 							$actions = apply_filters( 'manage_sites_action_links', array_filter( $actions ), $blog['blog_id'], $blogname );
 							echo $this->row_actions( $actions );
--- a/web/wp-admin/includes/class-wp-ms-themes-list-table.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-admin/includes/class-wp-ms-themes-list-table.php	Wed Dec 19 17:46:52 2012 -0800
@@ -12,24 +12,24 @@
 	var $site_id;
 	var $is_site_themes;
 
-	function __construct() {
+	function __construct( $args = array() ) {
 		global $status, $page;
 
+		parent::__construct( array(
+			'plural' => 'themes',
+			'screen' => isset( $args['screen'] ) ? $args['screen'] : null,
+		) );
+
 		$status = isset( $_REQUEST['theme_status'] ) ? $_REQUEST['theme_status'] : 'all';
 		if ( !in_array( $status, array( 'all', 'enabled', 'disabled', 'upgrade', 'search', 'broken' ) ) )
 			$status = 'all';
 
 		$page = $this->get_pagenum();
 
-		$screen = get_current_screen();
-		$this->is_site_themes = ( 'site-themes-network' == $screen->id ) ? true : false;
+		$this->is_site_themes = ( 'site-themes-network' == $this->screen->id ) ? true : false;
 
 		if ( $this->is_site_themes )
 			$this->site_id = isset( $_REQUEST['id'] ) ? intval( $_REQUEST['id'] ) : 0;
-
-		parent::__construct( array(
-			'plural' => 'themes'
-		) );
 	}
 
 	function get_table_classes() {
@@ -37,16 +37,10 @@
 	}
 
 	function ajax_user_can() {
-		$menu_perms = get_site_option( 'menu_items', array() );
-
-		if ( empty( $menu_perms['themes'] ) && ! is_super_admin() )
-			return false;
-
-		if ( $this->is_site_themes && !current_user_can('manage_sites') )
-			return false;
-		elseif ( !$this->is_site_themes && !current_user_can('manage_network_themes') )
-			return false;
-		return true;
+		if ( $this->is_site_themes )
+			return current_user_can( 'manage_sites' );
+		else
+			return current_user_can( 'manage_network_themes' );
 	}
 
 	function prepare_items() {
@@ -240,23 +234,14 @@
 		if ( 'disabled' != $status )
 			$actions['disable-selected'] = $this->is_site_themes ? __( 'Disable' ) : __( 'Network Disable' );
 		if ( ! $this->is_site_themes ) {
+			if ( current_user_can( 'update_themes' ) )
+				$actions['update-selected'] = __( 'Update' );
 			if ( current_user_can( 'delete_themes' ) )
 				$actions['delete-selected'] = __( 'Delete' );
-			if ( current_user_can( 'update_themes' ) )
-				$actions['update-selected'] = __( 'Update' );
 		}
 		return $actions;
 	}
 
-	function bulk_actions( $which ) {
-		global $status;
-		parent::bulk_actions( $which );
-	}
-
-	function current_action() {
-		return parent::current_action();
-	}
-
 	function display_rows() {
 		foreach ( $this->items as $key => $theme )
 			$this->single_row( $key, $theme );
@@ -283,27 +268,28 @@
 			'delete' => ''
 		);
 
-		$theme_key = $theme->get_stylesheet();
+		$stylesheet = $theme->get_stylesheet();
+		$theme_key = urlencode( $stylesheet );
 
 		if ( ! $allowed ) {
 			if ( ! $theme->errors() )
-				$actions['enable'] = '<a href="' . esc_url( wp_nonce_url($url . 'action=enable&amp;theme=' . $theme_key . '&amp;paged=' . $page . '&amp;s=' . $s, 'enable-theme_' . $theme_key) ) . '" title="' . esc_attr__('Enable this theme') . '" class="edit">' . ( $this->is_site_themes ? __( 'Enable' ) : __( 'Network Enable' ) ) . '</a>';
+				$actions['enable'] = '<a href="' . esc_url( wp_nonce_url($url . 'action=enable&amp;theme=' . $theme_key . '&amp;paged=' . $page . '&amp;s=' . $s, 'enable-theme_' . $stylesheet ) ) . '" title="' . esc_attr__('Enable this theme') . '" class="edit">' . ( $this->is_site_themes ? __( 'Enable' ) : __( 'Network Enable' ) ) . '</a>';
 		} else {
-			$actions['disable'] = '<a href="' . esc_url( wp_nonce_url($url . 'action=disable&amp;theme=' . $theme_key . '&amp;paged=' . $page . '&amp;s=' . $s, 'disable-theme_' . $theme_key) ) . '" title="' . esc_attr__('Disable this theme') . '">' . ( $this->is_site_themes ? __( 'Disable' ) : __( 'Network Disable' ) ) . '</a>';
+			$actions['disable'] = '<a href="' . esc_url( wp_nonce_url($url . 'action=disable&amp;theme=' . $theme_key . '&amp;paged=' . $page . '&amp;s=' . $s, 'disable-theme_' . $stylesheet ) ) . '" title="' . esc_attr__('Disable this theme') . '">' . ( $this->is_site_themes ? __( 'Disable' ) : __( 'Network Disable' ) ) . '</a>';
 		}
 
 		if ( current_user_can('edit_themes') )
-			$actions['edit'] = '<a href="' . esc_url('theme-editor.php?theme=' . urlencode( $theme_key ) ) . '" title="' . esc_attr__('Open this theme in the Theme Editor') . '" class="edit">' . __('Edit') . '</a>';
+			$actions['edit'] = '<a href="' . esc_url('theme-editor.php?theme=' . $theme_key ) . '" title="' . esc_attr__('Open this theme in the Theme Editor') . '" class="edit">' . __('Edit') . '</a>';
 
-		if ( ! $allowed && current_user_can( 'delete_themes' ) && ! $this->is_site_themes && $theme_key != get_option( 'stylesheet' ) && $theme_key != get_option( 'template' ) )
+		if ( ! $allowed && current_user_can( 'delete_themes' ) && ! $this->is_site_themes && $stylesheet != get_option( 'stylesheet' ) && $stylesheet != get_option( 'template' ) )
 			$actions['delete'] = '<a href="' . esc_url( wp_nonce_url( 'themes.php?action=delete-selected&amp;checked[]=' . $theme_key . '&amp;theme_status=' . $context . '&amp;paged=' . $page . '&amp;s=' . $s, 'bulk-themes' ) ) . '" title="' . esc_attr__( 'Delete this theme' ) . '" class="delete">' . __( 'Delete' ) . '</a>';
 
-		$actions = apply_filters( 'theme_action_links', array_filter( $actions ), $theme_key, $theme, $context );
-		$actions = apply_filters( "theme_action_links_$theme_key", $actions, $theme_key, $theme, $context );
+		$actions = apply_filters( 'theme_action_links', array_filter( $actions ), $stylesheet, $theme, $context );
+		$actions = apply_filters( "theme_action_links_$stylesheet", $actions, $stylesheet, $theme, $context );
 
 		$class = ! $allowed ? 'inactive' : 'active';
 		$checkbox_id = "checkbox_" . md5( $theme->get('Name') );
-		$checkbox = "<input type='checkbox' name='checked[]' value='" . esc_attr( $theme_key ) . "' id='" . $checkbox_id . "' /><label class='screen-reader-text' for='" . $checkbox_id . "' >" . __('Select') . " " . $theme->display('Name') . "</label>";
+		$checkbox = "<input type='checkbox' name='checked[]' value='" . esc_attr( $stylesheet ) . "' id='" . $checkbox_id . "' /><label class='screen-reader-text' for='" . $checkbox_id . "' >" . __('Select') . " " . $theme->display('Name') . "</label>";
 
 		$id = sanitize_html_class( $theme->get_stylesheet() );
 
@@ -347,7 +333,7 @@
 					if ( $theme->get('ThemeURI') )
 						$theme_meta[] = '<a href="' . $theme->display('ThemeURI') . '" title="' . esc_attr__( 'Visit theme homepage' ) . '">' . __( 'Visit Theme Site' ) . '</a>';
 
-					$theme_meta = apply_filters( 'theme_row_meta', $theme_meta, $theme_key, $theme, $status );
+					$theme_meta = apply_filters( 'theme_row_meta', $theme_meta, $stylesheet, $theme, $status );
 					echo implode( ' | ', $theme_meta );
 
 					echo "</div></td>";
@@ -355,7 +341,7 @@
 
 				default:
 					echo "<td class='$column_name column-$column_name'$style>";
-					do_action( 'manage_themes_custom_column', $column_name, $theme_key, $theme );
+					do_action( 'manage_themes_custom_column', $column_name, $stylesheet, $theme );
 					echo "</td>";
 			}
 		}
@@ -363,8 +349,8 @@
 		echo "</tr>";
 
 		if ( $this->is_site_themes )
-			remove_action( "after_theme_row_$theme_key", 'wp_theme_update_row' );
-		do_action( 'after_theme_row', $theme_key, $theme, $status );
-		do_action( "after_theme_row_$theme_key", $theme_key, $theme, $status );
+			remove_action( "after_theme_row_$stylesheet", 'wp_theme_update_row' );
+		do_action( 'after_theme_row', $stylesheet, $theme, $status );
+		do_action( "after_theme_row_$stylesheet", $stylesheet, $theme, $status );
 	}
 }
--- a/web/wp-admin/includes/class-wp-ms-users-list-table.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-admin/includes/class-wp-ms-users-list-table.php	Wed Dec 19 17:46:52 2012 -0800
@@ -165,6 +165,7 @@
 				switch ( $column_name ) {
 					case 'cb': ?>
 						<th scope="row" class="check-column">
+							<label class="screen-reader-text" for="blog_<?php echo $user->ID; ?>"><?php echo sprintf( __( 'Select %s' ), $user->user_login ); ?></label>
 							<input type="checkbox" id="blog_<?php echo $user->ID ?>" name="allusers[]" value="<?php echo esc_attr( $user->ID ) ?>" />
 						</th>
 					<?php
@@ -172,11 +173,7 @@
 
 					case 'username':
 						$avatar	= get_avatar( $user->user_email, 32 );
-						if ( get_current_user_id() == $user->ID ) {
-							$edit_link = esc_url( network_admin_url( 'profile.php' ) );
-						} else {
-							$edit_link = esc_url( network_admin_url( add_query_arg( 'wp_http_referer', urlencode( stripslashes( $_SERVER['REQUEST_URI'] ) ), 'user-edit.php?user_id=' . $user->ID ) ) );
-						}
+						$edit_link = esc_url( add_query_arg( 'wp_http_referer', urlencode( stripslashes( $_SERVER['REQUEST_URI'] ) ), get_edit_user_link( $user->ID ) ) );
 
 						echo "<td $attributes>"; ?>
 							<?php echo $avatar; ?><strong><a href="<?php echo $edit_link; ?>" class="edit"><?php echo stripslashes( $user->user_login ); ?></a><?php
--- a/web/wp-admin/includes/class-wp-plugin-install-list-table.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-admin/includes/class-wp-plugin-install-list-table.php	Wed Dec 19 17:46:52 2012 -0800
@@ -29,10 +29,11 @@
 		$tabs['dashboard'] = __( 'Search' );
 		if ( 'search' == $tab )
 			$tabs['search']	= __( 'Search Results' );
-		$tabs['upload'] = __( 'Upload' );
-		$tabs['featured'] = _x( 'Featured','Plugin Installer' );
-		$tabs['popular']  = _x( 'Popular','Plugin Installer' );
-		$tabs['new']      = _x( 'Newest','Plugin Installer' );
+		$tabs['upload']    = __( 'Upload' );
+		$tabs['featured']  = _x( 'Featured', 'Plugin Installer' );
+		$tabs['popular']   = _x( 'Popular', 'Plugin Installer' );
+		$tabs['new']       = _x( 'Newest', 'Plugin Installer' );
+		$tabs['favorites'] = _x( 'Favorites', 'Plugin Installer' );
 
 		$nonmenu_tabs = array( 'plugin-information' ); //Valid actions to perform which do not have a Menu item.
 
@@ -71,6 +72,17 @@
 				$args['browse'] = $tab;
 				break;
 
+			case 'favorites':
+				$user = isset( $_GET['user'] ) ? stripslashes( $_GET['user'] ) : get_user_option( 'wporg_favorites' );
+				update_user_meta( get_current_user_id(), 'wporg_favorites', $user );
+				if ( $user )
+					$args['user'] = $user;
+				else
+					$args = false;
+
+				add_action( 'install_plugins_favorites', 'install_plugins_favorites_form', 9, 0 );
+				break;
+
 			default:
 				$args = false;
 		}
@@ -115,13 +127,11 @@
 					<?php do_action( 'install_plugins_table_header' ); ?>
 				</div>
 				<?php $this->pagination( $which ); ?>
-				<img src="<?php echo esc_url( admin_url( 'images/wpspin_light.gif' ) ); ?>" class="ajax-loading list-ajax-loading" alt="" />
 				<br class="clear" />
 			</div>
 		<?php } else { ?>
 			<div class="tablenav bottom">
 				<?php $this->pagination( $which ); ?>
-				<img src="<?php echo esc_url( admin_url( 'images/wpspin_light.gif' ) ); ?>" class="ajax-loading list-ajax-loading" alt="" />
 				<br class="clear" />
 			</div>
 		<?php
--- a/web/wp-admin/includes/class-wp-plugins-list-table.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-admin/includes/class-wp-plugins-list-table.php	Wed Dec 19 17:46:52 2012 -0800
@@ -9,9 +9,14 @@
  */
 class WP_Plugins_List_Table extends WP_List_Table {
 
-	function __construct() {
+	function __construct( $args = array() ) {
 		global $status, $page;
 
+		parent::__construct( array(
+			'plural' => 'plugins',
+			'screen' => isset( $args['screen'] ) ? $args['screen'] : null,
+		) );
+
 		$status = 'all';
 		if ( isset( $_REQUEST['plugin_status'] ) && in_array( $_REQUEST['plugin_status'], array( 'active', 'inactive', 'recently_activated', 'upgrade', 'mustuse', 'dropins', 'search' ) ) )
 			$status = $_REQUEST['plugin_status'];
@@ -20,10 +25,6 @@
 			$_SERVER['REQUEST_URI'] = add_query_arg('s', stripslashes($_REQUEST['s']) );
 
 		$page = $this->get_pagenum();
-
-		parent::__construct( array(
-			'plural' => 'plugins',
-		) );
 	}
 
 	function get_table_classes() {
@@ -31,13 +32,6 @@
 	}
 
 	function ajax_user_can() {
-		if ( is_multisite() ) {
-			$menu_perms = get_site_option( 'menu_items', array() );
-
-			if ( empty( $menu_perms['plugins'] ) && ! is_super_admin() )
-				return false;
-		}
-
 		return current_user_can('activate_plugins');
 	}
 
@@ -57,7 +51,7 @@
 			'dropins' => array()
 		);
 
-		$screen = get_current_screen();
+		$screen = $this->screen;
 
 		if ( ! is_multisite() || ( $screen->is_network && current_user_can('manage_network_plugins') ) ) {
 			if ( apply_filters( 'show_advanced_plugins', true, 'mustuse' ) )
@@ -76,14 +70,13 @@
 			}
 		}
 
-		set_transient( 'plugin_slugs', array_keys( $plugins['all'] ), 86400 );
+		set_transient( 'plugin_slugs', array_keys( $plugins['all'] ), DAY_IN_SECONDS );
 
 		if ( ! $screen->is_network ) {
 			$recently_activated = get_option( 'recently_activated', array() );
 
-			$one_week = 7*24*60*60;
 			foreach ( $recently_activated as $key => $time )
-				if ( $time + $one_week < time() )
+				if ( $time + WEEK_IN_SECONDS < time() )
 					unset( $recently_activated[$key] );
 			update_option( 'recently_activated', $recently_activated );
 		}
@@ -98,7 +91,7 @@
 				|| ( $screen->is_network && is_plugin_active_for_network( $plugin_file ) ) ) {
 				$plugins['active'][ $plugin_file ] = $plugin_data;
 			} else {
-				if ( !$screen->is_network && isset( $recently_activated[ $plugin_file ] ) ) // Was the plugin recently activated?
+				if ( ! $screen->is_network && isset( $recently_activated[ $plugin_file ] ) ) // Was the plugin recently activated?
 					$plugins['recently_activated'][ $plugin_file ] = $plugin_data;
 				$plugins['inactive'][ $plugin_file ] = $plugin_data;
 			}
@@ -243,15 +236,13 @@
 
 		$actions = array();
 
-		$screen = get_current_screen();
-
 		if ( 'active' != $status )
-			$actions['activate-selected'] = $screen->is_network ? __( 'Network Activate' ) : __( 'Activate' );
+			$actions['activate-selected'] = $this->screen->is_network ? __( 'Network Activate' ) : __( 'Activate' );
 
 		if ( 'inactive' != $status && 'recent' != $status )
-			$actions['deactivate-selected'] = $screen->is_network ? __( 'Network Deactivate' ) : __( 'Deactivate' );
+			$actions['deactivate-selected'] = $this->screen->is_network ? __( 'Network Deactivate' ) : __( 'Deactivate' );
 
-		if ( !is_multisite() || $screen->is_network ) {
+		if ( !is_multisite() || $this->screen->is_network ) {
 			if ( current_user_can( 'update_plugins' ) )
 				$actions['update-selected'] = __( 'Update' );
 			if ( current_user_can( 'delete_plugins' ) && ( 'active' != $status ) )
@@ -261,13 +252,13 @@
 		return $actions;
 	}
 
-	function bulk_actions( $which ) {
+	function bulk_actions() {
 		global $status;
 
 		if ( in_array( $status, array( 'mustuse', 'dropins' ) ) )
 			return;
 
-		parent::bulk_actions( $which );
+		parent::bulk_actions();
 	}
 
 	function extra_tablenav( $which ) {
@@ -278,10 +269,8 @@
 
 		echo '<div class="alignleft actions">';
 
-		$screen = get_current_screen();
-
-		if ( ! $screen->is_network && 'recently_activated' == $status )
-			submit_button( __( 'Clear List' ), 'secondary', 'clear-recent-list', false );
+		if ( ! $this->screen->is_network && 'recently_activated' == $status )
+			submit_button( __( 'Clear List' ), 'button', 'clear-recent-list', false );
 		elseif ( 'top' == $which && 'mustuse' == $status )
 			echo '<p>' . sprintf( __( 'Files in the <code>%s</code> directory are executed automatically.' ), str_replace( ABSPATH, '/', WPMU_PLUGIN_DIR ) ) . '</p>';
 		elseif ( 'top' == $which && 'dropins' == $status )
@@ -300,21 +289,19 @@
 	function display_rows() {
 		global $status;
 
-		$screen = get_current_screen();
-
-		if ( is_multisite() && !$screen->is_network && in_array( $status, array( 'mustuse', 'dropins' ) ) )
+		if ( is_multisite() && ! $this->screen->is_network && in_array( $status, array( 'mustuse', 'dropins' ) ) )
 			return;
 
 		foreach ( $this->items as $plugin_file => $plugin_data )
-			$this->single_row( $plugin_file, $plugin_data );
+			$this->single_row( array( $plugin_file, $plugin_data ) );
 	}
 
-	function single_row( $plugin_file, $plugin_data ) {
+	function single_row( $item ) {
 		global $status, $page, $s, $totals;
 
+		list( $plugin_file, $plugin_data ) = $item;
 		$context = $status;
-
-		$screen = get_current_screen();
+		$screen = $this->screen;
 
 		// preorder
 		$actions = array(
@@ -380,7 +367,12 @@
 
 		$class = $is_active ? 'active' : 'inactive';
 		$checkbox_id =  "checkbox_" . md5($plugin_data['Name']);
-		$checkbox = in_array( $status, array( 'mustuse', 'dropins' ) ) ? '' : "<input type='checkbox' name='checked[]' value='" . esc_attr( $plugin_file ) . "' id='" . $checkbox_id . "' /><label class='screen-reader-text' for='" . $checkbox_id . "' >" . __('Select') . " " . $plugin_data['Name'] . "</label>";
+		if ( in_array( $status, array( 'mustuse', 'dropins' ) ) ) {
+			$checkbox = '';
+		} else {
+			$checkbox = "<label class='screen-reader-text' for='" . $checkbox_id . "' >" . sprintf( __( 'Select %s' ), $plugin_data['Name'] ) . "</label>"
+				. "<input type='checkbox' name='checked[]' value='" . esc_attr( $plugin_file ) . "' id='" . $checkbox_id . "' />";
+		}
 		if ( 'dropins' != $context ) {
 			$description = '<p>' . ( $plugin_data['Description'] ? $plugin_data['Description'] : '&nbsp;' ) . '</p>';
 			$plugin_name = $plugin_data['Name'];
--- a/web/wp-admin/includes/class-wp-posts-list-table.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-admin/includes/class-wp-posts-list-table.php	Wed Dec 19 17:46:52 2012 -0800
@@ -45,10 +45,15 @@
 	 */
 	var $sticky_posts_count = 0;
 
-	function __construct() {
+	function __construct( $args = array() ) {
 		global $post_type_object, $wpdb;
 
-		$post_type = get_current_screen()->post_type;
+		parent::__construct( array(
+			'plural' => 'posts',
+			'screen' => isset( $args['screen'] ) ? $args['screen'] : null,
+		) );
+
+		$post_type = $this->screen->post_type;
 		$post_type_object = get_post_type_object( $post_type );
 
 		if ( !current_user_can( $post_type_object->cap->edit_others_posts ) ) {
@@ -66,28 +71,22 @@
 			$sticky_posts = implode( ', ', array_map( 'absint', (array) $sticky_posts ) );
 			$this->sticky_posts_count = $wpdb->get_var( $wpdb->prepare( "SELECT COUNT( 1 ) FROM $wpdb->posts WHERE post_type = %s AND post_status != 'trash' AND ID IN ($sticky_posts)", $post_type ) );
 		}
-
-		parent::__construct( array(
-			'plural' => 'posts',
-		) );
 	}
 
 	function ajax_user_can() {
-		global $post_type_object;
-
-		return current_user_can( $post_type_object->cap->edit_posts );
+		return current_user_can( get_post_type_object( $this->screen->post_type )->cap->edit_posts );
 	}
 
 	function prepare_items() {
-		global $post_type_object, $avail_post_stati, $wp_query, $per_page, $mode;
+		global $avail_post_stati, $wp_query, $per_page, $mode;
 
 		$avail_post_stati = wp_edit_posts_query();
 
-		$this->hierarchical_display = ( $post_type_object->hierarchical && 'menu_order title' == $wp_query->query['orderby'] );
+		$this->hierarchical_display = ( is_post_type_hierarchical( $this->screen->post_type ) && 'menu_order title' == $wp_query->query['orderby'] );
 
 		$total_items = $this->hierarchical_display ? $wp_query->post_count : $wp_query->found_posts;
 
-		$post_type = $post_type_object->name;
+		$post_type = $this->screen->post_type;
 		$per_page = $this->get_items_per_page( 'edit_' . $post_type . '_per_page' );
  		$per_page = apply_filters( 'edit_posts_per_page', $per_page, $post_type );
 
@@ -112,18 +111,16 @@
 	}
 
 	function no_items() {
-		global $post_type_object;
-
 		if ( isset( $_REQUEST['post_status'] ) && 'trash' == $_REQUEST['post_status'] )
-			echo $post_type_object->labels->not_found_in_trash;
+			echo get_post_type_object( $this->screen->post_type )->labels->not_found_in_trash;
 		else
-			echo $post_type_object->labels->not_found;
+			echo get_post_type_object( $this->screen->post_type )->labels->not_found;
 	}
 
 	function get_views() {
-		global $post_type_object, $locked_post_status, $avail_post_stati;
+		global $locked_post_status, $avail_post_stati;
 
-		$post_type = $post_type_object->name;
+		$post_type = $this->screen->post_type;
 
 		if ( !empty($locked_post_status) )
 			return array();
@@ -198,15 +195,15 @@
 	}
 
 	function extra_tablenav( $which ) {
-		global $post_type_object, $cat;
+		global $cat;
 ?>
 		<div class="alignleft actions">
 <?php
 		if ( 'top' == $which && !is_singular() ) {
 
-			$this->months_dropdown( $post_type_object->name );
+			$this->months_dropdown( $this->screen->post_type );
 
-			if ( is_object_in_taxonomy( $post_type_object->name, 'category' ) ) {
+			if ( is_object_in_taxonomy( $this->screen->post_type, 'category' ) ) {
 				$dropdown_options = array(
 					'show_option_all' => __( 'View all categories' ),
 					'hide_empty' => 0,
@@ -218,11 +215,11 @@
 				wp_dropdown_categories( $dropdown_options );
 			}
 			do_action( 'restrict_manage_posts' );
-			submit_button( __( 'Filter' ), 'secondary', false, false, array( 'id' => 'post-query-submit' ) );
+			submit_button( __( 'Filter' ), 'button', false, false, array( 'id' => 'post-query-submit' ) );
 		}
 
-		if ( $this->is_trash && current_user_can( $post_type_object->cap->edit_others_posts ) ) {
-			submit_button( __( 'Empty Trash' ), 'button-secondary apply', 'delete_all', false );
+		if ( $this->is_trash && current_user_can( get_post_type_object( $this->screen->post_type )->cap->edit_others_posts ) ) {
+			submit_button( __( 'Empty Trash' ), 'apply', 'delete_all', false );
 		}
 ?>
 		</div>
@@ -237,27 +234,20 @@
 	}
 
 	function pagination( $which ) {
-		global $post_type_object, $mode;
+		global $mode;
 
 		parent::pagination( $which );
 
-		if ( 'top' == $which && !$post_type_object->hierarchical )
+		if ( 'top' == $which && ! is_post_type_hierarchical( $this->screen->post_type ) )
 			$this->view_switcher( $mode );
 	}
 
 	function get_table_classes() {
-		global $post_type_object;
-
-		return array( 'widefat', 'fixed', $post_type_object->hierarchical ? 'pages' : 'posts' );
+		return array( 'widefat', 'fixed', is_post_type_hierarchical( $this->screen->post_type ) ? 'pages' : 'posts' );
 	}
 
 	function get_columns() {
-		$screen = get_current_screen();
-
-		if ( empty( $screen ) )
-			$post_type = 'post';
-		else
-			$post_type = $screen->post_type;
+		$post_type = $this->screen->post_type;
 
 		$posts_columns = array();
 
@@ -269,15 +259,28 @@
 		if ( post_type_supports( $post_type, 'author' ) )
 			$posts_columns['author'] = __( 'Author' );
 
-		if ( empty( $post_type ) || is_object_in_taxonomy( $post_type, 'category' ) )
-			$posts_columns['categories'] = __( 'Categories' );
+		$taxonomies = array();
+
+		$taxonomies = get_object_taxonomies( $post_type, 'objects' );
+		$taxonomies = wp_filter_object_list( $taxonomies, array( 'show_admin_column' => true ), 'and', 'name' );
+
+		$taxonomies = apply_filters( "manage_taxonomies_for_{$post_type}_columns", $taxonomies, $post_type );
+		$taxonomies = array_filter( $taxonomies, 'taxonomy_exists' );
 
-		if ( empty( $post_type ) || is_object_in_taxonomy( $post_type, 'post_tag' ) )
-			$posts_columns['tags'] = __( 'Tags' );
+		foreach ( $taxonomies as $taxonomy ) {
+			if ( 'category' == $taxonomy )
+				$column_key = 'categories';
+			elseif ( 'post_tag' == $taxonomy )
+				$column_key = 'tags';
+			else
+				$column_key = 'taxonomy-' . $taxonomy;
+
+			$posts_columns[ $column_key ] = get_taxonomy( $taxonomy )->labels->name;
+		}
 
 		$post_status = !empty( $_REQUEST['post_status'] ) ? $_REQUEST['post_status'] : 'all';
 		if ( post_type_supports( $post_type, 'comments' ) && !in_array( $post_status, array( 'pending', 'draft', 'future' ) ) )
-			$posts_columns['comments'] = '<span class="vers"><img alt="' . esc_attr__( 'Comments' ) . '" src="' . esc_url( admin_url( 'images/comment-grey-bubble.png' ) ) . '" /></span>';
+			$posts_columns['comments'] = '<span class="vers"><div title="' . esc_attr__( 'Comments' ) . '" class="comment-grey-bubble"></div></span>';
 
 		$posts_columns['date'] = __( 'Date' );
 
@@ -293,15 +296,14 @@
 	function get_sortable_columns() {
 		return array(
 			'title'    => 'title',
-			'author'   => 'author',
 			'parent'   => 'parent',
 			'comments' => 'comment_count',
 			'date'     => array( 'date', true )
 		);
 	}
 
-	function display_rows( $posts = array() ) {
-		global $wp_query, $post_type_object, $per_page;
+	function display_rows( $posts = array(), $level = 0 ) {
+		global $wp_query, $per_page;
 
 		if ( empty( $posts ) )
 			$posts = $wp_query->posts;
@@ -311,12 +313,12 @@
 		if ( $this->hierarchical_display ) {
 			$this->_display_rows_hierarchical( $posts, $this->get_pagenum(), $per_page );
 		} else {
-			$this->_display_rows( $posts );
+			$this->_display_rows( $posts, $level );
 		}
 	}
 
-	function _display_rows( $posts ) {
-		global $post, $mode;
+	function _display_rows( $posts, $level = 0 ) {
+		global $mode;
 
 		// Create array of post IDs.
 		$post_ids = array();
@@ -327,7 +329,7 @@
 		$this->comment_pending_count = get_pending_comments_num( $post_ids );
 
 		foreach ( $posts as $post )
-			$this->single_row( $post );
+			$this->single_row( $post, $level );
 	}
 
 	function _display_rows_hierarchical( $pages, $pagenum = 1, $per_page = 20 ) {
@@ -458,12 +460,12 @@
 		unset( $children_pages[$parent] ); //required in order to keep track of orphans
 	}
 
-	function single_row( $a_post, $level = 0 ) {
-		global $post, $mode;
+	function single_row( $post, $level = 0 ) {
+		global $mode;
 		static $alternate;
 
-		$global_post = $post;
-		$post = $a_post;
+		$global_post = get_post();
+		$GLOBALS['post'] = $post;
 		setup_postdata( $post );
 
 		$edit_link = get_edit_post_link( $post->ID );
@@ -492,7 +494,12 @@
 
 			case 'cb':
 			?>
-			<th scope="row" class="check-column"><?php if ( $can_edit_post ) { ?><input type="checkbox" name="post[]" value="<?php the_ID(); ?>" /><?php } ?></th>
+			<th scope="row" class="check-column">
+				<?php if ( $can_edit_post ) { ?>
+				<label class="screen-reader-text" for="cb-select-<?php the_ID(); ?>"><?php printf( __( 'Select %s' ), $title ); ?></label>
+				<input id="cb-select-<?php the_ID(); ?>" type="checkbox" name="post[]" value="<?php the_ID(); ?>" />
+				<?php } ?>
+			</th>
 			<?php
 			break;
 
@@ -504,7 +511,7 @@
 						//sent level 0 by accident, by default, or because we don't know the actual level
 						$find_main_page = (int) $post->post_parent;
 						while ( $find_main_page > 0 ) {
-							$parent = get_page( $find_main_page );
+							$parent = get_post( $find_main_page );
 
 							if ( is_null( $parent ) )
 								break;
@@ -524,8 +531,10 @@
 				}
 				else {
 					$attributes = 'class="post-title page-title column-title"' . $style;
+
+					$pad = str_repeat( '&#8212; ', $level );
 ?>
-			<td <?php echo $attributes ?>><strong><?php if ( $can_edit_post && $post->post_status != 'trash' ) { ?><a class="row-title" href="<?php echo $edit_link; ?>" title="<?php echo esc_attr( sprintf( __( 'Edit &#8220;%s&#8221;' ), $title ) ); ?>"><?php echo $title ?></a><?php } else { echo $title; }; _post_states( $post ); ?></strong>
+			<td <?php echo $attributes ?>><strong><?php if ( $can_edit_post && $post->post_status != 'trash' ) { ?><a class="row-title" href="<?php echo $edit_link; ?>" title="<?php echo esc_attr( sprintf( __( 'Edit &#8220;%s&#8221;' ), $title ) ); ?>"><?php echo $pad; echo $title ?></a><?php } else { echo $pad; echo $title; }; _post_states( $post ); ?></strong>
 <?php
 					if ( 'excerpt' == $mode && current_user_can( 'read_post', $post->ID ) )
 						the_excerpt();
@@ -538,7 +547,7 @@
 				}
 				if ( current_user_can( $post_type_object->cap->delete_post, $post->ID ) ) {
 					if ( 'trash' == $post->post_status )
-						$actions['untrash'] = "<a title='" . esc_attr( __( 'Restore this item from the Trash' ) ) . "' href='" . wp_nonce_url( admin_url( sprintf( $post_type_object->_edit_link . '&amp;action=untrash', $post->ID ) ), 'untrash-' . $post->post_type . '_' . $post->ID ) . "'>" . __( 'Restore' ) . "</a>";
+						$actions['untrash'] = "<a title='" . esc_attr( __( 'Restore this item from the Trash' ) ) . "' href='" . wp_nonce_url( admin_url( sprintf( $post_type_object->_edit_link . '&amp;action=untrash', $post->ID ) ), 'untrash-post_' . $post->ID ) . "'>" . __( 'Restore' ) . "</a>";
 					elseif ( EMPTY_TRASH_DAYS )
 						$actions['trash'] = "<a class='submitdelete' title='" . esc_attr( __( 'Move this item to the Trash' ) ) . "' href='" . get_delete_post_link( $post->ID ) . "'>" . __( 'Trash' ) . "</a>";
 					if ( 'trash' == $post->post_status || !EMPTY_TRASH_DAYS )
@@ -561,7 +570,7 @@
 			break;
 
 			case 'date':
-				if ( '0000-00-00 00:00:00' == $post->post_date && 'date' == $column_name ) {
+				if ( '0000-00-00 00:00:00' == $post->post_date ) {
 					$t_time = $h_time = __( 'Unpublished' );
 					$time_diff = 0;
 				} else {
@@ -571,7 +580,7 @@
 
 					$time_diff = time() - $time;
 
-					if ( $time_diff > 0 && $time_diff < 24*60*60 )
+					if ( $time_diff > 0 && $time_diff < DAY_IN_SECONDS )
 						$h_time = sprintf( __( '%s ago' ), human_time_diff( $time ) );
 					else
 						$h_time = mysql2date( __( 'Y/m/d' ), $m_time );
@@ -596,48 +605,6 @@
 				echo '</td>';
 			break;
 
-			case 'categories':
-			?>
-			<td <?php echo $attributes ?>><?php
-				$categories = get_the_category();
-				if ( !empty( $categories ) ) {
-					$out = array();
-					foreach ( $categories as $c ) {
-						$out[] = sprintf( '<a href="%s">%s</a>',
-							esc_url( add_query_arg( array( 'post_type' => $post->post_type, 'category_name' => $c->slug ), 'edit.php' ) ),
-							esc_html( sanitize_term_field( 'name', $c->name, $c->term_id, 'category', 'display' ) )
-						);
-					}
-					/* translators: used between list items, there is a space after the comma */
-					echo join( __( ', ' ), $out );
-				} else {
-					_e( 'Uncategorized' );
-				}
-			?></td>
-			<?php
-			break;
-
-			case 'tags':
-			?>
-			<td <?php echo $attributes ?>><?php
-				$tags = get_the_tags( $post->ID );
-				if ( !empty( $tags ) ) {
-					$out = array();
-					foreach ( $tags as $c ) {
-						$out[] = sprintf( '<a href="%s">%s</a>',
-							esc_url( add_query_arg( array( 'post_type' => $post->post_type, 'tag' => $c->slug ), 'edit.php' ) ),
-							esc_html( sanitize_term_field( 'name', $c->name, $c->term_id, 'tag', 'display' ) )
-						);
-					}
-					/* translators: used between list items, there is a space after the comma */
-					echo join( __( ', ' ), $out );
-				} else {
-					_e( 'No Tags' );
-				}
-			?></td>
-			<?php
-			break;
-
 			case 'comments':
 			?>
 			<td <?php echo $attributes ?>><div class="post-com-count-wrapper">
@@ -662,6 +629,44 @@
 			break;
 
 			default:
+				if ( 'categories' == $column_name )
+					$taxonomy = 'category';
+				elseif ( 'tags' == $column_name )
+					$taxonomy = 'post_tag';
+				elseif ( 0 === strpos( $column_name, 'taxonomy-' ) )
+					$taxonomy = substr( $column_name, 9 );
+				else
+					$taxonomy = false;
+
+				if ( $taxonomy ) {
+					$taxonomy_object = get_taxonomy( $taxonomy );
+					echo '<td ' . $attributes . '>';
+					if ( $terms = get_the_terms( $post->ID, $taxonomy ) ) {
+						$out = array();
+						foreach ( $terms as $t ) {
+							$posts_in_term_qv = array();
+							if ( 'post' != $post->post_type )
+								$posts_in_term_qv['post_type'] = $post->post_type;
+							if ( $taxonomy_object->query_var ) {
+								$posts_in_term_qv[ $taxonomy_object->query_var ] = $t->slug;
+							} else {
+								$posts_in_term_qv['taxonomy'] = $taxonomy;
+								$posts_in_term_qv['term'] = $t->slug;
+							}
+
+							$out[] = sprintf( '<a href="%s">%s</a>',
+								esc_url( add_query_arg( $posts_in_term_qv, 'edit.php' ) ),
+								esc_html( sanitize_term_field( 'name', $t->name, $t->term_id, $taxonomy, 'display' ) )
+							);
+						}
+						/* translators: used between list items, there is a space after the comma */
+						echo join( __( ', ' ), $out );
+					} else {
+						echo '&#8212;';
+					}
+					echo '</td>';
+					break;
+				}
 			?>
 			<td <?php echo $attributes ?>><?php
 				if ( is_post_type_hierarchical( $post->post_type ) )
@@ -672,12 +677,12 @@
 			?></td>
 			<?php
 			break;
+			}
 		}
-	}
 	?>
 		</tr>
 	<?php
-		$post = $global_post;
+		$GLOBALS['post'] = $global_post;
 	}
 
 	/**
@@ -688,7 +693,7 @@
 	function inline_edit() {
 		global $mode;
 
-		$screen = get_current_screen();
+		$screen = $this->screen;
 
 		$post = get_default_post_to_edit( $screen->post_type );
 		$post_type_object = get_post_type_object( $screen->post_type );
@@ -720,8 +725,8 @@
 		$bulk = 0;
 		while ( $bulk < 2 ) { ?>
 
-		<tr id="<?php echo $bulk ? 'bulk-edit' : 'inline-edit'; ?>" class="inline-edit-row inline-edit-row-<?php echo "$hclass inline-edit-$screen->post_type ";
-			echo $bulk ? "bulk-edit-row bulk-edit-row-$hclass bulk-edit-$screen->post_type" : "quick-edit-row quick-edit-row-$hclass inline-edit-$screen->post_type";
+		<tr id="<?php echo $bulk ? 'bulk-edit' : 'inline-edit'; ?>" class="inline-edit-row inline-edit-row-<?php echo "$hclass inline-edit-" . $screen->post_type;
+			echo $bulk ? " bulk-edit-row bulk-edit-row-$hclass bulk-edit-{$screen->post_type}" : " quick-edit-row quick-edit-row-$hclass inline-edit-{$screen->post_type}";
 		?>" style="display: none"><td colspan="<?php echo $this->get_column_count(); ?>" class="colspanchange">
 
 		<fieldset class="inline-edit-col-left"><div class="inline-edit-col">
@@ -752,7 +757,7 @@
 	<?php if ( !$bulk ) : ?>
 			<label><span class="title"><?php _e( 'Date' ); ?></span></label>
 			<div class="inline-edit-date">
-				<?php touch_time( 1, 1, 4, 1 ); ?>
+				<?php touch_time( 1, 1, 0, 1 ); ?>
 			</div>
 			<br class="clear" />
 	<?php endif; // $bulk
@@ -1036,7 +1041,7 @@
 				$update_text = __( 'Update' );
 				?>
 				<a accesskey="s" href="#inline-edit" title="<?php esc_attr_e( 'Update' ); ?>" class="button-primary save alignright"><?php echo esc_attr( $update_text ); ?></a>
-				<img class="waiting" style="display:none;" src="<?php echo esc_url( admin_url( 'images/wpspin_light.gif' ) ); ?>" alt="" />
+				<span class="spinner"></span>
 			<?php } else {
 				submit_button( __( 'Update' ), 'button-primary alignright', 'bulk_edit', false, array( 'accesskey' => 's' ) );
 			} ?>
--- a/web/wp-admin/includes/class-wp-terms-list-table.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-admin/includes/class-wp-terms-list-table.php	Wed Dec 19 17:46:52 2012 -0800
@@ -11,43 +11,44 @@
 
 	var $callback_args;
 
-	function __construct() {
-		global $post_type, $taxonomy, $tax;
-
-		wp_reset_vars( array( 'action', 'taxonomy', 'post_type' ) );
-
-		if ( empty( $taxonomy ) )
-			$taxonomy = 'post_tag';
-
-		if ( !taxonomy_exists( $taxonomy ) )
-			wp_die( __( 'Invalid taxonomy' ) );
-
-		$tax = get_taxonomy( $taxonomy );
-
-		if ( empty( $post_type ) || !in_array( $post_type, get_post_types( array( 'show_ui' => true ) ) ) )
-			$post_type = 'post';
+	function __construct( $args = array() ) {
+		global $post_type, $taxonomy, $action, $tax;
 
 		parent::__construct( array(
 			'plural' => 'tags',
 			'singular' => 'tag',
+			'screen' => isset( $args['screen'] ) ? $args['screen'] : null,
 		) );
+
+		$action    = $this->screen->action;
+		$post_type = $this->screen->post_type;
+		$taxonomy  = $this->screen->taxonomy;
+
+		if ( empty( $taxonomy ) )
+			$taxonomy = 'post_tag';
+
+		if ( ! taxonomy_exists( $taxonomy ) )
+			wp_die( __( 'Invalid taxonomy' ) );
+
+		$tax = get_taxonomy( $taxonomy );
+
+		// @todo Still needed? Maybe just the show_ui part.
+		if ( empty( $post_type ) || !in_array( $post_type, get_post_types( array( 'show_ui' => true ) ) ) )
+			$post_type = 'post';
+
 	}
 
 	function ajax_user_can() {
-		global $tax;
-
-		return current_user_can( $tax->cap->manage_terms );
+		return current_user_can( get_taxonomy( $this->screen->taxonomy )->cap->manage_terms );
 	}
 
 	function prepare_items() {
-		global $taxonomy;
+		$tags_per_page = $this->get_items_per_page( 'edit_' . $this->screen->taxonomy . '_per_page' );
 
-		$tags_per_page = $this->get_items_per_page( 'edit_' . $taxonomy . '_per_page' );
-
-		if ( 'post_tag' == $taxonomy ) {
+		if ( 'post_tag' == $this->screen->taxonomy ) {
 			$tags_per_page = apply_filters( 'edit_tags_per_page', $tags_per_page );
 			$tags_per_page = apply_filters( 'tagsperpage', $tags_per_page ); // Old filter
-		} elseif ( 'category' == $taxonomy ) {
+		} elseif ( 'category' == $this->screen->taxonomy ) {
 			$tags_per_page = apply_filters( 'edit_categories_per_page', $tags_per_page ); // Old filter
 		}
 
@@ -68,7 +69,7 @@
 		$this->callback_args = $args;
 
 		$this->set_pagination_args( array(
-			'total_items' => wp_count_terms( $taxonomy, compact( 'search' ) ),
+			'total_items' => wp_count_terms( $this->screen->taxonomy, compact( 'search' ) ),
 			'per_page' => $tags_per_page,
 		) );
 	}
@@ -93,8 +94,6 @@
 	}
 
 	function get_columns() {
-		global $taxonomy, $post_type;
-
 		$columns = array(
 			'cb'          => '<input type="checkbox" />',
 			'name'        => _x( 'Name', 'term name' ),
@@ -102,10 +101,10 @@
 			'slug'        => __( 'Slug' ),
 		);
 
-		if ( 'link_category' == $taxonomy ) {
+		if ( 'link_category' == $this->screen->taxonomy ) {
 			$columns['links'] = __( 'Links' );
 		} else {
-			$post_type_object = get_post_type_object( $post_type );
+			$post_type_object = get_post_type_object( $this->screen->post_type );
 			$columns['posts'] = $post_type_object ? $post_type_object->labels->name : __( 'Posts' );
 		}
 
@@ -123,7 +122,7 @@
 	}
 
 	function display_rows_or_placeholder() {
-		global $taxonomy;
+		$taxonomy = $this->screen->taxonomy;
 
 		$args = wp_parse_args( $this->callback_args, array(
 			'page' => 1,
@@ -231,25 +230,25 @@
 	}
 
 	function column_cb( $tag ) {
-		global $taxonomy, $tax;
-
-		$default_term = get_option( 'default_' . $taxonomy );
+		$default_term = get_option( 'default_' . $this->screen->taxonomy );
 
-		if ( current_user_can( $tax->cap->delete_terms ) && $tag->term_id != $default_term )
-			return '<input type="checkbox" name="delete_tags[]" value="' . $tag->term_id . '" />';
-		else
-			return '&nbsp;';
+		if ( current_user_can( get_taxonomy( $this->screen->taxonomy )->cap->delete_terms ) && $tag->term_id != $default_term )
+			return '<label class="screen-reader-text" for="cb-select-' . $tag->term_id . '">' . sprintf( __( 'Select %s' ), $tag->name ) . '</label>'
+				. '<input type="checkbox" name="delete_tags[]" value="' . $tag->term_id . '" id="cb-select-' . $tag->term_id . '" />';
+
+		return '&nbsp;';
 	}
 
 	function column_name( $tag ) {
-		global $taxonomy, $tax, $post_type;
+		$taxonomy = $this->screen->taxonomy;
+		$tax = get_taxonomy( $taxonomy );
 
 		$default_term = get_option( 'default_' . $taxonomy );
 
 		$pad = str_repeat( '&#8212; ', max( 0, $this->level ) );
 		$name = apply_filters( 'term_name', $pad . ' ' . $tag->name, $tag );
 		$qe_data = get_term( $tag->term_id, $taxonomy, OBJECT, 'edit' );
-		$edit_link = esc_url( get_edit_term_link( $tag->term_id, $taxonomy, $post_type ) );
+		$edit_link = esc_url( get_edit_term_link( $tag->term_id, $taxonomy, $this->screen->post_type ) );
 
 		$out = '<strong><a class="row-title" href="' . $edit_link . '" title="' . esc_attr( sprintf( __( 'Edit &#8220;%s&#8221;' ), $name ) ) . '">' . $name . '</a></strong><br />';
 
@@ -283,13 +282,11 @@
 	}
 
 	function column_posts( $tag ) {
-		global $taxonomy, $post_type;
-
 		$count = number_format_i18n( $tag->count );
 
-		$tax = get_taxonomy( $taxonomy );
+		$tax = get_taxonomy( $this->screen->taxonomy );
 
-		$ptype_object = get_post_type_object( $post_type );
+		$ptype_object = get_post_type_object( $this->screen->post_type );
 		if ( ! $ptype_object->show_ui )
 			return $count;
 
@@ -299,8 +296,11 @@
 			$args = array( 'taxonomy' => $tax->name, 'term' => $tag->slug );
 		}
 
-		if ( 'post' != $post_type )
-			$args['post_type'] = $post_type;
+		if ( 'post' != $this->screen->post_type )
+			$args['post_type'] = $this->screen->post_type;
+
+		if ( 'attachment' == $this->screen->post_type )
+			return "<a href='" . esc_url ( add_query_arg( $args, 'upload.php' ) ) . "'>$count</a>";
 
 		return "<a href='" . esc_url ( add_query_arg( $args, 'edit.php' ) ) . "'>$count</a>";
 	}
@@ -313,9 +313,7 @@
 	}
 
 	function column_default( $tag, $column_name ) {
-		$screen = get_current_screen();
-
-		return apply_filters( "manage_{$screen->taxonomy}_custom_column", '', $column_name, $tag->term_id );
+		return apply_filters( "manage_{$this->screen->taxonomy}_custom_column", '', $column_name, $tag->term_id );
 	}
 
 	/**
@@ -324,7 +322,7 @@
 	 * @since 3.1.0
 	 */
 	function inline_edit() {
-		global $post_type, $tax;
+		$tax = get_taxonomy( $this->screen->taxonomy );
 
 		if ( ! current_user_can( $tax->cap->edit_terms ) )
 			return;
@@ -357,7 +355,7 @@
 			if ( isset( $core_columns[$column_name] ) )
 				continue;
 
-			do_action( 'quick_edit_custom_box', $column_name, 'edit-tags', $tax->name );
+			do_action( 'quick_edit_custom_box', $column_name, 'edit-tags', $this->screen->taxonomy );
 		}
 
 	?>
@@ -366,11 +364,11 @@
 			<a accesskey="c" href="#inline-edit" title="<?php esc_attr_e( 'Cancel' ); ?>" class="cancel button-secondary alignleft"><?php _e( 'Cancel' ); ?></a>
 			<?php $update_text = $tax->labels->update_item; ?>
 			<a accesskey="s" href="#inline-edit" title="<?php echo esc_attr( $update_text ); ?>" class="save button-primary alignright"><?php echo $update_text; ?></a>
-			<img class="waiting" style="display:none;" src="<?php echo esc_url( admin_url( 'images/wpspin_light.gif' ) ); ?>" alt="" />
+			<span class="spinner"></span>
 			<span class="error" style="display:none;"></span>
 			<?php wp_nonce_field( 'taxinlineeditnonce', '_inline_edit', false ); ?>
-			<input type="hidden" name="taxonomy" value="<?php echo esc_attr( $tax->name ); ?>" />
-			<input type="hidden" name="post_type" value="<?php echo esc_attr( $post_type ); ?>" />
+			<input type="hidden" name="taxonomy" value="<?php echo esc_attr( $this->screen->taxonomy ); ?>" />
+			<input type="hidden" name="post_type" value="<?php echo esc_attr( $this->screen->post_type ); ?>" />
 			<br class="clear" />
 		</p>
 		</td></tr>
--- a/web/wp-admin/includes/class-wp-theme-install-list-table.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-admin/includes/class-wp-theme-install-list-table.php	Wed Dec 19 17:46:52 2012 -0800
@@ -134,7 +134,6 @@
 				<?php do_action( 'install_themes_table_header' ); ?>
 			</div>
 			<?php $this->pagination( 'top' ); ?>
-			<img src="<?php echo esc_url( admin_url( 'images/wpspin_light.gif' ) ); ?>" class="ajax-loading list-ajax-loading" alt="" />
 			<br class="clear" />
 		</div>
 
@@ -237,7 +236,7 @@
 				<?php foreach ( $actions as $action ): ?>
 					<li><?php echo $action; ?></li>
 				<?php endforeach; ?>
-				<li class="hide-if-no-js"><a href="#" class="theme-detail" tabindex='4'><?php _e('Details') ?></a></li>
+				<li class="hide-if-no-js"><a href="#" class="theme-detail"><?php _e('Details') ?></a></li>
 			</ul>
 		</div>
 
--- a/web/wp-admin/includes/class-wp-themes-list-table.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-admin/includes/class-wp-themes-list-table.php	Wed Dec 19 17:46:52 2012 -0800
@@ -12,9 +12,10 @@
 	protected $search_terms = array();
 	var $features = array();
 
-	function __construct() {
+	function __construct( $args = array() ) {
 		parent::__construct( array(
 			'ajax' => true,
+			'screen' => isset( $args['screen'] ) ? $args['screen'] : null,
 		) );
 	}
 
@@ -42,7 +43,7 @@
 		unset( $themes[ get_option( 'stylesheet' ) ] );
 		WP_Theme::sort_by_name( $themes );
 
-		$per_page = 999;
+		$per_page = 36;
 		$page = $this->get_pagenum();
 
 		$start = ( $page - 1 ) * $per_page;
@@ -90,8 +91,8 @@
 		?>
 		<div class="tablenav themes <?php echo $which; ?>">
 			<?php $this->pagination( $which ); ?>
-		   <img src="<?php echo esc_url( admin_url( 'images/wpspin_light.gif' ) ); ?>" class="ajax-loading list-ajax-loading" alt="" />
-		  <br class="clear" />
+			<span class="spinner"></span>
+			<br class="clear" />
 		</div>
 		<?php
 	}
@@ -143,7 +144,7 @@
 					. __( 'Live Preview' ) . '</a>';
 
 			if ( ! is_multisite() && current_user_can( 'delete_themes' ) )
-				$actions['delete'] = '<a class="submitdelete deletion" href="' . wp_nonce_url( "themes.php?action=delete&amp;stylesheet=$stylesheet", 'delete-theme_' . $stylesheet )
+				$actions['delete'] = '<a class="submitdelete deletion" href="' . wp_nonce_url( 'themes.php?action=delete&amp;stylesheet=' . urlencode( $stylesheet ), 'delete-theme_' . $stylesheet )
 					. '" onclick="' . "return confirm( '" . esc_js( sprintf( __( "You are about to delete this theme '%s'\n  'Cancel' to stop, 'OK' to delete." ), $title ) )
 					. "' );" . '">' . __( 'Delete' ) . '</a>';
 
@@ -171,7 +172,7 @@
 					<?php foreach ( $actions as $action ): ?>
 						<li><?php echo $action; ?></li>
 					<?php endforeach; ?>
-					<li class="hide-if-no-js"><a href="#" class="theme-detail" tabindex='4'><?php _e('Details') ?></a></li>
+					<li class="hide-if-no-js"><a href="#" class="theme-detail"><?php _e('Details') ?></a></li>
 				</ul>
 				<?php echo $delete_action; ?>
 
@@ -181,15 +182,11 @@
 			<div class="themedetaildiv hide-if-js">
 				<p><strong><?php _e('Version: '); ?></strong><?php echo $version; ?></p>
 				<p><?php echo $theme->display('Description'); ?></p>
-				<?php if ( current_user_can( 'edit_themes' ) && $theme->parent() ) :
-					/* translators: 1: theme title, 2:  template dir, 3: stylesheet_dir, 4: theme title, 5: parent_theme */ ?>
-					<p><?php printf( __( 'The template files are located in <code>%2$s</code>. The stylesheet files are located in <code>%3$s</code>. <strong>%4$s</strong> uses templates from <strong>%5$s</strong>. Changes made to the templates will affect both themes.' ),
-						$title, str_replace( WP_CONTENT_DIR, '', $theme->get_template_directory() ), str_replace( WP_CONTENT_DIR, '', $theme->get_stylesheet_directory() ), $title, $theme->parent()->display('Name') ); ?></p>
-				<?php else :
-						/* translators: 1: theme title, 2:  template dir, 3: stylesheet_dir */ ?>
-					<p><?php printf( __( 'All of this theme&#8217;s files are located in <code>%2$s</code>.' ),
-						$title, str_replace( WP_CONTENT_DIR, '', $theme->get_template_directory() ), str_replace( WP_CONTENT_DIR, '', $theme->get_stylesheet_directory() ) ); ?></p>
-				<?php endif; ?>
+				<?php if ( $theme->parent() ) {
+					printf( ' <p class="howto">' . __( 'This <a href="%1$s">child theme</a> requires its parent theme, %2$s.' ) . '</p>',
+						__( 'http://codex.wordpress.org/Child_Themes' ),
+						$theme->parent()->display( 'Name' ) );
+				} ?>
 			</div>
 
 			</div>
--- a/web/wp-admin/includes/class-wp-upgrader.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-admin/includes/class-wp-upgrader.php	Wed Dec 19 17:46:52 2012 -0800
@@ -496,11 +496,11 @@
 			$this->skin->plugin_info = get_plugin_data( WP_PLUGIN_DIR . '/' . $plugin, false, true);
 
 			if ( !isset( $current->response[ $plugin ] ) ) {
-				$this->skin->set_result(false);
+				$this->skin->set_result(true);
 				$this->skin->before();
-				$this->skin->error('up_to_date');
+				$this->skin->feedback('up_to_date');
 				$this->skin->after();
-				$results[$plugin] = false;
+				$results[$plugin] = true;
 				continue;
 			}
 
@@ -763,10 +763,7 @@
 			return $this->result;
 
 		// Force refresh of theme update information
-		delete_site_transient('update_themes');
-		search_theme_directories( true );
-		foreach ( wp_get_themes() as $theme )
-			$theme->cache_delete();
+		wp_clean_themes_cache();
 
 		return true;
 	}
@@ -812,10 +809,7 @@
 			return $this->result;
 
 		// Force refresh of theme update information
-		delete_site_transient('update_themes');
-		search_theme_directories( true );
-		foreach ( wp_get_themes() as $theme )
-			$theme->cache_delete();
+		wp_clean_themes_cache();
 
 		return true;
 	}
@@ -857,17 +851,17 @@
 		foreach ( $themes as $theme ) {
 			$this->update_current++;
 
+			$this->skin->theme_info = $this->theme_info($theme);
+
 			if ( !isset( $current->response[ $theme ] ) ) {
-				$this->skin->set_result(false);
+				$this->skin->set_result(true);
 				$this->skin->before();
-				$this->skin->error('up_to_date');
+				$this->skin->feedback('up_to_date');
 				$this->skin->after();
-				$results[$theme] = false;
+				$results[$theme] = true;
 				continue;
 			}
 
-			$this->skin->theme_info = $this->theme_info($theme);
-
 			// Get the URL to the zip file
 			$r = $current->response[ $theme ];
 
@@ -902,10 +896,7 @@
 		remove_filter('upgrader_clear_destination', array(&$this, 'delete_old_theme'), 10, 4);
 
 		// Force refresh of theme update information
-		delete_site_transient('update_themes');
-		search_theme_directories( true );
-		foreach ( wp_get_themes() as $theme )
-			$theme->cache_delete();
+		wp_clean_themes_cache();
 
 		return $results;
 	}
@@ -962,13 +953,11 @@
 		if ( $theme != get_stylesheet() ) // If not current
 			return $return;
 
-		// Ensure stylesheet name hasnt changed after the upgrade:
-		// @TODO: Note, This doesn't handle the Template changing, or the Template name changing.
+		// Ensure stylesheet name hasn't changed after the upgrade:
 		if ( $theme == get_stylesheet() && $theme != $this->result['destination_name'] ) {
-			$theme_info = $this->theme_info();
+			wp_clean_themes_cache();
 			$stylesheet = $this->result['destination_name'];
-			$template = $theme_info->get_template();
-			switch_theme($template, $stylesheet, true);
+			switch_theme( $stylesheet );
 		}
 
 		//Time to remove maintenance mode
@@ -1206,9 +1195,7 @@
 			'activate_plugin' => '<a href="' . wp_nonce_url('plugins.php?action=activate&amp;plugin=' . $this->plugin, 'activate-plugin_' . $this->plugin) . '" title="' . esc_attr__('Activate this plugin') . '" target="_parent">' . __('Activate Plugin') . '</a>',
 			'plugins_page' => '<a href="' . self_admin_url('plugins.php') . '" title="' . esc_attr__('Go to plugins page') . '" target="_parent">' . __('Return to Plugins page') . '</a>'
 		);
-		if ( $this->plugin_active )
-			unset( $update_actions['activate_plugin'] );
-		if ( ! $this->result || is_wp_error($this->result) )
+		if ( $this->plugin_active || ! $this->result || is_wp_error( $this->result ) || ! current_user_can( 'activate_plugins' ) )
 			unset( $update_actions['activate_plugin'] );
 
 		$update_actions = apply_filters('update_plugin_complete_actions', $update_actions, $this->plugin);
@@ -1301,8 +1288,8 @@
 
 	function before($title = '') {
 		$this->in_loop = true;
-		printf( '<h4>' . $this->upgrader->strings['skin_before_update_header'] . ' <img alt="" src="' . admin_url( 'images/wpspin_light.gif' ) . '" class="hidden waiting-' . $this->upgrader->update_current . '" style="vertical-align:middle;" /></h4>',  $title, $this->upgrader->update_current, $this->upgrader->update_count);
-		echo '<script type="text/javascript">jQuery(\'.waiting-' . esc_js($this->upgrader->update_current) . '\').show();</script>';
+		printf( '<h4>' . $this->upgrader->strings['skin_before_update_header'] . ' <span class="spinner waiting-' . $this->upgrader->update_current . '"></span></h4>',  $title, $this->upgrader->update_current, $this->upgrader->update_count);
+		echo '<script type="text/javascript">jQuery(\'.waiting-' . esc_js($this->upgrader->update_current) . '\').css("display", "inline-block");</script>';
 		echo '<div class="update-messages hide-if-js" id="progress-' . esc_attr($this->upgrader->update_current) . '"><p>';
 		$this->flush_output();
 	}
@@ -1362,6 +1349,8 @@
 			'plugins_page' => '<a href="' . self_admin_url('plugins.php') . '" title="' . esc_attr__('Go to plugins page') . '" target="_parent">' . __('Return to Plugins page') . '</a>',
 			'updates_page' => '<a href="' . self_admin_url('update-core.php') . '" title="' . esc_attr__('Go to WordPress Updates page') . '" target="_parent">' . __('Return to WordPress Updates') . '</a>'
 		);
+		if ( ! current_user_can( 'activate_plugins' ) )
+			unset( $update_actions['plugins_page'] );
 
 		$update_actions = apply_filters('update_bulk_plugins_complete_actions', $update_actions, $this->plugin_info);
 		if ( ! empty($update_actions) )
@@ -1395,6 +1384,8 @@
 			'themes_page' => '<a href="' . self_admin_url('themes.php') . '" title="' . esc_attr__('Go to themes page') . '" target="_parent">' . __('Return to Themes page') . '</a>',
 			'updates_page' => '<a href="' . self_admin_url('update-core.php') . '" title="' . esc_attr__('Go to WordPress Updates page') . '" target="_parent">' . __('Return to WordPress Updates') . '</a>'
 		);
+		if ( ! current_user_can( 'switch_themes' ) && ! current_user_can( 'edit_theme_options' ) )
+			unset( $update_actions['themes_page'] );
 
 		$update_actions = apply_filters('update_bulk_theme_complete_actions', $update_actions, $this->theme_info );
 		if ( ! empty($update_actions) )
@@ -1456,9 +1447,11 @@
 			$install_actions['plugins_page'] = '<a href="' . self_admin_url('plugins.php') . '" title="' . esc_attr__('Return to Plugins page') . '" target="_parent">' . __('Return to Plugins page') . '</a>';
 
 		if ( ! $this->result || is_wp_error($this->result) ) {
+			unset( $install_actions['activate_plugin'], $install_actions['network_activate'] );
+		} elseif ( ! current_user_can( 'activate_plugins' ) ) {
 			unset( $install_actions['activate_plugin'] );
-			unset( $install_actions['network_activate'] );
 		}
+
 		$install_actions = apply_filters('install_plugin_complete_actions', $install_actions, $this->api, $plugin_file);
 		if ( ! empty($install_actions) )
 			$this->feedback(implode(' | ', (array)$install_actions));
@@ -1509,7 +1502,7 @@
 			'preview'    => 1,
 			'template'   => urlencode( $template ),
 			'stylesheet' => urlencode( $stylesheet ),
-		), trailingslashit( get_home_url() ) );
+		), trailingslashit( home_url() ) );
 
 		$activate_link = add_query_arg( array(
 			'action'     => 'activate',
@@ -1524,14 +1517,14 @@
 		$install_actions['activate'] = '<a href="' . esc_url( $activate_link ) . '" class="activatelink" title="' . esc_attr( sprintf( __('Activate &#8220;%s&#8221;'), $name ) ) . '">' . __('Activate') . '</a>';
 
 		if ( is_network_admin() && current_user_can( 'manage_network_themes' ) )
-			$install_actions['network_enable'] = '<a href="' . esc_url( wp_nonce_url( 'themes.php?action=enable&amp;theme=' . $stylesheet, 'enable-theme_' . $stylesheet ) ) . '" title="' . esc_attr__( 'Enable this theme for all sites in this network' ) . '" target="_parent">' . __( 'Network Enable' ) . '</a>';
+			$install_actions['network_enable'] = '<a href="' . esc_url( wp_nonce_url( 'themes.php?action=enable&amp;theme=' . urlencode( $stylesheet ), 'enable-theme_' . $stylesheet ) ) . '" title="' . esc_attr__( 'Enable this theme for all sites in this network' ) . '" target="_parent">' . __( 'Network Enable' ) . '</a>';
 
 		if ( $this->type == 'web' )
 			$install_actions['themes_page'] = '<a href="' . self_admin_url('theme-install.php') . '" title="' . esc_attr__('Return to Theme Installer') . '" target="_parent">' . __('Return to Theme Installer') . '</a>';
-		else
+		elseif ( current_user_can( 'switch_themes' ) || current_user_can( 'edit_theme_options' ) )
 			$install_actions['themes_page'] = '<a href="' . self_admin_url('themes.php') . '" title="' . esc_attr__('Themes page') . '" target="_parent">' . __('Return to Themes page') . '</a>';
 
-		if ( ! $this->result || is_wp_error($this->result) || is_network_admin() )
+		if ( ! $this->result || is_wp_error($this->result) || is_network_admin() || ! current_user_can( 'switch_themes' ) )
 			unset( $install_actions['activate'], $install_actions['preview'] );
 
 		$install_actions = apply_filters('install_theme_complete_actions', $install_actions, $this->api, $stylesheet, $theme_info);
@@ -1573,7 +1566,7 @@
 				'preview'    => 1,
 				'template'   => urlencode( $template ),
 				'stylesheet' => urlencode( $stylesheet ),
-			), trailingslashit( get_home_url() ) );
+			), trailingslashit( home_url() ) );
 
 			$activate_link = add_query_arg( array(
 				'action'     => 'activate',
@@ -1583,8 +1576,9 @@
 			$activate_link = wp_nonce_url( $activate_link, 'switch-theme_' . $stylesheet );
 
 			if ( get_stylesheet() == $stylesheet ) {
-				$update_actions['preview']  = '<a href="' . wp_customize_url( $stylesheet ) . '" class="hide-if-no-customize load-customize" title="' . esc_attr( sprintf( __('Customize &#8220;%s&#8221;'), $name ) ) . '">' . __('Customize') . '</a>';
-			} else {
+				if ( current_user_can( 'edit_theme_options' ) )
+					$update_actions['preview']  = '<a href="' . wp_customize_url( $stylesheet ) . '" class="hide-if-no-customize load-customize" title="' . esc_attr( sprintf( __('Customize &#8220;%s&#8221;'), $name ) ) . '">' . __('Customize') . '</a>';
+			} elseif ( current_user_can( 'switch_themes' ) ) {
 				$update_actions['preview']  = '<a href="' . esc_url( $preview_link ) . '" class="hide-if-customize" title="' . esc_attr( sprintf( __('Preview &#8220;%s&#8221;'), $name ) ) . '">' . __('Preview') . '</a>';
 				$update_actions['preview'] .= '<a href="' . wp_customize_url( $stylesheet ) . '" class="hide-if-no-customize load-customize" title="' . esc_attr( sprintf( __('Preview &#8220;%s&#8221;'), $name ) ) . '">' . __('Live Preview') . '</a>';
 				$update_actions['activate'] = '<a href="' . esc_url( $activate_link ) . '" class="activatelink" title="' . esc_attr( sprintf( __('Activate &#8220;%s&#8221;'), $name ) ) . '">' . __('Activate') . '</a>';
--- a/web/wp-admin/includes/class-wp-users-list-table.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-admin/includes/class-wp-users-list-table.php	Wed Dec 19 17:46:52 2012 -0800
@@ -12,17 +12,17 @@
 	var $site_id;
 	var $is_site_users;
 
-	function __construct() {
-		$screen = get_current_screen();
-		$this->is_site_users = 'site-users-network' == $screen->id;
+	function __construct( $args = array() ) {
+		parent::__construct( array(
+			'singular' => 'user',
+			'plural'   => 'users',
+			'screen'   => isset( $args['screen'] ) ? $args['screen'] : null,
+		) );
+
+		$this->is_site_users = 'site-users-network' == $this->screen->id;
 
 		if ( $this->is_site_users )
 			$this->site_id = isset( $_REQUEST['id'] ) ? intval( $_REQUEST['id'] ) : 0;
-
-		parent::__construct( array(
-			'singular' => 'user',
-			'plural'   => 'users'
-		) );
 	}
 
 	function ajax_user_can() {
@@ -35,7 +35,7 @@
 	function prepare_items() {
 		global $role, $usersearch;
 
-		$usersearch = isset( $_REQUEST['s'] ) ? $_REQUEST['s'] : '';
+		$usersearch = isset( $_REQUEST['s'] ) ? trim( $_REQUEST['s'] ) : '';
 
 		$role = isset( $_REQUEST['role'] ) ? $_REQUEST['role'] : '';
 
@@ -136,18 +136,20 @@
 	function extra_tablenav( $which ) {
 		if ( 'top' != $which )
 			return;
-		if ( ! current_user_can( 'promote_users' ) )
-			return;
-?>
+	?>
 	<div class="alignleft actions">
+		<?php if ( current_user_can( 'promote_users' ) ) : ?>
 		<label class="screen-reader-text" for="new_role"><?php _e( 'Change role to&hellip;' ) ?></label>
 		<select name="new_role" id="new_role">
 			<option value=''><?php _e( 'Change role to&hellip;' ) ?></option>
 			<?php wp_dropdown_roles(); ?>
 		</select>
-		<?php submit_button( __( 'Change' ), 'secondary', 'changeit', false ); ?>
-	</div>
-<?php
+	<?php
+			submit_button( __( 'Change' ), 'button', 'changeit', false );
+		endif;
+
+		do_action( 'restrict_manage_users' );
+		echo '</div>';
 	}
 
 	function current_action() {
@@ -191,11 +193,19 @@
 		if ( ! $this->is_site_users )
 			$post_counts = count_many_users_posts( array_keys( $this->items ) );
 
+		$editable_roles = array_keys( get_editable_roles() );
+
 		$style = '';
 		foreach ( $this->items as $userid => $user_object ) {
-			$role = reset( $user_object->roles );
+			if ( count( $user_object->roles ) <= 1 ) {
+				$role = reset( $user_object->roles );
+			} elseif ( $roles = array_intersect( array_values( $user_object->roles ), $editable_roles ) ) {
+				$role = reset( $roles );
+			} else {
+				$role = reset( $user_object->roles );
+			}
 
-			if ( is_multisite() && empty( $role ) )
+			if ( is_multisite() && empty( $user_object->allcaps ) )
 				continue;
 
 			$style = ( ' class="alternate"' == $style ) ? '' : ' class="alternate"';
@@ -218,7 +228,7 @@
 		global $wp_roles;
 
 		if ( !( is_object( $user_object ) && is_a( $user_object, 'WP_User' ) ) )
-			$user_object = new WP_User( (int) $user_object );
+			$user_object = get_userdata( (int) $user_object );
 		$user_object->filter = 'display';
 		$email = $user_object->user_email;
 
@@ -231,12 +241,7 @@
 		// Check if the user for this row is editable
 		if ( current_user_can( 'list_users' ) ) {
 			// Set up the user editing link
-			// TODO: make profile/user-edit determination a separate function
-			if ( get_current_user_id() == $user_object->ID ) {
-				$edit_link = 'profile.php';
-			} else {
-				$edit_link = esc_url( add_query_arg( 'wp_http_referer', urlencode( stripslashes( $_SERVER['REQUEST_URI'] ) ), "user-edit.php?user_id=$user_object->ID" ) );
-			}
+			$edit_link = esc_url( add_query_arg( 'wp_http_referer', urlencode( stripslashes( $_SERVER['REQUEST_URI'] ) ), get_edit_user_link( $user_object->ID ) ) );
 
 			// Set up the hover actions for this user
 			$actions = array();
@@ -256,7 +261,8 @@
 			$edit .= $this->row_actions( $actions );
 
 			// Set up the checkbox ( because the user is editable, otherwise its empty )
-			$checkbox = "<input type='checkbox' name='users[]' id='user_{$user_object->ID}' class='$role' value='{$user_object->ID}' />";
+			$checkbox = '<label class="screen-reader-text" for="cb-select-' . $user_object->ID . '">' . sprintf( __( 'Select %s' ), $user_object->user_login ) . '</label>'
+						. "<input type='checkbox' name='users[]' id='user_{$user_object->ID}' class='$role' value='{$user_object->ID}' />";
 
 		} else {
 			$edit = '<strong>' . $user_object->user_login . '</strong>';
--- a/web/wp-admin/includes/dashboard.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-admin/includes/dashboard.php	Wed Dec 19 17:46:52 2012 -0800
@@ -131,6 +131,7 @@
 	}
 
 	if ( 'POST' == $_SERVER['REQUEST_METHOD'] && isset($_POST['widget_id']) ) {
+		check_admin_referer( 'edit-dashboard-widget_' . $_POST['widget_id'], 'dashboard-widget-nonce' );
 		ob_start(); // hack - but the same hack wp-admin/widgets.php uses
 		wp_dashboard_trigger_widget_control( $_POST['widget_id'] );
 		ob_end_clean();
@@ -182,6 +183,7 @@
 function _wp_dashboard_control_callback( $dashboard, $meta_box ) {
 	echo '<form action="" method="post" class="dashboard-widget-control-form">';
 	wp_dashboard_trigger_widget_control( $meta_box['id'] );
+	wp_nonce_field( 'edit-dashboard-widget_' . $meta_box['id'], 'dashboard-widget-nonce' );
 	echo '<input type="hidden" name="widget_id" value="' . esc_attr($meta_box['id']) . '" />';
 	submit_button( __('Submit') );
 	echo '</form>';
@@ -392,12 +394,12 @@
 	}
 	echo '</p>';
 
-	// Check if search engines are blocked.
+	// Check if search engines are asked not to index this site.
 	if ( !is_network_admin() && !is_user_admin() && current_user_can('manage_options') && '1' != get_option('blog_public') ) {
 		$title = apply_filters('privacy_on_link_title', __('Your site is asking search engines not to index its content') );
-		$content = apply_filters('privacy_on_link_text', __('Search Engines Blocked') );
+		$content = apply_filters('privacy_on_link_text', __('Search Engines Discouraged') );
 
-		echo "<p><a href='options-privacy.php' title='$title'>$content</a></p>";
+		echo "<p><a href='options-reading.php' title='$title'>$content</a></p>";
 	}
 
 	update_right_now_message();
@@ -480,7 +482,7 @@
 			if ( $drafts_query->posts )
 				$drafts =& $drafts_query->posts;
 		}
-		printf('<p class="textright">' . __('You can also try %s, easy blogging from anywhere on the Web.') . '</p>', '<a href="' . esc_url( admin_url( 'tools.php' ) ) . '">' . __('Press This') . '</a>' );
+		printf('<p class="easy-blogging">' . __('You can also try %s, easy blogging from anywhere on the Web.') . '</p>', '<a href="' . esc_url( admin_url( 'tools.php' ) ) . '">' . __('Press This') . '</a>' );
 		$_REQUEST = array(); // hack for get_default_post_to_edit()
 	}
 
@@ -490,22 +492,35 @@
 		$post = get_post( $last_post_id );
 		if ( empty( $post ) || $post->post_status != 'auto-draft' ) { // auto-draft doesn't exists anymore
 			$post = get_default_post_to_edit('post', true);
-			update_user_option( (int) $GLOBALS['current_user']->ID, 'dashboard_quick_press_last_post_id', (int) $post->ID ); // Save post_ID
+			update_user_option( get_current_user_id(), 'dashboard_quick_press_last_post_id', (int) $post->ID ); // Save post_ID
 		} else {
 			$post->post_title = ''; // Remove the auto draft title
 		}
 	} else {
-		$post = get_default_post_to_edit('post', true);
-		update_user_option( (int) $GLOBALS['current_user']->ID, 'dashboard_quick_press_last_post_id', (int) $post->ID ); // Save post_ID
+		$post = get_default_post_to_edit( 'post' , true);
+		$user_id = get_current_user_id();
+		// Don't create an option if this is a super admin who does not belong to this site.
+		if ( ! ( is_super_admin( $user_id ) && ! in_array( get_current_blog_id(), array_keys( get_blogs_of_user( $user_id ) ) ) ) )
+			update_user_option( $user_id, 'dashboard_quick_press_last_post_id', (int) $post->ID ); // Save post_ID
 	}
 
 	$post_ID = (int) $post->ID;
+
+	$media_settings = array(
+		'id' => $post->ID,
+		'nonce' => wp_create_nonce( 'update-post_' . $post->ID ),
+	);
+
+	if ( current_theme_supports( 'post-thumbnails', $post->post_type ) && post_type_supports( $post->post_type, 'thumbnail' ) ) {
+		$featured_image_id = get_post_meta( $post->ID, '_thumbnail_id', true );
+		$media_settings['featuredImageId'] = $featured_image_id ? $featured_image_id : -1;
+	}
 ?>
 
 	<form name="post" action="<?php echo esc_url( admin_url( 'post.php' ) ); ?>" method="post" id="quick-press">
-		<h4 id="quick-post-title"><label for="title"><?php _e('Title') ?></label></h4>
-		<div class="input-text-wrap">
-			<input type="text" name="post_title" id="title" tabindex="1" autocomplete="off" value="<?php echo esc_attr( $post->post_title ); ?>" />
+		<div class="input-text-wrap" id="title-wrap">
+			<label class="screen-reader-text prompt" for="title" id="title-prompt-text"><?php _e( 'Enter title here' ); ?></label>
+			<input type="text" name="post_title" id="title" autocomplete="off" value="<?php echo esc_attr( $post->post_title ); ?>" />
 		</div>
 
 		<?php if ( current_user_can( 'upload_files' ) ) : ?>
@@ -514,29 +529,37 @@
 		</div>
 		<?php endif; ?>
 
-		<h4 id="content-label"><label for="content"><?php _e('Content') ?></label></h4>
 		<div class="textarea-wrap">
-			<textarea name="content" id="content" class="mceEditor" rows="3" cols="15" tabindex="2"><?php echo esc_textarea( $post->post_content ); ?></textarea>
+			<label class="screen-reader-text" for="content"><?php _e( 'Content' ); ?></label>
+			<textarea name="content" id="content" class="mceEditor" rows="3" cols="15"><?php echo esc_textarea( $post->post_content ); ?></textarea>
 		</div>
 
-		<script type="text/javascript">edCanvas = document.getElementById('content');edInsertContent = null;</script>
+		<script type="text/javascript">
+		edCanvas = document.getElementById('content');
+		edInsertContent = null;
+		<?php if ( $_POST ) : ?>
+		wp.media.editor.remove('content');
+		wp.media.view.settings.post = <?php echo json_encode( $media_settings ); // big juicy hack. ?>;
+		wp.media.editor.add('content');
+		<?php endif; ?>
+		</script>
 
-		<h4><label for="tags-input"><?php _e('Tags') ?></label></h4>
-		<div class="input-text-wrap">
-			<input type="text" name="tags_input" id="tags-input" tabindex="3" value="<?php echo get_tags_to_edit( $post->ID ); ?>" />
+		<div class="input-text-wrap" id="tags-input-wrap">
+			<label class="screen-reader-text prompt" for="tags-input" id="tags-input-prompt-text"><?php _e( 'Tags (separate with commas)' ); ?></label>
+			<input type="text" name="tags_input" id="tags-input" value="<?php echo get_tags_to_edit( $post->ID ); ?>" />
 		</div>
 
 		<p class="submit">
+			<span id="publishing-action">
+				<input type="submit" name="publish" id="publish" accesskey="p" class="button-primary" value="<?php current_user_can('publish_posts') ? esc_attr_e('Publish') : esc_attr_e('Submit for Review'); ?>" />
+				<span class="spinner"></span>
+			</span>
 			<input type="hidden" name="action" id="quickpost-action" value="post-quickpress-save" />
 			<input type="hidden" name="post_ID" value="<?php echo $post_ID; ?>" />
 			<input type="hidden" name="post_type" value="post" />
 			<?php wp_nonce_field('add-post'); ?>
-			<?php submit_button( __( 'Save Draft' ), 'button', 'save', false, array( 'id' => 'save-post', 'tabindex'=> 4 ) ); ?>
+			<?php submit_button( __( 'Save Draft' ), 'button', 'save', false, array( 'id' => 'save-post' ) ); ?>
 			<input type="reset" value="<?php esc_attr_e( 'Reset' ); ?>" class="button" />
-			<span id="publishing-action">
-				<input type="submit" name="publish" id="publish" accesskey="p" tabindex="5" class="button-primary" value="<?php current_user_can('publish_posts') ? esc_attr_e('Publish') : esc_attr_e('Submit for Review'); ?>" />
-				<img class="waiting" src="<?php echo esc_url( admin_url( 'images/wpspin_light.gif' ) ); ?>" alt="" />
-			</span>
 			<br class="clear" />
 		</p>
 
@@ -566,7 +589,7 @@
 			$url = get_edit_post_link( $draft->ID );
 			$title = _draft_or_post_title( $draft->ID );
 			$item = "<h4><a href='$url' title='" . sprintf( __( 'Edit &#8220;%s&#8221;' ), esc_attr( $title ) ) . "'>" . esc_html($title) . "</a> <abbr title='" . get_the_time(__('Y/m/d g:i:s A'), $draft) . "'>" . get_the_time( get_option( 'date_format' ), $draft ) . '</abbr></h4>';
-			if ( $the_content = preg_split( '#\s#', strip_tags( $draft->post_content ), 11, PREG_SPLIT_NO_EMPTY ) )
+			if ( $the_content = preg_split( '#[\r\n\t ]#', strip_tags( $draft->post_content ), 11, PREG_SPLIT_NO_EMPTY ) )
 				$item .= '<p>' . join( ' ', array_slice( $the_content, 0, 10 ) ) . ( 10 < count( $the_content ) ? '&hellip;' : '' ) . '</p>';
 			$list[] = $item;
 		}
@@ -614,7 +637,7 @@
 	}
 
 	if ( $comments ) {
-		echo '<div id="the-comment-list" class="list:comment">';
+		echo '<div id="the-comment-list" data-wp-lists="list:comment">';
 		foreach ( $comments as $comment )
 			_wp_dashboard_recent_comments_row( $comment );
 		echo '</div>';
@@ -657,15 +680,15 @@
 		$trash_url = esc_url( "comment.php?action=trashcomment&p=$comment->comment_post_ID&c=$comment->comment_ID&$del_nonce" );
 		$delete_url = esc_url( "comment.php?action=deletecomment&p=$comment->comment_post_ID&c=$comment->comment_ID&$del_nonce" );
 
-		$actions['approve'] = "<a href='$approve_url' class='dim:the-comment-list:comment-$comment->comment_ID:unapproved:e7e7d3:e7e7d3:new=approved vim-a' title='" . esc_attr__( 'Approve this comment' ) . "'>" . __( 'Approve' ) . '</a>';
-		$actions['unapprove'] = "<a href='$unapprove_url' class='dim:the-comment-list:comment-$comment->comment_ID:unapproved:e7e7d3:e7e7d3:new=unapproved vim-u' title='" . esc_attr__( 'Unapprove this comment' ) . "'>" . __( 'Unapprove' ) . '</a>';
+		$actions['approve'] = "<a href='$approve_url' data-wp-lists='dim:the-comment-list:comment-$comment->comment_ID:unapproved:e7e7d3:e7e7d3:new=approved' class='vim-a' title='" . esc_attr__( 'Approve this comment' ) . "'>" . __( 'Approve' ) . '</a>';
+		$actions['unapprove'] = "<a href='$unapprove_url' data-wp-lists='dim:the-comment-list:comment-$comment->comment_ID:unapproved:e7e7d3:e7e7d3:new=unapproved' class='vim-u' title='" . esc_attr__( 'Unapprove this comment' ) . "'>" . __( 'Unapprove' ) . '</a>';
 		$actions['edit'] = "<a href='comment.php?action=editcomment&amp;c={$comment->comment_ID}' title='" . esc_attr__('Edit comment') . "'>". __('Edit') . '</a>';
 		$actions['reply'] = '<a onclick="commentReply.open(\''.$comment->comment_ID.'\',\''.$comment->comment_post_ID.'\');return false;" class="vim-r hide-if-no-js" title="'.esc_attr__('Reply to this comment').'" href="#">' . __('Reply') . '</a>';
-		$actions['spam'] = "<a href='$spam_url' class='delete:the-comment-list:comment-$comment->comment_ID::spam=1 vim-s vim-destructive' title='" . esc_attr__( 'Mark this comment as spam' ) . "'>" . /* translators: mark as spam link */ _x( 'Spam', 'verb' ) . '</a>';
+		$actions['spam'] = "<a href='$spam_url' data-wp-lists='delete:the-comment-list:comment-$comment->comment_ID::spam=1' class='vim-s vim-destructive' title='" . esc_attr__( 'Mark this comment as spam' ) . "'>" . /* translators: mark as spam link */ _x( 'Spam', 'verb' ) . '</a>';
 		if ( !EMPTY_TRASH_DAYS )
-			$actions['delete'] = "<a href='$delete_url' class='delete:the-comment-list:comment-$comment->comment_ID::trash=1 delete vim-d vim-destructive'>" . __('Delete Permanently') . '</a>';
+			$actions['delete'] = "<a href='$delete_url' data-wp-lists='delete:the-comment-list:comment-$comment->comment_ID::trash=1' class='delete vim-d vim-destructive'>" . __('Delete Permanently') . '</a>';
 		else
-			$actions['trash'] = "<a href='$trash_url' class='delete:the-comment-list:comment-$comment->comment_ID::trash=1 delete vim-d vim-destructive' title='" . esc_attr__( 'Move this comment to the trash' ) . "'>" . _x('Trash', 'verb') . '</a>';
+			$actions['trash'] = "<a href='$trash_url' data-wp-lists='delete:the-comment-list:comment-$comment->comment_ID::trash=1' class='delete vim-d vim-destructive' title='" . esc_attr__( 'Move this comment to the trash' ) . "'>" . _x('Trash', 'verb') . '</a>';
 
 		$actions = apply_filters( 'comment_row_actions', array_filter($actions), $comment );
 
@@ -813,10 +836,13 @@
 			/* translators: incoming links feed, %1$s is other person, %3$s is content */
 			$text = __( '%1$s linked here saying, "%3$s"' );
 
-		if ( !empty($show_date) ) {
-			if ( !empty($show_author) || !empty($show_summary) )
-				/* translators: incoming links feed, %4$s is the date */
-				$text .= ' ' . __( 'on %4$s' );
+		if ( !empty( $show_date ) ) {
+			if ( $link )
+				/* translators: incoming links feed, %1$s is other person, %3$s is content, %4$s is the date */
+				$text = __( '%1$s linked here <a href="%2$s">saying</a>, "%3$s" on %4$s' );
+			else
+				/* translators: incoming links feed, %1$s is other person, %3$s is content, %4$s is the date */
+				$text = __( '%1$s linked here saying, "%3$s" on %4$s' );
 			$date = esc_html( strip_tags( $item->get_date() ) );
 			$date = strtotime( $date );
 			$date = gmdate( get_option( 'date_format' ), $date );
@@ -913,7 +939,7 @@
 
 	if ( false === $plugin_slugs = get_transient( 'plugin_slugs' ) ) {
 		$plugin_slugs = array_keys( get_plugins() );
-		set_transient( 'plugin_slugs', $plugin_slugs, 86400 );
+		set_transient( 'plugin_slugs', $plugin_slugs, DAY_IN_SECONDS );
 	}
 
 	foreach ( array( 'popular' => __('Most Popular'), 'new' => __('Newest Plugins') ) as $feed => $label ) {
@@ -961,12 +987,7 @@
 		if ( !isset($items[$item_key]) )
 			continue;
 
-		// current bbPress feed item titles are: user on "topic title"
-		if ( preg_match( '/&quot;(.*)&quot;/s', $item->get_title(), $matches ) )
-			$title = $matches[1];
-		else // but let's make it forward compatible if things change
-			$title = $item->get_title();
-		$title = esc_html( $title );
+		$title = esc_html( $item->get_title() );
 
 		$description = esc_html( strip_tags(@html_entity_decode($item->get_description(), ENT_QUOTES, get_option('blog_charset'))) );
 
@@ -1026,7 +1047,7 @@
 		array_unshift( $args, $widget_id );
 		ob_start();
 		call_user_func_array( $callback, $args );
-		set_transient( $cache_key, ob_get_flush(), 43200); // Default lifetime in cache of 12 hours (same as the feeds)
+		set_transient( $cache_key, ob_get_flush(), 12 * HOUR_IN_SECONDS ); // Default lifetime in cache of 12 hours (same as the feeds)
 	}
 
 	return true;
@@ -1099,7 +1120,7 @@
 		return true;
 
 	$quota = get_space_allowed();
-	$used = get_dirsize( BLOGUPLOADDIR ) / 1024 / 1024;
+	$used = get_space_used();
 
 	if ( $used > $quota )
 		$percentused = '100';
@@ -1114,7 +1135,7 @@
 	<div class="table table_content musubtable">
 	<table>
 		<tr class="first">
-			<td class="first b b-posts"><?php printf( __( '<a href="%1$s" title="Manage Uploads" class="musublink">%2$sMB</a>' ), esc_url( admin_url( 'upload.php' ) ), $quota ); ?></td>
+			<td class="first b b-posts"><?php printf( __( '<a href="%1$s" title="Manage Uploads" class="musublink">%2$sMB</a>' ), esc_url( admin_url( 'upload.php' ) ), number_format_i18n( $quota ) ); ?></td>
 			<td class="t posts"><?php _e( 'Space Allowed' ); ?></td>
 		</tr>
 	</table>
@@ -1122,7 +1143,7 @@
 	<div class="table table_discussion musubtable">
 	<table>
 		<tr class="first">
-			<td class="b b-comments"><?php printf( __( '<a href="%1$s" title="Manage Uploads" class="musublink">%2$sMB (%3$s%%)</a>' ), esc_url( admin_url( 'upload.php' ) ), $used, $percentused ); ?></td>
+			<td class="b b-comments"><?php printf( __( '<a href="%1$s" title="Manage Uploads" class="musublink">%2$sMB (%3$s%%)</a>' ), esc_url( admin_url( 'upload.php' ) ), number_format_i18n( $used, 2 ), $percentused ); ?></td>
 			<td class="last t comments<?php echo $used_color;?>"><?php _e( 'Space Used' );?></td>
 		</tr>
 	</table>
@@ -1217,7 +1238,7 @@
 		if ( ! is_array( $response ) )
 			return false;
 
-		set_site_transient( 'browser_' . $key, $response, 604800 ); // cache for 1 week
+		set_site_transient( 'browser_' . $key, $response, WEEK_IN_SECONDS );
 	}
 
 	return $response;
@@ -1234,93 +1255,45 @@
  * @since 3.3.0
  */
 function wp_welcome_panel() {
-	global $wp_version;
-
-	if ( ! current_user_can( 'edit_theme_options' ) )
-		return;
-
-	$classes = 'welcome-panel';
-
-	$option = get_user_meta( get_current_user_id(), 'show_welcome_panel', true );
-	// 0 = hide, 1 = toggled to show or single site creator, 2 = multisite site owner
-	$hide = 0 == $option || ( 2 == $option && wp_get_current_user()->user_email != get_option( 'admin_email' ) );
-	if ( $hide )
-		$classes .= ' hidden';
-
-	list( $display_version ) = explode( '-', $wp_version );
 	?>
-	<div id="welcome-panel" class="<?php echo esc_attr( $classes ); ?>">
-	<?php wp_nonce_field( 'welcome-panel-nonce', 'welcomepanelnonce', false ); ?>
-	<a class="welcome-panel-close" href="<?php echo esc_url( admin_url( '?welcome=0' ) ); ?>"><?php _e('Dismiss'); ?></a>
-	<div class="wp-badge"><?php printf( __( 'Version %s' ), $display_version ); ?></div>
-
 	<div class="welcome-panel-content">
-	<h3><?php _e( 'Welcome to your new WordPress site!' ); ?></h3>
-	<p class="about-description"><?php _e( 'If you need help getting started, check out our documentation on <a href="http://codex.wordpress.org/First_Steps_With_WordPress">First Steps with WordPress</a>. If you&#8217;d rather dive right in, here are a few things most people do first when they set up a new WordPress site. If you need help, use the Help tabs in the upper right corner to get information on how to use your current screen and where to go for more assistance.' ); ?></p>
+	<h3><?php _e( 'Welcome to WordPress!' ); ?></h3>
+	<p class="about-description"><?php _e( 'We&#8217;ve assembled some links to get you started:' ); ?></p>
 	<div class="welcome-panel-column-container">
 	<div class="welcome-panel-column">
-		<h4><span class="icon16 icon-settings"></span> <?php _e( 'Basic Settings' ); ?></h4>
-		<p><?php _e( 'Here are a few easy things you can do to get your feet wet. Make sure to click Save on each Settings screen.' ); ?></p>
-		<ul>
-		<li><?php echo sprintf(	__( '<a href="%s">Choose your privacy setting</a>' ), esc_url( admin_url('options-privacy.php') ) ); ?></li>
-		<li><?php echo sprintf( __( '<a href="%s">Select your tagline and time zone</a>' ), esc_url( admin_url('options-general.php') ) ); ?></li>
-		<li><?php echo sprintf( __( '<a href="%s">Turn comments on or off</a>' ), esc_url( admin_url('options-discussion.php') ) ); ?></li>
-		<li><?php echo sprintf( __( '<a href="%s">Fill in your profile</a>' ), esc_url( admin_url('profile.php') ) ); ?></li>
-		</ul>
+		<h4><?php _e( 'Get Started' ); ?></h4>
+		<a class="button button-primary button-hero load-customize hide-if-no-customize" href="<?php echo wp_customize_url(); ?>"><?php _e( 'Customize Your Site' ); ?></a>
+		<a class="button button-primary button-hero hide-if-customize" href="<?php echo admin_url( 'themes.php' ); ?>"><?php _e( 'Customize Your Site' ); ?></a>
+		<?php if ( current_user_can( 'install_themes' ) || ( current_user_can( 'switch_themes' ) && count( wp_get_themes( array( 'allowed' => true ) ) ) > 1 ) ) : ?>
+			<p class="hide-if-no-customize"><?php printf( __( 'or, <a href="%s">change your theme completely</a>' ), admin_url( 'themes.php' ) ); ?></p>
+		<?php endif; ?>
 	</div>
 	<div class="welcome-panel-column">
-		<h4><span class="icon16 icon-page"></span> <?php _e( 'Add Real Content' ); ?></h4>
-		<p><?php _e( 'Check out the sample page & post editors to see how it all works, then delete the default content and write your own!' ); ?></p>
+		<h4><?php _e( 'Next Steps' ); ?></h4>
 		<ul>
-		<li><?php echo sprintf( __( 'View the <a href="%1$s">sample page</a> and <a href="%2$s">post</a>' ), esc_url( get_permalink( 2 ) ), esc_url( get_permalink( 1 ) ) ); ?></li>
-		<li><?php echo sprintf( __( 'Delete the <a href="%1$s">sample page</a> and <a href="%2$s">post</a>' ), esc_url( admin_url('edit.php?post_type=page') ), esc_url( admin_url('edit.php') ) ); ?></li>
-		<li><?php echo sprintf( __( '<a href="%s">Create an About Me page</a>' ), esc_url( admin_url('edit.php?post_type=page') ) ); ?></li>
-		<li><?php echo sprintf( __( '<a href="%s">Write your first post</a>' ), esc_url( admin_url('post-new.php') ) ); ?></li>
+		<?php if ( 'page' == get_option( 'show_on_front' ) && ! get_option( 'page_for_posts' ) ) : ?>
+			<li><?php printf( '<a href="%s" class="welcome-icon welcome-edit-page">' . __( 'Edit your front page' ) . '</a>', get_edit_post_link( get_option( 'page_on_front' ) ) ); ?></li>
+			<li><?php printf( '<a href="%s" class="welcome-icon welcome-add-page">' . __( 'Add additional pages' ) . '</a>', admin_url( 'post-new.php?post_type=page' ) ); ?></li>
+		<?php elseif ( 'page' == get_option( 'show_on_front' ) ) : ?>
+			<li><?php printf( '<a href="%s" class="welcome-icon welcome-edit-page">' . __( 'Edit your front page' ) . '</a>', get_edit_post_link( get_option( 'page_on_front' ) ) ); ?></li>
+			<li><?php printf( '<a href="%s" class="welcome-icon welcome-add-page">' . __( 'Add additional pages' ) . '</a>', admin_url( 'post-new.php?post_type=page' ) ); ?></li>
+			<li><?php printf( '<a href="%s" class="welcome-icon welcome-write-blog">' . __( 'Add a blog post' ) . '</a>', admin_url( 'post-new.php' ) ); ?></li>
+		<?php else : ?>
+			<li><?php printf( '<a href="%s" class="welcome-icon welcome-write-blog">' . __( 'Write your first blog post' ) . '</a>', admin_url( 'post-new.php' ) ); ?></li>
+			<li><?php printf( '<a href="%s" class="welcome-icon welcome-add-page">' . __( 'Add an About page' ) . '</a>', admin_url( 'post-new.php?post_type=page' ) ); ?></li>
+		<?php endif; ?>
+			<li><?php printf( '<a href="%s" class="welcome-icon welcome-view-site">' . __( 'View your site' ) . '</a>', home_url( '/' ) ); ?></li>
 		</ul>
 	</div>
 	<div class="welcome-panel-column welcome-panel-last">
-		<h4><span class="icon16 icon-appearance"></span> <?php _e( 'Customize Your Site' ); ?></h4>
-		<?php
-		$theme = wp_get_theme();
-		if ( $theme->errors() ) :
-			echo '<p>';
-			printf( __( '<a href="%s">Install a theme</a> to get started customizing your site.' ), esc_url( admin_url( 'themes.php' ) ) );
-			echo '</p>';
-		else:
-			$customize_links = array();
-			if ( 'twentyeleven' == $theme->get_stylesheet() )
-				$customize_links[] = sprintf( __( '<a href="%s">Choose light or dark</a>' ), esc_url( admin_url( 'themes.php?page=theme_options' ) ) );
-
-			if ( current_theme_supports( 'custom-background' ) )
-				$customize_links[] = sprintf( __( '<a href="%s">Set a background color</a>' ), esc_url( admin_url( 'themes.php?page=custom-background' ) ) );
-
-			if ( current_theme_supports( 'custom-header' ) )
-				$customize_links[] = sprintf( __( '<a href="%s">Select a new header image</a>' ), esc_url( admin_url( 'themes.php?page=custom-header' ) ) );
-
-			if ( current_theme_supports( 'widgets' ) )
-				$customize_links[] = sprintf( __( '<a href="%s">Add some widgets</a>' ), esc_url( admin_url( 'widgets.php' ) ) );
-
-			if ( ! empty( $customize_links ) ) {
-				echo '<p>';
-				printf( __( 'Use the current theme &mdash; %1$s &mdash; or <a href="%2$s">choose a new one</a>. If you stick with %1$s, here are a few ways to make your site look unique.' ), $theme->display('Name'), esc_url( admin_url( 'themes.php' ) ) );
-				echo '</p>';
-			?>
-			<ul>
-				<?php foreach ( $customize_links as $customize_link ) : ?>
-				<li><?php echo $customize_link ?></li>
-				<?php endforeach; ?>
-			</ul>
-			<?php
-			} else {
-				echo '<p>';
-				printf( __( 'Use the current theme &mdash; %1$s &mdash; or <a href="%2$s">choose a new one</a>.' ), $theme->display('Name'), esc_url( admin_url( 'themes.php' ) ) );
-				echo '</p>';
-			}
-		endif; ?>
+		<h4><?php _e( 'More Actions' ); ?></h4>
+		<ul>
+			<li><?php printf( '<div class="welcome-icon welcome-widgets-menus">' . __( 'Manage <a href="%1$s">widgets</a> or <a href="%2$s">menus</a>' ) . '</div>', admin_url( 'widgets.php' ), admin_url( 'nav-menus.php' ) ); ?></li>
+			<li><?php printf( '<a href="%s" class="welcome-icon welcome-comments">' . __( 'Turn comments on or off' ) . '</a>', admin_url( 'options-discussion.php' ) ); ?></li>
+			<li><?php printf( '<a href="%s" class="welcome-icon welcome-learn-more">' . __( 'Learn more about getting started' ) . '</a>', __( 'http://codex.wordpress.org/First_Steps_With_WordPress' ) ); ?></li>
+		</ul>
 	</div>
 	</div>
-	<p class="welcome-panel-dismiss"><?php printf( __( 'Already know what you&#8217;re doing? <a href="%s">Dismiss this message</a>.' ), esc_url( admin_url( '?welcome=0' ) ) ); ?></p>
-	</div>
 	</div>
 	<?php
 }
--- a/web/wp-admin/includes/deprecated.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-admin/includes/deprecated.php	Wed Dec 19 17:46:52 2012 -0800
@@ -42,12 +42,13 @@
  * @since 2.0.0
  * @deprecated 3.0.0
  * @deprecated Use wp_constrain_dimensions()
+ * @see wp_constrain_dimensions()
  *
  * @param int $width Current width of the image
  * @param int $height Current height of the image
  * @param int $wmax Maximum wanted width
  * @param int $hmax Maximum wanted height
- * @return mixed Array(height,width) of shrunk dimensions.
+ * @return array Shrunk dimensions (width, height).
  */
 function wp_shrink_dimensions( $width, $height, $wmax = 128, $hmax = 96 ) {
 	_deprecated_function( __FUNCTION__, '3.0', 'wp_constrain_dimensions()' );
@@ -55,6 +56,23 @@
 }
 
 /**
+ * Calculated the new dimensions for a downsampled image.
+ *
+ * @since 2.0.0
+ * @deprecated 3.5.0
+ * @deprecated Use wp_constrain_dimensions()
+ * @see wp_constrain_dimensions()
+ *
+ * @param int $width Current width of the image
+ * @param int $height Current height of the image
+ * @return array Shrunk dimensions (width, height).
+ */
+function get_udims( $width, $height ) {
+	_deprecated_function( __FUNCTION__, '3.5', 'wp_constrain_dimensions()' );
+	return wp_constrain_dimensions( $width, $height, 128, 96 );
+}
+
+/**
  * {@internal Missing Short Description}}
  *
  * @since 0.71
@@ -249,7 +267,8 @@
 
 	global $wpdb;
 
-	$user = new WP_User( $user_id );
+	if ( ! $user = get_userdata( $user_id ) )
+		return array();
 	$post_type_obj = get_post_type_object($post_type);
 
 	if ( ! $user->has_cap($post_type_obj->cap->edit_others_posts) ) {
@@ -938,4 +957,72 @@
 	_deprecated_function( __FUNCTION__, '3.4', 'wp_get_theme()' );
 
 	return wp_get_theme();
-}
\ No newline at end of file
+}
+
+/**
+ * This was once used to display an 'Insert into Post' button. Now it is deprecated and stubbed.
+ *
+ * @deprecated 3.5.0
+ */
+function _insert_into_post_button( $type ) {
+	_deprecated_function( __FUNCTION__, '3.5' );
+}
+
+/**
+ * This was once used to display a media button. Now it is deprecated and stubbed.
+ *
+ * @deprecated 3.5.0
+ */
+function _media_button($title, $icon, $type, $id) {
+	_deprecated_function( __FUNCTION__, '3.5' );
+}
+
+/**
+ * Get an existing post and format it for editing.
+ *
+ * @since 2.0.0
+ * @deprecated 3.5.0
+ *
+ * @param int $id
+ * @return object
+ */
+function get_post_to_edit( $id ) {
+	_deprecated_function( __FUNCTION__, '3.5', 'get_post()' );
+
+	return get_post( $id, OBJECT, 'edit' );
+}
+
+/**
+ * Get the default page information to use.
+ *
+ * @since 2.5.0
+ * @deprecated 3.5.0
+ * @deprecated Use get_default_post_to_edit()
+ *
+ * @return WP_Post Post object containing all the default post data as attributes
+ */
+function get_default_page_to_edit() {
+	_deprecated_function( __FUNCTION__, '3.5', "get_default_post_to_edit( 'page' )" );
+
+	$page = get_default_post_to_edit();
+	$page->post_type = 'page';
+	return $page;
+}
+
+/**
+ * This was once used to create a thumbnail from an Image given a maximum side size.
+ *
+ * @since 1.2.0
+ * @deprecated 3.5.0
+ * @deprecated Use image_resize()
+ * @see  image_resize()
+ *
+ * @param mixed $file Filename of the original image, Or attachment id.
+ * @param int $max_side Maximum length of a single side for the thumbnail.
+ * @param mixed $deprecated Never used.
+ * @return string Thumbnail path on success, Error string on failure.
+ */
+function wp_create_thumbnail( $file, $max_side, $deprecated = '' ) {
+	_deprecated_function( __FUNCTION__, '3.5', 'image_resize' );
+	return apply_filters( 'wp_create_thumbnail', image_resize( $file, $max_side, $max_side ) );
+}
--- a/web/wp-admin/includes/export.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-admin/includes/export.php	Wed Dec 19 17:46:52 2012 -0800
@@ -238,7 +238,7 @@
 		global $wpdb;
 
 		$authors = array();
-		$results = $wpdb->get_results( "SELECT DISTINCT post_author FROM $wpdb->posts" );
+		$results = $wpdb->get_results( "SELECT DISTINCT post_author FROM $wpdb->posts WHERE post_status != 'auto-draft'" );
 		foreach ( (array) $results as $result )
 			$authors[] = get_userdata( $result->post_author );
 
@@ -279,7 +279,7 @@
 	 * @since 2.3.0
 	 */
 	function wxr_post_taxonomy() {
-		global $post;
+		$post = get_post();
 
 		$taxonomies = get_object_taxonomies( $post->post_type );
 		if ( empty( $taxonomies ) )
--- a/web/wp-admin/includes/file.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-admin/includes/file.php	Wed Dec 19 17:46:52 2012 -0800
@@ -1,6 +1,8 @@
 <?php
 /**
- * File contains all the administration image manipulation functions.
+ * Functions for reading, writing, modifying, and deleting files on the file system.
+ * Includes functionality for theme-specific files as well as operations for uploading,
+ * archiving, and rendering output when necessary.
  *
  * @package WordPress
  * @subpackage Administration
@@ -79,10 +81,10 @@
 function get_home_path() {
 	$home = get_option( 'home' );
 	$siteurl = get_option( 'siteurl' );
-	if ( $home != '' && $home != $siteurl ) {
-		$wp_path_rel_to_home = str_replace($home, '', $siteurl); /* $siteurl - $home */
-		$pos = strrpos($_SERVER["SCRIPT_FILENAME"], $wp_path_rel_to_home);
-		$home_path = substr($_SERVER["SCRIPT_FILENAME"], 0, $pos);
+	if ( ! empty( $home ) && 0 !== strcasecmp( $home, $siteurl ) ) {
+		$wp_path_rel_to_home = str_ireplace( $home, '', $siteurl ); /* $siteurl - $home */
+		$pos = strripos( str_replace( '\\', '/', $_SERVER['SCRIPT_FILENAME'] ), trailingslashit( $wp_path_rel_to_home ) );
+		$home_path = substr( $_SERVER['SCRIPT_FILENAME'], 0, $pos );
 		$home_path = trailingslashit( $home_path );
 	} else {
 		$home_path = ABSPATH;
@@ -225,6 +227,7 @@
  * @uses delete_transient
  * @param array $file Reference to a single element of $_FILES. Call the function once for each uploaded file.
  * @param array $overrides Optional. An associative array of names=>values to override default variables with extract( $overrides, EXTR_OVERWRITE ).
+ * @param string $time Optional. Time formatted in 'yyyy/mm'.
  * @return array On success, returns an associative array of file attributes. On failure, returns $overrides['upload_error_handler'](&$file, $message ) or array( 'error'=>$message ).
  */
 function wp_handle_upload( &$file, $overrides = false, $time = null ) {
@@ -357,9 +360,10 @@
  * @uses wp_unique_filename
  * @param array $file an array similar to that of a PHP $_FILES POST array
  * @param array $overrides Optional. An associative array of names=>values to override default variables with extract( $overrides, EXTR_OVERWRITE ).
+ * @param string $time Optional. Time formatted in 'yyyy/mm'.
  * @return array On success, returns an associative array of file attributes. On failure, returns $overrides['upload_error_handler'](&$file, $message ) or array( 'error'=>$message ).
  */
-function wp_handle_sideload( &$file, $overrides = false ) {
+function wp_handle_sideload( &$file, $overrides = false, $time = null ) {
 	// The default error handler.
 	if (! function_exists( 'wp_handle_upload_error' ) ) {
 		function wp_handle_upload_error( &$file, $message ) {
@@ -436,7 +440,7 @@
 	}
 
 	// A writable uploads dir will pass this test. Again, there's no point overriding this one.
-	if ( ! ( ( $uploads = wp_upload_dir() ) && false === $uploads['error'] ) )
+	if ( ! ( ( $uploads = wp_upload_dir( $time ) ) && false === $uploads['error'] ) )
 		return $upload_error_handler( $file, $uploads['error'] );
 
 	$filename = wp_unique_filename( $uploads['path'], $file['name'], $unique_filename_callback );
--- a/web/wp-admin/includes/image-edit.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-admin/includes/image-edit.php	Wed Dec 19 17:46:52 2012 -0800
@@ -40,14 +40,14 @@
 		<div onclick="imageEdit.crop(<?php echo "$post_id, '$nonce'"; ?>, this)" class="imgedit-crop disabled" title="<?php esc_attr_e( 'Crop' ); ?>"></div><?php
 
 	// On some setups GD library does not provide imagerotate() - Ticket #11536
-	if ( function_exists('imagerotate') ) { ?>
+	if ( wp_image_editor_supports( array( 'mime_type' => get_post_mime_type( $post_id ), 'methods' => array( 'rotate' ) ) ) ) { ?>
 		<div class="imgedit-rleft"  onclick="imageEdit.rotate( 90, <?php echo "$post_id, '$nonce'"; ?>, this)" title="<?php esc_attr_e( 'Rotate counter-clockwise' ); ?>"></div>
 		<div class="imgedit-rright" onclick="imageEdit.rotate(-90, <?php echo "$post_id, '$nonce'"; ?>, this)" title="<?php esc_attr_e( 'Rotate clockwise' ); ?>"></div>
 <?php } else {
-		$note_gdlib = esc_attr__('Image rotation is not supported by your web host (function imagerotate() is missing)');
+		$note_no_rotate = esc_attr__('Image rotation is not supported by your web host.');
 ?>
-	    <div class="imgedit-rleft disabled"  title="<?php echo $note_gdlib; ?>"></div>
-	    <div class="imgedit-rright disabled" title="<?php echo $note_gdlib; ?>"></div>
+	    <div class="imgedit-rleft disabled"  title="<?php echo $note_no_rotate; ?>"></div>
+	    <div class="imgedit-rright disabled" title="<?php echo $note_no_rotate; ?>"></div>
 <?php } ?>
 
 		<div onclick="imageEdit.flip(1, <?php echo "$post_id, '$nonce'"; ?>, this)" class="imgedit-flipv" title="<?php esc_attr_e( 'Flip vertically' ); ?>"></div>
@@ -118,14 +118,6 @@
 		<a class="imgedit-help-toggle" onclick="imageEdit.toggleHelp(this);return false;" href="#"><?php _e('(help)'); ?></a>
 		<div class="imgedit-help">
 		<p><?php _e('The image can be cropped by clicking on it and dragging to select the desired part. While dragging the dimensions of the selection are displayed below.'); ?></p>
-		<strong><?php _e('Keyboard Shortcuts'); ?></strong>
-		<ul>
-		<li><?php _e('Arrow: move by 10px'); ?></li>
-		<li><?php _e('Shift + arrow: move by 1px'); ?></li>
-		<li><?php _e('Ctrl + arrow: resize by 10px'); ?></li>
-		<li><?php _e('Ctrl + Shift + arrow: resize by 1px'); ?></li>
-		<li><?php _e('Shift + drag: lock aspect ratio'); ?></li>
-		</ul>
 
 		<p><strong><?php _e('Crop Aspect Ratio'); ?></strong><br />
 		<?php _e('You can specify the crop selection aspect ratio then hold down the Shift key while dragging to lock it. The values can be 1:1 (square), 4:3, 16:9, etc. If there is a selection, specifying aspect ratio will set it immediately.'); ?></p>
@@ -191,45 +183,87 @@
 	</td></tr>
 	</tbody></table>
 	<div class="imgedit-wait" id="imgedit-wait-<?php echo $post_id; ?>"></div>
-	<script type="text/javascript">imageEdit.init(<?php echo $post_id; ?>);</script>
+	<script type="text/javascript">jQuery( function() { imageEdit.init(<?php echo $post_id; ?>); });</script>
 	<div class="hidden" id="imgedit-leaving-<?php echo $post_id; ?>"><?php _e("There are unsaved changes that will be lost. 'OK' to continue, 'Cancel' to return to the Image Editor."); ?></div>
 	</div>
 <?php
 }
 
-function wp_stream_image($image, $mime_type, $post_id) {
-	$image = apply_filters('image_save_pre', $image, $post_id);
+/**
+ * Streams image in WP_Image_Editor to browser.
+ * Provided for backcompat reasons
+ *
+ * @param WP_Image_Editor $image
+ * @param string $mime_type
+ * @param int $post_id
+ * @return boolean
+ */
+function wp_stream_image( $image, $mime_type, $post_id ) {
+	if ( $image instanceof WP_Image_Editor ) {
+		$image = apply_filters('image_editor_save_pre', $image, $post_id);
+
+		if ( is_wp_error( $image->stream( $mime_type ) ) )
+			return false;
 
-	switch ( $mime_type ) {
-		case 'image/jpeg':
-			header('Content-Type: image/jpeg');
-			return imagejpeg($image, null, 90);
-		case 'image/png':
-			header('Content-Type: image/png');
-			return imagepng($image);
-		case 'image/gif':
-			header('Content-Type: image/gif');
-			return imagegif($image);
-		default:
-			return false;
+		return true;
+	} else {
+		_deprecated_argument( __FUNCTION__, '3.5', __( '$image needs to be an WP_Image_Editor object' ) );
+
+		$image = apply_filters('image_save_pre', $image, $post_id);
+
+		switch ( $mime_type ) {
+			case 'image/jpeg':
+				header( 'Content-Type: image/jpeg' );
+				return imagejpeg( $image, null, 90 );
+			case 'image/png':
+				header( 'Content-Type: image/png' );
+				return imagepng( $image );
+			case 'image/gif':
+				header( 'Content-Type: image/gif' );
+				return imagegif( $image );
+			default:
+				return false;
+		}
 	}
 }
 
-function wp_save_image_file($filename, $image, $mime_type, $post_id) {
-	$image = apply_filters('image_save_pre', $image, $post_id);
-	$saved = apply_filters('wp_save_image_file', null, $filename, $image, $mime_type, $post_id);
-	if ( null !== $saved )
-		return $saved;
+/**
+ * Saves Image to File
+ *
+ * @param string $filename
+ * @param WP_Image_Editor $image
+ * @param string $mime_type
+ * @param int $post_id
+ * @return boolean
+ */
+function wp_save_image_file( $filename, $image, $mime_type, $post_id ) {
+	if ( $image instanceof WP_Image_Editor ) {
+		$image = apply_filters('image_editor_save_pre', $image, $post_id);
+		$saved = apply_filters('wp_save_image_editor_file', null, $filename, $image, $mime_type, $post_id);
+
+		if ( null !== $saved )
+			return $saved;
 
-	switch ( $mime_type ) {
-		case 'image/jpeg':
-			return imagejpeg( $image, $filename, apply_filters( 'jpeg_quality', 90, 'edit_image' ) );
-		case 'image/png':
-			return imagepng($image, $filename);
-		case 'image/gif':
-			return imagegif($image, $filename);
-		default:
-			return false;
+		return $image->save( $filename, $mime_type );
+	} else {
+		_deprecated_argument( __FUNCTION__, '3.5', __( '$image needs to be an WP_Image_Editor object' ) );
+
+		$image = apply_filters('image_save_pre', $image, $post_id);
+		$saved = apply_filters('wp_save_image_file', null, $filename, $image, $mime_type, $post_id);
+
+		if ( null !== $saved )
+			return $saved;
+
+		switch ( $mime_type ) {
+			case 'image/jpeg':
+				return imagejpeg( $image, $filename, apply_filters( 'jpeg_quality', 90, 'edit_image' ) );
+			case 'image/png':
+				return imagepng( $image, $filename );
+			case 'image/gif':
+				return imagegif( $image, $filename );
+			default:
+				return false;
+		}
 	}
 }
 
@@ -238,7 +272,9 @@
 	return $max > 400 ? (400 / $max) : 1;
 }
 
+// @TODO: Returns GD resource, but is NOT public
 function _rotate_image_resource($img, $angle) {
+	_deprecated_function( __FUNCTION__, '3.5', __( 'Use WP_Image_Editor::rotate' ) );
 	if ( function_exists('imagerotate') ) {
 		$rotated = imagerotate($img, $angle, 0);
 		if ( is_resource($rotated) ) {
@@ -249,7 +285,18 @@
 	return $img;
 }
 
+/**
+ * @TODO: Only used within image_edit_apply_changes
+ *		  and receives/returns GD Resource.
+ *		  Consider removal.
+ *
+ * @param GD_Resource $img
+ * @param boolean $horz
+ * @param boolean $vert
+ * @return GD_Resource
+ */
 function _flip_image_resource($img, $horz, $vert) {
+	_deprecated_function( __FUNCTION__, '3.5', __( 'Use WP_Image_Editor::flip' ) );
 	$w = imagesx($img);
 	$h = imagesy($img);
 	$dst = wp_imagecreatetruecolor($w, $h);
@@ -267,6 +314,18 @@
 	return $img;
 }
 
+/**
+ * @TODO: Only used within image_edit_apply_changes
+ *		  and receives/returns GD Resource.
+ *		  Consider removal.
+ *
+ * @param GD_Resource $img
+ * @param float $x
+ * @param float $y
+ * @param float $w
+ * @param float $h
+ * @return GD_Resource
+ */
 function _crop_image_resource($img, $x, $y, $w, $h) {
 	$dst = wp_imagecreatetruecolor($w, $h);
 	if ( is_resource($dst) ) {
@@ -278,10 +337,19 @@
 	return $img;
 }
 
-function image_edit_apply_changes($img, $changes) {
+/**
+ * Performs group of changes on Editor specified.
+ *
+ * @param WP_Image_Editor $image
+ * @param type $changes
+ * @return WP_Image_Editor
+ */
+function image_edit_apply_changes( $image, $changes ) {
+	if ( is_resource( $image ) )
+		_deprecated_argument( __FUNCTION__, '3.5', __( '$image needs to be an WP_Image_Editor object' ) );
 
 	if ( !is_array($changes) )
-		return $img;
+		return $image;
 
 	// expand change operations
 	foreach ( $changes as $key => $obj ) {
@@ -326,55 +394,83 @@
 	}
 
 	// image resource before applying the changes
-	$img = apply_filters('image_edit_before_change', $img, $changes);
+	if ( $image instanceof WP_Image_Editor )
+		$image = apply_filters('wp_image_editor_before_change', $image, $changes);
+	elseif ( is_resource( $image ) )
+		$image = apply_filters('image_edit_before_change', $image, $changes);
 
 	foreach ( $changes as $operation ) {
 		switch ( $operation->type ) {
 			case 'rotate':
-				if ( $operation->angle != 0 )
-					$img = _rotate_image_resource($img, $operation->angle);
+				if ( $operation->angle != 0 ) {
+					if ( $image instanceof WP_Image_Editor )
+						$image->rotate( $operation->angle );
+					else
+						$image = _rotate_image_resource( $image, $operation->angle );
+				}
 				break;
 			case 'flip':
 				if ( $operation->axis != 0 )
-					$img = _flip_image_resource($img, ($operation->axis & 1) != 0, ($operation->axis & 2) != 0);
+					if ( $image instanceof WP_Image_Editor )
+						$image->flip( ($operation->axis & 1) != 0, ($operation->axis & 2) != 0 );
+					else
+						$image = _flip_image_resource( $image, ( $operation->axis & 1 ) != 0, ( $operation->axis & 2 ) != 0 );
 				break;
 			case 'crop':
 				$sel = $operation->sel;
-				$scale = 1 / _image_get_preview_ratio( imagesx($img), imagesy($img) ); // discard preview scaling
-				$img = _crop_image_resource($img, $sel->x * $scale, $sel->y * $scale, $sel->w * $scale, $sel->h * $scale);
+
+				if ( $image instanceof WP_Image_Editor ) {
+					$size = $image->get_size();
+					$w = $size['width'];
+					$h = $size['height'];
+
+					$scale = 1 / _image_get_preview_ratio( $w, $h ); // discard preview scaling
+					$image->crop( $sel->x * $scale, $sel->y * $scale, $sel->w * $scale, $sel->h * $scale );
+				} else {
+					$scale = 1 / _image_get_preview_ratio( imagesx( $image ), imagesy( $image ) ); // discard preview scaling
+					$image = _crop_image_resource( $image, $sel->x * $scale, $sel->y * $scale, $sel->w * $scale, $sel->h * $scale );
+				}
 				break;
 		}
 	}
 
-	return $img;
+	return $image;
 }
 
-function stream_preview_image($post_id) {
-	$post = get_post($post_id);
+
+/**
+ * Streams image in post to browser, along with enqueued changes
+ * in $_REQUEST['history']
+ *
+ * @param int $post_id
+ * @return boolean
+ */
+function stream_preview_image( $post_id ) {
+	$post = get_post( $post_id );
 	@ini_set( 'memory_limit', apply_filters( 'admin_memory_limit', WP_MAX_MEMORY_LIMIT ) );
-	$img = load_image_to_edit( $post_id, $post->post_mime_type, array(400, 400) );
+
+	$img = wp_get_image_editor( _load_image_to_edit_path( $post_id ) );
 
-	if ( !is_resource($img) )
-		return false;
+    if ( is_wp_error( $img ) )
+        return false;
 
 	$changes = !empty($_REQUEST['history']) ? json_decode( stripslashes($_REQUEST['history']) ) : null;
 	if ( $changes )
-		$img = image_edit_apply_changes($img, $changes);
+		$img = image_edit_apply_changes( $img, $changes );
 
 	// scale the image
-	$w = imagesx($img);
-	$h = imagesy($img);
-	$ratio = _image_get_preview_ratio($w, $h);
+	$size = $img->get_size();
+	$w = $size['width'];
+	$h = $size['height'];
+
+	$ratio = _image_get_preview_ratio( $w, $h );
 	$w2 = $w * $ratio;
 	$h2 = $h * $ratio;
 
-	$preview = wp_imagecreatetruecolor($w2, $h2);
-	imagecopyresampled( $preview, $img, 0, 0, 0, 0, $w2, $h2, $w, $h );
-	wp_stream_image($preview, $post->post_mime_type, $post_id);
+	if ( is_wp_error( $img->resize( $w2, $h2 ) ) )
+		return false;
 
-	imagedestroy($preview);
-	imagedestroy($img);
-	return true;
+	return wp_stream_image( $img, $post->post_mime_type, $post_id );
 }
 
 function wp_restore_image($post_id) {
@@ -414,8 +510,6 @@
 		$meta['file'] = _wp_relative_upload_path( $restored_file );
 		$meta['width'] = $data['width'];
 		$meta['height'] = $data['height'];
-		list ( $uwidth, $uheight ) = wp_constrain_dimensions($meta['width'], $meta['height'], 128, 96);
-		$meta['hwstring_small'] = "height='$uheight' width='$uwidth'";
 	}
 
 	foreach ( $default_sizes as $default_size ) {
@@ -452,14 +546,20 @@
 	return $msg;
 }
 
-function wp_save_image($post_id) {
+/**
+ * Saves image to post along with enqueued changes
+ * in $_REQUEST['history']
+ *
+ * @param int $post_id
+ * @return \stdClass
+ */
+function wp_save_image( $post_id ) {
 	$return = new stdClass;
 	$success = $delete = $scaled = $nocrop = false;
-	$post = get_post($post_id);
-	@ini_set( 'memory_limit', apply_filters( 'admin_memory_limit', WP_MAX_MEMORY_LIMIT ) );
-	$img = load_image_to_edit($post_id, $post->post_mime_type);
+	$post = get_post( $post_id );
 
-	if ( !is_resource($img) ) {
+	$img = wp_get_image_editor( _load_image_to_edit_path( $post_id, 'full' ) );
+	if ( is_wp_error( $img ) ) {
 		$return->error = esc_js( __('Unable to create new image.') );
 		return $return;
 	}
@@ -470,19 +570,16 @@
 	$scale = !empty($_REQUEST['do']) && 'scale' == $_REQUEST['do'];
 
 	if ( $scale && $fwidth > 0 && $fheight > 0 ) {
-		$sX = imagesx($img);
-		$sY = imagesy($img);
+		$size = $img->get_size();
+		$sX = $size['width'];
+		$sY = $size['height'];
 
 		// check if it has roughly the same w / h ratio
 		$diff = round($sX / $sY, 2) - round($fwidth / $fheight, 2);
 		if ( -0.1 < $diff && $diff < 0.1 ) {
 			// scale the full size image
-			$dst = wp_imagecreatetruecolor($fwidth, $fheight);
-			if ( imagecopyresampled( $dst, $img, 0, 0, 0, 0, $fwidth, $fheight, $sX, $sY ) ) {
-				imagedestroy($img);
-				$img = $dst;
+			if ( $img->resize( $fwidth, $fheight ) )
 				$scaled = true;
-			}
 		}
 
 		if ( !$scaled ) {
@@ -553,14 +650,13 @@
 		if ( $tag )
 			$backup_sizes[$tag] = array('width' => $meta['width'], 'height' => $meta['height'], 'file' => $path_parts['basename']);
 
-		$success = update_attached_file($post_id, $new_path);
+		$success = update_attached_file( $post_id, $new_path );
+
+		$meta['file'] = _wp_relative_upload_path( $new_path );
 
-		$meta['file'] = _wp_relative_upload_path($new_path);
-		$meta['width'] = imagesx($img);
-		$meta['height'] = imagesy($img);
-
-		list ( $uwidth, $uheight ) = wp_constrain_dimensions($meta['width'], $meta['height'], 128, 96);
-		$meta['hwstring_small'] = "height='$uheight' width='$uwidth'";
+		$size = $img->get_size();
+		$meta['width'] = $size['width'];
+		$meta['height'] = $size['height'];
 
 		if ( $success && ('nothumb' == $target || 'all' == $target) ) {
 			$sizes = get_intermediate_image_sizes();
@@ -575,10 +671,12 @@
 		$success = $delete = $nocrop = true;
 	}
 
-	if ( isset($sizes) ) {
+	if ( isset( $sizes ) ) {
+		$_sizes = array();
+
 		foreach ( $sizes as $size ) {
 			$tag = false;
-			if ( isset($meta['sizes'][$size]) ) {
+			if ( isset( $meta['sizes'][$size] ) ) {
 				if ( isset($backup_sizes["$size-orig"]) ) {
 					if ( ( !defined('IMAGE_EDIT_OVERWRITE') || !IMAGE_EDIT_OVERWRITE ) && $backup_sizes["$size-orig"]['file'] != $meta['sizes'][$size]['file'] )
 						$tag = "$size-$suffix";
@@ -591,25 +689,30 @@
 			}
 
 			$crop = $nocrop ? false : get_option("{$size}_crop");
-			$resized = image_make_intermediate_size($new_path, get_option("{$size}_size_w"), get_option("{$size}_size_h"), $crop );
+			$_sizes[ $size ] = array( 'width' => get_option("{$size}_size_w"), 'height' => get_option("{$size}_size_h"), 'crop' => $crop );
+		}
 
-			if ( $resized )
-				$meta['sizes'][$size] = $resized;
-			else
-				unset($meta['sizes'][$size]);
-		}
+		$meta['sizes'] = $img->multi_resize( $_sizes );
 	}
 
+	unset( $img );
+
 	if ( $success ) {
-		wp_update_attachment_metadata($post_id, $meta);
+		wp_update_attachment_metadata( $post_id, $meta );
 		update_post_meta( $post_id, '_wp_attachment_backup_sizes', $backup_sizes);
 
 		if ( $target == 'thumbnail' || $target == 'all' || $target == 'full' ) {
-			$file_url = wp_get_attachment_url($post_id);
-			if ( $thumb = $meta['sizes']['thumbnail'] )
-				$return->thumbnail = path_join( dirname($file_url), $thumb['file'] );
-			else
-				$return->thumbnail = "$file_url?w=128&h=128";
+			// Check if it's an image edit from attachment edit screen
+			if ( ! empty( $_REQUEST['context'] ) && 'edit-attachment' == $_REQUEST['context'] ) {
+				$thumb_url = wp_get_attachment_image_src( $post_id, array( 900, 600 ), true );
+				$return->thumbnail = $thumb_url[0];
+			} else {
+				$file_url = wp_get_attachment_url($post_id);
+				if ( $thumb = $meta['sizes']['thumbnail'] )
+					$return->thumbnail = path_join( dirname($file_url), $thumb['file'] );
+				else
+					$return->thumbnail = "$file_url?w=128&h=128";
+			}
 		}
 	} else {
 		$delete = true;
@@ -617,11 +720,9 @@
 
 	if ( $delete ) {
 		$delpath = apply_filters('wp_delete_file', $new_path);
-		@unlink($delpath);
+		@unlink( $delpath );
 	}
 
-	imagedestroy($img);
-
 	$return->msg = esc_js( __('Image saved') );
 	return $return;
 }
--- a/web/wp-admin/includes/image.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-admin/includes/image.php	Wed Dec 19 17:46:52 2012 -0800
@@ -7,27 +7,6 @@
  */
 
 /**
- * Create a thumbnail from an Image given a maximum side size.
- *
- * This function can handle most image file formats which PHP supports. If PHP
- * does not have the functionality to save in a file of the same format, the
- * thumbnail will be created as a jpeg.
- *
- * @since 1.2.0
- *
- * @param mixed $file Filename of the original image, Or attachment id.
- * @param int $max_side Maximum length of a single side for the thumbnail.
- * @param mixed $deprecated Never used.
- * @return string Thumbnail path on success, Error string on failure.
- */
-function wp_create_thumbnail( $file, $max_side, $deprecated = '' ) {
-	if ( !empty( $deprecated ) )
-		_deprecated_argument( __FUNCTION__, '1.2' );
-	$thumbpath = image_resize( $file, $max_side, $max_side );
-	return apply_filters( 'wp_create_thumbnail', $thumbpath );
-}
-
-/**
  * Crop an Image to a given size.
  *
  * @since 2.1.0
@@ -44,60 +23,38 @@
  * @return string|WP_Error|false New filepath on success, WP_Error or false on failure.
  */
 function wp_crop_image( $src, $src_x, $src_y, $src_w, $src_h, $dst_w, $dst_h, $src_abs = false, $dst_file = false ) {
+	$src_file = $src;
 	if ( is_numeric( $src ) ) { // Handle int as attachment ID
 		$src_file = get_attached_file( $src );
+
 		if ( ! file_exists( $src_file ) ) {
 			// If the file doesn't exist, attempt a url fopen on the src link.
 			// This can occur with certain file replication plugins.
-			$post = get_post( $src );
-			$image_type = $post->post_mime_type;
-			$src = load_image_to_edit( $src, $post->post_mime_type, 'full' );
+			$src = _load_image_to_edit_path( $src, 'full' );
 		} else {
-			$size = @getimagesize( $src_file );
-			$image_type = ( $size ) ? $size['mime'] : '';
-			$src = wp_load_image( $src_file );
+			$src = $src_file;
 		}
-	} else {
-		$size = @getimagesize( $src );
-		$image_type = ( $size ) ? $size['mime'] : '';
-		$src = wp_load_image( $src );
 	}
 
-	if ( ! is_resource( $src ) )
-		return new WP_Error( 'error_loading_image', $src, $src_file );
-
-	$dst = wp_imagecreatetruecolor( $dst_w, $dst_h );
+	$editor = wp_get_image_editor( $src );
+	if ( is_wp_error( $editor ) )
+		return $editor;
 
-	if ( $src_abs ) {
-		$src_w -= $src_x;
-		$src_h -= $src_y;
-	}
-
-	if ( function_exists( 'imageantialias' ) )
-		imageantialias( $dst, true );
-
-	imagecopyresampled( $dst, $src, 0, 0, $src_x, $src_y, $dst_w, $dst_h, $src_w, $src_h );
-
-	imagedestroy( $src ); // Free up memory
+	$src = $editor->crop( $src_x, $src_y, $src_w, $src_h, $dst_w, $dst_h, $src_abs );
+	if ( is_wp_error( $src ) )
+		return $src;
 
 	if ( ! $dst_file )
 		$dst_file = str_replace( basename( $src_file ), 'cropped-' . basename( $src_file ), $src_file );
 
-	if ( 'image/png' != $image_type )
-		$dst_file = preg_replace( '/\\.[^\\.]+$/', '.jpg', $dst_file );
-
 	// The directory containing the original file may no longer exist when
 	// using a replication plugin.
 	wp_mkdir_p( dirname( $dst_file ) );
 
 	$dst_file = dirname( $dst_file ) . '/' . wp_unique_filename( dirname( $dst_file ), basename( $dst_file ) );
 
-	if ( 'image/png' == $image_type && imagepng( $dst, $dst_file ) )
-		return $dst_file;
-	elseif ( imagejpeg( $dst, $dst_file, apply_filters( 'jpeg_quality', 90, 'wp_crop_image' ) ) )
-		return $dst_file;
-	else
-		return false;
+	$result = $editor->save( $dst_file );
+	return $dst_file;
 }
 
 /**
@@ -117,8 +74,6 @@
 		$imagesize = getimagesize( $file );
 		$metadata['width'] = $imagesize[0];
 		$metadata['height'] = $imagesize[1];
-		list($uwidth, $uheight) = wp_constrain_dimensions($metadata['width'], $metadata['height'], 128, 96);
-		$metadata['hwstring_small'] = "height='$uheight' width='$uwidth'";
 
 		// Make the file path relative to the upload dir
 		$metadata['file'] = _wp_relative_upload_path($file);
@@ -144,10 +99,13 @@
 
 		$sizes = apply_filters( 'intermediate_image_sizes_advanced', $sizes );
 
-		foreach ($sizes as $size => $size_data ) {
-			$resized = image_make_intermediate_size( $file, $size_data['width'], $size_data['height'], $size_data['crop'] );
-			if ( $resized )
-				$metadata['sizes'][$size] = $resized;
+		if ( $sizes ) {
+			$editor = wp_get_image_editor( $file );
+
+			if ( ! is_wp_error( $editor ) )
+				$metadata['sizes'] = $editor->multi_resize( $sizes );
+		} else {
+			$metadata['sizes'] = array();
 		}
 
 		// fetch additional metadata from exif/iptc
@@ -161,20 +119,6 @@
 }
 
 /**
- * Calculated the new dimensions for a downsampled image.
- *
- * @since 2.0.0
- * @see wp_constrain_dimensions()
- *
- * @param int $width Current width of the image
- * @param int $height Current height of the image
- * @return mixed Array(height,width) of shrunk dimensions.
- */
-function get_udims( $width, $height) {
-	return wp_constrain_dimensions( $width, $height, 128, 96 );
-}
-
-/**
  * Convert a fraction string to a decimal.
  *
  * @since 2.5.0
@@ -253,13 +197,13 @@
 
 			// headline, "A brief synopsis of the caption."
 			if ( ! empty( $iptc['2#105'][0] ) )
-				$meta['title'] = utf8_encode( trim( $iptc['2#105'][0] ) );
+				$meta['title'] = trim( $iptc['2#105'][0] );
 			// title, "Many use the Title field to store the filename of the image, though the field may be used in many ways."
 			elseif ( ! empty( $iptc['2#005'][0] ) )
-				$meta['title'] = utf8_encode( trim( $iptc['2#005'][0] ) );
+				$meta['title'] = trim( $iptc['2#005'][0] );
 
 			if ( ! empty( $iptc['2#120'][0] ) ) { // description / legacy caption
-				$caption = utf8_encode( trim( $iptc['2#120'][0] ) );
+				$caption = trim( $iptc['2#120'][0] );
 				if ( empty( $meta['title'] ) ) {
 					// Assume the title is stored in 2:120 if it's short.
 					if ( strlen( $caption ) < 80 )
@@ -272,15 +216,15 @@
 			}
 
 			if ( ! empty( $iptc['2#110'][0] ) ) // credit
-				$meta['credit'] = utf8_encode(trim($iptc['2#110'][0]));
+				$meta['credit'] = trim( $iptc['2#110'][0] );
 			elseif ( ! empty( $iptc['2#080'][0] ) ) // creator / legacy byline
-				$meta['credit'] = utf8_encode(trim($iptc['2#080'][0]));
+				$meta['credit'] = trim( $iptc['2#080'][0] );
 
 			if ( ! empty( $iptc['2#055'][0] ) and ! empty( $iptc['2#060'][0] ) ) // created date and time
 				$meta['created_timestamp'] = strtotime( $iptc['2#055'][0] . ' ' . $iptc['2#060'][0] );
 
 			if ( ! empty( $iptc['2#116'][0] ) ) // copyright
-				$meta['copyright'] = utf8_encode( trim( $iptc['2#116'][0] ) );
+				$meta['copyright'] = trim( $iptc['2#116'][0] );
 		 }
 	}
 
@@ -289,42 +233,47 @@
 		$exif = @exif_read_data( $file );
 
 		if ( !empty( $exif['Title'] ) )
-			$meta['title'] = utf8_encode( trim( $exif['Title'] ) );
+			$meta['title'] = trim( $exif['Title'] );
 
 		if ( ! empty( $exif['ImageDescription'] ) ) {
 			if ( empty( $meta['title'] ) && strlen( $exif['ImageDescription'] ) < 80 ) {
 				// Assume the title is stored in ImageDescription
-				$meta['title'] = utf8_encode( trim( $exif['ImageDescription'] ) );
+				$meta['title'] = trim( $exif['ImageDescription'] );
 				if ( ! empty( $exif['COMPUTED']['UserComment'] ) && trim( $exif['COMPUTED']['UserComment'] ) != $meta['title'] )
-					$meta['caption'] = utf8_encode( trim( $exif['COMPUTED']['UserComment'] ) );
+					$meta['caption'] = trim( $exif['COMPUTED']['UserComment'] );
 			} elseif ( trim( $exif['ImageDescription'] ) != $meta['title'] ) {
-				$meta['caption'] = utf8_encode( trim( $exif['ImageDescription'] ) );
+				$meta['caption'] = trim( $exif['ImageDescription'] );
 			}
 		} elseif ( ! empty( $exif['Comments'] ) && trim( $exif['Comments'] ) != $meta['title'] ) {
-			$meta['caption'] = utf8_encode( trim( $exif['Comments'] ) );
+			$meta['caption'] = trim( $exif['Comments'] );
 		}
 
 		if ( ! empty( $exif['Artist'] ) )
-			$meta['credit'] = utf8_encode( trim( $exif['Artist'] ) );
+			$meta['credit'] = trim( $exif['Artist'] );
 		elseif ( ! empty($exif['Author'] ) )
-			$meta['credit'] = utf8_encode( trim( $exif['Author'] ) );
+			$meta['credit'] = trim( $exif['Author'] );
 
 		if ( ! empty( $exif['Copyright'] ) )
-			$meta['copyright'] = utf8_encode( trim( $exif['Copyright'] ) );
+			$meta['copyright'] = trim( $exif['Copyright'] );
 		if ( ! empty($exif['FNumber'] ) )
 			$meta['aperture'] = round( wp_exif_frac2dec( $exif['FNumber'] ), 2 );
 		if ( ! empty($exif['Model'] ) )
-			$meta['camera'] = utf8_encode( trim( $exif['Model'] ) );
+			$meta['camera'] = trim( $exif['Model'] );
 		if ( ! empty($exif['DateTimeDigitized'] ) )
 			$meta['created_timestamp'] = wp_exif_date2ts($exif['DateTimeDigitized'] );
 		if ( ! empty($exif['FocalLength'] ) )
-			$meta['focal_length'] = wp_exif_frac2dec( $exif['FocalLength'] );
+			$meta['focal_length'] = (string) wp_exif_frac2dec( $exif['FocalLength'] );
 		if ( ! empty($exif['ISOSpeedRatings'] ) ) {
 			$meta['iso'] = is_array( $exif['ISOSpeedRatings'] ) ? reset( $exif['ISOSpeedRatings'] ) : $exif['ISOSpeedRatings'];
-			$meta['iso'] = utf8_encode( trim( $meta['iso'] ) );
+			$meta['iso'] = trim( $meta['iso'] );
 		}
 		if ( ! empty($exif['ExposureTime'] ) )
-			$meta['shutter_speed'] = wp_exif_frac2dec( $exif['ExposureTime'] );
+			$meta['shutter_speed'] = (string) wp_exif_frac2dec( $exif['ExposureTime'] );
+	}
+
+	foreach ( array( 'title', 'caption', 'credit', 'copyright', 'camera', 'iso' ) as $key ) {
+		if ( $meta[ $key ] && ! seems_utf8( $meta[ $key ] ) )
+			$meta[ $key ] = utf8_encode( $meta[ $key ] );
 	}
 
 	return apply_filters( 'wp_read_image_metadata', $meta, $file, $sourceImageType );
--- a/web/wp-admin/includes/import.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-admin/includes/import.php	Wed Dec 19 17:46:52 2012 -0800
@@ -89,7 +89,97 @@
 	$id = wp_insert_attachment( $object, $file );
 
 	// schedule a cleanup for one day from now in case of failed import or missing wp_import_cleanup() call
-	wp_schedule_single_event( time() + 86400, 'importer_scheduled_cleanup', array( $id ) );
+	wp_schedule_single_event( time() + DAY_IN_SECONDS, 'importer_scheduled_cleanup', array( $id ) );
 
 	return array( 'file' => $file, 'id' => $id );
 }
+
+/**
+ * Returns a list from WordPress.org of popular importer plugins.
+ *
+ * @since 3.5.0
+ *
+ * @return array Importers with metadata for each.
+ */
+function wp_get_popular_importers() {
+	include ABSPATH . WPINC . '/version.php'; // include an unmodified $wp_version
+
+	$locale = get_locale();
+	$popular_importers = get_site_transient( 'popular_importers_' . $locale );
+
+	if ( ! $popular_importers ) {
+		$url = add_query_arg( 'locale', get_locale(), 'http://api.wordpress.org/core/importers/1.0/' );
+		$options = array( 'user-agent' => 'WordPress/' . $wp_version . '; ' . home_url() );
+		$popular_importers = maybe_unserialize( wp_remote_retrieve_body( wp_remote_get( $url, $options ) ) );
+
+		if ( is_array( $popular_importers ) )
+			set_site_transient( 'popular_importers_' . $locale, $popular_importers, 2 * DAY_IN_SECONDS );
+		else
+			$popular_importers = false;
+	}
+
+	if ( is_array( $popular_importers ) ) {
+		// If the data was received as translated, return it as-is.
+		if ( $popular_importers['translated'] )
+			return $popular_importers['importers'];
+
+		foreach ( $popular_importers['importers'] as &$importer ) {
+			$importer['description'] = translate( $importer['description'] );
+			if ( $importer['name'] != 'WordPress' )
+				$importer['name'] = translate( $importer['name'] );
+		}
+		return $popular_importers['importers'];
+	}
+
+	return array(
+		// slug => name, description, plugin slug, and register_importer() slug
+		'blogger' => array(
+			'name' => __( 'Blogger' ),
+			'description' => __( 'Install the Blogger importer to import posts, comments, and users from a Blogger blog.' ),
+			'plugin-slug' => 'blogger-importer',
+			'importer-id' => 'blogger',
+		),
+		'wpcat2tag' => array(
+			'name' => __( 'Categories and Tags Converter' ),
+			'description' => __( 'Install the category/tag converter to convert existing categories to tags or tags to categories, selectively.' ),
+			'plugin-slug' => 'wpcat2tag-importer',
+			'importer-id' => 'wp-cat2tag',
+		),
+		'livejournal' => array(
+			'name' => __( 'LiveJournal' ),
+			'description' => __( 'Install the LiveJournal importer to import posts from LiveJournal using their API.' ),
+			'plugin-slug' => 'livejournal-importer',
+			'importer-id' => 'livejournal',
+		),
+		'movabletype' => array(
+			'name' => __( 'Movable Type and TypePad' ),
+			'description' => __( 'Install the Movable Type importer to import posts and comments from a Movable Type or TypePad blog.' ),
+			'plugin-slug' => 'movabletype-importer',
+			'importer-id' => 'mt',
+		),
+		'opml' => array(
+			'name' => __( 'Blogroll' ),
+			'description' => __( 'Install the blogroll importer to import links in OPML format.' ),
+			'plugin-slug' => 'opml-importer',
+			'importer-id' => 'opml',
+		),
+		'rss' => array(
+			'name' => __( 'RSS' ),
+			'description' => __( 'Install the RSS importer to import posts from an RSS feed.' ),
+			'plugin-slug' => 'rss-importer',
+			'importer-id' => 'rss',
+		),
+		'tumblr' => array(
+			'name' => __( 'Tumblr' ),
+			'description' => __( 'Install the Tumblr importer to import posts &amp; media from Tumblr using their API.' ),
+			'plugin-slug' => 'tumblr-importer',
+			'importer-id' => 'tumblr',
+		),
+		'wordpress' => array(
+			'name' => 'WordPress',
+			'description' => __( 'Install the WordPress importer to import posts, pages, comments, custom fields, categories, and tags from a WordPress export file.' ),
+			'plugin-slug' => 'wordpress-importer',
+			'importer-id' => 'wordpress',
+		),
+	);
+}
--- a/web/wp-admin/includes/list-table.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-admin/includes/list-table.php	Wed Dec 19 17:46:52 2012 -0800
@@ -14,9 +14,10 @@
  * @since 3.1.0
  *
  * @param string $class The type of the list table, which is the class name.
+ * @param array $args Optional. Arguments to pass to the class. Accepts 'screen'.
  * @return object|bool Object on success, false if the class does not exist.
  */
-function _get_list_table( $class ) {
+function _get_list_table( $class, $args = array() ) {
 	$core_classes = array(
 		//Site Admin
 		'WP_Posts_List_Table' => 'posts',
@@ -39,7 +40,15 @@
 	if ( isset( $core_classes[ $class ] ) ) {
 		foreach ( (array) $core_classes[ $class ] as $required )
 			require_once( ABSPATH . 'wp-admin/includes/class-wp-' . $required . '-list-table.php' );
-		return new $class;
+
+		if ( isset( $args['screen'] ) )
+			$args['screen'] = convert_to_screen( $args['screen'] );
+		elseif ( isset( $GLOBALS['hook_suffix'] ) )
+			$args['screen'] = get_current_screen();
+		else
+			$args['screen'] = null;
+
+		return new $class( $args );
 	}
 
 	return false;
--- a/web/wp-admin/includes/manifest.php	Wed Dec 19 12:35:13 2012 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,201 +0,0 @@
-<?php
-
-if ( !defined('ABSPATH') )
-	exit;
-
-require(ABSPATH . 'wp-includes/version.php');
-
-$man_version = md5( $tinymce_version . $manifest_version );
-$mce_ver = "ver=$tinymce_version";
-
-/**
- * Retrieve list of all cacheable WP files
- *
- * Array format: file, version (optional), bool (whether to use src and set ignoreQuery, defaults to true)
- */
-function &get_manifest() {
-	global $mce_ver;
-
-	$files = array(
-		array('images/align-center.png'),
-		array('images/align-left.png'),
-		array('images/align-none.png'),
-		array('images/align-right.png'),
-		array('images/archive-link.png'),
-		array('images/blue-grad.png'),
-		array('images/bubble_bg.gif'),
-		array('images/bubble_bg-rtl.gif'),
-		array('images/button-grad.png'),
-		array('images/button-grad-active.png'),
-		array('images/comment-grey-bubble.png'),
-		array('images/date-button.gif'),
-		array('images/ed-bg.gif'),
-		array('images/fade-butt.png'),
-		array('images/fav.png'),
-		array('images/fav-arrow.gif'),
-		array('images/fav-arrow-rtl.gif'),
-		array('images/generic.png'),
-		array('images/gray-grad.png'),
-		array('images/icons32.png'),
-		array('images/icons32-vs.png'),
-		array('images/list.png'),
-		array('images/wpspin_light.gif'),
-		array('images/wpspin_dark.gif'),
-		array('images/logo.gif'),
-		array('images/logo-ghost.png'),
-		array('images/media-button-image.gif'),
-		array('images/media-button-music.gif'),
-		array('images/media-button-other.gif'),
-		array('images/media-button-video.gif'),
-		array('images/menu.png'),
-		array('images/menu-vs.png'),
-		array('images/menu-arrows.gif'),
-		array('images/menu-bits.gif'),
-		array('images/menu-bits-rtl.gif'),
-		array('images/menu-dark.gif'),
-		array('images/menu-dark-rtl.gif'),
-		array('images/no.png'),
-		array('images/required.gif'),
-		array('images/resize.gif'),
-		array('images/screen-options-right.gif'),
-		array('images/screen-options-right-up.gif'),
-		array('images/se.png'),
-		array('images/star.gif'),
-		array('images/toggle-arrow.gif'),
-		array('images/toggle-arrow-rtl.gif'),
-		array('images/white-grad.png'),
-		array('images/white-grad-active.png'),
-		array('images/wordpress-logo.png'),
-		array('images/wp-logo.png'),
-		array('images/xit.gif'),
-		array('images/yes.png'),
-		array('../wp-includes/images/crystal/archive.png'),
-		array('../wp-includes/images/crystal/audio.png'),
-		array('../wp-includes/images/crystal/code.png'),
-		array('../wp-includes/images/crystal/default.png'),
-		array('../wp-includes/images/crystal/document.png'),
-		array('../wp-includes/images/crystal/interactive.png'),
-		array('../wp-includes/images/crystal/text.png'),
-		array('../wp-includes/images/crystal/video.png'),
-		array('../wp-includes/images/crystal/spreadsheet.png'),
-		array('../wp-includes/images/rss.png'),
-		array('../wp-includes/images/blank.gif'),
-		array('../wp-includes/images/upload.png'),
-		array('../wp-includes/js/thickbox/loadingAnimation.gif'),
-		array('../wp-includes/js/thickbox/tb-close.png'),
-	);
-
-	if ( @is_file('../wp-includes/js/tinymce/tiny_mce.js') ) :
-	$mce = array(
-		array('../wp-includes/js/tinymce/wp-tinymce.php', $mce_ver),
-
-		array('../wp-includes/js/tinymce/tiny_mce.js', $mce_ver),
-		array('../wp-includes/js/tinymce/langs/wp-langs-en.js', $mce_ver),
-		array('../wp-includes/js/tinymce/utils/mctabs.js', $mce_ver),
-		array('../wp-includes/js/tinymce/utils/validate.js', $mce_ver),
-		array('../wp-includes/js/tinymce/utils/form_utils.js', $mce_ver),
-		array('../wp-includes/js/tinymce/utils/editable_selects.js', $mce_ver),
-		array('../wp-includes/js/tinymce/tiny_mce_popup.js', $mce_ver),
-
-		array('../wp-includes/js/tinymce/themes/advanced/editor_template.js', $mce_ver),
-		array('../wp-includes/js/tinymce/themes/advanced/source_editor.htm', $mce_ver),
-		array('../wp-includes/js/tinymce/themes/advanced/anchor.htm', $mce_ver),
-		array('../wp-includes/js/tinymce/themes/advanced/image.htm', $mce_ver),
-		array('../wp-includes/js/tinymce/themes/advanced/link.htm', $mce_ver),
-		array('../wp-includes/js/tinymce/themes/advanced/color_picker.htm', $mce_ver),
-		array('../wp-includes/js/tinymce/themes/advanced/charmap.htm', $mce_ver),
-		array('../wp-includes/js/tinymce/themes/advanced/js/color_picker.js', $mce_ver),
-		array('../wp-includes/js/tinymce/themes/advanced/js/charmap.js', $mce_ver),
-		array('../wp-includes/js/tinymce/themes/advanced/js/image.js', $mce_ver),
-		array('../wp-includes/js/tinymce/themes/advanced/js/link.js', $mce_ver),
-		array('../wp-includes/js/tinymce/themes/advanced/js/source_editor.js', $mce_ver),
-		array('../wp-includes/js/tinymce/themes/advanced/js/anchor.js', $mce_ver),
-		array('../wp-includes/js/tinymce/themes/advanced/skins/wp_theme/ui.css', $mce_ver),
-		array('../wp-includes/js/tinymce/themes/advanced/skins/wp_theme/content.css', $mce_ver),
-		array('../wp-includes/js/tinymce/themes/advanced/skins/wp_theme/dialog.css', $mce_ver),
-
-		array('../wp-includes/js/tinymce/plugins/fullscreen/editor_plugin.js', $mce_ver),
-		array('../wp-includes/js/tinymce/plugins/fullscreen/fullscreen.htm', $mce_ver),
-
-		array('../wp-includes/js/tinymce/plugins/inlinepopups/editor_plugin.js', $mce_ver),
-		array('../wp-includes/js/tinymce/plugins/inlinepopups/template.htm', $mce_ver),
-		array('../wp-includes/js/tinymce/plugins/inlinepopups/skins/clearlooks2/window.css', $mce_ver),
-
-		array('../wp-includes/js/tinymce/plugins/media/editor_plugin.js', $mce_ver),
-		array('../wp-includes/js/tinymce/plugins/media/js/media.js', $mce_ver),
-		array('../wp-includes/js/tinymce/plugins/media/media.htm', $mce_ver),
-		array('../wp-includes/js/tinymce/plugins/media/css/content.css', $mce_ver),
-		array('../wp-includes/js/tinymce/plugins/media/css/media.css', $mce_ver),
-
-		array('../wp-includes/js/tinymce/plugins/paste/editor_plugin.js', $mce_ver),
-		array('../wp-includes/js/tinymce/plugins/paste/js/pasteword.js', $mce_ver),
-		array('../wp-includes/js/tinymce/plugins/paste/js/pastetext.js', $mce_ver),
-		array('../wp-includes/js/tinymce/plugins/paste/pasteword.htm', $mce_ver),
-		array('../wp-includes/js/tinymce/plugins/paste/blank.htm', $mce_ver),
-		array('../wp-includes/js/tinymce/plugins/paste/pastetext.htm', $mce_ver),
-
-		array('../wp-includes/js/tinymce/plugins/safari/editor_plugin.js', $mce_ver),
-
-		array('../wp-includes/js/tinymce/plugins/spellchecker/editor_plugin.js', $mce_ver),
-		array('../wp-includes/js/tinymce/plugins/spellchecker/css/content.css', $mce_ver),
-
-		array('../wp-includes/js/tinymce/plugins/tabfocus/editor_plugin.js', $mce_ver),
-
-		array('../wp-includes/js/tinymce/plugins/wordpress/editor_plugin.js', $mce_ver),
-		array('../wp-includes/js/tinymce/plugins/wordpress/css/content.css', $mce_ver),
-
-		array('../wp-includes/js/tinymce/plugins/wpeditimage/editor_plugin.js', $mce_ver),
-		array('../wp-includes/js/tinymce/plugins/wpeditimage/editimage.html', $mce_ver),
-		array('../wp-includes/js/tinymce/plugins/wpeditimage/js/editimage.js', $mce_ver),
-		array('../wp-includes/js/tinymce/plugins/wpeditimage/css/editimage.css', $mce_ver),
-		array('../wp-includes/js/tinymce/plugins/wpeditimage/css/editimage-rtl.css', $mce_ver),
-
-		array('../wp-includes/js/tinymce/plugins/wpgallery/editor_plugin.js', $mce_ver),
-
-		array('../wp-includes/js/tinymce/themes/advanced/img/icons.gif'),
-		array('../wp-includes/js/tinymce/themes/advanced/img/colorpicker.jpg'),
-		array('../wp-includes/js/tinymce/themes/advanced/img/fm.gif'),
-		array('../wp-includes/js/tinymce/themes/advanced/img/gotmoxie.png'),
-		array('../wp-includes/js/tinymce/themes/advanced/img/sflogo.png'),
-		array('../wp-includes/js/tinymce/themes/advanced/skins/wp_theme/img/fade-butt.png'),
-		array('../wp-includes/js/tinymce/themes/advanced/skins/wp_theme/img/tabs.gif'),
-		array('../wp-includes/images/down_arrow.gif'),
-		array('../wp-includes/js/tinymce/themes/advanced/skins/default/img/progress.gif'),
-		array('../wp-includes/js/tinymce/themes/advanced/skins/default/img/menu_check.gif'),
-		array('../wp-includes/js/tinymce/themes/advanced/skins/default/img/menu_arrow.gif'),
-		array('../wp-includes/js/tinymce/plugins/inlinepopups/skins/clearlooks2/img/drag.gif'),
-		array('../wp-includes/js/tinymce/plugins/inlinepopups/skins/clearlooks2/img/corners.gif'),
-		array('../wp-includes/js/tinymce/plugins/inlinepopups/skins/clearlooks2/img/buttons.gif'),
-		array('../wp-includes/js/tinymce/plugins/inlinepopups/skins/clearlooks2/img/horizontal.gif'),
-		array('../wp-includes/js/tinymce/plugins/inlinepopups/skins/clearlooks2/img/alert.gif'),
-		array('../wp-includes/js/tinymce/plugins/inlinepopups/skins/clearlooks2/img/button.gif'),
-		array('../wp-includes/js/tinymce/plugins/inlinepopups/skins/clearlooks2/img/confirm.gif'),
-		array('../wp-includes/js/tinymce/plugins/inlinepopups/skins/clearlooks2/img/vertical.gif'),
-		array('../wp-includes/js/tinymce/plugins/media/img/flash.gif'),
-		array('../wp-includes/js/tinymce/plugins/media/img/quicktime.gif'),
-		array('../wp-includes/js/tinymce/plugins/media/img/realmedia.gif'),
-		array('../wp-includes/js/tinymce/plugins/media/img/shockwave.gif'),
-		array('../wp-includes/js/tinymce/plugins/media/img/windowsmedia.gif'),
-		array('../wp-includes/js/tinymce/plugins/media/img/trans.gif'),
-		array('../wp-includes/js/tinymce/plugins/spellchecker/img/wline.gif'),
-		array('../wp-includes/js/tinymce/plugins/wordpress/img/more.gif'),
-		array('../wp-includes/js/tinymce/plugins/wordpress/img/more_bug.gif'),
-		array('../wp-includes/js/tinymce/plugins/wordpress/img/page.gif'),
-		array('../wp-includes/js/tinymce/plugins/wordpress/img/page_bug.gif'),
-		array('../wp-includes/js/tinymce/plugins/wordpress/img/toolbars.gif'),
-		array('../wp-includes/js/tinymce/plugins/wordpress/img/help.gif'),
-		array('../wp-includes/js/tinymce/plugins/wordpress/img/image.gif'),
-		array('../wp-includes/js/tinymce/plugins/wordpress/img/media.gif'),
-		array('../wp-includes/js/tinymce/plugins/wordpress/img/video.gif'),
-		array('../wp-includes/js/tinymce/plugins/wordpress/img/audio.gif'),
-		array('../wp-includes/js/tinymce/plugins/wpeditimage/img/image.png'),
-		array('../wp-includes/js/tinymce/plugins/wpeditimage/img/delete.png'),
-		array('../wp-includes/js/tinymce/plugins/wpgallery/img/delete.png'),
-		array('../wp-includes/js/tinymce/plugins/wpgallery/img/edit.png'),
-		array('../wp-includes/js/tinymce/plugins/wpgallery/img/gallery.png')
-	);
-	$files = array_merge($files, $mce);
-	endif;
-
-	return $files;
-}
--- a/web/wp-admin/includes/media.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-admin/includes/media.php	Wed Dec 19 17:46:52 2012 -0800
@@ -7,11 +7,11 @@
  */
 
 /**
- * {@internal Missing Short Description}}
+ * Defines the default media upload tabs
  *
  * @since 2.5.0
  *
- * @return unknown
+ * @return array default tabs
  */
 function media_upload_tabs() {
 	$_default_tabs = array(
@@ -25,12 +25,12 @@
 }
 
 /**
- * {@internal Missing Short Description}}
+ * Adds the gallery tab back to the tabs array if post has image attachments
  *
  * @since 2.5.0
  *
- * @param unknown_type $tabs
- * @return unknown
+ * @param array $tabs
+ * @return array $tabs with gallery if post has image attachment
  */
 function update_gallery_tab($tabs) {
 	global $wpdb;
@@ -94,18 +94,19 @@
  *
  * @since 2.5.0
  *
- * @param unknown_type $id
- * @param unknown_type $alt
- * @param unknown_type $title
- * @param unknown_type $align
- * @param unknown_type $url
- * @param unknown_type $rel
- * @param unknown_type $size
- * @return unknown
+ * @param integer $id image attachment id
+ * @param string $caption image caption
+ * @param string $alt image alt attribute
+ * @param string $title image title attribute
+ * @param string $align image css alignment property
+ * @param string $url image src url
+ * @param string|bool $rel image rel attribute
+ * @param string $size image size (thumbnail, medium, large, full or added  with add_image_size() )
+ * @return string the html to insert into editor
  */
 function get_image_send_to_editor($id, $caption, $title, $align, $url='', $rel = false, $size='medium', $alt = '') {
 
-	$html = get_image_tag($id, $alt, $title, $align, $size);
+	$html = get_image_tag($id, $alt, '', $align, $size);
 
 	$rel = $rel ? ' rel="attachment wp-att-' . esc_attr($id).'"' : '';
 
@@ -118,18 +119,19 @@
 }
 
 /**
- * {@internal Missing Short Description}}
+ * Adds image shortcode with caption to editor
  *
  * @since 2.6.0
  *
- * @param unknown_type $html
- * @param unknown_type $id
- * @param unknown_type $alt
- * @param unknown_type $title
- * @param unknown_type $align
- * @param unknown_type $url
- * @param unknown_type $size
- * @return unknown
+ * @param string $html
+ * @param integer $id
+ * @param string $caption image caption
+ * @param string $alt image alt attribute
+ * @param string $title image title attribute
+ * @param string $align image css alignment property
+ * @param string $url image src url
+ * @param string $size image size (thumbnail, medium, large, full or added with add_image_size() )
+ * @return string
  */
 function image_add_caption( $html, $id, $caption, $title, $align, $url, $size, $alt = '' ) {
 
@@ -170,11 +172,11 @@
 }
 
 /**
- * {@internal Missing Short Description}}
+ * Adds image html to editor
  *
  * @since 2.5.0
  *
- * @param unknown_type $html
+ * @param string $html
  */
 function media_send_to_editor($html) {
 ?>
@@ -189,8 +191,6 @@
 }
 
 /**
- * {@internal Missing Short Description}}
- *
  * This handles the file upload POST itself, creating the attachment post.
  *
  * @since 2.5.0
@@ -269,7 +269,13 @@
 function media_handle_sideload($file_array, $post_id, $desc = null, $post_data = array()) {
 	$overrides = array('test_form'=>false);
 
-	$file = wp_handle_sideload($file_array, $overrides);
+	$time = current_time( 'mysql' );
+	if ( $post = get_post( $post_id ) ) {
+		if ( substr( $post->post_date, 0, 4 ) > 0 )
+			$time = $post->post_date;
+	}
+
+	$file = wp_handle_sideload( $file_array, $overrides, $time );
 	if ( isset($file['error']) )
 		return new WP_Error( 'upload_error', $file['error'] );
 
@@ -312,14 +318,11 @@
 }
 
 /**
- * {@internal Missing Short Description}}
- *
- * Wrap iframe content (produced by $content_func) in a doctype, html head/body
- * etc any additional function args will be passed to content_func.
+ * Adds the iframe to display content for the media upload page
  *
  * @since 2.5.0
  *
- * @param unknown_type $content_func
+ * @param array $content_func
  */
 function wp_iframe($content_func /* ... */) {
 	_wp_admin_html_begin();
@@ -355,7 +358,7 @@
 	do_action( "admin_head_{$content_func}" );
 ?>
 </head>
-<body<?php if ( isset($GLOBALS['body_id']) ) echo ' id="' . $GLOBALS['body_id'] . '"'; ?> class="no-js">
+<body<?php if ( isset($GLOBALS['body_id']) ) echo ' id="' . $GLOBALS['body_id'] . '"'; ?> class="wp-core-ui no-js">
 <script type="text/javascript">
 document.body.className = document.body.className.replace('no-js', 'js');
 </script>
@@ -373,23 +376,37 @@
 }
 
 /**
- * {@internal Missing Short Description}}
+ * Adds the media button to the editor
  *
  * @since 2.5.0
+ *
+ * @param string $editor_id
  */
 function media_buttons($editor_id = 'content') {
-	$context = apply_filters('media_buttons_context', __('Upload/Insert %s'));
+	$post = get_post();
+	if ( ! $post && ! empty( $GLOBALS['post_ID'] ) )
+		$post = $GLOBALS['post_ID'];
+
+	wp_enqueue_media( array(
+		'post' => $post
+	) );
+
+	$img = '<span class="wp-media-buttons-icon"></span> ';
 
-	$img = '<img src="' . esc_url( admin_url( 'images/media-button.png?ver=20111005' ) ) . '" width="15" height="15" />';
+	echo '<a href="#" class="button insert-media add_media" data-editor="' . esc_attr( $editor_id ) . '" title="' . esc_attr__( 'Add Media' ) . '">' . $img . __( 'Add Media' ) . '</a>';
+
+	// Don't use this filter. Want to add a button? Use the media_buttons action.
+	$legacy_filter = apply_filters('media_buttons_context', ''); // deprecated
 
-	echo '<a href="' . esc_url( get_upload_iframe_src() ) . '" class="thickbox add_media" id="' . esc_attr( $editor_id ) . '-add_media" title="' . esc_attr__( 'Add Media' ) . '" onclick="return false;">' . sprintf( $context, $img ) . '</a>';
+	if ( $legacy_filter ) {
+		// #WP22559. Close <a> if a plugin started by closing <a> to open their own <a> tag.
+		if ( 0 === stripos( trim( $legacy_filter ), '</a>' ) )
+			$legacy_filter .= '</a>';
+		echo $legacy_filter;
+	}
 }
 add_action( 'media_buttons', 'media_buttons' );
 
-function _media_button($title, $icon, $type, $id) {
-	return "<a href='" . esc_url( get_upload_iframe_src($type) ) . "' id='{$id}-add_{$type}' class='thickbox add_$type' title='" . esc_attr( $title ) . "'><img src='" . esc_url( admin_url( $icon ) ) . "' alt='$title' onclick='return false;' /></a>";
-}
-
 function get_upload_iframe_src( $type = null, $post_id = null, $tab = null ) {
 	global $post_ID;
 
@@ -414,7 +431,7 @@
  *
  * @since 2.5.0
  *
- * @return unknown
+ * @return mixed void|object WP_Error on failure
  */
 function media_upload_form_handler() {
 	check_admin_referer('media-form');
@@ -506,7 +523,7 @@
  *
  * @since 2.5.0
  *
- * @return unknown
+ * @return mixed
  */
 function wp_media_upload_handler() {
 	$errors = array();
@@ -599,7 +616,7 @@
 
 		// Set variables for storage
 		// fix file filename for query strings
-		preg_match('/[^\?]+\.(jpg|JPG|jpe|JPE|jpeg|JPEG|gif|GIF|png|PNG)/', $file, $matches);
+		preg_match( '/[^\?]+\.(jpe?g|jpe|gif|png)\b/i', $file, $matches );
 		$file_array['name'] = basename($matches[0]);
 		$file_array['tmp_name'] = $tmp;
 
@@ -677,9 +694,9 @@
  *
  * @since 2.7.0
  *
- * @param unknown_type $post
- * @param unknown_type $checked
- * @return unknown
+ * @param object $post
+ * @param string $checked
+ * @return string
  */
 function image_align_input_fields( $post, $checked = '' ) {
 
@@ -705,9 +722,9 @@
  *
  * @since 2.7.0
  *
- * @param unknown_type $post
- * @param unknown_type $check
- * @return unknown
+ * @param object $post
+ * @param bool|string $check
+ * @return array
  */
 function image_size_input_fields( $post, $check = '' ) {
 
@@ -760,9 +777,9 @@
  *
  * @since 2.7.0
  *
- * @param unknown_type $post
- * @param unknown_type $url_type
- * @return unknown
+ * @param object $post
+ * @param string $url_type
+ * @return string
  */
 function image_link_input_fields($post, $url_type = '') {
 
@@ -798,48 +815,22 @@
  *
  * @since 2.5.0
  *
- * @param unknown_type $form_fields
- * @param unknown_type $post
- * @return unknown
+ * @param array $form_fields
+ * @param object $post
+ * @return array
  */
 function image_attachment_fields_to_edit($form_fields, $post) {
-	if ( substr($post->post_mime_type, 0, 5) == 'image' ) {
-		$alt = get_post_meta($post->ID, '_wp_attachment_image_alt', true);
-		if ( empty($alt) )
-			$alt = '';
-
-		$form_fields['post_title']['required'] = true;
-
-		$form_fields['image_alt'] = array(
-			'value' => $alt,
-			'label' => __('Alternate Text'),
-			'helps' => __('Alt text for the image, e.g. &#8220;The Mona Lisa&#8221;')
-		);
-
-		$form_fields['align'] = array(
-			'label' => __('Alignment'),
-			'input' => 'html',
-			'html'  => image_align_input_fields($post, get_option('image_default_align')),
-		);
-
-		$form_fields['image-size'] = image_size_input_fields( $post, get_option('image_default_size', 'medium') );
-
-	} else {
-		unset( $form_fields['image_alt'] );
-	}
 	return $form_fields;
 }
 
-add_filter('attachment_fields_to_edit', 'image_attachment_fields_to_edit', 10, 2);
-
 /**
  * {@internal Missing Short Description}}
  *
  * @since 2.5.0
  *
- * @param unknown_type $form_fields
- * @param unknown_type $post
- * @return unknown
+ * @param array $form_fields
+ * @param object $post {@internal $post not used}}
+ * @return array
  */
 function media_single_attachment_fields_to_edit( $form_fields, $post ) {
 	unset($form_fields['url'], $form_fields['align'], $form_fields['image-size']);
@@ -851,9 +842,9 @@
  *
  * @since 2.8.0
  *
- * @param unknown_type $form_fields
- * @param unknown_type $post
- * @return unknown
+ * @param array $form_fields
+ * @param object $post {@internal $post not used}}
+ * @return array
  */
 function media_post_single_attachment_fields_to_edit( $form_fields, $post ) {
 	unset($form_fields['image_url']);
@@ -861,13 +852,17 @@
 }
 
 /**
- * {@internal Missing Short Description}}
+ * Filters input from media_upload_form_handler() and assigns a default
+ * post_title from the file name if none supplied.
+ *
+ * Illustrates the use of the attachment_fields_to_save filter
+ * which can be used to add default values to any field before saving to DB.
  *
  * @since 2.5.0
  *
- * @param unknown_type $post
- * @param unknown_type $attachment
- * @return unknown
+ * @param object $post
+ * @param array $attachment {@internal $attachment not used}}
+ * @return array
  */
 function image_attachment_fields_to_save($post, $attachment) {
 	if ( substr($post['post_mime_type'], 0, 5) == 'image' ) {
@@ -887,13 +882,13 @@
  *
  * @since 2.5.0
  *
- * @param unknown_type $html
- * @param unknown_type $attachment_id
- * @param unknown_type $attachment
- * @return unknown
+ * @param string $html
+ * @param integer $attachment_id
+ * @param array $attachment
+ * @return array
  */
 function image_media_send_to_editor($html, $attachment_id, $attachment) {
-	$post =& get_post($attachment_id);
+	$post = get_post($attachment_id);
 	if ( substr($post->post_mime_type, 0, 5) == 'image' ) {
 		$url = $attachment['url'];
 		$align = !empty($attachment['align']) ? $attachment['align'] : 'none';
@@ -914,15 +909,15 @@
  *
  * @since 2.5.0
  *
- * @param unknown_type $post
- * @param unknown_type $errors
- * @return unknown
+ * @param object $post
+ * @param array $errors
+ * @return array
  */
 function get_attachment_fields_to_edit($post, $errors = null) {
 	if ( is_int($post) )
-		$post =& get_post($post);
+		$post = get_post($post);
 	if ( is_array($post) )
-		$post = (object) $post;
+		$post = new WP_Post( (object) $post );
 
 	$image_url = wp_get_attachment_url($post->ID);
 
@@ -965,7 +960,7 @@
 
 	foreach ( get_attachment_taxonomies($post) as $taxonomy ) {
 		$t = (array) get_taxonomy($taxonomy);
-		if ( ! $t['public'] )
+		if ( ! $t['public'] || ! $t['show_ui'] )
 			continue;
 		if ( empty($t['label']) )
 			$t['label'] = $taxonomy;
@@ -973,13 +968,13 @@
 			$t['args'] = array();
 
 		$terms = get_object_term_cache($post->ID, $taxonomy);
-		if ( empty($terms) )
+		if ( false === $terms )
 			$terms = wp_get_object_terms($post->ID, $taxonomy, $t['args']);
 
 		$values = array();
 
 		foreach ( $terms as $term )
-			$values[] = $term->name;
+			$values[] = $term->slug;
 		$t['value'] = join(', ', $values);
 
 		$form_fields[$taxonomy] = $t;
@@ -989,6 +984,32 @@
 	// The recursive merge is easily traversed with array casting: foreach( (array) $things as $thing )
 	$form_fields = array_merge_recursive($form_fields, (array) $errors);
 
+	// This was formerly in image_attachment_fields_to_edit().
+	if ( substr($post->post_mime_type, 0, 5) == 'image' ) {
+		$alt = get_post_meta($post->ID, '_wp_attachment_image_alt', true);
+		if ( empty($alt) )
+			$alt = '';
+
+		$form_fields['post_title']['required'] = true;
+
+		$form_fields['image_alt'] = array(
+			'value' => $alt,
+			'label' => __('Alternative Text'),
+			'helps' => __('Alt text for the image, e.g. &#8220;The Mona Lisa&#8221;')
+		);
+
+		$form_fields['align'] = array(
+			'label' => __('Alignment'),
+			'input' => 'html',
+			'html'  => image_align_input_fields($post, get_option('image_default_align')),
+		);
+
+		$form_fields['image-size'] = image_size_input_fields( $post, get_option('image_default_size', 'medium') );
+
+	} else {
+		unset( $form_fields['image_alt'] );
+	}
+
 	$form_fields = apply_filters('attachment_fields_to_edit', $form_fields, $post);
 
 	return $form_fields;
@@ -1060,7 +1081,7 @@
 	$toggle_on  = __( 'Show' );
 	$toggle_off = __( 'Hide' );
 
-	$filename = esc_html( basename( $post->guid ) );
+	$filename = esc_html( wp_basename( $post->guid ) );
 	$title = esc_attr( $post->post_title );
 
 	if ( $_tags = get_the_tags( $attachment_id ) ) {
@@ -1111,9 +1132,9 @@
 	$media_dims = apply_filters( 'media_meta', $media_dims, $post );
 
 	$image_edit_button = '';
-	if ( gd_edit_image_support( $post->post_mime_type ) ) {
+	if ( wp_attachment_is_image( $post->ID ) && wp_image_editor_supports( array( 'mime_type' => $post->post_mime_type ) ) ) {
 		$nonce = wp_create_nonce( "image_editor-$post->ID" );
-		$image_edit_button = "<input type='button' id='imgedit-open-btn-$post->ID' onclick='imageEdit.open( $post->ID, \"$nonce\" )' class='button' value='" . esc_attr__( 'Edit Image' ) . "' /> <img src='" . esc_url( admin_url( 'images/wpspin_light.gif' ) ) . "' class='imgedit-wait-spin' alt='' />";
+		$image_edit_button = "<input type='button' id='imgedit-open-btn-$post->ID' onclick='imageEdit.open( $post->ID, \"$nonce\" )' class='button' value='" . esc_attr__( 'Edit Image' ) . "' /> <span class='spinner'></span>";
 	}
 
 	$attachment_url = get_permalink( $attachment_id );
@@ -1156,16 +1177,16 @@
 		$send = get_submit_button( __( 'Insert into Post' ), 'button', "send[$attachment_id]", false );
 	if ( $delete && current_user_can( 'delete_post', $attachment_id ) ) {
 		if ( !EMPTY_TRASH_DAYS ) {
-			$delete = "<a href='" . wp_nonce_url( "post.php?action=delete&amp;post=$attachment_id", 'delete-attachment_' . $attachment_id ) . "' id='del[$attachment_id]' class='delete'>" . __( 'Delete Permanently' ) . '</a>';
+			$delete = "<a href='" . wp_nonce_url( "post.php?action=delete&amp;post=$attachment_id", 'delete-post_' . $attachment_id ) . "' id='del[$attachment_id]' class='delete-permanently'>" . __( 'Delete Permanently' ) . '</a>';
 		} elseif ( !MEDIA_TRASH ) {
 			$delete = "<a href='#' class='del-link' onclick=\"document.getElementById('del_attachment_$attachment_id').style.display='block';return false;\">" . __( 'Delete' ) . "</a>
 			 <div id='del_attachment_$attachment_id' class='del-attachment' style='display:none;'><p>" . sprintf( __( 'You are about to delete <strong>%s</strong>.' ), $filename ) . "</p>
-			 <a href='" . wp_nonce_url( "post.php?action=delete&amp;post=$attachment_id", 'delete-attachment_' . $attachment_id ) . "' id='del[$attachment_id]' class='button'>" . __( 'Continue' ) . "</a>
+			 <a href='" . wp_nonce_url( "post.php?action=delete&amp;post=$attachment_id", 'delete-post_' . $attachment_id ) . "' id='del[$attachment_id]' class='button'>" . __( 'Continue' ) . "</a>
 			 <a href='#' class='button' onclick=\"this.parentNode.style.display='none';return false;\">" . __( 'Cancel' ) . "</a>
 			 </div>";
 		} else {
-			$delete = "<a href='" . wp_nonce_url( "post.php?action=trash&amp;post=$attachment_id", 'trash-attachment_' . $attachment_id ) . "' id='del[$attachment_id]' class='delete'>" . __( 'Move to Trash' ) . "</a>
-			<a href='" . wp_nonce_url( "post.php?action=untrash&amp;post=$attachment_id", 'untrash-attachment_' . $attachment_id ) . "' id='undo[$attachment_id]' class='undo hidden'>" . __( 'Undo' ) . "</a>";
+			$delete = "<a href='" . wp_nonce_url( "post.php?action=trash&amp;post=$attachment_id", 'trash-post_' . $attachment_id ) . "' id='del[$attachment_id]' class='delete'>" . __( 'Move to Trash' ) . "</a>
+			<a href='" . wp_nonce_url( "post.php?action=untrash&amp;post=$attachment_id", 'untrash-post_' . $attachment_id ) . "' id='undo[$attachment_id]' class='undo hidden'>" . __( 'Undo' ) . "</a>";
 		}
 	} else {
 		$delete = '';
@@ -1260,18 +1281,161 @@
 	return $item;
 }
 
+function get_compat_media_markup( $attachment_id, $args = null ) {
+	$post = get_post( $attachment_id );
+
+	$default_args = array(
+		'errors' => null,
+		'in_modal' => false,
+	);
+
+	$user_can_edit = current_user_can( 'edit_post', $attachment_id );
+
+	$args = wp_parse_args( $args, $default_args );
+	$args = apply_filters( 'get_media_item_args', $args );
+
+	$form_fields = array();
+
+	if ( $args['in_modal'] ) {
+		foreach ( get_attachment_taxonomies($post) as $taxonomy ) {
+			$t = (array) get_taxonomy($taxonomy);
+			if ( ! $t['public'] || ! $t['show_ui'] )
+				continue;
+			if ( empty($t['label']) )
+				$t['label'] = $taxonomy;
+			if ( empty($t['args']) )
+				$t['args'] = array();
+
+			$terms = get_object_term_cache($post->ID, $taxonomy);
+			if ( false === $terms )
+				$terms = wp_get_object_terms($post->ID, $taxonomy, $t['args']);
+
+			$values = array();
+
+			foreach ( $terms as $term )
+				$values[] = $term->slug;
+			$t['value'] = join(', ', $values);
+			$t['taxonomy'] = true;
+
+			$form_fields[$taxonomy] = $t;
+		}
+	}
+
+	// Merge default fields with their errors, so any key passed with the error (e.g. 'error', 'helps', 'value') will replace the default
+	// The recursive merge is easily traversed with array casting: foreach( (array) $things as $thing )
+	$form_fields = array_merge_recursive($form_fields, (array) $args['errors'] );
+
+	$form_fields = apply_filters( 'attachment_fields_to_edit', $form_fields, $post );
+
+	unset( $form_fields['image-size'], $form_fields['align'], $form_fields['image_alt'],
+		$form_fields['post_title'], $form_fields['post_excerpt'], $form_fields['post_content'],
+		$form_fields['url'], $form_fields['menu_order'], $form_fields['image_url'] );
+
+	$media_meta = apply_filters( 'media_meta', '', $post );
+
+	$defaults = array(
+		'input'         => 'text',
+ 		'required'      => false,
+ 		'value'         => '',
+ 		'extra_rows'    => array(),
+ 		'show_in_edit'  => true,
+ 		'show_in_modal' => true,
+	);
+
+	$hidden_fields = array();
+
+	$item = '';
+	foreach ( $form_fields as $id => $field ) {
+		if ( $id[0] == '_' )
+			continue;
+
+		$name = "attachments[$attachment_id][$id]";
+		$id_attr = "attachments-$attachment_id-$id";
+
+		if ( !empty( $field['tr'] ) ) {
+			$item .= $field['tr'];
+			continue;
+		}
+
+		$field = array_merge( $defaults, $field );
+
+		if ( ( ! $field['show_in_edit'] && ! $args['in_modal'] ) || ( ! $field['show_in_modal'] && $args['in_modal'] ) )
+			continue;
+
+		if ( $field['input'] == 'hidden' ) {
+			$hidden_fields[$name] = $field['value'];
+			continue;
+		}
+
+		$readonly      = ! $user_can_edit && ! empty( $field['taxonomy'] ) ? " readonly='readonly' " : '';
+		$required      = $field['required'] ? '<span class="alignright"><abbr title="required" class="required">*</abbr></span>' : '';
+		$aria_required = $field['required'] ? " aria-required='true' " : '';
+		$class  = 'compat-field-' . $id;
+		$class .= $field['required'] ? ' form-required' : '';
+
+		$item .= "\t\t<tr class='$class'>";
+		$item .= "\t\t\t<th valign='top' scope='row' class='label'><label for='$id_attr'><span class='alignleft'>{$field['label']}</span>$required<br class='clear' /></label>";
+		$item .= "</th>\n\t\t\t<td class='field'>";
+
+		if ( !empty( $field[ $field['input'] ] ) )
+			$item .= $field[ $field['input'] ];
+		elseif ( $field['input'] == 'textarea' ) {
+			if ( 'post_content' == $id && user_can_richedit() ) {
+				// sanitize_post() skips the post_content when user_can_richedit
+				$field['value'] = htmlspecialchars( $field['value'], ENT_QUOTES );
+			}
+			$item .= "<textarea id='$id_attr' name='$name' $aria_required>" . $field['value'] . '</textarea>';
+		} else {
+			$item .= "<input type='text' class='text' id='$id_attr' name='$name' value='" . esc_attr( $field['value'] ) . "' $readonly $aria_required />";
+		}
+		if ( !empty( $field['helps'] ) )
+			$item .= "<p class='help'>" . join( "</p>\n<p class='help'>", array_unique( (array) $field['helps'] ) ) . '</p>';
+		$item .= "</td>\n\t\t</tr>\n";
+
+		$extra_rows = array();
+
+		if ( !empty( $field['errors'] ) )
+			foreach ( array_unique( (array) $field['errors'] ) as $error )
+				$extra_rows['error'][] = $error;
+
+		if ( !empty( $field['extra_rows'] ) )
+			foreach ( $field['extra_rows'] as $class => $rows )
+				foreach ( (array) $rows as $html )
+					$extra_rows[$class][] = $html;
+
+		foreach ( $extra_rows as $class => $rows )
+			foreach ( $rows as $html )
+				$item .= "\t\t<tr><td></td><td class='$class'>$html</td></tr>\n";
+	}
+
+	if ( !empty( $form_fields['_final'] ) )
+		$item .= "\t\t<tr class='final'><td colspan='2'>{$form_fields['_final']}</td></tr>\n";
+	if ( $item )
+		$item = '<table class="compat-attachment-fields">' . $item . '</table>';
+
+	foreach ( $hidden_fields as $hidden_field => $value ) {
+		$item .= '<input type="hidden" name="' . esc_attr( $hidden_field ) . '" value="' . esc_attr( $value ) . '" />' . "\n";
+	}
+
+	return array(
+		'item'   => $item,
+		'meta'   => $media_meta,
+	);
+}
+
 /**
  * {@internal Missing Short Description}}
  *
  * @since 2.5.0
  */
 function media_upload_header() {
-	?>
-	<script type="text/javascript">post_id = <?php echo intval($_REQUEST['post_id']); ?>;</script>
-	<div id="media-upload-header">
-	<?php the_media_upload_tabs(); ?>
-	</div>
-	<?php
+	$post_id = isset( $_REQUEST['post_id'] ) ? intval( $_REQUEST['post_id'] ) : 0;
+	echo '<script type="text/javascript">post_id = ' . $post_id . ";</script>\n";
+	if ( empty( $_GET['chromeless'] ) ) {
+		echo '<div id="media-upload-header">';
+		the_media_upload_tabs();
+		echo '</div>';
+	}
 }
 
 /**
@@ -1322,9 +1486,8 @@
 
 ?></div>
 <?php
-// Check quota for this blog if multisite
 if ( is_multisite() && !is_upload_space_available() ) {
-	echo '<p>' . sprintf( __( 'Sorry, you have filled your storage quota (%s MB).' ), get_space_allowed() ) . '</p>';
+	do_action( 'upload_ui_over_quota' );
 	return;
 }
 
@@ -1357,6 +1520,11 @@
 	'multipart_params' => $post_params
 );
 
+// Multi-file uploading doesn't currently work in iOS Safari,
+// single-file allows the built-in camera to be used as source for images
+if ( wp_is_mobile() )
+	$plupload_init['multi_selection'] = false;
+
 $plupload_init = apply_filters( 'plupload_init', $plupload_init );
 
 ?>
@@ -1413,9 +1581,9 @@
  *
  * @since 2.5.0
  *
- * @param unknown_type $type
- * @param unknown_type $errors
- * @param unknown_type $id
+ * @param string $type
+ * @param object $errors
+ * @param integer $id
  */
 function media_upload_type_form($type = 'file', $errors = null, $id = null) {
 
@@ -1476,9 +1644,9 @@
  *
  * @since 2.7.0
  *
- * @param unknown_type $type
- * @param unknown_type $errors
- * @param unknown_type $id
+ * @param string $type
+ * @param object $errors
+ * @param integer $id
  */
 function media_upload_type_url_form($type = null, $errors = null, $id = null) {
 	if ( null === $type )
@@ -1486,7 +1654,7 @@
 
 	media_upload_header();
 
-	$post_id = intval($_REQUEST['post_id']);
+	$post_id = isset( $_REQUEST['post_id'] ) ? intval( $_REQUEST['post_id'] ) : 0;
 
 	$form_action_url = admin_url("media-upload.php?type=$type&tab=type&post_id=$post_id");
 	$form_action_url = apply_filters('media_upload_form_url', $form_action_url, $type);
@@ -1516,11 +1684,6 @@
 		if ( '' == f.src.value || '' == t.width )
 			return false;
 
-		if ( f.title.value ) {
-			title = f.title.value.replace(/'/g, '&#039;').replace(/"/g, '&quot;').replace(/</g, '&lt;').replace(/>/g, '&gt;');
-			title = ' title="'+title+'"';
-		}
-
 		if ( f.alt.value )
 			alt = f.alt.value.replace(/'/g, '&#039;').replace(/"/g, '&quot;').replace(/</g, '&lt;').replace(/>/g, '&gt;');
 
@@ -1537,7 +1700,7 @@
 
 		cls = caption ? '' : ' class="'+t.align+'"';
 
-		html = '<img alt="'+alt+'" src="'+f.src.value+'"'+title+cls+' width="'+t.width+'" height="'+t.height+'" />';
+		html = '<img alt="'+alt+'" src="'+f.src.value+'"'+cls+' width="'+t.width+'" height="'+t.height+'" />';
 
 		if ( f.url.value ) {
 			url = f.url.value.replace(/'/g, '&#039;').replace(/"/g, '&quot;').replace(/</g, '&lt;').replace(/>/g, '&gt;');
@@ -1582,7 +1745,7 @@
 			return false;
 		}
 
-		document.getElementById('status_img').innerHTML = '<img src="<?php echo esc_url( admin_url( 'images/wpspin_light.gif' ) ); ?>" alt="" />';
+		document.getElementById('status_img').innerHTML = '<img src="<?php echo esc_url( admin_url( 'images/wpspin_light.gif' ) ); ?>" alt="" width="16" />';
 		t.preloadImg = new Image();
 		t.preloadImg.onload = t.updateImageData;
 		t.preloadImg.onerror = t.resetImageData;
@@ -1609,11 +1772,11 @@
 }
 
 /**
- * {@internal Missing Short Description}}
+ * Adds gallery form to upload iframe
  *
  * @since 2.5.0
  *
- * @param unknown_type $errors
+ * @param array $errors
  */
 function media_upload_gallery_form($errors) {
 	global $redir_tab, $type;
@@ -1759,14 +1922,14 @@
  *
  * @since 2.5.0
  *
- * @param unknown_type $errors
+ * @param array $errors
  */
 function media_upload_library_form($errors) {
 	global $wpdb, $wp_query, $wp_locale, $type, $tab, $post_mime_types;
 
 	media_upload_header();
 
-	$post_id = intval($_REQUEST['post_id']);
+	$post_id = isset( $_REQUEST['post_id'] ) ? intval( $_REQUEST['post_id'] ) : 0;
 
 	$form_action_url = admin_url("media-upload.php?type=$type&tab=library&post_id=$post_id");
 	$form_action_url = apply_filters('media_upload_form_url', $form_action_url, $type);
@@ -1884,7 +2047,7 @@
 </select>
 <?php } ?>
 
-<?php submit_button( __( 'Filter &#187;' ), 'secondary', 'post-query-submit', false ); ?>
+<?php submit_button( __( 'Filter &#187;' ), 'button', 'post-query-submit', false ); ?>
 
 </div>
 
@@ -1922,18 +2085,19 @@
 }
 
 /**
- * {@internal Missing Short Description}}
+ * Creates the form for external url
  *
  * @since 2.7.0
  *
- * @return unknown
+ * @param string $default_view
+ * @return string the form html
  */
 function wp_media_insert_url_form( $default_view = 'image' ) {
 	if ( !apply_filters( 'disable_captions', '' ) ) {
 		$caption = '
 		<tr class="image-only">
 			<th valign="top" scope="row" class="label">
-				<span class="alignleft"><label for="caption">' . __('Image Caption') . '</label></span>
+				<label for="caption"><span class="alignleft">' . __('Image Caption') . '</span></label>
 			</th>
 			<td class="field"><textarea id="caption" name="caption"></textarea></td>
 		</tr>
@@ -1958,7 +2122,7 @@
 	<table class="describe ' . $table_class . '"><tbody>
 		<tr>
 			<th valign="top" scope="row" class="label" style="width:130px;">
-				<span class="alignleft"><label for="src">' . __('URL') . '</label></span>
+				<label for="src"><span class="alignleft">' . __('URL') . '</span></label>
 				<span class="alignright"><abbr id="status_img" title="required" class="required">*</abbr></span>
 			</th>
 			<td class="field"><input id="src" name="src" value="" type="text" aria-required="true" onblur="addExtImage.getImageData()" /></td>
@@ -1966,7 +2130,7 @@
 
 		<tr>
 			<th valign="top" scope="row" class="label">
-				<span class="alignleft"><label for="title">' . __('Title') . '</label></span>
+				<label for="title"><span class="alignleft">' . __('Title') . '</span></label>
 				<span class="alignright"><abbr title="required" class="required">*</abbr></span>
 			</th>
 			<td class="field"><input id="title" name="title" value="" type="text" aria-required="true" /></td>
@@ -1976,7 +2140,7 @@
 
 		<tr class="image-only">
 			<th valign="top" scope="row" class="label">
-				<span class="alignleft"><label for="alt">' . __('Alternate Text') . '</label></span>
+				<label for="alt"><span class="alignleft">' . __('Alternative Text') . '</span></label>
 			</th>
 			<td class="field"><input id="alt" name="alt" value="" type="text" aria-required="true" />
 			<p class="help">' . __('Alt text for the image, e.g. &#8220;The Mona Lisa&#8221;') . '</p></td>
@@ -1998,7 +2162,7 @@
 
 		<tr class="image-only">
 			<th valign="top" scope="row" class="label">
-				<span class="alignleft"><label for="url">' . __('Link Image To:') . '</label></span>
+				<label for="url"><span class="alignleft">' . __('Link Image To:') . '</span></label>
 			</th>
 			<td class="field"><input id="url" name="url" value="" type="text" /><br />
 
@@ -2023,46 +2187,29 @@
 
 }
 
-function _insert_into_post_button($type) {
-	if ( !post_type_supports(get_post_type($_GET['post_id']), 'editor') )
-		return '';
-
-	if ( 'image' == $type )
-	return '
-		<tr>
-			<td></td>
-			<td>
-				<input type="button" class="button" id="go_button" style="color:#bbb;" onclick="addExtImage.insert()" value="' . esc_attr__('Insert into Post') . '" />
-			</td>
-		</tr>
-	';
-
-	return '
-		<tr>
-			<td></td>
-			<td>
-				' . get_submit_button( __( 'Insert into Post' ), 'button', 'insertonlybutton', false ) . '
-			</td>
-		</tr>
-	';
-}
-
 /**
- * {@internal Missing Short Description}}
+ * Displays the multi-file uploader message.
  *
  * @since 2.6.0
  */
 function media_upload_flash_bypass() {
+	$browser_uploader = admin_url( 'media-new.php?browser-uploader' );
+
+	if ( $post = get_post() )
+		$browser_uploader .= '&amp;post_id=' . intval( $post->ID );
+	elseif ( ! empty( $GLOBALS['post_ID'] ) )
+		$browser_uploader .= '&amp;post_id=' . intval( $GLOBALS['post_ID'] );
+
 	?>
 	<p class="upload-flash-bypass">
-	<?php _e('You are using the multi-file uploader. Problems? Try the <a href="#">browser uploader</a> instead.'); ?>
+	<?php printf( __( 'You are using the multi-file uploader. Problems? Try the <a href="%1$s" target="%2$s">browser uploader</a> instead.' ), $browser_uploader, '_blank' ); ?>
 	</p>
 	<?php
 }
 add_action('post-plupload-upload-ui', 'media_upload_flash_bypass');
 
 /**
- * {@internal Missing Short Description}}
+ * Displays the browser's built-in uploader message.
  *
  * @since 2.6.0
  */
@@ -2075,17 +2222,17 @@
 }
 add_action('post-html-upload-ui', 'media_upload_html_bypass');
 
-function media_upload_text_after() {
-	?>
-	<span class="after-file-upload"><?php _e('After a file has been uploaded, you can add titles and descriptions.'); ?></span>
-	<?php
-}
-add_action('post-upload-ui', 'media_upload_text_after', 5);
+/**
+ * Used to display a "After a file has been uploaded..." help message.
+ *
+ * @since 3.3.0
+ */
+function media_upload_text_after() {}
 
 /**
- * {@internal Missing Short Description}}
+ * Displays the checkbox to scale images.
  *
- * @since 2.6.0
+ * @since 3.3.0
  */
 function media_upload_max_image_resize() {
 	$checked = get_user_setting('upload_resize') ? ' checked="true"' : '';
@@ -2106,6 +2253,133 @@
 <?php
 }
 
+/**
+ * Displays the out of storage quota message in Multisite.
+ *
+ * @since 3.5.0
+ */
+function multisite_over_quota_message() {
+	echo '<p>' . sprintf( __( 'Sorry, you have used all of your storage quota of %s MB.' ), get_space_allowed() ) . '</p>';
+}
+
+/**
+ * Displays the image and editor in the post editor
+ *
+ * @since 3.5.0
+ */
+function edit_form_image_editor() {
+	$post = get_post();
+
+	$open = isset( $_GET['image-editor'] );
+	if ( $open )
+		require_once ABSPATH . 'wp-admin/includes/image-edit.php';
+
+	$thumb_url = false;
+	if ( $attachment_id = intval( $post->ID ) )
+		$thumb_url = wp_get_attachment_image_src( $attachment_id, array( 900, 450 ), true );
+
+	$filename = esc_html( basename( $post->guid ) );
+	$title = esc_attr( $post->post_title );
+	$alt_text = get_post_meta( $post->ID, '_wp_attachment_image_alt', true );
+
+	$att_url = wp_get_attachment_url( $post->ID );
+
+	if ( wp_attachment_is_image( $post->ID ) ) :
+		$image_edit_button = '';
+		if ( wp_image_editor_supports( array( 'mime_type' => $post->post_mime_type ) ) ) {
+			$nonce = wp_create_nonce( "image_editor-$post->ID" );
+			$image_edit_button = "<input type='button' id='imgedit-open-btn-$post->ID' onclick='imageEdit.open( $post->ID, \"$nonce\" )' class='button' value='" . esc_attr__( 'Edit Image' ) . "' /> <span class='spinner'></span>";
+		}
+ 	?>
+	<div class="wp_attachment_holder">
+		<div class="imgedit-response" id="imgedit-response-<?php echo $attachment_id; ?>"></div>
+
+		<div<?php if ( $open ) echo ' style="display:none"'; ?> class="wp_attachment_image" id="media-head-<?php echo $attachment_id; ?>">
+			<p id="thumbnail-head-<?php echo $attachment_id; ?>"><img class="thumbnail" src="<?php echo set_url_scheme( $thumb_url[0] ); ?>" style="max-width:100%" alt="" /></p>
+			<p><?php echo $image_edit_button; ?></p>
+		</div>
+		<div<?php if ( ! $open ) echo ' style="display:none"'; ?> class="image-editor" id="image-editor-<?php echo $attachment_id; ?>">
+			<?php if ( $open ) wp_image_editor( $attachment_id ); ?>
+		</div>
+	</div>
+	<?php endif; ?>
+
+	<div class="wp_attachment_details">
+		<p>
+			<label for="attachment_caption"><strong><?php _e( 'Caption' ); ?></strong></label><br />
+			<textarea class="widefat" name="excerpt" id="attachment_caption"><?php echo $post->post_excerpt; ?></textarea>
+		</p>
+
+	<?php if ( 'image' === substr( $post->post_mime_type, 0, 5 ) ) : ?>
+		<p>
+			<label for="attachment_alt"><strong><?php _e( 'Alternative Text' ); ?></strong></label><br />
+			<input type="text" class="widefat" name="_wp_attachment_image_alt" id="attachment_alt" value="<?php echo esc_attr( $alt_text ); ?>" />
+		</p>
+	<?php endif; ?>
+
+	<?php
+		$quicktags_settings = array( 'buttons' => 'strong,em,link,block,del,ins,img,ul,ol,li,code,spell,close' );
+		$editor_args = array(
+			'textarea_name' => 'content',
+			'textarea_rows' => 5,
+			'media_buttons' => false,
+			'tinymce' => false,
+			'quicktags' => $quicktags_settings,
+		);
+	?>
+
+	<label for="content"><strong><?php _e( 'Description' ); ?></strong></label>
+	<?php wp_editor( $post->post_content, 'attachment_content', $editor_args ); ?>
+
+	</div>
+	<?php
+	$extras = get_compat_media_markup( $post->ID );
+	echo $extras['item'];
+	echo '<input type="hidden" id="image-edit-context" value="edit-attachment" />' . "\n";
+}
+
+/**
+ * Displays non-editable attachment metadata in the publish metabox
+ *
+ * @since 3.5.0
+ */
+function attachment_submitbox_metadata() {
+	$post = get_post();
+
+	$filename = esc_html( basename( $post->guid ) );
+
+	$media_dims = '';
+	$meta = wp_get_attachment_metadata( $post->ID );
+	if ( is_array( $meta ) && array_key_exists( 'width', $meta ) && array_key_exists( 'height', $meta ) )
+		$media_dims .= "<span id='media-dims-$post->ID'>{$meta['width']}&nbsp;&times;&nbsp;{$meta['height']}</span> ";
+	$media_dims = apply_filters( 'media_meta', $media_dims, $post );
+
+	$att_url = wp_get_attachment_url( $post->ID );
+?>
+	<div class="misc-pub-section">
+			<label for="attachment_url"><?php _e( 'File URL:' ); ?></label>
+			<input type="text" class="widefat urlfield" readonly="readonly" name="attachment_url" value="<?php echo esc_attr($att_url); ?>" />
+	</div>
+	<div class="misc-pub-section">
+		<?php _e( 'File name:' ); ?> <strong><?php echo $filename; ?></strong>
+	</div>
+	<div class="misc-pub-section">
+		<?php _e( 'File type:' ); ?> <strong><?php
+			if ( preg_match( '/^.*?\.(\w+)$/', get_attached_file( $post->ID ), $matches ) )
+				echo esc_html( strtoupper( $matches[1] ) );
+			else
+				echo strtoupper( str_replace( 'image/', '', $post->post_mime_type ) );
+		?></strong>
+	</div>
+
+<?php if ( $media_dims ) : ?>
+	<div class="misc-pub-section">
+		<?php _e( 'Dimensions:' ); ?> <strong><?php echo $media_dims; ?></strong>
+	</div>
+<?php
+	endif;
+}
+
 add_filter( 'async_upload_image', 'get_media_item', 10, 2 );
 add_filter( 'async_upload_audio', 'get_media_item', 10, 2 );
 add_filter( 'async_upload_video', 'get_media_item', 10, 2 );
@@ -2118,3 +2392,5 @@
 
 add_filter( 'media_upload_gallery', 'media_upload_gallery' );
 add_filter( 'media_upload_library', 'media_upload_library' );
+
+add_action( 'attachment_submitbox_misc_actions', 'attachment_submitbox_metadata' );
--- a/web/wp-admin/includes/meta-boxes.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-admin/includes/meta-boxes.php	Wed Dec 19 17:46:52 2012 -0800
@@ -28,11 +28,11 @@
 <div id="minor-publishing-actions">
 <div id="save-action">
 <?php if ( 'publish' != $post->post_status && 'future' != $post->post_status && 'pending' != $post->post_status ) { ?>
-<input <?php if ( 'private' == $post->post_status ) { ?>style="display:none"<?php } ?> type="submit" name="save" id="save-post" value="<?php esc_attr_e('Save Draft'); ?>" tabindex="4" class="button button-highlighted" />
+<input <?php if ( 'private' == $post->post_status ) { ?>style="display:none"<?php } ?> type="submit" name="save" id="save-post" value="<?php esc_attr_e('Save Draft'); ?>" class="button" />
 <?php } elseif ( 'pending' == $post->post_status && $can_publish ) { ?>
-<input type="submit" name="save" id="save-post" value="<?php esc_attr_e('Save as Pending'); ?>" tabindex="4" class="button button-highlighted" />
+<input type="submit" name="save" id="save-post" value="<?php esc_attr_e('Save as Pending'); ?>" class="button" />
 <?php } ?>
-<img src="<?php echo esc_url( admin_url( 'images/wpspin_light.gif' ) ); ?>" class="ajax-loading" id="draft-ajax-loading" alt="" />
+<span class="spinner"></span>
 </div>
 <?php if ( $post_type_object->public ) : ?>
 <div id="preview-action">
@@ -41,19 +41,17 @@
 	$preview_link = esc_url( get_permalink( $post->ID ) );
 	$preview_button = __( 'Preview Changes' );
 } else {
-	$preview_link = get_permalink( $post->ID );
-	if ( is_ssl() )
-		$preview_link = str_replace( 'http://', 'https://', $preview_link );
+	$preview_link = set_url_scheme( get_permalink( $post->ID ) );
 	$preview_link = esc_url( apply_filters( 'preview_post_link', add_query_arg( 'preview', 'true', $preview_link ) ) );
 	$preview_button = __( 'Preview' );
 }
 ?>
-<a class="preview button" href="<?php echo $preview_link; ?>" target="wp-preview" id="post-preview" tabindex="4"><?php echo $preview_button; ?></a>
+<a class="preview button" href="<?php echo $preview_link; ?>" target="wp-preview" id="post-preview"><?php echo $preview_button; ?></a>
 <input type="hidden" name="wp-preview" id="wp-preview" value="" />
 </div>
 <?php endif; // public post type ?>
 <div class="clear"></div>
-</div><?php // /minor-publishing-actions ?>
+</div><!-- #minor-publishing-actions -->
 
 <div id="misc-publishing-actions">
 
@@ -81,11 +79,11 @@
 ?>
 </span>
 <?php if ( 'publish' == $post->post_status || 'private' == $post->post_status || $can_publish ) { ?>
-<a href="#post_status" <?php if ( 'private' == $post->post_status ) { ?>style="display:none;" <?php } ?>class="edit-post-status hide-if-no-js" tabindex='4'><?php _e('Edit') ?></a>
+<a href="#post_status" <?php if ( 'private' == $post->post_status ) { ?>style="display:none;" <?php } ?>class="edit-post-status hide-if-no-js"><?php _e('Edit') ?></a>
 
 <div id="post-status-select" class="hide-if-js">
 <input type="hidden" name="hidden_post_status" id="hidden_post_status" value="<?php echo esc_attr( ('auto-draft' == $post->post_status ) ? 'draft' : $post->post_status); ?>" />
-<select name='post_status' id='post_status' tabindex='4'>
+<select name='post_status' id='post_status'>
 <?php if ( 'publish' == $post->post_status ) : ?>
 <option<?php selected( $post->post_status, 'publish' ); ?> value='publish'><?php _e('Published') ?></option>
 <?php elseif ( 'private' == $post->post_status ) : ?>
@@ -105,7 +103,7 @@
 </div>
 
 <?php } ?>
-</div><?php // /misc-pub-section ?>
+</div><!-- .misc-pub-section -->
 
 <div class="misc-pub-section" id="visibility">
 <?php _e('Visibility:'); ?> <span id="post-visibility-display"><?php
@@ -137,7 +135,7 @@
 <input type="hidden" name="hidden_post_visibility" id="hidden-post-visibility" value="<?php echo esc_attr( $visibility ); ?>" />
 <input type="radio" name="visibility" id="visibility-radio-public" value="public" <?php checked( $visibility, 'public' ); ?> /> <label for="visibility-radio-public" class="selectit"><?php _e('Public'); ?></label><br />
 <?php if ( $post_type == 'post' && current_user_can( 'edit_others_posts' ) ) : ?>
-<span id="sticky-span"><input id="sticky" name="sticky" type="checkbox" value="sticky" <?php checked( is_sticky( $post->ID ) ); ?> tabindex="4" /> <label for="sticky" class="selectit"><?php _e( 'Stick this post to the front page' ); ?></label><br /></span>
+<span id="sticky-span"><input id="sticky" name="sticky" type="checkbox" value="sticky" <?php checked( is_sticky( $post->ID ) ); ?> /> <label for="sticky" class="selectit"><?php _e( 'Stick this post to the front page' ); ?></label><br /></span>
 <?php endif; ?>
 <input type="radio" name="visibility" id="visibility-radio-password" value="password" <?php checked( $visibility, 'password' ); ?> /> <label for="visibility-radio-password" class="selectit"><?php _e('Password protected'); ?></label><br />
 <span id="password-span"><label for="post_password"><?php _e('Password:'); ?></label> <input type="text" name="post_password" id="post_password" value="<?php echo esc_attr($post->post_password); ?>" /><br /></span>
@@ -150,7 +148,7 @@
 </div>
 <?php } ?>
 
-</div><?php // /misc-pub-section ?>
+</div><!-- .misc-pub-section -->
 
 <?php
 // translators: Publish box date format, see http://php.net/date
@@ -177,8 +175,8 @@
 <div class="misc-pub-section curtime">
 	<span id="timestamp">
 	<?php printf($stamp, $date); ?></span>
-	<a href="#edit_timestamp" class="edit-timestamp hide-if-no-js" tabindex='4'><?php _e('Edit') ?></a>
-	<div id="timestampdiv" class="hide-if-js"><?php touch_time(($action == 'edit'),1,4); ?></div>
+	<a href="#edit_timestamp" class="edit-timestamp hide-if-no-js"><?php _e('Edit') ?></a>
+	<div id="timestampdiv" class="hide-if-js"><?php touch_time(($action == 'edit'), 1); ?></div>
 </div><?php // /misc-pub-section ?>
 <?php endif; ?>
 
@@ -202,25 +200,25 @@
 </div>
 
 <div id="publishing-action">
-<img src="<?php echo esc_url( admin_url( 'images/wpspin_light.gif' ) ); ?>" class="ajax-loading" id="ajax-loading" alt="" />
+<span class="spinner"></span>
 <?php
 if ( !in_array( $post->post_status, array('publish', 'future', 'private') ) || 0 == $post->ID ) {
 	if ( $can_publish ) :
 		if ( !empty($post->post_date_gmt) && time() < strtotime( $post->post_date_gmt . ' +0000' ) ) : ?>
 		<input name="original_publish" type="hidden" id="original_publish" value="<?php esc_attr_e('Schedule') ?>" />
-		<?php submit_button( __( 'Schedule' ), 'primary', 'publish', false, array( 'tabindex' => '5', 'accesskey' => 'p' ) ); ?>
+		<?php submit_button( __( 'Schedule' ), 'primary button-large', 'publish', false, array( 'accesskey' => 'p' ) ); ?>
 <?php	else : ?>
 		<input name="original_publish" type="hidden" id="original_publish" value="<?php esc_attr_e('Publish') ?>" />
-		<?php submit_button( __( 'Publish' ), 'primary', 'publish', false, array( 'tabindex' => '5', 'accesskey' => 'p' ) ); ?>
+		<?php submit_button( __( 'Publish' ), 'primary button-large', 'publish', false, array( 'accesskey' => 'p' ) ); ?>
 <?php	endif;
 	else : ?>
 		<input name="original_publish" type="hidden" id="original_publish" value="<?php esc_attr_e('Submit for Review') ?>" />
-		<?php submit_button( __( 'Submit for Review' ), 'primary', 'publish', false, array( 'tabindex' => '5', 'accesskey' => 'p' ) ); ?>
+		<?php submit_button( __( 'Submit for Review' ), 'primary button-large', 'publish', false, array( 'accesskey' => 'p' ) ); ?>
 <?php
 	endif;
 } else { ?>
 		<input name="original_publish" type="hidden" id="original_publish" value="<?php esc_attr_e('Update') ?>" />
-		<input name="save" type="submit" class="button-primary" id="publish" tabindex="5" accesskey="p" value="<?php esc_attr_e('Update') ?>" />
+		<input name="save" type="submit" class="button button-primary button-large" id="publish" accesskey="p" value="<?php esc_attr_e('Update') ?>" />
 <?php
 } ?>
 </div>
@@ -232,6 +230,72 @@
 }
 
 /**
+ * Display attachment submit form fields.
+ *
+ * @since 3.5.0
+ *
+ * @param object $post
+ */
+function attachment_submit_meta_box( $post ) {
+	global $action;
+
+	$post_type = $post->post_type;
+	$post_type_object = get_post_type_object($post_type);
+	$can_publish = current_user_can($post_type_object->cap->publish_posts);
+?>
+<div class="submitbox" id="submitpost">
+
+<div id="minor-publishing">
+
+<?php // Hidden submit button early on so that the browser chooses the right button when form is submitted with Return key ?>
+<div style="display:none;">
+<?php submit_button( __( 'Save' ), 'button', 'save' ); ?>
+</div>
+
+
+<div id="misc-publishing-actions">
+	<?php
+	// translators: Publish box date format, see http://php.net/date
+	$datef = __( 'M j, Y @ G:i' );
+	$stamp = __('Uploaded on: <b>%1$s</b>');
+	$date = date_i18n( $datef, strtotime( $post->post_date ) );
+	?>
+	<div class="misc-pub-section curtime">
+		<span id="timestamp"><?php printf($stamp, $date); ?></span>
+	</div><!-- .misc-pub-section -->
+
+	<?php do_action('attachment_submitbox_misc_actions'); ?>
+</div><!-- #misc-publishing-actions -->
+<div class="clear"></div>
+</div><!-- #minor-publishing -->
+
+<div id="major-publishing-actions">
+	<div id="delete-action">
+	<?php
+	if ( current_user_can( 'delete_post', $post->ID ) )
+		if ( EMPTY_TRASH_DAYS && MEDIA_TRASH ) {
+			echo "<a class='submitdelete deletion' href='" . get_delete_post_link( $post->ID ) . "'>" . __( 'Trash' ) . "</a>";
+		} else {
+			$delete_ays = ! MEDIA_TRASH ? " onclick='return showNotice.warn();'" : '';
+			echo  "<a class='submitdelete deletion'$delete_ays href='" . get_delete_post_link( $post->ID, null, true ) . "'>" . __( 'Delete Permanently' ) . "</a>";
+		}
+	?>
+	</div>
+
+	<div id="publishing-action">
+		<span class="spinner"></span>
+		<input name="original_publish" type="hidden" id="original_publish" value="<?php esc_attr_e('Update') ?>" />
+		<input name="save" type="submit" class="button-primary button-large" id="publish" accesskey="p" value="<?php esc_attr_e('Update') ?>" />
+	</div>
+	<div class="clear"></div>
+</div><!-- #major-publishing-actions -->
+
+</div>
+
+<?php
+}
+
+/**
  * Display post format form elements.
  *
  * @since 3.1.0
@@ -288,7 +352,7 @@
 		<label class="screen-reader-text" for="new-tag-<?php echo $tax_name; ?>"><?php echo $box['title']; ?></label>
 		<div class="taghint"><?php echo $taxonomy->labels->add_new_item; ?></div>
 		<p><input type="text" id="new-tag-<?php echo $tax_name; ?>" name="newtag[<?php echo $tax_name; ?>]" class="newtag form-input-tip" size="16" autocomplete="off" value="" />
-		<input type="button" class="button tagadd" value="<?php esc_attr_e('Add'); ?>" tabindex="3" /></p>
+		<input type="button" class="button tagadd" value="<?php esc_attr_e('Add'); ?>" /></p>
 	</div>
 	<p class="howto"><?php echo esc_attr( $taxonomy->labels->separate_items_with_commas ); ?></p>
 	<?php endif; ?>
@@ -320,8 +384,8 @@
 	?>
 	<div id="taxonomy-<?php echo $taxonomy; ?>" class="categorydiv">
 		<ul id="<?php echo $taxonomy; ?>-tabs" class="category-tabs">
-			<li class="tabs"><a href="#<?php echo $taxonomy; ?>-all" tabindex="3"><?php echo $tax->labels->all_items; ?></a></li>
-			<li class="hide-if-no-js"><a href="#<?php echo $taxonomy; ?>-pop" tabindex="3"><?php _e( 'Most Used' ); ?></a></li>
+			<li class="tabs"><a href="#<?php echo $taxonomy; ?>-all"><?php echo $tax->labels->all_items; ?></a></li>
+			<li class="hide-if-no-js"><a href="#<?php echo $taxonomy; ?>-pop"><?php _e( 'Most Used' ); ?></a></li>
 		</ul>
 
 		<div id="<?php echo $taxonomy; ?>-pop" class="tabs-panel" style="display: none;">
@@ -335,14 +399,14 @@
             $name = ( $taxonomy == 'category' ) ? 'post_category' : 'tax_input[' . $taxonomy . ']';
             echo "<input type='hidden' name='{$name}[]' value='0' />"; // Allows for an empty term set to be sent. 0 is an invalid Term ID and will be ignored by empty() checks.
             ?>
-			<ul id="<?php echo $taxonomy; ?>checklist" class="list:<?php echo $taxonomy?> categorychecklist form-no-clear">
+			<ul id="<?php echo $taxonomy; ?>checklist" data-wp-lists="list:<?php echo $taxonomy?>" class="categorychecklist form-no-clear">
 				<?php wp_terms_checklist($post->ID, array( 'taxonomy' => $taxonomy, 'popular_cats' => $popular_ids ) ) ?>
 			</ul>
 		</div>
 	<?php if ( current_user_can($tax->cap->edit_terms) ) : ?>
 			<div id="<?php echo $taxonomy; ?>-adder" class="wp-hidden-children">
 				<h4>
-					<a id="<?php echo $taxonomy; ?>-add-toggle" href="#<?php echo $taxonomy; ?>-add" class="hide-if-no-js" tabindex="3">
+					<a id="<?php echo $taxonomy; ?>-add-toggle" href="#<?php echo $taxonomy; ?>-add" class="hide-if-no-js">
 						<?php
 							/* translators: %s: add new taxonomy label */
 							printf( __( '+ %s' ), $tax->labels->add_new_item );
@@ -351,12 +415,12 @@
 				</h4>
 				<p id="<?php echo $taxonomy; ?>-add" class="category-add wp-hidden-child">
 					<label class="screen-reader-text" for="new<?php echo $taxonomy; ?>"><?php echo $tax->labels->add_new_item; ?></label>
-					<input type="text" name="new<?php echo $taxonomy; ?>" id="new<?php echo $taxonomy; ?>" class="form-required form-input-tip" value="<?php echo esc_attr( $tax->labels->new_item_name ); ?>" tabindex="3" aria-required="true"/>
+					<input type="text" name="new<?php echo $taxonomy; ?>" id="new<?php echo $taxonomy; ?>" class="form-required form-input-tip" value="<?php echo esc_attr( $tax->labels->new_item_name ); ?>" aria-required="true"/>
 					<label class="screen-reader-text" for="new<?php echo $taxonomy; ?>_parent">
 						<?php echo $tax->labels->parent_item_colon; ?>
 					</label>
-					<?php wp_dropdown_categories( array( 'taxonomy' => $taxonomy, 'hide_empty' => 0, 'name' => 'new'.$taxonomy.'_parent', 'orderby' => 'name', 'hierarchical' => 1, 'show_option_none' => '&mdash; ' . $tax->labels->parent_item . ' &mdash;', 'tab_index' => 3 ) ); ?>
-					<input type="button" id="<?php echo $taxonomy; ?>-add-submit" class="add:<?php echo $taxonomy ?>checklist:<?php echo $taxonomy ?>-add button category-add-submit" value="<?php echo esc_attr( $tax->labels->add_new_item ); ?>" tabindex="3" />
+					<?php wp_dropdown_categories( array( 'taxonomy' => $taxonomy, 'hide_empty' => 0, 'name' => 'new'.$taxonomy.'_parent', 'orderby' => 'name', 'hierarchical' => 1, 'show_option_none' => '&mdash; ' . $tax->labels->parent_item . ' &mdash;' ) ); ?>
+					<input type="button" id="<?php echo $taxonomy; ?>-add-submit" data-wp-lists="add:<?php echo $taxonomy ?>checklist:<?php echo $taxonomy ?>-add" class="button category-add-submit" value="<?php echo esc_attr( $tax->labels->add_new_item ); ?>" />
 					<?php wp_nonce_field( 'add-'.$taxonomy, '_ajax_nonce-add-'.$taxonomy, false ); ?>
 					<span id="<?php echo $taxonomy; ?>-ajax-response"></span>
 				</p>
@@ -375,7 +439,7 @@
  */
 function post_excerpt_meta_box($post) {
 ?>
-<label class="screen-reader-text" for="excerpt"><?php _e('Excerpt') ?></label><textarea rows="1" cols="40" name="excerpt" tabindex="6" id="excerpt"><?php echo $post->post_excerpt; // textarea_escaped ?></textarea>
+<label class="screen-reader-text" for="excerpt"><?php _e('Excerpt') ?></label><textarea rows="1" cols="40" name="excerpt" id="excerpt"><?php echo $post->post_excerpt; // textarea_escaped ?></textarea>
 <p><?php _e('Excerpts are optional hand-crafted summaries of your content that can be used in your theme. <a href="http://codex.wordpress.org/Excerpt" target="_blank">Learn more about manual excerpts.</a>'); ?></p>
 <?php
 }
@@ -388,7 +452,7 @@
  * @param object $post
  */
 function post_trackback_meta_box($post) {
-	$form_trackback = '<input type="text" name="trackback_url" id="trackback_url" class="code" tabindex="7" value="'. esc_attr( str_replace("\n", ' ', $post->to_ping) ) .'" />';
+	$form_trackback = '<input type="text" name="trackback_url" id="trackback_url" class="code" value="'. esc_attr( str_replace("\n", ' ', $post->to_ping) ) .'" />';
 	if ('' != $post->pinged) {
 		$pings = '<p>'. __('Already pinged:') . '</p><ul>';
 		$already_pinged = explode("\n", trim($post->pinged));
@@ -468,15 +532,15 @@
  *
  * @param object $post
  */
-function post_comment_meta_box($post) {
-	global $wpdb, $post_ID;
+function post_comment_meta_box( $post ) {
+	global $wpdb;
 
 	wp_nonce_field( 'get-comments', 'add_comment_nonce', false );
 	?>
-	<p class="hide-if-no-js" id="add-new-comment"><a href="#commentstatusdiv" onclick="commentReply.addcomment(<?php echo $post_ID; ?>);return false;"><?php _e('Add comment'); ?></a></p>
+	<p class="hide-if-no-js" id="add-new-comment"><a href="#commentstatusdiv" onclick="commentReply.addcomment(<?php echo $post->ID; ?>);return false;"><?php _e('Add comment'); ?></a></p>
 	<?php
 
-	$total = $wpdb->get_var($wpdb->prepare("SELECT count(1) FROM $wpdb->comments WHERE comment_post_ID = '%d' AND ( comment_approved = '0' OR comment_approved = '1')", $post_ID));
+	$total = get_comments( array( 'post_id' => $post->ID, 'number' => 1, 'count' => true ) );
 	$wp_list_table = _get_list_table('WP_Post_Comments_List_Table');
 	$wp_list_table->display( true );
 
@@ -491,7 +555,7 @@
 		}
 
 		?>
-		<p class="hide-if-no-js" id="show-comments"><a href="#commentstatusdiv" onclick="commentsBox.get(<?php echo $total; ?>);return false;"><?php _e('Show comments'); ?></a> <img class="waiting" style="display:none;" src="<?php echo esc_url( admin_url( 'images/wpspin_light.gif' ) ); ?>" alt="" /></p>
+		<p class="hide-if-no-js" id="show-comments"><a href="#commentstatusdiv" onclick="commentsBox.get(<?php echo $total; ?>);return false;"><?php _e('Show comments'); ?></a> <span class="spinner"></span></p>
 		<?php
 	}
 
@@ -613,7 +677,7 @@
 <div id="minor-publishing-actions">
 <div id="preview-action">
 <?php if ( !empty($link->link_id) ) { ?>
-	<a class="preview button" href="<?php echo $link->link_url; ?>" target="_blank" tabindex="4"><?php _e('Visit Link'); ?></a>
+	<a class="preview button" href="<?php echo $link->link_url; ?>" target="_blank"><?php _e('Visit Link'); ?></a>
 <?php } ?>
 </div>
 <div class="clear"></div>
@@ -638,9 +702,9 @@
 
 <div id="publishing-action">
 <?php if ( !empty($link->link_id) ) { ?>
-	<input name="save" type="submit" class="button-primary" id="publish" tabindex="4" accesskey="p" value="<?php esc_attr_e('Update Link') ?>" />
+	<input name="save" type="submit" class="button-large button-primary" id="publish" accesskey="p" value="<?php esc_attr_e('Update Link') ?>" />
 <?php } else { ?>
-	<input name="save" type="submit" class="button-primary" id="publish" tabindex="4" accesskey="p" value="<?php esc_attr_e('Add Link') ?>" />
+	<input name="save" type="submit" class="button-large button-primary" id="publish" accesskey="p" value="<?php esc_attr_e('Add Link') ?>" />
 <?php } ?>
 </div>
 <div class="clear"></div>
@@ -667,7 +731,7 @@
 	</ul>
 
 	<div id="categories-all" class="tabs-panel">
-		<ul id="categorychecklist" class="list:category categorychecklist form-no-clear">
+		<ul id="categorychecklist" data-wp-lists="list:category" class="categorychecklist form-no-clear">
 			<?php
 			if ( isset($link->link_id) )
 				wp_link_category_checklist($link->link_id);
@@ -688,7 +752,7 @@
 		<p id="link-category-add" class="wp-hidden-child">
 			<label class="screen-reader-text" for="newcat"><?php _e( '+ Add New Category' ); ?></label>
 			<input type="text" name="newcat" id="newcat" class="form-required form-input-tip" value="<?php esc_attr_e( 'New category name' ); ?>" aria-required="true" />
-			<input type="button" id="link-category-add-submit" class="add:categorychecklist:linkcategorydiv button" value="<?php esc_attr_e( 'Add' ); ?>" />
+			<input type="button" id="link-category-add-submit" data-wp-lists="add:categorychecklist:link-category-add" class="button" value="<?php esc_attr_e( 'Add' ); ?>" />
 			<?php wp_nonce_field( 'add-link-category', '_ajax_nonce', false ); ?>
 			<span id="category-ajax-response"></span>
 		</p>
@@ -912,8 +976,7 @@
  *
  * @since 2.9.0
  */
-function post_thumbnail_meta_box() {
-	global $post;
+function post_thumbnail_meta_box( $post ) {
 	$thumbnail_id = get_post_meta( $post->ID, '_thumbnail_id', true );
-	echo _wp_post_thumbnail_html( $thumbnail_id );
-}
+	echo _wp_post_thumbnail_html( $thumbnail_id, $post->ID );
+}
\ No newline at end of file
--- a/web/wp-admin/includes/misc.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-admin/includes/misc.php	Wed Dec 19 17:46:52 2012 -0800
@@ -192,7 +192,7 @@
 }
 
 /**
- * If siteurl or home changed, flush rewrite rules.
+ * If siteurl, home or page_on_front changed, flush rewrite rules.
  *
  * @since 2.1.0
  *
@@ -209,6 +209,7 @@
 
 add_action( 'update_option_home', 'update_home_siteurl', 10, 2 );
 add_action( 'update_option_siteurl', 'update_home_siteurl', 10, 2 );
+add_action( 'update_option_page_on_front', 'update_home_siteurl', 10, 2 );
 
 /**
  * Shorten an URL, to be used as link text
@@ -325,18 +326,18 @@
 		$option = $_POST['wp_screen_options']['option'];
 		$value = $_POST['wp_screen_options']['value'];
 
-		if ( !preg_match( '/^[a-z_-]+$/', $option ) )
+		if ( $option != sanitize_key( $option ) )
 			return;
 
-		$option = str_replace('-', '_', $option);
-
 		$map_option = $option;
 		$type = str_replace('edit_', '', $map_option);
 		$type = str_replace('_per_page', '', $type);
-		if ( in_array($type, get_post_types()) )
+		if ( in_array( $type, get_taxonomies() ) )
+			$map_option = 'edit_tags_per_page';
+		elseif ( in_array( $type, get_post_types() ) )
 			$map_option = 'edit_per_page';
-		if ( in_array( $type, get_taxonomies()) )
-			$map_option = 'edit_tags_per_page';
+		else
+			$option = str_replace('-', '_', $option);
 
 		switch ( $map_option ) {
 			case 'edit_per_page':
@@ -524,36 +525,6 @@
 }
 
 /**
- * Workaround for Windows bug in is_writable() function
- *
- * @since 2.8.0
- *
- * @param string $path
- * @return bool
- */
-function win_is_writable( $path ) {
-	/* will work in despite of Windows ACLs bug
-	 * NOTE: use a trailing slash for folders!!!
-	 * see http://bugs.php.net/bug.php?id=27609
-	 * see http://bugs.php.net/bug.php?id=30931
-	 */
-
-	if ( $path[strlen( $path ) - 1] == '/' ) // recursively return a temporary file path
-		return win_is_writable( $path . uniqid( mt_rand() ) . '.tmp');
-	else if ( is_dir( $path ) )
-		return win_is_writable( $path . '/' . uniqid( mt_rand() ) . '.tmp' );
-	// check tmp file for read/write capabilities
-	$should_delete_tmp_file = !file_exists( $path );
-	$f = @fopen( $path, 'a' );
-	if ( $f === false )
-		return false;
-	fclose( $f );
-	if ( $should_delete_tmp_file )
-		unlink( $path );
-	return true;
-}
-
-/**
  * Display the default admin color scheme picker (Used in user-edit.php)
  *
  * @since 3.0.0
@@ -566,16 +537,16 @@
 if ( empty($current_color) )
 	$current_color = 'fresh';
 foreach ( $_wp_admin_css_colors as $color => $color_info ): ?>
-<div class="color-option"><input name="admin_color" id="admin_color_<?php echo $color; ?>" type="radio" value="<?php echo esc_attr($color) ?>" class="tog" <?php checked($color, $current_color); ?> />
+<div class="color-option"><input name="admin_color" id="admin_color_<?php echo esc_attr( $color ); ?>" type="radio" value="<?php echo esc_attr( $color ); ?>" class="tog" <?php checked($color, $current_color); ?> />
 	<table class="color-palette">
 	<tr>
 	<?php foreach ( $color_info->colors as $html_color ): ?>
-	<td style="background-color: <?php echo $html_color ?>" title="<?php echo $color ?>">&nbsp;</td>
+	<td style="background-color: <?php echo esc_attr( $html_color ); ?>" title="<?php echo esc_attr( $color ); ?>">&nbsp;</td>
 	<?php endforeach; ?>
 	</tr>
 	</table>
 
-	<label for="admin_color_<?php echo $color; ?>"><?php echo $color_info->name ?></label>
+	<label for="admin_color_<?php echo esc_attr( $color ); ?>"><?php echo esc_html( $color_info->name ); ?></label>
 </div>
 	<?php endforeach; ?>
 </fieldset>
--- a/web/wp-admin/includes/ms-deprecated.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-admin/includes/ms-deprecated.php	Wed Dec 19 17:46:52 2012 -0800
@@ -73,4 +73,6 @@
 function wpmu_get_blog_allowedthemes( $blog_id = 0 ) {
 	_deprecated_function( __FUNCTION__, '3.4', 'WP_Theme::get_allowed_on_site()' );
 	return array_map( 'intval', WP_Theme::get_allowed_on_site( $blog_id ) );
-}
\ No newline at end of file
+}
+
+function ms_deprecated_blogs_file() {}
\ No newline at end of file
--- a/web/wp-admin/includes/ms.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-admin/includes/ms.php	Wed Dec 19 17:46:52 2012 -0800
@@ -25,9 +25,8 @@
 	if ( defined( 'WP_IMPORTING' ) )
 		return $file;
 
-	$space_allowed = 1048576 * get_space_allowed();
-	$space_used = get_dirsize( BLOGUPLOADDIR );
-	$space_left = $space_allowed - $space_used;
+	$space_left = get_upload_space_available();
+
 	$file_size = filesize( $file['tmp_name'] );
 	if ( $space_left < $file_size )
 		$file['error'] = sprintf( __( 'Not enough space to upload. %1$s KB needed.' ), number_format( ($file_size - $space_left) /1024 ) );
@@ -56,14 +55,13 @@
 	global $wpdb, $current_site;
 
 	$switch = false;
-	if ( $blog_id != $wpdb->blogid ) {
+	if ( get_current_blog_id() != $blog_id ) {
 		$switch = true;
 		switch_to_blog( $blog_id );
-		$blog = get_blog_details( $blog_id );
-	} else {
-		$blog = $GLOBALS['current_blog'];
 	}
 
+	$blog = get_blog_details( $blog_id );
+
 	do_action( 'delete_blog', $blog_id, $drop );
 
 	$users = get_users( array( 'blog_id' => $blog_id, 'fields' => 'ids' ) );
@@ -82,7 +80,6 @@
 		$drop = false;
 
 	if ( $drop ) {
-
 		$drop_tables = apply_filters( 'wpmu_drop_tables', $wpdb->tables( 'blog' ) );
 
 		foreach ( (array) $drop_tables as $table ) {
@@ -91,7 +88,8 @@
 
 		$wpdb->delete( $wpdb->blogs, array( 'blog_id' => $blog_id ) );
 
-		$dir = apply_filters( 'wpmu_delete_blog_upload_dir', WP_CONTENT_DIR . "/blogs.dir/{$blog_id}/files/", $blog_id );
+		$uploads = wp_upload_dir();
+		$dir = apply_filters( 'wpmu_delete_blog_upload_dir', $uploads['basedir'], $blog_id );
 		$dir = rtrim( $dir, DIRECTORY_SEPARATOR );
 		$top_dir = $dir;
 		$stack = array($dir);
@@ -112,6 +110,7 @@
 					else if ( @is_file( $dir . DIRECTORY_SEPARATOR . $file ) )
 						@unlink( $dir . DIRECTORY_SEPARATOR . $file );
 				}
+				@closedir( $dh );
 			}
 			$index++;
 		}
@@ -121,6 +120,8 @@
 			if ( $dir != $top_dir)
 			@rmdir( $dir );
 		}
+
+		clean_blog_cache( $blog );
 	}
 
 	if ( $switch )
@@ -223,12 +224,12 @@
 
 	if ( $current_user->user_email != $_POST['email'] ) {
 		if ( !is_email( $_POST['email'] ) ) {
-			$errors->add( 'user_email', __( "<strong>ERROR</strong>: The e-mail address isn't correct." ), array( 'form-field' => 'email' ) );
+			$errors->add( 'user_email', __( "<strong>ERROR</strong>: The email address isn&#8217;t correct." ), array( 'form-field' => 'email' ) );
 			return;
 		}
 
 		if ( $wpdb->get_var( $wpdb->prepare( "SELECT user_email FROM {$wpdb->users} WHERE user_email=%s", $_POST['email'] ) ) ) {
-			$errors->add( 'user_email', __( "<strong>ERROR</strong>: The e-mail address is already used." ), array( 'form-field' => 'email' ) );
+			$errors->add( 'user_email', __( "<strong>ERROR</strong>: The email address is already used." ), array( 'form-field' => 'email' ) );
 			delete_option( $current_user->ID . '_new_email' );
 			return;
 		}
@@ -273,106 +274,82 @@
 add_action( 'admin_notices', 'new_user_email_admin_notice' );
 
 /**
- * Determines if there is any upload space left in the current blog's quota.
+ * Check whether a blog has used its allotted upload space.
  *
- * @since 3.0.0
- * @return bool True if space is available, false otherwise.
+ * @since MU
+ *
+ * @param bool $echo Optional. If $echo is set and the quota is exceeded, a warning message is echoed. Default is true.
+ * @return int
  */
-function is_upload_space_available() {
+function upload_is_user_over_quota( $echo = true ) {
 	if ( get_site_option( 'upload_space_check_disabled' ) )
-		return true;
-
-	if ( !( $space_allowed = get_upload_space_available() ) )
 		return false;
 
-	return true;
+	$space_allowed = get_space_allowed();
+	if ( empty( $space_allowed ) || !is_numeric( $space_allowed ) )
+		$space_allowed = 10; // Default space allowed is 10 MB
+
+	$space_used = get_space_used();
+
+	if ( ( $space_allowed - $space_used ) < 0 ) {
+		if ( $echo )
+			_e( 'Sorry, you have used your space allocation. Please delete some files to upload more files.' );
+		return true;
+	} else {
+		return false;
+	}
 }
 
 /**
- * @since 3.0.0
- *
- * @return int of upload size limit in bytes
- */
-function upload_size_limit_filter( $size ) {
-	$fileupload_maxk = 1024 * get_site_option( 'fileupload_maxk', 1500 );
-	if ( get_site_option( 'upload_space_check_disabled' ) )
-		return min( $size, $fileupload_maxk );
-
-	return min( $size, $fileupload_maxk, get_upload_space_available() );
-}
-/**
- * Determines if there is any upload space left in the current blog's quota.
+ * Displays the amount of disk space used by the current blog. Not used in core.
  *
- * @return int of upload space available in bytes
+ * @since MU
  */
-function get_upload_space_available() {
-	$space_allowed = get_space_allowed() * 1024 * 1024;
-	if ( get_site_option( 'upload_space_check_disabled' ) )
-		return $space_allowed;
-
-	$dir_name = trailingslashit( BLOGUPLOADDIR );
-	if ( !( is_dir( $dir_name) && is_readable( $dir_name ) ) )
-		return $space_allowed;
-
-  	$dir = dir( $dir_name );
-   	$size = 0;
+function display_space_usage() {
+	$space_allowed = get_space_allowed();
+	$space_used = get_space_used();
 
-	while ( $file = $dir->read() ) {
-		if ( $file != '.' && $file != '..' ) {
-			if ( is_dir( $dir_name . $file) ) {
-				$size += get_dirsize( $dir_name . $file );
-			} else {
-				$size += filesize( $dir_name . $file );
-			}
-		}
-	}
-	$dir->close();
-
-	if ( ( $space_allowed - $size ) <= 0 )
-		return 0;
-
-	return $space_allowed - $size;
-}
+	$percent_used = ( $space_used / $space_allowed ) * 100;
 
-/**
- * Returns the upload quota for the current blog.
- *
- * @return int Quota
- */
-function get_space_allowed() {
-	$space_allowed = get_option( 'blog_upload_space' );
-
-	if ( ! is_numeric( $space_allowed ) )
-		$space_allowed = get_site_option( 'blog_upload_space' );
-
-	if ( empty( $space_allowed ) || ! is_numeric( $space_allowed ) )
-		$space_allowed = 50;
-
-	return $space_allowed;
-}
-
-function display_space_usage() {
-	$space = get_space_allowed();
-	$used = get_dirsize( BLOGUPLOADDIR ) / 1024 / 1024;
-
-	$percentused = ( $used / $space ) * 100;
-
-	if ( $space > 1000 ) {
-		$space = number_format( $space / 1024 );
+	if ( $space_allowed > 1000 ) {
+		$space = number_format( $space_allowed / 1024 );
 		/* translators: Gigabytes */
 		$space .= __( 'GB' );
 	} else {
+		$space = number_format( $space_allowed );
 		/* translators: Megabytes */
 		$space .= __( 'MB' );
 	}
 	?>
-	<strong><?php printf( __( 'Used: %1s%% of %2s' ), number_format( $percentused ), $space ); ?></strong>
+	<strong><?php printf( __( 'Used: %1$s%% of %2$s' ), number_format( $percent_used ), $space ); ?></strong>
 	<?php
 }
 
+/**
+ * Get the remaining upload space for this blog.
+ *
+ * @since MU
+ * @uses upload_is_user_over_quota()
+ * @uses get_space_allowed()
+ * @uses get_upload_space_available()
+ *
+ * @param int $size Current max size in bytes
+ * @return int Max size in bytes
+ */
+function fix_import_form_size( $size ) {
+	if ( upload_is_user_over_quota( false ) == true )
+		return 0;
+
+	$available = get_upload_space_available();
+	return min( $size, $available );
+}
+
 // Edit blog upload space setting on Edit Blog page
 function upload_space_setting( $id ) {
-	$quota = get_blog_option( $id, 'blog_upload_space' );
+	switch_to_blog( $id );
+	$quota = get_option( 'blog_upload_space' );
+	restore_current_blog();
+
 	if ( !$quota )
 		$quota = '';
 
@@ -615,7 +592,7 @@
 	<?php if ( in_array( get_site_option( 'registration' ), array( 'all', 'blog' ) ) ) : ?>
 		<tr>
 			<th scope="row" colspan="2" class="th-full">
-				<a href="<?php echo apply_filters( 'wp_signup_location', network_home_url( 'wp-signup.php' ) ); ?>"><?php _e( 'Create a New Site' ); ?></a>
+				<a href="<?php echo apply_filters( 'wp_signup_location', network_site_url( 'wp-signup.php' ) ); ?>"><?php _e( 'Create a New Site' ); ?></a>
 			</th>
 		</tr>
 	<?php endif; ?>
@@ -623,15 +600,6 @@
 	<?php
 }
 
-function ms_deprecated_blogs_file() {
-	if ( ! is_super_admin() )
-		return;
-	if ( ! file_exists( WP_CONTENT_DIR . '/blogs.php' ) )
-		return;
-	echo '<div class="update-nag">' . sprintf( __( 'The <code>%1$s</code> file is deprecated. Please remove it and update your server rewrite rules to use <code>%2$s</code> instead.' ), 'wp-content/blogs.php', 'wp-includes/ms-files.php' ) . '</div>';
-}
-add_action( 'network_admin_notices', 'ms_deprecated_blogs_file' );
-
 /**
  * Grants super admin privileges.
  *
@@ -650,8 +618,8 @@
 	// Directly fetch site_admins instead of using get_super_admins()
 	$super_admins = get_site_option( 'site_admins', array( 'admin' ) );
 
-	$user = new WP_User( $user_id );
-	if ( ! in_array( $user->user_login, $super_admins ) ) {
+	$user = get_userdata( $user_id );
+	if ( $user && ! in_array( $user->user_login, $super_admins ) ) {
 		$super_admins[] = $user->user_login;
 		update_site_option( 'site_admins' , $super_admins );
 		do_action( 'granted_super_admin', $user_id );
@@ -678,8 +646,8 @@
 	// Directly fetch site_admins instead of using get_super_admins()
 	$super_admins = get_site_option( 'site_admins', array( 'admin' ) );
 
-	$user = new WP_User( $user_id );
-	if ( $user->user_email != get_site_option( 'admin_email' ) ) {
+	$user = get_userdata( $user_id );
+	if ( $user && $user->user_email != get_site_option( 'admin_email' ) ) {
 		if ( false !== ( $key = array_search( $user->user_login, $super_admins ) ) ) {
 			unset( $super_admins[$key] );
 			update_site_option( 'site_admins', $super_admins );
@@ -720,7 +688,6 @@
 <script type="text/javascript">
 //<![CDATA[
 var tb_pathToImage = "../../wp-includes/js/thickbox/loadingAnimation.gif";
-var tb_closeImage = "../../wp-includes/js/thickbox/tb-close.png";
 //]]>
 </script>
 <?php
--- a/web/wp-admin/includes/nav-menu.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-admin/includes/nav-menu.php	Wed Dec 19 17:46:52 2012 -0800
@@ -247,11 +247,12 @@
 		$output .= $indent . '<li>';
 		$output .= '<label class="menu-item-title">';
 		$output .= '<input type="checkbox" class="menu-item-checkbox';
-		if ( ! empty( $item->_add_to_top ) ) {
+		if ( property_exists( $item, 'front_or_home' ) && $item->front_or_home ) {
+			$title = sprintf( _x( 'Home: %s', 'nav menu front page title' ), $item->post_title );
 			$output .= ' add-to-top';
 		}
 		$output .= '" name="menu-item[' . $possible_object_id . '][menu-item-object-id]" value="'. esc_attr( $item->object_id ) .'" /> ';
-		$output .= empty( $item->label ) ? esc_html( $item->title ) : esc_html( $item->label );
+		$output .= isset( $title ) ? esc_html( $title ) : esc_html( $item->title );
 		$output .= '</label>';
 
 		// Menu item hidden fields
@@ -511,8 +512,8 @@
 	}
 	?>
 	<p class="button-controls">
-		<img class="waiting" src="<?php echo esc_url( admin_url( 'images/wpspin_light.gif' ) ); ?>" alt="" />
-		<?php submit_button( __( 'Save' ), 'primary', 'nav-menu-locations', false, disabled( $nav_menu_selected_id, 0, false ) ); ?>
+		<?php submit_button( __( 'Save' ), 'primary right', 'nav-menu-locations', false, disabled( $nav_menu_selected_id, 0, false ) ); ?>
+		<span class="spinner"></span>
 	</p>
 	<?php
 }
@@ -560,8 +561,8 @@
 
 		<p class="button-controls">
 			<span class="add-to-menu">
-				<img class="waiting" src="<?php echo esc_url( admin_url( 'images/wpspin_light.gif' ) ); ?>" alt="" />
-				<input type="submit"<?php disabled( $nav_menu_selected_id, 0 ); ?> class="button-secondary submit-add-to-menu" value="<?php esc_attr_e('Add to Menu'); ?>" name="add-custom-menu-item" id="submit-customlinkdiv" />
+				<input type="submit"<?php disabled( $nav_menu_selected_id, 0 ); ?> class="button-secondary submit-add-to-menu right" value="<?php esc_attr_e('Add to Menu'); ?>" name="add-custom-menu-item" id="submit-customlinkdiv" />
+				<span class="spinner"></span>
 			</span>
 		</p>
 
@@ -692,11 +693,11 @@
 			?>
 			<p class="quick-search-wrap">
 				<input type="search" class="quick-search input-with-default-title" title="<?php esc_attr_e('Search'); ?>" value="<?php echo $searched; ?>" name="quick-search-posttype-<?php echo $post_type_name; ?>" />
-				<img class="waiting" src="<?php echo esc_url( admin_url( 'images/wpspin_light.gif' ) ); ?>" alt="" />
-				<?php submit_button( __( 'Search' ), 'quick-search-submit button-secondary hide-if-js', 'submit', false, array( 'id' => 'submit-quick-search-posttype-' . $post_type_name ) ); ?>
+				<span class="spinner"></span>
+				<?php submit_button( __( 'Search' ), 'button-small quick-search-submit button-secondary hide-if-js', 'submit', false, array( 'id' => 'submit-quick-search-posttype-' . $post_type_name ) ); ?>
 			</p>
 
-			<ul id="<?php echo $post_type_name; ?>-search-checklist" class="list:<?php echo $post_type_name?> categorychecklist form-no-clear">
+			<ul id="<?php echo $post_type_name; ?>-search-checklist" data-wp-lists="list:<?php echo $post_type_name?>" class="categorychecklist form-no-clear">
 			<?php if ( ! empty( $search_results ) && ! is_wp_error( $search_results ) ) : ?>
 				<?php
 				$args['walker'] = $walker;
@@ -718,7 +719,7 @@
 					<?php echo $page_links; ?>
 				</div>
 			<?php endif; ?>
-			<ul id="<?php echo $post_type_name; ?>checklist" class="list:<?php echo $post_type_name?> categorychecklist form-no-clear">
+			<ul id="<?php echo $post_type_name; ?>checklist" data-wp-lists="list:<?php echo $post_type_name?>" class="categorychecklist form-no-clear">
 				<?php
 				$args['walker'] = $walker;
 
@@ -727,13 +728,12 @@
 					$front_page = 'page' == get_option('show_on_front') ? (int) get_option( 'page_on_front' ) : 0;
 					if ( ! empty( $front_page ) ) {
 						$front_page_obj = get_post( $front_page );
-						$front_page_obj->_add_to_top = true;
-						$front_page_obj->label = sprintf( _x('Home: %s', 'nav menu front page title'), $front_page_obj->post_title );
+						$front_page_obj->front_or_home = true;
 						array_unshift( $posts, $front_page_obj );
 					} else {
 						$_nav_menu_placeholder = ( 0 > $_nav_menu_placeholder ) ? intval($_nav_menu_placeholder) - 1 : -1;
 						array_unshift( $posts, (object) array(
-							'_add_to_top' => true,
+							'front_or_home' => true,
 							'ID' => 0,
 							'object_id' => $_nav_menu_placeholder,
 							'post_content' => '',
@@ -779,8 +779,8 @@
 			</span>
 
 			<span class="add-to-menu">
-				<img class="waiting" src="<?php echo esc_url( admin_url( 'images/wpspin_light.gif' ) ); ?>" alt="" />
-				<input type="submit"<?php disabled( $nav_menu_selected_id, 0 ); ?> class="button-secondary submit-add-to-menu" value="<?php esc_attr_e('Add to Menu'); ?>" name="add-post-type-menu-item" id="submit-posttype-<?php echo $post_type_name; ?>" />
+				<input type="submit"<?php disabled( $nav_menu_selected_id, 0 ); ?> class="button-secondary submit-add-to-menu right" value="<?php esc_attr_e('Add to Menu'); ?>" name="add-post-type-menu-item" id="submit-posttype-<?php echo $post_type_name; ?>" />
+				<span class="spinner"></span>
 			</span>
 		</p>
 
@@ -896,7 +896,7 @@
 					<?php echo $page_links; ?>
 				</div>
 			<?php endif; ?>
-			<ul id="<?php echo $taxonomy_name; ?>checklist" class="list:<?php echo $taxonomy_name?> categorychecklist form-no-clear">
+			<ul id="<?php echo $taxonomy_name; ?>checklist" data-wp-lists="list:<?php echo $taxonomy_name?>" class="categorychecklist form-no-clear">
 				<?php
 				$args['walker'] = $walker;
 				echo walk_nav_menu_tree( array_map('wp_setup_nav_menu_item', $terms), 0, (object) $args );
@@ -923,11 +923,11 @@
 			?>
 			<p class="quick-search-wrap">
 				<input type="search" class="quick-search input-with-default-title" title="<?php esc_attr_e('Search'); ?>" value="<?php echo $searched; ?>" name="quick-search-taxonomy-<?php echo $taxonomy_name; ?>" />
-				<img class="waiting" src="<?php echo esc_url( admin_url( 'images/wpspin_light.gif' ) ); ?>" alt="" />
-				<?php submit_button( __( 'Search' ), 'quick-search-submit button-secondary hide-if-js', 'submit', false, array( 'id' => 'submit-quick-search-taxonomy-' . $taxonomy_name ) ); ?>
+				<span class="spinner"></span>
+				<?php submit_button( __( 'Search' ), 'button-small quick-search-submit button-secondary hide-if-js', 'submit', false, array( 'id' => 'submit-quick-search-taxonomy-' . $taxonomy_name ) ); ?>
 			</p>
 
-			<ul id="<?php echo $taxonomy_name; ?>-search-checklist" class="list:<?php echo $taxonomy_name?> categorychecklist form-no-clear">
+			<ul id="<?php echo $taxonomy_name; ?>-search-checklist" data-wp-lists="list:<?php echo $taxonomy_name?>" class="categorychecklist form-no-clear">
 			<?php if ( ! empty( $search_results ) && ! is_wp_error( $search_results ) ) : ?>
 				<?php
 				$args['walker'] = $walker;
@@ -955,8 +955,8 @@
 			</span>
 
 			<span class="add-to-menu">
-				<img class="waiting" src="<?php echo esc_url( admin_url( 'images/wpspin_light.gif' ) ); ?>" alt="" />
-				<input type="submit"<?php disabled( $nav_menu_selected_id, 0 ); ?> class="button-secondary submit-add-to-menu" value="<?php esc_attr_e('Add to Menu'); ?>" name="add-taxonomy-menu-item" id="submit-taxonomy-<?php echo $taxonomy_name; ?>" />
+				<input type="submit"<?php disabled( $nav_menu_selected_id, 0 ); ?> class="button-secondary submit-add-to-menu right" value="<?php esc_attr_e('Add to Menu'); ?>" name="add-taxonomy-menu-item" id="submit-taxonomy-<?php echo $taxonomy_name; ?>" />
+				<span class="spinner"></span>
 			</span>
 		</p>
 
@@ -1150,7 +1150,7 @@
  */
 function _wp_delete_orphaned_draft_menu_items() {
 	global $wpdb;
-	$delete_timestamp = time() - (60*60*24*EMPTY_TRASH_DAYS);
+	$delete_timestamp = time() - ( DAY_IN_SECONDS * EMPTY_TRASH_DAYS );
 
 	// delete orphaned draft menu items
 	$menu_items_to_delete = $wpdb->get_col($wpdb->prepare("SELECT ID FROM $wpdb->posts AS p LEFT JOIN $wpdb->postmeta AS m ON p.ID = m.post_id WHERE post_type = 'nav_menu_item' AND post_status = 'draft' AND meta_key = '_menu_item_orphaned' AND meta_value < '%d'", $delete_timestamp ) );
--- a/web/wp-admin/includes/plugin-install.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-admin/includes/plugin-install.php	Wed Dec 19 17:46:52 2012 -0800
@@ -74,7 +74,7 @@
 	if ( is_wp_error($tags) )
 		return $tags;
 
-	set_site_transient('poptags_' . $key, $tags, 10800); // 3 * 60 * 60 = 10800
+	set_site_transient( 'poptags_' . $key, $tags, 3 * HOUR_IN_SECONDS );
 
 	return $tags;
 }
@@ -128,7 +128,7 @@
 			<option value="tag"<?php selected('tag', $type) ?>><?php _ex('Tag', 'Plugin Installer'); ?></option>
 		</select>
 		<?php endif; ?>
-		<input type="search" name="s" value="<?php echo esc_attr($term) ?>" />
+		<input type="search" name="s" value="<?php echo esc_attr($term) ?>" autofocus="autofocus" />
 		<label class="screen-reader-text" for="plugin-search-input"><?php _e('Search Plugins'); ?></label>
 		<?php submit_button( __( 'Search Plugins' ), 'button', 'plugin-search-input', false ); ?>
 	</form><?php
@@ -142,19 +142,39 @@
  */
 function install_plugins_upload( $page = 1 ) {
 ?>
-	<h4><?php _e('Install a plugin in .zip format') ?></h4>
-	<p class="install-help"><?php _e('If you have a plugin in a .zip format, you may install it by uploading it here.') ?></p>
-	<form method="post" enctype="multipart/form-data" action="<?php echo self_admin_url('update.php?action=upload-plugin') ?>">
-		<?php wp_nonce_field( 'plugin-upload') ?>
+	<h4><?php _e('Install a plugin in .zip format'); ?></h4>
+	<p class="install-help"><?php _e('If you have a plugin in a .zip format, you may install it by uploading it here.'); ?></p>
+	<form method="post" enctype="multipart/form-data" class="wp-upload-form" action="<?php echo self_admin_url('update.php?action=upload-plugin'); ?>">
+		<?php wp_nonce_field( 'plugin-upload'); ?>
 		<label class="screen-reader-text" for="pluginzip"><?php _e('Plugin zip file'); ?></label>
 		<input type="file" id="pluginzip" name="pluginzip" />
-		<input type="submit" class="button" value="<?php esc_attr_e('Install Now') ?>" />
+		<?php submit_button( __( 'Install Now' ), 'button', 'install-plugin-submit', false ); ?>
 	</form>
 <?php
 }
 add_action('install_plugins_upload', 'install_plugins_upload', 10, 1);
 
 /**
+ * Show a username form for the favorites page
+ * @since 3.5.0
+ *
+ */
+function install_plugins_favorites_form() {
+	$user = ! empty( $_GET['user'] ) ? stripslashes( $_GET['user'] ) : get_user_option( 'wporg_favorites' );
+	?>
+	<p class="install-help"><?php _e( 'If you have marked plugins as favorites on WordPress.org, you can browse them here.' ); ?></p>
+	<form method="get" action="">
+		<input type="hidden" name="tab" value="favorites" />
+		<p>
+			<label for="user"><?php _e( 'Your WordPress.org username:' ); ?></label>
+			<input type="search" id="user" name="user" value="<?php echo esc_attr( $user ); ?>" />
+			<input type="submit" class="button" value="<?php esc_attr_e( 'Get Favorites' ); ?>" />
+		</p>
+	</form>
+	<?php
+}
+
+/**
  * Display plugin content based on plugin list.
  *
  * @since 2.7.0
@@ -162,12 +182,16 @@
 function display_plugins_table() {
 	global $wp_list_table;
 
+	if ( current_filter() == 'install_plugins_favorites' && empty( $_GET['user'] ) && ! get_user_option( 'wporg_favorites' ) )
+			return;
+
 	$wp_list_table->display();
 }
-add_action('install_plugins_search', 'display_plugins_table');
-add_action('install_plugins_featured', 'display_plugins_table');
-add_action('install_plugins_popular', 'display_plugins_table');
-add_action('install_plugins_new', 'display_plugins_table');
+add_action( 'install_plugins_search',    'display_plugins_table' );
+add_action( 'install_plugins_featured',  'display_plugins_table' );
+add_action( 'install_plugins_popular',   'display_plugins_table' );
+add_action( 'install_plugins_new',       'display_plugins_table' );
+add_action( 'install_plugins_favorites', 'display_plugins_table' );
 
 /**
  * Determine the status we can perform on a plugin.
--- a/web/wp-admin/includes/plugin.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-admin/includes/plugin.php	Wed Dec 19 17:46:52 2012 -0800
@@ -573,9 +573,9 @@
  * @since 2.5.0
  *
  * @param string|array $plugins Single plugin or list of plugins to deactivate.
+ * @param bool $silent Prevent calling deactivation hooks. Default is false.
  * @param mixed $network_wide Whether to deactivate the plugin for all sites in the network.
  * 	A value of null (the default) will deactivate plugins for both the site and the network.
- * @param bool $silent Prevent calling deactivation hooks. Default is false.
  */
 function deactivate_plugins( $plugins, $silent = false, $network_wide = null ) {
 	if ( is_multisite() )
@@ -606,7 +606,7 @@
 			$key = array_search( $plugin, $current );
 			if ( false !== $key ) {
 				$do_blog = true;
-				array_splice( $current, $key, 1 );
+				unset( $current[ $key ] );
 			}
 		}
 
@@ -884,7 +884,8 @@
  * @param string $capability The capability required for this menu to be displayed to the user.
  * @param string $menu_slug The slug name to refer to this menu by (should be unique for this menu)
  * @param callback $function The function to be called to output the content for this page.
- * @param string $icon_url The url to the icon to be used for this menu
+ * @param string $icon_url The url to the icon to be used for this menu. Using 'none' would leave div.wp-menu-image empty
+ *                         so an icon can be added as background with CSS.
  * @param int $position The position in the menu order this one should appear
  *
  * @return string The resulting page's hook_suffix
@@ -901,12 +902,15 @@
 	if ( !empty( $function ) && !empty( $hookname ) && current_user_can( $capability ) )
 		add_action( $hookname, $function );
 
-	if ( empty($icon_url) )
-		$icon_url = esc_url( admin_url( 'images/generic.png' ) );
-	elseif ( is_ssl() && 0 === strpos($icon_url, 'http://') )
-		$icon_url = 'https://' . substr($icon_url, 7);
+	if ( empty($icon_url) ) {
+		$icon_url = 'none';
+		$icon_class = 'menu-icon-generic ';
+	} else {
+		$icon_url = set_url_scheme( $icon_url );
+		$icon_class = '';
+	}
 
-	$new_menu = array( $menu_title, $capability, $menu_slug, $page_title, 'menu-top ' . $hookname, $hookname, $icon_url );
+	$new_menu = array( $menu_title, $capability, $menu_slug, $page_title, 'menu-top ' . $icon_class . $hookname, $hookname, $icon_url );
 
 	if ( null === $position )
 		$menu[] = $new_menu;
@@ -1624,10 +1628,15 @@
 	global $new_whitelist_options;
 
 	if ( 'misc' == $option_group ) {
-		_deprecated_argument( __FUNCTION__, '3.0', __( 'The miscellaneous options group has been removed. Use another settings group.' ) );
+		_deprecated_argument( __FUNCTION__, '3.0', sprintf( __( 'The "%s" options group has been removed. Use another settings group.' ), 'misc' ) );
 		$option_group = 'general';
 	}
 
+	if ( 'privacy' == $option_group ) {
+		_deprecated_argument( __FUNCTION__, '3.5', sprintf( __( 'The "%s" options group has been removed. Use another settings group.' ), 'privacy' ) );
+		$option_group = 'reading';
+	}
+
 	$new_whitelist_options[ $option_group ][] = $option_name;
 	if ( $sanitize_callback != '' )
 		add_filter( "sanitize_option_{$option_name}", $sanitize_callback );
@@ -1647,10 +1656,15 @@
 	global $new_whitelist_options;
 
 	if ( 'misc' == $option_group ) {
-		_deprecated_argument( __FUNCTION__, '3.0', __( 'The miscellaneous options group has been removed. Use another settings group.' ) );
+		_deprecated_argument( __FUNCTION__, '3.0', sprintf( __( 'The "%s" options group has been removed. Use another settings group.' ), 'misc' ) );
 		$option_group = 'general';
 	}
 
+	if ( 'privacy' == $option_group ) {
+		_deprecated_argument( __FUNCTION__, '3.5', sprintf( __( 'The "%s" options group has been removed. Use another settings group.' ), 'privacy' ) );
+		$option_group = 'reading';
+	}
+
 	$pos = array_search( $option_name, (array) $new_whitelist_options );
 	if ( $pos !== false )
 		unset( $new_whitelist_options[ $option_group ][ $pos ] );
--- a/web/wp-admin/includes/post.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-admin/includes/post.php	Wed Dec 19 17:46:52 2012 -0800
@@ -26,6 +26,20 @@
 	if ( $update )
 		$post_data['ID'] = (int) $post_data['post_ID'];
 
+	$ptype = get_post_type_object( $post_data['post_type'] );
+
+	if ( $update && ! current_user_can( $ptype->cap->edit_post, $post_data['ID'] ) ) {
+		if ( 'page' == $post_data['post_type'] )
+			return new WP_Error( 'edit_others_pages', __( 'You are not allowed to edit pages as this user.' ) );
+		else
+			return new WP_Error( 'edit_others_posts', __( 'You are not allowed to edit posts as this user.' ) );
+	} elseif ( ! $update && ! current_user_can( $ptype->cap->create_posts ) ) {
+		if ( 'page' == $post_data['post_type'] )
+			return new WP_Error( 'edit_others_pages', __( 'You are not allowed to create pages as this user.' ) );
+		else
+			return new WP_Error( 'edit_others_posts', __( 'You are not allowed to create posts as this user.' ) );
+	}
+
 	if ( isset( $post_data['content'] ) )
 		$post_data['post_content'] = $post_data['content'];
 
@@ -51,21 +65,13 @@
 		}
 	}
 
-	$ptype = get_post_type_object( $post_data['post_type'] );
-	if ( isset($post_data['user_ID']) && ($post_data['post_author'] != $post_data['user_ID']) ) {
-		if ( !current_user_can( $ptype->cap->edit_others_posts ) ) {
-			if ( 'page' == $post_data['post_type'] ) {
-				return new WP_Error( 'edit_others_pages', $update ?
-					__( 'You are not allowed to edit pages as this user.' ) :
-					__( 'You are not allowed to create pages as this user.' )
-				);
-			} else {
-				return new WP_Error( 'edit_others_posts', $update ?
-					__( 'You are not allowed to edit posts as this user.' ) :
-					__( 'You are not allowed to post as this user.' )
-				);
-			}
-		}
+	if ( ! $update && isset( $post_data['user_ID'] ) && ( $post_data['post_author'] != $post_data['user_ID'] )
+		 && ! current_user_can( $ptype->cap->edit_others_posts ) ) {
+
+		if ( 'page' == $post_data['post_type'] )
+			return new WP_Error( 'edit_others_pages', __( 'You are not allowed to create pages as this user.' ) );
+		else
+			return new WP_Error( 'edit_others_posts', __( 'You are not allowed to create posts as this user.' ) );
 	}
 
 	// What to do based on which button they pressed
@@ -123,6 +129,10 @@
 		$mn = ($mn > 59 ) ? $mn -60 : $mn;
 		$ss = ($ss > 59 ) ? $ss -60 : $ss;
 		$post_data['post_date'] = sprintf( "%04d-%02d-%02d %02d:%02d:%02d", $aa, $mm, $jj, $hh, $mn, $ss );
+		$valid_date = wp_checkdate( $mm, $jj, $aa, $post_data['post_date'] );
+		if ( !$valid_date ) {
+			return new WP_Error( 'invalid_date', __( 'Whoops, the provided date is invalid.' ) );
+		}
 		$post_data['post_date_gmt'] = get_gmt_from_date( $post_data['post_date'] );
 	}
 
@@ -158,21 +168,12 @@
 			wp_die( __('You are not allowed to edit this post.' ));
 	}
 
-	// Autosave shouldn't save too soon after a real save
-	if ( 'autosave' == $post_data['action'] ) {
-		$post =& get_post( $post_ID );
-		$now = time();
-		$then = strtotime($post->post_date_gmt . ' +0000');
-		$delta = AUTOSAVE_INTERVAL / 2;
-		if ( ($now - $then) < $delta )
-			return $post_ID;
-	}
-
 	$post_data = _wp_translate_postdata( true, $post_data );
 	if ( is_wp_error($post_data) )
 		wp_die( $post_data->get_error_message() );
-	if ( 'autosave' != $post_data['action'] && 'auto-draft' == $post_data['post_status'] )
+	if ( ( empty( $post_data['action'] ) || 'autosave' != $post_data['action'] ) && 'auto-draft' == $post_data['post_status'] ) {
 		$post_data['post_status'] = 'draft';
+	}
 
 	if ( isset($post_data['visibility']) ) {
 		switch ( $post_data['visibility'] ) {
@@ -223,6 +224,21 @@
 		}
 	}
 
+	// Attachment stuff
+	if ( 'attachment' == $post_data['post_type'] ) {
+		if ( isset( $post_data[ '_wp_attachment_image_alt' ] ) ) {
+			$image_alt = get_post_meta( $post_ID, '_wp_attachment_image_alt', true );
+			if ( $image_alt != stripslashes( $post_data['_wp_attachment_image_alt'] ) ) {
+				$image_alt = wp_strip_all_tags( stripslashes( $post_data['_wp_attachment_image_alt'] ), true );
+				// update_meta expects slashed
+				update_post_meta( $post_ID, '_wp_attachment_image_alt', addslashes( $image_alt ) );
+			}
+		}
+
+		$attachment_data = isset( $post_data['attachments'][ $post_ID ] ) ? $post_data['attachments'][ $post_ID ] : array();
+		$post_data = apply_filters( 'attachment_fields_to_save', $post_data, $attachment_data );
+	}
+
 	add_meta( $post_ID );
 
 	update_post_meta( $post_ID, '_edit_last', $GLOBALS['current_user']->ID );
@@ -399,7 +415,7 @@
  * @since 2.0.0
  *
  * @param string $post_type A post type string, defaults to 'post'.
- * @return object stdClass object containing all the default post data as attributes
+ * @return WP_Post Post object containing all the default post data as attributes
  */
 function get_default_post_to_edit( $post_type = 'post', $create_in_db = false ) {
 	global $wpdb;
@@ -439,6 +455,7 @@
 		$post->page_template = 'default';
 		$post->post_parent = 0;
 		$post->menu_order = 0;
+		$post = new WP_Post( $post );
 	}
 
 	$post->post_content = apply_filters( 'default_content', $post_content, $post );
@@ -450,37 +467,6 @@
 }
 
 /**
- * Get the default page information to use.
- *
- * @since 2.5.0
- *
- * @return object stdClass object containing all the default post data as attributes
- */
-function get_default_page_to_edit() {
-	$page = get_default_post_to_edit();
-	$page->post_type = 'page';
-	return $page;
-}
-
-/**
- * Get an existing post and format it for editing.
- *
- * @since 2.0.0
- *
- * @param unknown_type $id
- * @return unknown
- */
-function get_post_to_edit( $id ) {
-
-	$post = get_post( $id, OBJECT, 'edit' );
-
-	if ( $post->post_type == 'page' )
-		$post->page_template = get_post_meta( $id, '_wp_page_template', true );
-
-	return $post;
-}
-
-/**
  * Determine if a post exists based on title, content, and date
  *
  * @since 2.0.0
@@ -516,7 +502,7 @@
 	}
 
 	if ( !empty ( $args ) )
-		return $wpdb->get_var( $wpdb->prepare($query, $args) );
+		return (int) $wpdb->get_var( $wpdb->prepare($query, $args) );
 
 	return 0;
 }
@@ -745,7 +731,7 @@
  * @return unknown
  */
 function _fix_attachment_links( $post_ID ) {
-	$post = & get_post( $post_ID, ARRAY_A );
+	$post = get_post( $post_ID, ARRAY_A );
 	$content = $post['post_content'];
 
 	// quick sanity check, don't run if no pretty permalinks or post is not published
@@ -893,23 +879,6 @@
 }
 
 /**
- * Get default post mime types
- *
- * @since 2.9.0
- *
- * @return array
- */
-function get_post_mime_types() {
-	$post_mime_types = array(	//	array( adj, noun )
-		'image' => array(__('Images'), __('Manage Images'), _n_noop('Image <span class="count">(%s)</span>', 'Images <span class="count">(%s)</span>')),
-		'audio' => array(__('Audio'), __('Manage Audio'), _n_noop('Audio <span class="count">(%s)</span>', 'Audio <span class="count">(%s)</span>')),
-		'video' => array(__('Video'), __('Manage Video'), _n_noop('Video <span class="count">(%s)</span>', 'Video <span class="count">(%s)</span>')),
-	);
-
-	return apply_filters('post_mime_types', $post_mime_types);
-}
-
-/**
  * {@internal Missing Short Description}}
  *
  * @since 2.5.0
@@ -925,12 +894,14 @@
 }
 
 /**
- * {@internal Missing Short Description}}
+ * Executes a query for attachments. An array of WP_Query arguments
+ * can be passed in, which will override the arguments set by this function.
  *
  * @since 2.5.0
+ * @uses apply_filters() Calls 'upload_per_page' on posts_per_page argument
  *
- * @param unknown_type $q
- * @return unknown
+ * @param array|bool $q Array of query variables to use to build the query or false to use $_GET superglobal.
+ * @return array
  */
 function wp_edit_attachments_query( $q = false ) {
 	if ( false === $q )
@@ -1010,7 +981,7 @@
  * @return array With two entries of type string
  */
 function get_sample_permalink($id, $title = null, $name = null) {
-	$post = &get_post($id);
+	$post = get_post($id);
 	if ( !$post->ID )
 		return array('', '');
 
@@ -1063,24 +1034,22 @@
 }
 
 /**
- * sample permalink html
- *
- * intended to be used for the inplace editor of the permalink post slug on in the post (and page?) editor.
+ * Returns the HTML of the sample permalink slug editor.
  *
  * @since 2.5.0
  *
  * @param int|object $id Post ID or post object.
- * @param string $new_title (optional) New title
- * @param string $new_slug (optional) New slug
- * @return string intended to be used for the inplace editor of the permalink post slug on in the post (and page?) editor.
+ * @param string $new_title Optional. New title.
+ * @param string $new_slug Optional. New slug.
+ * @return string The HTML of the sample permalink slug editor.
  */
 function get_sample_permalink_html( $id, $new_title = null, $new_slug = null ) {
 	global $wpdb;
-	$post = &get_post($id);
+	$post = get_post($id);
 
 	list($permalink, $post_name) = get_sample_permalink($post->ID, $new_title, $new_slug);
 
-	if ( 'publish' == $post->post_status ) {
+	if ( 'publish' == get_post_status( $post ) ) {
 		$ptype = get_post_type_object($post->post_type);
 		$view_post = $ptype->labels->view_item;
 		$title = __('Click to edit this part of the permalink');
@@ -1089,11 +1058,11 @@
 	}
 
 	if ( false === strpos($permalink, '%postname%') && false === strpos($permalink, '%pagename%') ) {
-		$return = '<strong>' . __('Permalink:') . "</strong>\n" . '<span id="sample-permalink">' . $permalink . "</span>\n";
+		$return = '<strong>' . __('Permalink:') . "</strong>\n" . '<span id="sample-permalink" tabindex="-1">' . $permalink . "</span>\n";
 		if ( '' == get_option( 'permalink_structure' ) && current_user_can( 'manage_options' ) && !( 'page' == get_option('show_on_front') && $id == get_option('page_on_front') ) )
-			$return .= '<span id="change-permalinks"><a href="options-permalink.php" class="button" target="_blank">' . __('Change Permalinks') . "</a></span>\n";
-		if ( isset($view_post) )
-			$return .= "<span id='view-post-btn'><a href='$permalink' class='button' target='_blank'>$view_post</a></span>\n";
+			$return .= '<span id="change-permalinks"><a href="options-permalink.php" class="button button-small" target="_blank">' . __('Change Permalinks') . "</a></span>\n";
+		if ( isset( $view_post ) )
+			$return .= "<span id='view-post-btn'><a href='$permalink' class='button button-small'>$view_post</a></span>\n";
 
 		$return = apply_filters('get_sample_permalink_html', $return, $id, $new_title, $new_slug);
 
@@ -1118,12 +1087,12 @@
 	$display_link = str_replace(array('%pagename%','%postname%'), $post_name_html, $permalink);
 	$view_link = str_replace(array('%pagename%','%postname%'), $post_name, $permalink);
 	$return =  '<strong>' . __('Permalink:') . "</strong>\n";
-	$return .= '<span id="sample-permalink">' . $display_link . "</span>\n";
+	$return .= '<span id="sample-permalink" tabindex="-1">' . $display_link . "</span>\n";
 	$return .= '&lrm;'; // Fix bi-directional text display defect in RTL languages.
-	$return .= '<span id="edit-slug-buttons"><a href="#post_name" class="edit-slug button hide-if-no-js" onclick="editPermalink(' . $id . '); return false;">' . __('Edit') . "</a></span>\n";
+	$return .= '<span id="edit-slug-buttons"><a href="#post_name" class="edit-slug button button-small hide-if-no-js" onclick="editPermalink(' . $id . '); return false;">' . __('Edit') . "</a></span>\n";
 	$return .= '<span id="editable-post-name-full">' . $post_name . "</span>\n";
 	if ( isset($view_post) )
-		$return .= "<span id='view-post-btn'><a href='$view_link' class='button' target='_blank'>$view_post</a></span>\n";
+		$return .= "<span id='view-post-btn'><a href='$view_link' class='button button-small'>$view_post</a></span>\n";
 
 	$return = apply_filters('get_sample_permalink_html', $return, $id, $new_title, $new_slug);
 
@@ -1136,16 +1105,15 @@
  * @since 2.9.0
  *
  * @param int $thumbnail_id ID of the attachment used for thumbnail
- * @param int $post_id ID of the post associated with the thumbnail, defaults to global $post_ID
+ * @param mixed $post The post ID or object associated with the thumbnail, defaults to global $post.
  * @return string html
  */
-function _wp_post_thumbnail_html( $thumbnail_id = null, $post_id = null ) {
-	global $content_width, $_wp_additional_image_sizes, $post_ID;
+function _wp_post_thumbnail_html( $thumbnail_id = null, $post = null ) {
+	global $content_width, $_wp_additional_image_sizes;
 
-	if ( empty( $post_id ) )
-		$post_id = $post_ID;
+	$post = get_post( $post );
 
-	$upload_iframe_src = esc_url( get_upload_iframe_src('image', $post_id) );
+	$upload_iframe_src = esc_url( get_upload_iframe_src('image', $post->ID ) );
 	$set_thumbnail_link = '<p class="hide-if-no-js"><a title="' . esc_attr__( 'Set featured image' ) . '" href="%s" id="set-post-thumbnail" class="thickbox">%s</a></p>';
 	$content = sprintf( $set_thumbnail_link, $upload_iframe_src, esc_html__( 'Set featured image' ) );
 
@@ -1157,14 +1125,14 @@
 		else
 			$thumbnail_html = wp_get_attachment_image( $thumbnail_id, 'post-thumbnail' );
 		if ( !empty( $thumbnail_html ) ) {
-			$ajax_nonce = wp_create_nonce( "set_post_thumbnail-$post_id" );
+			$ajax_nonce = wp_create_nonce( 'set_post_thumbnail-' . $post->ID );
 			$content = sprintf( $set_thumbnail_link, $upload_iframe_src, $thumbnail_html );
 			$content .= '<p class="hide-if-no-js"><a href="#" id="remove-post-thumbnail" onclick="WPRemoveThumbnail(\'' . $ajax_nonce . '\');return false;">' . esc_html__( 'Remove featured image' ) . '</a></p>';
 		}
 		$content_width = $old_content_width;
 	}
 
-	return apply_filters( 'admin_post_thumbnail_html', $content );
+	return apply_filters( 'admin_post_thumbnail_html', $content, $post->ID );
 }
 
 /**
@@ -1222,8 +1190,7 @@
  * @return none
  */
 function _admin_notice_post_locked() {
-	global $post;
-
+	$post = get_post();
 	$lock = explode( ':', get_post_meta( $post->ID, '_edit_lock', true ) );
 	$user = isset( $lock[1] ) ? $lock[1] : get_post_meta( $post->ID, '_edit_last', true );
 	$last_user = get_userdata( $user );
--- a/web/wp-admin/includes/schema.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-admin/includes/schema.php	Wed Dec 19 17:46:52 2012 -0800
@@ -17,12 +17,7 @@
  * @global string
  * @name $charset_collate
  */
-$charset_collate = '';
-
-if ( ! empty( $wpdb->charset ) )
-	$charset_collate = "DEFAULT CHARACTER SET $wpdb->charset";
-if ( ! empty( $wpdb->collate ) )
-	$charset_collate .= " COLLATE $wpdb->collate";
+$charset_collate = $wpdb->get_charset_collate();
 
 /**
  * Retrieve the SQL for creating database tables.
@@ -382,7 +377,6 @@
 	'default_comment_status' => 'open',
 	'default_ping_status' => 'open',
 	'default_pingback_flag' => 1,
-	'default_post_edit_rows' => 20,
 	'posts_per_page' => 10,
 	/* translators: default date format, see http://php.net/date */
 	'date_format' => __('F j, Y'),
@@ -449,8 +443,6 @@
 
 	// 2.6
 	'avatar_default' => 'mystery',
-	'enable_app' => 0,
-	'enable_xmlrpc' => 0,
 
 	// 2.7
 	'large_size_w' => 1024,
@@ -475,17 +467,15 @@
 	// 2.8
 	'timezone_string' => $timezone_string,
 
-	// 2.9
-	'embed_autourls' => 1,
-	'embed_size_w' => '',
-	'embed_size_h' => 600,
-
 	// 3.0
 	'page_for_posts' => 0,
 	'page_on_front' => 0,
 
 	// 3.1
 	'default_post_format' => 0,
+
+	// 3.5
+	'link_manager_enabled' => 0,
 	);
 
 	// 3.3
@@ -531,7 +521,23 @@
 	if ( !__get_option('home') ) update_option('home', $guessurl);
 
 	// Delete unused options
-	$unusedoptions = array ('blodotgsping_url', 'bodyterminator', 'emailtestonly', 'phoneemail_separator', 'smilies_directory', 'subjectprefix', 'use_bbcode', 'use_blodotgsping', 'use_phoneemail', 'use_quicktags', 'use_weblogsping', 'weblogs_cache_file', 'use_preview', 'use_htmltrans', 'smilies_directory', 'fileupload_allowedusers', 'use_phoneemail', 'default_post_status', 'default_post_category', 'archive_mode', 'time_difference', 'links_minadminlevel', 'links_use_adminlevels', 'links_rating_type', 'links_rating_char', 'links_rating_ignore_zero', 'links_rating_single_image', 'links_rating_image0', 'links_rating_image1', 'links_rating_image2', 'links_rating_image3', 'links_rating_image4', 'links_rating_image5', 'links_rating_image6', 'links_rating_image7', 'links_rating_image8', 'links_rating_image9', 'weblogs_cacheminutes', 'comment_allowed_tags', 'search_engine_friendly_urls', 'default_geourl_lat', 'default_geourl_lon', 'use_default_geourl', 'weblogs_xml_url', 'new_users_can_blog', '_wpnonce', '_wp_http_referer', 'Update', 'action', 'rich_editing', 'autosave_interval', 'deactivated_plugins', 'can_compress_scripts', 'page_uris', 'update_core', 'update_plugins', 'update_themes', 'doing_cron', 'random_seed', 'rss_excerpt_length', 'secret', 'use_linksupdate', 'default_comment_status_page', 'wporg_popular_tags', 'what_to_show', 'rss_language');
+	$unusedoptions = array(
+		'blodotgsping_url', 'bodyterminator', 'emailtestonly', 'phoneemail_separator', 'smilies_directory',
+		'subjectprefix', 'use_bbcode', 'use_blodotgsping', 'use_phoneemail', 'use_quicktags', 'use_weblogsping',
+		'weblogs_cache_file', 'use_preview', 'use_htmltrans', 'smilies_directory', 'fileupload_allowedusers',
+		'use_phoneemail', 'default_post_status', 'default_post_category', 'archive_mode', 'time_difference',
+		'links_minadminlevel', 'links_use_adminlevels', 'links_rating_type', 'links_rating_char',
+		'links_rating_ignore_zero', 'links_rating_single_image', 'links_rating_image0', 'links_rating_image1',
+		'links_rating_image2', 'links_rating_image3', 'links_rating_image4', 'links_rating_image5',
+		'links_rating_image6', 'links_rating_image7', 'links_rating_image8', 'links_rating_image9',
+		'weblogs_cacheminutes', 'comment_allowed_tags', 'search_engine_friendly_urls', 'default_geourl_lat',
+		'default_geourl_lon', 'use_default_geourl', 'weblogs_xml_url', 'new_users_can_blog', '_wpnonce',
+		'_wp_http_referer', 'Update', 'action', 'rich_editing', 'autosave_interval', 'deactivated_plugins',
+		'can_compress_scripts', 'page_uris', 'update_core', 'update_plugins', 'update_themes', 'doing_cron',
+		'random_seed', 'rss_excerpt_length', 'secret', 'use_linksupdate', 'default_comment_status_page',
+		'wporg_popular_tags', 'what_to_show', 'rss_language', 'language', 'enable_xmlrpc', 'enable_app',
+		'autoembed_urls', 'default_post_edit_rows',
+	);
 	foreach ( $unusedoptions as $option )
 		delete_option($option);
 
@@ -786,7 +792,11 @@
 		$role->add_cap( 'update_core' );
 		$role->add_cap( 'list_users' );
 		$role->add_cap( 'remove_users' );
+
+		// Never used, will be removed. create_users or
+		// promote_users is the capability you're looking for.
 		$role->add_cap( 'add_users' );
+
 		$role->add_cap( 'promote_users' );
 		$role->add_cap( 'edit_theme_options' );
 		$role->add_cap( 'delete_themes' );
@@ -898,11 +908,13 @@
 		// @todo - network admins should have a method of editing the network siteurl (used for cookie hash)
 		'siteurl' => get_option( 'siteurl' ) . '/',
 		'add_new_users' => '0',
-		'upload_space_check_disabled' => '0',
+		'upload_space_check_disabled' => is_multisite() ? get_site_option( 'upload_space_check_disabled' ) : '1',
 		'subdomain_install' => intval( $subdomain_install ),
 		'global_terms_enabled' => global_terms_enabled() ? '1' : '0',
+		'ms_files_rewriting' => is_multisite() ? get_site_option( 'ms_files_rewriting' ) : '0',
 		'initial_db_version' => get_option( 'initial_db_version' ),
 		'active_sitewide_plugins' => array(),
+		'WPLANG' => get_locale(),
 	);
 	if ( ! $subdomain_install )
 		$sitemeta['illegal_names'][] = 'blog';
@@ -919,28 +931,26 @@
 	}
 	$wpdb->query( "INSERT INTO $wpdb->sitemeta ( site_id, meta_key, meta_value ) VALUES " . $insert );
 
-	$current_site->domain = $domain;
-	$current_site->path = $path;
-	$current_site->site_name = ucfirst( $domain );
-
-	if ( !is_multisite() ) {
+	// When upgrading from single to multisite, assume the current site will become the main site of the network.
+	// When using populate_network() to create another network in an existing multisite environment,
+	// skip these steps since the main site of the new network has not yet been created.
+	if ( ! is_multisite() ) {
+		$current_site = new stdClass;
+		$current_site->domain = $domain;
+		$current_site->path = $path;
+		$current_site->site_name = ucfirst( $domain );
 		$wpdb->insert( $wpdb->blogs, array( 'site_id' => $network_id, 'domain' => $domain, 'path' => $path, 'registered' => current_time( 'mysql' ) ) );
-		$blog_id = $wpdb->insert_id;
+		$current_site->blog_id = $blog_id = $wpdb->insert_id;
 		update_user_meta( $site_user->ID, 'source_domain', $domain );
 		update_user_meta( $site_user->ID, 'primary_blog', $blog_id );
-		if ( !$upload_path = get_option( 'upload_path' ) ) {
-			$upload_path = substr( WP_CONTENT_DIR, strlen( ABSPATH ) ) . '/uploads';
-			update_option( 'upload_path', $upload_path );
-		}
-		update_option( 'fileupload_url', get_option( 'siteurl' ) . '/' . $upload_path );
-	}
 
-	if ( $subdomain_install )
-		$wp_rewrite->set_permalink_structure( '/%year%/%monthnum%/%day%/%postname%/' );
-	else
-		$wp_rewrite->set_permalink_structure( '/blog/%year%/%monthnum%/%day%/%postname%/' );
+		if ( $subdomain_install )
+			$wp_rewrite->set_permalink_structure( '/%year%/%monthnum%/%day%/%postname%/' );
+		else
+			$wp_rewrite->set_permalink_structure( '/blog/%year%/%monthnum%/%day%/%postname%/' );
 
-	flush_rewrite_rules();
+		flush_rewrite_rules();
+	}
 
 	if ( $subdomain_install ) {
 		$vhost_ok = false;
--- a/web/wp-admin/includes/screen.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-admin/includes/screen.php	Wed Dec 19 17:46:52 2012 -0800
@@ -96,7 +96,7 @@
 	if ( $use_defaults ) {
 		$hidden = array();
 		if ( 'post' == $screen->base ) {
-			if ( 'post' == $screen->post_type || 'page' == $screen->post_type )
+			if ( 'post' == $screen->post_type || 'page' == $screen->post_type || 'attachment' == $screen->post_type )
 				$hidden = array('slugdiv', 'trackbacksdiv', 'postcustom', 'postexcerpt', 'commentstatusdiv', 'commentsdiv', 'authordiv', 'revisionsdiv');
 			else
 				$hidden = array( 'slugdiv' );
@@ -244,9 +244,21 @@
 	public $id;
 
 	/**
+	 * Which admin the screen is in. network | user | site | false
+	 *
+	 * @since 3.5.0
+	 * @var string
+	 * @access protected
+	 */
+	protected $in_admin;
+
+	/**
 	 * Whether the screen is in the network admin.
 	 *
+	 * Deprecated. Use in_admin() instead.
+	 *
 	 * @since 3.3.0
+	 * @deprecated 3.5.0
 	 * @var bool
 	 * @access public
 	 */
@@ -255,7 +267,10 @@
 	/**
 	 * Whether the screen is in the user admin.
 	 *
+	 * Deprecated. Use in_admin() instead.
+	 *
 	 * @since 3.3.0
+	 * @deprecated 3.5.0
 	 * @var bool
 	 * @access public
 	 */
@@ -377,7 +392,7 @@
 			return $hook_name;
 
 		$post_type = $taxonomy = null;
-		$is_network = $is_user = false;
+		$in_admin = false;
 		$action = '';
 
 		if ( $hook_name )
@@ -402,10 +417,10 @@
 		if ( ! $post_type && $hook_name ) {
 			if ( '-network' == substr( $id, -8 ) ) {
 				$id = substr( $id, 0, -8 );
-				$is_network = true;
+				$in_admin = 'network';
 			} elseif ( '-user' == substr( $id, -5 ) ) {
 				$id = substr( $id, 0, -5 );
-				$is_user = true;
+				$in_admin = 'user';
 			}
 
 			$id = sanitize_key( $id );
@@ -419,13 +434,22 @@
 					$post_type = $maybe;
 				}
  			}
+
+			if ( ! $in_admin )
+				$in_admin = 'site';
 		} else {
-			$is_network = is_network_admin();
-			$is_user = is_user_admin();
+			if ( defined( 'WP_NETWORK_ADMIN' ) && WP_NETWORK_ADMIN )
+				$in_admin = 'network';
+			elseif ( defined( 'WP_USER_ADMIN' ) && WP_USER_ADMIN )
+				$in_admin = 'user';
+			else
+				$in_admin = 'site';
 		}
 
 		if ( 'index' == $id )
 			$id = 'dashboard';
+		elseif ( 'front' == $id )
+			$in_admin = false;
 
 		$base = $id;
 
@@ -472,14 +496,21 @@
 			case 'edit-tags' :
 				if ( null === $taxonomy )
 					$taxonomy = 'post_tag';
+				// The edit-tags ID does not contain the post type. Look for it in the request.
+				if ( null === $post_type ) {
+					$post_type = 'post';
+					if ( isset( $_REQUEST['post_type'] ) && post_type_exists( $_REQUEST['post_type'] ) )
+						$post_type = $_REQUEST['post_type'];
+				}
+
 				$id = 'edit-' . $taxonomy;
 				break;
 		}
 
-		if ( $is_network ) {
+		if ( 'network' == $in_admin ) {
 			$id   .= '-network';
 			$base .= '-network';
-		} elseif ( $is_user ) {
+		} elseif ( 'user' == $in_admin ) {
 			$id   .= '-user';
 			$base .= '-user';
  		}
@@ -497,8 +528,9 @@
 		$screen->action     = $action;
 		$screen->post_type  = (string) $post_type;
 		$screen->taxonomy   = (string) $taxonomy;
-		$screen->is_user    = $is_user;
-		$screen->is_network = $is_network;
+		$screen->is_user    = ( 'user' == $in_admin );
+		$screen->is_network = ( 'network' == $in_admin );
+		$screen->in_admin   = $in_admin;
 
 		self::$_registry[ $id ] = $screen;
 
@@ -528,6 +560,23 @@
 	private function __construct() {}
 
 	/**
+	 * Indicates whether the screen is in a particular admin
+	 *
+	 * @since 3.5.0
+	 *
+	 * @param string $admin The admin to check against (network | user | site).
+	 * If empty any of the three admins will result in true.
+	 * @return boolean True if the screen is in the indicated admin, false otherwise.
+	 *
+	 */
+	public function in_admin( $admin = null ) {
+		if ( empty( $admin ) )
+			return (bool) $this->in_admin;
+
+		return ( $admin == $this->in_admin );
+	}
+
+	/**
 	 * Sets the old string-based contextual help for the screen.
 	 *
 	 * For backwards compatibility.
@@ -744,7 +793,7 @@
 		?>
 		<div id="screen-meta" class="metabox-prefs">
 
-			<div id="contextual-help-wrap" class="<?php echo esc_attr( $help_class ); ?>">
+			<div id="contextual-help-wrap" class="<?php echo esc_attr( $help_class ); ?>" tabindex="-1" aria-label="<?php esc_attr_e('Contextual Help Tab'); ?>">
 				<div id="contextual-help-back"></div>
 				<div id="contextual-help-columns">
 					<div class="contextual-help-tabs">
@@ -757,7 +806,7 @@
 							?>
 
 							<li id="<?php echo esc_attr( $link_id ); ?>"<?php echo $class; ?>>
-								<a href="<?php echo esc_url( "#$panel_id" ); ?>">
+								<a href="<?php echo esc_url( "#$panel_id" ); ?>" aria-controls="<?php echo esc_attr( $panel_id ); ?>">
 									<?php echo esc_html( $tab['title'] ); ?>
 								</a>
 							</li>
@@ -827,12 +876,12 @@
 		<div id="screen-meta-links">
 		<?php if ( $this->get_help_tabs() ) : ?>
 			<div id="contextual-help-link-wrap" class="hide-if-no-js screen-meta-toggle">
-			<a href="#contextual-help-wrap" id="contextual-help-link" class="show-settings"><?php _e( 'Help' ); ?></a>
+			<a href="#contextual-help-wrap" id="contextual-help-link" class="show-settings" aria-controls="contextual-help-wrap" aria-expanded="false"><?php _e( 'Help' ); ?></a>
 			</div>
 		<?php endif;
 		if ( $this->show_screen_options() ) : ?>
 			<div id="screen-options-link-wrap" class="hide-if-no-js screen-meta-toggle">
-			<a href="#screen-options-wrap" id="show-settings-link" class="show-settings"><?php _e( 'Screen Options' ); ?></a>
+			<a href="#screen-options-wrap" id="show-settings-link" class="show-settings" aria-controls="screen-options-wrap" aria-expanded="false"><?php _e( 'Screen Options' ); ?></a>
 			</div>
 		<?php endif; ?>
 		</div>
@@ -876,7 +925,7 @@
 		$hidden  = get_hidden_columns( $this );
 
 		?>
-		<div id="screen-options-wrap" class="hidden">
+		<div id="screen-options-wrap" class="hidden" tabindex="-1" aria-label="<?php esc_attr_e('Screen Options Tab'); ?>">
 		<form id="adv-settings" action="" method="post">
 		<?php if ( isset( $wp_meta_boxes[ $this->id ] ) || $this->get_option( 'per_page' ) || ( $columns && empty( $columns['_title'] ) ) ) : ?>
 			<h5><?php _e( 'Show on screen' ); ?></h5>
@@ -888,7 +937,7 @@
 				<?php
 					meta_box_prefs( $this );
 
-					if ( 'dashboard' === $this->id && current_user_can( 'edit_theme_options' ) ) {
+					if ( 'dashboard' === $this->id && has_action( 'welcome_panel' ) && current_user_can( 'edit_theme_options' ) ) {
 						if ( isset( $_GET['welcome'] ) ) {
 							$welcome_checked = empty( $_GET['welcome'] ) ? 0 : 1;
 							update_user_meta( get_current_user_id(), 'show_welcome_panel', $welcome_checked );
--- a/web/wp-admin/includes/template.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-admin/includes/template.php	Wed Dec 19 17:46:52 2012 -0800
@@ -166,10 +166,10 @@
  * @return array List of popular term IDs.
  */
 function wp_popular_terms_checklist( $taxonomy, $default = 0, $number = 10, $echo = true ) {
-	global $post_ID;
+	$post = get_post();
 
-	if ( $post_ID )
-		$checked_terms = wp_get_object_terms($post_ID, $taxonomy, array('fields'=>'ids'));
+	if ( $post && $post->ID )
+		$checked_terms = wp_get_object_terms($post->ID, $taxonomy, array('fields'=>'ids'));
 	else
 		$checked_terms = array();
 
@@ -332,17 +332,17 @@
 	<div id="edithead" style="display:none;">
 		<div class="inside">
 		<label for="author"><?php _e('Name') ?></label>
-		<input type="text" name="newcomment_author" size="50" value="" tabindex="101" id="author" />
+		<input type="text" name="newcomment_author" size="50" value="" id="author" />
 		</div>
 
 		<div class="inside">
 		<label for="author-email"><?php _e('E-mail') ?></label>
-		<input type="text" name="newcomment_author_email" size="50" value="" tabindex="102" id="author-email" />
+		<input type="text" name="newcomment_author_email" size="50" value="" id="author-email" />
 		</div>
 
 		<div class="inside">
 		<label for="author-url"><?php _e('URL') ?></label>
-		<input type="text" id="author-url" name="newcomment_author_url" size="103" value="" tabindex="103" />
+		<input type="text" id="author-url" name="newcomment_author_url" size="103" value="" />
 		</div>
 		<div style="clear:both;"></div>
 	</div>
@@ -350,17 +350,17 @@
 	<div id="replycontainer">
 	<?php
 	$quicktags_settings = array( 'buttons' => 'strong,em,link,block,del,ins,img,ul,ol,li,code,spell,close' );
-	wp_editor( '', 'replycontent', array( 'media_buttons' => false, 'tinymce' => false, 'quicktags' => $quicktags_settings, 'tabindex' => 104 ) );
+	wp_editor( '', 'replycontent', array( 'media_buttons' => false, 'tinymce' => false, 'quicktags' => $quicktags_settings ) );
 	?>
 	</div>
 
 	<p id="replysubmit" class="submit">
-	<a href="#comments-form" class="cancel button-secondary alignleft" tabindex="106"><?php _e('Cancel'); ?></a>
-	<a href="#comments-form" class="save button-primary alignright" tabindex="104">
+	<a href="#comments-form" class="save button-primary alignright">
 	<span id="addbtn" style="display:none;"><?php _e('Add Comment'); ?></span>
 	<span id="savebtn" style="display:none;"><?php _e('Update Comment'); ?></span>
 	<span id="replybtn" style="display:none;"><?php _e('Submit Reply'); ?></span></a>
-	<img class="waiting" style="display:none;" src="<?php echo esc_url( admin_url( 'images/wpspin_light.gif' ) ); ?>" alt="" />
+	<a href="#comments-form" class="cancel button-secondary alignleft"><?php _e('Cancel'); ?></a>
+	<span class="waiting spinner"></span>
 	<span class="error" style="display:none;"></span>
 	<br class="clear" />
 	</p>
@@ -421,7 +421,7 @@
 		<th>' . __( 'Value' ) . '</th>
 	</tr>
 	</thead>
-	<tbody id="the-list" class="list:meta">
+	<tbody id="the-list" data-wp-lists="list:meta">
 	<tr><td></td></tr>
 	</tbody>
 </table>'; //TBODY needed for list-manipulation JS
@@ -436,7 +436,7 @@
 		<th><?php _e( 'Value' ) ?></th>
 	</tr>
 	</thead>
-	<tbody id='the-list' class='list:meta'>
+	<tbody id='the-list' data-wp-lists='list:meta'>
 <?php
 	foreach ( $meta as $entry )
 		echo _list_meta_row( $entry, $count );
@@ -489,17 +489,17 @@
 	$delete_nonce = wp_create_nonce( 'delete-meta_' . $entry['meta_id'] );
 
 	$r .= "\n\t<tr id='meta-{$entry['meta_id']}' class='$style'>";
-	$r .= "\n\t\t<td class='left'><label class='screen-reader-text' for='meta[{$entry['meta_id']}][key]'>" . __( 'Key' ) . "</label><input name='meta[{$entry['meta_id']}][key]' id='meta[{$entry['meta_id']}][key]' tabindex='6' type='text' size='20' value='{$entry['meta_key']}' />";
+	$r .= "\n\t\t<td class='left'><label class='screen-reader-text' for='meta[{$entry['meta_id']}][key]'>" . __( 'Key' ) . "</label><input name='meta[{$entry['meta_id']}][key]' id='meta[{$entry['meta_id']}][key]' type='text' size='20' value='{$entry['meta_key']}' />";
 
 	$r .= "\n\t\t<div class='submit'>";
-	$r .= get_submit_button( __( 'Delete' ), "delete:the-list:meta-{$entry['meta_id']}::_ajax_nonce=$delete_nonce deletemeta", "deletemeta[{$entry['meta_id']}]", false, array( 'tabindex' => '6' ) );
+	$r .= get_submit_button( __( 'Delete' ), 'deletemeta small', "deletemeta[{$entry['meta_id']}]", false, array( 'data-wp-lists' => "delete:the-list:meta-{$entry['meta_id']}::_ajax_nonce=$delete_nonce" ) );
 	$r .= "\n\t\t";
-	$r .= get_submit_button( __( 'Update' ), "add:the-list:meta-{$entry['meta_id']}::_ajax_nonce-add-meta=$update_nonce updatemeta" , 'updatemeta', false, array( 'tabindex' => '6' ) );
+	$r .= get_submit_button( __( 'Update' ), 'updatemeta small', "meta-{$entry['meta_id']}-submit", false, array( 'data-wp-lists' => "add:the-list:meta-{$entry['meta_id']}::_ajax_nonce-add-meta=$update_nonce" ) );
 	$r .= "</div>";
 	$r .= wp_nonce_field( 'change-meta', '_ajax_nonce', false, false );
 	$r .= "</td>";
 
-	$r .= "\n\t\t<td><label class='screen-reader-text' for='meta[{$entry['meta_id']}][value]'>" . __( 'Value' ) . "</label><textarea name='meta[{$entry['meta_id']}][value]' id='meta[{$entry['meta_id']}][value]' tabindex='6' rows='2' cols='30'>{$entry['meta_value']}</textarea></td>\n\t</tr>";
+	$r .= "\n\t\t<td><label class='screen-reader-text' for='meta[{$entry['meta_id']}][value]'>" . __( 'Value' ) . "</label><textarea name='meta[{$entry['meta_id']}][value]' id='meta[{$entry['meta_id']}][value]' rows='2' cols='30'>{$entry['meta_value']}</textarea></td>\n\t</tr>";
 	return $r;
 }
 
@@ -534,7 +534,7 @@
 <tr>
 <td id="newmetaleft" class="left">
 <?php if ( $keys ) { ?>
-<select id="metakeyselect" name="metakeyselect" tabindex="7">
+<select id="metakeyselect" name="metakeyselect">
 <option value="#NONE#"><?php _e( '&mdash; Select &mdash;' ); ?></option>
 <?php
 
@@ -543,19 +543,21 @@
 	}
 ?>
 </select>
-<input class="hide-if-js" type="text" id="metakeyinput" name="metakeyinput" tabindex="7" value="" />
+<input class="hide-if-js" type="text" id="metakeyinput" name="metakeyinput" value="" />
 <a href="#postcustomstuff" class="hide-if-no-js" onclick="jQuery('#metakeyinput, #metakeyselect, #enternew, #cancelnew').toggle();return false;">
 <span id="enternew"><?php _e('Enter new'); ?></span>
 <span id="cancelnew" class="hidden"><?php _e('Cancel'); ?></span></a>
 <?php } else { ?>
-<input type="text" id="metakeyinput" name="metakeyinput" tabindex="7" value="" />
+<input type="text" id="metakeyinput" name="metakeyinput" value="" />
 <?php } ?>
 </td>
-<td><textarea id="metavalue" name="metavalue" rows="2" cols="25" tabindex="8"></textarea></td>
+<td><textarea id="metavalue" name="metavalue" rows="2" cols="25"></textarea></td>
 </tr>
 
-<tr><td colspan="2" class="submit">
-<?php submit_button( __( 'Add Custom Field' ), 'add:the-list:newmeta', 'addmeta', false, array( 'id' => 'addmetasub', 'tabindex' => '9' ) ); ?>
+<tr><td colspan="2">
+<div class="submit">
+<?php submit_button( __( 'Add Custom Field' ), 'secondary', 'addmeta', false, array( 'id' => 'newmeta-submit', 'data-wp-lists' => 'add:the-list:newmeta' ) ); ?>
+</div>
 <?php wp_nonce_field( 'add-meta', '_ajax_nonce-add-meta', false ); ?>
 </td></tr>
 </tbody>
@@ -575,7 +577,8 @@
  * @param unknown_type $multi
  */
 function touch_time( $edit = 1, $for_post = 1, $tab_index = 0, $multi = 0 ) {
-	global $wp_locale, $post, $comment;
+	global $wp_locale, $comment;
+	$post = get_post();
 
 	if ( $for_post )
 		$edit = ! ( in_array($post->post_status, array('draft', 'pending') ) && (!$post->post_date_gmt || '0000-00-00 00:00:00' == $post->post_date_gmt ) );
@@ -670,17 +673,16 @@
  * @return unknown
  */
 function parent_dropdown( $default = 0, $parent = 0, $level = 0 ) {
-	global $wpdb, $post_ID;
+	global $wpdb;
+	$post = get_post();
 	$items = $wpdb->get_results( $wpdb->prepare("SELECT ID, post_parent, post_title FROM $wpdb->posts WHERE post_parent = %d AND post_type = 'page' ORDER BY menu_order", $parent) );
 
 	if ( $items ) {
 		foreach ( $items as $item ) {
 			// A page cannot be its own parent.
-			if (!empty ( $post_ID ) ) {
-				if ( $item->ID == $post_ID ) {
-					continue;
-				}
-			}
+			if ( $post->ID && $item->ID == $post->ID )
+				continue;
+
 			$pad = str_repeat( '&nbsp;', $level * 3 );
 			if ( $item->ID == $default)
 				$current = ' selected="selected"';
@@ -705,7 +707,7 @@
  */
 function the_attachment_links( $id = false ) {
 	$id = (int) $id;
-	$post = & get_post( $id );
+	$post = get_post( $id );
 
 	if ( $post->post_type != 'attachment' )
 		return false;
@@ -770,56 +772,6 @@
 }
 
 /**
- * {@internal Missing Short Description}}
- *
- * @since 2.3.0
- *
- * @param unknown_type $size
- * @return unknown
- */
-function wp_convert_hr_to_bytes( $size ) {
-	$size = strtolower($size);
-	$bytes = (int) $size;
-	if ( strpos($size, 'k') !== false )
-		$bytes = intval($size) * 1024;
-	elseif ( strpos($size, 'm') !== false )
-		$bytes = intval($size) * 1024 * 1024;
-	elseif ( strpos($size, 'g') !== false )
-		$bytes = intval($size) * 1024 * 1024 * 1024;
-	return $bytes;
-}
-
-/**
- * {@internal Missing Short Description}}
- *
- * @since 2.3.0
- *
- * @param unknown_type $bytes
- * @return unknown
- */
-function wp_convert_bytes_to_hr( $bytes ) {
-	$units = array( 0 => 'B', 1 => 'kB', 2 => 'MB', 3 => 'GB' );
-	$log = log( $bytes, 1024 );
-	$power = (int) $log;
-	$size = pow(1024, $log - $power);
-	return $size . $units[$power];
-}
-
-/**
- * {@internal Missing Short Description}}
- *
- * @since 2.5.0
- *
- * @return unknown
- */
-function wp_max_upload_size() {
-	$u_bytes = wp_convert_hr_to_bytes( ini_get( 'upload_max_filesize' ) );
-	$p_bytes = wp_convert_hr_to_bytes( ini_get( 'post_max_size' ) );
-	$bytes = apply_filters( 'upload_size_limit', min($u_bytes, $p_bytes), $u_bytes, $p_bytes );
-	return $bytes;
-}
-
-/**
  * Outputs the form used by the importers to accept the data to be imported
  *
  * @since 2.0.0
@@ -835,7 +787,7 @@
 		<p><strong><?php echo $upload_dir['error']; ?></strong></p></div><?php
 	else :
 ?>
-<form enctype="multipart/form-data" id="import-upload-form" method="post" action="<?php echo esc_attr(wp_nonce_url($action, 'import-upload')); ?>">
+<form enctype="multipart/form-data" id="import-upload-form" method="post" class="wp-upload-form" action="<?php echo esc_attr(wp_nonce_url($action, 'import-upload')); ?>">
 <p>
 <label for="upload"><?php _e( 'Choose a file from your computer:' ); ?></label> (<?php printf( __('Maximum size: %s' ), $size ); ?>)
 <input type="file" id="upload" name="import" size="25" />
@@ -1040,10 +992,15 @@
 	global $wp_settings_sections;
 
 	if ( 'misc' == $page ) {
-		_deprecated_argument( __FUNCTION__, '3.0', __( 'The miscellaneous options group has been removed. Use another settings group.' ) );
+		_deprecated_argument( __FUNCTION__, '3.0', sprintf( __( 'The "%s" options group has been removed. Use another settings group.' ), 'misc' ) );
 		$page = 'general';
 	}
 
+	if ( 'privacy' == $page ) {
+		_deprecated_argument( __FUNCTION__, '3.5', sprintf( __( 'The "%s" options group has been removed. Use another settings group.' ), 'privacy' ) );
+		$page = 'reading';
+	}
+
 	if ( !isset($wp_settings_sections) )
 		$wp_settings_sections = array();
 	if ( !isset($wp_settings_sections[$page]) )
@@ -1084,6 +1041,11 @@
 		$page = 'general';
 	}
 
+	if ( 'privacy' == $page ) {
+		_deprecated_argument( __FUNCTION__, '3.5', __( 'The privacy options group has been removed. Use another settings group.' ) );
+		$page = 'reading';
+	}
+
 	if ( !isset($wp_settings_fields) )
 		$wp_settings_fields = array();
 	if ( !isset($wp_settings_fields[$page]) )
@@ -1107,20 +1069,23 @@
  *
  * @param string $page The slug name of the page whos settings sections you want to output
  */
-function do_settings_sections($page) {
+function do_settings_sections( $page ) {
 	global $wp_settings_sections, $wp_settings_fields;
 
-	if ( !isset($wp_settings_sections) || !isset($wp_settings_sections[$page]) )
+	if ( ! isset( $wp_settings_sections ) || !isset( $wp_settings_sections[$page] ) )
 		return;
 
 	foreach ( (array) $wp_settings_sections[$page] as $section ) {
 		if ( $section['title'] )
 			echo "<h3>{$section['title']}</h3>\n";
-		call_user_func($section['callback'], $section);
-		if ( !isset($wp_settings_fields) || !isset($wp_settings_fields[$page]) || !isset($wp_settings_fields[$page][$section['id']]) )
+
+		if ( $section['callback'] )
+			call_user_func( $section['callback'], $section );
+
+		if ( ! isset( $wp_settings_fields ) || !isset( $wp_settings_fields[$page] ) || !isset( $wp_settings_fields[$page][$section['id']] ) )
 			continue;
 		echo '<table class="form-table">';
-		do_settings_fields($page, $section['id']);
+		do_settings_fields( $page, $section['id'] );
 		echo '</table>';
 	}
 }
@@ -1148,7 +1113,7 @@
 	foreach ( (array) $wp_settings_fields[$page][$section] as $field ) {
 		echo '<tr valign="top">';
 		if ( !empty($field['args']['label_for']) )
-			echo '<th scope="row"><label for="' . $field['args']['label_for'] . '">' . $field['title'] . '</label></th>';
+			echo '<th scope="row"><label for="' . esc_attr( $field['args']['label_for'] ) . '">' . $field['title'] . '</label></th>';
 		else
 			echo '<th scope="row">' . $field['title'] . '</th>';
 		echo '<td>';
@@ -1224,27 +1189,29 @@
 	// This allows the $sanitize_callback from register_setting() to run, adding
 	// any settings errors you want to show by default.
 	if ( $sanitize )
-		sanitize_option( $setting, get_option($setting));
+		sanitize_option( $setting, get_option( $setting ) );
 
 	// If settings were passed back from options.php then use them
-	// Ignore transients if $sanitize is true, we don't want the old values anyway
-	if ( isset($_GET['settings-updated']) && $_GET['settings-updated'] && get_transient('settings_errors') ) {
-		$settings_errors = get_transient('settings_errors');
-		delete_transient('settings_errors');
-	// Otherwise check global in case validation has been run on this pageload
-	} elseif ( count( $wp_settings_errors ) ) {
-		$settings_errors = $wp_settings_errors;
-	} else {
-		return;
+	if ( isset( $_GET['settings-updated'] ) && $_GET['settings-updated'] && get_transient( 'settings_errors' ) ) {
+		$wp_settings_errors = array_merge( (array) $wp_settings_errors, get_transient( 'settings_errors' ) );
+		delete_transient( 'settings_errors' );
 	}
 
+	// Check global in case errors have been added on this pageload
+	if ( ! count( $wp_settings_errors ) )
+		return array();
+
 	// Filter the results to those of a specific setting if one was set
 	if ( $setting ) {
-		foreach ( (array) $settings_errors as $key => $details )
-			if ( $setting != $details['setting'] )
-				unset( $settings_errors[$key] );
+		$setting_errors = array();
+		foreach ( (array) $wp_settings_errors as $key => $details ) {
+			if ( $setting == $details['setting'] )
+				$setting_errors[] = $wp_settings_errors[$key];
+		}
+		return $setting_errors;
 	}
-	return $settings_errors;
+
+	return $wp_settings_errors;
 }
 
 /**
@@ -1276,7 +1243,7 @@
 
 	$settings_errors = get_settings_errors( $setting, $sanitize );
 
-	if ( ! is_array( $settings_errors ) )
+	if ( empty( $settings_errors ) )
 		return;
 
 	$output = '';
@@ -1311,18 +1278,8 @@
 				<?php wp_nonce_field( 'find-posts', '_ajax_nonce', false ); ?>
 				<label class="screen-reader-text" for="find-posts-input"><?php _e( 'Search' ); ?></label>
 				<input type="text" id="find-posts-input" name="ps" value="" />
-				<input type="button" id="find-posts-search" value="<?php esc_attr_e( 'Search' ); ?>" class="button" /><br />
-
-				<?php
-				$post_types = get_post_types( array('public' => true), 'objects' );
-				foreach ( $post_types as $post ) {
-					if ( 'attachment' == $post->name )
-						continue;
-				?>
-				<input type="radio" name="find-posts-what" id="find-posts-<?php echo esc_attr($post->name); ?>" value="<?php echo esc_attr($post->name); ?>" <?php checked($post->name, 'post'); ?> />
-				<label for="find-posts-<?php echo esc_attr($post->name); ?>"><?php echo $post->label; ?></label>
-				<?php
-				} ?>
+				<span class="spinner"></span>
+				<input type="button" id="find-posts-search" value="<?php esc_attr_e( 'Search' ); ?>" class="button" />
 			</div>
 			<div id="find-posts-response"></div>
 		</div>
@@ -1344,8 +1301,9 @@
  * @since 2.7.0
  */
 function the_post_password() {
-	global $post;
-	if ( isset( $post->post_password ) ) echo esc_attr( $post->post_password );
+	$post = get_post();
+	if ( isset( $post->post_password ) )
+		echo esc_attr( $post->post_password );
 }
 
 /**
@@ -1355,13 +1313,13 @@
  * returned.
  *
  * @since 2.7.0
- * @param int $post_id The post id. If not supplied the global $post is used.
+ * @param mixed $post Post id or object. If not supplied the global $post is used.
  * @return string The post title if set
  */
-function _draft_or_post_title( $post_id = 0 ) {
-	$title = get_the_title($post_id);
-	if ( empty($title) )
-		$title = __('(no title)');
+function _draft_or_post_title( $post = 0 ) {
+	$title = get_the_title( $post );
+	if ( empty( $title ) )
+		$title = __( '(no title)' );
 	return $title;
 }
 
@@ -1394,6 +1352,7 @@
 
 	$current_screen = get_current_screen();
 
+	@header( 'Content-Type: ' . get_option( 'html_type' ) . '; charset=' . get_option( 'blog_charset' ) );
 	_wp_admin_html_begin();
 ?>
 <title><?php bloginfo('name') ?> &rsaquo; <?php echo $title ?> &#8212; <?php _e('WordPress'); ?></title>
@@ -1430,7 +1389,7 @@
 $admin_body_class .= ' locale-' . sanitize_html_class( strtolower( str_replace( '_', '-', get_locale() ) ) );
 ?>
 </head>
-<body<?php if ( isset($GLOBALS['body_id']) ) echo ' id="' . $GLOBALS['body_id'] . '"'; ?> class="wp-admin no-js iframe <?php echo apply_filters( 'admin_body_class', '' ) . ' ' . $admin_body_class; ?>">
+<body<?php if ( isset($GLOBALS['body_id']) ) echo ' id="' . $GLOBALS['body_id'] . '"'; ?> class="wp-admin wp-core-ui no-js iframe <?php echo apply_filters( 'admin_body_class', '' ) . ' ' . $admin_body_class; ?>">
 <script type="text/javascript">
 //<![CDATA[
 (function(){
@@ -1631,19 +1590,23 @@
  *                     Defaults to no other attributes. Other attributes can also be provided as a
  *                     string such as 'tabindex="1"', though the array format is typically cleaner.
  */
-function get_submit_button( $text = null, $type = 'primary', $name = 'submit', $wrap = true, $other_attributes = null ) {
-	switch ( $type ) :
-		case 'primary' :
-		case 'secondary' :
-			$class = 'button-' . $type;
-			break;
-		case 'delete' :
-			$class = 'button-secondary delete';
-			break;
-		default :
-			$class = $type; // Custom cases can just pass in the classes they want to be used
-	endswitch;
-	$text = ( null == $text ) ? __( 'Save Changes' ) : $text;
+function get_submit_button( $text = null, $type = 'primary large', $name = 'submit', $wrap = true, $other_attributes = null ) {
+	if ( ! is_array( $type ) )
+		$type = explode( ' ', $type );
+
+	$button_shorthand = array( 'primary', 'small', 'large' );
+	$classes = array( 'button' );
+	foreach ( $type as $t ) {
+		if ( 'secondary' === $t || 'button-secondary' === $t )
+			continue;
+		$classes[] = in_array( $t, $button_shorthand ) ? 'button-' . $t : $t;
+	}
+	$class = implode( ' ', array_unique( $classes ) );
+
+	if ( 'delete' === $type )
+		$class = 'button-secondary delete';
+
+	$text = $text ? $text : __( 'Save Changes' );
 
 	// Default the id attribute to $name unless an id was specifically provided in $other_attributes
 	$id = $name;
@@ -1706,8 +1669,8 @@
 
 		$registered_pointers = array(
 			'index.php'    => 'wp330_toolbar',
-			'post-new.php' => 'wp330_media_uploader',
-			'post.php'     => 'wp330_media_uploader',
+			'post-new.php' => 'wp350_media',
+			'post.php'     => 'wp350_media',
 			'themes.php'   => array( 'wp330_saving_widgets', 'wp340_customize_current_theme_link' ),
 			'appearance_page_custom-header' => 'wp340_choose_image_from_library',
 			'appearance_page_custom-background' => 'wp340_choose_image_from_library',
@@ -1720,10 +1683,10 @@
 		$pointers = (array) $registered_pointers[ $hook_suffix ];
 
 		$caps_required = array(
-			'wp330_media_uploader' => array( 'upload_files' ),
 			'wp330_saving_widgets' => array( 'edit_theme_options', 'switch_themes' ),
 			'wp340_customize_current_theme_link' => array( 'edit_theme_options' ),
 			'wp340_choose_image_from_library' => array( 'edit_theme_options' ),
+			'wp350_media' => array( 'upload_files' ),
 		);
 
 		// Get dismissed pointers
@@ -1758,7 +1721,7 @@
 	 *
 	 * @param string $pointer_id The pointer ID.
 	 * @param string $selector The HTML elements, on which the pointer should be attached.
-	 * @param array  $args Arguments to be passed to the pointer JS (see wp-pointer.dev.js).
+	 * @param array  $args Arguments to be passed to the pointer JS (see wp-pointer.js).
 	 */
 	private static function print_js( $pointer_id, $selector, $args ) {
 		if ( empty( $pointer_id ) || empty( $selector ) || empty( $args ) || empty( $args['content'] ) )
@@ -1815,15 +1778,7 @@
 	 *
 	 * @since 3.3.0
 	 */
-	public static function pointer_wp330_media_uploader() {
-		$content  = '<h3>' . __( 'Updated Media Uploader' ) . '</h3>';
-		$content .= '<p>' . __( 'The single media icon now launches the uploader for all file types, and the new drag and drop interface makes uploading a breeze.' ) . '</p>';
-
-		WP_Internal_Pointers::print_js( 'wp330_media_uploader', '#content-add_media', array(
-			'content'  => $content,
-			'position' => array( 'edge' => is_rtl() ? 'right' : 'left', 'align' => 'center' ),
-		) );
-	}
+	public static function pointer_wp330_media_uploader() {}
 
 	/**
 	 * Print 'New Feature: Saving Widgets' for 3.3.0.
@@ -1871,13 +1826,23 @@
 		) );
 	}
 
+	public static function pointer_wp350_media() {
+		$content  = '<h3>' . __( 'New Media Manager' ) . '</h3>';
+		$content .= '<p>' . __( 'Uploading files and creating image galleries has a whole new look. Check it out!' ) . '</p>';
+
+		self::print_js( 'wp350_media', '.insert-media', array(
+			'content'  => $content,
+			'position' => array( 'edge' => is_rtl() ? 'right' : 'left', 'align' => 'center' ),
+		) );
+	}
+
 	/**
 	 * Prevents new users from seeing existing 'new feature' pointers.
 	 *
 	 * @since 3.3.0
 	 */
 	public static function dismiss_pointers_for_new_users( $user_id ) {
-		add_user_meta( $user_id, 'dismissed_wp_pointers', 'wp330_toolbar,wp330_media_uploader,wp330_saving_widgets,wp340_choose_image_from_library,wp340_customize_current_theme_link' );
+		add_user_meta( $user_id, 'dismissed_wp_pointers', 'wp330_toolbar,wp330_saving_widgets,wp340_choose_image_from_library,wp340_customize_current_theme_link,wp350_media' );
 	}
 }
 
--- a/web/wp-admin/includes/theme-install.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-admin/includes/theme-install.php	Wed Dec 19 17:46:52 2012 -0800
@@ -58,13 +58,29 @@
 <form id="search-themes" method="get" action="">
 	<input type="hidden" name="tab" value="search" />
 	<?php if ( $type_selector ) : ?>
+	<label class="screen-reader-text" for="typeselector"><?php _e('Type of search'); ?></label>
 	<select	name="type" id="typeselector">
 	<option value="term" <?php selected('term', $type) ?>><?php _e('Keyword'); ?></option>
 	<option value="author" <?php selected('author', $type) ?>><?php _e('Author'); ?></option>
 	<option value="tag" <?php selected('tag', $type) ?>><?php _ex('Tag', 'Theme Installer'); ?></option>
 	</select>
+	<label class="screen-reader-text" for="s"><?php
+	switch ( $type ) {
+		case 'term':
+			_e( 'Search by keyword' );
+			break;
+		case 'author':
+			_e( 'Search by author' );
+			break;
+		case 'tag':
+			_e( 'Search by tag' );
+			break;
+	}
+	?></label>
+	<?php else : ?>
+	<label class="screen-reader-text" for="s"><?php _e('Search by keyword'); ?></label>
 	<?php endif; ?>
-	<input type="search" name="s" size="30" value="<?php echo esc_attr($term) ?>" />
+	<input type="search" name="s" id="s" size="30" value="<?php echo esc_attr($term) ?>" autofocus="autofocus" />
 	<?php submit_button( __( 'Search' ), 'button', 'search', false ); ?>
 </form>
 <?php
@@ -118,10 +134,10 @@
 
 function install_themes_upload($page = 1) {
 ?>
-<h4><?php _e('Install a theme in .zip format') ?></h4>
-<p class="install-help"><?php _e('If you have a theme in a .zip format, you may install it by uploading it here.') ?></p>
-<form method="post" enctype="multipart/form-data" action="<?php echo self_admin_url('update.php?action=upload-theme') ?>">
-	<?php wp_nonce_field( 'theme-upload') ?>
+<h4><?php _e('Install a theme in .zip format'); ?></h4>
+<p class="install-help"><?php _e('If you have a theme in a .zip format, you may install it by uploading it here.'); ?></p>
+<form method="post" enctype="multipart/form-data" class="wp-upload-form" action="<?php echo self_admin_url('update.php?action=upload-theme'); ?>">
+	<?php wp_nonce_field( 'theme-upload'); ?>
 	<input type="file" name="themezip" />
 	<?php submit_button( __( 'Install Now' ), 'button', 'install-theme-submit', false ); ?>
 </form>
--- a/web/wp-admin/includes/theme.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-admin/includes/theme.php	Wed Dec 19 17:46:52 2012 -0800
@@ -23,7 +23,7 @@
 
 	ob_start();
 	if ( empty( $redirect ) )
-		$redirect = wp_nonce_url('themes.php?action=delete&stylesheet=' . $stylesheet, 'delete-theme_' . $stylesheet);
+		$redirect = wp_nonce_url('themes.php?action=delete&stylesheet=' . urlencode( $stylesheet ), 'delete-theme_' . $stylesheet);
 	if ( false === ($credentials = request_filesystem_credentials($redirect)) ) {
 		$data = ob_get_contents();
 		ob_end_clean();
@@ -151,7 +151,7 @@
 function get_theme_feature_list( $api = true ) {
 	// Hard-coded list is used if api not accessible.
 	$features = array(
-			__('Colors') => array(
+			__( 'Colors' ) => array(
 				'black'   => __( 'Black' ),
 				'blue'    => __( 'Blue' ),
 				'brown'   => __( 'Brown' ),
@@ -169,7 +169,7 @@
 				'light'   => __( 'Light' ),
 			),
 
-		__('Columns') => array(
+		__( 'Columns' ) => array(
 			'one-column'    => __( 'One Column' ),
 			'two-columns'   => __( 'Two Columns' ),
 			'three-columns' => __( 'Three Columns' ),
@@ -178,7 +178,7 @@
 			'right-sidebar' => __( 'Right Sidebar' ),
 		),
 
-		__('Width') => array(
+		__( 'Width' ) => array(
 			'fixed-width'    => __( 'Fixed Width' ),
 			'flexible-width' => __( 'Flexible Width' ),
 		),
@@ -193,6 +193,7 @@
 			'editor-style'          => __( 'Editor Style' ),
 			'featured-image-header' => __( 'Featured Image Header' ),
 			'featured-images'       => __( 'Featured Images' ),
+			'flexible-header'       => __( 'Flexible Header' ),
 			'front-page-post-form'  => __( 'Front Page Posting' ),
 			'full-width-template'   => __( 'Full Width Template' ),
 			'microformats'          => __( 'Microformats' ),
--- a/web/wp-admin/includes/update-core.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-admin/includes/update-core.php	Wed Dec 19 17:46:52 2012 -0800
@@ -395,6 +395,146 @@
 'wp-includes/js/tinymce/plugins/wplink/editor_plugin.dev.js',
 // Don't delete, yet: 'wp-pass.php',
 // Don't delete, yet: 'wp-register.php',
+// 3.5
+'wp-admin/gears-manifest.php',
+'wp-admin/includes/manifest.php',
+'wp-admin/images/archive-link.png',
+'wp-admin/images/blue-grad.png',
+'wp-admin/images/button-grad-active.png',
+'wp-admin/images/button-grad.png',
+'wp-admin/images/ed-bg-vs.gif',
+'wp-admin/images/ed-bg.gif',
+'wp-admin/images/fade-butt.png',
+'wp-admin/images/fav-arrow-rtl.gif',
+'wp-admin/images/fav-arrow.gif',
+'wp-admin/images/fav-vs.png',
+'wp-admin/images/fav.png',
+'wp-admin/images/gray-grad.png',
+'wp-admin/images/loading-publish.gif',
+'wp-admin/images/logo-ghost.png',
+'wp-admin/images/logo.gif',
+'wp-admin/images/menu-arrow-frame-rtl.png',
+'wp-admin/images/menu-arrow-frame.png',
+'wp-admin/images/menu-arrows.gif',
+'wp-admin/images/menu-bits-rtl-vs.gif',
+'wp-admin/images/menu-bits-rtl.gif',
+'wp-admin/images/menu-bits-vs.gif',
+'wp-admin/images/menu-bits.gif',
+'wp-admin/images/menu-dark-rtl-vs.gif',
+'wp-admin/images/menu-dark-rtl.gif',
+'wp-admin/images/menu-dark-vs.gif',
+'wp-admin/images/menu-dark.gif',
+'wp-admin/images/required.gif',
+'wp-admin/images/screen-options-toggle-vs.gif',
+'wp-admin/images/screen-options-toggle.gif',
+'wp-admin/images/toggle-arrow-rtl.gif',
+'wp-admin/images/toggle-arrow.gif',
+'wp-admin/images/upload-classic.png',
+'wp-admin/images/upload-fresh.png',
+'wp-admin/images/white-grad-active.png',
+'wp-admin/images/white-grad.png',
+'wp-admin/images/widgets-arrow-vs.gif',
+'wp-admin/images/widgets-arrow.gif',
+'wp-admin/images/wpspin_dark.gif',
+'wp-includes/images/upload.png',
+'wp-includes/js/prototype.js',
+'wp-includes/js/scriptaculous',
+'wp-admin/css/wp-admin-rtl.dev.css',
+'wp-admin/css/wp-admin.dev.css',
+'wp-admin/css/media-rtl.dev.css',
+'wp-admin/css/media.dev.css',
+'wp-admin/css/colors-classic.dev.css',
+'wp-admin/css/customize-controls-rtl.dev.css',
+'wp-admin/css/customize-controls.dev.css',
+'wp-admin/css/ie-rtl.dev.css',
+'wp-admin/css/ie.dev.css',
+'wp-admin/css/install.dev.css',
+'wp-admin/css/colors-fresh.dev.css',
+'wp-includes/js/customize-base.dev.js',
+'wp-includes/js/json2.dev.js',
+'wp-includes/js/comment-reply.dev.js',
+'wp-includes/js/customize-preview.dev.js',
+'wp-includes/js/wplink.dev.js',
+'wp-includes/js/tw-sack.dev.js',
+'wp-includes/js/wp-list-revisions.dev.js',
+'wp-includes/js/autosave.dev.js',
+'wp-includes/js/admin-bar.dev.js',
+'wp-includes/js/quicktags.dev.js',
+'wp-includes/js/wp-ajax-response.dev.js',
+'wp-includes/js/wp-pointer.dev.js',
+'wp-includes/js/hoverIntent.dev.js',
+'wp-includes/js/colorpicker.dev.js',
+'wp-includes/js/wp-lists.dev.js',
+'wp-includes/js/customize-loader.dev.js',
+'wp-includes/js/jquery/jquery.table-hotkeys.dev.js',
+'wp-includes/js/jquery/jquery.color.dev.js',
+'wp-includes/js/jquery/jquery.color.js',
+'wp-includes/js/jquery/jquery.hotkeys.dev.js',
+'wp-includes/js/jquery/jquery.form.dev.js',
+'wp-includes/js/jquery/suggest.dev.js',
+'wp-admin/js/xfn.dev.js',
+'wp-admin/js/set-post-thumbnail.dev.js',
+'wp-admin/js/comment.dev.js',
+'wp-admin/js/theme.dev.js',
+'wp-admin/js/cat.dev.js',
+'wp-admin/js/password-strength-meter.dev.js',
+'wp-admin/js/user-profile.dev.js',
+'wp-admin/js/theme-preview.dev.js',
+'wp-admin/js/post.dev.js',
+'wp-admin/js/media-upload.dev.js',
+'wp-admin/js/word-count.dev.js',
+'wp-admin/js/plugin-install.dev.js',
+'wp-admin/js/edit-comments.dev.js',
+'wp-admin/js/media-gallery.dev.js',
+'wp-admin/js/custom-fields.dev.js',
+'wp-admin/js/custom-background.dev.js',
+'wp-admin/js/common.dev.js',
+'wp-admin/js/inline-edit-tax.dev.js',
+'wp-admin/js/gallery.dev.js',
+'wp-admin/js/utils.dev.js',
+'wp-admin/js/widgets.dev.js',
+'wp-admin/js/wp-fullscreen.dev.js',
+'wp-admin/js/nav-menu.dev.js',
+'wp-admin/js/dashboard.dev.js',
+'wp-admin/js/link.dev.js',
+'wp-admin/js/user-suggest.dev.js',
+'wp-admin/js/postbox.dev.js',
+'wp-admin/js/tags.dev.js',
+'wp-admin/js/image-edit.dev.js',
+'wp-admin/js/media.dev.js',
+'wp-admin/js/customize-controls.dev.js',
+'wp-admin/js/inline-edit-post.dev.js',
+'wp-admin/js/categories.dev.js',
+'wp-admin/js/editor.dev.js',
+'wp-includes/js/tinymce/plugins/wpeditimage/js/editimage.dev.js',
+'wp-includes/js/tinymce/plugins/wpdialogs/js/popup.dev.js',
+'wp-includes/js/tinymce/plugins/wpdialogs/js/wpdialog.dev.js',
+'wp-includes/js/plupload/handlers.dev.js',
+'wp-includes/js/plupload/wp-plupload.dev.js',
+'wp-includes/js/swfupload/handlers.dev.js',
+'wp-includes/js/jcrop/jquery.Jcrop.dev.js',
+'wp-includes/js/jcrop/jquery.Jcrop.js',
+'wp-includes/js/jcrop/jquery.Jcrop.css',
+'wp-includes/js/imgareaselect/jquery.imgareaselect.dev.js',
+'wp-includes/css/wp-pointer.dev.css',
+'wp-includes/css/editor.dev.css',
+'wp-includes/css/jquery-ui-dialog.dev.css',
+'wp-includes/css/admin-bar-rtl.dev.css',
+'wp-includes/css/admin-bar.dev.css',
+'wp-includes/js/jquery/ui/jquery.effects.clip.min.js',
+'wp-includes/js/jquery/ui/jquery.effects.scale.min.js',
+'wp-includes/js/jquery/ui/jquery.effects.blind.min.js',
+'wp-includes/js/jquery/ui/jquery.effects.core.min.js',
+'wp-includes/js/jquery/ui/jquery.effects.shake.min.js',
+'wp-includes/js/jquery/ui/jquery.effects.fade.min.js',
+'wp-includes/js/jquery/ui/jquery.effects.explode.min.js',
+'wp-includes/js/jquery/ui/jquery.effects.slide.min.js',
+'wp-includes/js/jquery/ui/jquery.effects.drop.min.js',
+'wp-includes/js/jquery/ui/jquery.effects.highlight.min.js',
+'wp-includes/js/jquery/ui/jquery.effects.bounce.min.js',
+'wp-includes/js/jquery/ui/jquery.effects.pulsate.min.js',
+'wp-includes/js/jquery/ui/jquery.effects.transfer.min.js',
+'wp-includes/js/jquery/ui/jquery.effects.fold.min.js',
 );
 
 /**
@@ -419,7 +559,8 @@
 $_new_bundled_files = array(
 'plugins/akismet/' => '2.0',
 'themes/twentyten/' => '3.0',
-'themes/twentyeleven/' => '3.2'
+'themes/twentyeleven/' => '3.2',
+'themes/twentytwelve/' => '3.5',
 );
 
 /**
@@ -473,11 +614,36 @@
 
 	@set_time_limit( 300 );
 
+	// Sanity check the unzipped distribution
+	apply_filters( 'update_feedback', __('Verifying the unpacked files&#8230;') );
+	$distro = '';
+	$roots = array( '/wordpress/', '/wordpress-mu/' );
+	foreach ( $roots as $root ) {
+		if ( $wp_filesystem->exists( $from . $root . 'readme.html' ) && $wp_filesystem->exists( $from . $root . 'wp-includes/version.php' ) ) {
+			$distro = $root;
+			break;
+		}
+	}
+	if ( ! $distro ) {
+		$wp_filesystem->delete( $from, true );
+		return new WP_Error( 'insane_distro', __('The update could not be unpacked') );
+	}
+
+	// Import $wp_version, $required_php_version, and $required_mysql_version from the new version
+	$versions_file = $wp_filesystem->wp_content_dir() . 'upgrade/version-current.php';
+	if ( ! $wp_filesystem->copy( $from . $distro . 'wp-includes/version.php', $versions_file ) ) {
+		 $wp_filesystem->delete( $from, true );
+		 return new WP_Error( 'copy_failed', __('Could not copy file.') );
+	}
+
+	$wp_filesystem->chmod( $versions_file, FS_CHMOD_FILE );
+	require_once( WP_CONTENT_DIR . '/upgrade/version-current.php' );
+	$wp_filesystem->delete( $versions_file );
+
 	$php_version    = phpversion();
 	$mysql_version  = $wpdb->db_version();
-	$required_php_version = '5.2.4';
-	$required_mysql_version = '5.0';
-	$wp_version = '3.4.2';
+	$old_wp_version = $GLOBALS['wp_version']; // The version of WordPress we're updating from
+	$development_build = ( false !== strpos( $old_wp_version . $wp_version, '-' )  ); // a dash in the version indicates a Development release
 	$php_compat     = version_compare( $php_version, $required_php_version, '>=' );
 	if ( file_exists( WP_CONTENT_DIR . '/db.php' ) && empty( $wpdb->is_mysql ) )
 		$mysql_compat = true;
@@ -494,21 +660,6 @@
 	elseif ( !$mysql_compat )
 		return new WP_Error( 'mysql_not_compatible', sprintf( __('The update cannot be installed because WordPress %1$s requires MySQL version %2$s or higher. You are running version %3$s.'), $wp_version, $required_mysql_version, $mysql_version ) );
 
-	// Sanity check the unzipped distribution
-	apply_filters('update_feedback', __('Verifying the unpacked files&#8230;'));
-	$distro = '';
-	$roots = array( '/wordpress/', '/wordpress-mu/' );
-	foreach( $roots as $root ) {
-		if ( $wp_filesystem->exists($from . $root . 'readme.html') && $wp_filesystem->exists($from . $root . 'wp-includes/version.php') ) {
-			$distro = $root;
-			break;
-		}
-	}
-	if ( !$distro ) {
-		$wp_filesystem->delete($from, true);
-		return new WP_Error('insane_distro', __('The update could not be unpacked') );
-	}
-
 	apply_filters('update_feedback', __('Installing the latest version&#8230;'));
 
 	// Create maintenance file to signal that we are upgrading
@@ -542,11 +693,11 @@
 
 	// Copy New bundled plugins & themes
 	// This gives us the ability to install new plugins & themes bundled with future versions of WordPress whilst avoiding the re-install upon upgrade issue.
+	// $development_build controls us overwriting bundled themes and plugins when a non-stable release is being updated
 	if ( !is_wp_error($result) && ( ! defined('CORE_UPGRADE_SKIP_NEW_BUNDLED') || ! CORE_UPGRADE_SKIP_NEW_BUNDLED ) ) {
-		$old_version = $GLOBALS['wp_version']; // $wp_version in local scope == new version
 		foreach ( (array) $_new_bundled_files as $file => $introduced_version ) {
-			// If $introduced version is greater than what the site was previously running
-			if ( version_compare($introduced_version, $old_version, '>') ) {
+			// If a $development_build or if $introduced version is greater than what the site was previously running
+			if ( $development_build || version_compare( $introduced_version, $old_wp_version, '>' ) ) {
 				$directory = ('/' == $file[ strlen($file)-1 ]);
 				list($type, $filename) = explode('/', $file, 2);
 
@@ -558,13 +709,13 @@
 					continue;
 
 				if ( ! $directory ) {
-					if ( $wp_filesystem->exists($dest . $filename) )
+					if ( ! $development_build && $wp_filesystem->exists( $dest . $filename ) )
 						continue;
 
 					if ( ! $wp_filesystem->copy($from . $distro . 'wp-content/' . $file, $dest . $filename, FS_CHMOD_FILE) )
 						$result = new WP_Error('copy_failed', __('Could not copy file.'), $dest . $filename);
 				} else {
-					if ( $wp_filesystem->is_dir($dest . $filename) )
+					if ( ! $development_build && $wp_filesystem->is_dir( $dest . $filename ) )
 						continue;
 
 					$wp_filesystem->mkdir($dest . $filename, FS_CHMOD_DIR);
@@ -680,7 +831,7 @@
 function _redirect_to_about_wordpress( $new_version ) {
 	global $wp_version, $pagenow, $action;
 
-	if ( version_compare( $wp_version, '3.5-alpha', '>=' ) )
+	if ( version_compare( $wp_version, '3.4-RC1', '>=' ) )
 		return;
 
 	// Ensure we only run this on the update-core.php page. wp_update_core() could be called in other contexts.
@@ -696,11 +847,8 @@
 	// See do_core_upgrade()
 	show_message( __('WordPress updated successfully') );
 
-	$js_message = __( 'Welcome to WordPress %1$s. You will be redirected to the About WordPress screen. If not, click <a href="%s">here</a>.' );
-	$js_message = str_replace( '"%s"', '"%2$s"', $js_message ); // in lieu of breaking the string.
-
 	// self_admin_url() won't exist when upgrading from <= 3.0, so relative URLs are intentional.
-	show_message( '<span class="hide-if-no-js">' . sprintf( $js_message, $new_version, 'about.php?updated' ) . '</span>' );
+	show_message( '<span class="hide-if-no-js">' . sprintf( __( 'Welcome to WordPress %1$s. You will be redirected to the About WordPress screen. If not, click <a href="%2$s">here</a>.' ), $new_version, 'about.php?updated' ) . '</span>' );
 	show_message( '<span class="hide-if-js">' . sprintf( __( 'Welcome to WordPress %1$s. <a href="%2$s">Learn more</a>.' ), $new_version, 'about.php?updated' ) . '</span>' );
 	echo '</div>';
 	?>
--- a/web/wp-admin/includes/update.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-admin/includes/update.php	Wed Dec 19 17:46:52 2012 -0800
@@ -83,9 +83,12 @@
 
 function core_update_footer( $msg = '' ) {
 	if ( !current_user_can('update_core') )
-		return sprintf( __( 'Version %s' ), $GLOBALS['wp_version'] );
+		return sprintf( __( 'Version %s' ), get_bloginfo( 'version', 'display' ) );
 
 	$cur = get_preferred_from_update_core();
+	if ( ! is_object( $cur ) )
+		$cur = new stdClass;
+
 	if ( ! isset( $cur->current ) )
 		$cur->current = '';
 
@@ -97,7 +100,7 @@
 
 	switch ( $cur->response ) {
 	case 'development' :
-		return sprintf( __( 'You are using a development version (%1$s). Cool! Please <a href="%2$s">stay updated</a>.' ), $GLOBALS['wp_version'], network_admin_url( 'update-core.php' ) );
+		return sprintf( __( 'You are using a development version (%1$s). Cool! Please <a href="%2$s">stay updated</a>.' ), get_bloginfo( 'version', 'display' ), network_admin_url( 'update-core.php' ) );
 	break;
 
 	case 'upgrade' :
@@ -106,7 +109,7 @@
 
 	case 'latest' :
 	default :
-		return sprintf( __( 'Version %s' ), $GLOBALS['wp_version'] );
+		return sprintf( __( 'Version %s' ), get_bloginfo( 'version', 'display' ) );
 	break;
 	}
 }
@@ -134,10 +137,11 @@
 	echo "<div class='update-nag'>$msg</div>";
 }
 add_action( 'admin_notices', 'update_nag', 3 );
+add_action( 'network_admin_notices', 'update_nag', 3 );
 
 // Called directly from dashboard
 function update_right_now_message() {
-	$msg = sprintf( __('You are using <span class="b">WordPress %s</span>.'), $GLOBALS['wp_version'] );
+	$msg = sprintf( __( 'You are using <span class="b">WordPress %s</span>.' ), get_bloginfo( 'version', 'display' ) );
 
 	if ( current_user_can('update_core') ) {
 		$cur = get_preferred_from_update_core();
--- a/web/wp-admin/includes/upgrade.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-admin/includes/upgrade.php	Wed Dec 19 17:46:52 2012 -0800
@@ -123,68 +123,6 @@
 	$wpdb->insert( $wpdb->term_taxonomy, array('term_id' => $cat_id, 'taxonomy' => 'category', 'description' => '', 'parent' => 0, 'count' => 1));
 	$cat_tt_id = $wpdb->insert_id;
 
-	// Default link category
-	$cat_name = __('Blogroll');
-	/* translators: Default link category slug */
-	$cat_slug = sanitize_title(_x('Blogroll', 'Default link category slug'));
-
-	if ( global_terms_enabled() ) {
-		$blogroll_id = $wpdb->get_var( $wpdb->prepare( "SELECT cat_ID FROM {$wpdb->sitecategories} WHERE category_nicename = %s", $cat_slug ) );
-		if ( $blogroll_id == null ) {
-			$wpdb->insert( $wpdb->sitecategories, array('cat_ID' => 0, 'cat_name' => $cat_name, 'category_nicename' => $cat_slug, 'last_updated' => current_time('mysql', true)) );
-			$blogroll_id = $wpdb->insert_id;
-		}
-		update_option('default_link_category', $blogroll_id);
-	} else {
-		$blogroll_id = 2;
-	}
-
-	$wpdb->insert( $wpdb->terms, array('term_id' => $blogroll_id, 'name' => $cat_name, 'slug' => $cat_slug, 'term_group' => 0) );
-	$wpdb->insert( $wpdb->term_taxonomy, array('term_id' => $blogroll_id, 'taxonomy' => 'link_category', 'description' => '', 'parent' => 0, 'count' => 7));
-	$blogroll_tt_id = $wpdb->insert_id;
-
-	// Now drop in some default links
-	$default_links = array();
-	$default_links[] = array(	'link_url' => __( 'http://codex.wordpress.org/' ),
-								'link_name' => __( 'Documentation' ),
-								'link_rss' => '',
-								'link_notes' => '');
-
-	$default_links[] = array(	'link_url' => __( 'http://wordpress.org/news/' ),
-								'link_name' => __( 'WordPress Blog' ),
-								'link_rss' => __( 'http://wordpress.org/news/feed/' ),
-								'link_notes' => '');
-
-	$default_links[] = array(	'link_url' => __( 'http://wordpress.org/support/' ),
-								'link_name' => _x( 'Support Forums', 'default link' ),
-								'link_rss' => '',
-								'link_notes' =>'');
-
-	$default_links[] = array(	'link_url' => 'http://wordpress.org/extend/plugins/',
-								'link_name' => _x( 'Plugins', 'Default link to wordpress.org/extend/plugins/' ),
-								'link_rss' => '',
-								'link_notes' =>'');
-
-	$default_links[] = array(	'link_url' => 'http://wordpress.org/extend/themes/',
-								'link_name' => _x( 'Themes', 'Default link to wordpress.org/extend/themes/' ),
-								'link_rss' => '',
-								'link_notes' =>'');
-
-	$default_links[] = array(	'link_url' => __( 'http://wordpress.org/support/forum/requests-and-feedback' ),
-								'link_name' => __( 'Feedback' ),
-								'link_rss' => '',
-								'link_notes' =>'');
-
-	$default_links[] = array(	'link_url' => __( 'http://planet.wordpress.org/' ),
-								'link_name' => __( 'WordPress Planet' ),
-								'link_rss' => '',
-								'link_notes' =>'');
-
-	foreach ( $default_links as $link ) {
-		$wpdb->insert( $wpdb->links, $link);
-		$wpdb->insert( $wpdb->term_relationships, array('term_taxonomy_id' => $blogroll_tt_id, 'object_id' => $wpdb->insert_id) );
-	}
-
 	// First post
 	$now = date('Y-m-d H:i:s');
 	$now_gmt = gmdate('Y-m-d H:i:s');
@@ -224,7 +162,8 @@
 	// Default comment
 	$first_comment_author = __('Mr WordPress');
 	$first_comment_url = 'http://wordpress.org/';
-	$first_comment = __('Hi, this is a comment.<br />To delete a comment, just log in and view the post&#039;s comments. There you will have the option to edit or delete them.');
+	$first_comment = __('Hi, this is a comment.
+To delete a comment, just log in and view the post&#039;s comments. There you will have the option to edit or delete them.');
 	if ( is_multisite() ) {
 		$first_comment_author = get_site_option( 'first_comment_author', $first_comment_author );
 		$first_comment_url = get_site_option( 'first_comment_url', network_home_url() );
@@ -247,7 +186,7 @@
 
 ...or something like this:
 
-<blockquote>The XYZ Doohickey Company was founded in 1971, and has been providing quality doohickies to the public ever since. Located in Gotham City, XYZ employs over 2,000 people and does all kinds of awesome things for the Gotham community.</blockquote>
+<blockquote>The XYZ Doohickey Company was founded in 1971, and has been providing quality doohickeys to the public ever since. Located in Gotham City, XYZ employs over 2,000 people and does all kinds of awesome things for the Gotham community.</blockquote>
 
 As a new WordPress user, you should go to <a href=\"%s\">your dashboard</a> to delete this page and create new pages for your content. Have fun!" ), admin_url() );
 	if ( is_multisite() )
@@ -279,7 +218,7 @@
 	update_option( 'widget_archives', array ( 2 => array ( 'title' => '', 'count' => 0, 'dropdown' => 0 ), '_multiwidget' => 1 ) );
 	update_option( 'widget_categories', array ( 2 => array ( 'title' => '', 'count' => 0, 'hierarchical' => 0, 'dropdown' => 0 ), '_multiwidget' => 1 ) );
 	update_option( 'widget_meta', array ( 2 => array ( 'title' => '' ), '_multiwidget' => 1 ) );
-	update_option( 'sidebars_widgets', array ( 'wp_inactive_widgets' => array ( ), 'sidebar-1' => array ( 0 => 'search-2', 1 => 'recent-posts-2', 2 => 'recent-comments-2', 3 => 'archives-2', 4 => 'categories-2', 5 => 'meta-2', ), 'sidebar-2' => array ( ), 'sidebar-3' => array ( ), 'sidebar-4' => array ( ), 'sidebar-5' => array ( ), 'array_version' => 3 ) );
+	update_option( 'sidebars_widgets', array ( 'wp_inactive_widgets' => array ( ), 'sidebar-1' => array ( 0 => 'search-2', 1 => 'recent-posts-2', 2 => 'recent-comments-2', 3 => 'archives-2', 4 => 'categories-2', 5 => 'meta-2', ), 'sidebar-2' => array ( ), 'sidebar-3' => array ( ), 'array_version' => 3 ) );
 
 	if ( ! is_multisite() )
 		update_user_meta( $user_id, 'show_welcome_panel', 1 );
@@ -319,7 +258,7 @@
  * @param string $password User's Password.
  */
 function wp_new_blog_notification($blog_title, $blog_url, $user_id, $password) {
-	$user = new WP_User($user_id);
+	$user = new WP_User( $user_id );
 	$email = $user->user_email;
 	$name = $user->user_login;
 	$message = sprintf(__("Your new WordPress site has been successfully set up at:
@@ -460,6 +399,11 @@
 	if ( $wp_current_db_version < 20080 )
 		upgrade_340();
 
+	if ( $wp_current_db_version < 22422 )
+		upgrade_350();
+
+	maybe_disable_link_manager();
+
 	maybe_disable_automattic_widgets();
 
 	update_option( 'db_version', $wp_db_version );
@@ -567,11 +511,11 @@
 	$time_difference = $all_options->time_difference;
 
 		$server_time = time()+date('Z');
-	$weblogger_time = $server_time + $time_difference*3600;
+	$weblogger_time = $server_time + $time_difference * HOUR_IN_SECONDS;
 	$gmt_time = time();
 
-	$diff_gmt_server = ($gmt_time - $server_time) / 3600;
-	$diff_weblogger_server = ($weblogger_time - $server_time) / 3600;
+	$diff_gmt_server = ($gmt_time - $server_time) / HOUR_IN_SECONDS;
+	$diff_weblogger_server = ($weblogger_time - $server_time) / HOUR_IN_SECONDS;
 	$diff_gmt_weblogger = $diff_gmt_server - $diff_weblogger_server;
 	$gmt_offset = -$diff_gmt_weblogger;
 
@@ -1050,11 +994,6 @@
 
 	if ( $wp_current_db_version < 8000 )
 		populate_roles_260();
-
-	if ( $wp_current_db_version < 8201 ) {
-		update_option('enable_app', 1);
-		update_option('enable_xmlrpc', 1);
-	}
 }
 
 /**
@@ -1243,6 +1182,33 @@
 }
 
 /**
+ * Execute changes made in WordPress 3.5.
+ *
+ * @since 3.5.0
+ */
+function upgrade_350() {
+	global $wp_current_db_version, $wpdb;
+
+	if ( $wp_current_db_version < 22006 && $wpdb->get_var( "SELECT link_id FROM $wpdb->links LIMIT 1" ) )
+		update_option( 'link_manager_enabled', 1 ); // Previously set to 0 by populate_options()
+
+	if ( $wp_current_db_version < 21811 && is_main_site() && ! defined( 'DO_NOT_UPGRADE_GLOBAL_TABLES' ) ) {
+		$meta_keys = array();
+		foreach ( array_merge( get_post_types(), get_taxonomies() ) as $name ) {
+			if ( false !== strpos( $name, '-' ) )
+			$meta_keys[] = 'edit_' . str_replace( '-', '_', $name ) . '_per_page';
+		}
+		if ( $meta_keys ) {
+			$meta_keys = implode( "', '", $meta_keys );
+			$wpdb->query( "DELETE FROM $wpdb->usermeta WHERE meta_key IN ('$meta_keys')" );
+		}
+	}
+
+	if ( $wp_current_db_version < 22422 && $term = get_term_by( 'slug', 'post-format-standard', 'post_format' ) )
+		wp_delete_term( $term->term_id, 'post_format' );
+}
+
+/**
  * Execute network level changes
  *
  * @since 3.0.0
@@ -1307,6 +1273,10 @@
 			delete_site_option( 'allowed_themes' );
 		}
 	}
+
+	// 3.5
+	if ( $wp_current_db_version < 21823 )
+		update_site_option( 'ms_files_rewriting', '1' );
 }
 
 // The functions we use to actually do stuff
@@ -1954,9 +1924,7 @@
 }
 
 /**
- * {@internal Missing Short Description}}
- *
- * {@internal Missing Long Description}}
+ * Disables the Automattic widgets plugin, which was merged into core.
  *
  * @since 2.2.0
  */
@@ -1973,6 +1941,18 @@
 }
 
 /**
+ * Disables the Link Manager on upgrade, if at the time of upgrade, no links exist in the DB.
+ *
+ * @since 3.5.0
+ */
+function maybe_disable_link_manager() {
+	global $wp_current_db_version, $wpdb;
+
+	if ( $wp_current_db_version >= 22006 && get_option( 'link_manager_enabled' ) && ! $wpdb->get_var( "SELECT link_id FROM $wpdb->links LIMIT 1" ) )
+		update_option( 'link_manager_enabled', 0 );
+}
+
+/**
  * Runs before the schema is upgraded.
  *
  * @since 2.9.0
--- a/web/wp-admin/includes/user.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-admin/includes/user.php	Wed Dec 19 17:46:52 2012 -0800
@@ -69,7 +69,8 @@
 			$user->user_url = '';
 		} else {
 			$user->user_url = esc_url_raw( $_POST['url'] );
-			$user->user_url = preg_match('/^(https?|ftps?|mailto|news|irc|gopher|nntp|feed|telnet):/is', $user->user_url) ? $user->user_url : 'http://'.$user->user_url;
+			$protocols = implode( '|', array_map( 'preg_quote', wp_allowed_protocols() ) );
+			$user->user_url = preg_match('/^(' . $protocols . '):/is', $user->user_url) ? $user->user_url : 'http://'.$user->user_url;
 		}
 	}
 	if ( isset( $_POST['first_name'] ) )
@@ -143,7 +144,7 @@
 	if ( empty( $user->user_email ) ) {
 		$errors->add( 'empty_email', __( '<strong>ERROR</strong>: Please enter an e-mail address.' ), array( 'form-field' => 'email' ) );
 	} elseif ( !is_email( $user->user_email ) ) {
-		$errors->add( 'invalid_email', __( '<strong>ERROR</strong>: The e-mail address isn&#8217;t correct.' ), array( 'form-field' => 'email' ) );
+		$errors->add( 'invalid_email', __( '<strong>ERROR</strong>: The email address isn&#8217;t correct.' ), array( 'form-field' => 'email' ) );
 	} elseif ( ( $owner_id = email_exists($user->user_email) ) && ( !$update || ( $owner_id != $user->ID ) ) ) {
 		$errors->add( 'email_exists', __('<strong>ERROR</strong>: This email is already registered, please choose another one.'), array( 'form-field' => 'email' ) );
 	}
@@ -155,9 +156,9 @@
 		return $errors;
 
 	if ( $update ) {
-		$user_id = wp_update_user( get_object_vars( $user ) );
+		$user_id = wp_update_user( $user );
 	} else {
-		$user_id = wp_insert_user( get_object_vars( $user ) );
+		$user_id = wp_insert_user( $user );
 		wp_new_user_notification( $user_id, isset($_POST['send_password']) ? $pass1 : '' );
 	}
 	return $user_id;
@@ -197,7 +198,7 @@
  * @return object WP_User object with user data.
  */
 function get_user_to_edit( $user_id ) {
-	$user = new WP_User( $user_id );
+	$user = get_userdata( $user_id );
 
 	$user->filter = 'edit';
 
@@ -269,8 +270,18 @@
 		}
 	} else {
 		$reassign = (int) $reassign;
+		$post_ids = $wpdb->get_col( $wpdb->prepare( "SELECT ID FROM $wpdb->posts WHERE post_author = %d", $id ) );
 		$wpdb->update( $wpdb->posts, array('post_author' => $reassign), array('post_author' => $id) );
+		if ( ! empty( $post_ids ) ) {
+			foreach ( $post_ids as $post_id )
+				clean_post_cache( $post_id );
+		}
+		$link_ids = $wpdb->get_col( $wpdb->prepare("SELECT link_id FROM $wpdb->links WHERE link_owner = %d", $id) );
 		$wpdb->update( $wpdb->links, array('link_owner' => $reassign), array('link_owner' => $id) );
+		if ( ! empty( $link_ids ) ) {
+			foreach ( $link_ids as $link_id )
+				clean_bookmark_cache( $link_id );
+		}
 	}
 
 	// FINALLY, delete user
@@ -352,7 +363,7 @@
 	echo '<strong>' . __('Notice:') . '</strong> ';
 	_e('You&rsquo;re using the auto-generated password for your account. Would you like to change it to something easier to remember?');
 	echo '</p><p>';
-	printf( '<a href="%s">' . __('Yes, take me to my profile page') . '</a> | ', admin_url('profile.php') . '#password' );
+	printf( '<a href="%s">' . __('Yes, take me to my profile page') . '</a> | ', get_edit_profile_url( get_current_user_id() ) . '#password' );
 	printf( '<a href="%s" id="default-password-nag-no">' . __('No thanks, do not remind me again') . '</a>', '?default_password_nag=0' );
 	echo '</p></div>';
 }
--- a/web/wp-admin/includes/widgets.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-admin/includes/widgets.php	Wed Dec 19 17:46:52 2012 -0800
@@ -179,7 +179,11 @@
 	<div class="widget-top">
 	<div class="widget-title-action">
 		<a class="widget-action hide-if-no-js" href="#available-widgets"></a>
-		<a class="widget-control-edit hide-if-js" href="<?php echo esc_url( add_query_arg( $query_arg ) ); ?>"><span class="edit"><?php _e('Edit'); ?></span><span class="add"><?php _e('Add'); ?></span></a>
+		<a class="widget-control-edit hide-if-js" href="<?php echo esc_url( add_query_arg( $query_arg ) ); ?>">
+			<span class="edit"><?php _ex( 'Edit', 'widget' ); ?></span>
+			<span class="add"><?php _ex( 'Add', 'widget' ); ?></span>
+			<span class="screen-reader-text"><?php echo $widget_title; ?></span>
+		</a>
 	</div>
 	<div class="widget-title"><h4><?php echo $widget_title ?><span class="in-widget-title"></span></h4></div>
 	</div>
@@ -207,8 +211,8 @@
 		<a class="widget-control-close" href="#close"><?php _e('Close'); ?></a>
 		</div>
 		<div class="alignright<?php if ( 'noform' === $has_form ) echo ' widget-control-noform'; ?>">
-		<img src="<?php echo esc_url( admin_url( 'images/wpspin_light.gif' ) ); ?>" class="ajax-feedback" title="" alt="" />
-		<?php submit_button( __( 'Save' ), 'button-primary widget-control-save', 'savewidget', false, array( 'id' => 'widget-' . esc_attr( $id_format ) . '-savewidget' ) ); ?>
+			<?php submit_button( __( 'Save' ), 'button-primary widget-control-save right', 'savewidget', false, array( 'id' => 'widget-' . esc_attr( $id_format ) . '-savewidget' ) ); ?>
+			<span class="spinner"></span>
 		</div>
 		<br class="clear" />
 	</div>
--- a/web/wp-admin/index.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-admin/index.php	Wed Dec 19 17:46:52 2012 -0800
@@ -17,8 +17,12 @@
 wp_dashboard_setup();
 
 wp_enqueue_script( 'dashboard' );
-wp_enqueue_script( 'plugin-install' );
-wp_enqueue_script( 'media-upload' );
+if ( current_user_can( 'edit_theme_options' ) )
+	wp_enqueue_script( 'customize-loader' );
+if ( current_user_can( 'install_plugins' ) )
+	wp_enqueue_script( 'plugin-install' );
+if ( current_user_can( 'upload_files' ) )
+	wp_enqueue_script( 'media-upload' );
 add_thickbox();
 
 if ( wp_is_mobile() )
@@ -57,7 +61,7 @@
 $help  = '<p>' . __('You can use the following controls to arrange your Dashboard screen to suit your workflow. This is true on most other administration screens as well.') . '</p>';
 $help .= '<p>' . __('<strong>Screen Options</strong> - Use the Screen Options tab to choose which Dashboard boxes to show, and how many columns to display.') . '</p>';
 $help .= '<p>' . __('<strong>Drag and Drop</strong> - To rearrange the boxes, drag and drop by clicking on the title bar of the selected box and releasing when you see a gray dotted-line rectangle appear in the location you want to place the box.') . '</p>';
-$help .= '<p>' . __('<strong>Box Controls</strong> - Click the title bar of the box to expand or collapse it. In addition, some box have configurable content, and will show a &#8220;Configure&#8221; link in the title bar if you hover over it.') . '</p>';
+$help .= '<p>' . __('<strong>Box Controls</strong> - Click the title bar of the box to expand or collapse it. In addition, some boxes have configurable content, and will show a &#8220;Configure&#8221; link in the title bar if you hover over it.') . '</p>';
 
 $screen->add_help_tab( array(
 	'id'      => 'help-layout',
@@ -72,7 +76,7 @@
 	$help .= '<p>' . __('<strong>Recent Comments</strong> - Shows the most recent comments on your posts (configurable, up to 30) and allows you to moderate them.') . '</p>';
 if ( current_user_can( 'publish_posts' ) )
 	$help .= '<p>' . __('<strong>Incoming Links</strong> - Shows links to your site found by Google Blog Search.') . '</p>';
-if ( current_user_can( 'edit_posts' ) ) {
+if ( current_user_can( get_post_type_object( 'post' )->cap->create_posts ) ) {
 	$help .= '<p>' . __('<strong>QuickPress</strong> - Allows you to create a new post and either publish it or save it as a draft.') . '</p>';
 	$help .= '<p>' . __('<strong>Recent Drafts</strong> - Displays links to the 5 most recent draft posts you&#8217;ve started.') . '</p>';
 }
@@ -106,7 +110,21 @@
 <?php screen_icon(); ?>
 <h2><?php echo esc_html( $title ); ?></h2>
 
-<?php wp_welcome_panel(); ?>
+<?php if ( has_action( 'welcome_panel' ) && current_user_can( 'edit_theme_options' ) ) :
+	$classes = 'welcome-panel';
+
+	$option = get_user_meta( get_current_user_id(), 'show_welcome_panel', true );
+	// 0 = hide, 1 = toggled to show or single site creator, 2 = multisite site owner
+	$hide = 0 == $option || ( 2 == $option && wp_get_current_user()->user_email != get_option( 'admin_email' ) );
+	if ( $hide )
+		$classes .= ' hidden'; ?>
+
+ 	<div id="welcome-panel" class="<?php echo esc_attr( $classes ); ?>">
+ 		<?php wp_nonce_field( 'welcome-panel-nonce', 'welcomepanelnonce', false ); ?>
+		<a class="welcome-panel-close" href="<?php echo esc_url( admin_url( '?welcome=0' ) ); ?>"><?php _e( 'Dismiss' ); ?></a>
+		<?php do_action( 'welcome_panel' ); ?>
+	</div>
+<?php endif; ?>
 
 <div id="dashboard-widgets-wrap">
 
--- a/web/wp-admin/install.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-admin/install.php	Wed Dec 19 17:46:52 2012 -0800
@@ -15,8 +15,8 @@
 	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 	<title>Error: PHP is not running</title>
 </head>
-<body>
-	<h1 id="logo"><img alt="WordPress" src="images/wordpress-logo.png?ver=20120216" /></h1>
+<body class="wp-core-ui">
+	<h1 id="logo"><a href="http://wordpress.org/">WordPress</a></h1>
 	<h2>Error: PHP is not running</h2>
 	<p>WordPress requires that your web server is running PHP. Your server does not have PHP installed, or PHP is turned off.</p>
 </body>
@@ -58,10 +58,12 @@
 <head>
 	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 	<title><?php _e( 'WordPress &rsaquo; Installation' ); ?></title>
-	<?php wp_admin_css( 'install', true ); ?>
+	<?php
+	wp_admin_css( 'install', true );
+	?>
 </head>
-<body<?php if ( is_rtl() ) echo ' class="rtl"'; ?>>
-<h1 id="logo"><img alt="WordPress" src="images/wordpress-logo.png?ver=20120216" /></h1>
+<body class="wp-core-ui<?php if ( is_rtl() ) echo ' rtl'; ?>">
+<h1 id="logo"><a href="<?php esc_attr_e( 'http://wordpress.org/' ); ?>"><?php _e( 'WordPress' ); ?></a></h1>
 
 <?php
 } // end display_header()
@@ -134,7 +136,7 @@
 			<td colspan="2"><label><input type="checkbox" name="blog_public" value="1" <?php checked( $blog_public ); ?> /> <?php _e( 'Allow search engines to index this site.' ); ?></label></td>
 		</tr>
 	</table>
-	<p class="step"><input type="submit" name="Submit" value="<?php esc_attr_e( 'Install WordPress' ); ?>" class="button" /></p>
+	<p class="step"><input type="submit" name="Submit" value="<?php esc_attr_e( 'Install WordPress' ); ?>" class="button button-large" /></p>
 </form>
 <?php
 } // end display_setup_form()
@@ -142,7 +144,7 @@
 // Let's check to make sure WP isn't already installed.
 if ( is_blog_installed() ) {
 	display_header();
-	die( '<h1>' . __( 'Already Installed' ) . '</h1><p>' . __( 'You appear to have already installed WordPress. To reinstall please clear your old database tables first.' ) . '</p><p class="step"><a href="../wp-login.php" class="button">' . __('Log In') . '</a></p></body></html>' );
+	die( '<h1>' . __( 'Already Installed' ) . '</h1><p>' . __( 'You appear to have already installed WordPress. To reinstall please clear your old database tables first.' ) . '</p><p class="step"><a href="../wp-login.php" class="button button-large">' . __( 'Log In' ) . '</a></p></body></html>' );
 }
 
 $php_version    = phpversion();
@@ -241,7 +243,7 @@
 	</tr>
 </table>
 
-<p class="step"><a href="../wp-login.php" class="button"><?php _e( 'Log In' ); ?></a></p>
+<p class="step"><a href="../wp-login.php" class="button button-large"><?php _e( 'Log In' ); ?></a></p>
 
 <?php
 		}
--- a/web/wp-admin/js/cat.dev.js	Wed Dec 19 12:35:13 2012 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,5 +0,0 @@
-jQuery(document).ready( function($) {
-	var myConfirm = function() { return '' !== $('#newcat').val(); };
-	$('#jaxcat').prepend('<span id="ajaxcat"><input type="text" name="newcat" id="newcat" size="16" autocomplete="off"/><input type="button" name="Button" class="add:categorychecklist:jaxcat" id="catadd" value="' + catL10n.add + '"/><input type="hidden"/><input type="hidden"/><span id="howto">' + catL10n.how + '</span></span><span id="cat-ajax-response"></span>');
-	$('#categorychecklist').wpList( { alt: '', response: 'cat-ajax-response', confirm: myConfirm } );
-} );
--- a/web/wp-admin/js/cat.js	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-admin/js/cat.js	Wed Dec 19 17:46:52 2012 -0800
@@ -1,1 +1,5 @@
-jQuery(document).ready(function(b){var a=function(){return""!==b("#newcat").val()};b("#jaxcat").prepend('<span id="ajaxcat"><input type="text" name="newcat" id="newcat" size="16" autocomplete="off"/><input type="button" name="Button" class="add:categorychecklist:jaxcat" id="catadd" value="'+catL10n.add+'"/><input type="hidden"/><input type="hidden"/><span id="howto">'+catL10n.how+'</span></span><span id="cat-ajax-response"></span>');b("#categorychecklist").wpList({alt:"",response:"cat-ajax-response",confirm:a})});
\ No newline at end of file
+jQuery(document).ready( function($) {
+	var myConfirm = function() { return '' !== $('#newcat').val(); };
+	$('#jaxcat').prepend('<span id="ajaxcat"><input type="text" name="newcat" id="newcat" size="16" autocomplete="off"/><input type="button" name="Button" data-wp-lists="add:categorychecklist:jaxcat" id="catadd" value="' + catL10n.add + '"/><input type="hidden"/><input type="hidden"/><span id="howto">' + catL10n.how + '</span></span><span id="cat-ajax-response"></span>');
+	$('#categorychecklist').wpList( { alt: '', response: 'cat-ajax-response', confirm: myConfirm } );
+} );
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-admin/js/cat.min.js	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,1 @@
+jQuery(document).ready(function(b){var a=function(){return""!==b("#newcat").val()};b("#jaxcat").prepend('<span id="ajaxcat"><input type="text" name="newcat" id="newcat" size="16" autocomplete="off"/><input type="button" name="Button" data-wp-lists="add:categorychecklist:jaxcat" id="catadd" value="'+catL10n.add+'"/><input type="hidden"/><input type="hidden"/><span id="howto">'+catL10n.how+'</span></span><span id="cat-ajax-response"></span>');b("#categorychecklist").wpList({alt:"",response:"cat-ajax-response",confirm:a})});
\ No newline at end of file
--- a/web/wp-admin/js/categories.dev.js	Wed Dec 19 12:35:13 2012 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,34 +0,0 @@
-jQuery(document).ready(function($) {
-	var options = false, addAfter, delBefore, delAfter;
-	if ( document.forms['addcat'].category_parent )
-		options = document.forms['addcat'].category_parent.options;
-
-	addAfter = function( r, settings ) {
-		var name, id;
-
-		name = $("<span>" + $('name', r).text() + "</span>").text();
-		id = $('cat', r).attr('id');
-		options[options.length] = new Option(name, id);
-	}
-
-	delAfter = function( r, settings ) {
-		var id = $('cat', r).attr('id'), o;
-		for ( o = 0; o < options.length; o++ )
-			if ( id == options[o].value )
-				options[o] = null;
-	}
-
-	delBefore = function(s) {
-		if ( 'undefined' != showNotice )
-			return showNotice.warn() ? s : false;
-
-		return s;
-	}
-
-	if ( options )
-		$('#the-list').wpList( { addAfter: addAfter, delBefore: delBefore, delAfter: delAfter } );
-	else
-		$('#the-list').wpList({ delBefore: delBefore });
-
-	$('.delete a[class^="delete"]').live('click', function(){return false;});
-});
--- a/web/wp-admin/js/categories.js	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-admin/js/categories.js	Wed Dec 19 17:46:52 2012 -0800
@@ -1,1 +1,34 @@
-jQuery(document).ready(function(d){var b=false,e,c,a;if(document.forms.addcat.category_parent){b=document.forms.addcat.category_parent.options}e=function(h,g){var f,i;f=d("<span>"+d("name",h).text()+"</span>").text();i=d("cat",h).attr("id");b[b.length]=new Option(f,i)};a=function(g,f){var i=d("cat",g).attr("id"),h;for(h=0;h<b.length;h++){if(i==b[h].value){b[h]=null}}};c=function(f){if("undefined"!=showNotice){return showNotice.warn()?f:false}return f};if(b){d("#the-list").wpList({addAfter:e,delBefore:c,delAfter:a})}else{d("#the-list").wpList({delBefore:c})}d('.delete a[class^="delete"]').live("click",function(){return false})});
\ No newline at end of file
+jQuery(document).ready(function($) {
+	var options = false, addAfter, delBefore, delAfter;
+	if ( document.forms['addcat'].category_parent )
+		options = document.forms['addcat'].category_parent.options;
+
+	addAfter = function( r, settings ) {
+		var name, id;
+
+		name = $("<span>" + $('name', r).text() + "</span>").text();
+		id = $('cat', r).attr('id');
+		options[options.length] = new Option(name, id);
+	}
+
+	delAfter = function( r, settings ) {
+		var id = $('cat', r).attr('id'), o;
+		for ( o = 0; o < options.length; o++ )
+			if ( id == options[o].value )
+				options[o] = null;
+	}
+
+	delBefore = function(s) {
+		if ( 'undefined' != showNotice )
+			return showNotice.warn() ? s : false;
+
+		return s;
+	}
+
+	if ( options )
+		$('#the-list').wpList( { addAfter: addAfter, delBefore: delBefore, delAfter: delAfter } );
+	else
+		$('#the-list').wpList({ delBefore: delBefore });
+
+	$('.delete a[class^="delete"]').live('click', function(){return false;});
+});
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-admin/js/categories.min.js	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,1 @@
+jQuery(document).ready(function(d){var b=false,e,c,a;if(document.forms.addcat.category_parent){b=document.forms.addcat.category_parent.options}e=function(h,g){var f,i;f=d("<span>"+d("name",h).text()+"</span>").text();i=d("cat",h).attr("id");b[b.length]=new Option(f,i)};a=function(g,f){var i=d("cat",g).attr("id"),h;for(h=0;h<b.length;h++){if(i==b[h].value){b[h]=null}}};c=function(f){if("undefined"!=showNotice){return showNotice.warn()?f:false}return f};if(b){d("#the-list").wpList({addAfter:e,delBefore:c,delAfter:a})}else{d("#the-list").wpList({delBefore:c})}d('.delete a[class^="delete"]').live("click",function(){return false})});
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-admin/js/color-picker.js	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,131 @@
+( function( $, undef ){
+
+	// html stuff
+	var _before = '<a tabindex="0" class="wp-color-result" />',
+		_after = '<div class="wp-picker-holder" />',
+		_wrap = '<div class="wp-picker-container" />',
+		_button = '<input type="button" class="button button-small hidden" />';
+
+	// jQuery UI Widget constructor
+	var ColorPicker = {
+		options: {
+			defaultColor: false,
+			change: false,
+			clear: false,
+			hide: true,
+			palettes: true
+		},
+		_create: function() {
+			// bail early for IE < 8
+			if ( $.browser.msie && parseInt( $.browser.version, 10 ) < 8 )
+				return;
+			var self = this;
+			var el = self.element;
+			$.extend( self.options, el.data() );
+
+			self.initialValue = el.val();
+
+			// Set up HTML structure, hide things
+			el.addClass( 'wp-color-picker' ).hide().wrap( _wrap );
+			self.wrap = el.parent();
+			self.toggler = $( _before ).insertBefore( el ).css( { backgroundColor: self.initialValue } ).attr( "title", wpColorPickerL10n.pick ).attr( "data-current", wpColorPickerL10n.current );
+			self.pickerContainer = $( _after ).insertAfter( el );
+			self.button = $( _button );
+
+			if ( self.options.defaultColor )
+				self.button.addClass( 'wp-picker-default' ).val( wpColorPickerL10n.defaultString );
+			else
+				self.button.addClass( 'wp-picker-clear' ).val( wpColorPickerL10n.clear );
+
+			el.wrap('<span class="wp-picker-input-wrap" />').after(self.button);
+
+			el.iris( {
+				target: self.pickerContainer,
+				hide: true,
+				width: 255,
+				mode: 'hsv',
+				palettes: self.options.palettes,
+				change: function( event, ui ) {
+					self.toggler.css( { backgroundColor: ui.color.toString() } );
+					// check for a custom cb
+					if ( $.isFunction( self.options.change ) )
+						self.options.change.call( this, event, ui );
+				}
+			} );
+			el.val( self.initialValue );
+			self._addListeners();
+			if ( ! self.options.hide )
+				self.toggler.click();
+		},
+		_addListeners: function() {
+			var self = this;
+
+			self.toggler.click( function( event ){
+				event.stopPropagation();
+				self.element.toggle().iris( 'toggle' );
+				self.button.toggleClass('hidden');
+				self.toggler.toggleClass( 'wp-picker-open' );
+
+				// close picker when you click outside it
+				if ( self.toggler.hasClass( 'wp-picker-open' ) )
+					$( "body" ).on( 'click', { wrap: self.wrap, toggler: self.toggler }, self._bodyListener );
+				else
+					$( "body" ).off( 'click', self._bodyListener );
+			});
+
+			self.element.change(function( event ) {
+				var me = $(this),
+					val = me.val();
+				// Empty = clear
+				if ( val === '' || val === '#' ) {
+					self.toggler.css('backgroundColor', '');
+					// fire clear callback if we have one
+					if ( $.isFunction( self.options.clear ) )
+						self.options.clear.call( this, event );
+				}
+			});
+
+			// open a keyboard-focused closed picker with space or enter
+			self.toggler.on('keyup', function( e ) {
+				if ( e.keyCode === 13 || e.keyCode === 32 ) {
+					e.preventDefault();
+					self.toggler.trigger('click').next().focus();
+				}
+			});
+
+			self.button.click( function( event ) {
+				var me = $(this);
+				if ( me.hasClass( 'wp-picker-clear' ) ) {
+					self.element.val( '' );
+					self.toggler.css('backgroundColor', '');
+					if ( $.isFunction( self.options.clear ) )
+						self.options.clear.call( this, event );
+				} else if ( me.hasClass( 'wp-picker-default' ) ) {
+					self.element.val( self.options.defaultColor ).change();
+				}
+			});
+		},
+		_bodyListener: function( event ) {
+			if ( ! event.data.wrap.find( event.target ).length )
+					event.data.toggler.click();
+		},
+		// $("#input").wpColorPicker('color') returns the current color
+		// $("#input").wpColorPicker('color', '#bada55') to set
+		color: function( newColor ) {
+			if ( newColor === undef )
+				return this.element.iris( "option", "color" );
+
+			this.element.iris( "option", "color", newColor );
+		},
+		//$("#input").wpColorPicker('defaultColor') returns the current default color
+		//$("#input").wpColorPicker('defaultColor', newDefaultColor) to set
+		defaultColor: function( newDefaultColor ) {
+			if ( newDefaultColor === undef )
+				return this.options.defaultColor;
+
+			this.options.defaultColor = newDefaultColor;
+		}
+	}
+
+	$.widget( 'wp.wpColorPicker', ColorPicker );
+}( jQuery ) );
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-admin/js/color-picker.min.js	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,1 @@
+(function(f,e){var a='<a tabindex="0" class="wp-color-result" />',c='<div class="wp-picker-holder" />',b='<div class="wp-picker-container" />',g='<input type="button" class="button button-small hidden" />';var d={options:{defaultColor:false,change:false,clear:false,hide:true,palettes:true},_create:function(){if(f.browser.msie&&parseInt(f.browser.version,10)<8){return}var h=this;var i=h.element;f.extend(h.options,i.data());h.initialValue=i.val();i.addClass("wp-color-picker").hide().wrap(b);h.wrap=i.parent();h.toggler=f(a).insertBefore(i).css({backgroundColor:h.initialValue}).attr("title",wpColorPickerL10n.pick).attr("data-current",wpColorPickerL10n.current);h.pickerContainer=f(c).insertAfter(i);h.button=f(g);if(h.options.defaultColor){h.button.addClass("wp-picker-default").val(wpColorPickerL10n.defaultString)}else{h.button.addClass("wp-picker-clear").val(wpColorPickerL10n.clear)}i.wrap('<span class="wp-picker-input-wrap" />').after(h.button);i.iris({target:h.pickerContainer,hide:true,width:255,mode:"hsv",palettes:h.options.palettes,change:function(j,k){h.toggler.css({backgroundColor:k.color.toString()});if(f.isFunction(h.options.change)){h.options.change.call(this,j,k)}}});i.val(h.initialValue);h._addListeners();if(!h.options.hide){h.toggler.click()}},_addListeners:function(){var h=this;h.toggler.click(function(i){i.stopPropagation();h.element.toggle().iris("toggle");h.button.toggleClass("hidden");h.toggler.toggleClass("wp-picker-open");if(h.toggler.hasClass("wp-picker-open")){f("body").on("click",{wrap:h.wrap,toggler:h.toggler},h._bodyListener)}else{f("body").off("click",h._bodyListener)}});h.element.change(function(j){var i=f(this),k=i.val();if(k===""||k==="#"){h.toggler.css("backgroundColor","");if(f.isFunction(h.options.clear)){h.options.clear.call(this,j)}}});h.toggler.on("keyup",function(i){if(i.keyCode===13||i.keyCode===32){i.preventDefault();h.toggler.trigger("click").next().focus()}});h.button.click(function(j){var i=f(this);if(i.hasClass("wp-picker-clear")){h.element.val("");h.toggler.css("backgroundColor","");if(f.isFunction(h.options.clear)){h.options.clear.call(this,j)}}else{if(i.hasClass("wp-picker-default")){h.element.val(h.options.defaultColor).change()}}})},_bodyListener:function(h){if(!h.data.wrap.find(h.target).length){h.data.toggler.click()}},color:function(h){if(h===e){return this.element.iris("option","color")}this.element.iris("option","color",h)},defaultColor:function(h){if(h===e){return this.options.defaultColor}this.options.defaultColor=h}};f.widget("wp.wpColorPicker",d)}(jQuery));
\ No newline at end of file
--- a/web/wp-admin/js/comment.dev.js	Wed Dec 19 12:35:13 2012 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,47 +0,0 @@
-jQuery(document).ready( function($) {
-
-	var stamp = $('#timestamp').html();
-	$('.edit-timestamp').click(function () {
-		if ($('#timestampdiv').is(":hidden")) {
-			$('#timestampdiv').slideDown("normal");
-			$('.edit-timestamp').hide();
-		}
-		return false;
-	});
-
-	$('.cancel-timestamp').click(function() {
-		$('#timestampdiv').slideUp("normal");
-		$('#mm').val($('#hidden_mm').val());
-		$('#jj').val($('#hidden_jj').val());
-		$('#aa').val($('#hidden_aa').val());
-		$('#hh').val($('#hidden_hh').val());
-		$('#mn').val($('#hidden_mn').val());
-		$('#timestamp').html(stamp);
-		$('.edit-timestamp').show();
-		return false;
-	});
-
-	$('.save-timestamp').click(function () { // crazyhorse - multiple ok cancels
-		var aa = $('#aa').val(), mm = $('#mm').val(), jj = $('#jj').val(), hh = $('#hh').val(), mn = $('#mn').val(),
-			newD = new Date( aa, mm - 1, jj, hh, mn );
-
-		if ( newD.getFullYear() != aa || (1 + newD.getMonth()) != mm || newD.getDate() != jj || newD.getMinutes() != mn ) {
-			$('.timestamp-wrap', '#timestampdiv').addClass('form-invalid');
-			return false;
-		} else {
-			$('.timestamp-wrap', '#timestampdiv').removeClass('form-invalid');
-		}
-
-		$('#timestampdiv').slideUp("normal");
-		$('.edit-timestamp').show();
-		$('#timestamp').html(
-			commentL10n.submittedOn + ' <b>' +
-			$( '#mm option[value="' + mm + '"]' ).text() + ' ' +
-			jj + ', ' +
-			aa + ' @ ' +
-			hh + ':' +
-			mn + '</b> '
-		);
-		return false;
-	});
-});
--- a/web/wp-admin/js/comment.js	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-admin/js/comment.js	Wed Dec 19 17:46:52 2012 -0800
@@ -1,1 +1,49 @@
-jQuery(document).ready(function(b){var a=b("#timestamp").html();b(".edit-timestamp").click(function(){if(b("#timestampdiv").is(":hidden")){b("#timestampdiv").slideDown("normal");b(".edit-timestamp").hide()}return false});b(".cancel-timestamp").click(function(){b("#timestampdiv").slideUp("normal");b("#mm").val(b("#hidden_mm").val());b("#jj").val(b("#hidden_jj").val());b("#aa").val(b("#hidden_aa").val());b("#hh").val(b("#hidden_hh").val());b("#mn").val(b("#hidden_mn").val());b("#timestamp").html(a);b(".edit-timestamp").show();return false});b(".save-timestamp").click(function(){var g=b("#aa").val(),h=b("#mm").val(),d=b("#jj").val(),c=b("#hh").val(),f=b("#mn").val(),e=new Date(g,h-1,d,c,f);if(e.getFullYear()!=g||(1+e.getMonth())!=h||e.getDate()!=d||e.getMinutes()!=f){b(".timestamp-wrap","#timestampdiv").addClass("form-invalid");return false}else{b(".timestamp-wrap","#timestampdiv").removeClass("form-invalid")}b("#timestampdiv").slideUp("normal");b(".edit-timestamp").show();b("#timestamp").html(commentL10n.submittedOn+" <b>"+b('#mm option[value="'+h+'"]').text()+" "+d+", "+g+" @ "+c+":"+f+"</b> ");return false})});
\ No newline at end of file
+jQuery(document).ready( function($) {
+
+	postboxes.add_postbox_toggles('comment');
+
+	var stamp = $('#timestamp').html();
+	$('.edit-timestamp').click(function () {
+		if ($('#timestampdiv').is(":hidden")) {
+			$('#timestampdiv').slideDown("normal");
+			$('.edit-timestamp').hide();
+		}
+		return false;
+	});
+
+	$('.cancel-timestamp').click(function() {
+		$('#timestampdiv').slideUp("normal");
+		$('#mm').val($('#hidden_mm').val());
+		$('#jj').val($('#hidden_jj').val());
+		$('#aa').val($('#hidden_aa').val());
+		$('#hh').val($('#hidden_hh').val());
+		$('#mn').val($('#hidden_mn').val());
+		$('#timestamp').html(stamp);
+		$('.edit-timestamp').show();
+		return false;
+	});
+
+	$('.save-timestamp').click(function () { // crazyhorse - multiple ok cancels
+		var aa = $('#aa').val(), mm = $('#mm').val(), jj = $('#jj').val(), hh = $('#hh').val(), mn = $('#mn').val(),
+			newD = new Date( aa, mm - 1, jj, hh, mn );
+
+		if ( newD.getFullYear() != aa || (1 + newD.getMonth()) != mm || newD.getDate() != jj || newD.getMinutes() != mn ) {
+			$('.timestamp-wrap', '#timestampdiv').addClass('form-invalid');
+			return false;
+		} else {
+			$('.timestamp-wrap', '#timestampdiv').removeClass('form-invalid');
+		}
+
+		$('#timestampdiv').slideUp("normal");
+		$('.edit-timestamp').show();
+		$('#timestamp').html(
+			commentL10n.submittedOn + ' <b>' +
+			$( '#mm option[value="' + mm + '"]' ).text() + ' ' +
+			jj + ', ' +
+			aa + ' @ ' +
+			hh + ':' +
+			mn + '</b> '
+		);
+		return false;
+	});
+});
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-admin/js/comment.min.js	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,1 @@
+jQuery(document).ready(function(b){postboxes.add_postbox_toggles("comment");var a=b("#timestamp").html();b(".edit-timestamp").click(function(){if(b("#timestampdiv").is(":hidden")){b("#timestampdiv").slideDown("normal");b(".edit-timestamp").hide()}return false});b(".cancel-timestamp").click(function(){b("#timestampdiv").slideUp("normal");b("#mm").val(b("#hidden_mm").val());b("#jj").val(b("#hidden_jj").val());b("#aa").val(b("#hidden_aa").val());b("#hh").val(b("#hidden_hh").val());b("#mn").val(b("#hidden_mn").val());b("#timestamp").html(a);b(".edit-timestamp").show();return false});b(".save-timestamp").click(function(){var g=b("#aa").val(),h=b("#mm").val(),d=b("#jj").val(),c=b("#hh").val(),f=b("#mn").val(),e=new Date(g,h-1,d,c,f);if(e.getFullYear()!=g||(1+e.getMonth())!=h||e.getDate()!=d||e.getMinutes()!=f){b(".timestamp-wrap","#timestampdiv").addClass("form-invalid");return false}else{b(".timestamp-wrap","#timestampdiv").removeClass("form-invalid")}b("#timestampdiv").slideUp("normal");b(".edit-timestamp").show();b("#timestamp").html(commentL10n.submittedOn+" <b>"+b('#mm option[value="'+h+'"]').text()+" "+d+", "+g+" @ "+c+":"+f+"</b> ");return false})});
\ No newline at end of file
--- a/web/wp-admin/js/common.dev.js	Wed Dec 19 12:35:13 2012 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,370 +0,0 @@
-var showNotice, adminMenu, columns, validateForm, screenMeta;
-(function($){
-// Removed in 3.3.
-// (perhaps) needed for back-compat
-adminMenu = {
-	init : function() {},
-	fold : function() {},
-	restoreMenuState : function() {},
-	toggle : function() {},
-	favorites : function() {}
-};
-
-// show/hide/save table columns
-columns = {
-	init : function() {
-		var that = this;
-		$('.hide-column-tog', '#adv-settings').click( function() {
-			var $t = $(this), column = $t.val();
-			if ( $t.prop('checked') )
-				that.checked(column);
-			else
-				that.unchecked(column);
-
-			columns.saveManageColumnsState();
-		});
-	},
-
-	saveManageColumnsState : function() {
-		var hidden = this.hidden();
-		$.post(ajaxurl, {
-			action: 'hidden-columns',
-			hidden: hidden,
-			screenoptionnonce: $('#screenoptionnonce').val(),
-			page: pagenow
-		});
-	},
-
-	checked : function(column) {
-		$('.column-' + column).show();
-		this.colSpanChange(+1);
-	},
-
-	unchecked : function(column) {
-		$('.column-' + column).hide();
-		this.colSpanChange(-1);
-	},
-
-	hidden : function() {
-		return $('.manage-column').filter(':hidden').map(function() { return this.id; }).get().join(',');
-	},
-
-	useCheckboxesForHidden : function() {
-		this.hidden = function(){
-			return $('.hide-column-tog').not(':checked').map(function() {
-				var id = this.id;
-				return id.substring( id, id.length - 5 );
-			}).get().join(',');
-		};
-	},
-
-	colSpanChange : function(diff) {
-		var $t = $('table').find('.colspanchange'), n;
-		if ( !$t.length )
-			return;
-		n = parseInt( $t.attr('colspan'), 10 ) + diff;
-		$t.attr('colspan', n.toString());
-	}
-}
-
-$(document).ready(function(){columns.init();});
-
-validateForm = function( form ) {
-	return !$( form ).find('.form-required').filter( function() { return $('input:visible', this).val() == ''; } ).addClass( 'form-invalid' ).find('input:visible').change( function() { $(this).closest('.form-invalid').removeClass( 'form-invalid' ); } ).size();
-}
-
-// stub for doing better warnings
-showNotice = {
-	warn : function() {
-		var msg = commonL10n.warnDelete || '';
-		if ( confirm(msg) ) {
-			return true;
-		}
-
-		return false;
-	},
-
-	note : function(text) {
-		alert(text);
-	}
-};
-
-screenMeta = {
-	element: null, // #screen-meta
-	toggles: null, // .screen-meta-toggle
-	page:    null, // #wpcontent
-
-	init: function() {
-		this.element = $('#screen-meta');
-		this.toggles = $('.screen-meta-toggle a');
-		this.page    = $('#wpcontent');
-
-		this.toggles.click( this.toggleEvent );
-	},
-
-	toggleEvent: function( e ) {
-		var panel = $( this.href.replace(/.+#/, '#') );
-		e.preventDefault();
-
-		if ( !panel.length )
-			return;
-
-		if ( panel.is(':visible') )
-			screenMeta.close( panel, $(this) );
-		else
-			screenMeta.open( panel, $(this) );
-	},
-
-	open: function( panel, link ) {
-
-		$('.screen-meta-toggle').not( link.parent() ).css('visibility', 'hidden');
-
-		panel.parent().show();
-		panel.slideDown( 'fast', function() {
-			link.addClass('screen-meta-active');
-		});
-	},
-
-	close: function( panel, link ) {
-		panel.slideUp( 'fast', function() {
-			link.removeClass('screen-meta-active');
-			$('.screen-meta-toggle').css('visibility', '');
-			panel.parent().hide();
-		});
-	}
-};
-
-/**
- * Help tabs.
- */
-$('.contextual-help-tabs').delegate('a', 'click focus', function(e) {
-	var link = $(this),
-		panel;
-
-	e.preventDefault();
-
-	// Don't do anything if the click is for the tab already showing.
-	if ( link.is('.active a') )
-		return false;
-
-	// Links
-	$('.contextual-help-tabs .active').removeClass('active');
-	link.parent('li').addClass('active');
-
-	panel = $( link.attr('href') );
-
-	// Panels
-	$('.help-tab-content').not( panel ).removeClass('active').hide();
-	panel.addClass('active').show();
-});
-
-$(document).ready( function() {
-	var lastClicked = false, checks, first, last, checked, menu = $('#adminmenu'),
-		pageInput = $('input.current-page'), currentPage = pageInput.val(), refresh;
-
-	// admin menu
-	refresh = function(i, el){ // force the browser to refresh the tabbing index
-		var node = $(el), tab = node.attr('tabindex');
-		if ( tab )
-			node.attr('tabindex', '0').attr('tabindex', tab);
-	};
-
-	$('#collapse-menu', menu).click(function(){
-		var body = $(document.body);
-
-		// reset any compensation for submenus near the bottom of the screen
-		$('#adminmenu div.wp-submenu').css('margin-top', '');
-
-		if ( body.hasClass('folded') ) {
-			body.removeClass('folded');
-			setUserSetting('mfold', 'o');
-		} else {
-			body.addClass('folded');
-			setUserSetting('mfold', 'f');
-		}
-		return false;
-	});
-
-	$('li.wp-has-submenu', menu).hoverIntent({
-		over: function(e){
-			var b, h, o, f, m = $(this).find('.wp-submenu'), menutop, wintop, maxtop;
-
-			if ( m.is(':visible') )
-				return;
-
-			menutop = $(this).offset().top;
-			wintop = $(window).scrollTop();
-			maxtop = menutop - wintop - 30; // max = make the top of the sub almost touch admin bar
-
-			b = menutop + m.height() + 1; // Bottom offset of the menu
-			h = $('#wpwrap').height(); // Height of the entire page
-			o = 60 + b - h;
-			f = $(window).height() + wintop - 15; // The fold
-
-			if ( f < (b - o) )
-				o = b - f;
-
-			if ( o > maxtop )
-				o = maxtop;
-
-			if ( o > 1 )
-				m.css('margin-top', '-'+o+'px');
-			else
-				m.css('margin-top', '');
-
-			menu.find('.wp-submenu').removeClass('sub-open');
-			m.addClass('sub-open');
-		},
-		out: function(){
-			$(this).find('.wp-submenu').removeClass('sub-open').css('margin-top', '');
-		},
-		timeout: 200,
-		sensitivity: 7,
-		interval: 90
-	});
-
-	// Tab to select, Enter to open sub, Esc to close sub and focus the top menu
-	$('li.wp-has-submenu > a.wp-not-current-submenu', menu).bind('keydown.adminmenu', function(e){
-		if ( e.which != 13 )
-			return;
-
-		var target = $(e.target);
-
-		e.stopPropagation();
-		e.preventDefault();
-
-		menu.find('.wp-submenu').removeClass('sub-open');
-		target.siblings('.wp-submenu').toggleClass('sub-open').find('a[role="menuitem"]').each(refresh);
-	}).each(refresh);
-
-	$('a[role="menuitem"]', menu).bind('keydown.adminmenu', function(e){
-		if ( e.which != 27 )
-			return;
-
-		var target = $(e.target);
-
-		e.stopPropagation();
-		e.preventDefault();
-
-		target.add( target.siblings() ).closest('.sub-open').removeClass('sub-open').siblings('a.wp-not-current-submenu').focus();
-	});
-
-	// Move .updated and .error alert boxes. Don't move boxes designed to be inline.
-	$('div.wrap h2:first').nextAll('div.updated, div.error').addClass('below-h2');
-	$('div.updated, div.error').not('.below-h2, .inline').insertAfter( $('div.wrap h2:first') );
-
-	// Init screen meta
-	screenMeta.init();
-
-	// check all checkboxes
-	$('tbody').children().children('.check-column').find(':checkbox').click( function(e) {
-		if ( 'undefined' == e.shiftKey ) { return true; }
-		if ( e.shiftKey ) {
-			if ( !lastClicked ) { return true; }
-			checks = $( lastClicked ).closest( 'form' ).find( ':checkbox' );
-			first = checks.index( lastClicked );
-			last = checks.index( this );
-			checked = $(this).prop('checked');
-			if ( 0 < first && 0 < last && first != last ) {
-				checks.slice( first, last ).prop( 'checked', function(){
-					if ( $(this).closest('tr').is(':visible') )
-						return checked;
-
-					return false;
-				});
-			}
-		}
-		lastClicked = this;
-		return true;
-	});
-
-	$('thead, tfoot').find('.check-column :checkbox').click( function(e) {
-		var c = $(this).prop('checked'),
-			kbtoggle = 'undefined' == typeof toggleWithKeyboard ? false : toggleWithKeyboard,
-			toggle = e.shiftKey || kbtoggle;
-
-		$(this).closest( 'table' ).children( 'tbody' ).filter(':visible')
-		.children().children('.check-column').find(':checkbox')
-		.prop('checked', function() {
-			if ( $(this).closest('tr').is(':hidden') )
-				return false;
-			if ( toggle )
-				return $(this).prop( 'checked' );
-			else if (c)
-				return true;
-			return false;
-		});
-
-		$(this).closest('table').children('thead,  tfoot').filter(':visible')
-		.children().children('.check-column').find(':checkbox')
-		.prop('checked', function() {
-			if ( toggle )
-				return false;
-			else if (c)
-				return true;
-			return false;
-		});
-	});
-
-	$('#default-password-nag-no').click( function() {
-		setUserSetting('default_password_nag', 'hide');
-		$('div.default-password-nag').hide();
-		return false;
-	});
-
-	// tab in textareas
-	$('#newcontent').bind('keydown.wpevent_InsertTab', function(e) {
-		if ( e.keyCode != 9 )
-			return true;
-
-		var el = e.target, selStart = el.selectionStart, selEnd = el.selectionEnd, val = el.value, scroll, sel;
-
-		try {
-			this.lastKey = 9; // not a standard DOM property, lastKey is to help stop Opera tab event. See blur handler below.
-		} catch(err) {}
-
-		if ( document.selection ) {
-			el.focus();
-			sel = document.selection.createRange();
-			sel.text = '\t';
-		} else if ( selStart >= 0 ) {
-			scroll = this.scrollTop;
-			el.value = val.substring(0, selStart).concat('\t', val.substring(selEnd) );
-			el.selectionStart = el.selectionEnd = selStart + 1;
-			this.scrollTop = scroll;
-		}
-
-		if ( e.stopPropagation )
-			e.stopPropagation();
-		if ( e.preventDefault )
-			e.preventDefault();
-	});
-
-	$('#newcontent').bind('blur.wpevent_InsertTab', function(e) {
-		if ( this.lastKey && 9 == this.lastKey )
-			this.focus();
-	});
-
-	if ( pageInput.length ) {
-		pageInput.closest('form').submit( function(e){
-
-			// Reset paging var for new filters/searches but not for bulk actions. See #17685.
-			if ( $('select[name="action"]').val() == -1 && $('select[name="action2"]').val() == -1 && pageInput.val() == currentPage )
-				pageInput.val('1');
-		});
-	}
-
-});
-
-// internal use
-$(document).bind( 'wp_CloseOnEscape', function( e, data ) {
-	if ( typeof(data.cb) != 'function' )
-		return;
-
-	if ( typeof(data.condition) != 'function' || data.condition() )
-		data.cb();
-
-	return true;
-});
-
-})(jQuery);
--- a/web/wp-admin/js/common.js	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-admin/js/common.js	Wed Dec 19 17:46:52 2012 -0800
@@ -1,1 +1,427 @@
-var showNotice,adminMenu,columns,validateForm,screenMeta;(function(a){adminMenu={init:function(){},fold:function(){},restoreMenuState:function(){},toggle:function(){},favorites:function(){}};columns={init:function(){var b=this;a(".hide-column-tog","#adv-settings").click(function(){var d=a(this),c=d.val();if(d.prop("checked")){b.checked(c)}else{b.unchecked(c)}columns.saveManageColumnsState()})},saveManageColumnsState:function(){var b=this.hidden();a.post(ajaxurl,{action:"hidden-columns",hidden:b,screenoptionnonce:a("#screenoptionnonce").val(),page:pagenow})},checked:function(b){a(".column-"+b).show();this.colSpanChange(+1)},unchecked:function(b){a(".column-"+b).hide();this.colSpanChange(-1)},hidden:function(){return a(".manage-column").filter(":hidden").map(function(){return this.id}).get().join(",")},useCheckboxesForHidden:function(){this.hidden=function(){return a(".hide-column-tog").not(":checked").map(function(){var b=this.id;return b.substring(b,b.length-5)}).get().join(",")}},colSpanChange:function(b){var d=a("table").find(".colspanchange"),c;if(!d.length){return}c=parseInt(d.attr("colspan"),10)+b;d.attr("colspan",c.toString())}};a(document).ready(function(){columns.init()});validateForm=function(b){return !a(b).find(".form-required").filter(function(){return a("input:visible",this).val()==""}).addClass("form-invalid").find("input:visible").change(function(){a(this).closest(".form-invalid").removeClass("form-invalid")}).size()};showNotice={warn:function(){var b=commonL10n.warnDelete||"";if(confirm(b)){return true}return false},note:function(b){alert(b)}};screenMeta={element:null,toggles:null,page:null,init:function(){this.element=a("#screen-meta");this.toggles=a(".screen-meta-toggle a");this.page=a("#wpcontent");this.toggles.click(this.toggleEvent)},toggleEvent:function(c){var b=a(this.href.replace(/.+#/,"#"));c.preventDefault();if(!b.length){return}if(b.is(":visible")){screenMeta.close(b,a(this))}else{screenMeta.open(b,a(this))}},open:function(b,c){a(".screen-meta-toggle").not(c.parent()).css("visibility","hidden");b.parent().show();b.slideDown("fast",function(){c.addClass("screen-meta-active")})},close:function(b,c){b.slideUp("fast",function(){c.removeClass("screen-meta-active");a(".screen-meta-toggle").css("visibility","");b.parent().hide()})}};a(".contextual-help-tabs").delegate("a","click focus",function(d){var c=a(this),b;d.preventDefault();if(c.is(".active a")){return false}a(".contextual-help-tabs .active").removeClass("active");c.parent("li").addClass("active");b=a(c.attr("href"));a(".help-tab-content").not(b).removeClass("active").hide();b.addClass("active").show()});a(document).ready(function(){var i=false,c,e,j,h,b=a("#adminmenu"),d=a("input.current-page"),f=d.val(),g;g=function(k,m){var n=a(m),l=n.attr("tabindex");if(l){n.attr("tabindex","0").attr("tabindex",l)}};a("#collapse-menu",b).click(function(){var k=a(document.body);a("#adminmenu div.wp-submenu").css("margin-top","");if(k.hasClass("folded")){k.removeClass("folded");setUserSetting("mfold","o")}else{k.addClass("folded");setUserSetting("mfold","f")}return false});a("li.wp-has-submenu",b).hoverIntent({over:function(s){var t,q,k,r,l=a(this).find(".wp-submenu"),u,n,p;if(l.is(":visible")){return}u=a(this).offset().top;n=a(window).scrollTop();p=u-n-30;t=u+l.height()+1;q=a("#wpwrap").height();k=60+t-q;r=a(window).height()+n-15;if(r<(t-k)){k=t-r}if(k>p){k=p}if(k>1){l.css("margin-top","-"+k+"px")}else{l.css("margin-top","")}b.find(".wp-submenu").removeClass("sub-open");l.addClass("sub-open")},out:function(){a(this).find(".wp-submenu").removeClass("sub-open").css("margin-top","")},timeout:200,sensitivity:7,interval:90});a("li.wp-has-submenu > a.wp-not-current-submenu",b).bind("keydown.adminmenu",function(l){if(l.which!=13){return}var k=a(l.target);l.stopPropagation();l.preventDefault();b.find(".wp-submenu").removeClass("sub-open");k.siblings(".wp-submenu").toggleClass("sub-open").find('a[role="menuitem"]').each(g)}).each(g);a('a[role="menuitem"]',b).bind("keydown.adminmenu",function(l){if(l.which!=27){return}var k=a(l.target);l.stopPropagation();l.preventDefault();k.add(k.siblings()).closest(".sub-open").removeClass("sub-open").siblings("a.wp-not-current-submenu").focus()});a("div.wrap h2:first").nextAll("div.updated, div.error").addClass("below-h2");a("div.updated, div.error").not(".below-h2, .inline").insertAfter(a("div.wrap h2:first"));screenMeta.init();a("tbody").children().children(".check-column").find(":checkbox").click(function(k){if("undefined"==k.shiftKey){return true}if(k.shiftKey){if(!i){return true}c=a(i).closest("form").find(":checkbox");e=c.index(i);j=c.index(this);h=a(this).prop("checked");if(0<e&&0<j&&e!=j){c.slice(e,j).prop("checked",function(){if(a(this).closest("tr").is(":visible")){return h}return false})}}i=this;return true});a("thead, tfoot").find(".check-column :checkbox").click(function(m){var n=a(this).prop("checked"),l="undefined"==typeof toggleWithKeyboard?false:toggleWithKeyboard,k=m.shiftKey||l;a(this).closest("table").children("tbody").filter(":visible").children().children(".check-column").find(":checkbox").prop("checked",function(){if(a(this).closest("tr").is(":hidden")){return false}if(k){return a(this).prop("checked")}else{if(n){return true}}return false});a(this).closest("table").children("thead,  tfoot").filter(":visible").children().children(".check-column").find(":checkbox").prop("checked",function(){if(k){return false}else{if(n){return true}}return false})});a("#default-password-nag-no").click(function(){setUserSetting("default_password_nag","hide");a("div.default-password-nag").hide();return false});a("#newcontent").bind("keydown.wpevent_InsertTab",function(p){if(p.keyCode!=9){return true}var m=p.target,r=m.selectionStart,l=m.selectionEnd,q=m.value,k,o;try{this.lastKey=9}catch(n){}if(document.selection){m.focus();o=document.selection.createRange();o.text="\t"}else{if(r>=0){k=this.scrollTop;m.value=q.substring(0,r).concat("\t",q.substring(l));m.selectionStart=m.selectionEnd=r+1;this.scrollTop=k}}if(p.stopPropagation){p.stopPropagation()}if(p.preventDefault){p.preventDefault()}});a("#newcontent").bind("blur.wpevent_InsertTab",function(k){if(this.lastKey&&9==this.lastKey){this.focus()}});if(d.length){d.closest("form").submit(function(k){if(a('select[name="action"]').val()==-1&&a('select[name="action2"]').val()==-1&&d.val()==f){d.val("1")}})}});a(document).bind("wp_CloseOnEscape",function(c,b){if(typeof(b.cb)!="function"){return}if(typeof(b.condition)!="function"||b.condition()){b.cb()}return true})})(jQuery);
\ No newline at end of file
+var showNotice, adminMenu, columns, validateForm, screenMeta;
+(function($){
+// Removed in 3.3.
+// (perhaps) needed for back-compat
+adminMenu = {
+	init : function() {},
+	fold : function() {},
+	restoreMenuState : function() {},
+	toggle : function() {},
+	favorites : function() {}
+};
+
+// show/hide/save table columns
+columns = {
+	init : function() {
+		var that = this;
+		$('.hide-column-tog', '#adv-settings').click( function() {
+			var $t = $(this), column = $t.val();
+			if ( $t.prop('checked') )
+				that.checked(column);
+			else
+				that.unchecked(column);
+
+			columns.saveManageColumnsState();
+		});
+	},
+
+	saveManageColumnsState : function() {
+		var hidden = this.hidden();
+		$.post(ajaxurl, {
+			action: 'hidden-columns',
+			hidden: hidden,
+			screenoptionnonce: $('#screenoptionnonce').val(),
+			page: pagenow
+		});
+	},
+
+	checked : function(column) {
+		$('.column-' + column).show();
+		this.colSpanChange(+1);
+	},
+
+	unchecked : function(column) {
+		$('.column-' + column).hide();
+		this.colSpanChange(-1);
+	},
+
+	hidden : function() {
+		return $('.manage-column').filter(':hidden').map(function() { return this.id; }).get().join(',');
+	},
+
+	useCheckboxesForHidden : function() {
+		this.hidden = function(){
+			return $('.hide-column-tog').not(':checked').map(function() {
+				var id = this.id;
+				return id.substring( id, id.length - 5 );
+			}).get().join(',');
+		};
+	},
+
+	colSpanChange : function(diff) {
+		var $t = $('table').find('.colspanchange'), n;
+		if ( !$t.length )
+			return;
+		n = parseInt( $t.attr('colspan'), 10 ) + diff;
+		$t.attr('colspan', n.toString());
+	}
+}
+
+$(document).ready(function(){columns.init();});
+
+validateForm = function( form ) {
+	return !$( form ).find('.form-required').filter( function() { return $('input:visible', this).val() == ''; } ).addClass( 'form-invalid' ).find('input:visible').change( function() { $(this).closest('.form-invalid').removeClass( 'form-invalid' ); } ).size();
+}
+
+// stub for doing better warnings
+showNotice = {
+	warn : function() {
+		var msg = commonL10n.warnDelete || '';
+		if ( confirm(msg) ) {
+			return true;
+		}
+
+		return false;
+	},
+
+	note : function(text) {
+		alert(text);
+	}
+};
+
+screenMeta = {
+	element: null, // #screen-meta
+	toggles: null, // .screen-meta-toggle
+	page:    null, // #wpcontent
+
+	init: function() {
+		this.element = $('#screen-meta');
+		this.toggles = $('.screen-meta-toggle a');
+		this.page    = $('#wpcontent');
+
+		this.toggles.click( this.toggleEvent );
+	},
+
+	toggleEvent: function( e ) {
+		var panel = $( this.href.replace(/.+#/, '#') );
+		e.preventDefault();
+
+		if ( !panel.length )
+			return;
+
+		if ( panel.is(':visible') )
+			screenMeta.close( panel, $(this) );
+		else
+			screenMeta.open( panel, $(this) );
+	},
+
+	open: function( panel, link ) {
+
+		$('.screen-meta-toggle').not( link.parent() ).css('visibility', 'hidden');
+
+		panel.parent().show();
+		panel.slideDown( 'fast', function() {
+			panel.focus();
+			link.addClass('screen-meta-active').attr('aria-expanded', true);
+		});
+	},
+
+	close: function( panel, link ) {
+		panel.slideUp( 'fast', function() {
+			link.removeClass('screen-meta-active').attr('aria-expanded', false);
+			$('.screen-meta-toggle').css('visibility', '');
+			panel.parent().hide();
+		});
+	}
+};
+
+/**
+ * Help tabs.
+ */
+$('.contextual-help-tabs').delegate('a', 'click focus', function(e) {
+	var link = $(this),
+		panel;
+
+	e.preventDefault();
+
+	// Don't do anything if the click is for the tab already showing.
+	if ( link.is('.active a') )
+		return false;
+
+	// Links
+	$('.contextual-help-tabs .active').removeClass('active');
+	link.parent('li').addClass('active');
+
+	panel = $( link.attr('href') );
+
+	// Panels
+	$('.help-tab-content').not( panel ).removeClass('active').hide();
+	panel.addClass('active').show();
+});
+
+$(document).ready( function() {
+	var lastClicked = false, checks, first, last, checked, menu = $('#adminmenu'), mobileEvent,
+		pageInput = $('input.current-page'), currentPage = pageInput.val();
+
+	// when the menu is folded, make the fly-out submenu header clickable
+	menu.on('click.wp-submenu-head', '.wp-submenu-head', function(e){
+		$(e.target).parent().siblings('a').get(0).click();
+	});
+
+	$('#collapse-menu').on('click.collapse-menu', function(e){
+		var body = $(document.body);
+
+		// reset any compensation for submenus near the bottom of the screen
+		$('#adminmenu div.wp-submenu').css('margin-top', '');
+
+		if ( $(window).width() < 900 ) {
+			if ( body.hasClass('auto-fold') ) {
+				body.removeClass('auto-fold');
+				setUserSetting('unfold', 1);
+				body.removeClass('folded');
+				deleteUserSetting('mfold');
+			} else {
+				body.addClass('auto-fold');
+				deleteUserSetting('unfold');
+			}
+		} else {
+			if ( body.hasClass('folded') ) {
+				body.removeClass('folded');
+				deleteUserSetting('mfold');
+			} else {
+				body.addClass('folded');
+				setUserSetting('mfold', 'f');
+			}
+		}
+	});
+
+	if ( 'ontouchstart' in window || /IEMobile\/[1-9]/.test(navigator.userAgent) ) { // touch screen device
+		// iOS Safari works with touchstart, the rest work with click
+		mobileEvent = /Mobile\/.+Safari/.test(navigator.userAgent) ? 'touchstart' : 'click';
+
+		// close any open submenus when touch/click is not on the menu
+		$(document.body).on( mobileEvent+'.wp-mobile-hover', function(e) {
+			if ( !$(e.target).closest('#adminmenu').length )
+				menu.find('li.wp-has-submenu.opensub').removeClass('opensub');
+		});
+
+		menu.find('a.wp-has-submenu').on( mobileEvent+'.wp-mobile-hover', function(e) {
+			var el = $(this), parent = el.parent();
+
+			// Show the sub instead of following the link if:
+			//	- the submenu is not open
+			//	- the submenu is not shown inline or the menu is not folded
+			if ( !parent.hasClass('opensub') && ( !parent.hasClass('wp-menu-open') || parent.width() < 40 ) ) {
+				e.preventDefault();
+				menu.find('li.opensub').removeClass('opensub');
+				parent.addClass('opensub');
+			}
+		});
+	}
+
+	menu.find('li.wp-has-submenu').hoverIntent({
+		over: function(e){
+			var b, h, o, f, m = $(this).find('.wp-submenu'), menutop, wintop, maxtop, top = parseInt( m.css('top'), 10 );
+
+			if ( isNaN(top) || top > -5 ) // meaning the submenu is visible
+				return;
+
+			menutop = $(this).offset().top;
+			wintop = $(window).scrollTop();
+			maxtop = menutop - wintop - 30; // max = make the top of the sub almost touch admin bar
+
+			b = menutop + m.height() + 1; // Bottom offset of the menu
+			h = $('#wpwrap').height(); // Height of the entire page
+			o = 60 + b - h;
+			f = $(window).height() + wintop - 15; // The fold
+
+			if ( f < (b - o) )
+				o = b - f;
+
+			if ( o > maxtop )
+				o = maxtop;
+
+			if ( o > 1 )
+				m.css('margin-top', '-'+o+'px');
+			else
+				m.css('margin-top', '');
+
+			menu.find('li.menu-top').removeClass('opensub');
+			$(this).addClass('opensub');
+		},
+		out: function(){
+			$(this).removeClass('opensub').find('.wp-submenu').css('margin-top', '');
+		},
+		timeout: 200,
+		sensitivity: 7,
+		interval: 90
+	});
+
+	menu.on('focus.adminmenu', '.wp-submenu a', function(e){
+		$(e.target).closest('li.menu-top').addClass('opensub');
+	}).on('blur.adminmenu', '.wp-submenu a', function(e){
+		$(e.target).closest('li.menu-top').removeClass('opensub');
+	});
+
+	// Move .updated and .error alert boxes. Don't move boxes designed to be inline.
+	$('div.wrap h2:first').nextAll('div.updated, div.error').addClass('below-h2');
+	$('div.updated, div.error').not('.below-h2, .inline').insertAfter( $('div.wrap h2:first') );
+
+	// Init screen meta
+	screenMeta.init();
+
+	// check all checkboxes
+	$('tbody').children().children('.check-column').find(':checkbox').click( function(e) {
+		if ( 'undefined' == e.shiftKey ) { return true; }
+		if ( e.shiftKey ) {
+			if ( !lastClicked ) { return true; }
+			checks = $( lastClicked ).closest( 'form' ).find( ':checkbox' );
+			first = checks.index( lastClicked );
+			last = checks.index( this );
+			checked = $(this).prop('checked');
+			if ( 0 < first && 0 < last && first != last ) {
+				checks.slice( first, last ).prop( 'checked', function(){
+					if ( $(this).closest('tr').is(':visible') )
+						return checked;
+
+					return false;
+				});
+			}
+		}
+		lastClicked = this;
+
+		// toggle "check all" checkboxes
+		var unchecked = $(this).closest('tbody').find(':checkbox').filter(':visible').not(':checked');
+		$(this).closest('table').children('thead, tfoot').find(':checkbox').prop('checked', function() {
+			return ( 0 == unchecked.length );
+		});
+
+		return true;
+	});
+
+	$('thead, tfoot').find('.check-column :checkbox').click( function(e) {
+		var c = $(this).prop('checked'),
+			kbtoggle = 'undefined' == typeof toggleWithKeyboard ? false : toggleWithKeyboard,
+			toggle = e.shiftKey || kbtoggle;
+
+		$(this).closest( 'table' ).children( 'tbody' ).filter(':visible')
+		.children().children('.check-column').find(':checkbox')
+		.prop('checked', function() {
+			if ( $(this).closest('tr').is(':hidden') )
+				return false;
+			if ( toggle )
+				return $(this).prop( 'checked' );
+			else if (c)
+				return true;
+			return false;
+		});
+
+		$(this).closest('table').children('thead,  tfoot').filter(':visible')
+		.children().children('.check-column').find(':checkbox')
+		.prop('checked', function() {
+			if ( toggle )
+				return false;
+			else if (c)
+				return true;
+			return false;
+		});
+	});
+
+	$('#default-password-nag-no').click( function() {
+		setUserSetting('default_password_nag', 'hide');
+		$('div.default-password-nag').hide();
+		return false;
+	});
+
+	// tab in textareas
+	$('#newcontent').bind('keydown.wpevent_InsertTab', function(e) {
+		var el = e.target, selStart, selEnd, val, scroll, sel;
+
+		if ( e.keyCode == 27 ) { // escape key
+			$(el).data('tab-out', true);
+			return;
+		}
+
+		if ( e.keyCode != 9 || e.ctrlKey || e.altKey || e.shiftKey ) // tab key
+			return;
+
+		if ( $(el).data('tab-out') ) {
+			$(el).data('tab-out', false);
+			return;
+		}
+
+		selStart = el.selectionStart;
+		selEnd = el.selectionEnd;
+		val = el.value;
+
+		try {
+			this.lastKey = 9; // not a standard DOM property, lastKey is to help stop Opera tab event. See blur handler below.
+		} catch(err) {}
+
+		if ( document.selection ) {
+			el.focus();
+			sel = document.selection.createRange();
+			sel.text = '\t';
+		} else if ( selStart >= 0 ) {
+			scroll = this.scrollTop;
+			el.value = val.substring(0, selStart).concat('\t', val.substring(selEnd) );
+			el.selectionStart = el.selectionEnd = selStart + 1;
+			this.scrollTop = scroll;
+		}
+
+		if ( e.stopPropagation )
+			e.stopPropagation();
+		if ( e.preventDefault )
+			e.preventDefault();
+	});
+
+	$('#newcontent').bind('blur.wpevent_InsertTab', function(e) {
+		if ( this.lastKey && 9 == this.lastKey )
+			this.focus();
+	});
+
+	if ( pageInput.length ) {
+		pageInput.closest('form').submit( function(e){
+
+			// Reset paging var for new filters/searches but not for bulk actions. See #17685.
+			if ( $('select[name="action"]').val() == -1 && $('select[name="action2"]').val() == -1 && pageInput.val() == currentPage )
+				pageInput.val('1');
+		});
+	}
+
+	// Scroll into view when focused
+	$('#contextual-help-link, #show-settings-link').on( 'focus.scroll-into-view', function(e){
+		if ( e.target.scrollIntoView )
+			e.target.scrollIntoView(false);
+	});
+
+	// Disable upload buttons until files are selected
+	(function(){
+		var button, input, form = $('form.wp-upload-form');
+		if ( ! form.length )
+			return;
+		button = form.find('input[type="submit"]');
+		input = form.find('input[type="file"]');
+
+		function toggleUploadButton() {
+			button.prop('disabled', '' === input.map( function() {
+				return $(this).val();
+			}).get().join(''));
+		}
+		toggleUploadButton();
+		input.on('change', toggleUploadButton);
+	})();
+});
+
+// internal use
+$(document).bind( 'wp_CloseOnEscape', function( e, data ) {
+	if ( typeof(data.cb) != 'function' )
+		return;
+
+	if ( typeof(data.condition) != 'function' || data.condition() )
+		data.cb();
+
+	return true;
+});
+
+})(jQuery);
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-admin/js/common.min.js	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,1 @@
+var showNotice,adminMenu,columns,validateForm,screenMeta;(function(a){adminMenu={init:function(){},fold:function(){},restoreMenuState:function(){},toggle:function(){},favorites:function(){}};columns={init:function(){var b=this;a(".hide-column-tog","#adv-settings").click(function(){var d=a(this),c=d.val();if(d.prop("checked")){b.checked(c)}else{b.unchecked(c)}columns.saveManageColumnsState()})},saveManageColumnsState:function(){var b=this.hidden();a.post(ajaxurl,{action:"hidden-columns",hidden:b,screenoptionnonce:a("#screenoptionnonce").val(),page:pagenow})},checked:function(b){a(".column-"+b).show();this.colSpanChange(+1)},unchecked:function(b){a(".column-"+b).hide();this.colSpanChange(-1)},hidden:function(){return a(".manage-column").filter(":hidden").map(function(){return this.id}).get().join(",")},useCheckboxesForHidden:function(){this.hidden=function(){return a(".hide-column-tog").not(":checked").map(function(){var b=this.id;return b.substring(b,b.length-5)}).get().join(",")}},colSpanChange:function(b){var d=a("table").find(".colspanchange"),c;if(!d.length){return}c=parseInt(d.attr("colspan"),10)+b;d.attr("colspan",c.toString())}};a(document).ready(function(){columns.init()});validateForm=function(b){return !a(b).find(".form-required").filter(function(){return a("input:visible",this).val()==""}).addClass("form-invalid").find("input:visible").change(function(){a(this).closest(".form-invalid").removeClass("form-invalid")}).size()};showNotice={warn:function(){var b=commonL10n.warnDelete||"";if(confirm(b)){return true}return false},note:function(b){alert(b)}};screenMeta={element:null,toggles:null,page:null,init:function(){this.element=a("#screen-meta");this.toggles=a(".screen-meta-toggle a");this.page=a("#wpcontent");this.toggles.click(this.toggleEvent)},toggleEvent:function(c){var b=a(this.href.replace(/.+#/,"#"));c.preventDefault();if(!b.length){return}if(b.is(":visible")){screenMeta.close(b,a(this))}else{screenMeta.open(b,a(this))}},open:function(b,c){a(".screen-meta-toggle").not(c.parent()).css("visibility","hidden");b.parent().show();b.slideDown("fast",function(){b.focus();c.addClass("screen-meta-active").attr("aria-expanded",true)})},close:function(b,c){b.slideUp("fast",function(){c.removeClass("screen-meta-active").attr("aria-expanded",false);a(".screen-meta-toggle").css("visibility","");b.parent().hide()})}};a(".contextual-help-tabs").delegate("a","click focus",function(d){var c=a(this),b;d.preventDefault();if(c.is(".active a")){return false}a(".contextual-help-tabs .active").removeClass("active");c.parent("li").addClass("active");b=a(c.attr("href"));a(".help-tab-content").not(b).removeClass("active").hide();b.addClass("active").show()});a(document).ready(function(){var i=false,d,f,j,h,c=a("#adminmenu"),b,e=a("input.current-page"),g=e.val();c.on("click.wp-submenu-head",".wp-submenu-head",function(k){a(k.target).parent().siblings("a").get(0).click()});a("#collapse-menu").on("click.collapse-menu",function(l){var k=a(document.body);a("#adminmenu div.wp-submenu").css("margin-top","");if(a(window).width()<900){if(k.hasClass("auto-fold")){k.removeClass("auto-fold");setUserSetting("unfold",1);k.removeClass("folded");deleteUserSetting("mfold")}else{k.addClass("auto-fold");deleteUserSetting("unfold")}}else{if(k.hasClass("folded")){k.removeClass("folded");deleteUserSetting("mfold")}else{k.addClass("folded");setUserSetting("mfold","f")}}});if("ontouchstart" in window||/IEMobile\/[1-9]/.test(navigator.userAgent)){b=/Mobile\/.+Safari/.test(navigator.userAgent)?"touchstart":"click";a(document.body).on(b+".wp-mobile-hover",function(k){if(!a(k.target).closest("#adminmenu").length){c.find("li.wp-has-submenu.opensub").removeClass("opensub")}});c.find("a.wp-has-submenu").on(b+".wp-mobile-hover",function(m){var l=a(this),k=l.parent();if(!k.hasClass("opensub")&&(!k.hasClass("wp-menu-open")||k.width()<40)){m.preventDefault();c.find("li.opensub").removeClass("opensub");k.addClass("opensub")}})}c.find("li.wp-has-submenu").hoverIntent({over:function(s){var u,q,k,r,l=a(this).find(".wp-submenu"),v,n,p,t=parseInt(l.css("top"),10);if(isNaN(t)||t>-5){return}v=a(this).offset().top;n=a(window).scrollTop();p=v-n-30;u=v+l.height()+1;q=a("#wpwrap").height();k=60+u-q;r=a(window).height()+n-15;if(r<(u-k)){k=u-r}if(k>p){k=p}if(k>1){l.css("margin-top","-"+k+"px")}else{l.css("margin-top","")}c.find("li.menu-top").removeClass("opensub");a(this).addClass("opensub")},out:function(){a(this).removeClass("opensub").find(".wp-submenu").css("margin-top","")},timeout:200,sensitivity:7,interval:90});c.on("focus.adminmenu",".wp-submenu a",function(k){a(k.target).closest("li.menu-top").addClass("opensub")}).on("blur.adminmenu",".wp-submenu a",function(k){a(k.target).closest("li.menu-top").removeClass("opensub")});a("div.wrap h2:first").nextAll("div.updated, div.error").addClass("below-h2");a("div.updated, div.error").not(".below-h2, .inline").insertAfter(a("div.wrap h2:first"));screenMeta.init();a("tbody").children().children(".check-column").find(":checkbox").click(function(l){if("undefined"==l.shiftKey){return true}if(l.shiftKey){if(!i){return true}d=a(i).closest("form").find(":checkbox");f=d.index(i);j=d.index(this);h=a(this).prop("checked");if(0<f&&0<j&&f!=j){d.slice(f,j).prop("checked",function(){if(a(this).closest("tr").is(":visible")){return h}return false})}}i=this;var k=a(this).closest("tbody").find(":checkbox").filter(":visible").not(":checked");a(this).closest("table").children("thead, tfoot").find(":checkbox").prop("checked",function(){return(0==k.length)});return true});a("thead, tfoot").find(".check-column :checkbox").click(function(m){var n=a(this).prop("checked"),l="undefined"==typeof toggleWithKeyboard?false:toggleWithKeyboard,k=m.shiftKey||l;a(this).closest("table").children("tbody").filter(":visible").children().children(".check-column").find(":checkbox").prop("checked",function(){if(a(this).closest("tr").is(":hidden")){return false}if(k){return a(this).prop("checked")}else{if(n){return true}}return false});a(this).closest("table").children("thead,  tfoot").filter(":visible").children().children(".check-column").find(":checkbox").prop("checked",function(){if(k){return false}else{if(n){return true}}return false})});a("#default-password-nag-no").click(function(){setUserSetting("default_password_nag","hide");a("div.default-password-nag").hide();return false});a("#newcontent").bind("keydown.wpevent_InsertTab",function(p){var m=p.target,r,l,q,k,o;if(p.keyCode==27){a(m).data("tab-out",true);return}if(p.keyCode!=9||p.ctrlKey||p.altKey||p.shiftKey){return}if(a(m).data("tab-out")){a(m).data("tab-out",false);return}r=m.selectionStart;l=m.selectionEnd;q=m.value;try{this.lastKey=9}catch(n){}if(document.selection){m.focus();o=document.selection.createRange();o.text="\t"}else{if(r>=0){k=this.scrollTop;m.value=q.substring(0,r).concat("\t",q.substring(l));m.selectionStart=m.selectionEnd=r+1;this.scrollTop=k}}if(p.stopPropagation){p.stopPropagation()}if(p.preventDefault){p.preventDefault()}});a("#newcontent").bind("blur.wpevent_InsertTab",function(k){if(this.lastKey&&9==this.lastKey){this.focus()}});if(e.length){e.closest("form").submit(function(k){if(a('select[name="action"]').val()==-1&&a('select[name="action2"]').val()==-1&&e.val()==g){e.val("1")}})}a("#contextual-help-link, #show-settings-link").on("focus.scroll-into-view",function(k){if(k.target.scrollIntoView){k.target.scrollIntoView(false)}});(function(){var l,k,m=a("form.wp-upload-form");if(!m.length){return}l=m.find('input[type="submit"]');k=m.find('input[type="file"]');function n(){l.prop("disabled",""===k.map(function(){return a(this).val()}).get().join(""))}n();k.on("change",n)})()});a(document).bind("wp_CloseOnEscape",function(c,b){if(typeof(b.cb)!="function"){return}if(typeof(b.condition)!="function"||b.condition()){b.cb()}return true})})(jQuery);
\ No newline at end of file
--- a/web/wp-admin/js/custom-background.dev.js	Wed Dec 19 12:35:13 2012 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,66 +0,0 @@
-var farbtastic, pickColor;
-
-(function($) {
-
-	var defaultColor = '';
-
-	pickColor = function(color) {
-		farbtastic.setColor(color);
-		$('#background-color').val(color);
-		$('#custom-background-image').css('background-color', color);
-		// If we have a default color, and they match, then we need to hide the 'Default' link.
-		// Otherwise, we hide the 'Clear' link when it is empty.
-		if ( ( defaultColor && color === defaultColor ) || ( ! defaultColor && ( '' === color || '#' === color ) ) )
-			$('#clearcolor').hide();
-		else
-			$('#clearcolor').show();
-	}
-
-	$(document).ready(function() {
-
-		defaultColor = $('#defaultcolor').val();
-
-		$('#pickcolor').click(function() {
-			$('#colorPickerDiv').show();
-			return false;
-		});
-
-		$('#clearcolor a').click( function(e) {
-			pickColor( defaultColor );
-			e.preventDefault();
-		});
-
-		$('#background-color').keyup(function() {
-			var _hex = $('#background-color').val(), hex = _hex;
-			if ( hex.charAt(0) != '#' )
-				hex = '#' + hex;
-			hex = hex.replace(/[^#a-fA-F0-9]+/, '');
-			if ( hex != _hex )
-				$('#background-color').val(hex);
-			if ( hex.length == 4 || hex.length == 7 )
-				pickColor( hex );
-		});
-
-		$('input[name="background-position-x"]').change(function() {
-			$('#custom-background-image').css('background-position', $(this).val() + ' top');
-		});
-
-		$('input[name="background-repeat"]').change(function() {
-			$('#custom-background-image').css('background-repeat', $(this).val());
-		});
-
-		farbtastic = $.farbtastic('#colorPickerDiv', function(color) {
-			pickColor(color);
-		});
-		pickColor($('#background-color').val());
-
-		$(document).mousedown(function(){
-			$('#colorPickerDiv').each(function(){
-				var display = $(this).css('display');
-				if ( display == 'block' )
-					$(this).fadeOut(2);
-			});
-		});
-	});
-
-})(jQuery);
\ No newline at end of file
--- a/web/wp-admin/js/custom-background.js	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-admin/js/custom-background.js	Wed Dec 19 17:46:52 2012 -0800
@@ -1,1 +1,74 @@
-var farbtastic,pickColor;(function(b){var a="";pickColor=function(c){farbtastic.setColor(c);b("#background-color").val(c);b("#custom-background-image").css("background-color",c);if((a&&c===a)||(!a&&(""===c||"#"===c))){b("#clearcolor").hide()}else{b("#clearcolor").show()}};b(document).ready(function(){a=b("#defaultcolor").val();b("#pickcolor").click(function(){b("#colorPickerDiv").show();return false});b("#clearcolor a").click(function(c){pickColor(a);c.preventDefault()});b("#background-color").keyup(function(){var d=b("#background-color").val(),c=d;if(c.charAt(0)!="#"){c="#"+c}c=c.replace(/[^#a-fA-F0-9]+/,"");if(c!=d){b("#background-color").val(c)}if(c.length==4||c.length==7){pickColor(c)}});b('input[name="background-position-x"]').change(function(){b("#custom-background-image").css("background-position",b(this).val()+" top")});b('input[name="background-repeat"]').change(function(){b("#custom-background-image").css("background-repeat",b(this).val())});farbtastic=b.farbtastic("#colorPickerDiv",function(c){pickColor(c)});pickColor(b("#background-color").val());b(document).mousedown(function(){b("#colorPickerDiv").each(function(){var c=b(this).css("display");if(c=="block"){b(this).fadeOut(2)}})})})})(jQuery);
\ No newline at end of file
+(function($) {
+	$(document).ready(function() {
+		var bgImage = $("#custom-background-image"),
+			frame;
+
+		$('#background-color').wpColorPicker({
+			change: function( event, ui ) {
+				bgImage.css('background-color', ui.color.toString());
+			},
+			clear: function() {
+				bgImage.css('background-color', '');
+			}
+		});
+
+		$('input[name="background-position-x"]').change(function() {
+			bgImage.css('background-position', $(this).val() + ' top');
+		});
+
+		$('input[name="background-repeat"]').change(function() {
+			bgImage.css('background-repeat', $(this).val());
+		});
+
+		$('#choose-from-library-link').click( function( event ) {
+			var $el = $(this);
+
+			event.preventDefault();
+
+			// If the media frame already exists, reopen it.
+			if ( frame ) {
+				frame.open();
+				return;
+			}
+
+			// Create the media frame.
+			frame = wp.media.frames.customBackground = wp.media({
+				// Set the title of the modal.
+				title: $el.data('choose'),
+
+				// Tell the modal to show only images.
+				library: {
+					type: 'image'
+				},
+
+				// Customize the submit button.
+				button: {
+					// Set the text of the button.
+					text: $el.data('update'),
+					// Tell the button not to close the modal, since we're
+					// going to refresh the page when the image is selected.
+					close: false
+				}
+			});
+
+			// When an image is selected, run a callback.
+			frame.on( 'select', function() {
+				// Grab the selected attachment.
+				var attachment = frame.state().get('selection').first();
+
+				// Run an AJAX request to set the background image.
+				$.post( ajaxurl, {
+					action: 'set-background-image',
+					attachment_id: attachment.id,
+					size: 'full'
+				}).done( function() {
+					// When the request completes, reload the window.
+					window.location.reload();
+				});
+			});
+
+			// Finally, open the modal.
+			frame.open();
+		});
+	});
+})(jQuery);
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-admin/js/custom-background.min.js	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,1 @@
+(function(a){a(document).ready(function(){var b=a("#custom-background-image"),c;a("#background-color").wpColorPicker({change:function(d,e){b.css("background-color",e.color.toString())},clear:function(){b.css("background-color","")}});a('input[name="background-position-x"]').change(function(){b.css("background-position",a(this).val()+" top")});a('input[name="background-repeat"]').change(function(){b.css("background-repeat",a(this).val())});a("#choose-from-library-link").click(function(e){var d=a(this);e.preventDefault();if(c){c.open();return}c=wp.media.frames.customBackground=wp.media({title:d.data("choose"),library:{type:"image"},button:{text:d.data("update"),close:false}});c.on("select",function(){var f=c.state().get("selection").first();a.post(ajaxurl,{action:"set-background-image",attachment_id:f.id,size:"full"}).done(function(){window.location.reload()})});c.open()})})})(jQuery);
\ No newline at end of file
--- a/web/wp-admin/js/custom-fields.dev.js	Wed Dec 19 12:35:13 2012 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,34 +0,0 @@
-jQuery(document).ready( function($) {
-	var before, addBefore, addAfter, delBefore;
-
-	before = function() {
-		var nonce = $('#newmeta [name="_ajax_nonce"]').val(), postId = $('#post_ID').val();
-		if ( !nonce || !postId ) { return false; }
-		return [nonce,postId];
-	}
-
-	addBefore = function( s ) {
-		var b = before();
-		if ( !b ) { return false; }
-		s.data = s.data.replace(/_ajax_nonce=[a-f0-9]+/, '_ajax_nonce=' + b[0]) + '&post_id=' + b[1];
-		return s;
-	};
-
-	addAfter = function( r, s ) {
-		var postId = $('postid', r).text(), h;
-		if ( !postId ) { return; }
-		$('#post_ID').attr( 'name', 'post_ID' ).val( postId );
-		h = $('#hiddenaction');
-		if ( 'post' == h.val() ) { h.val( 'postajaxpost' ); }
-	};
-
-	delBefore = function( s ) {
-		var b = before(); if ( !b ) return false;
-		s.data._ajax_nonce = b[0]; s.data.post_id = b[1];
-		return s;
-	}
-
-	$('#the-list')
-		.wpList( { addBefore: addBefore, addAfter: addAfter, delBefore: delBefore } )
-		.find('.updatemeta, .deletemeta').attr( 'type', 'button' );
-} );
--- a/web/wp-admin/js/custom-fields.js	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-admin/js/custom-fields.js	Wed Dec 19 17:46:52 2012 -0800
@@ -1,1 +1,34 @@
-jQuery(document).ready(function(d){var c,b,e,a;c=function(){var g=d('#newmeta [name="_ajax_nonce"]').val(),f=d("#post_ID").val();if(!g||!f){return false}return[g,f]};b=function(g){var f=c();if(!f){return false}g.data=g.data.replace(/_ajax_nonce=[a-f0-9]+/,"_ajax_nonce="+f[0])+"&post_id="+f[1];return g};e=function(j,i){var f=d("postid",j).text(),g;if(!f){return}d("#post_ID").attr("name","post_ID").val(f);g=d("#hiddenaction");if("post"==g.val()){g.val("postajaxpost")}};a=function(g){var f=c();if(!f){return false}g.data._ajax_nonce=f[0];g.data.post_id=f[1];return g};d("#the-list").wpList({addBefore:b,addAfter:e,delBefore:a}).find(".updatemeta, .deletemeta").attr("type","button")});
\ No newline at end of file
+jQuery(document).ready( function($) {
+	var before, addBefore, addAfter, delBefore;
+
+	before = function() {
+		var nonce = $('#newmeta [name="_ajax_nonce"]').val(), postId = $('#post_ID').val();
+		if ( !nonce || !postId ) { return false; }
+		return [nonce,postId];
+	}
+
+	addBefore = function( s ) {
+		var b = before();
+		if ( !b ) { return false; }
+		s.data = s.data.replace(/_ajax_nonce=[a-f0-9]+/, '_ajax_nonce=' + b[0]) + '&post_id=' + b[1];
+		return s;
+	};
+
+	addAfter = function( r, s ) {
+		var postId = $('postid', r).text(), h;
+		if ( !postId ) { return; }
+		$('#post_ID').attr( 'name', 'post_ID' ).val( postId );
+		h = $('#hiddenaction');
+		if ( 'post' == h.val() ) { h.val( 'postajaxpost' ); }
+	};
+
+	delBefore = function( s ) {
+		var b = before(); if ( !b ) return false;
+		s.data._ajax_nonce = b[0]; s.data.post_id = b[1];
+		return s;
+	}
+
+	$('#the-list')
+		.wpList( { addBefore: addBefore, addAfter: addAfter, delBefore: delBefore } )
+		.find('.updatemeta, .deletemeta').attr( 'type', 'button' );
+} );
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-admin/js/custom-fields.min.js	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,1 @@
+jQuery(document).ready(function(d){var c,b,e,a;c=function(){var g=d('#newmeta [name="_ajax_nonce"]').val(),f=d("#post_ID").val();if(!g||!f){return false}return[g,f]};b=function(g){var f=c();if(!f){return false}g.data=g.data.replace(/_ajax_nonce=[a-f0-9]+/,"_ajax_nonce="+f[0])+"&post_id="+f[1];return g};e=function(j,i){var f=d("postid",j).text(),g;if(!f){return}d("#post_ID").attr("name","post_ID").val(f);g=d("#hiddenaction");if("post"==g.val()){g.val("postajaxpost")}};a=function(g){var f=c();if(!f){return false}g.data._ajax_nonce=f[0];g.data.post_id=f[1];return g};d("#the-list").wpList({addBefore:b,addAfter:e,delBefore:a}).find(".updatemeta, .deletemeta").attr("type","button")});
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-admin/js/custom-header.js	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,60 @@
+(function($) {
+	var frame;
+
+	$( function() {
+		// Fetch available headers and apply jQuery.masonry
+		// once the images have loaded.
+		var $headers = $('.available-headers');
+
+		$headers.imagesLoaded( function() {
+			$headers.masonry({
+				itemSelector: '.default-header',
+				isRTL: !! ( 'undefined' != typeof isRtl && isRtl )
+			});
+		});
+
+		// Build the choose from library frame.
+		$('#choose-from-library-link').click( function( event ) {
+			var $el = $(this);
+			event.preventDefault();
+
+			// If the media frame already exists, reopen it.
+			if ( frame ) {
+				frame.open();
+				return;
+			}
+
+			// Create the media frame.
+			frame = wp.media.frames.customHeader = wp.media({
+				// Set the title of the modal.
+				title: $el.data('choose'),
+
+				// Tell the modal to show only images.
+				library: {
+					type: 'image'
+				},
+
+				// Customize the submit button.
+				button: {
+					// Set the text of the button.
+					text: $el.data('update'),
+					// Tell the button not to close the modal, since we're
+					// going to refresh the page when the image is selected.
+					close: false
+				}
+			});
+
+			// When an image is selected, run a callback.
+			frame.on( 'select', function() {
+				// Grab the selected attachment.
+				var attachment = frame.state().get('selection').first(),
+					link = $el.data('updateLink');
+
+				// Tell the browser to navigate to the crop step.
+				window.location = link + '&file=' + attachment.id;
+			});
+
+			frame.open();
+		});
+	});
+}(jQuery));
--- a/web/wp-admin/js/customize-controls.dev.js	Wed Dec 19 12:35:13 2012 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,963 +0,0 @@
-(function( exports, $ ){
-	var api = wp.customize;
-
-	/*
-	 * @param options
-	 * - previewer - The Previewer instance to sync with.
-	 * - transport - The transport to use for previewing. Supports 'refresh' and 'postMessage'.
-	 */
-	api.Setting = api.Value.extend({
-		initialize: function( id, value, options ) {
-			var element;
-
-			api.Value.prototype.initialize.call( this, value, options );
-
-			this.id = id;
-			this.transport = this.transport || 'refresh';
-
-			this.bind( this.preview );
-		},
-		preview: function() {
-			switch ( this.transport ) {
-				case 'refresh':
-					return this.previewer.refresh();
-				case 'postMessage':
-					return this.previewer.send( 'setting', [ this.id, this() ] );
-			}
-		}
-	});
-
-	api.Control = api.Class.extend({
-		initialize: function( id, options ) {
-			var control = this,
-				nodes, radios, settings;
-
-			this.params = {};
-			$.extend( this, options || {} );
-
-			this.id = id;
-			this.selector = '#customize-control-' + id.replace( ']', '' ).replace( '[', '-' );
-			this.container = $( this.selector );
-
-			settings = $.map( this.params.settings, function( value ) {
-				return value;
-			});
-
-			api.apply( api, settings.concat( function() {
-				var key;
-
-				control.settings = {};
-				for ( key in control.params.settings ) {
-					control.settings[ key ] = api( control.params.settings[ key ] );
-				}
-
-				control.setting = control.settings['default'] || null;
-				control.ready();
-			}) );
-
-			control.elements = [];
-
-			nodes  = this.container.find('[data-customize-setting-link]');
-			radios = {};
-
-			nodes.each( function() {
-				var node = $(this),
-					name;
-
-				if ( node.is(':radio') ) {
-					name = node.prop('name');
-					if ( radios[ name ] )
-						return;
-
-					radios[ name ] = true;
-					node = nodes.filter( '[name="' + name + '"]' );
-				}
-
-				api( node.data('customizeSettingLink'), function( setting ) {
-					var element = new api.Element( node );
-					control.elements.push( element );
-					element.sync( setting );
-					element.set( setting() );
-				});
-			});
-		},
-
-		ready: function() {},
-
-		dropdownInit: function() {
-			var control  = this,
-				statuses = this.container.find('.dropdown-status'),
-				params   = this.params,
-				update   = function( to ) {
-					if ( typeof	to === 'string' && params.statuses && params.statuses[ to ] )
-						statuses.html( params.statuses[ to ] ).show();
-					else
-						statuses.hide();
-				};
-
-			// Support the .dropdown class to open/close complex elements
-			this.container.on( 'click', '.dropdown', function( event ) {
-				event.preventDefault();
-				control.container.toggleClass('open');
-			});
-
-			this.setting.bind( update );
-			update( this.setting() );
-		}
-	});
-
-	api.ColorControl = api.Control.extend({
-		ready: function() {
-			var control = this,
-				rhex, spot, input, text, update;
-
-			rhex   = /^#([A-Fa-f0-9]{3}){0,2}$/;
-			spot   = this.container.find('.dropdown-content');
-			input  = new api.Element( this.container.find('.color-picker-hex') );
-			update = function( color ) {
-				spot.css( 'background', color );
-				control.farbtastic.setColor( color );
-			};
-
-			this.farbtastic = $.farbtastic( this.container.find('.farbtastic-placeholder'), control.setting.set );
-
-			// Only pass through values that are valid hexes/empty.
-			input.sync( this.setting ).validate = function( to ) {
-				return rhex.test( to ) ? to : null;
-			};
-
-			this.setting.bind( update );
-			update( this.setting() );
-
-			this.dropdownInit();
-		}
-	});
-
-	api.UploadControl = api.Control.extend({
-		ready: function() {
-			var control = this;
-
-			this.params.removed = this.params.removed || '';
-
-			this.success = $.proxy( this.success, this );
-
-			this.uploader = $.extend({
-				container: this.container,
-				browser:   this.container.find('.upload'),
-				dropzone:  this.container.find('.upload-dropzone'),
-				success:   this.success
-			}, this.uploader || {} );
-
-			if ( this.uploader.supported ) {
-				if ( control.params.context )
-					control.uploader.param( 'post_data[context]', this.params.context );
-
-				control.uploader.param( 'post_data[theme]', api.settings.theme.stylesheet );
-			}
-
-			this.uploader = new wp.Uploader( this.uploader );
-
-			this.remover = this.container.find('.remove');
-			this.remover.click( function( event ) {
-				control.setting.set( control.params.removed );
-				event.preventDefault();
-			});
-
-			this.removerVisibility = $.proxy( this.removerVisibility, this );
-			this.setting.bind( this.removerVisibility );
-			this.removerVisibility( this.setting.get() );
-		},
-		success: function( attachment ) {
-			this.setting.set( attachment.url );
-		},
-		removerVisibility: function( to ) {
-			this.remover.toggle( to != this.params.removed );
-		}
-	});
-
-	api.ImageControl = api.UploadControl.extend({
-		ready: function() {
-			var control = this,
-				panels;
-
-			this.uploader = {
-				init: function( up ) {
-					var fallback, button;
-
-					if ( this.supports.dragdrop )
-						return;
-
-					// Maintain references while wrapping the fallback button.
-					fallback = control.container.find( '.upload-fallback' );
-					button   = fallback.children().detach();
-
-					this.browser.detach().empty().append( button );
-					fallback.append( this.browser ).show();
-				}
-			};
-
-			api.UploadControl.prototype.ready.call( this );
-
-			this.thumbnail    = this.container.find('.preview-thumbnail img');
-			this.thumbnailSrc = $.proxy( this.thumbnailSrc, this );
-			this.setting.bind( this.thumbnailSrc );
-
-			this.library = this.container.find('.library');
-
-			// Generate tab objects
-			this.tabs = {};
-			panels    = this.library.find('.library-content');
-
-			this.library.children('ul').children('li').each( function() {
-				var link  = $(this),
-					id    = link.data('customizeTab'),
-					panel = panels.filter('[data-customize-tab="' + id + '"]');
-
-				control.tabs[ id ] = {
-					both:  link.add( panel ),
-					link:  link,
-					panel: panel
-				};
-			});
-
-			// Bind tab switch events
-			this.library.children('ul').on( 'click', 'li', function( event ) {
-				var id  = $(this).data('customizeTab'),
-					tab = control.tabs[ id ];
-
-				event.preventDefault();
-
-				if ( tab.link.hasClass('library-selected') )
-					return;
-
-				control.selected.both.removeClass('library-selected');
-				control.selected = tab;
-				control.selected.both.addClass('library-selected');
-			});
-
-			// Bind events to switch image urls.
-			this.library.on( 'click', 'a', function( event ) {
-				var value = $(this).data('customizeImageValue');
-
-				if ( value ) {
-					control.setting.set( value );
-					event.preventDefault();
-				}
-			});
-
-			if ( this.tabs.uploaded ) {
-				this.tabs.uploaded.target = this.library.find('.uploaded-target');
-				if ( ! this.tabs.uploaded.panel.find('.thumbnail').length )
-					this.tabs.uploaded.both.addClass('hidden');
-			}
-
-			// Select a tab
-			panels.each( function() {
-				var tab = control.tabs[ $(this).data('customizeTab') ];
-
-				// Select the first visible tab.
-				if ( ! tab.link.hasClass('hidden') ) {
-					control.selected = tab;
-					tab.both.addClass('library-selected');
-					return false;
-				}
-			});
-
-			this.dropdownInit();
-		},
-		success: function( attachment ) {
-			api.UploadControl.prototype.success.call( this, attachment );
-
-			// Add the uploaded image to the uploaded tab.
-			if ( this.tabs.uploaded && this.tabs.uploaded.target.length ) {
-				this.tabs.uploaded.both.removeClass('hidden');
-
-				attachment.element = $( '<a href="#" class="thumbnail"></a>' )
-					.data( 'customizeImageValue', attachment.url )
-					.append( '<img src="' +  attachment.url+ '" />' )
-					.appendTo( this.tabs.uploaded.target );
-			}
-		},
-		thumbnailSrc: function( to ) {
-			if ( /^(https?:)?\/\//.test( to ) )
-				this.thumbnail.prop( 'src', to ).show();
-			else
-				this.thumbnail.hide();
-		}
-	});
-
-	// Change objects contained within the main customize object to Settings.
-	api.defaultConstructor = api.Setting;
-
-	// Create the collection of Control objects.
-	api.control = new api.Values({ defaultConstructor: api.Control });
-
-	api.PreviewFrame = api.Messenger.extend({
-		sensitivity: 2000,
-
-		initialize: function( params, options ) {
-			var deferred = $.Deferred(),
-				self     = this;
-
-			// This is the promise object.
-			deferred.promise( this );
-
-			this.container = params.container;
-			this.signature = params.signature;
-
-			$.extend( params, { channel: api.PreviewFrame.uuid() });
-
-			api.Messenger.prototype.initialize.call( this, params, options );
-
-			this.add( 'previewUrl', params.previewUrl );
-
-			this.query = $.extend( params.query || {}, { customize_messenger_channel: this.channel() });
-
-			this.run( deferred );
-		},
-
-		run: function( deferred ) {
-			var self   = this,
-				loaded = false,
-				ready  = false;
-
-			if ( this._ready )
-				this.unbind( 'ready', this._ready );
-
-			this._ready = function() {
-				ready = true;
-
-				if ( loaded )
-					deferred.resolveWith( self );
-			};
-
-			this.bind( 'ready', this._ready );
-
-			this.request = $.ajax( this.previewUrl(), {
-				type: 'POST',
-				data: this.query,
-				xhrFields: {
-					withCredentials: true
-				}
-			} );
-
-			this.request.fail( function() {
-				deferred.rejectWith( self, [ 'request failure' ] );
-			});
-
-			this.request.done( function( response ) {
-				var location = self.request.getResponseHeader('Location'),
-					signature = self.signature,
-					index;
-
-				// Check if the location response header differs from the current URL.
-				// If so, the request was redirected; try loading the requested page.
-				if ( location && location != self.previewUrl() ) {
-					deferred.rejectWith( self, [ 'redirect', location ] );
-					return;
-				}
-
-				// Check if the user is not logged in.
-				if ( '0' === response ) {
-					self.login( deferred );
-					return;
-				}
-
-				// Check for cheaters.
-				if ( '-1' === response ) {
-					deferred.rejectWith( self, [ 'cheatin' ] );
-					return;
-				}
-
-				// Check for a signature in the request.
-				index = response.lastIndexOf( signature );
-				if ( -1 === index || index < response.lastIndexOf('</html>') ) {
-					deferred.rejectWith( self, [ 'unsigned' ] );
-					return;
-				}
-
-				// Strip the signature from the request.
-				response = response.slice( 0, index ) + response.slice( index + signature.length );
-
-				// Create the iframe and inject the html content.
-				self.iframe = $('<iframe />').appendTo( self.container );
-
-				// Bind load event after the iframe has been added to the page;
-				// otherwise it will fire when injected into the DOM.
-				self.iframe.one( 'load', function() {
-					loaded = true;
-
-					if ( ready ) {
-						deferred.resolveWith( self );
-					} else {
-						setTimeout( function() {
-							deferred.rejectWith( self, [ 'ready timeout' ] );
-						}, self.sensitivity );
-					}
-				});
-
-				self.targetWindow( self.iframe[0].contentWindow );
-
-				self.targetWindow().document.open();
-				self.targetWindow().document.write( response );
-				self.targetWindow().document.close();
-			});
-		},
-
-		login: function( deferred ) {
-			var self = this,
-				reject;
-
-			reject = function() {
-				deferred.rejectWith( self, [ 'logged out' ] );
-			};
-
-			if ( this.triedLogin )
-				return reject();
-
-			// Check if we have an admin cookie.
-			$.get( api.settings.url.ajax, {
-				action: 'logged-in'
-			}).fail( reject ).done( function( response ) {
-				var iframe;
-
-				if ( '1' !== response )
-					reject();
-
-				iframe = $('<iframe src="' + self.previewUrl() + '" />').hide();
-				iframe.appendTo( self.container );
-				iframe.load( function() {
-					self.triedLogin = true;
-
-					iframe.remove();
-					self.run( deferred );
-				});
-			});
-		},
-
-		destroy: function() {
-			api.Messenger.prototype.destroy.call( this );
-			this.request.abort();
-
-			if ( this.iframe )
-				this.iframe.remove();
-
-			delete this.request;
-			delete this.iframe;
-			delete this.targetWindow;
-		}
-	});
-
-	(function(){
-		var uuid = 0;
-		api.PreviewFrame.uuid = function() {
-			return 'preview-' + uuid++;
-		};
-	}());
-
-	api.Previewer = api.Messenger.extend({
-		refreshBuffer: 250,
-
-		/**
-		 * Requires params:
-		 *  - container  - a selector or jQuery element
-		 *  - previewUrl - the URL of preview frame
-		 */
-		initialize: function( params, options ) {
-			var self = this,
-				rscheme = /^https?/,
-				url;
-
-			$.extend( this, options || {} );
-
-			/*
-			 * Wrap this.refresh to prevent it from hammering the servers:
-			 *
-			 * If refresh is called once and no other refresh requests are
-			 * loading, trigger the request immediately.
-			 *
-			 * If refresh is called while another refresh request is loading,
-			 * debounce the refresh requests:
-			 * 1. Stop the loading request (as it is instantly outdated).
-			 * 2. Trigger the new request once refresh hasn't been called for
-			 *    self.refreshBuffer milliseconds.
-			 */
-			this.refresh = (function( self ) {
-				var refresh  = self.refresh,
-					callback = function() {
-						timeout = null;
-						refresh.call( self );
-					},
-					timeout;
-
-				return function() {
-					if ( typeof timeout !== 'number' ) {
-						if ( self.loading ) {
-							self.abort();
-						} else {
-							return callback();
-						}
-					}
-
-					clearTimeout( timeout );
-					timeout = setTimeout( callback, self.refreshBuffer );
-				};
-			})( this );
-
-			this.container   = api.ensure( params.container );
-			this.allowedUrls = params.allowedUrls;
-			this.signature   = params.signature;
-
-			params.url = window.location.href;
-
-			api.Messenger.prototype.initialize.call( this, params );
-
-			this.add( 'scheme', this.origin() ).link( this.origin ).setter( function( to ) {
-				var match = to.match( rscheme );
-				return match ? match[0] : '';
-			});
-
-			// Limit the URL to internal, front-end links.
-			//
-			// If the frontend and the admin are served from the same domain, load the
-			// preview over ssl if the customizer is being loaded over ssl. This avoids
-			// insecure content warnings. This is not attempted if the admin and frontend
-			// are on different domains to avoid the case where the frontend doesn't have
-			// ssl certs.
-
-			this.add( 'previewUrl', params.previewUrl ).setter( function( to ) {
-				var result;
-
-				// Check for URLs that include "/wp-admin/" or end in "/wp-admin".
-				// Strip hashes and query strings before testing.
-				if ( /\/wp-admin(\/|$)/.test( to.replace(/[#?].*$/, '') ) )
-					return null;
-
-				// Attempt to match the URL to the control frame's scheme
-				// and check if it's allowed. If not, try the original URL.
-				$.each([ to.replace( rscheme, self.scheme() ), to ], function( i, url ) {
-					$.each( self.allowedUrls, function( i, allowed ) {
-						if ( 0 === url.indexOf( allowed ) ) {
-							result = url;
-							return false;
-						}
-					});
-					if ( result )
-						return false;
-				});
-
-				// If we found a matching result, return it. If not, bail.
-				return result ? result : null;
-			});
-
-			// Refresh the preview when the URL is changed (but not yet).
-			this.previewUrl.bind( this.refresh );
-
-			this.scroll = 0;
-			this.bind( 'scroll', function( distance ) {
-				this.scroll = distance;
-			});
-
-			// Update the URL when the iframe sends a URL message.
-			this.bind( 'url', this.previewUrl );
-		},
-
-		query: function() {},
-
-		abort: function() {
-			if ( this.loading ) {
-				this.loading.destroy();
-				delete this.loading;
-			}
-		},
-
-		refresh: function() {
-			var self = this;
-
-			this.abort();
-
-			this.loading = new api.PreviewFrame({
-				url:        this.url(),
-				previewUrl: this.previewUrl(),
-				query:      this.query() || {},
-				container:  this.container,
-				signature:  this.signature
-			});
-
-			this.loading.done( function() {
-				// 'this' is the loading frame
-				this.bind( 'synced', function() {
-					if ( self.preview )
-						self.preview.destroy();
-					self.preview = this;
-					delete self.loading;
-
-					self.targetWindow( this.targetWindow() );
-					self.channel( this.channel() );
-
-					self.send( 'active' );
-				});
-
-				this.send( 'sync', {
-					scroll:   self.scroll,
-					settings: api.get()
-				});
-			});
-
-			this.loading.fail( function( reason, location ) {
-				if ( 'redirect' === reason && location )
-					self.previewUrl( location );
-
-				if ( 'logged out' === reason ) {
-					if ( self.preview ) {
-						self.preview.destroy();
-						delete self.preview;
-					}
-
-					self.login().done( self.refresh );
-				}
-
-				if ( 'cheatin' === reason )
-					self.cheatin();
-			});
-		},
-
-		login: function() {
-			var previewer = this,
-				deferred, messenger, iframe;
-
-			if ( this._login )
-				return this._login;
-
-			deferred = $.Deferred();
-			this._login = deferred.promise();
-
-			messenger = new api.Messenger({
-				channel: 'login',
-				url:     api.settings.url.login
-			});
-
-			iframe = $('<iframe src="' + api.settings.url.login + '" />').appendTo( this.container );
-
-			messenger.targetWindow( iframe[0].contentWindow );
-
-			messenger.bind( 'login', function() {
-				iframe.remove();
-				messenger.destroy();
-				delete previewer._login;
-				deferred.resolve();
-			});
-
-			return this._login;
-		},
-
-		cheatin: function() {
-			$( document.body ).empty().addClass('cheatin').append( '<p>' + api.l10n.cheatin + '</p>' );
-		}
-	});
-
-	/* =====================================================================
-	 * Ready.
-	 * ===================================================================== */
-
-	api.controlConstructor = {
-		color:  api.ColorControl,
-		upload: api.UploadControl,
-		image:  api.ImageControl
-	};
-
-	$( function() {
-		api.settings = window._wpCustomizeSettings;
-		api.l10n = window._wpCustomizeControlsL10n;
-
-		// Check if we can run the customizer.
-		if ( ! api.settings )
-			return;
-
-		// Redirect to the fallback preview if any incompatibilities are found.
-		if ( ! $.support.postMessage || ( ! $.support.cors && api.settings.isCrossDomain ) )
-			return window.location = api.settings.url.fallback;
-
-		var body = $( document.body ),
-			overlay = body.children('.wp-full-overlay'),
-			query, previewer, parent;
-
-		// Prevent the form from saving when enter is pressed.
-		$('#customize-controls').on( 'keydown', function( e ) {
-			if ( $( e.target ).is('textarea') )
-				return;
-
-			if ( 13 === e.which ) // Enter
-				e.preventDefault();
-		});
-
-		// Initialize Previewer
-		previewer = new api.Previewer({
-			container:   '#customize-preview',
-			form:        '#customize-controls',
-			previewUrl:  api.settings.url.preview,
-			allowedUrls: api.settings.url.allowed,
-			signature:   'WP_CUSTOMIZER_SIGNATURE'
-		}, {
-
-			nonce: api.settings.nonce,
-
-			query: function() {
-				return {
-					wp_customize: 'on',
-					theme:        api.settings.theme.stylesheet,
-					customized:   JSON.stringify( api.get() ),
-					nonce:        this.nonce.preview
-				};
-			},
-
-			save: function() {
-				var self  = this,
-					query = $.extend( this.query(), {
-						action: 'customize_save',
-						nonce:  this.nonce.save
-					}),
-					request = $.post( api.settings.url.ajax, query );
-
-				api.trigger( 'save', request );
-
-				body.addClass('saving');
-
-				request.always( function() {
-					body.removeClass('saving');
-				});
-
-				request.done( function( response ) {
-					// Check if the user is logged out.
-					if ( '0' === response ) {
-						self.preview.iframe.hide();
-						self.login().done( function() {
-							self.save();
-							self.preview.iframe.show();
-						});
-						return;
-					}
-
-					// Check for cheaters.
-					if ( '-1' === response ) {
-						self.cheatin();
-						return;
-					}
-
-					api.trigger( 'saved' );
-				});
-			}
-		});
-
-		// Refresh the nonces if the preview sends updated nonces over.
- 		previewer.bind( 'nonce', function( nonce ) {
- 			$.extend( this.nonce, nonce );
- 		});
-
-		$.each( api.settings.settings, function( id, data ) {
-			api.create( id, id, data.value, {
-				transport: data.transport,
-				previewer: previewer
-			} );
-		});
-
-		$.each( api.settings.controls, function( id, data ) {
-			var constructor = api.controlConstructor[ data.type ] || api.Control,
-				control;
-
-			control = api.control.add( id, new constructor( id, {
-				params: data,
-				previewer: previewer
-			} ) );
-		});
-
-		// Check if preview url is valid and load the preview frame.
-		if ( previewer.previewUrl() )
-			previewer.refresh();
-		else
-			previewer.previewUrl( api.settings.url.home );
-
-		// Save and activated states
-		(function() {
-			var state = new api.Values(),
-				saved = state.create('saved'),
-				activated = state.create('activated');
-
-			state.bind( 'change', function() {
-				var save = $('#save'),
-					back = $('.back');
-
-				if ( ! activated() ) {
-					save.val( api.l10n.activate ).prop( 'disabled', false );
-					back.text( api.l10n.cancel );
-
-				} else if ( saved() ) {
-					save.val( api.l10n.saved ).prop( 'disabled', true );
-					back.text( api.l10n.close );
-
-				} else {
-					save.val( api.l10n.save ).prop( 'disabled', false );
-					back.text( api.l10n.cancel );
-				}
-			});
-
-			// Set default states.
-			saved( true );
-			activated( api.settings.theme.active );
-
-			api.bind( 'change', function() {
-				state('saved').set( false );
-			});
-
-			api.bind( 'saved', function() {
-				state('saved').set( true );
-				state('activated').set( true );
-			});
-
-			activated.bind( function( to ) {
-				if ( to )
-					api.trigger( 'activated' );
-			});
-
-			// Expose states to the API.
-			api.state = state;
-		}());
-
-		// Temporary accordion code.
-		$('.customize-section-title').click( function( event ) {
-			var clicked = $( this ).parents( '.customize-section' );
-
-			if ( clicked.hasClass('cannot-expand') )
-				return;
-
-			$( '.customize-section' ).not( clicked ).removeClass( 'open' );
-			clicked.toggleClass( 'open' );
-			event.preventDefault();
-		});
-
-		// Button bindings.
-		$('#save').click( function( event ) {
-			previewer.save();
-			event.preventDefault();
-		});
-
-		$('.collapse-sidebar').click( function( event ) {
-			overlay.toggleClass( 'collapsed' ).toggleClass( 'expanded' );
-			event.preventDefault();
-		});
-
-		// Create a potential postMessage connection with the parent frame.
-		parent = new api.Messenger({
-			url: api.settings.url.parent,
-			channel: 'loader'
-		});
-
-		// If we receive a 'back' event, we're inside an iframe.
-		// Send any clicks to the 'Return' link to the parent page.
-		parent.bind( 'back', function() {
-			$('.back').on( 'click.back', function( event ) {
-				event.preventDefault();
-				parent.send( 'close' );
-			});
-		});
-
-		// Pass events through to the parent.
-		api.bind( 'saved', function() {
-			parent.send( 'saved' );
-		});
-
-		// When activated, let the loader handle redirecting the page.
-		// If no loader exists, redirect the page ourselves (if a url exists).
-		api.bind( 'activated', function() {
-			if ( parent.targetWindow() )
-				parent.send( 'activated', api.settings.url.activated );
-			else if ( api.settings.url.activated )
-				window.location = api.settings.url.activated;
-		});
-
-		// Initialize the connection with the parent frame.
-		parent.send( 'ready' );
-
-		// Control visibility for default controls
-		$.each({
-			'background_image': {
-				controls: [ 'background_repeat', 'background_position_x', 'background_attachment' ],
-				callback: function( to ) { return !! to }
-			},
-			'show_on_front': {
-				controls: [ 'page_on_front', 'page_for_posts' ],
-				callback: function( to ) { return 'page' === to }
-			},
-			'header_textcolor': {
-				controls: [ 'header_textcolor' ],
-				callback: function( to ) { return 'blank' !== to }
-			}
-		}, function( settingId, o ) {
-			api( settingId, function( setting ) {
-				$.each( o.controls, function( i, controlId ) {
-					api.control( controlId, function( control ) {
-						var visibility = function( to ) {
-							control.container.toggle( o.callback( to ) );
-						};
-
-						visibility( setting.get() );
-						setting.bind( visibility );
-					});
-				});
-			});
-		});
-
-		// Juggle the two controls that use header_textcolor
-		api.control( 'display_header_text', function( control ) {
-			var last = '';
-
-			control.elements[0].unsync( api( 'header_textcolor' ) );
-
-			control.element = new api.Element( control.container.find('input') );
-			control.element.set( 'blank' !== control.setting() );
-
-			control.element.bind( function( to ) {
-				if ( ! to )
-					last = api( 'header_textcolor' ).get();
-
-				control.setting.set( to ? last : 'blank' );
-			});
-
-			control.setting.bind( function( to ) {
-				control.element.set( 'blank' !== to );
-			});
-		});
-
-		// Handle header image data
-		api.control( 'header_image', function( control ) {
-			control.setting.bind( function( to ) {
-				if ( to === control.params.removed )
-					control.settings.data.set( false );
-			});
-
-			control.library.on( 'click', 'a', function( event ) {
-				control.settings.data.set( $(this).data('customizeHeaderImageData') );
-			});
-
-			control.uploader.success = function( attachment ) {
-				var data;
-
-				api.ImageControl.prototype.success.call( control, attachment );
-
-				data = {
-					attachment_id: attachment.id,
-					url:           attachment.url,
-					thumbnail_url: attachment.url,
-					height:        attachment.meta.height,
-					width:         attachment.meta.width
-				};
-
-				attachment.element.data( 'customizeHeaderImageData', data );
-				control.settings.data.set( data );
-			}
-		});
-
-		api.trigger( 'ready' );
-	});
-
-})( wp, jQuery );
\ No newline at end of file
--- a/web/wp-admin/js/customize-controls.js	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-admin/js/customize-controls.js	Wed Dec 19 17:46:52 2012 -0800
@@ -1,1 +1,1019 @@
-(function(a,c){var b=wp.customize;b.Setting=b.Value.extend({initialize:function(g,f,d){var e;b.Value.prototype.initialize.call(this,f,d);this.id=g;this.transport=this.transport||"refresh";this.bind(this.preview)},preview:function(){switch(this.transport){case"refresh":return this.previewer.refresh();case"postMessage":return this.previewer.send("setting",[this.id,this()])}}});b.Control=b.Class.extend({initialize:function(i,e){var g=this,d,h,f;this.params={};c.extend(this,e||{});this.id=i;this.selector="#customize-control-"+i.replace("]","").replace("[","-");this.container=c(this.selector);f=c.map(this.params.settings,function(j){return j});b.apply(b,f.concat(function(){var j;g.settings={};for(j in g.params.settings){g.settings[j]=b(g.params.settings[j])}g.setting=g.settings["default"]||null;g.ready()}));g.elements=[];d=this.container.find("[data-customize-setting-link]");h={};d.each(function(){var k=c(this),j;if(k.is(":radio")){j=k.prop("name");if(h[j]){return}h[j]=true;k=d.filter('[name="'+j+'"]')}b(k.data("customizeSettingLink"),function(m){var l=new b.Element(k);g.elements.push(l);l.sync(m);l.set(m())})})},ready:function(){},dropdownInit:function(){var e=this,d=this.container.find(".dropdown-status"),f=this.params,g=function(h){if(typeof h==="string"&&f.statuses&&f.statuses[h]){d.html(f.statuses[h]).show()}else{d.hide()}};this.container.on("click",".dropdown",function(h){h.preventDefault();e.container.toggleClass("open")});this.setting.bind(g);g(this.setting())}});b.ColorControl=b.Control.extend({ready:function(){var g=this,f,e,d,h,i;f=/^#([A-Fa-f0-9]{3}){0,2}$/;e=this.container.find(".dropdown-content");d=new b.Element(this.container.find(".color-picker-hex"));i=function(j){e.css("background",j);g.farbtastic.setColor(j)};this.farbtastic=c.farbtastic(this.container.find(".farbtastic-placeholder"),g.setting.set);d.sync(this.setting).validate=function(j){return f.test(j)?j:null};this.setting.bind(i);i(this.setting());this.dropdownInit()}});b.UploadControl=b.Control.extend({ready:function(){var d=this;this.params.removed=this.params.removed||"";this.success=c.proxy(this.success,this);this.uploader=c.extend({container:this.container,browser:this.container.find(".upload"),dropzone:this.container.find(".upload-dropzone"),success:this.success},this.uploader||{});if(this.uploader.supported){if(d.params.context){d.uploader.param("post_data[context]",this.params.context)}d.uploader.param("post_data[theme]",b.settings.theme.stylesheet)}this.uploader=new wp.Uploader(this.uploader);this.remover=this.container.find(".remove");this.remover.click(function(e){d.setting.set(d.params.removed);e.preventDefault()});this.removerVisibility=c.proxy(this.removerVisibility,this);this.setting.bind(this.removerVisibility);this.removerVisibility(this.setting.get())},success:function(d){this.setting.set(d.url)},removerVisibility:function(d){this.remover.toggle(d!=this.params.removed)}});b.ImageControl=b.UploadControl.extend({ready:function(){var e=this,d;this.uploader={init:function(f){var h,g;if(this.supports.dragdrop){return}h=e.container.find(".upload-fallback");g=h.children().detach();this.browser.detach().empty().append(g);h.append(this.browser).show()}};b.UploadControl.prototype.ready.call(this);this.thumbnail=this.container.find(".preview-thumbnail img");this.thumbnailSrc=c.proxy(this.thumbnailSrc,this);this.setting.bind(this.thumbnailSrc);this.library=this.container.find(".library");this.tabs={};d=this.library.find(".library-content");this.library.children("ul").children("li").each(function(){var g=c(this),h=g.data("customizeTab"),f=d.filter('[data-customize-tab="'+h+'"]');e.tabs[h]={both:g.add(f),link:g,panel:f}});this.library.children("ul").on("click","li",function(g){var h=c(this).data("customizeTab"),f=e.tabs[h];g.preventDefault();if(f.link.hasClass("library-selected")){return}e.selected.both.removeClass("library-selected");e.selected=f;e.selected.both.addClass("library-selected")});this.library.on("click","a",function(f){var g=c(this).data("customizeImageValue");if(g){e.setting.set(g);f.preventDefault()}});if(this.tabs.uploaded){this.tabs.uploaded.target=this.library.find(".uploaded-target");if(!this.tabs.uploaded.panel.find(".thumbnail").length){this.tabs.uploaded.both.addClass("hidden")}}d.each(function(){var f=e.tabs[c(this).data("customizeTab")];if(!f.link.hasClass("hidden")){e.selected=f;f.both.addClass("library-selected");return false}});this.dropdownInit()},success:function(d){b.UploadControl.prototype.success.call(this,d);if(this.tabs.uploaded&&this.tabs.uploaded.target.length){this.tabs.uploaded.both.removeClass("hidden");d.element=c('<a href="#" class="thumbnail"></a>').data("customizeImageValue",d.url).append('<img src="'+d.url+'" />').appendTo(this.tabs.uploaded.target)}},thumbnailSrc:function(d){if(/^(https?:)?\/\//.test(d)){this.thumbnail.prop("src",d).show()}else{this.thumbnail.hide()}}});b.defaultConstructor=b.Setting;b.control=new b.Values({defaultConstructor:b.Control});b.PreviewFrame=b.Messenger.extend({sensitivity:2000,initialize:function(g,f){var e=c.Deferred(),d=this;e.promise(this);this.container=g.container;this.signature=g.signature;c.extend(g,{channel:b.PreviewFrame.uuid()});b.Messenger.prototype.initialize.call(this,g,f);this.add("previewUrl",g.previewUrl);this.query=c.extend(g.query||{},{customize_messenger_channel:this.channel()});this.run(e)},run:function(e){var d=this,f=false,g=false;if(this._ready){this.unbind("ready",this._ready)}this._ready=function(){g=true;if(f){e.resolveWith(d)}};this.bind("ready",this._ready);this.request=c.ajax(this.previewUrl(),{type:"POST",data:this.query,xhrFields:{withCredentials:true}});this.request.fail(function(){e.rejectWith(d,["request failure"])});this.request.done(function(j){var i=d.request.getResponseHeader("Location"),h=d.signature,k;if(i&&i!=d.previewUrl()){e.rejectWith(d,["redirect",i]);return}if("0"===j){d.login(e);return}if("-1"===j){e.rejectWith(d,["cheatin"]);return}k=j.lastIndexOf(h);if(-1===k||k<j.lastIndexOf("</html>")){e.rejectWith(d,["unsigned"]);return}j=j.slice(0,k)+j.slice(k+h.length);d.iframe=c("<iframe />").appendTo(d.container);d.iframe.one("load",function(){f=true;if(g){e.resolveWith(d)}else{setTimeout(function(){e.rejectWith(d,["ready timeout"])},d.sensitivity)}});d.targetWindow(d.iframe[0].contentWindow);d.targetWindow().document.open();d.targetWindow().document.write(j);d.targetWindow().document.close()})},login:function(e){var d=this,f;f=function(){e.rejectWith(d,["logged out"])};if(this.triedLogin){return f()}c.get(b.settings.url.ajax,{action:"logged-in"}).fail(f).done(function(g){var h;if("1"!==g){f()}h=c('<iframe src="'+d.previewUrl()+'" />').hide();h.appendTo(d.container);h.load(function(){d.triedLogin=true;h.remove();d.run(e)})})},destroy:function(){b.Messenger.prototype.destroy.call(this);this.request.abort();if(this.iframe){this.iframe.remove()}delete this.request;delete this.iframe;delete this.targetWindow}});(function(){var d=0;b.PreviewFrame.uuid=function(){return"preview-"+d++}}());b.Previewer=b.Messenger.extend({refreshBuffer:250,initialize:function(h,f){var d=this,g=/^https?/,e;c.extend(this,f||{});this.refresh=(function(i){var j=i.refresh,l=function(){k=null;j.call(i)},k;return function(){if(typeof k!=="number"){if(i.loading){i.abort()}else{return l()}}clearTimeout(k);k=setTimeout(l,i.refreshBuffer)}})(this);this.container=b.ensure(h.container);this.allowedUrls=h.allowedUrls;this.signature=h.signature;h.url=window.location.href;b.Messenger.prototype.initialize.call(this,h);this.add("scheme",this.origin()).link(this.origin).setter(function(j){var i=j.match(g);return i?i[0]:""});this.add("previewUrl",h.previewUrl).setter(function(j){var i;if(/\/wp-admin(\/|$)/.test(j.replace(/[#?].*$/,""))){return null}c.each([j.replace(g,d.scheme()),j],function(l,k){c.each(d.allowedUrls,function(m,n){if(0===k.indexOf(n)){i=k;return false}});if(i){return false}});return i?i:null});this.previewUrl.bind(this.refresh);this.scroll=0;this.bind("scroll",function(i){this.scroll=i});this.bind("url",this.previewUrl)},query:function(){},abort:function(){if(this.loading){this.loading.destroy();delete this.loading}},refresh:function(){var d=this;this.abort();this.loading=new b.PreviewFrame({url:this.url(),previewUrl:this.previewUrl(),query:this.query()||{},container:this.container,signature:this.signature});this.loading.done(function(){this.bind("synced",function(){if(d.preview){d.preview.destroy()}d.preview=this;delete d.loading;d.targetWindow(this.targetWindow());d.channel(this.channel());d.send("active")});this.send("sync",{scroll:d.scroll,settings:b.get()})});this.loading.fail(function(f,e){if("redirect"===f&&e){d.previewUrl(e)}if("logged out"===f){if(d.preview){d.preview.destroy();delete d.preview}d.login().done(d.refresh)}if("cheatin"===f){d.cheatin()}})},login:function(){var g=this,d,f,e;if(this._login){return this._login}d=c.Deferred();this._login=d.promise();f=new b.Messenger({channel:"login",url:b.settings.url.login});e=c('<iframe src="'+b.settings.url.login+'" />').appendTo(this.container);f.targetWindow(e[0].contentWindow);f.bind("login",function(){e.remove();f.destroy();delete g._login;d.resolve()});return this._login},cheatin:function(){c(document.body).empty().addClass("cheatin").append("<p>"+b.l10n.cheatin+"</p>")}});b.controlConstructor={color:b.ColorControl,upload:b.UploadControl,image:b.ImageControl};c(function(){b.settings=window._wpCustomizeSettings;b.l10n=window._wpCustomizeControlsL10n;if(!b.settings){return}if(!c.support.postMessage||(!c.support.cors&&b.settings.isCrossDomain)){return window.location=b.settings.url.fallback}var d=c(document.body),e=d.children(".wp-full-overlay"),g,h,f;c("#customize-controls").on("keydown",function(i){if(c(i.target).is("textarea")){return}if(13===i.which){i.preventDefault()}});h=new b.Previewer({container:"#customize-preview",form:"#customize-controls",previewUrl:b.settings.url.preview,allowedUrls:b.settings.url.allowed,signature:"WP_CUSTOMIZER_SIGNATURE"},{nonce:b.settings.nonce,query:function(){return{wp_customize:"on",theme:b.settings.theme.stylesheet,customized:JSON.stringify(b.get()),nonce:this.nonce.preview}},save:function(){var i=this,k=c.extend(this.query(),{action:"customize_save",nonce:this.nonce.save}),j=c.post(b.settings.url.ajax,k);b.trigger("save",j);d.addClass("saving");j.always(function(){d.removeClass("saving")});j.done(function(l){if("0"===l){i.preview.iframe.hide();i.login().done(function(){i.save();i.preview.iframe.show()});return}if("-1"===l){i.cheatin();return}b.trigger("saved")})}});h.bind("nonce",function(i){c.extend(this.nonce,i)});c.each(b.settings.settings,function(j,i){b.create(j,j,i.value,{transport:i.transport,previewer:h})});c.each(b.settings.controls,function(l,j){var i=b.controlConstructor[j.type]||b.Control,k;k=b.control.add(l,new i(l,{params:j,previewer:h}))});if(h.previewUrl()){h.refresh()}else{h.previewUrl(b.settings.url.home)}(function(){var k=new b.Values(),j=k.create("saved"),i=k.create("activated");k.bind("change",function(){var m=c("#save"),l=c(".back");if(!i()){m.val(b.l10n.activate).prop("disabled",false);l.text(b.l10n.cancel)}else{if(j()){m.val(b.l10n.saved).prop("disabled",true);l.text(b.l10n.close)}else{m.val(b.l10n.save).prop("disabled",false);l.text(b.l10n.cancel)}}});j(true);i(b.settings.theme.active);b.bind("change",function(){k("saved").set(false)});b.bind("saved",function(){k("saved").set(true);k("activated").set(true)});i.bind(function(l){if(l){b.trigger("activated")}});b.state=k}());c(".customize-section-title").click(function(j){var i=c(this).parents(".customize-section");if(i.hasClass("cannot-expand")){return}c(".customize-section").not(i).removeClass("open");i.toggleClass("open");j.preventDefault()});c("#save").click(function(i){h.save();i.preventDefault()});c(".collapse-sidebar").click(function(i){e.toggleClass("collapsed").toggleClass("expanded");i.preventDefault()});f=new b.Messenger({url:b.settings.url.parent,channel:"loader"});f.bind("back",function(){c(".back").on("click.back",function(i){i.preventDefault();f.send("close")})});b.bind("saved",function(){f.send("saved")});b.bind("activated",function(){if(f.targetWindow()){f.send("activated",b.settings.url.activated)}else{if(b.settings.url.activated){window.location=b.settings.url.activated}}});f.send("ready");c.each({background_image:{controls:["background_repeat","background_position_x","background_attachment"],callback:function(i){return !!i}},show_on_front:{controls:["page_on_front","page_for_posts"],callback:function(i){return"page"===i}},header_textcolor:{controls:["header_textcolor"],callback:function(i){return"blank"!==i}}},function(i,j){b(i,function(k){c.each(j.controls,function(l,m){b.control(m,function(o){var n=function(p){o.container.toggle(j.callback(p))};n(k.get());k.bind(n)})})})});b.control("display_header_text",function(j){var i="";j.elements[0].unsync(b("header_textcolor"));j.element=new b.Element(j.container.find("input"));j.element.set("blank"!==j.setting());j.element.bind(function(k){if(!k){i=b("header_textcolor").get()}j.setting.set(k?i:"blank")});j.setting.bind(function(k){j.element.set("blank"!==k)})});b.control("header_image",function(i){i.setting.bind(function(j){if(j===i.params.removed){i.settings.data.set(false)}});i.library.on("click","a",function(j){i.settings.data.set(c(this).data("customizeHeaderImageData"))});i.uploader.success=function(k){var j;b.ImageControl.prototype.success.call(i,k);j={attachment_id:k.id,url:k.url,thumbnail_url:k.url,height:k.meta.height,width:k.meta.width};k.element.data("customizeHeaderImageData",j);i.settings.data.set(j)}});b.trigger("ready")})})(wp,jQuery);
\ No newline at end of file
+(function( exports, $ ){
+	var api = wp.customize;
+
+	/*
+	 * @param options
+	 * - previewer - The Previewer instance to sync with.
+	 * - transport - The transport to use for previewing. Supports 'refresh' and 'postMessage'.
+	 */
+	api.Setting = api.Value.extend({
+		initialize: function( id, value, options ) {
+			var element;
+
+			api.Value.prototype.initialize.call( this, value, options );
+
+			this.id = id;
+			this.transport = this.transport || 'refresh';
+
+			this.bind( this.preview );
+		},
+		preview: function() {
+			switch ( this.transport ) {
+				case 'refresh':
+					return this.previewer.refresh();
+				case 'postMessage':
+					return this.previewer.send( 'setting', [ this.id, this() ] );
+			}
+		}
+	});
+
+	api.Control = api.Class.extend({
+		initialize: function( id, options ) {
+			var control = this,
+				nodes, radios, settings;
+
+			this.params = {};
+			$.extend( this, options || {} );
+
+			this.id = id;
+			this.selector = '#customize-control-' + id.replace( ']', '' ).replace( '[', '-' );
+			this.container = $( this.selector );
+
+			settings = $.map( this.params.settings, function( value ) {
+				return value;
+			});
+
+			api.apply( api, settings.concat( function() {
+				var key;
+
+				control.settings = {};
+				for ( key in control.params.settings ) {
+					control.settings[ key ] = api( control.params.settings[ key ] );
+				}
+
+				control.setting = control.settings['default'] || null;
+				control.ready();
+			}) );
+
+			control.elements = [];
+
+			nodes  = this.container.find('[data-customize-setting-link]');
+			radios = {};
+
+			nodes.each( function() {
+				var node = $(this),
+					name;
+
+				if ( node.is(':radio') ) {
+					name = node.prop('name');
+					if ( radios[ name ] )
+						return;
+
+					radios[ name ] = true;
+					node = nodes.filter( '[name="' + name + '"]' );
+				}
+
+				api( node.data('customizeSettingLink'), function( setting ) {
+					var element = new api.Element( node );
+					control.elements.push( element );
+					element.sync( setting );
+					element.set( setting() );
+				});
+			});
+		},
+
+		ready: function() {},
+
+		dropdownInit: function() {
+			var control  = this,
+				statuses = this.container.find('.dropdown-status'),
+				params   = this.params,
+				update   = function( to ) {
+					if ( typeof	to === 'string' && params.statuses && params.statuses[ to ] )
+						statuses.html( params.statuses[ to ] ).show();
+					else
+						statuses.hide();
+				};
+
+			var toggleFreeze = false;
+
+			// Support the .dropdown class to open/close complex elements
+			this.container.on( 'click keydown', '.dropdown', function( event ) {
+				if ( event.type === 'keydown' &&  13 !== event.which ) // enter
+					return;
+
+				event.preventDefault();
+
+				if (!toggleFreeze)
+					control.container.toggleClass('open');
+
+				if ( control.container.hasClass('open') )
+					control.container.parent().parent().find('li.library-selected').focus();
+
+				// Don't want to fire focus and click at same time
+				toggleFreeze = true;
+				setTimeout(function () {
+					toggleFreeze = false;
+				}, 400);
+			});
+
+			this.setting.bind( update );
+			update( this.setting() );
+		}
+	});
+
+	api.ColorControl = api.Control.extend({
+		ready: function() {
+			var control = this,
+				picker = this.container.find('.color-picker-hex');
+
+			picker.val( control.setting() ).wpColorPicker({
+				change: function( event, options ) {
+					control.setting.set( picker.wpColorPicker('color') );
+ 				},
+ 				clear: function() {
+ 					control.setting.set( false );
+ 				}
+			});
+		}
+	});
+
+	api.UploadControl = api.Control.extend({
+		ready: function() {
+			var control = this;
+
+			this.params.removed = this.params.removed || '';
+
+			this.success = $.proxy( this.success, this );
+
+			this.uploader = $.extend({
+				container: this.container,
+				browser:   this.container.find('.upload'),
+				dropzone:  this.container.find('.upload-dropzone'),
+				success:   this.success,
+				plupload:  {},
+				params:    {}
+			}, this.uploader || {} );
+
+			if ( control.params.extensions ) {
+				control.uploader.plupload.filters = [{
+					title:      api.l10n.allowedFiles,
+					extensions: control.params.extensions
+				}];
+			}
+
+			if ( control.params.context )
+				control.uploader.params['post_data[context]'] = this.params.context;
+
+			if ( api.settings.theme.stylesheet )
+				control.uploader.params['post_data[theme]'] = api.settings.theme.stylesheet;
+
+			this.uploader = new wp.Uploader( this.uploader );
+
+			this.remover = this.container.find('.remove');
+			this.remover.on( 'click keydown', function( event ) {
+				if ( event.type === 'keydown' &&  13 !== event.which ) // enter
+					return;
+
+				control.setting.set( control.params.removed );
+				event.preventDefault();
+			});
+
+			this.removerVisibility = $.proxy( this.removerVisibility, this );
+			this.setting.bind( this.removerVisibility );
+			this.removerVisibility( this.setting.get() );
+		},
+		success: function( attachment ) {
+			this.setting.set( attachment.get('url') );
+		},
+		removerVisibility: function( to ) {
+			this.remover.toggle( to != this.params.removed );
+		}
+	});
+
+	api.ImageControl = api.UploadControl.extend({
+		ready: function() {
+			var control = this,
+				panels;
+
+			this.uploader = {
+				init: function( up ) {
+					var fallback, button;
+
+					if ( this.supports.dragdrop )
+						return;
+
+					// Maintain references while wrapping the fallback button.
+					fallback = control.container.find( '.upload-fallback' );
+					button   = fallback.children().detach();
+
+					this.browser.detach().empty().append( button );
+					fallback.append( this.browser ).show();
+				}
+			};
+
+			api.UploadControl.prototype.ready.call( this );
+
+			this.thumbnail    = this.container.find('.preview-thumbnail img');
+			this.thumbnailSrc = $.proxy( this.thumbnailSrc, this );
+			this.setting.bind( this.thumbnailSrc );
+
+			this.library = this.container.find('.library');
+
+			// Generate tab objects
+			this.tabs = {};
+			panels    = this.library.find('.library-content');
+
+			this.library.children('ul').children('li').each( function() {
+				var link  = $(this),
+					id    = link.data('customizeTab'),
+					panel = panels.filter('[data-customize-tab="' + id + '"]');
+
+				control.tabs[ id ] = {
+					both:  link.add( panel ),
+					link:  link,
+					panel: panel
+				};
+			});
+
+			// Bind tab switch events
+			this.library.children('ul').on( 'click keydown', 'li', function( event ) {
+				if ( event.type === 'keydown' &&  13 !== event.which ) // enter
+					return;
+
+				var id  = $(this).data('customizeTab'),
+					tab = control.tabs[ id ];
+
+				event.preventDefault();
+
+				if ( tab.link.hasClass('library-selected') )
+					return;
+
+				control.selected.both.removeClass('library-selected');
+				control.selected = tab;
+				control.selected.both.addClass('library-selected');
+			});
+
+			// Bind events to switch image urls.
+			this.library.on( 'click keydown', 'a', function( event ) {
+				if ( event.type === 'keydown' && 13 !== event.which ) // enter
+					return;
+
+				var value = $(this).data('customizeImageValue');
+
+				if ( value ) {
+					control.setting.set( value );
+					event.preventDefault();
+				}
+			});
+
+			if ( this.tabs.uploaded ) {
+				this.tabs.uploaded.target = this.library.find('.uploaded-target');
+				if ( ! this.tabs.uploaded.panel.find('.thumbnail').length )
+					this.tabs.uploaded.both.addClass('hidden');
+			}
+
+			// Select a tab
+			panels.each( function() {
+				var tab = control.tabs[ $(this).data('customizeTab') ];
+
+				// Select the first visible tab.
+				if ( ! tab.link.hasClass('hidden') ) {
+					control.selected = tab;
+					tab.both.addClass('library-selected');
+					return false;
+				}
+			});
+
+			this.dropdownInit();
+		},
+		success: function( attachment ) {
+			api.UploadControl.prototype.success.call( this, attachment );
+
+			// Add the uploaded image to the uploaded tab.
+			if ( this.tabs.uploaded && this.tabs.uploaded.target.length ) {
+				this.tabs.uploaded.both.removeClass('hidden');
+
+				// @todo: Do NOT store this on the attachment model. That is bad.
+				attachment.element = $( '<a href="#" class="thumbnail"></a>' )
+					.data( 'customizeImageValue', attachment.get('url') )
+					.append( '<img src="' +  attachment.get('url')+ '" />' )
+					.appendTo( this.tabs.uploaded.target );
+			}
+		},
+		thumbnailSrc: function( to ) {
+			if ( /^(https?:)?\/\//.test( to ) )
+				this.thumbnail.prop( 'src', to ).show();
+			else
+				this.thumbnail.hide();
+		}
+	});
+
+	// Change objects contained within the main customize object to Settings.
+	api.defaultConstructor = api.Setting;
+
+	// Create the collection of Control objects.
+	api.control = new api.Values({ defaultConstructor: api.Control });
+
+	api.PreviewFrame = api.Messenger.extend({
+		sensitivity: 2000,
+
+		initialize: function( params, options ) {
+			var deferred = $.Deferred(),
+				self     = this;
+
+			// This is the promise object.
+			deferred.promise( this );
+
+			this.container = params.container;
+			this.signature = params.signature;
+
+			$.extend( params, { channel: api.PreviewFrame.uuid() });
+
+			api.Messenger.prototype.initialize.call( this, params, options );
+
+			this.add( 'previewUrl', params.previewUrl );
+
+			this.query = $.extend( params.query || {}, { customize_messenger_channel: this.channel() });
+
+			this.run( deferred );
+		},
+
+		run: function( deferred ) {
+			var self   = this,
+				loaded = false,
+				ready  = false;
+
+			if ( this._ready )
+				this.unbind( 'ready', this._ready );
+
+			this._ready = function() {
+				ready = true;
+
+				if ( loaded )
+					deferred.resolveWith( self );
+			};
+
+			this.bind( 'ready', this._ready );
+
+			this.request = $.ajax( this.previewUrl(), {
+				type: 'POST',
+				data: this.query,
+				xhrFields: {
+					withCredentials: true
+				}
+			} );
+
+			this.request.fail( function() {
+				deferred.rejectWith( self, [ 'request failure' ] );
+			});
+
+			this.request.done( function( response ) {
+				var location = self.request.getResponseHeader('Location'),
+					signature = self.signature,
+					index;
+
+				// Check if the location response header differs from the current URL.
+				// If so, the request was redirected; try loading the requested page.
+				if ( location && location != self.previewUrl() ) {
+					deferred.rejectWith( self, [ 'redirect', location ] );
+					return;
+				}
+
+				// Check if the user is not logged in.
+				if ( '0' === response ) {
+					self.login( deferred );
+					return;
+				}
+
+				// Check for cheaters.
+				if ( '-1' === response ) {
+					deferred.rejectWith( self, [ 'cheatin' ] );
+					return;
+				}
+
+				// Check for a signature in the request.
+				index = response.lastIndexOf( signature );
+				if ( -1 === index || index < response.lastIndexOf('</html>') ) {
+					deferred.rejectWith( self, [ 'unsigned' ] );
+					return;
+				}
+
+				// Strip the signature from the request.
+				response = response.slice( 0, index ) + response.slice( index + signature.length );
+
+				// Create the iframe and inject the html content.
+				self.iframe = $('<iframe />').appendTo( self.container );
+
+				// Bind load event after the iframe has been added to the page;
+				// otherwise it will fire when injected into the DOM.
+				self.iframe.one( 'load', function() {
+					loaded = true;
+
+					if ( ready ) {
+						deferred.resolveWith( self );
+					} else {
+						setTimeout( function() {
+							deferred.rejectWith( self, [ 'ready timeout' ] );
+						}, self.sensitivity );
+					}
+				});
+
+				self.targetWindow( self.iframe[0].contentWindow );
+
+				self.targetWindow().document.open();
+				self.targetWindow().document.write( response );
+				self.targetWindow().document.close();
+			});
+		},
+
+		login: function( deferred ) {
+			var self = this,
+				reject;
+
+			reject = function() {
+				deferred.rejectWith( self, [ 'logged out' ] );
+			};
+
+			if ( this.triedLogin )
+				return reject();
+
+			// Check if we have an admin cookie.
+			$.get( api.settings.url.ajax, {
+				action: 'logged-in'
+			}).fail( reject ).done( function( response ) {
+				var iframe;
+
+				if ( '1' !== response )
+					reject();
+
+				iframe = $('<iframe src="' + self.previewUrl() + '" />').hide();
+				iframe.appendTo( self.container );
+				iframe.load( function() {
+					self.triedLogin = true;
+
+					iframe.remove();
+					self.run( deferred );
+				});
+			});
+		},
+
+		destroy: function() {
+			api.Messenger.prototype.destroy.call( this );
+			this.request.abort();
+
+			if ( this.iframe )
+				this.iframe.remove();
+
+			delete this.request;
+			delete this.iframe;
+			delete this.targetWindow;
+		}
+	});
+
+	(function(){
+		var uuid = 0;
+		api.PreviewFrame.uuid = function() {
+			return 'preview-' + uuid++;
+		};
+	}());
+
+	api.Previewer = api.Messenger.extend({
+		refreshBuffer: 250,
+
+		/**
+		 * Requires params:
+		 *  - container  - a selector or jQuery element
+		 *  - previewUrl - the URL of preview frame
+		 */
+		initialize: function( params, options ) {
+			var self = this,
+				rscheme = /^https?/,
+				url;
+
+			$.extend( this, options || {} );
+
+			/*
+			 * Wrap this.refresh to prevent it from hammering the servers:
+			 *
+			 * If refresh is called once and no other refresh requests are
+			 * loading, trigger the request immediately.
+			 *
+			 * If refresh is called while another refresh request is loading,
+			 * debounce the refresh requests:
+			 * 1. Stop the loading request (as it is instantly outdated).
+			 * 2. Trigger the new request once refresh hasn't been called for
+			 *    self.refreshBuffer milliseconds.
+			 */
+			this.refresh = (function( self ) {
+				var refresh  = self.refresh,
+					callback = function() {
+						timeout = null;
+						refresh.call( self );
+					},
+					timeout;
+
+				return function() {
+					if ( typeof timeout !== 'number' ) {
+						if ( self.loading ) {
+							self.abort();
+						} else {
+							return callback();
+						}
+					}
+
+					clearTimeout( timeout );
+					timeout = setTimeout( callback, self.refreshBuffer );
+				};
+			})( this );
+
+			this.container   = api.ensure( params.container );
+			this.allowedUrls = params.allowedUrls;
+			this.signature   = params.signature;
+
+			params.url = window.location.href;
+
+			api.Messenger.prototype.initialize.call( this, params );
+
+			this.add( 'scheme', this.origin() ).link( this.origin ).setter( function( to ) {
+				var match = to.match( rscheme );
+				return match ? match[0] : '';
+			});
+
+			// Limit the URL to internal, front-end links.
+			//
+			// If the frontend and the admin are served from the same domain, load the
+			// preview over ssl if the customizer is being loaded over ssl. This avoids
+			// insecure content warnings. This is not attempted if the admin and frontend
+			// are on different domains to avoid the case where the frontend doesn't have
+			// ssl certs.
+
+			this.add( 'previewUrl', params.previewUrl ).setter( function( to ) {
+				var result;
+
+				// Check for URLs that include "/wp-admin/" or end in "/wp-admin".
+				// Strip hashes and query strings before testing.
+				if ( /\/wp-admin(\/|$)/.test( to.replace(/[#?].*$/, '') ) )
+					return null;
+
+				// Attempt to match the URL to the control frame's scheme
+				// and check if it's allowed. If not, try the original URL.
+				$.each([ to.replace( rscheme, self.scheme() ), to ], function( i, url ) {
+					$.each( self.allowedUrls, function( i, allowed ) {
+						if ( 0 === url.indexOf( allowed ) ) {
+							result = url;
+							return false;
+						}
+					});
+					if ( result )
+						return false;
+				});
+
+				// If we found a matching result, return it. If not, bail.
+				return result ? result : null;
+			});
+
+			// Refresh the preview when the URL is changed (but not yet).
+			this.previewUrl.bind( this.refresh );
+
+			this.scroll = 0;
+			this.bind( 'scroll', function( distance ) {
+				this.scroll = distance;
+			});
+
+			// Update the URL when the iframe sends a URL message.
+			this.bind( 'url', this.previewUrl );
+		},
+
+		query: function() {},
+
+		abort: function() {
+			if ( this.loading ) {
+				this.loading.destroy();
+				delete this.loading;
+			}
+		},
+
+		refresh: function() {
+			var self = this;
+
+			this.abort();
+
+			this.loading = new api.PreviewFrame({
+				url:        this.url(),
+				previewUrl: this.previewUrl(),
+				query:      this.query() || {},
+				container:  this.container,
+				signature:  this.signature
+			});
+
+			this.loading.done( function() {
+				// 'this' is the loading frame
+				this.bind( 'synced', function() {
+					if ( self.preview )
+						self.preview.destroy();
+					self.preview = this;
+					delete self.loading;
+
+					self.targetWindow( this.targetWindow() );
+					self.channel( this.channel() );
+
+					self.send( 'active' );
+				});
+
+				this.send( 'sync', {
+					scroll:   self.scroll,
+					settings: api.get()
+				});
+			});
+
+			this.loading.fail( function( reason, location ) {
+				if ( 'redirect' === reason && location )
+					self.previewUrl( location );
+
+				if ( 'logged out' === reason ) {
+					if ( self.preview ) {
+						self.preview.destroy();
+						delete self.preview;
+					}
+
+					self.login().done( self.refresh );
+				}
+
+				if ( 'cheatin' === reason )
+					self.cheatin();
+			});
+		},
+
+		login: function() {
+			var previewer = this,
+				deferred, messenger, iframe;
+
+			if ( this._login )
+				return this._login;
+
+			deferred = $.Deferred();
+			this._login = deferred.promise();
+
+			messenger = new api.Messenger({
+				channel: 'login',
+				url:     api.settings.url.login
+			});
+
+			iframe = $('<iframe src="' + api.settings.url.login + '" />').appendTo( this.container );
+
+			messenger.targetWindow( iframe[0].contentWindow );
+
+			messenger.bind( 'login', function() {
+				iframe.remove();
+				messenger.destroy();
+				delete previewer._login;
+				deferred.resolve();
+			});
+
+			return this._login;
+		},
+
+		cheatin: function() {
+			$( document.body ).empty().addClass('cheatin').append( '<p>' + api.l10n.cheatin + '</p>' );
+		}
+	});
+
+	/* =====================================================================
+	 * Ready.
+	 * ===================================================================== */
+
+	api.controlConstructor = {
+		color:  api.ColorControl,
+		upload: api.UploadControl,
+		image:  api.ImageControl
+	};
+
+	$( function() {
+		api.settings = window._wpCustomizeSettings;
+		api.l10n = window._wpCustomizeControlsL10n;
+
+		// Check if we can run the customizer.
+		if ( ! api.settings )
+			return;
+
+		// Redirect to the fallback preview if any incompatibilities are found.
+		if ( ! $.support.postMessage || ( ! $.support.cors && api.settings.isCrossDomain ) )
+			return window.location = api.settings.url.fallback;
+
+		var body = $( document.body ),
+			overlay = body.children('.wp-full-overlay'),
+			query, previewer, parent;
+
+		// Prevent the form from saving when enter is pressed.
+		$('#customize-controls').on( 'keydown', function( e ) {
+			if ( $( e.target ).is('textarea') )
+				return;
+
+			if ( 13 === e.which ) // Enter
+				e.preventDefault();
+		});
+
+		// Initialize Previewer
+		previewer = new api.Previewer({
+			container:   '#customize-preview',
+			form:        '#customize-controls',
+			previewUrl:  api.settings.url.preview,
+			allowedUrls: api.settings.url.allowed,
+			signature:   'WP_CUSTOMIZER_SIGNATURE'
+		}, {
+
+			nonce: api.settings.nonce,
+
+			query: function() {
+				return {
+					wp_customize: 'on',
+					theme:        api.settings.theme.stylesheet,
+					customized:   JSON.stringify( api.get() ),
+					nonce:        this.nonce.preview
+				};
+			},
+
+			save: function() {
+				var self  = this,
+					query = $.extend( this.query(), {
+						action: 'customize_save',
+						nonce:  this.nonce.save
+					}),
+					request = $.post( api.settings.url.ajax, query );
+
+				api.trigger( 'save', request );
+
+				body.addClass('saving');
+
+				request.always( function() {
+					body.removeClass('saving');
+				});
+
+				request.done( function( response ) {
+					// Check if the user is logged out.
+					if ( '0' === response ) {
+						self.preview.iframe.hide();
+						self.login().done( function() {
+							self.save();
+							self.preview.iframe.show();
+						});
+						return;
+					}
+
+					// Check for cheaters.
+					if ( '-1' === response ) {
+						self.cheatin();
+						return;
+					}
+
+					api.trigger( 'saved' );
+				});
+			}
+		});
+
+		// Refresh the nonces if the preview sends updated nonces over.
+ 		previewer.bind( 'nonce', function( nonce ) {
+ 			$.extend( this.nonce, nonce );
+ 		});
+
+		$.each( api.settings.settings, function( id, data ) {
+			api.create( id, id, data.value, {
+				transport: data.transport,
+				previewer: previewer
+			} );
+		});
+
+		$.each( api.settings.controls, function( id, data ) {
+			var constructor = api.controlConstructor[ data.type ] || api.Control,
+				control;
+
+			control = api.control.add( id, new constructor( id, {
+				params: data,
+				previewer: previewer
+			} ) );
+		});
+
+		// Check if preview url is valid and load the preview frame.
+		if ( previewer.previewUrl() )
+			previewer.refresh();
+		else
+			previewer.previewUrl( api.settings.url.home );
+
+		// Save and activated states
+		(function() {
+			var state = new api.Values(),
+				saved = state.create('saved'),
+				activated = state.create('activated');
+
+			state.bind( 'change', function() {
+				var save = $('#save'),
+					back = $('.back');
+
+				if ( ! activated() ) {
+					save.val( api.l10n.activate ).prop( 'disabled', false );
+					back.text( api.l10n.cancel );
+
+				} else if ( saved() ) {
+					save.val( api.l10n.saved ).prop( 'disabled', true );
+					back.text( api.l10n.close );
+
+				} else {
+					save.val( api.l10n.save ).prop( 'disabled', false );
+					back.text( api.l10n.cancel );
+				}
+			});
+
+			// Set default states.
+			saved( true );
+			activated( api.settings.theme.active );
+
+			api.bind( 'change', function() {
+				state('saved').set( false );
+			});
+
+			api.bind( 'saved', function() {
+				state('saved').set( true );
+				state('activated').set( true );
+			});
+
+			activated.bind( function( to ) {
+				if ( to )
+					api.trigger( 'activated' );
+			});
+
+			// Expose states to the API.
+			api.state = state;
+		}());
+
+		// Temporary accordion code.
+		$('.customize-section-title').bind('click keydown', function( event ) {
+
+			if ( event.type === 'keydown' &&  13 !== event.which ) // enter
+					return;
+
+			var clicked = $( this ).parents( '.customize-section' );
+
+			if ( clicked.hasClass('cannot-expand') )
+				return;
+
+			// Scroll up if on #customize-section-title_tagline
+			if ('customize-section-title_tagline' === clicked.attr('id'))
+				$('.wp-full-overlay-sidebar-content').scrollTop(0);
+
+			$( '.customize-section' ).not( clicked ).removeClass( 'open' );
+			clicked.toggleClass( 'open' );
+			event.preventDefault();
+		});
+
+		// Button bindings.
+		$('#save').click( function( event ) {
+			previewer.save();
+			event.preventDefault();
+		}).keydown( function( event ) {
+			if ( 9 === event.which ) // tab
+				return;
+			if ( 13 === event.which ) // enter
+				previewer.save();
+			event.preventDefault();
+		});
+
+		$('.back').keydown( function( event ) {
+			if ( 9 === event.which ) // tab
+				return;
+			if ( 13 === event.which ) // enter
+				parent.send( 'close' );
+			event.preventDefault();
+		});
+
+		$('.collapse-sidebar').on( 'click keydown', function( event ) {
+			if ( event.type === 'keydown' &&  13 !== event.which ) // enter
+				return;
+
+			overlay.toggleClass( 'collapsed' ).toggleClass( 'expanded' );
+			event.preventDefault();
+		});
+
+		// Create a potential postMessage connection with the parent frame.
+		parent = new api.Messenger({
+			url: api.settings.url.parent,
+			channel: 'loader'
+		});
+
+		// If we receive a 'back' event, we're inside an iframe.
+		// Send any clicks to the 'Return' link to the parent page.
+		parent.bind( 'back', function() {
+			$('.back').on( 'click.back', function( event ) {
+				event.preventDefault();
+				parent.send( 'close' );
+			});
+		});
+
+		// Pass events through to the parent.
+		api.bind( 'saved', function() {
+			parent.send( 'saved' );
+		});
+
+		// When activated, let the loader handle redirecting the page.
+		// If no loader exists, redirect the page ourselves (if a url exists).
+		api.bind( 'activated', function() {
+			if ( parent.targetWindow() )
+				parent.send( 'activated', api.settings.url.activated );
+			else if ( api.settings.url.activated )
+				window.location = api.settings.url.activated;
+		});
+
+		// Initialize the connection with the parent frame.
+		parent.send( 'ready' );
+
+		// Control visibility for default controls
+		$.each({
+			'background_image': {
+				controls: [ 'background_repeat', 'background_position_x', 'background_attachment' ],
+				callback: function( to ) { return !! to }
+			},
+			'show_on_front': {
+				controls: [ 'page_on_front', 'page_for_posts' ],
+				callback: function( to ) { return 'page' === to }
+			},
+			'header_textcolor': {
+				controls: [ 'header_textcolor' ],
+				callback: function( to ) { return 'blank' !== to }
+			}
+		}, function( settingId, o ) {
+			api( settingId, function( setting ) {
+				$.each( o.controls, function( i, controlId ) {
+					api.control( controlId, function( control ) {
+						var visibility = function( to ) {
+							control.container.toggle( o.callback( to ) );
+						};
+
+						visibility( setting.get() );
+						setting.bind( visibility );
+					});
+				});
+			});
+		});
+
+		// Juggle the two controls that use header_textcolor
+		api.control( 'display_header_text', function( control ) {
+			var last = '';
+
+			control.elements[0].unsync( api( 'header_textcolor' ) );
+
+			control.element = new api.Element( control.container.find('input') );
+			control.element.set( 'blank' !== control.setting() );
+
+			control.element.bind( function( to ) {
+				if ( ! to )
+					last = api( 'header_textcolor' ).get();
+
+				control.setting.set( to ? last : 'blank' );
+			});
+
+			control.setting.bind( function( to ) {
+				control.element.set( 'blank' !== to );
+			});
+		});
+
+		// Handle header image data
+		api.control( 'header_image', function( control ) {
+			control.setting.bind( function( to ) {
+				if ( to === control.params.removed )
+					control.settings.data.set( false );
+			});
+
+			control.library.on( 'click', 'a', function( event ) {
+				control.settings.data.set( $(this).data('customizeHeaderImageData') );
+			});
+
+			control.uploader.success = function( attachment ) {
+				var data;
+
+				api.ImageControl.prototype.success.call( control, attachment );
+
+				data = {
+					attachment_id: attachment.get('id'),
+					url:           attachment.get('url'),
+					thumbnail_url: attachment.get('url'),
+					height:        attachment.get('height'),
+					width:         attachment.get('width')
+				};
+
+				attachment.element.data( 'customizeHeaderImageData', data );
+				control.settings.data.set( data );
+			};
+		});
+
+		api.trigger( 'ready' );
+
+		// Make sure left column gets focus
+		var topFocus = $('.back');
+		topFocus.focus();
+		setTimeout(function () {
+			topFocus.focus();
+		}, 200);
+
+	});
+
+})( wp, jQuery );
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-admin/js/customize-controls.min.js	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,1 @@
+(function(a,c){var b=wp.customize;b.Setting=b.Value.extend({initialize:function(g,f,d){var e;b.Value.prototype.initialize.call(this,f,d);this.id=g;this.transport=this.transport||"refresh";this.bind(this.preview)},preview:function(){switch(this.transport){case"refresh":return this.previewer.refresh();case"postMessage":return this.previewer.send("setting",[this.id,this()])}}});b.Control=b.Class.extend({initialize:function(i,e){var g=this,d,h,f;this.params={};c.extend(this,e||{});this.id=i;this.selector="#customize-control-"+i.replace("]","").replace("[","-");this.container=c(this.selector);f=c.map(this.params.settings,function(j){return j});b.apply(b,f.concat(function(){var j;g.settings={};for(j in g.params.settings){g.settings[j]=b(g.params.settings[j])}g.setting=g.settings["default"]||null;g.ready()}));g.elements=[];d=this.container.find("[data-customize-setting-link]");h={};d.each(function(){var k=c(this),j;if(k.is(":radio")){j=k.prop("name");if(h[j]){return}h[j]=true;k=d.filter('[name="'+j+'"]')}b(k.data("customizeSettingLink"),function(m){var l=new b.Element(k);g.elements.push(l);l.sync(m);l.set(m())})})},ready:function(){},dropdownInit:function(){var f=this,e=this.container.find(".dropdown-status"),g=this.params,h=function(i){if(typeof i==="string"&&g.statuses&&g.statuses[i]){e.html(g.statuses[i]).show()}else{e.hide()}};var d=false;this.container.on("click keydown",".dropdown",function(i){if(i.type==="keydown"&&13!==i.which){return}i.preventDefault();if(!d){f.container.toggleClass("open")}if(f.container.hasClass("open")){f.container.parent().parent().find("li.library-selected").focus()}d=true;setTimeout(function(){d=false},400)});this.setting.bind(h);h(this.setting())}});b.ColorControl=b.Control.extend({ready:function(){var e=this,d=this.container.find(".color-picker-hex");d.val(e.setting()).wpColorPicker({change:function(g,f){e.setting.set(d.wpColorPicker("color"))},clear:function(){e.setting.set(false)}})}});b.UploadControl=b.Control.extend({ready:function(){var d=this;this.params.removed=this.params.removed||"";this.success=c.proxy(this.success,this);this.uploader=c.extend({container:this.container,browser:this.container.find(".upload"),dropzone:this.container.find(".upload-dropzone"),success:this.success,plupload:{},params:{}},this.uploader||{});if(d.params.extensions){d.uploader.plupload.filters=[{title:b.l10n.allowedFiles,extensions:d.params.extensions}]}if(d.params.context){d.uploader.params["post_data[context]"]=this.params.context}if(b.settings.theme.stylesheet){d.uploader.params["post_data[theme]"]=b.settings.theme.stylesheet}this.uploader=new wp.Uploader(this.uploader);this.remover=this.container.find(".remove");this.remover.on("click keydown",function(e){if(e.type==="keydown"&&13!==e.which){return}d.setting.set(d.params.removed);e.preventDefault()});this.removerVisibility=c.proxy(this.removerVisibility,this);this.setting.bind(this.removerVisibility);this.removerVisibility(this.setting.get())},success:function(d){this.setting.set(d.get("url"))},removerVisibility:function(d){this.remover.toggle(d!=this.params.removed)}});b.ImageControl=b.UploadControl.extend({ready:function(){var e=this,d;this.uploader={init:function(f){var h,g;if(this.supports.dragdrop){return}h=e.container.find(".upload-fallback");g=h.children().detach();this.browser.detach().empty().append(g);h.append(this.browser).show()}};b.UploadControl.prototype.ready.call(this);this.thumbnail=this.container.find(".preview-thumbnail img");this.thumbnailSrc=c.proxy(this.thumbnailSrc,this);this.setting.bind(this.thumbnailSrc);this.library=this.container.find(".library");this.tabs={};d=this.library.find(".library-content");this.library.children("ul").children("li").each(function(){var g=c(this),h=g.data("customizeTab"),f=d.filter('[data-customize-tab="'+h+'"]');e.tabs[h]={both:g.add(f),link:g,panel:f}});this.library.children("ul").on("click keydown","li",function(g){if(g.type==="keydown"&&13!==g.which){return}var h=c(this).data("customizeTab"),f=e.tabs[h];g.preventDefault();if(f.link.hasClass("library-selected")){return}e.selected.both.removeClass("library-selected");e.selected=f;e.selected.both.addClass("library-selected")});this.library.on("click keydown","a",function(f){if(f.type==="keydown"&&13!==f.which){return}var g=c(this).data("customizeImageValue");if(g){e.setting.set(g);f.preventDefault()}});if(this.tabs.uploaded){this.tabs.uploaded.target=this.library.find(".uploaded-target");if(!this.tabs.uploaded.panel.find(".thumbnail").length){this.tabs.uploaded.both.addClass("hidden")}}d.each(function(){var f=e.tabs[c(this).data("customizeTab")];if(!f.link.hasClass("hidden")){e.selected=f;f.both.addClass("library-selected");return false}});this.dropdownInit()},success:function(d){b.UploadControl.prototype.success.call(this,d);if(this.tabs.uploaded&&this.tabs.uploaded.target.length){this.tabs.uploaded.both.removeClass("hidden");d.element=c('<a href="#" class="thumbnail"></a>').data("customizeImageValue",d.get("url")).append('<img src="'+d.get("url")+'" />').appendTo(this.tabs.uploaded.target)}},thumbnailSrc:function(d){if(/^(https?:)?\/\//.test(d)){this.thumbnail.prop("src",d).show()}else{this.thumbnail.hide()}}});b.defaultConstructor=b.Setting;b.control=new b.Values({defaultConstructor:b.Control});b.PreviewFrame=b.Messenger.extend({sensitivity:2000,initialize:function(g,f){var e=c.Deferred(),d=this;e.promise(this);this.container=g.container;this.signature=g.signature;c.extend(g,{channel:b.PreviewFrame.uuid()});b.Messenger.prototype.initialize.call(this,g,f);this.add("previewUrl",g.previewUrl);this.query=c.extend(g.query||{},{customize_messenger_channel:this.channel()});this.run(e)},run:function(e){var d=this,f=false,g=false;if(this._ready){this.unbind("ready",this._ready)}this._ready=function(){g=true;if(f){e.resolveWith(d)}};this.bind("ready",this._ready);this.request=c.ajax(this.previewUrl(),{type:"POST",data:this.query,xhrFields:{withCredentials:true}});this.request.fail(function(){e.rejectWith(d,["request failure"])});this.request.done(function(j){var i=d.request.getResponseHeader("Location"),h=d.signature,k;if(i&&i!=d.previewUrl()){e.rejectWith(d,["redirect",i]);return}if("0"===j){d.login(e);return}if("-1"===j){e.rejectWith(d,["cheatin"]);return}k=j.lastIndexOf(h);if(-1===k||k<j.lastIndexOf("</html>")){e.rejectWith(d,["unsigned"]);return}j=j.slice(0,k)+j.slice(k+h.length);d.iframe=c("<iframe />").appendTo(d.container);d.iframe.one("load",function(){f=true;if(g){e.resolveWith(d)}else{setTimeout(function(){e.rejectWith(d,["ready timeout"])},d.sensitivity)}});d.targetWindow(d.iframe[0].contentWindow);d.targetWindow().document.open();d.targetWindow().document.write(j);d.targetWindow().document.close()})},login:function(e){var d=this,f;f=function(){e.rejectWith(d,["logged out"])};if(this.triedLogin){return f()}c.get(b.settings.url.ajax,{action:"logged-in"}).fail(f).done(function(g){var h;if("1"!==g){f()}h=c('<iframe src="'+d.previewUrl()+'" />').hide();h.appendTo(d.container);h.load(function(){d.triedLogin=true;h.remove();d.run(e)})})},destroy:function(){b.Messenger.prototype.destroy.call(this);this.request.abort();if(this.iframe){this.iframe.remove()}delete this.request;delete this.iframe;delete this.targetWindow}});(function(){var d=0;b.PreviewFrame.uuid=function(){return"preview-"+d++}}());b.Previewer=b.Messenger.extend({refreshBuffer:250,initialize:function(h,f){var d=this,g=/^https?/,e;c.extend(this,f||{});this.refresh=(function(i){var j=i.refresh,l=function(){k=null;j.call(i)},k;return function(){if(typeof k!=="number"){if(i.loading){i.abort()}else{return l()}}clearTimeout(k);k=setTimeout(l,i.refreshBuffer)}})(this);this.container=b.ensure(h.container);this.allowedUrls=h.allowedUrls;this.signature=h.signature;h.url=window.location.href;b.Messenger.prototype.initialize.call(this,h);this.add("scheme",this.origin()).link(this.origin).setter(function(j){var i=j.match(g);return i?i[0]:""});this.add("previewUrl",h.previewUrl).setter(function(j){var i;if(/\/wp-admin(\/|$)/.test(j.replace(/[#?].*$/,""))){return null}c.each([j.replace(g,d.scheme()),j],function(l,k){c.each(d.allowedUrls,function(m,n){if(0===k.indexOf(n)){i=k;return false}});if(i){return false}});return i?i:null});this.previewUrl.bind(this.refresh);this.scroll=0;this.bind("scroll",function(i){this.scroll=i});this.bind("url",this.previewUrl)},query:function(){},abort:function(){if(this.loading){this.loading.destroy();delete this.loading}},refresh:function(){var d=this;this.abort();this.loading=new b.PreviewFrame({url:this.url(),previewUrl:this.previewUrl(),query:this.query()||{},container:this.container,signature:this.signature});this.loading.done(function(){this.bind("synced",function(){if(d.preview){d.preview.destroy()}d.preview=this;delete d.loading;d.targetWindow(this.targetWindow());d.channel(this.channel());d.send("active")});this.send("sync",{scroll:d.scroll,settings:b.get()})});this.loading.fail(function(f,e){if("redirect"===f&&e){d.previewUrl(e)}if("logged out"===f){if(d.preview){d.preview.destroy();delete d.preview}d.login().done(d.refresh)}if("cheatin"===f){d.cheatin()}})},login:function(){var g=this,d,f,e;if(this._login){return this._login}d=c.Deferred();this._login=d.promise();f=new b.Messenger({channel:"login",url:b.settings.url.login});e=c('<iframe src="'+b.settings.url.login+'" />').appendTo(this.container);f.targetWindow(e[0].contentWindow);f.bind("login",function(){e.remove();f.destroy();delete g._login;d.resolve()});return this._login},cheatin:function(){c(document.body).empty().addClass("cheatin").append("<p>"+b.l10n.cheatin+"</p>")}});b.controlConstructor={color:b.ColorControl,upload:b.UploadControl,image:b.ImageControl};c(function(){b.settings=window._wpCustomizeSettings;b.l10n=window._wpCustomizeControlsL10n;if(!b.settings){return}if(!c.support.postMessage||(!c.support.cors&&b.settings.isCrossDomain)){return window.location=b.settings.url.fallback}var d=c(document.body),f=d.children(".wp-full-overlay"),h,i,g;c("#customize-controls").on("keydown",function(j){if(c(j.target).is("textarea")){return}if(13===j.which){j.preventDefault()}});i=new b.Previewer({container:"#customize-preview",form:"#customize-controls",previewUrl:b.settings.url.preview,allowedUrls:b.settings.url.allowed,signature:"WP_CUSTOMIZER_SIGNATURE"},{nonce:b.settings.nonce,query:function(){return{wp_customize:"on",theme:b.settings.theme.stylesheet,customized:JSON.stringify(b.get()),nonce:this.nonce.preview}},save:function(){var j=this,l=c.extend(this.query(),{action:"customize_save",nonce:this.nonce.save}),k=c.post(b.settings.url.ajax,l);b.trigger("save",k);d.addClass("saving");k.always(function(){d.removeClass("saving")});k.done(function(m){if("0"===m){j.preview.iframe.hide();j.login().done(function(){j.save();j.preview.iframe.show()});return}if("-1"===m){j.cheatin();return}b.trigger("saved")})}});i.bind("nonce",function(j){c.extend(this.nonce,j)});c.each(b.settings.settings,function(k,j){b.create(k,k,j.value,{transport:j.transport,previewer:i})});c.each(b.settings.controls,function(m,k){var j=b.controlConstructor[k.type]||b.Control,l;l=b.control.add(m,new j(m,{params:k,previewer:i}))});if(i.previewUrl()){i.refresh()}else{i.previewUrl(b.settings.url.home)}(function(){var l=new b.Values(),k=l.create("saved"),j=l.create("activated");l.bind("change",function(){var n=c("#save"),m=c(".back");if(!j()){n.val(b.l10n.activate).prop("disabled",false);m.text(b.l10n.cancel)}else{if(k()){n.val(b.l10n.saved).prop("disabled",true);m.text(b.l10n.close)}else{n.val(b.l10n.save).prop("disabled",false);m.text(b.l10n.cancel)}}});k(true);j(b.settings.theme.active);b.bind("change",function(){l("saved").set(false)});b.bind("saved",function(){l("saved").set(true);l("activated").set(true)});j.bind(function(m){if(m){b.trigger("activated")}});b.state=l}());c(".customize-section-title").bind("click keydown",function(k){if(k.type==="keydown"&&13!==k.which){return}var j=c(this).parents(".customize-section");if(j.hasClass("cannot-expand")){return}if("customize-section-title_tagline"===j.attr("id")){c(".wp-full-overlay-sidebar-content").scrollTop(0)}c(".customize-section").not(j).removeClass("open");j.toggleClass("open");k.preventDefault()});c("#save").click(function(j){i.save();j.preventDefault()}).keydown(function(j){if(9===j.which){return}if(13===j.which){i.save()}j.preventDefault()});c(".back").keydown(function(j){if(9===j.which){return}if(13===j.which){g.send("close")}j.preventDefault()});c(".collapse-sidebar").on("click keydown",function(j){if(j.type==="keydown"&&13!==j.which){return}f.toggleClass("collapsed").toggleClass("expanded");j.preventDefault()});g=new b.Messenger({url:b.settings.url.parent,channel:"loader"});g.bind("back",function(){c(".back").on("click.back",function(j){j.preventDefault();g.send("close")})});b.bind("saved",function(){g.send("saved")});b.bind("activated",function(){if(g.targetWindow()){g.send("activated",b.settings.url.activated)}else{if(b.settings.url.activated){window.location=b.settings.url.activated}}});g.send("ready");c.each({background_image:{controls:["background_repeat","background_position_x","background_attachment"],callback:function(j){return !!j}},show_on_front:{controls:["page_on_front","page_for_posts"],callback:function(j){return"page"===j}},header_textcolor:{controls:["header_textcolor"],callback:function(j){return"blank"!==j}}},function(j,k){b(j,function(l){c.each(k.controls,function(m,n){b.control(n,function(p){var o=function(q){p.container.toggle(k.callback(q))};o(l.get());l.bind(o)})})})});b.control("display_header_text",function(k){var j="";k.elements[0].unsync(b("header_textcolor"));k.element=new b.Element(k.container.find("input"));k.element.set("blank"!==k.setting());k.element.bind(function(l){if(!l){j=b("header_textcolor").get()}k.setting.set(l?j:"blank")});k.setting.bind(function(l){k.element.set("blank"!==l)})});b.control("header_image",function(j){j.setting.bind(function(k){if(k===j.params.removed){j.settings.data.set(false)}});j.library.on("click","a",function(k){j.settings.data.set(c(this).data("customizeHeaderImageData"))});j.uploader.success=function(l){var k;b.ImageControl.prototype.success.call(j,l);k={attachment_id:l.get("id"),url:l.get("url"),thumbnail_url:l.get("url"),height:l.get("height"),width:l.get("width")};l.element.data("customizeHeaderImageData",k);j.settings.data.set(k)}});b.trigger("ready");var e=c(".back");e.focus();setTimeout(function(){e.focus()},200)})})(wp,jQuery);
\ No newline at end of file
--- a/web/wp-admin/js/dashboard.dev.js	Wed Dec 19 12:35:13 2012 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,93 +0,0 @@
-var ajaxWidgets, ajaxPopulateWidgets, quickPressLoad;
-
-jQuery(document).ready( function($) {
-	/* Dashboard Welcome Panel */
-	var welcomePanel = $('#welcome-panel'),
-		welcomePanelHide = $('#wp_welcome_panel-hide'),
-	 	updateWelcomePanel = function( visible ) {
-			$.post( ajaxurl, {
-				action: 'update-welcome-panel',
-				visible: visible,
-				welcomepanelnonce: $('#welcomepanelnonce').val()
-			});
-		};
-
-	if ( welcomePanel.hasClass('hidden') && welcomePanelHide.prop('checked') )
-		welcomePanel.removeClass('hidden');
-
-	$('.welcome-panel-close, .welcome-panel-dismiss a', welcomePanel).click( function(e) {
-		e.preventDefault();
-		welcomePanel.addClass('hidden');
-		updateWelcomePanel( 0 );
-		$('#wp_welcome_panel-hide').prop('checked', false);
-	});
-
-	welcomePanelHide.click( function() {
-		welcomePanel.toggleClass('hidden', ! this.checked );
-		updateWelcomePanel( this.checked ? 1 : 0 );
-	});
-
-	// These widgets are sometimes populated via ajax
-	ajaxWidgets = [
-		'dashboard_incoming_links',
-		'dashboard_primary',
-		'dashboard_secondary',
-		'dashboard_plugins'
-	];
-
-	ajaxPopulateWidgets = function(el) {
-		function show(i, id) {
-			var p, e = $('#' + id + ' div.inside:visible').find('.widget-loading');
-			if ( e.length ) {
-				p = e.parent();
-				setTimeout( function(){
-					p.load( ajaxurl + '?action=dashboard-widgets&widget=' + id, '', function() {
-						p.hide().slideDown('normal', function(){
-							$(this).css('display', '');
-						});
-					});
-				}, i * 500 );
-			}
-		}
-
-		if ( el ) {
-			el = el.toString();
-			if ( $.inArray(el, ajaxWidgets) != -1 )
-				show(0, el);
-		} else {
-			$.each( ajaxWidgets, show );
-		}
-	};
-	ajaxPopulateWidgets();
-
-	postboxes.add_postbox_toggles(pagenow, { pbshow: ajaxPopulateWidgets } );
-
-	/* QuickPress */
-	quickPressLoad = function() {
-		var act = $('#quickpost-action'), t;
-		t = $('#quick-press').submit( function() {
-			$('#dashboard_quick_press #publishing-action img.waiting').css('visibility', 'visible');
-			$('#quick-press .submit input[type="submit"], #quick-press .submit input[type="reset"]').prop('disabled', true);
-
-			if ( 'post' == act.val() ) {
-				act.val( 'post-quickpress-publish' );
-			}
-
-			$('#dashboard_quick_press div.inside').load( t.attr( 'action' ), t.serializeArray(), function() {
-				$('#dashboard_quick_press #publishing-action img.waiting').css('visibility', 'hidden');
-				$('#quick-press .submit input[type="submit"], #quick-press .submit input[type="reset"]').prop('disabled', false);
-				$('#dashboard_quick_press ul').next('p').remove();
-				$('#dashboard_quick_press ul').find('li').each( function() {
-					$('#dashboard_recent_drafts ul').prepend( this );
-				} ).end().remove();
-				quickPressLoad();
-			} );
-			return false;
-		} );
-
-		$('#publish').click( function() { act.val( 'post-quickpress-publish' ); } );
-
-	};
-	quickPressLoad();
-
-} );
--- a/web/wp-admin/js/dashboard.js	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-admin/js/dashboard.js	Wed Dec 19 17:46:52 2012 -0800
@@ -1,1 +1,117 @@
-var ajaxWidgets,ajaxPopulateWidgets,quickPressLoad;jQuery(document).ready(function(c){var d=c("#welcome-panel"),a=c("#wp_welcome_panel-hide"),b=function(e){c.post(ajaxurl,{action:"update-welcome-panel",visible:e,welcomepanelnonce:c("#welcomepanelnonce").val()})};if(d.hasClass("hidden")&&a.prop("checked")){d.removeClass("hidden")}c(".welcome-panel-close, .welcome-panel-dismiss a",d).click(function(f){f.preventDefault();d.addClass("hidden");b(0);c("#wp_welcome_panel-hide").prop("checked",false)});a.click(function(){d.toggleClass("hidden",!this.checked);b(this.checked?1:0)});ajaxWidgets=["dashboard_incoming_links","dashboard_primary","dashboard_secondary","dashboard_plugins"];ajaxPopulateWidgets=function(f){function e(g,k){var j,h=c("#"+k+" div.inside:visible").find(".widget-loading");if(h.length){j=h.parent();setTimeout(function(){j.load(ajaxurl+"?action=dashboard-widgets&widget="+k,"",function(){j.hide().slideDown("normal",function(){c(this).css("display","")})})},g*500)}}if(f){f=f.toString();if(c.inArray(f,ajaxWidgets)!=-1){e(0,f)}}else{c.each(ajaxWidgets,e)}};ajaxPopulateWidgets();postboxes.add_postbox_toggles(pagenow,{pbshow:ajaxPopulateWidgets});quickPressLoad=function(){var e=c("#quickpost-action"),f;f=c("#quick-press").submit(function(){c("#dashboard_quick_press #publishing-action img.waiting").css("visibility","visible");c('#quick-press .submit input[type="submit"], #quick-press .submit input[type="reset"]').prop("disabled",true);if("post"==e.val()){e.val("post-quickpress-publish")}c("#dashboard_quick_press div.inside").load(f.attr("action"),f.serializeArray(),function(){c("#dashboard_quick_press #publishing-action img.waiting").css("visibility","hidden");c('#quick-press .submit input[type="submit"], #quick-press .submit input[type="reset"]').prop("disabled",false);c("#dashboard_quick_press ul").next("p").remove();c("#dashboard_quick_press ul").find("li").each(function(){c("#dashboard_recent_drafts ul").prepend(this)}).end().remove();quickPressLoad()});return false});c("#publish").click(function(){e.val("post-quickpress-publish")})};quickPressLoad()});
\ No newline at end of file
+var ajaxWidgets, ajaxPopulateWidgets, quickPressLoad;
+
+jQuery(document).ready( function($) {
+	/* Dashboard Welcome Panel */
+	var welcomePanel = $('#welcome-panel'),
+		welcomePanelHide = $('#wp_welcome_panel-hide'),
+	 	updateWelcomePanel = function( visible ) {
+			$.post( ajaxurl, {
+				action: 'update-welcome-panel',
+				visible: visible,
+				welcomepanelnonce: $('#welcomepanelnonce').val()
+			});
+		};
+
+	if ( welcomePanel.hasClass('hidden') && welcomePanelHide.prop('checked') )
+		welcomePanel.removeClass('hidden');
+
+	$('.welcome-panel-close, .welcome-panel-dismiss a', welcomePanel).click( function(e) {
+		e.preventDefault();
+		welcomePanel.addClass('hidden');
+		updateWelcomePanel( 0 );
+		$('#wp_welcome_panel-hide').prop('checked', false);
+	});
+
+	welcomePanelHide.click( function() {
+		welcomePanel.toggleClass('hidden', ! this.checked );
+		updateWelcomePanel( this.checked ? 1 : 0 );
+	});
+
+	// These widgets are sometimes populated via ajax
+	ajaxWidgets = [
+		'dashboard_incoming_links',
+		'dashboard_primary',
+		'dashboard_secondary',
+		'dashboard_plugins'
+	];
+
+	ajaxPopulateWidgets = function(el) {
+		function show(i, id) {
+			var p, e = $('#' + id + ' div.inside:visible').find('.widget-loading');
+			if ( e.length ) {
+				p = e.parent();
+				setTimeout( function(){
+					p.load( ajaxurl + '?action=dashboard-widgets&widget=' + id, '', function() {
+						p.hide().slideDown('normal', function(){
+							$(this).css('display', '');
+						});
+					});
+				}, i * 500 );
+			}
+		}
+
+		if ( el ) {
+			el = el.toString();
+			if ( $.inArray(el, ajaxWidgets) != -1 )
+				show(0, el);
+		} else {
+			$.each( ajaxWidgets, show );
+		}
+	};
+	ajaxPopulateWidgets();
+
+	postboxes.add_postbox_toggles(pagenow, { pbshow: ajaxPopulateWidgets } );
+
+	/* QuickPress */
+	quickPressLoad = function() {
+		var act = $('#quickpost-action'), t;
+		t = $('#quick-press').submit( function() {
+			$('#dashboard_quick_press #publishing-action .spinner').show();
+			$('#quick-press .submit input[type="submit"], #quick-press .submit input[type="reset"]').prop('disabled', true);
+
+			if ( 'post' == act.val() ) {
+				act.val( 'post-quickpress-publish' );
+			}
+
+			$('#dashboard_quick_press div.inside').load( t.attr( 'action' ), t.serializeArray(), function() {
+				$('#dashboard_quick_press #publishing-action .spinner').hide();
+				$('#quick-press .submit input[type="submit"], #quick-press .submit input[type="reset"]').prop('disabled', false);
+				$('#dashboard_quick_press ul').next('p').remove();
+				$('#dashboard_quick_press ul').find('li').each( function() {
+					$('#dashboard_recent_drafts ul').prepend( this );
+				} ).end().remove();
+				quickPressLoad();
+			} );
+			return false;
+		} );
+
+		$('#publish').click( function() { act.val( 'post-quickpress-publish' ); } );
+
+		$('#title, #tags-input').each( function() {
+			var input = $(this), prompt = $('#' + this.id + '-prompt-text');
+
+			if ( '' === this.value )
+				prompt.removeClass('screen-reader-text');
+
+			prompt.click( function() {
+				$(this).addClass('screen-reader-text');
+				input.focus();
+			});
+
+			input.blur( function() {
+				if ( '' === this.value )
+					prompt.removeClass('screen-reader-text');
+			});
+
+			input.focus( function() {
+				prompt.addClass('screen-reader-text');
+			});
+		});
+
+		$('#quick-press').on( 'click focusin', function() {
+			wpActiveEditor = 'content';
+		});
+	};
+	quickPressLoad();
+
+} );
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-admin/js/dashboard.min.js	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,1 @@
+var ajaxWidgets,ajaxPopulateWidgets,quickPressLoad;jQuery(document).ready(function(c){var d=c("#welcome-panel"),a=c("#wp_welcome_panel-hide"),b=function(e){c.post(ajaxurl,{action:"update-welcome-panel",visible:e,welcomepanelnonce:c("#welcomepanelnonce").val()})};if(d.hasClass("hidden")&&a.prop("checked")){d.removeClass("hidden")}c(".welcome-panel-close, .welcome-panel-dismiss a",d).click(function(f){f.preventDefault();d.addClass("hidden");b(0);c("#wp_welcome_panel-hide").prop("checked",false)});a.click(function(){d.toggleClass("hidden",!this.checked);b(this.checked?1:0)});ajaxWidgets=["dashboard_incoming_links","dashboard_primary","dashboard_secondary","dashboard_plugins"];ajaxPopulateWidgets=function(f){function e(g,k){var j,h=c("#"+k+" div.inside:visible").find(".widget-loading");if(h.length){j=h.parent();setTimeout(function(){j.load(ajaxurl+"?action=dashboard-widgets&widget="+k,"",function(){j.hide().slideDown("normal",function(){c(this).css("display","")})})},g*500)}}if(f){f=f.toString();if(c.inArray(f,ajaxWidgets)!=-1){e(0,f)}}else{c.each(ajaxWidgets,e)}};ajaxPopulateWidgets();postboxes.add_postbox_toggles(pagenow,{pbshow:ajaxPopulateWidgets});quickPressLoad=function(){var e=c("#quickpost-action"),f;f=c("#quick-press").submit(function(){c("#dashboard_quick_press #publishing-action .spinner").show();c('#quick-press .submit input[type="submit"], #quick-press .submit input[type="reset"]').prop("disabled",true);if("post"==e.val()){e.val("post-quickpress-publish")}c("#dashboard_quick_press div.inside").load(f.attr("action"),f.serializeArray(),function(){c("#dashboard_quick_press #publishing-action .spinner").hide();c('#quick-press .submit input[type="submit"], #quick-press .submit input[type="reset"]').prop("disabled",false);c("#dashboard_quick_press ul").next("p").remove();c("#dashboard_quick_press ul").find("li").each(function(){c("#dashboard_recent_drafts ul").prepend(this)}).end().remove();quickPressLoad()});return false});c("#publish").click(function(){e.val("post-quickpress-publish")});c("#title, #tags-input").each(function(){var h=c(this),g=c("#"+this.id+"-prompt-text");if(""===this.value){g.removeClass("screen-reader-text")}g.click(function(){c(this).addClass("screen-reader-text");h.focus()});h.blur(function(){if(""===this.value){g.removeClass("screen-reader-text")}});h.focus(function(){g.addClass("screen-reader-text")})});c("#quick-press").on("click focusin",function(){wpActiveEditor="content"})};quickPressLoad()});
\ No newline at end of file
--- a/web/wp-admin/js/edit-comments.dev.js	Wed Dec 19 12:35:13 2012 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,606 +0,0 @@
-var theList, theExtraList, toggleWithKeyboard = false;
-
-(function($) {
-var getCount, updateCount, updatePending, dashboardTotals;
-
-setCommentsList = function() {
-	var totalInput, perPageInput, pageInput, lastConfidentTime = 0, dimAfter, delBefore, updateTotalCount, delAfter, refillTheExtraList;
-
-	totalInput = $('input[name="_total"]', '#comments-form');
-	perPageInput = $('input[name="_per_page"]', '#comments-form');
-	pageInput = $('input[name="_page"]', '#comments-form');
-
-	dimAfter = function( r, settings ) {
-		var c = $('#' + settings.element), editRow, replyID, replyButton;
-
-		editRow = $('#replyrow');
-		replyID = $('#comment_ID', editRow).val();
-		replyButton = $('#replybtn', editRow);
-
-		if ( c.is('.unapproved') ) {
-			if ( settings.data.id == replyID )
-				replyButton.text(adminCommentsL10n.replyApprove);
-
-			c.find('div.comment_status').html('0');
-		} else {
-			if ( settings.data.id == replyID )
-				replyButton.text(adminCommentsL10n.reply);
-
-			c.find('div.comment_status').html('1');
-		}
-
-		var diff = $('#' + settings.element).is('.' + settings.dimClass) ? 1 : -1;
-		updatePending( diff );
-	};
-
-	// Send current total, page, per_page and url
-	delBefore = function( settings, list ) {
-		var cl = $(settings.target).attr('class'), id, el, n, h, a, author, action = false;
-
-		settings.data._total = totalInput.val() || 0;
-		settings.data._per_page = perPageInput.val() || 0;
-		settings.data._page = pageInput.val() || 0;
-		settings.data._url = document.location.href;
-		settings.data.comment_status = $('input[name="comment_status"]', '#comments-form').val();
-
-		if ( cl.indexOf(':trash=1') != -1 )
-			action = 'trash';
-		else if ( cl.indexOf(':spam=1') != -1 )
-			action = 'spam';
-
-		if ( action ) {
-			id = cl.replace(/.*?comment-([0-9]+).*/, '$1');
-			el = $('#comment-' + id);
-			note = $('#' + action + '-undo-holder').html();
-
-			el.find('.check-column :checkbox').prop('checked', false); // Uncheck the row so as not to be affected by Bulk Edits.
-
-			if ( el.siblings('#replyrow').length && commentReply.cid == id )
-				commentReply.close();
-
-			if ( el.is('tr') ) {
-				n = el.children(':visible').length;
-				author = $('.author strong', el).text();
-				h = $('<tr id="undo-' + id + '" class="undo un' + action + '" style="display:none;"><td colspan="' + n + '">' + note + '</td></tr>');
-			} else {
-				author = $('.comment-author', el).text();
-				h = $('<div id="undo-' + id + '" style="display:none;" class="undo un' + action + '">' + note + '</div>');
-			}
-
-			el.before(h);
-
-			$('strong', '#undo-' + id).text(author);
-			a = $('.undo a', '#undo-' + id);
-			a.attr('href', 'comment.php?action=un' + action + 'comment&c=' + id + '&_wpnonce=' + settings.data._ajax_nonce);
-			a.attr('class', 'delete:the-comment-list:comment-' + id + '::un' + action + '=1 vim-z vim-destructive');
-			$('.avatar', el).clone().prependTo('#undo-' + id + ' .' + action + '-undo-inside');
-
-			a.click(function(){
-				list.wpList.del(this);
-				$('#undo-' + id).css( {backgroundColor:'#ceb'} ).fadeOut(350, function(){
-					$(this).remove();
-					$('#comment-' + id).css('backgroundColor', '').fadeIn(300, function(){ $(this).show() });
-				});
-				return false;
-			});
-		}
-
-		return settings;
-	};
-
-	// Updates the current total (stored in the _total input)
-	updateTotalCount = function( total, time, setConfidentTime ) {
-		if ( time < lastConfidentTime )
-			return;
-
-		if ( setConfidentTime )
-			lastConfidentTime = time;
-
-		totalInput.val( total.toString() );
-	};
-
-	dashboardTotals = function(n) {
-		var dash = $('#dashboard_right_now'), total, appr, totalN, apprN;
-
-		n = n || 0;
-		if ( isNaN(n) || !dash.length )
-			return;
-
-		total = $('span.total-count', dash);
-		appr = $('span.approved-count', dash);
-		totalN = getCount(total);
-
-		totalN = totalN + n;
-		apprN = totalN - getCount( $('span.pending-count', dash) ) - getCount( $('span.spam-count', dash) );
-		updateCount(total, totalN);
-		updateCount(appr, apprN);
-	};
-
-	getCount = function(el) {
-		var n = parseInt( el.html().replace(/[^0-9]+/g, ''), 10 );
-		if ( isNaN(n) )
-			return 0;
-		return n;
-	};
-
-	updateCount = function(el, n) {
-		var n1 = '';
-		if ( isNaN(n) )
-			return;
-		n = n < 1 ? '0' : n.toString();
-		if ( n.length > 3 ) {
-			while ( n.length > 3 ) {
-				n1 = thousandsSeparator + n.substr(n.length - 3) + n1;
-				n = n.substr(0, n.length - 3);
-			}
-			n = n + n1;
-		}
-		el.html(n);
-	};
-
-	updatePending = function( diff ) {
-		$('span.pending-count').each(function() {
-			var a = $(this), n = getCount(a) + diff;
-			if ( n < 1 )
-				n = 0;
-			a.closest('.awaiting-mod')[ 0 == n ? 'addClass' : 'removeClass' ]('count-0');
-			updateCount( a, n );
-		});
-
-		dashboardTotals();
-	};
-
-	// In admin-ajax.php, we send back the unix time stamp instead of 1 on success
-	delAfter = function( r, settings ) {
-		var total, N, spam, trash, pending,
-			untrash = $(settings.target).parent().is('span.untrash'),
-			unspam = $(settings.target).parent().is('span.unspam'),
-			unapproved = $('#' + settings.element).is('.unapproved');
-
-		function getUpdate(s) {
-			if ( $(settings.target).parent().is('span.' + s) )
-				return 1;
-			else if ( $('#' + settings.element).is('.' + s) )
-				return -1;
-
-			return 0;
-		}
-
-		if ( untrash )
-			trash = -1;
-		else
-			trash = getUpdate('trash');
-
-		if ( unspam )
-			spam = -1;
-		else
-			spam = getUpdate('spam');
-
-		if ( $(settings.target).parent().is('span.unapprove') || ( ( untrash || unspam ) && unapproved ) ) {
-			// a comment was 'deleted' from another list (e.g. approved, spam, trash) and moved to pending,
-			// or a trash/spam of a pending comment was undone
-			pending = 1;
-		} else if ( unapproved ) {
-			// a pending comment was trashed/spammed/approved
-			pending = -1;
-		}
-
-		if ( pending )
-			updatePending(pending);
-
-		$('span.spam-count').each( function() {
-			var a = $(this), n = getCount(a) + spam;
-			updateCount(a, n);
-		});
-
-		$('span.trash-count').each( function() {
-			var a = $(this), n = getCount(a) + trash;
-			updateCount(a, n);
-		});
-
-		if ( $('#dashboard_right_now').length ) {
-			N = trash ? -1 * trash : 0;
-			dashboardTotals(N);
-		} else {
-			total = totalInput.val() ? parseInt( totalInput.val(), 10 ) : 0;
-			if ( $(settings.target).parent().is('span.undo') )
-				total++;
-			else
-				total--;
-
-			if ( total < 0 )
-				total = 0;
-
-			if ( ( 'object' == typeof r ) && lastConfidentTime < settings.parsed.responses[0].supplemental.time ) {
-				total_items_i18n = settings.parsed.responses[0].supplemental.total_items_i18n || '';
-				if ( total_items_i18n ) {
-					$('.displaying-num').text( total_items_i18n );
-					$('.total-pages').text( settings.parsed.responses[0].supplemental.total_pages_i18n );
-					$('.tablenav-pages').find('.next-page, .last-page').toggleClass('disabled', settings.parsed.responses[0].supplemental.total_pages == $('.current-page').val());
-				}
-				updateTotalCount( total, settings.parsed.responses[0].supplemental.time, true );
-			} else {
-				updateTotalCount( total, r, false );
-			}
-		}
-
-		if ( ! theExtraList || theExtraList.size() == 0 || theExtraList.children().size() == 0 || untrash || unspam ) {
-			return;
-		}
-
-		theList.get(0).wpList.add( theExtraList.children(':eq(0)').remove().clone() );
-
-		refillTheExtraList();
-	};
-
-	refillTheExtraList = function(ev) {
-		var args = $.query.get(), total_pages = $('.total-pages').text(), per_page = $('input[name="_per_page"]', '#comments-form').val();
-
-		if (! args.paged)
-			args.paged = 1;
-
-		if (args.paged > total_pages) {
-			return;
-		}
-
-		if (ev) {
-			theExtraList.empty();
-			args.number = Math.min(8, per_page); // see WP_Comments_List_Table::prepare_items() @ class-wp-comments-list-table.php
-		} else {
-			args.number = 1;
-			args.offset = Math.min(8, per_page) - 1; // fetch only the next item on the extra list
-		}
-
-		args.no_placeholder = true;
-
-		args.paged ++;
-
-		// $.query.get() needs some correction to be sent into an ajax request
-		if ( true === args.comment_type )
-			args.comment_type = '';
-
-		args = $.extend(args, {
-			'action': 'fetch-list',
-			'list_args': list_args,
-			'_ajax_fetch_list_nonce': $('#_ajax_fetch_list_nonce').val()
-		});
-
-		$.ajax({
-			url: ajaxurl,
-			global: false,
-			dataType: 'json',
-			data: args,
-			success: function(response) {
-				theExtraList.get(0).wpList.add( response.rows );
-			}
-		});
-	};
-
-	theExtraList = $('#the-extra-comment-list').wpList( { alt: '', delColor: 'none', addColor: 'none' } );
-	theList = $('#the-comment-list').wpList( { alt: '', delBefore: delBefore, dimAfter: dimAfter, delAfter: delAfter, addColor: 'none' } )
-		.bind('wpListDelEnd', function(e, s){
-			var id = s.element.replace(/[^0-9]+/g, '');
-
-			if ( s.target.className.indexOf(':trash=1') != -1 || s.target.className.indexOf(':spam=1') != -1 )
-				$('#undo-' + id).fadeIn(300, function(){ $(this).show() });
-		});
-};
-
-commentReply = {
-	cid : '',
-	act : '',
-
-	init : function() {
-		var row = $('#replyrow');
-
-		$('a.cancel', row).click(function() { return commentReply.revert(); });
-		$('a.save', row).click(function() { return commentReply.send(); });
-		$('input#author, input#author-email, input#author-url', row).keypress(function(e){
-			if ( e.which == 13 ) {
-				commentReply.send();
-				e.preventDefault();
-				return false;
-			}
-		});
-
-		// add events
-		$('#the-comment-list .column-comment > p').dblclick(function(){
-			commentReply.toggle($(this).parent());
-		});
-
-		$('#doaction, #doaction2, #post-query-submit').click(function(e){
-			if ( $('#the-comment-list #replyrow').length > 0 )
-				commentReply.close();
-		});
-
-		this.comments_listing = $('#comments-form > input[name="comment_status"]').val() || '';
-
-		/* $(listTable).bind('beforeChangePage', function(){
-			commentReply.close();
-		}); */
-	},
-
-	addEvents : function(r) {
-		r.each(function() {
-			$(this).find('.column-comment > p').dblclick(function(){
-				commentReply.toggle($(this).parent());
-			});
-		});
-	},
-
-	toggle : function(el) {
-		if ( $(el).css('display') != 'none' )
-			$(el).find('a.vim-q').click();
-	},
-
-	revert : function() {
-
-		if ( $('#the-comment-list #replyrow').length < 1 )
-			return false;
-
-		$('#replyrow').fadeOut('fast', function(){
-			commentReply.close();
-		});
-
-		return false;
-	},
-
-	close : function() {
-		var c, replyrow = $('#replyrow');
-
-		// replyrow is not showing?
-		if ( replyrow.parent().is('#com-reply') )
-			return;
-
-		if ( this.cid && this.act == 'edit-comment' ) {
-			c = $('#comment-' + this.cid);
-			c.fadeIn(300, function(){ c.show() }).css('backgroundColor', '');
-		}
-
-		// reset the Quicktags buttons
-		if ( typeof QTags != 'undefined' )
-			QTags.closeAllTags('replycontent');
-
-		$('#add-new-comment').css('display', '');
-
-		replyrow.hide();
-		$('#com-reply').append( replyrow );
-		$('#replycontent').css('height', '').val('');
-		$('#edithead input').val('');
-		$('.error', replyrow).html('').hide();
-		$('.waiting', replyrow).hide();
-
-		this.cid = '';
-	},
-
-	open : function(comment_id, post_id, action) {
-		var t = this, editRow, rowData, act, c = $('#comment-' + comment_id), h = c.height(), replyButton;
-
-		t.close();
-		t.cid = comment_id;
-
-		editRow = $('#replyrow');
-		rowData = $('#inline-'+comment_id);
-		action = action || 'replyto';
-		act = 'edit' == action ? 'edit' : 'replyto';
-		act = t.act = act + '-comment';
-
-		$('#action', editRow).val(act);
-		$('#comment_post_ID', editRow).val(post_id);
-		$('#comment_ID', editRow).val(comment_id);
-
-		if ( h > 120 )
-			$('#replycontent', editRow).css('height', (35+h) + 'px');
-
-		if ( action == 'edit' ) {
-			$('#author', editRow).val( $('div.author', rowData).text() );
-			$('#author-email', editRow).val( $('div.author-email', rowData).text() );
-			$('#author-url', editRow).val( $('div.author-url', rowData).text() );
-			$('#status', editRow).val( $('div.comment_status', rowData).text() );
-			$('#replycontent', editRow).val( $('textarea.comment', rowData).val() );
-			$('#edithead, #savebtn', editRow).show();
-			$('#replyhead, #replybtn, #addhead, #addbtn', editRow).hide();
-
-			c.after( editRow ).fadeOut('fast', function(){
-				$('#replyrow').fadeIn(300, function(){ $(this).show() });
-			});
-		} else if ( action == 'add' ) {
-			$('#addhead, #addbtn', editRow).show();
-			$('#replyhead, #replybtn, #edithead, #editbtn', editRow).hide();
-			$('#the-comment-list').prepend(editRow);
-			$('#replyrow').fadeIn(300);
- 		} else {
- 			replyButton = $('#replybtn', editRow);
-			$('#edithead, #savebtn, #addhead, #addbtn', editRow).hide();
-			$('#replyhead, #replybtn', editRow).show();
-			c.after(editRow);
-
-			if ( c.hasClass('unapproved') ) {
-				replyButton.text(adminCommentsL10n.replyApprove);
-			} else {
-				replyButton.text(adminCommentsL10n.reply);
-			}
-
-			$('#replyrow').fadeIn(300, function(){ $(this).show() });
-		}
-
-		setTimeout(function() {
-			var rtop, rbottom, scrollTop, vp, scrollBottom;
-
-			rtop = $('#replyrow').offset().top;
-			rbottom = rtop + $('#replyrow').height();
-			scrollTop = window.pageYOffset || document.documentElement.scrollTop;
-			vp = document.documentElement.clientHeight || self.innerHeight || 0;
-			scrollBottom = scrollTop + vp;
-
-			if ( scrollBottom - 20 < rbottom )
-				window.scroll(0, rbottom - vp + 35);
-			else if ( rtop - 20 < scrollTop )
-				window.scroll(0, rtop - 35);
-
-			$('#replycontent').focus().keyup(function(e){
-				if ( e.which == 27 )
-					commentReply.revert(); // close on Escape
-			});
-		}, 600);
-
-		return false;
-	},
-
-	send : function() {
-		var post = {};
-
-		$('#replysubmit .error').hide();
-		$('#replysubmit .waiting').show();
-
-		$('#replyrow input').not(':button').each(function() {
-			var t = $(this);
-			post[ t.attr('name') ] = t.val();
-		});
-
-		post.content = $('#replycontent').val();
-		post.id = post.comment_post_ID;
-		post.comments_listing = this.comments_listing;
-		post.p = $('[name="p"]').val();
-
-		if ( $('#comment-' + $('#comment_ID').val()).hasClass('unapproved') )
-			post.approve_parent = 1;
-
-		$.ajax({
-			type : 'POST',
-			url : ajaxurl,
-			data : post,
-			success : function(x) { commentReply.show(x); },
-			error : function(r) { commentReply.error(r); }
-		});
-
-		return false;
-	},
-
-	show : function(xml) {
-		var t = this, r, c, id, bg, pid;
-
-		if ( typeof(xml) == 'string' ) {
-			t.error({'responseText': xml});
-			return false;
-		}
-
-		r = wpAjax.parseAjaxResponse(xml);
-		if ( r.errors ) {
-			t.error({'responseText': wpAjax.broken});
-			return false;
-		}
-
-		t.revert();
-
-		r = r.responses[0];
-		c = r.data;
-		id = '#comment-' + r.id;
-
-		if ( 'edit-comment' == t.act )
-			$(id).remove();
-
-		if ( r.supplemental.parent_approved ) {
-			pid = $('#comment-' + r.supplemental.parent_approved);
-			updatePending( -1 );
-
-			if ( this.comments_listing == 'moderated' ) {
-				pid.animate( { 'backgroundColor':'#CCEEBB' }, 400, function(){
-					pid.fadeOut();
-				});
-				return;
-			}
-		}
-
-		$(c).hide()
-		$('#replyrow').after(c);
-		id = $(id);
-		t.addEvents(id);
-		bg = id.hasClass('unapproved') ? '#FFFFE0' : id.closest('.widefat, .postbox').css('backgroundColor');
-
-		id.animate( { 'backgroundColor':'#CCEEBB' }, 300 )
-			.animate( { 'backgroundColor': bg }, 300, function() {
-				if ( pid && pid.length ) {
-					pid.animate( { 'backgroundColor':'#CCEEBB' }, 300 )
-						.animate( { 'backgroundColor': bg }, 300 )
-						.removeClass('unapproved').addClass('approved')
-						.find('div.comment_status').html('1');
-				}
-			});
-
-	},
-
-	error : function(r) {
-		var er = r.statusText;
-
-		$('#replysubmit .waiting').hide();
-
-		if ( r.responseText )
-			er = r.responseText.replace( /<.[^<>]*?>/g, '' );
-
-		if ( er )
-			$('#replysubmit .error').html(er).show();
-
-	},
-
-	addcomment: function(post_id) {
-		var t = this;
-
-		$('#add-new-comment').fadeOut(200, function(){
-			t.open(0, post_id, 'add');
-			$('table.comments-box').css('display', '');
-			$('#no-comments').remove();
-		});
-	}
-};
-
-$(document).ready(function(){
-	var make_hotkeys_redirect, edit_comment, toggle_all, make_bulk;
-
-	setCommentsList();
-	commentReply.init();
-	$(document).delegate('span.delete a.delete', 'click', function(){return false;});
-
-	if ( typeof $.table_hotkeys != 'undefined' ) {
-		make_hotkeys_redirect = function(which) {
-			return function() {
-				var first_last, l;
-
-				first_last = 'next' == which? 'first' : 'last';
-				l = $('.tablenav-pages .'+which+'-page:not(.disabled)');
-				if (l.length)
-					window.location = l[0].href.replace(/\&hotkeys_highlight_(first|last)=1/g, '')+'&hotkeys_highlight_'+first_last+'=1';
-			}
-		};
-
-		edit_comment = function(event, current_row) {
-			window.location = $('span.edit a', current_row).attr('href');
-		};
-
-		toggle_all = function() {
-			toggleWithKeyboard = true;
-			$('input:checkbox', '#cb').click().prop('checked', false);
-			toggleWithKeyboard = false;
-		};
-
-		make_bulk = function(value) {
-			return function() {
-				var scope = $('select[name="action"]');
-				$('option[value="' + value + '"]', scope).prop('selected', true);
-				$('#doaction').click();
-			}
-		};
-
-		$.table_hotkeys(
-			$('table.widefat'),
-			['a', 'u', 's', 'd', 'r', 'q', 'z', ['e', edit_comment], ['shift+x', toggle_all],
-			['shift+a', make_bulk('approve')], ['shift+s', make_bulk('spam')],
-			['shift+d', make_bulk('delete')], ['shift+t', make_bulk('trash')],
-			['shift+z', make_bulk('untrash')], ['shift+u', make_bulk('unapprove')]],
-			{ highlight_first: adminCommentsL10n.hotkeys_highlight_first, highlight_last: adminCommentsL10n.hotkeys_highlight_last,
-			prev_page_link_cb: make_hotkeys_redirect('prev'), next_page_link_cb: make_hotkeys_redirect('next') }
-		);
-	}
-});
-
-})(jQuery);
--- a/web/wp-admin/js/edit-comments.js	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-admin/js/edit-comments.js	Wed Dec 19 17:46:52 2012 -0800
@@ -1,1 +1,607 @@
-var theList,theExtraList,toggleWithKeyboard=false;(function(d){var b,a,e,c;setCommentsList=function(){var g,i,k,n=0,j,l,h,m,f;g=d('input[name="_total"]',"#comments-form");i=d('input[name="_per_page"]',"#comments-form");k=d('input[name="_page"]',"#comments-form");j=function(s,p){var v=d("#"+p.element),o,u,q;o=d("#replyrow");u=d("#comment_ID",o).val();q=d("#replybtn",o);if(v.is(".unapproved")){if(p.data.id==u){q.text(adminCommentsL10n.replyApprove)}v.find("div.comment_status").html("0")}else{if(p.data.id==u){q.text(adminCommentsL10n.reply)}v.find("div.comment_status").html("1")}var t=d("#"+p.element).is("."+p.dimClass)?1:-1;e(t)};l=function(r,v){var x=d(r.target).attr("class"),o,p,q,u,w,t,s=false;r.data._total=g.val()||0;r.data._per_page=i.val()||0;r.data._page=k.val()||0;r.data._url=document.location.href;r.data.comment_status=d('input[name="comment_status"]',"#comments-form").val();if(x.indexOf(":trash=1")!=-1){s="trash"}else{if(x.indexOf(":spam=1")!=-1){s="spam"}}if(s){o=x.replace(/.*?comment-([0-9]+).*/,"$1");p=d("#comment-"+o);note=d("#"+s+"-undo-holder").html();p.find(".check-column :checkbox").prop("checked",false);if(p.siblings("#replyrow").length&&commentReply.cid==o){commentReply.close()}if(p.is("tr")){q=p.children(":visible").length;t=d(".author strong",p).text();u=d('<tr id="undo-'+o+'" class="undo un'+s+'" style="display:none;"><td colspan="'+q+'">'+note+"</td></tr>")}else{t=d(".comment-author",p).text();u=d('<div id="undo-'+o+'" style="display:none;" class="undo un'+s+'">'+note+"</div>")}p.before(u);d("strong","#undo-"+o).text(t);w=d(".undo a","#undo-"+o);w.attr("href","comment.php?action=un"+s+"comment&c="+o+"&_wpnonce="+r.data._ajax_nonce);w.attr("class","delete:the-comment-list:comment-"+o+"::un"+s+"=1 vim-z vim-destructive");d(".avatar",p).clone().prependTo("#undo-"+o+" ."+s+"-undo-inside");w.click(function(){v.wpList.del(this);d("#undo-"+o).css({backgroundColor:"#ceb"}).fadeOut(350,function(){d(this).remove();d("#comment-"+o).css("backgroundColor","").fadeIn(300,function(){d(this).show()})});return false})}return r};h=function(o,p,q){if(p<n){return}if(q){n=p}g.val(o.toString())};c=function(t){var s=d("#dashboard_right_now"),p,r,q,o;t=t||0;if(isNaN(t)||!s.length){return}p=d("span.total-count",s);r=d("span.approved-count",s);q=b(p);q=q+t;o=q-b(d("span.pending-count",s))-b(d("span.spam-count",s));a(p,q);a(r,o)};b=function(o){var p=parseInt(o.html().replace(/[^0-9]+/g,""),10);if(isNaN(p)){return 0}return p};a=function(p,q){var o="";if(isNaN(q)){return}q=q<1?"0":q.toString();if(q.length>3){while(q.length>3){o=thousandsSeparator+q.substr(q.length-3)+o;q=q.substr(0,q.length-3)}q=q+o}p.html(q)};e=function(o){d("span.pending-count").each(function(){var p=d(this),q=b(p)+o;if(q<1){q=0}p.closest(".awaiting-mod")[0==q?"addClass":"removeClass"]("count-0");a(p,q)});c()};m=function(o,s){var v,t,x,w,p,y=d(s.target).parent().is("span.untrash"),q=d(s.target).parent().is("span.unspam"),u=d("#"+s.element).is(".unapproved");function z(r){if(d(s.target).parent().is("span."+r)){return 1}else{if(d("#"+s.element).is("."+r)){return -1}}return 0}if(y){w=-1}else{w=z("trash")}if(q){x=-1}else{x=z("spam")}if(d(s.target).parent().is("span.unapprove")||((y||q)&&u)){p=1}else{if(u){p=-1}}if(p){e(p)}d("span.spam-count").each(function(){var r=d(this),A=b(r)+x;a(r,A)});d("span.trash-count").each(function(){var r=d(this),A=b(r)+w;a(r,A)});if(d("#dashboard_right_now").length){t=w?-1*w:0;c(t)}else{v=g.val()?parseInt(g.val(),10):0;if(d(s.target).parent().is("span.undo")){v++}else{v--}if(v<0){v=0}if(("object"==typeof o)&&n<s.parsed.responses[0].supplemental.time){total_items_i18n=s.parsed.responses[0].supplemental.total_items_i18n||"";if(total_items_i18n){d(".displaying-num").text(total_items_i18n);d(".total-pages").text(s.parsed.responses[0].supplemental.total_pages_i18n);d(".tablenav-pages").find(".next-page, .last-page").toggleClass("disabled",s.parsed.responses[0].supplemental.total_pages==d(".current-page").val())}h(v,s.parsed.responses[0].supplemental.time,true)}else{h(v,o,false)}}if(!theExtraList||theExtraList.size()==0||theExtraList.children().size()==0||y||q){return}theList.get(0).wpList.add(theExtraList.children(":eq(0)").remove().clone());f()};f=function(r){var p=d.query.get(),o=d(".total-pages").text(),q=d('input[name="_per_page"]',"#comments-form").val();if(!p.paged){p.paged=1}if(p.paged>o){return}if(r){theExtraList.empty();p.number=Math.min(8,q)}else{p.number=1;p.offset=Math.min(8,q)-1}p.no_placeholder=true;p.paged++;if(true===p.comment_type){p.comment_type=""}p=d.extend(p,{action:"fetch-list",list_args:list_args,_ajax_fetch_list_nonce:d("#_ajax_fetch_list_nonce").val()});d.ajax({url:ajaxurl,global:false,dataType:"json",data:p,success:function(s){theExtraList.get(0).wpList.add(s.rows)}})};theExtraList=d("#the-extra-comment-list").wpList({alt:"",delColor:"none",addColor:"none"});theList=d("#the-comment-list").wpList({alt:"",delBefore:l,dimAfter:j,delAfter:m,addColor:"none"}).bind("wpListDelEnd",function(p,o){var q=o.element.replace(/[^0-9]+/g,"");if(o.target.className.indexOf(":trash=1")!=-1||o.target.className.indexOf(":spam=1")!=-1){d("#undo-"+q).fadeIn(300,function(){d(this).show()})}})};commentReply={cid:"",act:"",init:function(){var f=d("#replyrow");d("a.cancel",f).click(function(){return commentReply.revert()});d("a.save",f).click(function(){return commentReply.send()});d("input#author, input#author-email, input#author-url",f).keypress(function(g){if(g.which==13){commentReply.send();g.preventDefault();return false}});d("#the-comment-list .column-comment > p").dblclick(function(){commentReply.toggle(d(this).parent())});d("#doaction, #doaction2, #post-query-submit").click(function(g){if(d("#the-comment-list #replyrow").length>0){commentReply.close()}});this.comments_listing=d('#comments-form > input[name="comment_status"]').val()||""},addEvents:function(f){f.each(function(){d(this).find(".column-comment > p").dblclick(function(){commentReply.toggle(d(this).parent())})})},toggle:function(f){if(d(f).css("display")!="none"){d(f).find("a.vim-q").click()}},revert:function(){if(d("#the-comment-list #replyrow").length<1){return false}d("#replyrow").fadeOut("fast",function(){commentReply.close()});return false},close:function(){var g,f=d("#replyrow");if(f.parent().is("#com-reply")){return}if(this.cid&&this.act=="edit-comment"){g=d("#comment-"+this.cid);g.fadeIn(300,function(){g.show()}).css("backgroundColor","")}if(typeof QTags!="undefined"){QTags.closeAllTags("replycontent")}d("#add-new-comment").css("display","");f.hide();d("#com-reply").append(f);d("#replycontent").css("height","").val("");d("#edithead input").val("");d(".error",f).html("").hide();d(".waiting",f).hide();this.cid=""},open:function(f,i,k){var p=this,g,j,m,n=d("#comment-"+f),l=n.height(),o;p.close();p.cid=f;g=d("#replyrow");j=d("#inline-"+f);k=k||"replyto";m="edit"==k?"edit":"replyto";m=p.act=m+"-comment";d("#action",g).val(m);d("#comment_post_ID",g).val(i);d("#comment_ID",g).val(f);if(l>120){d("#replycontent",g).css("height",(35+l)+"px")}if(k=="edit"){d("#author",g).val(d("div.author",j).text());d("#author-email",g).val(d("div.author-email",j).text());d("#author-url",g).val(d("div.author-url",j).text());d("#status",g).val(d("div.comment_status",j).text());d("#replycontent",g).val(d("textarea.comment",j).val());d("#edithead, #savebtn",g).show();d("#replyhead, #replybtn, #addhead, #addbtn",g).hide();n.after(g).fadeOut("fast",function(){d("#replyrow").fadeIn(300,function(){d(this).show()})})}else{if(k=="add"){d("#addhead, #addbtn",g).show();d("#replyhead, #replybtn, #edithead, #editbtn",g).hide();d("#the-comment-list").prepend(g);d("#replyrow").fadeIn(300)}else{o=d("#replybtn",g);d("#edithead, #savebtn, #addhead, #addbtn",g).hide();d("#replyhead, #replybtn",g).show();n.after(g);if(n.hasClass("unapproved")){o.text(adminCommentsL10n.replyApprove)}else{o.text(adminCommentsL10n.reply)}d("#replyrow").fadeIn(300,function(){d(this).show()})}}setTimeout(function(){var s,q,t,h,r;s=d("#replyrow").offset().top;q=s+d("#replyrow").height();t=window.pageYOffset||document.documentElement.scrollTop;h=document.documentElement.clientHeight||self.innerHeight||0;r=t+h;if(r-20<q){window.scroll(0,q-h+35)}else{if(s-20<t){window.scroll(0,s-35)}}d("#replycontent").focus().keyup(function(u){if(u.which==27){commentReply.revert()}})},600);return false},send:function(){var f={};d("#replysubmit .error").hide();d("#replysubmit .waiting").show();d("#replyrow input").not(":button").each(function(){var g=d(this);f[g.attr("name")]=g.val()});f.content=d("#replycontent").val();f.id=f.comment_post_ID;f.comments_listing=this.comments_listing;f.p=d('[name="p"]').val();if(d("#comment-"+d("#comment_ID").val()).hasClass("unapproved")){f.approve_parent=1}d.ajax({type:"POST",url:ajaxurl,data:f,success:function(g){commentReply.show(g)},error:function(g){commentReply.error(g)}});return false},show:function(g){var i=this,j,l,k,h,f;if(typeof(g)=="string"){i.error({responseText:g});return false}j=wpAjax.parseAjaxResponse(g);if(j.errors){i.error({responseText:wpAjax.broken});return false}i.revert();j=j.responses[0];l=j.data;k="#comment-"+j.id;if("edit-comment"==i.act){d(k).remove()}if(j.supplemental.parent_approved){f=d("#comment-"+j.supplemental.parent_approved);e(-1);if(this.comments_listing=="moderated"){f.animate({backgroundColor:"#CCEEBB"},400,function(){f.fadeOut()});return}}d(l).hide();d("#replyrow").after(l);k=d(k);i.addEvents(k);h=k.hasClass("unapproved")?"#FFFFE0":k.closest(".widefat, .postbox").css("backgroundColor");k.animate({backgroundColor:"#CCEEBB"},300).animate({backgroundColor:h},300,function(){if(f&&f.length){f.animate({backgroundColor:"#CCEEBB"},300).animate({backgroundColor:h},300).removeClass("unapproved").addClass("approved").find("div.comment_status").html("1")}})},error:function(f){var g=f.statusText;d("#replysubmit .waiting").hide();if(f.responseText){g=f.responseText.replace(/<.[^<>]*?>/g,"")}if(g){d("#replysubmit .error").html(g).show()}},addcomment:function(f){var g=this;d("#add-new-comment").fadeOut(200,function(){g.open(0,f,"add");d("table.comments-box").css("display","");d("#no-comments").remove()})}};d(document).ready(function(){var i,f,g,h;setCommentsList();commentReply.init();d(document).delegate("span.delete a.delete","click",function(){return false});if(typeof d.table_hotkeys!="undefined"){i=function(j){return function(){var m,k;m="next"==j?"first":"last";k=d(".tablenav-pages ."+j+"-page:not(.disabled)");if(k.length){window.location=k[0].href.replace(/\&hotkeys_highlight_(first|last)=1/g,"")+"&hotkeys_highlight_"+m+"=1"}}};f=function(k,j){window.location=d("span.edit a",j).attr("href")};g=function(){toggleWithKeyboard=true;d("input:checkbox","#cb").click().prop("checked",false);toggleWithKeyboard=false};h=function(j){return function(){var k=d('select[name="action"]');d('option[value="'+j+'"]',k).prop("selected",true);d("#doaction").click()}};d.table_hotkeys(d("table.widefat"),["a","u","s","d","r","q","z",["e",f],["shift+x",g],["shift+a",h("approve")],["shift+s",h("spam")],["shift+d",h("delete")],["shift+t",h("trash")],["shift+z",h("untrash")],["shift+u",h("unapprove")]],{highlight_first:adminCommentsL10n.hotkeys_highlight_first,highlight_last:adminCommentsL10n.hotkeys_highlight_last,prev_page_link_cb:i("prev"),next_page_link_cb:i("next")})}})})(jQuery);
\ No newline at end of file
+var theList, theExtraList, toggleWithKeyboard = false;
+
+(function($) {
+var getCount, updateCount, updatePending, dashboardTotals;
+
+setCommentsList = function() {
+	var totalInput, perPageInput, pageInput, lastConfidentTime = 0, dimAfter, delBefore, updateTotalCount, delAfter, refillTheExtraList;
+
+	totalInput = $('input[name="_total"]', '#comments-form');
+	perPageInput = $('input[name="_per_page"]', '#comments-form');
+	pageInput = $('input[name="_page"]', '#comments-form');
+
+	dimAfter = function( r, settings ) {
+		var c = $('#' + settings.element), editRow, replyID, replyButton;
+
+		editRow = $('#replyrow');
+		replyID = $('#comment_ID', editRow).val();
+		replyButton = $('#replybtn', editRow);
+
+		if ( c.is('.unapproved') ) {
+			if ( settings.data.id == replyID )
+				replyButton.text(adminCommentsL10n.replyApprove);
+
+			c.find('div.comment_status').html('0');
+		} else {
+			if ( settings.data.id == replyID )
+				replyButton.text(adminCommentsL10n.reply);
+
+			c.find('div.comment_status').html('1');
+		}
+
+		var diff = $('#' + settings.element).is('.' + settings.dimClass) ? 1 : -1;
+		updatePending( diff );
+	};
+
+	// Send current total, page, per_page and url
+	delBefore = function( settings, list ) {
+		var wpListsData = $(settings.target).attr('data-wp-lists'), id, el, n, h, a, author, action = false;
+
+		settings.data._total = totalInput.val() || 0;
+		settings.data._per_page = perPageInput.val() || 0;
+		settings.data._page = pageInput.val() || 0;
+		settings.data._url = document.location.href;
+		settings.data.comment_status = $('input[name="comment_status"]', '#comments-form').val();
+
+		if ( wpListsData.indexOf(':trash=1') != -1 )
+			action = 'trash';
+		else if ( wpListsData.indexOf(':spam=1') != -1 )
+			action = 'spam';
+
+		if ( action ) {
+			id = wpListsData.replace(/.*?comment-([0-9]+).*/, '$1');
+			el = $('#comment-' + id);
+			note = $('#' + action + '-undo-holder').html();
+
+			el.find('.check-column :checkbox').prop('checked', false); // Uncheck the row so as not to be affected by Bulk Edits.
+
+			if ( el.siblings('#replyrow').length && commentReply.cid == id )
+				commentReply.close();
+
+			if ( el.is('tr') ) {
+				n = el.children(':visible').length;
+				author = $('.author strong', el).text();
+				h = $('<tr id="undo-' + id + '" class="undo un' + action + '" style="display:none;"><td colspan="' + n + '">' + note + '</td></tr>');
+			} else {
+				author = $('.comment-author', el).text();
+				h = $('<div id="undo-' + id + '" style="display:none;" class="undo un' + action + '">' + note + '</div>');
+			}
+
+			el.before(h);
+
+			$('strong', '#undo-' + id).text(author);
+			a = $('.undo a', '#undo-' + id);
+			a.attr('href', 'comment.php?action=un' + action + 'comment&c=' + id + '&_wpnonce=' + settings.data._ajax_nonce);
+			a.attr('data-wp-lists', 'delete:the-comment-list:comment-' + id + '::un' + action + '=1');
+			a.attr('class', 'vim-z vim-destructive');
+			$('.avatar', el).clone().prependTo('#undo-' + id + ' .' + action + '-undo-inside');
+
+			a.click(function(){
+				list.wpList.del(this);
+				$('#undo-' + id).css( {backgroundColor:'#ceb'} ).fadeOut(350, function(){
+					$(this).remove();
+					$('#comment-' + id).css('backgroundColor', '').fadeIn(300, function(){ $(this).show() });
+				});
+				return false;
+			});
+		}
+
+		return settings;
+	};
+
+	// Updates the current total (stored in the _total input)
+	updateTotalCount = function( total, time, setConfidentTime ) {
+		if ( time < lastConfidentTime )
+			return;
+
+		if ( setConfidentTime )
+			lastConfidentTime = time;
+
+		totalInput.val( total.toString() );
+	};
+
+	dashboardTotals = function(n) {
+		var dash = $('#dashboard_right_now'), total, appr, totalN, apprN;
+
+		n = n || 0;
+		if ( isNaN(n) || !dash.length )
+			return;
+
+		total = $('span.total-count', dash);
+		appr = $('span.approved-count', dash);
+		totalN = getCount(total);
+
+		totalN = totalN + n;
+		apprN = totalN - getCount( $('span.pending-count', dash) ) - getCount( $('span.spam-count', dash) );
+		updateCount(total, totalN);
+		updateCount(appr, apprN);
+	};
+
+	getCount = function(el) {
+		var n = parseInt( el.html().replace(/[^0-9]+/g, ''), 10 );
+		if ( isNaN(n) )
+			return 0;
+		return n;
+	};
+
+	updateCount = function(el, n) {
+		var n1 = '';
+		if ( isNaN(n) )
+			return;
+		n = n < 1 ? '0' : n.toString();
+		if ( n.length > 3 ) {
+			while ( n.length > 3 ) {
+				n1 = thousandsSeparator + n.substr(n.length - 3) + n1;
+				n = n.substr(0, n.length - 3);
+			}
+			n = n + n1;
+		}
+		el.html(n);
+	};
+
+	updatePending = function( diff ) {
+		$('span.pending-count').each(function() {
+			var a = $(this), n = getCount(a) + diff;
+			if ( n < 1 )
+				n = 0;
+			a.closest('.awaiting-mod')[ 0 == n ? 'addClass' : 'removeClass' ]('count-0');
+			updateCount( a, n );
+		});
+
+		dashboardTotals();
+	};
+
+	// In admin-ajax.php, we send back the unix time stamp instead of 1 on success
+	delAfter = function( r, settings ) {
+		var total, N, spam, trash, pending,
+			untrash = $(settings.target).parent().is('span.untrash'),
+			unspam = $(settings.target).parent().is('span.unspam'),
+			unapproved = $('#' + settings.element).is('.unapproved');
+
+		function getUpdate(s) {
+			if ( $(settings.target).parent().is('span.' + s) )
+				return 1;
+			else if ( $('#' + settings.element).is('.' + s) )
+				return -1;
+
+			return 0;
+		}
+
+		if ( untrash )
+			trash = -1;
+		else
+			trash = getUpdate('trash');
+
+		if ( unspam )
+			spam = -1;
+		else
+			spam = getUpdate('spam');
+
+		if ( $(settings.target).parent().is('span.unapprove') || ( ( untrash || unspam ) && unapproved ) ) {
+			// a comment was 'deleted' from another list (e.g. approved, spam, trash) and moved to pending,
+			// or a trash/spam of a pending comment was undone
+			pending = 1;
+		} else if ( unapproved ) {
+			// a pending comment was trashed/spammed/approved
+			pending = -1;
+		}
+
+		if ( pending )
+			updatePending(pending);
+
+		$('span.spam-count').each( function() {
+			var a = $(this), n = getCount(a) + spam;
+			updateCount(a, n);
+		});
+
+		$('span.trash-count').each( function() {
+			var a = $(this), n = getCount(a) + trash;
+			updateCount(a, n);
+		});
+
+		if ( $('#dashboard_right_now').length ) {
+			N = trash ? -1 * trash : 0;
+			dashboardTotals(N);
+		} else {
+			total = totalInput.val() ? parseInt( totalInput.val(), 10 ) : 0;
+			if ( $(settings.target).parent().is('span.undo') )
+				total++;
+			else
+				total--;
+
+			if ( total < 0 )
+				total = 0;
+
+			if ( ( 'object' == typeof r ) && lastConfidentTime < settings.parsed.responses[0].supplemental.time ) {
+				total_items_i18n = settings.parsed.responses[0].supplemental.total_items_i18n || '';
+				if ( total_items_i18n ) {
+					$('.displaying-num').text( total_items_i18n );
+					$('.total-pages').text( settings.parsed.responses[0].supplemental.total_pages_i18n );
+					$('.tablenav-pages').find('.next-page, .last-page').toggleClass('disabled', settings.parsed.responses[0].supplemental.total_pages == $('.current-page').val());
+				}
+				updateTotalCount( total, settings.parsed.responses[0].supplemental.time, true );
+			} else {
+				updateTotalCount( total, r, false );
+			}
+		}
+
+		if ( ! theExtraList || theExtraList.size() == 0 || theExtraList.children().size() == 0 || untrash || unspam ) {
+			return;
+		}
+
+		theList.get(0).wpList.add( theExtraList.children(':eq(0)').remove().clone() );
+
+		refillTheExtraList();
+	};
+
+	refillTheExtraList = function(ev) {
+		var args = $.query.get(), total_pages = $('.total-pages').text(), per_page = $('input[name="_per_page"]', '#comments-form').val();
+
+		if (! args.paged)
+			args.paged = 1;
+
+		if (args.paged > total_pages) {
+			return;
+		}
+
+		if (ev) {
+			theExtraList.empty();
+			args.number = Math.min(8, per_page); // see WP_Comments_List_Table::prepare_items() @ class-wp-comments-list-table.php
+		} else {
+			args.number = 1;
+			args.offset = Math.min(8, per_page) - 1; // fetch only the next item on the extra list
+		}
+
+		args.no_placeholder = true;
+
+		args.paged ++;
+
+		// $.query.get() needs some correction to be sent into an ajax request
+		if ( true === args.comment_type )
+			args.comment_type = '';
+
+		args = $.extend(args, {
+			'action': 'fetch-list',
+			'list_args': list_args,
+			'_ajax_fetch_list_nonce': $('#_ajax_fetch_list_nonce').val()
+		});
+
+		$.ajax({
+			url: ajaxurl,
+			global: false,
+			dataType: 'json',
+			data: args,
+			success: function(response) {
+				theExtraList.get(0).wpList.add( response.rows );
+			}
+		});
+	};
+
+	theExtraList = $('#the-extra-comment-list').wpList( { alt: '', delColor: 'none', addColor: 'none' } );
+	theList = $('#the-comment-list').wpList( { alt: '', delBefore: delBefore, dimAfter: dimAfter, delAfter: delAfter, addColor: 'none' } )
+		.bind('wpListDelEnd', function(e, s){
+			var wpListsData = $(s.target).attr('data-wp-lists'), id = s.element.replace(/[^0-9]+/g, '');
+
+			if ( wpListsData.indexOf(':trash=1') != -1 || wpListsData.indexOf(':spam=1') != -1 )
+				$('#undo-' + id).fadeIn(300, function(){ $(this).show() });
+		});
+};
+
+commentReply = {
+	cid : '',
+	act : '',
+
+	init : function() {
+		var row = $('#replyrow');
+
+		$('a.cancel', row).click(function() { return commentReply.revert(); });
+		$('a.save', row).click(function() { return commentReply.send(); });
+		$('input#author, input#author-email, input#author-url', row).keypress(function(e){
+			if ( e.which == 13 ) {
+				commentReply.send();
+				e.preventDefault();
+				return false;
+			}
+		});
+
+		// add events
+		$('#the-comment-list .column-comment > p').dblclick(function(){
+			commentReply.toggle($(this).parent());
+		});
+
+		$('#doaction, #doaction2, #post-query-submit').click(function(e){
+			if ( $('#the-comment-list #replyrow').length > 0 )
+				commentReply.close();
+		});
+
+		this.comments_listing = $('#comments-form > input[name="comment_status"]').val() || '';
+
+		/* $(listTable).bind('beforeChangePage', function(){
+			commentReply.close();
+		}); */
+	},
+
+	addEvents : function(r) {
+		r.each(function() {
+			$(this).find('.column-comment > p').dblclick(function(){
+				commentReply.toggle($(this).parent());
+			});
+		});
+	},
+
+	toggle : function(el) {
+		if ( $(el).css('display') != 'none' )
+			$(el).find('a.vim-q').click();
+	},
+
+	revert : function() {
+
+		if ( $('#the-comment-list #replyrow').length < 1 )
+			return false;
+
+		$('#replyrow').fadeOut('fast', function(){
+			commentReply.close();
+		});
+
+		return false;
+	},
+
+	close : function() {
+		var c, replyrow = $('#replyrow');
+
+		// replyrow is not showing?
+		if ( replyrow.parent().is('#com-reply') )
+			return;
+
+		if ( this.cid && this.act == 'edit-comment' ) {
+			c = $('#comment-' + this.cid);
+			c.fadeIn(300, function(){ c.show() }).css('backgroundColor', '');
+		}
+
+		// reset the Quicktags buttons
+		if ( typeof QTags != 'undefined' )
+			QTags.closeAllTags('replycontent');
+
+		$('#add-new-comment').css('display', '');
+
+		replyrow.hide();
+		$('#com-reply').append( replyrow );
+		$('#replycontent').css('height', '').val('');
+		$('#edithead input').val('');
+		$('.error', replyrow).html('').hide();
+		$('.spinner', replyrow).hide();
+
+		this.cid = '';
+	},
+
+	open : function(comment_id, post_id, action) {
+		var t = this, editRow, rowData, act, c = $('#comment-' + comment_id), h = c.height(), replyButton;
+
+		t.close();
+		t.cid = comment_id;
+
+		editRow = $('#replyrow');
+		rowData = $('#inline-'+comment_id);
+		action = action || 'replyto';
+		act = 'edit' == action ? 'edit' : 'replyto';
+		act = t.act = act + '-comment';
+
+		$('#action', editRow).val(act);
+		$('#comment_post_ID', editRow).val(post_id);
+		$('#comment_ID', editRow).val(comment_id);
+
+		if ( h > 120 )
+			$('#replycontent', editRow).css('height', (35+h) + 'px');
+
+		if ( action == 'edit' ) {
+			$('#author', editRow).val( $('div.author', rowData).text() );
+			$('#author-email', editRow).val( $('div.author-email', rowData).text() );
+			$('#author-url', editRow).val( $('div.author-url', rowData).text() );
+			$('#status', editRow).val( $('div.comment_status', rowData).text() );
+			$('#replycontent', editRow).val( $('textarea.comment', rowData).val() );
+			$('#edithead, #savebtn', editRow).show();
+			$('#replyhead, #replybtn, #addhead, #addbtn', editRow).hide();
+
+			c.after( editRow ).fadeOut('fast', function(){
+				$('#replyrow').fadeIn(300, function(){ $(this).show() });
+			});
+		} else if ( action == 'add' ) {
+			$('#addhead, #addbtn', editRow).show();
+			$('#replyhead, #replybtn, #edithead, #editbtn', editRow).hide();
+			$('#the-comment-list').prepend(editRow);
+			$('#replyrow').fadeIn(300);
+ 		} else {
+ 			replyButton = $('#replybtn', editRow);
+			$('#edithead, #savebtn, #addhead, #addbtn', editRow).hide();
+			$('#replyhead, #replybtn', editRow).show();
+			c.after(editRow);
+
+			if ( c.hasClass('unapproved') ) {
+				replyButton.text(adminCommentsL10n.replyApprove);
+			} else {
+				replyButton.text(adminCommentsL10n.reply);
+			}
+
+			$('#replyrow').fadeIn(300, function(){ $(this).show() });
+		}
+
+		setTimeout(function() {
+			var rtop, rbottom, scrollTop, vp, scrollBottom;
+
+			rtop = $('#replyrow').offset().top;
+			rbottom = rtop + $('#replyrow').height();
+			scrollTop = window.pageYOffset || document.documentElement.scrollTop;
+			vp = document.documentElement.clientHeight || self.innerHeight || 0;
+			scrollBottom = scrollTop + vp;
+
+			if ( scrollBottom - 20 < rbottom )
+				window.scroll(0, rbottom - vp + 35);
+			else if ( rtop - 20 < scrollTop )
+				window.scroll(0, rtop - 35);
+
+			$('#replycontent').focus().keyup(function(e){
+				if ( e.which == 27 )
+					commentReply.revert(); // close on Escape
+			});
+		}, 600);
+
+		return false;
+	},
+
+	send : function() {
+		var post = {};
+
+		$('#replysubmit .error').hide();
+		$('#replysubmit .spinner').show();
+
+		$('#replyrow input').not(':button').each(function() {
+			var t = $(this);
+			post[ t.attr('name') ] = t.val();
+		});
+
+		post.content = $('#replycontent').val();
+		post.id = post.comment_post_ID;
+		post.comments_listing = this.comments_listing;
+		post.p = $('[name="p"]').val();
+
+		if ( $('#comment-' + $('#comment_ID').val()).hasClass('unapproved') )
+			post.approve_parent = 1;
+
+		$.ajax({
+			type : 'POST',
+			url : ajaxurl,
+			data : post,
+			success : function(x) { commentReply.show(x); },
+			error : function(r) { commentReply.error(r); }
+		});
+
+		return false;
+	},
+
+	show : function(xml) {
+		var t = this, r, c, id, bg, pid;
+
+		if ( typeof(xml) == 'string' ) {
+			t.error({'responseText': xml});
+			return false;
+		}
+
+		r = wpAjax.parseAjaxResponse(xml);
+		if ( r.errors ) {
+			t.error({'responseText': wpAjax.broken});
+			return false;
+		}
+
+		t.revert();
+
+		r = r.responses[0];
+		c = r.data;
+		id = '#comment-' + r.id;
+
+		if ( 'edit-comment' == t.act )
+			$(id).remove();
+
+		if ( r.supplemental.parent_approved ) {
+			pid = $('#comment-' + r.supplemental.parent_approved);
+			updatePending( -1 );
+
+			if ( this.comments_listing == 'moderated' ) {
+				pid.animate( { 'backgroundColor':'#CCEEBB' }, 400, function(){
+					pid.fadeOut();
+				});
+				return;
+			}
+		}
+
+		$(c).hide()
+		$('#replyrow').after(c);
+		id = $(id);
+		t.addEvents(id);
+		bg = id.hasClass('unapproved') ? '#FFFFE0' : id.closest('.widefat, .postbox').css('backgroundColor');
+
+		id.animate( { 'backgroundColor':'#CCEEBB' }, 300 )
+			.animate( { 'backgroundColor': bg }, 300, function() {
+				if ( pid && pid.length ) {
+					pid.animate( { 'backgroundColor':'#CCEEBB' }, 300 )
+						.animate( { 'backgroundColor': bg }, 300 )
+						.removeClass('unapproved').addClass('approved')
+						.find('div.comment_status').html('1');
+				}
+			});
+
+	},
+
+	error : function(r) {
+		var er = r.statusText;
+
+		$('#replysubmit .spinner').hide();
+
+		if ( r.responseText )
+			er = r.responseText.replace( /<.[^<>]*?>/g, '' );
+
+		if ( er )
+			$('#replysubmit .error').html(er).show();
+
+	},
+
+	addcomment: function(post_id) {
+		var t = this;
+
+		$('#add-new-comment').fadeOut(200, function(){
+			t.open(0, post_id, 'add');
+			$('table.comments-box').css('display', '');
+			$('#no-comments').remove();
+		});
+	}
+};
+
+$(document).ready(function(){
+	var make_hotkeys_redirect, edit_comment, toggle_all, make_bulk;
+
+	setCommentsList();
+	commentReply.init();
+	$(document).delegate('span.delete a.delete', 'click', function(){return false;});
+
+	if ( typeof $.table_hotkeys != 'undefined' ) {
+		make_hotkeys_redirect = function(which) {
+			return function() {
+				var first_last, l;
+
+				first_last = 'next' == which? 'first' : 'last';
+				l = $('.tablenav-pages .'+which+'-page:not(.disabled)');
+				if (l.length)
+					window.location = l[0].href.replace(/\&hotkeys_highlight_(first|last)=1/g, '')+'&hotkeys_highlight_'+first_last+'=1';
+			}
+		};
+
+		edit_comment = function(event, current_row) {
+			window.location = $('span.edit a', current_row).attr('href');
+		};
+
+		toggle_all = function() {
+			toggleWithKeyboard = true;
+			$('input:checkbox', '#cb').click().prop('checked', false);
+			toggleWithKeyboard = false;
+		};
+
+		make_bulk = function(value) {
+			return function() {
+				var scope = $('select[name="action"]');
+				$('option[value="' + value + '"]', scope).prop('selected', true);
+				$('#doaction').click();
+			}
+		};
+
+		$.table_hotkeys(
+			$('table.widefat'),
+			['a', 'u', 's', 'd', 'r', 'q', 'z', ['e', edit_comment], ['shift+x', toggle_all],
+			['shift+a', make_bulk('approve')], ['shift+s', make_bulk('spam')],
+			['shift+d', make_bulk('delete')], ['shift+t', make_bulk('trash')],
+			['shift+z', make_bulk('untrash')], ['shift+u', make_bulk('unapprove')]],
+			{ highlight_first: adminCommentsL10n.hotkeys_highlight_first, highlight_last: adminCommentsL10n.hotkeys_highlight_last,
+			prev_page_link_cb: make_hotkeys_redirect('prev'), next_page_link_cb: make_hotkeys_redirect('next') }
+		);
+	}
+});
+
+})(jQuery);
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-admin/js/edit-comments.min.js	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,1 @@
+var theList,theExtraList,toggleWithKeyboard=false;(function(d){var b,a,e,c;setCommentsList=function(){var g,i,k,n=0,j,l,h,m,f;g=d('input[name="_total"]',"#comments-form");i=d('input[name="_per_page"]',"#comments-form");k=d('input[name="_page"]',"#comments-form");j=function(s,p){var v=d("#"+p.element),o,u,q;o=d("#replyrow");u=d("#comment_ID",o).val();q=d("#replybtn",o);if(v.is(".unapproved")){if(p.data.id==u){q.text(adminCommentsL10n.replyApprove)}v.find("div.comment_status").html("0")}else{if(p.data.id==u){q.text(adminCommentsL10n.reply)}v.find("div.comment_status").html("1")}var t=d("#"+p.element).is("."+p.dimClass)?1:-1;e(t)};l=function(r,v){var w=d(r.target).attr("data-wp-lists"),o,p,q,u,x,t,s=false;r.data._total=g.val()||0;r.data._per_page=i.val()||0;r.data._page=k.val()||0;r.data._url=document.location.href;r.data.comment_status=d('input[name="comment_status"]',"#comments-form").val();if(w.indexOf(":trash=1")!=-1){s="trash"}else{if(w.indexOf(":spam=1")!=-1){s="spam"}}if(s){o=w.replace(/.*?comment-([0-9]+).*/,"$1");p=d("#comment-"+o);note=d("#"+s+"-undo-holder").html();p.find(".check-column :checkbox").prop("checked",false);if(p.siblings("#replyrow").length&&commentReply.cid==o){commentReply.close()}if(p.is("tr")){q=p.children(":visible").length;t=d(".author strong",p).text();u=d('<tr id="undo-'+o+'" class="undo un'+s+'" style="display:none;"><td colspan="'+q+'">'+note+"</td></tr>")}else{t=d(".comment-author",p).text();u=d('<div id="undo-'+o+'" style="display:none;" class="undo un'+s+'">'+note+"</div>")}p.before(u);d("strong","#undo-"+o).text(t);x=d(".undo a","#undo-"+o);x.attr("href","comment.php?action=un"+s+"comment&c="+o+"&_wpnonce="+r.data._ajax_nonce);x.attr("data-wp-lists","delete:the-comment-list:comment-"+o+"::un"+s+"=1");x.attr("class","vim-z vim-destructive");d(".avatar",p).clone().prependTo("#undo-"+o+" ."+s+"-undo-inside");x.click(function(){v.wpList.del(this);d("#undo-"+o).css({backgroundColor:"#ceb"}).fadeOut(350,function(){d(this).remove();d("#comment-"+o).css("backgroundColor","").fadeIn(300,function(){d(this).show()})});return false})}return r};h=function(o,p,q){if(p<n){return}if(q){n=p}g.val(o.toString())};c=function(t){var s=d("#dashboard_right_now"),p,r,q,o;t=t||0;if(isNaN(t)||!s.length){return}p=d("span.total-count",s);r=d("span.approved-count",s);q=b(p);q=q+t;o=q-b(d("span.pending-count",s))-b(d("span.spam-count",s));a(p,q);a(r,o)};b=function(o){var p=parseInt(o.html().replace(/[^0-9]+/g,""),10);if(isNaN(p)){return 0}return p};a=function(p,q){var o="";if(isNaN(q)){return}q=q<1?"0":q.toString();if(q.length>3){while(q.length>3){o=thousandsSeparator+q.substr(q.length-3)+o;q=q.substr(0,q.length-3)}q=q+o}p.html(q)};e=function(o){d("span.pending-count").each(function(){var p=d(this),q=b(p)+o;if(q<1){q=0}p.closest(".awaiting-mod")[0==q?"addClass":"removeClass"]("count-0");a(p,q)});c()};m=function(o,s){var v,t,x,w,p,y=d(s.target).parent().is("span.untrash"),q=d(s.target).parent().is("span.unspam"),u=d("#"+s.element).is(".unapproved");function z(r){if(d(s.target).parent().is("span."+r)){return 1}else{if(d("#"+s.element).is("."+r)){return -1}}return 0}if(y){w=-1}else{w=z("trash")}if(q){x=-1}else{x=z("spam")}if(d(s.target).parent().is("span.unapprove")||((y||q)&&u)){p=1}else{if(u){p=-1}}if(p){e(p)}d("span.spam-count").each(function(){var r=d(this),A=b(r)+x;a(r,A)});d("span.trash-count").each(function(){var r=d(this),A=b(r)+w;a(r,A)});if(d("#dashboard_right_now").length){t=w?-1*w:0;c(t)}else{v=g.val()?parseInt(g.val(),10):0;if(d(s.target).parent().is("span.undo")){v++}else{v--}if(v<0){v=0}if(("object"==typeof o)&&n<s.parsed.responses[0].supplemental.time){total_items_i18n=s.parsed.responses[0].supplemental.total_items_i18n||"";if(total_items_i18n){d(".displaying-num").text(total_items_i18n);d(".total-pages").text(s.parsed.responses[0].supplemental.total_pages_i18n);d(".tablenav-pages").find(".next-page, .last-page").toggleClass("disabled",s.parsed.responses[0].supplemental.total_pages==d(".current-page").val())}h(v,s.parsed.responses[0].supplemental.time,true)}else{h(v,o,false)}}if(!theExtraList||theExtraList.size()==0||theExtraList.children().size()==0||y||q){return}theList.get(0).wpList.add(theExtraList.children(":eq(0)").remove().clone());f()};f=function(r){var p=d.query.get(),o=d(".total-pages").text(),q=d('input[name="_per_page"]',"#comments-form").val();if(!p.paged){p.paged=1}if(p.paged>o){return}if(r){theExtraList.empty();p.number=Math.min(8,q)}else{p.number=1;p.offset=Math.min(8,q)-1}p.no_placeholder=true;p.paged++;if(true===p.comment_type){p.comment_type=""}p=d.extend(p,{action:"fetch-list",list_args:list_args,_ajax_fetch_list_nonce:d("#_ajax_fetch_list_nonce").val()});d.ajax({url:ajaxurl,global:false,dataType:"json",data:p,success:function(s){theExtraList.get(0).wpList.add(s.rows)}})};theExtraList=d("#the-extra-comment-list").wpList({alt:"",delColor:"none",addColor:"none"});theList=d("#the-comment-list").wpList({alt:"",delBefore:l,dimAfter:j,delAfter:m,addColor:"none"}).bind("wpListDelEnd",function(q,p){var o=d(p.target).attr("data-wp-lists"),r=p.element.replace(/[^0-9]+/g,"");if(o.indexOf(":trash=1")!=-1||o.indexOf(":spam=1")!=-1){d("#undo-"+r).fadeIn(300,function(){d(this).show()})}})};commentReply={cid:"",act:"",init:function(){var f=d("#replyrow");d("a.cancel",f).click(function(){return commentReply.revert()});d("a.save",f).click(function(){return commentReply.send()});d("input#author, input#author-email, input#author-url",f).keypress(function(g){if(g.which==13){commentReply.send();g.preventDefault();return false}});d("#the-comment-list .column-comment > p").dblclick(function(){commentReply.toggle(d(this).parent())});d("#doaction, #doaction2, #post-query-submit").click(function(g){if(d("#the-comment-list #replyrow").length>0){commentReply.close()}});this.comments_listing=d('#comments-form > input[name="comment_status"]').val()||""},addEvents:function(f){f.each(function(){d(this).find(".column-comment > p").dblclick(function(){commentReply.toggle(d(this).parent())})})},toggle:function(f){if(d(f).css("display")!="none"){d(f).find("a.vim-q").click()}},revert:function(){if(d("#the-comment-list #replyrow").length<1){return false}d("#replyrow").fadeOut("fast",function(){commentReply.close()});return false},close:function(){var g,f=d("#replyrow");if(f.parent().is("#com-reply")){return}if(this.cid&&this.act=="edit-comment"){g=d("#comment-"+this.cid);g.fadeIn(300,function(){g.show()}).css("backgroundColor","")}if(typeof QTags!="undefined"){QTags.closeAllTags("replycontent")}d("#add-new-comment").css("display","");f.hide();d("#com-reply").append(f);d("#replycontent").css("height","").val("");d("#edithead input").val("");d(".error",f).html("").hide();d(".spinner",f).hide();this.cid=""},open:function(f,i,k){var p=this,g,j,m,n=d("#comment-"+f),l=n.height(),o;p.close();p.cid=f;g=d("#replyrow");j=d("#inline-"+f);k=k||"replyto";m="edit"==k?"edit":"replyto";m=p.act=m+"-comment";d("#action",g).val(m);d("#comment_post_ID",g).val(i);d("#comment_ID",g).val(f);if(l>120){d("#replycontent",g).css("height",(35+l)+"px")}if(k=="edit"){d("#author",g).val(d("div.author",j).text());d("#author-email",g).val(d("div.author-email",j).text());d("#author-url",g).val(d("div.author-url",j).text());d("#status",g).val(d("div.comment_status",j).text());d("#replycontent",g).val(d("textarea.comment",j).val());d("#edithead, #savebtn",g).show();d("#replyhead, #replybtn, #addhead, #addbtn",g).hide();n.after(g).fadeOut("fast",function(){d("#replyrow").fadeIn(300,function(){d(this).show()})})}else{if(k=="add"){d("#addhead, #addbtn",g).show();d("#replyhead, #replybtn, #edithead, #editbtn",g).hide();d("#the-comment-list").prepend(g);d("#replyrow").fadeIn(300)}else{o=d("#replybtn",g);d("#edithead, #savebtn, #addhead, #addbtn",g).hide();d("#replyhead, #replybtn",g).show();n.after(g);if(n.hasClass("unapproved")){o.text(adminCommentsL10n.replyApprove)}else{o.text(adminCommentsL10n.reply)}d("#replyrow").fadeIn(300,function(){d(this).show()})}}setTimeout(function(){var s,q,t,h,r;s=d("#replyrow").offset().top;q=s+d("#replyrow").height();t=window.pageYOffset||document.documentElement.scrollTop;h=document.documentElement.clientHeight||self.innerHeight||0;r=t+h;if(r-20<q){window.scroll(0,q-h+35)}else{if(s-20<t){window.scroll(0,s-35)}}d("#replycontent").focus().keyup(function(u){if(u.which==27){commentReply.revert()}})},600);return false},send:function(){var f={};d("#replysubmit .error").hide();d("#replysubmit .spinner").show();d("#replyrow input").not(":button").each(function(){var g=d(this);f[g.attr("name")]=g.val()});f.content=d("#replycontent").val();f.id=f.comment_post_ID;f.comments_listing=this.comments_listing;f.p=d('[name="p"]').val();if(d("#comment-"+d("#comment_ID").val()).hasClass("unapproved")){f.approve_parent=1}d.ajax({type:"POST",url:ajaxurl,data:f,success:function(g){commentReply.show(g)},error:function(g){commentReply.error(g)}});return false},show:function(g){var i=this,j,l,k,h,f;if(typeof(g)=="string"){i.error({responseText:g});return false}j=wpAjax.parseAjaxResponse(g);if(j.errors){i.error({responseText:wpAjax.broken});return false}i.revert();j=j.responses[0];l=j.data;k="#comment-"+j.id;if("edit-comment"==i.act){d(k).remove()}if(j.supplemental.parent_approved){f=d("#comment-"+j.supplemental.parent_approved);e(-1);if(this.comments_listing=="moderated"){f.animate({backgroundColor:"#CCEEBB"},400,function(){f.fadeOut()});return}}d(l).hide();d("#replyrow").after(l);k=d(k);i.addEvents(k);h=k.hasClass("unapproved")?"#FFFFE0":k.closest(".widefat, .postbox").css("backgroundColor");k.animate({backgroundColor:"#CCEEBB"},300).animate({backgroundColor:h},300,function(){if(f&&f.length){f.animate({backgroundColor:"#CCEEBB"},300).animate({backgroundColor:h},300).removeClass("unapproved").addClass("approved").find("div.comment_status").html("1")}})},error:function(f){var g=f.statusText;d("#replysubmit .spinner").hide();if(f.responseText){g=f.responseText.replace(/<.[^<>]*?>/g,"")}if(g){d("#replysubmit .error").html(g).show()}},addcomment:function(f){var g=this;d("#add-new-comment").fadeOut(200,function(){g.open(0,f,"add");d("table.comments-box").css("display","");d("#no-comments").remove()})}};d(document).ready(function(){var i,f,g,h;setCommentsList();commentReply.init();d(document).delegate("span.delete a.delete","click",function(){return false});if(typeof d.table_hotkeys!="undefined"){i=function(j){return function(){var m,k;m="next"==j?"first":"last";k=d(".tablenav-pages ."+j+"-page:not(.disabled)");if(k.length){window.location=k[0].href.replace(/\&hotkeys_highlight_(first|last)=1/g,"")+"&hotkeys_highlight_"+m+"=1"}}};f=function(k,j){window.location=d("span.edit a",j).attr("href")};g=function(){toggleWithKeyboard=true;d("input:checkbox","#cb").click().prop("checked",false);toggleWithKeyboard=false};h=function(j){return function(){var k=d('select[name="action"]');d('option[value="'+j+'"]',k).prop("selected",true);d("#doaction").click()}};d.table_hotkeys(d("table.widefat"),["a","u","s","d","r","q","z",["e",f],["shift+x",g],["shift+a",h("approve")],["shift+s",h("spam")],["shift+d",h("delete")],["shift+t",h("trash")],["shift+z",h("untrash")],["shift+u",h("unapprove")]],{highlight_first:adminCommentsL10n.hotkeys_highlight_first,highlight_last:adminCommentsL10n.hotkeys_highlight_last,prev_page_link_cb:i("prev"),next_page_link_cb:i("next")})}})})(jQuery);
\ No newline at end of file
--- a/web/wp-admin/js/editor.dev.js	Wed Dec 19 12:35:13 2012 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,240 +0,0 @@
-
-var switchEditors = {
-
-	switchto: function(el) {
-		var aid = el.id, l = aid.length, id = aid.substr(0, l - 5), mode = aid.substr(l - 4);
-
-		this.go(id, mode);
-	},
-
-	go: function(id, mode) { // mode can be 'html', 'tmce', or 'toggle'
-		id = id || 'content';
-		mode = mode || 'toggle';
-
-		var t = this, ed = tinyMCE.get(id), wrap_id, txtarea_el, dom = tinymce.DOM;
-
-		wrap_id = 'wp-'+id+'-wrap';
-		txtarea_el = dom.get(id);
-
-		if ( 'toggle' == mode ) {
-			if ( ed && !ed.isHidden() )
-				mode = 'html';
-			else
-				mode = 'tmce';
-		}
-
-		if ( 'tmce' == mode || 'tinymce' == mode ) {
-			if ( ed && ! ed.isHidden() )
-				return false;
-
-			if ( typeof(QTags) != 'undefined' )
-				QTags.closeAllTags(id);
-
-			if ( tinyMCEPreInit.mceInit[id] && tinyMCEPreInit.mceInit[id].wpautop )
-				txtarea_el.value = t.wpautop( txtarea_el.value );
-
-			if ( ed ) {
-				ed.show();
-			} else {
-				ed = new tinymce.Editor(id, tinyMCEPreInit.mceInit[id]);
-				ed.render();
-			}
-
-			dom.removeClass(wrap_id, 'html-active');
-			dom.addClass(wrap_id, 'tmce-active');
-			setUserSetting('editor', 'tinymce');
-
-		} else if ( 'html' == mode ) {
-
-			if ( ed && ed.isHidden() )
-				return false;
-
-			if ( ed ) {
-				txtarea_el.style.height = ed.getContentAreaContainer().offsetHeight + 20 + 'px';
-				ed.hide();
-			}
-
-			dom.removeClass(wrap_id, 'tmce-active');
-			dom.addClass(wrap_id, 'html-active');
-			setUserSetting('editor', 'html');
-		}
-		return false;
-	},
-
-	_wp_Nop : function(content) {
-		var blocklist1, blocklist2, preserve_linebreaks = false, preserve_br = false;
-
-		// Protect pre|script tags
-		if ( content.indexOf('<pre') != -1 || content.indexOf('<script') != -1 ) {
-			preserve_linebreaks = true;
-			content = content.replace(/<(pre|script)[^>]*>[\s\S]+?<\/\1>/g, function(a) {
-				a = a.replace(/<br ?\/?>(\r\n|\n)?/g, '<wp-temp-lb>');
-				return a.replace(/<\/?p( [^>]*)?>(\r\n|\n)?/g, '<wp-temp-lb>');
-			});
-		}
-
-		// keep <br> tags inside captions and remove line breaks
-		if ( content.indexOf('[caption') != -1 ) {
-			preserve_br = true;
-			content = content.replace(/\[caption[\s\S]+?\[\/caption\]/g, function(a) {
-				return a.replace(/<br([^>]*)>/g, '<wp-temp-br$1>').replace(/[\r\n\t]+/, '');
-			});
-		}
-
-		// Pretty it up for the source editor
-		blocklist1 = 'blockquote|ul|ol|li|table|thead|tbody|tfoot|tr|th|td|div|h[1-6]|p|fieldset';
-		content = content.replace(new RegExp('\\s*</('+blocklist1+')>\\s*', 'g'), '</$1>\n');
-		content = content.replace(new RegExp('\\s*<((?:'+blocklist1+')(?: [^>]*)?)>', 'g'), '\n<$1>');
-
-		// Mark </p> if it has any attributes.
-		content = content.replace(/(<p [^>]+>.*?)<\/p>/g, '$1</p#>');
-
-		// Sepatate <div> containing <p>
-		content = content.replace(/<div( [^>]*)?>\s*<p>/gi, '<div$1>\n\n');
-
-		// Remove <p> and <br />
-		content = content.replace(/\s*<p>/gi, '');
-		content = content.replace(/\s*<\/p>\s*/gi, '\n\n');
-		content = content.replace(/\n[\s\u00a0]+\n/g, '\n\n');
-		content = content.replace(/\s*<br ?\/?>\s*/gi, '\n');
-
-		// Fix some block element newline issues
-		content = content.replace(/\s*<div/g, '\n<div');
-		content = content.replace(/<\/div>\s*/g, '</div>\n');
-		content = content.replace(/\s*\[caption([^\[]+)\[\/caption\]\s*/gi, '\n\n[caption$1[/caption]\n\n');
-		content = content.replace(/caption\]\n\n+\[caption/g, 'caption]\n\n[caption');
-
-		blocklist2 = 'blockquote|ul|ol|li|table|thead|tbody|tfoot|tr|th|td|h[1-6]|pre|fieldset';
-		content = content.replace(new RegExp('\\s*<((?:'+blocklist2+')(?: [^>]*)?)\\s*>', 'g'), '\n<$1>');
-		content = content.replace(new RegExp('\\s*</('+blocklist2+')>\\s*', 'g'), '</$1>\n');
-		content = content.replace(/<li([^>]*)>/g, '\t<li$1>');
-
-		if ( content.indexOf('<hr') != -1 ) {
-			content = content.replace(/\s*<hr( [^>]*)?>\s*/g, '\n\n<hr$1>\n\n');
-		}
-
-		if ( content.indexOf('<object') != -1 ) {
-			content = content.replace(/<object[\s\S]+?<\/object>/g, function(a){
-				return a.replace(/[\r\n]+/g, '');
-			});
-		}
-
-		// Unmark special paragraph closing tags
-		content = content.replace(/<\/p#>/g, '</p>\n');
-		content = content.replace(/\s*(<p [^>]+>[\s\S]*?<\/p>)/g, '\n$1');
-
-		// Trim whitespace
-		content = content.replace(/^\s+/, '');
-		content = content.replace(/[\s\u00a0]+$/, '');
-
-		// put back the line breaks in pre|script
-		if ( preserve_linebreaks )
-			content = content.replace(/<wp-temp-lb>/g, '\n');
-
-		// and the <br> tags in captions
-		if ( preserve_br )
-			content = content.replace(/<wp-temp-br([^>]*)>/g, '<br$1>');
-
-		return content;
-	},
-
-	_wp_Autop : function(pee) {
-		var preserve_linebreaks = false, preserve_br = false,
-			blocklist = 'table|thead|tfoot|tbody|tr|td|th|caption|col|colgroup|div|dl|dd|dt|ul|ol|li|pre|select|form|blockquote|address|math|p|h[1-6]|fieldset|legend|hr|noscript|menu|samp|header|footer|article|section|hgroup|nav|aside|details|summary';
-
-		if ( pee.indexOf('<object') != -1 ) {
-			pee = pee.replace(/<object[\s\S]+?<\/object>/g, function(a){
-				return a.replace(/[\r\n]+/g, '');
-			});
-		}
-
-		pee = pee.replace(/<[^<>]+>/g, function(a){
-			return a.replace(/[\r\n]+/g, ' ');
-		});
-
-		// Protect pre|script tags
-		if ( pee.indexOf('<pre') != -1 || pee.indexOf('<script') != -1 ) {
-			preserve_linebreaks = true;
-			pee = pee.replace(/<(pre|script)[^>]*>[\s\S]+?<\/\1>/g, function(a) {
-				return a.replace(/(\r\n|\n)/g, '<wp-temp-lb>');
-			});
-		}
-
-		// keep <br> tags inside captions and convert line breaks
-		if ( pee.indexOf('[caption') != -1 ) {
-			preserve_br = true;
-			pee = pee.replace(/\[caption[\s\S]+?\[\/caption\]/g, function(a) {
-				// keep existing <br>
-				a = a.replace(/<br([^>]*)>/g, '<wp-temp-br$1>');
-				// no line breaks inside HTML tags
-				a = a.replace(/<[a-zA-Z0-9]+( [^<>]+)?>/g, function(b){
-					return b.replace(/[\r\n\t]+/, ' ');
-				});
-				// convert remaining line breaks to <br>
-				return a.replace(/\s*\n\s*/g, '<wp-temp-br />');
-			});
-		}
-
-		pee = pee + '\n\n';
-		pee = pee.replace(/<br \/>\s*<br \/>/gi, '\n\n');
-		pee = pee.replace(new RegExp('(<(?:'+blocklist+')(?: [^>]*)?>)', 'gi'), '\n$1');
-		pee = pee.replace(new RegExp('(</(?:'+blocklist+')>)', 'gi'), '$1\n\n');
-		pee = pee.replace(/<hr( [^>]*)?>/gi, '<hr$1>\n\n'); // hr is self closing block element
-		pee = pee.replace(/\r\n|\r/g, '\n');
-		pee = pee.replace(/\n\s*\n+/g, '\n\n');
-		pee = pee.replace(/([\s\S]+?)\n\n/g, '<p>$1</p>\n');
-		pee = pee.replace(/<p>\s*?<\/p>/gi, '');
-		pee = pee.replace(new RegExp('<p>\\s*(</?(?:'+blocklist+')(?: [^>]*)?>)\\s*</p>', 'gi'), "$1");
-		pee = pee.replace(/<p>(<li.+?)<\/p>/gi, '$1');
-		pee = pee.replace(/<p>\s*<blockquote([^>]*)>/gi, '<blockquote$1><p>');
-		pee = pee.replace(/<\/blockquote>\s*<\/p>/gi, '</p></blockquote>');
-		pee = pee.replace(new RegExp('<p>\\s*(</?(?:'+blocklist+')(?: [^>]*)?>)', 'gi'), "$1");
-		pee = pee.replace(new RegExp('(</?(?:'+blocklist+')(?: [^>]*)?>)\\s*</p>', 'gi'), "$1");
-		pee = pee.replace(/\s*\n/gi, '<br />\n');
-		pee = pee.replace(new RegExp('(</?(?:'+blocklist+')[^>]*>)\\s*<br />', 'gi'), "$1");
-		pee = pee.replace(/<br \/>(\s*<\/?(?:p|li|div|dl|dd|dt|th|pre|td|ul|ol)>)/gi, '$1');
-		pee = pee.replace(/(?:<p>|<br ?\/?>)*\s*\[caption([^\[]+)\[\/caption\]\s*(?:<\/p>|<br ?\/?>)*/gi, '[caption$1[/caption]');
-
-		pee = pee.replace(/(<(?:div|th|td|form|fieldset|dd)[^>]*>)(.*?)<\/p>/g, function(a, b, c) {
-			if ( c.match(/<p( [^>]*)?>/) )
-				return a;
-
-			return b + '<p>' + c + '</p>';
-		});
-
-		// put back the line breaks in pre|script
-		if ( preserve_linebreaks )
-			pee = pee.replace(/<wp-temp-lb>/g, '\n');
-
-		if ( preserve_br )
-			pee = pee.replace(/<wp-temp-br([^>]*)>/g, '<br$1>');
-
-		return pee;
-	},
-
-	pre_wpautop : function(content) {
-		var t = this, o = { o: t, data: content, unfiltered: content },
-			q = typeof(jQuery) != 'undefined';
-
-		if ( q )
-			jQuery('body').trigger('beforePreWpautop', [o]);
-		o.data = t._wp_Nop(o.data);
-		if ( q )
-			jQuery('body').trigger('afterPreWpautop', [o]);
-
-		return o.data;
-	},
-
-	wpautop : function(pee) {
-		var t = this, o = { o: t, data: pee, unfiltered: pee },
-			q = typeof(jQuery) != 'undefined';
-
-		if ( q )
-			jQuery('body').trigger('beforeWpautop', [o]);
-		o.data = t._wp_Autop(o.data);
-		if ( q )
-			jQuery('body').trigger('afterWpautop', [o]);
-
-		return o.data;
-	}
-}
--- a/web/wp-admin/js/editor.js	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-admin/js/editor.js	Wed Dec 19 17:46:52 2012 -0800
@@ -1,1 +1,238 @@
-var switchEditors={switchto:function(b){var c=b.id,a=c.length,e=c.substr(0,a-5),d=c.substr(a-4);this.go(e,d)},go:function(g,f){g=g||"content";f=f||"toggle";var c=this,b=tinyMCE.get(g),a,d,e=tinymce.DOM;a="wp-"+g+"-wrap";d=e.get(g);if("toggle"==f){if(b&&!b.isHidden()){f="html"}else{f="tmce"}}if("tmce"==f||"tinymce"==f){if(b&&!b.isHidden()){return false}if(typeof(QTags)!="undefined"){QTags.closeAllTags(g)}if(tinyMCEPreInit.mceInit[g]&&tinyMCEPreInit.mceInit[g].wpautop){d.value=c.wpautop(d.value)}if(b){b.show()}else{b=new tinymce.Editor(g,tinyMCEPreInit.mceInit[g]);b.render()}e.removeClass(a,"html-active");e.addClass(a,"tmce-active");setUserSetting("editor","tinymce")}else{if("html"==f){if(b&&b.isHidden()){return false}if(b){d.style.height=b.getContentAreaContainer().offsetHeight+20+"px";b.hide()}e.removeClass(a,"tmce-active");e.addClass(a,"html-active");setUserSetting("editor","html")}}return false},_wp_Nop:function(c){var d,b,e=false,a=false;if(c.indexOf("<pre")!=-1||c.indexOf("<script")!=-1){e=true;c=c.replace(/<(pre|script)[^>]*>[\s\S]+?<\/\1>/g,function(f){f=f.replace(/<br ?\/?>(\r\n|\n)?/g,"<wp-temp-lb>");return f.replace(/<\/?p( [^>]*)?>(\r\n|\n)?/g,"<wp-temp-lb>")})}if(c.indexOf("[caption")!=-1){a=true;c=c.replace(/\[caption[\s\S]+?\[\/caption\]/g,function(f){return f.replace(/<br([^>]*)>/g,"<wp-temp-br$1>").replace(/[\r\n\t]+/,"")})}d="blockquote|ul|ol|li|table|thead|tbody|tfoot|tr|th|td|div|h[1-6]|p|fieldset";c=c.replace(new RegExp("\\s*</("+d+")>\\s*","g"),"</$1>\n");c=c.replace(new RegExp("\\s*<((?:"+d+")(?: [^>]*)?)>","g"),"\n<$1>");c=c.replace(/(<p [^>]+>.*?)<\/p>/g,"$1</p#>");c=c.replace(/<div( [^>]*)?>\s*<p>/gi,"<div$1>\n\n");c=c.replace(/\s*<p>/gi,"");c=c.replace(/\s*<\/p>\s*/gi,"\n\n");c=c.replace(/\n[\s\u00a0]+\n/g,"\n\n");c=c.replace(/\s*<br ?\/?>\s*/gi,"\n");c=c.replace(/\s*<div/g,"\n<div");c=c.replace(/<\/div>\s*/g,"</div>\n");c=c.replace(/\s*\[caption([^\[]+)\[\/caption\]\s*/gi,"\n\n[caption$1[/caption]\n\n");c=c.replace(/caption\]\n\n+\[caption/g,"caption]\n\n[caption");b="blockquote|ul|ol|li|table|thead|tbody|tfoot|tr|th|td|h[1-6]|pre|fieldset";c=c.replace(new RegExp("\\s*<((?:"+b+")(?: [^>]*)?)\\s*>","g"),"\n<$1>");c=c.replace(new RegExp("\\s*</("+b+")>\\s*","g"),"</$1>\n");c=c.replace(/<li([^>]*)>/g,"\t<li$1>");if(c.indexOf("<hr")!=-1){c=c.replace(/\s*<hr( [^>]*)?>\s*/g,"\n\n<hr$1>\n\n")}if(c.indexOf("<object")!=-1){c=c.replace(/<object[\s\S]+?<\/object>/g,function(f){return f.replace(/[\r\n]+/g,"")})}c=c.replace(/<\/p#>/g,"</p>\n");c=c.replace(/\s*(<p [^>]+>[\s\S]*?<\/p>)/g,"\n$1");c=c.replace(/^\s+/,"");c=c.replace(/[\s\u00a0]+$/,"");if(e){c=c.replace(/<wp-temp-lb>/g,"\n")}if(a){c=c.replace(/<wp-temp-br([^>]*)>/g,"<br$1>")}return c},_wp_Autop:function(a){var c=false,b=false,d="table|thead|tfoot|tbody|tr|td|th|caption|col|colgroup|div|dl|dd|dt|ul|ol|li|pre|select|form|blockquote|address|math|p|h[1-6]|fieldset|legend|hr|noscript|menu|samp|header|footer|article|section|hgroup|nav|aside|details|summary";if(a.indexOf("<object")!=-1){a=a.replace(/<object[\s\S]+?<\/object>/g,function(e){return e.replace(/[\r\n]+/g,"")})}a=a.replace(/<[^<>]+>/g,function(e){return e.replace(/[\r\n]+/g," ")});if(a.indexOf("<pre")!=-1||a.indexOf("<script")!=-1){c=true;a=a.replace(/<(pre|script)[^>]*>[\s\S]+?<\/\1>/g,function(e){return e.replace(/(\r\n|\n)/g,"<wp-temp-lb>")})}if(a.indexOf("[caption")!=-1){b=true;a=a.replace(/\[caption[\s\S]+?\[\/caption\]/g,function(e){e=e.replace(/<br([^>]*)>/g,"<wp-temp-br$1>");e=e.replace(/<[a-zA-Z0-9]+( [^<>]+)?>/g,function(f){return f.replace(/[\r\n\t]+/," ")});return e.replace(/\s*\n\s*/g,"<wp-temp-br />")})}a=a+"\n\n";a=a.replace(/<br \/>\s*<br \/>/gi,"\n\n");a=a.replace(new RegExp("(<(?:"+d+")(?: [^>]*)?>)","gi"),"\n$1");a=a.replace(new RegExp("(</(?:"+d+")>)","gi"),"$1\n\n");a=a.replace(/<hr( [^>]*)?>/gi,"<hr$1>\n\n");a=a.replace(/\r\n|\r/g,"\n");a=a.replace(/\n\s*\n+/g,"\n\n");a=a.replace(/([\s\S]+?)\n\n/g,"<p>$1</p>\n");a=a.replace(/<p>\s*?<\/p>/gi,"");a=a.replace(new RegExp("<p>\\s*(</?(?:"+d+")(?: [^>]*)?>)\\s*</p>","gi"),"$1");a=a.replace(/<p>(<li.+?)<\/p>/gi,"$1");a=a.replace(/<p>\s*<blockquote([^>]*)>/gi,"<blockquote$1><p>");a=a.replace(/<\/blockquote>\s*<\/p>/gi,"</p></blockquote>");a=a.replace(new RegExp("<p>\\s*(</?(?:"+d+")(?: [^>]*)?>)","gi"),"$1");a=a.replace(new RegExp("(</?(?:"+d+")(?: [^>]*)?>)\\s*</p>","gi"),"$1");a=a.replace(/\s*\n/gi,"<br />\n");a=a.replace(new RegExp("(</?(?:"+d+")[^>]*>)\\s*<br />","gi"),"$1");a=a.replace(/<br \/>(\s*<\/?(?:p|li|div|dl|dd|dt|th|pre|td|ul|ol)>)/gi,"$1");a=a.replace(/(?:<p>|<br ?\/?>)*\s*\[caption([^\[]+)\[\/caption\]\s*(?:<\/p>|<br ?\/?>)*/gi,"[caption$1[/caption]");a=a.replace(/(<(?:div|th|td|form|fieldset|dd)[^>]*>)(.*?)<\/p>/g,function(f,e,g){if(g.match(/<p( [^>]*)?>/)){return f}return e+"<p>"+g+"</p>"});if(c){a=a.replace(/<wp-temp-lb>/g,"\n")}if(b){a=a.replace(/<wp-temp-br([^>]*)>/g,"<br$1>")}return a},pre_wpautop:function(b){var a=this,d={o:a,data:b,unfiltered:b},c=typeof(jQuery)!="undefined";if(c){jQuery("body").trigger("beforePreWpautop",[d])}d.data=a._wp_Nop(d.data);if(c){jQuery("body").trigger("afterPreWpautop",[d])}return d.data},wpautop:function(b){var a=this,d={o:a,data:b,unfiltered:b},c=typeof(jQuery)!="undefined";if(c){jQuery("body").trigger("beforeWpautop",[d])}d.data=a._wp_Autop(d.data);if(c){jQuery("body").trigger("afterWpautop",[d])}return d.data}};
\ No newline at end of file
+
+var switchEditors = {
+
+	switchto: function(el) {
+		var aid = el.id, l = aid.length, id = aid.substr(0, l - 5), mode = aid.substr(l - 4);
+
+		this.go(id, mode);
+	},
+
+	go: function(id, mode) { // mode can be 'html', 'tmce', or 'toggle'; 'html' is used for the "Text" editor tab.
+		id = id || 'content';
+		mode = mode || 'toggle';
+
+		var t = this, ed = tinyMCE.get(id), wrap_id, txtarea_el, dom = tinymce.DOM;
+
+		wrap_id = 'wp-'+id+'-wrap';
+		txtarea_el = dom.get(id);
+
+		if ( 'toggle' == mode ) {
+			if ( ed && !ed.isHidden() )
+				mode = 'html';
+			else
+				mode = 'tmce';
+		}
+
+		if ( 'tmce' == mode || 'tinymce' == mode ) {
+			if ( ed && ! ed.isHidden() )
+				return false;
+
+			if ( typeof(QTags) != 'undefined' )
+				QTags.closeAllTags(id);
+
+			if ( tinyMCEPreInit.mceInit[id] && tinyMCEPreInit.mceInit[id].wpautop )
+				txtarea_el.value = t.wpautop( txtarea_el.value );
+
+			if ( ed ) {
+				ed.show();
+			} else {
+				ed = new tinymce.Editor(id, tinyMCEPreInit.mceInit[id]);
+				ed.render();
+			}
+
+			dom.removeClass(wrap_id, 'html-active');
+			dom.addClass(wrap_id, 'tmce-active');
+			setUserSetting('editor', 'tinymce');
+
+		} else if ( 'html' == mode ) {
+
+			if ( ed && ed.isHidden() )
+				return false;
+
+			if ( ed )
+				ed.hide();
+
+			dom.removeClass(wrap_id, 'tmce-active');
+			dom.addClass(wrap_id, 'html-active');
+			setUserSetting('editor', 'html');
+		}
+		return false;
+	},
+
+	_wp_Nop : function(content) {
+		var blocklist1, blocklist2, preserve_linebreaks = false, preserve_br = false;
+
+		// Protect pre|script tags
+		if ( content.indexOf('<pre') != -1 || content.indexOf('<script') != -1 ) {
+			preserve_linebreaks = true;
+			content = content.replace(/<(pre|script)[^>]*>[\s\S]+?<\/\1>/g, function(a) {
+				a = a.replace(/<br ?\/?>(\r\n|\n)?/g, '<wp-temp-lb>');
+				return a.replace(/<\/?p( [^>]*)?>(\r\n|\n)?/g, '<wp-temp-lb>');
+			});
+		}
+
+		// keep <br> tags inside captions and remove line breaks
+		if ( content.indexOf('[caption') != -1 ) {
+			preserve_br = true;
+			content = content.replace(/\[caption[\s\S]+?\[\/caption\]/g, function(a) {
+				return a.replace(/<br([^>]*)>/g, '<wp-temp-br$1>').replace(/[\r\n\t]+/, '');
+			});
+		}
+
+		// Pretty it up for the source editor
+		blocklist1 = 'blockquote|ul|ol|li|table|thead|tbody|tfoot|tr|th|td|div|h[1-6]|p|fieldset';
+		content = content.replace(new RegExp('\\s*</('+blocklist1+')>\\s*', 'g'), '</$1>\n');
+		content = content.replace(new RegExp('\\s*<((?:'+blocklist1+')(?: [^>]*)?)>', 'g'), '\n<$1>');
+
+		// Mark </p> if it has any attributes.
+		content = content.replace(/(<p [^>]+>.*?)<\/p>/g, '$1</p#>');
+
+		// Sepatate <div> containing <p>
+		content = content.replace(/<div( [^>]*)?>\s*<p>/gi, '<div$1>\n\n');
+
+		// Remove <p> and <br />
+		content = content.replace(/\s*<p>/gi, '');
+		content = content.replace(/\s*<\/p>\s*/gi, '\n\n');
+		content = content.replace(/\n[\s\u00a0]+\n/g, '\n\n');
+		content = content.replace(/\s*<br ?\/?>\s*/gi, '\n');
+
+		// Fix some block element newline issues
+		content = content.replace(/\s*<div/g, '\n<div');
+		content = content.replace(/<\/div>\s*/g, '</div>\n');
+		content = content.replace(/\s*\[caption([^\[]+)\[\/caption\]\s*/gi, '\n\n[caption$1[/caption]\n\n');
+		content = content.replace(/caption\]\n\n+\[caption/g, 'caption]\n\n[caption');
+
+		blocklist2 = 'blockquote|ul|ol|li|table|thead|tbody|tfoot|tr|th|td|h[1-6]|pre|fieldset';
+		content = content.replace(new RegExp('\\s*<((?:'+blocklist2+')(?: [^>]*)?)\\s*>', 'g'), '\n<$1>');
+		content = content.replace(new RegExp('\\s*</('+blocklist2+')>\\s*', 'g'), '</$1>\n');
+		content = content.replace(/<li([^>]*)>/g, '\t<li$1>');
+
+		if ( content.indexOf('<hr') != -1 ) {
+			content = content.replace(/\s*<hr( [^>]*)?>\s*/g, '\n\n<hr$1>\n\n');
+		}
+
+		if ( content.indexOf('<object') != -1 ) {
+			content = content.replace(/<object[\s\S]+?<\/object>/g, function(a){
+				return a.replace(/[\r\n]+/g, '');
+			});
+		}
+
+		// Unmark special paragraph closing tags
+		content = content.replace(/<\/p#>/g, '</p>\n');
+		content = content.replace(/\s*(<p [^>]+>[\s\S]*?<\/p>)/g, '\n$1');
+
+		// Trim whitespace
+		content = content.replace(/^\s+/, '');
+		content = content.replace(/[\s\u00a0]+$/, '');
+
+		// put back the line breaks in pre|script
+		if ( preserve_linebreaks )
+			content = content.replace(/<wp-temp-lb>/g, '\n');
+
+		// and the <br> tags in captions
+		if ( preserve_br )
+			content = content.replace(/<wp-temp-br([^>]*)>/g, '<br$1>');
+
+		return content;
+	},
+
+	_wp_Autop : function(pee) {
+		var preserve_linebreaks = false, preserve_br = false,
+			blocklist = 'table|thead|tfoot|caption|col|colgroup|tbody|tr|td|th|div|dl|dd|dt|ul|ol|li|pre|select|option|form|map|area|blockquote|address|math|style|p|h[1-6]|hr|fieldset|noscript|samp|legend|section|article|aside|hgroup|header|footer|nav|figure|figcaption|details|menu|summary';
+
+		if ( pee.indexOf('<object') != -1 ) {
+			pee = pee.replace(/<object[\s\S]+?<\/object>/g, function(a){
+				return a.replace(/[\r\n]+/g, '');
+			});
+		}
+
+		pee = pee.replace(/<[^<>]+>/g, function(a){
+			return a.replace(/[\r\n]+/g, ' ');
+		});
+
+		// Protect pre|script tags
+		if ( pee.indexOf('<pre') != -1 || pee.indexOf('<script') != -1 ) {
+			preserve_linebreaks = true;
+			pee = pee.replace(/<(pre|script)[^>]*>[\s\S]+?<\/\1>/g, function(a) {
+				return a.replace(/(\r\n|\n)/g, '<wp-temp-lb>');
+			});
+		}
+
+		// keep <br> tags inside captions and convert line breaks
+		if ( pee.indexOf('[caption') != -1 ) {
+			preserve_br = true;
+			pee = pee.replace(/\[caption[\s\S]+?\[\/caption\]/g, function(a) {
+				// keep existing <br>
+				a = a.replace(/<br([^>]*)>/g, '<wp-temp-br$1>');
+				// no line breaks inside HTML tags
+				a = a.replace(/<[a-zA-Z0-9]+( [^<>]+)?>/g, function(b){
+					return b.replace(/[\r\n\t]+/, ' ');
+				});
+				// convert remaining line breaks to <br>
+				return a.replace(/\s*\n\s*/g, '<wp-temp-br />');
+			});
+		}
+
+		pee = pee + '\n\n';
+		pee = pee.replace(/<br \/>\s*<br \/>/gi, '\n\n');
+		pee = pee.replace(new RegExp('(<(?:'+blocklist+')(?: [^>]*)?>)', 'gi'), '\n$1');
+		pee = pee.replace(new RegExp('(</(?:'+blocklist+')>)', 'gi'), '$1\n\n');
+		pee = pee.replace(/<hr( [^>]*)?>/gi, '<hr$1>\n\n'); // hr is self closing block element
+		pee = pee.replace(/\r\n|\r/g, '\n');
+		pee = pee.replace(/\n\s*\n+/g, '\n\n');
+		pee = pee.replace(/([\s\S]+?)\n\n/g, '<p>$1</p>\n');
+		pee = pee.replace(/<p>\s*?<\/p>/gi, '');
+		pee = pee.replace(new RegExp('<p>\\s*(</?(?:'+blocklist+')(?: [^>]*)?>)\\s*</p>', 'gi'), "$1");
+		pee = pee.replace(/<p>(<li.+?)<\/p>/gi, '$1');
+		pee = pee.replace(/<p>\s*<blockquote([^>]*)>/gi, '<blockquote$1><p>');
+		pee = pee.replace(/<\/blockquote>\s*<\/p>/gi, '</p></blockquote>');
+		pee = pee.replace(new RegExp('<p>\\s*(</?(?:'+blocklist+')(?: [^>]*)?>)', 'gi'), "$1");
+		pee = pee.replace(new RegExp('(</?(?:'+blocklist+')(?: [^>]*)?>)\\s*</p>', 'gi'), "$1");
+		pee = pee.replace(/\s*\n/gi, '<br />\n');
+		pee = pee.replace(new RegExp('(</?(?:'+blocklist+')[^>]*>)\\s*<br />', 'gi'), "$1");
+		pee = pee.replace(/<br \/>(\s*<\/?(?:p|li|div|dl|dd|dt|th|pre|td|ul|ol)>)/gi, '$1');
+		pee = pee.replace(/(?:<p>|<br ?\/?>)*\s*\[caption([^\[]+)\[\/caption\]\s*(?:<\/p>|<br ?\/?>)*/gi, '[caption$1[/caption]');
+
+		pee = pee.replace(/(<(?:div|th|td|form|fieldset|dd)[^>]*>)(.*?)<\/p>/g, function(a, b, c) {
+			if ( c.match(/<p( [^>]*)?>/) )
+				return a;
+
+			return b + '<p>' + c + '</p>';
+		});
+
+		// put back the line breaks in pre|script
+		if ( preserve_linebreaks )
+			pee = pee.replace(/<wp-temp-lb>/g, '\n');
+
+		if ( preserve_br )
+			pee = pee.replace(/<wp-temp-br([^>]*)>/g, '<br$1>');
+
+		return pee;
+	},
+
+	pre_wpautop : function(content) {
+		var t = this, o = { o: t, data: content, unfiltered: content },
+			q = typeof(jQuery) != 'undefined';
+
+		if ( q )
+			jQuery('body').trigger('beforePreWpautop', [o]);
+		o.data = t._wp_Nop(o.data);
+		if ( q )
+			jQuery('body').trigger('afterPreWpautop', [o]);
+
+		return o.data;
+	},
+
+	wpautop : function(pee) {
+		var t = this, o = { o: t, data: pee, unfiltered: pee },
+			q = typeof(jQuery) != 'undefined';
+
+		if ( q )
+			jQuery('body').trigger('beforeWpautop', [o]);
+		o.data = t._wp_Autop(o.data);
+		if ( q )
+			jQuery('body').trigger('afterWpautop', [o]);
+
+		return o.data;
+	}
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-admin/js/editor.min.js	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,1 @@
+var switchEditors={switchto:function(b){var c=b.id,a=c.length,e=c.substr(0,a-5),d=c.substr(a-4);this.go(e,d)},go:function(g,f){g=g||"content";f=f||"toggle";var c=this,b=tinyMCE.get(g),a,d,e=tinymce.DOM;a="wp-"+g+"-wrap";d=e.get(g);if("toggle"==f){if(b&&!b.isHidden()){f="html"}else{f="tmce"}}if("tmce"==f||"tinymce"==f){if(b&&!b.isHidden()){return false}if(typeof(QTags)!="undefined"){QTags.closeAllTags(g)}if(tinyMCEPreInit.mceInit[g]&&tinyMCEPreInit.mceInit[g].wpautop){d.value=c.wpautop(d.value)}if(b){b.show()}else{b=new tinymce.Editor(g,tinyMCEPreInit.mceInit[g]);b.render()}e.removeClass(a,"html-active");e.addClass(a,"tmce-active");setUserSetting("editor","tinymce")}else{if("html"==f){if(b&&b.isHidden()){return false}if(b){b.hide()}e.removeClass(a,"tmce-active");e.addClass(a,"html-active");setUserSetting("editor","html")}}return false},_wp_Nop:function(c){var d,b,e=false,a=false;if(c.indexOf("<pre")!=-1||c.indexOf("<script")!=-1){e=true;c=c.replace(/<(pre|script)[^>]*>[\s\S]+?<\/\1>/g,function(f){f=f.replace(/<br ?\/?>(\r\n|\n)?/g,"<wp-temp-lb>");return f.replace(/<\/?p( [^>]*)?>(\r\n|\n)?/g,"<wp-temp-lb>")})}if(c.indexOf("[caption")!=-1){a=true;c=c.replace(/\[caption[\s\S]+?\[\/caption\]/g,function(f){return f.replace(/<br([^>]*)>/g,"<wp-temp-br$1>").replace(/[\r\n\t]+/,"")})}d="blockquote|ul|ol|li|table|thead|tbody|tfoot|tr|th|td|div|h[1-6]|p|fieldset";c=c.replace(new RegExp("\\s*</("+d+")>\\s*","g"),"</$1>\n");c=c.replace(new RegExp("\\s*<((?:"+d+")(?: [^>]*)?)>","g"),"\n<$1>");c=c.replace(/(<p [^>]+>.*?)<\/p>/g,"$1</p#>");c=c.replace(/<div( [^>]*)?>\s*<p>/gi,"<div$1>\n\n");c=c.replace(/\s*<p>/gi,"");c=c.replace(/\s*<\/p>\s*/gi,"\n\n");c=c.replace(/\n[\s\u00a0]+\n/g,"\n\n");c=c.replace(/\s*<br ?\/?>\s*/gi,"\n");c=c.replace(/\s*<div/g,"\n<div");c=c.replace(/<\/div>\s*/g,"</div>\n");c=c.replace(/\s*\[caption([^\[]+)\[\/caption\]\s*/gi,"\n\n[caption$1[/caption]\n\n");c=c.replace(/caption\]\n\n+\[caption/g,"caption]\n\n[caption");b="blockquote|ul|ol|li|table|thead|tbody|tfoot|tr|th|td|h[1-6]|pre|fieldset";c=c.replace(new RegExp("\\s*<((?:"+b+")(?: [^>]*)?)\\s*>","g"),"\n<$1>");c=c.replace(new RegExp("\\s*</("+b+")>\\s*","g"),"</$1>\n");c=c.replace(/<li([^>]*)>/g,"\t<li$1>");if(c.indexOf("<hr")!=-1){c=c.replace(/\s*<hr( [^>]*)?>\s*/g,"\n\n<hr$1>\n\n")}if(c.indexOf("<object")!=-1){c=c.replace(/<object[\s\S]+?<\/object>/g,function(f){return f.replace(/[\r\n]+/g,"")})}c=c.replace(/<\/p#>/g,"</p>\n");c=c.replace(/\s*(<p [^>]+>[\s\S]*?<\/p>)/g,"\n$1");c=c.replace(/^\s+/,"");c=c.replace(/[\s\u00a0]+$/,"");if(e){c=c.replace(/<wp-temp-lb>/g,"\n")}if(a){c=c.replace(/<wp-temp-br([^>]*)>/g,"<br$1>")}return c},_wp_Autop:function(a){var c=false,b=false,d="table|thead|tfoot|caption|col|colgroup|tbody|tr|td|th|div|dl|dd|dt|ul|ol|li|pre|select|option|form|map|area|blockquote|address|math|style|p|h[1-6]|hr|fieldset|noscript|samp|legend|section|article|aside|hgroup|header|footer|nav|figure|figcaption|details|menu|summary";if(a.indexOf("<object")!=-1){a=a.replace(/<object[\s\S]+?<\/object>/g,function(e){return e.replace(/[\r\n]+/g,"")})}a=a.replace(/<[^<>]+>/g,function(e){return e.replace(/[\r\n]+/g," ")});if(a.indexOf("<pre")!=-1||a.indexOf("<script")!=-1){c=true;a=a.replace(/<(pre|script)[^>]*>[\s\S]+?<\/\1>/g,function(e){return e.replace(/(\r\n|\n)/g,"<wp-temp-lb>")})}if(a.indexOf("[caption")!=-1){b=true;a=a.replace(/\[caption[\s\S]+?\[\/caption\]/g,function(e){e=e.replace(/<br([^>]*)>/g,"<wp-temp-br$1>");e=e.replace(/<[a-zA-Z0-9]+( [^<>]+)?>/g,function(f){return f.replace(/[\r\n\t]+/," ")});return e.replace(/\s*\n\s*/g,"<wp-temp-br />")})}a=a+"\n\n";a=a.replace(/<br \/>\s*<br \/>/gi,"\n\n");a=a.replace(new RegExp("(<(?:"+d+")(?: [^>]*)?>)","gi"),"\n$1");a=a.replace(new RegExp("(</(?:"+d+")>)","gi"),"$1\n\n");a=a.replace(/<hr( [^>]*)?>/gi,"<hr$1>\n\n");a=a.replace(/\r\n|\r/g,"\n");a=a.replace(/\n\s*\n+/g,"\n\n");a=a.replace(/([\s\S]+?)\n\n/g,"<p>$1</p>\n");a=a.replace(/<p>\s*?<\/p>/gi,"");a=a.replace(new RegExp("<p>\\s*(</?(?:"+d+")(?: [^>]*)?>)\\s*</p>","gi"),"$1");a=a.replace(/<p>(<li.+?)<\/p>/gi,"$1");a=a.replace(/<p>\s*<blockquote([^>]*)>/gi,"<blockquote$1><p>");a=a.replace(/<\/blockquote>\s*<\/p>/gi,"</p></blockquote>");a=a.replace(new RegExp("<p>\\s*(</?(?:"+d+")(?: [^>]*)?>)","gi"),"$1");a=a.replace(new RegExp("(</?(?:"+d+")(?: [^>]*)?>)\\s*</p>","gi"),"$1");a=a.replace(/\s*\n/gi,"<br />\n");a=a.replace(new RegExp("(</?(?:"+d+")[^>]*>)\\s*<br />","gi"),"$1");a=a.replace(/<br \/>(\s*<\/?(?:p|li|div|dl|dd|dt|th|pre|td|ul|ol)>)/gi,"$1");a=a.replace(/(?:<p>|<br ?\/?>)*\s*\[caption([^\[]+)\[\/caption\]\s*(?:<\/p>|<br ?\/?>)*/gi,"[caption$1[/caption]");a=a.replace(/(<(?:div|th|td|form|fieldset|dd)[^>]*>)(.*?)<\/p>/g,function(f,e,g){if(g.match(/<p( [^>]*)?>/)){return f}return e+"<p>"+g+"</p>"});if(c){a=a.replace(/<wp-temp-lb>/g,"\n")}if(b){a=a.replace(/<wp-temp-br([^>]*)>/g,"<br$1>")}return a},pre_wpautop:function(b){var a=this,d={o:a,data:b,unfiltered:b},c=typeof(jQuery)!="undefined";if(c){jQuery("body").trigger("beforePreWpautop",[d])}d.data=a._wp_Nop(d.data);if(c){jQuery("body").trigger("afterPreWpautop",[d])}return d.data},wpautop:function(b){var a=this,d={o:a,data:b,unfiltered:b},c=typeof(jQuery)!="undefined";if(c){jQuery("body").trigger("beforeWpautop",[d])}d.data=a._wp_Autop(d.data);if(c){jQuery("body").trigger("afterWpautop",[d])}return d.data}};
\ No newline at end of file
--- a/web/wp-admin/js/gallery.dev.js	Wed Dec 19 12:35:13 2012 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,199 +0,0 @@
-jQuery(document).ready(function($) {
-	var gallerySortable, gallerySortableInit, w, desc = false;
-
-	gallerySortableInit = function() {
-		gallerySortable = $('#media-items').sortable( {
-			items: 'div.media-item',
-			placeholder: 'sorthelper',
-			axis: 'y',
-			distance: 2,
-			handle: 'div.filename',
-			stop: function(e, ui) {
-				// When an update has occurred, adjust the order for each item
-				var all = $('#media-items').sortable('toArray'), len = all.length;
-				$.each(all, function(i, id) {
-					var order = desc ? (len - i) : (1 + i);
-					$('#' + id + ' .menu_order input').val(order);
-				});
-			}
-		} );
-	}
-
-	sortIt = function() {
-		var all = $('.menu_order_input'), len = all.length;
-		all.each(function(i){
-			var order = desc ? (len - i) : (1 + i);
-			$(this).val(order);
-		});
-	}
-
-	clearAll = function(c) {
-		c = c || 0;
-		$('.menu_order_input').each(function(){
-			if ( this.value == '0' || c ) this.value = '';
-		});
-	}
-
-	$('#asc').click(function(){desc = false; sortIt(); return false;});
-	$('#desc').click(function(){desc = true; sortIt(); return false;});
-	$('#clear').click(function(){clearAll(1); return false;});
-	$('#showall').click(function(){
-		$('#sort-buttons span a').toggle();
-		$('a.describe-toggle-on').hide();
-		$('a.describe-toggle-off, table.slidetoggle').show();
-		$('img.pinkynail').toggle(false);
-		return false;
-	});
-	$('#hideall').click(function(){
-		$('#sort-buttons span a').toggle();
-		$('a.describe-toggle-on').show();
-		$('a.describe-toggle-off, table.slidetoggle').hide();
-		$('img.pinkynail').toggle(true);
-		return false;
-	});
-
-	// initialize sortable
-	gallerySortableInit();
-	clearAll();
-
-	if ( $('#media-items>*').length > 1 ) {
-		w = wpgallery.getWin();
-
-		$('#save-all, #gallery-settings').show();
-		if ( typeof w.tinyMCE != 'undefined' && w.tinyMCE.activeEditor && ! w.tinyMCE.activeEditor.isHidden() ) {
-			wpgallery.mcemode = true;
-			wpgallery.init();
-		} else {
-			$('#insert-gallery').show();
-		}
-	}
-});
-
-jQuery(window).unload( function () { tinymce = tinyMCE = wpgallery = null; } ); // Cleanup
-
-/* gallery settings */
-var tinymce = null, tinyMCE, wpgallery;
-
-wpgallery = {
-	mcemode : false,
-	editor : {},
-	dom : {},
-	is_update : false,
-	el : {},
-
-	I : function(e) {
-		return document.getElementById(e);
-	},
-
-	init: function() {
-		var t = this, li, q, i, it, w = t.getWin();
-
-		if ( ! t.mcemode ) return;
-
-		li = ('' + document.location.search).replace(/^\?/, '').split('&');
-		q = {};
-		for (i=0; i<li.length; i++) {
-			it = li[i].split('=');
-			q[unescape(it[0])] = unescape(it[1]);
-		}
-
-		if (q.mce_rdomain)
-			document.domain = q.mce_rdomain;
-
-		// Find window & API
-		tinymce = w.tinymce;
-		tinyMCE = w.tinyMCE;
-		t.editor = tinymce.EditorManager.activeEditor;
-
-		t.setup();
-	},
-
-	getWin : function() {
-		return window.dialogArguments || opener || parent || top;
-	},
-
-	setup : function() {
-		var t = this, a, ed = t.editor, g, columns, link, order, orderby;
-		if ( ! t.mcemode ) return;
-
-		t.el = ed.selection.getNode();
-
-		if ( t.el.nodeName != 'IMG' || ! ed.dom.hasClass(t.el, 'wpGallery') ) {
-			if ( (g = ed.dom.select('img.wpGallery')) && g[0] ) {
-				t.el = g[0];
-			} else {
-				if ( getUserSetting('galfile') == '1' ) t.I('linkto-file').checked = "checked";
-				if ( getUserSetting('galdesc') == '1' ) t.I('order-desc').checked = "checked";
-				if ( getUserSetting('galcols') ) t.I('columns').value = getUserSetting('galcols');
-				if ( getUserSetting('galord') ) t.I('orderby').value = getUserSetting('galord');
-				jQuery('#insert-gallery').show();
-				return;
-			}
-		}
-
-		a = ed.dom.getAttrib(t.el, 'title');
-		a = ed.dom.decode(a);
-
-		if ( a ) {
-			jQuery('#update-gallery').show();
-			t.is_update = true;
-
-			columns = a.match(/columns=['"]([0-9]+)['"]/);
-			link = a.match(/link=['"]([^'"]+)['"]/i);
-			order = a.match(/order=['"]([^'"]+)['"]/i);
-			orderby = a.match(/orderby=['"]([^'"]+)['"]/i);
-
-			if ( link && link[1] ) t.I('linkto-file').checked = "checked";
-			if ( order && order[1] ) t.I('order-desc').checked = "checked";
-			if ( columns && columns[1] ) t.I('columns').value = ''+columns[1];
-			if ( orderby && orderby[1] ) t.I('orderby').value = orderby[1];
-		} else {
-			jQuery('#insert-gallery').show();
-		}
-	},
-
-	update : function() {
-		var t = this, ed = t.editor, all = '', s;
-
-		if ( ! t.mcemode || ! t.is_update ) {
-			s = '[gallery'+t.getSettings()+']';
-			t.getWin().send_to_editor(s);
-			return;
-		}
-
-		if (t.el.nodeName != 'IMG') return;
-
-		all = ed.dom.decode(ed.dom.getAttrib(t.el, 'title'));
-		all = all.replace(/\s*(order|link|columns|orderby)=['"]([^'"]+)['"]/gi, '');
-		all += t.getSettings();
-
-		ed.dom.setAttrib(t.el, 'title', all);
-		t.getWin().tb_remove();
-	},
-
-	getSettings : function() {
-		var I = this.I, s = '';
-
-		if ( I('linkto-file').checked ) {
-			s += ' link="file"';
-			setUserSetting('galfile', '1');
-		}
-
-		if ( I('order-desc').checked ) {
-			s += ' order="DESC"';
-			setUserSetting('galdesc', '1');
-		}
-
-		if ( I('columns').value != 3 ) {
-			s += ' columns="'+I('columns').value+'"';
-			setUserSetting('galcols', I('columns').value);
-		}
-
-		if ( I('orderby').value != 'menu_order' ) {
-			s += ' orderby="'+I('orderby').value+'"';
-			setUserSetting('galord', I('orderby').value);
-		}
-
-		return s;
-	}
-};
--- a/web/wp-admin/js/gallery.js	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-admin/js/gallery.js	Wed Dec 19 17:46:52 2012 -0800
@@ -1,1 +1,199 @@
-jQuery(document).ready(function(c){var b,e,a,d=false;e=function(){b=c("#media-items").sortable({items:"div.media-item",placeholder:"sorthelper",axis:"y",distance:2,handle:"div.filename",stop:function(i,h){var g=c("#media-items").sortable("toArray"),f=g.length;c.each(g,function(k,l){var j=d?(f-k):(1+k);c("#"+l+" .menu_order input").val(j)})}})};sortIt=function(){var g=c(".menu_order_input"),f=g.length;g.each(function(j){var h=d?(f-j):(1+j);c(this).val(h)})};clearAll=function(f){f=f||0;c(".menu_order_input").each(function(){if(this.value=="0"||f){this.value=""}})};c("#asc").click(function(){d=false;sortIt();return false});c("#desc").click(function(){d=true;sortIt();return false});c("#clear").click(function(){clearAll(1);return false});c("#showall").click(function(){c("#sort-buttons span a").toggle();c("a.describe-toggle-on").hide();c("a.describe-toggle-off, table.slidetoggle").show();c("img.pinkynail").toggle(false);return false});c("#hideall").click(function(){c("#sort-buttons span a").toggle();c("a.describe-toggle-on").show();c("a.describe-toggle-off, table.slidetoggle").hide();c("img.pinkynail").toggle(true);return false});e();clearAll();if(c("#media-items>*").length>1){a=wpgallery.getWin();c("#save-all, #gallery-settings").show();if(typeof a.tinyMCE!="undefined"&&a.tinyMCE.activeEditor&&!a.tinyMCE.activeEditor.isHidden()){wpgallery.mcemode=true;wpgallery.init()}else{c("#insert-gallery").show()}}});jQuery(window).unload(function(){tinymce=tinyMCE=wpgallery=null});var tinymce=null,tinyMCE,wpgallery;wpgallery={mcemode:false,editor:{},dom:{},is_update:false,el:{},I:function(a){return document.getElementById(a)},init:function(){var d=this,a,f,c,e,b=d.getWin();if(!d.mcemode){return}a=(""+document.location.search).replace(/^\?/,"").split("&");f={};for(c=0;c<a.length;c++){e=a[c].split("=");f[unescape(e[0])]=unescape(e[1])}if(f.mce_rdomain){document.domain=f.mce_rdomain}tinymce=b.tinymce;tinyMCE=b.tinyMCE;d.editor=tinymce.EditorManager.activeEditor;d.setup()},getWin:function(){return window.dialogArguments||opener||parent||top},setup:function(){var f=this,c,d=f.editor,i,e,h,b,j;if(!f.mcemode){return}f.el=d.selection.getNode();if(f.el.nodeName!="IMG"||!d.dom.hasClass(f.el,"wpGallery")){if((i=d.dom.select("img.wpGallery"))&&i[0]){f.el=i[0]}else{if(getUserSetting("galfile")=="1"){f.I("linkto-file").checked="checked"}if(getUserSetting("galdesc")=="1"){f.I("order-desc").checked="checked"}if(getUserSetting("galcols")){f.I("columns").value=getUserSetting("galcols")}if(getUserSetting("galord")){f.I("orderby").value=getUserSetting("galord")}jQuery("#insert-gallery").show();return}}c=d.dom.getAttrib(f.el,"title");c=d.dom.decode(c);if(c){jQuery("#update-gallery").show();f.is_update=true;e=c.match(/columns=['"]([0-9]+)['"]/);h=c.match(/link=['"]([^'"]+)['"]/i);b=c.match(/order=['"]([^'"]+)['"]/i);j=c.match(/orderby=['"]([^'"]+)['"]/i);if(h&&h[1]){f.I("linkto-file").checked="checked"}if(b&&b[1]){f.I("order-desc").checked="checked"}if(e&&e[1]){f.I("columns").value=""+e[1]}if(j&&j[1]){f.I("orderby").value=j[1]}}else{jQuery("#insert-gallery").show()}},update:function(){var b=this,a=b.editor,d="",c;if(!b.mcemode||!b.is_update){c="[gallery"+b.getSettings()+"]";b.getWin().send_to_editor(c);return}if(b.el.nodeName!="IMG"){return}d=a.dom.decode(a.dom.getAttrib(b.el,"title"));d=d.replace(/\s*(order|link|columns|orderby)=['"]([^'"]+)['"]/gi,"");d+=b.getSettings();a.dom.setAttrib(b.el,"title",d);b.getWin().tb_remove()},getSettings:function(){var a=this.I,b="";if(a("linkto-file").checked){b+=' link="file"';setUserSetting("galfile","1")}if(a("order-desc").checked){b+=' order="DESC"';setUserSetting("galdesc","1")}if(a("columns").value!=3){b+=' columns="'+a("columns").value+'"';setUserSetting("galcols",a("columns").value)}if(a("orderby").value!="menu_order"){b+=' orderby="'+a("orderby").value+'"';setUserSetting("galord",a("orderby").value)}return b}};
\ No newline at end of file
+jQuery(document).ready(function($) {
+	var gallerySortable, gallerySortableInit, w, desc = false;
+
+	gallerySortableInit = function() {
+		gallerySortable = $('#media-items').sortable( {
+			items: 'div.media-item',
+			placeholder: 'sorthelper',
+			axis: 'y',
+			distance: 2,
+			handle: 'div.filename',
+			stop: function(e, ui) {
+				// When an update has occurred, adjust the order for each item
+				var all = $('#media-items').sortable('toArray'), len = all.length;
+				$.each(all, function(i, id) {
+					var order = desc ? (len - i) : (1 + i);
+					$('#' + id + ' .menu_order input').val(order);
+				});
+			}
+		} );
+	}
+
+	sortIt = function() {
+		var all = $('.menu_order_input'), len = all.length;
+		all.each(function(i){
+			var order = desc ? (len - i) : (1 + i);
+			$(this).val(order);
+		});
+	}
+
+	clearAll = function(c) {
+		c = c || 0;
+		$('.menu_order_input').each(function(){
+			if ( this.value == '0' || c ) this.value = '';
+		});
+	}
+
+	$('#asc').click(function(){desc = false; sortIt(); return false;});
+	$('#desc').click(function(){desc = true; sortIt(); return false;});
+	$('#clear').click(function(){clearAll(1); return false;});
+	$('#showall').click(function(){
+		$('#sort-buttons span a').toggle();
+		$('a.describe-toggle-on').hide();
+		$('a.describe-toggle-off, table.slidetoggle').show();
+		$('img.pinkynail').toggle(false);
+		return false;
+	});
+	$('#hideall').click(function(){
+		$('#sort-buttons span a').toggle();
+		$('a.describe-toggle-on').show();
+		$('a.describe-toggle-off, table.slidetoggle').hide();
+		$('img.pinkynail').toggle(true);
+		return false;
+	});
+
+	// initialize sortable
+	gallerySortableInit();
+	clearAll();
+
+	if ( $('#media-items>*').length > 1 ) {
+		w = wpgallery.getWin();
+
+		$('#save-all, #gallery-settings').show();
+		if ( typeof w.tinyMCE != 'undefined' && w.tinyMCE.activeEditor && ! w.tinyMCE.activeEditor.isHidden() ) {
+			wpgallery.mcemode = true;
+			wpgallery.init();
+		} else {
+			$('#insert-gallery').show();
+		}
+	}
+});
+
+jQuery(window).unload( function () { tinymce = tinyMCE = wpgallery = null; } ); // Cleanup
+
+/* gallery settings */
+var tinymce = null, tinyMCE, wpgallery;
+
+wpgallery = {
+	mcemode : false,
+	editor : {},
+	dom : {},
+	is_update : false,
+	el : {},
+
+	I : function(e) {
+		return document.getElementById(e);
+	},
+
+	init: function() {
+		var t = this, li, q, i, it, w = t.getWin();
+
+		if ( ! t.mcemode ) return;
+
+		li = ('' + document.location.search).replace(/^\?/, '').split('&');
+		q = {};
+		for (i=0; i<li.length; i++) {
+			it = li[i].split('=');
+			q[unescape(it[0])] = unescape(it[1]);
+		}
+
+		if (q.mce_rdomain)
+			document.domain = q.mce_rdomain;
+
+		// Find window & API
+		tinymce = w.tinymce;
+		tinyMCE = w.tinyMCE;
+		t.editor = tinymce.EditorManager.activeEditor;
+
+		t.setup();
+	},
+
+	getWin : function() {
+		return window.dialogArguments || opener || parent || top;
+	},
+
+	setup : function() {
+		var t = this, a, ed = t.editor, g, columns, link, order, orderby;
+		if ( ! t.mcemode ) return;
+
+		t.el = ed.selection.getNode();
+
+		if ( t.el.nodeName != 'IMG' || ! ed.dom.hasClass(t.el, 'wpGallery') ) {
+			if ( (g = ed.dom.select('img.wpGallery')) && g[0] ) {
+				t.el = g[0];
+			} else {
+				if ( getUserSetting('galfile') == '1' ) t.I('linkto-file').checked = "checked";
+				if ( getUserSetting('galdesc') == '1' ) t.I('order-desc').checked = "checked";
+				if ( getUserSetting('galcols') ) t.I('columns').value = getUserSetting('galcols');
+				if ( getUserSetting('galord') ) t.I('orderby').value = getUserSetting('galord');
+				jQuery('#insert-gallery').show();
+				return;
+			}
+		}
+
+		a = ed.dom.getAttrib(t.el, 'title');
+		a = ed.dom.decode(a);
+
+		if ( a ) {
+			jQuery('#update-gallery').show();
+			t.is_update = true;
+
+			columns = a.match(/columns=['"]([0-9]+)['"]/);
+			link = a.match(/link=['"]([^'"]+)['"]/i);
+			order = a.match(/order=['"]([^'"]+)['"]/i);
+			orderby = a.match(/orderby=['"]([^'"]+)['"]/i);
+
+			if ( link && link[1] ) t.I('linkto-file').checked = "checked";
+			if ( order && order[1] ) t.I('order-desc').checked = "checked";
+			if ( columns && columns[1] ) t.I('columns').value = ''+columns[1];
+			if ( orderby && orderby[1] ) t.I('orderby').value = orderby[1];
+		} else {
+			jQuery('#insert-gallery').show();
+		}
+	},
+
+	update : function() {
+		var t = this, ed = t.editor, all = '', s;
+
+		if ( ! t.mcemode || ! t.is_update ) {
+			s = '[gallery'+t.getSettings()+']';
+			t.getWin().send_to_editor(s);
+			return;
+		}
+
+		if (t.el.nodeName != 'IMG') return;
+
+		all = ed.dom.decode(ed.dom.getAttrib(t.el, 'title'));
+		all = all.replace(/\s*(order|link|columns|orderby)=['"]([^'"]+)['"]/gi, '');
+		all += t.getSettings();
+
+		ed.dom.setAttrib(t.el, 'title', all);
+		t.getWin().tb_remove();
+	},
+
+	getSettings : function() {
+		var I = this.I, s = '';
+
+		if ( I('linkto-file').checked ) {
+			s += ' link="file"';
+			setUserSetting('galfile', '1');
+		}
+
+		if ( I('order-desc').checked ) {
+			s += ' order="DESC"';
+			setUserSetting('galdesc', '1');
+		}
+
+		if ( I('columns').value != 3 ) {
+			s += ' columns="'+I('columns').value+'"';
+			setUserSetting('galcols', I('columns').value);
+		}
+
+		if ( I('orderby').value != 'menu_order' ) {
+			s += ' orderby="'+I('orderby').value+'"';
+			setUserSetting('galord', I('orderby').value);
+		}
+
+		return s;
+	}
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-admin/js/gallery.min.js	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,1 @@
+jQuery(document).ready(function(c){var b,e,a,d=false;e=function(){b=c("#media-items").sortable({items:"div.media-item",placeholder:"sorthelper",axis:"y",distance:2,handle:"div.filename",stop:function(i,h){var g=c("#media-items").sortable("toArray"),f=g.length;c.each(g,function(k,l){var j=d?(f-k):(1+k);c("#"+l+" .menu_order input").val(j)})}})};sortIt=function(){var g=c(".menu_order_input"),f=g.length;g.each(function(j){var h=d?(f-j):(1+j);c(this).val(h)})};clearAll=function(f){f=f||0;c(".menu_order_input").each(function(){if(this.value=="0"||f){this.value=""}})};c("#asc").click(function(){d=false;sortIt();return false});c("#desc").click(function(){d=true;sortIt();return false});c("#clear").click(function(){clearAll(1);return false});c("#showall").click(function(){c("#sort-buttons span a").toggle();c("a.describe-toggle-on").hide();c("a.describe-toggle-off, table.slidetoggle").show();c("img.pinkynail").toggle(false);return false});c("#hideall").click(function(){c("#sort-buttons span a").toggle();c("a.describe-toggle-on").show();c("a.describe-toggle-off, table.slidetoggle").hide();c("img.pinkynail").toggle(true);return false});e();clearAll();if(c("#media-items>*").length>1){a=wpgallery.getWin();c("#save-all, #gallery-settings").show();if(typeof a.tinyMCE!="undefined"&&a.tinyMCE.activeEditor&&!a.tinyMCE.activeEditor.isHidden()){wpgallery.mcemode=true;wpgallery.init()}else{c("#insert-gallery").show()}}});jQuery(window).unload(function(){tinymce=tinyMCE=wpgallery=null});var tinymce=null,tinyMCE,wpgallery;wpgallery={mcemode:false,editor:{},dom:{},is_update:false,el:{},I:function(a){return document.getElementById(a)},init:function(){var d=this,a,f,c,e,b=d.getWin();if(!d.mcemode){return}a=(""+document.location.search).replace(/^\?/,"").split("&");f={};for(c=0;c<a.length;c++){e=a[c].split("=");f[unescape(e[0])]=unescape(e[1])}if(f.mce_rdomain){document.domain=f.mce_rdomain}tinymce=b.tinymce;tinyMCE=b.tinyMCE;d.editor=tinymce.EditorManager.activeEditor;d.setup()},getWin:function(){return window.dialogArguments||opener||parent||top},setup:function(){var f=this,c,d=f.editor,i,e,h,b,j;if(!f.mcemode){return}f.el=d.selection.getNode();if(f.el.nodeName!="IMG"||!d.dom.hasClass(f.el,"wpGallery")){if((i=d.dom.select("img.wpGallery"))&&i[0]){f.el=i[0]}else{if(getUserSetting("galfile")=="1"){f.I("linkto-file").checked="checked"}if(getUserSetting("galdesc")=="1"){f.I("order-desc").checked="checked"}if(getUserSetting("galcols")){f.I("columns").value=getUserSetting("galcols")}if(getUserSetting("galord")){f.I("orderby").value=getUserSetting("galord")}jQuery("#insert-gallery").show();return}}c=d.dom.getAttrib(f.el,"title");c=d.dom.decode(c);if(c){jQuery("#update-gallery").show();f.is_update=true;e=c.match(/columns=['"]([0-9]+)['"]/);h=c.match(/link=['"]([^'"]+)['"]/i);b=c.match(/order=['"]([^'"]+)['"]/i);j=c.match(/orderby=['"]([^'"]+)['"]/i);if(h&&h[1]){f.I("linkto-file").checked="checked"}if(b&&b[1]){f.I("order-desc").checked="checked"}if(e&&e[1]){f.I("columns").value=""+e[1]}if(j&&j[1]){f.I("orderby").value=j[1]}}else{jQuery("#insert-gallery").show()}},update:function(){var b=this,a=b.editor,d="",c;if(!b.mcemode||!b.is_update){c="[gallery"+b.getSettings()+"]";b.getWin().send_to_editor(c);return}if(b.el.nodeName!="IMG"){return}d=a.dom.decode(a.dom.getAttrib(b.el,"title"));d=d.replace(/\s*(order|link|columns|orderby)=['"]([^'"]+)['"]/gi,"");d+=b.getSettings();a.dom.setAttrib(b.el,"title",d);b.getWin().tb_remove()},getSettings:function(){var a=this.I,b="";if(a("linkto-file").checked){b+=' link="file"';setUserSetting("galfile","1")}if(a("order-desc").checked){b+=' order="DESC"';setUserSetting("galdesc","1")}if(a("columns").value!=3){b+=' columns="'+a("columns").value+'"';setUserSetting("galcols",a("columns").value)}if(a("orderby").value!="menu_order"){b+=' orderby="'+a("orderby").value+'"';setUserSetting("galord",a("orderby").value)}return b}};
\ No newline at end of file
--- a/web/wp-admin/js/image-edit.dev.js	Wed Dec 19 12:35:13 2012 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,572 +0,0 @@
-var imageEdit;
-
-(function($) {
-imageEdit = {
-	iasapi : {},
-	hold : {},
-	postid : '',
-
-	intval : function(f) {
-		return f | 0;
-	},
-
-	setDisabled : function(el, s) {
-		if ( s ) {
-			el.removeClass('disabled');
-			$('input', el).removeAttr('disabled');
-		} else {
-			el.addClass('disabled');
-			$('input', el).prop('disabled', true);
-		}
-	},
-
-	init : function(postid, nonce) {
-		var t = this, old = $('#image-editor-' + t.postid),
-			x = t.intval( $('#imgedit-x-' + postid).val() ),
-			y = t.intval( $('#imgedit-y-' + postid).val() );
-
-		if ( t.postid != postid && old.length )
-			t.close(t.postid);
-
-		t.hold['w'] = t.hold['ow'] = x;
-		t.hold['h'] = t.hold['oh'] = y;
-		t.hold['xy_ratio'] = x / y;
-		t.hold['sizer'] = parseFloat( $('#imgedit-sizer-' + postid).val() );
-		t.postid = postid;
-		$('#imgedit-response-' + postid).empty();
-
-		$('input[type="text"]', '#imgedit-panel-' + postid).keypress(function(e) {
-			var k = e.keyCode;
-
-			if ( 36 < k && k < 41 )
-				$(this).blur()
-
-			if ( 13 == k ) {
-				e.preventDefault();
-				e.stopPropagation();
-				return false;
-			}
-		});
-	},
-
-	toggleEditor : function(postid, toggle) {
-		var wait = $('#imgedit-wait-' + postid);
-
-		if ( toggle )
-			wait.height( $('#imgedit-panel-' + postid).height() ).fadeIn('fast');
-		else
-			wait.fadeOut('fast');
-	},
-
-	toggleHelp : function(el) {
-		$(el).siblings('.imgedit-help').slideToggle('fast');
-		return false;
-	},
-
-	getTarget : function(postid) {
-		return $('input[name="imgedit-target-' + postid + '"]:checked', '#imgedit-save-target-' + postid).val() || 'full';
-	},
-
-	scaleChanged : function(postid, x) {
-		var w = $('#imgedit-scale-width-' + postid), h = $('#imgedit-scale-height-' + postid),
-		warn = $('#imgedit-scale-warn-' + postid), w1 = '', h1 = '';
-
-		if ( x ) {
-			h1 = (w.val() != '') ? this.intval( w.val() / this.hold['xy_ratio'] ) : '';
-			h.val( h1 );
-		} else {
-			w1 = (h.val() != '') ? this.intval( h.val() * this.hold['xy_ratio'] ) : '';
-			w.val( w1 );
-		}
-
-		if ( ( h1 && h1 > this.hold['oh'] ) || ( w1 && w1 > this.hold['ow'] ) )
-			warn.css('visibility', 'visible');
-		else
-			warn.css('visibility', 'hidden');
-	},
-
-	getSelRatio : function(postid) {
-		var x = this.hold['w'], y = this.hold['h'],
-			X = this.intval( $('#imgedit-crop-width-' + postid).val() ),
-			Y = this.intval( $('#imgedit-crop-height-' + postid).val() );
-
-		if ( X && Y )
-			return X + ':' + Y;
-
-		if ( x && y )
-			return x + ':' + y;
-
-		return '1:1';
-	},
-
-	filterHistory : function(postid, setSize) {
-		// apply undo state to history
-		var history = $('#imgedit-history-' + postid).val(), pop, n, o, i, op = [];
-
-		if ( history != '' ) {
-			history = JSON.parse(history);
-			pop = this.intval( $('#imgedit-undone-' + postid).val() );
-			if ( pop > 0 ) {
-				while ( pop > 0 ) {
-					history.pop();
-					pop--;
-				}
-			}
-
-			if ( setSize ) {
-				if ( !history.length ) {
-					this.hold['w'] = this.hold['ow'];
-					this.hold['h'] = this.hold['oh'];
-					return '';
-				}
-
-				// restore
-				o = history[history.length - 1];
-				o = o.c || o.r || o.f || false;
-
-				if ( o ) {
-					this.hold['w'] = o.fw;
-					this.hold['h'] = o.fh;
-				}
-			}
-
-			// filter the values
-			for ( n in history ) {
-				i = history[n];
-				if ( i.hasOwnProperty('c') ) {
-					op[n] = { 'c': { 'x': i.c.x, 'y': i.c.y, 'w': i.c.w, 'h': i.c.h } };
-				} else if ( i.hasOwnProperty('r') ) {
-					op[n] = { 'r': i.r.r };
-				} else if ( i.hasOwnProperty('f') ) {
-					op[n] = { 'f': i.f.f };
-				}
-			}
-			return JSON.stringify(op);
-		}
-		return '';
-	},
-
-	refreshEditor : function(postid, nonce, callback) {
-		var t = this, data, img;
-
-		t.toggleEditor(postid, 1);
-		data = {
-			'action': 'imgedit-preview',
-			'_ajax_nonce': nonce,
-			'postid': postid,
-			'history': t.filterHistory(postid, 1),
-			'rand': t.intval(Math.random() * 1000000)
-		};
-
-		img = $('<img id="image-preview-' + postid + '" />');
-		img.load( function() {
-			var max1, max2, parent = $('#imgedit-crop-' + postid), t = imageEdit;
-
-			parent.empty().append(img);
-
-			// w, h are the new full size dims
-			max1 = Math.max( t.hold.w, t.hold.h );
-			max2 = Math.max( $(img).width(), $(img).height() );
-			t.hold['sizer'] = max1 > max2 ? max2 / max1 : 1;
-
-			t.initCrop(postid, img, parent);
-			t.setCropSelection(postid, 0);
-
-			if ( (typeof callback != "unknown") && callback != null )
-				callback();
-
-			if ( $('#imgedit-history-' + postid).val() && $('#imgedit-undone-' + postid).val() == 0 )
-				$('input.imgedit-submit-btn', '#imgedit-panel-' + postid).removeAttr('disabled');
-			else
-				$('input.imgedit-submit-btn', '#imgedit-panel-' + postid).prop('disabled', true);
-
-			t.toggleEditor(postid, 0);
-		}).error(function(){
-			$('#imgedit-crop-' + postid).empty().append('<div class="error"><p>' + imageEditL10n.error + '</p></div>');
-			t.toggleEditor(postid, 0);
-		}).attr('src', ajaxurl + '?' + $.param(data));
-	},
-
-	action : function(postid, nonce, action) {
-		var t = this, data, w, h, fw, fh;
-
-		if ( t.notsaved(postid) )
-			return false;
-
-		data = {
-			'action': 'image-editor',
-			'_ajax_nonce': nonce,
-			'postid': postid
-		};
-
-		if ( 'scale' == action ) {
-			w = $('#imgedit-scale-width-' + postid),
-			h = $('#imgedit-scale-height-' + postid),
-			fw = t.intval(w.val()),
-			fh = t.intval(h.val());
-
-			if ( fw < 1 ) {
-				w.focus();
-				return false;
-			} else if ( fh < 1 ) {
-				h.focus();
-				return false;
-			}
-
-			if ( fw == t.hold.ow || fh == t.hold.oh )
-				return false;
-
-			data['do'] = 'scale';
-			data['fwidth'] = fw;
-			data['fheight'] = fh;
-		} else if ( 'restore' == action ) {
-			data['do'] = 'restore';
-		} else {
-			return false;
-		}
-
-		t.toggleEditor(postid, 1);
-		$.post(ajaxurl, data, function(r) {
-			$('#image-editor-' + postid).empty().append(r);
-			t.toggleEditor(postid, 0);
-		});
-	},
-
-	save : function(postid, nonce) {
-		var data, target = this.getTarget(postid), history = this.filterHistory(postid, 0);
-
-		if ( '' == history )
-			return false;
-
-		this.toggleEditor(postid, 1);
-		data = {
-			'action': 'image-editor',
-			'_ajax_nonce': nonce,
-			'postid': postid,
-			'history': history,
-			'target': target,
-			'do': 'save'
-		};
-
-		$.post(ajaxurl, data, function(r) {
-			var ret = JSON.parse(r);
-
-			if ( ret.error ) {
-				$('#imgedit-response-' + postid).html('<div class="error"><p>' + ret.error + '</p><div>');
-				imageEdit.close(postid);
-				return;
-			}
-
-			if ( ret.fw && ret.fh )
-				$('#media-dims-' + postid).html( ret.fw + ' &times; ' + ret.fh );
-
-			if ( ret.thumbnail )
-				$('.thumbnail', '#thumbnail-head-' + postid).attr('src', ''+ret.thumbnail);
-
-			if ( ret.msg )
-				$('#imgedit-response-' + postid).html('<div class="updated"><p>' + ret.msg + '</p></div>');
-
-			imageEdit.close(postid);
-		});
-	},
-
-	open : function(postid, nonce) {
-		var data, elem = $('#image-editor-' + postid), head = $('#media-head-' + postid),
-			btn = $('#imgedit-open-btn-' + postid), spin = btn.siblings('img');
-
-		btn.prop('disabled', true);
-		spin.css('visibility', 'visible');
-
-		data = {
-			'action': 'image-editor',
-			'_ajax_nonce': nonce,
-			'postid': postid,
-			'do': 'open'
-		};
-
-		elem.load(ajaxurl, data, function() {
-			elem.fadeIn('fast');
-			head.fadeOut('fast', function(){
-				btn.removeAttr('disabled');
-				spin.css('visibility', 'hidden');
-			});
-		});
-	},
-
-	imgLoaded : function(postid) {
-		var img = $('#image-preview-' + postid), parent = $('#imgedit-crop-' + postid);
-
-		this.initCrop(postid, img, parent);
-		this.setCropSelection(postid, 0);
-		this.toggleEditor(postid, 0);
-	},
-
-	initCrop : function(postid, image, parent) {
-		var t = this, selW = $('#imgedit-sel-width-' + postid),
-			selH = $('#imgedit-sel-height-' + postid);
-
-		t.iasapi = $(image).imgAreaSelect({
-			parent: parent,
-			instance: true,
-			handles: true,
-			keys: true,
-			minWidth: 3,
-			minHeight: 3,
-
-			onInit: function(img, c) {
-				parent.children().mousedown(function(e){
-					var ratio = false, sel, defRatio;
-
-					if ( e.shiftKey ) {
-						sel = t.iasapi.getSelection();
-						defRatio = t.getSelRatio(postid);
-						ratio = ( sel && sel.width && sel.height ) ? sel.width + ':' + sel.height : defRatio;
-					}
-
-					t.iasapi.setOptions({
-						aspectRatio: ratio
-					});
-				});
-			},
-
-			onSelectStart: function(img, c) {
-				imageEdit.setDisabled($('#imgedit-crop-sel-' + postid), 1);
-			},
-
-			onSelectEnd: function(img, c) {
-				imageEdit.setCropSelection(postid, c);
-			},
-
-			onSelectChange: function(img, c) {
-				var sizer = imageEdit.hold.sizer;
-				selW.val( imageEdit.round(c.width / sizer) );
-				selH.val( imageEdit.round(c.height / sizer) );
-			}
-		});
-	},
-
-	setCropSelection : function(postid, c) {
-		var sel, min = $('#imgedit-minthumb-' + postid).val() || '128:128',
-			sizer = this.hold['sizer'];
-			min = min.split(':');
-			c = c || 0;
-
-		if ( !c || ( c.width < 3 && c.height < 3 ) ) {
-			this.setDisabled($('.imgedit-crop', '#imgedit-panel-' + postid), 0);
-			this.setDisabled($('#imgedit-crop-sel-' + postid), 0);
-			$('#imgedit-sel-width-' + postid).val('');
-			$('#imgedit-sel-height-' + postid).val('');
-			$('#imgedit-selection-' + postid).val('');
-			return false;
-		}
-
-		if ( c.width < (min[0] * sizer) && c.height < (min[1] * sizer) ) {
-			this.setDisabled($('.imgedit-crop', '#imgedit-panel-' + postid), 0);
-			$('#imgedit-selection-' + postid).val('');
-			return false;
-		}
-
-		sel = { 'x': c.x1, 'y': c.y1, 'w': c.width, 'h': c.height };
-		this.setDisabled($('.imgedit-crop', '#imgedit-panel-' + postid), 1);
-		$('#imgedit-selection-' + postid).val( JSON.stringify(sel) );
-	},
-
-	close : function(postid, warn) {
-		warn = warn || false;
-
-		if ( warn && this.notsaved(postid) )
-			return false;
-
-		this.iasapi = {};
-		this.hold = {};
-		$('#image-editor-' + postid).fadeOut('fast', function() {
-			$('#media-head-' + postid).fadeIn('fast');
-			$(this).empty();
-		});
-	},
-
-	notsaved : function(postid) {
-		var h = $('#imgedit-history-' + postid).val(),
-			history = (h != '') ? JSON.parse(h) : new Array(),
-			pop = this.intval( $('#imgedit-undone-' + postid).val() );
-
-		if ( pop < history.length ) {
-			if ( confirm( $('#imgedit-leaving-' + postid).html() ) )
-				return false;
-			return true;
-		}
-		return false;
-	},
-
-	addStep : function(op, postid, nonce) {
-		var t = this, elem = $('#imgedit-history-' + postid),
-		history = (elem.val() != '') ? JSON.parse(elem.val()) : new Array(),
-		undone = $('#imgedit-undone-' + postid),
-		pop = t.intval(undone.val());
-
-		while ( pop > 0 ) {
-			history.pop();
-			pop--;
-		}
-		undone.val(0); // reset
-
-		history.push(op);
-		elem.val( JSON.stringify(history) );
-
-		t.refreshEditor(postid, nonce, function() {
-			t.setDisabled($('#image-undo-' + postid), true);
-			t.setDisabled($('#image-redo-' + postid), false);
-		});
-	},
-
-	rotate : function(angle, postid, nonce, t) {
-		if ( $(t).hasClass('disabled') )
-			return false;
-
-		this.addStep({ 'r': { 'r': angle, 'fw': this.hold['h'], 'fh': this.hold['w'] }}, postid, nonce);
-	},
-
-	flip : function (axis, postid, nonce, t) {
-		if ( $(t).hasClass('disabled') )
-			return false;
-
-		this.addStep({ 'f': { 'f': axis, 'fw': this.hold['w'], 'fh': this.hold['h'] }}, postid, nonce);
-	},
-
-	crop : function (postid, nonce, t) {
-		var sel = $('#imgedit-selection-' + postid).val(),
-			w = this.intval( $('#imgedit-sel-width-' + postid).val() ),
-			h = this.intval( $('#imgedit-sel-height-' + postid).val() );
-
-		if ( $(t).hasClass('disabled') || sel == '' )
-			return false;
-
-		sel = JSON.parse(sel);
-		if ( sel.w > 0 && sel.h > 0 && w > 0 && h > 0 ) {
-			sel['fw'] = w;
-			sel['fh'] = h;
-			this.addStep({ 'c': sel }, postid, nonce);
-		}
-	},
-
-	undo : function (postid, nonce) {
-		var t = this, button = $('#image-undo-' + postid), elem = $('#imgedit-undone-' + postid),
-			pop = t.intval( elem.val() ) + 1;
-
-		if ( button.hasClass('disabled') )
-			return;
-
-		elem.val(pop);
-		t.refreshEditor(postid, nonce, function() {
-			var elem = $('#imgedit-history-' + postid),
-			history = (elem.val() != '') ? JSON.parse(elem.val()) : new Array();
-
-			t.setDisabled($('#image-redo-' + postid), true);
-			t.setDisabled(button, pop < history.length);
-		});
-	},
-
-	redo : function(postid, nonce) {
-		var t = this, button = $('#image-redo-' + postid), elem = $('#imgedit-undone-' + postid),
-			pop = t.intval( elem.val() ) - 1;
-
-		if ( button.hasClass('disabled') )
-			return;
-
-		elem.val(pop);
-		t.refreshEditor(postid, nonce, function() {
-			t.setDisabled($('#image-undo-' + postid), true);
-			t.setDisabled(button, pop > 0);
-		});
-	},
-
-	setNumSelection : function(postid) {
-		var sel, elX = $('#imgedit-sel-width-' + postid), elY = $('#imgedit-sel-height-' + postid),
-			x = this.intval( elX.val() ), y = this.intval( elY.val() ),
-			img = $('#image-preview-' + postid), imgh = img.height(), imgw = img.width(),
-			sizer = this.hold['sizer'], x1, y1, x2, y2, ias = this.iasapi;
-
-		if ( x < 1 ) {
-			elX.val('');
-			return false;
-		}
-
-		if ( y < 1 ) {
-			elY.val('');
-			return false;
-		}
-
-		if ( x && y && ( sel = ias.getSelection() ) ) {
-			x2 = sel.x1 + Math.round( x * sizer );
-			y2 = sel.y1 + Math.round( y * sizer );
-			x1 = sel.x1;
-			y1 = sel.y1;
-
-			if ( x2 > imgw ) {
-				x1 = 0;
-				x2 = imgw;
-				elX.val( Math.round( x2 / sizer ) );
-			}
-
-			if ( y2 > imgh ) {
-				y1 = 0;
-				y2 = imgh;
-				elY.val( Math.round( y2 / sizer ) );
-			}
-
-			ias.setSelection( x1, y1, x2, y2 );
-			ias.update();
-			this.setCropSelection(postid, ias.getSelection());
-		}
-	},
-
-	round : function(num) {
-		var s;
-		num = Math.round(num);
-
-		if ( this.hold.sizer > 0.6 )
-			return num;
-
-		s = num.toString().slice(-1);
-
-		if ( '1' == s )
-			return num - 1;
-		else if ( '9' == s )
-			return num + 1;
-
-		return num;
-	},
-
-	setRatioSelection : function(postid, n, el) {
-		var sel, r, x = this.intval( $('#imgedit-crop-width-' + postid).val() ),
-			y = this.intval( $('#imgedit-crop-height-' + postid).val() ),
-			h = $('#image-preview-' + postid).height();
-
-		if ( !this.intval( $(el).val() ) ) {
-			$(el).val('');
-			return;
-		}
-
-		if ( x && y ) {
-			this.iasapi.setOptions({
-				aspectRatio: x + ':' + y
-			});
-
-			if ( sel = this.iasapi.getSelection(true) ) {
-				r = Math.ceil( sel.y1 + ((sel.x2 - sel.x1) / (x / y)) );
-
-				if ( r > h ) {
-					r = h;
-					if ( n )
-						$('#imgedit-crop-height-' + postid).val('');
-					else
-						$('#imgedit-crop-width-' + postid).val('');
-				}
-
-				this.iasapi.setSelection( sel.x1, sel.y1, sel.x2, r );
-				this.iasapi.update();
-			}
-		}
-	}
-}
-})(jQuery);
--- a/web/wp-admin/js/image-edit.js	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-admin/js/image-edit.js	Wed Dec 19 17:46:52 2012 -0800
@@ -1,1 +1,573 @@
-var imageEdit;(function(a){imageEdit={iasapi:{},hold:{},postid:"",intval:function(b){return b|0},setDisabled:function(c,b){if(b){c.removeClass("disabled");a("input",c).removeAttr("disabled")}else{c.addClass("disabled");a("input",c).prop("disabled",true)}},init:function(g,e){var d=this,c=a("#image-editor-"+d.postid),b=d.intval(a("#imgedit-x-"+g).val()),f=d.intval(a("#imgedit-y-"+g).val());if(d.postid!=g&&c.length){d.close(d.postid)}d.hold.w=d.hold.ow=b;d.hold.h=d.hold.oh=f;d.hold.xy_ratio=b/f;d.hold.sizer=parseFloat(a("#imgedit-sizer-"+g).val());d.postid=g;a("#imgedit-response-"+g).empty();a('input[type="text"]',"#imgedit-panel-"+g).keypress(function(i){var h=i.keyCode;if(36<h&&h<41){a(this).blur()}if(13==h){i.preventDefault();i.stopPropagation();return false}})},toggleEditor:function(d,b){var c=a("#imgedit-wait-"+d);if(b){c.height(a("#imgedit-panel-"+d).height()).fadeIn("fast")}else{c.fadeOut("fast")}},toggleHelp:function(b){a(b).siblings(".imgedit-help").slideToggle("fast");return false},getTarget:function(b){return a('input[name="imgedit-target-'+b+'"]:checked',"#imgedit-save-target-"+b).val()||"full"},scaleChanged:function(i,b){var d=a("#imgedit-scale-width-"+i),f=a("#imgedit-scale-height-"+i),g=a("#imgedit-scale-warn-"+i),c="",e="";if(b){e=(d.val()!="")?this.intval(d.val()/this.hold.xy_ratio):"";f.val(e)}else{c=(f.val()!="")?this.intval(f.val()*this.hold.xy_ratio):"";d.val(c)}if((e&&e>this.hold.oh)||(c&&c>this.hold.ow)){g.css("visibility","visible")}else{g.css("visibility","hidden")}},getSelRatio:function(f){var b=this.hold.w,e=this.hold.h,d=this.intval(a("#imgedit-crop-width-"+f).val()),c=this.intval(a("#imgedit-crop-height-"+f).val());if(d&&c){return d+":"+c}if(b&&e){return b+":"+e}return"1:1"},filterHistory:function(j,f){var d=a("#imgedit-history-"+j).val(),b,h,e,c,g=[];if(d!=""){d=JSON.parse(d);b=this.intval(a("#imgedit-undone-"+j).val());if(b>0){while(b>0){d.pop();b--}}if(f){if(!d.length){this.hold.w=this.hold.ow;this.hold.h=this.hold.oh;return""}e=d[d.length-1];e=e.c||e.r||e.f||false;if(e){this.hold.w=e.fw;this.hold.h=e.fh}}for(h in d){c=d[h];if(c.hasOwnProperty("c")){g[h]={c:{x:c.c.x,y:c.c.y,w:c.c.w,h:c.c.h}}}else{if(c.hasOwnProperty("r")){g[h]={r:c.r.r}}else{if(c.hasOwnProperty("f")){g[h]={f:c.f.f}}}}}return JSON.stringify(g)}return""},refreshEditor:function(g,d,f){var c=this,e,b;c.toggleEditor(g,1);e={action:"imgedit-preview",_ajax_nonce:d,postid:g,history:c.filterHistory(g,1),rand:c.intval(Math.random()*1000000)};b=a('<img id="image-preview-'+g+'" />');b.load(function(){var i,h,k=a("#imgedit-crop-"+g),j=imageEdit;k.empty().append(b);i=Math.max(j.hold.w,j.hold.h);h=Math.max(a(b).width(),a(b).height());j.hold.sizer=i>h?h/i:1;j.initCrop(g,b,k);j.setCropSelection(g,0);if((typeof f!="unknown")&&f!=null){f()}if(a("#imgedit-history-"+g).val()&&a("#imgedit-undone-"+g).val()==0){a("input.imgedit-submit-btn","#imgedit-panel-"+g).removeAttr("disabled")}else{a("input.imgedit-submit-btn","#imgedit-panel-"+g).prop("disabled",true)}j.toggleEditor(g,0)}).error(function(){a("#imgedit-crop-"+g).empty().append('<div class="error"><p>'+imageEditL10n.error+"</p></div>");c.toggleEditor(g,0)}).attr("src",ajaxurl+"?"+a.param(e))},action:function(b,g,c){var j=this,e,i,f,d,k;if(j.notsaved(b)){return false}e={action:"image-editor",_ajax_nonce:g,postid:b};if("scale"==c){i=a("#imgedit-scale-width-"+b),f=a("#imgedit-scale-height-"+b),d=j.intval(i.val()),k=j.intval(f.val());if(d<1){i.focus();return false}else{if(k<1){f.focus();return false}}if(d==j.hold.ow||k==j.hold.oh){return false}e["do"]="scale";e.fwidth=d;e.fheight=k}else{if("restore"==c){e["do"]="restore"}else{return false}}j.toggleEditor(b,1);a.post(ajaxurl,e,function(h){a("#image-editor-"+b).empty().append(h);j.toggleEditor(b,0)})},save:function(f,b){var c,e=this.getTarget(f),d=this.filterHistory(f,0);if(""==d){return false}this.toggleEditor(f,1);c={action:"image-editor",_ajax_nonce:b,postid:f,history:d,target:e,"do":"save"};a.post(ajaxurl,c,function(h){var g=JSON.parse(h);if(g.error){a("#imgedit-response-"+f).html('<div class="error"><p>'+g.error+"</p><div>");imageEdit.close(f);return}if(g.fw&&g.fh){a("#media-dims-"+f).html(g.fw+" &times; "+g.fh)}if(g.thumbnail){a(".thumbnail","#thumbnail-head-"+f).attr("src",""+g.thumbnail)}if(g.msg){a("#imgedit-response-"+f).html('<div class="updated"><p>'+g.msg+"</p></div>")}imageEdit.close(f)})},open:function(h,d){var f,e=a("#image-editor-"+h),c=a("#media-head-"+h),b=a("#imgedit-open-btn-"+h),g=b.siblings("img");b.prop("disabled",true);g.css("visibility","visible");f={action:"image-editor",_ajax_nonce:d,postid:h,"do":"open"};e.load(ajaxurl,f,function(){e.fadeIn("fast");c.fadeOut("fast",function(){b.removeAttr("disabled");g.css("visibility","hidden")})})},imgLoaded:function(d){var b=a("#image-preview-"+d),c=a("#imgedit-crop-"+d);this.initCrop(d,b,c);this.setCropSelection(d,0);this.toggleEditor(d,0)},initCrop:function(g,e,c){var b=this,d=a("#imgedit-sel-width-"+g),f=a("#imgedit-sel-height-"+g);b.iasapi=a(e).imgAreaSelect({parent:c,instance:true,handles:true,keys:true,minWidth:3,minHeight:3,onInit:function(h,i){c.children().mousedown(function(m){var k=false,l,j;if(m.shiftKey){l=b.iasapi.getSelection();j=b.getSelRatio(g);k=(l&&l.width&&l.height)?l.width+":"+l.height:j}b.iasapi.setOptions({aspectRatio:k})})},onSelectStart:function(h,i){imageEdit.setDisabled(a("#imgedit-crop-sel-"+g),1)},onSelectEnd:function(h,i){imageEdit.setCropSelection(g,i)},onSelectChange:function(h,j){var i=imageEdit.hold.sizer;d.val(imageEdit.round(j.width/i));f.val(imageEdit.round(j.height/i))}})},setCropSelection:function(g,f){var e,b=a("#imgedit-minthumb-"+g).val()||"128:128",d=this.hold.sizer;b=b.split(":");f=f||0;if(!f||(f.width<3&&f.height<3)){this.setDisabled(a(".imgedit-crop","#imgedit-panel-"+g),0);this.setDisabled(a("#imgedit-crop-sel-"+g),0);a("#imgedit-sel-width-"+g).val("");a("#imgedit-sel-height-"+g).val("");a("#imgedit-selection-"+g).val("");return false}if(f.width<(b[0]*d)&&f.height<(b[1]*d)){this.setDisabled(a(".imgedit-crop","#imgedit-panel-"+g),0);a("#imgedit-selection-"+g).val("");return false}e={x:f.x1,y:f.y1,w:f.width,h:f.height};this.setDisabled(a(".imgedit-crop","#imgedit-panel-"+g),1);a("#imgedit-selection-"+g).val(JSON.stringify(e))},close:function(c,b){b=b||false;if(b&&this.notsaved(c)){return false}this.iasapi={};this.hold={};a("#image-editor-"+c).fadeOut("fast",function(){a("#media-head-"+c).fadeIn("fast");a(this).empty()})},notsaved:function(e){var c=a("#imgedit-history-"+e).val(),d=(c!="")?JSON.parse(c):new Array(),b=this.intval(a("#imgedit-undone-"+e).val());if(b<d.length){if(confirm(a("#imgedit-leaving-"+e).html())){return false}return true}return false},addStep:function(i,h,d){var c=this,e=a("#imgedit-history-"+h),g=(e.val()!="")?JSON.parse(e.val()):new Array(),f=a("#imgedit-undone-"+h),b=c.intval(f.val());while(b>0){g.pop();b--}f.val(0);g.push(i);e.val(JSON.stringify(g));c.refreshEditor(h,d,function(){c.setDisabled(a("#image-undo-"+h),true);c.setDisabled(a("#image-redo-"+h),false)})},rotate:function(d,e,c,b){if(a(b).hasClass("disabled")){return false}this.addStep({r:{r:d,fw:this.hold.h,fh:this.hold.w}},e,c)},flip:function(d,e,c,b){if(a(b).hasClass("disabled")){return false}this.addStep({f:{f:d,fw:this.hold.w,fh:this.hold.h}},e,c)},crop:function(g,e,c){var f=a("#imgedit-selection-"+g).val(),b=this.intval(a("#imgedit-sel-width-"+g).val()),d=this.intval(a("#imgedit-sel-height-"+g).val());if(a(c).hasClass("disabled")||f==""){return false}f=JSON.parse(f);if(f.w>0&&f.h>0&&b>0&&d>0){f.fw=b;f.fh=d;this.addStep({c:f},g,e)}},undo:function(g,e){var d=this,c=a("#image-undo-"+g),f=a("#imgedit-undone-"+g),b=d.intval(f.val())+1;if(c.hasClass("disabled")){return}f.val(b);d.refreshEditor(g,e,function(){var h=a("#imgedit-history-"+g),i=(h.val()!="")?JSON.parse(h.val()):new Array();d.setDisabled(a("#image-redo-"+g),true);d.setDisabled(c,b<i.length)})},redo:function(g,e){var d=this,c=a("#image-redo-"+g),f=a("#imgedit-undone-"+g),b=d.intval(f.val())-1;if(c.hasClass("disabled")){return}f.val(b);d.refreshEditor(g,e,function(){d.setDisabled(a("#image-undo-"+g),true);d.setDisabled(c,b>0)})},setNumSelection:function(c){var g,k=a("#imgedit-sel-width-"+c),j=a("#imgedit-sel-height-"+c),o=this.intval(k.val()),m=this.intval(j.val()),i=a("#image-preview-"+c),p=i.height(),h=i.width(),b=this.hold.sizer,f,n,e,l,d=this.iasapi;if(o<1){k.val("");return false}if(m<1){j.val("");return false}if(o&&m&&(g=d.getSelection())){e=g.x1+Math.round(o*b);l=g.y1+Math.round(m*b);f=g.x1;n=g.y1;if(e>h){f=0;e=h;k.val(Math.round(e/b))}if(l>p){n=0;l=p;j.val(Math.round(l/b))}d.setSelection(f,n,e,l);d.update();this.setCropSelection(c,d.getSelection())}},round:function(b){var c;b=Math.round(b);if(this.hold.sizer>0.6){return b}c=b.toString().slice(-1);if("1"==c){return b-1}else{if("9"==c){return b+1}}return b},setRatioSelection:function(j,i,d){var f,e,b=this.intval(a("#imgedit-crop-width-"+j).val()),g=this.intval(a("#imgedit-crop-height-"+j).val()),c=a("#image-preview-"+j).height();if(!this.intval(a(d).val())){a(d).val("");return}if(b&&g){this.iasapi.setOptions({aspectRatio:b+":"+g});if(f=this.iasapi.getSelection(true)){e=Math.ceil(f.y1+((f.x2-f.x1)/(b/g)));if(e>c){e=c;if(i){a("#imgedit-crop-height-"+j).val("")}else{a("#imgedit-crop-width-"+j).val("")}}this.iasapi.setSelection(f.x1,f.y1,f.x2,e);this.iasapi.update()}}}}})(jQuery);
\ No newline at end of file
+var imageEdit;
+
+(function($) {
+imageEdit = {
+	iasapi : {},
+	hold : {},
+	postid : '',
+
+	intval : function(f) {
+		return f | 0;
+	},
+
+	setDisabled : function(el, s) {
+		if ( s ) {
+			el.removeClass('disabled');
+			$('input', el).removeAttr('disabled');
+		} else {
+			el.addClass('disabled');
+			$('input', el).prop('disabled', true);
+		}
+	},
+
+	init : function(postid, nonce) {
+		var t = this, old = $('#image-editor-' + t.postid),
+			x = t.intval( $('#imgedit-x-' + postid).val() ),
+			y = t.intval( $('#imgedit-y-' + postid).val() );
+
+		if ( t.postid != postid && old.length )
+			t.close(t.postid);
+
+		t.hold['w'] = t.hold['ow'] = x;
+		t.hold['h'] = t.hold['oh'] = y;
+		t.hold['xy_ratio'] = x / y;
+		t.hold['sizer'] = parseFloat( $('#imgedit-sizer-' + postid).val() );
+		t.postid = postid;
+		$('#imgedit-response-' + postid).empty();
+
+		$('input[type="text"]', '#imgedit-panel-' + postid).keypress(function(e) {
+			var k = e.keyCode;
+
+			if ( 36 < k && k < 41 )
+				$(this).blur()
+
+			if ( 13 == k ) {
+				e.preventDefault();
+				e.stopPropagation();
+				return false;
+			}
+		});
+	},
+
+	toggleEditor : function(postid, toggle) {
+		var wait = $('#imgedit-wait-' + postid);
+
+		if ( toggle )
+			wait.height( $('#imgedit-panel-' + postid).height() ).fadeIn('fast');
+		else
+			wait.fadeOut('fast');
+	},
+
+	toggleHelp : function(el) {
+		$(el).siblings('.imgedit-help').slideToggle('fast');
+		return false;
+	},
+
+	getTarget : function(postid) {
+		return $('input[name="imgedit-target-' + postid + '"]:checked', '#imgedit-save-target-' + postid).val() || 'full';
+	},
+
+	scaleChanged : function(postid, x) {
+		var w = $('#imgedit-scale-width-' + postid), h = $('#imgedit-scale-height-' + postid),
+		warn = $('#imgedit-scale-warn-' + postid), w1 = '', h1 = '';
+
+		if ( x ) {
+			h1 = (w.val() != '') ? Math.round( w.val() / this.hold['xy_ratio'] ) : '';
+			h.val( h1 );
+		} else {
+			w1 = (h.val() != '') ? Math.round( h.val() * this.hold['xy_ratio'] ) : '';
+			w.val( w1 );
+		}
+
+		if ( ( h1 && h1 > this.hold['oh'] ) || ( w1 && w1 > this.hold['ow'] ) )
+			warn.css('visibility', 'visible');
+		else
+			warn.css('visibility', 'hidden');
+	},
+
+	getSelRatio : function(postid) {
+		var x = this.hold['w'], y = this.hold['h'],
+			X = this.intval( $('#imgedit-crop-width-' + postid).val() ),
+			Y = this.intval( $('#imgedit-crop-height-' + postid).val() );
+
+		if ( X && Y )
+			return X + ':' + Y;
+
+		if ( x && y )
+			return x + ':' + y;
+
+		return '1:1';
+	},
+
+	filterHistory : function(postid, setSize) {
+		// apply undo state to history
+		var history = $('#imgedit-history-' + postid).val(), pop, n, o, i, op = [];
+
+		if ( history != '' ) {
+			history = JSON.parse(history);
+			pop = this.intval( $('#imgedit-undone-' + postid).val() );
+			if ( pop > 0 ) {
+				while ( pop > 0 ) {
+					history.pop();
+					pop--;
+				}
+			}
+
+			if ( setSize ) {
+				if ( !history.length ) {
+					this.hold['w'] = this.hold['ow'];
+					this.hold['h'] = this.hold['oh'];
+					return '';
+				}
+
+				// restore
+				o = history[history.length - 1];
+				o = o.c || o.r || o.f || false;
+
+				if ( o ) {
+					this.hold['w'] = o.fw;
+					this.hold['h'] = o.fh;
+				}
+			}
+
+			// filter the values
+			for ( n in history ) {
+				i = history[n];
+				if ( i.hasOwnProperty('c') ) {
+					op[n] = { 'c': { 'x': i.c.x, 'y': i.c.y, 'w': i.c.w, 'h': i.c.h } };
+				} else if ( i.hasOwnProperty('r') ) {
+					op[n] = { 'r': i.r.r };
+				} else if ( i.hasOwnProperty('f') ) {
+					op[n] = { 'f': i.f.f };
+				}
+			}
+			return JSON.stringify(op);
+		}
+		return '';
+	},
+
+	refreshEditor : function(postid, nonce, callback) {
+		var t = this, data, img;
+
+		t.toggleEditor(postid, 1);
+		data = {
+			'action': 'imgedit-preview',
+			'_ajax_nonce': nonce,
+			'postid': postid,
+			'history': t.filterHistory(postid, 1),
+			'rand': t.intval(Math.random() * 1000000)
+		};
+
+		img = $('<img id="image-preview-' + postid + '" />');
+		img.load( function() {
+			var max1, max2, parent = $('#imgedit-crop-' + postid), t = imageEdit;
+
+			parent.empty().append(img);
+
+			// w, h are the new full size dims
+			max1 = Math.max( t.hold.w, t.hold.h );
+			max2 = Math.max( $(img).width(), $(img).height() );
+			t.hold['sizer'] = max1 > max2 ? max2 / max1 : 1;
+
+			t.initCrop(postid, img, parent);
+			t.setCropSelection(postid, 0);
+
+			if ( (typeof callback != "unknown") && callback != null )
+				callback();
+
+			if ( $('#imgedit-history-' + postid).val() && $('#imgedit-undone-' + postid).val() == 0 )
+				$('input.imgedit-submit-btn', '#imgedit-panel-' + postid).removeAttr('disabled');
+			else
+				$('input.imgedit-submit-btn', '#imgedit-panel-' + postid).prop('disabled', true);
+
+			t.toggleEditor(postid, 0);
+		}).error(function(){
+			$('#imgedit-crop-' + postid).empty().append('<div class="error"><p>' + imageEditL10n.error + '</p></div>');
+			t.toggleEditor(postid, 0);
+		}).attr('src', ajaxurl + '?' + $.param(data));
+	},
+
+	action : function(postid, nonce, action) {
+		var t = this, data, w, h, fw, fh;
+
+		if ( t.notsaved(postid) )
+			return false;
+
+		data = {
+			'action': 'image-editor',
+			'_ajax_nonce': nonce,
+			'postid': postid
+		};
+
+		if ( 'scale' == action ) {
+			w = $('#imgedit-scale-width-' + postid),
+			h = $('#imgedit-scale-height-' + postid),
+			fw = t.intval(w.val()),
+			fh = t.intval(h.val());
+
+			if ( fw < 1 ) {
+				w.focus();
+				return false;
+			} else if ( fh < 1 ) {
+				h.focus();
+				return false;
+			}
+
+			if ( fw == t.hold.ow || fh == t.hold.oh )
+				return false;
+
+			data['do'] = 'scale';
+			data['fwidth'] = fw;
+			data['fheight'] = fh;
+		} else if ( 'restore' == action ) {
+			data['do'] = 'restore';
+		} else {
+			return false;
+		}
+
+		t.toggleEditor(postid, 1);
+		$.post(ajaxurl, data, function(r) {
+			$('#image-editor-' + postid).empty().append(r);
+			t.toggleEditor(postid, 0);
+		});
+	},
+
+	save : function(postid, nonce) {
+		var data, target = this.getTarget(postid), history = this.filterHistory(postid, 0);
+
+		if ( '' == history )
+			return false;
+
+		this.toggleEditor(postid, 1);
+		data = {
+			'action': 'image-editor',
+			'_ajax_nonce': nonce,
+			'postid': postid,
+			'history': history,
+			'target': target,
+			'context': $('#image-edit-context').length ? $('#image-edit-context').val() : null,
+			'do': 'save'
+		};
+
+		$.post(ajaxurl, data, function(r) {
+			var ret = JSON.parse(r);
+
+			if ( ret.error ) {
+				$('#imgedit-response-' + postid).html('<div class="error"><p>' + ret.error + '</p><div>');
+				imageEdit.close(postid);
+				return;
+			}
+
+			if ( ret.fw && ret.fh )
+				$('#media-dims-' + postid).html( ret.fw + ' &times; ' + ret.fh );
+
+			if ( ret.thumbnail )
+				$('.thumbnail', '#thumbnail-head-' + postid).attr('src', ''+ret.thumbnail);
+
+			if ( ret.msg )
+				$('#imgedit-response-' + postid).html('<div class="updated"><p>' + ret.msg + '</p></div>');
+
+			imageEdit.close(postid);
+		});
+	},
+
+	open : function(postid, nonce) {
+		var data, elem = $('#image-editor-' + postid), head = $('#media-head-' + postid),
+			btn = $('#imgedit-open-btn-' + postid), spin = btn.siblings('.spinner');
+
+		btn.prop('disabled', true);
+		spin.show();
+
+		data = {
+			'action': 'image-editor',
+			'_ajax_nonce': nonce,
+			'postid': postid,
+			'do': 'open'
+		};
+
+		elem.load(ajaxurl, data, function() {
+			elem.fadeIn('fast');
+			head.fadeOut('fast', function(){
+				btn.removeAttr('disabled');
+				spin.hide();
+			});
+		});
+	},
+
+	imgLoaded : function(postid) {
+		var img = $('#image-preview-' + postid), parent = $('#imgedit-crop-' + postid);
+
+		this.initCrop(postid, img, parent);
+		this.setCropSelection(postid, 0);
+		this.toggleEditor(postid, 0);
+	},
+
+	initCrop : function(postid, image, parent) {
+		var t = this, selW = $('#imgedit-sel-width-' + postid),
+			selH = $('#imgedit-sel-height-' + postid);
+
+		t.iasapi = $(image).imgAreaSelect({
+			parent: parent,
+			instance: true,
+			handles: true,
+			keys: true,
+			minWidth: 3,
+			minHeight: 3,
+
+			onInit: function(img, c) {
+				parent.children().mousedown(function(e){
+					var ratio = false, sel, defRatio;
+
+					if ( e.shiftKey ) {
+						sel = t.iasapi.getSelection();
+						defRatio = t.getSelRatio(postid);
+						ratio = ( sel && sel.width && sel.height ) ? sel.width + ':' + sel.height : defRatio;
+					}
+
+					t.iasapi.setOptions({
+						aspectRatio: ratio
+					});
+				});
+			},
+
+			onSelectStart: function(img, c) {
+				imageEdit.setDisabled($('#imgedit-crop-sel-' + postid), 1);
+			},
+
+			onSelectEnd: function(img, c) {
+				imageEdit.setCropSelection(postid, c);
+			},
+
+			onSelectChange: function(img, c) {
+				var sizer = imageEdit.hold.sizer;
+				selW.val( imageEdit.round(c.width / sizer) );
+				selH.val( imageEdit.round(c.height / sizer) );
+			}
+		});
+	},
+
+	setCropSelection : function(postid, c) {
+		var sel, min = $('#imgedit-minthumb-' + postid).val() || '128:128',
+			sizer = this.hold['sizer'];
+			min = min.split(':');
+			c = c || 0;
+
+		if ( !c || ( c.width < 3 && c.height < 3 ) ) {
+			this.setDisabled($('.imgedit-crop', '#imgedit-panel-' + postid), 0);
+			this.setDisabled($('#imgedit-crop-sel-' + postid), 0);
+			$('#imgedit-sel-width-' + postid).val('');
+			$('#imgedit-sel-height-' + postid).val('');
+			$('#imgedit-selection-' + postid).val('');
+			return false;
+		}
+
+		if ( c.width < (min[0] * sizer) && c.height < (min[1] * sizer) ) {
+			this.setDisabled($('.imgedit-crop', '#imgedit-panel-' + postid), 0);
+			$('#imgedit-selection-' + postid).val('');
+			return false;
+		}
+
+		sel = { 'x': c.x1, 'y': c.y1, 'w': c.width, 'h': c.height };
+		this.setDisabled($('.imgedit-crop', '#imgedit-panel-' + postid), 1);
+		$('#imgedit-selection-' + postid).val( JSON.stringify(sel) );
+	},
+
+	close : function(postid, warn) {
+		warn = warn || false;
+
+		if ( warn && this.notsaved(postid) )
+			return false;
+
+		this.iasapi = {};
+		this.hold = {};
+		$('#image-editor-' + postid).fadeOut('fast', function() {
+			$('#media-head-' + postid).fadeIn('fast');
+			$(this).empty();
+		});
+	},
+
+	notsaved : function(postid) {
+		var h = $('#imgedit-history-' + postid).val(),
+			history = (h != '') ? JSON.parse(h) : new Array(),
+			pop = this.intval( $('#imgedit-undone-' + postid).val() );
+
+		if ( pop < history.length ) {
+			if ( confirm( $('#imgedit-leaving-' + postid).html() ) )
+				return false;
+			return true;
+		}
+		return false;
+	},
+
+	addStep : function(op, postid, nonce) {
+		var t = this, elem = $('#imgedit-history-' + postid),
+		history = (elem.val() != '') ? JSON.parse(elem.val()) : new Array(),
+		undone = $('#imgedit-undone-' + postid),
+		pop = t.intval(undone.val());
+
+		while ( pop > 0 ) {
+			history.pop();
+			pop--;
+		}
+		undone.val(0); // reset
+
+		history.push(op);
+		elem.val( JSON.stringify(history) );
+
+		t.refreshEditor(postid, nonce, function() {
+			t.setDisabled($('#image-undo-' + postid), true);
+			t.setDisabled($('#image-redo-' + postid), false);
+		});
+	},
+
+	rotate : function(angle, postid, nonce, t) {
+		if ( $(t).hasClass('disabled') )
+			return false;
+
+		this.addStep({ 'r': { 'r': angle, 'fw': this.hold['h'], 'fh': this.hold['w'] }}, postid, nonce);
+	},
+
+	flip : function (axis, postid, nonce, t) {
+		if ( $(t).hasClass('disabled') )
+			return false;
+
+		this.addStep({ 'f': { 'f': axis, 'fw': this.hold['w'], 'fh': this.hold['h'] }}, postid, nonce);
+	},
+
+	crop : function (postid, nonce, t) {
+		var sel = $('#imgedit-selection-' + postid).val(),
+			w = this.intval( $('#imgedit-sel-width-' + postid).val() ),
+			h = this.intval( $('#imgedit-sel-height-' + postid).val() );
+
+		if ( $(t).hasClass('disabled') || sel == '' )
+			return false;
+
+		sel = JSON.parse(sel);
+		if ( sel.w > 0 && sel.h > 0 && w > 0 && h > 0 ) {
+			sel['fw'] = w;
+			sel['fh'] = h;
+			this.addStep({ 'c': sel }, postid, nonce);
+		}
+	},
+
+	undo : function (postid, nonce) {
+		var t = this, button = $('#image-undo-' + postid), elem = $('#imgedit-undone-' + postid),
+			pop = t.intval( elem.val() ) + 1;
+
+		if ( button.hasClass('disabled') )
+			return;
+
+		elem.val(pop);
+		t.refreshEditor(postid, nonce, function() {
+			var elem = $('#imgedit-history-' + postid),
+			history = (elem.val() != '') ? JSON.parse(elem.val()) : new Array();
+
+			t.setDisabled($('#image-redo-' + postid), true);
+			t.setDisabled(button, pop < history.length);
+		});
+	},
+
+	redo : function(postid, nonce) {
+		var t = this, button = $('#image-redo-' + postid), elem = $('#imgedit-undone-' + postid),
+			pop = t.intval( elem.val() ) - 1;
+
+		if ( button.hasClass('disabled') )
+			return;
+
+		elem.val(pop);
+		t.refreshEditor(postid, nonce, function() {
+			t.setDisabled($('#image-undo-' + postid), true);
+			t.setDisabled(button, pop > 0);
+		});
+	},
+
+	setNumSelection : function(postid) {
+		var sel, elX = $('#imgedit-sel-width-' + postid), elY = $('#imgedit-sel-height-' + postid),
+			x = this.intval( elX.val() ), y = this.intval( elY.val() ),
+			img = $('#image-preview-' + postid), imgh = img.height(), imgw = img.width(),
+			sizer = this.hold['sizer'], x1, y1, x2, y2, ias = this.iasapi;
+
+		if ( x < 1 ) {
+			elX.val('');
+			return false;
+		}
+
+		if ( y < 1 ) {
+			elY.val('');
+			return false;
+		}
+
+		if ( x && y && ( sel = ias.getSelection() ) ) {
+			x2 = sel.x1 + Math.round( x * sizer );
+			y2 = sel.y1 + Math.round( y * sizer );
+			x1 = sel.x1;
+			y1 = sel.y1;
+
+			if ( x2 > imgw ) {
+				x1 = 0;
+				x2 = imgw;
+				elX.val( Math.round( x2 / sizer ) );
+			}
+
+			if ( y2 > imgh ) {
+				y1 = 0;
+				y2 = imgh;
+				elY.val( Math.round( y2 / sizer ) );
+			}
+
+			ias.setSelection( x1, y1, x2, y2 );
+			ias.update();
+			this.setCropSelection(postid, ias.getSelection());
+		}
+	},
+
+	round : function(num) {
+		var s;
+		num = Math.round(num);
+
+		if ( this.hold.sizer > 0.6 )
+			return num;
+
+		s = num.toString().slice(-1);
+
+		if ( '1' == s )
+			return num - 1;
+		else if ( '9' == s )
+			return num + 1;
+
+		return num;
+	},
+
+	setRatioSelection : function(postid, n, el) {
+		var sel, r, x = this.intval( $('#imgedit-crop-width-' + postid).val() ),
+			y = this.intval( $('#imgedit-crop-height-' + postid).val() ),
+			h = $('#image-preview-' + postid).height();
+
+		if ( !this.intval( $(el).val() ) ) {
+			$(el).val('');
+			return;
+		}
+
+		if ( x && y ) {
+			this.iasapi.setOptions({
+				aspectRatio: x + ':' + y
+			});
+
+			if ( sel = this.iasapi.getSelection(true) ) {
+				r = Math.ceil( sel.y1 + ((sel.x2 - sel.x1) / (x / y)) );
+
+				if ( r > h ) {
+					r = h;
+					if ( n )
+						$('#imgedit-crop-height-' + postid).val('');
+					else
+						$('#imgedit-crop-width-' + postid).val('');
+				}
+
+				this.iasapi.setSelection( sel.x1, sel.y1, sel.x2, r );
+				this.iasapi.update();
+			}
+		}
+	}
+}
+})(jQuery);
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-admin/js/image-edit.min.js	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,1 @@
+var imageEdit;(function(a){imageEdit={iasapi:{},hold:{},postid:"",intval:function(b){return b|0},setDisabled:function(c,b){if(b){c.removeClass("disabled");a("input",c).removeAttr("disabled")}else{c.addClass("disabled");a("input",c).prop("disabled",true)}},init:function(g,e){var d=this,c=a("#image-editor-"+d.postid),b=d.intval(a("#imgedit-x-"+g).val()),f=d.intval(a("#imgedit-y-"+g).val());if(d.postid!=g&&c.length){d.close(d.postid)}d.hold.w=d.hold.ow=b;d.hold.h=d.hold.oh=f;d.hold.xy_ratio=b/f;d.hold.sizer=parseFloat(a("#imgedit-sizer-"+g).val());d.postid=g;a("#imgedit-response-"+g).empty();a('input[type="text"]',"#imgedit-panel-"+g).keypress(function(i){var h=i.keyCode;if(36<h&&h<41){a(this).blur()}if(13==h){i.preventDefault();i.stopPropagation();return false}})},toggleEditor:function(d,b){var c=a("#imgedit-wait-"+d);if(b){c.height(a("#imgedit-panel-"+d).height()).fadeIn("fast")}else{c.fadeOut("fast")}},toggleHelp:function(b){a(b).siblings(".imgedit-help").slideToggle("fast");return false},getTarget:function(b){return a('input[name="imgedit-target-'+b+'"]:checked',"#imgedit-save-target-"+b).val()||"full"},scaleChanged:function(i,b){var d=a("#imgedit-scale-width-"+i),f=a("#imgedit-scale-height-"+i),g=a("#imgedit-scale-warn-"+i),c="",e="";if(b){e=(d.val()!="")?Math.round(d.val()/this.hold.xy_ratio):"";f.val(e)}else{c=(f.val()!="")?Math.round(f.val()*this.hold.xy_ratio):"";d.val(c)}if((e&&e>this.hold.oh)||(c&&c>this.hold.ow)){g.css("visibility","visible")}else{g.css("visibility","hidden")}},getSelRatio:function(f){var b=this.hold.w,e=this.hold.h,d=this.intval(a("#imgedit-crop-width-"+f).val()),c=this.intval(a("#imgedit-crop-height-"+f).val());if(d&&c){return d+":"+c}if(b&&e){return b+":"+e}return"1:1"},filterHistory:function(j,f){var d=a("#imgedit-history-"+j).val(),b,h,e,c,g=[];if(d!=""){d=JSON.parse(d);b=this.intval(a("#imgedit-undone-"+j).val());if(b>0){while(b>0){d.pop();b--}}if(f){if(!d.length){this.hold.w=this.hold.ow;this.hold.h=this.hold.oh;return""}e=d[d.length-1];e=e.c||e.r||e.f||false;if(e){this.hold.w=e.fw;this.hold.h=e.fh}}for(h in d){c=d[h];if(c.hasOwnProperty("c")){g[h]={c:{x:c.c.x,y:c.c.y,w:c.c.w,h:c.c.h}}}else{if(c.hasOwnProperty("r")){g[h]={r:c.r.r}}else{if(c.hasOwnProperty("f")){g[h]={f:c.f.f}}}}}return JSON.stringify(g)}return""},refreshEditor:function(g,d,f){var c=this,e,b;c.toggleEditor(g,1);e={action:"imgedit-preview",_ajax_nonce:d,postid:g,history:c.filterHistory(g,1),rand:c.intval(Math.random()*1000000)};b=a('<img id="image-preview-'+g+'" />');b.load(function(){var i,h,k=a("#imgedit-crop-"+g),j=imageEdit;k.empty().append(b);i=Math.max(j.hold.w,j.hold.h);h=Math.max(a(b).width(),a(b).height());j.hold.sizer=i>h?h/i:1;j.initCrop(g,b,k);j.setCropSelection(g,0);if((typeof f!="unknown")&&f!=null){f()}if(a("#imgedit-history-"+g).val()&&a("#imgedit-undone-"+g).val()==0){a("input.imgedit-submit-btn","#imgedit-panel-"+g).removeAttr("disabled")}else{a("input.imgedit-submit-btn","#imgedit-panel-"+g).prop("disabled",true)}j.toggleEditor(g,0)}).error(function(){a("#imgedit-crop-"+g).empty().append('<div class="error"><p>'+imageEditL10n.error+"</p></div>");c.toggleEditor(g,0)}).attr("src",ajaxurl+"?"+a.param(e))},action:function(b,g,c){var j=this,e,i,f,d,k;if(j.notsaved(b)){return false}e={action:"image-editor",_ajax_nonce:g,postid:b};if("scale"==c){i=a("#imgedit-scale-width-"+b),f=a("#imgedit-scale-height-"+b),d=j.intval(i.val()),k=j.intval(f.val());if(d<1){i.focus();return false}else{if(k<1){f.focus();return false}}if(d==j.hold.ow||k==j.hold.oh){return false}e["do"]="scale";e.fwidth=d;e.fheight=k}else{if("restore"==c){e["do"]="restore"}else{return false}}j.toggleEditor(b,1);a.post(ajaxurl,e,function(h){a("#image-editor-"+b).empty().append(h);j.toggleEditor(b,0)})},save:function(f,b){var c,e=this.getTarget(f),d=this.filterHistory(f,0);if(""==d){return false}this.toggleEditor(f,1);c={action:"image-editor",_ajax_nonce:b,postid:f,history:d,target:e,context:a("#image-edit-context").length?a("#image-edit-context").val():null,"do":"save"};a.post(ajaxurl,c,function(h){var g=JSON.parse(h);if(g.error){a("#imgedit-response-"+f).html('<div class="error"><p>'+g.error+"</p><div>");imageEdit.close(f);return}if(g.fw&&g.fh){a("#media-dims-"+f).html(g.fw+" &times; "+g.fh)}if(g.thumbnail){a(".thumbnail","#thumbnail-head-"+f).attr("src",""+g.thumbnail)}if(g.msg){a("#imgedit-response-"+f).html('<div class="updated"><p>'+g.msg+"</p></div>")}imageEdit.close(f)})},open:function(h,d){var f,e=a("#image-editor-"+h),c=a("#media-head-"+h),b=a("#imgedit-open-btn-"+h),g=b.siblings(".spinner");b.prop("disabled",true);g.show();f={action:"image-editor",_ajax_nonce:d,postid:h,"do":"open"};e.load(ajaxurl,f,function(){e.fadeIn("fast");c.fadeOut("fast",function(){b.removeAttr("disabled");g.hide()})})},imgLoaded:function(d){var b=a("#image-preview-"+d),c=a("#imgedit-crop-"+d);this.initCrop(d,b,c);this.setCropSelection(d,0);this.toggleEditor(d,0)},initCrop:function(g,e,c){var b=this,d=a("#imgedit-sel-width-"+g),f=a("#imgedit-sel-height-"+g);b.iasapi=a(e).imgAreaSelect({parent:c,instance:true,handles:true,keys:true,minWidth:3,minHeight:3,onInit:function(h,i){c.children().mousedown(function(m){var k=false,l,j;if(m.shiftKey){l=b.iasapi.getSelection();j=b.getSelRatio(g);k=(l&&l.width&&l.height)?l.width+":"+l.height:j}b.iasapi.setOptions({aspectRatio:k})})},onSelectStart:function(h,i){imageEdit.setDisabled(a("#imgedit-crop-sel-"+g),1)},onSelectEnd:function(h,i){imageEdit.setCropSelection(g,i)},onSelectChange:function(h,j){var i=imageEdit.hold.sizer;d.val(imageEdit.round(j.width/i));f.val(imageEdit.round(j.height/i))}})},setCropSelection:function(g,f){var e,b=a("#imgedit-minthumb-"+g).val()||"128:128",d=this.hold.sizer;b=b.split(":");f=f||0;if(!f||(f.width<3&&f.height<3)){this.setDisabled(a(".imgedit-crop","#imgedit-panel-"+g),0);this.setDisabled(a("#imgedit-crop-sel-"+g),0);a("#imgedit-sel-width-"+g).val("");a("#imgedit-sel-height-"+g).val("");a("#imgedit-selection-"+g).val("");return false}if(f.width<(b[0]*d)&&f.height<(b[1]*d)){this.setDisabled(a(".imgedit-crop","#imgedit-panel-"+g),0);a("#imgedit-selection-"+g).val("");return false}e={x:f.x1,y:f.y1,w:f.width,h:f.height};this.setDisabled(a(".imgedit-crop","#imgedit-panel-"+g),1);a("#imgedit-selection-"+g).val(JSON.stringify(e))},close:function(c,b){b=b||false;if(b&&this.notsaved(c)){return false}this.iasapi={};this.hold={};a("#image-editor-"+c).fadeOut("fast",function(){a("#media-head-"+c).fadeIn("fast");a(this).empty()})},notsaved:function(e){var c=a("#imgedit-history-"+e).val(),d=(c!="")?JSON.parse(c):new Array(),b=this.intval(a("#imgedit-undone-"+e).val());if(b<d.length){if(confirm(a("#imgedit-leaving-"+e).html())){return false}return true}return false},addStep:function(i,h,d){var c=this,e=a("#imgedit-history-"+h),g=(e.val()!="")?JSON.parse(e.val()):new Array(),f=a("#imgedit-undone-"+h),b=c.intval(f.val());while(b>0){g.pop();b--}f.val(0);g.push(i);e.val(JSON.stringify(g));c.refreshEditor(h,d,function(){c.setDisabled(a("#image-undo-"+h),true);c.setDisabled(a("#image-redo-"+h),false)})},rotate:function(d,e,c,b){if(a(b).hasClass("disabled")){return false}this.addStep({r:{r:d,fw:this.hold.h,fh:this.hold.w}},e,c)},flip:function(d,e,c,b){if(a(b).hasClass("disabled")){return false}this.addStep({f:{f:d,fw:this.hold.w,fh:this.hold.h}},e,c)},crop:function(g,e,c){var f=a("#imgedit-selection-"+g).val(),b=this.intval(a("#imgedit-sel-width-"+g).val()),d=this.intval(a("#imgedit-sel-height-"+g).val());if(a(c).hasClass("disabled")||f==""){return false}f=JSON.parse(f);if(f.w>0&&f.h>0&&b>0&&d>0){f.fw=b;f.fh=d;this.addStep({c:f},g,e)}},undo:function(g,e){var d=this,c=a("#image-undo-"+g),f=a("#imgedit-undone-"+g),b=d.intval(f.val())+1;if(c.hasClass("disabled")){return}f.val(b);d.refreshEditor(g,e,function(){var h=a("#imgedit-history-"+g),i=(h.val()!="")?JSON.parse(h.val()):new Array();d.setDisabled(a("#image-redo-"+g),true);d.setDisabled(c,b<i.length)})},redo:function(g,e){var d=this,c=a("#image-redo-"+g),f=a("#imgedit-undone-"+g),b=d.intval(f.val())-1;if(c.hasClass("disabled")){return}f.val(b);d.refreshEditor(g,e,function(){d.setDisabled(a("#image-undo-"+g),true);d.setDisabled(c,b>0)})},setNumSelection:function(c){var g,k=a("#imgedit-sel-width-"+c),j=a("#imgedit-sel-height-"+c),o=this.intval(k.val()),m=this.intval(j.val()),i=a("#image-preview-"+c),p=i.height(),h=i.width(),b=this.hold.sizer,f,n,e,l,d=this.iasapi;if(o<1){k.val("");return false}if(m<1){j.val("");return false}if(o&&m&&(g=d.getSelection())){e=g.x1+Math.round(o*b);l=g.y1+Math.round(m*b);f=g.x1;n=g.y1;if(e>h){f=0;e=h;k.val(Math.round(e/b))}if(l>p){n=0;l=p;j.val(Math.round(l/b))}d.setSelection(f,n,e,l);d.update();this.setCropSelection(c,d.getSelection())}},round:function(b){var c;b=Math.round(b);if(this.hold.sizer>0.6){return b}c=b.toString().slice(-1);if("1"==c){return b-1}else{if("9"==c){return b+1}}return b},setRatioSelection:function(j,i,d){var f,e,b=this.intval(a("#imgedit-crop-width-"+j).val()),g=this.intval(a("#imgedit-crop-height-"+j).val()),c=a("#image-preview-"+j).height();if(!this.intval(a(d).val())){a(d).val("");return}if(b&&g){this.iasapi.setOptions({aspectRatio:b+":"+g});if(f=this.iasapi.getSelection(true)){e=Math.ceil(f.y1+((f.x2-f.x1)/(b/g)));if(e>c){e=c;if(i){a("#imgedit-crop-height-"+j).val("")}else{a("#imgedit-crop-width-"+j).val("")}}this.iasapi.setSelection(f.x1,f.y1,f.x2,e);this.iasapi.update()}}}}})(jQuery);
\ No newline at end of file
--- a/web/wp-admin/js/inline-edit-post.dev.js	Wed Dec 19 12:35:13 2012 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,303 +0,0 @@
-(function($) {
-inlineEditPost = {
-
-	init : function(){
-		var t = this, qeRow = $('#inline-edit'), bulkRow = $('#bulk-edit');
-
-		t.type = $('table.widefat').hasClass('pages') ? 'page' : 'post';
-		t.what = '#post-';
-
-		// prepare the edit rows
-		qeRow.keyup(function(e){
-			if (e.which == 27)
-				return inlineEditPost.revert();
-		});
-		bulkRow.keyup(function(e){
-			if (e.which == 27)
-				return inlineEditPost.revert();
-		});
-
-		$('a.cancel', qeRow).click(function(){
-			return inlineEditPost.revert();
-		});
-		$('a.save', qeRow).click(function(){
-			return inlineEditPost.save(this);
-		});
-		$('td', qeRow).keydown(function(e){
-			if ( e.which == 13 )
-				return inlineEditPost.save(this);
-		});
-
-		$('a.cancel', bulkRow).click(function(){
-			return inlineEditPost.revert();
-		});
-
-		$('#inline-edit .inline-edit-private input[value="private"]').click( function(){
-			var pw = $('input.inline-edit-password-input');
-			if ( $(this).prop('checked') ) {
-				pw.val('').prop('disabled', true);
-			} else {
-				pw.prop('disabled', false);
-			}
-		});
-
-		// add events
-		$('a.editinline').live('click', function(){
-			inlineEditPost.edit(this);
-			return false;
-		});
-
-		$('#bulk-title-div').parents('fieldset').after(
-			$('#inline-edit fieldset.inline-edit-categories').clone()
-		).siblings( 'fieldset:last' ).prepend(
-			$('#inline-edit label.inline-edit-tags').clone()
-		);
-
-		// hiearchical taxonomies expandable?
-		$('span.catshow').click(function(){
-			$(this).hide().next().show().parent().next().addClass("cat-hover");
-		});
-
-		$('span.cathide').click(function(){
-			$(this).hide().prev().show().parent().next().removeClass("cat-hover");
-		});
-
-		$('select[name="_status"] option[value="future"]', bulkRow).remove();
-
-		$('#doaction, #doaction2').click(function(e){
-			var n = $(this).attr('id').substr(2);
-			if ( $('select[name="'+n+'"]').val() == 'edit' ) {
-				e.preventDefault();
-				t.setBulk();
-			} else if ( $('form#posts-filter tr.inline-editor').length > 0 ) {
-				t.revert();
-			}
-		});
-
-		$('#post-query-submit').mousedown(function(e){
-			t.revert();
-			$('select[name^="action"]').val('-1');
-		});
-	},
-
-	toggle : function(el){
-		var t = this;
-		$(t.what+t.getId(el)).css('display') == 'none' ? t.revert() : t.edit(el);
-	},
-
-	setBulk : function(){
-		var te = '', type = this.type, tax, c = true;
-		this.revert();
-
-		$('#bulk-edit td').attr('colspan', $('.widefat:first thead th:visible').length);
-		$('table.widefat tbody').prepend( $('#bulk-edit') );
-		$('#bulk-edit').addClass('inline-editor').show();
-
-		$('tbody th.check-column input[type="checkbox"]').each(function(i){
-			if ( $(this).prop('checked') ) {
-				c = false;
-				var id = $(this).val(), theTitle;
-				theTitle = $('#inline_'+id+' .post_title').text() || inlineEditL10n.notitle;
-				te += '<div id="ttle'+id+'"><a id="_'+id+'" class="ntdelbutton" title="'+inlineEditL10n.ntdeltitle+'">X</a>'+theTitle+'</div>';
-			}
-		});
-
-		if ( c )
-			return this.revert();
-
-		$('#bulk-titles').html(te);
-		$('#bulk-titles a').click(function(){
-			var id = $(this).attr('id').substr(1);
-
-			$('table.widefat input[value="' + id + '"]').prop('checked', false);
-			$('#ttle'+id).remove();
-		});
-
-		// enable autocomplete for tags
-		if ( 'post' == type ) {
-			// support multi taxonomies?
-			tax = 'post_tag';
-			$('tr.inline-editor textarea[name="tax_input['+tax+']"]').suggest( ajaxurl + '?action=ajax-tag-search&tax=' + tax, { delay: 500, minchars: 2, multiple: true, multipleSep: inlineEditL10n.comma + ' ' } );
-		}
-		$('html, body').animate( { scrollTop: 0 }, 'fast' );
-	},
-
-	edit : function(id) {
-		var t = this, fields, editRow, rowData, status, pageOpt, pageLevel, nextPage, pageLoop = true, nextLevel, cur_format, f;
-		t.revert();
-
-		if ( typeof(id) == 'object' )
-			id = t.getId(id);
-
-		fields = ['post_title', 'post_name', 'post_author', '_status', 'jj', 'mm', 'aa', 'hh', 'mn', 'ss', 'post_password', 'post_format', 'menu_order'];
-		if ( t.type == 'page' )
-			fields.push('post_parent', 'page_template');
-
-		// add the new blank row
-		editRow = $('#inline-edit').clone(true);
-		$('td', editRow).attr('colspan', $('.widefat:first thead th:visible').length);
-
-		if ( $(t.what+id).hasClass('alternate') )
-			$(editRow).addClass('alternate');
-		$(t.what+id).hide().after(editRow);
-
-		// populate the data
-		rowData = $('#inline_'+id);
-		if ( !$(':input[name="post_author"] option[value="' + $('.post_author', rowData).text() + '"]', editRow).val() ) {
-			// author no longer has edit caps, so we need to add them to the list of authors
-			$(':input[name="post_author"]', editRow).prepend('<option value="' + $('.post_author', rowData).text() + '">' + $('#' + t.type + '-' + id + ' .author').text() + '</option>');
-		}
-		if ( $(':input[name="post_author"] option', editRow).length == 1 ) {
-			$('label.inline-edit-author', editRow).hide();
-		}
-
-		// hide unsupported formats, but leave the current format alone
-		cur_format = $('.post_format', rowData).text();
-		$('option.unsupported', editRow).each(function() {
-			var $this = $(this);
-			if ( $this.val() != cur_format )
-				$this.remove();
-		});
-
-		for ( f = 0; f < fields.length; f++ ) {
-			$(':input[name="' + fields[f] + '"]', editRow).val( $('.'+fields[f], rowData).text() );
-		}
-
-		if ( $('.comment_status', rowData).text() == 'open' )
-			$('input[name="comment_status"]', editRow).prop("checked", true);
-		if ( $('.ping_status', rowData).text() == 'open' )
-			$('input[name="ping_status"]', editRow).prop("checked", true);
-		if ( $('.sticky', rowData).text() == 'sticky' )
-			$('input[name="sticky"]', editRow).prop("checked", true);
-
-		// hierarchical taxonomies
-		$('.post_category', rowData).each(function(){
-			var term_ids = $(this).text();
-
-			if ( term_ids ) {
-				taxname = $(this).attr('id').replace('_'+id, '');
-				$('ul.'+taxname+'-checklist :checkbox', editRow).val(term_ids.split(','));
-			}
-		});
-
-		//flat taxonomies
-		$('.tags_input', rowData).each(function(){
-			var terms = $(this).text(),
-				taxname = $(this).attr('id').replace('_' + id, ''),
-				textarea = $('textarea.tax_input_' + taxname, editRow),
-				comma = inlineEditL10n.comma;
-
-			if ( terms ) {
-				if ( ',' !== comma )
-					terms = terms.replace(/,/g, comma);
-				textarea.val(terms);
-			}
-
-			textarea.suggest( ajaxurl + '?action=ajax-tag-search&tax=' + taxname, { delay: 500, minchars: 2, multiple: true, multipleSep: inlineEditL10n.comma + ' ' } );
-		});
-
-		// handle the post status
-		status = $('._status', rowData).text();
-		if ( 'future' != status )
-			$('select[name="_status"] option[value="future"]', editRow).remove();
-
-		if ( 'private' == status ) {
-			$('input[name="keep_private"]', editRow).prop("checked", true);
-			$('input.inline-edit-password-input').val('').prop('disabled', true);
-		}
-
-		// remove the current page and children from the parent dropdown
-		pageOpt = $('select[name="post_parent"] option[value="' + id + '"]', editRow);
-		if ( pageOpt.length > 0 ) {
-			pageLevel = pageOpt[0].className.split('-')[1];
-			nextPage = pageOpt;
-			while ( pageLoop ) {
-				nextPage = nextPage.next('option');
-				if (nextPage.length == 0) break;
-				nextLevel = nextPage[0].className.split('-')[1];
-				if ( nextLevel <= pageLevel ) {
-					pageLoop = false;
-				} else {
-					nextPage.remove();
-					nextPage = pageOpt;
-				}
-			}
-			pageOpt.remove();
-		}
-
-		$(editRow).attr('id', 'edit-'+id).addClass('inline-editor').show();
-		$('.ptitle', editRow).focus();
-
-		return false;
-	},
-
-	save : function(id) {
-		var params, fields, page = $('.post_status_page').val() || '';
-
-		if ( typeof(id) == 'object' )
-			id = this.getId(id);
-
-		$('table.widefat .inline-edit-save .waiting').show();
-
-		params = {
-			action: 'inline-save',
-			post_type: typenow,
-			post_ID: id,
-			edit_date: 'true',
-			post_status: page
-		};
-
-		fields = $('#edit-'+id+' :input').serialize();
-		params = fields + '&' + $.param(params);
-
-		// make ajax request
-		$.post( ajaxurl, params,
-			function(r) {
-				$('table.widefat .inline-edit-save .waiting').hide();
-
-				if (r) {
-					if ( -1 != r.indexOf('<tr') ) {
-						$(inlineEditPost.what+id).remove();
-						$('#edit-'+id).before(r).remove();
-						$(inlineEditPost.what+id).hide().fadeIn();
-					} else {
-						r = r.replace( /<.[^<>]*?>/g, '' );
-						$('#edit-'+id+' .inline-edit-save .error').html(r).show();
-					}
-				} else {
-					$('#edit-'+id+' .inline-edit-save .error').html(inlineEditL10n.error).show();
-				}
-			}
-		, 'html');
-		return false;
-	},
-
-	revert : function(){
-		var id = $('table.widefat tr.inline-editor').attr('id');
-
-		if ( id ) {
-			$('table.widefat .inline-edit-save .waiting').hide();
-
-			if ( 'bulk-edit' == id ) {
-				$('table.widefat #bulk-edit').removeClass('inline-editor').hide();
-				$('#bulk-titles').html('');
-				$('#inlineedit').append( $('#bulk-edit') );
-			} else {
-				$('#'+id).remove();
-				id = id.substr( id.lastIndexOf('-') + 1 );
-				$(this.what+id).show();
-			}
-		}
-
-		return false;
-	},
-
-	getId : function(o) {
-		var id = $(o).closest('tr').attr('id'),
-			parts = id.split('-');
-		return parts[parts.length - 1];
-	}
-};
-
-$(document).ready(function(){inlineEditPost.init();});
-})(jQuery);
--- a/web/wp-admin/js/inline-edit-post.js	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-admin/js/inline-edit-post.js	Wed Dec 19 17:46:52 2012 -0800
@@ -1,1 +1,303 @@
-(function(a){inlineEditPost={init:function(){var c=this,d=a("#inline-edit"),b=a("#bulk-edit");c.type=a("table.widefat").hasClass("pages")?"page":"post";c.what="#post-";d.keyup(function(f){if(f.which==27){return inlineEditPost.revert()}});b.keyup(function(f){if(f.which==27){return inlineEditPost.revert()}});a("a.cancel",d).click(function(){return inlineEditPost.revert()});a("a.save",d).click(function(){return inlineEditPost.save(this)});a("td",d).keydown(function(f){if(f.which==13){return inlineEditPost.save(this)}});a("a.cancel",b).click(function(){return inlineEditPost.revert()});a('#inline-edit .inline-edit-private input[value="private"]').click(function(){var e=a("input.inline-edit-password-input");if(a(this).prop("checked")){e.val("").prop("disabled",true)}else{e.prop("disabled",false)}});a("a.editinline").live("click",function(){inlineEditPost.edit(this);return false});a("#bulk-title-div").parents("fieldset").after(a("#inline-edit fieldset.inline-edit-categories").clone()).siblings("fieldset:last").prepend(a("#inline-edit label.inline-edit-tags").clone());a("span.catshow").click(function(){a(this).hide().next().show().parent().next().addClass("cat-hover")});a("span.cathide").click(function(){a(this).hide().prev().show().parent().next().removeClass("cat-hover")});a('select[name="_status"] option[value="future"]',b).remove();a("#doaction, #doaction2").click(function(f){var g=a(this).attr("id").substr(2);if(a('select[name="'+g+'"]').val()=="edit"){f.preventDefault();c.setBulk()}else{if(a("form#posts-filter tr.inline-editor").length>0){c.revert()}}});a("#post-query-submit").mousedown(function(f){c.revert();a('select[name^="action"]').val("-1")})},toggle:function(c){var b=this;a(b.what+b.getId(c)).css("display")=="none"?b.revert():b.edit(c)},setBulk:function(){var e="",d=this.type,b,f=true;this.revert();a("#bulk-edit td").attr("colspan",a(".widefat:first thead th:visible").length);a("table.widefat tbody").prepend(a("#bulk-edit"));a("#bulk-edit").addClass("inline-editor").show();a('tbody th.check-column input[type="checkbox"]').each(function(g){if(a(this).prop("checked")){f=false;var h=a(this).val(),c;c=a("#inline_"+h+" .post_title").text()||inlineEditL10n.notitle;e+='<div id="ttle'+h+'"><a id="_'+h+'" class="ntdelbutton" title="'+inlineEditL10n.ntdeltitle+'">X</a>'+c+"</div>"}});if(f){return this.revert()}a("#bulk-titles").html(e);a("#bulk-titles a").click(function(){var c=a(this).attr("id").substr(1);a('table.widefat input[value="'+c+'"]').prop("checked",false);a("#ttle"+c).remove()});if("post"==d){b="post_tag";a('tr.inline-editor textarea[name="tax_input['+b+']"]').suggest(ajaxurl+"?action=ajax-tag-search&tax="+b,{delay:500,minchars:2,multiple:true,multipleSep:inlineEditL10n.comma+" "})}a("html, body").animate({scrollTop:0},"fast")},edit:function(c){var n=this,j,e,g,i,h,m,l,d=true,o,b,k;n.revert();if(typeof(c)=="object"){c=n.getId(c)}j=["post_title","post_name","post_author","_status","jj","mm","aa","hh","mn","ss","post_password","post_format","menu_order"];if(n.type=="page"){j.push("post_parent","page_template")}e=a("#inline-edit").clone(true);a("td",e).attr("colspan",a(".widefat:first thead th:visible").length);if(a(n.what+c).hasClass("alternate")){a(e).addClass("alternate")}a(n.what+c).hide().after(e);g=a("#inline_"+c);if(!a(':input[name="post_author"] option[value="'+a(".post_author",g).text()+'"]',e).val()){a(':input[name="post_author"]',e).prepend('<option value="'+a(".post_author",g).text()+'">'+a("#"+n.type+"-"+c+" .author").text()+"</option>")}if(a(':input[name="post_author"] option',e).length==1){a("label.inline-edit-author",e).hide()}b=a(".post_format",g).text();a("option.unsupported",e).each(function(){var f=a(this);if(f.val()!=b){f.remove()}});for(k=0;k<j.length;k++){a(':input[name="'+j[k]+'"]',e).val(a("."+j[k],g).text())}if(a(".comment_status",g).text()=="open"){a('input[name="comment_status"]',e).prop("checked",true)}if(a(".ping_status",g).text()=="open"){a('input[name="ping_status"]',e).prop("checked",true)}if(a(".sticky",g).text()=="sticky"){a('input[name="sticky"]',e).prop("checked",true)}a(".post_category",g).each(function(){var f=a(this).text();if(f){taxname=a(this).attr("id").replace("_"+c,"");a("ul."+taxname+"-checklist :checkbox",e).val(f.split(","))}});a(".tags_input",g).each(function(){var q=a(this).text(),r=a(this).attr("id").replace("_"+c,""),p=a("textarea.tax_input_"+r,e),f=inlineEditL10n.comma;if(q){if(","!==f){q=q.replace(/,/g,f)}p.val(q)}p.suggest(ajaxurl+"?action=ajax-tag-search&tax="+r,{delay:500,minchars:2,multiple:true,multipleSep:inlineEditL10n.comma+" "})});i=a("._status",g).text();if("future"!=i){a('select[name="_status"] option[value="future"]',e).remove()}if("private"==i){a('input[name="keep_private"]',e).prop("checked",true);a("input.inline-edit-password-input").val("").prop("disabled",true)}h=a('select[name="post_parent"] option[value="'+c+'"]',e);if(h.length>0){m=h[0].className.split("-")[1];l=h;while(d){l=l.next("option");if(l.length==0){break}o=l[0].className.split("-")[1];if(o<=m){d=false}else{l.remove();l=h}}h.remove()}a(e).attr("id","edit-"+c).addClass("inline-editor").show();a(".ptitle",e).focus();return false},save:function(e){var d,b,c=a(".post_status_page").val()||"";if(typeof(e)=="object"){e=this.getId(e)}a("table.widefat .inline-edit-save .waiting").show();d={action:"inline-save",post_type:typenow,post_ID:e,edit_date:"true",post_status:c};b=a("#edit-"+e+" :input").serialize();d=b+"&"+a.param(d);a.post(ajaxurl,d,function(f){a("table.widefat .inline-edit-save .waiting").hide();if(f){if(-1!=f.indexOf("<tr")){a(inlineEditPost.what+e).remove();a("#edit-"+e).before(f).remove();a(inlineEditPost.what+e).hide().fadeIn()}else{f=f.replace(/<.[^<>]*?>/g,"");a("#edit-"+e+" .inline-edit-save .error").html(f).show()}}else{a("#edit-"+e+" .inline-edit-save .error").html(inlineEditL10n.error).show()}},"html");return false},revert:function(){var b=a("table.widefat tr.inline-editor").attr("id");if(b){a("table.widefat .inline-edit-save .waiting").hide();if("bulk-edit"==b){a("table.widefat #bulk-edit").removeClass("inline-editor").hide();a("#bulk-titles").html("");a("#inlineedit").append(a("#bulk-edit"))}else{a("#"+b).remove();b=b.substr(b.lastIndexOf("-")+1);a(this.what+b).show()}}return false},getId:function(c){var d=a(c).closest("tr").attr("id"),b=d.split("-");return b[b.length-1]}};a(document).ready(function(){inlineEditPost.init()})})(jQuery);
\ No newline at end of file
+(function($) {
+inlineEditPost = {
+
+	init : function(){
+		var t = this, qeRow = $('#inline-edit'), bulkRow = $('#bulk-edit');
+
+		t.type = $('table.widefat').hasClass('pages') ? 'page' : 'post';
+		t.what = '#post-';
+
+		// prepare the edit rows
+		qeRow.keyup(function(e){
+			if (e.which == 27)
+				return inlineEditPost.revert();
+		});
+		bulkRow.keyup(function(e){
+			if (e.which == 27)
+				return inlineEditPost.revert();
+		});
+
+		$('a.cancel', qeRow).click(function(){
+			return inlineEditPost.revert();
+		});
+		$('a.save', qeRow).click(function(){
+			return inlineEditPost.save(this);
+		});
+		$('td', qeRow).keydown(function(e){
+			if ( e.which == 13 )
+				return inlineEditPost.save(this);
+		});
+
+		$('a.cancel', bulkRow).click(function(){
+			return inlineEditPost.revert();
+		});
+
+		$('#inline-edit .inline-edit-private input[value="private"]').click( function(){
+			var pw = $('input.inline-edit-password-input');
+			if ( $(this).prop('checked') ) {
+				pw.val('').prop('disabled', true);
+			} else {
+				pw.prop('disabled', false);
+			}
+		});
+
+		// add events
+		$('a.editinline').live('click', function(){
+			inlineEditPost.edit(this);
+			return false;
+		});
+
+		$('#bulk-title-div').parents('fieldset').after(
+			$('#inline-edit fieldset.inline-edit-categories').clone()
+		).siblings( 'fieldset:last' ).prepend(
+			$('#inline-edit label.inline-edit-tags').clone()
+		);
+
+		// hiearchical taxonomies expandable?
+		$('span.catshow').click(function(){
+			$(this).hide().next().show().parent().next().addClass("cat-hover");
+		});
+
+		$('span.cathide').click(function(){
+			$(this).hide().prev().show().parent().next().removeClass("cat-hover");
+		});
+
+		$('select[name="_status"] option[value="future"]', bulkRow).remove();
+
+		$('#doaction, #doaction2').click(function(e){
+			var n = $(this).attr('id').substr(2);
+			if ( $('select[name="'+n+'"]').val() == 'edit' ) {
+				e.preventDefault();
+				t.setBulk();
+			} else if ( $('form#posts-filter tr.inline-editor').length > 0 ) {
+				t.revert();
+			}
+		});
+
+		$('#post-query-submit').mousedown(function(e){
+			t.revert();
+			$('select[name^="action"]').val('-1');
+		});
+	},
+
+	toggle : function(el){
+		var t = this;
+		$(t.what+t.getId(el)).css('display') == 'none' ? t.revert() : t.edit(el);
+	},
+
+	setBulk : function(){
+		var te = '', type = this.type, tax, c = true;
+		this.revert();
+
+		$('#bulk-edit td').attr('colspan', $('.widefat:first thead th:visible').length);
+		$('table.widefat tbody').prepend( $('#bulk-edit') );
+		$('#bulk-edit').addClass('inline-editor').show();
+
+		$('tbody th.check-column input[type="checkbox"]').each(function(i){
+			if ( $(this).prop('checked') ) {
+				c = false;
+				var id = $(this).val(), theTitle;
+				theTitle = $('#inline_'+id+' .post_title').html() || inlineEditL10n.notitle;
+				te += '<div id="ttle'+id+'"><a id="_'+id+'" class="ntdelbutton" title="'+inlineEditL10n.ntdeltitle+'">X</a>'+theTitle+'</div>';
+			}
+		});
+
+		if ( c )
+			return this.revert();
+
+		$('#bulk-titles').html(te);
+		$('#bulk-titles a').click(function(){
+			var id = $(this).attr('id').substr(1);
+
+			$('table.widefat input[value="' + id + '"]').prop('checked', false);
+			$('#ttle'+id).remove();
+		});
+
+		// enable autocomplete for tags
+		if ( 'post' == type ) {
+			// support multi taxonomies?
+			tax = 'post_tag';
+			$('tr.inline-editor textarea[name="tax_input['+tax+']"]').suggest( ajaxurl + '?action=ajax-tag-search&tax=' + tax, { delay: 500, minchars: 2, multiple: true, multipleSep: inlineEditL10n.comma + ' ' } );
+		}
+		$('html, body').animate( { scrollTop: 0 }, 'fast' );
+	},
+
+	edit : function(id) {
+		var t = this, fields, editRow, rowData, status, pageOpt, pageLevel, nextPage, pageLoop = true, nextLevel, cur_format, f;
+		t.revert();
+
+		if ( typeof(id) == 'object' )
+			id = t.getId(id);
+
+		fields = ['post_title', 'post_name', 'post_author', '_status', 'jj', 'mm', 'aa', 'hh', 'mn', 'ss', 'post_password', 'post_format', 'menu_order'];
+		if ( t.type == 'page' )
+			fields.push('post_parent', 'page_template');
+
+		// add the new blank row
+		editRow = $('#inline-edit').clone(true);
+		$('td', editRow).attr('colspan', $('.widefat:first thead th:visible').length);
+
+		if ( $(t.what+id).hasClass('alternate') )
+			$(editRow).addClass('alternate');
+		$(t.what+id).hide().after(editRow);
+
+		// populate the data
+		rowData = $('#inline_'+id);
+		if ( !$(':input[name="post_author"] option[value="' + $('.post_author', rowData).text() + '"]', editRow).val() ) {
+			// author no longer has edit caps, so we need to add them to the list of authors
+			$(':input[name="post_author"]', editRow).prepend('<option value="' + $('.post_author', rowData).text() + '">' + $('#' + t.type + '-' + id + ' .author').text() + '</option>');
+		}
+		if ( $(':input[name="post_author"] option', editRow).length == 1 ) {
+			$('label.inline-edit-author', editRow).hide();
+		}
+
+		// hide unsupported formats, but leave the current format alone
+		cur_format = $('.post_format', rowData).text();
+		$('option.unsupported', editRow).each(function() {
+			var $this = $(this);
+			if ( $this.val() != cur_format )
+				$this.remove();
+		});
+
+		for ( f = 0; f < fields.length; f++ ) {
+			$(':input[name="' + fields[f] + '"]', editRow).val( $('.'+fields[f], rowData).text() );
+		}
+
+		if ( $('.comment_status', rowData).text() == 'open' )
+			$('input[name="comment_status"]', editRow).prop("checked", true);
+		if ( $('.ping_status', rowData).text() == 'open' )
+			$('input[name="ping_status"]', editRow).prop("checked", true);
+		if ( $('.sticky', rowData).text() == 'sticky' )
+			$('input[name="sticky"]', editRow).prop("checked", true);
+
+		// hierarchical taxonomies
+		$('.post_category', rowData).each(function(){
+			var term_ids = $(this).text();
+
+			if ( term_ids ) {
+				taxname = $(this).attr('id').replace('_'+id, '');
+				$('ul.'+taxname+'-checklist :checkbox', editRow).val(term_ids.split(','));
+			}
+		});
+
+		//flat taxonomies
+		$('.tags_input', rowData).each(function(){
+			var terms = $(this).text(),
+				taxname = $(this).attr('id').replace('_' + id, ''),
+				textarea = $('textarea.tax_input_' + taxname, editRow),
+				comma = inlineEditL10n.comma;
+
+			if ( terms ) {
+				if ( ',' !== comma )
+					terms = terms.replace(/,/g, comma);
+				textarea.val(terms);
+			}
+
+			textarea.suggest( ajaxurl + '?action=ajax-tag-search&tax=' + taxname, { delay: 500, minchars: 2, multiple: true, multipleSep: inlineEditL10n.comma + ' ' } );
+		});
+
+		// handle the post status
+		status = $('._status', rowData).text();
+		if ( 'future' != status )
+			$('select[name="_status"] option[value="future"]', editRow).remove();
+
+		if ( 'private' == status ) {
+			$('input[name="keep_private"]', editRow).prop("checked", true);
+			$('input.inline-edit-password-input').val('').prop('disabled', true);
+		}
+
+		// remove the current page and children from the parent dropdown
+		pageOpt = $('select[name="post_parent"] option[value="' + id + '"]', editRow);
+		if ( pageOpt.length > 0 ) {
+			pageLevel = pageOpt[0].className.split('-')[1];
+			nextPage = pageOpt;
+			while ( pageLoop ) {
+				nextPage = nextPage.next('option');
+				if (nextPage.length == 0) break;
+				nextLevel = nextPage[0].className.split('-')[1];
+				if ( nextLevel <= pageLevel ) {
+					pageLoop = false;
+				} else {
+					nextPage.remove();
+					nextPage = pageOpt;
+				}
+			}
+			pageOpt.remove();
+		}
+
+		$(editRow).attr('id', 'edit-'+id).addClass('inline-editor').show();
+		$('.ptitle', editRow).focus();
+
+		return false;
+	},
+
+	save : function(id) {
+		var params, fields, page = $('.post_status_page').val() || '';
+
+		if ( typeof(id) == 'object' )
+			id = this.getId(id);
+
+		$('table.widefat .spinner').show();
+
+		params = {
+			action: 'inline-save',
+			post_type: typenow,
+			post_ID: id,
+			edit_date: 'true',
+			post_status: page
+		};
+
+		fields = $('#edit-'+id+' :input').serialize();
+		params = fields + '&' + $.param(params);
+
+		// make ajax request
+		$.post( ajaxurl, params,
+			function(r) {
+				$('table.widefat .spinner').hide();
+
+				if (r) {
+					if ( -1 != r.indexOf('<tr') ) {
+						$(inlineEditPost.what+id).remove();
+						$('#edit-'+id).before(r).remove();
+						$(inlineEditPost.what+id).hide().fadeIn();
+					} else {
+						r = r.replace( /<.[^<>]*?>/g, '' );
+						$('#edit-'+id+' .inline-edit-save .error').html(r).show();
+					}
+				} else {
+					$('#edit-'+id+' .inline-edit-save .error').html(inlineEditL10n.error).show();
+				}
+			}
+		, 'html');
+		return false;
+	},
+
+	revert : function(){
+		var id = $('table.widefat tr.inline-editor').attr('id');
+
+		if ( id ) {
+			$('table.widefat .spinner').hide();
+
+			if ( 'bulk-edit' == id ) {
+				$('table.widefat #bulk-edit').removeClass('inline-editor').hide();
+				$('#bulk-titles').html('');
+				$('#inlineedit').append( $('#bulk-edit') );
+			} else {
+				$('#'+id).remove();
+				id = id.substr( id.lastIndexOf('-') + 1 );
+				$(this.what+id).show();
+			}
+		}
+
+		return false;
+	},
+
+	getId : function(o) {
+		var id = $(o).closest('tr').attr('id'),
+			parts = id.split('-');
+		return parts[parts.length - 1];
+	}
+};
+
+$(document).ready(function(){inlineEditPost.init();});
+})(jQuery);
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-admin/js/inline-edit-post.min.js	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,1 @@
+(function(a){inlineEditPost={init:function(){var c=this,d=a("#inline-edit"),b=a("#bulk-edit");c.type=a("table.widefat").hasClass("pages")?"page":"post";c.what="#post-";d.keyup(function(f){if(f.which==27){return inlineEditPost.revert()}});b.keyup(function(f){if(f.which==27){return inlineEditPost.revert()}});a("a.cancel",d).click(function(){return inlineEditPost.revert()});a("a.save",d).click(function(){return inlineEditPost.save(this)});a("td",d).keydown(function(f){if(f.which==13){return inlineEditPost.save(this)}});a("a.cancel",b).click(function(){return inlineEditPost.revert()});a('#inline-edit .inline-edit-private input[value="private"]').click(function(){var e=a("input.inline-edit-password-input");if(a(this).prop("checked")){e.val("").prop("disabled",true)}else{e.prop("disabled",false)}});a("a.editinline").live("click",function(){inlineEditPost.edit(this);return false});a("#bulk-title-div").parents("fieldset").after(a("#inline-edit fieldset.inline-edit-categories").clone()).siblings("fieldset:last").prepend(a("#inline-edit label.inline-edit-tags").clone());a("span.catshow").click(function(){a(this).hide().next().show().parent().next().addClass("cat-hover")});a("span.cathide").click(function(){a(this).hide().prev().show().parent().next().removeClass("cat-hover")});a('select[name="_status"] option[value="future"]',b).remove();a("#doaction, #doaction2").click(function(f){var g=a(this).attr("id").substr(2);if(a('select[name="'+g+'"]').val()=="edit"){f.preventDefault();c.setBulk()}else{if(a("form#posts-filter tr.inline-editor").length>0){c.revert()}}});a("#post-query-submit").mousedown(function(f){c.revert();a('select[name^="action"]').val("-1")})},toggle:function(c){var b=this;a(b.what+b.getId(c)).css("display")=="none"?b.revert():b.edit(c)},setBulk:function(){var e="",d=this.type,b,f=true;this.revert();a("#bulk-edit td").attr("colspan",a(".widefat:first thead th:visible").length);a("table.widefat tbody").prepend(a("#bulk-edit"));a("#bulk-edit").addClass("inline-editor").show();a('tbody th.check-column input[type="checkbox"]').each(function(g){if(a(this).prop("checked")){f=false;var h=a(this).val(),c;c=a("#inline_"+h+" .post_title").html()||inlineEditL10n.notitle;e+='<div id="ttle'+h+'"><a id="_'+h+'" class="ntdelbutton" title="'+inlineEditL10n.ntdeltitle+'">X</a>'+c+"</div>"}});if(f){return this.revert()}a("#bulk-titles").html(e);a("#bulk-titles a").click(function(){var c=a(this).attr("id").substr(1);a('table.widefat input[value="'+c+'"]').prop("checked",false);a("#ttle"+c).remove()});if("post"==d){b="post_tag";a('tr.inline-editor textarea[name="tax_input['+b+']"]').suggest(ajaxurl+"?action=ajax-tag-search&tax="+b,{delay:500,minchars:2,multiple:true,multipleSep:inlineEditL10n.comma+" "})}a("html, body").animate({scrollTop:0},"fast")},edit:function(c){var n=this,j,e,g,i,h,m,l,d=true,o,b,k;n.revert();if(typeof(c)=="object"){c=n.getId(c)}j=["post_title","post_name","post_author","_status","jj","mm","aa","hh","mn","ss","post_password","post_format","menu_order"];if(n.type=="page"){j.push("post_parent","page_template")}e=a("#inline-edit").clone(true);a("td",e).attr("colspan",a(".widefat:first thead th:visible").length);if(a(n.what+c).hasClass("alternate")){a(e).addClass("alternate")}a(n.what+c).hide().after(e);g=a("#inline_"+c);if(!a(':input[name="post_author"] option[value="'+a(".post_author",g).text()+'"]',e).val()){a(':input[name="post_author"]',e).prepend('<option value="'+a(".post_author",g).text()+'">'+a("#"+n.type+"-"+c+" .author").text()+"</option>")}if(a(':input[name="post_author"] option',e).length==1){a("label.inline-edit-author",e).hide()}b=a(".post_format",g).text();a("option.unsupported",e).each(function(){var f=a(this);if(f.val()!=b){f.remove()}});for(k=0;k<j.length;k++){a(':input[name="'+j[k]+'"]',e).val(a("."+j[k],g).text())}if(a(".comment_status",g).text()=="open"){a('input[name="comment_status"]',e).prop("checked",true)}if(a(".ping_status",g).text()=="open"){a('input[name="ping_status"]',e).prop("checked",true)}if(a(".sticky",g).text()=="sticky"){a('input[name="sticky"]',e).prop("checked",true)}a(".post_category",g).each(function(){var f=a(this).text();if(f){taxname=a(this).attr("id").replace("_"+c,"");a("ul."+taxname+"-checklist :checkbox",e).val(f.split(","))}});a(".tags_input",g).each(function(){var q=a(this).text(),r=a(this).attr("id").replace("_"+c,""),p=a("textarea.tax_input_"+r,e),f=inlineEditL10n.comma;if(q){if(","!==f){q=q.replace(/,/g,f)}p.val(q)}p.suggest(ajaxurl+"?action=ajax-tag-search&tax="+r,{delay:500,minchars:2,multiple:true,multipleSep:inlineEditL10n.comma+" "})});i=a("._status",g).text();if("future"!=i){a('select[name="_status"] option[value="future"]',e).remove()}if("private"==i){a('input[name="keep_private"]',e).prop("checked",true);a("input.inline-edit-password-input").val("").prop("disabled",true)}h=a('select[name="post_parent"] option[value="'+c+'"]',e);if(h.length>0){m=h[0].className.split("-")[1];l=h;while(d){l=l.next("option");if(l.length==0){break}o=l[0].className.split("-")[1];if(o<=m){d=false}else{l.remove();l=h}}h.remove()}a(e).attr("id","edit-"+c).addClass("inline-editor").show();a(".ptitle",e).focus();return false},save:function(e){var d,b,c=a(".post_status_page").val()||"";if(typeof(e)=="object"){e=this.getId(e)}a("table.widefat .spinner").show();d={action:"inline-save",post_type:typenow,post_ID:e,edit_date:"true",post_status:c};b=a("#edit-"+e+" :input").serialize();d=b+"&"+a.param(d);a.post(ajaxurl,d,function(f){a("table.widefat .spinner").hide();if(f){if(-1!=f.indexOf("<tr")){a(inlineEditPost.what+e).remove();a("#edit-"+e).before(f).remove();a(inlineEditPost.what+e).hide().fadeIn()}else{f=f.replace(/<.[^<>]*?>/g,"");a("#edit-"+e+" .inline-edit-save .error").html(f).show()}}else{a("#edit-"+e+" .inline-edit-save .error").html(inlineEditL10n.error).show()}},"html");return false},revert:function(){var b=a("table.widefat tr.inline-editor").attr("id");if(b){a("table.widefat .spinner").hide();if("bulk-edit"==b){a("table.widefat #bulk-edit").removeClass("inline-editor").hide();a("#bulk-titles").html("");a("#inlineedit").append(a("#bulk-edit"))}else{a("#"+b).remove();b=b.substr(b.lastIndexOf("-")+1);a(this.what+b).show()}}return false},getId:function(c){var d=a(c).closest("tr").attr("id"),b=d.split("-");return b[b.length-1]}};a(document).ready(function(){inlineEditPost.init()})})(jQuery);
\ No newline at end of file
--- a/web/wp-admin/js/inline-edit-tax.dev.js	Wed Dec 19 12:35:13 2012 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,118 +0,0 @@
-
-(function($) {
-inlineEditTax = {
-
-	init : function() {
-		var t = this, row = $('#inline-edit');
-
-		t.type = $('#the-list').attr('class').substr(5);
-		t.what = '#'+t.type+'-';
-
-		$('.editinline').live('click', function(){
-			inlineEditTax.edit(this);
-			return false;
-		});
-
-		// prepare the edit row
-		row.keyup(function(e) { if(e.which == 27) return inlineEditTax.revert(); });
-
-		$('a.cancel', row).click(function() { return inlineEditTax.revert(); });
-		$('a.save', row).click(function() { return inlineEditTax.save(this); });
-		$('input, select', row).keydown(function(e) { if(e.which == 13) return inlineEditTax.save(this); });
-
-		$('#posts-filter input[type="submit"]').mousedown(function(e){
-			t.revert();
-		});
-	},
-
-	toggle : function(el) {
-		var t = this;
-		$(t.what+t.getId(el)).css('display') == 'none' ? t.revert() : t.edit(el);
-	},
-
-	edit : function(id) {
-		var t = this, editRow;
-		t.revert();
-
-		if ( typeof(id) == 'object' )
-			id = t.getId(id);
-
-		editRow = $('#inline-edit').clone(true), rowData = $('#inline_'+id);
-		$('td', editRow).attr('colspan', $('.widefat:first thead th:visible').length);
-
-		if ( $(t.what+id).hasClass('alternate') )
-			$(editRow).addClass('alternate');
-
-		$(t.what+id).hide().after(editRow);
-
-		$(':input[name="name"]', editRow).val( $('.name', rowData).text() );
-		$(':input[name="slug"]', editRow).val( $('.slug', rowData).text() );
-
-		$(editRow).attr('id', 'edit-'+id).addClass('inline-editor').show();
-		$('.ptitle', editRow).eq(0).focus();
-
-		return false;
-	},
-
-	save : function(id) {
-		var params, fields, tax = $('input[name="taxonomy"]').val() || '';
-
-		if( typeof(id) == 'object' )
-			id = this.getId(id);
-
-		$('table.widefat .inline-edit-save .waiting').show();
-
-		params = {
-			action: 'inline-save-tax',
-			tax_type: this.type,
-			tax_ID: id,
-			taxonomy: tax
-		};
-
-		fields = $('#edit-'+id+' :input').serialize();
-		params = fields + '&' + $.param(params);
-
-		// make ajax request
-		$.post( ajaxurl, params,
-			function(r) {
-				var row, new_id;
-				$('table.widefat .inline-edit-save .waiting').hide();
-
-				if (r) {
-					if ( -1 != r.indexOf('<tr') ) {
-						$(inlineEditTax.what+id).remove();
-						new_id = $(r).attr('id');
-
-						$('#edit-'+id).before(r).remove();
-						row = new_id ? $('#'+new_id) : $(inlineEditTax.what+id);
-						row.hide().fadeIn();
-					} else
-						$('#edit-'+id+' .inline-edit-save .error').html(r).show();
-				} else
-					$('#edit-'+id+' .inline-edit-save .error').html(inlineEditL10n.error).show();
-			}
-		);
-		return false;
-	},
-
-	revert : function() {
-		var id = $('table.widefat tr.inline-editor').attr('id');
-
-		if ( id ) {
-			$('table.widefat .inline-edit-save .waiting').hide();
-			$('#'+id).remove();
-			id = id.substr( id.lastIndexOf('-') + 1 );
-			$(this.what+id).show();
-		}
-
-		return false;
-	},
-
-	getId : function(o) {
-		var id = o.tagName == 'TR' ? o.id : $(o).parents('tr').attr('id'), parts = id.split('-');
-		return parts[parts.length - 1];
-	}
-};
-
-$(document).ready(function(){inlineEditTax.init();});
-})(jQuery);
--- a/web/wp-admin/js/inline-edit-tax.js	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-admin/js/inline-edit-tax.js	Wed Dec 19 17:46:52 2012 -0800
@@ -1,1 +1,118 @@
-(function(a){inlineEditTax={init:function(){var b=this,c=a("#inline-edit");b.type=a("#the-list").attr("class").substr(5);b.what="#"+b.type+"-";a(".editinline").live("click",function(){inlineEditTax.edit(this);return false});c.keyup(function(d){if(d.which==27){return inlineEditTax.revert()}});a("a.cancel",c).click(function(){return inlineEditTax.revert()});a("a.save",c).click(function(){return inlineEditTax.save(this)});a("input, select",c).keydown(function(d){if(d.which==13){return inlineEditTax.save(this)}});a('#posts-filter input[type="submit"]').mousedown(function(d){b.revert()})},toggle:function(c){var b=this;a(b.what+b.getId(c)).css("display")=="none"?b.revert():b.edit(c)},edit:function(d){var c=this,b;c.revert();if(typeof(d)=="object"){d=c.getId(d)}b=a("#inline-edit").clone(true),rowData=a("#inline_"+d);a("td",b).attr("colspan",a(".widefat:first thead th:visible").length);if(a(c.what+d).hasClass("alternate")){a(b).addClass("alternate")}a(c.what+d).hide().after(b);a(':input[name="name"]',b).val(a(".name",rowData).text());a(':input[name="slug"]',b).val(a(".slug",rowData).text());a(b).attr("id","edit-"+d).addClass("inline-editor").show();a(".ptitle",b).eq(0).focus();return false},save:function(e){var d,b,c=a('input[name="taxonomy"]').val()||"";if(typeof(e)=="object"){e=this.getId(e)}a("table.widefat .inline-edit-save .waiting").show();d={action:"inline-save-tax",tax_type:this.type,tax_ID:e,taxonomy:c};b=a("#edit-"+e+" :input").serialize();d=b+"&"+a.param(d);a.post(ajaxurl,d,function(g){var h,f;a("table.widefat .inline-edit-save .waiting").hide();if(g){if(-1!=g.indexOf("<tr")){a(inlineEditTax.what+e).remove();f=a(g).attr("id");a("#edit-"+e).before(g).remove();h=f?a("#"+f):a(inlineEditTax.what+e);h.hide().fadeIn()}else{a("#edit-"+e+" .inline-edit-save .error").html(g).show()}}else{a("#edit-"+e+" .inline-edit-save .error").html(inlineEditL10n.error).show()}});return false},revert:function(){var b=a("table.widefat tr.inline-editor").attr("id");if(b){a("table.widefat .inline-edit-save .waiting").hide();a("#"+b).remove();b=b.substr(b.lastIndexOf("-")+1);a(this.what+b).show()}return false},getId:function(c){var d=c.tagName=="TR"?c.id:a(c).parents("tr").attr("id"),b=d.split("-");return b[b.length-1]}};a(document).ready(function(){inlineEditTax.init()})})(jQuery);
\ No newline at end of file
+
+(function($) {
+inlineEditTax = {
+
+	init : function() {
+		var t = this, row = $('#inline-edit');
+
+		t.type = $('#the-list').attr('data-wp-lists').substr(5);
+		t.what = '#'+t.type+'-';
+
+		$('.editinline').live('click', function(){
+			inlineEditTax.edit(this);
+			return false;
+		});
+
+		// prepare the edit row
+		row.keyup(function(e) { if(e.which == 27) return inlineEditTax.revert(); });
+
+		$('a.cancel', row).click(function() { return inlineEditTax.revert(); });
+		$('a.save', row).click(function() { return inlineEditTax.save(this); });
+		$('input, select', row).keydown(function(e) { if(e.which == 13) return inlineEditTax.save(this); });
+
+		$('#posts-filter input[type="submit"]').mousedown(function(e){
+			t.revert();
+		});
+	},
+
+	toggle : function(el) {
+		var t = this;
+		$(t.what+t.getId(el)).css('display') == 'none' ? t.revert() : t.edit(el);
+	},
+
+	edit : function(id) {
+		var t = this, editRow;
+		t.revert();
+
+		if ( typeof(id) == 'object' )
+			id = t.getId(id);
+
+		editRow = $('#inline-edit').clone(true), rowData = $('#inline_'+id);
+		$('td', editRow).attr('colspan', $('.widefat:first thead th:visible').length);
+
+		if ( $(t.what+id).hasClass('alternate') )
+			$(editRow).addClass('alternate');
+
+		$(t.what+id).hide().after(editRow);
+
+		$(':input[name="name"]', editRow).val( $('.name', rowData).text() );
+		$(':input[name="slug"]', editRow).val( $('.slug', rowData).text() );
+
+		$(editRow).attr('id', 'edit-'+id).addClass('inline-editor').show();
+		$('.ptitle', editRow).eq(0).focus();
+
+		return false;
+	},
+
+	save : function(id) {
+		var params, fields, tax = $('input[name="taxonomy"]').val() || '';
+
+		if( typeof(id) == 'object' )
+			id = this.getId(id);
+
+		$('table.widefat .spinner').show();
+
+		params = {
+			action: 'inline-save-tax',
+			tax_type: this.type,
+			tax_ID: id,
+			taxonomy: tax
+		};
+
+		fields = $('#edit-'+id+' :input').serialize();
+		params = fields + '&' + $.param(params);
+
+		// make ajax request
+		$.post( ajaxurl, params,
+			function(r) {
+				var row, new_id;
+				$('table.widefat .spinner').hide();
+
+				if (r) {
+					if ( -1 != r.indexOf('<tr') ) {
+						$(inlineEditTax.what+id).remove();
+						new_id = $(r).attr('id');
+
+						$('#edit-'+id).before(r).remove();
+						row = new_id ? $('#'+new_id) : $(inlineEditTax.what+id);
+						row.hide().fadeIn();
+					} else
+						$('#edit-'+id+' .inline-edit-save .error').html(r).show();
+				} else
+					$('#edit-'+id+' .inline-edit-save .error').html(inlineEditL10n.error).show();
+			}
+		);
+		return false;
+	},
+
+	revert : function() {
+		var id = $('table.widefat tr.inline-editor').attr('id');
+
+		if ( id ) {
+			$('table.widefat .spinner').hide();
+			$('#'+id).remove();
+			id = id.substr( id.lastIndexOf('-') + 1 );
+			$(this.what+id).show();
+		}
+
+		return false;
+	},
+
+	getId : function(o) {
+		var id = o.tagName == 'TR' ? o.id : $(o).parents('tr').attr('id'), parts = id.split('-');
+		return parts[parts.length - 1];
+	}
+};
+
+$(document).ready(function(){inlineEditTax.init();});
+})(jQuery);
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-admin/js/inline-edit-tax.min.js	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,1 @@
+(function(a){inlineEditTax={init:function(){var b=this,c=a("#inline-edit");b.type=a("#the-list").attr("data-wp-lists").substr(5);b.what="#"+b.type+"-";a(".editinline").live("click",function(){inlineEditTax.edit(this);return false});c.keyup(function(d){if(d.which==27){return inlineEditTax.revert()}});a("a.cancel",c).click(function(){return inlineEditTax.revert()});a("a.save",c).click(function(){return inlineEditTax.save(this)});a("input, select",c).keydown(function(d){if(d.which==13){return inlineEditTax.save(this)}});a('#posts-filter input[type="submit"]').mousedown(function(d){b.revert()})},toggle:function(c){var b=this;a(b.what+b.getId(c)).css("display")=="none"?b.revert():b.edit(c)},edit:function(d){var c=this,b;c.revert();if(typeof(d)=="object"){d=c.getId(d)}b=a("#inline-edit").clone(true),rowData=a("#inline_"+d);a("td",b).attr("colspan",a(".widefat:first thead th:visible").length);if(a(c.what+d).hasClass("alternate")){a(b).addClass("alternate")}a(c.what+d).hide().after(b);a(':input[name="name"]',b).val(a(".name",rowData).text());a(':input[name="slug"]',b).val(a(".slug",rowData).text());a(b).attr("id","edit-"+d).addClass("inline-editor").show();a(".ptitle",b).eq(0).focus();return false},save:function(e){var d,b,c=a('input[name="taxonomy"]').val()||"";if(typeof(e)=="object"){e=this.getId(e)}a("table.widefat .spinner").show();d={action:"inline-save-tax",tax_type:this.type,tax_ID:e,taxonomy:c};b=a("#edit-"+e+" :input").serialize();d=b+"&"+a.param(d);a.post(ajaxurl,d,function(g){var h,f;a("table.widefat .spinner").hide();if(g){if(-1!=g.indexOf("<tr")){a(inlineEditTax.what+e).remove();f=a(g).attr("id");a("#edit-"+e).before(g).remove();h=f?a("#"+f):a(inlineEditTax.what+e);h.hide().fadeIn()}else{a("#edit-"+e+" .inline-edit-save .error").html(g).show()}}else{a("#edit-"+e+" .inline-edit-save .error").html(inlineEditL10n.error).show()}});return false},revert:function(){var b=a("table.widefat tr.inline-editor").attr("id");if(b){a("table.widefat .spinner").hide();a("#"+b).remove();b=b.substr(b.lastIndexOf("-")+1);a(this.what+b).show()}return false},getId:function(c){var d=c.tagName=="TR"?c.id:a(c).parents("tr").attr("id"),b=d.split("-");return b[b.length-1]}};a(document).ready(function(){inlineEditTax.init()})})(jQuery);
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-admin/js/iris.min.js	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,4 @@
+/*! Iris - v0.9.14 - 2012-11-20
+* https://github.com/Automattic/Iris
+* Copyright (c) 2012 Matt Wiebe; Licensed GPL */
+(function(e,t){function u(){if(r)i="filter";else{var t=e('<div id="iris-gradtest" />'),n="linear-gradient(top,#fff,#000)";e.each(s,function(e,r){t.css("backgroundImage",r+n);if(t.css("backgroundImage").match("gradient"))return i=e,!1}),e.browser.webkit&&i===!1&&(t.css("background","-webkit-gradient(linear,0% 0%,0% 100%,from(#fff),to(#000))"),t.css("backgroundImage").match("gradient")&&(i="webkit")),t.remove()}}function a(t,n){return t=t==="top"?"top":"left",n=e.isArray(n)?n:Array.prototype.slice.call(arguments,1),i==="webkit"?l(t,n):s[i]+"linear-gradient("+t+", "+n.join(", ")+")"}function f(t,n){t=t==="top"?"top":"left",n=e.isArray(n)?n:Array.prototype.slice.call(arguments,1);var r=t==="top"?0:1,i=e(this),s=n.length-1,o=parseInt(e.browser.version,10)>=8?"-ms-filter":"filter";o="filter";var u=r===1?"left":"top",a=r===1?"right":"bottom",f=r===1?"height":"width",l='<div class="iris-ie-gradient-shim" style="position:absolute;'+f+":100%;"+u+":%start%;"+a+":%end%;"+o+':%filter%;" data-color:"%color%"></div>',h="";i.css("position")==="static"&&i.css({position:"relative"}),n=c(n),e.each(n,function(e,t){if(e===s)return!1;var i=n[e+1];if(t.stop===i.stop)return;var o=100-parseFloat(i.stop)+"%";t.octoHex=(new Color(t.color)).toIEOctoHex(),i.octoHex=(new Color(i.color)).toIEOctoHex();var u="progid:DXImageTransform.Microsoft.Gradient(GradientType="+r+", StartColorStr='"+t.octoHex+"', EndColorStr='"+i.octoHex+"')";h+=l.replace("%start%",t.stop).replace("%end%",o).replace("%filter%",u)}),i.find(".iris-ie-gradient-shim").remove(),e(h).prependTo(i)}function l(t,n){var r=[];return t=t==="top"?"0% 0%,0% 100%,":"0% 100%,100% 100%,",n=c(n),e.each(n,function(e,t){r.push("color-stop("+parseFloat(t.stop)/100+", "+t.color+")")}),"-webkit-gradient(linear,"+t+r.join(",")+")"}function c(t){var n=[],r=[],i=[],s=t.length-1;return e.each(t,function(e,t){var i=t,s=!1,o=t.match(/1?[0-9]{1,2}%$/);o&&(i=t.replace(/\s?1?[0-9]{1,2}%$/,""),s=o.shift()),n.push(i),r.push(s)}),r[0]===!1&&(r[0]="0%"),r[s]===!1&&(r[s]="100%"),r=h(r),e.each(r,function(e){i[e]={color:n[e],stop:r[e]}}),i}function h(t){var n=0,r=t.length-1,i=0,s=!1,o,u,a,f;if(t.length<=2||e.inArray(!1,t)<0)return t;while(i<t.length-1)!s&&t[i]===!1?(n=i-1,s=!0):s&&t[i]!==!1&&(r=i,i=t.length),i++;u=r-n,f=parseInt(t[n].replace("%"),10),o=(parseFloat(t[r].replace("%"))-f)/u,i=n+1,a=1;while(i<r)t[i]=f+a*o+"%",a++,i++;return h(t)}var n='<div class="iris-picker"><div class="iris-picker-inner"><div class="iris-square"><a class="iris-square-value" href="#"><span class="iris-square-handle ui-slider-handle"></span></a><div class="iris-square-inner iris-square-horiz"></div><div class="iris-square-inner iris-square-vert"></div></div><div class="iris-slider iris-strip"><div class="iris-slider-offset"></div></div></div></div>',r=!!(e.browser.msie&&parseInt(e.browser.version,10)<10),i=!1,s=["-moz-","-webkit-","-o-","-ms-"],o='.iris-picker{display:block;position:relative}.iris-error{background-color:#ffafaf}.iris-border{border-radius:3px;border:1px solid #aaa;width:200px;background-color:#fff}.iris-picker-inner{position:absolute;top:0;right:0;left:0;bottom:0}.iris-border .iris-picker-inner{top:10px;right:10px;left:10px;bottom:10px}.iris-picker .iris-square-inner{position:absolute;left:0;right:0;top:0;bottom:0}.iris-picker .iris-square,.iris-picker .iris-slider,.iris-picker .iris-square-inner,.iris-picker .iris-palette{border-radius:3px;box-shadow:inset 0 0 5px rgba(0,0,0,0.4);height:100%;width:12.5%;float:left;margin-right:5%}.iris-picker .iris-square{width:76%;margin-right:10%;position:relative}.iris-picker .iris-square-inner{width:auto;margin:0}.iris-ie-9 .iris-square,.iris-ie-9 .iris-slider,.iris-ie-9 .iris-square-inner,.iris-ie-9 .iris-palette{box-shadow:none;border-radius:0}.iris-ie-9 .iris-square,.iris-ie-9 .iris-slider,.iris-ie-9 .iris-palette{outline:1px solid rgba(0,0,0,.1)}.iris-ie-lt9 .iris-square,.iris-ie-lt9 .iris-slider,.iris-ie-lt9 .iris-square-inner,.iris-ie-lt9 .iris-palette{outline:1px solid #aaa}.iris-ie-lt9 .iris-square .ui-slider-handle{outline:1px solid #aaa;background-color:#fff;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=30)"}.iris-ie-lt9 .iris-square .iris-square-handle{background:none;border:3px solid #fff;-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=50)"}.iris-picker .iris-strip{margin-right:0;position:relative}.iris-picker .iris-strip .ui-slider-handle{position:absolute;background:none;right:-3px;left:-3px;border:4px solid #aaa;border-width:4px 3px;width:auto;height:6px;border-radius:4px;box-shadow:0 1px 2px rgba(0,0,0,.2);opacity:.9;z-index:5;cursor:ns-resize}.iris-strip .ui-slider-handle:before{content:" ";position:absolute;left:-2px;right:-2px;top:-3px;bottom:-3px;border:2px solid #fff;border-radius:3px}.iris-picker .iris-slider-offset{position:absolute;top:11px;left:0;right:0;bottom:-3px}.iris-picker .iris-square-handle{background:transparent;border:5px solid #aaa;border-radius:50%;border-color:rgba(128,128,128,.5);box-shadow:none;width:12px;height:12px;position:absolute;left:-10px;top:-10px;cursor:move;opacity:1;z-index:10}.iris-picker .ui-state-focus .iris-square-handle{opacity:.8}.iris-picker .iris-square-handle:hover{border-color:#999}.iris-picker .iris-square-value:focus .iris-square-handle{box-shadow:0 0 2px rgba(0,0,0,.75);opacity:.8}.iris-picker .iris-square-handle:hover::after{border-color:#fff}.iris-picker .iris-square-handle::after{position:absolute;bottom:-4px;right:-4px;left:-4px;top:-4px;border:3px solid #f9f9f9;border-color:rgba(255,255,255,.8);border-radius:50%;content:" "}.iris-picker .iris-square-value{width:8px;height:8px;position:absolute}.iris-ie-lt9 .iris-square-value,.iris-mozilla .iris-square-value{width:1px;height:1px}.iris-palette-container{position:absolute;bottom:0;left:0;margin:0;padding:0}.iris-border .iris-palette-container{left:10px;bottom:10px}.iris-picker .iris-palette{margin:0;cursor:pointer}';if(r&&parseInt(e.browser.version,10)<=7)return e.fn.iris=e.noop;e.fn.gradient=function(t){var n=arguments;return this.each(function(){r?f.apply(this,n):e(this).css("backgroundImage",a.apply(this,n))})},e.fn.raninbowGradient=function(t,n){t=t||"top";var r=e.extend({},{s:100,l:50},n),i="hsl(%h%,"+r.s+"%,"+r.l+"%)",s=0,o=[];while(s<=360)o.push(i.replace("%h%",s)),s+=30;return this.each(function(){e(this).gradient(t,o)})};var p={options:{color:!1,mode:"hsl",controls:{horiz:"s",vert:"l",strip:"h"},hide:!0,border:!0,target:!1,width:200,palettes:!1},_palettes:["#000","#fff","#d33","#d93","#ee2","#81d742","#1e73be","#8224e3"],_inited:!1,_scale:{h:360,s:100,l:100,v:100},_create:function(){var t=this,r=t.element,s=t.options.color||r.val(),o;i===!1&&u(),r.is("input")?(t.options.target?t.picker=e(n).appendTo(t.options.target):t.picker=e(n).insertAfter(r),t._addInputListeners(r)):(r.append(n),t.picker=r.find(".iris-picker"));if(e.browser.mozilla)t.picker.addClass("iris-mozilla");else if(e.browser.msie){var a=parseInt(e.browser.version,10);a===9?t.picker.addClass("iris-ie-9"):a<=8&&t.picker.addClass("iris-ie-lt9")}t.options.palettes&&t._addPalettes(),t.color=(new Color(s)).setHSpace(t.options.mode),t.options.color=t.color.toString(),t.controls={square:t.picker.find(".iris-square"),squareDrag:t.picker.find(".iris-square-value"),horiz:t.picker.find(".iris-square-horiz"),vert:t.picker.find(".iris-square-vert"),strip:t.picker.find(".iris-strip"),stripSlider:t.picker.find(".iris-strip .iris-slider-offset")},t.options.mode==="hsv"&&t.options.controls.vert==="l"&&(t.options.controls={horiz:"h",vert:"v",strip:"s"}),t.hue=t.color.h(),t.options.hide&&t.picker.hide(),t.options.border&&t.picker.addClass("iris-border"),t._initControls(),t.active="external",t._dimensions(),t._change()},_addPalettes:function(){var t=e("<div class='iris-palette-container' />"),n=e("<a class='iris-palette' tabindex='0' />"),r=e.isArray(this.options.palettes)?this.options.palettes:this._palettes;e.each(r,function(e,r){n.clone().data("color",r).css("backgroundColor",r).appendTo(t).height(10).width(10)}),this.picker.append(t)},_paint:function(){var e=this;e._paintDimension("top","strip"),e._paintDimension("top","vert"),e._paintDimension("left","horiz")},_paintDimension:function(e,t){var n=this,r=n.color,i=n.options.mode,s=n._getHSpaceColor(),o=n.controls[t],u=n.options.controls,a;if(t===n.active||n.active==="square"&&t!=="strip")return;switch(u[t]){case"h":if(i==="hsv"){s=r.clone();switch(t){case"horiz":s[u.vert](100);break;case"vert":s[u.horiz](100);break;case"strip":s.setHSpace("hsl")}a=s.toHsl()}else t==="strip"?a={s:s.s,l:s.l}:a={s:100,l:s.l};o.raninbowGradient(e,a);break;case"s":i==="hsv"?t==="vert"?a=[r.clone().a(0).s(0).toCSS("rgba"),r.clone().a(1).s(0).toCSS("rgba")]:t==="strip"?a=[r.clone().s(100).toCSS("hsl"),r.clone().s(0).toCSS("hsl")]:t==="horiz"&&(a=["#fff","hsl("+s.h+",100%,50%)"]):t==="vert"&&n.options.controls.horiz==="h"?a=["hsla(0, 0%, "+s.l+"%, 0)","hsla(0, 0%, "+s.l+"%, 1)"]:a=["hsl("+s.h+",0%,50%)","hsl("+s.h+",100%,50%)"],o.gradient(e,a);break;case"l":t==="strip"?a=["hsl("+s.h+",100%,100%)","hsl("+s.h+", "+s.s+"%,50%)","hsl("+s.h+",100%,0%)"]:a=["#fff","rgba(255,255,255,0) 50%","rgba(0,0,0,0) 50%","rgba(0,0,0,1)"],o.gradient(e,a);break;case"v":t==="strip"?a=[r.clone().v(100).toCSS(),r.clone().v(0).toCSS()]:a=["rgba(0,0,0,0)","#000"],o.gradient(e,a);break;default:}},_getHSpaceColor:function(){return this.options.mode==="hsv"?this.color.toHsv():this.color.toHsl()},_dimensions:function(t){var n=this,r=n.options,i=n.picker.find(".iris-picker-inner"),s=n.controls,o=s.square,u=n.picker.find(".iris-strip"),a="77.5%",f="12%",l=20,c=r.border?r.width-l:r.width,h,p=e.isArray(r.palettes)?r.palettes.length:n._palettes.length,d,v,m;t&&(o.css("width",""),u.css("width",""),n.picker.removeAttr("style")),a=c*(parseFloat(a)/100),f=c*(parseFloat(f)/100),h=r.border?a+l:a,o.width(a).height(a),u.height(a).width(f),n.picker.css({width:r.width,height:h});if(!r.palettes)return;d=a*2/100,m=a-(p-1)*d,v=m/p,n.picker.find(".iris-palette").each(function(t,n){var r=t===0?0:d;e(this).css({width:v,height:v,marginLeft:r})}),n.picker.css("paddingBottom",v+d),u.height(v+d+a)},_addInputListeners:function(e){var t=this,n=100,r=function(n){var r=new Color(e.val()),i=e.val().replace(/^#/,"");e.removeClass("iris-error"),r.error?i!==""&&e.addClass("iris-error"):r.toString()!==t.color.toString()&&(n.type!=="keyup"||!i.match(/^[0-9a-fA-F]{3}$/))&&t._setOption("color",r.toString())};e.on("change",r).on("keyup",t._debounce(r,n))},_initControls:function(){var t=this,n=t.controls,r=n.square,i=t.options.controls,s=t._scale[i.strip];n.stripSlider.slider({orientation:"vertical",max:s,slide:function(e,n){t.active="strip",i.strip==="h"&&(n.value=s-n.value),t.color[i.strip](n.value),t._change.apply(t,arguments)}}),n.squareDrag.draggable({containment:"parent",zIndex:1e3,cursor:"move",drag:function(e,n){t._squareDrag(e,n)},start:function(){r.addClass("iris-dragging"),e(this).addClass("ui-state-focus")},stop:function(){r.removeClass("iris-dragging"),e(this).removeClass("ui-state-focus")}}).on("mousedown mouseup",function(n){n.preventDefault();var r="ui-state-focus";n.type==="mousedown"?(t.picker.find("."+r).removeClass(r).blur(),e(this).addClass(r).focus()):e(this).removeClass(r)}).on("keydown",function(e){var r=n.square,i=n.squareDrag,s=i.position(),o=t.options.width/100;e.altKey&&(o*=10);switch(e.keyCode){case 37:s.left-=o;break;case 38:s.top-=o;break;case 39:s.left+=o;break;case 40:s.top+=o;break;default:return!0}s.left=Math.max(0,Math.min(s.left,r.width())),s.top=Math.max(0,Math.min(s.top,r.height())),i.css(s),t._squareDrag(e,{position:s}),e.preventDefault()}),r.mousedown(function(n){if(n.which!==1)return;if(!e(n.target).is("div"))return;var r=t.controls.square.offset(),i={top:n.pageY-r.top,left:n.pageX-r.left};n.preventDefault(),t._squareDrag(n,{position:i}),n.target=t.controls.squareDrag.get(0),t.controls.squareDrag.css(i).trigger(n)}),t.options.palettes&&t.picker.find(".iris-palette-container").on("click",".iris-palette",function(n){t.color.fromCSS(e(this).data("color")),t.active="external",t._change()}).on("keydown",".iris-palette",function(t){if(t.keyCode!==13&&t.keyCode!==32)return!0;t.stopPropagation(),e(this).click()})},_squareDrag:function(e,t){var n=this,r=n.options.controls,i=n._squareDimensions(),s=Math.round((i.h-t.position.top)/i.h*n._scale[r.vert]),o=n._scale[r.horiz]-Math.round((i.w-t.position.left)/i.w*n._scale[r.horiz]);n.color[r.horiz](o)[r.vert](s),n.active="square",n._change.apply(n,arguments)},_setOption:function(e,t){var n=this.options[e];if(e==="color"){t=""+t;var r=t.replace(/^#/,""),i=(new Color(t)).setHSpace(this.options.mode);i.error||(this.color=i,this.options.color=this.options[e]=this.color.toString(),this.active="external",this._change())}},_squareDimensions:function(e){var n=this.controls.square,r,i;return e!==t&&n.data("dimensions")?n.data("dimensions"):(i=this.controls.squareDrag,r={w:n.width(),h:n.height()},n.data("dimensions",r),r)},_isNonHueControl:function(e,t){return e==="square"&&this.options.controls.strip==="h"?!0:t==="external"||t==="h"&&e==="strip"?!1:!0},_change:function(t,n){var r=this,i=r.controls,s=r._getHSpaceColor(),o=r.color.toString(),u=["square","strip"],a=r.options.controls,f=a[r.active]||"external",l=r.hue;r.active==="strip"?u=[]:r.active!=="external"&&u.pop(),e.each(u,function(e,t){var n;if(t!==r.active)switch(t){case"strip":n=a.strip==="h"?r._scale[a.strip]-s[a.strip]:s[a.strip],i.stripSlider.slider("value",n);break;case"square":var o=r._squareDimensions(),u={left:s[a.horiz]/r._scale[a.horiz]*o.w,top:o.h-s[a.vert]/r._scale[a.vert]*o.h};r.controls.squareDrag.css(u)}}),s.h!==l&&r._isNonHueControl(r.active,f)&&r.color.h(l),r.hue=r.color.h(),r.options.color=r.color.toString(),r._inited&&r._trigger("change",{type:r.active},{color:r.color}),r.element.is(":input")&&!r.color.error&&(r.element.removeClass("iris-error"),r.element.val()!==r.color.toString()&&r.element.val(r.color.toString())),r._paint(),r._inited=!0,r.active=!1},_debounce:function(e,t,n){var r,i;return function(){var s=this,o=arguments,u=function(){r=null,n||(i=e.apply(s,o))},a=n&&!r;return clearTimeout(r),r=setTimeout(u,t),a&&(i=e.apply(s,o)),i}},show:function(){this.picker.show()},hide:function(){this.picker.hide()},toggle:function(){this.picker.toggle()}};e.widget("a8c.iris",p),e('<style id="iris-css">'+o+"</style>").appendTo("head")})(jQuery),function(e,t){var n=function(e,t){return this instanceof n?this._init(e,t):new n(e,t)};n.fn=n.prototype={_color:0,_alpha:1,error:!1,_hsl:{h:0,s:0,l:0},_hsv:{h:0,s:0,v:0},_hSpace:"hsl",_init:function(e){var n="noop";switch(typeof e){case"object":return e.a!==t&&this.a(e.a),n=e.r!==t?"fromRgb":e.l!==t?"fromHsl":e.v!==t?"fromHsv":n,this[n](e);case"string":return this.fromCSS(e);case"number":return this.fromInt(parseInt(e,10))}return this},_error:function(){return this.error=!0,this},clone:function(){var e=new n(this.toInt()),t=["_alpha","_hSpace","_hsl","_hsv","error"];for(var r=t.length-1;r>=0;r--)e[t[r]]=this[t[r]];return e},setHSpace:function(e){return this._hSpace=e==="hsv"?e:"hsl",this},noop:function(){return this},fromCSS:function(e){var t,n,r=/^(rgb|hs(l|v))a?\(/;this.error=!1,e=e.replace(/^\s+/,"").replace(/\s+$/,"").replace(/;$/,"");if(e.match(r)&&e.match(/\)$/)){n=e.replace(/(\s|%)/g,"").replace(r,"").replace(/,?\);?$/,"").split(",");if(n.length<3)return this._error();if(n.length===4){this.a(parseFloat(n.pop()));if(this.error)return this}for(var i=n.length-1;i>=0;i--){n[i]=parseInt(n[i],10);if(isNaN(n[i]))return this._error()}return e.match(/^rgb/)?this.fromRgb({r:n[0],g:n[1],b:n[2]}):e.match(/^hsv/)?this.fromHsv({h:n[0],s:n[1],v:n[2]}):this.fromHsl({h:n[0],s:n[1],l:n[2]})}return this.fromHex(e)},fromRgb:function(e,n){return typeof e!="object"||e.r===t||e.g===t||e.b===t?this._error():(this.error=!1,this.fromInt(parseInt((e.r<<16)+(e.g<<8)+e.b,10),n))},fromHex:function(e){return e=e.replace(/^#/,"").replace(/^0x/,""),e.length===3&&(e=e[0]+e[0]+e[1]+e[1]+e[2]+e[2]),this.error=!/^[0-9A-F]{6}$/i.test(e),this.fromInt(parseInt(e,16))},fromHsl:function(e){var n,r,i,s,o,u,a,f;return typeof e!="object"||e.h===t||e.s===t||e.l===t?this._error():(this._hsl=e,this._hSpace="hsl",u=e.h/360,a=e.s/100,f=e.l/100,a===0?n=r=i=f:(s=f<.5?f*(1+a):f+a-f*a,o=2*f-s,n=this.hue2rgb(o,s,u+1/3),r=this.hue2rgb(o,s,u),i=this.hue2rgb(o,s,u-1/3)),this.fromRgb({r:n*255,g:r*255,b:i*255},!0))},fromHsv:function(e){var n,r,i,s,o,u,a,f,l,c,h;if(typeof e!="object"||e.h===t||e.s===t||e.v===t)return this._error();this._hsv=e,this._hSpace="hsv",n=e.h/360,r=e.s/100,i=e.v/100,a=Math.floor(n*6),f=n*6-a,l=i*(1-r),c=i*(1-f*r),h=i*(1-(1-f)*r);switch(a%6){case 0:s=i,o=h,u=l;break;case 1:s=c,o=i,u=l;break;case 2:s=l,o=i,u=h;break;case 3:s=l,o=c,u=i;break;case 4:s=h,o=l,u=i;break;case 5:s=i,o=l,u=c}return this.fromRgb({r:s*255,g:o*255,b:u*255},!0)},fromInt:function(e,n){return this._color=parseInt(e,10),isNaN(this._color)&&(this._color=0),this._color>16777215?this._color=16777215:this._color<0&&(this._color=0),n===t&&(this._hsv.h=this._hsv.s=this._hsl.h=this._hsl.s=0),this},hue2rgb:function(e,t,n){return n<0&&(n+=1),n>1&&(n-=1),n<1/6?e+(t-e)*6*n:n<.5?t:n<2/3?e+(t-e)*(2/3-n)*6:e},toString:function(){var e=parseInt(this._color,10).toString(16);if(this.error)return"";if(e.length<6)for(var t=6-e.length-1;t>=0;t--)e="0"+e;return"#"+e},toCSS:function(e,t){e=e||"hex",t=parseFloat(t||this._alpha);switch(e){case"rgb":case"rgba":var n=this.toRgb();return t<1?"rgba( "+n.r+", "+n.g+", "+n.b+", "+t+" )":"rgb( "+n.r+", "+n.g+", "+n.b+" )";case"hsl":case"hsla":var r=this.toHsl();return t<1?"hsla( "+r.h+", "+r.s+"%, "+r.l+"%, "+t+" )":"hsl( "+r.h+", "+r.s+"%, "+r.l+"% )";default:return this.toString()}},toRgb:function(){return{r:255&this._color>>16,g:255&this._color>>8,b:255&this._color}},toHsl:function(){var e=this.toRgb(),t=e.r/255,n=e.g/255,r=e.b/255,i=Math.max(t,n,r),s=Math.min(t,n,r),o,u,a=(i+s)/2;if(i===s)o=u=0;else{var f=i-s;u=a>.5?f/(2-i-s):f/(i+s);switch(i){case t:o=(n-r)/f+(n<r?6:0);break;case n:o=(r-t)/f+2;break;case r:o=(t-n)/f+4}o/=6}return o=Math.round(o*360),o===0&&this._hsl.h!==o&&(o=this._hsl.h),u=Math.round(u*100),u===0&&this._hsl.s&&(u=this._hsl.s),{h:o,s:u,l:Math.round(a*100)}},toHsv:function(){var e=this.toRgb(),t=e.r/255,n=e.g/255,r=e.b/255,i=Math.max(t,n,r),s=Math.min(t,n,r),o,u,a=i,f=i-s;u=i===0?0:f/i;if(i===s)o=u=0;else{switch(i){case t:o=(n-r)/f+(n<r?6:0);break;case n:o=(r-t)/f+2;break;case r:o=(t-n)/f+4}o/=6}return o=Math.round(o*360),o===0&&this._hsv.h!==o&&(o=this._hsv.h),u=Math.round(u*100),u===0&&this._hsv.s&&(u=this._hsv.s),{h:o,s:u,v:Math.round(a*100)}},toInt:function(){return this._color},toIEOctoHex:function(){var e=this.toString(),t=parseInt(255*this._alpha,10).toString(16);return t.length===1&&(t="0"+t),"#"+t+e.replace(/^#/,"")},toLuminosity:function(){var e=this.toRgb();return.2126*Math.pow(e.r/255,2.2)+.7152*Math.pow(e.g/255,2.2)+.0722*Math.pow(e.b/255,2.2)},getDistanceLuminosityFrom:function(e){if(e instanceof n){var t=this.toLuminosity(),r=e.toLuminosity();return t>r?(t+.05)/(r+.05):(r+.05)/(t+.05)}throw"getDistanceLuminosityFrom requires a Color object"},getMaxContrastColor:function(){var e=this.toLuminosity(),t=e>=.5?"000000":"ffffff";return new n(t)},getGrayscaleContrastingColor:function(e){if(!e)return this.getMaxContrastColor();var t=e<5?5:e,n=this.getMaxContrastColor();e=n.getDistanceLuminosityFrom(this);if(e<=t)return n;var r=0===n.toInt()?1:-1;while(e>t)n=n.incrementLightness(r),e=n.getDistanceLuminosityFrom(this);return n},getReadableContrastingColor:function(e,r){if(!e instanceof n)return this;var i=r===t?5:r,s=e.getDistanceLuminosityFrom(this),o=e.getMaxContrastColor(),u=o.getDistanceLuminosityFrom(e);if(u<=i)return o;if(s>=i)return this;var a=0===o.toInt()?-1:1;while(s<i){this.incrementLightness(a),s=this.getDistanceLuminosityFrom(e);if(this._color===0||this._color===16777215)break}return this},a:function(e){if(e===t)return this._alpha;var n=parseFloat(e);return isNaN(n)?this._error():(this._alpha=n,this)},darken:function(e){return e=e||5,this.l(-e,!0)},lighten:function(e){return e=e||5,this.l(e,!0)},saturate:function(e){return e=e||15,this.s(e,!0)},desaturate:function(e){return e=e||15,this.s(-e,!0)},toGrayscale:function(){return this.setHSpace("hsl").s(0)},getComplement:function(){return this.h(180,!0)},getSplitComplement:function(e){e=e||1;var t=180+e*30;return this.h(t,!0)},getAnalog:function(e){e=e||1;var t=e*30;return this.h(t,!0)},getTetrad:function(e){e=e||1;var t=e*60;return this.h(t,!0)},getTriad:function(e){e=e||1;var t=e*120;return this.h(t,!0)},_partial:function(e){var n=r[e];return function(r,i){var s=this._spaceFunc("to",n.space);return r===t?s[e]:(i===!0&&(r=s[e]+r),n.mod&&(r%=n.mod),n.range&&(r=r<n.range[0]?n.range[0]:r>n.range[1]?n.range[1]:r),s[e]=r,this._spaceFunc("from",n.space,s))}},_spaceFunc:function(e,t,n){var r=t||this._hSpace,i=e+r.charAt(0).toUpperCase()+r.substr(1);return this[i](n)}};var r={h:{mod:360},s:{range:[0,100]},l:{space:"hsl",range:[0,100]},v:{space:"hsv",range:[0,100]},r:{space:"rgb",range:[0,255]},g:{space:"rgb",range:[0,255]},b:{space:"rgb",range:[0,255]}};for(var i in r)r.hasOwnProperty(i)&&(n.fn[i]=n.fn._partial(i));e.Color=n}(typeof exports=="object"&&exports||this);
\ No newline at end of file
--- a/web/wp-admin/js/link.dev.js	Wed Dec 19 12:35:13 2012 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,67 +0,0 @@
-jQuery(document).ready( function($) {
-
-	var newCat, noSyncChecks = false, syncChecks, catAddAfter;
-
-	$('#link_name').focus();
-	// postboxes
-	postboxes.add_postbox_toggles('link');
-
-	// category tabs
-	$('#category-tabs a').click(function(){
-		var t = $(this).attr('href');
-		$(this).parent().addClass('tabs').siblings('li').removeClass('tabs');
-		$('.tabs-panel').hide();
-		$(t).show();
-		if ( '#categories-all' == t )
-			deleteUserSetting('cats');
-		else
-			setUserSetting('cats','pop');
-		return false;
-	});
-	if ( getUserSetting('cats') )
-		$('#category-tabs a[href="#categories-pop"]').click();
-
-	// Ajax Cat
-	newCat = $('#newcat').one( 'focus', function() { $(this).val( '' ).removeClass( 'form-input-tip' ) } );
-	$('#link-category-add-submit').click( function() { newCat.focus(); } );
-	syncChecks = function() {
-		if ( noSyncChecks )
-			return;
-		noSyncChecks = true;
-		var th = $(this), c = th.is(':checked'), id = th.val().toString();
-		$('#in-link-category-' + id + ', #in-popular-category-' + id).prop( 'checked', c );
-		noSyncChecks = false;
-	};
-
-	catAddAfter = function( r, s ) {
-		$(s.what + ' response_data', r).each( function() {
-			var t = $($(this).text());
-			t.find( 'label' ).each( function() {
-				var th = $(this), val = th.find('input').val(), id = th.find('input')[0].id, name = $.trim( th.text() ), o;
-				$('#' + id).change( syncChecks );
-				o = $( '<option value="' +  parseInt( val, 10 ) + '"></option>' ).text( name );
-			} );
-		} );
-	};
-
-	$('#categorychecklist').wpList( {
-		alt: '',
-		what: 'link-category',
-		response: 'category-ajax-response',
-		addAfter: catAddAfter
-	} );
-
-	$('a[href="#categories-all"]').click(function(){deleteUserSetting('cats');});
-	$('a[href="#categories-pop"]').click(function(){setUserSetting('cats','pop');});
-	if ( 'pop' == getUserSetting('cats') )
-		$('a[href="#categories-pop"]').click();
-
-	$('#category-add-toggle').click( function() {
-		$(this).parents('div:first').toggleClass( 'wp-hidden-children' );
-		$('#category-tabs a[href="#categories-all"]').click();
-		$('#newcategory').focus();
-		return false;
-	} );
-
-	$('.categorychecklist :checkbox').change( syncChecks ).filter( ':checked' ).change();
-});
--- a/web/wp-admin/js/link.js	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-admin/js/link.js	Wed Dec 19 17:46:52 2012 -0800
@@ -1,1 +1,67 @@
-jQuery(document).ready(function(c){var b,a=false,d,e;c("#link_name").focus();postboxes.add_postbox_toggles("link");c("#category-tabs a").click(function(){var f=c(this).attr("href");c(this).parent().addClass("tabs").siblings("li").removeClass("tabs");c(".tabs-panel").hide();c(f).show();if("#categories-all"==f){deleteUserSetting("cats")}else{setUserSetting("cats","pop")}return false});if(getUserSetting("cats")){c('#category-tabs a[href="#categories-pop"]').click()}b=c("#newcat").one("focus",function(){c(this).val("").removeClass("form-input-tip")});c("#link-category-add-submit").click(function(){b.focus()});d=function(){if(a){return}a=true;var f=c(this),h=f.is(":checked"),g=f.val().toString();c("#in-link-category-"+g+", #in-popular-category-"+g).prop("checked",h);a=false};e=function(g,f){c(f.what+" response_data",g).each(function(){var h=c(c(this).text());h.find("label").each(function(){var j=c(this),l=j.find("input").val(),m=j.find("input")[0].id,i=c.trim(j.text()),k;c("#"+m).change(d);k=c('<option value="'+parseInt(l,10)+'"></option>').text(i)})})};c("#categorychecklist").wpList({alt:"",what:"link-category",response:"category-ajax-response",addAfter:e});c('a[href="#categories-all"]').click(function(){deleteUserSetting("cats")});c('a[href="#categories-pop"]').click(function(){setUserSetting("cats","pop")});if("pop"==getUserSetting("cats")){c('a[href="#categories-pop"]').click()}c("#category-add-toggle").click(function(){c(this).parents("div:first").toggleClass("wp-hidden-children");c('#category-tabs a[href="#categories-all"]').click();c("#newcategory").focus();return false});c(".categorychecklist :checkbox").change(d).filter(":checked").change()});
\ No newline at end of file
+jQuery(document).ready( function($) {
+
+	var newCat, noSyncChecks = false, syncChecks, catAddAfter;
+
+	$('#link_name').focus();
+	// postboxes
+	postboxes.add_postbox_toggles('link');
+
+	// category tabs
+	$('#category-tabs a').click(function(){
+		var t = $(this).attr('href');
+		$(this).parent().addClass('tabs').siblings('li').removeClass('tabs');
+		$('.tabs-panel').hide();
+		$(t).show();
+		if ( '#categories-all' == t )
+			deleteUserSetting('cats');
+		else
+			setUserSetting('cats','pop');
+		return false;
+	});
+	if ( getUserSetting('cats') )
+		$('#category-tabs a[href="#categories-pop"]').click();
+
+	// Ajax Cat
+	newCat = $('#newcat').one( 'focus', function() { $(this).val( '' ).removeClass( 'form-input-tip' ) } );
+	$('#link-category-add-submit').click( function() { newCat.focus(); } );
+	syncChecks = function() {
+		if ( noSyncChecks )
+			return;
+		noSyncChecks = true;
+		var th = $(this), c = th.is(':checked'), id = th.val().toString();
+		$('#in-link-category-' + id + ', #in-popular-category-' + id).prop( 'checked', c );
+		noSyncChecks = false;
+	};
+
+	catAddAfter = function( r, s ) {
+		$(s.what + ' response_data', r).each( function() {
+			var t = $($(this).text());
+			t.find( 'label' ).each( function() {
+				var th = $(this), val = th.find('input').val(), id = th.find('input')[0].id, name = $.trim( th.text() ), o;
+				$('#' + id).change( syncChecks );
+				o = $( '<option value="' +  parseInt( val, 10 ) + '"></option>' ).text( name );
+			} );
+		} );
+	};
+
+	$('#categorychecklist').wpList( {
+		alt: '',
+		what: 'link-category',
+		response: 'category-ajax-response',
+		addAfter: catAddAfter
+	} );
+
+	$('a[href="#categories-all"]').click(function(){deleteUserSetting('cats');});
+	$('a[href="#categories-pop"]').click(function(){setUserSetting('cats','pop');});
+	if ( 'pop' == getUserSetting('cats') )
+		$('a[href="#categories-pop"]').click();
+
+	$('#category-add-toggle').click( function() {
+		$(this).parents('div:first').toggleClass( 'wp-hidden-children' );
+		$('#category-tabs a[href="#categories-all"]').click();
+		$('#newcategory').focus();
+		return false;
+	} );
+
+	$('.categorychecklist :checkbox').change( syncChecks ).filter( ':checked' ).change();
+});
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-admin/js/link.min.js	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,1 @@
+jQuery(document).ready(function(c){var b,a=false,d,e;c("#link_name").focus();postboxes.add_postbox_toggles("link");c("#category-tabs a").click(function(){var f=c(this).attr("href");c(this).parent().addClass("tabs").siblings("li").removeClass("tabs");c(".tabs-panel").hide();c(f).show();if("#categories-all"==f){deleteUserSetting("cats")}else{setUserSetting("cats","pop")}return false});if(getUserSetting("cats")){c('#category-tabs a[href="#categories-pop"]').click()}b=c("#newcat").one("focus",function(){c(this).val("").removeClass("form-input-tip")});c("#link-category-add-submit").click(function(){b.focus()});d=function(){if(a){return}a=true;var f=c(this),h=f.is(":checked"),g=f.val().toString();c("#in-link-category-"+g+", #in-popular-category-"+g).prop("checked",h);a=false};e=function(g,f){c(f.what+" response_data",g).each(function(){var h=c(c(this).text());h.find("label").each(function(){var j=c(this),l=j.find("input").val(),m=j.find("input")[0].id,i=c.trim(j.text()),k;c("#"+m).change(d);k=c('<option value="'+parseInt(l,10)+'"></option>').text(i)})})};c("#categorychecklist").wpList({alt:"",what:"link-category",response:"category-ajax-response",addAfter:e});c('a[href="#categories-all"]').click(function(){deleteUserSetting("cats")});c('a[href="#categories-pop"]').click(function(){setUserSetting("cats","pop")});if("pop"==getUserSetting("cats")){c('a[href="#categories-pop"]').click()}c("#category-add-toggle").click(function(){c(this).parents("div:first").toggleClass("wp-hidden-children");c('#category-tabs a[href="#categories-all"]').click();c("#newcategory").focus();return false});c(".categorychecklist :checkbox").change(d).filter(":checked").change()});
\ No newline at end of file
--- a/web/wp-admin/js/media-gallery.dev.js	Wed Dec 19 12:35:13 2012 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,25 +0,0 @@
-jQuery(function($){
-	$( 'body' ).bind( 'click.wp-gallery', function(e){
-		var target = $( e.target ), id, img_size;
-
-		if ( target.hasClass( 'wp-set-header' ) ) {
-			( window.dialogArguments || opener || parent || top ).location.href = target.data( 'location' );
-			e.preventDefault();
-		} else if ( target.hasClass( 'wp-set-background' ) ) {
-			id = target.data( 'attachment-id' );
-			img_size = $( 'input[name="attachments[' + id + '][image-size]"]:checked').val();
-
-			jQuery.post(ajaxurl, {
-				action: 'set-background-image',
-				attachment_id: id,
-				size: img_size
-			}, function(){
-				var win = window.dialogArguments || opener || parent || top;
-				win.tb_remove();
-				win.location.reload();
-			});
-
-			e.preventDefault();
-		}
-	});
-});
--- a/web/wp-admin/js/media-gallery.js	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-admin/js/media-gallery.js	Wed Dec 19 17:46:52 2012 -0800
@@ -1,1 +1,25 @@
-jQuery(function(a){a("body").bind("click.wp-gallery",function(d){var c=a(d.target),f,b;if(c.hasClass("wp-set-header")){(window.dialogArguments||opener||parent||top).location.href=c.data("location");d.preventDefault()}else{if(c.hasClass("wp-set-background")){f=c.data("attachment-id");b=a('input[name="attachments['+f+'][image-size]"]:checked').val();jQuery.post(ajaxurl,{action:"set-background-image",attachment_id:f,size:b},function(){var e=window.dialogArguments||opener||parent||top;e.tb_remove();e.location.reload()});d.preventDefault()}}})});
\ No newline at end of file
+jQuery(function($){
+	$( 'body' ).bind( 'click.wp-gallery', function(e){
+		var target = $( e.target ), id, img_size;
+
+		if ( target.hasClass( 'wp-set-header' ) ) {
+			( window.dialogArguments || opener || parent || top ).location.href = target.data( 'location' );
+			e.preventDefault();
+		} else if ( target.hasClass( 'wp-set-background' ) ) {
+			id = target.data( 'attachment-id' );
+			img_size = $( 'input[name="attachments[' + id + '][image-size]"]:checked').val();
+
+			jQuery.post(ajaxurl, {
+				action: 'set-background-image',
+				attachment_id: id,
+				size: img_size
+			}, function(){
+				var win = window.dialogArguments || opener || parent || top;
+				win.tb_remove();
+				win.location.reload();
+			});
+
+			e.preventDefault();
+		}
+	});
+});
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-admin/js/media-gallery.min.js	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,1 @@
+jQuery(function(a){a("body").bind("click.wp-gallery",function(d){var c=a(d.target),f,b;if(c.hasClass("wp-set-header")){(window.dialogArguments||opener||parent||top).location.href=c.data("location");d.preventDefault()}else{if(c.hasClass("wp-set-background")){f=c.data("attachment-id");b=a('input[name="attachments['+f+'][image-size]"]:checked').val();jQuery.post(ajaxurl,{action:"set-background-image",attachment_id:f,size:b},function(){var e=window.dialogArguments||opener||parent||top;e.tb_remove();e.location.reload()});d.preventDefault()}}})});
\ No newline at end of file
--- a/web/wp-admin/js/media-upload.dev.js	Wed Dec 19 12:35:13 2012 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,88 +0,0 @@
-// send html to the post editor
-
-var wpActiveEditor;
-
-function send_to_editor(h) {
-	var ed, mce = typeof(tinymce) != 'undefined', qt = typeof(QTags) != 'undefined';
-
-	if ( !wpActiveEditor ) {
-		if ( mce && tinymce.activeEditor ) {
-			ed = tinymce.activeEditor;
-			wpActiveEditor = ed.id;
-		} else if ( !qt ) {
-			return false;
-		}
-	} else if ( mce ) {
-		if ( tinymce.activeEditor && (tinymce.activeEditor.id == 'mce_fullscreen' || tinymce.activeEditor.id == 'wp_mce_fullscreen') )
-			ed = tinymce.activeEditor;
-		else
-			ed = tinymce.get(wpActiveEditor);
-	}
-
-	if ( ed && !ed.isHidden() ) {
-		// restore caret position on IE
-		if ( tinymce.isIE && ed.windowManager.insertimagebookmark )
-			ed.selection.moveToBookmark(ed.windowManager.insertimagebookmark);
-
-		if ( h.indexOf('[caption') === 0 ) {
-			if ( ed.wpSetImgCaption )
-				h = ed.wpSetImgCaption(h);
-		} else if ( h.indexOf('[gallery') === 0 ) {
-			if ( ed.plugins.wpgallery )
-				h = ed.plugins.wpgallery._do_gallery(h);
-		} else if ( h.indexOf('[embed') === 0 ) {
-			if ( ed.plugins.wordpress )
-				h = ed.plugins.wordpress._setEmbed(h);
-		}
-
-		ed.execCommand('mceInsertContent', false, h);
-	} else if ( qt ) {
-		QTags.insertContent(h);
-	} else {
-		document.getElementById(wpActiveEditor).value += h;
-	}
-
-	try{tb_remove();}catch(e){};
-}
-
-// thickbox settings
-var tb_position;
-(function($) {
-	tb_position = function() {
-		var tbWindow = $('#TB_window'), width = $(window).width(), H = $(window).height(), W = ( 720 < width ) ? 720 : width, adminbar_height = 0;
-
-		if ( $('body.admin-bar').length )
-			adminbar_height = 28;
-
-		if ( tbWindow.size() ) {
-			tbWindow.width( W - 50 ).height( H - 45 - adminbar_height );
-			$('#TB_iframeContent').width( W - 50 ).height( H - 75 - adminbar_height );
-			tbWindow.css({'margin-left': '-' + parseInt((( W - 50 ) / 2),10) + 'px'});
-			if ( typeof document.body.style.maxWidth != 'undefined' )
-				tbWindow.css({'top': 20 + adminbar_height + 'px','margin-top':'0'});
-		};
-
-		return $('a.thickbox').each( function() {
-			var href = $(this).attr('href');
-			if ( ! href ) return;
-			href = href.replace(/&width=[0-9]+/g, '');
-			href = href.replace(/&height=[0-9]+/g, '');
-			$(this).attr( 'href', href + '&width=' + ( W - 80 ) + '&height=' + ( H - 85 - adminbar_height ) );
-		});
-	};
-
-	$(window).resize(function(){ tb_position(); });
-
-	// store caret position in IE
-	$(document).ready(function($){
-		$('a.thickbox').click(function(){
-			var ed;
-
-			if ( typeof(tinymce) != 'undefined' && tinymce.isIE && ( ed = tinymce.get(wpActiveEditor) ) && !ed.isHidden() ) {
-				ed.focus();
-				ed.windowManager.insertimagebookmark = ed.selection.getBookmark();
-			}
-		});
-	});
-
-})(jQuery);
--- a/web/wp-admin/js/media-upload.js	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-admin/js/media-upload.js	Wed Dec 19 17:46:52 2012 -0800
@@ -1,1 +1,88 @@
-var wpActiveEditor;function send_to_editor(c){var b,a=typeof(tinymce)!="undefined",f=typeof(QTags)!="undefined";if(!wpActiveEditor){if(a&&tinymce.activeEditor){b=tinymce.activeEditor;wpActiveEditor=b.id}else{if(!f){return false}}}else{if(a){if(tinymce.activeEditor&&(tinymce.activeEditor.id=="mce_fullscreen"||tinymce.activeEditor.id=="wp_mce_fullscreen")){b=tinymce.activeEditor}else{b=tinymce.get(wpActiveEditor)}}}if(b&&!b.isHidden()){if(tinymce.isIE&&b.windowManager.insertimagebookmark){b.selection.moveToBookmark(b.windowManager.insertimagebookmark)}if(c.indexOf("[caption")===0){if(b.wpSetImgCaption){c=b.wpSetImgCaption(c)}}else{if(c.indexOf("[gallery")===0){if(b.plugins.wpgallery){c=b.plugins.wpgallery._do_gallery(c)}}else{if(c.indexOf("[embed")===0){if(b.plugins.wordpress){c=b.plugins.wordpress._setEmbed(c)}}}}b.execCommand("mceInsertContent",false,c)}else{if(f){QTags.insertContent(c)}else{document.getElementById(wpActiveEditor).value+=c}}try{tb_remove()}catch(d){}}var tb_position;(function(a){tb_position=function(){var f=a("#TB_window"),e=a(window).width(),d=a(window).height(),c=(720<e)?720:e,b=0;if(a("body.admin-bar").length){b=28}if(f.size()){f.width(c-50).height(d-45-b);a("#TB_iframeContent").width(c-50).height(d-75-b);f.css({"margin-left":"-"+parseInt(((c-50)/2),10)+"px"});if(typeof document.body.style.maxWidth!="undefined"){f.css({top:20+b+"px","margin-top":"0"})}}return a("a.thickbox").each(function(){var g=a(this).attr("href");if(!g){return}g=g.replace(/&width=[0-9]+/g,"");g=g.replace(/&height=[0-9]+/g,"");a(this).attr("href",g+"&width="+(c-80)+"&height="+(d-85-b))})};a(window).resize(function(){tb_position()});a(document).ready(function(b){b("a.thickbox").click(function(){var c;if(typeof(tinymce)!="undefined"&&tinymce.isIE&&(c=tinymce.get(wpActiveEditor))&&!c.isHidden()){c.focus();c.windowManager.insertimagebookmark=c.selection.getBookmark()}})})})(jQuery);
\ No newline at end of file
+// send html to the post editor
+
+var wpActiveEditor;
+
+function send_to_editor(h) {
+	var ed, mce = typeof(tinymce) != 'undefined', qt = typeof(QTags) != 'undefined';
+
+	if ( !wpActiveEditor ) {
+		if ( mce && tinymce.activeEditor ) {
+			ed = tinymce.activeEditor;
+			wpActiveEditor = ed.id;
+		} else if ( !qt ) {
+			return false;
+		}
+	} else if ( mce ) {
+		if ( tinymce.activeEditor && (tinymce.activeEditor.id == 'mce_fullscreen' || tinymce.activeEditor.id == 'wp_mce_fullscreen') )
+			ed = tinymce.activeEditor;
+		else
+			ed = tinymce.get(wpActiveEditor);
+	}
+
+	if ( ed && !ed.isHidden() ) {
+		// restore caret position on IE
+		if ( tinymce.isIE && ed.windowManager.insertimagebookmark )
+			ed.selection.moveToBookmark(ed.windowManager.insertimagebookmark);
+
+		if ( h.indexOf('[caption') !== -1 ) {
+			if ( ed.wpSetImgCaption )
+				h = ed.wpSetImgCaption(h);
+		} else if ( h.indexOf('[gallery') !== -1 ) {
+			if ( ed.plugins.wpgallery )
+				h = ed.plugins.wpgallery._do_gallery(h);
+		} else if ( h.indexOf('[embed') === 0 ) {
+			if ( ed.plugins.wordpress )
+				h = ed.plugins.wordpress._setEmbed(h);
+		}
+
+		ed.execCommand('mceInsertContent', false, h);
+	} else if ( qt ) {
+		QTags.insertContent(h);
+	} else {
+		document.getElementById(wpActiveEditor).value += h;
+	}
+
+	try{tb_remove();}catch(e){};
+}
+
+// thickbox settings
+var tb_position;
+(function($) {
+	tb_position = function() {
+		var tbWindow = $('#TB_window'), width = $(window).width(), H = $(window).height(), W = ( 720 < width ) ? 720 : width, adminbar_height = 0;
+
+		if ( $('body.admin-bar').length )
+			adminbar_height = 28;
+
+		if ( tbWindow.size() ) {
+			tbWindow.width( W - 50 ).height( H - 45 - adminbar_height );
+			$('#TB_iframeContent').width( W - 50 ).height( H - 75 - adminbar_height );
+			tbWindow.css({'margin-left': '-' + parseInt((( W - 50 ) / 2),10) + 'px'});
+			if ( typeof document.body.style.maxWidth != 'undefined' )
+				tbWindow.css({'top': 20 + adminbar_height + 'px','margin-top':'0'});
+		};
+
+		return $('a.thickbox').each( function() {
+			var href = $(this).attr('href');
+			if ( ! href ) return;
+			href = href.replace(/&width=[0-9]+/g, '');
+			href = href.replace(/&height=[0-9]+/g, '');
+			$(this).attr( 'href', href + '&width=' + ( W - 80 ) + '&height=' + ( H - 85 - adminbar_height ) );
+		});
+	};
+
+	$(window).resize(function(){ tb_position(); });
+
+	// store caret position in IE
+	$(document).ready(function($){
+		$('a.thickbox').click(function(){
+			var ed;
+
+			if ( typeof(tinymce) != 'undefined' && tinymce.isIE && ( ed = tinymce.get(wpActiveEditor) ) && !ed.isHidden() ) {
+				ed.focus();
+				ed.windowManager.insertimagebookmark = ed.selection.getBookmark();
+			}
+		});
+	});
+
+})(jQuery);
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-admin/js/media-upload.min.js	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,1 @@
+var wpActiveEditor;function send_to_editor(c){var b,a=typeof(tinymce)!="undefined",f=typeof(QTags)!="undefined";if(!wpActiveEditor){if(a&&tinymce.activeEditor){b=tinymce.activeEditor;wpActiveEditor=b.id}else{if(!f){return false}}}else{if(a){if(tinymce.activeEditor&&(tinymce.activeEditor.id=="mce_fullscreen"||tinymce.activeEditor.id=="wp_mce_fullscreen")){b=tinymce.activeEditor}else{b=tinymce.get(wpActiveEditor)}}}if(b&&!b.isHidden()){if(tinymce.isIE&&b.windowManager.insertimagebookmark){b.selection.moveToBookmark(b.windowManager.insertimagebookmark)}if(c.indexOf("[caption")!==-1){if(b.wpSetImgCaption){c=b.wpSetImgCaption(c)}}else{if(c.indexOf("[gallery")!==-1){if(b.plugins.wpgallery){c=b.plugins.wpgallery._do_gallery(c)}}else{if(c.indexOf("[embed")===0){if(b.plugins.wordpress){c=b.plugins.wordpress._setEmbed(c)}}}}b.execCommand("mceInsertContent",false,c)}else{if(f){QTags.insertContent(c)}else{document.getElementById(wpActiveEditor).value+=c}}try{tb_remove()}catch(d){}}var tb_position;(function(a){tb_position=function(){var f=a("#TB_window"),e=a(window).width(),d=a(window).height(),c=(720<e)?720:e,b=0;if(a("body.admin-bar").length){b=28}if(f.size()){f.width(c-50).height(d-45-b);a("#TB_iframeContent").width(c-50).height(d-75-b);f.css({"margin-left":"-"+parseInt(((c-50)/2),10)+"px"});if(typeof document.body.style.maxWidth!="undefined"){f.css({top:20+b+"px","margin-top":"0"})}}return a("a.thickbox").each(function(){var g=a(this).attr("href");if(!g){return}g=g.replace(/&width=[0-9]+/g,"");g=g.replace(/&height=[0-9]+/g,"");a(this).attr("href",g+"&width="+(c-80)+"&height="+(d-85-b))})};a(window).resize(function(){tb_position()});a(document).ready(function(b){b("a.thickbox").click(function(){var c;if(typeof(tinymce)!="undefined"&&tinymce.isIE&&(c=tinymce.get(wpActiveEditor))&&!c.isHidden()){c.focus();c.windowManager.insertimagebookmark=c.selection.getBookmark()}})})})(jQuery);
\ No newline at end of file
--- a/web/wp-admin/js/media.dev.js	Wed Dec 19 12:35:13 2012 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,94 +0,0 @@
-
-var findPosts;
-(function($){
-	findPosts = {
-		open : function(af_name, af_val) {
-			var st = document.documentElement.scrollTop || $(document).scrollTop();
-
-			if ( af_name && af_val ) {
-				$('#affected').attr('name', af_name).val(af_val);
-			}
-			$('#find-posts').show().draggable({
-				handle: '#find-posts-head'
-			}).css({'top':st + 50 + 'px','left':'50%','marginLeft':'-250px'});
-
-			$('#find-posts-input').focus().keyup(function(e){
-				if (e.which == 27) { findPosts.close(); } // close on Escape
-			});
-
-			return false;
-		},
-
-		close : function() {
-			$('#find-posts-response').html('');
-			$('#find-posts').draggable('destroy').hide();
-		},
-
-		send : function() {
-			var post = {
-				ps: $('#find-posts-input').val(),
-				action: 'find_posts',
-				_ajax_nonce: $('#_ajax_nonce').val(),
-				post_type: $('input[name="find-posts-what"]:checked').val()
-			};
-
-			$.ajax({
-				type : 'POST',
-				url : ajaxurl,
-				data : post,
-				success : function(x) { findPosts.show(x); },
-				error : function(r) { findPosts.error(r); }
-			});
-		},
-
-		show : function(x) {
-
-			if ( typeof(x) == 'string' ) {
-				this.error({'responseText': x});
-				return;
-			}
-
-			var r = wpAjax.parseAjaxResponse(x);
-
-			if ( r.errors ) {
-				this.error({'responseText': wpAjax.broken});
-			}
-			r = r.responses[0];
-			$('#find-posts-response').html(r.data);
-		},
-
-		error : function(r) {
-			var er = r.statusText;
-
-			if ( r.responseText ) {
-				er = r.responseText.replace( /<.[^<>]*?>/g, '' );
-			}
-			if ( er ) {
-				$('#find-posts-response').html(er);
-			}
-		}
-	};
-
-	$(document).ready(function() {
-		$('#find-posts-submit').click(function(e) {
-			if ( '' == $('#find-posts-response').html() )
-				e.preventDefault();
-		});
-		$( '#find-posts .find-box-search :input' ).keypress( function( event ) {
-			if ( 13 == event.which ) {
-				findPosts.send();
-				return false;
-			}
-		} );
-		$( '#find-posts-search' ).click( findPosts.send );
-		$( '#find-posts-close' ).click( findPosts.close );
-		$('#doaction, #doaction2').click(function(e){
-			$('select[name^="action"]').each(function(){
-				if ( $(this).val() == 'attach' ) {
-					e.preventDefault();
-					findPosts.open();
-				}
-			});
-		});
-	});
-})(jQuery);
--- a/web/wp-admin/js/media.js	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-admin/js/media.js	Wed Dec 19 17:46:52 2012 -0800
@@ -1,1 +1,124 @@
-var findPosts;(function(a){findPosts={open:function(d,c){var b=document.documentElement.scrollTop||a(document).scrollTop();if(d&&c){a("#affected").attr("name",d).val(c)}a("#find-posts").show().draggable({handle:"#find-posts-head"}).css({top:b+50+"px",left:"50%",marginLeft:"-250px"});a("#find-posts-input").focus().keyup(function(f){if(f.which==27){findPosts.close()}});return false},close:function(){a("#find-posts-response").html("");a("#find-posts").draggable("destroy").hide()},send:function(){var b={ps:a("#find-posts-input").val(),action:"find_posts",_ajax_nonce:a("#_ajax_nonce").val(),post_type:a('input[name="find-posts-what"]:checked').val()};a.ajax({type:"POST",url:ajaxurl,data:b,success:function(c){findPosts.show(c)},error:function(c){findPosts.error(c)}})},show:function(b){if(typeof(b)=="string"){this.error({responseText:b});return}var c=wpAjax.parseAjaxResponse(b);if(c.errors){this.error({responseText:wpAjax.broken})}c=c.responses[0];a("#find-posts-response").html(c.data)},error:function(b){var c=b.statusText;if(b.responseText){c=b.responseText.replace(/<.[^<>]*?>/g,"")}if(c){a("#find-posts-response").html(c)}}};a(document).ready(function(){a("#find-posts-submit").click(function(b){if(""==a("#find-posts-response").html()){b.preventDefault()}});a("#find-posts .find-box-search :input").keypress(function(b){if(13==b.which){findPosts.send();return false}});a("#find-posts-search").click(findPosts.send);a("#find-posts-close").click(findPosts.close);a("#doaction, #doaction2").click(function(b){a('select[name^="action"]').each(function(){if(a(this).val()=="attach"){b.preventDefault();findPosts.open()}})})})})(jQuery);
\ No newline at end of file
+
+var findPosts;
+(function($){
+	findPosts = {
+		open : function(af_name, af_val) {
+			var st = document.documentElement.scrollTop || $(document).scrollTop(),
+				overlay = $( '.ui-find-overlay' );
+
+			if ( overlay.length == 0 ) {
+				$( 'body' ).append( '<div class="ui-find-overlay"></div>' );
+				findPosts.overlay();
+			}
+
+			overlay.show();
+
+			if ( af_name && af_val ) {
+				$('#affected').attr('name', af_name).val(af_val);
+			}
+			$('#find-posts').show().draggable({
+				handle: '#find-posts-head'
+			}).css({'top':st + 50 + 'px','left':'50%','marginLeft':'-328px'});
+
+			$('#find-posts-input').focus().keyup(function(e){
+				if (e.which == 27) { findPosts.close(); } // close on Escape
+			});
+
+			// Pull some results up by default
+			findPosts.send();
+
+			return false;
+		},
+
+		close : function() {
+			$('#find-posts-response').html('');
+			$('#find-posts').draggable('destroy').hide();
+			$( '.ui-find-overlay' ).hide();
+		},
+
+		overlay : function() {
+			$( '.ui-find-overlay' ).css(
+				{ 'z-index': '999', 'width': $( document ).width() + 'px', 'height': $( document ).height() + 'px' }
+			).on('click', function () {
+				findPosts.close();
+			});
+		},
+
+		send : function() {
+			var post = {
+					ps: $('#find-posts-input').val(),
+					action: 'find_posts',
+					_ajax_nonce: $('#_ajax_nonce').val()
+				},
+				spinner = $( '.find-box-search .spinner' );
+
+			spinner.show();
+
+			$.ajax({
+				type : 'POST',
+				url : ajaxurl,
+				data : post,
+				success : function(x) { findPosts.show(x); spinner.hide(); },
+				error : function(r) { findPosts.error(r); spinner.hide(); }
+			});
+		},
+
+		show : function(x) {
+
+			if ( typeof(x) == 'string' ) {
+				this.error({'responseText': x});
+				return;
+			}
+
+			var r = wpAjax.parseAjaxResponse(x);
+
+			if ( r.errors ) {
+				this.error({'responseText': wpAjax.broken});
+			}
+			r = r.responses[0];
+			$('#find-posts-response').html(r.data);
+
+			// Enable whole row to be clicked
+			$( '.found-posts td' ).on( 'click', function () {
+				$( this ).parent().find( '.found-radio input' ).prop( 'checked', true );
+			});
+		},
+
+		error : function(r) {
+			var er = r.statusText;
+
+			if ( r.responseText ) {
+				er = r.responseText.replace( /<.[^<>]*?>/g, '' );
+			}
+			if ( er ) {
+				$('#find-posts-response').html(er);
+			}
+		}
+	};
+
+	$(document).ready(function() {
+		$('#find-posts-submit').click(function(e) {
+			if ( '' == $('#find-posts-response').html() )
+				e.preventDefault();
+		});
+		$( '#find-posts .find-box-search :input' ).keypress( function( event ) {
+			if ( 13 == event.which ) {
+				findPosts.send();
+				return false;
+			}
+		} );
+		$( '#find-posts-search' ).click( findPosts.send );
+		$( '#find-posts-close' ).click( findPosts.close );
+		$('#doaction, #doaction2').click(function(e){
+			$('select[name^="action"]').each(function(){
+				if ( $(this).val() == 'attach' ) {
+					e.preventDefault();
+					findPosts.open();
+				}
+			});
+		});
+	});
+	$(window).resize(function() {
+		findPosts.overlay();
+	});
+})(jQuery);
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-admin/js/media.min.js	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,1 @@
+var findPosts;(function(a){findPosts={open:function(e,d){var c=document.documentElement.scrollTop||a(document).scrollTop(),b=a(".ui-find-overlay");if(b.length==0){a("body").append('<div class="ui-find-overlay"></div>');findPosts.overlay()}b.show();if(e&&d){a("#affected").attr("name",e).val(d)}a("#find-posts").show().draggable({handle:"#find-posts-head"}).css({top:c+50+"px",left:"50%",marginLeft:"-328px"});a("#find-posts-input").focus().keyup(function(f){if(f.which==27){findPosts.close()}});findPosts.send();return false},close:function(){a("#find-posts-response").html("");a("#find-posts").draggable("destroy").hide();a(".ui-find-overlay").hide()},overlay:function(){a(".ui-find-overlay").css({"z-index":"999",width:a(document).width()+"px",height:a(document).height()+"px"}).on("click",function(){findPosts.close()})},send:function(){var b={ps:a("#find-posts-input").val(),action:"find_posts",_ajax_nonce:a("#_ajax_nonce").val()},c=a(".find-box-search .spinner");c.show();a.ajax({type:"POST",url:ajaxurl,data:b,success:function(d){findPosts.show(d);c.hide()},error:function(d){findPosts.error(d);c.hide()}})},show:function(b){if(typeof(b)=="string"){this.error({responseText:b});return}var c=wpAjax.parseAjaxResponse(b);if(c.errors){this.error({responseText:wpAjax.broken})}c=c.responses[0];a("#find-posts-response").html(c.data);a(".found-posts td").on("click",function(){a(this).parent().find(".found-radio input").prop("checked",true)})},error:function(b){var c=b.statusText;if(b.responseText){c=b.responseText.replace(/<.[^<>]*?>/g,"")}if(c){a("#find-posts-response").html(c)}}};a(document).ready(function(){a("#find-posts-submit").click(function(b){if(""==a("#find-posts-response").html()){b.preventDefault()}});a("#find-posts .find-box-search :input").keypress(function(b){if(13==b.which){findPosts.send();return false}});a("#find-posts-search").click(findPosts.send);a("#find-posts-close").click(findPosts.close);a("#doaction, #doaction2").click(function(b){a('select[name^="action"]').each(function(){if(a(this).val()=="attach"){b.preventDefault();findPosts.open()}})})});a(window).resize(function(){findPosts.overlay()})})(jQuery);
\ No newline at end of file
--- a/web/wp-admin/js/nav-menu.dev.js	Wed Dec 19 12:35:13 2012 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,965 +0,0 @@
-/**
- * WordPress Administration Navigation Menu
- * Interface JS functions
- *
- * @version 2.0.0
- *
- * @package WordPress
- * @subpackage Administration
- */
-
-var wpNavMenu;
-
-(function($) {
-
-	var api = wpNavMenu = {
-
-		options : {
-			menuItemDepthPerLevel : 30, // Do not use directly. Use depthToPx and pxToDepth instead.
-			globalMaxDepth : 11
-		},
-
-		menuList : undefined,	// Set in init.
-		targetList : undefined, // Set in init.
-		menusChanged : false,
-		isRTL: !! ( 'undefined' != typeof isRtl && isRtl ),
-		negateIfRTL: ( 'undefined' != typeof isRtl && isRtl ) ? -1 : 1,
-
-		// Functions that run on init.
-		init : function() {
-			api.menuList = $('#menu-to-edit');
-			api.targetList = api.menuList;
-
-			this.jQueryExtensions();
-
-			this.attachMenuEditListeners();
-
-			this.setupInputWithDefaultTitle();
-			this.attachQuickSearchListeners();
-			this.attachThemeLocationsListeners();
-
-			this.attachTabsPanelListeners();
-
-			this.attachUnsavedChangesListener();
-
-			if( api.menuList.length ) // If no menu, we're in the + tab.
-				this.initSortables();
-
-			this.initToggles();
-
-			this.initTabManager();
-		},
-
-		jQueryExtensions : function() {
-			// jQuery extensions
-			$.fn.extend({
-				menuItemDepth : function() {
-					var margin = api.isRTL ? this.eq(0).css('margin-right') : this.eq(0).css('margin-left');
-					return api.pxToDepth( margin && -1 != margin.indexOf('px') ? margin.slice(0, -2) : 0 );
-				},
-				updateDepthClass : function(current, prev) {
-					return this.each(function(){
-						var t = $(this);
-						prev = prev || t.menuItemDepth();
-						$(this).removeClass('menu-item-depth-'+ prev )
-							.addClass('menu-item-depth-'+ current );
-					});
-				},
-				shiftDepthClass : function(change) {
-					return this.each(function(){
-						var t = $(this),
-							depth = t.menuItemDepth();
-						$(this).removeClass('menu-item-depth-'+ depth )
-							.addClass('menu-item-depth-'+ (depth + change) );
-					});
-				},
-				childMenuItems : function() {
-					var result = $();
-					this.each(function(){
-						var t = $(this), depth = t.menuItemDepth(), next = t.next();
-						while( next.length && next.menuItemDepth() > depth ) {
-							result = result.add( next );
-							next = next.next();
-						}
-					});
-					return result;
-				},
-				updateParentMenuItemDBId : function() {
-					return this.each(function(){
-						var item = $(this),
-							input = item.find('.menu-item-data-parent-id'),
-							depth = item.menuItemDepth(),
-							parent = item.prev();
-
-						if( depth == 0 ) { // Item is on the top level, has no parent
-							input.val(0);
-						} else { // Find the parent item, and retrieve its object id.
-							while( ! parent[0] || ! parent[0].className || -1 == parent[0].className.indexOf('menu-item') || ( parent.menuItemDepth() != depth - 1 ) )
-								parent = parent.prev();
-							input.val( parent.find('.menu-item-data-db-id').val() );
-						}
-					});
-				},
-				hideAdvancedMenuItemFields : function() {
-					return this.each(function(){
-						var that = $(this);
-						$('.hide-column-tog').not(':checked').each(function(){
-							that.find('.field-' + $(this).val() ).addClass('hidden-field');
-						});
-					});
-				},
-				/**
-				 * Adds selected menu items to the menu.
-				 *
-				 * @param jQuery metabox The metabox jQuery object.
-				 */
-				addSelectedToMenu : function(processMethod) {
-					if ( 0 == $('#menu-to-edit').length ) {
-						return false;
-					}
-
-					return this.each(function() {
-						var t = $(this), menuItems = {},
-							checkboxes = t.find('.tabs-panel-active .categorychecklist li input:checked'),
-							re = new RegExp('menu-item\\[(\[^\\]\]*)');
-
-						processMethod = processMethod || api.addMenuItemToBottom;
-
-						// If no items are checked, bail.
-						if ( !checkboxes.length )
-							return false;
-
-						// Show the ajax spinner
-						t.find('img.waiting').show();
-
-						// Retrieve menu item data
-						$(checkboxes).each(function(){
-							var t = $(this),
-								listItemDBIDMatch = re.exec( t.attr('name') ),
-								listItemDBID = 'undefined' == typeof listItemDBIDMatch[1] ? 0 : parseInt(listItemDBIDMatch[1], 10);
-							if ( this.className && -1 != this.className.indexOf('add-to-top') )
-								processMethod = api.addMenuItemToTop;
-							menuItems[listItemDBID] = t.closest('li').getItemData( 'add-menu-item', listItemDBID );
-						});
-
-						// Add the items
-						api.addItemToMenu(menuItems, processMethod, function(){
-							// Deselect the items and hide the ajax spinner
-							checkboxes.removeAttr('checked');
-							t.find('img.waiting').hide();
-						});
-					});
-				},
-				getItemData : function( itemType, id ) {
-					itemType = itemType || 'menu-item';
-
-					var itemData = {}, i,
-					fields = [
-						'menu-item-db-id',
-						'menu-item-object-id',
-						'menu-item-object',
-						'menu-item-parent-id',
-						'menu-item-position',
-						'menu-item-type',
-						'menu-item-title',
-						'menu-item-url',
-						'menu-item-description',
-						'menu-item-attr-title',
-						'menu-item-target',
-						'menu-item-classes',
-						'menu-item-xfn'
-					];
-
-					if( !id && itemType == 'menu-item' ) {
-						id = this.find('.menu-item-data-db-id').val();
-					}
-
-					if( !id ) return itemData;
-
-					this.find('input').each(function() {
-						var field;
-						i = fields.length;
-						while ( i-- ) {
-							if( itemType == 'menu-item' )
-								field = fields[i] + '[' + id + ']';
-							else if( itemType == 'add-menu-item' )
-								field = 'menu-item[' + id + '][' + fields[i] + ']';
-
-							if (
-								this.name &&
-								field == this.name
-							) {
-								itemData[fields[i]] = this.value;
-							}
-						}
-					});
-
-					return itemData;
-				},
-				setItemData : function( itemData, itemType, id ) { // Can take a type, such as 'menu-item', or an id.
-					itemType = itemType || 'menu-item';
-
-					if( !id && itemType == 'menu-item' ) {
-						id = $('.menu-item-data-db-id', this).val();
-					}
-
-					if( !id ) return this;
-
-					this.find('input').each(function() {
-						var t = $(this), field;
-						$.each( itemData, function( attr, val ) {
-							if( itemType == 'menu-item' )
-								field = attr + '[' + id + ']';
-							else if( itemType == 'add-menu-item' )
-								field = 'menu-item[' + id + '][' + attr + ']';
-
-							if ( field == t.attr('name') ) {
-								t.val( val );
-							}
-						});
-					});
-					return this;
-				}
-			});
-		},
-
-		initToggles : function() {
-			// init postboxes
-			postboxes.add_postbox_toggles('nav-menus');
-
-			// adjust columns functions for menus UI
-			columns.useCheckboxesForHidden();
-			columns.checked = function(field) {
-				$('.field-' + field).removeClass('hidden-field');
-			}
-			columns.unchecked = function(field) {
-				$('.field-' + field).addClass('hidden-field');
-			}
-			// hide fields
-			api.menuList.hideAdvancedMenuItemFields();
-		},
-
-		initSortables : function() {
-			var currentDepth = 0, originalDepth, minDepth, maxDepth,
-				prev, next, prevBottom, nextThreshold, helperHeight, transport,
-				menuEdge = api.menuList.offset().left,
-				body = $('body'), maxChildDepth,
-				menuMaxDepth = initialMenuMaxDepth();
-
-			// Use the right edge if RTL.
-			menuEdge += api.isRTL ? api.menuList.width() : 0;
-
-			api.menuList.sortable({
-				handle: '.menu-item-handle',
-				placeholder: 'sortable-placeholder',
-				start: function(e, ui) {
-					var height, width, parent, children, tempHolder;
-
-					// handle placement for rtl orientation
-					if ( api.isRTL )
-						ui.item[0].style.right = 'auto';
-
-					transport = ui.item.children('.menu-item-transport');
-
-					// Set depths. currentDepth must be set before children are located.
-					originalDepth = ui.item.menuItemDepth();
-					updateCurrentDepth(ui, originalDepth);
-
-					// Attach child elements to parent
-					// Skip the placeholder
-					parent = ( ui.item.next()[0] == ui.placeholder[0] ) ? ui.item.next() : ui.item;
-					children = parent.childMenuItems();
-					transport.append( children );
-
-					// Update the height of the placeholder to match the moving item.
-					height = transport.outerHeight();
-					// If there are children, account for distance between top of children and parent
-					height += ( height > 0 ) ? (ui.placeholder.css('margin-top').slice(0, -2) * 1) : 0;
-					height += ui.helper.outerHeight();
-					helperHeight = height;
-					height -= 2; // Subtract 2 for borders
-					ui.placeholder.height(height);
-
-					// Update the width of the placeholder to match the moving item.
-					maxChildDepth = originalDepth;
-					children.each(function(){
-						var depth = $(this).menuItemDepth();
-						maxChildDepth = (depth > maxChildDepth) ? depth : maxChildDepth;
-					});
-					width = ui.helper.find('.menu-item-handle').outerWidth(); // Get original width
-					width += api.depthToPx(maxChildDepth - originalDepth); // Account for children
-					width -= 2; // Subtract 2 for borders
-					ui.placeholder.width(width);
-
-					// Update the list of menu items.
-					tempHolder = ui.placeholder.next();
-					tempHolder.css( 'margin-top', helperHeight + 'px' ); // Set the margin to absorb the placeholder
-					ui.placeholder.detach(); // detach or jQuery UI will think the placeholder is a menu item
-					$(this).sortable( "refresh" ); // The children aren't sortable. We should let jQ UI know.
-					ui.item.after( ui.placeholder ); // reattach the placeholder.
-					tempHolder.css('margin-top', 0); // reset the margin
-
-					// Now that the element is complete, we can update...
-					updateSharedVars(ui);
-				},
-				stop: function(e, ui) {
-					var children, depthChange = currentDepth - originalDepth;
-
-					// Return child elements to the list
-					children = transport.children().insertAfter(ui.item);
-
-					// Update depth classes
-					if( depthChange != 0 ) {
-						ui.item.updateDepthClass( currentDepth );
-						children.shiftDepthClass( depthChange );
-						updateMenuMaxDepth( depthChange );
-					}
-					// Register a change
-					api.registerChange();
-					// Update the item data.
-					ui.item.updateParentMenuItemDBId();
-
-					// address sortable's incorrectly-calculated top in opera
-					ui.item[0].style.top = 0;
-
-					// handle drop placement for rtl orientation
-					if ( api.isRTL ) {
-						ui.item[0].style.left = 'auto';
-						ui.item[0].style.right = 0;
-					}
-
-					// The width of the tab bar might have changed. Just in case.
-					api.refreshMenuTabs( true );
-				},
-				change: function(e, ui) {
-					// Make sure the placeholder is inside the menu.
-					// Otherwise fix it, or we're in trouble.
-					if( ! ui.placeholder.parent().hasClass('menu') )
-						(prev.length) ? prev.after( ui.placeholder ) : api.menuList.prepend( ui.placeholder );
-
-					updateSharedVars(ui);
-				},
-				sort: function(e, ui) {
-					var offset = ui.helper.offset(),
-						edge = api.isRTL ? offset.left + ui.helper.width() : offset.left,
-						depth = api.negateIfRTL * api.pxToDepth( edge - menuEdge );
-					// Check and correct if depth is not within range.
-					// Also, if the dragged element is dragged upwards over
-					// an item, shift the placeholder to a child position.
-					if ( depth > maxDepth || offset.top < prevBottom ) depth = maxDepth;
-					else if ( depth < minDepth ) depth = minDepth;
-
-					if( depth != currentDepth )
-						updateCurrentDepth(ui, depth);
-
-					// If we overlap the next element, manually shift downwards
-					if( nextThreshold && offset.top + helperHeight > nextThreshold ) {
-						next.after( ui.placeholder );
-						updateSharedVars( ui );
-						$(this).sortable( "refreshPositions" );
-					}
-				}
-			});
-
-			function updateSharedVars(ui) {
-				var depth;
-
-				prev = ui.placeholder.prev();
-				next = ui.placeholder.next();
-
-				// Make sure we don't select the moving item.
-				if( prev[0] == ui.item[0] ) prev = prev.prev();
-				if( next[0] == ui.item[0] ) next = next.next();
-
-				prevBottom = (prev.length) ? prev.offset().top + prev.height() : 0;
-				nextThreshold = (next.length) ? next.offset().top + next.height() / 3 : 0;
-				minDepth = (next.length) ? next.menuItemDepth() : 0;
-
-				if( prev.length )
-					maxDepth = ( (depth = prev.menuItemDepth() + 1) > api.options.globalMaxDepth ) ? api.options.globalMaxDepth : depth;
-				else
-					maxDepth = 0;
-			}
-
-			function updateCurrentDepth(ui, depth) {
-				ui.placeholder.updateDepthClass( depth, currentDepth );
-				currentDepth = depth;
-			}
-
-			function initialMenuMaxDepth() {
-				if( ! body[0].className ) return 0;
-				var match = body[0].className.match(/menu-max-depth-(\d+)/);
-				return match && match[1] ? parseInt(match[1]) : 0;
-			}
-
-			function updateMenuMaxDepth( depthChange ) {
-				var depth, newDepth = menuMaxDepth;
-				if ( depthChange === 0 ) {
-					return;
-				} else if ( depthChange > 0 ) {
-					depth = maxChildDepth + depthChange;
-					if( depth > menuMaxDepth )
-						newDepth = depth;
-				} else if ( depthChange < 0 && maxChildDepth == menuMaxDepth ) {
-					while( ! $('.menu-item-depth-' + newDepth, api.menuList).length && newDepth > 0 )
-						newDepth--;
-				}
-				// Update the depth class.
-				body.removeClass( 'menu-max-depth-' + menuMaxDepth ).addClass( 'menu-max-depth-' + newDepth );
-				menuMaxDepth = newDepth;
-			}
-		},
-
-		attachMenuEditListeners : function() {
-			var that = this;
-			$('#update-nav-menu').bind('click', function(e) {
-				if ( e.target && e.target.className ) {
-					if ( -1 != e.target.className.indexOf('item-edit') ) {
-						return that.eventOnClickEditLink(e.target);
-					} else if ( -1 != e.target.className.indexOf('menu-save') ) {
-						return that.eventOnClickMenuSave(e.target);
-					} else if ( -1 != e.target.className.indexOf('menu-delete') ) {
-						return that.eventOnClickMenuDelete(e.target);
-					} else if ( -1 != e.target.className.indexOf('item-delete') ) {
-						return that.eventOnClickMenuItemDelete(e.target);
-					} else if ( -1 != e.target.className.indexOf('item-cancel') ) {
-						return that.eventOnClickCancelLink(e.target);
-					}
-				}
-			});
-			$('#add-custom-links input[type="text"]').keypress(function(e){
-				if ( e.keyCode === 13 ) {
-					e.preventDefault();
-					$("#submit-customlinkdiv").click();
-				}
-			});
-		},
-
-		/**
-		 * An interface for managing default values for input elements
-		 * that is both JS and accessibility-friendly.
-		 *
-		 * Input elements that add the class 'input-with-default-title'
-		 * will have their values set to the provided HTML title when empty.
-		 */
-		setupInputWithDefaultTitle : function() {
-			var name = 'input-with-default-title';
-
-			$('.' + name).each( function(){
-				var $t = $(this), title = $t.attr('title'), val = $t.val();
-				$t.data( name, title );
-
-				if( '' == val ) $t.val( title );
-				else if ( title == val ) return;
-				else $t.removeClass( name );
-			}).focus( function(){
-				var $t = $(this);
-				if( $t.val() == $t.data(name) )
-					$t.val('').removeClass( name );
-			}).blur( function(){
-				var $t = $(this);
-				if( '' == $t.val() )
-					$t.addClass( name ).val( $t.data(name) );
-			});
-		},
-
-		attachThemeLocationsListeners : function() {
-			var loc = $('#nav-menu-theme-locations'), params = {};
-			params['action'] = 'menu-locations-save';
-			params['menu-settings-column-nonce'] = $('#menu-settings-column-nonce').val();
-			loc.find('input[type="submit"]').click(function() {
-				loc.find('select').each(function() {
-					params[this.name] = $(this).val();
-				});
-				loc.find('.waiting').show();
-				$.post( ajaxurl, params, function(r) {
-					loc.find('.waiting').hide();
-				});
-				return false;
-			});
-		},
-
-		attachQuickSearchListeners : function() {
-			var searchTimer;
-
-			$('.quick-search').keypress(function(e){
-				var t = $(this);
-
-				if( 13 == e.which ) {
-					api.updateQuickSearchResults( t );
-					return false;
-				}
-
-				if( searchTimer ) clearTimeout(searchTimer);
-
-				searchTimer = setTimeout(function(){
-					api.updateQuickSearchResults( t );
-				}, 400);
-			}).attr('autocomplete','off');
-		},
-
-		updateQuickSearchResults : function(input) {
-			var panel, params,
-			minSearchLength = 2,
-			q = input.val();
-
-			if( q.length < minSearchLength ) return;
-
-			panel = input.parents('.tabs-panel');
-			params = {
-				'action': 'menu-quick-search',
-				'response-format': 'markup',
-				'menu': $('#menu').val(),
-				'menu-settings-column-nonce': $('#menu-settings-column-nonce').val(),
-				'q': q,
-				'type': input.attr('name')
-			};
-
-			$('img.waiting', panel).show();
-
-			$.post( ajaxurl, params, function(menuMarkup) {
-				api.processQuickSearchQueryResponse(menuMarkup, params, panel);
-			});
-		},
-
-		addCustomLink : function( processMethod ) {
-			var url = $('#custom-menu-item-url').val(),
-				label = $('#custom-menu-item-name').val();
-
-			processMethod = processMethod || api.addMenuItemToBottom;
-
-			if ( '' == url || 'http://' == url )
-				return false;
-
-			// Show the ajax spinner
-			$('.customlinkdiv img.waiting').show();
-			this.addLinkToMenu( url, label, processMethod, function() {
-				// Remove the ajax spinner
-				$('.customlinkdiv img.waiting').hide();
-				// Set custom link form back to defaults
-				$('#custom-menu-item-name').val('').blur();
-				$('#custom-menu-item-url').val('http://');
-			});
-		},
-
-		addLinkToMenu : function(url, label, processMethod, callback) {
-			processMethod = processMethod || api.addMenuItemToBottom;
-			callback = callback || function(){};
-
-			api.addItemToMenu({
-				'-1': {
-					'menu-item-type': 'custom',
-					'menu-item-url': url,
-					'menu-item-title': label
-				}
-			}, processMethod, callback);
-		},
-
-		addItemToMenu : function(menuItem, processMethod, callback) {
-			var menu = $('#menu').val(),
-				nonce = $('#menu-settings-column-nonce').val();
-
-			processMethod = processMethod || function(){};
-			callback = callback || function(){};
-
-			params = {
-				'action': 'add-menu-item',
-				'menu': menu,
-				'menu-settings-column-nonce': nonce,
-				'menu-item': menuItem
-			};
-
-			$.post( ajaxurl, params, function(menuMarkup) {
-				var ins = $('#menu-instructions');
-				processMethod(menuMarkup, params);
-				if( ! ins.hasClass('menu-instructions-inactive') && ins.siblings().length )
-					ins.addClass('menu-instructions-inactive');
-				callback();
-			});
-		},
-
-		/**
-		 * Process the add menu item request response into menu list item.
-		 *
-		 * @param string menuMarkup The text server response of menu item markup.
-		 * @param object req The request arguments.
-		 */
-		addMenuItemToBottom : function( menuMarkup, req ) {
-			$(menuMarkup).hideAdvancedMenuItemFields().appendTo( api.targetList );
-		},
-
-		addMenuItemToTop : function( menuMarkup, req ) {
-			$(menuMarkup).hideAdvancedMenuItemFields().prependTo( api.targetList );
-		},
-
-		attachUnsavedChangesListener : function() {
-			$('#menu-management input, #menu-management select, #menu-management, #menu-management textarea').change(function(){
-				api.registerChange();
-			});
-
-			if ( 0 != $('#menu-to-edit').length ) {
-				window.onbeforeunload = function(){
-					if ( api.menusChanged )
-						return navMenuL10n.saveAlert;
-				};
-			} else {
-				// Make the post boxes read-only, as they can't be used yet
-				$('#menu-settings-column').find('input,select').prop('disabled', true).end().find('a').attr('href', '#').unbind('click');
-			}
-		},
-
-		registerChange : function() {
-			api.menusChanged = true;
-		},
-
-		attachTabsPanelListeners : function() {
-			$('#menu-settings-column').bind('click', function(e) {
-				var selectAreaMatch, panelId, wrapper, items,
-					target = $(e.target);
-
-				if ( target.hasClass('nav-tab-link') ) {
-					panelId = /#(.*)$/.exec(e.target.href);
-					if ( panelId && panelId[1] )
-						panelId = panelId[1]
-					else
-						return false;
-
-					wrapper = target.parents('.inside').first();
-
-					// upon changing tabs, we want to uncheck all checkboxes
-					$('input', wrapper).removeAttr('checked');
-
-					$('.tabs-panel-active', wrapper).removeClass('tabs-panel-active').addClass('tabs-panel-inactive');
-					$('#' + panelId, wrapper).removeClass('tabs-panel-inactive').addClass('tabs-panel-active');
-
-					$('.tabs', wrapper).removeClass('tabs');
-					target.parent().addClass('tabs');
-
-					// select the search bar
-					$('.quick-search', wrapper).focus();
-
-					return false;
-				} else if ( target.hasClass('select-all') ) {
-					selectAreaMatch = /#(.*)$/.exec(e.target.href);
-					if ( selectAreaMatch && selectAreaMatch[1] ) {
-						items = $('#' + selectAreaMatch[1] + ' .tabs-panel-active .menu-item-title input');
-						if( items.length === items.filter(':checked').length )
-							items.removeAttr('checked');
-						else
-							items.prop('checked', true);
-						return false;
-					}
-				} else if ( target.hasClass('submit-add-to-menu') ) {
-					api.registerChange();
-
-					if ( e.target.id && 'submit-customlinkdiv' == e.target.id )
-						api.addCustomLink( api.addMenuItemToBottom );
-					else if ( e.target.id && -1 != e.target.id.indexOf('submit-') )
-						$('#' + e.target.id.replace(/submit-/, '')).addSelectedToMenu( api.addMenuItemToBottom );
-					return false;
-				} else if ( target.hasClass('page-numbers') ) {
-					$.post( ajaxurl, e.target.href.replace(/.*\?/, '').replace(/action=([^&]*)/, '') + '&action=menu-get-metabox',
-						function( resp ) {
-							if ( -1 == resp.indexOf('replace-id') )
-								return;
-
-							var metaBoxData = $.parseJSON(resp),
-							toReplace = document.getElementById(metaBoxData['replace-id']),
-							placeholder = document.createElement('div'),
-							wrap = document.createElement('div');
-
-							if ( ! metaBoxData['markup'] || ! toReplace )
-								return;
-
-							wrap.innerHTML = metaBoxData['markup'] ? metaBoxData['markup'] : '';
-
-							toReplace.parentNode.insertBefore( placeholder, toReplace );
-							placeholder.parentNode.removeChild( toReplace );
-
-							placeholder.parentNode.insertBefore( wrap, placeholder );
-
-							placeholder.parentNode.removeChild( placeholder );
-
-						}
-					);
-
-					return false;
-				}
-			});
-		},
-
-		initTabManager : function() {
-			var fixed = $('.nav-tabs-wrapper'),
-				fluid = fixed.children('.nav-tabs'),
-				active = fluid.children('.nav-tab-active'),
-				tabs = fluid.children('.nav-tab'),
-				tabsWidth = 0,
-				fixedRight, fixedLeft,
-				arrowLeft, arrowRight, resizeTimer, css = {},
-				marginFluid = api.isRTL ? 'margin-right' : 'margin-left',
-				marginFixed = api.isRTL ? 'margin-left' : 'margin-right',
-				msPerPx = 2;
-
-			/**
-			 * Refreshes the menu tabs.
-			 * Will show and hide arrows where necessary.
-			 * Scrolls to the active tab by default.
-			 *
-			 * @param savePosition {boolean} Optional. Prevents scrolling so
-			 * 		  that the current position is maintained. Default false.
-			 **/
-			api.refreshMenuTabs = function( savePosition ) {
-				var fixedWidth = fixed.width(),
-					margin = 0, css = {};
-				fixedLeft = fixed.offset().left;
-				fixedRight = fixedLeft + fixedWidth;
-
-				if( !savePosition )
-					active.makeTabVisible();
-
-				// Prevent space from building up next to the last tab if there's more to show
-				if( tabs.last().isTabVisible() ) {
-					margin = fixed.width() - tabsWidth;
-					margin = margin > 0 ? 0 : margin;
-					css[marginFluid] = margin + 'px';
-					fluid.animate( css, 100, "linear" );
-				}
-
-				// Show the arrows only when necessary
-				if( fixedWidth > tabsWidth )
-					arrowLeft.add( arrowRight ).hide();
-				else
-					arrowLeft.add( arrowRight ).show();
-			}
-
-			$.fn.extend({
-				makeTabVisible : function() {
-					var t = this.eq(0), left, right, css = {}, shift = 0;
-
-					if( ! t.length ) return this;
-
-					left = t.offset().left;
-					right = left + t.outerWidth();
-
-					if( right > fixedRight )
-						shift = fixedRight - right;
-					else if ( left < fixedLeft )
-						shift = fixedLeft - left;
-
-					if( ! shift ) return this;
-
-					css[marginFluid] = "+=" + api.negateIfRTL * shift + 'px';
-					fluid.animate( css, Math.abs( shift ) * msPerPx, "linear" );
-					return this;
-				},
-				isTabVisible : function() {
-					var t = this.eq(0),
-						left = t.offset().left,
-						right = left + t.outerWidth();
-					return ( right <= fixedRight && left >= fixedLeft ) ? true : false;
-				}
-			});
-
-			// Find the width of all tabs
-			tabs.each(function(){
-				tabsWidth += $(this).outerWidth(true);
-			});
-
-			// Set up fixed margin for overflow, unset padding
-			css['padding'] = 0;
-			css[marginFixed] = (-1 * tabsWidth) + 'px';
-			fluid.css( css );
-
-			// Build tab navigation
-			arrowLeft = $('<div class="nav-tabs-arrow nav-tabs-arrow-left"><a>&laquo;</a></div>');
-			arrowRight = $('<div class="nav-tabs-arrow nav-tabs-arrow-right"><a>&raquo;</a></div>');
-			// Attach to the document
-			fixed.wrap('<div class="nav-tabs-nav"/>').parent().prepend( arrowLeft ).append( arrowRight );
-
-			// Set the menu tabs
-			api.refreshMenuTabs();
-			// Make sure the tabs reset on resize
-			$(window).resize(function() {
-				if( resizeTimer ) clearTimeout(resizeTimer);
-				resizeTimer = setTimeout( api.refreshMenuTabs, 200);
-			});
-
-			// Build arrow functions
-			$.each([{
-					arrow : arrowLeft,
-					next : "next",
-					last : "first",
-					operator : "+="
-				},{
-					arrow : arrowRight,
-					next : "prev",
-					last : "last",
-					operator : "-="
-				}], function(){
-				var that = this;
-				this.arrow.mousedown(function(){
-					var marginFluidVal = Math.abs( parseInt( fluid.css(marginFluid) ) ),
-						shift = marginFluidVal,
-						css = {};
-
-					if( "-=" == that.operator )
-						shift = Math.abs( tabsWidth - fixed.width() ) - marginFluidVal;
-
-					if( ! shift ) return;
-
-					css[marginFluid] = that.operator + shift + 'px';
-					fluid.animate( css, shift * msPerPx, "linear" );
-				}).mouseup(function(){
-					var tab, next;
-					fluid.stop(true);
-					tab = tabs[that.last]();
-					while( (next = tab[that.next]()) && next.length && ! next.isTabVisible() ) {
-						tab = next;
-					}
-					tab.makeTabVisible();
-				});
-			});
-		},
-
-		eventOnClickEditLink : function(clickedEl) {
-			var settings, item,
-			matchedSection = /#(.*)$/.exec(clickedEl.href);
-			if ( matchedSection && matchedSection[1] ) {
-				settings = $('#'+matchedSection[1]);
-				item = settings.parent();
-				if( 0 != item.length ) {
-					if( item.hasClass('menu-item-edit-inactive') ) {
-						if( ! settings.data('menu-item-data') ) {
-							settings.data( 'menu-item-data', settings.getItemData() );
-						}
-						settings.slideDown('fast');
-						item.removeClass('menu-item-edit-inactive')
-							.addClass('menu-item-edit-active');
-					} else {
-						settings.slideUp('fast');
-						item.removeClass('menu-item-edit-active')
-							.addClass('menu-item-edit-inactive');
-					}
-					return false;
-				}
-			}
-		},
-
-		eventOnClickCancelLink : function(clickedEl) {
-			var settings = $(clickedEl).closest('.menu-item-settings');
-			settings.setItemData( settings.data('menu-item-data') );
-			return false;
-		},
-
-		eventOnClickMenuSave : function(clickedEl) {
-			var locs = '',
-			menuName = $('#menu-name'),
-			menuNameVal = menuName.val();
-			// Cancel and warn if invalid menu name
-			if( !menuNameVal || menuNameVal == menuName.attr('title') || !menuNameVal.replace(/\s+/, '') ) {
-				menuName.parent().addClass('form-invalid');
-				return false;
-			}
-			// Copy menu theme locations
-			$('#nav-menu-theme-locations select').each(function() {
-				locs += '<input type="hidden" name="' + this.name + '" value="' + $(this).val() + '" />';
-			});
-			$('#update-nav-menu').append( locs );
-			// Update menu item position data
-			api.menuList.find('.menu-item-data-position').val( function(index) { return index + 1; } );
-			window.onbeforeunload = null;
-
-			return true;
-		},
-
-		eventOnClickMenuDelete : function(clickedEl) {
-			// Delete warning AYS
-			if ( confirm( navMenuL10n.warnDeleteMenu ) ) {
-				window.onbeforeunload = null;
-				return true;
-			}
-			return false;
-		},
-
-		eventOnClickMenuItemDelete : function(clickedEl) {
-			var itemID = parseInt(clickedEl.id.replace('delete-', ''), 10);
-			api.removeMenuItem( $('#menu-item-' + itemID) );
-			api.registerChange();
-			return false;
-		},
-
-		/**
-		 * Process the quick search response into a search result
-		 *
-		 * @param string resp The server response to the query.
-		 * @param object req The request arguments.
-		 * @param jQuery panel The tabs panel we're searching in.
-		 */
-		processQuickSearchQueryResponse : function(resp, req, panel) {
-			var matched, newID,
-			takenIDs = {},
-			form = document.getElementById('nav-menu-meta'),
-			pattern = new RegExp('menu-item\\[(\[^\\]\]*)', 'g'),
-			$items = $('<div>').html(resp).find('li'),
-			$item;
-
-			if( ! $items.length ) {
-				$('.categorychecklist', panel).html( '<li><p>' + navMenuL10n.noResultsFound + '</p></li>' );
-				$('img.waiting', panel).hide();
-				return;
-			}
-
-			$items.each(function(){
-				$item = $(this);
-
-				// make a unique DB ID number
-				matched = pattern.exec($item.html());
-
-				if ( matched && matched[1] ) {
-					newID = matched[1];
-					while( form.elements['menu-item[' + newID + '][menu-item-type]'] || takenIDs[ newID ] ) {
-						newID--;
-					}
-
-					takenIDs[newID] = true;
-					if ( newID != matched[1] ) {
-						$item.html( $item.html().replace(new RegExp(
-							'menu-item\\[' + matched[1] + '\\]', 'g'),
-							'menu-item[' + newID + ']'
-						) );
-					}
-				}
-			});
-
-			$('.categorychecklist', panel).html( $items );
-			$('img.waiting', panel).hide();
-		},
-
-		removeMenuItem : function(el) {
-			var children = el.childMenuItems();
-
-			el.addClass('deleting').animate({
-					opacity : 0,
-					height: 0
-				}, 350, function() {
-					var ins = $('#menu-instructions');
-					el.remove();
-					children.shiftDepthClass(-1).updateParentMenuItemDBId();
-					if( ! ins.siblings().length )
-						ins.removeClass('menu-instructions-inactive');
-				});
-		},
-
-		depthToPx : function(depth) {
-			return depth * api.options.menuItemDepthPerLevel;
-		},
-
-		pxToDepth : function(px) {
-			return Math.floor(px / api.options.menuItemDepthPerLevel);
-		}
-
-	};
-
-	$(document).ready(function(){ wpNavMenu.init(); });
-
-})(jQuery);
--- a/web/wp-admin/js/nav-menu.js	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-admin/js/nav-menu.js	Wed Dec 19 17:46:52 2012 -0800
@@ -1,1 +1,965 @@
-var wpNavMenu;(function(b){var a=wpNavMenu={options:{menuItemDepthPerLevel:30,globalMaxDepth:11},menuList:undefined,targetList:undefined,menusChanged:false,isRTL:!!("undefined"!=typeof isRtl&&isRtl),negateIfRTL:("undefined"!=typeof isRtl&&isRtl)?-1:1,init:function(){a.menuList=b("#menu-to-edit");a.targetList=a.menuList;this.jQueryExtensions();this.attachMenuEditListeners();this.setupInputWithDefaultTitle();this.attachQuickSearchListeners();this.attachThemeLocationsListeners();this.attachTabsPanelListeners();this.attachUnsavedChangesListener();if(a.menuList.length){this.initSortables()}this.initToggles();this.initTabManager()},jQueryExtensions:function(){b.fn.extend({menuItemDepth:function(){var c=a.isRTL?this.eq(0).css("margin-right"):this.eq(0).css("margin-left");return a.pxToDepth(c&&-1!=c.indexOf("px")?c.slice(0,-2):0)},updateDepthClass:function(d,c){return this.each(function(){var e=b(this);c=c||e.menuItemDepth();b(this).removeClass("menu-item-depth-"+c).addClass("menu-item-depth-"+d)})},shiftDepthClass:function(c){return this.each(function(){var d=b(this),e=d.menuItemDepth();b(this).removeClass("menu-item-depth-"+e).addClass("menu-item-depth-"+(e+c))})},childMenuItems:function(){var c=b();this.each(function(){var d=b(this),f=d.menuItemDepth(),e=d.next();while(e.length&&e.menuItemDepth()>f){c=c.add(e);e=e.next()}});return c},updateParentMenuItemDBId:function(){return this.each(function(){var e=b(this),c=e.find(".menu-item-data-parent-id"),f=e.menuItemDepth(),d=e.prev();if(f==0){c.val(0)}else{while(!d[0]||!d[0].className||-1==d[0].className.indexOf("menu-item")||(d.menuItemDepth()!=f-1)){d=d.prev()}c.val(d.find(".menu-item-data-db-id").val())}})},hideAdvancedMenuItemFields:function(){return this.each(function(){var c=b(this);b(".hide-column-tog").not(":checked").each(function(){c.find(".field-"+b(this).val()).addClass("hidden-field")})})},addSelectedToMenu:function(c){if(0==b("#menu-to-edit").length){return false}return this.each(function(){var e=b(this),d={},g=e.find(".tabs-panel-active .categorychecklist li input:checked"),f=new RegExp("menu-item\\[([^\\]]*)");c=c||a.addMenuItemToBottom;if(!g.length){return false}e.find("img.waiting").show();b(g).each(function(){var i=b(this),h=f.exec(i.attr("name")),j="undefined"==typeof h[1]?0:parseInt(h[1],10);if(this.className&&-1!=this.className.indexOf("add-to-top")){c=a.addMenuItemToTop}d[j]=i.closest("li").getItemData("add-menu-item",j)});a.addItemToMenu(d,c,function(){g.removeAttr("checked");e.find("img.waiting").hide()})})},getItemData:function(f,g){f=f||"menu-item";var d={},e,c=["menu-item-db-id","menu-item-object-id","menu-item-object","menu-item-parent-id","menu-item-position","menu-item-type","menu-item-title","menu-item-url","menu-item-description","menu-item-attr-title","menu-item-target","menu-item-classes","menu-item-xfn"];if(!g&&f=="menu-item"){g=this.find(".menu-item-data-db-id").val()}if(!g){return d}this.find("input").each(function(){var h;e=c.length;while(e--){if(f=="menu-item"){h=c[e]+"["+g+"]"}else{if(f=="add-menu-item"){h="menu-item["+g+"]["+c[e]+"]"}}if(this.name&&h==this.name){d[c[e]]=this.value}}});return d},setItemData:function(c,d,e){d=d||"menu-item";if(!e&&d=="menu-item"){e=b(".menu-item-data-db-id",this).val()}if(!e){return this}this.find("input").each(function(){var f=b(this),g;b.each(c,function(h,i){if(d=="menu-item"){g=h+"["+e+"]"}else{if(d=="add-menu-item"){g="menu-item["+e+"]["+h+"]"}}if(g==f.attr("name")){f.val(i)}})});return this}})},initToggles:function(){postboxes.add_postbox_toggles("nav-menus");columns.useCheckboxesForHidden();columns.checked=function(c){b(".field-"+c).removeClass("hidden-field")};columns.unchecked=function(c){b(".field-"+c).addClass("hidden-field")};a.menuList.hideAdvancedMenuItemFields()},initSortables:function(){var p=0,e,t,d,l,o,f,c,i,s,m=a.menuList.offset().left,h=b("body"),q,n=r();m+=a.isRTL?a.menuList.width():0;a.menuList.sortable({handle:".menu-item-handle",placeholder:"sortable-placeholder",start:function(A,z){var u,x,w,v,y;if(a.isRTL){z.item[0].style.right="auto"}s=z.item.children(".menu-item-transport");e=z.item.menuItemDepth();j(z,e);w=(z.item.next()[0]==z.placeholder[0])?z.item.next():z.item;v=w.childMenuItems();s.append(v);u=s.outerHeight();u+=(u>0)?(z.placeholder.css("margin-top").slice(0,-2)*1):0;u+=z.helper.outerHeight();i=u;u-=2;z.placeholder.height(u);q=e;v.each(function(){var B=b(this).menuItemDepth();q=(B>q)?B:q});x=z.helper.find(".menu-item-handle").outerWidth();x+=a.depthToPx(q-e);x-=2;z.placeholder.width(x);y=z.placeholder.next();y.css("margin-top",i+"px");z.placeholder.detach();b(this).sortable("refresh");z.item.after(z.placeholder);y.css("margin-top",0);k(z)},stop:function(x,w){var v,u=p-e;v=s.children().insertAfter(w.item);if(u!=0){w.item.updateDepthClass(p);v.shiftDepthClass(u);g(u)}a.registerChange();w.item.updateParentMenuItemDBId();w.item[0].style.top=0;if(a.isRTL){w.item[0].style.left="auto";w.item[0].style.right=0}a.refreshMenuTabs(true)},change:function(v,u){if(!u.placeholder.parent().hasClass("menu")){(l.length)?l.after(u.placeholder):a.menuList.prepend(u.placeholder)}k(u)},sort:function(w,v){var y=v.helper.offset(),u=a.isRTL?y.left+v.helper.width():y.left,x=a.negateIfRTL*a.pxToDepth(u-m);if(x>d||y.top<f){x=d}else{if(x<t){x=t}}if(x!=p){j(v,x)}if(c&&y.top+i>c){o.after(v.placeholder);k(v);b(this).sortable("refreshPositions")}}});function k(u){var v;l=u.placeholder.prev();o=u.placeholder.next();if(l[0]==u.item[0]){l=l.prev()}if(o[0]==u.item[0]){o=o.next()}f=(l.length)?l.offset().top+l.height():0;c=(o.length)?o.offset().top+o.height()/3:0;t=(o.length)?o.menuItemDepth():0;if(l.length){d=((v=l.menuItemDepth()+1)>a.options.globalMaxDepth)?a.options.globalMaxDepth:v}else{d=0}}function j(u,v){u.placeholder.updateDepthClass(v,p);p=v}function r(){if(!h[0].className){return 0}var u=h[0].className.match(/menu-max-depth-(\d+)/);return u&&u[1]?parseInt(u[1]):0}function g(u){var v,w=n;if(u===0){return}else{if(u>0){v=q+u;if(v>n){w=v}}else{if(u<0&&q==n){while(!b(".menu-item-depth-"+w,a.menuList).length&&w>0){w--}}}}h.removeClass("menu-max-depth-"+n).addClass("menu-max-depth-"+w);n=w}},attachMenuEditListeners:function(){var c=this;b("#update-nav-menu").bind("click",function(d){if(d.target&&d.target.className){if(-1!=d.target.className.indexOf("item-edit")){return c.eventOnClickEditLink(d.target)}else{if(-1!=d.target.className.indexOf("menu-save")){return c.eventOnClickMenuSave(d.target)}else{if(-1!=d.target.className.indexOf("menu-delete")){return c.eventOnClickMenuDelete(d.target)}else{if(-1!=d.target.className.indexOf("item-delete")){return c.eventOnClickMenuItemDelete(d.target)}else{if(-1!=d.target.className.indexOf("item-cancel")){return c.eventOnClickCancelLink(d.target)}}}}}}});b('#add-custom-links input[type="text"]').keypress(function(d){if(d.keyCode===13){d.preventDefault();b("#submit-customlinkdiv").click()}})},setupInputWithDefaultTitle:function(){var c="input-with-default-title";b("."+c).each(function(){var f=b(this),e=f.attr("title"),d=f.val();f.data(c,e);if(""==d){f.val(e)}else{if(e==d){return}else{f.removeClass(c)}}}).focus(function(){var d=b(this);if(d.val()==d.data(c)){d.val("").removeClass(c)}}).blur(function(){var d=b(this);if(""==d.val()){d.addClass(c).val(d.data(c))}})},attachThemeLocationsListeners:function(){var d=b("#nav-menu-theme-locations"),c={};c.action="menu-locations-save";c["menu-settings-column-nonce"]=b("#menu-settings-column-nonce").val();d.find('input[type="submit"]').click(function(){d.find("select").each(function(){c[this.name]=b(this).val()});d.find(".waiting").show();b.post(ajaxurl,c,function(e){d.find(".waiting").hide()});return false})},attachQuickSearchListeners:function(){var c;b(".quick-search").keypress(function(f){var d=b(this);if(13==f.which){a.updateQuickSearchResults(d);return false}if(c){clearTimeout(c)}c=setTimeout(function(){a.updateQuickSearchResults(d)},400)}).attr("autocomplete","off")},updateQuickSearchResults:function(d){var c,g,e=2,f=d.val();if(f.length<e){return}c=d.parents(".tabs-panel");g={action:"menu-quick-search","response-format":"markup",menu:b("#menu").val(),"menu-settings-column-nonce":b("#menu-settings-column-nonce").val(),q:f,type:d.attr("name")};b("img.waiting",c).show();b.post(ajaxurl,g,function(h){a.processQuickSearchQueryResponse(h,g,c)})},addCustomLink:function(c){var e=b("#custom-menu-item-url").val(),d=b("#custom-menu-item-name").val();c=c||a.addMenuItemToBottom;if(""==e||"http://"==e){return false}b(".customlinkdiv img.waiting").show();this.addLinkToMenu(e,d,c,function(){b(".customlinkdiv img.waiting").hide();b("#custom-menu-item-name").val("").blur();b("#custom-menu-item-url").val("http://")})},addLinkToMenu:function(e,d,c,f){c=c||a.addMenuItemToBottom;f=f||function(){};a.addItemToMenu({"-1":{"menu-item-type":"custom","menu-item-url":e,"menu-item-title":d}},c,f)},addItemToMenu:function(e,c,g){var f=b("#menu").val(),d=b("#menu-settings-column-nonce").val();c=c||function(){};g=g||function(){};params={action:"add-menu-item",menu:f,"menu-settings-column-nonce":d,"menu-item":e};b.post(ajaxurl,params,function(h){var i=b("#menu-instructions");c(h,params);if(!i.hasClass("menu-instructions-inactive")&&i.siblings().length){i.addClass("menu-instructions-inactive")}g()})},addMenuItemToBottom:function(c,d){b(c).hideAdvancedMenuItemFields().appendTo(a.targetList)},addMenuItemToTop:function(c,d){b(c).hideAdvancedMenuItemFields().prependTo(a.targetList)},attachUnsavedChangesListener:function(){b("#menu-management input, #menu-management select, #menu-management, #menu-management textarea").change(function(){a.registerChange()});if(0!=b("#menu-to-edit").length){window.onbeforeunload=function(){if(a.menusChanged){return navMenuL10n.saveAlert}}}else{b("#menu-settings-column").find("input,select").prop("disabled",true).end().find("a").attr("href","#").unbind("click")}},registerChange:function(){a.menusChanged=true},attachTabsPanelListeners:function(){b("#menu-settings-column").bind("click",function(h){var f,d,i,c,g=b(h.target);if(g.hasClass("nav-tab-link")){d=/#(.*)$/.exec(h.target.href);if(d&&d[1]){d=d[1]}else{return false}i=g.parents(".inside").first();b("input",i).removeAttr("checked");b(".tabs-panel-active",i).removeClass("tabs-panel-active").addClass("tabs-panel-inactive");b("#"+d,i).removeClass("tabs-panel-inactive").addClass("tabs-panel-active");b(".tabs",i).removeClass("tabs");g.parent().addClass("tabs");b(".quick-search",i).focus();return false}else{if(g.hasClass("select-all")){f=/#(.*)$/.exec(h.target.href);if(f&&f[1]){c=b("#"+f[1]+" .tabs-panel-active .menu-item-title input");if(c.length===c.filter(":checked").length){c.removeAttr("checked")}else{c.prop("checked",true)}return false}}else{if(g.hasClass("submit-add-to-menu")){a.registerChange();if(h.target.id&&"submit-customlinkdiv"==h.target.id){a.addCustomLink(a.addMenuItemToBottom)}else{if(h.target.id&&-1!=h.target.id.indexOf("submit-")){b("#"+h.target.id.replace(/submit-/,"")).addSelectedToMenu(a.addMenuItemToBottom)}}return false}else{if(g.hasClass("page-numbers")){b.post(ajaxurl,h.target.href.replace(/.*\?/,"").replace(/action=([^&]*)/,"")+"&action=menu-get-metabox",function(m){if(-1==m.indexOf("replace-id")){return}var l=b.parseJSON(m),e=document.getElementById(l["replace-id"]),k=document.createElement("div"),j=document.createElement("div");if(!l.markup||!e){return}j.innerHTML=l.markup?l.markup:"";e.parentNode.insertBefore(k,e);k.parentNode.removeChild(e);k.parentNode.insertBefore(j,k);k.parentNode.removeChild(k)});return false}}}}})},initTabManager:function(){var h=b(".nav-tabs-wrapper"),j=h.children(".nav-tabs"),g=j.children(".nav-tab-active"),m=j.children(".nav-tab"),e=0,o,f,l,d,k,i={},c=a.isRTL?"margin-right":"margin-left",p=a.isRTL?"margin-left":"margin-right",n=2;a.refreshMenuTabs=function(q){var t=h.width(),s=0,r={};f=h.offset().left;o=f+t;if(!q){g.makeTabVisible()}if(m.last().isTabVisible()){s=h.width()-e;s=s>0?0:s;r[c]=s+"px";j.animate(r,100,"linear")}if(t>e){l.add(d).hide()}else{l.add(d).show()}};b.fn.extend({makeTabVisible:function(){var u=this.eq(0),v,s,r={},q=0;if(!u.length){return this}v=u.offset().left;s=v+u.outerWidth();if(s>o){q=o-s}else{if(v<f){q=f-v}}if(!q){return this}r[c]="+="+a.negateIfRTL*q+"px";j.animate(r,Math.abs(q)*n,"linear");return this},isTabVisible:function(){var r=this.eq(0),s=r.offset().left,q=s+r.outerWidth();return(q<=o&&s>=f)?true:false}});m.each(function(){e+=b(this).outerWidth(true)});i.padding=0;i[p]=(-1*e)+"px";j.css(i);l=b('<div class="nav-tabs-arrow nav-tabs-arrow-left"><a>&laquo;</a></div>');d=b('<div class="nav-tabs-arrow nav-tabs-arrow-right"><a>&raquo;</a></div>');h.wrap('<div class="nav-tabs-nav"/>').parent().prepend(l).append(d);a.refreshMenuTabs();b(window).resize(function(){if(k){clearTimeout(k)}k=setTimeout(a.refreshMenuTabs,200)});b.each([{arrow:l,next:"next",last:"first",operator:"+="},{arrow:d,next:"prev",last:"last",operator:"-="}],function(){var q=this;this.arrow.mousedown(function(){var t=Math.abs(parseInt(j.css(c))),r=t,s={};if("-="==q.operator){r=Math.abs(e-h.width())-t}if(!r){return}s[c]=q.operator+r+"px";j.animate(s,r*n,"linear")}).mouseup(function(){var s,r;j.stop(true);s=m[q.last]();while((r=s[q.next]())&&r.length&&!r.isTabVisible()){s=r}s.makeTabVisible()})})},eventOnClickEditLink:function(d){var c,e,f=/#(.*)$/.exec(d.href);if(f&&f[1]){c=b("#"+f[1]);e=c.parent();if(0!=e.length){if(e.hasClass("menu-item-edit-inactive")){if(!c.data("menu-item-data")){c.data("menu-item-data",c.getItemData())}c.slideDown("fast");e.removeClass("menu-item-edit-inactive").addClass("menu-item-edit-active")}else{c.slideUp("fast");e.removeClass("menu-item-edit-active").addClass("menu-item-edit-inactive")}return false}}},eventOnClickCancelLink:function(d){var c=b(d).closest(".menu-item-settings");c.setItemData(c.data("menu-item-data"));return false},eventOnClickMenuSave:function(e){var f="",c=b("#menu-name"),d=c.val();if(!d||d==c.attr("title")||!d.replace(/\s+/,"")){c.parent().addClass("form-invalid");return false}b("#nav-menu-theme-locations select").each(function(){f+='<input type="hidden" name="'+this.name+'" value="'+b(this).val()+'" />'});b("#update-nav-menu").append(f);a.menuList.find(".menu-item-data-position").val(function(g){return g+1});window.onbeforeunload=null;return true},eventOnClickMenuDelete:function(c){if(confirm(navMenuL10n.warnDeleteMenu)){window.onbeforeunload=null;return true}return false},eventOnClickMenuItemDelete:function(c){var d=parseInt(c.id.replace("delete-",""),10);a.removeMenuItem(b("#menu-item-"+d));a.registerChange();return false},processQuickSearchQueryResponse:function(g,k,c){var e,i,f={},d=document.getElementById("nav-menu-meta"),j=new RegExp("menu-item\\[([^\\]]*)","g"),h=b("<div>").html(g).find("li"),l;if(!h.length){b(".categorychecklist",c).html("<li><p>"+navMenuL10n.noResultsFound+"</p></li>");b("img.waiting",c).hide();return}h.each(function(){l=b(this);e=j.exec(l.html());if(e&&e[1]){i=e[1];while(d.elements["menu-item["+i+"][menu-item-type]"]||f[i]){i--}f[i]=true;if(i!=e[1]){l.html(l.html().replace(new RegExp("menu-item\\["+e[1]+"\\]","g"),"menu-item["+i+"]"))}}});b(".categorychecklist",c).html(h);b("img.waiting",c).hide()},removeMenuItem:function(d){var c=d.childMenuItems();d.addClass("deleting").animate({opacity:0,height:0},350,function(){var e=b("#menu-instructions");d.remove();c.shiftDepthClass(-1).updateParentMenuItemDBId();if(!e.siblings().length){e.removeClass("menu-instructions-inactive")}})},depthToPx:function(c){return c*a.options.menuItemDepthPerLevel},pxToDepth:function(c){return Math.floor(c/a.options.menuItemDepthPerLevel)}};b(document).ready(function(){wpNavMenu.init()})})(jQuery);
\ No newline at end of file
+/**
+ * WordPress Administration Navigation Menu
+ * Interface JS functions
+ *
+ * @version 2.0.0
+ *
+ * @package WordPress
+ * @subpackage Administration
+ */
+
+var wpNavMenu;
+
+(function($) {
+
+	var api = wpNavMenu = {
+
+		options : {
+			menuItemDepthPerLevel : 30, // Do not use directly. Use depthToPx and pxToDepth instead.
+			globalMaxDepth : 11
+		},
+
+		menuList : undefined,	// Set in init.
+		targetList : undefined, // Set in init.
+		menusChanged : false,
+		isRTL: !! ( 'undefined' != typeof isRtl && isRtl ),
+		negateIfRTL: ( 'undefined' != typeof isRtl && isRtl ) ? -1 : 1,
+
+		// Functions that run on init.
+		init : function() {
+			api.menuList = $('#menu-to-edit');
+			api.targetList = api.menuList;
+
+			this.jQueryExtensions();
+
+			this.attachMenuEditListeners();
+
+			this.setupInputWithDefaultTitle();
+			this.attachQuickSearchListeners();
+			this.attachThemeLocationsListeners();
+
+			this.attachTabsPanelListeners();
+
+			this.attachUnsavedChangesListener();
+
+			if( api.menuList.length ) // If no menu, we're in the + tab.
+				this.initSortables();
+
+			this.initToggles();
+
+			this.initTabManager();
+		},
+
+		jQueryExtensions : function() {
+			// jQuery extensions
+			$.fn.extend({
+				menuItemDepth : function() {
+					var margin = api.isRTL ? this.eq(0).css('margin-right') : this.eq(0).css('margin-left');
+					return api.pxToDepth( margin && -1 != margin.indexOf('px') ? margin.slice(0, -2) : 0 );
+				},
+				updateDepthClass : function(current, prev) {
+					return this.each(function(){
+						var t = $(this);
+						prev = prev || t.menuItemDepth();
+						$(this).removeClass('menu-item-depth-'+ prev )
+							.addClass('menu-item-depth-'+ current );
+					});
+				},
+				shiftDepthClass : function(change) {
+					return this.each(function(){
+						var t = $(this),
+							depth = t.menuItemDepth();
+						$(this).removeClass('menu-item-depth-'+ depth )
+							.addClass('menu-item-depth-'+ (depth + change) );
+					});
+				},
+				childMenuItems : function() {
+					var result = $();
+					this.each(function(){
+						var t = $(this), depth = t.menuItemDepth(), next = t.next();
+						while( next.length && next.menuItemDepth() > depth ) {
+							result = result.add( next );
+							next = next.next();
+						}
+					});
+					return result;
+				},
+				updateParentMenuItemDBId : function() {
+					return this.each(function(){
+						var item = $(this),
+							input = item.find('.menu-item-data-parent-id'),
+							depth = item.menuItemDepth(),
+							parent = item.prev();
+
+						if( depth == 0 ) { // Item is on the top level, has no parent
+							input.val(0);
+						} else { // Find the parent item, and retrieve its object id.
+							while( ! parent[0] || ! parent[0].className || -1 == parent[0].className.indexOf('menu-item') || ( parent.menuItemDepth() != depth - 1 ) )
+								parent = parent.prev();
+							input.val( parent.find('.menu-item-data-db-id').val() );
+						}
+					});
+				},
+				hideAdvancedMenuItemFields : function() {
+					return this.each(function(){
+						var that = $(this);
+						$('.hide-column-tog').not(':checked').each(function(){
+							that.find('.field-' + $(this).val() ).addClass('hidden-field');
+						});
+					});
+				},
+				/**
+				 * Adds selected menu items to the menu.
+				 *
+				 * @param jQuery metabox The metabox jQuery object.
+				 */
+				addSelectedToMenu : function(processMethod) {
+					if ( 0 == $('#menu-to-edit').length ) {
+						return false;
+					}
+
+					return this.each(function() {
+						var t = $(this), menuItems = {},
+							checkboxes = t.find('.tabs-panel-active .categorychecklist li input:checked'),
+							re = new RegExp('menu-item\\[(\[^\\]\]*)');
+
+						processMethod = processMethod || api.addMenuItemToBottom;
+
+						// If no items are checked, bail.
+						if ( !checkboxes.length )
+							return false;
+
+						// Show the ajax spinner
+						t.find('.spinner').show();
+
+						// Retrieve menu item data
+						$(checkboxes).each(function(){
+							var t = $(this),
+								listItemDBIDMatch = re.exec( t.attr('name') ),
+								listItemDBID = 'undefined' == typeof listItemDBIDMatch[1] ? 0 : parseInt(listItemDBIDMatch[1], 10);
+							if ( this.className && -1 != this.className.indexOf('add-to-top') )
+								processMethod = api.addMenuItemToTop;
+							menuItems[listItemDBID] = t.closest('li').getItemData( 'add-menu-item', listItemDBID );
+						});
+
+						// Add the items
+						api.addItemToMenu(menuItems, processMethod, function(){
+							// Deselect the items and hide the ajax spinner
+							checkboxes.removeAttr('checked');
+							t.find('.spinner').hide();
+						});
+					});
+				},
+				getItemData : function( itemType, id ) {
+					itemType = itemType || 'menu-item';
+
+					var itemData = {}, i,
+					fields = [
+						'menu-item-db-id',
+						'menu-item-object-id',
+						'menu-item-object',
+						'menu-item-parent-id',
+						'menu-item-position',
+						'menu-item-type',
+						'menu-item-title',
+						'menu-item-url',
+						'menu-item-description',
+						'menu-item-attr-title',
+						'menu-item-target',
+						'menu-item-classes',
+						'menu-item-xfn'
+					];
+
+					if( !id && itemType == 'menu-item' ) {
+						id = this.find('.menu-item-data-db-id').val();
+					}
+
+					if( !id ) return itemData;
+
+					this.find('input').each(function() {
+						var field;
+						i = fields.length;
+						while ( i-- ) {
+							if( itemType == 'menu-item' )
+								field = fields[i] + '[' + id + ']';
+							else if( itemType == 'add-menu-item' )
+								field = 'menu-item[' + id + '][' + fields[i] + ']';
+
+							if (
+								this.name &&
+								field == this.name
+							) {
+								itemData[fields[i]] = this.value;
+							}
+						}
+					});
+
+					return itemData;
+				},
+				setItemData : function( itemData, itemType, id ) { // Can take a type, such as 'menu-item', or an id.
+					itemType = itemType || 'menu-item';
+
+					if( !id && itemType == 'menu-item' ) {
+						id = $('.menu-item-data-db-id', this).val();
+					}
+
+					if( !id ) return this;
+
+					this.find('input').each(function() {
+						var t = $(this), field;
+						$.each( itemData, function( attr, val ) {
+							if( itemType == 'menu-item' )
+								field = attr + '[' + id + ']';
+							else if( itemType == 'add-menu-item' )
+								field = 'menu-item[' + id + '][' + attr + ']';
+
+							if ( field == t.attr('name') ) {
+								t.val( val );
+							}
+						});
+					});
+					return this;
+				}
+			});
+		},
+
+		initToggles : function() {
+			// init postboxes
+			postboxes.add_postbox_toggles('nav-menus');
+
+			// adjust columns functions for menus UI
+			columns.useCheckboxesForHidden();
+			columns.checked = function(field) {
+				$('.field-' + field).removeClass('hidden-field');
+			}
+			columns.unchecked = function(field) {
+				$('.field-' + field).addClass('hidden-field');
+			}
+			// hide fields
+			api.menuList.hideAdvancedMenuItemFields();
+		},
+
+		initSortables : function() {
+			var currentDepth = 0, originalDepth, minDepth, maxDepth,
+				prev, next, prevBottom, nextThreshold, helperHeight, transport,
+				menuEdge = api.menuList.offset().left,
+				body = $('body'), maxChildDepth,
+				menuMaxDepth = initialMenuMaxDepth();
+
+			// Use the right edge if RTL.
+			menuEdge += api.isRTL ? api.menuList.width() : 0;
+
+			api.menuList.sortable({
+				handle: '.menu-item-handle',
+				placeholder: 'sortable-placeholder',
+				start: function(e, ui) {
+					var height, width, parent, children, tempHolder;
+
+					// handle placement for rtl orientation
+					if ( api.isRTL )
+						ui.item[0].style.right = 'auto';
+
+					transport = ui.item.children('.menu-item-transport');
+
+					// Set depths. currentDepth must be set before children are located.
+					originalDepth = ui.item.menuItemDepth();
+					updateCurrentDepth(ui, originalDepth);
+
+					// Attach child elements to parent
+					// Skip the placeholder
+					parent = ( ui.item.next()[0] == ui.placeholder[0] ) ? ui.item.next() : ui.item;
+					children = parent.childMenuItems();
+					transport.append( children );
+
+					// Update the height of the placeholder to match the moving item.
+					height = transport.outerHeight();
+					// If there are children, account for distance between top of children and parent
+					height += ( height > 0 ) ? (ui.placeholder.css('margin-top').slice(0, -2) * 1) : 0;
+					height += ui.helper.outerHeight();
+					helperHeight = height;
+					height -= 2; // Subtract 2 for borders
+					ui.placeholder.height(height);
+
+					// Update the width of the placeholder to match the moving item.
+					maxChildDepth = originalDepth;
+					children.each(function(){
+						var depth = $(this).menuItemDepth();
+						maxChildDepth = (depth > maxChildDepth) ? depth : maxChildDepth;
+					});
+					width = ui.helper.find('.menu-item-handle').outerWidth(); // Get original width
+					width += api.depthToPx(maxChildDepth - originalDepth); // Account for children
+					width -= 2; // Subtract 2 for borders
+					ui.placeholder.width(width);
+
+					// Update the list of menu items.
+					tempHolder = ui.placeholder.next();
+					tempHolder.css( 'margin-top', helperHeight + 'px' ); // Set the margin to absorb the placeholder
+					ui.placeholder.detach(); // detach or jQuery UI will think the placeholder is a menu item
+					$(this).sortable( "refresh" ); // The children aren't sortable. We should let jQ UI know.
+					ui.item.after( ui.placeholder ); // reattach the placeholder.
+					tempHolder.css('margin-top', 0); // reset the margin
+
+					// Now that the element is complete, we can update...
+					updateSharedVars(ui);
+				},
+				stop: function(e, ui) {
+					var children, depthChange = currentDepth - originalDepth;
+
+					// Return child elements to the list
+					children = transport.children().insertAfter(ui.item);
+
+					// Update depth classes
+					if( depthChange != 0 ) {
+						ui.item.updateDepthClass( currentDepth );
+						children.shiftDepthClass( depthChange );
+						updateMenuMaxDepth( depthChange );
+					}
+					// Register a change
+					api.registerChange();
+					// Update the item data.
+					ui.item.updateParentMenuItemDBId();
+
+					// address sortable's incorrectly-calculated top in opera
+					ui.item[0].style.top = 0;
+
+					// handle drop placement for rtl orientation
+					if ( api.isRTL ) {
+						ui.item[0].style.left = 'auto';
+						ui.item[0].style.right = 0;
+					}
+
+					// The width of the tab bar might have changed. Just in case.
+					api.refreshMenuTabs( true );
+				},
+				change: function(e, ui) {
+					// Make sure the placeholder is inside the menu.
+					// Otherwise fix it, or we're in trouble.
+					if( ! ui.placeholder.parent().hasClass('menu') )
+						(prev.length) ? prev.after( ui.placeholder ) : api.menuList.prepend( ui.placeholder );
+
+					updateSharedVars(ui);
+				},
+				sort: function(e, ui) {
+					var offset = ui.helper.offset(),
+						edge = api.isRTL ? offset.left + ui.helper.width() : offset.left,
+						depth = api.negateIfRTL * api.pxToDepth( edge - menuEdge );
+					// Check and correct if depth is not within range.
+					// Also, if the dragged element is dragged upwards over
+					// an item, shift the placeholder to a child position.
+					if ( depth > maxDepth || offset.top < prevBottom ) depth = maxDepth;
+					else if ( depth < minDepth ) depth = minDepth;
+
+					if( depth != currentDepth )
+						updateCurrentDepth(ui, depth);
+
+					// If we overlap the next element, manually shift downwards
+					if( nextThreshold && offset.top + helperHeight > nextThreshold ) {
+						next.after( ui.placeholder );
+						updateSharedVars( ui );
+						$(this).sortable( "refreshPositions" );
+					}
+				}
+			});
+
+			function updateSharedVars(ui) {
+				var depth;
+
+				prev = ui.placeholder.prev();
+				next = ui.placeholder.next();
+
+				// Make sure we don't select the moving item.
+				if( prev[0] == ui.item[0] ) prev = prev.prev();
+				if( next[0] == ui.item[0] ) next = next.next();
+
+				prevBottom = (prev.length) ? prev.offset().top + prev.height() : 0;
+				nextThreshold = (next.length) ? next.offset().top + next.height() / 3 : 0;
+				minDepth = (next.length) ? next.menuItemDepth() : 0;
+
+				if( prev.length )
+					maxDepth = ( (depth = prev.menuItemDepth() + 1) > api.options.globalMaxDepth ) ? api.options.globalMaxDepth : depth;
+				else
+					maxDepth = 0;
+			}
+
+			function updateCurrentDepth(ui, depth) {
+				ui.placeholder.updateDepthClass( depth, currentDepth );
+				currentDepth = depth;
+			}
+
+			function initialMenuMaxDepth() {
+				if( ! body[0].className ) return 0;
+				var match = body[0].className.match(/menu-max-depth-(\d+)/);
+				return match && match[1] ? parseInt(match[1]) : 0;
+			}
+
+			function updateMenuMaxDepth( depthChange ) {
+				var depth, newDepth = menuMaxDepth;
+				if ( depthChange === 0 ) {
+					return;
+				} else if ( depthChange > 0 ) {
+					depth = maxChildDepth + depthChange;
+					if( depth > menuMaxDepth )
+						newDepth = depth;
+				} else if ( depthChange < 0 && maxChildDepth == menuMaxDepth ) {
+					while( ! $('.menu-item-depth-' + newDepth, api.menuList).length && newDepth > 0 )
+						newDepth--;
+				}
+				// Update the depth class.
+				body.removeClass( 'menu-max-depth-' + menuMaxDepth ).addClass( 'menu-max-depth-' + newDepth );
+				menuMaxDepth = newDepth;
+			}
+		},
+
+		attachMenuEditListeners : function() {
+			var that = this;
+			$('#update-nav-menu').bind('click', function(e) {
+				if ( e.target && e.target.className ) {
+					if ( -1 != e.target.className.indexOf('item-edit') ) {
+						return that.eventOnClickEditLink(e.target);
+					} else if ( -1 != e.target.className.indexOf('menu-save') ) {
+						return that.eventOnClickMenuSave(e.target);
+					} else if ( -1 != e.target.className.indexOf('menu-delete') ) {
+						return that.eventOnClickMenuDelete(e.target);
+					} else if ( -1 != e.target.className.indexOf('item-delete') ) {
+						return that.eventOnClickMenuItemDelete(e.target);
+					} else if ( -1 != e.target.className.indexOf('item-cancel') ) {
+						return that.eventOnClickCancelLink(e.target);
+					}
+				}
+			});
+			$('#add-custom-links input[type="text"]').keypress(function(e){
+				if ( e.keyCode === 13 ) {
+					e.preventDefault();
+					$("#submit-customlinkdiv").click();
+				}
+			});
+		},
+
+		/**
+		 * An interface for managing default values for input elements
+		 * that is both JS and accessibility-friendly.
+		 *
+		 * Input elements that add the class 'input-with-default-title'
+		 * will have their values set to the provided HTML title when empty.
+		 */
+		setupInputWithDefaultTitle : function() {
+			var name = 'input-with-default-title';
+
+			$('.' + name).each( function(){
+				var $t = $(this), title = $t.attr('title'), val = $t.val();
+				$t.data( name, title );
+
+				if( '' == val ) $t.val( title );
+				else if ( title == val ) return;
+				else $t.removeClass( name );
+			}).focus( function(){
+				var $t = $(this);
+				if( $t.val() == $t.data(name) )
+					$t.val('').removeClass( name );
+			}).blur( function(){
+				var $t = $(this);
+				if( '' == $t.val() )
+					$t.addClass( name ).val( $t.data(name) );
+			});
+		},
+
+		attachThemeLocationsListeners : function() {
+			var loc = $('#nav-menu-theme-locations'), params = {};
+			params['action'] = 'menu-locations-save';
+			params['menu-settings-column-nonce'] = $('#menu-settings-column-nonce').val();
+			loc.find('input[type="submit"]').click(function() {
+				loc.find('select').each(function() {
+					params[this.name] = $(this).val();
+				});
+				loc.find('.spinner').show();
+				$.post( ajaxurl, params, function(r) {
+					loc.find('.spinner').hide();
+				});
+				return false;
+			});
+		},
+
+		attachQuickSearchListeners : function() {
+			var searchTimer;
+
+			$('.quick-search').keypress(function(e){
+				var t = $(this);
+
+				if( 13 == e.which ) {
+					api.updateQuickSearchResults( t );
+					return false;
+				}
+
+				if( searchTimer ) clearTimeout(searchTimer);
+
+				searchTimer = setTimeout(function(){
+					api.updateQuickSearchResults( t );
+				}, 400);
+			}).attr('autocomplete','off');
+		},
+
+		updateQuickSearchResults : function(input) {
+			var panel, params,
+			minSearchLength = 2,
+			q = input.val();
+
+			if( q.length < minSearchLength ) return;
+
+			panel = input.parents('.tabs-panel');
+			params = {
+				'action': 'menu-quick-search',
+				'response-format': 'markup',
+				'menu': $('#menu').val(),
+				'menu-settings-column-nonce': $('#menu-settings-column-nonce').val(),
+				'q': q,
+				'type': input.attr('name')
+			};
+
+			$('.spinner', panel).show();
+
+			$.post( ajaxurl, params, function(menuMarkup) {
+				api.processQuickSearchQueryResponse(menuMarkup, params, panel);
+			});
+		},
+
+		addCustomLink : function( processMethod ) {
+			var url = $('#custom-menu-item-url').val(),
+				label = $('#custom-menu-item-name').val();
+
+			processMethod = processMethod || api.addMenuItemToBottom;
+
+			if ( '' == url || 'http://' == url )
+				return false;
+
+			// Show the ajax spinner
+			$('.customlinkdiv .spinner').show();
+			this.addLinkToMenu( url, label, processMethod, function() {
+				// Remove the ajax spinner
+				$('.customlinkdiv .spinner').hide();
+				// Set custom link form back to defaults
+				$('#custom-menu-item-name').val('').blur();
+				$('#custom-menu-item-url').val('http://');
+			});
+		},
+
+		addLinkToMenu : function(url, label, processMethod, callback) {
+			processMethod = processMethod || api.addMenuItemToBottom;
+			callback = callback || function(){};
+
+			api.addItemToMenu({
+				'-1': {
+					'menu-item-type': 'custom',
+					'menu-item-url': url,
+					'menu-item-title': label
+				}
+			}, processMethod, callback);
+		},
+
+		addItemToMenu : function(menuItem, processMethod, callback) {
+			var menu = $('#menu').val(),
+				nonce = $('#menu-settings-column-nonce').val();
+
+			processMethod = processMethod || function(){};
+			callback = callback || function(){};
+
+			params = {
+				'action': 'add-menu-item',
+				'menu': menu,
+				'menu-settings-column-nonce': nonce,
+				'menu-item': menuItem
+			};
+
+			$.post( ajaxurl, params, function(menuMarkup) {
+				var ins = $('#menu-instructions');
+				processMethod(menuMarkup, params);
+				if( ! ins.hasClass('menu-instructions-inactive') && ins.siblings().length )
+					ins.addClass('menu-instructions-inactive');
+				callback();
+			});
+		},
+
+		/**
+		 * Process the add menu item request response into menu list item.
+		 *
+		 * @param string menuMarkup The text server response of menu item markup.
+		 * @param object req The request arguments.
+		 */
+		addMenuItemToBottom : function( menuMarkup, req ) {
+			$(menuMarkup).hideAdvancedMenuItemFields().appendTo( api.targetList );
+		},
+
+		addMenuItemToTop : function( menuMarkup, req ) {
+			$(menuMarkup).hideAdvancedMenuItemFields().prependTo( api.targetList );
+		},
+
+		attachUnsavedChangesListener : function() {
+			$('#menu-management input, #menu-management select, #menu-management, #menu-management textarea').change(function(){
+				api.registerChange();
+			});
+
+			if ( 0 != $('#menu-to-edit').length ) {
+				window.onbeforeunload = function(){
+					if ( api.menusChanged )
+						return navMenuL10n.saveAlert;
+				};
+			} else {
+				// Make the post boxes read-only, as they can't be used yet
+				$('#menu-settings-column').find('input,select').prop('disabled', true).end().find('a').attr('href', '#').unbind('click');
+			}
+		},
+
+		registerChange : function() {
+			api.menusChanged = true;
+		},
+
+		attachTabsPanelListeners : function() {
+			$('#menu-settings-column').bind('click', function(e) {
+				var selectAreaMatch, panelId, wrapper, items,
+					target = $(e.target);
+
+				if ( target.hasClass('nav-tab-link') ) {
+					panelId = /#(.*)$/.exec(e.target.href);
+					if ( panelId && panelId[1] )
+						panelId = panelId[1]
+					else
+						return false;
+
+					wrapper = target.parents('.inside').first();
+
+					// upon changing tabs, we want to uncheck all checkboxes
+					$('input', wrapper).removeAttr('checked');
+
+					$('.tabs-panel-active', wrapper).removeClass('tabs-panel-active').addClass('tabs-panel-inactive');
+					$('#' + panelId, wrapper).removeClass('tabs-panel-inactive').addClass('tabs-panel-active');
+
+					$('.tabs', wrapper).removeClass('tabs');
+					target.parent().addClass('tabs');
+
+					// select the search bar
+					$('.quick-search', wrapper).focus();
+
+					return false;
+				} else if ( target.hasClass('select-all') ) {
+					selectAreaMatch = /#(.*)$/.exec(e.target.href);
+					if ( selectAreaMatch && selectAreaMatch[1] ) {
+						items = $('#' + selectAreaMatch[1] + ' .tabs-panel-active .menu-item-title input');
+						if( items.length === items.filter(':checked').length )
+							items.removeAttr('checked');
+						else
+							items.prop('checked', true);
+						return false;
+					}
+				} else if ( target.hasClass('submit-add-to-menu') ) {
+					api.registerChange();
+
+					if ( e.target.id && 'submit-customlinkdiv' == e.target.id )
+						api.addCustomLink( api.addMenuItemToBottom );
+					else if ( e.target.id && -1 != e.target.id.indexOf('submit-') )
+						$('#' + e.target.id.replace(/submit-/, '')).addSelectedToMenu( api.addMenuItemToBottom );
+					return false;
+				} else if ( target.hasClass('page-numbers') ) {
+					$.post( ajaxurl, e.target.href.replace(/.*\?/, '').replace(/action=([^&]*)/, '') + '&action=menu-get-metabox',
+						function( resp ) {
+							if ( -1 == resp.indexOf('replace-id') )
+								return;
+
+							var metaBoxData = $.parseJSON(resp),
+							toReplace = document.getElementById(metaBoxData['replace-id']),
+							placeholder = document.createElement('div'),
+							wrap = document.createElement('div');
+
+							if ( ! metaBoxData['markup'] || ! toReplace )
+								return;
+
+							wrap.innerHTML = metaBoxData['markup'] ? metaBoxData['markup'] : '';
+
+							toReplace.parentNode.insertBefore( placeholder, toReplace );
+							placeholder.parentNode.removeChild( toReplace );
+
+							placeholder.parentNode.insertBefore( wrap, placeholder );
+
+							placeholder.parentNode.removeChild( placeholder );
+
+						}
+					);
+
+					return false;
+				}
+			});
+		},
+
+		initTabManager : function() {
+			var fixed = $('.nav-tabs-wrapper'),
+				fluid = fixed.children('.nav-tabs'),
+				active = fluid.children('.nav-tab-active'),
+				tabs = fluid.children('.nav-tab'),
+				tabsWidth = 0,
+				fixedRight, fixedLeft,
+				arrowLeft, arrowRight, resizeTimer, css = {},
+				marginFluid = api.isRTL ? 'margin-right' : 'margin-left',
+				marginFixed = api.isRTL ? 'margin-left' : 'margin-right',
+				msPerPx = 2;
+
+			/**
+			 * Refreshes the menu tabs.
+			 * Will show and hide arrows where necessary.
+			 * Scrolls to the active tab by default.
+			 *
+			 * @param savePosition {boolean} Optional. Prevents scrolling so
+			 * 		  that the current position is maintained. Default false.
+			 **/
+			api.refreshMenuTabs = function( savePosition ) {
+				var fixedWidth = fixed.width(),
+					margin = 0, css = {};
+				fixedLeft = fixed.offset().left;
+				fixedRight = fixedLeft + fixedWidth;
+
+				if( !savePosition )
+					active.makeTabVisible();
+
+				// Prevent space from building up next to the last tab if there's more to show
+				if( tabs.last().isTabVisible() ) {
+					margin = fixed.width() - tabsWidth;
+					margin = margin > 0 ? 0 : margin;
+					css[marginFluid] = margin + 'px';
+					fluid.animate( css, 100, "linear" );
+				}
+
+				// Show the arrows only when necessary
+				if( fixedWidth > tabsWidth )
+					arrowLeft.add( arrowRight ).hide();
+				else
+					arrowLeft.add( arrowRight ).show();
+			}
+
+			$.fn.extend({
+				makeTabVisible : function() {
+					var t = this.eq(0), left, right, css = {}, shift = 0;
+
+					if( ! t.length ) return this;
+
+					left = t.offset().left;
+					right = left + t.outerWidth();
+
+					if( right > fixedRight )
+						shift = fixedRight - right;
+					else if ( left < fixedLeft )
+						shift = fixedLeft - left;
+
+					if( ! shift ) return this;
+
+					css[marginFluid] = "+=" + api.negateIfRTL * shift + 'px';
+					fluid.animate( css, Math.abs( shift ) * msPerPx, "linear" );
+					return this;
+				},
+				isTabVisible : function() {
+					var t = this.eq(0),
+						left = t.offset().left,
+						right = left + t.outerWidth();
+					return ( right <= fixedRight && left >= fixedLeft ) ? true : false;
+				}
+			});
+
+			// Find the width of all tabs
+			tabs.each(function(){
+				tabsWidth += $(this).outerWidth(true);
+			});
+
+			// Set up fixed margin for overflow, unset padding
+			css['padding'] = 0;
+			css[marginFixed] = (-1 * tabsWidth) + 'px';
+			fluid.css( css );
+
+			// Build tab navigation
+			arrowLeft = $('<div class="nav-tabs-arrow nav-tabs-arrow-left"><a>&laquo;</a></div>');
+			arrowRight = $('<div class="nav-tabs-arrow nav-tabs-arrow-right"><a>&raquo;</a></div>');
+			// Attach to the document
+			fixed.wrap('<div class="nav-tabs-nav"/>').parent().prepend( arrowLeft ).append( arrowRight );
+
+			// Set the menu tabs
+			api.refreshMenuTabs();
+			// Make sure the tabs reset on resize
+			$(window).resize(function() {
+				if( resizeTimer ) clearTimeout(resizeTimer);
+				resizeTimer = setTimeout( api.refreshMenuTabs, 200);
+			});
+
+			// Build arrow functions
+			$.each([{
+					arrow : arrowLeft,
+					next : "next",
+					last : "first",
+					operator : "+="
+				},{
+					arrow : arrowRight,
+					next : "prev",
+					last : "last",
+					operator : "-="
+				}], function(){
+				var that = this;
+				this.arrow.mousedown(function(){
+					var marginFluidVal = Math.abs( parseInt( fluid.css(marginFluid) ) ),
+						shift = marginFluidVal,
+						css = {};
+
+					if( "-=" == that.operator )
+						shift = Math.abs( tabsWidth - fixed.width() ) - marginFluidVal;
+
+					if( ! shift ) return;
+
+					css[marginFluid] = that.operator + shift + 'px';
+					fluid.animate( css, shift * msPerPx, "linear" );
+				}).mouseup(function(){
+					var tab, next;
+					fluid.stop(true);
+					tab = tabs[that.last]();
+					while( (next = tab[that.next]()) && next.length && ! next.isTabVisible() ) {
+						tab = next;
+					}
+					tab.makeTabVisible();
+				});
+			});
+		},
+
+		eventOnClickEditLink : function(clickedEl) {
+			var settings, item,
+			matchedSection = /#(.*)$/.exec(clickedEl.href);
+			if ( matchedSection && matchedSection[1] ) {
+				settings = $('#'+matchedSection[1]);
+				item = settings.parent();
+				if( 0 != item.length ) {
+					if( item.hasClass('menu-item-edit-inactive') ) {
+						if( ! settings.data('menu-item-data') ) {
+							settings.data( 'menu-item-data', settings.getItemData() );
+						}
+						settings.slideDown('fast');
+						item.removeClass('menu-item-edit-inactive')
+							.addClass('menu-item-edit-active');
+					} else {
+						settings.slideUp('fast');
+						item.removeClass('menu-item-edit-active')
+							.addClass('menu-item-edit-inactive');
+					}
+					return false;
+				}
+			}
+		},
+
+		eventOnClickCancelLink : function(clickedEl) {
+			var settings = $(clickedEl).closest('.menu-item-settings');
+			settings.setItemData( settings.data('menu-item-data') );
+			return false;
+		},
+
+		eventOnClickMenuSave : function(clickedEl) {
+			var locs = '',
+			menuName = $('#menu-name'),
+			menuNameVal = menuName.val();
+			// Cancel and warn if invalid menu name
+			if( !menuNameVal || menuNameVal == menuName.attr('title') || !menuNameVal.replace(/\s+/, '') ) {
+				menuName.parent().addClass('form-invalid');
+				return false;
+			}
+			// Copy menu theme locations
+			$('#nav-menu-theme-locations select').each(function() {
+				locs += '<input type="hidden" name="' + this.name + '" value="' + $(this).val() + '" />';
+			});
+			$('#update-nav-menu').append( locs );
+			// Update menu item position data
+			api.menuList.find('.menu-item-data-position').val( function(index) { return index + 1; } );
+			window.onbeforeunload = null;
+
+			return true;
+		},
+
+		eventOnClickMenuDelete : function(clickedEl) {
+			// Delete warning AYS
+			if ( confirm( navMenuL10n.warnDeleteMenu ) ) {
+				window.onbeforeunload = null;
+				return true;
+			}
+			return false;
+		},
+
+		eventOnClickMenuItemDelete : function(clickedEl) {
+			var itemID = parseInt(clickedEl.id.replace('delete-', ''), 10);
+			api.removeMenuItem( $('#menu-item-' + itemID) );
+			api.registerChange();
+			return false;
+		},
+
+		/**
+		 * Process the quick search response into a search result
+		 *
+		 * @param string resp The server response to the query.
+		 * @param object req The request arguments.
+		 * @param jQuery panel The tabs panel we're searching in.
+		 */
+		processQuickSearchQueryResponse : function(resp, req, panel) {
+			var matched, newID,
+			takenIDs = {},
+			form = document.getElementById('nav-menu-meta'),
+			pattern = new RegExp('menu-item\\[(\[^\\]\]*)', 'g'),
+			$items = $('<div>').html(resp).find('li'),
+			$item;
+
+			if( ! $items.length ) {
+				$('.categorychecklist', panel).html( '<li><p>' + navMenuL10n.noResultsFound + '</p></li>' );
+				$('.spinner', panel).hide();
+				return;
+			}
+
+			$items.each(function(){
+				$item = $(this);
+
+				// make a unique DB ID number
+				matched = pattern.exec($item.html());
+
+				if ( matched && matched[1] ) {
+					newID = matched[1];
+					while( form.elements['menu-item[' + newID + '][menu-item-type]'] || takenIDs[ newID ] ) {
+						newID--;
+					}
+
+					takenIDs[newID] = true;
+					if ( newID != matched[1] ) {
+						$item.html( $item.html().replace(new RegExp(
+							'menu-item\\[' + matched[1] + '\\]', 'g'),
+							'menu-item[' + newID + ']'
+						) );
+					}
+				}
+			});
+
+			$('.categorychecklist', panel).html( $items );
+			$('.spinner', panel).hide();
+		},
+
+		removeMenuItem : function(el) {
+			var children = el.childMenuItems();
+
+			el.addClass('deleting').animate({
+					opacity : 0,
+					height: 0
+				}, 350, function() {
+					var ins = $('#menu-instructions');
+					el.remove();
+					children.shiftDepthClass(-1).updateParentMenuItemDBId();
+					if( ! ins.siblings().length )
+						ins.removeClass('menu-instructions-inactive');
+				});
+		},
+
+		depthToPx : function(depth) {
+			return depth * api.options.menuItemDepthPerLevel;
+		},
+
+		pxToDepth : function(px) {
+			return Math.floor(px / api.options.menuItemDepthPerLevel);
+		}
+
+	};
+
+	$(document).ready(function(){ wpNavMenu.init(); });
+
+})(jQuery);
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-admin/js/nav-menu.min.js	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,1 @@
+var wpNavMenu;(function(b){var a=wpNavMenu={options:{menuItemDepthPerLevel:30,globalMaxDepth:11},menuList:undefined,targetList:undefined,menusChanged:false,isRTL:!!("undefined"!=typeof isRtl&&isRtl),negateIfRTL:("undefined"!=typeof isRtl&&isRtl)?-1:1,init:function(){a.menuList=b("#menu-to-edit");a.targetList=a.menuList;this.jQueryExtensions();this.attachMenuEditListeners();this.setupInputWithDefaultTitle();this.attachQuickSearchListeners();this.attachThemeLocationsListeners();this.attachTabsPanelListeners();this.attachUnsavedChangesListener();if(a.menuList.length){this.initSortables()}this.initToggles();this.initTabManager()},jQueryExtensions:function(){b.fn.extend({menuItemDepth:function(){var c=a.isRTL?this.eq(0).css("margin-right"):this.eq(0).css("margin-left");return a.pxToDepth(c&&-1!=c.indexOf("px")?c.slice(0,-2):0)},updateDepthClass:function(d,c){return this.each(function(){var e=b(this);c=c||e.menuItemDepth();b(this).removeClass("menu-item-depth-"+c).addClass("menu-item-depth-"+d)})},shiftDepthClass:function(c){return this.each(function(){var d=b(this),e=d.menuItemDepth();b(this).removeClass("menu-item-depth-"+e).addClass("menu-item-depth-"+(e+c))})},childMenuItems:function(){var c=b();this.each(function(){var d=b(this),f=d.menuItemDepth(),e=d.next();while(e.length&&e.menuItemDepth()>f){c=c.add(e);e=e.next()}});return c},updateParentMenuItemDBId:function(){return this.each(function(){var e=b(this),c=e.find(".menu-item-data-parent-id"),f=e.menuItemDepth(),d=e.prev();if(f==0){c.val(0)}else{while(!d[0]||!d[0].className||-1==d[0].className.indexOf("menu-item")||(d.menuItemDepth()!=f-1)){d=d.prev()}c.val(d.find(".menu-item-data-db-id").val())}})},hideAdvancedMenuItemFields:function(){return this.each(function(){var c=b(this);b(".hide-column-tog").not(":checked").each(function(){c.find(".field-"+b(this).val()).addClass("hidden-field")})})},addSelectedToMenu:function(c){if(0==b("#menu-to-edit").length){return false}return this.each(function(){var e=b(this),d={},g=e.find(".tabs-panel-active .categorychecklist li input:checked"),f=new RegExp("menu-item\\[([^\\]]*)");c=c||a.addMenuItemToBottom;if(!g.length){return false}e.find(".spinner").show();b(g).each(function(){var i=b(this),h=f.exec(i.attr("name")),j="undefined"==typeof h[1]?0:parseInt(h[1],10);if(this.className&&-1!=this.className.indexOf("add-to-top")){c=a.addMenuItemToTop}d[j]=i.closest("li").getItemData("add-menu-item",j)});a.addItemToMenu(d,c,function(){g.removeAttr("checked");e.find(".spinner").hide()})})},getItemData:function(f,g){f=f||"menu-item";var d={},e,c=["menu-item-db-id","menu-item-object-id","menu-item-object","menu-item-parent-id","menu-item-position","menu-item-type","menu-item-title","menu-item-url","menu-item-description","menu-item-attr-title","menu-item-target","menu-item-classes","menu-item-xfn"];if(!g&&f=="menu-item"){g=this.find(".menu-item-data-db-id").val()}if(!g){return d}this.find("input").each(function(){var h;e=c.length;while(e--){if(f=="menu-item"){h=c[e]+"["+g+"]"}else{if(f=="add-menu-item"){h="menu-item["+g+"]["+c[e]+"]"}}if(this.name&&h==this.name){d[c[e]]=this.value}}});return d},setItemData:function(c,d,e){d=d||"menu-item";if(!e&&d=="menu-item"){e=b(".menu-item-data-db-id",this).val()}if(!e){return this}this.find("input").each(function(){var f=b(this),g;b.each(c,function(h,i){if(d=="menu-item"){g=h+"["+e+"]"}else{if(d=="add-menu-item"){g="menu-item["+e+"]["+h+"]"}}if(g==f.attr("name")){f.val(i)}})});return this}})},initToggles:function(){postboxes.add_postbox_toggles("nav-menus");columns.useCheckboxesForHidden();columns.checked=function(c){b(".field-"+c).removeClass("hidden-field")};columns.unchecked=function(c){b(".field-"+c).addClass("hidden-field")};a.menuList.hideAdvancedMenuItemFields()},initSortables:function(){var p=0,e,t,d,l,o,f,c,i,s,m=a.menuList.offset().left,h=b("body"),q,n=r();m+=a.isRTL?a.menuList.width():0;a.menuList.sortable({handle:".menu-item-handle",placeholder:"sortable-placeholder",start:function(A,z){var u,x,w,v,y;if(a.isRTL){z.item[0].style.right="auto"}s=z.item.children(".menu-item-transport");e=z.item.menuItemDepth();j(z,e);w=(z.item.next()[0]==z.placeholder[0])?z.item.next():z.item;v=w.childMenuItems();s.append(v);u=s.outerHeight();u+=(u>0)?(z.placeholder.css("margin-top").slice(0,-2)*1):0;u+=z.helper.outerHeight();i=u;u-=2;z.placeholder.height(u);q=e;v.each(function(){var B=b(this).menuItemDepth();q=(B>q)?B:q});x=z.helper.find(".menu-item-handle").outerWidth();x+=a.depthToPx(q-e);x-=2;z.placeholder.width(x);y=z.placeholder.next();y.css("margin-top",i+"px");z.placeholder.detach();b(this).sortable("refresh");z.item.after(z.placeholder);y.css("margin-top",0);k(z)},stop:function(x,w){var v,u=p-e;v=s.children().insertAfter(w.item);if(u!=0){w.item.updateDepthClass(p);v.shiftDepthClass(u);g(u)}a.registerChange();w.item.updateParentMenuItemDBId();w.item[0].style.top=0;if(a.isRTL){w.item[0].style.left="auto";w.item[0].style.right=0}a.refreshMenuTabs(true)},change:function(v,u){if(!u.placeholder.parent().hasClass("menu")){(l.length)?l.after(u.placeholder):a.menuList.prepend(u.placeholder)}k(u)},sort:function(w,v){var y=v.helper.offset(),u=a.isRTL?y.left+v.helper.width():y.left,x=a.negateIfRTL*a.pxToDepth(u-m);if(x>d||y.top<f){x=d}else{if(x<t){x=t}}if(x!=p){j(v,x)}if(c&&y.top+i>c){o.after(v.placeholder);k(v);b(this).sortable("refreshPositions")}}});function k(u){var v;l=u.placeholder.prev();o=u.placeholder.next();if(l[0]==u.item[0]){l=l.prev()}if(o[0]==u.item[0]){o=o.next()}f=(l.length)?l.offset().top+l.height():0;c=(o.length)?o.offset().top+o.height()/3:0;t=(o.length)?o.menuItemDepth():0;if(l.length){d=((v=l.menuItemDepth()+1)>a.options.globalMaxDepth)?a.options.globalMaxDepth:v}else{d=0}}function j(u,v){u.placeholder.updateDepthClass(v,p);p=v}function r(){if(!h[0].className){return 0}var u=h[0].className.match(/menu-max-depth-(\d+)/);return u&&u[1]?parseInt(u[1]):0}function g(u){var v,w=n;if(u===0){return}else{if(u>0){v=q+u;if(v>n){w=v}}else{if(u<0&&q==n){while(!b(".menu-item-depth-"+w,a.menuList).length&&w>0){w--}}}}h.removeClass("menu-max-depth-"+n).addClass("menu-max-depth-"+w);n=w}},attachMenuEditListeners:function(){var c=this;b("#update-nav-menu").bind("click",function(d){if(d.target&&d.target.className){if(-1!=d.target.className.indexOf("item-edit")){return c.eventOnClickEditLink(d.target)}else{if(-1!=d.target.className.indexOf("menu-save")){return c.eventOnClickMenuSave(d.target)}else{if(-1!=d.target.className.indexOf("menu-delete")){return c.eventOnClickMenuDelete(d.target)}else{if(-1!=d.target.className.indexOf("item-delete")){return c.eventOnClickMenuItemDelete(d.target)}else{if(-1!=d.target.className.indexOf("item-cancel")){return c.eventOnClickCancelLink(d.target)}}}}}}});b('#add-custom-links input[type="text"]').keypress(function(d){if(d.keyCode===13){d.preventDefault();b("#submit-customlinkdiv").click()}})},setupInputWithDefaultTitle:function(){var c="input-with-default-title";b("."+c).each(function(){var f=b(this),e=f.attr("title"),d=f.val();f.data(c,e);if(""==d){f.val(e)}else{if(e==d){return}else{f.removeClass(c)}}}).focus(function(){var d=b(this);if(d.val()==d.data(c)){d.val("").removeClass(c)}}).blur(function(){var d=b(this);if(""==d.val()){d.addClass(c).val(d.data(c))}})},attachThemeLocationsListeners:function(){var d=b("#nav-menu-theme-locations"),c={};c.action="menu-locations-save";c["menu-settings-column-nonce"]=b("#menu-settings-column-nonce").val();d.find('input[type="submit"]').click(function(){d.find("select").each(function(){c[this.name]=b(this).val()});d.find(".spinner").show();b.post(ajaxurl,c,function(e){d.find(".spinner").hide()});return false})},attachQuickSearchListeners:function(){var c;b(".quick-search").keypress(function(f){var d=b(this);if(13==f.which){a.updateQuickSearchResults(d);return false}if(c){clearTimeout(c)}c=setTimeout(function(){a.updateQuickSearchResults(d)},400)}).attr("autocomplete","off")},updateQuickSearchResults:function(d){var c,g,e=2,f=d.val();if(f.length<e){return}c=d.parents(".tabs-panel");g={action:"menu-quick-search","response-format":"markup",menu:b("#menu").val(),"menu-settings-column-nonce":b("#menu-settings-column-nonce").val(),q:f,type:d.attr("name")};b(".spinner",c).show();b.post(ajaxurl,g,function(h){a.processQuickSearchQueryResponse(h,g,c)})},addCustomLink:function(c){var e=b("#custom-menu-item-url").val(),d=b("#custom-menu-item-name").val();c=c||a.addMenuItemToBottom;if(""==e||"http://"==e){return false}b(".customlinkdiv .spinner").show();this.addLinkToMenu(e,d,c,function(){b(".customlinkdiv .spinner").hide();b("#custom-menu-item-name").val("").blur();b("#custom-menu-item-url").val("http://")})},addLinkToMenu:function(e,d,c,f){c=c||a.addMenuItemToBottom;f=f||function(){};a.addItemToMenu({"-1":{"menu-item-type":"custom","menu-item-url":e,"menu-item-title":d}},c,f)},addItemToMenu:function(e,c,g){var f=b("#menu").val(),d=b("#menu-settings-column-nonce").val();c=c||function(){};g=g||function(){};params={action:"add-menu-item",menu:f,"menu-settings-column-nonce":d,"menu-item":e};b.post(ajaxurl,params,function(h){var i=b("#menu-instructions");c(h,params);if(!i.hasClass("menu-instructions-inactive")&&i.siblings().length){i.addClass("menu-instructions-inactive")}g()})},addMenuItemToBottom:function(c,d){b(c).hideAdvancedMenuItemFields().appendTo(a.targetList)},addMenuItemToTop:function(c,d){b(c).hideAdvancedMenuItemFields().prependTo(a.targetList)},attachUnsavedChangesListener:function(){b("#menu-management input, #menu-management select, #menu-management, #menu-management textarea").change(function(){a.registerChange()});if(0!=b("#menu-to-edit").length){window.onbeforeunload=function(){if(a.menusChanged){return navMenuL10n.saveAlert}}}else{b("#menu-settings-column").find("input,select").prop("disabled",true).end().find("a").attr("href","#").unbind("click")}},registerChange:function(){a.menusChanged=true},attachTabsPanelListeners:function(){b("#menu-settings-column").bind("click",function(h){var f,d,i,c,g=b(h.target);if(g.hasClass("nav-tab-link")){d=/#(.*)$/.exec(h.target.href);if(d&&d[1]){d=d[1]}else{return false}i=g.parents(".inside").first();b("input",i).removeAttr("checked");b(".tabs-panel-active",i).removeClass("tabs-panel-active").addClass("tabs-panel-inactive");b("#"+d,i).removeClass("tabs-panel-inactive").addClass("tabs-panel-active");b(".tabs",i).removeClass("tabs");g.parent().addClass("tabs");b(".quick-search",i).focus();return false}else{if(g.hasClass("select-all")){f=/#(.*)$/.exec(h.target.href);if(f&&f[1]){c=b("#"+f[1]+" .tabs-panel-active .menu-item-title input");if(c.length===c.filter(":checked").length){c.removeAttr("checked")}else{c.prop("checked",true)}return false}}else{if(g.hasClass("submit-add-to-menu")){a.registerChange();if(h.target.id&&"submit-customlinkdiv"==h.target.id){a.addCustomLink(a.addMenuItemToBottom)}else{if(h.target.id&&-1!=h.target.id.indexOf("submit-")){b("#"+h.target.id.replace(/submit-/,"")).addSelectedToMenu(a.addMenuItemToBottom)}}return false}else{if(g.hasClass("page-numbers")){b.post(ajaxurl,h.target.href.replace(/.*\?/,"").replace(/action=([^&]*)/,"")+"&action=menu-get-metabox",function(m){if(-1==m.indexOf("replace-id")){return}var l=b.parseJSON(m),e=document.getElementById(l["replace-id"]),k=document.createElement("div"),j=document.createElement("div");if(!l.markup||!e){return}j.innerHTML=l.markup?l.markup:"";e.parentNode.insertBefore(k,e);k.parentNode.removeChild(e);k.parentNode.insertBefore(j,k);k.parentNode.removeChild(k)});return false}}}}})},initTabManager:function(){var h=b(".nav-tabs-wrapper"),j=h.children(".nav-tabs"),g=j.children(".nav-tab-active"),m=j.children(".nav-tab"),e=0,o,f,l,d,k,i={},c=a.isRTL?"margin-right":"margin-left",p=a.isRTL?"margin-left":"margin-right",n=2;a.refreshMenuTabs=function(q){var t=h.width(),s=0,r={};f=h.offset().left;o=f+t;if(!q){g.makeTabVisible()}if(m.last().isTabVisible()){s=h.width()-e;s=s>0?0:s;r[c]=s+"px";j.animate(r,100,"linear")}if(t>e){l.add(d).hide()}else{l.add(d).show()}};b.fn.extend({makeTabVisible:function(){var u=this.eq(0),v,s,r={},q=0;if(!u.length){return this}v=u.offset().left;s=v+u.outerWidth();if(s>o){q=o-s}else{if(v<f){q=f-v}}if(!q){return this}r[c]="+="+a.negateIfRTL*q+"px";j.animate(r,Math.abs(q)*n,"linear");return this},isTabVisible:function(){var r=this.eq(0),s=r.offset().left,q=s+r.outerWidth();return(q<=o&&s>=f)?true:false}});m.each(function(){e+=b(this).outerWidth(true)});i.padding=0;i[p]=(-1*e)+"px";j.css(i);l=b('<div class="nav-tabs-arrow nav-tabs-arrow-left"><a>&laquo;</a></div>');d=b('<div class="nav-tabs-arrow nav-tabs-arrow-right"><a>&raquo;</a></div>');h.wrap('<div class="nav-tabs-nav"/>').parent().prepend(l).append(d);a.refreshMenuTabs();b(window).resize(function(){if(k){clearTimeout(k)}k=setTimeout(a.refreshMenuTabs,200)});b.each([{arrow:l,next:"next",last:"first",operator:"+="},{arrow:d,next:"prev",last:"last",operator:"-="}],function(){var q=this;this.arrow.mousedown(function(){var t=Math.abs(parseInt(j.css(c))),r=t,s={};if("-="==q.operator){r=Math.abs(e-h.width())-t}if(!r){return}s[c]=q.operator+r+"px";j.animate(s,r*n,"linear")}).mouseup(function(){var s,r;j.stop(true);s=m[q.last]();while((r=s[q.next]())&&r.length&&!r.isTabVisible()){s=r}s.makeTabVisible()})})},eventOnClickEditLink:function(d){var c,e,f=/#(.*)$/.exec(d.href);if(f&&f[1]){c=b("#"+f[1]);e=c.parent();if(0!=e.length){if(e.hasClass("menu-item-edit-inactive")){if(!c.data("menu-item-data")){c.data("menu-item-data",c.getItemData())}c.slideDown("fast");e.removeClass("menu-item-edit-inactive").addClass("menu-item-edit-active")}else{c.slideUp("fast");e.removeClass("menu-item-edit-active").addClass("menu-item-edit-inactive")}return false}}},eventOnClickCancelLink:function(d){var c=b(d).closest(".menu-item-settings");c.setItemData(c.data("menu-item-data"));return false},eventOnClickMenuSave:function(e){var f="",c=b("#menu-name"),d=c.val();if(!d||d==c.attr("title")||!d.replace(/\s+/,"")){c.parent().addClass("form-invalid");return false}b("#nav-menu-theme-locations select").each(function(){f+='<input type="hidden" name="'+this.name+'" value="'+b(this).val()+'" />'});b("#update-nav-menu").append(f);a.menuList.find(".menu-item-data-position").val(function(g){return g+1});window.onbeforeunload=null;return true},eventOnClickMenuDelete:function(c){if(confirm(navMenuL10n.warnDeleteMenu)){window.onbeforeunload=null;return true}return false},eventOnClickMenuItemDelete:function(c){var d=parseInt(c.id.replace("delete-",""),10);a.removeMenuItem(b("#menu-item-"+d));a.registerChange();return false},processQuickSearchQueryResponse:function(g,k,c){var e,i,f={},d=document.getElementById("nav-menu-meta"),j=new RegExp("menu-item\\[([^\\]]*)","g"),h=b("<div>").html(g).find("li"),l;if(!h.length){b(".categorychecklist",c).html("<li><p>"+navMenuL10n.noResultsFound+"</p></li>");b(".spinner",c).hide();return}h.each(function(){l=b(this);e=j.exec(l.html());if(e&&e[1]){i=e[1];while(d.elements["menu-item["+i+"][menu-item-type]"]||f[i]){i--}f[i]=true;if(i!=e[1]){l.html(l.html().replace(new RegExp("menu-item\\["+e[1]+"\\]","g"),"menu-item["+i+"]"))}}});b(".categorychecklist",c).html(h);b(".spinner",c).hide()},removeMenuItem:function(d){var c=d.childMenuItems();d.addClass("deleting").animate({opacity:0,height:0},350,function(){var e=b("#menu-instructions");d.remove();c.shiftDepthClass(-1).updateParentMenuItemDBId();if(!e.siblings().length){e.removeClass("menu-instructions-inactive")}})},depthToPx:function(c){return c*a.options.menuItemDepthPerLevel},pxToDepth:function(c){return Math.floor(c/a.options.menuItemDepthPerLevel)}};b(document).ready(function(){wpNavMenu.init()})})(jQuery);
\ No newline at end of file
--- a/web/wp-admin/js/password-strength-meter.dev.js	Wed Dec 19 12:35:13 2012 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,36 +0,0 @@
-// Password strength meter
-function passwordStrength(password1, username, password2) {
-	var shortPass = 1, badPass = 2, goodPass = 3, strongPass = 4, mismatch = 5, symbolSize = 0, natLog, score;
-
-	// password 1 != password 2
-	if ( (password1 != password2) && password2.length > 0)
-		return mismatch
-
-	//password < 4
-	if ( password1.length < 4 )
-		return shortPass
-
-	//password1 == username
-	if ( password1.toLowerCase() == username.toLowerCase() )
-		return badPass;
-
-	if ( password1.match(/[0-9]/) )
-		symbolSize +=10;
-	if ( password1.match(/[a-z]/) )
-		symbolSize +=26;
-	if ( password1.match(/[A-Z]/) )
-		symbolSize +=26;
-	if ( password1.match(/[^a-zA-Z0-9]/) )
-		symbolSize +=31;
-
-	natLog = Math.log( Math.pow(symbolSize, password1.length) );
-	score = natLog / Math.LN2;
-
-	if (score < 40 )
-		return badPass
-
-	if (score < 56 )
-		return goodPass
-
-    return strongPass;
-}
--- a/web/wp-admin/js/password-strength-meter.js	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-admin/js/password-strength-meter.js	Wed Dec 19 17:46:52 2012 -0800
@@ -1,1 +1,36 @@
-function passwordStrength(f,i,d){var k=1,h=2,b=3,a=4,c=5,g=0,j,e;if((f!=d)&&d.length>0){return c}if(f.length<4){return k}if(f.toLowerCase()==i.toLowerCase()){return h}if(f.match(/[0-9]/)){g+=10}if(f.match(/[a-z]/)){g+=26}if(f.match(/[A-Z]/)){g+=26}if(f.match(/[^a-zA-Z0-9]/)){g+=31}j=Math.log(Math.pow(g,f.length));e=j/Math.LN2;if(e<40){return h}if(e<56){return b}return a};
\ No newline at end of file
+// Password strength meter
+function passwordStrength(password1, username, password2) {
+	var shortPass = 1, badPass = 2, goodPass = 3, strongPass = 4, mismatch = 5, symbolSize = 0, natLog, score;
+
+	// password 1 != password 2
+	if ( (password1 != password2) && password2.length > 0)
+		return mismatch
+
+	//password < 4
+	if ( password1.length < 4 )
+		return shortPass
+
+	//password1 == username
+	if ( password1.toLowerCase() == username.toLowerCase() )
+		return badPass;
+
+	if ( password1.match(/[0-9]/) )
+		symbolSize +=10;
+	if ( password1.match(/[a-z]/) )
+		symbolSize +=26;
+	if ( password1.match(/[A-Z]/) )
+		symbolSize +=26;
+	if ( password1.match(/[^a-zA-Z0-9]/) )
+		symbolSize +=31;
+
+	natLog = Math.log( Math.pow(symbolSize, password1.length) );
+	score = natLog / Math.LN2;
+
+	if (score < 40 )
+		return badPass
+
+	if (score < 56 )
+		return goodPass
+
+    return strongPass;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-admin/js/password-strength-meter.min.js	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,1 @@
+function passwordStrength(f,i,d){var k=1,h=2,b=3,a=4,c=5,g=0,j,e;if((f!=d)&&d.length>0){return c}if(f.length<4){return k}if(f.toLowerCase()==i.toLowerCase()){return h}if(f.match(/[0-9]/)){g+=10}if(f.match(/[a-z]/)){g+=26}if(f.match(/[A-Z]/)){g+=26}if(f.match(/[^a-zA-Z0-9]/)){g+=31}j=Math.log(Math.pow(g,f.length));e=j/Math.LN2;if(e<40){return h}if(e<56){return b}return a};
\ No newline at end of file
--- a/web/wp-admin/js/plugin-install.dev.js	Wed Dec 19 12:35:13 2012 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,53 +0,0 @@
-/* Plugin Browser Thickbox related JS*/
-var tb_position;
-jQuery(document).ready(function($) {
-	tb_position = function() {
-		var tbWindow = $('#TB_window'), width = $(window).width(), H = $(window).height(), W = ( 720 < width ) ? 720 : width, adminbar_height = 0;
-
-		if ( $('body.admin-bar').length )
-			adminbar_height = 28;
-
-		if ( tbWindow.size() ) {
-			tbWindow.width( W - 50 ).height( H - 45 - adminbar_height );
-			$('#TB_iframeContent').width( W - 50 ).height( H - 75 - adminbar_height );
-			tbWindow.css({'margin-left': '-' + parseInt((( W - 50 ) / 2),10) + 'px'});
-			if ( typeof document.body.style.maxWidth != 'undefined' )
-				tbWindow.css({'top': 20 + adminbar_height + 'px','margin-top':'0'});
-		};
-
-		return $('a.thickbox').each( function() {
-			var href = $(this).attr('href');
-			if ( ! href )
-				return;
-			href = href.replace(/&width=[0-9]+/g, '');
-			href = href.replace(/&height=[0-9]+/g, '');
-			$(this).attr( 'href', href + '&width=' + ( W - 80 ) + '&height=' + ( H - 85 - adminbar_height ) );
-		});
-	};
-
-	$(window).resize(function(){ tb_position(); });
-
-	 $('#dashboard_plugins a.thickbox, .plugins a.thickbox').click( function() {
-		tb_click.call(this);
-
-		$('#TB_title').css({'background-color':'#222','color':'#cfcfcf'});
-		$('#TB_ajaxWindowTitle').html('<strong>' + plugininstallL10n.plugin_information + '</strong>&nbsp;' + $(this).attr('title') );
-		return false;
-	});
-
-	/* Plugin install related JS*/
-	$('#plugin-information #sidemenu a').click( function() {
-		var tab = $(this).attr('name');
-		//Flip the tab
-		$('#plugin-information-header a.current').removeClass('current');
-		$(this).addClass('current');
-		//Flip the content.
-		$('#section-holder div.section').hide(); //Hide 'em all
-		$('#section-' + tab).show();
-		return false;
-	});
-
-	$('a.install-now').click( function() {
-		return confirm( plugininstallL10n.ays );
-	});
-});
--- a/web/wp-admin/js/plugin-install.js	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-admin/js/plugin-install.js	Wed Dec 19 17:46:52 2012 -0800
@@ -1,1 +1,53 @@
-var tb_position;jQuery(document).ready(function(a){tb_position=function(){var f=a("#TB_window"),e=a(window).width(),d=a(window).height(),c=(720<e)?720:e,b=0;if(a("body.admin-bar").length){b=28}if(f.size()){f.width(c-50).height(d-45-b);a("#TB_iframeContent").width(c-50).height(d-75-b);f.css({"margin-left":"-"+parseInt(((c-50)/2),10)+"px"});if(typeof document.body.style.maxWidth!="undefined"){f.css({top:20+b+"px","margin-top":"0"})}}return a("a.thickbox").each(function(){var g=a(this).attr("href");if(!g){return}g=g.replace(/&width=[0-9]+/g,"");g=g.replace(/&height=[0-9]+/g,"");a(this).attr("href",g+"&width="+(c-80)+"&height="+(d-85-b))})};a(window).resize(function(){tb_position()});a("#dashboard_plugins a.thickbox, .plugins a.thickbox").click(function(){tb_click.call(this);a("#TB_title").css({"background-color":"#222",color:"#cfcfcf"});a("#TB_ajaxWindowTitle").html("<strong>"+plugininstallL10n.plugin_information+"</strong>&nbsp;"+a(this).attr("title"));return false});a("#plugin-information #sidemenu a").click(function(){var b=a(this).attr("name");a("#plugin-information-header a.current").removeClass("current");a(this).addClass("current");a("#section-holder div.section").hide();a("#section-"+b).show();return false});a("a.install-now").click(function(){return confirm(plugininstallL10n.ays)})});
\ No newline at end of file
+/* Plugin Browser Thickbox related JS*/
+var tb_position;
+jQuery(document).ready(function($) {
+	tb_position = function() {
+		var tbWindow = $('#TB_window'), width = $(window).width(), H = $(window).height(), W = ( 720 < width ) ? 720 : width, adminbar_height = 0;
+
+		if ( $('body.admin-bar').length )
+			adminbar_height = 28;
+
+		if ( tbWindow.size() ) {
+			tbWindow.width( W - 50 ).height( H - 45 - adminbar_height );
+			$('#TB_iframeContent').width( W - 50 ).height( H - 75 - adminbar_height );
+			tbWindow.css({'margin-left': '-' + parseInt((( W - 50 ) / 2),10) + 'px'});
+			if ( typeof document.body.style.maxWidth != 'undefined' )
+				tbWindow.css({'top': 20 + adminbar_height + 'px','margin-top':'0'});
+		};
+
+		return $('a.thickbox').each( function() {
+			var href = $(this).attr('href');
+			if ( ! href )
+				return;
+			href = href.replace(/&width=[0-9]+/g, '');
+			href = href.replace(/&height=[0-9]+/g, '');
+			$(this).attr( 'href', href + '&width=' + ( W - 80 ) + '&height=' + ( H - 85 - adminbar_height ) );
+		});
+	};
+
+	$(window).resize(function(){ tb_position(); });
+
+	 $('#dashboard_plugins a.thickbox, .plugins a.thickbox').click( function() {
+		tb_click.call(this);
+
+		$('#TB_title').css({'background-color':'#222','color':'#cfcfcf'});
+		$('#TB_ajaxWindowTitle').html('<strong>' + plugininstallL10n.plugin_information + '</strong>&nbsp;' + $(this).attr('title') );
+		return false;
+	});
+
+	/* Plugin install related JS*/
+	$('#plugin-information #sidemenu a').click( function() {
+		var tab = $(this).attr('name');
+		//Flip the tab
+		$('#plugin-information-header a.current').removeClass('current');
+		$(this).addClass('current');
+		//Flip the content.
+		$('#section-holder div.section').hide(); //Hide 'em all
+		$('#section-' + tab).show();
+		return false;
+	});
+
+	$('a.install-now').click( function() {
+		return confirm( plugininstallL10n.ays );
+	});
+});
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-admin/js/plugin-install.min.js	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,1 @@
+var tb_position;jQuery(document).ready(function(a){tb_position=function(){var f=a("#TB_window"),e=a(window).width(),d=a(window).height(),c=(720<e)?720:e,b=0;if(a("body.admin-bar").length){b=28}if(f.size()){f.width(c-50).height(d-45-b);a("#TB_iframeContent").width(c-50).height(d-75-b);f.css({"margin-left":"-"+parseInt(((c-50)/2),10)+"px"});if(typeof document.body.style.maxWidth!="undefined"){f.css({top:20+b+"px","margin-top":"0"})}}return a("a.thickbox").each(function(){var g=a(this).attr("href");if(!g){return}g=g.replace(/&width=[0-9]+/g,"");g=g.replace(/&height=[0-9]+/g,"");a(this).attr("href",g+"&width="+(c-80)+"&height="+(d-85-b))})};a(window).resize(function(){tb_position()});a("#dashboard_plugins a.thickbox, .plugins a.thickbox").click(function(){tb_click.call(this);a("#TB_title").css({"background-color":"#222",color:"#cfcfcf"});a("#TB_ajaxWindowTitle").html("<strong>"+plugininstallL10n.plugin_information+"</strong>&nbsp;"+a(this).attr("title"));return false});a("#plugin-information #sidemenu a").click(function(){var b=a(this).attr("name");a("#plugin-information-header a.current").removeClass("current");a(this).addClass("current");a("#section-holder div.section").hide();a("#section-"+b).show();return false});a("a.install-now").click(function(){return confirm(plugininstallL10n.ays)})});
\ No newline at end of file
--- a/web/wp-admin/js/post.dev.js	Wed Dec 19 12:35:13 2012 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,663 +0,0 @@
-var tagBox, commentsBox, editPermalink, makeSlugeditClickable, WPSetThumbnailHTML, WPSetThumbnailID, WPRemoveThumbnail, wptitlehint;
-
-// return an array with any duplicate, whitespace or values removed
-function array_unique_noempty(a) {
-	var out = [];
-	jQuery.each( a, function(key, val) {
-		val = jQuery.trim(val);
-		if ( val && jQuery.inArray(val, out) == -1 )
-			out.push(val);
-		} );
-	return out;
-}
-
-(function($){
-
-tagBox = {
-	clean : function(tags) {
-		var comma = postL10n.comma;
-		if ( ',' !== comma )
-			tags = tags.replace(new RegExp(comma, 'g'), ',');
-		tags = tags.replace(/\s*,\s*/g, ',').replace(/,+/g, ',').replace(/[,\s]+$/, '').replace(/^[,\s]+/, '');
-		if ( ',' !== comma )
-			tags = tags.replace(/,/g, comma);
-		return tags;
-	},
-
-	parseTags : function(el) {
-		var id = el.id, num = id.split('-check-num-')[1], taxbox = $(el).closest('.tagsdiv'),
-			thetags = taxbox.find('.the-tags'), comma = postL10n.comma,
-			current_tags = thetags.val().split(comma), new_tags = [];
-		delete current_tags[num];
-
-		$.each( current_tags, function(key, val) {
-			val = $.trim(val);
-			if ( val ) {
-				new_tags.push(val);
-			}
-		});
-
-		thetags.val( this.clean( new_tags.join(comma) ) );
-
-		this.quickClicks(taxbox);
-		return false;
-	},
-
-	quickClicks : function(el) {
-		var thetags = $('.the-tags', el),
-			tagchecklist = $('.tagchecklist', el),
-			id = $(el).attr('id'),
-			current_tags, disabled;
-
-		if ( !thetags.length )
-			return;
-
-		disabled = thetags.prop('disabled');
-
-		current_tags = thetags.val().split(postL10n.comma);
-		tagchecklist.empty();
-
-		$.each( current_tags, function( key, val ) {
-			var span, xbutton;
-
-			val = $.trim( val );
-
-			if ( ! val )
-				return;
-
-			// Create a new span, and ensure the text is properly escaped.
-			span = $('<span />').text( val );
-
-			// If tags editing isn't disabled, create the X button.
-			if ( ! disabled ) {
-				xbutton = $( '<a id="' + id + '-check-num-' + key + '" class="ntdelbutton">X</a>' );
-				xbutton.click( function(){ tagBox.parseTags(this); });
-				span.prepend('&nbsp;').prepend( xbutton );
-			}
-
-			// Append the span to the tag list.
-			tagchecklist.append( span );
-		});
-	},
-
-	flushTags : function(el, a, f) {
-		a = a || false;
-		var tags = $('.the-tags', el),
-			newtag = $('input.newtag', el),
-			comma = postL10n.comma,
-			newtags, text;
-
-		text = a ? $(a).text() : newtag.val();
-		tagsval = tags.val();
-		newtags = tagsval ? tagsval + comma + text : text;
-
-		newtags = this.clean( newtags );
-		newtags = array_unique_noempty( newtags.split(comma) ).join(comma);
-		tags.val(newtags);
-		this.quickClicks(el);
-
-		if ( !a )
-			newtag.val('');
-		if ( 'undefined' == typeof(f) )
-			newtag.focus();
-
-		return false;
-	},
-
-	get : function(id) {
-		var tax = id.substr(id.indexOf('-')+1);
-
-		$.post(ajaxurl, {'action':'get-tagcloud', 'tax':tax}, function(r, stat) {
-			if ( 0 == r || 'success' != stat )
-				r = wpAjax.broken;
-
-			r = $('<p id="tagcloud-'+tax+'" class="the-tagcloud">'+r+'</p>');
-			$('a', r).click(function(){
-				tagBox.flushTags( $(this).closest('.inside').children('.tagsdiv'), this);
-				return false;
-			});
-
-			$('#'+id).after(r);
-		});
-	},
-
-	init : function() {
-		var t = this, ajaxtag = $('div.ajaxtag');
-
-	    $('.tagsdiv').each( function() {
-	        tagBox.quickClicks(this);
-	    });
-
-		$('input.tagadd', ajaxtag).click(function(){
-			t.flushTags( $(this).closest('.tagsdiv') );
-		});
-
-		$('div.taghint', ajaxtag).click(function(){
-			$(this).css('visibility', 'hidden').parent().siblings('.newtag').focus();
-		});
-
-		$('input.newtag', ajaxtag).blur(function() {
-			if ( this.value == '' )
-	            $(this).parent().siblings('.taghint').css('visibility', '');
-	    }).focus(function(){
-			$(this).parent().siblings('.taghint').css('visibility', 'hidden');
-		}).keyup(function(e){
-			if ( 13 == e.which ) {
-				tagBox.flushTags( $(this).closest('.tagsdiv') );
-				return false;
-			}
-		}).keypress(function(e){
-			if ( 13 == e.which ) {
-				e.preventDefault();
-				return false;
-			}
-		}).each(function(){
-			var tax = $(this).closest('div.tagsdiv').attr('id');
-			$(this).suggest( ajaxurl + '?action=ajax-tag-search&tax=' + tax, { delay: 500, minchars: 2, multiple: true, multipleSep: postL10n.comma + ' ' } );
-		});
-
-	    // save tags on post save/publish
-	    $('#post').submit(function(){
-			$('div.tagsdiv').each( function() {
-	        	tagBox.flushTags(this, false, 1);
-			});
-		});
-
-		// tag cloud
-		$('a.tagcloud-link').click(function(){
-			tagBox.get( $(this).attr('id') );
-			$(this).unbind().click(function(){
-				$(this).siblings('.the-tagcloud').toggle();
-				return false;
-			});
-			return false;
-		});
-	}
-};
-
-commentsBox = {
-	st : 0,
-
-	get : function(total, num) {
-		var st = this.st, data;
-		if ( ! num )
-			num = 20;
-
-		this.st += num;
-		this.total = total;
-		$('#commentsdiv img.waiting').show();
-
-		data = {
-			'action' : 'get-comments',
-			'mode' : 'single',
-			'_ajax_nonce' : $('#add_comment_nonce').val(),
-			'p' : $('#post_ID').val(),
-			'start' : st,
-			'number' : num
-		};
-
-		$.post(ajaxurl, data,
-			function(r) {
-				r = wpAjax.parseAjaxResponse(r);
-				$('#commentsdiv .widefat').show();
-				$('#commentsdiv img.waiting').hide();
-
-				if ( 'object' == typeof r && r.responses[0] ) {
-					$('#the-comment-list').append( r.responses[0].data );
-
-					theList = theExtraList = null;
-					$("a[className*=':']").unbind();
-
-					if ( commentsBox.st > commentsBox.total )
-						$('#show-comments').hide();
-					else
-						$('#show-comments').show().children('a').html(postL10n.showcomm);
-
-					return;
-				} else if ( 1 == r ) {
-					$('#show-comments').html(postL10n.endcomm);
-					return;
-				}
-
-				$('#the-comment-list').append('<tr><td colspan="2">'+wpAjax.broken+'</td></tr>');
-			}
-		);
-
-		return false;
-	}
-};
-
-WPSetThumbnailHTML = function(html){
-	$('.inside', '#postimagediv').html(html);
-};
-
-WPSetThumbnailID = function(id){
-	var field = $('input[value="_thumbnail_id"]', '#list-table');
-	if ( field.size() > 0 ) {
-		$('#meta\\[' + field.attr('id').match(/[0-9]+/) + '\\]\\[value\\]').text(id);
-	}
-};
-
-WPRemoveThumbnail = function(nonce){
-	$.post(ajaxurl, {
-		action:"set-post-thumbnail", post_id: $('#post_ID').val(), thumbnail_id: -1, _ajax_nonce: nonce, cookie: encodeURIComponent(document.cookie)
-	}, function(str){
-		if ( str == '0' ) {
-			alert( setPostThumbnailL10n.error );
-		} else {
-			WPSetThumbnailHTML(str);
-		}
-	}
-	);
-};
-
-})(jQuery);
-
-jQuery(document).ready( function($) {
-	var stamp, visibility, sticky = '', last = 0, co = $('#content');
-
-	postboxes.add_postbox_toggles(pagenow);
-
-	// multi-taxonomies
-	if ( $('#tagsdiv-post_tag').length ) {
-		tagBox.init();
-	} else {
-		$('#side-sortables, #normal-sortables, #advanced-sortables').children('div.postbox').each(function(){
-			if ( this.id.indexOf('tagsdiv-') === 0 ) {
-				tagBox.init();
-				return false;
-			}
-		});
-	}
-
-	// categories
-	$('.categorydiv').each( function(){
-		var this_id = $(this).attr('id'), noSyncChecks = false, syncChecks, catAddAfter, taxonomyParts, taxonomy, settingName;
-
-		taxonomyParts = this_id.split('-');
-		taxonomyParts.shift();
-		taxonomy = taxonomyParts.join('-');
- 		settingName = taxonomy + '_tab';
- 		if ( taxonomy == 'category' )
- 			settingName = 'cats';
-
-		// TODO: move to jQuery 1.3+, support for multiple hierarchical taxonomies, see wp-lists.dev.js
-		$('a', '#' + taxonomy + '-tabs').click( function(){
-			var t = $(this).attr('href');
-			$(this).parent().addClass('tabs').siblings('li').removeClass('tabs');
-			$('#' + taxonomy + '-tabs').siblings('.tabs-panel').hide();
-			$(t).show();
-			if ( '#' + taxonomy + '-all' == t )
-				deleteUserSetting(settingName);
-			else
-				setUserSetting(settingName, 'pop');
-			return false;
-		});
-
-		if ( getUserSetting(settingName) )
-			$('a[href="#' + taxonomy + '-pop"]', '#' + taxonomy + '-tabs').click();
-
-		// Ajax Cat
-		$('#new' + taxonomy).one( 'focus', function() { $(this).val( '' ).removeClass( 'form-input-tip' ) } );
-		$('#' + taxonomy + '-add-submit').click( function(){ $('#new' + taxonomy).focus(); });
-
-		syncChecks = function() {
-			if ( noSyncChecks )
-				return;
-			noSyncChecks = true;
-			var th = jQuery(this), c = th.is(':checked'), id = th.val().toString();
-			$('#in-' + taxonomy + '-' + id + ', #in-' + taxonomy + '-category-' + id).prop( 'checked', c );
-			noSyncChecks = false;
-		};
-
-		catAddBefore = function( s ) {
-			if ( !$('#new'+taxonomy).val() )
-				return false;
-			s.data += '&' + $( ':checked', '#'+taxonomy+'checklist' ).serialize();
-			$( '#' + taxonomy + '-add-submit' ).prop( 'disabled', true );
-			return s;
-		};
-
-		catAddAfter = function( r, s ) {
-			var sup, drop = $('#new'+taxonomy+'_parent');
-
-			$( '#' + taxonomy + '-add-submit' ).prop( 'disabled', false );
-			if ( 'undefined' != s.parsed.responses[0] && (sup = s.parsed.responses[0].supplemental.newcat_parent) ) {
-				drop.before(sup);
-				drop.remove();
-			}
-		};
-
-		$('#' + taxonomy + 'checklist').wpList({
-			alt: '',
-			response: taxonomy + '-ajax-response',
-			addBefore: catAddBefore,
-			addAfter: catAddAfter
-		});
-
-		$('#' + taxonomy + '-add-toggle').click( function() {
-			$('#' + taxonomy + '-adder').toggleClass( 'wp-hidden-children' );
-			$('a[href="#' + taxonomy + '-all"]', '#' + taxonomy + '-tabs').click();
-			$('#new'+taxonomy).focus();
-			return false;
-		});
-
-		$('#' + taxonomy + 'checklist li.popular-category input[type="checkbox"], #' + taxonomy + 'checklist-pop input[type="checkbox"]').live( 'click', function(){
-			var t = $(this), c = t.is(':checked'), id = t.val();
-			if ( id && t.parents('#taxonomy-'+taxonomy).length )
-				$('#in-' + taxonomy + '-' + id + ', #in-popular-' + taxonomy + '-' + id).prop( 'checked', c );
-		});
-
-	}); // end cats
-
-	// Custom Fields
-	if ( $('#postcustom').length ) {
-		$('#the-list').wpList( { addAfter: function( xml, s ) {
-			$('table#list-table').show();
-		}, addBefore: function( s ) {
-			s.data += '&post_id=' + $('#post_ID').val();
-			return s;
-		}
-		});
-	}
-
-	// submitdiv
-	if ( $('#submitdiv').length ) {
-		stamp = $('#timestamp').html();
-		visibility = $('#post-visibility-display').html();
-
-		function updateVisibility() {
-			var pvSelect = $('#post-visibility-select');
-			if ( $('input:radio:checked', pvSelect).val() != 'public' ) {
-				$('#sticky').prop('checked', false);
-				$('#sticky-span').hide();
-			} else {
-				$('#sticky-span').show();
-			}
-			if ( $('input:radio:checked', pvSelect).val() != 'password' ) {
-				$('#password-span').hide();
-			} else {
-				$('#password-span').show();
-			}
-		}
-
-		function updateText() {
-			var attemptedDate, originalDate, currentDate, publishOn, postStatus = $('#post_status'),
-				optPublish = $('option[value="publish"]', postStatus), aa = $('#aa').val(),
-				mm = $('#mm').val(), jj = $('#jj').val(), hh = $('#hh').val(), mn = $('#mn').val();
-
-			attemptedDate = new Date( aa, mm - 1, jj, hh, mn );
-			originalDate = new Date( $('#hidden_aa').val(), $('#hidden_mm').val() -1, $('#hidden_jj').val(), $('#hidden_hh').val(), $('#hidden_mn').val() );
-			currentDate = new Date( $('#cur_aa').val(), $('#cur_mm').val() -1, $('#cur_jj').val(), $('#cur_hh').val(), $('#cur_mn').val() );
-
-			if ( attemptedDate.getFullYear() != aa || (1 + attemptedDate.getMonth()) != mm || attemptedDate.getDate() != jj || attemptedDate.getMinutes() != mn ) {
-				$('.timestamp-wrap', '#timestampdiv').addClass('form-invalid');
-				return false;
-			} else {
-				$('.timestamp-wrap', '#timestampdiv').removeClass('form-invalid');
-			}
-
-			if ( attemptedDate > currentDate && $('#original_post_status').val() != 'future' ) {
-				publishOn = postL10n.publishOnFuture;
-				$('#publish').val( postL10n.schedule );
-			} else if ( attemptedDate <= currentDate && $('#original_post_status').val() != 'publish' ) {
-				publishOn = postL10n.publishOn;
-				$('#publish').val( postL10n.publish );
-			} else {
-				publishOn = postL10n.publishOnPast;
-				$('#publish').val( postL10n.update );
-			}
-			if ( originalDate.toUTCString() == attemptedDate.toUTCString() ) { //hack
-				$('#timestamp').html(stamp);
-			} else {
-				$('#timestamp').html(
-					publishOn + ' <b>' +
-					$('option[value="' + $('#mm').val() + '"]', '#mm').text() + ' ' +
-					jj + ', ' +
-					aa + ' @ ' +
-					hh + ':' +
-					mn + '</b> '
-				);
-			}
-
-			if ( $('input:radio:checked', '#post-visibility-select').val() == 'private' ) {
-				$('#publish').val( postL10n.update );
-				if ( optPublish.length == 0 ) {
-					postStatus.append('<option value="publish">' + postL10n.privatelyPublished + '</option>');
-				} else {
-					optPublish.html( postL10n.privatelyPublished );
-				}
-				$('option[value="publish"]', postStatus).prop('selected', true);
-				$('.edit-post-status', '#misc-publishing-actions').hide();
-			} else {
-				if ( $('#original_post_status').val() == 'future' || $('#original_post_status').val() == 'draft' ) {
-					if ( optPublish.length ) {
-						optPublish.remove();
-						postStatus.val($('#hidden_post_status').val());
-					}
-				} else {
-					optPublish.html( postL10n.published );
-				}
-				if ( postStatus.is(':hidden') )
-					$('.edit-post-status', '#misc-publishing-actions').show();
-			}
-			$('#post-status-display').html($('option:selected', postStatus).text());
-			if ( $('option:selected', postStatus).val() == 'private' || $('option:selected', postStatus).val() == 'publish' ) {
-				$('#save-post').hide();
-			} else {
-				$('#save-post').show();
-				if ( $('option:selected', postStatus).val() == 'pending' ) {
-					$('#save-post').show().val( postL10n.savePending );
-				} else {
-					$('#save-post').show().val( postL10n.saveDraft );
-				}
-			}
-			return true;
-		}
-
-		$('.edit-visibility', '#visibility').click(function () {
-			if ($('#post-visibility-select').is(":hidden")) {
-				updateVisibility();
-				$('#post-visibility-select').slideDown('fast');
-				$(this).hide();
-			}
-			return false;
-		});
-
-		$('.cancel-post-visibility', '#post-visibility-select').click(function () {
-			$('#post-visibility-select').slideUp('fast');
-			$('#visibility-radio-' + $('#hidden-post-visibility').val()).prop('checked', true);
-			$('#post_password').val($('#hidden_post_password').val());
-			$('#sticky').prop('checked', $('#hidden-post-sticky').prop('checked'));
-			$('#post-visibility-display').html(visibility);
-			$('.edit-visibility', '#visibility').show();
-			updateText();
-			return false;
-		});
-
-		$('.save-post-visibility', '#post-visibility-select').click(function () { // crazyhorse - multiple ok cancels
-			var pvSelect = $('#post-visibility-select');
-
-			pvSelect.slideUp('fast');
-			$('.edit-visibility', '#visibility').show();
-			updateText();
-
-			if ( $('input:radio:checked', pvSelect).val() != 'public' ) {
-				$('#sticky').prop('checked', false);
-			} // WEAPON LOCKED
-
-			if ( true == $('#sticky').prop('checked') ) {
-				sticky = 'Sticky';
-			} else {
-				sticky = '';
-			}
-
-			$('#post-visibility-display').html(	postL10n[$('input:radio:checked', pvSelect).val() + sticky]	);
-			return false;
-		});
-
-		$('input:radio', '#post-visibility-select').change(function() {
-			updateVisibility();
-		});
-
-		$('#timestampdiv').siblings('a.edit-timestamp').click(function() {
-			if ($('#timestampdiv').is(":hidden")) {
-				$('#timestampdiv').slideDown('fast');
-				$(this).hide();
-			}
-			return false;
-		});
-
-		$('.cancel-timestamp', '#timestampdiv').click(function() {
-			$('#timestampdiv').slideUp('fast');
-			$('#mm').val($('#hidden_mm').val());
-			$('#jj').val($('#hidden_jj').val());
-			$('#aa').val($('#hidden_aa').val());
-			$('#hh').val($('#hidden_hh').val());
-			$('#mn').val($('#hidden_mn').val());
-			$('#timestampdiv').siblings('a.edit-timestamp').show();
-			updateText();
-			return false;
-		});
-
-		$('.save-timestamp', '#timestampdiv').click(function () { // crazyhorse - multiple ok cancels
-			if ( updateText() ) {
-				$('#timestampdiv').slideUp('fast');
-				$('#timestampdiv').siblings('a.edit-timestamp').show();
-			}
-			return false;
-		});
-
-		$('#post-status-select').siblings('a.edit-post-status').click(function() {
-			if ($('#post-status-select').is(":hidden")) {
-				$('#post-status-select').slideDown('fast');
-				$(this).hide();
-			}
-			return false;
-		});
-
-		$('.save-post-status', '#post-status-select').click(function() {
-			$('#post-status-select').slideUp('fast');
-			$('#post-status-select').siblings('a.edit-post-status').show();
-			updateText();
-			return false;
-		});
-
-		$('.cancel-post-status', '#post-status-select').click(function() {
-			$('#post-status-select').slideUp('fast');
-			$('#post_status').val($('#hidden_post_status').val());
-			$('#post-status-select').siblings('a.edit-post-status').show();
-			updateText();
-			return false;
-		});
-	} // end submitdiv
-
-	// permalink
-	if ( $('#edit-slug-box').length ) {
-		editPermalink = function(post_id) {
-			var i, c = 0, e = $('#editable-post-name'), revert_e = e.html(), real_slug = $('#post_name'), revert_slug = real_slug.val(), b = $('#edit-slug-buttons'), revert_b = b.html(), full = $('#editable-post-name-full').html();
-
-			$('#view-post-btn').hide();
-			b.html('<a href="#" class="save button">'+postL10n.ok+'</a> <a class="cancel" href="#">'+postL10n.cancel+'</a>');
-			b.children('.save').click(function() {
-				var new_slug = e.children('input').val();
-				if ( new_slug == $('#editable-post-name-full').text() ) {
-					return $('.cancel', '#edit-slug-buttons').click();
-				}
-				$.post(ajaxurl, {
-					action: 'sample-permalink',
-					post_id: post_id,
-					new_slug: new_slug,
-					new_title: $('#title').val(),
-					samplepermalinknonce: $('#samplepermalinknonce').val()
-				}, function(data) {
-					$('#edit-slug-box').html(data);
-					b.html(revert_b);
-					real_slug.val(new_slug);
-					makeSlugeditClickable();
-					$('#view-post-btn').show();
-				});
-				return false;
-			});
-
-			$('.cancel', '#edit-slug-buttons').click(function() {
-				$('#view-post-btn').show();
-				e.html(revert_e);
-				b.html(revert_b);
-				real_slug.val(revert_slug);
-				return false;
-			});
-
-			for ( i = 0; i < full.length; ++i ) {
-				if ( '%' == full.charAt(i) )
-					c++;
-			}
-
-			slug_value = ( c > full.length / 4 ) ? '' : full;
-			e.html('<input type="text" id="new-post-slug" value="'+slug_value+'" />').children('input').keypress(function(e){
-				var key = e.keyCode || 0;
-				// on enter, just save the new slug, don't save the post
-				if ( 13 == key ) {
-					b.children('.save').click();
-					return false;
-				}
-				if ( 27 == key ) {
-					b.children('.cancel').click();
-					return false;
-				}
-				real_slug.val(this.value);
-			}).focus();
-		}
-
-		makeSlugeditClickable = function() {
-			$('#editable-post-name').click(function() {
-				$('#edit-slug-buttons').children('.edit-slug').click();
-			});
-		}
-		makeSlugeditClickable();
-	}
-
-	// word count
-	if ( typeof(wpWordCount) != 'undefined' ) {
-		$(document).triggerHandler('wpcountwords', [ co.val() ]);
-
-		co.keyup( function(e) {
-			var k = e.keyCode || e.charCode;
-
-			if ( k == last )
-				return true;
-
-			if ( 13 == k || 8 == last || 46 == last )
-				$(document).triggerHandler('wpcountwords', [ co.val() ]);
-
-			last = k;
-			return true;
-		});
-	}
-
-	wptitlehint = function(id) {
-		id = id || 'title';
-
-		var title = $('#' + id), titleprompt = $('#' + id + '-prompt-text');
-
-		if ( title.val() == '' )
-			titleprompt.css('visibility', '');
-
-		titleprompt.click(function(){
-			$(this).css('visibility', 'hidden');
-			title.focus();
-		});
-
-		title.blur(function(){
-			if ( this.value == '' )
-				titleprompt.css('visibility', '');
-		}).focus(function(){
-			titleprompt.css('visibility', 'hidden');
-		}).keydown(function(e){
-			titleprompt.css('visibility', 'hidden');
-			$(this).unbind(e);
-		});
-	}
-
-	wptitlehint();
-});
--- a/web/wp-admin/js/post.js	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-admin/js/post.js	Wed Dec 19 17:46:52 2012 -0800
@@ -1,1 +1,768 @@
-var tagBox,commentsBox,editPermalink,makeSlugeditClickable,WPSetThumbnailHTML,WPSetThumbnailID,WPRemoveThumbnail,wptitlehint;function array_unique_noempty(b){var c=[];jQuery.each(b,function(a,d){d=jQuery.trim(d);if(d&&jQuery.inArray(d,c)==-1){c.push(d)}});return c}(function(a){tagBox={clean:function(c){var b=postL10n.comma;if(","!==b){c=c.replace(new RegExp(b,"g"),",")}c=c.replace(/\s*,\s*/g,",").replace(/,+/g,",").replace(/[,\s]+$/,"").replace(/^[,\s]+/,"");if(","!==b){c=c.replace(/,/g,b)}return c},parseTags:function(f){var i=f.id,c=i.split("-check-num-")[1],e=a(f).closest(".tagsdiv"),h=e.find(".the-tags"),b=postL10n.comma,d=h.val().split(b),g=[];delete d[c];a.each(d,function(j,k){k=a.trim(k);if(k){g.push(k)}});h.val(this.clean(g.join(b)));this.quickClicks(e);return false},quickClicks:function(d){var g=a(".the-tags",d),e=a(".tagchecklist",d),f=a(d).attr("id"),b,c;if(!g.length){return}c=g.prop("disabled");b=g.val().split(postL10n.comma);e.empty();a.each(b,function(i,k){var j,h;k=a.trim(k);if(!k){return}j=a("<span />").text(k);if(!c){h=a('<a id="'+f+"-check-num-"+i+'" class="ntdelbutton">X</a>');h.click(function(){tagBox.parseTags(this)});j.prepend("&nbsp;").prepend(h)}e.append(j)})},flushTags:function(g,c,h){c=c||false;var d=a(".the-tags",g),j=a("input.newtag",g),b=postL10n.comma,e,i;i=c?a(c).text():j.val();tagsval=d.val();e=tagsval?tagsval+b+i:i;e=this.clean(e);e=array_unique_noempty(e.split(b)).join(b);d.val(e);this.quickClicks(g);if(!c){j.val("")}if("undefined"==typeof(h)){j.focus()}return false},get:function(c){var b=c.substr(c.indexOf("-")+1);a.post(ajaxurl,{action:"get-tagcloud",tax:b},function(e,d){if(0==e||"success"!=d){e=wpAjax.broken}e=a('<p id="tagcloud-'+b+'" class="the-tagcloud">'+e+"</p>");a("a",e).click(function(){tagBox.flushTags(a(this).closest(".inside").children(".tagsdiv"),this);return false});a("#"+c).after(e)})},init:function(){var b=this,c=a("div.ajaxtag");a(".tagsdiv").each(function(){tagBox.quickClicks(this)});a("input.tagadd",c).click(function(){b.flushTags(a(this).closest(".tagsdiv"))});a("div.taghint",c).click(function(){a(this).css("visibility","hidden").parent().siblings(".newtag").focus()});a("input.newtag",c).blur(function(){if(this.value==""){a(this).parent().siblings(".taghint").css("visibility","")}}).focus(function(){a(this).parent().siblings(".taghint").css("visibility","hidden")}).keyup(function(d){if(13==d.which){tagBox.flushTags(a(this).closest(".tagsdiv"));return false}}).keypress(function(d){if(13==d.which){d.preventDefault();return false}}).each(function(){var d=a(this).closest("div.tagsdiv").attr("id");a(this).suggest(ajaxurl+"?action=ajax-tag-search&tax="+d,{delay:500,minchars:2,multiple:true,multipleSep:postL10n.comma+" "})});a("#post").submit(function(){a("div.tagsdiv").each(function(){tagBox.flushTags(this,false,1)})});a("a.tagcloud-link").click(function(){tagBox.get(a(this).attr("id"));a(this).unbind().click(function(){a(this).siblings(".the-tagcloud").toggle();return false});return false})}};commentsBox={st:0,get:function(d,c){var b=this.st,e;if(!c){c=20}this.st+=c;this.total=d;a("#commentsdiv img.waiting").show();e={action:"get-comments",mode:"single",_ajax_nonce:a("#add_comment_nonce").val(),p:a("#post_ID").val(),start:b,number:c};a.post(ajaxurl,e,function(f){f=wpAjax.parseAjaxResponse(f);a("#commentsdiv .widefat").show();a("#commentsdiv img.waiting").hide();if("object"==typeof f&&f.responses[0]){a("#the-comment-list").append(f.responses[0].data);theList=theExtraList=null;a("a[className*=':']").unbind();if(commentsBox.st>commentsBox.total){a("#show-comments").hide()}else{a("#show-comments").show().children("a").html(postL10n.showcomm)}return}else{if(1==f){a("#show-comments").html(postL10n.endcomm);return}}a("#the-comment-list").append('<tr><td colspan="2">'+wpAjax.broken+"</td></tr>")});return false}};WPSetThumbnailHTML=function(b){a(".inside","#postimagediv").html(b)};WPSetThumbnailID=function(c){var b=a('input[value="_thumbnail_id"]',"#list-table");if(b.size()>0){a("#meta\\["+b.attr("id").match(/[0-9]+/)+"\\]\\[value\\]").text(c)}};WPRemoveThumbnail=function(b){a.post(ajaxurl,{action:"set-post-thumbnail",post_id:a("#post_ID").val(),thumbnail_id:-1,_ajax_nonce:b,cookie:encodeURIComponent(document.cookie)},function(c){if(c=="0"){alert(setPostThumbnailL10n.error)}else{WPSetThumbnailHTML(c)}})}})(jQuery);jQuery(document).ready(function(f){var b,a,g="",e=0,h=f("#content");postboxes.add_postbox_toggles(pagenow);if(f("#tagsdiv-post_tag").length){tagBox.init()}else{f("#side-sortables, #normal-sortables, #advanced-sortables").children("div.postbox").each(function(){if(this.id.indexOf("tagsdiv-")===0){tagBox.init();return false}})}f(".categorydiv").each(function(){var n=f(this).attr("id"),j=false,m,o,l,i,k;l=n.split("-");l.shift();i=l.join("-");k=i+"_tab";if(i=="category"){k="cats"}f("a","#"+i+"-tabs").click(function(){var p=f(this).attr("href");f(this).parent().addClass("tabs").siblings("li").removeClass("tabs");f("#"+i+"-tabs").siblings(".tabs-panel").hide();f(p).show();if("#"+i+"-all"==p){deleteUserSetting(k)}else{setUserSetting(k,"pop")}return false});if(getUserSetting(k)){f('a[href="#'+i+'-pop"]',"#"+i+"-tabs").click()}f("#new"+i).one("focus",function(){f(this).val("").removeClass("form-input-tip")});f("#"+i+"-add-submit").click(function(){f("#new"+i).focus()});m=function(){if(j){return}j=true;var p=jQuery(this),r=p.is(":checked"),q=p.val().toString();f("#in-"+i+"-"+q+", #in-"+i+"-category-"+q).prop("checked",r);j=false};catAddBefore=function(p){if(!f("#new"+i).val()){return false}p.data+="&"+f(":checked","#"+i+"checklist").serialize();f("#"+i+"-add-submit").prop("disabled",true);return p};o=function(u,t){var q,p=f("#new"+i+"_parent");f("#"+i+"-add-submit").prop("disabled",false);if("undefined"!=t.parsed.responses[0]&&(q=t.parsed.responses[0].supplemental.newcat_parent)){p.before(q);p.remove()}};f("#"+i+"checklist").wpList({alt:"",response:i+"-ajax-response",addBefore:catAddBefore,addAfter:o});f("#"+i+"-add-toggle").click(function(){f("#"+i+"-adder").toggleClass("wp-hidden-children");f('a[href="#'+i+'-all"]',"#"+i+"-tabs").click();f("#new"+i).focus();return false});f("#"+i+'checklist li.popular-category input[type="checkbox"], #'+i+'checklist-pop input[type="checkbox"]').live("click",function(){var p=f(this),r=p.is(":checked"),q=p.val();if(q&&p.parents("#taxonomy-"+i).length){f("#in-"+i+"-"+q+", #in-popular-"+i+"-"+q).prop("checked",r)}})});if(f("#postcustom").length){f("#the-list").wpList({addAfter:function(i,j){f("table#list-table").show()},addBefore:function(i){i.data+="&post_id="+f("#post_ID").val();return i}})}if(f("#submitdiv").length){b=f("#timestamp").html();a=f("#post-visibility-display").html();function d(){var i=f("#post-visibility-select");if(f("input:radio:checked",i).val()!="public"){f("#sticky").prop("checked",false);f("#sticky-span").hide()}else{f("#sticky-span").show()}if(f("input:radio:checked",i).val()!="password"){f("#password-span").hide()}else{f("#password-span").show()}}function c(){var p,q,j,s,r=f("#post_status"),k=f('option[value="publish"]',r),i=f("#aa").val(),n=f("#mm").val(),o=f("#jj").val(),m=f("#hh").val(),l=f("#mn").val();p=new Date(i,n-1,o,m,l);q=new Date(f("#hidden_aa").val(),f("#hidden_mm").val()-1,f("#hidden_jj").val(),f("#hidden_hh").val(),f("#hidden_mn").val());j=new Date(f("#cur_aa").val(),f("#cur_mm").val()-1,f("#cur_jj").val(),f("#cur_hh").val(),f("#cur_mn").val());if(p.getFullYear()!=i||(1+p.getMonth())!=n||p.getDate()!=o||p.getMinutes()!=l){f(".timestamp-wrap","#timestampdiv").addClass("form-invalid");return false}else{f(".timestamp-wrap","#timestampdiv").removeClass("form-invalid")}if(p>j&&f("#original_post_status").val()!="future"){s=postL10n.publishOnFuture;f("#publish").val(postL10n.schedule)}else{if(p<=j&&f("#original_post_status").val()!="publish"){s=postL10n.publishOn;f("#publish").val(postL10n.publish)}else{s=postL10n.publishOnPast;f("#publish").val(postL10n.update)}}if(q.toUTCString()==p.toUTCString()){f("#timestamp").html(b)}else{f("#timestamp").html(s+" <b>"+f('option[value="'+f("#mm").val()+'"]',"#mm").text()+" "+o+", "+i+" @ "+m+":"+l+"</b> ")}if(f("input:radio:checked","#post-visibility-select").val()=="private"){f("#publish").val(postL10n.update);if(k.length==0){r.append('<option value="publish">'+postL10n.privatelyPublished+"</option>")}else{k.html(postL10n.privatelyPublished)}f('option[value="publish"]',r).prop("selected",true);f(".edit-post-status","#misc-publishing-actions").hide()}else{if(f("#original_post_status").val()=="future"||f("#original_post_status").val()=="draft"){if(k.length){k.remove();r.val(f("#hidden_post_status").val())}}else{k.html(postL10n.published)}if(r.is(":hidden")){f(".edit-post-status","#misc-publishing-actions").show()}}f("#post-status-display").html(f("option:selected",r).text());if(f("option:selected",r).val()=="private"||f("option:selected",r).val()=="publish"){f("#save-post").hide()}else{f("#save-post").show();if(f("option:selected",r).val()=="pending"){f("#save-post").show().val(postL10n.savePending)}else{f("#save-post").show().val(postL10n.saveDraft)}}return true}f(".edit-visibility","#visibility").click(function(){if(f("#post-visibility-select").is(":hidden")){d();f("#post-visibility-select").slideDown("fast");f(this).hide()}return false});f(".cancel-post-visibility","#post-visibility-select").click(function(){f("#post-visibility-select").slideUp("fast");f("#visibility-radio-"+f("#hidden-post-visibility").val()).prop("checked",true);f("#post_password").val(f("#hidden_post_password").val());f("#sticky").prop("checked",f("#hidden-post-sticky").prop("checked"));f("#post-visibility-display").html(a);f(".edit-visibility","#visibility").show();c();return false});f(".save-post-visibility","#post-visibility-select").click(function(){var i=f("#post-visibility-select");i.slideUp("fast");f(".edit-visibility","#visibility").show();c();if(f("input:radio:checked",i).val()!="public"){f("#sticky").prop("checked",false)}if(true==f("#sticky").prop("checked")){g="Sticky"}else{g=""}f("#post-visibility-display").html(postL10n[f("input:radio:checked",i).val()+g]);return false});f("input:radio","#post-visibility-select").change(function(){d()});f("#timestampdiv").siblings("a.edit-timestamp").click(function(){if(f("#timestampdiv").is(":hidden")){f("#timestampdiv").slideDown("fast");f(this).hide()}return false});f(".cancel-timestamp","#timestampdiv").click(function(){f("#timestampdiv").slideUp("fast");f("#mm").val(f("#hidden_mm").val());f("#jj").val(f("#hidden_jj").val());f("#aa").val(f("#hidden_aa").val());f("#hh").val(f("#hidden_hh").val());f("#mn").val(f("#hidden_mn").val());f("#timestampdiv").siblings("a.edit-timestamp").show();c();return false});f(".save-timestamp","#timestampdiv").click(function(){if(c()){f("#timestampdiv").slideUp("fast");f("#timestampdiv").siblings("a.edit-timestamp").show()}return false});f("#post-status-select").siblings("a.edit-post-status").click(function(){if(f("#post-status-select").is(":hidden")){f("#post-status-select").slideDown("fast");f(this).hide()}return false});f(".save-post-status","#post-status-select").click(function(){f("#post-status-select").slideUp("fast");f("#post-status-select").siblings("a.edit-post-status").show();c();return false});f(".cancel-post-status","#post-status-select").click(function(){f("#post-status-select").slideUp("fast");f("#post_status").val(f("#hidden_post_status").val());f("#post-status-select").siblings("a.edit-post-status").show();c();return false})}if(f("#edit-slug-box").length){editPermalink=function(j){var k,n=0,m=f("#editable-post-name"),o=m.html(),r=f("#post_name"),s=r.val(),p=f("#edit-slug-buttons"),q=p.html(),l=f("#editable-post-name-full").html();f("#view-post-btn").hide();p.html('<a href="#" class="save button">'+postL10n.ok+'</a> <a class="cancel" href="#">'+postL10n.cancel+"</a>");p.children(".save").click(function(){var i=m.children("input").val();if(i==f("#editable-post-name-full").text()){return f(".cancel","#edit-slug-buttons").click()}f.post(ajaxurl,{action:"sample-permalink",post_id:j,new_slug:i,new_title:f("#title").val(),samplepermalinknonce:f("#samplepermalinknonce").val()},function(t){f("#edit-slug-box").html(t);p.html(q);r.val(i);makeSlugeditClickable();f("#view-post-btn").show()});return false});f(".cancel","#edit-slug-buttons").click(function(){f("#view-post-btn").show();m.html(o);p.html(q);r.val(s);return false});for(k=0;k<l.length;++k){if("%"==l.charAt(k)){n++}}slug_value=(n>l.length/4)?"":l;m.html('<input type="text" id="new-post-slug" value="'+slug_value+'" />').children("input").keypress(function(t){var i=t.keyCode||0;if(13==i){p.children(".save").click();return false}if(27==i){p.children(".cancel").click();return false}r.val(this.value)}).focus()};makeSlugeditClickable=function(){f("#editable-post-name").click(function(){f("#edit-slug-buttons").children(".edit-slug").click()})};makeSlugeditClickable()}if(typeof(wpWordCount)!="undefined"){f(document).triggerHandler("wpcountwords",[h.val()]);h.keyup(function(j){var i=j.keyCode||j.charCode;if(i==e){return true}if(13==i||8==e||46==e){f(document).triggerHandler("wpcountwords",[h.val()])}e=i;return true})}wptitlehint=function(k){k=k||"title";var i=f("#"+k),j=f("#"+k+"-prompt-text");if(i.val()==""){j.css("visibility","")}j.click(function(){f(this).css("visibility","hidden");i.focus()});i.blur(function(){if(this.value==""){j.css("visibility","")}}).focus(function(){j.css("visibility","hidden")}).keydown(function(l){j.css("visibility","hidden");f(this).unbind(l)})};wptitlehint()});
\ No newline at end of file
+var tagBox, commentsBox, editPermalink, makeSlugeditClickable, WPSetThumbnailHTML, WPSetThumbnailID, WPRemoveThumbnail, wptitlehint;
+
+// return an array with any duplicate, whitespace or values removed
+function array_unique_noempty(a) {
+	var out = [];
+	jQuery.each( a, function(key, val) {
+		val = jQuery.trim(val);
+		if ( val && jQuery.inArray(val, out) == -1 )
+			out.push(val);
+		} );
+	return out;
+}
+
+(function($){
+
+tagBox = {
+	clean : function(tags) {
+		var comma = postL10n.comma;
+		if ( ',' !== comma )
+			tags = tags.replace(new RegExp(comma, 'g'), ',');
+		tags = tags.replace(/\s*,\s*/g, ',').replace(/,+/g, ',').replace(/[,\s]+$/, '').replace(/^[,\s]+/, '');
+		if ( ',' !== comma )
+			tags = tags.replace(/,/g, comma);
+		return tags;
+	},
+
+	parseTags : function(el) {
+		var id = el.id, num = id.split('-check-num-')[1], taxbox = $(el).closest('.tagsdiv'),
+			thetags = taxbox.find('.the-tags'), comma = postL10n.comma,
+			current_tags = thetags.val().split(comma), new_tags = [];
+		delete current_tags[num];
+
+		$.each( current_tags, function(key, val) {
+			val = $.trim(val);
+			if ( val ) {
+				new_tags.push(val);
+			}
+		});
+
+		thetags.val( this.clean( new_tags.join(comma) ) );
+
+		this.quickClicks(taxbox);
+		return false;
+	},
+
+	quickClicks : function(el) {
+		var thetags = $('.the-tags', el),
+			tagchecklist = $('.tagchecklist', el),
+			id = $(el).attr('id'),
+			current_tags, disabled;
+
+		if ( !thetags.length )
+			return;
+
+		disabled = thetags.prop('disabled');
+
+		current_tags = thetags.val().split(postL10n.comma);
+		tagchecklist.empty();
+
+		$.each( current_tags, function( key, val ) {
+			var span, xbutton;
+
+			val = $.trim( val );
+
+			if ( ! val )
+				return;
+
+			// Create a new span, and ensure the text is properly escaped.
+			span = $('<span />').text( val );
+
+			// If tags editing isn't disabled, create the X button.
+			if ( ! disabled ) {
+				xbutton = $( '<a id="' + id + '-check-num-' + key + '" class="ntdelbutton">X</a>' );
+				xbutton.click( function(){ tagBox.parseTags(this); });
+				span.prepend('&nbsp;').prepend( xbutton );
+			}
+
+			// Append the span to the tag list.
+			tagchecklist.append( span );
+		});
+	},
+
+	flushTags : function(el, a, f) {
+		a = a || false;
+		var tags = $('.the-tags', el),
+			newtag = $('input.newtag', el),
+			comma = postL10n.comma,
+			newtags, text;
+
+		text = a ? $(a).text() : newtag.val();
+		tagsval = tags.val();
+		newtags = tagsval ? tagsval + comma + text : text;
+
+		newtags = this.clean( newtags );
+		newtags = array_unique_noempty( newtags.split(comma) ).join(comma);
+		tags.val(newtags);
+		this.quickClicks(el);
+
+		if ( !a )
+			newtag.val('');
+		if ( 'undefined' == typeof(f) )
+			newtag.focus();
+
+		return false;
+	},
+
+	get : function(id) {
+		var tax = id.substr(id.indexOf('-')+1);
+
+		$.post(ajaxurl, {'action':'get-tagcloud', 'tax':tax}, function(r, stat) {
+			if ( 0 == r || 'success' != stat )
+				r = wpAjax.broken;
+
+			r = $('<p id="tagcloud-'+tax+'" class="the-tagcloud">'+r+'</p>');
+			$('a', r).click(function(){
+				tagBox.flushTags( $(this).closest('.inside').children('.tagsdiv'), this);
+				return false;
+			});
+
+			$('#'+id).after(r);
+		});
+	},
+
+	init : function() {
+		var t = this, ajaxtag = $('div.ajaxtag');
+
+		$('.tagsdiv').each( function() {
+			tagBox.quickClicks(this);
+		});
+
+		$('input.tagadd', ajaxtag).click(function(){
+			t.flushTags( $(this).closest('.tagsdiv') );
+		});
+
+		$('div.taghint', ajaxtag).click(function(){
+			$(this).css('visibility', 'hidden').parent().siblings('.newtag').focus();
+		});
+
+		$('input.newtag', ajaxtag).blur(function() {
+			if ( this.value == '' )
+				$(this).parent().siblings('.taghint').css('visibility', '');
+		}).focus(function(){
+			$(this).parent().siblings('.taghint').css('visibility', 'hidden');
+		}).keyup(function(e){
+			if ( 13 == e.which ) {
+				tagBox.flushTags( $(this).closest('.tagsdiv') );
+				return false;
+			}
+		}).keypress(function(e){
+			if ( 13 == e.which ) {
+				e.preventDefault();
+				return false;
+			}
+		}).each(function(){
+			var tax = $(this).closest('div.tagsdiv').attr('id');
+			$(this).suggest( ajaxurl + '?action=ajax-tag-search&tax=' + tax, { delay: 500, minchars: 2, multiple: true, multipleSep: postL10n.comma + ' ' } );
+		});
+
+		// save tags on post save/publish
+		$('#post').submit(function(){
+			$('div.tagsdiv').each( function() {
+				tagBox.flushTags(this, false, 1);
+			});
+		});
+
+		// tag cloud
+		$('a.tagcloud-link').click(function(){
+			if ( ! $('.the-tagcloud').length )
+				tagBox.get( $(this).attr('id') );
+			$(this).siblings('.the-tagcloud').toggle();
+			return false;
+		});
+	}
+};
+
+commentsBox = {
+	st : 0,
+
+	get : function(total, num) {
+		var st = this.st, data;
+		if ( ! num )
+			num = 20;
+
+		this.st += num;
+		this.total = total;
+		$('#commentsdiv .spinner').show();
+
+		data = {
+			'action' : 'get-comments',
+			'mode' : 'single',
+			'_ajax_nonce' : $('#add_comment_nonce').val(),
+			'p' : $('#post_ID').val(),
+			'start' : st,
+			'number' : num
+		};
+
+		$.post(ajaxurl, data,
+			function(r) {
+				r = wpAjax.parseAjaxResponse(r);
+				$('#commentsdiv .widefat').show();
+				$('#commentsdiv .spinner').hide();
+
+				if ( 'object' == typeof r && r.responses[0] ) {
+					$('#the-comment-list').append( r.responses[0].data );
+
+					theList = theExtraList = null;
+					$("a[className*=':']").unbind();
+
+					if ( commentsBox.st > commentsBox.total )
+						$('#show-comments').hide();
+					else
+						$('#show-comments').show().children('a').html(postL10n.showcomm);
+
+					return;
+				} else if ( 1 == r ) {
+					$('#show-comments').html(postL10n.endcomm);
+					return;
+				}
+
+				$('#the-comment-list').append('<tr><td colspan="2">'+wpAjax.broken+'</td></tr>');
+			}
+		);
+
+		return false;
+	}
+};
+
+WPSetThumbnailHTML = function(html){
+	$('.inside', '#postimagediv').html(html);
+};
+
+WPSetThumbnailID = function(id){
+	var field = $('input[value="_thumbnail_id"]', '#list-table');
+	if ( field.size() > 0 ) {
+		$('#meta\\[' + field.attr('id').match(/[0-9]+/) + '\\]\\[value\\]').text(id);
+	}
+};
+
+WPRemoveThumbnail = function(nonce){
+	$.post(ajaxurl, {
+		action:"set-post-thumbnail", post_id: $('#post_ID').val(), thumbnail_id: -1, _ajax_nonce: nonce, cookie: encodeURIComponent(document.cookie)
+	}, function(str){
+		if ( str == '0' ) {
+			alert( setPostThumbnailL10n.error );
+		} else {
+			WPSetThumbnailHTML(str);
+		}
+	}
+	);
+};
+
+})(jQuery);
+
+jQuery(document).ready( function($) {
+	var stamp, visibility, sticky = '', last = 0, co = $('#content');
+
+	postboxes.add_postbox_toggles(pagenow);
+
+	// multi-taxonomies
+	if ( $('#tagsdiv-post_tag').length ) {
+		tagBox.init();
+	} else {
+		$('#side-sortables, #normal-sortables, #advanced-sortables').children('div.postbox').each(function(){
+			if ( this.id.indexOf('tagsdiv-') === 0 ) {
+				tagBox.init();
+				return false;
+			}
+		});
+	}
+
+	// categories
+	$('.categorydiv').each( function(){
+		var this_id = $(this).attr('id'), noSyncChecks = false, syncChecks, catAddAfter, taxonomyParts, taxonomy, settingName;
+
+		taxonomyParts = this_id.split('-');
+		taxonomyParts.shift();
+		taxonomy = taxonomyParts.join('-');
+		settingName = taxonomy + '_tab';
+		if ( taxonomy == 'category' )
+			settingName = 'cats';
+
+		// TODO: move to jQuery 1.3+, support for multiple hierarchical taxonomies, see wp-lists.js
+		$('a', '#' + taxonomy + '-tabs').click( function(){
+			var t = $(this).attr('href');
+			$(this).parent().addClass('tabs').siblings('li').removeClass('tabs');
+			$('#' + taxonomy + '-tabs').siblings('.tabs-panel').hide();
+			$(t).show();
+			if ( '#' + taxonomy + '-all' == t )
+				deleteUserSetting(settingName);
+			else
+				setUserSetting(settingName, 'pop');
+			return false;
+		});
+
+		if ( getUserSetting(settingName) )
+			$('a[href="#' + taxonomy + '-pop"]', '#' + taxonomy + '-tabs').click();
+
+		// Ajax Cat
+		$('#new' + taxonomy).one( 'focus', function() { $(this).val( '' ).removeClass( 'form-input-tip' ) } );
+
+		$('#new' + taxonomy).keypress( function(event){
+			if( 13 === event.keyCode ) {
+				 event.preventDefault();
+				 $('#' + taxonomy + '-add-submit').click();
+			}
+		});
+		$('#' + taxonomy + '-add-submit').click( function(){ $('#new' + taxonomy).focus(); });
+
+		syncChecks = function() {
+			if ( noSyncChecks )
+				return;
+			noSyncChecks = true;
+			var th = jQuery(this), c = th.is(':checked'), id = th.val().toString();
+			$('#in-' + taxonomy + '-' + id + ', #in-' + taxonomy + '-category-' + id).prop( 'checked', c );
+			noSyncChecks = false;
+		};
+
+		catAddBefore = function( s ) {
+			if ( !$('#new'+taxonomy).val() )
+				return false;
+			s.data += '&' + $( ':checked', '#'+taxonomy+'checklist' ).serialize();
+			$( '#' + taxonomy + '-add-submit' ).prop( 'disabled', true );
+			return s;
+		};
+
+		catAddAfter = function( r, s ) {
+			var sup, drop = $('#new'+taxonomy+'_parent');
+
+			$( '#' + taxonomy + '-add-submit' ).prop( 'disabled', false );
+			if ( 'undefined' != s.parsed.responses[0] && (sup = s.parsed.responses[0].supplemental.newcat_parent) ) {
+				drop.before(sup);
+				drop.remove();
+			}
+		};
+
+		$('#' + taxonomy + 'checklist').wpList({
+			alt: '',
+			response: taxonomy + '-ajax-response',
+			addBefore: catAddBefore,
+			addAfter: catAddAfter
+		});
+
+		$('#' + taxonomy + '-add-toggle').click( function() {
+			$('#' + taxonomy + '-adder').toggleClass( 'wp-hidden-children' );
+			$('a[href="#' + taxonomy + '-all"]', '#' + taxonomy + '-tabs').click();
+			$('#new'+taxonomy).focus();
+			return false;
+		});
+
+		$('#' + taxonomy + 'checklist li.popular-category input[type="checkbox"], #' + taxonomy + 'checklist-pop input[type="checkbox"]').live( 'click', function(){
+			var t = $(this), c = t.is(':checked'), id = t.val();
+			if ( id && t.parents('#taxonomy-'+taxonomy).length )
+				$('#in-' + taxonomy + '-' + id + ', #in-popular-' + taxonomy + '-' + id).prop( 'checked', c );
+		});
+
+	}); // end cats
+
+	// Custom Fields
+	if ( $('#postcustom').length ) {
+		$('#the-list').wpList( { addAfter: function( xml, s ) {
+			$('table#list-table').show();
+		}, addBefore: function( s ) {
+			s.data += '&post_id=' + $('#post_ID').val();
+			return s;
+		}
+		});
+	}
+
+	// submitdiv
+	if ( $('#submitdiv').length ) {
+		stamp = $('#timestamp').html();
+		visibility = $('#post-visibility-display').html();
+
+		function updateVisibility() {
+			var pvSelect = $('#post-visibility-select');
+			if ( $('input:radio:checked', pvSelect).val() != 'public' ) {
+				$('#sticky').prop('checked', false);
+				$('#sticky-span').hide();
+			} else {
+				$('#sticky-span').show();
+			}
+			if ( $('input:radio:checked', pvSelect).val() != 'password' ) {
+				$('#password-span').hide();
+			} else {
+				$('#password-span').show();
+			}
+		}
+
+		function updateText() {
+
+			if ( ! $('#timestampdiv').length )
+				return true;
+
+			var attemptedDate, originalDate, currentDate, publishOn, postStatus = $('#post_status'),
+				optPublish = $('option[value="publish"]', postStatus), aa = $('#aa').val(),
+				mm = $('#mm').val(), jj = $('#jj').val(), hh = $('#hh').val(), mn = $('#mn').val();
+
+			attemptedDate = new Date( aa, mm - 1, jj, hh, mn );
+			originalDate = new Date( $('#hidden_aa').val(), $('#hidden_mm').val() -1, $('#hidden_jj').val(), $('#hidden_hh').val(), $('#hidden_mn').val() );
+			currentDate = new Date( $('#cur_aa').val(), $('#cur_mm').val() -1, $('#cur_jj').val(), $('#cur_hh').val(), $('#cur_mn').val() );
+
+			if ( attemptedDate.getFullYear() != aa || (1 + attemptedDate.getMonth()) != mm || attemptedDate.getDate() != jj || attemptedDate.getMinutes() != mn ) {
+				$('.timestamp-wrap', '#timestampdiv').addClass('form-invalid');
+				return false;
+			} else {
+				$('.timestamp-wrap', '#timestampdiv').removeClass('form-invalid');
+			}
+
+			if ( attemptedDate > currentDate && $('#original_post_status').val() != 'future' ) {
+				publishOn = postL10n.publishOnFuture;
+				$('#publish').val( postL10n.schedule );
+			} else if ( attemptedDate <= currentDate && $('#original_post_status').val() != 'publish' ) {
+				publishOn = postL10n.publishOn;
+				$('#publish').val( postL10n.publish );
+			} else {
+				publishOn = postL10n.publishOnPast;
+				$('#publish').val( postL10n.update );
+			}
+			if ( originalDate.toUTCString() == attemptedDate.toUTCString() ) { //hack
+				$('#timestamp').html(stamp);
+			} else {
+				$('#timestamp').html(
+					publishOn + ' <b>' +
+					$('option[value="' + $('#mm').val() + '"]', '#mm').text() + ' ' +
+					jj + ', ' +
+					aa + ' @ ' +
+					hh + ':' +
+					mn + '</b> '
+				);
+			}
+
+			if ( $('input:radio:checked', '#post-visibility-select').val() == 'private' ) {
+				$('#publish').val( postL10n.update );
+				if ( optPublish.length == 0 ) {
+					postStatus.append('<option value="publish">' + postL10n.privatelyPublished + '</option>');
+				} else {
+					optPublish.html( postL10n.privatelyPublished );
+				}
+				$('option[value="publish"]', postStatus).prop('selected', true);
+				$('.edit-post-status', '#misc-publishing-actions').hide();
+			} else {
+				if ( $('#original_post_status').val() == 'future' || $('#original_post_status').val() == 'draft' ) {
+					if ( optPublish.length ) {
+						optPublish.remove();
+						postStatus.val($('#hidden_post_status').val());
+					}
+				} else {
+					optPublish.html( postL10n.published );
+				}
+				if ( postStatus.is(':hidden') )
+					$('.edit-post-status', '#misc-publishing-actions').show();
+			}
+			$('#post-status-display').html($('option:selected', postStatus).text());
+			if ( $('option:selected', postStatus).val() == 'private' || $('option:selected', postStatus).val() == 'publish' ) {
+				$('#save-post').hide();
+			} else {
+				$('#save-post').show();
+				if ( $('option:selected', postStatus).val() == 'pending' ) {
+					$('#save-post').show().val( postL10n.savePending );
+				} else {
+					$('#save-post').show().val( postL10n.saveDraft );
+				}
+			}
+			return true;
+		}
+
+		$('.edit-visibility', '#visibility').click(function () {
+			if ($('#post-visibility-select').is(":hidden")) {
+				updateVisibility();
+				$('#post-visibility-select').slideDown('fast');
+				$(this).hide();
+			}
+			return false;
+		});
+
+		$('.cancel-post-visibility', '#post-visibility-select').click(function () {
+			$('#post-visibility-select').slideUp('fast');
+			$('#visibility-radio-' + $('#hidden-post-visibility').val()).prop('checked', true);
+			$('#post_password').val($('#hidden_post_password').val());
+			$('#sticky').prop('checked', $('#hidden-post-sticky').prop('checked'));
+			$('#post-visibility-display').html(visibility);
+			$('.edit-visibility', '#visibility').show();
+			updateText();
+			return false;
+		});
+
+		$('.save-post-visibility', '#post-visibility-select').click(function () { // crazyhorse - multiple ok cancels
+			var pvSelect = $('#post-visibility-select');
+
+			pvSelect.slideUp('fast');
+			$('.edit-visibility', '#visibility').show();
+			updateText();
+
+			if ( $('input:radio:checked', pvSelect).val() != 'public' ) {
+				$('#sticky').prop('checked', false);
+			} // WEAPON LOCKED
+
+			if ( true == $('#sticky').prop('checked') ) {
+				sticky = 'Sticky';
+			} else {
+				sticky = '';
+			}
+
+			$('#post-visibility-display').html(	postL10n[$('input:radio:checked', pvSelect).val() + sticky]	);
+			return false;
+		});
+
+		$('input:radio', '#post-visibility-select').change(function() {
+			updateVisibility();
+		});
+
+		$('#timestampdiv').siblings('a.edit-timestamp').click(function() {
+			if ($('#timestampdiv').is(":hidden")) {
+				$('#timestampdiv').slideDown('fast');
+				$('#mm').focus();
+				$(this).hide();
+			}
+			return false;
+		});
+
+		$('.cancel-timestamp', '#timestampdiv').click(function() {
+			$('#timestampdiv').slideUp('fast');
+			$('#mm').val($('#hidden_mm').val());
+			$('#jj').val($('#hidden_jj').val());
+			$('#aa').val($('#hidden_aa').val());
+			$('#hh').val($('#hidden_hh').val());
+			$('#mn').val($('#hidden_mn').val());
+			$('#timestampdiv').siblings('a.edit-timestamp').show();
+			updateText();
+			return false;
+		});
+
+		$('.save-timestamp', '#timestampdiv').click(function () { // crazyhorse - multiple ok cancels
+			if ( updateText() ) {
+				$('#timestampdiv').slideUp('fast');
+				$('#timestampdiv').siblings('a.edit-timestamp').show();
+			}
+			return false;
+		});
+
+		$('#post').on( 'submit', function(e){
+			if ( ! updateText() ) {
+				e.preventDefault();
+				$('#timestampdiv').show();
+				$('#publishing-action .spinner').hide();
+				$('#publish').prop('disabled', false).removeClass('button-primary-disabled');
+				return false;
+			}
+		});
+
+		$('#post-status-select').siblings('a.edit-post-status').click(function() {
+			if ($('#post-status-select').is(":hidden")) {
+				$('#post-status-select').slideDown('fast');
+				$(this).hide();
+			}
+			return false;
+		});
+
+		$('.save-post-status', '#post-status-select').click(function() {
+			$('#post-status-select').slideUp('fast');
+			$('#post-status-select').siblings('a.edit-post-status').show();
+			updateText();
+			return false;
+		});
+
+		$('.cancel-post-status', '#post-status-select').click(function() {
+			$('#post-status-select').slideUp('fast');
+			$('#post_status').val($('#hidden_post_status').val());
+			$('#post-status-select').siblings('a.edit-post-status').show();
+			updateText();
+			return false;
+		});
+	} // end submitdiv
+
+	// permalink
+	if ( $('#edit-slug-box').length ) {
+		editPermalink = function(post_id) {
+			var i, c = 0, e = $('#editable-post-name'), revert_e = e.html(), real_slug = $('#post_name'), revert_slug = real_slug.val(), b = $('#edit-slug-buttons'), revert_b = b.html(), full = $('#editable-post-name-full').html();
+
+			$('#view-post-btn').hide();
+			b.html('<a href="#" class="save button button-small">'+postL10n.ok+'</a> <a class="cancel" href="#">'+postL10n.cancel+'</a>');
+			b.children('.save').click(function() {
+				var new_slug = e.children('input').val();
+				if ( new_slug == $('#editable-post-name-full').text() ) {
+					return $('.cancel', '#edit-slug-buttons').click();
+				}
+				$.post(ajaxurl, {
+					action: 'sample-permalink',
+					post_id: post_id,
+					new_slug: new_slug,
+					new_title: $('#title').val(),
+					samplepermalinknonce: $('#samplepermalinknonce').val()
+				}, function(data) {
+					$('#edit-slug-box').html(data);
+					b.html(revert_b);
+					real_slug.val(new_slug);
+					makeSlugeditClickable();
+					$('#view-post-btn').show();
+				});
+				return false;
+			});
+
+			$('.cancel', '#edit-slug-buttons').click(function() {
+				$('#view-post-btn').show();
+				e.html(revert_e);
+				b.html(revert_b);
+				real_slug.val(revert_slug);
+				return false;
+			});
+
+			for ( i = 0; i < full.length; ++i ) {
+				if ( '%' == full.charAt(i) )
+					c++;
+			}
+
+			slug_value = ( c > full.length / 4 ) ? '' : full;
+			e.html('<input type="text" id="new-post-slug" value="'+slug_value+'" />').children('input').keypress(function(e){
+				var key = e.keyCode || 0;
+				// on enter, just save the new slug, don't save the post
+				if ( 13 == key ) {
+					b.children('.save').click();
+					return false;
+				}
+				if ( 27 == key ) {
+					b.children('.cancel').click();
+					return false;
+				}
+				real_slug.val(this.value);
+			}).focus();
+		}
+
+		makeSlugeditClickable = function() {
+			$('#editable-post-name').click(function() {
+				$('#edit-slug-buttons').children('.edit-slug').click();
+			});
+		}
+		makeSlugeditClickable();
+	}
+
+	// word count
+	if ( typeof(wpWordCount) != 'undefined' ) {
+		$(document).triggerHandler('wpcountwords', [ co.val() ]);
+
+		co.keyup( function(e) {
+			var k = e.keyCode || e.charCode;
+
+			if ( k == last )
+				return true;
+
+			if ( 13 == k || 8 == last || 46 == last )
+				$(document).triggerHandler('wpcountwords', [ co.val() ]);
+
+			last = k;
+			return true;
+		});
+	}
+
+	wptitlehint = function(id) {
+		id = id || 'title';
+
+		var title = $('#' + id), titleprompt = $('#' + id + '-prompt-text');
+
+		if ( title.val() == '' )
+			titleprompt.removeClass('screen-reader-text');
+
+		titleprompt.click(function(){
+			$(this).addClass('screen-reader-text');
+			title.focus();
+		});
+
+		title.blur(function(){
+			if ( this.value == '' )
+				titleprompt.removeClass('screen-reader-text');
+		}).focus(function(){
+			titleprompt.addClass('screen-reader-text');
+		}).keydown(function(e){
+			titleprompt.addClass('screen-reader-text');
+			$(this).unbind(e);
+		});
+	}
+
+	wptitlehint();
+
+	// resizable textarea#content
+	(function() {
+		var textarea = $('textarea#content'), offset = null, el;
+		// No point for touch devices
+		if ( 'ontouchstart' in window )
+			return;
+
+		function dragging(e) {
+			textarea.height( Math.max(50, offset + e.pageY) + 'px' );
+			return false;
+		}
+
+		function endDrag(e) {
+			var height = $('#wp-content-editor-container').height();
+
+			textarea.focus();
+			$(document).unbind('mousemove', dragging).unbind('mouseup', endDrag);
+
+			height -= 33; // compensate for toolbars, padding...
+			// sanity check
+			if ( height > 50 && height < 5000 && height != getUserSetting( 'ed_size' ) )
+				setUserSetting( 'ed_size', height );
+		}
+
+		textarea.css('resize', 'none');
+		el = $('<div id="content-resize-handle"><br></div>');
+		$('#wp-content-wrap').append(el);
+		el.on('mousedown', function(e) {
+			offset = textarea.height() - e.pageY;
+			textarea.blur();
+			$(document).mousemove(dragging).mouseup(endDrag);
+			return false;
+		});
+	})();
+
+	if ( typeof(tinymce) != 'undefined' ) {
+		tinymce.onAddEditor.add(function(mce, ed){
+			// iOS expands the iframe to full height and the user cannot adjust it.
+			if ( ed.id != 'content' || tinymce.isIOS5 )
+				return;
+
+			// resize TinyMCE to match the textarea height when switching Text -> Visual
+			ed.onLoadContent.add( function(ed, o) {
+				var ifr_height, height = parseInt( $('#content').css('height'), 10 ),
+					tb_height = $('#content_tbl tr.mceFirst').height();
+
+				if ( height && !isNaN(height) && tb_height ) {
+					ifr_height = (height - tb_height) + 12; // compensate for padding in the textarea
+					// sanity check
+					if ( ifr_height > 50 && ifr_height < 5000 ) {
+						$('#content_tbl').css('height', '' );
+						$('#content_ifr').css('height', ifr_height + 'px' );
+					}
+				}
+			});
+
+			// resize the textarea to match TinyMCE's height when switching Visual -> Text
+			ed.onSaveContent.add( function(ed, o) {
+				var height = $('#content_tbl').height();
+
+				if ( height && height > 83 && height < 5000 ) {
+					height -= 33;
+
+					$('#content').css( 'height', height + 'px' );
+				}
+			});
+
+			// save on resizing TinyMCE
+			ed.onPostRender.add(function() {
+				$('#content_resize').on('mousedown.wp-mce-resize', function(e){
+					$(document).on('mouseup.wp-mce-resize', function(e){
+						var height = $('#wp-content-editor-container').height();
+
+						height -= 33;
+						// sanity check
+						if ( height > 50 && height < 5000 && height != getUserSetting( 'ed_size' ) )
+							setUserSetting( 'ed_size', height );
+
+						$(document).off('mouseup.wp-mce-resize');
+					});
+				});
+			});
+		});
+	}
+});
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-admin/js/post.min.js	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,1 @@
+var tagBox,commentsBox,editPermalink,makeSlugeditClickable,WPSetThumbnailHTML,WPSetThumbnailID,WPRemoveThumbnail,wptitlehint;function array_unique_noempty(b){var c=[];jQuery.each(b,function(a,d){d=jQuery.trim(d);if(d&&jQuery.inArray(d,c)==-1){c.push(d)}});return c}(function(a){tagBox={clean:function(c){var b=postL10n.comma;if(","!==b){c=c.replace(new RegExp(b,"g"),",")}c=c.replace(/\s*,\s*/g,",").replace(/,+/g,",").replace(/[,\s]+$/,"").replace(/^[,\s]+/,"");if(","!==b){c=c.replace(/,/g,b)}return c},parseTags:function(f){var i=f.id,c=i.split("-check-num-")[1],e=a(f).closest(".tagsdiv"),h=e.find(".the-tags"),b=postL10n.comma,d=h.val().split(b),g=[];delete d[c];a.each(d,function(j,k){k=a.trim(k);if(k){g.push(k)}});h.val(this.clean(g.join(b)));this.quickClicks(e);return false},quickClicks:function(d){var g=a(".the-tags",d),e=a(".tagchecklist",d),f=a(d).attr("id"),b,c;if(!g.length){return}c=g.prop("disabled");b=g.val().split(postL10n.comma);e.empty();a.each(b,function(i,k){var j,h;k=a.trim(k);if(!k){return}j=a("<span />").text(k);if(!c){h=a('<a id="'+f+"-check-num-"+i+'" class="ntdelbutton">X</a>');h.click(function(){tagBox.parseTags(this)});j.prepend("&nbsp;").prepend(h)}e.append(j)})},flushTags:function(g,c,h){c=c||false;var d=a(".the-tags",g),j=a("input.newtag",g),b=postL10n.comma,e,i;i=c?a(c).text():j.val();tagsval=d.val();e=tagsval?tagsval+b+i:i;e=this.clean(e);e=array_unique_noempty(e.split(b)).join(b);d.val(e);this.quickClicks(g);if(!c){j.val("")}if("undefined"==typeof(h)){j.focus()}return false},get:function(c){var b=c.substr(c.indexOf("-")+1);a.post(ajaxurl,{action:"get-tagcloud",tax:b},function(e,d){if(0==e||"success"!=d){e=wpAjax.broken}e=a('<p id="tagcloud-'+b+'" class="the-tagcloud">'+e+"</p>");a("a",e).click(function(){tagBox.flushTags(a(this).closest(".inside").children(".tagsdiv"),this);return false});a("#"+c).after(e)})},init:function(){var b=this,c=a("div.ajaxtag");a(".tagsdiv").each(function(){tagBox.quickClicks(this)});a("input.tagadd",c).click(function(){b.flushTags(a(this).closest(".tagsdiv"))});a("div.taghint",c).click(function(){a(this).css("visibility","hidden").parent().siblings(".newtag").focus()});a("input.newtag",c).blur(function(){if(this.value==""){a(this).parent().siblings(".taghint").css("visibility","")}}).focus(function(){a(this).parent().siblings(".taghint").css("visibility","hidden")}).keyup(function(d){if(13==d.which){tagBox.flushTags(a(this).closest(".tagsdiv"));return false}}).keypress(function(d){if(13==d.which){d.preventDefault();return false}}).each(function(){var d=a(this).closest("div.tagsdiv").attr("id");a(this).suggest(ajaxurl+"?action=ajax-tag-search&tax="+d,{delay:500,minchars:2,multiple:true,multipleSep:postL10n.comma+" "})});a("#post").submit(function(){a("div.tagsdiv").each(function(){tagBox.flushTags(this,false,1)})});a("a.tagcloud-link").click(function(){if(!a(".the-tagcloud").length){tagBox.get(a(this).attr("id"))}a(this).siblings(".the-tagcloud").toggle();return false})}};commentsBox={st:0,get:function(d,c){var b=this.st,e;if(!c){c=20}this.st+=c;this.total=d;a("#commentsdiv .spinner").show();e={action:"get-comments",mode:"single",_ajax_nonce:a("#add_comment_nonce").val(),p:a("#post_ID").val(),start:b,number:c};a.post(ajaxurl,e,function(f){f=wpAjax.parseAjaxResponse(f);a("#commentsdiv .widefat").show();a("#commentsdiv .spinner").hide();if("object"==typeof f&&f.responses[0]){a("#the-comment-list").append(f.responses[0].data);theList=theExtraList=null;a("a[className*=':']").unbind();if(commentsBox.st>commentsBox.total){a("#show-comments").hide()}else{a("#show-comments").show().children("a").html(postL10n.showcomm)}return}else{if(1==f){a("#show-comments").html(postL10n.endcomm);return}}a("#the-comment-list").append('<tr><td colspan="2">'+wpAjax.broken+"</td></tr>")});return false}};WPSetThumbnailHTML=function(b){a(".inside","#postimagediv").html(b)};WPSetThumbnailID=function(c){var b=a('input[value="_thumbnail_id"]',"#list-table");if(b.size()>0){a("#meta\\["+b.attr("id").match(/[0-9]+/)+"\\]\\[value\\]").text(c)}};WPRemoveThumbnail=function(b){a.post(ajaxurl,{action:"set-post-thumbnail",post_id:a("#post_ID").val(),thumbnail_id:-1,_ajax_nonce:b,cookie:encodeURIComponent(document.cookie)},function(c){if(c=="0"){alert(setPostThumbnailL10n.error)}else{WPSetThumbnailHTML(c)}})}})(jQuery);jQuery(document).ready(function(f){var b,a,g="",e=0,h=f("#content");postboxes.add_postbox_toggles(pagenow);if(f("#tagsdiv-post_tag").length){tagBox.init()}else{f("#side-sortables, #normal-sortables, #advanced-sortables").children("div.postbox").each(function(){if(this.id.indexOf("tagsdiv-")===0){tagBox.init();return false}})}f(".categorydiv").each(function(){var n=f(this).attr("id"),j=false,m,o,l,i,k;l=n.split("-");l.shift();i=l.join("-");k=i+"_tab";if(i=="category"){k="cats"}f("a","#"+i+"-tabs").click(function(){var p=f(this).attr("href");f(this).parent().addClass("tabs").siblings("li").removeClass("tabs");f("#"+i+"-tabs").siblings(".tabs-panel").hide();f(p).show();if("#"+i+"-all"==p){deleteUserSetting(k)}else{setUserSetting(k,"pop")}return false});if(getUserSetting(k)){f('a[href="#'+i+'-pop"]',"#"+i+"-tabs").click()}f("#new"+i).one("focus",function(){f(this).val("").removeClass("form-input-tip")});f("#new"+i).keypress(function(p){if(13===p.keyCode){p.preventDefault();f("#"+i+"-add-submit").click()}});f("#"+i+"-add-submit").click(function(){f("#new"+i).focus()});m=function(){if(j){return}j=true;var p=jQuery(this),r=p.is(":checked"),q=p.val().toString();f("#in-"+i+"-"+q+", #in-"+i+"-category-"+q).prop("checked",r);j=false};catAddBefore=function(p){if(!f("#new"+i).val()){return false}p.data+="&"+f(":checked","#"+i+"checklist").serialize();f("#"+i+"-add-submit").prop("disabled",true);return p};o=function(u,t){var q,p=f("#new"+i+"_parent");f("#"+i+"-add-submit").prop("disabled",false);if("undefined"!=t.parsed.responses[0]&&(q=t.parsed.responses[0].supplemental.newcat_parent)){p.before(q);p.remove()}};f("#"+i+"checklist").wpList({alt:"",response:i+"-ajax-response",addBefore:catAddBefore,addAfter:o});f("#"+i+"-add-toggle").click(function(){f("#"+i+"-adder").toggleClass("wp-hidden-children");f('a[href="#'+i+'-all"]',"#"+i+"-tabs").click();f("#new"+i).focus();return false});f("#"+i+'checklist li.popular-category input[type="checkbox"], #'+i+'checklist-pop input[type="checkbox"]').live("click",function(){var p=f(this),r=p.is(":checked"),q=p.val();if(q&&p.parents("#taxonomy-"+i).length){f("#in-"+i+"-"+q+", #in-popular-"+i+"-"+q).prop("checked",r)}})});if(f("#postcustom").length){f("#the-list").wpList({addAfter:function(i,j){f("table#list-table").show()},addBefore:function(i){i.data+="&post_id="+f("#post_ID").val();return i}})}if(f("#submitdiv").length){b=f("#timestamp").html();a=f("#post-visibility-display").html();function d(){var i=f("#post-visibility-select");if(f("input:radio:checked",i).val()!="public"){f("#sticky").prop("checked",false);f("#sticky-span").hide()}else{f("#sticky-span").show()}if(f("input:radio:checked",i).val()!="password"){f("#password-span").hide()}else{f("#password-span").show()}}function c(){if(!f("#timestampdiv").length){return true}var p,q,j,s,r=f("#post_status"),k=f('option[value="publish"]',r),i=f("#aa").val(),n=f("#mm").val(),o=f("#jj").val(),m=f("#hh").val(),l=f("#mn").val();p=new Date(i,n-1,o,m,l);q=new Date(f("#hidden_aa").val(),f("#hidden_mm").val()-1,f("#hidden_jj").val(),f("#hidden_hh").val(),f("#hidden_mn").val());j=new Date(f("#cur_aa").val(),f("#cur_mm").val()-1,f("#cur_jj").val(),f("#cur_hh").val(),f("#cur_mn").val());if(p.getFullYear()!=i||(1+p.getMonth())!=n||p.getDate()!=o||p.getMinutes()!=l){f(".timestamp-wrap","#timestampdiv").addClass("form-invalid");return false}else{f(".timestamp-wrap","#timestampdiv").removeClass("form-invalid")}if(p>j&&f("#original_post_status").val()!="future"){s=postL10n.publishOnFuture;f("#publish").val(postL10n.schedule)}else{if(p<=j&&f("#original_post_status").val()!="publish"){s=postL10n.publishOn;f("#publish").val(postL10n.publish)}else{s=postL10n.publishOnPast;f("#publish").val(postL10n.update)}}if(q.toUTCString()==p.toUTCString()){f("#timestamp").html(b)}else{f("#timestamp").html(s+" <b>"+f('option[value="'+f("#mm").val()+'"]',"#mm").text()+" "+o+", "+i+" @ "+m+":"+l+"</b> ")}if(f("input:radio:checked","#post-visibility-select").val()=="private"){f("#publish").val(postL10n.update);if(k.length==0){r.append('<option value="publish">'+postL10n.privatelyPublished+"</option>")}else{k.html(postL10n.privatelyPublished)}f('option[value="publish"]',r).prop("selected",true);f(".edit-post-status","#misc-publishing-actions").hide()}else{if(f("#original_post_status").val()=="future"||f("#original_post_status").val()=="draft"){if(k.length){k.remove();r.val(f("#hidden_post_status").val())}}else{k.html(postL10n.published)}if(r.is(":hidden")){f(".edit-post-status","#misc-publishing-actions").show()}}f("#post-status-display").html(f("option:selected",r).text());if(f("option:selected",r).val()=="private"||f("option:selected",r).val()=="publish"){f("#save-post").hide()}else{f("#save-post").show();if(f("option:selected",r).val()=="pending"){f("#save-post").show().val(postL10n.savePending)}else{f("#save-post").show().val(postL10n.saveDraft)}}return true}f(".edit-visibility","#visibility").click(function(){if(f("#post-visibility-select").is(":hidden")){d();f("#post-visibility-select").slideDown("fast");f(this).hide()}return false});f(".cancel-post-visibility","#post-visibility-select").click(function(){f("#post-visibility-select").slideUp("fast");f("#visibility-radio-"+f("#hidden-post-visibility").val()).prop("checked",true);f("#post_password").val(f("#hidden_post_password").val());f("#sticky").prop("checked",f("#hidden-post-sticky").prop("checked"));f("#post-visibility-display").html(a);f(".edit-visibility","#visibility").show();c();return false});f(".save-post-visibility","#post-visibility-select").click(function(){var i=f("#post-visibility-select");i.slideUp("fast");f(".edit-visibility","#visibility").show();c();if(f("input:radio:checked",i).val()!="public"){f("#sticky").prop("checked",false)}if(true==f("#sticky").prop("checked")){g="Sticky"}else{g=""}f("#post-visibility-display").html(postL10n[f("input:radio:checked",i).val()+g]);return false});f("input:radio","#post-visibility-select").change(function(){d()});f("#timestampdiv").siblings("a.edit-timestamp").click(function(){if(f("#timestampdiv").is(":hidden")){f("#timestampdiv").slideDown("fast");f("#mm").focus();f(this).hide()}return false});f(".cancel-timestamp","#timestampdiv").click(function(){f("#timestampdiv").slideUp("fast");f("#mm").val(f("#hidden_mm").val());f("#jj").val(f("#hidden_jj").val());f("#aa").val(f("#hidden_aa").val());f("#hh").val(f("#hidden_hh").val());f("#mn").val(f("#hidden_mn").val());f("#timestampdiv").siblings("a.edit-timestamp").show();c();return false});f(".save-timestamp","#timestampdiv").click(function(){if(c()){f("#timestampdiv").slideUp("fast");f("#timestampdiv").siblings("a.edit-timestamp").show()}return false});f("#post").on("submit",function(i){if(!c()){i.preventDefault();f("#timestampdiv").show();f("#publishing-action .spinner").hide();f("#publish").prop("disabled",false).removeClass("button-primary-disabled");return false}});f("#post-status-select").siblings("a.edit-post-status").click(function(){if(f("#post-status-select").is(":hidden")){f("#post-status-select").slideDown("fast");f(this).hide()}return false});f(".save-post-status","#post-status-select").click(function(){f("#post-status-select").slideUp("fast");f("#post-status-select").siblings("a.edit-post-status").show();c();return false});f(".cancel-post-status","#post-status-select").click(function(){f("#post-status-select").slideUp("fast");f("#post_status").val(f("#hidden_post_status").val());f("#post-status-select").siblings("a.edit-post-status").show();c();return false})}if(f("#edit-slug-box").length){editPermalink=function(j){var k,n=0,m=f("#editable-post-name"),o=m.html(),r=f("#post_name"),s=r.val(),p=f("#edit-slug-buttons"),q=p.html(),l=f("#editable-post-name-full").html();f("#view-post-btn").hide();p.html('<a href="#" class="save button button-small">'+postL10n.ok+'</a> <a class="cancel" href="#">'+postL10n.cancel+"</a>");p.children(".save").click(function(){var i=m.children("input").val();if(i==f("#editable-post-name-full").text()){return f(".cancel","#edit-slug-buttons").click()}f.post(ajaxurl,{action:"sample-permalink",post_id:j,new_slug:i,new_title:f("#title").val(),samplepermalinknonce:f("#samplepermalinknonce").val()},function(t){f("#edit-slug-box").html(t);p.html(q);r.val(i);makeSlugeditClickable();f("#view-post-btn").show()});return false});f(".cancel","#edit-slug-buttons").click(function(){f("#view-post-btn").show();m.html(o);p.html(q);r.val(s);return false});for(k=0;k<l.length;++k){if("%"==l.charAt(k)){n++}}slug_value=(n>l.length/4)?"":l;m.html('<input type="text" id="new-post-slug" value="'+slug_value+'" />').children("input").keypress(function(t){var i=t.keyCode||0;if(13==i){p.children(".save").click();return false}if(27==i){p.children(".cancel").click();return false}r.val(this.value)}).focus()};makeSlugeditClickable=function(){f("#editable-post-name").click(function(){f("#edit-slug-buttons").children(".edit-slug").click()})};makeSlugeditClickable()}if(typeof(wpWordCount)!="undefined"){f(document).triggerHandler("wpcountwords",[h.val()]);h.keyup(function(j){var i=j.keyCode||j.charCode;if(i==e){return true}if(13==i||8==e||46==e){f(document).triggerHandler("wpcountwords",[h.val()])}e=i;return true})}wptitlehint=function(k){k=k||"title";var i=f("#"+k),j=f("#"+k+"-prompt-text");if(i.val()==""){j.removeClass("screen-reader-text")}j.click(function(){f(this).addClass("screen-reader-text");i.focus()});i.blur(function(){if(this.value==""){j.removeClass("screen-reader-text")}}).focus(function(){j.addClass("screen-reader-text")}).keydown(function(l){j.addClass("screen-reader-text");f(this).unbind(l)})};wptitlehint();(function(){var i=f("textarea#content"),l=null,j;if("ontouchstart" in window){return}function k(n){i.height(Math.max(50,l+n.pageY)+"px");return false}function m(o){var n=f("#wp-content-editor-container").height();i.focus();f(document).unbind("mousemove",k).unbind("mouseup",m);n-=33;if(n>50&&n<5000&&n!=getUserSetting("ed_size")){setUserSetting("ed_size",n)}}i.css("resize","none");j=f('<div id="content-resize-handle"><br></div>');f("#wp-content-wrap").append(j);j.on("mousedown",function(n){l=i.height()-n.pageY;i.blur();f(document).mousemove(k).mouseup(m);return false})})();if(typeof(tinymce)!="undefined"){tinymce.onAddEditor.add(function(i,j){if(j.id!="content"||tinymce.isIOS5){return}j.onLoadContent.add(function(l,n){var p,k=parseInt(f("#content").css("height"),10),m=f("#content_tbl tr.mceFirst").height();if(k&&!isNaN(k)&&m){p=(k-m)+12;if(p>50&&p<5000){f("#content_tbl").css("height","");f("#content_ifr").css("height",p+"px")}}});j.onSaveContent.add(function(l,m){var k=f("#content_tbl").height();if(k&&k>83&&k<5000){k-=33;f("#content").css("height",k+"px")}});j.onPostRender.add(function(){f("#content_resize").on("mousedown.wp-mce-resize",function(k){f(document).on("mouseup.wp-mce-resize",function(m){var l=f("#wp-content-editor-container").height();l-=33;if(l>50&&l<5000&&l!=getUserSetting("ed_size")){setUserSetting("ed_size",l)}f(document).off("mouseup.wp-mce-resize")})})})})}});
\ No newline at end of file
--- a/web/wp-admin/js/postbox.dev.js	Wed Dec 19 12:35:13 2012 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,181 +0,0 @@
-var postboxes;
-
-(function($) {
-	postboxes = {
-		add_postbox_toggles : function(page, args) {
-			var self = this;
-
-			self.init(page, args);
-
-			$('.postbox h3, .postbox .handlediv').bind('click.postboxes', function() {
-				var p = $(this).parent('.postbox'), id = p.attr('id');
-
-				if ( 'dashboard_browser_nag' == id )
-					return;
-
-				p.toggleClass('closed');
-
-				if ( page != 'press-this' )
-					self.save_state(page);
-
-				if ( id ) {
-					if ( !p.hasClass('closed') && $.isFunction(postboxes.pbshow) )
-						self.pbshow(id);
-					else if ( p.hasClass('closed') && $.isFunction(postboxes.pbhide) )
-						self.pbhide(id);
-				}
-			});
-
-			$('.postbox h3 a').click( function(e) {
-				e.stopPropagation();
-			});
-
-			$('.postbox a.dismiss').bind('click.postboxes', function(e) {
-				var hide_id = $(this).parents('.postbox').attr('id') + '-hide';
-				$( '#' + hide_id ).prop('checked', false).triggerHandler('click');
-				return false;
-			});
-
-			$('.hide-postbox-tog').bind('click.postboxes', function() {
-				var box = $(this).val();
-
-				if ( $(this).prop('checked') ) {
-					$('#' + box).show();
-					if ( $.isFunction( postboxes.pbshow ) )
-						self.pbshow( box );
-				} else {
-					$('#' + box).hide();
-					if ( $.isFunction( postboxes.pbhide ) )
-						self.pbhide( box );
-				}
-				self.save_state(page);
-				self._mark_area();
-			});
-
-			$('.columns-prefs input[type="radio"]').bind('click.postboxes', function(){
-				var n = parseInt($(this).val(), 10);
-
-				if ( n ) {
-					self._pb_edit(n);
-					self.save_order(page);
-				}
-			});
-		},
-
-		init : function(page, args) {
-			var isMobile = $(document.body).hasClass('mobile');
-
-			$.extend( this, args || {} );
-			$('#wpbody-content').css('overflow','hidden');
-			$('.meta-box-sortables').sortable({
-				placeholder: 'sortable-placeholder',
-				connectWith: '.meta-box-sortables',
-				items: '.postbox',
-				handle: '.hndle',
-				cursor: 'move',
-				delay: ( isMobile ? 200 : 0 ),
-				distance: 2,
-				tolerance: 'pointer',
-				forcePlaceholderSize: true,
-				helper: 'clone',
-				opacity: 0.65,
-				stop: function(e,ui) {
-					if ( $(this).find('#dashboard_browser_nag').is(':visible') && 'dashboard_browser_nag' != this.firstChild.id ) {
-						$(this).sortable('cancel');
-						return;
-					}
-
-					postboxes.save_order(page);
-				},
-				receive: function(e,ui) {
-					if ( 'dashboard_browser_nag' == ui.item[0].id )
-						$(ui.sender).sortable('cancel');
-
-					postboxes._mark_area();
-				}
-			});
-
-			if ( isMobile ) {
-				$(document.body).bind('orientationchange.postboxes', function(){ postboxes._pb_change(); });
-				this._pb_change();
-			}
-
-			this._mark_area();
-		},
-
-		save_state : function(page) {
-			var closed = $('.postbox').filter('.closed').map(function() { return this.id; }).get().join(','),
-				hidden = $('.postbox').filter(':hidden').map(function() { return this.id; }).get().join(',');
-
-			$.post(ajaxurl, {
-				action: 'closed-postboxes',
-				closed: closed,
-				hidden: hidden,
-				closedpostboxesnonce: jQuery('#closedpostboxesnonce').val(),
-				page: page
-			});
-		},
-
-		save_order : function(page) {
-			var postVars, page_columns = $('.columns-prefs input:checked').val() || 0;
-
-			postVars = {
-				action: 'meta-box-order',
-				_ajax_nonce: $('#meta-box-order-nonce').val(),
-				page_columns: page_columns,
-				page: page
-			}
-			$('.meta-box-sortables').each( function() {
-				postVars["order[" + this.id.split('-')[0] + "]"] = $(this).sortable( 'toArray' ).join(',');
-			} );
-			$.post( ajaxurl, postVars );
-		},
-
-		_mark_area : function() {
-			var visible = $('div.postbox:visible').length, side = $('#post-body #side-sortables');
-
-			$('#dashboard-widgets .meta-box-sortables:visible').each(function(n, el){
-				var t = $(this);
-
-				if ( visible == 1 || t.children('.postbox:visible').length )
-					t.removeClass('empty-container');
-				else
-					t.addClass('empty-container');
-			});
-
-			if ( side.length ) {
-				if ( side.children('.postbox:visible').length )
-					side.removeClass('empty-container');
-				else if ( $('#postbox-container-1').css('width') == '280px' )
-					side.addClass('empty-container');
-			}
-		},
-
-		_pb_edit : function(n) {
-			var el = $('.metabox-holder').get(0);
-			el.className = el.className.replace(/columns-\d+/, 'columns-' + n);
-		},
-
-		_pb_change : function() {
-			switch ( window.orientation ) {
-				case 90:
-				case -90:
-					this._pb_edit(2);
-					break;
-				case 0:
-				case 180:
-					if ( $('#poststuff').length )
-						this._pb_edit(1);
-					else
-						this._pb_edit(2);
-					break;
-			}
-		},
-
-		/* Callbacks */
-		pbshow : false,
-
-		pbhide : false
-	};
-
-}(jQuery));
--- a/web/wp-admin/js/postbox.js	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-admin/js/postbox.js	Wed Dec 19 17:46:52 2012 -0800
@@ -1,1 +1,186 @@
-var postboxes;(function(a){postboxes={add_postbox_toggles:function(d,c){var b=this;b.init(d,c);a(".postbox h3, .postbox .handlediv").bind("click.postboxes",function(){var e=a(this).parent(".postbox"),f=e.attr("id");if("dashboard_browser_nag"==f){return}e.toggleClass("closed");if(d!="press-this"){b.save_state(d)}if(f){if(!e.hasClass("closed")&&a.isFunction(postboxes.pbshow)){b.pbshow(f)}else{if(e.hasClass("closed")&&a.isFunction(postboxes.pbhide)){b.pbhide(f)}}}});a(".postbox h3 a").click(function(f){f.stopPropagation()});a(".postbox a.dismiss").bind("click.postboxes",function(g){var f=a(this).parents(".postbox").attr("id")+"-hide";a("#"+f).prop("checked",false).triggerHandler("click");return false});a(".hide-postbox-tog").bind("click.postboxes",function(){var e=a(this).val();if(a(this).prop("checked")){a("#"+e).show();if(a.isFunction(postboxes.pbshow)){b.pbshow(e)}}else{a("#"+e).hide();if(a.isFunction(postboxes.pbhide)){b.pbhide(e)}}b.save_state(d);b._mark_area()});a('.columns-prefs input[type="radio"]').bind("click.postboxes",function(){var e=parseInt(a(this).val(),10);if(e){b._pb_edit(e);b.save_order(d)}})},init:function(d,c){var b=a(document.body).hasClass("mobile");a.extend(this,c||{});a("#wpbody-content").css("overflow","hidden");a(".meta-box-sortables").sortable({placeholder:"sortable-placeholder",connectWith:".meta-box-sortables",items:".postbox",handle:".hndle",cursor:"move",delay:(b?200:0),distance:2,tolerance:"pointer",forcePlaceholderSize:true,helper:"clone",opacity:0.65,stop:function(g,f){if(a(this).find("#dashboard_browser_nag").is(":visible")&&"dashboard_browser_nag"!=this.firstChild.id){a(this).sortable("cancel");return}postboxes.save_order(d)},receive:function(g,f){if("dashboard_browser_nag"==f.item[0].id){a(f.sender).sortable("cancel")}postboxes._mark_area()}});if(b){a(document.body).bind("orientationchange.postboxes",function(){postboxes._pb_change()});this._pb_change()}this._mark_area()},save_state:function(d){var b=a(".postbox").filter(".closed").map(function(){return this.id}).get().join(","),c=a(".postbox").filter(":hidden").map(function(){return this.id}).get().join(",");a.post(ajaxurl,{action:"closed-postboxes",closed:b,hidden:c,closedpostboxesnonce:jQuery("#closedpostboxesnonce").val(),page:d})},save_order:function(c){var b,d=a(".columns-prefs input:checked").val()||0;b={action:"meta-box-order",_ajax_nonce:a("#meta-box-order-nonce").val(),page_columns:d,page:c};a(".meta-box-sortables").each(function(){b["order["+this.id.split("-")[0]+"]"]=a(this).sortable("toArray").join(",")});a.post(ajaxurl,b)},_mark_area:function(){var c=a("div.postbox:visible").length,b=a("#post-body #side-sortables");a("#dashboard-widgets .meta-box-sortables:visible").each(function(f,e){var d=a(this);if(c==1||d.children(".postbox:visible").length){d.removeClass("empty-container")}else{d.addClass("empty-container")}});if(b.length){if(b.children(".postbox:visible").length){b.removeClass("empty-container")}else{if(a("#postbox-container-1").css("width")=="280px"){b.addClass("empty-container")}}}},_pb_edit:function(c){var b=a(".metabox-holder").get(0);b.className=b.className.replace(/columns-\d+/,"columns-"+c)},_pb_change:function(){switch(window.orientation){case 90:case -90:this._pb_edit(2);break;case 0:case 180:if(a("#poststuff").length){this._pb_edit(1)}else{this._pb_edit(2)}break}},pbshow:false,pbhide:false}}(jQuery));
\ No newline at end of file
+var postboxes;
+
+(function($) {
+	postboxes = {
+		add_postbox_toggles : function(page, args) {
+			var self = this;
+
+			self.init(page, args);
+
+			$('.postbox h3, .postbox .handlediv').bind('click.postboxes', function() {
+				var p = $(this).parent('.postbox'), id = p.attr('id');
+
+				if ( 'dashboard_browser_nag' == id )
+					return;
+
+				p.toggleClass('closed');
+
+				if ( page != 'press-this' )
+					self.save_state(page);
+
+				if ( id ) {
+					if ( !p.hasClass('closed') && $.isFunction(postboxes.pbshow) )
+						self.pbshow(id);
+					else if ( p.hasClass('closed') && $.isFunction(postboxes.pbhide) )
+						self.pbhide(id);
+				}
+			});
+
+			$('.postbox h3 a').click( function(e) {
+				e.stopPropagation();
+			});
+
+			$('.postbox a.dismiss').bind('click.postboxes', function(e) {
+				var hide_id = $(this).parents('.postbox').attr('id') + '-hide';
+				$( '#' + hide_id ).prop('checked', false).triggerHandler('click');
+				return false;
+			});
+
+			$('.hide-postbox-tog').bind('click.postboxes', function() {
+				var box = $(this).val();
+
+				if ( $(this).prop('checked') ) {
+					$('#' + box).show();
+					if ( $.isFunction( postboxes.pbshow ) )
+						self.pbshow( box );
+				} else {
+					$('#' + box).hide();
+					if ( $.isFunction( postboxes.pbhide ) )
+						self.pbhide( box );
+				}
+				self.save_state(page);
+				self._mark_area();
+			});
+
+			$('.columns-prefs input[type="radio"]').bind('click.postboxes', function(){
+				var n = parseInt($(this).val(), 10);
+
+				if ( n ) {
+					self._pb_edit(n);
+					self.save_order(page);
+				}
+			});
+		},
+
+		init : function(page, args) {
+			var isMobile = $(document.body).hasClass('mobile');
+
+			$.extend( this, args || {} );
+			$('#wpbody-content').css('overflow','hidden');
+			$('.meta-box-sortables').sortable({
+				placeholder: 'sortable-placeholder',
+				connectWith: '.meta-box-sortables',
+				items: '.postbox',
+				handle: '.hndle',
+				cursor: 'move',
+				delay: ( isMobile ? 200 : 0 ),
+				distance: 2,
+				tolerance: 'pointer',
+				forcePlaceholderSize: true,
+				helper: 'clone',
+				opacity: 0.65,
+				stop: function(e,ui) {
+					if ( $(this).find('#dashboard_browser_nag').is(':visible') && 'dashboard_browser_nag' != this.firstChild.id ) {
+						$(this).sortable('cancel');
+						return;
+					}
+
+					postboxes.save_order(page);
+				},
+				receive: function(e,ui) {
+					if ( 'dashboard_browser_nag' == ui.item[0].id )
+						$(ui.sender).sortable('cancel');
+
+					postboxes._mark_area();
+				}
+			});
+
+			if ( isMobile ) {
+				$(document.body).bind('orientationchange.postboxes', function(){ postboxes._pb_change(); });
+				this._pb_change();
+			}
+
+			this._mark_area();
+		},
+
+		save_state : function(page) {
+			var closed = $('.postbox').filter('.closed').map(function() { return this.id; }).get().join(','),
+				hidden = $('.postbox').filter(':hidden').map(function() { return this.id; }).get().join(',');
+
+			$.post(ajaxurl, {
+				action: 'closed-postboxes',
+				closed: closed,
+				hidden: hidden,
+				closedpostboxesnonce: jQuery('#closedpostboxesnonce').val(),
+				page: page
+			});
+		},
+
+		save_order : function(page) {
+			var postVars, page_columns = $('.columns-prefs input:checked').val() || 0;
+
+			postVars = {
+				action: 'meta-box-order',
+				_ajax_nonce: $('#meta-box-order-nonce').val(),
+				page_columns: page_columns,
+				page: page
+			}
+			$('.meta-box-sortables').each( function() {
+				postVars["order[" + this.id.split('-')[0] + "]"] = $(this).sortable( 'toArray' ).join(',');
+			} );
+			$.post( ajaxurl, postVars );
+		},
+
+		_mark_area : function() {
+			var visible = $('div.postbox:visible').length, side = $('#post-body #side-sortables');
+
+			$('#dashboard-widgets .meta-box-sortables:visible').each(function(n, el){
+				var t = $(this);
+
+				if ( visible == 1 || t.children('.postbox:visible').length )
+					t.removeClass('empty-container');
+				else
+					t.addClass('empty-container');
+			});
+
+			if ( side.length ) {
+				if ( side.children('.postbox:visible').length )
+					side.removeClass('empty-container');
+				else if ( $('#postbox-container-1').css('width') == '280px' )
+					side.addClass('empty-container');
+			}
+		},
+
+		_pb_edit : function(n) {
+			var el = $('.metabox-holder').get(0);
+			el.className = el.className.replace(/columns-\d+/, 'columns-' + n);
+		},
+
+		_pb_change : function() {
+			var check = $( 'label.columns-prefs-1 input[type="radio"]' );
+
+			switch ( window.orientation ) {
+				case 90:
+				case -90:
+					if ( !check.length || !check.is(':checked') )
+						this._pb_edit(2);
+					break;
+				case 0:
+				case 180:
+					if ( $('#poststuff').length ) {
+						this._pb_edit(1);
+					} else {
+						if ( !check.length || !check.is(':checked') )
+							this._pb_edit(2);
+					}
+					break;
+			}
+		},
+
+		/* Callbacks */
+		pbshow : false,
+
+		pbhide : false
+	};
+
+}(jQuery));
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-admin/js/postbox.min.js	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,1 @@
+var postboxes;(function(a){postboxes={add_postbox_toggles:function(d,c){var b=this;b.init(d,c);a(".postbox h3, .postbox .handlediv").bind("click.postboxes",function(){var e=a(this).parent(".postbox"),f=e.attr("id");if("dashboard_browser_nag"==f){return}e.toggleClass("closed");if(d!="press-this"){b.save_state(d)}if(f){if(!e.hasClass("closed")&&a.isFunction(postboxes.pbshow)){b.pbshow(f)}else{if(e.hasClass("closed")&&a.isFunction(postboxes.pbhide)){b.pbhide(f)}}}});a(".postbox h3 a").click(function(f){f.stopPropagation()});a(".postbox a.dismiss").bind("click.postboxes",function(g){var f=a(this).parents(".postbox").attr("id")+"-hide";a("#"+f).prop("checked",false).triggerHandler("click");return false});a(".hide-postbox-tog").bind("click.postboxes",function(){var e=a(this).val();if(a(this).prop("checked")){a("#"+e).show();if(a.isFunction(postboxes.pbshow)){b.pbshow(e)}}else{a("#"+e).hide();if(a.isFunction(postboxes.pbhide)){b.pbhide(e)}}b.save_state(d);b._mark_area()});a('.columns-prefs input[type="radio"]').bind("click.postboxes",function(){var e=parseInt(a(this).val(),10);if(e){b._pb_edit(e);b.save_order(d)}})},init:function(d,c){var b=a(document.body).hasClass("mobile");a.extend(this,c||{});a("#wpbody-content").css("overflow","hidden");a(".meta-box-sortables").sortable({placeholder:"sortable-placeholder",connectWith:".meta-box-sortables",items:".postbox",handle:".hndle",cursor:"move",delay:(b?200:0),distance:2,tolerance:"pointer",forcePlaceholderSize:true,helper:"clone",opacity:0.65,stop:function(g,f){if(a(this).find("#dashboard_browser_nag").is(":visible")&&"dashboard_browser_nag"!=this.firstChild.id){a(this).sortable("cancel");return}postboxes.save_order(d)},receive:function(g,f){if("dashboard_browser_nag"==f.item[0].id){a(f.sender).sortable("cancel")}postboxes._mark_area()}});if(b){a(document.body).bind("orientationchange.postboxes",function(){postboxes._pb_change()});this._pb_change()}this._mark_area()},save_state:function(d){var b=a(".postbox").filter(".closed").map(function(){return this.id}).get().join(","),c=a(".postbox").filter(":hidden").map(function(){return this.id}).get().join(",");a.post(ajaxurl,{action:"closed-postboxes",closed:b,hidden:c,closedpostboxesnonce:jQuery("#closedpostboxesnonce").val(),page:d})},save_order:function(c){var b,d=a(".columns-prefs input:checked").val()||0;b={action:"meta-box-order",_ajax_nonce:a("#meta-box-order-nonce").val(),page_columns:d,page:c};a(".meta-box-sortables").each(function(){b["order["+this.id.split("-")[0]+"]"]=a(this).sortable("toArray").join(",")});a.post(ajaxurl,b)},_mark_area:function(){var c=a("div.postbox:visible").length,b=a("#post-body #side-sortables");a("#dashboard-widgets .meta-box-sortables:visible").each(function(f,e){var d=a(this);if(c==1||d.children(".postbox:visible").length){d.removeClass("empty-container")}else{d.addClass("empty-container")}});if(b.length){if(b.children(".postbox:visible").length){b.removeClass("empty-container")}else{if(a("#postbox-container-1").css("width")=="280px"){b.addClass("empty-container")}}}},_pb_edit:function(c){var b=a(".metabox-holder").get(0);b.className=b.className.replace(/columns-\d+/,"columns-"+c)},_pb_change:function(){var b=a('label.columns-prefs-1 input[type="radio"]');switch(window.orientation){case 90:case -90:if(!b.length||!b.is(":checked")){this._pb_edit(2)}break;case 0:case 180:if(a("#poststuff").length){this._pb_edit(1)}else{if(!b.length||!b.is(":checked")){this._pb_edit(2)}}break}},pbshow:false,pbhide:false}}(jQuery));
\ No newline at end of file
--- a/web/wp-admin/js/set-post-thumbnail.dev.js	Wed Dec 19 12:35:13 2012 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,21 +0,0 @@
-function WPSetAsThumbnail(id, nonce){
-	var $link = jQuery('a#wp-post-thumbnail-' + id);
-
-	$link.text( setPostThumbnailL10n.saving );
-	jQuery.post(ajaxurl, {
-		action:"set-post-thumbnail", post_id: post_id, thumbnail_id: id, _ajax_nonce: nonce, cookie: encodeURIComponent(document.cookie)
-	}, function(str){
-		var win = window.dialogArguments || opener || parent || top;
-		$link.text( setPostThumbnailL10n.setThumbnail );
-		if ( str == '0' ) {
-			alert( setPostThumbnailL10n.error );
-		} else {
-			jQuery('a.wp-post-thumbnail').show();
-			$link.text( setPostThumbnailL10n.done );
-			$link.fadeOut( 2000 );
-			win.WPSetThumbnailID(id);
-			win.WPSetThumbnailHTML(str);
-		}
-	}
-	);
-}
--- a/web/wp-admin/js/set-post-thumbnail.js	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-admin/js/set-post-thumbnail.js	Wed Dec 19 17:46:52 2012 -0800
@@ -1,1 +1,21 @@
-function WPSetAsThumbnail(c,b){var a=jQuery("a#wp-post-thumbnail-"+c);a.text(setPostThumbnailL10n.saving);jQuery.post(ajaxurl,{action:"set-post-thumbnail",post_id:post_id,thumbnail_id:c,_ajax_nonce:b,cookie:encodeURIComponent(document.cookie)},function(e){var d=window.dialogArguments||opener||parent||top;a.text(setPostThumbnailL10n.setThumbnail);if(e=="0"){alert(setPostThumbnailL10n.error)}else{jQuery("a.wp-post-thumbnail").show();a.text(setPostThumbnailL10n.done);a.fadeOut(2000);d.WPSetThumbnailID(c);d.WPSetThumbnailHTML(e)}})};
\ No newline at end of file
+function WPSetAsThumbnail(id, nonce){
+	var $link = jQuery('a#wp-post-thumbnail-' + id);
+
+	$link.text( setPostThumbnailL10n.saving );
+	jQuery.post(ajaxurl, {
+		action:"set-post-thumbnail", post_id: post_id, thumbnail_id: id, _ajax_nonce: nonce, cookie: encodeURIComponent(document.cookie)
+	}, function(str){
+		var win = window.dialogArguments || opener || parent || top;
+		$link.text( setPostThumbnailL10n.setThumbnail );
+		if ( str == '0' ) {
+			alert( setPostThumbnailL10n.error );
+		} else {
+			jQuery('a.wp-post-thumbnail').show();
+			$link.text( setPostThumbnailL10n.done );
+			$link.fadeOut( 2000 );
+			win.WPSetThumbnailID(id);
+			win.WPSetThumbnailHTML(str);
+		}
+	}
+	);
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-admin/js/set-post-thumbnail.min.js	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,1 @@
+function WPSetAsThumbnail(c,b){var a=jQuery("a#wp-post-thumbnail-"+c);a.text(setPostThumbnailL10n.saving);jQuery.post(ajaxurl,{action:"set-post-thumbnail",post_id:post_id,thumbnail_id:c,_ajax_nonce:b,cookie:encodeURIComponent(document.cookie)},function(e){var d=window.dialogArguments||opener||parent||top;a.text(setPostThumbnailL10n.setThumbnail);if(e=="0"){alert(setPostThumbnailL10n.error)}else{jQuery("a.wp-post-thumbnail").show();a.text(setPostThumbnailL10n.done);a.fadeOut(2000);d.WPSetThumbnailID(c);d.WPSetThumbnailHTML(e)}})};
\ No newline at end of file
--- a/web/wp-admin/js/tags.dev.js	Wed Dec 19 12:35:13 2012 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,68 +0,0 @@
-jQuery(document).ready(function($) {
-
-	$('.delete-tag').live('click', function(e){
-		var t = $(this), tr = t.parents('tr'), r = true, data;
-		if ( 'undefined' != showNotice )
-			r = showNotice.warn();
-		if ( r ) {
-			data = t.attr('href').replace(/[^?]*\?/, '').replace(/action=delete/, 'action=delete-tag');
-			$.post(ajaxurl, data, function(r){
-				if ( '1' == r ) {
-					$('#ajax-response').empty();
-					tr.fadeOut('normal', function(){ tr.remove(); });
-					// Remove the term from the parent box and tag cloud
-					$('select#parent option[value="' + data.match(/tag_ID=(\d+)/)[1] + '"]').remove();
-					$('a.tag-link-' + data.match(/tag_ID=(\d+)/)[1]).remove();
-				} else if ( '-1' == r ) {
-					$('#ajax-response').empty().append('<div class="error"><p>' + tagsl10n.noPerm + '</p></div>');
-					tr.children().css('backgroundColor', '');
-				} else {
-					$('#ajax-response').empty().append('<div class="error"><p>' + tagsl10n.broken + '</p></div>');
-					tr.children().css('backgroundColor', '');
-				}
-			});
-			tr.children().css('backgroundColor', '#f33');
-		}
-		return false;
-	});
-
-	$('#submit').click(function(){
-		var form = $(this).parents('form');
-
-		if ( !validateForm( form ) )
-			return false;
-
-		$.post(ajaxurl, $('#addtag').serialize(), function(r){
-			$('#ajax-response').empty();
-			var res = wpAjax.parseAjaxResponse(r, 'ajax-response');
-			if ( ! res || res.errors )
-				return;
-
-			var parent = form.find('select#parent').val();
-
-			if ( parent > 0 && $('#tag-' + parent ).length > 0 ) // If the parent exists on this page, insert it below. Else insert it at the top of the list.
-				$('.tags #tag-' + parent).after( res.responses[0].supplemental['noparents'] ); // As the parent exists, Insert the version with - - - prefixed
-			else
-				$('.tags').prepend( res.responses[0].supplemental['parents'] ); // As the parent is not visible, Insert the version with Parent - Child - ThisTerm
-
-			$('.tags .no-items').remove();
-
-			if ( form.find('select#parent') ) {
-				// Parents field exists, Add new term to the list.
-				var term = res.responses[1].supplemental;
-
-				// Create an indent for the Parent field
-				var indent = '';
-				for ( var i = 0; i < res.responses[1].position; i++ )
-					indent += '&nbsp;&nbsp;&nbsp;';
-
-				form.find('select#parent option:selected').after('<option value="' + term['term_id'] + '">' + indent + term['name'] + '</option>');
-			}
-
-			$('input[type="text"]:visible, textarea:visible', form).val('');
-		});
-
-		return false;
-	});
-
-});
--- a/web/wp-admin/js/tags.js	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-admin/js/tags.js	Wed Dec 19 17:46:52 2012 -0800
@@ -1,1 +1,68 @@
-jQuery(document).ready(function(a){a(".delete-tag").live("click",function(g){var b=a(this),f=b.parents("tr"),c=true,d;if("undefined"!=showNotice){c=showNotice.warn()}if(c){d=b.attr("href").replace(/[^?]*\?/,"").replace(/action=delete/,"action=delete-tag");a.post(ajaxurl,d,function(e){if("1"==e){a("#ajax-response").empty();f.fadeOut("normal",function(){f.remove()});a('select#parent option[value="'+d.match(/tag_ID=(\d+)/)[1]+'"]').remove();a("a.tag-link-"+d.match(/tag_ID=(\d+)/)[1]).remove()}else{if("-1"==e){a("#ajax-response").empty().append('<div class="error"><p>'+tagsl10n.noPerm+"</p></div>");f.children().css("backgroundColor","")}else{a("#ajax-response").empty().append('<div class="error"><p>'+tagsl10n.broken+"</p></div>");f.children().css("backgroundColor","")}}});f.children().css("backgroundColor","#f33")}return false});a("#submit").click(function(){var b=a(this).parents("form");if(!validateForm(b)){return false}a.post(ajaxurl,a("#addtag").serialize(),function(h){a("#ajax-response").empty();var f=wpAjax.parseAjaxResponse(h,"ajax-response");if(!f||f.errors){return}var g=b.find("select#parent").val();if(g>0&&a("#tag-"+g).length>0){a(".tags #tag-"+g).after(f.responses[0].supplemental.noparents)}else{a(".tags").prepend(f.responses[0].supplemental.parents)}a(".tags .no-items").remove();if(b.find("select#parent")){var e=f.responses[1].supplemental;var c="";for(var d=0;d<f.responses[1].position;d++){c+="&nbsp;&nbsp;&nbsp;"}b.find("select#parent option:selected").after('<option value="'+e.term_id+'">'+c+e.name+"</option>")}a('input[type="text"]:visible, textarea:visible',b).val("")});return false})});
\ No newline at end of file
+jQuery(document).ready(function($) {
+
+	$('.delete-tag').live('click', function(e){
+		var t = $(this), tr = t.parents('tr'), r = true, data;
+		if ( 'undefined' != showNotice )
+			r = showNotice.warn();
+		if ( r ) {
+			data = t.attr('href').replace(/[^?]*\?/, '').replace(/action=delete/, 'action=delete-tag');
+			$.post(ajaxurl, data, function(r){
+				if ( '1' == r ) {
+					$('#ajax-response').empty();
+					tr.fadeOut('normal', function(){ tr.remove(); });
+					// Remove the term from the parent box and tag cloud
+					$('select#parent option[value="' + data.match(/tag_ID=(\d+)/)[1] + '"]').remove();
+					$('a.tag-link-' + data.match(/tag_ID=(\d+)/)[1]).remove();
+				} else if ( '-1' == r ) {
+					$('#ajax-response').empty().append('<div class="error"><p>' + tagsl10n.noPerm + '</p></div>');
+					tr.children().css('backgroundColor', '');
+				} else {
+					$('#ajax-response').empty().append('<div class="error"><p>' + tagsl10n.broken + '</p></div>');
+					tr.children().css('backgroundColor', '');
+				}
+			});
+			tr.children().css('backgroundColor', '#f33');
+		}
+		return false;
+	});
+
+	$('#submit').click(function(){
+		var form = $(this).parents('form');
+
+		if ( !validateForm( form ) )
+			return false;
+
+		$.post(ajaxurl, $('#addtag').serialize(), function(r){
+			$('#ajax-response').empty();
+			var res = wpAjax.parseAjaxResponse(r, 'ajax-response');
+			if ( ! res || res.errors )
+				return;
+
+			var parent = form.find('select#parent').val();
+
+			if ( parent > 0 && $('#tag-' + parent ).length > 0 ) // If the parent exists on this page, insert it below. Else insert it at the top of the list.
+				$('.tags #tag-' + parent).after( res.responses[0].supplemental['noparents'] ); // As the parent exists, Insert the version with - - - prefixed
+			else
+				$('.tags').prepend( res.responses[0].supplemental['parents'] ); // As the parent is not visible, Insert the version with Parent - Child - ThisTerm
+
+			$('.tags .no-items').remove();
+
+			if ( form.find('select#parent') ) {
+				// Parents field exists, Add new term to the list.
+				var term = res.responses[1].supplemental;
+
+				// Create an indent for the Parent field
+				var indent = '';
+				for ( var i = 0; i < res.responses[1].position; i++ )
+					indent += '&nbsp;&nbsp;&nbsp;';
+
+				form.find('select#parent option:selected').after('<option value="' + term['term_id'] + '">' + indent + term['name'] + '</option>');
+			}
+
+			$('input[type="text"]:visible, textarea:visible', form).val('');
+		});
+
+		return false;
+	});
+
+});
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-admin/js/tags.min.js	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,1 @@
+jQuery(document).ready(function(a){a(".delete-tag").live("click",function(g){var b=a(this),f=b.parents("tr"),c=true,d;if("undefined"!=showNotice){c=showNotice.warn()}if(c){d=b.attr("href").replace(/[^?]*\?/,"").replace(/action=delete/,"action=delete-tag");a.post(ajaxurl,d,function(e){if("1"==e){a("#ajax-response").empty();f.fadeOut("normal",function(){f.remove()});a('select#parent option[value="'+d.match(/tag_ID=(\d+)/)[1]+'"]').remove();a("a.tag-link-"+d.match(/tag_ID=(\d+)/)[1]).remove()}else{if("-1"==e){a("#ajax-response").empty().append('<div class="error"><p>'+tagsl10n.noPerm+"</p></div>");f.children().css("backgroundColor","")}else{a("#ajax-response").empty().append('<div class="error"><p>'+tagsl10n.broken+"</p></div>");f.children().css("backgroundColor","")}}});f.children().css("backgroundColor","#f33")}return false});a("#submit").click(function(){var b=a(this).parents("form");if(!validateForm(b)){return false}a.post(ajaxurl,a("#addtag").serialize(),function(h){a("#ajax-response").empty();var f=wpAjax.parseAjaxResponse(h,"ajax-response");if(!f||f.errors){return}var g=b.find("select#parent").val();if(g>0&&a("#tag-"+g).length>0){a(".tags #tag-"+g).after(f.responses[0].supplemental.noparents)}else{a(".tags").prepend(f.responses[0].supplemental.parents)}a(".tags .no-items").remove();if(b.find("select#parent")){var e=f.responses[1].supplemental;var c="";for(var d=0;d<f.responses[1].position;d++){c+="&nbsp;&nbsp;&nbsp;"}b.find("select#parent option:selected").after('<option value="'+e.term_id+'">'+c+e.name+"</option>")}a('input[type="text"]:visible, textarea:visible',b).val("")});return false})});
\ No newline at end of file
--- a/web/wp-admin/js/theme-preview.dev.js	Wed Dec 19 12:35:13 2012 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,56 +0,0 @@
-
-var thickDims, tbWidth, tbHeight;
-jQuery(document).ready(function($) {
-
-	thickDims = function() {
-		var tbWindow = $('#TB_window'), H = $(window).height(), W = $(window).width(), w, h;
-
-		w = (tbWidth && tbWidth < W - 90) ? tbWidth : W - 90;
-		h = (tbHeight && tbHeight < H - 60) ? tbHeight : H - 60;
-
-		if ( tbWindow.size() ) {
-			tbWindow.width(w).height(h);
-			$('#TB_iframeContent').width(w).height(h - 27);
-			tbWindow.css({'margin-left': '-' + parseInt((w / 2),10) + 'px'});
-			if ( typeof document.body.style.maxWidth != 'undefined' )
-				tbWindow.css({'top':'30px','margin-top':'0'});
-		}
-	};
-
-	thickDims();
-	$(window).resize( function() { thickDims() } );
-
-	$('a.thickbox-preview').click( function() {
-		tb_click.call(this);
-
-		var alink = $(this).parents('.available-theme').find('.activatelink'), link = '', href = $(this).attr('href'), url, text;
-
-		if ( tbWidth = href.match(/&tbWidth=[0-9]+/) )
-			tbWidth = parseInt(tbWidth[0].replace(/[^0-9]+/g, ''), 10);
-		else
-			tbWidth = $(window).width() - 90;
-
-		if ( tbHeight = href.match(/&tbHeight=[0-9]+/) )
-			tbHeight = parseInt(tbHeight[0].replace(/[^0-9]+/g, ''), 10);
-		else
-			tbHeight = $(window).height() - 60;
-
-		if ( alink.length ) {
-			url = alink.attr('href') || '';
-			text = alink.attr('title') || '';
-			link = '&nbsp; <a href="' + url + '" target="_top" class="tb-theme-preview-link">' + text + '</a>';
-		} else {
-			text = $(this).attr('title') || '';
-			link = '&nbsp; <span class="tb-theme-preview-link">' + text + '</span>';
-		}
-
-		$('#TB_title').css({'background-color':'#222','color':'#dfdfdf'});
-		$('#TB_closeAjaxWindow').css({'float':'left'});
-		$('#TB_ajaxWindowTitle').css({'float':'right'}).html(link);
-
-		$('#TB_iframeContent').width('100%');
-		thickDims();
-
-		return false;
-	} );
-});
--- a/web/wp-admin/js/theme-preview.js	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-admin/js/theme-preview.js	Wed Dec 19 17:46:52 2012 -0800
@@ -1,1 +1,56 @@
-var thickDims,tbWidth,tbHeight;jQuery(document).ready(function(a){thickDims=function(){var f=a("#TB_window"),d=a(window).height(),b=a(window).width(),c,e;c=(tbWidth&&tbWidth<b-90)?tbWidth:b-90;e=(tbHeight&&tbHeight<d-60)?tbHeight:d-60;if(f.size()){f.width(c).height(e);a("#TB_iframeContent").width(c).height(e-27);f.css({"margin-left":"-"+parseInt((c/2),10)+"px"});if(typeof document.body.style.maxWidth!="undefined"){f.css({top:"30px","margin-top":"0"})}}};thickDims();a(window).resize(function(){thickDims()});a("a.thickbox-preview").click(function(){tb_click.call(this);var d=a(this).parents(".available-theme").find(".activatelink"),e="",b=a(this).attr("href"),c,f;if(tbWidth=b.match(/&tbWidth=[0-9]+/)){tbWidth=parseInt(tbWidth[0].replace(/[^0-9]+/g,""),10)}else{tbWidth=a(window).width()-90}if(tbHeight=b.match(/&tbHeight=[0-9]+/)){tbHeight=parseInt(tbHeight[0].replace(/[^0-9]+/g,""),10)}else{tbHeight=a(window).height()-60}if(d.length){c=d.attr("href")||"";f=d.attr("title")||"";e='&nbsp; <a href="'+c+'" target="_top" class="tb-theme-preview-link">'+f+"</a>"}else{f=a(this).attr("title")||"";e='&nbsp; <span class="tb-theme-preview-link">'+f+"</span>"}a("#TB_title").css({"background-color":"#222",color:"#dfdfdf"});a("#TB_closeAjaxWindow").css({"float":"left"});a("#TB_ajaxWindowTitle").css({"float":"right"}).html(e);a("#TB_iframeContent").width("100%");thickDims();return false})});
\ No newline at end of file
+
+var thickDims, tbWidth, tbHeight;
+jQuery(document).ready(function($) {
+
+	thickDims = function() {
+		var tbWindow = $('#TB_window'), H = $(window).height(), W = $(window).width(), w, h;
+
+		w = (tbWidth && tbWidth < W - 90) ? tbWidth : W - 90;
+		h = (tbHeight && tbHeight < H - 60) ? tbHeight : H - 60;
+
+		if ( tbWindow.size() ) {
+			tbWindow.width(w).height(h);
+			$('#TB_iframeContent').width(w).height(h - 27);
+			tbWindow.css({'margin-left': '-' + parseInt((w / 2),10) + 'px'});
+			if ( typeof document.body.style.maxWidth != 'undefined' )
+				tbWindow.css({'top':'30px','margin-top':'0'});
+		}
+	};
+
+	thickDims();
+	$(window).resize( function() { thickDims() } );
+
+	$('a.thickbox-preview').click( function() {
+		tb_click.call(this);
+
+		var alink = $(this).parents('.available-theme').find('.activatelink'), link = '', href = $(this).attr('href'), url, text;
+
+		if ( tbWidth = href.match(/&tbWidth=[0-9]+/) )
+			tbWidth = parseInt(tbWidth[0].replace(/[^0-9]+/g, ''), 10);
+		else
+			tbWidth = $(window).width() - 90;
+
+		if ( tbHeight = href.match(/&tbHeight=[0-9]+/) )
+			tbHeight = parseInt(tbHeight[0].replace(/[^0-9]+/g, ''), 10);
+		else
+			tbHeight = $(window).height() - 60;
+
+		if ( alink.length ) {
+			url = alink.attr('href') || '';
+			text = alink.attr('title') || '';
+			link = '&nbsp; <a href="' + url + '" target="_top" class="tb-theme-preview-link">' + text + '</a>';
+		} else {
+			text = $(this).attr('title') || '';
+			link = '&nbsp; <span class="tb-theme-preview-link">' + text + '</span>';
+		}
+
+		$('#TB_title').css({'background-color':'#222','color':'#dfdfdf'});
+		$('#TB_closeAjaxWindow').css({'float':'left'});
+		$('#TB_ajaxWindowTitle').css({'float':'right'}).html(link);
+
+		$('#TB_iframeContent').width('100%');
+		thickDims();
+
+		return false;
+	} );
+});
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-admin/js/theme-preview.min.js	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,1 @@
+var thickDims,tbWidth,tbHeight;jQuery(document).ready(function(a){thickDims=function(){var f=a("#TB_window"),d=a(window).height(),b=a(window).width(),c,e;c=(tbWidth&&tbWidth<b-90)?tbWidth:b-90;e=(tbHeight&&tbHeight<d-60)?tbHeight:d-60;if(f.size()){f.width(c).height(e);a("#TB_iframeContent").width(c).height(e-27);f.css({"margin-left":"-"+parseInt((c/2),10)+"px"});if(typeof document.body.style.maxWidth!="undefined"){f.css({top:"30px","margin-top":"0"})}}};thickDims();a(window).resize(function(){thickDims()});a("a.thickbox-preview").click(function(){tb_click.call(this);var d=a(this).parents(".available-theme").find(".activatelink"),e="",b=a(this).attr("href"),c,f;if(tbWidth=b.match(/&tbWidth=[0-9]+/)){tbWidth=parseInt(tbWidth[0].replace(/[^0-9]+/g,""),10)}else{tbWidth=a(window).width()-90}if(tbHeight=b.match(/&tbHeight=[0-9]+/)){tbHeight=parseInt(tbHeight[0].replace(/[^0-9]+/g,""),10)}else{tbHeight=a(window).height()-60}if(d.length){c=d.attr("href")||"";f=d.attr("title")||"";e='&nbsp; <a href="'+c+'" target="_top" class="tb-theme-preview-link">'+f+"</a>"}else{f=a(this).attr("title")||"";e='&nbsp; <span class="tb-theme-preview-link">'+f+"</span>"}a("#TB_title").css({"background-color":"#222",color:"#dfdfdf"});a("#TB_closeAjaxWindow").css({"float":"left"});a("#TB_ajaxWindowTitle").css({"float":"right"}).html(e);a("#TB_iframeContent").width("100%");thickDims();return false})});
\ No newline at end of file
--- a/web/wp-admin/js/theme.dev.js	Wed Dec 19 12:35:13 2012 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,254 +0,0 @@
-/**
- * Theme Browsing
- *
- * Controls visibility of theme details on manage and install themes pages.
- */
-jQuery( function($) {
-	$('#availablethemes').on( 'click', '.theme-detail', function (event) {
-		var theme   = $(this).closest('.available-theme'),
-			details = theme.find('.themedetaildiv');
-
-		if ( ! details.length ) {
-			details = theme.find('.install-theme-info .theme-details');
-			details = details.clone().addClass('themedetaildiv').appendTo( theme ).hide();
-		}
-
-		details.toggle();
-		event.preventDefault();
-	});
-});
-
-/**
- * Theme Install
- *
- * Displays theme previews on theme install pages.
- */
-jQuery( function($) {
-	if( ! window.postMessage )
-		return;
-
-	var preview = $('#theme-installer'),
-		info    = preview.find('.install-theme-info'),
-		panel   = preview.find('.wp-full-overlay-main'),
-		body    = $( document.body );
-
-	preview.on( 'click', '.close-full-overlay', function( event ) {
-		preview.fadeOut( 200, function() {
-			panel.empty();
-			body.removeClass('theme-installer-active full-overlay-active');
-		});
-		event.preventDefault();
-	});
-
-	preview.on( 'click', '.collapse-sidebar', function( event ) {
-		preview.toggleClass( 'collapsed' ).toggleClass( 'expanded' );
-		event.preventDefault();
-	});
-
-	$('#availablethemes').on( 'click', '.install-theme-preview', function( event ) {
-		var src;
-
-		info.html( $(this).closest('.installable-theme').find('.install-theme-info').html() );
-		src = info.find( '.theme-preview-url' ).val();
-		panel.html( '<iframe src="' + src + '" />');
-		preview.fadeIn( 200, function() {
-			body.addClass('theme-installer-active full-overlay-active');
-		});
-		event.preventDefault();
-	});
-});
-
-var ThemeViewer;
-
-(function($){
-	ThemeViewer = function( args ) {
-
-		function init() {
-			$( '#filter-click, #mini-filter-click' ).unbind( 'click' ).click( function() {
-				$( '#filter-click' ).toggleClass( 'current' );
-				$( '#filter-box' ).slideToggle();
-				$( '#current-theme' ).slideToggle( 300 );
-				return false;
-			});
-
-			$( '#filter-box :checkbox' ).unbind( 'click' ).click( function() {
-				var count = $( '#filter-box :checked' ).length,
-					text  = $( '#filter-click' ).text();
-
-				if ( text.indexOf( '(' ) != -1 )
-					text = text.substr( 0, text.indexOf( '(' ) );
-
-				if ( count == 0 )
-					$( '#filter-click' ).text( text );
-				else
-					$( '#filter-click' ).text( text + ' (' + count + ')' );
-			});
-
-			/* $('#filter-box :submit').unbind( 'click' ).click(function() {
-				var features = [];
-				$('#filter-box :checked').each(function() {
-					features.push($(this).val());
-				});
-
-				listTable.update_rows({'features': features}, true, function() {
-					$( '#filter-click' ).toggleClass( 'current' );
-					$( '#filter-box' ).slideToggle();
-					$( '#current-theme' ).slideToggle( 300 );
-				});
-
-				return false;
-			}); */
-		}
-
-		// These are the functions we expose
-		var api = {
-			init: init
-		};
-
-	return api;
-	}
-})(jQuery);
-
-jQuery( document ).ready( function($) {
-	theme_viewer = new ThemeViewer();
-	theme_viewer.init();
-});
-
-
-/**
- * Class that provides infinite scroll for Themes admin screens
- *
- * @since 3.4
- *
- * @uses ajaxurl
- * @uses list_args
- * @uses theme_list_args
- * @uses $('#_ajax_fetch_list_nonce').val()
-* */
-var ThemeScroller;
-(function($){
-	ThemeScroller = {
-		querying: false,
-		scrollPollingDelay: 500,
-		failedRetryDelay: 4000,
-		outListBottomThreshold: 300,
-
-		/**
-		 * Initializer
-		 *
-		 * @since 3.4
-		 * @access private
-		 */
-		init: function() {
-			var self = this;
-
-			// Get out early if we don't have the required arguments.
-			if ( typeof ajaxurl === 'undefined' ||
-				 typeof list_args === 'undefined' ||
-				 typeof theme_list_args === 'undefined' ) {
-					$('.pagination-links').show();
-					return;
-			}
-
-			// Handle inputs
-			this.nonce = $('#_ajax_fetch_list_nonce').val();
-			this.nextPage = ( theme_list_args.paged + 1 );
-
-			// Cache jQuery selectors
-			this.$outList = $('#availablethemes');
-			this.$spinner = $('div.tablenav.bottom').children( 'img.ajax-loading' );
-			this.$window = $(window);
-			this.$document = $(document);
-
-			/**
-			 * If there are more pages to query, then start polling to track
-			 * when user hits the bottom of the current page
-			 */
-			if ( theme_list_args.total_pages >= this.nextPage )
-				this.pollInterval =
-					setInterval( function() {
-						return self.poll();
-					}, this.scrollPollingDelay );
-		},
-
-		/**
-		 * Checks to see if user has scrolled to bottom of page.
-		 * If so, requests another page of content from self.ajax().
-		 *
-		 * @since 3.4
-		 * @access private
-		 */
-		poll: function() {
-			var bottom = this.$document.scrollTop() + this.$window.innerHeight();
-
-			if ( this.querying ||
-				( bottom < this.$outList.height() - this.outListBottomThreshold ) )
-				return;
-
-			this.ajax();
-		},
-
-		/**
-		 * Applies results passed from this.ajax() to $outList
-		 *
-		 * @since 3.4
-		 * @access private
-		 *
-		 * @param results Array with results from this.ajax() query.
-		 */
-		process: function( results ) {
-			if ( results === undefined ) {
-				clearInterval( this.pollInterval );
-				return;
-			}
-
-			if ( this.nextPage > theme_list_args.total_pages )
-				clearInterval( this.pollInterval );
-
-			if ( this.nextPage <= ( theme_list_args.total_pages + 1 ) )
-				this.$outList.append( results.rows );
-		},
-
-		/**
-		 * Queries next page of themes
-		 *
-		 * @since 3.4
-		 * @access private
-		 */
-		ajax: function() {
-			var self = this;
-
-			this.querying = true;
-
-			var query = {
-				action: 'fetch-list',
-				paged: this.nextPage,
-				s: theme_list_args.search,
-				tab: theme_list_args.tab,
-				type: theme_list_args.type,
-				_ajax_fetch_list_nonce: this.nonce,
-				'features[]': theme_list_args.features,
-				'list_args': list_args
-			};
-
-			this.$spinner.css( 'visibility', 'visible' );
-			$.getJSON( ajaxurl, query )
-				.done( function( response ) {
-					self.nextPage++;
-					self.process( response );
-					self.$spinner.css( 'visibility', 'hidden' );
-					self.querying = false;
-				})
-				.fail( function() {
-					self.$spinner.css( 'visibility', 'hidden' );
-					self.querying = false;
-					setTimeout( function() { self.ajax(); }, self.failedRetryDelay );
-				});
-		}
-	}
-
-	$(document).ready( function($) {
-		ThemeScroller.init();
-	});
-
-})(jQuery);
--- a/web/wp-admin/js/theme.js	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-admin/js/theme.js	Wed Dec 19 17:46:52 2012 -0800
@@ -1,1 +1,254 @@
-jQuery(function(a){a("#availablethemes").on("click",".theme-detail",function(c){var d=a(this).closest(".available-theme"),b=d.find(".themedetaildiv");if(!b.length){b=d.find(".install-theme-info .theme-details");b=b.clone().addClass("themedetaildiv").appendTo(d).hide()}b.toggle();c.preventDefault()})});jQuery(function(c){if(!window.postMessage){return}var e=c("#theme-installer"),d=e.find(".install-theme-info"),b=e.find(".wp-full-overlay-main"),a=c(document.body);e.on("click",".close-full-overlay",function(f){e.fadeOut(200,function(){b.empty();a.removeClass("theme-installer-active full-overlay-active")});f.preventDefault()});e.on("click",".collapse-sidebar",function(f){e.toggleClass("collapsed").toggleClass("expanded");f.preventDefault()});c("#availablethemes").on("click",".install-theme-preview",function(f){var g;d.html(c(this).closest(".installable-theme").find(".install-theme-info").html());g=d.find(".theme-preview-url").val();b.html('<iframe src="'+g+'" />');e.fadeIn(200,function(){a.addClass("theme-installer-active full-overlay-active")});f.preventDefault()})});var ThemeViewer;(function(a){ThemeViewer=function(b){function d(){a("#filter-click, #mini-filter-click").unbind("click").click(function(){a("#filter-click").toggleClass("current");a("#filter-box").slideToggle();a("#current-theme").slideToggle(300);return false});a("#filter-box :checkbox").unbind("click").click(function(){var e=a("#filter-box :checked").length,f=a("#filter-click").text();if(f.indexOf("(")!=-1){f=f.substr(0,f.indexOf("("))}if(e==0){a("#filter-click").text(f)}else{a("#filter-click").text(f+" ("+e+")")}})}var c={init:d};return c}})(jQuery);jQuery(document).ready(function(a){theme_viewer=new ThemeViewer();theme_viewer.init()});var ThemeScroller;(function(a){ThemeScroller={querying:false,scrollPollingDelay:500,failedRetryDelay:4000,outListBottomThreshold:300,init:function(){var b=this;if(typeof ajaxurl==="undefined"||typeof list_args==="undefined"||typeof theme_list_args==="undefined"){a(".pagination-links").show();return}this.nonce=a("#_ajax_fetch_list_nonce").val();this.nextPage=(theme_list_args.paged+1);this.$outList=a("#availablethemes");this.$spinner=a("div.tablenav.bottom").children("img.ajax-loading");this.$window=a(window);this.$document=a(document);if(theme_list_args.total_pages>=this.nextPage){this.pollInterval=setInterval(function(){return b.poll()},this.scrollPollingDelay)}},poll:function(){var b=this.$document.scrollTop()+this.$window.innerHeight();if(this.querying||(b<this.$outList.height()-this.outListBottomThreshold)){return}this.ajax()},process:function(b){if(b===undefined){clearInterval(this.pollInterval);return}if(this.nextPage>theme_list_args.total_pages){clearInterval(this.pollInterval)}if(this.nextPage<=(theme_list_args.total_pages+1)){this.$outList.append(b.rows)}},ajax:function(){var b=this;this.querying=true;var c={action:"fetch-list",paged:this.nextPage,s:theme_list_args.search,tab:theme_list_args.tab,type:theme_list_args.type,_ajax_fetch_list_nonce:this.nonce,"features[]":theme_list_args.features,list_args:list_args};this.$spinner.css("visibility","visible");a.getJSON(ajaxurl,c).done(function(d){b.nextPage++;b.process(d);b.$spinner.css("visibility","hidden");b.querying=false}).fail(function(){b.$spinner.css("visibility","hidden");b.querying=false;setTimeout(function(){b.ajax()},b.failedRetryDelay)})}};a(document).ready(function(b){ThemeScroller.init()})})(jQuery);
\ No newline at end of file
+/**
+ * Theme Browsing
+ *
+ * Controls visibility of theme details on manage and install themes pages.
+ */
+jQuery( function($) {
+	$('#availablethemes').on( 'click', '.theme-detail', function (event) {
+		var theme   = $(this).closest('.available-theme'),
+			details = theme.find('.themedetaildiv');
+
+		if ( ! details.length ) {
+			details = theme.find('.install-theme-info .theme-details');
+			details = details.clone().addClass('themedetaildiv').appendTo( theme ).hide();
+		}
+
+		details.toggle();
+		event.preventDefault();
+	});
+});
+
+/**
+ * Theme Install
+ *
+ * Displays theme previews on theme install pages.
+ */
+jQuery( function($) {
+	if( ! window.postMessage )
+		return;
+
+	var preview = $('#theme-installer'),
+		info    = preview.find('.install-theme-info'),
+		panel   = preview.find('.wp-full-overlay-main'),
+		body    = $( document.body );
+
+	preview.on( 'click', '.close-full-overlay', function( event ) {
+		preview.fadeOut( 200, function() {
+			panel.empty();
+			body.removeClass('theme-installer-active full-overlay-active');
+		});
+		event.preventDefault();
+	});
+
+	preview.on( 'click', '.collapse-sidebar', function( event ) {
+		preview.toggleClass( 'collapsed' ).toggleClass( 'expanded' );
+		event.preventDefault();
+	});
+
+	$('#availablethemes').on( 'click', '.install-theme-preview', function( event ) {
+		var src;
+
+		info.html( $(this).closest('.installable-theme').find('.install-theme-info').html() );
+		src = info.find( '.theme-preview-url' ).val();
+		panel.html( '<iframe src="' + src + '" />');
+		preview.fadeIn( 200, function() {
+			body.addClass('theme-installer-active full-overlay-active');
+		});
+		event.preventDefault();
+	});
+});
+
+var ThemeViewer;
+
+(function($){
+	ThemeViewer = function( args ) {
+
+		function init() {
+			$( '#filter-click, #mini-filter-click' ).unbind( 'click' ).click( function() {
+				$( '#filter-click' ).toggleClass( 'current' );
+				$( '#filter-box' ).slideToggle();
+				$( '#current-theme' ).slideToggle( 300 );
+				return false;
+			});
+
+			$( '#filter-box :checkbox' ).unbind( 'click' ).click( function() {
+				var count = $( '#filter-box :checked' ).length,
+					text  = $( '#filter-click' ).text();
+
+				if ( text.indexOf( '(' ) != -1 )
+					text = text.substr( 0, text.indexOf( '(' ) );
+
+				if ( count == 0 )
+					$( '#filter-click' ).text( text );
+				else
+					$( '#filter-click' ).text( text + ' (' + count + ')' );
+			});
+
+			/* $('#filter-box :submit').unbind( 'click' ).click(function() {
+				var features = [];
+				$('#filter-box :checked').each(function() {
+					features.push($(this).val());
+				});
+
+				listTable.update_rows({'features': features}, true, function() {
+					$( '#filter-click' ).toggleClass( 'current' );
+					$( '#filter-box' ).slideToggle();
+					$( '#current-theme' ).slideToggle( 300 );
+				});
+
+				return false;
+			}); */
+		}
+
+		// These are the functions we expose
+		var api = {
+			init: init
+		};
+
+	return api;
+	}
+})(jQuery);
+
+jQuery( document ).ready( function($) {
+	theme_viewer = new ThemeViewer();
+	theme_viewer.init();
+});
+
+
+/**
+ * Class that provides infinite scroll for Themes admin screens
+ *
+ * @since 3.4
+ *
+ * @uses ajaxurl
+ * @uses list_args
+ * @uses theme_list_args
+ * @uses $('#_ajax_fetch_list_nonce').val()
+* */
+var ThemeScroller;
+(function($){
+	ThemeScroller = {
+		querying: false,
+		scrollPollingDelay: 500,
+		failedRetryDelay: 4000,
+		outListBottomThreshold: 300,
+
+		/**
+		 * Initializer
+		 *
+		 * @since 3.4
+		 * @access private
+		 */
+		init: function() {
+			var self = this;
+
+			// Get out early if we don't have the required arguments.
+			if ( typeof ajaxurl === 'undefined' ||
+				 typeof list_args === 'undefined' ||
+				 typeof theme_list_args === 'undefined' ) {
+					$('.pagination-links').show();
+					return;
+			}
+
+			// Handle inputs
+			this.nonce = $('#_ajax_fetch_list_nonce').val();
+			this.nextPage = ( theme_list_args.paged + 1 );
+
+			// Cache jQuery selectors
+			this.$outList = $('#availablethemes');
+			this.$spinner = $('div.tablenav.bottom').children( '.spinner' );
+			this.$window = $(window);
+			this.$document = $(document);
+
+			/**
+			 * If there are more pages to query, then start polling to track
+			 * when user hits the bottom of the current page
+			 */
+			if ( theme_list_args.total_pages >= this.nextPage )
+				this.pollInterval =
+					setInterval( function() {
+						return self.poll();
+					}, this.scrollPollingDelay );
+		},
+
+		/**
+		 * Checks to see if user has scrolled to bottom of page.
+		 * If so, requests another page of content from self.ajax().
+		 *
+		 * @since 3.4
+		 * @access private
+		 */
+		poll: function() {
+			var bottom = this.$document.scrollTop() + this.$window.innerHeight();
+
+			if ( this.querying ||
+				( bottom < this.$outList.height() - this.outListBottomThreshold ) )
+				return;
+
+			this.ajax();
+		},
+
+		/**
+		 * Applies results passed from this.ajax() to $outList
+		 *
+		 * @since 3.4
+		 * @access private
+		 *
+		 * @param results Array with results from this.ajax() query.
+		 */
+		process: function( results ) {
+			if ( results === undefined ) {
+				clearInterval( this.pollInterval );
+				return;
+			}
+
+			if ( this.nextPage > theme_list_args.total_pages )
+				clearInterval( this.pollInterval );
+
+			if ( this.nextPage <= ( theme_list_args.total_pages + 1 ) )
+				this.$outList.append( results.rows );
+		},
+
+		/**
+		 * Queries next page of themes
+		 *
+		 * @since 3.4
+		 * @access private
+		 */
+		ajax: function() {
+			var self = this;
+
+			this.querying = true;
+
+			var query = {
+				action: 'fetch-list',
+				paged: this.nextPage,
+				s: theme_list_args.search,
+				tab: theme_list_args.tab,
+				type: theme_list_args.type,
+				_ajax_fetch_list_nonce: this.nonce,
+				'features[]': theme_list_args.features,
+				'list_args': list_args
+			};
+
+			this.$spinner.show();
+			$.getJSON( ajaxurl, query )
+				.done( function( response ) {
+					self.nextPage++;
+					self.process( response );
+					self.$spinner.hide();
+					self.querying = false;
+				})
+				.fail( function() {
+					self.$spinner.hide();
+					self.querying = false;
+					setTimeout( function() { self.ajax(); }, self.failedRetryDelay );
+				});
+		}
+	}
+
+	$(document).ready( function($) {
+		ThemeScroller.init();
+	});
+
+})(jQuery);
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-admin/js/theme.min.js	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,1 @@
+jQuery(function(a){a("#availablethemes").on("click",".theme-detail",function(c){var d=a(this).closest(".available-theme"),b=d.find(".themedetaildiv");if(!b.length){b=d.find(".install-theme-info .theme-details");b=b.clone().addClass("themedetaildiv").appendTo(d).hide()}b.toggle();c.preventDefault()})});jQuery(function(c){if(!window.postMessage){return}var e=c("#theme-installer"),d=e.find(".install-theme-info"),b=e.find(".wp-full-overlay-main"),a=c(document.body);e.on("click",".close-full-overlay",function(f){e.fadeOut(200,function(){b.empty();a.removeClass("theme-installer-active full-overlay-active")});f.preventDefault()});e.on("click",".collapse-sidebar",function(f){e.toggleClass("collapsed").toggleClass("expanded");f.preventDefault()});c("#availablethemes").on("click",".install-theme-preview",function(f){var g;d.html(c(this).closest(".installable-theme").find(".install-theme-info").html());g=d.find(".theme-preview-url").val();b.html('<iframe src="'+g+'" />');e.fadeIn(200,function(){a.addClass("theme-installer-active full-overlay-active")});f.preventDefault()})});var ThemeViewer;(function(a){ThemeViewer=function(b){function d(){a("#filter-click, #mini-filter-click").unbind("click").click(function(){a("#filter-click").toggleClass("current");a("#filter-box").slideToggle();a("#current-theme").slideToggle(300);return false});a("#filter-box :checkbox").unbind("click").click(function(){var e=a("#filter-box :checked").length,f=a("#filter-click").text();if(f.indexOf("(")!=-1){f=f.substr(0,f.indexOf("("))}if(e==0){a("#filter-click").text(f)}else{a("#filter-click").text(f+" ("+e+")")}})}var c={init:d};return c}})(jQuery);jQuery(document).ready(function(a){theme_viewer=new ThemeViewer();theme_viewer.init()});var ThemeScroller;(function(a){ThemeScroller={querying:false,scrollPollingDelay:500,failedRetryDelay:4000,outListBottomThreshold:300,init:function(){var b=this;if(typeof ajaxurl==="undefined"||typeof list_args==="undefined"||typeof theme_list_args==="undefined"){a(".pagination-links").show();return}this.nonce=a("#_ajax_fetch_list_nonce").val();this.nextPage=(theme_list_args.paged+1);this.$outList=a("#availablethemes");this.$spinner=a("div.tablenav.bottom").children(".spinner");this.$window=a(window);this.$document=a(document);if(theme_list_args.total_pages>=this.nextPage){this.pollInterval=setInterval(function(){return b.poll()},this.scrollPollingDelay)}},poll:function(){var b=this.$document.scrollTop()+this.$window.innerHeight();if(this.querying||(b<this.$outList.height()-this.outListBottomThreshold)){return}this.ajax()},process:function(b){if(b===undefined){clearInterval(this.pollInterval);return}if(this.nextPage>theme_list_args.total_pages){clearInterval(this.pollInterval)}if(this.nextPage<=(theme_list_args.total_pages+1)){this.$outList.append(b.rows)}},ajax:function(){var b=this;this.querying=true;var c={action:"fetch-list",paged:this.nextPage,s:theme_list_args.search,tab:theme_list_args.tab,type:theme_list_args.type,_ajax_fetch_list_nonce:this.nonce,"features[]":theme_list_args.features,list_args:list_args};this.$spinner.show();a.getJSON(ajaxurl,c).done(function(d){b.nextPage++;b.process(d);b.$spinner.hide();b.querying=false}).fail(function(){b.$spinner.hide();b.querying=false;setTimeout(function(){b.ajax()},b.failedRetryDelay)})}};a(document).ready(function(b){ThemeScroller.init()})})(jQuery);
\ No newline at end of file
--- a/web/wp-admin/js/user-profile.dev.js	Wed Dec 19 12:35:13 2012 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,78 +0,0 @@
-(function($){
-
-	function check_pass_strength() {
-		var pass1 = $('#pass1').val(), user = $('#user_login').val(), pass2 = $('#pass2').val(), strength;
-
-		$('#pass-strength-result').removeClass('short bad good strong');
-		if ( ! pass1 ) {
-			$('#pass-strength-result').html( pwsL10n.empty );
-			return;
-		}
-
-		strength = passwordStrength(pass1, user, pass2);
-
-		switch ( strength ) {
-			case 2:
-				$('#pass-strength-result').addClass('bad').html( pwsL10n['bad'] );
-				break;
-			case 3:
-				$('#pass-strength-result').addClass('good').html( pwsL10n['good'] );
-				break;
-			case 4:
-				$('#pass-strength-result').addClass('strong').html( pwsL10n['strong'] );
-				break;
-			case 5:
-				$('#pass-strength-result').addClass('short').html( pwsL10n['mismatch'] );
-				break;
-			default:
-				$('#pass-strength-result').addClass('short').html( pwsL10n['short'] );
-		}
-	}
-
-	$(document).ready( function() {
-		var select = $('#display_name');
-
-		$('#pass1').val('').keyup( check_pass_strength );
-		$('#pass2').val('').keyup( check_pass_strength );
-		$('#pass-strength-result').show();
-		$('.color-palette').click( function() {
-			$(this).siblings('input[name="admin_color"]').prop('checked', true);
-		});
-
-		if ( select.length ) {
-			$('#first_name, #last_name, #nickname').bind( 'blur.user_profile', function() {
-				var dub = [],
-					inputs = {
-						display_nickname  : $('#nickname').val() || '',
-						display_username  : $('#user_login').val() || '',
-						display_firstname : $('#first_name').val() || '',
-						display_lastname  : $('#last_name').val() || ''
-					};
-
-				if ( inputs.display_firstname && inputs.display_lastname ) {
-					inputs['display_firstlast'] = inputs.display_firstname + ' ' + inputs.display_lastname;
-					inputs['display_lastfirst'] = inputs.display_lastname + ' ' + inputs.display_firstname;
-				}
-
-				$.each( $('option', select), function( i, el ){
-					dub.push( el.value );
-				});
-
-				$.each(inputs, function( id, value ) {
-					if ( ! value )
-						return;
-
-					var val = value.replace(/<\/?[a-z][^>]*>/gi, '');
-
-					if ( inputs[id].length && $.inArray( val, dub ) == -1 ) {
-						dub.push(val);
-						$('<option />', {
-							'text': val
-						}).appendTo( select );
-					}
-				});
-			});
-		}
-	});
-
-})(jQuery);
--- a/web/wp-admin/js/user-profile.js	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-admin/js/user-profile.js	Wed Dec 19 17:46:52 2012 -0800
@@ -1,1 +1,78 @@
-(function(a){function b(){var e=a("#pass1").val(),d=a("#user_login").val(),c=a("#pass2").val(),f;a("#pass-strength-result").removeClass("short bad good strong");if(!e){a("#pass-strength-result").html(pwsL10n.empty);return}f=passwordStrength(e,d,c);switch(f){case 2:a("#pass-strength-result").addClass("bad").html(pwsL10n.bad);break;case 3:a("#pass-strength-result").addClass("good").html(pwsL10n.good);break;case 4:a("#pass-strength-result").addClass("strong").html(pwsL10n.strong);break;case 5:a("#pass-strength-result").addClass("short").html(pwsL10n.mismatch);break;default:a("#pass-strength-result").addClass("short").html(pwsL10n["short"])}}a(document).ready(function(){var c=a("#display_name");a("#pass1").val("").keyup(b);a("#pass2").val("").keyup(b);a("#pass-strength-result").show();a(".color-palette").click(function(){a(this).siblings('input[name="admin_color"]').prop("checked",true)});if(c.length){a("#first_name, #last_name, #nickname").bind("blur.user_profile",function(){var e=[],d={display_nickname:a("#nickname").val()||"",display_username:a("#user_login").val()||"",display_firstname:a("#first_name").val()||"",display_lastname:a("#last_name").val()||""};if(d.display_firstname&&d.display_lastname){d.display_firstlast=d.display_firstname+" "+d.display_lastname;d.display_lastfirst=d.display_lastname+" "+d.display_firstname}a.each(a("option",c),function(f,g){e.push(g.value)});a.each(d,function(h,f){if(!f){return}var g=f.replace(/<\/?[a-z][^>]*>/gi,"");if(d[h].length&&a.inArray(g,e)==-1){e.push(g);a("<option />",{text:g}).appendTo(c)}})})}})})(jQuery);
\ No newline at end of file
+(function($){
+
+	function check_pass_strength() {
+		var pass1 = $('#pass1').val(), user = $('#user_login').val(), pass2 = $('#pass2').val(), strength;
+
+		$('#pass-strength-result').removeClass('short bad good strong');
+		if ( ! pass1 ) {
+			$('#pass-strength-result').html( pwsL10n.empty );
+			return;
+		}
+
+		strength = passwordStrength(pass1, user, pass2);
+
+		switch ( strength ) {
+			case 2:
+				$('#pass-strength-result').addClass('bad').html( pwsL10n['bad'] );
+				break;
+			case 3:
+				$('#pass-strength-result').addClass('good').html( pwsL10n['good'] );
+				break;
+			case 4:
+				$('#pass-strength-result').addClass('strong').html( pwsL10n['strong'] );
+				break;
+			case 5:
+				$('#pass-strength-result').addClass('short').html( pwsL10n['mismatch'] );
+				break;
+			default:
+				$('#pass-strength-result').addClass('short').html( pwsL10n['short'] );
+		}
+	}
+
+	$(document).ready( function() {
+		var select = $('#display_name');
+
+		$('#pass1').val('').keyup( check_pass_strength );
+		$('#pass2').val('').keyup( check_pass_strength );
+		$('#pass-strength-result').show();
+		$('.color-palette').click( function() {
+			$(this).siblings('input[name="admin_color"]').prop('checked', true);
+		});
+
+		if ( select.length ) {
+			$('#first_name, #last_name, #nickname').bind( 'blur.user_profile', function() {
+				var dub = [],
+					inputs = {
+						display_nickname  : $('#nickname').val() || '',
+						display_username  : $('#user_login').val() || '',
+						display_firstname : $('#first_name').val() || '',
+						display_lastname  : $('#last_name').val() || ''
+					};
+
+				if ( inputs.display_firstname && inputs.display_lastname ) {
+					inputs['display_firstlast'] = inputs.display_firstname + ' ' + inputs.display_lastname;
+					inputs['display_lastfirst'] = inputs.display_lastname + ' ' + inputs.display_firstname;
+				}
+
+				$.each( $('option', select), function( i, el ){
+					dub.push( el.value );
+				});
+
+				$.each(inputs, function( id, value ) {
+					if ( ! value )
+						return;
+
+					var val = value.replace(/<\/?[a-z][^>]*>/gi, '');
+
+					if ( inputs[id].length && $.inArray( val, dub ) == -1 ) {
+						dub.push(val);
+						$('<option />', {
+							'text': val
+						}).appendTo( select );
+					}
+				});
+			});
+		}
+	});
+
+})(jQuery);
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-admin/js/user-profile.min.js	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,1 @@
+(function(a){function b(){var e=a("#pass1").val(),d=a("#user_login").val(),c=a("#pass2").val(),f;a("#pass-strength-result").removeClass("short bad good strong");if(!e){a("#pass-strength-result").html(pwsL10n.empty);return}f=passwordStrength(e,d,c);switch(f){case 2:a("#pass-strength-result").addClass("bad").html(pwsL10n.bad);break;case 3:a("#pass-strength-result").addClass("good").html(pwsL10n.good);break;case 4:a("#pass-strength-result").addClass("strong").html(pwsL10n.strong);break;case 5:a("#pass-strength-result").addClass("short").html(pwsL10n.mismatch);break;default:a("#pass-strength-result").addClass("short").html(pwsL10n["short"])}}a(document).ready(function(){var c=a("#display_name");a("#pass1").val("").keyup(b);a("#pass2").val("").keyup(b);a("#pass-strength-result").show();a(".color-palette").click(function(){a(this).siblings('input[name="admin_color"]').prop("checked",true)});if(c.length){a("#first_name, #last_name, #nickname").bind("blur.user_profile",function(){var e=[],d={display_nickname:a("#nickname").val()||"",display_username:a("#user_login").val()||"",display_firstname:a("#first_name").val()||"",display_lastname:a("#last_name").val()||""};if(d.display_firstname&&d.display_lastname){d.display_firstlast=d.display_firstname+" "+d.display_lastname;d.display_lastfirst=d.display_lastname+" "+d.display_firstname}a.each(a("option",c),function(f,g){e.push(g.value)});a.each(d,function(h,f){if(!f){return}var g=f.replace(/<\/?[a-z][^>]*>/gi,"");if(d[h].length&&a.inArray(g,e)==-1){e.push(g);a("<option />",{text:g}).appendTo(c)}})})}})})(jQuery);
\ No newline at end of file
--- a/web/wp-admin/js/user-suggest.dev.js	Wed Dec 19 12:35:13 2012 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,13 +0,0 @@
-(function($) {
-	var id = 'undefined' !== typeof current_site_id ? '&site_id=' + current_site_id : '';
-	$(document).ready( function() {
-		$( '.wp-suggest-user' ).autocomplete({
-			source:    ajaxurl + '?action=autocomplete-user&autocomplete_type=add' + id,
-			delay:     500,
-			minLength: 2,
-			position:  ( 'undefined' !== typeof isRtl && isRtl ) ? { my: 'right top', at: 'right bottom', offset: '0, -1' } : { offset: '0, -1' },
-			open:      function() { $(this).addClass('open'); },
-			close:     function() { $(this).removeClass('open'); }
-		});
-	});
-})(jQuery);
\ No newline at end of file
--- a/web/wp-admin/js/user-suggest.js	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-admin/js/user-suggest.js	Wed Dec 19 17:46:52 2012 -0800
@@ -1,1 +1,13 @@
-(function(a){var b="undefined"!==typeof current_site_id?"&site_id="+current_site_id:"";a(document).ready(function(){a(".wp-suggest-user").autocomplete({source:ajaxurl+"?action=autocomplete-user&autocomplete_type=add"+b,delay:500,minLength:2,position:("undefined"!==typeof isRtl&&isRtl)?{my:"right top",at:"right bottom",offset:"0, -1"}:{offset:"0, -1"},open:function(){a(this).addClass("open")},close:function(){a(this).removeClass("open")}})})})(jQuery);
\ No newline at end of file
+(function($) {
+	var id = 'undefined' !== typeof current_site_id ? '&site_id=' + current_site_id : '';
+	$(document).ready( function() {
+		$( '.wp-suggest-user' ).autocomplete({
+			source:    ajaxurl + '?action=autocomplete-user&autocomplete_type=add' + id,
+			delay:     500,
+			minLength: 2,
+			position:  ( 'undefined' !== typeof isRtl && isRtl ) ? { my: 'right top', at: 'right bottom', offset: '0, -1' } : { offset: '0, -1' },
+			open:      function() { $(this).addClass('open'); },
+			close:     function() { $(this).removeClass('open'); }
+		});
+	});
+})(jQuery);
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-admin/js/user-suggest.min.js	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,1 @@
+(function(a){var b="undefined"!==typeof current_site_id?"&site_id="+current_site_id:"";a(document).ready(function(){a(".wp-suggest-user").autocomplete({source:ajaxurl+"?action=autocomplete-user&autocomplete_type=add"+b,delay:500,minLength:2,position:("undefined"!==typeof isRtl&&isRtl)?{my:"right top",at:"right bottom",offset:"0, -1"}:{offset:"0, -1"},open:function(){a(this).addClass("open")},close:function(){a(this).removeClass("open")}})})})(jQuery);
\ No newline at end of file
--- a/web/wp-admin/js/utils.dev.js	Wed Dec 19 12:35:13 2012 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,171 +0,0 @@
-// utility functions
-
-var wpCookies = {
-// The following functions are from Cookie.js class in TinyMCE, Moxiecode, used under LGPL.
-
-	each : function(obj, cb, scope) {
-		var n, l;
-
-		if ( !obj )
-			return 0;
-
-		scope = scope || obj;
-
-		if ( typeof(obj.length) != 'undefined' ) {
-			for ( n = 0, l = obj.length; n < l; n++ ) {
-				if ( cb.call(scope, obj[n], n, obj) === false )
-					return 0;
-			}
-		} else {
-			for ( n in obj ) {
-				if ( obj.hasOwnProperty(n) ) {
-					if ( cb.call(scope, obj[n], n, obj) === false ) {
-						return 0;
-					}
-				}
-			}
-		}
-		return 1;
-	},
-
-	/**
-	 * Get a multi-values cookie.
-	 * Returns a JS object with the name: 'value' pairs.
-	 */
-	getHash : function(name) {
-		var all = this.get(name), ret;
-
-		if ( all ) {
-			this.each( all.split('&'), function(pair) {
-				pair = pair.split('=');
-				ret = ret || {};
-				ret[pair[0]] = pair[1];
-			});
-		}
-		return ret;
-	},
-
-	/**
-	 * Set a multi-values cookie.
-	 *
-	 * 'values_obj' is the JS object that is stored. It is encoded as URI in wpCookies.set().
-	 */
-	setHash : function(name, values_obj, expires, path, domain, secure) {
-		var str = '';
-
-		this.each(values_obj, function(val, key) {
-			str += (!str ? '' : '&') + key + '=' + val;
-		});
-
-		this.set(name, str, expires, path, domain, secure);
-	},
-
-	/**
-	 * Get a cookie.
-	 */
-	get : function(name) {
-		var cookie = document.cookie, e, p = name + "=", b;
-
-		if ( !cookie )
-			return;
-
-		b = cookie.indexOf("; " + p);
-
-		if ( b == -1 ) {
-			b = cookie.indexOf(p);
-
-			if ( b != 0 )
-				return null;
-
-		} else {
-			b += 2;
-		}
-
-		e = cookie.indexOf(";", b);
-
-		if ( e == -1 )
-			e = cookie.length;
-
-		return decodeURIComponent( cookie.substring(b + p.length, e) );
-	},
-
-	/**
-	 * Set a cookie.
-	 *
-	 * The 'expires' arg can be either a JS Date() object set to the expiration date (back-compat)
-	 * or the number of seconds until expiration
-	 */
-	set : function(name, value, expires, path, domain, secure) {
-		var d = new Date();
-
-		if ( typeof(expires) == 'object' && expires.toGMTString ) {
-			expires = expires.toGMTString();
-		} else if ( parseInt(expires, 10) ) {
-			d.setTime( d.getTime() + ( parseInt(expires, 10) * 1000 ) ); // time must be in miliseconds
-			expires = d.toGMTString();
-		} else {
-			expires = '';
-		}
-
-		document.cookie = name + "=" + encodeURIComponent(value) +
-			((expires) ? "; expires=" + expires : "") +
-			((path) ? "; path=" + path : "") +
-			((domain) ? "; domain=" + domain : "") +
-			((secure) ? "; secure" : "");
-	},
-
-	/**
-	 * Remove a cookie.
-	 *
-	 * This is done by setting it to an empty value and setting the expiration time in the past.
-	 */
-	remove : function(name, path) {
-		this.set(name, '', -1000, path);
-	}
-};
-
-// Returns the value as string. Second arg or empty string is returned when value is not set.
-function getUserSetting( name, def ) {
-	var obj = getAllUserSettings();
-
-	if ( obj.hasOwnProperty(name) )
-		return obj[name];
-
-	if ( typeof def != 'undefined' )
-		return def;
-
-	return '';
-}
-
-// Both name and value must be only ASCII letters, numbers or underscore
-// and the shorter, the better (cookies can store maximum 4KB). Not suitable to store text.
-function setUserSetting( name, value, _del ) {
-	if ( 'object' !== typeof userSettings )
-		return false;
-
-	var cookie = 'wp-settings-' + userSettings.uid, all = wpCookies.getHash(cookie) || {}, path = userSettings.url,
-	n = name.toString().replace(/[^A-Za-z0-9_]/, ''), v = value.toString().replace(/[^A-Za-z0-9_]/, '');
-
-	if ( _del ) {
-		delete all[n];
-	} else {
-		all[n] = v;
-	}
-
-	wpCookies.setHash(cookie, all, 31536000, path);
-	wpCookies.set('wp-settings-time-'+userSettings.uid, userSettings.time, 31536000, path);
-
-	return name;
-}
-
-function deleteUserSetting( name ) {
-	return setUserSetting( name, '', 1 );
-}
-
-// Returns all settings as js object.
-function getAllUserSettings() {
-	if ( 'object' !== typeof userSettings )
-		return {};
-
-	return wpCookies.getHash('wp-settings-' + userSettings.uid) || {};
-}
--- a/web/wp-admin/js/utils.js	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-admin/js/utils.js	Wed Dec 19 17:46:52 2012 -0800
@@ -1,1 +1,1 @@
-var wpCookies={each:function(d,a,c){var e,b;if(!d){return 0}c=c||d;if(typeof(d.length)!="undefined"){for(e=0,b=d.length;e<b;e++){if(a.call(c,d[e],e,d)===false){return 0}}}else{for(e in d){if(d.hasOwnProperty(e)){if(a.call(c,d[e],e,d)===false){return 0}}}}return 1},getHash:function(b){var c=this.get(b),a;if(c){this.each(c.split("&"),function(d){d=d.split("=");a=a||{};a[d[0]]=d[1]})}return a},setHash:function(b,c,a,f,d,e){var g="";this.each(c,function(i,h){g+=(!g?"":"&")+h+"="+i});this.set(b,g,a,f,d,e)},get:function(c){var d=document.cookie,g,f=c+"=",a;if(!d){return}a=d.indexOf("; "+f);if(a==-1){a=d.indexOf(f);if(a!=0){return null}}else{a+=2}g=d.indexOf(";",a);if(g==-1){g=d.length}return decodeURIComponent(d.substring(a+f.length,g))},set:function(b,e,a,g,c,f){var h=new Date();if(typeof(a)=="object"&&a.toGMTString){a=a.toGMTString()}else{if(parseInt(a,10)){h.setTime(h.getTime()+(parseInt(a,10)*1000));a=h.toGMTString()}else{a=""}}document.cookie=b+"="+encodeURIComponent(e)+((a)?"; expires="+a:"")+((g)?"; path="+g:"")+((c)?"; domain="+c:"")+((f)?"; secure":"")},remove:function(a,b){this.set(a,"",-1000,b)}};function getUserSetting(a,b){var c=getAllUserSettings();if(c.hasOwnProperty(a)){return c[a]}if(typeof b!="undefined"){return b}return""}function setUserSetting(c,f,b){if("object"!==typeof userSettings){return false}var d="wp-settings-"+userSettings.uid,e=wpCookies.getHash(d)||{},g=userSettings.url,h=c.toString().replace(/[^A-Za-z0-9_]/,""),a=f.toString().replace(/[^A-Za-z0-9_]/,"");if(b){delete e[h]}else{e[h]=a}wpCookies.setHash(d,e,31536000,g);wpCookies.set("wp-settings-time-"+userSettings.uid,userSettings.time,31536000,g);return c}function deleteUserSetting(a){return setUserSetting(a,"",1)}function getAllUserSettings(){if("object"!==typeof userSettings){return{}}return wpCookies.getHash("wp-settings-"+userSettings.uid)||{}};
\ No newline at end of file
+function convertEntities(b){var d,a;d=function(c){if(/&[^;]+;/.test(c)){var f=document.createElement("div");f.innerHTML=c;return !f.firstChild?c:f.firstChild.nodeValue}return c};if(typeof b==="string"){return d(b)}else{if(typeof b==="object"){for(a in b){if(typeof b[a]==="string"){b[a]=d(b[a])}}}}return b}var wpCookies={each:function(d,a,c){var e,b;if(!d){return 0}c=c||d;if(typeof(d.length)!="undefined"){for(e=0,b=d.length;e<b;e++){if(a.call(c,d[e],e,d)===false){return 0}}}else{for(e in d){if(d.hasOwnProperty(e)){if(a.call(c,d[e],e,d)===false){return 0}}}}return 1},getHash:function(c){var a=this.get(c),b;if(a){this.each(a.split("&"),function(d){d=d.split("=");b=b||{};b[d[0]]=d[1]})}return b},setHash:function(i,a,f,c,h,b){var g="";this.each(a,function(e,d){g+=(!g?"":"&")+d+"="+e});this.set(i,g,f,c,h,b)},get:function(h){var g=document.cookie,f,d=h+"=",a;if(!g){return}a=g.indexOf("; "+d);if(a==-1){a=g.indexOf(d);if(a!=0){return null}}else{a+=2}f=g.indexOf(";",a);if(f==-1){f=g.length}return decodeURIComponent(g.substring(a+d.length,f))},set:function(h,a,f,c,g,b){document.cookie=h+"="+encodeURIComponent(a)+((f)?"; expires="+f.toGMTString():"")+((c)?"; path="+c:"")+((g)?"; domain="+g:"")+((b)?"; secure":"")},remove:function(c,a){var b=new Date();b.setTime(b.getTime()-1000);this.set(c,"",b,a,b)}};function getUserSetting(a,b){var c=getAllUserSettings();if(c.hasOwnProperty(a)){return c[a]}if(typeof b!="undefined"){return b}return""}function setUserSetting(a,i,k){if("object"!==typeof userSettings){return false}var h="wp-settings-"+userSettings.uid,e=wpCookies.getHash(h)||{},g=new Date(),b,f=a.toString().replace(/[^A-Za-z0-9_]/,""),j=i.toString().replace(/[^A-Za-z0-9_]/,"");if(k){delete e[f]}else{e[f]=j}g.setTime(g.getTime()+31536000000);b=userSettings.url;wpCookies.setHash(h,e,g,b);wpCookies.set("wp-settings-time-"+userSettings.uid,userSettings.time,g,b);return a}function deleteUserSetting(a){return setUserSetting(a,"",1)}function getAllUserSettings(){if("object"!==typeof userSettings){return{}}return wpCookies.getHash("wp-settings-"+userSettings.uid)||{}};
\ No newline at end of file
--- a/web/wp-admin/js/widgets.dev.js	Wed Dec 19 12:35:13 2012 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,289 +0,0 @@
-var wpWidgets;
-(function($) {
-
-wpWidgets = {
-
-	init : function() {
-		var rem, sidebars = $('div.widgets-sortables'), isRTL = !! ( 'undefined' != typeof isRtl && isRtl ),
-			margin = ( isRtl ? 'marginRight' : 'marginLeft' ), the_id;
-
-		$('#widgets-right').children('.widgets-holder-wrap').children('.sidebar-name').click(function(){
-			var c = $(this).siblings('.widgets-sortables'), p = $(this).parent();
-			if ( !p.hasClass('closed') ) {
-				c.sortable('disable');
-				p.addClass('closed');
-			} else {
-				p.removeClass('closed');
-				c.sortable('enable').sortable('refresh');
-			}
-		});
-
-		$('#widgets-left').children('.widgets-holder-wrap').children('.sidebar-name').click(function() {
-			$(this).parent().toggleClass('closed');
-		});
-
-		sidebars.each(function(){
-			if ( $(this).parent().hasClass('inactive') )
-				return true;
-
-			var h = 50, H = $(this).children('.widget').length;
-			h = h + parseInt(H * 48, 10);
-			$(this).css( 'minHeight', h + 'px' );
-		});
-
-		$('a.widget-action').live('click', function(){
-			var css = {}, widget = $(this).closest('div.widget'), inside = widget.children('.widget-inside'), w = parseInt( widget.find('input.widget-width').val(), 10 );
-
-			if ( inside.is(':hidden') ) {
-				if ( w > 250 && inside.closest('div.widgets-sortables').length ) {
-					css['width'] = w + 30 + 'px';
-					if ( inside.closest('div.widget-liquid-right').length )
-						css[margin] = 235 - w + 'px';
-					widget.css(css);
-				}
-				wpWidgets.fixLabels(widget);
-				inside.slideDown('fast');
-			} else {
-				inside.slideUp('fast', function() {
-					widget.css({'width':'', margin:''});
-				});
-			}
-			return false;
-		});
-
-		$('input.widget-control-save').live('click', function(){
-			wpWidgets.save( $(this).closest('div.widget'), 0, 1, 0 );
-			return false;
-		});
-
-		$('a.widget-control-remove').live('click', function(){
-			wpWidgets.save( $(this).closest('div.widget'), 1, 1, 0 );
-			return false;
-		});
-
-		$('a.widget-control-close').live('click', function(){
-			wpWidgets.close( $(this).closest('div.widget') );
-			return false;
-		});
-
-		sidebars.children('.widget').each(function() {
-			wpWidgets.appendTitle(this);
-			if ( $('p.widget-error', this).length )
-				$('a.widget-action', this).click();
-		});
-
-		$('#widget-list').children('.widget').draggable({
-			connectToSortable: 'div.widgets-sortables',
-			handle: '> .widget-top > .widget-title',
-			distance: 2,
-			helper: 'clone',
-			zIndex: 5,
-			containment: 'document',
-			start: function(e,ui) {
-				ui.helper.find('div.widget-description').hide();
-				the_id = this.id;
-			},
-			stop: function(e,ui) {
-				if ( rem )
-					$(rem).hide();
-
-				rem = '';
-			}
-		});
-
-		sidebars.sortable({
-			placeholder: 'widget-placeholder',
-			items: '> .widget',
-			handle: '> .widget-top > .widget-title',
-			cursor: 'move',
-			distance: 2,
-			containment: 'document',
-			start: function(e,ui) {
-				ui.item.children('.widget-inside').hide();
-				ui.item.css({margin:'', 'width':''});
-			},
-			stop: function(e,ui) {
-				if ( ui.item.hasClass('ui-draggable') && ui.item.data('draggable') )
-					ui.item.draggable('destroy');
-
-				if ( ui.item.hasClass('deleting') ) {
-					wpWidgets.save( ui.item, 1, 0, 1 ); // delete widget
-					ui.item.remove();
-					return;
-				}
-
-				var add = ui.item.find('input.add_new').val(),
-					n = ui.item.find('input.multi_number').val(),
-					id = the_id,
-					sb = $(this).attr('id');
-
-				ui.item.css({margin:'', 'width':''});
-				the_id = '';
-
-				if ( add ) {
-					if ( 'multi' == add ) {
-						ui.item.html( ui.item.html().replace(/<[^<>]+>/g, function(m){ return m.replace(/__i__|%i%/g, n); }) );
-						ui.item.attr( 'id', id.replace('__i__', n) );
-						n++;
-						$('div#' + id).find('input.multi_number').val(n);
-					} else if ( 'single' == add ) {
-						ui.item.attr( 'id', 'new-' + id );
-						rem = 'div#' + id;
-					}
-					wpWidgets.save( ui.item, 0, 0, 1 );
-					ui.item.find('input.add_new').val('');
-					ui.item.find('a.widget-action').click();
-					return;
-				}
-				wpWidgets.saveOrder(sb);
-			},
-			receive: function(e, ui) {
-				var sender = $(ui.sender);
-
-				if ( !$(this).is(':visible') || this.id.indexOf('orphaned_widgets') != -1 )
-					sender.sortable('cancel');
-
-				if ( sender.attr('id').indexOf('orphaned_widgets') != -1 && !sender.children('.widget').length ) {
-					sender.parents('.orphan-sidebar').slideUp(400, function(){ $(this).remove(); });
-				}
-			}
-		}).sortable('option', 'connectWith', 'div.widgets-sortables').parent().filter('.closed').children('.widgets-sortables').sortable('disable');
-
-		$('#available-widgets').droppable({
-			tolerance: 'pointer',
-			accept: function(o){
-				return $(o).parent().attr('id') != 'widget-list';
-			},
-			drop: function(e,ui) {
-				ui.draggable.addClass('deleting');
-				$('#removing-widget').hide().children('span').html('');
-			},
-			over: function(e,ui) {
-				ui.draggable.addClass('deleting');
-				$('div.widget-placeholder').hide();
-
-				if ( ui.draggable.hasClass('ui-sortable-helper') )
-					$('#removing-widget').show().children('span')
-					.html( ui.draggable.find('div.widget-title').children('h4').html() );
-			},
-			out: function(e,ui) {
-				ui.draggable.removeClass('deleting');
-				$('div.widget-placeholder').show();
-				$('#removing-widget').hide().children('span').html('');
-			}
-		});
-	},
-
-	saveOrder : function(sb) {
-		if ( sb )
-			$('#' + sb).closest('div.widgets-holder-wrap').find('img.ajax-feedback').css('visibility', 'visible');
-
-		var a = {
-			action: 'widgets-order',
-			savewidgets: $('#_wpnonce_widgets').val(),
-			sidebars: []
-		};
-
-		$('div.widgets-sortables').each( function() {
-			if ( $(this).sortable )
-				a['sidebars[' + $(this).attr('id') + ']'] = $(this).sortable('toArray').join(',');
-		});
-
-		$.post( ajaxurl, a, function() {
-			$('img.ajax-feedback').css('visibility', 'hidden');
-		});
-
-		this.resize();
-	},
-
-	save : function(widget, del, animate, order) {
-		var sb = widget.closest('div.widgets-sortables').attr('id'), data = widget.find('form').serialize(), a;
-		widget = $(widget);
-		$('.ajax-feedback', widget).css('visibility', 'visible');
-
-		a = {
-			action: 'save-widget',
-			savewidgets: $('#_wpnonce_widgets').val(),
-			sidebar: sb
-		};
-
-		if ( del )
-			a['delete_widget'] = 1;
-
-		data += '&' + $.param(a);
-
-		$.post( ajaxurl, data, function(r){
-			var id;
-
-			if ( del ) {
-				if ( !$('input.widget_number', widget).val() ) {
-					id = $('input.widget-id', widget).val();
-					$('#available-widgets').find('input.widget-id').each(function(){
-						if ( $(this).val() == id )
-							$(this).closest('div.widget').show();
-					});
-				}
-
-				if ( animate ) {
-					order = 0;
-					widget.slideUp('fast', function(){
-						$(this).remove();
-						wpWidgets.saveOrder();
-					});
-				} else {
-					widget.remove();
-					wpWidgets.resize();
-				}
-			} else {
-				$('.ajax-feedback').css('visibility', 'hidden');
-				if ( r && r.length > 2 ) {
-					$('div.widget-content', widget).html(r);
-					wpWidgets.appendTitle(widget);
-					wpWidgets.fixLabels(widget);
-				}
-			}
-			if ( order )
-				wpWidgets.saveOrder();
-		});
-	},
-
-	appendTitle : function(widget) {
-		var title = $('input[id*="-title"]', widget).val() || '';
-
-		if ( title )
-			title = ': ' + title.replace(/<[^<>]+>/g, '').replace(/</g, '&lt;').replace(/>/g, '&gt;');
-
-		$(widget).children('.widget-top').children('.widget-title').children()
-				.children('.in-widget-title').html(title);
-
-	},
-
-	resize : function() {
-		$('div.widgets-sortables').each(function(){
-			if ( $(this).parent().hasClass('inactive') )
-				return true;
-
-			var h = 50, H = $(this).children('.widget').length;
-			h = h + parseInt(H * 48, 10);
-			$(this).css( 'minHeight', h + 'px' );
-		});
-	},
-
-	fixLabels : function(widget) {
-		widget.children('.widget-inside').find('label').each(function(){
-			var f = $(this).attr('for');
-			if ( f && f == $('input', this).attr('id') )
-				$(this).removeAttr('for');
-		});
-	},
-
-	close : function(widget) {
-		widget.children('.widget-inside').slideUp('fast', function(){
-			widget.css({'width':'', margin:''});
-		});
-	}
-};
-
-$(document).ready(function($){ wpWidgets.init(); });
-
-})(jQuery);
--- a/web/wp-admin/js/widgets.js	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-admin/js/widgets.js	Wed Dec 19 17:46:52 2012 -0800
@@ -1,1 +1,289 @@
-var wpWidgets;(function(a){wpWidgets={init:function(){var f,d=a("div.widgets-sortables"),c=!!("undefined"!=typeof isRtl&&isRtl),e=(isRtl?"marginRight":"marginLeft"),b;a("#widgets-right").children(".widgets-holder-wrap").children(".sidebar-name").click(function(){var h=a(this).siblings(".widgets-sortables"),g=a(this).parent();if(!g.hasClass("closed")){h.sortable("disable");g.addClass("closed")}else{g.removeClass("closed");h.sortable("enable").sortable("refresh")}});a("#widgets-left").children(".widgets-holder-wrap").children(".sidebar-name").click(function(){a(this).parent().toggleClass("closed")});d.each(function(){if(a(this).parent().hasClass("inactive")){return true}var i=50,g=a(this).children(".widget").length;i=i+parseInt(g*48,10);a(this).css("minHeight",i+"px")});a("a.widget-action").live("click",function(){var i={},j=a(this).closest("div.widget"),g=j.children(".widget-inside"),h=parseInt(j.find("input.widget-width").val(),10);if(g.is(":hidden")){if(h>250&&g.closest("div.widgets-sortables").length){i.width=h+30+"px";if(g.closest("div.widget-liquid-right").length){i[e]=235-h+"px"}j.css(i)}wpWidgets.fixLabels(j);g.slideDown("fast")}else{g.slideUp("fast",function(){j.css({width:"",margin:""})})}return false});a("input.widget-control-save").live("click",function(){wpWidgets.save(a(this).closest("div.widget"),0,1,0);return false});a("a.widget-control-remove").live("click",function(){wpWidgets.save(a(this).closest("div.widget"),1,1,0);return false});a("a.widget-control-close").live("click",function(){wpWidgets.close(a(this).closest("div.widget"));return false});d.children(".widget").each(function(){wpWidgets.appendTitle(this);if(a("p.widget-error",this).length){a("a.widget-action",this).click()}});a("#widget-list").children(".widget").draggable({connectToSortable:"div.widgets-sortables",handle:"> .widget-top > .widget-title",distance:2,helper:"clone",zIndex:5,containment:"document",start:function(h,g){g.helper.find("div.widget-description").hide();b=this.id},stop:function(h,g){if(f){a(f).hide()}f=""}});d.sortable({placeholder:"widget-placeholder",items:"> .widget",handle:"> .widget-top > .widget-title",cursor:"move",distance:2,containment:"document",start:function(h,g){g.item.children(".widget-inside").hide();g.item.css({margin:"",width:""})},stop:function(i,g){if(g.item.hasClass("ui-draggable")&&g.item.data("draggable")){g.item.draggable("destroy")}if(g.item.hasClass("deleting")){wpWidgets.save(g.item,1,0,1);g.item.remove();return}var h=g.item.find("input.add_new").val(),l=g.item.find("input.multi_number").val(),k=b,j=a(this).attr("id");g.item.css({margin:"",width:""});b="";if(h){if("multi"==h){g.item.html(g.item.html().replace(/<[^<>]+>/g,function(n){return n.replace(/__i__|%i%/g,l)}));g.item.attr("id",k.replace("__i__",l));l++;a("div#"+k).find("input.multi_number").val(l)}else{if("single"==h){g.item.attr("id","new-"+k);f="div#"+k}}wpWidgets.save(g.item,0,0,1);g.item.find("input.add_new").val("");g.item.find("a.widget-action").click();return}wpWidgets.saveOrder(j)},receive:function(i,h){var g=a(h.sender);if(!a(this).is(":visible")||this.id.indexOf("orphaned_widgets")!=-1){g.sortable("cancel")}if(g.attr("id").indexOf("orphaned_widgets")!=-1&&!g.children(".widget").length){g.parents(".orphan-sidebar").slideUp(400,function(){a(this).remove()})}}}).sortable("option","connectWith","div.widgets-sortables").parent().filter(".closed").children(".widgets-sortables").sortable("disable");a("#available-widgets").droppable({tolerance:"pointer",accept:function(g){return a(g).parent().attr("id")!="widget-list"},drop:function(h,g){g.draggable.addClass("deleting");a("#removing-widget").hide().children("span").html("")},over:function(h,g){g.draggable.addClass("deleting");a("div.widget-placeholder").hide();if(g.draggable.hasClass("ui-sortable-helper")){a("#removing-widget").show().children("span").html(g.draggable.find("div.widget-title").children("h4").html())}},out:function(h,g){g.draggable.removeClass("deleting");a("div.widget-placeholder").show();a("#removing-widget").hide().children("span").html("")}})},saveOrder:function(c){if(c){a("#"+c).closest("div.widgets-holder-wrap").find("img.ajax-feedback").css("visibility","visible")}var b={action:"widgets-order",savewidgets:a("#_wpnonce_widgets").val(),sidebars:[]};a("div.widgets-sortables").each(function(){if(a(this).sortable){b["sidebars["+a(this).attr("id")+"]"]=a(this).sortable("toArray").join(",")}});a.post(ajaxurl,b,function(){a("img.ajax-feedback").css("visibility","hidden")});this.resize()},save:function(g,d,e,b){var h=g.closest("div.widgets-sortables").attr("id"),f=g.find("form").serialize(),c;g=a(g);a(".ajax-feedback",g).css("visibility","visible");c={action:"save-widget",savewidgets:a("#_wpnonce_widgets").val(),sidebar:h};if(d){c.delete_widget=1}f+="&"+a.param(c);a.post(ajaxurl,f,function(i){var j;if(d){if(!a("input.widget_number",g).val()){j=a("input.widget-id",g).val();a("#available-widgets").find("input.widget-id").each(function(){if(a(this).val()==j){a(this).closest("div.widget").show()}})}if(e){b=0;g.slideUp("fast",function(){a(this).remove();wpWidgets.saveOrder()})}else{g.remove();wpWidgets.resize()}}else{a(".ajax-feedback").css("visibility","hidden");if(i&&i.length>2){a("div.widget-content",g).html(i);wpWidgets.appendTitle(g);wpWidgets.fixLabels(g)}}if(b){wpWidgets.saveOrder()}})},appendTitle:function(b){var c=a('input[id*="-title"]',b).val()||"";if(c){c=": "+c.replace(/<[^<>]+>/g,"").replace(/</g,"&lt;").replace(/>/g,"&gt;")}a(b).children(".widget-top").children(".widget-title").children().children(".in-widget-title").html(c)},resize:function(){a("div.widgets-sortables").each(function(){if(a(this).parent().hasClass("inactive")){return true}var c=50,b=a(this).children(".widget").length;c=c+parseInt(b*48,10);a(this).css("minHeight",c+"px")})},fixLabels:function(b){b.children(".widget-inside").find("label").each(function(){var c=a(this).attr("for");if(c&&c==a("input",this).attr("id")){a(this).removeAttr("for")}})},close:function(b){b.children(".widget-inside").slideUp("fast",function(){b.css({width:"",margin:""})})}};a(document).ready(function(b){wpWidgets.init()})})(jQuery);
\ No newline at end of file
+var wpWidgets;
+(function($) {
+
+wpWidgets = {
+
+	init : function() {
+		var rem, sidebars = $('div.widgets-sortables'), isRTL = !! ( 'undefined' != typeof isRtl && isRtl ),
+			margin = ( isRtl ? 'marginRight' : 'marginLeft' ), the_id;
+
+		$('#widgets-right').children('.widgets-holder-wrap').children('.sidebar-name').click(function(){
+			var c = $(this).siblings('.widgets-sortables'), p = $(this).parent();
+			if ( !p.hasClass('closed') ) {
+				c.sortable('disable');
+				p.addClass('closed');
+			} else {
+				p.removeClass('closed');
+				c.sortable('enable').sortable('refresh');
+			}
+		});
+
+		$('#widgets-left').children('.widgets-holder-wrap').children('.sidebar-name').click(function() {
+			$(this).parent().toggleClass('closed');
+		});
+
+		sidebars.each(function(){
+			if ( $(this).parent().hasClass('inactive') )
+				return true;
+
+			var h = 50, H = $(this).children('.widget').length;
+			h = h + parseInt(H * 48, 10);
+			$(this).css( 'minHeight', h + 'px' );
+		});
+
+		$(document.body).bind('click.widgets-toggle', function(e){
+			var target = $(e.target), css = {}, widget, inside, w;
+
+			if ( target.parents('.widget-top').length && ! target.parents('#available-widgets').length ) {
+				widget = target.closest('div.widget');
+				inside = widget.children('.widget-inside');
+				w = parseInt( widget.find('input.widget-width').val(), 10 );
+
+				if ( inside.is(':hidden') ) {
+					if ( w > 250 && inside.closest('div.widgets-sortables').length ) {
+						css['width'] = w + 30 + 'px';
+						if ( inside.closest('div.widget-liquid-right').length )
+							css[margin] = 235 - w + 'px';
+						widget.css(css);
+					}
+					wpWidgets.fixLabels(widget);
+					inside.slideDown('fast');
+				} else {
+					inside.slideUp('fast', function() {
+						widget.css({'width':'', margin:''});
+					});
+				}
+				e.preventDefault();
+			} else if ( target.hasClass('widget-control-save') ) {
+				wpWidgets.save( target.closest('div.widget'), 0, 1, 0 );
+				e.preventDefault();
+			} else if ( target.hasClass('widget-control-remove') ) {
+				wpWidgets.save( target.closest('div.widget'), 1, 1, 0 );
+				e.preventDefault();
+			} else if ( target.hasClass('widget-control-close') ) {
+				wpWidgets.close( target.closest('div.widget') );
+				e.preventDefault();
+			}
+		});
+
+		sidebars.children('.widget').each(function() {
+			wpWidgets.appendTitle(this);
+			if ( $('p.widget-error', this).length )
+				$('a.widget-action', this).click();
+		});
+
+		$('#widget-list').children('.widget').draggable({
+			connectToSortable: 'div.widgets-sortables',
+			handle: '> .widget-top > .widget-title',
+			distance: 2,
+			helper: 'clone',
+			zIndex: 100,
+			containment: 'document',
+			start: function(e,ui) {
+				ui.helper.find('div.widget-description').hide();
+				the_id = this.id;
+			},
+			stop: function(e,ui) {
+				if ( rem )
+					$(rem).hide();
+
+				rem = '';
+			}
+		});
+
+		sidebars.sortable({
+			placeholder: 'widget-placeholder',
+			items: '> .widget',
+			handle: '> .widget-top > .widget-title',
+			cursor: 'move',
+			distance: 2,
+			containment: 'document',
+			start: function(e,ui) {
+				ui.item.children('.widget-inside').hide();
+				ui.item.css({margin:'', 'width':''});
+			},
+			stop: function(e,ui) {
+				if ( ui.item.hasClass('ui-draggable') && ui.item.data('draggable') )
+					ui.item.draggable('destroy');
+
+				if ( ui.item.hasClass('deleting') ) {
+					wpWidgets.save( ui.item, 1, 0, 1 ); // delete widget
+					ui.item.remove();
+					return;
+				}
+
+				var add = ui.item.find('input.add_new').val(),
+					n = ui.item.find('input.multi_number').val(),
+					id = the_id,
+					sb = $(this).attr('id');
+
+				ui.item.css({margin:'', 'width':''});
+				the_id = '';
+
+				if ( add ) {
+					if ( 'multi' == add ) {
+						ui.item.html( ui.item.html().replace(/<[^<>]+>/g, function(m){ return m.replace(/__i__|%i%/g, n); }) );
+						ui.item.attr( 'id', id.replace('__i__', n) );
+						n++;
+						$('div#' + id).find('input.multi_number').val(n);
+					} else if ( 'single' == add ) {
+						ui.item.attr( 'id', 'new-' + id );
+						rem = 'div#' + id;
+					}
+					wpWidgets.save( ui.item, 0, 0, 1 );
+					ui.item.find('input.add_new').val('');
+					ui.item.find('a.widget-action').click();
+					return;
+				}
+				wpWidgets.saveOrder(sb);
+			},
+			receive: function(e, ui) {
+				var sender = $(ui.sender);
+
+				if ( !$(this).is(':visible') || this.id.indexOf('orphaned_widgets') != -1 )
+					sender.sortable('cancel');
+
+				if ( sender.attr('id').indexOf('orphaned_widgets') != -1 && !sender.children('.widget').length ) {
+					sender.parents('.orphan-sidebar').slideUp(400, function(){ $(this).remove(); });
+				}
+			}
+		}).sortable('option', 'connectWith', 'div.widgets-sortables').parent().filter('.closed').children('.widgets-sortables').sortable('disable');
+
+		$('#available-widgets').droppable({
+			tolerance: 'pointer',
+			accept: function(o){
+				return $(o).parent().attr('id') != 'widget-list';
+			},
+			drop: function(e,ui) {
+				ui.draggable.addClass('deleting');
+				$('#removing-widget').hide().children('span').html('');
+			},
+			over: function(e,ui) {
+				ui.draggable.addClass('deleting');
+				$('div.widget-placeholder').hide();
+
+				if ( ui.draggable.hasClass('ui-sortable-helper') )
+					$('#removing-widget').show().children('span')
+					.html( ui.draggable.find('div.widget-title').children('h4').html() );
+			},
+			out: function(e,ui) {
+				ui.draggable.removeClass('deleting');
+				$('div.widget-placeholder').show();
+				$('#removing-widget').hide().children('span').html('');
+			}
+		});
+	},
+
+	saveOrder : function(sb) {
+		if ( sb )
+			$('#' + sb).closest('div.widgets-holder-wrap').find('.spinner').css('display', 'inline-block');
+
+		var a = {
+			action: 'widgets-order',
+			savewidgets: $('#_wpnonce_widgets').val(),
+			sidebars: []
+		};
+
+		$('div.widgets-sortables').each( function() {
+			if ( $(this).sortable )
+				a['sidebars[' + $(this).attr('id') + ']'] = $(this).sortable('toArray').join(',');
+		});
+
+		$.post( ajaxurl, a, function() {
+			$('.spinner').hide();
+		});
+
+		this.resize();
+	},
+
+	save : function(widget, del, animate, order) {
+		var sb = widget.closest('div.widgets-sortables').attr('id'), data = widget.find('form').serialize(), a;
+		widget = $(widget);
+		$('.spinner', widget).show();
+
+		a = {
+			action: 'save-widget',
+			savewidgets: $('#_wpnonce_widgets').val(),
+			sidebar: sb
+		};
+
+		if ( del )
+			a['delete_widget'] = 1;
+
+		data += '&' + $.param(a);
+
+		$.post( ajaxurl, data, function(r){
+			var id;
+
+			if ( del ) {
+				if ( !$('input.widget_number', widget).val() ) {
+					id = $('input.widget-id', widget).val();
+					$('#available-widgets').find('input.widget-id').each(function(){
+						if ( $(this).val() == id )
+							$(this).closest('div.widget').show();
+					});
+				}
+
+				if ( animate ) {
+					order = 0;
+					widget.slideUp('fast', function(){
+						$(this).remove();
+						wpWidgets.saveOrder();
+					});
+				} else {
+					widget.remove();
+					wpWidgets.resize();
+				}
+			} else {
+				$('.spinner').hide();
+				if ( r && r.length > 2 ) {
+					$('div.widget-content', widget).html(r);
+					wpWidgets.appendTitle(widget);
+					wpWidgets.fixLabels(widget);
+				}
+			}
+			if ( order )
+				wpWidgets.saveOrder();
+		});
+	},
+
+	appendTitle : function(widget) {
+		var title = $('input[id*="-title"]', widget).val() || '';
+
+		if ( title )
+			title = ': ' + title.replace(/<[^<>]+>/g, '').replace(/</g, '&lt;').replace(/>/g, '&gt;');
+
+		$(widget).children('.widget-top').children('.widget-title').children()
+				.children('.in-widget-title').html(title);
+
+	},
+
+	resize : function() {
+		$('div.widgets-sortables').each(function(){
+			if ( $(this).parent().hasClass('inactive') )
+				return true;
+
+			var h = 50, H = $(this).children('.widget').length;
+			h = h + parseInt(H * 48, 10);
+			$(this).css( 'minHeight', h + 'px' );
+		});
+	},
+
+	fixLabels : function(widget) {
+		widget.children('.widget-inside').find('label').each(function(){
+			var f = $(this).attr('for');
+			if ( f && f == $('input', this).attr('id') )
+				$(this).removeAttr('for');
+		});
+	},
+
+	close : function(widget) {
+		widget.children('.widget-inside').slideUp('fast', function(){
+			widget.css({'width':'', margin:''});
+		});
+	}
+};
+
+$(document).ready(function($){ wpWidgets.init(); });
+
+})(jQuery);
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-admin/js/widgets.min.js	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,1 @@
+var wpWidgets;(function(a){wpWidgets={init:function(){var f,d=a("div.widgets-sortables"),c=!!("undefined"!=typeof isRtl&&isRtl),e=(isRtl?"marginRight":"marginLeft"),b;a("#widgets-right").children(".widgets-holder-wrap").children(".sidebar-name").click(function(){var h=a(this).siblings(".widgets-sortables"),g=a(this).parent();if(!g.hasClass("closed")){h.sortable("disable");g.addClass("closed")}else{g.removeClass("closed");h.sortable("enable").sortable("refresh")}});a("#widgets-left").children(".widgets-holder-wrap").children(".sidebar-name").click(function(){a(this).parent().toggleClass("closed")});d.each(function(){if(a(this).parent().hasClass("inactive")){return true}var i=50,g=a(this).children(".widget").length;i=i+parseInt(g*48,10);a(this).css("minHeight",i+"px")});a(document.body).bind("click.widgets-toggle",function(l){var k=a(l.target),i={},j,g,h;if(k.parents(".widget-top").length&&!k.parents("#available-widgets").length){j=k.closest("div.widget");g=j.children(".widget-inside");h=parseInt(j.find("input.widget-width").val(),10);if(g.is(":hidden")){if(h>250&&g.closest("div.widgets-sortables").length){i.width=h+30+"px";if(g.closest("div.widget-liquid-right").length){i[e]=235-h+"px"}j.css(i)}wpWidgets.fixLabels(j);g.slideDown("fast")}else{g.slideUp("fast",function(){j.css({width:"",margin:""})})}l.preventDefault()}else{if(k.hasClass("widget-control-save")){wpWidgets.save(k.closest("div.widget"),0,1,0);l.preventDefault()}else{if(k.hasClass("widget-control-remove")){wpWidgets.save(k.closest("div.widget"),1,1,0);l.preventDefault()}else{if(k.hasClass("widget-control-close")){wpWidgets.close(k.closest("div.widget"));l.preventDefault()}}}}});d.children(".widget").each(function(){wpWidgets.appendTitle(this);if(a("p.widget-error",this).length){a("a.widget-action",this).click()}});a("#widget-list").children(".widget").draggable({connectToSortable:"div.widgets-sortables",handle:"> .widget-top > .widget-title",distance:2,helper:"clone",zIndex:100,containment:"document",start:function(h,g){g.helper.find("div.widget-description").hide();b=this.id},stop:function(h,g){if(f){a(f).hide()}f=""}});d.sortable({placeholder:"widget-placeholder",items:"> .widget",handle:"> .widget-top > .widget-title",cursor:"move",distance:2,containment:"document",start:function(h,g){g.item.children(".widget-inside").hide();g.item.css({margin:"",width:""})},stop:function(i,g){if(g.item.hasClass("ui-draggable")&&g.item.data("draggable")){g.item.draggable("destroy")}if(g.item.hasClass("deleting")){wpWidgets.save(g.item,1,0,1);g.item.remove();return}var h=g.item.find("input.add_new").val(),l=g.item.find("input.multi_number").val(),k=b,j=a(this).attr("id");g.item.css({margin:"",width:""});b="";if(h){if("multi"==h){g.item.html(g.item.html().replace(/<[^<>]+>/g,function(n){return n.replace(/__i__|%i%/g,l)}));g.item.attr("id",k.replace("__i__",l));l++;a("div#"+k).find("input.multi_number").val(l)}else{if("single"==h){g.item.attr("id","new-"+k);f="div#"+k}}wpWidgets.save(g.item,0,0,1);g.item.find("input.add_new").val("");g.item.find("a.widget-action").click();return}wpWidgets.saveOrder(j)},receive:function(i,h){var g=a(h.sender);if(!a(this).is(":visible")||this.id.indexOf("orphaned_widgets")!=-1){g.sortable("cancel")}if(g.attr("id").indexOf("orphaned_widgets")!=-1&&!g.children(".widget").length){g.parents(".orphan-sidebar").slideUp(400,function(){a(this).remove()})}}}).sortable("option","connectWith","div.widgets-sortables").parent().filter(".closed").children(".widgets-sortables").sortable("disable");a("#available-widgets").droppable({tolerance:"pointer",accept:function(g){return a(g).parent().attr("id")!="widget-list"},drop:function(h,g){g.draggable.addClass("deleting");a("#removing-widget").hide().children("span").html("")},over:function(h,g){g.draggable.addClass("deleting");a("div.widget-placeholder").hide();if(g.draggable.hasClass("ui-sortable-helper")){a("#removing-widget").show().children("span").html(g.draggable.find("div.widget-title").children("h4").html())}},out:function(h,g){g.draggable.removeClass("deleting");a("div.widget-placeholder").show();a("#removing-widget").hide().children("span").html("")}})},saveOrder:function(c){if(c){a("#"+c).closest("div.widgets-holder-wrap").find(".spinner").css("display","inline-block")}var b={action:"widgets-order",savewidgets:a("#_wpnonce_widgets").val(),sidebars:[]};a("div.widgets-sortables").each(function(){if(a(this).sortable){b["sidebars["+a(this).attr("id")+"]"]=a(this).sortable("toArray").join(",")}});a.post(ajaxurl,b,function(){a(".spinner").hide()});this.resize()},save:function(g,d,e,b){var h=g.closest("div.widgets-sortables").attr("id"),f=g.find("form").serialize(),c;g=a(g);a(".spinner",g).show();c={action:"save-widget",savewidgets:a("#_wpnonce_widgets").val(),sidebar:h};if(d){c.delete_widget=1}f+="&"+a.param(c);a.post(ajaxurl,f,function(i){var j;if(d){if(!a("input.widget_number",g).val()){j=a("input.widget-id",g).val();a("#available-widgets").find("input.widget-id").each(function(){if(a(this).val()==j){a(this).closest("div.widget").show()}})}if(e){b=0;g.slideUp("fast",function(){a(this).remove();wpWidgets.saveOrder()})}else{g.remove();wpWidgets.resize()}}else{a(".spinner").hide();if(i&&i.length>2){a("div.widget-content",g).html(i);wpWidgets.appendTitle(g);wpWidgets.fixLabels(g)}}if(b){wpWidgets.saveOrder()}})},appendTitle:function(b){var c=a('input[id*="-title"]',b).val()||"";if(c){c=": "+c.replace(/<[^<>]+>/g,"").replace(/</g,"&lt;").replace(/>/g,"&gt;")}a(b).children(".widget-top").children(".widget-title").children().children(".in-widget-title").html(c)},resize:function(){a("div.widgets-sortables").each(function(){if(a(this).parent().hasClass("inactive")){return true}var c=50,b=a(this).children(".widget").length;c=c+parseInt(b*48,10);a(this).css("minHeight",c+"px")})},fixLabels:function(b){b.children(".widget-inside").find("label").each(function(){var c=a(this).attr("for");if(c&&c==a("input",this).attr("id")){a(this).removeAttr("for")}})},close:function(b){b.children(".widget-inside").slideUp("fast",function(){b.css({width:"",margin:""})})}};a(document).ready(function(b){wpWidgets.init()})})(jQuery);
\ No newline at end of file
--- a/web/wp-admin/js/word-count.dev.js	Wed Dec 19 12:35:13 2012 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,42 +0,0 @@
-(function($,undefined) {
-	wpWordCount = {
-
-		settings : {
-			strip : /<[a-zA-Z\/][^<>]*>/g, // strip HTML tags
-			clean : /[0-9.(),;:!?%#$¿'"_+=\\/-]+/g, // regexp to remove punctuation, etc.
-			w : /\S\s+/g, // word-counting regexp
-			c : /\S/g // char-counting regexp for asian languages
-		},
-
-		block : 0,
-
-		wc : function(tx, type) {
-			var t = this, w = $('.word-count'), tc = 0;
-
-			if ( type === undefined )
-				type = wordCountL10n.type;
-			if ( type !== 'w' && type !== 'c' )
-				type = 'w';
-
-			if ( t.block )
-				return;
-
-			t.block = 1;
-
-			setTimeout( function() {
-				if ( tx ) {
-					tx = tx.replace( t.settings.strip, ' ' ).replace( /&nbsp;|&#160;/gi, ' ' );
-					tx = tx.replace( t.settings.clean, '' );
-					tx.replace( t.settings[type], function(){tc++;} );
-				}
-				w.html(tc.toString());
-
-				setTimeout( function() { t.block = 0; }, 2000 );
-			}, 1 );
-		}
-	}
-
-	$(document).bind( 'wpcountwords', function(e, txt) {
-		wpWordCount.wc(txt);
-	});
-}(jQuery));
--- a/web/wp-admin/js/word-count.js	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-admin/js/word-count.js	Wed Dec 19 17:46:52 2012 -0800
@@ -1,1 +1,42 @@
-(function(a,b){wpWordCount={settings:{strip:/<[a-zA-Z\/][^<>]*>/g,clean:/[0-9.(),;:!?%#$¿'"_+=\\/-]+/g,w:/\S\s+/g,c:/\S/g},block:0,wc:function(e,g){var f=this,d=a(".word-count"),c=0;if(g===b){g=wordCountL10n.type}if(g!=="w"&&g!=="c"){g="w"}if(f.block){return}f.block=1;setTimeout(function(){if(e){e=e.replace(f.settings.strip," ").replace(/&nbsp;|&#160;/gi," ");e=e.replace(f.settings.clean,"");e.replace(f.settings[g],function(){c++})}d.html(c.toString());setTimeout(function(){f.block=0},2000)},1)}};a(document).bind("wpcountwords",function(d,c){wpWordCount.wc(c)})}(jQuery));
\ No newline at end of file
+(function($,undefined) {
+	wpWordCount = {
+
+		settings : {
+			strip : /<[a-zA-Z\/][^<>]*>/g, // strip HTML tags
+			clean : /[0-9.(),;:!?%#$¿'"_+=\\/-]+/g, // regexp to remove punctuation, etc.
+			w : /\S\s+/g, // word-counting regexp
+			c : /\S/g // char-counting regexp for asian languages
+		},
+
+		block : 0,
+
+		wc : function(tx, type) {
+			var t = this, w = $('.word-count'), tc = 0;
+
+			if ( type === undefined )
+				type = wordCountL10n.type;
+			if ( type !== 'w' && type !== 'c' )
+				type = 'w';
+
+			if ( t.block )
+				return;
+
+			t.block = 1;
+
+			setTimeout( function() {
+				if ( tx ) {
+					tx = tx.replace( t.settings.strip, ' ' ).replace( /&nbsp;|&#160;/gi, ' ' );
+					tx = tx.replace( t.settings.clean, '' );
+					tx.replace( t.settings[type], function(){tc++;} );
+				}
+				w.html(tc.toString());
+
+				setTimeout( function() { t.block = 0; }, 2000 );
+			}, 1 );
+		}
+	}
+
+	$(document).bind( 'wpcountwords', function(e, txt) {
+		wpWordCount.wc(txt);
+	});
+}(jQuery));
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-admin/js/word-count.min.js	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,1 @@
+(function(a,b){wpWordCount={settings:{strip:/<[a-zA-Z\/][^<>]*>/g,clean:/[0-9.(),;:!?%#$¿'"_+=\\/-]+/g,w:/\S\s+/g,c:/\S/g},block:0,wc:function(e,g){var f=this,d=a(".word-count"),c=0;if(g===b){g=wordCountL10n.type}if(g!=="w"&&g!=="c"){g="w"}if(f.block){return}f.block=1;setTimeout(function(){if(e){e=e.replace(f.settings.strip," ").replace(/&nbsp;|&#160;/gi," ");e=e.replace(f.settings.clean,"");e.replace(f.settings[g],function(){c++})}d.html(c.toString());setTimeout(function(){f.block=0},2000)},1)}};a(document).bind("wpcountwords",function(d,c){wpWordCount.wc(c)})}(jQuery));
\ No newline at end of file
--- a/web/wp-admin/js/wp-fullscreen.dev.js	Wed Dec 19 12:35:13 2012 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,731 +0,0 @@
-/**
- * PubSub
- *
- * A lightweight publish/subscribe implementation.
- * Private use only!
- */
-var PubSub, fullscreen, wptitlehint;
-
-PubSub = function() {
-	this.topics = {};
-};
-
-PubSub.prototype.subscribe = function( topic, callback ) {
-	if ( ! this.topics[ topic ] )
-		this.topics[ topic ] = [];
-
-	this.topics[ topic ].push( callback );
-	return callback;
-};
-
-PubSub.prototype.unsubscribe = function( topic, callback ) {
-	var i, l,
-		topics = this.topics[ topic ];
-
-	if ( ! topics )
-		return callback || [];
-
-	// Clear matching callbacks
-	if ( callback ) {
-		for ( i = 0, l = topics.length; i < l; i++ ) {
-			if ( callback == topics[i] )
-				topics.splice( i, 1 );
-		}
-		return callback;
-
-	// Clear all callbacks
-	} else {
-		this.topics[ topic ] = [];
-		return topics;
-	}
-};
-
-PubSub.prototype.publish = function( topic, args ) {
-	var i, l, broken,
-		topics = this.topics[ topic ];
-
-	if ( ! topics )
-		return;
-
-	args = args || [];
-
-	for ( i = 0, l = topics.length; i < l; i++ ) {
-		broken = ( topics[i].apply( null, args ) === false || broken );
-	}
-	return ! broken;
-};
-
-/**
- * Distraction Free Writing
- * (wp-fullscreen)
- *
- * Access the API globally using the fullscreen variable.
- */
-
-(function($){
-	var api, ps, bounder, s;
-
-	// Initialize the fullscreen/api object
-	fullscreen = api = {};
-
-	// Create the PubSub (publish/subscribe) interface.
-	ps = api.pubsub = new PubSub();
-	timer = 0;
-	block = false;
-
-	s = api.settings = { // Settings
-		visible : false,
-		mode : 'tinymce',
-		editor_id : 'content',
-		title_id : '',
-		timer : 0,
-		toolbar_shown : false
-	}
-
-	/**
-	 * Bounder
-	 *
-	 * Creates a function that publishes start/stop topics.
-	 * Used to throttle events.
-	 */
-	bounder = api.bounder = function( start, stop, delay, e ) {
-		var y, top;
-
-		delay = delay || 1250;
-
-		if ( e ) {
-			y = e.pageY || e.clientY || e.offsetY;
-			top = $(document).scrollTop();
-
-			if ( !e.isDefaultPrevented ) // test if e ic jQuery normalized
-				y = 135 + y;
-
-			if ( y - top > 120 )
-				return;
-		}
-
-		if ( block )
-			return;
-
-		block = true;
-
-		setTimeout( function() {
-			block = false;
-		}, 400 );
-
-		if ( s.timer )
-			clearTimeout( s.timer );
-		else
-			ps.publish( start );
-
-		function timed() {
-			ps.publish( stop );
-			s.timer = 0;
-		}
-
-		s.timer = setTimeout( timed, delay );
-	};
-
-	/**
-	 * on()
-	 *
-	 * Turns fullscreen on.
-	 *
-	 * @param string mode Optional. Switch to the given mode before opening.
-	 */
-	api.on = function() {
-		if ( s.visible )
-			return;
-
-		// Settings can be added or changed by defining "wp_fullscreen_settings" JS object.
-		if ( typeof(wp_fullscreen_settings) == 'object' )
-			$.extend( s, wp_fullscreen_settings );
-
-		s.editor_id = wpActiveEditor || 'content';
-
-		if ( $('input#title').length && s.editor_id == 'content' )
-			s.title_id = 'title';
-		else if ( $('input#' + s.editor_id + '-title').length ) // the title input field should have [editor_id]-title HTML ID to be auto detected
-			s.title_id = s.editor_id + '-title';
-		else
-			$('#wp-fullscreen-title, #wp-fullscreen-title-prompt-text').hide();
-
-		s.mode = $('#' + s.editor_id).is(':hidden') ? 'tinymce' : 'html';
-		s.qt_canvas = $('#' + s.editor_id).get(0);
-
-		if ( ! s.element )
-			api.ui.init();
-
-		s.is_mce_on = s.has_tinymce && typeof( tinyMCE.get(s.editor_id) ) != 'undefined';
-
-		api.ui.fade( 'show', 'showing', 'shown' );
-	};
-
-	/**
-	 * off()
-	 *
-	 * Turns fullscreen off.
-	 */
-	api.off = function() {
-		if ( ! s.visible )
-			return;
-
-		api.ui.fade( 'hide', 'hiding', 'hidden' );
-	};
-
-	/**
-	 * switchmode()
-	 *
-	 * @return string - The current mode.
-	 *
-	 * @param string to - The fullscreen mode to switch to.
-	 * @event switchMode
-	 * @eventparam string to   - The new mode.
-	 * @eventparam string from - The old mode.
-	 */
-	api.switchmode = function( to ) {
-		var from = s.mode;
-
-		if ( ! to || ! s.visible || ! s.has_tinymce )
-			return from;
-
-		// Don't switch if the mode is the same.
-		if ( from == to )
-			return from;
-
-		ps.publish( 'switchMode', [ from, to ] );
-		s.mode = to;
-		ps.publish( 'switchedMode', [ from, to ] );
-
-		return to;
-	};
-
-	/**
-	 * General
-	 */
-
-	api.save = function() {
-		var hidden = $('#hiddenaction'), old = hidden.val(), spinner = $('#wp-fullscreen-save img'),
-			message = $('#wp-fullscreen-save span');
-
-		spinner.show();
-		api.savecontent();
-
-		hidden.val('wp-fullscreen-save-post');
-
-		$.post( ajaxurl, $('form#post').serialize(), function(r){
-			spinner.hide();
-			message.show();
-
-			setTimeout( function(){
-				message.fadeOut(1000);
-			}, 3000 );
-
-			if ( r.last_edited )
-				$('#wp-fullscreen-save input').attr( 'title',  r.last_edited );
-
-		}, 'json');
-
-		hidden.val(old);
-	}
-
-	api.savecontent = function() {
-		var ed, content;
-
-		if ( s.title_id )
-			$('#' + s.title_id).val( $('#wp-fullscreen-title').val() );
-
-		if ( s.mode === 'tinymce' && (ed = tinyMCE.get('wp_mce_fullscreen')) ) {
-			content = ed.save();
-		} else {
-			content = $('#wp_mce_fullscreen').val();
-		}
-
-		$('#' + s.editor_id).val( content );
-		$(document).triggerHandler('wpcountwords', [ content ]);
-	}
-
-	set_title_hint = function( title ) {
-		if ( ! title.val().length )
-			title.siblings('label').css( 'visibility', '' );
-		else
-			title.siblings('label').css( 'visibility', 'hidden' );
-	}
-
-	api.dfw_width = function(n) {
-		var el = $('#wp-fullscreen-wrap'), w = el.width();
-
-		if ( !n ) { // reset to theme width
-			el.width( $('#wp-fullscreen-central-toolbar').width() );
-			deleteUserSetting('dfw_width');
-			return;
-		}
-
-		w = n + w;
-
-		if ( w < 200 || w > 1200 ) // sanity check
-			return;
-
-		el.width( w );
-		setUserSetting('dfw_width', w);
-	}
-
-	ps.subscribe( 'showToolbar', function() {
-		s.toolbars.removeClass('fade-1000').addClass('fade-300');
-		api.fade.In( s.toolbars, 300, function(){ ps.publish('toolbarShown'); }, true );
-		$('#wp-fullscreen-body').addClass('wp-fullscreen-focus');
-		s.toolbar_shown = true;
-	});
-
-	ps.subscribe( 'hideToolbar', function() {
-		s.toolbars.removeClass('fade-300').addClass('fade-1000');
-		api.fade.Out( s.toolbars, 1000, function(){ ps.publish('toolbarHidden'); }, true );
-		$('#wp-fullscreen-body').removeClass('wp-fullscreen-focus');
-	});
-
-	ps.subscribe( 'toolbarShown', function() {
-		s.toolbars.removeClass('fade-300');
-	});
-
-	ps.subscribe( 'toolbarHidden', function() {
-		s.toolbars.removeClass('fade-1000');
-		s.toolbar_shown = false;
-	});
-
-	ps.subscribe( 'show', function() { // This event occurs before the overlay blocks the UI.
-		var title;
-
-		if ( s.title_id ) {
-			title = $('#wp-fullscreen-title').val( $('#' + s.title_id).val() );
-			set_title_hint( title );
-		}
-
-		$('#wp-fullscreen-save input').attr( 'title',  $('#last-edit').text() );
-
-		s.textarea_obj.value = s.qt_canvas.value;
-
-		if ( s.has_tinymce && s.mode === 'tinymce' )
-			tinyMCE.execCommand('wpFullScreenInit');
-
-		s.orig_y = $(window).scrollTop();
-	});
-
-	ps.subscribe( 'showing', function() { // This event occurs while the DFW overlay blocks the UI.
-		$( document.body ).addClass( 'fullscreen-active' );
-		api.refresh_buttons();
-
-		$( document ).bind( 'mousemove.fullscreen', function(e) { bounder( 'showToolbar', 'hideToolbar', 2000, e ); } );
-		bounder( 'showToolbar', 'hideToolbar', 2000 );
-
-		api.bind_resize();
-		setTimeout( api.resize_textarea, 200 );
-
-		// scroll to top so the user is not disoriented
-		scrollTo(0, 0);
-
-		// needed it for IE7 and compat mode
-		$('#wpadminbar').hide();
-	});
-
-	ps.subscribe( 'shown', function() { // This event occurs after the DFW overlay is shown
-		var interim_init;
-
-		s.visible = true;
-
-		// init the standard TinyMCE instance if missing
-		if ( s.has_tinymce && ! s.is_mce_on ) {
-
-			interim_init = function(mce, ed) {
-				var el = ed.getElement(), old_val = el.value, settings = tinyMCEPreInit.mceInit[s.editor_id];
-
-				if ( settings && settings.wpautop && typeof(switchEditors) != 'undefined' )
-					el.value = switchEditors.wpautop( el.value );
-
-				ed.onInit.add(function(ed) {
-					ed.hide();
-					ed.getElement().value = old_val;
-					tinymce.onAddEditor.remove(interim_init);
-				});
-			};
-
-			tinymce.onAddEditor.add(interim_init);
-			tinyMCE.init(tinyMCEPreInit.mceInit[s.editor_id]);
-
-			s.is_mce_on = true;
-		}
-
-		wpActiveEditor = 'wp_mce_fullscreen';
-	});
-
-	ps.subscribe( 'hide', function() { // This event occurs before the overlay blocks DFW.
-		var htmled_is_hidden = $('#' + s.editor_id).is(':hidden');
-		// Make sure the correct editor is displaying.
-		if ( s.has_tinymce && s.mode === 'tinymce' && !htmled_is_hidden ) {
-			switchEditors.go(s.editor_id, 'tmce');
-		} else if ( s.mode === 'html' && htmled_is_hidden ) {
-			switchEditors.go(s.editor_id, 'html');
-		}
-
-		// Save content must be after switchEditors or content will be overwritten. See #17229.
-		api.savecontent();
-
-		$( document ).unbind( '.fullscreen' );
-		$(s.textarea_obj).unbind('.grow');
-
-		if ( s.has_tinymce && s.mode === 'tinymce' )
-			tinyMCE.execCommand('wpFullScreenSave');
-
-		if ( s.title_id )
-			set_title_hint( $('#' + s.title_id) );
-
-		s.qt_canvas.value = s.textarea_obj.value;
-	});
-
-	ps.subscribe( 'hiding', function() { // This event occurs while the overlay blocks the DFW UI.
-
-		$( document.body ).removeClass( 'fullscreen-active' );
-		scrollTo(0, s.orig_y);
-		$('#wpadminbar').show();
-	});
-
-	ps.subscribe( 'hidden', function() { // This event occurs after DFW is removed.
-		s.visible = false;
-		$('#wp_mce_fullscreen, #wp-fullscreen-title').removeAttr('style');
-
-		if ( s.has_tinymce && s.is_mce_on )
-			tinyMCE.execCommand('wpFullScreenClose');
-
-		s.textarea_obj.value = '';
-		api.oldheight = 0;
-		wpActiveEditor = s.editor_id;
-	});
-
-	ps.subscribe( 'switchMode', function( from, to ) {
-		var ed;
-
-		if ( !s.has_tinymce || !s.is_mce_on )
-			return;
-
-		ed = tinyMCE.get('wp_mce_fullscreen');
-
-		if ( from === 'html' && to === 'tinymce' ) {
-
-			if ( tinyMCE.get(s.editor_id).getParam('wpautop') && typeof(switchEditors) != 'undefined' )
-				s.textarea_obj.value = switchEditors.wpautop( s.textarea_obj.value );
-
-			if ( 'undefined' == typeof(ed) )
-				tinyMCE.execCommand('wpFullScreenInit');
-			else
-				ed.show();
-
-		} else if ( from === 'tinymce' && to === 'html' ) {
-			if ( ed )
-				ed.hide();
-		}
-	});
-
-	ps.subscribe( 'switchedMode', function( from, to ) {
-		api.refresh_buttons(true);
-
-		if ( to === 'html' )
-			setTimeout( api.resize_textarea, 200 );
-	});
-
-	/**
-	 * Buttons
-	 */
-	api.b = function() {
-		if ( s.has_tinymce && 'tinymce' === s.mode )
-			tinyMCE.execCommand('Bold');
-	}
-
-	api.i = function() {
-		if ( s.has_tinymce && 'tinymce' === s.mode )
-			tinyMCE.execCommand('Italic');
-	}
-
-	api.ul = function() {
-		if ( s.has_tinymce && 'tinymce' === s.mode )
-			tinyMCE.execCommand('InsertUnorderedList');
-	}
-
-	api.ol = function() {
-		if ( s.has_tinymce && 'tinymce' === s.mode )
-			tinyMCE.execCommand('InsertOrderedList');
-	}
-
-	api.link = function() {
-		if ( s.has_tinymce && 'tinymce' === s.mode )
-			tinyMCE.execCommand('WP_Link');
-		else
-			wpLink.open();
-	}
-
-	api.unlink = function() {
-		if ( s.has_tinymce && 'tinymce' === s.mode )
-			tinyMCE.execCommand('unlink');
-	}
-
-	api.atd = function() {
-		if ( s.has_tinymce && 'tinymce' === s.mode )
-			tinyMCE.execCommand('mceWritingImprovementTool');
-	}
-
-	api.help = function() {
-		if ( s.has_tinymce && 'tinymce' === s.mode )
-			tinyMCE.execCommand('WP_Help');
-	}
-
-	api.blockquote = function() {
-		if ( s.has_tinymce && 'tinymce' === s.mode )
-			tinyMCE.execCommand('mceBlockQuote');
-	}
-
-	api.medialib = function() {
-		if ( s.has_tinymce && 'tinymce' === s.mode ) {
-			tinyMCE.execCommand('WP_Medialib');
-		} else {
-			var href = $('#wp-' + s.editor_id + '-media-buttons a.thickbox').attr('href') || '';
-
-			if ( href )
-				tb_show('', href);
-		}
-	}
-
-	api.refresh_buttons = function( fade ) {
-		fade = fade || false;
-
-		if ( s.mode === 'html' ) {
-			$('#wp-fullscreen-mode-bar').removeClass('wp-tmce-mode').addClass('wp-html-mode');
-
-			if ( fade )
-				$('#wp-fullscreen-button-bar').fadeOut( 150, function(){
-					$(this).addClass('wp-html-mode').fadeIn( 150 );
-				});
-			else
-				$('#wp-fullscreen-button-bar').addClass('wp-html-mode');
-
-		} else if ( s.mode === 'tinymce' ) {
-			$('#wp-fullscreen-mode-bar').removeClass('wp-html-mode').addClass('wp-tmce-mode');
-
-			if ( fade )
-				$('#wp-fullscreen-button-bar').fadeOut( 150, function(){
-					$(this).removeClass('wp-html-mode').fadeIn( 150 );
-				});
-			else
-				$('#wp-fullscreen-button-bar').removeClass('wp-html-mode');
-		}
-	}
-
-	/**
-	 * UI Elements
-	 *
-	 * Used for transitioning between states.
-	 */
-	api.ui = {
-		init: function() {
-			var topbar = $('#fullscreen-topbar'), txtarea = $('#wp_mce_fullscreen'), last = 0;
-
-			s.toolbars = topbar.add( $('#wp-fullscreen-status') );
-			s.element = $('#fullscreen-fader');
-			s.textarea_obj = txtarea[0];
-			s.has_tinymce = typeof(tinymce) != 'undefined';
-
-			if ( !s.has_tinymce )
-				$('#wp-fullscreen-mode-bar').hide();
-
-			if ( wptitlehint && $('#wp-fullscreen-title').length )
-				wptitlehint('wp-fullscreen-title');
-
-			$(document).keyup(function(e){
-				var c = e.keyCode || e.charCode, a, data;
-
-				if ( !fullscreen.settings.visible )
-					return true;
-
-				if ( navigator.platform && navigator.platform.indexOf('Mac') != -1 )
-					a = e.ctrlKey; // Ctrl key for Mac
-				else
-					a = e.altKey; // Alt key for Win & Linux
-
-				if ( 27 == c ) { // Esc
-					data = {
-						event: e,
-						what: 'dfw',
-						cb: fullscreen.off,
-						condition: function(){
-							if ( $('#TB_window').is(':visible') || $('.wp-dialog').is(':visible') )
-								return false;
-							return true;
-						}
-					};
-
-					if ( ! jQuery(document).triggerHandler( 'wp_CloseOnEscape', [data] ) )
-						fullscreen.off();
-				}
-
-				if ( a && (61 == c || 107 == c || 187 == c) ) // +
-					api.dfw_width(25);
-
-				if ( a && (45 == c || 109 == c || 189 == c) ) // -
-					api.dfw_width(-25);
-
-				if ( a && 48 == c ) // 0
-					api.dfw_width(0);
-
-				return false;
-			});
-
-			// word count in HTML mode
-			if ( typeof(wpWordCount) != 'undefined' ) {
-
-				txtarea.keyup( function(e) {
-					var k = e.keyCode || e.charCode;
-
-					if ( k == last )
-						return true;
-
-					if ( 13 == k || 8 == last || 46 == last )
-						$(document).triggerHandler('wpcountwords', [ txtarea.val() ]);
-
-					last = k;
-					return true;
-				});
-			}
-
-			topbar.mouseenter(function(e){
-				s.toolbars.addClass('fullscreen-make-sticky');
-				$( document ).unbind( '.fullscreen' );
-				clearTimeout( s.timer );
-				s.timer = 0;
-			}).mouseleave(function(e){
-				s.toolbars.removeClass('fullscreen-make-sticky');
-
-				if ( s.visible )
-					$( document ).bind( 'mousemove.fullscreen', function(e) { bounder( 'showToolbar', 'hideToolbar', 2000, e ); } );
-			});
-		},
-
-		fade: function( before, during, after ) {
-			if ( ! s.element )
-				api.ui.init();
-
-			// If any callback bound to before returns false, bail.
-			if ( before && ! ps.publish( before ) )
-				return;
-
-			api.fade.In( s.element, 600, function() {
-				if ( during )
-					ps.publish( during );
-
-				api.fade.Out( s.element, 600, function() {
-					if ( after )
-						ps.publish( after );
-				})
-			});
-		}
-	};
-
-	api.fade = {
-		transitionend: 'transitionend webkitTransitionEnd oTransitionEnd',
-
-		// Sensitivity to allow browsers to render the blank element before animating.
-		sensitivity: 100,
-
-		In: function( element, speed, callback, stop ) {
-
-			callback = callback || $.noop;
-			speed = speed || 400;
-			stop = stop || false;
-
-			if ( api.fade.transitions ) {
-				if ( element.is(':visible') ) {
-					element.addClass( 'fade-trigger' );
-					return element;
-				}
-
-				element.show();
-				element.first().one( this.transitionend, function() {
-					callback();
-				});
-				setTimeout( function() { element.addClass( 'fade-trigger' ); }, this.sensitivity );
-			} else {
-				if ( stop )
-					element.stop();
-
-				element.css( 'opacity', 1 );
-				element.first().fadeIn( speed, callback );
-
-				if ( element.length > 1 )
-					element.not(':first').fadeIn( speed );
-			}
-
-			return element;
-		},
-
-		Out: function( element, speed, callback, stop ) {
-
-			callback = callback || $.noop;
-			speed = speed || 400;
-			stop = stop || false;
-
-			if ( ! element.is(':visible') )
-				return element;
-
-			if ( api.fade.transitions ) {
-				element.first().one( api.fade.transitionend, function() {
-					if ( element.hasClass('fade-trigger') )
-						return;
-
-					element.hide();
-					callback();
-				});
-				setTimeout( function() { element.removeClass( 'fade-trigger' ); }, this.sensitivity );
-			} else {
-				if ( stop )
-					element.stop();
-
-				element.first().fadeOut( speed, callback );
-
-				if ( element.length > 1 )
-					element.not(':first').fadeOut( speed );
-			}
-
-			return element;
-		},
-
-		transitions: (function() { // Check if the browser supports CSS 3.0 transitions
-			var s = document.documentElement.style;
-
-			return ( typeof ( s.WebkitTransition ) == 'string' ||
-				typeof ( s.MozTransition ) == 'string' ||
-				typeof ( s.OTransition ) == 'string' ||
-				typeof ( s.transition ) == 'string' );
-		})()
-	};
-
-	/**
-	 * Resize API
-	 *
-	 * Automatically updates textarea height.
-	 */
-
-	api.bind_resize = function() {
-		$(s.textarea_obj).bind('keypress.grow click.grow paste.grow', function(){
-			setTimeout( api.resize_textarea, 200 );
-		});
-	}
-
-	api.oldheight = 0;
-	api.resize_textarea = function() {
-		var txt = s.textarea_obj, newheight;
-
-		newheight = txt.scrollHeight > 300 ? txt.scrollHeight : 300;
-
-		if ( newheight != api.oldheight ) {
-			txt.style.height = newheight + 'px';
-			api.oldheight = newheight;
-		}
-	};
-
-})(jQuery);
--- a/web/wp-admin/js/wp-fullscreen.js	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-admin/js/wp-fullscreen.js	Wed Dec 19 17:46:52 2012 -0800
@@ -1,1 +1,725 @@
-var PubSub,fullscreen,wptitlehint;PubSub=function(){this.topics={}};PubSub.prototype.subscribe=function(a,b){if(!this.topics[a]){this.topics[a]=[]}this.topics[a].push(b);return b};PubSub.prototype.unsubscribe=function(b,e){var c,a,d=this.topics[b];if(!d){return e||[]}if(e){for(c=0,a=d.length;c<a;c++){if(e==d[c]){d.splice(c,1)}}return e}else{this.topics[b]=[];return d}};PubSub.prototype.publish=function(c,b){var d,a,e,f=this.topics[c];if(!f){return}b=b||[];for(d=0,a=f.length;d<a;d++){e=(f[d].apply(null,b)===false||e)}return !e};(function(c){var b,e,d,a;fullscreen=b={};e=b.pubsub=new PubSub();timer=0;block=false;a=b.settings={visible:false,mode:"tinymce",editor_id:"content",title_id:"",timer:0,toolbar_shown:false};d=b.bounder=function(l,h,g,j){var k,i;g=g||1250;if(j){k=j.pageY||j.clientY||j.offsetY;i=c(document).scrollTop();if(!j.isDefaultPrevented){k=135+k}if(k-i>120){return}}if(block){return}block=true;setTimeout(function(){block=false},400);if(a.timer){clearTimeout(a.timer)}else{e.publish(l)}function f(){e.publish(h);a.timer=0}a.timer=setTimeout(f,g)};b.on=function(){if(a.visible){return}if(typeof(wp_fullscreen_settings)=="object"){c.extend(a,wp_fullscreen_settings)}a.editor_id=wpActiveEditor||"content";if(c("input#title").length&&a.editor_id=="content"){a.title_id="title"}else{if(c("input#"+a.editor_id+"-title").length){a.title_id=a.editor_id+"-title"}else{c("#wp-fullscreen-title, #wp-fullscreen-title-prompt-text").hide()}}a.mode=c("#"+a.editor_id).is(":hidden")?"tinymce":"html";a.qt_canvas=c("#"+a.editor_id).get(0);if(!a.element){b.ui.init()}a.is_mce_on=a.has_tinymce&&typeof(tinyMCE.get(a.editor_id))!="undefined";b.ui.fade("show","showing","shown")};b.off=function(){if(!a.visible){return}b.ui.fade("hide","hiding","hidden")};b.switchmode=function(g){var f=a.mode;if(!g||!a.visible||!a.has_tinymce){return f}if(f==g){return f}e.publish("switchMode",[f,g]);a.mode=g;e.publish("switchedMode",[f,g]);return g};b.save=function(){var h=c("#hiddenaction"),f=h.val(),i=c("#wp-fullscreen-save img"),g=c("#wp-fullscreen-save span");i.show();b.savecontent();h.val("wp-fullscreen-save-post");c.post(ajaxurl,c("form#post").serialize(),function(j){i.hide();g.show();setTimeout(function(){g.fadeOut(1000)},3000);if(j.last_edited){c("#wp-fullscreen-save input").attr("title",j.last_edited)}},"json");h.val(f)};b.savecontent=function(){var f,g;if(a.title_id){c("#"+a.title_id).val(c("#wp-fullscreen-title").val())}if(a.mode==="tinymce"&&(f=tinyMCE.get("wp_mce_fullscreen"))){g=f.save()}else{g=c("#wp_mce_fullscreen").val()}c("#"+a.editor_id).val(g);c(document).triggerHandler("wpcountwords",[g])};set_title_hint=function(f){if(!f.val().length){f.siblings("label").css("visibility","")}else{f.siblings("label").css("visibility","hidden")}};b.dfw_width=function(h){var g=c("#wp-fullscreen-wrap"),f=g.width();if(!h){g.width(c("#wp-fullscreen-central-toolbar").width());deleteUserSetting("dfw_width");return}f=h+f;if(f<200||f>1200){return}g.width(f);setUserSetting("dfw_width",f)};e.subscribe("showToolbar",function(){a.toolbars.removeClass("fade-1000").addClass("fade-300");b.fade.In(a.toolbars,300,function(){e.publish("toolbarShown")},true);c("#wp-fullscreen-body").addClass("wp-fullscreen-focus");a.toolbar_shown=true});e.subscribe("hideToolbar",function(){a.toolbars.removeClass("fade-300").addClass("fade-1000");b.fade.Out(a.toolbars,1000,function(){e.publish("toolbarHidden")},true);c("#wp-fullscreen-body").removeClass("wp-fullscreen-focus")});e.subscribe("toolbarShown",function(){a.toolbars.removeClass("fade-300")});e.subscribe("toolbarHidden",function(){a.toolbars.removeClass("fade-1000");a.toolbar_shown=false});e.subscribe("show",function(){var f;if(a.title_id){f=c("#wp-fullscreen-title").val(c("#"+a.title_id).val());set_title_hint(f)}c("#wp-fullscreen-save input").attr("title",c("#last-edit").text());a.textarea_obj.value=a.qt_canvas.value;if(a.has_tinymce&&a.mode==="tinymce"){tinyMCE.execCommand("wpFullScreenInit")}a.orig_y=c(window).scrollTop()});e.subscribe("showing",function(){c(document.body).addClass("fullscreen-active");b.refresh_buttons();c(document).bind("mousemove.fullscreen",function(f){d("showToolbar","hideToolbar",2000,f)});d("showToolbar","hideToolbar",2000);b.bind_resize();setTimeout(b.resize_textarea,200);scrollTo(0,0);c("#wpadminbar").hide()});e.subscribe("shown",function(){var f;a.visible=true;if(a.has_tinymce&&!a.is_mce_on){f=function(g,h){var k=h.getElement(),i=k.value,j=tinyMCEPreInit.mceInit[a.editor_id];if(j&&j.wpautop&&typeof(switchEditors)!="undefined"){k.value=switchEditors.wpautop(k.value)}h.onInit.add(function(l){l.hide();l.getElement().value=i;tinymce.onAddEditor.remove(f)})};tinymce.onAddEditor.add(f);tinyMCE.init(tinyMCEPreInit.mceInit[a.editor_id]);a.is_mce_on=true}wpActiveEditor="wp_mce_fullscreen"});e.subscribe("hide",function(){var f=c("#"+a.editor_id).is(":hidden");if(a.has_tinymce&&a.mode==="tinymce"&&!f){switchEditors.go(a.editor_id,"tmce")}else{if(a.mode==="html"&&f){switchEditors.go(a.editor_id,"html")}}b.savecontent();c(document).unbind(".fullscreen");c(a.textarea_obj).unbind(".grow");if(a.has_tinymce&&a.mode==="tinymce"){tinyMCE.execCommand("wpFullScreenSave")}if(a.title_id){set_title_hint(c("#"+a.title_id))}a.qt_canvas.value=a.textarea_obj.value});e.subscribe("hiding",function(){c(document.body).removeClass("fullscreen-active");scrollTo(0,a.orig_y);c("#wpadminbar").show()});e.subscribe("hidden",function(){a.visible=false;c("#wp_mce_fullscreen, #wp-fullscreen-title").removeAttr("style");if(a.has_tinymce&&a.is_mce_on){tinyMCE.execCommand("wpFullScreenClose")}a.textarea_obj.value="";b.oldheight=0;wpActiveEditor=a.editor_id});e.subscribe("switchMode",function(h,g){var f;if(!a.has_tinymce||!a.is_mce_on){return}f=tinyMCE.get("wp_mce_fullscreen");if(h==="html"&&g==="tinymce"){if(tinyMCE.get(a.editor_id).getParam("wpautop")&&typeof(switchEditors)!="undefined"){a.textarea_obj.value=switchEditors.wpautop(a.textarea_obj.value)}if("undefined"==typeof(f)){tinyMCE.execCommand("wpFullScreenInit")}else{f.show()}}else{if(h==="tinymce"&&g==="html"){if(f){f.hide()}}}});e.subscribe("switchedMode",function(g,f){b.refresh_buttons(true);if(f==="html"){setTimeout(b.resize_textarea,200)}});b.b=function(){if(a.has_tinymce&&"tinymce"===a.mode){tinyMCE.execCommand("Bold")}};b.i=function(){if(a.has_tinymce&&"tinymce"===a.mode){tinyMCE.execCommand("Italic")}};b.ul=function(){if(a.has_tinymce&&"tinymce"===a.mode){tinyMCE.execCommand("InsertUnorderedList")}};b.ol=function(){if(a.has_tinymce&&"tinymce"===a.mode){tinyMCE.execCommand("InsertOrderedList")}};b.link=function(){if(a.has_tinymce&&"tinymce"===a.mode){tinyMCE.execCommand("WP_Link")}else{wpLink.open()}};b.unlink=function(){if(a.has_tinymce&&"tinymce"===a.mode){tinyMCE.execCommand("unlink")}};b.atd=function(){if(a.has_tinymce&&"tinymce"===a.mode){tinyMCE.execCommand("mceWritingImprovementTool")}};b.help=function(){if(a.has_tinymce&&"tinymce"===a.mode){tinyMCE.execCommand("WP_Help")}};b.blockquote=function(){if(a.has_tinymce&&"tinymce"===a.mode){tinyMCE.execCommand("mceBlockQuote")}};b.medialib=function(){if(a.has_tinymce&&"tinymce"===a.mode){tinyMCE.execCommand("WP_Medialib")}else{var f=c("#wp-"+a.editor_id+"-media-buttons a.thickbox").attr("href")||"";if(f){tb_show("",f)}}};b.refresh_buttons=function(f){f=f||false;if(a.mode==="html"){c("#wp-fullscreen-mode-bar").removeClass("wp-tmce-mode").addClass("wp-html-mode");if(f){c("#wp-fullscreen-button-bar").fadeOut(150,function(){c(this).addClass("wp-html-mode").fadeIn(150)})}else{c("#wp-fullscreen-button-bar").addClass("wp-html-mode")}}else{if(a.mode==="tinymce"){c("#wp-fullscreen-mode-bar").removeClass("wp-html-mode").addClass("wp-tmce-mode");if(f){c("#wp-fullscreen-button-bar").fadeOut(150,function(){c(this).removeClass("wp-html-mode").fadeIn(150)})}else{c("#wp-fullscreen-button-bar").removeClass("wp-html-mode")}}}};b.ui={init:function(){var f=c("#fullscreen-topbar"),h=c("#wp_mce_fullscreen"),g=0;a.toolbars=f.add(c("#wp-fullscreen-status"));a.element=c("#fullscreen-fader");a.textarea_obj=h[0];a.has_tinymce=typeof(tinymce)!="undefined";if(!a.has_tinymce){c("#wp-fullscreen-mode-bar").hide()}if(wptitlehint&&c("#wp-fullscreen-title").length){wptitlehint("wp-fullscreen-title")}c(document).keyup(function(k){var l=k.keyCode||k.charCode,i,j;if(!fullscreen.settings.visible){return true}if(navigator.platform&&navigator.platform.indexOf("Mac")!=-1){i=k.ctrlKey}else{i=k.altKey}if(27==l){j={event:k,what:"dfw",cb:fullscreen.off,condition:function(){if(c("#TB_window").is(":visible")||c(".wp-dialog").is(":visible")){return false}return true}};if(!jQuery(document).triggerHandler("wp_CloseOnEscape",[j])){fullscreen.off()}}if(i&&(61==l||107==l||187==l)){b.dfw_width(25)}if(i&&(45==l||109==l||189==l)){b.dfw_width(-25)}if(i&&48==l){b.dfw_width(0)}return false});if(typeof(wpWordCount)!="undefined"){h.keyup(function(j){var i=j.keyCode||j.charCode;if(i==g){return true}if(13==i||8==g||46==g){c(document).triggerHandler("wpcountwords",[h.val()])}g=i;return true})}f.mouseenter(function(i){a.toolbars.addClass("fullscreen-make-sticky");c(document).unbind(".fullscreen");clearTimeout(a.timer);a.timer=0}).mouseleave(function(i){a.toolbars.removeClass("fullscreen-make-sticky");if(a.visible){c(document).bind("mousemove.fullscreen",function(j){d("showToolbar","hideToolbar",2000,j)})}})},fade:function(g,f,h){if(!a.element){b.ui.init()}if(g&&!e.publish(g)){return}b.fade.In(a.element,600,function(){if(f){e.publish(f)}b.fade.Out(a.element,600,function(){if(h){e.publish(h)}})})}};b.fade={transitionend:"transitionend webkitTransitionEnd oTransitionEnd",sensitivity:100,In:function(g,h,i,f){i=i||c.noop;h=h||400;f=f||false;if(b.fade.transitions){if(g.is(":visible")){g.addClass("fade-trigger");return g}g.show();g.first().one(this.transitionend,function(){i()});setTimeout(function(){g.addClass("fade-trigger")},this.sensitivity)}else{if(f){g.stop()}g.css("opacity",1);g.first().fadeIn(h,i);if(g.length>1){g.not(":first").fadeIn(h)}}return g},Out:function(g,h,i,f){i=i||c.noop;h=h||400;f=f||false;if(!g.is(":visible")){return g}if(b.fade.transitions){g.first().one(b.fade.transitionend,function(){if(g.hasClass("fade-trigger")){return}g.hide();i()});setTimeout(function(){g.removeClass("fade-trigger")},this.sensitivity)}else{if(f){g.stop()}g.first().fadeOut(h,i);if(g.length>1){g.not(":first").fadeOut(h)}}return g},transitions:(function(){var f=document.documentElement.style;return(typeof(f.WebkitTransition)=="string"||typeof(f.MozTransition)=="string"||typeof(f.OTransition)=="string"||typeof(f.transition)=="string")})()};b.bind_resize=function(){c(a.textarea_obj).bind("keypress.grow click.grow paste.grow",function(){setTimeout(b.resize_textarea,200)})};b.oldheight=0;b.resize_textarea=function(){var f=a.textarea_obj,g;g=f.scrollHeight>300?f.scrollHeight:300;if(g!=b.oldheight){f.style.height=g+"px";b.oldheight=g}}})(jQuery);
\ No newline at end of file
+/**
+ * PubSub
+ *
+ * A lightweight publish/subscribe implementation.
+ * Private use only!
+ */
+var PubSub, fullscreen, wptitlehint;
+
+PubSub = function() {
+	this.topics = {};
+};
+
+PubSub.prototype.subscribe = function( topic, callback ) {
+	if ( ! this.topics[ topic ] )
+		this.topics[ topic ] = [];
+
+	this.topics[ topic ].push( callback );
+	return callback;
+};
+
+PubSub.prototype.unsubscribe = function( topic, callback ) {
+	var i, l,
+		topics = this.topics[ topic ];
+
+	if ( ! topics )
+		return callback || [];
+
+	// Clear matching callbacks
+	if ( callback ) {
+		for ( i = 0, l = topics.length; i < l; i++ ) {
+			if ( callback == topics[i] )
+				topics.splice( i, 1 );
+		}
+		return callback;
+
+	// Clear all callbacks
+	} else {
+		this.topics[ topic ] = [];
+		return topics;
+	}
+};
+
+PubSub.prototype.publish = function( topic, args ) {
+	var i, l, broken,
+		topics = this.topics[ topic ];
+
+	if ( ! topics )
+		return;
+
+	args = args || [];
+
+	for ( i = 0, l = topics.length; i < l; i++ ) {
+		broken = ( topics[i].apply( null, args ) === false || broken );
+	}
+	return ! broken;
+};
+
+/**
+ * Distraction Free Writing
+ * (wp-fullscreen)
+ *
+ * Access the API globally using the fullscreen variable.
+ */
+
+(function($){
+	var api, ps, bounder, s;
+
+	// Initialize the fullscreen/api object
+	fullscreen = api = {};
+
+	// Create the PubSub (publish/subscribe) interface.
+	ps = api.pubsub = new PubSub();
+	timer = 0;
+	block = false;
+
+	s = api.settings = { // Settings
+		visible : false,
+		mode : 'tinymce',
+		editor_id : 'content',
+		title_id : '',
+		timer : 0,
+		toolbar_shown : false
+	}
+
+	/**
+	 * Bounder
+	 *
+	 * Creates a function that publishes start/stop topics.
+	 * Used to throttle events.
+	 */
+	bounder = api.bounder = function( start, stop, delay, e ) {
+		var y, top;
+
+		delay = delay || 1250;
+
+		if ( e ) {
+			y = e.pageY || e.clientY || e.offsetY;
+			top = $(document).scrollTop();
+
+			if ( !e.isDefaultPrevented ) // test if e ic jQuery normalized
+				y = 135 + y;
+
+			if ( y - top > 120 )
+				return;
+		}
+
+		if ( block )
+			return;
+
+		block = true;
+
+		setTimeout( function() {
+			block = false;
+		}, 400 );
+
+		if ( s.timer )
+			clearTimeout( s.timer );
+		else
+			ps.publish( start );
+
+		function timed() {
+			ps.publish( stop );
+			s.timer = 0;
+		}
+
+		s.timer = setTimeout( timed, delay );
+	};
+
+	/**
+	 * on()
+	 *
+	 * Turns fullscreen on.
+	 *
+	 * @param string mode Optional. Switch to the given mode before opening.
+	 */
+	api.on = function() {
+		if ( s.visible )
+			return;
+
+		// Settings can be added or changed by defining "wp_fullscreen_settings" JS object.
+		if ( typeof(wp_fullscreen_settings) == 'object' )
+			$.extend( s, wp_fullscreen_settings );
+
+		s.editor_id = wpActiveEditor || 'content';
+
+		if ( $('input#title').length && s.editor_id == 'content' )
+			s.title_id = 'title';
+		else if ( $('input#' + s.editor_id + '-title').length ) // the title input field should have [editor_id]-title HTML ID to be auto detected
+			s.title_id = s.editor_id + '-title';
+		else
+			$('#wp-fullscreen-title, #wp-fullscreen-title-prompt-text').hide();
+
+		s.mode = $('#' + s.editor_id).is(':hidden') ? 'tinymce' : 'html';
+		s.qt_canvas = $('#' + s.editor_id).get(0);
+
+		if ( ! s.element )
+			api.ui.init();
+
+		s.is_mce_on = s.has_tinymce && typeof( tinyMCE.get(s.editor_id) ) != 'undefined';
+
+		api.ui.fade( 'show', 'showing', 'shown' );
+	};
+
+	/**
+	 * off()
+	 *
+	 * Turns fullscreen off.
+	 */
+	api.off = function() {
+		if ( ! s.visible )
+			return;
+
+		api.ui.fade( 'hide', 'hiding', 'hidden' );
+	};
+
+	/**
+	 * switchmode()
+	 *
+	 * @return string - The current mode.
+	 *
+	 * @param string to - The fullscreen mode to switch to.
+	 * @event switchMode
+	 * @eventparam string to   - The new mode.
+	 * @eventparam string from - The old mode.
+	 */
+	api.switchmode = function( to ) {
+		var from = s.mode;
+
+		if ( ! to || ! s.visible || ! s.has_tinymce )
+			return from;
+
+		// Don't switch if the mode is the same.
+		if ( from == to )
+			return from;
+
+		ps.publish( 'switchMode', [ from, to ] );
+		s.mode = to;
+		ps.publish( 'switchedMode', [ from, to ] );
+
+		return to;
+	};
+
+	/**
+	 * General
+	 */
+
+	api.save = function() {
+		var hidden = $('#hiddenaction'), old = hidden.val(), spinner = $('#wp-fullscreen-save .spinner'),
+			message = $('#wp-fullscreen-save span');
+
+		spinner.show();
+		api.savecontent();
+
+		hidden.val('wp-fullscreen-save-post');
+
+		$.post( ajaxurl, $('form#post').serialize(), function(r){
+			spinner.hide();
+			message.show();
+
+			setTimeout( function(){
+				message.fadeOut(1000);
+			}, 3000 );
+
+			if ( r.last_edited )
+				$('#wp-fullscreen-save input').attr( 'title',  r.last_edited );
+
+		}, 'json');
+
+		hidden.val(old);
+	}
+
+	api.savecontent = function() {
+		var ed, content;
+
+		if ( s.title_id )
+			$('#' + s.title_id).val( $('#wp-fullscreen-title').val() );
+
+		if ( s.mode === 'tinymce' && (ed = tinyMCE.get('wp_mce_fullscreen')) ) {
+			content = ed.save();
+		} else {
+			content = $('#wp_mce_fullscreen').val();
+		}
+
+		$('#' + s.editor_id).val( content );
+		$(document).triggerHandler('wpcountwords', [ content ]);
+	}
+
+	set_title_hint = function( title ) {
+		if ( ! title.val().length )
+			title.siblings('label').css( 'visibility', '' );
+		else
+			title.siblings('label').css( 'visibility', 'hidden' );
+	}
+
+	api.dfw_width = function(n) {
+		var el = $('#wp-fullscreen-wrap'), w = el.width();
+
+		if ( !n ) { // reset to theme width
+			el.width( $('#wp-fullscreen-central-toolbar').width() );
+			deleteUserSetting('dfw_width');
+			return;
+		}
+
+		w = n + w;
+
+		if ( w < 200 || w > 1200 ) // sanity check
+			return;
+
+		el.width( w );
+		setUserSetting('dfw_width', w);
+	}
+
+	ps.subscribe( 'showToolbar', function() {
+		s.toolbars.removeClass('fade-1000').addClass('fade-300');
+		api.fade.In( s.toolbars, 300, function(){ ps.publish('toolbarShown'); }, true );
+		$('#wp-fullscreen-body').addClass('wp-fullscreen-focus');
+		s.toolbar_shown = true;
+	});
+
+	ps.subscribe( 'hideToolbar', function() {
+		s.toolbars.removeClass('fade-300').addClass('fade-1000');
+		api.fade.Out( s.toolbars, 1000, function(){ ps.publish('toolbarHidden'); }, true );
+		$('#wp-fullscreen-body').removeClass('wp-fullscreen-focus');
+	});
+
+	ps.subscribe( 'toolbarShown', function() {
+		s.toolbars.removeClass('fade-300');
+	});
+
+	ps.subscribe( 'toolbarHidden', function() {
+		s.toolbars.removeClass('fade-1000');
+		s.toolbar_shown = false;
+	});
+
+	ps.subscribe( 'show', function() { // This event occurs before the overlay blocks the UI.
+		var title;
+
+		if ( s.title_id ) {
+			title = $('#wp-fullscreen-title').val( $('#' + s.title_id).val() );
+			set_title_hint( title );
+		}
+
+		$('#wp-fullscreen-save input').attr( 'title',  $('#last-edit').text() );
+
+		s.textarea_obj.value = s.qt_canvas.value;
+
+		if ( s.has_tinymce && s.mode === 'tinymce' )
+			tinyMCE.execCommand('wpFullScreenInit');
+
+		s.orig_y = $(window).scrollTop();
+	});
+
+	ps.subscribe( 'showing', function() { // This event occurs while the DFW overlay blocks the UI.
+		$( document.body ).addClass( 'fullscreen-active' );
+		api.refresh_buttons();
+
+		$( document ).bind( 'mousemove.fullscreen', function(e) { bounder( 'showToolbar', 'hideToolbar', 2000, e ); } );
+		bounder( 'showToolbar', 'hideToolbar', 2000 );
+
+		api.bind_resize();
+		setTimeout( api.resize_textarea, 200 );
+
+		// scroll to top so the user is not disoriented
+		scrollTo(0, 0);
+
+		// needed it for IE7 and compat mode
+		$('#wpadminbar').hide();
+	});
+
+	ps.subscribe( 'shown', function() { // This event occurs after the DFW overlay is shown
+		var interim_init;
+
+		s.visible = true;
+
+		// init the standard TinyMCE instance if missing
+		if ( s.has_tinymce && ! s.is_mce_on ) {
+
+			interim_init = function(mce, ed) {
+				var el = ed.getElement(), old_val = el.value, settings = tinyMCEPreInit.mceInit[s.editor_id];
+
+				if ( settings && settings.wpautop && typeof(switchEditors) != 'undefined' )
+					el.value = switchEditors.wpautop( el.value );
+
+				ed.onInit.add(function(ed) {
+					ed.hide();
+					ed.getElement().value = old_val;
+					tinymce.onAddEditor.remove(interim_init);
+				});
+			};
+
+			tinymce.onAddEditor.add(interim_init);
+			tinyMCE.init(tinyMCEPreInit.mceInit[s.editor_id]);
+
+			s.is_mce_on = true;
+		}
+
+		wpActiveEditor = 'wp_mce_fullscreen';
+	});
+
+	ps.subscribe( 'hide', function() { // This event occurs before the overlay blocks DFW.
+		var htmled_is_hidden = $('#' + s.editor_id).is(':hidden');
+		// Make sure the correct editor is displaying.
+		if ( s.has_tinymce && s.mode === 'tinymce' && !htmled_is_hidden ) {
+			switchEditors.go(s.editor_id, 'tmce');
+		} else if ( s.mode === 'html' && htmled_is_hidden ) {
+			switchEditors.go(s.editor_id, 'html');
+		}
+
+		// Save content must be after switchEditors or content will be overwritten. See #17229.
+		api.savecontent();
+
+		$( document ).unbind( '.fullscreen' );
+		$(s.textarea_obj).unbind('.grow');
+
+		if ( s.has_tinymce && s.mode === 'tinymce' )
+			tinyMCE.execCommand('wpFullScreenSave');
+
+		if ( s.title_id )
+			set_title_hint( $('#' + s.title_id) );
+
+		s.qt_canvas.value = s.textarea_obj.value;
+	});
+
+	ps.subscribe( 'hiding', function() { // This event occurs while the overlay blocks the DFW UI.
+
+		$( document.body ).removeClass( 'fullscreen-active' );
+		scrollTo(0, s.orig_y);
+		$('#wpadminbar').show();
+	});
+
+	ps.subscribe( 'hidden', function() { // This event occurs after DFW is removed.
+		s.visible = false;
+		$('#wp_mce_fullscreen, #wp-fullscreen-title').removeAttr('style');
+
+		if ( s.has_tinymce && s.is_mce_on )
+			tinyMCE.execCommand('wpFullScreenClose');
+
+		s.textarea_obj.value = '';
+		api.oldheight = 0;
+		wpActiveEditor = s.editor_id;
+	});
+
+	ps.subscribe( 'switchMode', function( from, to ) {
+		var ed;
+
+		if ( !s.has_tinymce || !s.is_mce_on )
+			return;
+
+		ed = tinyMCE.get('wp_mce_fullscreen');
+
+		if ( from === 'html' && to === 'tinymce' ) {
+
+			if ( tinyMCE.get(s.editor_id).getParam('wpautop') && typeof(switchEditors) != 'undefined' )
+				s.textarea_obj.value = switchEditors.wpautop( s.textarea_obj.value );
+
+			if ( 'undefined' == typeof(ed) )
+				tinyMCE.execCommand('wpFullScreenInit');
+			else
+				ed.show();
+
+		} else if ( from === 'tinymce' && to === 'html' ) {
+			if ( ed )
+				ed.hide();
+		}
+	});
+
+	ps.subscribe( 'switchedMode', function( from, to ) {
+		api.refresh_buttons(true);
+
+		if ( to === 'html' )
+			setTimeout( api.resize_textarea, 200 );
+	});
+
+	/**
+	 * Buttons
+	 */
+	api.b = function() {
+		if ( s.has_tinymce && 'tinymce' === s.mode )
+			tinyMCE.execCommand('Bold');
+	}
+
+	api.i = function() {
+		if ( s.has_tinymce && 'tinymce' === s.mode )
+			tinyMCE.execCommand('Italic');
+	}
+
+	api.ul = function() {
+		if ( s.has_tinymce && 'tinymce' === s.mode )
+			tinyMCE.execCommand('InsertUnorderedList');
+	}
+
+	api.ol = function() {
+		if ( s.has_tinymce && 'tinymce' === s.mode )
+			tinyMCE.execCommand('InsertOrderedList');
+	}
+
+	api.link = function() {
+		if ( s.has_tinymce && 'tinymce' === s.mode )
+			tinyMCE.execCommand('WP_Link');
+		else
+			wpLink.open();
+	}
+
+	api.unlink = function() {
+		if ( s.has_tinymce && 'tinymce' === s.mode )
+			tinyMCE.execCommand('unlink');
+	}
+
+	api.atd = function() {
+		if ( s.has_tinymce && 'tinymce' === s.mode )
+			tinyMCE.execCommand('mceWritingImprovementTool');
+	}
+
+	api.help = function() {
+		if ( s.has_tinymce && 'tinymce' === s.mode )
+			tinyMCE.execCommand('WP_Help');
+	}
+
+	api.blockquote = function() {
+		if ( s.has_tinymce && 'tinymce' === s.mode )
+			tinyMCE.execCommand('mceBlockQuote');
+	}
+
+	api.medialib = function() {
+		if ( typeof wp !== 'undefined' && wp.media && wp.media.editor )
+			wp.media.editor.open(s.editor_id);
+	}
+
+	api.refresh_buttons = function( fade ) {
+		fade = fade || false;
+
+		if ( s.mode === 'html' ) {
+			$('#wp-fullscreen-mode-bar').removeClass('wp-tmce-mode').addClass('wp-html-mode');
+
+			if ( fade )
+				$('#wp-fullscreen-button-bar').fadeOut( 150, function(){
+					$(this).addClass('wp-html-mode').fadeIn( 150 );
+				});
+			else
+				$('#wp-fullscreen-button-bar').addClass('wp-html-mode');
+
+		} else if ( s.mode === 'tinymce' ) {
+			$('#wp-fullscreen-mode-bar').removeClass('wp-html-mode').addClass('wp-tmce-mode');
+
+			if ( fade )
+				$('#wp-fullscreen-button-bar').fadeOut( 150, function(){
+					$(this).removeClass('wp-html-mode').fadeIn( 150 );
+				});
+			else
+				$('#wp-fullscreen-button-bar').removeClass('wp-html-mode');
+		}
+	}
+
+	/**
+	 * UI Elements
+	 *
+	 * Used for transitioning between states.
+	 */
+	api.ui = {
+		init: function() {
+			var topbar = $('#fullscreen-topbar'), txtarea = $('#wp_mce_fullscreen'), last = 0;
+
+			s.toolbars = topbar.add( $('#wp-fullscreen-status') );
+			s.element = $('#fullscreen-fader');
+			s.textarea_obj = txtarea[0];
+			s.has_tinymce = typeof(tinymce) != 'undefined';
+
+			if ( !s.has_tinymce )
+				$('#wp-fullscreen-mode-bar').hide();
+
+			if ( wptitlehint && $('#wp-fullscreen-title').length )
+				wptitlehint('wp-fullscreen-title');
+
+			$(document).keyup(function(e){
+				var c = e.keyCode || e.charCode, a, data;
+
+				if ( !fullscreen.settings.visible )
+					return true;
+
+				if ( navigator.platform && navigator.platform.indexOf('Mac') != -1 )
+					a = e.ctrlKey; // Ctrl key for Mac
+				else
+					a = e.altKey; // Alt key for Win & Linux
+
+				if ( 27 == c ) { // Esc
+					data = {
+						event: e,
+						what: 'dfw',
+						cb: fullscreen.off,
+						condition: function(){
+							if ( $('#TB_window').is(':visible') || $('.wp-dialog').is(':visible') )
+								return false;
+							return true;
+						}
+					};
+
+					if ( ! jQuery(document).triggerHandler( 'wp_CloseOnEscape', [data] ) )
+						fullscreen.off();
+				}
+
+				if ( a && (61 == c || 107 == c || 187 == c) ) // +
+					api.dfw_width(25);
+
+				if ( a && (45 == c || 109 == c || 189 == c) ) // -
+					api.dfw_width(-25);
+
+				if ( a && 48 == c ) // 0
+					api.dfw_width(0);
+
+				return false;
+			});
+
+			// word count in Text mode
+			if ( typeof(wpWordCount) != 'undefined' ) {
+
+				txtarea.keyup( function(e) {
+					var k = e.keyCode || e.charCode;
+
+					if ( k == last )
+						return true;
+
+					if ( 13 == k || 8 == last || 46 == last )
+						$(document).triggerHandler('wpcountwords', [ txtarea.val() ]);
+
+					last = k;
+					return true;
+				});
+			}
+
+			topbar.mouseenter(function(e){
+				s.toolbars.addClass('fullscreen-make-sticky');
+				$( document ).unbind( '.fullscreen' );
+				clearTimeout( s.timer );
+				s.timer = 0;
+			}).mouseleave(function(e){
+				s.toolbars.removeClass('fullscreen-make-sticky');
+
+				if ( s.visible )
+					$( document ).bind( 'mousemove.fullscreen', function(e) { bounder( 'showToolbar', 'hideToolbar', 2000, e ); } );
+			});
+		},
+
+		fade: function( before, during, after ) {
+			if ( ! s.element )
+				api.ui.init();
+
+			// If any callback bound to before returns false, bail.
+			if ( before && ! ps.publish( before ) )
+				return;
+
+			api.fade.In( s.element, 600, function() {
+				if ( during )
+					ps.publish( during );
+
+				api.fade.Out( s.element, 600, function() {
+					if ( after )
+						ps.publish( after );
+				})
+			});
+		}
+	};
+
+	api.fade = {
+		transitionend: 'transitionend webkitTransitionEnd oTransitionEnd',
+
+		// Sensitivity to allow browsers to render the blank element before animating.
+		sensitivity: 100,
+
+		In: function( element, speed, callback, stop ) {
+
+			callback = callback || $.noop;
+			speed = speed || 400;
+			stop = stop || false;
+
+			if ( api.fade.transitions ) {
+				if ( element.is(':visible') ) {
+					element.addClass( 'fade-trigger' );
+					return element;
+				}
+
+				element.show();
+				element.first().one( this.transitionend, function() {
+					callback();
+				});
+				setTimeout( function() { element.addClass( 'fade-trigger' ); }, this.sensitivity );
+			} else {
+				if ( stop )
+					element.stop();
+
+				element.css( 'opacity', 1 );
+				element.first().fadeIn( speed, callback );
+
+				if ( element.length > 1 )
+					element.not(':first').fadeIn( speed );
+			}
+
+			return element;
+		},
+
+		Out: function( element, speed, callback, stop ) {
+
+			callback = callback || $.noop;
+			speed = speed || 400;
+			stop = stop || false;
+
+			if ( ! element.is(':visible') )
+				return element;
+
+			if ( api.fade.transitions ) {
+				element.first().one( api.fade.transitionend, function() {
+					if ( element.hasClass('fade-trigger') )
+						return;
+
+					element.hide();
+					callback();
+				});
+				setTimeout( function() { element.removeClass( 'fade-trigger' ); }, this.sensitivity );
+			} else {
+				if ( stop )
+					element.stop();
+
+				element.first().fadeOut( speed, callback );
+
+				if ( element.length > 1 )
+					element.not(':first').fadeOut( speed );
+			}
+
+			return element;
+		},
+
+		transitions: (function() { // Check if the browser supports CSS 3.0 transitions
+			var s = document.documentElement.style;
+
+			return ( typeof ( s.WebkitTransition ) == 'string' ||
+				typeof ( s.MozTransition ) == 'string' ||
+				typeof ( s.OTransition ) == 'string' ||
+				typeof ( s.transition ) == 'string' );
+		})()
+	};
+
+	/**
+	 * Resize API
+	 *
+	 * Automatically updates textarea height.
+	 */
+
+	api.bind_resize = function() {
+		$(s.textarea_obj).bind('keypress.grow click.grow paste.grow', function(){
+			setTimeout( api.resize_textarea, 200 );
+		});
+	}
+
+	api.oldheight = 0;
+	api.resize_textarea = function() {
+		var txt = s.textarea_obj, newheight;
+
+		newheight = txt.scrollHeight > 300 ? txt.scrollHeight : 300;
+
+		if ( newheight != api.oldheight ) {
+			txt.style.height = newheight + 'px';
+			api.oldheight = newheight;
+		}
+	};
+
+})(jQuery);
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-admin/js/wp-fullscreen.min.js	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,1 @@
+var PubSub,fullscreen,wptitlehint;PubSub=function(){this.topics={}};PubSub.prototype.subscribe=function(a,b){if(!this.topics[a]){this.topics[a]=[]}this.topics[a].push(b);return b};PubSub.prototype.unsubscribe=function(b,e){var c,a,d=this.topics[b];if(!d){return e||[]}if(e){for(c=0,a=d.length;c<a;c++){if(e==d[c]){d.splice(c,1)}}return e}else{this.topics[b]=[];return d}};PubSub.prototype.publish=function(c,b){var d,a,e,f=this.topics[c];if(!f){return}b=b||[];for(d=0,a=f.length;d<a;d++){e=(f[d].apply(null,b)===false||e)}return !e};(function(c){var b,e,d,a;fullscreen=b={};e=b.pubsub=new PubSub();timer=0;block=false;a=b.settings={visible:false,mode:"tinymce",editor_id:"content",title_id:"",timer:0,toolbar_shown:false};d=b.bounder=function(l,h,g,j){var k,i;g=g||1250;if(j){k=j.pageY||j.clientY||j.offsetY;i=c(document).scrollTop();if(!j.isDefaultPrevented){k=135+k}if(k-i>120){return}}if(block){return}block=true;setTimeout(function(){block=false},400);if(a.timer){clearTimeout(a.timer)}else{e.publish(l)}function f(){e.publish(h);a.timer=0}a.timer=setTimeout(f,g)};b.on=function(){if(a.visible){return}if(typeof(wp_fullscreen_settings)=="object"){c.extend(a,wp_fullscreen_settings)}a.editor_id=wpActiveEditor||"content";if(c("input#title").length&&a.editor_id=="content"){a.title_id="title"}else{if(c("input#"+a.editor_id+"-title").length){a.title_id=a.editor_id+"-title"}else{c("#wp-fullscreen-title, #wp-fullscreen-title-prompt-text").hide()}}a.mode=c("#"+a.editor_id).is(":hidden")?"tinymce":"html";a.qt_canvas=c("#"+a.editor_id).get(0);if(!a.element){b.ui.init()}a.is_mce_on=a.has_tinymce&&typeof(tinyMCE.get(a.editor_id))!="undefined";b.ui.fade("show","showing","shown")};b.off=function(){if(!a.visible){return}b.ui.fade("hide","hiding","hidden")};b.switchmode=function(g){var f=a.mode;if(!g||!a.visible||!a.has_tinymce){return f}if(f==g){return f}e.publish("switchMode",[f,g]);a.mode=g;e.publish("switchedMode",[f,g]);return g};b.save=function(){var h=c("#hiddenaction"),f=h.val(),i=c("#wp-fullscreen-save .spinner"),g=c("#wp-fullscreen-save span");i.show();b.savecontent();h.val("wp-fullscreen-save-post");c.post(ajaxurl,c("form#post").serialize(),function(j){i.hide();g.show();setTimeout(function(){g.fadeOut(1000)},3000);if(j.last_edited){c("#wp-fullscreen-save input").attr("title",j.last_edited)}},"json");h.val(f)};b.savecontent=function(){var f,g;if(a.title_id){c("#"+a.title_id).val(c("#wp-fullscreen-title").val())}if(a.mode==="tinymce"&&(f=tinyMCE.get("wp_mce_fullscreen"))){g=f.save()}else{g=c("#wp_mce_fullscreen").val()}c("#"+a.editor_id).val(g);c(document).triggerHandler("wpcountwords",[g])};set_title_hint=function(f){if(!f.val().length){f.siblings("label").css("visibility","")}else{f.siblings("label").css("visibility","hidden")}};b.dfw_width=function(h){var g=c("#wp-fullscreen-wrap"),f=g.width();if(!h){g.width(c("#wp-fullscreen-central-toolbar").width());deleteUserSetting("dfw_width");return}f=h+f;if(f<200||f>1200){return}g.width(f);setUserSetting("dfw_width",f)};e.subscribe("showToolbar",function(){a.toolbars.removeClass("fade-1000").addClass("fade-300");b.fade.In(a.toolbars,300,function(){e.publish("toolbarShown")},true);c("#wp-fullscreen-body").addClass("wp-fullscreen-focus");a.toolbar_shown=true});e.subscribe("hideToolbar",function(){a.toolbars.removeClass("fade-300").addClass("fade-1000");b.fade.Out(a.toolbars,1000,function(){e.publish("toolbarHidden")},true);c("#wp-fullscreen-body").removeClass("wp-fullscreen-focus")});e.subscribe("toolbarShown",function(){a.toolbars.removeClass("fade-300")});e.subscribe("toolbarHidden",function(){a.toolbars.removeClass("fade-1000");a.toolbar_shown=false});e.subscribe("show",function(){var f;if(a.title_id){f=c("#wp-fullscreen-title").val(c("#"+a.title_id).val());set_title_hint(f)}c("#wp-fullscreen-save input").attr("title",c("#last-edit").text());a.textarea_obj.value=a.qt_canvas.value;if(a.has_tinymce&&a.mode==="tinymce"){tinyMCE.execCommand("wpFullScreenInit")}a.orig_y=c(window).scrollTop()});e.subscribe("showing",function(){c(document.body).addClass("fullscreen-active");b.refresh_buttons();c(document).bind("mousemove.fullscreen",function(f){d("showToolbar","hideToolbar",2000,f)});d("showToolbar","hideToolbar",2000);b.bind_resize();setTimeout(b.resize_textarea,200);scrollTo(0,0);c("#wpadminbar").hide()});e.subscribe("shown",function(){var f;a.visible=true;if(a.has_tinymce&&!a.is_mce_on){f=function(g,h){var k=h.getElement(),i=k.value,j=tinyMCEPreInit.mceInit[a.editor_id];if(j&&j.wpautop&&typeof(switchEditors)!="undefined"){k.value=switchEditors.wpautop(k.value)}h.onInit.add(function(l){l.hide();l.getElement().value=i;tinymce.onAddEditor.remove(f)})};tinymce.onAddEditor.add(f);tinyMCE.init(tinyMCEPreInit.mceInit[a.editor_id]);a.is_mce_on=true}wpActiveEditor="wp_mce_fullscreen"});e.subscribe("hide",function(){var f=c("#"+a.editor_id).is(":hidden");if(a.has_tinymce&&a.mode==="tinymce"&&!f){switchEditors.go(a.editor_id,"tmce")}else{if(a.mode==="html"&&f){switchEditors.go(a.editor_id,"html")}}b.savecontent();c(document).unbind(".fullscreen");c(a.textarea_obj).unbind(".grow");if(a.has_tinymce&&a.mode==="tinymce"){tinyMCE.execCommand("wpFullScreenSave")}if(a.title_id){set_title_hint(c("#"+a.title_id))}a.qt_canvas.value=a.textarea_obj.value});e.subscribe("hiding",function(){c(document.body).removeClass("fullscreen-active");scrollTo(0,a.orig_y);c("#wpadminbar").show()});e.subscribe("hidden",function(){a.visible=false;c("#wp_mce_fullscreen, #wp-fullscreen-title").removeAttr("style");if(a.has_tinymce&&a.is_mce_on){tinyMCE.execCommand("wpFullScreenClose")}a.textarea_obj.value="";b.oldheight=0;wpActiveEditor=a.editor_id});e.subscribe("switchMode",function(h,g){var f;if(!a.has_tinymce||!a.is_mce_on){return}f=tinyMCE.get("wp_mce_fullscreen");if(h==="html"&&g==="tinymce"){if(tinyMCE.get(a.editor_id).getParam("wpautop")&&typeof(switchEditors)!="undefined"){a.textarea_obj.value=switchEditors.wpautop(a.textarea_obj.value)}if("undefined"==typeof(f)){tinyMCE.execCommand("wpFullScreenInit")}else{f.show()}}else{if(h==="tinymce"&&g==="html"){if(f){f.hide()}}}});e.subscribe("switchedMode",function(g,f){b.refresh_buttons(true);if(f==="html"){setTimeout(b.resize_textarea,200)}});b.b=function(){if(a.has_tinymce&&"tinymce"===a.mode){tinyMCE.execCommand("Bold")}};b.i=function(){if(a.has_tinymce&&"tinymce"===a.mode){tinyMCE.execCommand("Italic")}};b.ul=function(){if(a.has_tinymce&&"tinymce"===a.mode){tinyMCE.execCommand("InsertUnorderedList")}};b.ol=function(){if(a.has_tinymce&&"tinymce"===a.mode){tinyMCE.execCommand("InsertOrderedList")}};b.link=function(){if(a.has_tinymce&&"tinymce"===a.mode){tinyMCE.execCommand("WP_Link")}else{wpLink.open()}};b.unlink=function(){if(a.has_tinymce&&"tinymce"===a.mode){tinyMCE.execCommand("unlink")}};b.atd=function(){if(a.has_tinymce&&"tinymce"===a.mode){tinyMCE.execCommand("mceWritingImprovementTool")}};b.help=function(){if(a.has_tinymce&&"tinymce"===a.mode){tinyMCE.execCommand("WP_Help")}};b.blockquote=function(){if(a.has_tinymce&&"tinymce"===a.mode){tinyMCE.execCommand("mceBlockQuote")}};b.medialib=function(){if(typeof wp!=="undefined"&&wp.media&&wp.media.editor){wp.media.editor.open(a.editor_id)}};b.refresh_buttons=function(f){f=f||false;if(a.mode==="html"){c("#wp-fullscreen-mode-bar").removeClass("wp-tmce-mode").addClass("wp-html-mode");if(f){c("#wp-fullscreen-button-bar").fadeOut(150,function(){c(this).addClass("wp-html-mode").fadeIn(150)})}else{c("#wp-fullscreen-button-bar").addClass("wp-html-mode")}}else{if(a.mode==="tinymce"){c("#wp-fullscreen-mode-bar").removeClass("wp-html-mode").addClass("wp-tmce-mode");if(f){c("#wp-fullscreen-button-bar").fadeOut(150,function(){c(this).removeClass("wp-html-mode").fadeIn(150)})}else{c("#wp-fullscreen-button-bar").removeClass("wp-html-mode")}}}};b.ui={init:function(){var f=c("#fullscreen-topbar"),h=c("#wp_mce_fullscreen"),g=0;a.toolbars=f.add(c("#wp-fullscreen-status"));a.element=c("#fullscreen-fader");a.textarea_obj=h[0];a.has_tinymce=typeof(tinymce)!="undefined";if(!a.has_tinymce){c("#wp-fullscreen-mode-bar").hide()}if(wptitlehint&&c("#wp-fullscreen-title").length){wptitlehint("wp-fullscreen-title")}c(document).keyup(function(k){var l=k.keyCode||k.charCode,i,j;if(!fullscreen.settings.visible){return true}if(navigator.platform&&navigator.platform.indexOf("Mac")!=-1){i=k.ctrlKey}else{i=k.altKey}if(27==l){j={event:k,what:"dfw",cb:fullscreen.off,condition:function(){if(c("#TB_window").is(":visible")||c(".wp-dialog").is(":visible")){return false}return true}};if(!jQuery(document).triggerHandler("wp_CloseOnEscape",[j])){fullscreen.off()}}if(i&&(61==l||107==l||187==l)){b.dfw_width(25)}if(i&&(45==l||109==l||189==l)){b.dfw_width(-25)}if(i&&48==l){b.dfw_width(0)}return false});if(typeof(wpWordCount)!="undefined"){h.keyup(function(j){var i=j.keyCode||j.charCode;if(i==g){return true}if(13==i||8==g||46==g){c(document).triggerHandler("wpcountwords",[h.val()])}g=i;return true})}f.mouseenter(function(i){a.toolbars.addClass("fullscreen-make-sticky");c(document).unbind(".fullscreen");clearTimeout(a.timer);a.timer=0}).mouseleave(function(i){a.toolbars.removeClass("fullscreen-make-sticky");if(a.visible){c(document).bind("mousemove.fullscreen",function(j){d("showToolbar","hideToolbar",2000,j)})}})},fade:function(g,f,h){if(!a.element){b.ui.init()}if(g&&!e.publish(g)){return}b.fade.In(a.element,600,function(){if(f){e.publish(f)}b.fade.Out(a.element,600,function(){if(h){e.publish(h)}})})}};b.fade={transitionend:"transitionend webkitTransitionEnd oTransitionEnd",sensitivity:100,In:function(g,h,i,f){i=i||c.noop;h=h||400;f=f||false;if(b.fade.transitions){if(g.is(":visible")){g.addClass("fade-trigger");return g}g.show();g.first().one(this.transitionend,function(){i()});setTimeout(function(){g.addClass("fade-trigger")},this.sensitivity)}else{if(f){g.stop()}g.css("opacity",1);g.first().fadeIn(h,i);if(g.length>1){g.not(":first").fadeIn(h)}}return g},Out:function(g,h,i,f){i=i||c.noop;h=h||400;f=f||false;if(!g.is(":visible")){return g}if(b.fade.transitions){g.first().one(b.fade.transitionend,function(){if(g.hasClass("fade-trigger")){return}g.hide();i()});setTimeout(function(){g.removeClass("fade-trigger")},this.sensitivity)}else{if(f){g.stop()}g.first().fadeOut(h,i);if(g.length>1){g.not(":first").fadeOut(h)}}return g},transitions:(function(){var f=document.documentElement.style;return(typeof(f.WebkitTransition)=="string"||typeof(f.MozTransition)=="string"||typeof(f.OTransition)=="string"||typeof(f.transition)=="string")})()};b.bind_resize=function(){c(a.textarea_obj).bind("keypress.grow click.grow paste.grow",function(){setTimeout(b.resize_textarea,200)})};b.oldheight=0;b.resize_textarea=function(){var f=a.textarea_obj,g;g=f.scrollHeight>300?f.scrollHeight:300;if(g!=b.oldheight){f.style.height=g+"px";b.oldheight=g}}})(jQuery);
\ No newline at end of file
--- a/web/wp-admin/js/xfn.dev.js	Wed Dec 19 12:35:13 2012 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,16 +0,0 @@
-jQuery(document).ready( function($) {
-	$('#link_rel').prop('readonly', true);
-	$('#linkxfndiv input').bind('click keyup', function() {
-		var isMe = $('#me').is(':checked'), inputs = '';
-		$('input.valinp').each( function() {
-			if (isMe) {
-				$(this).prop('disabled', true).parent().addClass('disabled');
-			} else {
-				$(this).removeAttr('disabled').parent().removeClass('disabled');
-				if ( $(this).is(':checked') && $(this).val() != '')
-					inputs += $(this).val() + ' ';
-			}
-		});
-		$('#link_rel').val( (isMe) ? 'me' : inputs.substr(0,inputs.length - 1) );
-	});
-});
--- a/web/wp-admin/js/xfn.js	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-admin/js/xfn.js	Wed Dec 19 17:46:52 2012 -0800
@@ -1,1 +1,16 @@
-jQuery(document).ready(function(a){a("#link_rel").prop("readonly",true);a("#linkxfndiv input").bind("click keyup",function(){var c=a("#me").is(":checked"),b="";a("input.valinp").each(function(){if(c){a(this).prop("disabled",true).parent().addClass("disabled")}else{a(this).removeAttr("disabled").parent().removeClass("disabled");if(a(this).is(":checked")&&a(this).val()!=""){b+=a(this).val()+" "}}});a("#link_rel").val((c)?"me":b.substr(0,b.length-1))})});
\ No newline at end of file
+jQuery(document).ready( function($) {
+	$('#link_rel').prop('readonly', true);
+	$('#linkxfndiv input').bind('click keyup', function() {
+		var isMe = $('#me').is(':checked'), inputs = '';
+		$('input.valinp').each( function() {
+			if (isMe) {
+				$(this).prop('disabled', true).parent().addClass('disabled');
+			} else {
+				$(this).removeAttr('disabled').parent().removeClass('disabled');
+				if ( $(this).is(':checked') && $(this).val() != '')
+					inputs += $(this).val() + ' ';
+			}
+		});
+		$('#link_rel').val( (isMe) ? 'me' : inputs.substr(0,inputs.length - 1) );
+	});
+});
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-admin/js/xfn.min.js	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,1 @@
+jQuery(document).ready(function(a){a("#link_rel").prop("readonly",true);a("#linkxfndiv input").bind("click keyup",function(){var c=a("#me").is(":checked"),b="";a("input.valinp").each(function(){if(c){a(this).prop("disabled",true).parent().addClass("disabled")}else{a(this).removeAttr("disabled").parent().removeClass("disabled");if(a(this).is(":checked")&&a(this).val()!=""){b+=a(this).val()+" "}}});a("#link_rel").val((c)?"me":b.substr(0,b.length-1))})});
\ No newline at end of file
--- a/web/wp-admin/link.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-admin/link.php	Wed Dec 19 17:46:52 2012 -0800
@@ -15,7 +15,7 @@
 wp_reset_vars(array('action', 'cat_id', 'linkurl', 'name', 'image', 'description', 'visible', 'target', 'category', 'link_id', 'submit', 'order_by', 'links_show_cat_id', 'rating', 'rel', 'notes', 'linkcheck[]'));
 
 if ( ! current_user_can('manage_links') )
-	wp_die( __('You do not have sufficient permissions to edit the links for this site.') );
+	wp_link_manager_disabled_message();
 
 if ( !empty($_POST['deletebookmarks']) )
 	$action = 'deletebookmarks';
--- a/web/wp-admin/load-scripts.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-admin/load-scripts.php	Wed Dec 19 17:46:52 2012 -0800
@@ -114,7 +114,11 @@
 	return @file_get_contents($path);
 }
 
-$load = preg_replace( '/[^a-z0-9,_-]+/i', '', $_GET['load'] );
+$load = $_GET['load'];
+if ( is_array( $load ) )
+	$load = implode( '', $load );
+
+$load = preg_replace( '/[^a-z0-9,_-]+/i', '', $load );
 $load = explode(',', $load);
 
 if ( empty($load) )
@@ -125,7 +129,7 @@
 
 $compress = ( isset($_GET['c']) && $_GET['c'] );
 $force_gzip = ( $compress && 'gzip' == $_GET['c'] );
-$expires_offset = 31536000;
+$expires_offset = 31536000; // 1 year
 $out = '';
 
 $wp_scripts = new WP_Scripts();
--- a/web/wp-admin/load-styles.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-admin/load-styles.php	Wed Dec 19 17:46:52 2012 -0800
@@ -104,7 +104,7 @@
 $compress = ( isset($_GET['c']) && $_GET['c'] );
 $force_gzip = ( $compress && 'gzip' == $_GET['c'] );
 $rtl = ( isset($_GET['dir']) && 'rtl' == $_GET['dir'] );
-$expires_offset = 31536000;
+$expires_offset = 31536000; // 1 year
 $out = '';
 
 $wp_styles = new WP_Styles();
@@ -120,7 +120,7 @@
 	$content = get_file($path) . "\n";
 
 	if ( $rtl && isset($style->extra['rtl']) && $style->extra['rtl'] ) {
-		$rtl_path = is_bool($style->extra['rtl']) ? str_replace( '.css', '-rtl.css', $path ) : ABSPATH . $style->extra['rtl'];
+		$rtl_path = is_bool($style->extra['rtl']) ? str_replace( '.min.css', '-rtl.min.css', $path ) : ABSPATH . $style->extra['rtl'];
 		$content .= get_file($rtl_path) . "\n";
 	}
 
--- a/web/wp-admin/maint/repair.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-admin/maint/repair.php	Wed Dec 19 17:46:52 2012 -0800
@@ -16,10 +16,12 @@
 <head>
 	<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 	<title><?php _e( 'WordPress &rsaquo; Database Repair' ); ?></title>
-	<?php wp_admin_css( 'install', true ); ?>
+	<?php
+	wp_admin_css( 'install', true );
+	?>
 </head>
-<body>
-<h1 id="logo"><img alt="WordPress" src="../images/wordpress-logo.png?ver=20120216" /></h1>
+<body class="wp-core-ui">
+<h1 id="logo"><a href="<?php esc_attr_e( 'http://wordpress.org/' ); ?>"><?php _e( 'WordPress' ); ?></a></h1>
 
 <?php
 
@@ -102,9 +104,9 @@
 	else
 		echo '<p>' . __( 'WordPress can automatically look for some common database problems and repair them. Repairing can take a while, so please be patient.' ) . '</p>';
 ?>
-	<p class="step"><a class="button" href="repair.php?repair=1"><?php _e( 'Repair Database' ); ?></a></p>
+	<p class="step"><a class="button button-large" href="repair.php?repair=1"><?php _e( 'Repair Database' ); ?></a></p>
 	<p><?php _e( 'WordPress can also attempt to optimize the database. This improves performance in some situations. Repairing and optimizing the database can take a long time and the database will be locked while optimizing.' ); ?></p>
-	<p class="step"><a class="button" href="repair.php?repair=2"><?php _e( 'Repair and Optimize Database' ); ?></a></p>
+	<p class="step"><a class="button button-large" href="repair.php?repair=2"><?php _e( 'Repair and Optimize Database' ); ?></a></p>
 <?php
 }
 ?>
--- a/web/wp-admin/media-new.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-admin/media-new.php	Wed Dec 19 17:46:52 2012 -0800
@@ -1,12 +1,85 @@
 <?php
 /**
- * Upload new media Administration Screen.
+ * Manage media uploaded file.
+ *
+ * There are many filters in here for media. Plugins can extend functionality
+ * by hooking into the filters.
  *
  * @package WordPress
  * @subpackage Administration
  */
 
-$_GET['inline'] = 'true';
-/** Administration bootstrap */
+/** Load WordPress Administration Bootstrap */
 require_once('./admin.php');
-require_once('./media-upload.php');
+
+if (!current_user_can('upload_files'))
+	wp_die(__('You do not have permission to upload files.'));
+
+wp_enqueue_script('plupload-handlers');
+
+$post_id = 0;
+if ( isset( $_REQUEST['post_id'] ) ) {
+	$post_id = absint( $_REQUEST['post_id'] );
+	if ( ! get_post( $post_id ) || ! current_user_can( 'edit_post', $post_id ) )
+		$post_id = 0;
+}
+
+if ( $_POST ) {
+	$location = 'upload.php';
+	if ( isset($_POST['html-upload']) && !empty($_FILES) ) {
+		check_admin_referer('media-form');
+		// Upload File button was clicked
+		$id = media_handle_upload( 'async-upload', $post_id );
+		if ( is_wp_error( $id ) )
+			$location .= '?message=3';
+	}
+	wp_redirect( admin_url( $location ) );
+	exit;
+}
+
+$title = __('Upload New Media');
+$parent_file = 'upload.php';
+
+get_current_screen()->add_help_tab( array(
+'id'		=> 'overview',
+'title'		=> __('Overview'),
+'content'	=>
+	'<p>' . __('You can upload media files here without creating a post first. This allows you to upload files to use with posts and pages later and/or to get a web link for a particular file that you can share. There are three options for uploading files:') . '</p>' .
+	'<ul>' .
+		'<li>' . __('<strong>Drag and drop</strong> your files into the area below. Multiple files are allowed.') . '</li>' .
+		'<li>' . __('Clicking <strong>Select Files</strong> opens a navigation window showing you files in your operating system. Selecting <strong>Open</strong> after clicking on the file you want activates a progress bar on the uploader screen.') . '</li>' .
+		'<li>' . __('Revert to the <strong>Browser Uploader</strong> by clicking the link below the drag and drop box.') . '</li>' .
+	'</ul>'
+) );
+get_current_screen()->set_help_sidebar(
+	'<p><strong>' . __('For more information:') . '</strong></p>' .
+	'<p>' . __('<a href="http://codex.wordpress.org/Media_Add_New_Screen" target="_blank">Documentation on Uploading Media Files</a>') . '</p>' .
+	'<p>' . __('<a href="http://wordpress.org/support/" target="_blank">Support Forums</a>') . '</p>'
+);
+
+require_once( ABSPATH . 'wp-admin/admin-header.php' );
+
+$form_class = 'media-upload-form type-form validate';
+
+if ( get_user_setting('uploader') || isset( $_GET['browser-uploader'] ) )
+	$form_class .= ' html-uploader';
+?>
+<div class="wrap">
+	<?php screen_icon(); ?>
+	<h2><?php echo esc_html( $title ); ?></h2>
+
+	<form enctype="multipart/form-data" method="post" action="<?php echo admin_url('media-new.php'); ?>" class="<?php echo $form_class; ?>" id="file-form">
+
+	<?php media_upload_form(); ?>
+
+	<script type="text/javascript">
+	var post_id = <?php echo $post_id; ?>, shortform = 3;
+	</script>
+	<input type="hidden" name="post_id" id="post_id" value="<?php echo $post_id; ?>" />
+	<?php wp_nonce_field('media-form'); ?>
+	<div id="media-items" class="hide-if-no-js"></div>
+	</form>
+</div>
+
+<?php
+include( ABSPATH . 'wp-admin/admin-footer.php' );
--- a/web/wp-admin/media-upload.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-admin/media-upload.php	Wed Dec 19 17:46:52 2012 -0800
@@ -34,94 +34,6 @@
 if ( isset($action) && $action == 'edit' && !$ID )
 	wp_die( __( 'Cheatin&#8217; uh?' ) );
 
-if ( isset($_GET['inline']) ) {
-	$errors = array();
-
-	if ( ! empty( $_REQUEST['post_id'] ) && ! current_user_can( 'edit_post' , $_REQUEST['post_id'] ) )
-		wp_die( __( 'Cheatin&#8217; uh?' ) );
-
-	if ( isset($_POST['html-upload']) && !empty($_FILES) ) {
-		check_admin_referer('media-form');
-		// Upload File button was clicked
-		$id = media_handle_upload('async-upload', $_REQUEST['post_id']);
-		unset($_FILES);
-		if ( is_wp_error($id) ) {
-			$errors['upload_error'] = $id;
-			$id = false;
-		}
-	}
-
-	if ( isset($_GET['upload-page-form']) ) {
-		$errors = array_merge($errors, (array) media_upload_form_handler());
-
-		$location = 'upload.php';
-		if ( $errors )
-			$location .= '?message=3';
-
-		wp_redirect( admin_url($location) );
-		exit;
-	}
-
-	if ( isset( $_REQUEST['post_id'] ) )
-		wp_die( __( 'Cheatin&#8217; uh?' ) );
-
-	$title = __('Upload New Media');
-	$parent_file = 'upload.php';
-	get_current_screen()->add_help_tab( array(
-	'id'		=> 'overview',
-	'title'		=> __('Overview'),
-	'content'	=>
-		'<p>' . __('You can upload media files here without creating a post first. This allows you to upload files to use with posts and pages later and/or to get a web link for a particular file that you can share. There are three options for uploading files:') . '</p>' .
-		'<ul>' .
-			'<li>' . __('<strong>Drag and drop</strong> your files into the area below. Multiple files are allowed.') . '</li>' .
-			'<li>' . __('Clicking <strong>Select Files</strong> opens a navigation window showing you files in your operating system. Selecting <strong>Open</strong> after clicking on the file you want activates a progress bar on the uploader screen.') . '</li>' .
-			'<li>' . __('Revert to the <strong>Browser Uploader</strong> by clicking the link below the drag and drop box.') . '</li>' .
-		'</ul>' .
-		'<p>' . __('Basic image editing is available after upload is complete. Make sure you click Save before leaving this screen.') . '</p>'
-	) );
-	get_current_screen()->set_help_sidebar(
-		'<p><strong>' . __('For more information:') . '</strong></p>' .
-		'<p>' . __('<a href="http://codex.wordpress.org/Media_Add_New_Screen" target="_blank">Documentation on Uploading Media Files</a>') . '</p>' .
-		'<p>' . __('<a href="http://wordpress.org/support/" target="_blank">Support Forums</a>') . '</p>'
-	);
-
-	require_once('./admin-header.php');
-
-	$form_class = 'media-upload-form type-form validate';
-
-	if ( get_user_setting('uploader') )
-		$form_class .= ' html-uploader';
-	?>
-	<div class="wrap">
-	<?php screen_icon(); ?>
-	<h2><?php echo esc_html( $title ); ?></h2>
-
-	<form enctype="multipart/form-data" method="post" action="<?php echo admin_url('media-upload.php?inline=&amp;upload-page-form='); ?>" class="<?php echo $form_class; ?>" id="file-form">
-
-	<?php media_upload_form(); ?>
-
-	<script type="text/javascript">
-	jQuery(function($){
-		var preloaded = $(".media-item.preloaded");
-		if ( preloaded.length > 0 ) {
-			preloaded.each(function(){prepareMediaItem({id:this.id.replace(/[^0-9]/g, '')},'');});
-		}
-		updateMediaForm();
-		post_id = 0;
-		shortform = 1;
-	});
-	</script>
-	<input type="hidden" name="post_id" id="post_id" value="0" />
-	<?php wp_nonce_field('media-form'); ?>
-	<div id="media-items" class="hide-if-no-js"></div>
-	<?php submit_button( __( 'Save all changes' ), 'button savebutton hidden', 'save' ); ?>
-	</form>
-	</div>
-
-<?php
-	include('./admin-footer.php');
-
-} else {
 	if ( ! empty( $_REQUEST['post_id'] ) && ! current_user_can( 'edit_post' , $_REQUEST['post_id'] ) )
 		wp_die( __( 'Cheatin&#8217; uh?' ) );
 
@@ -144,4 +56,3 @@
 		do_action("media_upload_$type");
 	else
 		do_action("media_upload_$tab");
-}
--- a/web/wp-admin/menu-header.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-admin/menu-header.php	Wed Dec 19 17:46:52 2012 -0800
@@ -41,7 +41,7 @@
 	foreach ( $menu as $key => $item ) {
 		$admin_is_parent = false;
 		$class = array();
-		$aria_attributes = 'tabindex="1"';
+		$aria_attributes = '';
 
 		if ( $first ) {
 			$class[] = 'wp-first-item';
@@ -59,7 +59,7 @@
 		} else {
 			$class[] = 'wp-not-current-submenu';
 			if ( ! empty( $submenu_items ) )
-				$aria_attributes .= ' aria-haspopup="true"';
+				$aria_attributes .= 'aria-haspopup="true"';
 		}
 
 		if ( ! empty( $item[4] ) )
@@ -68,8 +68,10 @@
 		$class = $class ? ' class="' . join( ' ', $class ) . '"' : '';
 		$id = ! empty( $item[5] ) ? ' id="' . preg_replace( '|[^a-zA-Z0-9_:.]|', '-', $item[5] ) . '"' : '';
 		$img = '';
+		// if the string 'none' (previously 'div') is passed instead of an URL, don't output the default menu image
+		// so an icon can be added to div.wp-menu-image as background with CSS.
 		if ( ! empty( $item[6] ) )
-			$img = ( 'div' === $item[6] ) ? '<br />' : '<img src="' . $item[6] . '" alt="" />';
+			$img = ( 'none' === $item[6] || 'div' === $item[6] ) ? '<br />' : '<img src="' . $item[6] . '" alt="" />';
 		$arrow = '<div class="wp-menu-arrow"><div></div></div>';
 
 		$title = wptexturize( $item[0] );
@@ -87,9 +89,9 @@
 				$menu_file = substr( $menu_file, 0, $pos );
 			if ( ! empty( $menu_hook ) || ( ('index.php' != $submenu_items[0][2]) && file_exists( WP_PLUGIN_DIR . "/$menu_file" ) ) ) {
 				$admin_is_parent = true;
-				echo "<div class='wp-menu-image'><a href='admin.php?page={$submenu_items[0][2]}' aria-label='$aria_label'>$img</a></div>$arrow<a href='admin.php?page={$submenu_items[0][2]}'$class $aria_attributes>$title</a>";
+				echo "<a href='admin.php?page={$submenu_items[0][2]}'$class $aria_attributes>$arrow<div class='wp-menu-image'>$img</div><div class='wp-menu-name'>$title</div></a>";
 			} else {
-				echo "\n\t<div class='wp-menu-image'><a href='{$submenu_items[0][2]}' aria-label='$aria_label'>$img</a></div>$arrow<a href='{$submenu_items[0][2]}'$class $aria_attributes>$title</a>";
+				echo "\n\t<a href='{$submenu_items[0][2]}'$class $aria_attributes>$arrow<div class='wp-menu-image'>$img</div><div class='wp-menu-name'>$title</div></a>";
 			}
 		} elseif ( ! empty( $item[2] ) && current_user_can( $item[1] ) ) {
 			$menu_hook = get_plugin_page_hook( $item[2], 'admin.php' );
@@ -98,21 +100,21 @@
 				$menu_file = substr( $menu_file, 0, $pos );
 			if ( ! empty( $menu_hook ) || ( ('index.php' != $item[2]) && file_exists( WP_PLUGIN_DIR . "/$menu_file" ) ) ) {
 				$admin_is_parent = true;
-				echo "\n\t<div class='wp-menu-image'><a href='admin.php?page={$item[2]}' aria-label='$aria_label'>$img</a></div>$arrow<a href='admin.php?page={$item[2]}'$class $aria_attributes>{$item[0]}</a>";
+				echo "\n\t<a href='admin.php?page={$item[2]}'$class $aria_attributes>$arrow<div class='wp-menu-image'>$img</div><div class='wp-menu-name'>{$item[0]}</div></a>";
 			} else {
-				echo "\n\t<div class='wp-menu-image'><a href='{$item[2]}' aria-label='$aria_label'>$img</a></div>$arrow<a href='{$item[2]}'$class $aria_attributes>{$item[0]}</a>";
+				echo "\n\t<a href='{$item[2]}'$class $aria_attributes>$arrow<div class='wp-menu-image'>$img</div><div class='wp-menu-name'>{$item[0]}</div></a>";
 			}
 		}
 
 		if ( ! empty( $submenu_items ) ) {
-			echo "\n\t<div class='wp-submenu'><div class='wp-submenu-wrap'>";
-			echo "<div class='wp-submenu-head'>{$item[0]}</div><ul>";
+			echo "\n\t<ul class='wp-submenu wp-submenu-wrap'>";
+			echo "<li class='wp-submenu-head'>{$item[0]}</li>";
+
 			$first = true;
 			foreach ( $submenu_items as $sub_key => $sub_item ) {
 				if ( ! current_user_can( $sub_item[1] ) )
 					continue;
 
-				$aria_attributes = 'tabindex="1"';
 				$class = array();
 				if ( $first ) {
 					$class[] = 'wp-first-item';
@@ -156,12 +158,12 @@
 						$sub_item_url = add_query_arg( array('page' => $sub_item[2]), 'admin.php' );
 
 					$sub_item_url = esc_url( $sub_item_url );
-					echo "<li$class><a href='$sub_item_url'$class $aria_attributes>$title</a></li>";
+					echo "<li$class><a href='$sub_item_url'$class>$title</a></li>";
 				} else {
-					echo "<li$class><a href='{$sub_item[2]}'$class $aria_attributes>$title</a></li>";
+					echo "<li$class><a href='{$sub_item[2]}'$class>$title</a></li>";
 				}
 			}
-			echo "</ul></div></div>";
+			echo "</ul>";
 		}
 		echo "</li>";
 	}
--- a/web/wp-admin/menu.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-admin/menu.php	Wed Dec 19 17:46:52 2012 -0800
@@ -22,7 +22,7 @@
  * @var array
  */
 
-$menu[2] = array( __('Dashboard'), 'read', 'index.php', '', 'menu-top menu-top-first menu-icon-dashboard', 'menu-dashboard', 'div' );
+$menu[2] = array( __('Dashboard'), 'read', 'index.php', '', 'menu-top menu-top-first menu-icon-dashboard', 'menu-dashboard', 'none' );
 
 $submenu[ 'index.php' ][0] = array( __('Home'), 'read', 'index.php' );
 
@@ -34,15 +34,22 @@
 	$update_data = wp_get_update_data();
 
 if ( ! is_multisite() ) {
-	$submenu[ 'index.php' ][10] = array( sprintf( __('Updates %s'), "<span class='update-plugins count-{$update_data['counts']['total']}' title='{$update_data['title']}'><span class='update-count'>" . number_format_i18n($update_data['counts']['total']) . "</span></span>" ), 'update_core',  'update-core.php');
+	if ( current_user_can( 'update_core' ) )
+		$cap = 'update_core';
+	elseif ( current_user_can( 'update_plugins' ) )
+		$cap = 'update_plugins';
+	else
+		$cap = 'update_themes';
+	$submenu[ 'index.php' ][10] = array( sprintf( __('Updates %s'), "<span class='update-plugins count-{$update_data['counts']['total']}' title='{$update_data['title']}'><span class='update-count'>" . number_format_i18n($update_data['counts']['total']) . "</span></span>" ), $cap, 'update-core.php');
+	unset( $cap );
 }
 
 $menu[4] = array( '', 'read', 'separator1', '', 'wp-menu-separator' );
 
-$menu[5] = array( __('Posts'), 'edit_posts', 'edit.php', '', 'open-if-no-js menu-top menu-icon-post', 'menu-posts', 'div' );
+$menu[5] = array( __('Posts'), 'edit_posts', 'edit.php', '', 'open-if-no-js menu-top menu-icon-post', 'menu-posts', 'none' );
 	$submenu['edit.php'][5]  = array( __('All Posts'), 'edit_posts', 'edit.php' );
 	/* translators: add new post */
-	$submenu['edit.php'][10]  = array( _x('Add New', 'post'), 'edit_posts', 'post-new.php' );
+	$submenu['edit.php'][10]  = array( _x('Add New', 'post'), get_post_type_object( 'post' )->cap->create_posts, 'post-new.php' );
 
 	$i = 15;
 	foreach ( get_taxonomies( array(), 'objects' ) as $tax ) {
@@ -53,21 +60,28 @@
 	}
 	unset($tax);
 
-$menu[10] = array( __('Media'), 'upload_files', 'upload.php', '', 'menu-top menu-icon-media', 'menu-media', 'div' );
+$menu[10] = array( __('Media'), 'upload_files', 'upload.php', '', 'menu-top menu-icon-media', 'menu-media', 'none' );
 	$submenu['upload.php'][5] = array( __('Library'), 'upload_files', 'upload.php');
 	/* translators: add new file */
 	$submenu['upload.php'][10] = array( _x('Add New', 'file'), 'upload_files', 'media-new.php');
+	foreach ( get_taxonomies_for_attachments( 'objects' ) as $tax ) {
+		if ( ! $tax->show_ui )
+			continue;
 
-$menu[15] = array( __('Links'), 'manage_links', 'link-manager.php', '', 'menu-top menu-icon-links', 'menu-links', 'div' );
+		$submenu['upload.php'][$i++] = array( esc_attr( $tax->labels->menu_name ), $tax->cap->manage_terms, 'edit-tags.php?taxonomy=' . $tax->name . '&amp;post_type=attachment' );
+	}
+	unset($tax);
+
+$menu[15] = array( __('Links'), 'manage_links', 'link-manager.php', '', 'menu-top menu-icon-links', 'menu-links', 'none' );
 	$submenu['link-manager.php'][5] = array( _x('All Links', 'admin menu'), 'manage_links', 'link-manager.php' );
 	/* translators: add new links */
 	$submenu['link-manager.php'][10] = array( _x('Add New', 'link'), 'manage_links', 'link-add.php' );
 	$submenu['link-manager.php'][15] = array( __('Link Categories'), 'manage_categories', 'edit-tags.php?taxonomy=link_category' );
 
-$menu[20] = array( __('Pages'), 'edit_pages', 'edit.php?post_type=page', '', 'menu-top menu-icon-page', 'menu-pages', 'div' );
+$menu[20] = array( __('Pages'), 'edit_pages', 'edit.php?post_type=page', '', 'menu-top menu-icon-page', 'menu-pages', 'none' );
 	$submenu['edit.php?post_type=page'][5] = array( __('All Pages'), 'edit_pages', 'edit.php?post_type=page' );
 	/* translators: add new page */
-	$submenu['edit.php?post_type=page'][10] = array( _x('Add New', 'page'), 'edit_pages', 'post-new.php?post_type=page' );
+	$submenu['edit.php?post_type=page'][10] = array( _x('Add New', 'page'), get_post_type_object( 'page' )->cap->create_posts, 'post-new.php?post_type=page' );
 	$i = 15;
 	foreach ( get_taxonomies( array(), 'objects' ) as $tax ) {
 		if ( ! $tax->show_ui || ! in_array('page', (array) $tax->object_type, true) )
@@ -79,7 +93,7 @@
 
 $awaiting_mod = wp_count_comments();
 $awaiting_mod = $awaiting_mod->moderated;
-$menu[25] = array( sprintf( __('Comments %s'), "<span class='awaiting-mod count-$awaiting_mod'><span class='pending-count'>" . number_format_i18n($awaiting_mod) . "</span></span>" ), 'edit_posts', 'edit-comments.php', '', 'menu-top menu-icon-comments', 'menu-comments', 'div' );
+$menu[25] = array( sprintf( __('Comments %s'), "<span class='awaiting-mod count-$awaiting_mod'><span class='pending-count'>" . number_format_i18n($awaiting_mod) . "</span></span>" ), 'edit_posts', 'edit-comments.php', '', 'menu-top menu-icon-comments', 'menu-comments', 'none' );
 unset($awaiting_mod);
 
 $submenu[ 'edit-comments.php' ][0] = array( __('All Comments'), 'edit_posts', 'edit-comments.php' );
@@ -97,7 +111,7 @@
 		$menu_icon   = esc_url( $ptype_obj->menu_icon );
 		$ptype_class = $ptype_for_id;
 	} else {
-		$menu_icon   = 'div';
+		$menu_icon   = 'none';
 		$ptype_class = 'post';
 	}
 
@@ -108,7 +122,7 @@
 
 	$menu[$ptype_menu_position] = array( esc_attr( $ptype_obj->labels->menu_name ), $ptype_obj->cap->edit_posts, "edit.php?post_type=$ptype", '', 'menu-top menu-icon-' . $ptype_class, 'menu-posts-' . $ptype_for_id, $menu_icon );
 	$submenu["edit.php?post_type=$ptype"][5]  = array( $ptype_obj->labels->all_items, $ptype_obj->cap->edit_posts,  "edit.php?post_type=$ptype");
-	$submenu["edit.php?post_type=$ptype"][10]  = array( $ptype_obj->labels->add_new, $ptype_obj->cap->edit_posts, "post-new.php?post_type=$ptype" );
+	$submenu["edit.php?post_type=$ptype"][10]  = array( $ptype_obj->labels->add_new, $ptype_obj->cap->create_posts, "post-new.php?post_type=$ptype" );
 
 	$i = 15;
 	foreach ( get_taxonomies( array(), 'objects' ) as $tax ) {
@@ -123,12 +137,12 @@
 $menu[59] = array( '', 'read', 'separator2', '', 'wp-menu-separator' );
 
 if ( current_user_can( 'switch_themes') ) {
-	$menu[60] = array( __('Appearance'), 'switch_themes', 'themes.php', '', 'menu-top menu-icon-appearance', 'menu-appearance', 'div' );
+	$menu[60] = array( __('Appearance'), 'switch_themes', 'themes.php', '', 'menu-top menu-icon-appearance', 'menu-appearance', 'none' );
 		$submenu['themes.php'][5]  = array(__('Themes'), 'switch_themes', 'themes.php');
 		if ( current_theme_supports( 'menus' ) || current_theme_supports( 'widgets' ) )
 			$submenu['themes.php'][10] = array(__('Menus'), 'edit_theme_options', 'nav-menus.php');
 } else {
-	$menu[60] = array( __('Appearance'), 'edit_theme_options', 'themes.php', '', 'menu-top menu-icon-appearance', 'menu-appearance', 'div' );
+	$menu[60] = array( __('Appearance'), 'edit_theme_options', 'themes.php', '', 'menu-top menu-icon-appearance', 'menu-appearance', 'none' );
 		$submenu['themes.php'][5]  = array(__('Themes'), 'edit_theme_options', 'themes.php');
 		if ( current_theme_supports( 'menus' ) || current_theme_supports( 'widgets' ) )
 			$submenu['themes.php'][10] = array(__('Menus'), 'edit_theme_options', 'nav-menus.php' );
@@ -142,31 +156,29 @@
 	add_submenu_page('themes.php', _x('Editor', 'theme editor'), _x('Editor', 'theme editor'), 'edit_themes', 'theme-editor.php');
 }
 
-$menu_perms = get_site_option( 'menu_items', array() );
-if ( ! is_multisite() || is_super_admin() || ! empty( $menu_perms['plugins'] ) ) {
+$count = '';
+if ( ! is_multisite() && current_user_can( 'update_plugins' ) ) {
 	if ( ! isset( $update_data ) )
 		$update_data = wp_get_update_data();
+	$count = "<span class='update-plugins count-{$update_data['counts']['plugins']}'><span class='plugin-count'>" . number_format_i18n($update_data['counts']['plugins']) . "</span></span>";
+}
 
-	$count = '';
-	if ( ! is_multisite() && current_user_can( 'update_plugins' ) )
-		$count = "<span class='update-plugins count-{$update_data['counts']['plugins']}'><span class='plugin-count'>" . number_format_i18n($update_data['counts']['plugins']) . "</span></span>";
+$menu[65] = array( sprintf( __('Plugins %s'), $count ), 'activate_plugins', 'plugins.php', '', 'menu-top menu-icon-plugins', 'menu-plugins', 'none' );
 
-	$menu[65] = array( sprintf( __('Plugins %s'), $count ), 'activate_plugins', 'plugins.php', '', 'menu-top menu-icon-plugins', 'menu-plugins', 'div' );
+$submenu['plugins.php'][5]  = array( __('Installed Plugins'), 'activate_plugins', 'plugins.php' );
 
-	$submenu['plugins.php'][5]  = array( __('Installed Plugins'), 'activate_plugins', 'plugins.php' );
+	if ( ! is_multisite() ) {
+		/* translators: add new plugin */
+		$submenu['plugins.php'][10] = array( _x('Add New', 'plugin'), 'install_plugins', 'plugin-install.php' );
+		$submenu['plugins.php'][15] = array( _x('Editor', 'plugin editor'), 'edit_plugins', 'plugin-editor.php' );
+	}
 
-		if ( ! is_multisite() ) {
-			/* translators: add new plugin */
-			$submenu['plugins.php'][10] = array( _x('Add New', 'plugin'), 'install_plugins', 'plugin-install.php' );
-			$submenu['plugins.php'][15] = array( _x('Editor', 'plugin editor'), 'edit_plugins', 'plugin-editor.php' );
-		}
-}
-unset($menu_perms, $update_data);
+unset( $update_data );
 
 if ( current_user_can('list_users') )
-	$menu[70] = array( __('Users'), 'list_users', 'users.php', '', 'menu-top menu-icon-users', 'menu-users', 'div' );
+	$menu[70] = array( __('Users'), 'list_users', 'users.php', '', 'menu-top menu-icon-users', 'menu-users', 'none' );
 else
-	$menu[70] = array( __('Profile'), 'read', 'profile.php', '', 'menu-top menu-icon-users', 'menu-users', 'div' );
+	$menu[70] = array( __('Profile'), 'read', 'profile.php', '', 'menu-top menu-icon-users', 'menu-users', 'none' );
 
 if ( current_user_can('list_users') ) {
 	$_wp_real_parent_file['profile.php'] = 'users.php'; // Back-compat for plugins adding submenus to profile.php.
@@ -186,7 +198,7 @@
 		$submenu['profile.php'][10] = array(__('Add New User'), 'promote_users', 'user-new.php');
 }
 
-$menu[75] = array( __('Tools'), 'edit_posts', 'tools.php', '', 'menu-top menu-icon-tools', 'menu-tools', 'div' );
+$menu[75] = array( __('Tools'), 'edit_posts', 'tools.php', '', 'menu-top menu-icon-tools', 'menu-tools', 'none' );
 	$submenu['tools.php'][5] = array( __('Available Tools'), 'edit_posts', 'tools.php' );
 	$submenu['tools.php'][10] = array( __('Import'), 'import', 'import.php' );
 	$submenu['tools.php'][15] = array( __('Export'), 'export', 'export.php' );
@@ -195,13 +207,12 @@
 	if ( ! is_multisite() && defined('WP_ALLOW_MULTISITE') && WP_ALLOW_MULTISITE )
 		$submenu['tools.php'][50] = array(__('Network Setup'), 'manage_options', 'network.php');
 
-$menu[80] = array( __('Settings'), 'manage_options', 'options-general.php', '', 'menu-top menu-icon-settings', 'menu-settings', 'div' );
+$menu[80] = array( __('Settings'), 'manage_options', 'options-general.php', '', 'menu-top menu-icon-settings', 'menu-settings', 'none' );
 	$submenu['options-general.php'][10] = array(_x('General', 'settings screen'), 'manage_options', 'options-general.php');
 	$submenu['options-general.php'][15] = array(__('Writing'), 'manage_options', 'options-writing.php');
 	$submenu['options-general.php'][20] = array(__('Reading'), 'manage_options', 'options-reading.php');
 	$submenu['options-general.php'][25] = array(__('Discussion'), 'manage_options', 'options-discussion.php');
 	$submenu['options-general.php'][30] = array(__('Media'), 'manage_options', 'options-media.php');
-	$submenu['options-general.php'][35] = array(__('Privacy'), 'manage_options', 'options-privacy.php');
 	$submenu['options-general.php'][40] = array(__('Permalinks'), 'manage_options', 'options-permalink.php');
 
 $_wp_last_utility_menu = 80; // The index of the last top-level menu in the utility menu group
--- a/web/wp-admin/ms-delete-site.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-admin/ms-delete-site.php	Wed Dec 19 17:46:52 2012 -0800
@@ -25,6 +25,8 @@
 	}
 }
 
+$blog = get_blog_details();
+
 $title = __( 'Delete Site' );
 $parent_file = 'tools.php';
 require_once( './admin-header.php' );
@@ -72,7 +74,7 @@
 	<form method="post" name="deletedirect">
 		<?php wp_nonce_field( 'delete-blog' ) ?>
 		<input type="hidden" name="action" value="deleteblog" />
-		<p><input id="confirmdelete" type="checkbox" name="confirmdelete" value="1" /> <label for="confirmdelete"><strong><?php printf( __( "I'm sure I want to permanently disable my site, and I am aware I can never get it back or use %s again." ), is_subdomain_install() ? $current_blog->domain : $current_blog->domain . $current_blog->path ); ?></strong></label></p>
+		<p><input id="confirmdelete" type="checkbox" name="confirmdelete" value="1" /> <label for="confirmdelete"><strong><?php printf( __( "I'm sure I want to permanently disable my site, and I am aware I can never get it back or use %s again." ), is_subdomain_install() ? $blog->domain : $blog->domain . $blog->path ); ?></strong></label></p>
 		<?php submit_button( __( 'Delete My Site Permanently' ) ); ?>
 	</form>
  	<?php
--- a/web/wp-admin/nav-menus.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-admin/nav-menus.php	Wed Dec 19 17:46:52 2012 -0800
@@ -22,19 +22,8 @@
 if ( ! current_user_can('edit_theme_options') )
 	wp_die( __( 'Cheatin&#8217; uh?' ) );
 
-// jQuery
-wp_enqueue_script( 'jquery-ui-draggable' );
-wp_enqueue_script( 'jquery-ui-droppable' );
-wp_enqueue_script( 'jquery-ui-sortable' );
-
-// Nav Menu functions
 wp_enqueue_script( 'nav-menu' );
 
-// Metaboxes
-wp_enqueue_script( 'common' );
-wp_enqueue_script( 'wp-lists' );
-wp_enqueue_script( 'postbox' );
-
 if ( wp_is_mobile() )
 	wp_enqueue_script( 'jquery-touch-punch' );
 
@@ -450,14 +439,14 @@
 'title'		=> __('Overview'),
 'content'	=>
 	'<p>' . __('This feature allows you to use a custom menu in place of your theme&#8217;s default menus.') . '</p>' .
-	'<p>' . __('Custom menus may contain links to pages, categories, custom links or other content types (use the Screen Options tab to decide which ones to show on the screen). You can specify a different navigation label for a menu item as well as other attributes. You can create multiple menus. If your theme includes more than one menu, you can choose which custom menu to associate with each. You can also use custom menus in conjunction with the Custom Menus widget.') . '</p>' .
-	'<p>' . __('If your theme does not support the custom menus feature yet (the default themes, Twenty Eleven and Twenty Ten, do), you can learn about adding this support by following the Documentation link to the side.') . '</p>'
+	'<p>' . __('Custom menus may contain links to pages, categories, custom links or other content types (use the Screen Options tab to decide which ones to show on the screen). You can specify a different navigation label for a menu item as well as other attributes. You can create multiple menus. If your theme includes more than one menu location, you can choose which custom menu to associate with each. You can also use custom menus in conjunction with the Custom Menus widget.') . '</p>' .
+	'<p>' . sprintf( __('If your theme does not support the custom menus feature (the default themes, %1$s and %2$s, do), you can learn about adding this support by following the Documentation link to the side.'), 'Twenty Twelve', 'Twenty Eleven' ) . '</p>'
 ) );
 get_current_screen()->add_help_tab( array(
 'id'		=> 'create-menus',
 'title'		=> __('Create Menus'),
 'content'	=>
-	'<p>' . __('To create a new custom menu, click on the + tab, give the menu a name, and click Create Menu. Next, add menu items from the appropriate boxes. You&#8217;ll be able to edit the information for each menu item, and can drag and drop to put them in order. You can also drag a menu item a little to the right to make it a submenu, to create menus with hierarchy. Drop the item into its new nested placement when the dotted rectangle target shifts over, also a little to the right. Don&#8217;t forget to click Save when you&#8217;re finished.') . '</p>'
+	'<p>' . __('To create a new custom menu, click on the + tab, give the menu a name, and click Create Menu. Next, add menu items from the appropriate boxes. You&#8217;ll be able to edit the information for each menu item, and can drag and drop to change their order. You can also drag a menu item a little to the right to make it a submenu. Don&#8217;t forget to click Save Menu when you&#8217;re finished.') . '</p>'
 ) );
 
 get_current_screen()->set_help_sidebar(
--- a/web/wp-admin/network.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-admin/network.php	Wed Dec 19 17:46:52 2012 -0800
@@ -51,8 +51,8 @@
  * @return bool Whether subdomain install is allowed
  */
 function allow_subdomain_install() {
-	$domain = preg_replace( '|https?://([^/]+)|', '$1', get_option( 'siteurl' ) );
-	if( false !== strpos( $domain, '/' ) || 'localhost' == $domain || preg_match( '|[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+|', $domain ) )
+	$domain = preg_replace( '|https?://([^/]+)|', '$1', get_option( 'home' ) );
+	if( parse_url( get_option( 'home' ), PHP_URL_PATH ) || 'localhost' == $domain || preg_match( '|^[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+$|', $domain ) )
 		return false;
 
 	return true;
@@ -106,7 +106,7 @@
 $network_help = '<p>' . __('This screen allows you to configure a network as having subdomains (<code>site1.example.com</code>) or subdirectories (<code>example.com/site1</code>). Subdomains require wildcard subdomains to be enabled in Apache and DNS records, if your host allows it.') . '</p>' .
 	'<p>' . __('Choose subdomains or subdirectories; this can only be switched afterwards by reconfiguring your install. Fill out the network details, and click install. If this does not work, you may have to add a wildcard DNS record (for subdomains) or change to another setting in Permalinks (for subdirectories).') . '</p>' .
 	'<p>' . __('The next screen for Network Setup will give you individually-generated lines of code to add to your wp-config.php and .htaccess files. Make sure the settings of your FTP client make files starting with a dot visible, so that you can find .htaccess; you may have to create this file if it really is not there. Make backup copies of those two files.') . '</p>' .
-	'<p>' . __('Add a <code>blogs.dir</code> directory under <code>/wp-content</code> and add the designated lines of code to wp-config.php (just before <code>/*...stop editing...*/</code>) and <code>.htaccess</code> (replacing the existing WordPress rules).') . '</p>' .
+	'<p>' . __('Add the designated lines of code to wp-config.php (just before <code>/*...stop editing...*/</code>) and <code>.htaccess</code> (replacing the existing WordPress rules).') . '</p>' .
 	'<p>' . __('Once you add this code and refresh your browser, multisite should be enabled. This screen, now in the Network Admin navigation menu, will keep an archive of the added code. You can toggle between Network Admin and Site Admin by clicking on the Network Admin or an individual site name under the My Sites dropdown in the Toolbar.') . '</p>' .
 	'<p>' . __('The choice of subdirectory sites is disabled if this setup is more than a month old because of permalink problems with &#8220;/blog/&#8221; from the main site. This disabling will be addressed in a future version.') . '</p>' .
 	'<p><strong>' . __('For more information:') . '</strong></p>' .
@@ -144,13 +144,6 @@
 function network_step1( $errors = false ) {
 	global $is_apache;
 
-	if ( get_option( 'siteurl' ) != get_option( 'home' ) ) {
-		echo '<div class="error"><p><strong>' . __('ERROR:') . '</strong> ' . sprintf( __( 'Your <strong>WordPress address</strong> must match your <strong>Site address</strong> before creating a Network. See <a href="%s">General Settings</a>.' ), esc_url( admin_url( 'options-general.php' ) ) ) . '</p></div>';
-		echo '</div>';
-		include ( ABSPATH . 'wp-admin/admin-footer.php' );
-		die();
-	}
-
 	if ( defined('DO_NOT_UPGRADE_GLOBAL_TABLES') ) {
 		echo '<div class="error"><p><strong>' . __('ERROR:') . '</strong> ' . __( 'The constant DO_NOT_UPGRADE_GLOBAL_TABLES cannot be defined when creating a network.' ) . '</p></div>';
 		echo '</div>';
@@ -190,9 +183,6 @@
 		$error_codes = $errors->get_error_codes();
 	}
 
-	if ( WP_CONTENT_DIR != ABSPATH . 'wp-content' )
-		echo '<div class="error"><p><strong>' . __('Warning!') . '</strong> ' . __( 'Networks may not be fully compatible with custom wp-content directories.' ) . '</p></div>';
-
 	$site_name = ( ! empty( $_POST['sitename'] ) && ! in_array( 'empty_sitename', $error_codes ) ) ? $_POST['sitename'] : sprintf( _x('%s Sites', 'Default network name' ), get_option( 'blogname' ) );
 	$admin_email = ( ! empty( $_POST['email'] ) && ! in_array( 'invalid_email', $error_codes ) ) ? $_POST['email'] : get_option( 'admin_email' );
 	?>
@@ -235,6 +225,9 @@
 <?php
 	endif;
 
+		if ( WP_CONTENT_DIR != ABSPATH . 'wp-content' && ( allow_subdirectory_install() || ! allow_subdomain_install() ) )
+			echo '<div class="error inline"><p><strong>' . __('Warning!') . '</strong> ' . __( 'Subdirectory networks may not be fully compatible with custom wp-content directories.' ) . '</p></div>';
+
 		$is_www = ( 0 === strpos( $hostname, 'www.' ) );
 		if ( $is_www ) :
 		?>
@@ -314,11 +307,20 @@
  * @since 3.0.0
  */
 function network_step2( $errors = false ) {
-	global $base, $wpdb;
-	$hostname = get_clean_basedomain();
+	global $wpdb;
 
-	if ( ! isset( $base ) )
-		$base = trailingslashit( stripslashes( dirname( dirname( $_SERVER['SCRIPT_NAME'] ) ) ) );
+	$hostname          = get_clean_basedomain();
+	$slashed_home      = trailingslashit( get_option( 'home' ) );
+	$base              = parse_url( $slashed_home, PHP_URL_PATH );
+	$wp_dir_from_root  = preg_replace( '#^' . preg_quote( $_SERVER['DOCUMENT_ROOT'], '#' ) . '#', '', ABSPATH );
+	$wp_siteurl_subdir = trailingslashit( '/' . preg_replace( '#^' . preg_quote( $base, '#' ) . '#', '', $wp_dir_from_root ) );
+	$rewrite_base      = ! empty( $wp_siteurl_subdir ) ? ltrim( trailingslashit( $wp_siteurl_subdir ), '/' ) : '';
+
+	$home_path         = get_home_path();
+
+	$location_of_wp_config = ABSPATH;
+	if ( ! file_exists( ABSPATH . 'wp-config.php' ) && file_exists( dirname( ABSPATH ) . '/wp-config.php' ) )
+		$location_of_wp_config = trailingslashit( dirname( ABSPATH ) );
 
 	// Wildcard DNS message.
 	if ( is_wp_error( $errors ) )
@@ -344,14 +346,18 @@
 		}
 	}
 
+	$subdir_match          = $subdomain_install ? '' : '([_0-9a-zA-Z-]+/)?';
+	$subdir_replacement_01 = $subdomain_install ? '' : '$1';
+	$subdir_replacement_12 = $subdomain_install ? '$1' : '$2';
+
 	if ( $_POST || ! is_multisite() ) {
 ?>
 		<h3><?php esc_html_e( 'Enabling the Network' ); ?></h3>
 		<p><?php _e( 'Complete the following steps to enable the features for creating a network of sites.' ); ?></p>
 		<div class="updated inline"><p><?php
-			if ( file_exists( ABSPATH . '.htaccess' ) )
+			if ( file_exists( $home_path . '.htaccess' ) )
 				printf( __( '<strong>Caution:</strong> We recommend you back up your existing <code>wp-config.php</code> and <code>%s</code> files.' ), '.htaccess' );
-			elseif ( file_exists( ABSPATH . 'web.config' ) )
+			elseif ( file_exists( $home_path . 'web.config' ) )
 				printf( __( '<strong>Caution:</strong> We recommend you back up your existing <code>wp-config.php</code> and <code>%s</code> files.' ), 'web.config' );
 			else
 				_e( '<strong>Caution:</strong> We recommend you back up your existing <code>wp-config.php</code> file.' );
@@ -360,26 +366,22 @@
 	}
 ?>
 		<ol>
-			<li><p><?php
-				printf( __( 'Create a <code>blogs.dir</code> directory at <code>%s/blogs.dir</code>. This directory is used to store uploaded media for your additional sites and must be writeable by the web server.' ), WP_CONTENT_DIR );
-				if ( WP_CONTENT_DIR != ABSPATH . 'wp-content' )
-					echo ' <strong>' . __('Warning:') . ' ' . __( 'Networks may not be fully compatible with custom wp-content directories.' ) . '</strong>';
-			?></p></li>
-			<li><p><?php printf( __( 'Add the following to your <code>wp-config.php</code> file in <code>%s</code> <strong>above</strong> the line reading <code>/* That&#8217;s all, stop editing! Happy blogging. */</code>:' ), ABSPATH ); ?></p>
-				<textarea class="code" readonly="readonly" cols="100" rows="7">
+			<li><p><?php printf( __( 'Add the following to your <code>wp-config.php</code> file in <code>%s</code> <strong>above</strong> the line reading <code>/* That&#8217;s all, stop editing! Happy blogging. */</code>:' ), $location_of_wp_config ); ?></p>
+				<textarea class="code" readonly="readonly" cols="100" rows="6">
 define('MULTISITE', true);
 define('SUBDOMAIN_INSTALL', <?php echo $subdomain_install ? 'true' : 'false'; ?>);
-$base = '<?php echo $base; ?>';
 define('DOMAIN_CURRENT_SITE', '<?php echo $hostname; ?>');
 define('PATH_CURRENT_SITE', '<?php echo $base; ?>');
 define('SITE_ID_CURRENT_SITE', 1);
-define('BLOG_ID_CURRENT_SITE', 1);</textarea>
+define('BLOG_ID_CURRENT_SITE', 1);
+</textarea>
 <?php
 	$keys_salts = array( 'AUTH_KEY' => '', 'SECURE_AUTH_KEY' => '', 'LOGGED_IN_KEY' => '', 'NONCE_KEY' => '', 'AUTH_SALT' => '', 'SECURE_AUTH_SALT' => '', 'LOGGED_IN_SALT' => '', 'NONCE_SALT' => '' );
 	foreach ( $keys_salts as $c => $v ) {
 		if ( defined( $c ) )
 			unset( $keys_salts[ $c ] );
 	}
+
 	if ( ! empty( $keys_salts ) ) {
 		$keys_salts_str = '';
 		$from_api = wp_remote_get( 'https://api.wordpress.org/secret-key/1.1/salt/' );
@@ -404,10 +406,13 @@
 </li>
 <?php
 	if ( iis7_supports_permalinks() ) :
+		// IIS doesn't support RewriteBase, all your RewriteBase are belong to us
+		$iis_subdir_match = ltrim( $base, '/' ) . $subdir_match;
+		$iis_rewrite_base = ltrim( $base, '/' ) . $rewrite_base;
+		$iis_subdir_replacement = $subdomain_install ? '' : '{R:1}';
 
-			if ( $subdomain_install ) {
-				$web_config_file =
-'<?xml version="1.0" encoding="UTF-8"?>
+		$web_config_file = <<<EOF
+<?xml version="1.0" encoding="UTF-8"?>
 <configuration>
     <system.webServer>
         <rewrite>
@@ -415,10 +420,18 @@
                 <rule name="WordPress Rule 1" stopProcessing="true">
                     <match url="^index\.php$" ignoreCase="false" />
                     <action type="None" />
-                </rule>
+                </rule>';
+				if ( is_multisite() && get_site_option( 'ms_files_rewriting' ) ) {
+					$web_config_file .= '
+                <rule name="WordPress Rule for Files" stopProcessing="true">
+                    <match url="^{$iis_subdir_match}files/(.+)" ignoreCase="false" />
+                    <action type="Rewrite" url="{$iis_rewrite_base}wp-includes/ms-files.php?file={R:1}" appendQueryString="false" />
+                </rule>';
+                }
+                $web_config_file .= '
                 <rule name="WordPress Rule 2" stopProcessing="true">
-                    <match url="^files/(.+)" ignoreCase="false" />
-                    <action type="Rewrite" url="wp-includes/ms-files.php?file={R:1}" appendQueryString="false" />
+                    <match url="^{$iis_subdir_match}wp-admin$" ignoreCase="false" />
+                    <action type="Redirect" url="{$iis_subdir_replacement}wp-admin/" redirectType="Permanent" />
                 </rule>
                 <rule name="WordPress Rule 3" stopProcessing="true">
                     <match url="^" ignoreCase="false" />
@@ -429,89 +442,64 @@
                     <action type="None" />
                 </rule>
                 <rule name="WordPress Rule 4" stopProcessing="true">
+                    <match url="^{$iis_subdir_match}(wp-(content|admin|includes).*)" ignoreCase="false" />
+                    <action type="Rewrite" url="{$iis_rewrite_base}{R:1}" />
+                </rule>
+                <rule name="WordPress Rule 5" stopProcessing="true">
+                    <match url="^{$iis_subdir_match}([_0-9a-zA-Z-]+/)?(.*\.php)$" ignoreCase="false" />
+                    <action type="Rewrite" url="{$iis_rewrite_base}{R:2}" />
+                </rule>
+                <rule name="WordPress Rule 6" stopProcessing="true">
                     <match url="." ignoreCase="false" />
                     <action type="Rewrite" url="index.php" />
                 </rule>
             </rules>
         </rewrite>
     </system.webServer>
-</configuration>';
-			} else {
-				$web_config_file =
-'<?xml version="1.0" encoding="UTF-8"?>
-<configuration>
-    <system.webServer>
-        <rewrite>
-            <rules>
-                <rule name="WordPress Rule 1" stopProcessing="true">
-                    <match url="^index\.php$" ignoreCase="false" />
-                    <action type="None" />
-                </rule>
-                <rule name="WordPress Rule 2" stopProcessing="true">
-                    <match url="^([_0-9a-zA-Z-]+/)?files/(.+)" ignoreCase="false" />
-                    <action type="Rewrite" url="wp-includes/ms-files.php?file={R:2}" appendQueryString="false" />
-                </rule>
-                <rule name="WordPress Rule 3" stopProcessing="true">
-                    <match url="^([_0-9a-zA-Z-]+/)?wp-admin$" ignoreCase="false" />
-                    <action type="Redirect" url="{R:1}wp-admin/" redirectType="Permanent" />
-                </rule>
-                <rule name="WordPress Rule 4" stopProcessing="true">
-                    <match url="^" ignoreCase="false" />
-                    <conditions logicalGrouping="MatchAny">
-                        <add input="{REQUEST_FILENAME}" matchType="IsFile" ignoreCase="false" />
-                        <add input="{REQUEST_FILENAME}" matchType="IsDirectory" ignoreCase="false" />
-                    </conditions>
-                    <action type="None" />
-                </rule>
-                <rule name="WordPress Rule 5" stopProcessing="true">
-                    <match url="^[_0-9a-zA-Z-]+/(wp-(content|admin|includes).*)" ignoreCase="false" />
-                    <action type="Rewrite" url="{R:1}" />
-                </rule>
-                <rule name="WordPress Rule 6" stopProcessing="true">
-                    <match url="^([_0-9a-zA-Z-]+/)?(.*\.php)$" ignoreCase="false" />
-                    <action type="Rewrite" url="{R:2}" />
-                </rule>
-                <rule name="WordPress Rule 7" stopProcessing="true">
-                    <match url="." ignoreCase="false" />
-                    <action type="Rewrite" url="index.php" />
-                </rule>
-            </rules>
-        </rewrite>
-    </system.webServer>
-</configuration>';
-			}
+</configuration>
+EOF;
+
 	?>
-		<li><p><?php printf( __( 'Add the following to your <code>web.config</code> file in <code>%s</code>, replacing other WordPress rules:' ), ABSPATH ); ?></p>
-		<textarea class="code" readonly="readonly" cols="100" rows="20">
-		<?php echo esc_textarea( $web_config_file ); ?>
+		<li><p><?php printf( __( 'Add the following to your <code>web.config</code> file in <code>%s</code>, replacing other WordPress rules:' ), $home_path ); ?></p>
+		<?php
+		if ( ! $subdomain_install && WP_CONTENT_DIR != ABSPATH . 'wp-content' )
+			echo '<p><strong>' . __('Warning:') . ' ' . __( 'Subdirectory networks may not be fully compatible with custom wp-content directories.' ) . '</strong></p>';
+		?>
+		<textarea class="code" readonly="readonly" cols="100" rows="20"><?php echo esc_textarea( $web_config_file ); ?>
 		</textarea></li>
 		</ol>
 
 	<?php else : // end iis7_supports_permalinks(). construct an htaccess file instead:
 
-		$htaccess_file = 'RewriteEngine On
-RewriteBase ' . $base . '
-RewriteRule ^index\.php$ - [L]
-
-# uploaded files
-RewriteRule ^' . ( $subdomain_install ? '' : '([_0-9a-zA-Z-]+/)?' ) . 'files/(.+) wp-includes/ms-files.php?file=$' . ( $subdomain_install ? 1 : 2 ) . ' [L]' . "\n";
-
-		if ( ! $subdomain_install )
-			$htaccess_file .= "\n# add a trailing slash to /wp-admin\n" . 'RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L]' . "\n";
+		$ms_files_rewriting = '';
+		if ( is_multisite() && get_site_option( 'ms_files_rewriting' ) ) {
+			$ms_files_rewriting = "\n# uploaded files\nRewriteRule ^";
+			$ms_files_rewriting .= $subdir_match . "files/(.+) {$rewrite_base}wp-includes/ms-files.php?file={$subdir_replacement_12} [L]" . "\n";
+		}
 
-		$htaccess_file .= "\n" . 'RewriteCond %{REQUEST_FILENAME} -f [OR]
-RewriteCond %{REQUEST_FILENAME} -d
-RewriteRule ^ - [L]';
+		$htaccess_file = <<<EOF
+RewriteEngine On
+RewriteBase {$base}
+RewriteRule ^index\.php$ - [L]
+{$ms_files_rewriting}
+# add a trailing slash to /wp-admin
+RewriteRule ^{$subdir_match}wp-admin$ {$subdir_replacement_01}wp-admin/ [R=301,L]
 
-		// @todo custom content dir.
-		if ( ! $subdomain_install )
-			$htaccess_file .= "\nRewriteRule  ^[_0-9a-zA-Z-]+/(wp-(content|admin|includes).*) $1 [L]\nRewriteRule  ^[_0-9a-zA-Z-]+/(.*\.php)$ $1 [L]";
-
-		$htaccess_file .= "\nRewriteRule . index.php [L]";
+RewriteCond %{REQUEST_FILENAME} -f [OR]
+RewriteCond %{REQUEST_FILENAME} -d
+RewriteRule ^ - [L]
+RewriteRule ^{$subdir_match}(wp-(content|admin|includes).*) {$rewrite_base}{$subdir_replacement_12} [L]
+RewriteRule ^{$subdir_match}(.*\.php)$ {$rewrite_base}$subdir_replacement_12 [L]
+RewriteRule . index.php [L]
+EOF;
 
 		?>
-		<li><p><?php printf( __( 'Add the following to your <code>.htaccess</code> file in <code>%s</code>, replacing other WordPress rules:' ), ABSPATH ); ?></p>
-		<textarea class="code" readonly="readonly" cols="100" rows="<?php echo $subdomain_install ? 11 : 16; ?>">
+		<li><p><?php printf( __( 'Add the following to your <code>.htaccess</code> file in <code>%s</code>, replacing other WordPress rules:' ), $home_path ); ?></p>
+		<?php
+		if ( ! $subdomain_install && WP_CONTENT_DIR != ABSPATH . 'wp-content' )
+			echo '<p><strong>' . __('Warning:') . ' ' . __( 'Subdirectory networks may not be fully compatible with custom wp-content directories.' ) . '</strong></p>';
+		?>
+		<textarea class="code" readonly="readonly" cols="100" rows="<?php echo substr_count( $htaccess_file, "\n" ) + 1; ?>">
 <?php echo esc_textarea( $htaccess_file ); ?></textarea></li>
 		</ol>
 
@@ -525,14 +513,12 @@
 
 if ( $_POST ) {
 
-	$base = trailingslashit( stripslashes( dirname( dirname( $_SERVER['SCRIPT_NAME'] ) ) ) );
-
 	check_admin_referer( 'install-network-1' );
 
 	require_once( ABSPATH . 'wp-admin/includes/upgrade.php' );
 	// create network tables
 	install_network();
-	$hostname = get_clean_basedomain();
+	$base              = parse_url( trailingslashit( get_option( 'home' ) ), PHP_URL_PATH );
 	$subdomain_install = allow_subdomain_install() ? !empty( $_POST['subdomain_install'] ) : false;
 	if ( ! network_domain_check() ) {
 		$result = populate_network( 1, get_clean_basedomain(), sanitize_email( $_POST['email'] ), stripslashes( $_POST['sitename'] ), $base, $subdomain_install );
--- a/web/wp-admin/network/menu.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-admin/network/menu.php	Wed Dec 19 17:46:52 2012 -0800
@@ -38,7 +38,7 @@
 	$menu[20] = array( __('Plugins'), 'manage_network_plugins', 'plugins.php', '', 'menu-top menu-icon-plugins', 'menu-plugins', 'div' );
 }
 $submenu['plugins.php'][5]  = array( __('Installed Plugins'), 'manage_network_plugins', 'plugins.php' );
-$submenu['plugins.php'][10] = array( _x('Add New', 'plugin editor'), 'install_plugins', 'plugin-install.php' );
+$submenu['plugins.php'][10] = array( _x('Add New', 'plugin'), 'install_plugins', 'plugin-install.php' );
 $submenu['plugins.php'][15] = array( _x('Editor', 'plugin editor'), 'edit_plugins', 'plugin-editor.php' );
 
 $menu[25] = array(__('Settings'), 'manage_network_options', 'settings.php', '', 'menu-top menu-icon-settings', 'menu-settings', 'div');
--- a/web/wp-admin/network/settings.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-admin/network/settings.php	Wed Dec 19 17:46:52 2012 -0800
@@ -44,53 +44,20 @@
 
 	check_admin_referer( 'siteoptions' );
 
-	if ( isset( $_POST['WPLANG'] ) && ( '' === $_POST['WPLANG'] || in_array( $_POST['WPLANG'], get_available_languages() ) ) )
-		update_site_option( 'WPLANG', $_POST['WPLANG'] );
-
-	if ( is_email( $_POST['admin_email'] ) )
-		update_site_option( 'admin_email', $_POST['admin_email'] );
-
-	$illegal_names = explode( ' ', $_POST['illegal_names'] );
-	foreach ( (array) $illegal_names as $name ) {
-		$name = trim( $name );
-		if ( $name != '' )
-			$names[] = trim( $name );
-	}
-	update_site_option( 'illegal_names', $names );
-
-	if ( $_POST['limited_email_domains'] != '' ) {
-		$limited_email_domains = str_replace( ' ', "\n", $_POST['limited_email_domains'] );
-		$limited_email_domains = explode( "\n", stripslashes( $limited_email_domains ) );
-		$limited_email = array();
-		foreach ( (array) $limited_email_domains as $domain ) {
-			$domain = trim( $domain );
-			if ( ! preg_match( '/(--|\.\.)/', $domain ) && preg_match( '|^([a-zA-Z0-9-\.])+$|', $domain ) )
-				$limited_email[] = trim( $domain );
-		}
-		update_site_option( 'limited_email_domains', $limited_email );
-	} else {
-		update_site_option( 'limited_email_domains', '' );
-	}
-
-	if ( $_POST['banned_email_domains'] != '' ) {
-		$banned_email_domains = explode( "\n", stripslashes( $_POST['banned_email_domains'] ) );
-		$banned = array();
-		foreach ( (array) $banned_email_domains as $domain ) {
-			$domain = trim( $domain );
-			if ( ! preg_match( '/(--|\.\.)/', $domain ) && preg_match( '|^([a-zA-Z0-9-\.])+$|', $domain ) )
-				$banned[] = trim( $domain );
-		}
-		update_site_option( 'banned_email_domains', $banned );
-	} else {
-		update_site_option( 'banned_email_domains', '' );
-	}
-
-	$options = array( 'registrationnotification', 'registration', 'add_new_users', 'menu_items', 'upload_space_check_disabled', 'blog_upload_space', 'upload_filetypes', 'site_name', 'first_post', 'first_page', 'first_comment', 'first_comment_url', 'first_comment_author', 'welcome_email', 'welcome_user_email', 'fileupload_maxk', 'global_terms_enabled' );
 	$checked_options = array( 'menu_items' => array(), 'registrationnotification' => 'no', 'upload_space_check_disabled' => 1, 'add_new_users' => 0 );
 	foreach ( $checked_options as $option_name => $option_unchecked_value ) {
 		if ( ! isset( $_POST[$option_name] ) )
 			$_POST[$option_name] = $option_unchecked_value;
 	}
+
+	$options = array(
+		'registrationnotification', 'registration', 'add_new_users', 'menu_items',
+		'upload_space_check_disabled', 'blog_upload_space', 'upload_filetypes', 'site_name',
+		'first_post', 'first_page', 'first_comment', 'first_comment_url', 'first_comment_author',
+		'welcome_email', 'welcome_user_email', 'fileupload_maxk', 'global_terms_enabled',
+		'illegal_names', 'limited_email_domains', 'banned_email_domains', 'WPLANG', 'admin_email',
+	);
+
 	foreach ( $options as $option_name ) {
 		if ( ! isset($_POST[$option_name]) )
 			continue;
--- a/web/wp-admin/network/site-info.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-admin/network/site-info.php	Wed Dec 19 17:46:52 2012 -0800
@@ -135,10 +135,15 @@
 			<th scope="row"><?php _e( 'Path' ) ?></th>
 			<?php if ( $is_main_site ) { ?>
 			<td><code><?php echo esc_attr( $details->path ) ?></code></td>
-			<?php } else { ?>
+			<?php
+			} else {
+				switch_to_blog( $id );
+			?>
 			<td><input name="blog[path]" type="text" id="path" value="<?php echo esc_attr( $details->path ) ?>" size="40" style='margin-bottom:5px;' />
-			<br /><input type="checkbox" style="width:20px;" name="update_home_url" value="update" <?php if ( get_blog_option( $id, 'siteurl' ) == untrailingslashit( get_blogaddress_by_id ($id ) ) || get_blog_option( $id, 'home' ) == untrailingslashit( get_blogaddress_by_id( $id ) ) ) echo 'checked="checked"'; ?> /> <?php _e( 'Update <code>siteurl</code> and <code>home</code> as well.' ); ?></td>
-			<?php } ?>
+			<br /><input type="checkbox" style="width:20px;" name="update_home_url" value="update" <?php if ( get_option( 'siteurl' ) == untrailingslashit( get_blogaddress_by_id ($id ) ) || get_option( 'home' ) == untrailingslashit( get_blogaddress_by_id( $id ) ) ) echo 'checked="checked"'; ?> /> <?php _e( 'Update <code>siteurl</code> and <code>home</code> as well.' ); ?></td>
+			<?php
+				restore_current_blog();
+			} ?>
 		</tr>
 		<tr class="form-field">
 			<th scope="row"><?php _ex( 'Registered', 'site' ) ?></th>
--- a/web/wp-admin/network/site-new.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-admin/network/site-new.php	Wed Dec 19 17:46:52 2012 -0800
@@ -62,10 +62,10 @@
 
 	if ( is_subdomain_install() ) {
 		$newdomain = $domain . '.' . preg_replace( '|^www\.|', '', $current_site->domain );
-		$path = $base;
+		$path      = $current_site->path;
 	} else {
 		$newdomain = $current_site->domain;
-		$path = $base . $domain . '/';
+		$path      = $current_site->path . $domain . '/';
 	}
 
 	$password = 'N/A';
@@ -85,7 +85,10 @@
 	if ( !is_wp_error( $id ) ) {
 		if ( !is_super_admin( $user_id ) && !get_user_option( 'primary_blog', $user_id ) )
 			update_user_option( $user_id, 'primary_blog', $id, true );
-		$content_mail = sprintf( __( "New site created by %1s\n\nAddress: %2s\nName: %3s"), $current_user->user_login , get_site_url( $id ), stripslashes( $title ) );
+		$content_mail = sprintf( __( 'New site created by %1$s
+
+Address: %2$s
+Name: %3$s' ), $current_user->user_login , get_site_url( $id ), stripslashes( $title ) );
 		wp_mail( get_site_option('admin_email'), sprintf( __( '[%s] New Site Created' ), $current_site->site_name ), $content_mail, 'From: "Site Admin" <' . get_site_option( 'admin_email' ) . '>' );
 		wpmu_welcome_notification( $id, $user_id, $password, $title, array( 'public' => 1 ) );
 		wp_redirect( add_query_arg( array( 'update' => 'added', 'id' => $id ), 'site-new.php' ) );
@@ -127,7 +130,7 @@
 			<?php } else {
 				echo $current_site->domain . $current_site->path ?><input name="blog[domain]" class="regular-text" type="text" title="<?php esc_attr_e( 'Domain' ) ?>"/>
 			<?php }
-			echo '<p>' . __( 'Only the characters a-z and 0-9 recommended.' ) . '</p>';
+			echo '<p>' . __( 'Only lowercase letters (a-z) and numbers are allowed.' ) . '</p>';
 			?>
 			</td>
 		</tr>
--- a/web/wp-admin/network/site-themes.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-admin/network/site-themes.php	Wed Dec 19 17:46:52 2012 -0800
@@ -13,11 +13,6 @@
 if ( ! is_multisite() )
 	wp_die( __( 'Multisite support is not enabled.' ) );
 
-$menu_perms = get_site_option( 'menu_items', array() );
-
-if ( empty( $menu_perms['themes'] ) && ! is_super_admin() )
-	wp_die( __( 'Cheatin&#8217; uh?' ) );
-
 if ( ! current_user_can( 'manage_sites' ) )
 	wp_die( __( 'You do not have sufficient permissions to manage themes for this site.' ) );
 
@@ -177,7 +172,6 @@
 <?php $wp_list_table->views(); ?>
 
 <form method="post" action="site-themes.php?action=update-site">
-	<?php wp_nonce_field( 'edit-site' ); ?>
 	<input type="hidden" name="id" value="<?php echo esc_attr( $id ) ?>" />
 
 <?php $wp_list_table->display(); ?>
--- a/web/wp-admin/network/site-users.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-admin/network/site-users.php	Wed Dec 19 17:46:52 2012 -0800
@@ -45,33 +45,26 @@
 	wp_die( __('Invalid site ID.') );
 
 $details = get_blog_details( $id );
-if ( !can_edit_network( $details->site_id ) )
+if ( ! can_edit_network( $details->site_id ) )
 	wp_die( __( 'You do not have permission to access this page.' ) );
 
 $is_main_site = is_main_site( $id );
 
-// get blog prefix
-$blog_prefix = $wpdb->get_blog_prefix( $id );
+switch_to_blog( $id );
 
-// @todo This is a hack. Eventually, add API to WP_Roles allowing retrieval of roles for a particular blog.
-if ( ! empty($wp_roles->use_db) ) {
-	$editblog_roles = get_blog_option( $id, "{$blog_prefix}user_roles" );
-} else {
-	// Roles are stored in memory, not the DB.
-	$editblog_roles = $wp_roles->roles;
-}
-$default_role = get_blog_option( $id, 'default_role' );
+$editblog_roles = $wp_roles->roles;
+
+$default_role = get_option( 'default_role' );
 
 $action = $wp_list_table->current_action();
 
 if ( $action ) {
-	switch_to_blog( $id );
 
 	switch ( $action ) {
 		case 'newuser':
 			check_admin_referer( 'add-user', '_wpnonce_add-new-user' );
 			$user = $_POST['user'];
-			if ( !is_array( $_POST['user'] ) || empty( $user['username'] ) || empty( $user['email'] ) ) {
+			if ( ! is_array( $_POST['user'] ) || empty( $user['username'] ) || empty( $user['email'] ) ) {
 				$update = 'err_new';
 			} else {
 				$password = wp_generate_password( 12, false);
@@ -94,6 +87,7 @@
 				$newuser = $_POST['newuser'];
 				$userid = $wpdb->get_var( $wpdb->prepare( "SELECT ID FROM " . $wpdb->users . " WHERE user_login = %s", $newuser ) );
 				if ( $userid ) {
+					$blog_prefix = $wpdb->get_blog_prefix( $id );
 					$user = $wpdb->get_var( "SELECT user_id FROM " . $wpdb->usermeta . " WHERE user_id='$userid' AND meta_key='{$blog_prefix}capabilities'" );
 					if ( $user == false )
 						add_user_to_blog( $id, $userid, $_POST['new_role'] );
@@ -108,7 +102,7 @@
 			break;
 
 		case 'remove':
-			if ( !current_user_can('remove_users')  )
+			if ( ! current_user_can( 'remove_users' )  )
 				die(__('You can&#8217;t remove users.'));
 			check_admin_referer( 'bulk-users' );
 
@@ -143,7 +137,7 @@
 					if ( !is_user_member_of_blog( $user_id ) )
 						wp_die(__('Cheatin&#8217; uh?'));
 
-					$user = new WP_User( $user_id );
+					$user = get_userdata( $user_id );
 					$user->set_role( $_REQUEST['new_role'] );
 				}
 			} else {
@@ -152,11 +146,12 @@
 			break;
 	}
 
-	restore_current_blog();
 	wp_safe_redirect( add_query_arg( 'update', $update, $referer ) );
 	exit();
 }
 
+restore_current_blog();
+
 if ( isset( $_GET['action'] ) && 'update-site' == $_GET['action'] ) {
 	wp_safe_redirect( $referer );
 	exit();
@@ -244,7 +239,6 @@
 <?php $wp_list_table->views(); ?>
 
 <form method="post" action="site-users.php?action=update-site">
-	<?php wp_nonce_field( 'edit-site' ); ?>
 	<input type="hidden" name="id" value="<?php echo esc_attr( $id ) ?>" />
 
 <?php $wp_list_table->display(); ?>
@@ -254,15 +248,8 @@
 <?php do_action( 'network_site_users_after_list_table', '' );?>
 
 <?php if ( current_user_can( 'promote_users' ) && apply_filters( 'show_network_site_users_add_existing_form', true ) ) : ?>
-<h4 id="add-user"><?php _e('Add User to This Site') ?></h4>
-	<?php if ( current_user_can( 'create_users' ) && apply_filters( 'show_network_site_users_add_new_form', true ) ) : ?>
-<p><?php _e( 'You may add from existing network users, or set up a new user to add to this site.' ); ?></p>
-	<?php else : ?>
-<p><?php _e( 'You may add from existing network users to this site.' ); ?></p>
-	<?php endif; ?>
-<h5 id="add-existing-user"><?php _e('Add Existing User') ?></h5>
+<h3 id="add-existing-user"><?php _e( 'Add Existing User' ); ?></h3>
 <form action="site-users.php?action=adduser" id="adduser" method="post">
-	<?php wp_nonce_field( 'edit-site' ); ?>
 	<input type="hidden" name="id" value="<?php echo esc_attr( $id ) ?>" />
 	<table class="form-table">
 		<tr>
@@ -270,28 +257,26 @@
 			<td><input type="text" class="regular-text wp-suggest-user" name="newuser" id="newuser" /></td>
 		</tr>
 		<tr>
-			<th scope="row"><?php _e( 'Role'); ?></th>
+			<th scope="row"><?php _e( 'Role' ); ?></th>
 			<td><select name="new_role" id="new_role_0">
 			<?php
 			reset( $editblog_roles );
-			foreach ( $editblog_roles as $role => $role_assoc ){
+			foreach ( $editblog_roles as $role => $role_assoc ) {
 				$name = translate_user_role( $role_assoc['name'] );
-				$selected = ( $role == $default_role ) ? 'selected="selected"' : '';
-				echo '<option ' . $selected . ' value="' . esc_attr( $role ) . '">' . esc_html( $name ) . '</option>';
+				echo '<option ' . selected( $default_role, $role, false ) . ' value="' . esc_attr( $role ) . '">' . esc_html( $name ) . '</option>';
 			}
 			?>
 			</select></td>
 		</tr>
 	</table>
 	<?php wp_nonce_field( 'add-user', '_wpnonce_add-user' ) ?>
-	<?php submit_button( __('Add User'), 'primary', 'add-user', false, array( 'id' => 'submit-add-existing-user' ) ); ?>
+	<?php submit_button( __( 'Add User' ), 'primary', 'add-user', true, array( 'id' => 'submit-add-existing-user' ) ); ?>
 </form>
 <?php endif; ?>
 
 <?php if ( current_user_can( 'create_users' ) && apply_filters( 'show_network_site_users_add_new_form', true ) ) : ?>
-<h5 id="add-new-user"><?php _e('Add New User') ?></h5>
+<h3 id="add-new-user"><?php _e( 'Add New User' ); ?></h3>
 <form action="<?php echo network_admin_url('site-users.php?action=newuser'); ?>" id="newuser" method="post">
-	<?php wp_nonce_field( 'edit-site' ); ?>
 	<input type="hidden" name="id" value="<?php echo esc_attr( $id ) ?>" />
 	<table class="form-table">
 		<tr>
@@ -303,14 +288,13 @@
 			<td><input type="text" class="regular-text" name="user[email]" /></td>
 		</tr>
 		<tr>
-			<th scope="row"><?php _e( 'Role'); ?></th>
+			<th scope="row"><?php _e( 'Role' ); ?></th>
 			<td><select name="new_role" id="new_role_0">
 			<?php
 			reset( $editblog_roles );
-			foreach ( $editblog_roles as $role => $role_assoc ){
+			foreach ( $editblog_roles as $role => $role_assoc ) {
 				$name = translate_user_role( $role_assoc['name'] );
-				$selected = ( $role == $default_role ) ? 'selected="selected"' : '';
-				echo '<option ' . $selected . ' value="' . esc_attr( $role ) . '">' . esc_html( $name ) . '</option>';
+				echo '<option ' . selected( $default_role, $role, false ) . ' value="' . esc_attr( $role ) . '">' . esc_html( $name ) . '</option>';
 			}
 			?>
 			</select></td>
@@ -320,7 +304,7 @@
 		</tr>
 	</table>
 	<?php wp_nonce_field( 'add-user', '_wpnonce_add-new-user' ) ?>
-	<?php submit_button( __('Add New User'), 'primary', 'add-user', false, array( 'id' => 'submit-add-user' ) ); ?>
+	<?php submit_button( __( 'Add New User' ), 'primary', 'add-user', true, array( 'id' => 'submit-add-user' ) ); ?>
 </form>
 <?php endif; ?>
 </div>
--- a/web/wp-admin/network/sites.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-admin/network/sites.php	Wed Dec 19 17:46:52 2012 -0800
@@ -16,13 +16,13 @@
 if ( ! current_user_can( 'manage_sites' ) )
 	wp_die( __( 'You do not have permission to access this page.' ) );
 
-$wp_list_table = _get_list_table('WP_MS_Sites_List_Table');
+$wp_list_table = _get_list_table( 'WP_MS_Sites_List_Table' );
 $pagenum = $wp_list_table->get_pagenum();
 
 $title = __( 'Sites' );
 $parent_file = 'sites.php';
 
-add_screen_option( 'per_page', array('label' => _x( 'Sites', 'sites per page (screen options)' )) );
+add_screen_option( 'per_page', array( 'label' => _x( 'Sites', 'sites per page (screen options)' ) ) );
 
 get_current_screen()->add_help_tab( array(
 	'id'      => 'overview',
@@ -51,35 +51,70 @@
 if ( isset( $_GET['action'] ) ) {
 	do_action( 'wpmuadminedit' , '' );
 
+	if ( 'confirm' === $_GET['action'] ) {
+		check_admin_referer( 'confirm' );
+
+		if ( ! headers_sent() ) {
+			nocache_headers();
+			header( 'Content-Type: text/html; charset=utf-8' );
+		}
+		if ( $current_site->blog_id == $id )
+			wp_die( __( 'You are not allowed to change the current site.' ) );
+		?>
+		<!DOCTYPE html>
+		<html xmlns="http://www.w3.org/1999/xhtml" <?php language_attributes(); ?>>
+			<head>
+				<title><?php _e( 'WordPress &rsaquo; Confirm your action' ); ?></title>
+
+				<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+				<?php
+				wp_admin_css( 'install', true );
+				wp_admin_css( 'ie', true );
+				?>
+			</head>
+			<body class="wp-core-ui">
+				<h1 id="logo"><a href="<?php esc_attr_e( 'http://wordpress.org/' ); ?>"><?php _e( 'WordPress' ); ?></a></h1>
+				<form action="sites.php?action=<?php echo esc_attr( $_GET['action2'] ) ?>" method="post">
+					<input type="hidden" name="action" value="<?php echo esc_attr( $_GET['action2'] ) ?>" />
+					<input type="hidden" name="id" value="<?php echo esc_attr( $id ); ?>" />
+					<input type="hidden" name="_wp_http_referer" value="<?php echo esc_attr( wp_get_referer() ); ?>" />
+					<?php wp_nonce_field( $_GET['action2'], '_wpnonce', false ); ?>
+					<p><?php echo esc_html( stripslashes( $_GET['msg'] ) ); ?></p>
+					<?php submit_button( __('Confirm'), 'button' ); ?>
+				</form>
+			</body>
+		</html>
+		<?php
+		exit();
+	}
+
+	$updated_action = '';
+
+	$manage_actions = array( 'deleteblog', 'allblogs', 'archiveblog', 'unarchiveblog', 'activateblog', 'deactivateblog', 'unspamblog', 'spamblog', 'unmatureblog', 'matureblog' );
+	if ( in_array( $_GET['action'], $manage_actions ) ) {
+		$action = $_GET['action'];
+		if ( 'allblogs' === $action )
+			$action = 'bulk-sites';
+
+		check_admin_referer( $action );
+	}
+
 	switch ( $_GET['action'] ) {
-		case 'updateblog':
-			// No longer used.
-		break;
 
 		case 'deleteblog':
-			check_admin_referer('deleteblog');
-			if ( ! ( current_user_can( 'manage_sites' ) && current_user_can( 'delete_sites' ) ) )
+			if ( ! current_user_can( 'delete_sites' ) )
 				wp_die( __( 'You do not have permission to access this page.' ) );
 
+			$updated_action = 'not_deleted';
 			if ( $id != '0' && $id != $current_site->blog_id && current_user_can( 'delete_site', $id ) ) {
 				wpmu_delete_blog( $id, true );
-				wp_safe_redirect( add_query_arg( array( 'updated' => 'true', 'action' => 'delete' ), wp_get_referer() ) );
-			} else {
-				wp_safe_redirect( add_query_arg( array( 'updated' => 'true', 'action' => 'not_deleted' ), wp_get_referer() ) );
+				$updated_action = 'delete';
 			}
-
-			exit();
 		break;
 
 		case 'allblogs':
 			if ( ( isset( $_POST['action'] ) || isset( $_POST['action2'] ) ) && isset( $_POST['allblogs'] ) ) {
-				check_admin_referer( 'bulk-sites' );
-
-				if ( ! current_user_can( 'manage_sites' ) )
-					wp_die( __( 'You do not have permission to access this page.' ) );
-
 				$doaction = $_POST['action'] != -1 ? $_POST['action'] : $_POST['action2'];
-				$blogfunction = '';
 
 				foreach ( (array) $_POST['allblogs'] as $key => $val ) {
 					if ( $val != '0' && $val != $current_site->blog_id ) {
@@ -87,158 +122,65 @@
 							case 'delete':
 								if ( ! current_user_can( 'delete_site', $val ) )
 									wp_die( __( 'You are not allowed to delete the site.' ) );
-								$blogfunction = 'all_delete';
+
+								$updated_action = 'all_delete';
 								wpmu_delete_blog( $val, true );
 							break;
 
 							case 'spam':
-								$blogfunction = 'all_spam';
-								update_blog_status( $val, 'spam', '1' );
-								set_time_limit( 60 );
-							break;
-
 							case 'notspam':
-								$blogfunction = 'all_notspam';
-								update_blog_status( $val, 'spam', '0' );
-								set_time_limit( 60 );
+								$updated_action = ( 'spam' === $doaction ) ? 'all_spam' : 'all_notspam';
+								update_blog_status( $val, 'spam', ( 'spam' === $doaction ) ? '1' : '0' );
 							break;
 						}
 					} else {
 						wp_die( __( 'You are not allowed to change the current site.' ) );
 					}
 				}
-
-				wp_safe_redirect( add_query_arg( array( 'updated' => 'true', 'action' => $blogfunction ), wp_get_referer() ) );
 			} else {
 				wp_redirect( network_admin_url( 'sites.php' ) );
+				exit();
 			}
-			exit();
 		break;
 
 		case 'archiveblog':
-			check_admin_referer( 'archiveblog' );
-			if ( ! current_user_can( 'manage_sites' ) )
-				wp_die( __( 'You do not have permission to access this page.' ) );
-
-			update_blog_status( $id, 'archived', '1' );
-			wp_safe_redirect( add_query_arg( array( 'updated' => 'true', 'action' => 'archive' ), wp_get_referer() ) );
-			exit();
-		break;
-
 		case 'unarchiveblog':
-			check_admin_referer( 'unarchiveblog' );
-			if ( ! current_user_can( 'manage_sites' ) )
-				wp_die( __( 'You do not have permission to access this page.' ) );
-
-			update_blog_status( $id, 'archived', '0' );
-			wp_safe_redirect( add_query_arg( array( 'updated' => 'true', 'action' => 'unarchive' ), wp_get_referer() ) );
-			exit();
+			update_blog_status( $id, 'archived', ( 'archiveblog' === $_GET['action'] ) ? '1' : '0' );
 		break;
 
 		case 'activateblog':
-			check_admin_referer( 'activateblog' );
-			if ( ! current_user_can( 'manage_sites' ) )
-				wp_die( __( 'You do not have permission to access this page.' ) );
-
 			update_blog_status( $id, 'deleted', '0' );
 			do_action( 'activate_blog', $id );
-			wp_safe_redirect( add_query_arg( array( 'updated' => 'true', 'action' => 'activate' ), wp_get_referer() ) );
-			exit();
 		break;
 
 		case 'deactivateblog':
-			check_admin_referer( 'deactivateblog' );
-			if ( ! current_user_can( 'manage_sites' ) )
-				wp_die( __( 'You do not have permission to access this page.' ) );
-
 			do_action( 'deactivate_blog', $id );
 			update_blog_status( $id, 'deleted', '1' );
-			wp_safe_redirect( add_query_arg( array( 'updated' => 'true', 'action' => 'deactivate' ), wp_get_referer() ) );
-			exit();
 		break;
 
 		case 'unspamblog':
-			check_admin_referer( 'unspamblog' );
-			if ( ! current_user_can( 'manage_sites' ) )
-				wp_die( __( 'You do not have permission to access this page.' ) );
-
-			update_blog_status( $id, 'spam', '0' );
-			wp_safe_redirect( add_query_arg( array( 'updated' => 'true', 'action' => 'unspam' ), wp_get_referer() ) );
-			exit();
-		break;
-
 		case 'spamblog':
-			check_admin_referer( 'spamblog' );
-			if ( ! current_user_can( 'manage_sites' ) )
-				wp_die( __( 'You do not have permission to access this page.' ) );
-
-			update_blog_status( $id, 'spam', '1' );
-			wp_safe_redirect( add_query_arg( array( 'updated' => 'true', 'action' => 'spam' ), wp_get_referer() ) );
-			exit();
+			update_blog_status( $id, 'spam', ( 'spamblog' === $_GET['action'] ) ? '1' : '0' );
 		break;
 
 		case 'unmatureblog':
-			check_admin_referer( 'unmatureblog' );
-			if ( ! current_user_can( 'manage_sites' ) )
-				wp_die( __( 'You do not have permission to access this page.' ) );
-
-			update_blog_status( $id, 'mature', '0' );
-			wp_safe_redirect( add_query_arg( array( 'updated' => 'true', 'action' => 'unmature' ), wp_get_referer() ) );
-			exit();
+		case 'matureblog':
+			update_blog_status( $id, 'mature', ( 'matureblog' === $_GET['action'] ) ? '1' : '0' );
 		break;
-
-		case 'matureblog':
-			check_admin_referer( 'matureblog' );
-			if ( ! current_user_can( 'manage_sites' ) )
-				wp_die( __( 'You do not have permission to access this page.' ) );
-
-			update_blog_status( $id, 'mature', '1' );
-			wp_safe_redirect( add_query_arg( array( 'updated' => 'true', 'action' => 'mature' ), wp_get_referer() ) );
-			exit();
-		break;
+	}
 
-		// Common
-		case 'confirm':
-			check_admin_referer( 'confirm' );
-			if ( !headers_sent() ) {
-				nocache_headers();
-				header( 'Content-Type: text/html; charset=utf-8' );
-			}
-			if ( $current_site->blog_id == $id )
-				wp_die( __( 'You are not allowed to change the current site.' ) );
-			?>
-			<!DOCTYPE html>
-			<html xmlns="http://www.w3.org/1999/xhtml" <?php language_attributes(); ?>>
-				<head>
-					<title><?php _e( 'WordPress &rsaquo; Confirm your action' ); ?></title>
+	if ( empty( $updated_action ) && in_array( $_GET['action'], $manage_actions ) )
+		$updated_action = $_GET['action'];
 
-					<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
-					<?php
-					wp_admin_css( 'install', true );
-					wp_admin_css( 'ie', true );
-					?>
-				</head>
-				<body>
-					<h1 id="logo"><img alt="WordPress" src="<?php echo esc_attr( admin_url( 'images/wordpress-logo.png?ver=20120216' ) ); ?>" /></h1>
-					<form action="sites.php?action=<?php echo esc_attr( $_GET['action2'] ) ?>" method="post">
-						<input type="hidden" name="action" value="<?php echo esc_attr( $_GET['action2'] ) ?>" />
-						<input type="hidden" name="id" value="<?php echo esc_attr( $id ); ?>" />
-						<input type="hidden" name="_wp_http_referer" value="<?php echo esc_attr( wp_get_referer() ); ?>" />
-						<?php wp_nonce_field( $_GET['action2'], '_wpnonce', false ); ?>
-						<p><?php echo esc_html( stripslashes( $_GET['msg'] ) ); ?></p>
-						<?php submit_button( __('Confirm'), 'button' ); ?>
-					</form>
-				</body>
-			</html>
-			<?php
-			exit();
-		break;
+	if ( ! empty( $updated_action ) ) {
+		wp_safe_redirect( add_query_arg( array( 'updated' => $updated_action ), wp_get_referer() ) );
+		exit();
 	}
 }
 
 $msg = '';
-if ( isset( $_REQUEST['updated'] ) && $_REQUEST['updated'] == 'true' && ! empty( $_REQUEST['action'] ) ) {
-	switch ( $_REQUEST['action'] ) {
+if ( isset( $_GET['updated'] ) ) {
+	switch ( $_GET['updated'] ) {
 		case 'all_notspam':
 			$msg = __( 'Sites removed from spam.' );
 		break;
@@ -254,29 +196,30 @@
 		case 'not_deleted':
 			$msg = __( 'You do not have permission to delete that site.' );
 		break;
-		case 'archive':
+		case 'archiveblog':
 			$msg = __( 'Site archived.' );
 		break;
-		case 'unarchive':
+		case 'unarchiveblog':
 			$msg = __( 'Site unarchived.' );
 		break;
-		case 'activate':
+		case 'activateblog':
 			$msg = __( 'Site activated.' );
 		break;
-		case 'deactivate':
+		case 'deactivateblog':
 			$msg = __( 'Site deactivated.' );
 		break;
-		case 'unspam':
+		case 'unspamblog':
 			$msg = __( 'Site removed from spam.' );
 		break;
-		case 'spam':
+		case 'spamblog':
 			$msg = __( 'Site marked as spam.' );
 		break;
 		default:
-			$msg = apply_filters( 'network_sites_updated_message_' . $_REQUEST['action'] , __( 'Settings saved.' ) );
+			$msg = apply_filters( 'network_sites_updated_message_' . $_GET['updated'], __( 'Settings saved.' ) );
 		break;
 	}
-	if ( $msg )
+
+	if ( ! empty( $msg ) )
 		$msg = '<div class="updated" id="message"><p>' . $msg . '</p></div>';
 }
 
@@ -286,11 +229,11 @@
 ?>
 
 <div class="wrap">
-<?php screen_icon('ms-admin'); ?>
-<h2><?php _e('Sites') ?>
-<?php echo $msg; ?>
+<?php screen_icon( 'ms-admin' ); ?>
+<h2><?php _e( 'Sites' ) ?>
+
 <?php if ( current_user_can( 'create_sites') ) : ?>
-        <a href="<?php echo network_admin_url('site-new.php'); ?>" class="add-new-h2"><?php echo esc_html_x( 'Add New', 'site' ); ?></a>
+	<a href="<?php echo network_admin_url('site-new.php'); ?>" class="add-new-h2"><?php echo esc_html_x( 'Add New', 'site' ); ?></a>
 <?php endif; ?>
 
 <?php if ( isset( $_REQUEST['s'] ) && $_REQUEST['s'] ) {
@@ -298,6 +241,8 @@
 } ?>
 </h2>
 
+<?php echo $msg; ?>
+
 <form action="" method="get" id="ms-search">
 <?php $wp_list_table->search_box( __( 'Search Sites' ), 'site' ); ?>
 <input type="hidden" name="action" value="blogs" />
--- a/web/wp-admin/network/themes.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-admin/network/themes.php	Wed Dec 19 17:46:52 2012 -0800
@@ -13,11 +13,6 @@
 if ( ! is_multisite() )
 	wp_die( __( 'Multisite support is not enabled.' ) );
 
-$menu_perms = get_site_option( 'menu_items', array() );
-
-if ( empty( $menu_perms['themes'] ) && ! is_super_admin() )
-	wp_die( __( 'Cheatin&#8217; uh?' ) );
-
 if ( !current_user_can('manage_network_themes') )
 	wp_die( __( 'You do not have sufficient permissions to manage network themes.' ) );
 
@@ -181,10 +176,21 @@
 				exit;
 			} // Endif verify-delete
 
-			foreach ( $themes as $theme )
-				$delete_result = delete_theme( $theme, esc_url( add_query_arg( array('verify-delete' => 1), $_SERVER['REQUEST_URI'] ) ) );
+			foreach ( $themes as $theme ) {
+				$delete_result = delete_theme( $theme, esc_url( add_query_arg( array(
+					'verify-delete' => 1,
+					'action' => 'delete-selected',
+					'checked' => $_REQUEST['checked'],
+					'_wpnonce' => $_REQUEST['_wpnonce']
+				), network_admin_url( 'themes.php' ) ) ) );
+			}
+			
 			$paged = ( $_REQUEST['paged'] ) ? $_REQUEST['paged'] : 1;
-			wp_redirect( network_admin_url( "themes.php?deleted=".count( $themes )."&paged=$paged&s=$s" ) );
+			wp_redirect( add_query_arg( array(
+				'deleted' => count( $themes ),
+				'paged' => $paged,
+				's' => $s
+			), network_admin_url( 'themes.php' ) ) );
 			exit;
 			break;
 	}
--- a/web/wp-admin/network/upgrade.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-admin/network/upgrade.php	Wed Dec 19 17:46:52 2012 -0800
@@ -60,9 +60,12 @@
 		}
 		echo "<ul>";
 		foreach ( (array) $blogs as $details ) {
-			$siteurl = get_blog_option( $details['blog_id'], 'siteurl' );
+			switch_to_blog( $details['blog_id'] );
+			$siteurl = site_url();
+			$upgrade_url = admin_url( 'upgrade.php?step=upgrade_db' );
+			restore_current_blog();
 			echo "<li>$siteurl</li>";
-			$response = wp_remote_get( trailingslashit( $siteurl ) . "wp-admin/upgrade.php?step=upgrade_db", array( 'timeout' => 120, 'httpversion' => '1.1' ) );
+			$response = wp_remote_get( $upgrade_url, array( 'timeout' => 120, 'httpversion' => '1.1' ) );
 			if ( is_wp_error( $response ) )
 				wp_die( sprintf( __( 'Warning! Problem updating %1$s. Your server may not be able to connect to sites running on it. Error message: <em>%2$s</em>' ), $siteurl, $response->get_error_message() ) );
 			do_action( 'after_mu_upgrade', $response );
--- a/web/wp-admin/network/users.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-admin/network/users.php	Wed Dec 19 17:46:52 2012 -0800
@@ -24,7 +24,7 @@
 	screen_icon();
 	?>
 	<h2><?php esc_html_e( 'Users' ); ?></h2>
-	<p><?php _e( 'Transfer or delete posts and links before deleting users.' ); ?></p>
+	<p><?php _e( 'Transfer or delete posts before deleting users.' ); ?></p>
 	<form action="users.php?action=dodelete" method="post">
 	<input type="hidden" name="dodelete" />
 	<?php
@@ -34,7 +34,7 @@
 
 	foreach ( ( $allusers = (array) $_POST['allusers'] ) as $key => $val ) {
 		if ( $val != '' && $val != '0' ) {
-			$delete_user = new WP_User( $val );
+			$delete_user = get_userdata( $val );
 
 			if ( ! current_user_can( 'delete_user', $delete_user->ID ) )
 				wp_die( sprintf( __( 'Warning! User %s cannot be deleted.' ), $delete_user->user_login ) );
@@ -47,7 +47,7 @@
 
 			if ( !empty( $blogs ) ) {
 				?>
-				<br /><fieldset><p><legend><?php printf( __( "What should be done with posts and links owned by <em>%s</em>?" ), $delete_user->user_login ); ?></legend></p>
+				<br /><fieldset><p><legend><?php printf( __( "What should be done with posts owned by <em>%s</em>?" ), $delete_user->user_login ); ?></legend></p>
 				<?php
 				foreach ( (array) $blogs as $key => $details ) {
 					$blog_users = get_users( array( 'blog_id' => $details->userblog_id ) );
@@ -67,9 +67,9 @@
 						<ul style="list-style:none;">
 							<li><?php printf( __( 'Site: %s' ), $user_site ); ?></li>
 							<li><label><input type="radio" id="delete_option0" name="delete[<?php echo $details->userblog_id . '][' . $delete_user->ID ?>]" value="delete" checked="checked" />
-							<?php _e( 'Delete all posts and links.' ); ?></label></li>
+							<?php _e( 'Delete all posts.' ); ?></label></li>
 							<li><label><input type="radio" id="delete_option1" name="delete[<?php echo $details->userblog_id . '][' . $delete_user->ID ?>]" value="reassign" />
-							<?php echo __( 'Attribute all posts and links to:' ) . '</label>' . $user_dropdown; ?></li>
+							<?php echo __( 'Attribute all posts to:' ) . '</label>' . $user_dropdown; ?></li>
 						</ul>
 						<?php
 					}
@@ -139,8 +139,8 @@
 							break;
 
 							case 'spam':
-								$user = new WP_User( $val );
-								if ( in_array( $user->user_login, get_super_admins() ) )
+								$user = get_userdata( $val );
+								if ( is_super_admin( $user->ID ) )
 									wp_die( sprintf( __( 'Warning! User cannot be modified. The user %s is a network administrator.' ), esc_html( $user->user_login ) ) );
 
 								$userfunction = 'all_spam';
--- a/web/wp-admin/options-discussion.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-admin/options-discussion.php	Wed Dec 19 17:46:52 2012 -0800
@@ -71,7 +71,8 @@
 
 <label for="close_comments_for_old_posts">
 <input name="close_comments_for_old_posts" type="checkbox" id="close_comments_for_old_posts" value="1" <?php checked('1', get_option('close_comments_for_old_posts')); ?> />
-<?php printf( __('Automatically close comments on articles older than %s days'), '</label><input name="close_comments_days_old" type="number" min="0" step="1" id="close_comments_days_old" value="' . esc_attr(get_option('close_comments_days_old')) . '" class="small-text" />'); ?>
+<?php printf( __('Automatically close comments on articles older than %s days'), '</label><label for="close_comments_days_old"><input name="close_comments_days_old" type="number" min="0" step="1" id="close_comments_days_old" value="' . esc_attr(get_option('close_comments_days_old')) . '" class="small-text" />'); ?>
+</label>
 <br />
 <label for="thread_comments">
 <input name="thread_comments" type="checkbox" id="thread_comments" value="1" <?php checked('1', get_option('thread_comments')); ?> />
@@ -79,7 +80,7 @@
 
 $maxdeep = (int) apply_filters( 'thread_comments_depth_max', 10 );
 
-$thread_comments_depth = '</label><select name="thread_comments_depth" id="thread_comments_depth">';
+$thread_comments_depth = '</label><label for="thread_comments_depth"><select name="thread_comments_depth" id="thread_comments_depth">';
 for ( $i = 2; $i <= $maxdeep; $i++ ) {
 	$thread_comments_depth .= "<option value='" . esc_attr($i) . "'";
 	if ( get_option('thread_comments_depth') == $i ) $thread_comments_depth .= " selected='selected'";
@@ -89,7 +90,8 @@
 
 printf( __('Enable threaded (nested) comments %s levels deep'), $thread_comments_depth );
 
-?><br />
+?></label>
+<br />
 <label for="page_comments">
 <input name="page_comments" type="checkbox" id="page_comments" value="1" <?php checked('1', get_option('page_comments')); ?> />
 <?php
@@ -172,13 +174,10 @@
 <tr valign="top">
 <th scope="row"><?php _e('Avatar Display'); ?></th>
 <td><fieldset><legend class="screen-reader-text"><span><?php _e('Avatar Display'); ?></span></legend>
-<?php
-	$yesorno = array( 0 => __( 'Don&#8217;t show Avatars' ), 1 => __( 'Show Avatars' ) );
-	foreach ( $yesorno as $key => $value) {
-		$selected = (get_option('show_avatars') == $key) ? 'checked="checked"' : '';
-		echo "\n\t<label><input type='radio' name='show_avatars' value='" . esc_attr($key) . "' $selected/> $value</label><br />";
-	}
-?>
+	<label for="show_avatars">
+		<input type="checkbox" id="show_avatars" name="show_avatars" value="1" <?php checked( get_option('show_avatars'), 1 ); ?> />
+		<?php _e( 'Show Avatars' ); ?>
+	</label>
 </fieldset></td>
 </tr>
 <tr valign="top">
--- a/web/wp-admin/options-general.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-admin/options-general.php	Wed Dec 19 17:46:52 2012 -0800
@@ -20,10 +20,9 @@
 /**
  * Display JavaScript on the page.
  *
- * @package WordPress
- * @subpackage General_Settings_Screen
+ * @since 3.5.0
  */
-function add_js() {
+function options_general_add_js() {
 ?>
 <script type="text/javascript">
 //<![CDATA[
@@ -45,18 +44,18 @@
 		});
 		$("input[name='date_format_custom'], input[name='time_format_custom']").change( function() {
 			var format = $(this);
-			format.siblings('img').css('visibility','visible');
+			format.siblings('.spinner').css('display', 'inline-block'); // show(); can't be used here
 			$.post(ajaxurl, {
 					action: 'date_format_custom' == format.attr('name') ? 'date_format' : 'time_format',
 					date : format.val()
-				}, function(d) { format.siblings('img').css('visibility','hidden'); format.siblings('.example').text(d); } );
+				}, function(d) { format.siblings('.spinner').hide(); format.siblings('.example').text(d); } );
 		});
 	});
 //]]>
 </script>
 <?php
 }
-add_action('admin_head', 'add_js');
+add_action('admin_head', 'options_general_add_js');
 
 $options_help = '<p>' . __('The fields on this screen determine some of the basics of your site setup.') . '</p>' .
 	'<p>' . __('Most themes display the site title at the top of every page, in the title bar of the browser, and as the identifying name for syndicated feeds. The tagline is also displayed by many themes.') . '</p>';
@@ -231,12 +230,12 @@
 	<fieldset><legend class="screen-reader-text"><span><?php _e('Date Format') ?></span></legend>
 <?php
 
-	$date_formats = apply_filters( 'date_formats', array(
+	$date_formats = array_unique( apply_filters( 'date_formats', array(
 		__('F j, Y'),
 		'Y/m/d',
 		'm/d/Y',
 		'd/m/Y',
-	) );
+	) ) );
 
 	$custom = true;
 
@@ -251,7 +250,7 @@
 
 	echo '	<label><input type="radio" name="date_format" id="date_format_custom_radio" value="\c\u\s\t\o\m"';
 	checked( $custom );
-	echo '/> ' . __('Custom:') . ' </label><input type="text" name="date_format_custom" value="' . esc_attr( get_option('date_format') ) . '" class="small-text" /> <span class="example"> ' . date_i18n( get_option('date_format') ) . "</span> <img class='ajax-loading' src='" . esc_url( admin_url( 'images/wpspin_light.gif' ) ) . "' />\n";
+	echo '/> ' . __('Custom:') . ' </label><input type="text" name="date_format_custom" value="' . esc_attr( get_option('date_format') ) . '" class="small-text" /> <span class="example"> ' . date_i18n( get_option('date_format') ) . "</span> <span class='spinner'></span>\n";
 
 	echo "\t<p>" . __('<a href="http://codex.wordpress.org/Formatting_Date_and_Time">Documentation on date and time formatting</a>.') . "</p>\n";
 ?>
@@ -264,11 +263,11 @@
 	<fieldset><legend class="screen-reader-text"><span><?php _e('Time Format') ?></span></legend>
 <?php
 
-	$time_formats = apply_filters( 'time_formats', array(
+	$time_formats = array_unique( apply_filters( 'time_formats', array(
 		__('g:i a'),
 		'g:i A',
 		'H:i',
-	) );
+	) ) );
 
 	$custom = true;
 
@@ -283,7 +282,7 @@
 
 	echo '	<label><input type="radio" name="time_format" id="time_format_custom_radio" value="\c\u\s\t\o\m"';
 	checked( $custom );
-	echo '/> ' . __('Custom:') . ' </label><input type="text" name="time_format_custom" value="' . esc_attr( get_option('time_format') ) . '" class="small-text" /> <span class="example"> ' . date_i18n( get_option('time_format') ) . "</span> <img class='ajax-loading' src='" . esc_url( admin_url( 'images/wpspin_light.gif' ) ) . "' />\n";
+	echo '/> ' . __('Custom:') . ' </label><input type="text" name="time_format_custom" value="' . esc_attr( get_option('time_format') ) . '" class="small-text" /> <span class="example"> ' . date_i18n( get_option('time_format') ) . "</span> <span class='spinner'></span>\n";
 	;
 ?>
 	</fieldset>
--- a/web/wp-admin/options-media.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-admin/options-media.php	Wed Dec 19 17:46:52 2012 -0800
@@ -15,15 +15,9 @@
 $title = __('Media Settings');
 $parent_file = 'options-general.php';
 
-$media_options_help = '<p>' . __('You can set maximum sizes for images inserted into your written content; you can also insert an image as Full Size.') . '</p>' .
-	'<p>' . __('The Embed option allows you embed a video, image, or other media content into your content automatically by typing the URL (of the web page where the file lives) on its own line when you create your content.');
+$media_options_help = '<p>' . __('You can set maximum sizes for images inserted into your written content; you can also insert an image as Full Size.') . '</p>';
 
-if ( ! empty( $content_width ) )
-	$media_options_help .= ' ' . __( 'If you do not set the maximum embed size, it will be automatically sized to fit into your content area.' );
-
-$media_options_help .= '</p>';
-
-if ( ! is_multisite() ) {
+if ( ! is_multisite() && ( get_option('upload_url_path') || ( get_option('upload_path') != 'wp-content/uploads' && get_option('upload_path') ) ) ) {
 	$media_options_help .= '<p>' . __('Uploading Files allows you to choose the folder and path for storing your uploaded files.') . '</p>';
 }
 
@@ -91,36 +85,20 @@
 <?php do_settings_fields('media', 'default'); ?>
 </table>
 
+<?php if ( isset( $GLOBALS['wp_settings']['media']['embeds'] ) ) : ?>
 <h3><?php _e('Embeds') ?></h3>
-
 <table class="form-table">
-
-<tr valign="top">
-<th scope="row"><?php _e('Auto-embeds'); ?></th>
-<td><fieldset><legend class="screen-reader-text"><span><?php _e('When possible, embed the media content from a URL directly onto the page. For example: links to Flickr and YouTube.'); ?></span></legend>
-<label for="embed_autourls"><input name="embed_autourls" type="checkbox" id="embed_autourls" value="1" <?php checked( '1', get_option('embed_autourls') ); ?>/> <?php _e('When possible, embed the media content from a URL directly onto the page. For example: links to Flickr and YouTube.'); ?></label>
-</fieldset></td>
-</tr>
-
-<tr valign="top">
-<th scope="row"><?php _e('Maximum embed size') ?></th>
-<td>
-<label for="embed_size_w"><?php _e('Width'); ?></label>
-<input name="embed_size_w" type="number" step="1" min="0" id="embed_size_w" value="<?php form_option('embed_size_w'); ?>" class="small-text" />
-<label for="embed_size_h"><?php _e('Height'); ?></label>
-<input name="embed_size_h" type="number" step="1" min="0" id="embed_size_h" value="<?php form_option('embed_size_h'); ?>" class="small-text" />
-<?php if ( ! empty( $content_width ) )
-	echo '<p class="description">' . __( 'If the width value is left blank, embeds will default to the max width of your theme.' ) . '</p>';
-?>
-</td>
-</tr>
-
-<?php do_settings_fields('media', 'embeds'); ?>
+<?php do_settings_fields( 'media', 'embeds' ); ?>
 </table>
+<?php endif; ?>
 
 <?php if ( !is_multisite() ) : ?>
 <h3><?php _e('Uploading Files'); ?></h3>
 <table class="form-table">
+<?php
+// If upload_url_path is not the default (empty), and upload_path is not the default ('wp-content/uploads' or empty)
+if ( get_option('upload_url_path') || ( get_option('upload_path') != 'wp-content/uploads' && get_option('upload_path') ) ) :
+?>
 <tr valign="top">
 <th scope="row"><label for="upload_path"><?php _e('Store uploads in this folder'); ?></label></th>
 <td><input name="upload_path" type="text" id="upload_path" value="<?php echo esc_attr(get_option('upload_path')); ?>" class="regular-text code" />
@@ -134,7 +112,7 @@
 <p class="description"><?php _e('Configuring this is optional. By default, it should be blank.'); ?></p>
 </td>
 </tr>
-
+<?php endif; ?>
 <tr>
 <th scope="row" colspan="2" class="th-full">
 <label for="uploads_use_yearmonth_folders">
--- a/web/wp-admin/options-permalink.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-admin/options-permalink.php	Wed Dec 19 17:46:52 2012 -0800
@@ -49,15 +49,14 @@
 /**
  * Display JavaScript on the page.
  *
- * @package WordPress
- * @subpackage Permalink_Settings_Screen
+ * @since 3.5.0
  */
-function add_js() {
+function options_permalink_add_js() {
 	?>
 <script type="text/javascript">
 //<![CDATA[
 jQuery(document).ready(function() {
-	jQuery('input:radio.tog').change(function() {
+	jQuery('.permalink-structure input:radio').change(function() {
 		if ( 'custom' == this.value )
 			return;
 		jQuery('#permalink_structure').val( this.value );
@@ -70,7 +69,7 @@
 </script>
 <?php
 }
-add_filter('admin_head', 'add_js');
+add_filter('admin_head', 'options_permalink_add_js');
 
 include('./admin-header.php');
 
@@ -190,35 +189,35 @@
 );
 ?>
 <h3><?php _e('Common Settings'); ?></h3>
-<table class="form-table">
+<table class="form-table permalink-structure">
 	<tr>
-		<th><label><input name="selection" type="radio" value="" class="tog" <?php checked('', $permalink_structure); ?> /> <?php _e('Default'); ?></label></th>
+		<th><label><input name="selection" type="radio" value="" <?php checked('', $permalink_structure); ?> /> <?php _e('Default'); ?></label></th>
 		<td><code><?php echo get_option('home'); ?>/?p=123</code></td>
 	</tr>
 	<tr>
-		<th><label><input name="selection" type="radio" value="<?php echo esc_attr($structures[1]); ?>" class="tog" <?php checked($structures[1], $permalink_structure); ?> /> <?php _e('Day and name'); ?></label></th>
+		<th><label><input name="selection" type="radio" value="<?php echo esc_attr($structures[1]); ?>" <?php checked($structures[1], $permalink_structure); ?> /> <?php _e('Day and name'); ?></label></th>
 		<td><code><?php echo get_option('home') . $blog_prefix . $prefix . '/' . date('Y') . '/' . date('m') . '/' . date('d') . '/' . _x( 'sample-post', 'sample permalink structure' ) . '/'; ?></code></td>
 	</tr>
 	<tr>
-		<th><label><input name="selection" type="radio" value="<?php echo esc_attr($structures[2]); ?>" class="tog" <?php checked($structures[2], $permalink_structure); ?> /> <?php _e('Month and name'); ?></label></th>
+		<th><label><input name="selection" type="radio" value="<?php echo esc_attr($structures[2]); ?>" <?php checked($structures[2], $permalink_structure); ?> /> <?php _e('Month and name'); ?></label></th>
 		<td><code><?php echo get_option('home') . $blog_prefix . $prefix . '/' . date('Y') . '/' . date('m') . '/' . _x( 'sample-post', 'sample permalink structure' ) . '/'; ?></code></td>
 	</tr>
 	<tr>
-		<th><label><input name="selection" type="radio" value="<?php echo esc_attr($structures[3]); ?>" class="tog" <?php checked($structures[3], $permalink_structure); ?> /> <?php _e('Numeric'); ?></label></th>
+		<th><label><input name="selection" type="radio" value="<?php echo esc_attr($structures[3]); ?>" <?php checked($structures[3], $permalink_structure); ?> /> <?php _e('Numeric'); ?></label></th>
 		<td><code><?php echo get_option('home') . $blog_prefix . $prefix . '/' . _x( 'archives', 'sample permalink base' ) . '/123'; ?></code></td>
 	</tr>
 	<tr>
-		<th><label><input name="selection" type="radio" value="<?php echo esc_attr($structures[4]); ?>" class="tog" <?php checked($structures[4], $permalink_structure); ?> /> <?php _e('Post name'); ?></label></th>
+		<th><label><input name="selection" type="radio" value="<?php echo esc_attr($structures[4]); ?>" <?php checked($structures[4], $permalink_structure); ?> /> <?php _e('Post name'); ?></label></th>
 		<td><code><?php echo get_option('home') . $blog_prefix . $prefix . '/' . _x( 'sample-post', 'sample permalink structure' ) . '/'; ?></code></td>
 	</tr>
 	<tr>
 		<th>
-			<label><input name="selection" id="custom_selection" type="radio" value="custom" class="tog" <?php checked( !in_array($permalink_structure, $structures) ); ?> />
+			<label><input name="selection" id="custom_selection" type="radio" value="custom" <?php checked( !in_array($permalink_structure, $structures) ); ?> />
 			<?php _e('Custom Structure'); ?>
 			</label>
 		</th>
 		<td>
-			<?php echo $blog_prefix; ?>
+			<code><?php echo get_option('home') . $blog_prefix; ?></code>
 			<input name="permalink_structure" id="permalink_structure" type="text" value="<?php echo esc_attr($permalink_structure); ?>" class="regular-text code" />
 		</td>
 	</tr>
--- a/web/wp-admin/options-privacy.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-admin/options-privacy.php	Wed Dec 19 17:46:52 2012 -0800
@@ -1,6 +1,6 @@
 <?php
 /**
- * Privacy Options Settings Administration Screen.
+ * Privacy Options Settings Administration Panel.
  *
  * @package WordPress
  * @subpackage Administration
@@ -9,25 +9,12 @@
 /** Load WordPress Administration Bootstrap */
 require_once('./admin.php');
 
-if ( ! current_user_can( 'manage_options' ) )
-	wp_die( __( 'You do not have sufficient permissions to manage options for this site.' ) );
+if ( ! current_user_can('manage_options') )
+	wp_die(__('You do not have sufficient permissions to manage options for this blog.'));
 
 $title = __('Privacy Settings');
 $parent_file = 'options-general.php';
 
-get_current_screen()->add_help_tab( array(
-	'id'      => 'overview',
-	'title'   => __('Overview'),
-	'content' => '<p>' . __('You can choose whether or not your site will be crawled by robots, ping services, and spiders. If you want those services to ignore your site, click the radio button next to &#8220;Ask search engines not to index this site&#8221; and click the Save Changes button at the bottom of the screen. Note that your privacy is not complete; your site is still visible on the web.') . '</p>' .
-		'<p>' . __('When this setting is in effect a reminder is shown in the Right Now box of the Dashboard that says, &#8220;Search Engines Blocked,&#8221; to remind you that your site is not being crawled.') . '</p>',
-) );
-
-get_current_screen()->set_help_sidebar(
-	'<p><strong>' . __('For more information:') . '</strong></p>' .
-	'<p>' . __('<a href="http://codex.wordpress.org/Settings_Privacy_Screen" target="_blank">Documentation on Privacy Settings</a>') . '</p>' .
-	'<p>' . __('<a href="http://wordpress.org/support/" target="_blank">Support Forums</a>') . '</p>'
-);
-
 include('./admin-header.php');
 ?>
 
@@ -40,13 +27,12 @@
 
 <table class="form-table">
 <tr valign="top">
-<th scope="row"><?php _e( 'Site Visibility' ); ?> </th>
-<td><fieldset><legend class="screen-reader-text"><span><?php _e( 'Site Visibility' ); ?> </span></legend>
-<input id="blog-public" type="radio" name="blog_public" value="1" <?php checked('1', get_option('blog_public')); ?> />
-<label for="blog-public"><?php _e( 'Allow search engines to index this site.' );?></label><br/>
-<input id="blog-norobots" type="radio" name="blog_public" value="0" <?php checked('0', get_option('blog_public')); ?> />
-<label for="blog-norobots"><?php _e( 'Ask search engines not to index this site.' ); ?></label>
-<p class="description"><?php _e( 'Note: Neither of these options blocks access to your site &mdash; it is up to search engines to honor your request.' ); ?></p>
+<th scope="row"><?php _e('Blog Visibility') ?> </th>
+<td><fieldset><legend class="screen-reader-text"><span><?php _e('Blog Visibility') ?> </span></legend>
+<p><input id="blog-public" type="radio" name="blog_public" value="1" <?php checked('1', get_option('blog_public')); ?> />
+<label for="blog-public"><?php _e('I would like my blog to be visible to everyone, including search engines (like Google, Bing, Technorati) and archivers');?></label></p>
+<p><input id="blog-norobots" type="radio" name="blog_public" value="0" <?php checked('0', get_option('blog_public')); ?> />
+<label for="blog-norobots"><?php _e('I would like to block search engines, but allow normal visitors'); ?></label></p>
 <?php do_action('blog_privacy_selector'); ?>
 </fieldset></td>
 </tr>
@@ -55,7 +41,9 @@
 
 <?php do_settings_sections('privacy'); ?>
 
-<?php submit_button(); ?>
+<p class="submit">
+	<input type="submit" name="Submit" class="button-primary" value="<?php esc_attr_e('Save Changes') ?>" />
+</p>
 </form>
 
 </div>
--- a/web/wp-admin/options-reading.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-admin/options-reading.php	Wed Dec 19 17:46:52 2012 -0800
@@ -18,10 +18,9 @@
 /**
  * Display JavaScript on the page.
  *
- * @package WordPress
- * @subpackage Reading_Settings_Screen
+ * @since 3.5.0
  */
-function add_js() {
+function options_reading_add_js() {
 ?>
 <script type="text/javascript">
 //<![CDATA[
@@ -39,17 +38,34 @@
 </script>
 <?php
 }
-add_action('admin_head', 'add_js');
+add_action('admin_head', 'options_reading_add_js');
+
+/**
+ * Render the blog charset setting.
+ *
+ * @since 3.5.0
+ */
+function options_reading_blog_charset() {
+	echo '<input name="blog_charset" type="text" id="blog_charset" value="' . esc_attr( get_option( 'blog_charset' ) ) . '" class="regular-text" />';
+	echo '<p class="description">' . __( 'The <a href="http://codex.wordpress.org/Glossary#Character_set">character encoding</a> of your site (UTF-8 is recommended)' ) . '</p>';
+}
 
 get_current_screen()->add_help_tab( array(
 	'id'      => 'overview',
 	'title'   => __('Overview'),
 	'content' => '<p>' . __('This screen contains the settings that affect the display of your content.') . '</p>' .
 		'<p>' . sprintf(__('You can choose what&#8217;s displayed on the front page of your site. It can be posts in reverse chronological order (classic blog), or a fixed/static page. To set a static home page, you first need to create two <a href="%s">Pages</a>. One will become the front page, and the other will be where your posts are displayed.'), 'post-new.php?post_type=page') . '</p>' .
-		'<p>' . __('You can also control the display of your content in RSS feeds, including the maximum numbers of posts to display, whether to show full text or a summary, and the character set encoding.') . '</p>' .
+		'<p>' . __('You can also control the display of your content in RSS feeds, including the maximum numbers of posts to display and whether to show full text or a summary.') . '</p>' .
 		'<p>' . __('You must click the Save Changes button at the bottom of the screen for new settings to take effect.') . '</p>',
 ) );
 
+get_current_screen()->add_help_tab( array(
+	'id'      => 'site-visibility',
+	'title'   => has_action( 'blog_privacy_selector' ) ? __( 'Site Visibility' ) : __( 'Search Engine Visibility' ),
+	'content' => '<p>' . __( 'You can choose whether or not your site will be crawled by robots, ping services, and spiders. If you want those services to ignore your site, click the checkbox next to &#8220;Discourage search engines from indexing this site&#8221; and click the Save Changes button at the bottom of the screen. Note that your privacy is not complete; your site is still visible on the web.' ) . '</p>' .
+		'<p>' . __( 'When this setting is in effect, a reminder is shown in the Right Now box of the Dashboard that says, &#8220;Search Engines Discouraged,&#8221; to remind you that your site is not being crawled.' ) . '</p>',
+) );
+
 get_current_screen()->set_help_sidebar(
 	'<p><strong>' . __('For more information:') . '</strong></p>' .
 	'<p>' . __('<a href="http://codex.wordpress.org/Settings_Reading_Screen" target="_blank">Documentation on Reading Settings</a>') . '</p>' .
@@ -63,8 +79,13 @@
 <?php screen_icon(); ?>
 <h2><?php echo esc_html( $title ); ?></h2>
 
-<form name="form1" method="post" action="options.php">
-<?php settings_fields( 'reading' ); ?>
+<form method="post" action="options.php">
+<?php
+settings_fields( 'reading' );
+
+if ( ! in_array( get_option( 'blog_charset' ), array( 'utf8', 'utf-8', 'UTF8', 'UTF-8' ) ) )
+	add_settings_field( 'blog_charset', __( 'Encoding for pages and feeds' ), 'options_reading_blog_charset', 'reading', 'default', array( 'label_for' => 'blog_charset' ) );
+?>
 
 <?php if ( ! get_pages() ) : ?>
 <input name="show_on_front" type="hidden" value="posts" />
@@ -120,11 +141,24 @@
 </fieldset></td>
 </tr>
 
-<tr valign="top">
-<th scope="row"><label for="blog_charset"><?php _e( 'Encoding for pages and feeds' ); ?></label></th>
-<td><input name="blog_charset" type="text" id="blog_charset" value="<?php form_option( 'blog_charset' ); ?>" class="regular-text" />
-<p class="description"><?php _e( 'The <a href="http://codex.wordpress.org/Glossary#Character_set">character encoding</a> of your site (UTF-8 is recommended, if you are adventurous there are some <a href="http://en.wikipedia.org/wiki/Character_set">other encodings</a>)' ); ?></p></td>
+<tr valign="top" class="option-site-visibility">
+<th scope="row"><?php has_action( 'blog_privacy_selector' ) ? _e( 'Site Visibility' ) : _e( 'Search Engine Visibility' ); ?> </th>
+<td><fieldset><legend class="screen-reader-text"><span><?php has_action( 'blog_privacy_selector' ) ? _e( 'Site Visibility' ) : _e( 'Search Engine Visibility' ); ?> </span></legend>
+<?php if ( has_action( 'blog_privacy_selector' ) ) : ?>
+	<input id="blog-public" type="radio" name="blog_public" value="1" <?php checked('1', get_option('blog_public')); ?> />
+	<label for="blog-public"><?php _e( 'Allow search engines to index this site' );?></label><br/>
+	<input id="blog-norobots" type="radio" name="blog_public" value="0" <?php checked('0', get_option('blog_public')); ?> />
+	<label for="blog-norobots"><?php _e( 'Discourage search engines from indexing this site' ); ?></label>
+	<p class="description"><?php _e( 'Note: Neither of these options blocks access to your site &mdash; it is up to search engines to honor your request.' ); ?></p>
+	<?php do_action('blog_privacy_selector'); ?>
+<?php else : ?>
+	<label for="blog_public"><input name="blog_public" type="checkbox" id="blog_public" value="0" <?php checked( '0', get_option( 'blog_public' ) ); ?> />
+	<?php _e( 'Discourage search engines from indexing this site' ); ?></label>
+	<p class="description"><?php _e( 'It is up to search engines to honor this request.' ); ?></p>
+<?php endif; ?>
+</fieldset></td>
 </tr>
+
 <?php do_settings_fields( 'reading', 'default' ); ?>
 </table>
 
--- a/web/wp-admin/options-writing.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-admin/options-writing.php	Wed Dec 19 17:46:52 2012 -0800
@@ -28,29 +28,21 @@
 	'content' => '<p>' . __('Press This is a bookmarklet that makes it easy to blog about something you come across on the web. You can use it to just grab a link, or to post an excerpt. Press This will even allow you to choose from images included on the page and use them in your post. Just drag the Press This link on this screen to your bookmarks bar in your browser, and you&#8217;ll be on your way to easier content creation. Clicking on it while on another website opens a popup window with all these options.') . '</p>',
 ) );
 
-if ( is_multisite() ) {
-	$post_email_help = '<p>' . __('Due to security issues, you cannot use Post By Email on Multisite Installs.') . '</p>';
-} else {
-	$post_email_help = '<p>' . __('Post via email settings allow you to send your WordPress install an email with the content of your post. You must set up a secret e-mail account with POP3 access to use this, and any mail received at this address will be posted, so it&#8217;s a good idea to keep this address very secret.') . '</p>';
+if ( apply_filters( 'enable_post_by_email_configuration', true ) ) {
+	get_current_screen()->add_help_tab( array(
+		'id'      => 'options-postemail',
+		'title'   => __( 'Post Via Email' ),
+		'content' => '<p>' . __( 'Post via email settings allow you to send your WordPress install an email with the content of your post. You must set up a secret e-mail account with POP3 access to use this, and any mail received at this address will be posted, so it&#8217;s a good idea to keep this address very secret.' ) . '</p>',
+	) );
 }
 
-get_current_screen()->add_help_tab( array(
-	'id'      => 'options-postemail',
-	'title'   => __('Post Via Email'),
-	'content' => $post_email_help,
-) );
-
-get_current_screen()->add_help_tab( array(
-	'id'      => 'options-remote',
-	'title'   => __('Remote Publishing'),
-	'content' => '<p>' . __('Remote Publishing allows you to use an external editor (like the iOS or Android app) to write your posts.') . '</p>',
-) );
-
-get_current_screen()->add_help_tab( array(
-	'id'      => 'options-services',
-	'title'   => __('Update Services'),
-	'content' => '<p>' . __('If desired, WordPress will automatically alert various services of your new posts.') . '</p>',
-) );
+if ( apply_filters( 'enable_update_services_configuration', true ) ) {
+	get_current_screen()->add_help_tab( array(
+		'id'      => 'options-services',
+		'title'   => __( 'Update Services' ),
+		'content' => '<p>' . __( 'If desired, WordPress will automatically alert various services of your new posts.' ) . '</p>',
+	) );
+}
 
 get_current_screen()->set_help_sidebar(
 	'<p><strong>' . __('For more information:') . '</strong></p>' .
@@ -70,11 +62,6 @@
 
 <table class="form-table">
 <tr valign="top">
-<th scope="row"><label for="default_post_edit_rows"> <?php _e('Size of the post box') ?></label></th>
-<td><input name="default_post_edit_rows" type="text" id="default_post_edit_rows" value="<?php form_option('default_post_edit_rows'); ?>" class="small-text" />
-<?php _e('lines') ?></td>
-</tr>
-<tr valign="top">
 <th scope="row"><?php _e('Formatting') ?></th>
 <td><fieldset><legend class="screen-reader-text"><span><?php _e('Formatting') ?></span></legend>
 <label for="use_smilies">
@@ -107,7 +94,10 @@
 	</select>
 </td>
 </tr>
-<?php endif; endif; ?>
+<?php endif; endif;
+
+if ( get_option( 'link_manager_enabled' ) ) :
+?>
 <tr valign="top">
 <th scope="row"><label for="default_link_category"><?php _e('Default Link Category') ?></label></th>
 <td>
@@ -116,7 +106,12 @@
 ?>
 </td>
 </tr>
-<?php do_settings_fields('writing', 'default'); ?>
+<?php endif; ?>
+
+<?php
+do_settings_fields('writing', 'default');
+do_settings_fields('writing', 'remote_publishing'); // A deprecated section.
+?>
 </table>
 
 <h3 class="title"><?php _e('Press This') ?></h3>
@@ -163,28 +158,6 @@
 </table>
 <?php } ?>
 
-<h3><?php _e('Remote Publishing') ?></h3>
-<p><?php printf(__('To post to WordPress from a desktop blogging client or remote website that uses the Atom Publishing Protocol or one of the XML-RPC publishing interfaces you must enable them below.')) ?></p>
-<table class="form-table">
-<tr valign="top">
-<th scope="row"><?php _e('Atom Publishing Protocol') ?></th>
-<td><fieldset><legend class="screen-reader-text"><span><?php _e('Atom Publishing Protocol') ?></span></legend>
-<label for="enable_app">
-<input name="enable_app" type="checkbox" id="enable_app" value="1" <?php checked('1', get_option('enable_app')); ?> />
-<?php _e('Enable the Atom Publishing Protocol.') ?></label><br />
-</fieldset></td>
-</tr>
-<tr valign="top">
-<th scope="row"><?php _e('XML-RPC') ?></th>
-<td><fieldset><legend class="screen-reader-text"><span><?php _e('XML-RPC') ?></span></legend>
-<label for="enable_xmlrpc">
-<input name="enable_xmlrpc" type="checkbox" id="enable_xmlrpc" value="1" <?php checked('1', get_option('enable_xmlrpc')); ?> />
-<?php _e('Enable the WordPress, Movable Type, MetaWeblog and Blogger XML-RPC publishing protocols.') ?></label><br />
-</fieldset></td>
-</tr>
-<?php do_settings_fields('writing', 'remote_publishing'); ?>
-</table>
-
 <?php if ( apply_filters( 'enable_update_services_configuration', true ) ) { ?>
 <h3><?php _e('Update Services') ?></h3>
 
@@ -196,7 +169,7 @@
 
 <?php else : ?>
 
-	<p><?php printf(__('WordPress is not notifying any <a href="http://codex.wordpress.org/Update_Services">Update Services</a> because of your site&#8217;s <a href="%s">privacy settings</a>.'), 'options-privacy.php'); ?></p>
+	<p><?php printf(__('WordPress is not notifying any <a href="http://codex.wordpress.org/Update_Services">Update Services</a> because of your site&#8217;s <a href="%s">visibility settings</a>.'), 'options-reading.php'); ?></p>
 
 <?php endif; ?>
 <?php } // multisite ?>
--- a/web/wp-admin/options.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-admin/options.php	Wed Dec 19 17:46:52 2012 -0800
@@ -61,14 +61,16 @@
 $whitelist_options = array(
 	'general' => array( 'blogname', 'blogdescription', 'gmt_offset', 'date_format', 'time_format', 'start_of_week', 'timezone_string' ),
 	'discussion' => array( 'default_pingback_flag', 'default_ping_status', 'default_comment_status', 'comments_notify', 'moderation_notify', 'comment_moderation', 'require_name_email', 'comment_whitelist', 'comment_max_links', 'moderation_keys', 'blacklist_keys', 'show_avatars', 'avatar_rating', 'avatar_default', 'close_comments_for_old_posts', 'close_comments_days_old', 'thread_comments', 'thread_comments_depth', 'page_comments', 'comments_per_page', 'default_comments_page', 'comment_order', 'comment_registration' ),
-	'media' => array( 'thumbnail_size_w', 'thumbnail_size_h', 'thumbnail_crop', 'medium_size_w', 'medium_size_h', 'large_size_w', 'large_size_h', 'image_default_size', 'image_default_align', 'image_default_link_type', 'embed_autourls', 'embed_size_w', 'embed_size_h' ),
-	'privacy' => array( 'blog_public' ),
-	'reading' => array( 'posts_per_page', 'posts_per_rss', 'rss_use_excerpt', 'blog_charset', 'show_on_front', 'page_on_front', 'page_for_posts' ),
-	'writing' => array( 'default_post_edit_rows', 'use_smilies', 'default_category', 'default_email_category', 'use_balanceTags', 'default_link_category', 'default_post_format', 'enable_app', 'enable_xmlrpc' ),
-	'options' => array( '' ) );
+	'media' => array( 'thumbnail_size_w', 'thumbnail_size_h', 'thumbnail_crop', 'medium_size_w', 'medium_size_h', 'large_size_w', 'large_size_h', 'image_default_size', 'image_default_align', 'image_default_link_type' ),
+	'reading' => array( 'posts_per_page', 'posts_per_rss', 'rss_use_excerpt', 'show_on_front', 'page_on_front', 'page_for_posts', 'blog_public' ),
+	'writing' => array( 'use_smilies', 'default_category', 'default_email_category', 'use_balanceTags', 'default_link_category', 'default_post_format' )
+);
+$whitelist_options['misc'] = $whitelist_options['options'] = $whitelist_options['privacy'] = array();
 
 $mail_options = array('mailserver_url', 'mailserver_port', 'mailserver_login', 'mailserver_pass');
-$uploads_options = array('uploads_use_yearmonth_folders', 'upload_path', 'upload_url_path');
+
+if ( ! in_array( get_option( 'blog_charset' ), array( 'utf8', 'utf-8', 'UTF8', 'UTF-8' ) ) )
+	$whitelist_options['reading'][] = 'blog_charset';
 
 if ( !is_multisite() ) {
 	if ( !defined( 'WP_SITEURL' ) )
@@ -83,16 +85,19 @@
 	$whitelist_options['writing'] = array_merge($whitelist_options['writing'], $mail_options);
 	$whitelist_options['writing'][] = 'ping_sites';
 
-	$whitelist_options['media'] = array_merge($whitelist_options['media'], $uploads_options);
+	$whitelist_options['media'][] = 'uploads_use_yearmonth_folders';
+
+	// If upload_url_path and upload_path are both default values, they're locked.
+	if ( get_option( 'upload_url_path' ) || ( get_option('upload_path') != 'wp-content/uploads' && get_option('upload_path') ) ) {
+		$whitelist_options['media'][] = 'upload_path';
+		$whitelist_options['media'][] = 'upload_url_path';
+	}
 } else {
 	$whitelist_options['general'][] = 'new_admin_email';
 	$whitelist_options['general'][] = 'WPLANG';
-	$whitelist_options['general'][] = 'language';
 
 	if ( apply_filters( 'enable_post_by_email_configuration', true ) )
 		$whitelist_options['writing'] = array_merge($whitelist_options['writing'], $mail_options);
-
-	$whitelist_options[ 'misc' ] = array();
 }
 
 $whitelist_options = apply_filters( 'whitelist_options', $whitelist_options );
@@ -139,14 +144,15 @@
 			if ( $unregistered )
 				_deprecated_argument( 'options.php', '2.7', sprintf( __( 'The <code>%1$s</code> setting is unregistered. Unregistered settings are deprecated. See http://codex.wordpress.org/Settings_API' ), $option, $option_page ) );
 
-			$option = trim($option);
+			$option = trim( $option );
 			$value = null;
-			if ( isset($_POST[$option]) )
-				$value = $_POST[$option];
-			if ( !is_array($value) )
-				$value = trim($value);
-			$value = stripslashes_deep($value);
-			update_option($option, $value);
+			if ( isset( $_POST[ $option ] ) ) {
+				$value = $_POST[ $option ];
+				if ( ! is_array( $value ) )
+					$value = trim( $value );
+				$value = stripslashes_deep( $value );
+			}
+			update_option( $option, $value );
 		}
 	}
 
--- a/web/wp-admin/plugin-editor.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-admin/plugin-editor.php	Wed Dec 19 17:46:52 2012 -0800
@@ -118,6 +118,7 @@
 		'<p>' . __('You can use the editor to make changes to any of your plugins&#8217; individual PHP files. Be aware that if you make changes, plugins updates will overwrite your customizations.') . '</p>' .
 		'<p>' . __('Choose a plugin to edit from the menu in the upper right and click the Select button. Click once on any file name to load it in the editor, and make your changes. Don&#8217;t forget to save your changes (Update File) when you&#8217;re finished.') . '</p>' .
 		'<p>' . __('The Documentation menu below the editor lists the PHP functions recognized in the plugin file. Clicking Lookup takes you to a web page about that particular function.') . '</p>' .
+		'<p id="newcontent-description">' . __('In the editing area the Tab key enters a tab character. To move below this area by pressing Tab, press the Esc key followed by the Tab key.') . '</p>' .
 		'<p>' . __('If you want to make changes but don&#8217;t want them to be overwritten when the plugin is updated, you may be ready to think about writing your own plugin. For information on how to edit plugins, write your own from scratch, or just better understand their anatomy, check out the links below.') . '</p>' .
 		( is_network_admin() ? '<p>' . __('Any edits to files from this screen will be reflected on all sites in the network.') . '</p>' : '' )
 	) );
@@ -226,7 +227,7 @@
 </div>
 <form name="template" id="template" action="plugin-editor.php" method="post">
 	<?php wp_nonce_field('edit-plugin_' . $file) ?>
-		<div><textarea cols="70" rows="25" name="newcontent" id="newcontent" tabindex="1"><?php echo $content ?></textarea>
+		<div><textarea cols="70" rows="25" name="newcontent" id="newcontent" aria-describedby="newcontent-description"><?php echo $content; ?></textarea>
 		<input type="hidden" name="action" value="update" />
 		<input type="hidden" name="file" value="<?php echo esc_attr($file) ?>" />
 		<input type="hidden" name="plugin" value="<?php echo esc_attr($plugin) ?>" />
@@ -243,9 +244,9 @@
 	<?php
 		if ( isset($_GET['phperror']) ) {
 			echo "<input type='hidden' name='phperror' value='1' />";
-			submit_button( __( 'Update File and Attempt to Reactivate' ), 'primary', 'submit', false, array( 'tabindex' => '2' ) );
+			submit_button( __( 'Update File and Attempt to Reactivate' ), 'primary', 'submit', false );
 		} else {
-			submit_button( __( 'Update File' ), 'primary', 'submit', false, array( 'tabindex' => '2' ) );
+			submit_button( __( 'Update File' ), 'primary', 'submit', false );
 		}
 	?>
 	</p>
@@ -256,12 +257,10 @@
 <br class="clear" />
 </div>
 <script type="text/javascript">
-/* <![CDATA[ */
 jQuery(document).ready(function($){
 	$('#template').submit(function(){ $('#scrollto').val( $('#newcontent').scrollTop() ); });
 	$('#newcontent').scrollTop( $('#scrollto').val() );
 });
-/* ]]> */
 </script>
 <?php
 	break;
--- a/web/wp-admin/plugin-install.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-admin/plugin-install.php	Wed Dec 19 17:46:52 2012 -0800
@@ -45,9 +45,10 @@
 'id'		=> 'adding-plugins',
 'title'		=> __('Adding Plugins'),
 'content'	=>
-	'<p>' . __('If you know what you&#8217;re looking for, Search is your best bet. The Search screen has options to search the WordPress.org Plugin Directory for a particular Term, Author, or Tag. You can also search the directory by selecting a popular tags. Tags in larger type mean more plugins have been labeled with that tag.') . '</p>' .
+	'<p>' . __('If you know what you&#8217;re looking for, Search is your best bet. The Search screen has options to search the WordPress.org Plugin Directory for a particular Term, Author, or Tag. You can also search the directory by selecting popular tags. Tags in larger type mean more plugins have been labeled with that tag.') . '</p>' .
 	'<p>' . __('If you just want to get an idea of what&#8217;s available, you can browse Featured, Popular, and Newest plugins by using the links in the upper left of the screen. These sections rotate regularly.') . '</p>' .
-	'<p>' . __('If you want to install a plugin that you&#8217;ve downloaded elsewhere, click the Upload in the upper left. You will be prompted to upload the .zip package, and once uploaded, you can activate the new plugin.') . '</p>'
+	'<p>' . __('You can also browse a user&#8217;s favorite plugins, by using the Favorites link in the upper left of the screen and entering their WordPress.org username.') . '</p>' .
+	'<p>' . __('If you want to install a plugin that you&#8217;ve downloaded elsewhere, click the Upload link in the upper left. You will be prompted to upload the .zip package, and once uploaded, you can activate the new plugin.') . '</p>'
 ) );
 
 get_current_screen()->set_help_sidebar(
@@ -59,7 +60,7 @@
 include(ABSPATH . 'wp-admin/admin-header.php');
 ?>
 <div class="wrap">
-<?php screen_icon(); ?>
+<?php screen_icon( 'plugins' ); ?>
 <h2><?php echo esc_html( $title ); ?></h2>
 
 <?php $wp_list_table->views(); ?>
--- a/web/wp-admin/plugins.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-admin/plugins.php	Wed Dec 19 17:46:52 2012 -0800
@@ -9,14 +9,7 @@
 /** WordPress Administration Bootstrap */
 require_once('./admin.php');
 
-if ( is_multisite() ) {
-	$menu_perms = get_site_option( 'menu_items', array() );
-
-	if ( empty( $menu_perms['plugins'] ) && ! current_user_can( 'manage_network_plugins' ) )
-		wp_die( __( 'Cheatin&#8217; uh?' ) );
-}
-
-if ( !current_user_can('activate_plugins') )
+if ( ! current_user_can('activate_plugins') )
 	wp_die( __( 'You do not have sufficient permissions to manage plugins for this site.' ) );
 
 $wp_list_table = _get_list_table('WP_Plugins_List_Table');
@@ -37,6 +30,11 @@
 			if ( ! current_user_can('activate_plugins') )
 				wp_die(__('You do not have sufficient permissions to activate plugins for this site.'));
 
+			if ( is_multisite() && ! is_network_admin() && is_network_only_plugin( $plugin ) ) {
+				wp_redirect( self_admin_url("plugins.php?plugin_status=$status&paged=$page&s=$s") );
+				exit;
+			}
+
 			check_admin_referer('activate-plugin_' . $plugin);
 
 			$result = activate_plugin($plugin, self_admin_url('plugins.php?error=true&plugin=' . $plugin), is_network_admin() );
@@ -51,11 +49,6 @@
 			}
 
 			if ( ! is_network_admin() ) {
-				if ( is_network_only_plugin( $plugin ) ) {
-					wp_redirect( self_admin_url("plugins.php?plugin_status=$status&paged=$page&s=$s") );
-					exit;
-				}
-
 				$recent = (array) get_option( 'recently_activated' );
 				unset( $recent[ $plugin ] );
 				update_option( 'recently_activated', $recent );
--- a/web/wp-admin/post-new.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-admin/post-new.php	Wed Dec 19 17:46:52 2012 -0800
@@ -21,6 +21,9 @@
 if ( 'post' == $post_type ) {
 	$parent_file = 'edit.php';
 	$submenu_file = 'post-new.php';
+} elseif ( 'attachment' == $post_type ) {
+	wp_redirect( admin_url( 'media-new.php' ) );
+	exit;
 } else {
 	$submenu_file = "post-new.php?post_type=$post_type";
 	if ( isset( $post_type_object ) && $post_type_object->show_in_menu && $post_type_object->show_in_menu !== true ) {
@@ -36,14 +39,14 @@
 
 $editing = true;
 
-if ( ! current_user_can( $post_type_object->cap->edit_posts ) )
+if ( ! current_user_can( $post_type_object->cap->edit_posts ) || ! current_user_can( $post_type_object->cap->create_posts ) )
 	wp_die( __( 'Cheatin&#8217; uh?' ) );
 
 // Schedule auto-draft cleanup
 if ( ! wp_next_scheduled( 'wp_scheduled_auto_draft_delete' ) )
 	wp_schedule_event( time(), 'daily', 'wp_scheduled_auto_draft_delete' );
 
-wp_enqueue_script('autosave');
+wp_enqueue_script( 'autosave' );
 
 // Show post form.
 $post = get_default_post_to_edit( $post_type, true );
--- a/web/wp-admin/post.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-admin/post.php	Wed Dec 19 17:46:52 2012 -0800
@@ -85,8 +85,12 @@
 if ( ! $sendback ||
      strpos( $sendback, 'post.php' ) !== false ||
      strpos( $sendback, 'post-new.php' ) !== false ) {
-	$sendback = admin_url( 'edit.php' );
-	$sendback .= ( ! empty( $post_type ) ) ? '?post_type=' . $post_type : '';
+	if ( 'attachment' == $post_type ) {
+		$sendback = admin_url( 'upload.php' );
+	} else {
+		$sendback = admin_url( 'edit.php' );
+		$sendback .= ( ! empty( $post_type ) ) ? '?post_type=' . $post_type : '';
+	}
 } else {
 	$sendback = remove_query_arg( array('trashed', 'untrashed', 'deleted', 'ids'), $sendback );
 }
@@ -148,6 +152,10 @@
 		$parent_file = "edit.php";
 		$submenu_file = "edit.php";
 		$post_new_file = "post-new.php";
+	} elseif ( 'attachment' == $post_type ) {
+		$parent_file = 'upload.php';
+		$submenu_file = 'upload.php';
+		$post_new_file = 'media-new.php';
 	} else {
 		if ( isset( $post_type_object ) && $post_type_object->show_in_menu && $post_type_object->show_in_menu !== true )
 			$parent_file = $post_type_object->show_in_menu;
@@ -161,11 +169,13 @@
 		add_action('admin_notices', '_admin_notice_post_locked' );
 	} else {
 		$active_post_lock = wp_set_post_lock( $post->ID );
-		wp_enqueue_script('autosave');
+
+		if ( 'attachment' !== $post_type )
+			wp_enqueue_script('autosave');
 	}
 
 	$title = $post_type_object->labels->edit_item;
-	$post = get_post_to_edit($post_id);
+	$post = get_post($post_id, OBJECT, 'edit');
 
 	if ( post_type_supports($post_type, 'comments') ) {
 		wp_enqueue_script('admin-comments');
@@ -177,7 +187,7 @@
 	break;
 
 case 'editattachment':
-	check_admin_referer('update-attachment_' . $post_id);
+	check_admin_referer('update-post_' . $post_id);
 
 	// Don't let these be changed
 	unset($_POST['guid']);
@@ -190,7 +200,7 @@
 	wp_update_attachment_metadata( $post_id, $newmeta );
 
 case 'editpost':
-	check_admin_referer('update-' . $post_type . '_' . $post_id);
+	check_admin_referer('update-post_' . $post_id);
 
 	$post_id = edit_post();
 
@@ -200,9 +210,9 @@
 	break;
 
 case 'trash':
-	check_admin_referer('trash-' . $post_type . '_' . $post_id);
+	check_admin_referer('trash-post_' . $post_id);
 
-	$post = & get_post($post_id);
+	$post = get_post($post_id);
 
 	if ( !current_user_can($post_type_object->cap->delete_post, $post_id) )
 		wp_die( __('You are not allowed to move this item to the Trash.') );
@@ -215,7 +225,7 @@
 	break;
 
 case 'untrash':
-	check_admin_referer('untrash-' . $post_type . '_' . $post_id);
+	check_admin_referer('untrash-post_' . $post_id);
 
 	if ( !current_user_can($post_type_object->cap->delete_post, $post_id) )
 		wp_die( __('You are not allowed to move this item out of the Trash.') );
@@ -228,7 +238,7 @@
 	break;
 
 case 'delete':
-	check_admin_referer('delete-' . $post_type . '_' . $post_id);
+	check_admin_referer('delete-post_' . $post_id);
 
 	if ( !current_user_can($post_type_object->cap->delete_post, $post_id) )
 		wp_die( __('You are not allowed to delete this item.') );
--- a/web/wp-admin/press-this.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-admin/press-this.php	Wed Dec 19 17:46:52 2012 -0800
@@ -13,7 +13,7 @@
 
 header('Content-Type: ' . get_option('html_type') . '; charset=' . get_option('blog_charset'));
 
-if ( ! current_user_can('edit_posts') )
+if ( ! current_user_can( 'edit_posts' ) || ! current_user_can( get_post_type_object( 'post' )->cap->create_posts ) )
 	wp_die( __( 'Cheatin&#8217; uh?' ) );
 
 /**
@@ -110,7 +110,7 @@
 if ( !empty($_REQUEST['ajax']) ) {
 	switch ($_REQUEST['ajax']) {
 		case 'video': ?>
-			<script type="text/javascript" charset="utf-8">
+			<script type="text/javascript">
 			/* <![CDATA[ */
 				jQuery('.select').click(function() {
 					append_editor(jQuery('#embed-code').val());
@@ -133,7 +133,7 @@
 			<?php break;
 
 		case 'photo_thickbox': ?>
-			<script type="text/javascript" charset="utf-8">
+			<script type="text/javascript">
 				/* <![CDATA[ */
 				jQuery('.cancel').click(function() {
 					tb_remove();
@@ -172,7 +172,7 @@
 		 */
 		function get_images_from_uri($uri) {
 			$uri = preg_replace('/\/#.+?$/','', $uri);
-			if ( preg_match('/\.(jpg|jpe|jpeg|png|gif)$/', $uri) && !strpos($uri,'blogger.com') )
+			if ( preg_match( '/\.(jpe?g|jpe|gif|png)\b/i', $uri ) && !strpos( $uri, 'blogger.com' ) )
 				return "'" . esc_attr( html_entity_decode($uri) ) . "'";
 			$content = wp_remote_fopen($uri);
 			if ( false === $content )
@@ -288,7 +288,7 @@
 			return false;
 		}
 
-		jQuery('#extra-fields').html('<div class="postbox"><h2><?php _e( 'Add Photos' ); ?> <small id="photo_directions">(<?php _e("click images to select") ?>)</small></h2><ul class="actions"><li><a href="#" id="photo-add-url" class="button"><?php _e("Add from URL") ?> +</a></li></ul><div class="inside"><div class="titlewrap"><div id="img_container"></div></div><p id="options"><a href="#" class="close button"><?php _e('Cancel'); ?></a><a href="#" class="refresh button"><?php _e('Refresh'); ?></a></p></div>');
+		jQuery('#extra-fields').html('<div class="postbox"><h2><?php _e( 'Add Photos' ); ?> <small id="photo_directions">(<?php _e("click images to select") ?>)</small></h2><ul class="actions"><li><a href="#" id="photo-add-url" class="button button-small"><?php _e("Add from URL") ?> +</a></li></ul><div class="inside"><div class="titlewrap"><div id="img_container"></div></div><p id="options"><a href="#" class="close button"><?php _e('Cancel'); ?></a><a href="#" class="refresh button"><?php _e('Refresh'); ?></a></p></div>');
 		jQuery('#img_container').html(strtoappend);
 		<?php break;
 }
@@ -414,7 +414,7 @@
 	}
 	jQuery(document).ready(function($) {
 		//resize screen
-		window.resizeTo(720,580);
+		window.resizeTo(740,580);
 		// set button actions
 		jQuery('#photo_button').click(function() { show('photo'); return false; });
 		jQuery('#video_button').click(function() { show('video'); return false; });
@@ -427,7 +427,7 @@
 			show('photo');
 		<?php } ?>
 		jQuery('#title').unbind();
-		jQuery('#publish, #save').click(function() { jQuery('#saving').css('display', 'inline'); });
+		jQuery('#publish, #save').click(function() { jQuery('.press-this #publishing-actions .spinner').css('display', 'inline-block'); });
 
 		$('#tagsdiv-post_tag, #categorydiv').children('h3, .handlediv').click(function(){
 			$(this).siblings('.inside').toggle();
@@ -439,7 +439,7 @@
 $admin_body_class = ( is_rtl() ) ? 'rtl' : '';
 $admin_body_class .= ' locale-' . sanitize_html_class( strtolower( str_replace( '_', '-', get_locale() ) ) );
 ?>
-<body class="press-this wp-admin <?php echo $admin_body_class; ?>">
+<body class="press-this wp-admin wp-core-ui <?php echo $admin_body_class; ?>">
 <form action="press-this.php?action=post" method="post">
 <div id="poststuff" class="metabox-holder">
 	<div id="side-sortables" class="press-this-sidebar">
@@ -467,7 +467,7 @@
 							echo '<br /><br />';
 							submit_button( __( 'Submit for Review' ), 'primary', 'review', false );
 						} ?>
-						<img src="<?php echo esc_url( admin_url( 'images/wpspin_light.gif' ) ); ?>" alt="" id="saving" style="display:none;" />
+						<span class="spinner" style="display: none;"></span>
 					</p>
 					<?php if ( current_theme_supports( 'post-formats' ) && post_type_supports( 'post', 'post-formats' ) ) :
 							$post_formats = get_theme_support( 'post-formats' );
@@ -495,8 +495,8 @@
 				<div id="taxonomy-category" class="categorydiv">
 
 					<ul id="category-tabs" class="category-tabs">
-						<li class="tabs"><a href="#category-all" tabindex="3"><?php echo $tax->labels->all_items; ?></a></li>
-						<li class="hide-if-no-js"><a href="#category-pop" tabindex="3"><?php _e( 'Most Used' ); ?></a></li>
+						<li class="tabs"><a href="#category-all"><?php echo $tax->labels->all_items; ?></a></li>
+						<li class="hide-if-no-js"><a href="#category-pop"><?php _e( 'Most Used' ); ?></a></li>
 					</ul>
 
 					<div id="category-pop" class="tabs-panel" style="display: none;">
@@ -506,7 +506,7 @@
 					</div>
 
 					<div id="category-all" class="tabs-panel">
-						<ul id="categorychecklist" class="list:category categorychecklist form-no-clear">
+						<ul id="categorychecklist" data-wp-lists="list:category" class="categorychecklist form-no-clear">
 							<?php wp_terms_checklist($post_ID, array( 'taxonomy' => 'category', 'popular_cats' => $popular_ids ) ) ?>
 						</ul>
 					</div>
@@ -517,18 +517,18 @@
 					<?php if ( current_user_can($tax->cap->edit_terms) ) : ?>
 						<div id="category-adder" class="wp-hidden-children">
 							<h4>
-								<a id="category-add-toggle" href="#category-add" class="hide-if-no-js" tabindex="3">
+								<a id="category-add-toggle" href="#category-add" class="hide-if-no-js">
 									<?php printf( __( '+ %s' ), $tax->labels->add_new_item ); ?>
 								</a>
 							</h4>
 							<p id="category-add" class="category-add wp-hidden-child">
 								<label class="screen-reader-text" for="newcategory"><?php echo $tax->labels->add_new_item; ?></label>
-								<input type="text" name="newcategory" id="newcategory" class="form-required form-input-tip" value="<?php echo esc_attr( $tax->labels->new_item_name ); ?>" tabindex="3" aria-required="true"/>
+								<input type="text" name="newcategory" id="newcategory" class="form-required form-input-tip" value="<?php echo esc_attr( $tax->labels->new_item_name ); ?>" aria-required="true"/>
 								<label class="screen-reader-text" for="newcategory_parent">
 									<?php echo $tax->labels->parent_item_colon; ?>
 								</label>
-								<?php wp_dropdown_categories( array( 'taxonomy' => 'category', 'hide_empty' => 0, 'name' => 'newcategory_parent', 'orderby' => 'name', 'hierarchical' => 1, 'show_option_none' => '&mdash; ' . $tax->labels->parent_item . ' &mdash;', 'tab_index' => 3 ) ); ?>
-								<input type="button" id="category-add-submit" class="add:categorychecklist:category-add button category-add-submit" value="<?php echo esc_attr( $tax->labels->add_new_item ); ?>" tabindex="3" />
+								<?php wp_dropdown_categories( array( 'taxonomy' => 'category', 'hide_empty' => 0, 'name' => 'newcategory_parent', 'orderby' => 'name', 'hierarchical' => 1, 'show_option_none' => '&mdash; ' . $tax->labels->parent_item . ' &mdash;' ) ); ?>
+								<input type="button" id="category-add-submit" data-wp-lists="add:categorychecklist:category-add" class="button category-add-submit" value="<?php echo esc_attr( $tax->labels->add_new_item ); ?>" />
 								<?php wp_nonce_field( 'add-category', '_ajax_nonce-add-category', false ); ?>
 								<span id="category-ajax-response"></span>
 							</p>
@@ -548,7 +548,7 @@
 							<input type="hidden" name="tax_input[post_tag]" class="the-tags" id="tax-input[post_tag]" value="" />
 							<div class="ajaxtag">
 								<input type="text" name="newtag[post_tag]" class="newtag form-input-tip" size="16" autocomplete="off" value="" />
-								<input type="button" class="button tagadd" value="<?php esc_attr_e('Add'); ?>" tabindex="3" />
+								<input type="button" class="button tagadd" value="<?php esc_attr_e('Add'); ?>" />
 							</div>
 						</div>
 						<div class="tagchecklist"></div>
@@ -586,7 +586,7 @@
 			</div>
 		</div>
 
-		<div id="waiting" style="display: none"><img src="<?php echo esc_url( admin_url( 'images/wpspin_light.gif' ) ); ?>" alt="" /> <?php esc_html_e( 'Loading...' ); ?></div>
+		<div id="waiting" style="display: none"><span class="spinner"></span> <span><?php esc_html_e( 'Loading...' ); ?></span></div>
 
 		<div id="extra-fields" style="display: none"></div>
 
--- a/web/wp-admin/setup-config.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-admin/setup-config.php	Wed Dec 19 17:46:52 2012 -0800
@@ -85,7 +85,7 @@
  * @package WordPress
  * @subpackage Installer_WP_Config
  */
-function display_header() {
+function setup_config_display_header() {
 	global $wp_version;
 
 	header( 'Content-Type: text/html; charset=utf-8' );
@@ -96,16 +96,17 @@
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 <title><?php _e( 'WordPress &rsaquo; Setup Configuration File' ); ?></title>
 <link rel="stylesheet" href="css/install.css?ver=<?php echo preg_replace( '/[^0-9a-z\.-]/i', '', $wp_version ); ?>" type="text/css" />
+<link rel="stylesheet" href="../wp-includes/css/buttons.css?ver=<?php echo preg_replace( '/[^0-9a-z\.-]/i', '', $wp_version ); ?>" type="text/css" />
 
 </head>
-<body<?php if ( is_rtl() ) echo ' class="rtl"'; ?>>
-<h1 id="logo"><img alt="WordPress" src="images/wordpress-logo.png?ver=20120216" /></h1>
+<body class="wp-core-ui<?php if ( is_rtl() ) echo ' rtl'; ?>">
+<h1 id="logo"><a href="<?php esc_attr_e( 'http://wordpress.org/' ); ?>"><?php _e( 'WordPress' ); ?></a></h1>
 <?php
-}//end function display_header();
+} // end function setup_config_display_header();
 
 switch($step) {
 	case 0:
-		display_header();
+		setup_config_display_header();
 ?>
 
 <p><?php _e( 'Welcome to WordPress. Before getting started, we need some information on the database. You will need to know the following items before proceeding.' ) ?></p>
@@ -116,18 +117,18 @@
 	<li><?php _e( 'Database host' ); ?></li>
 	<li><?php _e( 'Table prefix (if you want to run more than one WordPress in a single database)' ); ?></li>
 </ol>
-<p><strong><?php _e( "If for any reason this automatic file creation doesn't work, don't worry. All this does is fill in the database information to a configuration file. You may also simply open <code>wp-config-sample.php</code> in a text editor, fill in your information, and save it as <code>wp-config.php</code>." ); ?></strong></p>
+<p><strong><?php _e( "If for any reason this automatic file creation doesn&#8217;t work, don&#8217;t worry. All this does is fill in the database information to a configuration file. You may also simply open <code>wp-config-sample.php</code> in a text editor, fill in your information, and save it as <code>wp-config.php</code>." ); ?></strong></p>
 <p><?php _e( "In all likelihood, these items were supplied to you by your Web Host. If you do not have this information, then you will need to contact them before you can continue. If you&#8217;re all ready&hellip;" ); ?></p>
 
-<p class="step"><a href="setup-config.php?step=1<?php if ( isset( $_GET['noapi'] ) ) echo '&amp;noapi'; ?>" class="button"><?php _e( 'Let&#8217;s go!' ); ?></a></p>
+<p class="step"><a href="setup-config.php?step=1<?php if ( isset( $_GET['noapi'] ) ) echo '&amp;noapi'; ?>" class="button button-large"><?php _e( 'Let&#8217;s go!' ); ?></a></p>
 <?php
 	break;
 
 	case 1:
-		display_header();
+		setup_config_display_header();
 	?>
 <form method="post" action="setup-config.php?step=2">
-	<p><?php _e( "Below you should enter your database connection details. If you're not sure about these, contact your host." ); ?></p>
+	<p><?php _e( "Below you should enter your database connection details. If you&#8217;re not sure about these, contact your host." ); ?></p>
 	<table class="form-table">
 		<tr>
 			<th scope="row"><label for="dbname"><?php _e( 'Database Name' ); ?></label></th>
@@ -156,7 +157,7 @@
 		</tr>
 	</table>
 	<?php if ( isset( $_GET['noapi'] ) ) { ?><input name="noapi" type="hidden" value="1" /><?php } ?>
-	<p class="step"><input name="submit" type="submit" value="<?php echo htmlspecialchars( __( 'Submit' ), ENT_QUOTES ); ?>" class="button" /></p>
+	<p class="step"><input name="submit" type="submit" value="<?php echo htmlspecialchars( __( 'Submit' ), ENT_QUOTES ); ?>" class="button button-large" /></p>
 </form>
 <?php
 	break;
@@ -165,7 +166,7 @@
 	foreach ( array( 'dbname', 'uname', 'pwd', 'dbhost', 'prefix' ) as $key )
 		$$key = trim( stripslashes( $_POST[ $key ] ) );
 
-	$tryagain_link = '</p><p class="step"><a href="setup-config.php?step=1" onclick="javascript:history.go(-1);return false;" class="button">' . __( 'Try Again' ) . '</a>';
+	$tryagain_link = '</p><p class="step"><a href="setup-config.php?step=1" onclick="javascript:history.go(-1);return false;" class="button button-large">' . __( 'Try again' ) . '</a>';
 
 	if ( empty( $prefix ) )
 		wp_die( __( '<strong>ERROR</strong>: "Table Prefix" must not be empty.' . $tryagain_link ) );
@@ -254,17 +255,24 @@
 	unset( $line );
 
 	if ( ! is_writable(ABSPATH) ) :
-		display_header();
+		setup_config_display_header();
 ?>
-<p><?php _e( "Sorry, but I can't write the <code>wp-config.php</code> file." ); ?></p>
+<p><?php _e( "Sorry, but I can&#8217;t write the <code>wp-config.php</code> file." ); ?></p>
 <p><?php _e( 'You can create the <code>wp-config.php</code> manually and paste the following text into it.' ); ?></p>
-<textarea cols="98" rows="15" class="code"><?php
+<textarea id="wp-config" cols="98" rows="15" class="code" readonly="readonly"><?php
 		foreach( $config_file as $line ) {
 			echo htmlentities($line, ENT_COMPAT, 'UTF-8');
 		}
 ?></textarea>
-<p><?php _e( 'After you\'ve done that, click "Run the install."' ); ?></p>
-<p class="step"><a href="install.php" class="button"><?php _e( 'Run the install' ); ?></a></p>
+<p><?php _e( 'After you&#8217;ve done that, click &#8220;Run the install.&#8221;' ); ?></p>
+<p class="step"><a href="install.php" class="button button-large"><?php _e( 'Run the install' ); ?></a></p>
+<script>
+(function(){
+var el=document.getElementById('wp-config');
+el.focus();
+el.select();
+})();
+</script>
 <?php
 	else :
 		$handle = fopen(ABSPATH . 'wp-config.php', 'w');
@@ -273,11 +281,11 @@
 		}
 		fclose($handle);
 		chmod(ABSPATH . 'wp-config.php', 0666);
-		display_header();
+		setup_config_display_header();
 ?>
-<p><?php _e( "All right sparky! You've made it through this part of the installation. WordPress can now communicate with your database. If you are ready, time now to&hellip;" ); ?></p>
+<p><?php _e( "All right sparky! You&#8217;ve made it through this part of the installation. WordPress can now communicate with your database. If you are ready, time now to&hellip;" ); ?></p>
 
-<p class="step"><a href="install.php" class="button"><?php _e( 'Run the install' ); ?></a></p>
+<p class="step"><a href="install.php" class="button button-large"><?php _e( 'Run the install' ); ?></a></p>
 <?php
 	endif;
 	break;
--- a/web/wp-admin/theme-editor.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-admin/theme-editor.php	Wed Dec 19 17:46:52 2012 -0800
@@ -27,6 +27,7 @@
 	'<p>' . __('You can use the Theme Editor to edit the individual CSS and PHP files which make up your theme.') . '</p>
 	<p>' . __('Begin by choosing a theme to edit from the dropdown menu and clicking Select. A list then appears of all the template files. Clicking once on any file name causes the file to appear in the large Editor box.') . '</p>
 	<p>' . __('For PHP files, you can use the Documentation dropdown to select from functions recognized in that file. Lookup takes you to a web page with reference material about that particular function.') . '</p>
+	<p id="newcontent-description">' . __('In the editing area the Tab key enters a tab character. To move below this area by pressing Tab, press the Esc key followed by the Tab key.') . '</p>
 	<p>' . __('After typing in your edits, click Update File.') . '</p>
 	<p>' . __('<strong>Advice:</strong> think very carefully about your site crashing if you are live-editing the theme currently in use.') . '</p>
 	<p>' . __('Upgrading to a newer version of the same theme will override changes made here. To avoid this, consider creating a <a href="http://codex.wordpress.org/Child_Themes" target="_blank">child theme</a> instead.') . '</p>' .
@@ -45,7 +46,7 @@
 wp_reset_vars( array( 'action', 'error', 'file', 'theme' ) );
 
 if ( $theme )
-	$stylesheet = urldecode( $theme );
+	$stylesheet = $theme;
 else
 	$stylesheet = get_stylesheet();
 
@@ -67,7 +68,7 @@
 	$relative_file = 'style.css';
 	$file = $allowed_files['style.css'];
 } else {
-	$relative_file = urldecode( stripslashes( $file ) );
+	$relative_file = stripslashes( $file );
 	$file = $theme->get_stylesheet_directory() . '/' . $relative_file;
 }
 
@@ -198,12 +199,12 @@
 else : ?>
 	<form name="template" id="template" action="theme-editor.php" method="post">
 	<?php wp_nonce_field( 'edit-theme_' . $file . $stylesheet ); ?>
-		 <div><textarea cols="70" rows="30" name="newcontent" id="newcontent" tabindex="1"><?php echo $content ?></textarea>
-		 <input type="hidden" name="action" value="update" />
-		 <input type="hidden" name="file" value="<?php echo esc_attr( $relative_file ); ?>" />
-		 <input type="hidden" name="theme" value="<?php echo esc_attr( $theme->get_stylesheet() ); ?>" />
-		 <input type="hidden" name="scrollto" id="scrollto" value="<?php echo $scrollto; ?>" />
-		 </div>
+		<div><textarea cols="70" rows="30" name="newcontent" id="newcontent" aria-describedby="newcontent-description"><?php echo $content; ?></textarea>
+		<input type="hidden" name="action" value="update" />
+		<input type="hidden" name="file" value="<?php echo esc_attr( $relative_file ); ?>" />
+		<input type="hidden" name="theme" value="<?php echo esc_attr( $theme->get_stylesheet() ); ?>" />
+		<input type="hidden" name="scrollto" id="scrollto" value="<?php echo $scrollto; ?>" />
+		</div>
 	<?php if ( ! empty( $functions ) ) : ?>
 		<div id="documentation" class="hide-if-no-js">
 		<label for="docs-list"><?php _e('Documentation:') ?></label>
@@ -219,7 +220,7 @@
 		<?php endif; ?>
 <?php
 	if ( is_writeable( $file ) ) :
-		submit_button( __( 'Update File' ), 'primary', 'submit', true, array( 'tabindex' => '2' ) );
+		submit_button( __( 'Update File' ), 'primary', 'submit', true );
 	else : ?>
 <p><em><?php _e('You need to make this file writable before you can save your changes. See <a href="http://codex.wordpress.org/Changing_File_Permissions">the Codex</a> for more information.'); ?></em></p>
 <?php endif; ?>
--- a/web/wp-admin/theme-install.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-admin/theme-install.php	Wed Dec 19 17:46:52 2012 -0800
@@ -49,7 +49,7 @@
 
 $help_installing =
 	'<p>' . __('Once you have generated a list of themes, you can preview and install any of them. Click on the thumbnail of the theme you&#8217;re interested in previewing. It will open up in a full-screen Preview page to give you a better idea of how that theme will look.') . '</p>' .
-	'<p>' . __('To install the theme so you can preview it with your site&#8217;s content and customize its theme options, click the "Install" button at the top of the left-hand pane. The theme files will be downloaded to your website automatically. When this is complete, the theme is now available for activation, which you can do by clicking the "Activate" link, or by navigating to your Installed Themes page and clicking the "Live Preview" link under any installed theme&#8217;s thumbnail image.') . '</p>';
+	'<p>' . __('To install the theme so you can preview it with your site&#8217;s content and customize its theme options, click the "Install" button at the top of the left-hand pane. The theme files will be downloaded to your website automatically. When this is complete, the theme is now available for activation, which you can do by clicking the "Activate" link, or by navigating to your Manage Themes screen and clicking the "Live Preview" link under any installed theme&#8217;s thumbnail image.') . '</p>';
 
 get_current_screen()->add_help_tab( array(
 	'id'      => 'installing',
--- a/web/wp-admin/themes.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-admin/themes.php	Wed Dec 19 17:46:52 2012 -0800
@@ -20,7 +20,7 @@
 		$theme = wp_get_theme( $_GET['stylesheet'] );
 		if ( ! $theme->exists() || ! $theme->is_allowed() )
 			wp_die( __( 'Cheatin&#8217; uh?' ) );
-		switch_theme( $theme->get_template(), $theme->get_stylesheet() );
+		switch_theme( $theme->get_stylesheet() );
 		wp_redirect( admin_url('themes.php?activated=true') );
 		exit;
 	} elseif ( 'delete' == $_GET['action'] ) {
@@ -108,10 +108,8 @@
 <div id="message1" class="updated"><p><?php _e('The active theme is broken. Reverting to the default theme.'); ?></p></div>
 <?php elseif ( isset($_GET['activated']) ) :
 		if ( isset( $_GET['previewed'] ) ) { ?>
-		<div id="message2" class="updated"><p><?php printf( __( 'Settings saved and theme activated. <a href="%s">Visit site</a>.' ), home_url( '/' ) ); ?></p></div>
-		<?php } elseif ( isset($wp_registered_sidebars) && count( (array) $wp_registered_sidebars ) && current_user_can('edit_theme_options') ) { ?>
-<div id="message2" class="updated"><p><?php printf( __('New theme activated. This theme supports widgets, please visit the <a href="%s">widgets settings</a> screen to configure them.'), admin_url( 'widgets.php' ) ); ?></p></div><?php
-		} else { ?>
+		<div id="message2" class="updated"><p><?php printf( __( 'Settings saved and theme activated. <a href="%s">Visit site</a>' ), home_url( '/' ) ); ?></p></div>
+		<?php } else { ?>
 <div id="message2" class="updated"><p><?php printf( __( 'New theme activated. <a href="%s">Visit site</a>' ), home_url( '/' ) ); ?></p></div><?php
 		}
 	elseif ( isset($_GET['deleted']) ) : ?>
@@ -147,6 +145,11 @@
 			<li><?php printf( __('Version %s'), $ct->display('Version') ); ?></li>
 		</ul>
 		<p class="theme-description"><?php echo $ct->display('Description'); ?></p>
+		<?php if ( $ct->parent() ) {
+			printf( ' <p class="howto">' . __( 'This <a href="%1$s">child theme</a> requires its parent theme, %2$s.' ) . '</p>',
+				__( 'http://codex.wordpress.org/Child_Themes' ),
+				$ct->parent()->display( 'Name' ) );
+		} ?>
 		<?php theme_update_available( $ct ); ?>
 	</div>
 
@@ -169,7 +172,10 @@
 				else
 					$options[] = "<a href='{$submenu[$item[2]][0][2]}'$class>{$item[0]}</a>";
 			} else if ( current_user_can($item[1]) ) {
-				if ( file_exists(ABSPATH . 'wp-admin/' . $item[2]) ) {
+				$menu_file = $item[2];
+				if ( false !== ( $pos = strpos( $menu_file, '?' ) ) )
+					$menu_file = substr( $menu_file, 0, $pos );
+				if ( file_exists( ABSPATH . "wp-admin/$menu_file" ) ) {
 					$options[] = "<a href='{$item[2]}'$class>{$item[0]}</a>";
 				} else {
 					$options[] = "<a href='themes.php?page={$item[2]}'$class>{$item[0]}</a>";
@@ -193,9 +199,11 @@
 				<li><?php echo $option; ?></li>
 			<?php endforeach; ?>
 		</ul>
+		<?php
+		endif; // options
+		?>
 	</div>
 	<?php
-		endif; // options
 	endif; // options || edit_theme_options
 	?>
 
--- a/web/wp-admin/update-core.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-admin/update-core.php	Wed Dec 19 17:46:52 2012 -0800
@@ -18,7 +18,7 @@
 	exit();
 }
 
-if ( ! current_user_can( 'update_core' ) )
+if ( ! current_user_can( 'update_core' ) && ! current_user_can( 'update_themes' ) && ! current_user_can( 'update_plugins' ) )
 	wp_die( __( 'You do not have sufficient permissions to update this site.' ) );
 
 function list_core_update( $update ) {
@@ -74,7 +74,7 @@
 	echo '<input name="locale" value="'. esc_attr($update->locale) .'" type="hidden"/>';
 	if ( $show_buttons ) {
 		if ( $first_pass ) {
-			submit_button( $submit, $current ? 'button' : 'primary', 'upgrade', false );
+			submit_button( $submit, $current ? 'button' : 'primary regular', 'upgrade', false );
 			$first_pass = false;
 		} else {
 			submit_button( $submit, 'button', 'upgrade', false );
@@ -131,28 +131,9 @@
  * @return null
  */
 function core_upgrade_preamble() {
-	global $upgrade_error, $wp_version;
+	global $wp_version;
 
 	$updates = get_core_updates();
-?>
-	<div class="wrap">
-	<?php screen_icon('tools'); ?>
-	<h2><?php _e('WordPress Updates'); ?></h2>
-<?php
-	if ( $upgrade_error ) {
-		echo '<div class="error"><p>';
-		if ( $upgrade_error == 'themes' )
-			_e('Please select one or more themes to update.');
-		else
-			_e('Please select one or more plugins to update.');
-		echo '</p></div>';
-	}
-
-	echo '<p>';
-	/* translators: %1 date, %2 time. */
-	printf( __('Last checked on %1$s at %2$s.'), date_i18n( get_option( 'date_format' ) ), date_i18n( get_option( 'time_format' ) ) );
-	echo ' &nbsp; <a class="button" href="' . esc_url( self_admin_url('update-core.php') ) . '">' . __( 'Check Again' ) . '</a>';
-	echo '</p>';
 
 	if ( !isset($updates[0]->response) || 'latest' == $updates[0]->response ) {
 		echo '<h3>';
@@ -183,13 +164,6 @@
 		echo '<p>' . sprintf( __( '<a href="%s">Learn more about WordPress %s</a>.' ), esc_url( self_admin_url( 'about.php' ) ), $normalized_version ) . '</p>';
 	}
 	dismissed_updates();
-
-	if ( current_user_can( 'update_plugins' ) )
-		list_plugin_updates();
-	if ( current_user_can( 'update_themes' ) )
-		list_theme_updates();
-	do_action('core_upgrade_preamble');
-	echo '</div>';
 }
 
 function list_plugin_updates() {
@@ -380,7 +354,7 @@
 	}
 
 	show_message( __('WordPress updated successfully') );
-	show_message( '<span class="hide-if-no-js">' . sprintf( __( 'Welcome to WordPress %1$s. You will be redirected to the About WordPress screen. If not, click <a href="%s">here</a>.' ), $result, esc_url( self_admin_url( 'about.php?updated' ) ) ) . '</span>' );
+	show_message( '<span class="hide-if-no-js">' . sprintf( __( 'Welcome to WordPress %1$s. You will be redirected to the About WordPress screen. If not, click <a href="%2$s">here</a>.' ), $result, esc_url( self_admin_url( 'about.php?updated' ) ) ) . '</span>' );
 	show_message( '<span class="hide-if-js">' . sprintf( __( 'Welcome to WordPress %1$s. <a href="%2$s">Learn more</a>.' ), $result, esc_url( self_admin_url( 'about.php?updated' ) ) ) . '</span>' );
 	?>
 	</div>
@@ -454,10 +428,41 @@
 
 	wp_version_check();
 	require_once(ABSPATH . 'wp-admin/admin-header.php');
-	core_upgrade_preamble();
+	?>
+	<div class="wrap">
+	<?php screen_icon('tools'); ?>
+	<h2><?php _e('WordPress Updates'); ?></h2>
+	<?php
+	if ( $upgrade_error ) {
+		echo '<div class="error"><p>';
+		if ( $upgrade_error == 'themes' )
+			_e('Please select one or more themes to update.');
+		else
+			_e('Please select one or more plugins to update.');
+		echo '</p></div>';
+	}
+
+	echo '<p>';
+	/* translators: %1 date, %2 time. */
+	printf( __('Last checked on %1$s at %2$s.'), date_i18n( get_option( 'date_format' ) ), date_i18n( get_option( 'time_format' ) ) );
+	echo ' &nbsp; <a class="button" href="' . esc_url( self_admin_url('update-core.php') ) . '">' . __( 'Check Again' ) . '</a>';
+	echo '</p>';
+
+	if ( current_user_can( 'update_core' ) )
+		core_upgrade_preamble();
+	if ( current_user_can( 'update_plugins' ) )
+		list_plugin_updates();
+	if ( current_user_can( 'update_themes' ) )
+		list_theme_updates();
+	do_action('core_upgrade_preamble');
+	echo '</div>';
 	include(ABSPATH . 'wp-admin/admin-footer.php');
 
 } elseif ( 'do-core-upgrade' == $action || 'do-core-reinstall' == $action ) {
+
+	if ( ! current_user_can( 'update_core' ) )
+		wp_die( __( 'You do not have sufficient permissions to update this site.' ) );
+
 	check_admin_referer('upgrade-core');
 
 	// do the (un)dismiss actions before headers,
--- a/web/wp-admin/update.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-admin/update.php	Wed Dec 19 17:46:52 2012 -0800
@@ -90,7 +90,7 @@
 	} elseif ( 'install-plugin' == $action ) {
 
 		if ( ! current_user_can('install_plugins') )
-			wp_die(__('You do not have sufficient permissions to install plugins for this site.'));
+			wp_die( __( 'You do not have sufficient permissions to install plugins on this site.' ) );
 
 		include_once ABSPATH . 'wp-admin/includes/plugin-install.php'; //for plugins_api..
 
@@ -121,7 +121,7 @@
 	} elseif ( 'upload-plugin' == $action ) {
 
 		if ( ! current_user_can('install_plugins') )
-			wp_die(__('You do not have sufficient permissions to install plugins for this site.'));
+			wp_die( __( 'You do not have sufficient permissions to install plugins on this site.' ) );
 
 		check_admin_referer('plugin-upload');
 
@@ -194,7 +194,7 @@
 	} elseif ( 'install-theme' == $action ) {
 
 		if ( ! current_user_can('install_themes') )
-			wp_die(__('You do not have sufficient permissions to install themes for this site.'));
+			wp_die( __( 'You do not have sufficient permissions to install themes on this site.' ) );
 
 		include_once ABSPATH . 'wp-admin/includes/theme-install.php'; //for themes_api..
 
@@ -224,7 +224,7 @@
 	} elseif ( 'upload-theme' == $action ) {
 
 		if ( ! current_user_can('install_themes') )
-			wp_die(__('You do not have sufficient permissions to install themes for this site.'));
+			wp_die( __( 'You do not have sufficient permissions to install themes on this site.' ) );
 
 		check_admin_referer('theme-upload');
 
--- a/web/wp-admin/upgrade.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-admin/upgrade.php	Wed Dec 19 17:46:52 2012 -0800
@@ -17,6 +17,8 @@
 /** Load WordPress Bootstrap */
 require( '../wp-load.php' );
 
+nocache_headers();
+
 timer_start();
 require_once( ABSPATH . 'wp-admin/includes/upgrade.php' );
 
@@ -55,14 +57,14 @@
 	wp_admin_css( 'ie', true );
 	?>
 </head>
-<body>
-<h1 id="logo"><img alt="WordPress" src="images/wordpress-logo.png?ver=20120216" /></h1>
+<body class="wp-core-ui">
+<h1 id="logo"><a href="<?php esc_attr_e( 'http://wordpress.org/' ); ?>"><?php _e( 'WordPress' ); ?></a></h1>
 
 <?php if ( get_option( 'db_version' ) == $wp_db_version || !is_blog_installed() ) : ?>
 
 <h2><?php _e( 'No Update Required' ); ?></h2>
 <p><?php _e( 'Your WordPress database is already up-to-date!' ); ?></p>
-<p class="step"><a class="button" href="<?php echo get_option( 'home' ); ?>/"><?php _e( 'Continue' ); ?></a></p>
+<p class="step"><a class="button button-large" href="<?php echo get_option( 'home' ); ?>/"><?php _e( 'Continue' ); ?></a></p>
 
 <?php elseif ( !$php_compat || !$mysql_compat ) :
 	if ( !$mysql_compat && !$php_compat )
@@ -82,7 +84,7 @@
 <h2><?php _e( 'Database Update Required' ); ?></h2>
 <p><?php _e( 'WordPress has been updated! Before we send you on your way, we have to update your database to the newest version.' ); ?></p>
 <p><?php _e( 'The update process may take a little while, so please be patient.' ); ?></p>
-<p class="step"><a class="button" href="upgrade.php?step=1&amp;backto=<?php echo $goback; ?>"><?php _e( 'Update WordPress Database' ); ?></a></p>
+<p class="step"><a class="button button-large" href="upgrade.php?step=1&amp;backto=<?php echo $goback; ?>"><?php _e( 'Update WordPress Database' ); ?></a></p>
 <?php
 		break;
 	case 1:
@@ -94,7 +96,7 @@
 ?>
 <h2><?php _e( 'Update Complete' ); ?></h2>
 	<p><?php _e( 'Your WordPress database has been successfully updated!' ); ?></p>
-	<p class="step"><a class="button" href="<?php echo $backto; ?>"><?php _e( 'Continue' ); ?></a></p>
+	<p class="step"><a class="button button-large" href="<?php echo $backto; ?>"><?php _e( 'Continue' ); ?></a></p>
 
 <!--
 <pre>
--- a/web/wp-admin/upload.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-admin/upload.php	Wed Dec 19 17:46:52 2012 -0800
@@ -57,7 +57,7 @@
 			if ( !$parent_id )
 				return;
 
-			$parent = &get_post( $parent_id );
+			$parent = get_post( $parent_id );
 			if ( !current_user_can( 'edit_post', $parent_id ) )
 				wp_die( __( 'You are not allowed to edit this post.' ) );
 
@@ -69,12 +69,14 @@
 					continue;
 
 				$attach[] = $att_id;
-				clean_attachment_cache( $att_id );
 			}
 
 			if ( ! empty( $attach ) ) {
-				$attach = implode( ',', $attach );
-				$attached = $wpdb->query( $wpdb->prepare( "UPDATE $wpdb->posts SET post_parent = %d WHERE post_type = 'attachment' AND ID IN ( $attach )", $parent_id ) );
+				$attach_string = implode( ',', $attach );
+				$attached = $wpdb->query( $wpdb->prepare( "UPDATE $wpdb->posts SET post_parent = %d WHERE post_type = 'attachment' AND ID IN ( $attach_string )", $parent_id ) );
+				foreach ( $attach as $att_id ) {
+					clean_attachment_cache( $att_id );
+				}
 			}
 
 			if ( isset( $attached ) ) {
--- a/web/wp-admin/user-edit.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-admin/user-edit.php	Wed Dec 19 17:46:52 2012 -0800
@@ -82,11 +82,12 @@
 if ( is_multisite() && IS_PROFILE_PAGE && isset( $_GET[ 'newuseremail' ] ) && $current_user->ID ) {
 	$new_email = get_option( $current_user->ID . '_new_email' );
 	if ( $new_email[ 'hash' ] == $_GET[ 'newuseremail' ] ) {
+		$user = new stdClass;
 		$user->ID = $current_user->ID;
 		$user->user_email = esc_html( trim( $new_email[ 'newemail' ] ) );
 		if ( $wpdb->get_var( $wpdb->prepare( "SELECT user_login FROM {$wpdb->signups} WHERE user_login = %s", $current_user->user_login ) ) )
 			$wpdb->query( $wpdb->prepare( "UPDATE {$wpdb->signups} SET user_email = %s WHERE user_login = %s", $user->user_email, $current_user->user_login ) );
-		wp_update_user( get_object_vars( $user ) );
+		wp_update_user( $user );
 		delete_option( $current_user->ID . '_new_email' );
 		wp_redirect( add_query_arg( array('updated' => 'true'), self_admin_url( 'profile.php' ) ) );
 		die();
@@ -139,7 +140,7 @@
 }
 
 if ( !is_wp_error( $errors ) ) {
-	$redirect = (IS_PROFILE_PAGE ? "profile.php?" : "user-edit.php?user_id=$user_id&"). "updated=true";
+	$redirect = add_query_arg( 'updated', true, get_edit_user_link( $user_id ) );
 	if ( $wp_http_referer )
 		$redirect = add_query_arg('wp_http_referer', urlencode($wp_http_referer), $redirect);
 	wp_redirect($redirect);
@@ -245,13 +246,13 @@
 	</tr>
 
 <?php if ( !IS_PROFILE_PAGE && !is_network_admin() ) : ?>
-<tr><th><label for="role"><?php _e('Role:') ?></label></th>
+<tr><th><label for="role"><?php _e('Role') ?></label></th>
 <td><select name="role" id="role">
 <?php
-// Get the highest/primary role for this user
+// Compare user role against currently editable roles
 // TODO: create a function that does this: wp_get_user_role()
-$user_roles = $profileuser->roles;
-$user_role = array_shift($user_roles);
+$user_roles = array_intersect( array_values( $profileuser->roles ), array_keys( get_editable_roles() ) );
+$user_role  = array_shift( $user_roles );
 
 // print the full list of roles with the primary one selected.
 wp_dropdown_roles($user_role);
@@ -266,9 +267,9 @@
 <?php endif; //!IS_PROFILE_PAGE
 
 if ( is_multisite() && is_network_admin() && ! IS_PROFILE_PAGE && current_user_can( 'manage_network_options' ) && !isset($super_admins) ) { ?>
-<tr><th><label for="role"><?php _e('Super Admin'); ?></label></th>
+<tr><th><?php _e('Super Admin'); ?></th>
 <td>
-<?php if ( $profileuser->user_email != get_site_option( 'admin_email' ) ) : ?>
+<?php if ( $profileuser->user_email != get_site_option( 'admin_email' ) || ! is_super_admin( $profileuser->ID ) ) : ?>
 <p><label><input type="checkbox" id="super_admin" name="super_admin"<?php checked( is_super_admin( $profileuser->ID ) ); ?> /> <?php _e( 'Grant this user super admin privileges for the Network.' ); ?></label></p>
 <?php else : ?>
 <p><?php _e( 'Super admin privileges cannot be removed because this user has the network admin email.' ); ?></p>
@@ -423,7 +424,7 @@
 break;
 }
 ?>
-<script type="text/javascript" charset="utf-8">
+<script type="text/javascript">
 	if (window.location.hash == '#password') {
 		document.getElementById('pass1').focus();
 	}
--- a/web/wp-admin/user-new.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-admin/user-new.php	Wed Dec 19 17:46:52 2012 -0800
@@ -18,6 +18,8 @@
 
 if ( is_multisite() ) {
 	function admin_created_user_email( $text ) {
+		$roles = get_editable_roles();
+		$role = $roles[ $_REQUEST['role'] ];
 		/* translators: 1: Site name, 2: site URL, 3: role */
 		return sprintf( __( 'Hi,
 You\'ve been invited to join \'%1$s\' at
@@ -26,7 +28,7 @@
 this email. This invitation will expire in a few days.
 
 Please click the following link to activate your user account:
-%%s' ), get_bloginfo('name'), home_url(), esc_html( $_REQUEST[ 'role' ] ) );
+%%s' ), get_bloginfo( 'name' ), home_url(), wp_specialchars_decode( translate_user_role( $role['name'] ) ) );
 	}
 	add_filter( 'wpmu_signup_user_notification_email', 'admin_created_user_email' );
 
@@ -72,6 +74,9 @@
 		} else {
 			$newuser_key = substr( md5( $user_id ), 0, 5 );
 			add_option( 'new_user_' . $newuser_key, array( 'user_id' => $user_id, 'email' => $user_details->user_email, 'role' => $_REQUEST[ 'role' ] ) );
+
+			$roles = get_editable_roles();
+			$role = $roles[ $_REQUEST['role'] ];
 			/* translators: 1: Site name, 2: site URL, 3: role, 4: activation URL */
 			$message = __( 'Hi,
 
@@ -80,7 +85,7 @@
 
 Please click the following link to confirm the invite:
 %4$s' );
-			wp_mail( $new_user_email, sprintf( __( '[%s] Joining confirmation' ), get_option( 'blogname' ) ), sprintf($message, get_option('blogname'), home_url(), $_REQUEST[ 'role' ], home_url("/newbloguser/$newuser_key/")));
+			wp_mail( $new_user_email, sprintf( __( '[%s] Joining confirmation' ), get_option( 'blogname' ) ), sprintf( $message, get_option( 'blogname' ), home_url(), wp_specialchars_decode( translate_user_role( $role['name'] ) ), home_url( "/newbloguser/$newuser_key/" ) ) );
 			$redirect = add_query_arg( array('update' => 'add'), 'user-new.php' );
 		}
 	}
@@ -122,7 +127,7 @@
 				wpmu_activate_signup( $key );
 				$redirect = add_query_arg( array('update' => 'addnoconfirmation'), 'user-new.php' );
 			} else {
-				$redirect = add_query_arg( array('update' => 'newuserconfimation'), 'user-new.php' );
+				$redirect = add_query_arg( array('update' => 'newuserconfirmation'), 'user-new.php' );
 			}
 			wp_redirect( $redirect );
 			die();
@@ -189,7 +194,7 @@
 	$messages = array();
 	if ( is_multisite() ) {
 		switch ( $_GET['update'] ) {
-			case "newuserconfimation":
+			case "newuserconfirmation":
 				$messages[] = __('Invitation email sent to new user. A confirmation link must be clicked before their account is created.');
 				break;
 			case "add":
@@ -262,7 +267,7 @@
 		$label = __('E-mail or Username');
 	}
 ?>
-<form action="" method="post" name="adduser" id="adduser" class="add:users: validate"<?php do_action('user_new_form_tag');?>>
+<form action="" method="post" name="adduser" id="adduser" class="validate"<?php do_action('user_new_form_tag');?>>
 <input name="action" type="hidden" value="adduser" />
 <?php wp_nonce_field( 'add-user', '_wpnonce_add-user' ) ?>
 
@@ -295,7 +300,7 @@
 		echo '<h3 id="create-new-user">' . __( 'Add New User' ) . '</h3>';
 ?>
 <p><?php _e('Create a brand new user and add it to this site.'); ?></p>
-<form action="" method="post" name="createuser" id="createuser" class="add:users: validate"<?php do_action('user_new_form_tag');?>>
+<form action="" method="post" name="createuser" id="createuser" class="validate"<?php do_action('user_new_form_tag');?>>
 <input name="action" type="hidden" value="createuser" />
 <?php wp_nonce_field( 'create-user', '_wpnonce_create-user' ) ?>
 <?php
--- a/web/wp-admin/users.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-admin/users.php	Wed Dec 19 17:46:52 2012 -0800
@@ -75,6 +75,22 @@
 
 $update = '';
 
+/**
+ * @since 3.5.0
+ * @access private
+ */
+function delete_users_add_js() { ?>
+<script>
+jQuery(document).ready( function($) {
+	var submit = $('#submit').prop('disabled', true);
+	$('input[name=delete_option]').one('change', function() {
+		submit.prop('disabled', false);
+	});
+});
+</script>
+<?php
+}
+
 switch ( $wp_list_table->current_action() ) {
 
 /* Bulk Dropdown menu Role changes */
@@ -111,7 +127,7 @@
 		if ( is_multisite() && !is_user_member_of_blog( $id ) )
 			wp_die(__('Cheatin&#8217; uh?'));
 
-		$user = new WP_User($id);
+		$user = get_userdata( $id );
 		$user->set_role($_REQUEST['new_role']);
 	}
 
@@ -131,16 +147,22 @@
 		exit();
 	}
 
+	$userids = array_map( 'intval', (array) $_REQUEST['users'] );
+
+	if ( empty( $_REQUEST['delete_option'] ) ) {
+		$url = self_admin_url( 'users.php?action=delete&users[]=' . implode( '&users[]=', $userids ) . '&error=true' );
+		$url = str_replace( '&amp;', '&', wp_nonce_url( $url, 'bulk-users' ) );
+		wp_redirect( $url );
+		exit;
+	}
+
 	if ( ! current_user_can( 'delete_users' ) )
 		wp_die(__('You can&#8217;t delete users.'));
 
-	$userids = $_REQUEST['users'];
 	$update = 'del';
 	$delete_count = 0;
 
-	foreach ( (array) $userids as $id) {
-		$id = (int) $id;
-
+	foreach ( $userids as $id ) {
 		if ( ! current_user_can( 'delete_user', $id ) )
 			wp_die(__( 'You can&#8217;t delete that user.' ) );
 
@@ -150,12 +172,10 @@
 		}
 		switch ( $_REQUEST['delete_option'] ) {
 		case 'delete':
-			if ( current_user_can('delete_user', $id) )
-				wp_delete_user($id);
+			wp_delete_user( $id );
 			break;
 		case 'reassign':
-			if ( current_user_can('delete_user', $id) )
-				wp_delete_user($id, $_REQUEST['reassign_user']);
+			wp_delete_user( $id, $_REQUEST['reassign_user'] );
 			break;
 		}
 		++$delete_count;
@@ -182,9 +202,11 @@
 		$errors = new WP_Error( 'edit_users', __( 'You can&#8217;t delete users.' ) );
 
 	if ( empty($_REQUEST['users']) )
-		$userids = array(intval($_REQUEST['user']));
+		$userids = array( intval( $_REQUEST['user'] ) );
 	else
-		$userids = (array) $_REQUEST['users'];
+		$userids = array_map( 'intval', (array) $_REQUEST['users'] );
+
+	add_action( 'admin_head', 'delete_users_add_js' );
 
 	include ('admin-header.php');
 ?>
@@ -195,29 +217,33 @@
 <div class="wrap">
 <?php screen_icon(); ?>
 <h2><?php _e('Delete Users'); ?></h2>
+<?php if ( isset( $_REQUEST['error'] ) ) : ?>
+<div class="error">
+	<p><strong><?php _e( 'ERROR:' ); ?></strong> <?php _e( 'Please select an option.' ); ?></p>
+</div>
+<?php endif; ?>
 <p><?php echo _n( 'You have specified this user for deletion:', 'You have specified these users for deletion:', count( $userids ) ); ?></p>
 <ul>
 <?php
 	$go_delete = 0;
 	foreach ( $userids as $id ) {
-		$id = (int) $id;
-		$user = new WP_User($id);
+		$user = get_userdata( $id );
 		if ( $id == $current_user->ID ) {
-			echo "<li>" . sprintf(__('ID #%1s: %2s <strong>The current user will not be deleted.</strong>'), $id, $user->user_login) . "</li>\n";
+			echo "<li>" . sprintf(__('ID #%1$s: %2$s <strong>The current user will not be deleted.</strong>'), $id, $user->user_login) . "</li>\n";
 		} else {
-			echo "<li><input type=\"hidden\" name=\"users[]\" value=\"" . esc_attr($id) . "\" />" . sprintf(__('ID #%1s: %2s'), $id, $user->user_login) . "</li>\n";
+			echo "<li><input type=\"hidden\" name=\"users[]\" value=\"" . esc_attr($id) . "\" />" . sprintf(__('ID #%1$s: %2$s'), $id, $user->user_login) . "</li>\n";
 			$go_delete++;
 		}
 	}
 	?>
 	</ul>
 <?php if ( $go_delete ) : ?>
-	<fieldset><p><legend><?php echo _n( 'What should be done with posts and links owned by this user?', 'What should be done with posts and links owned by these users?', $go_delete ); ?></legend></p>
+	<fieldset><p><legend><?php echo _n( 'What should be done with posts owned by this user?', 'What should be done with posts owned by these users?', $go_delete ); ?></legend></p>
 	<ul style="list-style:none;">
-		<li><label><input type="radio" id="delete_option0" name="delete_option" value="delete" checked="checked" />
-		<?php _e('Delete all posts and links.'); ?></label></li>
+		<li><label><input type="radio" id="delete_option0" name="delete_option" value="delete" />
+		<?php _e('Delete all posts.'); ?></label></li>
 		<li><input type="radio" id="delete_option1" name="delete_option" value="reassign" />
-		<?php echo '<label for="delete_option1">'.__('Attribute all posts and links to:').'</label>';
+		<?php echo '<label for="delete_option1">' . __( 'Attribute all posts to:' ) . '</label> ';
 		wp_dropdown_users( array( 'name' => 'reassign_user', 'exclude' => array_diff( $userids, array($current_user->ID) ) ) ); ?></li>
 	</ul></fieldset>
 	<input type="hidden" name="action" value="dodelete" />
@@ -302,13 +328,13 @@
 	$go_remove = false;
  	foreach ( $userids as $id ) {
 		$id = (int) $id;
- 		$user = new WP_User($id);
+ 		$user = get_userdata( $id );
 		if ( $id == $current_user->ID && !is_super_admin() ) {
-			echo "<li>" . sprintf(__('ID #%1s: %2s <strong>The current user will not be removed.</strong>'), $id, $user->user_login) . "</li>\n";
+			echo "<li>" . sprintf(__('ID #%1$s: %2$s <strong>The current user will not be removed.</strong>'), $id, $user->user_login) . "</li>\n";
 		} elseif ( !current_user_can('remove_user', $id) ) {
-			echo "<li>" . sprintf(__('ID #%1s: %2s <strong>You don\'t have permission to remove this user.</strong>'), $id, $user->user_login) . "</li>\n";
+			echo "<li>" . sprintf(__('ID #%1$s: %2$s <strong>You don\'t have permission to remove this user.</strong>'), $id, $user->user_login) . "</li>\n";
 		} else {
-			echo "<li><input type=\"hidden\" name=\"users[]\" value=\"{$id}\" />" . sprintf(__('ID #%1s: %2s'), $id, $user->user_login) . "</li>\n";
+			echo "<li><input type=\"hidden\" name=\"users[]\" value=\"{$id}\" />" . sprintf(__('ID #%1$s: %2$s'), $id, $user->user_login) . "</li>\n";
 			$go_remove = true;
 		}
  	}
--- a/web/wp-admin/widgets.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-admin/widgets.php	Wed Dec 19 17:46:52 2012 -0800
@@ -59,7 +59,7 @@
 'title'		=> __('Missing Widgets'),
 'content'	=>
 	'<p>' . __('Many themes show some sidebar widgets by default until you edit your sidebars, but they are not automatically displayed in your sidebar management tool. After you make your first widget change, you can re-add the default widgets by adding them from the Available Widgets area.') . '</p>' .
-		'<p>' . __('When changing themes, there is often some variation in the number and setup of widget areas/sidebars and sometimes these conflicts make the transition a bit less smooth. If you changed themes and seem to be missing widgets, scroll down on this screen to the Inactive area, where all your widgets and their settings will have been saved.') . '</p>'
+		'<p>' . __('When changing themes, there is often some variation in the number and setup of widget areas/sidebars and sometimes these conflicts make the transition a bit less smooth. If you changed themes and seem to be missing widgets, scroll down on this screen to the Inactive Widgets area, where all of your widgets and their settings will have been saved.') . '</p>'
 ) );
 
 get_current_screen()->set_help_sidebar(
@@ -68,23 +68,8 @@
 	'<p>' . __('<a href="http://wordpress.org/support/" target="_blank">Support Forums</a>') . '</p>'
 );
 
-if ( empty($wp_registered_sidebars) ) {
-	// the theme has no sidebars, die.
-	require_once( './admin-header.php' );
-?>
-
-	<div class="wrap">
-	<?php screen_icon(); ?>
-	<h2><?php echo esc_html( $title ); ?></h2>
-		<div class="error">
-			<p><?php _e( 'No Sidebars Defined' ); ?></p>
-		</div>
-		<p><?php _e( 'The theme you are currently using isn&#8217;t widget-aware, meaning that it has no sidebars that you are able to change. For information on making your theme widget-aware, please <a href="http://codex.wordpress.org/Widgetizing_Themes">follow these instructions</a>.' ); ?></p>
-	</div>
-
-<?php
-	require_once( './admin-footer.php' );
-	exit;
+if ( ! current_theme_supports( 'widgets' ) ) {
+	wp_die( __( 'The theme you are currently using isn&#8217;t widget-aware, meaning that it has no sidebars that you are able to change. For information on making your theme widget-aware, please <a href="http://codex.wordpress.org/Widgetizing_Themes">follow these instructions</a>.' ) );
 }
 
 // These are the widgets grouped by sidebar
@@ -360,12 +345,12 @@
 			<div class="sidebar-name">
 				<div class="sidebar-name-arrow"><br /></div>
 				<h3><?php echo esc_html( $registered_sidebar['name'] ); ?>
-					<span><img src="<?php echo esc_url( admin_url( 'images/wpspin_light.gif' ) ); ?>" class="ajax-feedback" title="" alt="" /></span>
+					<span class="spinner"></span>
 				</h3>
 			</div>
 			<div class="widget-holder inactive">
 				<?php wp_list_widget_controls( $registered_sidebar['id'] ); ?>
-				<br class="clear" />
+				<div class="clear"></div>
 			</div>
 		</div>
 <?php
@@ -395,7 +380,7 @@
 	<div class="sidebar-name">
 	<div class="sidebar-name-arrow"><br /></div>
 	<h3><?php echo esc_html( $registered_sidebar['name'] ); ?>
-	<span><img src="<?php echo esc_url( admin_url( 'images/wpspin_dark.gif' ) ); ?>" class="ajax-feedback" title="" alt="" /></span></h3></div>
+	<span class="spinner"></span></h3></div>
 	<?php wp_list_widget_controls( $sidebar ); // Show the control forms for each of the widgets in this sidebar ?>
 	</div>
 <?php
--- a/web/wp-app.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-app.php	Wed Dec 19 17:46:52 2012 -0800
@@ -2,6 +2,8 @@
 /**
  * Atom Publishing Protocol support for WordPress
  *
+ * @author Original by Elias Torres <http://torrez.us/archives/2006/08/31/491/>
+ * @author Modified by Dougal Campbell <http://dougal.gunters.org/>
  * @version 1.0.5-dc
  */
 
@@ -18,36 +20,1607 @@
 /** Atom Publishing Protocol Class */
 require_once(ABSPATH . WPINC . '/atomlib.php');
 
-/** Atom Server **/
-require_once(ABSPATH . WPINC . '/class-wp-atom-server.php');
-
 /** Admin Image API for metadata updating */
 require_once(ABSPATH . '/wp-admin/includes/image.php');
 
 $_SERVER['PATH_INFO'] = preg_replace( '/.*\/wp-app\.php/', '', $_SERVER['REQUEST_URI'] );
 
-// Allow for a plugin to insert a different class to handle requests.
-$wp_atom_server_class = apply_filters('wp_atom_server_class', 'wp_atom_server');
-$wp_atom_server = new $wp_atom_server_class;
+/**
+ * Whether to enable Atom Publishing Protocol Logging.
+ *
+ * @name app_logging
+ * @var int|bool
+ */
+$app_logging = 0;
 
-// Handle the request
-$wp_atom_server->handle_request();
-
-exit;
+/**
+ * Whether to always authenticate user. Permanently set to true.
+ *
+ * @name always_authenticate
+ * @var int|bool
+ * @todo Should be an option somewhere
+ */
+$always_authenticate = 1;
 
 /**
  * Writes logging info to a file.
  *
  * @since 2.2.0
- * @deprecated 3.4.0
- * @deprecated Use error_log()
- * @link http://www.php.net/manual/en/function.error-log.php
+ * @uses $app_logging
+ * @package WordPress
+ * @subpackage Logging
  *
  * @param string $label Type of logging
  * @param string $msg Information describing logging reason.
  */
-function log_app( $label, $msg ) {
-	_deprecated_function( __FUNCTION__, '3.4', 'error_log()' );
-	if ( ! empty( $GLOBALS['app_logging'] ) )
-		error_log( $label . ' - ' . $msg );
+function log_app($label,$msg) {
+	global $app_logging;
+	if ($app_logging) {
+		$fp = fopen( 'wp-app.log', 'a+');
+		$date = gmdate( 'Y-m-d H:i:s' );
+		fwrite($fp, "\n\n$date - $label\n$msg\n");
+		fclose($fp);
+	}
+}
+
+/**
+ * Filter to add more post statuses.
+ *
+ * @since 2.2.0
+ *
+ * @param string $where SQL statement to filter.
+ * @return string Filtered SQL statement with added post_status for where clause.
+ */
+function wa_posts_where_include_drafts_filter($where) {
+	$where = str_replace("post_status = 'publish'","post_status = 'publish' OR post_status = 'future' OR post_status = 'draft' OR post_status = 'inherit'", $where);
+	return $where;
+
+}
+add_filter('posts_where', 'wa_posts_where_include_drafts_filter');
+
+/**
+ * WordPress AtomPub API implementation.
+ *
+ * @package WordPress
+ * @subpackage Publishing
+ * @since 2.2.0
+ */
+class AtomServer {
+
+	/**
+	 * ATOM content type.
+	 *
+	 * @since 2.2.0
+	 * @var string
+	 */
+	var $ATOM_CONTENT_TYPE = 'application/atom+xml';
+
+	/**
+	 * Categories ATOM content type.
+	 *
+	 * @since 2.2.0
+	 * @var string
+	 */
+	var $CATEGORIES_CONTENT_TYPE = 'application/atomcat+xml';
+
+	/**
+	 * Service ATOM content type.
+	 *
+	 * @since 2.3.0
+	 * @var string
+	 */
+	var $SERVICE_CONTENT_TYPE = 'application/atomsvc+xml';
+
+	/**
+	 * ATOM XML namespace.
+	 *
+	 * @since 2.3.0
+	 * @var string
+	 */
+	var $ATOM_NS = 'http://www.w3.org/2005/Atom';
+
+	/**
+	 * ATOMPUB XML namespace.
+	 *
+	 * @since 2.3.0
+	 * @var string
+	 */
+	var $ATOMPUB_NS = 'http://www.w3.org/2007/app';
+
+	/**
+	 * Entries path.
+	 *
+	 * @since 2.2.0
+	 * @var string
+	 */
+	var $ENTRIES_PATH = "posts";
+
+	/**
+	 * Categories path.
+	 *
+	 * @since 2.2.0
+	 * @var string
+	 */
+	var $CATEGORIES_PATH = "categories";
+
+	/**
+	 * Media path.
+	 *
+	 * @since 2.2.0
+	 * @var string
+	 */
+	var $MEDIA_PATH = "attachments";
+
+	/**
+	 * Entry path.
+	 *
+	 * @since 2.2.0
+	 * @var string
+	 */
+	var $ENTRY_PATH = "post";
+
+	/**
+	 * Service path.
+	 *
+	 * @since 2.2.0
+	 * @var string
+	 */
+	var $SERVICE_PATH = "service";
+
+	/**
+	 * Media single path.
+	 *
+	 * @since 2.2.0
+	 * @var string
+	 */
+	var $MEDIA_SINGLE_PATH = "attachment";
+
+	/**
+	 * ATOMPUB parameters.
+	 *
+	 * @since 2.2.0
+	 * @var array
+	 */
+	var $params = array();
+
+	/**
+	 * Supported ATOMPUB media types.
+	 *
+	 * @since 2.3.0
+	 * @var array
+	 */
+	var $media_content_types = array('image/*','audio/*','video/*');
+
+	/**
+	 * ATOMPUB content type(s).
+	 *
+	 * @since 2.2.0
+	 * @var array
+	 */
+	var $atom_content_types = array('application/atom+xml');
+
+	/**
+	 * ATOMPUB methods.
+	 *
+	 * @since 2.2.0
+	 * @var unknown_type
+	 */
+	var $selectors = array();
+
+	/**
+	 * Whether to do output.
+	 *
+	 * Support for head.
+	 *
+	 * @since 2.2.0
+	 * @var bool
+	 */
+	var $do_output = true;
+
+	/**
+	 * PHP4 constructor - Sets up object properties.
+	 *
+	 * @since 2.2.0
+	 * @return AtomServer
+	 */
+	function AtomServer() {
+
+		$this->script_name = array_pop(explode('/',$_SERVER['SCRIPT_NAME']));
+		$this->app_base = get_bloginfo('url') . '/' . $this->script_name . '/';
+		if ( isset($_SERVER['HTTPS']) && strtolower($_SERVER['HTTPS']) == 'on' ) {
+			$this->app_base = preg_replace( '/^http:\/\//', 'https://', $this->app_base );
+		}
+
+		$this->selectors = array(
+			'@/service$@' =>
+				array('GET' => 'get_service'),
+			'@/categories$@' =>
+				array('GET' => 'get_categories_xml'),
+			'@/post/(\d+)$@' =>
+				array('GET' => 'get_post',
+						'PUT' => 'put_post',
+						'DELETE' => 'delete_post'),
+			'@/posts/?(\d+)?$@' =>
+				array('GET' => 'get_posts',
+						'POST' => 'create_post'),
+			'@/attachments/?(\d+)?$@' =>
+				array('GET' => 'get_attachment',
+						'POST' => 'create_attachment'),
+			'@/attachment/file/(\d+)$@' =>
+				array('GET' => 'get_file',
+						'PUT' => 'put_file',
+						'DELETE' => 'delete_file'),
+			'@/attachment/(\d+)$@' =>
+				array('GET' => 'get_attachment',
+						'PUT' => 'put_attachment',
+						'DELETE' => 'delete_attachment'),
+		);
+	}
+
+	/**
+	 * Handle ATOMPUB request.
+	 *
+	 * @since 2.2.0
+	 */
+	function handle_request() {
+		global $always_authenticate;
+
+		if( !empty( $_SERVER['ORIG_PATH_INFO'] ) )
+			$path = $_SERVER['ORIG_PATH_INFO'];
+		else
+			$path = $_SERVER['PATH_INFO'];
+
+		$method = $_SERVER['REQUEST_METHOD'];
+
+		log_app('REQUEST',"$method $path\n================");
+
+		$this->process_conditionals();
+		//$this->process_conditionals();
+
+		// exception case for HEAD (treat exactly as GET, but don't output)
+		if($method == 'HEAD') {
+			$this->do_output = false;
+			$method = 'GET';
+		}
+
+		// redirect to /service in case no path is found.
+		if(strlen($path) == 0 || $path == '/') {
+			$this->redirect($this->get_service_url());
+		}
+
+		// check to see if AtomPub is enabled
+		if( !get_option( 'enable_app' ) )
+			$this->forbidden( sprintf( __( 'AtomPub services are disabled on this blog.  An admin user can enable them at %s' ), admin_url('options-writing.php') ) );
+
+		// dispatch
+		foreach($this->selectors as $regex => $funcs) {
+			if(preg_match($regex, $path, $matches)) {
+			if(isset($funcs[$method])) {
+
+				// authenticate regardless of the operation and set the current
+				// user. each handler will decide if auth is required or not.
+				if(!$this->authenticate()) {
+					if ($always_authenticate) {
+						$this->auth_required('Credentials required.');
+					}
+				}
+
+				array_shift($matches);
+				call_user_func_array(array(&$this,$funcs[$method]), $matches);
+				exit();
+			} else {
+				// only allow what we have handlers for...
+				$this->not_allowed(array_keys($funcs));
+			}
+			}
+		}
+
+		// oops, nothing found
+		$this->not_found();
+	}
+
+	/**
+	 * Retrieve XML for ATOMPUB service.
+	 *
+	 * @since 2.2.0
+	 */
+	function get_service() {
+		log_app('function','get_service()');
+
+		if( !current_user_can( 'edit_posts' ) )
+			$this->auth_required( __( 'Sorry, you do not have the right to access this blog.' ) );
+
+		$entries_url = esc_attr($this->get_entries_url());
+		$categories_url = esc_attr($this->get_categories_url());
+		$media_url = esc_attr($this->get_attachments_url());
+		$accepted_media_types = '';
+		foreach ($this->media_content_types as $med) {
+			$accepted_media_types = $accepted_media_types . "<accept>" . $med . "</accept>";
+		}
+		$atom_prefix="atom";
+		$atom_blogname=get_bloginfo('name');
+		$service_doc = <<<EOD
+<service xmlns="$this->ATOMPUB_NS" xmlns:$atom_prefix="$this->ATOM_NS">
+  <workspace>
+    <$atom_prefix:title>$atom_blogname Workspace</$atom_prefix:title>
+    <collection href="$entries_url">
+      <$atom_prefix:title>$atom_blogname Posts</$atom_prefix:title>
+      <accept>$this->ATOM_CONTENT_TYPE;type=entry</accept>
+      <categories href="$categories_url" />
+    </collection>
+    <collection href="$media_url">
+      <$atom_prefix:title>$atom_blogname Media</$atom_prefix:title>
+      $accepted_media_types
+    </collection>
+  </workspace>
+</service>
+
+EOD;
+
+		$this->output($service_doc, $this->SERVICE_CONTENT_TYPE);
+	}
+
+	/**
+	 * Retrieve categories list in XML format.
+	 *
+	 * @since 2.2.0
+	 */
+	function get_categories_xml() {
+		log_app('function','get_categories_xml()');
+
+		if( !current_user_can( 'edit_posts' ) )
+			$this->auth_required( __( 'Sorry, you do not have the right to access this blog.' ) );
+
+		$home = esc_attr(get_bloginfo_rss('home'));
+
+		$categories = "";
+		$cats = get_categories("hierarchical=0&hide_empty=0");
+		foreach ((array) $cats as $cat) {
+			$categories .= "    <category term=\"" . esc_attr($cat->name) .  "\" />\n";
+}
+		$output = <<<EOD
+<app:categories xmlns:app="$this->ATOMPUB_NS"
+	xmlns="$this->ATOM_NS"
+	fixed="yes" scheme="$home">
+	$categories
+</app:categories>
+EOD;
+	$this->output($output, $this->CATEGORIES_CONTENT_TYPE);
 }
+
+	/**
+	 * Create new post.
+	 *
+	 * @since 2.2.0
+	 */
+	function create_post() {
+		global $blog_id, $user_ID;
+		$this->get_accepted_content_type($this->atom_content_types);
+
+		$parser = new AtomParser();
+		if(!$parser->parse()) {
+			$this->client_error();
+		}
+
+		$entry = array_pop($parser->feed->entries);
+
+		log_app('Received entry:', print_r($entry,true));
+
+		$catnames = array();
+		foreach($entry->categories as $cat)
+			array_push($catnames, $cat["term"]);
+
+		$wp_cats = get_categories(array('hide_empty' => false));
+
+		$post_category = array();
+
+		foreach($wp_cats as $cat) {
+			if(in_array($cat->name, $catnames))
+				array_push($post_category, $cat->term_id);
+		}
+
+		$publish = (isset($entry->draft) && trim($entry->draft) == 'yes') ? false : true;
+
+		$cap = ($publish) ? 'publish_posts' : 'edit_posts';
+
+		if(!current_user_can($cap))
+			$this->auth_required(__('Sorry, you do not have the right to edit/publish new posts.'));
+
+		$blog_ID = (int ) $blog_id;
+		$post_status = ($publish) ? 'publish' : 'draft';
+		$post_author = (int) $user_ID;
+		$post_title = $entry->title[1];
+		$post_content = $entry->content[1];
+		$post_excerpt = $entry->summary[1];
+		$pubtimes = $this->get_publish_time($entry->published);
+		$post_date = $pubtimes[0];
+		$post_date_gmt = $pubtimes[1];
+
+		if ( isset( $_SERVER['HTTP_SLUG'] ) )
+			$post_name = $_SERVER['HTTP_SLUG'];
+
+		$post_data = compact('blog_ID', 'post_author', 'post_date', 'post_date_gmt', 'post_content', 'post_title', 'post_category', 'post_status', 'post_excerpt', 'post_name');
+
+		$this->escape($post_data);
+		log_app('Inserting Post. Data:', print_r($post_data,true));
+
+		$postID = wp_insert_post($post_data);
+		if ( is_wp_error( $postID ) )
+			$this->internal_error($postID->get_error_message());
+
+		if (!$postID)
+			$this->internal_error(__('Sorry, your entry could not be posted. Something wrong happened.'));
+
+		// getting warning here about unable to set headers
+		// because something in the cache is printing to the buffer
+		// could we clean up wp_set_post_categories or cache to not print
+		// this could affect our ability to send back the right headers
+		@wp_set_post_categories($postID, $post_category);
+
+		do_action( 'atompub_create_post', $postID, $entry );
+
+		$output = $this->get_entry($postID);
+
+		log_app('function',"create_post($postID)");
+		$this->created($postID, $output);
+	}
+
+	/**
+	 * Retrieve post.
+	 *
+	 * @since 2.2.0
+	 *
+	 * @param int $postID Post ID.
+	 */
+	function get_post($postID) {
+		global $entry;
+
+		if( !current_user_can( 'edit_post', $postID ) )
+			$this->auth_required( __( 'Sorry, you do not have the right to access this post.' ) );
+
+		$this->set_current_entry($postID);
+		$output = $this->get_entry($postID);
+		log_app('function',"get_post($postID)");
+		$this->output($output);
+
+	}
+
+	/**
+	 * Update post.
+	 *
+	 * @since 2.2.0
+	 *
+	 * @param int $postID Post ID.
+	 */
+	function put_post($postID) {
+		// checked for valid content-types (atom+xml)
+		// quick check and exit
+		$this->get_accepted_content_type($this->atom_content_types);
+
+		$parser = new AtomParser();
+		if(!$parser->parse()) {
+			$this->bad_request();
+		}
+
+		$parsed = array_pop($parser->feed->entries);
+
+		log_app('Received UPDATED entry:', print_r($parsed,true));
+
+		// check for not found
+		global $entry;
+		$this->set_current_entry($postID);
+
+		if(!current_user_can('edit_post', $entry['ID']))
+			$this->auth_required(__('Sorry, you do not have the right to edit this post.'));
+
+		$publish = (isset($parsed->draft) && trim($parsed->draft) == 'yes') ? false : true;
+		$post_status = ($publish) ? 'publish' : 'draft';
+
+		extract($entry);
+
+		$post_title = $parsed->title[1];
+		$post_content = $parsed->content[1];
+		$post_excerpt = $parsed->summary[1];
+		$pubtimes = $this->get_publish_time($entry->published);
+		$post_date = $pubtimes[0];
+		$post_date_gmt = $pubtimes[1];
+		$pubtimes = $this->get_publish_time($parsed->updated);
+		$post_modified = $pubtimes[0];
+		$post_modified_gmt = $pubtimes[1];
+
+		$postdata = compact('ID', 'post_content', 'post_title', 'post_category', 'post_status', 'post_excerpt', 'post_date', 'post_date_gmt', 'post_modified', 'post_modified_gmt');
+		$this->escape($postdata);
+
+		$result = wp_update_post($postdata);
+
+		if (!$result) {
+			$this->internal_error(__('For some strange yet very annoying reason, this post could not be edited.'));
+		}
+
+		do_action( 'atompub_put_post', $ID, $parsed );
+
+		log_app('function',"put_post($postID)");
+		$this->ok();
+	}
+
+	/**
+	 * Remove post.
+	 *
+	 * @since 2.2.0
+	 *
+	 * @param int $postID Post ID.
+	 */
+	function delete_post($postID) {
+
+		// check for not found
+		global $entry;
+		$this->set_current_entry($postID);
+
+		if(!current_user_can('edit_post', $postID)) {
+			$this->auth_required(__('Sorry, you do not have the right to delete this post.'));
+		}
+
+		if ($entry['post_type'] == 'attachment') {
+			$this->delete_attachment($postID);
+		} else {
+			$result = wp_delete_post($postID);
+
+			if (!$result) {
+				$this->internal_error(__('For some strange yet very annoying reason, this post could not be deleted.'));
+			}
+
+			log_app('function',"delete_post($postID)");
+			$this->ok();
+		}
+
+	}
+
+	/**
+	 * Retrieve attachment.
+	 *
+	 * @since 2.2.0
+	 *
+	 * @param int $postID Optional. Post ID.
+	 */
+	function get_attachment($postID = null) {
+		if( !current_user_can( 'upload_files' ) )
+			$this->auth_required( __( 'Sorry, you do not have permission to upload files.' ) );
+
+		if (!isset($postID)) {
+			$this->get_attachments();
+		} else {
+			$this->set_current_entry($postID);
+			$output = $this->get_entry($postID, 'attachment');
+			log_app('function',"get_attachment($postID)");
+			$this->output($output);
+		}
+	}
+
+	/**
+	 * Create new attachment.
+	 *
+	 * @since 2.2.0
+	 */
+	function create_attachment() {
+
+		$type = $this->get_accepted_content_type();
+
+		if(!current_user_can('upload_files'))
+			$this->auth_required(__('You do not have permission to upload files.'));
+
+		$fp = fopen("php://input", "rb");
+		$bits = null;
+		while(!feof($fp)) {
+			$bits .= fread($fp, 4096);
+		}
+		fclose($fp);
+
+		$slug = '';
+		if ( isset( $_SERVER['HTTP_SLUG'] ) )
+			$slug = sanitize_file_name( $_SERVER['HTTP_SLUG'] );
+		elseif ( isset( $_SERVER['HTTP_TITLE'] ) )
+			$slug = sanitize_file_name( $_SERVER['HTTP_TITLE'] );
+		elseif ( empty( $slug ) ) // just make a random name
+			$slug = substr( md5( uniqid( microtime() ) ), 0, 7);
+		$ext = preg_replace( '|.*/([a-z0-9]+)|', '$1', $_SERVER['CONTENT_TYPE'] );
+		$slug = "$slug.$ext";
+		$file = wp_upload_bits( $slug, NULL, $bits);
+
+		log_app('wp_upload_bits returns:',print_r($file,true));
+
+		$url = $file['url'];
+		$file = $file['file'];
+
+		do_action('wp_create_file_in_uploads', $file); // replicate
+
+		// Construct the attachment array
+		$attachment = array(
+			'post_title' => $slug,
+			'post_content' => $slug,
+			'post_status' => 'attachment',
+			'post_parent' => 0,
+			'post_mime_type' => $type,
+			'guid' => $url
+			);
+
+		// Save the data
+		$postID = wp_insert_attachment($attachment, $file);
+
+		if (!$postID)
+			$this->internal_error(__('Sorry, your entry could not be posted. Something wrong happened.'));
+
+		$output = $this->get_entry($postID, 'attachment');
+
+		$this->created($postID, $output, 'attachment');
+		log_app('function',"create_attachment($postID)");
+	}
+
+	/**
+	 * Update attachment.
+	 *
+	 * @since 2.2.0
+	 *
+	 * @param int $postID Post ID.
+	 */
+	function put_attachment($postID) {
+		// checked for valid content-types (atom+xml)
+		// quick check and exit
+		$this->get_accepted_content_type($this->atom_content_types);
+
+		$parser = new AtomParser();
+		if(!$parser->parse()) {
+			$this->bad_request();
+		}
+
+		$parsed = array_pop($parser->feed->entries);
+
+		// check for not found
+		global $entry;
+		$this->set_current_entry($postID);
+
+		if(!current_user_can('edit_post', $entry['ID']))
+			$this->auth_required(__('Sorry, you do not have the right to edit this post.'));
+
+		extract($entry);
+
+		$post_title = $parsed->title[1];
+		$post_content = $parsed->summary[1];
+		$pubtimes = $this->get_publish_time($parsed->updated);
+		$post_modified = $pubtimes[0];
+		$post_modified_gmt = $pubtimes[1];
+
+		$postdata = compact('ID', 'post_content', 'post_title', 'post_category', 'post_status', 'post_excerpt', 'post_modified', 'post_modified_gmt');
+		$this->escape($postdata);
+
+		$result = wp_update_post($postdata);
+
+		if (!$result) {
+			$this->internal_error(__('For some strange yet very annoying reason, this post could not be edited.'));
+		}
+
+		log_app('function',"put_attachment($postID)");
+		$this->ok();
+	}
+
+	/**
+	 * Remove attachment.
+	 *
+	 * @since 2.2.0
+	 *
+	 * @param int $postID Post ID.
+	 */
+	function delete_attachment($postID) {
+		log_app('function',"delete_attachment($postID). File '$location' deleted.");
+
+		// check for not found
+		global $entry;
+		$this->set_current_entry($postID);
+
+		if(!current_user_can('edit_post', $postID)) {
+			$this->auth_required(__('Sorry, you do not have the right to delete this post.'));
+		}
+
+		$location = get_post_meta($entry['ID'], '_wp_attached_file', true);
+		$filetype = wp_check_filetype($location);
+
+		if(!isset($location) || 'attachment' != $entry['post_type'] || empty($filetype['ext']))
+			$this->internal_error(__('Error ocurred while accessing post metadata for file location.'));
+
+		// delete file
+		@unlink($location);
+
+		// delete attachment
+		$result = wp_delete_post($postID);
+
+		if (!$result) {
+			$this->internal_error(__('For some strange yet very annoying reason, this post could not be deleted.'));
+		}
+
+		log_app('function',"delete_attachment($postID). File '$location' deleted.");
+		$this->ok();
+	}
+
+	/**
+	 * Retrieve attachment from post.
+	 *
+	 * @since 2.2.0
+	 *
+	 * @param int $postID Post ID.
+	 */
+	function get_file($postID) {
+
+		// check for not found
+		global $entry;
+		$this->set_current_entry($postID);
+
+		// then whether user can edit the specific post
+		if(!current_user_can('edit_post', $postID)) {
+			$this->auth_required(__('Sorry, you do not have the right to edit this post.'));
+		}
+
+		$location = get_post_meta($entry['ID'], '_wp_attached_file', true);
+		$location = get_option ('upload_path') . '/' . $location;
+		$filetype = wp_check_filetype($location);
+
+		if(!isset($location) || 'attachment' != $entry['post_type'] || empty($filetype['ext']))
+			$this->internal_error(__('Error ocurred while accessing post metadata for file location.'));
+
+		status_header('200');
+		header('Content-Type: ' . $entry['post_mime_type']);
+		header('Connection: close');
+
+		if ($fp = fopen($location, "rb")) {
+			status_header('200');
+			header('Content-Type: ' . $entry['post_mime_type']);
+			header('Connection: close');
+
+			while(!feof($fp)) {
+				echo fread($fp, 4096);
+			}
+
+			fclose($fp);
+		} else {
+			status_header ('404');
+		}
+
+		log_app('function',"get_file($postID)");
+		exit;
+	}
+
+	/**
+	 * Upload file to blog and add attachment to post.
+	 *
+	 * @since 2.2.0
+	 *
+	 * @param int $postID Post ID.
+	 */
+	function put_file($postID) {
+
+		// first check if user can upload
+		if(!current_user_can('upload_files'))
+			$this->auth_required(__('You do not have permission to upload files.'));
+
+		// check for not found
+		global $entry;
+		$this->set_current_entry($postID);
+
+		// then whether user can edit the specific post
+		if(!current_user_can('edit_post', $postID)) {
+			$this->auth_required(__('Sorry, you do not have the right to edit this post.'));
+		}
+
+		$upload_dir = wp_upload_dir( );
+		$location = get_post_meta($entry['ID'], '_wp_attached_file', true);
+		$filetype = wp_check_filetype($location);
+
+		$location = "{$upload_dir['basedir']}/{$location}";
+
+		if(!isset($location) || 'attachment' != $entry['post_type'] || empty($filetype['ext']))
+			$this->internal_error(__('Error ocurred while accessing post metadata for file location.'));
+
+		$fp = fopen("php://input", "rb");
+		$localfp = fopen($location, "w+");
+		while(!feof($fp)) {
+			fwrite($localfp,fread($fp, 4096));
+		}
+		fclose($fp);
+		fclose($localfp);
+
+		$ID = $entry['ID'];
+		$pubtimes = $this->get_publish_time($entry->published);
+		$post_date = $pubtimes[0];
+		$post_date_gmt = $pubtimes[1];
+		$pubtimes = $this->get_publish_time($parsed->updated);
+		$post_modified = $pubtimes[0];
+		$post_modified_gmt = $pubtimes[1];
+
+		$post_data = compact('ID', 'post_date', 'post_date_gmt', 'post_modified', 'post_modified_gmt');
+		$result = wp_update_post($post_data);
+
+		if (!$result) {
+			$this->internal_error(__('Sorry, your entry could not be posted. Something wrong happened.'));
+		}
+
+		wp_update_attachment_metadata( $postID, wp_generate_attachment_metadata( $postID, $location ) );
+
+		log_app('function',"put_file($postID)");
+		$this->ok();
+	}
+
+	/**
+	 * Retrieve entries URL.
+	 *
+	 * @since 2.2.0
+	 *
+	 * @param int $page Page ID.
+	 * @return string
+	 */
+	function get_entries_url($page = null) {
+		if ( isset($GLOBALS['post_type']) && ( $GLOBALS['post_type'] == 'attachment' ) ) {
+			$path = $this->MEDIA_PATH;
+		} else {
+			$path = $this->ENTRIES_PATH;
+		}
+		$url = $this->app_base . $path;
+		if(isset($page) && is_int($page)) {
+			$url .= "/$page";
+		}
+		return $url;
+	}
+
+	/**
+	 * Display entries URL.
+	 *
+	 * @since 2.2.0
+	 *
+	 * @param int $page Page ID.
+	 */
+	function the_entries_url($page = null) {
+		echo $this->get_entries_url($page);
+	}
+
+	/**
+	 * Retrieve categories URL.
+	 *
+	 * @since 2.2.0
+	 *
+	 * @param mixed $deprecated Optional, not used.
+	 * @return string
+	 */
+	function get_categories_url($deprecated = '') {
+		return $this->app_base . $this->CATEGORIES_PATH;
+	}
+
+	/**
+	 * Display category URL.
+	 *
+	 * @since 2.2.0
+	 */
+	function the_categories_url() {
+		echo $this->get_categories_url();
+	}
+
+	/**
+	 * Retrieve attachment URL.
+	 *
+	 * @since 2.2.0
+	 *
+	 * @param int $page Page ID.
+	 * @return string
+	 */
+	function get_attachments_url($page = null) {
+		$url = $this->app_base . $this->MEDIA_PATH;
+		if(isset($page) && is_int($page)) {
+			$url .= "/$page";
+		}
+		return $url;
+	}
+
+	/**
+	 * Display attachment URL.
+	 *
+	 * @since 2.2.0
+	 *
+	 * @param int $page Page ID.
+	 */
+	function the_attachments_url($page = null) {
+		echo $this->get_attachments_url($page);
+	}
+
+	/**
+	 * Retrieve service URL.
+	 *
+	 * @since 2.3.0
+	 *
+	 * @return string
+	 */
+	function get_service_url() {
+		return $this->app_base . $this->SERVICE_PATH;
+	}
+
+	/**
+	 * Retrieve entry URL.
+	 *
+	 * @since 2.7.0
+	 *
+	 * @param int $postID Post ID.
+	 * @return string
+	 */
+	function get_entry_url($postID = null) {
+		if(!isset($postID)) {
+			global $post;
+			$postID = (int) $post->ID;
+		}
+
+		$url = $this->app_base . $this->ENTRY_PATH . "/$postID";
+
+		log_app('function',"get_entry_url() = $url");
+		return $url;
+	}
+
+	/**
+	 * Display entry URL.
+	 *
+	 * @since 2.7.0
+	 *
+	 * @param int $postID Post ID.
+	 */
+	function the_entry_url($postID = null) {
+		echo $this->get_entry_url($postID);
+	}
+
+	/**
+	 * Retrieve media URL.
+	 *
+	 * @since 2.2.0
+	 *
+	 * @param int $postID Post ID.
+	 * @return string
+	 */
+	function get_media_url($postID = null) {
+		if(!isset($postID)) {
+			global $post;
+			$postID = (int) $post->ID;
+		}
+
+		$url = $this->app_base . $this->MEDIA_SINGLE_PATH ."/file/$postID";
+
+		log_app('function',"get_media_url() = $url");
+		return $url;
+	}
+
+	/**
+	 * Display the media URL.
+	 *
+	 * @since 2.2.0
+	 *
+	 * @param int $postID Post ID.
+	 */
+	function the_media_url($postID = null) {
+		echo $this->get_media_url($postID);
+	}
+
+	/**
+	 * Set the current entry to post ID.
+	 *
+	 * @since 2.2.0
+	 *
+	 * @param int $postID Post ID.
+	 */
+	function set_current_entry($postID) {
+		global $entry;
+		log_app('function',"set_current_entry($postID)");
+
+		if(!isset($postID)) {
+			// $this->bad_request();
+			$this->not_found();
+		}
+
+		$entry = wp_get_single_post($postID,ARRAY_A);
+
+		if(!isset($entry) || !isset($entry['ID']))
+			$this->not_found();
+
+		return;
+	}
+
+	/**
+	 * Display posts XML.
+	 *
+	 * @since 2.2.0
+	 *
+	 * @param int $page Optional. Page ID.
+	 * @param string $post_type Optional, default is 'post'. Post Type.
+	 */
+	function get_posts($page = 1, $post_type = 'post') {
+			log_app('function',"get_posts($page, '$post_type')");
+			$feed = $this->get_feed($page, $post_type);
+			$this->output($feed);
+	}
+
+	/**
+	 * Display attachment XML.
+	 *
+	 * @since 2.2.0
+	 *
+	 * @param int $page Page ID.
+	 * @param string $post_type Optional, default is 'attachment'. Post type.
+	 */
+	function get_attachments($page = 1, $post_type = 'attachment') {
+		log_app('function',"get_attachments($page, '$post_type')");
+		$GLOBALS['post_type'] = $post_type;
+		$feed = $this->get_feed($page, $post_type);
+		$this->output($feed);
+	}
+
+	/**
+	 * Retrieve feed XML.
+	 *
+	 * @since 2.2.0
+	 *
+	 * @param int $page Page ID.
+	 * @param string $post_type Optional, default is post. Post type.
+	 * @return string
+	 */
+	function get_feed($page = 1, $post_type = 'post') {
+		global $post, $wp, $wp_query, $posts, $wpdb, $blog_id;
+		log_app('function',"get_feed($page, '$post_type')");
+		ob_start();
+
+		$this->ENTRY_PATH = $post_type;
+
+		if(!isset($page)) {
+			$page = 1;
+		}
+		$page = (int) $page;
+
+		$count = get_option('posts_per_rss');
+
+		wp('posts_per_page=' . $count . '&offset=' . ($count * ($page-1) . '&orderby=modified'));
+
+		$post = $GLOBALS['post'];
+		$posts = $GLOBALS['posts'];
+		$wp = $GLOBALS['wp'];
+		$wp_query = $GLOBALS['wp_query'];
+		$wpdb = $GLOBALS['wpdb'];
+		$blog_id = (int) $GLOBALS['blog_id'];
+		log_app('function',"query_posts(# " . print_r($wp_query, true) . "#)");
+
+		log_app('function',"total_count(# $wp_query->max_num_pages #)");
+		$last_page = $wp_query->max_num_pages;
+		$next_page = (($page + 1) > $last_page) ? NULL : $page + 1;
+		$prev_page = ($page - 1) < 1 ? NULL : $page - 1;
+		$last_page = ((int)$last_page == 1 || (int)$last_page == 0) ? NULL : (int) $last_page;
+		$self_page = $page > 1 ? $page : NULL;
+?><feed xmlns="<?php echo $this->ATOM_NS ?>" xmlns:app="<?php echo $this->ATOMPUB_NS ?>" xml:lang="<?php echo get_option('rss_language'); ?>">
+<id><?php $this->the_entries_url() ?></id>
+<updated><?php echo mysql2date('Y-m-d\TH:i:s\Z', get_lastpostmodified('GMT'), false); ?></updated>
+<title type="text"><?php bloginfo_rss('name') ?></title>
+<subtitle type="text"><?php bloginfo_rss("description") ?></subtitle>
+<link rel="first" type="<?php echo $this->ATOM_CONTENT_TYPE ?>" href="<?php $this->the_entries_url() ?>" />
+<?php if(isset($prev_page)): ?>
+<link rel="previous" type="<?php echo $this->ATOM_CONTENT_TYPE ?>" href="<?php $this->the_entries_url($prev_page) ?>" />
+<?php endif; ?>
+<?php if(isset($next_page)): ?>
+<link rel="next" type="<?php echo $this->ATOM_CONTENT_TYPE ?>" href="<?php $this->the_entries_url($next_page) ?>" />
+<?php endif; ?>
+<link rel="last" type="<?php echo $this->ATOM_CONTENT_TYPE ?>" href="<?php $this->the_entries_url($last_page) ?>" />
+<link rel="self" type="<?php echo $this->ATOM_CONTENT_TYPE ?>" href="<?php $this->the_entries_url($self_page) ?>" />
+<rights type="text">Copyright <?php echo date('Y'); ?></rights>
+<?php the_generator( 'atom' ); ?>
+<?php if ( have_posts() ) {
+			while ( have_posts() ) {
+				the_post();
+				$this->echo_entry();
+			}
+		}
+?></feed>
+<?php
+		$feed = ob_get_contents();
+		ob_end_clean();
+		return $feed;
+	}
+
+	/**
+	 * Display entry XML.
+	 *
+	 * @since 2.2.0
+	 *
+	 * @param int $postID Post ID.
+	 * @param string $post_type Optional, default is post. Post type.
+	 * @return string.
+	 */
+	function get_entry($postID, $post_type = 'post') {
+		log_app('function',"get_entry($postID, '$post_type')");
+		ob_start();
+		switch($post_type) {
+			case 'post':
+				$varname = 'p';
+				break;
+			case 'attachment':
+				$this->ENTRY_PATH = 'attachment';
+				$varname = 'attachment_id';
+				break;
+		}
+		query_posts($varname . '=' . $postID);
+		if ( have_posts() ) {
+			while ( have_posts() ) {
+				the_post();
+				$this->echo_entry();
+				log_app('$post',print_r($GLOBALS['post'],true));
+				$entry = ob_get_contents();
+				break;
+			}
+		}
+		ob_end_clean();
+
+		log_app('get_entry returning:',$entry);
+		return $entry;
+	}
+
+	/**
+	 * Display post content XML.
+	 *
+	 * @since 2.3.0
+	 */
+	function echo_entry() { ?>
+<entry xmlns="<?php echo $this->ATOM_NS ?>"
+       xmlns:app="<?php echo $this->ATOMPUB_NS ?>" xml:lang="<?php echo get_option('rss_language'); ?>">
+	<id><?php the_guid($GLOBALS['post']->ID); ?></id>
+<?php list($content_type, $content) = prep_atom_text_construct(get_the_title()); ?>
+	<title type="<?php echo $content_type ?>"><?php echo $content ?></title>
+	<updated><?php echo get_post_modified_time('Y-m-d\TH:i:s\Z', true); ?></updated>
+	<published><?php echo get_post_time('Y-m-d\TH:i:s\Z', true); ?></published>
+	<app:edited><?php echo get_post_modified_time('Y-m-d\TH:i:s\Z', true); ?></app:edited>
+	<app:control>
+		<app:draft><?php echo ($GLOBALS['post']->post_status == 'draft' ? 'yes' : 'no') ?></app:draft>
+	</app:control>
+	<author>
+		<name><?php the_author()?></name>
+<?php if ( get_the_author_meta('url') && get_the_author_meta('url') != 'http://' ) { ?>
+		<uri><?php the_author_meta('url') ?></uri>
+<?php } ?>
+	</author>
+<?php if($GLOBALS['post']->post_type == 'attachment') { ?>
+	<link rel="edit-media" href="<?php $this->the_media_url() ?>" />
+	<content type="<?php echo $GLOBALS['post']->post_mime_type ?>" src="<?php the_guid(); ?>"/>
+<?php } else { ?>
+	<link href="<?php the_permalink_rss() ?>" />
+<?php if ( strlen( $GLOBALS['post']->post_content ) ) :
+list($content_type, $content) = prep_atom_text_construct(get_the_content()); ?>
+	<content type="<?php echo $content_type ?>"><?php echo $content ?></content>
+<?php endif; ?>
+<?php } ?>
+	<link rel="edit" href="<?php $this->the_entry_url() ?>" />
+	<?php the_category_rss( 'atom' ); ?>
+<?php list($content_type, $content) = prep_atom_text_construct(get_the_excerpt()); ?>
+	<summary type="<?php echo $content_type ?>"><?php echo $content ?></summary>
+</entry>
+<?php }
+
+	/**
+	 * Set 'OK' (200) status header.
+	 *
+	 * @since 2.2.0
+	 */
+	function ok() {
+		log_app('Status','200: OK');
+		header('Content-Type: text/plain');
+		status_header('200');
+		exit;
+	}
+
+	/**
+	 * Set 'No Content' (204) status header.
+	 *
+	 * @since 2.2.0
+	 */
+	function no_content() {
+		log_app('Status','204: No Content');
+		header('Content-Type: text/plain');
+		status_header('204');
+		echo "Moved to Trash.";
+		exit;
+	}
+
+	/**
+	 * Display 'Internal Server Error' (500) status header.
+	 *
+	 * @since 2.2.0
+	 *
+	 * @param string $msg Optional. Status string.
+	 */
+	function internal_error($msg = 'Internal Server Error') {
+		log_app('Status','500: Server Error');
+		header('Content-Type: text/plain');
+		status_header('500');
+		echo $msg;
+		exit;
+	}
+
+	/**
+	 * Set 'Bad Request' (400) status header.
+	 *
+	 * @since 2.2.0
+	 */
+	function bad_request() {
+		log_app('Status','400: Bad Request');
+		header('Content-Type: text/plain');
+		status_header('400');
+		exit;
+	}
+
+	/**
+	 * Set 'Length Required' (411) status header.
+	 *
+	 * @since 2.2.0
+	 */
+	function length_required() {
+		log_app('Status','411: Length Required');
+		header("HTTP/1.1 411 Length Required");
+		header('Content-Type: text/plain');
+		status_header('411');
+		exit;
+	}
+
+	/**
+	 * Set 'Unsupported Media Type' (415) status header.
+	 *
+	 * @since 2.2.0
+	 */
+	function invalid_media() {
+		log_app('Status','415: Unsupported Media Type');
+		header("HTTP/1.1 415 Unsupported Media Type");
+		header('Content-Type: text/plain');
+		exit;
+	}
+
+	/**
+	 * Set 'Forbidden' (403) status header.
+	 *
+	 * @since 2.6.0
+	 */
+	function forbidden($reason='') {
+		log_app('Status','403: Forbidden');
+		header('Content-Type: text/plain');
+		status_header('403');
+		echo $reason;
+		exit;
+	}
+
+	/**
+	 * Set 'Not Found' (404) status header.
+	 *
+	 * @since 2.2.0
+	 */
+	function not_found() {
+		log_app('Status','404: Not Found');
+		header('Content-Type: text/plain');
+		status_header('404');
+		exit;
+	}
+
+	/**
+	 * Set 'Not Allowed' (405) status header.
+	 *
+	 * @since 2.2.0
+	 */
+	function not_allowed($allow) {
+		log_app('Status','405: Not Allowed');
+		header('Allow: ' . join(',', $allow));
+		status_header('405');
+		exit;
+	}
+
+	/**
+	 * Display Redirect (302) content and set status headers.
+	 *
+	 * @since 2.3.0
+	 */
+	function redirect($url) {
+
+		log_app('Status','302: Redirect');
+		$escaped_url = esc_attr($url);
+		$content = <<<EOD
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
+<html>
+  <head>
+    <title>302 Found</title>
+  </head>
+<body>
+  <h1>Found</h1>
+  <p>The document has moved <a href="$escaped_url">here</a>.</p>
+  </body>
+</html>
+
+EOD;
+		header('HTTP/1.1 302 Moved');
+		header('Content-Type: text/html');
+		header('Location: ' . $url);
+		echo $content;
+		exit;
+
+	}
+
+	/**
+	 * Set 'Client Error' (400) status header.
+	 *
+	 * @since 2.2.0
+	 */
+	function client_error($msg = 'Client Error') {
+		log_app('Status','400: Client Error');
+		header('Content-Type: text/plain');
+		status_header('400');
+		exit;
+	}
+
+	/**
+	 * Set created status headers (201).
+	 *
+	 * Sets the 'content-type', 'content-location', and 'location'.
+	 *
+	 * @since 2.2.0
+	 */
+	function created($post_ID, $content, $post_type = 'post') {
+		log_app('created()::$post_ID',"$post_ID, $post_type");
+		$edit = $this->get_entry_url($post_ID);
+		switch($post_type) {
+			case 'post':
+				$ctloc = $this->get_entry_url($post_ID);
+				break;
+			case 'attachment':
+				$edit = $this->app_base . "attachments/$post_ID";
+				break;
+		}
+		header("Content-Type: $this->ATOM_CONTENT_TYPE");
+		if(isset($ctloc))
+			header('Content-Location: ' . $ctloc);
+		header('Location: ' . $edit);
+		status_header('201');
+		echo $content;
+		exit;
+	}
+
+	/**
+	 * Set 'Auth Required' (401) headers.
+	 *
+	 * @since 2.2.0
+	 *
+	 * @param string $msg Status header content and HTML content.
+	 */
+	function auth_required($msg) {
+		log_app('Status','401: Auth Required');
+		nocache_headers();
+		header('WWW-Authenticate: Basic realm="WordPress Atom Protocol"');
+		header("HTTP/1.1 401 $msg");
+		header('Status: 401 ' . $msg);
+		header('Content-Type: text/html');
+		$content = <<<EOD
+<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
+<html>
+  <head>
+    <title>401 Unauthorized</title>
+  </head>
+<body>
+    <h1>401 Unauthorized</h1>
+    <p>$msg</p>
+  </body>
+</html>
+
+EOD;
+		echo $content;
+		exit;
+	}
+
+	/**
+	 * Display XML and set headers with content type.
+	 *
+	 * @since 2.2.0
+	 *
+	 * @param string $xml Display feed content.
+	 * @param string $ctype Optional, default is 'atom+xml'. Feed content type.
+	 */
+	function output($xml, $ctype = 'application/atom+xml') {
+			status_header('200');
+			$xml = '<?xml version="1.0" encoding="' . strtolower(get_option('blog_charset')) . '"?>'."\n".$xml;
+			header('Connection: close');
+			header('Content-Length: '. strlen($xml));
+			header('Content-Type: ' . $ctype);
+			header('Content-Disposition: attachment; filename=atom.xml');
+			header('Date: '. date('r'));
+			if($this->do_output)
+				echo $xml;
+			log_app('function', "output:\n$xml");
+			exit;
+	}
+
+	/**
+	 * Sanitize content for database usage.
+	 *
+	 * @since 2.2.0
+	 *
+	 * @param array $array Sanitize array and multi-dimension array.
+	 */
+	function escape(&$array) {
+		global $wpdb;
+
+		foreach ($array as $k => $v) {
+				if (is_array($v)) {
+						$this->escape($array[$k]);
+				} else if (is_object($v)) {
+						//skip
+				} else {
+						$array[$k] = $wpdb->escape($v);
+				}
+		}
+	}
+
+	/**
+	 * Access credential through various methods and perform login.
+	 *
+	 * @since 2.2.0
+	 *
+	 * @return bool
+	 */
+	function authenticate() {
+		log_app("authenticate()",print_r($_ENV, true));
+
+		// if using mod_rewrite/ENV hack
+		// http://www.besthostratings.com/articles/http-auth-php-cgi.html
+		if(isset($_SERVER['HTTP_AUTHORIZATION'])) {
+			list($_SERVER['PHP_AUTH_USER'], $_SERVER['PHP_AUTH_PW']) =
+				explode(':', base64_decode(substr($_SERVER['HTTP_AUTHORIZATION'], 6)));
+		} else if (isset($_SERVER['REDIRECT_REMOTE_USER'])) {
+			// Workaround for setups that do not forward HTTP_AUTHORIZATION
+			// See http://trac.wordpress.org/ticket/7361
+			list($_SERVER['PHP_AUTH_USER'], $_SERVER['PHP_AUTH_PW']) =
+				explode(':', base64_decode(substr($_SERVER['REDIRECT_REMOTE_USER'], 6)));
+		}
+
+		// If Basic Auth is working...
+		if(isset($_SERVER['PHP_AUTH_USER']) && isset($_SERVER['PHP_AUTH_PW'])) {
+			log_app("Basic Auth",$_SERVER['PHP_AUTH_USER']);
+
+			$user = wp_authenticate($_SERVER['PHP_AUTH_USER'], $_SERVER['PHP_AUTH_PW']);
+			if ( $user && !is_wp_error($user) ) {
+				wp_set_current_user($user->ID);
+				log_app("authenticate()", $user->user_login);
+				return true;
+			}
+		}
+
+		return false;
+	}
+
+	/**
+	 * Retrieve accepted content types.
+	 *
+	 * @since 2.2.0
+	 *
+	 * @param array $types Optional. Content Types.
+	 * @return string
+	 */
+	function get_accepted_content_type($types = null) {
+
+		if(!isset($types)) {
+			$types = $this->media_content_types;
+		}
+
+		if(!isset($_SERVER['CONTENT_LENGTH']) || !isset($_SERVER['CONTENT_TYPE'])) {
+			$this->length_required();
+		}
+
+		$type = $_SERVER['CONTENT_TYPE'];
+		list($type,$subtype) = explode('/',$type);
+		list($subtype) = explode(";",$subtype); // strip MIME parameters
+		log_app("get_accepted_content_type", "type=$type, subtype=$subtype");
+
+		foreach($types as $t) {
+			list($acceptedType,$acceptedSubtype) = explode('/',$t);
+			if($acceptedType == '*' || $acceptedType == $type) {
+				if($acceptedSubtype == '*' || $acceptedSubtype == $subtype)
+					return $type . "/" . $subtype;
+			}
+		}
+
+		$this->invalid_media();
+	}
+
+	/**
+	 * Process conditionals for posts.
+	 *
+	 * @since 2.2.0
+	 */
+	function process_conditionals() {
+
+		if(empty($this->params)) return;
+		if($_SERVER['REQUEST_METHOD'] == 'DELETE') return;
+
+		switch($this->params[0]) {
+			case $this->ENTRY_PATH:
+				global $post;
+				$post = wp_get_single_post($this->params[1]);
+				$wp_last_modified = get_post_modified_time('D, d M Y H:i:s', true);
+				$post = NULL;
+				break;
+			case $this->ENTRIES_PATH:
+				$wp_last_modified = mysql2date('D, d M Y H:i:s', get_lastpostmodified('GMT'), 0).' GMT';
+				break;
+			default:
+				return;
+		}
+		$wp_etag = md5($wp_last_modified);
+		@header("Last-Modified: $wp_last_modified");
+		@header("ETag: $wp_etag");
+
+		// Support for Conditional GET
+		if (isset($_SERVER['HTTP_IF_NONE_MATCH']))
+			$client_etag = stripslashes($_SERVER['HTTP_IF_NONE_MATCH']);
+		else
+			$client_etag = false;
+
+		$client_last_modified = trim( $_SERVER['HTTP_IF_MODIFIED_SINCE']);
+		// If string is empty, return 0. If not, attempt to parse into a timestamp
+		$client_modified_timestamp = $client_last_modified ? strtotime($client_last_modified) : 0;
+
+		// Make a timestamp for our most recent modification...
+		$wp_modified_timestamp = strtotime($wp_last_modified);
+
+		if ( ($client_last_modified && $client_etag) ?
+		(($client_modified_timestamp >= $wp_modified_timestamp) && ($client_etag == $wp_etag)) :
+		(($client_modified_timestamp >= $wp_modified_timestamp) || ($client_etag == $wp_etag)) ) {
+			status_header( 304 );
+			exit;
+		}
+	}
+
+	/**
+	 * Convert RFC3339 time string to timestamp.
+	 *
+	 * @since 2.3.0
+	 *
+	 * @param string $str String to time.
+	 * @return bool|int false if format is incorrect.
+	 */
+	function rfc3339_str2time($str) {
+
+		$match = false;
+		if(!preg_match("/(\d{4}-\d{2}-\d{2})T(\d{2}\:\d{2}\:\d{2})\.?\d{0,3}(Z|[+-]+\d{2}\:\d{2})/", $str, $match))
+			return false;
+
+		if($match[3] == 'Z')
+			$match[3] == '+0000';
+
+		return strtotime($match[1] . " " . $match[2] . " " . $match[3]);
+	}
+
+	/**
+	 * Retrieve published time to display in XML.
+	 *
+	 * @since 2.3.0
+	 *
+	 * @param string $published Time string.
+	 * @return string
+	 */
+	function get_publish_time($published) {
+
+		$pubtime = $this->rfc3339_str2time($published);
+
+		if(!$pubtime) {
+			return array(current_time('mysql'),current_time('mysql',1));
+		} else {
+			return array(date("Y-m-d H:i:s", $pubtime), gmdate("Y-m-d H:i:s", $pubtime));
+		}
+	}
+
+}
+
+/**
+ * AtomServer
+ * @var AtomServer
+ * @global object $server
+ */
+$server = new AtomServer();
+$server->handle_request();
+
+?>
--- a/web/wp-config.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-config.php	Wed Dec 19 17:46:52 2012 -0800
@@ -23,19 +23,15 @@
  
 // ** Réglages MySQL - Votre hébergeur doit vous fournir ces informations. ** //
 /** Le nom de la base de données de WordPress. */
-//define('DB_NAME', 'iri_wp_i18n');
-define('DB_NAME', 'wp-iri-2');
+define('DB_NAME', 'wp-iri-new');
 
 /** Utilisateur de la base de données MySQL. */
-//define('DB_USER', 'iri');
 define('DB_USER', 'root');
 
 /** Mot de passe de la base de données MySQL. */
-//define('DB_PASSWORD', 'Coo3Weil');
 define('DB_PASSWORD', 'root');
 
 /** Adresse de l'hébergement MySQL. */
-//define('DB_HOST', 'sql.iri.centrepompidou.fr');
 define('DB_HOST', 'localhost');
 
 /** Jeu de caractères à utiliser par la base de données lors de la création des tables. */
Binary file web/wp-content/languages/admin-fr_FR.mo has changed
--- a/web/wp-content/languages/admin-fr_FR.po	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-content/languages/admin-fr_FR.po	Wed Dec 19 17:46:52 2012 -0800
@@ -5,197 +5,255 @@
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: WordPress 3.4\n"
+"Project-Id-Version: WordPress 3.5\n"
 "Report-Msgid-Bugs-To: http://wppolyglots.wordpress.com\n"
-"POT-Creation-Date: 2012-06-12 23:18:00+00:00\n"
-"PO-Revision-Date: 2012-06-28 00:44+0100\n"
+"POT-Creation-Date: 2012-12-07 21:18:34+00:00\n"
+"PO-Revision-Date: 2012-12-10 20:19+0100\n"
 "Last-Translator: WordPress Francophone <traduction_at_wordpress-fr.net>\n"
 "Language-Team: WordPress Francophone <traduction@wordpress-fr.net>\n"
+"Language: fr_FR\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=n>1\n"
-"X-Poedit-Language: French\n"
-"X-Poedit-Country: France\n"
-"X-Poedit-SourceCharset: utf-8\n"
+"Plural-Forms: nplurals=2; plural=n>1;\n"
+"X-Poedit-SourceCharset: UTF-8\n"
 "X-Poedit-Bookmarks: -1,430,-1,-1,-1,-1,-1,-1,-1,-1\n"
-
-#: wp-admin/about.php:20
-#: wp-admin/credits.php:53
-#: wp-admin/freedoms.php:20
+"X-Generator: Poedit 1.5.4\n"
+
+#: wp-admin/about.php:20 wp-admin/credits.php:53 wp-admin/freedoms.php:20
 msgid "Welcome to WordPress %s"
 msgstr "Bienvenue dans WordPress %s"
 
-#: wp-admin/about.php:22
-#: wp-admin/credits.php:55
-#: wp-admin/freedoms.php:22
-msgid "Thank you for updating to the latest version! WordPress %s is already making your website better, faster, and more attractive, just like you!"
-msgstr "Merci d&rsquo;être passé à la dernière version ! Déjà WordPress est en train de rendre votre site plus puissant, plus rapide, plus beau... À votre image, en fait !"
-
-#: wp-admin/about.php:24
-#: wp-admin/credits.php:57
-#: wp-admin/freedoms.php:24
-#: wp-admin/includes/class-wp-ms-themes-list-table.php:343
-#: wp-admin/includes/class-wp-plugins-list-table.php:416
-#: wp-admin/includes/dashboard.php:1255
-#: wp-admin/includes/update.php:86
-#: wp-admin/includes/update.php:109
+#: wp-admin/about.php:22 wp-admin/credits.php:55 wp-admin/freedoms.php:22
+msgid ""
+"Thank you for updating to the latest version! WordPress %s is more polished "
+"and enjoyable than ever before. We hope you like it."
+msgstr ""
+"Merci d&rsquo;être passé à la dernière version&nbsp;! WordPress %s est mieux "
+"conçu et plus agréable que jamais. Il a tout pour vous plaire."
+
+#: wp-admin/about.php:24 wp-admin/credits.php:57 wp-admin/freedoms.php:24
+#: wp-admin/includes/class-wp-ms-themes-list-table.php:329
+#: wp-admin/includes/class-wp-plugins-list-table.php:410
+#: wp-admin/includes/update.php:86 wp-admin/includes/update.php:112
 #: wp-admin/themes.php:145
 msgid "Version %s"
 msgstr "Version %s"
 
-#: wp-admin/about.php:28
-#: wp-admin/credits.php:61
-#: wp-admin/freedoms.php:28
+#: wp-admin/about.php:28 wp-admin/credits.php:61 wp-admin/freedoms.php:28
 msgid "What&#8217;s New"
-msgstr "Quoi de neuf ?"
-
-#: wp-admin/about.php:30
-#: wp-admin/credits.php:12
-#: wp-admin/credits.php:63
+msgstr "Quoi de neuf&nbsp;?"
+
+#: wp-admin/about.php:30 wp-admin/credits.php:12 wp-admin/credits.php:63
 #: wp-admin/freedoms.php:30
 msgid "Credits"
 msgstr "Crédits"
 
-#: wp-admin/about.php:32
-#: wp-admin/credits.php:65
-#: wp-admin/freedoms.php:12
+#: wp-admin/about.php:32 wp-admin/credits.php:65 wp-admin/freedoms.php:12
 #: wp-admin/freedoms.php:32
 msgid "Freedoms"
 msgstr "Libertés"
 
-#: wp-admin/about.php:37
-msgid "Live Theme Previews"
-msgstr "La prévisualisation des thèmes"
-
-#: wp-admin/about.php:41
-msgid "Try on New Themes"
-msgstr "Essayez de nouveau thèmes"
-
-#: wp-admin/about.php:42
-msgid "Gone are the days of rushing to update your header, background, and the like as soon as you activate a new theme. You can now customize these options <strong>before</strong> activating a new theme. Note: this feature is available for installed themes only."
-msgstr "Qu&rsquo;ils sont loin les jours où, juste après avoir activé un nouveau thème, vous deviez vous dépêcher de modifier l&rsquo;en-tête, le fond et le reste ! Désormais, vous pouvez personnaliser ces options <strong>avant</strong> d&rsquo;activer un nouveau thème. Attention&nbsp;: cette fonctionnalité n&rsquo;est disponible que pour les thèmes installés."
+#: wp-admin/about.php:37 wp-admin/includes/template.php:1830
+msgid "New Media Manager"
+msgstr "Nouveau gestionnaire de médias"
+
+#: wp-admin/about.php:43
+msgid "Beautiful Interface"
+msgstr "Une superbe interface"
 
 #: wp-admin/about.php:44
-msgid "Customize Current Theme"
-msgstr "Personnalisez votre thème actuel"
-
-#: wp-admin/about.php:45
-msgid "Satisfy your curiosity and try on a fresh coat of paint &mdash; you can also use the live preview mode to customize your current theme. Look for the Customize link on the Themes screen."
-msgstr "Succombez à la curiosité et voyez la vie en technicolor&nbsp;: avec le mode de prévisualisation, vous pouvez également personnaliser votre thème actuel. Cliquez sur le lien &laquo;&nbsp;Personnaliser&nbsp;&raquo; dans l&rsquo;écran des thèmes."
-
-#: wp-admin/about.php:50
-msgid "Custom Headers"
-msgstr "Des en-têtes personnalisés"
-
-#: wp-admin/about.php:53
-msgid "Flexible Sizes"
-msgstr "Tailles flexible"
+msgid ""
+"Adding media has been streamlined with an all-new experience, making it a "
+"breeze to upload files and place them into your posts."
+msgstr ""
+"L&rsquo;ajout de fichiers média a été repensé pour aboutir à une toute "
+"nouvelle approche, facilitant grandement la mise en ligne et l&rsquo;"
+"insertion dans vos articles."
+
+#: wp-admin/about.php:47
+msgid "Picturesque Galleries"
+msgstr "Des galeries très visuelles"
+
+#: wp-admin/about.php:48
+msgid ""
+"Creating image galleries is faster with drag and drop reordering, inline "
+"caption editing, and simplified controls for layout."
+msgstr ""
+"La création de galeries d&rsquo;images est plus rapide grâce à la "
+"réorganisation par glisser-déposer, la modification directe de la légende, "
+"et aux contrôles de mise en page simplifiés."
 
 #: wp-admin/about.php:54
-msgid "You can decide for yourself how tall or wide your custom header image should be. From now on, themes will provide a recommended image size for custom headers rather than a fixed requirement. Note: this feature requires <a href=\"http://codex.wordpress.org/Custom_Headers\">theme support</a>."
-msgstr "Vous pouvez décider de la taille de votre image d&rsquo;en-tête, en hauteur comme en largeur. Désormais, les thèmes proposeront une taille recommandée pour les en-têtes personnalisés plutôt que de l&rsquo;imposer. Attention&nbsp;: cette fonctionnalité ne fonctionne qu&rsquo;<a href=\"http://codex.wordpress.org/Custom_Headers\">avec les thèmes qui l&rsquo;implémentent (en)</a>."
-
-#: wp-admin/about.php:64
-msgid "Choose from Media Library"
-msgstr "Accès à la bibliothèque d&rsquo;images"
-
-#: wp-admin/about.php:65
-msgid "Tired of re-uploading the same custom header image every time you check out a new theme? Now you can choose header images from your media library for easier customization."
-msgstr "La lassitude vous étreint-elle quand vous devez remettre en ligne la même image d&rsquo;en-tête chaque fois que vous testez un nouveau thème ? Pour simplifier cette personnalisation, vous pouvez maintenant choisir une image d&rsquo;en-tête directement dans votre bibliothèque de médias."
+msgid "New Default Theme"
+msgstr "Nouveau thème par défaut"
+
+#: wp-admin/about.php:58
+msgid "Introducing Twenty Twelve"
+msgstr "Arrivée de Twenty Twelve"
+
+#: wp-admin/about.php:59
+msgid ""
+"The newest default theme for WordPress is simple, flexible, and elegant."
+msgstr ""
+"Le nouveau thème par défaut de WordPress est simple, flexible et élégant."
+
+#: wp-admin/about.php:60
+msgid ""
+"What makes it really shine are the design details, like the gorgeous Open "
+"Sans typeface and a fully responsive design that looks great on any device."
+msgstr ""
+"Il brille notamment par l&rsquo;attention portée aux détails, comme la "
+"superbe police Open Sans et le design totalement souple qui s&rsquo;adapte "
+"parfaitement à toutes les tailles d&rsquo;écran."
+
+#: wp-admin/about.php:61
+msgid ""
+"Naturally, Twenty Twelve supports all the theme features you’ve come to know "
+"and love, but it is also designed to be as great for a website as it is for "
+"a blog."
+msgstr ""
+"Bien entendu, Twenty Twelve intègre toutes les fonctionnalités que vous avez "
+"connu et apprécié avec les thèmes précédents, mais il a en plus été conçu "
+"pour fonctionner aussi bien pour un site web que pour un blog."
+
+#: wp-admin/about.php:66
+msgid "Retina Ready"
+msgstr "Prêt pour le Retina"
 
 #: wp-admin/about.php:70
-msgid "Twitter Embeds"
-msgstr "Twitter est dans la place"
-
-#: wp-admin/about.php:75
-msgid "Share Tweets with Style"
-msgstr "Partager vos tweets avec classe"
+msgid "So Sharp You Can&#8217;t See the Pixels"
+msgstr "Tellement net que vous ne verrez pas les pixels"
+
+#: wp-admin/about.php:71
+msgid ""
+"The WordPress dashboard now looks beautiful on high-resolution screens like "
+"those found on the iPad, Kindle Fire HD, Nexus 10, and MacBook Pro with "
+"Retina Display. Icons and other visual elements are crystal clear and full "
+"of detail."
+msgstr ""
+"Le tableau de bord de WordPress est magnifique sur les écrans haute-"
+"résolution, comme ceux de l&rsquo;iPad, du Kindle Fire HD, du Nexus 10 et du "
+"MacBook Pro. Les icônes et autres éléments visuels sont clairs et très "
+"détaillés."
 
 #: wp-admin/about.php:76
-msgid "You can now embed individual tweets in posts. It includes action links that allow readers to reply to, retweet, and favorite the tweet without leaving your site. Just paste a tweet URL on its own line."
-msgstr "Vous pouvez maintenant inclure des tweets individuels dans vos articles, WordPress se chargera d&rsquo;ajouter les liens permettant à vos lecteurs de répondre, retweeter ou ajouter le tweet en favoris directement depuis votre site. Collez simplement le lien du tweet dans sa propre ligne."
-
-#: wp-admin/about.php:77
-msgid "This works with URLs from some other sites, too. For more, see the Codex article on <a href=\"%s\">Embeds</a>."
-msgstr "Notez que cela marche également avec les liens d&rsquo;autres sites. Pour en savoir plus, lisez l&rsquo;article <a href=\"%s\">Embeds (en)</a> du Codex."
-
-#: wp-admin/about.php:77
-msgid "http://codex.wordpress.org/Embeds"
-msgstr "http://codex.wordpress.org/Embeds"
+msgid "Smoother Experience"
+msgstr "Une utilisation plus harmonieuse"
+
+#: wp-admin/about.php:80
+msgid "Better Accessibility"
+msgstr "Une meilleure accessibilité"
+
+#: wp-admin/about.php:81
+msgid ""
+"WordPress supports more usage modes than ever before. Screenreaders, touch "
+"devices, and mouseless workflows all have improved ease of use and "
+"accessibility."
+msgstr ""
+"WordPress reconnaît plus de modes d&rsquo;utilisation qu&rsquo;auparavant. "
+"Les lecteurs d&rsquo;écrans, les appareils tactiles et les utilisations sans "
+"souris fonctionnent tous plus simplement et avec une meilleure accessibilité."
+
+#: wp-admin/about.php:83
+msgid "More Polish"
+msgstr "Un coup d&rsquo;éclat"
 
 #: wp-admin/about.php:84
-msgid "Better Captions"
-msgstr "De plus belles légendes"
+msgid ""
+"A number of screens and controls have been refined. For example, a new color "
+"picker makes it easier for you to choose that perfect shade of blue."
+msgstr ""
+"Un grand nombre d&rsquo;écrans et de contrôleurs ont été repensés. Par "
+"exemple, le nouveau sélecteur de couleur vous permet de trouver plus "
+"simplement cette teinte de bleu si particulière."
 
 #: wp-admin/about.php:89
-msgid "HTML Support"
-msgstr "Support HTML"
-
-#: wp-admin/about.php:90
-msgid "Basic HTML support has been added to the caption field in the image uploader. This allows you to add links &mdash; great for photo credits or licensing details &mdash; and basic formatting such as bold and italicized text."
-msgstr "Nous avons ajouté un support HTML de base au champ de légende d&rsquo;image dans l&rsquo;outil de mise en ligne. Cela vous permet d&rsquo;ajouter des liens ; très utile pour faire un lien vers l&rsquo;auteur de la photo ou vers les détails de la licence d&rsquo;utilisation, ainsi que vous mettre en place une mise en forme simple, comme un texte en gras ou en italique."
-
-#: wp-admin/about.php:95
 msgid "Under the Hood"
 msgstr "Sous le capot"
 
-#: wp-admin/about.php:99
-msgid "Faster WP_Query"
-msgstr "Des requêtes WP_Query plus rapides"
-
-#: wp-admin/about.php:100
-msgid "Post queries have been optimized to improve performance, especially for sites with large databases."
-msgstr " Les requêtes d&rsquo;écriture ont été optimisées pour améliorer les performances, notamment sur les sites ayant beaucoup de contenu."
+#: wp-admin/about.php:93
+msgid "Meta Query Additions"
+msgstr "Support des Meta Queries"
+
+#: wp-admin/about.php:94
+msgid ""
+"The <code>WP_Comment_Query</code> and <code>WP_User_Query</code> classes now "
+"support meta queries just like <code>WP_Query.</code> Meta queries now "
+"support querying for objects without a particular meta key."
+msgstr ""
+"Les classes <code>WP_Comment_Query</code> et <code>WP_User_Query</code> "
+"reconnaissent désormais les requêtes méta, tout comme <code>WP_Query</code>. "
+"Les requêtes méta peuvent maintenant lancer une requête sur un objet sans "
+"nécessite de clef méta."
+
+#: wp-admin/about.php:97
+msgid "Post Objects"
+msgstr "Objets d&rsquo;articles"
+
+#: wp-admin/about.php:98
+msgid ""
+"Post objects are now instances of a <code>WP_Post</code> class, which "
+"improves performance by loading selected properties on demand."
+msgstr ""
+"Les objets d&rsquo;articles sont  dorénavant des instances de la classe "
+"<code>WP_Post</code>, qui améliore les performances en chargeant à la "
+"demande les propriétés sélectionnées."
+
+#: wp-admin/about.php:101
+msgid "Image Editing API"
+msgstr "L&rsquo;API de modification d&rsquo;image"
 
 #: wp-admin/about.php:102
-msgid "Faster Translations"
-msgstr "Des traduction plus rapides"
-
-#: wp-admin/about.php:103
-msgid "The number of strings loaded on the front end was greatly reduced, resulting in faster front page load times for localized installations."
-msgstr "Le nombre de chaînes chargées pour le thème a été grandement réduit, ce qui donne des pages qui se chargent plus vite même avec les fichiers de traduction."
-
-#: wp-admin/about.php:103
-msgid "Also, better support for East Asian languages, right-to-left languages, theme translations, and more."
-msgstr "Par ailleurs, WordPress gère désormais mieux les langues d&rsquo;Asie orientale, celles qui s&rsquo;écrivent de droite à gauche (RTL), la traduction des thèmes, et plus encore."
-
-#: wp-admin/about.php:106
-msgid "Themes API"
-msgstr "L&rsquo;API des thèmes"
-
-#: wp-admin/about.php:107
-msgid "WP_Theme, wp_get_themes(), wp_get_theme(). Faster, uses less memory, makes use of persistent caching."
-msgstr "WP_Theme, wp_get_themes() et wp_get_theme() sont plus rapides, utilisent moins de mémoire, et font un meilleur usage du cache persistant."
+msgid ""
+"The <code>WP_Image_Editor</code> class abstracts image editing functionality "
+"such as cropping and scaling, and uses ImageMagick when available."
+msgstr ""
+"La classe <code>WP_Image_Editor</code> est une abstraction de la "
+"fonctionnalité de modification d&rsquo;image, comme le cadrage et le "
+"changement d&rsquo;échelle, et utilise ImageMagick si cette bibliothèque est "
+"disponible."
+
+#: wp-admin/about.php:108
+msgid "Multisite Improvements"
+msgstr "Amélioration du multisite"
 
 #: wp-admin/about.php:109
-msgid "Custom Header and Background API"
-msgstr "L&rsquo;API de gestion des en-têtes personnalisés et des images de fond"
-
-#: wp-admin/about.php:110
-msgid "Custom header and background API relocated into the theme support API."
-msgstr "L&rsquo;API de gestion des en-têtes personnalisés et des images de fond a été déplacée dans l&rsquo;API de support du thème."
-
-#: wp-admin/about.php:113
+msgid ""
+"<code>switch_to_blog()</code> is now significantly faster and more reliable."
+msgstr "<code>switch_to_blog()</code> est sensiblement plus rapide et fiable."
+
+#: wp-admin/about.php:112
 msgid "XML-RPC API"
 msgstr "L&rsquo;API XML-RPC"
 
-#: wp-admin/about.php:114
-msgid "A new <a href=\"%s\">WordPress API</a> that supports custom content types and taxonomies, as well as dozens of other bug fixes and improvements."
-msgstr "Une <a href=\"%s\">nouvelle API pour WordPress</a>, qui fonctionne avec les types de contenus et les taxinomies, et profite également d&rsquo;une douzaine de correctifs et d&rsquo;améliorations."
-
-#: wp-admin/about.php:114
+#: wp-admin/about.php:113
+msgid ""
+"The <a href=\"%s\">WordPress API</a> is now always enabled, and supports "
+"fetching users, editing profiles, managing post revisions, and searching "
+"posts."
+msgstr ""
+"L&rsquo;<a href=\"%s\">API de WordPress</a> est dorénavant toujours activée, "
+"et autorise la récupération des utilisateurs, la modification des profils, "
+"la gestion des révisions d&rsquo;articles, et la recherche d&rsquo;articles."
+
+#: wp-admin/about.php:113
 msgid "http://codex.wordpress.org/XML-RPC_WordPress_API"
 msgstr "http://codex.wordpress.org/XML-RPC_WordPress_API"
 
-#: wp-admin/about.php:116
-#: wp-admin/credits.php:160
+#: wp-admin/about.php:116 wp-admin/credits.php:160
 msgid "External Libraries"
 msgstr "Bibliothèques tierces"
 
 #: wp-admin/about.php:117
-msgid "jQuery, jQuery UI, TinyMCE, Plupload, PHPMailer, SimplePie, and other libraries were updated. jQuery UI Touch Punch was introduced."
-msgstr "jQuery, jQuery UI, TinyMCE, Plupload, PHPMailer, SimplePie et d&rsquo;autres bibliothèques ont été mises à jour. Introduction de jQuery UI Touch Punch."
+msgid ""
+"WordPress now includes the <a href=\"%1$s\">Underscore</a> and <a href=\"%2$s"
+"\">Backbone</a> JavaScript libraries. TinyMCE, jQuery, jQuery UI, and "
+"SimplePie have all been updated to the latest versions."
+msgstr ""
+"WordPress inclus aujourd&rsquo;hui les bibliothèques <a href=\"%1$s"
+"\">Underscore</a> et <a href=\"%2$s\">Backbone</a>. TinyMCE, jQuery, jQuery "
+"UI, et SimplePie ont tous été mis à jour à la dernière version"
 
 #: wp-admin/about.php:125
 msgid "Return to Updates"
@@ -235,8 +293,11 @@
 #: wp-admin/about.php:145
 msgid "<strong>Version %1$s</strong> addressed a security issue."
 msgid_plural "<strong>Version %1$s</strong> addressed some security issues."
-msgstr[0] "La <strong>version %1$s</strong> corrige une vulnérabilité de sécurité."
-msgstr[1] "La <strong>version %1$s</strong> corrige plusieurs vulnérabilités de sécurité."
+msgstr[0] ""
+"La <strong>version %1$s</strong> corrige une vulnérabilité de sécurité."
+msgstr[1] ""
+"La <strong>version %1$s</strong> corrige plusieurs vulnérabilités de "
+"sécurité."
 
 #. translators: 1: WordPress version number, 2: plural number of bugs.
 #: wp-admin/about.php:149
@@ -248,33 +309,51 @@
 #. translators: 1: WordPress version number, 2: plural number of bugs. Singular
 #. security issue.
 #: wp-admin/about.php:153
-msgid "<strong>Version %1$s</strong> addressed a security issue and fixed %2$s bug."
-msgid_plural "<strong>Version %1$s</strong> addressed a security issue and fixed %2$s bugs."
-msgstr[0] "La <strong>version %1$s</strong> s&rsquo;occupe d&rsquo;un problème de sécurité et corrige %2$s bug."
-msgstr[1] "<strong>Version %1$s</strong> s&rsquo;occupe d&rsquo;un problème de sécurité et corrige %2$s bugs."
+msgid ""
+"<strong>Version %1$s</strong> addressed a security issue and fixed %2$s bug."
+msgid_plural ""
+"<strong>Version %1$s</strong> addressed a security issue and fixed %2$s bugs."
+msgstr[0] ""
+"La <strong>version %1$s</strong> s&rsquo;occupe d&rsquo;un problème de "
+"sécurité et corrige %2$s bug."
+msgstr[1] ""
+"<strong>Version %1$s</strong> s&rsquo;occupe d&rsquo;un problème de sécurité "
+"et corrige %2$s bugs."
 
 #. translators: 1: WordPress version number, 2: plural number of bugs. More
 #. than one security issue.
 #: wp-admin/about.php:157
-msgid "<strong>Version %1$s</strong> addressed some security issues and fixed %2$s bug."
-msgid_plural "<strong>Version %1$s</strong> addressed some security issues and fixed %2$s bugs."
-msgstr[0] "La <strong>version %1$s</strong> s&rsquo;occupe de quelques problèmes de sécurité et corrige %2$s bug."
-msgstr[1] "<strong>Version %1$s</strong> s&rsquo;occupe de quelques problèmes de sécurité et corrige %2$s bugs."
+msgid ""
+"<strong>Version %1$s</strong> addressed some security issues and fixed %2$s "
+"bug."
+msgid_plural ""
+"<strong>Version %1$s</strong> addressed some security issues and fixed %2$s "
+"bugs."
+msgstr[0] ""
+"La <strong>version %1$s</strong> s&rsquo;occupe de quelques problèmes de "
+"sécurité et corrige %2$s bug."
+msgstr[1] ""
+"<strong>Version %1$s</strong> s&rsquo;occupe de quelques problèmes de "
+"sécurité et corrige %2$s bugs."
 
 #: wp-admin/about.php:160
 msgid "For more information, see <a href=\"%s\">the release notes</a>."
-msgstr "Pour plus d&rsquo;information, consultez les <a href=\"%s\">notes de publication</a>."
-
-#: wp-admin/admin-footer.php:23
-msgid "Thank you for creating with <a href=\"http://wordpress.org/\">WordPress</a>."
-msgstr "Merci de faire de <a href=\"http://www.wordpress-fr.net/\">WordPress</a> votre outil de création."
+msgstr ""
+"Pour plus d&rsquo;informations, consultez les <a href=\"%s\">notes de "
+"publication</a>."
+
+#: wp-admin/admin-footer.php:21
+msgid ""
+"Thank you for creating with <a href=\"http://wordpress.org/\">WordPress</a>."
+msgstr ""
+"Merci de faire de <a href=\"http://www.wordpress-fr.net/\">WordPress</a> "
+"votre outil de création."
 
 #: wp-admin/admin-header.php:27
 msgid "Global Dashboard"
 msgstr "Tableau de bord global"
 
-#: wp-admin/admin-header.php:32
-#: wp-admin/customize.php:58
+#: wp-admin/admin-header.php:32 wp-admin/customize.php:64
 msgid "%1$s &#8212; WordPress"
 msgstr "%1$s &#8212; WordPress"
 
@@ -282,6 +361,14 @@
 msgid "%1$s &lsaquo; %2$s &#8212; WordPress"
 msgstr "%1$s &lsaquo; %2$s &#8212; WordPress"
 
+#: wp-admin/admin-header.php:108
+msgid "Skip to main content"
+msgstr "Aller au contenu principal"
+
+#: wp-admin/admin-header.php:124
+msgid "Main content"
+msgstr "Contenu principal"
+
 #: wp-admin/admin.php:154
 msgid "Invalid plugin page"
 msgstr "Page d&rsquo;extension non valide"
@@ -294,174 +381,128 @@
 msgid "You are not allowed to import."
 msgstr "Vous n&rsquo;avez pas l&rsquo;autorisation d&rsquo;importer."
 
-#: wp-admin/admin.php:192
-#: wp-admin/import.php:17
-#: wp-admin/menu.php:191
+#: wp-admin/admin.php:194 wp-admin/import.php:17 wp-admin/menu.php:203
 msgid "Import"
 msgstr "Importer"
 
-#: wp-admin/async-upload.php:35
-#: wp-admin/post.php:138
+#: wp-admin/async-upload.php:49 wp-admin/post.php:142
 msgid "Unknown post type."
 msgstr "Type d&rsquo;article invalide."
 
-#: wp-admin/async-upload.php:38
-#: wp-admin/edit-tags.php:253
-#: wp-admin/post.php:141
+#: wp-admin/async-upload.php:52 wp-admin/edit-tags.php:253
+#: wp-admin/post.php:145
 msgid "You are not allowed to edit this item."
 msgstr "Vous n&#8217;avez pas l&#8217;autorisation de modifier ce contenu."
 
-#: wp-admin/async-upload.php:56
+#: wp-admin/async-upload.php:58
+msgctxt "media item"
+msgid "Edit"
+msgstr "Modifier"
+
+#: wp-admin/async-upload.php:87
 msgid "&#8220;%s&#8221; has failed to upload due to an error"
 msgstr "« %s » n&rsquo;a pas pu être mis en ligne suite à une erreur"
 
-#: wp-admin/comment.php:46
-#: wp-admin/edit-form-comment.php:17
+#: wp-admin/comment.php:46 wp-admin/edit-form-comment.php:17
 msgid "Edit Comment"
 msgstr "Modifier le commentaire"
 
-#: wp-admin/comment.php:50
-#: wp-admin/custom-background.php:94
-#: wp-admin/custom-header.php:112
-#: wp-admin/edit-comments.php:116
-#: wp-admin/edit-link-form.php:44
-#: wp-admin/edit-tags.php:204
-#: wp-admin/edit.php:154
-#: wp-admin/edit.php:199
-#: wp-admin/export.php:43
-#: wp-admin/import.php:21
-#: wp-admin/includes/screen.php:732
-#: wp-admin/index.php:37
-#: wp-admin/link-manager.php:45
-#: wp-admin/media-upload.php:72
-#: wp-admin/media.php:73
-#: wp-admin/my-sites.php:40
-#: wp-admin/nav-menus.php:450
-#: wp-admin/options-discussion.php:20
-#: wp-admin/options-general.php:74
-#: wp-admin/options-media.php:34
-#: wp-admin/options-permalink.php:20
-#: wp-admin/options-privacy.php:20
-#: wp-admin/options-reading.php:46
-#: wp-admin/options-writing.php:20
-#: wp-admin/plugin-editor.php:116
-#: wp-admin/plugin-install.php:40
-#: wp-admin/plugins.php:335
-#: wp-admin/theme-editor.php:25
-#: wp-admin/theme-install.php:46
-#: wp-admin/themes.php:49
-#: wp-admin/update-core.php:433
-#: wp-admin/upload.php:150
-#: wp-admin/user-edit.php:47
-#: wp-admin/user-new.php:154
-#: wp-admin/users.php:25
+#: wp-admin/comment.php:50 wp-admin/custom-background.php:88
+#: wp-admin/custom-header.php:106 wp-admin/edit-comments.php:116
+#: wp-admin/edit-form-advanced.php:217 wp-admin/edit-link-form.php:44
+#: wp-admin/edit-tags.php:204 wp-admin/edit.php:154 wp-admin/edit.php:199
+#: wp-admin/export.php:48 wp-admin/import.php:21
+#: wp-admin/includes/screen.php:781 wp-admin/index.php:46
+#: wp-admin/link-manager.php:45 wp-admin/media-new.php:45
+#: wp-admin/media.php:73 wp-admin/my-sites.php:40 wp-admin/nav-menus.php:439
+#: wp-admin/options-discussion.php:20 wp-admin/options-general.php:73
+#: wp-admin/options-media.php:28 wp-admin/options-permalink.php:20
+#: wp-admin/options-reading.php:55 wp-admin/options-writing.php:20
+#: wp-admin/plugin-editor.php:116 wp-admin/plugin-install.php:40
+#: wp-admin/plugins.php:340 wp-admin/theme-editor.php:25
+#: wp-admin/theme-install.php:46 wp-admin/themes.php:49
+#: wp-admin/update-core.php:407 wp-admin/upload.php:152
+#: wp-admin/user-edit.php:47 wp-admin/user-new.php:159 wp-admin/users.php:25
 #: wp-admin/widgets.php:44
 msgid "Overview"
 msgstr "Vue d&rsquo;ensemble"
 
 #: wp-admin/comment.php:52
-msgid "You can edit the information left in a comment if needed. This is often useful when you notice that a commenter has made a typographical error."
-msgstr "Au besoin, vous pouvez modifier les informations laissées dans un commentaire. Par exemple, si un commentateur a fait une faute d&rsquo;orthographe."
+msgid ""
+"You can edit the information left in a comment if needed. This is often "
+"useful when you notice that a commenter has made a typographical error."
+msgstr ""
+"Au besoin, vous pouvez modifier les informations laissées dans un "
+"commentaire. Par exemple, si un commentateur a fait une faute d&rsquo;"
+"orthographe."
 
 #: wp-admin/comment.php:53
-msgid "You can also moderate the comment from this screen using the Status box, where you can also change the timestamp of the comment."
-msgstr "Vous pouvez également modérer le commentaire depuis cet écran, à l&rsquo;aide du module État, d&rsquo;où vous pouvez également changer l&rsquo;horodatage du commentaire."
-
-#: wp-admin/comment.php:57
-#: wp-admin/custom-background.php:103
-#: wp-admin/custom-header.php:138
-#: wp-admin/edit-comments.php:132
-#: wp-admin/edit-form-advanced.php:211
-#: wp-admin/edit-form-advanced.php:236
-#: wp-admin/edit-link-form.php:52
-#: wp-admin/edit-tags.php:234
-#: wp-admin/edit.php:191
-#: wp-admin/edit.php:212
-#: wp-admin/export.php:49
-#: wp-admin/import.php:27
-#: wp-admin/index.php:90
-#: wp-admin/link-manager.php:59
-#: wp-admin/media-upload.php:83
-#: wp-admin/media.php:82
-#: wp-admin/my-sites.php:47
-#: wp-admin/nav-menus.php:464
-#: wp-admin/options-discussion.php:26
-#: wp-admin/options-general.php:79
-#: wp-admin/options-media.php:39
-#: wp-admin/options-permalink.php:43
-#: wp-admin/options-privacy.php:26
-#: wp-admin/options-reading.php:54
-#: wp-admin/options-writing.php:56
-#: wp-admin/plugin-editor.php:126
-#: wp-admin/plugin-install.php:54
-#: wp-admin/plugins.php:349
-#: wp-admin/theme-editor.php:37
-#: wp-admin/theme-install.php:61
-#: wp-admin/themes.php:84
-#: wp-admin/tools.php:27
-#: wp-admin/update-core.php:448
-#: wp-admin/upload.php:169
-#: wp-admin/user-edit.php:52
-#: wp-admin/user-new.php:172
-#: wp-admin/users.php:60
+msgid ""
+"You can also moderate the comment from this screen using the Status box, "
+"where you can also change the timestamp of the comment."
+msgstr ""
+"Vous pouvez également modérer le commentaire depuis cet écran, à l&rsquo;"
+"aide du module État, d&rsquo;où vous pouvez également changer l&rsquo;"
+"horodatage du commentaire."
+
+#: wp-admin/comment.php:57 wp-admin/custom-background.php:97
+#: wp-admin/custom-header.php:132 wp-admin/edit-comments.php:132
+#: wp-admin/edit-form-advanced.php:194 wp-admin/edit-form-advanced.php:209
+#: wp-admin/edit-form-advanced.php:226 wp-admin/edit-link-form.php:52
+#: wp-admin/edit-tags.php:234 wp-admin/edit.php:191 wp-admin/edit.php:212
+#: wp-admin/export.php:54 wp-admin/import.php:27 wp-admin/index.php:99
+#: wp-admin/link-manager.php:59 wp-admin/media-new.php:55
+#: wp-admin/media.php:82 wp-admin/my-sites.php:47 wp-admin/nav-menus.php:453
+#: wp-admin/options-discussion.php:26 wp-admin/options-general.php:78
+#: wp-admin/options-media.php:33 wp-admin/options-permalink.php:43
+#: wp-admin/options-reading.php:70 wp-admin/options-writing.php:48
+#: wp-admin/plugin-editor.php:127 wp-admin/plugin-install.php:55
+#: wp-admin/plugins.php:354 wp-admin/theme-editor.php:38
+#: wp-admin/theme-install.php:61 wp-admin/themes.php:86 wp-admin/tools.php:27
+#: wp-admin/update-core.php:422 wp-admin/upload.php:171
+#: wp-admin/user-edit.php:52 wp-admin/user-new.php:177 wp-admin/users.php:60
 #: wp-admin/widgets.php:66
 msgid "For more information:"
 msgstr "Plus d&rsquo;informations&nbsp;:"
 
-#: wp-admin/comment.php:58
-#: wp-admin/edit-comments.php:133
-msgid "<a href=\"http://codex.wordpress.org/Administration_Screens#Comments\" target=\"_blank\">Documentation on Comments</a>"
-msgstr "<a href=\"http://codex.wordpress.org/Administration_Screens#Comments\" target=\"_blank\">Documentation sur les commentaires (en)</a>"
-
-#: wp-admin/comment.php:59
-#: wp-admin/custom-background.php:105
-#: wp-admin/custom-header.php:140
-#: wp-admin/edit-comments.php:136
-#: wp-admin/edit-form-advanced.php:213
-#: wp-admin/edit-form-advanced.php:239
-#: wp-admin/edit-link-form.php:54
-#: wp-admin/edit-tags.php:243
-#: wp-admin/edit.php:193
-#: wp-admin/edit.php:214
-#: wp-admin/export.php:51
-#: wp-admin/import.php:29
-#: wp-admin/index.php:92
-#: wp-admin/link-manager.php:61
-#: wp-admin/media-upload.php:85
-#: wp-admin/media.php:84
-#: wp-admin/my-sites.php:49
-#: wp-admin/nav-menus.php:466
-#: wp-admin/options-discussion.php:28
-#: wp-admin/options-general.php:81
-#: wp-admin/options-media.php:41
-#: wp-admin/options-permalink.php:46
-#: wp-admin/options-privacy.php:28
-#: wp-admin/options-reading.php:56
-#: wp-admin/options-writing.php:58
-#: wp-admin/plugin-editor.php:129
-#: wp-admin/plugin-install.php:56
-#: wp-admin/plugins.php:351
-#: wp-admin/theme-editor.php:42
-#: wp-admin/theme-install.php:63
-#: wp-admin/themes.php:86
-#: wp-admin/tools.php:29
-#: wp-admin/update-core.php:450
-#: wp-admin/upload.php:171
-#: wp-admin/user-edit.php:54
-#: wp-admin/user-new.php:174
-#: wp-admin/users.php:63
+#: wp-admin/comment.php:58 wp-admin/edit-comments.php:133
+msgid ""
+"<a href=\"http://codex.wordpress.org/Administration_Screens#Comments\" "
+"target=\"_blank\">Documentation on Comments</a>"
+msgstr ""
+"<a href=\"http://codex.wordpress.org/Administration_Screens#Comments\" "
+"target=\"_blank\">Documentation sur les commentaires (en)</a>"
+
+#: wp-admin/comment.php:59 wp-admin/custom-background.php:99
+#: wp-admin/custom-header.php:134 wp-admin/edit-comments.php:136
+#: wp-admin/edit-form-advanced.php:196 wp-admin/edit-form-advanced.php:212
+#: wp-admin/edit-form-advanced.php:228 wp-admin/edit-link-form.php:54
+#: wp-admin/edit-tags.php:243 wp-admin/edit.php:193 wp-admin/edit.php:214
+#: wp-admin/export.php:56 wp-admin/import.php:29 wp-admin/index.php:101
+#: wp-admin/link-manager.php:61 wp-admin/media-new.php:57
+#: wp-admin/media.php:84 wp-admin/my-sites.php:49 wp-admin/nav-menus.php:455
+#: wp-admin/options-discussion.php:28 wp-admin/options-general.php:80
+#: wp-admin/options-media.php:35 wp-admin/options-permalink.php:46
+#: wp-admin/options-reading.php:72 wp-admin/options-writing.php:50
+#: wp-admin/plugin-editor.php:130 wp-admin/plugin-install.php:57
+#: wp-admin/plugins.php:356 wp-admin/theme-editor.php:43
+#: wp-admin/theme-install.php:63 wp-admin/themes.php:88 wp-admin/tools.php:29
+#: wp-admin/update-core.php:424 wp-admin/upload.php:173
+#: wp-admin/user-edit.php:54 wp-admin/user-new.php:179 wp-admin/users.php:63
 #: wp-admin/widgets.php:68
-msgid "<a href=\"http://wordpress.org/support/\" target=\"_blank\">Support Forums</a>"
-msgstr "<a href=\"http://www.wordpress-fr.net/support/\" target=\"_blank\">Forums d&rsquo;entraide</a>"
-
-#: wp-admin/comment.php:68
-#: wp-admin/comment.php:222
+msgid ""
+"<a href=\"http://wordpress.org/support/\" target=\"_blank\">Support Forums</"
+"a>"
+msgstr ""
+"<a href=\"http://www.wordpress-fr.net/support/\" target=\"_blank\">Forums "
+"d&rsquo;entraide</a>"
+
+#: wp-admin/comment.php:68 wp-admin/comment.php:222
 #: wp-admin/edit-comments.php:165
 msgid "Oops, no comment with this ID."
 msgstr "Oups, aucun commentaire avec cet ID."
 
-#: wp-admin/comment.php:68
-#: wp-admin/comment.php:222
+#: wp-admin/comment.php:68 wp-admin/comment.php:222
 msgid "Go back"
 msgstr "Retour"
 
@@ -470,8 +511,12 @@
 msgstr "Vous n&rsquo;avez pas l&rsquo;autorisation de modifier ce commentaire."
 
 #: wp-admin/comment.php:74
-msgid "This comment is in the Trash. Please move it out of the Trash if you want to edit it."
-msgstr "Ce commentaire est dans la Corbeille. Veuillez l&rsquo;en sortir avant de le modifier."
+msgid ""
+"This comment is in the Trash. Please move it out of the Trash if you want to "
+"edit it."
+msgstr ""
+"Ce commentaire est dans la Corbeille. Veuillez l&rsquo;en sortir avant de le "
+"modifier."
 
 #: wp-admin/comment.php:87
 msgid "Moderate Comment"
@@ -479,7 +524,9 @@
 
 #: wp-admin/comment.php:124
 msgid "You are about to mark the following comment as spam:"
-msgstr "Vous êtes sur le point de marquer le commentaire suivant comme indésirable&nbsp;:"
+msgstr ""
+"Vous êtes sur le point de marquer le commentaire suivant comme "
+"indésirable&nbsp;:"
 
 #: wp-admin/comment.php:125
 msgid "Spam Comment"
@@ -487,7 +534,9 @@
 
 #: wp-admin/comment.php:128
 msgid "You are about to move the following comment to the Trash:"
-msgstr "Vous êtes sur le point de déplacer le commentaire suivant dans la Corbeille&nbsp;:"
+msgstr ""
+"Vous êtes sur le point de déplacer le commentaire suivant dans la "
+"Corbeille&nbsp;:"
 
 #: wp-admin/comment.php:129
 msgid "Trash Comment"
@@ -521,45 +570,57 @@
 msgid "This comment is currently in the Trash."
 msgstr "Ce commentaire est actuellement dans la Corbeille."
 
-#: wp-admin/comment.php:158
-#: wp-admin/plugins.php:261
-#: wp-admin/theme-editor.php:217
+#: wp-admin/comment.php:158 wp-admin/plugins.php:266
+#: wp-admin/theme-editor.php:218
 msgid "Caution:"
 msgstr "Attention&nbsp;:"
 
-#: wp-admin/comment.php:224
-#: wp-admin/edit-comments.php:168
+#: wp-admin/comment.php:224 wp-admin/edit-comments.php:168
 #: wp-admin/includes/comment.php:37
 msgid "You are not allowed to edit comments on this post."
-msgstr "Vous n&rsquo;avez pas l&rsquo;autorisation de modifier les commentaires de cet article."
+msgstr ""
+"Vous n&rsquo;avez pas l&rsquo;autorisation de modifier les commentaires de "
+"cet article."
 
 #: wp-admin/comment.php:289
 msgid "Unknown action."
 msgstr "Action inconnue."
 
 #: wp-admin/credits.php:74
-msgid "WordPress is created by a <a href=\"%1$s\">worldwide team</a> of passionate individuals. <a href=\"%2$s\">Get involved in WordPress</a>."
-msgstr "WordPress est créé par une <a href=\"%1$s\">équipe de personnes passionnées</a>, répartie sur toute la planète. <a href=\"%2$s\">Participez au développement de WordPress</a>&nbsp;!"
+msgid ""
+"WordPress is created by a <a href=\"%1$s\">worldwide team</a> of passionate "
+"individuals. <a href=\"%2$s\">Get involved in WordPress</a>."
+msgstr ""
+"WordPress est créé par une <a href=\"%1$s\">équipe de personnes passionnées</"
+"a>, répartie sur toute la planète. <a href=\"%2$s\">Participez au "
+"développement de WordPress</a>&nbsp;!"
 
 #. translators: Url to the codex documentation on contributing to WordPress
 #. used on the credits page
-#: wp-admin/credits.php:77
-#: wp-admin/credits.php:134
+#: wp-admin/credits.php:77 wp-admin/credits.php:134
 msgid "http://codex.wordpress.org/Contributing_to_WordPress"
 msgstr "http://codex.wordpress.org/Contributing_to_WordPress"
 
 #: wp-admin/credits.php:82
 msgid "WordPress is created by a worldwide team of passionate individuals."
-msgstr "WordPress est créé par une équipe de personnes passionnées, réparties sur toute la planète."
+msgstr ""
+"WordPress est créé par une équipe de personnes passionnées, réparties sur "
+"toute la planète."
 
 #: wp-admin/credits.php:90
-msgctxt "Translate this to be the equivalent of English Translators in your language for the credits page Translators section"
+msgctxt ""
+"Translate this to be the equivalent of English Translators in your language "
+"for the credits page Translators section"
 msgid "Translators"
 msgstr "Traducteurs"
 
 #: wp-admin/credits.php:132
-msgid "Want to see your name in lights on this page? <a href=\"%s\">Get involved in WordPress</a>."
-msgstr "Vous voulez faire partie des noms listés sur cette page&nbsp;? <a href=\"%s\">Participez au développement de WordPress</a>&nbsp;!"
+msgid ""
+"Want to see your name in lights on this page? <a href=\"%s\">Get involved in "
+"WordPress</a>."
+msgstr ""
+"Vous voulez faire partie des noms listés sur cette page&nbsp;? <a href=\"%s"
+"\">Participez au développement de WordPress</a>&nbsp;!"
 
 #: wp-admin/credits.php:144
 msgid "Project Leaders"
@@ -618,8 +679,6 @@
 msgstr "Concepteur graphique"
 
 #: wp-admin/credits.php:158
-#: wp-admin/options-writing.php:178
-#: wp-admin/options-writing.php:179
 msgid "XML-RPC"
 msgstr "XML-RPC"
 
@@ -631,322 +690,456 @@
 msgid "Icon Design"
 msgstr "Conception des icônes"
 
-#: wp-admin/custom-background.php:96
-msgid "You can customize the look of your site without touching any of your theme&#8217;s code by using a custom background. Your background can be an image or a color."
-msgstr "Vous pouvez personnaliser l&rsquo;apparence de votre site sans jamais toucher au code de votre thème, en utilisant un fond personnalisé. Votre fond peut être une image ou juste une couleur."
-
-#: wp-admin/custom-background.php:97
-msgid "To use a background image, simply upload it, then choose your display options below. You can display a single instance of your image, or tile it to fill the screen. You can have your background fixed in place, so your site content moves on top of it, or you can have it scroll with your site."
-msgstr "Pour utiliser une image de fond, mettez-la simplement en ligne, puis choisissez l&rsquo;une des options d&rsquo;affichage ci-dessous. Vous pouvez n&rsquo;afficher qu&rsquo;une occurrence de l&rsquo;image, ou la répéter afin de remplir l&rsquo;écran. Vous pouvez choisir de garder le fond en place quand vous faites défiler le contenu, ou au contraire faire que le fond défile en même temps."
+#: wp-admin/custom-background.php:90
+msgid ""
+"You can customize the look of your site without touching any of your "
+"theme&#8217;s code by using a custom background. Your background can be an "
+"image or a color."
+msgstr ""
+"Vous pouvez personnaliser l&rsquo;apparence de votre site sans jamais "
+"toucher au code de votre thème, en utilisant un fond personnalisé. Votre "
+"fond peut être une image ou juste une couleur."
+
+#: wp-admin/custom-background.php:91
+msgid ""
+"To use a background image, simply upload it or choose an image that has "
+"already been uploaded to your Media Library by clicking the &#8220;Choose "
+"Image&#8221; button. You can display a single instance of your image, or "
+"tile it to fill the screen. You can have your background fixed in place, so "
+"your site content moves on top of it, or you can have it scroll with your "
+"site."
+msgstr ""
+"Pour utiliser une image de fond, mettez-la simplement en ligne ou choisissez "
+"une image déjà mise en ligne dans votre Bibliothèque de Médias en cliquant "
+"sur  le bouton &laquo;&nbsp;Choisir l&rsquo;image&nbsp;&raquo;. Vous pouvez "
+"n&rsquo;afficher qu&rsquo;une occurrence de l&rsquo;image, ou la répéter "
+"afin de remplir l&rsquo;écran. Vous pouvez choisir de garder le fond en "
+"place quand vous faites défiler le contenu, ou au contraire faire que le "
+"fond défile en même temps."
+
+#: wp-admin/custom-background.php:92
+msgid ""
+"You can also choose a background color by clicking the Select Color button "
+"and either typing in a legitimate HTML hex value, e.g. &#8220;#ff0000&#8221; "
+"for red, or by choosing a color using the color picker."
+msgstr ""
+"Vous pouvez également choisir une couleur pour ce texte en cliquant sur le "
+"bouton &laquo;&nbsp;Sélecteur de couleur&nbsp;&raquo; et soit en saisissant "
+"une valeur HTML valide (ex.&nbsp;: <code>#ff0000</code> pour du rouge) ou en "
+"cliquant sur le sélecteur de couleur."
+
+#: wp-admin/custom-background.php:93
+msgid ""
+"Don&#8217;t forget to click on the Save Changes button when you are finished."
+msgstr ""
+"N&rsquo;oubliez pas de cliquer sur &laquo;&nbsp;Enregistrer les "
+"modifications&nbsp;&raquo; quand vous avez terminé."
 
 #: wp-admin/custom-background.php:98
-msgid "You can also choose a background color. If you know the hexadecimal code for the color you want, enter it in the Background Color field. If not, click on the Select a Color link, and a color picker will allow you to choose the exact shade you want."
-msgstr "Vous pouvez également choisir une couleur de fond. Si vous connaissez le code hexadécimal de la couleur voulue, saisissez-la dans le champ &laquo;&nbsp;Couleur&nbsp;&raquo;. Sinon, cliquez sur le lien &laquo;&nbsp;Sélecteur de Couleur&nbsp;&raquo;, et vous pourrez choisir la teinte exacte que vous recherchez."
-
-#: wp-admin/custom-background.php:99
-msgid "Don&#8217;t forget to click on the Save Changes button when you are finished."
-msgstr "N&rsquo;oubliez pas de cliquer sur &laquo;&nbsp;Enregistrer les modifications&nbsp;&raquo; quand vous avez terminé."
-
-#: wp-admin/custom-background.php:104
-msgid "<a href=\"http://codex.wordpress.org/Appearance_Background_Screen\" target=\"_blank\">Documentation on Custom Background</a>"
-msgstr "<a href=\"http://codex.wordpress.org/Appearance_Background_Screen\" target=\"_blank\">Documentation sur le fond personnalisé (en)</a>"
-
-#: wp-admin/custom-background.php:190
-#: wp-admin/includes/theme.php:189
+msgid ""
+"<a href=\"http://codex.wordpress.org/Appearance_Background_Screen\" target="
+"\"_blank\">Documentation on Custom Background</a>"
+msgstr ""
+"<a href=\"http://codex.wordpress.org/Appearance_Background_Screen\" target="
+"\"_blank\">Documentation sur le fond personnalisé (en)</a>"
+
+#: wp-admin/custom-background.php:183 wp-admin/includes/theme.php:189
 msgid "Custom Background"
 msgstr "Arrière-plan personnalisé"
 
-#: wp-admin/custom-background.php:193
-msgid "Background updated. <a href=\"%s\">Visit your site</a> to see how it looks."
-msgstr "L&rsquo;arrière-plan a été mis à jour. <a href=\"%s\">Afficher votre site</a> pour voir le rendu."
-
-#: wp-admin/custom-background.php:234
+#: wp-admin/custom-background.php:186
+msgid ""
+"Background updated. <a href=\"%s\">Visit your site</a> to see how it looks."
+msgstr ""
+"L&rsquo;arrière-plan a été mis à jour. <a href=\"%s\">Afficher votre site</"
+"a> pour voir le rendu."
+
+#: wp-admin/custom-background.php:227
 msgid "Remove Background Image"
 msgstr "Supprimer l&rsquo;image d&rsquo;arrière-plan"
 
-#: wp-admin/custom-background.php:235
-msgid "This will remove the background image. You will not be able to restore any customizations."
-msgstr "Ceci supprimera l&rsquo;image d&rsquo;arrière-plan. Il ne vous sera pas possible de récupérer vos personnalisations."
-
-#: wp-admin/custom-background.php:244
-#: wp-admin/custom-background.php:248
+#: wp-admin/custom-background.php:228
+msgid ""
+"This will remove the background image. You will not be able to restore any "
+"customizations."
+msgstr ""
+"Ceci supprimera l&rsquo;image d&rsquo;arrière-plan. Il ne vous sera pas "
+"possible de récupérer vos personnalisations."
+
+#: wp-admin/custom-background.php:237 wp-admin/custom-background.php:241
 #: wp-admin/includes/image-edit.php:97
 msgid "Restore Original Image"
 msgstr "Restaurer l&rsquo;image originale"
 
-#: wp-admin/custom-background.php:249
-msgid "This will restore the original background image. You will not be able to restore any customizations."
-msgstr "Ceci remettra en place l&rsquo;image d&rsquo;arrière-plan originale. Il ne vous sera pas possible de récupérer vos personnalisations."
-
-#: wp-admin/custom-background.php:256
-#: wp-admin/custom-header.php:529
+#: wp-admin/custom-background.php:242
+msgid ""
+"This will restore the original background image. You will not be able to "
+"restore any customizations."
+msgstr ""
+"Ceci remettra en place l&rsquo;image d&rsquo;arrière-plan originale. Il ne "
+"vous sera pas possible de récupérer vos personnalisations."
+
+#: wp-admin/custom-background.php:249 wp-admin/custom-header.php:495
 msgid "Select Image"
 msgstr "Sélectionnez une image"
 
-#: wp-admin/custom-background.php:259
-#: wp-admin/custom-header.php:551
+#: wp-admin/custom-background.php:252 wp-admin/custom-header.php:517
 msgid "Choose an image from your computer:"
 msgstr "Choisissez une image sur votre ordinateur&nbsp;:"
 
-#: wp-admin/custom-background.php:271
-#: wp-admin/custom-header.php:563
+#: wp-admin/custom-background.php:259 wp-admin/custom-header.php:531
 msgid "Or choose an image from your media library:"
 msgstr "Ou choisissez une image de votre bibliothèque de médias&nbsp;:"
 
-#: wp-admin/custom-background.php:272
-#: wp-admin/custom-header.php:564
-msgid "Choose Image"
-msgstr "Choisissez une image"
-
-#: wp-admin/custom-background.php:280
-msgid "Display Options"
-msgstr "Options d&rsquo;affichage"
-
-#: wp-admin/custom-background.php:286
-#: wp-admin/widgets.php:257
-msgid "Position"
-msgstr "Position"
-
-#: wp-admin/custom-background.php:304
-msgid "Repeat"
-msgstr "Répétition"
-
-#: wp-admin/custom-background.php:314
-msgid "Attachment"
-msgstr "Fichier attaché"
-
-#: wp-admin/custom-background.php:332
-#: wp-admin/custom-header.php:649
-msgid "Select a Color"
-msgstr "Sélecteur de couleur"
-
-#: wp-admin/custom-background.php:332
-msgid "Clear"
-msgstr "Effacer"
-
-#: wp-admin/custom-background.php:402
+#: wp-admin/custom-background.php:261
+msgid "Choose a Background Image"
+msgstr "Choisir une image d&rsquo;arrière-plan"
+
+#: wp-admin/custom-background.php:262
 msgid "Set as background"
 msgstr "Utiliser comme image de fond"
 
-#: wp-admin/custom-background.php:414
-#: wp-admin/custom-header.php:958
-#: wp-admin/includes/media.php:21
-#: wp-admin/upload.php:139
-msgid "Media Library"
-msgstr "Bibliothèque"
-
-#: wp-admin/custom-background.php:420
-#: wp-admin/includes/media.php:715
-msgid "Large"
-msgstr "Large"
-
-#: wp-admin/custom-header.php:114
+#: wp-admin/custom-background.php:262 wp-admin/custom-header.php:535
+msgid "Choose Image"
+msgstr "Choisissez une image"
+
+#: wp-admin/custom-background.php:270
+msgid "Display Options"
+msgstr "Options d&rsquo;affichage"
+
+#: wp-admin/custom-background.php:276 wp-admin/widgets.php:242
+msgid "Position"
+msgstr "Position"
+
+#: wp-admin/custom-background.php:294
+msgid "Repeat"
+msgstr "Répétition"
+
+#: wp-admin/custom-background.php:304
+msgid "Attachment"
+msgstr "Fichier attaché"
+
+#: wp-admin/custom-background.php:355 wp-admin/custom-header.php:755
+#: wp-admin/includes/ajax-actions.php:1607
+msgid "The uploaded file is not a valid image. Please try again."
+msgstr ""
+"Le fichier mis en ligne n&rsquo;est pas une image valide. Veuillez réessayer."
+
+#: wp-admin/custom-header.php:108
 msgid "This screen is used to customize the header section of your theme."
-msgstr "Cet écran est utilisé pour personnaliser la section d&rsquo;en-tête de votre thème."
-
-#: wp-admin/custom-header.php:115
-msgid "You can choose from the theme&#8217;s default header images, or use one of your own. You can also customize how your Site Title and Tagline are displayed."
-msgstr "Vous pouvez choisir à partir des images d&rsquo;en-tête par défaut du thème, ou utiliser l&rsquo;une des vôtres. Vous pouvez également personnaliser la manière dont s&rsquo;affichent le titre de votre site et son slogan."
-
-#: wp-admin/custom-header.php:122
-msgid "You can set a custom image header for your site. Simply upload the image and crop it, and the new header will go live immediately. Alternatively, you can use an image that has already been uploaded to your Media Library by clicking the &#8220;Choose Image&#8221; button."
-msgstr "Vous pouvez utiliser une image d&rsquo;en-tête personnalisée pour votre site. Mettez simplement l&rsquo;image en ligne, recadrez-la, et le nouvel en-tête sera aussitôt en ligne. Autrement, vous pouvez utiliser une image qui a déjà été mise en ligne dans votre Bibliothèque de Média, en cliquant sur le bouton &laquo;&nbsp;Choisissez une image&nbsp;&raquo;."
-
-#: wp-admin/custom-header.php:123
-msgid "Some themes come with additional header images bundled. If you see multiple images displayed, select the one you&#8217;d like and click the &#8220;Save Changes&#8221; button."
-msgstr "Certains thèmes disposent d&rsquo;une série d&rsquo;images d&rsquo;en-tête. Si vous voyez plusieurs images affichées, sélectionnez celle que vous aimez et cliquez sur le bouton &laquo;&nbsp;Enregistrer les modifications&nbsp;&raquo;."
-
-#: wp-admin/custom-header.php:124
-msgid "If your theme has more than one default header image, or you have uploaded more than one custom header image, you have the option of having WordPress display a randomly different image on each page of your site. Click the &#8220;Random&#8221; radio button next to the Uploaded Images or Default Images section to enable this feature."
-msgstr "Si votre thème a plus d&rsquo;une image d&rsquo;en-tête par défaut, ou si vous avez mis en ligne plus d&rsquo;une image d&rsquo;en-tête personnalisée, vous pouvez faire en sorte que WordPress affiche une image différente au hasard à chaque chargement de votre site. Sélectionnez l&rsquo;option &laquo;&nbsp;Au hasard&nbsp;&raquo; dans la section &laquo;&nbsp;Images par défaut&nbsp;&raquo; ou &laquo;&nbsp;Images mises en ligne&nbsp;&raquo; pour activer cette fonctionnalité."
-
-#: wp-admin/custom-header.php:125
-msgid "If you don&#8217;t want a header image to be displayed on your site at all, click the &#8220;Remove Header Image&#8221; button at the bottom of the Header Image section of this page. If you want to re-enable the header image later, you just have to select one of the other image options and click &#8220;Save Changes&#8221;."
-msgstr "Si vous ne souhaitez pas que votre site utilise une image d&rsquo;en-tête, cliquez sur le bouton &laquo;&nbsp;Retirer l’image d&rsquo;en-tête&nbsp;&raquo; en bas de la section &laquo;&nbsp;Image d&rsquo;en-tête&nbsp;&raquo; de cette page. Si vous souhaitez réactiver l&rsquo;image d&rsquo;en-tête, il vous suffit de sélectionner l&rsquo;une des autres options d&rsquo;images, et de la valider en cliquant sur &laquo;&nbsp;Enregistrer les modifications&nbsp;&raquo;."
-
-#: wp-admin/custom-header.php:130
-#: wp-admin/custom-header.php:627
-#: wp-admin/custom-header.php:632
+msgstr ""
+"Cet écran est utilisé pour personnaliser la section d&rsquo;en-tête de votre "
+"thème."
+
+#: wp-admin/custom-header.php:109
+msgid ""
+"You can choose from the theme&#8217;s default header images, or use one of "
+"your own. You can also customize how your Site Title and Tagline are "
+"displayed."
+msgstr ""
+"Vous pouvez choisir à partir des images d&rsquo;en-tête par défaut du thème, "
+"ou utiliser l&rsquo;une des vôtres. Vous pouvez également personnaliser la "
+"manière dont s&rsquo;affichent le titre de votre site et son slogan."
+
+#: wp-admin/custom-header.php:116
+msgid ""
+"You can set a custom image header for your site. Simply upload the image and "
+"crop it, and the new header will go live immediately. Alternatively, you can "
+"use an image that has already been uploaded to your Media Library by "
+"clicking the &#8220;Choose Image&#8221; button."
+msgstr ""
+"Vous pouvez utiliser une image d&rsquo;en-tête personnalisée pour votre "
+"site. Mettez simplement l&rsquo;image en ligne, recadrez-la, et le nouvel en-"
+"tête sera aussitôt en ligne. Autrement, vous pouvez utiliser une image qui a "
+"déjà été mise en ligne dans votre Bibliothèque de Médias, en cliquant sur le "
+"bouton &laquo;&nbsp;Choisissez une image&nbsp;&raquo;."
+
+#: wp-admin/custom-header.php:117
+msgid ""
+"Some themes come with additional header images bundled. If you see multiple "
+"images displayed, select the one you&#8217;d like and click the &#8220;Save "
+"Changes&#8221; button."
+msgstr ""
+"Certains thèmes disposent d&rsquo;une série d&rsquo;images d&rsquo;en-tête. "
+"Si vous voyez plusieurs images affichées, sélectionnez celle que vous aimez "
+"et cliquez sur le bouton &laquo;&nbsp;Enregistrer les modifications&nbsp;"
+"&raquo;."
+
+#: wp-admin/custom-header.php:118
+msgid ""
+"If your theme has more than one default header image, or you have uploaded "
+"more than one custom header image, you have the option of having WordPress "
+"display a randomly different image on each page of your site. Click the "
+"&#8220;Random&#8221; radio button next to the Uploaded Images or Default "
+"Images section to enable this feature."
+msgstr ""
+"Si votre thème a plus d&rsquo;une image d&rsquo;en-tête par défaut, ou si "
+"vous avez mis en ligne plus d&rsquo;une image d&rsquo;en-tête personnalisée, "
+"vous pouvez faire en sorte que WordPress affiche une image aléatoire "
+"différente à chaque chargement de votre site. Sélectionnez l&rsquo;option "
+"&laquo;&nbsp;Au hasard&nbsp;&raquo; dans la section &laquo;&nbsp;Images par "
+"défaut&nbsp;&raquo; ou &laquo;&nbsp;Images mises en ligne&nbsp;&raquo; pour "
+"activer cette fonctionnalité."
+
+#: wp-admin/custom-header.php:119
+msgid ""
+"If you don&#8217;t want a header image to be displayed on your site at all, "
+"click the &#8220;Remove Header Image&#8221; button at the bottom of the "
+"Header Image section of this page. If you want to re-enable the header image "
+"later, you just have to select one of the other image options and click "
+"&#8220;Save Changes&#8221;."
+msgstr ""
+"Si vous ne souhaitez pas que votre site utilise une image d&rsquo;en-tête, "
+"cliquez sur le bouton &laquo;&nbsp;Retirer l’image d&rsquo;en-tête&nbsp;"
+"&raquo; en bas de la section &laquo;&nbsp;Image d&rsquo;en-tête&nbsp;&raquo; "
+"de cette page. Si vous souhaitez réactiver l&rsquo;image d&rsquo;en-tête, il "
+"vous suffit de sélectionner l&rsquo;une des autres options d&rsquo;images, "
+"et de la valider en cliquant sur &laquo;&nbsp;Enregistrer les "
+"modifications&nbsp;&raquo;."
+
+#: wp-admin/custom-header.php:124 wp-admin/custom-header.php:598
+#: wp-admin/custom-header.php:603
 msgid "Header Text"
 msgstr "Texte de l&rsquo;en-tête"
 
-#: wp-admin/custom-header.php:132
-msgid "For most themes, the header text is your Site Title and Tagline, as defined in the <a href=\"%1$s\">General Settings</a> section."
-msgstr "Pour la plupart des thèmes, le texte d&rsquo;en-tête est le titre de votre site et son slogan, tels que définis dans la section <a href=\"%1$s\">Réglages généraux</a>."
+#: wp-admin/custom-header.php:126
+msgid ""
+"For most themes, the header text is your Site Title and Tagline, as defined "
+"in the <a href=\"%1$s\">General Settings</a> section."
+msgstr ""
+"Pour la plupart des thèmes, le texte d&rsquo;en-tête est le titre de votre "
+"site et son slogan, tels que définis dans la section <a href=\"%1$s"
+"\">Réglages généraux</a>."
+
+#: wp-admin/custom-header.php:127
+msgid ""
+"In the Header Text section of this page, you can choose whether to display "
+"this text or hide it. You can also choose a color for the text by clicking "
+"the Select Color button and either typing in a legitimate HTML hex value, e."
+"g. &#8220;#ff0000&#8221; for red, or by choosing a color using the color "
+"picker."
+msgstr ""
+"Dans la section &laquo;&nbsp;Texte d&rsquo;en-tête&nbsp;&raquo; de cette "
+"page, vous pouvez choisir d&rsquo;afficher ce texte ou de le cacher. Vous "
+"pouvez également choisir une couleur pour ce texte en cliquant sur le bouton "
+"&laquo;&nbsp;Sélecteur de couleur&nbsp;&raquo; et soit en saisissant une "
+"valeur HTML valide (ex.&nbsp;: <code>#ff0000</code> pour du rouge) ou en "
+"cliquant sur le sélecteur de couleur."
+
+#: wp-admin/custom-header.php:128
+msgid ""
+"Don&#8217;t forget to click &#8220;Save Changes&#8221; when you&#8217;re "
+"done!"
+msgstr ""
+"N&rsquo;oubliez pas de cliquer sur &laquo;&nbsp;Enregistrer les "
+"modifications&nbsp;&raquo; quand vous avez terminé&nbsp;!"
 
 #: wp-admin/custom-header.php:133
-msgid "In the Header Text section of this page, you can choose whether to display this text or hide it. You can also choose a color for the text by typing in a legitimate HTML hex value (eg: &#8220;#ff0000&#8221; for red) or by clicking &#8220;Select a Color&#8221; and dialing in a color using the color picker."
-msgstr "Dans la section &laquo;&nbsp;Texte d&rsquo;en-tête&nbsp;&raquo; de cette page, vous pouvez choisir d&rsquo;afficher ce texte ou de le cacher. Vous pouvez également choisir une couleur pour ce texte en saisissant une valeur HTML valide (ex&nbsp;: <code>#ff0000</code> pour du rouge) ou en cliquant sur &laquo;&nbsp;Sélecteur de couleur&nbsp;&raquo; pour trouver votre couleur à l&rsquo;aide du sélecteur."
-
-#: wp-admin/custom-header.php:134
-msgid "Don&#8217;t forget to Save Changes when you&#8217;re done!"
-msgstr "N&rsquo;oubliez pas de cliquer sur &laquo;&nbsp;Enregistrer les modifications&nbsp;&raquo; quand vous avez terminé."
-
-#: wp-admin/custom-header.php:139
-msgid "<a href=\"http://codex.wordpress.org/Appearance_Header_Screen\" target=\"_blank\">Documentation on Custom Header</a>"
-msgstr "<a href=\"http://codex.wordpress.org/Appearance_Header_Screen\" target=\"_blank\">Documentation sur l&rsquo;en-tête personnalisé (en)</a>"
-
-#: wp-admin/custom-header.php:293
+msgid ""
+"<a href=\"http://codex.wordpress.org/Appearance_Header_Screen\" target="
+"\"_blank\">Documentation on Custom Header</a>"
+msgstr ""
+"<a href=\"http://codex.wordpress.org/Appearance_Header_Screen\" target="
+"\"_blank\">Documentation sur l&rsquo;en-tête personnalisé (en)</a>"
+
+#: wp-admin/custom-header.php:280
 msgid "<strong>Random:</strong> Show a different image on each page."
-msgstr "<strong>Au hasard&nbsp;:</strong> affiche une image différente sur chaque page."
-
-#: wp-admin/custom-header.php:494
-#: wp-admin/includes/theme.php:191
+msgstr ""
+"<strong>Aléatoire &nbsp;:</strong> affiche une image différente sur chaque "
+"page."
+
+#: wp-admin/custom-header.php:454 wp-admin/includes/theme.php:191
 msgid "Custom Header"
 msgstr "Personnalisation de l&rsquo;en-tête"
 
-#: wp-admin/custom-header.php:498
+#: wp-admin/custom-header.php:458
 msgid "Header updated. <a href=\"%s\">Visit your site</a> to see how it looks."
-msgstr "L&rsquo;en-tête a été mis à jour. <a href=\"%s\">Visiter le site</a> pour voir son nouvel aspect."
-
-#: wp-admin/custom-header.php:531
-msgid "You can upload a custom header image to be shown at the top of your site instead of the default one. On the next screen you will be able to crop the image."
-msgstr "Vous pouvez ici mettre en ligne une image d&rsquo;en-tête personnalisée, qui sera affichée en haut de votre site en lieu et place de celle par défaut. L&rsquo;écran suivant vous permettra de recadrer l&rsquo;image."
+msgstr ""
+"L&rsquo;en-tête a été mis à jour. <a href=\"%s\">Visiter le site</a> pour "
+"voir son nouvel aspect."
+
+#: wp-admin/custom-header.php:497
+msgid ""
+"You can select an image to be shown at the top of your site by uploading "
+"from your computer or choosing from your media library. After selecting an "
+"image you will be able to crop it."
+msgstr ""
+"Vous pouvez choisir une image d&rsquo;en-tête personnalisée en la mettant en "
+"ligne depuis votre ordinateur ou en la choisissant dans votre bibliothèque "
+"de médias. Après avoir sélectionné l&rsquo;image, vous pourrez la recadrer."
+
+#: wp-admin/custom-header.php:500
+msgid ""
+"Images of exactly <strong>%1$d &times; %2$d pixels</strong> will be used as-"
+"is."
+msgstr ""
+"Les images ayant pour taille exacte <strong>%1$d pixels par %2$d</strong> "
+"seront utilisées telles quelles."
+
+#: wp-admin/custom-header.php:503
+msgid "Images should be at least <strong>%1$d pixels</strong> wide."
+msgstr ""
+"Les images devraient faire au moins <strong>%1$d pixels</strong> de large."
+
+#: wp-admin/custom-header.php:506
+msgid "Images should be at least <strong>%1$d pixels</strong> tall."
+msgstr ""
+"Les images devraient faire au moins <strong>%1$d pixels</strong> de haut."
+
+#: wp-admin/custom-header.php:510
+msgid "Suggested width is <strong>%1$d pixels</strong>."
+msgstr "La largeur suggérée est de <strong>%1$d pixels</strong>."
+
+#: wp-admin/custom-header.php:512
+msgid "Suggested height is <strong>%1$d pixels</strong>."
+msgstr "La hauteur suggérée est de <strong>%1$d pixels</strong>."
 
 #: wp-admin/custom-header.php:534
-msgid "Images of exactly <strong>%1$d &times; %2$d pixels</strong> will be used as-is."
-msgstr "Les images ayant pour taille exacte <strong>%1$d pixels par %2$d</strong> seront utilisées telles quelles."
-
-#: wp-admin/custom-header.php:537
-msgid "Images should be at least <strong>%1$d pixels</strong> wide."
-msgstr "Les images devraient faire au moins <strong>%1$d pixels</strong> de large."
-
-#: wp-admin/custom-header.php:540
-msgid "Images should be at least <strong>%1$d pixels</strong> tall."
-msgstr "Les images devraient faire au moins <strong>%1$d pixels</strong> de haut."
-
-#: wp-admin/custom-header.php:544
-msgid "Suggested width is <strong>%1$d pixels</strong>."
-msgstr "La largeur suggérée est de <strong>%1$d pixels</strong>."
-
-#: wp-admin/custom-header.php:546
-msgid "Suggested height is <strong>%1$d pixels</strong>."
-msgstr "La hauteur suggérée est de <strong>%1$d pixels</strong>."
-
-#: wp-admin/custom-header.php:578
+msgid "Choose a Custom Header"
+msgstr "Choisir un en-tête personnalisé"
+
+#: wp-admin/custom-header.php:535
+msgid "Set as header"
+msgstr "Utiliser comme en-tête"
+
+#: wp-admin/custom-header.php:549
 msgid "Uploaded Images"
 msgstr "Images mises en ligne"
 
-#: wp-admin/custom-header.php:580
-msgid "You can choose one of your previously uploaded headers, or show a random one."
-msgstr "Vous pouvez choisir un en-tête parmi ceux que vous avez déjà mis en ligne, ou en afficher un au hasard"
+#: wp-admin/custom-header.php:551
+msgid ""
+"You can choose one of your previously uploaded headers, or show a random one."
+msgstr ""
+"Vous pouvez choisir un en-tête parmi ceux que vous avez déjà mis en ligne, "
+"ou en afficher un aléatoirement"
 
 # Ne pas mettre d'entité HTML (&nbsp;...) : chaîne affichée dans l'éditeur visuel.
-#: wp-admin/custom-header.php:589
+#: wp-admin/custom-header.php:560
 msgid "Default Images"
 msgstr "Images par défaut"
 
-#: wp-admin/custom-header.php:592
-msgid "If you don&lsquo;t want to upload your own image, you can use one of these cool headers, or show a random one."
-msgstr "Si vous ne voulez pas mettre en ligne d&rsquo;image, vous pouvez utiliser l&rsquo;un de ces en-têtes, ou en afficher un au hasard."
-
-#: wp-admin/custom-header.php:594
-msgid "You can use one of these cool headers or show a random one on each page."
-msgstr "Vous pouvez choisir parmi ces en-têtes, ou en afficher un au hasard à chaque chargement de page."
-
-#: wp-admin/custom-header.php:606
-msgid "This will remove the header image. You will not be able to restore any customizations."
-msgstr "Ceci retirera l&rsquo;image d&rsquo;en-tête. Il ne vous sera pas possible de récupérer vos personnalisations."
-
-#: wp-admin/custom-header.php:607
+#: wp-admin/custom-header.php:563
+msgid ""
+"If you don&lsquo;t want to upload your own image, you can use one of these "
+"cool headers, or show a random one."
+msgstr ""
+"Si vous ne voulez pas mettre en ligne d&rsquo;image, vous pouvez utiliser "
+"l&rsquo;un de ces en-têtes, ou en afficher un aléatoirement."
+
+#: wp-admin/custom-header.php:565
+msgid ""
+"You can use one of these cool headers or show a random one on each page."
+msgstr ""
+"Vous pouvez choisir parmi ces en-têtes, ou en afficher un aléatoirement à "
+"chaque chargement de page."
+
+#: wp-admin/custom-header.php:577
+msgid ""
+"This will remove the header image. You will not be able to restore any "
+"customizations."
+msgstr ""
+"Ceci retirera l&rsquo;image d&rsquo;en-tête. Il ne vous sera pas possible de "
+"récupérer vos personnalisations."
+
+#: wp-admin/custom-header.php:578
 msgid "Remove Header Image"
 msgstr "Retirer l&rsquo;image d&rsquo;en-tête"
 
-#: wp-admin/custom-header.php:615
+#: wp-admin/custom-header.php:586
 msgid "Reset Image"
 msgstr "Remettre l&rsquo;image d&rsquo;origine"
 
-#: wp-admin/custom-header.php:617
-msgid "This will restore the original header image. You will not be able to restore any customizations."
-msgstr "Ceci remettra en place l&rsquo;image d&rsquo;en-tête d&rsquo;origine. Il ne vous sera pas possible de récupérer vos personnalisations."
-
-#: wp-admin/custom-header.php:618
+#: wp-admin/custom-header.php:588
+msgid ""
+"This will restore the original header image. You will not be able to restore "
+"any customizations."
+msgstr ""
+"Ceci remettra en place l&rsquo;image d&rsquo;en-tête d&rsquo;origine. Il ne "
+"vous sera pas possible de récupérer vos personnalisations."
+
+#: wp-admin/custom-header.php:589
 msgid "Restore Original Header Image"
 msgstr "Remettre l&rsquo;image d&rsquo;en-tête d&rsquo;origine"
 
-#: wp-admin/custom-header.php:635
+#: wp-admin/custom-header.php:606
 msgid "Show header text with your image."
 msgstr "Afficher le texte d&rsquo;en-tête avec l&rsquo;image."
 
-#: wp-admin/custom-header.php:641
+#: wp-admin/custom-header.php:612
 msgid "Text Color"
 msgstr "Couleur du texte"
 
-#: wp-admin/custom-header.php:657
-msgid "Reset Text Color"
-msgstr "Réinitialiser la couleur du texte"
-
-#: wp-admin/custom-header.php:659
-msgid "This will restore the original header text. You will not be able to restore any customizations."
-msgstr "Ceci remettra en place l&rsquo;image d&rsquo;en-tête d&rsquo;origine. Il ne vous sera pas possible de récupérer vos personnalisations."
-
-#: wp-admin/custom-header.php:660
-msgid "Restore Original Header Text"
-msgstr "Remettre le texte l&rsquo;en-tête d&rsquo;origine"
-
-#: wp-admin/custom-header.php:732
-#: wp-admin/custom-header.php:864
+#: wp-admin/custom-header.php:623
+msgctxt "color"
+msgid "Default: %s"
+msgstr "Par défaut&nbsp;: %s"
+
+#: wp-admin/custom-header.php:696 wp-admin/custom-header.php:837
 msgid "Image could not be processed. Please go back and try again."
-msgstr "L&rsquo;image n&rsquo;a pas pu être traitée. Veuillez revenir en arrière en réessayer."
+msgstr ""
+"L&rsquo;image n&rsquo;a pas pu être traitée. Veuillez revenir en arrière en "
+"réessayer."
+
+#: wp-admin/custom-header.php:696 wp-admin/custom-header.php:837
+msgid "Image Processing Error"
+msgstr "Erreur lors du traitement de l&rsquo;image"
+
+#: wp-admin/custom-header.php:710
+msgid "Crop Header Image"
+msgstr "Recadrer l&rsquo;image d&rsquo;en-tête"
+
+#: wp-admin/custom-header.php:713
+msgid "Choose the part of the image you want to use as your header."
+msgstr ""
+"Choisissez la partie de l&rsquo;image que vous voulez utiliser comme en-tête."
+
+#: wp-admin/custom-header.php:714
+msgid "You need Javascript to choose a part of the image."
+msgstr ""
+"Vous avez besoin de la fonctionnalité JavaScript de votre navigateur "
+"internet pour choisir une partie de l&rsquo;image."
 
 #: wp-admin/custom-header.php:732
-#: wp-admin/custom-header.php:864
-msgid "Image Processing Error"
-msgstr "Erreur lors du traitement de l&rsquo;image"
-
-#: wp-admin/custom-header.php:746
-msgid "Crop Header Image"
-msgstr "Recadrer l&rsquo;image d&rsquo;en-tête"
-
-#: wp-admin/custom-header.php:749
-msgid "Choose the part of the image you want to use as your header."
-msgstr "Choisissez la partie de l&rsquo;image que vous voulez utiliser comme en-tête."
-
-#: wp-admin/custom-header.php:750
-msgid "You need Javascript to choose a part of the image."
-msgstr "Vous avez besoin de la fonctionnalité JavaScript de votre navigateur internet pour choisir une partie de l&rsquo;image."
-
-#: wp-admin/custom-header.php:768
 msgid "Crop and Publish"
 msgstr "Recadrer et publier"
 
-#: wp-admin/custom-header.php:771
+#: wp-admin/custom-header.php:735
 msgid "Skip Cropping, Publish Image as Is"
 msgstr "Pas de recadrage, utiliser l&rsquo;image telle quelle"
 
-#: wp-admin/custom-header.php:790
+#: wp-admin/custom-header.php:760
 msgid "Image Upload Error"
 msgstr "Erreur lors de l&rsquo;envoi de l&rsquo;image"
 
-#: wp-admin/custom-header.php:922
+#: wp-admin/custom-header.php:895
 msgid "You do not have permission to customize headers."
-msgstr "Vous n&rsquo;avez pas l&rsquo;autorisation de personnaliser les en-têtes."
-
-#: wp-admin/custom-header.php:946
-msgid "Set as header"
-msgstr "Utiliser comme en-tête"
-
-#: wp-admin/customize.php:58
+msgstr ""
+"Vous n&rsquo;avez pas l&rsquo;autorisation de personnaliser les en-têtes."
+
+#: wp-admin/customize.php:64
 msgid "Customize %s"
 msgstr "Personnaliser %s"
 
+#: wp-admin/customize.php:93
+msgid "Theme Customizer Options"
+msgstr "Options du personnalisateur de thème"
+
 #. translators: %s is the theme name in the Customize/Live Preview pane
-#: wp-admin/customize.php:90
+#: wp-admin/customize.php:96
 msgid "You are previewing %s"
 msgstr "Vous prévisualisez %s"
 
-#: wp-admin/customize.php:115
-#: wp-admin/includes/class-wp-theme-install-list-table.php:262
+#: wp-admin/customize.php:121
+#: wp-admin/includes/class-wp-theme-install-list-table.php:261
 msgid "Collapse Sidebar"
 msgstr "Réduire la barre latérale"
 
-#: wp-admin/customize.php:117
-#: wp-admin/includes/class-wp-theme-install-list-table.php:263
+#: wp-admin/customize.php:123
+#: wp-admin/includes/class-wp-theme-install-list-table.php:262
 msgid "Collapse"
 msgstr "Réduire"
 
-#: wp-admin/edit-comments.php:108
-#: wp-admin/edit-comments.php:146
+#: wp-admin/edit-comments.php:108 wp-admin/edit-comments.php:146
 msgid "Comments on &#8220;%s&#8221;"
 msgstr "Commentaires sur &laquo;&nbsp;%s&nbsp;&raquo;"
 
@@ -956,8 +1149,17 @@
 msgstr "Commentaires"
 
 #: wp-admin/edit-comments.php:118
-msgid "You can manage comments made on your site similar to the way you manage posts and other content. This screen is customizable in the same ways as other management screens, and you can act on comments using the on-hover action links or the Bulk Actions."
-msgstr "Vous pouvez gérer les commentaires sur votre site de la même manière que vous gérez les articles et autres contenus. Cet écran est personnalisable de la même manière que les autres écrans de gestion, et vous pouvez agir sur les commentaires par le biais des liens qui apparaissent au survol de la souris, ou via le menu &laquo;&nbsp;Actions groupées&nbsp;&raquo;."
+msgid ""
+"You can manage comments made on your site similar to the way you manage "
+"posts and other content. This screen is customizable in the same ways as "
+"other management screens, and you can act on comments using the on-hover "
+"action links or the Bulk Actions."
+msgstr ""
+"Vous pouvez gérer les commentaires sur votre site de la même manière que "
+"vous gérez les articles et autres contenus. Cet écran est personnalisable de "
+"la même manière que les autres écrans de gestion, et vous pouvez agir sur "
+"les commentaires par le biais des liens qui apparaissent au survol de la "
+"souris, ou via le menu &laquo;&nbsp;Actions groupées&nbsp;&raquo;."
 
 #: wp-admin/edit-comments.php:122
 msgid "Moderating Comments"
@@ -965,39 +1167,86 @@
 
 #: wp-admin/edit-comments.php:124
 msgid "A yellow row means the comment is waiting for you to moderate it."
-msgstr "Une ligne jaune indique que le commentaire est en attente de modération."
+msgstr ""
+"Une ligne jaune indique que le commentaire est en attente de modération."
 
 #: wp-admin/edit-comments.php:125
-msgid "In the <strong>Author</strong> column, in addition to the author&#8217;s name, email address, and blog URL, the commenter&#8217;s IP address is shown. Clicking on this link will show you all the comments made from this IP address."
-msgstr "Dans la colonne &laquo;&nbsp;Auteur&nbsp;&raquo;, en plus de trouver le nom de l&rsquo;auteur, son adresse de messagerie et celle de son site, vous trouverez son adresse IP. En cliquant dessus, vous obtiendrez une liste de tous les commentaires faits depuis cette adresse IP."
+msgid ""
+"In the <strong>Author</strong> column, in addition to the author&#8217;s "
+"name, email address, and blog URL, the commenter&#8217;s IP address is "
+"shown. Clicking on this link will show you all the comments made from this "
+"IP address."
+msgstr ""
+"Dans la colonne &laquo;&nbsp;Auteur&nbsp;&raquo;, en plus de trouver le nom "
+"de l&rsquo;auteur, son adresse de messagerie et celle de son site, vous "
+"trouverez son adresse IP. En cliquant dessus, vous obtiendrez une liste de "
+"tous les commentaires faits depuis cette adresse IP."
 
 #: wp-admin/edit-comments.php:126
-msgid "In the <strong>Comment</strong> column, above each comment it says &#8220;Submitted on,&#8221; followed by the date and time the comment was left on your site. Clicking on the date/time link will take you to that comment on your live site. Hovering over any comment gives you options to approve, reply (and approve), quick edit, edit, spam mark, or trash that comment."
-msgstr "Dans la colonne &laquo;&nbsp;Commentaire&nbsp;&raquo;, vous trouverez au-dessus de chaque commentaire la date et l&rsquo;heure de son envoi. En cliquant sur ce lien, vous irez à la page de votre site où le commentaire a été publié. En survolant n&rsquo;importe quel commentaire, des options apparaîtront, vous permettant d&rsquo;approuver un commentaire, y répondre (et l&rsquo;approuver), modifier ses détails, modifier son contenu, le marquer comme indésirable, ou le jeter à la Corbeille."
+msgid ""
+"In the <strong>Comment</strong> column, above each comment it says &#8220;"
+"Submitted on,&#8221; followed by the date and time the comment was left on "
+"your site. Clicking on the date/time link will take you to that comment on "
+"your live site. Hovering over any comment gives you options to approve, "
+"reply (and approve), quick edit, edit, spam mark, or trash that comment."
+msgstr ""
+"Dans la colonne &laquo;&nbsp;Commentaire&nbsp;&raquo;, vous trouverez au-"
+"dessus de chaque commentaire la date et l&rsquo;heure de son envoi. En "
+"cliquant sur ce lien, vous irez à la page de votre site où le commentaire a "
+"été publié. En survolant n&rsquo;importe quel commentaire, des options "
+"apparaîtront, vous permettant d&rsquo;approuver un commentaire, y répondre "
+"(et l&rsquo;approuver), modifier ses détails, modifier son contenu, le "
+"marquer comme indésirable, ou le jeter à la Corbeille."
 
 #: wp-admin/edit-comments.php:127
-msgid "In the <strong>In Response To</strong> column, there are three elements. The text is the name of the post that inspired the comment, and links to the post editor for that entry. The View Post link leads to that post on your live site. The small bubble with the number in it shows how many comments that post has received. If the bubble is gray, you have moderated all comments for that post. If it is blue, there are pending comments. Clicking the bubble will filter the comments screen to show only comments on that post."
-msgstr "Dans la colonne <strong>&laquo;&nbsp;En réponse à&nbsp;&raquo;</strong> se trouvent trois éléments. Le texte correspond au titre de l&rsquo;article qui a inspiré ce commentaire, et un clic sur ce lien vous permettra de modifier cet article. Le lien &laquo;&nbsp;Afficher l&rsquo;article&nbsp;&raquo; mène à l&rsquo;article sur le site. La petite bulle avec un nombre vous indique le nombre de commentaires que l&rsquo;article a reçus. Si la bulle est grise, vous avez modéré tous les commentaires de cet article. Si elle est bleue, il y a des commentaires en attente de modération. Un clic sur la bulle filtrera la liste des commentaires pour ne plus afficher que ceux liés à cet article."
+msgid ""
+"In the <strong>In Response To</strong> column, there are three elements. The "
+"text is the name of the post that inspired the comment, and links to the "
+"post editor for that entry. The View Post link leads to that post on your "
+"live site. The small bubble with the number in it shows the number of "
+"approved comments that post has received. If the bubble is gray, you have "
+"moderated all comments for that post. If it is blue, there are pending "
+"comments. Clicking the bubble will filter the comments screen to show only "
+"comments on that post."
+msgstr ""
+"Dans la colonne <strong>&laquo;&nbsp;En réponse à&nbsp;&raquo;</strong> se "
+"trouvent trois éléments. Le texte correspond au titre de l&rsquo;article qui "
+"a inspiré ce commentaire, et un clic sur ce lien vous permettra de modifier "
+"cet article. Le lien &laquo;&nbsp;Afficher l&rsquo;article&nbsp;&raquo; mène "
+"à l&rsquo;article sur le site. La petite bulle avec un nombre vous indique "
+"le nombre de commentaires que l&rsquo;article a reçus. Si la bulle est "
+"grise, vous avez modéré tous les commentaires de cet article. Si elle est "
+"bleue, il y a des commentaires en attente de modération. Un clic sur la "
+"bulle filtrera la liste des commentaires pour ne plus afficher que ceux liés "
+"à cet article."
 
 #: wp-admin/edit-comments.php:128
-msgid "Many people take advantage of keyboard shortcuts to moderate their comments more quickly. Use the link to the side to learn more."
-msgstr "De nombreux utilisateurs utilisent les raccourcis clavier pour modérer leurs commentaires plus rapidement. Suivez le lien sur le côté pour en savoir plus."
+msgid ""
+"Many people take advantage of keyboard shortcuts to moderate their comments "
+"more quickly. Use the link to the side to learn more."
+msgstr ""
+"De nombreux utilisateurs utilisent les raccourcis clavier pour modérer leurs "
+"commentaires plus rapidement. Suivez le lien sur le côté pour en savoir plus."
 
 #: wp-admin/edit-comments.php:134
-msgid "<a href=\"http://codex.wordpress.org/Comment_Spam\" target=\"_blank\">Documentation on Comment Spam</a>"
-msgstr "<a href=\"http://codex.wordpress.org/Comment_Spam\" target=\"_blank\">Documentation sur les commentaires indésirables (en)</a>"
+msgid ""
+"<a href=\"http://codex.wordpress.org/Comment_Spam\" target=\"_blank"
+"\">Documentation on Comment Spam</a>"
+msgstr ""
+"<a href=\"http://codex.wordpress.org/Comment_Spam\" target=\"_blank"
+"\">Documentation sur les commentaires indésirables (en)</a>"
 
 #: wp-admin/edit-comments.php:135
-msgid "<a href=\"http://codex.wordpress.org/Keyboard_Shortcuts\" target=\"_blank\">Documentation on Keyboard Shortcuts</a>"
-msgstr "<a href=\"http://codex.wordpress.org/Keyboard_Shortcuts\" target=\"_blank\">Documentation sur les raccourcis clavier (en)</a>"
-
-#: wp-admin/edit-comments.php:156
-#: wp-admin/edit-tags.php:268
-#: wp-admin/edit.php:226
-#: wp-admin/link-manager.php:75
-#: wp-admin/plugins.php:410
-#: wp-admin/upload.php:186
-#: wp-admin/users.php:410
+msgid ""
+"<a href=\"http://codex.wordpress.org/Keyboard_Shortcuts\" target=\"_blank"
+"\">Documentation on Keyboard Shortcuts</a>"
+msgstr ""
+"<a href=\"http://codex.wordpress.org/Keyboard_Shortcuts\" target=\"_blank"
+"\">Documentation sur les raccourcis clavier (en)</a>"
+
+#: wp-admin/edit-comments.php:156 wp-admin/edit-tags.php:268
+#: wp-admin/edit.php:229 wp-admin/link-manager.php:75 wp-admin/plugins.php:415
+#: wp-admin/upload.php:188 wp-admin/users.php:436
 msgid "Search results for &#8220;%s&#8221;"
 msgstr "Résultats de recherche pour &laquo;&nbsp;%s&nbsp;&raquo;"
 
@@ -1061,13 +1310,11 @@
 msgid "Post updated. <a href=\"%s\">View post</a>"
 msgstr "Article mis à jour. <a href=\"%s\">Afficher l&rsquo;article</a>"
 
-#: wp-admin/edit-form-advanced.php:36
-#: wp-admin/edit-form-advanced.php:52
+#: wp-admin/edit-form-advanced.php:36 wp-admin/edit-form-advanced.php:52
 msgid "Custom field updated."
 msgstr "Champ personnalisé mis à jour."
 
-#: wp-admin/edit-form-advanced.php:37
-#: wp-admin/edit-form-advanced.php:53
+#: wp-admin/edit-form-advanced.php:37 wp-admin/edit-form-advanced.php:53
 msgid "Custom field deleted."
 msgstr "Champ personnalisé supprimé."
 
@@ -1090,23 +1337,30 @@
 
 #: wp-admin/edit-form-advanced.php:43
 msgid "Post submitted. <a target=\"_blank\" href=\"%s\">Preview post</a>"
-msgstr "Article proposé. <a target=\"_blank\" href=\"%s\">Prévisualiser l&rsquo;article</a>"
+msgstr ""
+"Article proposé. <a target=\"_blank\" href=\"%s\">Prévisualiser l&rsquo;"
+"article</a>"
 
 #: wp-admin/edit-form-advanced.php:44
-msgid "Post scheduled for: <strong>%1$s</strong>. <a target=\"_blank\" href=\"%2$s\">Preview post</a>"
-msgstr "Article prévu pour le&nbsp;: <strong>%1$s</strong>. <a target=\"_blank\" href=\"%2$s\">Prévisualiser l&rsquo;article</a>"
+msgid ""
+"Post scheduled for: <strong>%1$s</strong>. <a target=\"_blank\" href=\"%2$s"
+"\">Preview post</a>"
+msgstr ""
+"Article prévu pour le&nbsp;: <strong>%1$s</strong>. <a target=\"_blank\" "
+"href=\"%2$s\">Prévisualiser l&rsquo;article</a>"
 
 #. translators: Publish box date format, see http:php.net/date
-#: wp-admin/edit-form-advanced.php:46
-#: wp-admin/edit-form-advanced.php:59
-#: wp-admin/edit-form-comment.php:97
-#: wp-admin/includes/meta-boxes.php:157
+#: wp-admin/edit-form-advanced.php:46 wp-admin/edit-form-advanced.php:59
+#: wp-admin/edit-form-comment.php:97 wp-admin/includes/meta-boxes.php:155
+#: wp-admin/includes/meta-boxes.php:259
 msgid "M j, Y @ G:i"
 msgstr "j F Y \\à G \\h i \\m\\i\\n"
 
 #: wp-admin/edit-form-advanced.php:47
 msgid "Post draft updated. <a target=\"_blank\" href=\"%s\">Preview post</a>"
-msgstr "Brouillon d&rsquo;article mis à jour. <a target=\"_blank\" href=\"%s\">Prévisualiser l&rsquo;article</a>"
+msgstr ""
+"Brouillon d&rsquo;article mis à jour. <a target=\"_blank\" href=\"%s"
+"\">Prévisualiser l&rsquo;article</a>"
 
 #: wp-admin/edit-form-advanced.php:51
 msgid "Page updated. <a href=\"%s\">View page</a>"
@@ -1130,155 +1384,429 @@
 
 #: wp-admin/edit-form-advanced.php:58
 msgid "Page submitted. <a target=\"_blank\" href=\"%s\">Preview page</a>"
-msgstr "Page proposée. <a target=\"_blank\" href=\"%s\">Prévisualiser la page</a>"
+msgstr ""
+"Page proposée. <a target=\"_blank\" href=\"%s\">Prévisualiser la page</a>"
 
 #: wp-admin/edit-form-advanced.php:59
-msgid "Page scheduled for: <strong>%1$s</strong>. <a target=\"_blank\" href=\"%2$s\">Preview page</a>"
-msgstr "Page prévue pour le&nbsp;: <strong>%1$s</strong>. <a target=\"_blank\" href=\"%2$s\">Afficher la page</a>"
+msgid ""
+"Page scheduled for: <strong>%1$s</strong>. <a target=\"_blank\" href=\"%2$s"
+"\">Preview page</a>"
+msgstr ""
+"Page prévue pour le&nbsp;: <strong>%1$s</strong>. <a target=\"_blank\" href="
+"\"%2$s\">Afficher la page</a>"
 
 #: wp-admin/edit-form-advanced.php:60
 msgid "Page draft updated. <a target=\"_blank\" href=\"%s\">Preview page</a>"
-msgstr "Brouillon de page mis à jour. <a target=\"_blank\" href=\"%s\">Prévisualiser la page</a>"
-
-#: wp-admin/edit-form-advanced.php:93
-msgid "There is an autosave of this post that is more recent than the version below. <a href=\"%s\">View the autosave</a>"
-msgstr "Une sauvegarde automatique existe pour cet article ; elle est plus récente que la version affichée ci-dessous. <a href=\"%s\">Afficher cette sauvegarde automatique</a>."
-
-#: wp-admin/edit-form-advanced.php:125
-#: wp-admin/edit-form-advanced.php:231
+msgstr ""
+"Brouillon de page mis à jour. <a target=\"_blank\" href=\"%s\">Prévisualiser "
+"la page</a>"
+
+#: wp-admin/edit-form-advanced.php:62 wp-admin/media.php:95
+#: wp-admin/upload.php:194 wp-admin/upload.php:219
+msgid "Media attachment updated."
+msgstr "Fichier attaché mis à jour."
+
+#: wp-admin/edit-form-advanced.php:94
+msgid ""
+"There is an autosave of this post that is more recent than the version "
+"below. <a href=\"%s\">View the autosave</a>"
+msgstr ""
+"Une sauvegarde automatique existe pour cet article ; elle est plus récente "
+"que la version affichée ci-dessous. <a href=\"%s\">Afficher cette sauvegarde "
+"automatique</a>."
+
+#: wp-admin/edit-form-advanced.php:133 wp-admin/edit-form-advanced.php:278
 msgid "Page Attributes"
 msgstr "Attributs de la page"
 
-#: wp-admin/edit-form-advanced.php:125
+#: wp-admin/edit-form-advanced.php:133
 msgid "Attributes"
 msgstr "Attributs"
 
-#: wp-admin/edit-form-advanced.php:128
+#: wp-admin/edit-form-advanced.php:136
 msgid "Featured Image"
-msgstr "Image à la une"
-
-#: wp-admin/edit-form-advanced.php:134
+msgstr "Image à la Une"
+
+#: wp-admin/edit-form-advanced.php:142
 msgid "Send Trackbacks"
 msgstr "Envoyer des rétroliens"
 
-#: wp-admin/edit-form-advanced.php:137
+#: wp-admin/edit-form-advanced.php:145
 msgid "Custom Fields"
 msgstr "Champs personnalisés"
 
-#: wp-admin/edit-form-advanced.php:141
-#: wp-admin/includes/dashboard.php:306
-#: wp-admin/menu.php:202
+#: wp-admin/edit-form-advanced.php:149 wp-admin/includes/dashboard.php:308
+#: wp-admin/menu.php:214
 msgid "Discussion"
 msgstr "Discussion"
 
-#: wp-admin/edit-form-advanced.php:147
-#: wp-admin/includes/class-wp-posts-list-table.php:745
-#: wp-admin/includes/class-wp-terms-list-table.php:102
-#: wp-admin/includes/class-wp-terms-list-table.php:345
-#: wp-admin/includes/meta-boxes.php:510
+#: wp-admin/edit-form-advanced.php:155
+#: wp-admin/includes/class-wp-posts-list-table.php:750
+#: wp-admin/includes/class-wp-terms-list-table.php:101
+#: wp-admin/includes/class-wp-terms-list-table.php:343
+#: wp-admin/includes/meta-boxes.php:574
 msgid "Slug"
 msgstr "Identifiant"
 
-#: wp-admin/edit-form-advanced.php:167
-msgid "The title field and the big Post Editing Area are fixed in place, but you can reposition all the other boxes using drag and drop, and can minimize or expand them by clicking the title bar of each box. Use the Screen Options tab to unhide more boxes (Excerpt, Send Trackbacks, Custom Fields, Discussion, Slug, Author) or to choose a 1- or 2-column layout for this screen."
-msgstr "Le champ du titre et la zone d&rsquo;édition de l&rsquo;article sont inamovibles, mais vous pouvez déplacer toutes les autres boites par simple glisser-déposer. Vous pouvez également les fermer/ouvrir en cliquant sur la barre de titre de chaque boite. Enfin, vous pouvez cacher n&rsquo;importe quelle boite en utilisant l&rsquo;onglet &laquo;&nbsp;Options de l&rsquo;écran&nbsp;&raquo; (en haut), depuis lequel vous pouvez également choisir une mise en page en une ou deux colonne(s) pour cet écran."
-
-#: wp-admin/edit-form-advanced.php:171
+#: wp-admin/edit-form-advanced.php:175
+msgid ""
+"The title field and the big Post Editing Area are fixed in place, but you "
+"can reposition all the other boxes using drag and drop. You can also "
+"minimize or expand them by clicking the title bar of each box. Use the "
+"Screen Options tab to unhide more boxes (Excerpt, Send Trackbacks, Custom "
+"Fields, Discussion, Slug, Author) or to choose a 1- or 2-column layout for "
+"this screen."
+msgstr ""
+"Le champ du titre et la zone d&rsquo;édition de l&rsquo;article sont "
+"inamovibles, mais vous pouvez déplacer toutes les autres boites par simple "
+"glisser/déposer. Vous pouvez également les fermer/ouvrir en cliquant sur la "
+"barre de titre de chaque boite. Utilisez l&rsquo;onglet &laquo;&nbsp;Options "
+"de l&rsquo;écran&nbsp;&raquo; pour cacher d&rsquo;autres boites (Extrait, "
+"Envoyer des rétroliens, Chapmps personnalisés, Discussion, Identifiant, "
+"Auteur) ou pour choisir un affichage sur une ou deux colonnes pour cet écran."
+
+#: wp-admin/edit-form-advanced.php:179
 msgid "Customizing This Display"
 msgstr "Personnaliser cet écran"
 
-#: wp-admin/edit-form-advanced.php:175
-msgid "<strong>Title</strong> - Enter a title for your post. After you enter a title, you&#8217;ll see the permalink below, which you can edit."
-msgstr "<strong>Titre</strong> - Saisissez un titre pour votre article. Après avoir saisi le titre, un permalien s&rsquo;affichera en dessous, que vous pourrez modifier à loisir."
-
-#: wp-admin/edit-form-advanced.php:176
-msgid "<strong>Post editor</strong> - Enter the text for your post. There are two modes of editing: Visual and HTML. Choose the mode by clicking on the appropriate tab. Visual mode gives you a WYSIWYG editor. Click the last icon in the row to get a second row of controls. The HTML mode allows you to enter raw HTML along with your post text. You can insert media files by clicking the icons above the post editor and following the directions. You can go to the distraction-free writing screen via the Fullscreen icon in Visual mode (second to last in the top row) or the Fullscreen button in HTML mode (last in the row). Once there, you can make buttons visible by hovering over the top area. Exit Fullscreen back to the regular post editor."
-msgstr "<strong>Éditeur d&rsquo;article</strong> - Saisissez-y le contenu de votre article. Vous disposez pour ce faire de deux modes&nbsp;: Visuel ou HTML. Choisissez un mode en cliquant sur l&rsquo;onglet correspondant. Le mode Visuel vous donne accès à un éditeur WYSIWYG&nbsp;; cliquez sur la dernière icône de la rangée pour afficher une seconde rangée d&rsquo;icônes. Le mode HTML vous permet de saisir directement du code HTML en même temps que le contenu de votre article. Vous pouvez insérer des fichiers média en cliquant sur les icônes situées au-dessus de l&rsquo;éditeur, puis en suivant les instructions. Vous pouvez passer en mode &laquo;&nbsp;aucune distraction&nbsp;&raquo; grâce à l&rsquo;icône &laquo;&nbsp;Plein Écran&nbsp;&raquo; du mode Visuel (avant-dernier bouton de la première rangée), ou le bouton &laquo;&nbsp;Plein Écran&nbsp;&raquo; du mode HTML (dernier bouton de la rangée). Une fois dans ce mode, vous pouvez rendre les boutons visibles en survolant la zone supérieure de la page. Quitter le mode Plein Écran vous fera revenir en mode d&rsquo;édition normal."
-
-#: wp-admin/edit-form-advanced.php:180
-msgid "Title and Post Editor"
-msgstr "Titre et éditeur d&rsquo;article"
+#: wp-admin/edit-form-advanced.php:183
+msgid ""
+"<strong>Title</strong> - Enter a title for your post. After you enter a "
+"title, you&#8217;ll see the permalink below, which you can edit."
+msgstr ""
+"<strong>Titre</strong> - Saisissez un titre pour votre article. Après avoir "
+"saisi le titre, un permalien s&rsquo;affichera en dessous, que vous pourrez "
+"modifier à loisir."
 
 #: wp-admin/edit-form-advanced.php:184
-msgid "<strong>Publish</strong> - You can set the terms of publishing your post in the Publish box. For Status, Visibility, and Publish (immediately), click on the Edit link to reveal more options. Visibility includes options for password-protecting a post or making it stay at the top of your blog indefinitely (sticky). Publish (immediately) allows you to set a future or past date and time, so you can schedule a post to be published in the future or backdate a post."
-msgstr "<strong>Publier</strong> - Vous pouvez définir la manière dont votre article est publié dans la boite Publier. Pour &laquo;&nbsp;État&nbsp;&raquo;, &laquo;&nbsp;Visibilité&nbsp;&raquo;, &laquo;&nbsp;Format&nbsp;&raquo; et &laquo;&nbsp;Publier (immédiatement)&nbsp;&raquo;, un clic sur le lien &laquo;&nbsp;Modifier&nbsp;&raquo; affichera plus d&rsquo;options. &laquo;&nbsp;Visibilité&nbsp;&raquo; inclut des options pour protéger l&rsquo;article avec un mot de passe ou faire en sorte qu&rsquo;il reste en tête de page indéfiniment. &laquo;&nbsp;Publier (immédiatement)&nbsp;&raquo; vous permet de programmer la publication de votre article à une date précise, dans le futur ou le passé&nbsp;; cela vous permet d&rsquo;écrire à l&rsquo;avance des articles à publier, ou de les antidater."
-
-#: wp-admin/edit-form-advanced.php:187
-msgid "<strong>Post Format</strong> - This designates how your theme will display a specific post. For example, you could have a <em>standard</em> blog post with a title and paragraphs, or a short <em>aside</em> that omits the title and contains a short text blurb. Please refer to the Codex for <a href=\"http://codex.wordpress.org/Post_Formats#Supported_Formats\">descriptions of each post format</a>. Your theme could enable all or some of 10 possible formats."
-msgstr "<strong>Format d&rsquo;article</strong> - Désigne la manière dont votre thème doit afficher un article donné. Par exemple, vous pourriez vouloir utiliser le format <em>par défaut</em> pour afficher titre et contenu, ou le format <em>En passant</em> pour ne pas utiliser le titre et n&rsquo;afficher qu&rsquo;un extrait. Lisez la documentation du Codex pour obtenir une <a href=\"http://codex.wordpress.org/Post_Formats#Supported_Formats\">description de chaque format d&rsquo;article (en)</a>. Il est possible que votre thème ne reconnaisse qu&rsquo;une partie de ces formats."
-
-#: wp-admin/edit-form-advanced.php:191
-msgid "<strong>Featured Image</strong> - This allows you to associate an image with your post without inserting it. This is usually useful only if your theme makes use of the featured image as a post thumbnail on the home page, a custom header, etc."
-msgstr "<strong>Image à la Une</strong> - Vous pouvez associer une image à votre article, sans pour autant l&rsquo;y insérer. Cela ne sert vraiment que si votre thème fait usage de cette fonctionnalité, sous la forme d&rsquo;une miniature pour la page d&rsquo;accueil, d&rsquo;un en-tête personnalisé..."
-
-#: wp-admin/edit-form-advanced.php:196
-msgid "Publish Box"
-msgstr "Boite de publication"
+msgid ""
+"<strong>Post editor</strong> - Enter the text for your post. There are two "
+"modes of editing: Visual and Text. Choose the mode by clicking on the "
+"appropriate tab. Visual mode gives you a WYSIWYG editor. Click the last icon "
+"in the row to get a second row of controls. The Text mode allows you to "
+"enter HTML along with your post text. Line breaks will be converted to "
+"paragraphs automatically. You can insert media files by clicking the icons "
+"above the post editor and following the directions. You can go to the "
+"distraction-free writing screen via the Fullscreen icon in Visual mode "
+"(second to last in the top row) or the Fullscreen button in Text mode (last "
+"in the row). Once there, you can make buttons visible by hovering over the "
+"top area. Exit Fullscreen back to the regular post editor."
+msgstr ""
+"<strong>Éditeur d&rsquo;article</strong> - Saisissez-y le contenu de votre "
+"article. Vous disposez pour ce faire de deux modes&nbsp;: Visuel ou Texte. "
+"Choisissez un mode en cliquant sur l&rsquo;onglet correspondant. Le mode "
+"Visuel vous donne accès à un éditeur WYSIWYG&nbsp;; cliquez sur la dernière "
+"icône de la rangée pour afficher une seconde rangée d&rsquo;icônes. Le mode "
+"Texte vous permet de saisir directement du code HTML en même temps que le "
+"contenu de votre article. Vous pouvez insérer des fichiers média en cliquant "
+"sur les icônes situées au-dessus de l&rsquo;éditeur, puis en suivant les "
+"instructions. Vous pouvez passer en mode &laquo;&nbsp;aucune "
+"distraction&nbsp;&raquo; grâce à l&rsquo;icône &laquo;&nbsp;Plein Écran&nbsp;"
+"&raquo; du mode Visuel (avant-dernier bouton de la première rangée), ou le "
+"bouton &laquo;&nbsp;Plein Écran&nbsp;&raquo; du mode HTML (dernier bouton de "
+"la rangée). Une fois dans ce mode, vous pouvez rendre les boutons visibles "
+"en survolant la zone supérieure de la page. Quittez le mode Plein Écran pour "
+"revenir en mode d&rsquo;édition normal."
+
+#: wp-admin/edit-form-advanced.php:188
+msgid "Title and Post Editor"
+msgstr "Titre et éditeur d&rsquo;article"
+
+#: wp-admin/edit-form-advanced.php:193
+msgid ""
+"You can also create posts with the <a href=\"%s\">Press This bookmarklet</a>."
+msgstr ""
+"Vous pouvez également créer des articles avec le bookmarklet <a href=\"%s"
+"\">Publier un article</a>."
+
+#: wp-admin/edit-form-advanced.php:195
+msgid ""
+"<a href=\"http://codex.wordpress.org/Posts_Add_New_Screen\" target=\"_blank"
+"\">Documentation on Writing and Editing Posts</a>"
+msgstr ""
+"<a href=\"http://codex.wordpress.org/Posts_Add_New_Screen\" target=\"_blank"
+"\">Documentation sur l&rsquo;écriture et la modification des articles (en)</"
+"a>"
+
+#: wp-admin/edit-form-advanced.php:199
+msgid ""
+"Pages are similar to Posts in that they have a title, body text, and "
+"associated metadata, but they are different in that they are not part of the "
+"chronological blog stream, kind of like permanent posts. Pages are not "
+"categorized or tagged, but can have a hierarchy. You can nest Pages under "
+"other Pages by making one the &#8220;Parent&#8221; of the other, creating a "
+"group of Pages."
+msgstr ""
+"Les pages sont comme des articles, en cela qu&rsquo;elles ont un titre, un "
+"contenu et des métadonnées associées&nbsp;; mais elles diffèrent en cela "
+"qu&rsquo;elles ne font pas partie du flux chronologique du blog - un peu "
+"comme des articles permanents. Les pages ne sont pas catégorisées et ne "
+"reçoivent pas de mots-clefs, mais peuvent disposer d&rsquo;une hiérarchie. "
+"En effet, vous pouvez imbriquer des pages sous d&rsquo;autres pages, faisant "
+"de ces dernières les &laquo;&nbsp;parentes&nbsp;&raquo; des premières, "
+"créant ainsi un groupement de pages."
 
 #: wp-admin/edit-form-advanced.php:200
-msgid "<strong>Send Trackbacks</strong> - Trackbacks are a way to notify legacy blog systems that you&#8217;ve linked to them. Enter the URL(s) you want to send trackbacks. If you link to other WordPress sites they&#8217;ll be notified automatically using pingbacks, and this field is unnecessary."
-msgstr "<strong>Envoyer des rétroliens</strong> - Un rétrolien est une manière explicite de notifier les anciens systèmes de blog que vous avez fait un lien vers eux. Saisissez les adresses web que vous voulez notifier. Si dans votre article vous faites des liens vers des sites WordPress, ils seront notifiés automatiquement à l&rsquo;aide de pings, sans devoir passer par un rétrolien explicite."
-
-#: wp-admin/edit-form-advanced.php:201
-msgid "<strong>Discussion</strong> - You can turn comments and pings on or off, and if there are comments on the post, you can see them here and moderate them."
-msgstr "<strong>Discussion</strong> - Vous pouvez activer ou désactiver les commentaires et pings, et si votre article reçoit des commentaires, vous pourrez les voir ici et les modérer."
-
-#: wp-admin/edit-form-advanced.php:205
-#: wp-admin/options-discussion.php:15
-msgid "Discussion Settings"
-msgstr "Options de discussion"
+msgid ""
+"Creating a Page is very similar to creating a Post, and the screens can be "
+"customized in the same way using drag and drop, the Screen Options tab, and "
+"expanding/collapsing boxes as you choose. This screen also has the "
+"distraction-free writing space, available in both the Visual and Text modes "
+"via the Fullscreen buttons. The Page editor mostly works the same as the "
+"Post editor, but there are some Page-specific features in the Page "
+"Attributes box:"
+msgstr ""
+"Le processus de création d&rsquo;une page reste très proche de celui d&rsquo;"
+"un article, et les écrans respectifs peuvent être personnalisés de la même "
+"manière, par le biais de glisser/déposer, de l&rsquo;onglet &laquo;&nbsp;"
+"Option de l&rsquo;Écran&nbsp;&raquo;, et en ouvrant/fermant les boites selon "
+"vos besoins. Cet écran dispose également du mode &laquo;&nbsp;aucune "
+"distraction&nbsp;&raquo;, tant dans le mode Visuel que dans le mode Texte, "
+"via les boutons &laquo;&nbsp;Plein Écran&nbsp;&raquo;. L&rsquo;éditeur de "
+"page fonctionne globalement comme celui des articles, mais dispose de "
+"certaines spécificités, disponibles dans la boite &laquo;&nbsp;Attributs de "
+"Page&nbsp;&raquo;&nbsp;:"
+
+#: wp-admin/edit-form-advanced.php:204
+msgid "About Pages"
+msgstr "À propos des pages"
 
 #: wp-admin/edit-form-advanced.php:210
-msgid "You can also create posts with the <a href=\"%s\">Press This bookmarklet</a>."
-msgstr "Vous pouvez également créer des articles avec le bookmarklet <a href=\"%s\">Publier un article</a>."
-
-#: wp-admin/edit-form-advanced.php:212
-msgid "<a href=\"http://codex.wordpress.org/Posts_Add_New_Screen\" target=\"_blank\">Documentation on Writing and Editing Posts</a>"
-msgstr "<a href=\"http://codex.wordpress.org/Posts_Add_New_Screen\" target=\"_blank\">Documentation sur l&rsquo;écriture et la modification des articles (en)</a>"
-
-#: wp-admin/edit-form-advanced.php:216
-msgid "Pages are similar to Posts in that they have a title, body text, and associated metadata, but they are different in that they are not part of the chronological blog stream, kind of like permanent posts. Pages are not categorized or tagged, but can have a hierarchy. You can nest Pages under other Pages by making one the &#8220;Parent&#8221; of the other, creating a group of Pages."
-msgstr "Les pages sont comme des articles, en cela qu&rsquo;elles ont un titre, un contenu et des métadonnées associées&nbsp;; mais elles diffèrent en cela qu&rsquo;elles ne font pas partie du flux chronologique du blog - un peu comme des articles permanents. Les pages ne sont pas catégorisées et ne reçoivent pas de mots-clefs, mais peuvent disposer d&rsquo;une hiérarchie. En effet, vous pouvez imbriquer des pages sous d&rsquo;autres pages, faisant de ces dernières les &laquo;&nbsp;parentes&nbsp;&raquo; des premières, créant ainsi un groupement de pages."
-
-#: wp-admin/edit-form-advanced.php:217
-msgid "Creating a Page is very similar to creating a Post, and the screens can be customized in the same way using drag and drop, the Screen Options tab, and expanding/collapsing boxes as you choose. This screen also has the distraction-free writing space, available in both the Visual and HTML modes via the Fullscreen buttons. The Page editor mostly works the same as the Post editor, but there are some Page-specific features in the Page Attributes box:"
-msgstr "Le processus de création d&rsquo;une page reste très proche de celui d&rsquo;un article, et les écrans respectifs peuvent être personnalisés de la même manière, par le biais de glisser/déposer, de l&rsquo;onglet &laquo;&nbsp;Option de l&rsquo;Écran&nbsp;&raquo;, et en ouvrant/fermant les boites selon vos besoins. Cet écran dispose également du mode &laquo;&nbsp;aucune distraction&nbsp;&raquo;, tant dans le mode Visuel que HTML, via les boutons &laquo;&nbsp;Plein Écran&nbsp;&raquo;. L&rsquo;éditeur de page fonctionne globalement comme celui des articles, mais dispose de certaines spécificités, disponibles dans la boite &laquo;&nbsp;Attributs de Page&nbsp;&raquo;&nbsp;:"
-
-#: wp-admin/edit-form-advanced.php:221
-msgid "About Pages"
-msgstr "À propos des pages"
-
-#: wp-admin/edit-form-advanced.php:225
-msgid "<strong>Parent</strong> - You can arrange your pages in hierarchies. For example, you could have an &#8220;About&#8221; page that has &#8220;Life Story&#8221; and &#8220;My Dog&#8221; pages under it. There are no limits to how many levels you can nest pages."
-msgstr "<strong>Parent</strong> - Vous pouvez arranger vos pages en hiérarchies. Par exemple, vous pourriez avoir une page &laquo;&nbsp;À propos&nbsp;&raquo;, avec comme sous-pages &laquo;&nbsp;Ma vie&nbsp;&raquo; et &laquo;&nbsp;Mon &oelig;uvre&nbsp;&raquo;. Il n&rsquo;y a pas de limite à la profondeur des sous-pages."
-
-#: wp-admin/edit-form-advanced.php:226
-msgid "<strong>Template</strong> - Some themes have custom templates you can use for certain pages that might have additional features or custom layouts. If so, you&#8217;ll see them in this dropdown menu."
-msgstr "<strong>Modèle</strong> - Certains thèmes utilisent des modèles spéciaux que vous pouvez appliquer à certaines pages, avec des fonctionnalités supplémentaires ou une mise en page qui leur est propre. Si c&rsquo;est le cas, vous les verrez dans ce menu déroulant."
-
-#: wp-admin/edit-form-advanced.php:227
-msgid "<strong>Order</strong> - Pages are usually ordered alphabetically, but you can choose your own order by entering a number (1 for first, etc.) in this field."
-msgstr "<strong>Ordre</strong> - Les pages sont généralement classées par ordre alphabétique, mais vous pouvez indiquer un nombre pour modifier l&rsquo;ordre d&rsquo;apparition."
-
-#: wp-admin/edit-form-advanced.php:237
-msgid "<a href=\"http://codex.wordpress.org/Pages_Add_New_Screen\" target=\"_blank\">Documentation on Adding New Pages</a>"
-msgstr "<a href=\"http://codex.wordpress.org/Pages_Add_New_Screen\" target=\"_blank\">Documentation sur l&rsquo;ajout de nouvelles pages (en)</a>"
+msgid ""
+"<a href=\"http://codex.wordpress.org/Pages_Add_New_Screen\" target=\"_blank"
+"\">Documentation on Adding New Pages</a>"
+msgstr ""
+"<a href=\"http://codex.wordpress.org/Pages_Add_New_Screen\" target=\"_blank"
+"\">Documentation sur l&rsquo;ajout de nouvelles pages (en)</a>"
+
+#: wp-admin/edit-form-advanced.php:211
+msgid ""
+"<a href=\"http://codex.wordpress.org/Pages_Screen#Editing_Individual_Pages\" "
+"target=\"_blank\">Documentation on Editing Pages</a>"
+msgstr ""
+"<a href=\"http://codex.wordpress.org/Pages_Screen#Editing_Individual_Pages\" "
+"target=\"_blank\">Documentation sur la modification des pages (en)</a>"
+
+#: wp-admin/edit-form-advanced.php:219
+msgid ""
+"This screen allows you to edit four fields for metadata in a file within the "
+"media library."
+msgstr ""
+"Cet écran vous permet de modifier les quatre champs des métadonnées des "
+"fichiers dans la bibliothèque des médias."
+
+#: wp-admin/edit-form-advanced.php:220 wp-admin/media.php:76
+msgid ""
+"For images only, you can click on Edit Image under the thumbnail to expand "
+"out an inline image editor with icons for cropping, rotating, or flipping "
+"the image as well as for undoing and redoing. The boxes on the right give "
+"you more options for scaling the image, for cropping it, and for cropping "
+"the thumbnail in a different way than you crop the original image. You can "
+"click on Help in those boxes to get more information."
+msgstr ""
+"Pour les images (et seulement elles), vous pouvez cliquer sur &laquo;&nbsp;"
+"Modifier l&rsquo;Image&nbsp;&raquo;, sous la miniature, afin de faire "
+"apparaître un éditeur d&rsquo;image, vous permettant de recadrer, d&rsquo;"
+"appliquer une rotation ou d&rsquo;inverser une image, ainsi que de défaire "
+"et refaire vos modifications. Les boites sur la droite vous donnent accès à "
+"d&rsquo;autres options pour le changement d&rsquo;échelle, le recadrage et "
+"même le recadrage de la miniature, qui peut être différent de celui de "
+"l&rsquo;image originale. Cliquez sur le bouton Aide de ces boites pour "
+"obtenir plus d&rsquo;informations."
+
+#: wp-admin/edit-form-advanced.php:221 wp-admin/media.php:77
+msgid ""
+"Note that you crop the image by clicking on it (the Crop icon is already "
+"selected) and dragging the cropping frame to select the desired part. Then "
+"click Save to retain the cropping."
+msgstr ""
+"Pour recadrer une image, cliquez sur l&rsquo;icône Recadrer puis "
+"sélectionnez la zone à conserver en cliquant sur l&rsquo;image et en faisant "
+"glisser le curseur de la souris. Ensuite, cliquez sur Enregistrer pour "
+"conserver votre modification."
+
+#: wp-admin/edit-form-advanced.php:222 wp-admin/media.php:78
+msgid "Remember to click Update Media to save metadata entered or changed."
+msgstr ""
+"Pensez bien à cliquer sur le bouton &laquo;&nbsp;Mettre à jour le "
+"fichier&nbsp;&raquo; afin de conserver les métadonnées ajoutées ou modifiées."
+
+#: wp-admin/edit-form-advanced.php:227 wp-admin/media.php:83
+msgid ""
+"<a href=\"http://codex.wordpress.org/Media_Add_New_Screen#Edit_Media\" "
+"target=\"_blank\">Documentation on Edit Media</a>"
+msgstr ""
+"<a href=\"http://codex.wordpress.org/Media_Add_New_Screen#Edit_Media\" "
+"target=\"_blank\">Documentation sur la modification des médias (en)</a>"
+
+#: wp-admin/edit-form-advanced.php:233
+msgid ""
+"You can upload and insert media (images, audio, documents, etc.) by clicking "
+"the Add Media button. You can select from the images and files already "
+"uploaded to the Media Library, or upload new media to add to your page or "
+"post. To create an image gallery, select the images to add and click the "
+"&#8220;Create a new gallery&#8221; button."
+msgstr ""
+"Vous pouvez mettre en ligne et insérer des fichiers média (images, audi, "
+"documents, etc.) en cliquant sur le bouton &raquo;&nbsp;Ajouter un "
+"média&nbsp;&laquo;. Vous pouvez sélectionner vos images et fichiers parmi "
+"ceux déjà présents dans la bibliothèque de médias, ou en mettre en ligne de "
+"nouveaux à ajouter à votre article/page. Pour créer une galerie d&rsquo;"
+"image, sélectionnez les images à ajouter et cliquez sur le bouton &raquo;"
+"&nbsp;Créer une nouvelle galerie&nbsp;&laquo;."
+
+#: wp-admin/edit-form-advanced.php:234
+msgid ""
+"You can also embed media from many popular websites including Twitter, "
+"YouTube, Flickr and others by pasting the media URL on its own line into the "
+"content of your post/page. Please refer to the Codex to <a href=\"http://"
+"codex.wordpress.org/Embeds\">learn more about embeds</a>."
+msgstr ""
+"Vous pouvez également insérer des contenus en provenance de nombreux sites "
+"populaires, comme Twitter, YouTube, Flickr et d&rsquo;autres, simplement en "
+"collant l&rsquo;adresse web du contenu dans sa propre ligne dans le texte de "
+"votre article/page. Référez-vous au Codex pour a href=\"http://codex."
+"wordpress.org/Embeds\">en apprendre plus sur les contenu insérés</a>."
 
 #: wp-admin/edit-form-advanced.php:238
-msgid "<a href=\"http://codex.wordpress.org/Pages_Screen#Editing_Individual_Pages\" target=\"_blank\">Documentation on Editing Pages</a>"
-msgstr "<a href=\"http://codex.wordpress.org/Pages_Screen#Editing_Individual_Pages\" target=\"_blank\">Documentation sur la modification des pages (en)</a>"
-
-#: wp-admin/edit-form-advanced.php:293
+msgid "Inserting Media"
+msgstr "Insertion du média"
+
+#: wp-admin/edit-form-advanced.php:244
+msgid ""
+"Several boxes on this screen contain settings for how your content will be "
+"published, including:"
+msgstr ""
+"Plusieurs sections de cet écran vous permettez de régler la manière dont "
+"votre contenu sera publié, notamment&nbsp;:"
+
+#: wp-admin/edit-form-advanced.php:245
+msgid ""
+"<strong>Publish</strong> - You can set the terms of publishing your post in "
+"the Publish box. For Status, Visibility, and Publish (immediately), click on "
+"the Edit link to reveal more options. Visibility includes options for "
+"password-protecting a post or making it stay at the top of your blog "
+"indefinitely (sticky). Publish (immediately) allows you to set a future or "
+"past date and time, so you can schedule a post to be published in the future "
+"or backdate a post."
+msgstr ""
+"<strong>Publier</strong> - Vous pouvez définir la manière dont votre article "
+"est publié dans la boite Publier. Pour &laquo;&nbsp;État&nbsp;&raquo;, "
+"&laquo;&nbsp;Visibilité&nbsp;&raquo;, &laquo;&nbsp;Format&nbsp;&raquo; et "
+"&laquo;&nbsp;Publier (immédiatement)&nbsp;&raquo;, un clic sur le lien "
+"&laquo;&nbsp;Modifier&nbsp;&raquo; affichera plus d&rsquo;options. &laquo;"
+"&nbsp;Visibilité&nbsp;&raquo; inclut des options pour protéger l&rsquo;"
+"article avec un mot de passe ou faire en sorte qu&rsquo;il reste en tête de "
+"page indéfiniment. &laquo;&nbsp;Publier (immédiatement)&nbsp;&raquo; vous "
+"permet de programmer la publication de votre article à une date précise, "
+"dans le futur ou le passé&nbsp;; cela vous permet d&rsquo;écrire à l&rsquo;"
+"avance des articles à publier, ou de les antidater."
+
+#: wp-admin/edit-form-advanced.php:248
+msgid ""
+"<strong>Format</strong> - Post Formats designate how your theme will display "
+"a specific post. For example, you could have a <em>standard</em> blog post "
+"with a title and paragraphs, or a short <em>aside</em> that omits the title "
+"and contains a short text blurb. Please refer to the Codex for <a href="
+"\"http://codex.wordpress.org/Post_Formats#Supported_Formats\">descriptions "
+"of each post format</a>. Your theme could enable all or some of 10 possible "
+"formats."
+msgstr ""
+"<strong>Format d&rsquo;article</strong> - Désigne la manière dont votre "
+"thème doit afficher un article donné. Par exemple, vous pourriez vouloir "
+"utiliser le format <em>par défaut</em> pour afficher titre et contenu, ou le "
+"format <em>En passant</em> pour ne pas utiliser le titre et n&rsquo;afficher "
+"qu&rsquo;un court texte. Lisez la documentation du Codex pour obtenir une <a "
+"href=\"http://codex.wordpress.org/Post_Formats#Supported_Formats"
+"\">description de chaque format d&rsquo;article (en)</a>. Il est possible "
+"que votre thème ne reconnaisse qu&rsquo;une partie des 10 formats possibles."
+
+#: wp-admin/edit-form-advanced.php:252
+msgid ""
+"<strong>Featured Image</strong> - This allows you to associate an image with "
+"your post without inserting it. This is usually useful only if your theme "
+"makes use of the featured image as a post thumbnail on the home page, a "
+"custom header, etc."
+msgstr ""
+"<strong>Image à la Une</strong> - Vous pouvez associer une image à votre "
+"article, sans pour autant l&rsquo;y insérer. Cela ne sert vraiment que si "
+"votre thème fait usage de cette fonctionnalité, sous la forme d&rsquo;une "
+"miniature pour la page d&rsquo;accueil, d&rsquo;un en-tête personnalisé..."
+
+#: wp-admin/edit-form-advanced.php:259
+msgid "Publish Settings"
+msgstr "Réglages de publication"
+
+#: wp-admin/edit-form-advanced.php:263
+msgid ""
+"<strong>Send Trackbacks</strong> - Trackbacks are a way to notify legacy "
+"blog systems that you&#8217;ve linked to them. Enter the URL(s) you want to "
+"send trackbacks. If you link to other WordPress sites they&#8217;ll be "
+"notified automatically using pingbacks, and this field is unnecessary."
+msgstr ""
+"<strong>Envoyer des rétroliens</strong> - Un rétrolien est une manière "
+"explicite de notifier les anciens systèmes de blog que vous avez fait un "
+"lien vers eux. Saisissez les adresses web que vous voulez notifier. Si dans "
+"votre article vous faites des liens vers des sites WordPress, ils seront "
+"notifiés automatiquement à l&rsquo;aide de pings, sans devoir passer par un "
+"rétrolien explicite."
+
+#: wp-admin/edit-form-advanced.php:264
+msgid ""
+"<strong>Discussion</strong> - You can turn comments and pings on or off, and "
+"if there are comments on the post, you can see them here and moderate them."
+msgstr ""
+"<strong>Discussion</strong> - Vous pouvez activer ou désactiver les "
+"commentaires et pings, et si votre article reçoit des commentaires, vous "
+"pourrez les voir ici et les modérer."
+
+#: wp-admin/edit-form-advanced.php:268 wp-admin/options-discussion.php:15
+msgid "Discussion Settings"
+msgstr "Options de discussion"
+
+#: wp-admin/edit-form-advanced.php:272
+msgid ""
+"<strong>Parent</strong> - You can arrange your pages in hierarchies. For "
+"example, you could have an &#8220;About&#8221; page that has &#8220;Life "
+"Story&#8221; and &#8220;My Dog&#8221; pages under it. There are no limits to "
+"how many levels you can nest pages."
+msgstr ""
+"<strong>Parent</strong> - Vous pouvez arranger vos pages en hiérarchies. Par "
+"exemple, vous pourriez avoir une page &laquo;&nbsp;À propos&nbsp;&raquo;, "
+"avec comme sous-pages &laquo;&nbsp;Ma vie&nbsp;&raquo; et &laquo;&nbsp;Mon "
+"&oelig;uvre&nbsp;&raquo;. Il n&rsquo;y a pas de limite à la profondeur des "
+"sous-pages."
+
+#: wp-admin/edit-form-advanced.php:273
+msgid ""
+"<strong>Template</strong> - Some themes have custom templates you can use "
+"for certain pages that might have additional features or custom layouts. If "
+"so, you&#8217;ll see them in this dropdown menu."
+msgstr ""
+"<strong>Modèle</strong> - Certains thèmes utilisent des modèles spéciaux que "
+"vous pouvez appliquer à certaines pages, avec des fonctionnalités "
+"supplémentaires ou une mise en page qui leur est propre. Si c&rsquo;est le "
+"cas, vous les verrez dans ce menu déroulant."
+
+#: wp-admin/edit-form-advanced.php:274
+msgid ""
+"<strong>Order</strong> - Pages are usually ordered alphabetically, but you "
+"can choose your own order by entering a number (1 for first, etc.) in this "
+"field."
+msgstr ""
+"<strong>Ordre</strong> - Les pages sont généralement classées par ordre "
+"alphabétique, mais vous pouvez indiquer un nombre pour modifier l&rsquo;"
+"ordre d&rsquo;apparition."
+
+#: wp-admin/edit-form-advanced.php:337
 msgid "Get Shortlink"
 msgstr "Obtenir le lien court"
 
-#: wp-admin/edit-form-advanced.php:326
-#: wp-admin/includes/ajax-actions.php:1740
+#: wp-admin/edit-form-advanced.php:374 wp-admin/includes/ajax-actions.php:1754
 msgid "Last edited by %1$s on %2$s at %3$s"
 msgstr "Dernière modification par %1$s, le %2$s à %3$s"
 
-#: wp-admin/edit-form-advanced.php:328
-#: wp-admin/includes/ajax-actions.php:1742
+#: wp-admin/edit-form-advanced.php:376 wp-admin/includes/ajax-actions.php:1756
 msgid "Last edited on %1$s at %2$s"
 msgstr "Dernière modification le %1$s à %2$s"
 
@@ -1310,9 +1838,8 @@
 msgid "URL:"
 msgstr "Adresse web&nbsp;:"
 
-#: wp-admin/edit-form-comment.php:74
-#: wp-admin/includes/ajax-actions.php:1452
-#: wp-admin/includes/class-wp-posts-list-table.php:953
+#: wp-admin/edit-form-comment.php:74 wp-admin/includes/ajax-actions.php:1442
+#: wp-admin/includes/class-wp-posts-list-table.php:958
 msgid "Status"
 msgstr "État"
 
@@ -1330,48 +1857,10 @@
 msgid "Submitted on: <b>%1$s</b>"
 msgstr "Envoyé le&nbsp;: <b>%1$s</b>"
 
-#: wp-admin/edit-form-comment.php:101
-#: wp-admin/includes/class-wp-comments-list-table.php:415
-#: wp-admin/includes/class-wp-links-list-table.php:139
-#: wp-admin/includes/class-wp-media-list-table.php:359
-#: wp-admin/includes/class-wp-media-list-table.php:373
-#: wp-admin/includes/class-wp-ms-sites-list-table.php:245
-#: wp-admin/includes/class-wp-ms-themes-list-table.php:296
-#: wp-admin/includes/class-wp-ms-users-list-table.php:189
-#: wp-admin/includes/class-wp-ms-users-list-table.php:232
-#: wp-admin/includes/class-wp-plugins-list-table.php:372
-#: wp-admin/includes/class-wp-posts-list-table.php:190
-#: wp-admin/includes/class-wp-posts-list-table.php:536
-#: wp-admin/includes/class-wp-terms-list-table.php:258
-#: wp-admin/includes/class-wp-users-list-table.php:246
-#: wp-admin/includes/dashboard.php:662
-#: wp-admin/includes/meta-boxes.php:84
-#: wp-admin/includes/meta-boxes.php:130
-#: wp-admin/includes/meta-boxes.php:180
-#: wp-admin/includes/post.php:1123
-#: wp-admin/includes/widgets.php:182
-msgid "Edit"
-msgstr "Modifier"
-
 #: wp-admin/edit-form-comment.php:110
-#: wp-admin/includes/class-wp-comments-list-table.php:200
-#: wp-admin/includes/class-wp-comments-list-table.php:409
-#: wp-admin/includes/class-wp-media-list-table.php:79
-#: wp-admin/includes/class-wp-media-list-table.php:365
-#: wp-admin/includes/class-wp-media-list-table.php:381
-#: wp-admin/includes/class-wp-posts-list-table.php:193
-#: wp-admin/includes/class-wp-posts-list-table.php:545
-#: wp-admin/includes/dashboard.php:666
-#: wp-admin/includes/media.php:1159
-#: wp-admin/includes/meta-boxes.php:196
-msgid "Delete Permanently"
-msgstr "Supprimer définitivement"
-
-#: wp-admin/edit-form-comment.php:110
-#: wp-admin/includes/class-wp-comments-list-table.php:202
-#: wp-admin/includes/class-wp-posts-list-table.php:195
-#: wp-admin/includes/media.php:1167
-#: wp-admin/includes/meta-boxes.php:198
+#: wp-admin/includes/class-wp-comments-list-table.php:204
+#: wp-admin/includes/class-wp-posts-list-table.php:192
+#: wp-admin/includes/media.php:1188 wp-admin/includes/meta-boxes.php:196
 msgid "Move to Trash"
 msgstr "Déplacer dans la Corbeille"
 
@@ -1379,8 +1868,7 @@
 msgid "<a href=\"%s\">Links</a> / Edit Link"
 msgstr "<a href=\"%s\">Liens</a> / Modifier le lien"
 
-#: wp-admin/edit-link-form.php:15
-#: wp-admin/includes/meta-boxes.php:641
+#: wp-admin/edit-link-form.php:15 wp-admin/includes/meta-boxes.php:705
 msgid "Update Link"
 msgstr "Mettre à jour le lien"
 
@@ -1388,33 +1876,60 @@
 msgid "<a href=\"%s\">Links</a> / Add New Link"
 msgstr "<a href=\"%s\">Liens</a> / Ajouter un nouveau lien"
 
-#: wp-admin/edit-link-form.php:30
-#: wp-admin/includes/nav-menu.php:160
+#: wp-admin/edit-link-form.php:30 wp-admin/includes/nav-menu.php:160
 #: wp-admin/includes/nav-menu.php:1139
 msgid "Link Relationship (XFN)"
 msgstr "Relation avec le propriétaire du site lié (XFN)"
 
 #: wp-admin/edit-link-form.php:46
-msgid "You can add or edit links on this screen by entering information in each of the boxes. Only the link&#8217;s web address and name (the text you want to display on your site as the link) are required fields."
-msgstr "Vous pouvez ajouter ou modifier des liens sur cet écran, en saisissant dans chacune des boites. Seuls sont obligatoires les champs &laquo;&nbsp;Adresse Web&nbsp;&raquo; et &laquo;&nbsp;Nom&nbsp;&raquo; (le texte que vous voulez voir affiché sur votre site pour cette adresse)."
+msgid ""
+"You can add or edit links on this screen by entering information in each of "
+"the boxes. Only the link&#8217;s web address and name (the text you want to "
+"display on your site as the link) are required fields."
+msgstr ""
+"Vous pouvez ajouter ou modifier des liens sur cet écran, en saisissant dans "
+"chacune des boites. Seuls sont obligatoires les champs &laquo;&nbsp;Adresse "
+"Web&nbsp;&raquo; et &laquo;&nbsp;Nom&nbsp;&raquo; (le texte que vous voulez "
+"voir affiché sur votre site pour cette adresse)."
 
 #: wp-admin/edit-link-form.php:47
-msgid "The boxes for link name, web address, and description have fixed positions, while the others may be repositioned using drag and drop. You can also hide boxes you don&#8217;t use in the Screen Options tab, or minimize boxes by clicking on the title bar of the box."
-msgstr "Les boites pour le nom, l&rsquo;adresse web et la description sont fixes, tandis que les autres peuvent être repositionnées par glisser/déposer. Vous pouvez également cacher les boites que vous n&rsquo;utilisez pas via l&rsquo;onglet &laquo;&nbsp;Options de l&rsquo;écran&nbsp;&raquo;, et fermer les boites en cliquant sur leur barre de titre."
+msgid ""
+"The boxes for link name, web address, and description have fixed positions, "
+"while the others may be repositioned using drag and drop. You can also hide "
+"boxes you don&#8217;t use in the Screen Options tab, or minimize boxes by "
+"clicking on the title bar of the box."
+msgstr ""
+"Les boites pour le nom, l&rsquo;adresse web et la description sont fixes, "
+"tandis que les autres peuvent être repositionnées par glisser/déposer. Vous "
+"pouvez également cacher les boites que vous n&rsquo;utilisez pas via l&rsquo;"
+"onglet &laquo;&nbsp;Options de l&rsquo;écran&nbsp;&raquo;, et fermer les "
+"boites en cliquant sur leur barre de titre."
 
 #: wp-admin/edit-link-form.php:48
-msgid "XFN stands for <a href=\"http://gmpg.org/xfn/\" target=\"_blank\">XHTML Friends Network</a>, which is optional. WordPress allows the generation of XFN attributes to show how you are related to the authors/owners of the site to which you are linking."
-msgstr "XFN signifie <a href=\"http://gmpg.org/xfn/\" target=\"_blank\">XHTML Friends Network</a>, c&rsquo;est-à-dire Réseau XHTML d&rsquo;Amis. Son usage est facultatif. WordPress permet de générer les attributs XFN de vos liens, afin d&rsquo;indiquer la manière dont vous êtes lié à l&rsquo;auteur ou le propriétaire de la page liée."
+msgid ""
+"XFN stands for <a href=\"http://gmpg.org/xfn/\" target=\"_blank\">XHTML "
+"Friends Network</a>, which is optional. WordPress allows the generation of "
+"XFN attributes to show how you are related to the authors/owners of the site "
+"to which you are linking."
+msgstr ""
+"XFN signifie <a href=\"http://gmpg.org/xfn/\" target=\"_blank\">XHTML "
+"Friends Network</a>, c&rsquo;est-à-dire Réseau XHTML d&rsquo;Amis. Son usage "
+"est facultatif. WordPress permet de générer les attributs XFN de vos liens, "
+"afin d&rsquo;indiquer la manière dont vous êtes lié à l&rsquo;auteur ou le "
+"propriétaire de la page liée."
 
 #: wp-admin/edit-link-form.php:53
-msgid "<a href=\"http://codex.wordpress.org/Links_Add_New_Screen\" target=\"_blank\">Documentation on Creating Links</a>"
-msgstr "<a href=\"http://codex.wordpress.org/Links_Add_New_Screen\" target=\"_blank\">Documentation sur la création de liens (en)</a>"
+msgid ""
+"<a href=\"http://codex.wordpress.org/Links_Add_New_Screen\" target=\"_blank"
+"\">Documentation on Creating Links</a>"
+msgstr ""
+"<a href=\"http://codex.wordpress.org/Links_Add_New_Screen\" target=\"_blank"
+"\">Documentation sur la création de liens (en)</a>"
 
 # contexte
 #. translators: add new links
-#: wp-admin/edit-link-form.php:62
-#: wp-admin/link-manager.php:73
-#: wp-admin/menu.php:64
+#: wp-admin/edit-link-form.php:62 wp-admin/link-manager.php:73
+#: wp-admin/menu.php:78
 msgctxt "link"
 msgid "Add New"
 msgstr "Ajouter"
@@ -1424,141 +1939,224 @@
 msgstr "Lien ajouté."
 
 #: wp-admin/edit-link-form.php:83
-#: wp-admin/includes/class-wp-links-list-table.php:80
+#: wp-admin/includes/class-wp-links-list-table.php:81
 msgctxt "link name"
 msgid "Name"
 msgstr "Nom"
 
 #: wp-admin/edit-link-form.php:86
 msgid "Example: Nifty blogging software"
-msgstr "Exemple&nbsp;: Logiciel de création de sites rapide, puissant et efficace"
+msgstr ""
+"Exemple&nbsp;: Logiciel de création de sites rapide, puissant et efficace"
 
 #: wp-admin/edit-link-form.php:91
 msgid "Web Address"
 msgstr "Adresse web"
 
 #: wp-admin/edit-link-form.php:94
-msgid "Example: <code>http://wordpress.org/</code> &#8212; don&#8217;t forget the <code>http://</code>"
-msgstr "Exemple&nbsp;: <code>http://www.wordpress-fr.net/</code> &#8212; Et n&rsquo;oubliez pas le <code>http://</code>&nbsp;!"
-
-#: wp-admin/edit-link-form.php:99
-#: wp-admin/includes/class-wp-ms-themes-list-table.php:181
-#: wp-admin/includes/class-wp-plugin-install-list-table.php:142
-#: wp-admin/includes/class-wp-plugins-list-table.php:187
-#: wp-admin/includes/class-wp-terms-list-table.php:101
-#: wp-admin/includes/media.php:943
-#: wp-admin/includes/nav-menu.php:166
-#: wp-admin/includes/nav-menu.php:1140
-#: wp-admin/press-this.php:146
-#: wp-admin/press-this.php:642
-#: wp-admin/themes.php:282
-msgid "Description"
-msgstr "Description"
+msgid ""
+"Example: <code>http://wordpress.org/</code> &#8212; don&#8217;t forget the "
+"<code>http://</code>"
+msgstr ""
+"Exemple&nbsp;: <code>http://www.wordpress-fr.net/</code> &#8212; Et n&rsquo;"
+"oubliez pas le <code>http://</code>&nbsp;!"
 
 #: wp-admin/edit-link-form.php:102
-msgid "This will be shown when someone hovers over the link in the blogroll, or optionally below the link."
-msgstr "Cette description sera affichée lors du survol du lien dans la liste de liens&nbsp;; elle pourra également apparaître sous le lien si votre thème le prévoit."
+msgid ""
+"This will be shown when someone hovers over the link in the blogroll, or "
+"optionally below the link."
+msgstr ""
+"Cette description sera affichée lors du survol du lien dans la liste de "
+"liens&nbsp;; elle pourra également apparaître sous le lien si votre thème le "
+"prévoit."
 
 #: wp-admin/edit-tag-form.php:14
 msgid "You did not select an item for editing."
 msgstr "Un contenu n&rsquo;a pas été sélectionné pour l&rsquo;édition. "
 
-#: wp-admin/edit-tag-form.php:40
-#: wp-admin/edit-tags.php:360
+#: wp-admin/edit-tag-form.php:40 wp-admin/edit-tags.php:360
 msgctxt "Taxonomy Name"
 msgid "Name"
 msgstr "Nom"
 
-#: wp-admin/edit-tag-form.php:42
-#: wp-admin/edit-tags.php:362
+#: wp-admin/edit-tag-form.php:42 wp-admin/edit-tags.php:362
 msgid "The name is how it appears on your site."
 msgstr "Ce nom est utilisé un peu partout sur votre site."
 
-#: wp-admin/edit-tag-form.php:46
-#: wp-admin/edit-tags.php:366
+#: wp-admin/edit-tag-form.php:46 wp-admin/edit-tags.php:366
 msgctxt "Taxonomy Slug"
 msgid "Slug"
 msgstr "Identifiant"
 
-#: wp-admin/edit-tag-form.php:48
-#: wp-admin/edit-tags.php:368
-msgid "The &#8220;slug&#8221; is the URL-friendly version of the name. It is usually all lowercase and contains only letters, numbers, and hyphens."
-msgstr "L&rsquo;identifiant est la version normalisée du nom. Il ne contient généralement que des lettres minuscules non accentuées, des chiffres et des traits d&rsquo;union."
-
-#: wp-admin/edit-tag-form.php:53
-#: wp-admin/edit-tags.php:373
+#: wp-admin/edit-tag-form.php:48 wp-admin/edit-tags.php:368
+msgid ""
+"The &#8220;slug&#8221; is the URL-friendly version of the name. It is "
+"usually all lowercase and contains only letters, numbers, and hyphens."
+msgstr ""
+"L&rsquo;identifiant est la version normalisée du nom. Il ne contient "
+"généralement que des lettres minuscules non accentuées, des chiffres et des "
+"traits d&rsquo;union."
+
+#: wp-admin/edit-tag-form.php:53 wp-admin/edit-tags.php:373
 msgctxt "Taxonomy Parent"
 msgid "Parent"
 msgstr "Parent"
 
-#: wp-admin/edit-tag-form.php:57
-#: wp-admin/edit-tags.php:376
-msgid "Categories, unlike tags, can have a hierarchy. You might have a Jazz category, and under that have children categories for Bebop and Big Band. Totally optional."
-msgstr "Les catégories, contrairement aux mots-clefs, peuvent avoir une hiérarchie. Vous pouvez avoir une catégorie nommée Jazz, et à l&rsquo;intérieur, plusieurs catégories comme Bebop et Big Band. Ceci est totalement facultatif."
-
-#: wp-admin/edit-tag-form.php:63
-#: wp-admin/edit-tags.php:381
+#: wp-admin/edit-tag-form.php:57 wp-admin/edit-tags.php:376
+msgid ""
+"Categories, unlike tags, can have a hierarchy. You might have a Jazz "
+"category, and under that have children categories for Bebop and Big Band. "
+"Totally optional."
+msgstr ""
+"Les catégories, contrairement aux mots-clefs, peuvent avoir une hiérarchie. "
+"Vous pouvez avoir une catégorie nommée Jazz, et à l&rsquo;intérieur, "
+"plusieurs catégories comme Bebop et Big Band. Ceci est totalement facultatif."
+
+#: wp-admin/edit-tag-form.php:63 wp-admin/edit-tags.php:381
 msgctxt "Taxonomy Description"
 msgid "Description"
 msgstr "Description"
 
-#: wp-admin/edit-tag-form.php:65
-msgid "The description is not prominent by default, however some themes may show it."
-msgstr "La description n&rsquo;est pas très utilisée par défaut, cependant de plus en plus de thèmes l&rsquo;affichent."
-
-#: wp-admin/edit-tags.php:128
-#: wp-admin/edit-tags.php:143
-#: wp-admin/post.php:135
-msgid "You attempted to edit an item that doesn&#8217;t exist. Perhaps it was deleted?"
-msgstr "Vous tentez de modifier un contenu qui n&rsquo;existe pas. Peut-être a-t-il été supprimé&nbsp;?"
+#: wp-admin/edit-tag-form.php:65 wp-admin/edit-tags.php:383
+msgid ""
+"The description is not prominent by default; however, some themes may show "
+"it."
+msgstr ""
+"La description n&rsquo;est pas très utilisée par défaut, cependant de plus "
+"en plus de thèmes l&rsquo;affichent."
+
+#: wp-admin/edit-tags.php:128 wp-admin/edit-tags.php:143 wp-admin/post.php:139
+msgid ""
+"You attempted to edit an item that doesn&#8217;t exist. Perhaps it was "
+"deleted?"
+msgstr ""
+"Vous tentez de modifier un contenu qui n&rsquo;existe pas. Peut-être a-t-il "
+"été supprimé&nbsp;?"
 
 #: wp-admin/edit-tags.php:191
-msgid "You can use categories to define sections of your site and group related posts. The default category is &#8220;Uncategorized&#8221; until you change it in your <a href=\"%s\">writing settings</a>."
-msgstr "Vous pouvez utiliser les catégories pour donner des sections à votre site, et grouper les articles connexes. La catégorie par défaut est &laquo;&nbsp;Non classé&nbsp;&raquo;&nbsp;; vous pouvez la modifier dans vos <a href=\"%s\">options d&rsquo;écriture</a>."
+msgid ""
+"You can use categories to define sections of your site and group related "
+"posts. The default category is &#8220;Uncategorized&#8221; until you change "
+"it in your <a href=\"%s\">writing settings</a>."
+msgstr ""
+"Vous pouvez utiliser les catégories pour donner des sections à votre site, "
+"et grouper les articles connexes. La catégorie par défaut est &laquo;&nbsp;"
+"Non classé&nbsp;&raquo;&nbsp;; vous pouvez la modifier dans vos <a href=\"%s"
+"\">options d&rsquo;écriture</a>."
 
 #: wp-admin/edit-tags.php:193
-msgid "You can create groups of links by using Link Categories. Link Category names must be unique and Link Categories are separate from the categories you use for posts."
-msgstr "Vous pouvez créer des groupes de liens en utilisant les catégories de liens. Le nom d&rsquo;une catégorie de liens doit être unique, et les catégories de liens ne sont pas les mêmes que les catégories de vos articles."
+msgid ""
+"You can create groups of links by using Link Categories. Link Category names "
+"must be unique and Link Categories are separate from the categories you use "
+"for posts."
+msgstr ""
+"Vous pouvez créer des groupes de liens en utilisant les catégories de liens. "
+"Le nom d&rsquo;une catégorie de liens doit être unique, et les catégories de "
+"liens ne sont pas les mêmes que les catégories de vos articles."
 
 #: wp-admin/edit-tags.php:195
-msgid "You can assign keywords to your posts using <strong>tags</strong>. Unlike categories, tags have no hierarchy, meaning there&#8217;s no relationship from one tag to another."
-msgstr "Vous pouvez assigner des <strong>mots-clefs</strong> à vos articles via la boite dédiée. Au contraire des catégories, les mots-clefs n&rsquo;ont pas de hiérarchie, ce qui signifie qu&rsquo;ils ne peuvent pas être liés entre eux."
+msgid ""
+"You can assign keywords to your posts using <strong>tags</strong>. Unlike "
+"categories, tags have no hierarchy, meaning there&#8217;s no relationship "
+"from one tag to another."
+msgstr ""
+"Vous pouvez assigner des <strong>mots-clefs</strong> à vos articles via la "
+"boite dédiée. Au contraire des catégories, les mots-clefs n&rsquo;ont pas de "
+"hiérarchie, ce qui signifie qu&rsquo;ils ne peuvent pas être liés entre eux."
 
 #: wp-admin/edit-tags.php:198
-msgid "You can delete Link Categories in the Bulk Action pulldown, but that action does not delete the links within the category. Instead, it moves them to the default Link Category."
-msgstr "Vous pouvez supprimer des catégories de liens avec la liste déroulante &laquo;&nbsp;Actions groupées&nbsp;&raquo;, mais cette action ne supprime pas les liens contenus dans les catégories. Au lieu de cela, ils sont déplacés dans la catégorie de liens par défaut."
+msgid ""
+"You can delete Link Categories in the Bulk Action pull-down, but that action "
+"does not delete the links within the category. Instead, it moves them to the "
+"default Link Category."
+msgstr ""
+"Vous pouvez supprimer des catégories de liens avec la liste déroulante "
+"&laquo;&nbsp;Actions groupées&nbsp;&raquo;, mais cette action ne supprime "
+"pas les liens contenus dans la catégorie. Au lieu de cela, ils sont déplacés "
+"dans la catégorie de liens par défaut."
 
 #: wp-admin/edit-tags.php:200
-msgid "What&#8217;s the difference between categories and tags? Normally, tags are ad-hoc keywords that identify important information in your post (names, subjects, etc) that may or may not recur in other posts, while categories are pre-determined sections. If you think of your site like a book, the categories are like the Table of Contents and the tags are like the terms in the index."
-msgstr "Quelle est la différence entre les catégories et les mots-clefs&nbsp;? Normalement, les mots-clefs identifient les informations importantes dans votre article (noms, sujets, etc.) qui seraient susceptibles de revenir dans d&rsquo;autres articles, ou pas. De leur côté, les catégories ont des sections prédéterminées. Si vous voyez votre site comme un livre, alors les catégories sont la table des matières, et les mots-clefs forment l&rsquo;index."
+msgid ""
+"What&#8217;s the difference between categories and tags? Normally, tags are "
+"ad-hoc keywords that identify important information in your post (names, "
+"subjects, etc) that may or may not recur in other posts, while categories "
+"are pre-determined sections. If you think of your site like a book, the "
+"categories are like the Table of Contents and the tags are like the terms in "
+"the index."
+msgstr ""
+"Quelle est la différence entre les catégories et les mots-clefs&nbsp;? "
+"Normalement, les mots-clefs identifient les informations importantes dans "
+"votre article (noms, sujets, etc.) qui seraient susceptibles de revenir dans "
+"d&rsquo;autres articles, ou pas. De leur côté, les catégories ont des "
+"sections prédéterminées. Si vous voyez votre site comme un livre, alors les "
+"catégories sont la table des matières, et les mots-clefs forment l&rsquo;"
+"index."
 
 #: wp-admin/edit-tags.php:210
-msgid "When adding a new category on this screen, you&#8217;ll fill in the following fields:"
-msgstr "Quand vous ajoutez une nouvelle catégorie via cet écran, vous devez remplir les champs suivants&nbsp;:"
+msgid ""
+"When adding a new category on this screen, you&#8217;ll fill in the "
+"following fields:"
+msgstr ""
+"Quand vous ajoutez une nouvelle catégorie via cet écran, vous devez remplir "
+"les champs suivants&nbsp;:"
 
 #: wp-admin/edit-tags.php:212
-msgid "When adding a new tag on this screen, you&#8217;ll fill in the following fields:"
-msgstr "Quand vous ajoutez un nouveau mot-clef via cet écran, vous devez remplir les champs suivants&nbsp;:"
+msgid ""
+"When adding a new tag on this screen, you&#8217;ll fill in the following "
+"fields:"
+msgstr ""
+"Quand vous ajoutez un nouveau mot-clef via cet écran, vous devez remplir les "
+"champs suivants&nbsp;:"
 
 #: wp-admin/edit-tags.php:215
 msgid "<strong>Name</strong> - The name is how it appears on your site."
-msgstr "<strong>Nom</strong> - Ce nom est utilisé un peu partout sur votre site&nbsp;;"
+msgstr ""
+"<strong>Nom</strong> - Ce nom est utilisé un peu partout sur votre "
+"site&nbsp;;"
 
 #: wp-admin/edit-tags.php:218
-msgid "<strong>Slug</strong> - The &#8220;slug&#8221; is the URL-friendly version of the name. It is usually all lowercase and contains only letters, numbers, and hyphens."
-msgstr "<strong>Identifiant</strong> - L&rsquo;identifiant est la version normalisée du nom. Il ne contient généralement que des lettres minuscules non accentuées, des chiffres et des traits d&rsquo;union&nbsp;;"
+msgid ""
+"<strong>Slug</strong> - The &#8220;slug&#8221; is the URL-friendly version "
+"of the name. It is usually all lowercase and contains only letters, numbers, "
+"and hyphens."
+msgstr ""
+"<strong>Identifiant</strong> - L&rsquo;identifiant est la version normalisée "
+"du nom. Il ne contient généralement que des lettres minuscules non "
+"accentuées, des chiffres et des traits d&rsquo;union&nbsp;;"
 
 #: wp-admin/edit-tags.php:221
-msgid "<strong>Parent</strong> - Categories, unlike tags, can have a hierarchy. You might have a Jazz category, and under that have children categories for Bebop and Big Band. Totally optional. To create a subcategory, just choose another category from the Parent dropdown."
-msgstr "<strong>Parent</strong> - Les catégories, contrairement aux mots-clefs, peuvent avoir une hiérarchie. Vous pouvez avoir une catégorie nommée &laquo;&nbsp;Jazz&nbsp;&raquo;, et à l&rsquo;intérieur, plusieurs catégories comme &laquo;&nbsp;Bebop&nbsp;&raquo; et &laquo;&nbsp;Big Band&nbsp;&raquo;. Le fait d&rsquo;avoir une hiérarchie est totalement facultatif. Pour créer une sous-catégorie, choisissez juste une autre catégorie depuis la liste déroulante &laquo;&nbsp;Parent&nbsp;&raquo;&nbsp;."
+msgid ""
+"<strong>Parent</strong> - Categories, unlike tags, can have a hierarchy. You "
+"might have a Jazz category, and under that have child categories for Bebop "
+"and Big Band. Totally optional. To create a subcategory, just choose another "
+"category from the Parent dropdown."
+msgstr ""
+"<strong>Parent</strong> - Les catégories, contrairement aux mots-clefs, "
+"peuvent avoir une hiérarchie. Vous pouvez avoir une catégorie nommée &laquo;"
+"&nbsp;Jazz&nbsp;&raquo;, et à l&rsquo;intérieur, plusieurs catégories comme "
+"&laquo;&nbsp;Bebop&nbsp;&raquo; et &laquo;&nbsp;Big Band&nbsp;&raquo;. Le "
+"fait d&rsquo;avoir une hiérarchie est totalement facultatif. Pour créer une "
+"sous-catégorie, choisissez juste une autre catégorie depuis la liste "
+"déroulante &laquo;&nbsp;Parent&nbsp;&raquo;&nbsp;."
 
 #: wp-admin/edit-tags.php:223
-msgid "<strong>Description</strong> - The description is not prominent by default; however, some themes may display it."
-msgstr "<strong>Description</strong> - La description n&rsquo;est pas très utilisée par défaut, cependant de plus en plus de thèmes l&rsquo;affichent."
+msgid ""
+"<strong>Description</strong> - The description is not prominent by default; "
+"however, some themes may display it."
+msgstr ""
+"<strong>Description</strong> - La description n&rsquo;est pas très utilisée "
+"par défaut, cependant de plus en plus de thèmes l&rsquo;affichent."
 
 #: wp-admin/edit-tags.php:225
-msgid "You can change the display of this screen using the Screen Options tab to set how many items are displayed per screen and to display/hide columns in the table."
-msgstr "Vous pouvez modifier l&rsquo;affichage de cet écran via l&rsquo;onglet &laquo;&nbsp;Options de l&rsquo;écran&nbsp;&raquo;, afin de définir le nombre d&rsquo;éléments à afficher par écran, et afficher/cacher les colonnes du tableau."
+msgid ""
+"You can change the display of this screen using the Screen Options tab to "
+"set how many items are displayed per screen and to display/hide columns in "
+"the table."
+msgstr ""
+"Vous pouvez modifier l&rsquo;affichage de cet écran via l&rsquo;onglet "
+"&laquo;&nbsp;Options de l&rsquo;écran&nbsp;&raquo;, afin de définir le "
+"nombre d&rsquo;éléments à afficher par écran, et afficher/cacher les "
+"colonnes du tableau."
 
 #: wp-admin/edit-tags.php:229
 msgid "Adding Categories"
@@ -1569,16 +2167,28 @@
 msgstr "Ajout de mots-clefs"
 
 #: wp-admin/edit-tags.php:237
-msgid "<a href=\"http://codex.wordpress.org/Posts_Categories_Screen\" target=\"_blank\">Documentation on Categories</a>"
-msgstr "<a href=\"http://codex.wordpress.org/Post_Categories_Screen\" target=\"_blank\">Documentation sur les catégories (en)</a>"
+msgid ""
+"<a href=\"http://codex.wordpress.org/Posts_Categories_Screen\" target="
+"\"_blank\">Documentation on Categories</a>"
+msgstr ""
+"<a href=\"http://codex.wordpress.org/Post_Categories_Screen\" target=\"_blank"
+"\">Documentation sur les catégories (en)</a>"
 
 #: wp-admin/edit-tags.php:239
-msgid "<a href=\"http://codex.wordpress.org/Links_Link_Categories_Screen\" target=\"_blank\">Documentation on Link Categories</a>"
-msgstr "<a href=\"http://codex.wordpress.org/Links_Link_Categories_Screen\" target=\"_blank\">Documentation sur les catégories de liens (en)</a>"
+msgid ""
+"<a href=\"http://codex.wordpress.org/Links_Link_Categories_Screen\" target="
+"\"_blank\">Documentation on Link Categories</a>"
+msgstr ""
+"<a href=\"http://codex.wordpress.org/Links_Link_Categories_Screen\" target="
+"\"_blank\">Documentation sur les catégories de liens (en)</a>"
 
 #: wp-admin/edit-tags.php:241
-msgid "<a href=\"http://codex.wordpress.org/Posts_Tags_Screen\" target=\"_blank\">Documentation on Tags</a>"
-msgstr "<a href=\"http://codex.wordpress.org/Posts_Tags_Screen\" target=\"_blank\">Documentation sur les mots-clefs (en)</a>"
+msgid ""
+"<a href=\"http://codex.wordpress.org/Posts_Tags_Screen\" target=\"_blank"
+"\">Documentation on Tags</a>"
+msgstr ""
+"<a href=\"http://codex.wordpress.org/Posts_Tags_Screen\" target=\"_blank"
+"\">Documentation sur les mots-clefs (en)</a>"
 
 #: wp-admin/edit-tags.php:255
 msgid "Item added."
@@ -1596,9 +2206,8 @@
 msgid "Item not added."
 msgstr "Contenu non ajouté."
 
-#: wp-admin/edit-tags.php:259
-#: wp-admin/includes/ajax-actions.php:1405
-#: wp-admin/includes/ajax-actions.php:1412
+#: wp-admin/edit-tags.php:259 wp-admin/includes/ajax-actions.php:1401
+#: wp-admin/includes/ajax-actions.php:1406
 msgid "Item not updated."
 msgstr "L&rsquo;entrée n&rsquo;a pas été mise à jour"
 
@@ -1607,521 +2216,735 @@
 msgstr "Contenus supprimés."
 
 #: wp-admin/edit-tags.php:301
-msgid "<strong>Note:</strong><br />Deleting a category does not delete the posts in that category. Instead, posts that were only assigned to the deleted category are set to the category <strong>%s</strong>."
-msgstr "<strong>À savoir&nbsp;:</strong> supprimer une catégorie ne supprime pas les articles qu&rsquo;elle contient. Les articles affectés uniquement à la catégorie supprimée seront affectés à celle par défaut&nbsp&nbsp;: <strong>%s</strong>."
+msgid ""
+"<strong>Note:</strong><br />Deleting a category does not delete the posts in "
+"that category. Instead, posts that were only assigned to the deleted "
+"category are set to the category <strong>%s</strong>."
+msgstr ""
+"<strong>À savoir&nbsp;:</strong> supprimer une catégorie ne supprime pas les "
+"articles qu&rsquo;elle contient. Les articles affectés uniquement à la "
+"catégorie supprimée seront affectés à celle par défaut&nbsp&nbsp;: <strong>"
+"%s</strong>."
 
 #: wp-admin/edit-tags.php:303
-msgid "Categories can be selectively converted to tags using the <a href=\"%s\">category to tag converter</a>."
-msgstr "Les catégories peuvent être converties de manière sélective en mots-clefs via le <a href=\"%s\">convertisseur catégories vers mots-clefs</a>."
+msgid ""
+"Categories can be selectively converted to tags using the <a href=\"%s"
+"\">category to tag converter</a>."
+msgstr ""
+"Les catégories peuvent être converties de manière sélective en mots-clefs "
+"via le <a href=\"%s\">convertisseur catégories vers mots-clefs</a>."
 
 #: wp-admin/edit-tags.php:308
-msgid "Tags can be selectively converted to categories using the <a href=\"%s\">tag to category converter</a>"
-msgstr "Les mots-clefs peuvent être convertis de manière sélective en catégories via le <a href=\"%s\">convertisseur mots-clefs vers catégories</a>"
-
-#: wp-admin/edit-tags.php:383
-msgid "The description is not prominent by default; however, some themes may show it."
-msgstr "La description n&rsquo;est pas très utilisée par défaut, cependant de plus en plus de thèmes l&rsquo;affichent."
-
-#: wp-admin/edit.php:81
-#: wp-admin/post.php:208
+msgid ""
+"Tags can be selectively converted to categories using the <a href=\"%s\">tag "
+"to category converter</a>."
+msgstr ""
+"Les mots-clefs peuvent être convertis de manière sélective en catégories via "
+"le <a href=\"%s\">convertisseur mots-clefs vers catégories</a>"
+
+#: wp-admin/edit.php:81 wp-admin/post.php:218
 msgid "You are not allowed to move this item to the Trash."
-msgstr "Vous n&rsquo;avez pas l&rsquo;autorisation de déplacer ce contenu dans la Corbeille."
-
-#: wp-admin/edit.php:84
-#: wp-admin/post.php:211
+msgstr ""
+"Vous n&rsquo;avez pas l&rsquo;autorisation de déplacer ce contenu dans la "
+"Corbeille."
+
+#: wp-admin/edit.php:84 wp-admin/post.php:221
 msgid "Error in moving to Trash."
 msgstr "Erreur lors du déplacement dans la Corbeille."
 
 #: wp-admin/edit.php:94
 msgid "You are not allowed to restore this item from the Trash."
-msgstr "Vous n&rsquo;avez pas l&rsquo;autorisation de récupérer ce contenu depuis la Corbeille."
-
-#: wp-admin/edit.php:97
-#: wp-admin/post.php:224
+msgstr ""
+"Vous n&rsquo;avez pas l&rsquo;autorisation de récupérer ce contenu depuis la "
+"Corbeille."
+
+#: wp-admin/edit.php:97 wp-admin/post.php:234
 msgid "Error in restoring from Trash."
 msgstr "Erreur pendant la récupération depuis la Corbeille."
 
-#: wp-admin/edit.php:109
-#: wp-admin/post.php:234
+#: wp-admin/edit.php:109 wp-admin/post.php:244
 msgid "You are not allowed to delete this item."
 msgstr "Vous n&rsquo;avez pas l&rsquo;autorisation de supprimer ce contenu."
 
-#: wp-admin/edit.php:113
-#: wp-admin/edit.php:116
-#: wp-admin/upload.php:124
+#: wp-admin/edit.php:113 wp-admin/edit.php:116 wp-admin/upload.php:126
 msgid "Error in deleting..."
 msgstr "Erreur pendant la suppression&hellip;"
 
 #: wp-admin/edit.php:156
-msgid "This screen provides access to all of your posts. You can customize the display of this screen to suit your workflow."
-msgstr "Cet écran vous donne accès à tous vos articles. Vous pouvez personnaliser son affichage afin qu&rsquo;il corresponde au mieux à vos besoins."
+msgid ""
+"This screen provides access to all of your posts. You can customize the "
+"display of this screen to suit your workflow."
+msgstr ""
+"Cet écran vous donne accès à tous vos articles. Vous pouvez personnaliser "
+"son affichage afin qu&rsquo;il corresponde au mieux à vos besoins."
 
 #: wp-admin/edit.php:160
 msgid "Screen Content"
 msgstr "Contenu de l&rsquo;écran"
 
 #: wp-admin/edit.php:162
-msgid "You can customize the display of this screen&#8217;s contents in a number of ways:"
-msgstr "Vous pouvez personnaliser l&rsquo;affichage de cet écran de plusieurs manières&nbsp;:"
+msgid ""
+"You can customize the display of this screen&#8217;s contents in a number of "
+"ways:"
+msgstr ""
+"Vous pouvez personnaliser l&rsquo;affichage de cet écran de plusieurs "
+"manières&nbsp;:"
 
 #: wp-admin/edit.php:164
-msgid "You can hide/display columns based on your needs and decide how many posts to list per screen using the Screen Options tab."
-msgstr "Vous pouvez cacher/afficher les colonnes en fonction de vos besoins, et décider du nombre d&rsquo;articles à afficher par écran à l&rsquo;aide de l&rsquo;onglet &laquo;&nbsp;Options de l&rsquo;écran&nbsp;&raquo;&nbsp;."
+msgid ""
+"You can hide/display columns based on your needs and decide how many posts "
+"to list per screen using the Screen Options tab."
+msgstr ""
+"Vous pouvez cacher/afficher les colonnes en fonction de vos besoins, et "
+"décider du nombre d&rsquo;articles à afficher par écran à l&rsquo;aide de "
+"l&rsquo;onglet &laquo;&nbsp;Options de l&rsquo;écran&nbsp;&raquo;&nbsp;."
 
 #: wp-admin/edit.php:165
-msgid "You can filter the list of posts by post status using the text links in the upper left to show All, Published, Draft, or Trashed posts. The default view is to show all posts."
-msgstr "Vous pouvez filtrer la liste des articles par état, à l&rsquo;aide des liens textuels en haut à gauche, afin d&rsquo;afficher tous les articles, ou seulement les articles publiés, les brouillons, etc. Par défaut, tous les articles sont affichés&nbsp;;"
+msgid ""
+"You can filter the list of posts by post status using the text links in the "
+"upper left to show All, Published, Draft, or Trashed posts. The default view "
+"is to show all posts."
+msgstr ""
+"Vous pouvez filtrer la liste des articles par état, à l&rsquo;aide des liens "
+"textuels en haut à gauche, afin d&rsquo;afficher tous les articles, ou "
+"seulement les articles publiés, les brouillons, etc. Par défaut, tous les "
+"articles sont affichés&nbsp;;"
 
 #: wp-admin/edit.php:166
-msgid "You can view posts in a simple title list or with an excerpt. Choose the view you prefer by clicking on the icons at the top of the list on the right."
-msgstr "Vous pouvez afficher une simple liste de titres, ou une liste avec des extraits. Choisissez l&rsquo;affichage que vous préférez en cliquant sur les icônes en haut à droite de la liste&nbsp;;"
+msgid ""
+"You can view posts in a simple title list or with an excerpt. Choose the "
+"view you prefer by clicking on the icons at the top of the list on the right."
+msgstr ""
+"Vous pouvez afficher une simple liste de titres, ou une liste avec des "
+"extraits. Choisissez l&rsquo;affichage que vous préférez en cliquant sur les "
+"icônes en haut à droite de la liste&nbsp;;"
 
 #: wp-admin/edit.php:167
-msgid "You can refine the list to show only posts in a specific category or from a specific month by using the dropdown menus above the posts list. Click the Filter button after making your selection. You also can refine the list by clicking on the post author, category or tag in the posts list."
-msgstr "Vous pouvez affiner la liste pour qu&rsquo;elle n&rsquo;affiche que les articles d&rsquo;une catégorie spécifique ou d&rsquo;un mois donné, à l&rsquo;aide du menu déroulant situé au-dessus de la liste. Cliquez sur le bouton &laquo;&nbsp;Filtrer&nbsp;&raquo; après avoir fait votre choix. Vous pouvez également affiner la liste en cliquant sur l&rsquo;auteur d&rsquo;un article, sa catégorie ou un mot-clef."
-
-#: wp-admin/edit.php:172
-#: wp-admin/upload.php:157
+msgid ""
+"You can refine the list to show only posts in a specific category or from a "
+"specific month by using the dropdown menus above the posts list. Click the "
+"Filter button after making your selection. You also can refine the list by "
+"clicking on the post author, category or tag in the posts list."
+msgstr ""
+"Vous pouvez affiner la liste pour qu&rsquo;elle n&rsquo;affiche que les "
+"articles d&rsquo;une catégorie spécifique ou d&rsquo;un mois donné, à "
+"l&rsquo;aide du menu déroulant situé au-dessus de la liste. Cliquez sur le "
+"bouton &laquo;&nbsp;Filtrer&nbsp;&raquo; après avoir fait votre choix. Vous "
+"pouvez également affiner la liste en cliquant sur l&rsquo;auteur d&rsquo;un "
+"article, sa catégorie ou un mot-clef."
+
+#: wp-admin/edit.php:172 wp-admin/upload.php:159
 msgid "Available Actions"
 msgstr "Actions disponibles"
 
 #: wp-admin/edit.php:174
-msgid "Hovering over a row in the posts list will display action links that allow you to manage your post. You can perform the following actions:"
-msgstr "Passer la souris au-dessus d&rsquo;une ligne de la liste d&rsquo;articles, fera s&rsquo;afficher des liens vous permettant de gérer l&rsquo;article. Vous pouvez lancer les actions suivantes&nbsp;:"
+msgid ""
+"Hovering over a row in the posts list will display action links that allow "
+"you to manage your post. You can perform the following actions:"
+msgstr ""
+"Passer la souris au-dessus d&rsquo;une ligne de la liste d&rsquo;articles, "
+"fera s&rsquo;afficher des liens vous permettant de gérer l&rsquo;article. "
+"Vous pouvez lancer les actions suivantes&nbsp;:"
 
 #: wp-admin/edit.php:176
-msgid "<strong>Edit</strong> takes you to the editing screen for that post. You can also reach that screen by clicking on the post title."
-msgstr "<strong>Modifier</strong> vous envoie sur l&rsquo;écran de modification de cet article. Vous pouvez également vous rendre sur cet écran en cliquant sur le titre de l&rsquo;article."
+msgid ""
+"<strong>Edit</strong> takes you to the editing screen for that post. You can "
+"also reach that screen by clicking on the post title."
+msgstr ""
+"<strong>Modifier</strong> vous envoie sur l&rsquo;écran de modification de "
+"cet article. Vous pouvez également vous rendre sur cet écran en cliquant sur "
+"le titre de l&rsquo;article."
 
 #: wp-admin/edit.php:177
-msgid "<strong>Quick Edit</strong> provides inline access to the metadata of your post, allowing you to update post details without leaving this screen."
-msgstr "<strong>Modification Rapide</strong> vous donne un accès rapide aux métadonnées de votre article, vous permettant de mettre à jour certains détails sans devoir quitter la liste."
+msgid ""
+"<strong>Quick Edit</strong> provides inline access to the metadata of your "
+"post, allowing you to update post details without leaving this screen."
+msgstr ""
+"<strong>Modification Rapide</strong> vous donne un accès rapide aux "
+"métadonnées de votre article, vous permettant de mettre à jour certains "
+"détails sans devoir quitter la liste."
 
 #: wp-admin/edit.php:178
-msgid "<strong>Trash</strong> removes your post from this list and places it in the trash, from which you can permanently delete it."
-msgstr "<strong>Mettre à la Corbeille</strong> retire l&rsquo;article de la liste et le déplacer dans la Corbeille, d&rsquo;où vous pourrez le supprimer définitivement."
+msgid ""
+"<strong>Trash</strong> removes your post from this list and places it in the "
+"trash, from which you can permanently delete it."
+msgstr ""
+"<strong>Mettre à la Corbeille</strong> retire l&rsquo;article de la liste et "
+"le déplacer dans la Corbeille, d&rsquo;où vous pourrez le supprimer "
+"définitivement."
 
 #: wp-admin/edit.php:179
-msgid "<strong>Preview</strong> will show you what your draft post will look like if you publish it. View will take you to your live site to view the post. Which link is available depends on your post&#8217;s status."
-msgstr "<strong>Aperçu</strong> vous donnera une idée de ce à quoi votre brouillon ressemble si vous le publiez tel quel. <strong>Afficher</strong> vous enverra sur votre site, à l&rsquo;adresse de l&rsquo;article. L&rsquo;action disponible dépend de l&rsquo;état de votre article."
-
-#: wp-admin/edit.php:184
-#: wp-admin/includes/class-wp-list-table.php:293
+msgid ""
+"<strong>Preview</strong> will show you what your draft post will look like "
+"if you publish it. View will take you to your live site to view the post. "
+"Which link is available depends on your post&#8217;s status."
+msgstr ""
+"<strong>Aperçu</strong> vous donnera une idée de ce à quoi votre brouillon "
+"ressemble si vous le publiez tel quel. <strong>Afficher</strong> vous "
+"enverra sur votre site, à l&rsquo;adresse de l&rsquo;article. L&rsquo;action "
+"disponible dépend de l&rsquo;état de votre article."
+
+#: wp-admin/edit.php:184 wp-admin/includes/class-wp-list-table.php:294
 msgid "Bulk Actions"
 msgstr "Actions groupées"
 
 #: wp-admin/edit.php:186
-msgid "You can also edit or move multiple posts to the trash at once. Select the posts you want to act on using the checkboxes, then select the action you want to take from the Bulk Actions menu and click Apply."
-msgstr "Vous pouvez également modifier plusieurs articles à la fois, ou les déplacer dans la Corbeille d&rsquo;un coup. Sélectionnez les articles sur lesquels vous voulez lancer une action, puis sélectionnez l&rsquo;action que vous voulez lancer dans le menu &laquo;&nbsp;Actions groupées&nbsp;&raquo; et cliquez sur &laquo;&nbsp;Appliquer&nbsp;&raquo;."
+msgid ""
+"You can also edit or move multiple posts to the trash at once. Select the "
+"posts you want to act on using the checkboxes, then select the action you "
+"want to take from the Bulk Actions menu and click Apply."
+msgstr ""
+"Vous pouvez également modifier plusieurs articles à la fois, ou les déplacer "
+"dans la Corbeille d&rsquo;un coup. Sélectionnez les articles sur lesquels "
+"vous voulez lancer une action, puis sélectionnez l&rsquo;action que vous "
+"voulez lancer dans le menu &laquo;&nbsp;Actions groupées&nbsp;&raquo; et "
+"cliquez sur &laquo;&nbsp;Appliquer&nbsp;&raquo;."
 
 #: wp-admin/edit.php:187
-msgid "When using Bulk Edit, you can change the metadata (categories, author, etc.) for all selected posts at once. To remove a post from the grouping, just click the x next to its name in the Bulk Edit area that appears."
-msgstr "Vous pouvez également modifier plusieurs articles en même temps. Cochez les cases des articles que vous voulez modifier, sélectionnez l&rsquo;option &laquo;&nbsp;Modifier&nbsp;&raquo; du menu &laquo;&nbsp;Actions groupées&nbsp;&raquo;, et cliquez sur &laquo;&nbsp;Appliquer&nbsp;&raquo;. Vous pourrez alors d&rsquo;un coup modifier les métadonnées (catégories, auteur, etc.) pour tous les articles sélectionnés. Pour retirer un article de la sélection, cliquez simplement sur la croix à gauche de son titre dans la zone &laquo;&nbsp;Modifications groupées&nbsp;&raquo; qui apparaît."
+msgid ""
+"When using Bulk Edit, you can change the metadata (categories, author, etc.) "
+"for all selected posts at once. To remove a post from the grouping, just "
+"click the x next to its name in the Bulk Edit area that appears."
+msgstr ""
+"Vous pouvez également modifier plusieurs articles en même temps. Cochez les "
+"cases des articles que vous voulez modifier, sélectionnez l&rsquo;option "
+"&laquo;&nbsp;Modifier&nbsp;&raquo; du menu &laquo;&nbsp;Actions "
+"groupées&nbsp;&raquo;, et cliquez sur &laquo;&nbsp;Appliquer&nbsp;&raquo;. "
+"Vous pourrez alors d&rsquo;un coup modifier les métadonnées (catégories, "
+"auteur, etc.) pour tous les articles sélectionnés. Pour retirer un article "
+"de la sélection, cliquez simplement sur la croix à gauche de son titre dans "
+"la zone &laquo;&nbsp;Modifications groupées&nbsp;&raquo; qui apparaît."
 
 #: wp-admin/edit.php:192
-msgid "<a href=\"http://codex.wordpress.org/Posts_Screen\" target=\"_blank\">Documentation on Managing Posts</a>"
-msgstr "<a href=\"http://codex.wordpress.org/Posts_Screen\" target=\"_blank\">Documentation sur la gestion des articles (en)</a>"
+msgid ""
+"<a href=\"http://codex.wordpress.org/Posts_Screen\" target=\"_blank"
+"\">Documentation on Managing Posts</a>"
+msgstr ""
+"<a href=\"http://codex.wordpress.org/Posts_Screen\" target=\"_blank"
+"\">Documentation sur la gestion des articles (en)</a>"
 
 #: wp-admin/edit.php:201
-msgid "Pages are similar to posts in that they have a title, body text, and associated metadata, but they are different in that they are not part of the chronological blog stream, kind of like permanent posts. Pages are not categorized or tagged, but can have a hierarchy. You can nest pages under other pages by making one the &#8220;Parent&#8221; of the other, creating a group of pages."
-msgstr "Les pages sont comme des articles, en cela qu&rsquo;elles ont un titre, un contenu et des métadonnées associées&nbsp;; mais elles diffèrent en cela qu&rsquo;elles ne font pas partie du flux chronologique du blog - un peu comme des articles permanents. Les pages ne sont pas catégorisées et ne reçoivent pas de mots-clefs, mais peuvent disposer d&rsquo;une hiérarchie. En effet, vous pouvez imbriquer des pages sous d&rsquo;autres pages, faisant de ces dernières les &laquo;&nbsp;parentes&nbsp;&raquo; des premières, créant ainsi un groupement de pages."
+msgid ""
+"Pages are similar to posts in that they have a title, body text, and "
+"associated metadata, but they are different in that they are not part of the "
+"chronological blog stream, kind of like permanent posts. Pages are not "
+"categorized or tagged, but can have a hierarchy. You can nest pages under "
+"other pages by making one the &#8220;Parent&#8221; of the other, creating a "
+"group of pages."
+msgstr ""
+"Les pages sont comme des articles, en cela qu&rsquo;elles ont un titre, un "
+"contenu et des métadonnées associées&nbsp;; mais elles diffèrent en cela "
+"qu&rsquo;elles ne font pas partie du flux chronologique du blog - un peu "
+"comme des articles permanents. Les pages ne sont pas catégorisées et ne "
+"reçoivent pas de mots-clefs, mais peuvent disposer d&rsquo;une hiérarchie. "
+"En effet, vous pouvez imbriquer des pages sous d&rsquo;autres pages, faisant "
+"de ces dernières les &laquo;&nbsp;parentes&nbsp;&raquo; des premières, "
+"créant ainsi un groupement de pages."
 
 #: wp-admin/edit.php:205
 msgid "Managing Pages"
 msgstr "Gestion de pages"
 
 #: wp-admin/edit.php:207
-msgid "Managing pages is very similar to managing posts, and the screens can be customized in the same way."
-msgstr "La gestion des pages est très proche de celle des articles, et les écrans peuvent être personnalisés de la même manière."
+msgid ""
+"Managing pages is very similar to managing posts, and the screens can be "
+"customized in the same way."
+msgstr ""
+"La gestion des pages est très proche de celle des articles, et les écrans "
+"peuvent être personnalisés de la même manière."
 
 #: wp-admin/edit.php:208
-msgid "You can also perform the same types of actions, including narrowing the list by using the filters, acting on a page using the action links that appear when you hover over a row, or using the Bulk Actions menu to edit the metadata for multiple pages at once."
-msgstr "Vous pouvez également réaliser les mêmes sortes d&rsquo;actions, comme réduire la liste par le biais des filtres, en passant par les liens qui apparaissent quand la souris passe au-dessus d&rsquo;une ligne, ou en utilisant le menu &laquo;&nbsp;Actions groupées&nbsp;&raquo; pour modifier les métadonnées de plusieurs pages d&rsquo;un seul coup."
+msgid ""
+"You can also perform the same types of actions, including narrowing the list "
+"by using the filters, acting on a page using the action links that appear "
+"when you hover over a row, or using the Bulk Actions menu to edit the "
+"metadata for multiple pages at once."
+msgstr ""
+"Vous pouvez également réaliser les mêmes sortes d&rsquo;actions, comme "
+"réduire la liste par le biais des filtres, en passant par les liens qui "
+"apparaissent quand la souris passe au-dessus d&rsquo;une ligne, ou en "
+"utilisant le menu &laquo;&nbsp;Actions groupées&nbsp;&raquo; pour modifier "
+"les métadonnées de plusieurs pages d&rsquo;un seul coup."
 
 #: wp-admin/edit.php:213
-msgid "<a href=\"http://codex.wordpress.org/Pages_Screen\" target=\"_blank\">Documentation on Managing Pages</a>"
-msgstr "<a href=\"http://codex.wordpress.org/Pages_Screen\" target=\"_blank\">Documentation sur la gestion des pages (en)</a>"
-
-#: wp-admin/edit.php:234
+msgid ""
+"<a href=\"http://codex.wordpress.org/Pages_Screen\" target=\"_blank"
+"\">Documentation on Managing Pages</a>"
+msgstr ""
+"<a href=\"http://codex.wordpress.org/Pages_Screen\" target=\"_blank"
+"\">Documentation sur la gestion des pages (en)</a>"
+
+#: wp-admin/edit.php:237
 msgid "%s post updated."
 msgid_plural "%s posts updated."
 msgstr[0] "%s article mis à jour."
 msgstr[1] "%s articles mis à jour."
 
-#: wp-admin/edit.php:238
+#: wp-admin/edit.php:241
 msgid "%s item not updated, somebody is editing it."
 msgid_plural "%s items not updated, somebody is editing them."
-msgstr[0] "%s entrée n&rsquo;a pas été mise à jour&nbsp;: quelqu&rsquo;un est déjà en train de la modifier."
-msgstr[1] "%s entrées n&rsquo;ont pas été mises à jour&nbsp;: quelqu&rsquo;un est déjà en train de les modifier."
-
-#: wp-admin/edit.php:242
+msgstr[0] ""
+"%s entrée n&rsquo;a pas été mise à jour&nbsp;: quelqu&rsquo;un est déjà en "
+"train de la modifier."
+msgstr[1] ""
+"%s entrées n&rsquo;ont pas été mises à jour&nbsp;: quelqu&rsquo;un est déjà "
+"en train de les modifier."
+
+#: wp-admin/edit.php:245
 msgid "Item permanently deleted."
 msgid_plural "%s items permanently deleted."
 msgstr[0] "Élément définitivement supprimé."
 msgstr[1] "%s éléments définitivement supprimés."
 
-#: wp-admin/edit.php:246
+#: wp-admin/edit.php:249
 msgid "Item moved to the Trash."
 msgid_plural "%s items moved to the Trash."
 msgstr[0] "Élément déplacé dans la corbeille."
 msgstr[1] "%s éléments déplacés dans la corbeille."
 
-#: wp-admin/edit.php:252
+#: wp-admin/edit.php:255
 msgid "Item restored from the Trash."
 msgid_plural "%s items restored from the Trash."
 msgstr[0] "Élément récupéré depuis la Corbeille."
 msgstr[1] "%s éléments récupérés depuis la Corbeille."
 
 #: wp-admin/export.php:13
-msgid "You do not have sufficient permissions to export the content of this site."
-msgstr "Vous n&rsquo;avez pas les droits suffisants pour exporter le contenu de ce site."
-
-#: wp-admin/export.php:17
-#: wp-admin/menu.php:192
+msgid ""
+"You do not have sufficient permissions to export the content of this site."
+msgstr ""
+"Vous n&rsquo;avez pas les droits suffisants pour exporter le contenu de ce "
+"site."
+
+#: wp-admin/export.php:17 wp-admin/menu.php:204
 msgid "Export"
 msgstr "Exporter"
 
-#: wp-admin/export.php:44
-msgid "You can export a file of your site&#8217;s content in order to import it into another installation or platform. The export file will be an XML file format called WXR. Posts, pages, comments, custom fields, categories, and tags can be included. You can choose for the WXR file to include only certain posts or pages by setting the dropdown filters to limit the export by category, author, date range by month, or publishing status."
-msgstr "Vous pouvez exporter le contenu de votre site dans un fichier, afin de l&rsquo;importer dans une autre installation autonome ou une plate-forme. Le fichier d&rsquo;export utilise un format de type XML, baptisé WXR. Il peut contenir vos articles, pages, commentaires, champs personnalisés, catégories et mots-clefs. Vous pouvez utiliser des filtres pour que le fichier WXR ne contienne les articles que d&rsquo;une certaine plage de dates (par mois), un auteur donné, une catégorie précise, ou des états de publication."
-
-#: wp-admin/export.php:45
-msgid "Once generated, your WXR file can be imported by another WordPress site or by another blogging platform able to access this format."
-msgstr "Une fois généré, le fichier WXR peut être importé dans une autre installation WordPress, ou une autre plate-forme de blog capable de lire ce format."
+#: wp-admin/export.php:49
+msgid ""
+"You can export a file of your site&#8217;s content in order to import it "
+"into another installation or platform. The export file will be an XML file "
+"format called WXR. Posts, pages, comments, custom fields, categories, and "
+"tags can be included. You can choose for the WXR file to include only "
+"certain posts or pages by setting the dropdown filters to limit the export "
+"by category, author, date range by month, or publishing status."
+msgstr ""
+"Vous pouvez exporter le contenu de votre site dans un fichier, afin de "
+"l&rsquo;importer dans une autre installation autonome ou une plate-forme. Le "
+"fichier d&rsquo;export utilise un format de type XML, baptisé WXR. Il peut "
+"contenir vos articles, pages, commentaires, champs personnalisés, catégories "
+"et mots-clefs. Vous pouvez utiliser des filtres pour que le fichier WXR ne "
+"contienne les articles que d&rsquo;une certaine plage de dates (par mois), "
+"un auteur donné, une catégorie précise, ou des états de publication."
 
 #: wp-admin/export.php:50
-msgid "<a href=\"http://codex.wordpress.org/Tools_Export_Screen\" target=\"_blank\">Documentation on Export</a>"
-msgstr "<a href=\"http://codex.wordpress.org/Tools_Export_Screen\" target=\"_blank\">Documentation sur l&rsquo;exportation (en)</a>"
-
-#: wp-admin/export.php:126
-msgid "When you click the button below WordPress will create an XML file for you to save to your computer."
-msgstr "Cliquez sur ce bouton pour que WordPress crée un fichier XML que vous pourrez enregistrer sur votre ordinateur."
-
-#: wp-admin/export.php:127
-msgid "This format, which we call WordPress eXtended RSS or WXR, will contain your posts, pages, comments, custom fields, categories, and tags."
-msgstr "Ce format, que nous appelons WordPress eXtended RSS (ou WXR), contient tous vos articles, pages, commentaires, champs personnalisés, catégories et mots-clefs."
-
-#: wp-admin/export.php:128
-msgid "Once you&#8217;ve saved the download file, you can use the Import function in another WordPress installation to import the content from this site."
-msgstr "Une fois que le fichier téléchargé a été enregistré, vous pouvez utiliser la fonction Importer d&rsquo;un autre site WordPress pour importer ce fichier dans cet autre site."
-
-#: wp-admin/export.php:130
-msgid "Choose what to export"
-msgstr "Choisissez ce que vous souhaitez exporter"
+msgid ""
+"Once generated, your WXR file can be imported by another WordPress site or "
+"by another blogging platform able to access this format."
+msgstr ""
+"Une fois généré, le fichier WXR peut être importé dans une autre "
+"installation WordPress, ou une autre plate-forme de blog capable de lire ce "
+"format."
+
+#: wp-admin/export.php:55
+msgid ""
+"<a href=\"http://codex.wordpress.org/Tools_Export_Screen\" target=\"_blank"
+"\">Documentation on Export</a>"
+msgstr ""
+"<a href=\"http://codex.wordpress.org/Tools_Export_Screen\" target=\"_blank"
+"\">Documentation sur l&rsquo;exportation (en)</a>"
 
 #: wp-admin/export.php:133
-msgid "All content"
-msgstr "Tout le contenu"
+msgid ""
+"When you click the button below WordPress will create an XML file for you to "
+"save to your computer."
+msgstr ""
+"Cliquez sur ce bouton pour que WordPress crée un fichier XML que vous "
+"pourrez enregistrer sur votre ordinateur."
 
 #: wp-admin/export.php:134
-msgid "This will contain all of your posts, pages, comments, custom fields, terms, navigation menus and custom posts."
-msgstr "Il contiendra tous vos articles, pages, commentaires, champs personnalisés, termes, menus de navigation et types de contenus personnalisés."
-
-#: wp-admin/export.php:136
-#: wp-admin/includes/class-wp-terms-list-table.php:109
-#: wp-admin/includes/class-wp-users-list-table.php:167
-#: wp-admin/menu.php:42
+msgid ""
+"This format, which we call WordPress eXtended RSS or WXR, will contain your "
+"posts, pages, comments, custom fields, categories, and tags."
+msgstr ""
+"Ce format, que nous appelons WordPress eXtended RSS (ou WXR), contient tous "
+"vos articles, pages, commentaires, champs personnalisés, catégories et mots-"
+"clefs."
+
+#: wp-admin/export.php:135
+msgid ""
+"Once you&#8217;ve saved the download file, you can use the Import function "
+"in another WordPress installation to import the content from this site."
+msgstr ""
+"Une fois que le fichier téléchargé a été enregistré, vous pouvez utiliser la "
+"fonction Importer d&rsquo;un autre site WordPress pour importer ce fichier "
+"dans cet autre site."
+
+#: wp-admin/export.php:137
+msgid "Choose what to export"
+msgstr "Choisissez ce que vous souhaitez exporter"
+
+#: wp-admin/export.php:140
+msgid "All content"
+msgstr "Tout le contenu"
+
+#: wp-admin/export.php:141
+msgid ""
+"This will contain all of your posts, pages, comments, custom fields, terms, "
+"navigation menus and custom posts."
+msgstr ""
+"Il contiendra tous vos articles, pages, commentaires, champs personnalisés, "
+"termes, menus de navigation et types de contenus personnalisés."
+
+#: wp-admin/export.php:143 wp-admin/includes/class-wp-terms-list-table.php:108
+#: wp-admin/includes/class-wp-users-list-table.php:169 wp-admin/menu.php:49
 msgid "Posts"
 msgstr "Articles"
 
-#: wp-admin/export.php:139
+#: wp-admin/export.php:146
 msgid "Categories:"
 msgstr "Catégories&nbsp;:"
 
-#: wp-admin/export.php:143
-#: wp-admin/export.php:175
+#: wp-admin/export.php:150 wp-admin/export.php:182
 msgid "Authors:"
 msgstr "Auteur&nbsp;:"
 
-#: wp-admin/export.php:150
-#: wp-admin/export.php:182
+#: wp-admin/export.php:157 wp-admin/export.php:189
 msgid "Date range:"
 msgstr "Date de création&nbsp;:"
 
-#: wp-admin/export.php:152
-#: wp-admin/export.php:184
+#: wp-admin/export.php:159 wp-admin/export.php:191
 msgid "Start Date"
 msgstr "Date de début"
 
-#: wp-admin/export.php:156
-#: wp-admin/export.php:188
+#: wp-admin/export.php:163 wp-admin/export.php:195
 msgid "End Date"
 msgstr "Date de fin"
 
-#: wp-admin/export.php:161
-#: wp-admin/export.php:193
-#: wp-admin/includes/meta-boxes.php:60
+#: wp-admin/export.php:168 wp-admin/export.php:200
+#: wp-admin/includes/meta-boxes.php:58
 msgid "Status:"
 msgstr "État&nbsp;:"
 
-#: wp-admin/export.php:207
+#: wp-admin/export.php:216
 msgid "Download Export File"
 msgstr "Télécharger le fichier d&rsquo;export"
 
 #: wp-admin/freedoms.php:36
-msgid "WordPress is Free and open source software, built by a distributed community of mostly volunteer developers from around the world. WordPress comes with some awesome, worldview-changing rights courtesy of its <a href=\"%s\">license</a>, the GPL."
-msgstr "WordPress est un logiciel libre et au code ouvert (open-source), conçu par une communauté de développeurs majoritairement volontaires, partout dans le monde. WordPress est livré avec des libertés formidables et qui changent la vision du monde, grâce à sa <a href=\"%s\">licence</a>, la GPL."
+msgid ""
+"WordPress is Free and open source software, built by a distributed community "
+"of mostly volunteer developers from around the world. WordPress comes with "
+"some awesome, worldview-changing rights courtesy of its <a href=\"%s"
+"\">license</a>, the GPL."
+msgstr ""
+"WordPress est un logiciel libre et au code ouvert (open-source), conçu par "
+"une communauté de développeurs majoritairement volontaires, partout dans le "
+"monde. WordPress est livré avec des libertés formidables et qui changent la "
+"vision du monde, grâce à sa <a href=\"%s\">licence</a>, la GPL."
 
 #: wp-admin/freedoms.php:39
 msgid "You have the freedom to run the program, for any purpose."
-msgstr "Vous êtes libre de modifier ce programme, dans n&rsquo;importe quel but."
+msgstr ""
+"Vous êtes libre de modifier ce programme, dans n&rsquo;importe quel but."
 
 #: wp-admin/freedoms.php:40
-msgid "You have access to the source code, the freedom to study how the program works, and the freedom to change it to make it do what you wish."
-msgstr "Vous avez accès au code source, êtes libres d&rsquo;étudier la manière dont le programme fonctionne, et libres de le modifier pour en faire ce que vous souhaitez."
+msgid ""
+"You have access to the source code, the freedom to study how the program "
+"works, and the freedom to change it to make it do what you wish."
+msgstr ""
+"Vous avez accès au code source, êtes libres d&rsquo;étudier la manière dont "
+"le programme fonctionne, et libres de le modifier pour en faire ce que vous "
+"souhaitez."
 
 #: wp-admin/freedoms.php:41
-msgid "You have the freedom to redistribute copies of the original program so you can help your neighbor."
-msgstr "Vous êtes libres de redistribuer des copies du programme original, afin d&rsquo;aider votre prochain."
+msgid ""
+"You have the freedom to redistribute copies of the original program so you "
+"can help your neighbor."
+msgstr ""
+"Vous êtes libres de redistribuer des copies du programme original, afin "
+"d&rsquo;aider votre prochain."
 
 #: wp-admin/freedoms.php:42
-msgid "You have the freedom to distribute copies of your modified versions to others. By doing this you can give the whole community a chance to benefit from your changes."
-msgstr "Vous êtes libres de distribuer à autrui des copies de votre propre version modifiée de ce programme. Ce faisant, vous offrez à la communauté la possibilité de profiter de vos modifications."
+msgid ""
+"You have the freedom to distribute copies of your modified versions to "
+"others. By doing this you can give the whole community a chance to benefit "
+"from your changes."
+msgstr ""
+"Vous êtes libres de distribuer à autrui des copies de votre propre version "
+"modifiée de ce programme. Ce faisant, vous offrez à la communauté la "
+"possibilité de profiter de vos modifications."
 
 #: wp-admin/freedoms.php:45
-msgid "WordPress grows when people like you tell their friends about it, and the thousands of businesses and services that are built on and around WordPress share that fact with their users. We&#8217;re flattered every time someone spreads the good word, just make sure to <a href=\"%s\">check out our trademark guidelines</a> first."
-msgstr "WordPress croît à chaque fois que vous en parlez à vos amis, et cela est également vrai pour les milliers de sociétés et services dans le monde construits à l&rsquo;aide de ou autour de WordPress. Nous sommes flattés chaque fois que quelqu&rsquo;un vante les mérites de cet outil&nbsp;; veillez cependant à respecter les <a href=\"%s\">conseils d&rsquo;utilisation de notre marque déposée</a>."
+msgid ""
+"WordPress grows when people like you tell their friends about it, and the "
+"thousands of businesses and services that are built on and around WordPress "
+"share that fact with their users. We&#8217;re flattered every time someone "
+"spreads the good word, just make sure to <a href=\"%s\">check out our "
+"trademark guidelines</a> first."
+msgstr ""
+"WordPress croît à chaque fois que vous en parlez à vos amis, et cela est "
+"également vrai pour les milliers de sociétés et services dans le monde "
+"construits à l&rsquo;aide de ou autour de WordPress. Nous sommes flattés "
+"chaque fois que quelqu&rsquo;un vante les mérites de cet outil&nbsp;; "
+"veillez cependant à respecter les <a href=\"%s\">conseils d&rsquo;"
+"utilisation de notre marque déposée</a>."
 
 #: wp-admin/freedoms.php:52
-msgid "Every plugin and theme in WordPress.org&#8217;s directory is 100%% GPL or a similarly free and compatible license, so you can feel safe finding <a href=\"%1$s\">plugins</a> and <a href=\"%2$s\">themes</a> there. If you get a plugin or theme from another source, make sure to <a href=\"%3$s\">ask them if it&#8217;s GPL</a> first. If they don&#8217;t respect the WordPress license, we don&#8217;t recommend them."
-msgstr "Tous les thèmes et extensions disponibles sur le répertoire de WordPress.org respectent à 100%% la licence GPL, ou une licence libre et compatible. Ainsi, vous pouvez en toute sûreté y chercher des <a href=\"%1$s\">extensions</a> et des <a href=\"%2$s\">thèmes</a>. Si vous téléchargez une extension ou un thème en provenance d&rsquo;une autre source, vérifiez bien qu&rsquo;il respecte la <a href=\"%3$s\">licence GPL</a>. Si ce n&rsquo;est pas le cas, l&rsquo;équipe de WordPress ne vous le recommande alors pas."
+msgid ""
+"Every plugin and theme in WordPress.org&#8217;s directory is 100%% GPL or a "
+"similarly free and compatible license, so you can feel safe finding <a href="
+"\"%1$s\">plugins</a> and <a href=\"%2$s\">themes</a> there. If you get a "
+"plugin or theme from another source, make sure to <a href=\"%3$s\">ask them "
+"if it&#8217;s GPL</a> first. If they don&#8217;t respect the WordPress "
+"license, we don&#8217;t recommend them."
+msgstr ""
+"Tous les thèmes et extensions disponibles sur le répertoire de WordPress.org "
+"respectent à 100%% la licence GPL, ou une licence libre et compatible. "
+"Ainsi, vous pouvez en toute sûreté y chercher des <a href=\"%1$s"
+"\">extensions</a> et des <a href=\"%2$s\">thèmes</a>. Si vous téléchargez "
+"une extension ou un thème en provenance d&rsquo;une autre source, vérifiez "
+"bien qu&rsquo;il respecte la <a href=\"%3$s\">licence GPL</a>. Si ce n&rsquo;"
+"est pas le cas, l&rsquo;équipe de WordPress ne vous le recommande alors pas."
 
 #: wp-admin/freedoms.php:54
-msgid "Don&#8217;t you wish all software came with these freedoms? So do we! For more information, check out the <a href=\"http://www.fsf.org/\">Free Software Foundation</a>."
-msgstr "Ne préféreriez-vous pas que tous vos logiciels vous donnent autant de liberté&nbsp;? Nous aussi&nbsp;! Pour obtenir plus d&rsquo;information, rendez-vous sur le site de la <a href=\"http://www.fsf.org/\">Free Software Foundation</a>, ou en français, ceux de l&rsquo;<a href=\"http://www.april.org/\">April</a> et de l&rsquo;<a href=\"http://aful.org/\">Aful</a>."
+msgid ""
+"Don&#8217;t you wish all software came with these freedoms? So do we! For "
+"more information, check out the <a href=\"http://www.fsf.org/\">Free "
+"Software Foundation</a>."
+msgstr ""
+"Ne préféreriez-vous pas que tous vos logiciels vous donnent autant de "
+"liberté&nbsp;? Nous aussi&nbsp;! Pour obtenir plus d&rsquo;informations, "
+"rendez-vous sur le site de la <a href=\"http://www.fsf.org/\">Free Software "
+"Foundation</a>, ou en français, ceux de l&rsquo;<a href=\"http://www.april."
+"org/\">April</a> et de l&rsquo;<a href=\"http://aful.org/\">Aful</a>."
 
 #: wp-admin/import.php:15
 msgid "You do not have sufficient permissions to import content in this site."
-msgstr "Vous n&rsquo;avez pas les droits suffisants pour importer du contenu dans ce site."
+msgstr ""
+"Vous n&rsquo;avez pas les droits suffisants pour importer du contenu dans ce "
+"site."
 
 #: wp-admin/import.php:22
-msgid "This screen lists links to plugins to import data from blogging/content management platforms. Choose the platform you want to import from, and click Install Now when you are prompted in the popup window. If your platform is not listed, click the link to search the plugin directory for other importer plugins to see if there is one for your platform."
-msgstr "Cet écran liste les liens vers les extensions servant à importer des données en provenance d&rsquo;autres plates-formes de blogs ou gestionnaires de contenus. Choisissez la plate-forme d&rsquo;origine, et cliquez sur &laquo;&nbsp;Installer maintenant&nbsp;&raquo; dans la fenêtre qui s&rsquo;affiche. Si vous ne trouvez pas votre plate-forme, cliquez sur le lien &laquo;&nbsp;Recherche&nbsp;&raquo; dans le Dépôt d&rsquo;Extensions et lancez une recherche - peut-être qu&rsquo;une autre extension répondra à vos attentes."
+msgid ""
+"This screen lists links to plugins to import data from blogging/content "
+"management platforms. Choose the platform you want to import from, and click "
+"Install Now when you are prompted in the popup window. If your platform is "
+"not listed, click the link to search the plugin directory for other importer "
+"plugins to see if there is one for your platform."
+msgstr ""
+"Cet écran liste les liens vers les extensions servant à importer des données "
+"en provenance d&rsquo;autres plates-formes de blogs ou gestionnaires de "
+"contenus. Choisissez la plate-forme d&rsquo;origine, et cliquez sur &laquo;"
+"&nbsp;Installer maintenant&nbsp;&raquo; dans la fenêtre qui s&rsquo;affiche. "
+"Si vous ne trouvez pas votre plate-forme, cliquez sur le lien &laquo;&nbsp;"
+"Recherche&nbsp;&raquo; dans le Dépôt d&rsquo;Extensions et lancez une "
+"recherche - peut-être qu&rsquo;une autre extension répondra à vos attentes."
 
 #: wp-admin/import.php:23
-msgid "In previous versions of WordPress, all importers were built-in. They have been turned into plugins since most people only use them once or infrequently."
-msgstr "Dans les versions précédentes de WordPress, tous les importateurs étaient directement inclus&nbsp. Nous les avons convertis en extensions, car la plupart des gens ne s&rsquo;en servent que très rarement, voire une seule fois."
+msgid ""
+"In previous versions of WordPress, all importers were built-in. They have "
+"been turned into plugins since most people only use them once or "
+"infrequently."
+msgstr ""
+"Dans les versions précédentes de WordPress, tous les importateurs étaient "
+"directement inclus&nbsp. Nous les avons convertis en extensions, car la "
+"plupart des gens ne s&rsquo;en servent que très rarement, voire une seule "
+"fois."
 
 #: wp-admin/import.php:28
-msgid "<a href=\"http://codex.wordpress.org/Tools_Import_Screen\" target=\"_blank\">Documentation on Import</a>"
-msgstr "<a href=\"http://codex.wordpress.org/Tools_Import_Screen\" target=\"_blank\">Documentation sur l&rsquo;importation (en)</a>"
-
-#: wp-admin/import.php:35
-msgid "Blogger"
-msgstr "Blogger"
-
-#: wp-admin/import.php:35
-msgid "Install the Blogger importer to import posts, comments, and users from a Blogger blog."
-msgstr "Installer l&rsquo;importateur Blogger, pour importer les articles, commentaires et utilisateurs d&rsquo;un blog Blogger."
-
-#: wp-admin/import.php:36
-#: wp-admin/tools.php:21
-#: wp-admin/tools.php:60
-msgid "Categories and Tags Converter"
-msgstr "Convertisseur de catégories et mots-clefs"
-
-#: wp-admin/import.php:36
-msgid "Install the category/tag converter to convert existing categories to tags or tags to categories, selectively."
-msgstr "Installer le convertisseur catégorie/mot-clef, pour convertir les catégories en mots-clefs, ou vice-versa."
-
-#: wp-admin/import.php:37
-msgid "LiveJournal"
-msgstr "LiveJournal"
-
-#: wp-admin/import.php:37
-msgid "Install the LiveJournal importer to import posts from LiveJournal using their API."
-msgstr "Installer l&rsquo;importateur LiveJournal, pour importer les articles depuis un blog LiveJournal en utilisant leur API."
-
-#: wp-admin/import.php:38
-msgid "Movable Type and TypePad"
-msgstr "Movable Type et TypePad"
-
-#: wp-admin/import.php:38
-msgid "Install the Movable Type importer to import posts and comments from a Movable Type or TypePad blog."
-msgstr "Installer l&rsquo;importateur Movable Type, pour importer les articles et commentaires en provenance d&rsquo;un blog Movable Type ou TypePad."
-
-#: wp-admin/import.php:39
-#: wp-admin/includes/upgrade.php:127
-msgid "Blogroll"
-msgstr "Liens"
-
-#: wp-admin/import.php:39
-msgid "Install the blogroll importer to import links in OPML format."
-msgstr "Installer l&rsquo;importateur de blogoliste, pour importer une liste de liens au format OPML."
-
-#: wp-admin/import.php:40
-msgid "Install the RSS importer to import posts from an RSS feed."
-msgstr "Installer l&rsquo;importateur RSS, pour importer des articles à partir d&rsquo;un flux RSS."
-
-#: wp-admin/import.php:41
-msgid "Tumblr"
-msgstr "Tumblr"
-
-#: wp-admin/import.php:41
-msgid "Install the Tumblr importer to import posts &amp; media from Tumblr using their API."
-msgstr "Installer l&rsquo;importateur Tumblr pour importer les articles et fichiers média depuis un Tumblr en utilisant leur API."
-
-#: wp-admin/import.php:42
-msgid "Install the WordPress importer to import posts, pages, comments, custom fields, categories, and tags from a WordPress export file."
-msgstr "Installer l&rsquo;importateur WordPress, pour importer les articles, pages, commentaires, champs personnalisés, catégories et mots-clefs à partir d&rsquo;un fichier d&rsquo;export WordPress."
-
-#: wp-admin/import.php:61
+msgid ""
+"<a href=\"http://codex.wordpress.org/Tools_Import_Screen\" target=\"_blank"
+"\">Documentation on Import</a>"
+msgstr ""
+"<a href=\"http://codex.wordpress.org/Tools_Import_Screen\" target=\"_blank"
+"\">Documentation sur l&rsquo;importation (en)</a>"
+
+#: wp-admin/import.php:58 wp-admin/users.php:222
 msgid "ERROR:"
 msgstr "ERREUR&nbsp;:"
 
-#: wp-admin/import.php:61
+#: wp-admin/import.php:58
 msgid "The <strong>%s</strong> importer is invalid or is not installed."
-msgstr "L&rsquo;importateur <strong>%s</strong> est invalide ou n&rsquo;est pas installé."
-
-#: wp-admin/import.php:63
-msgid "If you have posts or comments in another system, WordPress can import those into this site. To get started, choose a system to import from below:"
-msgstr "Si vous avez des articles ou des commentaires dans un autre système de site, WordPress peut les importer dans votre site actuel. Pour commencer, choisissez un système d&rsquo;origine ci-dessous&nbsp;:"
-
-#: wp-admin/import.php:80
+msgstr ""
+"L&rsquo;importateur <strong>%s</strong> est invalide ou n&rsquo;est pas "
+"installé."
+
+#: wp-admin/import.php:60
+msgid ""
+"If you have posts or comments in another system, WordPress can import those "
+"into this site. To get started, choose a system to import from below:"
+msgstr ""
+"Si vous avez des articles ou des commentaires dans un autre système de site, "
+"WordPress peut les importer dans votre site actuel. Pour commencer, "
+"choisissez un système d&rsquo;origine ci-dessous&nbsp;:"
+
+#: wp-admin/import.php:76
 msgid "No importers are available."
 msgstr "Aucun outil d&rsquo;importation n&rsquo;est disponible."
 
-#: wp-admin/import.php:100
+#: wp-admin/import.php:95
 msgid "Activate importer"
 msgstr "Activer l&rsquo;importateur"
 
-#: wp-admin/import.php:107
+#: wp-admin/import.php:102
 msgid "Install importer"
 msgstr "Installer l&rsquo;importateur"
 
-#: wp-admin/import.php:110
-msgid "This importer is not installed. Please install importers from <a href=\"%s\">the main site</a>."
-msgstr "Cet importateur n&rsquo;est pas installé. Veuillez installer les importateurs depuis <a href=\"%s\">le site principal</a>."
-
-#: wp-admin/import.php:132
-msgid "If the importer you need is not listed, <a href=\"%s\">search the plugin directory</a> to see if an importer is available."
-msgstr "Si l&rsquo;importateur dont vous avec besoin n&rsquo;est pas présent, <a href=\"%s\">lancez une recherche dans le dépôt d&rsquo;extensions</a> pour voir s&rsquo;il s&rsquo;y trouve."
+#: wp-admin/import.php:105
+msgid ""
+"This importer is not installed. Please install importers from <a href=\"%s"
+"\">the main site</a>."
+msgstr ""
+"Cet importateur n&rsquo;est pas installé. Veuillez installer les "
+"importateurs depuis <a href=\"%s\">le site principal</a>."
+
+#: wp-admin/import.php:126
+msgid ""
+"If the importer you need is not listed, <a href=\"%s\">search the plugin "
+"directory</a> to see if an importer is available."
+msgstr ""
+"Si l&rsquo;importateur dont vous avec besoin n&rsquo;est pas présent, <a "
+"href=\"%s\">lancez une recherche dans le dépôt d&rsquo;extensions</a> pour "
+"voir s&rsquo;il s&rsquo;y trouve."
 
 #: wp-admin/includes/ajax-actions.php:19
-msgid "<strong>ALERT: You are logged out!</strong> Could not save draft. <a href=\"%s\" target=\"_blank\">Please log in again.</a>"
-msgstr "<strong>ALERTE&nbsp;: vous êtes déconnecté(e)&nbsp;!</strong> Impossible d&rsquo;enregistrer le brouillon. <a href=\"%s\" target=\"_blank\">Veuillez vous reconnecter.</a>"
+msgid ""
+"<strong>ALERT: You are logged out!</strong> Could not save draft. <a href="
+"\"%s\" target=\"_blank\">Please log in again.</a>"
+msgstr ""
+"<strong>ALERTE&nbsp;: vous êtes déconnecté(e)&nbsp;!</strong> Impossible "
+"d&rsquo;enregistrer le brouillon. <a href=\"%s\" target=\"_blank\">Veuillez "
+"vous reconnecter.</a>"
 
 #. translators: 1: user_login, 2: user_email
-#: wp-admin/includes/ajax-actions.php:187
+#: wp-admin/includes/ajax-actions.php:182
 msgid "%1$s (%2$s)"
 msgstr "%1$s (%2$s)"
 
-#: wp-admin/includes/ajax-actions.php:272
-#: wp-admin/includes/class-wp-list-table.php:489
-#: wp-admin/includes/class-wp-list-table.php:890
+#: wp-admin/includes/ajax-actions.php:267
+#: wp-admin/includes/class-wp-list-table.php:490
+#: wp-admin/includes/class-wp-list-table.php:894
 msgid "1 item"
 msgid_plural "%s items"
 msgstr[0] "1 élément"
 msgstr[1] "%s éléments"
 
-#: wp-admin/includes/ajax-actions.php:530
+#: wp-admin/includes/ajax-actions.php:525
 msgid "Comment %d does not exist"
 msgstr "Le commentaire %d n&rsquo;existe pas."
 
-#: wp-admin/includes/ajax-actions.php:607
-#: wp-admin/includes/ajax-actions.php:1542
+#: wp-admin/includes/ajax-actions.php:602
+#: wp-admin/includes/ajax-actions.php:1532
 msgid "An error has occurred. Please reload the page and try again."
-msgstr "Une erreur est survenue. Veuillez recharger la page et faire une nouvelle tentative."
-
-#: wp-admin/includes/ajax-actions.php:661
+msgstr ""
+"Une erreur est survenue. Veuillez recharger la page et faire une nouvelle "
+"tentative."
+
+#: wp-admin/includes/ajax-actions.php:654
 msgid "No tags found!"
 msgstr "Aucun mot-clef trouvé&nbsp;!"
 
-#: wp-admin/includes/ajax-actions.php:737
+#: wp-admin/includes/ajax-actions.php:726
 msgid "ERROR: you are replying to a comment on a draft post."
-msgstr "ERREUR&nbsp;: vous être en train de laisser un commentaire sur un brouillon."
-
-#: wp-admin/includes/ajax-actions.php:753
+msgstr ""
+"ERREUR&nbsp;: vous être en train de laisser un commentaire sur un brouillon."
+
+#: wp-admin/includes/ajax-actions.php:742
 msgid "Sorry, you must be logged in to reply to a comment."
 msgstr "Désolé, vous devez être connecté(e) pour répondre à un commentaire."
 
-#: wp-admin/includes/ajax-actions.php:757
-#: wp-admin/includes/ajax-actions.php:821
+#: wp-admin/includes/ajax-actions.php:746
+#: wp-admin/includes/ajax-actions.php:808
 msgid "ERROR: please type a comment."
 msgstr "ERREUR&nbsp;: veuillez saisir un commentaire."
 
-#: wp-admin/includes/ajax-actions.php:952
-#: wp-admin/includes/ajax-actions.php:957
-#: wp-admin/includes/ajax-actions.php:977
+#: wp-admin/includes/ajax-actions.php:939
+#: wp-admin/includes/ajax-actions.php:944
+#: wp-admin/includes/ajax-actions.php:964
 msgid "Please provide a custom field value."
 msgstr "Veuillez saisir une valeur pour le champ personnalisé."
 
-#: wp-admin/includes/ajax-actions.php:975
+#: wp-admin/includes/ajax-actions.php:962
 msgid "Please provide a custom field name."
 msgstr "Veuillez saisir un nom pour le champ personnalisé."
 
-#: wp-admin/includes/ajax-actions.php:1030
+#: wp-admin/includes/ajax-actions.php:1019
 msgid "User <a href=\"#%s\">%s</a> added"
 msgstr "Utilisateur <a href=\"#%s\">%s</a> ajouté"
 
 #. translators: draft saved date format, see http:php.net/date
-#: wp-admin/includes/ajax-actions.php:1053
+#: wp-admin/includes/ajax-actions.php:1042
 msgid "g:i:s a"
-msgstr ""
-"G \\h i \\m\\i\\n"
-" s \\s"
+msgstr "G \\h i \\m\\i\\n s \\s"
 
 #. translators: %s: date and time
-#: wp-admin/includes/ajax-actions.php:1055
+#: wp-admin/includes/ajax-actions.php:1044
 msgid "Draft saved at %s."
 msgstr "Brouillon enregistré à %s."
 
-#: wp-admin/includes/ajax-actions.php:1059
-msgid "Your login has expired. Please open a new browser window and <a href=\"%s\" target=\"_blank\">log in again</a>. "
-msgstr "Votre connexion a expiré. Veuillez ouvrir une nouvelle fenêtre de votre navigateur et <a href=\"%s\" target=\"_blank\">vous reconnecter</a>. "
-
-#: wp-admin/includes/ajax-actions.php:1073
-#: wp-admin/includes/ajax-actions.php:1335
+#: wp-admin/includes/ajax-actions.php:1048
+msgid ""
+"Your login has expired. Please open a new browser window and <a href=\"%s\" "
+"target=\"_blank\">log in again</a>. "
+msgstr ""
+"Votre connexion a expiré. Veuillez ouvrir une nouvelle fenêtre de votre "
+"navigateur et <a href=\"%s\" target=\"_blank\">vous reconnecter</a>. "
+
+#: wp-admin/includes/ajax-actions.php:1062
+#: wp-admin/includes/ajax-actions.php:1322
 msgid "Someone"
 msgstr "Quelqu&rsquo;un"
 
-#: wp-admin/includes/ajax-actions.php:1074
+#: wp-admin/includes/ajax-actions.php:1063
 msgid "Autosave disabled."
 msgstr "Sauvegarde automatique désactivée."
 
-#: wp-admin/includes/ajax-actions.php:1077
-msgid "%s is currently editing this article. If you update it, you will overwrite the changes."
-msgstr "%s est en train de modifier cet article. Si vous le modifiez, vous annulerez ses modifications."
-
-#: wp-admin/includes/ajax-actions.php:1082
-#: wp-admin/includes/ajax-actions.php:1325
-#: wp-admin/includes/post.php:156
-#: wp-admin/includes/post.php:1317
+#: wp-admin/includes/ajax-actions.php:1066
+msgid ""
+"%s is currently editing this article. If you update it, you will overwrite "
+"the changes."
+msgstr ""
+"%s est en train de modifier cet article. Si vous le modifiez, vous annulerez "
+"ses modifications."
+
+#: wp-admin/includes/ajax-actions.php:1071
+#: wp-admin/includes/ajax-actions.php:1314 wp-admin/includes/post.php:166
+#: wp-admin/includes/post.php:1284
 msgid "You are not allowed to edit this page."
 msgstr "Vous n&rsquo;avez pas l&rsquo;autorisation de modifier cette page."
 
-#: wp-admin/includes/ajax-actions.php:1085
-#: wp-admin/includes/ajax-actions.php:1328
-#: wp-admin/includes/post.php:158
-#: wp-admin/includes/post.php:1320
-#: wp-admin/press-this.php:35
+#: wp-admin/includes/ajax-actions.php:1074
+#: wp-admin/includes/ajax-actions.php:1317 wp-admin/includes/post.php:168
+#: wp-admin/includes/post.php:1287 wp-admin/press-this.php:35
 #: wp-admin/upload.php:62
 msgid "You are not allowed to edit this post."
 msgstr "Vous n&rsquo;avez pas l&rsquo;autorisation de modifier cet article."
 
-#: wp-admin/includes/ajax-actions.php:1336
+#: wp-admin/includes/ajax-actions.php:1323
 msgid "Saving is disabled: %s is currently editing this page."
-msgstr "Enregistrement automatique désactivé&nbsp;: %s modifie actuellement cette page."
-
-#: wp-admin/includes/ajax-actions.php:1336
+msgstr ""
+"Enregistrement automatique désactivé&nbsp;: %s modifie actuellement cette "
+"page."
+
+#: wp-admin/includes/ajax-actions.php:1323
 msgid "Saving is disabled: %s is currently editing this post."
-msgstr "Enregistrement automatique désactivé&nbsp;: %s modifie actuellement cet article."
+msgstr ""
+"Enregistrement automatique désactivé&nbsp;: %s modifie actuellement cet "
+"article."
+
+#: wp-admin/includes/ajax-actions.php:1442
+#: wp-admin/includes/class-wp-posts-list-table.php:285
+#: wp-admin/includes/class-wp-posts-list-table.php:758
+msgid "Date"
+msgstr "Date"
 
 #: wp-admin/includes/ajax-actions.php:1452
-#: wp-admin/includes/class-wp-posts-list-table.php:282
-#: wp-admin/includes/class-wp-posts-list-table.php:753
-msgid "Date"
-msgstr "Date"
-
-#: wp-admin/includes/ajax-actions.php:1461
-#: wp-admin/includes/class-wp-posts-list-table.php:592
-#: wp-admin/includes/class-wp-posts-list-table.php:960
-#: wp-admin/includes/meta-boxes.php:71
-#: wp-admin/includes/meta-boxes.php:94
+#: wp-admin/includes/class-wp-posts-list-table.php:601
+#: wp-admin/includes/class-wp-posts-list-table.php:965
+#: wp-admin/includes/meta-boxes.php:69 wp-admin/includes/meta-boxes.php:92
 msgid "Scheduled"
 msgstr "Planifié"
 
-#: wp-admin/includes/ajax-actions.php:1722
+#: wp-admin/includes/ajax-actions.php:1736
 msgid "Save failed"
 msgstr "L&rsquo;enregistrement a échoué."
 
@@ -2133,183 +2956,222 @@
 msgid "Could not insert link into the database"
 msgstr "Impossible d&rsquo;insérer le lien dans la base de données"
 
-#: wp-admin/includes/class-wp-comments-list-table.php:133
-msgid "No comments awaiting moderation."
-msgstr "Aucun commentaire en attente de modération."
+#: wp-admin/includes/bookmark.php:285
+msgid ""
+"If you are looking to use the link manager, please install the <a href=\"%s"
+"\">Link Manager</a> plugin."
+msgstr ""
+"Si vous souhaitez utiliser le gestionnaire de liens, veuillez installer "
+"l&rsquo;extension <a href=\"%s\">Link Manager</a>."
+
+#: wp-admin/includes/bookmark.php:288 wp-admin/link-manager.php:12
+#: wp-admin/link-manager.php:67
+msgid "You do not have sufficient permissions to edit the links for this site."
+msgstr ""
+"Vous n&rsquo;avez pas les droits suffisants pour modifier les liens de ce "
+"site."
 
 #: wp-admin/includes/class-wp-comments-list-table.php:135
+msgid "No comments awaiting moderation."
+msgstr "Aucun commentaire en attente de modération."
+
+#: wp-admin/includes/class-wp-comments-list-table.php:137
 msgid "No comments found."
 msgstr "Aucun commentaire trouvé."
 
-#: wp-admin/includes/class-wp-comments-list-table.php:146
+#: wp-admin/includes/class-wp-comments-list-table.php:148
 msgctxt "comments"
 msgid "All"
 msgid_plural "All"
 msgstr[0] "Tout"
-msgstr[1] "Tous"
-
-#: wp-admin/includes/class-wp-comments-list-table.php:147
-msgid "Pending <span class=\"count\">(<span class=\"pending-count\">%s</span>)</span>"
-msgid_plural "Pending <span class=\"count\">(<span class=\"pending-count\">%s</span>)</span>"
-msgstr[0] "En attente de relecture <span class=\"count\">(<span class=\"pending-count\">%s</span>)</span>"
-msgstr[1] "En attente de relecture <span class=\"count\">(<span class=\"pending-count\">%s</span>)</span>"
-
-#: wp-admin/includes/class-wp-comments-list-table.php:148
+msgstr[1] "Tout"
+
+#: wp-admin/includes/class-wp-comments-list-table.php:149
+msgid ""
+"Pending <span class=\"count\">(<span class=\"pending-count\">%s</span>)</"
+"span>"
+msgid_plural ""
+"Pending <span class=\"count\">(<span class=\"pending-count\">%s</span>)</"
+"span>"
+msgstr[0] ""
+"En attente <span class=\"count\">(<span class=\"pending-count\">%s</span>)</"
+"span>"
+msgstr[1] ""
+"En attente <span class=\"count\">(<span class=\"pending-count\">%s</span>)</"
+"span>"
+
+#: wp-admin/includes/class-wp-comments-list-table.php:150
 msgid "Approved"
 msgid_plural "Approved"
 msgstr[0] "Approuvé"
 msgstr[1] "Approuvés"
 
-#: wp-admin/includes/class-wp-comments-list-table.php:149
-msgid "Spam <span class=\"count\">(<span class=\"spam-count\">%s</span>)</span>"
-msgid_plural "Spam <span class=\"count\">(<span class=\"spam-count\">%s</span>)</span>"
-msgstr[0] "Indésirable <span class=\"count\">(<span class=\"pending-count\">%s</span>)</span>"
-msgstr[1] "Indésirables <span class=\"count\">(<span class=\"pending-count\">%s</span>)</span>"
-
-#: wp-admin/includes/class-wp-comments-list-table.php:150
-msgid "Trash <span class=\"count\">(<span class=\"trash-count\">%s</span>)</span>"
-msgid_plural "Trash <span class=\"count\">(<span class=\"trash-count\">%s</span>)</span>"
-msgstr[0] "Corbeille <span class=\"count\">(<span class=\"pending-count\">%s</span>)</span>"
-msgstr[1] "Corbeille <span class=\"count\">(<span class=\"pending-count\">%s</span>)</span>"
-
-#: wp-admin/includes/class-wp-comments-list-table.php:188
-#: wp-admin/includes/class-wp-comments-list-table.php:392
-#: wp-admin/includes/class-wp-comments-list-table.php:397
-#: wp-admin/includes/dashboard.php:661
+#: wp-admin/includes/class-wp-comments-list-table.php:151
+msgid ""
+"Spam <span class=\"count\">(<span class=\"spam-count\">%s</span>)</span>"
+msgid_plural ""
+"Spam <span class=\"count\">(<span class=\"spam-count\">%s</span>)</span>"
+msgstr[0] ""
+"Indésirable <span class=\"count\">(<span class=\"spam-count\">%s</span>)</"
+"span>"
+msgstr[1] ""
+"Indésirables <span class=\"count\">(<span class=\"spam-count\">%s</span>)</"
+"span>"
+
+#: wp-admin/includes/class-wp-comments-list-table.php:152
+msgid ""
+"Trash <span class=\"count\">(<span class=\"trash-count\">%s</span>)</span>"
+msgid_plural ""
+"Trash <span class=\"count\">(<span class=\"trash-count\">%s</span>)</span>"
+msgstr[0] ""
+"Corbeille <span class=\"count\">(<span class=\"trash-count\">%s</span>)</"
+"span>"
+msgstr[1] ""
+"Corbeille <span class=\"count\">(<span class=\"trash-count\">%s</span>)</"
+"span>"
+
+#: wp-admin/includes/class-wp-comments-list-table.php:190
+#: wp-admin/includes/class-wp-comments-list-table.php:399
+#: wp-admin/includes/class-wp-comments-list-table.php:404
+#: wp-admin/includes/dashboard.php:684
 msgid "Unapprove"
 msgstr "Désapprouver"
 
-#: wp-admin/includes/class-wp-comments-list-table.php:190
-#: wp-admin/includes/class-wp-comments-list-table.php:394
-#: wp-admin/includes/class-wp-comments-list-table.php:396
-#: wp-admin/includes/dashboard.php:660
+#: wp-admin/includes/class-wp-comments-list-table.php:192
+#: wp-admin/includes/class-wp-comments-list-table.php:401
+#: wp-admin/includes/class-wp-comments-list-table.php:403
+#: wp-admin/includes/dashboard.php:683
 msgid "Approve"
 msgstr "Approuver"
 
-#: wp-admin/includes/class-wp-comments-list-table.php:192
+#: wp-admin/includes/class-wp-comments-list-table.php:194
 msgctxt "comment"
 msgid "Mark as Spam"
 msgstr "Marquer comme indésirable"
 
-#: wp-admin/includes/class-wp-comments-list-table.php:197
-#: wp-admin/includes/class-wp-comments-list-table.php:403
+#: wp-admin/includes/class-wp-comments-list-table.php:199
+#: wp-admin/includes/class-wp-comments-list-table.php:410
 msgctxt "comment"
 msgid "Not Spam"
 msgstr "N&rsquo;est pas un indésirable"
 
-#: wp-admin/includes/class-wp-comments-list-table.php:215
+#: wp-admin/includes/class-wp-comments-list-table.php:217
 msgid "Show all comment types"
 msgstr "Afficher tous les types de commentaire"
 
-#: wp-admin/includes/class-wp-comments-list-table.php:219
-#: wp-admin/includes/class-wp-posts-list-table.php:922
+#: wp-admin/includes/class-wp-comments-list-table.php:221
+#: wp-admin/includes/class-wp-posts-list-table.php:927
 msgid "Pings"
 msgstr "Pings"
 
-#: wp-admin/includes/class-wp-comments-list-table.php:227
-#: wp-admin/includes/class-wp-links-list-table.php:71
-#: wp-admin/includes/class-wp-media-list-table.php:94
-#: wp-admin/includes/class-wp-posts-list-table.php:221
+#: wp-admin/includes/class-wp-comments-list-table.php:230
+#: wp-admin/includes/class-wp-links-list-table.php:72
+#: wp-admin/includes/class-wp-media-list-table.php:95
+#: wp-admin/includes/class-wp-posts-list-table.php:218
 msgid "Filter"
 msgstr "Filtrer"
 
-#: wp-admin/includes/class-wp-comments-list-table.php:232
+#: wp-admin/includes/class-wp-comments-list-table.php:235
 msgid "Empty Spam"
 msgstr "Supprimer tous les indésirables"
 
-#: wp-admin/includes/class-wp-comments-list-table.php:232
-#: wp-admin/includes/class-wp-media-list-table.php:100
-#: wp-admin/includes/class-wp-posts-list-table.php:225
+#: wp-admin/includes/class-wp-comments-list-table.php:235
+#: wp-admin/includes/class-wp-media-list-table.php:101
+#: wp-admin/includes/class-wp-posts-list-table.php:222
 msgid "Empty Trash"
 msgstr "Vider la Corbeille"
 
-#: wp-admin/includes/class-wp-comments-list-table.php:255
-#: wp-admin/includes/class-wp-comments-list-table.php:527
+#: wp-admin/includes/class-wp-comments-list-table.php:258
+#: wp-admin/includes/class-wp-comments-list-table.php:534
 msgctxt "column name"
 msgid "Comment"
 msgstr "Commentaire"
 
-#: wp-admin/includes/class-wp-comments-list-table.php:258
+#: wp-admin/includes/class-wp-comments-list-table.php:261
 msgctxt "column name"
 msgid "In Response To"
 msgstr "En réponse à"
 
-#: wp-admin/includes/class-wp-comments-list-table.php:336
+#: wp-admin/includes/class-wp-comments-list-table.php:324
+msgid "Select comment"
+msgstr "Sélectionnez un commentaire"
+
+#: wp-admin/includes/class-wp-comments-list-table.php:343
 msgid "Y/m/d \\a\\t g:i A"
 msgstr "d/m/Y \\à G \\h i \\m\\i\\n"
 
 #. translators: 2: comment date, 3: comment time
-#: wp-admin/includes/class-wp-comments-list-table.php:355
+#: wp-admin/includes/class-wp-comments-list-table.php:362
 msgid "Submitted on <a href=\"%1$s\">%2$s at %3$s</a>"
 msgstr "Envoyé le <a href=\"%1$s\">%2$s à %3$s</a>"
 
 #. translators: comment time format. See http:php.net/date
-#: wp-admin/includes/class-wp-comments-list-table.php:363
+#: wp-admin/includes/class-wp-comments-list-table.php:370
 msgid "In reply to <a href=\"%1$s\">%2$s</a>."
 msgstr "En réponse à <a href=\"%1$s\">%2$s</a>."
 
-#: wp-admin/includes/class-wp-comments-list-table.php:392
-#: wp-admin/includes/class-wp-comments-list-table.php:397
-#: wp-admin/includes/dashboard.php:661
+#: wp-admin/includes/class-wp-comments-list-table.php:399
+#: wp-admin/includes/class-wp-comments-list-table.php:404
+#: wp-admin/includes/dashboard.php:684
 msgid "Unapprove this comment"
 msgstr "Désapprouver ce commentaire"
 
-#: wp-admin/includes/class-wp-comments-list-table.php:394
-#: wp-admin/includes/class-wp-comments-list-table.php:396
-#: wp-admin/includes/dashboard.php:660
+#: wp-admin/includes/class-wp-comments-list-table.php:401
+#: wp-admin/includes/class-wp-comments-list-table.php:403
+#: wp-admin/includes/dashboard.php:683
 msgid "Approve this comment"
 msgstr "Approuver ce commentaire"
 
-#: wp-admin/includes/class-wp-comments-list-table.php:401
-#: wp-admin/includes/dashboard.php:664
+#: wp-admin/includes/class-wp-comments-list-table.php:408
+#: wp-admin/includes/dashboard.php:687
 msgid "Mark this comment as spam"
 msgstr "Marquer ce commentaire comme indésirable"
 
 #. translators: mark as spam link
-#: wp-admin/includes/class-wp-comments-list-table.php:401
-#: wp-admin/includes/dashboard.php:664
+#: wp-admin/includes/class-wp-comments-list-table.php:408
+#: wp-admin/includes/dashboard.php:687
 msgctxt "verb"
 msgid "Spam"
 msgstr "Indésirable"
 
-#: wp-admin/includes/class-wp-comments-list-table.php:411
-#: wp-admin/includes/dashboard.php:668
+#: wp-admin/includes/class-wp-comments-list-table.php:418
+#: wp-admin/includes/dashboard.php:691
 msgid "Move this comment to the trash"
 msgstr "Déplacer ce commentaire dans la Corbeille"
 
-#: wp-admin/includes/class-wp-comments-list-table.php:411
-#: wp-admin/includes/dashboard.php:668
+#: wp-admin/includes/class-wp-comments-list-table.php:418
+#: wp-admin/includes/dashboard.php:691
 msgctxt "verb"
 msgid "Trash"
 msgstr "Corbeille"
 
-#: wp-admin/includes/class-wp-comments-list-table.php:416
-#: wp-admin/includes/class-wp-posts-list-table.php:728
-#: wp-admin/includes/class-wp-terms-list-table.php:337
+#: wp-admin/includes/class-wp-comments-list-table.php:423
+#: wp-admin/includes/class-wp-posts-list-table.php:733
+#: wp-admin/includes/class-wp-terms-list-table.php:335
 msgid "Quick Edit"
 msgstr "Modification rapide"
 
-#: wp-admin/includes/class-wp-comments-list-table.php:416
-#: wp-admin/includes/class-wp-posts-list-table.php:537
-#: wp-admin/includes/class-wp-terms-list-table.php:259
+#: wp-admin/includes/class-wp-comments-list-table.php:423
+#: wp-admin/includes/class-wp-posts-list-table.php:546
+#: wp-admin/includes/class-wp-terms-list-table.php:258
 msgid "Quick&nbsp;Edit"
 msgstr "Modification&nbsp;rapide"
 
-#: wp-admin/includes/class-wp-comments-list-table.php:417
-#: wp-admin/includes/dashboard.php:663
+#: wp-admin/includes/class-wp-comments-list-table.php:424
+#: wp-admin/includes/dashboard.php:686
 msgid "Reply to this comment"
 msgstr "Répondre à ce commentaire"
 
 # Utilisé dans l'affichage des commentaires sous l'article
-#: wp-admin/includes/class-wp-comments-list-table.php:475
+#: wp-admin/includes/class-wp-comments-list-table.php:482
 msgid "Y/m/d \\a\\t g:ia"
 msgstr "d/m/Y \\à\\ G \\h i \\m\\i\\n"
 
-#: wp-admin/includes/class-wp-filesystem-base.php:212
+#: wp-admin/includes/class-wp-filesystem-base.php:213
 msgid "Changing to %s"
 msgstr "Modifier à %s"
 
-#: wp-admin/includes/class-wp-filesystem-base.php:221
+#: wp-admin/includes/class-wp-filesystem-base.php:224
 msgid "Found %s"
 msgstr "Trouvé %s"
 
@@ -2349,8 +3211,12 @@
 msgstr "L&rsquo;extension ssh2 de PHP n&rsquo;est pas disponible"
 
 #: wp-admin/includes/class-wp-filesystem-ssh2.php:61
-msgid "The ssh2 PHP extension is available, however, we require the PHP5 function <code>stream_get_contents()</code>"
-msgstr "L&rsquo;extension ssh2 de PHP est disponible, mais nécessite la fonction PHP5 <code>stream_get_contents()</code>"
+msgid ""
+"The ssh2 PHP extension is available, however, we require the PHP5 function "
+"<code>stream_get_contents()</code>"
+msgstr ""
+"L&rsquo;extension ssh2 de PHP est disponible, mais nécessite la fonction "
+"PHP5 <code>stream_get_contents()</code>"
 
 #: wp-admin/includes/class-wp-filesystem-ssh2.php:72
 msgid "SSH2 hostname is required"
@@ -2376,64 +3242,73 @@
 msgid "Unable to perform command: %s"
 msgstr "Impossible de lancer la commande&nbsp;: %s"
 
-#: wp-admin/includes/class-wp-links-list-table.php:42
+#: wp-admin/includes/class-wp-links-list-table.php:43
 msgid "No links found."
 msgstr "Aucun lien trouvé."
 
-#: wp-admin/includes/class-wp-links-list-table.php:47
-#: wp-admin/includes/class-wp-links-list-table.php:140
-#: wp-admin/includes/class-wp-ms-sites-list-table.php:127
-#: wp-admin/includes/class-wp-ms-sites-list-table.php:264
-#: wp-admin/includes/class-wp-ms-themes-list-table.php:244
-#: wp-admin/includes/class-wp-ms-themes-list-table.php:299
+#: wp-admin/includes/class-wp-links-list-table.php:48
+#: wp-admin/includes/class-wp-links-list-table.php:145
+#: wp-admin/includes/class-wp-ms-sites-list-table.php:128
+#: wp-admin/includes/class-wp-ms-sites-list-table.php:269
+#: wp-admin/includes/class-wp-ms-themes-list-table.php:240
+#: wp-admin/includes/class-wp-ms-themes-list-table.php:285
 #: wp-admin/includes/class-wp-ms-users-list-table.php:75
-#: wp-admin/includes/class-wp-ms-users-list-table.php:192
-#: wp-admin/includes/class-wp-plugins-list-table.php:256
-#: wp-admin/includes/class-wp-plugins-list-table.php:358
-#: wp-admin/includes/class-wp-plugins-list-table.php:367
-#: wp-admin/includes/class-wp-terms-list-table.php:83
-#: wp-admin/includes/class-wp-terms-list-table.php:262
-#: wp-admin/includes/class-wp-themes-list-table.php:148
+#: wp-admin/includes/class-wp-ms-users-list-table.php:189
+#: wp-admin/includes/class-wp-plugins-list-table.php:249
+#: wp-admin/includes/class-wp-plugins-list-table.php:347
+#: wp-admin/includes/class-wp-plugins-list-table.php:356
+#: wp-admin/includes/class-wp-terms-list-table.php:84
+#: wp-admin/includes/class-wp-terms-list-table.php:261
+#: wp-admin/includes/class-wp-themes-list-table.php:149
 #: wp-admin/includes/class-wp-users-list-table.php:130
-#: wp-admin/includes/class-wp-users-list-table.php:252
-#: wp-admin/includes/media.php:1161
-#: wp-admin/includes/meta-boxes.php:635
-#: wp-admin/includes/template.php:495
-#: wp-admin/includes/widgets.php:206
-#: wp-admin/widgets.php:293
+#: wp-admin/includes/class-wp-users-list-table.php:257
+#: wp-admin/includes/media.php:1182 wp-admin/includes/meta-boxes.php:699
+#: wp-admin/includes/template.php:495 wp-admin/includes/widgets.php:210
+#: wp-admin/widgets.php:278
 msgid "Delete"
 msgstr "Supprimer "
 
-#: wp-admin/includes/class-wp-links-list-table.php:64
-#: wp-admin/includes/class-wp-posts-list-table.php:211
+#: wp-admin/includes/class-wp-links-list-table.php:65
+#: wp-admin/includes/class-wp-posts-list-table.php:208
 msgid "View all categories"
 msgstr "Voir toutes les catégories"
 
-#: wp-admin/includes/class-wp-links-list-table.php:83
+#: wp-admin/includes/class-wp-links-list-table.php:84
 msgid "Relationship"
 msgstr "Relation"
 
-#: wp-admin/includes/class-wp-links-list-table.php:84
-msgid "Visible"
-msgstr "Visible"
-
 #: wp-admin/includes/class-wp-links-list-table.php:85
-#: wp-admin/includes/class-wp-plugin-install-list-table.php:141
-#: wp-admin/includes/meta-boxes.php:894
+msgid "Visible"
+msgstr "Visible"
+
+#: wp-admin/includes/class-wp-links-list-table.php:86
+#: wp-admin/includes/class-wp-plugin-install-list-table.php:151
+#: wp-admin/includes/meta-boxes.php:958
 msgid "Rating"
 msgstr "Note"
 
-#: wp-admin/includes/class-wp-links-list-table.php:136
-#: wp-admin/includes/class-wp-media-list-table.php:209
-#: wp-admin/includes/class-wp-media-list-table.php:227
-#: wp-admin/includes/class-wp-posts-list-table.php:522
-#: wp-admin/includes/class-wp-posts-list-table.php:528
-#: wp-admin/includes/class-wp-terms-list-table.php:254
-#: wp-admin/includes/dashboard.php:568
+#: wp-admin/includes/class-wp-links-list-table.php:134
+#: wp-admin/includes/class-wp-media-list-table.php:214
+#: wp-admin/includes/class-wp-ms-sites-list-table.php:217
+#: wp-admin/includes/class-wp-ms-users-list-table.php:168
+#: wp-admin/includes/class-wp-plugins-list-table.php:373
+#: wp-admin/includes/class-wp-posts-list-table.php:499
+#: wp-admin/includes/class-wp-terms-list-table.php:236
+#: wp-admin/includes/class-wp-users-list-table.php:264
+msgid "Select %s"
+msgstr "Sélectionner %s"
+
+#: wp-admin/includes/class-wp-links-list-table.php:141
+#: wp-admin/includes/class-wp-media-list-table.php:230
+#: wp-admin/includes/class-wp-media-list-table.php:248
+#: wp-admin/includes/class-wp-posts-list-table.php:529
+#: wp-admin/includes/class-wp-posts-list-table.php:537
+#: wp-admin/includes/class-wp-terms-list-table.php:253
+#: wp-admin/includes/dashboard.php:591
 msgid "Edit &#8220;%s&#8221;"
 msgstr "Modifier avec &laquo;&nbsp;%s&nbsp;&raquo;"
 
-#: wp-admin/includes/class-wp-links-list-table.php:140
+#: wp-admin/includes/class-wp-links-list-table.php:145
 msgid ""
 "You are about to delete this link '%s'\n"
 "  'Cancel' to stop, 'OK' to delete."
@@ -2441,380 +3316,353 @@
 "Vous êtes sur le point de supprimer le lien « %s ».\n"
 "  « Annuler » pour abandonner, « OK » pour le supprimer."
 
-#: wp-admin/includes/class-wp-links-list-table.php:146
+#: wp-admin/includes/class-wp-links-list-table.php:151
 msgid "Visit %s"
 msgstr "Aller sur %s"
 
-#: wp-admin/includes/class-wp-list-table.php:190
-#: wp-admin/includes/class-wp-themes-list-table.php:61
-msgid "No items found."
-msgstr "Aucun élément trouvé."
-
-#: wp-admin/includes/class-wp-list-table.php:377
-#: wp-admin/includes/media.php:1867
+#: wp-admin/includes/class-wp-list-table.php:378
+#: wp-admin/includes/media.php:2030
 msgid "Show all dates"
 msgstr "Afficher toutes les dates"
 
-#: wp-admin/includes/class-wp-list-table.php:406
-msgid "List View"
-msgstr "Liste simple"
-
 #: wp-admin/includes/class-wp-list-table.php:407
+msgid "List View"
+msgstr "Liste simple"
+
+#: wp-admin/includes/class-wp-list-table.php:408
 msgid "Excerpt View"
 msgstr "Liste avec extraits"
 
-#: wp-admin/includes/class-wp-list-table.php:433
+#: wp-admin/includes/class-wp-list-table.php:434
 msgid "%s pending"
 msgstr "%s en attente"
 
-#: wp-admin/includes/class-wp-list-table.php:507
+#: wp-admin/includes/class-wp-list-table.php:508
 msgid "Go to the first page"
 msgstr "Aller à la première page"
 
-#: wp-admin/includes/class-wp-list-table.php:514
+#: wp-admin/includes/class-wp-list-table.php:515
 msgid "Go to the previous page"
 msgstr "Aller à la page précédente"
 
-#: wp-admin/includes/class-wp-list-table.php:523
+#: wp-admin/includes/class-wp-list-table.php:524
 msgid "Current page"
 msgstr "Page actuelle"
 
-#: wp-admin/includes/class-wp-list-table.php:529
+#: wp-admin/includes/class-wp-list-table.php:530
 msgctxt "paging"
 msgid "%1$s of %2$s"
 msgstr "%1$s sur %2$s"
 
-#: wp-admin/includes/class-wp-list-table.php:533
+#: wp-admin/includes/class-wp-list-table.php:534
 msgid "Go to the next page"
 msgstr "Aller à la page suivante"
 
-#: wp-admin/includes/class-wp-list-table.php:540
+#: wp-admin/includes/class-wp-list-table.php:541
 msgid "Go to the last page"
 msgstr "Aller à la dernière page"
 
-#: wp-admin/includes/class-wp-media-list-table.php:57
+#: wp-admin/includes/class-wp-media-list-table.php:58
 msgctxt "uploaded files"
 msgid "All <span class=\"count\">(%s)</span>"
 msgid_plural "All <span class=\"count\">(%s)</span>"
-msgstr[0] "Tous <span class=\"count\">(%s)</span>"
-msgstr[1] "Tous <span class=\"count\">(%s)</span>"
-
-#: wp-admin/includes/class-wp-media-list-table.php:69
+msgstr[0] "Tout <span class=\"count\">(%s)</span>"
+msgstr[1] "Tout <span class=\"count\">(%s)</span>"
+
+#: wp-admin/includes/class-wp-media-list-table.php:70
 msgctxt "detached files"
 msgid "Unattached <span class=\"count\">(%s)</span>"
 msgid_plural "Unattached <span class=\"count\">(%s)</span>"
 msgstr[0] "Non attaché <span class=\"count\">(%s)</span>"
 msgstr[1] "Non attachés <span class=\"count\">(%s)</span>"
 
-#: wp-admin/includes/class-wp-media-list-table.php:72
+#: wp-admin/includes/class-wp-media-list-table.php:73
 msgctxt "uploaded files"
 msgid "Trash <span class=\"count\">(%s)</span>"
 msgid_plural "Trash <span class=\"count\">(%s)</span>"
 msgstr[0] "Corbeille <span class=\"count\">(%s)</span>"
 msgstr[1] "Corbeille <span class=\"count\">(%s)</span>"
 
-#: wp-admin/includes/class-wp-media-list-table.php:81
+#: wp-admin/includes/class-wp-media-list-table.php:82
 msgid "Attach to a post"
 msgstr "Joindre à un article"
 
-#: wp-admin/includes/class-wp-media-list-table.php:98
+#: wp-admin/includes/class-wp-media-list-table.php:99
 msgid "Scan for lost attachments"
 msgstr "Rechercher les fichiers attachés perdus"
 
-#: wp-admin/includes/class-wp-media-list-table.php:124
+#: wp-admin/includes/class-wp-media-list-table.php:125
 msgid "No media attachments found."
 msgstr "Pas de fichier média attaché."
 
 #. translators: column name
-#: wp-admin/includes/class-wp-media-list-table.php:132
+#: wp-admin/includes/class-wp-media-list-table.php:133
 msgctxt "column name"
 msgid "File"
 msgstr "Fichier"
 
 #. translators: column name
-#: wp-admin/includes/class-wp-media-list-table.php:137
+#: wp-admin/includes/class-wp-media-list-table.php:157
 msgctxt "column name"
-msgid "Attached to"
-msgstr "Attaché à"
+msgid "Uploaded to"
+msgstr "Mis en ligne sur "
 
 #. translators: column name
-#: wp-admin/includes/class-wp-media-list-table.php:142
+#: wp-admin/includes/class-wp-media-list-table.php:162
 msgctxt "column name"
 msgid "Date"
 msgstr "Date"
 
-#: wp-admin/includes/class-wp-media-list-table.php:262
-#: wp-admin/includes/class-wp-posts-list-table.php:635
-msgid "No Tags"
-msgstr "Aucun mot-clef"
-
-#: wp-admin/includes/class-wp-media-list-table.php:277
-#: wp-admin/includes/class-wp-posts-list-table.php:565
+#: wp-admin/includes/class-wp-media-list-table.php:281
+#: wp-admin/includes/class-wp-posts-list-table.php:574
 msgid "Unpublished"
 msgstr "Non publié"
 
-# Utilisé dans les listes d'articles, pages, fichiers, en rollover de la date.
-#: wp-admin/includes/class-wp-media-list-table.php:279
-#: wp-admin/includes/class-wp-posts-list-table.php:568
-#: wp-admin/includes/dashboard.php:568
-msgid "Y/m/d g:i:s A"
-msgstr ""
-"d/m/Y \\à G \\h i \\m\\i\\n"
-" s \\s"
-
-#: wp-admin/includes/class-wp-media-list-table.php:284
+#: wp-admin/includes/class-wp-media-list-table.php:287
 msgid "%s from now"
 msgstr "%s à partir de maintenant"
 
-#: wp-admin/includes/class-wp-media-list-table.php:314
+#: wp-admin/includes/class-wp-media-list-table.php:317
 msgid "(Unattached)"
 msgstr "(Non attaché)"
 
-#: wp-admin/includes/class-wp-media-list-table.php:319
-#: wp-admin/includes/class-wp-media-list-table.php:369
+#: wp-admin/includes/class-wp-media-list-table.php:322
+#: wp-admin/includes/class-wp-media-list-table.php:404
 msgid "Attach"
 msgstr "Joindre"
 
-#: wp-admin/includes/class-wp-media-list-table.php:362
-#: wp-admin/includes/class-wp-media-list-table.php:378
-#: wp-admin/includes/class-wp-posts-list-table.php:543
+#: wp-admin/includes/class-wp-media-list-table.php:397
+#: wp-admin/includes/class-wp-media-list-table.php:413
+#: wp-admin/includes/class-wp-posts-list-table.php:552
+#: wp-admin/includes/meta-boxes.php:277
 msgid "Trash"
 msgstr "Mettre à la Corbeille"
 
-#: wp-admin/includes/class-wp-media-list-table.php:367
-#: wp-admin/includes/class-wp-media-list-table.php:386
-#: wp-admin/includes/class-wp-posts-list-table.php:552
+#: wp-admin/includes/class-wp-media-list-table.php:402
+#: wp-admin/includes/class-wp-media-list-table.php:421
+#: wp-admin/includes/class-wp-posts-list-table.php:561
 msgid "View &#8220;%s&#8221;"
 msgstr "Afficher &laquo;&nbsp;%s&nbsp;&raquo;"
 
-#: wp-admin/includes/class-wp-media-list-table.php:367
-#: wp-admin/includes/class-wp-media-list-table.php:386
-#: wp-admin/includes/class-wp-ms-users-list-table.php:244
-#: wp-admin/includes/class-wp-posts-list-table.php:552
-#: wp-admin/includes/class-wp-terms-list-table.php:263
+#: wp-admin/includes/class-wp-media-list-table.php:402
+#: wp-admin/includes/class-wp-media-list-table.php:421
+#: wp-admin/includes/class-wp-ms-users-list-table.php:241
+#: wp-admin/includes/class-wp-posts-list-table.php:561
+#: wp-admin/includes/class-wp-terms-list-table.php:262
 msgid "View"
 msgstr "Afficher"
 
-#: wp-admin/includes/class-wp-ms-sites-list-table.php:121
+#: wp-admin/includes/class-wp-ms-sites-list-table.php:122
 msgid "No sites found."
 msgstr "Aucun site trouvé."
 
-#: wp-admin/includes/class-wp-ms-sites-list-table.php:128
+#: wp-admin/includes/class-wp-ms-sites-list-table.php:129
 msgctxt "site"
 msgid "Mark as Spam"
 msgstr "Marquer comme indésirable"
 
-#: wp-admin/includes/class-wp-ms-sites-list-table.php:129
-#: wp-admin/includes/class-wp-ms-sites-list-table.php:259
+#: wp-admin/includes/class-wp-ms-sites-list-table.php:130
+#: wp-admin/includes/class-wp-ms-sites-list-table.php:264
 msgctxt "site"
 msgid "Not Spam"
 msgstr "N&rsquo;est pas un indésirable"
 
-#: wp-admin/includes/class-wp-ms-sites-list-table.php:144
+#: wp-admin/includes/class-wp-ms-sites-list-table.php:145
 msgid "Domain"
 msgstr "Domaine"
 
-#: wp-admin/includes/class-wp-ms-sites-list-table.php:148
+#: wp-admin/includes/class-wp-ms-sites-list-table.php:149
 msgid "Last Updated"
 msgstr "Dernière mise à jour"
 
-#: wp-admin/includes/class-wp-ms-sites-list-table.php:149
+#: wp-admin/includes/class-wp-ms-sites-list-table.php:150
 msgctxt "site"
 msgid "Registered"
 msgstr "Inscription"
 
-#: wp-admin/includes/class-wp-ms-sites-list-table.php:173
+#: wp-admin/includes/class-wp-ms-sites-list-table.php:174
 msgid "Archived"
 msgstr "Archivé"
 
-#: wp-admin/includes/class-wp-ms-sites-list-table.php:174
-#: wp-admin/includes/class-wp-ms-sites-list-table.php:261
+#: wp-admin/includes/class-wp-ms-sites-list-table.php:175
+#: wp-admin/includes/class-wp-ms-sites-list-table.php:266
 msgctxt "site"
 msgid "Spam"
 msgstr "Indésirable"
 
-#: wp-admin/includes/class-wp-ms-sites-list-table.php:175
+#: wp-admin/includes/class-wp-ms-sites-list-table.php:176
 msgid "Deleted"
 msgstr "Supprimé"
 
-#: wp-admin/includes/class-wp-ms-sites-list-table.php:176
+#: wp-admin/includes/class-wp-ms-sites-list-table.php:177
 msgid "Mature"
 msgstr "Adulte"
 
-#: wp-admin/includes/class-wp-ms-sites-list-table.php:233
+#: wp-admin/includes/class-wp-ms-sites-list-table.php:236
 msgctxt "%1$s: site name. %2$s: site tagline."
 msgid "%1$s &#8211; <em>%2$s</em>"
 msgstr "%1$s &#8211; <em>%2$s</em>"
 
-#: wp-admin/includes/class-wp-ms-sites-list-table.php:249
+#: wp-admin/includes/class-wp-ms-sites-list-table.php:254
 msgid "You are about to activate the site %s"
 msgstr "Vous êtes sur le point d&rsquo;activer le site %s"
 
-#: wp-admin/includes/class-wp-ms-sites-list-table.php:251
+#: wp-admin/includes/class-wp-ms-sites-list-table.php:256
 msgid "You are about to deactivate the site %s"
 msgstr "Vous êtes sur le point de désactiver le site %s"
 
-#: wp-admin/includes/class-wp-ms-sites-list-table.php:251
-#: wp-admin/includes/class-wp-plugins-list-table.php:250
-#: wp-admin/includes/class-wp-plugins-list-table.php:362
+#: wp-admin/includes/class-wp-ms-sites-list-table.php:256
+#: wp-admin/includes/class-wp-plugins-list-table.php:243
+#: wp-admin/includes/class-wp-plugins-list-table.php:351
 msgid "Deactivate"
 msgstr "Désactiver"
 
-#: wp-admin/includes/class-wp-ms-sites-list-table.php:254
+#: wp-admin/includes/class-wp-ms-sites-list-table.php:259
 msgid "You are about to unarchive the site %s."
 msgstr "Vous êtes sur le point de désarchiver le site %s."
 
-#: wp-admin/includes/class-wp-ms-sites-list-table.php:254
+#: wp-admin/includes/class-wp-ms-sites-list-table.php:259
 msgid "Unarchive"
 msgstr "Désarchiver"
 
-#: wp-admin/includes/class-wp-ms-sites-list-table.php:256
+#: wp-admin/includes/class-wp-ms-sites-list-table.php:261
 msgid "You are about to archive the site %s."
 msgstr "Vous êtes sur le point d&rsquo;archiver le site %s."
 
-#: wp-admin/includes/class-wp-ms-sites-list-table.php:256
+#: wp-admin/includes/class-wp-ms-sites-list-table.php:261
 msgctxt "verb; site"
 msgid "Archive"
 msgstr "Archiver"
 
-#: wp-admin/includes/class-wp-ms-sites-list-table.php:259
+#: wp-admin/includes/class-wp-ms-sites-list-table.php:264
 msgid "You are about to unspam the site %s."
 msgstr "Vous êtes sur le point de marquer le site %s comme sain."
 
-#: wp-admin/includes/class-wp-ms-sites-list-table.php:261
+#: wp-admin/includes/class-wp-ms-sites-list-table.php:266
 msgid "You are about to mark the site %s as spam."
 msgstr "Vous êtes sur le point de marquer le site %s comme indésirable."
 
-#: wp-admin/includes/class-wp-ms-sites-list-table.php:264
+#: wp-admin/includes/class-wp-ms-sites-list-table.php:269
 msgid "You are about to delete the site %s."
 msgstr "Vous êtes sur le point de supprimer le site %s."
 
-#: wp-admin/includes/class-wp-ms-sites-list-table.php:267
+#: wp-admin/includes/class-wp-ms-sites-list-table.php:272
 #: wp-admin/my-sites.php:105
 msgid "Visit"
 msgstr "Visiter"
 
-#: wp-admin/includes/class-wp-ms-sites-list-table.php:282
+#: wp-admin/includes/class-wp-ms-sites-list-table.php:287
 msgid "Never"
 msgstr "Jamais"
 
-#: wp-admin/includes/class-wp-ms-sites-list-table.php:303
+#: wp-admin/includes/class-wp-ms-sites-list-table.php:308
 msgid "Only showing first 5 users."
 msgstr "Affiche seulement les 5 premiers utilisateurs."
 
-#: wp-admin/includes/class-wp-ms-sites-list-table.php:303
+#: wp-admin/includes/class-wp-ms-sites-list-table.php:308
 msgid "More"
 msgstr "Plus"
 
-#: wp-admin/includes/class-wp-ms-themes-list-table.php:170
+#: wp-admin/includes/class-wp-ms-themes-list-table.php:164
 msgid "No themes found."
 msgstr "Aucun thème trouvé."
 
-#: wp-admin/includes/class-wp-ms-themes-list-table.php:172
+#: wp-admin/includes/class-wp-ms-themes-list-table.php:166
 msgid "You do not appear to have any themes available at this time."
 msgstr "Vous ne semblez pas avoir de thème disponible en ce moment."
 
-#: wp-admin/includes/class-wp-ms-themes-list-table.php:180
+#: wp-admin/includes/class-wp-ms-themes-list-table.php:174
 msgid "Theme"
 msgstr "Thème"
 
-#: wp-admin/includes/class-wp-ms-themes-list-table.php:201
+#: wp-admin/includes/class-wp-ms-themes-list-table.php:195
 msgctxt "themes"
 msgid "All <span class=\"count\">(%s)</span>"
 msgid_plural "All <span class=\"count\">(%s)</span>"
 msgstr[0] "Tous <span class=\"count\">(%s)</span>"
 msgstr[1] "Tous <span class=\"count\">(%s)</span>"
 
-#: wp-admin/includes/class-wp-ms-themes-list-table.php:204
+#: wp-admin/includes/class-wp-ms-themes-list-table.php:198
 msgid "Enabled <span class=\"count\">(%s)</span>"
 msgid_plural "Enabled <span class=\"count\">(%s)</span>"
 msgstr[0] "Activé <span class=\"count\">(%s)</span>"
 msgstr[1] "Activés <span class=\"count\">(%s)</span>"
 
-#: wp-admin/includes/class-wp-ms-themes-list-table.php:207
+#: wp-admin/includes/class-wp-ms-themes-list-table.php:201
 msgid "Disabled <span class=\"count\">(%s)</span>"
 msgid_plural "Disabled <span class=\"count\">(%s)</span>"
 msgstr[0] "Désactivé <span class=\"count\">(%s)</span>"
 msgstr[1] "Désactivés <span class=\"count\">(%s)</span>"
 
-#: wp-admin/includes/class-wp-ms-themes-list-table.php:210
-#: wp-admin/includes/class-wp-plugins-list-table.php:223
+#: wp-admin/includes/class-wp-ms-themes-list-table.php:204
+#: wp-admin/includes/class-wp-plugins-list-table.php:218
 msgid "Update Available <span class=\"count\">(%s)</span>"
 msgid_plural "Update Available <span class=\"count\">(%s)</span>"
 msgstr[0] "Prête à mettre à jour <span class=\"count\">(%s)</span>"
 msgstr[1] "Prêtes à mettre à jour <span class=\"count\">(%s)</span>"
 
-#: wp-admin/includes/class-wp-ms-themes-list-table.php:213
+#: wp-admin/includes/class-wp-ms-themes-list-table.php:207
 msgid "Broken <span class=\"count\">(%s)</span>"
 msgid_plural "Broken <span class=\"count\">(%s)</span>"
 msgstr[0] "Cassé <span class=\"count\">(%s)</span>"
 msgstr[1] "Cassé <span class=\"count\">(%s)</span>"
 
-#: wp-admin/includes/class-wp-ms-themes-list-table.php:239
-#: wp-admin/includes/class-wp-ms-themes-list-table.php:290
+#: wp-admin/includes/class-wp-ms-themes-list-table.php:233
+#: wp-admin/includes/class-wp-ms-themes-list-table.php:276
 msgid "Enable"
 msgstr "Activer"
 
-#: wp-admin/includes/class-wp-ms-themes-list-table.php:239
-#: wp-admin/includes/class-wp-ms-themes-list-table.php:290
-#: wp-admin/includes/class-wp-upgrader.php:1527
+#: wp-admin/includes/class-wp-ms-themes-list-table.php:233
+#: wp-admin/includes/class-wp-ms-themes-list-table.php:276
+#: wp-admin/includes/class-wp-upgrader.php:1520
 msgid "Network Enable"
 msgstr "Activer sur le réseau"
 
-#: wp-admin/includes/class-wp-ms-themes-list-table.php:241
-#: wp-admin/includes/class-wp-ms-themes-list-table.php:292
+#: wp-admin/includes/class-wp-ms-themes-list-table.php:235
+#: wp-admin/includes/class-wp-ms-themes-list-table.php:278
 msgid "Disable"
 msgstr "Désactiver"
 
-#: wp-admin/includes/class-wp-ms-themes-list-table.php:241
-#: wp-admin/includes/class-wp-ms-themes-list-table.php:292
+#: wp-admin/includes/class-wp-ms-themes-list-table.php:235
+#: wp-admin/includes/class-wp-ms-themes-list-table.php:278
 msgid "Network Disable"
 msgstr "Désactiver du réseau"
 
-#: wp-admin/includes/class-wp-ms-themes-list-table.php:290
+#: wp-admin/includes/class-wp-ms-themes-list-table.php:276
 msgid "Enable this theme"
 msgstr "Activer ce thème"
 
-#: wp-admin/includes/class-wp-ms-themes-list-table.php:292
+#: wp-admin/includes/class-wp-ms-themes-list-table.php:278
 msgid "Disable this theme"
 msgstr "Désactiver ce thème"
 
-#: wp-admin/includes/class-wp-ms-themes-list-table.php:296
+#: wp-admin/includes/class-wp-ms-themes-list-table.php:282
 msgid "Open this theme in the Theme Editor"
 msgstr "Ouvrir ce thème dans l&rsquo;éditeur de thème"
 
-#: wp-admin/includes/class-wp-ms-themes-list-table.php:299
+#: wp-admin/includes/class-wp-ms-themes-list-table.php:285
 msgid "Delete this theme"
 msgstr "Supprimer ce thème"
 
-#: wp-admin/includes/class-wp-ms-themes-list-table.php:306
-#: wp-admin/includes/class-wp-plugins-list-table.php:381
-#: wp-admin/includes/template.php:1331
-#: wp-admin/nav-menus.php:505
-#: wp-admin/plugin-editor.php:200
-#: wp-admin/theme-editor.php:156
-msgid "Select"
-msgstr "Sélectionner"
-
-#: wp-admin/includes/class-wp-ms-themes-list-table.php:334
+#: wp-admin/includes/class-wp-ms-themes-list-table.php:320
 msgid "Broken Theme:"
 msgstr "Thème cassé&nbsp;:"
 
-#: wp-admin/includes/class-wp-ms-themes-list-table.php:345
-#: wp-admin/includes/class-wp-plugin-install-list-table.php:183
-#: wp-admin/includes/class-wp-plugins-list-table.php:421
-#: wp-admin/includes/class-wp-theme-install-list-table.php:233
-#: wp-admin/includes/class-wp-theme-install-list-table.php:336
-#: wp-admin/includes/class-wp-themes-list-table.php:168
+#: wp-admin/includes/class-wp-ms-themes-list-table.php:331
+#: wp-admin/includes/class-wp-plugin-install-list-table.php:193
+#: wp-admin/includes/class-wp-plugins-list-table.php:415
+#: wp-admin/includes/class-wp-theme-install-list-table.php:232
+#: wp-admin/includes/class-wp-theme-install-list-table.php:335
+#: wp-admin/includes/class-wp-themes-list-table.php:169
 #: wp-admin/themes.php:144
 msgid "By %s"
 msgstr "Par %s"
 
-#: wp-admin/includes/class-wp-ms-themes-list-table.php:348
+#: wp-admin/includes/class-wp-ms-themes-list-table.php:334
 msgid "Visit theme homepage"
 msgstr "Aller sur la page du thème"
 
-#: wp-admin/includes/class-wp-ms-themes-list-table.php:348
+#: wp-admin/includes/class-wp-ms-themes-list-table.php:334
 msgid "Visit Theme Site"
 msgstr "Aller sur le site du thème"
 
@@ -2851,14 +3699,14 @@
 msgid "Registered"
 msgstr "Inscription"
 
-#: wp-admin/includes/class-wp-ms-users-list-table.php:184
-#: wp-admin/user-edit.php:269
+#: wp-admin/includes/class-wp-ms-users-list-table.php:181
+#: wp-admin/user-edit.php:270
 msgid "Super Admin"
 msgstr "Super-admin"
 
 #: wp-admin/includes/class-wp-plugin-install-list-table.php:31
 #: wp-admin/includes/class-wp-theme-install-list-table.php:42
-#: wp-admin/includes/file.php:26
+#: wp-admin/includes/file.php:28
 msgid "Search Results"
 msgstr "Résultats de recherche"
 
@@ -2877,194 +3725,207 @@
 msgid "Newest"
 msgstr "Ajoutées récemment"
 
-#: wp-admin/includes/class-wp-plugin-install-list-table.php:84
+#: wp-admin/includes/class-wp-plugin-install-list-table.php:36
+msgctxt "Plugin Installer"
+msgid "Favorites"
+msgstr "Favorites"
+
+#: wp-admin/includes/class-wp-plugin-install-list-table.php:96
 #: wp-admin/includes/class-wp-theme-install-list-table.php:101
+#: wp-admin/setup-config.php:169
 msgid "Try again"
 msgstr "Recommencer"
 
-#: wp-admin/includes/class-wp-plugin-install-list-table.php:95
+#: wp-admin/includes/class-wp-plugin-install-list-table.php:107
 msgid "No plugins match your request."
 msgstr "Aucune extension ne correspond à votre requête."
 
-#: wp-admin/includes/class-wp-plugin-install-list-table.php:139
+#: wp-admin/includes/class-wp-plugin-install-list-table.php:149
 msgctxt "plugin name"
 msgid "Name"
 msgstr "Nom"
 
-#: wp-admin/includes/class-wp-plugin-install-list-table.php:190
+#: wp-admin/includes/class-wp-plugin-install-list-table.php:200
 msgid "More information about %s"
 msgstr "Plus d&rsquo;informations à propos de %s"
 
-#: wp-admin/includes/class-wp-plugin-install-list-table.php:190
-#: wp-admin/includes/class-wp-theme-install-list-table.php:240
-#: wp-admin/includes/class-wp-themes-list-table.php:174
+#: wp-admin/includes/class-wp-plugin-install-list-table.php:200
+#: wp-admin/includes/class-wp-theme-install-list-table.php:239
+#: wp-admin/includes/class-wp-themes-list-table.php:175
 msgid "Details"
 msgstr "Détails"
 
-#: wp-admin/includes/class-wp-plugin-install-list-table.php:198
-#: wp-admin/includes/class-wp-theme-install-list-table.php:212
+#: wp-admin/includes/class-wp-plugin-install-list-table.php:208
+#: wp-admin/includes/class-wp-theme-install-list-table.php:211
 msgid "Install %s"
 msgstr "Installer %s"
 
-#: wp-admin/includes/class-wp-plugin-install-list-table.php:198
-#: wp-admin/includes/class-wp-theme-install-list-table.php:212
+#: wp-admin/includes/class-wp-plugin-install-list-table.php:208
+#: wp-admin/includes/class-wp-theme-install-list-table.php:211
 #: wp-admin/includes/plugin-install.php:151
-#: wp-admin/includes/plugin-install.php:305
-#: wp-admin/includes/theme-install.php:126
+#: wp-admin/includes/plugin-install.php:329
+#: wp-admin/includes/theme-install.php:142
 msgid "Install Now"
 msgstr "Installer maintenant"
 
-#: wp-admin/includes/class-wp-plugin-install-list-table.php:202
-#: wp-admin/includes/class-wp-theme-install-list-table.php:215
-#: wp-admin/includes/class-wp-theme-install-list-table.php:328
+#: wp-admin/includes/class-wp-plugin-install-list-table.php:212
+#: wp-admin/includes/class-wp-theme-install-list-table.php:214
+#: wp-admin/includes/class-wp-theme-install-list-table.php:327
 msgid "Update to version %s"
 msgstr "Mettre à jour vers la version %s"
 
-#: wp-admin/includes/class-wp-plugin-install-list-table.php:202
+#: wp-admin/includes/class-wp-plugin-install-list-table.php:212
 #: wp-admin/update-core.php:33
 msgid "Update Now"
 msgstr "Mettre à jour"
 
-#: wp-admin/includes/class-wp-plugin-install-list-table.php:206
+#: wp-admin/includes/class-wp-plugin-install-list-table.php:216
 msgid "This plugin is already installed and is up to date"
 msgstr "Cette extension est déjà installée et à jour"
 
-#: wp-admin/includes/class-wp-plugin-install-list-table.php:206
+#: wp-admin/includes/class-wp-plugin-install-list-table.php:216
 msgctxt "plugin"
 msgid "Installed"
 msgstr "Installées"
 
-#: wp-admin/includes/class-wp-plugin-install-list-table.php:219
-#: wp-admin/includes/class-wp-theme-install-list-table.php:306
-#: wp-admin/includes/plugin-install.php:344
-#: wp-admin/includes/plugin-install.php:347
+#: wp-admin/includes/class-wp-plugin-install-list-table.php:229
+#: wp-admin/includes/class-wp-theme-install-list-table.php:305
+#: wp-admin/includes/plugin-install.php:368
+#: wp-admin/includes/plugin-install.php:371
 msgid "(based on %s rating)"
 msgid_plural "(based on %s ratings)"
 msgstr[0] "(basée sur %s vote)"
 msgstr[1] "(basée sur %s votes)"
 
-#: wp-admin/includes/class-wp-plugins-list-table.php:176
+#: wp-admin/includes/class-wp-plugins-list-table.php:171
 msgid "No plugins found."
 msgstr "Aucune extension trouvée."
 
-#: wp-admin/includes/class-wp-plugins-list-table.php:178
+#: wp-admin/includes/class-wp-plugins-list-table.php:173
 msgid "You do not appear to have any plugins available at this time."
 msgstr "Vous ne semblez pas avoir d&rsquo;extension disponible en ce moment."
 
-#: wp-admin/includes/class-wp-plugins-list-table.php:205
+#: wp-admin/includes/class-wp-plugins-list-table.php:200
 msgctxt "plugins"
 msgid "All <span class=\"count\">(%s)</span>"
 msgid_plural "All <span class=\"count\">(%s)</span>"
 msgstr[0] "Toutes <span class=\"count\">(%s)</span>"
-msgstr[1] "Tous <span class=\"count\">(%s)</span>"
-
-#: wp-admin/includes/class-wp-plugins-list-table.php:208
+msgstr[1] "Toutes <span class=\"count\">(%s)</span>"
+
+#: wp-admin/includes/class-wp-plugins-list-table.php:203
 msgid "Active <span class=\"count\">(%s)</span>"
 msgid_plural "Active <span class=\"count\">(%s)</span>"
 msgstr[0] "Activée <span class=\"count\">(%s)</span>"
 msgstr[1] "Activées <span class=\"count\">(%s)</span>"
 
-#: wp-admin/includes/class-wp-plugins-list-table.php:211
+#: wp-admin/includes/class-wp-plugins-list-table.php:206
 msgid "Recently Active <span class=\"count\">(%s)</span>"
 msgid_plural "Recently Active <span class=\"count\">(%s)</span>"
 msgstr[0] "Récemment désactivée <span class=\"count\">(%s)</span>"
 msgstr[1] "Récemment désactivées <span class=\"count\">(%s)</span>"
 
-#: wp-admin/includes/class-wp-plugins-list-table.php:214
+#: wp-admin/includes/class-wp-plugins-list-table.php:209
 msgid "Inactive <span class=\"count\">(%s)</span>"
 msgid_plural "Inactive <span class=\"count\">(%s)</span>"
 msgstr[0] "Désactivée <span class=\"count\">(%s)</span>"
 msgstr[1] "Désactivées <span class=\"count\">(%s)</span>"
 
-#: wp-admin/includes/class-wp-plugins-list-table.php:217
+#: wp-admin/includes/class-wp-plugins-list-table.php:212
 msgid "Must-Use <span class=\"count\">(%s)</span>"
 msgid_plural "Must-Use <span class=\"count\">(%s)</span>"
 msgstr[0] "Automatique (Must-Use) <span class=\"count\">(%s)</span>"
 msgstr[1] "Automatiques (Must-Use) <span class=\"count\">(%s)</span>"
 
-#: wp-admin/includes/class-wp-plugins-list-table.php:220
+#: wp-admin/includes/class-wp-plugins-list-table.php:215
 msgid "Drop-ins <span class=\"count\">(%s)</span>"
 msgid_plural "Drop-ins <span class=\"count\">(%s)</span>"
 msgstr[0] "Drop-ins <span class=\"count\">(%s)</span>"
 msgstr[1] "Drop-ins <span class=\"count\">(%s)</span>"
 
-#: wp-admin/includes/class-wp-plugins-list-table.php:247
-#: wp-admin/includes/class-wp-plugins-list-table.php:356
-#: wp-admin/includes/class-wp-upgrader.php:1447
+#: wp-admin/includes/class-wp-plugins-list-table.php:240
+#: wp-admin/includes/class-wp-plugins-list-table.php:345
+#: wp-admin/includes/class-wp-upgrader.php:1438
 msgid "Network Activate"
 msgstr "Activer sur le réseau"
 
-#: wp-admin/includes/class-wp-plugins-list-table.php:250
-#: wp-admin/includes/class-wp-plugins-list-table.php:353
+#: wp-admin/includes/class-wp-plugins-list-table.php:243
+#: wp-admin/includes/class-wp-plugins-list-table.php:342
 msgid "Network Deactivate"
 msgstr "Désactiver du réseau"
 
-#: wp-admin/includes/class-wp-plugins-list-table.php:282
+#: wp-admin/includes/class-wp-plugins-list-table.php:273
 msgid "Clear List"
 msgstr "Vider la liste"
 
-#: wp-admin/includes/class-wp-plugins-list-table.php:284
+#: wp-admin/includes/class-wp-plugins-list-table.php:275
 msgid "Files in the <code>%s</code> directory are executed automatically."
-msgstr "Les fichiers contenus dans le dossier <code>%s</code> sont exécutés automatiquement."
+msgstr ""
+"Les fichiers contenus dans le dossier <code>%s</code> sont exécutés "
+"automatiquement."
 
 # Besoin d'une bonne trad pour "drop-ins", gn
-#: wp-admin/includes/class-wp-plugins-list-table.php:286
-msgid "Drop-ins are advanced plugins in the <code>%s</code> directory that replace WordPress functionality when present."
-msgstr "Les &laquo;&nbsp;drop-ins&nbsp;&raquo; sont des extensions avancées contenues dans le dossier <code>%s</code>&nbsp;; elles permettent le remplacement de certaines fonctionnalités de WordPress."
-
-#: wp-admin/includes/class-wp-plugins-list-table.php:340
+#: wp-admin/includes/class-wp-plugins-list-table.php:277
+msgid ""
+"Drop-ins are advanced plugins in the <code>%s</code> directory that replace "
+"WordPress functionality when present."
+msgstr ""
+"Les &laquo;&nbsp;drop-ins&nbsp;&raquo; sont des extensions avancées "
+"contenues dans le dossier <code>%s</code>&nbsp;; elles permettent le "
+"remplacement de certaines fonctionnalités de WordPress."
+
+#: wp-admin/includes/class-wp-plugins-list-table.php:329
 msgid "Inactive:"
 msgstr "Inactif&nbsp;:"
 
-#: wp-admin/includes/class-wp-plugins-list-table.php:340
+#: wp-admin/includes/class-wp-plugins-list-table.php:329
 msgid "Requires <code>%s</code> in <code>wp-config.php</code>."
 msgstr "Nécessite <code>%s</code> dans le fichier <code>wp-config.php</code>."
 
-#: wp-admin/includes/class-wp-plugins-list-table.php:353
-#: wp-admin/includes/class-wp-plugins-list-table.php:362
+#: wp-admin/includes/class-wp-plugins-list-table.php:342
+#: wp-admin/includes/class-wp-plugins-list-table.php:351
 msgid "Deactivate this plugin"
 msgstr "Désactiver cette extension"
 
-#: wp-admin/includes/class-wp-plugins-list-table.php:356
-#: wp-admin/includes/class-wp-upgrader.php:1447
+#: wp-admin/includes/class-wp-plugins-list-table.php:345
+#: wp-admin/includes/class-wp-upgrader.php:1438
 msgid "Activate this plugin for all sites in this network"
 msgstr "Activer cette extension sur tous les sites de ce réseau"
 
-#: wp-admin/includes/class-wp-plugins-list-table.php:358
-#: wp-admin/includes/class-wp-plugins-list-table.php:367
+#: wp-admin/includes/class-wp-plugins-list-table.php:347
+#: wp-admin/includes/class-wp-plugins-list-table.php:356
 msgid "Delete this plugin"
 msgstr "Supprimer cette extension"
 
-#: wp-admin/includes/class-wp-plugins-list-table.php:364
-#: wp-admin/includes/class-wp-upgrader.php:1206
-#: wp-admin/includes/class-wp-upgrader.php:1442
-#: wp-admin/includes/class-wp-upgrader.php:1444
+#: wp-admin/includes/class-wp-plugins-list-table.php:353
+#: wp-admin/includes/class-wp-upgrader.php:1195
+#: wp-admin/includes/class-wp-upgrader.php:1433
+#: wp-admin/includes/class-wp-upgrader.php:1435
 msgid "Activate this plugin"
 msgstr "Activer cette extension"
 
-#: wp-admin/includes/class-wp-plugins-list-table.php:372
+#: wp-admin/includes/class-wp-plugins-list-table.php:361
 msgid "Open this file in the Plugin Editor"
 msgstr "Ouvrir ce fichier dans l&rsquo;éditeur d&rsquo;extension"
 
-#: wp-admin/includes/class-wp-plugins-list-table.php:424
+#: wp-admin/includes/class-wp-plugins-list-table.php:418
 msgid "Visit plugin site"
 msgstr "Aller sur le site de l&rsquo;extension"
 
-#: wp-admin/includes/class-wp-posts-list-table.php:141
+#: wp-admin/includes/class-wp-posts-list-table.php:138
 msgctxt "posts"
 msgid "Mine <span class=\"count\">(%s)</span>"
 msgid_plural "Mine <span class=\"count\">(%s)</span>"
 msgstr[0] "Le mien <span class=\"count\">(%s)</span>"
 msgstr[1] "Les miens <span class=\"count\">(%s)</span>"
 
-#: wp-admin/includes/class-wp-posts-list-table.php:152
+#: wp-admin/includes/class-wp-posts-list-table.php:149
 msgctxt "posts"
 msgid "All <span class=\"count\">(%s)</span>"
 msgid_plural "All <span class=\"count\">(%s)</span>"
 msgstr[0] "Tous <span class=\"count\">(%s)</span>"
 msgstr[1] "Tous <span class=\"count\">(%s)</span>"
 
-#: wp-admin/includes/class-wp-posts-list-table.php:174
+#: wp-admin/includes/class-wp-posts-list-table.php:171
 msgctxt "posts"
 msgid "Sticky <span class=\"count\">(%s)</span>"
 msgid_plural "Sticky <span class=\"count\">(%s)</span>"
@@ -3072,137 +3933,140 @@
 msgstr[1] "Mis en avant <span class=\"count\">(%s)</span>"
 
 #. translators: manage posts column name
-#: wp-admin/includes/class-wp-posts-list-table.php:267
+#: wp-admin/includes/class-wp-posts-list-table.php:257
 msgctxt "column name"
 msgid "Title"
 msgstr "Titre"
 
-#: wp-admin/includes/class-wp-posts-list-table.php:536
+#: wp-admin/includes/class-wp-posts-list-table.php:545
 msgid "Edit this item"
 msgstr "Modifier cette entrée"
 
-#: wp-admin/includes/class-wp-posts-list-table.php:537
+#: wp-admin/includes/class-wp-posts-list-table.php:546
 msgid "Edit this item inline"
 msgstr "Modifier cette entrée sur place"
 
-#: wp-admin/includes/class-wp-posts-list-table.php:541
-msgid "Restore this item from the Trash"
-msgstr "Récupérer cette entrée depuis la Corbeille"
-
-#: wp-admin/includes/class-wp-posts-list-table.php:543
-msgid "Move this item to the Trash"
-msgstr "Déplacer cette entrée dans la Corbeille"
-
-#: wp-admin/includes/class-wp-posts-list-table.php:545
-msgid "Delete this item permanently"
-msgstr "Supprimer cette entrée définitivement"
-
 #: wp-admin/includes/class-wp-posts-list-table.php:550
-#: wp-admin/includes/class-wp-theme-install-list-table.php:189
-#: wp-admin/includes/class-wp-themes-list-table.php:139
-#: wp-admin/includes/class-wp-upgrader.php:1522
-#: wp-admin/includes/class-wp-upgrader.php:1523
-#: wp-admin/includes/class-wp-upgrader.php:1588
-#: wp-admin/includes/class-wp-upgrader.php:1589
+msgid "Restore this item from the Trash"
+msgstr "Récupérer cette entrée depuis la Corbeille"
+
+#: wp-admin/includes/class-wp-posts-list-table.php:552
+msgid "Move this item to the Trash"
+msgstr "Déplacer cette entrée dans la Corbeille"
+
+#: wp-admin/includes/class-wp-posts-list-table.php:554
+msgid "Delete this item permanently"
+msgstr "Supprimer cette entrée définitivement"
+
+#: wp-admin/includes/class-wp-posts-list-table.php:559
+#: wp-admin/includes/class-wp-theme-install-list-table.php:188
+#: wp-admin/includes/class-wp-themes-list-table.php:140
+#: wp-admin/includes/class-wp-upgrader.php:1515
+#: wp-admin/includes/class-wp-upgrader.php:1516
+#: wp-admin/includes/class-wp-upgrader.php:1582
+#: wp-admin/includes/class-wp-upgrader.php:1583
 msgid "Preview &#8220;%s&#8221;"
 msgstr "Prévisualiser &laquo;&nbsp;%s&nbsp;&raquo;"
 
-#: wp-admin/includes/class-wp-posts-list-table.php:590
+# Utilisé dans les listes d'articles, pages, fichiers, en rollover de la date.
+#: wp-admin/includes/class-wp-posts-list-table.php:577
+#: wp-admin/includes/dashboard.php:591
+msgid "Y/m/d g:i:s A"
+msgstr "d/m/Y \\à G \\h i \\m\\i\\n s \\s"
+
+#: wp-admin/includes/class-wp-posts-list-table.php:599
 msgid "Missed schedule"
 msgstr "Planification manquée"
 
-#: wp-admin/includes/class-wp-posts-list-table.php:594
+#: wp-admin/includes/class-wp-posts-list-table.php:603
 msgid "Last Modified"
 msgstr "Dernière modification"
 
-#: wp-admin/includes/class-wp-posts-list-table.php:728
+#: wp-admin/includes/class-wp-posts-list-table.php:733
 msgid "Bulk Edit"
 msgstr "Modifications groupées"
 
-#: wp-admin/includes/class-wp-posts-list-table.php:773
-#: wp-admin/includes/class-wp-posts-list-table.php:856
-#: wp-admin/includes/class-wp-posts-list-table.php:881
-#: wp-admin/includes/class-wp-posts-list-table.php:915
-#: wp-admin/includes/class-wp-posts-list-table.php:924
-#: wp-admin/includes/class-wp-posts-list-table.php:956
-#: wp-admin/includes/class-wp-posts-list-table.php:977
-#: wp-admin/includes/class-wp-posts-list-table.php:1006
+#: wp-admin/includes/class-wp-posts-list-table.php:778
+#: wp-admin/includes/class-wp-posts-list-table.php:861
+#: wp-admin/includes/class-wp-posts-list-table.php:886
+#: wp-admin/includes/class-wp-posts-list-table.php:920
+#: wp-admin/includes/class-wp-posts-list-table.php:929
+#: wp-admin/includes/class-wp-posts-list-table.php:961
+#: wp-admin/includes/class-wp-posts-list-table.php:982
+#: wp-admin/includes/class-wp-posts-list-table.php:1011
 msgid "&mdash; No Change &mdash;"
 msgstr "&mdash; Aucun changement &mdash;"
 
 #. translators: Between password field and private checkbox on post quick edit
 #. interface
-#: wp-admin/includes/class-wp-posts-list-table.php:799
+#: wp-admin/includes/class-wp-posts-list-table.php:804
 msgid "&ndash;OR&ndash;"
 msgstr "&mdash; OU &mdash;"
 
-#: wp-admin/includes/class-wp-posts-list-table.php:819
+#: wp-admin/includes/class-wp-posts-list-table.php:824
 msgid "[more]"
 msgstr "[plus]"
 
-#: wp-admin/includes/class-wp-posts-list-table.php:820
+#: wp-admin/includes/class-wp-posts-list-table.php:825
 msgid "[less]"
 msgstr "[moins]"
 
-#: wp-admin/includes/class-wp-posts-list-table.php:844
-#: wp-admin/includes/meta-boxes.php:571
-#: wp-admin/includes/meta-boxes.php:572
+#: wp-admin/includes/class-wp-posts-list-table.php:849
+#: wp-admin/includes/meta-boxes.php:635 wp-admin/includes/meta-boxes.php:636
 msgid "Parent"
 msgstr "Parent"
 
-#: wp-admin/includes/class-wp-posts-list-table.php:850
+#: wp-admin/includes/class-wp-posts-list-table.php:855
 msgid "Main Page (no parent)"
 msgstr "Page principale (pas de page parente)"
 
-#: wp-admin/includes/class-wp-posts-list-table.php:868
-#: wp-admin/includes/media.php:954
-#: wp-admin/includes/media.php:1661
-#: wp-admin/includes/meta-boxes.php:587
-#: wp-admin/includes/meta-boxes.php:588
+#: wp-admin/includes/class-wp-posts-list-table.php:873
+#: wp-admin/includes/media.php:949 wp-admin/includes/media.php:1824
+#: wp-admin/includes/meta-boxes.php:651 wp-admin/includes/meta-boxes.php:652
 msgid "Order"
 msgstr "Ordre"
 
-#: wp-admin/includes/class-wp-posts-list-table.php:883
-#: wp-admin/includes/meta-boxes.php:582
+#: wp-admin/includes/class-wp-posts-list-table.php:888
+#: wp-admin/includes/meta-boxes.php:646
 msgid "Default Template"
 msgstr "Modèle par défaut"
 
-#: wp-admin/includes/class-wp-posts-list-table.php:916
-#: wp-admin/includes/class-wp-posts-list-table.php:925
+#: wp-admin/includes/class-wp-posts-list-table.php:921
+#: wp-admin/includes/class-wp-posts-list-table.php:930
 msgid "Allow"
 msgstr "Autoriser"
 
-#: wp-admin/includes/class-wp-posts-list-table.php:917
-#: wp-admin/includes/class-wp-posts-list-table.php:926
+#: wp-admin/includes/class-wp-posts-list-table.php:922
+#: wp-admin/includes/class-wp-posts-list-table.php:931
 msgid "Do not allow"
 msgstr "Refuser"
 
-#: wp-admin/includes/class-wp-posts-list-table.php:938
+#: wp-admin/includes/class-wp-posts-list-table.php:943
 msgid "Allow Comments"
 msgstr "Autoriser les commentaires"
 
-#: wp-admin/includes/class-wp-posts-list-table.php:943
+#: wp-admin/includes/class-wp-posts-list-table.php:948
 msgid "Allow Pings"
 msgstr "Autoriser les notifications par ping"
 
 # Y'a p'tet mieux comme trad, non ? "tête de blog" ? boaf...
-#: wp-admin/includes/class-wp-posts-list-table.php:975
-#: wp-admin/includes/class-wp-posts-list-table.php:978
-#: wp-admin/includes/template.php:1482
+#: wp-admin/includes/class-wp-posts-list-table.php:980
+#: wp-admin/includes/class-wp-posts-list-table.php:983
+#: wp-admin/includes/template.php:1441
 msgid "Sticky"
 msgstr "Mettre en avant"
 
 # Y'a p'tet mieux comme trad, non ? "tête de blog" ? boaf...
-#: wp-admin/includes/class-wp-posts-list-table.php:979
+#: wp-admin/includes/class-wp-posts-list-table.php:984
 msgid "Not Sticky"
 msgstr "Ne pas mettre en avant"
 
-#: wp-admin/includes/class-wp-posts-list-table.php:987
+#: wp-admin/includes/class-wp-posts-list-table.php:992
 msgid "Make this post sticky"
 msgstr "Mettre ce contenu en avant"
 
-#: wp-admin/includes/class-wp-terms-list-table.php:100
-#: wp-admin/includes/class-wp-terms-list-table.php:340
+#: wp-admin/includes/class-wp-terms-list-table.php:99
+#: wp-admin/includes/class-wp-terms-list-table.php:338
 msgctxt "term name"
 msgid "Name"
 msgstr "Nom"
@@ -3226,59 +4090,83 @@
 msgid "No themes match your request."
 msgstr "Aucun thème ne correspond à votre requête."
 
-#: wp-admin/includes/class-wp-theme-install-list-table.php:219
-#: wp-admin/includes/class-wp-theme-install-list-table.php:332
+#: wp-admin/includes/class-wp-theme-install-list-table.php:218
+#: wp-admin/includes/class-wp-theme-install-list-table.php:331
 msgid "This theme is already installed and is up to date"
 msgstr "Cet thème est déjà installé et à jour"
 
-#: wp-admin/includes/class-wp-theme-install-list-table.php:219
-#: wp-admin/includes/class-wp-theme-install-list-table.php:332
+#: wp-admin/includes/class-wp-theme-install-list-table.php:218
+#: wp-admin/includes/class-wp-theme-install-list-table.php:331
 msgctxt "theme"
 msgid "Installed"
 msgstr "Installés"
 
-#: wp-admin/includes/class-wp-theme-install-list-table.php:223
+#: wp-admin/includes/class-wp-theme-install-list-table.php:222
 msgid "Preview %s"
 msgstr "Aperçu de %s"
 
-#: wp-admin/includes/class-wp-theme-install-list-table.php:256
+#: wp-admin/includes/class-wp-theme-install-list-table.php:255
 msgid "&larr; Close"
 msgstr "&larr; Fermer"
 
-#: wp-admin/includes/class-wp-theme-install-list-table.php:325
-#: wp-admin/includes/dashboard.php:977
+#: wp-admin/includes/class-wp-theme-install-list-table.php:324
+#: wp-admin/includes/dashboard.php:998
 msgid "Install"
 msgstr "Installer"
 
-#: wp-admin/includes/class-wp-themes-list-table.php:67
-msgid "You only have one theme enabled for this site right now. Visit the Network Admin to <a href=\"%1$s\">enable</a> or <a href=\"%2$s\">install</a> more themes."
-msgstr "Vous n&rsquo;avez qu&rsquo;un thème activé sur ce site actuellement. Veuillez vous rendre sur la page d&rsquo;administration du réseau pour <a href=\"%s\">activer</a> ou <a href=\"%s\">installer</a> plus de thèmes."
-
-#: wp-admin/includes/class-wp-themes-list-table.php:71
-msgid "You only have one theme enabled for this site right now. Visit the Network Admin to <a href=\"%1$s\">enable</a> more themes."
-msgstr "Vous n&rsquo;avez qu&rsquo;un thème activé sur ce site actuellement. Veuillez vous rendre sur la page d&rsquo;administration du réseau pour <a href=\"%s\">activer</a> plus de thèmes."
-
-#: wp-admin/includes/class-wp-themes-list-table.php:78
-msgid "You only have one theme installed right now. Live a little! You can choose from over 1,000 free themes in the WordPress.org Theme Directory at any time: just click on the <a href=\"%s\">Install Themes</a> tab above."
-msgstr "Vous n&rsquo;avez qu&rsquo;un seul thème d&rsquo;installé pour le moment. Faites vivre votre site&nbsp;! Vous pouvez quand vous le voulez choisir parmi plus de 1&nbsp;000 thèmes sur le dépôt de thèmes de WordPress.org&nbsp;: cliquez simplement sur l&rsquo;onglet  &laquo;&nbsp;<a href=\"%s\">Installer des thèmes</a>&nbsp;&raquo; ci-dessus."
-
-#: wp-admin/includes/class-wp-themes-list-table.php:84
-msgid "Only the current theme is available to you. Contact the %s administrator for information about accessing additional themes."
-msgstr "Vous n&rsquo;avez accès qu&rsquo;au thème déjà en place. Contactez l&rsquo;administrateur de %s pour obtenir des informations sur l&rsquo;accès à d&rsquo;autres thèmes."
-
-#: wp-admin/includes/class-wp-themes-list-table.php:136
-#: wp-admin/includes/class-wp-upgrader.php:1524
-#: wp-admin/includes/class-wp-upgrader.php:1590
+#: wp-admin/includes/class-wp-themes-list-table.php:68
+msgid ""
+"You only have one theme enabled for this site right now. Visit the Network "
+"Admin to <a href=\"%1$s\">enable</a> or <a href=\"%2$s\">install</a> more "
+"themes."
+msgstr ""
+"Vous n&rsquo;avez qu&rsquo;un thème activé sur ce site actuellement. "
+"Veuillez vous rendre sur la page d&rsquo;administration du réseau pour <a "
+"href=\"%s\">activer</a> ou <a href=\"%s\">installer</a> plus de thèmes."
+
+#: wp-admin/includes/class-wp-themes-list-table.php:72
+msgid ""
+"You only have one theme enabled for this site right now. Visit the Network "
+"Admin to <a href=\"%1$s\">enable</a> more themes."
+msgstr ""
+"Vous n&rsquo;avez qu&rsquo;un thème activé sur ce site actuellement. "
+"Veuillez vous rendre sur la page d&rsquo;administration du réseau pour <a "
+"href=\"%s\">activer</a> plus de thèmes."
+
+#: wp-admin/includes/class-wp-themes-list-table.php:79
+msgid ""
+"You only have one theme installed right now. Live a little! You can choose "
+"from over 1,000 free themes in the WordPress.org Theme Directory at any "
+"time: just click on the <a href=\"%s\">Install Themes</a> tab above."
+msgstr ""
+"Vous n&rsquo;avez qu&rsquo;un seul thème d&rsquo;installé pour le moment. "
+"Faites vivre votre site&nbsp;! Vous pouvez quand vous le voulez choisir "
+"parmi plus de 1&nbsp;000 thèmes sur le dépôt de thèmes de WordPress."
+"org&nbsp;: cliquez simplement sur l&rsquo;onglet  &laquo;&nbsp;<a href=\"%s"
+"\">Installer des thèmes</a>&nbsp;&raquo; ci-dessus."
+
+#: wp-admin/includes/class-wp-themes-list-table.php:85
+msgid ""
+"Only the current theme is available to you. Contact the %s administrator for "
+"information about accessing additional themes."
+msgstr ""
+"Vous n&rsquo;avez accès qu&rsquo;au thème déjà en place. Contactez l&rsquo;"
+"administrateur de %s pour obtenir des informations sur l&rsquo;accès à "
+"d&rsquo;autres thèmes."
+
+#: wp-admin/includes/class-wp-themes-list-table.php:137
+#: wp-admin/includes/class-wp-upgrader.php:1517
+#: wp-admin/includes/class-wp-upgrader.php:1584
 msgid "Activate &#8220;%s&#8221;"
 msgstr "Activer &laquo;&nbsp;%s&nbsp;&raquo;"
 
-#: wp-admin/includes/class-wp-themes-list-table.php:143
-#: wp-admin/includes/class-wp-upgrader.php:1523
-#: wp-admin/includes/class-wp-upgrader.php:1589
+#: wp-admin/includes/class-wp-themes-list-table.php:144
+#: wp-admin/includes/class-wp-upgrader.php:1516
+#: wp-admin/includes/class-wp-upgrader.php:1583
 msgid "Live Preview"
 msgstr "Prévisualiser"
 
-#: wp-admin/includes/class-wp-themes-list-table.php:147
+#: wp-admin/includes/class-wp-themes-list-table.php:148
 msgid ""
 "You are about to delete this theme '%s'\n"
 "  'Cancel' to stop, 'OK' to delete."
@@ -3286,34 +4174,30 @@
 "Vous êtes sur le point de supprimer le thème « %s ».\n"
 "  « Annuler » pour abandonner, « OK » pour le supprimer."
 
-#: wp-admin/includes/class-wp-themes-list-table.php:182
+#: wp-admin/includes/class-wp-themes-list-table.php:183
 msgid "Version: "
 msgstr "Version :"
 
-#. translators: 1: theme title, 2:  template dir, 3: stylesheet_dir, 4: theme
-#. title, 5: parent_theme
 #: wp-admin/includes/class-wp-themes-list-table.php:186
-msgid "The template files are located in <code>%2$s</code>. The stylesheet files are located in <code>%3$s</code>. <strong>%4$s</strong> uses templates from <strong>%5$s</strong>. Changes made to the templates will affect both themes."
-msgstr "Les fichiers du thème se trouvent dans <strong>%2$s</strong>. Les feuilles de style sont dans <code>%3$s</code>. <strong>%4$s</strong> utilise les modèles de <strong>%5$s</strong>. Tout changement dans les modèles affectera les deux thèmes."
-
-#. translators: 1: theme title, 2:  template dir, 3: stylesheet_dir
-#: wp-admin/includes/class-wp-themes-list-table.php:190
-msgid "All of this theme&#8217;s files are located in <code>%2$s</code>."
-msgstr "Tous les fichiers de ce thème se trouvent dans <code>%2$s</code>."
+#: wp-admin/themes.php:149
+msgid "This <a href=\"%1$s\">child theme</a> requires its parent theme, %2$s."
+msgstr "Ce <a href=\"%1$s\">thème enfant</a> nécessite son thème parent, %2$s."
+
+#: wp-admin/includes/class-wp-themes-list-table.php:187
+#: wp-admin/themes.php:150
+msgid "http://codex.wordpress.org/Child_Themes"
+msgstr "http://codex.wordpress.org/Child_Themes"
 
 #: wp-admin/includes/class-wp-upgrader.php:41
 msgid "Invalid Data provided."
 msgstr "Les données fournies ne sont pas valides."
 
-#: wp-admin/includes/class-wp-upgrader.php:42
-#: wp-admin/includes/file.php:518
-#: wp-admin/includes/plugin.php:709
-#: wp-admin/includes/theme.php:53
+#: wp-admin/includes/class-wp-upgrader.php:42 wp-admin/includes/file.php:522
+#: wp-admin/includes/plugin.php:710 wp-admin/includes/theme.php:53
 msgid "Could not access filesystem."
 msgstr "Impossible d&rsquo;accéder au système de fichier."
 
-#: wp-admin/includes/class-wp-upgrader.php:43
-#: wp-admin/includes/plugin.php:712
+#: wp-admin/includes/class-wp-upgrader.php:43 wp-admin/includes/plugin.php:713
 #: wp-admin/includes/theme.php:56
 msgid "Filesystem error."
 msgstr "Erreur du système de fichier."
@@ -3324,10 +4208,10 @@
 
 #: wp-admin/includes/class-wp-upgrader.php:45
 msgid "Unable to locate WordPress Content directory (wp-content)."
-msgstr "Impossible de localiser le dossier de contenu de WordPress (wp-content)."
-
-#: wp-admin/includes/class-wp-upgrader.php:46
-#: wp-admin/includes/plugin.php:717
+msgstr ""
+"Impossible de localiser le dossier de contenu de WordPress (wp-content)."
+
+#: wp-admin/includes/class-wp-upgrader.php:46 wp-admin/includes/plugin.php:718
 msgid "Unable to locate WordPress Plugin directory."
 msgstr "Impossible de localiser le dossier d&rsquo;extension de WordPress."
 
@@ -3345,7 +4229,7 @@
 msgstr "Le téléchargement a échoué."
 
 #: wp-admin/includes/class-wp-upgrader.php:52
-#: wp-admin/includes/update-core.php:512
+#: wp-admin/includes/update-core.php:663
 msgid "Installing the latest version&#8230;"
 msgstr "Installation de la dernière version&#8230;"
 
@@ -3353,11 +4237,9 @@
 msgid "Destination folder already exists."
 msgstr "Le dossier de destination existe déjà."
 
-#: wp-admin/includes/class-wp-upgrader.php:54
-#: wp-admin/includes/file.php:612
-#: wp-admin/includes/file.php:704
-#: wp-admin/includes/file.php:763
-#: wp-admin/includes/update-core.php:662
+#: wp-admin/includes/class-wp-upgrader.php:54 wp-admin/includes/file.php:616
+#: wp-admin/includes/file.php:708 wp-admin/includes/file.php:767
+#: wp-admin/includes/update-core.php:813
 msgid "Could not create directory."
 msgstr "Impossible de créer le dossier."
 
@@ -3383,19 +4265,20 @@
 
 #: wp-admin/includes/class-wp-upgrader.php:374
 #: wp-admin/includes/class-wp-upgrader.php:650
-#: wp-admin/includes/class-wp-upgrader.php:1021
+#: wp-admin/includes/class-wp-upgrader.php:1010
 msgid "Update package not available."
 msgstr "Pas d&rsquo;archive de mise à jour disponible."
 
 #: wp-admin/includes/class-wp-upgrader.php:375
 #: wp-admin/includes/class-wp-upgrader.php:651
-#: wp-admin/includes/class-wp-upgrader.php:1022
+#: wp-admin/includes/class-wp-upgrader.php:1011
 msgid "Downloading update from <span class=\"code\">%s</span>&#8230;"
-msgstr "Téléchargement de la mise à jour depuis <span class=\"code\">%s</span>&#8230;"
+msgstr ""
+"Téléchargement de la mise à jour depuis <span class=\"code\">%s</span>&#8230;"
 
 #: wp-admin/includes/class-wp-upgrader.php:376
 #: wp-admin/includes/class-wp-upgrader.php:652
-#: wp-admin/includes/class-wp-upgrader.php:1023
+#: wp-admin/includes/class-wp-upgrader.php:1012
 msgid "Unpacking the update&#8230;"
 msgstr "Décompression de la mise à jour&#8230;"
 
@@ -3423,7 +4306,9 @@
 #: wp-admin/includes/class-wp-upgrader.php:385
 #: wp-admin/includes/class-wp-upgrader.php:661
 msgid "Downloading install package from <span class=\"code\">%s</span>&#8230;"
-msgstr "Téléchargement de l&rsquo;archive d&rsquo;installation depuis <span class=\"code\">%s</span>&#8230;"
+msgstr ""
+"Téléchargement de l&rsquo;archive d&rsquo;installation depuis <span class="
+"\"code\">%s</span>&#8230;"
 
 #: wp-admin/includes/class-wp-upgrader.php:386
 #: wp-admin/includes/class-wp-upgrader.php:662
@@ -3485,12 +4370,15 @@
 
 #: wp-admin/includes/class-wp-upgrader.php:668
 msgid "This theme requires a parent theme. Checking if it is installed&#8230;"
-msgstr "Ce thème nécessite un thème parent. Nous vérifions s&rsquo;il est installé&#8230;"
+msgstr ""
+"Ce thème nécessite un thème parent. Nous vérifions s&rsquo;il est "
+"installé&#8230;"
 
 #. translators: 1: theme name, 2: version
 #: wp-admin/includes/class-wp-upgrader.php:670
 msgid "Preparing to install <strong>%1$s %2$s</strong>&#8230;"
-msgstr "Préparation à l&rsquo;installation de <strong>%1$s %2$s</strong>&#8230;"
+msgstr ""
+"Préparation à l&rsquo;installation de <strong>%1$s %2$s</strong>&#8230;"
 
 #. translators: 1: theme name, 2: version
 #: wp-admin/includes/class-wp-upgrader.php:672
@@ -3503,150 +4391,162 @@
 msgstr "Le thème parent, <strong>%1$s %2$s</strong>, a bien été installé."
 
 #: wp-admin/includes/class-wp-upgrader.php:675
-msgid "<strong>The parent theme could not be found.</strong> You will need to install the parent theme, <strong>%s</strong>, before you can use this child theme."
-msgstr "<strong>Le thème parent n&rsquo;a pas pu être trouvé.</strong> Vous allez devoir installer le thème parent, <strong>%s</strong>, avant de pouvoir utiliser ce thème enfant."
-
-#: wp-admin/includes/class-wp-upgrader.php:926
+msgid ""
+"<strong>The parent theme could not be found.</strong> You will need to "
+"install the parent theme, <strong>%s</strong>, before you can use this child "
+"theme."
+msgstr ""
+"<strong>Le thème parent n&rsquo;a pas pu être trouvé.</strong> Vous allez "
+"devoir installer le thème parent, <strong>%s</strong>, avant de pouvoir "
+"utiliser ce thème enfant."
+
+#: wp-admin/includes/class-wp-upgrader.php:917
 msgid "The theme is missing the <code>style.css</code> stylesheet."
 msgstr "Il manque le fichier <code>style.css</code> à ce thème."
 
-#: wp-admin/includes/class-wp-upgrader.php:931
-msgid "The <code>style.css</code> stylesheet doesn't contain a valid theme header."
-msgstr "Le fichier <code>style.css</code> ne contient pas un en-tête valide de thème."
-
-#: wp-admin/includes/class-wp-upgrader.php:935
+#: wp-admin/includes/class-wp-upgrader.php:922
+msgid ""
+"The <code>style.css</code> stylesheet doesn't contain a valid theme header."
+msgstr ""
+"Le fichier <code>style.css</code> ne contient pas un en-tête valide de thème."
+
+#: wp-admin/includes/class-wp-upgrader.php:926
 msgid "The theme is missing the <code>index.php</code> file."
 msgstr "Il manque le fichier <code>index.php</code> au thème."
 
-#: wp-admin/includes/class-wp-upgrader.php:1020
+#: wp-admin/includes/class-wp-upgrader.php:1009
 msgid "WordPress is at the latest version."
 msgstr "Vous avez la dernière version de WordPress."
 
-#: wp-admin/includes/class-wp-upgrader.php:1024
+#: wp-admin/includes/class-wp-upgrader.php:1013
 msgid "Could not copy files."
 msgstr "Impossible de copier les fichiers."
 
-#: wp-admin/includes/class-wp-upgrader.php:1025
+#: wp-admin/includes/class-wp-upgrader.php:1014
 msgid "Could not copy files. You may have run out of disk space."
-msgstr "Impossible de copier les fichiers. Il se pourrait que vous manquiez de place."
-
-#: wp-admin/includes/class-wp-upgrader.php:1188
-#: wp-admin/update.php:54
+msgstr ""
+"Impossible de copier les fichiers. Il se pourrait que vous manquiez de place."
+
+#: wp-admin/includes/class-wp-upgrader.php:1177 wp-admin/update.php:54
 msgid "Update Plugin"
 msgstr "Mettre à jour l&rsquo;extension"
 
-#: wp-admin/includes/class-wp-upgrader.php:1206
-#: wp-admin/includes/class-wp-upgrader.php:1444
+#: wp-admin/includes/class-wp-upgrader.php:1195
+#: wp-admin/includes/class-wp-upgrader.php:1435
 msgid "Activate Plugin"
 msgstr "Activer l&rsquo;extension"
 
-#: wp-admin/includes/class-wp-upgrader.php:1207
-#: wp-admin/includes/class-wp-upgrader.php:1362
+#: wp-admin/includes/class-wp-upgrader.php:1196
+#: wp-admin/includes/class-wp-upgrader.php:1349
 msgid "Go to plugins page"
 msgstr "Aller sur la page des extensions"
 
-#: wp-admin/includes/class-wp-upgrader.php:1207
-#: wp-admin/includes/class-wp-upgrader.php:1362
-#: wp-admin/includes/class-wp-upgrader.php:1456
+#: wp-admin/includes/class-wp-upgrader.php:1196
+#: wp-admin/includes/class-wp-upgrader.php:1349
+#: wp-admin/includes/class-wp-upgrader.php:1447
 msgid "Return to Plugins page"
 msgstr "Retourner sur la page des extensions"
 
-#: wp-admin/includes/class-wp-upgrader.php:1246
-msgid "The update process is starting. This process may take a while on some hosts, so please be patient."
-msgstr "Le processus de mise à jour se lance. Il peut prendre un certain temps chez certains hébergeurs, merci pour votre patience."
-
-#: wp-admin/includes/class-wp-upgrader.php:1247
+#: wp-admin/includes/class-wp-upgrader.php:1233
+msgid ""
+"The update process is starting. This process may take a while on some hosts, "
+"so please be patient."
+msgstr ""
+"Le processus de mise à jour se lance. Il peut prendre un certain temps chez "
+"certains hébergeurs, merci pour votre patience."
+
+#: wp-admin/includes/class-wp-upgrader.php:1234
 msgid "An error occurred while updating %1$s: <strong>%2$s</strong>."
-msgstr "Une erreur est survenue pendant la mise à jour de %1$s&nbsp;: <strong>%2$s</strong>."
-
-#: wp-admin/includes/class-wp-upgrader.php:1248
+msgstr ""
+"Une erreur est survenue pendant la mise à jour de %1$s&nbsp;: <strong>%2$s</"
+"strong>."
+
+#: wp-admin/includes/class-wp-upgrader.php:1235
 msgid "The update of %1$s failed."
 msgstr "La mise à jour de %1$s a échoué."
 
-#: wp-admin/includes/class-wp-upgrader.php:1249
+#: wp-admin/includes/class-wp-upgrader.php:1236
 msgid "%1$s updated successfully."
 msgstr "%1$s a bien été mis à jour."
 
-#: wp-admin/includes/class-wp-upgrader.php:1249
+#: wp-admin/includes/class-wp-upgrader.php:1236
 msgid "Show Details"
 msgstr "Afficher les détails"
 
-#: wp-admin/includes/class-wp-upgrader.php:1249
+#: wp-admin/includes/class-wp-upgrader.php:1236
 msgid "Hide Details"
 msgstr "Cacher les détails"
 
-#: wp-admin/includes/class-wp-upgrader.php:1250
+#: wp-admin/includes/class-wp-upgrader.php:1237
 msgid "All updates have been completed."
 msgstr "Toutes les mises à jour sont terminées."
 
-#: wp-admin/includes/class-wp-upgrader.php:1349
+#: wp-admin/includes/class-wp-upgrader.php:1336
 msgid "Updating Plugin %1$s (%2$d/%3$d)"
 msgstr "Mise à jour de l&rsquo;extension %1$s (%2$d/%3$d)"
 
-#: wp-admin/includes/class-wp-upgrader.php:1363
-#: wp-admin/includes/class-wp-upgrader.php:1396
+#: wp-admin/includes/class-wp-upgrader.php:1350
+#: wp-admin/includes/class-wp-upgrader.php:1385
 msgid "Go to WordPress Updates page"
 msgstr "Aller à la page des mises à jour de WordPress"
 
-#: wp-admin/includes/class-wp-upgrader.php:1363
-#: wp-admin/includes/class-wp-upgrader.php:1396
+#: wp-admin/includes/class-wp-upgrader.php:1350
+#: wp-admin/includes/class-wp-upgrader.php:1385
 msgid "Return to WordPress Updates"
 msgstr "Retourner aux mises à jour de WordPress"
 
-#: wp-admin/includes/class-wp-upgrader.php:1381
+#: wp-admin/includes/class-wp-upgrader.php:1370
 msgid "Updating Theme %1$s (%2$d/%3$d)"
 msgstr "Mise à jour du thème %1$s (%2$d/%3$d)"
 
-#: wp-admin/includes/class-wp-upgrader.php:1395
+#: wp-admin/includes/class-wp-upgrader.php:1384
 msgid "Go to themes page"
 msgstr "Aller à la page des thèmes"
 
-#: wp-admin/includes/class-wp-upgrader.php:1395
-#: wp-admin/includes/class-wp-upgrader.php:1532
-#: wp-admin/includes/class-wp-upgrader.php:1597
+#: wp-admin/includes/class-wp-upgrader.php:1384
+#: wp-admin/includes/class-wp-upgrader.php:1525
+#: wp-admin/includes/class-wp-upgrader.php:1591
 msgid "Return to Themes page"
 msgstr "Retourner sur la page des thèmes"
 
-#: wp-admin/includes/class-wp-upgrader.php:1430
+#: wp-admin/includes/class-wp-upgrader.php:1421
 msgid "Successfully installed the plugin <strong>%s %s</strong>."
 msgstr "L&rsquo;extension <strong>%s %s</strong> a bien été installée."
 
-#: wp-admin/includes/class-wp-upgrader.php:1442
+#: wp-admin/includes/class-wp-upgrader.php:1433
 msgid "Activate Plugin &amp; Run Importer"
 msgstr "Activer l&rsquo;extension &amp; lancer l&rsquo;importateur"
 
-#: wp-admin/includes/class-wp-upgrader.php:1452
+#: wp-admin/includes/class-wp-upgrader.php:1443
 msgid "Return to Importers"
 msgstr "Retour aux importateurs"
 
-#: wp-admin/includes/class-wp-upgrader.php:1454
+#: wp-admin/includes/class-wp-upgrader.php:1445
 msgid "Return to Plugin Installer"
 msgstr "Retourner à l&rsquo;installeur d&rsquo;extensions"
 
-#: wp-admin/includes/class-wp-upgrader.php:1527
+#: wp-admin/includes/class-wp-upgrader.php:1520
 msgid "Enable this theme for all sites in this network"
 msgstr "Activer ce thème sur tous les sites de ce réseau"
 
-#: wp-admin/includes/class-wp-upgrader.php:1530
+#: wp-admin/includes/class-wp-upgrader.php:1523
 msgid "Return to Theme Installer"
 msgstr "Retourner à l&rsquo;installeur de thèmes"
 
-#: wp-admin/includes/class-wp-upgrader.php:1532
+#: wp-admin/includes/class-wp-upgrader.php:1525
 msgid "Themes page"
 msgstr "Page des thèmes"
 
-#: wp-admin/includes/class-wp-upgrader.php:1556
-#: wp-admin/update.php:157
+#: wp-admin/includes/class-wp-upgrader.php:1549 wp-admin/update.php:157
 msgid "Update Theme"
 msgstr "Mettre à jour le thème"
 
-#: wp-admin/includes/class-wp-upgrader.php:1586
-#: wp-admin/themes.php:124
+#: wp-admin/includes/class-wp-upgrader.php:1580 wp-admin/themes.php:124
 msgid "Customize &#8220;%s&#8221;"
 msgstr "Personnaliser &laquo;&nbsp;%s&nbsp;&raquo;"
 
-#: wp-admin/includes/class-wp-upgrader.php:1622
-#: wp-admin/includes/class-wp-upgrader.php:1656
+#: wp-admin/includes/class-wp-upgrader.php:1616
+#: wp-admin/includes/class-wp-upgrader.php:1650
 msgid "Please select a file"
 msgstr "Veuillez choisir un fichier"
 
@@ -3659,8 +4559,8 @@
 msgid "%1$s <span class=\"count\">(%2$s)</span>"
 msgstr "%1$s <span class=\"count\">(%2$s)</span>"
 
-#: wp-admin/includes/class-wp-users-list-table.php:143
-#: wp-admin/includes/class-wp-users-list-table.php:145
+#: wp-admin/includes/class-wp-users-list-table.php:142
+#: wp-admin/includes/class-wp-users-list-table.php:144
 msgid "Change role to&hellip;"
 msgstr "Changer de rôle pour&hellip;"
 
@@ -3668,13 +4568,13 @@
 msgid "Change"
 msgstr "Changer"
 
-#: wp-admin/includes/class-wp-users-list-table.php:166
-#: wp-admin/user-new.php:275
-#: wp-admin/user-new.php:355
+#: wp-admin/includes/class-wp-users-list-table.php:168
+#: wp-admin/user-edit.php:249 wp-admin/user-new.php:280
+#: wp-admin/user-new.php:360
 msgid "Role"
 msgstr "Rôle"
 
-#: wp-admin/includes/class-wp-users-list-table.php:300
+#: wp-admin/includes/class-wp-users-list-table.php:306
 msgid "View posts by this author"
 msgstr "Afficher les articles de cet auteur"
 
@@ -3686,8 +4586,7 @@
 msgid "Your browser is out of date!"
 msgstr "Votre navigateur est obsolète&nbsp;!"
 
-#: wp-admin/includes/dashboard.php:40
-#: wp-admin/includes/dashboard.php:43
+#: wp-admin/includes/dashboard.php:40 wp-admin/includes/dashboard.php:43
 msgid "Right Now"
 msgstr "Aujourd&rsquo;hui"
 
@@ -3704,22 +4603,18 @@
 msgstr "Brouillons récents"
 
 #: wp-admin/includes/dashboard.php:89
-#: wp-admin/includes/upgrade.php:153
 msgid "http://wordpress.org/news/"
 msgstr "http://www.wordpress-fr.net/planet/"
 
 #: wp-admin/includes/dashboard.php:90
-#: wp-admin/includes/upgrade.php:155
 msgid "http://wordpress.org/news/feed/"
 msgstr "http://feeds2.feedburner.com/WordpressFrancophonePlanet"
 
 #: wp-admin/includes/dashboard.php:91
-#: wp-admin/includes/upgrade.php:154
 msgid "WordPress Blog"
 msgstr "Blog WordPress"
 
 #: wp-admin/includes/dashboard.php:104
-#: wp-admin/includes/upgrade.php:178
 msgid "http://planet.wordpress.org/"
 msgstr "http://www.wordpress-fr.net/planet/"
 
@@ -3731,664 +4626,738 @@
 msgid "Other WordPress News"
 msgstr "Autres actualités de WordPress (en français)"
 
-#: wp-admin/includes/dashboard.php:129
-#: wp-admin/includes/dashboard.php:577
+#: wp-admin/includes/dashboard.php:129 wp-admin/includes/dashboard.php:600
 msgid "View all"
 msgstr "Afficher tout"
 
-#: wp-admin/includes/dashboard.php:160
+#: wp-admin/includes/dashboard.php:161
 msgid "Configure"
 msgstr "Configurer"
 
-#: wp-admin/includes/dashboard.php:241
+#: wp-admin/includes/dashboard.php:243
 msgid "Post"
 msgid_plural "Posts"
 msgstr[0] "Article"
 msgstr[1] "Articles"
 
-#: wp-admin/includes/dashboard.php:269
+#: wp-admin/includes/dashboard.php:271
 msgid "Page"
 msgid_plural "Pages"
 msgstr[0] "Page"
 msgstr[1] "Pages"
 
-#: wp-admin/includes/dashboard.php:281
+#: wp-admin/includes/dashboard.php:283
 msgid "Category"
 msgid_plural "Categories"
 msgstr[0] "Catégorie"
 msgstr[1] "Catégories"
 
-#: wp-admin/includes/dashboard.php:293
+#: wp-admin/includes/dashboard.php:295
 msgid "Tag"
 msgid_plural "Tags"
 msgstr[0] "Mot-clef"
 msgstr[1] "Mots-clefs"
 
-#: wp-admin/includes/dashboard.php:311
+#: wp-admin/includes/dashboard.php:313
 msgid "Comment"
 msgid_plural "Comments"
 msgstr[0] "Commentaire"
 msgstr[1] "Commentaires"
 
-#: wp-admin/includes/dashboard.php:323
+#: wp-admin/includes/dashboard.php:325
 msgctxt "Right Now"
 msgid "Approved"
 msgid_plural "Approved"
 msgstr[0] "Approuvé"
 msgstr[1] "Approuvés"
 
-#: wp-admin/includes/dashboard.php:335
+#: wp-admin/includes/dashboard.php:337
 msgid "Pending"
 msgid_plural "Pending"
 msgstr[0] "En attente"
 msgstr[1] "En attente"
 
-#: wp-admin/includes/dashboard.php:347
+#: wp-admin/includes/dashboard.php:349
 msgctxt "comment"
 msgid "Spam"
 msgid_plural "Spam"
 msgstr[0] "Indésirable"
 msgstr[1] "Indésirables"
 
-#: wp-admin/includes/dashboard.php:383
-msgid "Theme <span class=\"b\">%1$s</span> with <span class=\"b\"><a href=\"widgets.php\">%2$s Widget</a></span>"
-msgid_plural "Theme <span class=\"b\">%1$s</span> with <span class=\"b\"><a href=\"widgets.php\">%2$s Widgets</a></span>"
-msgstr[0] "Thème <span class=\"b\">%1$s</span> avec <span class=\"b\"><a href=\"widgets.php\">%2$s widget</a></span>"
-msgstr[1] "Thème <span class=\"b\">%1$s</span> avec <span class=\"b\"><a href=\"widgets.php\">%2$s widgets</a></span>"
-
 #: wp-admin/includes/dashboard.php:385
-msgid "Theme <span class=\"b\">%1$s</span> with <span class=\"b\">%2$s Widget</span>"
-msgid_plural "Theme <span class=\"b\">%1$s</span> with <span class=\"b\">%2$s Widgets</span>"
-msgstr[0] "Thème <span class=\"b\">%1$s</span> avec <span class=\"b\">%2$s widget</span>"
-msgstr[1] "Thème <span class=\"b\">%1$s</span> avec <span class=\"b\">%2$s widgets</span>"
-
-#: wp-admin/includes/dashboard.php:389
+msgid ""
+"Theme <span class=\"b\">%1$s</span> with <span class=\"b\"><a href=\"widgets."
+"php\">%2$s Widget</a></span>"
+msgid_plural ""
+"Theme <span class=\"b\">%1$s</span> with <span class=\"b\"><a href=\"widgets."
+"php\">%2$s Widgets</a></span>"
+msgstr[0] ""
+"Thème <span class=\"b\">%1$s</span> avec <span class=\"b\"><a href=\"widgets."
+"php\">%2$s widget</a></span>"
+msgstr[1] ""
+"Thème <span class=\"b\">%1$s</span> avec <span class=\"b\"><a href=\"widgets."
+"php\">%2$s widgets</a></span>"
+
+#: wp-admin/includes/dashboard.php:387
+msgid ""
+"Theme <span class=\"b\">%1$s</span> with <span class=\"b\">%2$s Widget</span>"
+msgid_plural ""
+"Theme <span class=\"b\">%1$s</span> with <span class=\"b\">%2$s Widgets</"
+"span>"
+msgstr[0] ""
+"Thème <span class=\"b\">%1$s</span> avec <span class=\"b\">%2$s widget</span>"
+msgstr[1] ""
+"Thème <span class=\"b\">%1$s</span> avec <span class=\"b\">%2$s widgets</"
+"span>"
+
+#: wp-admin/includes/dashboard.php:391
 msgid "Theme <span class=\"b\"><a href=\"themes.php\">%1$s</a></span>"
 msgstr "Thème <span class=\"b\"><a href=\"themes.php\">%1$s</a></span>"
 
-#: wp-admin/includes/dashboard.php:391
+#: wp-admin/includes/dashboard.php:393
 msgid "Theme <span class=\"b\">%1$s</span>"
 msgstr "Thème <span class=\"b\">%1$s</span>"
 
-#: wp-admin/includes/dashboard.php:397
+#: wp-admin/includes/dashboard.php:399
 msgid "Your site is asking search engines not to index its content"
-msgstr "Votre site indique aux moteurs de recherche de ne pas indexer son contenu"
-
-#: wp-admin/includes/dashboard.php:398
-msgid "Search Engines Blocked"
-msgstr "Moteurs de recherche bloqués"
-
-#: wp-admin/includes/dashboard.php:413
-#: wp-admin/includes/ms.php:618
+msgstr ""
+"Votre site indique aux moteurs de recherche de ne pas indexer son contenu"
+
+#: wp-admin/includes/dashboard.php:400
+msgid "Search Engines Discouraged"
+msgstr "Moteurs de recherche refusés"
+
+#: wp-admin/includes/dashboard.php:415 wp-admin/includes/ms.php:595
 msgid "Create a New Site"
 msgstr "Créer un nouveau site"
 
-#: wp-admin/includes/dashboard.php:415
+#: wp-admin/includes/dashboard.php:417
 msgid "Create a New User"
 msgstr "Créer un nouvel utilisateur"
 
-#: wp-admin/includes/dashboard.php:420
+#: wp-admin/includes/dashboard.php:422
 msgid "%s user"
 msgid_plural "%s users"
 msgstr[0] "%s utilisateur"
 msgstr[1] "%s utilisateurs"
 
-#: wp-admin/includes/dashboard.php:421
+#: wp-admin/includes/dashboard.php:423
 msgid "%s site"
 msgid_plural "%s sites"
 msgstr[0] "%s site"
 msgstr[1] "%s sites"
 
-#: wp-admin/includes/dashboard.php:423
+#: wp-admin/includes/dashboard.php:425
 msgid "You have %1$s and %2$s."
 msgstr "Votre plateforme compte %1$s et %2$s."
 
-#: wp-admin/includes/dashboard.php:442
-#: wp-admin/users.php:417
+#: wp-admin/includes/dashboard.php:444 wp-admin/users.php:443
 msgid "Search Users"
 msgstr "Chercher un utilisateur"
 
-#: wp-admin/includes/dashboard.php:449
+#: wp-admin/includes/dashboard.php:451
 msgid "Search Sites"
 msgstr "Chercher un site"
 
-#: wp-admin/includes/dashboard.php:466
-msgid "Post published. <a href=\"%s\">View post</a> | <a href=\"%s\">Edit post</a>"
-msgstr "Article publié. <a href=\"%s\">Afficher l&rsquo;article</a> | <a href=\"%s\">Modifier l&rsquo;article</a>"
-
 #: wp-admin/includes/dashboard.php:468
-msgid "Post submitted. <a href=\"%s\">Preview post</a> | <a href=\"%s\">Edit post</a>"
-msgstr "Article envoyé. <a href=\"%s\">Prévisualiser l&rsquo;article</a> | <a href=\"%s\">Modifier l&rsquo;article</a>"
+msgid ""
+"Post published. <a href=\"%s\">View post</a> | <a href=\"%s\">Edit post</a>"
+msgstr ""
+"Article publié. <a href=\"%s\">Afficher l&rsquo;article</a> | <a href=\"%s"
+"\">Modifier l&rsquo;article</a>"
 
 #: wp-admin/includes/dashboard.php:470
-msgid "Draft saved. <a href=\"%s\">Preview post</a> | <a href=\"%s\">Edit post</a>"
-msgstr "Brouillon enregistré. <a href=\"%s\">Afficher l&rsquo;article</a> | <a href=\"%s\">Modifier l&rsquo;article</a>"
-
-#: wp-admin/includes/dashboard.php:483
+msgid ""
+"Post submitted. <a href=\"%s\">Preview post</a> | <a href=\"%s\">Edit post</"
+"a>"
+msgstr ""
+"Article envoyé. <a href=\"%s\">Prévisualiser l&rsquo;article</a> | <a href="
+"\"%s\">Modifier l&rsquo;article</a>"
+
+#: wp-admin/includes/dashboard.php:472
+msgid ""
+"Draft saved. <a href=\"%s\">Preview post</a> | <a href=\"%s\">Edit post</a>"
+msgstr ""
+"Brouillon enregistré. <a href=\"%s\">Afficher l&rsquo;article</a> | <a href="
+"\"%s\">Modifier l&rsquo;article</a>"
+
+#: wp-admin/includes/dashboard.php:485
 msgid "You can also try %s, easy blogging from anywhere on the Web."
-msgstr "Vous pouvez aussi essayer %s, qui simplifie la création d&rsquo;articles depuis n&rsquo;importe où sur le Web."
-
-#: wp-admin/includes/dashboard.php:483
-#: wp-admin/options-writing.php:27
-#: wp-admin/options-writing.php:122
-#: wp-admin/options-writing.php:126
-#: wp-admin/press-this.php:302
-#: wp-admin/press-this.php:459
-#: wp-admin/tools.php:16
-#: wp-admin/tools.php:41
-#: wp-admin/tools.php:46
+msgstr ""
+"Vous pouvez aussi essayer %s, qui simplifie la création d&rsquo;articles "
+"depuis n&rsquo;importe où sur le Web."
+
+#: wp-admin/includes/dashboard.php:485 wp-admin/options-writing.php:27
+#: wp-admin/options-writing.php:117 wp-admin/options-writing.php:121
+#: wp-admin/press-this.php:302 wp-admin/press-this.php:459
+#: wp-admin/tools.php:16 wp-admin/tools.php:41 wp-admin/tools.php:46
 msgid "Press This"
 msgstr "Publier un article"
 
-#: wp-admin/includes/dashboard.php:535
+#: wp-admin/includes/dashboard.php:548
+msgid "Tags (separate with commas)"
+msgstr "Mots-clefs (séparés par des virgules)"
+
+#: wp-admin/includes/dashboard.php:554 wp-admin/includes/meta-boxes.php:215
+#: wp-admin/includes/meta-boxes.php:216 wp-admin/press-this.php:468
+msgid "Submit for Review"
+msgstr "Soumettre à relecture"
+
+#: wp-admin/includes/dashboard.php:562
 msgid "Reset"
 msgstr "Réinitialiser"
 
-#: wp-admin/includes/dashboard.php:537
-#: wp-admin/includes/meta-boxes.php:217
-#: wp-admin/includes/meta-boxes.php:218
-#: wp-admin/press-this.php:468
-msgid "Submit for Review"
-msgstr "Soumettre à relecture"
-
-#: wp-admin/includes/dashboard.php:580
+#: wp-admin/includes/dashboard.php:603
 msgid "There are no drafts at the moment"
 msgstr "Il n&rsquo;y a pas de brouillon actuellement"
 
 #. translators: 1: comment author, 2: post link, 3: notification if the comment
 #. is pending
-#: wp-admin/includes/dashboard.php:694
+#: wp-admin/includes/dashboard.php:717
 msgid "From %1$s on %2$s%3$s"
 msgstr "Par %1$s, sur %2$s%3$s"
 
-#: wp-admin/includes/dashboard.php:695
+#: wp-admin/includes/dashboard.php:718
 msgid "[Pending]"
 msgstr "[En attente]"
 
 #. translators: %1$s is type of comment, %2$s is link to the post
-#: wp-admin/includes/dashboard.php:714
+#: wp-admin/includes/dashboard.php:737
 msgctxt "dashboard"
 msgid "%1$s on %2$s"
 msgstr "%1$s dans %2$s"
 
-#: wp-admin/includes/dashboard.php:773
-msgid "This dashboard widget queries <a href=\"http://blogsearch.google.com/\">Google Blog Search</a> so that when another blog links to your site it will show up here. It has found no incoming links&hellip; yet. It&#8217;s okay &#8212; there is no rush."
-msgstr "Ce widget envoie une requête vers <a href=\"http://blogsearch.google.com/\">le moteur de recherche des blogs de Google</a>, de sorte que quand un autre blog fera un lien vers le vôtre, son nom s&rsquo;affichera ici. Ce moteur n&rsquo;a pas encore trouvé de lien entrant&hellip; Ce n&rsquo;est pas grave, on n&rsquo;est pas pressé."
-
-#: wp-admin/includes/dashboard.php:797
-#: wp-admin/includes/dashboard.php:799
-#: wp-admin/includes/post.php:1230
+#: wp-admin/includes/dashboard.php:796
+msgid ""
+"This dashboard widget queries <a href=\"http://blogsearch.google.com/"
+"\">Google Blog Search</a> so that when another blog links to your site it "
+"will show up here. It has found no incoming links&hellip; yet. It&#8217;s "
+"okay &#8212; there is no rush."
+msgstr ""
+"Ce widget envoie une requête vers <a href=\"http://blogsearch.google.com/"
+"\">le moteur de recherche des blogs de Google</a>, de sorte que quand un "
+"autre blog fera un lien vers le vôtre, son nom s&rsquo;affichera ici. Ce "
+"moteur n&rsquo;a pas encore trouvé de lien entrant&hellip; Ce n&rsquo;est "
+"pas grave, on n&rsquo;est pas pressé."
+
+#: wp-admin/includes/dashboard.php:820 wp-admin/includes/dashboard.php:822
+#: wp-admin/includes/post.php:1197
 msgid "Somebody"
 msgstr "Quelqu&rsquo;un"
 
 #. translators: incoming links feed, %1$s is other person, %3$s is content
-#: wp-admin/includes/dashboard.php:811
+#: wp-admin/includes/dashboard.php:834
 msgid "%1$s linked here <a href=\"%2$s\">saying</a>, \"%3$s\""
-msgstr "%1$s a fait un lien vers ce site <a href=\"%2$s\">en écrivant</a> &laquo;&nbsp;%3$s&nbsp;&raquo;"
+msgstr ""
+"%1$s a fait un lien vers ce site <a href=\"%2$s\">en écrivant</a> &laquo;"
+"&nbsp;%3$s&nbsp;&raquo;"
 
 #. translators: incoming links feed, %1$s is other person, %3$s is content
-#: wp-admin/includes/dashboard.php:814
+#: wp-admin/includes/dashboard.php:837
 msgid "%1$s linked here saying, \"%3$s\""
 msgstr "%1$s a fait un lien vers ce site en écrivant &laquo; %3$s &raquo;"
 
-#. translators: incoming links feed, %4$s is the date
-#: wp-admin/includes/dashboard.php:819
-msgid "on %4$s"
-msgstr "le %4$s"
-
-#: wp-admin/includes/dashboard.php:919
+#. translators: incoming links feed, %1$s is other person, %3$s is content,
+#. %4$s is the date
+#: wp-admin/includes/dashboard.php:842
+msgid "%1$s linked here <a href=\"%2$s\">saying</a>, \"%3$s\" on %4$s"
+msgstr ""
+"%1$s a fait un lien vers ce site <a href=\"%2$s\">en écrivant</a> &laquo;"
+"&nbsp;%3$s&nbsp;&raquo;, le %4$s"
+
+#. translators: incoming links feed, %1$s is other person, %3$s is content,
+#. %4$s is the date
+#: wp-admin/includes/dashboard.php:845
+msgid "%1$s linked here saying, \"%3$s\" on %4$s"
+msgstr ""
+"%1$s a fait un lien vers ce site en écrivant &laquo; %3$s &raquo;, le %4$s"
+
+#: wp-admin/includes/dashboard.php:945
 msgid "Most Popular"
 msgstr "Plus populaire"
 
-#: wp-admin/includes/dashboard.php:919
+#: wp-admin/includes/dashboard.php:945
 msgid "Newest Plugins"
 msgstr "Nouvelles extensions"
 
-#: wp-admin/includes/dashboard.php:1001
+#: wp-admin/includes/dashboard.php:1022
 msgid "Loading&#8230;"
 msgstr "Chargement&#8230;"
 
-#: wp-admin/includes/dashboard.php:1001
+#: wp-admin/includes/dashboard.php:1022
 msgid "This widget requires JavaScript."
 msgstr "Ce widget requiert JavaScript."
 
-#: wp-admin/includes/dashboard.php:1113
+#: wp-admin/includes/dashboard.php:1134
 msgid "Storage Space"
 msgstr "Espace disque"
 
-#: wp-admin/includes/dashboard.php:1117
-msgid "<a href=\"%1$s\" title=\"Manage Uploads\" class=\"musublink\">%2$sMB</a>"
-msgstr "<a href=\"%1$s\" title=\"Gérer les envois\" class=\"musublink\">%2$s Mo</a>"
-
-#: wp-admin/includes/dashboard.php:1118
+#: wp-admin/includes/dashboard.php:1138
+msgid ""
+"<a href=\"%1$s\" title=\"Manage Uploads\" class=\"musublink\">%2$sMB</a>"
+msgstr ""
+"<a href=\"%1$s\" title=\"Gérer les envois\" class=\"musublink\">%2$s Mo</a>"
+
+#: wp-admin/includes/dashboard.php:1139
 msgid "Space Allowed"
 msgstr "Espace disque alloué"
 
-#: wp-admin/includes/dashboard.php:1125
-msgid "<a href=\"%1$s\" title=\"Manage Uploads\" class=\"musublink\">%2$sMB (%3$s%%)</a>"
-msgstr "<a href=\"%1$s\" title=\"Gérer les envois\" class=\"musublink\">%2$s Mo (%3$s%%)</a>"
-
-#: wp-admin/includes/dashboard.php:1126
+#: wp-admin/includes/dashboard.php:1146
+msgid ""
+"<a href=\"%1$s\" title=\"Manage Uploads\" class=\"musublink\">%2$sMB (%3$s%%)"
+"</a>"
+msgstr ""
+"<a href=\"%1$s\" title=\"Gérer les envois\" class=\"musublink\">%2$s Mo (%3$s"
+"%%)</a>"
+
+#: wp-admin/includes/dashboard.php:1147
 msgid "Space Used"
 msgstr "Espace disque utilisé"
 
-#: wp-admin/includes/dashboard.php:1142
-msgid "It looks like you're using an insecure version of <a href='%s'>%s</a>. Using an outdated browser makes your computer unsafe. For the best WordPress experience, please update your browser."
-msgstr "Il semble que vous utilisez une version peu sûre de <a href='%s'>%s</a>. En utilisant un navigateur dépassé, vous mettez votre ordinateur en danger. Pour utiliser WordPress dans les meilleures conditions, veuillez mettre à jour votre navigateur."
-
-#: wp-admin/includes/dashboard.php:1144
-msgid "It looks like you're using an old version of <a href='%s'>%s</a>. For the best WordPress experience, please update your browser."
-msgstr "Il semble que vous utilisez une vieille version de <a href='%s'>%s</a>. Pour utiliser WordPress dans les meilleures conditions, veuillez mettre à jour votre navigateur."
-
-#: wp-admin/includes/dashboard.php:1161
-msgid "<a href=\"%1$s\" class=\"update-browser-link\">Update %2$s</a> or learn how to <a href=\"%3$s\" class=\"browse-happy-link\">browse happy</a>"
-msgstr "<a href=\"%1$s\" class=\"update-browser-link\">Mettez %2$s à jour</a>, ou apprenez à <a href=\"%3$s\" class=\"browse-happy-link\">naviguer sereinement</a>"
-
-#: wp-admin/includes/dashboard.php:1258
-msgid "Welcome to your new WordPress site!"
-msgstr "Bienvenue dans votre nouveau site WordPress&nbsp;!"
-
-#: wp-admin/includes/dashboard.php:1259
-msgid "If you need help getting started, check out our documentation on <a href=\"http://codex.wordpress.org/First_Steps_With_WordPress\">First Steps with WordPress</a>. If you&#8217;d rather dive right in, here are a few things most people do first when they set up a new WordPress site. If you need help, use the Help tabs in the upper right corner to get information on how to use your current screen and where to go for more assistance."
-msgstr "Si vous avez besoin d&rsquo;aide pour vous lancer, jeter un &oelig;il à notre documentation, &laquo;&nbsp;<a href=\"http://codex.wordpress.org/fr:Premiers_pas_avec_WordPress\">Premiers pas avec WordPress</a>&nbsp;&raquo;. Si vous préférez faire le grand saut directement, voici quelques indications sur ce que la plupart des utilisateurs font quand ils mettent en place un nouveau site WordPress. Si vous avez besoin d&rsquo;assistance, utilisez les onglets d&rsquo;aide, situés dans le coin supérieur droit, pour obtenir des informations sur la manière d&rsquo;utiliser l&rsquo;écran courant, et où trouver plus d&rsquo;information."
-
-#: wp-admin/includes/dashboard.php:1262
-msgid "Basic Settings"
-msgstr "Réglages de base"
-
-#: wp-admin/includes/dashboard.php:1263
-msgid "Here are a few easy things you can do to get your feet wet. Make sure to click Save on each Settings screen."
-msgstr "Voici quelques idées pour vous jeter à l&rsquo;eau. Assurez-vous bien de cliquer sur &laquo;&nbsp;Enregistrer&nbsp;&raquo; sur chaque écran de réglages."
-
-#: wp-admin/includes/dashboard.php:1265
-msgid "<a href=\"%s\">Choose your privacy setting</a>"
-msgstr "<a href=\"%s\">Choisissez vos réglages de vie privée</a>"
-
-#: wp-admin/includes/dashboard.php:1266
-msgid "<a href=\"%s\">Select your tagline and time zone</a>"
-msgstr "<a href=\"%s\">Réglez votre fuseau horaire et le slogan de votre site</a>"
-
-#: wp-admin/includes/dashboard.php:1267
-msgid "<a href=\"%s\">Turn comments on or off</a>"
-msgstr "<a href=\"%s\">Activez/désactivez les commentaires</a>"
+#: wp-admin/includes/dashboard.php:1163
+msgid ""
+"It looks like you're using an insecure version of <a href='%s'>%s</a>. Using "
+"an outdated browser makes your computer unsafe. For the best WordPress "
+"experience, please update your browser."
+msgstr ""
+"Il semble que vous utilisez une version peu sûre de <a href='%s'>%s</a>. En "
+"utilisant un navigateur dépassé, vous mettez votre ordinateur en danger. "
+"Pour utiliser WordPress dans les meilleures conditions, veuillez mettre à "
+"jour votre navigateur."
+
+#: wp-admin/includes/dashboard.php:1165
+msgid ""
+"It looks like you're using an old version of <a href='%s'>%s</a>. For the "
+"best WordPress experience, please update your browser."
+msgstr ""
+"Il semble que vous utilisez une vieille version de <a href='%s'>%s</a>. Pour "
+"utiliser WordPress dans les meilleures conditions, veuillez mettre à jour "
+"votre navigateur."
+
+#: wp-admin/includes/dashboard.php:1182
+msgid ""
+"<a href=\"%1$s\" class=\"update-browser-link\">Update %2$s</a> or learn how "
+"to <a href=\"%3$s\" class=\"browse-happy-link\">browse happy</a>"
+msgstr ""
+"<a href=\"%1$s\" class=\"update-browser-link\">Mettez %2$s à jour</a>, ou "
+"apprenez à <a href=\"%3$s\" class=\"browse-happy-link\">naviguer "
+"sereinement</a>"
+
+#: wp-admin/includes/dashboard.php:1260
+msgid "Welcome to WordPress!"
+msgstr "Bienvenue dans WordPress&nbsp;!"
+
+#: wp-admin/includes/dashboard.php:1261
+msgid "We&#8217;ve assembled some links to get you started:"
+msgstr "Voici quelques liens pour vous aider à démarrer&nbsp;:"
+
+#: wp-admin/includes/dashboard.php:1264
+msgid "Get Started"
+msgstr "Lancez-vous&nbsp;!"
+
+#: wp-admin/includes/dashboard.php:1265 wp-admin/includes/dashboard.php:1266
+msgid "Customize Your Site"
+msgstr "Personnalisez votre site"
 
 #: wp-admin/includes/dashboard.php:1268
-msgid "<a href=\"%s\">Fill in your profile</a>"
-msgstr "<a href=\"%s\">Remplissez votre profil</a>"
+msgid "or, <a href=\"%s\">change your theme completely</a>"
+msgstr "ou alors, <a href=\"%s\">changez complètement de thème</a>"
 
 #: wp-admin/includes/dashboard.php:1272
-msgid "Add Real Content"
-msgstr "Ajouter votre propre contenu"
-
-#: wp-admin/includes/dashboard.php:1273
-msgid "Check out the sample page & post editors to see how it all works, then delete the default content and write your own!"
-msgstr "Allez voir l&rsquo;article et la page de démo dans leurs éditeurs respectifs, afin d&rsquo;apprendre comment tout est mis en place, puis effacez ce contenu par défaut et écrivez le vôtre !"
-
-#: wp-admin/includes/dashboard.php:1275
-msgid "View the <a href=\"%1$s\">sample page</a> and <a href=\"%2$s\">post</a>"
-msgstr "Affichez la <a href=\"%1$s\">page d&rsquo;exemple</a> et l&rsquo;<a href=\"%2$s\">article d&rsquo;exemple</a>"
-
-#: wp-admin/includes/dashboard.php:1276
-msgid "Delete the <a href=\"%1$s\">sample page</a> and <a href=\"%2$s\">post</a>"
-msgstr "Effacez la <a href=\"%1$s\">page d&rsquo;exemple</a> et l&rsquo;<a href=\"%2$s\">article d&rsquo;exemple</a>"
-
-#: wp-admin/includes/dashboard.php:1277
-msgid "<a href=\"%s\">Create an About Me page</a>"
-msgstr "<a href=\"%s\">Créez votre page &laquo;&nbsp;À Propos&nbsp;&raquo;</a>"
-
-#: wp-admin/includes/dashboard.php:1278
-msgid "<a href=\"%s\">Write your first post</a>"
-msgstr "<a href=\"%s\">Écrivez un premier article</a>"
+msgid "Next Steps"
+msgstr "Étapes suivantes"
+
+#: wp-admin/includes/dashboard.php:1275 wp-admin/includes/dashboard.php:1278
+msgid "Edit your front page"
+msgstr "Modifiez votre page d&rsquo;accueil"
+
+#: wp-admin/includes/dashboard.php:1276 wp-admin/includes/dashboard.php:1279
+msgid "Add additional pages"
+msgstr "Ajoutez de nouvelles pages"
+
+#: wp-admin/includes/dashboard.php:1280
+msgid "Add a blog post"
+msgstr "Écrivez un article"
 
 #: wp-admin/includes/dashboard.php:1282
-msgid "Customize Your Site"
-msgstr "Personnalisez votre site"
-
-#: wp-admin/includes/dashboard.php:1287
-msgid "<a href=\"%s\">Install a theme</a> to get started customizing your site."
-msgstr "<a href=\"%s\">Installez un thème</a> pour commencer à personnaliser votre site."
+msgid "Write your first blog post"
+msgstr "Écrivez votre premier article"
+
+#: wp-admin/includes/dashboard.php:1283
+msgid "Add an About page"
+msgstr "Ajoutez une page &laquo;&nbsp;À propos&nbsp;&raquo;"
+
+#: wp-admin/includes/dashboard.php:1285
+msgid "View your site"
+msgstr "Affichez votre site"
+
+#: wp-admin/includes/dashboard.php:1289
+msgid "More Actions"
+msgstr "Plus d&rsquo;actions"
+
+#: wp-admin/includes/dashboard.php:1291
+msgid "Manage <a href=\"%1$s\">widgets</a> or <a href=\"%2$s\">menus</a>"
+msgstr ""
+"Gérez vos <a href=\"%1$s\">widgets</a> ou vos <a href=\"%2$s\">menus</a>"
 
 #: wp-admin/includes/dashboard.php:1292
-msgid "<a href=\"%s\">Choose light or dark</a>"
-msgstr "<a href=\"%s\">Choisissez un jeu de couleurs (clair ou foncé)</a>"
-
-#: wp-admin/includes/dashboard.php:1295
-msgid "<a href=\"%s\">Set a background color</a>"
-msgstr "<a href=\"%s\">Choisissez une couleur de fond</a>"
-
-#: wp-admin/includes/dashboard.php:1298
-msgid "<a href=\"%s\">Select a new header image</a>"
-msgstr "<a href=\"%s\">Sélectionnez une image d&rsquo;en-tête</a>"
-
-#: wp-admin/includes/dashboard.php:1301
-msgid "<a href=\"%s\">Add some widgets</a>"
-msgstr "<a href=\"%s\">Ajoutez quelques widgets</a>"
-
-#: wp-admin/includes/dashboard.php:1305
-msgid "Use the current theme &mdash; %1$s &mdash; or <a href=\"%2$s\">choose a new one</a>. If you stick with %1$s, here are a few ways to make your site look unique."
-msgstr "Utilisez le thème actuel &mdash; %1$s &mdash; ou <a href=\"%2$s\">choisissez-en un nouveau</a>. Si vous préférez conserver %1$s, voici quelques techniques pour le rendre plus &laquo;&nbsp;unique&nbsp;&raquo;."
-
-#: wp-admin/includes/dashboard.php:1316
-msgid "Use the current theme &mdash; %1$s &mdash; or <a href=\"%2$s\">choose a new one</a>."
-msgstr "Utilisez le thème actuel &mdash; %1$s &mdash; ou <a href=\"%2$s\">choisissez-en un nouveau</a>."
-
-#: wp-admin/includes/dashboard.php:1322
-msgid "Already know what you&#8217;re doing? <a href=\"%s\">Dismiss this message</a>."
-msgstr "Vous savez déjà ce que vous faites ? <a href=\"%s\">Fermez ce message</a>."
-
-#: wp-admin/includes/deprecated.php:523
+msgid "Turn comments on or off"
+msgstr "Activez ou désactivez les commentaires"
+
+#: wp-admin/includes/dashboard.php:1293
+msgid "Learn more about getting started"
+msgstr "Plus d&rsquo;informations pour bien démarrer"
+
+#: wp-admin/includes/dashboard.php:1293
+msgid "http://codex.wordpress.org/First_Steps_With_WordPress"
+msgstr "http://codex.wordpress.org/fr:Premiers_pas_avec_WordPress"
+
+#: wp-admin/includes/deprecated.php:542
 msgid "No matching users were found!"
 msgstr "Aucun utilisateur ne correspond&nbsp;!"
 
-#: wp-admin/includes/deprecated.php:562
+#: wp-admin/includes/deprecated.php:581
 msgid "Displaying %s&#8211;%s of %s"
 msgstr "Affichage de %s à %s sur %s"
 
-#: wp-admin/includes/file.php:11
+#: wp-admin/includes/file.php:13
 msgid "Main Index Template"
 msgstr "Modèle pour la page d&rsquo;accueil"
 
-#: wp-admin/includes/file.php:13
+#: wp-admin/includes/file.php:15
 msgid "Visual Editor Stylesheet"
 msgstr "Feuille de style de l&rsquo;éditeur visuel"
 
-#: wp-admin/includes/file.php:14
+#: wp-admin/includes/file.php:16
 msgid "Visual Editor RTL Stylesheet"
-msgstr "Feuille de style de l&rsquo;éditeur visuel (lecture de droite à gauche)"
-
-#: wp-admin/includes/file.php:15
-msgid "RTL Stylesheet"
-msgstr "Feuille de style RTL"
+msgstr ""
+"Feuille de style de l&rsquo;éditeur visuel (lecture de droite à gauche)"
 
 #: wp-admin/includes/file.php:17
+msgid "RTL Stylesheet"
+msgstr "Feuille de style RTL"
+
+#: wp-admin/includes/file.php:19
 msgid "Popup Comments"
 msgstr "Commentaires en popup"
 
-#: wp-admin/includes/file.php:18
+#: wp-admin/includes/file.php:20
 msgid "Footer"
 msgstr "Pied de page"
 
-#: wp-admin/includes/file.php:22
+#: wp-admin/includes/file.php:24
 msgid "Author Template"
 msgstr "Modèle pour un auteur"
 
-#: wp-admin/includes/file.php:23
+#: wp-admin/includes/file.php:25
 msgid "Tag Template"
 msgstr "Modèle pour un mot-clef"
 
-#: wp-admin/includes/file.php:24
+#: wp-admin/includes/file.php:26
 msgid "Category Template"
 msgstr "Modèle pour les catégories"
 
-#: wp-admin/includes/file.php:25
-#: wp-admin/includes/meta-boxes.php:581
+#: wp-admin/includes/file.php:27 wp-admin/includes/meta-boxes.php:645
 msgid "Page Template"
 msgstr "Modèle de page"
 
-#: wp-admin/includes/file.php:27
+#: wp-admin/includes/file.php:29
 msgid "Search Form"
 msgstr "Formulaire de recherche"
 
-#: wp-admin/includes/file.php:28
+#: wp-admin/includes/file.php:30
 msgid "Single Post"
 msgstr "Article seul"
 
-#: wp-admin/includes/file.php:29
+#: wp-admin/includes/file.php:31
 msgid "404 Template"
 msgstr "Modèle pour l&rsquo;erreur 404"
 
-#: wp-admin/includes/file.php:30
+#: wp-admin/includes/file.php:32
 msgid "Links Template"
 msgstr "Modèle pour les liens"
 
-#: wp-admin/includes/file.php:31
+#: wp-admin/includes/file.php:33
 msgid "Theme Functions"
 msgstr "Fonctions du thème"
 
-#: wp-admin/includes/file.php:32
+#: wp-admin/includes/file.php:34
 msgid "Attachment Template"
 msgstr "Modèle pour les fichiers attachés"
 
-#: wp-admin/includes/file.php:33
+#: wp-admin/includes/file.php:35
 msgid "Image Attachment Template"
 msgstr "Modèle pour les images attachées"
 
-#: wp-admin/includes/file.php:34
+#: wp-admin/includes/file.php:36
 msgid "Video Attachment Template"
 msgstr "Modèle pour les vidéos attachées"
 
-#: wp-admin/includes/file.php:35
+#: wp-admin/includes/file.php:37
 msgid "Audio Attachment Template"
 msgstr "Modèle pour les fichiers audio attachés"
 
-#: wp-admin/includes/file.php:36
+#: wp-admin/includes/file.php:38
 msgid "Application Attachment Template"
 msgstr "Modèle pour les programmes attachés"
 
-#: wp-admin/includes/file.php:37
+#: wp-admin/includes/file.php:39
 msgid "my-hacks.php (legacy hacks support)"
 msgstr "my-hacks.php (reconnaissance des hacks existants)"
 
-#: wp-admin/includes/file.php:38
+#: wp-admin/includes/file.php:40
 msgid ".htaccess (for rewrite rules )"
 msgstr ".htaccess (pour les règles de réécriture)"
 
-#: wp-admin/includes/file.php:41
+#: wp-admin/includes/file.php:43
 msgid "Comments Template"
 msgstr "Modèle pour les commentaires"
 
-#: wp-admin/includes/file.php:42
+#: wp-admin/includes/file.php:44
 msgid "Popup Comments Template"
 msgstr "Modèle pour la fenêtre de commentaires"
 
-#: wp-admin/includes/file.php:65
+#: wp-admin/includes/file.php:67
 msgid "%s Page Template"
 msgstr "Modèle de page %s"
 
-#: wp-admin/includes/file.php:202
-msgid "Sorry, can&#8217;t edit files with &#8220;..&#8221; in the name. If you are trying to edit a file in your WordPress home directory, you can just type the name of the file in."
-msgstr "Désolé, on ne peut pas modifier les fichiers avec &laquo; .. &raquo; dans le nom. Si vous tentez de modifier un fichier dans votre répertoire WordPress, vous pouvez simplement saisir le nom du fichier."
-
-#: wp-admin/includes/file.php:208
-msgid "Sorry, that file cannot be edited."
-msgstr "Désolé, ce fichier ne peut être modifié."
-
-#: wp-admin/includes/file.php:255
+#: wp-admin/includes/file.php:204
+msgid ""
+"Sorry, can&#8217;t edit files with &#8220;..&#8221; in the name. If you are "
+"trying to edit a file in your WordPress home directory, you can just type "
+"the name of the file in."
+msgstr ""
+"Désolé, on ne peut pas modifier les fichiers avec &laquo; .. &raquo; dans le "
+"nom. Si vous tentez de modifier un fichier dans votre répertoire WordPress, "
+"vous pouvez simplement saisir le nom du fichier."
+
+#: wp-admin/includes/file.php:258
 msgid "The uploaded file exceeds the upload_max_filesize directive in php.ini."
-msgstr "La taille du fichier envoyé excède celle indiquée dans la directive <code>upload_max_filesize</code>, dans <code>php.ini</code>."
-
-#: wp-admin/includes/file.php:256
-msgid "The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in the HTML form."
-msgstr "La taille du fichier envoyé excède celle indiquée dans la directive <code>MAX_FILE_SIZE</code> du formulaire HTML."
-
-#: wp-admin/includes/file.php:257
-#: wp-admin/includes/file.php:383
+msgstr ""
+"La taille du fichier envoyé excède celle indiquée dans la directive "
+"<code>upload_max_filesize</code>, dans <code>php.ini</code>."
+
+#: wp-admin/includes/file.php:259
+msgid ""
+"The uploaded file exceeds the MAX_FILE_SIZE directive that was specified in "
+"the HTML form."
+msgstr ""
+"La taille du fichier envoyé excède celle indiquée dans la directive "
+"<code>MAX_FILE_SIZE</code> du formulaire HTML."
+
+#: wp-admin/includes/file.php:260 wp-admin/includes/file.php:387
 msgid "The uploaded file was only partially uploaded."
 msgstr "Le fichier n&rsquo;a été que partiellement envoyé."
 
-#: wp-admin/includes/file.php:258
-#: wp-admin/includes/file.php:384
+#: wp-admin/includes/file.php:261 wp-admin/includes/file.php:388
 msgid "No file was uploaded."
 msgstr "Aucun fichier n&rsquo;a été envoyé."
 
-#: wp-admin/includes/file.php:260
-#: wp-admin/includes/file.php:386
+#: wp-admin/includes/file.php:263 wp-admin/includes/file.php:390
 msgid "Missing a temporary folder."
 msgstr "Un dossier temporaire est manquant."
 
-#: wp-admin/includes/file.php:261
-#: wp-admin/includes/file.php:387
+#: wp-admin/includes/file.php:264 wp-admin/includes/file.php:391
 msgid "Failed to write file to disk."
 msgstr "Échec de l&rsquo;écriture du fichier sur le disque."
 
-#: wp-admin/includes/file.php:262
-#: wp-admin/includes/file.php:388
+#: wp-admin/includes/file.php:265 wp-admin/includes/file.php:392
 msgid "File upload stopped by extension."
 msgstr "L&rsquo;envoi de fichier est arrêté par l&rsquo;extension."
 
-#: wp-admin/includes/file.php:279
-#: wp-admin/includes/file.php:404
+#: wp-admin/includes/file.php:282 wp-admin/includes/file.php:408
 msgid "Invalid form submission."
 msgstr "Envoi non valide du formulaire."
 
-#: wp-admin/includes/file.php:288
+#: wp-admin/includes/file.php:291
 msgid "File is empty. Please upload something more substantial."
-msgstr "Le fichier est vide. Merci d&rsquo;envoyer quelque chose de plus consistant."
-
-#: wp-admin/includes/file.php:290
-#: wp-admin/includes/import.php:63
-msgid "File is empty. Please upload something more substantial. This error could also be caused by uploads being disabled in your php.ini or by post_max_size being defined as smaller than upload_max_filesize in php.ini."
-msgstr "Ce fichier est vide. Veuillez envoyer quelque chose de plus substantiel. Cette erreur peut également être due à la désactivation de l&rsquo;envoi de fichier dans le fichier php.ini de votre serveur, ou par une valeur de post_max_size inférieure à celle de upload_max_filesize dans ce même php.ini."
-
-#: wp-admin/includes/file.php:296
+msgstr ""
+"Le fichier est vide. Merci d&rsquo;envoyer quelque chose de plus consistant."
+
+#: wp-admin/includes/file.php:293 wp-admin/includes/import.php:63
+msgid ""
+"File is empty. Please upload something more substantial. This error could "
+"also be caused by uploads being disabled in your php.ini or by post_max_size "
+"being defined as smaller than upload_max_filesize in php.ini."
+msgstr ""
+"Ce fichier est vide. Veuillez envoyer quelque chose de plus substantiel. "
+"Cette erreur peut également être due à la désactivation de l&rsquo;envoi de "
+"fichier dans le fichier php.ini de votre serveur, ou par une valeur de "
+"post_max_size inférieure à celle de upload_max_filesize dans ce même php.ini."
+
+#: wp-admin/includes/file.php:299
 msgid "Specified file failed upload test."
 msgstr "Le test d&rsquo;envoi du fichier spécifié a échoué."
 
-#: wp-admin/includes/file.php:309
-#: wp-admin/includes/file.php:429
+#: wp-admin/includes/file.php:312 wp-admin/includes/file.php:433
 msgid "Sorry, this file type is not permitted for security reasons."
-msgstr "Désolé, ce type de fichier n&rsquo;est pas autorisé pour des raisons de sécurité."
-
-#: wp-admin/includes/file.php:329
-#: wp-admin/includes/file.php:451
+msgstr ""
+"Désolé, ce type de fichier n&rsquo;est pas autorisé pour des raisons de "
+"sécurité."
+
+#: wp-admin/includes/file.php:332 wp-admin/includes/file.php:455
 msgid "The uploaded file could not be moved to %s."
 msgstr "Le fichier n&rsquo; a pas pu être déplacé vers %s."
 
-#: wp-admin/includes/file.php:381
-msgid "The uploaded file exceeds the <code>upload_max_filesize</code> directive in <code>php.ini</code>."
-msgstr "La taille du fichier envoyé excède celle indiquée dans la directive de taille maximale autorisée, <code>upload_max_filesize</code>, dans <code>php.ini</code>."
-
-#: wp-admin/includes/file.php:382
-msgid "The uploaded file exceeds the <em>MAX_FILE_SIZE</em> directive that was specified in the HTML form."
-msgstr "La taille du fichier envoyé excède celle indiquée dans la directive <em>MAX_FILE_SIZE</em> du formulaire HTML."
-
-#: wp-admin/includes/file.php:412
-msgid "File is empty. Please upload something more substantial. This error could also be caused by uploads being disabled in your php.ini."
-msgstr "Ce fichier est vide. Veuillez envoyer quelque chose de plus substantiel. Cette erreur peut également être due à la désactivation de l&rsquo;envoi de fichier dans le fichier php.ini de votre serveur."
+#: wp-admin/includes/file.php:385
+msgid ""
+"The uploaded file exceeds the <code>upload_max_filesize</code> directive in "
+"<code>php.ini</code>."
+msgstr ""
+"La taille du fichier envoyé excède celle indiquée dans la directive de "
+"taille maximale autorisée, <code>upload_max_filesize</code>, dans <code>php."
+"ini</code>."
+
+#: wp-admin/includes/file.php:386
+msgid ""
+"The uploaded file exceeds the <em>MAX_FILE_SIZE</em> directive that was "
+"specified in the HTML form."
+msgstr ""
+"La taille du fichier envoyé excède celle indiquée dans la directive "
+"<em>MAX_FILE_SIZE</em> du formulaire HTML."
 
 #: wp-admin/includes/file.php:416
+msgid ""
+"File is empty. Please upload something more substantial. This error could "
+"also be caused by uploads being disabled in your php.ini."
+msgstr ""
+"Ce fichier est vide. Veuillez envoyer quelque chose de plus substantiel. "
+"Cette erreur peut également être due à la désactivation de l&rsquo;envoi de "
+"fichier dans le fichier php.ini de votre serveur."
+
+#: wp-admin/includes/file.php:420
 msgid "Specified file does not exist."
 msgstr "Le fichier spécifié n&rsquo;existe pas."
 
-#: wp-admin/includes/file.php:480
+#: wp-admin/includes/file.php:484
 msgid "Invalid URL Provided."
 msgstr "L&rsquo;URL fournie est invalide"
 
-#: wp-admin/includes/file.php:484
+#: wp-admin/includes/file.php:488
 msgid "Could not create Temporary file."
 msgstr "Impossible de créer le fichier temporaire."
 
-#: wp-admin/includes/file.php:578
-#: wp-admin/includes/file.php:672
+#: wp-admin/includes/file.php:582 wp-admin/includes/file.php:676
 msgid "Incompatible Archive."
 msgstr "Archive incompatible."
 
-#: wp-admin/includes/file.php:582
-#: wp-admin/includes/file.php:618
+#: wp-admin/includes/file.php:586 wp-admin/includes/file.php:622
 msgid "Could not retrieve file from archive."
 msgstr "Impossible de récupérer le fichier depuis l&rsquo;archive."
 
-#: wp-admin/includes/file.php:628
+#: wp-admin/includes/file.php:632
 msgid "Could not extract file from archive."
 msgstr "Impossible d&rsquo;extraire les fichiers depuis l&rsquo;archive."
 
-#: wp-admin/includes/file.php:631
-#: wp-admin/includes/file.php:717
-#: wp-admin/includes/file.php:758
-#: wp-admin/includes/update-core.php:565
-#: wp-admin/includes/update-core.php:657
+#: wp-admin/includes/file.php:635 wp-admin/includes/file.php:721
+#: wp-admin/includes/file.php:762 wp-admin/includes/update-core.php:636
+#: wp-admin/includes/update-core.php:716 wp-admin/includes/update-core.php:808
 msgid "Could not copy file."
 msgstr "Impossible de copier le fichier."
 
-#: wp-admin/includes/file.php:675
+#: wp-admin/includes/file.php:679
 msgid "Empty archive."
 msgstr "Archive vide."
 
-#: wp-admin/includes/file.php:948
-msgid "<strong>ERROR:</strong> There was an error connecting to the server, Please verify the settings are correct."
-msgstr "<strong>Erreur&nbsp;:</strong> Une erreur s&rsquo;est produite lors de la connexion au serveur, vérifiez que vos paramètres sont corrects."
-
-#: wp-admin/includes/file.php:956
+#: wp-admin/includes/file.php:952
+msgid ""
+"<strong>ERROR:</strong> There was an error connecting to the server, Please "
+"verify the settings are correct."
+msgstr ""
+"<strong>Erreur&nbsp;:</strong> Une erreur s&rsquo;est produite lors de la "
+"connexion au serveur, vérifiez que vos paramètres sont corrects."
+
+#: wp-admin/includes/file.php:960
 msgid "FTP"
 msgstr "FTP"
 
-#: wp-admin/includes/file.php:958
+#: wp-admin/includes/file.php:962
 msgid "FTPS (SSL)"
 msgstr "FTPS (SSL)"
 
-#: wp-admin/includes/file.php:960
+#: wp-admin/includes/file.php:964
 msgid "SSH2"
 msgstr "SSH2"
 
-#: wp-admin/includes/file.php:981
+#: wp-admin/includes/file.php:985
 msgid "Connection Information"
 msgstr "Informations sur connexion"
 
-#: wp-admin/includes/file.php:985
-msgid "To perform the requested action, WordPress needs to access your web server."
-msgstr "Pour lancer la requête demandée, WordPress a besoin d&rsquo;accéder à votre serveur web."
-
 #: wp-admin/includes/file.php:989
+msgid ""
+"To perform the requested action, WordPress needs to access your web server."
+msgstr ""
+"Pour lancer la requête demandée, WordPress a besoin d&rsquo;accéder à votre "
+"serveur web."
+
+#: wp-admin/includes/file.php:993
 msgid "Please enter your FTP or SSH credentials to proceed."
 msgstr "Veuillez saisir votre identifiant FTP ou SSH pour continuer."
 
-#: wp-admin/includes/file.php:990
+#: wp-admin/includes/file.php:994
 msgid "FTP/SSH Username"
 msgstr "Identifiant FTP/SSH"
 
-#: wp-admin/includes/file.php:991
+#: wp-admin/includes/file.php:995
 msgid "FTP/SSH Password"
 msgstr "Mot de passe FTP/SSH"
 
-#: wp-admin/includes/file.php:993
+#: wp-admin/includes/file.php:997
 msgid "Please enter your FTP credentials to proceed."
 msgstr "Veuillez saisir votre identifiant FTP pour continuer."
 
-#: wp-admin/includes/file.php:994
+#: wp-admin/includes/file.php:998
 msgid "FTP Username"
 msgstr "Identifiant FTP"
 
-#: wp-admin/includes/file.php:995
+#: wp-admin/includes/file.php:999
 msgid "FTP Password"
 msgstr "Mot de passe FTP"
 
-#: wp-admin/includes/file.php:999
-msgid "If you do not remember your credentials, you should contact your web host."
-msgstr "Si vous ne vous souvenez pas de votre identifiant, vous devriez contacter votre hébergeur."
-
 #: wp-admin/includes/file.php:1003
+msgid ""
+"If you do not remember your credentials, you should contact your web host."
+msgstr ""
+"Si vous ne vous souvenez pas de votre identifiant, vous devriez contacter "
+"votre hébergeur."
+
+#: wp-admin/includes/file.php:1007
 msgid "Hostname"
 msgstr "Nom de l&rsquo;H&ocirc;te&nbsp;:"
 
-#: wp-admin/includes/file.php:1019
+#: wp-admin/includes/file.php:1023
 msgid "Authentication Keys"
 msgstr "Clefs d&rsquo;authentification"
 
-#: wp-admin/includes/file.php:1021
-msgid "Public Key:"
-msgstr "Clef publique&nbsp;:"
-
-#: wp-admin/includes/file.php:1022
-msgid "Private Key:"
-msgstr "Clef privée&nbsp;:"
-
 #: wp-admin/includes/file.php:1025
-msgid "Enter the location on the server where the keys are located. If a passphrase is needed, enter that in the password field above."
-msgstr "Saisissez l&rsquo;adresse du serveur où se trouvent les clefs. Si un mot de passe est nécessaire, saisissez-le dans le champ ci-dessus."
-
-#: wp-admin/includes/file.php:1030
-#: wp-admin/includes/file.php:1032
+msgid "Public Key:"
+msgstr "Clef publique&nbsp;:"
+
+#: wp-admin/includes/file.php:1026
+msgid "Private Key:"
+msgstr "Clef privée&nbsp;:"
+
+#: wp-admin/includes/file.php:1029
+msgid ""
+"Enter the location on the server where the keys are located. If a passphrase "
+"is needed, enter that in the password field above."
+msgstr ""
+"Saisissez l&rsquo;adresse du serveur où se trouvent les clefs. Si un mot de "
+"passe est nécessaire, saisissez-le dans le champ ci-dessus."
+
+#: wp-admin/includes/file.php:1034 wp-admin/includes/file.php:1036
 msgid "Connection Type"
 msgstr "Type de connexion"
 
-#: wp-admin/includes/file.php:1051
+#: wp-admin/includes/file.php:1055
 msgid "Proceed"
 msgstr "Continuer"
 
-#: wp-admin/includes/image-edit.php:19
-#: wp-admin/includes/image-edit.php:505
+#: wp-admin/includes/image-edit.php:19 wp-admin/includes/image-edit.php:602
 msgid "Image data does not exist. Please re-upload the image."
-msgstr "Il n&rsquo;y a pas de données d&rsquo;image. Veuillez envoyer l&rsquo;image à nouveau."
+msgstr ""
+"Il n&rsquo;y a pas de données d&rsquo;image. Veuillez envoyer l&rsquo;image "
+"à nouveau."
 
 #: wp-admin/includes/image-edit.php:40
 msgid "Crop"
@@ -4405,8 +5374,9 @@
 msgstr "Tourner dans le sens des aiguilles d&rsquo;une montre"
 
 #: wp-admin/includes/image-edit.php:47
-msgid "Image rotation is not supported by your web host (function imagerotate() is missing)"
-msgstr "La rotation d&rsquo;image n&rsquo;est pas disponible avec cet hébergeur (la fonction imagerotate() est absente)"
+msgid "Image rotation is not supported by your web host."
+msgstr ""
+"La rotation d&rsquo;image n&rsquo;est pas disponible avec cet hébergeur."
 
 #: wp-admin/includes/image-edit.php:53
 msgid "Flip vertically"
@@ -4421,8 +5391,17 @@
 msgstr "Modifier l&rsquo;échelle"
 
 #: wp-admin/includes/image-edit.php:84
-msgid "You can proportionally scale the original image. For best results the scaling should be done before performing any other operations on it like crop, rotate, etc. Note that if you make the image larger it may become fuzzy."
-msgstr "Vous pouvez modifier l&rsquo;échelle de l&rsquo;image de manière proportionnelle. Pour obtenir un meilleur résultat, la modification devrait être faite avant toute autre opération sur l&rsquo;image, comme le recadrage, la rotation, etc. Notez bien que l&rsquo;agrandissement d&rsquo;une image peut la rendre floue."
+msgid ""
+"You can proportionally scale the original image. For best results the "
+"scaling should be done before performing any other operations on it like "
+"crop, rotate, etc. Note that if you make the image larger it may become "
+"fuzzy."
+msgstr ""
+"Vous pouvez modifier l&rsquo;échelle de l&rsquo;image de manière "
+"proportionnelle. Pour obtenir un meilleur résultat, la modification devrait "
+"être faite avant toute autre opération sur l&rsquo;image, comme le "
+"recadrage, la rotation, etc. Notez bien que l&rsquo;agrandissement d&rsquo;"
+"une image peut la rendre floue."
 
 #: wp-admin/includes/image-edit.php:85
 msgid "Original dimensions %s"
@@ -4434,7 +5413,8 @@
 
 #: wp-admin/includes/image-edit.php:102
 msgid "Previously edited copies of the image will not be deleted."
-msgstr "Les copies de l&rsquo;image précédemment modifiées ne seront pas effacées."
+msgstr ""
+"Les copies de l&rsquo;image précédemment modifiées ne seront pas effacées."
 
 #: wp-admin/includes/image-edit.php:106
 msgid "Restore image"
@@ -4444,129 +5424,242 @@
 msgid "Image Crop"
 msgstr "Recadrage de l&rsquo;image"
 
-#: wp-admin/includes/image-edit.php:118
-#: wp-admin/includes/image-edit.php:164
+#: wp-admin/includes/image-edit.php:118 wp-admin/includes/image-edit.php:156
 msgid "(help)"
 msgstr "(aide)"
 
 #: wp-admin/includes/image-edit.php:120
-msgid "The image can be cropped by clicking on it and dragging to select the desired part. While dragging the dimensions of the selection are displayed below."
-msgstr "L&rsquo;image peut être recadrée en cliquant dessus et en tirant une zone de sélection sur la partie désirée. Les dimensions de la sélection sont affichées ci-dessous."
-
-#: wp-admin/includes/image-edit.php:121
-#: wp-admin/user-edit.php:219
-msgid "Keyboard Shortcuts"
-msgstr "Raccourcis clavier"
+msgid ""
+"The image can be cropped by clicking on it and dragging to select the "
+"desired part. While dragging the dimensions of the selection are displayed "
+"below."
+msgstr ""
+"L&rsquo;image peut être recadrée en cliquant dessus et en tirant une zone de "
+"sélection sur la partie désirée. Les dimensions de la sélection sont "
+"affichées ci-dessous."
+
+#: wp-admin/includes/image-edit.php:122
+msgid "Crop Aspect Ratio"
+msgstr "Proportion de taille du recadrage"
 
 #: wp-admin/includes/image-edit.php:123
-msgid "Arrow: move by 10px"
-msgstr "Flèche&nbsp;: déplacer de 10 px"
-
-#: wp-admin/includes/image-edit.php:124
-msgid "Shift + arrow: move by 1px"
-msgstr "Shit + Flèche&nbsp;: déplacer de 1 px"
+msgid ""
+"You can specify the crop selection aspect ratio then hold down the Shift key "
+"while dragging to lock it. The values can be 1:1 (square), 4:3, 16:9, etc. "
+"If there is a selection, specifying aspect ratio will set it immediately."
+msgstr ""
+"Vous pouvez préciser la proportion de taille de la sélection de recadrage en "
+"maintenant la touche Shift enfoncée tandis que vous tirez la zone de "
+"sélection avec la souris. Ses valeurs peuvent être 1:1 (carré), 4:3, 16:9, "
+"etc. Si une sélection a déjà été faite, préciser la proportion l&rsquo;"
+"appliquera aussitôt."
 
 #: wp-admin/includes/image-edit.php:125
-msgid "Ctrl + arrow: resize by 10px"
-msgstr "Ctrl + Flèche&nbsp;: ajuster de 10 px"
+msgid "Crop Selection"
+msgstr "Sélection de recadrage"
 
 #: wp-admin/includes/image-edit.php:126
-msgid "Ctrl + Shift + arrow: resize by 1px"
-msgstr "Ctrl + shift + Flèche&nbsp;: ajuster de 1 px"
-
-#: wp-admin/includes/image-edit.php:127
-msgid "Shift + drag: lock aspect ratio"
-msgstr "Shift + clic/déplacement&nbsp;: fixer une proportion de taille"
-
-#: wp-admin/includes/image-edit.php:130
-msgid "Crop Aspect Ratio"
-msgstr "Proportion de taille du recadrage"
+msgid ""
+"Once started, the selection can be adjusted by entering new values (in "
+"pixels). Note that these values are scaled to approximately match the "
+"original image dimensions. The minimum selection size equals the thumbnail "
+"size as set in the Media settings."
+msgstr ""
+"Une fois commencée, la sélection peut être ajustée en entrant de nouvelles "
+"valeurs (en pixels). Notez bien que ces valeurs sont ajustées pour "
+"correspondre approximativement aux dimensions de l&rsquo;image originale. La "
+"taille minimale de la sélection est égale à la taille de la miniature, telle "
+"que fixée dans les réglages des médias."
 
 #: wp-admin/includes/image-edit.php:131
-msgid "You can specify the crop selection aspect ratio then hold down the Shift key while dragging to lock it. The values can be 1:1 (square), 4:3, 16:9, etc. If there is a selection, specifying aspect ratio will set it immediately."
-msgstr "Vous pouvez préciser la proportion de taille de la sélection de recadrage en maintenant la touche Shift enfoncée tandis que vous tirez la zone de sélection avec la souris. Ses valeurs peuvent être 1:1 (carré), 4:3, 16:9, etc. Si une sélection a déjà été faite, préciser la proportion l&rsquo;appliquera aussitôt."
-
-#: wp-admin/includes/image-edit.php:133
-msgid "Crop Selection"
-msgstr "Sélection de recadrage"
-
-#: wp-admin/includes/image-edit.php:134
-msgid "Once started, the selection can be adjusted by entering new values (in pixels). Note that these values are scaled to approximately match the original image dimensions. The minimum selection size equals the thumbnail size as set in the Media settings."
-msgstr "Une fois commencée, la sélection peut être ajustée en entrant de nouvelles valeurs (en pixels). Notez bien que ces valeurs sont ajustées pour correspondre approximativement aux dimensions de l&rsquo;image originale. La taille minimale de la sélection est égale à la taille de la miniature, telle que fixée dans les réglages des médias."
-
-#: wp-admin/includes/image-edit.php:139
 msgid "Aspect ratio:"
 msgstr "Proportion de taille&nbsp;:"
 
-#: wp-admin/includes/image-edit.php:148
+#: wp-admin/includes/image-edit.php:140
 msgid "Selection:"
 msgstr "Sélection&nbsp;:"
 
-#: wp-admin/includes/image-edit.php:163
+#: wp-admin/includes/image-edit.php:155
 msgid "Thumbnail Settings"
-msgstr "Réglages de miniature"
-
-#: wp-admin/includes/image-edit.php:165
-msgid "The thumbnail image can be cropped differently. For example it can be square or contain only a portion of the original image to showcase it better. Here you can select whether to apply changes to all image sizes or make the thumbnail different."
-msgstr "L&rsquo;image miniature peut être recadrée de manière différente. Par exemple, elle peut être au format carré, ou ne contenir qu&rsquo;une partie de l&rsquo;image originale afin de mieux la présenter. Vous pouvez ici sélectionner si vous souhaitez voir vos modifications appliquées à toutes les tailles d&rsquo;images, ou choisir d&rsquo;avoir une miniature différente."
-
-#: wp-admin/includes/image-edit.php:169
+msgstr "Réglages de la miniature"
+
+#: wp-admin/includes/image-edit.php:157
+msgid ""
+"The thumbnail image can be cropped differently. For example it can be square "
+"or contain only a portion of the original image to showcase it better. Here "
+"you can select whether to apply changes to all image sizes or make the "
+"thumbnail different."
+msgstr ""
+"L&rsquo;image miniature peut être recadrée de manière différente. Par "
+"exemple, elle peut être au format carré, ou ne contenir qu&rsquo;une partie "
+"de l&rsquo;image originale afin de mieux la présenter. Vous pouvez ici "
+"sélectionner si vous souhaitez voir vos modifications appliquées à toutes "
+"les tailles d&rsquo;images, ou choisir d&rsquo;avoir une miniature "
+"différente."
+
+#: wp-admin/includes/image-edit.php:161
 msgid "Current thumbnail"
 msgstr "Miniature actuelle"
 
-#: wp-admin/includes/image-edit.php:173
+#: wp-admin/includes/image-edit.php:165
 msgid "Apply changes to:"
 msgstr "Appliquer les modifications à&nbsp;:"
 
+#: wp-admin/includes/image-edit.php:169
+msgid "All image sizes"
+msgstr "Toutes les tailles"
+
 #: wp-admin/includes/image-edit.php:177
-msgid "All image sizes"
-msgstr "Toutes les tailles"
-
-#: wp-admin/includes/image-edit.php:185
 msgid "All sizes except thumbnail"
 msgstr "Toutes les tailles sauf la miniature"
 
 # Pas d'entité HTML : alert() JavaScript
-#: wp-admin/includes/image-edit.php:195
-msgid "There are unsaved changes that will be lost. 'OK' to continue, 'Cancel' to return to the Image Editor."
-msgstr "Les modifications qui n'ont pas été enregistrées seront perdues. « OK » pour continuer, « Annuler » pour revenir à l'éditeur d'images."
-
-#: wp-admin/includes/image-edit.php:388
+#: wp-admin/includes/image-edit.php:187
+msgid ""
+"There are unsaved changes that will be lost. 'OK' to continue, 'Cancel' to "
+"return to the Image Editor."
+msgstr ""
+"Les modifications qui n'ont pas été enregistrées seront perdues. « OK » pour "
+"continuer, « Annuler » pour revenir à l'éditeur d'images."
+
+#: wp-admin/includes/image-edit.php:210 wp-admin/includes/image-edit.php:249
+#: wp-admin/includes/image-edit.php:349
+msgid "$image needs to be an WP_Image_Editor object"
+msgstr "$image doit être un objet WP_Image_Editor"
+
+#: wp-admin/includes/image-edit.php:277
+msgid "Use WP_Image_Editor::rotate"
+msgstr "Utilisez WP_Image_Editor::rotate"
+
+#: wp-admin/includes/image-edit.php:299
+msgid "Use WP_Image_Editor::flip"
+msgstr "Utilisez WP_Image_Editor::flip"
+
+#: wp-admin/includes/image-edit.php:484
 msgid "Cannot load image metadata."
 msgstr "Impossible de charger les métadonnées de l&rsquo;image."
 
-#: wp-admin/includes/image-edit.php:443
+#: wp-admin/includes/image-edit.php:537
 msgid "Cannot save image metadata."
 msgstr "Impossible d&rsquo;enregistrer les métadonnées de l&rsquo;image."
 
-#: wp-admin/includes/image-edit.php:448
+#: wp-admin/includes/image-edit.php:542
 msgid "Image metadata is inconsistent."
 msgstr "Les métadonnées de l&rsquo;image ne sont pas cohérentes."
 
-#: wp-admin/includes/image-edit.php:450
+#: wp-admin/includes/image-edit.php:544
 msgid "Image restored successfully."
 msgstr "L&rsquo;image a bien été restaurée."
 
-#: wp-admin/includes/image-edit.php:463
+#: wp-admin/includes/image-edit.php:563
 msgid "Unable to create new image."
 msgstr "Échec lors de la création d&rsquo;une nouvelle image."
 
-#: wp-admin/includes/image-edit.php:489
-msgid "Error while saving the scaled image. Please reload the page and try again."
-msgstr "Une erreur est survenue pendant la modification de l&rsquo;échelle de l&rsquo;image. Veuillez recharger la page pour faire une nouvelle tentative."
-
-#: wp-admin/includes/image-edit.php:497
+#: wp-admin/includes/image-edit.php:586
+msgid ""
+"Error while saving the scaled image. Please reload the page and try again."
+msgstr ""
+"Une erreur est survenue pendant la modification de l&rsquo;échelle de "
+"l&rsquo;image. Veuillez recharger la page pour faire une nouvelle tentative."
+
+#: wp-admin/includes/image-edit.php:594
 msgid "Nothing to save, the image has not changed."
 msgstr "Rien à enregistrer, l&rsquo;image n&rsquo;a pas été modifiée."
 
-#: wp-admin/includes/image-edit.php:540
+#: wp-admin/includes/image-edit.php:637
 msgid "Unable to save the image."
 msgstr "Échec lors de l&rsquo;enregistrement de l&rsquo;image."
 
-#: wp-admin/includes/image-edit.php:625
+#: wp-admin/includes/image-edit.php:726
 msgid "Image saved"
 msgstr "Image enregistrée"
 
+#: wp-admin/includes/import.php:137
+msgid "Blogger"
+msgstr "Blogger"
+
+#: wp-admin/includes/import.php:138
+msgid ""
+"Install the Blogger importer to import posts, comments, and users from a "
+"Blogger blog."
+msgstr ""
+"Installer l&rsquo;importateur Blogger, pour importer les articles, "
+"commentaires et utilisateurs d&rsquo;un blog Blogger."
+
+#: wp-admin/includes/import.php:143 wp-admin/tools.php:21
+#: wp-admin/tools.php:60
+msgid "Categories and Tags Converter"
+msgstr "Convertisseur de catégories et mots-clefs"
+
+#: wp-admin/includes/import.php:144
+msgid ""
+"Install the category/tag converter to convert existing categories to tags or "
+"tags to categories, selectively."
+msgstr ""
+"Installer le convertisseur catégorie/mot-clef, pour convertir les catégories "
+"en mots-clefs, ou vice-versa."
+
+#: wp-admin/includes/import.php:149
+msgid "LiveJournal"
+msgstr "LiveJournal"
+
+#: wp-admin/includes/import.php:150
+msgid ""
+"Install the LiveJournal importer to import posts from LiveJournal using "
+"their API."
+msgstr ""
+"Installer l&rsquo;importateur LiveJournal, pour importer les articles depuis "
+"un blog LiveJournal en utilisant leur API."
+
+#: wp-admin/includes/import.php:155
+msgid "Movable Type and TypePad"
+msgstr "Movable Type et TypePad"
+
+#: wp-admin/includes/import.php:156
+msgid ""
+"Install the Movable Type importer to import posts and comments from a "
+"Movable Type or TypePad blog."
+msgstr ""
+"Installer l&rsquo;importateur Movable Type, pour importer les articles et "
+"commentaires en provenance d&rsquo;un blog Movable Type ou TypePad."
+
+#: wp-admin/includes/import.php:161
+msgid "Blogroll"
+msgstr "Liens"
+
+#: wp-admin/includes/import.php:162
+msgid "Install the blogroll importer to import links in OPML format."
+msgstr ""
+"Installer l&rsquo;importateur de blogoliste, pour importer une liste de "
+"liens au format OPML."
+
+#: wp-admin/includes/import.php:168
+msgid "Install the RSS importer to import posts from an RSS feed."
+msgstr ""
+"Installer l&rsquo;importateur RSS, pour importer des articles à partir "
+"d&rsquo;un flux RSS."
+
+#: wp-admin/includes/import.php:173
+msgid "Tumblr"
+msgstr "Tumblr"
+
+#: wp-admin/includes/import.php:174
+msgid ""
+"Install the Tumblr importer to import posts &amp; media from Tumblr using "
+"their API."
+msgstr ""
+"Installer l&rsquo;importateur Tumblr pour importer les articles et fichiers "
+"média depuis un Tumblr en utilisant leur API."
+
+#: wp-admin/includes/import.php:180
+msgid ""
+"Install the WordPress importer to import posts, pages, comments, custom "
+"fields, categories, and tags from a WordPress export file."
+msgstr ""
+"Installer l&rsquo;importateur WordPress, pour importer les articles, pages, "
+"commentaires, champs personnalisés, catégories et mots-clefs à partir "
+"d&rsquo;un fichier d&rsquo;export WordPress."
+
 #: wp-admin/includes/media.php:18
 msgid "From Computer"
 msgstr "Depuis votre ordinateur"
@@ -4583,255 +5676,249 @@
 msgid "Gallery (%s)"
 msgstr "Galerie (%s)"
 
-#: wp-admin/includes/media.php:327
+#: wp-admin/includes/media.php:330
 msgid "Uploads"
 msgstr "Fichiers envoyés"
 
-#: wp-admin/includes/media.php:327
-#: wp-admin/includes/template.php:1399
+#: wp-admin/includes/media.php:330 wp-admin/includes/template.php:1358
+#: wp-admin/install.php:66 wp-admin/maint/repair.php:24
+#: wp-admin/setup-config.php:103 wp-admin/upgrade.php:61
 msgid "WordPress"
 msgstr "WordPress"
 
-#: wp-admin/includes/media.php:381
-msgid "Upload/Insert %s"
-msgstr "Envoyer/Insérer %s"
-
-#: wp-admin/includes/media.php:784
-#: wp-admin/includes/media.php:958
+#: wp-admin/includes/media.php:801 wp-admin/includes/media.php:953
 msgid "File URL"
 msgstr "Adresse web du fichier"
 
-#: wp-admin/includes/media.php:785
+#: wp-admin/includes/media.php:802
 msgid "Attachment Post URL"
 msgstr "Adresse de l&rsquo;article du fichier joint"
 
-#: wp-admin/includes/media.php:816
-#: wp-admin/includes/media.php:1982
-msgid "Alt text for the image, e.g. &#8220;The Mona Lisa&#8221;"
-msgstr "Texte alternatif de l&rsquo;image, exemple&nbsp;: &laquo; La Joconde &raquo;"
-
-#: wp-admin/includes/media.php:876
+#: wp-admin/includes/media.php:871
 msgid "Empty Title filled from filename."
 msgstr "Titre absent, il sera rempli à partir du nom du fichier."
 
-#: wp-admin/includes/media.php:962
+#: wp-admin/includes/media.php:957
 msgid "Location of the uploaded file."
 msgstr "Emplacement du fichier envoyé."
 
-#: wp-admin/includes/media.php:1060
-#: wp-admin/includes/media.php:1647
+#: wp-admin/includes/media.php:998 wp-admin/includes/media.php:2146
+msgid "Alt text for the image, e.g. &#8220;The Mona Lisa&#8221;"
+msgstr ""
+"Texte alternatif de l&rsquo;image, exemple&nbsp;: &laquo; La Joconde &raquo;"
+
+#: wp-admin/includes/media.php:1081 wp-admin/includes/media.php:1810
 msgid "Show"
 msgstr "Afficher"
 
-#: wp-admin/includes/media.php:1061
-#: wp-admin/includes/media.php:1648
+#: wp-admin/includes/media.php:1082 wp-admin/includes/media.php:1811
 msgid "Hide"
 msgstr "Cacher"
 
-#: wp-admin/includes/media.php:1134
+#: wp-admin/includes/media.php:1155 wp-admin/includes/media.php:2364
 msgid "File name:"
 msgstr "Nom du fichier&nbsp;:"
 
-#: wp-admin/includes/media.php:1135
+#: wp-admin/includes/media.php:1156 wp-admin/includes/media.php:2367
 msgid "File type:"
 msgstr "Type du fichier&nbsp;:"
 
-#: wp-admin/includes/media.php:1136
+#: wp-admin/includes/media.php:1157
 msgid "Upload date:"
 msgstr "Date de mise en ligne&nbsp;:"
 
-#: wp-admin/includes/media.php:1138
+#: wp-admin/includes/media.php:1159 wp-admin/includes/media.php:2377
 msgid "Dimensions:"
 msgstr "Tailles&nbsp;:"
 
-#: wp-admin/includes/media.php:1156
-#: wp-admin/includes/media.php:2012
-#: wp-admin/includes/media.php:2018
-#: wp-admin/includes/media.php:2035
-#: wp-admin/includes/media.php:2044
+#: wp-admin/includes/media.php:1177 wp-admin/includes/media.php:2176
+#: wp-admin/includes/media.php:2182
 msgid "Insert into Post"
 msgstr "Insérer dans l&rsquo;article"
 
-#: wp-admin/includes/media.php:1162
+#: wp-admin/includes/media.php:1183
 msgid "You are about to delete <strong>%s</strong>."
 msgstr "Vous êtes sur le point de supprimer <strong>%s</strong>."
 
-#: wp-admin/includes/media.php:1163
-#: wp-admin/upgrade.php:65
-#: wp-admin/upgrade.php:97
+#: wp-admin/includes/media.php:1184 wp-admin/upgrade.php:67
+#: wp-admin/upgrade.php:99
 msgid "Continue"
 msgstr "Continuer"
 
-#: wp-admin/includes/media.php:1327
-msgid "Sorry, you have filled your storage quota (%s MB)."
-msgstr "Désolé, vous avez utilisé l&rsquo;intégralité de votre espace disque dédié (%s MO)."
-
-#: wp-admin/includes/media.php:1382
+#: wp-admin/includes/media.php:1550
 msgid "Drop files here"
 msgstr "Déposez vos fichiers ici"
 
-#: wp-admin/includes/media.php:1383
+#: wp-admin/includes/media.php:1551
 msgctxt "Uploader: Drop files here - or - Select Files"
 msgid "or"
 msgstr "ou"
 
-#: wp-admin/includes/media.php:1384
-msgid "Select Files"
-msgstr "Sélectionner les fichiers"
-
-#: wp-admin/includes/media.php:1402
-msgid "Maximum upload file size: %d%s."
-msgstr "Taille maximale des fichiers&nbsp;: %d%s."
-
-#: wp-admin/includes/media.php:1405
-msgid "Your browser has some limitations uploading large files with the multi-file uploader. Please use the browser uploader for files over 100MB."
-msgstr "Votre navigateur a certaines limites quand il s&rsquo;agit de mettre en ligne plusieurs larges fichiers en même temps. Veuillez utiliser l&rsquo;outil du navigateur pour les fichiers dépassant 100 Mo."
-
-#: wp-admin/includes/media.php:1439
+#: wp-admin/includes/media.php:1573
+msgid ""
+"Your browser has some limitations uploading large files with the multi-file "
+"uploader. Please use the browser uploader for files over 100MB."
+msgstr ""
+"Votre navigateur a certaines limites quand il s&rsquo;agit de mettre en "
+"ligne plusieurs larges fichiers en même temps. Veuillez utiliser l&rsquo;"
+"outil du navigateur pour les fichiers dépassant 100 Mo."
+
+#: wp-admin/includes/media.php:1607
 msgid "Add media files from your computer"
 msgstr "Ajouter un fichier média depuis votre ordinateur"
 
-#: wp-admin/includes/media.php:1468
-#: wp-admin/includes/media.php:1671
-#: wp-admin/includes/media.php:1917
-#: wp-admin/media-upload.php:117
+#: wp-admin/includes/media.php:1636 wp-admin/includes/media.php:1834
+#: wp-admin/includes/media.php:2080
 msgid "Save all changes"
 msgstr "Enregistrer toutes les modifications"
 
-#: wp-admin/includes/media.php:1503
+#: wp-admin/includes/media.php:1671
 msgid "Insert media from another website"
 msgstr "Insérer un média depuis un autre site"
 
-#: wp-admin/includes/media.php:1646
+#: wp-admin/includes/media.php:1809
 msgid "All Tabs:"
 msgstr "Tous les onglets&nbsp;:"
 
-#: wp-admin/includes/media.php:1650
+#: wp-admin/includes/media.php:1813
 msgid "Sort Order:"
 msgstr "Ordre de tri&nbsp;:"
 
-#: wp-admin/includes/media.php:1651
-#: wp-admin/includes/media.php:1719
+#: wp-admin/includes/media.php:1814 wp-admin/includes/media.php:1882
 msgid "Ascending"
 msgstr "Croissant"
 
-#: wp-admin/includes/media.php:1652
-#: wp-admin/includes/media.php:1722
+#: wp-admin/includes/media.php:1815 wp-admin/includes/media.php:1885
 msgid "Descending"
 msgstr "Décroissant"
 
-#: wp-admin/includes/media.php:1653
+#: wp-admin/includes/media.php:1816
 msgctxt "verb"
 msgid "Clear"
 msgstr "Effacer"
 
-#: wp-admin/includes/media.php:1678
-msgid "Gallery Settings"
-msgstr "Réglages de galerie"
-
-#: wp-admin/includes/media.php:1683
+#: wp-admin/includes/media.php:1823 wp-admin/menu.php:63 wp-admin/menu.php:215
+msgid "Media"
+msgstr "Médias"
+
+#: wp-admin/includes/media.php:1846
 msgid "Link thumbnails to:"
 msgstr "Lier les miniatures à&nbsp;:"
 
-#: wp-admin/includes/media.php:1688
+#: wp-admin/includes/media.php:1851
 msgid "Image File"
 msgstr "Fichier image"
 
-#: wp-admin/includes/media.php:1691
-msgid "Attachment Page"
-msgstr "Page de fichier attaché"
-
-#: wp-admin/includes/media.php:1698
+#: wp-admin/includes/media.php:1861
 msgid "Order images by:"
 msgstr "Ranger les images par&nbsp;:"
 
-#: wp-admin/includes/media.php:1703
+#: wp-admin/includes/media.php:1866
 msgid "Menu order"
 msgstr "Ordre du menu"
 
-#: wp-admin/includes/media.php:1705
+#: wp-admin/includes/media.php:1868
 msgid "Date/Time"
 msgstr "Horodatage"
 
-#: wp-admin/includes/media.php:1714
+#: wp-admin/includes/media.php:1869
+msgid "Random"
+msgstr "Aléatoire"
+
+#: wp-admin/includes/media.php:1877
 msgid "Order:"
 msgstr "Ordre&nbsp;:"
 
-#: wp-admin/includes/media.php:1729
+#: wp-admin/includes/media.php:1892
 msgid "Gallery columns:"
 msgstr "Colonnes de galerie&nbsp;:"
 
-#: wp-admin/includes/media.php:1749
-msgid "Insert gallery"
-msgstr "Insérer une galerie"
-
-#: wp-admin/includes/media.php:1750
+#: wp-admin/includes/media.php:1913
 msgid "Update gallery settings"
 msgstr "Mettre à jour les réglages de galerie"
 
-#: wp-admin/includes/media.php:1798
-#: wp-admin/includes/media.php:1800
-#: wp-admin/upload.php:236
+#: wp-admin/includes/media.php:1961 wp-admin/includes/media.php:1963
+#: wp-admin/upload.php:238
 msgid "Search Media"
 msgstr "Chercher parmi les médias"
 
-#: wp-admin/includes/media.php:1823
+#: wp-admin/includes/media.php:1986
 msgid "All Types"
 msgstr "Tous les types"
 
-#: wp-admin/includes/media.php:1846
-#: wp-admin/includes/nav-menu.php:626
+#: wp-admin/includes/media.php:2009 wp-admin/includes/nav-menu.php:627
 #: wp-admin/includes/nav-menu.php:840
 msgid "&laquo;"
 msgstr "&laquo;"
 
-#: wp-admin/includes/media.php:1847
-#: wp-admin/includes/nav-menu.php:627
+#: wp-admin/includes/media.php:2010 wp-admin/includes/nav-menu.php:628
 #: wp-admin/includes/nav-menu.php:841
 msgid "&raquo;"
 msgstr "&raquo;"
 
-#: wp-admin/includes/media.php:1887
+#: wp-admin/includes/media.php:2050
 msgid "Filter &#187;"
 msgstr "Filtrer &#187;"
 
-#: wp-admin/includes/media.php:1936
+#: wp-admin/includes/media.php:2100
 msgid "Image Caption"
 msgstr "Légende de l&rsquo;image"
 
-#: wp-admin/includes/media.php:1957
+#: wp-admin/includes/media.php:2121
 msgid "Audio, Video, or Other File"
 msgstr "Audio, vidéo ou un autre format"
 
-#: wp-admin/includes/media.php:1975
+#: wp-admin/includes/media.php:2139
 msgid "Link text, e.g. &#8220;Ransom Demands (PDF)&#8221;"
 msgstr "Texte du lien, par exemple &laquo; Théorie sur le chaos (PDF) &raquo;"
 
-#: wp-admin/includes/media.php:2001
+#: wp-admin/includes/media.php:2165
 msgid "Link Image To:"
 msgstr "Lier l&rsquo;image à&nbsp;:"
 
-#: wp-admin/includes/media.php:2006
+#: wp-admin/includes/media.php:2170
 msgid "Link to image"
 msgstr "Lier à l&rsquo;image"
 
-#: wp-admin/includes/media.php:2058
-msgid "You are using the multi-file uploader. Problems? Try the <a href=\"#\">browser uploader</a> instead."
-msgstr "Vous utilisez l&rsquo;outil de mise en ligne multi-fichiers. Si vous rencontrez des problèmes, essayez la <a href=\"#\">méthode du navigateur</a> à la place."
-
-#: wp-admin/includes/media.php:2072
-msgid "You are using the browser&#8217;s built-in file uploader. The WordPress uploader includes multiple file selection and drag and drop capability. <a href=\"#\">Switch to the multi-file uploader</a>."
-msgstr "Vous utilisez l&rsquo;outil de mise en ligne du navigateur. Le nouvel outil de mise en ligne de WordPress inclus la possibilité de télécharger plusieurs fichiers à la fois par glisser/déposer. <a href=\"#\">Passer au nouvel outil de mise en ligne</a>."
-
-#: wp-admin/includes/media.php:2080
-msgid "After a file has been uploaded, you can add titles and descriptions."
-msgstr "Une fois le fichier envoyé, vous pourrez lui ajouter titre et descriptions."
+#: wp-admin/includes/media.php:2205
+msgid ""
+"You are using the multi-file uploader. Problems? Try the <a href=\"%1$s\" "
+"target=\"%2$s\">browser uploader</a> instead."
+msgstr ""
+"Vous utilisez l&rsquo;outil de mise en ligne multi-fichiers. Si vous "
+"rencontrez des problèmes, essayez la <a href=\"#\">méthode du navigateur</a> "
+"à la place."
+
+#: wp-admin/includes/media.php:2219
+msgid ""
+"You are using the browser&#8217;s built-in file uploader. The WordPress "
+"uploader includes multiple file selection and drag and drop capability. <a "
+"href=\"#\">Switch to the multi-file uploader</a>."
+msgstr ""
+"Vous utilisez l&rsquo;outil de mise en ligne du navigateur. Le nouvel outil "
+"de mise en ligne de WordPress inclus la possibilité de télécharger plusieurs "
+"fichiers à la fois par glisser/déposer. <a href=\"#\">Passer au nouvel outil "
+"de mise en ligne</a>."
 
 #. translators: %1$s is link start tag, %2$s is link end tag, %3$d is width,
 #. %4$d is height
-#: wp-admin/includes/media.php:2103
-msgid "Scale images to match the large size selected in %1$simage options%2$s (%3$d &times; %4$d)."
-msgstr "Redimensionner les images pour correspondre à la taille large définie dans les %1$sréglages des médias%2$s (%3$d &times; %4$d)."
+#: wp-admin/includes/media.php:2250
+msgid ""
+"Scale images to match the large size selected in %1$simage options%2$s (%3$d "
+"&times; %4$d)."
+msgstr ""
+"Redimensionner les images pour correspondre à la taille large définie dans "
+"les %1$sréglages des médias%2$s (%3$d &times; %4$d)."
+
+#: wp-admin/includes/media.php:2262
+msgid "Sorry, you have used all of your storage quota of %s MB."
+msgstr ""
+"Désolé, vous avez utilisé l&rsquo;intégralité de votre quota de stockage (%s "
+"Mo)."
+
+#: wp-admin/includes/media.php:2360
+msgid "File URL:"
+msgstr "Adresse web du fichier&nbsp;:"
 
 #: wp-admin/includes/menu.php:226
 msgid "You do not have sufficient permissions to access this page."
@@ -4841,121 +5928,148 @@
 msgid "Preview Changes"
 msgstr "Prévisualiser les modifications"
 
-#: wp-admin/includes/meta-boxes.php:111
+#: wp-admin/includes/meta-boxes.php:109
 msgid "Visibility:"
 msgstr "Visibilité&nbsp;:"
 
-#: wp-admin/includes/meta-boxes.php:119
-#: wp-admin/includes/meta-boxes.php:142
-#: wp-admin/includes/template.php:1473
+#: wp-admin/includes/meta-boxes.php:117 wp-admin/includes/meta-boxes.php:140
+#: wp-admin/includes/template.php:1432
 msgid "Password protected"
 msgstr "Protégé par mot de passe"
 
-#: wp-admin/includes/meta-boxes.php:140
+#: wp-admin/includes/meta-boxes.php:138
 msgid "Stick this post to the front page"
 msgstr "Mettre cet article en avant sur la page d&rsquo;accueil"
 
-#: wp-admin/includes/meta-boxes.php:160
+#: wp-admin/includes/meta-boxes.php:158
 msgid "Scheduled for: <b>%1$s</b>"
 msgstr "Planifié pour&nbsp;: <b>%1$s</b>"
 
-#: wp-admin/includes/meta-boxes.php:162
+#: wp-admin/includes/meta-boxes.php:160
 msgid "Published on: <b>%1$s</b>"
 msgstr "Publié le&nbsp;: <b>%1$s</b>"
 
-#: wp-admin/includes/meta-boxes.php:164
-#: wp-admin/includes/meta-boxes.php:172
+#: wp-admin/includes/meta-boxes.php:162 wp-admin/includes/meta-boxes.php:170
 msgid "Publish <b>immediately</b>"
 msgstr "Publier <b>tout de suite</b>"
 
 # Ne pas mettre d'entité HTML (&nbsp;...) : chaîne utilisée par JavaScript.
-#: wp-admin/includes/meta-boxes.php:166
+#: wp-admin/includes/meta-boxes.php:164
 msgid "Schedule for: <b>%1$s</b>"
 msgstr "Planifier pour : <b>%1$s</b>"
 
-#: wp-admin/includes/meta-boxes.php:168
+#: wp-admin/includes/meta-boxes.php:166
 msgid "Publish on: <b>%1$s</b>"
 msgstr "Publier le&nbsp;: <b>%1$s</b>"
 
-#: wp-admin/includes/meta-boxes.php:254
-#: wp-admin/options-writing.php:103
+#: wp-admin/includes/meta-boxes.php:260
+msgid "Uploaded on: <b>%1$s</b>"
+msgstr "Mise en ligne le&nbsp;: <b>%1$s</b>"
+
+#: wp-admin/includes/meta-boxes.php:318 wp-admin/options-writing.php:90
 msgid "Standard"
 msgstr "Par défaut"
 
-#: wp-admin/includes/meta-boxes.php:324
-#: wp-admin/includes/meta-boxes.php:666
-#: wp-admin/includes/nav-menu.php:874
-#: wp-admin/press-this.php:499
+#: wp-admin/includes/meta-boxes.php:388 wp-admin/includes/meta-boxes.php:730
+#: wp-admin/includes/nav-menu.php:874 wp-admin/press-this.php:499
 msgid "Most Used"
 msgstr "Les plus utilisées"
 
 #. translators: %s: add new taxonomy label
-#: wp-admin/includes/meta-boxes.php:348
-#: wp-admin/press-this.php:521
+#: wp-admin/includes/meta-boxes.php:412 wp-admin/press-this.php:521
 msgid "+ %s"
 msgstr "+ %s"
 
-#: wp-admin/includes/meta-boxes.php:379
-msgid "Excerpts are optional hand-crafted summaries of your content that can be used in your theme. <a href=\"http://codex.wordpress.org/Excerpt\" target=\"_blank\">Learn more about manual excerpts.</a>"
-msgstr "Les extraits sont des résumés facultatifs de vos articles, écrits à la main. Il se peut que votre thème s&rsquo;en serve. <a href=\"http://codex.wordpress.org/Excerpt\" target=\"_blank\">En savoir plus (en)</a>."
-
-#: wp-admin/includes/meta-boxes.php:393
+#: wp-admin/includes/meta-boxes.php:443
+msgid ""
+"Excerpts are optional hand-crafted summaries of your content that can be "
+"used in your theme. <a href=\"http://codex.wordpress.org/Excerpt\" target="
+"\"_blank\">Learn more about manual excerpts.</a>"
+msgstr ""
+"Les extraits sont des résumés facultatifs de vos articles, écrits à la main. "
+"Il se peut que votre thème s&rsquo;en serve. <a href=\"http://codex."
+"wordpress.org/Excerpt\" target=\"_blank\">En savoir plus (en)</a>."
+
+#: wp-admin/includes/meta-boxes.php:457
 msgid "Already pinged:"
 msgstr "Déjà notifié(s) par ping&nbsp;:"
 
-#: wp-admin/includes/meta-boxes.php:402
+#: wp-admin/includes/meta-boxes.php:466
 msgid "Send trackbacks to:"
 msgstr "Envoyer un rétrolien vers&nbsp;:"
 
-#: wp-admin/includes/meta-boxes.php:402
+#: wp-admin/includes/meta-boxes.php:466
 msgid "Separate multiple URLs with spaces"
 msgstr "Séparez les adresses web par des espaces"
 
-#: wp-admin/includes/meta-boxes.php:403
-msgid "Trackbacks are a way to notify legacy blog systems that you&#8217;ve linked to them. If you link other WordPress sites they&#8217;ll be notified automatically using <a href=\"http://codex.wordpress.org/Introduction_to_Blogging#Managing_Comments\" target=\"_blank\">pingbacks</a>, no other action necessary."
-msgstr "Un rétrolien est une manière explicite de notifier les anciens systèmes de blog que vous avez fait un lien vers eux. Si vous faites un lien vers des sites WordPress, ils seront notifiés automatiquement à l&rsquo;aide des <a href=\"http://codex.wordpress.org/Introduction_to_Blogging#Managing_Comments\" target=\"_blank\">pings (en)</a>, sans que vous n&rsquo;ayez rien à faire."
-
-#: wp-admin/includes/meta-boxes.php:429
-msgid "Custom fields can be used to add extra metadata to a post that you can <a href=\"http://codex.wordpress.org/Using_Custom_Fields\" target=\"_blank\">use in your theme</a>."
-msgstr "Les champs personnalisés peuvent être utilisés afin d&rsquo;ajouter des données supplémentaires à vos articles. Vous pouvez les <a href=\"http://codex.wordpress.org/Using_Custom_Fields\" target=\"_blank\">utiliser dans votre thème (en)</a>."
-
-#: wp-admin/includes/meta-boxes.php:444
+#: wp-admin/includes/meta-boxes.php:467
+msgid ""
+"Trackbacks are a way to notify legacy blog systems that you&#8217;ve linked "
+"to them. If you link other WordPress sites they&#8217;ll be notified "
+"automatically using <a href=\"http://codex.wordpress.org/"
+"Introduction_to_Blogging#Managing_Comments\" target=\"_blank\">pingbacks</"
+"a>, no other action necessary."
+msgstr ""
+"Un rétrolien est une manière explicite de notifier les anciens systèmes de "
+"blog que vous avez fait un lien vers eux. Si vous faites un lien vers des "
+"sites WordPress, ils seront notifiés automatiquement à l&rsquo;aide des <a "
+"href=\"http://codex.wordpress.org/Introduction_to_Blogging#Managing_Comments"
+"\" target=\"_blank\">pings (en)</a>, sans que vous n&rsquo;ayez rien à faire."
+
+#: wp-admin/includes/meta-boxes.php:493
+msgid ""
+"Custom fields can be used to add extra metadata to a post that you can <a "
+"href=\"http://codex.wordpress.org/Using_Custom_Fields\" target=\"_blank"
+"\">use in your theme</a>."
+msgstr ""
+"Les champs personnalisés peuvent être utilisés afin d&rsquo;ajouter des "
+"données supplémentaires à vos articles. Vous pouvez les <a href=\"http://"
+"codex.wordpress.org/Using_Custom_Fields\" target=\"_blank\">utiliser dans "
+"votre thème (en)</a>."
+
+#: wp-admin/includes/meta-boxes.php:508
 msgid "Allow comments."
 msgstr "Autoriser les commentaires."
 
-#: wp-admin/includes/meta-boxes.php:445
-msgid "Allow <a href=\"%s\" target=\"_blank\">trackbacks and pingbacks</a> on this page."
-msgstr "Autoriser les <a href=\"%s\" target=\"_blank\">rétroliens et pings</a> sur cette page."
-
-#: wp-admin/includes/meta-boxes.php:445
+#: wp-admin/includes/meta-boxes.php:509
+msgid ""
+"Allow <a href=\"%s\" target=\"_blank\">trackbacks and pingbacks</a> on this "
+"page."
+msgstr ""
+"Autoriser les <a href=\"%s\" target=\"_blank\">rétroliens et pings</a> sur "
+"cette page."
+
+#: wp-admin/includes/meta-boxes.php:509
 msgid "http://codex.wordpress.org/Introduction_to_Blogging#Managing_Comments"
 msgstr "http://codex.wordpress.org/Introduction_to_Blogging#Managing_Comments"
 
-#: wp-admin/includes/meta-boxes.php:476
+#: wp-admin/includes/meta-boxes.php:540
 msgid "Add comment"
 msgstr "Ajouter un commentaire"
 
-#: wp-admin/includes/meta-boxes.php:495
+#: wp-admin/includes/meta-boxes.php:558
 msgid "Show comments"
 msgstr "Affiche les commentaires"
 
-#: wp-admin/includes/meta-boxes.php:562
+#: wp-admin/includes/meta-boxes.php:626
 msgid "(no parent)"
 msgstr "(pas de parent)"
 
-#: wp-admin/includes/meta-boxes.php:589
+#: wp-admin/includes/meta-boxes.php:653
 msgid "Need help? Use the Help tab in the upper right of your screen."
-msgstr "Besoin d&rsquo;aide ? Utiliser l&rsquo;onglet Aide présent dans le coin supérieur droit de votre écran."
-
-#: wp-admin/includes/meta-boxes.php:616
+msgstr ""
+"Besoin d&rsquo;aide ? Utiliser l&rsquo;onglet Aide présent dans le coin "
+"supérieur droit de votre écran."
+
+#: wp-admin/includes/meta-boxes.php:680
 msgid "Visit Link"
 msgstr "Visiter le lien"
 
-#: wp-admin/includes/meta-boxes.php:624
+#: wp-admin/includes/meta-boxes.php:688
 msgid "Keep this link private"
 msgstr "Ce lien est privé"
 
-#: wp-admin/includes/meta-boxes.php:635
+#: wp-admin/includes/meta-boxes.php:699
 msgid ""
 "You are about to delete this link '%s'\n"
 " 'Cancel' to stop, 'OK' to delete."
@@ -4963,221 +6077,224 @@
 "Vous êtes sur le point de supprimer le lien « %s ».\n"
 "  « Annuler » pour abandonner, « OK » pour le supprimer."
 
-#: wp-admin/includes/meta-boxes.php:687
-#: wp-admin/includes/meta-boxes.php:689
+#: wp-admin/includes/meta-boxes.php:751 wp-admin/includes/meta-boxes.php:753
 msgid "+ Add New Category"
 msgstr "+ Ajouter une nouvelle catégorie"
 
-#: wp-admin/includes/meta-boxes.php:690
+#: wp-admin/includes/meta-boxes.php:754
 msgid "New category name"
 msgstr "Nom de la nouvelle catégorie"
 
-#: wp-admin/includes/meta-boxes.php:711
+#: wp-admin/includes/meta-boxes.php:775
 msgid "<code>_blank</code> &mdash; new window or tab."
 msgstr "<code>_blank</code> &mdash; nouvelle fenêtre ou onglet."
 
-#: wp-admin/includes/meta-boxes.php:714
+#: wp-admin/includes/meta-boxes.php:778
 msgid "<code>_top</code> &mdash; current window or tab, with no frames."
 msgstr "<code>_top</code> &mdash; fenêtre ou onglet en cours, sans frame."
 
-#: wp-admin/includes/meta-boxes.php:717
+#: wp-admin/includes/meta-boxes.php:781
 msgid "<code>_none</code> &mdash; same window or tab."
 msgstr "<code>_none</code> &mdash; même fenêtre ou onglet."
 
-#: wp-admin/includes/meta-boxes.php:719
+#: wp-admin/includes/meta-boxes.php:783
 msgid "Choose the target frame for your link."
 msgstr "Choisir la frame que cible le lien."
 
 #. translators: xfn: http:gmpg.org/xfn/
-#: wp-admin/includes/meta-boxes.php:764
+#: wp-admin/includes/meta-boxes.php:828
 msgid "rel:"
 msgstr "rel&nbsp;:"
 
 #. translators: xfn: http:gmpg.org/xfn/
-#: wp-admin/includes/meta-boxes.php:768
-#: wp-admin/includes/meta-boxes.php:769
+#: wp-admin/includes/meta-boxes.php:832 wp-admin/includes/meta-boxes.php:833
 msgid "identity"
 msgstr "identité"
 
-#: wp-admin/includes/meta-boxes.php:772
+#: wp-admin/includes/meta-boxes.php:836
 msgid "another web address of mine"
 msgstr "Une autre de mes adresses Web"
 
 #. translators: xfn: http:gmpg.org/xfn/
-#: wp-admin/includes/meta-boxes.php:776
-#: wp-admin/includes/meta-boxes.php:777
+#: wp-admin/includes/meta-boxes.php:840 wp-admin/includes/meta-boxes.php:841
 msgid "friendship"
 msgstr "amitié"
 
 #. translators: xfn: http:gmpg.org/xfn/
-#: wp-admin/includes/meta-boxes.php:779
+#: wp-admin/includes/meta-boxes.php:843
 msgid "contact"
 msgstr "contact"
 
 #. translators: xfn: http:gmpg.org/xfn/
-#: wp-admin/includes/meta-boxes.php:782
+#: wp-admin/includes/meta-boxes.php:846
 msgid "acquaintance"
 msgstr "connaissance"
 
 #. translators: xfn: http:gmpg.org/xfn/
-#: wp-admin/includes/meta-boxes.php:785
+#: wp-admin/includes/meta-boxes.php:849
 msgid "friend"
 msgstr "ami(e)"
 
 #. translators: xfn: http:gmpg.org/xfn/
-#: wp-admin/includes/meta-boxes.php:788
-#: wp-admin/includes/meta-boxes.php:821
-#: wp-admin/includes/meta-boxes.php:844
+#: wp-admin/includes/meta-boxes.php:852 wp-admin/includes/meta-boxes.php:885
+#: wp-admin/includes/meta-boxes.php:908
 msgid "none"
 msgstr "aucune"
 
 #. translators: xfn: http:gmpg.org/xfn/
-#: wp-admin/includes/meta-boxes.php:793
-#: wp-admin/includes/meta-boxes.php:794
+#: wp-admin/includes/meta-boxes.php:857 wp-admin/includes/meta-boxes.php:858
 msgid "physical"
 msgstr "physique"
 
 #. translators: xfn: http:gmpg.org/xfn/
-#: wp-admin/includes/meta-boxes.php:796
+#: wp-admin/includes/meta-boxes.php:860
 msgid "met"
 msgstr "rencontré(e)"
 
 #. translators: xfn: http:gmpg.org/xfn/
-#: wp-admin/includes/meta-boxes.php:801
-#: wp-admin/includes/meta-boxes.php:802
+#: wp-admin/includes/meta-boxes.php:865 wp-admin/includes/meta-boxes.php:866
 msgid "professional"
 msgstr "professionnel"
 
 #. translators: xfn: http:gmpg.org/xfn/
-#: wp-admin/includes/meta-boxes.php:804
+#: wp-admin/includes/meta-boxes.php:868
 msgid "co-worker"
 msgstr "collègue de travail"
 
 #. translators: xfn: http:gmpg.org/xfn/
-#: wp-admin/includes/meta-boxes.php:807
+#: wp-admin/includes/meta-boxes.php:871
 msgid "colleague"
 msgstr "confrère"
 
 #. translators: xfn: http:gmpg.org/xfn/
-#: wp-admin/includes/meta-boxes.php:812
-#: wp-admin/includes/meta-boxes.php:813
+#: wp-admin/includes/meta-boxes.php:876 wp-admin/includes/meta-boxes.php:877
 msgid "geographical"
 msgstr "géographique"
 
 #. translators: xfn: http:gmpg.org/xfn/
-#: wp-admin/includes/meta-boxes.php:815
+#: wp-admin/includes/meta-boxes.php:879
 msgid "co-resident"
 msgstr "colocataire"
 
 #. translators: xfn: http:gmpg.org/xfn/
-#: wp-admin/includes/meta-boxes.php:818
+#: wp-admin/includes/meta-boxes.php:882
 msgid "neighbor"
 msgstr "voisin"
 
 #. translators: xfn: http:gmpg.org/xfn/
-#: wp-admin/includes/meta-boxes.php:826
-#: wp-admin/includes/meta-boxes.php:827
+#: wp-admin/includes/meta-boxes.php:890 wp-admin/includes/meta-boxes.php:891
 msgid "family"
 msgstr "famille"
 
 #. translators: xfn: http:gmpg.org/xfn/
-#: wp-admin/includes/meta-boxes.php:829
+#: wp-admin/includes/meta-boxes.php:893
 msgid "child"
 msgstr "enfant"
 
 #. translators: xfn: http:gmpg.org/xfn/
-#: wp-admin/includes/meta-boxes.php:832
+#: wp-admin/includes/meta-boxes.php:896
 msgid "kin"
 msgstr "apparenté"
 
 #. translators: xfn: http:gmpg.org/xfn/
-#: wp-admin/includes/meta-boxes.php:835
+#: wp-admin/includes/meta-boxes.php:899
 msgid "parent"
 msgstr "parent"
 
 #. translators: xfn: http:gmpg.org/xfn/
-#: wp-admin/includes/meta-boxes.php:838
+#: wp-admin/includes/meta-boxes.php:902
 msgid "sibling"
 msgstr "frère/s&oelig;ur"
 
 #. translators: xfn: http:gmpg.org/xfn/
-#: wp-admin/includes/meta-boxes.php:841
+#: wp-admin/includes/meta-boxes.php:905
 msgid "spouse"
 msgstr "conjoint"
 
 #. translators: xfn: http:gmpg.org/xfn/
-#: wp-admin/includes/meta-boxes.php:849
-#: wp-admin/includes/meta-boxes.php:850
+#: wp-admin/includes/meta-boxes.php:913 wp-admin/includes/meta-boxes.php:914
 msgid "romantic"
 msgstr "romantique"
 
 #. translators: xfn: http:gmpg.org/xfn/
-#: wp-admin/includes/meta-boxes.php:852
+#: wp-admin/includes/meta-boxes.php:916
 msgid "muse"
 msgstr "muse"
 
 #. translators: xfn: http:gmpg.org/xfn/
-#: wp-admin/includes/meta-boxes.php:855
+#: wp-admin/includes/meta-boxes.php:919
 msgid "crush"
 msgstr "coup de foudre"
 
 #. translators: xfn: http:gmpg.org/xfn/
-#: wp-admin/includes/meta-boxes.php:858
+#: wp-admin/includes/meta-boxes.php:922
 msgid "date"
 msgstr "petit(e)-ami(e)"
 
 #. translators: xfn: http:gmpg.org/xfn/
-#: wp-admin/includes/meta-boxes.php:861
+#: wp-admin/includes/meta-boxes.php:925
 msgid "sweetheart"
 msgstr "être aimé"
 
-#: wp-admin/includes/meta-boxes.php:867
-msgid "If the link is to a person, you can specify your relationship with them using the above form. If you would like to learn more about the idea check out <a href=\"http://gmpg.org/xfn/\">XFN</a>."
-msgstr "Si le lien pointe sur une personne, vous pouvez préciser la relation que vous entretenez avec elle via le formulaire ci-dessus. Si vous souhaitez en apprendre plus sur ce système, consultez le <a href=\"http://gmpg.org/xfn/\">site de XFN</a>."
-
-#: wp-admin/includes/meta-boxes.php:882
+#: wp-admin/includes/meta-boxes.php:931
+msgid ""
+"If the link is to a person, you can specify your relationship with them "
+"using the above form. If you would like to learn more about the idea check "
+"out <a href=\"http://gmpg.org/xfn/\">XFN</a>."
+msgstr ""
+"Si le lien pointe sur une personne, vous pouvez préciser la relation que "
+"vous entretenez avec elle via le formulaire ci-dessus. Si vous souhaitez en "
+"apprendre plus sur ce système, consultez le <a href=\"http://gmpg.org/xfn/"
+"\">site de XFN</a>."
+
+#: wp-admin/includes/meta-boxes.php:946
 msgid "Image Address"
 msgstr "Adresse de l&rsquo;image"
 
-#: wp-admin/includes/meta-boxes.php:886
+#: wp-admin/includes/meta-boxes.php:950
 msgid "RSS Address"
 msgstr "Adresse du flux RSS"
 
-#: wp-admin/includes/meta-boxes.php:890
+#: wp-admin/includes/meta-boxes.php:954
 msgid "Notes"
 msgstr "Commentaires"
 
-#: wp-admin/includes/meta-boxes.php:903
+#: wp-admin/includes/meta-boxes.php:967
 msgid "(Leave at 0 for no rating.)"
 msgstr "(laissez à 0 pour ne pas donner de note.)"
 
-#: wp-admin/includes/misc.php:563
-#: wp-admin/user-edit.php:212
+#: wp-admin/includes/misc.php:534 wp-admin/user-edit.php:213
 msgid "Admin Color Scheme"
 msgstr "Couleurs de l&rsquo;interface d&rsquo;administration"
 
 #: wp-admin/includes/ms-deprecated.php:30
 msgid "Sorry, you must delete files before you can upload any more."
-msgstr "Désolé, vous devez effacer quelques fichiers avant de pouvoir en envoyer d&rsquo;autres."
-
-#: wp-admin/includes/ms.php:33
+msgstr ""
+"Désolé, vous devez effacer quelques fichiers avant de pouvoir en envoyer "
+"d&rsquo;autres."
+
+#: wp-admin/includes/ms.php:32
 msgid "Not enough space to upload. %1$s KB needed."
 msgstr "Pas assez d&rsquo;espace pour l&rsquo;envoi. %1$s Ko sont nécessaires."
 
-#: wp-admin/includes/ms.php:35
+#: wp-admin/includes/ms.php:34
 msgid "This file is too big. Files must be less than %1$s KB in size."
-msgstr "Ce fichier est trop gros. La taille des fichiers doit être inférieure %1$s Ko."
-
-#: wp-admin/includes/ms.php:37
+msgstr ""
+"Ce fichier est trop gros. La taille des fichiers doit être inférieure %1$s "
+"Ko."
+
+#: wp-admin/includes/ms.php:36
 msgid "You have used your space quota. Please delete files before uploading."
-msgstr "Vous avez utilisé l&rsquo;intégralité de votre quota. Merci de supprimer quelques fichiers avant l&rsquo;envoi."
-
-#: wp-admin/includes/ms.php:40
+msgstr ""
+"Vous avez utilisé l&rsquo;intégralité de votre quota. Veuillez supprimer "
+"quelques fichiers avant l&rsquo;envoi."
+
+#: wp-admin/includes/ms.php:39
 msgid "Back"
 msgstr "Retour"
 
 # Pas d'entité HTML : texte envoyé par mail
-#: wp-admin/includes/ms.php:189
+#: wp-admin/includes/ms.php:190
 msgid ""
 "Dear user,\n"
 "\n"
@@ -5197,11 +6314,14 @@
 msgstr ""
 "Cher utilisateur,\n"
 "\n"
-"Vous avez récemment demandé à modifier l'adresse e-mail d'administration de votre site.\n"
-"Si cela est correct, merci de cliquer sur le lien suivant pour valider la modification:\n"
+"Vous avez récemment demandé à modifier l'adresse e-mail d'administration de "
+"votre site.\n"
+"Si c'est bien le cas, veuillez cliquer sur le lien suivant pour valider la "
+"modification:\n"
 "###ADMIN_URL###\n"
 "\n"
-"Vous pouvez ignorer et supprimer ce mail si vous n'avez pas demandé cette action.\n"
+"Vous pouvez ignorer et supprimer ce mail si vous n'avez pas demandé cette "
+"action.\n"
 "\n"
 "Cet email a été envoyé à ###EMAIL###\n"
 "\n"
@@ -5210,20 +6330,18 @@
 "###SITEURL###"
 
 # Pas d'entité HTML : titre de mail
-#: wp-admin/includes/ms.php:210
+#: wp-admin/includes/ms.php:211
 msgid "[%s] New Admin Email Address"
 msgstr "[%s] Nouvelle adresse e-mail d'administration"
 
-#: wp-admin/includes/ms.php:226
-msgid "<strong>ERROR</strong>: The e-mail address isn't correct."
-msgstr "<strong>ERREUR</strong>&nbsp;: l&rsquo;adresse e-mail est incorrecte"
-
-#: wp-admin/includes/ms.php:231
-msgid "<strong>ERROR</strong>: The e-mail address is already used."
-msgstr "<strong>ERREUR</strong>&nbsp;: l&rsquo;adresse e-mail est déjà utilisée."
+#: wp-admin/includes/ms.php:232
+msgid "<strong>ERROR</strong>: The email address is already used."
+msgstr ""
+"<strong>ERREUR</strong>&nbsp;: l&rsquo;adresse de messagerie est déjà "
+"utilisée."
 
 # Pas d'entité HTML : texte envoyé par mail
-#: wp-admin/includes/ms.php:243
+#: wp-admin/includes/ms.php:244
 msgid ""
 "Dear user,\n"
 "\n"
@@ -5242,11 +6360,14 @@
 msgstr ""
 "Cher utilisateur,\n"
 "\n"
-"Vous avez récemment demandé à modifier l'adresse e-mail d'administration de votre compte.\n"
-"Si cela est correct, merci de cliquer sur le lien suivant pour valider la modification:\n"
+"Vous avez récemment demandé à modifier l'adresse e-mail d'administration de "
+"votre compte.\n"
+"Si c'est bien le cas, veuillez cliquer sur le lien suivant pour valider la "
+"modification:\n"
 "###ADMIN_URL###\n"
 "\n"
-"Vous pouvez ignorer et supprimer ce mail si vous n'avez pas demandé cette action.\n"
+"Vous pouvez ignorer et supprimer ce mail si vous n'avez pas demandé cette "
+"action.\n"
 "\n"
 "Cet email a été envoyé à ###EMAIL###\n"
 "\n"
@@ -5254,90 +6375,124 @@
 "Depuis ###SITENAME###\n"
 "###SITEURL###"
 
-#: wp-admin/includes/ms.php:263
+#: wp-admin/includes/ms.php:264
 msgid "[%s] New Email Address"
 msgstr "[%s] Nouvelle adresse e-mail"
 
-#: wp-admin/includes/ms.php:271
-msgid "Your email address has not been updated yet. Please check your inbox at %s for a confirmation email."
-msgstr "Votre adresse e-mail n&rsquo;a pas encore été mise à jour. Merci de vérifier votre boite de réception %s pour consulter l&rsquo;e-mail de confirmation."
+#: wp-admin/includes/ms.php:272
+msgid ""
+"Your email address has not been updated yet. Please check your inbox at %s "
+"for a confirmation email."
+msgstr ""
+"Votre adresse e-mail n&rsquo;a pas encore été mise à jour. Veuillez vérifier "
+"votre boite de réception %s pour consulter l&rsquo;e-mail de confirmation."
+
+#: wp-admin/includes/ms.php:296
+msgid ""
+"Sorry, you have used your space allocation. Please delete some files to "
+"upload more files."
+msgstr ""
+"Désolé, vous avez utilisé l&rsquo;intégralité de votre quota aloué. Veuillez "
+"supprimer quelques fichiers avant d&rsquo;en envoyer d&rsquo;autres."
 
 #. translators: Gigabytes
-#: wp-admin/includes/ms.php:363
+#: wp-admin/includes/ms.php:317
 msgid "GB"
 msgstr "Go"
 
 #. translators: Megabytes
-#: wp-admin/includes/ms.php:366
+#: wp-admin/includes/ms.php:321
 msgid "MB"
 msgstr "Mo"
 
-#: wp-admin/includes/ms.php:369
-msgid "Used: %1s%% of %2s"
-msgstr "Taux d&rsquo;utilisation&nbsp;: %1s%% sur %2s"
-
-#: wp-admin/includes/ms.php:381
+#: wp-admin/includes/ms.php:324
+msgid "Used: %1$s%% of %2$s"
+msgstr "Taux d&rsquo;utilisation&nbsp;: %1$s%% sur %2$s"
+
+#: wp-admin/includes/ms.php:358
 msgid "Site Upload Space Quota "
 msgstr "Quota de l&rsquo;espace disque du site"
 
-#: wp-admin/includes/ms.php:382
+#: wp-admin/includes/ms.php:359
 msgid "MB (Leave blank for network default)"
 msgstr "Mo (Laisser vide pour utiliser la valeur par défaut du réseau)"
 
-#: wp-admin/includes/ms.php:462
-#: wp-admin/includes/ms.php:464
-msgid "You attempted to access the \"%1$s\" dashboard, but you do not currently have privileges on this site. If you believe you should be able to access the \"%1$s\" dashboard, please contact your network administrator."
-msgstr "Vous avez tenté d&rsquo;accéder au tableau de bord de &laquo;&nbsp;%1$s&nbsp;&raquo;. Cependant, vous ne disposez pas pour le moment des droits nécessaires sur ce site. Si vous pensez que vous devriez pouvoir accéder au tableau de bord de &laquo;&nbsp;%1$s&nbsp;&raquo;, contactez l&rsquo;administrateur du réseau."
-
-#: wp-admin/includes/ms.php:465
-msgid "If you reached this screen by accident and meant to visit one of your own sites, here are some shortcuts to help you find your way."
-msgstr "Si vous êtes arrivé sur cet écran par accident, et que vous vouliez en fait vous rendre sur l&rsquo;un de vos propres sites, voici quelques raccourcis pour vous aider à trouver votre chemin."
-
-#: wp-admin/includes/ms.php:467
+#: wp-admin/includes/ms.php:439 wp-admin/includes/ms.php:441
+msgid ""
+"You attempted to access the \"%1$s\" dashboard, but you do not currently "
+"have privileges on this site. If you believe you should be able to access "
+"the \"%1$s\" dashboard, please contact your network administrator."
+msgstr ""
+"Vous avez tenté d&rsquo;accéder au tableau de bord de &laquo;&nbsp;%1$s&nbsp;"
+"&raquo;. Cependant, vous ne disposez pas pour le moment des droits "
+"nécessaires sur ce site. Si vous pensez que vous devriez pouvoir accéder au "
+"tableau de bord de &laquo;&nbsp;%1$s&nbsp;&raquo;, contactez l&rsquo;"
+"administrateur du réseau."
+
+#: wp-admin/includes/ms.php:442
+msgid ""
+"If you reached this screen by accident and meant to visit one of your own "
+"sites, here are some shortcuts to help you find your way."
+msgstr ""
+"Si vous êtes arrivé sur cet écran par accident, et que vous vouliez en fait "
+"vous rendre sur l&rsquo;un de vos propres sites, voici quelques raccourcis "
+"pour vous aider à trouver votre chemin."
+
+#: wp-admin/includes/ms.php:444
 msgid "Your Sites"
 msgstr "Vos sites"
 
-#: wp-admin/includes/ms.php:476
+#: wp-admin/includes/ms.php:453
 msgid "Visit Dashboard"
 msgstr "Se rendre sur le Tableau de bord"
 
-#: wp-admin/includes/ms.php:476
+#: wp-admin/includes/ms.php:453
 msgid "View Site"
 msgstr "Afficher le site"
 
-#: wp-admin/includes/ms.php:503
+#: wp-admin/includes/ms.php:480
 msgid "American English"
 msgstr "Anglais (US)"
 
-#: wp-admin/includes/ms.php:507
+#: wp-admin/includes/ms.php:484
 msgid "British English"
 msgstr "Anglais (UK)"
 
-#: wp-admin/includes/ms.php:517
+#: wp-admin/includes/ms.php:494
 msgid "English"
 msgstr "Anglais"
 
-#: wp-admin/includes/ms.php:537
-msgid "Warning! WordPress encrypts user cookies, but you must add the following lines to <strong>wp-config.php</strong> for it to be more secure."
-msgstr "Attention&nbsp;! WordPress encrypte les cookies utilisés par les utilisateurs, mais pour que la sécurité soit améliorée vous devez ajouter les lignes suivantes dans le fichier <strong>wp-config.php</strong>."
-
-#: wp-admin/includes/ms.php:538
-msgid "Before the line <code>/* That's all, stop editing! Happy blogging. */</code> please add this code:"
-msgstr "Merci d&rsquo;ajouter ce code avant la ligne <code>/* C'est tout, ne touchez pas à ce qui suit ! Bon blogging ! */</code> :"
-
-#: wp-admin/includes/ms.php:551
-msgid "Thank you for Updating! Please visit the <a href=\"%s\">Update Network</a> page to update all your sites."
-msgstr "Merci d&rsquo;avoir fait cette mise à jour&nbsp;!  Rendez-vous sur la page de <a href=\"%s\">mise à jour du réseau</a> afin de mettre à jour tous vos sites."
+#: wp-admin/includes/ms.php:514
+msgid ""
+"Warning! WordPress encrypts user cookies, but you must add the following "
+"lines to <strong>wp-config.php</strong> for it to be more secure."
+msgstr ""
+"Attention&nbsp;! WordPress encrypte les cookies utilisés par les "
+"utilisateurs, mais pour que la sécurité soit améliorée vous devez ajouter "
+"les lignes suivantes dans le fichier <strong>wp-config.php</strong>."
+
+#: wp-admin/includes/ms.php:515
+msgid ""
+"Before the line <code>/* That's all, stop editing! Happy blogging. */</code> "
+"please add this code:"
+msgstr ""
+"Merci d&rsquo;ajouter ce code avant la ligne <code>/* C'est tout, ne touchez "
+"pas à ce qui suit ! Bon blogging ! */</code> :"
+
+#: wp-admin/includes/ms.php:528
+msgid ""
+"Thank you for Updating! Please visit the <a href=\"%s\">Update Network</a> "
+"page to update all your sites."
+msgstr ""
+"Merci d&rsquo;avoir fait cette mise à jour&nbsp;!  Rendez-vous sur la page "
+"de <a href=\"%s\">mise à jour du réseau</a> afin de mettre à jour tous vos "
+"sites."
 
 #. translators: My sites label
-#: wp-admin/includes/ms.php:584
+#: wp-admin/includes/ms.php:561
 msgid "Primary Site"
 msgstr "Site principal"
 
-#: wp-admin/includes/ms.php:631
-msgid "The <code>%1$s</code> file is deprecated. Please remove it and update your server rewrite rules to use <code>%2$s</code> instead."
-msgstr "Le fichier <code>%1$s</code> est obsolète. Veuillez l&rsquo;enlever et mettre à jour les règles de réécriture de votre serveur, afin d&rsquo;utiliser <code>%2$s</code> à la place."
-
 #. translators: %s: title of menu item which is invalid
 #: wp-admin/includes/nav-menu.php:75
 msgid "%s (Invalid)"
@@ -5356,8 +6511,7 @@
 msgid "Move down"
 msgstr "Descendre"
 
-#: wp-admin/includes/nav-menu.php:118
-#: wp-admin/includes/nav-menu.php:120
+#: wp-admin/includes/nav-menu.php:118 wp-admin/includes/nav-menu.php:120
 msgid "Edit Menu Item"
 msgstr "Modifier une entrée du menu"
 
@@ -5374,68 +6528,77 @@
 msgstr "Classes CSS (facultatives)"
 
 #: wp-admin/includes/nav-menu.php:168
-msgid "The description will be displayed in the menu if the current theme supports it."
-msgstr "La description sera affichée dans le menu si le thème actuel l&rsquo;accepte."
+msgid ""
+"The description will be displayed in the menu if the current theme supports "
+"it."
+msgstr ""
+"La description sera affichée dans le menu si le thème actuel l&rsquo;accepte."
 
 #: wp-admin/includes/nav-menu.php:175
 msgid "Original: %s"
 msgstr "Original&nbsp;: %s"
 
-# ???
-#: wp-admin/includes/nav-menu.php:385
-msgid "Theme Locations"
-msgstr "Emplacements du thème"
-
-#: wp-admin/includes/nav-menu.php:386
-msgid "Custom Links"
-msgstr "Liens personnalisés"
-
-#: wp-admin/includes/nav-menu.php:482
-#: wp-admin/nav-menus.php:446
-msgid "The current theme does not natively support menus, but you can use the &#8220;Custom Menu&#8221; widget to add any menus you create here to the theme&#8217;s sidebar."
-msgstr "Le thème actuellement utilisé ne peut pas utiliser les menus nativement, mais vous pouvez utiliser le widget &#8220;Menu de Navigation&#8221; pour ajouter n&rsquo;importe quel menu créé ici à la barre latérale du thème."
-
-#: wp-admin/includes/nav-menu.php:556
-msgid "Label"
-msgstr "Titre"
-
-#: wp-admin/includes/nav-menu.php:557
-msgid "Menu Item"
-msgstr "Élément du menu"
-
-#: wp-admin/includes/nav-menu.php:564
-#: wp-admin/includes/nav-menu.php:783
-#: wp-admin/includes/nav-menu.php:959
-msgid "Add to Menu"
-msgstr "Ajouter au menu"
-
-#: wp-admin/includes/nav-menu.php:608
-#: wp-admin/includes/nav-menu.php:824
-msgid "No items."
-msgstr "Aucune entrée."
-
-#: wp-admin/includes/nav-menu.php:663
-msgid "Most Recent"
-msgstr "Les plus récentes"
-
-#: wp-admin/includes/nav-menu.php:664
-#: wp-admin/includes/nav-menu.php:875
-msgid "View All"
-msgstr "Afficher tout"
-
-#: wp-admin/includes/nav-menu.php:731
+#: wp-admin/includes/nav-menu.php:251
 msgctxt "nav menu front page title"
 msgid "Home: %s"
 msgstr "Accueil&nbsp;: %s"
 
+# ???
+#: wp-admin/includes/nav-menu.php:386
+msgid "Theme Locations"
+msgstr "Emplacements du thème"
+
+#: wp-admin/includes/nav-menu.php:387
+msgid "Custom Links"
+msgstr "Liens personnalisés"
+
+#: wp-admin/includes/nav-menu.php:483 wp-admin/nav-menus.php:435
+msgid ""
+"The current theme does not natively support menus, but you can use the "
+"&#8220;Custom Menu&#8221; widget to add any menus you create here to the "
+"theme&#8217;s sidebar."
+msgstr ""
+"Le thème actuellement utilisé ne peut pas utiliser les menus nativement, "
+"mais vous pouvez utiliser le widget &#8220;Menu de Navigation&#8221; pour "
+"ajouter n&rsquo;importe quel menu créé ici à la barre latérale du thème."
+
+#: wp-admin/includes/nav-menu.php:557
+msgid "Label"
+msgstr "Titre"
+
+#: wp-admin/includes/nav-menu.php:558
+msgid "Menu Item"
+msgstr "Élément du menu"
+
+#: wp-admin/includes/nav-menu.php:564 wp-admin/includes/nav-menu.php:782
+#: wp-admin/includes/nav-menu.php:958
+msgid "Add to Menu"
+msgstr "Ajouter au menu"
+
+#: wp-admin/includes/nav-menu.php:609 wp-admin/includes/nav-menu.php:824
+msgid "No items."
+msgstr "Aucune entrée."
+
+#: wp-admin/includes/nav-menu.php:664
+msgid "Most Recent"
+msgstr "Les plus récentes"
+
+#: wp-admin/includes/nav-menu.php:665 wp-admin/includes/nav-menu.php:875
+msgid "View All"
+msgstr "Afficher tout"
+
 #: wp-admin/includes/nav-menu.php:742
 msgctxt "nav menu home label"
 msgid "Home"
 msgstr "Accueil"
 
 #: wp-admin/includes/nav-menu.php:1089
-msgid "Select menu items (pages, categories, links) from the boxes at left to begin building your custom menu."
-msgstr "Sélectionner les entrées du menu (pages, catégories, liens) depuis les blocs situés à gauche pour commencer à construire votre menu personnalisé."
+msgid ""
+"Select menu items (pages, categories, links) from the boxes at left to begin "
+"building your custom menu."
+msgstr ""
+"Sélectionner les entrées du menu (pages, catégories, liens) depuis les blocs "
+"situés à gauche pour commencer à construire votre menu personnalisé."
 
 #: wp-admin/includes/nav-menu.php:1100
 msgid "The Walker class named <strong>%s</strong> does not exist."
@@ -5443,11 +6606,15 @@
 
 #: wp-admin/includes/nav-menu.php:1111
 msgid "Click Save Menu to make pending menu items public."
-msgstr "Cliquez sur &laquo;&nbsp;Enregistrer le menu&nbsp;&raquo; pour rendre publics les éléments en attente."
+msgstr ""
+"Cliquez sur &laquo;&nbsp;Enregistrer le menu&nbsp;&raquo; pour rendre "
+"publics les éléments en attente."
 
 #: wp-admin/includes/nav-menu.php:1114
 msgid "There are some invalid menu items. Please check or delete them."
-msgstr "Certains éléments du menu ne sont pas valides. Veuillez les vérifier ou les effacer."
+msgstr ""
+"Certains éléments du menu ne sont pas valides. Veuillez les vérifier ou les "
+"effacer."
 
 #: wp-admin/includes/nav-menu.php:1135
 msgid "Show advanced menu properties"
@@ -5462,23 +6629,41 @@
 msgstr "Classes CSS"
 
 #: wp-admin/includes/plugin-install.php:46
-#: wp-admin/includes/plugin-install.php:50
-#: wp-admin/includes/theme.php:286
-#: wp-admin/includes/theme.php:290
-msgid "An unexpected error occurred. Something may be wrong with WordPress.org or this server&#8217;s configuration. If you continue to have problems, please try the <a href=\"http://wordpress.org/support/\">support forums</a>."
-msgstr "Une erreur inattendue est survenue. Il pourrait y avoir un problème avec WordPress.org ou la configuration de ce serveur. Si ce problème persiste, exposez-le au <a href=\"http://wordpress-fr.net/\">forum d&rsquo;entraide communautaire</a>."
+#: wp-admin/includes/plugin-install.php:50 wp-admin/includes/theme.php:287
+#: wp-admin/includes/theme.php:291
+msgid ""
+"An unexpected error occurred. Something may be wrong with WordPress.org or "
+"this server&#8217;s configuration. If you continue to have problems, please "
+"try the <a href=\"http://wordpress.org/support/\">support forums</a>."
+msgstr ""
+"Une erreur inattendue est survenue. Il pourrait y avoir un problème avec "
+"WordPress.org ou la configuration de ce serveur. Si ce problème persiste, "
+"exposez-le au <a href=\"http://wordpress-fr.net/\">forum d&rsquo;entraide "
+"communautaire</a>."
 
 #: wp-admin/includes/plugin-install.php:84
-msgid "Plugins extend and expand the functionality of WordPress. You may automatically install plugins from the <a href=\"http://wordpress.org/extend/plugins/\">WordPress Plugin Directory</a> or upload a plugin in .zip format via <a href=\"%s\">this page</a>."
-msgstr "Les extensions étendent les fonctionnalités de WordPress, et en ajoutent de nouvelles. Vous pouvez installer automatiquement des extensions en provenance du <a href=\"http://wordpress.org/extend/plugins/\">répertoire des extensions WordPress</a>, ou mettre en ligne une extension au format .zip, via <a href=\"%s\">cette page</a>."
+msgid ""
+"Plugins extend and expand the functionality of WordPress. You may "
+"automatically install plugins from the <a href=\"http://wordpress.org/extend/"
+"plugins/\">WordPress Plugin Directory</a> or upload a plugin in .zip format "
+"via <a href=\"%s\">this page</a>."
+msgstr ""
+"Les extensions étendent les fonctionnalités de WordPress, et en ajoutent de "
+"nouvelles. Vous pouvez installer automatiquement des extensions en "
+"provenance du <a href=\"http://wordpress.org/extend/plugins/\">répertoire "
+"des extensions WordPress</a>, ou mettre en ligne une extension au format ."
+"zip, via <a href=\"%s\">cette page</a>."
 
 #: wp-admin/includes/plugin-install.php:89
 msgid "Popular tags"
 msgstr "Mots-clefs populaires"
 
 #: wp-admin/includes/plugin-install.php:90
-msgid "You may also browse based on the most popular tags in the Plugin Directory:"
-msgstr "Vous pouvez également naviguer en fonction des mots-clefs les plus populaires sur WordPress.org&nbsp;:"
+msgid ""
+"You may also browse based on the most popular tags in the Plugin Directory:"
+msgstr ""
+"Vous pouvez également naviguer en fonction des mots-clefs les plus "
+"populaires sur WordPress.org&nbsp;:"
 
 #: wp-admin/includes/plugin-install.php:107
 msgid "%s plugin"
@@ -5489,7 +6674,7 @@
 msgstr "%s extensions"
 
 #: wp-admin/includes/plugin-install.php:126
-#: wp-admin/includes/theme-install.php:62
+#: wp-admin/includes/theme-install.php:63
 msgid "Keyword"
 msgstr "Mot-clef"
 
@@ -5508,118 +6693,149 @@
 msgstr "Installer une extension au format .zip"
 
 #: wp-admin/includes/plugin-install.php:146
-msgid "If you have a plugin in a .zip format, you may install it by uploading it here."
-msgstr "Si vous avez une extension au format .zip, vous pouvez l&rsquo;installer en la mettant en ligne ici."
+msgid ""
+"If you have a plugin in a .zip format, you may install it by uploading it "
+"here."
+msgstr ""
+"Si vous avez une extension au format .zip, vous pouvez l&rsquo;installer en "
+"la mettant en ligne ici."
 
 #: wp-admin/includes/plugin-install.php:149
 msgid "Plugin zip file"
 msgstr "Archive Zip de l&rsquo;extension"
 
-#: wp-admin/includes/plugin-install.php:258
+#: wp-admin/includes/plugin-install.php:165
+msgid ""
+"If you have marked plugins as favorites on WordPress.org, you can browse "
+"them here."
+msgstr ""
+"Si vous avez mis des extensions en favoris sur WordPress.org, vous pouvez "
+"les voir ici."
+
+#: wp-admin/includes/plugin-install.php:169
+msgid "Your WordPress.org username:"
+msgstr "Votre identifiant WordPress.org&nbsp;:"
+
+#: wp-admin/includes/plugin-install.php:171
+msgid "Get Favorites"
+msgstr "Récupérer les extensions favorites."
+
+#: wp-admin/includes/plugin-install.php:282
 msgctxt "Plugin installer section title"
 msgid "Description"
 msgstr "Description"
 
-#: wp-admin/includes/plugin-install.php:259
+#: wp-admin/includes/plugin-install.php:283
 msgctxt "Plugin installer section title"
 msgid "Installation"
 msgstr "Installation"
 
-#: wp-admin/includes/plugin-install.php:260
+#: wp-admin/includes/plugin-install.php:284
 msgctxt "Plugin installer section title"
 msgid "FAQ"
 msgstr "FAQ"
 
-#: wp-admin/includes/plugin-install.php:261
+#: wp-admin/includes/plugin-install.php:285
 msgctxt "Plugin installer section title"
 msgid "Screenshots"
 msgstr "Captures d&rsquo;écrans"
 
-#: wp-admin/includes/plugin-install.php:262
+#: wp-admin/includes/plugin-install.php:286
 msgctxt "Plugin installer section title"
 msgid "Changelog"
 msgstr "Liste des modifications"
 
-#: wp-admin/includes/plugin-install.php:263
+#: wp-admin/includes/plugin-install.php:287
 msgctxt "Plugin installer section title"
 msgid "Other Notes"
 msgstr "Autres notes"
 
-#: wp-admin/includes/plugin-install.php:278
-#: wp-admin/update.php:103
+#: wp-admin/includes/plugin-install.php:302 wp-admin/update.php:103
 msgid "Plugin Install"
 msgstr "Installation d&rsquo;extensions"
 
-#: wp-admin/includes/plugin-install.php:309
+#: wp-admin/includes/plugin-install.php:333
 msgid "Install Update Now"
 msgstr "Installer la mise à jour maintenant"
 
-#: wp-admin/includes/plugin-install.php:312
+#: wp-admin/includes/plugin-install.php:336
 msgid "Newer Version (%s) Installed"
 msgstr "Une version plus récente (%s) est installée"
 
-#: wp-admin/includes/plugin-install.php:315
+#: wp-admin/includes/plugin-install.php:339
 msgid "Latest Version Installed"
 msgstr "Dernière version installée"
 
 #. translators: For Your Information
-#: wp-admin/includes/plugin-install.php:321
+#: wp-admin/includes/plugin-install.php:345
 msgid "FYI"
 msgstr "Pour information"
 
-#: wp-admin/includes/plugin-install.php:326
+#: wp-admin/includes/plugin-install.php:350
 msgid "Author:"
 msgstr "Auteur&nbsp;:"
 
-#: wp-admin/includes/plugin-install.php:328
+#: wp-admin/includes/plugin-install.php:352
 msgid "Last Updated:"
 msgstr "Dernière mise à jour&nbsp;:"
 
-#: wp-admin/includes/plugin-install.php:331
+#: wp-admin/includes/plugin-install.php:355
 msgid "Requires WordPress Version:"
 msgstr "Nécessite WordPress en version&nbsp;:"
 
-#: wp-admin/includes/plugin-install.php:331
+#: wp-admin/includes/plugin-install.php:355
 msgid "%s or higher"
 msgstr "%s ou plus"
 
-#: wp-admin/includes/plugin-install.php:333
+#: wp-admin/includes/plugin-install.php:357
 msgid "Compatible up to:"
 msgstr "Compatible jusqu&rsquo;à la version&nbsp;: "
 
-#: wp-admin/includes/plugin-install.php:335
+#: wp-admin/includes/plugin-install.php:359
 msgid "Downloaded:"
 msgstr "Téléchargé&nbsp;:"
 
-#: wp-admin/includes/plugin-install.php:335
+#: wp-admin/includes/plugin-install.php:359
 msgid "%s time"
 msgid_plural "%s times"
 msgstr[0] "%s fois"
 msgstr[1] "%s fois"
 
-#: wp-admin/includes/plugin-install.php:337
+#: wp-admin/includes/plugin-install.php:361
 msgid "WordPress.org Plugin Page &#187;"
 msgstr "Page WordPress.org de l&rsquo;extension &#187;"
 
-#: wp-admin/includes/plugin-install.php:339
+#: wp-admin/includes/plugin-install.php:363
 msgid "Plugin Homepage &#187;"
 msgstr "Site Web de l&rsquo;extension &#187;"
 
-#: wp-admin/includes/plugin-install.php:343
+#: wp-admin/includes/plugin-install.php:367
 msgid "Average Rating"
 msgstr "Moyenne des notes"
 
-#: wp-admin/includes/plugin-install.php:353
-msgid "<strong>Warning:</strong> This plugin has <strong>not been tested</strong> with your current version of WordPress."
-msgstr "<strong>Attention&nbsp;:</strong> cette extension <strong>n&rsquo;a pas été testée</strong> avec votre version de WordPress."
-
-#: wp-admin/includes/plugin-install.php:356
-msgid "<strong>Warning:</strong> This plugin has <strong>not been marked as compatible</strong> with your version of WordPress."
-msgstr "<strong>Attention&nbsp;:</strong> cette extension <strong>n&rsquo;a pas été marquée comme étant compatible</strong> avec votre version de WordPress"
+#: wp-admin/includes/plugin-install.php:377
+msgid ""
+"<strong>Warning:</strong> This plugin has <strong>not been tested</strong> "
+"with your current version of WordPress."
+msgstr ""
+"<strong>Attention&nbsp;:</strong> cette extension <strong>n&rsquo;a pas été "
+"testée</strong> avec votre version de WordPress."
+
+#: wp-admin/includes/plugin-install.php:380
+msgid ""
+"<strong>Warning:</strong> This plugin has <strong>not been marked as "
+"compatible</strong> with your version of WordPress."
+msgstr ""
+"<strong>Attention&nbsp;:</strong> cette extension <strong>n&rsquo;a pas été "
+"marquée comme étant compatible</strong> avec votre version de WordPress"
 
 #: wp-admin/includes/plugin.php:92
-msgid "The <code>%1$s</code> plugin header is deprecated. Use <code>%2$s</code> instead."
-msgstr "L&rsquo;en-tête de l&rsquo;extension <code>%1$s</code est obsolète. Utilisez plutôt <code>%2$s</code>."
+msgid ""
+"The <code>%1$s</code> plugin header is deprecated. Use <code>%2$s</code> "
+"instead."
+msgstr ""
+"L&rsquo;en-tête de l&rsquo;extension <code>%1$s</code est obsolète. Utilisez "
+"plutôt <code>%2$s</code>."
 
 #: wp-admin/includes/plugin.php:160
 msgid "Visit plugin homepage"
@@ -5669,301 +6885,281 @@
 msgid "Custom site suspended message."
 msgstr "Message personnalisé de site suspendu."
 
-#: wp-admin/includes/plugin.php:558
+#: wp-admin/includes/plugin.php:559
 msgid "The plugin generated unexpected output."
 msgstr "Cette extension a produit un résultat inattendu."
 
-#: wp-admin/includes/plugin.php:654
+#: wp-admin/includes/plugin.php:655
 msgid "One of the plugins is invalid."
 msgstr "L&rsquo;une des extensions n&rsquo;est pas valide."
 
-#: wp-admin/includes/plugin.php:740
+#: wp-admin/includes/plugin.php:741
 msgid "Could not fully remove the plugin(s) %s."
 msgstr "Impossible de supprimer complètement la ou les extensions %s."
 
-#: wp-admin/includes/plugin.php:801
+#: wp-admin/includes/plugin.php:802
 msgid "Invalid plugin path."
 msgstr "Chemin d&rsquo;extension non valide"
 
-#: wp-admin/includes/plugin.php:803
+#: wp-admin/includes/plugin.php:804
 msgid "Plugin file does not exist."
 msgstr "Le fichier de l&rsquo;extension n&rsquo;existe pas."
 
-#: wp-admin/includes/plugin.php:807
+#: wp-admin/includes/plugin.php:808
 msgid "The plugin does not have a valid header."
 msgstr "Cette extension ne dispose pas d&rsquo;un en-tête valide."
 
-#: wp-admin/includes/plugin.php:1626
-#: wp-admin/includes/plugin.php:1649
-#: wp-admin/includes/template.php:1043
-#: wp-admin/includes/template.php:1083
-msgid "The miscellaneous options group has been removed. Use another settings group."
-msgstr "Le groupement d&rsquo;options &laquo;&nbsp;Divers&nbsp;&raquo; a été supprimé. Utilisez un autre groupement de réglages."
-
-#: wp-admin/includes/post.php:59
+#: wp-admin/includes/plugin.php:1631 wp-admin/includes/plugin.php:1636
+#: wp-admin/includes/plugin.php:1659 wp-admin/includes/plugin.php:1664
+#: wp-admin/includes/template.php:995 wp-admin/includes/template.php:1000
+msgid "The \"%s\" options group has been removed. Use another settings group."
+msgstr ""
+"Le groupement d&rsquo;options &laquo;&nbsp;%s&nbsp;&raquo; a été supprimé. "
+"Utilisez un autre groupement de réglages."
+
+#: wp-admin/includes/post.php:33
 msgid "You are not allowed to edit pages as this user."
-msgstr "Vous n&rsquo;avez pas l&rsquo;autorisation de modifier des pages sous cet identifiant."
-
-#: wp-admin/includes/post.php:60
-msgid "You are not allowed to create pages as this user."
-msgstr "Vous n&rsquo;avez pas l&rsquo;autorisation de créer des pages sous cet identifiant."
-
-#: wp-admin/includes/post.php:64
+msgstr ""
+"Vous n&rsquo;avez pas l&rsquo;autorisation de modifier des pages sous cet "
+"identifiant."
+
+#: wp-admin/includes/post.php:35
 msgid "You are not allowed to edit posts as this user."
-msgstr "Vous n&rsquo;avez pas l&rsquo;autorisation de modifier des articles sous cet identifiant."
-
-#: wp-admin/includes/post.php:65
-msgid "You are not allowed to post as this user."
-msgstr "Vous n&rsquo;avez pas l&rsquo;autorisation de publier sous cet identifiant."
-
-#: wp-admin/includes/post.php:271
+msgstr ""
+"Vous n&rsquo;avez pas l&rsquo;autorisation de modifier des articles sous cet "
+"identifiant."
+
+#: wp-admin/includes/post.php:287
 msgid "You are not allowed to edit pages."
 msgstr "Vous n&rsquo;avez pas l&rsquo;autorisation de modifier les pages."
 
-#: wp-admin/includes/post.php:273
+#: wp-admin/includes/post.php:289
 msgid "You are not allowed to edit posts."
 msgstr "Vous n&rsquo;avez pas l&rsquo;autorisation de modifier les articles."
 
-#: wp-admin/includes/post.php:420
+#: wp-admin/includes/post.php:436
 msgid "Auto Draft"
 msgstr "Brouillon auto"
 
-#: wp-admin/includes/post.php:541
+#: wp-admin/includes/post.php:527
 msgid "You are not allowed to create pages on this site."
-msgstr "Vous n&rsquo;avez pas l&rsquo;autorisation de créer des pages sur ce site."
-
-#: wp-admin/includes/post.php:543
+msgstr ""
+"Vous n&rsquo;avez pas l&rsquo;autorisation de créer des pages sur ce site."
+
+#: wp-admin/includes/post.php:529
 msgid "You are not allowed to create posts or drafts on this site."
-msgstr "Vous n&rsquo;avez pas l&rsquo;autorisation de créer des articles ou des brouillons sur ce site."
-
-#: wp-admin/includes/post.php:904
-msgid "Images"
-msgstr "Images"
-
-#: wp-admin/includes/post.php:904
-msgid "Manage Images"
-msgstr "Gérer les images"
-
-#: wp-admin/includes/post.php:904
-msgid "Image <span class=\"count\">(%s)</span>"
-msgid_plural "Images <span class=\"count\">(%s)</span>"
-msgstr[0] "Image <span class=\"count\">(%s)</span>"
-msgstr[1] "Images <span class=\"count\">(%s)</span>"
-
-#: wp-admin/includes/post.php:905
-msgid "Audio"
-msgstr "Son"
-
-#: wp-admin/includes/post.php:905
-msgid "Manage Audio"
-msgstr "Gérer les sons"
-
-#: wp-admin/includes/post.php:905
-msgid "Audio <span class=\"count\">(%s)</span>"
-msgid_plural "Audio <span class=\"count\">(%s)</span>"
-msgstr[0] "Fichier audio <span class=\"count\">(%s)</span>"
-msgstr[1] "Fichiers audio <span class=\"count\">(%s)</span>"
-
-#: wp-admin/includes/post.php:906
-msgid "Video"
-msgstr "Vidéo"
-
-#: wp-admin/includes/post.php:906
-msgid "Manage Video"
-msgstr "Gérer les vidéos"
-
-#: wp-admin/includes/post.php:906
-msgid "Video <span class=\"count\">(%s)</span>"
-msgid_plural "Video <span class=\"count\">(%s)</span>"
-msgstr[0] "Vidéos <span class=\"count\">(%s)</span>"
-msgstr[1] "Vidéos <span class=\"count\">(%s)</span>"
-
-#: wp-admin/includes/post.php:1086
+msgstr ""
+"Vous n&rsquo;avez pas l&rsquo;autorisation de créer des articles ou des "
+"brouillons sur ce site."
+
+#: wp-admin/includes/post.php:1055
 msgid "Click to edit this part of the permalink"
 msgstr "Cliquez pour modifier cette section du permalien"
 
-#: wp-admin/includes/post.php:1088
+#: wp-admin/includes/post.php:1057
 msgid "Temporary permalink. Click to edit this part."
 msgstr "Permalien temporaire. Cliquez pour modifier cette section."
 
-#: wp-admin/includes/post.php:1092
-#: wp-admin/includes/post.php:1120
+#: wp-admin/includes/post.php:1061 wp-admin/includes/post.php:1089
 msgid "Permalink:"
 msgstr "Permalien&nbsp;:"
 
-#: wp-admin/includes/post.php:1094
+#: wp-admin/includes/post.php:1063
 msgid "Change Permalinks"
 msgstr "Modifier les permaliens"
 
-#: wp-admin/includes/post.php:1149
-#: wp-admin/includes/post.php:1150
-msgid "Set featured image"
-msgstr "Mettre une image à la une"
-
-#: wp-admin/includes/post.php:1162
+#: wp-admin/includes/post.php:1130
 msgid "Remove featured image"
-msgstr "Supprimer l&rsquo;image à la une"
-
-#: wp-admin/includes/post.php:1234
+msgstr "Supprimer l&rsquo;image à la Une"
+
+#: wp-admin/includes/post.php:1201
 msgid "Warning: %s is currently editing this post"
 msgstr "Attention&nbsp;: %s modifie actuellement cet article"
 
-#: wp-admin/includes/post.php:1237
+#: wp-admin/includes/post.php:1204
 msgid "Warning: %s is currently editing this page"
 msgstr "Attention&nbsp;: %s modifie actuellement cette page"
 
-#: wp-admin/includes/post.php:1240
+#: wp-admin/includes/post.php:1207
 msgid "Warning: %s is currently editing this."
 msgstr "Attention&nbsp;: %s modifie actuellement ce contenu."
 
-#: wp-admin/includes/post.php:1301
+#: wp-admin/includes/post.php:1268
 msgid "Preview not available. Please save as a draft first."
-msgstr "Aperçu non disponible. Veuillez d&rsquo;abord enregistrer le brouillon."
+msgstr ""
+"Aperçu non disponible. Veuillez d&rsquo;abord enregistrer le brouillon."
 
 #. translators: default GMT offset or timezone string. Must be either a valid
 #. offset (-12 to 14)
 #. or a valid timezone string (America/New_York). See
 #. http:us3.php.net/manual/en/timezones.php
 #. for all timezone strings supported by PHP.
-#: wp-admin/includes/schema.php:356
+#: wp-admin/includes/schema.php:351
 msgctxt "default GMT offset or timezone string"
 msgid "0"
 msgstr "1"
 
-#: wp-admin/includes/schema.php:364
+#: wp-admin/includes/schema.php:359
 msgid "My Site"
 msgstr "Mon site"
 
 #. translators: blog tagline
-#: wp-admin/includes/schema.php:366
+#: wp-admin/includes/schema.php:361
 msgid "Just another WordPress site"
 msgstr "Un site utilisant WordPress"
 
 #. translators: default start of the week. 0 = Sunday, 1 = Monday
-#: wp-admin/includes/schema.php:370
+#: wp-admin/includes/schema.php:365
 msgctxt "start of week"
 msgid "1"
 msgstr "1"
 
 #. translators: default date format, see http:php.net/date
-#: wp-admin/includes/schema.php:388
-#: wp-admin/options-general.php:235
+#: wp-admin/includes/schema.php:382 wp-admin/options-general.php:234
 msgid "F j, Y"
 msgstr "j F Y"
 
 #. translators: default time format, see http:php.net/date
-#: wp-admin/includes/schema.php:390
-#: wp-admin/options-general.php:268
+#: wp-admin/includes/schema.php:384 wp-admin/options-general.php:267
 msgid "g:i a"
 msgstr "G \\h i \\m\\i\\n"
 
 #. translators: links last updated date format, see http:php.net/date
-#: wp-admin/includes/schema.php:392
+#: wp-admin/includes/schema.php:386
 msgid "F j, Y g:i a"
 msgstr "j F Y, G \\h i \\m\\i\\n"
 
 #. translators: blog tagline
-#: wp-admin/includes/schema.php:500
+#: wp-admin/includes/schema.php:490
 msgid "Just another %s site"
 msgstr "Un site utilisant %s"
 
 #. translators: user role
-#: wp-admin/includes/schema.php:568
+#: wp-admin/includes/schema.php:574
 msgctxt "User role"
 msgid "Administrator"
 msgstr "Administrateur"
 
 #. translators: user role
-#: wp-admin/includes/schema.php:570
+#: wp-admin/includes/schema.php:576
 msgctxt "User role"
 msgid "Editor"
 msgstr "Éditeur"
 
 #. translators: user role
-#: wp-admin/includes/schema.php:572
+#: wp-admin/includes/schema.php:578
 msgctxt "User role"
 msgid "Author"
 msgstr "Auteur"
 
 #. translators: user role
-#: wp-admin/includes/schema.php:574
+#: wp-admin/includes/schema.php:580
 msgctxt "User role"
 msgid "Contributor"
 msgstr "Contributeur"
 
 #. translators: user role
-#: wp-admin/includes/schema.php:576
+#: wp-admin/includes/schema.php:582
 msgctxt "User role"
 msgid "Subscriber"
 msgstr "Abonné"
 
-#: wp-admin/includes/schema.php:826
+#: wp-admin/includes/schema.php:836
 msgid "You must provide a domain name."
 msgstr "vous devez fournir un nom de domaine."
 
-#: wp-admin/includes/schema.php:828
+#: wp-admin/includes/schema.php:838
 msgid "You must provide a name for your network of sites."
 msgstr "vous devez fournir un nom pour votre réseau de sites."
 
-#: wp-admin/includes/schema.php:832
+#: wp-admin/includes/schema.php:842
 msgid "The network already exists."
 msgstr "Le réseau existe déjà."
 
-#: wp-admin/includes/schema.php:836
+#: wp-admin/includes/schema.php:846
 msgid "You must provide a valid e-mail address."
 msgstr "Vous devez saisir une adresse de messagerie valide."
 
-#: wp-admin/includes/schema.php:897
-#: wp-admin/includes/upgrade.php:197
-msgid "Welcome to <a href=\"SITE_URL\">SITE_NAME</a>. This is your first post. Edit or delete it, then start blogging!"
-msgstr "Bienvenue dans <a href=\"SITE_URL\">SITE_NAME</a>. Ceci est votre premier article. Modifiez-le ou supprimez-le, puis lancez-vous&nbsp;!"
-
-#: wp-admin/includes/schema.php:956
+#: wp-admin/includes/schema.php:907 wp-admin/includes/upgrade.php:135
+msgid ""
+"Welcome to <a href=\"SITE_URL\">SITE_NAME</a>. This is your first post. Edit "
+"or delete it, then start blogging!"
+msgstr ""
+"Bienvenue dans <a href=\"SITE_URL\">SITE_NAME</a>. Ceci est votre premier "
+"article. Modifiez-le ou supprimez-le, puis lancez-vous&nbsp;!"
+
+#: wp-admin/includes/schema.php:966
 msgid "Warning! Wildcard DNS may not be configured correctly!"
-msgstr "Attention&nbsp;! L&rsquo;enregistrement DNS générique (joker) peut ne pas être configuré correctement&nbsp;!"
-
-#: wp-admin/includes/schema.php:957
-msgid "The installer attempted to contact a random hostname (<code>%1$s</code>) on your domain."
-msgstr " L&rsquo;installateur a tenté de contacter un nom d&rsquo;hôte au hasard (<code>%1$s</code>) sur votre domaine."
-
-#: wp-admin/includes/schema.php:959
+msgstr ""
+"Attention&nbsp;! L&rsquo;enregistrement DNS générique (joker) peut ne pas "
+"être configuré correctement&nbsp;!"
+
+#: wp-admin/includes/schema.php:967
+msgid ""
+"The installer attempted to contact a random hostname (<code>%1$s</code>) on "
+"your domain."
+msgstr ""
+"L&rsquo;installateur a tenté de contacter un nom d&rsquo;hôte aléatoire "
+"(<code>%1$s</code>) sur votre domaine."
+
+#: wp-admin/includes/schema.php:969
 msgid "This resulted in an error message: %s"
 msgstr "Cela a abouti à ce message d&rsquo;erreur&nbsp;: %s"
 
-#: wp-admin/includes/schema.php:961
-msgid "To use a subdomain configuration, you must have a wildcard entry in your DNS. This usually means adding a <code>*</code> hostname record pointing at your web server in your DNS configuration tool."
-msgstr "Pour utiliser la configuration en sous-domaine, il vous faut ajouter un enregistrement générique (joker) à vos enregistrements DNS. Cela signifique ajouter un hôte <code>*</code> pointant vers votre serveur dans votre outil de configuration DNS."
-
-#: wp-admin/includes/schema.php:962
-msgid "You can still use your site but any subdomain you create may not be accessible. If you know your DNS is correct, ignore this message."
-msgstr "Vous pouvez toujours utiliser votre site, mais tout sous-domaine créé pourrait ne pas être accessible. Si vous êtes sûr de votre configuration DNS, ignorez ce message."
-
-#: wp-admin/includes/screen.php:835
+#: wp-admin/includes/schema.php:971
+msgid ""
+"To use a subdomain configuration, you must have a wildcard entry in your "
+"DNS. This usually means adding a <code>*</code> hostname record pointing at "
+"your web server in your DNS configuration tool."
+msgstr ""
+"Pour utiliser la configuration en sous-domaine, il vous faut ajouter un "
+"enregistrement générique (joker) à vos enregistrements DNS. Cela signifique "
+"ajouter un hôte <code>*</code> pointant vers votre serveur dans votre outil "
+"de configuration DNS."
+
+#: wp-admin/includes/schema.php:972
+msgid ""
+"You can still use your site but any subdomain you create may not be "
+"accessible. If you know your DNS is correct, ignore this message."
+msgstr ""
+"Vous pouvez toujours utiliser votre site, mais tout sous-domaine créé "
+"pourrait ne pas être accessible. Si vous êtes sûr de votre configuration "
+"DNS, ignorez ce message."
+
+#: wp-admin/includes/screen.php:796
+msgid "Contextual Help Tab"
+msgstr "Onglet d&rsquo;aide contextuelle"
+
+#: wp-admin/includes/screen.php:884
 msgid "Screen Options"
 msgstr "Options de l&rsquo;écran"
 
-#: wp-admin/includes/screen.php:856
+#: wp-admin/includes/screen.php:905
 msgid "Enable accessibility mode"
 msgstr "Activer le mode &laquo;&nbsp;Accessibilité&nbsp;&raquo;"
 
-#: wp-admin/includes/screen.php:856
+#: wp-admin/includes/screen.php:905
 msgid "Disable accessibility mode"
 msgstr "Désactiver le mode Accessibilité"
 
-#: wp-admin/includes/screen.php:882
+#: wp-admin/includes/screen.php:928
+msgid "Screen Options Tab"
+msgstr "Onglet des options de l&rsquo;écran"
+
+#: wp-admin/includes/screen.php:931
 msgid "Show on screen"
 msgstr "Afficher à l&rsquo;écran"
 
-#: wp-admin/includes/screen.php:902
+#: wp-admin/includes/screen.php:951
 msgctxt "Welcome panel"
 msgid "Welcome"
 msgstr "Bienvenue"
 
-#: wp-admin/includes/screen.php:959
+#: wp-admin/includes/screen.php:1008
 msgid "Screen Layout"
 msgstr "Présentation de l&rsquo;écran"
 
-#: wp-admin/includes/screen.php:961
+#: wp-admin/includes/screen.php:1010
 msgid "Number of Columns:"
 msgstr "Nombre de colonnes&nbsp;:"
 
@@ -5979,15 +7175,15 @@
 msgid "Add new Comment"
 msgstr "Ajouter un nouveau commentaire"
 
-#: wp-admin/includes/template.php:360
+#: wp-admin/includes/template.php:359
 msgid "Add Comment"
 msgstr "Ajouter un commentaire"
 
+#: wp-admin/includes/template.php:360
+msgid "Update Comment"
+msgstr "Mettre à jour le commentaire"
+
 #: wp-admin/includes/template.php:361
-msgid "Update Comment"
-msgstr "Mettre à jour le commentaire"
-
-#: wp-admin/includes/template.php:362
 msgid "Submit Reply"
 msgstr "Envoyer la réponse"
 
@@ -5999,17 +7195,14 @@
 msgid "Comment by %s marked as spam."
 msgstr "Commentaire de %s marqué comme indésirable."
 
-#: wp-admin/includes/template.php:420
-#: wp-admin/includes/template.php:435
+#: wp-admin/includes/template.php:420 wp-admin/includes/template.php:435
 #: wp-admin/includes/template.php:528
 msgctxt "meta name"
 msgid "Name"
 msgstr "Nom"
 
-#: wp-admin/includes/template.php:421
-#: wp-admin/includes/template.php:436
-#: wp-admin/includes/template.php:502
-#: wp-admin/includes/template.php:529
+#: wp-admin/includes/template.php:421 wp-admin/includes/template.php:436
+#: wp-admin/includes/template.php:502 wp-admin/includes/template.php:529
 msgid "Value"
 msgstr "Valeur"
 
@@ -6025,166 +7218,235 @@
 msgid "Enter new"
 msgstr "Saisissez-en un nouveau"
 
-#: wp-admin/includes/template.php:558
+#: wp-admin/includes/template.php:559
 msgid "Add Custom Field"
 msgstr "Ajouter un champ personnalisé"
 
 #. translators: 1: month number (01, 02, etc.), 2: month abbreviation
-#: wp-admin/includes/template.php:611
+#: wp-admin/includes/template.php:614
 msgid "%1$s-%2$s"
 msgstr "%1$s-%2$s"
 
 #. translators: 1: month input, 2: day input, 3: year input, 4: hour input, 5:
 #. minute input
-#: wp-admin/includes/template.php:622
+#: wp-admin/includes/template.php:625
 msgid "%1$s%2$s, %3$s @ %4$s : %5$s"
 msgstr "%2$s %1$s %3$s à %4$s h %5$s min"
 
-#: wp-admin/includes/template.php:727
+#: wp-admin/includes/template.php:729
 msgid "Thumbnail linked to file"
 msgstr "Miniature liée au fichier"
 
-#: wp-admin/includes/template.php:727
+#: wp-admin/includes/template.php:729
 msgid "Image linked to file"
 msgstr "Image liée au fichier"
 
-#: wp-admin/includes/template.php:731
+#: wp-admin/includes/template.php:733
 msgid "Thumbnail linked to page"
 msgstr "Miniature liée à la page"
 
-#: wp-admin/includes/template.php:731
+#: wp-admin/includes/template.php:733
 msgid "Image linked to page"
 msgstr "Image liée à la page"
 
-#: wp-admin/includes/template.php:736
+#: wp-admin/includes/template.php:738
 msgid "Link to file"
 msgstr "Lier au fichier"
 
-#: wp-admin/includes/template.php:740
+#: wp-admin/includes/template.php:742
 msgid "Link to page"
 msgstr "Lier à la page"
 
-#: wp-admin/includes/template.php:834
-msgid "Before you can upload your import file, you will need to fix the following error:"
-msgstr "Avant de mettre en ligne votre fichier d&rsquo;import, il vous faut corriger l&rsquo;erreur suivante&nbsp;:"
-
-#: wp-admin/includes/template.php:840
+#: wp-admin/includes/template.php:786
+msgid ""
+"Before you can upload your import file, you will need to fix the following "
+"error:"
+msgstr ""
+"Avant de mettre en ligne votre fichier d&rsquo;import, il vous faut corriger "
+"l&rsquo;erreur suivante&nbsp;:"
+
+#: wp-admin/includes/template.php:792
 msgid "Choose a file from your computer:"
 msgstr "Choisissez un fichier sur votre ordinateur&nbsp;:"
 
-#: wp-admin/includes/template.php:840
+#: wp-admin/includes/template.php:792
 msgid "Maximum size: %s"
 msgstr "Taille maximale&nbsp;: %s"
 
-#: wp-admin/includes/template.php:845
+#: wp-admin/includes/template.php:797
 msgid "Upload file and import"
 msgstr "Envoyer le fichier et l&rsquo;importer"
 
-#: wp-admin/includes/template.php:972
-#: wp-admin/press-this.php:458
-#: wp-admin/press-this.php:492
-#: wp-admin/press-this.php:542
+#: wp-admin/includes/template.php:924 wp-admin/press-this.php:458
+#: wp-admin/press-this.php:492 wp-admin/press-this.php:542
 msgid "Click to toggle"
 msgstr "Cliquer pour inverser."
 
-#: wp-admin/includes/template.php:1303
+#: wp-admin/includes/template.php:1040
+msgid ""
+"The miscellaneous options group has been removed. Use another settings group."
+msgstr ""
+"Le groupement d&rsquo;options &laquo;&nbsp;Divers&nbsp;&raquo; a été "
+"supprimé. Utilisez un autre groupement de réglages."
+
+#: wp-admin/includes/template.php:1045
+msgid "The privacy options group has been removed. Use another settings group."
+msgstr ""
+"Le groupement d&rsquo;options &laquo;&nbsp;Vie privée&nbsp;&raquo; a été "
+"supprimé. Utilisez un autre groupement de réglages."
+
+#: wp-admin/includes/template.php:1270
 msgid "Find Posts or Pages"
 msgstr "Chercher parmi les articles et pages"
 
 #. translators: post state
-#: wp-admin/includes/template.php:1480
+#: wp-admin/includes/template.php:1439
 msgctxt "post state"
 msgid "Pending"
 msgstr "En attente"
 
-#: wp-admin/includes/template.php:1646
-#: wp-admin/options.php:219
+#: wp-admin/includes/template.php:1609 wp-admin/options.php:225
 msgid "Save Changes"
 msgstr "Enregistrer les modifications"
 
-#: wp-admin/includes/template.php:1801
+#: wp-admin/includes/template.php:1764
 msgid "New Feature: Toolbar"
 msgstr "Nouvelle fonctionnalité&nbsp;: barre d&rsquo;outils"
 
-#: wp-admin/includes/template.php:1802
-msgid "We&#8217;ve combined the admin bar and the old Dashboard header into one persistent toolbar. Hover over the toolbar items to see what&#8217;s new."
-msgstr "Nous avons combiné la barre d&rsquo;administration et l&rsquo;ancien en-tête du tableau de bord, pour donner une seule barre qui reste toujours visible. En survolant ses éléments pour découvrir les nouveautés."
-
-#: wp-admin/includes/template.php:1805
+#: wp-admin/includes/template.php:1765
+msgid ""
+"We&#8217;ve combined the admin bar and the old Dashboard header into one "
+"persistent toolbar. Hover over the toolbar items to see what&#8217;s new."
+msgstr ""
+"Nous avons combiné la barre d&rsquo;administration et l&rsquo;ancien en-tête "
+"du tableau de bord, pour donner une seule barre qui reste toujours visible. "
+"En survolant ses éléments pour découvrir les nouveautés."
+
+#: wp-admin/includes/template.php:1768
 msgid "Network Admin is now located in the My Sites menu."
-msgstr "L&rsquo;administration du réseau est désormais située dans le menu &laquo;&nbsp;Mes sites&nbsp;&raquo;."
-
-#: wp-admin/includes/template.php:1819
-msgid "Updated Media Uploader"
-msgstr "Outil d&rsquo;envoi de fichiers mis à jour"
-
-#: wp-admin/includes/template.php:1820
-msgid "The single media icon now launches the uploader for all file types, and the new drag and drop interface makes uploading a breeze."
-msgstr "Il n&rsquo;y a désormais plus qu&rsquo;une seule icône d&rsquo;envoi de fichier, pour tous les types de fichier. Elle mène à l&rsquo;interface de glisser/déposer de fichier, beaucoup plus simple."
-
-#: wp-admin/includes/template.php:1834
+msgstr ""
+"L&rsquo;administration du réseau est désormais située dans le menu &laquo;"
+"&nbsp;Mes sites&nbsp;&raquo;."
+
+#: wp-admin/includes/template.php:1789
 msgid "New Feature: Saving Widgets"
 msgstr "Nouvelle fonctionnalité&nbsp;: sauvegarde des widgets"
 
-#: wp-admin/includes/template.php:1835
-msgid "If you change your mind and revert to your previous theme, we&#8217;ll put the widgets back the way you had them."
-msgstr "Si vous changez d&rsquo;avis et voulez revenir à votre thème précédent, nous remettrons vos widgets là où vous les aviez."
-
-#: wp-admin/includes/template.php:1849
+#: wp-admin/includes/template.php:1790
+msgid ""
+"If you change your mind and revert to your previous theme, we&#8217;ll put "
+"the widgets back the way you had them."
+msgstr ""
+"Si vous changez d&rsquo;avis et voulez revenir à votre thème précédent, nous "
+"remettrons vos widgets là où vous les aviez."
+
+#: wp-admin/includes/template.php:1804
 msgid "New Feature: Customizer"
 msgstr "Nouvelle fonctionnalité&nbsp;: personnalisateur"
 
-#: wp-admin/includes/template.php:1850
-msgid "Click Customize to change the header, background, title and menus of the current theme, all in one place."
-msgstr "Cliquez sur &laquo;&nbsp;Personnaliser&nbsp;&raquo; pour modifier l&rsquo;en-tête, l&rsquo;image de fond, le titre et les menus du thème actuel, en une seule page."
-
-#: wp-admin/includes/template.php:1851
-msgid "Click the Live Preview links in the Available Themes list below to customize and preview another theme before activating it."
-msgstr "Cliquez sur les liens &laquo;&nbsp;Prévisualiser&nbsp;&raquo; de la liste &laquo;&nbsp;Thèmes disponibles&nbsp;&raquo; ci-dessous, afin de personnaliser le thème sélectionné, et ensuite l&rsquo;activer si vous le souhaitez."
-
-#: wp-admin/includes/template.php:1865
+#: wp-admin/includes/template.php:1805
+msgid ""
+"Click Customize to change the header, background, title and menus of the "
+"current theme, all in one place."
+msgstr ""
+"Cliquez sur &laquo;&nbsp;Personnaliser&nbsp;&raquo; pour modifier l&rsquo;en-"
+"tête, l&rsquo;image de fond, le titre et les menus du thème actuel, en une "
+"seule page."
+
+#: wp-admin/includes/template.php:1806
+msgid ""
+"Click the Live Preview links in the Available Themes list below to customize "
+"and preview another theme before activating it."
+msgstr ""
+"Cliquez sur les liens &laquo;&nbsp;Prévisualiser&nbsp;&raquo; de la liste "
+"&laquo;&nbsp;Thèmes disponibles&nbsp;&raquo; ci-dessous, afin de "
+"personnaliser le thème sélectionné, et ensuite l&rsquo;activer si vous le "
+"souhaitez."
+
+#: wp-admin/includes/template.php:1820
 msgid "New Feature: Choose Image from Library"
-msgstr "Nouvelle fonctionnalité&nbsp;: choisir une image depuis la bibliothèque"
-
-#: wp-admin/includes/template.php:1866
-msgid "Want to use an image you uploaded earlier? Select it from your media library instead of uploading it again."
-msgstr "Besoin d&rsquo;utiliser une image que vous avez déjà mise en ligne ? Sélectionnez-la dans votre bibliothèque de médias au lieu de la remettre en ligne."
-
-#: wp-admin/includes/template.php:1897
-msgid "Likely direct inclusion of wp-admin/includes/template.php in order to use add_meta_box(). This is very wrong. Hook the add_meta_box() call into the add_meta_boxes action instead."
-msgstr "Il semble y avoir une inclusion directe de <code>wp-admin/includes/template.php</code> afin d&rsquo;utiliser <code>add_meta_box()</code>. Ce n&rsquo;est pas comme cela qu&rsquo;il faut faire. Attachez plutôt le crochet <code>add_meta_box()</code> à l&rsquo;action <code>add_meta_box</code>."
+msgstr ""
+"Nouvelle fonctionnalité&nbsp;: choisir une image depuis la bibliothèque"
+
+#: wp-admin/includes/template.php:1821
+msgid ""
+"Want to use an image you uploaded earlier? Select it from your media library "
+"instead of uploading it again."
+msgstr ""
+"Besoin d&rsquo;utiliser une image que vous avez déjà mise en ligne&nbsp;? "
+"Sélectionnez-la dans votre bibliothèque de médias au lieu de la remettre en "
+"ligne."
+
+#: wp-admin/includes/template.php:1831
+msgid ""
+"Uploading files and creating image galleries has a whole new look. Check it "
+"out!"
+msgstr ""
+"La mise en ligne de fichiers et la création de galeries d&rsquo;images "
+"dispose d&rsquo;un tout nouveau style. Jetez-y un oeil&nbsp;!"
+
+#: wp-admin/includes/template.php:1862
+msgid ""
+"Likely direct inclusion of wp-admin/includes/template.php in order to use "
+"add_meta_box(). This is very wrong. Hook the add_meta_box() call into the "
+"add_meta_boxes action instead."
+msgstr ""
+"Il semble y avoir une inclusion directe de <code>wp-admin/includes/template."
+"php</code> afin d&rsquo;utiliser <code>add_meta_box()</code>. Ce n&rsquo;est "
+"pas comme cela qu&rsquo;il faut faire. Attachez plutôt le crochet "
+"<code>add_meta_box()</code> à l&rsquo;action <code>add_meta_box</code>."
 
 #: wp-admin/includes/theme-install.php:56
 msgid "Search for themes by keyword."
 msgstr "Chercher un thème par mot-clef."
 
-#: wp-admin/includes/theme-install.php:64
+#: wp-admin/includes/theme-install.php:61
+msgid "Type of search"
+msgstr "Type de recherche"
+
+#: wp-admin/includes/theme-install.php:65
 msgctxt "Theme Installer"
 msgid "Tag"
 msgstr "Mot-clef"
 
+#: wp-admin/includes/theme-install.php:70
 #: wp-admin/includes/theme-install.php:81
-#: wp-admin/themes.php:221
+msgid "Search by keyword"
+msgstr "Recherche par mot-clef (terme)."
+
+#: wp-admin/includes/theme-install.php:73
+msgid "Search by author"
+msgstr "Recherche par auteur"
+
+#: wp-admin/includes/theme-install.php:76
+msgid "Search by tag"
+msgstr "Recherche par mot-clef (tag)"
+
+#: wp-admin/includes/theme-install.php:97 wp-admin/themes.php:231
 msgid "Feature Filter"
 msgstr "Filtre de fonctionnalités"
 
-#: wp-admin/includes/theme-install.php:82
+#: wp-admin/includes/theme-install.php:98
 msgid "Find a theme based on specific features."
 msgstr "Trouver un thème selon des critères précis."
 
-#: wp-admin/includes/theme-install.php:113
+#: wp-admin/includes/theme-install.php:129
 msgid "Find Themes"
 msgstr "Trouver des thèmes"
 
-#: wp-admin/includes/theme-install.php:121
+#: wp-admin/includes/theme-install.php:137
 msgid "Install a theme in .zip format"
 msgstr "Installer un thème au format .zip"
 
-#: wp-admin/includes/theme-install.php:122
-msgid "If you have a theme in a .zip format, you may install it by uploading it here."
-msgstr "Si vous avez un thème au format .zip, vous pouvez l&rsquo;installer en le mettant en ligne ici."
-
-#: wp-admin/includes/theme-install.php:171
+#: wp-admin/includes/theme-install.php:138
+msgid ""
+"If you have a theme in a .zip format, you may install it by uploading it "
+"here."
+msgstr ""
+"Si vous avez un thème au format .zip, vous pouvez l&rsquo;installer en le "
+"mettant en ligne ici."
+
+#: wp-admin/includes/theme-install.php:187
 msgid "Theme Install"
 msgstr "Installation du thème"
 
@@ -6197,20 +7459,41 @@
 msgstr "Impossible de supprimer complètement le thème %s."
 
 #: wp-admin/includes/theme.php:130
-msgid "Updating this theme will lose any customizations you have made. 'Cancel' to stop, 'OK' to update."
-msgstr "Mettre à jour ce thème vous fera perdre toutes les modifications personnelles que vous y avez apportées. « Annuler » pour arrêter, « OK » pour mettre à jour."
+msgid ""
+"Updating this theme will lose any customizations you have made. 'Cancel' to "
+"stop, 'OK' to update."
+msgstr ""
+"Mettre à jour ce thème vous fera perdre toutes les modifications "
+"personnelles que vous y avez apportées. « Annuler » pour arrêter, « OK » "
+"pour mettre à jour."
 
 #: wp-admin/includes/theme.php:134
-msgid "There is a new version of %1$s available. <a href=\"%2$s\" class=\"thickbox\" title=\"%1$s\">View version %3$s details</a>."
-msgstr "Une nouvelle version de %1$s est disponible. <a href=\"%2$s\" class=\"thickbox\" title=\"%1$s\">Afficher les détails de la version %3$s</a>."
+msgid ""
+"There is a new version of %1$s available. <a href=\"%2$s\" class=\"thickbox"
+"\" title=\"%1$s\">View version %3$s details</a>."
+msgstr ""
+"Une nouvelle version de %1$s est disponible. <a href=\"%2$s\" class="
+"\"thickbox\" title=\"%1$s\">Afficher les détails de la version %3$s</a>."
 
 #: wp-admin/includes/theme.php:136
-msgid "There is a new version of %1$s available. <a href=\"%2$s\" class=\"thickbox\" title=\"%1$s\">View version %3$s details</a>. <em>Automatic update is unavailable for this theme.</em>"
-msgstr "Une nouvelle version de %1$s est disponible. <a href=\"%2$s\" class=\"thickbox\" title=\"%1$s\">Afficher les détails de la version %3$s</a>. <em>Pas de possibilité de mise à jour automatique pour ce thème</em>."
+msgid ""
+"There is a new version of %1$s available. <a href=\"%2$s\" class=\"thickbox"
+"\" title=\"%1$s\">View version %3$s details</a>. <em>Automatic update is "
+"unavailable for this theme.</em>"
+msgstr ""
+"Une nouvelle version de %1$s est disponible. <a href=\"%2$s\" class="
+"\"thickbox\" title=\"%1$s\">Afficher les détails de la version %3$s</a>. "
+"<em>Pas de possibilité de mise à jour automatique pour ce thème</em>."
 
 #: wp-admin/includes/theme.php:138
-msgid "There is a new version of %1$s available. <a href=\"%2$s\" class=\"thickbox\" title=\"%1$s\">View version %3$s details</a> or <a href=\"%4$s\" %5$s>update now</a>."
-msgstr "Une nouvelle version de %1$s est disponible. <a href=\"%2$s\" class=\"thickbox\" title=\"%1$s\">Afficher les détails de la version %3$s</a> ou <a href=\"%4$s\" %5$s>mettez à jour automatiquement</a>."
+msgid ""
+"There is a new version of %1$s available. <a href=\"%2$s\" class=\"thickbox"
+"\" title=\"%1$s\">View version %3$s details</a> or <a href=\"%4$s\" "
+"%5$s>update now</a>."
+msgstr ""
+"Une nouvelle version de %1$s est disponible. <a href=\"%2$s\" class="
+"\"thickbox\" title=\"%1$s\">Afficher les détails de la version %3$s</a> ou "
+"<a href=\"%4$s\" %5$s>mettez à jour automatiquement</a>."
 
 #: wp-admin/includes/theme.php:165
 msgid "Tan"
@@ -6224,11 +7507,6 @@
 msgid "Light"
 msgstr "Clair"
 
-#: wp-admin/includes/theme.php:172
-#: wp-admin/includes/theme.php:231
-msgid "Columns"
-msgstr "Colonnes"
-
 #: wp-admin/includes/theme.php:173
 msgid "One Column"
 msgstr "Une colonne"
@@ -6261,11 +7539,14 @@
 msgid "Flexible Width"
 msgstr "Largeur flexible"
 
-#: wp-admin/includes/theme.php:186
-#: wp-admin/includes/theme.php:232
+#: wp-admin/includes/theme.php:186 wp-admin/includes/theme.php:233
 msgid "Features"
 msgstr "Fonctionnalités"
 
+#: wp-admin/includes/theme.php:187
+msgid "Blavatar"
+msgstr "Blavatar"
+
 #: wp-admin/includes/theme.php:188
 msgid "BuddyPress"
 msgstr "BuddyPress"
@@ -6280,162 +7561,229 @@
 
 #: wp-admin/includes/theme.php:194
 msgid "Featured Image Header"
-msgstr "Image d&rsquo;en-tête à la une"
+msgstr "Image d&rsquo;en-tête à la Une"
 
 #: wp-admin/includes/theme.php:195
 msgid "Featured Images"
-msgstr "Images à la une"
+msgstr "Images à la Une"
 
 #: wp-admin/includes/theme.php:196
+msgid "Flexible Header"
+msgstr "En-tête flexible"
+
+#: wp-admin/includes/theme.php:197
 msgid "Front Page Posting"
 msgstr "Page d&rsquo;accueil personnalisée"
 
-#: wp-admin/includes/theme.php:197
+#: wp-admin/includes/theme.php:198
 msgid "Full Width Template"
 msgstr "Modèle pleine largeur"
 
-#: wp-admin/includes/theme.php:198
+#: wp-admin/includes/theme.php:199
 msgid "Microformats"
 msgstr "Microformats"
 
-#: wp-admin/includes/theme.php:199
+#: wp-admin/includes/theme.php:200
 msgid "Post Formats"
 msgstr "Format d&rsquo;article"
 
-#: wp-admin/includes/theme.php:200
+#: wp-admin/includes/theme.php:201
 msgid "RTL Language Support"
 msgstr "Support des langues RTL"
 
 # Y'a p'tet mieux comme trad, non ? "tête de blog" ? boaf...
-#: wp-admin/includes/theme.php:201
+#: wp-admin/includes/theme.php:202
 msgid "Sticky Post"
 msgstr "Mise en avant"
 
-#: wp-admin/includes/theme.php:202
+#: wp-admin/includes/theme.php:203
 msgid "Theme Options"
 msgstr "Options du thème"
 
-#: wp-admin/includes/theme.php:203
-msgid "Threaded Comments"
-msgstr "Commentaires imbriqués"
-
 #: wp-admin/includes/theme.php:204
+msgid "Threaded Comments"
+msgstr "Commentaires imbriqués"
+
+#: wp-admin/includes/theme.php:205
 msgid "Translation Ready"
 msgstr "Prêt à être traduit"
 
-#: wp-admin/includes/theme.php:207
-#: wp-admin/includes/theme.php:232
+#: wp-admin/includes/theme.php:208 wp-admin/includes/theme.php:233
 msgid "Subject"
 msgstr "Thème"
 
-#: wp-admin/includes/theme.php:208
+#: wp-admin/includes/theme.php:209
 msgid "Holiday"
 msgstr "Vacances"
 
-#: wp-admin/includes/theme.php:209
-msgid "Photoblogging"
-msgstr "Photoblogging"
-
 #: wp-admin/includes/theme.php:210
+msgid "Photoblogging"
+msgstr "Photoblogging"
+
+#: wp-admin/includes/theme.php:211
 msgid "Seasonal"
 msgstr "Saisonnier"
 
-#: wp-admin/includes/update-core.php:491
-msgid "The update cannot be installed because WordPress %1$s requires PHP version %2$s or higher and MySQL version %3$s or higher. You are running PHP version %4$s and MySQL version %5$s."
-msgstr "Cette mise à jour ne peut être installée car WordPress %1$s requiert une version de PHP égale ou supérieure à la %2$s, et une version de MySQL égale ou supérieure à la %3$s. Votre hébergement utilise PHP version %4$s et MySQL version %5$s."
-
-#: wp-admin/includes/update-core.php:493
-msgid "The update cannot be installed because WordPress %1$s requires PHP version %2$s or higher. You are running version %3$s."
-msgstr "Cette mise à jour ne peut être installée car WordPress %1$s requiert une version de PHP égale ou supérieure à la %2$s. Votre hébergement utilise PHP version %3$s."
-
-#: wp-admin/includes/update-core.php:495
-msgid "The update cannot be installed because WordPress %1$s requires MySQL version %2$s or higher. You are running version %3$s."
-msgstr "Cette mise à jour ne peut être installée car WordPress %1$s requiert une version de MySQL égale ou supérieure à la %2$s. Votre hébergement utilise MySQL version %3$s."
-
-#: wp-admin/includes/update-core.php:498
+#: wp-admin/includes/update-core.php:618
 msgid "Verifying the unpacked files&#8230;"
 msgstr "Vérification des fichiers décompressés&#8230;"
 
-#: wp-admin/includes/update-core.php:509
+#: wp-admin/includes/update-core.php:629
 msgid "The update could not be unpacked"
 msgstr "La mise à jour ne peut pas être décompressée"
 
-#: wp-admin/includes/update-core.php:595
+#: wp-admin/includes/update-core.php:657
+msgid ""
+"The update cannot be installed because WordPress %1$s requires PHP version "
+"%2$s or higher and MySQL version %3$s or higher. You are running PHP version "
+"%4$s and MySQL version %5$s."
+msgstr ""
+"Cette mise à jour ne peut être installée car WordPress %1$s requiert une "
+"version de PHP égale ou supérieure à la %2$s, et une version de MySQL égale "
+"ou supérieure à la %3$s. Votre hébergement utilise PHP version %4$s et MySQL "
+"version %5$s."
+
+#: wp-admin/includes/update-core.php:659
+msgid ""
+"The update cannot be installed because WordPress %1$s requires PHP version "
+"%2$s or higher. You are running version %3$s."
+msgstr ""
+"Cette mise à jour ne peut être installée car WordPress %1$s requiert une "
+"version de PHP égale ou supérieure à la %2$s. Votre hébergement utilise PHP "
+"version %3$s."
+
+#: wp-admin/includes/update-core.php:661
+msgid ""
+"The update cannot be installed because WordPress %1$s requires MySQL version "
+"%2$s or higher. You are running version %3$s."
+msgstr ""
+"Cette mise à jour ne peut être installée car WordPress %1$s requiert une "
+"version de MySQL égale ou supérieure à la %2$s. Votre hébergement utilise "
+"MySQL version %3$s."
+
+#: wp-admin/includes/update-core.php:746
 msgid "Upgrading database&#8230;"
 msgstr "Mise à jour de la base de données&#8230;"
 
-#: wp-admin/includes/update-core.php:697
-#: wp-admin/update-core.php:382
+#: wp-admin/includes/update-core.php:848 wp-admin/update-core.php:356
 msgid "WordPress updated successfully"
 msgstr "WordPress a bien été mis à jour"
 
-#: wp-admin/includes/update-core.php:698
-#: wp-admin/update-core.php:383
-msgid "Welcome to WordPress %1$s. You will be redirected to the About WordPress screen. If not, click <a href=\"%s\">here</a>."
-msgstr "Bienvenue dans WordPress %1$s. Vous allez être redirigé vers l&rsquo;écran À propos de WordPress. Si ce n&rsquo;est pas le cas, cliquez <a href=\"%s\">ici</a>."
-
-#: wp-admin/includes/update-core.php:699
-#: wp-admin/update-core.php:384
+#: wp-admin/includes/update-core.php:851 wp-admin/update-core.php:357
+msgid ""
+"Welcome to WordPress %1$s. You will be redirected to the About WordPress "
+"screen. If not, click <a href=\"%2$s\">here</a>."
+msgstr ""
+"Bienvenue dans WordPress %1$s. Vous allez être redirigé vers l&rsquo;écran "
+"&laquo;&nbsp;À propos&nbsp;&raquo; de WordPress. Si ce n&rsquo;est pas le "
+"cas, cliquez <a href=\"%s\">ici</a>."
+
+#: wp-admin/includes/update-core.php:852 wp-admin/update-core.php:358
 msgid "Welcome to WordPress %1$s. <a href=\"%2$s\">Learn more</a>."
 msgstr "Bienvenu dans WordPress %1$s. <a href=\"%2$s\">En savoir plus</a>."
 
-#: wp-admin/includes/update.php:100
-msgid "You are using a development version (%1$s). Cool! Please <a href=\"%2$s\">stay updated</a>."
-msgstr "Vous utilisez une version de développement (%1$s). C&rsquo;est super&nbsp;! Veillez à <a href=\"%2$s\">rester à jour</a>."
-
-#: wp-admin/includes/update.php:104
+#: wp-admin/includes/update.php:103
+msgid ""
+"You are using a development version (%1$s). Cool! Please <a href=\"%2$s"
+"\">stay updated</a>."
+msgstr ""
+"Vous utilisez une version de développement (%1$s). C&rsquo;est super&nbsp;! "
+"Veillez à <a href=\"%2$s\">rester à jour</a>."
+
+#: wp-admin/includes/update.php:107
 msgid "<a href=\"%1$s\">Get Version %2$s</a>"
 msgstr "<a href=\"%1$s\">Téléchargez la version %2$s</a>"
 
-#: wp-admin/includes/update.php:130
-msgid "<a href=\"http://codex.wordpress.org/Version_%1$s\">WordPress %1$s</a> is available! <a href=\"%2$s\">Please update now</a>."
-msgstr "<a href=\"http://codex.wordpress.org/Version_%1$s\">WordPress %1$s</a> est disponible&nbsp;! <a href=\"%2$s\">Pensez à faire la mise à jour</a>."
-
-#: wp-admin/includes/update.php:132
-msgid "<a href=\"http://codex.wordpress.org/Version_%1$s\">WordPress %1$s</a> is available! Please notify the site administrator."
-msgstr "<a href=\"http://codex.wordpress.org/Version_%1$s\">WordPress %1$s</a> est disponible&nbsp;! Veuillez en notifier l&rsquo;administrateur du site."
-
-#: wp-admin/includes/update.php:140
+#: wp-admin/includes/update.php:133
+msgid ""
+"<a href=\"http://codex.wordpress.org/Version_%1$s\">WordPress %1$s</a> is "
+"available! <a href=\"%2$s\">Please update now</a>."
+msgstr ""
+"<a href=\"http://codex.wordpress.org/Version_%1$s\">WordPress %1$s</a> est "
+"disponible&nbsp;! <a href=\"%2$s\">Pensez à faire la mise à jour</a>."
+
+#: wp-admin/includes/update.php:135
+msgid ""
+"<a href=\"http://codex.wordpress.org/Version_%1$s\">WordPress %1$s</a> is "
+"available! Please notify the site administrator."
+msgstr ""
+"<a href=\"http://codex.wordpress.org/Version_%1$s\">WordPress %1$s</a> est "
+"disponible&nbsp;! Veuillez en notifier l&rsquo;administrateur du site."
+
+#: wp-admin/includes/update.php:144
 msgid "You are using <span class=\"b\">WordPress %s</span>."
 msgstr "Vous utilisez <span class=\"b\">WordPress %s</span>."
 
-#: wp-admin/includes/update.php:146
+#: wp-admin/includes/update.php:150
 msgid "Update to %s"
 msgstr "Mettre à jour vers la version %s"
 
-#: wp-admin/includes/update.php:146
+#: wp-admin/includes/update.php:150
 msgid "Latest"
 msgstr "Dernière version"
 
-#: wp-admin/includes/update.php:198
-#: wp-admin/includes/update.php:273
-msgid "There is a new version of %1$s available. <a href=\"%2$s\" class=\"thickbox\" title=\"%3$s\">View version %4$s details</a>."
-msgstr "Il y a une nouvelle version de %1$s disponible. <a href=\"%2$s\" class=\"thickbox\" title=\"%3$s\">Afficher les détails de la version %4$s</a>."
-
-#: wp-admin/includes/update.php:200
-msgid "There is a new version of %1$s available. <a href=\"%2$s\" class=\"thickbox\" title=\"%3$s\">View version %4$s details</a>. <em>Automatic update is unavailable for this plugin.</em>"
-msgstr "Il y a une nouvelle version de %1$s disponible. <a href=\"%2$s\" class=\"thickbox\" title=\"%3$s\">Afficher les détails de la version %4$s</a>. <em>La mise à jour automatique n&rsquo;est pas possible pour cette extension</em>."
-
-#: wp-admin/includes/update.php:202
-#: wp-admin/includes/update.php:277
-msgid "There is a new version of %1$s available. <a href=\"%2$s\" class=\"thickbox\" title=\"%3$s\">View version %4$s details</a> or <a href=\"%5$s\">update now</a>."
-msgstr "Une nouvelle version de %1$s est disponible. <a href=\"%2$s\" class=\"thickbox\" title=\"%3$s\">Afficher les détails de la version %4$s</a> ou <a href=\"%5$s\">mettez à jour automatiquement</a>."
-
-#: wp-admin/includes/update.php:275
-msgid "There is a new version of %1$s available. <a href=\"%2$s\" class=\"thickbox\" title=\"%3$s\">View version %4$s details</a>. <em>Automatic update is unavailable for this theme.</em>"
-msgstr "Une nouvelle version de %1$s est disponible. <a href=\"%2$s\" class=\"thickbox\" title=\"%3$s\">Afficher les détails de la version %4$s</a>. <em>Pas de possibilité de mise à jour automatique pour ce thème</em>."
-
-#: wp-admin/includes/update.php:300
-msgid "An automated WordPress update has failed to complete - <a href=\"%s\">please attempt the update again now</a>."
-msgstr "Une mise à jour automatique de WordPress a échoué en cours de route&nbsp;; <a href=\"%s\">vous pouvez tenter de la relancer</a>."
-
-#: wp-admin/includes/update.php:302
-msgid "An automated WordPress update has failed to complete! Please notify the site administrator."
-msgstr "Une mise à jour automatique de WordPress a échoué en cours de route&nbsp;! Merci de notifier l&rsquo;administrateur du site."
+#: wp-admin/includes/update.php:202 wp-admin/includes/update.php:277
+msgid ""
+"There is a new version of %1$s available. <a href=\"%2$s\" class=\"thickbox"
+"\" title=\"%3$s\">View version %4$s details</a>."
+msgstr ""
+"Il y a une nouvelle version de %1$s disponible. <a href=\"%2$s\" class="
+"\"thickbox\" title=\"%3$s\">Afficher les détails de la version %4$s</a>."
+
+#: wp-admin/includes/update.php:204
+msgid ""
+"There is a new version of %1$s available. <a href=\"%2$s\" class=\"thickbox"
+"\" title=\"%3$s\">View version %4$s details</a>. <em>Automatic update is "
+"unavailable for this plugin.</em>"
+msgstr ""
+"Il y a une nouvelle version de %1$s disponible. <a href=\"%2$s\" class="
+"\"thickbox\" title=\"%3$s\">Afficher les détails de la version %4$s</a>. "
+"<em>La mise à jour automatique n&rsquo;est pas possible pour cette "
+"extension</em>."
+
+#: wp-admin/includes/update.php:206 wp-admin/includes/update.php:281
+msgid ""
+"There is a new version of %1$s available. <a href=\"%2$s\" class=\"thickbox"
+"\" title=\"%3$s\">View version %4$s details</a> or <a href=\"%5$s\">update "
+"now</a>."
+msgstr ""
+"Une nouvelle version de %1$s est disponible. <a href=\"%2$s\" class="
+"\"thickbox\" title=\"%3$s\">Afficher les détails de la version %4$s</a> ou "
+"<a href=\"%5$s\">mettez à jour automatiquement</a>."
+
+#: wp-admin/includes/update.php:279
+msgid ""
+"There is a new version of %1$s available. <a href=\"%2$s\" class=\"thickbox"
+"\" title=\"%3$s\">View version %4$s details</a>. <em>Automatic update is "
+"unavailable for this theme.</em>"
+msgstr ""
+"Une nouvelle version de %1$s est disponible. <a href=\"%2$s\" class="
+"\"thickbox\" title=\"%3$s\">Afficher les détails de la version %4$s</a>. "
+"<em>Pas de possibilité de mise à jour automatique pour ce thème</em>."
+
+#: wp-admin/includes/update.php:304
+msgid ""
+"An automated WordPress update has failed to complete - <a href=\"%s\">please "
+"attempt the update again now</a>."
+msgstr ""
+"Une mise à jour automatique de WordPress a échoué en cours de route&nbsp;; "
+"<a href=\"%s\">vous pouvez tenter de la relancer</a>."
+
+#: wp-admin/includes/update.php:306
+msgid ""
+"An automated WordPress update has failed to complete! Please notify the site "
+"administrator."
+msgstr ""
+"Une mise à jour automatique de WordPress a échoué en cours de route&nbsp;! "
+"Veuillez en notifier l&rsquo;administrateur du site."
 
 #: wp-admin/includes/upgrade.php:66
-msgid "<strong><em>Note that password</em></strong> carefully! It is a <em>random</em> password that was generated just for you."
-msgstr "<strong><em>Notez bien ce mot de passe</em></strong> sans vous tromper&nbsp;! Il a été créé <em>au hasard</em> et vous est unique."
+msgid ""
+"<strong><em>Note that password</em></strong> carefully! It is a <em>random</"
+"em> password that was generated just for you."
+msgstr ""
+"<strong><em>Notez bien ce mot de passe</em></strong> sans vous "
+"tromper&nbsp;! Il a été créé <em>aléatoirement</em> et vous est unique."
 
 #: wp-admin/includes/upgrade.php:72
 msgid "Your chosen password."
@@ -6456,87 +7804,95 @@
 msgid "Uncategorized"
 msgstr "non-classe"
 
-#. translators: Default link category slug
-#: wp-admin/includes/upgrade.php:129
-msgctxt "Default link category slug"
-msgid "Blogroll"
-msgstr "Liens"
-
-#: wp-admin/includes/upgrade.php:159
-msgctxt "default link"
-msgid "Support Forums"
-msgstr "Forums d&rsquo;entraide en français"
-
-#: wp-admin/includes/upgrade.php:164
-msgctxt "Default link to wordpress.org/extend/plugins/"
-msgid "Plugins"
-msgstr "Extensions"
-
-#: wp-admin/includes/upgrade.php:169
-msgctxt "Default link to wordpress.org/extend/themes/"
-msgid "Themes"
-msgstr "Thèmes"
-
-#: wp-admin/includes/upgrade.php:179
-msgid "WordPress Planet"
-msgstr "La planète WordPress"
-
-#: wp-admin/includes/upgrade.php:202
-msgid "Welcome to WordPress. This is your first post. Edit or delete it, then start blogging!"
-msgstr "Bienvenue dans WordPress. Ceci est votre premier article. Modifiez-le ou supprimez-le, puis lancez-vous&nbsp;!"
-
-#: wp-admin/includes/upgrade.php:211
+#: wp-admin/includes/upgrade.php:140
+msgid ""
+"Welcome to WordPress. This is your first post. Edit or delete it, then start "
+"blogging!"
+msgstr ""
+"Bienvenue dans WordPress. Ceci est votre premier article. Modifiez-le ou "
+"supprimez-le, puis lancez-vous&nbsp;!"
+
+#: wp-admin/includes/upgrade.php:149
 msgid "Hello world!"
 msgstr "Bonjour tout le monde&nbsp;!"
 
 #. translators: Default post slug
-#: wp-admin/includes/upgrade.php:213
+#: wp-admin/includes/upgrade.php:151
 msgctxt "Default post slug"
 msgid "hello-world"
 msgstr "bonjour-tout-le-monde"
 
-#: wp-admin/includes/upgrade.php:225
+#: wp-admin/includes/upgrade.php:163
 msgid "Mr WordPress"
 msgstr "Monsieur WordPress"
 
-#: wp-admin/includes/upgrade.php:227
-msgid "Hi, this is a comment.<br />To delete a comment, just log in and view the post&#039;s comments. There you will have the option to edit or delete them."
-msgstr "Bonjour, ceci est un commentaire.<br /> Pour supprimer un commentaire, connectez-vous, et affichez les commentaires de cet article. Vous pourrez alors les modifier ou les supprimer."
+#: wp-admin/includes/upgrade.php:165
+msgid ""
+"Hi, this is a comment.\n"
+"To delete a comment, just log in and view the post&#039;s comments. There "
+"you will have the option to edit or delete them."
+msgstr ""
+"Bonjour, ceci est un commentaire.\n"
+"Pour supprimer un commentaire, connectez-vous et affichez les commentaires "
+"de cet article. Vous pourrez alors les modifier ou les supprimer."
 
 # Eviter les entités HTML : contenu mis directement dans une page d'exemple.
-#: wp-admin/includes/upgrade.php:244
-msgid ""
-"This is an example page. It's different from a blog post because it will stay in one place and will show up in your site navigation (in most themes). Most people start with an About page that introduces them to potential site visitors. It might say something like this:\n"
+#: wp-admin/includes/upgrade.php:183
+msgid ""
+"This is an example page. It's different from a blog post because it will "
+"stay in one place and will show up in your site navigation (in most themes). "
+"Most people start with an About page that introduces them to potential site "
+"visitors. It might say something like this:\n"
 "\n"
-"<blockquote>Hi there! I'm a bike messenger by day, aspiring actor by night, and this is my blog. I live in Los Angeles, have a great dog named Jack, and I like pi&#241;a coladas. (And gettin' caught in the rain.)</blockquote>\n"
+"<blockquote>Hi there! I'm a bike messenger by day, aspiring actor by night, "
+"and this is my blog. I live in Los Angeles, have a great dog named Jack, and "
+"I like pi&#241;a coladas. (And gettin' caught in the rain.)</blockquote>\n"
 "\n"
 "...or something like this:\n"
 "\n"
-"<blockquote>The XYZ Doohickey Company was founded in 1971, and has been providing quality doohickies to the public ever since. Located in Gotham City, XYZ employs over 2,000 people and does all kinds of awesome things for the Gotham community.</blockquote>\n"
+"<blockquote>The XYZ Doohickey Company was founded in 1971, and has been "
+"providing quality doohickeys to the public ever since. Located in Gotham "
+"City, XYZ employs over 2,000 people and does all kinds of awesome things for "
+"the Gotham community.</blockquote>\n"
 "\n"
-"As a new WordPress user, you should go to <a href=\"%s\">your dashboard</a> to delete this page and create new pages for your content. Have fun!"
-msgstr ""
-"Voici un exemple de page. Elle est différente d&rsquo;un article de blog, en cela qu'elle restera à la même place, et s'affichera dans le menu de navigation de votre site (en fonction de votre thème). La plupart des gens commencent par écrire une page &laquo;&nbsp;À Propos&nbsp;&raquo; qui les présente aux visiteurs potentiels du site. Vous pourriez y écrire quelque chose de ce tenant&nbsp;:\n"
-"\n"
-"<blockquote>Bonjour&nbsp;! Je suis un mécanicien qui aspire à devenir un acteur, et voici mon blog. J'habite à Bordeaux, j'ai un super chien baptisé Russell, et j'aime la vodka-ananas (ainsi que perdre mon temps à regarder la pluie tomber).</blockquote>\n"
+"As a new WordPress user, you should go to <a href=\"%s\">your dashboard</a> "
+"to delete this page and create new pages for your content. Have fun!"
+msgstr ""
+"Voici un exemple de page. Elle est différente d&rsquo;un article de blog, en "
+"cela qu'elle restera à la même place, et s'affichera dans le menu de "
+"navigation de votre site (en fonction de votre thème). La plupart des gens "
+"commencent par écrire une page « À Propos » qui les présente aux visiteurs "
+"potentiels du site. Vous pourriez y écrire quelque chose de ce tenant :\n"
 "\n"
-"...ou bien quelque chose comme ça&nbsp;:\n"
+"<blockquote>Bonjour ! Je suis un mécanicien qui aspire à devenir un acteur, "
+"et voici mon blog. J'habite à Bordeaux, j'ai un super chien baptisé Russell, "
+"et j'aime la vodka-ananas (ainsi que regarder la pluie tomber).</"
+"blockquote>\n"
 "\n"
-"<blockquote>La société 123 Machin Truc a été créée en 1971, et n'a cessé de proposer au public des machins-trucs de qualité depuis cette année. Située à Saint-Remy-en-Bouzemont-Saint-Genest-et-Isson, 123 Machin Truc emploie 2&nbsp;000 personnes, et fabrique toutes sortes de bidules super pour la communauté bouzemontoise.</blockquote>\n"
+"...ou bien quelque chose comme ça :\n"
 "\n"
-"Etant donné que vous êtes un nouvel utilisateur de WordPress, vous devriez vous rendre sur votre <a href=\"%s\">tableau de bord</a> pour effacer la présente page, et créer de nouvelles pages avec votre propre contenu. Amusez-vous bien&nbsp;!"
-
-#: wp-admin/includes/upgrade.php:262
+"<blockquote>La société 123 Machin Truc a été créée en 1971, et n'a cessé de "
+"proposer au public des machins-trucs de qualité depuis lors. Située à Saint-"
+"Remy-en-Bouzemont-Saint-Genest-et-Isson, 123 Machin Truc emploie 2 000 "
+"personnes, et fabrique toutes sortes de bidules super pour la communauté "
+"bouzemontoise.</blockquote>\n"
+"\n"
+"Étant donné que vous êtes un nouvel utilisateur de WordPress, vous devriez "
+"vous rendre sur votre <a href=\"%s\">tableau de bord</a> pour effacer la "
+"présente page, et créer de nouvelles pages avec votre propre contenu. Amusez-"
+"vous bien&nbsp;!"
+
+#: wp-admin/includes/upgrade.php:201
 msgid "Sample Page"
 msgstr "Page d&rsquo;exemple"
 
 #. translators: Default page slug
-#: wp-admin/includes/upgrade.php:264
+#: wp-admin/includes/upgrade.php:203
 msgid "sample-page"
 msgstr "page-d-exemple"
 
 # Ne pas mettre d'entité HTML (&nbsp;...) : chaîne envoyée par e-mail.
-#: wp-admin/includes/upgrade.php:325
+#: wp-admin/includes/upgrade.php:264
 msgid ""
 "Your new WordPress site has been successfully set up at:\n"
 "\n"
@@ -6556,7 +7912,8 @@
 "\n"
 "%1$s\n"
 "\n"
-"Vous pouvez vous connecter au compte administrateur avec les informations suivantes :\n"
+"Vous pouvez vous connecter au compte administrateur avec les informations "
+"suivantes :\n"
 "\n"
 "Identifiant : %2$s\n"
 "Mot de passe : %3$s\n"
@@ -6567,295 +7924,465 @@
 "http://wordpress.org/\n"
 "http://www.wordpress-fr.net/ (traduction française et assistance)\n"
 
-#: wp-admin/includes/upgrade.php:340
+#: wp-admin/includes/upgrade.php:279
 msgid "New WordPress Site"
 msgstr "Nouveau site WordPress"
 
-#: wp-admin/includes/user.php:62
-#: wp-admin/users.php:94
+#: wp-admin/includes/user.php:62 wp-admin/users.php:110
 msgid "You can&#8217;t give users that role."
 msgstr "Vous ne pouvez pas donner ce rôle aux utilisateurs."
 
-#: wp-admin/includes/user.php:115
-#: wp-admin/includes/user.php:117
+#: wp-admin/includes/user.php:116 wp-admin/includes/user.php:118
 msgid "<strong>ERROR</strong>: You entered your new password only once."
-msgstr "<strong>ERREUR</strong>&nbsp;: vous n&rsquo;avez tapé votre nouveau mot de passe qu&rsquo;une seule fois."
-
-#: wp-admin/includes/user.php:120
+msgstr ""
+"<strong>ERREUR</strong>&nbsp;: vous n&rsquo;avez tapé votre nouveau mot de "
+"passe qu&rsquo;une seule fois."
+
+#: wp-admin/includes/user.php:121
 msgid "<strong>ERROR</strong>: Please enter your password."
-msgstr "<strong>ERREUR</strong>&nbsp;: merci de renseigner votre mot de passe."
-
-#: wp-admin/includes/user.php:122
+msgstr "<strong>ERREUR</strong>&nbsp;: veuillez renseigner votre mot de passe."
+
+#: wp-admin/includes/user.php:123
 msgid "<strong>ERROR</strong>: Please enter your password twice."
-msgstr "<strong>ERREUR</strong>&nbsp;: merci de renseigner deux fois le mot de passe."
-
-#: wp-admin/includes/user.php:127
+msgstr ""
+"<strong>ERREUR</strong>&nbsp;: veuillez renseigner deux fois le mot de passe."
+
+#: wp-admin/includes/user.php:128
 msgid "<strong>ERROR</strong>: Passwords may not contain the character \"\\\"."
-msgstr "<strong>ERREUR</strong>&nbsp;: le mot de passe ne doit pas contenir le caractère &laquo; \\ &raquo;."
-
-#: wp-admin/includes/user.php:131
-msgid "<strong>ERROR</strong>: Please enter the same password in the two password fields."
-msgstr "<strong>ERREUR</strong>&nbsp;: les deux mots de passe ne sont pas identiques."
-
-#: wp-admin/includes/user.php:140
-msgid "<strong>ERROR</strong>: This username is already registered. Please choose another one."
-msgstr "<strong>ERREUR</strong>&nbsp;: cet identifiant existe déjà. Merci d&rsquo;en choisir un autre."
-
-#: wp-admin/includes/user.php:144
+msgstr ""
+"<strong>ERREUR</strong>&nbsp;: le mot de passe ne doit pas contenir le "
+"caractère &laquo; \\ &raquo;."
+
+#: wp-admin/includes/user.php:132
+msgid ""
+"<strong>ERROR</strong>: Please enter the same password in the two password "
+"fields."
+msgstr ""
+"<strong>ERREUR</strong>&nbsp;: les deux mots de passe ne sont pas identiques."
+
+#: wp-admin/includes/user.php:145
 msgid "<strong>ERROR</strong>: Please enter an e-mail address."
-msgstr "<strong>ERREUR</strong>&nbsp;: veuillez saisir une adresse de messagerie."
-
-#: wp-admin/includes/user.php:146
-msgid "<strong>ERROR</strong>: The e-mail address isn&#8217;t correct."
-msgstr "<strong>ERREUR</strong>&nbsp;: adresse de messagerie incorrecte."
-
-#: wp-admin/includes/user.php:352
+msgstr ""
+"<strong>ERREUR</strong>&nbsp;: veuillez saisir une adresse de messagerie."
+
+#: wp-admin/includes/user.php:363
 msgid "Notice:"
 msgstr "Avertissement&nbsp;:"
 
-#: wp-admin/includes/user.php:353
-msgid "You&rsquo;re using the auto-generated password for your account. Would you like to change it to something easier to remember?"
-msgstr "Votre compte utilise toujours le mot de passe généré automatiquement. Souhaitez-vous le changer pour un mot de passe plus facile à mémoriser&nbsp;?"
-
-#: wp-admin/includes/user.php:355
+#: wp-admin/includes/user.php:364
+msgid ""
+"You&rsquo;re using the auto-generated password for your account. Would you "
+"like to change it to something easier to remember?"
+msgstr ""
+"Votre compte utilise toujours le mot de passe généré automatiquement. "
+"Souhaitez-vous le changer pour un mot de passe plus facile à mémoriser&nbsp;?"
+
+#: wp-admin/includes/user.php:366
 msgid "Yes, take me to my profile page"
 msgstr "Oui, je veux aller sur mon profil maintenant"
 
-#: wp-admin/includes/user.php:356
+#: wp-admin/includes/user.php:367
 msgid "No thanks, do not remind me again"
 msgstr "Non, ne pas me relancer à ce sujet"
 
-#: wp-admin/index.php:33
-msgid "Welcome to your WordPress Dashboard! This is the screen you will see when you log in to your site, and gives you access to all the site management features of WordPress. You can get help for any screen by clicking the Help tab in the upper corner."
-msgstr "Bienvenu dans votre tableau de bord WordPress ! Ceci est l&rsquo;écran que vous verrez lorsque vous vous connectez à votre site, et qui vous donne accès à l&rsquo;ensemble des fonctionnalités de gestion de WordPress. Vous pouvez obtenir de l&rsquo;aide dans n&rsquo;importe quel écran en cliquant sur l&rsquo;onglet « Aide » présent en haut à droite de votre navigateur."
-
-#: wp-admin/index.php:43
-msgid "The left-hand navigation menu provides links to all of the WordPress administration screens, with submenu items displayed on hover. You can minimize this menu to a narrow icon strip by clicking on the Collapse Menu arrow at the bottom."
-msgstr "La navigation située à gauche de l&rsquo;écran fournit tous les liens pour accéder à la console d&rsquo;administration de WordPress, avec les sous-menus qui s&rsquo;affichant au survol. Vous pouvez réduire ce menu à ses seules icônes en cliquant sur la flèche de repliement située en bas du menu."
-
-#: wp-admin/index.php:44
-msgid "Links in the Toolbar at the top of the screen connect your dashboard and the front end of your site, and provide access to your profile and helpful WordPress information."
-msgstr "Les liens contenus dans la barre d&rsquo;outils placée en haut de l&rsquo;écran relient votre tableau de bord à la partie publique de votre site, et fournissent un accès rapide à votre profil et de précieuses informations sur WordPress."
+#: wp-admin/includes/widgets.php:183
+msgctxt "widget"
+msgid "Edit"
+msgstr "Modifier"
+
+#: wp-admin/includes/widgets.php:184
+msgctxt "widget"
+msgid "Add"
+msgstr "Ajouter"
+
+#: wp-admin/index.php:39
+msgid ""
+"Welcome to your WordPress Dashboard! This is the screen you will see when "
+"you log in to your site, and gives you access to all the site management "
+"features of WordPress. You can get help for any screen by clicking the Help "
+"tab in the upper corner."
+msgstr ""
+"Bienvenu dans votre tableau de bord WordPress&nbsp;! Ceci est l&rsquo;écran "
+"que vous verrez lorsque vous vous connectez à votre site, et qui vous donne "
+"accès à l&rsquo;ensemble des fonctionnalités de gestion de WordPress. Vous "
+"pouvez obtenir de l&rsquo;aide dans n&rsquo;importe quel écran en cliquant "
+"sur l&rsquo;onglet « Aide » présent en haut à droite de votre navigateur."
 
 #: wp-admin/index.php:52
-msgid "You can use the following controls to arrange your Dashboard screen to suit your workflow. This is true on most other administration screens as well."
-msgstr "Vous pouvez utiliser les contrôles suivants pour organiser l&rsquo;écran du tableau de bord pour afin de se plier à votre manière de l&rsquo;utiliser. La plupart des écrans de la console d&rsquo;administration peuvent également être organisés de cette manière."
+msgid ""
+"The left-hand navigation menu provides links to all of the WordPress "
+"administration screens, with submenu items displayed on hover. You can "
+"minimize this menu to a narrow icon strip by clicking on the Collapse Menu "
+"arrow at the bottom."
+msgstr ""
+"La navigation située à gauche de l&rsquo;écran fournit tous les liens pour "
+"accéder à la console d&rsquo;administration de WordPress, avec les sous-"
+"menus qui s&rsquo;affichant au survol. Vous pouvez réduire ce menu à ses "
+"seules icônes en cliquant sur la flèche de repliement située en bas du menu."
 
 #: wp-admin/index.php:53
-msgid "<strong>Screen Options</strong> - Use the Screen Options tab to choose which Dashboard boxes to show, and how many columns to display."
-msgstr "<strong>Réglages d&rsquo;écran</strong> - Utiliser l&rsquo;onglet des réglages d&rsquo;écran pour choisir les modules du tableau de bord à afficher, et le nombre de colonnes afficher."
-
-#: wp-admin/index.php:54
-msgid "<strong>Drag and Drop</strong> - To rearrange the boxes, drag and drop by clicking on the title bar of the selected box and releasing when you see a gray dotted-line rectangle appear in the location you want to place the box."
-msgstr "<strong>Glisser/déposer</strong> - Pour réarranger les modules, glissez/déposez-les en cliquant sur la barre de titre du module sélectionné, et relâchez-la lorsque vous apercevez un rectangle avec une bordure grise à l&rsquo;emplacement où vous souhaitez placer le module."
-
-#: wp-admin/index.php:55
-msgid "<strong>Box Controls</strong> - Click the title bar of the box to expand or collapse it. In addition, some box have configurable content, and will show a &#8220;Configure&#8221; link in the title bar if you hover over it."
-msgstr "<strong>Contrôle des boîtes</strong> - Cliquer sur la barre de titre d&rsquo;une boîte pour l&rsquo;étendre ou la réduire. Par ailleurs, certaines boîtes ont un contenu configurable, et afficheront un lien &laquo;&nbsp;Configurer&nbsp;&raquo; dans la barre de titre lorsque la souris la survolera."
-
-#: wp-admin/index.php:59
+msgid ""
+"Links in the Toolbar at the top of the screen connect your dashboard and the "
+"front end of your site, and provide access to your profile and helpful "
+"WordPress information."
+msgstr ""
+"Les liens contenus dans la barre d&rsquo;outils placée en haut de l&rsquo;"
+"écran relient votre tableau de bord à la partie publique de votre site, et "
+"fournissent un accès rapide à votre profil et de précieuses informations sur "
+"WordPress."
+
+#: wp-admin/index.php:61
+msgid ""
+"You can use the following controls to arrange your Dashboard screen to suit "
+"your workflow. This is true on most other administration screens as well."
+msgstr ""
+"Vous pouvez utiliser les contrôles suivants pour organiser l&rsquo;écran du "
+"tableau de bord pour afin de se plier à votre manière de l&rsquo;utiliser. "
+"La plupart des écrans de la console d&rsquo;administration peuvent également "
+"être organisés de cette manière."
+
+#: wp-admin/index.php:62
+msgid ""
+"<strong>Screen Options</strong> - Use the Screen Options tab to choose which "
+"Dashboard boxes to show, and how many columns to display."
+msgstr ""
+"<strong>Réglages d&rsquo;écran</strong> - Utiliser l&rsquo;onglet des "
+"réglages d&rsquo;écran pour choisir les modules du tableau de bord à "
+"afficher, et le nombre de colonnes afficher."
+
+#: wp-admin/index.php:63
+msgid ""
+"<strong>Drag and Drop</strong> - To rearrange the boxes, drag and drop by "
+"clicking on the title bar of the selected box and releasing when you see a "
+"gray dotted-line rectangle appear in the location you want to place the box."
+msgstr ""
+"<strong>Glisser/déposer</strong> - Pour réarranger les modules, glissez/"
+"déposez-les en cliquant sur la barre de titre du module sélectionné, et "
+"relâchez-la lorsque vous apercevez un rectangle avec une bordure grise à "
+"l&rsquo;emplacement où vous souhaitez placer le module."
+
+#: wp-admin/index.php:64
+msgid ""
+"<strong>Box Controls</strong> - Click the title bar of the box to expand or "
+"collapse it. In addition, some boxes have configurable content, and will "
+"show a &#8220;Configure&#8221; link in the title bar if you hover over it."
+msgstr ""
+"<strong>Contrôle des boîtes</strong> - Cliquez sur la barre de titre d&rsquo;"
+"une boîte pour l&rsquo;étendre ou la réduire. Par ailleurs, certaines boîtes "
+"ont un contenu configurable, et afficheront un lien &laquo;&nbsp;"
+"Configurer&nbsp;&raquo; dans la barre de titre lorsque la souris la "
+"survolera."
+
+#: wp-admin/index.php:68
 msgid "Layout"
 msgstr "Arrangement"
 
-#: wp-admin/index.php:63
+#: wp-admin/index.php:72
 msgid "The boxes on your Dashboard screen are:"
 msgstr "Les modules de l&rsquo;écran du tableau de bord sont&nbsp;:"
 
-#: wp-admin/index.php:65
-msgid "<strong>Right Now</strong> - Displays a summary of the content on your site and identifies which theme and version of WordPress you are using."
-msgstr "<strong>Aujourd&rsquo;hui</strong> - Affiche un résumé du contenu de votre site, et indique le thème et la version de WordPress que vous utilisez."
-
-#: wp-admin/index.php:67
-msgid "<strong>Recent Comments</strong> - Shows the most recent comments on your posts (configurable, up to 30) and allows you to moderate them."
-msgstr "<strong>Commentaires récents</strong> - Affiche les commentaires les plus récents sur vos articles (configurable, jusqu&rsquo;à 30), et vous permet de les modérer directement."
-
-#: wp-admin/index.php:69
-msgid "<strong>Incoming Links</strong> - Shows links to your site found by Google Blog Search."
-msgstr "<strong>Liens entrants</strong> - Affiche les liens vers votre site, tels qu&rsquo;indiqués par Google Blog Search."
-
-#: wp-admin/index.php:71
-msgid "<strong>QuickPress</strong> - Allows you to create a new post and either publish it or save it as a draft."
-msgstr "<strong>Press-Minute</strong> - Crée un nouvel article rapidement, et de le publier directement ou de le garder comme brouillon."
-
-#: wp-admin/index.php:72
-msgid "<strong>Recent Drafts</strong> - Displays links to the 5 most recent draft posts you&#8217;ve started."
-msgstr "<strong>Brouillons récents</strong> - Affiche un lien vers les 5 derniers brouillons d&rsquo;articles que vous avez commencés."
-
 #: wp-admin/index.php:74
-msgid "<strong>WordPress Blog</strong> - Latest news from the official WordPress project."
-msgstr "<strong>Blog de WordPress</strong> - Affiche les dernières nouvelles officielles du projet WordPress."
-
-#: wp-admin/index.php:75
-msgid "<strong>Other WordPress News</strong> - Shows the <a href=\"http://planet.wordpress.org\" target=\"_blank\">WordPress Planet</a> feed. You can configure it to show a different feed of your choosing."
-msgstr "<strong>Autres actualités de WordPress (en français)</strong> - Affiche le flux du <a href=\"http://www.wordpress-fr.net/planet/\" target=\"_blank\">Planet de WordPress</a>. Vous pouvez configurer ce module pour utiliser un autre flux de votre choix."
-
-#: wp-admin/index.php:77
-msgid "<strong>Plugins</strong> - Features the most popular, newest, and recently updated plugins from the WordPress.org Plugin Directory."
-msgstr "<strong>Extensions</strong> - Affiche l&rsquo;extension la plus populaire, la plus récente et la plus récemment mise à jour, en provenance du dépôt d&rsquo;extensions de WordPress.org."
-
-#: wp-admin/index.php:79
-msgid "<strong>Welcome</strong> - Shows links for some of the most common tasks when setting up a new site."
-msgstr "<strong>Bienvenue</strong> - Affiche des liens pour certaines des tâches les plus courantes lors de l&rsquo;installation d&rsquo;un nouveau site."
-
-#: wp-admin/index.php:91
-msgid "<a href=\"http://codex.wordpress.org/Dashboard_Screen\" target=\"_blank\">Documentation on Dashboard</a>"
-msgstr "<a href=\"http://codex.wordpress.org/Dashboard_Screen\" target=\"_blank\">Documentation sur le tableau de bord (en)</a>"
+msgid ""
+"<strong>Right Now</strong> - Displays a summary of the content on your site "
+"and identifies which theme and version of WordPress you are using."
+msgstr ""
+"<strong>Aujourd&rsquo;hui</strong> - Affiche un résumé du contenu de votre "
+"site, et indique le thème et la version de WordPress que vous utilisez."
+
+#: wp-admin/index.php:76
+msgid ""
+"<strong>Recent Comments</strong> - Shows the most recent comments on your "
+"posts (configurable, up to 30) and allows you to moderate them."
+msgstr ""
+"<strong>Commentaires récents</strong> - Affiche les commentaires les plus "
+"récents sur vos articles (configurable, jusqu&rsquo;à 30), et vous permet de "
+"les modérer directement."
+
+#: wp-admin/index.php:78
+msgid ""
+"<strong>Incoming Links</strong> - Shows links to your site found by Google "
+"Blog Search."
+msgstr ""
+"<strong>Liens entrants</strong> - Affiche les liens vers votre site, tels "
+"qu&rsquo;indiqués par Google Blog Search."
+
+#: wp-admin/index.php:80
+msgid ""
+"<strong>QuickPress</strong> - Allows you to create a new post and either "
+"publish it or save it as a draft."
+msgstr ""
+"<strong>Press-Minute</strong> - Crée un nouvel article rapidement, et de le "
+"publier directement ou de le garder comme brouillon."
+
+#: wp-admin/index.php:81
+msgid ""
+"<strong>Recent Drafts</strong> - Displays links to the 5 most recent draft "
+"posts you&#8217;ve started."
+msgstr ""
+"<strong>Brouillons récents</strong> - Affiche un lien vers les 5 derniers "
+"brouillons d&rsquo;articles que vous avez commencés."
+
+#: wp-admin/index.php:83
+msgid ""
+"<strong>WordPress Blog</strong> - Latest news from the official WordPress "
+"project."
+msgstr ""
+"<strong>Blog de WordPress</strong> - Affiche les dernières nouvelles "
+"officielles du projet WordPress."
+
+#: wp-admin/index.php:84
+msgid ""
+"<strong>Other WordPress News</strong> - Shows the <a href=\"http://planet."
+"wordpress.org\" target=\"_blank\">WordPress Planet</a> feed. You can "
+"configure it to show a different feed of your choosing."
+msgstr ""
+"<strong>Autres actualités de WordPress (en français)</strong> - Affiche le "
+"flux du <a href=\"http://www.wordpress-fr.net/planet/\" target=\"_blank"
+"\">Planet de WordPress</a>. Vous pouvez configurer ce module pour utiliser "
+"un autre flux de votre choix."
+
+#: wp-admin/index.php:86
+msgid ""
+"<strong>Plugins</strong> - Features the most popular, newest, and recently "
+"updated plugins from the WordPress.org Plugin Directory."
+msgstr ""
+"<strong>Extensions</strong> - Affiche l&rsquo;extension la plus populaire, "
+"la plus récente et la plus récemment mise à jour, en provenance du dépôt "
+"d&rsquo;extensions de WordPress.org."
+
+#: wp-admin/index.php:88
+msgid ""
+"<strong>Welcome</strong> - Shows links for some of the most common tasks "
+"when setting up a new site."
+msgstr ""
+"<strong>Bienvenue</strong> - Affiche des liens pour certaines des tâches les "
+"plus courantes lors de l&rsquo;installation d&rsquo;un nouveau site."
+
+#: wp-admin/index.php:100
+msgid ""
+"<a href=\"http://codex.wordpress.org/Dashboard_Screen\" target=\"_blank"
+"\">Documentation on Dashboard</a>"
+msgstr ""
+"<a href=\"http://codex.wordpress.org/Dashboard_Screen\" target=\"_blank"
+"\">Documentation sur le tableau de bord (en)</a>"
 
 #: wp-admin/install.php:60
 msgid "WordPress &rsaquo; Installation"
 msgstr "WordPress &raquo; Installation"
 
-#: wp-admin/install.php:92
+#: wp-admin/install.php:94
 msgid "<strong>ERROR</strong>: %s"
 msgstr "<strong>Erreur&nbsp;:</strong> %s"
 
-#: wp-admin/install.php:105
+#: wp-admin/install.php:107
 msgid "User(s) already exists."
 msgstr "L&rsquo;utilisateur existe déjà."
 
-#: wp-admin/install.php:108
-msgid "Usernames can have only alphanumeric characters, spaces, underscores, hyphens, periods and the @ symbol."
-msgstr "Les identifiants doivent contenir uniquement des caractères alphanumériques, espaces, tiret bas, tiret, points et le symbole @."
-
-#: wp-admin/install.php:116
+#: wp-admin/install.php:110
+msgid ""
+"Usernames can have only alphanumeric characters, spaces, underscores, "
+"hyphens, periods and the @ symbol."
+msgstr ""
+"Les identifiants doivent contenir uniquement des caractères alphanumériques, "
+"espaces, tiret bas, tiret, points et le symbole @."
+
+#: wp-admin/install.php:118
 msgid "Password, twice"
 msgstr "Mot de passe, deux fois"
 
-#: wp-admin/install.php:117
-msgid "A password will be automatically generated for you if you leave this blank."
-msgstr "Un mot de passe vous sera automatiquement généré si vous laissez ce champ vide."
-
-#: wp-admin/install.php:128
+#: wp-admin/install.php:119
+msgid ""
+"A password will be automatically generated for you if you leave this blank."
+msgstr ""
+"Un mot de passe vous sera automatiquement généré si vous laissez ce champ "
+"vide."
+
+#: wp-admin/install.php:130
 msgid "Your E-mail"
 msgstr "Votre adresse de messagerie"
 
-#: wp-admin/install.php:130
+#: wp-admin/install.php:132
 msgid "Double-check your email address before continuing."
 msgstr "Vérifiez bien cette adresse de messagerie avant de continuer."
 
-#: wp-admin/install.php:133
-#: wp-admin/menu.php:204
+#: wp-admin/install.php:135
 msgid "Privacy"
 msgstr "Vie privée"
 
-#: wp-admin/install.php:137
+#: wp-admin/install.php:139
 msgid "Install WordPress"
 msgstr "Installer WordPress"
 
-#: wp-admin/install.php:145
-msgid "Already Installed"
-msgstr "Déjà installé"
-
-#: wp-admin/install.php:145
-msgid "You appear to have already installed WordPress. To reinstall please clear your old database tables first."
-msgstr "Il semblerait que WordPress soit déjà installé. Pour le réinstaller, commencez par vider les tables de la base de données."
-
-#: wp-admin/install.php:154
-msgid "You cannot install because <a href=\"http://codex.wordpress.org/Version_%1$s\">WordPress %1$s</a> requires PHP version %2$s or higher and MySQL version %3$s or higher. You are running PHP version %4$s and MySQL version %5$s."
-msgstr "Vous ne pouvez pas installer <a href=\"http://codex.wordpress.org/Version_%1$s\">WordPress %1$s</a>, car cette version requiert une version de PHP égale ou supérieure à la %2$s, et une version de MySQL égale ou supérieure à la %3$s. Votre hébergement utilise PHP version %4$s et MySQL version %5$s."
-
 #: wp-admin/install.php:156
-msgid "You cannot install because <a href=\"http://codex.wordpress.org/Version_%1$s\">WordPress %1$s</a> requires PHP version %2$s or higher. You are running version %3$s."
-msgstr "Vous ne pouvez pas installer <a href=\"http://codex.wordpress.org/Version_%1$s\">WordPress %1$s</a>, car cette version requiert une version de PHP égale ou supérieure à la %2$s. Votre hébergement utilise PHP version %3$s."
+msgid ""
+"You cannot install because <a href=\"http://codex.wordpress.org/Version_%1$s"
+"\">WordPress %1$s</a> requires PHP version %2$s or higher and MySQL version "
+"%3$s or higher. You are running PHP version %4$s and MySQL version %5$s."
+msgstr ""
+"Vous ne pouvez pas installer <a href=\"http://codex.wordpress.org/Version_"
+"%1$s\">WordPress %1$s</a>, car cette version requiert une version de PHP "
+"égale ou supérieure à la %2$s, et une version de MySQL égale ou supérieure à "
+"la %3$s. Votre hébergement utilise PHP version %4$s et MySQL version %5$s."
 
 #: wp-admin/install.php:158
-msgid "You cannot install because <a href=\"http://codex.wordpress.org/Version_%1$s\">WordPress %1$s</a> requires MySQL version %2$s or higher. You are running version %3$s."
-msgstr "Vous ne pouvez pas installer <a href=\"http://codex.wordpress.org/Version_%1$s\">WordPress %1$s</a>, car cette version requiert une version de MySQL égale ou supérieure à la %2$s. Votre hébergement utilise MySQL version %3$s."
-
-#: wp-admin/install.php:162
+msgid ""
+"You cannot install because <a href=\"http://codex.wordpress.org/Version_%1$s"
+"\">WordPress %1$s</a> requires PHP version %2$s or higher. You are running "
+"version %3$s."
+msgstr ""
+"Vous ne pouvez pas installer <a href=\"http://codex.wordpress.org/Version_"
+"%1$s\">WordPress %1$s</a>, car cette version requiert une version de PHP "
+"égale ou supérieure à la %2$s. Votre hébergement utilise PHP version %3$s."
+
+#: wp-admin/install.php:160
+msgid ""
+"You cannot install because <a href=\"http://codex.wordpress.org/Version_%1$s"
+"\">WordPress %1$s</a> requires MySQL version %2$s or higher. You are running "
+"version %3$s."
+msgstr ""
+"Vous ne pouvez pas installer <a href=\"http://codex.wordpress.org/Version_"
+"%1$s\">WordPress %1$s</a>, car cette version requiert une version de MySQL "
+"égale ou supérieure à la %2$s. Votre hébergement utilise MySQL version %3$s."
+
+#: wp-admin/install.php:164
 msgid "Insufficient Requirements"
 msgstr "Les conditions requises ne sont pas remplies"
 
-#: wp-admin/install.php:167
+#: wp-admin/install.php:169
 msgid "Configuration Error"
 msgstr "Erreur de configuration"
 
-#: wp-admin/install.php:167
-msgid "Your <code>wp-config.php</code> file has an empty database table prefix, which is not supported."
-msgstr "Votre fichier <code>wp-config.php</code> ne défini pas préfixe de table de base de données. Il en faut obligatoirement un."
-
-#: wp-admin/install.php:175
+#: wp-admin/install.php:169
+msgid ""
+"Your <code>wp-config.php</code> file has an empty database table prefix, "
+"which is not supported."
+msgstr ""
+"Votre fichier <code>wp-config.php</code> ne défini pas préfixe de table de "
+"base de données. Il en faut obligatoirement un."
+
+#: wp-admin/install.php:177
 msgctxt "Howdy"
 msgid "Welcome"
 msgstr "Bienvenue"
 
-#: wp-admin/install.php:176
-msgid "Welcome to the famous five minute WordPress installation process! You may want to browse the <a href=\"%s\">ReadMe documentation</a> at your leisure. Otherwise, just fill in the information below and you&#8217;ll be on your way to using the most extendable and powerful personal publishing platform in the world."
-msgstr "Bienvenue dans le célèbre processus d&rsquo;installation en 5 minutes de WordPress&nbsp;! Vous pouvez parcourir le <a href=\"%s\">fichier ReadMe</a> à loisir. Autrement, remplissez simplement les champs ci-dessous, et vous serez prêt à installer la plate-forme de publication personnelle la plus puissante et la plus extensible au monde."
-
 #: wp-admin/install.php:178
+msgid ""
+"Welcome to the famous five minute WordPress installation process! You may "
+"want to browse the <a href=\"%s\">ReadMe documentation</a> at your leisure. "
+"Otherwise, just fill in the information below and you&#8217;ll be on your "
+"way to using the most extendable and powerful personal publishing platform "
+"in the world."
+msgstr ""
+"Bienvenue dans le célèbre processus d&rsquo;installation en 5 minutes de "
+"WordPress&nbsp;! Vous pouvez parcourir le <a href=\"%s\">fichier ReadMe</a> "
+"à loisir. Autrement, remplissez simplement les champs ci-dessous, et vous "
+"serez prêt à installer la plate-forme de publication personnelle la plus "
+"puissante et la plus extensible au monde."
+
+#: wp-admin/install.php:180
 msgid "Information needed"
 msgstr "Informations nécessaires"
 
-#: wp-admin/install.php:179
-msgid "Please provide the following information. Don&#8217;t worry, you can always change these settings later."
-msgstr "Merci de fournir les informations suivantes. Ne vous inquiétez pas, vous pourrez les modifier plus tard."
-
-#: wp-admin/install.php:200
+#: wp-admin/install.php:181
+msgid ""
+"Please provide the following information. Don&#8217;t worry, you can always "
+"change these settings later."
+msgstr ""
+"Veuillez renseigner les informations suivantes. Ne vous inquiétez pas, vous "
+"pourrez les modifier plus tard."
+
+#: wp-admin/install.php:202
 msgid "you must provide a valid username."
 msgstr "vous devez saisir un identifiant valide."
 
-#: wp-admin/install.php:203
+#: wp-admin/install.php:205
 msgid "the username you provided has invalid characters."
-msgstr "l&rsquo;identifiant que vous avez fourni contient des caractères invalides."
-
-#: wp-admin/install.php:207
+msgstr ""
+"l&rsquo;identifiant que vous avez fourni contient des caractères invalides."
+
+#: wp-admin/install.php:209
 msgid "your passwords do not match. Please try again"
 msgstr "Vos mots de passe ne correspondent pas. Veuillez réessayer."
 
-#: wp-admin/install.php:211
+#: wp-admin/install.php:213
 msgid "you must provide an e-mail address."
 msgstr "vous devez saisir une adresse de messagerie."
 
-#: wp-admin/install.php:215
-msgid "that isn&#8217;t a valid e-mail address. E-mail addresses look like: <code>username@example.com</code>"
-msgstr "ce n&rsquo;est pas une adresse de messagerie valide. Les adresses e-mail ressemblent à cela&nbsp;: <code>utilisateur@exemple.com</code>"
-
-#: wp-admin/install.php:225
+#: wp-admin/install.php:217
+msgid ""
+"that isn&#8217;t a valid e-mail address. E-mail addresses look like: "
+"<code>username@example.com</code>"
+msgstr ""
+"ce n&rsquo;est pas une adresse de messagerie valide. Les adresses e-mail "
+"ressemblent à cela&nbsp;: <code>utilisateur@exemple.com</code>"
+
+#: wp-admin/install.php:227
 msgid "Success!"
 msgstr "Quel succès&nbsp;!"
 
-#: wp-admin/install.php:227
-msgid "WordPress has been installed. Were you expecting more steps? Sorry to disappoint."
-msgstr "WordPress est installé. Vous attendiez-vous à d&rsquo;autres étapes&nbsp;? Désolé de vous décevoir&nbsp;;-)"
+#: wp-admin/install.php:229
+msgid ""
+"WordPress has been installed. Were you expecting more steps? Sorry to "
+"disappoint."
+msgstr ""
+"WordPress est installé. Vous attendiez-vous à d&rsquo;autres étapes&nbsp;? "
+"Désolé de vous décevoir&nbsp;;-)"
 
 #: wp-admin/link-add.php:13
 msgid "You do not have sufficient permissions to add links to this site."
-msgstr "Vous n&rsquo;avez pas les droits suffisants pour ajouter les liens à ce site."
+msgstr ""
+"Vous n&rsquo;avez pas les droits suffisants pour ajouter les liens à ce site."
 
 #: wp-admin/link-add.php:15
 msgid "Add New Link"
 msgstr "Ajouter un lien"
 
-#: wp-admin/link-manager.php:12
-#: wp-admin/link-manager.php:67
-#: wp-admin/link.php:18
-msgid "You do not have sufficient permissions to edit the links for this site."
-msgstr "Vous n&rsquo;avez pas les droits suffisants pour modifier les liens de ce site."
-
 #: wp-admin/link-manager.php:47
-msgid "You can add links here to be displayed on your site, usually using <a href=\"%s\">Widgets</a>. By default, links to several sites in the WordPress community are included as examples."
-msgstr "Vous pouvez ici ajouter les liens que vous voulez voir affichés sur votre site, généralement par le biais de <a href=\"%s\">widgets</a>. Des liens vers de nombreux sites de la communauté WordPress sont inclus par défaut."
+msgid ""
+"You can add links here to be displayed on your site, usually using <a href="
+"\"%s\">Widgets</a>. By default, links to several sites in the WordPress "
+"community are included as examples."
+msgstr ""
+"Vous pouvez ici ajouter les liens que vous voulez voir affichés sur votre "
+"site, généralement par le biais de <a href=\"%s\">widgets</a>. Des liens "
+"vers de nombreux sites de la communauté WordPress sont inclus par défaut."
 
 #: wp-admin/link-manager.php:48
-msgid "Links may be separated into Link Categories; these are different than the categories used on your posts."
-msgstr "Les liens peuvent être rangés dans des catégories de liens&nbsp;; ce ne sont pas les mêmes catégories que pour vos articles."
+msgid ""
+"Links may be separated into Link Categories; these are different than the "
+"categories used on your posts."
+msgstr ""
+"Les liens peuvent être rangés dans des catégories de liens&nbsp;; ce ne sont "
+"pas les mêmes catégories que pour vos articles."
 
 #: wp-admin/link-manager.php:49
-msgid "You can customize the display of this screen using the Screen Options tab and/or the dropdown filters above the links table."
-msgstr "Vous pouvez personnaliser l&rsquo;affichage de cet écran en utilisant les réglages d&rsquo;affichage et/ou le filtre déroulant présent au-dessous du tableau de liens."
+msgid ""
+"You can customize the display of this screen using the Screen Options tab "
+"and/or the dropdown filters above the links table."
+msgstr ""
+"Vous pouvez personnaliser l&rsquo;affichage de cet écran en utilisant les "
+"réglages d&rsquo;affichage et/ou le filtre déroulant présent au-dessous du "
+"tableau de liens."
 
 #: wp-admin/link-manager.php:53
 msgid "Deleting Links"
 msgstr "Suppression de liens"
 
 #: wp-admin/link-manager.php:55
-msgid "If you delete a link, it will be removed permanently, as Links do not have a Trash function yet."
-msgstr "Si vous supprimez un lien, il sera supprimé définitivement, car les liens n&rsquo;ont pas accès à la Corbeille pour le moment."
+msgid ""
+"If you delete a link, it will be removed permanently, as Links do not have a "
+"Trash function yet."
+msgstr ""
+"Si vous supprimez un lien, il sera supprimé définitivement, car les liens "
+"n&rsquo;ont pas accès à la Corbeille pour le moment."
 
 #: wp-admin/link-manager.php:60
-msgid "<a href=\"http://codex.wordpress.org/Links_Screen\" target=\"_blank\">Documentation on Managing Links</a>"
-msgstr "<a href=\"http://codex.wordpress.org/Links_Screen\" target=\"_blank\">Documentation sur la gestion des liens (en)</a>"
+msgid ""
+"<a href=\"http://codex.wordpress.org/Links_Screen\" target=\"_blank"
+"\">Documentation on Managing Links</a>"
+msgstr ""
+"<a href=\"http://codex.wordpress.org/Links_Screen\" target=\"_blank"
+"\">Documentation sur la gestion des liens (en)</a>"
 
 #: wp-admin/link-manager.php:82
 msgid "%s link deleted."
@@ -6879,284 +8406,329 @@
 msgid "WordPress &rsaquo; Database Repair"
 msgstr "WordPress &raquo; Réparation de la base de données"
 
-#: wp-admin/maint/repair.php:27
-msgid "To allow use of this page to automatically repair database problems, please add the following line to your <code>wp-config.php</code> file. Once this line is added to your config, reload this page."
-msgstr "Pour autoriser cette page à réparer automatiquement les problèmes de base de données, veuillez ajouter la ligne suivante dans votre fichier <code>wp-config.php</code>. Une fois cette ligne ajoutée à votre configuration, rechargez cette page."
+#: wp-admin/maint/repair.php:29
+msgid ""
+"To allow use of this page to automatically repair database problems, please "
+"add the following line to your <code>wp-config.php</code> file. Once this "
+"line is added to your config, reload this page."
+msgstr ""
+"Pour autoriser cette page à réparer automatiquement les problèmes de base de "
+"données, veuillez ajouter la ligne suivante dans votre fichier <code>wp-"
+"config.php</code>. Une fois cette ligne ajoutée à votre configuration, "
+"rechargez cette page."
 
 #. translators: %s: table name
-#: wp-admin/maint/repair.php:48
+#: wp-admin/maint/repair.php:50
 msgid "The %s table is okay."
 msgstr "La table %s est correcte."
 
 #. translators: 1: table name, 2: error message,
-#: wp-admin/maint/repair.php:51
-msgid "The %1$s table is not okay. It is reporting the following error: %2$s. WordPress will attempt to repair this table&hellip;"
-msgstr "La table %1$s est dans un mauvais état. Elle renvoie l&rsquo;erreur suivante&nbsp;: %2$s. WordPress va tenter de la réparer&hellip;"
+#: wp-admin/maint/repair.php:53
+msgid ""
+"The %1$s table is not okay. It is reporting the following error: %2$s. "
+"WordPress will attempt to repair this table&hellip;"
+msgstr ""
+"La table %1$s est dans un mauvais état. Elle renvoie l&rsquo;erreur "
+"suivante&nbsp;: %2$s. WordPress va tenter de la réparer&hellip;"
 
 #. translators: %s: table name
-#: wp-admin/maint/repair.php:58
+#: wp-admin/maint/repair.php:60
 msgid "Successfully repaired the %s table."
 msgstr "La table %s a bien été réparée."
 
 #. translators: 1: table name, 2: error message,
-#: wp-admin/maint/repair.php:61
+#: wp-admin/maint/repair.php:63
 msgid "Failed to repair the %1$s table. Error: %2$s"
 msgstr "Impossible de réparer la table %1$s. Erreur&nbsp;: %2$s"
 
 #. translators: %s: table name
-#: wp-admin/maint/repair.php:73
+#: wp-admin/maint/repair.php:75
 msgid "The %s table is already optimized."
 msgstr "La table %s a déjà été optimisée."
 
 #. translators: %s: table name
-#: wp-admin/maint/repair.php:80
+#: wp-admin/maint/repair.php:82
 msgid "Successfully optimized the %s table."
 msgstr "La table %s a bien été optimisée."
 
 #. translators: 1: table name, 2: error message,
-#: wp-admin/maint/repair.php:83
+#: wp-admin/maint/repair.php:85
 msgid "Failed to optimize the %1$s table. Error: %2$s"
 msgstr "Impossible d&rsquo;optimiser la table %1$s. Erreur&nbsp;: %2$s"
 
-#: wp-admin/maint/repair.php:91
-msgid "Some database problems could not be repaired. Please copy-and-paste the following list of errors to the <a href=\"%s\">WordPress support forums</a> to get additional assistance."
-msgstr "Certains problèmes de la base de données n&rsquo;ont pas pu être réparés. Veuillez copier/coller la liste d&rsquo;erreurs suivantes sur le <a href=\"%s\">forum de support de WordPress</a> pour recevoir plus d&rsquo;informations."
-
-#: wp-admin/maint/repair.php:91
+#: wp-admin/maint/repair.php:93
+msgid ""
+"Some database problems could not be repaired. Please copy-and-paste the "
+"following list of errors to the <a href=\"%s\">WordPress support forums</a> "
+"to get additional assistance."
+msgstr ""
+"Certains problèmes de la base de données n&rsquo;ont pas pu être réparés. "
+"Veuillez copier/coller la liste d&rsquo;erreurs suivantes sur le <a href=\"%s"
+"\">forum de support de WordPress</a> pour recevoir plus d&rsquo;informations."
+
+#: wp-admin/maint/repair.php:93
 msgid "http://wordpress.org/support/forum/how-to-and-troubleshooting"
 msgstr "http://www.wordpress-fr.net/support/"
 
-#: wp-admin/maint/repair.php:97
-msgid "Repairs complete. Please remove the following line from wp-config.php to prevent this page from being used by unauthorized users."
-msgstr "Réparations effectuées. Veuillez retirer la ligne suivante de votre fichier wp-config.php, pour empêcher que cette page soit utilisée par des utilisateurs non autorisés."
-
-#: wp-admin/maint/repair.php:101
-msgid "One or more database tables are unavailable. To allow WordPress to attempt to repair these tables, press the &#8220;Repair Database&#8221; button. Repairing can take a while, so please be patient."
-msgstr "Une ou plusieurs tables de votre base de données sont indisponibles. Pour autoriser WordPress à tenter de réparer ces tables, cliquez sur le bouton &laquo;&nbsp;Réparer la base de données&nbsp;&raquo;. La réparation peut prendre un certain temps, merci donc d&rsquo;être patient."
+#: wp-admin/maint/repair.php:99
+msgid ""
+"Repairs complete. Please remove the following line from wp-config.php to "
+"prevent this page from being used by unauthorized users."
+msgstr ""
+"Réparations effectuées. Veuillez retirer la ligne suivante de votre fichier "
+"wp-config.php, pour empêcher que cette page soit utilisée par des "
+"utilisateurs non autorisés."
 
 #: wp-admin/maint/repair.php:103
-msgid "WordPress can automatically look for some common database problems and repair them. Repairing can take a while, so please be patient."
-msgstr "WordPress peut automatiquement chercher les problèmes courants des base de données et les réparer. La réparation peut prendre un certain temps, merci donc de votre patience."
+msgid ""
+"One or more database tables are unavailable. To allow WordPress to attempt "
+"to repair these tables, press the &#8220;Repair Database&#8221; button. "
+"Repairing can take a while, so please be patient."
+msgstr ""
+"Une ou plusieurs tables de votre base de données sont indisponibles. Pour "
+"autoriser WordPress à tenter de réparer ces tables, cliquez sur le bouton "
+"&laquo;&nbsp;Réparer la base de données&nbsp;&raquo;. La réparation peut "
+"prendre un certain temps, merci donc d&rsquo;être patient."
 
 #: wp-admin/maint/repair.php:105
+msgid ""
+"WordPress can automatically look for some common database problems and "
+"repair them. Repairing can take a while, so please be patient."
+msgstr ""
+"WordPress peut automatiquement chercher les problèmes courants des base de "
+"données et les réparer. La réparation peut prendre un certain temps, merci "
+"donc de votre patience."
+
+#: wp-admin/maint/repair.php:107
 msgid "Repair Database"
 msgstr "Réparer la base de données"
 
-#: wp-admin/maint/repair.php:106
-msgid "WordPress can also attempt to optimize the database. This improves performance in some situations. Repairing and optimizing the database can take a long time and the database will be locked while optimizing."
-msgstr "WordPress peut également tenter d&rsquo;optimiser la base de données. Cela peut améliorer ses performances dans certains cas. La réparation et l&rsquo;optimisation peuvent prendre longtemps, et la base de données sera bloquée durant l&rsquo;optimisation."
-
-#: wp-admin/maint/repair.php:107
+#: wp-admin/maint/repair.php:108
+msgid ""
+"WordPress can also attempt to optimize the database. This improves "
+"performance in some situations. Repairing and optimizing the database can "
+"take a long time and the database will be locked while optimizing."
+msgstr ""
+"WordPress peut également tenter d&rsquo;optimiser la base de données. Cela "
+"peut améliorer ses performances dans certains cas. La réparation et l&rsquo;"
+"optimisation peuvent prendre longtemps, et la base de données sera bloquée "
+"durant l&rsquo;optimisation."
+
+#: wp-admin/maint/repair.php:109
 msgid "Repair and Optimize Database"
 msgstr "Réparer et optimiser la base de données"
 
-#: wp-admin/media-upload.php:68
+#: wp-admin/media-new.php:40
 msgid "Upload New Media"
 msgstr "Envoi d&rsquo;un nouveau média"
 
-#: wp-admin/media-upload.php:74
-msgid "You can upload media files here without creating a post first. This allows you to upload files to use with posts and pages later and/or to get a web link for a particular file that you can share. There are three options for uploading files:"
-msgstr "Vous pouvez ici mettre des fichiers en ligne sans devoir créer un nouvel article avant. Ceci vous permet d&rsquo;envoyer des fichiers qui seront utilisables par les articles et les pages ultérieurement et/ou seront utilisés via un lien internet pour partager un fichier particulier. Il y a 3 méthodes pour envoyer des fichiers&nbsp;:"
-
-#: wp-admin/media-upload.php:76
-msgid "<strong>Drag and drop</strong> your files into the area below. Multiple files are allowed."
-msgstr "<strong>Glissez/déposez</strong> vos fichiers dans la zone ci-dessous. Vous pouvez en déposer plusieurs à la fois."
-
-#: wp-admin/media-upload.php:77
-msgid "Clicking <strong>Select Files</strong> opens a navigation window showing you files in your operating system. Selecting <strong>Open</strong> after clicking on the file you want activates a progress bar on the uploader screen."
-msgstr "Un clic sur <strong>Sélectionner les fichiers</strong> ouvre la fenêtre de navigation, vous donnant accès aux fichiers de votre machine. Après avoir cliqué sur un fichier, cliquez sur <strong>Ouvrir</strong> pour l&rsquo;affichage de la barre de téléchargement."
-
-#: wp-admin/media-upload.php:78
-msgid "Revert to the <strong>Browser Uploader</strong> by clicking the link below the drag and drop box."
-msgstr "Revenez à l&rsquo;<strong>outil de mise en ligne du navigateur</strong> en cliquant sur le lien sous la zone de glisser-déposer."
-
-#: wp-admin/media-upload.php:80
-msgid "Basic image editing is available after upload is complete. Make sure you click Save before leaving this screen."
-msgstr "Un petit outil de retouche très basique est disponible une fois que la mise en ligne est validée. Prenez garde à bien cliquer sur &laquo;&nbspEnregistrer&nbsp;&raquo; en quitter cet écran."
-
-#: wp-admin/media-upload.php:84
-msgid "<a href=\"http://codex.wordpress.org/Media_Add_New_Screen\" target=\"_blank\">Documentation on Uploading Media Files</a>"
-msgstr "<a href=\"http://codex.wordpress.org/Media_Add_New_Screen\" target=\"_blank\">Documentation sur la mise en ligne de fichiers média (en)</a>"
-
-#: wp-admin/media.php:23
-#: wp-admin/media.php:57
+#: wp-admin/media-new.php:47
+msgid ""
+"You can upload media files here without creating a post first. This allows "
+"you to upload files to use with posts and pages later and/or to get a web "
+"link for a particular file that you can share. There are three options for "
+"uploading files:"
+msgstr ""
+"Vous pouvez ici mettre des fichiers en ligne sans devoir créer un nouvel "
+"article avant. Ceci vous permet d&rsquo;envoyer des fichiers qui seront "
+"utilisables par les articles et les pages ultérieurement et/ou seront "
+"utilisés via un lien internet pour partager un fichier particulier. Il y a 3 "
+"méthodes pour envoyer des fichiers&nbsp;:"
+
+#: wp-admin/media-new.php:49
+msgid ""
+"<strong>Drag and drop</strong> your files into the area below. Multiple "
+"files are allowed."
+msgstr ""
+"<strong>Glissez/déposez</strong> vos fichiers dans la zone ci-dessous. Vous "
+"pouvez en déposer plusieurs à la fois."
+
+#: wp-admin/media-new.php:50
+msgid ""
+"Clicking <strong>Select Files</strong> opens a navigation window showing you "
+"files in your operating system. Selecting <strong>Open</strong> after "
+"clicking on the file you want activates a progress bar on the uploader "
+"screen."
+msgstr ""
+"Un clic sur <strong>Sélectionner les fichiers</strong> ouvre la fenêtre de "
+"navigation, vous donnant accès aux fichiers de votre machine. Après avoir "
+"cliqué sur un fichier, cliquez sur <strong>Ouvrir</strong> pour l&rsquo;"
+"affichage de la barre de téléchargement."
+
+#: wp-admin/media-new.php:51
+msgid ""
+"Revert to the <strong>Browser Uploader</strong> by clicking the link below "
+"the drag and drop box."
+msgstr ""
+"Revenez à l&rsquo;<strong>outil de mise en ligne du navigateur</strong> en "
+"cliquant sur le lien sous la zone de glisser-déposer."
+
+#: wp-admin/media-new.php:56
+msgid ""
+"<a href=\"http://codex.wordpress.org/Media_Add_New_Screen\" target=\"_blank"
+"\">Documentation on Uploading Media Files</a>"
+msgstr ""
+"<a href=\"http://codex.wordpress.org/Media_Add_New_Screen\" target=\"_blank"
+"\">Documentation sur la mise en ligne de fichiers média (en)</a>"
+
+#: wp-admin/media.php:23 wp-admin/media.php:57
 msgid "You are not allowed to edit this attachment."
-msgstr "Vous n&rsquo;avez pas l&rsquo;autorisation de modifier ce fichier attaché."
+msgstr ""
+"Vous n&rsquo;avez pas l&rsquo;autorisation de modifier ce fichier attaché."
 
 #: wp-admin/media.php:61
-msgid "You attempted to edit an attachment that doesn&#8217;t exist. Perhaps it was deleted?"
-msgstr "Vous tentez de modifier un fichier attaché qui n&rsquo;existe pas. Peut-être a-t-il été supprimé&nbsp;?"
+msgid ""
+"You attempted to edit an attachment that doesn&#8217;t exist. Perhaps it was "
+"deleted?"
+msgstr ""
+"Vous tentez de modifier un fichier attaché qui n&rsquo;existe pas. Peut-être "
+"a-t-il été supprimé&nbsp;?"
 
 #: wp-admin/media.php:62
-msgid "You attempted to edit an item that isn&#8217;t an attachment. Please go back and try again."
-msgstr "Vous avez tenté de modifier un élément qui n&rsquo;est pas un fichier joint. Veuillez réessayer."
+msgid ""
+"You attempted to edit an item that isn&#8217;t an attachment. Please go back "
+"and try again."
+msgstr ""
+"Vous avez tenté de modifier un élément qui n&rsquo;est pas un fichier joint. "
+"Veuillez réessayer."
 
 #: wp-admin/media.php:63
-msgid "You can&#8217;t edit this attachment because it is in the Trash. Please move it out of the Trash and try again."
-msgstr "Vous ne pouvez pas modifier ce fichier attaché, car il est dans la Corbeille. Sortez-l&rsquo;en, puis réessayez."
+msgid ""
+"You can&#8217;t edit this attachment because it is in the Trash. Please move "
+"it out of the Trash and try again."
+msgstr ""
+"Vous ne pouvez pas modifier ce fichier attaché, car il est dans la "
+"Corbeille. Sortez-l&rsquo;en, puis réessayez."
 
 #: wp-admin/media.php:75
-msgid "This screen allows you to edit five fields for metadata in a file within the media library."
-msgstr "Cet écran vous permet de modifier les 4 champs des métadonnées des fichiers dans la bibliothèque des médias."
-
-#: wp-admin/media.php:76
-msgid "For images only, you can click on Edit Image under the thumbnail to expand out an inline image editor with icons for cropping, rotating, or flipping the image as well as for undoing and redoing. The boxes on the right give you more options for scaling the image, for cropping it, and for cropping the thumbnail in a different way than you crop the original image. You can click on Help in those boxes to get more information."
-msgstr "Pour les images (et seulement elles), vous pouvez cliquer sur &laquo;&nbsp;Modifier l&rsquo;Image&nbsp;&raquo;, sous la miniature, afin de faire apparaître un éditeur d&rsquo;image, vous permettant de recadrer, d&rsquo;appliquer une rotation ou d&rsquo;inverser une image, ainsi que de défaire et refaire vos modifications. Les boites sur la droite vous donnent accès à d&rsquo;autres options pour le changement d&rsquo;échelle, le recadrage et même le recadrage de la miniature, qui peut être différent de celui de l&rsquo;image originale. Cliquez sur le bouton Aide de ces boites pour obtenir plus d&rsquo;information."
-
-#: wp-admin/media.php:77
-msgid "Note that you crop the image by clicking on it (the Crop icon is already selected) and dragging the cropping frame to select the desired part. Then click Save to retain the cropping."
-msgstr "Pour recadrer une image, cliquez sur l&rsquo;icône Recadrer puis sélectionnez la zone à conserver en cliquant sur l&rsquo;image et en faisant glisser le curseur de la souris. Ensuite, cliquez sur Enregistrer pour conserver votre modification."
-
-#: wp-admin/media.php:78
-msgid "Remember to click Update Media to save metadata entered or changed."
-msgstr "Pensez bien à cliquer sur le bouton &laquo;&nbsp;Mettre à jour le fichier&nbsp;&raquo; afin de conserver les métadonnées ajoutées ou modifiées."
-
-#: wp-admin/media.php:83
-msgid "<a href=\"http://codex.wordpress.org/Media_Add_New_Screen#Edit_Media\" target=\"_blank\">Documentation on Edit Media</a>"
-msgstr "<a href=\"http://codex.wordpress.org/Media_Add_New_Screen#Edit_Media\" target=\"_blank\">Documentation sur la modification des médias (en)</a>"
-
-#: wp-admin/media.php:95
-#: wp-admin/upload.php:192
-#: wp-admin/upload.php:217
-msgid "Media attachment updated."
-msgstr "Fichier attaché mis à jour."
+msgid ""
+"This screen allows you to edit five fields for metadata in a file within the "
+"media library."
+msgstr ""
+"Cet écran vous permet de modifier les 4 champs des métadonnées des fichiers "
+"dans la bibliothèque des médias."
 
 #. translators: add new file
-#: wp-admin/media.php:111
-#: wp-admin/menu.php:59
-#: wp-admin/upload.php:183
+#: wp-admin/media.php:111 wp-admin/menu.php:66 wp-admin/upload.php:185
 msgctxt "file"
 msgid "Add New"
 msgstr "Ajouter"
 
-#: wp-admin/media.php:117
-#: wp-admin/media.php:126
+#: wp-admin/media.php:117 wp-admin/media.php:126
 msgid "Update Media"
 msgstr "Mettre à jour le fichier"
 
-#: wp-admin/menu-header.php:170
+#: wp-admin/menu-header.php:172
 msgid "Collapse menu"
 msgstr "Réduire le menu"
 
-#: wp-admin/menu.php:37
+#: wp-admin/menu.php:43
 msgid "Updates %s"
 msgstr "Mises à jour %s"
 
-#: wp-admin/menu.php:57
+#: wp-admin/menu.php:64
 msgid "Library"
 msgstr "Bibliothèque"
 
-#: wp-admin/menu.php:62
+#: wp-admin/menu.php:76
 msgctxt "admin menu"
 msgid "All Links"
 msgstr "Tous les liens"
 
-#: wp-admin/menu.php:82
+#: wp-admin/menu.php:96
 msgid "Comments %s"
 msgstr "Commentaires %s"
 
-#: wp-admin/menu.php:85
+#: wp-admin/menu.php:99
 msgid "All Comments"
 msgstr "Tous les commentaires"
 
-#: wp-admin/menu.php:126
-#: wp-admin/menu.php:131
+#: wp-admin/menu.php:140 wp-admin/menu.php:145
 msgid "Appearance"
 msgstr "Apparence"
 
-#: wp-admin/menu.php:142
+#: wp-admin/menu.php:156
 msgctxt "theme editor"
 msgid "Editor"
 msgstr "Éditeur"
 
-#: wp-admin/menu.php:154
+#: wp-admin/menu.php:166
 msgid "Plugins %s"
 msgstr "Extensions %s"
 
-#: wp-admin/menu.php:156
+#: wp-admin/menu.php:168
 msgid "Installed Plugins"
 msgstr "Extensions installées"
 
 #. translators: add new plugin
-#: wp-admin/menu.php:160
-#: wp-admin/plugins.php:407
+#: wp-admin/menu.php:172 wp-admin/plugins.php:412
 msgctxt "plugin"
 msgid "Add New"
 msgstr "Ajouter"
 
-#: wp-admin/menu.php:161
+#: wp-admin/menu.php:173
 msgctxt "plugin editor"
 msgid "Editor"
 msgstr "Éditeur"
 
-#: wp-admin/menu.php:169
-#: wp-admin/user/menu.php:14
-#: wp-admin/user-edit.php:28
+#: wp-admin/menu.php:181 wp-admin/user/menu.php:14 wp-admin/user-edit.php:28
 msgid "Profile"
 msgstr "Profil"
 
-#: wp-admin/menu.php:173
+#: wp-admin/menu.php:185
 msgid "All Users"
 msgstr "Tous les utilisateurs"
 
 # contexte
-#: wp-admin/menu.php:175
-#: wp-admin/menu.php:177
-#: wp-admin/user-edit.php:184
-#: wp-admin/users.php:404
+#: wp-admin/menu.php:187 wp-admin/menu.php:189 wp-admin/user-edit.php:185
+#: wp-admin/users.php:430
 msgctxt "user"
 msgid "Add New"
 msgstr "Ajouter"
 
-#: wp-admin/menu.php:179
-#: wp-admin/menu.php:182
+#: wp-admin/menu.php:191 wp-admin/menu.php:194
 msgid "Your Profile"
 msgstr "Votre profil"
 
-#: wp-admin/menu.php:184
-#: wp-admin/menu.php:186
-#: wp-admin/user-new.php:133
-#: wp-admin/user-new.php:295
+#: wp-admin/menu.php:196 wp-admin/menu.php:198 wp-admin/user-new.php:138
+#: wp-admin/user-new.php:300
 msgid "Add New User"
 msgstr "Ajouter un utilisateur"
 
-#: wp-admin/menu.php:189
-#: wp-admin/tools.php:12
+#: wp-admin/menu.php:201 wp-admin/tools.php:12
 msgid "Tools"
 msgstr "Outils"
 
-#: wp-admin/menu.php:190
+#: wp-admin/menu.php:202
 msgid "Available Tools"
 msgstr "Outils disponibles"
 
-#: wp-admin/menu.php:194
-#: wp-admin/ms-delete-site.php:28
+#: wp-admin/menu.php:206 wp-admin/ms-delete-site.php:30
 msgid "Delete Site"
 msgstr "Supprimer mon site"
 
-#: wp-admin/menu.php:196
+#: wp-admin/menu.php:208
 msgid "Network Setup"
 msgstr "Création du réseau"
 
-#: wp-admin/menu.php:199
+#: wp-admin/menu.php:211
 msgctxt "settings screen"
 msgid "General"
 msgstr "Général"
 
-#: wp-admin/menu.php:200
+#: wp-admin/menu.php:212
 msgid "Writing"
 msgstr "Écriture"
 
-#: wp-admin/menu.php:201
+#: wp-admin/menu.php:213
 msgid "Reading"
 msgstr "Lecture"
 
-#: wp-admin/menu.php:205
+#: wp-admin/menu.php:216
 msgid "Permalinks"
 msgstr "Permaliens"
 
-#: wp-admin/ms-delete-site.php:13
-#: wp-admin/my-sites.php:13
+#: wp-admin/ms-delete-site.php:13 wp-admin/my-sites.php:13
 msgid "Multisite support is not enabled."
 msgstr "Le support multisites n&rsquo;est pas activé."
 
@@ -7165,21 +8737,28 @@
 msgstr "Vous n&rsquo;avez pas les droits suffisants pour effacer ce site."
 
 #: wp-admin/ms-delete-site.php:22
-msgid "Thank you for using %s, your site has been deleted. Happy trails to you until we meet again."
-msgstr "Merci d&rsquo;avoir utilisé notre service %s, votre site a été effacé. Ce n&#8217;est qu&#8217;un au revoir..."
+msgid ""
+"Thank you for using %s, your site has been deleted. Happy trails to you "
+"until we meet again."
+msgstr ""
+"Merci d&rsquo;avoir utilisé notre service %s, votre site a été effacé. Ce "
+"n&#8217;est qu&#8217;un au revoir..."
 
 #: wp-admin/ms-delete-site.php:24
 msgid "I'm sorry, the link you clicked is stale. Please select another option."
-msgstr "Je suis désolé, mais le lien que vous avez cliqué ne répond pas. Merci de sélectionner une autre option."
+msgstr ""
+"Je suis désolé, mais le lien que vous avez cliqué ne répond pas. Veuillez "
+"sélectionner une autre option."
 
 # Pas d'entité HTML : envoyé par mail.
-#: wp-admin/ms-delete-site.php:44
+#: wp-admin/ms-delete-site.php:46
 msgid ""
 "Dear User,\n"
 "You recently clicked the 'Delete Site' link on your site and filled in a\n"
 "form on that page.\n"
 "If you really want to delete your site, click the link below. You will not\n"
-"be asked to confirm again so only click this link if you are absolutely certain:\n"
+"be asked to confirm again so only click this link if you are absolutely "
+"certain:\n"
 "###URL_DELETE###\n"
 "\n"
 "If you delete your site, please consider opening a new site here\n"
@@ -7191,39 +8770,64 @@
 "###SITE_NAME###"
 msgstr ""
 "Cher utilisateur,\n"
-"Vous avez récemment cliqué sur le lien \"effacer mon site\" dans la console d'administration de votre site \n"
-"et compléter le formulaire présent sur cette même page.\n"
-"Si vous êtes sûr de vouloir supprimer votre site, cliquer sur le lien ci-dessous. Aucune confirmation ne vous sera demandé à l'avenir, soyez donc 100% certain :\n"
+"Vous avez récemment cliqué sur le lien \"Effacer mon site\" dans la console "
+"d'administration de votre site \n"
+"et complété le formulaire présent sur cette même page.\n"
+"Si vous êtes sûr de vouloir supprimer votre site, cliquez sur le lien ci-"
+"dessous. Aucune confirmation ne vous sera demandée à l'avenir, soyez donc "
+"totalement certain de ce que vous faites :\n"
 "###URL_DELETE###\n"
 "\n"
-"Si vous effacez votre site, merci de faire attention lors de l'ouverture de votre prochain site! (et souvenez-vous que votre site actuel et votre identifiant ne seront plus jamais disponibles)\n"
+"Si vous effacez votre site, n'hésitez pas à revenir créer un site à "
+"l'avenir ! (mais souvenez-vous que votre site actuel et votre identifiant ne "
+"seront plus jamais disponibles)\n"
+"\n"
 "Merci d'avoir utilisé notre site,\n"
+"\n"
 "Le webmaster\n"
 "###SITE_NAME###"
 
-#: wp-admin/ms-delete-site.php:62
+#: wp-admin/ms-delete-site.php:64
 msgid "Delete My Site"
 msgstr "Supprimer le site"
 
-#: wp-admin/ms-delete-site.php:65
-msgid "Thank you. Please check your email for a link to confirm your action. Your site will not be deleted until this link is clicked. "
-msgstr "Merci. Veuillez consulter le message que nous vous avons envoyé pour confirmer cette action. Votre site ne sera pas effacé tant que vous n&#8217;aurez pas cliqué le lien qu&#8217;il contient."
-
-#: wp-admin/ms-delete-site.php:69
-msgid "If you do not want to use your %s site any more, you can delete it using the form below. When you click <strong>Delete My Site Permanently</strong> you will be sent an email with a link in it. Click on this link to delete your site."
-msgstr "Si vous ne souhaitez plus utiliser votre site %s, vous pouvez l&#8217;effacer à l&#8217;aide du formulaire ci-dessous. Après avoir cliqué sur <strong>Effacer mon site</strong>, vous recevrez un message avec un lien. Cliquez sur ce lien pour effacer votre site."
-
-#: wp-admin/ms-delete-site.php:70
+#: wp-admin/ms-delete-site.php:67
+msgid ""
+"Thank you. Please check your email for a link to confirm your action. Your "
+"site will not be deleted until this link is clicked. "
+msgstr ""
+"Merci. Veuillez consulter le message que nous vous avons envoyé pour "
+"confirmer cette action. Votre site ne sera pas effacé tant que vous n&#8217;"
+"aurez pas cliqué le lien qu&#8217;il contient."
+
+#: wp-admin/ms-delete-site.php:71
+msgid ""
+"If you do not want to use your %s site any more, you can delete it using the "
+"form below. When you click <strong>Delete My Site Permanently</strong> you "
+"will be sent an email with a link in it. Click on this link to delete your "
+"site."
+msgstr ""
+"Si vous ne souhaitez plus utiliser votre site %s, vous pouvez l&#8217;"
+"effacer à l&#8217;aide du formulaire ci-dessous. Après avoir cliqué sur "
+"<strong>Effacer mon site</strong>, vous recevrez un message avec un lien. "
+"Cliquez sur ce lien pour effacer votre site."
+
+#: wp-admin/ms-delete-site.php:72
 msgid "Remember, once deleted your site cannot be restored."
 msgstr "Rappelez-vous une fois supprimé, votre site ne peut être restauré."
 
-#: wp-admin/ms-delete-site.php:75
-msgid "I'm sure I want to permanently disable my site, and I am aware I can never get it back or use %s again."
-msgstr "Je suis certain de vouloir effacer mon site de manière permanente, et je me rends compte que je ne pourrais jamais le récupérer ni utiliser %s pour un nouveau site."
-
-#: wp-admin/ms-delete-site.php:76
+#: wp-admin/ms-delete-site.php:77
+msgid ""
+"I'm sure I want to permanently disable my site, and I am aware I can never "
+"get it back or use %s again."
+msgstr ""
+"Je suis certain de vouloir effacer mon site définitivement, et je me rends "
+"compte que je ne pourrais jamais le récupérer ni utiliser %s pour un nouveau "
+"site."
+
+#: wp-admin/ms-delete-site.php:78
 msgid "Delete My Site Permanently"
-msgstr "Effacer mon site de façon permanente"
+msgstr "Effacer mon site définitivement"
 
 #: wp-admin/my-sites.php:16
 msgid "You do not have sufficient permissions to view this page."
@@ -7234,26 +8838,42 @@
 msgstr "Le site principal que vous avez choisi n&rsquo;existe pas."
 
 #: wp-admin/my-sites.php:42
-msgid "This screen shows an individual user all of their sites in this network, and also allows that user to set a primary site. He or she can use the links under each site to visit either the frontend or the dashboard for that site."
-msgstr "Cet écran affiche tous les sites d&rsquo;un utilisateur du réseau, et permet également à l&rsquo;utilisateur d&rsquo;indiquer son site principal. Il peut utiliser les liens placés sous chaque site pour se rendre sur leur page d&rsquo;administration ou leur page d&rsquo;accueil."
+msgid ""
+"This screen shows an individual user all of their sites in this network, and "
+"also allows that user to set a primary site. He or she can use the links "
+"under each site to visit either the frontend or the dashboard for that site."
+msgstr ""
+"Cet écran affiche tous les sites d&rsquo;un utilisateur du réseau, et permet "
+"également à l&rsquo;utilisateur d&rsquo;indiquer son site principal. Il peut "
+"utiliser les liens placés sous chaque site pour se rendre sur leur page "
+"d&rsquo;administration ou leur page d&rsquo;accueil."
 
 #: wp-admin/my-sites.php:43
-msgid "Up until WordPress version 3.0, what is now called a Multisite Network had to be installed separately as WordPress MU (multi-user)."
-msgstr "Avant la version 3.0 de WordPress, l&rsquo;équivalent du réseau multisite devait être installé avec une édition spéciale de WordPress, appelée WordPress MU (pour Multi-Utilisateurs)."
+msgid ""
+"Up until WordPress version 3.0, what is now called a Multisite Network had "
+"to be installed separately as WordPress MU (multi-user)."
+msgstr ""
+"Avant la version 3.0 de WordPress, l&rsquo;équivalent du réseau multisite "
+"devait être installé avec une édition spéciale de WordPress, appelée "
+"WordPress MU (pour Multi-Utilisateurs)."
 
 #: wp-admin/my-sites.php:48
-msgid "<a href=\"http://codex.wordpress.org/Dashboard_My_Sites_Screen\" target=\"_blank\">Documentation on My Sites</a>"
-msgstr "<a href=\"http://codex.wordpress.org/Dashboard_My_Sites_Screen\" target=\"_blank\">Documentation sur Mes Sites (en)</a>"
-
-#: wp-admin/my-sites.php:55
-#: wp-admin/options-head.php:16
-#: wp-admin/options.php:158
+msgid ""
+"<a href=\"http://codex.wordpress.org/Dashboard_My_Sites_Screen\" target="
+"\"_blank\">Documentation on My Sites</a>"
+msgstr ""
+"<a href=\"http://codex.wordpress.org/Dashboard_My_Sites_Screen\" target="
+"\"_blank\">Documentation sur Mes Sites (en)</a>"
+
+#: wp-admin/my-sites.php:55 wp-admin/options-head.php:16
+#: wp-admin/options.php:164
 msgid "Settings saved."
 msgstr "Options enregistrées."
 
 #: wp-admin/my-sites.php:64
 msgid "You must be a member of at least one site to use this page."
-msgstr "Vous devez être membre d&rsquo;au moins un site pour utiliser cette page."
+msgstr ""
+"Vous devez être membre d&rsquo;au moins un site pour utiliser cette page."
 
 #: wp-admin/my-sites.php:78
 msgid "Global Settings"
@@ -7261,130 +8881,201 @@
 
 #: wp-admin/nav-menus.php:19
 msgid "Your theme does not support navigation menus or widgets."
-msgstr "Le thème actuel n&rsquo;accepte pas les menus de navigation ni les widgets."
-
-#: wp-admin/nav-menus.php:233
+msgstr ""
+"Le thème actuel n&rsquo;accepte pas les menus de navigation ni les widgets."
+
+#: wp-admin/nav-menus.php:222
 msgid "The menu item has been successfully deleted."
 msgstr "L&rsquo;élément du menu a bien été supprimé."
 
-#: wp-admin/nav-menus.php:252
+#: wp-admin/nav-menus.php:241
 msgid "The menu has been successfully deleted."
 msgstr "Le menu a bien été supprimé."
 
-#: wp-admin/nav-menus.php:292
+#: wp-admin/nav-menus.php:281
 msgid "The <strong>%s</strong> menu has been successfully created."
 msgstr "Le menu <strong>%s</strong> a bien été créé."
 
-#: wp-admin/nav-menus.php:295
-#: wp-admin/nav-menus.php:305
+#: wp-admin/nav-menus.php:284 wp-admin/nav-menus.php:294
 msgid "Please enter a valid menu name."
-msgstr "Merci de saisir un nom de menu valide."
-
-#: wp-admin/nav-menus.php:381
+msgstr "Veuillez saisir un nom de menu valide."
+
+#: wp-admin/nav-menus.php:370
 msgid "The <strong>%s</strong> menu has been updated."
 msgstr "Le menu <strong>%s</strong> a bien été mis à jour."
 
-#: wp-admin/nav-menus.php:452
-msgid "This feature allows you to use a custom menu in place of your theme&#8217;s default menus."
-msgstr "Cette fonctionnalité vous permet d&rsquo;utiliser un menu personnaliser en lieu et place du menu par défaut de votre thème."
-
-#: wp-admin/nav-menus.php:453
-msgid "Custom menus may contain links to pages, categories, custom links or other content types (use the Screen Options tab to decide which ones to show on the screen). You can specify a different navigation label for a menu item as well as other attributes. You can create multiple menus. If your theme includes more than one menu, you can choose which custom menu to associate with each. You can also use custom menus in conjunction with the Custom Menus widget."
-msgstr "Les menus personnalisés peuvent contenir des liens vers des pages, des catégories, des liens personnalisés ou d&rsquo;autres types de contenus (utiliser l&rsquo;onglet &laquo;&nbsp;Options de l&rsquo;écran&nbsp;&raquo; pour décider lesquels afficher). Vous pouvez choisir un titre de navigation différent pour le menu ainsi que ses autres attributs. Vous pouvez créer plusieurs menus. Si votre thème peut prendre en compte plusieurs menus, vous pouvez choisir quel menu associer à chaque emplacement. Vous pouvez également utiliser les menus personnalisés par le biais du widget &laquo;&nbsp;Menu Personnalisé&nbsp;&raquo;."
-
-#: wp-admin/nav-menus.php:454
-msgid "If your theme does not support the custom menus feature yet (the default themes, Twenty Eleven and Twenty Ten, do), you can learn about adding this support by following the Documentation link to the side."
-msgstr "Si votre thème ne reconnaît pas encore cette fonctionnalité (les thèmes par défaut, Twenty Ten et Twenty Eleven, les intègrent très bien), vous pouvez apprendre à ajouter cette reconnaissance vous-même en suivant le lien de documentation situé dans cet onglet."
-
-#: wp-admin/nav-menus.php:458
+#: wp-admin/nav-menus.php:441
+msgid ""
+"This feature allows you to use a custom menu in place of your theme&#8217;s "
+"default menus."
+msgstr ""
+"Cette fonctionnalité vous permet d&rsquo;utiliser un menu personnaliser en "
+"lieu et place du menu par défaut de votre thème."
+
+#: wp-admin/nav-menus.php:442
+msgid ""
+"Custom menus may contain links to pages, categories, custom links or other "
+"content types (use the Screen Options tab to decide which ones to show on "
+"the screen). You can specify a different navigation label for a menu item as "
+"well as other attributes. You can create multiple menus. If your theme "
+"includes more than one menu location, you can choose which custom menu to "
+"associate with each. You can also use custom menus in conjunction with the "
+"Custom Menus widget."
+msgstr ""
+"Les menus personnalisés peuvent contenir des liens vers des pages, des "
+"catégories, des liens personnalisés ou d&rsquo;autres types de contenus "
+"(utilisez l&rsquo;onglet &laquo;&nbsp;Options de l&rsquo;écran&nbsp;&raquo; "
+"pour décider lesquels afficher). Vous pouvez choisir un titre de navigation "
+"différent pour le menu ainsi que ses autres attributs. Vous pouvez créer "
+"plusieurs menus. Si votre thème peut prendre en compte plusieurs menus, vous "
+"pouvez choisir quel menu associer à chaque emplacement. Vous pouvez "
+"également utiliser les menus personnalisés par le biais du widget &laquo;"
+"&nbsp;Menu Personnalisé&nbsp;&raquo;."
+
+#: wp-admin/nav-menus.php:443
+msgid ""
+"If your theme does not support the custom menus feature (the default themes, "
+"%1$s and %2$s, do), you can learn about adding this support by following the "
+"Documentation link to the side."
+msgstr ""
+"Si votre thème ne reconnaît pas encore cette fonctionnalité (les thèmes par "
+"défaut, %1$s and %2$s, les intègrent très bien), vous pouvez apprendre à "
+"ajouter cette reconnaissance vous-même en suivant le lien de documentation "
+"situé dans cet onglet."
+
+#: wp-admin/nav-menus.php:447
 msgid "Create Menus"
 msgstr "Créer des menus"
 
-#: wp-admin/nav-menus.php:460
-msgid "To create a new custom menu, click on the + tab, give the menu a name, and click Create Menu. Next, add menu items from the appropriate boxes. You&#8217;ll be able to edit the information for each menu item, and can drag and drop to put them in order. You can also drag a menu item a little to the right to make it a submenu, to create menus with hierarchy. Drop the item into its new nested placement when the dotted rectangle target shifts over, also a little to the right. Don&#8217;t forget to click Save when you&#8217;re finished."
-msgstr "Pour créer un nouveau menu personnalisé, cliquez sur l&rsquo;onglet &laquo;&nbsp;+&nbsp;&raquo;, nommez le menu puis cliquez sur &laquo;&nbsp;Créer un menu&nbsp;&raquo;. Ensuite, ajoutez-y des éléments à partir des boites appropriées. Vous pourrez modifier les informations pour chaque élément de menu, et les glisser/déposer afin d&rsquo;en changer l&rsquo;ordre. Vous pouvez également glisser un élément de menu un peu plus vers la droite afin d&rsquo;en faire un sous-menu, et créer ainsi un menu hiérarchisé&nbsp;; vous verrez alors la zone d&rsquo;emplacement se déplacer. N&rsquo;oubliez pas de cliquer sur &laquo;&nbsp;Enregistrer le menu&nbsp;&raquo; quand vous avez terminé."
-
-#: wp-admin/nav-menus.php:465
-msgid "<a href=\"http://codex.wordpress.org/Appearance_Menus_Screen\" target=\"_blank\">Documentation on Menus</a>"
-msgstr "<a href=\"http://codex.wordpress.org/Appearance_Menus_Screen\" target=\"_blank\">Documentation sur les menus personnalisés (en)</a>"
-
-#: wp-admin/nav-menus.php:502
+#: wp-admin/nav-menus.php:449
+msgid ""
+"To create a new custom menu, click on the + tab, give the menu a name, and "
+"click Create Menu. Next, add menu items from the appropriate boxes. "
+"You&#8217;ll be able to edit the information for each menu item, and can "
+"drag and drop to change their order. You can also drag a menu item a little "
+"to the right to make it a submenu. Don&#8217;t forget to click Save Menu "
+"when you&#8217;re finished."
+msgstr ""
+"Pour créer un nouveau menu personnalisé, cliquez sur l&rsquo;onglet &laquo;"
+"&nbsp;+&nbsp;&raquo;, nommez le menu puis cliquez sur &laquo;&nbsp;Créer un "
+"menu&nbsp;&raquo;. Ensuite, ajoutez-y des éléments à partir des boites "
+"appropriées. Vous pourrez modifier les informations pour chaque élément de "
+"menu, et les glisser/déposer afin d&rsquo;en changer l&rsquo;ordre. Vous "
+"pouvez également glisser un élément de menu un peu plus vers la droite afin "
+"d&rsquo;en faire un sous-menu. N&rsquo;oubliez pas de cliquer sur &laquo;"
+"&nbsp;Enregistrer le menu&nbsp;&raquo; quand vous avez terminé."
+
+#: wp-admin/nav-menus.php:454
+msgid ""
+"<a href=\"http://codex.wordpress.org/Appearance_Menus_Screen\" target="
+"\"_blank\">Documentation on Menus</a>"
+msgstr ""
+"<a href=\"http://codex.wordpress.org/Appearance_Menus_Screen\" target="
+"\"_blank\">Documentation sur les menus personnalisés (en)</a>"
+
+#: wp-admin/nav-menus.php:491
 msgid "Add New Menu"
 msgstr "Ajouter un nouveau menu"
 
-#: wp-admin/nav-menus.php:527
-#: wp-admin/nav-menus.php:537
+#: wp-admin/nav-menus.php:516 wp-admin/nav-menus.php:526
 msgid "Add menu"
 msgstr "Ajouter un menu"
 
-#: wp-admin/nav-menus.php:547
+#: wp-admin/nav-menus.php:536
 msgid "Menu Name"
 msgstr "Nom du menu"
 
-#: wp-admin/nav-menus.php:548
+#: wp-admin/nav-menus.php:537
 msgid "Enter menu name here"
 msgstr "Saisissez ici le nom du menu"
 
-#: wp-admin/nav-menus.php:562
+#: wp-admin/nav-menus.php:551
 msgid "Automatically add new top-level pages"
 msgstr "Ajouter automatiquement les pages de haut niveau"
 
-#: wp-admin/nav-menus.php:567
+#: wp-admin/nav-menus.php:556
 msgid "Create Menu"
 msgstr "Créer un menu"
 
-#: wp-admin/nav-menus.php:567
-#: wp-admin/nav-menus.php:606
+#: wp-admin/nav-menus.php:556 wp-admin/nav-menus.php:595
 msgid "Save Menu"
 msgstr "Enregistrer le menu"
 
-#: wp-admin/nav-menus.php:572
+#: wp-admin/nav-menus.php:561
 msgid "Delete Menu"
 msgstr "Supprimer le menu"
 
-#: wp-admin/nav-menus.php:593
-msgid "To create a custom menu, give it a name above and click Create Menu. Then choose items like pages, categories or custom links from the left column to add to this menu."
-msgstr "Pour créer un menu personnalisé, donnez-lui un nom ci-dessus et cliquez sur &laquo;&nbsp;Créer un menu&nbsp;&raquo;. Ensuite, ajoutez-y des entrées (des pages, des catégories ou des liens personnalisés) depuis la colonne de gauche."
-
-#: wp-admin/nav-menus.php:594
-msgid "After you have added your items, drag and drop to put them in the order you want. You can also click each item to reveal additional configuration options."
-msgstr "Après avoir ajouté vos entrées, vous pouvez les glisser/déposer afin de les ordonner. Cliquez sur chacune des entrées pour afficher ses options de configuration."
-
-#: wp-admin/nav-menus.php:595
-msgid "When you have finished building your custom menu, make sure you click the Save Menu button."
-msgstr "Une fois que vous avez terminé de construire votre menu, n&rsquo;oubliez pas de cliquer sur le bouton &laquo;&nbsp;Enregister le menu&nbsp;&raquo;."
-
-#: wp-admin/options-discussion.php:13
-#: wp-admin/options-general.php:13
-#: wp-admin/options-media.php:13
-#: wp-admin/options-permalink.php:13
-#: wp-admin/options-privacy.php:13
-#: wp-admin/options-reading.php:13
-#: wp-admin/options-writing.php:13
+#: wp-admin/nav-menus.php:582
+msgid ""
+"To create a custom menu, give it a name above and click Create Menu. Then "
+"choose items like pages, categories or custom links from the left column to "
+"add to this menu."
+msgstr ""
+"Pour créer un menu personnalisé, donnez-lui un nom ci-dessus et cliquez sur "
+"&laquo;&nbsp;Créer un menu&nbsp;&raquo;. Ensuite, ajoutez-y des entrées (des "
+"pages, des catégories ou des liens personnalisés) depuis la colonne de "
+"gauche."
+
+#: wp-admin/nav-menus.php:583
+msgid ""
+"After you have added your items, drag and drop to put them in the order you "
+"want. You can also click each item to reveal additional configuration "
+"options."
+msgstr ""
+"Après avoir ajouté vos entrées, vous pouvez les glisser/déposer afin de les "
+"ordonner. Cliquez sur chacune des entrées pour afficher ses options de "
+"configuration."
+
+#: wp-admin/nav-menus.php:584
+msgid ""
+"When you have finished building your custom menu, make sure you click the "
+"Save Menu button."
+msgstr ""
+"Une fois que vous avez terminé de construire votre menu, n&rsquo;oubliez pas "
+"de cliquer sur le bouton &laquo;&nbsp;Enregister le menu&nbsp;&raquo;."
+
+#: wp-admin/options-discussion.php:13 wp-admin/options-general.php:13
+#: wp-admin/options-media.php:13 wp-admin/options-permalink.php:13
+#: wp-admin/options-reading.php:13 wp-admin/options-writing.php:13
 msgid "You do not have sufficient permissions to manage options for this site."
-msgstr "Vous n&rsquo;avez pas les droits suffisants pour gérer les options de ce site."
+msgstr ""
+"Vous n&rsquo;avez pas les droits suffisants pour gérer les options de ce "
+"site."
 
 #: wp-admin/options-discussion.php:21
-msgid "This screen provides many options for controlling the management and display of comments and links to your posts/pages. So many, in fact, they won&#8217;t all fit here! :) Use the documentation links to get information on what each discussion setting does."
-msgstr "Cet écran offre plusieurs options pour contrôler la gestion et l&rsquo;affichage des commentaires et liens sur vos articles/pages. En fait, il y en a tellement qu&rsquo;elles ne tiennent pas toutes ici&nbsp;!&nbsp;:) Utiliser le lien vers la documentation pour obtenir des informations sur ce que fait chaque réglage de discussion."
-
-#: wp-admin/options-discussion.php:22
-#: wp-admin/options-general.php:70
-#: wp-admin/options-media.php:30
-#: wp-admin/options-permalink.php:23
-#: wp-admin/options-permalink.php:32
-#: wp-admin/options-permalink.php:39
-#: wp-admin/options-reading.php:50
-#: wp-admin/options-writing.php:22
-msgid "You must click the Save Changes button at the bottom of the screen for new settings to take effect."
-msgstr "Vous devez cliquer sur &laquo;&nbsp;Enregistrer les modifications&nbsp;&raquo; en bas de l&rsquo;écran pour que les nouveaux réglages prennent effet."
+msgid ""
+"This screen provides many options for controlling the management and display "
+"of comments and links to your posts/pages. So many, in fact, they won&#8217;"
+"t all fit here! :) Use the documentation links to get information on what "
+"each discussion setting does."
+msgstr ""
+"Cet écran offre plusieurs options pour contrôler la gestion et l&rsquo;"
+"affichage des commentaires et liens sur vos articles/pages. En fait, il y en "
+"a tellement qu&rsquo;elles ne tiennent pas toutes ici&nbsp;!&nbsp;:) "
+"Utiliser le lien vers la documentation pour obtenir des informations sur ce "
+"que fait chaque réglage de discussion."
+
+#: wp-admin/options-discussion.php:22 wp-admin/options-general.php:69
+#: wp-admin/options-media.php:24 wp-admin/options-permalink.php:23
+#: wp-admin/options-permalink.php:32 wp-admin/options-permalink.php:39
+#: wp-admin/options-reading.php:59 wp-admin/options-writing.php:22
+msgid ""
+"You must click the Save Changes button at the bottom of the screen for new "
+"settings to take effect."
+msgstr ""
+"Vous devez cliquer sur &laquo;&nbsp;Enregistrer les modifications&nbsp;"
+"&raquo; en bas de l&rsquo;écran pour que les nouveaux réglages prennent "
+"effet."
 
 #: wp-admin/options-discussion.php:27
-msgid "<a href=\"http://codex.wordpress.org/Settings_Discussion_Screen\" target=\"_blank\">Documentation on Discussion Settings</a>"
-msgstr "<a href=\"http://codex.wordpress.org/Settings_Discussion_Screen\" target=\"_blank\">Documentation sur les réglages des discussions (en)</a>"
-
-#: wp-admin/options-discussion.php:43
-#: wp-admin/options-discussion.php:44
+msgid ""
+"<a href=\"http://codex.wordpress.org/Settings_Discussion_Screen\" target="
+"\"_blank\">Documentation on Discussion Settings</a>"
+msgstr ""
+"<a href=\"http://codex.wordpress.org/Settings_Discussion_Screen\" target="
+"\"_blank\">Documentation sur les réglages des discussions (en)</a>"
+
+#: wp-admin/options-discussion.php:43 wp-admin/options-discussion.php:44
 msgid "Default article settings"
 msgstr "Réglages par défaut des&nbsp;articles"
 
@@ -7396,187 +9087,229 @@
 msgid "These settings may be overridden for individual articles."
 msgstr "Ces réglages peuvent être modifiés pour chaque article."
 
-#: wp-admin/options-discussion.php:61
-#: wp-admin/options-discussion.php:62
+#: wp-admin/options-discussion.php:61 wp-admin/options-discussion.php:62
 msgid "Other comment settings"
 msgstr "Autres réglages des commentaires"
 
 #: wp-admin/options-discussion.php:63
 msgid "Comment author must fill out name and e-mail"
-msgstr "L&rsquo;auteur d&rsquo;un commentaire doit renseigner son nom et son adresse de messagerie"
+msgstr ""
+"L&rsquo;auteur d&rsquo;un commentaire doit renseigner son nom et son adresse "
+"de messagerie"
 
 #: wp-admin/options-discussion.php:67
 msgid "Users must be registered and logged in to comment"
-msgstr "Un utilisateur doit être enregistré et connecté pour publier des commentaires"
+msgstr ""
+"Un utilisateur doit être enregistré et connecté pour publier des commentaires"
 
 #: wp-admin/options-discussion.php:68
 msgid "(Signup has been disabled. Only members of this site can comment.)"
-msgstr " (L&rsquo;inscription a été désactivée. Seuls les membres de ce site peuvent laisser un commentaire.)"
+msgstr ""
+" (L&rsquo;inscription a été désactivée. Seuls les membres de ce site peuvent "
+"laisser un commentaire.)"
 
 #: wp-admin/options-discussion.php:74
 msgid "Automatically close comments on articles older than %s days"
-msgstr "Fermer automatiquement les commentaires pour les articles vieux de plus de %s jours"
-
-#: wp-admin/options-discussion.php:90
+msgstr ""
+"Fermer automatiquement les commentaires pour les articles vieux de plus de "
+"%s jours"
+
+#: wp-admin/options-discussion.php:91
 msgid "Enable threaded (nested) comments %s levels deep"
 msgstr "Activer les commentaires imbriqués jusqu&rsquo;à %s niveaux"
 
 # va avec "page"
-#: wp-admin/options-discussion.php:99
+#: wp-admin/options-discussion.php:101
 msgid "last"
 msgstr "dernière"
 
 # va avec "page"
-#: wp-admin/options-discussion.php:101
+#: wp-admin/options-discussion.php:103
 msgid "first"
 msgstr "première"
 
-#: wp-admin/options-discussion.php:103
-msgid "Break comments into pages with %1$s top level comments per page and the %2$s page displayed by default"
-msgstr "Diviser les commentaires en pages, avec %1$s commentaires de premier niveau par page et la %2$s page affichée par défaut"
+#: wp-admin/options-discussion.php:105
+msgid ""
+"Break comments into pages with %1$s top level comments per page and the %2$s "
+"page displayed by default"
+msgstr ""
+"Diviser les commentaires en pages, avec %1$s commentaires de premier niveau "
+"par page et la %2$s page affichée par défaut"
 
 # va avec "commentaire le plus ..."
-#: wp-admin/options-discussion.php:111
+#: wp-admin/options-discussion.php:113
 msgid "older"
 msgstr "ancien"
 
 # va avec "commentaire le plus ..."
-#: wp-admin/options-discussion.php:113
+#: wp-admin/options-discussion.php:115
 msgid "newer"
 msgstr "récent"
 
-#: wp-admin/options-discussion.php:115
-msgid "Comments should be displayed with the %s comments at the top of each page"
+#: wp-admin/options-discussion.php:117
+msgid ""
+"Comments should be displayed with the %s comments at the top of each page"
 msgstr "Les commentaires doivent être affichés avec le plus %s en premier"
 
-#: wp-admin/options-discussion.php:121
-#: wp-admin/options-discussion.php:122
+#: wp-admin/options-discussion.php:123 wp-admin/options-discussion.php:124
 msgid "E-mail me whenever"
 msgstr "M&rsquo;envoyer un message lorsque"
 
-#: wp-admin/options-discussion.php:125
+#: wp-admin/options-discussion.php:127
 msgid "Anyone posts a comment"
 msgstr "Un nouveau commentaire est publié"
 
-#: wp-admin/options-discussion.php:129
+#: wp-admin/options-discussion.php:131
 msgid "A comment is held for moderation"
 msgstr "Un commentaire est en attente de modération"
 
-#: wp-admin/options-discussion.php:133
-#: wp-admin/options-discussion.php:134
+#: wp-admin/options-discussion.php:135 wp-admin/options-discussion.php:136
 msgid "Before a comment appears"
 msgstr "Avant la publication d&rsquo;un commentaire"
 
-#: wp-admin/options-discussion.php:137
+#: wp-admin/options-discussion.php:139
 msgid "An administrator must always approve the comment"
 msgstr "Un administrateur doit toujours approuver le commentaire"
 
-#: wp-admin/options-discussion.php:139
+#: wp-admin/options-discussion.php:141
 msgid "Comment author must have a previously approved comment"
-msgstr "L&rsquo;auteur d&rsquo;un commentaire doit avoir déjà au moins un commentaire approuvé"
-
-#: wp-admin/options-discussion.php:143
-#: wp-admin/options-discussion.php:144
+msgstr ""
+"L&rsquo;auteur d&rsquo;un commentaire doit avoir déjà au moins un "
+"commentaire approuvé"
+
+#: wp-admin/options-discussion.php:145 wp-admin/options-discussion.php:146
 msgid "Comment Moderation"
 msgstr "Modération de commentaires"
 
-#: wp-admin/options-discussion.php:145
-msgid "Hold a comment in the queue if it contains %s or more links. (A common characteristic of comment spam is a large number of hyperlinks.)"
-msgstr "Garder un commentaire dans la file d&rsquo;attente s&rsquo;il contient plus de %s lien(s) (une des caractéristiques typiques d&rsquo;un commentaire indésirable (spam) est son nombre important de liens)"
-
 #: wp-admin/options-discussion.php:147
-msgid "When a comment contains any of these words in its content, name, URL, e-mail, or IP, it will be held in the <a href=\"edit-comments.php?comment_status=moderated\">moderation queue</a>. One word or IP per line. It will match inside words, so &#8220;press&#8221; will match &#8220;WordPress&#8221;."
-msgstr "Lorsqu&rsquo;un commentaire contient l&rsquo;un de ces mots dans son contenu, son nom, son adresse web, son adresse de messagerie, ou son IP, celui-ci est retenu dans la <a href=\"edit-comments.php?comment_status=moderated\">file de modération</a>. Un seul mot ou une seule IP par ligne. Cette fonction reconnaît l&rsquo;intérieur des mots, donc &laquo;&nbsp;press&nbsp;&raquo; suffira pour reconnaître &laquo;&nbsp;WordPress&nbsp;&raquo;."
-
-#: wp-admin/options-discussion.php:154
-#: wp-admin/options-discussion.php:155
+msgid ""
+"Hold a comment in the queue if it contains %s or more links. (A common "
+"characteristic of comment spam is a large number of hyperlinks.)"
+msgstr ""
+"Garder un commentaire dans la file d&rsquo;attente s&rsquo;il contient plus "
+"de %s lien(s) (une des caractéristiques typiques d&rsquo;un commentaire "
+"indésirable (spam) est son nombre important de liens)"
+
+#: wp-admin/options-discussion.php:149
+msgid ""
+"When a comment contains any of these words in its content, name, URL, e-"
+"mail, or IP, it will be held in the <a href=\"edit-comments.php?"
+"comment_status=moderated\">moderation queue</a>. One word or IP per line. It "
+"will match inside words, so &#8220;press&#8221; will match &#8220;"
+"WordPress&#8221;."
+msgstr ""
+"Lorsqu&rsquo;un commentaire contient l&rsquo;un de ces mots dans son "
+"contenu, son nom, son adresse web, son adresse de messagerie, ou son IP, "
+"celui-ci est retenu dans la <a href=\"edit-comments.php?"
+"comment_status=moderated\">file de modération</a>. Un seul mot ou une seule "
+"IP par ligne. Cette fonction reconnaît l&rsquo;intérieur des mots, donc "
+"&laquo;&nbsp;press&nbsp;&raquo; suffira pour reconnaître &laquo;&nbsp;"
+"WordPress&nbsp;&raquo;."
+
+#: wp-admin/options-discussion.php:156 wp-admin/options-discussion.php:157
 msgid "Comment Blacklist"
 msgstr "Liste noire pour les commentaires"
 
-#: wp-admin/options-discussion.php:156
-msgid "When a comment contains any of these words in its content, name, URL, e-mail, or IP, it will be marked as spam. One word or IP per line. It will match inside words, so &#8220;press&#8221; will match &#8220;WordPress&#8221;."
-msgstr "Lorsqu&rsquo;un commentaire contient l&rsquo;un de ces mots dans son contenu, nom, adresse web, adresse de messagerie, ou IP, le marquer comme indésirable. Un seul mot ou IP par ligne. Il reconnaît l&rsquo;intérieur des mots, donc &laquo; press &raquo; suffira pour reconnaître &laquo; WordPress &raquo;."
-
-#: wp-admin/options-discussion.php:165
+#: wp-admin/options-discussion.php:158
+msgid ""
+"When a comment contains any of these words in its content, name, URL, e-"
+"mail, or IP, it will be marked as spam. One word or IP per line. It will "
+"match inside words, so &#8220;press&#8221; will match &#8220;"
+"WordPress&#8221;."
+msgstr ""
+"Lorsqu&rsquo;un commentaire contient l&rsquo;un de ces mots dans son "
+"contenu, nom, adresse web, adresse de messagerie, ou IP, le marquer comme "
+"indésirable. Un seul mot ou IP par ligne. Il reconnaît l&rsquo;intérieur des "
+"mots, donc &laquo; press &raquo; suffira pour reconnaître &laquo; WordPress "
+"&raquo;."
+
+#: wp-admin/options-discussion.php:167
 msgid "Avatars"
 msgstr "Avatars"
 
-#: wp-admin/options-discussion.php:167
-msgid "An avatar is an image that follows you from weblog to weblog appearing beside your name when you comment on avatar enabled sites. Here you can enable the display of avatars for people who comment on your site."
-msgstr "Un avatar est une image qui vous suit de site en site, apparaissant à côté de votre nom quand vous laissez un commentaire sur un site capable de le reconnaître. Vous pouvez ici activer l&rsquo;affichage des avatars des gens qui laissent un commentaire sur votre site."
-
-#: wp-admin/options-discussion.php:173
-#: wp-admin/options-discussion.php:174
+#: wp-admin/options-discussion.php:169
+msgid ""
+"An avatar is an image that follows you from weblog to weblog appearing "
+"beside your name when you comment on avatar enabled sites. Here you can "
+"enable the display of avatars for people who comment on your site."
+msgstr ""
+"Un avatar est une image qui vous suit de site en site, apparaissant à côté "
+"de votre nom quand vous laissez un commentaire sur un site capable de le "
+"reconnaître. Vous pouvez ici activer l&rsquo;affichage des avatars des gens "
+"qui laissent un commentaire sur votre site."
+
+#: wp-admin/options-discussion.php:175 wp-admin/options-discussion.php:176
 msgid "Avatar Display"
 msgstr "Affichage des avatars"
 
-#: wp-admin/options-discussion.php:176
-msgid "Don&#8217;t show Avatars"
-msgstr "Ne pas afficher les avatars"
-
-#: wp-admin/options-discussion.php:176
+#: wp-admin/options-discussion.php:179
 msgid "Show Avatars"
 msgstr "Afficher les avatars"
 
-#: wp-admin/options-discussion.php:185
-#: wp-admin/options-discussion.php:186
+#: wp-admin/options-discussion.php:184 wp-admin/options-discussion.php:185
 msgid "Maximum Rating"
 msgstr "Classement maximal"
 
 #. translators: Content suitability rating: http:bit.ly/89QxZA
-#: wp-admin/options-discussion.php:191
+#: wp-admin/options-discussion.php:190
 msgid "G &#8212; Suitable for all audiences"
 msgstr "G &#8212; Visibles par tous"
 
 #. translators: Content suitability rating: http:bit.ly/89QxZA
-#: wp-admin/options-discussion.php:193
+#: wp-admin/options-discussion.php:192
 msgid "PG &#8212; Possibly offensive, usually for audiences 13 and above"
-msgstr "PG &#8212; Possiblement offensants, réservés normalement aux personnes de 13 ans et plus"
+msgstr ""
+"PG &#8212; Possiblement offensants, réservés normalement aux personnes de 13 "
+"ans et plus"
 
 #. translators: Content suitability rating: http:bit.ly/89QxZA
-#: wp-admin/options-discussion.php:195
+#: wp-admin/options-discussion.php:194
 msgid "R &#8212; Intended for adult audiences above 17"
 msgstr "R &#8212; Réservés aux personnes de plus de 17 ans"
 
 #. translators: Content suitability rating: http:bit.ly/89QxZA
-#: wp-admin/options-discussion.php:197
+#: wp-admin/options-discussion.php:196
 msgid "X &#8212; Even more mature than above"
 msgstr "X &#8212; Réservés aux adultes"
 
-#: wp-admin/options-discussion.php:208
-#: wp-admin/options-discussion.php:209
+#: wp-admin/options-discussion.php:207 wp-admin/options-discussion.php:208
 msgid "Default Avatar"
 msgstr "Avatar par défaut"
 
-#: wp-admin/options-discussion.php:211
-msgid "For users without a custom avatar of their own, you can either display a generic logo or a generated one based on their e-mail address."
-msgstr "Les utilisateurs n&rsquo;ayant pas d&rsquo;avatar peuvent se voir attribuer un logo générique, ou un avatar généré à partir de leur adresse de messagerie."
+#: wp-admin/options-discussion.php:210
+msgid ""
+"For users without a custom avatar of their own, you can either display a "
+"generic logo or a generated one based on their e-mail address."
+msgstr ""
+"Les utilisateurs n&rsquo;ayant pas d&rsquo;avatar peuvent se voir attribuer "
+"un logo générique, ou un avatar généré à partir de leur adresse de "
+"messagerie."
+
+#: wp-admin/options-discussion.php:214
+msgid "Mystery Man"
+msgstr "Homme mystère"
 
 #: wp-admin/options-discussion.php:215
-msgid "Mystery Man"
-msgstr "Homme mystère"
+msgid "Blank"
+msgstr "Vide"
 
 #: wp-admin/options-discussion.php:216
-msgid "Blank"
-msgstr "Vide"
+msgid "Gravatar Logo"
+msgstr "Logo Gravatar"
 
 #: wp-admin/options-discussion.php:217
-msgid "Gravatar Logo"
-msgstr "Logo Gravatar"
-
-#: wp-admin/options-discussion.php:218
 msgid "Identicon (Generated)"
 msgstr "Identicon (généré)"
 
-#: wp-admin/options-discussion.php:219
+#: wp-admin/options-discussion.php:218
 msgid "Wavatar (Generated)"
 msgstr "Wavatar (généré)"
 
+#: wp-admin/options-discussion.php:219
+msgid "MonsterID (Generated)"
+msgstr "MonsterID (généré)"
+
 #: wp-admin/options-discussion.php:220
-msgid "MonsterID (Generated)"
-msgstr "MonsterID (généré)"
-
-#: wp-admin/options-discussion.php:221
 msgid "Retro (Generated)"
 msgstr "Rétro (généré)"
 
@@ -7591,126 +9324,183 @@
 msgid "Y-m-d G:i:s"
 msgstr "Y-m-d G:i:s"
 
+#: wp-admin/options-general.php:60
+msgid ""
+"The fields on this screen determine some of the basics of your site setup."
+msgstr ""
+"Les champs de cet écran déterminent certains des réglages de base de votre "
+"site."
+
 #: wp-admin/options-general.php:61
-msgid "The fields on this screen determine some of the basics of your site setup."
-msgstr "Les champs de cet écran déterminent certains des réglages de base de votre site."
-
-#: wp-admin/options-general.php:62
-msgid "Most themes display the site title at the top of every page, in the title bar of the browser, and as the identifying name for syndicated feeds. The tagline is also displayed by many themes."
-msgstr "La plupart des thèmes affichent le titre du site en haut de chaque page, dans la barre de titre du navigateur, et en tant qu&rsquo;identifiant pour les flux de syndication, sauf si votre thème en décide autrement. Le slogan est également utilisé par de nombreux thèmes."
+msgid ""
+"Most themes display the site title at the top of every page, in the title "
+"bar of the browser, and as the identifying name for syndicated feeds. The "
+"tagline is also displayed by many themes."
+msgstr ""
+"La plupart des thèmes affichent le titre du site en haut de chaque page, "
+"dans la barre de titre du navigateur, et en tant qu&rsquo;identifiant pour "
+"les flux de syndication, sauf si votre thème en décide autrement. Le slogan "
+"est également utilisé par de nombreux thèmes."
+
+#: wp-admin/options-general.php:64
+msgid ""
+"The WordPress URL and the Site URL can be the same (example.com) or "
+"different; for example, having the WordPress core files (example.com/"
+"wordpress) in a subdirectory instead of the root directory."
+msgstr ""
+"L&rsquo;adresse web de WordPress et celle du site peuvent être identiques "
+"(<code>exemple.fr</code>) ou différentes. Ainsi, vous pourriez avoir les "
+"fichiers de WordPress dans un sous-dossier (<code>exemple.fr/wordpress</"
+"code>) plutôt qu&rsquo;à la racine du site."
 
 #: wp-admin/options-general.php:65
-msgid "The WordPress URL and the Site URL can be the same (example.com) or different; for example, having the WordPress core files (example.com/wordpress) in a subdirectory instead of the root directory."
-msgstr "L&rsquo;adresse web de WordPress et celle du site peuvent être identiques (<code>exemple.fr</code>) ou différentes. Ainsi, vous pourriez avoir les fichiers de WordPress dans un sous-dossier (<code>exemple.fr/wordpress</code>) plutôt qu&rsquo;à la racine du site."
-
-#: wp-admin/options-general.php:66
-msgid "If you want site visitors to be able to register themselves, as opposed to by the site administrator, check the membership box. A default user role can be set for all new users, whether self-registered or registered by the site admin."
-msgstr "Si vous voulez que les visiteurs du site puissent s&rsquo;inscrire eux-mêmes plutôt que de devoir être inscrits par l&rsquo;administrateur du site, cochez la case &laquo;&nbsp;Inscription&nbsp;&raquo;. Un rôle d&rsquo;utilisateur par défaut peut être assigné pour tout nouveau inscrit, qu&rsquo;il se soit enregistré lui-même ou par le biais de l&rsquo;administrateur."
-
-#: wp-admin/options-general.php:69
+msgid ""
+"If you want site visitors to be able to register themselves, as opposed to "
+"by the site administrator, check the membership box. A default user role can "
+"be set for all new users, whether self-registered or registered by the site "
+"admin."
+msgstr ""
+"Si vous voulez que les visiteurs du site puissent s&rsquo;inscrire eux-mêmes "
+"plutôt que de devoir être inscrits par l&rsquo;administrateur du site, "
+"cochez la case &laquo;&nbsp;Inscription&nbsp;&raquo;. Un rôle d&rsquo;"
+"utilisateur par défaut peut être assigné pour tout nouveau inscrit, qu&rsquo;"
+"il se soit enregistré lui-même ou par le biais de l&rsquo;administrateur."
+
+#: wp-admin/options-general.php:68
 msgid "UTC means Coordinated Universal Time."
 msgstr "UTC signifie &laquo;&nbsp;Temps universel coordonné&nbsp;&raquo;."
 
-#: wp-admin/options-general.php:80
-msgid "<a href=\"http://codex.wordpress.org/Settings_General_Screen\" target=\"_blank\">Documentation on General Settings</a>"
-msgstr "<a href=\"http://codex.wordpress.org/Settings_General_Screen\" target=\"_blank\">Documentation sur les réglages généraux (en)</a>"
-
-#: wp-admin/options-general.php:102
+#: wp-admin/options-general.php:79
+msgid ""
+"<a href=\"http://codex.wordpress.org/Settings_General_Screen\" target="
+"\"_blank\">Documentation on General Settings</a>"
+msgstr ""
+"<a href=\"http://codex.wordpress.org/Settings_General_Screen\" target="
+"\"_blank\">Documentation sur les réglages généraux (en)</a>"
+
+#: wp-admin/options-general.php:101
 msgid "In a few words, explain what this site is about."
 msgstr "En quelques mots, décrivez la raison d&rsquo;être de ce site."
 
-#: wp-admin/options-general.php:106
+#: wp-admin/options-general.php:105
 msgid "WordPress Address (URL)"
 msgstr "Adresse web de WordPress (URL)"
 
-#: wp-admin/options-general.php:110
+#: wp-admin/options-general.php:109
 msgid "Site Address (URL)"
 msgstr "Adresse web du site (URL)"
 
-#: wp-admin/options-general.php:112
-msgid "Enter the address here if you want your site homepage <a href=\"http://codex.wordpress.org/Giving_WordPress_Its_Own_Directory\">to be different from the directory</a> you installed WordPress."
-msgstr "Si vous souhaitez que l&rsquo;adresse de la page d&rsquo;accueil de votre site <a href=\"http://codex.wordpress.org/Giving_WordPress_Its_Own_Directory\">soit différente du répertoire (en)</a> où vous avez installé WordPress, saisissez cette adresse ici."
-
-#: wp-admin/options-general.php:115
-#: wp-admin/options-general.php:134
+#: wp-admin/options-general.php:111
+msgid ""
+"Enter the address here if you want your site homepage <a href=\"http://codex."
+"wordpress.org/Giving_WordPress_Its_Own_Directory\">to be different from the "
+"directory</a> you installed WordPress."
+msgstr ""
+"Si vous souhaitez que l&rsquo;adresse de la page d&rsquo;accueil de votre "
+"site <a href=\"http://codex.wordpress.org/Giving_WordPress_Its_Own_Directory"
+"\">soit différente du répertoire (en)</a> où vous avez installé WordPress, "
+"saisissez cette adresse ici."
+
+#: wp-admin/options-general.php:114 wp-admin/options-general.php:133
 msgid "E-mail Address"
 msgstr "Adresse de messagerie"
 
-#: wp-admin/options-general.php:117
+#: wp-admin/options-general.php:116
 msgid "This address is used for admin purposes, like new user notification."
-msgstr "Cette adresse n&rsquo;est utilisée que pour l&rsquo;administration du site&nbsp;; par exemple, la notification de l&rsquo;inscription d&rsquo;un nouvel utilisateur."
-
-#: wp-admin/options-general.php:120
-#: wp-admin/options-general.php:121
+msgstr ""
+"Cette adresse n&rsquo;est utilisée que pour l&rsquo;administration du "
+"site&nbsp;; par exemple, la notification de l&rsquo;inscription d&rsquo;un "
+"nouvel utilisateur."
+
+#: wp-admin/options-general.php:119 wp-admin/options-general.php:120
 msgid "Membership"
 msgstr "Inscription"
 
-#: wp-admin/options-general.php:123
+#: wp-admin/options-general.php:122
 msgid "Anyone can register"
 msgstr "Tout le monde peut s&rsquo;enregistrer"
 
-#: wp-admin/options-general.php:127
+#: wp-admin/options-general.php:126
 msgid "New User Default Role"
 msgstr "Rôle par défaut de tout nouvel utilisateur"
 
-#: wp-admin/options-general.php:136
-msgid "This address is used for admin purposes. If you change this we will send you an e-mail at your new address to confirm it. <strong>The new address will not become active until confirmed.</strong>"
-msgstr "Cette adresse est utilisée à des fins d&rsquo;administration. Si vous la modifiez, nous enverrons un message à la nouvelle adresse afin de la confirmer. <strong>La nouvelle adresse ne sera pas active tant que vous ne l&rsquo;aurez pas confirmée.</strong>"
-
-#: wp-admin/options-general.php:141
-msgid "There is a pending change of the admin e-mail to <code>%1$s</code>. <a href=\"%2$s\">Cancel</a>"
-msgstr "Il y a une modification de l&rsquo;adresse de contact de l&rsquo;administrateur en cours, en faveur de <code>%1$s</code>.  <a href=\"%2$s\">Annuler</a>"
-
-#: wp-admin/options-general.php:169
+#: wp-admin/options-general.php:135
+msgid ""
+"This address is used for admin purposes. If you change this we will send you "
+"an e-mail at your new address to confirm it. <strong>The new address will "
+"not become active until confirmed.</strong>"
+msgstr ""
+"Cette adresse est utilisée à des fins d&rsquo;administration. Si vous la "
+"modifiez, nous enverrons un message à la nouvelle adresse afin de la "
+"confirmer. <strong>La nouvelle adresse ne sera pas active tant que vous ne "
+"l&rsquo;aurez pas confirmée.</strong>"
+
+#: wp-admin/options-general.php:140
+msgid ""
+"There is a pending change of the admin e-mail to <code>%1$s</code>. <a href="
+"\"%2$s\">Cancel</a>"
+msgstr ""
+"Il y a une modification de l&rsquo;adresse de contact de l&rsquo;"
+"administrateur en cours, en faveur de <code>%1$s</code>. <a href=\"%2$s"
+"\">Annuler</a>"
+
+#: wp-admin/options-general.php:168
 msgid "Timezone"
 msgstr "Fuseau horaire"
 
-#: wp-admin/options-general.php:176
-msgid "<abbr title=\"Coordinated Universal Time\">UTC</abbr> time is <code>%s</code>"
-msgstr " L&rsquo;heure <abbr title=\"Temps universel coordonné\">UTC</abbr> actuelle est <code>%s</code>"
-
-#: wp-admin/options-general.php:178
+#: wp-admin/options-general.php:175
+msgid ""
+"<abbr title=\"Coordinated Universal Time\">UTC</abbr> time is <code>%s</code>"
+msgstr ""
+" L&rsquo;heure <abbr title=\"Temps universel coordonné\">UTC</abbr> actuelle "
+"est <code>%s</code>"
+
+#: wp-admin/options-general.php:177
 msgid "Local time is <code>%1$s</code>"
 msgstr "L&rsquo;heure locale actuelle est <code>%1$s</code>"
 
-#: wp-admin/options-general.php:180
+#: wp-admin/options-general.php:179
 msgid "Choose a city in the same timezone as you."
 msgstr "Choisissez une ville dans le même fuseau horaire que le vôtre."
 
-#: wp-admin/options-general.php:189
+#: wp-admin/options-general.php:188
 msgid "This timezone is currently in daylight saving time."
 msgstr "Ce fuseau horaire est actuellement à l&rsquo;heure d&rsquo;été."
 
-#: wp-admin/options-general.php:191
+#: wp-admin/options-general.php:190
 msgid "This timezone is currently in standard time."
 msgstr "Ce fuseau horaire est actuellement à l&rsquo;heure d&rsquo;hiver."
 
-#: wp-admin/options-general.php:212
+#: wp-admin/options-general.php:211
 msgid "Daylight saving time begins on: <code>%s</code>."
 msgstr "Le passage à l&rsquo;heure d&rsquo;été se fait le <code>%s</code>."
 
-#: wp-admin/options-general.php:213
+#: wp-admin/options-general.php:212
 msgid "Standard time begins on: <code>%s</code>."
-msgstr "Le passage à l&rsquo;heure d&rsquo;hiver se fait le&nbsp;: <code>%s</code>."
-
-#: wp-admin/options-general.php:217
+msgstr ""
+"Le passage à l&rsquo;heure d&rsquo;hiver se fait le&nbsp;: <code>%s</code>."
+
+#: wp-admin/options-general.php:216
 msgid "This timezone does not observe daylight saving time."
 msgstr "Ce fuseau horaire n&rsquo;a pas d&rsquo;heure d&rsquo;été"
 
-#: wp-admin/options-general.php:254
-#: wp-admin/options-general.php:286
+#: wp-admin/options-general.php:253 wp-admin/options-general.php:285
 msgid "Custom:"
 msgstr "Personnalisé&nbsp;:"
 
-#: wp-admin/options-general.php:256
-msgid "<a href=\"http://codex.wordpress.org/Formatting_Date_and_Time\">Documentation on date and time formatting</a>."
-msgstr "<a href=\"http://codex.wordpress.org/Formatting_Date_and_Time\">Documentation sur le format des dates (en)</a>."
-
-#: wp-admin/options-general.php:293
+#: wp-admin/options-general.php:255
+msgid ""
+"<a href=\"http://codex.wordpress.org/Formatting_Date_and_Time"
+"\">Documentation on date and time formatting</a>."
+msgstr ""
+"<a href=\"http://codex.wordpress.org/Formatting_Date_and_Time"
+"\">Documentation sur le format des dates (en)</a>."
+
+#: wp-admin/options-general.php:292
 msgid "Week Starts On"
 msgstr "La semaine débute&nbsp;le"
 
-#: wp-admin/options-general.php:309
+#: wp-admin/options-general.php:308
 msgid "Site Language"
 msgstr "Langue du site"
 
@@ -7719,103 +9509,95 @@
 msgstr "Réglages des médias"
 
 #: wp-admin/options-media.php:18
-msgid "You can set maximum sizes for images inserted into your written content; you can also insert an image as Full Size."
-msgstr "Vous pouvez indiquer une taille maximale pour les images insérées dans votre contenu textuel. Vous pourrez insérer l&rsquo;image dans sa taille d&rsquo;origine."
-
-#: wp-admin/options-media.php:19
-msgid "The Embed option allows you embed a video, image, or other media content into your content automatically by typing the URL (of the web page where the file lives) on its own line when you create your content."
-msgstr "L&rsquo;option &laquo;&nbsp;Affichage automatique&nbsp;&raquo; tentera de convertir tout lien vers une image, une image ou un autre type de média, en code qui affichera effectivement le fichier dans l&rsquo;article ou la page. Saisissez simplement l&rsquo;adresse web du contenu dans sa propre ligne quand vous écrivez le contenu."
-
-#: wp-admin/options-media.php:22
-msgid "If you do not set the maximum embed size, it will be automatically sized to fit into your content area."
-msgstr "Si vous n&rsquo;indiquez pas taille maximale d&rsquo;affichage, le fichier sera automatiquement ajusté à la taille de votre zone de contenu."
-
-#: wp-admin/options-media.php:27
-msgid "Uploading Files allows you to choose the folder and path for storing your uploaded files."
-msgstr "&laquo;&nbsp;Envoi de fichiers&nbsp;&raquo; vous permet de choisir le dossier et le chemin de stockage de vos fichiers mis en ligne."
-
-#: wp-admin/options-media.php:40
-msgid "<a href=\"http://codex.wordpress.org/Settings_Media_Screen\" target=\"_blank\">Documentation on Media Settings</a>"
-msgstr "<a href=\"http://codex.wordpress.org/Settings_Media_Screen\" target=\"_blank\">Documentation sur les réglages des médias (en)</a>"
-
-#: wp-admin/options-media.php:55
+msgid ""
+"You can set maximum sizes for images inserted into your written content; you "
+"can also insert an image as Full Size."
+msgstr ""
+"Vous pouvez indiquer une taille maximale pour les images insérées dans votre "
+"contenu textuel. Vous pourrez insérer l&rsquo;image dans sa taille d&rsquo;"
+"origine."
+
+#: wp-admin/options-media.php:21
+msgid ""
+"Uploading Files allows you to choose the folder and path for storing your "
+"uploaded files."
+msgstr ""
+"&laquo;&nbsp;Envoi de fichiers&nbsp;&raquo; vous permet de choisir le "
+"dossier et le chemin de stockage de vos fichiers mis en ligne."
+
+#: wp-admin/options-media.php:34
+msgid ""
+"<a href=\"http://codex.wordpress.org/Settings_Media_Screen\" target=\"_blank"
+"\">Documentation on Media Settings</a>"
+msgstr ""
+"<a href=\"http://codex.wordpress.org/Settings_Media_Screen\" target=\"_blank"
+"\">Documentation sur les réglages des médias (en)</a>"
+
+#: wp-admin/options-media.php:49
 msgid "Image sizes"
 msgstr "Taille des images"
 
-#: wp-admin/options-media.php:56
-msgid "The sizes listed below determine the maximum dimensions in pixels to use when inserting an image into the body of a post."
-msgstr "Les tailles précisées ci-dessous déterminent les dimensions maximales (en pixels) à utiliser lors de l&rsquo;insertion d&rsquo;une image dans le corps d&rsquo;un article."
-
-#: wp-admin/options-media.php:60
+#: wp-admin/options-media.php:50
+msgid ""
+"The sizes listed below determine the maximum dimensions in pixels to use "
+"when inserting an image into the body of a post."
+msgstr ""
+"Les tailles précisées ci-dessous déterminent les dimensions maximales (en "
+"pixels) à utiliser lors de l&rsquo;insertion d&rsquo;une image dans le corps "
+"d&rsquo;un article."
+
+#: wp-admin/options-media.php:54
 msgid "Thumbnail size"
 msgstr "Taille des miniatures"
 
-#: wp-admin/options-media.php:67
-msgid "Crop thumbnail to exact dimensions (normally thumbnails are proportional)"
-msgstr "Recadrer les images pour parvenir aux dimensions exactes (normalement, les miniatures sont proportionnées)"
-
-#: wp-admin/options-media.php:72
-#: wp-admin/options-media.php:73
+#: wp-admin/options-media.php:61
+msgid ""
+"Crop thumbnail to exact dimensions (normally thumbnails are proportional)"
+msgstr ""
+"Recadrer les images pour parvenir aux dimensions exactes (normalement, les "
+"miniatures sont proportionnées)"
+
+#: wp-admin/options-media.php:66 wp-admin/options-media.php:67
 msgid "Medium size"
 msgstr "Taille moyenne"
 
-#: wp-admin/options-media.php:74
-#: wp-admin/options-media.php:84
+#: wp-admin/options-media.php:68 wp-admin/options-media.php:78
 msgid "Max Width"
 msgstr "Largeur maximale"
 
-#: wp-admin/options-media.php:76
-#: wp-admin/options-media.php:86
+#: wp-admin/options-media.php:70 wp-admin/options-media.php:80
 msgid "Max Height"
 msgstr "Hauteur maximale"
 
-#: wp-admin/options-media.php:82
-#: wp-admin/options-media.php:83
+#: wp-admin/options-media.php:76 wp-admin/options-media.php:77
 msgid "Large size"
 msgstr "Grande taille"
 
-#: wp-admin/options-media.php:94
+#: wp-admin/options-media.php:89
 msgid "Embeds"
 msgstr "Affichages distants"
 
-#: wp-admin/options-media.php:99
-msgid "Auto-embeds"
-msgstr "Affichage automatique"
-
-#: wp-admin/options-media.php:100
-#: wp-admin/options-media.php:101
-msgid "When possible, embed the media content from a URL directly onto the page. For example: links to Flickr and YouTube."
-msgstr "Si vous en avez la possibilité, pensez à inclure votre contenu multimédia dans votre page directement à partir de son URL. Par exemple, des liens vers Flickr, YouTube ou Dailymotion."
-
-#: wp-admin/options-media.php:106
-msgid "Maximum embed size"
-msgstr "Taille maximale d&rsquo;affichage"
-
-#: wp-admin/options-media.php:113
-msgid "If the width value is left blank, embeds will default to the max width of your theme."
-msgstr "Si la largeur est laissée vide, les affichages utiliseront par défaut la largeur maximale de votre thème."
-
-#: wp-admin/options-media.php:122
+#: wp-admin/options-media.php:96
 msgid "Uploading Files"
 msgstr "Envoi de fichiers"
 
-#: wp-admin/options-media.php:125
+#: wp-admin/options-media.php:103
 msgid "Store uploads in this folder"
 msgstr "Stocker les fichiers envoyés dans ce dossier"
 
-#: wp-admin/options-media.php:127
+#: wp-admin/options-media.php:105
 msgid "Default is <code>wp-content/uploads</code>"
 msgstr "Par défaut, <code>wp-content/uploads</code>"
 
-#: wp-admin/options-media.php:132
+#: wp-admin/options-media.php:110
 msgid "Full URL path to files"
 msgstr "Adresse web complète pour les fichiers"
 
-#: wp-admin/options-media.php:134
+#: wp-admin/options-media.php:112
 msgid "Configuring this is optional. By default, it should be blank."
 msgstr "Ce réglage est facultatif. Par défaut, ce champ devrait être vide."
 
-#: wp-admin/options-media.php:142
+#: wp-admin/options-media.php:120
 msgid "Organize my uploads into month- and year-based folders"
 msgstr "Organiser mes fichiers envoyés dans des dossiers mensuels et annuels"
 
@@ -7824,410 +9606,667 @@
 msgstr "Options des permaliens"
 
 #: wp-admin/options-permalink.php:21
-msgid "Permalinks are the permanent URLs to your individual pages and blog posts, as well as your category and tag archives. A permalink is the web address used to link to your content. The URL to each post should be permanent, and never change &#8212; hence the name permalink."
-msgstr "Les permaliens sont des adresses Web permanentes vers vos pages individuelles et vos articles, ainsi que vos archives de catégorie et de mot-clef. Ils offrent un lien plus compréhensible vers votre contenu. Les adresses de chaque article devraient être permanentes et ne jamais changer, d&rsquo;où le nom de permalien."
+msgid ""
+"Permalinks are the permanent URLs to your individual pages and blog posts, "
+"as well as your category and tag archives. A permalink is the web address "
+"used to link to your content. The URL to each post should be permanent, and "
+"never change &#8212; hence the name permalink."
+msgstr ""
+"Les permaliens sont des adresses Web permanentes vers vos pages "
+"individuelles et vos articles, ainsi que vos archives de catégorie et de mot-"
+"clef. Ils offrent un lien plus compréhensible vers votre contenu. Les "
+"adresses de chaque article devraient être permanentes et ne jamais changer, "
+"d&rsquo;où le nom de permalien."
 
 #: wp-admin/options-permalink.php:22
-msgid "This screen allows you to choose your default permalink structure. You can choose from common settings or create custom URL structures."
-msgstr "Cet écran vous permet de choisir la structure de permalien par défaut. Vous pouvez choisir les réglages les plus courants, ou créer la vôtre."
-
-#: wp-admin/options-permalink.php:28
-#: wp-admin/options-permalink.php:192
+msgid ""
+"This screen allows you to choose your default permalink structure. You can "
+"choose from common settings or create custom URL structures."
+msgstr ""
+"Cet écran vous permet de choisir la structure de permalien par défaut. Vous "
+"pouvez choisir les réglages les plus courants, ou créer la vôtre."
+
+#: wp-admin/options-permalink.php:28 wp-admin/options-permalink.php:191
 msgid "Common Settings"
 msgstr "Réglages les plus courants"
 
 #: wp-admin/options-permalink.php:29
-msgid "Many people choose to use &#8220;pretty permalinks,&#8221; URLs that contain useful information such as the post title rather than generic post ID numbers. You can choose from any of the permalink formats under Common Settings, or can craft your own if you select Custom Structure."
-msgstr "De nombreuses personnes préfèrent utiliser les liens simplifiés (\"pretty permalinks\"), qui contiennent des informations utiles, telles que le titre de l&rsquo;article, plutôt qu&rsquo;un numéro d&rsquo;article générique. Vous pouvez choisir n&rsquo;importe quel type de format de permalien parmi les réglages les plus courants, ou concevoir votre propre structure personnalisée."
+msgid ""
+"Many people choose to use &#8220;pretty permalinks,&#8221; URLs that contain "
+"useful information such as the post title rather than generic post ID "
+"numbers. You can choose from any of the permalink formats under Common "
+"Settings, or can craft your own if you select Custom Structure."
+msgstr ""
+"De nombreuses personnes préfèrent utiliser les liens simplifiés (\"pretty "
+"permalinks\"), qui contiennent des informations utiles, telles que le titre "
+"de l&rsquo;article, plutôt qu&rsquo;un numéro d&rsquo;article générique. "
+"Vous pouvez choisir n&rsquo;importe quel type de format de permalien parmi "
+"les réglages les plus courants, ou concevoir votre propre structure "
+"personnalisée."
 
 #: wp-admin/options-permalink.php:30
-msgid "If you pick an option other than Default, your general URL path with structure tags, terms surrounded by <code>%</code>, will also appear in the custom structure field and your path can be further modified there."
-msgstr "Si vous choisissez une option autre que &laquo;&nbsp;Valeur par défaut&nbsp;&raquo;, la structure de vos permaliens, avec les marqueurs utilisés (encadrés par <code>%</code>), apparaîtra dans le champ de &laquo;&nbsp;Structure personnalisée&nbsp;&raquo;, d&rsquo;où vous pourrez la modifier au plus proche de vos besoins."
+msgid ""
+"If you pick an option other than Default, your general URL path with "
+"structure tags, terms surrounded by <code>%</code>, will also appear in the "
+"custom structure field and your path can be further modified there."
+msgstr ""
+"Si vous choisissez une option autre que &laquo;&nbsp;Valeur par défaut&nbsp;"
+"&raquo;, la structure de vos permaliens, avec les marqueurs utilisés "
+"(encadrés par <code>%</code>), apparaîtra dans le champ de &laquo;&nbsp;"
+"Structure personnalisée&nbsp;&raquo;, d&rsquo;où vous pourrez la modifier au "
+"plus proche de vos besoins."
 
 #: wp-admin/options-permalink.php:31
-msgid "When you assign multiple categories or tags to a post, only one can show up in the permalink: the lowest numbered category. This applies if your custom structure includes <code>%category%</code> or <code>%tag%</code>."
-msgstr "Quand vous assignez un article à plusieurs catégories, une seule apparaîtra dans le permalien&nbsp;: la catégorie avec l&rsquo;identifiant numérique le plus bas. Idem pour les mots-clefs. Cela s&rsquo;applique si votre structure comprend <code>%category%</code> ou <code>%tag%</code>."
+msgid ""
+"When you assign multiple categories or tags to a post, only one can show up "
+"in the permalink: the lowest numbered category. This applies if your custom "
+"structure includes <code>%category%</code> or <code>%tag%</code>."
+msgstr ""
+"Quand vous assignez un article à plusieurs catégories, une seule apparaîtra "
+"dans le permalien&nbsp;: la catégorie avec l&rsquo;identifiant numérique le "
+"plus bas. Idem pour les mots-clefs. Cela s&rsquo;applique si votre structure "
+"comprend <code>%category%</code> ou <code>%tag%</code>."
 
 #: wp-admin/options-permalink.php:37
 msgid "Custom Structures"
 msgstr "Structure personnalisée"
 
 #: wp-admin/options-permalink.php:38
-msgid "The Optional fields let you customize the &#8220;category&#8221; and &#8220;tag&#8221; base names that will appear in archive URLs. For example, the page listing all posts in the &#8220;Uncategorized&#8221; category could be <code>/topics/uncategorized</code> instead of <code>/category/uncategorized</code>."
-msgstr "Les champs facultatifs, en bas de page, vous permettent de personnaliser les dénominations utilisées pour les chemins <code>/category/</code> et <code>/tags/</code> lors de l&rsquo;affichage des archives. Par exemple, la page listant tous les articles de la catégorie &laquo;&nbsp;Non classé&nbsp;&raquo; pourrait se lire comme <code>/sujet/non-classe/</code> plutôt que <code>/category/non-classe/</code>."
+msgid ""
+"The Optional fields let you customize the &#8220;category&#8221; and &#8220;"
+"tag&#8221; base names that will appear in archive URLs. For example, the "
+"page listing all posts in the &#8220;Uncategorized&#8221; category could be "
+"<code>/topics/uncategorized</code> instead of <code>/category/uncategorized</"
+"code>."
+msgstr ""
+"Les champs facultatifs, en bas de page, vous permettent de personnaliser les "
+"dénominations utilisées pour les chemins <code>/category/</code> et <code>/"
+"tags/</code> lors de l&rsquo;affichage des archives. Par exemple, la page "
+"listant tous les articles de la catégorie &laquo;&nbsp;Non classé&nbsp;"
+"&raquo; pourrait se lire comme <code>/sujet/non-classe/</code> plutôt que "
+"<code>/category/non-classe/</code>."
 
 #: wp-admin/options-permalink.php:44
-msgid "<a href=\"http://codex.wordpress.org/Settings_Permalinks_Screen\" target=\"_blank\">Documentation on Permalinks Settings</a>"
-msgstr "<a href=\"http://codex.wordpress.org/Settings_Permalinks_Screen\" target=\"_blank\">Documentation sur les réglages des permaliens (en)</a>"
+msgid ""
+"<a href=\"http://codex.wordpress.org/Settings_Permalinks_Screen\" target="
+"\"_blank\">Documentation on Permalinks Settings</a>"
+msgstr ""
+"<a href=\"http://codex.wordpress.org/Settings_Permalinks_Screen\" target="
+"\"_blank\">Documentation sur les réglages des permaliens (en)</a>"
 
 #: wp-admin/options-permalink.php:45
-msgid "<a href=\"http://codex.wordpress.org/Using_Permalinks\" target=\"_blank\">Documentation on Using Permalinks</a>"
-msgstr "<a href=\"http://codex.wordpress.org/Using_Permalinks\" target=\"_blank\">Documentation sur l&rsquo;utilisation des permaliens (en)</a>"
-
-#: wp-admin/options-permalink.php:150
+msgid ""
+"<a href=\"http://codex.wordpress.org/Using_Permalinks\" target=\"_blank"
+"\">Documentation on Using Permalinks</a>"
+msgstr ""
+"<a href=\"http://codex.wordpress.org/Using_Permalinks\" target=\"_blank"
+"\">Documentation sur l&rsquo;utilisation des permaliens (en)</a>"
+
+#: wp-admin/options-permalink.php:149
 msgid "You should update your web.config now."
 msgstr "Vous devriez mettre à jour votre fichier web.config maintenant."
 
-#: wp-admin/options-permalink.php:152
-msgid "Permalink structure updated. Remove write access on web.config file now!"
-msgstr "La structure des permaliens a été mise à jour. Pensez à retirer les droits d&rsquo;accès au fichier <code>web.config</code> dès maintenant&nbsp;!"
-
-#: wp-admin/options-permalink.php:154
-#: wp-admin/options-permalink.php:159
-#: wp-admin/options-permalink.php:162
+#: wp-admin/options-permalink.php:151
+msgid ""
+"Permalink structure updated. Remove write access on web.config file now!"
+msgstr ""
+"La structure des permaliens a été mise à jour. Pensez à retirer les droits "
+"d&rsquo;accès au fichier <code>web.config</code> dès maintenant&nbsp;!"
+
+#: wp-admin/options-permalink.php:153 wp-admin/options-permalink.php:158
+#: wp-admin/options-permalink.php:161
 msgid "Permalink structure updated."
 msgstr "Structure des permaliens enregistrée."
 
-#: wp-admin/options-permalink.php:157
+#: wp-admin/options-permalink.php:156
 msgid "You should update your .htaccess now."
 msgstr "Vous devriez mettre à jour votre fichier .htaccess maintenant."
 
-#: wp-admin/options-permalink.php:175
-msgid "By default WordPress uses web <abbr title=\"Universal Resource Locator\">URL</abbr>s which have question marks and lots of numbers in them, however WordPress offers you the ability to create a custom URL structure for your permalinks and archives. This can improve the aesthetics, usability, and forward-compatibility of your links. A <a href=\"http://codex.wordpress.org/Using_Permalinks\">number of tags are available</a>, and here are some examples to get you started."
-msgstr "Par défaut, WordPress utilise des adresses web ayant un point d&rsquo;interrogation et une suite de chiffres. Cependant, WordPress vous offre la possibilité de créer une structure d&rsquo;adresses personnalisée pour vos permaliens et archives. Ceci peut améliorer l&rsquo;esthétique, l&rsquo;utilisation et la pérennité de vos liens. De <a href=\"http://codex.wordpress.org/Using_Permalinks\">nombreux marqueurs sont disponibles (en)</a>, et nous vous donnons quelques exemples pour commencer."
-
-#: wp-admin/options-permalink.php:188
-#: wp-admin/options-permalink.php:208
+#: wp-admin/options-permalink.php:174
+msgid ""
+"By default WordPress uses web <abbr title=\"Universal Resource Locator"
+"\">URL</abbr>s which have question marks and lots of numbers in them, "
+"however WordPress offers you the ability to create a custom URL structure "
+"for your permalinks and archives. This can improve the aesthetics, "
+"usability, and forward-compatibility of your links. A <a href=\"http://codex."
+"wordpress.org/Using_Permalinks\">number of tags are available</a>, and here "
+"are some examples to get you started."
+msgstr ""
+"Par défaut, WordPress utilise des adresses web ayant un point d&rsquo;"
+"interrogation et une suite de chiffres. Cependant, WordPress vous offre la "
+"possibilité de créer une structure d&rsquo;adresses personnalisée pour vos "
+"permaliens et archives. Ceci peut améliorer l&rsquo;esthétique, l&rsquo;"
+"utilisation et la pérennité de vos liens. De <a href=\"http://codex."
+"wordpress.org/Using_Permalinks\">nombreux marqueurs sont disponibles (en)</"
+"a>, et nous vous donnons quelques exemples pour commencer."
+
+#: wp-admin/options-permalink.php:187 wp-admin/options-permalink.php:207
 msgctxt "sample permalink base"
 msgid "archives"
 msgstr "archives"
 
-#: wp-admin/options-permalink.php:199
+#: wp-admin/options-permalink.php:198
 msgid "Day and name"
 msgstr "Date et titre"
 
-#: wp-admin/options-permalink.php:200
-#: wp-admin/options-permalink.php:204
-#: wp-admin/options-permalink.php:212
+#: wp-admin/options-permalink.php:199 wp-admin/options-permalink.php:203
+#: wp-admin/options-permalink.php:211
 msgctxt "sample permalink structure"
 msgid "sample-post"
 msgstr "exemple-article"
 
-#: wp-admin/options-permalink.php:203
+#: wp-admin/options-permalink.php:202
 msgid "Month and name"
 msgstr "Mois et titre"
 
-#: wp-admin/options-permalink.php:207
+#: wp-admin/options-permalink.php:206
 msgid "Numeric"
 msgstr "Numérique"
 
-#: wp-admin/options-permalink.php:211
+#: wp-admin/options-permalink.php:210
 msgid "Post name"
 msgstr "Nom de l&rsquo;article"
 
-#: wp-admin/options-permalink.php:217
+#: wp-admin/options-permalink.php:216
 msgid "Custom Structure"
 msgstr "Structure personnalisée"
 
-#: wp-admin/options-permalink.php:227
+#: wp-admin/options-permalink.php:226
 msgid "Optional"
 msgstr "Facultatif"
 
 #. translators: %s is a placeholder that must come at the start of the URL
 #. path.
-#: wp-admin/options-permalink.php:235
-msgid "If you like, you may enter custom structures for your category and tag <abbr title=\"Universal Resource Locator\">URL</abbr>s here. For example, using <code>topics</code> as your category base would make your category links like <code>http://example.org/%stopics/uncategorized/</code>. If you leave these blank the defaults will be used."
-msgstr "Si vous le souhaitez, vous pouvez spécifier une structure personnalisée pour vos mots-clefs et de vos catégories. Par exemple, en utilisant <code>sujet</code> comme préfixe pour vos catégories, vous obtiendrez des adresses web comme&nbsp;: <code>http://exemple.fr/%ssujet/non-classe/</code>. Si vous laissez ce champ vide, la valeur par défaut sera appliquée."
+#: wp-admin/options-permalink.php:234
+msgid ""
+"If you like, you may enter custom structures for your category and tag <abbr "
+"title=\"Universal Resource Locator\">URL</abbr>s here. For example, using "
+"<code>topics</code> as your category base would make your category links "
+"like <code>http://example.org/%stopics/uncategorized/</code>. If you leave "
+"these blank the defaults will be used."
+msgstr ""
+"Si vous le souhaitez, vous pouvez spécifier une structure personnalisée pour "
+"vos mots-clefs et de vos catégories. Par exemple, en utilisant <code>sujet</"
+"code> comme préfixe pour vos catégories, vous obtiendrez des adresses web "
+"comme&nbsp;: <code>http://exemple.fr/%ssujet/non-classe/</code>. Si vous "
+"laissez ce champ vide, la valeur par défaut sera appliquée."
 
 #. translators: prefix for category permalinks
-#: wp-admin/options-permalink.php:239
+#: wp-admin/options-permalink.php:238
 msgid "Category base"
 msgstr "Préfixe des catégories"
 
-#: wp-admin/options-permalink.php:243
+#: wp-admin/options-permalink.php:242
 msgid "Tag base"
 msgstr "Préfixe des mots-clefs"
 
-#: wp-admin/options-permalink.php:257
-msgid "If your <code>web.config</code> file were <a href=\"http://codex.wordpress.org/Changing_File_Permissions\">writable</a>, we could do this automatically, but it isn&#8217;t so this is the url rewrite rule you should have in your <code>web.config</code> file. Click in the field and press <kbd>CTRL + a</kbd> to select all. Then insert this rule inside of the <code>/&lt;configuration&gt;/&lt;system.webServer&gt;/&lt;rewrite&gt;/&lt;rules&gt;</code> element in <code>web.config</code> file."
-msgstr "Si vous aviez les <a href=\"http://codex.wordpress.org/Changing_File_Permissions\">droits en écriture (en)</a> sur le fichier <code>web.config</code>, nous pourrions faire cela automatiquement. Ce n&rsquo;est pas le cas, donc voici les règles de réécriture que vous devrez mettre dans votre fichier <code>web.config</code>. Cliquez sur le champ et appuyez sur <kbd>Ctrl-a</kbd> pour tout sélectionner. Insérez ensuite cette règle dans l&rsquo;élément <code>/&lt;configuration&gt;/&lt;system.webServer&gt;/&lt;rewrite&gt;/&lt;rules&gt;</code> du fichier <code>web.config</code>."
-
-#: wp-admin/options-permalink.php:262
-msgid "If you temporarily make your <code>web.config</code> file writable for us to generate rewrite rules automatically, do not forget to revert the permissions after rule has been saved."
-msgstr "Si vous rendez le fichier <code>web.config</code> accessible en écriture afin de générer automatiquement les règles de réécriture, n&rsquo;oubliez surtout pas de remettre les droits originaux en place une fois que les règles ont été enregistrées."
-
-#: wp-admin/options-permalink.php:264
-msgid "If the root directory of your site were <a href=\"http://codex.wordpress.org/Changing_File_Permissions\">writable</a>, we could do this automatically, but it isn&#8217;t so this is the url rewrite rule you should have in your <code>web.config</code> file. Create a new file, called <code>web.config</code> in the root directory of your site. Click in the field and press <kbd>CTRL + a</kbd> to select all. Then insert this code into the <code>web.config</code> file."
-msgstr "Si vous aviez les <a href=\"http://codex.wordpress.org/Changing_File_Permissions\">droits en écriture (en)</a> sur le fichier <code>web.config</code>, nous pourrions faire cela automatiquement. Ce n&rsquo;est pas le cas, donc voici les règles de réécriture que vous devrez mettre dans votre fichier <code>web.config</code>. Créez un nouveau fichier texte, nommé <code>web.config</code>, dans le dossier racine de votre site. Cliquez sur le champ et appuyez sur <kbd>Ctrl-a</kbd> pour tout sélectionner. Insérez ensuite le contenu dans le fichier <code>web.config</code>."
-
-#: wp-admin/options-permalink.php:269
-msgid "If you temporarily make your site&#8217;s root directory writable for us to generate the <code>web.config</code> file automatically, do not forget to revert the permissions after the file has been created."
-msgstr "Si vous rendez temporairement le dossier racine accessible en écriture afin que nous y générions directement le fichier <code>web.config</code>,n&rsquo;oubliez surtout pas de remettre les droits originaux en place une fois que les règles ont été enregistrées."
-
-#: wp-admin/options-permalink.php:274
-msgid "If your <code>.htaccess</code> file were <a href=\"http://codex.wordpress.org/Changing_File_Permissions\">writable</a>, we could do this automatically, but it isn&#8217;t so these are the mod_rewrite rules you should have in your <code>.htaccess</code> file. Click in the field and press <kbd>CTRL + a</kbd> to select all."
-msgstr "Si vous aviez les <a href=\"http://codex.wordpress.org/Changing_File_Permissions\">droits en écriture (en)</a> sur le fichier <code>.htaccess</code>, nous pourrions faire cela automatiquement. Ce n&rsquo;est pas le cas, donc voici les règles de réécriture que vous devrez mettre dans votre fichier <code>.htaccess</code>. Cliquez sur le champ et appuyez sur <kbd>Ctrl-a</kbd> pour tout sélectionner."
-
-#: wp-admin/options-privacy.php:15
-msgid "Privacy Settings"
-msgstr "Options de vie privée"
-
-#: wp-admin/options-privacy.php:21
-msgid "You can choose whether or not your site will be crawled by robots, ping services, and spiders. If you want those services to ignore your site, click the radio button next to &#8220;Ask search engines not to index this site&#8221; and click the Save Changes button at the bottom of the screen. Note that your privacy is not complete; your site is still visible on the web."
-msgstr "Vous pouvez choisir si votre site est parcouru par les robots et autres logiciels automatisés, ou pas. Si vous préférez que ces services ignorent votre site, cliquez sur le bouton radio marqué &laquo;&nbsp;Demander aux moteurs de recherche de ne pas indexer ce site&nbsp;&raquo; et cliquez sur le bouton &laquo;&nbsp;Enregistrer les modifications&nbsp;&raquo; en bas de l&rsquo;écran. Notez bien que votre vie privée n&rsquo;est pas assurée&nbsp;: votre site reste visible de tous sur Internet."
-
-#: wp-admin/options-privacy.php:22
-msgid "When this setting is in effect a reminder is shown in the Right Now box of the Dashboard that says, &#8220;Search Engines Blocked,&#8221; to remind you that your site is not being crawled."
-msgstr "Quand ce réglage prend effet, un rappel apparaît dans l&rsquo;en-tête des écrans d&rsquo;administration, indiquant &laquo;&nbsp;Moteurs de recherche bloqués&nbsp;&raquo;, pour vous rappeler que votre site n&rsquo;est pas parcouru automatiquement."
-
-#: wp-admin/options-privacy.php:27
-msgid "<a href=\"http://codex.wordpress.org/Settings_Privacy_Screen\" target=\"_blank\">Documentation on Privacy Settings</a>"
-msgstr "<a href=\"http://codex.wordpress.org/Settings_Privacy_Screen\" target=\"_blank\">Documentation sur les réglages de vie privée (en)</a>"
-
-#: wp-admin/options-privacy.php:43
-#: wp-admin/options-privacy.php:44
-msgid "Site Visibility"
-msgstr "Visibilité du site"
-
-#: wp-admin/options-privacy.php:48
-msgid "Ask search engines not to index this site."
-msgstr "Demander aux moteurs de recherche de ne pas indexer ce site."
-
-#: wp-admin/options-privacy.php:49
-msgid "Note: Neither of these options blocks access to your site &mdash; it is up to search engines to honor your request."
-msgstr "Note&nbsp;: Aucune de ses options ne bloque l&rsquo;accès à votre site &mdash; c&rsquo;est au moteur de recherche de respecter votre demande."
+#: wp-admin/options-permalink.php:256
+msgid ""
+"If your <code>web.config</code> file were <a href=\"http://codex.wordpress."
+"org/Changing_File_Permissions\">writable</a>, we could do this "
+"automatically, but it isn&#8217;t so this is the url rewrite rule you should "
+"have in your <code>web.config</code> file. Click in the field and press "
+"<kbd>CTRL + a</kbd> to select all. Then insert this rule inside of the "
+"<code>/&lt;configuration&gt;/&lt;system.webServer&gt;/&lt;rewrite&gt;/&lt;"
+"rules&gt;</code> element in <code>web.config</code> file."
+msgstr ""
+"Si vous aviez les <a href=\"http://codex.wordpress.org/"
+"Changing_File_Permissions\">droits en écriture (en)</a> sur le fichier "
+"<code>web.config</code>, nous pourrions faire cela automatiquement. Ce "
+"n&rsquo;est pas le cas, donc voici les règles de réécriture que vous devrez "
+"mettre dans votre fichier <code>web.config</code>. Cliquez sur le champ et "
+"appuyez sur <kbd>Ctrl-a</kbd> pour tout sélectionner. Insérez ensuite cette "
+"règle dans l&rsquo;élément <code>/&lt;configuration&gt;/&lt;system."
+"webServer&gt;/&lt;rewrite&gt;/&lt;rules&gt;</code> du fichier <code>web."
+"config</code>."
+
+#: wp-admin/options-permalink.php:261
+msgid ""
+"If you temporarily make your <code>web.config</code> file writable for us to "
+"generate rewrite rules automatically, do not forget to revert the "
+"permissions after rule has been saved."
+msgstr ""
+"Si vous rendez le fichier <code>web.config</code> accessible en écriture "
+"afin de générer automatiquement les règles de réécriture, n&rsquo;oubliez "
+"surtout pas de remettre les droits originaux en place une fois que les "
+"règles ont été enregistrées."
+
+#: wp-admin/options-permalink.php:263
+msgid ""
+"If the root directory of your site were <a href=\"http://codex.wordpress.org/"
+"Changing_File_Permissions\">writable</a>, we could do this automatically, "
+"but it isn&#8217;t so this is the url rewrite rule you should have in your "
+"<code>web.config</code> file. Create a new file, called <code>web.config</"
+"code> in the root directory of your site. Click in the field and press "
+"<kbd>CTRL + a</kbd> to select all. Then insert this code into the <code>web."
+"config</code> file."
+msgstr ""
+"Si vous aviez les <a href=\"http://codex.wordpress.org/"
+"Changing_File_Permissions\">droits en écriture (en)</a> sur le fichier "
+"<code>web.config</code>, nous pourrions faire cela automatiquement. Ce "
+"n&rsquo;est pas le cas, donc voici les règles de réécriture que vous devrez "
+"mettre dans votre fichier <code>web.config</code>. Créez un nouveau fichier "
+"texte, nommé <code>web.config</code>, dans le dossier racine de votre site. "
+"Cliquez sur le champ et appuyez sur <kbd>Ctrl-a</kbd> pour tout "
+"sélectionner. Insérez ensuite le contenu dans le fichier <code>web.config</"
+"code>."
+
+#: wp-admin/options-permalink.php:268
+msgid ""
+"If you temporarily make your site&#8217;s root directory writable for us to "
+"generate the <code>web.config</code> file automatically, do not forget to "
+"revert the permissions after the file has been created."
+msgstr ""
+"Si vous rendez temporairement le dossier racine accessible en écriture afin "
+"que nous y générions directement le fichier <code>web.config</code>,n&rsquo;"
+"oubliez surtout pas de remettre les droits originaux en place une fois que "
+"les règles ont été enregistrées."
+
+#: wp-admin/options-permalink.php:273
+msgid ""
+"If your <code>.htaccess</code> file were <a href=\"http://codex.wordpress."
+"org/Changing_File_Permissions\">writable</a>, we could do this "
+"automatically, but it isn&#8217;t so these are the mod_rewrite rules you "
+"should have in your <code>.htaccess</code> file. Click in the field and "
+"press <kbd>CTRL + a</kbd> to select all."
+msgstr ""
+"Si vous aviez les <a href=\"http://codex.wordpress.org/"
+"Changing_File_Permissions\">droits en écriture (en)</a> sur le fichier "
+"<code>.htaccess</code>, nous pourrions faire cela automatiquement. Ce "
+"n&rsquo;est pas le cas, donc voici les règles de réécriture que vous devrez "
+"mettre dans votre fichier <code>.htaccess</code>. Cliquez sur le champ et "
+"appuyez sur <kbd>Ctrl-a</kbd> pour tout sélectionner."
 
 #: wp-admin/options-reading.php:15
 msgid "Reading Settings"
 msgstr "Options de lecture"
 
-#: wp-admin/options-reading.php:47
-msgid "This screen contains the settings that affect the display of your content."
-msgstr "Cet écran présente les réglages qui influent sur l&rsquo;affichage de votre contenu."
-
-#: wp-admin/options-reading.php:48
-msgid "You can choose what&#8217;s displayed on the front page of your site. It can be posts in reverse chronological order (classic blog), or a fixed/static page. To set a static home page, you first need to create two <a href=\"%s\">Pages</a>. One will become the front page, and the other will be where your posts are displayed."
-msgstr "Vous pouvez choisir ce qui est affiché en page d&rsquo;accueil de votre site. Au choix, le mode &laquo;&nbsp;blog&nbsp;&raquo; classique (les articles dans l&rsquo;ordre chronologique inverse) ou une page statique. Pour mettre en place une page statique, vous devez d&rsquo;abord créer deux <a href=\"%s\">pages</a>&nbsp;: la première servira de page d&rsquo;accueil, la seconde affichera vos articles."
-
-#: wp-admin/options-reading.php:49
-msgid "You can also control the display of your content in RSS feeds, including the maximum numbers of posts to display, whether to show full text or a summary, and the character set encoding."
-msgstr "Vous pouvez également contrôler l&rsquo;affichage de votre contenu dans les flux RSS, comme le nombre maximum d&rsquo;entrées à afficher, s&rsquo;il faut afficher l&rsquo;article en entier ou juste un résumé, et le jeu de caractères."
-
-#: wp-admin/options-reading.php:55
-msgid "<a href=\"http://codex.wordpress.org/Settings_Reading_Screen\" target=\"_blank\">Documentation on Reading Settings</a>"
-msgstr "<a href=\"http://codex.wordpress.org/Settings_Reading_Screen\" target=\"_blank\">Documentation sur les réglages de la lecture (en)</a>"
-
-#: wp-admin/options-reading.php:92
+#: wp-admin/options-reading.php:50
+msgid ""
+"The <a href=\"http://codex.wordpress.org/Glossary#Character_set\">character "
+"encoding</a> of your site (UTF-8 is recommended)"
+msgstr ""
+"L&rsquo;<a href=\"http://fr.wikipedia.org/wiki/Codage_de_caract%C3%A8res"
+"\">encodage de caractères</a> utilisé par votre site (UTF-8 est recommandé)"
+
+#: wp-admin/options-reading.php:56
+msgid ""
+"This screen contains the settings that affect the display of your content."
+msgstr ""
+"Cet écran présente les réglages qui influent sur l&rsquo;affichage de votre "
+"contenu."
+
+#: wp-admin/options-reading.php:57
+msgid ""
+"You can choose what&#8217;s displayed on the front page of your site. It can "
+"be posts in reverse chronological order (classic blog), or a fixed/static "
+"page. To set a static home page, you first need to create two <a href=\"%s"
+"\">Pages</a>. One will become the front page, and the other will be where "
+"your posts are displayed."
+msgstr ""
+"Vous pouvez choisir ce qui est affiché en page d&rsquo;accueil de votre "
+"site. Au choix, le mode &laquo;&nbsp;blog&nbsp;&raquo; classique (les "
+"articles dans l&rsquo;ordre chronologique inverse) ou une page statique. "
+"Pour mettre en place une page statique, vous devez d&rsquo;abord créer deux "
+"<a href=\"%s\">pages</a>&nbsp;: la première servira de page d&rsquo;accueil, "
+"la seconde affichera vos articles."
+
+#: wp-admin/options-reading.php:58
+msgid ""
+"You can also control the display of your content in RSS feeds, including the "
+"maximum numbers of posts to display and whether to show full text or a "
+"summary."
+msgstr ""
+"Vous pouvez également contrôler l&rsquo;affichage de votre contenu dans les "
+"flux RSS, comme le nombre maximum d&rsquo;entrées à afficher, et s&rsquo;il "
+"faut afficher l&rsquo;article en entier ou juste un résumé."
+
+#: wp-admin/options-reading.php:64 wp-admin/options-reading.php:145
+#: wp-admin/options-reading.php:146
+msgid "Site Visibility"
+msgstr "Visibilité du site"
+
+#: wp-admin/options-reading.php:64 wp-admin/options-reading.php:145
+#: wp-admin/options-reading.php:146
+msgid "Search Engine Visibility"
+msgstr "Visibilité pour les moteurs de recherche"
+
+#: wp-admin/options-reading.php:65
+msgid ""
+"You can choose whether or not your site will be crawled by robots, ping "
+"services, and spiders. If you want those services to ignore your site, click "
+"the checkbox next to &#8220;Discourage search engines from indexing this "
+"site&#8221; and click the Save Changes button at the bottom of the screen. "
+"Note that your privacy is not complete; your site is still visible on the "
+"web."
+msgstr ""
+"Vous pouvez choisir si votre site est parcouru par les robots et autres "
+"logiciels automatisés, ou non. Si vous préférez que ces services ignorent "
+"votre site, cliquez sur le bouton radio marqué &laquo;&nbsp;Demander aux "
+"moteurs de recherche de ne pas indexer ce site&nbsp;&raquo; et cliquez sur "
+"le bouton &laquo;&nbsp;Enregistrer les modifications&nbsp;&raquo; en bas de "
+"l&rsquo;écran. Notez bien que votre vie privée n&rsquo;est pas "
+"assurée&nbsp;: votre site reste visible de tous sur le Web."
+
+#: wp-admin/options-reading.php:66
+msgid ""
+"When this setting is in effect, a reminder is shown in the Right Now box of "
+"the Dashboard that says, &#8220;Search Engines Discouraged,&#8221; to remind "
+"you that your site is not being crawled."
+msgstr ""
+"Quand ce réglage prend effet, un rappel apparaît dans la section &laquo;"
+"&nbsp;Aujourd&rsquo;hui&nbsp;&raquo; du Tableau de Bord, indiquant &laquo;"
+"&nbsp;Moteurs de recherche refusés&nbsp;&raquo;, pour vous rappeler que "
+"votre site n&rsquo;est pas parcouru automatiquement."
+
+#: wp-admin/options-reading.php:71
+msgid ""
+"<a href=\"http://codex.wordpress.org/Settings_Reading_Screen\" target="
+"\"_blank\">Documentation on Reading Settings</a>"
+msgstr ""
+"<a href=\"http://codex.wordpress.org/Settings_Reading_Screen\" target="
+"\"_blank\">Documentation sur les réglages de la lecture (en)</a>"
+
+#: wp-admin/options-reading.php:87
+msgid "Encoding for pages and feeds"
+msgstr "Encodage pour les pages et les flux RSS"
+
+#: wp-admin/options-reading.php:113
 msgid "A <a href=\"%s\">static page</a> (select below)"
 msgstr "Une <a href=\"%s\">page statique</a> (choisir ci-dessous)"
 
-#: wp-admin/options-reading.php:96
+#: wp-admin/options-reading.php:117
 msgid "Front page: %s"
 msgstr "Page d&rsquo;accueil&nbsp;: %s"
 
-#: wp-admin/options-reading.php:97
+#: wp-admin/options-reading.php:118
 msgid "Posts page: %s"
 msgstr "Page des articles&nbsp;: %s"
 
-#: wp-admin/options-reading.php:100
+#: wp-admin/options-reading.php:121
 msgid "<strong>Warning:</strong> these pages should not be the same!"
-msgstr "<strong>Attention&nbsp;:</strong> ces pages ne devraient pas être les mêmes&nbsp;!"
-
-#: wp-admin/options-reading.php:106
+msgstr ""
+"<strong>Attention&nbsp;:</strong> ces pages ne devraient pas être les "
+"mêmes&nbsp;!"
+
+#: wp-admin/options-reading.php:127
 msgid "Blog pages show at most"
 msgstr "Les pages du site doivent afficher au plus"
 
-#: wp-admin/options-reading.php:108
+#: wp-admin/options-reading.php:129
 msgid "posts"
 msgstr "articles"
 
-#: wp-admin/options-reading.php:112
+#: wp-admin/options-reading.php:133
 msgid "Syndication feeds show the most recent"
 msgstr "Les flux de syndication affichent les derniers"
 
-#: wp-admin/options-reading.php:113
+#: wp-admin/options-reading.php:134
 msgid "items"
 msgstr "éléments"
 
-#: wp-admin/options-reading.php:116
-#: wp-admin/options-reading.php:117
+#: wp-admin/options-reading.php:137 wp-admin/options-reading.php:138
 msgid "For each article in a feed, show"
 msgstr "Pour chaque article d&rsquo;un flux, fournir"
 
-#: wp-admin/options-reading.php:118
+#: wp-admin/options-reading.php:139
 msgid "Full text"
 msgstr "Le texte complet"
 
-#: wp-admin/options-reading.php:119
+#: wp-admin/options-reading.php:140
 msgid "Summary"
 msgstr "L&rsquo;extrait"
 
-#: wp-admin/options-reading.php:124
-msgid "Encoding for pages and feeds"
-msgstr "Encodage pour les pages et les flux RSS"
-
-#: wp-admin/options-reading.php:126
-msgid "The <a href=\"http://codex.wordpress.org/Glossary#Character_set\">character encoding</a> of your site (UTF-8 is recommended, if you are adventurous there are some <a href=\"http://en.wikipedia.org/wiki/Character_set\">other encodings</a>)"
-msgstr "L&rsquo;<a href=\"http://fr.wikipedia.org/wiki/Codage_de_caract%C3%A8res\">encodage de caractères</a> utilisé par votre site (UTF-8 est recommandé, mais les plus aventureux parmi vous peuvent essayer d&rsquo;<a href=\"http://fr.wikipedia.org/wiki/Codage_de_caract%C3%A8res#Union_europ.C3.A9enne\">autres encodages</a>)"
+#: wp-admin/options-reading.php:149
+msgid "Allow search engines to index this site"
+msgstr "Autoiser les moteurs de recherche à indexer ce site"
+
+#: wp-admin/options-reading.php:151 wp-admin/options-reading.php:156
+msgid "Discourage search engines from indexing this site"
+msgstr "Demander aux moteurs de recherche de ne pas indexer ce site"
+
+#: wp-admin/options-reading.php:152
+msgid ""
+"Note: Neither of these options blocks access to your site &mdash; it is up "
+"to search engines to honor your request."
+msgstr ""
+"Note&nbsp;: Aucune de ses options ne bloque l&rsquo;accès à votre site "
+"&mdash; c&rsquo;est au moteur de recherche de respecter votre demande."
+
+#: wp-admin/options-reading.php:157
+msgid "It is up to search engines to honor this request."
+msgstr ""
+"Certains moteurs de recherche peuvent décider de l&rsquo;indexer malgré tout."
 
 #: wp-admin/options-writing.php:15
 msgid "Writing Settings"
 msgstr "Options d&rsquo;écriture"
 
 #: wp-admin/options-writing.php:21
-msgid "You can submit content in several different ways; this screen holds the settings for all of them. The top section controls the editor within the dashboard, while the rest control external publishing methods. For more information on any of these methods, use the documentation links."
-msgstr "Vous disposez de plusieurs méthodes pour envoyer du contenu. Cet écran vous présente les réglages de chacune. La première section gère l&rsquo;éditeur de l&rsquo;administration de WordPress, tandis que les autres gèrent les méthodes externes. Pour obtenir plus d&rsquo;information sur toutes ces méthodes, suivez les liens vers la documentation."
-
-#: wp-admin/options-writing.php:28
-#: wp-admin/tools.php:17
-msgid "Press This is a bookmarklet that makes it easy to blog about something you come across on the web. You can use it to just grab a link, or to post an excerpt. Press This will even allow you to choose from images included on the page and use them in your post. Just drag the Press This link on this screen to your bookmarks bar in your browser, and you&#8217;ll be on your way to easier content creation. Clicking on it while on another website opens a popup window with all these options."
-msgstr "&laquo;&nbsp;Publier un article&nbsp;&raquo; est un bookmarklet qui vous facilite la publication sur votre blog quand vous voyez une page intéressante sur Internet. Vous pouvez l&rsquo;utiliser simplement pour publier un lien, ou pour en publier un extrait. &laquo;&nbsp;Publier un article&nbsp;&raquo; vous permet même de choisir parmi les images incluses dans la page, et de les utiliser dans votre article. Glissez simplement le lien &laquo;&nbsp;Publier un article&nbsp;&raquo; dans la barre de liens de votre navigateur, et à vous la publication facile&nbsp;! En cliquant dessus lors de la visite d&rsquo;un site, une fenêtre s&rsquo;ouvrira avec toutes les options utiles."
-
-#: wp-admin/options-writing.php:32
-msgid "Due to security issues, you cannot use Post By Email on Multisite Installs."
-msgstr "Suite à des problèmes de sécurité, vous ne pouvez pas utiliser la publication par e-mail sur les installations multisite."
+msgid ""
+"You can submit content in several different ways; this screen holds the "
+"settings for all of them. The top section controls the editor within the "
+"dashboard, while the rest control external publishing methods. For more "
+"information on any of these methods, use the documentation links."
+msgstr ""
+"Vous disposez de plusieurs méthodes pour envoyer du contenu. Cet écran vous "
+"présente les réglages de chacune. La première section gère l&rsquo;éditeur "
+"de l&rsquo;administration de WordPress, tandis que les autres gèrent les "
+"méthodes externes. Pour obtenir plus d&rsquo;informations sur toutes ces "
+"méthodes, suivez les liens vers la documentation."
+
+#: wp-admin/options-writing.php:28 wp-admin/tools.php:17
+msgid ""
+"Press This is a bookmarklet that makes it easy to blog about something you "
+"come across on the web. You can use it to just grab a link, or to post an "
+"excerpt. Press This will even allow you to choose from images included on "
+"the page and use them in your post. Just drag the Press This link on this "
+"screen to your bookmarks bar in your browser, and you&#8217;ll be on your "
+"way to easier content creation. Clicking on it while on another website "
+"opens a popup window with all these options."
+msgstr ""
+"&laquo;&nbsp;Publier un article&nbsp;&raquo; est un bookmarklet qui vous "
+"facilite la publication sur votre blog quand vous voyez une page "
+"intéressante sur Internet. Vous pouvez l&rsquo;utiliser simplement pour "
+"publier un lien, ou pour en publier un extrait. &laquo;&nbsp;Publier un "
+"article&nbsp;&raquo; vous permet même de choisir parmi les images incluses "
+"dans la page, et de les utiliser dans votre article. Glissez simplement le "
+"lien &laquo;&nbsp;Publier un article&nbsp;&raquo; dans la barre de liens de "
+"votre navigateur, et à vous la publication facile&nbsp;! En cliquant dessus "
+"lors de la visite d&rsquo;un site, une fenêtre s&rsquo;ouvrira avec toutes "
+"les options utiles."
 
 #: wp-admin/options-writing.php:34
-msgid "Post via email settings allow you to send your WordPress install an email with the content of your post. You must set up a secret e-mail account with POP3 access to use this, and any mail received at this address will be posted, so it&#8217;s a good idea to keep this address very secret."
-msgstr "Les réglages de publication par e-mail vous permettant d&rsquo;envoyer à votre installation WordPress un e-mail dont le contenu sera publié dans un article. Vous devez définir un compte e-mail secret avec une adresse POP3. Tout message reçu à cette adresse sera publié. Il vaut donc mieux garder cette adresse à l&rsquo;abri des regards. "
-
-#: wp-admin/options-writing.php:39
 msgid "Post Via Email"
 msgstr "Envoi d&rsquo;article par e-mail"
 
-#: wp-admin/options-writing.php:45
-#: wp-admin/options-writing.php:166
-msgid "Remote Publishing"
-msgstr "Publication à distance"
-
-#: wp-admin/options-writing.php:46
-msgid "Remote Publishing allows you to use an external editor (like the iOS or Android app) to write your posts."
-msgstr "La publication à distance vous permet d&rsquo;utiliser un éditeur externe (tel qu&rsquo;une application iOS ou Android) pour écrire vos articles."
-
-#: wp-admin/options-writing.php:51
-#: wp-admin/options-writing.php:189
+#: wp-admin/options-writing.php:35
+msgid ""
+"Post via email settings allow you to send your WordPress install an email "
+"with the content of your post. You must set up a secret e-mail account with "
+"POP3 access to use this, and any mail received at this address will be "
+"posted, so it&#8217;s a good idea to keep this address very secret."
+msgstr ""
+"Les réglages de publication par e-mail vous permettant d&rsquo;envoyer à "
+"votre installation WordPress un e-mail dont le contenu sera publié dans un "
+"article. Vous devez définir un compte e-mail secret avec une adresse POP3. "
+"Tout message reçu à cette adresse sera publié. Il vaut donc mieux garder "
+"cette adresse à l&rsquo;abri des regards. "
+
+#: wp-admin/options-writing.php:42 wp-admin/options-writing.php:162
 msgid "Update Services"
 msgstr "Services de mise à jour"
 
-#: wp-admin/options-writing.php:52
-msgid "If desired, WordPress will automatically alert various services of your new posts."
-msgstr "Si vous le souhaitez, WordPress peut automatiquement informer différents services en ligne de vos nouvelles publications."
-
-#: wp-admin/options-writing.php:57
-msgid "<a href=\"http://codex.wordpress.org/Settings_Writing_Screen\" target=\"_blank\">Documentation on Writing Settings</a>"
-msgstr "<a href=\"http://codex.wordpress.org/Settings_Writing_Screen\" target=\"_blank\">Documentation sur les réglages de l&rsquo;écriture (en)</a>"
-
-#: wp-admin/options-writing.php:73
-msgid "Size of the post box"
-msgstr "Taille du champ de saisie"
-
-#: wp-admin/options-writing.php:75
-msgid "lines"
-msgstr "lignes"
-
-#: wp-admin/options-writing.php:78
-#: wp-admin/options-writing.php:79
+#: wp-admin/options-writing.php:43
+msgid ""
+"If desired, WordPress will automatically alert various services of your new "
+"posts."
+msgstr ""
+"Si vous le souhaitez, WordPress peut automatiquement informer différents "
+"services en ligne de vos nouvelles publications."
+
+#: wp-admin/options-writing.php:49
+msgid ""
+"<a href=\"http://codex.wordpress.org/Settings_Writing_Screen\" target="
+"\"_blank\">Documentation on Writing Settings</a>"
+msgstr ""
+"<a href=\"http://codex.wordpress.org/Settings_Writing_Screen\" target="
+"\"_blank\">Documentation sur les réglages de l&rsquo;écriture (en)</a>"
+
+#: wp-admin/options-writing.php:65 wp-admin/options-writing.php:66
 msgid "Formatting"
 msgstr "Mise en forme"
 
-#: wp-admin/options-writing.php:82
-msgid "Convert emoticons like <code>:-)</code> and <code>:-P</code> to graphics on display"
-msgstr "Convertir les émoticônes, comme <code>:-)</code> et <code>:-P</code>, en images lors de l&rsquo;affichage"
-
-#: wp-admin/options-writing.php:83
+#: wp-admin/options-writing.php:69
+msgid ""
+"Convert emoticons like <code>:-)</code> and <code>:-P</code> to graphics on "
+"display"
+msgstr ""
+"Convertir les émoticônes, comme <code>:-)</code> et <code>:-P</code>, en "
+"images lors de l&rsquo;affichage"
+
+#: wp-admin/options-writing.php:70
 msgid "WordPress should correct invalidly nested XHTML automatically"
 msgstr "WordPress doit automatiquement corriger les balises XHTML non valides"
 
+#: wp-admin/options-writing.php:74
+msgid "Default Post Category"
+msgstr "Catégorie par défaut des articles"
+
 #: wp-admin/options-writing.php:87
-msgid "Default Post Category"
-msgstr "Catégorie par défaut des articles"
-
-#: wp-admin/options-writing.php:100
 msgid "Default Post Format"
 msgstr "Format par défaut des articles"
 
-#: wp-admin/options-writing.php:112
+#: wp-admin/options-writing.php:102
 msgid "Default Link Category"
 msgstr "Catégorie par défaut des liens"
 
-#: wp-admin/options-writing.php:123
-#: wp-admin/tools.php:42
-msgid "Press This is a bookmarklet: a little app that runs in your browser and lets you grab bits of the web."
-msgstr "Ceci est un bookmarklet&nbsp;: une petite application qui se lance dans votre navigateur, et vous permet de récupérer des portions du Web pour les bloguer."
-
-#: wp-admin/options-writing.php:124
-#: wp-admin/tools.php:44
-msgid "Use Press This to clip text, images and videos from any web page. Then edit and add more straight from Press This before you save or publish it in a post on your site."
-msgstr "Utilisez-le pour récupérer du texte, des images et des vidéos depuis n&rsquo;importe quelle page Web. Puis modifiez l&rsquo;article et ajoutez vos propres textes directement dans le bookmarklet, avant d&rsquo;enregistrer le tout ou de le publier dans un article sur votre site."
-
-#: wp-admin/options-writing.php:125
-#: wp-admin/tools.php:45
-msgid "Drag-and-drop the following link to your bookmarks bar or right click it and add it to your favorites for a posting shortcut."
-msgstr "Glissez le lien suivant dans votre barre de favoris, ou faites un clic-droit et ajoutez-le à vos favoris pour obtenir un raccourci de publication."
+#: wp-admin/options-writing.php:118 wp-admin/tools.php:42
+msgid ""
+"Press This is a bookmarklet: a little app that runs in your browser and lets "
+"you grab bits of the web."
+msgstr ""
+"Ceci est un bookmarklet&nbsp;: une petite application qui se lance dans "
+"votre navigateur, et vous permet de récupérer des portions du Web pour les "
+"bloguer."
+
+#: wp-admin/options-writing.php:119 wp-admin/tools.php:44
+msgid ""
+"Use Press This to clip text, images and videos from any web page. Then edit "
+"and add more straight from Press This before you save or publish it in a "
+"post on your site."
+msgstr ""
+"Utilisez-le pour récupérer du texte, des images et des vidéos depuis n&rsquo;"
+"importe quelle page Web. Puis modifiez l&rsquo;article et ajoutez vos "
+"propres textes directement dans le bookmarklet, avant d&rsquo;enregistrer le "
+"tout ou de le publier dans un article sur votre site."
+
+#: wp-admin/options-writing.php:120 wp-admin/tools.php:45
+msgid ""
+"Drag-and-drop the following link to your bookmarks bar or right click it and "
+"add it to your favorites for a posting shortcut."
+msgstr ""
+"Glissez le lien suivant dans votre barre de favoris, ou faites un clic-droit "
+"et ajoutez-le à vos favoris pour obtenir un raccourci de publication."
+
+#: wp-admin/options-writing.php:123 wp-admin/tools.php:48
+msgid ""
+"If your bookmarks toolbar is hidden: copy the code below, open your "
+"Bookmarks manager, create new bookmark, type Press This into the name field "
+"and paste the code into the URL field."
+msgstr ""
+"Si votre barre de favoris est cachée&nbsp;: copier le code ci-dessous, "
+"ouvrez votre gestionnaire de favoris, créez-en un nouveau, saisissez &laquo;"
+"&nbsp;Publier un article&nbsp;&raquo; comme nom, et collez le code dans le "
+"champ d&rsquo;adresse Web."
 
 #: wp-admin/options-writing.php:128
-#: wp-admin/tools.php:48
-msgid "If your bookmarks toolbar is hidden: copy the code below, open your Bookmarks manager, create new bookmark, type Press This into the name field and paste the code into the URL field."
-msgstr "Si votre barre de favoris est cachée&nbsp;: copier le code ci-dessous, ouvrez votre gestionnaire de favoris, créez-en un nouveau, saisissez &laquo;&nbsp;Publier un article&nbsp;&raquo; comme nom, et collez le code dans le champ d&rsquo;adresse Web."
-
-#: wp-admin/options-writing.php:133
 msgid "Post via e-mail"
 msgstr "Envoi d&rsquo;article par e-mail"
 
-#: wp-admin/options-writing.php:134
-msgid "To post to WordPress by e-mail you must set up a secret e-mail account with POP3 access. Any mail received at this address will be posted, so it&#8217;s a good idea to keep this address very secret. Here are three random strings you could use: <kbd>%s</kbd>, <kbd>%s</kbd>, <kbd>%s</kbd>."
-msgstr "Pour publier dans WordPress par e-mail, vous devez définir un compte e-mail secret avec une adresse POP3. Tout e-mail reçu à cette adresse sera publié. Il vaut donc mieux garder cette adresse à l&rsquo;abri des regards. Voici trois chaînes aléatoires que vous pourriez utiliser&nbsp;: <kbd>%s</kbd>, <kbd>%s</kbd>, <kbd>%s</kbd>."
-
-#: wp-admin/options-writing.php:138
+#: wp-admin/options-writing.php:129
+msgid ""
+"To post to WordPress by e-mail you must set up a secret e-mail account with "
+"POP3 access. Any mail received at this address will be posted, so it&#8217;s "
+"a good idea to keep this address very secret. Here are three random strings "
+"you could use: <kbd>%s</kbd>, <kbd>%s</kbd>, <kbd>%s</kbd>."
+msgstr ""
+"Pour publier dans WordPress par e-mail, vous devez définir un compte e-mail "
+"secret avec une adresse POP3. Tout e-mail reçu à cette adresse sera publié. "
+"Il vaut donc mieux garder cette adresse à l&rsquo;abri des regards. Voici "
+"trois chaînes aléatoires que vous pourriez utiliser&nbsp;: <kbd>%s</kbd>, "
+"<kbd>%s</kbd>, <kbd>%s</kbd>."
+
+#: wp-admin/options-writing.php:133
 msgid "Mail Server"
 msgstr "Serveur de messagerie"
 
-#: wp-admin/options-writing.php:140
+#: wp-admin/options-writing.php:135
 msgid "Port"
 msgstr "Port"
 
-#: wp-admin/options-writing.php:145
+#: wp-admin/options-writing.php:140
 msgid "Login Name"
 msgstr "Identifiant"
 
-#: wp-admin/options-writing.php:155
+#: wp-admin/options-writing.php:150
 msgid "Default Mail Category"
 msgstr "Catégorie par défaut des articles envoyés par e-mail"
 
-#: wp-admin/options-writing.php:167
-msgid "To post to WordPress from a desktop blogging client or remote website that uses the Atom Publishing Protocol or one of the XML-RPC publishing interfaces you must enable them below."
-msgstr "Pour publier avec WordPress depuis un client de bureau ou un site distant, vous devez activer la méthode ci-dessous, que ce soit le protocole de publication Atom ou l&rsquo;une des interfaces de publication XML-RPC."
-
-#: wp-admin/options-writing.php:170
-#: wp-admin/options-writing.php:171
-msgid "Atom Publishing Protocol"
-msgstr "Protocole de publication Atom"
-
-#: wp-admin/options-writing.php:174
-msgid "Enable the Atom Publishing Protocol."
-msgstr "Activer le protocole de publication Atom."
-
-#: wp-admin/options-writing.php:182
-msgid "Enable the WordPress, Movable Type, MetaWeblog and Blogger XML-RPC publishing protocols."
-msgstr "Activer les protocoles XML-RPC (WordPress, Movable Type, MetaWeblog, Blogger XML-RPC)."
-
-#: wp-admin/options-writing.php:193
-msgid "When you publish a new post, WordPress automatically notifies the following site update services. For more about this, see <a href=\"http://codex.wordpress.org/Update_Services\">Update Services</a> on the Codex. Separate multiple service <abbr title=\"Universal Resource Locator\">URL</abbr>s with line breaks."
-msgstr "Quand vous publiez un nouvel article, WordPress peut notifier un service de mise à jour. Une explication se trouve sur la page <a href=\"http://codex.wordpress.org/Update_Services\">Update Services</a> du Codex anglophone. Séparez les adresses web par des retours à la ligne."
-
-#: wp-admin/options-writing.php:199
-msgid "WordPress is not notifying any <a href=\"http://codex.wordpress.org/Update_Services\">Update Services</a> because of your site&#8217;s <a href=\"%s\">privacy settings</a>."
-msgstr "WordPress ne notifie aucun des <a href=\"http://codex.wordpress.org/Update_Services\">services de notification (en)</a>, du fait des <a href=\"%s\">réglages de vie privée</a> de votre site."
-
-#: wp-admin/options.php:113
+#: wp-admin/options-writing.php:166
+msgid ""
+"When you publish a new post, WordPress automatically notifies the following "
+"site update services. For more about this, see <a href=\"http://codex."
+"wordpress.org/Update_Services\">Update Services</a> on the Codex. Separate "
+"multiple service <abbr title=\"Universal Resource Locator\">URL</abbr>s with "
+"line breaks."
+msgstr ""
+"Quand vous publiez un nouvel article, WordPress peut notifier un service de "
+"mise à jour. Une explication se trouve sur la page <a href=\"http://codex."
+"wordpress.org/Update_Services\">Update Services</a> du Codex anglophone. "
+"Séparez les adresses web par des retours à la ligne."
+
+#: wp-admin/options-writing.php:172
+msgid ""
+"WordPress is not notifying any <a href=\"http://codex.wordpress.org/"
+"Update_Services\">Update Services</a> because of your site&#8217;s <a href="
+"\"%s\">visibility settings</a>."
+msgstr ""
+"WordPress ne notifie aucun des <a href=\"http://codex.wordpress.org/"
+"Update_Services\">services de notification (en)</a>, du fait des <a href=\"%s"
+"\">réglages de vie privée</a> de votre site."
+
+#: wp-admin/options.php:118
 msgid "<strong>ERROR</strong>: options page not found."
-msgstr "<strong>ERREUR</strong>&nbsp;: La page d&rsquo;options est introuvable."
-
-#: wp-admin/options.php:117
-msgid "You do not have sufficient permissions to modify unregistered settings for this site."
-msgstr "Vous n&rsquo;avez pas les droits suffisants pour modifier les réglages non enregistrés de ce site."
-
-#: wp-admin/options.php:140
-msgid "The <code>%1$s</code> setting is unregistered. Unregistered settings are deprecated. See http://codex.wordpress.org/Settings_API"
-msgstr "L&rsquo;option <code>%1$s</code> n&rsquo;est pas enregistrée. Les options non enregistrées sont obsolètes. Consultez la documentation sur la page http://codex.wordpress.org/Settings_API"
-
-#: wp-admin/options.php:173
+msgstr ""
+"<strong>ERREUR</strong>&nbsp;: La page d&rsquo;options est introuvable."
+
+#: wp-admin/options.php:122
+msgid ""
+"You do not have sufficient permissions to modify unregistered settings for "
+"this site."
+msgstr ""
+"Vous n&rsquo;avez pas les droits suffisants pour modifier les réglages non "
+"enregistrés de ce site."
+
+#: wp-admin/options.php:145
+msgid ""
+"The <code>%1$s</code> setting is unregistered. Unregistered settings are "
+"deprecated. See http://codex.wordpress.org/Settings_API"
+msgstr ""
+"L&rsquo;option <code>%1$s</code> n&rsquo;est pas enregistrée. Les options "
+"non enregistrées sont obsolètes. Consultez la documentation sur la page "
+"http://codex.wordpress.org/Settings_API"
+
+#: wp-admin/options.php:179
 msgid "All Settings"
 msgstr "Toutes les options"
 
 #: wp-admin/plugin-editor.php:18
 msgid "You do not have sufficient permissions to edit plugins for this site."
-msgstr "Vous n&rsquo;avez pas les droits suffisants pour modifier les extensions de ce site."
+msgstr ""
+"Vous n&rsquo;avez pas les droits suffisants pour modifier les extensions de "
+"ce site."
 
 #: wp-admin/plugin-editor.php:20
 msgid "Edit Plugins"
@@ -8239,304 +10278,502 @@
 
 #: wp-admin/plugin-editor.php:103
 msgid "No such file exists! Double check the name and try again."
-msgstr "Ce fichier n&rsquo;existe pas&nbsp;! Veuillez vérifier son nom et réessayer."
+msgstr ""
+"Ce fichier n&rsquo;existe pas&nbsp;! Veuillez vérifier son nom et réessayer."
 
 #: wp-admin/plugin-editor.php:110
 msgid "Files of this type are not editable."
 msgstr "Les fichiers de ce type ne sont pas éditables."
 
 #: wp-admin/plugin-editor.php:118
-msgid "You can use the editor to make changes to any of your plugins&#8217; individual PHP files. Be aware that if you make changes, plugins updates will overwrite your customizations."
-msgstr "Vous pouvez utiliser l&rsquo;éditeur pour modifier n&rsquo;importe quel fichier de vos extensions. Soyez cependant conscient que si vous modifiez les fichiers, les mises à jour les annuleront..."
+msgid ""
+"You can use the editor to make changes to any of your plugins&#8217; "
+"individual PHP files. Be aware that if you make changes, plugins updates "
+"will overwrite your customizations."
+msgstr ""
+"Vous pouvez utiliser l&rsquo;éditeur pour modifier n&rsquo;importe quel "
+"fichier de vos extensions. Soyez cependant conscient que si vous modifiez "
+"les fichiers, les mises à jour les annuleront..."
 
 #: wp-admin/plugin-editor.php:119
-msgid "Choose a plugin to edit from the menu in the upper right and click the Select button. Click once on any file name to load it in the editor, and make your changes. Don&#8217;t forget to save your changes (Update File) when you&#8217;re finished."
-msgstr "Choisissez une extension à modifier dans le menu en haut à droite, et cliquez sur le bouton &laquo;&nbsp;Sélectionner&nbsp;&raquo;."
+msgid ""
+"Choose a plugin to edit from the menu in the upper right and click the "
+"Select button. Click once on any file name to load it in the editor, and "
+"make your changes. Don&#8217;t forget to save your changes (Update File) "
+"when you&#8217;re finished."
+msgstr ""
+"Choisissez une extension à modifier dans le menu en haut à droite, et "
+"cliquez sur le bouton &laquo;&nbsp;Sélectionner&nbsp;&raquo;."
 
 #: wp-admin/plugin-editor.php:120
-msgid "The Documentation menu below the editor lists the PHP functions recognized in the plugin file. Clicking Lookup takes you to a web page about that particular function."
-msgstr "Le menu &laquo;&nbsp;Documentation&nbsp;&raquo;, situé sous l&rsquo;éditeur, liste les fonctions PHP reconnues dans le fichier de l&rsquo;extension. En cliquant sur &laquo;&nbsp;Vérifier&nbsp;&raquo;, vous irez sur la documentation officielle de cette fonction."
-
-#: wp-admin/plugin-editor.php:121
-msgid "If you want to make changes but don&#8217;t want them to be overwritten when the plugin is updated, you may be ready to think about writing your own plugin. For information on how to edit plugins, write your own from scratch, or just better understand their anatomy, check out the links below."
-msgstr "Si vous voulez faire des modifications et ne pas les perdre à la prochaine mise à jour, cela signifie que vous êtes prêt à écrire votre propre extension. Pour obtenir des informations sur la manière de modifier une extension ou d&rsquo;en créer une, ou simplement pour comprendre leur fonctionnement, suivez les liens ci-dessous."
+msgid ""
+"The Documentation menu below the editor lists the PHP functions recognized "
+"in the plugin file. Clicking Lookup takes you to a web page about that "
+"particular function."
+msgstr ""
+"Le menu &laquo;&nbsp;Documentation&nbsp;&raquo;, situé sous l&rsquo;éditeur, "
+"liste les fonctions PHP reconnues dans le fichier de l&rsquo;extension. En "
+"cliquant sur &laquo;&nbsp;Vérifier&nbsp;&raquo;, vous irez sur la "
+"documentation officielle de cette fonction."
+
+#: wp-admin/plugin-editor.php:121 wp-admin/theme-editor.php:30
+msgid ""
+"In the editing area the Tab key enters a tab character. To move below this "
+"area by pressing Tab, press the Esc key followed by the Tab key."
+msgstr ""
+"Dans la zone d&rsquo;édition, la touche Tab ajouter un caractère de "
+"tabulation. Pour sortir de cette zone en pressant cette touche, combinez-la "
+"avec la touche Esc&nbsp;: Esc-Tab."
 
 #: wp-admin/plugin-editor.php:122
-#: wp-admin/theme-editor.php:33
-msgid "Any edits to files from this screen will be reflected on all sites in the network."
-msgstr "Toute modification aux fichiers de cet écran affectera l&rsquo;ensemble des sites du réseau."
-
-#: wp-admin/plugin-editor.php:127
-msgid "<a href=\"http://codex.wordpress.org/Plugins_Editor_Screen\" target=\"_blank\">Documentation on Editing Plugins</a>"
-msgstr "<a href=\"http://codex.wordpress.org/Plugins_Editor_Screen\" target=\"_blank\">Documentation sur l&rsquo;édition des extensions (en)</a>"
+msgid ""
+"If you want to make changes but don&#8217;t want them to be overwritten when "
+"the plugin is updated, you may be ready to think about writing your own "
+"plugin. For information on how to edit plugins, write your own from scratch, "
+"or just better understand their anatomy, check out the links below."
+msgstr ""
+"Si vous voulez faire des modifications et ne pas les perdre à la prochaine "
+"mise à jour, cela signifie que vous êtes prêt à écrire votre propre "
+"extension. Pour obtenir des informations sur la manière de modifier une "
+"extension ou d&rsquo;en créer une, ou simplement pour comprendre leur "
+"fonctionnement, suivez les liens ci-dessous."
+
+#: wp-admin/plugin-editor.php:123 wp-admin/theme-editor.php:34
+msgid ""
+"Any edits to files from this screen will be reflected on all sites in the "
+"network."
+msgstr ""
+"Toute modification aux fichiers de cet écran affectera l&rsquo;ensemble des "
+"sites du réseau."
 
 #: wp-admin/plugin-editor.php:128
-msgid "<a href=\"http://codex.wordpress.org/Writing_a_Plugin\" target=\"_blank\">Documentation on Writing Plugins</a>"
-msgstr "<a href=\"http://codex.wordpress.org/Writing_a_Plugin\" target=\"_blank\">Documentation sur la création d&rsquo;extensions (en)</a>"
-
-#: wp-admin/plugin-editor.php:143
+msgid ""
+"<a href=\"http://codex.wordpress.org/Plugins_Editor_Screen\" target=\"_blank"
+"\">Documentation on Editing Plugins</a>"
+msgstr ""
+"<a href=\"http://codex.wordpress.org/Plugins_Editor_Screen\" target=\"_blank"
+"\">Documentation sur l&rsquo;édition des extensions (en)</a>"
+
+#: wp-admin/plugin-editor.php:129
+msgid ""
+"<a href=\"http://codex.wordpress.org/Writing_a_Plugin\" target=\"_blank"
+"\">Documentation on Writing Plugins</a>"
+msgstr ""
+"<a href=\"http://codex.wordpress.org/Writing_a_Plugin\" target=\"_blank"
+"\">Documentation sur la création d&rsquo;extensions (en)</a>"
+
+#: wp-admin/plugin-editor.php:144
 msgid "Function Name&hellip;"
 msgstr "Nom de fonction&hellip;"
 
-#: wp-admin/plugin-editor.php:154
-#: wp-admin/theme-editor.php:126
+#: wp-admin/plugin-editor.php:155 wp-admin/theme-editor.php:127
 msgid "File edited successfully."
 msgstr "Le fichier a bien été modifié."
 
-#: wp-admin/plugin-editor.php:156
-msgid "This plugin has been deactivated because your changes resulted in a <strong>fatal error</strong>."
-msgstr "Cette extension a été désactivée, car vos modifications ont abouti à une <strong>erreur fatale</strong>"
-
-#: wp-admin/plugin-editor.php:172
+#: wp-admin/plugin-editor.php:157
+msgid ""
+"This plugin has been deactivated because your changes resulted in a "
+"<strong>fatal error</strong>."
+msgstr ""
+"Cette extension a été désactivée, car vos modifications ont abouti à une "
+"<strong>erreur fatale</strong>"
+
+#: wp-admin/plugin-editor.php:173
 msgid "Editing <strong>%s</strong> (active)"
 msgstr "Modification de <strong>%s</strong> (activé)"
 
-#: wp-admin/plugin-editor.php:174
+#: wp-admin/plugin-editor.php:175
 msgid "Browsing <strong>%s</strong> (active)"
 msgstr "Contenu de <strong>%s</strong> (activé)"
 
-#: wp-admin/plugin-editor.php:177
+#: wp-admin/plugin-editor.php:178
 msgid "Editing <strong>%s</strong> (inactive)"
 msgstr "Modification de <strong>%s</strong> (désactivé)"
 
-#: wp-admin/plugin-editor.php:179
+#: wp-admin/plugin-editor.php:180
 msgid "Browsing <strong>%s</strong> (inactive)"
-msgstr "Contenu de <strong>%s</strong> (désactivé)"
-
-#: wp-admin/plugin-editor.php:185
+msgstr "Contenu de <strong>%s</strong> (désactivée)"
+
+#: wp-admin/plugin-editor.php:186
 msgid "Select plugin to edit:"
 msgstr "Sélectionnez l&rsquo;extension à modifier&nbsp;:"
 
-#: wp-admin/plugin-editor.php:207
+#: wp-admin/plugin-editor.php:208
 msgid "Plugin Files"
-msgstr "Fichiers des extensions"
-
-#: wp-admin/plugin-editor.php:236
-#: wp-admin/theme-editor.php:209
+msgstr "Fichiers de l&rsquo;extension"
+
+#: wp-admin/plugin-editor.php:237 wp-admin/theme-editor.php:210
 msgid "Documentation:"
 msgstr "Documentation&nbsp;:"
 
-#: wp-admin/plugin-editor.php:236
-#: wp-admin/theme-editor.php:211
+#: wp-admin/plugin-editor.php:237 wp-admin/theme-editor.php:212
 msgid "Lookup"
-msgstr "Vérifier"
-
-#: wp-admin/plugin-editor.php:240
-msgid "<strong>Warning:</strong> Making changes to active plugins is not recommended. If your changes cause a fatal error, the plugin will be automatically deactivated."
-msgstr "<strong>Attention&nbsp;:</strong> il n&rsquo;est pas recommandé de modifier des extensions activées. Si vos modifications amènent une erreur fatale, l&rsquo;extension sera automatiquement désactivée."
-
-#: wp-admin/plugin-editor.php:246
+msgstr "Chercher"
+
+#: wp-admin/plugin-editor.php:241
+msgid ""
+"<strong>Warning:</strong> Making changes to active plugins is not "
+"recommended. If your changes cause a fatal error, the plugin will be "
+"automatically deactivated."
+msgstr ""
+"<strong>Attention&nbsp;:</strong> il n&rsquo;est pas recommandé de modifier "
+"des extensions activées. Si vos modifications amènent une erreur fatale, "
+"l&rsquo;extension sera automatiquement désactivée."
+
+#: wp-admin/plugin-editor.php:247
 msgid "Update File and Attempt to Reactivate"
 msgstr "Mettre à jour le fichier et tenter de réactiver l&rsquo;extension"
 
-#: wp-admin/plugin-editor.php:248
-#: wp-admin/theme-editor.php:222
+#: wp-admin/plugin-editor.php:249 wp-admin/theme-editor.php:223
 msgid "Update File"
 msgstr "Mettre à jour le fichier"
 
-#: wp-admin/plugin-editor.php:253
-#: wp-admin/theme-editor.php:224
-msgid "You need to make this file writable before you can save your changes. See <a href=\"http://codex.wordpress.org/Changing_File_Permissions\">the Codex</a> for more information."
-msgstr "Vous devez rendre ce fichier accessible en écriture avant de pouvoir enregistrer vos modifications. Lire la documentation <a href=\"http://codex.wordpress.org/Changing_File_Permissions\" title=\"Rendre un fichier accessible en écriture\">CHMOD (en)</a> pour plus d&rsquo;informations."
-
-#: wp-admin/plugin-install.php:16
+#: wp-admin/plugin-editor.php:254 wp-admin/theme-editor.php:225
+msgid ""
+"You need to make this file writable before you can save your changes. See <a "
+"href=\"http://codex.wordpress.org/Changing_File_Permissions\">the Codex</a> "
+"for more information."
+msgstr ""
+"Vous devez rendre ce fichier accessible en écriture avant de pouvoir "
+"enregistrer vos modifications. Lire la documentation <a href=\"http://codex."
+"wordpress.org/Changing_File_Permissions\" title=\"Rendre un fichier "
+"accessible en écriture\">CHMOD (en)</a> pour plus d&rsquo;informations."
+
+#: wp-admin/plugin-install.php:16 wp-admin/update.php:93
+#: wp-admin/update.php:124
 msgid "You do not have sufficient permissions to install plugins on this site."
-msgstr "Vous n&rsquo;avez pas les droits suffisants pour installer des extensions sur ce site."
+msgstr ""
+"Vous n&rsquo;avez pas les droits suffisants pour installer des extensions "
+"sur ce site."
 
 #: wp-admin/plugin-install.php:27
 msgid "Install Plugins"
 msgstr "Installer des extensions"
 
 #: wp-admin/plugin-install.php:42
-msgid "Plugins hook into WordPress to extend its functionality with custom features. Plugins are developed independently from the core WordPress application by thousands of developers all over the world. All plugins in the official <a href=\"%s\" target=\"_blank\">WordPress.org Plugin Directory</a> are compatible with the license WordPress uses. You can find new plugins to install by searching or browsing the Directory right here in your own Plugins section."
-msgstr "Les extensions s&rsquo;ajoutent à WordPress afin d&rsquo; étendre ses fonctionnalités par le biais de fonctions personnalisées. Les extensions sont développées indépendamment du code de WordPress, par des milliers de développeurs à travers le monde. Toutes les extensions présentes dans le <a href=\"%s\" target=\"_blank\">dépôt officiel d&rsquo;extensions de WordPress.org</a> utilisent une licence compatible avec celle de WordPress. Vous pouvez trouver de nouvelles extensions à installer en lançant une recherche ou en parcourant le dépôt directement depuis la présente page."
+msgid ""
+"Plugins hook into WordPress to extend its functionality with custom "
+"features. Plugins are developed independently from the core WordPress "
+"application by thousands of developers all over the world. All plugins in "
+"the official <a href=\"%s\" target=\"_blank\">WordPress.org Plugin "
+"Directory</a> are compatible with the license WordPress uses. You can find "
+"new plugins to install by searching or browsing the Directory right here in "
+"your own Plugins section."
+msgstr ""
+"Les extensions s&rsquo;ajoutent à WordPress afin d&rsquo; étendre ses "
+"fonctionnalités par le biais de fonctions personnalisées. Les extensions "
+"sont développées indépendamment du code de WordPress, par des milliers de "
+"développeurs à travers le monde. Toutes les extensions présentes dans le <a "
+"href=\"%s\" target=\"_blank\">dépôt officiel d&rsquo;extensions de WordPress."
+"org</a> utilisent une licence compatible avec celle de WordPress. Vous "
+"pouvez trouver de nouvelles extensions à installer en lançant une recherche "
+"ou en parcourant le dépôt directement depuis la présente page."
 
 #: wp-admin/plugin-install.php:46
 msgid "Adding Plugins"
 msgstr "Ajout d&rsquo;extensions"
 
 #: wp-admin/plugin-install.php:48
-msgid "If you know what you&#8217;re looking for, Search is your best bet. The Search screen has options to search the WordPress.org Plugin Directory for a particular Term, Author, or Tag. You can also search the directory by selecting a popular tags. Tags in larger type mean more plugins have been labeled with that tag."
-msgstr "Si vous savez ce que vous voulez, commencez par le champ &laquo;&nbsp;Recherche&nbsp;&raquo;&nbsp;: il vous permet de lancer une recherche sur le dépôt de WordPress.org, pour un terme, un auteur, ou un mot-clef particulier. Vous pouvez également lancer une recherche en cliquant sur un des mots-clefs populaires. Plus un mot-clef est grand, plus il fait référence à un grand nombre d&rsquo;extensions."
+msgid ""
+"If you know what you&#8217;re looking for, Search is your best bet. The "
+"Search screen has options to search the WordPress.org Plugin Directory for a "
+"particular Term, Author, or Tag. You can also search the directory by "
+"selecting popular tags. Tags in larger type mean more plugins have been "
+"labeled with that tag."
+msgstr ""
+"Si vous savez ce que vous voulez, commencez par le champ &laquo;&nbsp;"
+"Recherche&nbsp;&raquo;&nbsp;: il vous permet de lancer une recherche sur le "
+"dépôt d&rsquo;extensions de WordPress.org, pour un terme, un auteur, ou un "
+"mot-clef particulier. Vous pouvez également lancer une recherche en cliquant "
+"sur un des mots-clefs populaires. Plus un mot-clef est grand, plus il fait "
+"référence à un grand nombre d&rsquo;extensions."
 
 #: wp-admin/plugin-install.php:49
-msgid "If you just want to get an idea of what&#8217;s available, you can browse Featured, Popular, and Newest plugins by using the links in the upper left of the screen. These sections rotate regularly."
-msgstr "Si vous voulez juste voir ce qu&rsquo;offre le dépôt, vous pouvez parcourir les extensions les plus populaires, les plus récentes ou celles mises en avant en cliquant sur les liens proposés. Ces sections changent régulièrement."
+msgid ""
+"If you just want to get an idea of what&#8217;s available, you can browse "
+"Featured, Popular, and Newest plugins by using the links in the upper left "
+"of the screen. These sections rotate regularly."
+msgstr ""
+"Si vous voulez juste voir ce qu&rsquo;offre le dépôt, vous pouvez parcourir "
+"les extensions les plus populaires, les plus récentes ou celles mises en "
+"avant en cliquant sur les liens proposés. Ces sections changent "
+"régulièrement."
 
 #: wp-admin/plugin-install.php:50
-msgid "If you want to install a plugin that you&#8217;ve downloaded elsewhere, click the Upload in the upper left. You will be prompted to upload the .zip package, and once uploaded, you can activate the new plugin."
-msgstr "Si vous voulez installer une extension que vous avez téléchargée depuis un site tiers, cliquez sur le lien &laquo;&nbsp;Envoyer&nbsp;&raquo;. Il vous sera demandé d&rsquo;indiquer le fichier .zip à mettre en ligne, et ceci fait, vous pourrez activer l&rsquo;extension."
-
-#: wp-admin/plugin-install.php:55
-msgid "<a href=\"http://codex.wordpress.org/Plugins_Add_New_Screen\" target=\"_blank\">Documentation on Installing Plugins</a>"
-msgstr "<a href=\"http://codex.wordpress.org/Plugins_Add_New_Screen\" target=\"_blank\">Documentation sur l&rsquo;installation des extensions (en)</a>"
-
-#: wp-admin/plugins.php:20
+msgid ""
+"You can also browse a user&#8217;s favorite plugins, by using the Favorites "
+"link in the upper left of the screen and entering their WordPress.org "
+"username."
+msgstr ""
+"Vous pouvez voir les extensions préférées d&rsquo;un utililsateur en "
+"utilisant le lien Préférées situé en haut à gauche de l&rsquo;écran, et en "
+"renseignant leur identifiant WordPress.org"
+
+#: wp-admin/plugin-install.php:51
+msgid ""
+"If you want to install a plugin that you&#8217;ve downloaded elsewhere, "
+"click the Upload link in the upper left. You will be prompted to upload the ."
+"zip package, and once uploaded, you can activate the new plugin."
+msgstr ""
+"Si vous voulez installer une extension que vous avez téléchargée depuis un "
+"site tiers, cliquez sur le lien &laquo;&nbsp;Envoyer&nbsp;&raquo;. Il vous "
+"sera demandé d&rsquo;indiquer le fichier .zip à mettre en ligne, et ceci "
+"fait, vous pourrez activer l&rsquo;extension."
+
+#: wp-admin/plugin-install.php:56
+msgid ""
+"<a href=\"http://codex.wordpress.org/Plugins_Add_New_Screen\" target=\"_blank"
+"\">Documentation on Installing Plugins</a>"
+msgstr ""
+"<a href=\"http://codex.wordpress.org/Plugins_Add_New_Screen\" target=\"_blank"
+"\">Documentation sur l&rsquo;installation des extensions (en)</a>"
+
+#: wp-admin/plugins.php:13
 msgid "You do not have sufficient permissions to manage plugins for this site."
-msgstr "Vous n&rsquo;avez pas les droits suffisants pour gérer les extensions de ce site."
-
-#: wp-admin/plugins.php:38
-#: wp-admin/plugins.php:68
-#: wp-admin/plugins.php:127
-msgid "You do not have sufficient permissions to activate plugins for this site."
-msgstr "Vous n&rsquo;avez pas les droits suffisants pour activer les extensions de ce site."
-
-#: wp-admin/plugins.php:108
-#: wp-admin/update-core.php:219
-#: wp-admin/update-core.php:276
-#: wp-admin/update-core.php:500
-#: wp-admin/update-core.php:505
+msgstr ""
+"Vous n&rsquo;avez pas les droits suffisants pour gérer les extensions de ce "
+"site."
+
+#: wp-admin/plugins.php:31 wp-admin/plugins.php:66 wp-admin/plugins.php:132
+msgid ""
+"You do not have sufficient permissions to activate plugins for this site."
+msgstr ""
+"Vous n&rsquo;avez pas les droits suffisants pour activer les extensions de "
+"ce site."
+
+#: wp-admin/plugins.php:113 wp-admin/update-core.php:193
+#: wp-admin/update-core.php:250 wp-admin/update-core.php:505
+#: wp-admin/update-core.php:510
 msgid "Update Plugins"
 msgstr "Mettre à jour les extensions"
 
-#: wp-admin/plugins.php:150
-#: wp-admin/plugins.php:170
-msgid "You do not have sufficient permissions to deactivate plugins for this site."
-msgstr "Vous n&rsquo;avez pas les droits suffisants pour désactiver les extensions de ce site."
-
-#: wp-admin/plugins.php:201
+#: wp-admin/plugins.php:155 wp-admin/plugins.php:175
+msgid ""
+"You do not have sufficient permissions to deactivate plugins for this site."
+msgstr ""
+"Vous n&rsquo;avez pas les droits suffisants pour désactiver les extensions "
+"de ce site."
+
+#: wp-admin/plugins.php:206
 msgid "You do not have sufficient permissions to delete plugins for this site."
-msgstr "Vous n&rsquo;avez pas les droits suffisants pour supprimer les extensions de ce site."
-
-#: wp-admin/plugins.php:258
+msgstr ""
+"Vous n&rsquo;avez pas les droits suffisants pour supprimer les extensions de "
+"ce site."
+
+#: wp-admin/plugins.php:263
 msgid "Delete Plugin"
 msgid_plural "Delete Plugins"
 msgstr[0] "Supprimer l&rsquo;extension"
 msgstr[1] "Supprimer les extensions"
 
-#: wp-admin/plugins.php:261
+#: wp-admin/plugins.php:266
 msgid "This plugin may be active on other sites in the network."
 msgid_plural "These plugins may be active on other sites in the network."
-msgstr[0] "Cette extension peut uniquement être activée sur l&rsquo;ensemble des sites du réseau."
-msgstr[1] "Ces extensions peuvent uniquement être activées sur l&rsquo;ensemble des sites du réseau."
-
-#: wp-admin/plugins.php:263
+msgstr[0] ""
+"Cette extension peut uniquement être activée sur l&rsquo;ensemble des sites "
+"du réseau."
+msgstr[1] ""
+"Ces extensions peuvent uniquement être activées sur l&rsquo;ensemble des "
+"sites du réseau."
+
+#: wp-admin/plugins.php:268
 msgid "You are about to remove the following plugin:"
 msgid_plural "You are about to remove the following plugins:"
-msgstr[0] "Vous êtes sur le point de supprimer l&rsquo;extension suivante&nbsp;:"
+msgstr[0] ""
+"Vous êtes sur le point de supprimer l&rsquo;extension suivante&nbsp;:"
 msgstr[1] "Vous êtes sur le point de supprimer les extensions suivantes&nbsp;:"
 
 #. translators: 1: plugin name, 2: plugin author
-#: wp-admin/plugins.php:270
-msgid "<strong>%1$s</strong> by <em>%2$s</em> (will also <strong>delete its data</strong>)"
-msgstr "<strong>%1$s</strong> par <em>%2$s</em> (attention&nbsp;: <strong>supprimera également les données liées</strong>)"
+#: wp-admin/plugins.php:275
+msgid ""
+"<strong>%1$s</strong> by <em>%2$s</em> (will also <strong>delete its data</"
+"strong>)"
+msgstr ""
+"<strong>%1$s</strong> par <em>%2$s</em> (attention&nbsp;: <strong>supprimera "
+"également les données liées</strong>)"
 
 #. translators: 1: plugin name, 2: plugin author
-#: wp-admin/plugins.php:274
+#: wp-admin/plugins.php:279
 msgid "<strong>%1$s</strong> by <em>%2$s</em>"
 msgstr "<strong>%1$s</strong> par <em>%2$s</em>"
 
-#: wp-admin/plugins.php:281
+#: wp-admin/plugins.php:286
 msgid "Are you sure you wish to delete these files and data?"
 msgstr "Vouslez-vous vraiment supprimer ces fichiers et données&nbsp;?"
 
-#: wp-admin/plugins.php:283
+#: wp-admin/plugins.php:288
 msgid "Are you sure you wish to delete these files?"
 msgstr "Voulez-vous vraiment supprimer ces fichiers&nbsp;?"
 
-#: wp-admin/plugins.php:293
+#: wp-admin/plugins.php:298
 msgid "Yes, Delete these files and data"
 msgstr "Oui, supprimer ces fichiers et les données"
 
-#: wp-admin/plugins.php:293
+#: wp-admin/plugins.php:298
 msgid "Yes, Delete these files"
 msgstr "Oui, supprimer ces fichiers"
 
-#: wp-admin/plugins.php:296
+#: wp-admin/plugins.php:301
 msgid "No, Return me to the plugin list"
 msgstr "Non, retourner à la liste des extensions"
 
-#: wp-admin/plugins.php:299
+#: wp-admin/plugins.php:304
 msgid "Click to view entire list of files which will be deleted"
 msgstr "Cliquez pour voir la liste des fichiers qui seront supprimés"
 
-#: wp-admin/plugins.php:331
+#: wp-admin/plugins.php:336
 msgctxt "plugins per page (screen options)"
 msgid "Plugins"
 msgstr "Extensions"
 
-#: wp-admin/plugins.php:337
-msgid "Plugins extend and expand the functionality of WordPress. Once a plugin is installed, you may activate it or deactivate it here."
-msgstr "Les extensions étendent les fonctionnalités de WordPress. Une fois une extension installée, vous pouvez l&rsquo;activer ou la désactiver ici."
-
-#: wp-admin/plugins.php:338
-msgid "You can find additional plugins for your site by using the <a href=\"%1$s\">Plugin Browser/Installer</a> functionality or by browsing the <a href=\"%2$s\" target=\"_blank\">WordPress Plugin Directory</a> directly and installing new plugins manually. To manually install a plugin you generally just need to upload the plugin file into your <code>/wp-content/plugins</code> directory. Once a plugin has been installed, you can activate it here."
-msgstr "Vous pouvez trouver d&rsquo;autres extensions pour votre site au moyen de la <a href=\"%1$s\">fonctionnalité de découverte/installation d&rsquo;extensions</a>, ou en vous rendant sur le <a href=\"%2$s\" target=\"_blank\">répertoire des extensions WordPress</a> et en les installant manuellement. Pour installer une extension <em>manuellement</em>, il vous suffit généralement de mettre ses fichiers en ligne dans le dossier <code>/wp-content/plugins</code>. Ceci fait, vous pourrez activer cette extension depuis la présente page."
-
 #: wp-admin/plugins.php:342
+msgid ""
+"Plugins extend and expand the functionality of WordPress. Once a plugin is "
+"installed, you may activate it or deactivate it here."
+msgstr ""
+"Les extensions étendent les fonctionnalités de WordPress. Une fois une "
+"extension installée, vous pouvez l&rsquo;activer ou la désactiver ici."
+
+#: wp-admin/plugins.php:343
+msgid ""
+"You can find additional plugins for your site by using the <a href=\"%1$s"
+"\">Plugin Browser/Installer</a> functionality or by browsing the <a href="
+"\"%2$s\" target=\"_blank\">WordPress Plugin Directory</a> directly and "
+"installing new plugins manually. To manually install a plugin you generally "
+"just need to upload the plugin file into your <code>/wp-content/plugins</"
+"code> directory. Once a plugin has been installed, you can activate it here."
+msgstr ""
+"Vous pouvez trouver d&rsquo;autres extensions pour votre site au moyen de la "
+"<a href=\"%1$s\">fonctionnalité de découverte/installation d&rsquo;"
+"extensions</a>, ou en vous rendant sur le <a href=\"%2$s\" target=\"_blank"
+"\">répertoire des extensions WordPress</a> et en les installant "
+"manuellement. Pour installer une extension <em>manuellement</em>, il vous "
+"suffit généralement de mettre ses fichiers en ligne dans le dossier <code>/"
+"wp-content/plugins</code>. Ceci fait, vous pourrez activer cette extension "
+"depuis la présente page."
+
+#: wp-admin/plugins.php:347
 msgid "Troubleshooting"
 msgstr "Diagnostic"
 
-#: wp-admin/plugins.php:344
-msgid "Most of the time, plugins play nicely with the core of WordPress and with other plugins. Sometimes, though, a plugin&#8217;s code will get in the way of another plugin, causing compatibility issues. If your site starts doing strange things, this may be the problem. Try deactivating all your plugins and re-activating them in various combinations until you isolate which one(s) caused the issue."
-msgstr "La plupart du temps, les extensions fonctionnent comme il le faut, tant avec WordPress qu&rsquo;entre elles. Mais parfois, les ajouts d&rsquo;une extension peuvent empiéter sur celles d&rsquo;une autre, ce qui provoque une incompatibilité. Si votre site réagit bizarrement, le problème vient peut-être de là. Essayez de désactiver toutes les extensions, puis de les réactiver une à une pour trouver celle(s) en cause."
-
-#: wp-admin/plugins.php:345
-msgid "If something goes wrong with a plugin and you can&#8217;t use WordPress, delete or rename that file in the <code>%s</code> directory and it will be automatically deactivated."
-msgstr "Si une extension ne fonctionne pas correctement et que vous ne pouvez plus utiliser WordPress, supprimez ou renommez son fichier dans le répertoire <code>%s</code> et elle sera automatiquement désactivée."
+#: wp-admin/plugins.php:349
+msgid ""
+"Most of the time, plugins play nicely with the core of WordPress and with "
+"other plugins. Sometimes, though, a plugin&#8217;s code will get in the way "
+"of another plugin, causing compatibility issues. If your site starts doing "
+"strange things, this may be the problem. Try deactivating all your plugins "
+"and re-activating them in various combinations until you isolate which one"
+"(s) caused the issue."
+msgstr ""
+"La plupart du temps, les extensions fonctionnent comme il le faut, tant avec "
+"WordPress qu&rsquo;entre elles. Mais parfois, les ajouts d&rsquo;une "
+"extension peuvent empiéter sur celles d&rsquo;une autre, ce qui provoque une "
+"incompatibilité. Si votre site réagit bizarrement, le problème vient peut-"
+"être de là. Essayez de désactiver toutes les extensions, puis de les "
+"réactiver une à une pour trouver celle(s) en cause."
 
 #: wp-admin/plugins.php:350
-msgid "<a href=\"http://codex.wordpress.org/Managing_Plugins#Plugin_Management\" target=\"_blank\">Documentation on Managing Plugins</a>"
-msgstr "<a href=\"http://codex.wordpress.org/Managing_Plugins#Plugin_Management\" target=\"_blank\">Documentation sur la gestion des extensions (en)</a>"
-
-#: wp-admin/plugins.php:362
-msgid "The plugin <code>%s</code> has been <strong>deactivated</strong> due to an error: %s"
-msgstr "L&rsquo;extension <code>%s</code> a été <strong>désactivée</strong> suit à l&rsquo;erreur&nbsp;: %s"
-
-#: wp-admin/plugins.php:368
+msgid ""
+"If something goes wrong with a plugin and you can&#8217;t use WordPress, "
+"delete or rename that file in the <code>%s</code> directory and it will be "
+"automatically deactivated."
+msgstr ""
+"Si une extension ne fonctionne pas correctement et que vous ne pouvez plus "
+"utiliser WordPress, supprimez ou renommez son fichier dans le répertoire "
+"<code>%s</code> et elle sera automatiquement désactivée."
+
+#: wp-admin/plugins.php:355
+msgid ""
+"<a href=\"http://codex.wordpress.org/Managing_Plugins#Plugin_Management\" "
+"target=\"_blank\">Documentation on Managing Plugins</a>"
+msgstr ""
+"<a href=\"http://codex.wordpress.org/Managing_Plugins#Plugin_Management\" "
+"target=\"_blank\">Documentation sur la gestion des extensions (en)</a>"
+
+#: wp-admin/plugins.php:367
+msgid ""
+"The plugin <code>%s</code> has been <strong>deactivated</strong> due to an "
+"error: %s"
+msgstr ""
+"L&rsquo;extension <code>%s</code> a été <strong>désactivée</strong> suit à "
+"l&rsquo;erreur&nbsp;: %s"
+
+#: wp-admin/plugins.php:373
 msgid "You cannot delete a plugin while it is active on the main site."
-msgstr "Vous ne pouvez pas effacer une extension tant qu&rsquo;elle est activée sur le site principal."
-
-#: wp-admin/plugins.php:370
-msgid "The plugin generated %d characters of <strong>unexpected output</strong> during activation. If you notice &#8220;headers already sent&#8221; messages, problems with syndication feeds or other issues, try deactivating or removing this plugin."
-msgstr "L&rsquo;extension a généré %d caractères d&rsquo;<strong>affichage inattendu</strong> lors de l&rsquo;activation. Si vous voyez un message &laquo;&nbsp;<i>headers already sent</i>&nbsp;&raquo; (Les en-têtes ont déjà été envoyés), des problèmes avec les flux de syndication ou d&rsquo;autres erreurs, essayez de désactiver ou enlever cette extension."
-
-#: wp-admin/plugins.php:372
-msgid "Plugin could not be activated because it triggered a <strong>fatal error</strong>."
-msgstr "L&rsquo;extension n&rsquo;a pu être activée, car elle a déclenché une <strong>erreur fatale</strong>."
-
-#: wp-admin/plugins.php:387
+msgstr ""
+"Vous ne pouvez pas effacer une extension tant qu&rsquo;elle est activée sur "
+"le site principal."
+
+#: wp-admin/plugins.php:375
+msgid ""
+"The plugin generated %d characters of <strong>unexpected output</strong> "
+"during activation. If you notice &#8220;headers already sent&#8221; "
+"messages, problems with syndication feeds or other issues, try deactivating "
+"or removing this plugin."
+msgstr ""
+"L&rsquo;extension a généré %d caractères d&rsquo;<strong>affichage "
+"inattendu</strong> lors de l&rsquo;activation. Si vous voyez un message "
+"&laquo;&nbsp;<i>headers already sent</i>&nbsp;&raquo; (Les en-têtes ont déjà "
+"été envoyés), des problèmes avec les flux de syndication ou d&rsquo;autres "
+"erreurs, essayez de désactiver ou enlever cette extension."
+
+#: wp-admin/plugins.php:377
+msgid ""
+"Plugin could not be activated because it triggered a <strong>fatal error</"
+"strong>."
+msgstr ""
+"L&rsquo;extension n&rsquo;a pu être activée, car elle a déclenché une "
+"<strong>erreur fatale</strong>."
+
+#: wp-admin/plugins.php:392
 msgid "Plugin could not be deleted due to an error: %s"
-msgstr "L&rsquo;extension n&rsquo;a pu être supprimée suite à une erreur fatale&nbsp;: %s"
-
-#: wp-admin/plugins.php:389
+msgstr ""
+"L&rsquo;extension n&rsquo;a pu être supprimée suite à une erreur "
+"fatale&nbsp;: %s"
+
+#: wp-admin/plugins.php:394
 msgid "The selected plugins have been <strong>deleted</strong>."
 msgstr "Les extensions sélectionnées ont été <strong>supprimées</strong>."
 
-#: wp-admin/plugins.php:392
+#: wp-admin/plugins.php:397
 msgid "Plugin <strong>activated</strong>."
 msgstr "Extension <strong>activée</strong>"
 
-#: wp-admin/plugins.php:394
+#: wp-admin/plugins.php:399
 msgid "Selected plugins <strong>activated</strong>."
 msgstr "Les extensions sélectionnées ont été <strong>activées</strong>."
 
-#: wp-admin/plugins.php:396
+#: wp-admin/plugins.php:401
 msgid "Plugin <strong>deactivated</strong>."
 msgstr "Extension <strong>désactivée</strong>"
 
-#: wp-admin/plugins.php:398
+#: wp-admin/plugins.php:403
 msgid "Selected plugins <strong>deactivated</strong>."
 msgstr "Les extensions sélectionnées ont été <strong>désactivées</strong>."
 
-#: wp-admin/plugins.php:400
+#: wp-admin/plugins.php:405
 msgid "No out of date plugins were selected."
 msgstr "Aucune extension périmée n&rsquo;a été sélectionnée."
 
-#: wp-admin/plugins.php:418
+#: wp-admin/plugins.php:423
 msgid "Search Installed Plugins"
 msgstr "Chercher parmi les extensions installées"
 
-#: wp-admin/post.php:144
-msgid "You can&#8217;t edit this item because it is in the Trash. Please restore it and try again."
-msgstr "Vous ne pouvez pas modifier ce contenu, car il est dans la Corbeille. Sortez-l&rsquo;en, puis réessayez."
-
-#: wp-admin/post.php:221
+#: wp-admin/post.php:148
+msgid ""
+"You can&#8217;t edit this item because it is in the Trash. Please restore it "
+"and try again."
+msgstr ""
+"Vous ne pouvez pas modifier ce contenu, car il est dans la Corbeille. Sortez-"
+"l&rsquo;en, puis réessayez."
+
+#: wp-admin/post.php:231
 msgid "You are not allowed to move this item out of the Trash."
-msgstr "Vous n&rsquo;avez pas l&rsquo;autorisation de déplacer ce contenu en dehors de la Corbeille."
-
-#: wp-admin/post.php:240
-#: wp-admin/post.php:243
+msgstr ""
+"Vous n&rsquo;avez pas l&rsquo;autorisation de déplacer ce contenu en dehors "
+"de la Corbeille."
+
+#: wp-admin/post.php:250 wp-admin/post.php:253
 msgid "Error in deleting."
 msgstr "Erreur pendant la suppression."
 
@@ -8554,7 +10791,9 @@
 
 #: wp-admin/press-this.php:230
 msgid "Unable to retrieve images or no images on page."
-msgstr "Impossible de récupérer d&rsquo;image ou il n&rsquo;y a pas d&rsquo;image dans cette page."
+msgstr ""
+"Impossible de récupérer d&rsquo;image ou il n&rsquo;y a pas d&rsquo;image "
+"dans cette page."
 
 #: wp-admin/press-this.php:291
 msgid "Add Photos"
@@ -8568,10 +10807,6 @@
 msgid "Add from URL"
 msgstr "Ajouter depuis une adresse web"
 
-#: wp-admin/press-this.php:291
-msgid "Refresh"
-msgstr "Rafraîchir"
-
 #: wp-admin/press-this.php:478
 msgid "Post Format:"
 msgstr "Format d&rsquo;article&nbsp;:"
@@ -8604,8 +10839,7 @@
 msgid "Add:"
 msgstr "Ajouter&nbsp;:"
 
-#: wp-admin/press-this.php:621
-#: wp-admin/press-this.php:622
+#: wp-admin/press-this.php:621 wp-admin/press-this.php:622
 msgid "Insert an Image"
 msgstr "Insérer une image"
 
@@ -8633,256 +10867,435 @@
 msgid "These revisions are identical."
 msgstr "Ces 2 versions sont identiques."
 
-#: wp-admin/setup-config.php:64
-msgid "Sorry, I need a wp-config-sample.php file to work from. Please re-upload this file from your WordPress installation."
-msgstr "Désolé, j&rsquo;ai besoin d&rsquo;un fichier wp-config-sample.php à partir duquel travailler. Veuillez remettre ce fichier en ligne au sein de votre installation WordPress."
-
-#: wp-admin/setup-config.php:70
-msgid "The file 'wp-config.php' already exists. If you need to reset any of the configuration items in this file, please delete it first. You may try <a href='%s'>installing now</a>."
-msgstr "Le fichier &laquo;&nbsp;wp-config.php&nbsp;&raquo; existe déjà. Si vous devez mettre à zéro n&rsquo;importe quelle valeur de configuration dans ce fichier, veuillez commencer par le supprimer. Vous pouvez <a href='%s'>essayer l'installation maintenant</a>."
-
-#: wp-admin/setup-config.php:74
-msgid "The file 'wp-config.php' already exists one level above your WordPress installation. If you need to reset any of the configuration items in this file, please delete it first. You may try <a href='install.php'>installing now</a>."
-msgstr "Le fichier <code>wp-config.php</code> existe déjà, un niveau au-dessus de votre installation WordPress. Si vous devez mettre à zéro vos éléments de configuration, veuillez d&rsquo;aborder effacer ce fichier. Vous pouvez essayer de <a href='install.php'>lancer l'installation</a>."
-
-#: wp-admin/setup-config.php:95
+#: wp-admin/setup-config.php:66
+msgid ""
+"Sorry, I need a wp-config-sample.php file to work from. Please re-upload "
+"this file from your WordPress installation."
+msgstr ""
+"Désolé, j&rsquo;ai besoin d&rsquo;un fichier wp-config-sample.php à partir "
+"duquel travailler. Veuillez remettre ce fichier en ligne au sein de votre "
+"installation WordPress."
+
+#: wp-admin/setup-config.php:72
+msgid ""
+"The file 'wp-config.php' already exists. If you need to reset any of the "
+"configuration items in this file, please delete it first. You may try <a "
+"href='%s'>installing now</a>."
+msgstr ""
+"Le fichier &laquo;&nbsp;wp-config.php&nbsp;&raquo; existe déjà. Si vous "
+"devez mettre à zéro n&rsquo;importe quelle valeur de configuration dans ce "
+"fichier, veuillez commencer par le supprimer. Vous pouvez <a "
+"href='%s'>essayer l&rsquo;installation maintenant</a>."
+
+#: wp-admin/setup-config.php:76
+msgid ""
+"The file 'wp-config.php' already exists one level above your WordPress "
+"installation. If you need to reset any of the configuration items in this "
+"file, please delete it first. You may try <a href='install.php'>installing "
+"now</a>."
+msgstr ""
+"Le fichier <code>wp-config.php</code> existe déjà, un niveau au-dessus de "
+"votre installation WordPress. Si vous devez mettre à zéro vos éléments de "
+"configuration, veuillez d&rsquo;aborder effacer ce fichier. Vous pouvez "
+"essayer de <a href='install.php'>lancer l&rsquo;installation</a>."
+
+#: wp-admin/setup-config.php:97
 msgid "WordPress &rsaquo; Setup Configuration File"
 msgstr "WordPress &rsaquo; Fichier de configuration"
 
-#: wp-admin/setup-config.php:109
-msgid "Welcome to WordPress. Before getting started, we need some information on the database. You will need to know the following items before proceeding."
-msgstr "Bienvenue dans WordPress. Avant de nous lancer, nous avons besoin de certaines informations sur votre base de données. Il va vous falloir réunir les informations suivantes pour continuer."
-
-#: wp-admin/setup-config.php:111
+#: wp-admin/setup-config.php:112
+msgid ""
+"Welcome to WordPress. Before getting started, we need some information on "
+"the database. You will need to know the following items before proceeding."
+msgstr ""
+"Bienvenue dans WordPress. Avant de nous lancer, nous avons besoin de "
+"certaines informations sur votre base de données. Il va vous falloir réunir "
+"les informations suivantes pour continuer."
+
+#: wp-admin/setup-config.php:114
 msgid "Database name"
 msgstr "Nom de la base de données"
 
-#: wp-admin/setup-config.php:112
+#: wp-admin/setup-config.php:115
 msgid "Database username"
 msgstr "Nom d&rsquo;utilisateur MySQL"
 
-#: wp-admin/setup-config.php:113
+#: wp-admin/setup-config.php:116
 msgid "Database password"
 msgstr "Mot de passe de l&rsquo;utilisateur"
 
-#: wp-admin/setup-config.php:114
+#: wp-admin/setup-config.php:117
 msgid "Database host"
 msgstr "Adresse de la base de données"
 
-#: wp-admin/setup-config.php:115
-msgid "Table prefix (if you want to run more than one WordPress in a single database)"
-msgstr "Préfixe de table (si vous souhaitez avoir plusieurs WordPress sur une même base de données)"
-
-#: wp-admin/setup-config.php:117
-msgid "If for any reason this automatic file creation doesn't work, don't worry. All this does is fill in the database information to a configuration file. You may also simply open <code>wp-config-sample.php</code> in a text editor, fill in your information, and save it as <code>wp-config.php</code>."
-msgstr "Si, pour n&rsquo;importe quelle raison, la création automatique du fichier ne fonctionne pas, pas de panique. Tout ce qu&rsquo;elle fait, c&rsquo;est compléter le fichier de configuration avec les informations de connexion à la base de données. Vous pouvez tout aussi bien ouvrir le fichier <code>wp-config-sample.php</code> dans un éditeur de texte, y saisir les informations en question, en enregistrer le fichier sous le nom <code>wp-config.php</code>."
-
 #: wp-admin/setup-config.php:118
-msgid "In all likelihood, these items were supplied to you by your Web Host. If you do not have this information, then you will need to contact them before you can continue. If you&#8217;re all ready&hellip;"
-msgstr "Vous devriez normalement avoir reçu ces informations de la part de votre hébergeur. Si vous ne les avez pas, il vous faudra contacter votre hébergeur afin de continuer. Si vous êtes prêt&hellip;"
+msgid ""
+"Table prefix (if you want to run more than one WordPress in a single "
+"database)"
+msgstr ""
+"Préfixe de table (si vous souhaitez avoir plusieurs WordPress sur une même "
+"base de données)"
 
 #: wp-admin/setup-config.php:120
+msgid ""
+"If for any reason this automatic file creation doesn&#8217;t work, don&#8217;"
+"t worry. All this does is fill in the database information to a "
+"configuration file. You may also simply open <code>wp-config-sample.php</"
+"code> in a text editor, fill in your information, and save it as <code>wp-"
+"config.php</code>."
+msgstr ""
+"Si, pour quelque raison que ce soit, la création automatique du fichier ne "
+"fonctionne pas, pas de panique. Tout ce qu&rsquo;elle fait, c&rsquo;est de "
+"compléter le fichier de configuration avec les informations de connexion à "
+"la base de données. Vous pouvez tout aussi bien ouvrir le fichier <code>wp-"
+"config-sample.php</code> dans un éditeur de texte, y saisir les informations "
+"en question, et enregistrer le fichier sous le nom <code>wp-config.php</"
+"code>."
+
+#: wp-admin/setup-config.php:121
+msgid ""
+"In all likelihood, these items were supplied to you by your Web Host. If you "
+"do not have this information, then you will need to contact them before you "
+"can continue. If you&#8217;re all ready&hellip;"
+msgstr ""
+"Vous devriez normalement avoir reçu ces informations de la part de votre "
+"hébergeur. Si vous ne les avez pas, il vous faudra contacter votre hébergeur "
+"afin de continuer. Si vous êtes prêt&hellip;"
+
+#: wp-admin/setup-config.php:123
 msgid "Let&#8217;s go!"
-msgstr "C&rsquo;est parti !"
-
-#: wp-admin/setup-config.php:128
-msgid "Below you should enter your database connection details. If you're not sure about these, contact your host."
-msgstr "Vous devez saisir ci-dessous les détails de connexion à votre base de données. Si vous ne les connaissez pas, contactez votre hébergeur."
+msgstr "C&rsquo;est parti&nbsp;!"
 
 #: wp-admin/setup-config.php:131
+msgid ""
+"Below you should enter your database connection details. If you&#8217;re not "
+"sure about these, contact your host."
+msgstr ""
+"Vous devez saisir ci-dessous les détails de connexion à votre base de "
+"données. Si vous ne les connaissez pas, contactez votre hébergeur."
+
+#: wp-admin/setup-config.php:134
 msgid "Database Name"
 msgstr "Nom de la base de données"
 
-#: wp-admin/setup-config.php:133
+#: wp-admin/setup-config.php:136
 msgid "The name of the database you want to run WP in."
-msgstr "Le nom de la base de données dans laquelle vous souhaitez installer WordPress."
-
-#: wp-admin/setup-config.php:136
+msgstr ""
+"Le nom de la base de données dans laquelle vous souhaitez installer "
+"WordPress."
+
+#: wp-admin/setup-config.php:139
 msgid "User Name"
 msgstr "Identifiant"
 
-#: wp-admin/setup-config.php:137
+#: wp-admin/setup-config.php:140
 msgctxt "example username"
 msgid "username"
 msgstr "utilisateur"
 
-#: wp-admin/setup-config.php:138
+#: wp-admin/setup-config.php:141
 msgid "Your MySQL username"
 msgstr "Votre identifiant MySQL"
 
-#: wp-admin/setup-config.php:142
+#: wp-admin/setup-config.php:145
 msgctxt "example password"
 msgid "password"
 msgstr "mot de passe"
 
-#: wp-admin/setup-config.php:143
+#: wp-admin/setup-config.php:146
 msgid "&hellip;and your MySQL password."
 msgstr "&hellip;et son mot de passe MySQL."
 
-#: wp-admin/setup-config.php:146
+#: wp-admin/setup-config.php:149
 msgid "Database Host"
 msgstr "Adresse de la base de données"
 
-#: wp-admin/setup-config.php:148
-msgid "You should be able to get this info from your web host, if <code>localhost</code> does not work."
-msgstr "Si <code>localhost</code> ne fonctionne pas, votre hébergeur doit pouvoir vous donner la bonne information."
-
 #: wp-admin/setup-config.php:151
+msgid ""
+"You should be able to get this info from your web host, if <code>localhost</"
+"code> does not work."
+msgstr ""
+"Si <code>localhost</code> ne fonctionne pas, votre hébergeur doit pouvoir "
+"vous donner la bonne information."
+
+#: wp-admin/setup-config.php:154
 msgid "Table Prefix"
 msgstr "Préfixe des tables"
 
-#: wp-admin/setup-config.php:153
-msgid "If you want to run multiple WordPress installations in a single database, change this."
-msgstr "Si vous souhaitez faire tourner plusieurs installations de WordPress sur une même base de données, modifiez ce réglage."
-
-#: wp-admin/setup-config.php:166
-msgid "Try Again"
-msgstr "Recommencez"
-
-#: wp-admin/setup-config.php:256
-msgid "Sorry, but I can't write the <code>wp-config.php</code> file."
-msgstr "Désolé, mais je ne peux écrire dans le fichier <code>wp-config.php</code>."
-
-#: wp-admin/setup-config.php:257
-msgid "You can create the <code>wp-config.php</code> manually and paste the following text into it."
-msgstr "Vous pouvez créer le fichier <code>wp-config.php</code> à la main, en y copiant/collant le texte suivant."
-
-#: wp-admin/setup-config.php:263
-msgid "After you've done that, click \"Run the install.\""
-msgstr "Après avoir fait cela, cliquez sur &laquo;&nbsp;Lancer l&rsquo;installation&nbsp;&raquo;."
-
-#: wp-admin/setup-config.php:264
-#: wp-admin/setup-config.php:277
+#: wp-admin/setup-config.php:156
+msgid ""
+"If you want to run multiple WordPress installations in a single database, "
+"change this."
+msgstr ""
+"Si vous souhaitez faire tourner plusieurs installations de WordPress sur une "
+"même base de données, modifiez ce réglage."
+
+#: wp-admin/setup-config.php:260
+msgid "Sorry, but I can&#8217;t write the <code>wp-config.php</code> file."
+msgstr ""
+"Désolé, mais je ne peux écrire dans le fichier <code>wp-config.php</code>."
+
+#: wp-admin/setup-config.php:261
+msgid ""
+"You can create the <code>wp-config.php</code> manually and paste the "
+"following text into it."
+msgstr ""
+"Vous pouvez créer le fichier <code>wp-config.php</code> à la main, en y "
+"copiant/collant le texte suivant."
+
+#: wp-admin/setup-config.php:267
+msgid "After you&#8217;ve done that, click &#8220;Run the install.&#8221;"
+msgstr ""
+"Après cela, cliquez sur &laquo;&nbsp;Lancer l&rsquo;installation&nbsp;"
+"&raquo;."
+
+#: wp-admin/setup-config.php:268 wp-admin/setup-config.php:288
 msgid "Run the install"
 msgstr "Lancer l&rsquo;installation"
 
-#: wp-admin/setup-config.php:275
-msgid "All right sparky! You've made it through this part of the installation. WordPress can now communicate with your database. If you are ready, time now to&hellip;"
-msgstr "C&rsquo;est parfait ! Vous avez passé la première partie de l&rsquo;installation. WordPress peut désormais communiquer avec votre base de données. Si vous êtes prêt, il est maintenant temps de&hellip;"
+#: wp-admin/setup-config.php:286
+msgid ""
+"All right sparky! You&#8217;ve made it through this part of the "
+"installation. WordPress can now communicate with your database. If you are "
+"ready, time now to&hellip;"
+msgstr ""
+"C&rsquo;est parfait&nbsp;! Vous avez passé la première partie de l&rsquo;"
+"installation. WordPress peut désormais communiquer avec votre base de "
+"données. Si vous êtes prêt, il est maintenant temps de&hellip;"
 
 #: wp-admin/theme-editor.php:18
 msgid "You do not have sufficient permissions to edit templates for this site."
-msgstr "Vous n&rsquo;avez pas les droits suffisants pour modifier les modèles de ce site."
+msgstr ""
+"Vous n&rsquo;avez pas les droits suffisants pour modifier les modèles de ce "
+"site."
 
 #: wp-admin/theme-editor.php:20
 msgid "Edit Themes"
 msgstr "Modifier les thèmes"
 
 #: wp-admin/theme-editor.php:27
-msgid "You can use the Theme Editor to edit the individual CSS and PHP files which make up your theme."
-msgstr "Vous pouvez utiliser l&rsquo;éditeur de thème pour modifier les fichiers CSS et PHP qui composent votre thème."
+msgid ""
+"You can use the Theme Editor to edit the individual CSS and PHP files which "
+"make up your theme."
+msgstr ""
+"Vous pouvez utiliser l&rsquo;éditeur de thème pour modifier les fichiers CSS "
+"et PHP qui composent votre thème."
 
 #: wp-admin/theme-editor.php:28
-msgid "Begin by choosing a theme to edit from the dropdown menu and clicking Select. A list then appears of all the template files. Clicking once on any file name causes the file to appear in the large Editor box."
-msgstr "Commencez par choisir un thème à modifier via le menu déroulant, et cliquez sur &laquo;&nbsp;Sélectionner&nbsp;&raquo;. Une liste apparaîtra ensuite avec tous les fichiers modèles. En cliquant sur n&rsquo;importe quel de ces fichiers, vous verrez son contenu apparaître dans l&rsquo;éditeur."
+msgid ""
+"Begin by choosing a theme to edit from the dropdown menu and clicking "
+"Select. A list then appears of all the template files. Clicking once on any "
+"file name causes the file to appear in the large Editor box."
+msgstr ""
+"Commencez par choisir un thème à modifier via le menu déroulant, et cliquez "
+"sur &laquo;&nbsp;Sélectionner&nbsp;&raquo;. Une liste apparaîtra ensuite "
+"avec tous les fichiers modèles. En cliquant sur n&rsquo;importe quel de ces "
+"fichiers, vous verrez son contenu apparaître dans l&rsquo;éditeur."
 
 #: wp-admin/theme-editor.php:29
-msgid "For PHP files, you can use the Documentation dropdown to select from functions recognized in that file. Lookup takes you to a web page with reference material about that particular function."
-msgstr "Pour les fichiers PHP, vous pouvez utiliser le menu déroulant Documentation pour en apprendre plus sur les fonctions trouvées dans le ce fichier. Le bouton &laquo;&nbsp;Vérifier&nbsp;&raquo; vous enverra sur la page dédiée de cette fonction."
-
-#: wp-admin/theme-editor.php:30
-msgid "After typing in your edits, click Update File."
-msgstr "Après avoir fait vos modifications, cliquez sur &laquo;&nbsp;Mettre à jour le fichier&nbsp;&raquo;."
+msgid ""
+"For PHP files, you can use the Documentation dropdown to select from "
+"functions recognized in that file. Lookup takes you to a web page with "
+"reference material about that particular function."
+msgstr ""
+"Pour les fichiers PHP, vous pouvez utiliser le menu déroulant Documentation "
+"pour en apprendre plus sur les fonctions trouvées dans le ce fichier. Le "
+"bouton &laquo;&nbsp;Vérifier&nbsp;&raquo; vous enverra sur la page dédiée de "
+"cette fonction."
 
 #: wp-admin/theme-editor.php:31
-msgid "<strong>Advice:</strong> think very carefully about your site crashing if you are live-editing the theme currently in use."
-msgstr "<strong>Conseil&nbsp;:</strong> gardez bien en tête que si vous modifiez le thème actuellement utilisé, vos visiteurs pourraient avoir une vision déroutante de votre site..."
+msgid "After typing in your edits, click Update File."
+msgstr ""
+"Après avoir fait vos modifications, cliquez sur &laquo;&nbsp;Mettre à jour "
+"le fichier&nbsp;&raquo;."
 
 #: wp-admin/theme-editor.php:32
-msgid "Upgrading to a newer version of the same theme will override changes made here. To avoid this, consider creating a <a href=\"http://codex.wordpress.org/Child_Themes\" target=\"_blank\">child theme</a> instead."
-msgstr "La mise à jour vers une nouvelle version du thème supprimera les modifications que vous aurez faites. Pour éviter cela, nous vous conseillons de passer plutôt par un <a href=\"http://codex.wordpress.org/Child_Themes\" target=\"_blank\">Thème-Enfant (en)</a>."
-
-#: wp-admin/theme-editor.php:38
-msgid "<a href=\"http://codex.wordpress.org/Theme_Development\" target=\"_blank\">Documentation on Theme Development</a>"
-msgstr "<a href=\"http://codex.wordpress.org/Theme_Development\" target=\"_blank\">Documentation sur le développement de thème (en)</a>"
+msgid ""
+"<strong>Advice:</strong> think very carefully about your site crashing if "
+"you are live-editing the theme currently in use."
+msgstr ""
+"<strong>Conseil&nbsp;:</strong> gardez bien en tête que si vous modifiez le "
+"thème actuellement utilisé, vos visiteurs pourraient avoir une vision "
+"déroutante de votre site..."
+
+#: wp-admin/theme-editor.php:33
+msgid ""
+"Upgrading to a newer version of the same theme will override changes made "
+"here. To avoid this, consider creating a <a href=\"http://codex.wordpress."
+"org/Child_Themes\" target=\"_blank\">child theme</a> instead."
+msgstr ""
+"La mise à jour vers une nouvelle version du thème supprimera les "
+"modifications que vous aurez faites. Pour éviter cela, nous vous conseillons "
+"de passer plutôt par un <a href=\"http://codex.wordpress.org/Child_Themes\" "
+"target=\"_blank\">Thème-Enfant (en)</a>."
 
 #: wp-admin/theme-editor.php:39
-#: wp-admin/themes.php:85
-msgid "<a href=\"http://codex.wordpress.org/Using_Themes\" target=\"_blank\">Documentation on Using Themes</a>"
-msgstr "<a href=\"http://codex.wordpress.org/Using_Themes\" target=\"_blank\">Documentation sur l&rsquo;utilisation des thèmes (en)</a>"
-
-#: wp-admin/theme-editor.php:40
-msgid "<a href=\"http://codex.wordpress.org/Editing_Files\" target=\"_blank\">Documentation on Editing Files</a>"
-msgstr "<a href=\"http://codex.wordpress.org/Editing_Files\" target=\"_blank\">Documentation sur l&rsquo;édition des fichiers (en)</a>"
+msgid ""
+"<a href=\"http://codex.wordpress.org/Theme_Development\" target=\"_blank"
+"\">Documentation on Theme Development</a>"
+msgstr ""
+"<a href=\"http://codex.wordpress.org/Theme_Development\" target=\"_blank"
+"\">Documentation sur le développement de thème (en)</a>"
+
+#: wp-admin/theme-editor.php:40 wp-admin/themes.php:87
+msgid ""
+"<a href=\"http://codex.wordpress.org/Using_Themes\" target=\"_blank"
+"\">Documentation on Using Themes</a>"
+msgstr ""
+"<a href=\"http://codex.wordpress.org/Using_Themes\" target=\"_blank"
+"\">Documentation sur l&rsquo;utilisation des thèmes (en)</a>"
 
 #: wp-admin/theme-editor.php:41
-msgid "<a href=\"http://codex.wordpress.org/Template_Tags\" target=\"_blank\">Documentation on Template Tags</a>"
-msgstr "<a href=\"http://codex.wordpress.org/Template_Tags\" target=\"_blank\">Documentation sur les marqueurs des modèles (en)</a>"
-
-#: wp-admin/theme-editor.php:55
-#: wp-admin/theme-editor.php:58
+msgid ""
+"<a href=\"http://codex.wordpress.org/Editing_Files\" target=\"_blank"
+"\">Documentation on Editing Files</a>"
+msgstr ""
+"<a href=\"http://codex.wordpress.org/Editing_Files\" target=\"_blank"
+"\">Documentation sur l&rsquo;édition des fichiers (en)</a>"
+
+#: wp-admin/theme-editor.php:42
+msgid ""
+"<a href=\"http://codex.wordpress.org/Template_Tags\" target=\"_blank"
+"\">Documentation on Template Tags</a>"
+msgstr ""
+"<a href=\"http://codex.wordpress.org/Template_Tags\" target=\"_blank"
+"\">Documentation sur les marqueurs des modèles (en)</a>"
+
+#: wp-admin/theme-editor.php:56 wp-admin/theme-editor.php:59
 msgid "The requested theme does not exist."
 msgstr "Le thème demandé n&rsquo;existe pas."
 
-#: wp-admin/theme-editor.php:114
+#: wp-admin/theme-editor.php:115
 msgid "Function Name..."
 msgstr "Nom de fonction..."
 
-#: wp-admin/theme-editor.php:144
+#: wp-admin/theme-editor.php:145
 msgid "Select theme to edit:"
 msgstr "Sélectionnez le thème à modifier&nbsp;:"
 
-#: wp-admin/theme-editor.php:163
+#: wp-admin/theme-editor.php:164
 msgid "This theme is broken."
 msgstr "Le thème est cassé."
 
-#: wp-admin/theme-editor.php:170
+#: wp-admin/theme-editor.php:171
 msgid "Templates"
 msgstr "Modèles"
 
-#: wp-admin/theme-editor.php:172
+#: wp-admin/theme-editor.php:173
 msgid "This child theme inherits templates from a parent theme, %s."
 msgstr "Ce thème enfant hérite de certains modèles de son thème parent, %s."
 
-#: wp-admin/theme-editor.php:180
+#: wp-admin/theme-editor.php:181
 msgctxt "Theme stylesheets in theme editor"
 msgid "Styles"
 msgstr "Styles"
 
-#: wp-admin/theme-editor.php:197
+#: wp-admin/theme-editor.php:198
 msgid "Oops, no such file exists! Double check the name and try again, merci."
-msgstr "Oops, ce fichier n&rsquo;existe pas&nbsp;! Vérifiez son nom et réessayez, merci."
-
-#: wp-admin/theme-editor.php:218
+msgstr ""
+"Oops, ce fichier n&rsquo;existe pas&nbsp;! Vérifiez son nom et réessayez, "
+"merci."
+
+#: wp-admin/theme-editor.php:219
 msgid "This is a file in your current parent theme."
 msgstr "Ceci est un fichier de votre thème parent actuel."
 
-#: wp-admin/theme-install.php:16
+#: wp-admin/theme-install.php:16 wp-admin/update.php:197
+#: wp-admin/update.php:227
 msgid "You do not have sufficient permissions to install themes on this site."
-msgstr "Vous n&rsquo;avez pas les droits suffisants pour installer des thèmes sur ce site."
-
-#: wp-admin/theme-install.php:27
-#: wp-admin/update.php:209
+msgstr ""
+"Vous n&rsquo;avez pas les droits suffisants pour installer des thèmes sur ce "
+"site."
+
+#: wp-admin/theme-install.php:27 wp-admin/update.php:209
 msgid "Install Themes"
 msgstr "Installer des thèmes"
 
 #: wp-admin/theme-install.php:40
-msgid "You can find additional themes for your site by using the Theme Browser/Installer on this screen, which will display themes from the <a href=\"%s\" target=\"_blank\">WordPress.org Theme Directory</a>. These themes are designed and developed by third parties, are available free of charge, and are compatible with the license WordPress uses."
-msgstr "Vous pouvez trouver plus de thèmes pour votre site en utilisant le Navigateur/Installeur de thème sur cet écran, qui affiche les thèmes en provenance du <a href=\"%s\" target=\"_blank\">dépôt de thèmes de WordPress.org</a>. Ces thèmes sont conçus et développés par des designers tiers, sont gratuits et utilisent une licence compatible avec celle de WordPress."
+msgid ""
+"You can find additional themes for your site by using the Theme Browser/"
+"Installer on this screen, which will display themes from the <a href=\"%s\" "
+"target=\"_blank\">WordPress.org Theme Directory</a>. These themes are "
+"designed and developed by third parties, are available free of charge, and "
+"are compatible with the license WordPress uses."
+msgstr ""
+"Vous pouvez trouver plus de thèmes pour votre site en utilisant le "
+"Navigateur/Installeur de thème sur cet écran, qui affiche les thèmes en "
+"provenance du <a href=\"%s\" target=\"_blank\">dépôt de thèmes de WordPress."
+"org</a>. Ces thèmes sont conçus et développés par des designers tiers, sont "
+"gratuits et utilisent une licence compatible avec celle de WordPress."
 
 #: wp-admin/theme-install.php:41
-msgid "You can Search for themes by keyword, author, or tag, or can get more specific and search by criteria listed in the feature filter. Alternately, you can browse the themes that are Featured, Newest, or Recently Updated. When you find a theme you like, you can preview it or install it."
-msgstr "Vous pouvez chercher un thème par mot, par auteur ou par mot-clef. Vous pouvez également donner plus de détails en sélectionnant les critères que vous souhaitez. Autrement, vous pouvez parcourir les thèmes mis en avant, les plus récents, ou récemment mis à jour. Quand vous aurez trouvé le thème qu&rsquo;il vous faut, vous pourrez le prévisualiser puis l&rsquo;installer."
+msgid ""
+"You can Search for themes by keyword, author, or tag, or can get more "
+"specific and search by criteria listed in the feature filter. Alternately, "
+"you can browse the themes that are Featured, Newest, or Recently Updated. "
+"When you find a theme you like, you can preview it or install it."
+msgstr ""
+"Vous pouvez chercher un thème par mot, par auteur ou par mot-clef. Vous "
+"pouvez également donner plus de détails en sélectionnant les critères que "
+"vous souhaitez. Autrement, vous pouvez parcourir les thèmes mis en avant, "
+"les plus récents, ou récemment mis à jour. Quand vous aurez trouvé le thème "
+"qu&rsquo;il vous faut, vous pourrez le prévisualiser puis l&rsquo;installer."
 
 #: wp-admin/theme-install.php:42
-msgid "You can Upload a theme manually if you have already downloaded its ZIP archive onto your computer (make sure it is from a trusted and original source). You can also do it the old-fashioned way and copy a downloaded theme&#8217;s folder via FTP into your <code>/wp-content/themes</code> directory."
-msgstr "Si vous disposez d&rsquo;un thème sous forme d&rsquo;archive Zip sur votre ordinateur, vous pouvez mettre en ligne ce fichier avec le lien Envoyer. Assurez-vous bien que ce fichier provient d&rsquo;une source de confiance. Vous pouvez également le faire à l&rsquo;ancienne, c&rsquo;est-à-dire passer par un client FTP pour déposer les fichiers dans le dossier /wp-content/themes."
+msgid ""
+"You can Upload a theme manually if you have already downloaded its ZIP "
+"archive onto your computer (make sure it is from a trusted and original "
+"source). You can also do it the old-fashioned way and copy a downloaded "
+"theme&#8217;s folder via FTP into your <code>/wp-content/themes</code> "
+"directory."
+msgstr ""
+"Si vous disposez d&rsquo;un thème sous forme d&rsquo;archive Zip sur votre "
+"ordinateur, vous pouvez mettre en ligne ce fichier avec le lien Envoyer. "
+"Assurez-vous bien que ce fichier provient d&rsquo;une source de confiance. "
+"Vous pouvez également le faire à l&rsquo;ancienne, c&rsquo;est-à-dire passer "
+"par un client FTP pour déposer les fichiers dans le dossier /wp-content/"
+"themes."
 
 #: wp-admin/theme-install.php:51
-msgid "Once you have generated a list of themes, you can preview and install any of them. Click on the thumbnail of the theme you&#8217;re interested in previewing. It will open up in a full-screen Preview page to give you a better idea of how that theme will look."
-msgstr "Une fois que vous avez généré une liste de thèmes, vous pouvez les prévisualiser et les installer. Cliquez sur la miniature du thème que vous souhaitez prévisualiser. Cela ouvrira une page de prévisualisation en plein écran, afin de vous donner une meilleure idée de l&rsquo;aspect de ce thème."
+msgid ""
+"Once you have generated a list of themes, you can preview and install any of "
+"them. Click on the thumbnail of the theme you&#8217;re interested in "
+"previewing. It will open up in a full-screen Preview page to give you a "
+"better idea of how that theme will look."
+msgstr ""
+"Une fois que vous avez généré une liste de thèmes, vous pouvez les "
+"prévisualiser et les installer. Cliquez sur la miniature du thème que vous "
+"souhaitez prévisualiser. Cela ouvrira une page de prévisualisation en plein "
+"écran, afin de vous donner une meilleure idée de l&rsquo;aspect de ce thème."
 
 #: wp-admin/theme-install.php:52
-msgid "To install the theme so you can preview it with your site&#8217;s content and customize its theme options, click the \"Install\" button at the top of the left-hand pane. The theme files will be downloaded to your website automatically. When this is complete, the theme is now available for activation, which you can do by clicking the \"Activate\" link, or by navigating to your Installed Themes page and clicking the \"Live Preview\" link under any installed theme&#8217;s thumbnail image."
-msgstr "Pour installer un thème dans le but de le prévisualiser avec le contenu de votre site et d&rsquo;en personnaliser les options, cliquez sur le bouton &laquo;&nbsp;Installer&nbsp;&raquo; en haut du panneau de gauche. Les fichiers du thème seront automatiquement téléchargés vers votre site. Ceci fait, le thème sera disponible, et vous pourrez l&rsquo;activer en cliquant sur le lien &laquo;&nbsp;Activer&nbsp;&raquo;, ou en vous rendant sur la page &laquo;&nbsp;Thèmes installés&nbsp;&raquo; et en cliquant sur le lien &laquo;&nbsp;Prévisulisation&nbsp;&raquo; situé sous la miniature de chaque thème."
+msgid ""
+"To install the theme so you can preview it with your site&#8217;s content "
+"and customize its theme options, click the \"Install\" button at the top of "
+"the left-hand pane. The theme files will be downloaded to your website "
+"automatically. When this is complete, the theme is now available for "
+"activation, which you can do by clicking the \"Activate\" link, or by "
+"navigating to your Manage Themes screen and clicking the \"Live Preview\" "
+"link under any installed theme&#8217;s thumbnail image."
+msgstr ""
+"Pour installer un thème dans le but de le prévisualiser avec le contenu de "
+"votre site et d&rsquo;en personnaliser les options, cliquez sur le bouton "
+"&laquo;&nbsp;Installer&nbsp;&raquo; en haut du panneau de gauche. Les "
+"fichiers du thème seront automatiquement téléchargés vers votre site. Ceci "
+"fait, le thème sera disponible, et vous pourrez l&rsquo;activer en cliquant "
+"sur le lien &laquo;&nbsp;Activer&nbsp;&raquo;, ou en vous rendant sur "
+"l&rsquo;écran &laquo;&nbsp;Gérer les thèmes&nbsp;&raquo; et en cliquant sur "
+"le lien &laquo;&nbsp;Prévisualisation&nbsp;&raquo; situé sous la miniature "
+"de chaque thème."
 
 #: wp-admin/theme-install.php:56
 msgid "Previewing and Installing"
 msgstr "Voir l&rsquo;aperçu et installer"
 
 #: wp-admin/theme-install.php:62
-msgid "<a href=\"http://codex.wordpress.org/Using_Themes#Adding_New_Themes\" target=\"_blank\">Documentation on Adding New Themes</a>"
-msgstr "<a href=\"http://codex.wordpress.org/Using_Themes#Adding_New_Themes\" target=\"_blank\">Documentation sur l&rsquo;ajout de thèmes (en)</a>"
+msgid ""
+"<a href=\"http://codex.wordpress.org/Using_Themes#Adding_New_Themes\" target="
+"\"_blank\">Documentation on Adding New Themes</a>"
+msgstr ""
+"<a href=\"http://codex.wordpress.org/Using_Themes#Adding_New_Themes\" target="
+"\"_blank\">Documentation sur l&rsquo;ajout de thèmes (en)</a>"
 
 #: wp-admin/theme-install.php:75
 msgctxt "theme"
@@ -8894,61 +11307,119 @@
 msgstr "Gérer les thèmes"
 
 #: wp-admin/themes.php:44
-msgid "Aside from the default theme included with your WordPress installation, themes are designed and developed by third parties."
-msgstr "En dehors du thème par défaut inclus avec WordPress, les thèmes sont conçus et développés par des designers tiers."
+msgid ""
+"Aside from the default theme included with your WordPress installation, "
+"themes are designed and developed by third parties."
+msgstr ""
+"En dehors du thème par défaut inclus avec WordPress, les thèmes sont conçus "
+"et développés par des designers tiers."
 
 #: wp-admin/themes.php:45
-msgid "You can see your active theme at the top of the screen. Below are the other themes you have installed that are not currently in use. You can see what your site would look like with one of these themes by clicking the Live Preview link (see \"Previewing and Customizing\" help tab). To change themes, click the Activate link."
-msgstr "Vous pouvez voir votre thème actif en haut de l&rsquo;écran. En dessous se trouvent les autres thèmes que vous avez installés et qui ne sont pas activés pour le moment. Vous pouvez voir à quoi votre site ressemblerait avec ces thèmes en cliquant sur le lien &laquo;&nbsp;Prévisualisation et personnalisation&nbsp;&raquo; (voir l&rsquo;onglet d&rsquo;aide &laquo;&nbsp;Prévisualisation et personnalisation&nbsp;&raquo;). Pour changer de thème, cliquez sur le lien &laquo;&nbsp;Activer&nbsp;&raquo;."
+msgid ""
+"You can see your active theme at the top of the screen. Below are the other "
+"themes you have installed that are not currently in use. You can see what "
+"your site would look like with one of these themes by clicking the Live "
+"Preview link (see \"Previewing and Customizing\" help tab). To change "
+"themes, click the Activate link."
+msgstr ""
+"Vous pouvez voir votre thème actif en haut de l&rsquo;écran. En dessous se "
+"trouvent les autres thèmes que vous avez installés et qui ne sont pas "
+"activés pour le moment. Vous pouvez voir à quoi votre site ressemblerait "
+"avec ces thèmes en cliquant sur le lien &laquo;&nbsp;Prévisualisation et "
+"personnalisation&nbsp;&raquo; (voir l&rsquo;onglet d&rsquo;aide &laquo;&nbsp;"
+"Prévisualisation et personnalisation&nbsp;&raquo;). Pour changer de thème, "
+"cliquez sur le lien &laquo;&nbsp;Activer&nbsp;&raquo;."
 
 #: wp-admin/themes.php:55
-msgid "Installing themes on Multisite can only be done from the Network Admin section."
-msgstr "En mode Multisite, vous pouvez installer des thèmes depuis la section Admin du Réseau."
+msgid ""
+"Installing themes on Multisite can only be done from the Network Admin "
+"section."
+msgstr ""
+"En mode Multisite, vous pouvez installer des thèmes depuis la section Admin "
+"du Réseau."
 
 #: wp-admin/themes.php:57
-msgid "If you would like to see more themes to choose from, click on the &#8220;Install Themes&#8221; tab and you will be able to browse or search for additional themes from the <a href=\"%s\" target=\"_blank\">WordPress.org Theme Directory</a>. Themes in the WordPress.org Theme Directory are designed and developed by third parties, and are compatible with the license WordPress uses. Oh, and they&#8217;re free!"
-msgstr "Si vous souhaitez choisir parmi plus de thèmes, cliquez sur l&rsquo;onglet &laquo;&nbsp;Ajouter des thèmes&nbsp;&raquo; et vous pourrez parcourir le <a href=\"%s\" target=\"_blank\">dépôt de thèmes de WordPress.org</a>, ou y lancer une recherche. Les thèmes du dépôt sont conçus et développés par des designers tiers, et utilisent une licence compatible avec celle de WordPress. Ah, et ils sont gratuits&nbsp;!"
+msgid ""
+"If you would like to see more themes to choose from, click on the &#8220;"
+"Install Themes&#8221; tab and you will be able to browse or search for "
+"additional themes from the <a href=\"%s\" target=\"_blank\">WordPress.org "
+"Theme Directory</a>. Themes in the WordPress.org Theme Directory are "
+"designed and developed by third parties, and are compatible with the license "
+"WordPress uses. Oh, and they&#8217;re free!"
+msgstr ""
+"Si vous souhaitez choisir parmi plus de thèmes, cliquez sur l&rsquo;onglet "
+"&laquo;&nbsp;Ajouter des thèmes&nbsp;&raquo; et vous pourrez parcourir le <a "
+"href=\"%s\" target=\"_blank\">dépôt de thèmes de WordPress.org</a>, ou y "
+"lancer une recherche. Les thèmes du dépôt sont conçus et développés par des "
+"designers tiers, et utilisent une licence compatible avec celle de "
+"WordPress. Ah, et ils sont gratuits&nbsp;!"
 
 #: wp-admin/themes.php:62
 msgid "Adding Themes"
 msgstr "Ajout de thèmes"
 
-#: wp-admin/themes.php:71
-msgid "Click on the \"Live Preview\" link under any theme to preview that theme and change theme options in a separate, full-screen view. Any installed theme can be previewed and customized in this way."
-msgstr "Cliquez sur le lien &laquo;&nbsp;Prévisualisation&nbsp;&raquo; sous n&rsquo;importe quel thème pour le prévisualiser et modifier les options du thème, le tout en mode plein écran. Tout thème installé peut être prévisualisé et personnalisé ainsi."
-
-#: wp-admin/themes.php:72
-msgid "The theme being previewed is fully interactive &mdash; navigate to different pages to see how the theme handles posts, archives, and other page templates."
-msgstr "Le thème actuellement prévisualisé est totalement interactif &mdash; naviguez entre les différentes pages pour voir comment il gère les articles, les archives, et les autres contenus."
-
 #: wp-admin/themes.php:73
-msgid "In the left-hand pane you can edit the theme settings. The settings will differ, depending on what theme features the theme being previewed supports. To accept the new settings and activate the theme all in one step, click the \"Save &amp; Activate\" button at the top of the left-hand pane."
-msgstr "À gauche du personnalisateur de thème se trouvent les réglages du thème. Ceux-ci peuvent différer en fonction des possibilités offertes par le thème en cours de prévisualisation. Pour valider les nouveaux réglages et activer le thème en une étape, cliquez sur le bouton &laquo;&nbsp;Enregistrer et activer&nbsp;&raquo; en bas de la colonne latérale de gauche."
+msgid ""
+"Click on the \"Live Preview\" link under any theme to preview that theme and "
+"change theme options in a separate, full-screen view. Any installed theme "
+"can be previewed and customized in this way."
+msgstr ""
+"Cliquez sur le lien &laquo;&nbsp;Prévisualisation&nbsp;&raquo; sous n&rsquo;"
+"importe quel thème pour le prévisualiser et modifier les options du thème, "
+"le tout en mode plein écran. Tout thème installé peut être prévisualisé et "
+"personnalisé ainsi."
 
 #: wp-admin/themes.php:74
-msgid "When previewing on smaller monitors, you can use the \"Collapse\" icon at the bottom of the left-hand pane. This will hide the pane, giving you more room to preview your site in the new theme. To bring the pane back, click on the Collapse icon again."
-msgstr "Lorsque vous faites une prévisualisation sur un petit écran, vous pouvez utiliser l&rsquo;icône &laquo;&nbsp;Réduire&nbsp;&raquo; en bas du panneau de gauche. Cela cachera ce panneau, vous donnant ainsi plus de place pour apprécier votre site avec son nouveau thème. Pour ramener le panneau, cliquez à nouveau sur l&rsquo;icône &laquo;&nbsp;Réduire&nbsp;&raquo;."
-
-#: wp-admin/themes.php:78
+msgid ""
+"The theme being previewed is fully interactive &mdash; navigate to different "
+"pages to see how the theme handles posts, archives, and other page templates."
+msgstr ""
+"Le thème actuellement prévisualisé est totalement interactif &mdash; "
+"naviguez entre les différentes pages pour voir comment il gère les articles, "
+"les archives, et les autres contenus."
+
+#: wp-admin/themes.php:75
+msgid ""
+"In the left-hand pane you can edit the theme settings. The settings will "
+"differ, depending on what theme features the theme being previewed supports. "
+"To accept the new settings and activate the theme all in one step, click the "
+"\"Save &amp; Activate\" button at the top of the left-hand pane."
+msgstr ""
+"À gauche du personnalisateur de thème se trouvent les réglages du thème. "
+"Ceux-ci peuvent différer en fonction des possibilités offertes par le thème "
+"en cours de prévisualisation. Pour valider les nouveaux réglages et activer "
+"le thème en une étape, cliquez sur le bouton &laquo;&nbsp;Enregistrer et "
+"activer&nbsp;&raquo; en bas de la colonne latérale de gauche."
+
+#: wp-admin/themes.php:76
+msgid ""
+"When previewing on smaller monitors, you can use the \"Collapse\" icon at "
+"the bottom of the left-hand pane. This will hide the pane, giving you more "
+"room to preview your site in the new theme. To bring the pane back, click on "
+"the Collapse icon again."
+msgstr ""
+"Lorsque vous faites une prévisualisation sur un petit écran, vous pouvez "
+"utiliser l&rsquo;icône &laquo;&nbsp;Réduire&nbsp;&raquo; en bas du panneau "
+"de gauche. Cela cachera ce panneau, vous donnant ainsi plus de place pour "
+"apprécier votre site avec son nouveau thème. Pour ramener le panneau, "
+"cliquez à nouveau sur l&rsquo;icône &laquo;&nbsp;Réduire&nbsp;&raquo;."
+
+#: wp-admin/themes.php:80
 msgid "Previewing and Customizing"
 msgstr "Aperçu et personnalisation"
 
-#: wp-admin/themes.php:99
+#: wp-admin/themes.php:101
 msgctxt "theme"
 msgid "Install Themes"
 msgstr "Installer des thèmes"
 
-#: wp-admin/themes.php:106
+#: wp-admin/themes.php:108
 msgid "The active theme is broken. Reverting to the default theme."
 msgstr "Le thème courant est endommagé. Retour au thème par défaut."
 
-#: wp-admin/themes.php:109
-msgid "Settings saved and theme activated. <a href=\"%s\">Visit site</a>."
-msgstr "Réglages enregistrés et thème activé. <a href=\"%s\">Voir le site</a>."
-
 #: wp-admin/themes.php:111
-msgid "New theme activated. This theme supports widgets, please visit the <a href=\"%s\">widgets settings</a> screen to configure them."
-msgstr "Le nouveau thème a été activé. Ce thème est compatible avec les widgets&nbsp;; veuillez vous rendre sur l&rsquo;écran de <a href=\"%s\">réglage des widgets</a> pour les configurer."
+msgid "Settings saved and theme activated. <a href=\"%s\">Visit site</a>"
+msgstr "Réglages enregistrés et thème activé. <a href=\"%s\">Voir le site</a>"
 
 #: wp-admin/themes.php:113
 msgid "New theme activated. <a href=\"%s\">Visit site</a>"
@@ -8958,8 +11429,7 @@
 msgid "Theme deleted."
 msgstr "Thème supprimé."
 
-#: wp-admin/themes.php:131
-#: wp-admin/themes.php:134
+#: wp-admin/themes.php:131 wp-admin/themes.php:134
 msgid "Current theme preview"
 msgstr "Aperçu du thème actuel"
 
@@ -8967,100 +11437,170 @@
 msgid "Current Theme"
 msgstr "Thème actuel"
 
-#: wp-admin/themes.php:188
+#: wp-admin/themes.php:196
 msgid "Options:"
 msgstr "Options:"
 
-#: wp-admin/themes.php:213
+#: wp-admin/themes.php:223
 msgid "Available Themes"
 msgstr "Thèmes disponibles"
 
-#: wp-admin/themes.php:218
-#: wp-admin/themes.php:220
+#: wp-admin/themes.php:228 wp-admin/themes.php:230
 msgid "Search Installed Themes"
 msgstr "Chercher parmi les thèmes installés"
 
-#: wp-admin/themes.php:227
+#: wp-admin/themes.php:237
 msgid "Theme filters"
 msgstr "Filtres du thème"
 
-#: wp-admin/themes.php:253
+#: wp-admin/themes.php:263
 msgid "Apply Filters"
 msgstr "Appliquer les filtres"
 
-#: wp-admin/themes.php:255
+#: wp-admin/themes.php:265
 msgid "Close filters"
 msgstr "Fermer les filtres"
 
-#: wp-admin/themes.php:276
+#: wp-admin/themes.php:286
 msgid "Broken Themes"
 msgstr "Thèmes endommagés"
 
-#: wp-admin/themes.php:277
-msgid "The following themes are installed but incomplete. Themes must have a stylesheet and a template."
-msgstr "Les thèmes suivants sont installés, mais incomplets. Les thèmes doivent avoir au moins une feuille de style et un modèle."
-
-#: wp-admin/themes.php:281
+#: wp-admin/themes.php:287
+msgid ""
+"The following themes are installed but incomplete. Themes must have a "
+"stylesheet and a template."
+msgstr ""
+"Les thèmes suivants sont installés, mais incomplets. Les thèmes doivent "
+"avoir au moins une feuille de style et un modèle."
+
+#: wp-admin/themes.php:291
 msgctxt "theme name"
 msgid "Name"
 msgstr "Nom"
 
 #: wp-admin/tools.php:22
-msgid "Categories have hierarchy, meaning that you can nest sub-categories. Tags do not have hierarchy and cannot be nested. Sometimes people start out using one on their posts, then later realize that the other would work better for their content."
-msgstr "Les catégories disposent d&rsquo;une hiérarchie, ce qui signifie que vous pouvez leur donner des sous-catégories. Les mots-clefs n&rsquo;ont pas de hiérarchie et ne peuvent être imbriqués. Parfois, des auteurs commencent par utiliser une sorte de caractérisation, pour se rendre compte par la suite qu&rsquo;ils préfèrent l&rsquo;autre."
+msgid ""
+"Categories have hierarchy, meaning that you can nest sub-categories. Tags do "
+"not have hierarchy and cannot be nested. Sometimes people start out using "
+"one on their posts, then later realize that the other would work better for "
+"their content."
+msgstr ""
+"Les catégories disposent d&rsquo;une hiérarchie, ce qui signifie que vous "
+"pouvez leur donner des sous-catégories. Les mots-clefs n&rsquo;ont pas de "
+"hiérarchie et ne peuvent être imbriqués. Parfois, des auteurs commencent par "
+"utiliser une sorte de caractérisation, pour se rendre compte par la suite "
+"qu&rsquo;ils préfèrent l&rsquo;autre."
 
 #: wp-admin/tools.php:23
-msgid "The Categories and Tags Converter link on this screen will take you to the Import screen, where that Converter is one of the plugins you can install. Once that plugin is installed, the Activate Plugin &amp; Run Importer link will take you to a screen where you can choose to convert tags into categories or vice versa."
-msgstr "Le lien &laquo;&nbsp;convertisseur de catégories et mots-clefs&nbsp;&raquo; vous mènera à la page d&rsquo;import, où ledit convertisseur est l&rsquo;une des extensions que vous pouvez installer. Une fois installée, le lien &laquo;&nbsp;Activer l&rsquo;extension & lancer l&rsquo;importateur&nbsp;&raquo; vous mènera à l&rsquo;écran d&rsquo;où vous pourrez choisir de lancer une conversion dans un sens ou dans l&rsquo;autre."
+msgid ""
+"The Categories and Tags Converter link on this screen will take you to the "
+"Import screen, where that Converter is one of the plugins you can install. "
+"Once that plugin is installed, the Activate Plugin &amp; Run Importer link "
+"will take you to a screen where you can choose to convert tags into "
+"categories or vice versa."
+msgstr ""
+"Le lien &laquo;&nbsp;convertisseur de catégories et mots-clefs&nbsp;&raquo; "
+"vous mènera à la page d&rsquo;import, où ledit convertisseur est l&rsquo;une "
+"des extensions que vous pouvez installer. Une fois installée, le lien &laquo;"
+"&nbsp;Activer l&rsquo;extension & lancer l&rsquo;importateur&nbsp;&raquo; "
+"vous mènera à l&rsquo;écran d&rsquo;où vous pourrez choisir de lancer une "
+"conversion dans un sens ou dans l&rsquo;autre."
 
 #: wp-admin/tools.php:28
-msgid "<a href=\"http://codex.wordpress.org/Tools_Screen\" target=\"_blank\">Documentation on Tools</a>"
-msgstr "<a href=\"http://codex.wordpress.org/Tools_Screen\" target=\"_blank\">Documentation sur les outils (en)</a>"
+msgid ""
+"<a href=\"http://codex.wordpress.org/Tools_Screen\" target=\"_blank"
+"\">Documentation on Tools</a>"
+msgstr ""
+"<a href=\"http://codex.wordpress.org/Tools_Screen\" target=\"_blank"
+"\">Documentation sur les outils (en)</a>"
 
 #: wp-admin/tools.php:61
-msgid "If you want to convert your categories to tags (or vice versa), use the <a href=\"%s\">Categories and Tags Converter</a> available from the Import screen."
-msgstr "Si vous souhaitez convertir vos catégories en mots-clefs (et vice versa), utilisez le <a href=\"%s\">Convertisseur de catégories mots-clefs</a>, disponible depuis l&rsquo;écran des importateurs."
-
-#: wp-admin/update-core.php:22
-#: wp-admin/update-core.php:484
-#: wp-admin/update-core.php:513
+msgid ""
+"If you want to convert your categories to tags (or vice versa), use the <a "
+"href=\"%s\">Categories and Tags Converter</a> available from the Import "
+"screen."
+msgstr ""
+"Si vous souhaitez convertir vos catégories en mots-clefs (et vice versa), "
+"utilisez le <a href=\"%s\">Convertisseur de catégories mots-clefs</a>, "
+"disponible depuis l&rsquo;écran des importateurs."
+
+#: wp-admin/update-core.php:22 wp-admin/update-core.php:464
+#: wp-admin/update-core.php:489 wp-admin/update-core.php:518
 msgid "You do not have sufficient permissions to update this site."
-msgstr "Vous n&rsquo;avez pas les droits suffisants pour mettre à jour ce site."
+msgstr ""
+"Vous n&rsquo;avez pas les droits suffisants pour mettre à jour ce site."
 
 #: wp-admin/update-core.php:39
-msgid "You are using a development version of WordPress. You can update to the latest nightly build automatically or download the nightly build and install it manually:"
-msgstr "Vous utilisez une version de développement de WordPress. Vous pouvez faire une mise à jour automatique vers la toute dernière version quotidienne (&laquo;&nbsp;<i>nightly build</i>&nbsp;&raquo;), ou télécharger cette version quotidienne et l&rsquo;installer vous-même&nbsp;:"
+msgid ""
+"You are using a development version of WordPress. You can update to the "
+"latest nightly build automatically or download the nightly build and install "
+"it manually:"
+msgstr ""
+"Vous utilisez une version de développement de WordPress. Vous pouvez faire "
+"une mise à jour automatique vers la toute dernière version quotidienne "
+"(&laquo;&nbsp;<i>nightly build</i>&nbsp;&raquo;), ou télécharger cette "
+"version quotidienne et l&rsquo;installer vous-même&nbsp;:"
 
 #: wp-admin/update-core.php:40
 msgid "Download nightly build"
 msgstr "Télécharger la dernière version de développement"
 
 #: wp-admin/update-core.php:43
-msgid "You have the latest version of WordPress. You do not need to update. However, if you want to re-install version %s, you can do so automatically or download the package and re-install manually:"
-msgstr "Vous utilisez la dernière version de WordPress. Vous n&rsquo;avez pas besoin de faire de mise à jour. Cependant, si vous souhaitez réinstaller la version %s, vous pouvez le faire automatiquement, ou télécharger l&rsquo;archive pour l&rsquo;installer vous-même&nbsp;:"
+msgid ""
+"You have the latest version of WordPress. You do not need to update. "
+"However, if you want to re-install version %s, you can do so automatically "
+"or download the package and re-install manually:"
+msgstr ""
+"Vous utilisez la dernière version de WordPress. Vous n&rsquo;avez pas besoin "
+"de faire de mise à jour. Cependant, si vous souhaitez réinstaller la version "
+"%s, vous pouvez le faire automatiquement, ou télécharger l&rsquo;archive "
+"pour l&rsquo;installer vous-même&nbsp;:"
 
 #: wp-admin/update-core.php:44
 msgid "Re-install Now"
 msgstr "Ré-installer maintenant"
 
-#: wp-admin/update-core.php:54
-#: wp-admin/upgrade.php:69
-msgid "You cannot update because <a href=\"http://codex.wordpress.org/Version_%1$s\">WordPress %1$s</a> requires PHP version %2$s or higher and MySQL version %3$s or higher. You are running PHP version %4$s and MySQL version %5$s."
-msgstr "Cette mise à jour ne peut être installée, car <a href=\"http://codex.wordpress.org/Version_%1$s\">WordPress %1$s</a> requiert une version de PHP égale ou supérieure à la %2$s, et une version de MySQL égale ou supérieure à la %3$s. Votre hébergement utilise PHP version %4$s et MySQL version %5$s."
-
-#: wp-admin/update-core.php:56
-#: wp-admin/upgrade.php:71
-msgid "You cannot update because <a href=\"http://codex.wordpress.org/Version_%1$s\">WordPress %1$s</a> requires PHP version %2$s or higher. You are running version %3$s."
-msgstr "Cette mise à jour ne peut être installée, car <a href=\"http://codex.wordpress.org/Version_%1$s\">WordPress %1$s</a> requiert une version de PHP égale ou supérieure à la %2$s. Votre hébergement utilise PHP version %3$s."
-
-#: wp-admin/update-core.php:58
-#: wp-admin/upgrade.php:73
-msgid "You cannot update because <a href=\"http://codex.wordpress.org/Version_%1$s\">WordPress %1$s</a> requires MySQL version %2$s or higher. You are running version %3$s."
-msgstr "Cette mise à jour ne peut être installée, car <a href=\"http://codex.wordpress.org/Version_%1$s\">WordPress %1$s</a> requiert une version de MySQL égale ou supérieure à la %2$s. Votre hébergement utilise MySQL version %3$s."
+#: wp-admin/update-core.php:54 wp-admin/upgrade.php:71
+msgid ""
+"You cannot update because <a href=\"http://codex.wordpress.org/Version_%1$s"
+"\">WordPress %1$s</a> requires PHP version %2$s or higher and MySQL version "
+"%3$s or higher. You are running PHP version %4$s and MySQL version %5$s."
+msgstr ""
+"Cette mise à jour ne peut être installée, car <a href=\"http://codex."
+"wordpress.org/Version_%1$s\">WordPress %1$s</a> requiert une version de PHP "
+"égale ou supérieure à la %2$s, et une version de MySQL égale ou supérieure à "
+"la %3$s. Votre hébergement utilise PHP version %4$s et MySQL version %5$s."
+
+#: wp-admin/update-core.php:56 wp-admin/upgrade.php:73
+msgid ""
+"You cannot update because <a href=\"http://codex.wordpress.org/Version_%1$s"
+"\">WordPress %1$s</a> requires PHP version %2$s or higher. You are running "
+"version %3$s."
+msgstr ""
+"Cette mise à jour ne peut être installée, car <a href=\"http://codex."
+"wordpress.org/Version_%1$s\">WordPress %1$s</a> requiert une version de PHP "
+"égale ou supérieure à la %2$s. Votre hébergement utilise PHP version %3$s."
+
+#: wp-admin/update-core.php:58 wp-admin/upgrade.php:75
+msgid ""
+"You cannot update because <a href=\"http://codex.wordpress.org/Version_%1$s"
+"\">WordPress %1$s</a> requires MySQL version %2$s or higher. You are running "
+"version %3$s."
+msgstr ""
+"Cette mise à jour ne peut être installée, car <a href=\"http://codex."
+"wordpress.org/Version_%1$s\">WordPress %1$s</a> requiert une version de "
+"MySQL égale ou supérieure à la %2$s. Votre hébergement utilise MySQL version "
+"%3$s."
 
 #: wp-admin/update-core.php:60
-msgid "You can update to <a href=\"http://codex.wordpress.org/Version_%1$s\">WordPress %2$s</a> automatically or download the package and install it manually:"
-msgstr "Vous pouvez faire la mise à jour vers <a href=\"http://codex.wordpress.org/Version_%1$s\">WordPress %2$s</a> automatiquement ou télécharger l&rsquo;archive complète et l&rsquo;installer vous-même&nbsp;:"
+msgid ""
+"You can update to <a href=\"http://codex.wordpress.org/Version_%1$s"
+"\">WordPress %2$s</a> automatically or download the package and install it "
+"manually:"
+msgstr ""
+"Vous pouvez faire la mise à jour vers <a href=\"http://codex.wordpress.org/"
+"Version_%1$s\">WordPress %2$s</a> automatiquement ou télécharger l&rsquo;"
+"archive complète et l&rsquo;installer vous-même&nbsp;:"
 
 #: wp-admin/update-core.php:64
 msgid "Download %s"
@@ -9075,15 +11615,28 @@
 msgstr "Réafficher cette mise à jour"
 
 #: wp-admin/update-core.php:91
-msgid "This localized version contains both the translation and various other localization fixes. You can skip upgrading if you want to keep your current translation."
-msgstr "Cette version localisée contient à la fois la traduction et divers correctifs liés à la localisation. Si vous souhaitez conserver votre traduction actuelle, vous pouvez ne pas utiliser cette version."
+msgid ""
+"This localized version contains both the translation and various other "
+"localization fixes. You can skip upgrading if you want to keep your current "
+"translation."
+msgstr ""
+"Cette version localisée contient à la fois la traduction et divers "
+"correctifs liés à la localisation. Si vous souhaitez conserver votre "
+"traduction actuelle, vous pouvez ne pas utiliser cette version."
 
 #: wp-admin/update-core.php:93
-msgid "You are about to install WordPress %s <strong>in English (US).</strong> There is a chance this update will break your translation. You may prefer to wait for the localized version to be released."
-msgstr "Vous êtes sur le point d&rsquo;installer WordPress %s <strong>en anglais (US)</strong>. Il se peut que cette mise à jour ne fonctionne pas avec la traduction de WordPress dont vous disposez. Vous devriez sans doute patienter, le temps que la mise à jour soit officiellement traduite dans votre langue."
-
-#: wp-admin/update-core.php:103
-#: wp-admin/update-core.php:115
+msgid ""
+"You are about to install WordPress %s <strong>in English (US).</strong> "
+"There is a chance this update will break your translation. You may prefer to "
+"wait for the localized version to be released."
+msgstr ""
+"Vous êtes sur le point d&rsquo;installer WordPress %s <strong>en anglais (US)"
+"</strong>. Il se peut que cette mise à jour ne fonctionne pas avec la "
+"traduction de WordPress dont vous disposez. Vous devriez sans doute "
+"patienter, le temps que la mise à jour soit officiellement traduite dans "
+"votre langue."
+
+#: wp-admin/update-core.php:103 wp-admin/update-core.php:115
 msgid "Show hidden updates"
 msgstr "Afficher les mises à jour cachées"
 
@@ -9092,139 +11645,199 @@
 msgstr "Masquer les mises à jour cachées"
 
 #: wp-admin/update-core.php:140
-#: wp-admin/update-core.php:428
-msgid "WordPress Updates"
-msgstr "Mises à jour de WordPress"
-
-#: wp-admin/update-core.php:145
-msgid "Please select one or more themes to update."
-msgstr "Merci de sélectionner un ou plusieurs thèmes à mettre à jour."
-
-#: wp-admin/update-core.php:147
-msgid "Please select one or more plugins to update."
-msgstr "Merci de sélectionner une ou plusieurs extensions à mettre à jour."
-
-#. translators: %1 date, %2 time.
-#: wp-admin/update-core.php:153
-msgid "Last checked on %1$s at %2$s."
-msgstr "Dernière vérification le %1$s à %2$s."
-
-#: wp-admin/update-core.php:154
-msgid "Check Again"
-msgstr "Vérifier à nouveau"
-
-#: wp-admin/update-core.php:159
 msgid "You have the latest version of WordPress."
 msgstr "Vous avez la dernière version de WordPress."
 
-#: wp-admin/update-core.php:163
-msgid "<strong>Important:</strong> before updating, please <a href=\"http://codex.wordpress.org/WordPress_Backups\">back up your database and files</a>. For help with updates, visit the <a href=\"http://codex.wordpress.org/Updating_WordPress\">Updating WordPress</a> Codex page."
-msgstr "<strong>Important&nbsp;:</strong> avant de faire une mise à jour, veillez à <a href=\"http://codex.wordpress.org/WordPress_Backups\">faire une sauvegarde de votre base de données et de vos fichiers (en)</a> (en anglais).<br />Pour obtenir de l&rsquo;aide en français sur les mises à jour, lisez la page <a href=\"http://codex.wordpress.org/fr:Mettre_a_Jour_WordPress\">Mettre à jour WordPress (fr)</a>."
-
-#: wp-admin/update-core.php:167
+#: wp-admin/update-core.php:144
+msgid ""
+"<strong>Important:</strong> before updating, please <a href=\"http://codex."
+"wordpress.org/WordPress_Backups\">back up your database and files</a>. For "
+"help with updates, visit the <a href=\"http://codex.wordpress.org/"
+"Updating_WordPress\">Updating WordPress</a> Codex page."
+msgstr ""
+"<strong>Important&nbsp;:</strong> avant de faire une mise à jour, veillez à "
+"<a href=\"http://codex.wordpress.org/WordPress_Backups\">faire une "
+"sauvegarde de votre base de données et de vos fichiers (en)</a> (en anglais)."
+"<br />Pour obtenir de l&rsquo;aide en français sur les mises à jour, lisez "
+"la page <a href=\"http://codex.wordpress.org/fr:Mettre_a_Jour_WordPress"
+"\">Mettre à jour WordPress (fr)</a>."
+
+#: wp-admin/update-core.php:148
 msgid "An updated version of WordPress is available."
 msgstr "Une nouvelle version de WordPress est disponible."
 
-#: wp-admin/update-core.php:180
-msgid "While your site is being updated, it will be in maintenance mode. As soon as your updates are complete, your site will return to normal."
-msgstr "Durant le processus de mise à jour, votre site sera en mode de maintenance. Dès que le processus sera achevé, votre site sera à nouveau accessible."
-
-#: wp-admin/update-core.php:183
+#: wp-admin/update-core.php:161
+msgid ""
+"While your site is being updated, it will be in maintenance mode. As soon as "
+"your updates are complete, your site will return to normal."
+msgstr ""
+"Durant le processus de mise à jour, votre site sera en mode de maintenance. "
+"Dès que le processus sera achevé, votre site sera à nouveau accessible."
+
+#: wp-admin/update-core.php:164
 msgid "<a href=\"%s\">Learn more about WordPress %s</a>."
 msgstr "<a href=\"%s\">À propos de WordPress %s</a>."
 
-#: wp-admin/update-core.php:204
+#: wp-admin/update-core.php:178
 msgid "Your plugins are all up to date."
 msgstr "Vos extensions sont toutes à jour."
 
-#: wp-admin/update-core.php:216
-msgid "The following plugins have new versions available. Check the ones you want to update and then click &#8220;Update Plugins&#8221;."
-msgstr "Les extensions suivantes disposent d&rsquo;une nouvelle version. Cochez celles que vous voulez mettre à jour, puis cliquez sur &laquo;&nbsp;Mettre à jour les extensions&nbsp;&raquo;."
-
-#: wp-admin/update-core.php:240
+#: wp-admin/update-core.php:190
+msgid ""
+"The following plugins have new versions available. Check the ones you want "
+"to update and then click &#8220;Update Plugins&#8221;."
+msgstr ""
+"Les extensions suivantes disposent d&rsquo;une nouvelle version. Cochez "
+"celles que vous voulez mettre à jour, puis cliquez sur &laquo;&nbsp;Mettre à "
+"jour les extensions&nbsp;&raquo;."
+
+#: wp-admin/update-core.php:214
 msgid "Compatibility with WordPress %1$s: 100%% (according to its author)"
 msgstr "Compatibilité avec WordPress %1$s&nbsp;: 100%% (selon l&rsquo;auteur)"
 
-#: wp-admin/update-core.php:243
-#: wp-admin/update-core.php:251
-msgid "Compatibility with WordPress %1$s: %2$d%% (%3$d \"works\" votes out of %4$d total)"
-msgstr "Compatibilité avec WordPress %1$s&nbsp;: %2$d%% (%3$d votes &laquo;&nbsp;ça marche&nbsp;&raquo; sur un total de %4$d)"
-
-#: wp-admin/update-core.php:245
-#: wp-admin/update-core.php:253
+#: wp-admin/update-core.php:217 wp-admin/update-core.php:225
+msgid ""
+"Compatibility with WordPress %1$s: %2$d%% (%3$d \"works\" votes out of %4$d "
+"total)"
+msgstr ""
+"Compatibilité avec WordPress %1$s&nbsp;: %2$d%% (%3$d votes &laquo;&nbsp;ça "
+"marche&nbsp;&raquo; sur un total de %4$d)"
+
+#: wp-admin/update-core.php:219 wp-admin/update-core.php:227
 msgid "Compatibility with WordPress %1$s: Unknown"
 msgstr "Compatibilité avec WordPress %1$s&nbsp;: inconnue"
 
-#: wp-admin/update-core.php:264
+#: wp-admin/update-core.php:238
 msgid "View version %1$s details"
 msgstr "Voir les détails de la version %1$s"
 
-#: wp-admin/update-core.php:270
-#: wp-admin/update-core.php:318
+#: wp-admin/update-core.php:244 wp-admin/update-core.php:292
 msgid "You have version %1$s installed. Update to %2$s."
 msgstr "Vous utilisez la version %1$s. Mettez à jour vers la version %2$s."
 
-#: wp-admin/update-core.php:285
+#: wp-admin/update-core.php:259
 msgid "Your themes are all up to date."
 msgstr "Vos thèmes sont tous à jour."
 
-#: wp-admin/update-core.php:293
-msgid "The following themes have new versions available. Check the ones you want to update and then click &#8220;Update Themes&#8221;."
-msgstr "Les thèmes suivants disposent d&rsquo;une nouvelle version. Cochez ceux que vous voulez mettre à jour, puis cliquez sur &laquo;&nbsp;Mettre à jour les thèmes&nbsp;&raquo;."
-
-#: wp-admin/update-core.php:294
-msgid "<strong>Please Note:</strong> Any customizations you have made to theme files will be lost. Please consider using <a href=\"%s\">child themes</a> for modifications."
-msgstr "<strong>Notez bien&nbsp;:</strong> toutes les personnalisations que vous pourriez avoir apportées aux fichiers des thèmes seront perdues. Pensez à utiliser des <a href=\"%s\">thèmes enfants</a> pour vos modifications."
-
-#: wp-admin/update-core.php:294
+#: wp-admin/update-core.php:267
+msgid ""
+"The following themes have new versions available. Check the ones you want to "
+"update and then click &#8220;Update Themes&#8221;."
+msgstr ""
+"Les thèmes suivants disposent d&rsquo;une nouvelle version. Cochez ceux que "
+"vous voulez mettre à jour, puis cliquez sur &laquo;&nbsp;Mettre à jour les "
+"thèmes&nbsp;&raquo;."
+
+#: wp-admin/update-core.php:268
+msgid ""
+"<strong>Please Note:</strong> Any customizations you have made to theme "
+"files will be lost. Please consider using <a href=\"%s\">child themes</a> "
+"for modifications."
+msgstr ""
+"<strong>Notez bien&nbsp;:</strong> toutes les personnalisations que vous "
+"pourriez avoir apportées aux fichiers des thèmes seront perdues. Pensez à "
+"utiliser des <a href=\"%s\">thèmes enfants</a> pour vos modifications."
+
+#: wp-admin/update-core.php:268
 msgctxt "Link used in suggestion to use child themes in GUU"
 msgid "http://codex.wordpress.org/Child_Themes"
 msgstr "http://codex.wordpress.org/Child_Themes"
 
-#: wp-admin/update-core.php:297
-#: wp-admin/update-core.php:324
-#: wp-admin/update-core.php:529
-#: wp-admin/update-core.php:534
+#: wp-admin/update-core.php:271 wp-admin/update-core.php:298
+#: wp-admin/update-core.php:534 wp-admin/update-core.php:539
 msgid "Update Themes"
 msgstr "Mettre à jour les thèmes"
 
-#: wp-admin/update-core.php:360
+#: wp-admin/update-core.php:334
 msgid "Update WordPress"
 msgstr "Mettre à jour WordPress"
 
-#: wp-admin/update-core.php:377
+#: wp-admin/update-core.php:351
 msgid "Installation Failed"
 msgstr "Échec de l&rsquo;installation"
 
-#: wp-admin/update-core.php:435
-msgid "This screen lets you update to the latest version of WordPress as well as update your themes and plugins from the WordPress.org repository. When updates are available, the number of available updates will appear in a bubble on the left hand menu as a notification."
-msgstr "Cet écran vous permet de mettre à jour WordPress vers sa dernière version, ainsi que de mettre à jour les thèmes et extensions à partir du dépôt de WordPress.org. Quand des mises à jour sont disponibles, leur nombre apparaît dans une infobulle de notification, dans le menu situé à gauche."
-
-#: wp-admin/update-core.php:436
-msgid "It is very important to keep your WordPress installation up to date for security reasons, so when you see a number appear, make sure you take the time to update, which is an easy process."
-msgstr "Il est impératif que votre installation de WordPress soit toujours à la dernière version en date, pour raisons de sécurité. De fait, quand une nouvelle version est annoncée, prenez le temps de faire une mise à jour&nbsp;: le processus est très simple."
-
-#: wp-admin/update-core.php:441
+#: wp-admin/update-core.php:402 wp-admin/update-core.php:434
+msgid "WordPress Updates"
+msgstr "Mises à jour de WordPress"
+
+#: wp-admin/update-core.php:409
+msgid ""
+"This screen lets you update to the latest version of WordPress as well as "
+"update your themes and plugins from the WordPress.org repository. When "
+"updates are available, the number of available updates will appear in a "
+"bubble on the left hand menu as a notification."
+msgstr ""
+"Cet écran vous permet de mettre à jour WordPress vers sa dernière version, "
+"ainsi que de mettre à jour les thèmes et extensions à partir du dépôt de "
+"WordPress.org. Quand des mises à jour sont disponibles, leur nombre apparaît "
+"dans une infobulle de notification, dans le menu situé à gauche."
+
+#: wp-admin/update-core.php:410
+msgid ""
+"It is very important to keep your WordPress installation up to date for "
+"security reasons, so when you see a number appear, make sure you take the "
+"time to update, which is an easy process."
+msgstr ""
+"Il est impératif que votre installation de WordPress soit toujours à la "
+"dernière version en date, pour raisons de sécurité. De fait, quand une "
+"nouvelle version est annoncée, prenez le temps de faire une mise à "
+"jour&nbsp;: le processus est très simple."
+
+#: wp-admin/update-core.php:415
 msgid "How to Update"
 msgstr "Comment faire la mise à jour"
 
-#: wp-admin/update-core.php:443
-msgid "Updating your WordPress installation is a simple one-click procedure; just click on the Update button when it says a new version is available."
-msgstr "La mise à jour de votre version de WordPress se fait en un seul clic. Cliquez simplement sur le bouton &laquo;&nbsp;Mettre à jour&nbsp;&raquo; quand il indique qu&rsquo;une nouvelle version est disponible."
-
-#: wp-admin/update-core.php:444
-msgid "To update themes or plugins from this screen, use the checkboxes to make your selection and click on the appropriate Update button. Check the box at the top of the Themes or Plugins section to select all and update them all at once."
-msgstr "Pour mettre à jour les thèmes ou extensions depuis cet écran, utilisez les cases à cocher pour faire votre sélection, et cliquez sur le bouton correspondant. Cochez la case en haut de la section Thèmes ou Extensions pour tout sélectionner, et donc tout mettre à jour d&rsquo;un clic."
-
-#: wp-admin/update-core.php:449
-msgid "<a href=\"http://codex.wordpress.org/Dashboard_Updates_Screen\" target=\"_blank\">Documentation on Updating WordPress</a>"
-msgstr "<a href=\"http://codex.wordpress.org/Dashboard_Updates_Screen\" target=\"_blank\">Documentation sur la mise à jour de WordPress (en)</a>"
-
-#: wp-admin/update.php:24
-#: wp-admin/update.php:50
-#: wp-admin/update.php:69
+#: wp-admin/update-core.php:417
+msgid ""
+"Updating your WordPress installation is a simple one-click procedure; just "
+"click on the Update button when it says a new version is available."
+msgstr ""
+"La mise à jour de votre version de WordPress se fait en un seul clic. "
+"Cliquez simplement sur le bouton &laquo;&nbsp;Mettre à jour&nbsp;&raquo; "
+"quand il indique qu&rsquo;une nouvelle version est disponible."
+
+#: wp-admin/update-core.php:418
+msgid ""
+"To update themes or plugins from this screen, use the checkboxes to make "
+"your selection and click on the appropriate Update button. Check the box at "
+"the top of the Themes or Plugins section to select all and update them all "
+"at once."
+msgstr ""
+"Pour mettre à jour les thèmes ou extensions depuis cet écran, utilisez les "
+"cases à cocher pour faire votre sélection, et cliquez sur le bouton "
+"correspondant. Cochez la case en haut de la section Thèmes ou Extensions "
+"pour tout sélectionner, et donc tout mettre à jour d&rsquo;un clic."
+
+#: wp-admin/update-core.php:423
+msgid ""
+"<a href=\"http://codex.wordpress.org/Dashboard_Updates_Screen\" target="
+"\"_blank\">Documentation on Updating WordPress</a>"
+msgstr ""
+"<a href=\"http://codex.wordpress.org/Dashboard_Updates_Screen\" target="
+"\"_blank\">Documentation sur la mise à jour de WordPress (en)</a>"
+
+#: wp-admin/update-core.php:439
+msgid "Please select one or more themes to update."
+msgstr "Veuillez sélectionner un ou plusieurs thèmes à mettre à jour."
+
+#: wp-admin/update-core.php:441
+msgid "Please select one or more plugins to update."
+msgstr "Veuillez sélectionner une ou plusieurs extensions à mettre à jour."
+
+#. translators: %1 date, %2 time.
+#: wp-admin/update-core.php:447
+msgid "Last checked on %1$s at %2$s."
+msgstr "Dernière vérification le %1$s à %2$s."
+
+#: wp-admin/update-core.php:448
+msgid "Check Again"
+msgstr "Vérifier à nouveau"
+
+#: wp-admin/update.php:24 wp-admin/update.php:50 wp-admin/update.php:69
 msgid "You do not have sufficient permissions to update plugins for this site."
-msgstr "Vous n&rsquo;avez pas les droits suffisants pour mettre à jour les extensions de ce site."
+msgstr ""
+"Vous n&rsquo;avez pas les droits suffisants pour mettre à jour les "
+"extensions de ce site."
 
 #: wp-admin/update.php:78
 msgid "Plugin Reactivation"
@@ -9236,12 +11849,8 @@
 
 #: wp-admin/update.php:83
 msgid "Plugin failed to reactivate due to a fatal error."
-msgstr "L&rsquo;extension n&rsquo;a pu être réactivée suite à une erreur fatale."
-
-#: wp-admin/update.php:93
-#: wp-admin/update.php:124
-msgid "You do not have sufficient permissions to install plugins for this site."
-msgstr "Vous n&rsquo;avez pas les droits suffisants pour installer des extensions sur ce site."
+msgstr ""
+"L&rsquo;extension n&rsquo;a pu être réactivée suite à une erreur fatale."
 
 #: wp-admin/update.php:108
 msgid "Installing Plugin: %s"
@@ -9256,15 +11865,11 @@
 msgid "Installing Plugin from uploaded file: %s"
 msgstr "Installation de l&rsquo;extension à partir du fichier&nbsp;: %s"
 
-#: wp-admin/update.php:151
-#: wp-admin/update.php:171
+#: wp-admin/update.php:151 wp-admin/update.php:171
 msgid "You do not have sufficient permissions to update themes for this site."
-msgstr "Vous n&rsquo;avez pas les droits suffisants pour mettre à jour les thèmes de ce site."
-
-#: wp-admin/update.php:197
-#: wp-admin/update.php:227
-msgid "You do not have sufficient permissions to install themes for this site."
-msgstr "Vous n&rsquo;avez pas les droits suffisants pour installer des thèmes sur ce site."
+msgstr ""
+"Vous n&rsquo;avez pas les droits suffisants pour mettre à jour les thèmes de "
+"ce site."
 
 #: wp-admin/update.php:214
 msgid "Installing Theme: %s"
@@ -9278,145 +11883,195 @@
 msgid "Installing Theme from uploaded file: %s"
 msgstr "Installation du thème à partir du fichier&nbsp;: %s"
 
-#: wp-admin/upgrade.php:52
+#: wp-admin/upgrade.php:54
 msgid "WordPress &rsaquo; Update"
 msgstr "WordPress &rsaquo; Mise à jour"
 
-#: wp-admin/upgrade.php:63
+#: wp-admin/upgrade.php:65
 msgid "No Update Required"
 msgstr "Pas de mise à jour requise"
 
-#: wp-admin/upgrade.php:64
+#: wp-admin/upgrade.php:66
 msgid "Your WordPress database is already up-to-date!"
 msgstr "Votre base de données WordPress est déjà à jour&nbsp;!"
 
-#: wp-admin/upgrade.php:82
-msgid "Database Update Required"
-msgstr "Mise à jour de la base de données requise"
-
-#: wp-admin/upgrade.php:83
-msgid "WordPress has been updated! Before we send you on your way, we have to update your database to the newest version."
-msgstr "WordPress a été mis à jour&nbsp;! Avant de vous laisser continuer, nous devons mettre à jour la base de données."
-
 #: wp-admin/upgrade.php:84
-msgid "The update process may take a little while, so please be patient."
-msgstr "Le processus de mise à jour peut prendre un certain temps, merci donc pour votre patience."
+msgid "Database Update Required"
+msgstr "Mise à jour de la base de données requise"
 
 #: wp-admin/upgrade.php:85
+msgid ""
+"WordPress has been updated! Before we send you on your way, we have to "
+"update your database to the newest version."
+msgstr ""
+"WordPress a été mis à jour&nbsp;! Avant de vous laisser continuer, nous "
+"devons mettre à jour la base de données."
+
+#: wp-admin/upgrade.php:86
+msgid "The update process may take a little while, so please be patient."
+msgstr ""
+"Le processus de mise à jour peut prendre un certain temps, merci donc pour "
+"votre patience."
+
+#: wp-admin/upgrade.php:87
 msgid "Update WordPress Database"
 msgstr "Mettre à jour la base de données de WordPress"
 
-#: wp-admin/upgrade.php:95
+#: wp-admin/upgrade.php:97
 msgid "Update Complete"
 msgstr "Mise à jour terminée"
 
-#: wp-admin/upgrade.php:96
+#: wp-admin/upgrade.php:98
 msgid "Your WordPress database has been successfully updated!"
 msgstr "La base de données de WordPress a bien été mise à jour&nbsp;!"
 
-#: wp-admin/upgrade.php:101
+#: wp-admin/upgrade.php:103
 msgid "%s queries"
 msgstr "%s requêtes"
 
-#: wp-admin/upgrade.php:103
+#: wp-admin/upgrade.php:105
 msgid "%s seconds"
 msgstr "%s secondes"
 
 #: wp-admin/upload.php:42
 msgid "You are not allowed to scan for lost attachments."
-msgstr "Vous n&rsquo;avez pas l&rsquo;autorisation de chercher les fichiers attachés perdus."
-
-#: wp-admin/upload.php:97
+msgstr ""
+"Vous n&rsquo;avez pas l&rsquo;autorisation de chercher les fichiers attachés "
+"perdus."
+
+#: wp-admin/upload.php:99
 msgid "You are not allowed to move this post to the trash."
-msgstr "Vous n&rsquo;avez pas l&rsquo;autorisation de déplacer cet article dans la Corbeille."
-
-#: wp-admin/upload.php:100
+msgstr ""
+"Vous n&rsquo;avez pas l&rsquo;autorisation de déplacer cet article dans la "
+"Corbeille."
+
+#: wp-admin/upload.php:102
 msgid "Error in moving to trash..."
 msgstr "Erreur lors du déplacement dans la Corbeille..."
 
-#: wp-admin/upload.php:109
+#: wp-admin/upload.php:111
 msgid "You are not allowed to move this post out of the trash."
-msgstr "Vous n&rsquo;avez pas l&rsquo;autorisation de sortir cet article de la Corbeille."
-
-#: wp-admin/upload.php:112
+msgstr ""
+"Vous n&rsquo;avez pas l&rsquo;autorisation de sortir cet article de la "
+"Corbeille."
+
+#: wp-admin/upload.php:114
 msgid "Error in restoring from trash..."
 msgstr "Erreur pendant la récupération depuis la Corbeille..."
 
-#: wp-admin/upload.php:121
+#: wp-admin/upload.php:123
 msgid "You are not allowed to delete this post."
 msgstr "Vous n&rsquo;avez pas l&rsquo;autorisation de supprimer cet article."
 
-#: wp-admin/upload.php:146
+#: wp-admin/upload.php:148
 msgctxt "items per page (screen options)"
 msgid "Media items"
-msgstr "Fichiers multimédias"
-
-#: wp-admin/upload.php:152
-msgid "All the files you&#8217;ve uploaded are listed in the Media Library, with the most recent uploads listed first. You can use the Screen Options tab to customize the display of this screen."
-msgstr "Tous les fichiers que vous avez mis en ligne sont listés dans la Bibliothèque de Médias, les plus récents en premier. Vous pouvez utiliser l&rsquo;onglet &laquo;&nbsp;Options de l&rsquo;écran&nbsp;&raquo; pour personnaliser l&rsquo;affichage de cet écran."
-
-#: wp-admin/upload.php:153
-msgid "You can narrow the list by file type/status using the text link filters at the top of the screen. You also can refine the list by date using the dropdown menu above the media table."
-msgstr "Vous pouvez limiter cette liste par type de fichier ou par état à l&rsquo;aide des filtres en haut de l&rsquo;écran. Vous pouvez également affiner la liste par défaut à l&rsquo;aide du menu déroulant au dessus du tableau."
-
-#: wp-admin/upload.php:159
-msgid "Hovering over a row reveals action links: Edit, Delete Permanently, and View. Clicking Edit or on the media file&#8217;s name displays a simple screen to edit that individual file&#8217;s metadata. Clicking Delete Permanently will delete the file from the media library (as well as from any posts to which it is currently attached). View will take you to the display page for that file."
-msgstr "Le survol par la souris des lignes du tableau révèle des liens&nbsp;: &laquo;&nbsp;Modifier&nbsp;&raquo;, &laquo;&nbsp;Supprimer définitivement&nbsp;&raquo; et &laquo;&nbsp;Afficher&nbsp;&raquo;. En cliquant sur &laquo;&nbsp;Modifier&nbsp;&raquo; ou sur le nom d&rsquo;un fichier média, vous obtiendrez un écran où vous pourrez modifier les métadonnées du fichier. En cliquant sur &laquo;&nbsp;Supprimer définitivement&nbsp;&raquo;, vous supprimerez le fichier de la bibliothèque (ainsi que de tous les articles auxquels il était lié). &laquo;&nbsp;Afficher&nbsp;&raquo; vous enverra sur la page d&rsquo;affichage de ce fichier."
-
-#: wp-admin/upload.php:163
+msgstr "Fichiers média"
+
+#: wp-admin/upload.php:154
+msgid ""
+"All the files you&#8217;ve uploaded are listed in the Media Library, with "
+"the most recent uploads listed first. You can use the Screen Options tab to "
+"customize the display of this screen."
+msgstr ""
+"Tous les fichiers que vous avez mis en ligne sont listés dans la "
+"Bibliothèque de Médias, les plus récents en premier. Vous pouvez utiliser "
+"l&rsquo;onglet &laquo;&nbsp;Options de l&rsquo;écran&nbsp;&raquo; pour "
+"personnaliser l&rsquo;affichage de cet écran."
+
+#: wp-admin/upload.php:155
+msgid ""
+"You can narrow the list by file type/status using the text link filters at "
+"the top of the screen. You also can refine the list by date using the "
+"dropdown menu above the media table."
+msgstr ""
+"Vous pouvez limiter cette liste par type de fichier ou par état à l&rsquo;"
+"aide des filtres en haut de l&rsquo;écran. Vous pouvez également affiner la "
+"liste par défaut à l&rsquo;aide du menu déroulant au dessus du tableau."
+
+#: wp-admin/upload.php:161
+msgid ""
+"Hovering over a row reveals action links: Edit, Delete Permanently, and "
+"View. Clicking Edit or on the media file&#8217;s name displays a simple "
+"screen to edit that individual file&#8217;s metadata. Clicking Delete "
+"Permanently will delete the file from the media library (as well as from any "
+"posts to which it is currently attached). View will take you to the display "
+"page for that file."
+msgstr ""
+"Le survol par la souris des lignes du tableau révèle des liens&nbsp;: &laquo;"
+"&nbsp;Modifier&nbsp;&raquo;, &laquo;&nbsp;Supprimer définitivement&nbsp;"
+"&raquo; et &laquo;&nbsp;Afficher&nbsp;&raquo;. En cliquant sur &laquo;&nbsp;"
+"Modifier&nbsp;&raquo; ou sur le nom d&rsquo;un fichier média, vous "
+"obtiendrez un écran où vous pourrez modifier les métadonnées du fichier. En "
+"cliquant sur &laquo;&nbsp;Supprimer définitivement&nbsp;&raquo;, vous "
+"supprimerez le fichier de la bibliothèque (ainsi que de tous les articles "
+"auxquels il était lié). &laquo;&nbsp;Afficher&nbsp;&raquo; vous enverra sur "
+"la page d&rsquo;affichage de ce fichier."
+
+#: wp-admin/upload.php:165
 msgid "Attaching Files"
 msgstr "Fichiers des extensions"
 
-#: wp-admin/upload.php:165
-msgid "If a media file has not been attached to any post, you will see that in the Attached To column, and can click on Attach File to launch a small popup that will allow you to search for a post and attach the file."
-msgstr "Si un fichier média n&rsquo;est lié à aucun article, cela vous sera indiqué dans la colonne &laquo;&nbsp;Attaché à&nbsp;&raquo;, et vous pourrez cliquer sur le lien &laquo;&nbsp;Joindre&nbsp;&raquo; pour afficher une petite fenêtre vous permettant de trouver un article auquel attacher le fichier."
-
-#: wp-admin/upload.php:170
-msgid "<a href=\"http://codex.wordpress.org/Media_Library_Screen\" target=\"_blank\">Documentation on Media Library</a>"
-msgstr "<a href=\"http://codex.wordpress.org/Media_Library_Screen\" target=\"_blank\">Documentation sur la bibliothèque des médias (en)</a>"
-
-#: wp-admin/upload.php:197
+#: wp-admin/upload.php:167
+msgid ""
+"If a media file has not been attached to any post, you will see that in the "
+"Attached To column, and can click on Attach File to launch a small popup "
+"that will allow you to search for a post and attach the file."
+msgstr ""
+"Si un fichier média n&rsquo;est lié à aucun article, cela vous sera indiqué "
+"dans la colonne &laquo;&nbsp;Attaché à&nbsp;&raquo;, et vous pourrez cliquer "
+"sur le lien &laquo;&nbsp;Joindre&nbsp;&raquo; pour afficher une petite "
+"fenêtre vous permettant de trouver un article auquel attacher le fichier."
+
+#: wp-admin/upload.php:172
+msgid ""
+"<a href=\"http://codex.wordpress.org/Media_Library_Screen\" target=\"_blank"
+"\">Documentation on Media Library</a>"
+msgstr ""
+"<a href=\"http://codex.wordpress.org/Media_Library_Screen\" target=\"_blank"
+"\">Documentation sur la bibliothèque des médias (en)</a>"
+
+#: wp-admin/upload.php:199
 msgid "Reattached %d attachment."
 msgid_plural "Reattached %d attachments."
 msgstr[0] "Rattachement de %d fichier attaché."
 msgstr[1] "Rattachement de %d fichiers attachés."
 
-#: wp-admin/upload.php:202
+#: wp-admin/upload.php:204
 msgid "Media attachment permanently deleted."
 msgid_plural "%d media attachments permanently deleted."
 msgstr[0] "Média définitivement supprimé."
 msgstr[1] "%d médias définitivement supprimés."
 
-#: wp-admin/upload.php:207
+#: wp-admin/upload.php:209
 msgid "Media attachment moved to the trash."
 msgid_plural "%d media attachments moved to the trash."
 msgstr[0] "Fichier média déplacé dans la Corbeille."
 msgstr[1] "%d fichiers médias déplacés dans la Corbeille."
 
-#: wp-admin/upload.php:213
+#: wp-admin/upload.php:215
 msgid "Media attachment restored from the trash."
 msgid_plural "%d media attachments restored from the trash."
 msgstr[0] "Fichier média récupéré depuis la Corbeille."
 msgstr[1] "%d fichiers médias récupérés depuis la Corbeille."
 
-#: wp-admin/upload.php:218
+#: wp-admin/upload.php:220
 msgid "Media permanently deleted."
 msgstr "Média définitivement supprimé."
 
-#: wp-admin/upload.php:219
+#: wp-admin/upload.php:221
 msgid "Error saving media attachment."
 msgstr "Erreur lors de la sauvegarde du fichier attaché."
 
-#: wp-admin/upload.php:220
+#: wp-admin/upload.php:222
 msgid "Media moved to the trash."
 msgstr "Fichier média déplacé dans la Corbeille."
 
-#: wp-admin/upload.php:221
+#: wp-admin/upload.php:223
 msgid "Media restored from the trash."
 msgstr "Fichier média récupéré depuis la Corbeille."
 
-#: wp-admin/user-edit.php:22
-#: wp-admin/user-edit.php:24
+#: wp-admin/user-edit.php:22 wp-admin/user-edit.php:24
 msgid "Invalid user ID."
 msgstr "Identifiant utilisateur invalide."
 
@@ -9425,28 +12080,60 @@
 msgstr "Modifier l&rsquo;utilisateur"
 
 #: wp-admin/user-edit.php:39
-msgid "Your profile contains information about you (your &#8220;account&#8221;) as well as some personal options related to using WordPress."
-msgstr "Votre profil contient les informations à votre propos (votre &laquo;&nbsp;compte&nbsp;&raquo;), ainsi que quelques options liées à votre utilisation personnelle de WordPress."
+msgid ""
+"Your profile contains information about you (your &#8220;account&#8221;) as "
+"well as some personal options related to using WordPress."
+msgstr ""
+"Votre profil contient les informations à votre propos (votre &laquo;&nbsp;"
+"compte&nbsp;&raquo;), ainsi que quelques options liées à votre utilisation "
+"personnelle de WordPress."
 
 #: wp-admin/user-edit.php:40
-msgid "You can change your password, turn on keyboard shortcuts, change the color scheme of your WordPress administration screens, and turn off the WYSIWYG (Visual) editor, among other things. You can hide the Toolbar (formerly called the Admin Bar) from the front end of your site, however it cannot be disabled on the admin screens."
-msgstr "Vous pouvez modifier votre mot de passe, activer les raccourcis clavier, modifier la combinaison de couleurs des écrans de l&rsquo;administration, et désactiver l&rsquo;éditeur visuel (WYSIWYG), entre autres choses. Vous pouvez également cacher la barre d&rsquo;outils (anciennement &laquo;&nbsp;barre d&rsquo;administration&nbsp;&raquo;) sur la partie publique de votre site, mais elle ne peut pas être enlevée des écrans d&rsquo;administration."
+msgid ""
+"You can change your password, turn on keyboard shortcuts, change the color "
+"scheme of your WordPress administration screens, and turn off the WYSIWYG "
+"(Visual) editor, among other things. You can hide the Toolbar (formerly "
+"called the Admin Bar) from the front end of your site, however it cannot be "
+"disabled on the admin screens."
+msgstr ""
+"Vous pouvez modifier votre mot de passe, activer les raccourcis clavier, "
+"modifier la combinaison de couleurs des écrans de l&rsquo;administration, et "
+"désactiver l&rsquo;éditeur visuel (WYSIWYG), entre autres choses. Vous "
+"pouvez également cacher la barre d&rsquo;outils (anciennement &laquo;&nbsp;"
+"barre d&rsquo;administration&nbsp;&raquo;) sur la partie publique de votre "
+"site, mais elle ne peut pas être enlevée des écrans d&rsquo;administration."
 
 #: wp-admin/user-edit.php:41
-msgid "Your username cannot be changed, but you can use other fields to enter your real name or a nickname, and change which name to display on your posts."
-msgstr "Votre identifiant ne peut être modifié, mais vous pouvez utiliser les autres champs pour saisir votre nom complet ou un pseudonyme, et changer ensuite le nom à afficher dans vos articles."
+msgid ""
+"Your username cannot be changed, but you can use other fields to enter your "
+"real name or a nickname, and change which name to display on your posts."
+msgstr ""
+"Votre identifiant ne peut être modifié, mais vous pouvez utiliser les autres "
+"champs pour saisir votre nom complet ou un pseudonyme, et changer ensuite le "
+"nom à afficher dans vos articles."
 
 #: wp-admin/user-edit.php:42
-msgid "Required fields are indicated; the rest are optional. Profile information will only be displayed if your theme is set up to do so."
-msgstr "Les champs obligatoires sont indiqués, les autres sont facultatifs. Les informations du profil ne sont affichées que si votre thème a été conçu pour les exploiter."
+msgid ""
+"Required fields are indicated; the rest are optional. Profile information "
+"will only be displayed if your theme is set up to do so."
+msgstr ""
+"Les champs obligatoires sont indiqués, les autres sont facultatifs. Les "
+"informations du profil ne sont affichées que si votre thème a été conçu pour "
+"les exploiter."
 
 #: wp-admin/user-edit.php:43
 msgid "Remember to click the Update Profile button when you are finished."
-msgstr "Pensez bien à cliquer sur le bouton &laquo;&nbsp;Mettre à jour le profil&nbsp;&raquo; quand vous aurez terminé."
+msgstr ""
+"Pensez bien à cliquer sur le bouton &laquo;&nbsp;Mettre à jour le "
+"profil&nbsp;&raquo; quand vous aurez terminé."
 
 #: wp-admin/user-edit.php:53
-msgid "<a href=\"http://codex.wordpress.org/Users_Your_Profile_Screen\" target=\"_blank\">Documentation on User Profiles</a>"
-msgstr "<a href=\"http://codex.wordpress.org/Users_Your_Profile_Screen\" target=\"_blank\">Documentation sur le Profil utilisateur (en)</a>"
+msgid ""
+"<a href=\"http://codex.wordpress.org/Users_Your_Profile_Screen\" target="
+"\"_blank\">Documentation on User Profiles</a>"
+msgstr ""
+"<a href=\"http://codex.wordpress.org/Users_Your_Profile_Screen\" target="
+"\"_blank\">Documentation sur le Profil utilisateur (en)</a>"
 
 #: wp-admin/user-edit.php:71
 msgid "Use https"
@@ -9454,154 +12141,172 @@
 
 #: wp-admin/user-edit.php:72
 msgid "Always use https when visiting the admin"
-msgstr "Toujours utiliser https lors de l&rsquo;utilisation de l&rsquo;administration"
-
-#: wp-admin/user-edit.php:79
-#: wp-admin/user-edit.php:106
-#: wp-admin/user-edit.php:153
+msgstr ""
+"Toujours utiliser https lors de l&rsquo;utilisation de l&rsquo;administration"
+
+#: wp-admin/user-edit.php:79 wp-admin/user-edit.php:107
+#: wp-admin/user-edit.php:154
 msgid "You do not have permission to edit this user."
-msgstr "Vous n&rsquo;avez pas l&rsquo;autorisation de modifier cet utilisateur."
-
-#: wp-admin/user-edit.php:159
+msgstr ""
+"Vous n&rsquo;avez pas l&rsquo;autorisation de modifier cet utilisateur."
+
+#: wp-admin/user-edit.php:160
 msgid "Important:"
 msgstr "Important&nbsp;:"
 
-#: wp-admin/user-edit.php:159
+#: wp-admin/user-edit.php:160
 msgid "This user has super admin privileges."
 msgstr "Cet utilisateur possède les privilèges de super-admin."
 
-#: wp-admin/user-edit.php:164
+#: wp-admin/user-edit.php:165
 msgid "Profile updated."
 msgstr "Profil mis à jour."
 
-#: wp-admin/user-edit.php:166
+#: wp-admin/user-edit.php:167
 msgid "User updated."
 msgstr "Utilisateur mis à jour."
 
-#: wp-admin/user-edit.php:169
+#: wp-admin/user-edit.php:170
 msgid "&larr; Back to Users"
 msgstr "&larr; Retour aux utilisateurs"
 
-#: wp-admin/user-edit.php:186
-#: wp-admin/users.php:406
+#: wp-admin/user-edit.php:187 wp-admin/users.php:432
 msgctxt "user"
 msgid "Add Existing"
 msgstr "Ajouter un utilisateur existant"
 
-#: wp-admin/user-edit.php:201
+#: wp-admin/user-edit.php:202
 msgid "Personal Options"
 msgstr "Options personnelles"
 
-#: wp-admin/user-edit.php:206
+#: wp-admin/user-edit.php:207
 msgid "Visual Editor"
 msgstr "Éditeur visuel"
 
-#: wp-admin/user-edit.php:207
+#: wp-admin/user-edit.php:208
 msgid "Disable the visual editor when writing"
 msgstr "Désactiver l&rsquo;éditeur visuel pour écrire"
 
 #: wp-admin/user-edit.php:220
+msgid "Keyboard Shortcuts"
+msgstr "Raccourcis clavier"
+
+#: wp-admin/user-edit.php:221
 msgid "Enable keyboard shortcuts for comment moderation."
 msgstr "Activer les raccourcis clavier pour la modération de commentaires."
 
-#: wp-admin/user-edit.php:220
-msgid "<a href=\"http://codex.wordpress.org/Keyboard_Shortcuts\" target=\"_blank\">More information</a>"
-msgstr "<a href=\"http://codex.wordpress.org/Keyboard_Shortcuts\" target=\"_blank\">Plus d&rsquo;information (en)</a>"
-
-#: wp-admin/user-edit.php:228
+#: wp-admin/user-edit.php:221
+msgid ""
+"<a href=\"http://codex.wordpress.org/Keyboard_Shortcuts\" target=\"_blank"
+"\">More information</a>"
+msgstr ""
+"<a href=\"http://codex.wordpress.org/Keyboard_Shortcuts\" target=\"_blank"
+"\">Plus d&rsquo;informations (en)</a>"
+
+#: wp-admin/user-edit.php:229
 msgid "Show Toolbar when viewing site"
 msgstr "Afficher la barre d&rsquo;outils lorsque vous visitez le site"
 
-#: wp-admin/user-edit.php:244
+#: wp-admin/user-edit.php:245
 msgid "Usernames cannot be changed."
 msgstr "Les identifiants ne peuvent être modifiés."
 
-#: wp-admin/user-edit.php:248
-msgid "Role:"
-msgstr "Rôle&nbsp;:"
-
-#: wp-admin/user-edit.php:261
-#: wp-admin/user-edit.php:263
+#: wp-admin/user-edit.php:262 wp-admin/user-edit.php:264
 msgid "&mdash; No role for this site &mdash;"
 msgstr "&mdash; Pas de rôle sur ce site &mdash;"
 
-#: wp-admin/user-edit.php:272
+#: wp-admin/user-edit.php:273
 msgid "Grant this user super admin privileges for the Network."
 msgstr "Donner les privilèges de super-admin à cet utilisateur pour le réseau."
 
-#: wp-admin/user-edit.php:274
-msgid "Super admin privileges cannot be removed because this user has the network admin email."
-msgstr "Les privilèges de super-admin ne peuvent pas être enlevés, car cet utilisateur est celui avec l&rsquo;adresse de contact administratif du réseau."
-
-#: wp-admin/user-edit.php:280
-#: wp-admin/user-new.php:326
+#: wp-admin/user-edit.php:275
+msgid ""
+"Super admin privileges cannot be removed because this user has the network "
+"admin email."
+msgstr ""
+"Les privilèges de super-admin ne peuvent pas être enlevés, car cet "
+"utilisateur est celui avec l&rsquo;adresse de contact administratif du "
+"réseau."
+
+#: wp-admin/user-edit.php:281 wp-admin/user-new.php:331
 msgid "First Name"
 msgstr "Prénom"
 
-#: wp-admin/user-edit.php:285
-#: wp-admin/user-new.php:330
+#: wp-admin/user-edit.php:286 wp-admin/user-new.php:335
 msgid "Last Name"
 msgstr "Nom"
 
-#: wp-admin/user-edit.php:290
+#: wp-admin/user-edit.php:291
 msgid "Nickname"
 msgstr "Pseudonyme"
 
-#: wp-admin/user-edit.php:295
+#: wp-admin/user-edit.php:296
 msgid "Display name publicly as"
 msgstr "Nom à afficher publiquement"
 
-#: wp-admin/user-edit.php:331
+#: wp-admin/user-edit.php:332
 msgid "Contact Info"
 msgstr "Informations de contact"
 
-#: wp-admin/user-edit.php:341
-msgid "There is a pending change of your e-mail to <code>%1$s</code>. <a href=\"%2$s\">Cancel</a>"
-msgstr "Il y a une modification de votre adresse de contact en cours, en faveur de <code>%1$s</code>.  <a href=\"%2$s\">Annuler</a>"
-
-#: wp-admin/user-edit.php:364
+#: wp-admin/user-edit.php:342
+msgid ""
+"There is a pending change of your e-mail to <code>%1$s</code>. <a href=\"%2$s"
+"\">Cancel</a>"
+msgstr ""
+"Il y a une modification de votre adresse de contact en cours, en faveur de "
+"<code>%1$s</code>. <a href=\"%2$s\">Annuler</a>"
+
+#: wp-admin/user-edit.php:365
 msgid "About Yourself"
 msgstr "À propos de vous"
 
-#: wp-admin/user-edit.php:364
+#: wp-admin/user-edit.php:365
 msgid "About the user"
 msgstr "À propos de l&rsquo;utilisateur"
 
-#: wp-admin/user-edit.php:368
+#: wp-admin/user-edit.php:369
 msgid "Biographical Info"
 msgstr "Renseignements biographiques"
 
-#: wp-admin/user-edit.php:370
-msgid "Share a little biographical information to fill out your profile. This may be shown publicly."
-msgstr "Donnez quelques informations biographiques pour remplir votre profil. Ceci peut être affiché publiquement."
-
-#: wp-admin/user-edit.php:378
+#: wp-admin/user-edit.php:371
+msgid ""
+"Share a little biographical information to fill out your profile. This may "
+"be shown publicly."
+msgstr ""
+"Donnez quelques informations biographiques pour remplir votre profil. Ceci "
+"peut être affiché publiquement."
+
+#: wp-admin/user-edit.php:379
 msgid "New Password"
 msgstr "Nouveau mot de passe"
 
-#: wp-admin/user-edit.php:379
-msgid "If you would like to change the password type a new one. Otherwise leave this blank."
-msgstr "Si vous souhaitez changer le mot de passe de l&rsquo;utilisateur, tapez en un nouveau deux fois de suite ci-dessous. Sinon, laissez les champs vides."
-
 #: wp-admin/user-edit.php:380
+msgid ""
+"If you would like to change the password type a new one. Otherwise leave "
+"this blank."
+msgstr ""
+"Si vous souhaitez changer le mot de passe de l&rsquo;utilisateur, tapez en "
+"un nouveau deux fois de suite ci-dessous. Sinon, laissez les champs vides."
+
+#: wp-admin/user-edit.php:381
 msgid "Type your new password again."
 msgstr "Veuillez saisir une deuxième fois votre mot de passe."
 
-#: wp-admin/user-edit.php:399
+#: wp-admin/user-edit.php:400
 msgid "Additional Capabilities"
 msgstr "Fonctionnalités complémentaires"
 
-#: wp-admin/user-edit.php:418
+#: wp-admin/user-edit.php:419
 msgid "Update Profile"
 msgstr "Mettre à jour le profil"
 
-#: wp-admin/user-edit.php:418
+#: wp-admin/user-edit.php:419
 msgid "Update User"
 msgstr "Mettre à jour l&rsquo;utilisateur"
 
 # Pas d'entité HTML : texte envoyé par mail
 #. translators: 1: Site name, 2: site URL, 3: role
-#: wp-admin/user-new.php:22
+#: wp-admin/user-new.php:24
 msgid ""
 "Hi,\n"
 "You've been invited to join '%1$s' at\n"
@@ -9618,16 +12323,17 @@
 "Si vous ne souhaitez pas rejoindre ce site, merci d'ignorer\n"
 "ce message. L'invitation expirera dans quelques jours.\n"
 "\n"
-"Veuillez cliquer sur le lien suivant pour activer votre compte utilisateur :\n"
+"Veuillez cliquer sur le lien suivant pour activer votre compte "
+"utilisateur :\n"
 "%%s"
 
-#: wp-admin/user-new.php:34
+#: wp-admin/user-new.php:36
 msgid "[%s] Your site invite"
 msgstr "[%s] Votre invitation sur le site"
 
 # Pas d'entité HTML : texte envoyé par mail
 #. translators: 1: Site name, 2: site URL, 3: role, 4: activation URL
-#: wp-admin/user-new.php:76
+#: wp-admin/user-new.php:81
 msgid ""
 "Hi,\n"
 "\n"
@@ -9645,152 +12351,231 @@
 "%4$s"
 
 # Pas d'entité HTML : titre de mail
-#: wp-admin/user-new.php:83
+#: wp-admin/user-new.php:88
 msgid "[%s] Joining confirmation"
 msgstr "[%s] Confirmation d'inscription"
 
-#: wp-admin/user-new.php:140
-msgid "To add a new user to your site, fill in the form on this screen and click the Add New User button at the bottom."
-msgstr "Pour ajouter un nouvel utilisateur à votre site, remplissez le formulaire de cet écran et cliquez sur le bouton &laquo;&nbsp;Ajouter un nouvel utilisateur&nbsp;&raquo; en bas de l&rsquo;écran."
-
-#: wp-admin/user-new.php:143
-msgid "Because this is a multisite installation, you may add accounts that already exist on the Network by specifying a username or email, and defining a role. For more options, such as specifying a password, you have to be a Network Administrator and use the hover link under an existing user&#8217;s name to Edit the user profile under Network Admin > All Users."
-msgstr "Parce qu&rsquo;il s&rsquo;agit d&rsquo;une installation multisite, vous pouvez ajouter des comptes qui existent déjà sur le Réseau, en indiquant un nom d&rsquo;utilisateur ou une adresse de messagerie, et en assignant un rôle. Pour avoir plus d&rsquo;options, telle que le choix du mot de passe, vous devez être Administrateur du Réseau, et utiliser les liens qui apparaissent au survol sous le nom de l&rsquo;utilisateur pour modifier son profil utilisateur, depuis l&rsquo;écran &laquo;&nbsp;Tous les utilisateurs&nbsp;&raquo;."
-
-#: wp-admin/user-new.php:144
-msgid "New users will receive an email letting them know they&#8217;ve been added as a user for your site. This email will also contain their password. Check the box if you don&#8217;t want the user to receive a welcome email."
-msgstr "Les nouveaux utilisateurs reçoivent un message les informant qu&rsquo;ils ont été ajoutés aux utilisateurs de votre site. Ce message contient également leur mot de passe. Décochez la case si vous ne voulez pas que l&rsquo;utilisateur reçoive ce message de bienvenue."
-
-#: wp-admin/user-new.php:146
-msgid "You must assign a password to the new user, which they can change after logging in. The username, however, cannot be changed."
-msgstr "Vous devez assigner un mot de passe au nouvel utilisateur, qu&rsquo;il pourra changer après s&rsquo;être connecté. L&rsquo;identifiant, en revanche, ne peut être changé."
-
-#: wp-admin/user-new.php:147
-msgid "New users will receive an email letting them know they&#8217;ve been added as a user for your site. By default, this email will also contain their password. Uncheck the box if you don&#8217;t want the password to be included in the welcome email."
-msgstr "Les nouveaux utilisateurs reçoivent un message les informant qu&rsquo;ils ont été ajoutés aux utilisateurs de ce site. Par défaut, ce message contient également leur mot de passe. Décochez la case si vous ne voulez pas que le mot de passe y soit inclus."
-
-#: wp-admin/user-new.php:150
-msgid "Remember to click the Add New User button at the bottom of this screen when you are finished."
-msgstr "N&rsquo;oubliez pas de cliquer sur le bouton &laquo;&nbsp;Ajouter un utilisateur&nbsp;&raquo;, en bas de cet écran, quand vous aurez terminé."
-
-#: wp-admin/user-new.php:160
-msgid "User Roles"
-msgstr "Rôles utilisateurs"
-
-#: wp-admin/user-new.php:161
-msgid "Here is a basic overview of the different user roles and the permissions associated with each one:"
-msgstr "Voici un rapide survol des différents rôles assignables aux utilisateurs, et des permissions qui leurs sont associées&nbsp;:"
-
-#: wp-admin/user-new.php:163
-msgid "Administrators have access to all the administration features."
-msgstr "Les administrateurs peuvent accéder à toutes les fonctionnalités de l&rsquo;administration&nbsp;;"
-
-#: wp-admin/user-new.php:164
-msgid "Editors can publish posts, manage posts as well as manage other people&#8217;s posts, etc."
-msgstr "Les éditeurs peuvent publier et gérer leurs propres articles, ainsi que ceux des autres membres&nbsp;;"
+#: wp-admin/user-new.php:145
+msgid ""
+"To add a new user to your site, fill in the form on this screen and click "
+"the Add New User button at the bottom."
+msgstr ""
+"Pour ajouter un nouvel utilisateur à votre site, remplissez le formulaire de "
+"cet écran et cliquez sur le bouton &laquo;&nbsp;Ajouter un nouvel "
+"utilisateur&nbsp;&raquo; en bas de l&rsquo;écran."
+
+#: wp-admin/user-new.php:148
+msgid ""
+"Because this is a multisite installation, you may add accounts that already "
+"exist on the Network by specifying a username or email, and defining a role. "
+"For more options, such as specifying a password, you have to be a Network "
+"Administrator and use the hover link under an existing user&#8217;s name to "
+"Edit the user profile under Network Admin > All Users."
+msgstr ""
+"Parce qu&rsquo;il s&rsquo;agit d&rsquo;une installation multisite, vous "
+"pouvez ajouter des comptes qui existent déjà sur le Réseau, en indiquant un "
+"nom d&rsquo;utilisateur ou une adresse de messagerie, et en assignant un "
+"rôle. Pour avoir plus d&rsquo;options, telle que le choix du mot de passe, "
+"vous devez être Administrateur du Réseau, et utiliser les liens qui "
+"apparaissent au survol sous le nom de l&rsquo;utilisateur pour modifier son "
+"profil utilisateur, depuis l&rsquo;écran &laquo;&nbsp;Tous les "
+"utilisateurs&nbsp;&raquo;."
+
+#: wp-admin/user-new.php:149
+msgid ""
+"New users will receive an email letting them know they&#8217;ve been added "
+"as a user for your site. This email will also contain their password. Check "
+"the box if you don&#8217;t want the user to receive a welcome email."
+msgstr ""
+"Les nouveaux utilisateurs reçoivent un message les informant qu&rsquo;ils "
+"ont été ajoutés aux utilisateurs de votre site. Ce message contient "
+"également leur mot de passe. Décochez la case si vous ne voulez pas que "
+"l&rsquo;utilisateur reçoive ce message de bienvenue."
+
+#: wp-admin/user-new.php:151
+msgid ""
+"You must assign a password to the new user, which they can change after "
+"logging in. The username, however, cannot be changed."
+msgstr ""
+"Vous devez assigner un mot de passe au nouvel utilisateur, qu&rsquo;il "
+"pourra changer après s&rsquo;être connecté. L&rsquo;identifiant, en "
+"revanche, ne peut être changé."
+
+#: wp-admin/user-new.php:152
+msgid ""
+"New users will receive an email letting them know they&#8217;ve been added "
+"as a user for your site. By default, this email will also contain their "
+"password. Uncheck the box if you don&#8217;t want the password to be "
+"included in the welcome email."
+msgstr ""
+"Les nouveaux utilisateurs reçoivent un message les informant qu&rsquo;ils "
+"ont été ajoutés aux utilisateurs de ce site. Par défaut, ce message contient "
+"également leur mot de passe. Décochez la case si vous ne voulez pas que le "
+"mot de passe y soit inclus."
+
+#: wp-admin/user-new.php:155
+msgid ""
+"Remember to click the Add New User button at the bottom of this screen when "
+"you are finished."
+msgstr ""
+"N&rsquo;oubliez pas de cliquer sur le bouton &laquo;&nbsp;Ajouter un "
+"utilisateur&nbsp;&raquo;, en bas de cet écran, quand vous aurez terminé."
 
 #: wp-admin/user-new.php:165
-msgid "Authors can publish and manage their own posts, and are able to upload files."
-msgstr "Les auteurs peuvent publier et gérer leurs propres articles, ils peuvent également envoyer des fichiers&nbsp;;"
+msgid "User Roles"
+msgstr "Rôles utilisateurs"
 
 #: wp-admin/user-new.php:166
-msgid "Contributors can write and manage their posts but not publish posts or upload media files."
-msgstr "Les contributeurs peuvent écrire et gérer leurs articles, mais ils ne peuvent pas publier les articles ou envoyer des fichiers média&nbsp;;"
-
-#: wp-admin/user-new.php:167
-msgid "Subscribers can read comments/comment/receive newsletters, etc. but cannot create regular site content."
-msgstr "Les abonnés peuvent lire les commentaires/commenter/recevoir les newsletters, etc. Mais ils ne peuvent pas créer du contenu sur le site."
-
-#: wp-admin/user-new.php:173
-msgid "<a href=\"http://codex.wordpress.org/Users_Add_New_Screen\" target=\"_blank\">Documentation on Adding New Users</a>"
-msgstr "<a href=\"http://codex.wordpress.org/Users_Add_New_Screen\" target=\"_blank\">Documentation sur l&rsquo;ajout de nouveaux utilisateurs (en)</a>"
-
-#: wp-admin/user-new.php:193
-msgid "Invitation email sent to new user. A confirmation link must be clicked before their account is created."
-msgstr "Envoi d&rsquo;un message d&rsquo;invitation au nouvel utilisateur. Un lien de confirmation devra d&rsquo;abord être cliqué avant la création du compte."
-
-#: wp-admin/user-new.php:196
-msgid "Invitation email sent to user. A confirmation link must be clicked for them to be added to your site."
-msgstr "L&rsquo;invitation a été envoyée à l&rsquo;utilisateur sur son adresse de messagerie. Il devra cliquer sur un lien de confirmation pour être ajouté à votre site."
-
-#: wp-admin/user-new.php:199
+msgid ""
+"Here is a basic overview of the different user roles and the permissions "
+"associated with each one:"
+msgstr ""
+"Voici un rapide survol des différents rôles assignables aux utilisateurs, et "
+"des permissions qui leurs sont associées&nbsp;:"
+
+#: wp-admin/user-new.php:168
+msgid "Administrators have access to all the administration features."
+msgstr ""
+"Les administrateurs peuvent accéder à toutes les fonctionnalités de l&rsquo;"
+"administration&nbsp;;"
+
+#: wp-admin/user-new.php:169
+msgid ""
+"Editors can publish posts, manage posts as well as manage other people&#8217;"
+"s posts, etc."
+msgstr ""
+"Les éditeurs peuvent publier et gérer leurs propres articles, ainsi que ceux "
+"des autres membres&nbsp;;"
+
+#: wp-admin/user-new.php:170
+msgid ""
+"Authors can publish and manage their own posts, and are able to upload files."
+msgstr ""
+"Les auteurs peuvent publier et gérer leurs propres articles, ils peuvent "
+"également envoyer des fichiers&nbsp;;"
+
+#: wp-admin/user-new.php:171
+msgid ""
+"Contributors can write and manage their posts but not publish posts or "
+"upload media files."
+msgstr ""
+"Les contributeurs peuvent écrire et gérer leurs articles, mais ils ne "
+"peuvent pas publier les articles ou envoyer des fichiers média&nbsp;;"
+
+#: wp-admin/user-new.php:172
+msgid ""
+"Subscribers can read comments/comment/receive newsletters, etc. but cannot "
+"create regular site content."
+msgstr ""
+"Les abonnés peuvent lire les commentaires/commenter/recevoir les "
+"newsletters, etc. Mais ils ne peuvent pas créer du contenu sur le site."
+
+#: wp-admin/user-new.php:178
+msgid ""
+"<a href=\"http://codex.wordpress.org/Users_Add_New_Screen\" target=\"_blank"
+"\">Documentation on Adding New Users</a>"
+msgstr ""
+"<a href=\"http://codex.wordpress.org/Users_Add_New_Screen\" target=\"_blank"
+"\">Documentation sur l&rsquo;ajout de nouveaux utilisateurs (en)</a>"
+
+#: wp-admin/user-new.php:198
+msgid ""
+"Invitation email sent to new user. A confirmation link must be clicked "
+"before their account is created."
+msgstr ""
+"Envoi d&rsquo;un message d&rsquo;invitation au nouvel utilisateur. Un lien "
+"de confirmation devra d&rsquo;abord être cliqué avant la création du compte."
+
+#: wp-admin/user-new.php:201
+msgid ""
+"Invitation email sent to user. A confirmation link must be clicked for them "
+"to be added to your site."
+msgstr ""
+"L&rsquo;invitation a été envoyée à l&rsquo;utilisateur sur son adresse de "
+"messagerie. Il devra cliquer sur un lien de confirmation pour être ajouté à "
+"votre site."
+
+#: wp-admin/user-new.php:204
 msgid "User has been added to your site."
 msgstr "L&rsquo;utilisateur a été ajouté à votre site."
 
-#: wp-admin/user-new.php:202
+#: wp-admin/user-new.php:207
 msgid "That user is already a member of this site."
 msgstr "Cet utilisateur est déjà membre de ce site."
 
-#: wp-admin/user-new.php:205
-msgid "The requested user does not exist."
-msgstr "L&rsquo;utilisateur demandé n&rsquo;existe pas."
-
-#: wp-admin/user-new.php:208
-msgid "Please enter a valid email address."
-msgstr "Veuillez saisir une adresse de messagerie valide."
-
-#: wp-admin/user-new.php:213
+#: wp-admin/user-new.php:218
 msgid "User added."
 msgstr "Utilisateur ajouté."
 
-#: wp-admin/user-new.php:221
+#: wp-admin/user-new.php:226
 msgctxt "user"
 msgid "Add New User"
 msgstr "Ajouter un utilisateur"
 
-#: wp-admin/user-new.php:223
+#: wp-admin/user-new.php:228
 msgctxt "user"
 msgid "Add Existing User"
 msgstr "Ajouter un utilisateur existant"
 
-#: wp-admin/user-new.php:256
+#: wp-admin/user-new.php:261
 msgid "Add Existing User"
 msgstr "Ajouter un utilisateur existant"
 
-#: wp-admin/user-new.php:258
-msgid "Enter the email address of an existing user on this network to invite them to this site. That person will be sent an email asking them to confirm the invite."
-msgstr "Saisissez l&rsquo;adresse de contact d&rsquo;un utilisateur existant sur votre réseau, afin de l&rsquo;inviter sur ce site. Cette personne recevra un message lui demandant de confirmer l&rsquo;invitation."
-
-#: wp-admin/user-new.php:261
-msgid "Enter the email address or username of an existing user on this network to invite them to this site. That person will be sent an email asking them to confirm the invite."
-msgstr "Pour inviter un utilisateur de ce réseau sur ce site, saisissez son adresse de messagerie ou son identifiant. Cette personne recevra alors un message lui proposant de confirmer son ajout."
-
-#: wp-admin/user-new.php:262
+#: wp-admin/user-new.php:263
+msgid ""
+"Enter the email address of an existing user on this network to invite them "
+"to this site. That person will be sent an email asking them to confirm the "
+"invite."
+msgstr ""
+"Saisissez l&rsquo;adresse de contact d&rsquo;un utilisateur existant sur "
+"votre réseau, afin de l&rsquo;inviter sur ce site. Cette personne recevra un "
+"message lui demandant de confirmer l&rsquo;invitation."
+
+#: wp-admin/user-new.php:266
+msgid ""
+"Enter the email address or username of an existing user on this network to "
+"invite them to this site. That person will be sent an email asking them to "
+"confirm the invite."
+msgstr ""
+"Pour inviter un utilisateur de ce réseau sur ce site, saisissez son adresse "
+"de messagerie ou son identifiant. Cette personne recevra alors un message "
+"lui proposant de confirmer son ajout."
+
+#: wp-admin/user-new.php:267
 msgid "E-mail or Username"
 msgstr "E-mail ou identifiant"
 
-#: wp-admin/user-new.php:283
-#: wp-admin/user-new.php:367
+#: wp-admin/user-new.php:288 wp-admin/user-new.php:372
 msgid "Skip Confirmation Email"
 msgstr "Passer la confirmation par e-mail"
 
-#: wp-admin/user-new.php:284
-#: wp-admin/user-new.php:368
+#: wp-admin/user-new.php:289 wp-admin/user-new.php:373
 msgid "Add the user without sending them a confirmation email."
 msgstr "Ajouter un utilisateur sans envoyer un e-mail de confirmation."
 
-#: wp-admin/user-new.php:288
+#: wp-admin/user-new.php:293
 msgid "Add Existing User "
 msgstr "Ajouter un utilisateur existant"
 
-#: wp-admin/user-new.php:297
+#: wp-admin/user-new.php:302
 msgid "Create a brand new user and add it to this site."
 msgstr "Créer un nouvel utilisateur et l&rsquo;ajouter à ce site."
 
 #. translators: password input field
-#: wp-admin/user-new.php:339
+#: wp-admin/user-new.php:344
 msgid "(twice, required)"
 msgstr "(deux fois, obligatoire)"
 
-#: wp-admin/user-new.php:349
+#: wp-admin/user-new.php:354
 msgid "Send Password?"
 msgstr "Envoyer le mot de passe&nbsp;?"
 
-#: wp-admin/user-new.php:350
+#: wp-admin/user-new.php:355
 msgid "Send this password to the new user by email."
-msgstr "Envoyer ce mot de passe au nouvel utilisateur sur son adresse de messagerie."
-
-#: wp-admin/user-new.php:373
+msgstr ""
+"Envoyer ce mot de passe au nouvel utilisateur sur son adresse de messagerie."
+
+#: wp-admin/user-new.php:378
 msgid "Add New User "
 msgstr "Ajouter un utilisateur"
 
@@ -9800,12 +12585,29 @@
 msgstr "Utilisateurs"
 
 #: wp-admin/users.php:26
-msgid "This screen lists all the existing users for your site. Each user has one of five defined roles as set by the site admin: Site Administrator, Editor, Author, Contributor, or Subscriber. Users with roles other than Administrator will see fewer options in the dashboard navigation when they are logged in, based on their role."
-msgstr "Cet écran liste tous les utilisateurs actuels de votre site. Chaque utilisateur a l&rsquo;un des 5 rôles prédéfinis, tel qu&rsquo;assigné par l&rsquo;administrateur du site&nbsp;: Administrateur, Éditeur, Auteur, Contributeur ou Abonné. Les utilisateurs avec un rôle autre qu&rsquo;Administrateur verront moins d&rsquo;options quand ils seront connectés, en fonction de leur rôle."
+msgid ""
+"This screen lists all the existing users for your site. Each user has one of "
+"five defined roles as set by the site admin: Site Administrator, Editor, "
+"Author, Contributor, or Subscriber. Users with roles other than "
+"Administrator will see fewer options in the dashboard navigation when they "
+"are logged in, based on their role."
+msgstr ""
+"Cet écran liste tous les utilisateurs actuels de votre site. Chaque "
+"utilisateur a l&rsquo;un des 5 rôles prédéfinis, tel qu&rsquo;assigné par "
+"l&rsquo;administrateur du site&nbsp;: Administrateur, Éditeur, Auteur, "
+"Contributeur ou Abonné. Les utilisateurs avec un rôle autre qu&rsquo;"
+"Administrateur verront moins d&rsquo;options quand ils seront connectés, en "
+"fonction de leur rôle."
 
 #: wp-admin/users.php:27
-msgid "To add a new user for your site, click the Add New button at the top of the screen or Add New in the Users menu section."
-msgstr "Pour ajouter un nouvel utilisateur à votre site, cliquez sur le bouton &laquo;&nbsp;Ajouter&nbsp;&raquo; en haut de l&rsquo;écran, ou l&rsquo;option &laquo;&nbsp;Ajouter&nbsp;&raquo; du menu &laquo;&nbsp;Utilisateurs&nbsp;&raquo;."
+msgid ""
+"To add a new user for your site, click the Add New button at the top of the "
+"screen or Add New in the Users menu section."
+msgstr ""
+"Pour ajouter un nouvel utilisateur à votre site, cliquez sur le bouton "
+"&laquo;&nbsp;Ajouter&nbsp;&raquo; en haut de l&rsquo;écran, ou l&rsquo;"
+"option &laquo;&nbsp;Ajouter&nbsp;&raquo; du menu &laquo;&nbsp;"
+"Utilisateurs&nbsp;&raquo;."
 
 #: wp-admin/users.php:32
 msgid "Screen Display"
@@ -9813,289 +12615,459 @@
 
 #: wp-admin/users.php:33
 msgid "You can customize the display of this screen in a number of ways:"
-msgstr "Vous pouvez personnaliser l&rsquo;affichage de cet écran de plusieurs manières&nbsp;:"
+msgstr ""
+"Vous pouvez personnaliser l&rsquo;affichage de cet écran de plusieurs "
+"manières&nbsp;:"
 
 #: wp-admin/users.php:35
-msgid "You can hide/display columns based on your needs and decide how many users to list per screen using the Screen Options tab."
-msgstr "Vous pouvez cacher/afficher les colonnes en fonction de vos besoins, et décider du nombre d&rsquo;articles à afficher par écran à l&rsquo;aide de l&rsquo;onglet &laquo;&nbsp;Options de l&rsquo;écran&nbsp;&raquo;."
+msgid ""
+"You can hide/display columns based on your needs and decide how many users "
+"to list per screen using the Screen Options tab."
+msgstr ""
+"Vous pouvez cacher/afficher les colonnes en fonction de vos besoins, et "
+"décider du nombre d&rsquo;articles à afficher par écran à l&rsquo;aide de "
+"l&rsquo;onglet &laquo;&nbsp;Options de l&rsquo;écran&nbsp;&raquo;."
 
 #: wp-admin/users.php:36
-msgid "You can filter the list of users by User Role using the text links in the upper left to show All, Administrator, Editor, Author, Contributor, or Subscriber. The default view is to show all users. Unused User Roles are not listed."
-msgstr "Vous pouvez filtrer la liste des utilisateurs par rôle, à l&rsquo;aide des liens textuels en haut à gauche, afin d&rsquo;afficher tous les utilisateurs, ou seulement les administrateurs, les éditeurs, les auteurs ou les contributeurs. Par défaut, tous les utilisateurs sont affichés. Les rôles sans utilisateurs ne sont pas listés."
+msgid ""
+"You can filter the list of users by User Role using the text links in the "
+"upper left to show All, Administrator, Editor, Author, Contributor, or "
+"Subscriber. The default view is to show all users. Unused User Roles are not "
+"listed."
+msgstr ""
+"Vous pouvez filtrer la liste des utilisateurs par rôle, à l&rsquo;aide des "
+"liens textuels en haut à gauche, afin d&rsquo;afficher tous les "
+"utilisateurs, ou seulement les administrateurs, les éditeurs, les auteurs ou "
+"les contributeurs. Par défaut, tous les utilisateurs sont affichés. Les "
+"rôles sans utilisateurs ne sont pas listés."
 
 #: wp-admin/users.php:37
-msgid "You can view all posts made by a user by clicking on the number under the Posts column."
-msgstr "Vous pouvez afficher tous les articles faits par un même utilisateur en cliquant sur le nombre sous la colonne &laquo;&nbsp;Articles&nbsp;&raquo;."
+msgid ""
+"You can view all posts made by a user by clicking on the number under the "
+"Posts column."
+msgstr ""
+"Vous pouvez afficher tous les articles faits par un même utilisateur en "
+"cliquant sur le nombre sous la colonne &laquo;&nbsp;Articles&nbsp;&raquo;."
 
 #: wp-admin/users.php:41
-msgid "Hovering over a row in the users list will display action links that allow you to manage users. You can perform the following actions:"
-msgstr "Passer la souris au-dessus d&rsquo;une ligne de la liste des utilisateurs, fera s&rsquo;afficher des liens vous permettant de gérer l&rsquo;utilisateur. Vous pouvez lancer les actions suivantes&nbsp;:"
+msgid ""
+"Hovering over a row in the users list will display action links that allow "
+"you to manage users. You can perform the following actions:"
+msgstr ""
+"Passer la souris au-dessus d&rsquo;une ligne de la liste des utilisateurs, "
+"fera s&rsquo;afficher des liens vous permettant de gérer l&rsquo;"
+"utilisateur. Vous pouvez lancer les actions suivantes&nbsp;:"
 
 #: wp-admin/users.php:43
-msgid "Edit takes you to the editable profile screen for that user. You can also reach that screen by clicking on the username."
-msgstr "&laquo;&nbsp;Modifier&nbsp;&raquo; vous envoie sur l&rsquo;écran de modification de cet utilisateur. Vous pouvez également vous rendre sur cet écran en cliquant sur le nom de l&rsquo;utilisateur&nbsp;;"
+msgid ""
+"Edit takes you to the editable profile screen for that user. You can also "
+"reach that screen by clicking on the username."
+msgstr ""
+"&laquo;&nbsp;Modifier&nbsp;&raquo; vous envoie sur l&rsquo;écran de "
+"modification de cet utilisateur. Vous pouvez également vous rendre sur cet "
+"écran en cliquant sur le nom de l&rsquo;utilisateur&nbsp;;"
 
 #: wp-admin/users.php:46
-msgid "Remove allows you to remove a user from your site. It does not delete their posts. You can also remove multiple users at once by using Bulk Actions."
-msgstr "&laquo;&nbsp;Supprimer&nbsp;&raquo; vous permet de supprimer un utilisateur de votre site. Cela n&rsquo;efface pas ses articles. Vous pouvez également supprimer plusieurs utilisateurs à la fois en utilisant les &laquo;&nbsp;Actions groupées&nbsp;&raquo;."
+msgid ""
+"Remove allows you to remove a user from your site. It does not delete their "
+"posts. You can also remove multiple users at once by using Bulk Actions."
+msgstr ""
+"&laquo;&nbsp;Supprimer&nbsp;&raquo; vous permet de supprimer un utilisateur "
+"de votre site. Cela n&rsquo;efface pas ses articles. Vous pouvez également "
+"supprimer plusieurs utilisateurs à la fois en utilisant les &laquo;&nbsp;"
+"Actions groupées&nbsp;&raquo;."
 
 #: wp-admin/users.php:48
-msgid "Delete brings you to the Delete Users screen for confirmation, where you can permanently remove a user from your site and delete their posts. You can also delete multiple users at once by using Bulk Actions."
-msgstr "&laquo;&nbsp;Effacer&nbsp;&raquo; vous amène à l&rsquo;écran &laquo;&nbsp;Effacer des utilisateurs&nbsp;&raquo; pour confirmation, d&rsquo;où vous pouvez définitivement supprimer un utilisateur de votre site et effacer ses articles. Vous pouvez également effacer plusieurs utilisateurs à la fois en utilisant les &laquo;&nbsp;Actions groupées&nbsp;&raquo;."
+msgid ""
+"Delete brings you to the Delete Users screen for confirmation, where you can "
+"permanently remove a user from your site and delete their posts. You can "
+"also delete multiple users at once by using Bulk Actions."
+msgstr ""
+"&laquo;&nbsp;Effacer&nbsp;&raquo; vous amène à l&rsquo;écran &laquo;&nbsp;"
+"Effacer des utilisateurs&nbsp;&raquo; pour confirmation, d&rsquo;où vous "
+"pouvez définitivement supprimer un utilisateur de votre site et effacer ses "
+"articles. Vous pouvez également effacer plusieurs utilisateurs à la fois en "
+"utilisant les &laquo;&nbsp;Actions groupées&nbsp;&raquo;."
 
 #: wp-admin/users.php:61
-msgid "<a href=\"http://codex.wordpress.org/Users_Screen\" target=\"_blank\">Documentation on Managing Users</a>"
-msgstr "<a href=\"http://codex.wordpress.org/Users_Screen\" target=\"_blank\">Documentation sur l&rsquo;ajout de nouveaux utilisateurs (en)</a>"
+msgid ""
+"<a href=\"http://codex.wordpress.org/Users_Screen\" target=\"_blank"
+"\">Documentation on Managing Users</a>"
+msgstr ""
+"<a href=\"http://codex.wordpress.org/Users_Screen\" target=\"_blank"
+"\">Documentation sur l&rsquo;ajout de nouveaux utilisateurs (en)</a>"
 
 #: wp-admin/users.php:62
-msgid "<a href=\"http://codex.wordpress.org/Roles_and_Capabilities\" target=\"_blank\">Descriptions of Roles and Capabilities</a>"
-msgstr "<a href=\"http://codex.wordpress.org/Roles_and_Capabilities\" target=\"_blank\">Descriptions des rôles et permissions (en)</a>"
-
-#: wp-admin/users.php:85
-#: wp-admin/users.php:102
+msgid ""
+"<a href=\"http://codex.wordpress.org/Roles_and_Capabilities\" target=\"_blank"
+"\">Descriptions of Roles and Capabilities</a>"
+msgstr ""
+"<a href=\"http://codex.wordpress.org/Roles_and_Capabilities\" target=\"_blank"
+"\">Descriptions des rôles et permissions (en)</a>"
+
+#: wp-admin/users.php:101 wp-admin/users.php:118
 msgid "You can&#8217;t edit that user."
 msgstr "Vous ne pouvez pas modifier cet utilisateur."
 
-#: wp-admin/users.php:125
-#: wp-admin/users.php:172
+#: wp-admin/users.php:141 wp-admin/users.php:192
 msgid "User deletion is not allowed from this screen."
-msgstr "La suppression d&rsquo;un utilisateur n&rsquo;est pas autorisée depuis cet écran."
-
-#: wp-admin/users.php:135
-#: wp-admin/users.php:182
+msgstr ""
+"La suppression d&rsquo;un utilisateur n&rsquo;est pas autorisée depuis cet "
+"écran."
+
+#: wp-admin/users.php:160 wp-admin/users.php:202
 msgid "You can&#8217;t delete users."
 msgstr "Vous ne pouvez pas supprimer d&rsquo;utilisateurs."
 
-#: wp-admin/users.php:145
+#: wp-admin/users.php:167
 msgid "You can&#8217;t delete that user."
 msgstr "Vous ne pouvez pas supprimer cet utilisateur."
 
-#: wp-admin/users.php:197
+#: wp-admin/users.php:219
 msgid "Delete Users"
 msgstr "Supprimer des utilisateurs"
 
-#: wp-admin/users.php:198
+#: wp-admin/users.php:222
+msgid "Please select an option."
+msgstr "Veuillez choisir une option."
+
+#: wp-admin/users.php:225
 msgid "You have specified this user for deletion:"
 msgid_plural "You have specified these users for deletion:"
 msgstr[0] "Vous avez choisi de supprimer cet utilisateur&nbsp;:"
 msgstr[1] "Vous avez choisi de supprimer ces utilisateurs&nbsp;:"
 
-#: wp-admin/users.php:206
-msgid "ID #%1s: %2s <strong>The current user will not be deleted.</strong>"
-msgstr "ID n°%1s&nbsp;: %2s <strong>L&rsquo;utilisateur actuel ne sera pas supprimé.</strong>"
-
-#: wp-admin/users.php:208
-#: wp-admin/users.php:311
-msgid "ID #%1s: %2s"
-msgstr "ID n°%1s&nbsp;: %2s"
-
-#: wp-admin/users.php:215
-msgid "What should be done with posts and links owned by this user?"
-msgid_plural "What should be done with posts and links owned by these users?"
-msgstr[0] "Que voulez-vous faire des articles et liens de cet utilisateur&nbsp;?"
-msgstr[1] "Que voulez-vous faire des articles et liens de ces utilisateurs&nbsp;?"
-
-#: wp-admin/users.php:218
-msgid "Delete all posts and links."
-msgstr "Supprimer tous les articles et les liens."
-
-#: wp-admin/users.php:220
-msgid "Attribute all posts and links to:"
-msgstr "Attribuer tous les articles et les liens à&nbsp;:"
-
-#: wp-admin/users.php:224
+#: wp-admin/users.php:232
+msgid "ID #%1$s: %2$s <strong>The current user will not be deleted.</strong>"
+msgstr ""
+"ID n°%1$s&nbsp;: %2$s <strong>L&rsquo;utilisateur actuel ne sera pas "
+"supprimé.</strong>"
+
+#: wp-admin/users.php:234 wp-admin/users.php:337
+msgid "ID #%1$s: %2$s"
+msgstr "ID n°%1$s&nbsp;: %2$s"
+
+#: wp-admin/users.php:241
+msgid "What should be done with posts owned by this user?"
+msgid_plural "What should be done with posts owned by these users?"
+msgstr[0] "Que voulez-vous faire des articles de cet utilisateur&nbsp;?"
+msgstr[1] "Que voulez-vous faire des articles de ces utilisateurs&nbsp;?"
+
+#: wp-admin/users.php:244
+msgid "Delete all posts."
+msgstr "Supprimer tous les articles."
+
+#: wp-admin/users.php:246
+msgid "Attribute all posts to:"
+msgstr "Attribuer tous les articles à&nbsp;:"
+
+#: wp-admin/users.php:250
 msgid "Confirm Deletion"
 msgstr "Confirmer la suppression"
 
-#: wp-admin/users.php:226
+#: wp-admin/users.php:252
 msgid "There are no valid users selected for deletion."
 msgstr "Aucun utilisateur valide n&rsquo;est sélectionné pour la suppression."
 
-#: wp-admin/users.php:238
-#: wp-admin/users.php:246
-#: wp-admin/users.php:275
-#: wp-admin/users.php:283
+#: wp-admin/users.php:264 wp-admin/users.php:272 wp-admin/users.php:301
+#: wp-admin/users.php:309
 msgid "You can&#8217;t remove users."
 msgstr "Vous ne pouvez pas supprimer ces utilisateurs."
 
-#: wp-admin/users.php:298
+#: wp-admin/users.php:324
 msgid "Remove Users from Site"
 msgstr "Supprimer des utilisateurs de ce site"
 
-#: wp-admin/users.php:299
+#: wp-admin/users.php:325
 msgid "You have specified these users for removal:"
 msgstr "Vous avez choisi de supprimer ces utilisateurs&nbsp;:"
 
-#: wp-admin/users.php:307
-msgid "ID #%1s: %2s <strong>The current user will not be removed.</strong>"
-msgstr "ID n°%1s&nbsp;: %2s <strong>l&rsquo;utilisateur actuel ne sera pas supprimé.</strong>"
-
-#: wp-admin/users.php:309
-msgid "ID #%1s: %2s <strong>You don't have permission to remove this user.</strong>"
-msgstr "ID n°%1s: %2s <strong>vous n&rsquo;avez pas l&rsquo;autorisation de supprimer cet utilisateur.</strong>"
-
-#: wp-admin/users.php:318
+#: wp-admin/users.php:333
+msgid "ID #%1$s: %2$s <strong>The current user will not be removed.</strong>"
+msgstr ""
+"ID n°%1$s&nbsp;: %2$s <strong>l&rsquo;utilisateur actuel ne sera pas "
+"supprimé.</strong>"
+
+#: wp-admin/users.php:335
+msgid ""
+"ID #%1$s: %2$s <strong>You don't have permission to remove this user.</"
+"strong>"
+msgstr ""
+"ID n°%1$s&nbsp;: %2$s <strong>vous n&rsquo;avez pas l&rsquo;autorisation de "
+"supprimer cet utilisateur.</strong>"
+
+#: wp-admin/users.php:344
 msgid "Confirm Removal"
 msgstr "Confirmer la suppression"
 
-#: wp-admin/users.php:320
+#: wp-admin/users.php:346
 msgid "There are no valid users selected for removal."
 msgstr "Aucun utilisateur valide n&rsquo;est sélectionné pour la suppression."
 
-#: wp-admin/users.php:350
+#: wp-admin/users.php:376
 msgid "User deleted."
 msgid_plural "%s users deleted."
 msgstr[0] "Utilisateur supprimé."
 msgstr[1] "%s utilisateurs supprimés."
 
-#: wp-admin/users.php:354
+#: wp-admin/users.php:380
 msgid "New user created. <a href=\"%s\">Edit user</a>"
-msgstr "Nouvel utilisateur créé. <a href=\"%s\">Modifier l&rsquo;utilisateur</a>"
-
-#: wp-admin/users.php:358
+msgstr ""
+"Nouvel utilisateur créé. <a href=\"%s\">Modifier l&rsquo;utilisateur</a>"
+
+#: wp-admin/users.php:384
 msgid "New user created."
 msgstr "Le nouvel utilisateur a été créé."
 
-#: wp-admin/users.php:362
+#: wp-admin/users.php:388
 msgid "Changed roles."
 msgstr "Rôles modifiés."
 
-#: wp-admin/users.php:365
+#: wp-admin/users.php:391
 msgid "The current user&#8217;s role must have user editing capabilities."
-msgstr "L&rsquo;utilisateur courant doit avoir un niveau lui permettant de modifier les utilisateurs."
-
-#: wp-admin/users.php:366
+msgstr ""
+"L&rsquo;utilisateur courant doit avoir un niveau lui permettant de modifier "
+"les utilisateurs."
+
+#: wp-admin/users.php:392
 msgid "Other user roles have been changed."
 msgstr "Les rôles des autres utilisateurs ont été modifiés."
 
-#: wp-admin/users.php:369
+#: wp-admin/users.php:395
 msgid "You can&#8217;t delete the current user."
 msgstr "Vous ne pouvez pas supprimer l&rsquo;utilisateur courant."
 
-#: wp-admin/users.php:370
+#: wp-admin/users.php:396
 msgid "Other users have been deleted."
 msgstr "Les autres utilisateurs ont été supprimés."
 
-#: wp-admin/users.php:373
+#: wp-admin/users.php:399
 msgid "User removed from this site."
 msgstr "Utilisateur supprimé de ce site."
 
-#: wp-admin/users.php:376
+#: wp-admin/users.php:402
 msgid "You can't remove the current user."
 msgstr "Vous ne pouvez pas supprimer l&rsquo;utilisateur courant."
 
-#: wp-admin/users.php:377
+#: wp-admin/users.php:403
 msgid "Other users have been removed."
 msgstr "Les autres utilisateurs ont été supprimés."
 
 #: wp-admin/widgets.php:46
-msgid "Widgets are independent sections of content that can be placed into any widgetized area provided by your theme (commonly called sidebars). To populate your sidebars/widget areas with individual widgets, drag and drop the title bars into the desired area. By default, only the first widget area is expanded. To populate additional widget areas, click on their title bars to expand them."
-msgstr "Les widgets sont des conteneurs de contenu indépendants, qui peuvent être placés dans n&rsquo;importe quelle zone à widgets de votre thème (le plus souvent, la barre latérale). Pour remplir les zones à widgets de votre barre latérale, glissez/déposez les barres de titre dans la zone désirée. Par défaut, seule la première zone de widgets sera ouverte. Pour remplir les autres zones à widgets, cliquez sur leur barre de titre afin de les ouvrir."
+msgid ""
+"Widgets are independent sections of content that can be placed into any "
+"widgetized area provided by your theme (commonly called sidebars). To "
+"populate your sidebars/widget areas with individual widgets, drag and drop "
+"the title bars into the desired area. By default, only the first widget area "
+"is expanded. To populate additional widget areas, click on their title bars "
+"to expand them."
+msgstr ""
+"Les widgets sont des conteneurs de contenu indépendants, qui peuvent être "
+"placés dans n&rsquo;importe quelle zone à widgets de votre thème (le plus "
+"souvent, la barre latérale). Pour remplir les zones à widgets de votre barre "
+"latérale, glissez/déposez les barres de titre dans la zone désirée. Par "
+"défaut, seule la première zone de widgets sera ouverte. Pour remplir les "
+"autres zones à widgets, cliquez sur leur barre de titre afin de les ouvrir."
 
 #: wp-admin/widgets.php:47
-msgid "The Available Widgets section contains all the widgets you can choose from. Once you drag a widget into a sidebar, it will open to allow you to configure its settings. When you are happy with the widget settings, click the Save button and the widget will go live on your site. If you click Delete, it will remove the widget."
-msgstr "La section &laquo;&nbsp;Widgets disponibles&nbsp;&raquo; contient tous les widgets que vous pouvez utiliser. Une fois le widget glissé dans la barre latérale, il s&rsquo;ouvrira pour vous permettre d&rsquo;en modifier les réglages. Quand vous êtes satisfait de vos réglages, cliquez sur le bouton &laquo;&nbsp;Enregistrer&nbsp;&raquo; et le widget sera lancé sur votre site. Si vous cliquez sur &laquo;&nbsp;Supprimer&nbsp;&raquo;, le widget sera enlevé du site."
+msgid ""
+"The Available Widgets section contains all the widgets you can choose from. "
+"Once you drag a widget into a sidebar, it will open to allow you to "
+"configure its settings. When you are happy with the widget settings, click "
+"the Save button and the widget will go live on your site. If you click "
+"Delete, it will remove the widget."
+msgstr ""
+"La section &laquo;&nbsp;Widgets disponibles&nbsp;&raquo; contient tous les "
+"widgets que vous pouvez utiliser. Une fois le widget glissé dans la barre "
+"latérale, il s&rsquo;ouvrira pour vous permettre d&rsquo;en modifier les "
+"réglages. Quand vous êtes satisfait de vos réglages, cliquez sur le bouton "
+"&laquo;&nbsp;Enregistrer&nbsp;&raquo; et le widget sera lancé sur votre "
+"site. Si vous cliquez sur &laquo;&nbsp;Supprimer&nbsp;&raquo;, le widget "
+"sera enlevé du site."
 
 #: wp-admin/widgets.php:51
 msgid "Removing and Reusing"
 msgstr "Retirer et réutiliser"
 
 #: wp-admin/widgets.php:53
-msgid "If you want to remove the widget but save its setting for possible future use, just drag it into the Inactive Widgets area. You can add them back anytime from there. This is especially helpful when you switch to a theme with fewer or different widget areas."
-msgstr "Si vous voulez enlever le widget, mais conserver ses réglages pour un possible usage futur, glissez-le simplement dans la zone &laquo;&nbsp;Widgets désactivés&nbsp;&raquo;. De là, vous pouvez les rajouter n&rsquo;importe quand. C&rsquo;est particulièrement utile quand vous passez à un thème avec moins de zones à widgets, ou des zones différentes."
+msgid ""
+"If you want to remove the widget but save its setting for possible future "
+"use, just drag it into the Inactive Widgets area. You can add them back "
+"anytime from there. This is especially helpful when you switch to a theme "
+"with fewer or different widget areas."
+msgstr ""
+"Si vous voulez enlever le widget, mais conserver ses réglages pour un "
+"possible usage futur, glissez-le simplement dans la zone &laquo;&nbsp;"
+"Widgets désactivés&nbsp;&raquo;. De là, vous pouvez les rajouter n&rsquo;"
+"importe quand. C&rsquo;est particulièrement utile quand vous passez à un "
+"thème avec moins de zones à widgets, ou des zones différentes."
 
 #: wp-admin/widgets.php:54
-msgid "Widgets may be used multiple times. You can give each widget a title, to display on your site, but it&#8217;s not required."
-msgstr "Les widgets peuvent être utilisés à plusieurs reprises. Vous pouvez donner un titre pour chaque widget, afin de l&rsquo;afficher sur votre site, mais ce n&rsquo;est pas obligatoire."
+msgid ""
+"Widgets may be used multiple times. You can give each widget a title, to "
+"display on your site, but it&#8217;s not required."
+msgstr ""
+"Les widgets peuvent être utilisés à plusieurs reprises. Vous pouvez donner "
+"un titre pour chaque widget, afin de l&rsquo;afficher sur votre site, mais "
+"ce n&rsquo;est pas obligatoire."
 
 #: wp-admin/widgets.php:55
-msgid "Enabling Accessibility Mode, via Screen Options, allows you to use Add and Edit buttons instead of using drag and drop."
-msgstr "En activant le mode &laquo;&nbsp;Accessibilité&nbsp;&raquo;, via les options d&rsquo;écrans, vous autorisez l&rsquo;utilisation des boutons &laquo;&nbsp;Ajouter&nbsp;&raquo; et &laquo;&nbsp;Modifier&nbsp;&raquo; à la place du glisser/déposer."
+msgid ""
+"Enabling Accessibility Mode, via Screen Options, allows you to use Add and "
+"Edit buttons instead of using drag and drop."
+msgstr ""
+"En activant le mode &laquo;&nbsp;Accessibilité&nbsp;&raquo;, via les options "
+"d&rsquo;écrans, vous autorisez l&rsquo;utilisation des boutons &laquo;&nbsp;"
+"Ajouter&nbsp;&raquo; et &laquo;&nbsp;Modifier&nbsp;&raquo; à la place du "
+"glisser/déposer."
 
 #: wp-admin/widgets.php:59
 msgid "Missing Widgets"
 msgstr "Widgets manquants"
 
 #: wp-admin/widgets.php:61
-msgid "Many themes show some sidebar widgets by default until you edit your sidebars, but they are not automatically displayed in your sidebar management tool. After you make your first widget change, you can re-add the default widgets by adding them from the Available Widgets area."
-msgstr "De nombreux thèmes affichent par défaut quelques widgets dans la barre latérale, jusqu&rsquo;à ce que vous la modifiez vous-mêmes. Ces widgets par défaut ne sont pas automatiquement affichés dans le gestionnaire de barre latérale. Après avoir fait vos propres modifications de widgets, vous pouvez rajouter les widgets par défaut depuis la section &laquo;&nbsp;Widgets Disponibles&nbsp;&raquo;."
+msgid ""
+"Many themes show some sidebar widgets by default until you edit your "
+"sidebars, but they are not automatically displayed in your sidebar "
+"management tool. After you make your first widget change, you can re-add the "
+"default widgets by adding them from the Available Widgets area."
+msgstr ""
+"De nombreux thèmes affichent par défaut quelques widgets dans la barre "
+"latérale, jusqu&rsquo;à ce que vous la modifiez vous-mêmes. Ces widgets par "
+"défaut ne sont pas automatiquement affichés dans le gestionnaire de barre "
+"latérale. Après avoir fait vos propres modifications de widgets, vous pouvez "
+"rajouter les widgets par défaut depuis la section &laquo;&nbsp;Widgets "
+"Disponibles&nbsp;&raquo;."
 
 #: wp-admin/widgets.php:62
-msgid "When changing themes, there is often some variation in the number and setup of widget areas/sidebars and sometimes these conflicts make the transition a bit less smooth. If you changed themes and seem to be missing widgets, scroll down on this screen to the Inactive area, where all your widgets and their settings will have been saved."
-msgstr "En changeant de thèmes, il y a souvent des variations sur le nombre et l&rsquo;agencement des zones de widgets et des barres latérales, et parfois tout cela entre en conflit, rendant la transition moins aisée. Si vous avec changé de thème et que certains widgets semblent manquer, descendez en bas de cet écran pour les retrouver dans la zone des widgets inactifs, où ils ont été conservés avec leurs derniers réglages."
+msgid ""
+"When changing themes, there is often some variation in the number and setup "
+"of widget areas/sidebars and sometimes these conflicts make the transition a "
+"bit less smooth. If you changed themes and seem to be missing widgets, "
+"scroll down on this screen to the Inactive Widgets area, where all of your "
+"widgets and their settings will have been saved."
+msgstr ""
+"En changeant de thèmes, il y a souvent des variations sur le nombre et "
+"l&rsquo;agencement des zones de widgets et des barres latérales, et parfois "
+"tout cela entre en conflit, rendant la transition moins aisée. Si vous avec "
+"changé de thème et que certains widgets semblent manquer, faites défiler cet "
+"écran jusqu&rsquo;en bas pour les retrouver dans la zone des widgets "
+"inactifs, où ils ont été conservés avec leurs derniers réglages."
 
 #: wp-admin/widgets.php:67
-msgid "<a href=\"http://codex.wordpress.org/Appearance_Widgets_Screen\" target=\"_blank\">Documentation on Widgets</a>"
-msgstr "<a href=\"http://codex.wordpress.org/Appearance_Widgets_Screen\" target=\"_blank\">Documentation sur les widgets (en)</a>"
-
-#: wp-admin/widgets.php:80
-msgid "No Sidebars Defined"
-msgstr "Aucune colonne latérale définie"
-
-#: wp-admin/widgets.php:82
-msgid "The theme you are currently using isn&#8217;t widget-aware, meaning that it has no sidebars that you are able to change. For information on making your theme widget-aware, please <a href=\"http://codex.wordpress.org/Widgetizing_Themes\">follow these instructions</a>."
-msgstr "Le thème que vous utilisez n&rsquo;est pas conçu pour les widgets, ce qui signifie qu&rsquo;il ne dispose pas d&rsquo;une colonne latérale que vous pouvez modifier. Pour obtenir des informations sur la manière de rendre votre thème compatible avec les widgets, <a href=\"http://codex.wordpress.org/Widgetizing_Themes\">lisez ces instructions</a> (en anglais)."
-
-#: wp-admin/widgets.php:103
+msgid ""
+"<a href=\"http://codex.wordpress.org/Appearance_Widgets_Screen\" target="
+"\"_blank\">Documentation on Widgets</a>"
+msgstr ""
+"<a href=\"http://codex.wordpress.org/Appearance_Widgets_Screen\" target="
+"\"_blank\">Documentation sur les widgets (en)</a>"
+
+#: wp-admin/widgets.php:72
+msgid ""
+"The theme you are currently using isn&#8217;t widget-aware, meaning that it "
+"has no sidebars that you are able to change. For information on making your "
+"theme widget-aware, please <a href=\"http://codex.wordpress.org/"
+"Widgetizing_Themes\">follow these instructions</a>."
+msgstr ""
+"Le thème que vous utilisez n&rsquo;est pas conçu pour les widgets, ce qui "
+"signifie qu&rsquo;il ne dispose pas d&rsquo;une colonne latérale que vous "
+"pouvez modifier. Pour obtenir des informations sur la manière de rendre "
+"votre thème compatible avec les widgets, <a href=\"http://codex.wordpress."
+"org/Widgetizing_Themes\">lisez ces instructions</a> (en anglais)."
+
+#: wp-admin/widgets.php:88
 msgid "Inactive Sidebar (not used)"
 msgstr "Barre latérale inactive (inutilisée)"
 
-#: wp-admin/widgets.php:106
-msgid "This sidebar is no longer available and does not show anywhere on your site. Remove each of the widgets below to fully remove this inactive sidebar."
-msgstr "Cette barre latérale n&rsquo;est plus disponible, et ne s&rsquo;affiche nulle part sur le site. Vous pouvez en retirer les widgets ci-dessous afin de la supprimer totalement."
-
-#: wp-admin/widgets.php:120
+#: wp-admin/widgets.php:91
+msgid ""
+"This sidebar is no longer available and does not show anywhere on your site. "
+"Remove each of the widgets below to fully remove this inactive sidebar."
+msgstr ""
+"Cette barre latérale n&rsquo;est plus disponible, et ne s&rsquo;affiche "
+"nulle part sur le site. Vous pouvez en retirer les widgets ci-dessous afin "
+"de la supprimer totalement."
+
+#: wp-admin/widgets.php:105
 msgid "Inactive Widgets"
 msgstr "Widgets désactivés"
 
-#: wp-admin/widgets.php:123
-msgid "Drag widgets here to remove them from the sidebar but keep their settings."
-msgstr "Glissez ici les widgets que vous voulez retirer de la colonne latérale, tout en conservant leurs réglages actuels."
-
-#: wp-admin/widgets.php:244
+#: wp-admin/widgets.php:108
+msgid ""
+"Drag widgets here to remove them from the sidebar but keep their settings."
+msgstr ""
+"Glissez ici les widgets que vous voulez retirer de la colonne latérale, tout "
+"en conservant leurs réglages actuels."
+
+#: wp-admin/widgets.php:229
 msgid "Widget %s"
 msgstr "Widget %s"
 
-#: wp-admin/widgets.php:255
-msgid "Select both the sidebar for this widget and the position of the widget in that sidebar."
-msgstr "Sélectionnez à la fois la colonne latérale pour ce widget, et la position du widget dans cette colonne latérale."
-
-#: wp-admin/widgets.php:295
+#: wp-admin/widgets.php:240
+msgid ""
+"Select both the sidebar for this widget and the position of the widget in "
+"that sidebar."
+msgstr ""
+"Sélectionnez à la fois la colonne latérale pour ce widget, et la position du "
+"widget dans cette colonne latérale."
+
+#: wp-admin/widgets.php:280
 msgid "Save Widget"
 msgstr "Enregistrer le widget"
 
-#: wp-admin/widgets.php:311
+#: wp-admin/widgets.php:296
 msgid "Changes saved."
 msgstr "Modifications enregistrées."
 
-#: wp-admin/widgets.php:315
+#: wp-admin/widgets.php:300
 msgid "Error while saving."
 msgstr "Erreur lors de la sauvegarde."
 
-#: wp-admin/widgets.php:316
+#: wp-admin/widgets.php:301
 msgid "Error in displaying the widget settings form."
-msgstr "Une erreur est survenue durant l&rsquo;affichage du formulaire de paramétrage du widget."
-
-#: wp-admin/widgets.php:339
+msgstr ""
+"Une erreur est survenue durant l&rsquo;affichage du formulaire de "
+"paramétrage du widget."
+
+#: wp-admin/widgets.php:324
 msgid "Available Widgets"
 msgstr "Widgets disponibles"
 
-#: wp-admin/widgets.php:339
+#: wp-admin/widgets.php:324
 msgctxt "removing-widget"
 msgid "Deactivate"
 msgstr "Désactiver"
 
-#: wp-admin/widgets.php:341
-msgid "Drag widgets from here to a sidebar on the right to activate them. Drag widgets back here to deactivate them and delete their settings."
-msgstr "Glissez les widgets d&rsquo;ici vers une colonne latérale à droite pour les activer. Remettez-les ici pour les désactiver et supprimer leurs réglages."
+#: wp-admin/widgets.php:326
+msgid ""
+"Drag widgets from here to a sidebar on the right to activate them. Drag "
+"widgets back here to deactivate them and delete their settings."
+msgstr ""
+"Glissez les widgets d&rsquo;ici vers une colonne latérale à droite pour les "
+"activer. Remettez-les ici pour les désactiver et supprimer leurs réglages."
 
 #. Plugin URI of the plugin/theme
 msgid "http://akismet.com/?return=true"
 msgstr "http://akismet.com/?return=true"
 
 #. Description of the plugin/theme
-msgid "Used by millions, Akismet is quite possibly the best way in the world to <strong>protect your blog from comment and trackback spam</strong>. It keeps your site protected from spam even while you sleep. To get started: 1) Click the \"Activate\" link to the left of this description, 2) <a href=\"http://akismet.com/get/?return=true\">Sign up for an Akismet API key</a>, and 3) Go to your <a href=\"admin.php?page=akismet-key-config\">Akismet configuration</a> page, and save your API key."
-msgstr "Utilisé par des millions de blogs, Akismet est très probablement la meilleure manière de <strong>protéger votre blog des commentaires et trackbacks indésirables (spam)</strong>. Il protège votre site même pendant votre sommeil. Pour mettre sa protection en place&nbsp;: 1) Cliquez sur le lien &laquo;&nbsp;Activer&nbsp;&raquo;, à gauche de la description, 2) <a href=\"http://akismet.com/get/?return=true\">obtenez une clef d&rsquo;API Akismet, et 3) Allez sur <a href=\"admin.php?page=akismet-key-config\">la page de configuration</a>, et enregistrez votre clef d&rsquo;API."
+msgid ""
+"Used by millions, Akismet is quite possibly the best way in the world to "
+"<strong>protect your blog from comment and trackback spam</strong>. It keeps "
+"your site protected from spam even while you sleep. To get started: 1) Click "
+"the \"Activate\" link to the left of this description, 2) <a href=\"http://"
+"akismet.com/get/?return=true\">Sign up for an Akismet API key</a>, and 3) Go "
+"to your <a href=\"admin.php?page=akismet-key-config\">Akismet configuration</"
+"a> page, and save your API key."
+msgstr ""
+"Utilisé par des millions de blogs, Akismet est très probablement la "
+"meilleure manière de <strong>protéger votre blog des commentaires et "
+"trackbacks indésirables (spam)</strong>. Il protège votre site même pendant "
+"votre sommeil. Pour mettre sa protection en place&nbsp;: 1) Cliquez sur le "
+"lien &laquo;&nbsp;Activer&nbsp;&raquo;, à gauche de la description, 2) <a "
+"href=\"http://akismet.com/get/?return=true\">obtenez une clef d&rsquo;API "
+"Akismet, et 3) Allez sur <a href=\"admin.php?page=akismet-key-config\">la "
+"page de configuration</a>, et enregistrez votre clef d&rsquo;API."
 
 #. Author of the plugin/theme
 msgid "Automattic"
@@ -10114,8 +13086,18 @@
 msgstr "http://wordpress.org/extend/plugins/hello-dolly/"
 
 #. Description of the plugin/theme
-msgid "This is not just a plugin, it symbolizes the hope and enthusiasm of an entire generation summed up in two words sung most famously by Louis Armstrong: Hello, Dolly. When activated you will randomly see a lyric from <cite>Hello, Dolly</cite> in the upper right of your admin screen on every page."
-msgstr "Ceci n&rsquo;est pas qu'une extension. Il symbolise l'espoir et l'enthousiasme de toute une génération, résumé en deux mots, qu'a notamment chanté Louis Armstrong&nbsp;: Hello, Dolly. Une fois activé, il affichera une ligne au hasard des paroles de la chanson <cite>Hello, Dolly</cite>, en haut à droite de toutes les pages de l'administration."
+msgid ""
+"This is not just a plugin, it symbolizes the hope and enthusiasm of an "
+"entire generation summed up in two words sung most famously by Louis "
+"Armstrong: Hello, Dolly. When activated you will randomly see a lyric from "
+"<cite>Hello, Dolly</cite> in the upper right of your admin screen on every "
+"page."
+msgstr ""
+"Ce n'est pas qu'une extension. Il symbolise l'espoir et l'enthousiasme de "
+"toute une génération, résumé en deux mots, qu'a notamment chanté Louis "
+"Armstrong&nbsp;: Hello, Dolly. Une fois activé, il affichera une ligne "
+"aléatoirement des paroles de la chanson <cite>Hello, Dolly</cite>, en haut à "
+"droite de toutes les pages de l'administration."
 
 #. Author of the plugin/theme
 msgid "Matt Mullenweg"
@@ -10125,6 +13107,757 @@
 msgid "http://ma.tt/"
 msgstr "http://ma.tt/"
 
+#~ msgid "Insert Multiple Images"
+#~ msgstr "Insérez plusieurs images"
+
+#~ msgid ""
+#~ "Have a need for speed? You can now insert multiple images at once and "
+#~ "then compose your words around them."
+#~ msgstr ""
+#~ "Besoin de vélocité&nbsp;? Vous pouvez désormais insérer plusieurs images "
+#~ "en même temps, puis les entourer de votre texte."
+
+#~ msgid "Attachment Page Content"
+#~ msgstr "Contenu de la page du fichier attaché"
+
+#~ msgid "Description"
+#~ msgstr "Description"
+
+#~ msgid "Arrow: move by 10px"
+#~ msgstr "Flèche&nbsp;: déplacer de 10 px"
+
+#~ msgid "Shift + arrow: move by 1px"
+#~ msgstr "Shit + Flèche&nbsp;: déplacer de 1 px"
+
+#~ msgid "Ctrl + arrow: resize by 10px"
+#~ msgstr "Ctrl + Flèche&nbsp;: ajuster de 10 px"
+
+#~ msgid "Ctrl + Shift + arrow: resize by 1px"
+#~ msgstr "Ctrl + shift + Flèche&nbsp;: ajuster de 1 px"
+
+#~ msgid "Shift + drag: lock aspect ratio"
+#~ msgstr "Shift + clic/déplacement&nbsp;: fixer une proportion de taille"
+
+#~ msgid "Refresh"
+#~ msgstr "Rafraîchir"
+
+#~ msgid "No items found."
+#~ msgstr "Aucun élément trouvé."
+
+#~ msgid "Choose a Featured Image"
+#~ msgstr "Choisissez une image à mettre à la une"
+
+#~ msgid "Update Featured Image"
+#~ msgstr "Mettre à jour l'image à la Une"
+
+#~ msgid "Remove Featured Image"
+#~ msgstr "Supprimer l&rsquo;image à la une"
+
+#~ msgid "Set featured image"
+#~ msgstr "Mettre une image à la une"
+
+#~ msgid "Media attachment updated"
+#~ msgstr "Fichier attaché mis à jour."
+
+#~ msgid "Delete Permanently"
+#~ msgstr "Supprimer définitivement"
+
+#~ msgid "Sorry, that file cannot be edited."
+#~ msgstr "Désolé, ce fichier ne peut être modifié."
+
+#~ msgid "New Feature: Plugin Favorites"
+#~ msgstr "Nouvelle fonctionnalité&nbsp;: extensions favorites"
+
+#~ msgid ""
+#~ "If you have favorited plugins on WordPress.org, you can now install them "
+#~ "directly from this tab."
+#~ msgstr ""
+#~ "Si vous avez mis des extensions en favoris sur WordPress.org, vous pouvez "
+#~ "les installer directement depuis cet onglet."
+
+#~ msgid "widgets"
+#~ msgstr "widgets"
+
+#~ msgid "menus"
+#~ msgstr "menus"
+
+#~ msgid "Live Theme Previews"
+#~ msgstr "La prévisualisation des thèmes"
+
+#~ msgid "Try on New Themes"
+#~ msgstr "Essayez de nouveau thèmes"
+
+#~ msgid ""
+#~ "Gone are the days of rushing to update your header, background, and the "
+#~ "like as soon as you activate a new theme. You can now customize these "
+#~ "options <strong>before</strong> activating a new theme. Note: this "
+#~ "feature is available for installed themes only."
+#~ msgstr ""
+#~ "Qu&rsquo;ils sont loin les jours où, juste après avoir activé un nouveau "
+#~ "thème, vous deviez vous dépêcher de modifier l&rsquo;en-tête, le fond et "
+#~ "le reste ! Désormais, vous pouvez personnaliser ces options "
+#~ "<strong>avant</strong> d&rsquo;activer un nouveau thème. Attention&nbsp;: "
+#~ "cette fonctionnalité n&rsquo;est disponible que pour les thèmes installés."
+
+#~ msgid "Customize Current Theme"
+#~ msgstr "Personnalisez votre thème actuel"
+
+#~ msgid ""
+#~ "Satisfy your curiosity and try on a fresh coat of paint &mdash; you can "
+#~ "also use the live preview mode to customize your current theme. Look for "
+#~ "the Customize link on the Themes screen."
+#~ msgstr ""
+#~ "Succombez à la curiosité et voyez la vie en technicolor&nbsp;: avec le "
+#~ "mode de prévisualisation, vous pouvez également personnaliser votre thème "
+#~ "actuel. Cliquez sur le lien &laquo;&nbsp;Personnaliser&nbsp;&raquo; dans "
+#~ "l&rsquo;écran des thèmes."
+
+#~ msgid "Custom Headers"
+#~ msgstr "Des en-têtes personnalisés"
+
+#~ msgid "Flexible Sizes"
+#~ msgstr "Tailles flexible"
+
+#~ msgid ""
+#~ "You can decide for yourself how tall or wide your custom header image "
+#~ "should be. From now on, themes will provide a recommended image size for "
+#~ "custom headers rather than a fixed requirement. Note: this feature "
+#~ "requires <a href=\"http://codex.wordpress.org/Custom_Headers\">theme "
+#~ "support</a>."
+#~ msgstr ""
+#~ "Vous pouvez décider de la taille de votre image d&rsquo;en-tête, en "
+#~ "hauteur comme en largeur. Désormais, les thèmes proposeront une taille "
+#~ "recommandée pour les en-têtes personnalisés plutôt que de l&rsquo;"
+#~ "imposer. Attention&nbsp;: cette fonctionnalité ne fonctionne qu&rsquo;<a "
+#~ "href=\"http://codex.wordpress.org/Custom_Headers\">avec les thèmes qui "
+#~ "l&rsquo;implémentent (en)</a>."
+
+#~ msgid "Choose from Media Library"
+#~ msgstr "Accès à la bibliothèque d&rsquo;images"
+
+#~ msgid ""
+#~ "Tired of re-uploading the same custom header image every time you check "
+#~ "out a new theme? Now you can choose header images from your media library "
+#~ "for easier customization."
+#~ msgstr ""
+#~ "La lassitude vous étreint-elle quand vous devez remettre en ligne la même "
+#~ "image d&rsquo;en-tête chaque fois que vous testez un nouveau thème ? Pour "
+#~ "simplifier cette personnalisation, vous pouvez maintenant choisir une "
+#~ "image d&rsquo;en-tête directement dans votre bibliothèque de médias."
+
+#~ msgid "Twitter Embeds"
+#~ msgstr "Twitter est dans la place"
+
+#~ msgid "Share Tweets with Style"
+#~ msgstr "Partager vos tweets avec classe"
+
+#~ msgid ""
+#~ "You can now embed individual tweets in posts. It includes action links "
+#~ "that allow readers to reply to, retweet, and favorite the tweet without "
+#~ "leaving your site. Just paste a tweet URL on its own line."
+#~ msgstr ""
+#~ "Vous pouvez maintenant inclure des tweets individuels dans vos articles, "
+#~ "WordPress se chargera d&rsquo;ajouter les liens permettant à vos lecteurs "
+#~ "de répondre, retweeter ou ajouter le tweet en favoris directement depuis "
+#~ "votre site. Collez simplement le lien du tweet dans sa propre ligne."
+
+#~ msgid ""
+#~ "This works with URLs from some other sites, too. For more, see the Codex "
+#~ "article on <a href=\"%s\">Embeds</a>."
+#~ msgstr ""
+#~ "Notez que cela marche également avec les liens d&rsquo;autres sites. Pour "
+#~ "en savoir plus, lisez l&rsquo;article <a href=\"%s\">Embeds (en)</a> du "
+#~ "Codex."
+
+#~ msgid "http://codex.wordpress.org/Embeds"
+#~ msgstr "http://codex.wordpress.org/Embeds"
+
+#~ msgid "Better Captions"
+#~ msgstr "De plus belles légendes"
+
+#~ msgid "HTML Support"
+#~ msgstr "Support HTML"
+
+#~ msgid ""
+#~ "Basic HTML support has been added to the caption field in the image "
+#~ "uploader. This allows you to add links &mdash; great for photo credits or "
+#~ "licensing details &mdash; and basic formatting such as bold and "
+#~ "italicized text."
+#~ msgstr ""
+#~ "Nous avons ajouté un support HTML de base au champ de légende d&rsquo;"
+#~ "image dans l&rsquo;outil de mise en ligne. Cela vous permet d&rsquo;"
+#~ "ajouter des liens ; très utile pour faire un lien vers l&rsquo;auteur de "
+#~ "la photo ou vers les détails de la licence d&rsquo;utilisation, ainsi que "
+#~ "vous mettre en place une mise en forme simple, comme un texte en gras ou "
+#~ "en italique."
+
+#~ msgid "Faster WP_Query"
+#~ msgstr "Des requêtes WP_Query plus rapides"
+
+#~ msgid ""
+#~ "Post queries have been optimized to improve performance, especially for "
+#~ "sites with large databases."
+#~ msgstr ""
+#~ " Les requêtes d&rsquo;écriture ont été optimisées pour améliorer les "
+#~ "performances, notamment sur les sites ayant beaucoup de contenu."
+
+#~ msgid "Faster Translations"
+#~ msgstr "Des traduction plus rapides"
+
+#~ msgid ""
+#~ "The number of strings loaded on the front end was greatly reduced, "
+#~ "resulting in faster front page load times for localized installations."
+#~ msgstr ""
+#~ "Le nombre de chaînes chargées pour le thème a été grandement réduit, ce "
+#~ "qui donne des pages qui se chargent plus vite même avec les fichiers de "
+#~ "traduction."
+
+#~ msgid ""
+#~ "Also, better support for East Asian languages, right-to-left languages, "
+#~ "theme translations, and more."
+#~ msgstr ""
+#~ "Par ailleurs, WordPress gère désormais mieux les langues d&rsquo;Asie "
+#~ "orientale, celles qui s&rsquo;écrivent de droite à gauche (RTL), la "
+#~ "traduction des thèmes, et plus encore."
+
+#~ msgid "Themes API"
+#~ msgstr "L&rsquo;API des thèmes"
+
+#~ msgid ""
+#~ "WP_Theme, wp_get_themes(), wp_get_theme(). Faster, uses less memory, "
+#~ "makes use of persistent caching."
+#~ msgstr ""
+#~ "WP_Theme, wp_get_themes() et wp_get_theme() sont plus rapides, utilisent "
+#~ "moins de mémoire, et font un meilleur usage du cache persistant."
+
+#~ msgid "Custom Header and Background API"
+#~ msgstr ""
+#~ "L&rsquo;API de gestion des en-têtes personnalisés et des images de fond"
+
+#~ msgid ""
+#~ "Custom header and background API relocated into the theme support API."
+#~ msgstr ""
+#~ "L&rsquo;API de gestion des en-têtes personnalisés et des images de fond a "
+#~ "été déplacée dans l&rsquo;API de support du thème."
+
+#~ msgid ""
+#~ "A new <a href=\"%s\">WordPress API</a> that supports custom content types "
+#~ "and taxonomies, as well as dozens of other bug fixes and improvements."
+#~ msgstr ""
+#~ "Une <a href=\"%s\">nouvelle API pour WordPress</a>, qui fonctionne avec "
+#~ "les types de contenus et les taxinomies, et profite également d&rsquo;une "
+#~ "douzaine de correctifs et d&rsquo;améliorations."
+
+#~ msgid ""
+#~ "jQuery, jQuery UI, TinyMCE, Plupload, PHPMailer, SimplePie, and other "
+#~ "libraries were updated. jQuery UI Touch Punch was introduced."
+#~ msgstr ""
+#~ "jQuery, jQuery UI, TinyMCE, Plupload, PHPMailer, SimplePie et d&rsquo;"
+#~ "autres bibliothèques ont été mises à jour. Introduction de jQuery UI "
+#~ "Touch Punch."
+
+#~ msgid "Reset Text Color"
+#~ msgstr "Réinitialiser la couleur du texte"
+
+#~ msgid ""
+#~ "This will restore the original header text. You will not be able to "
+#~ "restore any customizations."
+#~ msgstr ""
+#~ "Ceci remettra en place l&rsquo;image d&rsquo;en-tête d&rsquo;origine. Il "
+#~ "ne vous sera pas possible de récupérer vos personnalisations."
+
+#~ msgid "Restore Original Header Text"
+#~ msgstr "Remettre le texte l&rsquo;en-tête d&rsquo;origine"
+
+#~ msgid "Publish Box"
+#~ msgstr "Boite de publication"
+
+#~ msgctxt "column name"
+#~ msgid "Attached to"
+#~ msgstr "Attaché à"
+
+#~ msgid "Upload/Insert %s"
+#~ msgstr "Envoyer/Insérer %s"
+
+#~ msgid "Maximum upload file size: %d%s."
+#~ msgstr "Taille maximale des fichiers&nbsp;: %d%s."
+
+#~ msgid "After a file has been uploaded, you can add titles and descriptions."
+#~ msgstr ""
+#~ "Une fois le fichier envoyé, vous pourrez lui ajouter titre et "
+#~ "descriptions."
+
+#~ msgid "Images"
+#~ msgstr "Images"
+
+#~ msgid "Manage Images"
+#~ msgstr "Gérer les images"
+
+#~ msgid "Image <span class=\"count\">(%s)</span>"
+#~ msgid_plural "Images <span class=\"count\">(%s)</span>"
+#~ msgstr[0] "Image <span class=\"count\">(%s)</span>"
+#~ msgstr[1] "Images <span class=\"count\">(%s)</span>"
+
+#~ msgid "Audio"
+#~ msgstr "Son"
+
+#~ msgid "Manage Audio"
+#~ msgstr "Gérer les sons"
+
+#~ msgid "Audio <span class=\"count\">(%s)</span>"
+#~ msgid_plural "Audio <span class=\"count\">(%s)</span>"
+#~ msgstr[0] "Fichier audio <span class=\"count\">(%s)</span>"
+#~ msgstr[1] "Fichiers audio <span class=\"count\">(%s)</span>"
+
+#~ msgid "Video"
+#~ msgstr "Vidéo"
+
+#~ msgid "Manage Video"
+#~ msgstr "Gérer les vidéos"
+
+#~ msgid "Video <span class=\"count\">(%s)</span>"
+#~ msgid_plural "Video <span class=\"count\">(%s)</span>"
+#~ msgstr[0] "Vidéos <span class=\"count\">(%s)</span>"
+#~ msgstr[1] "Vidéos <span class=\"count\">(%s)</span>"
+
+#~ msgid "Located at"
+#~ msgstr "Situé dans"
+
+#~ msgid "You must select a page to set a static front page."
+#~ msgstr ""
+#~ "Vous devez sélectionner une page pour configurer une page d'accueil "
+#~ "statique."
+
+#~ msgid "Updated Media Uploader"
+#~ msgstr "Outil d&rsquo;envoi de fichiers mis à jour"
+
+#~ msgid ""
+#~ "The single media icon now launches the uploader for all file types, and "
+#~ "the new drag and drop interface makes uploading a breeze."
+#~ msgstr ""
+#~ "Il n&rsquo;y a désormais plus qu&rsquo;une seule icône d&rsquo;envoi de "
+#~ "fichier, pour tous les types de fichier. Elle mène à l&rsquo;interface de "
+#~ "glisser/déposer de fichier, beaucoup plus simple."
+
+#~ msgid ""
+#~ "Basic image editing is available after upload is complete. Make sure you "
+#~ "click Save before leaving this screen."
+#~ msgstr ""
+#~ "Un petit outil de retouche très basique est disponible une fois que la "
+#~ "mise en ligne est validée. Prenez garde à bien cliquer sur &laquo;"
+#~ "&nbspEnregistrer&nbsp;&raquo; en quitter cet écran."
+
+#~ msgctxt "default page for posts title"
+#~ msgid "Blog"
+#~ msgstr "Blog"
+
+#~ msgid "Enable a static front page"
+#~ msgstr "Mettre en place une page d'accueil statique"
+
+#~ msgid "Show a <a href=\"%s\">page</a> instead of your latest posts"
+#~ msgstr ""
+#~ "Afficher une <a href=\"%s\">page</a> plutôt que les derniers articles"
+
+#~ msgid "Add new page titled:"
+#~ msgstr "Ajouter une nouvelle page intitulée :"
+
+#~ msgid "&mdash; Add new page &mdash;"
+#~ msgstr "&mdash; Ajouter un nouvelle page &mdash;"
+
+#~ msgid "titled:"
+#~ msgstr "intitulée :"
+
+#~ msgctxt "default page on front title"
+#~ msgid "Home"
+#~ msgstr "Accueil"
+
+#~ msgid "Show latest posts on a separate page"
+#~ msgstr "Afficher les derniers articles sur une page séparée"
+
+#~ msgid "Page title:"
+#~ msgstr "Titre de la page :"
+
+#~ msgid ""
+#~ "You can also choose a background color. If you know the hexadecimal code "
+#~ "for the color you want, enter it in the Background Color field. If not, "
+#~ "click on the Select a Color link, and a color picker will allow you to "
+#~ "choose the exact shade you want."
+#~ msgstr ""
+#~ "Vous pouvez également choisir une couleur de fond. Si vous connaissez le "
+#~ "code hexadécimal de la couleur voulue, saisissez-la dans le champ &laquo;"
+#~ "&nbsp;Couleur&nbsp;&raquo;. Sinon, cliquez sur le lien &laquo;&nbsp;"
+#~ "Sélecteur de Couleur&nbsp;&raquo;, et vous pourrez choisir la teinte "
+#~ "exacte que vous recherchez."
+
+#~ msgid "Media Library"
+#~ msgstr "Bibliothèque"
+
+#~ msgid "Large"
+#~ msgstr "Large"
+
+#~ msgid "Select"
+#~ msgstr "Sélectionner"
+
+#~ msgid "First, tweak the look of your site:"
+#~ msgstr "Pour commencer, retouchez l'apparence de votre site :"
+
+#~ msgid "Learn How To"
+#~ msgstr "Apprenez à"
+
+#~ msgid "Add image/media"
+#~ msgstr "Ajouter une image/un média"
+
+#~ msgid "Add/remove widgets"
+#~ msgstr "Ajouter/enlever des widgets"
+
+#~ msgid "Edit your navigation menu"
+#~ msgstr "Modifier votre menu de navigation"
+
+#~ msgid "Gallery Settings"
+#~ msgstr "Réglages de galerie"
+
+#~ msgid "Insert gallery"
+#~ msgstr "Insérer une galerie"
+
+#~ msgid "Columns"
+#~ msgstr "Colonnes"
+
+#~ msgid "Already Installed"
+#~ msgstr "Déjà installé"
+
+#~ msgid ""
+#~ "You appear to have already installed WordPress. To reinstall please clear "
+#~ "your old database tables first."
+#~ msgstr ""
+#~ "Il semblerait que WordPress soit déjà installé. Pour le réinstaller, "
+#~ "commencez par vider les tables de la base de données."
+
+#~ msgid ""
+#~ "Due to security issues, you cannot use Post By Email on Multisite "
+#~ "Installs."
+#~ msgstr ""
+#~ "Suite à des problèmes de sécurité, vous ne pouvez pas utiliser la "
+#~ "publication par e-mail sur les installations multisite."
+
+#~ msgid "Remote Publishing"
+#~ msgstr "Publication à distance"
+
+#~ msgid ""
+#~ "Remote Publishing allows you to use an external editor (like the iOS or "
+#~ "Android app) to write your posts."
+#~ msgstr ""
+#~ "La publication à distance vous permet d&rsquo;utiliser un éditeur externe "
+#~ "(tel qu&rsquo;une application iOS ou Android) pour écrire vos articles."
+
+#~ msgid ""
+#~ "You do not have sufficient permissions to install plugins for this site."
+#~ msgstr ""
+#~ "Vous n&rsquo;avez pas les droits suffisants pour installer des extensions "
+#~ "sur ce site."
+
+#~ msgid ""
+#~ "You do not have sufficient permissions to install themes for this site."
+#~ msgstr ""
+#~ "Vous n&rsquo;avez pas les droits suffisants pour installer des thèmes sur "
+#~ "ce site."
+
+#~ msgid ""
+#~ "The description is not prominent by default, however some themes may show "
+#~ "it."
+#~ msgstr ""
+#~ "La description n&rsquo;est pas très utilisée par défaut, cependant de "
+#~ "plus en plus de thèmes l&rsquo;affichent."
+
+#~ msgid "Attachment Page"
+#~ msgstr "Page de fichier attaché"
+
+#~ msgid "Select a Color"
+#~ msgstr "Sélecteur de couleur"
+
+#~ msgid "Clear"
+#~ msgstr "Effacer"
+
+#~ msgid "No Tags"
+#~ msgstr "Aucun mot-clef"
+
+#~ msgid ""
+#~ "The template files are located in <code>%2$s</code>. The stylesheet files "
+#~ "are located in <code>%3$s</code>. <strong>%4$s</strong> uses templates "
+#~ "from <strong>%5$s</strong>. Changes made to the templates will affect "
+#~ "both themes."
+#~ msgstr ""
+#~ "Les fichiers du thème se trouvent dans <strong>%2$s</strong>. Les "
+#~ "feuilles de style sont dans <code>%3$s</code>. <strong>%4$s</strong> "
+#~ "utilise les modèles de <strong>%5$s</strong>. Tout changement dans les "
+#~ "modèles affectera les deux thèmes."
+
+#~ msgid "All of this theme&#8217;s files are located in <code>%2$s</code>."
+#~ msgstr "Tous les fichiers de ce thème se trouvent dans <code>%2$s</code>."
+
+#~ msgid "on %4$s"
+#~ msgstr "le %4$s"
+
+#~ msgid "Welcome to your new WordPress site!"
+#~ msgstr "Bienvenue dans votre nouveau site WordPress&nbsp;!"
+
+#~ msgid ""
+#~ "If you need help getting started, check out our documentation on <a href="
+#~ "\"http://codex.wordpress.org/First_Steps_With_WordPress\">First Steps "
+#~ "with WordPress</a>. If you&#8217;d rather dive right in, here are a few "
+#~ "things most people do first when they set up a new WordPress site. If you "
+#~ "need help, use the Help tabs in the upper right corner to get information "
+#~ "on how to use your current screen and where to go for more assistance."
+#~ msgstr ""
+#~ "Si vous avez besoin d&rsquo;aide pour vous lancer, jeter un &oelig;il à "
+#~ "notre documentation, &laquo;&nbsp;<a href=\"http://codex.wordpress.org/fr:"
+#~ "Premiers_pas_avec_WordPress\">Premiers pas avec WordPress</a>&nbsp;"
+#~ "&raquo;. Si vous préférez faire le grand saut directement, voici quelques "
+#~ "indications sur ce que la plupart des utilisateurs font quand ils mettent "
+#~ "en place un nouveau site WordPress. Si vous avez besoin d&rsquo;"
+#~ "assistance, utilisez les onglets d&rsquo;aide, situés dans le coin "
+#~ "supérieur droit, pour obtenir des informations sur la manière d&rsquo;"
+#~ "utiliser l&rsquo;écran courant, et où trouver plus d&rsquo;information."
+
+#~ msgid "Basic Settings"
+#~ msgstr "Réglages de base"
+
+#~ msgid ""
+#~ "Here are a few easy things you can do to get your feet wet. Make sure to "
+#~ "click Save on each Settings screen."
+#~ msgstr ""
+#~ "Voici quelques idées pour vous jeter à l&rsquo;eau. Assurez-vous bien de "
+#~ "cliquer sur &laquo;&nbsp;Enregistrer&nbsp;&raquo; sur chaque écran de "
+#~ "réglages."
+
+#~ msgid "<a href=\"%s\">Choose your privacy setting</a>"
+#~ msgstr "<a href=\"%s\">Choisissez vos réglages de vie privée</a>"
+
+#~ msgid "<a href=\"%s\">Select your tagline and time zone</a>"
+#~ msgstr ""
+#~ "<a href=\"%s\">Réglez votre fuseau horaire et le slogan de votre site</a>"
+
+#~ msgid "<a href=\"%s\">Fill in your profile</a>"
+#~ msgstr "<a href=\"%s\">Remplissez votre profil</a>"
+
+#~ msgid "Add Real Content"
+#~ msgstr "Ajouter votre propre contenu"
+
+#~ msgid ""
+#~ "Check out the sample page & post editors to see how it all works, then "
+#~ "delete the default content and write your own!"
+#~ msgstr ""
+#~ "Allez voir l&rsquo;article et la page de démo dans leurs éditeurs "
+#~ "respectifs, afin d&rsquo;apprendre comment tout est mis en place, puis "
+#~ "effacez ce contenu par défaut et écrivez le vôtre !"
+
+#~ msgid ""
+#~ "Delete the <a href=\"%1$s\">sample page</a> and <a href=\"%2$s\">post</a>"
+#~ msgstr ""
+#~ "Effacez la <a href=\"%1$s\">page d&rsquo;exemple</a> et l&rsquo;<a href="
+#~ "\"%2$s\">article d&rsquo;exemple</a>"
+
+#~ msgid "<a href=\"%s\">Create an About Me page</a>"
+#~ msgstr ""
+#~ "<a href=\"%s\">Créez votre page &laquo;&nbsp;À Propos&nbsp;&raquo;</a>"
+
+#~ msgid ""
+#~ "<a href=\"%s\">Install a theme</a> to get started customizing your site."
+#~ msgstr ""
+#~ "<a href=\"%s\">Installez un thème</a> pour commencer à personnaliser "
+#~ "votre site."
+
+#~ msgid "<a href=\"%s\">Choose light or dark</a>"
+#~ msgstr "<a href=\"%s\">Choisissez un jeu de couleurs (clair ou foncé)</a>"
+
+#~ msgid "<a href=\"%s\">Set a background color</a>"
+#~ msgstr "<a href=\"%s\">Choisissez une couleur de fond</a>"
+
+#~ msgid "<a href=\"%s\">Select a new header image</a>"
+#~ msgstr "<a href=\"%s\">Sélectionnez une image d&rsquo;en-tête</a>"
+
+#~ msgid "<a href=\"%s\">Add some widgets</a>"
+#~ msgstr "<a href=\"%s\">Ajoutez quelques widgets</a>"
+
+#~ msgid ""
+#~ "Use the current theme &mdash; %1$s &mdash; or <a href=\"%2$s\">choose a "
+#~ "new one</a>. If you stick with %1$s, here are a few ways to make your "
+#~ "site look unique."
+#~ msgstr ""
+#~ "Utilisez le thème actuel &mdash; %1$s &mdash; ou <a href=\"%2$s"
+#~ "\">choisissez-en un nouveau</a>. Si vous préférez conserver %1$s, voici "
+#~ "quelques techniques pour le rendre plus &laquo;&nbsp;unique&nbsp;&raquo;."
+
+#~ msgid ""
+#~ "Use the current theme &mdash; %1$s &mdash; or <a href=\"%2$s\">choose a "
+#~ "new one</a>."
+#~ msgstr ""
+#~ "Utilisez le thème actuel &mdash; %1$s &mdash; ou <a href=\"%2$s"
+#~ "\">choisissez-en un nouveau</a>."
+
+#~ msgid ""
+#~ "Already know what you&#8217;re doing? <a href=\"%s\">Dismiss this "
+#~ "message</a>."
+#~ msgstr ""
+#~ "Vous savez déjà ce que vous faites ? <a href=\"%s\">Fermez ce message</a>."
+
+#~ msgid "Select Files"
+#~ msgstr "Sélectionner les fichiers"
+
+#~ msgid "<strong>ERROR</strong>: The e-mail address isn't correct."
+#~ msgstr ""
+#~ "<strong>ERREUR</strong>&nbsp;: l&rsquo;adresse e-mail est incorrecte"
+
+#~ msgid ""
+#~ "The <code>%1$s</code> file is deprecated. Please remove it and update "
+#~ "your server rewrite rules to use <code>%2$s</code> instead."
+#~ msgstr ""
+#~ "Le fichier <code>%1$s</code> est obsolète. Veuillez l&rsquo;enlever et "
+#~ "mettre à jour les règles de réécriture de votre serveur, afin d&rsquo;"
+#~ "utiliser <code>%2$s</code> à la place."
+
+#~ msgid "You are not allowed to create pages as this user."
+#~ msgstr ""
+#~ "Vous n&rsquo;avez pas l&rsquo;autorisation de créer des pages sous cet "
+#~ "identifiant."
+
+#~ msgid "You are not allowed to post as this user."
+#~ msgstr ""
+#~ "Vous n&rsquo;avez pas l&rsquo;autorisation de publier sous cet "
+#~ "identifiant."
+
+#~ msgctxt "Default link category slug"
+#~ msgid "Blogroll"
+#~ msgstr "Liens"
+
+#~ msgctxt "default link"
+#~ msgid "Support Forums"
+#~ msgstr "Forums d&rsquo;entraide en français"
+
+#~ msgctxt "Default link to wordpress.org/extend/plugins/"
+#~ msgid "Plugins"
+#~ msgstr "Extensions"
+
+#~ msgctxt "Default link to wordpress.org/extend/themes/"
+#~ msgid "Themes"
+#~ msgstr "Thèmes"
+
+#~ msgid "WordPress Planet"
+#~ msgstr "La planète WordPress"
+
+#~ msgid ""
+#~ "<strong>ERROR</strong>: This username is already registered. Please "
+#~ "choose another one."
+#~ msgstr ""
+#~ "<strong>ERREUR</strong>&nbsp;: cet identifiant existe déjà. Merci d&rsquo;"
+#~ "en choisir un autre."
+
+#~ msgid "<strong>ERROR</strong>: The e-mail address isn&#8217;t correct."
+#~ msgstr "<strong>ERREUR</strong>&nbsp;: adresse de messagerie incorrecte."
+
+#~ msgid "Don&#8217;t show Avatars"
+#~ msgstr "Ne pas afficher les avatars"
+
+#~ msgid ""
+#~ "The Embed option allows you embed a video, image, or other media content "
+#~ "into your content automatically by typing the URL (of the web page where "
+#~ "the file lives) on its own line when you create your content."
+#~ msgstr ""
+#~ "L&rsquo;option &laquo;&nbsp;Affichage automatique&nbsp;&raquo; tentera de "
+#~ "convertir tout lien vers une image, une image ou un autre type de média, "
+#~ "en code qui affichera effectivement le fichier dans l&rsquo;article ou la "
+#~ "page. Saisissez simplement l&rsquo;adresse web du contenu dans sa propre "
+#~ "ligne quand vous écrivez le contenu."
+
+#~ msgid ""
+#~ "If you do not set the maximum embed size, it will be automatically sized "
+#~ "to fit into your content area."
+#~ msgstr ""
+#~ "Si vous n&rsquo;indiquez pas taille maximale d&rsquo;affichage, le "
+#~ "fichier sera automatiquement ajusté à la taille de votre zone de contenu."
+
+#~ msgid "Auto-embeds"
+#~ msgstr "Affichage automatique"
+
+#~ msgid ""
+#~ "When possible, embed the media content from a URL directly onto the page. "
+#~ "For example: links to Flickr and YouTube."
+#~ msgstr ""
+#~ "Si vous en avez la possibilité, pensez à inclure votre contenu multimédia "
+#~ "dans votre page directement à partir de son URL. Par exemple, des liens "
+#~ "vers Flickr, YouTube ou Dailymotion."
+
+#~ msgid "Maximum embed size"
+#~ msgstr "Taille maximale d&rsquo;affichage"
+
+#~ msgid ""
+#~ "If the width value is left blank, embeds will default to the max width of "
+#~ "your theme."
+#~ msgstr ""
+#~ "Si la largeur est laissée vide, les affichages utiliseront par défaut la "
+#~ "largeur maximale de votre thème."
+
+#~ msgid "Privacy Settings"
+#~ msgstr "Options de vie privée"
+
+#~ msgid ""
+#~ "<a href=\"http://codex.wordpress.org/Settings_Privacy_Screen\" target="
+#~ "\"_blank\">Documentation on Privacy Settings</a>"
+#~ msgstr ""
+#~ "<a href=\"http://codex.wordpress.org/Settings_Privacy_Screen\" target="
+#~ "\"_blank\">Documentation sur les réglages de vie privée (en)</a>"
+
+#~ msgid "Size of the post box"
+#~ msgstr "Taille du champ de saisie"
+
+#~ msgid "lines"
+#~ msgstr "lignes"
+
+#~ msgid ""
+#~ "To post to WordPress from a desktop blogging client or remote website "
+#~ "that uses the Atom Publishing Protocol or one of the XML-RPC publishing "
+#~ "interfaces you must enable them below."
+#~ msgstr ""
+#~ "Pour publier avec WordPress depuis un client de bureau ou un site "
+#~ "distant, vous devez activer la méthode ci-dessous, que ce soit le "
+#~ "protocole de publication Atom ou l&rsquo;une des interfaces de "
+#~ "publication XML-RPC."
+
+#~ msgid "Atom Publishing Protocol"
+#~ msgstr "Protocole de publication Atom"
+
+#~ msgid "Enable the Atom Publishing Protocol."
+#~ msgstr "Activer le protocole de publication Atom."
+
+#~ msgid ""
+#~ "Enable the WordPress, Movable Type, MetaWeblog and Blogger XML-RPC "
+#~ "publishing protocols."
+#~ msgstr ""
+#~ "Activer les protocoles XML-RPC (WordPress, Movable Type, MetaWeblog, "
+#~ "Blogger XML-RPC)."
+
+#~ msgid "Try Again"
+#~ msgstr "Recommencez"
+
+#~ msgid ""
+#~ "New theme activated. This theme supports widgets, please visit the <a "
+#~ "href=\"%s\">widgets settings</a> screen to configure them."
+#~ msgstr ""
+#~ "Le nouveau thème a été activé. Ce thème est compatible avec les "
+#~ "widgets&nbsp;; veuillez vous rendre sur l&rsquo;écran de <a href=\"%s"
+#~ "\">réglage des widgets</a> pour les configurer."
+
+#~ msgid "Role:"
+#~ msgstr "Rôle&nbsp;:"
+
+#~ msgid "The requested user does not exist."
+#~ msgstr "L&rsquo;utilisateur demandé n&rsquo;existe pas."
+
+#~ msgid "Please enter a valid email address."
+#~ msgstr "Veuillez saisir une adresse de messagerie valide."
+
+#~ msgid "No Sidebars Defined"
+#~ msgstr "Aucune colonne latérale définie"
+
 #~ msgid ""
 #~ "Thank you for updating to the latest version! Using WordPress %s will "
 #~ "improve your looks, personality, and web publishing experience. Okay, "
@@ -10155,16 +13888,16 @@
 
 #~ msgid "Upload Image"
 #~ msgstr "Mettre en ligne une image"
+
 #~ msgctxt ""
 #~ "Custom Background: Choose an image from your computer - or - Choose from "
 #~ "image library"
-
 #~ msgid "or"
 #~ msgstr "ou"
+
 #~ msgctxt ""
 #~ "Custom Header: Choose an image from your computer - or - Choose from "
 #~ "image library"
-
 #~ msgid "or"
 #~ msgstr "ou"
 
Binary file web/wp-content/languages/admin-network-fr_FR.mo has changed
--- a/web/wp-content/languages/admin-network-fr_FR.po	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-content/languages/admin-network-fr_FR.po	Wed Dec 19 17:46:52 2012 -0800
@@ -5,87 +5,96 @@
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: WordPress 3.4\n"
+"Project-Id-Version: WordPress 3.5\n"
 "Report-Msgid-Bugs-To: http://wppolyglots.wordpress.com\n"
-"POT-Creation-Date: 2012-06-12 16:21:45+00:00\n"
-"PO-Revision-Date: 2012-06-13 20:10+0100\n"
+"POT-Creation-Date: 2012-12-03 04:18:45+00:00\n"
+"PO-Revision-Date: 2012-12-10 20:10+0100\n"
 "Last-Translator: WordPress Francophone <traduction_at_wordpress-fr.net>\n"
 "Language-Team: WordPress Francophone <traduction@wordpress-fr.net>\n"
+"Language: fr_FR\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=n>1\n"
-"X-Poedit-Language: French\n"
-"X-Poedit-Country: France\n"
-"X-Poedit-SourceCharset: utf-8\n"
+"Plural-Forms: nplurals=2; plural=(n>1);\n"
+"X-Poedit-SourceCharset: UTF-8\n"
+"X-Generator: Poedit 1.5.4\n"
 
-#: wp-admin/network/index.php:20
-#: wp-admin/network/settings.php:17
-#: wp-admin/network/site-info.php:43
-#: wp-admin/network/site-new.php:37
-#: wp-admin/network/site-settings.php:43
-#: wp-admin/network/site-themes.php:61
-#: wp-admin/network/site-users.php:49
-#: wp-admin/network/sites.php:17
-#: wp-admin/network/sites.php:62
-#: wp-admin/network/sites.php:79
-#: wp-admin/network/sites.php:121
-#: wp-admin/network/sites.php:131
-#: wp-admin/network/sites.php:141
-#: wp-admin/network/sites.php:152
-#: wp-admin/network/sites.php:163
-#: wp-admin/network/sites.php:173
-#: wp-admin/network/sites.php:183
-#: wp-admin/network/sites.php:193
-#: wp-admin/network/upgrade.php:39
-#: wp-admin/network/user-new.php:36
-#: wp-admin/network/users.php:17
-#: wp-admin/network/users.php:95
-#: wp-admin/network/users.php:117
-#: wp-admin/network/users.php:130
-#: wp-admin/network/users.php:181
+#: wp-admin/network/index.php:20 wp-admin/network/settings.php:17
+#: wp-admin/network/site-info.php:43 wp-admin/network/site-new.php:37
+#: wp-admin/network/site-settings.php:43 wp-admin/network/site-themes.php:56
+#: wp-admin/network/site-users.php:49 wp-admin/network/sites.php:17
+#: wp-admin/network/sites.php:106 wp-admin/network/upgrade.php:39
+#: wp-admin/network/user-new.php:36 wp-admin/network/users.php:17
+#: wp-admin/network/users.php:95 wp-admin/network/users.php:117
+#: wp-admin/network/users.php:130 wp-admin/network/users.php:181
 msgid "You do not have permission to access this page."
 msgstr "Vous n&#8217;avez pas les droits suffisants pour accéder à cette page."
 
 #: wp-admin/network/index.php:29
-msgid "Until WordPress 3.0, running multiple sites required using WordPress MU instead of regular WordPress. In version 3.0, these applications have merged. If you are a former MU user, you should be aware of the following changes:"
-msgstr "Avant WordPress 3.0, la gestion de plusieurs sites requérait l&rsquo;utilisation de WordPress MU plutôt que le WordPress habituel. Dans la version 3.0, ces deux éditions ont fusionné. Si vous étiez un utilisateur de MU, il vous faut garder en tête les modifications suivantes&nbsp;:"
+msgid ""
+"Until WordPress 3.0, running multiple sites required using WordPress MU "
+"instead of regular WordPress. In version 3.0, these applications have "
+"merged. If you are a former MU user, you should be aware of the following "
+"changes:"
+msgstr ""
+"Avant WordPress 3.0, la gestion de plusieurs sites requérait l&rsquo;"
+"utilisation de WordPress MU plutôt que le WordPress habituel. Dans la "
+"version 3.0, ces deux éditions ont fusionné. Si vous étiez un utilisateur de "
+"MU, il vous faut garder en tête les modifications suivantes&nbsp;:"
 
 #: wp-admin/network/index.php:30
-msgid "Site Admin is now Super Admin (we highly encourage you to get yourself a cape!)."
-msgstr "L&rsquo;administrateur du site est désormais appelé super-admin (nous vous encourageons vivement à vous trouver une cape&nbsp;!)&nbsp;;"
+msgid ""
+"Site Admin is now Super Admin (we highly encourage you to get yourself a "
+"cape!)."
+msgstr ""
+"L&rsquo;administrateur du site est désormais appelé super-admin (nous vous "
+"encourageons vivement à vous trouver une cape&nbsp;!)&nbsp;;"
 
 #: wp-admin/network/index.php:31
 msgid "Blogs are now called Sites; Site is now called Network."
-msgstr "Les blogs sont maintenant appelés des sites. Le site global est maintenant nommé &laquo;&nbsp;le réseau&nbsp;&raquo;."
+msgstr ""
+"Les blogs sont maintenant appelés des sites. Le site global est maintenant "
+"nommé &laquo;&nbsp;le réseau&nbsp;&raquo;."
 
 #: wp-admin/network/index.php:32
-msgid "The Right Now box provides the network administrator with links to the screens to either create a new site or user, or to search existing users and sites. Screens for Sites and Users are also accessible through the left-hand navigation in the Network Admin section."
-msgstr "La boîte &laquo;&nbsp;Aujourdh&rsquo;hui&nbsp;&raquo; permet à l&rsquo;administrateur du réseau de se rendre à l&rsquo;écran de création de sites et celui de création d&rsquo;utilisateurs, ou de lancer une recherche sur l&rsquo;ensemble des sites et utilisateurs. Ces écrans sont également accessibles via la navigation de l&rsquo;administration du réseau de sites."
+msgid ""
+"The Right Now box provides the network administrator with links to the "
+"screens to either create a new site or user, or to search existing users and "
+"sites. Screens for Sites and Users are also accessible through the left-hand "
+"navigation in the Network Admin section."
+msgstr ""
+"La boîte &laquo;&nbsp;Aujourdh&rsquo;hui&nbsp;&raquo; permet à l&rsquo;"
+"administrateur du réseau de se rendre à l&rsquo;écran de création de sites "
+"et celui de création d&rsquo;utilisateurs, ou de lancer une recherche sur "
+"l&rsquo;ensemble des sites et utilisateurs. Ces écrans sont également "
+"accessibles via la navigation de l&rsquo;administration du réseau de sites."
 
 #: wp-admin/network/index.php:37
-msgid "<a href=\"http://codex.wordpress.org/Network_Admin\" target=\"_blank\">Documentation on the Network Admin</a>"
-msgstr "<a href=http://codex.wordpress.org/Network_Adminl\" target=\"_blank\">Documentation sur l&rsquo;administration du réseau (en)</a>"
+msgid ""
+"<a href=\"http://codex.wordpress.org/Network_Admin\" target=\"_blank"
+"\">Documentation on the Network Admin</a>"
+msgstr ""
+"<a href=http://codex.wordpress.org/Network_Adminl\" target=\"_blank"
+"\">Documentation sur l&rsquo;administration du réseau (en)</a>"
 
-#: wp-admin/network/index.php:38
-#: wp-admin/network/site-info.php:33
-#: wp-admin/network/site-new.php:30
-#: wp-admin/network/site-settings.php:33
-#: wp-admin/network/site-themes.php:38
-#: wp-admin/network/site-users.php:36
-#: wp-admin/network/sites.php:46
-#: wp-admin/network/user-new.php:30
+#: wp-admin/network/index.php:38 wp-admin/network/site-info.php:33
+#: wp-admin/network/site-new.php:30 wp-admin/network/site-settings.php:33
+#: wp-admin/network/site-themes.php:33 wp-admin/network/site-users.php:36
+#: wp-admin/network/sites.php:46 wp-admin/network/user-new.php:30
 #: wp-admin/network/users.php:245
-msgid "<a href=\"http://wordpress.org/support/forum/multisite/\" target=\"_blank\">Support Forums</a>"
-msgstr "<a href=\"http://www.wordpress-fr.net/support/\" target=\"_blank\">Forums d&rsquo;entraide</a>"
+msgid ""
+"<a href=\"http://wordpress.org/support/forum/multisite/\" target=\"_blank"
+"\">Support Forums</a>"
+msgstr ""
+"<a href=\"http://www.wordpress-fr.net/support/\" target=\"_blank\">Forums "
+"d&rsquo;entraide</a>"
 
 #: wp-admin/network/menu.php:17
 msgid "All Sites"
 msgstr "Tous les sites"
 
 # contexte
-#: wp-admin/network/menu.php:18
-#: wp-admin/network/sites.php:293
+#: wp-admin/network/menu.php:18 wp-admin/network/sites.php:236
 msgctxt "site"
 msgid "Add New"
 msgstr "Ajouter"
@@ -99,19 +108,12 @@
 msgstr "Thèmes installés"
 
 # contexte
-#: wp-admin/network/menu.php:32
-#: wp-admin/network/themes.php:223
+#: wp-admin/network/menu.php:32 wp-admin/network/themes.php:229
 msgctxt "theme"
 msgid "Add New"
 msgstr "Ajouter"
 
-#: wp-admin/network/menu.php:41
-msgctxt "plugin editor"
-msgid "Add New"
-msgstr "Ajouter"
-
-#: wp-admin/network/menu.php:46
-#: wp-admin/network/settings.php:19
+#: wp-admin/network/menu.php:46 wp-admin/network/settings.php:19
 msgid "Network Settings"
 msgstr "Réglages du réseau"
 
@@ -123,288 +125,418 @@
 msgid "Available Updates"
 msgstr "Mises à jour disponibles"
 
-#: wp-admin/network/menu.php:59
-#: wp-admin/network/upgrade.php:18
-#: wp-admin/network/upgrade.php:43
-#: wp-admin/network/upgrade.php:85
+#: wp-admin/network/menu.php:59 wp-admin/network/upgrade.php:18
+#: wp-admin/network/upgrade.php:43 wp-admin/network/upgrade.php:88
 msgid "Update Network"
 msgstr "Mettre à jour le réseau"
 
 #: wp-admin/network/settings.php:26
-msgid "This screen sets and changes options for the network as a whole. The first site is the main site in the network and network options are pulled from that original site&#8217;s options."
-msgstr "Cet écran vous donne accès aux options régissant l&rsquo;ensemble du réseau. Le premier site est le site principal du réseau, et les options du réseau sont tirées des options de ce premier site."
+msgid ""
+"This screen sets and changes options for the network as a whole. The first "
+"site is the main site in the network and network options are pulled from "
+"that original site&#8217;s options."
+msgstr ""
+"Cet écran vous donne accès aux options régissant l&rsquo;ensemble du réseau. "
+"Le premier site est le site principal du réseau, et les options du réseau "
+"sont tirées des options de ce premier site."
 
 #: wp-admin/network/settings.php:27
-msgid "Operational settings has fields for the network&#8217;s name and admin email."
-msgstr "Les réglages de fonctionnement permettent de modifier le nom du réseau, et l&rsquo;adresse de messagerie de l&rsquo;administrateur."
+msgid ""
+"Operational settings has fields for the network&#8217;s name and admin email."
+msgstr ""
+"Les réglages de fonctionnement permettent de modifier le nom du réseau, et "
+"l&rsquo;adresse de messagerie de l&rsquo;administrateur."
 
 #: wp-admin/network/settings.php:28
-msgid "Dashboard Site is an option to give a site to users who do not have a site on the system. Their default role is Subscriber, but that default can be changed. The Admin Notice Feed can provide a notice on all dashboards of the latest post via RSS or Atom, or provide no such notice if left blank."
-msgstr "L&rsquo;option &laquo;&nbsp;Site d&rsquo;accueil&nbsp;&raquo; permet d&rsquo;afficher un site aux utilisateurs qui n&rsquo;en ont pas encore un. Leur rôle par défaut à &laquo;&nbsp;Abonné&nbsp;&raquo;, mais vous pouvez le modifier. Le flux d’annonce de l’administrateur permet d&rsquo;afficher une information sur tous les tableaux de bord, tirée du dernier article d&rsquo;un flux RSS ou Atom. Aucune information ne sera affichée si le champ est laissé vide."
+msgid ""
+"Dashboard Site is an option to give a site to users who do not have a site "
+"on the system. Their default role is Subscriber, but that default can be "
+"changed. The Admin Notice Feed can provide a notice on all dashboards of the "
+"latest post via RSS or Atom, or provide no such notice if left blank."
+msgstr ""
+"L&rsquo;option &laquo;&nbsp;Site d&rsquo;accueil&nbsp;&raquo; permet d&rsquo;"
+"afficher un site aux utilisateurs qui n&rsquo;en ont pas encore un. Leur "
+"rôle par défaut à &laquo;&nbsp;Abonné&nbsp;&raquo;, mais vous pouvez le "
+"modifier. Le flux d’annonce de l’administrateur permet d&rsquo;afficher une "
+"information sur tous les tableaux de bord, tirée du dernier article d&rsquo;"
+"un flux RSS ou Atom. Aucune information ne sera affichée si le champ est "
+"laissé vide."
 
 #: wp-admin/network/settings.php:29
-msgid "Registration settings can disable/enable public signups. If you let others sign up for a site, install spam plugins. Spaces, not commas, should separate names banned as sites for this network."
-msgstr "Les réglages d’inscription permettent d&rsquo;ouvrir ou fermer les inscriptions au public. Si vous ouvrez les inscriptions, veillez à installer des extensions antispam. Les domaines bannis devraient être indiqués séparés d&rsquo;un espace, non d&rsquo;une virgule."
+msgid ""
+"Registration settings can disable/enable public signups. If you let others "
+"sign up for a site, install spam plugins. Spaces, not commas, should "
+"separate names banned as sites for this network."
+msgstr ""
+"Les réglages d’inscription permettent d&rsquo;ouvrir ou fermer les "
+"inscriptions au public. Si vous ouvrez les inscriptions, veillez à installer "
+"des extensions antispam. Les domaines bannis devraient être indiqués séparés "
+"d&rsquo;un espace, non d&rsquo;une virgule."
 
 #: wp-admin/network/settings.php:30
-msgid "New site settings are defaults applied when a new site is created in the network. These include welcome email for when a new site or user account is registered, and what&#8127;s put in the first post, page, comment, comment author, and comment URL."
-msgstr "Les réglages des nouveaux sites sont les réglages par défaut appliqués à tout nouveau site créé sur le réseau. Cela comprend le message d&rsquo;accueil quand un nouvel utilisateur ou un nouveau site est enregistré, ainsi que le contenu du premier article, de la première page et du premier commentaire (dont le nom et l&rsquo;adresse web du commentateur)."
+msgid ""
+"New site settings are defaults applied when a new site is created in the "
+"network. These include welcome email for when a new site or user account is "
+"registered, and what&#8127;s put in the first post, page, comment, comment "
+"author, and comment URL."
+msgstr ""
+"Les réglages des nouveaux sites sont les réglages par défaut appliqués à "
+"tout nouveau site créé sur le réseau. Cela comprend le message d&rsquo;"
+"accueil quand un nouvel utilisateur ou un nouveau site est enregistré, ainsi "
+"que le contenu du premier article, de la première page et du premier "
+"commentaire (dont le nom et l&rsquo;adresse web du commentateur)."
 
 #: wp-admin/network/settings.php:31
-msgid "Upload settings control the size of the uploaded files and the amount of available upload space for each site. You can change the default value for specific sites when you edit a particular site. Allowed file types are also listed (space separated only)."
-msgstr "Les réglages d’envoi des fichiers permettent de limiter la taille des fichiers mis en ligne et l&rsquo;espace disponible pour chaque site. Vous pouvez préciser la valeur pour chaque site individuellement. Vous pouvez également préciser les types de fichiers acceptés (séparés par des espaces)."
+msgid ""
+"Upload settings control the size of the uploaded files and the amount of "
+"available upload space for each site. You can change the default value for "
+"specific sites when you edit a particular site. Allowed file types are also "
+"listed (space separated only)."
+msgstr ""
+"Les réglages d’envoi des fichiers permettent de limiter la taille des "
+"fichiers mis en ligne et l&rsquo;espace disponible pour chaque site. Vous "
+"pouvez préciser la valeur pour chaque site individuellement. Vous pouvez "
+"également préciser les types de fichiers acceptés (séparés par des espaces)."
 
 #: wp-admin/network/settings.php:32
-msgid "Menu setting enables/disables the plugin menus from appearing for non super admins, so that only super admins, not site admins, have access to activate plugins."
-msgstr "Le réglage du menu (dés)active la section &laquo;&nbsp;Extensions&nbsp;&raquo; du menu pour les utilisateurs normaux, de telle sorte que seuls les super-admins peuvent y accéder pour activer une extension."
+msgid ""
+"Menu setting enables/disables the plugin menus from appearing for non super "
+"admins, so that only super admins, not site admins, have access to activate "
+"plugins."
+msgstr ""
+"Le réglage du menu (dés)active la section &laquo;&nbsp;Extensions&nbsp;"
+"&raquo; du menu pour les utilisateurs normaux, de telle sorte que seuls les "
+"super-admins peuvent y accéder pour activer une extension."
 
 #: wp-admin/network/settings.php:33
-msgid "Super admins can no longer be added on the Options screen. You must now go to the list of existing users on Network Admin > Users and click on Username or the Edit action link below that name. This goes to an Edit User page where you can check a box to grant super admin privileges."
-msgstr "Les super-admins ne peuvent plus être ajoutés via l&rsquo;écran des options. Vous devez aller à la liste des utilisateurs (option &laquo;&nbsp;Utilisateurs&nbsp;&raquo; du menu &laquo;&nbsp;Admin du réseau&nbsp;&raquo;) et cliquer sur un identifiant ou sur le lien &laquo;&nbsp;Modifier&nbsp;&raquo; qui s&rsquo;affiche en dessous. Vous arriverez alors à un écran vous permettant de modifier ce compte utilisateur, où une case à cocher donne les droits de super-admin."
+msgid ""
+"Super admins can no longer be added on the Options screen. You must now go "
+"to the list of existing users on Network Admin > Users and click on Username "
+"or the Edit action link below that name. This goes to an Edit User page "
+"where you can check a box to grant super admin privileges."
+msgstr ""
+"Les super-admins ne peuvent plus être ajoutés via l&rsquo;écran des options. "
+"Vous devez aller à la liste des utilisateurs (option &laquo;&nbsp;"
+"Utilisateurs&nbsp;&raquo; du menu &laquo;&nbsp;Admin du réseau&nbsp;&raquo;) "
+"et cliquer sur un identifiant ou sur le lien &laquo;&nbsp;Modifier&nbsp;"
+"&raquo; qui s&rsquo;affiche en dessous. Vous arriverez alors à un écran vous "
+"permettant de modifier ce compte utilisateur, où une case à cocher donne les "
+"droits de super-admin."
 
 #: wp-admin/network/settings.php:38
-msgid "<a href=\"http://codex.wordpress.org/Network_Admin_Settings_Screen\" target=\"_blank\">Documentation on Network Settings</a>"
-msgstr "<a href=\"http://codex.wordpress.org/Network_Admin_Settings_Screenl\" target=\"_blank\">Documentation sur les réglages du réseau (en)</a>"
+msgid ""
+"<a href=\"http://codex.wordpress.org/Network_Admin_Settings_Screen\" target="
+"\"_blank\">Documentation on Network Settings</a>"
+msgstr ""
+"<a href=\"http://codex.wordpress.org/Network_Admin_Settings_Screenl\" target="
+"\"_blank\">Documentation sur les réglages du réseau (en)</a>"
 
-#: wp-admin/network/settings.php:120
+#: wp-admin/network/settings.php:87
 msgid "Operational Settings"
 msgstr "Réglages de fonctionnement"
 
-#: wp-admin/network/settings.php:123
+#: wp-admin/network/settings.php:90
 msgid "Network Name"
 msgstr "Nom du réseau"
 
-#: wp-admin/network/settings.php:127
+#: wp-admin/network/settings.php:94
 msgid "What you would like to call this network."
-msgstr "Quel nom voulez-vous donner à ce réseau ?"
+msgstr "Quel nom voulez-vous donner à ce réseau&nbsp;?"
 
-#: wp-admin/network/settings.php:132
+#: wp-admin/network/settings.php:99
 msgid "Network Admin Email"
 msgstr "Adresse de contact de l&rsquo;administrateur du réseau"
 
-#: wp-admin/network/settings.php:136
-msgid "Registration and support emails will come from this address. An address such as <code>support@%s</code> is recommended."
-msgstr "Les messages de confirmations d&rsquo;enregistrement et ceux du support proviendront de cette adresse. Nous vous suggérons d&rsquo;utiliser une adresse comme <code>support@%s</code>."
+#: wp-admin/network/settings.php:103
+msgid ""
+"Registration and support emails will come from this address. An address such "
+"as <code>support@%s</code> is recommended."
+msgstr ""
+"Les messages de confirmations d&rsquo;enregistrement et ceux du support "
+"proviendront de cette adresse. Nous vous suggérons d&rsquo;utiliser une "
+"adresse comme <code>support@%s</code>."
 
-#: wp-admin/network/settings.php:140
+#: wp-admin/network/settings.php:107
 msgid "Registration Settings"
 msgstr "Réglages d&rsquo;inscription"
 
-#: wp-admin/network/settings.php:143
+#: wp-admin/network/settings.php:110
 msgid "Allow new registrations"
 msgstr "Autoriser les nouvelles inscriptions"
 
-#: wp-admin/network/settings.php:150
+#: wp-admin/network/settings.php:117
 msgid "Registration is disabled."
 msgstr "Les inscriptions ne sont pas autorisées pour le moment."
 
-#: wp-admin/network/settings.php:151
+#: wp-admin/network/settings.php:118
 msgid "User accounts may be registered."
 msgstr "Seuls les comptes utilisateurs peuvent être créés."
 
-#: wp-admin/network/settings.php:152
+#: wp-admin/network/settings.php:119
 msgid "Logged in users may register new sites."
 msgstr "Seuls les utilisateurs connectés peuvent créer de nouveaux sites."
 
-#: wp-admin/network/settings.php:153
+#: wp-admin/network/settings.php:120
 msgid "Both sites and user accounts can be registered."
 msgstr "La création de sites et d&rsquo;utilisateurs est autorisée."
 
-#: wp-admin/network/settings.php:155
-msgid "If registration is disabled, please set <code>NOBLOGREDIRECT</code> in <code>wp-config.php</code> to a URL you will redirect visitors to if they visit a non-existent site."
-msgstr "Si l&rsquo;enregistrement est désactivé, veuillez configurer l&rsquo;entrée <code>NOBLOGREDIRECT</code> dans le fichier <code>wp-config.php</code> pour qu&rsquo;il pointe sur l&rsquo;adresse internet vers laquelle vous souhaitez que vos visiteurs soient redirigés s&rsquo;ils demandent un site qui n&rsquo;existe pas. "
+#: wp-admin/network/settings.php:122
+msgid ""
+"If registration is disabled, please set <code>NOBLOGREDIRECT</code> in "
+"<code>wp-config.php</code> to a URL you will redirect visitors to if they "
+"visit a non-existent site."
+msgstr ""
+"Si l&rsquo;enregistrement est désactivé, veuillez configurer l&rsquo;entrée "
+"<code>NOBLOGREDIRECT</code> dans le fichier <code>wp-config.php</code> pour "
+"qu&rsquo;il pointe sur l&rsquo;adresse internet vers laquelle vous souhaitez "
+"que vos visiteurs soient redirigés s&rsquo;ils demandent un site qui n&rsquo;"
+"existe pas. "
 
-#: wp-admin/network/settings.php:161
+#: wp-admin/network/settings.php:128
 msgid "Registration notification"
 msgstr "Notification d&rsquo;inscription"
 
-#: wp-admin/network/settings.php:167
-msgid "Send the network admin an email notification every time someone registers a site or user account."
-msgstr "Envoyer un message à l&rsquo;administrateur du réseau à chaque inscription de site ou d&rsquo;utilisateurs."
+#: wp-admin/network/settings.php:134
+msgid ""
+"Send the network admin an email notification every time someone registers a "
+"site or user account."
+msgstr ""
+"Envoyer un message à l&rsquo;administrateur du réseau à chaque inscription "
+"de site ou d&rsquo;utilisateurs."
 
-#: wp-admin/network/settings.php:172
+#: wp-admin/network/settings.php:139
 msgid "Add New Users"
 msgstr "Ajouter des nouveaux utilisateurs"
 
-#: wp-admin/network/settings.php:174
-msgid "Allow site administrators to add new users to their site via the \"Users &rarr; Add New\" page."
-msgstr "Autoriser les administrateurs de sites à ajouter de nouveaux utilisateurs à leurs sites via la page &laquo;&nbsp;Utilisateurs &rarr; Ajouter&nbsp;&raquo;."
+#: wp-admin/network/settings.php:141
+msgid ""
+"Allow site administrators to add new users to their site via the \"Users "
+"&rarr; Add New\" page."
+msgstr ""
+"Autoriser les administrateurs de sites à ajouter de nouveaux utilisateurs à "
+"leurs sites via la page &laquo;&nbsp;Utilisateurs &rarr; Ajouter&nbsp;"
+"&raquo;."
 
-#: wp-admin/network/settings.php:179
+#: wp-admin/network/settings.php:146
 msgid "Banned Names"
 msgstr "Noms bannis"
 
-#: wp-admin/network/settings.php:183
-msgid "Users are not allowed to register these sites. Separate names by spaces."
-msgstr "Les utilisateurs ne sont pas autorisés à créer un site avec l&rsquo;un de ces noms. Séparez les noms par un espace."
+#: wp-admin/network/settings.php:150
+msgid ""
+"Users are not allowed to register these sites. Separate names by spaces."
+msgstr ""
+"Les utilisateurs ne sont pas autorisés à créer un site avec l&rsquo;un de "
+"ces noms. Séparez les noms par un espace."
 
-#: wp-admin/network/settings.php:188
+#: wp-admin/network/settings.php:155
 msgid "Limited Email Registrations"
 msgstr "Enregistrement réservé aux noms de domaines"
 
-#: wp-admin/network/settings.php:195
-msgid "If you want to limit site registrations to certain domains. One domain per line."
-msgstr "Si vous souhaitez que les seules personnes habilitées à créer un site soient celles disposant d&rsquo;une adresse de messagerie liée à certains noms de domaines. Un domaine par ligne."
+#: wp-admin/network/settings.php:162
+msgid ""
+"If you want to limit site registrations to certain domains. One domain per "
+"line."
+msgstr ""
+"Si vous souhaitez que les seules personnes habilitées à créer un site soient "
+"celles disposant d&rsquo;une adresse de messagerie liée à certains noms de "
+"domaines. Un domaine par ligne."
 
-#: wp-admin/network/settings.php:200
+#: wp-admin/network/settings.php:167
 msgid "Banned Email Domains"
 msgstr "Noms de domaines bannis"
 
-#: wp-admin/network/settings.php:205
-msgid "If you want to ban domains from site registrations. One domain per line."
-msgstr "Si vous souhaitez interdire la création de sites aux personnes dont l&rsquo;adresse de messagerie est liée à certains noms de domaines. Un domaine par ligne."
+#: wp-admin/network/settings.php:172
+msgid ""
+"If you want to ban domains from site registrations. One domain per line."
+msgstr ""
+"Si vous souhaitez interdire la création de sites aux personnes dont l&rsquo;"
+"adresse de messagerie est liée à certains noms de domaines. Un domaine par "
+"ligne."
 
-#: wp-admin/network/settings.php:210
+#: wp-admin/network/settings.php:177
 msgid "New Site Settings"
 msgstr "Réglages des nouveaux sites"
 
-#: wp-admin/network/settings.php:214
+#: wp-admin/network/settings.php:181
 msgid "Welcome Email"
 msgstr "Message de bienvenue"
 
-#: wp-admin/network/settings.php:219
+#: wp-admin/network/settings.php:186
 msgid "The welcome email sent to new site owners."
-msgstr "Ce message de bienvenue sera envoyé aux propriétaires de nouveaux sites."
+msgstr ""
+"Ce message de bienvenue sera envoyé aux propriétaires de nouveaux sites."
 
-#: wp-admin/network/settings.php:223
+#: wp-admin/network/settings.php:190
 msgid "Welcome User Email"
 msgstr "Message de bienvenue des utilisateurs"
 
-#: wp-admin/network/settings.php:228
+#: wp-admin/network/settings.php:195
 msgid "The welcome email sent to new users."
 msgstr "Ce message de bienvenue sera envoyé aux nouveaux utilisateurs."
 
-#: wp-admin/network/settings.php:237
+#: wp-admin/network/settings.php:204
 msgid "The first post on a new site."
 msgstr "Le premier article sur tout nouveau site."
 
-#: wp-admin/network/settings.php:241
+#: wp-admin/network/settings.php:208
 msgid "First Page"
 msgstr "Première page"
 
-#: wp-admin/network/settings.php:246
+#: wp-admin/network/settings.php:213
 msgid "The first page on a new site."
 msgstr "La première page sur tout nouveau site."
 
-#: wp-admin/network/settings.php:250
+#: wp-admin/network/settings.php:217
 msgid "First Comment"
 msgstr "Premier commentaire"
 
-#: wp-admin/network/settings.php:255
+#: wp-admin/network/settings.php:222
 msgid "The first comment on a new site."
 msgstr "Le premier commentaire sur tout nouveau site."
 
-#: wp-admin/network/settings.php:259
+#: wp-admin/network/settings.php:226
 msgid "First Comment Author"
 msgstr "Auteur du premier commentaire"
 
-#: wp-admin/network/settings.php:263
+#: wp-admin/network/settings.php:230
 msgid "The author of the first comment on a new site."
 msgstr "L&rsquo;auteur du premier commentaire sur tout nouveau site."
 
-#: wp-admin/network/settings.php:267
+#: wp-admin/network/settings.php:234
 msgid "First Comment URL"
 msgstr "Adresse du premier commentaire"
 
-#: wp-admin/network/settings.php:271
+#: wp-admin/network/settings.php:238
 msgid "The URL for the first comment on a new site."
 msgstr "L&rsquo;adresse web du premier commentaire sur tout nouveau site."
 
-#: wp-admin/network/settings.php:275
+#: wp-admin/network/settings.php:242
 msgid "Upload Settings"
 msgstr "Réglages d&rsquo;envoi des fichiers"
 
-#: wp-admin/network/settings.php:278
+#: wp-admin/network/settings.php:245
 msgid "Site upload space"
 msgstr "Espace de stockage du site"
 
-#: wp-admin/network/settings.php:280
+#: wp-admin/network/settings.php:247
 msgid "Limit total size of files uploaded to %s MB"
 msgstr "La taille totale des fichiers envoyés est limitée à %s Mo"
 
-#: wp-admin/network/settings.php:285
+#: wp-admin/network/settings.php:252
 msgid "Upload file types"
 msgstr "Types de fichiers "
 
-#: wp-admin/network/settings.php:290
+#: wp-admin/network/settings.php:257
 msgid "Max upload file size"
 msgstr "Taille maximale des fichiers"
 
-#: wp-admin/network/settings.php:291
+#: wp-admin/network/settings.php:258
 msgctxt "File size in kilobytes"
 msgid "%s KB"
 msgstr "%s Ko"
 
-#: wp-admin/network/settings.php:300
+#: wp-admin/network/settings.php:267
 msgid "Language Settings"
 msgstr "Réglages de langage"
 
-#: wp-admin/network/settings.php:303
+#: wp-admin/network/settings.php:270
 msgid "Default Language"
 msgstr "Langue par défaut"
 
-#: wp-admin/network/settings.php:315
+#: wp-admin/network/settings.php:282
 msgid "Menu Settings"
 msgstr "Réglages du menu"
 
-#: wp-admin/network/settings.php:318
+#: wp-admin/network/settings.php:285
 msgid "Enable administration menus"
 msgstr "Activer les menus d&rsquo;administration"
 
-#: wp-admin/network/site-info.php:17
-#: wp-admin/network/site-settings.php:17
+#: wp-admin/network/site-info.php:17 wp-admin/network/site-settings.php:17
 #: wp-admin/network/site-users.php:17
 msgid "You do not have sufficient permissions to edit this site."
 msgstr "Vous n&rsquo;avez pas les droits suffisants pour modifier ce site."
 
-#: wp-admin/network/site-info.php:23
-#: wp-admin/network/site-settings.php:23
-#: wp-admin/network/site-themes.php:28
-#: wp-admin/network/site-users.php:26
-msgid "The menu is for editing information specific to individual sites, particularly if the admin area of a site is unavailable."
-msgstr "Ce menu sert à modifier les informations relatives à un site individuel, en particulier si sa zone d&rsquo;administration est indisponible."
+#: wp-admin/network/site-info.php:23 wp-admin/network/site-settings.php:23
+#: wp-admin/network/site-themes.php:23 wp-admin/network/site-users.php:26
+msgid ""
+"The menu is for editing information specific to individual sites, "
+"particularly if the admin area of a site is unavailable."
+msgstr ""
+"Ce menu sert à modifier les informations relatives à un site individuel, en "
+"particulier si sa zone d&rsquo;administration est indisponible."
 
-#: wp-admin/network/site-info.php:24
-#: wp-admin/network/site-settings.php:24
-#: wp-admin/network/site-themes.php:29
-#: wp-admin/network/site-users.php:27
-msgid "<strong>Info</strong> - The domain and path are rarely edited as this can cause the site to not work properly. The Registered date and Last Updated date are displayed. Network admins can mark a site as archived, spam, deleted and mature, to remove from public listings or disable."
-msgstr "<strong>Info</strong> - Il n&rsquo;est pas recommandé de modifier le domaine ou le chemin d&rsquo;accès, car cela pourrait rendre le site non fonctionnel. Les dates de création et de dernière mise à jour sont affichées. Les administrateurs réseau peuvent indiquer qu&rsquo;un site est archivé, indésirable, pour adulte et effacé, afin de le retirer de la liste publique ou le désactiver."
+#: wp-admin/network/site-info.php:24 wp-admin/network/site-settings.php:24
+#: wp-admin/network/site-themes.php:24 wp-admin/network/site-users.php:27
+msgid ""
+"<strong>Info</strong> - The domain and path are rarely edited as this can "
+"cause the site to not work properly. The Registered date and Last Updated "
+"date are displayed. Network admins can mark a site as archived, spam, "
+"deleted and mature, to remove from public listings or disable."
+msgstr ""
+"<strong>Info</strong> - Il n&rsquo;est pas recommandé de modifier le domaine "
+"ou le chemin d&rsquo;accès, car cela pourrait rendre le site non "
+"fonctionnel. Les dates de création et de dernière mise à jour sont "
+"affichées. Les administrateurs réseau peuvent indiquer qu&rsquo;un site est "
+"archivé, indésirable, pour adulte et effacé, afin de le retirer de la liste "
+"publique ou le désactiver."
 
-#: wp-admin/network/site-info.php:25
-#: wp-admin/network/site-settings.php:25
-#: wp-admin/network/site-themes.php:30
-#: wp-admin/network/site-users.php:28
-msgid "<strong>Users</strong> - This displays the users associated with this site. You can also change their role, reset their password, or remove them from the site. Removing the user from the site does not remove the user from the network."
-msgstr "<strong>Utilisateurs</strong> - Affiche les utilisateurs associés à ce site. Vous pouvez également modifier leur rôle, réinitialiser leur mot de passe ou les enlever du site. Enlever un utilisateur d&rsquo;un site ne l&rsquo;enlève pas du réseau."
+#: wp-admin/network/site-info.php:25 wp-admin/network/site-settings.php:25
+#: wp-admin/network/site-themes.php:25 wp-admin/network/site-users.php:28
+msgid ""
+"<strong>Users</strong> - This displays the users associated with this site. "
+"You can also change their role, reset their password, or remove them from "
+"the site. Removing the user from the site does not remove the user from the "
+"network."
+msgstr ""
+"<strong>Utilisateurs</strong> - Affiche les utilisateurs associés à ce site. "
+"Vous pouvez également modifier leur rôle, réinitialiser leur mot de passe ou "
+"les enlever du site. Enlever un utilisateur d&rsquo;un site ne l&rsquo;"
+"enlève pas du réseau."
 
-#: wp-admin/network/site-info.php:26
-#: wp-admin/network/site-settings.php:26
-#: wp-admin/network/site-themes.php:31
-#: wp-admin/network/site-users.php:29
-msgid "<strong>Themes</strong> - This area shows themes that are not already enabled across the network. Enabling a theme in this menu makes it accessible to this site. It does not activate the theme, but allows it to show in the site&#8217;s Appearance menu. To enable a theme for the entire network, see the <a href=\"%s\">Network Themes</a> screen."
-msgstr "<strong>Thèmes</strong> - Cette zone affiche les thèmes qui n&rsquo;ont pas déjà été activés pour l&rsquo;ensemble du réseau. En activant un thème avec ce menu, vous le rendez disponible pour ce site. Cela ne l&rsquo;active pas, mais l&rsquo;affichera dans le menu Apparence du site. Pour activer un thème pour l&rsquo;ensemble du réseau, rendez-vous sur l&rsquo;écran <a href=\"%s\">Thèmes du réseau</a>."
-
-#: wp-admin/network/site-info.php:27
-#: wp-admin/network/site-settings.php:27
-#: wp-admin/network/site-themes.php:32
-#: wp-admin/network/site-users.php:30
-msgid "<strong>Settings</strong> - This page shows a list of all settings associated with this site. Some are created by WordPress and others are created by plugins you activate. Note that some fields are grayed out and say Serialized Data. You cannot modify these values due to the way the setting is stored in the database."
-msgstr "<strong>Réglages</strong> - Cette page affiche la liste de tous les réglages associés à ce site. Certains sont créés par WordPress, d&rsquo;autres par des extensions que vous activez. Notez que certains champs sont grisés et indiquent données sérialisées (Serialized Data). Vous ne pouvez pas modifier ces valeurs, du fait de la manière dont ils sont stockés dans la base de données."
+#: wp-admin/network/site-info.php:26 wp-admin/network/site-settings.php:26
+#: wp-admin/network/site-themes.php:26 wp-admin/network/site-users.php:29
+msgid ""
+"<strong>Themes</strong> - This area shows themes that are not already "
+"enabled across the network. Enabling a theme in this menu makes it "
+"accessible to this site. It does not activate the theme, but allows it to "
+"show in the site&#8217;s Appearance menu. To enable a theme for the entire "
+"network, see the <a href=\"%s\">Network Themes</a> screen."
+msgstr ""
+"<strong>Thèmes</strong> - Cette zone affiche les thèmes qui n&rsquo;ont pas "
+"déjà été activés pour l&rsquo;ensemble du réseau. En activant un thème avec "
+"ce menu, vous le rendez disponible pour ce site. Cela ne l&rsquo;active pas, "
+"mais l&rsquo;affichera dans le menu Apparence du site. Pour activer un thème "
+"pour l&rsquo;ensemble du réseau, rendez-vous sur l&rsquo;écran <a href=\"%s"
+"\">Thèmes du réseau</a>."
 
-#: wp-admin/network/site-info.php:32
-#: wp-admin/network/site-new.php:29
-#: wp-admin/network/site-settings.php:32
-#: wp-admin/network/site-themes.php:37
-#: wp-admin/network/site-users.php:35
-#: wp-admin/network/sites.php:45
-msgid "<a href=\"http://codex.wordpress.org/Network_Admin_Sites_Screen\" target=\"_blank\">Documentation on Site Management</a>"
-msgstr "<a href=\"http://codex.wordpress.org/Network_Admin_Sites_Screen\" target=\"_blank\">Documentation sur la gestion de site (en)</a>"
+#: wp-admin/network/site-info.php:27 wp-admin/network/site-settings.php:27
+#: wp-admin/network/site-themes.php:27 wp-admin/network/site-users.php:30
+msgid ""
+"<strong>Settings</strong> - This page shows a list of all settings "
+"associated with this site. Some are created by WordPress and others are "
+"created by plugins you activate. Note that some fields are grayed out and "
+"say Serialized Data. You cannot modify these values due to the way the "
+"setting is stored in the database."
+msgstr ""
+"<strong>Réglages</strong> - Cette page affiche la liste de tous les réglages "
+"associés à ce site. Certains sont créés par WordPress, d&rsquo;autres par "
+"des extensions que vous activez. Notez que certains champs sont grisés et "
+"indiquent données sérialisées (Serialized Data). Vous ne pouvez pas modifier "
+"ces valeurs, du fait de la manière dont ils sont stockés dans la base de "
+"données."
 
-#: wp-admin/network/site-info.php:39
-#: wp-admin/network/site-settings.php:39
-#: wp-admin/network/site-themes.php:55
-#: wp-admin/network/site-users.php:45
+#: wp-admin/network/site-info.php:32 wp-admin/network/site-new.php:29
+#: wp-admin/network/site-settings.php:32 wp-admin/network/site-themes.php:32
+#: wp-admin/network/site-users.php:35 wp-admin/network/sites.php:45
+msgid ""
+"<a href=\"http://codex.wordpress.org/Network_Admin_Sites_Screen\" target="
+"\"_blank\">Documentation on Site Management</a>"
+msgstr ""
+"<a href=\"http://codex.wordpress.org/Network_Admin_Sites_Screen\" target="
+"\"_blank\">Documentation sur la gestion de site (en)</a>"
+
+#: wp-admin/network/site-info.php:39 wp-admin/network/site-settings.php:39
+#: wp-admin/network/site-themes.php:50 wp-admin/network/site-users.php:45
 msgid "Invalid site ID."
 msgstr "Identifiant du site invalide."
 
@@ -412,50 +544,60 @@
 msgid "Site info updated."
 msgstr "Les infos du site ont été mises à jour."
 
-#: wp-admin/network/site-info.php:88
-#: wp-admin/network/site-settings.php:78
-#: wp-admin/network/site-themes.php:134
-#: wp-admin/network/site-users.php:168
+#: wp-admin/network/site-info.php:88 wp-admin/network/site-settings.php:78
+#: wp-admin/network/site-themes.php:129 wp-admin/network/site-users.php:163
 msgid "Edit Site: <a href=\"%1$s\">%2$s</a>"
 msgstr "Modifier le site&nbsp;: <a href=\"%1$s\">%2$s</a>."
 
-#: wp-admin/network/site-info.php:89
-#: wp-admin/network/site-settings.php:79
-#: wp-admin/network/site-themes.php:135
-#: wp-admin/network/site-users.php:169
+#: wp-admin/network/site-info.php:89 wp-admin/network/site-settings.php:79
+#: wp-admin/network/site-themes.php:130 wp-admin/network/site-users.php:164
 msgid "Edit Site: %s"
-msgstr "Modifier le site : %s"
+msgstr "Modifier le site&nbsp;: %s"
 
-#: wp-admin/network/site-info.php:104
-#: wp-admin/network/site-settings.php:94
-#: wp-admin/network/site-themes.php:148
-#: wp-admin/network/site-users.php:192
+#: wp-admin/network/site-info.php:104 wp-admin/network/site-settings.php:94
+#: wp-admin/network/site-themes.php:143 wp-admin/network/site-users.php:187
 msgid "Info"
 msgstr "Info"
 
-#: wp-admin/network/site-info.php:140
+#: wp-admin/network/site-info.php:143
 msgid "Update <code>siteurl</code> and <code>home</code> as well."
-msgstr "Mettez également à jour les options <code>siteurl</code> et <code>home</code>."
+msgstr ""
+"Mettez également à jour les options <code>siteurl</code> et <code>home</"
+"code>."
 
 #: wp-admin/network/site-new.php:17
 msgid "You do not have sufficient permissions to add sites to this network."
-msgstr "Vous n&rsquo;avez pas les droits suffisants pour ajouter des sites à ce réseau."
+msgstr ""
+"Vous n&rsquo;avez pas les droits suffisants pour ajouter des sites à ce "
+"réseau."
 
 #: wp-admin/network/site-new.php:23
-msgid "This screen is for Super Admins to add new sites to the network. This is not affected by the registration settings."
-msgstr "Cet écran permet aux super-admins d&rsquo;ajouter de nouveaux sites au réseau. Il n&rsquo;est pas limité par les réglages d&rsquo;inscription."
+msgid ""
+"This screen is for Super Admins to add new sites to the network. This is not "
+"affected by the registration settings."
+msgstr ""
+"Cet écran permet aux super-admins d&rsquo;ajouter de nouveaux sites au "
+"réseau. Il n&rsquo;est pas limité par les réglages d&rsquo;inscription."
 
 #: wp-admin/network/site-new.php:24
-msgid "If the admin email for the new site does not exist in the database, a new user will also be created."
-msgstr "Si l&rsquo;adresse de contact du nouveau site n&rsquo;existe pas dans la base de données, un nouvel utilisateur sera créé pour l&rsquo;occasion."
+msgid ""
+"If the admin email for the new site does not exist in the database, a new "
+"user will also be created."
+msgstr ""
+"Si l&rsquo;adresse de contact du nouveau site n&rsquo;existe pas dans la "
+"base de données, un nouvel utilisateur sera créé pour l&rsquo;occasion."
 
 #: wp-admin/network/site-new.php:40
 msgid "Can&#8217;t create an empty site."
 msgstr "Impossible de créer un site vide."
 
 #: wp-admin/network/site-new.php:50
-msgid "The following words are reserved for use by WordPress functions and cannot be used as blog names: <code>%s</code>"
-msgstr "Les mots suivants sont réservés pour l&rsquo;usage de fonctions WordPress et ne peuvent pas être utilisés comme nom de site&nbsp;: <code>%s</code>"
+msgid ""
+"The following words are reserved for use by WordPress functions and cannot "
+"be used as blog names: <code>%s</code>"
+msgstr ""
+"Les mots suivants sont réservés pour l&rsquo;usage de fonctions WordPress et "
+"ne peuvent pas être utilisés comme nom de site&nbsp;: <code>%s</code>"
 
 #: wp-admin/network/site-new.php:57
 msgid "Missing or invalid site address."
@@ -471,54 +613,59 @@
 
 #: wp-admin/network/site-new.php:77
 msgid "There was an error creating the user."
-msgstr "Une erreur s&rsquo;est produite lors de la création d&rsquo;un utilisateur."
+msgstr ""
+"Une erreur s&rsquo;est produite lors de la création d&rsquo;un utilisateur."
 
 #: wp-admin/network/site-new.php:88
 msgid ""
-"New site created by %1s\n"
+"New site created by %1$s\n"
 "\n"
-"Address: %2s\n"
-"Name: %3s"
+"Address: %2$s\n"
+"Name: %3$s"
 msgstr ""
-"Nouveau site créé par %1s\n"
+"Nouveau site créé par %1$s\n"
 "\n"
-"Adresse : %2s\n"
-"Nom : %3s"
+"Adresse : %2$s\n"
+"Nom : %3$s"
 
-#: wp-admin/network/site-new.php:89
+#: wp-admin/network/site-new.php:92
 msgid "[%s] New Site Created"
 msgstr "[%s] Nouveau site créé"
 
-#: wp-admin/network/site-new.php:101
-msgid "Site added. <a href=\"%1$s\">Visit Dashboard</a> or <a href=\"%2$s\">Edit Site</a>"
-msgstr "Site ajouté. <a href=\"%1$s\">Afficher le tableau de bord</a> | <a href=\"%2$s\">Modifier le site</a>"
+#: wp-admin/network/site-new.php:104
+msgid ""
+"Site added. <a href=\"%1$s\">Visit Dashboard</a> or <a href=\"%2$s\">Edit "
+"Site</a>"
+msgstr ""
+"Site ajouté. <a href=\"%1$s\">Afficher le tableau de bord</a> | <a href="
+"\"%2$s\">Modifier le site</a>"
 
-#: wp-admin/network/site-new.php:104
-#: wp-admin/network/site-new.php:113
+#: wp-admin/network/site-new.php:107 wp-admin/network/site-new.php:116
 msgid "Add New Site"
 msgstr "Ajouter un nouveau site"
 
-#: wp-admin/network/site-new.php:123
+#: wp-admin/network/site-new.php:126
 msgid "Site Address"
 msgstr "Adresse du site"
 
-#: wp-admin/network/site-new.php:130
-msgid "Only the characters a-z and 0-9 recommended."
-msgstr "N&rsquo;utilisez de préférence que des lettres (de a à z) et des chiffres (de 0 à 9)."
-
-#: wp-admin/network/site-new.php:139
+#: wp-admin/network/site-new.php:142
 msgid "Admin Email"
 msgstr "Adresse de contact de l&rsquo;administrateur"
 
-#: wp-admin/network/site-new.php:143
-msgid "A new user will be created if the above email address is not in the database."
-msgstr "Un nouvel utilisateur sera créé si l&rsquo;adresse de contact n&rsquo;existe pas dans la base de données."
-
-#: wp-admin/network/site-new.php:143
-msgid "The username and password will be mailed to this email address."
-msgstr "L&rsquo;identifiant et le mot de passe seront envoyés sur l&rsquo;adresse de contact indiquée."
+#: wp-admin/network/site-new.php:146
+msgid ""
+"A new user will be created if the above email address is not in the database."
+msgstr ""
+"Un nouvel utilisateur sera créé si l&rsquo;adresse de contact n&rsquo;existe "
+"pas dans la base de données."
 
 #: wp-admin/network/site-new.php:146
+msgid "The username and password will be mailed to this email address."
+msgstr ""
+"L&rsquo;identifiant et le mot de passe seront envoyés sur l&rsquo;adresse de "
+"contact indiquée."
+
+#: wp-admin/network/site-new.php:149
 msgid "Add Site"
 msgstr "Ajouter un site"
 
@@ -526,88 +673,73 @@
 msgid "Site options updated."
 msgstr "Les réglages du site ont été mis à jour."
 
-#: wp-admin/network/site-themes.php:22
+#: wp-admin/network/site-themes.php:17
 msgid "You do not have sufficient permissions to manage themes for this site."
-msgstr "Vous n&rsquo;avez pas les droits suffisants pour gérer les thèmes de ce site."
+msgstr ""
+"Vous n&rsquo;avez pas les droits suffisants pour gérer les thèmes de ce site."
 
-#: wp-admin/network/site-themes.php:131
-#: wp-admin/network/themes.php:197
+#: wp-admin/network/site-themes.php:126 wp-admin/network/themes.php:203
 msgctxt "themes per page (screen options)"
 msgid "Themes"
 msgstr "Thèmes"
 
-#: wp-admin/network/site-themes.php:162
-#: wp-admin/network/themes.php:231
+#: wp-admin/network/site-themes.php:157 wp-admin/network/themes.php:237
 msgid "Theme enabled."
 msgid_plural "%s themes enabled."
 msgstr[0] "Thème activé."
 msgstr[1] "%s thèmes activés."
 
-#: wp-admin/network/site-themes.php:165
-#: wp-admin/network/themes.php:234
+#: wp-admin/network/site-themes.php:160 wp-admin/network/themes.php:240
 msgid "Theme disabled."
 msgid_plural "%s themes disabled."
 msgstr[0] "Thème désactivé."
 msgstr[1] "%s thèmes désactivés."
 
-#: wp-admin/network/site-themes.php:167
-#: wp-admin/network/themes.php:239
+#: wp-admin/network/site-themes.php:162 wp-admin/network/themes.php:245
 msgid "No theme selected."
 msgstr "Aucun thème sélectionné."
 
-#: wp-admin/network/site-themes.php:170
+#: wp-admin/network/site-themes.php:165
 msgid "Network enabled themes are not shown on this screen."
 msgstr "Les thèmes activés pour le réseau ne sont pas visibles sur cet écran."
 
-#: wp-admin/network/site-users.php:210
+#: wp-admin/network/site-users.php:205
 msgid "User is already a member of this site."
 msgstr "Cet utilisateur est déjà membre de ce site."
 
-#: wp-admin/network/site-users.php:213
+#: wp-admin/network/site-users.php:208
 msgid "Enter the username of an existing user."
 msgstr "Saisir l&rsquo;identifiant d&rsquo;un utilisateur existant."
 
-#: wp-admin/network/site-users.php:219
+#: wp-admin/network/site-users.php:214
 msgid "Select a user to change role."
 msgstr "Sélectionnez un utilisateur dont vous voulez changer le rôle."
 
-#: wp-admin/network/site-users.php:225
+#: wp-admin/network/site-users.php:220
 msgid "Select a user to remove."
 msgstr "Sélectionnez un utilisateur à enlever."
 
-#: wp-admin/network/site-users.php:228
+#: wp-admin/network/site-users.php:223
 msgid "User created."
 msgstr "L&rsquo;utilisateur a été créé."
 
-#: wp-admin/network/site-users.php:231
+#: wp-admin/network/site-users.php:226
 msgid "Enter the username and email."
 msgstr "Saisir l&rsquo;identifiant et l&rsquo;adresse de messagerie."
 
-#: wp-admin/network/site-users.php:234
+#: wp-admin/network/site-users.php:229
 msgid "Duplicated username or email address."
 msgstr "Identifiant ou adresse de messagerie déjà utilisé(e)."
 
-#: wp-admin/network/site-users.php:257
-msgid "Add User to This Site"
-msgstr "Ajouter un utilisateur à ce site"
-
-#: wp-admin/network/site-users.php:259
-msgid "You may add from existing network users, or set up a new user to add to this site."
-msgstr "Vous pouvez ajouter des utilisateurs en provenance du réseau, ou créer un nouvel utilisateur à ajouter à ce site."
-
-#: wp-admin/network/site-users.php:261
-msgid "You may add from existing network users to this site."
-msgstr "Vous pouvez ajouter à ce site des utilisateurs existant sur le réseau de sites."
-
-#: wp-admin/network/site-users.php:287
-#: wp-admin/network/user-new.php:103
+#: wp-admin/network/site-users.php:273 wp-admin/network/user-new.php:103
 msgid "Add User"
 msgstr "Ajouter un utilisateur"
 
-#: wp-admin/network/site-users.php:319
-#: wp-admin/network/user-new.php:99
+#: wp-admin/network/site-users.php:303 wp-admin/network/user-new.php:99
 msgid "Username and password will be mailed to the above email address."
-msgstr "L&rsquo;identifiant et le mot de passe seront envoyés à l&rsquo;adresse de contact précisée."
+msgstr ""
+"L&rsquo;identifiant et le mot de passe seront envoyés à l&rsquo;adresse de "
+"contact précisée."
 
 #: wp-admin/network/sites.php:25
 msgctxt "sites per page (screen options)"
@@ -615,227 +747,349 @@
 msgstr "Sites"
 
 #: wp-admin/network/sites.php:31
-msgid "Add New takes you to the Add New Site screen. You can search for a site by Name, ID number, or IP address. Screen Options allows you to choose how many sites to display on one page."
-msgstr "Ajouter vous envoie au formulaire en bas de cette page. Vous pouvez chercher un site par le nom, l&rsquo;identifiant ou l&rsquo;adresse IP. Les options d&rsquo;écran vous permettent de choisir le nombre de sites à afficher sur une même page."
+msgid ""
+"Add New takes you to the Add New Site screen. You can search for a site by "
+"Name, ID number, or IP address. Screen Options allows you to choose how many "
+"sites to display on one page."
+msgstr ""
+"Ajouter vous envoie au formulaire en bas de cette page. Vous pouvez chercher "
+"un site par le nom, l&rsquo;identifiant ou l&rsquo;adresse IP. Les options "
+"d&rsquo;écran vous permettent de choisir le nombre de sites à afficher sur "
+"une même page."
 
 #: wp-admin/network/sites.php:32
-msgid "This is the main table of all sites on this network. Switch between list and excerpt views by using the icons above the right side of the table."
-msgstr "Voici la liste de tous les sites de ce réseau. Vous pouvez changer de vue (liste avec ou sans extrait) en utilisant les icônes présentes en haut à droite de la liste."
+msgid ""
+"This is the main table of all sites on this network. Switch between list and "
+"excerpt views by using the icons above the right side of the table."
+msgstr ""
+"Voici la liste de tous les sites de ce réseau. Vous pouvez changer de vue "
+"(liste avec ou sans extrait) en utilisant les icônes présentes en haut à "
+"droite de la liste."
 
 #: wp-admin/network/sites.php:33
-msgid "Hovering over each site reveals seven options (three for the primary site):"
-msgstr "Survoler chaque site avec la souris révèle sept options (trois pour le site principal)&nbsp;:"
+msgid ""
+"Hovering over each site reveals seven options (three for the primary site):"
+msgstr ""
+"Survoler chaque site avec la souris révèle sept options (trois pour le site "
+"principal)&nbsp;:"
 
 #: wp-admin/network/sites.php:34
 msgid "An Edit link to a separate Edit Site screen."
-msgstr "Un lien &laquo;&nbsp;Modifier&nbsp;&raquo; vers un nouvel écran de modification de site."
+msgstr ""
+"Un lien &laquo;&nbsp;Modifier&nbsp;&raquo; vers un nouvel écran de "
+"modification de site."
 
 #: wp-admin/network/sites.php:35
 msgid "Dashboard leads to the Dashboard for that site."
-msgstr "&laquo;&nbsp;Tableau de bord&nbsp;&raquo; mène au tableau de bord pour ce site."
+msgstr ""
+"&laquo;&nbsp;Tableau de bord&nbsp;&raquo; mène au tableau de bord pour ce "
+"site."
 
 #: wp-admin/network/sites.php:36
-msgid "Deactivate, Archive, and Spam which lead to confirmation screens. These actions can be reversed later."
-msgstr "&laquo;&nbsp;Désactiver&nbsp;&raquo;, &laquo;&nbsp;Archiver&nbsp;&raquo; et &laquo;&nbsp;Indésirable&nbsp;&raquo; envoient chacun à des écrans de confirmation. Ces actions peuvent être annulées par la suite&nbsp;."
+msgid ""
+"Deactivate, Archive, and Spam which lead to confirmation screens. These "
+"actions can be reversed later."
+msgstr ""
+"&laquo;&nbsp;Désactiver&nbsp;&raquo;, &laquo;&nbsp;Archiver&nbsp;&raquo; et "
+"&laquo;&nbsp;Indésirable&nbsp;&raquo; envoient chacun à des écrans de "
+"confirmation. Ces actions peuvent être annulées par la suite&nbsp;."
 
 #: wp-admin/network/sites.php:37
 msgid "Delete which is a permanent action after the confirmation screens."
-msgstr "&laquo;&nbsp;Supprimer&nbsp;&raquo; est une action irréversible une fois passé l&rsquo;écran de confirmation."
+msgstr ""
+"&laquo;&nbsp;Supprimer&nbsp;&raquo; est une action irréversible une fois "
+"passé l&rsquo;écran de confirmation."
 
 #: wp-admin/network/sites.php:38
 msgid "Visit to go to the frontend site live."
-msgstr "&laquo;&nbsp;Afficher&nbsp;&raquo; envoie vers la page d&rsquo;accueil du site."
+msgstr ""
+"&laquo;&nbsp;Afficher&nbsp;&raquo; envoie vers la page d&rsquo;accueil du "
+"site."
 
 #: wp-admin/network/sites.php:39
-msgid "The site ID is used internally, and is not shown on the front end of the site or to users/viewers."
-msgstr "L&rsquo;identifiant du site est utilisé en interne et n’est pas affiché dans la partie publique du site, ni aux utilisateurs/visiteurs."
+msgid ""
+"The site ID is used internally, and is not shown on the front end of the "
+"site or to users/viewers."
+msgstr ""
+"L&rsquo;identifiant du site est utilisé en interne et n’est pas affiché dans "
+"la partie publique du site, ni aux utilisateurs/visiteurs."
 
 #: wp-admin/network/sites.php:40
 msgid "Clicking on bold headings can re-sort this table."
 msgstr "Cliquez sur les en-têtes en gras afin de retrier ce tableau."
 
-#: wp-admin/network/sites.php:89
-msgid "You are not allowed to delete the site."
-msgstr "Vous n&rsquo;avez pas l&rsquo;autorisation d&rsquo;effacer ce site."
-
-#: wp-admin/network/sites.php:107
-#: wp-admin/network/sites.php:208
+#: wp-admin/network/sites.php:62 wp-admin/network/sites.php:137
 msgid "You are not allowed to change the current site."
 msgstr "Vous n&rsquo;êtes pas autorisé à modifier le site actuel."
 
-#: wp-admin/network/sites.php:213
+#: wp-admin/network/sites.php:67
 msgid "WordPress &rsaquo; Confirm your action"
 msgstr "WordPress &rsaquo; Confirmer votre action"
 
-#: wp-admin/network/sites.php:229
+#: wp-admin/network/sites.php:83
 msgid "Confirm"
 msgstr "Confirmer"
 
-#: wp-admin/network/sites.php:243
+#: wp-admin/network/sites.php:124
+msgid "You are not allowed to delete the site."
+msgstr "Vous n&rsquo;avez pas l&rsquo;autorisation d&rsquo;effacer ce site."
+
+#: wp-admin/network/sites.php:185
 msgid "Sites removed from spam."
 msgstr "Sites marqués comme sains."
 
-#: wp-admin/network/sites.php:246
+#: wp-admin/network/sites.php:188
 msgid "Sites marked as spam."
 msgstr "Sites marqués comme indésirables."
 
-#: wp-admin/network/sites.php:249
+#: wp-admin/network/sites.php:191
 msgid "Sites deleted."
 msgstr "Sites effacés."
 
-#: wp-admin/network/sites.php:252
+#: wp-admin/network/sites.php:194
 msgid "Site deleted."
 msgstr "Site effacé."
 
-#: wp-admin/network/sites.php:255
+#: wp-admin/network/sites.php:197
 msgid "You do not have permission to delete that site."
 msgstr "Vous n&rsquo;avez pas l&rsquo;autorisation de supprimer ce site."
 
-#: wp-admin/network/sites.php:258
+#: wp-admin/network/sites.php:200
 msgid "Site archived."
 msgstr "Site archivé."
 
-#: wp-admin/network/sites.php:261
+#: wp-admin/network/sites.php:203
 msgid "Site unarchived."
 msgstr "Site désarchivé."
 
-#: wp-admin/network/sites.php:264
+#: wp-admin/network/sites.php:206
 msgid "Site activated."
 msgstr "Site activé."
 
-#: wp-admin/network/sites.php:267
+#: wp-admin/network/sites.php:209
 msgid "Site deactivated."
 msgstr "Site désactivé."
 
-#: wp-admin/network/sites.php:270
+#: wp-admin/network/sites.php:212
 msgid "Site removed from spam."
 msgstr "Site marqué comme sain."
 
-#: wp-admin/network/sites.php:273
+#: wp-admin/network/sites.php:215
 msgid "Site marked as spam."
 msgstr "Site marqué comme indésirable."
 
-#: wp-admin/network/themes.php:22
+#: wp-admin/network/themes.php:17
 msgid "You do not have sufficient permissions to manage network themes."
-msgstr "Vous n&rsquo;avez pas les droits suffisants pour gérer les thèmes du réseau."
+msgstr ""
+"Vous n&rsquo;avez pas les droits suffisants pour gérer les thèmes du réseau."
 
-#: wp-admin/network/themes.php:111
+#: wp-admin/network/themes.php:106
 msgid "You do not have sufficient permissions to delete themes for this site."
-msgstr "Vous n&rsquo;avez pas les droits suffisants pour effacer les thèmes de ce site."
+msgstr ""
+"Vous n&rsquo;avez pas les droits suffisants pour effacer les thèmes de ce "
+"site."
 
 # Ne pas mettre d'entité HTML (&nbsp;...) : chaîne affichée dans l'éditeur visuel.
-#: wp-admin/network/themes.php:146
+#: wp-admin/network/themes.php:141
 msgid "Delete Theme"
 msgid_plural "Delete Themes"
 msgstr[0] "Supprimer le thème"
 msgstr[1] "Supprimer les thèmes"
 
-#: wp-admin/network/themes.php:148
+#: wp-admin/network/themes.php:143
 msgid "This theme may be active on other sites in the network."
 msgid_plural "These themes may be active on other sites in the network."
 msgstr[0] "Ce thème est peut-être activé sur d&rsquo;autres sites du réseau"
-msgstr[1] "Ces thèmes sont peut-être activés sur d&rsquo;autres sites du réseau"
+msgstr[1] ""
+"Ces thèmes sont peut-être activés sur d&rsquo;autres sites du réseau"
 
-#: wp-admin/network/themes.php:149
+#: wp-admin/network/themes.php:144
 msgid "You are about to remove the following theme:"
 msgid_plural "You are about to remove the following themes:"
 msgstr[0] "Vous êtes sur le point de supprimer le thème suivant&nbsp;:"
 msgstr[1] "Vous êtes sur le point de supprimer les thèmes suivants&nbsp;:"
 
 #. translators: 1: theme name, 2: theme author
-#: wp-admin/network/themes.php:154
+#: wp-admin/network/themes.php:149
 msgid "Are you sure you wish to delete these themes?"
 msgstr "Êtes-vous certain(e) de vouloir supprimer ces thèmes&nbsp;?"
 
-#: wp-admin/network/themes.php:163
+#: wp-admin/network/themes.php:158
 msgid "Yes, Delete this theme"
 msgid_plural "Yes, Delete these themes"
 msgstr[0] "Oui, supprimer ce thème"
 msgstr[1] "Oui, supprimer ces thèmes"
 
-#: wp-admin/network/themes.php:166
+#: wp-admin/network/themes.php:161
 msgid "No, Return me to the theme list"
 msgstr "Non, retourner à la liste des thèmes."
 
-#: wp-admin/network/themes.php:203
-msgid "This screen enables and disables the inclusion of themes available to choose in the Appearance menu for each site. It does not activate or deactivate which theme a site is currently using."
-msgstr "Cet écran permet d&rsquo;activer ou désactiver la disponibilité des thèmes pour tous les sites du réseau. Il ne permet pas d&rsquo;activer ou activer le thème actuellement utilisé ce site."
-
-#: wp-admin/network/themes.php:204
-msgid "If the network admin disables a theme that is in use, it can still remain selected on that site. If another theme is chosen, the disabled theme will not appear in the site&#8217;s Appearance > Themes screen."
-msgstr "Si l&rsquo;administrateur du réseau désactive un thème en cours d&rsquo;utilisation par un site, ce thème restera en place pour ce site. Si le site change de thème, le thème désactivé n&rsquo;apparaîtra plus dans l&rsquo;écran de sélection des thèmes de ce site."
-
-#: wp-admin/network/themes.php:205
-msgid "Themes can be enabled on a site by site basis by the network admin on the Edit Site screen (which has a Themes tab); get there via the Edit action link on the All Sites screen. Only network admins are able to install or edit themes."
-msgstr "Les thèmes peuvent être activés par l&rsquo;administrateur du réseau pour chaque site, individuellement, par le biais de l&rsquo;écran de modification d&rsquo;un site (et de son onglet &laquo;&nbsp;Thèmes&nbsp;&raquo;), accessible via le lien &laquo;&nbsp;Modifier&nbsp;&raquo; de la liste des sites. Seuls les administrateurs du réseau peuvent installer ou modifier des thèmes."
+#: wp-admin/network/themes.php:209
+msgid ""
+"This screen enables and disables the inclusion of themes available to choose "
+"in the Appearance menu for each site. It does not activate or deactivate "
+"which theme a site is currently using."
+msgstr ""
+"Cet écran permet d&rsquo;activer ou désactiver la disponibilité des thèmes "
+"pour tous les sites du réseau. Il ne permet pas d&rsquo;activer ou activer "
+"le thème actuellement utilisé ce site."
 
 #: wp-admin/network/themes.php:210
-msgid "<a href=\"http://codex.wordpress.org/Network_Admin_Themes_Screen\" target=\"_blank\">Documentation on Network Themes</a>"
-msgstr "<a href=http://codex.wordpress.org/Network_Admin_Themes_Screenl\" target=\"_blank\">Documentation sur les thèmes du réseau</a>"
+msgid ""
+"If the network admin disables a theme that is in use, it can still remain "
+"selected on that site. If another theme is chosen, the disabled theme will "
+"not appear in the site&#8217;s Appearance > Themes screen."
+msgstr ""
+"Si l&rsquo;administrateur du réseau désactive un thème en cours d&rsquo;"
+"utilisation par un site, ce thème restera en place pour ce site. Si le site "
+"change de thème, le thème désactivé n&rsquo;apparaîtra plus dans l&rsquo;"
+"écran de sélection des thèmes de ce site."
 
-#: wp-admin/network/themes.php:237
+#: wp-admin/network/themes.php:211
+msgid ""
+"Themes can be enabled on a site by site basis by the network admin on the "
+"Edit Site screen (which has a Themes tab); get there via the Edit action "
+"link on the All Sites screen. Only network admins are able to install or "
+"edit themes."
+msgstr ""
+"Les thèmes peuvent être activés par l&rsquo;administrateur du réseau pour "
+"chaque site, individuellement, par le biais de l&rsquo;écran de modification "
+"d&rsquo;un site (et de son onglet &laquo;&nbsp;Thèmes&nbsp;&raquo;), "
+"accessible via le lien &laquo;&nbsp;Modifier&nbsp;&raquo; de la liste des "
+"sites. Seuls les administrateurs du réseau peuvent installer ou modifier des "
+"thèmes."
+
+#: wp-admin/network/themes.php:216
+msgid ""
+"<a href=\"http://codex.wordpress.org/Network_Admin_Themes_Screen\" target="
+"\"_blank\">Documentation on Network Themes</a>"
+msgstr ""
+"<a href=http://codex.wordpress.org/Network_Admin_Themes_Screenl\" target="
+"\"_blank\">Documentation sur les thèmes du réseau</a>"
+
+#: wp-admin/network/themes.php:243
 msgctxt "network"
 msgid "Theme deleted."
 msgid_plural "%s themes deleted."
 msgstr[0] "Thème supprimé."
 msgstr[1] "%s thèmes supprimés."
 
-#: wp-admin/network/themes.php:241
+#: wp-admin/network/themes.php:247
 msgid "You cannot delete a theme while it is active on the main site."
-msgstr "Vous ne pouvez pas effacer un thème s&rsquo;il est activé sur le site principal."
+msgstr ""
+"Vous ne pouvez pas effacer un thème s&rsquo;il est activé sur le site "
+"principal."
 
 #: wp-admin/network/upgrade.php:25
-msgid "Only use this screen once you have updated to a new version of WordPress through Updates/Available Updates (via the Network Administration navigation menu or the Toolbar). Clicking the Update Network button will step through each site in the network, five at a time, and make sure any database updates are applied."
-msgstr "N&rsquo;utilisez cet écran que quand vous avez mis à jour cette installation de WordPress (au moyen de la fonction de mise à jour automatique ou la barre d&rsquo;outils). En cliquant sur &laquo;&nbsp;Mettre à jour le réseau&nbsp;&raquo;, WordPress s&rsquo;occupera de tous les sites du réseau, par groupes de cinq, et s&rsquo;assurera que toutes les bases de données sont à jour."
+msgid ""
+"Only use this screen once you have updated to a new version of WordPress "
+"through Updates/Available Updates (via the Network Administration navigation "
+"menu or the Toolbar). Clicking the Update Network button will step through "
+"each site in the network, five at a time, and make sure any database updates "
+"are applied."
+msgstr ""
+"N&rsquo;utilisez cet écran que quand vous avez mis à jour cette installation "
+"de WordPress (au moyen de la fonction de mise à jour automatique ou la barre "
+"d&rsquo;outils). En cliquant sur &laquo;&nbsp;Mettre à jour le réseau&nbsp;"
+"&raquo;, WordPress s&rsquo;occupera de tous les sites du réseau, par groupes "
+"de cinq, et s&rsquo;assurera que toutes les bases de données sont à jour."
 
 #: wp-admin/network/upgrade.php:26
-msgid "If a version update to core has not happened, clicking this button won&#8217;t affect anything."
-msgstr "S&rsquo;il n&rsquo;y a pas eu de mise à jour de l&rsquo;installation de WordPress récemment, cliquer sur ce bouton n&rsquo;aura aucun effet."
+msgid ""
+"If a version update to core has not happened, clicking this button won&#8217;"
+"t affect anything."
+msgstr ""
+"S&rsquo;il n&rsquo;y a pas eu de mise à jour de l&rsquo;installation de "
+"WordPress récemment, cliquer sur ce bouton n&rsquo;aura aucun effet."
 
 #: wp-admin/network/upgrade.php:27
-msgid "If this process fails for any reason, users logging in to their sites will force the same update."
-msgstr "Si ce processus échoue pour n&rsquo;importe quelles raisons, les utilisateurs se connectant à leurs sites déclencheront la même mise à jour."
+msgid ""
+"If this process fails for any reason, users logging in to their sites will "
+"force the same update."
+msgstr ""
+"Si ce processus échoue pour n&rsquo;importe quelles raisons, les "
+"utilisateurs se connectant à leurs sites déclencheront la même mise à jour."
 
 #: wp-admin/network/upgrade.php:32
-msgid "<a href=\"http://codex.wordpress.org/Network_Admin_Updates_Screen\" target=\"_blank\">Documentation on Update Network</a>"
-msgstr "<a href=\"http://codex.wordpress.org/Network_Admin_Updates_Screen\" target=\"_blank\">Documentation sur la mise à jour du réseau</a>"
+msgid ""
+"<a href=\"http://codex.wordpress.org/Network_Admin_Updates_Screen\" target="
+"\"_blank\">Documentation on Update Network</a>"
+msgstr ""
+"<a href=\"http://codex.wordpress.org/Network_Admin_Updates_Screen\" target="
+"\"_blank\">Documentation sur la mise à jour du réseau</a>"
 
 #: wp-admin/network/upgrade.php:58
 msgid "All done!"
 msgstr "Terminé&nbsp;!"
 
-#: wp-admin/network/upgrade.php:67
-msgid "Warning! Problem updating %1$s. Your server may not be able to connect to sites running on it. Error message: <em>%2$s</em>"
-msgstr "Attention&nbsp;! Problème lors de la mise à jour de %1$s. Votre serveur peut ne pas être capable de se connecter aux sites qu&rsquo;il gère. Message d&rsquo;erreur&nbsp;: <em>%2$s</em>"
+#: wp-admin/network/upgrade.php:70
+msgid ""
+"Warning! Problem updating %1$s. Your server may not be able to connect to "
+"sites running on it. Error message: <em>%2$s</em>"
+msgstr ""
+"Attention&nbsp;! Problème lors de la mise à jour de %1$s. Votre serveur peut "
+"ne pas être capable de se connecter aux sites qu&rsquo;il gère. Message "
+"d&rsquo;erreur&nbsp;: <em>%2$s</em>"
 
-#: wp-admin/network/upgrade.php:72
-msgid "If your browser doesn&#8217;t start loading the next page automatically, click this link:"
-msgstr "Si votre navigateur ne lance pas automatiquement la page suivante, cliquez sur ce lien&nbsp;:"
+#: wp-admin/network/upgrade.php:75
+msgid ""
+"If your browser doesn&#8217;t start loading the next page automatically, "
+"click this link:"
+msgstr ""
+"Si votre navigateur ne lance pas automatiquement la page suivante, cliquez "
+"sur ce lien&nbsp;:"
 
-#: wp-admin/network/upgrade.php:72
+#: wp-admin/network/upgrade.php:75
 msgid "Next Sites"
 msgstr "Sites suivants"
 
-#: wp-admin/network/upgrade.php:84
-msgid "You can update all the sites on your network through this page. It works by calling the update script of each site automatically. Hit the link below to update."
-msgstr "Vous pouvez mettre à jour tous les sites de votre réseau par le biais de cette page. Le processus consiste à appeler le script de mise à jour pour chaque site, automatiquement. Cliquez sur le lien ci-dessous pour lancer la mise à jour."
+#: wp-admin/network/upgrade.php:87
+msgid ""
+"You can update all the sites on your network through this page. It works by "
+"calling the update script of each site automatically. Hit the link below to "
+"update."
+msgstr ""
+"Vous pouvez mettre à jour tous les sites de votre réseau par le biais de "
+"cette page. Le processus consiste à appeler le script de mise à jour pour "
+"chaque site, automatiquement. Cliquez sur le lien ci-dessous pour lancer la "
+"mise à jour."
 
 #: wp-admin/network/user-new.php:17
 msgid "You do not have sufficient permissions to add users to this network."
-msgstr "Vous n&rsquo;avez pas les droits suffisants pour ajouter des utilisateurs à ce réseau."
+msgstr ""
+"Vous n&rsquo;avez pas les droits suffisants pour ajouter des utilisateurs à "
+"ce réseau."
 
 #: wp-admin/network/user-new.php:23
-msgid "Add User will set up a new user account on the network and send that person an email with username and password."
-msgstr "&laquo;&nbsp;Ajouter un utilisateur&nbsp;&raquo; créera un nouveau compte utilisateur sur le réseau, et enverra un message contenant son identifiant et son mot de passe au destinataire."
+msgid ""
+"Add User will set up a new user account on the network and send that person "
+"an email with username and password."
+msgstr ""
+"&laquo;&nbsp;Ajouter un utilisateur&nbsp;&raquo; créera un nouveau compte "
+"utilisateur sur le réseau, et enverra un message contenant son identifiant "
+"et son mot de passe au destinataire."
 
 #: wp-admin/network/user-new.php:24
-msgid "Users who are signed up to the network without a site are added as subscribers to the main or primary dashboard site, giving them profile pages to manage their accounts. These users will only see Dashboard and My Sites in the main navigation until a site is created for them."
-msgstr "Les utilisateurs qui se sont inscrits sur le réseau sans créer de site deviennent abonnés du site d&rsquo;accueil. Celui-ci leur permet d&rsquo;accéder à leur compte. Ces utilisateurs ne voient dans la navigation principale que les options &laquo;&nbsp;Tableau de bord&nbsp;&raquo; et &laquo;&nbsp;Mes sites&nbsp;&raquo;, jusqu&rsquo;à ce qu&rsquo;un site leur soit créé."
+msgid ""
+"Users who are signed up to the network without a site are added as "
+"subscribers to the main or primary dashboard site, giving them profile pages "
+"to manage their accounts. These users will only see Dashboard and My Sites "
+"in the main navigation until a site is created for them."
+msgstr ""
+"Les utilisateurs qui se sont inscrits sur le réseau sans créer de site "
+"deviennent abonnés du site d&rsquo;accueil. Celui-ci leur permet d&rsquo;"
+"accéder à leur compte. Ces utilisateurs ne voient dans la navigation "
+"principale que les options &laquo;&nbsp;Tableau de bord&nbsp;&raquo; et "
+"&laquo;&nbsp;Mes sites&nbsp;&raquo;, jusqu&rsquo;à ce qu&rsquo;un site leur "
+"soit créé."
 
-#: wp-admin/network/user-new.php:29
-#: wp-admin/network/users.php:244
-msgid "<a href=\"http://codex.wordpress.org/Network_Admin_Users_Screen\" target=\"_blank\">Documentation on Network Users</a>"
-msgstr "<a href=http://codex.wordpress.org/Network_Admin_Users_Screen\" target=\"_blank\">Documentation sur les utilisateurs du réseau</a>"
+#: wp-admin/network/user-new.php:29 wp-admin/network/users.php:244
+msgid ""
+"<a href=\"http://codex.wordpress.org/Network_Admin_Users_Screen\" target="
+"\"_blank\">Documentation on Network Users</a>"
+msgstr ""
+"<a href=http://codex.wordpress.org/Network_Admin_Users_Screen\" target="
+"\"_blank\">Documentation sur les utilisateurs du réseau</a>"
 
 #: wp-admin/network/user-new.php:39
 msgid "Cannot create an empty user."
@@ -846,52 +1100,92 @@
 msgstr "Impossible d&rsquo;ajouter l&rsquo;utilisateur."
 
 #: wp-admin/network/users.php:27
-msgid "Transfer or delete posts and links before deleting users."
-msgstr "Transférer les articles avant l&rsquo;effacement des utilisateurs."
+msgid "Transfer or delete posts before deleting users."
+msgstr ""
+"Transférer ou effacer les articles avant d&rsquo;effacer les utilisateurs."
 
 #: wp-admin/network/users.php:40
 msgid "Warning! User %s cannot be deleted."
-msgstr "Attention&nbsp;! L&rsquo;utilisateur %s n&rsquo;a pas pu être supprimé."
+msgstr ""
+"Attention&nbsp;! L&rsquo;utilisateur %s n&rsquo;a pas pu être supprimé."
 
 #: wp-admin/network/users.php:43
-msgid "Warning! User cannot be deleted. The user %s is a network administrator."
-msgstr "Attention&nbsp;! L&rsquo;utilisateur %s ne peut être effacé car il est un administrateur du réseau."
+msgid ""
+"Warning! User cannot be deleted. The user %s is a network administrator."
+msgstr ""
+"Attention&nbsp;! L&rsquo;utilisateur %s ne peut être effacé car il est un "
+"administrateur du réseau."
 
 #: wp-admin/network/users.php:50
-msgid "What should be done with posts and links owned by <em>%s</em>?"
-msgstr "Que voulez-vous faire des articles et liens appartenant à <em>%s</em>&nbsp;?"
+msgid "What should be done with posts owned by <em>%s</em>?"
+msgstr "Que voulez-vous faire des articles appartenant à <em>%s</em>&nbsp;?"
 
 #: wp-admin/network/users.php:68
 msgid "Site: %s"
 msgstr "Site&nbsp;: %s"
 
 #: wp-admin/network/users.php:144
-msgid "Warning! User cannot be modified. The user %s is a network administrator."
-msgstr "Attention&nbsp;! L&rsquo;utilisateur %s ne peut être modifié car il est un administrateur du réseau."
+msgid ""
+"Warning! User cannot be modified. The user %s is a network administrator."
+msgstr ""
+"Attention&nbsp;! L&rsquo;utilisateur %s ne peut être modifié car il est un "
+"administrateur du réseau."
 
 #: wp-admin/network/users.php:234
-msgid "This table shows all users across the network and the sites to which they are assigned."
-msgstr "Ce tableau affiche tous les utilisateurs appartenant au réseau, et les sites auxquels ils sont assignés."
+msgid ""
+"This table shows all users across the network and the sites to which they "
+"are assigned."
+msgstr ""
+"Ce tableau affiche tous les utilisateurs appartenant au réseau, et les sites "
+"auxquels ils sont assignés."
 
 #: wp-admin/network/users.php:235
-msgid "Hover over any user on the list to make the edit links appear. The Edit link on the left will take you to his or her Edit User profile page; the Edit link on the right by any site name goes to an Edit Site screen for that site."
-msgstr "Survolez n&rsquo;importe quel utilisateur de cette liste avec la souris pour faire apparaître ses liens connexes. Le lien &laquo;&nbsp;Modifier&nbsp;&raquo; à gauche vous permet de modifier son profil&nbsp;; celui tout à droite, à côté de l&rsquo;adresse du site, permet de modifier le site."
+msgid ""
+"Hover over any user on the list to make the edit links appear. The Edit link "
+"on the left will take you to his or her Edit User profile page; the Edit "
+"link on the right by any site name goes to an Edit Site screen for that site."
+msgstr ""
+"Survolez n&rsquo;importe quel utilisateur de cette liste avec la souris pour "
+"faire apparaître ses liens connexes. Le lien &laquo;&nbsp;Modifier&nbsp;"
+"&raquo; à gauche vous permet de modifier son profil&nbsp;; celui tout à "
+"droite, à côté de l&rsquo;adresse du site, permet de modifier le site."
 
 #: wp-admin/network/users.php:236
-msgid "You can also go to the user&#8217;s profile page by clicking on the individual username."
-msgstr "Vous pouvez également aller sur la page de profil d&rsquo;un utilisateur en cliquant sur son identifiant."
+msgid ""
+"You can also go to the user&#8217;s profile page by clicking on the "
+"individual username."
+msgstr ""
+"Vous pouvez également aller sur la page de profil d&rsquo;un utilisateur en "
+"cliquant sur son identifiant."
 
 #: wp-admin/network/users.php:237
-msgid "You can sort the table by clicking on any of the bold headings and switch between list and excerpt views by using the icons in the upper right."
-msgstr "Un clic sur le titre d&rsquo;une colonne permet de changer le tri du tableau. Les icônes en haut à droit permettent d&rsquo;afficher des extraits ou non."
+msgid ""
+"You can sort the table by clicking on any of the bold headings and switch "
+"between list and excerpt views by using the icons in the upper right."
+msgstr ""
+"Un clic sur le titre d&rsquo;une colonne permet de changer le tri du "
+"tableau. Les icônes en haut à droit permettent d&rsquo;afficher des extraits "
+"ou non."
 
 #: wp-admin/network/users.php:238
-msgid "The bulk action will permanently delete selected users, or mark/unmark those selected as spam. Spam users will have posts removed and will be unable to sign up again with the same email addresses."
-msgstr "Le menu &laquo;&nbsp;Actions groupées&nbsp;&raquo; permet d&rsquo;effacer définitivement plusieurs utilisateurs d&rsquo;un coup, ou de les marquer comme sains ou indésirables. Les utilisateurs indésirables verront leurs articles supprimés, et ne pourront plus se connecter avec leur adresse de messagerie."
+msgid ""
+"The bulk action will permanently delete selected users, or mark/unmark those "
+"selected as spam. Spam users will have posts removed and will be unable to "
+"sign up again with the same email addresses."
+msgstr ""
+"Le menu &laquo;&nbsp;Actions groupées&nbsp;&raquo; permet d&rsquo;effacer "
+"définitivement plusieurs utilisateurs d&rsquo;un coup, ou de les marquer "
+"comme sains ou indésirables. Les utilisateurs indésirables verront leurs "
+"articles supprimés, et ne pourront plus se connecter avec leur adresse de "
+"messagerie."
 
 #: wp-admin/network/users.php:239
-msgid "You can make an existing user an additional super admin by going to the Edit User profile page and checking the box to grant that privilege."
-msgstr "Vous pouvez promouvoir un utilisateur existant en super-admin en allant sur leur page de profil, et en cochant la case correspondante."
+msgid ""
+"You can make an existing user an additional super admin by going to the Edit "
+"User profile page and checking the box to grant that privilege."
+msgstr ""
+"Vous pouvez promouvoir un utilisateur existant en super-admin en allant sur "
+"leur page de profil, et en cochant la case correspondante."
 
 #: wp-admin/network/users.php:259
 msgid "Users marked as spam."
@@ -907,284 +1201,503 @@
 
 #: wp-admin/network.php:27
 msgid "The Network creation panel is not for WordPress MU networks."
-msgstr "Le panneau de création de réseau n&rsquo;est pas conçu pour les réseaux WordPress MU."
+msgstr ""
+"Le panneau de création de réseau n&rsquo;est pas conçu pour les réseaux "
+"WordPress MU."
 
 #: wp-admin/network.php:96
-msgid "You must define the <code>WP_ALLOW_MULTISITE</code> constant as true in your wp-config.php file to allow creation of a Network."
-msgstr "Afin d&rsquo;autoriser la création d&rsquo;un réseau, vous devez définir la constante <code>WP_ALLOW_MULTISITE</code> comme &laquo;&nbsp;true&nbsp;&raquo; dans votre fichier wp-config.php."
+msgid ""
+"You must define the <code>WP_ALLOW_MULTISITE</code> constant as true in your "
+"wp-config.php file to allow creation of a Network."
+msgstr ""
+"Afin d&rsquo;autoriser la création d&rsquo;un réseau, vous devez définir la "
+"constante <code>WP_ALLOW_MULTISITE</code> comme &laquo;&nbsp;true&nbsp;"
+"&raquo; dans votre fichier wp-config.php."
 
 #: wp-admin/network.php:102
 msgid "Create a Network of WordPress Sites"
 msgstr "Créer un réseau de sites WordPress"
 
 #: wp-admin/network.php:106
-msgid "This screen allows you to configure a network as having subdomains (<code>site1.example.com</code>) or subdirectories (<code>example.com/site1</code>). Subdomains require wildcard subdomains to be enabled in Apache and DNS records, if your host allows it."
-msgstr "Cet écran vous permet de configurer un réseau, sous la forme sous-domaines (<code>site1.example.com</code>) ou sous-dossiers (<code>example.com/site1</code>). La forme sous-domaines nécessite une entrée de sous-domaine générique (<i>wildcard</i>) dans les enregistrements DNS et la configuration Apache, si votre hébergeur le permet."
+msgid ""
+"This screen allows you to configure a network as having subdomains "
+"(<code>site1.example.com</code>) or subdirectories (<code>example.com/site1</"
+"code>). Subdomains require wildcard subdomains to be enabled in Apache and "
+"DNS records, if your host allows it."
+msgstr ""
+"Cet écran vous permet de configurer un réseau, sous la forme sous-domaines "
+"(<code>site1.example.com</code>) ou sous-dossiers (<code>example.com/site1</"
+"code>). La forme sous-domaines nécessite une entrée de sous-domaine "
+"générique (<i>wildcard</i>) dans les enregistrements DNS et la configuration "
+"Apache, si votre hébergeur le permet."
 
 #: wp-admin/network.php:107
-msgid "Choose subdomains or subdirectories; this can only be switched afterwards by reconfiguring your install. Fill out the network details, and click install. If this does not work, you may have to add a wildcard DNS record (for subdomains) or change to another setting in Permalinks (for subdirectories)."
-msgstr "Faites le choix entre sous-domaines ou sous-dossiers. Une fois l&rsquo;installation configurée, vous ne pourrez pas revenir en arrière sans recommencer à zéro. Saisissez tous les détails, et cliquez sur &laquo;&nbsp;Installer&nbsp;&raquo;. Si cela ne marche pas, vous devrez sans doute ajouter une entrée de sous-domaine générique (wildcard) dans vos enregistrements DNS, ou passer à un réglage différent pour vos permaliens (si en mode sous-dossiers)."
+msgid ""
+"Choose subdomains or subdirectories; this can only be switched afterwards by "
+"reconfiguring your install. Fill out the network details, and click install. "
+"If this does not work, you may have to add a wildcard DNS record (for "
+"subdomains) or change to another setting in Permalinks (for subdirectories)."
+msgstr ""
+"Faites le choix entre sous-domaines ou sous-dossiers. Une fois l&rsquo;"
+"installation configurée, vous ne pourrez pas revenir en arrière sans "
+"recommencer à zéro. Saisissez tous les détails, et cliquez sur &laquo;&nbsp;"
+"Installer&nbsp;&raquo;. Si cela ne marche pas, vous devrez sans doute "
+"ajouter une entrée de sous-domaine générique (wildcard) dans vos "
+"enregistrements DNS, ou passer à un réglage différent pour vos permaliens "
+"(si en mode sous-dossiers)."
 
 #: wp-admin/network.php:108
-msgid "The next screen for Network Setup will give you individually-generated lines of code to add to your wp-config.php and .htaccess files. Make sure the settings of your FTP client make files starting with a dot visible, so that you can find .htaccess; you may have to create this file if it really is not there. Make backup copies of those two files."
-msgstr "L&rsquo;écran suivant vous présentera un ensemble de lignes de code générées à partir de votre configuration, qu&rsquo;il vous faudra ajouter à vos fichiers <code>wp-config.php</code> et <code>.htaccess</code>. Veillez bien à ce que votre client FTP soit configuré pour afficher les fichiers commençant par un point, afin que vous puissiez trouver le fichier <code>.htaccess</code>. Il est possible que vous ayez à créer ce fichier s&rsquo;il n&rsquo;est pas déjà présent. Avant toute modification de <code>wp-config.php</code> et <code>.htaccess</code>, faites-en une copie de sauvegarde."
+msgid ""
+"The next screen for Network Setup will give you individually-generated lines "
+"of code to add to your wp-config.php and .htaccess files. Make sure the "
+"settings of your FTP client make files starting with a dot visible, so that "
+"you can find .htaccess; you may have to create this file if it really is not "
+"there. Make backup copies of those two files."
+msgstr ""
+"L&rsquo;écran suivant vous présentera un ensemble de lignes de code générées "
+"à partir de votre configuration, qu&rsquo;il vous faudra ajouter à vos "
+"fichiers <code>wp-config.php</code> et <code>.htaccess</code>. Veillez bien "
+"à ce que votre client FTP soit configuré pour afficher les fichiers "
+"commençant par un point, afin que vous puissiez trouver le fichier <code>."
+"htaccess</code>. Il est possible que vous ayez à créer ce fichier s&rsquo;il "
+"n&rsquo;est pas déjà présent. Avant toute modification de <code>wp-config."
+"php</code> et <code>.htaccess</code>, faites-en une copie de sauvegarde."
 
 #: wp-admin/network.php:109
-msgid "Add a <code>blogs.dir</code> directory under <code>/wp-content</code> and add the designated lines of code to wp-config.php (just before <code>/*...stop editing...*/</code>) and <code>.htaccess</code> (replacing the existing WordPress rules)."
-msgstr "Ajouter le dossier <code>blogs.dir</code> dans le dossier <code>/wp-content/</code> et ajouter les lignes de code désignées dans le fichier <code>wp-config.php</code> (juste avant <code>/*...stop editing...*/</code>) et le fichier <code>.htaccess</code> (remplace les règles existantes de WordPress)."
+msgid ""
+"Add the designated lines of code to wp-config.php (just before <code>/*..."
+"stop editing...*/</code>) and <code>.htaccess</code> (replacing the existing "
+"WordPress rules)."
+msgstr ""
+"Ajoutez les lignes de code désignées dans le fichier <code>wp-config.php</"
+"code> (juste avant <code>/*...stop editing...*/</code>) et le fichier <code>."
+"htaccess</code> (en remplaçant les règles existantes de WordPress)."
 
 #: wp-admin/network.php:110
-msgid "Once you add this code and refresh your browser, multisite should be enabled. This screen, now in the Network Admin navigation menu, will keep an archive of the added code. You can toggle between Network Admin and Site Admin by clicking on the Network Admin or an individual site name under the My Sites dropdown in the Toolbar."
-msgstr "Une fois que vous aurez ajouté ce code et rafraîchi la page dans votre navigateur, le mode multisite devrait être activé. Cet écran, désormais placé dans le menu de navigation Admin du Réseau, conservera une archive du code ajouté. Vous pouvez basculer de l&rsquo;administration du réseau à l&rsquo;administration du site en cliquant sur &laquo;&nbsp;Admin du réseau&nbsp;&raquo;, ou en cliquant sur le nom d&rsquo;un site individuel dans le menu déroulant &laquo;&nbsp;Mes Sites&nbsp;&raquo; de la barre d&rsquo;outils."
+msgid ""
+"Once you add this code and refresh your browser, multisite should be "
+"enabled. This screen, now in the Network Admin navigation menu, will keep an "
+"archive of the added code. You can toggle between Network Admin and Site "
+"Admin by clicking on the Network Admin or an individual site name under the "
+"My Sites dropdown in the Toolbar."
+msgstr ""
+"Une fois que vous aurez ajouté ce code et rafraîchi la page dans votre "
+"navigateur, le mode multisite devrait être activé. Cet écran, désormais "
+"placé dans le menu de navigation Admin du Réseau, conservera une archive du "
+"code ajouté. Vous pouvez basculer de l&rsquo;administration du réseau à "
+"l&rsquo;administration du site en cliquant sur &laquo;&nbsp;Admin du "
+"réseau&nbsp;&raquo;, ou en cliquant sur le nom d&rsquo;un site individuel "
+"dans le menu déroulant &laquo;&nbsp;Mes Sites&nbsp;&raquo; de la barre "
+"d&rsquo;outils."
 
 #: wp-admin/network.php:111
-msgid "The choice of subdirectory sites is disabled if this setup is more than a month old because of permalink problems with &#8220;/blog/&#8221; from the main site. This disabling will be addressed in a future version."
-msgstr "Le choix d&rsquo;avoir des sites en mode sous-répertoire est désactivé si le réseau a été installé il y a un mois ou plus, afin de pallier les problèmes de permaliens avec l&rsquo;ajout de &laquo;&nbsp;/blog/&nbsp;&raquo; sur les adresses du site principal. Cette limitation sera corrigée dans une prochaine version."
+msgid ""
+"The choice of subdirectory sites is disabled if this setup is more than a "
+"month old because of permalink problems with &#8220;/blog/&#8221; from the "
+"main site. This disabling will be addressed in a future version."
+msgstr ""
+"Le choix d&rsquo;avoir des sites en mode sous-répertoire est désactivé si le "
+"réseau a été installé il y a un mois ou plus, afin de pallier les problèmes "
+"de permaliens avec l&rsquo;ajout de &laquo;&nbsp;/blog/&nbsp;&raquo; sur les "
+"adresses du site principal. Cette limitation sera corrigée dans une "
+"prochaine version."
 
-#: wp-admin/network.php:113
-#: wp-admin/network.php:124
-msgid "<a href=\"http://codex.wordpress.org/Create_A_Network\" target=\"_blank\">Documentation on Creating a Network</a>"
-msgstr "<a href=\"http://codex.wordpress.org/Create_A_Network\" target=\"_blank\">Documentation sur la création d&rsquo;un réseau de sites</a>"
+#: wp-admin/network.php:113 wp-admin/network.php:124
+msgid ""
+"<a href=\"http://codex.wordpress.org/Create_A_Network\" target=\"_blank"
+"\">Documentation on Creating a Network</a>"
+msgstr ""
+"<a href=\"http://codex.wordpress.org/Create_A_Network\" target=\"_blank"
+"\">Documentation sur la création d&rsquo;un réseau de sites</a>"
 
-#: wp-admin/network.php:114
-#: wp-admin/network.php:125
-msgid "<a href=\"http://codex.wordpress.org/Tools_Network_Screen\" target=\"_blank\">Documentation on the Network Screen</a>"
-msgstr "<a href=\"http://codex.wordpress.org/Tools_Network_Screen\" target=\"_blank\">Documentation sur l&rsquo;écran Outils > Réseau (en)</a>"
+#: wp-admin/network.php:114 wp-admin/network.php:125
+msgid ""
+"<a href=\"http://codex.wordpress.org/Tools_Network_Screen\" target=\"_blank"
+"\">Documentation on the Network Screen</a>"
+msgstr ""
+"<a href=\"http://codex.wordpress.org/Tools_Network_Screen\" target=\"_blank"
+"\">Documentation sur l&rsquo;écran Outils > Réseau (en)</a>"
 
 #: wp-admin/network.php:118
 msgid "Network"
 msgstr "Réseau"
 
 #: wp-admin/network.php:148
-msgid "Your <strong>WordPress address</strong> must match your <strong>Site address</strong> before creating a Network. See <a href=\"%s\">General Settings</a>."
-msgstr "Votre <strong>adresse WordPress</strong> doit correspondre à votre <strong>adresse de site</strong> avant de pouvoir créer un réseau. Voir les <a href=\"%s\">réglages généraux</a>."
+msgid ""
+"The constant DO_NOT_UPGRADE_GLOBAL_TABLES cannot be defined when creating a "
+"network."
+msgstr ""
+"La constante DO_NOT_UPGRADE_GLOBAL_TABLES ne doit pas être définie lors de "
+"la création du réseau."
 
-#: wp-admin/network.php:155
-msgid "The constant DO_NOT_UPGRADE_GLOBAL_TABLES cannot be defined when creating a network."
-msgstr "La constante DO_NOT_UPGRADE_GLOBAL_TABLES ne doit pas être définie lors de la création du réseau."
-
-#: wp-admin/network.php:163
-#: wp-admin/network.php:341
-#: wp-admin/network.php:366
+#: wp-admin/network.php:156 wp-admin/network.php:343 wp-admin/network.php:466
+#: wp-admin/network.php:500
 msgid "Warning:"
 msgstr "Attention&nbsp;:"
 
-#: wp-admin/network.php:163
-msgid "Please <a href=\"%s\">deactivate your plugins</a> before enabling the Network feature."
-msgstr "Veuillez <a href=\"%s\">désactiver vos extensions</a> avant la mise en place de votre réseau de sites."
+#: wp-admin/network.php:156
+msgid ""
+"Please <a href=\"%s\">deactivate your plugins</a> before enabling the "
+"Network feature."
+msgstr ""
+"Veuillez <a href=\"%s\">désactiver vos extensions</a> avant la mise en place "
+"de votre réseau de sites."
 
-#: wp-admin/network.php:163
+#: wp-admin/network.php:156
 msgid "Once the network is created, you may reactivate your plugins."
 msgstr "Une fois le réseau créé, vous pourrez réactiver vos extensions."
 
-#: wp-admin/network.php:172
+#: wp-admin/network.php:165
 msgid "You cannot install a network of sites with your server address."
-msgstr "Vous ne pouvez pas installer de réseau de sites avec cette adresse serveur."
+msgstr ""
+"Vous ne pouvez pas installer de réseau de sites avec cette adresse serveur."
 
-#: wp-admin/network.php:173
+#: wp-admin/network.php:166
 msgid "You cannot use port numbers such as <code>%s</code>."
-msgstr "Vous ne pouvez pas utiliser de numéros de port tels que <code>%s</code>."
+msgstr ""
+"Vous ne pouvez pas utiliser de numéros de port tels que <code>%s</code>."
 
-#: wp-admin/network.php:174
+#: wp-admin/network.php:167
 msgid "Return to Dashboard"
 msgstr "Revenir au tableau de bord"
 
-#: wp-admin/network.php:186
+#: wp-admin/network.php:179
 msgid "ERROR: The network could not be created."
 msgstr "ERREUR&nbsp;: le réseau n&rsquo;a pas pu être créé."
 
-#: wp-admin/network.php:194
-#: wp-admin/network.php:214
-#: wp-admin/network.php:262
-#: wp-admin/network.php:272
-msgid "Warning!"
-msgstr "Attention&nbsp;!"
-
-#: wp-admin/network.php:194
-#: wp-admin/network.php:366
-msgid "Networks may not be fully compatible with custom wp-content directories."
-msgstr "Les réseaux peuvent ne pas être complètement compatibles avec les dossiers <code>/wp-content</code> personnalisés."
-
 # Nom par défaut du réseau de sites.
-#: wp-admin/network.php:196
+#: wp-admin/network.php:186
 msgctxt "Default network name"
 msgid "%s Sites"
 msgstr "Réseau %s"
 
-#: wp-admin/network.php:199
+#: wp-admin/network.php:189
 msgid "Welcome to the Network installation process!"
 msgstr "Bienvenue dans le processus d&rsquo;installation du réseau&nbsp;!"
 
-#: wp-admin/network.php:200
-msgid "Fill in the information below and you&#8217;ll be on your way to creating a network of WordPress sites. We will create configuration files in the next step."
-msgstr "Complétez le formulaire ci-dessous et vous serez prêt à créer un réseau de sites WordPress. Nous créerons les fichiers de configurations à l&rsquo;étape suivante."
+#: wp-admin/network.php:190
+msgid ""
+"Fill in the information below and you&#8217;ll be on your way to creating a "
+"network of WordPress sites. We will create configuration files in the next "
+"step."
+msgstr ""
+"Complétez le formulaire ci-dessous et vous serez prêt à créer un réseau de "
+"sites WordPress. Nous créerons les fichiers de configurations à l&rsquo;"
+"étape suivante."
 
-#: wp-admin/network.php:212
+#: wp-admin/network.php:202
 msgid "Note:"
 msgstr "Note&nbsp;:"
 
-#: wp-admin/network.php:212
-msgid "Please make sure the Apache <code>mod_rewrite</code> module is installed as it will be used at the end of this installation."
-msgstr "Vérifiez bien que le module Apache <code>mod_rewrite</code> est installé, car il sera nécessaire à la fin de cette installation."
+#: wp-admin/network.php:202
+msgid ""
+"Please make sure the Apache <code>mod_rewrite</code> module is installed as "
+"it will be used at the end of this installation."
+msgstr ""
+"Vérifiez bien que le module Apache <code>mod_rewrite</code> est installé, "
+"car il sera nécessaire à la fin de cette installation."
+
+#: wp-admin/network.php:204 wp-admin/network.php:229 wp-admin/network.php:255
+#: wp-admin/network.php:265
+msgid "Warning!"
+msgstr "Attention&nbsp;!"
 
-#: wp-admin/network.php:214
-msgid "It looks like the Apache <code>mod_rewrite</code> module is not installed."
-msgstr "Il semble que le module Apache <code>mod_rewrite</code> n&rsquo;est pas installé."
+#: wp-admin/network.php:204
+msgid ""
+"It looks like the Apache <code>mod_rewrite</code> module is not installed."
+msgstr ""
+"Il semble que le module Apache <code>mod_rewrite</code> n&rsquo;est pas "
+"installé."
 
-#: wp-admin/network.php:216
-msgid "If <code>mod_rewrite</code> is disabled, ask your administrator to enable that module, or look at the <a href=\"http://httpd.apache.org/docs/mod/mod_rewrite.html\">Apache documentation</a> or <a href=\"http://www.google.com/search?q=apache+mod_rewrite\">elsewhere</a> for help setting it up."
-msgstr "Si le module <code>mod_rewrite</code> est désactivé, contactez votre administrateur pour l&rsquo;activer, ou lisez la <a href=\"http://httpd.apache.org/docs/mod/mod_rewrite.html\">documentation Apache officielle</a> <a href=\"http://www.google.fr/search?q=apache+mod_rewrite\">ou non</a>, pour comprendre comment le mettre en place."
+#: wp-admin/network.php:206
+msgid ""
+"If <code>mod_rewrite</code> is disabled, ask your administrator to enable "
+"that module, or look at the <a href=\"http://httpd.apache.org/docs/mod/"
+"mod_rewrite.html\">Apache documentation</a> or <a href=\"http://www.google."
+"com/search?q=apache+mod_rewrite\">elsewhere</a> for help setting it up."
+msgstr ""
+"Si le module <code>mod_rewrite</code> est désactivé, contactez votre "
+"administrateur pour l&rsquo;activer, ou lisez la <a href=\"http://httpd."
+"apache.org/docs/mod/mod_rewrite.html\">documentation Apache officielle</a> "
+"<a href=\"http://www.google.fr/search?q=apache+mod_rewrite\">ou non</a>, "
+"pour comprendre comment le mettre en place."
 
-#: wp-admin/network.php:220
+#: wp-admin/network.php:210
 msgid "Addresses of Sites in your Network"
 msgstr "Adresse des sites dans votre réseau"
 
-#: wp-admin/network.php:221
-msgid "Please choose whether you would like sites in your WordPress network to use sub-domains or sub-directories. <strong>You cannot change this later.</strong>"
-msgstr "Veuillez décider si vous voulez que les sites de votre installation WordPress utilisent des sous-domaines ou des sous-dossiers. <strong>Ce réglage est définitif, vous ne pourrez pas revenir en arrière.</strong>"
+#: wp-admin/network.php:211
+msgid ""
+"Please choose whether you would like sites in your WordPress network to use "
+"sub-domains or sub-directories. <strong>You cannot change this later.</"
+"strong>"
+msgstr ""
+"Veuillez décider si vous voulez que les sites de votre installation "
+"WordPress utilisent des sous-domaines ou des sous-dossiers. <strong>Ce "
+"réglage est définitif, vous ne pourrez pas revenir en arrière.</strong>"
 
-#: wp-admin/network.php:222
-msgid "You will need a wildcard DNS record if you are going to use the virtual host (sub-domain) functionality."
-msgstr "Vous aurez besoin d&rsquo;un enregistrement DNS générique (wildcard) pour permettre l&rsquo;utilisation de la forme sous-domaine (hôte virtuel)."
+#: wp-admin/network.php:212
+msgid ""
+"You will need a wildcard DNS record if you are going to use the virtual host "
+"(sub-domain) functionality."
+msgstr ""
+"Vous aurez besoin d&rsquo;un enregistrement DNS générique (wildcard) pour "
+"permettre l&rsquo;utilisation de la forme sous-domaine (hôte virtuel)."
 
-#: wp-admin/network.php:226
+#: wp-admin/network.php:216
 msgid "Sub-domains"
 msgstr "Sous-domaines"
 
-#: wp-admin/network.php:227
+#: wp-admin/network.php:217
 msgctxt "subdomain examples"
 msgid "like <code>site1.%1$s</code> and <code>site2.%1$s</code>"
 msgstr "comme <code>site1.%1$s</code> et <code>site2.%1$s</code>"
 
-#: wp-admin/network.php:230
+#: wp-admin/network.php:220
 msgid "Sub-directories"
 msgstr "Sous-dossiers"
 
-#: wp-admin/network.php:231
+#: wp-admin/network.php:221
 msgctxt "subdirectory examples"
 msgid "like <code>%1$s/site1</code> and <code>%1$s/site2</code>"
 msgstr "comme <code>%1$s/site1</code> et <code>%1$s/site2</code>"
 
-#: wp-admin/network.php:241
-#: wp-admin/network.php:245
-#: wp-admin/network.php:285
+#: wp-admin/network.php:229 wp-admin/network.php:466 wp-admin/network.php:500
+msgid ""
+"Subdirectory networks may not be fully compatible with custom wp-content "
+"directories."
+msgstr ""
+"Les réseaux dans un sous-dossier peuvent ne pas être complètement "
+"compatibles avec les dossiers <code>/wp-content</code> personnalisés."
+
+#: wp-admin/network.php:234 wp-admin/network.php:238 wp-admin/network.php:278
 msgid "Server Address"
 msgstr "Adresse du serveur"
 
-#: wp-admin/network.php:242
-msgid "We recommend you change your siteurl to <code>%1$s</code> before enabling the network feature. It will still be possible to visit your site using the <code>www</code> prefix with an address like <code>%2$s</code> but any links will not have the <code>www</code> prefix."
-msgstr "Nous vous recommandons de modifier votre réglage &laquo;&nbsp;siteurl&nbsp;&raquo; pour <code>%1$s</code> avec d&rsquo;activer la fonctionnalité de réseau. Il sera toujours possible de se rendre sur votre site par le biais du préfixe &laquo;&nbsp;www&nbsp;&raquo; avec une adresse comme <code>%2$s</code>, mais les liens n&rsquo;auront pas le préfixe &laquo;&nbsp;www&nbsp;&raquo;."
+#: wp-admin/network.php:235
+msgid ""
+"We recommend you change your siteurl to <code>%1$s</code> before enabling "
+"the network feature. It will still be possible to visit your site using the "
+"<code>www</code> prefix with an address like <code>%2$s</code> but any links "
+"will not have the <code>www</code> prefix."
+msgstr ""
+"Nous vous recommandons de modifier votre réglage &laquo;&nbsp;siteurl&nbsp;"
+"&raquo; pour <code>%1$s</code> avec d&rsquo;activer la fonctionnalité de "
+"réseau. Il sera toujours possible de se rendre sur votre site par le biais "
+"du préfixe &laquo;&nbsp;www&nbsp;&raquo; avec une adresse comme <code>%2$s</"
+"code>, mais les liens n&rsquo;auront pas le préfixe &laquo;&nbsp;www&nbsp;"
+"&raquo;."
 
-#: wp-admin/network.php:247
-#: wp-admin/network.php:287
+#: wp-admin/network.php:240 wp-admin/network.php:280
 msgid "The internet address of your network will be <code>%s</code>."
 msgstr "L&rsquo;adresse internet de votre réseau sera <code>%s</code>."
 
-#: wp-admin/network.php:253
+#: wp-admin/network.php:246
 msgid "Network Details"
 msgstr "Détails du réseau"
 
-#: wp-admin/network.php:257
-#: wp-admin/network.php:267
+#: wp-admin/network.php:250 wp-admin/network.php:260
 msgid "Sub-directory Install"
 msgstr "Installation dans un sous-dossier"
 
-#: wp-admin/network.php:259
-msgid "Because you are using <code>localhost</code>, the sites in your WordPress network must use sub-directories. Consider using <code>localhost.localdomain</code> if you wish to use sub-domains."
-msgstr "Vous utilisez <code>localhost</code>, donc les sites de votre réseau WordPress doivent utiliser des sous-dossiers. Songez à utiliser <code>localhost.localdomain</code> si vous préférez utiliser des sous-domaines."
+#: wp-admin/network.php:252
+msgid ""
+"Because you are using <code>localhost</code>, the sites in your WordPress "
+"network must use sub-directories. Consider using <code>localhost."
+"localdomain</code> if you wish to use sub-domains."
+msgstr ""
+"Vous utilisez <code>localhost</code>, donc les sites de votre réseau "
+"WordPress doivent utiliser des sous-dossiers. Songez à utiliser "
+"<code>localhost.localdomain</code> si vous préférez utiliser des sous-"
+"domaines."
+
+#: wp-admin/network.php:255 wp-admin/network.php:265 wp-admin/network.php:272
+msgid ""
+"The main site in a sub-directory install will need to use a modified "
+"permalink structure, potentially breaking existing links."
+msgstr ""
+"Le site principal installé dans un sous-dossier aura besoin d&rsquo;utiliser "
+"une structure de permaliens personnalisés, ce qui pourra potentiellement "
+"casser des liens existants."
 
 #: wp-admin/network.php:262
-#: wp-admin/network.php:272
-#: wp-admin/network.php:279
-msgid "The main site in a sub-directory install will need to use a modified permalink structure, potentially breaking existing links."
-msgstr "Le site principal installé dans un sous-dossier aura besoin d&rsquo;utiliser une structure de permaliens personnalisés, ce qui pourra potentiellement casser des liens existants."
+msgid ""
+"Because your install is in a directory, the sites in your WordPress network "
+"must use sub-directories."
+msgstr ""
+"Votre installation est située dans un dossier, donc les sites de votre "
+"réseau WordPress doivent forcément utiliser des sous-dossiers."
 
-#: wp-admin/network.php:269
-msgid "Because your install is in a directory, the sites in your WordPress network must use sub-directories."
-msgstr "Votre installation est située dans un dossier, donc les sites de votre réseau WordPress doivent forcément utiliser des sous-dossiers."
-
-#: wp-admin/network.php:277
+#: wp-admin/network.php:270
 msgid "Sub-domain Install"
 msgstr "Installation sous-domaine"
 
-#: wp-admin/network.php:278
-msgid "Because your install is not new, the sites in your WordPress network must use sub-domains."
-msgstr "Votre installation n&rsquo;est pas récente, donc les sites de votre réseau WordPress doivent utiliser les sous-domaines."
+#: wp-admin/network.php:271
+msgid ""
+"Because your install is not new, the sites in your WordPress network must "
+"use sub-domains."
+msgstr ""
+"Votre installation n&rsquo;est pas récente, donc les sites de votre réseau "
+"WordPress doivent utiliser les sous-domaines."
 
-#: wp-admin/network.php:292
+#: wp-admin/network.php:285
 msgid "Network Title"
 msgstr "Nom du réseau"
 
-#: wp-admin/network.php:295
+#: wp-admin/network.php:288
 msgid "What would you like to call your network?"
 msgstr "Quel nom voulez-vous donner à votre réseau&nbsp;?"
 
-#: wp-admin/network.php:299
+#: wp-admin/network.php:292
 msgid "Admin E-mail Address"
 msgstr "Adresse de contact de l&rsquo;administrateur"
 
-#: wp-admin/network.php:302
+#: wp-admin/network.php:295
 msgid "Your email address."
 msgstr "Votre adresse de contact."
 
-#: wp-admin/network.php:336
+#: wp-admin/network.php:338
 msgid "The original configuration steps are shown here for reference."
 msgstr "Pour rappel, voici les étapes de configuration originelles."
 
-#: wp-admin/network.php:341
+#: wp-admin/network.php:343
 msgid "An existing WordPress network was detected."
 msgstr "Un réseau WordPress existant a été détecté."
 
-#: wp-admin/network.php:342
-msgid "Please complete the configuration steps. To create a new network, you will need to empty or remove the network database tables."
-msgstr "Veuillez effectuer les étapes de configuration. Pour créer un nouveau réseau, vous devrez vider ou effacer les tables de la base de données du réseau."
+#: wp-admin/network.php:344
+msgid ""
+"Please complete the configuration steps. To create a new network, you will "
+"need to empty or remove the network database tables."
+msgstr ""
+"Veuillez effectuer les étapes de configuration. Pour créer un nouveau "
+"réseau, vous devrez vider ou effacer les tables de la base de données du "
+"réseau."
 
-#: wp-admin/network.php:349
+#: wp-admin/network.php:355
 msgid "Enabling the Network"
 msgstr "Activer le réseau de sites"
 
-#: wp-admin/network.php:350
-msgid "Complete the following steps to enable the features for creating a network of sites."
-msgstr "Suivez les étapes ci-après pour activer les fonctionnalités permettant la création d&rsquo;un réseau de sites."
+#: wp-admin/network.php:356
+msgid ""
+"Complete the following steps to enable the features for creating a network "
+"of sites."
+msgstr ""
+"Suivez les étapes ci-après pour activer les fonctionnalités permettant la "
+"création d&rsquo;un réseau de sites."
 
-#: wp-admin/network.php:353
-#: wp-admin/network.php:355
-msgid "<strong>Caution:</strong> We recommend you back up your existing <code>wp-config.php</code> and <code>%s</code> files."
-msgstr "<strong>Attention&nbsp;:</strong> nous vous recommandons de faire une copie de sauvegarde de vos fichiers <code>wp-config.php</code> et <code>%s</code> actuels."
+#: wp-admin/network.php:359 wp-admin/network.php:361
+msgid ""
+"<strong>Caution:</strong> We recommend you back up your existing <code>wp-"
+"config.php</code> and <code>%s</code> files."
+msgstr ""
+"<strong>Attention&nbsp;:</strong> nous vous recommandons de faire une copie "
+"de sauvegarde de vos fichiers <code>wp-config.php</code> et <code>%s</code> "
+"actuels."
+
+#: wp-admin/network.php:363
+msgid ""
+"<strong>Caution:</strong> We recommend you back up your existing <code>wp-"
+"config.php</code> file."
+msgstr ""
+"<strong>Attention&nbsp;:</strong> nous vous recommandons de faire une copie "
+"de sauvegarde de votre fichier <code>wp-config.php</code> actuel."
 
-#: wp-admin/network.php:357
-msgid "<strong>Caution:</strong> We recommend you back up your existing <code>wp-config.php</code> file."
-msgstr "<strong>Attention&nbsp;:</strong> nous vous recommandons de faire une copie de sauvegarde de votre fichier <code>wp-config.php</code> actuel."
+#: wp-admin/network.php:369
+msgid ""
+"Add the following to your <code>wp-config.php</code> file in <code>%s</code> "
+"<strong>above</strong> the line reading <code>/* That&#8217;s all, stop "
+"editing! Happy blogging. */</code>:"
+msgstr ""
+"Ajoutez les lignes suivantes à votre fichier <code>wp-config.php</code>, "
+"dans <code>%s</code>, au-dessus de la ligne <code>/* C&rsquo;est tout, ne "
+"touchez pas à ce qui suit ! Bon blogging ! */</code>&nbsp;:"
 
-#: wp-admin/network.php:364
-msgid "Create a <code>blogs.dir</code> directory at <code>%s/blogs.dir</code>. This directory is used to store uploaded media for your additional sites and must be writeable by the web server."
-msgstr "Créez le dossier <code>blogs.dir</code> à l&rsquo;emplacement <code>%s/blogs.dir</code>. Ce dossier sera utilisé pour stocker les fichiers mis en ligne pour les sites additionnels&nbsp;; il doit être accessible en écriture par votre serveur web."
+#: wp-admin/network.php:401
+msgid ""
+"This unique authentication key is also missing from your <code>wp-config."
+"php</code> file."
+msgid_plural ""
+"These unique authentication keys are also missing from your <code>wp-config."
+"php</code> file."
+msgstr[0] ""
+"Cette clef d&rsquo;authentification unique ne se trouve pas non plus dans "
+"votre fichier <code>wp-config.php</code>."
+msgstr[1] ""
+"Ces clefs d&rsquo;authentification uniques ne se trouvent pas non plus dans "
+"votre fichier <code>wp-config.php</code>."
 
-#: wp-admin/network.php:368
-msgid "Add the following to your <code>wp-config.php</code> file in <code>%s</code> <strong>above</strong> the line reading <code>/* That&#8217;s all, stop editing! Happy blogging. */</code>:"
-msgstr "Ajoutez les lignes suivantes à votre fichier <code>wp-config.php</code>, dans <code>%s</code>, au-dessus de la ligne <code>/* C&rsquo;est tout, ne touchez pas à ce qui suit ! Bon blogging ! */</code>&nbsp;:"
+#: wp-admin/network.php:401
+msgid "To make your installation more secure, you should also add:"
+msgstr ""
+"Pour mieux sécuriser votre installation, vous devriez également "
+"ajouter&nbsp;:"
 
-#: wp-admin/network.php:399
-msgid "This unique authentication key is also missing from your <code>wp-config.php</code> file."
-msgid_plural "These unique authentication keys are also missing from your <code>wp-config.php</code> file."
-msgstr[0] "Cette clef d&rsquo;authentification unique ne se trouve pas non plus dans votre fichier <code>wp-config.php</code>."
-msgstr[1] "Ces clefs d&rsquo;authentification uniques ne se trouvent pas non plus dans votre fichier <code>wp-config.php</code>."
+#: wp-admin/network.php:463
+msgid ""
+"Add the following to your <code>web.config</code> file in <code>%s</code>, "
+"replacing other WordPress rules:"
+msgstr ""
+"Ajoutez les lignes suivantes à votre fichier <code>web.config</code>, dans "
+"<code>%s</code>, en remplacement des autres règles liées à WordPress&nbsp;:"
+
+#: wp-admin/network.php:497
+msgid ""
+"Add the following to your <code>.htaccess</code> file in <code>%s</code>, "
+"replacing other WordPress rules:"
+msgstr ""
+"Ajoutez les lignes suivantes à votre fichier <code>.htaccess</code>, dans "
+"<code>%s</code>, en remplacement des autres règles liées à WordPress&nbsp;:"
 
-#: wp-admin/network.php:399
-msgid "To make your installation more secure, you should also add:"
-msgstr "Pour mieux sécuriser votre installation, vous devriez également ajouter&nbsp;:"
+#: wp-admin/network.php:509
+msgid ""
+"Once you complete these steps, your network is enabled and configured. You "
+"will have to log in again."
+msgstr ""
+"Une fois les étapes effectuées, votre réseau sera activé et configuré. Vous "
+"devez maintenant vous reconnecter."
+
+#~ msgctxt "plugin editor"
+#~ msgid "Add New"
+#~ msgstr "Ajouter"
+
+#~ msgid "Only the characters a-z and 0-9 recommended."
+#~ msgstr ""
+#~ "N&rsquo;utilisez de préférence que des lettres (de a à z) et des chiffres "
+#~ "(de 0 à 9)."
 
-#: wp-admin/network.php:484
-msgid "Add the following to your <code>web.config</code> file in <code>%s</code>, replacing other WordPress rules:"
-msgstr "Ajoutez les lignes suivantes à votre fichier <code>web.config</code>, dans <code>%s</code>, en remplacement des autres règles liées à WordPress&nbsp;:"
+#~ msgid "Add User to This Site"
+#~ msgstr "Ajouter un utilisateur à ce site"
+
+#~ msgid ""
+#~ "You may add from existing network users, or set up a new user to add to "
+#~ "this site."
+#~ msgstr ""
+#~ "Vous pouvez ajouter des utilisateurs en provenance du réseau, ou créer un "
+#~ "nouvel utilisateur à ajouter à ce site."
+
+#~ msgid "You may add from existing network users to this site."
+#~ msgstr ""
+#~ "Vous pouvez ajouter à ce site des utilisateurs existant sur le réseau de "
+#~ "sites."
 
-#: wp-admin/network.php:513
-msgid "Add the following to your <code>.htaccess</code> file in <code>%s</code>, replacing other WordPress rules:"
-msgstr "Ajoutez les lignes suivantes à votre fichier <code>.htaccess</code>, dans <code>%s</code>, en remplacement des autres règles liées à WordPress&nbsp;:"
+#~ msgid ""
+#~ "Your <strong>WordPress address</strong> must match your <strong>Site "
+#~ "address</strong> before creating a Network. See <a href=\"%s\">General "
+#~ "Settings</a>."
+#~ msgstr ""
+#~ "Votre <strong>adresse WordPress</strong> doit correspondre à votre "
+#~ "<strong>adresse de site</strong> avant de pouvoir créer un réseau. Voir "
+#~ "les <a href=\"%s\">réglages généraux</a>."
 
-#: wp-admin/network.php:521
-msgid "Once you complete these steps, your network is enabled and configured. You will have to log in again."
-msgstr "Une fois les étapes effectuées, votre réseau sera activé et configuré. Vous devez maintenant vous reconnecter."
+#~ msgid ""
+#~ "Create a <code>blogs.dir</code> directory at <code>%s/blogs.dir</code>. "
+#~ "This directory is used to store uploaded media for your additional sites "
+#~ "and must be writeable by the web server."
+#~ msgstr ""
+#~ "Créez le dossier <code>blogs.dir</code> à l&rsquo;emplacement <code>%s/"
+#~ "blogs.dir</code>. Ce dossier sera utilisé pour stocker les fichiers mis "
+#~ "en ligne pour les sites additionnels&nbsp;; il doit être accessible en "
+#~ "écriture par votre serveur web."
 
 #~ msgid ""
 #~ "Checkboxes for media upload buttons set which are shown in the visual "
Binary file web/wp-content/languages/continents-cities-fr_FR.mo has changed
--- a/web/wp-content/languages/continents-cities-fr_FR.po	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-content/languages/continents-cities-fr_FR.po	Wed Dec 19 17:46:52 2012 -0800
@@ -5,19 +5,19 @@
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: WordPress 3.4\n"
+"Project-Id-Version: WordPress 3.5\n"
 "Report-Msgid-Bugs-To: http://wppolyglots.wordpress.com\n"
 "POT-Creation-Date: 2012-02-09 22:38:43+00:00\n"
-"PO-Revision-Date: 2012-06-13 20:10+0100\n"
+"PO-Revision-Date: 2012-12-10 20:11+0100\n"
 "Last-Translator: WordPress Francophone <traduction_at_wordpress-fr.net>\n"
 "Language-Team: WordPress Francophone <traduction@wordpress-fr.net>\n"
+"Language: fr_FR\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=n>1\n"
-"X-Poedit-Language: French\n"
-"X-Poedit-Country: France\n"
-"X-Poedit-SourceCharset: utf-8\n"
+"Plural-Forms: nplurals=2; plural=n>1;\n"
+"X-Poedit-SourceCharset: UTF-8\n"
+"X-Generator: Poedit 1.5.4\n"
 
 #: wp-admin/includes/continents-cities.php:7
 msgid "Africa"
@@ -1983,4 +1983,3 @@
 #: wp-admin/includes/continents-cities.php:493
 msgid "Yap"
 msgstr ""
-
Binary file web/wp-content/languages/fr_FR.mo has changed
--- a/web/wp-content/languages/fr_FR.po	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-content/languages/fr_FR.po	Wed Dec 19 17:46:52 2012 -0800
@@ -5,37 +5,38 @@
 #
 msgid ""
 msgstr ""
-"Project-Id-Version: WordPress 3.4.1\n"
+"Project-Id-Version: WordPress 3.5\n"
 "Report-Msgid-Bugs-To: http://wppolyglots.wordpress.com\n"
-"POT-Creation-Date: 2012-06-12 19:18:15+00:00\n"
-"PO-Revision-Date: 2012-08-03 09:38+0100\n"
-"Last-Translator: Amaury Balmer <amaury@beapi.fr>\n"
+"POT-Creation-Date: 2012-12-09 20:18:31+00:00\n"
+"PO-Revision-Date: 2012-12-10 20:17+0100\n"
+"Last-Translator: WordPress Francophone <traduction_at_wordpress-fr.net>\n"
 "Language-Team: WordPress Francophone <traduction@wordpress-fr.net>\n"
+"Language: fr_FR\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=(n>1)\n"
+"Plural-Forms: nplurals=2; plural=(n>1);\n"
 "X-Poedit-SourceCharset: UTF-8\n"
 "X-Poedit-Bookmarks: -1,430,-1,-1,-1,-1,-1,-1,-1,-1\n"
-"Language: fr_FR\n"
-
-#: wp-activate.php:43
+"X-Generator: Poedit 1.5.4\n"
+
+#: wp-activate.php:61
 msgid "Activation Key Required"
 msgstr "Clef d&rsquo;activation requise"
 
-#: wp-activate.php:46
+#: wp-activate.php:64
 msgid "Activation Key:"
 msgstr "Clef d&rsquo;activation&nbsp;:"
 
-#: wp-activate.php:50
+#: wp-activate.php:68
 msgid "Activate"
 msgstr "Activer"
 
-#: wp-activate.php:62 wp-activate.php:82
+#: wp-activate.php:80 wp-activate.php:100
 msgid "Your account is now active!"
 msgstr "Votre compte est maintenant activé&nbsp;!"
 
-#: wp-activate.php:66
+#: wp-activate.php:84
 msgid ""
 "Your account has been activated. You may now <a href=\"%1$s\">log in</a> to "
 "the site using your chosen username of &#8220;%2$s&#8221;. Please check your "
@@ -53,7 +54,7 @@
 "de messagerie. Si vous ne recevez pas votre mot de passe dans moins d&rsquo;"
 "une heure, vous pouvez <a href=\"%4$s\">réinitialiser votre mot de passe</a>."
 
-#: wp-activate.php:68
+#: wp-activate.php:86
 msgid ""
 "Your site at <a href=\"%1$s\">%2$s</a> is active. You may now log in to your "
 "site using your chosen username of &#8220;%3$s&#8221;. Please check your "
@@ -71,19 +72,19 @@
 "de messagerie. Si vous ne recevez pas votre mot de passe dans moins d&rsquo;"
 "une heure, vous pouvez <a href=\"%5$s\">réinitialiser votre mot de passe</a>."
 
-#: wp-activate.php:73
+#: wp-activate.php:91
 msgid "An error occurred during the activation"
 msgstr "Une erreur est survenue lors de l&rsquo;activation"
 
-#: wp-activate.php:85 wp-signup.php:125
+#: wp-activate.php:103 wp-signup.php:125
 msgid "Username:"
 msgstr "Identifiant&nbsp;:"
 
-#: wp-activate.php:86 wp-includes/post-template.php:1222
+#: wp-activate.php:104 wp-includes/post-template.php:1227
 msgid "Password:"
 msgstr "Mot de passe&nbsp;:"
 
-#: wp-activate.php:90
+#: wp-activate.php:108
 msgid ""
 "Your account is now activated. <a href=\"%1$s\">View your site</a> or <a "
 "href=\"%2$s\">Log in</a>"
@@ -91,7 +92,7 @@
 "Votre compte est maintenant activé. <a href=\"%1$s\">Consultez votre site</"
 "a> ou <a href=\"%2$s\">connectez-vous</a>"
 
-#: wp-activate.php:92
+#: wp-activate.php:110
 msgid ""
 "Your account is now activated. <a href=\"%1$s\">Log in</a> or go back to the "
 "<a href=\"%2$s\">homepage</a>."
@@ -132,7 +133,7 @@
 "Please <a href=\"%s\">upgrade WordPress</a> to a current version, or <a href="
 "\"%s\">downgrade to version 2.4 of the Akismet plugin</a>."
 msgstr ""
-"Merci de <a href=\"%s\">mettre à jour WordPress</a> à la version actuelle, "
+"Veuillez <a href=\"%s\">mettre à jour WordPress</a> à la version actuelle, "
 "ou <a href=\"%s\">restaurer la version 2.4 du plugin Akismet</a>."
 
 #: wp-content/plugins/akismet/admin.php:27
@@ -144,8 +145,8 @@
 msgstr "Réglages"
 
 #: wp-content/plugins/akismet/admin.php:72
-#: wp-includes/class-wp-customize-manager.php:80
-#: wp-includes/script-loader.php:308
+#: wp-includes/class-wp-customize-manager.php:83
+#: wp-includes/script-loader.php:320
 msgid "Cheatin&#8217; uh?"
 msgstr "Alors, on triche&nbsp;?"
 
@@ -253,7 +254,8 @@
 #: wp-content/plugins/akismet/admin.php:164
 msgid "<a href=\"http://akismet.com/get/?return=true\">What is this?</a>"
 msgstr ""
-"<a href=\"http://akismet.com/get/?return=true\">De quoi s&rsquo;agit-il ?</a>"
+"<a href=\"http://akismet.com/get/?return=true\">De quoi s&rsquo;agit-"
+"il&nbsp;?</a>"
 
 #: wp-content/plugins/akismet/admin.php:166
 msgid "Why might my key be invalid?"
@@ -665,9 +667,9 @@
 msgid "Delete all"
 msgstr "Tout supprimer "
 
-#: wp-content/plugins/akismet/legacy.php:176 wp-includes/admin-bar.php:639
-#: wp-includes/class-wp-editor.php:786 wp-includes/default-widgets.php:194
-#: wp-includes/general-template.php:163
+#: wp-content/plugins/akismet/legacy.php:176 wp-includes/admin-bar.php:646
+#: wp-includes/class-wp-editor.php:831 wp-includes/default-widgets.php:194
+#: wp-includes/general-template.php:164 wp-includes/media.php:1485
 msgid "Search"
 msgstr "Recherche"
 
@@ -702,13 +704,13 @@
 
 #: wp-content/plugins/akismet/legacy.php:239
 #: wp-content/plugins/akismet/legacy.php:306
-#: wp-includes/link-template.php:1567 wp-includes/link-template.php:1603
+#: wp-includes/link-template.php:1606 wp-includes/link-template.php:1642
 msgid "&laquo; Previous Page"
 msgstr "&laquo; Page précédente"
 
 #: wp-content/plugins/akismet/legacy.php:260
 #: wp-content/plugins/akismet/legacy.php:327
-#: wp-includes/link-template.php:1496 wp-includes/link-template.php:1604
+#: wp-includes/link-template.php:1535 wp-includes/link-template.php:1643
 msgid "Next Page &raquo;"
 msgstr "Page suivante &raquo;"
 
@@ -720,7 +722,7 @@
 msgid "Not Spam"
 msgstr "N&rsquo;est pas un commentaire indésirable"
 
-#: wp-content/plugins/akismet/legacy.php:294 wp-includes/post.php:1240
+#: wp-content/plugins/akismet/legacy.php:294 wp-includes/post.php:1502
 msgid "View Post"
 msgstr "Afficher l&rsquo;article"
 
@@ -760,8 +762,8 @@
 #: wp-includes/default-widgets.php:215 wp-includes/default-widgets.php:281
 #: wp-includes/default-widgets.php:339 wp-includes/default-widgets.php:379
 #: wp-includes/default-widgets.php:425 wp-includes/default-widgets.php:511
-#: wp-includes/default-widgets.php:607 wp-includes/default-widgets.php:707
-#: wp-includes/default-widgets.php:1052 wp-includes/default-widgets.php:1125
+#: wp-includes/default-widgets.php:615 wp-includes/default-widgets.php:722
+#: wp-includes/default-widgets.php:1067 wp-includes/default-widgets.php:1140
 msgid "Title:"
 msgstr "Titre&nbsp;:"
 
@@ -789,7 +791,7 @@
 msgstr "WordPress.org"
 
 #: wp-includes/admin-bar.php:99 wp-includes/default-widgets.php:318
-#: wp-login.php:81
+#: wp-login.php:78
 msgid "http://wordpress.org/"
 msgstr "http://www.wordpress-fr.net/"
 
@@ -830,7 +832,7 @@
 msgid "Edit My Profile"
 msgstr "Modifier mon profil"
 
-#: wp-includes/admin-bar.php:198
+#: wp-includes/admin-bar.php:198 wp-includes/class-wp-admin-bar.php:357
 msgid "Log Out"
 msgstr "Se déconnecter"
 
@@ -842,7 +844,7 @@
 msgid "Global Dashboard: %s"
 msgstr "Tableau de bord global&nbsp;: %s"
 
-#: wp-includes/admin-bar.php:247 wp-includes/admin-bar.php:386
+#: wp-includes/admin-bar.php:247 wp-includes/admin-bar.php:387
 #: wp-includes/deprecated.php:2847
 msgid "Visit Site"
 msgstr "Aller sur le site"
@@ -852,7 +854,7 @@
 msgstr "Modifier le site"
 
 #: wp-includes/admin-bar.php:265 wp-includes/admin-bar.php:312
-#: wp-includes/admin-bar.php:364 wp-includes/deprecated.php:2849
+#: wp-includes/admin-bar.php:362 wp-includes/deprecated.php:2849
 #: wp-includes/deprecated.php:2851
 msgid "Dashboard"
 msgstr "Tableau de bord"
@@ -877,75 +879,66 @@
 msgid "Visit Network"
 msgstr "Afficher le réseau"
 
-#: wp-includes/admin-bar.php:349
-msgid "Blavatar"
-msgstr "Blavatar"
-
-#: wp-includes/admin-bar.php:372 wp-includes/post.php:1239
+#: wp-includes/admin-bar.php:370 wp-includes/post.php:1501
 msgid "New Post"
 msgstr "Nouvel article"
 
-#: wp-includes/admin-bar.php:378
+#: wp-includes/admin-bar.php:379
 msgid "Manage Comments"
 msgstr "Gérer les commentaires"
 
-#: wp-includes/admin-bar.php:408
+#: wp-includes/admin-bar.php:411
 msgid "Shortlink"
 msgstr "Lien court"
 
-#: wp-includes/admin-bar.php:493
-msgctxt "add new from admin bar"
-msgid "Media"
-msgstr "Fichier multimédia"
-
-#: wp-includes/admin-bar.php:496
+#: wp-includes/admin-bar.php:499
 msgctxt "add new from admin bar"
 msgid "Link"
 msgstr "Lien"
 
-#: wp-includes/admin-bar.php:513
+#: wp-includes/admin-bar.php:519
 msgctxt "add new from admin bar"
 msgid "User"
 msgstr "Utilisateur"
 
-#: wp-includes/admin-bar.php:518
+#: wp-includes/admin-bar.php:524
 msgctxt "admin bar menu group label"
 msgid "New"
 msgstr "Nouveau"
 
 # contexte
-#: wp-includes/admin-bar.php:525
+#: wp-includes/admin-bar.php:531
 msgctxt "admin bar menu group label"
 msgid "Add New"
 msgstr "Ajouter"
 
-#: wp-includes/admin-bar.php:552
+#: wp-includes/admin-bar.php:558
 msgid "%s comment awaiting moderation"
 msgid_plural "%s comments awaiting moderation"
 msgstr[0] "%s commentaire en attente de modération"
 msgstr[1] "%s commentaires en attente de modération"
 
-#: wp-includes/admin-bar.php:574
+#: wp-includes/admin-bar.php:580
 msgid "Themes"
 msgstr "Thèmes"
 
-#: wp-includes/admin-bar.php:583
+#: wp-includes/admin-bar.php:589
 msgid "Customize"
 msgstr "Personnaliser"
 
-#: wp-includes/admin-bar.php:592 wp-includes/functions.php:2557
+#: wp-includes/admin-bar.php:598 wp-includes/functions.php:2676
 msgid "Widgets"
 msgstr "Widgets"
 
-#: wp-includes/admin-bar.php:595
+#: wp-includes/admin-bar.php:601
 msgid "Menus"
 msgstr "Menus"
 
-#: wp-includes/admin-bar.php:598 wp-includes/js/tinymce/langs/wp-langs.php:410
+#: wp-includes/admin-bar.php:604 wp-includes/js/tinymce/langs/wp-langs.php:413
 msgid "Background"
 msgstr "Arrière-plan"
 
-#: wp-includes/admin-bar.php:601
+#: wp-includes/admin-bar.php:607
 msgid "Header"
 msgstr "En-tête"
 
@@ -961,28 +954,28 @@
 "Utilisez plutôt <code>get_the_author()</code> si vous préférez que la valeur "
 "ne soit pas affichée."
 
-#: wp-includes/author-template.php:138
+#: wp-includes/author-template.php:137
 msgid "Visit %s&#8217;s website"
 msgstr "Aller sur le site de %s"
 
-#: wp-includes/author-template.php:206 wp-includes/author-template.php:320
+#: wp-includes/author-template.php:204 wp-includes/author-template.php:318
 msgid "Posts by %s"
 msgstr "Articles par %s"
 
-#: wp-includes/bookmark-template.php:82
+#: wp-includes/bookmark-template.php:81
 msgid "Last updated: %s"
 msgstr "Dernière mise à jour&nbsp;: %s"
 
-#: wp-includes/bookmark-template.php:206
+#: wp-includes/bookmark-template.php:205
 msgid "Bookmarks"
 msgstr "Favoris"
 
-#: wp-includes/capabilities.php:547 wp-includes/capabilities.php:567
-#: wp-includes/capabilities.php:593
+#: wp-includes/capabilities.php:590 wp-includes/capabilities.php:610
+#: wp-includes/capabilities.php:636
 msgid "Use <code>WP_User->ID</code> instead."
 msgstr "Utilisez plutôt <code>WP_User->ID</code>."
 
-#: wp-includes/capabilities.php:866
+#: wp-includes/capabilities.php:920
 msgid ""
 "Usage of user levels by plugins and themes is deprecated. Use roles and "
 "capabilities instead."
@@ -1043,7 +1036,7 @@
 "Le dossier de destination pour la diffusion de fichier n&rsquo;existe pas ou "
 "n&rsquo;est pas accessible en écriture."
 
-#: wp-includes/class-http.php:248
+#: wp-includes/class-http.php:244
 msgid ""
 "There are no HTTP transports available which can complete the requested "
 "request."
@@ -1051,17 +1044,17 @@
 "Il n&rsquo;y a pas de transport HTTP disponible pour mener à bien la requête "
 "demandée."
 
-#: wp-includes/class-http.php:744 wp-includes/class-http.php:926
-#: wp-includes/class-http.php:945 wp-includes/class-http.php:1125
+#: wp-includes/class-http.php:742 wp-includes/class-http.php:924
+#: wp-includes/class-http.php:943 wp-includes/class-http.php:1123
 msgid "Could not open handle for fopen() to %s"
 msgstr "Impossible d&rsquo;ouvrir le gestionnaire de fopen() pour %s"
 
-#: wp-includes/class-http.php:784 wp-includes/class-http.php:968
-#: wp-includes/class-http.php:1166 wp-includes/class-http.php:1185
+#: wp-includes/class-http.php:782 wp-includes/class-http.php:966
+#: wp-includes/class-http.php:1164 wp-includes/class-http.php:1183
 msgid "Too many redirects."
 msgstr "Trop de redirections."
 
-#: wp-includes/class-http.php:868
+#: wp-includes/class-http.php:866
 msgid "Malformed URL: %s"
 msgstr "Adresse web malformée&nbsp;: %s"
 
@@ -1138,138 +1131,64 @@
 msgid "Command failed "
 msgstr "Échec de la commande "
 
-#: wp-includes/class-wp-admin-bar.php:88
+#: wp-includes/class-wp-admin-bar.php:96
 msgid "The menu ID should not be empty."
 msgstr "L&rsquo;identifiant du menu ne devrait pas être vide."
 
-#: wp-includes/class-wp-atom-server.php:209
-msgid ""
-"AtomPub services are disabled on this site. An admin user can enable them at "
-"%s"
-msgstr ""
-"Les services AtomPub sont désactivés sur ce site. Un administrateur peut les "
-"activer à %s"
-
-#: wp-includes/class-wp-atom-server.php:244
-#: wp-includes/class-wp-atom-server.php:284
-msgid "Sorry, you do not have the right to access this site."
-msgstr ""
-"Désolé, vous n&rsquo;avez pas l&rsquo;autorisation d&rsquo;accéder à ce site."
-
-#: wp-includes/class-wp-atom-server.php:339
-msgid "Sorry, you do not have the right to edit/publish new posts."
-msgstr ""
-"Désolé, vous n&rsquo;avez pas l&rsquo;autorisation de modifier/publier de "
-"nouveaux articles."
-
-#: wp-includes/class-wp-atom-server.php:376
-#: wp-includes/class-wp-atom-server.php:562
-#: wp-includes/class-wp-atom-server.php:743
-#: wp-includes/class-wp-xmlrpc-server.php:1161
-#: wp-includes/class-wp-xmlrpc-server.php:3501
-#: wp-includes/class-wp-xmlrpc-server.php:3906
-msgid "Sorry, your entry could not be posted. Something wrong happened."
-msgstr ""
-"Désolé, votre entrée n&rsquo;a pas pu être publiée. Une erreur est survenue."
-
-#: wp-includes/class-wp-atom-server.php:402
-msgid "Sorry, you do not have the right to access this post."
-msgstr ""
-"Désolé, vous n&rsquo;avez pas l&rsquo;autorisation d&rsquo;accéder à cet "
-"article."
-
-#: wp-includes/class-wp-atom-server.php:433
-#: wp-includes/class-wp-atom-server.php:593
-#: wp-includes/class-wp-atom-server.php:663
-#: wp-includes/class-wp-atom-server.php:712
-#: wp-includes/class-wp-xmlrpc-server.php:3541
-#: wp-includes/class-wp-xmlrpc-server.php:3986
-msgid "Sorry, you do not have the right to edit this post."
-msgstr ""
-"Désolé, vous n&rsquo;avez pas l&rsquo;autorisation de modifier cet article."
-
-#: wp-includes/class-wp-atom-server.php:456
-#: wp-includes/class-wp-atom-server.php:609
-#: wp-includes/class-wp-xmlrpc-server.php:3557
-msgid ""
-"For some strange yet very annoying reason, this post could not be edited."
-msgstr "Pour une bien étrange raison, cet article n&rsquo;a pu être modifié."
-
-#: wp-includes/class-wp-atom-server.php:477
-#: wp-includes/class-wp-atom-server.php:628
-#: wp-includes/class-wp-xmlrpc-server.php:3593
-msgid "Sorry, you do not have the right to delete this post."
-msgstr ""
-"Désolé, vous n&rsquo;avez pas l&rsquo;autorisation de supprimer cet article."
-
-#: wp-includes/class-wp-atom-server.php:485
-#: wp-includes/class-wp-atom-server.php:643
-#: wp-includes/class-wp-xmlrpc-server.php:3598
-msgid ""
-"For some strange yet very annoying reason, this post could not be deleted."
-msgstr "Pour une bien étrange raison, cet article n&rsquo;a pu être supprimé."
-
-#: wp-includes/class-wp-atom-server.php:502
-#: wp-includes/class-wp-atom-server.php:523
-#: wp-includes/class-wp-atom-server.php:704
-#: wp-includes/class-wp-xmlrpc-server.php:2953
-#: wp-includes/class-wp-xmlrpc-server.php:2998
-#: wp-includes/class-wp-xmlrpc-server.php:4534
-msgid "You do not have permission to upload files."
-msgstr ""
-"Vous n&rsquo;avez pas l&rsquo;autorisation d&rsquo;envoyer des fichiers."
-
-#: wp-includes/class-wp-atom-server.php:634
-#: wp-includes/class-wp-atom-server.php:670
-#: wp-includes/class-wp-atom-server.php:721
-msgid "Error occurred while accessing post metadata for file location."
-msgstr ""
-"Une erreur est survenue pendant l&rsquo;accès aux métadonnées de l&rsquo;"
-"article concernant la localisation du fichier."
-
-#: wp-includes/class-wp-customize-control.php:222
-#: wp-includes/class-wp-customize-manager.php:870
+#: wp-includes/class-wp-admin-bar.php:351
+msgid "Skip to toolbar"
+msgstr "Aller à la barre d&rsquo;outils"
+
+#: wp-includes/class-wp-admin-bar.php:352
+msgid "Top navigation toolbar."
+msgstr "Barre de navigation supérieure."
+
+#: wp-includes/class-wp-customize-control.php:292
+#: wp-includes/class-wp-customize-manager.php:898
 msgid "&mdash; Select &mdash;"
 msgstr "&mdash; Sélectionner &mdash;"
 
-#: wp-includes/class-wp-customize-control.php:246
-#: wp-includes/class-wp-customize-control.php:431
-#: wp-includes/class-wp-customize-control.php:470
-#: wp-includes/class-wp-customize-control.php:477
-#: wp-includes/js/tinymce/langs/wp-langs.php:246
+#: wp-includes/class-wp-customize-control.php:344
+#: wp-includes/class-wp-customize-control.php:663
+#: wp-includes/class-wp-customize-control.php:739
+#: wp-includes/class-wp-customize-control.php:768
+#: wp-includes/js/tinymce/langs/wp-langs.php:249
+#: wp-includes/script-loader.php:436
 msgid "Default"
 msgstr "Valeur par défaut"
 
-#: wp-includes/class-wp-customize-control.php:271
+#: wp-includes/class-wp-customize-control.php:387
 msgid "Hex Value"
 msgstr "Valeur hexadécimale"
 
-#: wp-includes/class-wp-customize-control.php:302
+#: wp-includes/class-wp-customize-control.php:444
 msgid "Upload"
 msgstr "Envoyer"
 
-#: wp-includes/class-wp-customize-control.php:303
+#: wp-includes/class-wp-customize-control.php:445
+#: wp-includes/media-template.php:148
 msgid "Remove"
 msgstr "Supprimer"
 
-#: wp-includes/class-wp-customize-control.php:318
-#: wp-includes/class-wp-customize-control.php:471
+#: wp-includes/class-wp-customize-control.php:480
+#: wp-includes/class-wp-customize-control.php:740
 msgid "No Image"
 msgstr "Aucune image"
 
-#: wp-includes/class-wp-customize-control.php:322
+#: wp-includes/class-wp-customize-control.php:484
 msgid "Upload New"
-msgstr "Envoi d&rsquo;un nouveau média"
-
-#: wp-includes/class-wp-customize-control.php:323
+msgstr "Mettre en ligne"
+
+#: wp-includes/class-wp-customize-control.php:485
 msgid "Uploaded"
 msgstr "Mis en ligne"
 
-#: wp-includes/class-wp-customize-control.php:370
+#: wp-includes/class-wp-customize-control.php:558
 msgid "Remove Image"
 msgstr "Retirer l&rsquo;image"
 
-#: wp-includes/class-wp-customize-control.php:390
+#: wp-includes/class-wp-customize-control.php:597
+#: wp-includes/media-template.php:51
 msgid ""
 "The web browser on your device cannot be used to upload files. You may be "
 "able to use the <a href=\"http://wordpress.org/extend/mobile/\">native app "
@@ -1279,129 +1198,132 @@
 "ligne. Vous devriez pouvoir le faire en passant par <a href=\"http://"
 "wordpress.org/extend/mobile/\">une application native</a>."
 
-#: wp-includes/class-wp-customize-control.php:395
+#: wp-includes/class-wp-customize-control.php:602
 msgid "Drop a file here or <a href=\"#\" class=\"upload\">select a file</a>."
 msgstr ""
 "Glissez un fichier ici ou <a href=\"#\" class=\"upload\">sélectionnez un "
 "fichier</a>"
 
-#: wp-includes/class-wp-customize-control.php:398
+#: wp-includes/class-wp-customize-control.php:605
 msgid "Select File"
 msgstr "Sélectionner un fichier"
 
-#: wp-includes/class-wp-customize-control.php:424
-#: wp-includes/class-wp-customize-manager.php:783
+#: wp-includes/class-wp-customize-control.php:656
+#: wp-includes/class-wp-customize-manager.php:811
 msgid "Background Image"
 msgstr "Image d&rsquo;arrière-plan"
 
-#: wp-includes/class-wp-customize-control.php:460
-#: wp-includes/class-wp-customize-manager.php:763
+#: wp-includes/class-wp-customize-control.php:729
+#: wp-includes/class-wp-customize-manager.php:791
 msgid "Header Image"
 msgstr "Image d&rsquo;en-tête"
 
 # Ne pas mettre d'entité HTML (&nbsp;...) : chaîne affichée dans l'éditeur visuel.
-#: wp-includes/class-wp-customize-control.php:472
+#: wp-includes/class-wp-customize-control.php:741
 msgid "Random Default Image"
-msgstr "Images par défaut au hasard"
-
-#: wp-includes/class-wp-customize-control.php:473
+msgstr "Images par défaut aléatoire"
+
+#: wp-includes/class-wp-customize-control.php:742
 msgid "Random Uploaded Image"
-msgstr "Image mise en ligne au hasard"
-
-#: wp-includes/class-wp-customize-manager.php:689
+msgstr "Image mise en ligne aléatoire"
+
+#: wp-includes/class-wp-customize-manager.php:717
 msgid "Site Title & Tagline"
 msgstr "Titre de site et description"
 
-#: wp-includes/class-wp-customize-manager.php:700
-#: wp-includes/class-wp-xmlrpc-server.php:360
+#: wp-includes/class-wp-customize-manager.php:728
+#: wp-includes/class-wp-xmlrpc-server.php:368
 msgid "Site Title"
 msgstr "Titre du site"
 
-#: wp-includes/class-wp-customize-manager.php:711
+#: wp-includes/class-wp-customize-manager.php:739
 msgid "Tagline"
 msgstr "Slogan"
 
-#: wp-includes/class-wp-customize-manager.php:718
+#: wp-includes/class-wp-customize-manager.php:746
 msgid "Colors"
 msgstr "Couleurs"
 
-#: wp-includes/class-wp-customize-manager.php:734
+#: wp-includes/class-wp-customize-manager.php:762
 msgid "Display Header Text"
 msgstr "Afficher le texte d&rsquo;en-tête"
 
-#: wp-includes/class-wp-customize-manager.php:740
+#: wp-includes/class-wp-customize-manager.php:768
 msgid "Header Text Color"
 msgstr "Couleur du texte d&rsquo;en-tête"
 
-#: wp-includes/class-wp-customize-manager.php:755
+#: wp-includes/class-wp-customize-manager.php:783
 msgid "Background Color"
 msgstr "Couleur d&rsquo;arrière-plan"
 
-#: wp-includes/class-wp-customize-manager.php:805
+#: wp-includes/class-wp-customize-manager.php:833
 msgid "Background Repeat"
 msgstr "Répétition de l&rsquo;arrière-plan"
 
-#: wp-includes/class-wp-customize-manager.php:809
+#: wp-includes/class-wp-customize-manager.php:837
 msgid "No Repeat"
 msgstr "Pas de répétition"
 
-#: wp-includes/class-wp-customize-manager.php:810
+#: wp-includes/class-wp-customize-manager.php:838
 msgid "Tile"
 msgstr "Motif répété"
 
-#: wp-includes/class-wp-customize-manager.php:811
+#: wp-includes/class-wp-customize-manager.php:839
 msgid "Tile Horizontally"
 msgstr "Répétition horizontale"
 
-#: wp-includes/class-wp-customize-manager.php:812
+#: wp-includes/class-wp-customize-manager.php:840
 msgid "Tile Vertically"
 msgstr "Répétition verticale"
 
-#: wp-includes/class-wp-customize-manager.php:822
+#: wp-includes/class-wp-customize-manager.php:850
 msgid "Background Position"
 msgstr "Position d&rsquo;arrière-plan"
 
 #. translators: alignment
-#: wp-includes/class-wp-customize-manager.php:826
-#: wp-includes/js/tinymce/langs/wp-langs.php:79
-#: wp-includes/js/tinymce/langs/wp-langs.php:372
-#: wp-includes/js/tinymce/langs/wp-langs.php:471
+#: wp-includes/class-wp-customize-manager.php:854
+#: wp-includes/js/tinymce/langs/wp-langs.php:82
+#: wp-includes/js/tinymce/langs/wp-langs.php:375
+#: wp-includes/js/tinymce/langs/wp-langs.php:474
+#: wp-includes/media-template.php:267 wp-includes/media-template.php:405
 msgid "Left"
 msgstr "Gauche"
 
 #. translators: alignment
-#: wp-includes/class-wp-customize-manager.php:827
-#: wp-includes/js/tinymce/langs/wp-langs.php:80
-#: wp-includes/js/tinymce/langs/wp-langs.php:451
-#: wp-includes/js/tinymce/langs/wp-langs.php:472
+#: wp-includes/class-wp-customize-manager.php:855
+#: wp-includes/js/tinymce/langs/wp-langs.php:83
+#: wp-includes/js/tinymce/langs/wp-langs.php:454
+#: wp-includes/js/tinymce/langs/wp-langs.php:475
+#: wp-includes/media-template.php:270 wp-includes/media-template.php:408
 msgid "Center"
 msgstr "Centre"
 
 #. translators: alignment
-#: wp-includes/class-wp-customize-manager.php:828
-#: wp-includes/js/tinymce/langs/wp-langs.php:81
-#: wp-includes/js/tinymce/langs/wp-langs.php:373
-#: wp-includes/js/tinymce/langs/wp-langs.php:469
+#: wp-includes/class-wp-customize-manager.php:856
+#: wp-includes/js/tinymce/langs/wp-langs.php:84
+#: wp-includes/js/tinymce/langs/wp-langs.php:376
+#: wp-includes/js/tinymce/langs/wp-langs.php:472
+#: wp-includes/media-template.php:273 wp-includes/media-template.php:411
 msgid "Right"
 msgstr "Droite"
 
-#: wp-includes/class-wp-customize-manager.php:838
+#: wp-includes/class-wp-customize-manager.php:866
 msgid "Background Attachment"
 msgstr "Image d&rsquo;arrière-plan"
 
-#: wp-includes/class-wp-customize-manager.php:842
+#: wp-includes/class-wp-customize-manager.php:870
 msgid "Fixed"
 msgstr "Fixe"
 
-#: wp-includes/class-wp-customize-manager.php:843
+#: wp-includes/class-wp-customize-manager.php:871
 msgid "Scroll"
 msgstr "Défilant"
 
-#: wp-includes/class-wp-customize-manager.php:863
+#: wp-includes/class-wp-customize-manager.php:891
 msgid "Navigation"
 msgstr "Navigation"
 
-#: wp-includes/class-wp-customize-manager.php:866
+#: wp-includes/class-wp-customize-manager.php:894
 msgid "Your theme supports %s menu. Select which menu you would like to use."
 msgid_plural ""
 "Your theme supports %s menus. Select which menu appears in each location."
@@ -1412,46 +1334,47 @@
 "Votre thème peut utiliser %s menus. Sélectionnez le menu que vous voudriez "
 "utiliser pour chaque emplacement."
 
-#: wp-includes/class-wp-customize-manager.php:866
+#: wp-includes/class-wp-customize-manager.php:894
 msgid ""
 "You can edit your menu content on the Menus screen in the Appearance section."
 msgstr ""
 "Vous pouvez modifier le contenu de votre menu par le biais de l&rsquo;écran "
 "Menus, dans la section Apparence."
 
-#: wp-includes/class-wp-customize-manager.php:898
+#: wp-includes/class-wp-customize-manager.php:926
 msgid "Static Front Page"
 msgstr "Page d&rsquo;accueil statique"
 
-#: wp-includes/class-wp-customize-manager.php:901
+#: wp-includes/class-wp-customize-manager.php:929
 msgid "Your theme supports a static front page."
 msgstr "Le thème actuel accepte les pages statiques."
 
-#: wp-includes/class-wp-customize-manager.php:912
+#: wp-includes/class-wp-customize-manager.php:940
 msgid "Front page displays"
 msgstr "La page d&rsquo;accueil affiche"
 
-#: wp-includes/class-wp-customize-manager.php:916
+#: wp-includes/class-wp-customize-manager.php:944
 msgid "Your latest posts"
 msgstr "Les derniers articles"
 
-#: wp-includes/class-wp-customize-manager.php:917
+#: wp-includes/class-wp-customize-manager.php:945
 msgid "A static page"
 msgstr "Une page statique"
 
-#: wp-includes/class-wp-customize-manager.php:928
+#: wp-includes/class-wp-customize-manager.php:956
 msgid "Front page"
 msgstr "Page d&rsquo;accueil"
 
-#: wp-includes/class-wp-customize-manager.php:940
+#: wp-includes/class-wp-customize-manager.php:968
 msgid "Posts page"
 msgstr "Page des articles"
 
-#: wp-includes/class-wp-editor.php:86 wp-includes/class-wp-editor.php:629
-msgid "HTML"
-msgstr "HTML"
-
-#: wp-includes/class-wp-editor.php:87 wp-includes/class-wp-editor.php:628
+#: wp-includes/class-wp-editor.php:114 wp-includes/class-wp-editor.php:674
+msgctxt "Name for the Text editor tab (formerly HTML)"
+msgid "Text"
+msgstr "Texte"
+
+#: wp-includes/class-wp-editor.php:115 wp-includes/class-wp-editor.php:673
 msgid "Visual"
 msgstr "Visuel"
 
@@ -1462,7 +1385,7 @@
 #. is the language name (which you may internationalize), and code is a
 #. valid ISO 639 language code. Please test the
 #. spellchecker with your values.
-#: wp-includes/class-wp-editor.php:267
+#: wp-includes/class-wp-editor.php:295
 msgid ""
 "English=en,Danish=da,Dutch=nl,Finnish=fi,French=fr,German=de,Italian=it,"
 "Polish=pl,Portuguese=pt,Spanish=es,Swedish=sv"
@@ -1470,138 +1393,187 @@
 "French=fr,Anglais=en,Danois=da,Néerlandais=nl,Finnois=fi,Allemand=de,"
 "Italien=it,Polonais=pl,Portuguais=pt,Espagnol=es,Suédois=sv"
 
-#: wp-includes/class-wp-editor.php:619
-#: wp-includes/js/tinymce/langs/wp-langs.php:18
-#: wp-includes/script-loader.php:277 wp-includes/script-loader.php:352
+#: wp-includes/class-wp-editor.php:664
+#: wp-includes/js/tinymce/langs/wp-langs.php:21
+#: wp-includes/script-loader.php:289 wp-includes/script-loader.php:382
 msgid "Update"
 msgstr "Mettre à jour"
 
-#: wp-includes/class-wp-editor.php:619
-#: wp-includes/js/tinymce/langs/wp-langs.php:118
+#: wp-includes/class-wp-editor.php:664
+#: wp-includes/js/tinymce/langs/wp-langs.php:121
 msgid "Save"
 msgstr "Enregistrer"
 
-#: wp-includes/class-wp-editor.php:624
+#: wp-includes/class-wp-editor.php:669
 msgid "Exit fullscreen"
 msgstr "Sortir du plein écran"
 
-#: wp-includes/class-wp-editor.php:637
-#: wp-includes/js/tinymce/langs/wp-langs.php:286
+#: wp-includes/class-wp-editor.php:682
+#: wp-includes/js/tinymce/langs/wp-langs.php:289
 msgid "Bold (Ctrl + B)"
 msgstr "Gras (Ctrl + B)"
 
-#: wp-includes/class-wp-editor.php:638
-#: wp-includes/js/tinymce/langs/wp-langs.php:287
+#: wp-includes/class-wp-editor.php:683
+#: wp-includes/js/tinymce/langs/wp-langs.php:290
 msgid "Italic (Ctrl + I)"
 msgstr "Italique (Ctrl + I)"
 
-#: wp-includes/class-wp-editor.php:640
-#: wp-includes/js/tinymce/langs/wp-langs.php:294
+#: wp-includes/class-wp-editor.php:685
+#: wp-includes/js/tinymce/langs/wp-langs.php:297
 msgid "Unordered list (Alt + Shift + U)"
 msgstr "Liste non ordonnée (Alt + Shift + U)"
 
-#: wp-includes/class-wp-editor.php:641
-#: wp-includes/js/tinymce/langs/wp-langs.php:295
+#: wp-includes/class-wp-editor.php:686
+#: wp-includes/js/tinymce/langs/wp-langs.php:298
 msgid "Ordered list (Alt + Shift + O)"
 msgstr "Liste ordonnée (Alt + Maj. + O)"
 
-#: wp-includes/class-wp-editor.php:643
-#: wp-includes/js/tinymce/langs/wp-langs.php:320
+#: wp-includes/class-wp-editor.php:688
+#: wp-includes/js/tinymce/langs/wp-langs.php:323
 msgid "Blockquote (Alt + Shift + Q)"
 msgstr "Bloc de citation (Alt + Maj. + Q)"
 
-#: wp-includes/class-wp-editor.php:644
-#: wp-includes/js/tinymce/langs/wp-langs.php:302
+#: wp-includes/class-wp-editor.php:689
+#: wp-includes/js/tinymce/langs/wp-langs.php:305
 msgid "Insert/edit image (Alt + Shift + M)"
 msgstr "Insérer/modifier une image (Alt + Shift + M)"
 
-#: wp-includes/class-wp-editor.php:646
-#: wp-includes/js/tinymce/langs/wp-langs.php:300
+#: wp-includes/class-wp-editor.php:691
+#: wp-includes/js/tinymce/langs/wp-langs.php:303
 msgid "Insert/edit link (Alt + Shift + A)"
 msgstr "Insérer/modifier un lien (Alt + Shift + A)"
 
-#: wp-includes/class-wp-editor.php:647
-#: wp-includes/js/tinymce/langs/wp-langs.php:301
+#: wp-includes/class-wp-editor.php:692
+#: wp-includes/js/tinymce/langs/wp-langs.php:304
 msgid "Unlink (Alt + Shift + S)"
 msgstr "Défaire le lien (Alt + Maj. + S)"
 
-#: wp-includes/class-wp-editor.php:649
-#: wp-includes/js/tinymce/langs/wp-langs.php:501
+#: wp-includes/class-wp-editor.php:694
+#: wp-includes/js/tinymce/langs/wp-langs.php:504
 msgid "Help (Alt + Shift + H)"
 msgstr "Aide (Alt + Maj. + H)"
 
-#: wp-includes/class-wp-editor.php:671
+#: wp-includes/class-wp-editor.php:718
 msgid "Updated."
 msgstr "Mis à jour."
 
-#: wp-includes/class-wp-editor.php:671
+#: wp-includes/class-wp-editor.php:718 wp-includes/media-template.php:180
 msgid "Saved."
 msgstr "Enregistré."
 
-#: wp-includes/class-wp-editor.php:682
+#: wp-includes/class-wp-editor.php:727
 msgid "Enter title here"
 msgstr "Saisissez le titre ici"
 
-#: wp-includes/class-wp-editor.php:691
+#: wp-includes/class-wp-editor.php:736
 msgid "Word count: %s"
 msgstr "Compteur de mots&nbsp;:&nbsp;%s"
 
-#: wp-includes/class-wp-editor.php:692
+#: wp-includes/class-wp-editor.php:737
 msgid "Just write."
 msgstr "Il ne reste plus qu&rsquo;à écrire."
 
-#: wp-includes/class-wp-editor.php:743
+#: wp-includes/class-wp-editor.php:788
 msgid "Y/m/d"
 msgstr "d/m/Y"
 
 # Pas d'entité HTML : utilisé dans un alert().
-#: wp-includes/class-wp-editor.php:770
+#: wp-includes/class-wp-editor.php:815
 msgid "Enter the destination URL"
 msgstr "Saisissez l&rsquo;adresse de destination"
 
-#: wp-includes/class-wp-editor.php:772
+#: wp-includes/class-wp-editor.php:817 wp-includes/media.php:1483
 msgid "URL"
 msgstr "Adresse web"
 
-#: wp-includes/class-wp-editor.php:775
-#: wp-includes/js/tinymce/langs/wp-langs.php:379
-#: wp-includes/js/tinymce/langs/wp-langs.php:543 wp-includes/post.php:4673
+#: wp-includes/class-wp-editor.php:820
+#: wp-includes/js/tinymce/langs/wp-langs.php:382
+#: wp-includes/js/tinymce/langs/wp-langs.php:547
+#: wp-includes/media-template.php:222 wp-includes/media-template.php:379
+#: wp-includes/post.php:4868
 msgid "Title"
 msgstr "Titre"
 
-#: wp-includes/class-wp-editor.php:778
+#: wp-includes/class-wp-editor.php:823
 msgid "Open link in a new window/tab"
 msgstr "Ouvrir le lien dans une nouvelle fenêtre/un nouvel onglet"
 
-#: wp-includes/class-wp-editor.php:782
+#: wp-includes/class-wp-editor.php:827
 msgid "Or link to existing content"
 msgstr "Ou alors, faites un lien vers l&rsquo;un des contenus de votre site"
 
-#: wp-includes/class-wp-editor.php:798
+#: wp-includes/class-wp-editor.php:843
 msgid "No search term specified. Showing recent items."
 msgstr ""
 "Aucun mot n&rsquo;a été donné pour cette recherche. Voici les recherches "
 "précédentes."
 
-#: wp-includes/class-wp-editor.php:808
-#: wp-includes/js/tinymce/langs/wp-langs.php:19
-#: wp-includes/script-loader.php:306 wp-includes/script-loader.php:344
-msgid "Cancel"
-msgstr "Annuler"
-
-#: wp-includes/class-wp-editor.php:811 wp-includes/script-loader.php:278
+#: wp-includes/class-wp-editor.php:853 wp-includes/script-loader.php:290
 msgid "Add Link"
 msgstr "Ajouter un lien"
 
-#: wp-includes/class-wp-theme.php:207
+#: wp-includes/class-wp-editor.php:856
+#: wp-includes/js/tinymce/langs/wp-langs.php:22 wp-includes/media.php:1487
+#: wp-includes/script-loader.php:318 wp-includes/script-loader.php:374
+msgid "Cancel"
+msgstr "Annuler"
+
+#: wp-includes/class-wp-image-editor-gd.php:87
+#: wp-includes/class-wp-image-editor-imagick.php:120
+msgid "File doesn&#8217;t exist?"
+msgstr "Le fichier n&rsquo;existe-il pas&nbsp;?"
+
+#: wp-includes/class-wp-image-editor-gd.php:94
+#: wp-includes/class-wp-image-editor-imagick.php:129
+msgid "File is not an image."
+msgstr "Le fichier n&rsquo;est pas une image."
+
+#: wp-includes/class-wp-image-editor-gd.php:98
+msgid "Could not read image size."
+msgstr "Impossible de lire la taille de l&rsquo;image."
+
+#: wp-includes/class-wp-image-editor-gd.php:151
+#: wp-includes/class-wp-image-editor-gd.php:169
+msgid "Image resize failed."
+msgstr "Le redimensionnement de l&rsquo;image a échoué."
+
+#: wp-includes/class-wp-image-editor-gd.php:157
+#: wp-includes/class-wp-image-editor-imagick.php:223
+msgid "Could not calculate resized image dimensions"
+msgstr "Impossible de lire la taille de l&rsquo;image redimensionnée"
+
+#: wp-includes/class-wp-image-editor-gd.php:249
+msgid "Image crop failed."
+msgstr "Le recadrage de l&rsquo;image a échoué."
+
+#: wp-includes/class-wp-image-editor-gd.php:273
+msgid "Image rotate failed."
+msgstr "La rotation de l&rsquo;image a échoué."
+
+#: wp-includes/class-wp-image-editor-gd.php:303
+msgid "Image flip failed."
+msgstr "Le retournement de l&rsquo;image a échoué."
+
+#: wp-includes/class-wp-image-editor-gd.php:335
+#: wp-includes/class-wp-image-editor-gd.php:343
+#: wp-includes/class-wp-image-editor-gd.php:347
+#: wp-includes/class-wp-image-editor-gd.php:350
+msgid "Image Editor Save Failed"
+msgstr "L&rsquo;enregistrement de l&rsquo;éditeur d&rsquo;images à échoué."
+
+#: wp-includes/class-wp-image-editor-imagick.php:193
+msgid "Could not read image size"
+msgstr "Impossible de lire la taille de l&rsquo;image"
+
+#: wp-includes/class-wp-theme.php:208
 msgid "The theme directory does not exist."
 msgstr "Le répertoire du thème n&rsquo;existe pas."
 
-#: wp-includes/class-wp-theme.php:209
+#: wp-includes/class-wp-theme.php:210
 msgid "Stylesheet is missing."
 msgstr "La feuille de style manque."
 
-#: wp-includes/class-wp-theme.php:213
+#: wp-includes/class-wp-theme.php:214
 msgid ""
 "ERROR: The themes directory is either empty or doesn&#8217;t exist. Please "
 "check your installation."
@@ -1609,205 +1581,203 @@
 "ERREUR&nbsp;: le répertoire des thèmes est soit vide, ou n&rsquo;existe pas. "
 "Veuillez vérifier votre installation."
 
-#: wp-includes/class-wp-theme.php:217
+#: wp-includes/class-wp-theme.php:218
 msgid "Stylesheet is not readable."
 msgstr "Impossible de lire la feuille de style."
 
-#: wp-includes/class-wp-theme.php:235
+#: wp-includes/class-wp-theme.php:236
 msgid "Template is missing."
 msgstr "Le modèle est manquant."
 
-#: wp-includes/class-wp-theme.php:254
+#: wp-includes/class-wp-theme.php:255
 msgid "The parent theme is missing. Please install the \"%s\" parent theme."
 msgstr ""
 "Le thème parent est manquant. Merci d&rsquo;installer le thème parent &laquo;"
 "&nbsp;%s&nbsp;&raquo;."
 
-#: wp-includes/class-wp-theme.php:265 wp-includes/class-wp-theme.php:269
+#: wp-includes/class-wp-theme.php:267 wp-includes/class-wp-theme.php:271
 msgid "The \"%s\" theme is not a valid parent theme."
 msgstr ""
 "Le thème &laquo;&nbsp;%s&nbsp;&raquo; n&rsquo;est un thème parent valide."
 
-#: wp-includes/class-wp-theme.php:651
+#: wp-includes/class-wp-theme.php:653
 msgid "Visit author homepage"
 msgstr "Aller sur la page de l&rsquo;auteur"
 
-#: wp-includes/class-wp-theme.php:654 wp-includes/comment-template.php:30
+#: wp-includes/class-wp-theme.php:656 wp-includes/comment-template.php:30
 msgid "Anonymous"
 msgstr "Anonyme"
 
 #. translators: used between list items, there is a space after the comma
-#: wp-includes/class-wp-theme.php:661 wp-includes/formatting.php:2993
+#: wp-includes/class-wp-theme.php:663 wp-includes/formatting.php:3054
 msgid ", "
 msgstr ", "
 
-#: wp-includes/class-wp-xmlrpc-server.php:173
-#: wp-includes/class-wp-xmlrpc-server.php:195
-msgid ""
-"XML-RPC services are disabled on this site. An admin user can enable them at "
-"%s"
-msgstr ""
-"Les services XML-RPC sont désactivés sur ce site. Un administrateur peut les "
-"activer à %s"
-
-#: wp-includes/class-wp-xmlrpc-server.php:178
-#: wp-includes/class-wp-xmlrpc-server.php:202
-msgid "Bad login/pass combination."
-msgstr "Mauvaise combinaison identifiant/mot de passe."
-
-#: wp-includes/class-wp-xmlrpc-server.php:308
+#: wp-includes/class-wp-xmlrpc-server.php:181
+msgid "XML-RPC services are disabled on this site."
+msgstr "Les services XML-RPC sont désactivés sur ce site."
+
+#: wp-includes/class-wp-xmlrpc-server.php:188
+msgid "Incorrect username or password."
+msgstr "Identifiant ou mot de passe incorrect."
+
+#: wp-includes/class-wp-xmlrpc-server.php:311
 msgid "Software Name"
 msgstr "Nom du logiciel"
 
-#: wp-includes/class-wp-xmlrpc-server.php:313
+#: wp-includes/class-wp-xmlrpc-server.php:316
 msgid "Software Version"
 msgstr "Version du logiciel"
 
-#: wp-includes/class-wp-xmlrpc-server.php:318
+#: wp-includes/class-wp-xmlrpc-server.php:321
 msgid "Site URL"
 msgstr "Adresse web du site"
 
-#: wp-includes/class-wp-xmlrpc-server.php:323
+#: wp-includes/class-wp-xmlrpc-server.php:326
+msgid "Home URL"
+msgstr "Adresse web de l&rsquo;accueil"
+
+#: wp-includes/class-wp-xmlrpc-server.php:331
 msgid "Image default link type"
 msgstr "Type du lien par défaut vers l&rsquo;image"
 
-#: wp-includes/class-wp-xmlrpc-server.php:328
+#: wp-includes/class-wp-xmlrpc-server.php:336
 msgid "Image default size"
 msgstr "Taille de l&rsquo;image par défaut"
 
-#: wp-includes/class-wp-xmlrpc-server.php:333
+#: wp-includes/class-wp-xmlrpc-server.php:341
 msgid "Image default align"
 msgstr "Alignement par défaut de l&rsquo;image"
 
-#: wp-includes/class-wp-xmlrpc-server.php:338
+#: wp-includes/class-wp-xmlrpc-server.php:346
 msgid "Template"
 msgstr "Modèle"
 
-#: wp-includes/class-wp-xmlrpc-server.php:343
+#: wp-includes/class-wp-xmlrpc-server.php:351
 msgid "Stylesheet"
 msgstr "Feuille de style"
 
-#: wp-includes/class-wp-xmlrpc-server.php:348
+#: wp-includes/class-wp-xmlrpc-server.php:356
 msgid "Post Thumbnail"
 msgstr "Miniature d&rsquo;article"
 
-#: wp-includes/class-wp-xmlrpc-server.php:355
+#: wp-includes/class-wp-xmlrpc-server.php:363
 msgid "Time Zone"
 msgstr "Fuseau horaire"
 
-#: wp-includes/class-wp-xmlrpc-server.php:365
+#: wp-includes/class-wp-xmlrpc-server.php:373
 msgid "Site Tagline"
 msgstr "Slogan du site"
 
-#: wp-includes/class-wp-xmlrpc-server.php:370
+#: wp-includes/class-wp-xmlrpc-server.php:378
 msgid "Date Format"
 msgstr "Format de date"
 
-#: wp-includes/class-wp-xmlrpc-server.php:375
+#: wp-includes/class-wp-xmlrpc-server.php:383
 msgid "Time Format"
 msgstr "Format d’heure"
 
-#: wp-includes/class-wp-xmlrpc-server.php:380
+#: wp-includes/class-wp-xmlrpc-server.php:388
 msgid "Allow new users to sign up"
 msgstr "Autoriser les nouveaux utilisateurs à s&rsquo;inscrire"
 
-#: wp-includes/class-wp-xmlrpc-server.php:385
+#: wp-includes/class-wp-xmlrpc-server.php:393
 msgid "Thumbnail Width"
 msgstr "Largeur des miniatures"
 
-#: wp-includes/class-wp-xmlrpc-server.php:390
+#: wp-includes/class-wp-xmlrpc-server.php:398
 msgid "Thumbnail Height"
 msgstr "Hauteur des miniatures"
 
-#: wp-includes/class-wp-xmlrpc-server.php:395
+#: wp-includes/class-wp-xmlrpc-server.php:403
 msgid "Crop thumbnail to exact dimensions"
 msgstr "Recadrer les images pour parvenir aux dimensions exactes"
 
-#: wp-includes/class-wp-xmlrpc-server.php:400
+#: wp-includes/class-wp-xmlrpc-server.php:408
 msgid "Medium size image width"
 msgstr "Largeur de l&rsquo;image en taille moyenne"
 
-#: wp-includes/class-wp-xmlrpc-server.php:405
+#: wp-includes/class-wp-xmlrpc-server.php:413
 msgid "Medium size image height"
 msgstr "Hauteur de l&rsquo;image en taille moyenne"
 
-#: wp-includes/class-wp-xmlrpc-server.php:410
+#: wp-includes/class-wp-xmlrpc-server.php:418
 msgid "Large size image width"
 msgstr "Largeur de l&rsquo;image en grande taille"
 
-#: wp-includes/class-wp-xmlrpc-server.php:415
+#: wp-includes/class-wp-xmlrpc-server.php:423
 msgid "Large size image height"
 msgstr "Hauteur de l&rsquo;image en grande taille"
 
-#: wp-includes/class-wp-xmlrpc-server.php:420
+#: wp-includes/class-wp-xmlrpc-server.php:428
 msgid "Allow people to post comments on new articles"
 msgstr ""
 "Autoriser les visiteurs à publier des commentaires sur les derniers articles"
 
-#: wp-includes/class-wp-xmlrpc-server.php:425
+#: wp-includes/class-wp-xmlrpc-server.php:433
 msgid "Allow link notifications from other blogs (pingbacks and trackbacks)"
 msgstr ""
 "Autoriser les liens de notifications depuis les autres blogs (notifications "
 "par pings et rétroliens)"
 
-#: wp-includes/class-wp-xmlrpc-server.php:504
+#: wp-includes/class-wp-xmlrpc-server.php:514
 msgid "Insufficient arguments passed to this XML-RPC method."
 msgstr "Arguments insuffisants passés à cette méthode XML-RPC."
 
-#: wp-includes/class-wp-xmlrpc-server.php:949
-#: wp-includes/class-wp-xmlrpc-server.php:3107
-#: wp-includes/class-wp-xmlrpc-server.php:3682
-#: wp-includes/class-wp-xmlrpc-server.php:3738
-#: wp-includes/class-wp-xmlrpc-server.php:3990
-#: wp-includes/class-wp-xmlrpc-server.php:4042
+#: wp-includes/class-wp-xmlrpc-server.php:1003
+#: wp-includes/class-wp-xmlrpc-server.php:3432
+#: wp-includes/class-wp-xmlrpc-server.php:4070
+#: wp-includes/class-wp-xmlrpc-server.php:4128
+#: wp-includes/class-wp-xmlrpc-server.php:4380
+#: wp-includes/class-wp-xmlrpc-server.php:4432
 msgid "Invalid post type"
 msgstr "Type d&rsquo;article invalide"
 
-#: wp-includes/class-wp-xmlrpc-server.php:955
-#: wp-includes/class-wp-xmlrpc-server.php:1202
-#: wp-includes/class-wp-xmlrpc-server.php:1255
-#: wp-includes/class-wp-xmlrpc-server.php:1337
-#: wp-includes/class-wp-xmlrpc-server.php:1940
-#: wp-includes/class-wp-xmlrpc-server.php:2648
-#: wp-includes/class-wp-xmlrpc-server.php:2651
-#: wp-includes/class-wp-xmlrpc-server.php:3293
-#: wp-includes/class-wp-xmlrpc-server.php:3983
-#: wp-includes/class-wp-xmlrpc-server.php:4244
-#: wp-includes/class-wp-xmlrpc-server.php:4713
-#: wp-includes/class-wp-xmlrpc-server.php:4759
-#: wp-includes/class-wp-xmlrpc-server.php:4870
+#: wp-includes/class-wp-xmlrpc-server.php:1009
+#: wp-includes/class-wp-xmlrpc-server.php:1258
+#: wp-includes/class-wp-xmlrpc-server.php:1318
+#: wp-includes/class-wp-xmlrpc-server.php:1400
+#: wp-includes/class-wp-xmlrpc-server.php:2265
+#: wp-includes/class-wp-xmlrpc-server.php:2973
+#: wp-includes/class-wp-xmlrpc-server.php:2976
+#: wp-includes/class-wp-xmlrpc-server.php:3740
+#: wp-includes/class-wp-xmlrpc-server.php:4373
+#: wp-includes/class-wp-xmlrpc-server.php:4634
+#: wp-includes/class-wp-xmlrpc-server.php:5109
+#: wp-includes/class-wp-xmlrpc-server.php:5155
+#: wp-includes/class-wp-xmlrpc-server.php:5267
 msgid "Invalid post ID."
 msgstr "Identifiant de l&rsquo;article non valide."
 
-#: wp-includes/class-wp-xmlrpc-server.php:957
+#: wp-includes/class-wp-xmlrpc-server.php:1011
 msgid "Sorry, you are not allowed to edit this post."
 msgstr ""
 "Désolé, vous n&rsquo;avez pas l&rsquo;autorisation de modifier cet article."
 
-#: wp-includes/class-wp-xmlrpc-server.php:959
-#: wp-includes/class-wp-xmlrpc-server.php:3994
+#: wp-includes/class-wp-xmlrpc-server.php:1013
+#: wp-includes/class-wp-xmlrpc-server.php:4384
 msgid "The post type may not be changed."
 msgstr "Ce type de contenu ne peut pas être supprimé."
 
-#: wp-includes/class-wp-xmlrpc-server.php:962
-#: wp-includes/class-wp-xmlrpc-server.php:3481
+#: wp-includes/class-wp-xmlrpc-server.php:1016
+#: wp-includes/class-wp-xmlrpc-server.php:3869
 msgid "Sorry, you are not allowed to post on this site."
 msgstr ""
 "Désolé, vous n&rsquo;avez pas l&rsquo;autorisation de publier sur ce site."
 
-#: wp-includes/class-wp-xmlrpc-server.php:971
+#: wp-includes/class-wp-xmlrpc-server.php:1025
 msgid "Sorry, you are not allowed to create private posts in this post type"
 msgstr ""
 "Désolé, vous n&rsquo;avez pas l&rsquo;autorisation de créer des contenus "
 "privés avec ce type de contenu"
 
-#: wp-includes/class-wp-xmlrpc-server.php:976
+#: wp-includes/class-wp-xmlrpc-server.php:1030
 msgid "Sorry, you are not allowed to publish posts in this post type"
 msgstr ""
 "Désolé, vous n&rsquo;avez pas l&rsquo;autorisation de publier des contenus "
 "avec ce type de contenu"
 
-#: wp-includes/class-wp-xmlrpc-server.php:984
+#: wp-includes/class-wp-xmlrpc-server.php:1039
 msgid ""
 "Sorry, you are not allowed to create password protected posts in this post "
 "type"
@@ -1815,57 +1785,58 @@
 "Désolé, vous n&rsquo;avez pas l&rsquo;autorisation de créer des contenus "
 "protégés par mot de passe avec ce type de contenu"
 
-#: wp-includes/class-wp-xmlrpc-server.php:989
+#: wp-includes/class-wp-xmlrpc-server.php:1044
+#: wp-includes/class-wp-xmlrpc-server.php:4121
 msgid "You are not allowed to create posts as this user."
 msgstr ""
 "Vous n&rsquo;avez pas l&rsquo;autorisation de créer des contenus sous cet "
 "identifiant."
 
-#: wp-includes/class-wp-xmlrpc-server.php:994
-#: wp-includes/class-wp-xmlrpc-server.php:3743
+#: wp-includes/class-wp-xmlrpc-server.php:1049
+#: wp-includes/class-wp-xmlrpc-server.php:4133
 msgid "Invalid author ID."
 msgstr "Identifiant utilisateur non valable."
 
-#: wp-includes/class-wp-xmlrpc-server.php:1027
+#: wp-includes/class-wp-xmlrpc-server.php:1082
 msgid "Sorry, you cannot stick a private post."
 msgstr "Désolé, vous ne pouvez pas mettre en avant un article privé."
 
-#: wp-includes/class-wp-xmlrpc-server.php:1032
+#: wp-includes/class-wp-xmlrpc-server.php:1087
 msgid "Sorry, you are not allowed to stick this post."
 msgstr ""
 "Désolé, vous n&rsquo;avez pas l&rsquo;autorisation de mettre cet article en "
 "avant."
 
-#: wp-includes/class-wp-xmlrpc-server.php:1045
-#: wp-includes/class-wp-xmlrpc-server.php:2958
-#: wp-includes/class-wp-xmlrpc-server.php:3885
-#: wp-includes/class-wp-xmlrpc-server.php:4202
+#: wp-includes/class-wp-xmlrpc-server.php:1100
+#: wp-includes/class-wp-xmlrpc-server.php:3283
+#: wp-includes/class-wp-xmlrpc-server.php:4275
+#: wp-includes/class-wp-xmlrpc-server.php:4592
 msgid "Invalid attachment ID."
-msgstr "Identifiant du média invalide."
-
-#: wp-includes/class-wp-xmlrpc-server.php:1065
-#: wp-includes/class-wp-xmlrpc-server.php:1088
+msgstr "Identifiant du fichier invalide."
+
+#: wp-includes/class-wp-xmlrpc-server.php:1121
+#: wp-includes/class-wp-xmlrpc-server.php:1144
 msgid "Sorry, one of the given taxonomies is not supported by the post type."
 msgstr ""
 "Désolé, l&rsquo;une des taxinomies données n&rsquo;est pas reconnue par ce "
 "type de contenu."
 
-#: wp-includes/class-wp-xmlrpc-server.php:1068
-#: wp-includes/class-wp-xmlrpc-server.php:1091
+#: wp-includes/class-wp-xmlrpc-server.php:1124
+#: wp-includes/class-wp-xmlrpc-server.php:1147
 msgid ""
 "Sorry, you are not allowed to assign a term to one of the given taxonomies."
 msgstr ""
 "Désolé, vous n&rsquo;avez pas l&rsquo;autorisation d&rsquo;assigner un terme "
 "à l&rsquo;une des taxinomies indiquées."
 
-#: wp-includes/class-wp-xmlrpc-server.php:1075
-#: wp-includes/class-wp-xmlrpc-server.php:1582
-#: wp-includes/class-wp-xmlrpc-server.php:1669
-#: wp-includes/class-wp-xmlrpc-server.php:1736 wp-includes/taxonomy.php:2025
+#: wp-includes/class-wp-xmlrpc-server.php:1131
+#: wp-includes/class-wp-xmlrpc-server.php:1651
+#: wp-includes/class-wp-xmlrpc-server.php:1738
+#: wp-includes/class-wp-xmlrpc-server.php:1805 wp-includes/taxonomy.php:2052
 msgid "Invalid term ID"
 msgstr "l&rsquo;ID du terme est invalide"
 
-#: wp-includes/class-wp-xmlrpc-server.php:1110
+#: wp-includes/class-wp-xmlrpc-server.php:1166
 msgid ""
 "Ambiguous term name used in a hierarchical taxonomy. Please use term ID "
 "instead."
@@ -1873,164 +1844,202 @@
 "Un nom de terme est ambigu pour cette taxinomie hiérarchisée. Veuillez "
 "utiliser l&rsquo;identifiant du terme à la place."
 
-#: wp-includes/class-wp-xmlrpc-server.php:1117
+#: wp-includes/class-wp-xmlrpc-server.php:1173
 msgid ""
 "Sorry, you are not allowed to add a term to one of the given taxonomies."
 msgstr ""
 "Désolé, vous n&rsquo;avez pas l&rsquo;autorisation d&rsquo;ajouter un terme "
 "à l&rsquo;une des taxinomies indiquées."
 
-#: wp-includes/class-wp-xmlrpc-server.php:1259
+#: wp-includes/class-wp-xmlrpc-server.php:1217
+#: wp-includes/class-wp-xmlrpc-server.php:3889
+#: wp-includes/class-wp-xmlrpc-server.php:4296
+msgid "Sorry, your entry could not be posted. Something wrong happened."
+msgstr ""
+"Désolé, votre entrée n&rsquo;a pas pu être publiée. Une erreur est survenue."
+
+#: wp-includes/class-wp-xmlrpc-server.php:1263
+msgid "There is a revision of this post that is more recent."
+msgstr "Ce contenu a déjà une révision plus récente."
+
+#: wp-includes/class-wp-xmlrpc-server.php:1322
 msgid "Sorry, you are not allowed to delete this post."
 msgstr ""
 "Désolé, vous n&rsquo;avez pas l&rsquo;autorisation de supprimer cet article."
 
-#: wp-includes/class-wp-xmlrpc-server.php:1264
+#: wp-includes/class-wp-xmlrpc-server.php:1327
 msgid "The post cannot be deleted."
 msgstr "Cet article ne peut pas être supprimé."
 
-#: wp-includes/class-wp-xmlrpc-server.php:1341
-#: wp-includes/class-wp-xmlrpc-server.php:3296
-#: wp-includes/class-wp-xmlrpc-server.php:4247
-#: wp-includes/class-wp-xmlrpc-server.php:4762
+#: wp-includes/class-wp-xmlrpc-server.php:1404
+#: wp-includes/class-wp-xmlrpc-server.php:3602
+#: wp-includes/class-wp-xmlrpc-server.php:3743
+#: wp-includes/class-wp-xmlrpc-server.php:4637
+#: wp-includes/class-wp-xmlrpc-server.php:4961
+#: wp-includes/class-wp-xmlrpc-server.php:5158
 msgid "Sorry, you cannot edit this post."
 msgstr "Désolé, vous ne pouvez pas modifier cet article."
 
-#: wp-includes/class-wp-xmlrpc-server.php:1396
+#: wp-includes/class-wp-xmlrpc-server.php:1459
 msgid "The post type specified is not valid"
 msgstr "Le type de contenu spécifié n&rsquo;est pas valable"
 
-#: wp-includes/class-wp-xmlrpc-server.php:1399
+#: wp-includes/class-wp-xmlrpc-server.php:1465
 msgid "Sorry, you are not allowed to edit posts in this post type"
 msgstr ""
 "Désolé, vous n&rsquo;avez pas l&rsquo;autorisation de modifier des entrées "
 "dans ce type de contenu"
 
-#: wp-includes/class-wp-xmlrpc-server.php:1476
-#: wp-includes/class-wp-xmlrpc-server.php:1564
-#: wp-includes/class-wp-xmlrpc-server.php:1656
-#: wp-includes/class-wp-xmlrpc-server.php:1723
-#: wp-includes/class-wp-xmlrpc-server.php:1776
-#: wp-includes/class-wp-xmlrpc-server.php:1855 wp-includes/taxonomy.php:505
-#: wp-includes/taxonomy.php:858 wp-includes/taxonomy.php:987
-#: wp-includes/taxonomy.php:1177 wp-includes/taxonomy.php:1878
-#: wp-includes/taxonomy.php:2018 wp-includes/taxonomy.php:2149
-#: wp-includes/taxonomy.php:2323
+#: wp-includes/class-wp-xmlrpc-server.php:1545
+#: wp-includes/class-wp-xmlrpc-server.php:1633
+#: wp-includes/class-wp-xmlrpc-server.php:1725
+#: wp-includes/class-wp-xmlrpc-server.php:1792
+#: wp-includes/class-wp-xmlrpc-server.php:1845
+#: wp-includes/class-wp-xmlrpc-server.php:1924 wp-includes/taxonomy.php:518
+#: wp-includes/taxonomy.php:880 wp-includes/taxonomy.php:1009
+#: wp-includes/taxonomy.php:1197 wp-includes/taxonomy.php:1901
+#: wp-includes/taxonomy.php:2045 wp-includes/taxonomy.php:2176
+#: wp-includes/taxonomy.php:2353
 msgid "Invalid taxonomy"
 msgstr "La taxinomie est invalide"
 
-#: wp-includes/class-wp-xmlrpc-server.php:1481
+#: wp-includes/class-wp-xmlrpc-server.php:1550
 msgid "You are not allowed to create terms in this taxonomy."
 msgstr ""
 "Vous n&rsquo;avez pas l&rsquo;autorisation de créer des termes dans cette "
 "taxinomie."
 
-#: wp-includes/class-wp-xmlrpc-server.php:1490
-#: wp-includes/class-wp-xmlrpc-server.php:1588
+#: wp-includes/class-wp-xmlrpc-server.php:1559
+#: wp-includes/class-wp-xmlrpc-server.php:1657
 msgid "The term name cannot be empty."
 msgstr "Le nom du terme ne peut être vide."
 
-#: wp-includes/class-wp-xmlrpc-server.php:1494
+#: wp-includes/class-wp-xmlrpc-server.php:1563
 msgid "This taxonomy is not hierarchical."
 msgstr "Cette taxinomie n&rsquo;est pas hiérarchique."
 
-#: wp-includes/class-wp-xmlrpc-server.php:1503
-#: wp-includes/class-wp-xmlrpc-server.php:1602
+#: wp-includes/class-wp-xmlrpc-server.php:1572
+#: wp-includes/class-wp-xmlrpc-server.php:1671
 msgid "Parent term does not exist."
 msgstr "Le terme parent n&rsquo;existe pas."
 
-#: wp-includes/class-wp-xmlrpc-server.php:1520
+#: wp-includes/class-wp-xmlrpc-server.php:1589
 msgid "Sorry, your term could not be created. Something wrong happened."
 msgstr "Désolé, votre terme  n&rsquo;a pu être créé. Une erreur est survenue."
 
-#: wp-includes/class-wp-xmlrpc-server.php:1569
+#: wp-includes/class-wp-xmlrpc-server.php:1638
 msgid "You are not allowed to edit terms in this taxonomy."
 msgstr ""
 "Vous n&#8217;avez pas l&#8217;autorisation de modifier les termes de cette "
 "taxinomie."
 
-#: wp-includes/class-wp-xmlrpc-server.php:1593
+#: wp-includes/class-wp-xmlrpc-server.php:1662
 msgid "This taxonomy is not hierarchical so you can't set a parent."
 msgstr ""
 "Cette taxinomie n&rsquo;est pas hiérarchisée, donc vous ne pouvez créer de "
 "parent."
 
-#: wp-includes/class-wp-xmlrpc-server.php:1619
+#: wp-includes/class-wp-xmlrpc-server.php:1688
 msgid "Sorry, editing the term failed."
 msgstr "Désolé, la modification du terme a échoué."
 
-#: wp-includes/class-wp-xmlrpc-server.php:1661
+#: wp-includes/class-wp-xmlrpc-server.php:1730
 msgid "You are not allowed to delete terms in this taxonomy."
 msgstr ""
 "Vous n&rsquo;avez pas l&rsquo;autorisation de supprimer les termes de cette "
 "taxinomie."
 
-#: wp-includes/class-wp-xmlrpc-server.php:1677
+#: wp-includes/class-wp-xmlrpc-server.php:1746
 msgid "Sorry, deleting the term failed."
 msgstr "Désolé, la suppression du terme a échoué."
 
-#: wp-includes/class-wp-xmlrpc-server.php:1728
-#: wp-includes/class-wp-xmlrpc-server.php:1781
-#: wp-includes/class-wp-xmlrpc-server.php:1860
+#: wp-includes/class-wp-xmlrpc-server.php:1797
+#: wp-includes/class-wp-xmlrpc-server.php:1850
+#: wp-includes/class-wp-xmlrpc-server.php:1929
 msgid "You are not allowed to assign terms in this taxonomy."
 msgstr ""
 "Désolé, vous n&rsquo;avez pas l&rsquo;autorisation d&rsquo;assigner des "
 "termes à cette taxinomie."
 
-#: wp-includes/class-wp-xmlrpc-server.php:1943
+#: wp-includes/class-wp-xmlrpc-server.php:2037
+msgid "Sorry, you cannot edit users."
+msgstr "Désolé, vous ne pouvez pas modifier les utilisateurs."
+
+#: wp-includes/class-wp-xmlrpc-server.php:2042
+msgid "Invalid user ID"
+msgstr "Indentifiant utilisateur non valide"
+
+#: wp-includes/class-wp-xmlrpc-server.php:2090
+msgid "Sorry, you cannot list users."
+msgstr "Désolé, vous ne pouvez pas lister les utilisateurs."
+
+#: wp-includes/class-wp-xmlrpc-server.php:2106
+msgid "The role specified is not valid"
+msgstr "Le rôle spécifié n&rsquo;est pas valable"
+
+#: wp-includes/class-wp-xmlrpc-server.php:2157
+#: wp-includes/class-wp-xmlrpc-server.php:2200
+msgid "Sorry, you cannot edit your profile."
+msgstr "Désolé, vous ne pouvez pas modifier votre profil."
+
+#: wp-includes/class-wp-xmlrpc-server.php:2234
+msgid "Sorry, the user cannot be updated."
+msgstr "Désolé, cet utilisateur ne peut pas être mis à jour."
+
+#: wp-includes/class-wp-xmlrpc-server.php:2268
 msgid "Sorry, you cannot edit this page."
 msgstr "Désolé, vous ne pouvez pas modifier cette page."
 
-#: wp-includes/class-wp-xmlrpc-server.php:1953
-#: wp-includes/class-wp-xmlrpc-server.php:2057
-#: wp-includes/class-wp-xmlrpc-server.php:2098
+#: wp-includes/class-wp-xmlrpc-server.php:2278
+#: wp-includes/class-wp-xmlrpc-server.php:2382
+#: wp-includes/class-wp-xmlrpc-server.php:2423
 msgid "Sorry, no such page."
 msgstr "Désolé, aucune page ne correspond."
 
-#: wp-includes/class-wp-xmlrpc-server.php:1981
-#: wp-includes/class-wp-xmlrpc-server.php:2141
+#: wp-includes/class-wp-xmlrpc-server.php:2306
+#: wp-includes/class-wp-xmlrpc-server.php:2466
 msgid "Sorry, you cannot edit pages."
 msgstr "Désolé, vous ne pouvez pas modifier les pages."
 
-#: wp-includes/class-wp-xmlrpc-server.php:2061
+#: wp-includes/class-wp-xmlrpc-server.php:2386
 msgid "Sorry, you do not have the right to delete this page."
 msgstr ""
 "Désolé, vous n&rsquo;avez pas l&rsquo;autorisation de supprimer cette page."
 
-#: wp-includes/class-wp-xmlrpc-server.php:2066
+#: wp-includes/class-wp-xmlrpc-server.php:2391
 msgid "Failed to delete the page."
 msgstr "Échec lors de la suppression de la page."
 
-#: wp-includes/class-wp-xmlrpc-server.php:2102
+#: wp-includes/class-wp-xmlrpc-server.php:2427
 msgid "Sorry, you do not have the right to edit this page."
 msgstr ""
 "Désolé, vous n&rsquo;avez pas l&rsquo;autorisation de modifier cette page."
 
-#: wp-includes/class-wp-xmlrpc-server.php:2192
+#: wp-includes/class-wp-xmlrpc-server.php:2517
 msgid "Sorry, you cannot edit posts on this site."
 msgstr "Désolé, vous ne pouvez pas modifier les articles de ce site."
 
-#: wp-includes/class-wp-xmlrpc-server.php:2227
+#: wp-includes/class-wp-xmlrpc-server.php:2552
 msgid ""
 "Sorry, you must be able to edit posts on this site in order to view tags."
 msgstr ""
 "Désolé, vous devez avoir le droit de modifier des articles sur ce site si "
 "vous voulez visualiser les mots-clefs."
 
-#: wp-includes/class-wp-xmlrpc-server.php:2272
+#: wp-includes/class-wp-xmlrpc-server.php:2597
 msgid "Sorry, you do not have the right to add a category."
 msgstr "Désolé, vous n&rsquo;avez pas les droits pour ajouter une catégorie."
 
-#: wp-includes/class-wp-xmlrpc-server.php:2300
-#: wp-includes/class-wp-xmlrpc-server.php:2302
+#: wp-includes/class-wp-xmlrpc-server.php:2625
+#: wp-includes/class-wp-xmlrpc-server.php:2627
 msgid "Sorry, the new category failed."
 msgstr "Désolé, la création de la catégorie a échoué."
 
-#: wp-includes/class-wp-xmlrpc-server.php:2332
+#: wp-includes/class-wp-xmlrpc-server.php:2657
 msgid "Sorry, you do not have the right to delete a category."
 msgstr "Désolé, vous n&rsquo;avez pas les droits pour supprimer une catégorie."
 
-#: wp-includes/class-wp-xmlrpc-server.php:2363
+#: wp-includes/class-wp-xmlrpc-server.php:2688
 msgid ""
 "Sorry, you must be able to edit posts to this site in order to view "
 "categories."
@@ -2038,167 +2047,200 @@
 "Désolé, vous devez avoir le droit d&rsquo;écrire des articles pour ce site "
 "si vous voulez visualiser les catégories."
 
-#: wp-includes/class-wp-xmlrpc-server.php:2399
-#: wp-includes/class-wp-xmlrpc-server.php:2500
-#: wp-includes/class-wp-xmlrpc-server.php:2506
-#: wp-includes/class-wp-xmlrpc-server.php:2555
-#: wp-includes/class-wp-xmlrpc-server.php:2561
+#: wp-includes/class-wp-xmlrpc-server.php:2724
+#: wp-includes/class-wp-xmlrpc-server.php:2825
+#: wp-includes/class-wp-xmlrpc-server.php:2831
+#: wp-includes/class-wp-xmlrpc-server.php:2880
+#: wp-includes/class-wp-xmlrpc-server.php:2886
 msgid "You are not allowed to moderate comments on this site."
 msgstr ""
 "Vous n&rsquo;avez pas l&rsquo;autorisation de modérer les commentaires de ce "
 "site."
 
-#: wp-includes/class-wp-xmlrpc-server.php:2404
-#: wp-includes/class-wp-xmlrpc-server.php:2503
-#: wp-includes/class-wp-xmlrpc-server.php:2558
+#: wp-includes/class-wp-xmlrpc-server.php:2729
+#: wp-includes/class-wp-xmlrpc-server.php:2828
+#: wp-includes/class-wp-xmlrpc-server.php:2883
 msgid "Invalid comment ID."
 msgstr "Identifiant commentaire invalide."
 
-#: wp-includes/class-wp-xmlrpc-server.php:2440
+#: wp-includes/class-wp-xmlrpc-server.php:2765
 msgid "Sorry, you cannot edit comments."
 msgstr "Désolé, vous ne pouvez pas modifier les commentaires."
 
-#: wp-includes/class-wp-xmlrpc-server.php:2570
+#: wp-includes/class-wp-xmlrpc-server.php:2895
 msgid "Invalid comment status."
 msgstr "Statut du commentaire non valide."
 
-#: wp-includes/class-wp-xmlrpc-server.php:2602
+#: wp-includes/class-wp-xmlrpc-server.php:2927
 msgid "Sorry, the comment could not be edited. Something wrong happened."
 msgstr ""
 "Désolé, votre commentaire n&rsquo;a pu être modifié. Une erreur est survenue."
 
-#: wp-includes/class-wp-xmlrpc-server.php:2635
+#: wp-includes/class-wp-xmlrpc-server.php:2960
 msgid "You must be registered to comment"
 msgstr "Vous devez être enregistré pour laisser un commentaire"
 
-#: wp-includes/class-wp-xmlrpc-server.php:2677
+#: wp-includes/class-wp-xmlrpc-server.php:3002
 msgid "Comment author name and email are required"
 msgstr ""
 "L&rsquo;auteur d&rsquo;un commentaire doit renseigner son nom et son adresse "
 "de messagerie"
 
-#: wp-includes/class-wp-xmlrpc-server.php:2679
+#: wp-includes/class-wp-xmlrpc-server.php:3004
 msgid "A valid email address is required"
 msgstr "Une adresse de messagerie valide est requise"
 
-#: wp-includes/class-wp-xmlrpc-server.php:2715
-#: wp-includes/class-wp-xmlrpc-server.php:2774
-#: wp-includes/class-wp-xmlrpc-server.php:2800
-#: wp-includes/class-wp-xmlrpc-server.php:2826
-#: wp-includes/class-wp-xmlrpc-server.php:3039
+#: wp-includes/class-wp-xmlrpc-server.php:3040
+#: wp-includes/class-wp-xmlrpc-server.php:3099
+#: wp-includes/class-wp-xmlrpc-server.php:3125
+#: wp-includes/class-wp-xmlrpc-server.php:3151
+#: wp-includes/class-wp-xmlrpc-server.php:3364
 msgid "You are not allowed access to details about this site."
 msgstr ""
 "Vous n&rsquo;avez pas l&rsquo;autorisation d&rsquo;accéder aux détails de ce "
 "site."
 
-#: wp-includes/class-wp-xmlrpc-server.php:2742
+#: wp-includes/class-wp-xmlrpc-server.php:3067
 msgid "You are not allowed access to details about comments."
 msgstr ""
 "Vous n&rsquo;avez pas l&rsquo;autorisation d&rsquo;accéder aux détails des "
 "commentaires."
 
-#: wp-includes/class-wp-xmlrpc-server.php:2904
+#: wp-includes/class-wp-xmlrpc-server.php:3229
 msgid "You are not allowed to update options."
 msgstr ""
 "Vous n&rsquo;avez pas l&rsquo;autorisation de mettre à jour les options."
 
-#: wp-includes/class-wp-xmlrpc-server.php:3112
+#: wp-includes/class-wp-xmlrpc-server.php:3278
+#: wp-includes/class-wp-xmlrpc-server.php:3323
+#: wp-includes/class-wp-xmlrpc-server.php:4925
+msgid "You do not have permission to upload files."
+msgstr ""
+"Vous n&rsquo;avez pas l&rsquo;autorisation d&rsquo;envoyer des fichiers."
+
+#: wp-includes/class-wp-xmlrpc-server.php:3437
 msgid "Sorry, you are not allowed to edit this post type."
 msgstr ""
 "Désolé, vous n&rsquo;avez pas l&rsquo;autorisation de modifier ce type de "
 "contenu."
 
-#: wp-includes/class-wp-xmlrpc-server.php:3257
+#: wp-includes/class-wp-xmlrpc-server.php:3532
+#: wp-includes/class-wp-xmlrpc-server.php:3593
+#: wp-includes/class-wp-xmlrpc-server.php:3596
+#: wp-includes/class-wp-xmlrpc-server.php:3599
+msgid "Invalid post ID"
+msgstr "Identifiant de l&rsquo;article non valable"
+
+#: wp-includes/class-wp-xmlrpc-server.php:3535
+msgid "Sorry, you are not allowed to edit posts."
+msgstr ""
+"Désolé, vous n&rsquo;avez pas l&rsquo;autorisation de modifier les articles."
+
+#: wp-includes/class-wp-xmlrpc-server.php:3539
+#: wp-includes/class-wp-xmlrpc-server.php:3606
+msgid "Sorry, revisions are disabled."
+msgstr "Désolé, les révisions sont désactivées."
+
+#: wp-includes/class-wp-xmlrpc-server.php:3704
 msgid "Sorry, you do not have access to user data on this site."
 msgstr ""
 "Vous n&rsquo;avez pas l&rsquo;autorisation d&rsquo;accéder aux données "
 "utilisateurs de ce site."
 
-#: wp-includes/class-wp-xmlrpc-server.php:3345
-#: wp-includes/class-wp-xmlrpc-server.php:4623
+#: wp-includes/class-wp-xmlrpc-server.php:3792
+#: wp-includes/class-wp-xmlrpc-server.php:5019
 msgid "Either there are no posts, or something went wrong."
 msgstr ""
 "Soit il n&rsquo;y a pas d&rsquo;articles, soit une erreur s&rsquo;est "
 "produite."
 
-#: wp-includes/class-wp-xmlrpc-server.php:3400
-#: wp-includes/class-wp-xmlrpc-server.php:3440
-msgid "Sorry, this user cannot edit the template."
-msgstr "Désolé, cet utilisateur ne peut pas modifier le modèle."
-
-#: wp-includes/class-wp-xmlrpc-server.php:3450
-msgid ""
-"Either the file is not writable, or something wrong happened. The file has "
-"not been updated."
-msgstr ""
-"Soit le fichier n&rsquo;est pas accessible en écriture, soit une erreur est "
-"survenue. Le fichier n&rsquo;a pas été mis à jour."
-
-#: wp-includes/class-wp-xmlrpc-server.php:3536
-#: wp-includes/class-wp-xmlrpc-server.php:3590
-#: wp-includes/class-wp-xmlrpc-server.php:4343
-#: wp-includes/class-wp-xmlrpc-server.php:4824
+#: wp-includes/class-wp-xmlrpc-server.php:3831
+#: wp-includes/class-wp-xmlrpc-server.php:3841
+msgid "Sorry, that file cannot be edited."
+msgstr "Désolé, ce fichier ne peut pas être modifié."
+
+#: wp-includes/class-wp-xmlrpc-server.php:3924
+#: wp-includes/class-wp-xmlrpc-server.php:3978
+#: wp-includes/class-wp-xmlrpc-server.php:4733
+#: wp-includes/class-wp-xmlrpc-server.php:5221
 msgid "Sorry, no such post."
 msgstr "Désolé, aucun article ne correspond."
 
-#: wp-includes/class-wp-xmlrpc-server.php:3546
-#: wp-includes/class-wp-xmlrpc-server.php:4147
+#: wp-includes/class-wp-xmlrpc-server.php:3929
+#: wp-includes/class-wp-xmlrpc-server.php:4376
+msgid "Sorry, you do not have the right to edit this post."
+msgstr ""
+"Désolé, vous n&rsquo;avez pas l&rsquo;autorisation de modifier cet article."
+
+#: wp-includes/class-wp-xmlrpc-server.php:3934
+#: wp-includes/class-wp-xmlrpc-server.php:4537
 msgid "Sorry, you do not have the right to publish this post."
 msgstr ""
 "Désolé, vous n&rsquo;avez pas l&rsquo;autorisation de publier cet article."
 
-#: wp-includes/class-wp-xmlrpc-server.php:3667
+#: wp-includes/class-wp-xmlrpc-server.php:3945
+msgid ""
+"For some strange yet very annoying reason, this post could not be edited."
+msgstr "Pour une bien étrange raison, cet article n&rsquo;a pu être modifié."
+
+#: wp-includes/class-wp-xmlrpc-server.php:3981
+msgid "Sorry, you do not have the right to delete this post."
+msgstr ""
+"Désolé, vous n&rsquo;avez pas l&rsquo;autorisation de supprimer cet article."
+
+#: wp-includes/class-wp-xmlrpc-server.php:3986
+msgid ""
+"For some strange yet very annoying reason, this post could not be deleted."
+msgstr "Pour une bien étrange raison, cet article n&rsquo;a pu être supprimé."
+
+#: wp-includes/class-wp-xmlrpc-server.php:4055
 msgid "Sorry, you are not allowed to publish pages on this site."
 msgstr ""
 "Désolé, vous n&rsquo;avez pas l&rsquo;autorisation de publier des pages sur "
 "ce site."
 
-#: wp-includes/class-wp-xmlrpc-server.php:3678
-#: wp-includes/class-wp-xmlrpc-server.php:3691
+#: wp-includes/class-wp-xmlrpc-server.php:4066
+#: wp-includes/class-wp-xmlrpc-server.php:4079
+#: wp-includes/class-wp-xmlrpc-server.php:4084
 msgid "Sorry, you are not allowed to publish posts on this site."
 msgstr ""
 "Désolé, vous n&rsquo;avez pas l&rsquo;autorisation de publier des articles "
 "sur ce site."
 
-#: wp-includes/class-wp-xmlrpc-server.php:3702
-#: wp-includes/class-wp-xmlrpc-server.php:4000
+#: wp-includes/class-wp-xmlrpc-server.php:4092
+#: wp-includes/class-wp-xmlrpc-server.php:4390
 msgid "Invalid post format"
 msgstr "Format d&rsquo;article invalide"
 
-#: wp-includes/class-wp-xmlrpc-server.php:3731
-msgid "You are not allowed to post as this user"
-msgstr ""
-"Vous n&rsquo;avez pas l&rsquo;autorisation de publier sous cet identifiant."
-
-#: wp-includes/class-wp-xmlrpc-server.php:3735
-msgid "You are not allowed to create pages as this user"
+#: wp-includes/class-wp-xmlrpc-server.php:4125
+msgid "You are not allowed to create pages as this user."
 msgstr ""
 "Vous n&rsquo;avez pas l&rsquo;autorisation de créer des pages sous cet "
 "identifiant."
 
-#: wp-includes/class-wp-xmlrpc-server.php:4035
+#: wp-includes/class-wp-xmlrpc-server.php:4425
 msgid "You are not allowed to change the post author as this user."
 msgstr ""
 "Vous n&rsquo;avez pas l&rsquo;autorisation de modifier des articles sous cet "
 "identifiant."
 
-#: wp-includes/class-wp-xmlrpc-server.php:4039
+#: wp-includes/class-wp-xmlrpc-server.php:4429
 msgid "You are not allowed to change the page author as this user."
 msgstr ""
 "Vous n&rsquo;avez pas l&rsquo;autorisation de modifier des pages sous cet "
 "identifiant."
 
-#: wp-includes/class-wp-xmlrpc-server.php:4145
+#: wp-includes/class-wp-xmlrpc-server.php:4535
 msgid "Sorry, you do not have the right to publish this page."
 msgstr "Désolé, vous n&rsquo;avez pas le droit de publier cette page."
 
-#: wp-includes/class-wp-xmlrpc-server.php:4183
+#: wp-includes/class-wp-xmlrpc-server.php:4573
 msgid "Sorry, your entry could not be edited. Something wrong happened."
 msgstr ""
 "Désolé, votre entrée n&rsquo;a pu être modifiée. Une erreur est survenue."
 
-#: wp-includes/class-wp-xmlrpc-server.php:4481
-#: wp-includes/class-wp-xmlrpc-server.php:4675
+#: wp-includes/class-wp-xmlrpc-server.php:4872
+#: wp-includes/class-wp-xmlrpc-server.php:5071
 msgid ""
 "Sorry, you must be able to edit posts on this site in order to view "
 "categories."
@@ -2206,26 +2248,26 @@
 "Désolé, vous devez avoir le droit d&rsquo;écrire des articles sur ce site si "
 "vous vous visualisez les catégories."
 
-#: wp-includes/class-wp-xmlrpc-server.php:4561
+#: wp-includes/class-wp-xmlrpc-server.php:4952
 msgid "Could not write file %1$s (%2$s)"
 msgstr "Impossible d&rsquo;écrire le fichier %1$s (%2$s)"
 
-#: wp-includes/class-wp-xmlrpc-server.php:4716
+#: wp-includes/class-wp-xmlrpc-server.php:5112
 msgid "Sorry, you can not edit this post."
 msgstr "Désolé, vous ne pouvez pas modifier cet article."
 
-#: wp-includes/class-wp-xmlrpc-server.php:4873
+#: wp-includes/class-wp-xmlrpc-server.php:5270
 msgid "Sorry, you cannot publish this post."
 msgstr "Désolé, vous ne pouvez pas publier cet article."
 
-#: wp-includes/class-wp-xmlrpc-server.php:4918
+#: wp-includes/class-wp-xmlrpc-server.php:5315
 msgid "Is there no link to us?"
 msgstr "N&rsquo;y a-t-il aucun lien vers nous&nbsp;?"
 
-#: wp-includes/class-wp-xmlrpc-server.php:4958
-#: wp-includes/class-wp-xmlrpc-server.php:4965
-#: wp-includes/class-wp-xmlrpc-server.php:4972
-#: wp-includes/class-wp-xmlrpc-server.php:5079
+#: wp-includes/class-wp-xmlrpc-server.php:5355
+#: wp-includes/class-wp-xmlrpc-server.php:5362
+#: wp-includes/class-wp-xmlrpc-server.php:5369
+#: wp-includes/class-wp-xmlrpc-server.php:5476
 msgid ""
 "The specified target URL cannot be used as a target. It either doesn&#8217;t "
 "exist, or it is not a pingback-enabled resource."
@@ -2234,26 +2276,26 @@
 "n&rsquo;existe pas, ou il ne s&rsquo;agit pas d&rsquo;une ressource "
 "reconnaissant les pings."
 
-#: wp-includes/class-wp-xmlrpc-server.php:4968
+#: wp-includes/class-wp-xmlrpc-server.php:5365
 msgid ""
 "The source URL and the target URL cannot both point to the same resource."
 msgstr ""
 "L&rsquo;adresse source et l&rsquo;adresse cible ne peuvent pointer vers la "
 "même ressource."
 
-#: wp-includes/class-wp-xmlrpc-server.php:4976
+#: wp-includes/class-wp-xmlrpc-server.php:5373
 msgid "The pingback has already been registered."
 msgstr "Le ping a déjà été enregistré."
 
-#: wp-includes/class-wp-xmlrpc-server.php:4984
+#: wp-includes/class-wp-xmlrpc-server.php:5381
 msgid "The source URL does not exist."
 msgstr "L&rsquo;adresse d&rsquo;origine n&rsquo;existe pas."
 
-#: wp-includes/class-wp-xmlrpc-server.php:4996
+#: wp-includes/class-wp-xmlrpc-server.php:5393
 msgid "We cannot find a title on that page."
 msgstr "Nous ne trouvons pas du titre pour cette page."
 
-#: wp-includes/class-wp-xmlrpc-server.php:5032
+#: wp-includes/class-wp-xmlrpc-server.php:5429
 msgid ""
 "The source URL does not contain a link to the target URL, and so cannot be "
 "used as a source."
@@ -2261,29 +2303,29 @@
 "L&rsquo;adresse source ne contient pas de lien vers l&rsquo;adresse cible, "
 "et ne peut donc pas être utilisée comme source."
 
-#: wp-includes/class-wp-xmlrpc-server.php:5053
+#: wp-includes/class-wp-xmlrpc-server.php:5450
 msgid "Pingback from %1$s to %2$s registered. Keep the web talking! :-)"
 msgstr ""
 "Réception d&rsquo;un ping de %1$s pour %2$s. Continuons la "
 "conversation&nbsp;!&nbsp;:-)"
 
-#: wp-includes/class-wp-xmlrpc-server.php:5086
+#: wp-includes/class-wp-xmlrpc-server.php:5483
 msgid "The specified target URL does not exist."
 msgstr "L&rsquo;adresse cible spécifiée n&rsquo;existe pas."
 
-#: wp-includes/comment-template.php:580 wp-includes/comment-template.php:978
+#: wp-includes/comment-template.php:580 wp-includes/comment-template.php:975
 msgid "% Comments"
 msgstr "% commentaires"
 
-#: wp-includes/comment-template.php:582 wp-includes/comment-template.php:976
+#: wp-includes/comment-template.php:582 wp-includes/comment-template.php:973
 msgid "No Comments"
 msgstr "Pas de commentaire"
 
-#: wp-includes/comment-template.php:584 wp-includes/comment-template.php:977
+#: wp-includes/comment-template.php:584 wp-includes/comment-template.php:974
 msgid "1 Comment"
 msgstr "Un commentaire"
 
-#: wp-includes/comment-template.php:678 wp-includes/comment-template.php:1538
+#: wp-includes/comment-template.php:678 wp-includes/comment-template.php:1535
 msgctxt "noun"
 msgid "Comment"
 msgstr "Commentaire"
@@ -2304,91 +2346,91 @@
 "Utilisez plutôt <code>get_trackback_url()</code> si vous préférez que la "
 "valeur ne soit pas affichée."
 
-#: wp-includes/comment-template.php:979
+#: wp-includes/comment-template.php:976
 msgid "Comments Off"
 msgstr "Commentaires fermés"
 
-#: wp-includes/comment-template.php:989
+#: wp-includes/comment-template.php:986
 msgid "Enter your password to view comments."
 msgstr "Saisissez votre mot de passe pour accéder aux commentaires."
 
-#: wp-includes/comment-template.php:1016
+#: wp-includes/comment-template.php:1013
 msgid "Comment on %s"
 msgstr "Commentaire sur %s"
 
-#: wp-includes/comment-template.php:1041 wp-includes/script-loader.php:334
+#: wp-includes/comment-template.php:1038 wp-includes/script-loader.php:364
 msgid "Reply"
 msgstr "Répondre"
 
-#: wp-includes/comment-template.php:1042
+#: wp-includes/comment-template.php:1039
 msgid "Log in to Reply"
 msgstr "Connectez-vous pour répondre"
 
-#: wp-includes/comment-template.php:1102
+#: wp-includes/comment-template.php:1099
 msgid "Leave a Comment"
 msgstr "Laisser un commentaire"
 
-#: wp-includes/comment-template.php:1103
+#: wp-includes/comment-template.php:1100
 msgid "Log in to leave a Comment"
 msgstr "Connectez-vous pour laisser un commentaire"
 
-#: wp-includes/comment-template.php:1142
+#: wp-includes/comment-template.php:1139
 msgid "Click here to cancel reply."
 msgstr "Cliquez ici pour annuler la réponse."
 
-#: wp-includes/comment-template.php:1199 wp-includes/comment-template.php:1545
+#: wp-includes/comment-template.php:1196 wp-includes/comment-template.php:1542
 #: wp-includes/theme-compat/comments.php:58
 msgid "Leave a Reply"
 msgstr "Laisser un commentaire"
 
-#: wp-includes/comment-template.php:1200 wp-includes/comment-template.php:1546
+#: wp-includes/comment-template.php:1197 wp-includes/comment-template.php:1543
 #: wp-includes/theme-compat/comments.php:58
 msgid "Leave a Reply to %s"
 msgstr "Répondre à %s"
 
-#: wp-includes/comment-template.php:1357
+#: wp-includes/comment-template.php:1354
 msgid "<cite class=\"fn\">%s</cite> <span class=\"says\">says:</span>"
 msgstr "<cite class=\"fn\">%s</cite> <span class=\"says\">dit&nbsp;:</span>"
 
-#: wp-includes/comment-template.php:1360
+#: wp-includes/comment-template.php:1357
 msgid "Your comment is awaiting moderation."
 msgstr "Votre commentaire est en attente de modération"
 
 #. translators: 1: date, 2: time
-#: wp-includes/comment-template.php:1367
+#: wp-includes/comment-template.php:1364
 msgid "%1$s at %2$s"
 msgstr "%1$s à %2$s"
 
-#: wp-includes/comment-template.php:1367
+#: wp-includes/comment-template.php:1364
 msgid "(Edit)"
 msgstr "(Modifier)"
 
-#: wp-includes/comment-template.php:1527
+#: wp-includes/comment-template.php:1524
 #: wp-includes/theme-compat/comments-popup.php:75
 #: wp-includes/theme-compat/comments.php:77
 msgid "Name"
 msgstr "Nom"
 
-#: wp-includes/comment-template.php:1529
+#: wp-includes/comment-template.php:1526
 msgid "Email"
 msgstr "Adresse de contact"
 
-#: wp-includes/comment-template.php:1531
+#: wp-includes/comment-template.php:1528
 #: wp-includes/theme-compat/comments.php:83
 msgid "Website"
 msgstr "Site web"
 
-#: wp-includes/comment-template.php:1535
+#: wp-includes/comment-template.php:1532
 msgid "Required fields are marked %s"
 msgstr "Les champs obligatoires sont indiqués avec %s"
 
-#: wp-includes/comment-template.php:1539
+#: wp-includes/comment-template.php:1536
 #: wp-includes/theme-compat/comments.php:65
 msgid "You must be <a href=\"%s\">logged in</a> to post a comment."
 msgstr ""
 "Vous devez <a href=\"%s\">être connecté</a> pour rédiger un commentaire."
 
-#: wp-includes/comment-template.php:1540
+#: wp-includes/comment-template.php:1537
 msgid ""
 "Logged in as <a href=\"%1$s\">%2$s</a>. <a href=\"%3$s\" title=\"Log out of "
 "this account\">Log out?</a>"
@@ -2396,11 +2438,11 @@
 "Connecté en tant que <a href=\"%1$s\">%2$s</a>. <a href=\"%3$s\" title=\"Se "
 "déconnecter de ce compte\">Se déconnecter&nbsp;?</a>"
 
-#: wp-includes/comment-template.php:1541
+#: wp-includes/comment-template.php:1538
 msgid "Your email address will not be published."
 msgstr "Votre adresse de messagerie ne sera pas publiée."
 
-#: wp-includes/comment-template.php:1542
+#: wp-includes/comment-template.php:1539
 msgid ""
 "You may use these <abbr title=\"HyperText Markup Language\">HTML</abbr> tags "
 "and attributes: %s"
@@ -2408,31 +2450,31 @@
 "Vous pouvez utiliser ces balises et attributs <abbr title=\"HyperText Markup "
 "Language\">HTML</abbr>&nbsp;: %s"
 
-#: wp-includes/comment-template.php:1547
+#: wp-includes/comment-template.php:1544
 msgid "Cancel reply"
 msgstr "Annuler la réponse."
 
-#: wp-includes/comment-template.php:1548
+#: wp-includes/comment-template.php:1545
 msgid "Post Comment"
 msgstr "Laisser un commentaire"
 
-#: wp-includes/comment.php:387
+#: wp-includes/comment.php:420
 msgid "Unapproved"
 msgstr "Désapprouvé"
 
 #. translators: comment status
-#: wp-includes/comment.php:389
+#: wp-includes/comment.php:422
 msgctxt "adjective"
 msgid "Approved"
 msgstr "Approuvé"
 
 #. translators: comment status
-#: wp-includes/comment.php:391
+#: wp-includes/comment.php:424
 msgctxt "adjective"
 msgid "Spam"
 msgstr "Indésirable"
 
-#: wp-includes/comment.php:646 wp-includes/comment.php:648
+#: wp-includes/comment.php:679 wp-includes/comment.php:681
 msgid ""
 "Duplicate comment detected; it looks as though you&#8217;ve already said "
 "that!"
@@ -2440,11 +2482,11 @@
 "Détection d&rsquo;un doublon&nbsp;: il semble que vous avez déjà envoyé ce "
 "commentaire&nbsp!"
 
-#: wp-includes/comment.php:706 wp-includes/comment.php:708
+#: wp-includes/comment.php:738 wp-includes/comment.php:740
 msgid "You are posting comments too quickly. Slow down."
 msgstr "Vous envoyez vos commentaires trop rapidement. Prenez votre temps."
 
-#: wp-includes/comment.php:1423
+#: wp-includes/comment.php:1462
 msgid "Could not update comment status"
 msgstr "Impossible de mettre à jour le statut du commentaire"
 
@@ -2456,15 +2498,15 @@
 "Cet argument a été transformé en un tableau, afin de mieux correspondre au "
 "comportement des autres fonctions de cron."
 
-#: wp-includes/cron.php:316
+#: wp-includes/cron.php:321
 msgid "Once Hourly"
 msgstr "Une fois par heure"
 
-#: wp-includes/cron.php:317
+#: wp-includes/cron.php:322
 msgid "Twice Daily"
 msgstr "Deux fois par jour"
 
-#: wp-includes/cron.php:318
+#: wp-includes/cron.php:323
 msgid "Once Daily"
 msgstr "Une fois par jour"
 
@@ -2473,7 +2515,7 @@
 msgstr "Les pages statiques de votre site WordPress"
 
 #: wp-includes/default-widgets.php:18 wp-includes/default-widgets.php:24
-#: wp-includes/post-template.php:817 wp-includes/theme-compat/sidebar.php:55
+#: wp-includes/post-template.php:818 wp-includes/theme-compat/sidebar.php:55
 msgid "Pages"
 msgstr "Pages"
 
@@ -2531,8 +2573,9 @@
 msgstr "ID du lien"
 
 #: wp-includes/default-widgets.php:164
+msgctxt "Links widget"
 msgid "Random"
-msgstr "Au hasard"
+msgstr "Aléatoire"
 
 #: wp-includes/default-widgets.php:169
 msgid "Show Link Image"
@@ -2652,117 +2695,123 @@
 msgid "Recent Posts"
 msgstr "Articles récents"
 
-#: wp-includes/default-widgets.php:610
+#: wp-includes/default-widgets.php:618
 msgid "Number of posts to show:"
 msgstr "Nombre d&rsquo;articles à afficher&nbsp;:"
 
-#: wp-includes/default-widgets.php:624
+#: wp-includes/default-widgets.php:622
+msgid "Display post date?"
+msgstr "Afficher la date du contenu&nbsp;?"
+
+#: wp-includes/default-widgets.php:635
 msgid "The most recent comments"
 msgstr "Les commentaires les plus récents"
 
-#: wp-includes/default-widgets.php:625 wp-includes/default-widgets.php:666
+#: wp-includes/default-widgets.php:636 wp-includes/default-widgets.php:677
 msgid "Recent Comments"
 msgstr "Commentaires récents"
 
 #. translators: comments widget: 1: comment author, 2: post link
-#: wp-includes/default-widgets.php:679
+#: wp-includes/default-widgets.php:694
 msgctxt "widgets"
 msgid "%1$s on %2$s"
 msgstr "%1$s dans %2$s"
 
-#: wp-includes/default-widgets.php:710
+#: wp-includes/default-widgets.php:725
 msgid "Number of comments to show:"
 msgstr "Nombre de commentaires à afficher&nbsp;:"
 
-#: wp-includes/default-widgets.php:724
+#: wp-includes/default-widgets.php:739
 msgid "Entries from any RSS or Atom feed"
 msgstr "Articles en provenance de n&rsquo;importe lequel flux RSS ou ATOM"
 
-#: wp-includes/default-widgets.php:726
+#: wp-includes/default-widgets.php:741
 msgid "RSS"
 msgstr "Flux"
 
-#: wp-includes/default-widgets.php:762
+#: wp-includes/default-widgets.php:777
 msgid "Unknown Feed"
 msgstr "Flux inconnu"
 
-#: wp-includes/default-widgets.php:768
+#: wp-includes/default-widgets.php:783
 msgid "Syndicate this content"
 msgstr "Suivez ce contenu par syndication RSS"
 
-#: wp-includes/default-widgets.php:816
+#: wp-includes/default-widgets.php:831
 msgid "<strong>RSS Error</strong>: %s"
 msgstr "<strong>Erreur RSS&nbsp;:</strong> %s"
 
-#: wp-includes/default-widgets.php:832
-msgid "An error has occurred; the feed is probably down. Try again later."
-msgstr ""
-"Une erreur est survenue&nbsp;; le flux est probablement indisponible. "
-"Veuillez réessayer plus tard."
-
-#: wp-includes/default-widgets.php:846
+#: wp-includes/default-widgets.php:847 wp-includes/rss.php:895
+msgid ""
+"An error has occurred, which probably means the feed is down. Try again "
+"later."
+msgstr ""
+"Une erreur est survenue, le flux est probablement indisponible. Veuillez "
+"réessayer plus tard."
+
+#: wp-includes/default-widgets.php:861
 msgid "Untitled"
 msgstr "Sans titre"
 
-#: wp-includes/default-widgets.php:924
+#: wp-includes/default-widgets.php:939
 msgid "RSS Error: %s"
 msgstr "Erreur RSS&nbsp;: %s"
 
-#: wp-includes/default-widgets.php:928
+#: wp-includes/default-widgets.php:943
 msgid "Enter the RSS feed URL here:"
 msgstr "Saisissez l&rsquo;adresse web du flux RSS ici&nbsp;:"
 
-#: wp-includes/default-widgets.php:931
+#: wp-includes/default-widgets.php:946
 msgid "Give the feed a title (optional):"
 msgstr "Donnez un titre au flux (facultatif)&nbsp;:"
 
-#: wp-includes/default-widgets.php:934
-msgid "How many items would you like to display?"
-msgstr "Combien d&rsquo;entrées souhaitez-vous afficher&nbsp;?"
-
-#: wp-includes/default-widgets.php:943
-msgid "Display item content?"
-msgstr "Afficher le contenu de l&rsquo;élément&nbsp;?"
-
-#: wp-includes/default-widgets.php:946
-msgid "Display item author if available?"
-msgstr "Afficher l&rsquo;auteur de l&rsquo;élément si disponible&nbsp;?"
-
 #: wp-includes/default-widgets.php:949
+msgid "How many items would you like to display?"
+msgstr "Combien d&rsquo;entrées souhaitez-vous afficher&nbsp;?"
+
+#: wp-includes/default-widgets.php:958
+msgid "Display item content?"
+msgstr "Afficher le contenu de l&rsquo;élément&nbsp;?"
+
+#: wp-includes/default-widgets.php:961
+msgid "Display item author if available?"
+msgstr "Afficher l&rsquo;auteur de l&rsquo;élément si disponible&nbsp;?"
+
+#: wp-includes/default-widgets.php:964
 msgid "Display item date?"
 msgstr "Afficher la date de l&rsquo;élément&nbsp;?"
 
-#: wp-includes/default-widgets.php:1015
+#: wp-includes/default-widgets.php:1030
 msgid "Your most used tags in cloud format"
 msgstr "Vos mots-clefs les plus utilisés, au format &laquo; nuage &raquo;"
 
-#: wp-includes/default-widgets.php:1016
+#: wp-includes/default-widgets.php:1031
 msgid "Tag Cloud"
 msgstr "Nuage de mots-clefs"
 
-#: wp-includes/default-widgets.php:1026
+#: wp-includes/default-widgets.php:1041
 msgid "Tags"
 msgstr "Mots-clefs"
 
-#: wp-includes/default-widgets.php:1054
+#: wp-includes/default-widgets.php:1069
 msgid "Taxonomy:"
 msgstr "Taxinomie&nbsp;:"
 
-#: wp-includes/default-widgets.php:1082
+#: wp-includes/default-widgets.php:1097
 msgid "Use this widget to add one of your custom menus as a widget."
 msgstr ""
 "Utilisez ce widget pour ajouter l&rsquo;un de vos menus en tant que widget."
 
-#: wp-includes/default-widgets.php:1083
+#: wp-includes/default-widgets.php:1098
 msgid "Custom Menu"
 msgstr "Menu personnalisé"
 
-#: wp-includes/default-widgets.php:1120
+#: wp-includes/default-widgets.php:1135
 msgid "No menus have been created yet. <a href=\"%s\">Create some</a>."
 msgstr ""
 "Aucun menu n&rsquo;a été créé pour le moment. <a href=\"%s\">En créer un</a>."
 
-#: wp-includes/default-widgets.php:1129
+#: wp-includes/default-widgets.php:1144
 msgid "Select Menu:"
 msgstr "Sélectionner le menu&nbsp;:"
 
@@ -2771,7 +2820,9 @@
 msgstr "Nouvelle boucle WordPress"
 
 #: wp-includes/deprecated.php:707
-#: wp-includes/js/tinymce/langs/wp-langs.php:516
+#: wp-includes/js/tinymce/langs/wp-langs.php:520
+#: wp-includes/media-template.php:276 wp-includes/media-template.php:301
+#: wp-includes/media-template.php:414 wp-includes/media-template.php:429
 msgid "None"
 msgstr "Aucun"
 
@@ -2779,7 +2830,7 @@
 msgid "Last updated"
 msgstr "Mis à jour récemment"
 
-#: wp-includes/deprecated.php:1898 wp-includes/post-template.php:1161
+#: wp-includes/deprecated.php:1898 wp-includes/post-template.php:1166
 msgid "Missing Attachment"
 msgstr "Fichier attaché manquant"
 
@@ -2791,11 +2842,27 @@
 msgid "Last Post"
 msgstr "Dernier article"
 
+#: wp-includes/deprecated.php:3175 wp-includes/functions.php:1987
+msgid "Are you sure you want to do this?"
+msgstr "Voulez-vous vraiment faire cela&nbsp;?"
+
+#: wp-includes/deprecated.php:3225
+msgid "File &#8220;%s&#8221; doesn&#8217;t exist?"
+msgstr "Le fichier « %s » n&rsquo;existe pas&nbsp;?"
+
+#: wp-includes/deprecated.php:3228
+msgid "The GD image library is not installed."
+msgstr "La bibliothèque d&rsquo;imagerie GD n&rsquo;est pas installée."
+
+#: wp-includes/deprecated.php:3235
+msgid "File &#8220;%s&#8221; is not an image."
+msgstr "Le fichier « %s » n&rsquo;est pas une image."
+
 #: wp-includes/feed-atom-comments.php:19
 msgid "Comments on %s"
 msgstr "Commentaires sur %s"
 
-#: wp-includes/feed-atom-comments.php:21
+#: wp-includes/feed-atom-comments.php:21 wp-includes/feed-rss2-comments.php:24
 msgid "Comments for %1$s searching on %2$s"
 msgstr "Commentaires pour %1$s, recherche de %2$s"
 
@@ -2817,10 +2884,6 @@
 msgid "Comments on: %s"
 msgstr "Commentaires sur : %s"
 
-#: wp-includes/feed-rss2-comments.php:24
-msgid "Comments for %s searching on %s"
-msgstr "Commentaires pour %s, recherche de %s"
-
 # Ne pas ajouter d'entités : utilisé par le flux RSS
 #: wp-includes/feed-rss2-comments.php:54
 msgid "Protected Comments: Please enter your password to view comments."
@@ -2829,7 +2892,7 @@
 "commentaires."
 
 #. translators: opening curly double quote
-#: wp-includes/formatting.php:37
+#: wp-includes/formatting.php:37 wp-includes/formatting.php:3270
 msgctxt "opening curly double quote"
 msgid "&#8220;"
 msgstr "&laquo;&nbsp;"
@@ -2883,25 +2946,25 @@
 msgstr "&#8212;"
 
 #. translators: min=minute
-#: wp-includes/formatting.php:2079
+#: wp-includes/formatting.php:2111
 msgid "%s min"
 msgid_plural "%s mins"
 msgstr[0] "%s minute"
 msgstr[1] "%s minutes"
 
-#: wp-includes/formatting.php:2085
+#: wp-includes/formatting.php:2117
 msgid "%s hour"
 msgid_plural "%s hours"
 msgstr[0] "%s heure"
 msgstr[1] "%s heures"
 
-#: wp-includes/formatting.php:2091
+#: wp-includes/formatting.php:2123
 msgid "%s day"
 msgid_plural "%s days"
 msgstr[0] "%s jour"
 msgstr[1] "%s jours"
 
-#: wp-includes/formatting.php:2143 wp-includes/general-template.php:1975
+#: wp-includes/formatting.php:2175 wp-includes/general-template.php:1978
 msgid "&hellip;"
 msgstr "&hellip;"
 
@@ -2913,12 +2976,12 @@
 #. characters),
 #. enter 'characters'. Otherwise, enter 'words'. Do not translate into
 #. your own language.
-#: wp-includes/formatting.php:2148 wp-includes/script-loader.php:291
+#: wp-includes/formatting.php:2180 wp-includes/script-loader.php:303
 msgctxt "word count: words or characters?"
 msgid "words"
 msgstr "words"
 
-#: wp-includes/formatting.php:2731
+#: wp-includes/formatting.php:2763
 msgid ""
 "The email address entered did not appear to be a valid email address. Please "
 "enter a valid email address."
@@ -2926,7 +2989,7 @@
 "L&rsquo;adresse de messagerie fournie ne semble pas être valide. Veuillez "
 "saisir une adresse valide."
 
-#: wp-includes/formatting.php:2815
+#: wp-includes/formatting.php:2850
 msgid ""
 "The WordPress address you entered did not appear to be a valid URL. Please "
 "enter a valid URL."
@@ -2934,7 +2997,7 @@
 "L&rsquo;adresse de WordPress que vous avez saisie ne semble pas être valide. "
 "Veuillez entrer une adresse valide."
 
-#: wp-includes/formatting.php:2825
+#: wp-includes/formatting.php:2860
 msgid ""
 "The Site address you entered did not appear to be a valid URL. Please enter "
 "a valid URL."
@@ -2942,33 +3005,28 @@
 "L&rsquo;adresse de site que vous avez saisie ne semble pas être valide. "
 "Veuillez entrer une adresse valide."
 
-#: wp-includes/formatting.php:2840
+#: wp-includes/formatting.php:2901
 msgid ""
 "The timezone you have entered is not valid. Please select a valid timezone."
 msgstr ""
 "Le fuseau horaire ne semble pas être valide. Veuillez en choisir une valide."
 
 #. translators: used between list items, there is a space after the and
-#: wp-includes/formatting.php:2995
+#: wp-includes/formatting.php:3056
 msgid ", and "
 msgstr ", et "
 
 #. translators: used between only two list items, there is a space after the
 #. and
-#: wp-includes/formatting.php:2997
+#: wp-includes/formatting.php:3058
 msgid " and "
 msgstr " et "
 
-#: wp-includes/formatting.php:3209
-msgctxt "opening curly quote"
-msgid "&#8220;"
-msgstr "&#8220;"
-
-#: wp-includes/functions.php:988
+#: wp-includes/functions.php:994
 msgid "ERROR: %s is not a valid feed template."
 msgstr "ERREUR&nbsp;: %s n&rsquo;est pas un flux valide"
 
-#: wp-includes/functions.php:1132
+#: wp-includes/functions.php:1138
 msgid ""
 "One or more database tables are unavailable. The database may need to be <a "
 "href=\"%s\">repaired</a>."
@@ -2976,7 +3034,7 @@
 "Une ou plusieurs tables de votre base de données sont indisponibles. La base "
 "de données a peut-être besoin d&rsquo;être <a href=\"%s\">réparée</a>."
 
-#: wp-includes/functions.php:1489 wp-includes/functions.php:1607
+#: wp-includes/functions.php:1587 wp-includes/functions.php:1710
 msgid ""
 "Unable to create directory %s. Is its parent directory writable by the "
 "server?"
@@ -2984,207 +3042,58 @@
 "Impossible de créer le dossier %s. Son dossier parent est-il accessible en "
 "écriture par le serveur&nbsp;?"
 
-#: wp-includes/functions.php:1586
+#: wp-includes/functions.php:1684
 msgid "Empty filename"
 msgstr "Pas de nom de fichier"
 
-#: wp-includes/functions.php:1590
+#: wp-includes/functions.php:1688
 msgid "Invalid file type"
 msgstr "Type du fichier non valide"
 
-#: wp-includes/functions.php:1613
+#: wp-includes/functions.php:1716
 msgid "Could not write file %s"
 msgstr "Impossible d&rsquo;écrire le fichier %s"
 
-#: wp-includes/functions.php:1864
-msgid "Your attempt to edit this attachment: &#8220;%s&#8221; has failed."
-msgstr "Votre tentative de modification du fichier attaché « %s » a échoué."
-
-#: wp-includes/functions.php:1866
-msgid "Your attempt to add this category has failed."
-msgstr "Votre tentative d&rsquo;ajout de la catégorie a échoué."
-
-#: wp-includes/functions.php:1867
-msgid "Your attempt to delete this category: &#8220;%s&#8221; has failed."
-msgstr "Votre tentative de suppression de la catégorie « %s » a échoué."
-
-#: wp-includes/functions.php:1868
-msgid "Your attempt to edit this category: &#8220;%s&#8221; has failed."
-msgstr "Votre tentative de modification de la catégorie « %s » a échoué."
-
-#: wp-includes/functions.php:1870
-msgid "Your attempt to delete this comment: &#8220;%s&#8221; has failed."
-msgstr "Votre tentative de suppression du commentaire « %s » a échoué."
-
-#: wp-includes/functions.php:1871
-msgid "Your attempt to unapprove this comment: &#8220;%s&#8221; has failed."
-msgstr "Votre tentative de désapprobation du commentaire « %s » a échoué."
-
-#: wp-includes/functions.php:1872
-msgid "Your attempt to approve this comment: &#8220;%s&#8221; has failed."
-msgstr "Votre tentative d&rsquo;approbation du commentaire « %s » a échoué."
-
-#: wp-includes/functions.php:1873
-msgid "Your attempt to edit this comment: &#8220;%s&#8221; has failed."
-msgstr "Votre tentative de modification du commentaire « %s » a échoué."
-
-#: wp-includes/functions.php:1874
-msgid "Your attempt to bulk modify comments has failed."
-msgstr "Votre tentative de modification des commentaires a échoué."
-
-#: wp-includes/functions.php:1875
-msgid "Your attempt to moderate comments has failed."
-msgstr "Votre tentative de modération des commentaires a échoué."
-
-#: wp-includes/functions.php:1877
-msgid "Your attempt to add this link has failed."
-msgstr "Votre tentative pour ajouter ce lien a échoué."
-
-#: wp-includes/functions.php:1878
-msgid "Your attempt to delete this link: &#8220;%s&#8221; has failed."
-msgstr "Votre tentative de suppression du lien « %s » a échoué."
-
-#: wp-includes/functions.php:1879
-msgid "Your attempt to edit this link: &#8220;%s&#8221; has failed."
-msgstr "Votre tentative de modification du lien « %s » a échoué."
-
-#: wp-includes/functions.php:1880
-msgid "Your attempt to bulk modify links has failed."
-msgstr "Votre tentative de modification des liens a échoué."
-
-#: wp-includes/functions.php:1882
-msgid "Your attempt to add this page has failed."
-msgstr "Votre tentative pour ajouter cette page a échoué."
-
-#: wp-includes/functions.php:1883
-msgid "Your attempt to delete this page: &#8220;%s&#8221; has failed."
-msgstr "Votre tentative de suppression de la page « %s » a échoué."
-
-#: wp-includes/functions.php:1884
-msgid "Your attempt to edit this page: &#8220;%s&#8221; has failed."
-msgstr "Votre tentative de modification de la page « %s » a échoué."
-
-#: wp-includes/functions.php:1886
-msgid "Your attempt to edit this plugin file: &#8220;%s&#8221; has failed."
-msgstr ""
-"Votre tentative de modification du fichier de l&rsquo;extension « %s » a "
-"échoué."
-
-#: wp-includes/functions.php:1887
-msgid "Your attempt to activate this plugin: &#8220;%s&#8221; has failed."
-msgstr ""
-"Votre tentative de modification d&rsquo;activation de l&rsquo;extension « %s "
-"» a échoué."
-
-#: wp-includes/functions.php:1888
-msgid "Your attempt to deactivate this plugin: &#8220;%s&#8221; has failed."
-msgstr ""
-"Votre tentative de modification de désactivation de l&rsquo;extension « %s » "
-"a échoué."
-
-#: wp-includes/functions.php:1889
-msgid "Your attempt to update this plugin: &#8220;%s&#8221; has failed."
-msgstr "Votre tentative de mise à jour de l&rsquo;extension « %s » a échoué."
-
-#: wp-includes/functions.php:1891
-msgid "Your attempt to add this post has failed."
-msgstr "Votre tentative d&rsquo;ajout d&rsquo;un article a échoué."
-
-#: wp-includes/functions.php:1892
-msgid "Your attempt to delete this post: &#8220;%s&#8221; has failed."
-msgstr "Votre tentative de suppression de l&rsquo;article « %s » a échoué."
-
-#: wp-includes/functions.php:1893
-msgid "Your attempt to edit this post: &#8220;%s&#8221; has failed."
-msgstr "Votre tentative de modification de l&rsquo;article « %s » a échoué."
-
-#: wp-includes/functions.php:1895
-msgid "Your attempt to add this user has failed."
-msgstr "Votre tentative pour ajouter cet utilisateur a échoué."
-
-#: wp-includes/functions.php:1896
-msgid "Your attempt to delete users has failed."
-msgstr "Votre tentative de suppression des utilisateurs a échoué."
-
-#: wp-includes/functions.php:1897
-msgid "Your attempt to bulk modify users has failed."
-msgstr "Votre tentative de modification des utilisateurs a échoué."
-
-#: wp-includes/functions.php:1898
-msgid "Your attempt to edit this user: &#8220;%s&#8221; has failed."
-msgstr ""
-"Votre tentative de modification de l&rsquo;utilisateur « %s » a échoué."
-
-#: wp-includes/functions.php:1899
-msgid "Your attempt to modify the profile for: &#8220;%s&#8221; has failed."
-msgstr "Votre tentative de modification du profil de « %s » a échoué."
-
-#: wp-includes/functions.php:1901
-msgid "Your attempt to edit your settings has failed."
-msgstr "Votre tentative de modification de vos réglages a échoué."
-
-#: wp-includes/functions.php:1902
-msgid "Your attempt to change your permalink structure to: %s has failed."
-msgstr ""
-"Votre tentative de modification de la structure des permaliens en %s a "
-"échoué."
-
-#: wp-includes/functions.php:1903
-msgid "Your attempt to edit this file: &#8220;%s&#8221; has failed."
-msgstr "Votre tentative d&rsquo;édition du fichier « %s » a échoué."
-
-#: wp-includes/functions.php:1904
-msgid "Your attempt to edit this theme file: &#8220;%s&#8221; has failed."
-msgstr "Votre tentative de modification du fichier du thème « %s » a échoué."
-
-#: wp-includes/functions.php:1905
-msgid "Your attempt to switch to this theme: &#8220;%s&#8221; has failed."
-msgstr "Votre tentative de modification du thème « %s » a échoué."
-
-#: wp-includes/functions.php:1907
+#: wp-includes/functions.php:1982
+msgid "WordPress Failure Notice"
+msgstr "Avertissement d&rsquo;échec de WordPress"
+
+#: wp-includes/functions.php:1984
 msgid "You are attempting to log out of %s"
 msgstr "Vous êtes en train de vous déconnecter de %s."
 
-#: wp-includes/functions.php:1927 wp-includes/functions.php:1929
-msgid "Are you sure you want to do this?"
-msgstr "Voulez-vous vraiment faire cela&nbsp;?"
-
-#: wp-includes/functions.php:1946
-msgid "WordPress Failure Notice"
-msgstr "Avertissement d&rsquo;échec de WordPress"
-
-#: wp-includes/functions.php:1949
+#: wp-includes/functions.php:1985
 msgid "Do you really want to <a href='%s'>log out</a>?"
 msgstr "Voulez-vous réellement <a href='%s'>vous déconnecter</a>&nbsp;?"
 
-#: wp-includes/functions.php:1951
+#: wp-includes/functions.php:1989 wp-includes/ms-functions.php:1641
 msgid "Please try again."
-msgstr "Merci de réessayer."
-
-#: wp-includes/functions.php:2026
+msgstr "Veuillez réessayer."
+
+#: wp-includes/functions.php:2063
 msgid "&laquo; Back"
 msgstr "&laquo; Retour"
 
-#: wp-includes/functions.php:2038 wp-load.php:60
+#: wp-includes/functions.php:2075 wp-load.php:62
 msgid "WordPress &rsaquo; Error"
 msgstr "WordPress &raquo; Erreur"
 
-#: wp-includes/functions.php:2615
+#: wp-includes/functions.php:2734
 msgid "Database Error"
 msgstr "Erreur de la base de données"
 
-#: wp-includes/functions.php:2619
+#: wp-includes/functions.php:2738 wp-includes/ms-load.php:237
 msgid "Error establishing a database connection"
 msgstr "Erreur lors de la connexion à la base de données"
 
-#: wp-includes/functions.php:2705 wp-includes/functions.php:2745
+#: wp-includes/functions.php:2824 wp-includes/functions.php:2864
 msgid ""
 "%1$s is <strong>deprecated</strong> since version %2$s! Use %3$s instead."
 msgstr ""
 "%1$s est <strong>déprécié</strong> depuis la version %2$s! Utilisez %3$s à "
 "la place."
 
-#: wp-includes/functions.php:2707 wp-includes/functions.php:2747
+#: wp-includes/functions.php:2826 wp-includes/functions.php:2866
 msgid ""
 "%1$s is <strong>deprecated</strong> since version %2$s with no alternative "
 "available."
@@ -3192,7 +3101,7 @@
 "%1$s est <strong>déprécié</strong> depuis la version %2$s, aucune "
 "alternative n&rsquo;est disponible."
 
-#: wp-includes/functions.php:2789
+#: wp-includes/functions.php:2908
 msgid ""
 "%1$s was called with an argument that is <strong>deprecated</strong> since "
 "version %2$s! %3$s"
@@ -3200,7 +3109,7 @@
 "%1$s est appelé avec un argument qui est <strong>déprécié</strong> depuis la "
 "version %2$s&nbsp;! %3$s"
 
-#: wp-includes/functions.php:2791
+#: wp-includes/functions.php:2910
 msgid ""
 "%1$s was called with an argument that is <strong>deprecated</strong> since "
 "version %2$s with no alternative available."
@@ -3208,11 +3117,11 @@
 "%1$s est appelé avec un argument qui est <strong>déprécié</strong> depuis la "
 "version %2$s, aucune alternative n&rsquo;est disponible."
 
-#: wp-includes/functions.php:2823
+#: wp-includes/functions.php:2942
 msgid "(This message was added in version %s.)"
 msgstr "(Ce message a été ajouté à la version %s.)"
 
-#: wp-includes/functions.php:2824
+#: wp-includes/functions.php:2943
 msgid ""
 "Please see <a href=\"http://codex.wordpress.org/Debugging_in_WordPress"
 "\">Debugging in WordPress</a> for more information."
@@ -3221,19 +3130,19 @@
 "Debugging_in_WordPress\">Debugger dans WordPress (EN)</a> pour plus d&rsquo;"
 "informations."
 
-#: wp-includes/functions.php:2825
+#: wp-includes/functions.php:2944
 msgid "%1$s was called <strong>incorrectly</strong>. %2$s %3$s"
 msgstr "%1$s est appelée de la mauvaise manière. %2$s %3$s"
 
-#: wp-includes/functions.php:3219
+#: wp-includes/functions.php:3339
 msgid "Select a city"
 msgstr "Sélectionnez une ville"
 
-#: wp-includes/functions.php:3264 wp-includes/functions.php:3268
+#: wp-includes/functions.php:3384 wp-includes/functions.php:3388
 msgid "UTC"
 msgstr "UTC"
 
-#: wp-includes/functions.php:3272
+#: wp-includes/functions.php:3392
 msgid "Manual Offsets"
 msgstr "Décalages manuels"
 
@@ -3243,14 +3152,14 @@
 #: wp-includes/functions.wp-scripts.php:109
 #: wp-includes/functions.wp-scripts.php:129
 #: wp-includes/functions.wp-scripts.php:153
-#: wp-includes/functions.wp-scripts.php:177
+#: wp-includes/functions.wp-scripts.php:179
 #: wp-includes/functions.wp-styles.php:30
 #: wp-includes/functions.wp-styles.php:57
 #: wp-includes/functions.wp-styles.php:85
 #: wp-includes/functions.wp-styles.php:106
 #: wp-includes/functions.wp-styles.php:137
 #: wp-includes/functions.wp-styles.php:159
-#: wp-includes/functions.wp-styles.php:183
+#: wp-includes/functions.wp-styles.php:186
 msgid ""
 "Scripts and styles should not be registered or enqueued until the %1$s, "
 "%2$s, or %3$s hooks."
@@ -3258,45 +3167,45 @@
 "Les scripts et les styles ne peuvent pas être enregistrés ou ajoutés avant "
 "le déclenchement des crochets %1$s, %2$s ou %3$s."
 
-#: wp-includes/general-template.php:161
+#: wp-includes/general-template.php:162
 msgid "Search for:"
 msgstr "Recherche pour:"
 
-#: wp-includes/general-template.php:187 wp-login.php:446 wp-login.php:471
-#: wp-login.php:502 wp-login.php:558
+#: wp-includes/general-template.php:189 wp-login.php:449 wp-login.php:477
+#: wp-login.php:508 wp-login.php:564
 msgid "Log in"
 msgstr "Connexion"
 
-#: wp-includes/general-template.php:189
+#: wp-includes/general-template.php:191
 msgid "Log out"
 msgstr "Déconnexion"
 
-#: wp-includes/general-template.php:258 wp-login.php:543 wp-login.php:677
+#: wp-includes/general-template.php:261 wp-login.php:549 wp-login.php:682
 msgid "Username"
 msgstr "Identifiant"
 
-#: wp-includes/general-template.php:259 wp-login.php:681
+#: wp-includes/general-template.php:262 wp-login.php:686
 msgid "Password"
 msgstr "Mot de passe"
 
-#: wp-includes/general-template.php:260 wp-login.php:685
+#: wp-includes/general-template.php:263 wp-login.php:690
 msgid "Remember Me"
 msgstr "Se souvenir de moi"
 
-#: wp-includes/general-template.php:261 wp-login.php:668 wp-login.php:687
+#: wp-includes/general-template.php:264 wp-login.php:673 wp-login.php:692
 msgid "Log In"
 msgstr "Se connecter"
 
-#: wp-includes/general-template.php:336 wp-login.php:448 wp-login.php:504
-#: wp-login.php:554 wp-login.php:704
+#: wp-includes/general-template.php:341 wp-login.php:451 wp-login.php:510
+#: wp-login.php:560 wp-login.php:709
 msgid "Register"
 msgstr "Inscription"
 
-#: wp-includes/general-template.php:340
+#: wp-includes/general-template.php:345
 msgid "Site Admin"
 msgstr "Admin. du Site"
 
-#: wp-includes/general-template.php:405
+#: wp-includes/general-template.php:410
 msgid ""
 "The <code>%s</code> option is deprecated for the family of <code>bloginfo()</"
 "code> functions."
@@ -3304,141 +3213,146 @@
 "L&rsquo;option <code>%s</code> est obsolète pour la famille des fonctions "
 "basées sur <code>bloginfo()</code>."
 
-#: wp-includes/general-template.php:405
+#: wp-includes/general-template.php:410
 msgid "Use the <code>%s</code> option instead."
 msgstr "Utilisez plutôt l&rsquo;option <code>%s</code>."
 
 #. translators: 1: separator, 2: search phrase
-#: wp-includes/general-template.php:587
+#: wp-includes/general-template.php:580
 msgid "Search Results %1$s %2$s"
 msgstr "Résultats de recherche %1$s %2$s"
 
-#: wp-includes/general-template.php:592
+#: wp-includes/general-template.php:585
 msgid "Page not found"
 msgstr "Page non trouvée"
 
 # %1$s : le mois
 # %2$d : l'année
 #. translators: 1: month name, 2: 4-digit year
-#: wp-includes/general-template.php:939
+#: wp-includes/general-template.php:937
 msgid "%1$s %2$d"
 msgstr "%1$s %2$d"
 
 #. translators: Calendar caption: 1: month name, 2: 4-digit year
-#: wp-includes/general-template.php:1147
+#: wp-includes/general-template.php:1146
 msgctxt "calendar caption"
 msgid "%1$s %2$s"
 msgstr "%1$s %2$s"
 
-#: wp-includes/general-template.php:1173 wp-includes/general-template.php:1181
+#: wp-includes/general-template.php:1172 wp-includes/general-template.php:1180
 msgid "View posts for %1$s %2$s"
 msgstr "Voir les articles pour %1$s %2$s"
 
 #. translators: Separator between blog name and feed type in feed links
-#: wp-includes/general-template.php:1602 wp-includes/general-template.php:1625
+#: wp-includes/general-template.php:1600 wp-includes/general-template.php:1623
 msgctxt "feed link"
 msgid "&raquo;"
 msgstr "&raquo;"
 
 #. translators: 1: blog title, 2: separator (raquo)
-#: wp-includes/general-template.php:1604
+#: wp-includes/general-template.php:1602
 msgid "%1$s %2$s Feed"
 msgstr "%1$s %2$s Flux"
 
 #. translators: %s: blog title, 2: separator (raquo)
-#: wp-includes/general-template.php:1606
+#: wp-includes/general-template.php:1604
 msgid "%1$s %2$s Comments Feed"
 msgstr "%1$s %2$s Flux des commentaires"
 
 #. translators: 1: blog name, 2: separator(raquo), 3: post title
-#: wp-includes/general-template.php:1627
+#: wp-includes/general-template.php:1625
 msgid "%1$s %2$s %3$s Comments Feed"
 msgstr "%1$s %2$s %3$s Flux des commentaires"
 
 #. translators: 1: blog name, 2: separator(raquo), 3: category name
-#: wp-includes/general-template.php:1629
+#: wp-includes/general-template.php:1627
 msgid "%1$s %2$s %3$s Category Feed"
 msgstr "%1$s %2$s Flux de la catégorie %3$s"
 
 #. translators: 1: blog name, 2: separator(raquo), 3: tag name
-#: wp-includes/general-template.php:1631
+#: wp-includes/general-template.php:1629
 msgid "%1$s %2$s %3$s Tag Feed"
 msgstr "%1$s %2$s Flux du mot-clef %3$s"
 
 #. translators: 1: blog name, 2: separator(raquo), 3: author name
-#: wp-includes/general-template.php:1633
+#: wp-includes/general-template.php:1631
 msgid "%1$s %2$s Posts by %3$s Feed"
 msgstr "%1$s %2$s Flux des articles écrits par %3$s"
 
 #. translators: 1: blog name, 2: separator(raquo), 3: search phrase
-#: wp-includes/general-template.php:1635
+#: wp-includes/general-template.php:1633
 msgid "%1$s %2$s Search Results for &#8220;%3$s&#8221; Feed"
 msgstr "%1$s %2$s Flux de résultats de la recherche pour &quot;%3$s&quot;"
 
-#: wp-includes/general-template.php:1927
+#. translators: 1: blog name, 2: separator(raquo), 3: post type name
+#: wp-includes/general-template.php:1635
+msgid "%1$s %2$s %3$s Feed"
+msgstr "%1$s %2$s Flux pour %3$s"
+
+#: wp-includes/general-template.php:1930
 msgid "&laquo; Previous"
 msgstr "&laquo; Précédent"
 
-#: wp-includes/general-template.php:1928
+#: wp-includes/general-template.php:1931
 msgid "Next &raquo;"
 msgstr "Suivant &raquo;"
 
-#: wp-includes/general-template.php:2035
+#: wp-includes/general-template.php:2038
 msgctxt "admin color scheme"
 msgid "Blue"
 msgstr "Bleu"
 
-#: wp-includes/general-template.php:2037
+#: wp-includes/general-template.php:2040
 msgctxt "admin color scheme"
 msgid "Gray"
 msgstr "Gris"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:15
+#: wp-includes/js/tinymce/langs/wp-langs.php:18
 msgid "Do you want to use the WYSIWYG mode for this textarea?"
 msgstr "Voulez-vous utiliser le mode WYSIWYG pour ce champ textuel&nbsp;?"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:16
+#: wp-includes/js/tinymce/langs/wp-langs.php:19
 msgid "Apply"
 msgstr "Appliquer"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:17
-msgid "Insert"
-msgstr "Insérer"
-
 #: wp-includes/js/tinymce/langs/wp-langs.php:20
-#: wp-includes/js/tinymce/wp-mce-help.php:287
-#: wp-includes/script-loader.php:178 wp-includes/script-loader.php:307
-#: wp-login.php:612
+msgid "Insert"
+msgstr "Insérer"
+
+#: wp-includes/js/tinymce/langs/wp-langs.php:23
+#: wp-includes/js/tinymce/wp-mce-help.php:245
+#: wp-includes/media-template.php:32 wp-includes/script-loader.php:187
+#: wp-includes/script-loader.php:319 wp-login.php:620
 msgid "Close"
 msgstr "Fermer"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:21
+#: wp-includes/js/tinymce/langs/wp-langs.php:24
 msgid "Browse"
 msgstr "Parcourir"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:22
-#: wp-includes/js/tinymce/langs/wp-langs.php:399
+#: wp-includes/js/tinymce/langs/wp-langs.php:25
+#: wp-includes/js/tinymce/langs/wp-langs.php:402
 msgid "Class"
 msgstr "Classe"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:23
+#: wp-includes/js/tinymce/langs/wp-langs.php:26
 msgid "-- Not set --"
 msgstr "-- Pas réglé --"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:24
-#: wp-includes/js/tinymce/langs/wp-langs.php:321
+#: wp-includes/js/tinymce/langs/wp-langs.php:27
+#: wp-includes/js/tinymce/langs/wp-langs.php:324
 msgid "Copy/Cut/Paste is not available in Mozilla and Firefox."
 msgstr ""
 "Le Copier/Couper/Coller n&rsquo;est pas disponible dans Mozilla ni Firefox."
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:25
+#: wp-includes/js/tinymce/langs/wp-langs.php:28
 msgid ""
 "Currently not supported by your browser, use keyboard shortcuts instead."
 msgstr ""
 "Actuellement pas reconnu par votre navigateur&nbsp;; utiliser les raccourcis-"
 "clavier à la place."
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:26
+#: wp-includes/js/tinymce/langs/wp-langs.php:29
 msgid ""
 "Sorry, but we have noticed that your popup-blocker has disabled a window "
 "that provides application functionality. You will need to disable popup "
@@ -3449,550 +3363,551 @@
 "le blocage de popup pour ce site si vous souhaitez utiliser toutes les "
 "fonctions de cet outil."
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:27
+#: wp-includes/js/tinymce/langs/wp-langs.php:30
 msgid "ERROR: Invalid values entered, these are marked in red."
 msgstr ""
 "ERREUR&nbsp;: certaines valeurs saisies ne sont pas valides, elles sont "
 "indiquées en rouge."
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:28
+#: wp-includes/js/tinymce/langs/wp-langs.php:31
 msgid "{#field} must be a number"
 msgstr "{#field} doit être un nombre"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:29
+#: wp-includes/js/tinymce/langs/wp-langs.php:32
 msgid "{#field} must be a number greater than {#min}"
 msgstr "{#field} doit être un nombre plus grand que {#min}"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:30
+#: wp-includes/js/tinymce/langs/wp-langs.php:33
 msgid "{#field} must be a number or percentage"
 msgstr "{#field} doit être un nombre ou un pourcentage"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:31
-#: wp-includes/js/tinymce/langs/wp-langs.php:325
+#: wp-includes/js/tinymce/langs/wp-langs.php:34
+#: wp-includes/js/tinymce/langs/wp-langs.php:328
 msgid "More colors"
 msgstr "Plus de couleurs"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:35
+#: wp-includes/js/tinymce/langs/wp-langs.php:38
 msgid "Black"
 msgstr "Noir"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:36
+#: wp-includes/js/tinymce/langs/wp-langs.php:39
 msgid "Burnt orange"
 msgstr "Orange foncé"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:37
+#: wp-includes/js/tinymce/langs/wp-langs.php:40
 msgid "Dark olive"
 msgstr "Olive foncé"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:38
+#: wp-includes/js/tinymce/langs/wp-langs.php:41
 msgid "Dark green"
 msgstr "Vert foncé"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:39
+#: wp-includes/js/tinymce/langs/wp-langs.php:42
 msgid "Dark azure"
 msgstr "Azur foncé"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:40
+#: wp-includes/js/tinymce/langs/wp-langs.php:43
 msgid "Navy Blue"
 msgstr "Bleu marine"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:41
+#: wp-includes/js/tinymce/langs/wp-langs.php:44
 msgid "Indigo"
 msgstr "Bleu indigo"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:42
+#: wp-includes/js/tinymce/langs/wp-langs.php:45
 msgid "Very dark gray"
 msgstr "Gris foncé"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:43
+#: wp-includes/js/tinymce/langs/wp-langs.php:46
 msgid "Maroon"
 msgstr "Rouge bordeaux"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:44
-msgid "Orange"
-msgstr "Orange"
-
-#: wp-includes/js/tinymce/langs/wp-langs.php:45
-msgid "Olive"
-msgstr "Vert olive"
-
-#: wp-includes/js/tinymce/langs/wp-langs.php:46
-msgid "Green"
-msgstr "Vert"
-
 #: wp-includes/js/tinymce/langs/wp-langs.php:47
-msgid "Teal"
-msgstr "Turquoise (bleu-vert)"
+msgid "Orange"
+msgstr "Orange"
 
 #: wp-includes/js/tinymce/langs/wp-langs.php:48
+msgid "Olive"
+msgstr "Vert olive"
+
+#: wp-includes/js/tinymce/langs/wp-langs.php:49
+msgid "Green"
+msgstr "Vert"
+
+#: wp-includes/js/tinymce/langs/wp-langs.php:50
+msgid "Teal"
+msgstr "Turquoise (bleu-vert)"
+
+#: wp-includes/js/tinymce/langs/wp-langs.php:51
 msgid "Blue"
 msgstr "Bleu"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:49
+#: wp-includes/js/tinymce/langs/wp-langs.php:52
 msgid "Grayish blue"
 msgstr "Bleu grisé"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:50
-msgid "Gray"
-msgstr "Gris"
-
-#: wp-includes/js/tinymce/langs/wp-langs.php:51
-msgid "Red"
-msgstr "Rouge"
-
-#: wp-includes/js/tinymce/langs/wp-langs.php:52
-msgid "Amber"
-msgstr "Ambre"
-
 #: wp-includes/js/tinymce/langs/wp-langs.php:53
-msgid "Yellow green"
-msgstr "Jaune-vert"
+msgid "Gray"
+msgstr "Gris"
 
 #: wp-includes/js/tinymce/langs/wp-langs.php:54
-msgid "Sea green"
-msgstr "Vert de mer"
+msgid "Red"
+msgstr "Rouge"
 
 #: wp-includes/js/tinymce/langs/wp-langs.php:55
-msgid "Turquoise"
-msgstr "Turquoise"
+msgid "Amber"
+msgstr "Ambre"
 
 #: wp-includes/js/tinymce/langs/wp-langs.php:56
-msgid "Royal blue"
-msgstr "Bleu roi"
+msgid "Yellow green"
+msgstr "Jaune-vert"
 
 #: wp-includes/js/tinymce/langs/wp-langs.php:57
-msgid "Purple"
-msgstr "Violet"
+msgid "Sea green"
+msgstr "Vert de mer"
 
 #: wp-includes/js/tinymce/langs/wp-langs.php:58
-msgid "Medium gray"
-msgstr "Gris moyen"
+msgid "Turquoise"
+msgstr "Turquoise"
 
 #: wp-includes/js/tinymce/langs/wp-langs.php:59
+msgid "Royal blue"
+msgstr "Bleu roi"
+
+#: wp-includes/js/tinymce/langs/wp-langs.php:60
+msgid "Purple"
+msgstr "Violet"
+
+#: wp-includes/js/tinymce/langs/wp-langs.php:61
+msgid "Medium gray"
+msgstr "Gris moyen"
+
+#: wp-includes/js/tinymce/langs/wp-langs.php:62
 msgid "Magenta"
 msgstr "Bleur magenta"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:60
+#: wp-includes/js/tinymce/langs/wp-langs.php:63
 msgid "Gold"
 msgstr "Or"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:61
-msgid "Yellow"
-msgstr "Jaune"
-
-#: wp-includes/js/tinymce/langs/wp-langs.php:62
-msgid "Lime"
-msgstr "Lime (vert citron)"
-
-#: wp-includes/js/tinymce/langs/wp-langs.php:63
-msgid "Aqua"
-msgstr "Aqua"
-
 #: wp-includes/js/tinymce/langs/wp-langs.php:64
-msgid "Sky blue"
-msgstr "Bleu ciel"
+msgid "Yellow"
+msgstr "Jaune"
 
 #: wp-includes/js/tinymce/langs/wp-langs.php:65
+msgid "Lime"
+msgstr "Lime (vert citron)"
+
+#: wp-includes/js/tinymce/langs/wp-langs.php:66
+msgid "Aqua"
+msgstr "Aqua"
+
+#: wp-includes/js/tinymce/langs/wp-langs.php:67
+msgid "Sky blue"
+msgstr "Bleu ciel"
+
+#: wp-includes/js/tinymce/langs/wp-langs.php:68
 msgid "Brown"
 msgstr "Marron"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:66
+#: wp-includes/js/tinymce/langs/wp-langs.php:69
 msgid "Silver"
 msgstr "Argent"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:67
+#: wp-includes/js/tinymce/langs/wp-langs.php:70
 msgid "Pink"
 msgstr "Rose"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:68
+#: wp-includes/js/tinymce/langs/wp-langs.php:71
 msgid "Peach"
 msgstr "Pèche"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:69
+#: wp-includes/js/tinymce/langs/wp-langs.php:72
 msgid "Light yellow"
 msgstr "Jaune clair"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:70
+#: wp-includes/js/tinymce/langs/wp-langs.php:73
 msgid "Pale green"
 msgstr "Vert clair"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:71
+#: wp-includes/js/tinymce/langs/wp-langs.php:74
 msgid "Pale cyan"
 msgstr "Cyan"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:72
+#: wp-includes/js/tinymce/langs/wp-langs.php:75
 msgid "Light sky blue"
 msgstr "Bleu ciel clair"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:73
+#: wp-includes/js/tinymce/langs/wp-langs.php:76
 msgid "Plum"
 msgstr "Prune"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:74
+#: wp-includes/js/tinymce/langs/wp-langs.php:77
 msgid "White"
 msgstr "Blanc"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:78
-#: wp-includes/js/tinymce/langs/wp-langs.php:365
+#: wp-includes/js/tinymce/langs/wp-langs.php:81
+#: wp-includes/js/tinymce/langs/wp-langs.php:368
+#: wp-includes/media-template.php:259
 msgid "Alignment"
 msgstr "Alignement"
 
 #. translators: alignment
-#: wp-includes/js/tinymce/langs/wp-langs.php:82
+#: wp-includes/js/tinymce/langs/wp-langs.php:85
 msgid "Full"
 msgstr "Complet"
 
 #. translators: alignment
-#: wp-includes/js/tinymce/langs/wp-langs.php:86
+#: wp-includes/js/tinymce/langs/wp-langs.php:89
 msgid "%Y-%m-%d"
 msgstr "%Y-%m-%d"
 
 #. translators: year, month, date
-#: wp-includes/js/tinymce/langs/wp-langs.php:87
+#: wp-includes/js/tinymce/langs/wp-langs.php:90
 msgid "%H:%M:%S"
 msgstr "%H h %M min %S s"
 
 #. translators: hours, minutes, seconds
-#: wp-includes/js/tinymce/langs/wp-langs.php:88
+#: wp-includes/js/tinymce/langs/wp-langs.php:91
 msgid "Insert date"
 msgstr "Insérer la date"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:89
+#: wp-includes/js/tinymce/langs/wp-langs.php:92
 msgid "Insert time"
 msgstr "Insérer l&rsquo;heure"
 
 #. translators: month name
-#: wp-includes/js/tinymce/langs/wp-langs.php:90 wp-includes/locale.php:131
+#: wp-includes/js/tinymce/langs/wp-langs.php:93 wp-includes/locale.php:131
 #: wp-includes/locale.php:146
 msgid "January"
 msgstr "janvier"
 
 #. translators: month name
-#: wp-includes/js/tinymce/langs/wp-langs.php:90 wp-includes/locale.php:132
+#: wp-includes/js/tinymce/langs/wp-langs.php:93 wp-includes/locale.php:132
 #: wp-includes/locale.php:147
 msgid "February"
 msgstr "février"
 
 #. translators: month name
-#: wp-includes/js/tinymce/langs/wp-langs.php:90 wp-includes/locale.php:133
+#: wp-includes/js/tinymce/langs/wp-langs.php:93 wp-includes/locale.php:133
 #: wp-includes/locale.php:148
 msgid "March"
 msgstr "mars"
 
 #. translators: month name
-#: wp-includes/js/tinymce/langs/wp-langs.php:90 wp-includes/locale.php:134
+#: wp-includes/js/tinymce/langs/wp-langs.php:93 wp-includes/locale.php:134
 #: wp-includes/locale.php:149
 msgid "April"
 msgstr "avril"
 
 #. translators: month name
-#: wp-includes/js/tinymce/langs/wp-langs.php:90 wp-includes/locale.php:135
+#: wp-includes/js/tinymce/langs/wp-langs.php:93 wp-includes/locale.php:135
 #: wp-includes/locale.php:150
 msgid "May"
 msgstr "mai"
 
 #. translators: month name
-#: wp-includes/js/tinymce/langs/wp-langs.php:90 wp-includes/locale.php:136
+#: wp-includes/js/tinymce/langs/wp-langs.php:93 wp-includes/locale.php:136
 #: wp-includes/locale.php:151
 msgid "June"
 msgstr "juin"
 
 #. translators: month name
-#: wp-includes/js/tinymce/langs/wp-langs.php:90 wp-includes/locale.php:137
+#: wp-includes/js/tinymce/langs/wp-langs.php:93 wp-includes/locale.php:137
 #: wp-includes/locale.php:152
 msgid "July"
 msgstr "juillet"
 
 #. translators: month name
-#: wp-includes/js/tinymce/langs/wp-langs.php:90 wp-includes/locale.php:138
+#: wp-includes/js/tinymce/langs/wp-langs.php:93 wp-includes/locale.php:138
 #: wp-includes/locale.php:153
 msgid "August"
 msgstr "août"
 
 #. translators: month name
-#: wp-includes/js/tinymce/langs/wp-langs.php:90 wp-includes/locale.php:139
+#: wp-includes/js/tinymce/langs/wp-langs.php:93 wp-includes/locale.php:139
 #: wp-includes/locale.php:154
 msgid "September"
 msgstr "septembre"
 
 #. translators: month name
-#: wp-includes/js/tinymce/langs/wp-langs.php:90 wp-includes/locale.php:140
+#: wp-includes/js/tinymce/langs/wp-langs.php:93 wp-includes/locale.php:140
 #: wp-includes/locale.php:155
 msgid "October"
 msgstr "octobre"
 
 #. translators: month name
-#: wp-includes/js/tinymce/langs/wp-langs.php:90 wp-includes/locale.php:141
+#: wp-includes/js/tinymce/langs/wp-langs.php:93 wp-includes/locale.php:141
 #: wp-includes/locale.php:156
 msgid "November"
 msgstr "novembre"
 
 #. translators: month name
-#: wp-includes/js/tinymce/langs/wp-langs.php:90 wp-includes/locale.php:142
+#: wp-includes/js/tinymce/langs/wp-langs.php:93 wp-includes/locale.php:142
 #: wp-includes/locale.php:157
 msgid "December"
 msgstr "décembre"
 
 #. translators: three-letter abbreviation of the month
-#: wp-includes/js/tinymce/langs/wp-langs.php:91 wp-includes/locale.php:146
+#: wp-includes/js/tinymce/langs/wp-langs.php:94 wp-includes/locale.php:146
 msgid "Jan_January_abbreviation"
 msgstr "jan"
 
 #. translators: three-letter abbreviation of the month
-#: wp-includes/js/tinymce/langs/wp-langs.php:91 wp-includes/locale.php:147
+#: wp-includes/js/tinymce/langs/wp-langs.php:94 wp-includes/locale.php:147
 msgid "Feb_February_abbreviation"
 msgstr "fév"
 
 #. translators: three-letter abbreviation of the month
-#: wp-includes/js/tinymce/langs/wp-langs.php:91 wp-includes/locale.php:148
+#: wp-includes/js/tinymce/langs/wp-langs.php:94 wp-includes/locale.php:148
 msgid "Mar_March_abbreviation"
 msgstr "mar"
 
 #. translators: three-letter abbreviation of the month
-#: wp-includes/js/tinymce/langs/wp-langs.php:91 wp-includes/locale.php:149
+#: wp-includes/js/tinymce/langs/wp-langs.php:94 wp-includes/locale.php:149
 msgid "Apr_April_abbreviation"
 msgstr "avr"
 
 #. translators: three-letter abbreviation of the month
-#: wp-includes/js/tinymce/langs/wp-langs.php:91 wp-includes/locale.php:150
+#: wp-includes/js/tinymce/langs/wp-langs.php:94 wp-includes/locale.php:150
 msgid "May_May_abbreviation"
 msgstr "mai"
 
 #. translators: three-letter abbreviation of the month
-#: wp-includes/js/tinymce/langs/wp-langs.php:91 wp-includes/locale.php:151
+#: wp-includes/js/tinymce/langs/wp-langs.php:94 wp-includes/locale.php:151
 msgid "Jun_June_abbreviation"
 msgstr "juin"
 
 #. translators: three-letter abbreviation of the month
-#: wp-includes/js/tinymce/langs/wp-langs.php:91 wp-includes/locale.php:152
+#: wp-includes/js/tinymce/langs/wp-langs.php:94 wp-includes/locale.php:152
 msgid "Jul_July_abbreviation"
 msgstr "juil"
 
 #. translators: three-letter abbreviation of the month
-#: wp-includes/js/tinymce/langs/wp-langs.php:91 wp-includes/locale.php:153
+#: wp-includes/js/tinymce/langs/wp-langs.php:94 wp-includes/locale.php:153
 msgid "Aug_August_abbreviation"
 msgstr "août"
 
 #. translators: three-letter abbreviation of the month
-#: wp-includes/js/tinymce/langs/wp-langs.php:91 wp-includes/locale.php:154
+#: wp-includes/js/tinymce/langs/wp-langs.php:94 wp-includes/locale.php:154
 msgid "Sep_September_abbreviation"
 msgstr "sept"
 
 #. translators: three-letter abbreviation of the month
-#: wp-includes/js/tinymce/langs/wp-langs.php:91 wp-includes/locale.php:155
+#: wp-includes/js/tinymce/langs/wp-langs.php:94 wp-includes/locale.php:155
 msgid "Oct_October_abbreviation"
 msgstr "oct"
 
 #. translators: three-letter abbreviation of the month
-#: wp-includes/js/tinymce/langs/wp-langs.php:91 wp-includes/locale.php:156
+#: wp-includes/js/tinymce/langs/wp-langs.php:94 wp-includes/locale.php:156
 msgid "Nov_November_abbreviation"
 msgstr "nov"
 
 #. translators: three-letter abbreviation of the month
-#: wp-includes/js/tinymce/langs/wp-langs.php:91 wp-includes/locale.php:157
+#: wp-includes/js/tinymce/langs/wp-langs.php:94 wp-includes/locale.php:157
 msgid "Dec_December_abbreviation"
 msgstr "déc"
 
 #. translators: weekday
-#: wp-includes/js/tinymce/langs/wp-langs.php:92 wp-includes/locale.php:99
+#: wp-includes/js/tinymce/langs/wp-langs.php:95 wp-includes/locale.php:99
 #: wp-includes/locale.php:109 wp-includes/locale.php:122
 msgid "Sunday"
 msgstr "Dimanche"
 
 #. translators: weekday
-#: wp-includes/js/tinymce/langs/wp-langs.php:92 wp-includes/locale.php:100
+#: wp-includes/js/tinymce/langs/wp-langs.php:95 wp-includes/locale.php:100
 #: wp-includes/locale.php:110 wp-includes/locale.php:123
 msgid "Monday"
 msgstr "Lundi"
 
 #. translators: weekday
-#: wp-includes/js/tinymce/langs/wp-langs.php:92 wp-includes/locale.php:101
+#: wp-includes/js/tinymce/langs/wp-langs.php:95 wp-includes/locale.php:101
 #: wp-includes/locale.php:111 wp-includes/locale.php:124
 msgid "Tuesday"
 msgstr "Mardi"
 
 #. translators: weekday
-#: wp-includes/js/tinymce/langs/wp-langs.php:92 wp-includes/locale.php:102
+#: wp-includes/js/tinymce/langs/wp-langs.php:95 wp-includes/locale.php:102
 #: wp-includes/locale.php:112 wp-includes/locale.php:125
 msgid "Wednesday"
 msgstr "Mercredi"
 
 #. translators: weekday
-#: wp-includes/js/tinymce/langs/wp-langs.php:92 wp-includes/locale.php:103
+#: wp-includes/js/tinymce/langs/wp-langs.php:95 wp-includes/locale.php:103
 #: wp-includes/locale.php:113 wp-includes/locale.php:126
 msgid "Thursday"
 msgstr "Jeudi"
 
 #. translators: weekday
-#: wp-includes/js/tinymce/langs/wp-langs.php:92 wp-includes/locale.php:104
+#: wp-includes/js/tinymce/langs/wp-langs.php:95 wp-includes/locale.php:104
 #: wp-includes/locale.php:114 wp-includes/locale.php:127
 msgid "Friday"
 msgstr "Vendredi"
 
 #. translators: weekday
-#: wp-includes/js/tinymce/langs/wp-langs.php:92 wp-includes/locale.php:105
+#: wp-includes/js/tinymce/langs/wp-langs.php:95 wp-includes/locale.php:105
 #: wp-includes/locale.php:115 wp-includes/locale.php:128
 msgid "Saturday"
 msgstr "Samedi"
 
 #. translators: three-letter abbreviation of the weekday
-#: wp-includes/js/tinymce/langs/wp-langs.php:93 wp-includes/locale.php:122
+#: wp-includes/js/tinymce/langs/wp-langs.php:96 wp-includes/locale.php:122
 msgid "Sun"
 msgstr "dim"
 
 #. translators: three-letter abbreviation of the weekday
-#: wp-includes/js/tinymce/langs/wp-langs.php:93 wp-includes/locale.php:123
+#: wp-includes/js/tinymce/langs/wp-langs.php:96 wp-includes/locale.php:123
 msgid "Mon"
 msgstr "lun"
 
 #. translators: three-letter abbreviation of the weekday
-#: wp-includes/js/tinymce/langs/wp-langs.php:93 wp-includes/locale.php:124
+#: wp-includes/js/tinymce/langs/wp-langs.php:96 wp-includes/locale.php:124
 msgid "Tue"
 msgstr "mar"
 
 #. translators: three-letter abbreviation of the weekday
-#: wp-includes/js/tinymce/langs/wp-langs.php:93 wp-includes/locale.php:125
+#: wp-includes/js/tinymce/langs/wp-langs.php:96 wp-includes/locale.php:125
 msgid "Wed"
 msgstr "mer"
 
 #. translators: three-letter abbreviation of the weekday
-#: wp-includes/js/tinymce/langs/wp-langs.php:93 wp-includes/locale.php:126
+#: wp-includes/js/tinymce/langs/wp-langs.php:96 wp-includes/locale.php:126
 msgid "Thu"
 msgstr "jeu"
 
 #. translators: three-letter abbreviation of the weekday
-#: wp-includes/js/tinymce/langs/wp-langs.php:93 wp-includes/locale.php:127
+#: wp-includes/js/tinymce/langs/wp-langs.php:96 wp-includes/locale.php:127
 msgid "Fri"
 msgstr "ven"
 
 #. translators: three-letter abbreviation of the weekday
-#: wp-includes/js/tinymce/langs/wp-langs.php:93 wp-includes/locale.php:128
+#: wp-includes/js/tinymce/langs/wp-langs.php:96 wp-includes/locale.php:128
 msgid "Sat"
 msgstr "sam"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:97
+#: wp-includes/js/tinymce/langs/wp-langs.php:100
 msgid "Print"
 msgstr "Imprimer"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:101
-#: wp-includes/js/tinymce/langs/wp-langs.php:394
+#: wp-includes/js/tinymce/langs/wp-langs.php:104
+#: wp-includes/js/tinymce/langs/wp-langs.php:397
 msgid "Preview"
 msgstr "Aperçu"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:105
+#: wp-includes/js/tinymce/langs/wp-langs.php:108
 msgid "Direction left to right"
 msgstr "Direction de gauche à droite"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:106
+#: wp-includes/js/tinymce/langs/wp-langs.php:109
 msgid "Direction right to left"
 msgstr "Direction de droite à gauche"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:110
+#: wp-includes/js/tinymce/langs/wp-langs.php:113
 msgid "Insert new layer"
 msgstr "Insérer un nouveau calque"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:111
+#: wp-includes/js/tinymce/langs/wp-langs.php:114
 msgid "Move forward"
 msgstr "Avancer"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:112
+#: wp-includes/js/tinymce/langs/wp-langs.php:115
 msgid "Move backward"
 msgstr "Reculer"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:113
+#: wp-includes/js/tinymce/langs/wp-langs.php:116
 msgid "Toggle absolute positioning"
 msgstr "Modifier le positionnement absolu"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:114
+#: wp-includes/js/tinymce/langs/wp-langs.php:117
 msgid "New layer..."
 msgstr "Nouvelle couche&hellip;"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:119
+#: wp-includes/js/tinymce/langs/wp-langs.php:122
 msgid "Cancel all changes"
 msgstr "Annuler toutes les modifications"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:123
+#: wp-includes/js/tinymce/langs/wp-langs.php:126
 msgid "Insert non-breaking space character"
 msgstr "Insérer un espace insécable"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:127
+#: wp-includes/js/tinymce/langs/wp-langs.php:130
 msgid "Run spell checking"
 msgstr "Lancer le correcteur d&rsquo;orthographe"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:128
+#: wp-includes/js/tinymce/langs/wp-langs.php:131
 msgid "ieSpell not detected. Do you want to install it now?"
 msgstr ""
 "ieSpell n&rsquo;a pas été détecté. Voulez-vous l&rsquo;installer "
 "maintenant&nbsp;?"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:132
-msgid "Horizontale rule"
+#: wp-includes/js/tinymce/langs/wp-langs.php:135
+msgid "Horizontal rule"
 msgstr "Règle horizontale"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:136
+#: wp-includes/js/tinymce/langs/wp-langs.php:139
 msgid "Emotions"
 msgstr "Émotions"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:140
+#: wp-includes/js/tinymce/langs/wp-langs.php:143
 msgid "Find"
 msgstr "Chercher"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:141
+#: wp-includes/js/tinymce/langs/wp-langs.php:144
 msgid "Find/Replace"
 msgstr "Chercher/Remplacer"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:145
-#: wp-includes/js/tinymce/langs/wp-langs.php:357
+#: wp-includes/js/tinymce/langs/wp-langs.php:148
+#: wp-includes/js/tinymce/langs/wp-langs.php:360
 msgid "Insert/edit image"
 msgstr "Insérer/modifier une image"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:149
-#: wp-includes/js/tinymce/langs/wp-langs.php:374
-#: wp-includes/script-loader.php:276
+#: wp-includes/js/tinymce/langs/wp-langs.php:152
+#: wp-includes/js/tinymce/langs/wp-langs.php:377
+#: wp-includes/script-loader.php:288
 msgid "Insert/edit link"
 msgstr "Insérer/modifier un lien"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:153
+#: wp-includes/js/tinymce/langs/wp-langs.php:156
 msgid "Citation"
 msgstr "Citation"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:154
+#: wp-includes/js/tinymce/langs/wp-langs.php:157
 msgid "Abbreviation"
 msgstr "Abréviation"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:155
+#: wp-includes/js/tinymce/langs/wp-langs.php:158
 msgid "Acronym"
 msgstr "Acronyme"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:156
+#: wp-includes/js/tinymce/langs/wp-langs.php:159
 msgid "Deletion"
 msgstr "Coupure"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:157
+#: wp-includes/js/tinymce/langs/wp-langs.php:160
 msgid "Insertion"
 msgstr "Insertion"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:158
+#: wp-includes/js/tinymce/langs/wp-langs.php:161
 msgid "Insert/Edit Attributes"
 msgstr "Insérer/modider des attributs"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:162
+#: wp-includes/js/tinymce/langs/wp-langs.php:165
 msgid "Edit CSS Style"
 msgstr "Modifier le style CSS"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:166
+#: wp-includes/js/tinymce/langs/wp-langs.php:169
 msgid "Paste as Plain Text"
 msgstr "Coller du texte simple"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:167
+#: wp-includes/js/tinymce/langs/wp-langs.php:170
 msgid "Paste from Word"
 msgstr "Coller du texte Word"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:168
+#: wp-includes/js/tinymce/langs/wp-langs.php:171
 msgid "Select All"
 msgstr "Tout sélectionner"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:169
+#: wp-includes/js/tinymce/langs/wp-langs.php:172
 msgid ""
 "Paste is now in plain text mode. Click again to toggle back to regular paste "
 "mode. After you paste something you will be returned to regular paste mode."
@@ -4001,7 +3916,7 @@
 "&raquo;. Cliquez de nouveau pour retourner au mode normal. Après avoir collé "
 "votre contenu, le réglage reviendra au mode normal."
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:170
+#: wp-includes/js/tinymce/langs/wp-langs.php:173
 msgid ""
 "Paste is now in plain text mode. Click again to toggle back to regular paste "
 "mode."
@@ -4009,426 +3924,426 @@
 "Le copier/coller est maintenant en mode &laquo;&nbsp;texte brut&nbsp;"
 "&raquo;. Cliquez de nouveau pour retourner au mode normal."
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:174
-#: wp-includes/js/tinymce/langs/wp-langs.php:176
+#: wp-includes/js/tinymce/langs/wp-langs.php:177
+#: wp-includes/js/tinymce/langs/wp-langs.php:179
 msgid "Use CTRL+V on your keyboard to paste the text into the window."
 msgstr ""
 "Utilisez Ctrl-V sur votre clavier pour coller le texte dans la fenêtre."
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:175
+#: wp-includes/js/tinymce/langs/wp-langs.php:178
 msgid "Keep linebreaks"
 msgstr "Conserver les sauts de ligne"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:180
+#: wp-includes/js/tinymce/langs/wp-langs.php:183
 msgid "Inserts a new table"
 msgstr "Insérer une nouvelle table"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:181
-msgid "Insert row before"
-msgstr "Insérer une ligne avant"
-
-#: wp-includes/js/tinymce/langs/wp-langs.php:182
-msgid "Insert row after"
-msgstr "Insérer une ligne après"
-
-#: wp-includes/js/tinymce/langs/wp-langs.php:183
-msgid "Delete row"
-msgstr "Supprimer la ligne"
-
 #: wp-includes/js/tinymce/langs/wp-langs.php:184
-msgid "Insert column before"
-msgstr "Insérer une colonne avant"
+msgid "Insert row before"
+msgstr "Insérer une ligne avant"
 
 #: wp-includes/js/tinymce/langs/wp-langs.php:185
+msgid "Insert row after"
+msgstr "Insérer une ligne après"
+
+#: wp-includes/js/tinymce/langs/wp-langs.php:186
+msgid "Delete row"
+msgstr "Supprimer la ligne"
+
+#: wp-includes/js/tinymce/langs/wp-langs.php:187
+msgid "Insert column before"
+msgstr "Insérer une colonne avant"
+
+#: wp-includes/js/tinymce/langs/wp-langs.php:188
 msgid "Insert column after"
 msgstr "Insérer une colonne après"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:186
+#: wp-includes/js/tinymce/langs/wp-langs.php:189
 msgid "Remove column"
 msgstr "Enlever la colonne"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:187
+#: wp-includes/js/tinymce/langs/wp-langs.php:190
 msgid "Split merged table cells"
 msgstr "Scinder les cellules fusionnées du tableau"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:188
+#: wp-includes/js/tinymce/langs/wp-langs.php:191
 msgid "Merge table cells"
 msgstr "Fusionner les cellules du tableau"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:189
+#: wp-includes/js/tinymce/langs/wp-langs.php:192
 msgid "Table row properties"
 msgstr "Propriétés de la ligne du tableau"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:190
+#: wp-includes/js/tinymce/langs/wp-langs.php:193
 msgid "Table cell properties"
 msgstr "Propriétés de la cellule du tableau"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:191
+#: wp-includes/js/tinymce/langs/wp-langs.php:194
 msgid "Table properties"
 msgstr "Propriétés du tableau"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:192
-msgid "Paste table row before"
-msgstr "Coller la ligne du tableau avant"
-
-#: wp-includes/js/tinymce/langs/wp-langs.php:193
-msgid "Paste table row after"
-msgstr "Coller la ligne du tableau après"
-
-#: wp-includes/js/tinymce/langs/wp-langs.php:194
-msgid "Cut table row"
-msgstr "Couper la ligne du tableau"
-
 #: wp-includes/js/tinymce/langs/wp-langs.php:195
-msgid "Copy table row"
-msgstr "Copier la ligne du tableau"
+msgid "Paste table row before"
+msgstr "Coller la ligne du tableau avant"
 
 #: wp-includes/js/tinymce/langs/wp-langs.php:196
+msgid "Paste table row after"
+msgstr "Coller la ligne du tableau après"
+
+#: wp-includes/js/tinymce/langs/wp-langs.php:197
+msgid "Cut table row"
+msgstr "Couper la ligne du tableau"
+
+#: wp-includes/js/tinymce/langs/wp-langs.php:198
+msgid "Copy table row"
+msgstr "Copier la ligne du tableau"
+
+#: wp-includes/js/tinymce/langs/wp-langs.php:199
 msgid "Delete table"
 msgstr "Supprimer le tableau"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:197
+#: wp-includes/js/tinymce/langs/wp-langs.php:200
 msgid "Row"
 msgstr "Ligne"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:198
+#: wp-includes/js/tinymce/langs/wp-langs.php:201
 msgid "Column"
 msgstr "Colonne"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:199
+#: wp-includes/js/tinymce/langs/wp-langs.php:202
 msgid "Cell"
 msgstr "Cellule"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:203
-#: wp-includes/script-loader.php:426 wp-includes/script-loader.php:534
+#: wp-includes/js/tinymce/langs/wp-langs.php:206
+#: wp-includes/script-loader.php:465 wp-includes/script-loader.php:577
 msgid "The changes you made will be lost if you navigate away from this page."
 msgstr ""
 "Les modifications que vous avez faites seront perdues si vous changez de "
 "page."
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:207
+#: wp-includes/js/tinymce/langs/wp-langs.php:210
 msgid "Toggle fullscreen mode (Alt + Shift + G)"
 msgstr "Basculer en mode plein écran (Alt + Maj. + G)"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:211
-#: wp-includes/js/tinymce/langs/wp-langs.php:388
+#: wp-includes/js/tinymce/langs/wp-langs.php:214
+#: wp-includes/js/tinymce/langs/wp-langs.php:391
 msgid "Insert / edit embedded media"
-msgstr "Insérer / modifier un élément multimédia intégré"
-
-#: wp-includes/js/tinymce/langs/wp-langs.php:212
+msgstr "Insérer / modifier un média"
+
+#: wp-includes/js/tinymce/langs/wp-langs.php:215
 msgid "Edit embedded media"
-msgstr "Modifier un élément multimédia intégré"
-
-#: wp-includes/js/tinymce/langs/wp-langs.php:216
+msgstr "Modifier le média inséré"
+
+#: wp-includes/js/tinymce/langs/wp-langs.php:219
 msgid "Document properties"
 msgstr "Propriétés du document"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:220
+#: wp-includes/js/tinymce/langs/wp-langs.php:223
 msgid "Insert predefined template content"
 msgstr "Insérer le contenu d&rsquo;un modèle prédéfini"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:224
+#: wp-includes/js/tinymce/langs/wp-langs.php:227
 msgid "Visual control characters on/off."
 msgstr "Activer les caractères de mise en page."
 
 # Pas d'entité HTML : utilisé dans un alt="".
-#: wp-includes/js/tinymce/langs/wp-langs.php:228
+#: wp-includes/js/tinymce/langs/wp-langs.php:231
 msgid "Toggle spellchecker (Alt + Shift + N)"
 msgstr "Correcteur d'orthographe (Alt + Maj. + N)"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:229
+#: wp-includes/js/tinymce/langs/wp-langs.php:232
 msgid "Spellchecker settings"
 msgstr "Réglages du correcteur d&rsquo;orthographe"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:230
-msgid "Ignore word"
-msgstr "Ignorer le mot"
-
-#: wp-includes/js/tinymce/langs/wp-langs.php:231
-msgid "Ignore all"
-msgstr "Ignorer tout"
-
-#: wp-includes/js/tinymce/langs/wp-langs.php:232
-msgid "Languages"
-msgstr "Langues"
-
 #: wp-includes/js/tinymce/langs/wp-langs.php:233
-msgid "Please wait..."
-msgstr "Veuillez patienter&hellip;"
+msgid "Ignore word"
+msgstr "Ignorer le mot"
 
 #: wp-includes/js/tinymce/langs/wp-langs.php:234
+msgid "Ignore all"
+msgstr "Ignorer tout"
+
+#: wp-includes/js/tinymce/langs/wp-langs.php:235
+msgid "Languages"
+msgstr "Langues"
+
+#: wp-includes/js/tinymce/langs/wp-langs.php:236
+msgid "Please wait..."
+msgstr "Veuillez patienter&hellip;"
+
+#: wp-includes/js/tinymce/langs/wp-langs.php:237
 msgid "Suggestions"
 msgstr "Suggestions"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:235
+#: wp-includes/js/tinymce/langs/wp-langs.php:238
 msgid "No suggestions"
 msgstr "Aucune suggestion"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:236
+#: wp-includes/js/tinymce/langs/wp-langs.php:239
 msgid "No misspellings found."
 msgstr "Aucune erreur trouvée."
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:237
+#: wp-includes/js/tinymce/langs/wp-langs.php:240
 msgid "Learn word"
 msgstr "Retenir ce mot"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:241
+#: wp-includes/js/tinymce/langs/wp-langs.php:244
 msgid "Insert Page Break"
 msgstr "Insérer la balise Page break"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:245
+#: wp-includes/js/tinymce/langs/wp-langs.php:248
 msgid "Types"
 msgstr "Types"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:247
+#: wp-includes/js/tinymce/langs/wp-langs.php:250
 msgid "Lower alpha"
 msgstr "Lettres minuscules"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:248
+#: wp-includes/js/tinymce/langs/wp-langs.php:251
 msgid "Lower greek"
 msgstr "Lettres grecques minuscules"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:249
+#: wp-includes/js/tinymce/langs/wp-langs.php:252
 msgid "Lower roman"
 msgstr "Chiffres romains minuscules"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:250
+#: wp-includes/js/tinymce/langs/wp-langs.php:253
 msgid "Upper alpha"
 msgstr "Lettres majuscules"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:251
+#: wp-includes/js/tinymce/langs/wp-langs.php:254
 msgid "Upper roman"
 msgstr "Chiffres romains majuscules"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:252
+#: wp-includes/js/tinymce/langs/wp-langs.php:255
 msgid "Circle"
 msgstr "Cercle"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:253
+#: wp-includes/js/tinymce/langs/wp-langs.php:256
 msgid "Disc"
 msgstr "Disque"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:254
+#: wp-includes/js/tinymce/langs/wp-langs.php:257
 msgid "Square"
 msgstr "Carré"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:258
-#: wp-includes/js/tinymce/langs/wp-langs.php:328
+#: wp-includes/js/tinymce/langs/wp-langs.php:261
+#: wp-includes/js/tinymce/langs/wp-langs.php:331
 msgid "Rich Text Area"
 msgstr "Zone de texte enrichi"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:262
+#: wp-includes/js/tinymce/langs/wp-langs.php:265
 msgid "Words:"
 msgstr "Mots&nbsp;:"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:267
+#: wp-includes/js/tinymce/langs/wp-langs.php:270
 msgid "Styles"
 msgstr "Styles"
 
 #. translators: TinyMCE inline styles
-#: wp-includes/js/tinymce/langs/wp-langs.php:268
+#: wp-includes/js/tinymce/langs/wp-langs.php:271
 msgid "Font size"
 msgstr "Taille de police"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:269
+#: wp-includes/js/tinymce/langs/wp-langs.php:272
 msgid "Font family"
 msgstr "Famille des polices"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:270
+#: wp-includes/js/tinymce/langs/wp-langs.php:273
 msgid "Format"
 msgstr "Format"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:271
+#: wp-includes/js/tinymce/langs/wp-langs.php:274
 msgid "Paragraph"
 msgstr "Paragraphe"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:272
+#: wp-includes/js/tinymce/langs/wp-langs.php:275
 msgid "Div"
 msgstr "Div"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:273
-#: wp-includes/js/tinymce/wp-mce-help.php:245
+#: wp-includes/js/tinymce/langs/wp-langs.php:276
+#: wp-includes/js/tinymce/wp-mce-help.php:204
 msgid "Address"
 msgstr "Adresse"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:274
+#: wp-includes/js/tinymce/langs/wp-langs.php:277
 msgid "Preformatted"
 msgstr "Pré-formaté"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:275
-#: wp-includes/js/tinymce/wp-mce-help.php:242
+#: wp-includes/js/tinymce/langs/wp-langs.php:278
+#: wp-includes/js/tinymce/wp-mce-help.php:201
 msgid "Heading 1"
 msgstr "Titre 1"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:276
-#: wp-includes/js/tinymce/wp-mce-help.php:243
-msgid "Heading 2"
-msgstr "Titre 2"
-
-#: wp-includes/js/tinymce/langs/wp-langs.php:277
-#: wp-includes/js/tinymce/wp-mce-help.php:243
-msgid "Heading 3"
-msgstr "Titre 3"
-
-#: wp-includes/js/tinymce/langs/wp-langs.php:278
-#: wp-includes/js/tinymce/wp-mce-help.php:244
-msgid "Heading 4"
-msgstr "Titre 4"
-
 #: wp-includes/js/tinymce/langs/wp-langs.php:279
-#: wp-includes/js/tinymce/wp-mce-help.php:244
-msgid "Heading 5"
-msgstr "Titre 5"
+#: wp-includes/js/tinymce/wp-mce-help.php:202
+msgid "Heading 2"
+msgstr "Titre 2"
 
 #: wp-includes/js/tinymce/langs/wp-langs.php:280
-#: wp-includes/js/tinymce/wp-mce-help.php:245
-msgid "Heading 6"
-msgstr "Titre 6"
+#: wp-includes/js/tinymce/wp-mce-help.php:202
+msgid "Heading 3"
+msgstr "Titre 3"
 
 #: wp-includes/js/tinymce/langs/wp-langs.php:281
+#: wp-includes/js/tinymce/wp-mce-help.php:203
+msgid "Heading 4"
+msgstr "Titre 4"
+
+#: wp-includes/js/tinymce/langs/wp-langs.php:282
+#: wp-includes/js/tinymce/wp-mce-help.php:203
+msgid "Heading 5"
+msgstr "Titre 5"
+
+#: wp-includes/js/tinymce/langs/wp-langs.php:283
+#: wp-includes/js/tinymce/wp-mce-help.php:204
+msgid "Heading 6"
+msgstr "Titre 6"
+
+#: wp-includes/js/tinymce/langs/wp-langs.php:284
 msgid "Blockquote"
 msgstr "Bloc de citation"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:282
+#: wp-includes/js/tinymce/langs/wp-langs.php:285
 msgid "Code"
 msgstr "Code"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:283
+#: wp-includes/js/tinymce/langs/wp-langs.php:286
 msgid "Code sample"
 msgstr "Exemple de code"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:284
+#: wp-includes/js/tinymce/langs/wp-langs.php:287
 msgid "Definition term "
 msgstr "Terme de définition"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:285
+#: wp-includes/js/tinymce/langs/wp-langs.php:288
 msgid "Definition description"
 msgstr "Description de la définition"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:288
-#: wp-includes/js/tinymce/wp-mce-help.php:242
+#: wp-includes/js/tinymce/langs/wp-langs.php:291
+#: wp-includes/js/tinymce/wp-mce-help.php:201
 msgid "Underline"
 msgstr "Souligner"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:289
+#: wp-includes/js/tinymce/langs/wp-langs.php:292
 msgid "Strikethrough (Alt + Shift + D)"
 msgstr "Barrer (Alt + Maj. + D)"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:290
-msgid "Align Left (Alt + Shift + L)"
-msgstr "Aligner à gauche (Alt + Maj. + L)"
-
-#: wp-includes/js/tinymce/langs/wp-langs.php:291
-msgid "Align Center (Alt + Shift + C)"
-msgstr "Centrer (Alt + Maj. + C)"
-
-#: wp-includes/js/tinymce/langs/wp-langs.php:292
-msgid "Align Right (Alt + Shift + R)"
-msgstr "Aligner à droite (Alt + Maj. + R)"
-
 #: wp-includes/js/tinymce/langs/wp-langs.php:293
-msgid "Align Full (Alt + Shift + J)"
-msgstr "Justifier (Alt + Maj. + S)"
+msgid "Align Left (Alt + Shift + L)"
+msgstr "Aligner à gauche (Alt + Maj. + L)"
+
+#: wp-includes/js/tinymce/langs/wp-langs.php:294
+msgid "Align Center (Alt + Shift + C)"
+msgstr "Centrer (Alt + Maj. + C)"
+
+#: wp-includes/js/tinymce/langs/wp-langs.php:295
+msgid "Align Right (Alt + Shift + R)"
+msgstr "Aligner à droite (Alt + Maj. + R)"
 
 #: wp-includes/js/tinymce/langs/wp-langs.php:296
+msgid "Align Full (Alt + Shift + J)"
+msgstr "Justifier (Alt + Maj. + S)"
+
+#: wp-includes/js/tinymce/langs/wp-langs.php:299
 msgid "Outdent"
 msgstr "Désindenter"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:297
+#: wp-includes/js/tinymce/langs/wp-langs.php:300
 msgid "Indent"
 msgstr "Indenter"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:298
+#: wp-includes/js/tinymce/langs/wp-langs.php:301
 msgid "Undo (Ctrl + Z)"
 msgstr "Annuler (Ctrl + Z)"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:299
+#: wp-includes/js/tinymce/langs/wp-langs.php:302
 msgid "Redo (Ctrl + Y)"
 msgstr "Rétablir (Ctrl + Y)"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:303
+#: wp-includes/js/tinymce/langs/wp-langs.php:306
 msgid "Cleanup messy code"
 msgstr "Nettoyer le mauvais code"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:304
+#: wp-includes/js/tinymce/langs/wp-langs.php:307
 msgid "Edit HTML Source"
 msgstr "Modifier le code source HTML"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:305
+#: wp-includes/js/tinymce/langs/wp-langs.php:308
 msgid "Subscript"
 msgstr "Indice"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:306
+#: wp-includes/js/tinymce/langs/wp-langs.php:309
 msgid "Superscript"
 msgstr "Exposant"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:307
+#: wp-includes/js/tinymce/langs/wp-langs.php:310
 msgid "Insert horizontal ruler"
 msgstr "Insérer une règle horizontale"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:308
+#: wp-includes/js/tinymce/langs/wp-langs.php:311
 msgid "Remove formatting"
 msgstr "Enlever la mise en forme"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:309
+#: wp-includes/js/tinymce/langs/wp-langs.php:312
 msgid "Select text color"
 msgstr "Sélectionner la couleur du texte"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:310
+#: wp-includes/js/tinymce/langs/wp-langs.php:313
 msgid "Select background color"
 msgstr "Sélectionner la couleur du fond"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:311
+#: wp-includes/js/tinymce/langs/wp-langs.php:314
 msgid "Insert custom character"
 msgstr "Insérer un caractère particulier"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:312
+#: wp-includes/js/tinymce/langs/wp-langs.php:315
 msgid "Toggle guidelines/invisible elements"
 msgstr "Afficher les lignes/éléments invisibles"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:313
-#: wp-includes/js/tinymce/langs/wp-langs.php:342
-msgid "Insert/edit anchor"
-msgstr "Insérer/modifier un lien interne"
-
-#: wp-includes/js/tinymce/langs/wp-langs.php:314
-#: wp-includes/js/tinymce/wp-mce-help.php:238
-msgid "Cut"
-msgstr "Couper"
-
-#: wp-includes/js/tinymce/langs/wp-langs.php:315
-#: wp-includes/js/tinymce/wp-mce-help.php:237
-msgid "Copy"
-msgstr "Copier"
-
 #: wp-includes/js/tinymce/langs/wp-langs.php:316
-#: wp-includes/js/tinymce/wp-mce-help.php:237
-msgid "Paste"
-msgstr "Coller"
+#: wp-includes/js/tinymce/langs/wp-langs.php:345
+msgid "Insert/edit anchor"
+msgstr "Insérer/modifier un lien interne"
 
 #: wp-includes/js/tinymce/langs/wp-langs.php:317
-msgid "Image properties"
-msgstr "Propriétés de l&rsquo;image"
+#: wp-includes/js/tinymce/wp-mce-help.php:197
+msgid "Cut"
+msgstr "Couper"
 
 #: wp-includes/js/tinymce/langs/wp-langs.php:318
-msgid "New document"
-msgstr "Nouveau document"
+#: wp-includes/js/tinymce/wp-mce-help.php:196
+msgid "Copy"
+msgstr "Copier"
 
 #: wp-includes/js/tinymce/langs/wp-langs.php:319
-#: wp-includes/js/tinymce/langs/wp-langs.php:335
-#: wp-includes/js/tinymce/wp-mce-help.php:260
-msgid "Help"
-msgstr "Aide"
+#: wp-includes/js/tinymce/wp-mce-help.php:196
+msgid "Paste"
+msgstr "Coller"
+
+#: wp-includes/js/tinymce/langs/wp-langs.php:320
+msgid "Image properties"
+msgstr "Propriétés de l&rsquo;image"
+
+#: wp-includes/js/tinymce/langs/wp-langs.php:321
+msgid "New document"
+msgstr "Nouveau document"
 
 #: wp-includes/js/tinymce/langs/wp-langs.php:322
+#: wp-includes/js/tinymce/langs/wp-langs.php:338
+#: wp-includes/js/tinymce/wp-mce-help.php:217
+msgid "Help"
+msgstr "Aide"
+
+#: wp-includes/js/tinymce/langs/wp-langs.php:325
 msgid "Path"
 msgstr "Chemin "
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:323
+#: wp-includes/js/tinymce/langs/wp-langs.php:326
 msgid "Are you sure you want to clear all contents?"
 msgstr " Voulez-vous vraiment supprimer tout le contenu&nbsp;?"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:324
+#: wp-includes/js/tinymce/langs/wp-langs.php:327
 msgid ""
 "Jump to tool buttons - Alt+Q, Jump to editor - Alt-Z, Jump to element path - "
 "Alt-X"
@@ -4436,186 +4351,187 @@
 "Aller aux boutons d&rsquo;outils - Alt+Q&nbsp;; Aller à l&rsquo;éditeur - "
 "Alt-Z&nbsp;; Aller au chemin de l&rsquo;élément - Alt-X"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:326
-#: wp-includes/js/tinymce/langs/wp-langs.php:383
+#: wp-includes/js/tinymce/langs/wp-langs.php:329
+#: wp-includes/js/tinymce/langs/wp-langs.php:386
 msgid "Accessibility Help"
 msgstr "Aide à propos de l&rsquo;accessibilité"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:327
+#: wp-includes/js/tinymce/langs/wp-langs.php:330
 msgid "Press ALT F10 for toolbar. Press ALT 0 for help."
 msgstr ""
 "Appuyez sur Alt + F10 pour la barre d&rsquo;outils. Appuyez sur Alt + 0 pour "
 "l&rsquo;aide."
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:329
+#: wp-includes/js/tinymce/langs/wp-langs.php:332
 msgid "Toolbar"
 msgstr "Barre d&rsquo;outils"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:333
-#: wp-includes/js/tinymce/wp-mce-help.php:271
+#: wp-includes/js/tinymce/langs/wp-langs.php:336
+#: wp-includes/js/tinymce/wp-mce-help.php:229
 msgid "About TinyMCE"
 msgstr "À propos de TinyMCE"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:334
-#: wp-includes/js/tinymce/wp-mce-help.php:206
-msgid "About"
-msgstr "À propos"
-
-#: wp-includes/js/tinymce/langs/wp-langs.php:336
-msgid "License"
-msgstr "Licence"
-
 #: wp-includes/js/tinymce/langs/wp-langs.php:337
+#: wp-includes/js/tinymce/wp-mce-help.php:165
+msgid "About"
+msgstr "À propos"
+
+#: wp-includes/js/tinymce/langs/wp-langs.php:339
+msgid "License"
+msgstr "Licence"
+
+#: wp-includes/js/tinymce/langs/wp-langs.php:340
 msgid "Plugins"
 msgstr "Extensions"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:338
+#: wp-includes/js/tinymce/langs/wp-langs.php:341
 msgid "Plugin"
 msgstr "Extension"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:339
-#: wp-includes/post-template.php:1438 wp-includes/theme-compat/sidebar.php:21
+#: wp-includes/js/tinymce/langs/wp-langs.php:342
+#: wp-includes/post-template.php:1443 wp-includes/theme-compat/sidebar.php:21
 msgid "Author"
 msgstr "Auteur"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:340
+#: wp-includes/js/tinymce/langs/wp-langs.php:343
 msgid "Version"
 msgstr "Version"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:341
+#: wp-includes/js/tinymce/langs/wp-langs.php:344
 msgid "Loaded plugins"
 msgstr "Extensions chargées"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:343
+#: wp-includes/js/tinymce/langs/wp-langs.php:346
 msgid "Anchor name"
 msgstr "Nom du lien interne"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:344
+#: wp-includes/js/tinymce/langs/wp-langs.php:347
 msgid "HTML Source Editor"
 msgstr "Éditeur de source HTML"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:345
+#: wp-includes/js/tinymce/langs/wp-langs.php:348
 msgid "Word wrap"
 msgstr "Retour à la ligne"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:346
-msgid "Select a color"
-msgstr "Sélectionnez une couleur"
-
-#: wp-includes/js/tinymce/langs/wp-langs.php:347
-msgid "Picker"
-msgstr "Sélecteur"
-
-#: wp-includes/js/tinymce/langs/wp-langs.php:348
-msgid "Color picker"
-msgstr "Sélecteur de couleur"
-
 #: wp-includes/js/tinymce/langs/wp-langs.php:349
-msgid "Palette"
-msgstr "Palette"
+msgid "Select a color"
+msgstr "Sélectionnez une couleur"
 
 #: wp-includes/js/tinymce/langs/wp-langs.php:350
+msgid "Picker"
+msgstr "Sélecteur"
+
+#: wp-includes/js/tinymce/langs/wp-langs.php:351
+msgid "Color picker"
+msgstr "Sélecteur de couleur"
+
+#: wp-includes/js/tinymce/langs/wp-langs.php:352
+msgid "Palette"
+msgstr "Palette"
+
+#: wp-includes/js/tinymce/langs/wp-langs.php:353
 msgid "Palette colors"
 msgstr "Couleurs de la palette"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:351
+#: wp-includes/js/tinymce/langs/wp-langs.php:354
 msgid "Named"
 msgstr "Par nom"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:352
+#: wp-includes/js/tinymce/langs/wp-langs.php:355
 msgid "Named colors"
 msgstr "Couleurs nommées"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:353
+#: wp-includes/js/tinymce/langs/wp-langs.php:356
 msgid "Color:"
 msgstr "Couleur&nbsp;:"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:354
+#: wp-includes/js/tinymce/langs/wp-langs.php:357
 msgctxt "html attribute"
 msgid "Name:"
 msgstr "Nom&nbsp;:"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:355
+#: wp-includes/js/tinymce/langs/wp-langs.php:358
 msgid "Select custom character"
 msgstr "Sélectionnez un caractère"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:356
+#: wp-includes/js/tinymce/langs/wp-langs.php:359
 msgid "Use left and right arrows to navigate."
 msgstr "Utilisez les flèches gauche et droite pour naviguer."
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:358
+#: wp-includes/js/tinymce/langs/wp-langs.php:361
+#: wp-includes/media-template.php:423
 msgid "Image URL"
 msgstr "Adresse web de l&rsquo;image"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:359
+#: wp-includes/js/tinymce/langs/wp-langs.php:362
 msgid "Image description"
 msgstr "Description de l&rsquo;image"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:360
+#: wp-includes/js/tinymce/langs/wp-langs.php:363
 msgid "Image list"
 msgstr "Liste d&rsquo;image"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:361
+#: wp-includes/js/tinymce/langs/wp-langs.php:364
 msgid "Border"
 msgstr "Bordure"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:362
-#: wp-includes/js/tinymce/langs/wp-langs.php:393
+#: wp-includes/js/tinymce/langs/wp-langs.php:365
+#: wp-includes/js/tinymce/langs/wp-langs.php:396
 msgid "Dimensions"
 msgstr "Dimensions"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:363
+#: wp-includes/js/tinymce/langs/wp-langs.php:366
 msgid "Vertical space"
 msgstr "Espace vertical"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:364
+#: wp-includes/js/tinymce/langs/wp-langs.php:367
 msgid "Horizontal space"
 msgstr "Espace horizontal"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:366
+#: wp-includes/js/tinymce/langs/wp-langs.php:369
 msgid "Baseline"
 msgstr "Slogan"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:367
-#: wp-includes/js/tinymce/langs/wp-langs.php:468
+#: wp-includes/js/tinymce/langs/wp-langs.php:370
+#: wp-includes/js/tinymce/langs/wp-langs.php:471
 msgid "Top"
 msgstr "Haut"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:368
-msgid "Middle"
-msgstr "Milieu"
-
-#: wp-includes/js/tinymce/langs/wp-langs.php:369
-#: wp-includes/js/tinymce/langs/wp-langs.php:470
-msgid "Bottom"
-msgstr "Bas"
-
-#: wp-includes/js/tinymce/langs/wp-langs.php:370
-msgid "Text top"
-msgstr "Haut du texte"
-
 #: wp-includes/js/tinymce/langs/wp-langs.php:371
+msgid "Middle"
+msgstr "Milieu"
+
+#: wp-includes/js/tinymce/langs/wp-langs.php:372
+#: wp-includes/js/tinymce/langs/wp-langs.php:473
+msgid "Bottom"
+msgstr "Bas"
+
+#: wp-includes/js/tinymce/langs/wp-langs.php:373
+msgid "Text top"
+msgstr "Haut du texte"
+
+#: wp-includes/js/tinymce/langs/wp-langs.php:374
 msgid "Text bottom"
 msgstr "Bas du texte"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:375
+#: wp-includes/js/tinymce/langs/wp-langs.php:378
 msgid "Link URL"
 msgstr "Cible du lien"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:376
-#: wp-includes/js/tinymce/langs/wp-langs.php:427
+#: wp-includes/js/tinymce/langs/wp-langs.php:379
+#: wp-includes/js/tinymce/langs/wp-langs.php:430
 msgid "Target"
 msgstr "Cible"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:377
+#: wp-includes/js/tinymce/langs/wp-langs.php:380
 msgid "Open link in the same window"
 msgstr "Fenêtre courante"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:378
+#: wp-includes/js/tinymce/langs/wp-langs.php:381
 msgid "Open link in a new window"
 msgstr "Nouvelle fenêtre"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:380
+#: wp-includes/js/tinymce/langs/wp-langs.php:383
 msgid ""
 "The URL you entered seems to be an email address, do you want to add the "
 "required mailto: prefix?"
@@ -4624,7 +4540,7 @@
 "messagerie&nbsp;&nbsp;; voulez-vous y ajouter le préfixe &laquo; mailto: "
 "&raquo; requis&nbsp;?"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:381
+#: wp-includes/js/tinymce/langs/wp-langs.php:384
 msgid ""
 "The URL you entered seems to external link, do you want to add the required "
 "http:// prefix?"
@@ -4632,315 +4548,316 @@
 "L&rsquo;adresse web que vous avez entrée semble être un lien externe&nbsp;; "
 "voulez-vous ajouter le préfixe &laquo; http:// &raquo; requis&nbsp;?"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:382
+#: wp-includes/js/tinymce/langs/wp-langs.php:385
 msgid "Link list"
 msgstr "Liste de liens"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:384
+#: wp-includes/js/tinymce/langs/wp-langs.php:387
 msgid "General Usage"
 msgstr "Utilisation générale"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:389
+#: wp-includes/js/tinymce/langs/wp-langs.php:392
 msgid "General"
 msgstr "Général"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:390
-#: wp-includes/js/tinymce/wp-mce-help.php:204
+#: wp-includes/js/tinymce/langs/wp-langs.php:393
+#: wp-includes/js/tinymce/wp-mce-help.php:163
 msgid "Advanced"
 msgstr "Avancé"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:391
+#: wp-includes/js/tinymce/langs/wp-langs.php:394
 msgid "File/URL"
 msgstr "Fichier/Adresse web"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:392
-#: wp-includes/js/tinymce/wp-mce-help.php:256
-#: wp-includes/js/tinymce/wp-mce-help.php:257
+#: wp-includes/js/tinymce/langs/wp-langs.php:395
+#: wp-includes/js/tinymce/wp-mce-help.php:213
+#: wp-includes/js/tinymce/wp-mce-help.php:214
 msgid "List"
 msgstr "Liste"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:395
+#: wp-includes/js/tinymce/langs/wp-langs.php:398
 msgid "Constrain proportions"
 msgstr "Respecter les proportions"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:396
+#: wp-includes/js/tinymce/langs/wp-langs.php:399
 msgid "Type"
 msgstr "Type"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:397
+#: wp-includes/js/tinymce/langs/wp-langs.php:400
 msgid "Id"
 msgstr "Id"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:398
+#: wp-includes/js/tinymce/langs/wp-langs.php:401
 msgctxt "html attribute"
 msgid "Name"
 msgstr "Nom"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:400
+#: wp-includes/js/tinymce/langs/wp-langs.php:403
 msgid "V-Space"
 msgstr "V-Space"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:401
+#: wp-includes/js/tinymce/langs/wp-langs.php:404
 msgid "H-Space"
 msgstr "H-Space"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:402
+#: wp-includes/js/tinymce/langs/wp-langs.php:405
 msgid "Auto play"
 msgstr "Lecture automatique"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:403
-#: wp-includes/js/tinymce/langs/wp-langs.php:485
+#: wp-includes/js/tinymce/langs/wp-langs.php:406
+#: wp-includes/js/tinymce/langs/wp-langs.php:488
 msgid "Loop"
 msgstr "Répéter"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:404
+#: wp-includes/js/tinymce/langs/wp-langs.php:407
 msgid "Show menu"
 msgstr "Afficher le menu"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:405
+#: wp-includes/js/tinymce/langs/wp-langs.php:408
 msgid "Quality"
 msgstr "Qualité"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:406
+#: wp-includes/js/tinymce/langs/wp-langs.php:409
 msgid "Scale"
 msgstr "Appliquer"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:407
+#: wp-includes/js/tinymce/langs/wp-langs.php:410
+#: wp-includes/media-template.php:402
 msgid "Align"
 msgstr "Alignement"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:408
+#: wp-includes/js/tinymce/langs/wp-langs.php:411
 msgid "SAlign"
 msgstr "SAlignement"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:409
+#: wp-includes/js/tinymce/langs/wp-langs.php:412
 msgid "WMode"
 msgstr "WMode"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:411
+#: wp-includes/js/tinymce/langs/wp-langs.php:414
 msgid "Base"
 msgstr "Base"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:412
+#: wp-includes/js/tinymce/langs/wp-langs.php:415
 msgid "Flashvars"
 msgstr "Variables Flash"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:413
+#: wp-includes/js/tinymce/langs/wp-langs.php:416
 msgid "SWLiveConnect"
 msgstr "SWLiveConnect"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:414
+#: wp-includes/js/tinymce/langs/wp-langs.php:417
 msgid "AutoHREF"
 msgstr "AutoHREF"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:415
+#: wp-includes/js/tinymce/langs/wp-langs.php:418
 msgid "Cache"
 msgstr "Mémoire cache"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:416
+#: wp-includes/js/tinymce/langs/wp-langs.php:419
 msgid "Hidden"
 msgstr "Caché"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:417
+#: wp-includes/js/tinymce/langs/wp-langs.php:420
 msgid "Controller"
 msgstr "Contrôleur"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:418
+#: wp-includes/js/tinymce/langs/wp-langs.php:421
 msgid "Kiosk mode"
 msgstr "Mode kiosque"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:419
+#: wp-includes/js/tinymce/langs/wp-langs.php:422
 msgid "Play every frame"
 msgstr "Jouer toutes les images"
 
 # traduction reprise de la trad tinymce...
 # http://trac.midgard-project.org/browser/trunk/midcom/midcom.helper.datamanager2/static/tinymce/plugins/media/langs/fr_dlg.js
-#: wp-includes/js/tinymce/langs/wp-langs.php:420
+#: wp-includes/js/tinymce/langs/wp-langs.php:423
 msgid "Target cache"
 msgstr "Cache cible"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:421
+#: wp-includes/js/tinymce/langs/wp-langs.php:424
 msgid "No correction"
 msgstr "Pas de correction"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:422
-msgid "Enable JavaScript"
-msgstr "Activer JavaScript"
-
-#: wp-includes/js/tinymce/langs/wp-langs.php:423
-#: wp-includes/js/tinymce/langs/wp-langs.php:481
-msgid "Start time"
-msgstr "Temps de début"
-
-#: wp-includes/js/tinymce/langs/wp-langs.php:424
-msgid "End time"
-msgstr "Temps de fin"
-
 #: wp-includes/js/tinymce/langs/wp-langs.php:425
-msgid "href"
-msgstr "href"
+msgid "Enable JavaScript"
+msgstr "Activer JavaScript"
 
 #: wp-includes/js/tinymce/langs/wp-langs.php:426
+#: wp-includes/js/tinymce/langs/wp-langs.php:484
+msgid "Start time"
+msgstr "Temps de début"
+
+#: wp-includes/js/tinymce/langs/wp-langs.php:427
+msgid "End time"
+msgstr "Temps de fin"
+
+#: wp-includes/js/tinymce/langs/wp-langs.php:428
+msgid "href"
+msgstr "href"
+
+#: wp-includes/js/tinymce/langs/wp-langs.php:429
 msgid "Choke speed"
 msgstr "Vitesse de déroulement"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:428
+#: wp-includes/js/tinymce/langs/wp-langs.php:431
 msgid "Volume"
 msgstr "Volume"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:429
-#: wp-includes/js/tinymce/langs/wp-langs.php:484
+#: wp-includes/js/tinymce/langs/wp-langs.php:432
+#: wp-includes/js/tinymce/langs/wp-langs.php:487
 msgid "Auto start"
 msgstr "Démarrage automatique"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:430
+#: wp-includes/js/tinymce/langs/wp-langs.php:433
 msgid "Enabled"
 msgstr "Activé"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:431
+#: wp-includes/js/tinymce/langs/wp-langs.php:434
 msgid "Fullscreen"
 msgstr "Plein écran"
 
 # à vérifier
-#: wp-includes/js/tinymce/langs/wp-langs.php:432
+#: wp-includes/js/tinymce/langs/wp-langs.php:435
 msgid "Invoke URLs"
 msgstr "Lancer les adresses web"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:433
+#: wp-includes/js/tinymce/langs/wp-langs.php:436
 msgid "Mute"
 msgstr "Muet"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:434
+#: wp-includes/js/tinymce/langs/wp-langs.php:437
 msgid "Stretch to fit"
 msgstr "Redimensionner"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:435
+#: wp-includes/js/tinymce/langs/wp-langs.php:438
 msgid "Windowless video"
 msgstr "Vidéo sans fenêtre"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:436
+#: wp-includes/js/tinymce/langs/wp-langs.php:439
 msgid "Balance"
 msgstr "Balance"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:437
+#: wp-includes/js/tinymce/langs/wp-langs.php:440
 msgid "Base URL"
 msgstr "Adresse web de base"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:438
+#: wp-includes/js/tinymce/langs/wp-langs.php:441
 msgid "Captioning id"
 msgstr "Id du sous-titre"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:439
+#: wp-includes/js/tinymce/langs/wp-langs.php:442
 msgid "Current marker"
 msgstr "Marqueur actuel"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:440
+#: wp-includes/js/tinymce/langs/wp-langs.php:443
 msgid "Current position"
 msgstr "Position actuelle"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:441
+#: wp-includes/js/tinymce/langs/wp-langs.php:444
 msgid "Default frame"
 msgstr "Frame par défaut"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:442
+#: wp-includes/js/tinymce/langs/wp-langs.php:445
 msgid "Play count"
 msgstr "Nombre de lectures"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:443
+#: wp-includes/js/tinymce/langs/wp-langs.php:446
 msgid "Rate"
 msgstr "Notation"
 
 # ???
-#: wp-includes/js/tinymce/langs/wp-langs.php:444
+#: wp-includes/js/tinymce/langs/wp-langs.php:447
 msgid "UI Mode"
 msgstr "Mode UI"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:445
+#: wp-includes/js/tinymce/langs/wp-langs.php:448
 msgid "Flash options"
 msgstr "Options Flash"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:446
-msgid "Quicktime options"
+#: wp-includes/js/tinymce/langs/wp-langs.php:449
+msgid "QuickTime options"
 msgstr "Options de Quicktime"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:447
+#: wp-includes/js/tinymce/langs/wp-langs.php:450
 msgid "Windows media player options"
 msgstr "Options Windows Media Player"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:448
+#: wp-includes/js/tinymce/langs/wp-langs.php:451
 msgid "Real media player options"
 msgstr "Option Real Media Player"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:449
-msgid "Shockwave options"
-msgstr "Options de Shockwave"
-
-#: wp-includes/js/tinymce/langs/wp-langs.php:450
-msgid "Auto goto URL"
-msgstr "Lancer automatiquement les adresses web"
-
 #: wp-includes/js/tinymce/langs/wp-langs.php:452
+msgid "Shockwave options"
+msgstr "Options de Shockwave"
+
+#: wp-includes/js/tinymce/langs/wp-langs.php:453
+msgid "Auto goto URL"
+msgstr "Lancer automatiquement les adresses web"
+
+#: wp-includes/js/tinymce/langs/wp-langs.php:455
 msgid "Image status"
 msgstr "Statut de l&rsquo;image"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:453
+#: wp-includes/js/tinymce/langs/wp-langs.php:456
 msgid "Maintain aspect"
 msgstr "Maintenir l&rsquo;aspect"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:454
+#: wp-includes/js/tinymce/langs/wp-langs.php:457
 msgid "No java"
 msgstr "Pas de Java"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:455
+#: wp-includes/js/tinymce/langs/wp-langs.php:458
 msgid "Prefetch"
 msgstr "Préchargement"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:456
+#: wp-includes/js/tinymce/langs/wp-langs.php:459
 msgid "Shuffle"
 msgstr "Aléatoire"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:457
+#: wp-includes/js/tinymce/langs/wp-langs.php:460
 msgid "Console"
 msgstr "Console"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:458
+#: wp-includes/js/tinymce/langs/wp-langs.php:461
 msgid "Num loops"
 msgstr "Nombre de boucles"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:459
+#: wp-includes/js/tinymce/langs/wp-langs.php:462
 msgid "Controls"
 msgstr "Contrôles"
 
 # à vérifier
-#: wp-includes/js/tinymce/langs/wp-langs.php:460
+#: wp-includes/js/tinymce/langs/wp-langs.php:463
 msgid "Script callbacks"
 msgstr "Rappels de script"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:461
+#: wp-includes/js/tinymce/langs/wp-langs.php:464
 msgid "Stretch style"
 msgstr "Style d&rsquo;étirement"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:462
+#: wp-includes/js/tinymce/langs/wp-langs.php:465
 msgid "Stretch H-Align"
 msgstr "Étirement horizontal"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:463
+#: wp-includes/js/tinymce/langs/wp-langs.php:466
 msgid "Stretch V-Align"
 msgstr "Étirement vertical"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:464
+#: wp-includes/js/tinymce/langs/wp-langs.php:467
 msgid "Sound"
 msgstr "Son"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:465
+#: wp-includes/js/tinymce/langs/wp-langs.php:468
 msgid "Progress"
 msgstr "Progression"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:466
+#: wp-includes/js/tinymce/langs/wp-langs.php:469
 msgid "QT Src"
 msgstr "Source du QuickTime"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:467
+#: wp-includes/js/tinymce/langs/wp-langs.php:470
 msgid ""
 "Streamed rtsp resources should be added to the QT Src field under the "
 "advanced tab."
@@ -4948,272 +4865,282 @@
 "Les flux RTSP (streaming) devraient être ajoutés au champ &laquo; Source du "
 "QuickTime &raquo; dans l&rsquo;onglet Avancé."
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:473
+#: wp-includes/js/tinymce/langs/wp-langs.php:476
 msgid "Top left"
 msgstr "Haut gauche"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:474
+#: wp-includes/js/tinymce/langs/wp-langs.php:477
 msgid "Top right"
 msgstr "En haut à droite"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:475
+#: wp-includes/js/tinymce/langs/wp-langs.php:478
 msgid "Bottom left"
 msgstr "Bas gauche"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:476
+#: wp-includes/js/tinymce/langs/wp-langs.php:479
 msgid "Bottom right"
 msgstr "Bas droite"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:477
+#: wp-includes/js/tinymce/langs/wp-langs.php:480
 msgid "Flash video options"
 msgstr "Options de vidéo de Flash"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:478
+#: wp-includes/js/tinymce/langs/wp-langs.php:481
 msgid "Scale mode"
 msgstr "Mode d&rsquo;étirement"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:479
+#: wp-includes/js/tinymce/langs/wp-langs.php:482
 msgid "Buffer"
 msgstr "Tampon"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:480
+#: wp-includes/js/tinymce/langs/wp-langs.php:483
 msgid "Start image"
 msgstr "Image de départ"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:482
+#: wp-includes/js/tinymce/langs/wp-langs.php:485
 msgid "Default volume"
 msgstr "Volume par défaut"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:483
+#: wp-includes/js/tinymce/langs/wp-langs.php:486
 msgid "Hidden GUI"
 msgstr "Interface cachée"
 
 # Basé sur la trad officielle TinyMCE
 # http://trac.midgard-project.org/browser/trunk/midcom/midcom.helper.datamanager2/static/tinymce/plugins/media/langs/fr_dlg.js
-#: wp-includes/js/tinymce/langs/wp-langs.php:486
+#: wp-includes/js/tinymce/langs/wp-langs.php:489
 msgid "Show scale modes"
 msgstr "Montrer les différentes échelles"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:487
+#: wp-includes/js/tinymce/langs/wp-langs.php:490
 msgid "Smooth video"
 msgstr "Vidéo continue"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:488
+#: wp-includes/js/tinymce/langs/wp-langs.php:491
 msgid "JS Callback"
 msgstr "Callback JavaScript"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:489
+#: wp-includes/js/tinymce/langs/wp-langs.php:492
 msgid "HTML5 Video Options"
 msgstr "Options de vidéo de HTML5"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:490
+#: wp-includes/js/tinymce/langs/wp-langs.php:493
 msgid "Alternative source 1"
 msgstr "Source alternative 1"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:491
+#: wp-includes/js/tinymce/langs/wp-langs.php:494
 msgid "Alternative source 2"
 msgstr "Source alternative 2"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:492
+#: wp-includes/js/tinymce/langs/wp-langs.php:495
 msgid "Preload"
 msgstr "Précharger"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:493
+#: wp-includes/js/tinymce/langs/wp-langs.php:496
 msgid "Poster"
 msgstr "Image"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:494
-#: wp-includes/js/tinymce/langs/wp-langs.php:525
+#: wp-includes/js/tinymce/langs/wp-langs.php:497
+#: wp-includes/js/tinymce/langs/wp-langs.php:529
 msgid "Source"
 msgstr "Adresse web source"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:498
+#: wp-includes/js/tinymce/langs/wp-langs.php:501
 msgid "Show/Hide Kitchen Sink (Alt + Shift + Z)"
 msgstr "Afficher/cacher les options avancées (Alt + Shift + Z)"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:499
+#: wp-includes/js/tinymce/langs/wp-langs.php:502
 msgid "Insert More Tag (Alt + Shift + T)"
 msgstr "Insérer la balise « More » (Alt + Shift + T)"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:500
+#: wp-includes/js/tinymce/langs/wp-langs.php:503
 msgid "Insert Page break (Alt + Shift + P)"
 msgstr "Insérer un saut de page (Alt + Shift + P)"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:502
-msgid "More..."
-msgstr "Lire la suite&hellip;"
-
-#: wp-includes/js/tinymce/langs/wp-langs.php:503
-msgid "Next page..."
-msgstr "Page suivante&hellip;"
-
-#: wp-includes/js/tinymce/langs/wp-langs.php:504
-msgid "Add Media"
-msgstr "Ajouter un média"
-
 #: wp-includes/js/tinymce/langs/wp-langs.php:505
-msgid "Add an Image"
-msgstr "Ajouter une image"
+msgid "More..."
+msgstr "Lire la suite&hellip;"
 
 #: wp-includes/js/tinymce/langs/wp-langs.php:506
+msgid "Next page..."
+msgstr "Page suivante&hellip;"
+
+#: wp-includes/js/tinymce/langs/wp-langs.php:507 wp-includes/media.php:1484
+msgid "Add Media"
+msgstr "Ajouter un média"
+
+#: wp-includes/js/tinymce/langs/wp-langs.php:508
+msgid "Add an Image"
+msgstr "Ajouter une image"
+
+#: wp-includes/js/tinymce/langs/wp-langs.php:509
 msgid "Add Video"
 msgstr "Ajouter une vidéo"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:507
+#: wp-includes/js/tinymce/langs/wp-langs.php:510
 msgid "Add Audio"
 msgstr "Ajouter un son"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:508
+#: wp-includes/js/tinymce/langs/wp-langs.php:511 wp-includes/media.php:1519
 msgid "Edit Gallery"
 msgstr "Modifier la galerie"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:509
+#: wp-includes/js/tinymce/langs/wp-langs.php:512
 msgid "Delete Gallery"
 msgstr "Supprimer la galerie"
 
+#: wp-includes/js/tinymce/langs/wp-langs.php:513
+msgid "Distraction Free Writing mode (Alt + Shift + W)"
+msgstr "Basculer en mode plein écran (Alt + Shift + W)"
+
 # Ne pas mettre d'entité HTML (&nbsp;...) : chaîne affichée dans l'éditeur visuel.
-#: wp-includes/js/tinymce/langs/wp-langs.php:513
+#: wp-includes/js/tinymce/langs/wp-langs.php:517
+#: wp-includes/media-template.php:203
 msgid "Edit Image"
 msgstr "Modifier l’image"
 
 # Ne pas mettre d'entité HTML (&nbsp;...) : chaîne affichée dans l'éditeur visuel.
-#: wp-includes/js/tinymce/langs/wp-langs.php:514
+#: wp-includes/js/tinymce/langs/wp-langs.php:518
 msgid "Delete Image"
 msgstr "Supprimer l’image"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:515
-msgid "Advanced Settings"
-msgstr "Options avancées"
-
-#: wp-includes/js/tinymce/langs/wp-langs.php:517
-msgid "Size"
-msgstr "Taille"
-
-#: wp-includes/js/tinymce/langs/wp-langs.php:518
-msgid "Thumbnail"
-msgstr "Miniature"
-
 #: wp-includes/js/tinymce/langs/wp-langs.php:519
-msgid "Medium"
-msgstr "Moyenne"
-
-#: wp-includes/js/tinymce/langs/wp-langs.php:520
-msgid "Full Size"
-msgstr "Taille originale"
+msgid "Advanced Settings"
+msgstr "Options avancées"
 
 #: wp-includes/js/tinymce/langs/wp-langs.php:521
-msgid "Current Link"
-msgstr "Lien actuel"
+#: wp-includes/media-template.php:310
+msgid "Size"
+msgstr "Taille"
 
 #: wp-includes/js/tinymce/langs/wp-langs.php:522
+#: wp-includes/media-template.php:319 wp-includes/media.php:1365
+msgid "Thumbnail"
+msgstr "Miniature"
+
+#: wp-includes/js/tinymce/langs/wp-langs.php:523
+#: wp-includes/media-template.php:320 wp-includes/media.php:1366
+msgid "Medium"
+msgstr "Moyenne"
+
+#: wp-includes/js/tinymce/langs/wp-langs.php:524
+#: wp-includes/media-template.php:322 wp-includes/media.php:1368
+msgid "Full Size"
+msgstr "Taille originale"
+
+#: wp-includes/js/tinymce/langs/wp-langs.php:525
+msgid "Current Link"
+msgstr "Lien actuel"
+
+#: wp-includes/js/tinymce/langs/wp-langs.php:526
 msgid "Link to Image"
 msgstr "Lier à l&rsquo;image"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:523
+#: wp-includes/js/tinymce/langs/wp-langs.php:527
 msgid "Enter a link URL or click above for presets."
 msgstr ""
 "Saisissez une adresse web ou cliquez sur l&rsquo;un des préréglages ci-dessus"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:524
+#: wp-includes/js/tinymce/langs/wp-langs.php:528
 msgid "Advanced Image Settings"
 msgstr "Options avancées de l&rsquo;image"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:526
+#: wp-includes/js/tinymce/langs/wp-langs.php:530
 msgid "Width"
 msgstr "Largeur"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:527
-#: wp-includes/js/tinymce/langs/wp-langs.php:532
+#: wp-includes/js/tinymce/langs/wp-langs.php:531
+#: wp-includes/js/tinymce/langs/wp-langs.php:536
 msgid "Height"
 msgstr "Hauteur"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:528
-#: wp-includes/js/tinymce/langs/wp-langs.php:533
+#: wp-includes/js/tinymce/langs/wp-langs.php:532
+#: wp-includes/js/tinymce/langs/wp-langs.php:537
 msgid "Original Size"
 msgstr "Taille originale"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:529
-#: wp-includes/js/tinymce/langs/wp-langs.php:534
+#: wp-includes/js/tinymce/langs/wp-langs.php:533
+#: wp-includes/js/tinymce/langs/wp-langs.php:538
 msgid "CSS Class"
 msgstr "Classe CSS"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:530
+#: wp-includes/js/tinymce/langs/wp-langs.php:534
 msgid "Advanced Link Settings"
 msgstr "Options avancées du lien"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:531
+#: wp-includes/js/tinymce/langs/wp-langs.php:535
 msgid "Link Rel"
 msgstr "Attribut &laquo; Rel &raquo; du lien"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:535
+#: wp-includes/js/tinymce/langs/wp-langs.php:539
 msgid "60%"
 msgstr "60%"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:536
+#: wp-includes/js/tinymce/langs/wp-langs.php:540
 msgid "70%"
 msgstr "70%"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:537
+#: wp-includes/js/tinymce/langs/wp-langs.php:541
 msgid "80%"
 msgstr "80%"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:538
+#: wp-includes/js/tinymce/langs/wp-langs.php:542
 msgid "90%"
 msgstr "90%"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:539
+#: wp-includes/js/tinymce/langs/wp-langs.php:543
 msgid "100%"
 msgstr "100%"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:540
+#: wp-includes/js/tinymce/langs/wp-langs.php:544
 msgid "110%"
 msgstr "120%"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:541
+#: wp-includes/js/tinymce/langs/wp-langs.php:545
 msgid "120%"
 msgstr "120%"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:542
+#: wp-includes/js/tinymce/langs/wp-langs.php:546
 msgid "130%"
 msgstr "130%"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:544
+#: wp-includes/js/tinymce/langs/wp-langs.php:548
+#: wp-includes/media-template.php:226 wp-includes/media-template.php:391
 msgid "Caption"
 msgstr "Légende"
 
-#: wp-includes/js/tinymce/langs/wp-langs.php:545
-msgid "Alternate Text"
+#: wp-includes/js/tinymce/langs/wp-langs.php:549
+msgid "Alternative Text"
 msgstr "Texte alternatif"
 
 #: wp-includes/js/tinymce/wp-mce-help.php:16
 msgid "Rich Editor Help"
 msgstr "Aide de l&rsquo;éditeur visuel"
 
-#: wp-includes/js/tinymce/wp-mce-help.php:203
+#: wp-includes/js/tinymce/wp-mce-help.php:162
 msgid "Basics of Rich Editing"
 msgstr "Bases de l&rsquo;édition visuelle"
 
-#: wp-includes/js/tinymce/wp-mce-help.php:203
+#: wp-includes/js/tinymce/wp-mce-help.php:162
 msgid "Basics"
 msgstr "Les bases"
 
-#: wp-includes/js/tinymce/wp-mce-help.php:204
+#: wp-includes/js/tinymce/wp-mce-help.php:163
 msgid "Advanced use of the Rich Editor"
 msgstr "Utilisation avancée de l&rsquo;éditeur visuel"
 
-#: wp-includes/js/tinymce/wp-mce-help.php:205
+#: wp-includes/js/tinymce/wp-mce-help.php:164
 msgid "Hotkeys"
 msgstr "Raccourcis clavier"
 
-#: wp-includes/js/tinymce/wp-mce-help.php:206
+#: wp-includes/js/tinymce/wp-mce-help.php:165
 msgid "About the software"
 msgstr "À propos de ce logiciel"
 
-#: wp-includes/js/tinymce/wp-mce-help.php:212
+#: wp-includes/js/tinymce/wp-mce-help.php:171
 msgid "Rich Editing Basics"
 msgstr "Bases de l&rsquo;édition visuelle"
 
-#: wp-includes/js/tinymce/wp-mce-help.php:213
+#: wp-includes/js/tinymce/wp-mce-help.php:172
 msgid ""
 "<em>Rich editing</em>, also called WYSIWYG for What You See Is What You Get, "
 "means your text is formatted as you type. The rich editor creates HTML code "
@@ -5228,7 +5155,7 @@
 "liens et images apparaissent de la même manière que lors de leur publication "
 "sur Internet."
 
-#: wp-includes/js/tinymce/wp-mce-help.php:214
+#: wp-includes/js/tinymce/wp-mce-help.php:173
 msgid ""
 "WordPress includes a rich HTML editor that works well in all major web "
 "browsers used today. However editing HTML is not the same as typing text. "
@@ -5253,7 +5180,7 @@
 "seront retirées, car elles seront considérées comme invalides par les "
 "fonctions internes de correction HTML."
 
-#: wp-includes/js/tinymce/wp-mce-help.php:215
+#: wp-includes/js/tinymce/wp-mce-help.php:174
 msgid ""
 "While using the editor, most basic keyboard shortcuts work like in any other "
 "text editor. For example: Shift+Enter inserts line break, Ctrl+C = copy, Ctrl"
@@ -5269,7 +5196,7 @@
 "Voir l&rsquo;onglet Raccourcis Clavier pour connaître tous les raccourcis "
 "disponibles."
 
-#: wp-includes/js/tinymce/wp-mce-help.php:216
+#: wp-includes/js/tinymce/wp-mce-help.php:175
 msgid ""
 "If you do not like the way the rich editor works, you may turn it off from "
 "Your Profile submenu, under Users in the admin menu."
@@ -5278,15 +5205,15 @@
 "pouvez le désactiver depuis la page Votre Profil, dans le menu d&rsquo;"
 "administration Utilisateurs."
 
-#: wp-includes/js/tinymce/wp-mce-help.php:220
+#: wp-includes/js/tinymce/wp-mce-help.php:179
 msgid "Advanced Rich Editing"
 msgstr "Édition visuelle avancée"
 
-#: wp-includes/js/tinymce/wp-mce-help.php:221
+#: wp-includes/js/tinymce/wp-mce-help.php:180
 msgid "Images and Attachments"
 msgstr "Images et fichiers attachés"
 
-#: wp-includes/js/tinymce/wp-mce-help.php:222
+#: wp-includes/js/tinymce/wp-mce-help.php:181
 msgid ""
 "There is a button in the editor toolbar for inserting images that are "
 "already hosted somewhere on the internet. If you have a URL for an image, "
@@ -5297,64 +5224,59 @@
 "l&rsquo;adresse web de cette image, cliquez sur ce bouton et saisissez "
 "l&rsquo;adresse web dans la boîte qui apparaît."
 
-#: wp-includes/js/tinymce/wp-mce-help.php:223
+#: wp-includes/js/tinymce/wp-mce-help.php:182
 msgid ""
 "If you need to upload an image or another media file from your computer, you "
-"can use the Media Library buttons above the editor. The media library will "
+"can use the Media Library button above the editor. The media library will "
 "attempt to create a thumbnail-sized copy from each uploaded image. To insert "
 "your image into the post, first click on the thumbnail to reveal a menu of "
-"options. When you have selected the options you like, click \"Send to Editor"
-"\" and your image or file will appear in the post you are editing. If you "
-"are inserting a movie, there are additional options in the \"Media\" dialog "
-"that can be opened from the second toolbar row."
+"options. When you have selected the options you like, click \"Insert into "
+"Post\" and your image or file will appear in the post you are editing."
 msgstr ""
 "Si vous devez envoyer une image ou un autre média depuis votre ordinateur, "
 "vous pouvez utiliser les boutons de la bibliothèque des médias, situés au-"
 "dessus de l&rsquo;éditeur. La bibliothèque de médias tentera de créer une "
-"image miniature lorsque vous enverrez une image. Pour insérer l&rsquo;image "
-"envoyée dans l&rsquo;article, cliquez tout d&rsquo;abord sur la miniature "
-"pour faire apparaître un menu d&rsquo;options. Une fois que vous avez "
-"sélectionné les options qui vous conviennent, cliquez sur &laquo;&nbsp;"
-"Envoyer dans l&rsquo;éditeur&nbsp;&raquo;, et votre image ou fichier "
-"apparaîtra dans l&rsquo;article que vous êtes en train de modifier. Si vous "
-"insérez une vidéo, il y a des options supplémentaires dans la fenêtre &laquo;"
-"&nbsp;Média&nbsp;&raquo; que vous pouvez ouvrir depuis la seconde barre "
-"d&rsquo;outils."
-
-#: wp-includes/js/tinymce/wp-mce-help.php:224
+"image miniature pour chaque image que vous mettrez en ligne. Pour insérer "
+"ensuite l&rsquo;image dans l&rsquo;article, cliquez tout d&rsquo;abord sur "
+"la miniature pour faire apparaître un menu d&rsquo;options. Une fois que "
+"vous avez sélectionné les options qui vous conviennent, cliquez sur &laquo;"
+"&nbsp;Envoyer dans l&rsquo;éditeur&nbsp;&raquo;, et votre image ou fichier "
+"apparaîtra dans l&rsquo;article que vous êtes en train de modifier. "
+
+#: wp-includes/js/tinymce/wp-mce-help.php:183
 msgid "HTML in the Rich Editor"
 msgstr "HTML dans l&rsquo;éditeur visuel"
 
-#: wp-includes/js/tinymce/wp-mce-help.php:225
+#: wp-includes/js/tinymce/wp-mce-help.php:184
 msgid ""
 "Any HTML entered directly into the rich editor will show up as text when the "
 "post is viewed. What you see is what you get. When you want to include HTML "
 "elements that cannot be generated with the toolbar buttons, you must enter "
-"it by hand in the HTML editor. Examples are tables and &lt;code&gt;. To do "
-"this, click the HTML tab and edit the code, then switch back to Visual mode. "
+"it by hand in the Text editor. Examples are tables and &lt;code&gt;. To do "
+"this, click the Text tab and edit the code, then switch back to Visual mode. "
 "If the code is valid and understood by the editor, you should see it "
 "rendered immediately."
 msgstr ""
 "Tout code HTML inséré via l&rsquo;éditeur visuel apparaîtra comme du texte "
 "quand l&rsquo;article sera affiché. Si vous souhaitez inclure du code HTML "
 "qui ne peut être généré avec les boutons de la barre d&rsquo;outils, vous "
-"devez le saisir à la main à l&rsquo;aide de l&rsquo;éditeur HTML. Par "
+"devez le saisir à la main à l&rsquo;aide de l&rsquo;éditeur Texte. Par "
 "exemple, c&rsquo;est la seule façon de faire des tableaux ou d&rsquo;"
-"utiliser la balise &lt;code&gt;. Pour accéder à cet éditeur, cliquez sur le "
-"bouton &laquo;&nbsp;HTML&nbsp;&raquo; et saisissez votre code, puis "
+"utiliser la balise &lt;code&gt;. Pour accéder à cet éditeur, cliquez sur "
+"l&rsquo;onglet &laquo;&nbsp;Texte&nbsp;&raquo; et saisissez votre code, puis "
 "retournez dans l&rsquo;éditeur visuel. Si le code HTML est valide et compris "
 "par l&rsquo;éditeur, le résultat devrait être immédiatement visible."
 
-#: wp-includes/js/tinymce/wp-mce-help.php:226
+#: wp-includes/js/tinymce/wp-mce-help.php:185
 msgid "Pasting in the Rich Editor"
 msgstr "Collage dans l&rsquo;éditeur visuel"
 
-#: wp-includes/js/tinymce/wp-mce-help.php:227
+#: wp-includes/js/tinymce/wp-mce-help.php:186
 msgid ""
 "When pasting content from another web page the results can be inconsistent "
 "and depend on your browser and on the web page you are pasting from. The "
 "editor tries to correct any invalid HTML code that was pasted, but for best "
-"results try using the HTML tab or one of the paste buttons that are on the "
+"results try using the Text tab or one of the paste buttons that are on the "
 "second row. Alternatively try pasting paragraph by paragraph. In most "
 "browsers to select one paragraph at a time, triple-click on it."
 msgstr ""
@@ -5362,27 +5284,27 @@
 "résultats inattendus voire incohérents, en fonction du navigateur que vous "
 "utilisez et de la page d&rsquo;origine du contenu copié/collé. L&rsquo;"
 "éditeur tentera de corriger le code HTML invalide qui a été collé, mais vous "
-"obtiendrez de meilleurs résultats en passant par le mode HTML, ou par "
+"obtiendrez de meilleurs résultats en passant par le mode Texte, ou par "
 "l&rsquo;un des boutons de collage situés dans la seconde rangée de boutons. "
 "Vous pouvez également essayer de coller le contenu paragraphe par paragraphe "
 "- dans la plupart des navigateurs, vous pouvez sélectionner un paragraphe "
-"seul en triple-cliquant sur celui-ci."
-
-#: wp-includes/js/tinymce/wp-mce-help.php:228
+"seul en cliquant trois fois sur celui-ci."
+
+#: wp-includes/js/tinymce/wp-mce-help.php:187
 msgid ""
 "Pasting content from another application, like Word or Excel, is best done "
-"with the Paste from Word button on the second row, or in HTML mode."
+"with the Paste from Word button on the second row, or in Text mode."
 msgstr ""
 "Si vous souhaitez copier du contenu en provenance d&rsquo;un autre "
 "programme, comme Word ou Excel, il sera préférable d&rsquo;utiliser le "
-"bouton &laquo; Coller du texte Word &raquo;, situé dans la seconde rangée de "
-"boutons, ou de passer par le mode HTML."
-
-#: wp-includes/js/tinymce/wp-mce-help.php:232
+"bouton &laquo;&nbsp;Coller du texte Word&nbsp;&raquo;, situé dans la seconde "
+"rangée de boutons, ou de passer par le mode Texte."
+
+#: wp-includes/js/tinymce/wp-mce-help.php:191
 msgid "Writing at Full Speed"
 msgstr "Écrire à vitesse maximale"
 
-#: wp-includes/js/tinymce/wp-mce-help.php:233
+#: wp-includes/js/tinymce/wp-mce-help.php:192
 msgid ""
 "Rather than reaching for your mouse to click on the toolbar, use these "
 "access keys. Windows and Linux use Ctrl + letter. Macintosh uses Command + "
@@ -5392,124 +5314,118 @@
 "outils, utilisez les raccourcis clavier. Sous Windows et Linux, utilisez Ctrl"
 "+&lt;lettre>&nbsp; sous Macintosh, utilisez la touche Commande+&lt;lettre>."
 
-#: wp-includes/js/tinymce/wp-mce-help.php:236
-#: wp-includes/js/tinymce/wp-mce-help.php:250
+#: wp-includes/js/tinymce/wp-mce-help.php:195
+#: wp-includes/js/tinymce/wp-mce-help.php:209
 msgid "Letter"
 msgstr "Lettre"
 
-#: wp-includes/js/tinymce/wp-mce-help.php:236
-#: wp-includes/js/tinymce/wp-mce-help.php:250
+#: wp-includes/js/tinymce/wp-mce-help.php:195
+#: wp-includes/js/tinymce/wp-mce-help.php:209
 msgid "Action"
 msgstr "Action"
 
-#: wp-includes/js/tinymce/wp-mce-help.php:238
+#: wp-includes/js/tinymce/wp-mce-help.php:197
 msgid "Select all"
 msgstr "Sélectionner tout"
 
-#: wp-includes/js/tinymce/wp-mce-help.php:239
+#: wp-includes/js/tinymce/wp-mce-help.php:198
 msgid "Undo"
 msgstr "Annuler"
 
-#: wp-includes/js/tinymce/wp-mce-help.php:239
+#: wp-includes/js/tinymce/wp-mce-help.php:198
 msgid "Redo"
 msgstr "Rétablir"
 
-#: wp-includes/js/tinymce/wp-mce-help.php:241
-#: wp-includes/js/tinymce/wp-mce-help.php:251
+#: wp-includes/js/tinymce/wp-mce-help.php:200
 msgid "Bold"
 msgstr "Gras"
 
-#: wp-includes/js/tinymce/wp-mce-help.php:241
-#: wp-includes/js/tinymce/wp-mce-help.php:251
+#: wp-includes/js/tinymce/wp-mce-help.php:200
 msgid "Italic"
 msgstr "Italique"
 
-#: wp-includes/js/tinymce/wp-mce-help.php:248
+#: wp-includes/js/tinymce/wp-mce-help.php:207
 msgid ""
 "The following shortcuts use different access keys: Alt + Shift + letter."
 msgstr ""
 "Vous pouvez accéder aux raccourcis suivants via les touches&nbsp;: Alt+Shift"
 "+&lt;lettre>."
 
-#: wp-includes/js/tinymce/wp-mce-help.php:253
+#: wp-includes/js/tinymce/wp-mce-help.php:210
 msgid "Check Spelling"
 msgstr "Vérifier l&rsquo;orthographe"
 
-#: wp-includes/js/tinymce/wp-mce-help.php:253
+#: wp-includes/js/tinymce/wp-mce-help.php:210
 msgid "Align Left"
 msgstr "Aligner à gauche"
 
-#: wp-includes/js/tinymce/wp-mce-help.php:254
+#: wp-includes/js/tinymce/wp-mce-help.php:211
 msgid "Justify Text"
 msgstr "Justifier le texte"
 
-#: wp-includes/js/tinymce/wp-mce-help.php:254
+#: wp-includes/js/tinymce/wp-mce-help.php:211
 msgid "Align Center"
 msgstr "Centrer"
 
-#: wp-includes/js/tinymce/wp-mce-help.php:255
+#: wp-includes/js/tinymce/wp-mce-help.php:212
 msgid "Strikethrough"
 msgstr "Barrer"
 
-#: wp-includes/js/tinymce/wp-mce-help.php:255
+#: wp-includes/js/tinymce/wp-mce-help.php:212
 msgid "Align Right"
 msgstr "Aligner à droite"
 
-#: wp-includes/js/tinymce/wp-mce-help.php:256
+#: wp-includes/js/tinymce/wp-mce-help.php:213
 msgid "Insert link"
 msgstr "Insérer un lien"
 
-#: wp-includes/js/tinymce/wp-mce-help.php:257
+#: wp-includes/js/tinymce/wp-mce-help.php:214
 msgid "Remove link"
 msgstr "Enlever le lien"
 
-#: wp-includes/js/tinymce/wp-mce-help.php:258
+#: wp-includes/js/tinymce/wp-mce-help.php:215
 msgid "Quote"
 msgstr "Citation"
 
-#: wp-includes/js/tinymce/wp-mce-help.php:258
+#: wp-includes/js/tinymce/wp-mce-help.php:215
 msgid "Insert Image"
 msgstr "Insérer une image"
 
-#: wp-includes/js/tinymce/wp-mce-help.php:259
-msgid "Full Screen"
-msgstr "Plein écran"
-
-#: wp-includes/js/tinymce/wp-mce-help.php:259
+#: wp-includes/js/tinymce/wp-mce-help.php:216
+msgid "Distraction Free Writing mode"
+msgstr "Mode &laquo;&nbsp;aucune distraction&nbsp;&raquo;"
+
+#: wp-includes/js/tinymce/wp-mce-help.php:216
 msgid "Insert More Tag"
 msgstr "Insérer la balise « More »"
 
-#: wp-includes/js/tinymce/wp-mce-help.php:260
+#: wp-includes/js/tinymce/wp-mce-help.php:217
 msgid "Insert Page Break tag"
 msgstr "Insérer la balise &laquo; Page break &raquo;"
 
-#: wp-includes/js/tinymce/wp-mce-help.php:261
-msgid "Switch to HTML mode"
-msgstr "Passer au mode HTML"
-
-#: wp-includes/js/tinymce/wp-mce-help.php:263
-msgid "Editor width in Distraction-free writing mode:"
+#: wp-includes/js/tinymce/wp-mce-help.php:220
+msgid "Editor width in Distraction Free Writing mode:"
 msgstr ""
 "Largeur de l&rsquo;éditeur en mode &laquo;&nbsp;aucune distraction&nbsp;"
-"&raquo;"
-
-#: wp-includes/js/tinymce/wp-mce-help.php:264
+"&raquo;&nbsp;:"
+
+#: wp-includes/js/tinymce/wp-mce-help.php:222
 msgid "Wider"
 msgstr "Plus large"
 
-#: wp-includes/js/tinymce/wp-mce-help.php:265
+#: wp-includes/js/tinymce/wp-mce-help.php:223
 msgid "Narrower"
 msgstr "Plus étroit"
 
-#: wp-includes/js/tinymce/wp-mce-help.php:266
+#: wp-includes/js/tinymce/wp-mce-help.php:224
 msgid "Default width"
 msgstr "Largeur par défaut"
 
-#: wp-includes/js/tinymce/wp-mce-help.php:273
+#: wp-includes/js/tinymce/wp-mce-help.php:231
 msgid "Version:"
 msgstr "Version&nbsp;:"
 
-#: wp-includes/js/tinymce/wp-mce-help.php:274
+#: wp-includes/js/tinymce/wp-mce-help.php:232
 msgid ""
 "TinyMCE is a platform independent web based Javascript HTML WYSIWYG editor "
 "released as Open Source under %sLGPL</a>\tby Moxiecode Systems AB. It has "
@@ -5521,11 +5437,11 @@
 "Systems AB. Il peut convertir les champs HTML TEXTAREA ou autres éléments "
 "HTML en instance d&rsquo;éditeur."
 
-#: wp-includes/js/tinymce/wp-mce-help.php:274
-msgid "GNU Library General Public Licence"
-msgstr "GNU Library General Public Licence"
-
-#: wp-includes/js/tinymce/wp-mce-help.php:275
+#: wp-includes/js/tinymce/wp-mce-help.php:232
+msgid "GNU Library General Public License"
+msgstr "Licence Publique Générale GNU"
+
+#: wp-includes/js/tinymce/wp-mce-help.php:233
 msgid ""
 "Copyright &copy; 2003-2011, <a href=\"http://www.moxiecode.com\" target="
 "\"_blank\">Moxiecode Systems AB</a>, All rights reserved."
@@ -5534,57 +5450,57 @@
 "\"_blank\">Moxiecode Systems AB</a>, Tous droits réservés. Traduction par "
 "l&rsquo;équipe de WordPress-Francophone."
 
-#: wp-includes/js/tinymce/wp-mce-help.php:276
+#: wp-includes/js/tinymce/wp-mce-help.php:234
 msgid ""
 "For more information about this software visit the <a href=\"http://tinymce."
-"moxiecode.com\" target=\"_blank\">TinyMCE website</a>."
-msgstr ""
-"Pour plus d&rsquo;information sur ce logiciel, visitez <a href=\"http://"
-"tinymce.moxiecode.com\" target=\"_blank\">le site de TinyMCE</a>."
-
-#: wp-includes/js/tinymce/wp-mce-help.php:279
+"com\" target=\"_blank\">TinyMCE website</a>."
+msgstr ""
+"Pour plus d&rsquo;information sur ce logiciel, rendez-vous sur <a href="
+"\"http://tinymce.moxiecode.com\" target=\"_blank\">le site de TinyMCE</a>."
+
+#: wp-includes/js/tinymce/wp-mce-help.php:237
 msgid "Got Moxie?"
 msgstr "Êtes-vous Moxie&nbsp;?"
 
-#: wp-includes/link-template.php:517
+#: wp-includes/link-template.php:514
 msgid "Comments Feed"
 msgstr "Flux des commentaires"
 
-#: wp-includes/link-template.php:728 wp-includes/link-template.php:935
-#: wp-includes/link-template.php:1010 wp-includes/link-template.php:1051
+#: wp-includes/link-template.php:725 wp-includes/link-template.php:932
+#: wp-includes/link-template.php:1007 wp-includes/link-template.php:1048
 msgid "Edit This"
 msgstr "Modifier"
 
-#: wp-includes/link-template.php:1012
+#: wp-includes/link-template.php:1009
 msgid "Edit comment"
 msgstr "Modifier le commentaire"
 
-#: wp-includes/link-template.php:1053
+#: wp-includes/link-template.php:1050
 msgid "Edit Link"
 msgstr "Modifier le lien"
 
-#: wp-includes/link-template.php:1120
+#: wp-includes/link-template.php:1149
 msgid "Use commas instead of %s to separate excluded categories."
 msgstr ""
 "Utiliser les virgules à la place des %s pour séparer les catégories exclues."
 
-#: wp-includes/link-template.php:1185 wp-includes/link-template.php:1352
+#: wp-includes/link-template.php:1221 wp-includes/link-template.php:1389
 msgid "Previous Post"
 msgstr "Article précèdent"
 
-#: wp-includes/link-template.php:1185 wp-includes/link-template.php:1352
+#: wp-includes/link-template.php:1221 wp-includes/link-template.php:1389
 msgid "Next Post"
 msgstr "Article suivant"
 
-#: wp-includes/link-template.php:1705
+#: wp-includes/link-template.php:1744
 msgid "Newer Comments &raquo;"
 msgstr "Commentaires plus récents &raquo;"
 
-#: wp-includes/link-template.php:1742
+#: wp-includes/link-template.php:1781
 msgid "&laquo; Older Comments"
 msgstr "&laquo; Commentaires plus anciens"
 
-#: wp-includes/link-template.php:2407
+#: wp-includes/link-template.php:2427
 msgid "This is the short link."
 msgstr "Ceci est un lien court."
 
@@ -5628,8 +5544,8 @@
 "The site you have requested is not installed properly. Please contact the "
 "system administrator."
 msgstr ""
-"Le site que vous avez demandé n&rsquo;est pas installé correctement. Merci "
-"de contacter l&rsquo;administrateur de votre serveur."
+"Le site que vous avez demandé n&rsquo;est pas installé correctement. "
+"Veuillez contacter l&rsquo;administrateur de votre serveur."
 
 #. translators: one-letter abbreviation of the weekday
 #: wp-includes/locale.php:109
@@ -5682,19 +5598,19 @@
 msgid "PM"
 msgstr " "
 
-# juste un espace
+# juste un espace insécable
 #. translators: $thousands_sep argument for http:php.net/number_format, default
 #. is ,
 #: wp-includes/locale.php:173
 msgid "number_format_thousands_sep"
-msgstr " "
-
-# virgule et espace
+msgstr " &nbsp;"
+
+# virgule et espace insécable
 #. translators: $dec_point argument for http:php.net/number_format, default is
 #. .
 #: wp-includes/locale.php:177
 msgid "number_format_decimal_point"
-msgstr ", "
+msgstr ",&nbsp;"
 
 #. translators: 'rtl' or 'ltr'. This sets the text direction for WordPress.
 #: wp-includes/locale.php:184
@@ -5702,36 +5618,258 @@
 msgid "ltr"
 msgstr "ltr"
 
-#: wp-includes/media.php:251
-msgid "File &#8220;%s&#8221; doesn&#8217;t exist?"
-msgstr "Le fichier « %s » n&rsquo;existe pas&nbsp;?"
-
-#: wp-includes/media.php:254
-msgid "The GD image library is not installed."
-msgstr "La bibliothèque d&rsquo;imagerie GD n&rsquo;est pas installée."
-
-#: wp-includes/media.php:261
-msgid "File &#8220;%s&#8221; is not an image."
-msgstr "Le fichier « %s » n&rsquo;est pas une image."
-
-#: wp-includes/media.php:425
-msgid "Could not read image size"
-msgstr "Impossible de lire la taille de l&rsquo;image"
-
-#: wp-includes/media.php:430
-msgid "Could not calculate resized image dimensions"
-msgstr "Impossible de lire la taille de l&rsquo;image redimensionnée"
-
-#: wp-includes/media.php:459 wp-includes/media.php:462
-#: wp-includes/media.php:468
-msgid "Resize path invalid"
-msgstr "Le chemin de recadrage est invalide"
-
-#: wp-includes/media.php:1478
+#: wp-includes/media-template.php:40
+msgid "Drop files to upload"
+msgstr "Déposez vos fichiers pour les mettre en ligne"
+
+#: wp-includes/media-template.php:53
+msgid "Upload Limit Exceeded"
+msgstr "Limite de mise en ligne dépassée"
+
+#: wp-includes/media-template.php:58
+msgid "Drop files anywhere to upload"
+msgstr "Déposez vos fichiers n&rsquo;importe où pour les mettre en ligne"
+
+#: wp-includes/media-template.php:59
+msgid "Select Files"
+msgstr "Sélectionner des fichiers"
+
+#: wp-includes/media-template.php:93
+msgid "Maximum upload file size: %d%s."
+msgstr "Taille maximale d&rsquo;un fichier mis en ligne&nbsp;: %d%s."
+
+#: wp-includes/media-template.php:99
+msgid ""
+"Your browser has some limitations uploading large files with the multi-file "
+"uploader. Please use the <a href=\"%1$s\" target=\"%2$s\">browser uploader</"
+"a> for files over 100MB."
+msgstr ""
+"Votre navigateur présente certaines limitations qui l&rsquo;empêchent "
+"d&rsquo;utiliser l&rsquo;outil de mise en ligne multiple. Veuillez utiliser "
+"l&rsquo;<a href=\"%1$s\" target=\"%2$s\">outil du navigateur</a> pour les "
+"fichiers dépassant les 100&nbsp;Mo."
+
+#: wp-includes/media-template.php:110
+msgid "Uploading"
+msgstr "Mise en ligne"
+
+#: wp-includes/media-template.php:111
+msgid "Dismiss Errors"
+msgstr "Ignorer les erreurs"
+
+#: wp-includes/media-template.php:125
+msgid "Error"
+msgstr "Erreur "
+
+#: wp-includes/media-template.php:152
+msgid "Deselect"
+msgstr "Désélectionner"
+
+#: wp-includes/media-template.php:160
+msgid "Caption this image&hellip;"
+msgstr "Décrivez cette image&hellip;"
+
+#: wp-includes/media-template.php:164
+msgid "Describe this video&hellip;"
+msgstr "Décrivez cette vidéo&hellip;"
+
+#: wp-includes/media-template.php:166
+msgid "Describe this audio file&hellip;"
+msgstr "Décrivez ce fichier audio&hellip;"
+
+#: wp-includes/media-template.php:168
+msgid "Describe this media file&hellip;"
+msgstr "Décrivez ce fichier média&hellip;"
+
+#: wp-includes/media-template.php:176
+msgid "Attachment Details"
+msgstr "Détails du fichier attaché"
+
+#: wp-includes/media-template.php:204
+msgid "Refresh"
+msgstr "Rafraîchir"
+
+#: wp-includes/media-template.php:209
+msgid "Delete Permanently"
+msgstr "Supprimer définitivement"
+
+#: wp-includes/media-template.php:231 wp-includes/media-template.php:397
+msgid "Alt Text"
+msgstr "Texte alternatif"
+
+#: wp-includes/media-template.php:236
+msgid "Description"
+msgstr "Description"
+
+#: wp-includes/media-template.php:245
+msgid "Edit"
+msgstr "Modifier"
+
+#: wp-includes/media-template.php:248 wp-includes/script-loader.php:435
+msgid "Clear"
+msgstr "Effacer"
+
+#: wp-includes/media-template.php:255
+msgid "Attachment Display Settings"
+msgstr "Réglages de l&rsquo;affichage du fichier attaché"
+
+#: wp-includes/media-template.php:284 wp-includes/media-template.php:343
+#: wp-includes/media-template.php:420
+msgid "Link To"
+msgstr "Lier à"
+
+# Indicateur de "custom link" -> "lien personnalisé"
+#: wp-includes/media-template.php:292 wp-includes/media-template.php:426
+msgid "Custom URL"
+msgstr "Lien personnalisé"
+
+#: wp-includes/media-template.php:295 wp-includes/media-template.php:351
+msgid "Attachment Page"
+msgstr "Page du fichier attaché"
+
+#: wp-includes/media-template.php:298 wp-includes/media-template.php:354
+msgid "Media File"
+msgstr "Fichier média"
+
+#: wp-includes/media-template.php:321 wp-includes/media.php:1367
+msgid "Large"
+msgstr "Grande"
+
+#: wp-includes/media-template.php:340
+msgid "Gallery Settings"
+msgstr "Réglages de la galerie"
+
+#: wp-includes/media-template.php:360
+msgid "Columns"
+msgstr "Colonnes"
+
+#: wp-includes/media-template.php:372
+msgid "Random Order"
+msgstr "Ordre aléatoire"
+
+#: wp-includes/media.php:1187
+msgid "No editor could be selected."
+msgstr "Aucun éditeur n&rsquo;a pas pu être sélectionné."
+
+#: wp-includes/media.php:1264 wp-includes/script-loader.php:323
 msgid "Allowed Files"
 msgstr "Fichiers autorisés"
 
-#: wp-includes/ms-default-constants.php:113
+#: wp-includes/media.php:1486
+msgid "Select"
+msgstr "Sélectionner"
+
+#. translators: This is a would-be plural string used in the media manager.
+#. If there is not a word you can use in your language to avoid issues
+#. with the
+#. lack of plural support here, turn it into "selected: %d" then translate
+#. it.
+#: wp-includes/media.php:1492
+msgid "%d selected"
+msgstr "%d sélection(s)"
+
+#: wp-includes/media.php:1493
+msgid "Drag and drop to reorder images."
+msgstr "Glissez/déposez pour réorganiser les images."
+
+#: wp-includes/media.php:1496
+msgid "Upload Files"
+msgstr "Envoyer des fichiers"
+
+#: wp-includes/media.php:1497
+msgid "Upload Images"
+msgstr "Envoyer des images"
+
+#: wp-includes/media.php:1500
+msgid "Media Library"
+msgstr "Bibliothèque de médias"
+
+#: wp-includes/media.php:1501
+msgid "Insert Media"
+msgstr "Insérer un média"
+
+#: wp-includes/media.php:1502
+msgid "Create a new gallery"
+msgstr "Créer une nouvelle galerie"
+
+#: wp-includes/media.php:1503
+msgid "&#8592; Return to library"
+msgstr "&#8592; Revenir à la bibliothèque"
+
+#: wp-includes/media.php:1504
+msgid "All media items"
+msgstr "Tous les éléments média"
+
+#: wp-includes/media.php:1505
+msgid "No items found."
+msgstr "Aucun élément trouvé."
+
+#: wp-includes/media.php:1506
+msgid "Insert into page"
+msgstr "Insérer dans la page"
+
+#: wp-includes/media.php:1506
+msgid "Insert into post"
+msgstr "Insérer dans l&rsquo;article"
+
+#: wp-includes/media.php:1507
+msgid "Uploaded to this page"
+msgstr "Mis en ligne sur cette page"
+
+#: wp-includes/media.php:1507
+msgid "Uploaded to this post"
+msgstr "Mis en ligne sur cet article"
+
+# Pas d'entité HTML : alert() JavaScript
+#: wp-includes/media.php:1508
+msgid ""
+"You are about to permanently delete this item.\n"
+"  'Cancel' to stop, 'OK' to delete."
+msgstr ""
+"Vous êtes sur le point de supprimer définitivement cet élément.\n"
+"  « Annuler » pour abandonner, « OK » pour le supprimer."
+
+#: wp-includes/media.php:1511
+msgid "Insert from URL"
+msgstr "Insérer à partir d&rsquo;une adresse web"
+
+#: wp-includes/media.php:1514
+msgid "Set Featured Image"
+msgstr "Mettre une image à la Une"
+
+#: wp-includes/media.php:1515
+msgid "Set featured image"
+msgstr "Utiliser comme image à la Une"
+
+#: wp-includes/media.php:1518
+msgid "Create Gallery"
+msgstr "Créer une galerie"
+
+#: wp-includes/media.php:1520
+msgid "&#8592; Cancel Gallery"
+msgstr "&#8592; Annuler la galerie"
+
+#: wp-includes/media.php:1521
+msgid "Insert gallery"
+msgstr "Insérer la galerie"
+
+#: wp-includes/media.php:1522
+msgid "Update gallery"
+msgstr "Mettre à jour la galerie"
+
+#: wp-includes/media.php:1523
+msgid "Add to gallery"
+msgstr "Ajouter à la galerie"
+
+#: wp-includes/media.php:1524
+msgid "Add to Gallery"
+msgstr "Ajouter à la galerie"
+
+#: wp-includes/media.php:1525
+msgid "Reverse order"
+msgstr "Inverser l&rsquo;ordre"
+
+#: wp-includes/ms-default-constants.php:126
 msgid ""
 "The constant <code>VHOST</code> <strong>is deprecated</strong>. Use the "
 "boolean constant <code>SUBDOMAIN_INSTALL</code> in wp-config.php to enable a "
@@ -5743,7 +5881,7 @@
 "php pour activer le mode sous-domaines. Utilisez is_subdomain_install() pour "
 "vérifier si le mode sous-domaine est effectivement activé."
 
-#: wp-includes/ms-default-constants.php:115
+#: wp-includes/ms-default-constants.php:128
 msgid ""
 "<strong>Conflicting values for the constants VHOST and SUBDOMAIN_INSTALL.</"
 "strong> The value of SUBDOMAIN_INSTALL will be assumed to be your subdomain "
@@ -5753,31 +5891,35 @@
 "correspondent pas.</strong> C&rsquo;est la valeur de SUBDOMAIN_INSTALL qui "
 "sera prise en compte pour votre réglage du mode sous-domaines."
 
-#: wp-includes/ms-functions.php:190 wp-includes/ms-functions.php:252
+#: wp-includes/ms-functions.php:185
+msgid "The requested user does not exist."
+msgstr "Cet utilisateur n&rsquo;existe pas."
+
+#: wp-includes/ms-functions.php:247
 msgid "That user does not exist."
 msgstr "Cet utilisateur n&rsquo;existe pas."
 
-#: wp-includes/ms-functions.php:295
+#: wp-includes/ms-functions.php:290
 msgid "<strong>ERROR</strong>: Site URL already taken."
 msgstr "Erreur&nbspp;: cette adresse de site est déjà prise."
 
-#: wp-includes/ms-functions.php:302
+#: wp-includes/ms-functions.php:297
 msgid "<strong>ERROR</strong>: problem creating site entry."
 msgstr "Erreur&nbsp;: problème lors de la création de l&rsquo;entrée du site."
 
-#: wp-includes/ms-functions.php:441
+#: wp-includes/ms-functions.php:439 wp-includes/ms-functions.php:565
 msgid "Only lowercase letters (a-z) and numbers are allowed."
 msgstr "Seuls les lettres minuscules (de a à z) et chiffres sont autorisés."
 
-#: wp-includes/ms-functions.php:448
+#: wp-includes/ms-functions.php:446
 msgid "Please enter a username."
 msgstr "Veuillez saisir un identifiant."
 
-#: wp-includes/ms-functions.php:456
+#: wp-includes/ms-functions.php:454
 msgid "That username is not allowed."
 msgstr "Cet identifiant n&#8217;est pas autorisé."
 
-#: wp-includes/ms-functions.php:459
+#: wp-includes/ms-functions.php:457
 msgid ""
 "You cannot use that email address to signup. We are having problems with "
 "them blocking some of our email. Please use another email provider."
@@ -5786,54 +5928,54 @@
 "avons rencontré des problèmes de la part de ce service. Merci d&#8217;en "
 "utiliser un autre."
 
-#: wp-includes/ms-functions.php:462
+#: wp-includes/ms-functions.php:460
 msgid "Username must be at least 4 characters."
 msgstr "L&#8217;identifiant doit utiliser au moins 4 caractères."
 
-#: wp-includes/ms-functions.php:465
+#: wp-includes/ms-functions.php:463
 msgid "Sorry, usernames may not contain the character &#8220;_&#8221;!"
 msgstr ""
 "Désolé, les identifiants ne doivent pas contenir le caractère &laquo;&nbsp;"
 "_&nbsp;&raquo;&nbsp;!"
 
-#: wp-includes/ms-functions.php:471
+#: wp-includes/ms-functions.php:469
 msgid "Sorry, usernames must have letters too!"
 msgstr "Désolé, les identifiants doivent aussi avoir des lettres&nbsp;!"
 
-#: wp-includes/ms-functions.php:474
-msgid "Please enter a correct email address."
+#: wp-includes/ms-functions.php:472
+msgid "Please enter a valid email address."
 msgstr "Veuillez saisir une adresse de messagerie valide."
 
-#: wp-includes/ms-functions.php:480
+#: wp-includes/ms-functions.php:478
 msgid "Sorry, that email address is not allowed!"
 msgstr "Désolé, cette adresse de messagerie n&rsquo;est pas autorisée&nbsp;!"
 
-#: wp-includes/ms-functions.php:485
+#: wp-includes/ms-functions.php:483 wp-includes/user.php:1313
 msgid "Sorry, that username already exists!"
 msgstr "Désolé, cet identifiant existe déjà&nbsp;!"
 
-#: wp-includes/ms-functions.php:489
+#: wp-includes/ms-functions.php:487 wp-includes/user.php:1328
 msgid "Sorry, that email address is already used!"
 msgstr "Désolé, cette adresse de messagerie est déjà utilisée&nbsp;!"
 
-#: wp-includes/ms-functions.php:501
+#: wp-includes/ms-functions.php:499
 msgid ""
 "That username is currently reserved but may be available in a couple of days."
 msgstr ""
 "Cet identifiant est pour le moment réservé, mais pourrait être disponible "
 "dans quelques jours."
 
-#: wp-includes/ms-functions.php:504
+#: wp-includes/ms-functions.php:502
 msgid "username and email used"
 msgstr "identifiant et e-mail utilisé"
 
-#: wp-includes/ms-functions.php:514
+#: wp-includes/ms-functions.php:512
 msgid ""
 "That email address has already been used. Please check your inbox for an "
 "activation email. It will become available in a couple of days if you do "
 "nothing."
 msgstr ""
-"Cette adresse de messagerie a déjà été utilisée. Merci de vérifier dans "
+"Cette adresse de messagerie a déjà été utilisée. Veuillez vérifier dans "
 "votre messagerie si le message d&rsquo;activation ne s&rsquo;y trouve pas. "
 "L&rsquo;identifiant redeviendra disponible dans quelques jours si vous ne "
 "faites rien."
@@ -5842,10 +5984,6 @@
 msgid "Please enter a site name."
 msgstr "Veuillez saisir un nom de site."
 
-#: wp-includes/ms-functions.php:565
-msgid "Only lowercase letters and numbers allowed."
-msgstr "Seuls les lettres minuscules et chiffres sont autorisés."
-
 #: wp-includes/ms-functions.php:568
 msgid "That name is not allowed."
 msgstr "Ce nom n&#8217;est pas autorisé."
@@ -5873,13 +6011,13 @@
 msgid "Please enter a site title."
 msgstr "Veuillez saisir un titre de site."
 
-#: wp-includes/ms-functions.php:602
+#: wp-includes/ms-functions.php:602 wp-includes/ms-functions.php:968
 msgid "Sorry, that site already exists!"
 msgstr "Désolé, ce site existe déjà&nbsp;!"
 
 #: wp-includes/ms-functions.php:606
 msgid "Sorry, that site is reserved!"
-msgstr "Désolé, ce site est réservé !"
+msgstr "Désolé, ce site est réservé&nbsp;!"
 
 #: wp-includes/ms-functions.php:617
 msgid "That site is currently reserved but may be available in a couple days."
@@ -5900,7 +6038,7 @@
 "\n"
 "%s"
 msgstr ""
-"Pour activer votre site, merci de cliquer sur le lien suivant :\n"
+"Pour activer votre site, veuillez cliquer sur le lien suivant :\n"
 "\n"
 "%s\n"
 "\n"
@@ -5922,17 +6060,14 @@
 "\n"
 "%s\n"
 "\n"
-"After you activate, you will receive *another email* with your login.\n"
-"\n"
-msgstr ""
-"Pour activer votre compte utilisateur, merci de cliquer sur le lien "
-"suivant :\n"
+"After you activate, you will receive *another email* with your login."
+msgstr ""
+"Pour activer votre utilisateur, veuillez cliquer sur le lien suivant :\n"
 "\n"
 "%s\n"
 "\n"
 "Après l'activation, vous recevrez *un autre courrier* contenant votre "
-"identifiant.\n"
-"\n"
+"identifiant."
 
 #: wp-includes/ms-functions.php:837
 msgid "Invalid activation key."
@@ -5954,10 +6089,6 @@
 msgid "That username is already activated."
 msgstr "Cet identifiant est déjà activé."
 
-#: wp-includes/ms-functions.php:968
-msgid "Site already exists."
-msgstr "Ce site existe déjà."
-
 #: wp-includes/ms-functions.php:974
 msgid "Could not create site."
 msgstr "Impossible de créer le site."
@@ -5965,17 +6096,17 @@
 # Pas d'entité HTML.
 #: wp-includes/ms-functions.php:1027
 msgid ""
-"New Site: %1s\n"
-"URL: %2s\n"
-"Remote IP: %3s\n"
+"New Site: %1$s\n"
+"URL: %2$s\n"
+"Remote IP: %3$s\n"
 "\n"
-"Disable these notifications: %4s"
-msgstr ""
-"Nouveau site : %1s\n"
-"URL : %2s\n"
-"Adresse IP : %3s\n"
+"Disable these notifications: %4$s"
+msgstr ""
+"Nouveau site : %1$s\n"
+"URL : %2$s\n"
+"Adresse IP : %3$s\n"
 "\n"
-"Désactiver ces notifications : %4s"
+"Désactiver ces notifications : %4$s"
 
 # Ne pas mettre d'entité HTML (&nbsp;...) : chaîne envoyée par e-mail.
 #: wp-includes/ms-functions.php:1034
@@ -5984,32 +6115,35 @@
 
 #: wp-includes/ms-functions.php:1062
 msgid ""
-"New User: %1s\n"
-"Remote IP: %2s\n"
+"New User: %1$s\n"
+"Remote IP: %2$s\n"
 "\n"
-"Disable these notifications: %3s"
-msgstr ""
-"Nouvel utilisateur : %1s\n"
-"Adresse IP : %2s\n"
+"Disable these notifications: %3$s"
+msgstr ""
+"Nouvel utilisateur : %1$s\n"
+"Adresse IP : %2$s\n"
 "\n"
-"Désactiver ces notifications : %3s"
+"Désactiver ces notifications : %3$s"
 
 # Ne pas mettre d'entité HTML (&nbsp;...) : chaîne envoyée par e-mail.
 #: wp-includes/ms-functions.php:1068
 msgid "New User Registration: %s"
 msgstr "Inscription d'un nouvel utilisateur : %s"
 
-#: wp-includes/ms-functions.php:1141
-msgid ""
-"<h1>Already Installed</h1><p>You appear to have already installed WordPress. "
-"To reinstall please clear your old database tables first.</p>"
-msgstr ""
-"<h1>Déjà installé</i><p>Il semblerait que WordPress soit déjà installé. Pour "
-"le réinstaller, commencez par supprimer vos anciennes tables de la base de "
-"données.</p>"
+#: wp-includes/ms-functions.php:1142
+msgid "Already Installed"
+msgstr "Déjà installé"
+
+#: wp-includes/ms-functions.php:1142
+msgid ""
+"You appear to have already installed WordPress. To reinstall please clear "
+"your old database tables first."
+msgstr ""
+"Il semblerait que WordPress soit déjà installé. Pour le réinstaller, "
+"commencez par supprimer vos anciennes tables de la base de données."
 
 # Ne pas mettre d'entité HTML (&nbsp;...) : chaîne envoyée par e-mail.
-#: wp-includes/ms-functions.php:1220
+#: wp-includes/ms-functions.php:1222
 msgid ""
 "Dear User,\n"
 "\n"
@@ -6040,32 +6174,20 @@
 "\n"
 "--L'équipe @ SITE_NAME"
 
-#: wp-includes/ms-functions.php:1256
+#: wp-includes/ms-functions.php:1258
 msgid "New %1$s Site: %2$s"
 msgstr "Nouveau %1$s site&nbsp;: %2$s"
 
-#: wp-includes/ms-functions.php:1304
+#: wp-includes/ms-functions.php:1306
 msgid "New %1$s User: %2$s"
 msgstr "Nouvel %1$s utilisateur&nbsp;: %2$s"
 
-#: wp-includes/ms-functions.php:1481
-msgid ""
-"Sorry, you have used your space allocation. Please delete some files to "
-"upload more files."
-msgstr ""
-"Désolé, vous avez utilisé l&rsquo;intégralité de votre espace disque. Merci "
-"d&rsquo;effacer quelques fichiers avant d&rsquo;en envoyer d&rsquo;autres."
-
-#: wp-includes/ms-functions.php:1659
+#: wp-includes/ms-functions.php:1610
 msgid "This file is too big. Files must be less than %d KB in size."
 msgstr ""
 "Ce fichier est trop gros. La taille des fichiers doit être inférieure %d Ko."
 
-#: wp-includes/ms-functions.php:1690
-msgid "Please try again!"
-msgstr "Merci de réessayer&nbsp;!"
-
-#: wp-includes/ms-functions.php:1735
+#: wp-includes/ms-functions.php:1686
 msgid ""
 "An error occurred adding you to this site. Back to the <a href=\"%s"
 "\">homepage</a>."
@@ -6073,7 +6195,7 @@
 "Une erreur est survenue lors de votre ajout à ce site. Retournez à l&rsquo;"
 "<a href=\"%s\">accueil</a>."
 
-#: wp-includes/ms-functions.php:1737
+#: wp-includes/ms-functions.php:1688
 msgid ""
 "You have been added to this site. Please visit the <a href=\"%s\">homepage</"
 "a> or <a href=\"%s\">log in</a> using your username and password."
@@ -6082,12 +6204,12 @@
 "\">sa page d&rsquo;accueil</a> ou <a href=\"%s\">vous connecter</a> à "
 "l&rsquo;aide de votre identifiant et mot de passe."
 
-#: wp-includes/ms-functions.php:1737
-msgid "Success"
-msgstr "Validé"
+#: wp-includes/ms-functions.php:1688
+msgid "WordPress &rsaquo; Success"
+msgstr "WordPress &raquo; Réussite"
 
 # Pas d'entité HTML : texte envoyé par mail
-#: wp-includes/ms-functions.php:1898
+#: wp-includes/ms-functions.php:1849
 msgid ""
 "Dear User,\n"
 "\n"
@@ -6115,7 +6237,7 @@
 "\n"
 "--L'équipe @ SITE_NAME"
 
-#: wp-includes/ms-load.php:87
+#: wp-includes/ms-load.php:89
 msgid ""
 "This user has elected to delete their account and the content is no longer "
 "available."
@@ -6123,7 +6245,7 @@
 "Cet utilisateur a choisi d&#8217;effacer son compte, et son contenu n&#8217;"
 "est plus disponible."
 
-#: wp-includes/ms-load.php:94
+#: wp-includes/ms-load.php:96
 msgid ""
 "This site has not been activated yet. If you are having problems activating "
 "your site, please contact <a href=\"mailto:%1$s\">%1$s</a>."
@@ -6132,16 +6254,16 @@
 "durant l&rsquo;activation de votre site, veuillez contacter <a href=\"mailto:"
 "%1$s\">%1$s</a>."
 
-#: wp-includes/ms-load.php:101
+#: wp-includes/ms-load.php:103
 msgid "This site has been archived or suspended."
 msgstr "Ce site a été archivé ou suspendu."
 
-#: wp-includes/ms-load.php:217
+#: wp-includes/ms-load.php:219
 msgid "That site does not exist. Please try <a href=\"%s\">%s</a>."
 msgstr ""
 "Cet importateur n&rsquo;existe pas. Veuillez essayer <a href=\"%s\">%s</a>."
 
-#: wp-includes/ms-load.php:219
+#: wp-includes/ms-load.php:221
 msgid ""
 "No site defined on this host. If you are the owner of this site, please "
 "check <a href=\"http://codex.wordpress.org/Debugging_a_WordPress_Network"
@@ -6152,18 +6274,14 @@
 "Debugging_a_WordPress_Network\">Debugging a WordPress Network</a> (en "
 "anglais) pour obtenir de l&rsquo;aide."
 
-#: wp-includes/ms-load.php:235
-msgid "Error establishing database connection"
-msgstr "Erreur lors de la connexion à la base de données"
-
-#: wp-includes/ms-load.php:239
+#: wp-includes/ms-load.php:241
 msgid ""
 "If your site does not display, please contact the owner of this network."
 msgstr ""
 "Si votre site ne s&rsquo;affiche pas, veuillez contacter le gestionnaire de "
 "ce réseau de sites."
 
-#: wp-includes/ms-load.php:240
+#: wp-includes/ms-load.php:242
 msgid ""
 "If you are the owner of this network please check that MySQL is running "
 "properly and all tables are error free."
@@ -6172,7 +6290,7 @@
 "que MySQL fonctionne correctement et qu&rsquo;aucune table n&rsquo;a d&rsquo;"
 "erreur."
 
-#: wp-includes/ms-load.php:242
+#: wp-includes/ms-load.php:244
 msgid ""
 "<strong>Database tables are missing.</strong> This means that MySQL is not "
 "running, WordPress was not installed properly, or someone deleted <code>%s</"
@@ -6184,7 +6302,7 @@
 "devriez vraiment <em>vraiment</em> vérifier votre base de données au plus "
 "vite."
 
-#: wp-includes/ms-load.php:244
+#: wp-includes/ms-load.php:246
 msgid ""
 "<strong>Could not find site <code>%1$s</code>.</strong> Searched for table "
 "<code>%2$s</code> in database <code>%3$s</code>. Is that right?"
@@ -6193,11 +6311,11 @@
 "cherché la table <em>%2$s</em> dans la base de données <em>%3$s</em>. Est-ce "
 "correct&nbsp;?"
 
-#: wp-includes/ms-load.php:245
+#: wp-includes/ms-load.php:247
 msgid "What do I do now?"
 msgstr "Que dois-je faire maintenant&nbsp;?"
 
-#: wp-includes/ms-load.php:246
+#: wp-includes/ms-load.php:248
 msgid ""
 "Read the <a target=\"_blank\" href=\"http://codex.wordpress.org/"
 "Debugging_a_WordPress_Network\">bug report</a> page. Some of the guidelines "
@@ -6208,7 +6326,7 @@
 "Certaines des bonnes pratiques qui y sont présentées pourraient vous aider à "
 "comprendre ce qui a mal tourné."
 
-#: wp-includes/ms-load.php:247
+#: wp-includes/ms-load.php:249
 msgid ""
 "If you&#8217;re still stuck with this message, then check that your database "
 "contains the following tables:"
@@ -6244,7 +6362,7 @@
 "L&rsquo;identifiant donné pour cet objet n&rsquo;est pas une entrée de menu."
 
 # Indicateur de "custom link" -> "lien personnalisé"
-#: wp-includes/nav-menu.php:613
+#: wp-includes/nav-menu.php:612
 msgid "Custom"
 msgstr "Lien"
 
@@ -6258,7 +6376,7 @@
 "<strong>ERREUR</strong>&nbsp;: l&rsquo;identifiant ou le mot de passe "
 "n&rsquo;est pas valide."
 
-#: wp-includes/pluggable.php:813
+#: wp-includes/pluggable.php:808
 msgid ""
 "You should specify a nonce action to be verified by using the first "
 "parameter."
@@ -6267,150 +6385,150 @@
 "qui sera vérifiée par le premier paramètre."
 
 # Ne pas mettre d'entité HTML (&nbsp;...) : chaîne envoyée par e-mail.
-#: wp-includes/pluggable.php:1019
+#: wp-includes/pluggable.php:1014
 msgid "New comment on your post \"%s\""
 msgstr "Nouveau commentaire sur votre article « %s »"
 
 # Ne pas mettre d'entité HTML (&nbsp;...) : chaîne envoyée par e-mail.
 #. translators: 1: comment author, 2: author IP, 3: author domain
-#: wp-includes/pluggable.php:1021 wp-includes/pluggable.php:1134
+#: wp-includes/pluggable.php:1016 wp-includes/pluggable.php:1129
 msgid "Author : %1$s (IP: %2$s , %3$s)"
 msgstr "Auteur : %1$s (IP : %2$s , %3$s)"
 
 # Ne pas mettre d'entité HTML (&nbsp;...) : chaîne envoyée par e-mail.
-#: wp-includes/pluggable.php:1022 wp-includes/pluggable.php:1135
+#: wp-includes/pluggable.php:1017 wp-includes/pluggable.php:1130
 msgid "E-mail : %s"
 msgstr "E-mail   : %s"
 
 # Ne pas mettre d'entité HTML (&nbsp;...) : chaîne envoyée par e-mail.
-#: wp-includes/pluggable.php:1023 wp-includes/pluggable.php:1033
-#: wp-includes/pluggable.php:1042 wp-includes/pluggable.php:1121
-#: wp-includes/pluggable.php:1128 wp-includes/pluggable.php:1136
+#: wp-includes/pluggable.php:1018 wp-includes/pluggable.php:1028
+#: wp-includes/pluggable.php:1037 wp-includes/pluggable.php:1116
+#: wp-includes/pluggable.php:1123 wp-includes/pluggable.php:1131
 msgid "URL    : %s"
 msgstr "Adresse : %s"
 
 # Ne pas mettre d'entité HTML (&nbsp;...) : chaîne envoyée par e-mail.
-#: wp-includes/pluggable.php:1024 wp-includes/pluggable.php:1137
+#: wp-includes/pluggable.php:1019 wp-includes/pluggable.php:1132
 msgid "Whois  : http://whois.arin.net/rest/ip/%s"
 msgstr "Whois    : http://whois.arin.net/rest/ip/%s"
 
 # Ne pas mettre d'entité HTML (&nbsp;...) : chaîne envoyée par e-mail.
-#: wp-includes/pluggable.php:1025 wp-includes/pluggable.php:1138
+#: wp-includes/pluggable.php:1020 wp-includes/pluggable.php:1133
 msgid "Comment: "
 msgstr "Commentaire :"
 
 # Ne pas mettre d'entité HTML (&nbsp;...) : chaîne envoyée par e-mail.
-#: wp-includes/pluggable.php:1026
+#: wp-includes/pluggable.php:1021
 msgid "You can see all comments on this post here: "
 msgstr "Vous pouvez lire tous les commentaires de cet article ici :"
 
 # Ne pas mettre d'entité HTML (&nbsp;...) : chaîne envoyée par e-mail.
 #. translators: 1: blog name, 2: post title
-#: wp-includes/pluggable.php:1028
+#: wp-includes/pluggable.php:1023
 msgid "[%1$s] Comment: \"%2$s\""
 msgstr "[%1$s] Commentaire : « %2$s »"
 
 # Ne pas mettre d'entité HTML (&nbsp;...) : chaîne envoyée par e-mail.
-#: wp-includes/pluggable.php:1030
+#: wp-includes/pluggable.php:1025
 msgid "New trackback on your post \"%s\""
 msgstr "Nouveau rétrolien sur votre article « %s »"
 
 # Ne pas mettre d'entité HTML (&nbsp;...) : chaîne envoyée par e-mail.
 #. translators: 1: website name, 2: author IP, 3: author domain
 #. translators: 1: comment author, 2: author IP, 3: author domain
-#: wp-includes/pluggable.php:1032 wp-includes/pluggable.php:1041
+#: wp-includes/pluggable.php:1027 wp-includes/pluggable.php:1036
 msgid "Website: %1$s (IP: %2$s , %3$s)"
 msgstr "Site Web : %1$s (IP : %2$s , %3$s)"
 
 # Ne pas mettre d'entité HTML (&nbsp;...) : chaîne envoyée par e-mail.
-#: wp-includes/pluggable.php:1034 wp-includes/pluggable.php:1043
+#: wp-includes/pluggable.php:1029 wp-includes/pluggable.php:1038
 msgid "Excerpt: "
 msgstr "Extrait :"
 
 # Ne pas mettre d'entité HTML (&nbsp;...) : chaîne envoyée par e-mail.
-#: wp-includes/pluggable.php:1035
+#: wp-includes/pluggable.php:1030
 msgid "You can see all trackbacks on this post here: "
 msgstr "Vous pouvez lire tous les rétroliens de cet article ici :"
 
 # Ne pas mettre d'entité HTML (&nbsp;...) : chaîne envoyée par e-mail.
 #. translators: 1: blog name, 2: post title
-#: wp-includes/pluggable.php:1037
+#: wp-includes/pluggable.php:1032
 msgid "[%1$s] Trackback: \"%2$s\""
 msgstr "[%1$s] Rétrolien : « %2$s »"
 
 # Ne pas mettre d'entité HTML (&nbsp;...) : chaîne envoyée par e-mail.
-#: wp-includes/pluggable.php:1039
+#: wp-includes/pluggable.php:1034
 msgid "New pingback on your post \"%s\""
 msgstr "Nouveau ping sur votre article « %s »"
 
 # Ne pas mettre d'entité HTML (&nbsp;...) : chaîne envoyée par e-mail.
-#: wp-includes/pluggable.php:1044
+#: wp-includes/pluggable.php:1039
 msgid "You can see all pingbacks on this post here: "
 msgstr "Vous pouvez lire tous les pings de cet article ici :"
 
 # Ne pas mettre d'entité HTML (&nbsp;...) : chaîne envoyée par e-mail.
 #. translators: 1: blog name, 2: post title
-#: wp-includes/pluggable.php:1046
+#: wp-includes/pluggable.php:1041
 msgid "[%1$s] Pingback: \"%2$s\""
 msgstr "[%1$s] Ping : « %2$s »"
 
 # Ne pas mettre d'entité HTML (&nbsp;...) : chaîne envoyée par e-mail.
-#: wp-includes/pluggable.php:1049
+#: wp-includes/pluggable.php:1044
 msgid "Permalink: %s"
 msgstr "Permalien : %s"
 
 # Ne pas mettre d'entité HTML (&nbsp;...) : chaîne envoyée par e-mail.
-#: wp-includes/pluggable.php:1051 wp-includes/pluggable.php:1144
+#: wp-includes/pluggable.php:1046 wp-includes/pluggable.php:1139
 msgid "Trash it: %s"
 msgstr "Le mettre dans la Corbeille : %s"
 
 # Ne pas mettre d'entité HTML (&nbsp;...) : chaîne envoyée par e-mail.
-#: wp-includes/pluggable.php:1053 wp-includes/pluggable.php:1146
+#: wp-includes/pluggable.php:1048 wp-includes/pluggable.php:1141
 msgid "Delete it: %s"
 msgstr "Le supprimer : %s"
 
 # Ne pas mettre d'entité HTML (&nbsp;...) : chaîne envoyée par e-mail.
-#: wp-includes/pluggable.php:1054 wp-includes/pluggable.php:1147
+#: wp-includes/pluggable.php:1049 wp-includes/pluggable.php:1142
 msgid "Spam it: %s"
 msgstr "Le marquer comme indésirable : %s"
 
 # Ne pas mettre d'entité HTML (&nbsp;...) : chaîne envoyée par e-mail.
-#: wp-includes/pluggable.php:1118
+#: wp-includes/pluggable.php:1113
 msgid "A new trackback on the post \"%s\" is waiting for your approval"
 msgstr "Un nouveau rétrolien sur l'article « %s » attend votre approbation"
 
 # Ne pas mettre d'entité HTML (&nbsp;...) : chaîne envoyée par e-mail.
-#: wp-includes/pluggable.php:1120 wp-includes/pluggable.php:1127
+#: wp-includes/pluggable.php:1115 wp-includes/pluggable.php:1122
 msgid "Website : %1$s (IP: %2$s , %3$s)"
 msgstr "Site Web : %1$s (IP: %2$s , %3$s)"
 
 # Ne pas mettre d'entité HTML (&nbsp;...) : chaîne envoyée par e-mail.
-#: wp-includes/pluggable.php:1122
+#: wp-includes/pluggable.php:1117
 msgid "Trackback excerpt: "
 msgstr "Extrait du rétrolien :"
 
 # Ne pas mettre d'entité HTML (&nbsp;...) : chaîne envoyée par e-mail.
-#: wp-includes/pluggable.php:1125
+#: wp-includes/pluggable.php:1120
 msgid "A new pingback on the post \"%s\" is waiting for your approval"
 msgstr "Un nouveau ping sur l'article « %s » attend votre approbation"
 
 # Ne pas mettre d'entité HTML (&nbsp;...) : chaîne envoyée par e-mail.
-#: wp-includes/pluggable.php:1129
+#: wp-includes/pluggable.php:1124
 msgid "Pingback excerpt: "
 msgstr "Extrait du ping :"
 
 # Ne pas mettre d'entité HTML (&nbsp;...) : chaîne envoyée par e-mail.
-#: wp-includes/pluggable.php:1132
+#: wp-includes/pluggable.php:1127
 msgid "A new comment on the post \"%s\" is waiting for your approval"
 msgstr "Un nouveau commentaire sur l'article « %s » attend votre approbation"
 
 # Ne pas mettre d'entité HTML (&nbsp;...) : chaîne envoyée par e-mail.
-#: wp-includes/pluggable.php:1142
+#: wp-includes/pluggable.php:1137
 msgid "Approve it: %s"
 msgstr "L'approuver : %s"
 
 # Ne pas mettre d'entité HTML (&nbsp;...) : chaîne envoyée par e-mail.
-#: wp-includes/pluggable.php:1149
+#: wp-includes/pluggable.php:1144
 msgid ""
 "Currently %s comment is waiting for approval. Please visit the moderation "
 "panel:"
@@ -6425,71 +6543,71 @@
 "rendre sur le panneau de modération :"
 
 # Ne pas mettre d'entité HTML (&nbsp;...) : chaîne envoyée par e-mail.
-#: wp-includes/pluggable.php:1153
+#: wp-includes/pluggable.php:1148
 msgid "[%1$s] Please moderate: \"%2$s\""
 msgstr "[%1$s] Demande de modération pour « %2$s »"
 
 # Ne pas mettre d'entité HTML (&nbsp;...) : chaîne envoyée par e-mail.
-#: wp-includes/pluggable.php:1179
+#: wp-includes/pluggable.php:1174
 msgid "Password Lost and Changed for user: %s"
 msgstr "Mot de passe oublié et changé pour l'utilisateur : %s"
 
 # Ne pas mettre d'entité HTML (&nbsp;...) : chaîne envoyée par e-mail.
-#: wp-includes/pluggable.php:1183
+#: wp-includes/pluggable.php:1178
 msgid "[%s] Password Lost/Changed"
 msgstr "[%s] Mot de passe oublié et changé"
 
 # Ne pas mettre d'entité HTML (&nbsp;...) : chaîne envoyée par e-mail.
-#: wp-includes/pluggable.php:1207
+#: wp-includes/pluggable.php:1202
 msgid "New user registration on your site %s:"
 msgstr "Inscription d'un nouvel utilisateur sur votre site %s :"
 
 # Ne pas mettre d'entité HTML (&nbsp;...) : chaîne envoyée par e-mail.
-#: wp-includes/pluggable.php:1208 wp-includes/pluggable.php:1216
-#: wp-login.php:230
+#: wp-includes/pluggable.php:1203 wp-includes/pluggable.php:1211
+#: wp-login.php:233
 msgid "Username: %s"
 msgstr "Identifiant : %s"
 
 # Ne pas mettre d'entité HTML (&nbsp;...) : chaîne envoyée par e-mail.
-#: wp-includes/pluggable.php:1209
+#: wp-includes/pluggable.php:1204
 msgid "E-mail: %s"
 msgstr "E-mail : %s"
 
 # Ne pas mettre d'entité HTML (&nbsp;...) : chaîne envoyée par e-mail.
-#: wp-includes/pluggable.php:1211
+#: wp-includes/pluggable.php:1206
 msgid "[%s] New User Registration"
 msgstr "[%s] Inscription d'un nouvel utilisateur"
 
 # Ne pas mettre d'entité HTML (&nbsp;...) : chaîne envoyée par e-mail.
-#: wp-includes/pluggable.php:1217
+#: wp-includes/pluggable.php:1212
 msgid "Password: %s"
 msgstr "Mot de passe : %s"
 
 # Ne pas mettre d'entité HTML (&nbsp;...) : chaîne envoyée par e-mail.
-#: wp-includes/pluggable.php:1220
+#: wp-includes/pluggable.php:1215
 msgid "[%s] Your username and password"
 msgstr "[%s] Votre identifiant et mot de passe"
 
-#: wp-includes/plugin.php:674
+#: wp-includes/plugin.php:679
 msgid ""
 "Only a static class method or function can be used in an uninstall hook."
 msgstr ""
 "Seule une méthode statique de classe ou une fonction peut être utilisée avec "
 "un crochet de désinstallation."
 
-#: wp-includes/post-template.php:111
+#: wp-includes/post-template.php:110
 msgid "Protected: %s"
 msgstr "Protégé&nbsp;: %s"
 
-#: wp-includes/post-template.php:114
+#: wp-includes/post-template.php:113
 msgid "Private: %s"
 msgstr "Privé&nbsp;: %s"
 
-#: wp-includes/post-template.php:184
+#: wp-includes/post-template.php:186
 msgid "(more...)"
 msgstr "(Lire la suite&hellip;)"
 
-#: wp-includes/post-template.php:265
+#: wp-includes/post-template.php:267
 msgid "There is no excerpt because this is a protected post."
 msgstr "Il n&rsquo;y pas d&rsquo;extrait, car cet article est protégé."
 
@@ -6505,70 +6623,70 @@
 msgid "Previous page"
 msgstr "Page précédente"
 
-#: wp-includes/post-template.php:897
+#: wp-includes/post-template.php:899
 msgid "Home"
 msgstr "Accueil"
 
-#: wp-includes/post-template.php:1221
+#: wp-includes/post-template.php:1226
 msgid ""
 "This post is password protected. To view it please enter your password below:"
 msgstr ""
 "Cet article est protégé par mot de passe. Pour le lire, veuillez saisir "
 "votre mot de passe ci-dessous&nbsp;:"
 
-#: wp-includes/post-template.php:1222
+#: wp-includes/post-template.php:1227
 msgid "Submit"
 msgstr "Envoyer"
 
 #. translators: revision date format, see http:php.net/date
-#: wp-includes/post-template.php:1299
+#: wp-includes/post-template.php:1304
 msgctxt "revision date format"
 msgid "j F, Y @ G:i"
 msgstr "j F Y \\à G \\h i \\m"
 
 #. translators: 1: date
-#: wp-includes/post-template.php:1301
+#: wp-includes/post-template.php:1306
 msgid "%1$s [Autosave]"
 msgstr "%1$s [Sauvegarde automatique]"
 
 #. translators: 1: date
-#: wp-includes/post-template.php:1303
+#: wp-includes/post-template.php:1308
 msgid "%1$s [Current Revision]"
 msgstr "%1$s [Version actuelle]"
 
 #. translators: post revision: 1: when, 2: author name
-#: wp-includes/post-template.php:1369
+#: wp-includes/post-template.php:1374
 msgctxt "post revision"
 msgid "%1$s by %2$s"
 msgstr "%1$s par %2$s"
 
-#: wp-includes/post-template.php:1396
+#: wp-includes/post-template.php:1401
 msgid "Restore"
 msgstr "Restaurer"
 
-#: wp-includes/post-template.php:1419
+#: wp-includes/post-template.php:1424
 msgid "Compare Revisions"
 msgstr "Comparer les versions"
 
-#. translators: column name in revisons
-#: wp-includes/post-template.php:1435
+#. translators: column name in revisions
+#: wp-includes/post-template.php:1440
 msgctxt "revisions column name"
 msgid "Old"
 msgstr "Ancien"
 
-#. translators: column name in revisons
-#: wp-includes/post-template.php:1436
+#. translators: column name in revisions
+#: wp-includes/post-template.php:1441
 msgctxt "revisions column name"
 msgid "New"
 msgstr "Nouveau"
 
-#. translators: column name in revisons
-#: wp-includes/post-template.php:1437
+#. translators: column name in revisions
+#: wp-includes/post-template.php:1442
 msgctxt "revisions column name"
 msgid "Date Created"
 msgstr "Date de création"
 
-#: wp-includes/post-template.php:1439
+#: wp-includes/post-template.php:1444
 msgid "Actions"
 msgstr "Actions"
 
@@ -6583,212 +6701,270 @@
 msgstr "Page"
 
 #: wp-includes/post.php:55
+msgctxt "post type general name"
 msgid "Media"
 msgstr "Médias"
 
 #: wp-includes/post.php:56
+msgctxt "add new from admin bar"
+msgid "Media"
+msgstr "Fichier média"
+
+# contexte
+#: wp-includes/post.php:57
+msgctxt "add new media"
+msgid "Add New"
+msgstr "Ajouter"
+
+#: wp-includes/post.php:58
 msgid "Edit Media"
 msgstr "Modifier un média"
 
-#: wp-includes/post.php:74
+#: wp-includes/post.php:59
+msgid "View Attachment Page"
+msgstr "Afficher la page du fichier attaché"
+
+#: wp-includes/post.php:80
 msgid "Revisions"
 msgstr "Révisions"
 
-#: wp-includes/post.php:75
+#: wp-includes/post.php:81
 msgid "Revision"
 msgstr "Révision"
 
-#: wp-includes/post.php:92
+#: wp-includes/post.php:98
 msgid "Navigation Menu Items"
 msgstr "Éléments de menu de navigation"
 
-#: wp-includes/post.php:93
+#: wp-includes/post.php:99
 msgid "Navigation Menu Item"
 msgstr "Élément de menu de navigation"
 
-#: wp-includes/post.php:104
+#: wp-includes/post.php:110
 msgctxt "post"
 msgid "Published"
 msgstr "Publié"
 
-#: wp-includes/post.php:107
+#: wp-includes/post.php:113
 msgid "Published <span class=\"count\">(%s)</span>"
 msgid_plural "Published <span class=\"count\">(%s)</span>"
 msgstr[0] "Publié <span class=\"count\">(%s)</span>"
 msgstr[1] "Publiés <span class=\"count\">(%s)</span>"
 
-#: wp-includes/post.php:111
+#: wp-includes/post.php:117
 msgctxt "post"
 msgid "Scheduled"
 msgstr "Planifié"
 
-#: wp-includes/post.php:114
+#: wp-includes/post.php:120
 msgid "Scheduled <span class=\"count\">(%s)</span>"
 msgid_plural "Scheduled <span class=\"count\">(%s)</span>"
 msgstr[0] "Planifié <span class=\"count\">(%s)</span>"
 msgstr[1] "Planifiés <span class=\"count\">(%s)</span>"
 
-#: wp-includes/post.php:118
+#: wp-includes/post.php:124
 msgctxt "post"
 msgid "Draft"
 msgstr "Brouillon"
 
-#: wp-includes/post.php:121
+#: wp-includes/post.php:127
 msgid "Draft <span class=\"count\">(%s)</span>"
 msgid_plural "Drafts <span class=\"count\">(%s)</span>"
 msgstr[0] "Brouillon <span class=\"count\">(%s)</span>"
 msgstr[1] "Brouillons <span class=\"count\">(%s)</span>"
 
-#: wp-includes/post.php:125
+#: wp-includes/post.php:131
 msgctxt "post"
 msgid "Pending"
 msgstr "En attente"
 
-#: wp-includes/post.php:128
+#: wp-includes/post.php:134
 msgid "Pending <span class=\"count\">(%s)</span>"
 msgid_plural "Pending <span class=\"count\">(%s)</span>"
 msgstr[0] "En attente de relecture <span class=\"count\">(%s)</span>"
 msgstr[1] "En attente de relecture <span class=\"count\">(%s)</span>"
 
-#: wp-includes/post.php:132
+#: wp-includes/post.php:138
 msgctxt "post"
 msgid "Private"
 msgstr "Privé"
 
-#: wp-includes/post.php:135
+#: wp-includes/post.php:141
 msgid "Private <span class=\"count\">(%s)</span>"
 msgid_plural "Private <span class=\"count\">(%s)</span>"
 msgstr[0] "Privé <span class=\"count\">(%s)</span>"
 msgstr[1] "Privés <span class=\"count\">(%s)</span>"
 
-#: wp-includes/post.php:139
+#: wp-includes/post.php:145
 msgctxt "post"
 msgid "Trash"
 msgstr "Corbeille"
 
-#: wp-includes/post.php:142
+#: wp-includes/post.php:148
 msgid "Trash <span class=\"count\">(%s)</span>"
 msgid_plural "Trash <span class=\"count\">(%s)</span>"
 msgstr[0] "Corbeille <span class=\"count\">(%s)</span>"
 msgstr[1] "Corbeille <span class=\"count\">(%s)</span>"
 
-#: wp-includes/post.php:553
+#: wp-includes/post.php:808
 msgid "Invalid post"
 msgstr "Article invalide"
 
-#: wp-includes/post.php:611 wp-includes/post.php:632
+#: wp-includes/post.php:866 wp-includes/post.php:887
 msgid "Draft"
 msgstr "Brouillon"
 
-#: wp-includes/post.php:612
+#: wp-includes/post.php:867
 msgid "Pending Review"
 msgstr "En attente de relecture"
 
-#: wp-includes/post.php:613 wp-includes/post.php:633
-#: wp-includes/script-loader.php:355
+#: wp-includes/post.php:868 wp-includes/post.php:888
+#: wp-includes/script-loader.php:385
 msgid "Private"
 msgstr "Privé"
 
-#: wp-includes/post.php:614 wp-includes/post.php:634
-#: wp-includes/script-loader.php:360
+#: wp-includes/post.php:869 wp-includes/post.php:889
+#: wp-includes/script-loader.php:390
 msgid "Published"
 msgstr "Publié"
 
-#: wp-includes/post.php:981
+#: wp-includes/post.php:1238
 msgid "Post types cannot exceed 20 characters in length"
 msgstr "Les types de contenu ne peuvent dépasser les 20 caractères."
 
-#: wp-includes/post.php:1234
+#: wp-includes/post.php:1496
 msgctxt "post type general name"
 msgid "Posts"
 msgstr "Articles"
 
-#: wp-includes/post.php:1234
+#: wp-includes/post.php:1496
 msgctxt "post type general name"
 msgid "Pages"
 msgstr "Pages"
 
-#: wp-includes/post.php:1235
+#: wp-includes/post.php:1497
 msgctxt "post type singular name"
 msgid "Post"
 msgstr "Article"
 
-#: wp-includes/post.php:1235
+#: wp-includes/post.php:1497
 msgctxt "post type singular name"
 msgid "Page"
 msgstr "Page"
 
-#: wp-includes/post.php:1236
+#: wp-includes/post.php:1498
 msgctxt "post"
 msgid "Add New"
 msgstr "Ajouter"
 
-#: wp-includes/post.php:1236
+#: wp-includes/post.php:1498
 msgctxt "page"
 msgid "Add New"
 msgstr "Ajouter"
 
-#: wp-includes/post.php:1237
+#: wp-includes/post.php:1499
 msgid "Add New Post"
 msgstr "Ajouter un nouvel article"
 
-#: wp-includes/post.php:1237
+#: wp-includes/post.php:1499
 msgid "Add New Page"
 msgstr "Ajouter une nouvelle page"
 
-#: wp-includes/post.php:1238
+#: wp-includes/post.php:1500
 msgid "Edit Post"
 msgstr "Modifier l&rsquo;article"
 
-#: wp-includes/post.php:1238
+#: wp-includes/post.php:1500
 msgid "Edit Page"
 msgstr "Modifier la page"
 
-#: wp-includes/post.php:1239
+#: wp-includes/post.php:1501
 msgid "New Page"
 msgstr "Nouvelle page"
 
-#: wp-includes/post.php:1240
+#: wp-includes/post.php:1502
 msgid "View Page"
 msgstr "Voir la page"
 
-#: wp-includes/post.php:1241
+#: wp-includes/post.php:1503
 msgid "Search Posts"
 msgstr "Chercher dans les articles"
 
-#: wp-includes/post.php:1241
+#: wp-includes/post.php:1503
 msgid "Search Pages"
 msgstr "Chercher dans les pages"
 
-#: wp-includes/post.php:1242
+#: wp-includes/post.php:1504
 msgid "No posts found."
 msgstr "Aucun article trouvé."
 
-#: wp-includes/post.php:1242
+#: wp-includes/post.php:1504
 msgid "No pages found."
 msgstr "Aucune page trouvée."
 
-#: wp-includes/post.php:1243
+#: wp-includes/post.php:1505
 msgid "No posts found in Trash."
 msgstr "Aucun article trouvé dans la corbeille."
 
-#: wp-includes/post.php:1243
+#: wp-includes/post.php:1505
 msgid "No pages found in Trash."
 msgstr "Aucune page trouvée dans la corbeille."
 
-#: wp-includes/post.php:1244
+#: wp-includes/post.php:1506
 msgid "Parent Page:"
 msgstr "Page parente&nbsp;:"
 
-#: wp-includes/post.php:1245
+#: wp-includes/post.php:1507
 msgid "All Posts"
 msgstr "Tous les articles"
 
-#: wp-includes/post.php:1245
+#: wp-includes/post.php:1507
 msgid "All Pages"
 msgstr "Toutes les pages"
 
-#: wp-includes/post.php:2350
+#: wp-includes/post.php:2194
+msgid "Images"
+msgstr "Images"
+
+#: wp-includes/post.php:2194
+msgid "Manage Images"
+msgstr "Gérer les images"
+
+#: wp-includes/post.php:2194
+msgid "Image <span class=\"count\">(%s)</span>"
+msgid_plural "Images <span class=\"count\">(%s)</span>"
+msgstr[0] "Image <span class=\"count\">(%s)</span>"
+msgstr[1] "Images <span class=\"count\">(%s)</span>"
+
+#: wp-includes/post.php:2195
+msgid "Audio"
+msgstr "Sons"
+
+#: wp-includes/post.php:2195
+msgid "Manage Audio"
+msgstr "Gérer l&rsquo;audio"
+
+#: wp-includes/post.php:2195
+msgid "Audio <span class=\"count\">(%s)</span>"
+msgid_plural "Audio <span class=\"count\">(%s)</span>"
+msgstr[0] "Son <span class=\"count\">(%s)</span>"
+msgstr[1] "Sons <span class=\"count\">(%s)</span>"
+
+#: wp-includes/post.php:2196
+msgid "Video"
+msgstr "Vidéos"
+
+#: wp-includes/post.php:2196
+msgid "Manage Video"
+msgstr "Gérer les vidéos"
+
+#: wp-includes/post.php:2196
+msgid "Video <span class=\"count\">(%s)</span>"
+msgid_plural "Video <span class=\"count\">(%s)</span>"
+msgstr[0] "Vidéo <span class=\"count\">(%s)</span>"
+msgstr[1] "Vidéos <span class=\"count\">(%s)</span>"
+
+#: wp-includes/post.php:2633
 msgid ""
 "Passing an integer number of posts is deprecated. Pass an array of arguments "
 "instead."
@@ -6796,108 +6972,112 @@
 "Il n&rsquo;est pas recommandé de passer un nombre entier d&rsquo;"
 "articles&nbsp;; il est préférable de passer un tableau d&rsquo;arguments."
 
-#: wp-includes/post.php:2491
+#: wp-includes/post.php:2731
 msgid "Content, title, and excerpt are empty."
 msgstr "Le contenu de l&rsquo;article, le titre et l&rsquo;extrait sont vides."
 
-#: wp-includes/post.php:2620
+#: wp-includes/post.php:2797
+msgid "Whoops, the provided date is invalid."
+msgstr "Oups, la date fournie n&rsquo;est pas valable."
+
+#: wp-includes/post.php:2872
 msgid "Could not update post in the database"
 msgstr "Impossible de mettre à jour l&rsquo;article dans la base de données"
 
-#: wp-includes/post.php:2636
+#: wp-includes/post.php:2888
 msgid "Could not insert post into the database"
 msgstr "Impossible d&rsquo;insérer l&rsquo;article dans la base de données"
 
-#: wp-includes/post.php:2683
+#: wp-includes/post.php:2935
 msgid "The page template is invalid."
 msgstr "Le modèle de page est invalide."
 
-#: wp-includes/post.php:2947 wp-includes/script-loader.php:361
-#: wp-includes/script-loader.php:386
+#: wp-includes/post.php:3190 wp-includes/script-loader.php:391
+#: wp-includes/script-loader.php:416
 msgctxt "tag delimiter"
 msgid ","
 msgstr ", "
 
-#: wp-includes/post.php:4674
+#: wp-includes/post.php:4869
 msgid "Content"
 msgstr "Contenu"
 
-#: wp-includes/post.php:4675
+#: wp-includes/post.php:4870
 msgid "Excerpt"
 msgstr "Extrait"
 
-#: wp-includes/post.php:4865
+#: wp-includes/post.php:5063
 msgid "Cannot create a revision of a revision"
 msgstr "Impossible de créer une version d&rsquo;une version."
 
-#: wp-includes/post.php:5040
+#: wp-includes/post.php:5238
 msgid "You do not have permission to preview drafts."
 msgstr ""
 "Vous n&rsquo;avez pas l&rsquo;autorisation de prévisualiser les brouillons"
 
-#: wp-includes/post.php:5114
+#: wp-includes/post.php:5312
 msgctxt "Post format"
 msgid "Standard"
 msgstr "Par défaut"
 
-#: wp-includes/post.php:5115
+#: wp-includes/post.php:5313
 msgctxt "Post format"
 msgid "Aside"
 msgstr "En passant"
 
-#: wp-includes/post.php:5116
+#: wp-includes/post.php:5314
 msgctxt "Post format"
 msgid "Chat"
 msgstr "Chat"
 
-#: wp-includes/post.php:5117
+#: wp-includes/post.php:5315
 msgctxt "Post format"
 msgid "Gallery"
 msgstr "Galerie"
 
-#: wp-includes/post.php:5118
+#: wp-includes/post.php:5316
 msgctxt "Post format"
 msgid "Link"
 msgstr "Lien"
 
-#: wp-includes/post.php:5119
+#: wp-includes/post.php:5317
 msgctxt "Post format"
 msgid "Image"
 msgstr "Image"
 
-#: wp-includes/post.php:5120
+#: wp-includes/post.php:5318
 msgctxt "Post format"
 msgid "Quote"
 msgstr "Citation"
 
-#: wp-includes/post.php:5121
+#: wp-includes/post.php:5319
 msgctxt "Post format"
 msgid "Status"
 msgstr "État"
 
-#: wp-includes/post.php:5122
+#: wp-includes/post.php:5320
 msgctxt "Post format"
 msgid "Video"
 msgstr "Vidéo"
 
-#: wp-includes/post.php:5123
+#: wp-includes/post.php:5321
 msgctxt "Post format"
 msgid "Audio"
 msgstr "Son"
 
-#: wp-includes/query.php:145 wp-includes/query.php:166
-#: wp-includes/query.php:186 wp-includes/query.php:210
-#: wp-includes/query.php:234 wp-includes/query.php:258
-#: wp-includes/query.php:287 wp-includes/query.php:307
-#: wp-includes/query.php:327 wp-includes/query.php:347
-#: wp-includes/query.php:368 wp-includes/query.php:388
-#: wp-includes/query.php:418 wp-includes/query.php:447
-#: wp-includes/query.php:467 wp-includes/query.php:494
-#: wp-includes/query.php:514 wp-includes/query.php:534
-#: wp-includes/query.php:554 wp-includes/query.php:574
-#: wp-includes/query.php:603 wp-includes/query.php:630
-#: wp-includes/query.php:650 wp-includes/query.php:670
-#: wp-includes/query.php:690 wp-includes/query.php:710
+#: wp-includes/query.php:143 wp-includes/query.php:164
+#: wp-includes/query.php:184 wp-includes/query.php:208
+#: wp-includes/query.php:232 wp-includes/query.php:256
+#: wp-includes/query.php:285 wp-includes/query.php:305
+#: wp-includes/query.php:325 wp-includes/query.php:345
+#: wp-includes/query.php:366 wp-includes/query.php:386
+#: wp-includes/query.php:416 wp-includes/query.php:445
+#: wp-includes/query.php:465 wp-includes/query.php:492
+#: wp-includes/query.php:512 wp-includes/query.php:532
+#: wp-includes/query.php:552 wp-includes/query.php:572
+#: wp-includes/query.php:601 wp-includes/query.php:628
+#: wp-includes/query.php:648 wp-includes/query.php:668
+#: wp-includes/query.php:688 wp-includes/query.php:708
 msgid ""
 "Conditional query tags do not work before the query is run. Before then, "
 "they always return false."
@@ -6906,7 +7086,7 @@
 "de la requête. Avant cela, elles renvoient toujours le booléen <code>false</"
 "code>."
 
-#: wp-includes/query.php:1956
+#: wp-includes/query.php:1958
 msgid ""
 "\"caller_get_posts\" is deprecated. Use \"ignore_sticky_posts\" instead."
 msgstr ""
@@ -6917,16 +7097,8 @@
 msgid "This file no longer needs to be included."
 msgstr "Ce fichier n&rsquo;a plus besoin d&rsquo;être inclus."
 
-#: wp-includes/rss.php:895
-msgid ""
-"An error has occurred, which probably means the feed is down. Try again "
-"later."
-msgstr ""
-"Une erreur est survenue, le flux est probablement indisponible. Veuillez "
-"réessayer plus tard."
-
 # Pas d'entité : JavaScript.
-#: wp-includes/script-loader.php:66
+#: wp-includes/script-loader.php:71
 msgid ""
 "You are about to permanently delete the selected items.\n"
 "  'Cancel' to stop, 'OK' to delete."
@@ -6936,84 +7108,84 @@
 "  « Annuler » pour abandonner, « OK » pour les supprimer."
 
 # Ne pas mettre d'entité HTML (&nbsp;...) : affiché dans une fenêtre alert().
-#: wp-includes/script-loader.php:73
+#: wp-includes/script-loader.php:78
 msgid "Enter a word to look up:"
 msgstr "Saisissez un mot à chercher :"
 
-#: wp-includes/script-loader.php:74
+#: wp-includes/script-loader.php:79
 msgid "Dictionary lookup"
 msgstr "Recherche dans le dictionnaire"
 
-#: wp-includes/script-loader.php:75
+#: wp-includes/script-loader.php:80
 msgid "lookup"
 msgstr "dictionnaire"
 
-#: wp-includes/script-loader.php:76
+#: wp-includes/script-loader.php:81
 msgid "Close all open tags"
 msgstr "Fermer toutes les balises ouvertes"
 
-#: wp-includes/script-loader.php:77
+#: wp-includes/script-loader.php:82
 msgid "close tags"
 msgstr "fermer les balises"
 
 # Pas d'entité HTML : utilisé dans un alert().
-#: wp-includes/script-loader.php:78
+#: wp-includes/script-loader.php:83
 msgid "Enter the URL"
-msgstr "Saisissez l'adresse"
-
-#: wp-includes/script-loader.php:79
+msgstr "Saisissez l&rsquo;adresse"
+
+#: wp-includes/script-loader.php:84
 msgid "Enter the URL of the image"
 msgstr "Saisissez l&rsquo;adresse de l&rsquo;image"
 
-#: wp-includes/script-loader.php:80
+#: wp-includes/script-loader.php:85
 msgid "Enter a description of the image"
 msgstr "Saisissez une description pour l&rsquo;image"
 
-#: wp-includes/script-loader.php:81
+#: wp-includes/script-loader.php:86
 msgid "fullscreen"
 msgstr "plein écran"
 
-#: wp-includes/script-loader.php:82
+#: wp-includes/script-loader.php:87
 msgid "Toggle fullscreen mode"
 msgstr "Mode plein écran"
 
-#: wp-includes/script-loader.php:83
+#: wp-includes/script-loader.php:88
 msgid "text direction"
 msgstr "direction du texte"
 
-#: wp-includes/script-loader.php:84
+#: wp-includes/script-loader.php:89
 msgid "Toggle Editor Text Direction"
 msgstr "Inverser la direction de l&rsquo;éditeur de texte"
 
-#: wp-includes/script-loader.php:97 wp-includes/script-loader.php:323
+#: wp-includes/script-loader.php:100 wp-includes/script-loader.php:353
 msgid "You do not have permission to do that."
 msgstr "Vous n&rsquo;avez pas l&rsquo;autorisation d&rsquo;effectuer cela."
 
-#: wp-includes/script-loader.php:98 wp-includes/script-loader.php:324
+#: wp-includes/script-loader.php:101 wp-includes/script-loader.php:354
 msgid "An unidentified error has occurred."
 msgstr "Une erreur non identifiée est survenue."
 
-#: wp-includes/script-loader.php:103 wp-includes/script-loader.php:214
+#: wp-includes/script-loader.php:106 wp-includes/script-loader.php:223
 msgid "Dismiss"
 msgstr "Fermer"
 
-#: wp-includes/script-loader.php:174
+#: wp-includes/script-loader.php:183
 msgid "Next &gt;"
 msgstr "Suiv.&nbsp;&gt;"
 
-#: wp-includes/script-loader.php:175
+#: wp-includes/script-loader.php:184
 msgid "&lt; Prev"
 msgstr "&lt;&nbsp;Préc."
 
-#: wp-includes/script-loader.php:176
+#: wp-includes/script-loader.php:185
 msgid "Image"
 msgstr "Image"
 
-#: wp-includes/script-loader.php:177
+#: wp-includes/script-loader.php:186
 msgid "of"
 msgstr "sur"
 
-#: wp-includes/script-loader.php:179
+#: wp-includes/script-loader.php:188
 msgid ""
 "This feature requires inline frames. You have iframes disabled or your "
 "browser does not support them."
@@ -7021,74 +7193,74 @@
 "Cette fonctionnalité requiert des iframes. Les iframes sont désactivées sur "
 "votre navigateur, ou alors il ne les accepte pas."
 
-#: wp-includes/script-loader.php:192
+#: wp-includes/script-loader.php:201
 msgid "not configured"
 msgstr "non configuré"
 
-#: wp-includes/script-loader.php:196
+#: wp-includes/script-loader.php:205
 msgid "You have attempted to queue too many files."
 msgstr "Vous essayez d&rsquo;envoyer trop de fichiers à la fois."
 
-#: wp-includes/script-loader.php:197
+#: wp-includes/script-loader.php:206
 msgid "%s exceeds the maximum upload size for this site."
 msgstr "%s dépasse la limite d&rsquo;envoi de ce site."
 
-#: wp-includes/script-loader.php:198
+#: wp-includes/script-loader.php:207
 msgid "This file is empty. Please try another."
 msgstr "Le fichier est vide. Merci d&rsquo;en essayer un autre."
 
-#: wp-includes/script-loader.php:199
+#: wp-includes/script-loader.php:208
 msgid "This file type is not allowed. Please try another."
 msgstr ""
 "Ce type de fichier n&rsquo;est pas autorisé. Merci d&rsquo;en essayer un "
 "autre."
 
-#: wp-includes/script-loader.php:200
+#: wp-includes/script-loader.php:209
 msgid "This file is not an image. Please try another."
 msgstr ""
 "Ce fichier n&rsquo;est pas une image. Merci d&rsquo;en envoyer un autre."
 
-#: wp-includes/script-loader.php:201
+#: wp-includes/script-loader.php:210
 msgid "Memory exceeded. Please try another smaller file."
 msgstr "Mémoire dépassée. Veuillez réessayer avec un fichier plus petit."
 
-#: wp-includes/script-loader.php:202
+#: wp-includes/script-loader.php:211
 msgid "This is larger than the maximum size. Please try another."
 msgstr ""
 "Ce fichier est plus grand que la taille maximale. Merci d&rsquo;en envoyer "
 "un autre."
 
-#: wp-includes/script-loader.php:203
+#: wp-includes/script-loader.php:212
 msgid "An error occurred in the upload. Please try again later."
 msgstr ""
 "Une erreur est survenue lors de l&rsquo;envoi. Veuillez réessayer plus tard."
 
-#: wp-includes/script-loader.php:204
+#: wp-includes/script-loader.php:213
 msgid ""
 "There was a configuration error. Please contact the server administrator."
 msgstr ""
-"Il y a une erreur de configuration. Merci de contacter l&rsquo;"
+"Il y a une erreur de configuration. Veuillez contacter l&rsquo;"
 "administrateur de votre serveur."
 
-#: wp-includes/script-loader.php:205
+#: wp-includes/script-loader.php:214
 msgid "You may only upload 1 file."
 msgstr "Vous pouvez seulement envoyer 1 fichier."
 
-#: wp-includes/script-loader.php:206
+#: wp-includes/script-loader.php:215
 msgid "HTTP error."
 msgstr "Erreur HTTP."
 
-#: wp-includes/script-loader.php:207
+#: wp-includes/script-loader.php:216
 msgid "Upload failed."
 msgstr "L&rsquo;envoi a échoué."
 
-#: wp-includes/script-loader.php:208
+#: wp-includes/script-loader.php:217
 msgid "Please try uploading this file with the %1$sbrowser uploader%2$s."
 msgstr ""
 "Veuillez essayer de mettre ce fichier en ligne à l&rsquo;aide de l&rsquo;"
 "%1$soutil du navigateur%2$s."
 
-#: wp-includes/script-loader.php:209
+#: wp-includes/script-loader.php:218
 msgid ""
 "%s exceeds the maximum upload size for the multi-file uploader when used in "
 "your browser."
@@ -7096,383 +7268,400 @@
 "%s dépasse la limite d&rsquo;envoi pour l&rsquo;outil de mise ne ligne "
 "multiple utilisé avec votre navigateur."
 
-#: wp-includes/script-loader.php:210
+#: wp-includes/script-loader.php:219
 msgid "IO error."
 msgstr "Erreur I/O (Entrées-Sorties)."
 
-#: wp-includes/script-loader.php:211
+#: wp-includes/script-loader.php:220
 msgid "Security error."
 msgstr "Erreur de sécurité."
 
-#: wp-includes/script-loader.php:212
+#: wp-includes/script-loader.php:221
 msgid "File canceled."
 msgstr "Fichier annulé."
 
-#: wp-includes/script-loader.php:213
+#: wp-includes/script-loader.php:222
 msgid "Upload stopped."
 msgstr "L&rsquo;envoi est stoppé."
 
-#: wp-includes/script-loader.php:215
+#: wp-includes/script-loader.php:224
 msgid "Crunching&hellip;"
 msgstr "En cours de traitement&hellip;"
 
-#: wp-includes/script-loader.php:216
+#: wp-includes/script-loader.php:225
 msgid "moved to the trash."
 msgstr "déplacé dans la Corbeille."
 
-#: wp-includes/script-loader.php:217
+#: wp-includes/script-loader.php:226
 msgid "&#8220;%s&#8221; has failed to upload."
 msgstr "« %s » n&rsquo;a pas pu être mis en ligne."
 
-#: wp-includes/script-loader.php:259 wp-login.php:494
+#: wp-includes/script-loader.php:271 wp-login.php:500
 msgid "Strength indicator"
 msgstr "Indicateur de sûreté"
 
-#: wp-includes/script-loader.php:260
+#: wp-includes/script-loader.php:272
 msgid "Very weak"
 msgstr "Très faible"
 
-#: wp-includes/script-loader.php:261
+#: wp-includes/script-loader.php:273
 msgid "Weak"
 msgstr "Faible"
 
 #. translators: password strength
-#: wp-includes/script-loader.php:263
+#: wp-includes/script-loader.php:275
 msgctxt "password strength"
 msgid "Medium"
 msgstr "Moyenne"
 
-#: wp-includes/script-loader.php:264
+#: wp-includes/script-loader.php:276
 msgid "Strong"
 msgstr "Forte"
 
-#: wp-includes/script-loader.php:265
+#: wp-includes/script-loader.php:277
 msgid "Mismatch"
 msgstr "Incohérence"
 
-#: wp-includes/script-loader.php:279 wp-includes/script-loader.php:385
+#: wp-includes/script-loader.php:291 wp-includes/script-loader.php:415
 msgid "(no title)"
 msgstr "(pas de titre)"
 
-#: wp-includes/script-loader.php:280
+#: wp-includes/script-loader.php:292
 msgid "No matches found."
 msgstr "Aucune correspondance trouvée."
 
-#: wp-includes/script-loader.php:303
+#: wp-includes/script-loader.php:315
 msgid "Save &amp; Activate"
 msgstr "Enregistrer &amp; activer"
 
-#: wp-includes/script-loader.php:304
+#: wp-includes/script-loader.php:316
 msgid "Save &amp; Publish"
 msgstr "Enregistrer &amp; publier"
 
-#: wp-includes/script-loader.php:305
+#: wp-includes/script-loader.php:317
 msgid "Saved"
 msgstr "Enregistré"
 
-#: wp-includes/script-loader.php:315
+#: wp-includes/script-loader.php:345
 msgid "Add"
 msgstr "Ajouter"
 
-#: wp-includes/script-loader.php:316
+#: wp-includes/script-loader.php:346
 msgid "Separate multiple categories with commas."
 msgstr "Séparez les catégories multiples par des virgules."
 
-#: wp-includes/script-loader.php:333
+#: wp-includes/script-loader.php:363
 msgid "Approve and Reply"
 msgstr "Approuver et répondre"
 
-#: wp-includes/script-loader.php:343
+#: wp-includes/script-loader.php:373
 msgid "OK"
 msgstr "OK"
 
-#: wp-includes/script-loader.php:345
+#: wp-includes/script-loader.php:375
 msgid "Publish on:"
 msgstr "Publié le&nbsp;:"
 
 # Ne pas mettre d'entité HTML (&nbsp;...) : chaîne utilisée par JavaScript.
-#: wp-includes/script-loader.php:346
+#: wp-includes/script-loader.php:376
 msgid "Schedule for:"
 msgstr "Planifier pour :"
 
-#: wp-includes/script-loader.php:347
+#: wp-includes/script-loader.php:377
 msgid "Published on:"
 msgstr "Publié le&nbsp;:"
 
-#: wp-includes/script-loader.php:348
+#: wp-includes/script-loader.php:378
 msgid "Show more comments"
 msgstr "Afficher plus de commentaires"
 
-#: wp-includes/script-loader.php:349
+#: wp-includes/script-loader.php:379
 msgid "No more comments found."
 msgstr "Il n&rsquo;y a pas d&rsquo;autres commentaires."
 
-#: wp-includes/script-loader.php:350
+#: wp-includes/script-loader.php:380
 msgid "Publish"
 msgstr "Publier"
 
-#: wp-includes/script-loader.php:351
+#: wp-includes/script-loader.php:381
 msgid "Schedule"
 msgstr "Planifier"
 
-#: wp-includes/script-loader.php:353
+#: wp-includes/script-loader.php:383
 msgid "Save as Pending"
 msgstr "Mettre à relire"
 
-#: wp-includes/script-loader.php:354
+#: wp-includes/script-loader.php:384
 msgid "Save Draft"
 msgstr "Enregistrer brouillon"
 
-#: wp-includes/script-loader.php:356
+#: wp-includes/script-loader.php:386
 msgid "Public"
 msgstr "Public"
 
-#: wp-includes/script-loader.php:357
+#: wp-includes/script-loader.php:387
 msgid "Public, Sticky"
 msgstr "Public, mis en avant"
 
-#: wp-includes/script-loader.php:358
+#: wp-includes/script-loader.php:388
 msgid "Password Protected"
 msgstr "Protégé par mot de passe"
 
-#: wp-includes/script-loader.php:359
+#: wp-includes/script-loader.php:389
 msgid "Privately Published"
 msgstr "Publié en privé"
 
-#: wp-includes/script-loader.php:369
+#: wp-includes/script-loader.php:399
 msgid "Submitted on:"
 msgstr "Envoyé le&nbsp;:"
 
-#: wp-includes/script-loader.php:383 wp-includes/script-loader.php:391
+#: wp-includes/script-loader.php:413 wp-includes/script-loader.php:421
 msgid "Error while saving the changes."
 msgstr "Erreur lors de la sauvegarde des modifications."
 
-#: wp-includes/script-loader.php:384
+#: wp-includes/script-loader.php:414
 msgid "Remove From Bulk Edit"
 msgstr "Enlever des modifications groupées"
 
-#: wp-includes/script-loader.php:396
+#: wp-includes/script-loader.php:426
 msgid "Plugin Information:"
 msgstr "Informations sur l&rsquo;extension&nbsp;:"
 
-#: wp-includes/script-loader.php:397
+#: wp-includes/script-loader.php:427
 msgid "Are you sure you want to install this plugin?"
 msgstr "Voulez-vous vraiment installer cette extension&nbsp;?"
 
-#: wp-includes/script-loader.php:410
+#: wp-includes/script-loader.php:437
+msgid "Select Color"
+msgstr "Sélectionner une couleur"
+
+#: wp-includes/script-loader.php:438
+msgid "Current Color"
+msgstr "Couleur actuelle"
+
+#: wp-includes/script-loader.php:449
 msgid "Could not load the preview image. Please reload the page and try again."
 msgstr ""
 "Impossible de charger l&rsquo;image de prévisualisation. Veuillez recharger "
 "la page et réessayer."
 
-#: wp-includes/script-loader.php:415
+#: wp-includes/script-loader.php:454
 msgid "Use as featured image"
-msgstr "Utiliser comme image à la une"
-
-#: wp-includes/script-loader.php:416
+msgstr "Utiliser comme image à la Une"
+
+#: wp-includes/script-loader.php:455
 msgid "Saving..."
 msgstr "Enregistrement..."
 
-#: wp-includes/script-loader.php:417
+#: wp-includes/script-loader.php:456
 msgid "Could not set that as the thumbnail image. Try a different attachment."
 msgstr ""
 "Impossible de s&rsquo;en servir comme miniature. Essayez un autre fichier "
 "attaché."
 
-#: wp-includes/script-loader.php:418
+#: wp-includes/script-loader.php:457
 msgid "Done"
 msgstr "Terminé"
 
-#: wp-includes/script-loader.php:424
+#: wp-includes/script-loader.php:463
 msgctxt "search results"
 msgid "No results found."
 msgstr "Aucun résultat trouvé."
 
 # alert()
-#: wp-includes/script-loader.php:425
+#: wp-includes/script-loader.php:464
 msgid ""
 "You are about to permanently delete this menu. \n"
 " 'Cancel' to stop, 'OK' to delete."
 msgstr ""
 "Vous êtes sur le point de supprimer définitivement ce menu.\n"
-"  « Annuler » pour abandonner, « OK » pour les supprimer."
-
-#: wp-includes/script-loader.php:533
+"  « Annuler » pour abandonner, « OK » pour le supprimer."
+
+#: wp-includes/script-loader.php:576
 msgid "Saving Draft&#8230;"
 msgstr "Enregistrement du brouillon&#8230;"
 
-#: wp-includes/taxonomy.php:66
+#: wp-includes/taxonomy.php:68
 msgid "Navigation Menus"
 msgstr "Menus de navigation"
 
-#: wp-includes/taxonomy.php:67
+#: wp-includes/taxonomy.php:69
 msgid "Navigation Menu"
 msgstr "Menu de navigation"
 
-#: wp-includes/taxonomy.php:79
-msgid "Link Categories"
-msgstr "Catégories de liens"
-
-#: wp-includes/taxonomy.php:80
-msgid "Link Category"
-msgstr "Catégorie de liens"
-
 #: wp-includes/taxonomy.php:81
-msgid "Search Link Categories"
-msgstr "Chercher une catégorie de liens"
+msgid "Link Categories"
+msgstr "Catégories de liens"
+
+#: wp-includes/taxonomy.php:82
+msgid "Link Category"
+msgstr "Catégorie de liens"
 
 #: wp-includes/taxonomy.php:83
-msgid "All Link Categories"
-msgstr "Toutes les catégories de liens"
-
-#: wp-includes/taxonomy.php:84
-msgid "Edit Link Category"
-msgstr "Modifier la catégorie de lien"
+msgid "Search Link Categories"
+msgstr "Chercher une catégorie de liens"
 
 #: wp-includes/taxonomy.php:85
+msgid "All Link Categories"
+msgstr "Toutes les catégories de liens"
+
+#: wp-includes/taxonomy.php:86
+msgid "Edit Link Category"
+msgstr "Modifier la catégorie de lien"
+
+#: wp-includes/taxonomy.php:87
 msgid "Update Link Category"
 msgstr "Mettre à jour la catégorie de liens"
 
-#: wp-includes/taxonomy.php:86
+#: wp-includes/taxonomy.php:88
 msgid "Add New Link Category"
 msgstr "Ajouter une catégorie de liens"
 
-#: wp-includes/taxonomy.php:87
+#: wp-includes/taxonomy.php:89
 msgid "New Link Category Name"
 msgstr "Nom de la nouvelle catégorie de liens"
 
-#: wp-includes/taxonomy.php:103 wp-includes/taxonomy.php:104
+#: wp-includes/taxonomy.php:111 wp-includes/taxonomy.php:112
 msgctxt "post format"
 msgid "Format"
 msgstr "Format"
 
-#: wp-includes/taxonomy.php:414
+#: wp-includes/taxonomy.php:335
+msgid "Taxonomies cannot exceed 32 characters in length"
+msgstr "Les taxinomies ne peuvent dépasser les 32 caractères."
+
+#: wp-includes/taxonomy.php:427
 msgctxt "taxonomy general name"
 msgid "Tags"
 msgstr "Mots-clefs"
 
-#: wp-includes/taxonomy.php:414
+#: wp-includes/taxonomy.php:427
 msgctxt "taxonomy general name"
 msgid "Categories"
 msgstr "Catégories"
 
-#: wp-includes/taxonomy.php:415
+#: wp-includes/taxonomy.php:428
 msgctxt "taxonomy singular name"
 msgid "Tag"
 msgstr "Mot-clef"
 
-#: wp-includes/taxonomy.php:415
+#: wp-includes/taxonomy.php:428
 msgctxt "taxonomy singular name"
 msgid "Category"
 msgstr "Catégorie"
 
-#: wp-includes/taxonomy.php:416
+#: wp-includes/taxonomy.php:429
 msgid "Search Tags"
 msgstr "Chercher dans les mots-clefs"
 
-#: wp-includes/taxonomy.php:416
+#: wp-includes/taxonomy.php:429
 msgid "Search Categories"
 msgstr "Chercher une catégorie"
 
-#: wp-includes/taxonomy.php:417
+#: wp-includes/taxonomy.php:430
 msgid "Popular Tags"
 msgstr "Mots-clefs populaires"
 
-#: wp-includes/taxonomy.php:418
+#: wp-includes/taxonomy.php:431
 msgid "All Tags"
 msgstr "Tous les mots-clefs"
 
-#: wp-includes/taxonomy.php:418
+#: wp-includes/taxonomy.php:431
 msgid "All Categories"
 msgstr "Toutes"
 
-#: wp-includes/taxonomy.php:419
+#: wp-includes/taxonomy.php:432
 msgid "Parent Category"
 msgstr "Catégorie parente"
 
-#: wp-includes/taxonomy.php:420
+#: wp-includes/taxonomy.php:433
 msgid "Parent Category:"
 msgstr "Catégorie parente&nbsp;:"
 
-#: wp-includes/taxonomy.php:421
+#: wp-includes/taxonomy.php:434
 msgid "Edit Tag"
 msgstr "Modifier le mot-clef"
 
-#: wp-includes/taxonomy.php:421
+#: wp-includes/taxonomy.php:434
 msgid "Edit Category"
 msgstr "Modifier la catégorie"
 
-#: wp-includes/taxonomy.php:422
+#: wp-includes/taxonomy.php:435
 msgid "View Tag"
 msgstr "Voir le mot-clef"
 
-#: wp-includes/taxonomy.php:422
+#: wp-includes/taxonomy.php:435
 msgid "View Category"
 msgstr "Afficher la catégorie"
 
-#: wp-includes/taxonomy.php:423
+#: wp-includes/taxonomy.php:436
 msgid "Update Tag"
 msgstr "Mettre à jour le mot-clef"
 
-#: wp-includes/taxonomy.php:423
+#: wp-includes/taxonomy.php:436
 msgid "Update Category"
 msgstr "Mettre à jour la catégorie"
 
-#: wp-includes/taxonomy.php:424
+#: wp-includes/taxonomy.php:437
 msgid "Add New Tag"
 msgstr "Ajouter un nouveau mot-clef"
 
-#: wp-includes/taxonomy.php:424
+#: wp-includes/taxonomy.php:437
 msgid "Add New Category"
 msgstr "Ajouter une nouvelle catégorie"
 
-#: wp-includes/taxonomy.php:425
+#: wp-includes/taxonomy.php:438
 msgid "New Tag Name"
 msgstr "Nom du nouveau mot-clef"
 
-#: wp-includes/taxonomy.php:425
+#: wp-includes/taxonomy.php:438
 msgid "New Category Name"
 msgstr "Nom de la nouvelle catégorie"
 
-#: wp-includes/taxonomy.php:426
+#: wp-includes/taxonomy.php:439
 msgid "Separate tags with commas"
 msgstr "Séparez les mots-clefs par des virgules"
 
-#: wp-includes/taxonomy.php:427
+#: wp-includes/taxonomy.php:440
 msgid "Add or remove tags"
 msgstr "Ajouter ou retirer des mots-clefs"
 
-#: wp-includes/taxonomy.php:428
+#: wp-includes/taxonomy.php:441
 msgid "Choose from the most used tags"
 msgstr "Choisir parmi les mots-clefs les plus utilisés"
 
 # contexte
-#: wp-includes/taxonomy.php:853 wp-includes/taxonomy.php:2970
+#: wp-includes/taxonomy.php:875 wp-includes/taxonomy.php:3002
 msgid "Empty Term"
 msgstr "Pas de terme"
 
-#: wp-includes/taxonomy.php:2028 wp-includes/taxonomy.php:2349
+#: wp-includes/taxonomy.php:2055 wp-includes/taxonomy.php:2379
 msgid "A name is required for this term"
 msgstr "Un nom est requis pour ce terme"
 
-#: wp-includes/taxonomy.php:2066
+#: wp-includes/taxonomy.php:2093
 msgid "A term with the name provided already exists with this parent."
 msgstr "Un terme avec ce nom existe déjà pour ce parent."
 
-#: wp-includes/taxonomy.php:2070 wp-includes/taxonomy.php:2077
-#: wp-includes/taxonomy.php:2087
+#: wp-includes/taxonomy.php:2097 wp-includes/taxonomy.php:2104
+#: wp-includes/taxonomy.php:2114
 msgid "Could not insert term into the database"
 msgstr "Impossible d&rsquo;insérer le terme dans la base de données"
 
-#: wp-includes/taxonomy.php:2081
+#: wp-includes/taxonomy.php:2108
 msgid "A term with the name provided already exists."
 msgstr "Un terme existe déjà avec ce nom."
 
-#: wp-includes/taxonomy.php:2382
+#: wp-includes/taxonomy.php:2238
+msgid "Could not insert term relationship into the database"
+msgstr ""
+"Impossible d&rsquo;insérer la relation du terme dans la base de données"
+
+#: wp-includes/taxonomy.php:2412
 msgid "The slug &#8220;%s&#8221; is already in use by another term"
 msgstr "L&rsquo;identifiant « %s » est déjà utilisé par un autre terme"
 
-#: wp-includes/taxonomy.php:3134
+#: wp-includes/taxonomy.php:3163
 msgid "Invalid object ID"
 msgstr "Identifiant d&rsquo;objet non valide."
 
@@ -7544,7 +7733,7 @@
 "Connecté en tant que <a href=\"%1$s\">%2$s</a>. <a href=\"%3$s\" title=\"Se "
 "déconnecter de ce compte\">Se déconnecter &raquo;</a>"
 
-#: wp-includes/theme-compat/comments-popup.php:80 wp-login.php:547
+#: wp-includes/theme-compat/comments-popup.php:80 wp-login.php:553
 msgid "E-mail"
 msgstr "E-mail"
 
@@ -7718,17 +7907,17 @@
 msgid "XFN"
 msgstr "XFN"
 
-#: wp-includes/update.php:358
+#: wp-includes/update.php:357
 msgid "%d WordPress Update"
 msgstr "%d mise à jour de WordPress"
 
-#: wp-includes/update.php:360
+#: wp-includes/update.php:359
 msgid "%d Plugin Update"
 msgid_plural "%d Plugin Updates"
 msgstr[0] "%d mise à jour d&rsquo;extension"
 msgstr[1] "%d mises à jour d&rsquo;extensions"
 
-#: wp-includes/update.php:362
+#: wp-includes/update.php:361
 msgid "%d Theme Update"
 msgid_plural "%d Theme Updates"
 msgstr[0] "%d mise à jour de thème"
@@ -7773,31 +7962,29 @@
 "\"%2$s\" title=\"Perte de mot de passe\">Avez-vous perdu votre mot de passe</"
 "a>&nbsp;?"
 
-#: wp-includes/user.php:136
+#: wp-includes/user.php:135
 msgid "Please log in again."
-msgstr "Merci de vous reconnecter."
-
-#: wp-includes/user.php:1274
+msgstr "Veuillez vous reconnecter."
+
+#: wp-includes/user.php:1310
 msgid "Cannot create a user with an empty login name."
 msgstr "Impossible de créer un utilisateur avec un identifiant vide."
 
-#: wp-includes/user.php:1277
-msgid "This username is already registered."
-msgstr "Cet identifiant est déjà enregistré."
-
-#: wp-includes/user.php:1292
-msgid "This email address is already registered."
-msgstr "Cette adresse de messagerie est déjà enregistrée."
-
-#: wp-includes/user.php:1486
+#. translators: 1: first name, 2: last name
+#: wp-includes/user.php:1347
+msgctxt "Display name based on first name and last name"
+msgid "%1$s %2$s"
+msgstr "%1$s %2$s"
+
+#: wp-includes/user.php:1538
 msgid "AIM"
 msgstr "AIM"
 
-#: wp-includes/user.php:1487
+#: wp-includes/user.php:1539
 msgid "Yahoo IM"
 msgstr "Yahoo Messenger"
 
-#: wp-includes/user.php:1488
+#: wp-includes/user.php:1540
 msgid "Jabber / Google Talk"
 msgstr "Jabber / Google Talk"
 
@@ -7813,7 +8000,7 @@
 msgid "Sidebar"
 msgstr "Colonne latérale"
 
-#: wp-includes/wp-db.php:750
+#: wp-includes/wp-db.php:846
 msgid ""
 "<h1>Can&#8217;t select database</h1>\n"
 "<p>We were able to connect to the database server (which means your username "
@@ -7849,17 +8036,17 @@
 "href='http://www.wordpress-fr.net/support/'>forum d&rsquo;entraide en "
 "français</a>.</p>"
 
-#: wp-includes/wp-db.php:931
+#: wp-includes/wp-db.php:1029
 msgid "WordPress database error %1$s for query %2$s made by %3$s"
 msgstr ""
 "Erreur de la base de données WordPress %1$s pour la requête %2$s faite par "
 "%3$s"
 
-#: wp-includes/wp-db.php:933
+#: wp-includes/wp-db.php:1031
 msgid "WordPress database error %1$s for query %2$s"
 msgstr "Erreur de la base de données WordPress %1$s pour la requête %2$s"
 
-#: wp-includes/wp-db.php:1045
+#: wp-includes/wp-db.php:1145
 msgid ""
 "\n"
 "<h1>Error establishing a database connection</h1>\n"
@@ -7898,7 +8085,7 @@
 "au <a href='http://www.wordpress-fr.net/support/'>forum d&rsquo;entraide en "
 "français</a>.</p>\n"
 
-#: wp-includes/wp-db.php:1541
+#: wp-includes/wp-db.php:1652
 msgid "<strong>ERROR</strong>: WordPress %1$s requires MySQL %2$s or higher"
 msgstr ""
 "<strong>ERREUR</strong>&nbsp;: WordPress %1$s requiert MySQL %2$s ou une "
@@ -7908,7 +8095,7 @@
 msgid "Links for %s"
 msgstr "Liens pour %s"
 
-#: wp-load.php:55
+#: wp-load.php:57
 msgid ""
 "There doesn't seem to be a <code>wp-config.php</code> file. I need this "
 "before we can get started."
@@ -7916,15 +8103,15 @@
 "Il ne semble pas y avoir de fichier <code>wp-config.php</code>. J&rsquo;en "
 "ai besoin pour lancer le processus."
 
-#: wp-load.php:56
+#: wp-load.php:58
 msgid ""
 "Need more help? <a href='http://codex.wordpress.org/Editing_wp-config."
 "php'>We got it</a>."
 msgstr ""
-"Besoin d&rsquo;aide ? <a href='http://codex.wordpress.org/Editing_wp-config."
-"php'>En voici</a> (en anglais)."
-
-#: wp-load.php:57
+"Besoin d&rsquo;aide&nbsp;? <a href='http://codex.wordpress.org/Editing_wp-"
+"config.php'>En voici</a> (en anglais)."
+
+#: wp-load.php:59
 msgid ""
 "You can create a <code>wp-config.php</code> file through a web interface, "
 "but this doesn't work for all server setups. The safest way is to manually "
@@ -7934,90 +8121,90 @@
 "cette interface, mais cela ne marche pour toutes les configurations de "
 "serveur. La manière la plus sûre reste de créer le fichier à la main."
 
-#: wp-load.php:58
+#: wp-load.php:60
 msgid "Create a Configuration File"
 msgstr "Créer un fichier de configuration"
 
-#: wp-login.php:82
+#: wp-login.php:79
 msgid "Powered by WordPress"
 msgstr "Propulsé par WordPress"
 
-#: wp-login.php:140
+#: wp-login.php:143
 msgid "Are you lost?"
 msgstr "Êtes-vous perdu(e)&nbsp;?"
 
-#: wp-login.php:140
+#: wp-login.php:143
 msgid "&larr; Back to %s"
 msgstr "&larr; Retour sur %s"
 
-#: wp-login.php:186
+#: wp-login.php:189
 msgid "<strong>ERROR</strong>: Enter a username or e-mail address."
 msgstr ""
 "<strong>ERREUR</strong>&nbsp;: veuillez saisir une adresse de messagerie ou "
 "un identifiant."
 
-#: wp-login.php:190
+#: wp-login.php:193
 msgid ""
 "<strong>ERROR</strong>: There is no user registered with that email address."
 msgstr ""
 "<strong>ERREUR</strong>&nbsp;: il n&rsquo;y aucun utilisateur enregistré "
 "avec cette adresse de messagerie."
 
-#: wp-login.php:202
+#: wp-login.php:205
 msgid "<strong>ERROR</strong>: Invalid username or e-mail."
 msgstr ""
 "<strong>ERREUR</strong>&nbsp;: l&rsquo;identifiant ou l&rsquo;adresse de "
 "messagerie n&rsquo;est pas valide."
 
-#: wp-login.php:216
+#: wp-login.php:219
 msgid "Password reset is not allowed for this user"
 msgstr ""
 "La réinitialisation du mot de passe n&rsquo;est pas autorisée pour cet "
 "utilisateur"
 
 # No HTML entities allowed
-#: wp-login.php:228
+#: wp-login.php:231
 msgid "Someone requested that the password be reset for the following account:"
 msgstr ""
 "Quelqu'un a demandé le renouvellement de son mot de passe pour le compte "
 "suivant :"
 
 # No HTML entities allowed.
-#: wp-login.php:231
+#: wp-login.php:234
 msgid "If this was a mistake, just ignore this email and nothing will happen."
 msgstr ""
 "S'il s'agit d'une erreur, ignorez ce message et la demande ne sera pas prise "
 "en compte."
 
 # No HTML entities allowed.
-#: wp-login.php:232
+#: wp-login.php:235
 msgid "To reset your password, visit the following address:"
 msgstr "Pour renouveler votre mot de passe, cliquez sur le lien suivant :"
 
-#: wp-login.php:242
+#: wp-login.php:245
 msgid "[%s] Password Reset"
 msgstr "[%s] Renouvellement du mot de passe"
 
-#: wp-login.php:248
+#: wp-login.php:251
 msgid "The e-mail could not be sent."
 msgstr "Le message n&rsquo;a pas pu être envoyé."
 
-#: wp-login.php:248
+#: wp-login.php:251
 msgid "Possible reason: your host may have disabled the mail() function..."
 msgstr ""
 "Raison possible&nbsp;: votre hébergeur peut avoir désactivé la fonction mail"
 "()&hellip;"
 
-#: wp-login.php:268 wp-login.php:271 wp-login.php:276
+#: wp-login.php:271 wp-login.php:274 wp-login.php:279
 msgid "Invalid key"
 msgstr "Clef invalide"
 
-#: wp-login.php:310
+#: wp-login.php:313
 msgid "<strong>ERROR</strong>: Please enter a username."
 msgstr ""
-"<strong>ERREUR</strong>&nbsp;: merci de renseigner l&rsquo;identifiant."
-
-#: wp-login.php:312
+"<strong>ERREUR</strong>&nbsp;: veuillez renseigner l&rsquo;identifiant."
+
+#: wp-login.php:315
 msgid ""
 "<strong>ERROR</strong>: This username is invalid because it uses illegal "
 "characters. Please enter a valid username."
@@ -8026,24 +8213,24 @@
 "il utiliser des caractères non autorisés. Merci d&rsquo;utiliser un "
 "identifiant valide."
 
-#: wp-login.php:315
-msgid ""
-"<strong>ERROR</strong>: This username is already registered, please choose "
+#: wp-login.php:318
+msgid ""
+"<strong>ERROR</strong>: This username is already registered. Please choose "
 "another one."
 msgstr ""
 "<strong>ERREUR</strong>&nbsp;: cet identifiant existe déjà. Merci d&rsquo;en "
 "choisir un autre."
 
-#: wp-login.php:320
+#: wp-login.php:323
 msgid "<strong>ERROR</strong>: Please type your e-mail address."
 msgstr ""
 "<strong>ERREUR</strong>&nbsp;: l&rsquo;adresse de messagerie est obligatoire."
 
-#: wp-login.php:322
+#: wp-login.php:325
 msgid "<strong>ERROR</strong>: The email address isn&#8217;t correct."
 msgstr "<strong>ERREUR</strong>&nbsp;: adresse de messagerie incorrecte."
 
-#: wp-login.php:325
+#: wp-login.php:328
 msgid ""
 "<strong>ERROR</strong>: This email is already registered, please choose "
 "another one."
@@ -8051,68 +8238,68 @@
 "<strong>ERREUR</strong>&nbsp;: cette adresse de messagerie est déjà "
 "utilisée. Merci d&rsquo;en choisir une autre."
 
-#: wp-login.php:338
+#: wp-login.php:341
 msgid ""
 "<strong>ERROR</strong>: Couldn&#8217;t register you... please contact the <a "
 "href=\"mailto:%s\">webmaster</a> !"
 msgstr ""
-"<strong>ERREUR</strong>&nbsp;: inscription impossible&hellip; Merci de "
+"<strong>ERREUR</strong>&nbsp;: inscription impossible&hellip; Veuillez "
 "prendre contact avec le <a href=\"mailto:%s\">webmaster</a>&nbsp;!"
 
-#: wp-login.php:425
+#: wp-login.php:428
 msgid "Sorry, that key does not appear to be valid."
 msgstr "Désolé, cette clef ne semble pas être valide."
 
-#: wp-login.php:429
+#: wp-login.php:432
 msgid "Lost Password"
 msgstr "Mot de passe oublié"
 
-#: wp-login.php:429
+#: wp-login.php:432
 msgid ""
 "Please enter your username or email address. You will receive a link to "
 "create a new password via email."
 msgstr ""
-"Merci de saisir votre identifiant ou votre adresse de messagerie. Un lien "
+"Veuillez saisir votre identifiant ou votre adresse de messagerie. Un lien "
 "permettant de créer un nouveau mot de passe vous sera envoyé par e-mail."
 
-#: wp-login.php:437
+#: wp-login.php:440
 msgid "Username or E-mail:"
 msgstr "Identifiant ou adresse de messagerie&nbsp;:"
 
-#: wp-login.php:442
+#: wp-login.php:445
 msgid "Get New Password"
 msgstr "Générer un mot de passe"
 
-#: wp-login.php:468
+#: wp-login.php:471
 msgid "The passwords do not match."
 msgstr "Vos mots de passe ne correspondent pas."
 
-#: wp-login.php:471
+#: wp-login.php:477
 msgid "Password Reset"
 msgstr "Renouvellement du mot de passe"
 
-#: wp-login.php:471
+#: wp-login.php:477
 msgid "Your password has been reset."
 msgstr "Votre mot de passe a été réinitialisé."
 
-#: wp-login.php:479 wp-login.php:498
+#: wp-login.php:485 wp-login.php:504
 msgid "Reset Password"
 msgstr "Réinitialiser le mot de passe"
 
-#: wp-login.php:479
+#: wp-login.php:485
 msgid "Enter your new password below."
 msgstr ""
 "Veuillez saisir une deuxième fois votre nouveau mot de passe ci-dessous."
 
-#: wp-login.php:486
+#: wp-login.php:492
 msgid "New password"
 msgstr "Nouveau mot de passe"
 
-#: wp-login.php:490
+#: wp-login.php:496
 msgid "Confirm new password"
 msgstr "Confirmer le nouveau mot de passe"
 
-#: wp-login.php:495
+#: wp-login.php:501
 msgid ""
 "Hint: The password should be at least seven characters long. To make it "
 "stronger, use upper and lower case letters, numbers and symbols like ! \" ? "
@@ -8123,31 +8310,31 @@
 "minuscules, de chiffres et de symboles comme ! \" ? $ %&nbsp;^&nbsp;&amp;"
 "&nbsp;)."
 
-#: wp-login.php:538
+#: wp-login.php:544
 msgid "Registration Form"
 msgstr "Formulaire d&rsquo;inscription"
 
-#: wp-login.php:538
+#: wp-login.php:544
 msgid "Register For This Site"
 msgstr "S&rsquo;inscrire sur ce site"
 
-#: wp-login.php:551
+#: wp-login.php:557
 msgid "A password will be e-mailed to you."
 msgstr "Un mot de passe vous sera envoyé sur votre adresse de messagerie."
 
-#: wp-login.php:559 wp-login.php:705 wp-login.php:707
+#: wp-login.php:565 wp-login.php:710 wp-login.php:712
 msgid "Password Lost and Found"
 msgstr "Récupération de mot de passe"
 
-#: wp-login.php:559 wp-login.php:705 wp-login.php:707
+#: wp-login.php:565 wp-login.php:710 wp-login.php:712
 msgid "Lost your password?"
 msgstr "Mot de passe oublié&nbsp;?"
 
-#: wp-login.php:606
+#: wp-login.php:614
 msgid "You have logged in successfully."
 msgstr "Vous vous êtes bien connecté."
 
-#: wp-login.php:646
+#: wp-login.php:651
 msgid ""
 "<strong>ERROR</strong>: Cookies are blocked or not supported by your "
 "browser. You must <a href='http://www.google.com/cookies.html'>enable "
@@ -8157,32 +8344,32 @@
 "reconnus pas votre navigateur. Vous devez <a href='http://www.google.com/"
 "cookies.html'>activer les cookies</a> pour utiliser WordPress."
 
-#: wp-login.php:650
+#: wp-login.php:655
 msgid "You are now logged out."
 msgstr "Vous êtes désormais déconnecté(e)."
 
-#: wp-login.php:652
+#: wp-login.php:657
 msgid "User registration is currently not allowed."
 msgstr ""
 "Les nouvelles inscriptions ne sont pas autorisées pour l&rsquo;instant."
 
-#: wp-login.php:654
+#: wp-login.php:659
 msgid "Check your e-mail for the confirmation link."
 msgstr "Vérifiez votre messagerie pour y trouver le lien de confirmation."
 
-#: wp-login.php:656
+#: wp-login.php:661
 msgid "Check your e-mail for your new password."
 msgstr "Vérifiez votre messagerie pour y trouver votre nouveau mot de passe."
 
-#: wp-login.php:658
+#: wp-login.php:663
 msgid "Registration complete. Please check your e-mail."
 msgstr "Enregistrement terminé. Veuillez vérifier vos nouveaux e-mails."
 
-#: wp-login.php:660
+#: wp-login.php:665
 msgid "Your session has expired. Please log-in again."
-msgstr "Votre session a expiré. Merci de vous reconnecter."
-
-#: wp-login.php:662
+msgstr "Votre session a expiré. Veuillez vous reconnecter."
+
+#: wp-login.php:667
 msgid ""
 "<strong>You have successfully updated WordPress!</strong> Please log back in "
 "to experience the awesomeness."
@@ -8297,7 +8484,7 @@
 #: wp-signup.php:166
 msgid "There was a problem, please correct the form below and try again."
 msgstr ""
-"Il y a eu un problème, merci de remplir le formulaire ci-dessous et "
+"Il y a eu un problème, veuillez remplir le formulaire ci-dessous et "
 "réessayer."
 
 #: wp-signup.php:169
@@ -8478,32 +8665,32 @@
 msgid "Registration has been disabled."
 msgstr "Les inscriptions ne sont pas autorisées pour le moment."
 
-#: wp-signup.php:398
+#: wp-signup.php:394
 msgid ""
 "You must first <a href=\"%s\">log in</a>, and then you can create a new site."
 msgstr ""
 "Vous devez d&rsquo;abord <a href=\"%s\">vous connecter</a> avant de pouvoir "
 "créer un nouveau site."
 
-#: wp-signup.php:406
+#: wp-signup.php:402
 msgid "User registration has been disabled."
 msgstr "Les inscriptions d&rsquo;utilisateurs sont désactivées."
 
-#: wp-signup.php:412
+#: wp-signup.php:408
 msgid "Site registration has been disabled."
 msgstr "Les inscriptions de sites sont désactivées."
 
-#: wp-signup.php:426
+#: wp-signup.php:422
 msgid "Sorry, new registrations are not allowed at this time."
 msgstr ""
 "Désolé, il n&rsquo;est pas possible de s&rsquo;enregistrer à l&rsquo;heure "
 "actuelle."
 
-#: wp-signup.php:428
+#: wp-signup.php:424
 msgid "You are logged in already. No need to register again!"
 msgstr "Vous êtes déjà connecté. Pas besoin de vous réinscrire&nbsp;!"
 
-#: wp-signup.php:434
+#: wp-signup.php:430
 msgid ""
 "<p><em>The site you were looking for, <strong>%s</strong> does not exist, "
 "but you can create it now!</em></p>"
@@ -8511,7 +8698,7 @@
 "<p><em>Le site que vous cherchez (<strong>%s</strong>) n&rsquo;existe pas, "
 "mais vous pouvez le créer immédiatement&nbsp;!</em></p>"
 
-#: wp-signup.php:436
+#: wp-signup.php:432
 msgid ""
 "<p><em>The site you were looking for, <strong>%s</strong>, does not exist.</"
 "em></p>"
@@ -8519,6 +8706,286 @@
 "<p><em>Le site que vous cherchez (<strong>%s</strong>) n&rsquo;existe pas.</"
 "em></p>"
 
+#~ msgctxt "Gallery order"
+#~ msgid "Random"
+#~ msgstr "Au hasard"
+
+#~ msgid "From URL"
+#~ msgstr "Depuis l&rsquo;adresse web"
+
+#~ msgid "Featured Image"
+#~ msgstr "Image à la Une"
+
+#~ msgid "Add images"
+#~ msgstr "Ajouter des images"
+
+#~ msgid "Select files"
+#~ msgstr "Sélectionner des fichiers"
+
+#~ msgid "Upload more files"
+#~ msgstr "Envoyer plus de fichiers"
+
+#~ msgid "Continue editing"
+#~ msgstr "Continuer la modification"
+
+#~ msgid "Clear selection"
+#~ msgstr "Effacer la sélection"
+
+#~ msgid "Sorry, this user cannot edit the template."
+#~ msgstr "Désolé, cet utilisateur ne peut pas modifier le modèle."
+
+#~ msgid ""
+#~ "Either the file is not writable, or something wrong happened. The file "
+#~ "has not been updated."
+#~ msgstr ""
+#~ "Soit le fichier n&rsquo;est pas accessible en écriture, soit une erreur "
+#~ "est survenue. Le fichier n&rsquo;a pas été mis à jour."
+
+#~ msgid "Embed From URL"
+#~ msgstr "Insérer depuis une adresse Web"
+
+#~ msgid "Insert embed"
+#~ msgstr "Insérer le fichier"
+
+#~ msgid "Batch insert"
+#~ msgstr "Insertion multiple"
+
+#~ msgid "&#8592; Cancel Batch"
+#~ msgstr "&#8592; Annuler le lot"
+
+#~ msgid "Edit Batch"
+#~ msgstr "Modifier le lot"
+
+#~ msgid "Add to batch"
+#~ msgstr "Ajouter au lot"
+
+#~ msgid "Blavatar"
+#~ msgstr "Blavatar"
+
+#~ msgid "An error has occurred; the feed is probably down. Try again later."
+#~ msgstr ""
+#~ "Une erreur est survenue&nbsp;; le flux est probablement indisponible. "
+#~ "Veuillez réessayer plus tard."
+
+#~ msgid "Full Screen"
+#~ msgstr "Plein écran"
+
+#~ msgid "Drop a file here"
+#~ msgstr "Déposez un fichier ici"
+
+#~ msgctxt "Uploader: Drop a file here - or - Select a File"
+#~ msgid "or"
+#~ msgstr "ou"
+
+#~ msgid "Select a File"
+#~ msgstr "Sélectionnez un fichier"
+
+#~ msgctxt "Uploader: Drop files here - or - Select Files"
+#~ msgid "or"
+#~ msgstr "ou"
+
+#~ msgid "Success"
+#~ msgstr "Validé"
+
+#~ msgid "Error establishing database connection"
+#~ msgstr "Erreur lors de la connexion à la base de données"
+
+#~ msgid "Select a media file:"
+#~ msgstr "Sélectionner un fichier média :"
+
+#~ msgid "Select one or more media files:"
+#~ msgstr "Sélectionnez au moins un fichier média :"
+
+#~ msgid "Add images from media library"
+#~ msgstr "Ajouter des images à la bibliothèque de médias"
+
+#~ msgid ""
+#~ "AtomPub services are disabled on this site. An admin user can enable them "
+#~ "at %s"
+#~ msgstr ""
+#~ "Les services AtomPub sont désactivés sur ce site. Un administrateur peut "
+#~ "les activer à %s"
+
+#~ msgid "Sorry, you do not have the right to access this site."
+#~ msgstr ""
+#~ "Désolé, vous n&rsquo;avez pas l&rsquo;autorisation d&rsquo;accéder à ce "
+#~ "site."
+
+#~ msgid "Sorry, you do not have the right to edit/publish new posts."
+#~ msgstr ""
+#~ "Désolé, vous n&rsquo;avez pas l&rsquo;autorisation de modifier/publier de "
+#~ "nouveaux articles."
+
+#~ msgid "Sorry, you do not have the right to access this post."
+#~ msgstr ""
+#~ "Désolé, vous n&rsquo;avez pas l&rsquo;autorisation d&rsquo;accéder à cet "
+#~ "article."
+
+#~ msgid "Error occurred while accessing post metadata for file location."
+#~ msgstr ""
+#~ "Une erreur est survenue pendant l&rsquo;accès aux métadonnées de l&rsquo;"
+#~ "article concernant la localisation du fichier."
+
+#~ msgid "HTML"
+#~ msgstr "HTML"
+
+#~ msgid "Bad login/pass combination."
+#~ msgstr "Mauvaise combinaison identifiant/mot de passe."
+
+#~ msgid "You are not allowed to post as this user"
+#~ msgstr ""
+#~ "Vous n&rsquo;avez pas l&rsquo;autorisation de publier sous cet "
+#~ "identifiant."
+
+#~ msgid "Comments for %s searching on %s"
+#~ msgstr "Commentaires pour %s, recherche de %s"
+
+#~ msgctxt "opening curly quote"
+#~ msgid "&#8220;"
+#~ msgstr "&#8220;"
+
+#~ msgid "Your attempt to edit this attachment: &#8220;%s&#8221; has failed."
+#~ msgstr "Votre tentative de modification du fichier attaché « %s » a échoué."
+
+#~ msgid "Your attempt to add this category has failed."
+#~ msgstr "Votre tentative d&rsquo;ajout de la catégorie a échoué."
+
+#~ msgid "Your attempt to delete this category: &#8220;%s&#8221; has failed."
+#~ msgstr "Votre tentative de suppression de la catégorie « %s » a échoué."
+
+#~ msgid "Your attempt to edit this category: &#8220;%s&#8221; has failed."
+#~ msgstr "Votre tentative de modification de la catégorie « %s » a échoué."
+
+#~ msgid "Your attempt to delete this comment: &#8220;%s&#8221; has failed."
+#~ msgstr "Votre tentative de suppression du commentaire « %s » a échoué."
+
+#~ msgid "Your attempt to unapprove this comment: &#8220;%s&#8221; has failed."
+#~ msgstr "Votre tentative de désapprobation du commentaire « %s » a échoué."
+
+#~ msgid "Your attempt to approve this comment: &#8220;%s&#8221; has failed."
+#~ msgstr "Votre tentative d&rsquo;approbation du commentaire « %s » a échoué."
+
+#~ msgid "Your attempt to edit this comment: &#8220;%s&#8221; has failed."
+#~ msgstr "Votre tentative de modification du commentaire « %s » a échoué."
+
+#~ msgid "Your attempt to bulk modify comments has failed."
+#~ msgstr "Votre tentative de modification des commentaires a échoué."
+
+#~ msgid "Your attempt to moderate comments has failed."
+#~ msgstr "Votre tentative de modération des commentaires a échoué."
+
+#~ msgid "Your attempt to add this link has failed."
+#~ msgstr "Votre tentative pour ajouter ce lien a échoué."
+
+#~ msgid "Your attempt to delete this link: &#8220;%s&#8221; has failed."
+#~ msgstr "Votre tentative de suppression du lien « %s » a échoué."
+
+#~ msgid "Your attempt to edit this link: &#8220;%s&#8221; has failed."
+#~ msgstr "Votre tentative de modification du lien « %s » a échoué."
+
+#~ msgid "Your attempt to bulk modify links has failed."
+#~ msgstr "Votre tentative de modification des liens a échoué."
+
+#~ msgid "Your attempt to add this page has failed."
+#~ msgstr "Votre tentative pour ajouter cette page a échoué."
+
+#~ msgid "Your attempt to delete this page: &#8220;%s&#8221; has failed."
+#~ msgstr "Votre tentative de suppression de la page « %s » a échoué."
+
+#~ msgid "Your attempt to edit this page: &#8220;%s&#8221; has failed."
+#~ msgstr "Votre tentative de modification de la page « %s » a échoué."
+
+#~ msgid "Your attempt to edit this plugin file: &#8220;%s&#8221; has failed."
+#~ msgstr ""
+#~ "Votre tentative de modification du fichier de l&rsquo;extension « %s » a "
+#~ "échoué."
+
+#~ msgid "Your attempt to activate this plugin: &#8220;%s&#8221; has failed."
+#~ msgstr ""
+#~ "Votre tentative de modification d&rsquo;activation de l&rsquo;extension « "
+#~ "%s » a échoué."
+
+#~ msgid "Your attempt to deactivate this plugin: &#8220;%s&#8221; has failed."
+#~ msgstr ""
+#~ "Votre tentative de modification de désactivation de l&rsquo;extension « "
+#~ "%s » a échoué."
+
+#~ msgid "Your attempt to update this plugin: &#8220;%s&#8221; has failed."
+#~ msgstr ""
+#~ "Votre tentative de mise à jour de l&rsquo;extension « %s » a échoué."
+
+#~ msgid "Your attempt to add this post has failed."
+#~ msgstr "Votre tentative d&rsquo;ajout d&rsquo;un article a échoué."
+
+#~ msgid "Your attempt to delete this post: &#8220;%s&#8221; has failed."
+#~ msgstr "Votre tentative de suppression de l&rsquo;article « %s » a échoué."
+
+#~ msgid "Your attempt to edit this post: &#8220;%s&#8221; has failed."
+#~ msgstr "Votre tentative de modification de l&rsquo;article « %s » a échoué."
+
+#~ msgid "Your attempt to add this user has failed."
+#~ msgstr "Votre tentative pour ajouter cet utilisateur a échoué."
+
+#~ msgid "Your attempt to delete users has failed."
+#~ msgstr "Votre tentative de suppression des utilisateurs a échoué."
+
+#~ msgid "Your attempt to bulk modify users has failed."
+#~ msgstr "Votre tentative de modification des utilisateurs a échoué."
+
+#~ msgid "Your attempt to edit this user: &#8220;%s&#8221; has failed."
+#~ msgstr ""
+#~ "Votre tentative de modification de l&rsquo;utilisateur « %s » a échoué."
+
+#~ msgid "Your attempt to modify the profile for: &#8220;%s&#8221; has failed."
+#~ msgstr "Votre tentative de modification du profil de « %s » a échoué."
+
+#~ msgid "Your attempt to edit your settings has failed."
+#~ msgstr "Votre tentative de modification de vos réglages a échoué."
+
+#~ msgid "Your attempt to change your permalink structure to: %s has failed."
+#~ msgstr ""
+#~ "Votre tentative de modification de la structure des permaliens en %s a "
+#~ "échoué."
+
+#~ msgid "Your attempt to edit this file: &#8220;%s&#8221; has failed."
+#~ msgstr "Votre tentative d&rsquo;édition du fichier « %s » a échoué."
+
+#~ msgid "Your attempt to edit this theme file: &#8220;%s&#8221; has failed."
+#~ msgstr ""
+#~ "Votre tentative de modification du fichier du thème « %s » a échoué."
+
+#~ msgid "Your attempt to switch to this theme: &#8220;%s&#8221; has failed."
+#~ msgstr "Votre tentative de modification du thème « %s » a échoué."
+
+#~ msgid "Switch to HTML mode"
+#~ msgstr "Passer au mode HTML"
+
+#~ msgid "Resize path invalid"
+#~ msgstr "Le chemin de recadrage est invalide"
+
+#~ msgid "Only lowercase letters and numbers allowed."
+#~ msgstr "Seuls les lettres minuscules et chiffres sont autorisés."
+
+#~ msgid "Site already exists."
+#~ msgstr "Ce site existe déjà."
+
+#~ msgid ""
+#~ "Sorry, you have used your space allocation. Please delete some files to "
+#~ "upload more files."
+#~ msgstr ""
+#~ "Désolé, vous avez utilisé l&rsquo;intégralité de votre espace disque. "
+#~ "Merci d&rsquo;effacer quelques fichiers avant d&rsquo;en envoyer d&rsquo;"
+#~ "autres."
+
+#~ msgid "Please try again!"
+#~ msgstr "Merci de réessayer&nbsp;!"
+
+#~ msgid "This username is already registered."
+#~ msgstr "Cet identifiant est déjà enregistré."
+
+#~ msgid "This email address is already registered."
+#~ msgstr "Cette adresse de messagerie est déjà enregistrée."
+
 #~ msgid "Settings saved and theme activated. <a href=\"%s\">Visit site</a>."
 #~ msgstr ""
 #~ "Réglages enregistrés et thème activé. <a href=\"%s\">Voir le site</a>."
@@ -8550,9 +9017,6 @@
 #~ msgid "&larr; Return to %s"
 #~ msgstr "&larr; Retourner sur %s"
 
-#~ msgid "Manage Themes"
-#~ msgstr "Gérer les thèmes"
-
 #~ msgid "You are previewing"
 #~ msgstr "Vous êtes en train de prévisualiser"
 
Binary file web/wp-content/languages/themes/twentyeleven-fr_FR.mo has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-content/languages/themes/twentyeleven-fr_FR.po	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,780 @@
+# Copyright (C) 2010 Twenty Eleven
+# This file is distributed under the same license as the Twenty Eleven package.
+msgid ""
+msgstr ""
+"Project-Id-Version: Twenty Eleven 1.5 (WordPress 3.5)\n"
+"Report-Msgid-Bugs-To: http://wordpress.org/tags/twentyeleven\n"
+"POT-Creation-Date: 2012-12-07 21:19:12+00:00\n"
+"PO-Revision-Date: 2012-12-10 20:22+0100\n"
+"Last-Translator: WordPress Francophone <traduction_at_wordpress-fr.net>\n"
+"Language-Team: WordPress-Francophone <traduction@wordpress-fr.net>\n"
+"Language: fr_FR\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=n>1;\n"
+"X-Poedit-SourceCharset: UTF-8\n"
+"X-Generator: Poedit 1.5.4\n"
+
+#: 404.php:17
+msgid "This is somewhat embarrassing, isn&rsquo;t it?"
+msgstr "C&rsquo;est plutôt gênant, vous ne trouvez pas&nbsp;?"
+
+#: 404.php:21
+msgid ""
+"It seems we can&rsquo;t find what you&rsquo;re looking for. Perhaps "
+"searching, or one of the links below, can help."
+msgstr ""
+"Il semblerait que nous ne soyons pas en mesure de trouver votre contenu. "
+"Essayez en lançant une recherche, ou à l&rsquo;aide de l&rsquo;un des lien "
+"ci-dessous."
+
+#: 404.php:28
+msgid "Most Used Categories"
+msgstr "Catégories les plus utilisées"
+
+#. translators: %1$s: smilie
+#: 404.php:36
+msgid "Try looking in the monthly archives. %1$s"
+msgstr "Essayez de voir du côté des archives mensuelles. %1$s"
+
+#: archive.php:25
+msgid "Daily Archives: %s"
+msgstr "Archives quotidiennes&nbsp;:"
+
+#: archive.php:27
+msgid "Monthly Archives: %s"
+msgstr "Archives mensuelles&nbsp;: %s"
+
+#: archive.php:27
+msgctxt "monthly archives date format"
+msgid "F Y"
+msgstr "F Y"
+
+#: archive.php:29
+msgid "Yearly Archives: %s"
+msgstr "Archives annuelles&nbsp;: %s"
+
+#: archive.php:29
+msgctxt "yearly archives date format"
+msgid "Y"
+msgstr "Y"
+
+#: archive.php:31
+msgid "Blog Archives"
+msgstr "Archives du blog"
+
+#: archive.php:57 author.php:74 category.php:50 index.php:37 search.php:42
+#: tag.php:50
+msgid "Nothing Found"
+msgstr "Rien n&rsquo;a été trouvé"
+
+#: archive.php:61 author.php:78 category.php:54 index.php:41 tag.php:54
+msgid ""
+"Apologies, but no results were found for the requested archive. Perhaps "
+"searching will help find a related post."
+msgstr ""
+"Toutes nos excuses, mais votre requête pour cette archive n&rsquo;a donné "
+"aucun résultat. Peut-être aurez-vous plus de chance en lançant une "
+"recherche..."
+
+#: author.php:28
+msgid "Author Archives: %s"
+msgstr "Archives de l&rsquo;auteur&nbsp;: %s"
+
+#: author.php:49 content-single.php:60
+msgid "About %s"
+msgstr "A propos %s"
+
+#: category.php:19
+msgid "Category Archives: %s"
+msgstr "Archives pour la catégorie %s"
+
+#: comments.php:17
+msgid ""
+"This post is password protected. Enter the password to view any comments."
+msgstr ""
+"Cet article est protégé par un mot de passe. Veuillez le saisir pour pouvoir "
+"lire ses commentaires."
+
+#: comments.php:33
+msgid "One thought on &ldquo;%2$s&rdquo;"
+msgid_plural "%1$s thoughts on &ldquo;%2$s&rdquo;"
+msgstr[0] "Une réflexion au sujet de &laquo;&nbsp;%2$s&nbsp;&raquo;"
+msgstr[1] "%1$s réflexions au sujet de &laquo;&nbsp;%2$s&nbsp;&raquo;"
+
+#: comments.php:40 comments.php:60
+msgid "Comment navigation"
+msgstr "Navigation des commentaires"
+
+#: comments.php:41 comments.php:61
+msgid "&larr; Older Comments"
+msgstr "&larr; Commentaire plus ancien"
+
+#: comments.php:42 comments.php:62
+msgid "Newer Comments &rarr;"
+msgstr "Commentaires plus récents &rarr;"
+
+#: comments.php:71
+msgid "Comments are closed."
+msgstr "Les commentaires sont fermés."
+
+#: content-aside.php:16 content-featured.php:14 content-gallery.php:16
+#: content-gallery.php:48 content-image.php:15 content-link.php:16
+#: content-quote.php:14 content-status.php:15 content.php:15 content.php:19
+#: inc/widgets.php:89 showcase.php:120 showcase.php:199
+msgid "Permalink to %s"
+msgstr "Permalien vers %s"
+
+#: content-aside.php:17
+msgid "Aside"
+msgstr "En passant"
+
+#: content-aside.php:22 content-image.php:21 content-link.php:22
+#: content-quote.php:24 content-status.php:21 content.php:30
+msgid "Reply"
+msgstr "Répondre"
+
+#: content-aside.php:22 content-image.php:21 content-link.php:22
+#: content-quote.php:24 content-status.php:21 content.php:30
+msgctxt "comments number"
+msgid "1"
+msgstr "1"
+
+#: content-aside.php:22 content-image.php:21 content-link.php:22
+#: content-quote.php:24 content-status.php:21 content.php:30
+msgctxt "comments number"
+msgid "%"
+msgstr "%"
+
+#: content-aside.php:33 content-gallery.php:32 content-image.php:27
+#: content-link.php:33 content-quote.php:35 content-status.php:34
+#: content.php:41 functions.php:345
+msgid "Continue reading <span class=\"meta-nav\">&rarr;</span>"
+msgstr "Lire la suite <span class=\"meta-nav\">&rarr;</span>"
+
+#: content-aside.php:34 content-featured.php:23 content-gallery.php:54
+#: content-image.php:28 content-intro.php:18 content-link.php:34
+#: content-page.php:18 content-quote.php:36 content-single.php:24
+#: content-status.php:35 content.php:42 image.php:90
+msgid "Pages:"
+msgstr "Pages&nbsp;:"
+
+#: content-aside.php:42 content-gallery.php:87 content-image.php:64
+#: content-link.php:42 content-quote.php:69 content-status.php:43
+#: content.php:79 showcase.php:201
+msgid "Leave a reply"
+msgstr "Laisser une réponse"
+
+#: content-aside.php:42 content-gallery.php:87 content-image.php:64
+#: content-link.php:42 content-quote.php:69 content-status.php:43
+#: content.php:79 showcase.php:201
+msgid "<b>1</b> Reply"
+msgstr "<b>Une</b> réponse"
+
+#: content-aside.php:42 content-gallery.php:87 content-image.php:64
+#: content-link.php:42 content-quote.php:69 content-status.php:43
+#: content.php:79 showcase.php:201
+msgid "<b>%</b> Replies"
+msgstr "<b>%</b> Réponses"
+
+#: content-aside.php:44 content-featured.php:45 content-gallery.php:90
+#: content-image.php:68 content-intro.php:19 content-link.php:44
+#: content-page.php:21 content-quote.php:72 content-single.php:52
+#: content-status.php:45 content.php:82 functions.php:525 functions.php:553
+#: image.php:41
+msgid "Edit"
+msgstr "Modifier"
+
+#. translators: used between list items, there is a space after the comma
+#: content-featured.php:29 content-featured.php:38 content-gallery.php:62
+#: content-gallery.php:72 content-image.php:47 content-image.php:56
+#: content-quote.php:44 content-quote.php:54 content-single.php:30
+#: content-single.php:33 content.php:51 content.php:63
+msgid ", "
+msgstr ", "
+
+#: content-featured.php:31
+msgid ""
+"This entry was posted in %1$s and tagged %2$s. Bookmark the <a href=\"%3$s\" "
+"title=\"Permalink to %4$s\" rel=\"bookmark\">permalink</a>."
+msgstr ""
+"Ce contenu a été publié dans %1$s, et marqué avec %2$s. Mettez-le en favori "
+"avec son <a href=\"%3$s\" title=\"Permalien vers %4$s\" rel=\"bookmark"
+"\">permalien</a>."
+
+#: content-featured.php:33
+msgid ""
+"This entry was posted in %1$s. Bookmark the <a href=\"%3$s\" title="
+"\"Permalink to %4$s\" rel=\"bookmark\">permalink</a>."
+msgstr ""
+"Ce contenu a été publié dans %1$s. Mettez-le en favori avec son <a href="
+"\"%3$s\" title=\"Permalien vers %4$s\" rel=\"bookmark\">permalien</a>."
+
+#: content-gallery.php:17
+msgid "Gallery"
+msgstr "Galerie"
+
+#: content-gallery.php:47
+msgid "This gallery contains <a %1$s>%2$s photo</a>."
+msgid_plural "This gallery contains <a %1$s>%2$s photos</a>."
+msgstr[0] "Cette galerie contient <a %1$s>%2$s photo</a>."
+msgstr[1] "Cette galerie contient <a %1$s>%2$s photos</a>."
+
+#: content-gallery.php:66 content-image.php:51 content-quote.php:48
+#: content.php:55
+msgid "<span class=\"%1$s\">Posted in</span> %2$s"
+msgstr "<span class=\"%1$s\">Publié dans</span> %2$s"
+
+#: content-gallery.php:78 content-image.php:59 content-quote.php:60
+#: content.php:69
+msgid "<span class=\"%1$s\">Tagged</span> %2$s"
+msgstr "<span class=\"%1$s\">Mots-clefs&nbsp;:</span> %2$s"
+
+#: content-image.php:16
+msgid "Image"
+msgstr "Image"
+
+#: content-image.php:34
+msgid ""
+"<a href=\"%1$s\" rel=\"bookmark\"><time class=\"entry-date\" datetime=\"%2$s"
+"\">%3$s</time></a><span class=\"by-author\"> <span class=\"sep\"> by </span> "
+"<span class=\"author vcard\"><a class=\"url fn n\" href=\"%4$s\" title=\"%5$s"
+"\" rel=\"author\">%6$s</a></span></span>"
+msgstr ""
+"<a href=\"%1$s\" rel=\"bookmark\"><time class=\"entry-date\" datetime=\"%2$s"
+"\">%3$s</time></a><span class=\"by-author\"> <span class=\"sep\"> par </"
+"span> <span class=\"author vcard\"><a class=\"url fn n\" href=\"%4$s\" title="
+"\"%5$s\" rel=\"author\">%6$s</a></span></span>"
+
+#: content-image.php:39 functions.php:590
+msgid "View all posts by %s"
+msgstr "Afficher tous les articles par %s"
+
+#: content-link.php:17
+msgid "Link"
+msgstr "Lien"
+
+#: content-quote.php:15
+msgid "Quote"
+msgstr "Citation"
+
+#: content-single.php:35
+msgid ""
+"This entry was posted in %1$s and tagged %2$s by <a href=\"%6$s\">%5$s</a>. "
+"Bookmark the <a href=\"%3$s\" title=\"Permalink to %4$s\" rel=\"bookmark"
+"\">permalink</a>."
+msgstr ""
+"Ce contenu a été publié dans %1$s par <a href=\"%6$s\">%5$s</a>, et marqué "
+"avec %2$s. Mettez-le en favori avec son <a href=\"%3$s\" title=\"Permalien "
+"vers %4$s\" rel=\"bookmark\">permalien</a>."
+
+#: content-single.php:37
+msgid ""
+"This entry was posted in %1$s by <a href=\"%6$s\">%5$s</a>. Bookmark the <a "
+"href=\"%3$s\" title=\"Permalink to %4$s\" rel=\"bookmark\">permalink</a>."
+msgstr ""
+"Ce contenu a été publié dans %1$s par <a href=\"%6$s\">%5$s</a>. Mettez-le "
+"en favori avec son <a href=\"%3$s\" title=\"Permalien vers %4$s\" rel="
+"\"bookmark\">permalien</a>."
+
+#: content-single.php:39
+msgid ""
+"This entry was posted by <a href=\"%6$s\">%5$s</a>. Bookmark the <a href="
+"\"%3$s\" title=\"Permalink to %4$s\" rel=\"bookmark\">permalink</a>."
+msgstr ""
+"Ce contenu a été publié par <a href=\"%6$s\">%5$s</a>. Mettez-le en favori "
+"avec son <a href=\"%3$s\" title=\"Permalien vers %4$s\" rel=\"bookmark"
+"\">permalien</a>."
+
+#: content-single.php:64
+msgid "View all posts by %s <span class=\"meta-nav\">&rarr;</span>"
+msgstr ""
+"Afficher tous les articles de %s <span class=\"meta-nav\">&rarr;</span>"
+
+#: content-status.php:16
+msgid "Status"
+msgstr "Humeur du moment"
+
+#: content.php:16
+msgid "Featured"
+msgstr "Mis en avant"
+
+#. #-#-#-#-#  twentyeleven.pot (Twenty Eleven 1.5)  #-#-#-#-#
+#. Author URI of the plugin/theme
+#: footer.php:27
+msgid "http://wordpress.org/"
+msgstr "http://wordpress.org/"
+
+#: footer.php:27
+msgid "Semantic Personal Publishing Platform"
+msgstr "Plate-forme de publication personnelle à la pointe de la sémantique"
+
+#: footer.php:27
+msgid "Proudly powered by %s"
+msgstr "Fièrement propulsé par %s"
+
+#: functions.php:95
+msgid "Primary Menu"
+msgstr "Menu principal"
+
+#. translators: header image description
+#: functions.php:164
+msgid "Wheel"
+msgstr "Roue"
+
+#. translators: header image description
+#: functions.php:170
+msgid "Shore"
+msgstr "Rivage"
+
+#. translators: header image description
+#: functions.php:176
+msgid "Trolley"
+msgstr "Tramway"
+
+#. translators: header image description
+#: functions.php:182
+msgid "Pine Cone"
+msgstr "Pomme de pin"
+
+#. translators: header image description
+#: functions.php:188
+msgid "Chessboard"
+msgstr "Damier"
+
+#. translators: header image description
+#: functions.php:194
+msgid "Lanterns"
+msgstr "Lanternes"
+
+#. translators: header image description
+#: functions.php:200
+msgid "Willow"
+msgstr "Saule"
+
+#. translators: header image description
+#: functions.php:206
+msgid "Hanoi Plant"
+msgstr "Plante de Hanoï"
+
+#: functions.php:394
+msgid "Main Sidebar"
+msgstr "Colonne principale"
+
+#: functions.php:403
+msgid "Showcase Sidebar"
+msgstr "Colonne latérale de la vitrine"
+
+#: functions.php:405
+msgid "The sidebar for the optional Showcase Template"
+msgstr "La colonne latérale pour le modèle factultatif de vitrine"
+
+#: functions.php:413
+msgid "Footer Area One"
+msgstr "Zone 1 du pied de page"
+
+#: functions.php:415 functions.php:425 functions.php:435
+msgid "An optional widget area for your site footer"
+msgstr "Une zone facultative de widgets pour le pied de page de votre site"
+
+#: functions.php:423
+msgid "Footer Area Two"
+msgstr "Zone 2 du pied de page"
+
+#: functions.php:433
+msgid "Footer Area Three"
+msgstr "Zone 3 du pied de page"
+
+#: functions.php:453 single.php:18
+msgid "Post navigation"
+msgstr "Navigation des articles"
+
+#: functions.php:454
+msgid "<span class=\"meta-nav\">&larr;</span> Older posts"
+msgstr "<span class=\"meta-nav\">&larr;</span> Articles plus anciens"
+
+#: functions.php:455
+msgid "Newer posts <span class=\"meta-nav\">&rarr;</span>"
+msgstr "Articles plus récents <span class=\"meta-nav\">&rarr;</span>"
+
+#: functions.php:525
+msgid "Pingback:"
+msgstr "Ping&nbsp;:"
+
+#. translators: 1: comment author, 2: date and time
+#: functions.php:542
+msgid "%1$s on %2$s <span class=\"says\">said:</span>"
+msgstr "Le %2$s, %1$s <span class=\"says\">a dit&nbsp;:</span>"
+
+#. translators: 1: date, 2: time
+#: functions.php:548
+msgid "%1$s at %2$s"
+msgstr "%1$s à %2$s"
+
+#: functions.php:557
+msgid "Your comment is awaiting moderation."
+msgstr "Votre commentaire est en attente de validation."
+
+#: functions.php:566
+msgid "Reply <span>&darr;</span>"
+msgstr "Répondre <span>&darr;</span>"
+
+#: functions.php:584
+msgid ""
+"<span class=\"sep\">Posted on </span><a href=\"%1$s\" title=\"%2$s\" rel="
+"\"bookmark\"><time class=\"entry-date\" datetime=\"%3$s\">%4$s</time></"
+"a><span class=\"by-author\"> <span class=\"sep\"> by </span> <span class="
+"\"author vcard\"><a class=\"url fn n\" href=\"%5$s\" title=\"%6$s\" rel="
+"\"author\">%7$s</a></span></span>"
+msgstr ""
+"<span class=\"sep\">Publié le </span><a href=\"%1$s\" title=\"%2$s\" rel="
+"\"bookmark\"><time class=\"entry-date\" datetime=\"%3$s\">%4$s</time></"
+"a><span class=\"by-author\"> <span class=\"sep\"> par </span> <span class="
+"\"author vcard\"><a class=\"url fn n\" href=\"%5$s\" title=\"%6$s\" rel="
+"\"author\">%7$s</a></span></span>"
+
+#: header.php:45
+msgid "Page %s"
+msgstr "Page %s"
+
+#: header.php:129
+msgid "Main menu"
+msgstr "Menu principal"
+
+#: header.php:131
+msgid "Skip to primary content"
+msgstr "Aller au contenu principal"
+
+#: header.php:132
+msgid "Skip to secondary content"
+msgstr "Aller au contenu secondaire"
+
+#: image.php:18
+msgid "Image navigation"
+msgstr "Navigation des images"
+
+#: image.php:19
+msgid "&larr; Previous"
+msgstr "&larr; Précédent"
+
+#: image.php:20
+msgid "Next &rarr;"
+msgstr "Suivant &rarr;"
+
+#: image.php:30
+msgid ""
+"<span class=\"meta-prep meta-prep-entry-date\">Published </span> <span class="
+"\"entry-date\"><abbr class=\"published\" title=\"%1$s\">%2$s</abbr></span> "
+"at <a href=\"%3$s\" title=\"Link to full-size image\">%4$s &times; %5$s</a> "
+"in <a href=\"%6$s\" title=\"Return to %7$s\" rel=\"gallery\">%8$s</a>"
+msgstr ""
+"<span class=\"meta-prep meta-prep-entry-date\">Publié le </span> <span class="
+"\"entry-date\"><abbr class=\"published\" title=\"%1$s\">%2$s</abbr></span> à "
+"<a href=\"%3$s\" title=\"Lien vers l'image en taille originale\">%4$s "
+"&times; %5$s</a> dans <a href=\"%6$s\" title=\"Revenir à %7$s\" rel=\"gallery"
+"\">%8$s</a>"
+
+#: inc/theme-options.php:55 inc/theme-options.php:474
+msgid "Color Scheme"
+msgstr "Jeu de couleurs"
+
+#: inc/theme-options.php:61 inc/theme-options.php:491
+msgid "Link Color"
+msgstr "Couleur des liens"
+
+#: inc/theme-options.php:62
+msgid "Default Layout"
+msgstr "Mise en page par défaut"
+
+#: inc/theme-options.php:94 inc/theme-options.php:95
+msgid "Theme Options"
+msgstr "Options du thème"
+
+#: inc/theme-options.php:110
+msgid ""
+"Some themes provide customization options that are grouped together on a "
+"Theme Options screen. If you change themes, options may change or disappear, "
+"as they are theme-specific. Your current theme, Twenty Eleven, provides the "
+"following Theme Options:"
+msgstr ""
+"Certains thèmes proposent des options de personnalisation, regroupées sur "
+"l&rsquo;écran &laquo;&nbsp;Options du thème"
+
+#: inc/theme-options.php:112
+msgid ""
+"<strong>Color Scheme</strong>: You can choose a color palette of \"Light"
+"\" (light background with dark text) or \"Dark\" (dark background with light "
+"text) for your site."
+msgstr ""
+"<strong>Jeu de couleurs</strong>&nbsp;: vous pouvez choisir comme palette de "
+"couleurs pour votre site &laquo;&nbsp;Clair&nbsp;&raquo; (fond clair et "
+"texte foncé), ou  &laquo;&nbsp;Foncé&nbsp;&raquo; (fond foncé et texte "
+"clair)."
+
+#: inc/theme-options.php:113
+msgid ""
+"<strong>Link Color</strong>: You can choose the color used for text links on "
+"your site. You can enter the HTML color or hex code, or you can choose "
+"visually by clicking the \"Select a Color\" button to pick from a color "
+"wheel."
+msgstr ""
+"<strong>Couleur des liens</strongs>&nbsp;: vous pouvez choisir la couleur "
+"des liens textuels de votre site. Saisissez le code couleur (code HTML ou "
+"hexadécimal), ou choisissez-la avec le sélecteur de couleur, en cliquant sur "
+"&laquo;&nbsp;Choisir une couleur&nbsp;&raquo;."
+
+#: inc/theme-options.php:114
+msgid ""
+"<strong>Default Layout</strong>: You can choose if you want your site&#8217;"
+"s default layout to have a sidebar on the left, the right, or not at all."
+msgstr ""
+"<strong>Mise en page par défaut</strong>&nbsp;: si vous le souhaitez, votre "
+"site peut afficher sa barre latérale sur le côté droit, le côté gauche, ou "
+"ne pas l&rsquo;afficher du tout."
+
+#: inc/theme-options.php:116
+msgid ""
+"Remember to click \"Save Changes\" to save any changes you have made to the "
+"theme options."
+msgstr ""
+"N&rsquo;oubliez pas de cliquer sur &laquo;&nbsp;Enregistrer les "
+"modifications&nbsp;&raquo; pour conserver toutes les modifications apportées "
+"aux options du thème"
+
+#: inc/theme-options.php:118
+msgid "For more information:"
+msgstr "Pour plus d&rsquo;information&nbsp;:"
+
+#: inc/theme-options.php:119
+msgid ""
+"<a href=\"http://codex.wordpress.org/Appearance_Theme_Options_Screen\" "
+"target=\"_blank\">Documentation on Theme Options</a>"
+msgstr ""
+"<a href=\"http://codex.wordpress.org/Appearance_Theme_Options_Screen\" "
+"target=\"_blank\">Documentation sur les options du thème (en)</a>"
+
+#: inc/theme-options.php:120
+msgid ""
+"<a href=\"http://wordpress.org/support/\" target=\"_blank\">Support Forums</"
+"a>"
+msgstr ""
+"<a href=\"http://www.wordpress-fr.net/support/\" target=\"_blank\">Forums "
+"d&rsquo;entraide en français</a>"
+
+#: inc/theme-options.php:127
+msgid "Overview"
+msgstr "Vue d'ensemble"
+
+#: inc/theme-options.php:149
+msgid "Light"
+msgstr "Clair"
+
+#: inc/theme-options.php:155
+msgid "Dark"
+msgstr "Foncé"
+
+#: inc/theme-options.php:173
+msgid "Content on left"
+msgstr "Contenu à gauche"
+
+#: inc/theme-options.php:178
+msgid "Content on right"
+msgstr "Contenu à droite"
+
+#: inc/theme-options.php:183
+msgid "One-column, no sidebar"
+msgstr "Une colonne, pas de barre latérale"
+
+#: inc/theme-options.php:273
+msgid "Select a Color"
+msgstr "Choisir une couleur"
+
+#: inc/theme-options.php:276
+msgid "Default color: %s"
+msgstr "Couleur par défaut&nbsp;:"
+
+#: inc/theme-options.php:312
+msgid "%s Theme Options"
+msgstr "Options du thème %s"
+
+#: inc/theme-options.php:498
+msgid "Layout"
+msgstr "Mise en page"
+
+#: inc/widgets.php:19
+msgid ""
+"Use this widget to list your recent Aside, Status, Quote, and Link posts"
+msgstr ""
+"Utiliser ce widget pour lister vos derniers contenus court&nbsp;: en "
+"passant, humeur du moment, citation, liens..."
+
+#: inc/widgets.php:20
+msgid "Twenty Eleven Ephemera"
+msgstr "Contenu éphémère de Twenty Ten"
+
+#: inc/widgets.php:52
+msgid "Ephemera"
+msgstr "Éphémère"
+
+#: inc/widgets.php:91 inc/widgets.php:107
+msgid "0 <span class=\"reply\">comments &rarr;</span>"
+msgstr "Aucun <span class=\"reply\">commentaire &rarr;</span>"
+
+#: inc/widgets.php:91 inc/widgets.php:107
+msgid "1 <span class=\"reply\">comment &rarr;</span>"
+msgstr "Un <span class=\"reply\">commentaire &rarr;</span>"
+
+#: inc/widgets.php:91 inc/widgets.php:107
+msgid "% <span class=\"reply\">comments &rarr;</span>"
+msgstr "% <span class=\"reply\">commentaires &rarr;</span>"
+
+#: inc/widgets.php:105
+msgid "Link to %s"
+msgstr "Lien vers %s"
+
+#: inc/widgets.php:157
+msgid "Title:"
+msgstr "Titre&nbsp;:"
+
+#: inc/widgets.php:160
+msgid "Number of posts to show:"
+msgstr "Nombre d&rsquo;articles à afficher&nbsp;:"
+
+#: search.php:18
+msgid "Search Results for: %s"
+msgstr "Résultats de recherche pour %s"
+
+#: search.php:46
+msgid ""
+"Sorry, but nothing matched your search criteria. Please try again with some "
+"different keywords."
+msgstr ""
+"Désolé, mais rien ne correspond à votre critères de recherche. Veuillez "
+"réessayer avec d&rsquo;autres mots-clefs."
+
+#: searchform.php:11 searchform.php:12 searchform.php:13
+msgid "Search"
+msgstr "Recherche"
+
+#: showcase.php:77
+msgid "Featured Post"
+msgstr "Article mis en avant"
+
+#: showcase.php:150
+msgid "Featuring: %s"
+msgstr "Mise en avant&nbsp;: %s"
+
+#: showcase.php:160
+msgid "Recent Posts"
+msgstr "Articles récents"
+
+#: sidebar.php:19
+msgid "Archives"
+msgstr "Archives"
+
+#: sidebar.php:26
+msgid "Meta"
+msgstr "Méta"
+
+#: single.php:19
+msgid "<span class=\"meta-nav\">&larr;</span> Previous"
+msgstr "<span class=\"meta-nav\">&larr;</span> Précédent"
+
+#: single.php:20
+msgid "Next <span class=\"meta-nav\">&rarr;</span>"
+msgstr "Suivant <span class=\"meta-nav\">&rarr;</span>"
+
+#: tag.php:19
+msgid "Tag Archives: %s"
+msgstr "Archives du mot-clef %s"
+
+#. Theme Name of the plugin/theme
+msgid "Twenty Eleven"
+msgstr "Twenty Eleven"
+
+#. Theme URI of the plugin/theme
+msgid "http://wordpress.org/extend/themes/twentyeleven"
+msgstr "http://wordpress.org/extend/themes/twentyeleven"
+
+#. Description of the plugin/theme
+msgid ""
+"The 2011 theme for WordPress is sophisticated, lightweight, and adaptable. "
+"Make it yours with a custom menu, header image, and background -- then go "
+"further with available theme options for light or dark color scheme, custom "
+"link colors, and three layout choices. Twenty Eleven comes equipped with a "
+"Showcase page template that transforms your front page into a showcase to "
+"show off your best content, widget support galore (sidebar, three footer "
+"areas, and a Showcase page widget area), and a custom \"Ephemera\" widget to "
+"display your Aside, Link, Quote, or Status posts. Included are styles for "
+"print and for the admin editor, support for featured images (as custom "
+"header images on posts and pages and as large images on featured \"sticky\" "
+"posts), and special styles for six different post formats."
+msgstr ""
+"Le thème par défaut de WordPress pour 2011 est sophistiqué, léger et "
+"adaptable. Faites-le vôtre avec un menu personnalisé, une image d&rsquo;en-"
+"tête et de fond - puis aller plus loin avec les options disponibles pour les "
+"couleurs du thèmes (claires ou foncées), celle des liens, et trois choix de "
+"mise en page. Twenty-Elevent est équipé d&rsquo;un modèle de page Vitrine "
+"qui transforme votre page d&rsquo;accueil en une vitrine pour montrer vos "
+"meilleurs contenus, reconnaît de nombreux widgets (colonne latérale, pied de "
+"page à trois zones, et une zone de widget pour la page page vitrine), et un "
+"widget personnalisable Ephémères, pour afficher vos contenus écrits en "
+"passant, vos liens, citations ou humeurs du moment. Sont inclus les styles "
+"pour l&rsquo;impression et pour l&rsquo;éditeur de l&rsquo;administration, "
+"reconnaissance des images mises en avant (comme les images en-tête "
+"personnalisables par article et par page, ou la reprise en grand des images "
+"articles mis en avant), et des styles spéciaux pour six formats différents "
+"d&rsquo;articles."
+
+#. Author of the plugin/theme
+msgid "the WordPress team"
+msgstr "L&rsquo;équipe WordPress"
+
+#. Template Name of the plugin/theme
+msgid "Showcase Template"
+msgstr "Modèle de vitrine"
+
+#. Template Name of the plugin/theme
+msgid "Sidebar Template"
+msgstr "Modèle de colonne latérale"
+
+#~ msgid ""
+#~ "dark, light, white, black, gray, one-column, two-columns, left-sidebar, "
+#~ "right-sidebar, fixed-width, flexible-width, custom-background, custom-"
+#~ "colors, custom-header, custom-menu, editor-style, featured-image-header, "
+#~ "featured-images, full-width-template, microformats, post-formats, rtl-"
+#~ "language-support, sticky-post, theme-options, translation-ready"
+#~ msgstr ""
+#~ "dark, light, white, black, gray, one-column, two-columns, left-sidebar, "
+#~ "right-sidebar, fixed-width, flexible-width, custom-background, custom-"
+#~ "colors, custom-header, custom-menu, editor-style, featured-image-header, "
+#~ "featured-images, full-width-template, microformats, post-formats, rtl-"
+#~ "language-support, sticky-post, theme-options, translation-ready"
+
+#~ msgid "<strong>1</strong> Reply"
+#~ msgstr "<b>Une</b> réponse"
+
+#~ msgid "<strong>%</strong> Replies"
+#~ msgstr "<b>%</b> réponses"
+
+#~ msgid "Leave a Reply"
+#~ msgstr "Laisser une réponse"
+
+#~ msgid "Screen Info"
+#~ msgstr "Information de l&rsquo;écran"
+
+#~ msgid "(Edit)"
+#~ msgstr "(Modifier)"
+
+#~ msgid "[Edit]"
+#~ msgstr "[Modifier]"
+
+#~ msgid "<span class=\"leave-reply\">Reply</span>"
+#~ msgstr "<span class=\"leave-reply\">Répondre</span>"
+
+#~ msgid "<span class=\"leave-reply\">Leave a reply</span>"
+#~ msgstr "<span class=\"leave-reply\">Laisser une réponse</span>"
+
+#~ msgid "<span>Pages:</span>"
+#~ msgstr "<span>Pages&nbsp;:</span>"
Binary file web/wp-content/languages/themes/twentyten-fr_FR.mo has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-content/languages/themes/twentyten-fr_FR.po	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,471 @@
+# kubrick theme pot file.
+# Copyright (C) 2008 WordPress
+# This file is distributed under the same license as the kubrick theme package.
+# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
+#
+msgid ""
+msgstr ""
+"Project-Id-Version: Twenty Ten 1.5 (WordPress 3.5)\n"
+"Report-Msgid-Bugs-To: http://wordpress.org/tags/twentyten\n"
+"POT-Creation-Date: 2012-12-07 21:19:05+00:00\n"
+"PO-Revision-Date: 2012-12-10 20:21+0100\n"
+"Last-Translator: WordPress Francophone <traduction_at_wordpress-fr.net>\n"
+"Language-Team: WordPress Francophone <traduction@wordpress-fr.net>\n"
+"Language: fr_FR\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=n>1;\n"
+"X-Poedit-SourceCharset: UTF-8\n"
+"X-Poedit-KeywordsList: __;_e;_c;_x\n"
+"X-Poedit-Basepath: .\n"
+"X-Generator: Poedit 1.5.4\n"
+"X-Poedit-SearchPath-0: /Users/amaury/Desktop/SVN/WPtrunk/wp-content/themes/"
+"twentyten\n"
+"X-Poedit-SearchPath-1: E:\\wamp\\www\\wordpress-beta\\wp-content\\themes"
+"\\twentyten\n"
+
+#: 404.php:16 loop.php:33
+msgid "Not Found"
+msgstr "Rien de trouvé"
+
+#: 404.php:18
+msgid ""
+"Apologies, but the page you requested could not be found. Perhaps searching "
+"will help."
+msgstr ""
+"Toutes nos excuses, mais la page que vous demandez est introuvable. Essayez "
+"de lancer une recherche."
+
+#: archive.php:33
+msgid "Daily Archives: <span>%s</span>"
+msgstr "Archives quotidiennes&nbsp;: <span>%s</span>"
+
+#: archive.php:35
+msgid "Monthly Archives: <span>%s</span>"
+msgstr "Archives mensuelles&nbsp;: <span>%s</span>"
+
+#: archive.php:35
+msgctxt "monthly archives date format"
+msgid "F Y"
+msgstr "F Y"
+
+#: archive.php:37
+msgid "Yearly Archives: <span>%s</span>"
+msgstr "Archives annuelles&nbsp;: <span>%s</span>"
+
+#: archive.php:37
+msgctxt "yearly archives date format"
+msgid "Y"
+msgstr "Y"
+
+#: archive.php:39
+msgid "Blog Archives"
+msgstr "Archives du blog"
+
+#: author.php:27
+msgid "Author Archives: %s"
+msgstr "Archives de l&rsquo;auteur&nbsp;: %s"
+
+#: author.php:37 loop-single.php:43
+msgid "About %s"
+msgstr "À propos de %s"
+
+#: category.php:16
+msgid "Category Archives: %s"
+msgstr "Archives de catégorie&nbsp;: %s"
+
+#: comments.php:18
+msgid ""
+"This post is password protected. Enter the password to view any comments."
+msgstr ""
+"Cet article est protégé par un mot de passe. Saisissez le mot de passe pour "
+"lire les commentaires."
+
+#: comments.php:35
+msgid "One Response to %2$s"
+msgid_plural "%1$s Responses to %2$s"
+msgstr[0] "Une réponse à %2$s"
+msgstr[1] "%1$s réponses à %2$s"
+
+#: comments.php:41 comments.php:60
+msgid "<span class=\"meta-nav\">&larr;</span> Older Comments"
+msgstr "<span class=\"meta-nav\">&larr;</span> Commentaires plus anciens"
+
+#: comments.php:42 comments.php:61
+msgid "Newer Comments <span class=\"meta-nav\">&rarr;</span>"
+msgstr "Commentaires plus récents <span class=\"meta-nav\">&rarr;</span>"
+
+#: comments.php:70
+msgid "Comments are closed."
+msgstr "Les commentaires sont fermés."
+
+#. #-#-#-#-#  twentyten.pot (Twenty Ten 1.5)  #-#-#-#-#
+#. Author URI of the plugin/theme
+#: footer.php:33
+msgid "http://wordpress.org/"
+msgstr "http://wordpress.org/"
+
+#: footer.php:33
+msgid "Semantic Personal Publishing Platform"
+msgstr "Plate-forme de publication personnelle à la pointe de la sémantique"
+
+#: footer.php:33
+msgid "Proudly powered by %s."
+msgstr "Fièrement propulsé par %s"
+
+#: functions.php:93
+msgid "Primary Navigation"
+msgstr "Navigation principale"
+
+#. translators: header image description
+#: functions.php:145
+msgid "Berries"
+msgstr "Framboises"
+
+#. translators: header image description
+#: functions.php:151
+msgid "Cherry Blossoms"
+msgstr "Fleurs de cerisier"
+
+#. translators: header image description
+#: functions.php:157
+msgid "Concave"
+msgstr "Mirroir"
+
+#. translators: header image description
+#: functions.php:163
+msgid "Fern"
+msgstr "Fougère"
+
+#. translators: header image description
+#: functions.php:169
+msgid "Forest Floor"
+msgstr "Paysage forestier"
+
+#. translators: header image description
+#: functions.php:175
+msgid "Inkwell"
+msgstr "Encrier"
+
+#. translators: header image description
+#: functions.php:181
+msgid "Path"
+msgstr "Chemin"
+
+#. translators: header image description
+#: functions.php:187
+msgid "Sunset"
+msgstr "Coucher du soleil"
+
+#: functions.php:255 loop-attachment.php:104 loop.php:115 loop.php:143
+msgid "Continue reading <span class=\"meta-nav\">&rarr;</span>"
+msgstr "Continuer la lecture <span class=\"meta-nav\">&rarr;</span>"
+
+#: functions.php:338
+msgid "%s <span class=\"says\">says:</span>"
+msgstr "%s <span class=\"says\">dit&nbsp;:</span>"
+
+#: functions.php:341
+msgid "Your comment is awaiting moderation."
+msgstr "Votre commentaire est en attente de validation."
+
+#. translators: 1: date, 2: time
+#: functions.php:348
+msgid "%1$s at %2$s"
+msgstr "%1$s à %2$s"
+
+#: functions.php:348 functions.php:365
+msgid "(Edit)"
+msgstr "(Modifier)"
+
+#: functions.php:365
+msgid "Pingback:"
+msgstr "Ping&nbsp;:"
+
+#: functions.php:384
+msgid "Primary Widget Area"
+msgstr "Zone principale de widgets"
+
+#: functions.php:386
+msgid "The primary widget area"
+msgstr "La zone principale de widgets"
+
+#: functions.php:395
+msgid "Secondary Widget Area"
+msgstr "Zone secondaire de widgets"
+
+#: functions.php:397
+msgid "The secondary widget area"
+msgstr "La zone secondaire de widgets"
+
+#: functions.php:406
+msgid "First Footer Widget Area"
+msgstr "1ère zone de pied de page"
+
+#: functions.php:408
+msgid "The first footer widget area"
+msgstr "La première zone de widgets pour le pied de page"
+
+#: functions.php:417
+msgid "Second Footer Widget Area"
+msgstr "2ème zone de pied de page"
+
+#: functions.php:419
+msgid "The second footer widget area"
+msgstr "La deuxième zone de widgets pour le pied de page"
+
+#: functions.php:428
+msgid "Third Footer Widget Area"
+msgstr "3ème zone de pied de page"
+
+#: functions.php:430
+msgid "The third footer widget area"
+msgstr "La troisième zone de widgets pour le pied de page"
+
+#: functions.php:439
+msgid "Fourth Footer Widget Area"
+msgstr "4ème zone de pied de page"
+
+#: functions.php:441
+msgid "The fourth footer widget area"
+msgstr "La quatrième zone de widgets pour le pied de page"
+
+#: functions.php:475
+msgid ""
+"<span class=\"%1$s\">Posted on</span> %2$s <span class=\"meta-sep\">by</"
+"span> %3$s"
+msgstr ""
+"<span class=\"%1$s\">Publié le</span> %2$s <span class=\"meta-sep\">par</"
+"span> %3$s"
+
+#: functions.php:484 loop-attachment.php:36
+msgid "View all posts by %s"
+msgstr "Afficher tous les articles par %s"
+
+#: functions.php:501
+msgid ""
+"This entry was posted in %1$s and tagged %2$s. Bookmark the <a href=\"%3$s\" "
+"title=\"Permalink to %4$s\" rel=\"bookmark\">permalink</a>."
+msgstr ""
+"Ce contenu a été publié dans %1$s, avec comme mot(s)-clef(s) %2$s. Vous "
+"pouvez le mettre en favoris avec <a href=\"%3$s\" title=\"Permalien pour %4$s"
+"\" rel=\"bookmark\">ce permalien</a>."
+
+#: functions.php:503
+msgid ""
+"This entry was posted in %1$s. Bookmark the <a href=\"%3$s\" title="
+"\"Permalink to %4$s\" rel=\"bookmark\">permalink</a>."
+msgstr ""
+"Ce contenu a été publié dans %1$s. Vous pouvez le mettre en favoris avec <a "
+"href=\"%3$s\" title=\"Permalien pour %4$s\" rel=\"bookmark\">ce permalien</"
+"a>."
+
+#: functions.php:505
+msgid ""
+"Bookmark the <a href=\"%3$s\" title=\"Permalink to %4$s\" rel=\"bookmark"
+"\">permalink</a>."
+msgstr ""
+"Vous pouvez la mettre en favoris avec <a href=\"%3$s\" title=\"Permalien "
+"pour %4$s\" rel=\"bookmark\">ce permalien</a>."
+
+#: header.php:33
+msgid "Page %s"
+msgstr "Page %s"
+
+#: header.php:101
+msgid "Skip to content"
+msgstr "Aller au contenu"
+
+#: loop-attachment.php:21
+msgid "Return to %s"
+msgstr "Revenir à %s"
+
+#. translators: %s - title of parent post
+#: loop-attachment.php:23
+msgid "<span class=\"meta-nav\">&larr;</span> %s"
+msgstr "<span class=\"meta-nav\">&larr;</span> %s"
+
+#: loop-attachment.php:32
+msgid "<span class=\"%1$s\">By</span> %2$s"
+msgstr "<span class=\"%1$s\">Par</span> %2$s"
+
+#: loop-attachment.php:43
+msgid "<span class=\"%1$s\">Published</span> %2$s"
+msgstr "<span class=\"%1$s\">Publié le</span> %2$s"
+
+#: loop-attachment.php:53
+msgid "Full size is %s pixels"
+msgstr "La taille originale est de %s pixels"
+
+#: loop-attachment.php:56
+msgid "Link to full-size image"
+msgstr "Lien vers l&rsquo;image originale"
+
+#: loop-attachment.php:63 loop-attachment.php:111 loop-page.php:30
+#: loop-single.php:56 loop.php:100 loop.php:123 loop.php:165
+msgid "Edit"
+msgstr "Modifier"
+
+#: loop-attachment.php:105 loop-page.php:29 loop-single.php:34 loop.php:144
+msgid "Pages:"
+msgstr "Pages&nbsp;:"
+
+#: loop-single.php:21 loop-single.php:61
+msgctxt "Previous post link"
+msgid "&larr;"
+msgstr "&larr;"
+
+#: loop-single.php:22 loop-single.php:62
+msgctxt "Next post link"
+msgid "&rarr;"
+msgstr "&rarr;"
+
+#: loop-single.php:47
+msgid "View all posts by %s <span class=\"meta-nav\">&rarr;</span>"
+msgstr "Voir tous les articles de %s <span class=\"meta-nav\">&rarr;</span>"
+
+#: loop.php:25 loop.php:178
+msgid "<span class=\"meta-nav\">&larr;</span> Older posts"
+msgstr "<span class=\"meta-nav\">&larr;</span> Articles plus anciens"
+
+#: loop.php:26 loop.php:179
+msgid "Newer posts <span class=\"meta-nav\">&rarr;</span>"
+msgstr "Articles plus récents <span class=\"meta-nav\">&rarr;</span>"
+
+#: loop.php:35
+msgid ""
+"Apologies, but no results were found for the requested archive. Perhaps "
+"searching will help find a related post."
+msgstr ""
+"Toutes nos excuses, mais aucun résultat n&rsquo;a été trouvé dans l&rsquo;"
+"archive demandée. Peut-être qu&rsquo;une recherche vous permettra de trouver "
+"un article similaire."
+
+#: loop.php:60 loop.php:95 loop.php:96
+msgctxt "gallery category slug"
+msgid "gallery"
+msgstr "galerie"
+
+#: loop.php:62 loop.php:83 loop.php:131
+msgid "Permalink to %s"
+msgstr "Lien permanent vers %s"
+
+#: loop.php:82
+msgid "This gallery contains <a %1$s>%2$s photo</a>."
+msgid_plural "This gallery contains <a %1$s>%2$s photos</a>."
+msgstr[0] "Cette galerie contient <a %1$s>%2$s photo</a>."
+msgstr[1] "Cette galerie contient <a %1$s>%2$s photos</a>."
+
+#: loop.php:93
+msgid "View Galleries"
+msgstr "Afficher les galeries"
+
+#: loop.php:93 loop.php:96
+msgid "More Galleries"
+msgstr "Toutes les galeries"
+
+#: loop.php:96
+msgid "View posts in the Gallery category"
+msgstr "Afficher les articles de la catégorie Galerie"
+
+#: loop.php:99 loop.php:122 loop.php:164
+msgid "Leave a comment"
+msgstr "Laisser un commentaire"
+
+#: loop.php:99 loop.php:122 loop.php:164
+msgid "1 Comment"
+msgstr "Un commentaire"
+
+#: loop.php:99 loop.php:122 loop.php:164
+msgid "% Comments"
+msgstr "% commentaires"
+
+# C'est le slug pour la catégorie "Apartés", donc pas d'accent.
+#: loop.php:106
+msgctxt "asides category slug"
+msgid "asides"
+msgstr "apartes"
+
+#: loop.php:151
+msgid "<span class=\"%1$s\">Posted in</span> %2$s"
+msgstr "<span class=\"%1$s\">Publié dans</span> %2$s"
+
+#: loop.php:160
+msgid "<span class=\"%1$s\">Tagged</span> %2$s"
+msgstr "<span class=\"%1$s\">Marqué avec</span> %2$s"
+
+#: search.php:16
+msgid "Search Results for: %s"
+msgstr "Résultats de la recherche&nbsp;: %s"
+
+#: search.php:26
+msgid "Nothing Found"
+msgstr "Rien de trouvé"
+
+#: search.php:28
+msgid ""
+"Sorry, but nothing matched your search criteria. Please try again with some "
+"different keywords."
+msgstr ""
+"Désolé, mais rien ne correspond à vos critères de recherche. Veuillez "
+"réessayer avec d&rsquo;autres mots-clefs."
+
+#: sidebar.php:27
+msgid "Archives"
+msgstr "Archives"
+
+#: sidebar.php:34
+msgid "Meta"
+msgstr "Méta"
+
+#: tag.php:16
+msgid "Tag Archives: %s"
+msgstr "Archives par mot-clef&nbsp;: %s"
+
+#. Theme Name of the plugin/theme
+msgid "Twenty Ten"
+msgstr "Twenty Ten"
+
+#. Theme URI of the plugin/theme
+msgid "http://wordpress.org/extend/themes/twentyten"
+msgstr "http://wordpress.org/extend/themes/twentyten"
+
+#. Description of the plugin/theme
+msgid ""
+"The 2010 theme for WordPress is stylish, customizable, simple, and readable "
+"-- make it yours with a custom menu, header image, and background. Twenty "
+"Ten supports six widgetized areas (two in the sidebar, four in the footer) "
+"and featured images (thumbnails for gallery posts and custom header images "
+"for posts and pages). It includes stylesheets for print and the admin Visual "
+"Editor, special styles for posts in the \"Asides\" and \"Gallery\" "
+"categories, and has an optional one-column page template that removes the "
+"sidebar."
+msgstr ""
+"Le thème de WordPress pour 2010. Il est beau, personnalisable, simple et "
+"lisible. Appropriez-le-vous grâce en personnalisant son menu, son image "
+"d&rsquo;en-tête et son image de fond. Twenty Ten dispose de six zones de "
+"widgets (deux dans la barre latérale, quatre en pied de page), et peut "
+"exploiter vos images de Une (minitatures pour galeries, et image d&rsquo;en-"
+"tête personnalisé pour les articles et pages). Il intègre une feuille de "
+"style pour l&rsquo;impression et pour l&rsquo;éditeur visuel, un style "
+"spécial pour les articles des catégories &laquo;&nbsp;Apartés&nbsp;&raquo; "
+"et &laquo;&nbsp;Galerie&nbsp;&raquo;, et peut fonctionner sous la forme "
+"d&rsquo;une colonne seule, en enlevant la barre latérale."
+
+#. Author of the plugin/theme
+msgid "the WordPress team"
+msgstr "L&rsquo;équipe WordPress"
+
+#. Template Name of the plugin/theme
+msgid "One column, no sidebar"
+msgstr "Une colonne, pas de colonne latérale"
+
+#~ msgid ""
+#~ "black, blue, white, two-columns, fixed-width, custom-header, custom-"
+#~ "background, threaded-comments, sticky-post, translation-ready, "
+#~ "microformats, rtl-language-support, editor-style, custom-menu"
+#~ msgstr ""
+#~ "black, blue, white, two-columns, fixed-width, custom-header, custom-"
+#~ "background, threaded-comments, sticky-post, translation-ready, "
+#~ "microformats, rtl-language-support, editor-style, custom-menu"
Binary file web/wp-content/languages/themes/twentytwelve-fr_FR.mo has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-content/languages/themes/twentytwelve-fr_FR.po	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,773 @@
+# Copyright (C) 2010 Twenty Eleven
+# This file is distributed under the same license as the Twenty Eleven package.
+msgid ""
+msgstr ""
+"Project-Id-Version: Twenty Twelve 1.1 (WordPress 3.5)\n"
+"Report-Msgid-Bugs-To: http://wordpress.org/tags/twentytwelve\n"
+"POT-Creation-Date: 2012-12-07 21:19:18+00:00\n"
+"PO-Revision-Date: 2012-12-10 20:22+0100\n"
+"Last-Translator: WordPress Francophone <traduction_at_wordpress-fr.net>\n"
+"Language-Team: WordPress-Francophone <traduction@wordpress-fr.net>\n"
+"Language: fr_FR\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=(n>1);\n"
+"X-Poedit-SourceCharset: UTF-8\n"
+"X-Generator: Poedit 1.5.4\n"
+
+#: 404.php:17
+msgid "This is somewhat embarrassing, isn&rsquo;t it?"
+msgstr "C&rsquo;est plutôt gênant, vous ne trouvez pas&nbsp;?"
+
+#: 404.php:21
+msgid ""
+"It seems we can&rsquo;t find what you&rsquo;re looking for. Perhaps "
+"searching can help."
+msgstr ""
+"Il semblerait que nous ne soyons pas en mesure de trouver votre contenu. "
+"Essayez en lançant une recherche."
+
+#: archive.php:29
+msgid "Daily Archives: %s"
+msgstr "Archives quotidiennes&nbsp;:"
+
+#: archive.php:31
+msgid "Monthly Archives: %s"
+msgstr "Archives mensuelles&nbsp;: %s"
+
+#: archive.php:31
+msgctxt "monthly archives date format"
+msgid "F Y"
+msgstr "F Y"
+
+#: archive.php:33
+msgid "Yearly Archives: %s"
+msgstr "Archives annuelles&nbsp;: %s"
+
+#: archive.php:33
+msgctxt "yearly archives date format"
+msgid "Y"
+msgstr "Y"
+
+#: archive.php:35
+msgid "Archives"
+msgstr "Archives"
+
+#: author.php:32
+msgid "Author Archives: %s"
+msgstr "Archives de l&rsquo;auteur&nbsp;: %s"
+
+#: author.php:53 content.php:53
+msgid "About %s"
+msgstr "A propos %s"
+
+#: category.php:21
+msgid "Category Archives: %s"
+msgstr "Archives pour la catégorie %s"
+
+#: comments.php:31
+msgid "One thought on &ldquo;%2$s&rdquo;"
+msgid_plural "%1$s thoughts on &ldquo;%2$s&rdquo;"
+msgstr[0] "Une réflexion au sujet de &laquo;&nbsp;%2$s&nbsp;&raquo;"
+msgstr[1] "%1$s réflexions au sujet de &laquo;&nbsp;%2$s&nbsp;&raquo;"
+
+#: comments.php:42
+msgid "Comment navigation"
+msgstr "Navigation des commentaires"
+
+#: comments.php:43
+msgid "&larr; Older Comments"
+msgstr "&larr; Commentaire plus ancien"
+
+#: comments.php:44
+msgid "Newer Comments &rarr;"
+msgstr "Commentaires plus récents &rarr;"
+
+#: comments.php:53
+msgid "Comments are closed."
+msgstr "Les commentaires sont fermés."
+
+#: content-aside.php:13 content-aside.php:20 content-image.php:17
+#: content-link.php:18 content-quote.php:17 content-status.php:15
+#: content.php:23
+msgid "Permalink to %s"
+msgstr "Permalien vers %s"
+
+#: content-aside.php:15 content-image.php:13 content-link.php:14
+#: content-quote.php:13 content-status.php:21 content.php:39
+msgid "Continue reading <span class=\"meta-nav\">&rarr;</span>"
+msgstr "Lire la suite <span class=\"meta-nav\">&rarr;</span>"
+
+#: content-aside.php:23 content-image.php:23 content-link.php:21
+#: content-quote.php:20 content-status.php:27 content.php:28
+msgid "Leave a reply"
+msgstr "Laisser une réponse"
+
+#: content-aside.php:23 content-image.php:23 content-link.php:21
+#: content-quote.php:20 content-status.php:27 content.php:28
+msgid "1 Reply"
+msgstr "1 réponse"
+
+#: content-aside.php:23 content-image.php:23 content-link.php:21
+#: content-quote.php:20 content-status.php:27 content.php:28
+msgid "% Replies"
+msgstr "% réponses"
+
+#: content-aside.php:26 content-image.php:26 content-link.php:24
+#: content-page.php:21 content-quote.php:23 content-status.php:30
+#: content.php:46 functions.php:309 image.php:37
+msgid "Edit"
+msgstr "Modifier"
+
+#: content-link.php:12
+msgid "Link"
+msgstr "Lien"
+
+#: content-none.php:13 index.php:49 search.php:34
+msgid "Nothing Found"
+msgstr "Rien n&rsquo;a été trouvé"
+
+#: content-none.php:17 index.php:53
+msgid ""
+"Apologies, but no results were found. Perhaps searching will help find a "
+"related post."
+msgstr ""
+"Toutes nos excuses, mais votre requête n&rsquo;a donné aucun résultat. Peut-"
+"être qu&rsquo;une recherche peut vous indiquer un article lié."
+
+#: content-page.php:18 content.php:40 image.php:92
+msgid "Pages:"
+msgstr "Pages&nbsp;:"
+
+#: content.php:14
+msgid "Featured post"
+msgstr "Article mis en avant"
+
+#: content.php:57
+msgid "View all posts by %s <span class=\"meta-nav\">&rarr;</span>"
+msgstr ""
+"Afficher tous les articles de %s <span class=\"meta-nav\">&rarr;</span>"
+
+#. #-#-#-#-#  twentytwelve.pot (Twenty Twelve 1.1)  #-#-#-#-#
+#. Author URI of the plugin/theme
+#: footer.php:17
+msgid "http://wordpress.org/"
+msgstr "http://wordpress.org/"
+
+#: footer.php:17
+msgid "Semantic Personal Publishing Platform"
+msgstr "Plate-forme de publication personnelle à la pointe de la sémantique"
+
+#: footer.php:17
+msgid "Proudly powered by %s"
+msgstr "Fièrement propulsé par %s"
+
+#: functions.php:64
+msgid "Primary Menu"
+msgstr "Menu principal"
+
+#. translators: If there are characters in your language that are not supported
+#. by Open Sans, translate this to 'off'. Do not translate into your own
+#. language.
+#: functions.php:120
+msgctxt "Open Sans font: on or off"
+msgid "on"
+msgstr "on"
+
+#. translators: To add an additional Open Sans character subset specific to
+#. your language, translate
+#. this to 'greek', 'cyrillic' or 'vietnamese'. Do not translate into your
+#. own language.
+#: functions.php:125
+msgctxt "Open Sans font: add new subset (greek, cyrillic, vietnamese)"
+msgid "no-subset"
+msgstr "no-subset "
+
+#: functions.php:181
+msgid "Page %s"
+msgstr "Page %s"
+
+#: functions.php:206
+msgid "Main Sidebar"
+msgstr "Colonne principale"
+
+#: functions.php:208
+msgid ""
+"Appears on posts and pages except the optional Front Page template, which "
+"has its own widgets"
+msgstr ""
+"Apparaît sur les articles et les pages, sauf le modèle facultatif Page "
+"d&rsquo;Accueil, qui dispose de ses propres widgets."
+
+#: functions.php:216
+msgid "First Front Page Widget Area"
+msgstr "Première zone de la Page d&rsquo;Accueil"
+
+#: functions.php:218 functions.php:228
+msgid ""
+"Appears when using the optional Front Page template with a page set as "
+"Static Front Page"
+msgstr ""
+"Apparaît lorsque vous utilisez le modèle facultatif Page d&rsquo;Accueil "
+"avec une page configurée en Page d&rsquo;Accueil Statique."
+
+#: functions.php:226
+msgid "Second Front Page Widget Area"
+msgstr "Seconde zone de la Page d&rsquo;Accueil"
+
+#: functions.php:250 single.php:20
+msgid "Post navigation"
+msgstr "Navigation des articles"
+
+#: functions.php:251
+msgid "<span class=\"meta-nav\">&larr;</span> Older posts"
+msgstr "<span class=\"meta-nav\">&larr;</span> Articles plus anciens"
+
+#: functions.php:252
+msgid "Newer posts <span class=\"meta-nav\">&rarr;</span>"
+msgstr "Articles plus récents <span class=\"meta-nav\">&rarr;</span>"
+
+#: functions.php:277
+msgid "Pingback:"
+msgstr "Ping&nbsp;:"
+
+#: functions.php:277
+msgid "(Edit)"
+msgstr "(Modifier)"
+
+#: functions.php:292
+msgid "Post author"
+msgstr "Auteur de l&rsquo;article"
+
+#. translators: 1: date, 2: time
+#: functions.php:298
+msgid "%1$s at %2$s"
+msgstr "%1$s à %2$s"
+
+#: functions.php:304
+msgid "Your comment is awaiting moderation."
+msgstr "Votre commentaire est en attente de validation."
+
+#: functions.php:313
+msgid "Reply"
+msgstr "Répondre"
+
+#: functions.php:332 functions.php:335
+msgid ", "
+msgstr ", "
+
+#: functions.php:346
+msgid "View all posts by %s"
+msgstr "Afficher tous les articles par %s"
+
+#: functions.php:352
+msgid ""
+"This entry was posted in %1$s and tagged %2$s on %3$s<span class=\"by-author"
+"\"> by %4$s</span>."
+msgstr ""
+"Cette entrée a été publiée dans %1$s, et marquée avec %2$s, le %3$s <span "
+"class=\"by-author\">par %4$s</span>."
+
+#: functions.php:354
+msgid ""
+"This entry was posted in %1$s on %3$s<span class=\"by-author\"> by %4$s</"
+"span>."
+msgstr ""
+"Cette entrée a été publiée dans %1$s le %3$s <span class=\"by-author\">par "
+"%4$s</span>."
+
+#: functions.php:356
+msgid "This entry was posted on %3$s<span class=\"by-author\"> by %4$s</span>."
+msgstr ""
+"Cette entrée a été publiée le %3$s <span class=\"by-author\">par %4$s</span>."
+
+#: header.php:43
+msgid "Menu"
+msgstr "Menu"
+
+#: header.php:44
+msgid "Skip to content"
+msgstr "Aller au contenu principal"
+
+#: image.php:26
+msgid ""
+"<span class=\"meta-prep meta-prep-entry-date\">Published </span> <span class="
+"\"entry-date\"><time class=\"entry-date\" datetime=\"%1$s\">%2$s</time></"
+"span> at <a href=\"%3$s\" title=\"Link to full-size image\">%4$s &times; "
+"%5$s</a> in <a href=\"%6$s\" title=\"Return to %7$s\" rel=\"gallery\">%8$s</"
+"a>."
+msgstr ""
+"<span class=\"meta-prep meta-prep-entry-date\">Publié le </span> <span class="
+"\"entry-date\"><time class=\"entry-date\" datetime=\"%1$s\">%2$s</time></"
+"span> à <a href=\"%3$s\" title=\"Lien vers l'image en taille originale\">"
+"%4$s &times; %5$s</a> dans <a href=\"%6$s\" title=\"Revenir à %7$s\" rel="
+"\"gallery\">%8$s</a>."
+
+#: image.php:41
+msgid "&larr; Previous"
+msgstr "&larr; Précédent"
+
+#: image.php:42
+msgid "Next &rarr;"
+msgstr "Suivant &rarr;"
+
+#: index.php:38
+msgid "No posts to display"
+msgstr "Aucun article à afficher"
+
+#: index.php:42
+msgid "Ready to publish your first post? <a href=\"%s\">Get started here</a>."
+msgstr ""
+"Prêt à publier votre premier article&nbsp;? <a href=\"%s\">Lancez-vous</"
+"a>&nbsp;!"
+
+#: search.php:18
+msgid "Search Results for: %s"
+msgstr "Résultats de recherche pour %s"
+
+#: search.php:38
+msgid ""
+"Sorry, but nothing matched your search criteria. Please try again with some "
+"different keywords."
+msgstr ""
+"Désolé, mais rien ne correspond à votre critères de recherche. Veuillez "
+"réessayer avec d&rsquo;autres mots-clefs."
+
+#: single.php:21
+msgctxt "Previous post link"
+msgid "&larr;"
+msgstr "&larr;"
+
+#: single.php:22
+msgctxt "Next post link"
+msgid "&rarr;"
+msgstr "&rarr;"
+
+#: tag.php:21
+msgid "Tag Archives: %s"
+msgstr "Archives du mot-clef %s"
+
+#. Theme Name of the plugin/theme
+msgid "Twenty Twelve"
+msgstr "Twenty Twelve"
+
+#. Theme URI of the plugin/theme
+msgid "http://wordpress.org/extend/themes/twentytwelve"
+msgstr "http://wordpress.org/extend/themes/twentytwelve"
+
+#. Description of the plugin/theme
+msgid ""
+"The 2012 theme for WordPress is a fully responsive theme that looks great on "
+"any device. Features include a front page template with its own widgets, an "
+"optional display font, styling for post formats on both index and single "
+"views, and an optional no-sidebar page template. Make it yours with a custom "
+"menu, header image, and background."
+msgstr ""
+"Le thème 2012 de WordPress est un thème conçu pour s&rsquo;afficher de la "
+"meilleure manière sur n&rsquo;importe quelle taille d&rsquo;écran. Parmi ses "
+"fonctionnalités se trouvent un modèle de page d&rsquo;accueil avec ses "
+"propres widgets, une police d&rsquo;affichage optionnelle, un design pour "
+"les formats d&rsquo;article à la fois sur l&rsquo;index et en vue "
+"individuelle, et un modèle facultatif sans barre latérale. Vous pouvez le "
+"faire vôtre avec un menu personnalisé, une image d&rsquo;en-tête, et un fond "
+"d&rsquo;écran."
+
+#. Author of the plugin/theme
+msgid "the WordPress team"
+msgstr "L&rsquo;équipe WordPress"
+
+#. Template Name of the plugin/theme
+msgid "Front Page Template"
+msgstr "Modèle de Page d&rsquo;Accueil"
+
+#. Template Name of the plugin/theme
+msgid "Full-width Page Template, No Sidebar"
+msgstr "Modèle de page pleine largeur, sans barre latérale"
+
+#~ msgid "Reply <span>&darr;</span>"
+#~ msgstr "Répondre <span>&darr;</span>"
+
+#~ msgid "Main menu"
+#~ msgstr "Menu principal"
+
+#~ msgid "Skip to secondary content"
+#~ msgstr "Aller au contenu secondaire"
+
+#~ msgid "Meta"
+#~ msgstr "Méta"
+
+#~ msgid "The 2012 theme for WordPress."
+#~ msgstr "Le thème de WordPress pour 2012"
+
+#~ msgid ""
+#~ "<span class=\"sep\">Posted on </span><a href=\"%1$s\" title=\"%2$s\" rel="
+#~ "\"bookmark\"><time class=\"entry-date\" datetime=\"%3$s\" pubdate>%4$s</"
+#~ "time></a><span class=\"by-author\"> <span class=\"sep\"> by </span> <span "
+#~ "class=\"author vcard\"><a class=\"url fn n\" href=\"%5$s\" title=\"%6$s\" "
+#~ "rel=\"author\">%7$s</a></span></span>"
+#~ msgstr ""
+#~ "<span class=\"sep\">Publié le </span><a href=\"%1$s\" title=\"%2$s\" rel="
+#~ "\"bookmark\"><time class=\"entry-date\" datetime=\"%3$s\" pubdate>%4$s</"
+#~ "time></a><span class=\"by-author\"> <span class=\"sep\"> par </span> "
+#~ "<span class=\"author vcard\"><a class=\"url fn n\" href=\"%5$s\" title="
+#~ "\"%6$s\" rel=\"author\">%7$s</a></span></span>"
+
+#~ msgid "Featured"
+#~ msgstr "Mis en avant"
+
+#~ msgid "%1$s on %2$s <span class=\"says\">said:</span>"
+#~ msgstr "Le %2$s, %1$s <span class=\"says\">a dit&nbsp;:</span>"
+
+#~ msgid ""
+#~ "This entry was posted in %1$s and tagged %2$s by <a href=\"%6$s\">%5$s</"
+#~ "a>. Bookmark the <a href=\"%3$s\" title=\"Permalink to %4$s\" rel="
+#~ "\"bookmark\">permalink</a>."
+#~ msgstr ""
+#~ "Ce contenu a été publié dans %1$s par <a href=\"%6$s\">%5$s</a>, et "
+#~ "marqué avec %2$s. Mettez-le en favori avec son <a href=\"%3$s\" title="
+#~ "\"Permalien vers %4$s\" rel=\"bookmark\">permalien</a>."
+
+#~ msgid ""
+#~ "This post is password protected. Enter the password to view any comments."
+#~ msgstr ""
+#~ "Cet article est protégé par un mot de passe. Veuillez le saisir pour "
+#~ "pouvoir lire ses commentaires."
+
+#~ msgid ""
+#~ "This entry was posted in %1$s by <a href=\"%6$s\">%5$s</a>. Bookmark the "
+#~ "<a href=\"%3$s\" title=\"Permalink to %4$s\" rel=\"bookmark\">permalink</"
+#~ "a>."
+#~ msgstr ""
+#~ "Ce contenu a été publié dans %1$s par <a href=\"%6$s\">%5$s</a>. Mettez-"
+#~ "le en favori avec son <a href=\"%3$s\" title=\"Permalien vers %4$s\" rel="
+#~ "\"bookmark\">permalien</a>."
+
+#~ msgid "<span class=\"%1$s\">Posted in</span> %2$s"
+#~ msgstr "<span class=\"%1$s\">Publié dans</span> %2$s"
+
+#~ msgid "<span class=\"%1$s\">Tagged</span> %2$s"
+#~ msgstr "<span class=\"%1$s\">Mots-clefs&nbsp;:</span> %2$s"
+
+#~ msgid "<b>1</b> Reply"
+#~ msgstr "<b>Une</b> réponse"
+
+#~ msgid "Blog Archives"
+#~ msgstr "Archives du blog"
+
+#~ msgid ""
+#~ "This entry was posted by <a href=\"%6$s\">%5$s</a>. Bookmark the <a href="
+#~ "\"%3$s\" title=\"Permalink to %4$s\" rel=\"bookmark\">permalink</a>."
+#~ msgstr ""
+#~ "Ce contenu a été publié par <a href=\"%6$s\">%5$s</a>. Mettez-le en "
+#~ "favori avec son <a href=\"%3$s\" title=\"Permalien vers %4$s\" rel="
+#~ "\"bookmark\">permalien</a>."
+
+#~ msgid "Quote"
+#~ msgstr "Citation"
+
+#~ msgctxt "comments number"
+#~ msgid "1"
+#~ msgstr "1"
+
+#~ msgctxt "comments number"
+#~ msgid "%"
+#~ msgstr "%"
+
+#~ msgid "Featuring: %s"
+#~ msgstr "Mise en avant&nbsp;: %s"
+
+#~ msgid "Recent Posts"
+#~ msgstr "Articles récents"
+
+#~ msgid "Image"
+#~ msgstr "Image"
+
+#~ msgid ""
+#~ "<a href=\"%1$s\" rel=\"bookmark\"><time class=\"entry-date\" datetime="
+#~ "\"%2$s\" pubdate>%3$s</time></a><span class=\"by-author\"> <span class="
+#~ "\"sep\"> by </span> <span class=\"author vcard\"><a class=\"url fn n\" "
+#~ "href=\"%4$s\" title=\"%5$s\" rel=\"author\">%6$s</a></span></span>"
+#~ msgstr ""
+#~ "<a href=\"%1$s\" rel=\"bookmark\"><time class=\"entry-date\" datetime="
+#~ "\"%2$s\" pubdate>%3$s</time></a><span class=\"by-author\"> <span class="
+#~ "\"sep\"> par </span> <span class=\"author vcard\"><a class=\"url fn n\" "
+#~ "href=\"%4$s\" title=\"%5$s\" rel=\"author\">%6$s</a></span></span>"
+
+#~ msgid "Gallery"
+#~ msgstr "Galerie"
+
+#~ msgid "This gallery contains <a %1$s>%2$s photo</a>."
+#~ msgid_plural "This gallery contains <a %1$s>%2$s photos</a>."
+#~ msgstr[0] "Cette galerie contient <a %1$s>%2$s photo</a>."
+#~ msgstr[1] "Cette galerie contient <a %1$s>%2$s photos</a>."
+
+#~ msgid "Aside"
+#~ msgstr "En passant"
+
+#~ msgid "Most Used Categories"
+#~ msgstr "Catégories les plus utilisées"
+
+#~ msgid "Try looking in the monthly archives. %1$s"
+#~ msgstr "Essayez de voir du côté des archives mensuelles. %1$s"
+
+#~ msgid "Image navigation"
+#~ msgstr "Navigation des images"
+
+#~ msgid "Wheel"
+#~ msgstr "Roue"
+
+#~ msgid "Shore"
+#~ msgstr "Rivage"
+
+#~ msgid "Trolley"
+#~ msgstr "Tramway"
+
+#~ msgid "Pine Cone"
+#~ msgstr "Pomme de pin"
+
+#~ msgid "Chessboard"
+#~ msgstr "Damier"
+
+#~ msgid "Lanterns"
+#~ msgstr "Lanternes"
+
+#~ msgid "Willow"
+#~ msgstr "Saule"
+
+#~ msgid "Hanoi Plant"
+#~ msgstr "Plante de Hanoï"
+
+#~ msgid "Showcase Sidebar"
+#~ msgstr "Colonne latérale de la vitrine"
+
+#~ msgid "The sidebar for the optional Showcase Template"
+#~ msgstr "La colonne latérale pour le modèle factultatif de vitrine"
+
+#~ msgid "Footer Area One"
+#~ msgstr "Zone 1 du pied de page"
+
+#~ msgid "An optional widget area for your site footer"
+#~ msgstr "Une zone facultative de widgets pour le pied de page de votre site"
+
+#~ msgid "Footer Area Two"
+#~ msgstr "Zone 2 du pied de page"
+
+#~ msgid "Footer Area Three"
+#~ msgstr "Zone 3 du pied de page"
+
+#~ msgid "Status"
+#~ msgstr "Humeur du moment"
+
+#~ msgid "Color Scheme"
+#~ msgstr "Jeu de couleurs"
+
+#~ msgid "Link Color"
+#~ msgstr "Couleur des liens"
+
+#~ msgid "Default Layout"
+#~ msgstr "Mise en page par défaut"
+
+#~ msgid "Theme Options"
+#~ msgstr "Options du thème"
+
+#~ msgid ""
+#~ "Some themes provide customization options that are grouped together on a "
+#~ "Theme Options screen. If you change themes, options may change or "
+#~ "disappear, as they are theme-specific. Your current theme, Twenty Eleven, "
+#~ "provides the following Theme Options:"
+#~ msgstr ""
+#~ "Certains thèmes proposent des options de personnalisation, regroupées sur "
+#~ "l&rsquo;écran &laquo;&nbsp;Options du thème"
+
+#~ msgid ""
+#~ "<strong>Color Scheme</strong>: You can choose a color palette of \"Light"
+#~ "\" (light background with dark text) or \"Dark\" (dark background with "
+#~ "light text) for your site."
+#~ msgstr ""
+#~ "<strong>Jeu de couleurs</strong>&nbsp;: vous pouvez choisir comme palette "
+#~ "de couleurs pour votre site &laquo;&nbsp;Clair&nbsp;&raquo; (fond clair "
+#~ "et texte foncé), ou  &laquo;&nbsp;Foncé&nbsp;&raquo; (fond foncé et texte "
+#~ "clair)."
+
+#~ msgid ""
+#~ "<strong>Link Color</strong>: You can choose the color used for text links "
+#~ "on your site. You can enter the HTML color or hex code, or you can choose "
+#~ "visually by clicking the \"Select a Color\" button to pick from a color "
+#~ "wheel."
+#~ msgstr ""
+#~ "<strong>Couleur des liens</strongs>&nbsp;: vous pouvez choisir la couleur "
+#~ "des liens textuels de votre site. Saisissez le code couleur (code HTML ou "
+#~ "hexadécimal), ou choisissez-la avec le sélecteur de couleur, en cliquant "
+#~ "sur &laquo;&nbsp;Choisir une couleur&nbsp;&raquo;."
+
+#~ msgid ""
+#~ "<strong>Default Layout</strong>: You can choose if you want your "
+#~ "site&#8217;s default layout to have a sidebar on the left, the right, or "
+#~ "not at all."
+#~ msgstr ""
+#~ "<strong>Mise en page par défaut</strong>&nbsp;: si vous le souhaitez, "
+#~ "votre site peut afficher sa barre latérale sur le côté droit, le côté "
+#~ "gauche, ou ne pas l&rsquo;afficher du tout."
+
+#~ msgid ""
+#~ "Remember to click \"Save Changes\" to save any changes you have made to "
+#~ "the theme options."
+#~ msgstr ""
+#~ "N&rsquo;oubliez pas de cliquer sur &laquo;&nbsp;Enregistrer les "
+#~ "modifications&nbsp;&raquo; pour conserver toutes les modifications "
+#~ "apportées aux options du thème"
+
+#~ msgid "For more information:"
+#~ msgstr "Pour plus d&rsquo;information&nbsp;:"
+
+#~ msgid ""
+#~ "<a href=\"http://codex.wordpress.org/Appearance_Theme_Options_Screen\" "
+#~ "target=\"_blank\">Documentation on Theme Options</a>"
+#~ msgstr ""
+#~ "<a href=\"http://codex.wordpress.org/Appearance_Theme_Options_Screen\" "
+#~ "target=\"_blank\">Documentation sur les options du thème (en)</a>"
+
+#~ msgid ""
+#~ "<a href=\"http://wordpress.org/support/\" target=\"_blank\">Support "
+#~ "Forums</a>"
+#~ msgstr ""
+#~ "<a href=\"http://www.wordpress-fr.net/support/\" target=\"_blank\">Forums "
+#~ "d&rsquo;entraide en français</a>"
+
+#~ msgid "Overview"
+#~ msgstr "Vue d'ensemble"
+
+#~ msgid "Light"
+#~ msgstr "Clair"
+
+#~ msgid "Dark"
+#~ msgstr "Foncé"
+
+#~ msgid "Content on left"
+#~ msgstr "Contenu à gauche"
+
+#~ msgid "Content on right"
+#~ msgstr "Contenu à droite"
+
+#~ msgid "One-column, no sidebar"
+#~ msgstr "Une colonne, pas de barre latérale"
+
+#~ msgid "Select a Color"
+#~ msgstr "Choisir une couleur"
+
+#~ msgid "Default color: %s"
+#~ msgstr "Couleur par défaut&nbsp;:"
+
+#~ msgid "%s Theme Options"
+#~ msgstr "Options du thème %s"
+
+#~ msgid ""
+#~ "Use this widget to list your recent Aside, Status, Quote, and Link posts"
+#~ msgstr ""
+#~ "Utiliser ce widget pour lister vos derniers contenus court&nbsp;: en "
+#~ "passant, humeur du moment, citation, liens..."
+
+#~ msgid "Twenty Eleven Ephemera"
+#~ msgstr "Contenu éphémère de Twenty Ten"
+
+#~ msgid "Ephemera"
+#~ msgstr "Éphémère"
+
+#~ msgid "0 <span class=\"reply\">comments &rarr;</span>"
+#~ msgstr "Aucun <span class=\"reply\">commentaire &rarr;</span>"
+
+#~ msgid "1 <span class=\"reply\">comment &rarr;</span>"
+#~ msgstr "Un <span class=\"reply\">commentaire &rarr;</span>"
+
+#~ msgid "% <span class=\"reply\">comments &rarr;</span>"
+#~ msgstr "% <span class=\"reply\">commentaires &rarr;</span>"
+
+#~ msgid "Link to %s"
+#~ msgstr "Lien vers %s"
+
+#~ msgid "Title:"
+#~ msgstr "Titre&nbsp;:"
+
+#~ msgid ""
+#~ "This entry was posted in %1$s. Bookmark the <a href=\"%3$s\" title="
+#~ "\"Permalink to %4$s\" rel=\"bookmark\">permalink</a>."
+#~ msgstr ""
+#~ "Ce contenu a été publié dans %1$s. Mettez-le en favori avec son <a href="
+#~ "\"%3$s\" title=\"Permalien vers %4$s\" rel=\"bookmark\">permalien</a>."
+
+#~ msgid "<span class=\"meta-nav\">&larr;</span> Previous"
+#~ msgstr "<span class=\"meta-nav\">&larr;</span> Précédent"
+
+#~ msgid "Next <span class=\"meta-nav\">&rarr;</span>"
+#~ msgstr "Suivant <span class=\"meta-nav\">&rarr;</span>"
+
+#~ msgid "Search"
+#~ msgstr "Recherche"
+
+#~ msgid ""
+#~ "The 2011 theme for WordPress is sophisticated, lightweight, and "
+#~ "adaptable. Make it yours with a custom menu, header image, and background "
+#~ "-- then go further with available theme options for light or dark color "
+#~ "scheme, custom link colors, and three layout choices. Twenty Eleven comes "
+#~ "equipped with a Showcase page template that transforms your front page "
+#~ "into a showcase to show off your best content, widget support galore "
+#~ "(sidebar, three footer areas, and a Showcase page widget area), and a "
+#~ "custom \"Ephemera\" widget to display your Aside, Link, Quote, or Status "
+#~ "posts. Included are styles for print and for the admin editor, support "
+#~ "for featured images (as custom header images on posts and pages and as "
+#~ "large images on featured \"sticky\" posts), and special styles for six "
+#~ "different post formats."
+#~ msgstr ""
+#~ "Le thème par défaut de WordPress pour 2011 est sophistiqué, léger et "
+#~ "adaptable. Faites-le vôtre avec un menu personnalisé, une image d&rsquo;"
+#~ "en-tête et de fond - puis aller plus loin avec les options disponibles "
+#~ "pour les couleurs du thèmes (claires ou foncées), celle des liens, et "
+#~ "trois choix de mise en page. Twenty-Elevent est équipé d&rsquo;un modèle "
+#~ "de page Vitrine qui transforme votre page d&rsquo;accueil en une vitrine "
+#~ "pour montrer vos meilleurs contenus, reconnaît de nombreux widgets "
+#~ "(colonne latérale, pied de page à trois zones, et une zone de widget pour "
+#~ "la page page vitrine), et un widget personnalisable Ephémères, pour "
+#~ "afficher vos contenus écrits en passant, vos liens, citations ou humeurs "
+#~ "du moment. Sont inclus les styles pour l&rsquo;impression et pour l&rsquo;"
+#~ "éditeur de l&rsquo;administration, reconnaissance des images mises en "
+#~ "avant (comme les images en-tête personnalisables par article et par page, "
+#~ "ou la reprise en grand des images articles mis en avant), et des styles "
+#~ "spéciaux pour six formats différents d&rsquo;articles."
+
+#~ msgid ""
+#~ "dark, light, white, black, gray, one-column, two-columns, left-sidebar, "
+#~ "right-sidebar, fixed-width, flexible-width, custom-background, custom-"
+#~ "colors, custom-header, custom-menu, editor-style, featured-image-header, "
+#~ "featured-images, full-width-template, microformats, post-formats, rtl-"
+#~ "language-support, sticky-post, theme-options, translation-ready"
+#~ msgstr ""
+#~ "dark, light, white, black, gray, one-column, two-columns, left-sidebar, "
+#~ "right-sidebar, fixed-width, flexible-width, custom-background, custom-"
+#~ "colors, custom-header, custom-menu, editor-style, featured-image-header, "
+#~ "featured-images, full-width-template, microformats, post-formats, rtl-"
+#~ "language-support, sticky-post, theme-options, translation-ready"
+
+#~ msgid "<strong>1</strong> Reply"
+#~ msgstr "<b>Une</b> réponse"
+
+#~ msgid "<strong>%</strong> Replies"
+#~ msgstr "<b>%</b> réponses"
+
+#~ msgid "Leave a Reply"
+#~ msgstr "Laisser une réponse"
+
+#~ msgid "Screen Info"
+#~ msgstr "Information de l&rsquo;écran"
+
+#~ msgid "[Edit]"
+#~ msgstr "[Modifier]"
+
+#~ msgid "<span class=\"leave-reply\">Reply</span>"
+#~ msgstr "<span class=\"leave-reply\">Répondre</span>"
+
+#~ msgid "<span class=\"leave-reply\">Leave a reply</span>"
+#~ msgstr "<span class=\"leave-reply\">Laisser une réponse</span>"
+
+#~ msgid "<span>Pages:</span>"
+#~ msgstr "<span>Pages&nbsp;:</span>"
--- a/web/wp-content/plugins/akismet/admin.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-content/plugins/akismet/admin.php	Wed Dec 19 17:46:52 2012 -0800
@@ -23,7 +23,6 @@
         $hook = get_plugin_page_hook( 'akismet-stats-display', 'index.php' );
     else
         $hook = 'dashboard_page_akismet-stats-display';
-    add_action('admin_head-'.$hook, 'akismet_stats_script');
     add_meta_box('akismet-status', __('Comment History'), 'akismet_comment_status_meta_box', 'comment', 'normal');
 }
 add_action('admin_init', 'akismet_admin_init');
@@ -56,7 +55,7 @@
 
 function akismet_plugin_action_links( $links, $file ) {
 	if ( $file == plugin_basename( dirname(__FILE__).'/akismet.php' ) ) {
-		$links[] = '<a href="admin.php?page=akismet-key-config">'.__('Settings').'</a>';
+		$links[] = '<a href="' . admin_url( 'admin.php?page=akismet-key-config' ) . '">'.__( 'Settings' ).'</a>';
 	}
 
 	return $links;
@@ -240,23 +239,6 @@
 <?php
 }
 
-function akismet_stats_script() {
-	?>
-<script type="text/javascript">
-function resizeIframe() {
-  
-    document.getElementById('akismet-stats-frame').style.height = "2500px";
-    
-};
-function resizeIframeInit() {
-	document.getElementById('akismet-stats-frame').onload = resizeIframe;
-	window.onresize = resizeIframe;
-}
-addLoadEvent(resizeIframeInit);
-</script><?php
-}
-
-
 function akismet_stats_display() {
 	global $akismet_api_host, $akismet_api_port, $wpcom_api_key;
 	$blog = urlencode( get_bloginfo('url') );
@@ -269,7 +251,7 @@
 	$url .= "?blog={$blog}&api_key=" . akismet_get_key();
 	?>
 	<div class="wrap">
-	<iframe src="<?php echo $url; ?>" width="100%" height="100%" frameborder="0" id="akismet-stats-frame"></iframe>
+	<iframe src="<?php echo $url; ?>" width="100%" height="2500px" frameborder="0" id="akismet-stats-frame"></iframe>
 	</div>
 	<?php
 }
@@ -329,7 +311,7 @@
 		function akismet_warning() {
 			global $wpdb;
 				akismet_fix_scheduled_recheck();
-				$waiting = $wpdb->get_var( $wpdb->prepare( "SELECT COUNT(*) FROM $wpdb->commentmeta WHERE meta_key = 'akismet_error'" ) );
+				$waiting = $wpdb->get_var( "SELECT COUNT(*) FROM $wpdb->commentmeta WHERE meta_key = 'akismet_error'" );
 				$next_check = wp_next_scheduled('akismet_schedule_cron_recheck');
 				if ( $waiting > 0 && $next_check > time() )
 					echo "
@@ -741,7 +723,8 @@
 
 		delete_comment_meta( $c['comment_ID'], 'akismet_rechecking' );
 	}
-	wp_safe_redirect( $_SERVER['HTTP_REFERER'] );
+	$redirect_to = isset( $_SERVER['HTTP_REFERER'] ) ? $_SERVER['HTTP_REFERER'] : admin_url( 'edit-comments.php' );
+	wp_safe_redirect( $redirect_to );
 	exit;
 }
 
--- a/web/wp-content/plugins/akismet/akismet.js	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-content/plugins/akismet/akismet.js	Wed Dec 19 17:46:52 2012 -0800
@@ -74,6 +74,7 @@
  		return false;
  	});
  	jQuery('a[id^="author_comment_url"]').mouseover(function () {
+		var wpcomProtocol = ( 'https:' === location.protocol ) ? 'https://' : 'http://';
 		// Need to determine size of author column
 		var thisParentWidth = jQuery(this).parent().width();
 		// It changes based on if there is a gravatar present
@@ -83,12 +84,12 @@
 			jQuery('.widefat td').css('overflow', 'visible');
 			jQuery(this).css('position', 'relative');
 			var thisHref = jQuery.URLEncode(jQuery(this).attr('href'));
-			jQuery(this).append('<div class="mShot mshot-container" style="left: '+thisParentWidth+'"><div class="mshot-arrow"></div><img src="http://s.wordpress.com/mshots/v1/'+thisHref+'?w=450" width="450" class="mshot-image_'+thisId+'" style="margin: 0;" /></div>');
+			jQuery(this).append('<div class="mShot mshot-container" style="left: '+thisParentWidth+'"><div class="mshot-arrow"></div><img src="'+wpcomProtocol+'s0.wordpress.com/mshots/v1/'+thisHref+'?w=450" width="450" class="mshot-image_'+thisId+'" style="margin: 0;" /></div>');
 			setTimeout(function () {
-				jQuery('.mshot-image_'+thisId).attr('src', 'http://s.wordpress.com/mshots/v1/'+thisHref+'?w=450&r=2');
+				jQuery('.mshot-image_'+thisId).attr('src', wpcomProtocol+'s0.wordpress.com/mshots/v1/'+thisHref+'?w=450&r=2');
 			}, 6000);
 			setTimeout(function () {
-				jQuery('.mshot-image_'+thisId).attr('src', 'http://s.wordpress.com/mshots/v1/'+thisHref+'?w=450&r=3');
+				jQuery('.mshot-image_'+thisId).attr('src', wpcomProtocol+'s0.wordpress.com/mshots/v1/'+thisHref+'?w=450&r=3');
 			}, 12000);
 		} else {
 			jQuery(this).find('.mShot').css('left', thisParentWidth).show();
@@ -106,7 +107,8 @@
 });
 // Preload mshot images after everything else has loaded
 jQuery(window).load(function() {
+	var wpcomProtocol = ( 'https:' === location.protocol ) ? 'https://' : 'http://';
 	jQuery('a[id^="author_comment_url"]').each(function () {
-		jQuery.get('http://s.wordpress.com/mshots/v1/'+jQuery.URLEncode(jQuery(this).attr('href'))+'?w=450');
+		jQuery.get(wpcomProtocol+'s0.wordpress.com/mshots/v1/'+jQuery.URLEncode(jQuery(this).attr('href'))+'?w=450');
 	});
-});
\ No newline at end of file
+});
--- a/web/wp-content/plugins/akismet/akismet.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-content/plugins/akismet/akismet.php	Wed Dec 19 17:46:52 2012 -0800
@@ -5,8 +5,8 @@
 /*
 Plugin Name: Akismet
 Plugin URI: http://akismet.com/?return=true
-Description: Used by millions, Akismet is quite possibly the best way in the world to <strong>protect your blog from comment and trackback spam</strong>. It keeps your site protected from spam even while you sleep. To get started: 1) Click the "Activate" link to the left of this description, 2) <a href="http://akismet.com/get/?return=true">Sign up for an Akismet API key</a>, and 3) Go to your <a href="admin.php?page=akismet-key-config">Akismet configuration</a> page, and save your API key.
-Version: 2.5.6
+Description: Used by millions, Akismet is quite possibly the best way in the world to <strong>protect your blog from comment and trackback spam</strong>. It keeps your site protected from spam even while you sleep. To get started: 1) Click the "Activate" link to the left of this description, 2) <a href="http://akismet.com/get/?return=true">Sign up for an Akismet API key</a>, and 3) Go to your Akismet configuration page, and save your API key.
+Version: 2.5.7
 Author: Automattic
 Author URI: http://automattic.com/wordpress-plugins/
 License: GPLv2 or later
@@ -28,7 +28,13 @@
 Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
 */
 
-define('AKISMET_VERSION', '2.5.6');
+// Make sure we don't expose any info if called directly
+if ( !function_exists( 'add_action' ) ) {
+	echo 'Hi there!  I\'m just a plugin, not much I can do when called directly.';
+	exit;
+}
+
+define('AKISMET_VERSION', '2.5.7');
 define('AKISMET_PLUGIN_URL', plugin_dir_url( __FILE__ ));
 
 /** If you hardcode a WP.com API key here, all key config screens will be hidden */
@@ -37,12 +43,6 @@
 else
 	$wpcom_api_key = '';
 
-// Make sure we don't expose any info if called directly
-if ( !function_exists( 'add_action' ) ) {
-	echo "Hi there!  I'm just a plugin, not much I can do when called directly.";
-	exit;
-}
-
 if ( isset($wp_db_version) && $wp_db_version <= 9872 )
 	include_once dirname( __FILE__ ) . '/legacy.php';
 
@@ -110,7 +110,7 @@
 }
 
 // return a comma-separated list of role names for the given user
-function akismet_get_user_roles($user_id ) {
+function akismet_get_user_roles( $user_id ) {
 	$roles = false;
 	
 	if ( !class_exists('WP_User') )
@@ -277,10 +277,13 @@
 	if ( !function_exists('add_comment_meta') )
 		return false;
 
+	if ( !isset( $akismet_last_comment['comment_author_email'] ) )
+		$akismet_last_comment['comment_author_email'] = '';
+
 	// wp_insert_comment() might be called in other contexts, so make sure this is the same comment
 	// as was checked by akismet_auto_check_comment
 	if ( is_object($comment) && !empty($akismet_last_comment) && is_array($akismet_last_comment) ) {
-		if ( intval($akismet_last_comment['comment_post_ID']) == intval($comment->comment_post_ID)
+		if ( isset($akismet_last_comment['comment_post_ID']) && intval($akismet_last_comment['comment_post_ID']) == intval($comment->comment_post_ID)
 			&& $akismet_last_comment['comment_author'] == $comment->comment_author
 			&& $akismet_last_comment['comment_author_email'] == $comment->comment_author_email ) {
 				// normal result: true or false
@@ -319,15 +322,15 @@
 
 	$comment = $commentdata;
 	$comment['user_ip']    = $_SERVER['REMOTE_ADDR'];
-	$comment['user_agent'] = $_SERVER['HTTP_USER_AGENT'];
-	$comment['referrer']   = $_SERVER['HTTP_REFERER'];
+	$comment['user_agent'] = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : null; 
+	$comment['referrer']   = isset($_SERVER['HTTP_REFERER']) ? $_SERVER['HTTP_REFERER'] : null;
 	$comment['blog']       = get_option('home');
 	$comment['blog_lang']  = get_locale();
 	$comment['blog_charset'] = get_option('blog_charset');
 	$comment['permalink']  = get_permalink($comment['comment_post_ID']);
 	
 	if ( !empty( $comment['user_ID'] ) ) {
-		$comment['user_role'] = akismet_get_user_roles($comment['user_ID']);
+		$comment['user_role'] = akismet_get_user_roles( $comment['user_ID'] );
 	}
 
 	$akismet_nonce_option = apply_filters( 'akismet_comment_nonce', get_option( 'akismet_comment_nonce' ) );
@@ -370,6 +373,7 @@
 	$commentdata['comment_as_submitted'] = $comment;
 
 	$response = akismet_http_post($query_string, $akismet_api_host, '/1.1/comment-check', $akismet_api_port);
+	do_action( 'akismet_comment_check_response', $response );
 	akismet_update_alert( $response );
 	$commentdata['akismet_result'] = $response[1];
 	if ( 'true' == $response[1] ) {
@@ -386,7 +390,8 @@
 			// akismet_result_spam() won't be called so bump the counter here
 			if ( $incr = apply_filters('akismet_spam_count_incr', 1) )
 				update_option( 'akismet_spam_count', get_option('akismet_spam_count') + $incr );
-			wp_safe_redirect( $_SERVER['HTTP_REFERER'] );
+			$redirect_to = isset( $_SERVER['HTTP_REFERER'] ) ? $_SERVER['HTTP_REFERER'] : get_permalink( $post );
+			wp_safe_redirect( $redirect_to );
 			die();
 		}
 	}
@@ -498,7 +503,7 @@
     $query_string .= $key . '=' . urlencode( stripslashes($data) ) . '&';
 
     $response = akismet_http_post($query_string, $akismet_api_host, '/1.1/comment-check', $akismet_api_port);
-    return $response[1];
+    return ( is_array( $response ) && isset( $response[1] ) ) ? $response[1] : false;
 }
 
 function akismet_cron_recheck() {
@@ -565,7 +570,7 @@
 		delete_comment_meta( $comment_id, 'akismet_rechecking' );
 	}
 	
-	$remaining = $wpdb->get_var( $wpdb->prepare( "SELECT COUNT(*) FROM $wpdb->commentmeta WHERE meta_key = 'akismet_error'" ) );
+	$remaining = $wpdb->get_var( "SELECT COUNT(*) FROM $wpdb->commentmeta WHERE meta_key = 'akismet_error'" );
 	if ( $remaining && !wp_next_scheduled('akismet_schedule_cron_recheck') ) {
 		wp_schedule_single_event( time() + 1200, 'akismet_schedule_cron_recheck' );
 	}
--- a/web/wp-content/plugins/akismet/readme.txt	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-content/plugins/akismet/readme.txt	Wed Dec 19 17:46:52 2012 -0800
@@ -2,8 +2,8 @@
 Contributors: matt, ryan, andy, mdawaffe, tellyworth, josephscott, lessbloat, automattic
 Tags: akismet, comments, spam
 Requires at least: 3.0
-Tested up to: 3.4
-Stable tag: 2.5.6
+Tested up to: 3.5
+Stable tag: 2.5.7
 License: GPLv2 or later
 
 Akismet checks your comments against the Akismet web service to see if they look like spam or not.
@@ -31,6 +31,15 @@
 
 == Changelog ==
 
+= 2.5.7 =
+* FireFox Stats iframe preview bug
+* Fix mshots preview when using https
+* Add .htaccess to block direct access to files
+* Prevent some PHP notices
+* Fix Check For Spam return location when referrer is empty
+* Fix Settings links for network admins
+* Fix prepare() warnings in WP 3.5
+
 = 2.5.6 =
 * Prevent retry scheduling problems on sites where wp_cron is misbehaving
 * Preload mshot previews
--- a/web/wp-content/plugins/all-in-one-seo-pack/aioseop.class.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-content/plugins/all-in-one-seo-pack/aioseop.class.php	Wed Dec 19 17:46:52 2012 -0800
@@ -2,7 +2,7 @@
 
 class All_in_One_SEO_Pack {
 	
- 	var $version = "1.6.15.2";
+ 	var $version = "1.6.15.3";
  	
  	/** Max numbers of chars in auto-generated description */
  	var $maximum_description_length = 160;
@@ -121,12 +121,13 @@
 		if (is_single() || is_page()) {
 		    $aiosp_disable = htmlspecialchars(stripcslashes(get_post_meta($post->ID, '_aioseop_disable', true)));
 		    if ($aiosp_disable) {
+				$aiosp_disable_analytics = htmlspecialchars(stripcslashes( get_post_meta( $post->ID, '_aioseop_disable_analytics', true ) ) );
+				if ( $aiosp_disable_analytics )
+					remove_action( 'wp_head', array( $this, 'aiosp_google_analytics' ) );
 		    	return;
 		    }
 		}
 
-
-
 		if ($aioseop_options['aiosp_rewrite_titles']) {
 			ob_start(array($this, 'output_callback_for_title'));
 		}
@@ -222,13 +223,14 @@
 		if (is_single() || is_page()) {
 		    $aiosp_disable = htmlspecialchars(stripcslashes(get_post_meta($post->ID, '_aioseop_disable', true)));
 		    if ($aiosp_disable) {
-		    	return;
+			$aiosp_disable_analytics = htmlspecialchars(stripcslashes( get_post_meta( $post->ID, '_aioseop_disable_analytics', true ) ) );
+			if ( $aiosp_disable_analytics )
+				remove_action( 'wp_head', array( $this, 'aiosp_google_analytics' ) );
+			return;
 		    }
 		}
 		
-			if( $this->aioseop_mrt_exclude_this_page()==TRUE ){
-				return;
-			}
+		if( $this->aioseop_mrt_exclude_this_page()==TRUE ) return;
 		
 		if ($aioseop_options['aiosp_rewrite_titles']) {
 			// make the title rewrite as short as possible
@@ -343,7 +345,7 @@
 			$page_meta = stripcslashes($aioseop_options['aiosp_page_meta_tags']);
 			$post_meta = stripcslashes($aioseop_options['aiosp_post_meta_tags']);
 			$home_meta = stripcslashes($aioseop_options['aiosp_home_meta_tags']);
-			$front_meta = stripcslashes($aioseop_options['aiosp_front_meta_tags']);
+			$front_meta = isset( $aioseop_options['aiosp_front_meta_tags'] ) ? '' : stripcslashes( $aioseop_options['aiosp_front_meta_tags'] );
 			
 			if ( is_page() && isset( $page_meta ) && !empty( $page_meta ) && ( !$is_front_page || empty( $front_meta ) ) ) {
 				if ( isset( $meta_string ) ) $meta_string .= "\n";
@@ -401,17 +403,18 @@
 			
 function aiosp_google_analytics(){
 	global $aioseop_options;
-	
 	?>
 		<script type="text/javascript">
 
 		  var _gaq = _gaq || [];
 		  _gaq.push(['_setAccount', '<?php echo $aioseop_options['aiosp_google_analytics_id']; ?>']);
-<?php if ( !empty( $aioseop_options['aiosp_ga_domain'] ) ) {
+<?php if ( !empty( $aioseop_options['aiosp_ga_multi_domain'] ) ) {
+?>		  _gaq.push(['_setAllowLinker', true]);
+<?php }
+
+	  if ( !empty( $aioseop_options['aiosp_ga_domain'] ) ) {
 ?>		  _gaq.push(['_setDomainName', '<?php echo $aioseop_options['aiosp_ga_domain']; ?>']);
-<?php
-}
-?>
+<?php } ?>
 		  _gaq.push(['_trackPageview']);
 
 		  (function() {
@@ -1155,12 +1158,12 @@
 
 
 	function post_meta_tags($id) {
-	    $awmp_edit = $_POST["aiosp_edit"];
-		$nonce = $_POST['nonce-aioseop-edit'];
+		$awmp_edit = isset( $_POST["aiosp_edit"] ) ? $_POST["aiosp_edit"] : null;
+		$nonce = isset( $_POST['nonce-aioseop-edit'] ) ? $_POST['nonce-aioseop-edit'] : null;
 //		if (!wp_verify_nonce($nonce, 'edit-aioseop-nonce')) die ( 'Security Check - If you receive this in error, log out and back in to WordPress');
 	    if (isset($awmp_edit) && !empty($awmp_edit) && wp_verify_nonce($nonce, 'edit-aioseop-nonce')) {
 		
-			foreach (Array('keywords', 'description', 'title', 'meta', 'disable', 'titleatr', 'menulabel', 'togglekeywords') as $f) {
+			foreach (Array('keywords', 'description', 'title', 'meta', 'disable', 'disable_analytics', 'titleatr', 'menulabel', 'togglekeywords') as $f) {
 				$field = "aiosp_$f";
 				if ( isset( $_POST[$field] ) ) $$field = $_POST[$field];
 		    }
@@ -1177,6 +1180,7 @@
 		
 		    if ($this->is_admin()) {
 		    	delete_post_meta($id, '_aioseop_disable');
+		    	delete_post_meta($id, '_aioseop_disable_analytics');
 		    }
 		    //delete_post_meta($id, 'aiosp_meta');
 
@@ -1194,10 +1198,13 @@
 		    }
 		    if (isset($aiosp_menulabel) && !empty($aiosp_menulabel)) {
 			    add_post_meta($id, '_aioseop_menulabel', $aiosp_menulabel);
-		    }				
+		    }
 		    if (isset($aiosp_disable) && !empty($aiosp_disable) && $this->is_admin()) {
 			    add_post_meta($id, '_aioseop_disable', $aiosp_disable);
 		    }
+		    if (isset($aiosp_disable_analytics) && !empty($aiosp_disable_analytics) && $this->is_admin()) {
+			    add_post_meta($id, '_aioseop_disable_analytics', $aiosp_disable_analytics);
+		    }
 		    /*
 		    if (isset($aiosp_meta) && !empty($aiosp_meta)) {
 			    add_post_meta($id, 'aiosp_meta', $aiosp_meta);
@@ -1280,6 +1287,7 @@
 	    $description = htmlspecialchars(stripcslashes(get_post_meta($post_id, '_aioseop_description', true)));
 	    $aiosp_meta = htmlspecialchars(stripcslashes(get_post_meta($post_id, '_aioseop_meta', true)));
 	    $aiosp_disable = htmlspecialchars(stripcslashes(get_post_meta($post_id, '_aioseop_disable', true)));
+	    $aiosp_disable_analytics = htmlspecialchars(stripcslashes(get_post_meta($post_id, '_aioseop_disable_analytics', true)));
 	    $aiosp_titleatr = htmlspecialchars(stripcslashes(get_post_meta($post_id, '_aioseop_titleatr', true)));
 	    $aiosp_menulabel = htmlspecialchars(stripcslashes(get_post_meta($post_id, '_aioseop_menulabel', true)));		
 	
@@ -1330,7 +1338,16 @@
 								<input type="checkbox" name="aiosp_disable" <?php if ($aiosp_disable) echo "checked=\"1\""; ?>/>
 							</td>
 						</tr>
-		
+<?php if ( $aiosp_disable ) { ?>
+						<tr>
+							<th scope="row" style="text-align:right; vertical-align:top;">
+								<?php _e('Disable Google Analytics:', 'all_in_one_seo_pack')?>
+							</th>
+							<td>
+								<input type="checkbox" name="aiosp_disable_analytics" <?php if ($aiosp_disable_analytics) echo "checked=\"1\""; ?>/>
+							</td>
+						</tr>
+<?php } ?>		
 						<tr>
 							<th scope="row" style="text-align:right;"><?php _e('Title Attribute:', 'all_in_one_seo_pack') ?></th>
 							<td><input value="<?php echo $aiosp_titleatr ?>" type="text" name="aiosp_titleatr" size="62"/></td>
@@ -1416,6 +1433,7 @@
 					"aiosp_paged_format"=>' - Part %page%',
 					"aiosp_google_analytics_id"=>null,
 					"aiosp_ga_domain"=>'',
+					"aiosp_ga_multi_domain"=>0,
 					"aiosp_ga_track_outbound_links"=>0,
 					"aiosp_google_publisher"=>'',
 					"aiosp_use_categories"=>0,
@@ -1451,7 +1469,7 @@
 				$options = Array(	"aiosp_can", "aiosp_donate", "aiosp_home_title", "aiosp_home_description", "aiosp_home_keywords", "aiosp_max_words_excerpt",
 									"aiosp_rewrite_titles", "aiosp_post_title_format", "aiosp_page_title_format", "aiosp_category_title_format",
 									"aiosp_archive_title_format", "aiosp_tag_title_format", "aiosp_search_title_format", "aiosp_description_format",
-									"aiosp_404_title_format", "aiosp_paged_format", "aiosp_google_publisher", "aiosp_google_analytics_id", "aiosp_ga_domain", "aiosp_ga_track_outbound_links",
+									"aiosp_404_title_format", "aiosp_paged_format", "aiosp_google_publisher", "aiosp_google_analytics_id", "aiosp_ga_domain", "aiosp_ga_multi_domain", "aiosp_ga_track_outbound_links",
 									"aiosp_use_categories", "aiosp_dynamic_postspage_keywords", "aiosp_category_noindex", "aiosp_archive_noindex",
 									"aiosp_tags_noindex", "aiosp_generate_descriptions", "aiosp_cap_cats", "aiosp_enablecpost", "aiosp_debug_info",
 									"aiosp_post_meta_tags", "aiosp_page_meta_tags", "aiosp_home_meta_tags", "aiosp_front_meta_tags", "aiosp_ex_pages", "aiosp_do_log",
@@ -2159,6 +2177,21 @@
 
 <tr>
 <th scope="row" style="text-align:right; vertical-align:top;">
+<a style="cursor:pointer;" title="<?php _e('Click for Help!', 'all_in_one_seo_pack')?>" onclick="toggleVisibility('aiosp_ga_multi_domain_tip');">
+<?php _e('Track Multiple Domains:', 'all_in_one_seo_pack')?>
+</td>
+<td>
+<input type="checkbox" name="aiosp_ga_multi_domain" <?php if ($aioseop_options['aiosp_ga_multi_domain']) echo "checked=\"1\""; ?>"/>
+<div style="max-width:500px; text-align:left; display:none" id="aiosp_ga_multi_domain_tip">
+<?php
+_e('Enable multi-domain tracking for Google Analytics.', 'all_in_one_seo_pack');
+ ?>
+</div>
+</td>
+</tr>
+
+<tr>
+<th scope="row" style="text-align:right; vertical-align:top;">
 <a style="cursor:pointer;" title="<?php _e('Click for Help!', 'all_in_one_seo_pack')?>" onclick="toggleVisibility('aiosp_ga_track_outbound_links_tip');">
 <?php _e('Track Outbound Links:', 'all_in_one_seo_pack')?>
 </td>
@@ -2379,7 +2412,7 @@
 </a>
 </td>
 <td>
-<textarea cols="57" rows="2" name="aiosp_front_meta_tags"><?php echo stripcslashes($aioseop_options['aiosp_front_meta_tags']); ?></textarea>
+<textarea cols="57" rows="2" name="aiosp_front_meta_tags"><?php if ( isset( $aioseop_options['aiosp_front_meta_tags'] ) ) echo stripcslashes($aioseop_options['aiosp_front_meta_tags']); ?></textarea>
 <div style="max-width:500px; text-align:left; display:none" id="aiosp_front_meta_tags_tip">
 <?php
 _e('What you enter here will be copied verbatim to your header on the front page. You can enter whatever additional headers you want here, even references to stylesheets.', 'all_in_one_seo_pack');
--- a/web/wp-content/plugins/all-in-one-seo-pack/aioseop_functions.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-content/plugins/all-in-one-seo-pack/aioseop_functions.php	Wed Dec 19 17:46:52 2012 -0800
@@ -349,6 +349,7 @@
 		$description = htmlspecialchars(stripcslashes(get_post_meta($post_id, '_aioseop_description', true)));
 	   	$aiosp_meta = htmlspecialchars(stripcslashes(get_post_meta($post_id, '_aiosp_meta', true)));
 	    	$aiosp_disable = htmlspecialchars(stripcslashes(get_post_meta($post_id, '_aioseop_disable', true)));
+	    	$aiosp_disable_analytics = htmlspecialchars(stripcslashes(get_post_meta($post_id, '_aioseop_disable_analytics', true)));
 	    	$aiosp_titleatr = htmlspecialchars(stripcslashes(get_post_meta($post_id, '_aioseop_titleatr', true)));
 	    	$aiosp_menulabel = htmlspecialchars(stripcslashes(get_post_meta($post_id, '_aioseop_menulabel', true)));	
 		?>
@@ -410,6 +411,18 @@
 			<input type="checkbox" name="aiosp_disable" <?php if ($aiosp_disable) echo "checked=\"1\""; ?>/>
 			</td>
 			</tr>
+
+<?php if ( $aiosp_disable ) { ?>
+                                                <tr>
+                                                        <th scope="row" style="text-align:right; vertical-align:top;">
+                                                                <?php _e('Disable Google Analytics:', 'all_in_one_seo_pack')?>
+                                                        </th>
+                                                        <td>
+                                                                <input type="checkbox" name="aiosp_disable_analytics" <?php if ($aiosp_disable_analytics) echo "checked=\"1\""; ?>/>
+                                                        </td>
+                                                </tr>
+<?php } ?>
+
 			</table>
 		<?php
 	}
--- a/web/wp-content/plugins/all-in-one-seo-pack/all_in_one_seo_pack.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-content/plugins/all-in-one-seo-pack/all_in_one_seo_pack.php	Wed Dec 19 17:46:52 2012 -0800
@@ -3,7 +3,7 @@
 Plugin Name: All in One SEO Pack
 Plugin URI: http://semperfiwebdesign.com
 Description: Out-of-the-box SEO for your WordPress blog. <a href="options-general.php?page=all-in-one-seo-pack/aioseop.class.php">Options configuration panel</a> | <a href="http://semperplugins.com/plugins/all-in-one-seo-pack-pro-version/">Upgrade to Pro Version</a> | <a href="https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=mrtorbert%40gmail%2ecom&item_name=All%20In%20One%20SEO%20Pack&item_number=Support%20Open%20Source&no_shipping=0&no_note=1&tax=0&currency_code=USD&lc=US&bn=PP%2dDonationsBF&charset=UTF%2d8">Donate</a> | <a href="http://semperfiwebdesign.com/forum/" >Support</a> |  <a href="https://www.amazon.com/wishlist/1NFQ133FNCOOA/ref=wl_web" target="_blank" title="Amazon Wish List">Amazon Wishlist</a>
-Version: 1.6.15.2
+Version: 1.6.15.3
 Author: Michael Torbert
 Author URI: http://michaeltorbert.com
 */
@@ -30,11 +30,11 @@
 
 /**
  * @package All-in-One-SEO-Pack
- * @version 1.6.15.2
+ * @version 1.6.15.3
  */
 
 if ( ! defined( 'AIOSEOP_VERSION' ) )
-    define( 'AIOSEOP_VERSION', '1.6.15.2' );
+    define( 'AIOSEOP_VERSION', '1.6.15.3' );
 
 if ( ! defined( 'AIOSEOP_PLUGIN_DIR' ) )
     define( 'AIOSEOP_PLUGIN_DIR', plugin_dir_path( __FILE__ ) );
@@ -95,6 +95,8 @@
 add_action( 'edit_post', array( $aiosp, 'post_meta_tags') );
 add_action( 'publish_post', array( $aiosp, 'post_meta_tags') );
 add_action( 'save_post', array( $aiosp, 'post_meta_tags') );
+add_action( 'add_attachment', array( $aiosp, 'post_meta_tags') );
+add_action( 'edit_attachment', array( $aiosp, 'post_meta_tags') );
 add_action( 'edit_page_form', array( $aiosp, 'post_meta_tags') );
 add_action( 'init', array( $aiosp, 'init' ), 5 );
 add_action( 'wp_head', array( $aiosp, 'wp_head') );
--- a/web/wp-content/plugins/all-in-one-seo-pack/readme.txt	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-content/plugins/all-in-one-seo-pack/readme.txt	Wed Dec 19 17:46:52 2012 -0800
@@ -3,7 +3,7 @@
 Donate link: https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=mrtorbert%40gmail%2ecom&item_name=All%20In%20One%20SEO%20Pack&item_number=Support%20Open%20Source&no_shipping=0&no_note=1&tax=0&currency_code=USD&lc=US&bn=PP%2dDonationsBF&charset=UTF%2d8
 Tags: seo, search engine optimization, google
 Requires at least: 3.0
-Tested up to: 3.4
+Tested up to: 3.5
 Stable tag: trunk
 
 WordPress SEO plugin to automatically optimize your Wordpress blog for Search Engines.
--- a/web/wp-content/plugins/bbpress/bbpress.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-content/plugins/bbpress/bbpress.php	Wed Dec 19 17:46:52 2012 -0800
@@ -5,7 +5,7 @@
  *
  * bbPress is forum software with a twist from the creators of WordPress.
  *
- * $Id: bbpress.php 4471 2012-11-23 11:24:58Z johnjamesjacoby $
+ * $Id: bbpress.php 4567 2012-12-11 09:20:41Z johnjamesjacoby $
  *
  * @package bbPress
  * @subpackage Main
@@ -17,7 +17,7 @@
  * Description: bbPress is forum software with a twist from the creators of WordPress.
  * Author:      The bbPress Community
  * Author URI:  http://bbpress.org
- * Version:     2.2.2
+ * Version:     2.2.3
  * Text Domain: bbpress
  * Domain Path: /languages/
  */
@@ -180,8 +180,8 @@
 
 		/** Versions **********************************************************/
 
-		$this->version    = '2.2.2';
-		$this->db_version = '220';
+		$this->version    = '2.2.3';
+		$this->db_version = '223';
 
 		/** Paths *************************************************************/
 
--- a/web/wp-content/plugins/bbpress/includes/admin/tools.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-content/plugins/bbpress/includes/admin/tools.php	Wed Dec 19 17:46:52 2012 -0800
@@ -380,6 +380,13 @@
 		update_option( '_bbp_group_forums_root_id', $posts[0]->ID );
 	}
 
+	// Remove bbPress 1.1 roles (BuddyPress)
+	remove_role( 'member'    );
+	remove_role( 'inactive'  );
+	remove_role( 'blocked'   );
+	remove_role( 'moderator' );
+	remove_role( 'keymaster' );
+
 	// Complete results
 	$result = sprintf( __( 'Complete! %s groups updated; %s forums updated.', 'bbpress' ), bbp_number_format( $g_count ), bbp_number_format( $f_count ) );
 	return array( 0, sprintf( $statement, $result ) );
@@ -1108,14 +1115,15 @@
 		/** Options ***********************************************************/
 
 		$statement  = __( 'Deleting Settings&hellip; %s', 'bbpress' );
-		$sql_delete = bbp_delete_options();
+		bbp_delete_options();
 		$messages[] = sprintf( $statement, $success );
 
 		/** Roles *************************************************************/
 
 		$statement  = __( 'Deleting Roles and Capabilities&hellip; %s', 'bbpress' );
-		$sql_delete = bbp_remove_roles();
-		$sql_delete = bbp_remove_caps();
+		remove_role( bbp_get_moderator_role() );
+		remove_role( bbp_get_participant_role() );
+		bbp_remove_caps();
 		$messages[] = sprintf( $statement, $success );
 
 		/** Output ************************************************************/
--- a/web/wp-content/plugins/bbpress/includes/admin/users.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-content/plugins/bbpress/includes/admin/users.php	Wed Dec 19 17:46:52 2012 -0800
@@ -93,11 +93,11 @@
 
 							<?php if ( ! empty( $user_role ) ) : ?>
 
-								<option value=""><?php _e( '&mdash; No role for this forum &mdash;', 'bbpress' ); ?></option>
+								<option value=""><?php _e( '&mdash; No role for these forums &mdash;', 'bbpress' ); ?></option>
 
 							<?php else : ?>
 
-								<option value="" selected="selected"><?php _e( '&mdash; No role for this forum &mdash;', 'bbpress' ); ?></option>
+								<option value="" selected="selected"><?php _e( '&mdash; No role for these forums &mdash;', 'bbpress' ); ?></option>
 
 							<?php endif; ?>
 
--- a/web/wp-content/plugins/bbpress/includes/common/template-tags.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-content/plugins/bbpress/includes/common/template-tags.php	Wed Dec 19 17:46:52 2012 -0800
@@ -1463,7 +1463,7 @@
 
 	if ( bbp_is_reply_edit() ) : ?>
 
-		<input type="hidden" name="bbp_reply_title" id="bbp_reply_title" value="<?php printf( __( 'Reply To: %s', 'bbpress' ), bbp_get_topic_title() ); ?>" />
+		<input type="hidden" name="bbp_reply_title" id="bbp_reply_title" value="<?php bbp_reply_title(); ?>" />
 		<input type="hidden" name="bbp_reply_id"    id="bbp_reply_id"    value="<?php bbp_reply_id(); ?>" />
 		<input type="hidden" name="action"          id="bbp_post_action" value="bbp-edit-reply" />
 
@@ -2002,7 +2002,7 @@
 		/** Ancestors *********************************************************/
 
 		// Get post ancestors
-		if ( is_page() || is_single() || bbp_is_forum_edit() || bbp_is_topic_edit() || bbp_is_reply_edit() )
+		if ( is_singular() || bbp_is_forum_edit() || bbp_is_topic_edit() || bbp_is_reply_edit() )
 			$ancestors = array_reverse( (array) get_post_ancestors( get_the_ID() ) );
 
 		// Do we want to include a link to home?
--- a/web/wp-content/plugins/bbpress/includes/core/theme-compat.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-content/plugins/bbpress/includes/core/theme-compat.php	Wed Dec 19 17:46:52 2012 -0800
@@ -647,14 +647,18 @@
  * normally be handled by bbPress, but proper single page templates do not
  * exist in the currently active theme.
  *
+ * Note that we do *not* currently use is_main_query() here. This is because so
+ * many existing themes either use query_posts() or fail to use wp_reset_query()
+ * when running queries before the main loop, causing theme compat to fail.
+ *
  * @since bbPress (r3034)
  * @param string $content
  * @return type
  */
 function bbp_replace_the_content( $content = '' ) {
 
-	// Bail if not inside the main query loop
-	if ( ! in_the_loop() || ! is_main_query() )
+	// Bail if not inside the query loop
+	if ( ! in_the_loop() )
 		return $content;
 
 	$bbp = bbpress();
--- a/web/wp-content/plugins/bbpress/includes/core/update.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-content/plugins/bbpress/includes/core/update.php	Wed Dec 19 17:46:52 2012 -0800
@@ -246,14 +246,13 @@
 	/** 2.2 Branch ************************************************************/
 
 	// 2.2
-	if ( $raw_db_version < 220 ) {
+	if ( $raw_db_version < 223 ) {
 
-		// Remove bbPress 1.1 roles (BuddyPress)
-		remove_role( 'member'    );
-		remove_role( 'inactive'  );
-		remove_role( 'blocked'   );
-		remove_role( 'moderator' );
-		remove_role( 'keymaster' );
+		// Remove the Moderator role from the database
+		remove_role( bbp_get_moderator_role() );
+
+		// Remove the Participant role from the database
+		remove_role( bbp_get_participant_role() );
 
 		// Refresh capabilities
 		bbp_remove_caps();
--- a/web/wp-content/plugins/bbpress/includes/extend/buddypress/activity.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-content/plugins/bbpress/includes/extend/buddypress/activity.php	Wed Dec 19 17:46:52 2012 -0800
@@ -254,7 +254,7 @@
 	private function record_activity( $args = '' ) {
 
 		// Default activity args
-		$defaults = array (
+		$activity = bbp_parse_args( $args, array(
 			'id'                => null,
 			'user_id'           => bbp_get_current_user_id(),
 			'type'              => '',
@@ -266,8 +266,7 @@
 			'component'         => $this->component,
 			'recorded_time'     => bp_core_current_time(),
 			'hide_sitewide'     => false
-		);
-		$activity = bbp_parse_args( $args, $defaults, 'record_activity' );
+		), 'record_activity' );
 
 		// Add the activity
 		return bp_activity_add( $activity );
@@ -447,22 +446,18 @@
 		if ( !bbp_is_topic_published( $topic_id ) )
 			return;
 
-		// Bail if forum is not public
-		if ( !bbp_is_forum_public( $forum_id, false ) )
-			return;
-
 		// User link for topic author
 		$user_link  = bbp_get_user_profile_link( $user_id  );
 
 		// Topic
 		$topic_permalink = bbp_get_topic_permalink( $topic_id );
-		$topic_title     = bbp_get_topic_title    ( $topic_id );
-		$topic_content   = bbp_get_topic_content  ( $topic_id );
+		$topic_title     = get_post_field( 'post_title',   $topic_id, 'raw' );
+		$topic_content   = get_post_field( 'post_content', $topic_id, 'raw' );
 		$topic_link      = '<a href="' . $topic_permalink . '" title="' . $topic_title . '">' . $topic_title . '</a>';
 
 		// Forum
 		$forum_permalink = bbp_get_forum_permalink( $forum_id );
-		$forum_title     = bbp_get_forum_title    ( $forum_id );
+		$forum_title     = get_post_field( 'post_title', $forum_id, 'raw' );
 		$forum_link      = '<a href="' . $forum_permalink . '" title="' . $forum_title . '">' . $forum_title . '</a>';
 
 		// Activity action & text
@@ -481,6 +476,7 @@
 			'item_id'           => $topic_id,
 			'secondary_item_id' => $forum_id,
 			'recorded_time'     => get_post_time( 'Y-m-d H:i:s', true, $topic_id ),
+			'hide_sitewide'     => ! bbp_is_forum_public( $forum_id, false )
 		);
 
 		// Record the activity
@@ -597,25 +593,21 @@
 		if ( !bbp_is_reply_published( $reply_id ) )
 			return;
 
-		// Bail if forum is not public
-		if ( !bbp_is_forum_public( $forum_id, false ) )
-			return;
-
 		// Setup links for activity stream
 		$user_link  = bbp_get_user_profile_link( $user_id  );
 
 		// Reply
-		$reply_url     = bbp_get_reply_url    ( $reply_id );
-		$reply_content = bbp_get_reply_content( $reply_id );
+		$reply_url     = bbp_get_reply_url( $reply_id );
+		$reply_content = get_post_field( 'post_content', $reply_id, 'raw' );
 
 		// Topic
 		$topic_permalink = bbp_get_topic_permalink( $topic_id );
-		$topic_title     = bbp_get_topic_title    ( $topic_id );
+		$topic_title     = get_post_field( 'post_title', $topic_id, 'raw' );
 		$topic_link      = '<a href="' . $topic_permalink . '" title="' . $topic_title . '">' . $topic_title . '</a>';
 
 		// Forum
 		$forum_permalink = bbp_get_forum_permalink( $forum_id );
-		$forum_title     = bbp_get_forum_title    ( $forum_id );
+		$forum_title     = get_post_field( 'post_title', $forum_id, 'raw' );
 		$forum_link      = '<a href="' . $forum_permalink . '" title="' . $forum_title . '">' . $forum_title . '</a>';
 
 		// Activity action & text
@@ -634,6 +626,7 @@
 			'item_id'           => $reply_id,
 			'secondary_item_id' => $topic_id,
 			'recorded_time'     => get_post_time( 'Y-m-d H:i:s', true, $reply_id ),
+			'hide_sitewide'     => ! bbp_is_forum_public( $forum_id, false )
 		);
 
 		// Record the activity
@@ -706,3 +699,4 @@
 	}
 }
 endif;
+
--- a/web/wp-content/plugins/bbpress/includes/extend/buddypress/functions.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-content/plugins/bbpress/includes/extend/buddypress/functions.php	Wed Dec 19 17:46:52 2012 -0800
@@ -385,7 +385,7 @@
 
 	// Maybe update the groups forums
 	if ( in_array( $group_id, $group_ids ) ) {
-		unset( $group_ids[$group_id] );
+		$group_ids = array_diff( array_values( $group_ids ), (array) $group_id );
 		return bbp_update_forum_group_ids( $forum_id, $group_ids );
 	}
 }
@@ -410,7 +410,7 @@
 
 	// Maybe update the groups forums
 	if ( in_array( $forum_id, $forum_ids ) ) {
-		unset( $forum_ids[$forum_id] );
+		$forum_ids = array_diff( array_values( $forum_ids ), (array) $forum_id );
 		return bbp_update_group_forum_ids( $group_id, $forum_ids );
 	}
 }
--- a/web/wp-content/plugins/bbpress/includes/extend/buddypress/group.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-content/plugins/bbpress/includes/extend/buddypress/group.php	Wed Dec 19 17:46:52 2012 -0800
@@ -31,6 +31,18 @@
 	 * @since bbPress (r3552)
 	 */
 	public function __construct() {
+		$this->setup_variables();
+		$this->setup_actions();
+		$this->setup_filters();
+		$this->maybe_unset_forum_menu();
+	}
+
+	/**
+	 * Setup the group forums class variables
+	 *
+	 * @since bbPress ()
+	 */
+	private function setup_variables() {
 
 		// Name and slug
 		$this->name          = __( 'Forum', 'bbpress' );
@@ -54,17 +66,28 @@
 		// Template file to load, and action to hook display on to
 		$this->template_file        = 'groups/single/plugins';
 		$this->display_hook         = 'bp_template_content';
+	}
 
-		// Add handlers to bp_actions
-		add_action( 'bp_actions', 'bbp_new_forum_handler'  );
-		add_action( 'bp_actions', 'bbp_new_topic_handler'  );
-		add_action( 'bp_actions', 'bbp_new_reply_handler'  );
-		add_action( 'bp_actions', 'bbp_edit_forum_handler' );
-		add_action( 'bp_actions', 'bbp_edit_topic_handler' );
-		add_action( 'bp_actions', 'bbp_edit_reply_handler' );
+	/**
+	 * Setup the group forums class actions
+	 *
+	 * @since bbPress (r4552)
+	 */
+	private function setup_actions() {
 
 		// Possibly redirect
-		add_action( 'bbp_template_redirect',     array( $this, 'redirect_canonical' ) );
+		add_action( 'bbp_template_redirect',         array( $this, 'redirect_canonical'        ) );
+
+		// Remove topic cap map when view is done
+		add_action( 'bbp_after_group_forum_display', array( $this, 'remove_topic_meta_cap_map' ) );
+	}
+
+	/**
+	 * Setup the group forums class filters
+	 *
+	 * @since bbPress (r4552)
+	 */
+	private function setup_filters() {
 
 		// Group forum pagination
 		add_filter( 'bbp_topic_pagination',      array( $this, 'topic_pagination'   ) );
@@ -91,9 +114,6 @@
 		add_filter( 'bbp_map_topic_meta_caps',   array( $this, 'map_topic_meta_caps'          ), 10, 4 );
 		add_filter( 'bbp_map_reply_meta_caps',   array( $this, 'map_topic_meta_caps'          ), 10, 4 );
 
-		// Remove topic cap map when view is done
-		add_action( 'bbp_after_group_forum_display', array( $this, 'remove_topic_meta_cap_map' ) );
-		
 		// Map group forum activity items to groups
 		add_filter( 'bbp_before_record_activity_parse_args', array( $this, 'map_activity_to_group' ) );
 
@@ -123,6 +143,26 @@
 	}
 
 	/**
+	 * Maybe unset the group forum nav item if group does not have a forum
+	 *
+	 * @since bbPress (r4552)
+	 *
+	 * @return If not viewing a single group
+	 */
+	public function maybe_unset_forum_menu() {
+
+		// Bail if not viewing a single group
+		if ( ! bp_is_group() )
+			return;
+
+		// Are forums enabled for this group?
+		$checked = (bool) ( bp_get_new_group_enable_forum() );
+
+		// Tweak the nav item variable based on if group has forum or not
+		$this->enable_nav_item = $checked;
+	}
+
+	/**
 	 * Allow group members to have advanced priviledges in group forum topics.
 	 *
 	 * @since bbPress (r4434)
@@ -147,7 +187,7 @@
 			case 'publish_topics'      :
 			case 'read_hidden_forums'  :
 			case 'read_private_forums' :
-				if ( bp_group_is_member() ) {
+				if ( bp_group_is_member() || bp_group_is_mod() || bp_group_is_admin() ) {
 					$caps = array( 'participate' );
 				}
 				break;
@@ -234,15 +274,62 @@
 		$edit_forum   = !empty( $_POST['bbp-edit-group-forum'] ) ? true : false;
 		$forum_id     = 0;
 		$group_id     = bp_get_current_group_id();
-		$forum_ids    = bbp_get_group_forum_ids( $group_id );
-		if ( !empty( $forum_ids ) )
-			$forum_id = (int) is_array( $forum_ids ) ? $forum_ids[0] : $forum_ids;
+		$forum_ids    = array_values( bbp_get_group_forum_ids( $group_id ) );
+
+		// Normalize group forum relationships now
+		if ( !empty( $forum_ids ) ) {
+
+			// Loop through forums, and make sure they exist
+			foreach ( $forum_ids as $forum_id ) {
+
+				// Look for forum
+				$forum = bbp_get_forum( $forum_id );
+
+				// No forum exists, so break the relationship
+				if ( empty( $forum ) ) {
+					$this->remove_forum( array( 'forum_id' => $forum_id ) );
+					unset( $forum_ids[$forum_id] );
+				}
+			}
+
+			// No support for multiple forums yet
+			$forum_id = (int) ( is_array( $forum_ids ) ? $forum_ids[0] : $forum_ids );
+		}
 
 		// Update the group forum setting
 		$group               = new BP_Groups_Group( $group_id );
 		$group->enable_forum = $edit_forum;
 		$group->save();
 
+		// Create a new forum
+		if ( empty( $forum_id ) && ( true === $edit_forum ) ) {
+
+			// Set the default forum status
+			switch ( $group->status ) {
+				case 'hidden'  :
+					$status = bbp_get_hidden_status_id();
+					break;
+				case 'private' :
+					$status = bbp_get_private_status_id();
+					break;
+				case 'public'  :
+				default        :
+					$status = bbp_get_public_status_id();
+					break;
+			}
+
+			// Create the initial forum
+			$forum_id = bbp_insert_forum( array(
+				'post_parent'  => bbp_get_group_forums_root_id(),
+				'post_title'   => $group->name,
+				'post_content' => $group->description,
+				'post_status'  => $status
+			) );
+
+			// Run the BP-specific functions for new groups
+			$this->new_forum( array( 'forum_id' => $forum_id ) );
+		}
+
 		// Redirect after save
 		bp_core_redirect( trailingslashit( bp_get_group_permalink( buddypress()->groups->current_group ) . '/admin/' . $this->slug ) );
 	}
@@ -425,6 +512,7 @@
 		$bbp = bbpress();
 
 		// Forum data
+		$forum_slug = bp_action_variable( $offset );
 		$forum_ids  = bbp_get_group_forum_ids( bp_get_current_group_id() );
 		$forum_args = array( 'post__in' => $forum_ids, 'post_parent' => null );
 
@@ -452,7 +540,7 @@
 			<?php
 
 			// Looking at the group forum root
-			if ( !bp_action_variable( $offset ) ) :
+			if ( empty( $forum_slug ) || ( 'page' == $forum_slug ) ) :
 
 				// Query forums and show them if they exist
 				if ( !empty( $forum_ids ) && bbp_has_forums( $forum_args ) ) :
@@ -460,10 +548,15 @@
 					// Only one forum found
 					if ( 1 == $bbp->forum_query->post_count ) :
 
-						// Get forum data
-						$forum_slug = bp_action_variable( $offset );
-						$forum_args = array( 'name' => $forum_slug, 'post_type' => bbp_get_forum_post_type() );
-						$forums     = get_posts( $forum_args );
+						// Remove 'name' check for paginated requests
+						if ( 'page' == $forum_slug ) {
+							$forum_args = array( 'post_type' => bbp_get_forum_post_type() );
+						} else {
+							$forum_args = array( 'name' => $forum_slug, 'post_type' => bbp_get_forum_post_type() );
+						}
+
+						// Get the forums
+						$forums = get_posts( $forum_args );
 
 						bbp_the_forum();
 
@@ -475,18 +568,18 @@
 							add_filter( 'bbp_get_forum_subforum_count', '__return_false' );
 
 							// Set up forum data
-							$forum_id = bbpress()->current_forum_id = $forum->ID;
+							bbpress()->current_forum_id = $forum->ID;
 							bbp_set_query_name( 'bbp_single_forum' ); ?>
 
 							<h3><?php bbp_forum_title(); ?></h3>
 
 							<?php bbp_get_template_part( 'content', 'single-forum' ); ?>
 
-							<?php 
+							<?php
 
 							// Remove the subforum suppression filter
 							remove_filter( 'bbp_get_forum_subforum_count', '__return_false' );
-							
+
 							?>
 
 						<?php else : ?>
@@ -571,7 +664,6 @@
 						$post                        = $forum;
 
 						bbp_set_query_name( 'bbp_forum_form' );
-
 						bbp_get_template_part( 'form', 'forum' );
 
 					else :
@@ -625,13 +717,11 @@
 						// Merge
 						if ( !empty( $_GET['action'] ) && 'merge' == $_GET['action'] ) :
 							bbp_set_query_name( 'bbp_topic_merge' );
-
 							bbp_get_template_part( 'form', 'topic-merge' );
 
 						// Split
 						elseif ( !empty( $_GET['action'] ) && 'split' == $_GET['action'] ) :
 							bbp_set_query_name( 'bbp_topic_split' );
-
 							bbp_get_template_part( 'form', 'topic-split' );
 
 						// Edit
@@ -643,7 +733,6 @@
 
 					// Single Topic
 					else:
-
 						bbp_set_query_name( 'bbp_single_topic' ); ?>
 
 						<h3><?php bbp_topic_title(); ?></h3>
@@ -862,7 +951,7 @@
 				return $url;
 				break;
 		}
-		
+
 		// Get group ID's for this forum
 		$group_ids = bbp_get_forum_group_ids( $forum_id );
 
@@ -1021,7 +1110,7 @@
 
 		return $args;
 	}
-	
+
 	/**
 	 * Ensure that forum content associated with a BuddyPress group can only be
 	 * viewed via the group URL.
@@ -1096,6 +1185,6 @@
 		$args['item_id']           = $group->id;
 
 		return $args;
-	}	
+	}
 }
 endif;
--- a/web/wp-content/plugins/bbpress/includes/users/template-tags.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-content/plugins/bbpress/includes/users/template-tags.php	Wed Dec 19 17:46:52 2012 -0800
@@ -1014,7 +1014,7 @@
 		unset( $dynamic_roles[ bbp_get_keymaster_role() ] ); ?>
 
 	<select name="bbp-forums-role" id="bbp-forums-role">
-		<option value=""><?php _e( '&mdash; No role for this forum &mdash;', 'bbpress' ); ?></option>
+		<option value=""><?php _e( '&mdash; No role for these forums &mdash;', 'bbpress' ); ?></option>
 
 		<?php foreach ( $dynamic_roles as $role => $details ) : ?>
 
@@ -1509,7 +1509,7 @@
 	}
 
 	// Allow access to be filtered
-	return (bool) apply_filters( 'bbp_current_user_can_publish_forums', $retval );
+	return (bool) apply_filters( 'bbp_current_user_can_publish_topics', $retval );
 }
 
 /**
--- a/web/wp-content/plugins/bbpress/readme.txt	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-content/plugins/bbpress/readme.txt	Wed Dec 19 17:46:52 2012 -0800
@@ -3,7 +3,7 @@
 Tags: forums, discussion, support, theme, akismet, multisite
 Requires at least: 3.4
 Tested up to: 3.5
-Stable tag: 2.2.2
+Stable tag: 2.2.3
 License: GPLv2 or later
 License URI: http://www.gnu.org/licenses/gpl-2.0.html
 
@@ -26,6 +26,11 @@
 
 == Changelog ==
 
+= 2.2.3 =
+* Improve compatibility with some themes
+* Fix integration with BuddyPress Group Forums
+* Fix BuddyPress Activity Stream integration
+
 = 2.2.2 =
 * RTL and i18n fixes
 * Improved user profile theme compatibility
--- a/web/wp-content/plugins/bbpress/templates/default/bbpress/user-details.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-content/plugins/bbpress/templates/default/bbpress/user-details.php	Wed Dec 19 17:46:52 2012 -0800
@@ -16,7 +16,7 @@
 
 			<span class='vcard'>
 				<a class="url fn n" href="<?php bbp_user_profile_url(); ?>" title="<?php bbp_displayed_user_field( 'display_name' ); ?>" rel="me">
-					<?php echo get_avatar( bbp_get_displayed_user_field( 'user_email' ), apply_filters( 'twentyten_author_bio_avatar_size', 150 ) ); ?>
+					<?php echo get_avatar( bbp_get_displayed_user_field( 'user_email' ), apply_filters( 'bbp_single_user_details_avatar_size', 150 ) ); ?>
 				</a>
 			</span>
 
Binary file web/wp-content/plugins/duplicator/css/images/ui-bg_glass_95_fef1ec_1x400.png has changed
Binary file web/wp-content/plugins/duplicator/css/images/ui-icons_2e83ff_256x240.png has changed
--- a/web/wp-content/plugins/duplicator/css/jquery-ui.css	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-content/plugins/duplicator/css/jquery-ui.css	Wed Dec 19 17:46:52 2012 -0800
@@ -1,565 +1,8 @@
-/*!
- * jQuery UI CSS Framework 1.8.21
- *
- * Copyright 2012, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Theming/API
- */
-
-/* Layout helpers
-----------------------------------*/
-.ui-helper-hidden { display: none; }
-.ui-helper-hidden-accessible { position: absolute !important; clip: rect(1px 1px 1px 1px); clip: rect(1px,1px,1px,1px); }
-.ui-helper-reset { margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; }
-.ui-helper-clearfix:before, .ui-helper-clearfix:after { content: ""; display: table; }
-.ui-helper-clearfix:after { clear: both; }
-.ui-helper-clearfix { zoom: 1; }
-.ui-helper-zfix { width: 100%; height: 100%; top: 0; left: 0; position: absolute; opacity: 0; filter:Alpha(Opacity=0); }
-
-
-/* Interaction Cues
-----------------------------------*/
-.ui-state-disabled { cursor: default !important; }
-
-
-/* Icons
-----------------------------------*/
-
-/* states and images */
-.ui-icon { display: block; text-indent: -99999px; overflow: hidden; background-repeat: no-repeat; }
-
-
-/* Misc visuals
-----------------------------------*/
-
-/* Overlays */
-.ui-widget-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }
-
-
-/*!
- * jQuery UI CSS Framework 1.8.21
- *
- * Copyright 2012, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Theming/API
- *
- * To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Verdana,Arial,sans-serif&fwDefault=normal&fsDefault=1.1em&cornerRadius=4px&bgColorHeader=cccccc&bgTextureHeader=03_highlight_soft.png&bgImgOpacityHeader=75&borderColorHeader=aaaaaa&fcHeader=222222&iconColorHeader=222222&bgColorContent=ffffff&bgTextureContent=01_flat.png&bgImgOpacityContent=75&borderColorContent=aaaaaa&fcContent=222222&iconColorContent=222222&bgColorDefault=e6e6e6&bgTextureDefault=02_glass.png&bgImgOpacityDefault=75&borderColorDefault=d3d3d3&fcDefault=555555&iconColorDefault=888888&bgColorHover=dadada&bgTextureHover=02_glass.png&bgImgOpacityHover=75&borderColorHover=999999&fcHover=212121&iconColorHover=454545&bgColorActive=ffffff&bgTextureActive=02_glass.png&bgImgOpacityActive=65&borderColorActive=aaaaaa&fcActive=212121&iconColorActive=454545&bgColorHighlight=fbf9ee&bgTextureHighlight=02_glass.png&bgImgOpacityHighlight=55&borderColorHighlight=fcefa1&fcHighlight=363636&iconColorHighlight=2e83ff&bgColorError=fef1ec&bgTextureError=02_glass.png&bgImgOpacityError=95&borderColorError=cd0a0a&fcError=cd0a0a&iconColorError=cd0a0a&bgColorOverlay=aaaaaa&bgTextureOverlay=01_flat.png&bgImgOpacityOverlay=0&opacityOverlay=30&bgColorShadow=aaaaaa&bgTextureShadow=01_flat.png&bgImgOpacityShadow=0&opacityShadow=30&thicknessShadow=8px&offsetTopShadow=-8px&offsetLeftShadow=-8px&cornerRadiusShadow=8px
- */
-
-
-/* Component containers
-----------------------------------*/
-.ui-widget { font-family: Verdana,Arial,sans-serif; font-size: 1.1em; }
-.ui-widget .ui-widget { font-size: 1em; }
-.ui-widget input, .ui-widget select, .ui-widget textarea, .ui-widget button { font-family: Verdana,Arial,sans-serif; font-size: 1em; }
-.ui-widget-content { border: 1px solid #aaaaaa; background: #ffffff url(images/ui-bg_flat_75_ffffff_40x100.png) 50% 50% repeat-x; color: #222222; }
-.ui-widget-content a { color: #222222; }
-.ui-widget-header { border: 1px solid #aaaaaa; background: #cccccc url(images/ui-bg_highlight-soft_75_cccccc_1x100.png) 50% 50% repeat-x; color: #222222; font-weight: bold; }
-.ui-widget-header a { color: #222222; }
-
-/* Interaction states
-----------------------------------*/
-.ui-state-default, .ui-widget-content .ui-state-default, .ui-widget-header .ui-state-default { border: 1px solid #d3d3d3; background: #e6e6e6 url(images/ui-bg_glass_75_e6e6e6_1x400.png) 50% 50% repeat-x; font-weight: normal; color: #555555; }
-.ui-state-default a, .ui-state-default a:link, .ui-state-default a:visited { color: #555555; text-decoration: none; }
-.ui-state-hover, .ui-widget-content .ui-state-hover, .ui-widget-header .ui-state-hover, .ui-state-focus, .ui-widget-content .ui-state-focus, .ui-widget-header .ui-state-focus { border: 1px solid #999999; background: #dadada url(images/ui-bg_glass_75_dadada_1x400.png) 50% 50% repeat-x; font-weight: normal; color: #212121; }
-.ui-state-hover a, .ui-state-hover a:hover { color: #212121; text-decoration: none; }
-.ui-state-active, .ui-widget-content .ui-state-active, .ui-widget-header .ui-state-active { border: 1px solid #aaaaaa; background: #ffffff url(images/ui-bg_glass_65_ffffff_1x400.png) 50% 50% repeat-x; font-weight: normal; color: #212121; }
-.ui-state-active a, .ui-state-active a:link, .ui-state-active a:visited { color: #212121; text-decoration: none; }
-.ui-widget :active { outline: none; }
-
-/* Interaction Cues
-----------------------------------*/
-.ui-state-highlight, .ui-widget-content .ui-state-highlight, .ui-widget-header .ui-state-highlight  {border: 1px solid #fcefa1; background: #fbf9ee url(images/ui-bg_glass_55_fbf9ee_1x400.png) 50% 50% repeat-x; color: #363636; }
-.ui-state-highlight a, .ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a { color: #363636; }
-.ui-state-error, .ui-widget-content .ui-state-error, .ui-widget-header .ui-state-error {border: 1px solid #cd0a0a; background: #fef1ec url(images/ui-bg_glass_95_fef1ec_1x400.png) 50% 50% repeat-x; color: #cd0a0a; }
-.ui-state-error a, .ui-widget-content .ui-state-error a, .ui-widget-header .ui-state-error a { color: #cd0a0a; }
-.ui-state-error-text, .ui-widget-content .ui-state-error-text, .ui-widget-header .ui-state-error-text { color: #cd0a0a; }
-.ui-priority-primary, .ui-widget-content .ui-priority-primary, .ui-widget-header .ui-priority-primary { font-weight: bold; }
-.ui-priority-secondary, .ui-widget-content .ui-priority-secondary,  .ui-widget-header .ui-priority-secondary { opacity: .7; filter:Alpha(Opacity=70); font-weight: normal; }
-.ui-state-disabled, .ui-widget-content .ui-state-disabled, .ui-widget-header .ui-state-disabled { opacity: .35; filter:Alpha(Opacity=35); background-image: none; }
-
-/* Icons
-----------------------------------*/
-
-/* states and images */
-.ui-icon { width: 16px; height: 16px; background-image: url(images/ui-icons_222222_256x240.png); }
-.ui-widget-content .ui-icon {background-image: url(images/ui-icons_222222_256x240.png); }
-.ui-widget-header .ui-icon {background-image: url(images/ui-icons_222222_256x240.png); }
-.ui-state-default .ui-icon { background-image: url(images/ui-icons_888888_256x240.png); }
-.ui-state-hover .ui-icon, .ui-state-focus .ui-icon {background-image: url(images/ui-icons_454545_256x240.png); }
-.ui-state-active .ui-icon {background-image: url(images/ui-icons_454545_256x240.png); }
-.ui-state-highlight .ui-icon {background-image: url(images/ui-icons_2e83ff_256x240.png); }
-.ui-state-error .ui-icon, .ui-state-error-text .ui-icon {background-image: url(images/ui-icons_cd0a0a_256x240.png); }
-
-/* positioning */
-.ui-icon-carat-1-n { background-position: 0 0; }
-.ui-icon-carat-1-ne { background-position: -16px 0; }
-.ui-icon-carat-1-e { background-position: -32px 0; }
-.ui-icon-carat-1-se { background-position: -48px 0; }
-.ui-icon-carat-1-s { background-position: -64px 0; }
-.ui-icon-carat-1-sw { background-position: -80px 0; }
-.ui-icon-carat-1-w { background-position: -96px 0; }
-.ui-icon-carat-1-nw { background-position: -112px 0; }
-.ui-icon-carat-2-n-s { background-position: -128px 0; }
-.ui-icon-carat-2-e-w { background-position: -144px 0; }
-.ui-icon-triangle-1-n { background-position: 0 -16px; }
-.ui-icon-triangle-1-ne { background-position: -16px -16px; }
-.ui-icon-triangle-1-e { background-position: -32px -16px; }
-.ui-icon-triangle-1-se { background-position: -48px -16px; }
-.ui-icon-triangle-1-s { background-position: -64px -16px; }
-.ui-icon-triangle-1-sw { background-position: -80px -16px; }
-.ui-icon-triangle-1-w { background-position: -96px -16px; }
-.ui-icon-triangle-1-nw { background-position: -112px -16px; }
-.ui-icon-triangle-2-n-s { background-position: -128px -16px; }
-.ui-icon-triangle-2-e-w { background-position: -144px -16px; }
-.ui-icon-arrow-1-n { background-position: 0 -32px; }
-.ui-icon-arrow-1-ne { background-position: -16px -32px; }
-.ui-icon-arrow-1-e { background-position: -32px -32px; }
-.ui-icon-arrow-1-se { background-position: -48px -32px; }
-.ui-icon-arrow-1-s { background-position: -64px -32px; }
-.ui-icon-arrow-1-sw { background-position: -80px -32px; }
-.ui-icon-arrow-1-w { background-position: -96px -32px; }
-.ui-icon-arrow-1-nw { background-position: -112px -32px; }
-.ui-icon-arrow-2-n-s { background-position: -128px -32px; }
-.ui-icon-arrow-2-ne-sw { background-position: -144px -32px; }
-.ui-icon-arrow-2-e-w { background-position: -160px -32px; }
-.ui-icon-arrow-2-se-nw { background-position: -176px -32px; }
-.ui-icon-arrowstop-1-n { background-position: -192px -32px; }
-.ui-icon-arrowstop-1-e { background-position: -208px -32px; }
-.ui-icon-arrowstop-1-s { background-position: -224px -32px; }
-.ui-icon-arrowstop-1-w { background-position: -240px -32px; }
-.ui-icon-arrowthick-1-n { background-position: 0 -48px; }
-.ui-icon-arrowthick-1-ne { background-position: -16px -48px; }
-.ui-icon-arrowthick-1-e { background-position: -32px -48px; }
-.ui-icon-arrowthick-1-se { background-position: -48px -48px; }
-.ui-icon-arrowthick-1-s { background-position: -64px -48px; }
-.ui-icon-arrowthick-1-sw { background-position: -80px -48px; }
-.ui-icon-arrowthick-1-w { background-position: -96px -48px; }
-.ui-icon-arrowthick-1-nw { background-position: -112px -48px; }
-.ui-icon-arrowthick-2-n-s { background-position: -128px -48px; }
-.ui-icon-arrowthick-2-ne-sw { background-position: -144px -48px; }
-.ui-icon-arrowthick-2-e-w { background-position: -160px -48px; }
-.ui-icon-arrowthick-2-se-nw { background-position: -176px -48px; }
-.ui-icon-arrowthickstop-1-n { background-position: -192px -48px; }
-.ui-icon-arrowthickstop-1-e { background-position: -208px -48px; }
-.ui-icon-arrowthickstop-1-s { background-position: -224px -48px; }
-.ui-icon-arrowthickstop-1-w { background-position: -240px -48px; }
-.ui-icon-arrowreturnthick-1-w { background-position: 0 -64px; }
-.ui-icon-arrowreturnthick-1-n { background-position: -16px -64px; }
-.ui-icon-arrowreturnthick-1-e { background-position: -32px -64px; }
-.ui-icon-arrowreturnthick-1-s { background-position: -48px -64px; }
-.ui-icon-arrowreturn-1-w { background-position: -64px -64px; }
-.ui-icon-arrowreturn-1-n { background-position: -80px -64px; }
-.ui-icon-arrowreturn-1-e { background-position: -96px -64px; }
-.ui-icon-arrowreturn-1-s { background-position: -112px -64px; }
-.ui-icon-arrowrefresh-1-w { background-position: -128px -64px; }
-.ui-icon-arrowrefresh-1-n { background-position: -144px -64px; }
-.ui-icon-arrowrefresh-1-e { background-position: -160px -64px; }
-.ui-icon-arrowrefresh-1-s { background-position: -176px -64px; }
-.ui-icon-arrow-4 { background-position: 0 -80px; }
-.ui-icon-arrow-4-diag { background-position: -16px -80px; }
-.ui-icon-extlink { background-position: -32px -80px; }
-.ui-icon-newwin { background-position: -48px -80px; }
-.ui-icon-refresh { background-position: -64px -80px; }
-.ui-icon-shuffle { background-position: -80px -80px; }
-.ui-icon-transfer-e-w { background-position: -96px -80px; }
-.ui-icon-transferthick-e-w { background-position: -112px -80px; }
-.ui-icon-folder-collapsed { background-position: 0 -96px; }
-.ui-icon-folder-open { background-position: -16px -96px; }
-.ui-icon-document { background-position: -32px -96px; }
-.ui-icon-document-b { background-position: -48px -96px; }
-.ui-icon-note { background-position: -64px -96px; }
-.ui-icon-mail-closed { background-position: -80px -96px; }
-.ui-icon-mail-open { background-position: -96px -96px; }
-.ui-icon-suitcase { background-position: -112px -96px; }
-.ui-icon-comment { background-position: -128px -96px; }
-.ui-icon-person { background-position: -144px -96px; }
-.ui-icon-print { background-position: -160px -96px; }
-.ui-icon-trash { background-position: -176px -96px; }
-.ui-icon-locked { background-position: -192px -96px; }
-.ui-icon-unlocked { background-position: -208px -96px; }
-.ui-icon-bookmark { background-position: -224px -96px; }
-.ui-icon-tag { background-position: -240px -96px; }
-.ui-icon-home { background-position: 0 -112px; }
-.ui-icon-flag { background-position: -16px -112px; }
-.ui-icon-calendar { background-position: -32px -112px; }
-.ui-icon-cart { background-position: -48px -112px; }
-.ui-icon-pencil { background-position: -64px -112px; }
-.ui-icon-clock { background-position: -80px -112px; }
-.ui-icon-disk { background-position: -96px -112px; }
-.ui-icon-calculator { background-position: -112px -112px; }
-.ui-icon-zoomin { background-position: -128px -112px; }
-.ui-icon-zoomout { background-position: -144px -112px; }
-.ui-icon-search { background-position: -160px -112px; }
-.ui-icon-wrench { background-position: -176px -112px; }
-.ui-icon-gear { background-position: -192px -112px; }
-.ui-icon-heart { background-position: -208px -112px; }
-.ui-icon-star { background-position: -224px -112px; }
-.ui-icon-link { background-position: -240px -112px; }
-.ui-icon-cancel { background-position: 0 -128px; }
-.ui-icon-plus { background-position: -16px -128px; }
-.ui-icon-plusthick { background-position: -32px -128px; }
-.ui-icon-minus { background-position: -48px -128px; }
-.ui-icon-minusthick { background-position: -64px -128px; }
-.ui-icon-close { background-position: -80px -128px; }
-.ui-icon-closethick { background-position: -96px -128px; }
-.ui-icon-key { background-position: -112px -128px; }
-.ui-icon-lightbulb { background-position: -128px -128px; }
-.ui-icon-scissors { background-position: -144px -128px; }
-.ui-icon-clipboard { background-position: -160px -128px; }
-.ui-icon-copy { background-position: -176px -128px; }
-.ui-icon-contact { background-position: -192px -128px; }
-.ui-icon-image { background-position: -208px -128px; }
-.ui-icon-video { background-position: -224px -128px; }
-.ui-icon-script { background-position: -240px -128px; }
-.ui-icon-alert { background-position: 0 -144px; }
-.ui-icon-info { background-position: -16px -144px; }
-.ui-icon-notice { background-position: -32px -144px; }
-.ui-icon-help { background-position: -48px -144px; }
-.ui-icon-check { background-position: -64px -144px; }
-.ui-icon-bullet { background-position: -80px -144px; }
-.ui-icon-radio-off { background-position: -96px -144px; }
-.ui-icon-radio-on { background-position: -112px -144px; }
-.ui-icon-pin-w { background-position: -128px -144px; }
-.ui-icon-pin-s { background-position: -144px -144px; }
-.ui-icon-play { background-position: 0 -160px; }
-.ui-icon-pause { background-position: -16px -160px; }
-.ui-icon-seek-next { background-position: -32px -160px; }
-.ui-icon-seek-prev { background-position: -48px -160px; }
-.ui-icon-seek-end { background-position: -64px -160px; }
-.ui-icon-seek-start { background-position: -80px -160px; }
-/* ui-icon-seek-first is deprecated, use ui-icon-seek-start instead */
-.ui-icon-seek-first { background-position: -80px -160px; }
-.ui-icon-stop { background-position: -96px -160px; }
-.ui-icon-eject { background-position: -112px -160px; }
-.ui-icon-volume-off { background-position: -128px -160px; }
-.ui-icon-volume-on { background-position: -144px -160px; }
-.ui-icon-power { background-position: 0 -176px; }
-.ui-icon-signal-diag { background-position: -16px -176px; }
-.ui-icon-signal { background-position: -32px -176px; }
-.ui-icon-battery-0 { background-position: -48px -176px; }
-.ui-icon-battery-1 { background-position: -64px -176px; }
-.ui-icon-battery-2 { background-position: -80px -176px; }
-.ui-icon-battery-3 { background-position: -96px -176px; }
-.ui-icon-circle-plus { background-position: 0 -192px; }
-.ui-icon-circle-minus { background-position: -16px -192px; }
-.ui-icon-circle-close { background-position: -32px -192px; }
-.ui-icon-circle-triangle-e { background-position: -48px -192px; }
-.ui-icon-circle-triangle-s { background-position: -64px -192px; }
-.ui-icon-circle-triangle-w { background-position: -80px -192px; }
-.ui-icon-circle-triangle-n { background-position: -96px -192px; }
-.ui-icon-circle-arrow-e { background-position: -112px -192px; }
-.ui-icon-circle-arrow-s { background-position: -128px -192px; }
-.ui-icon-circle-arrow-w { background-position: -144px -192px; }
-.ui-icon-circle-arrow-n { background-position: -160px -192px; }
-.ui-icon-circle-zoomin { background-position: -176px -192px; }
-.ui-icon-circle-zoomout { background-position: -192px -192px; }
-.ui-icon-circle-check { background-position: -208px -192px; }
-.ui-icon-circlesmall-plus { background-position: 0 -208px; }
-.ui-icon-circlesmall-minus { background-position: -16px -208px; }
-.ui-icon-circlesmall-close { background-position: -32px -208px; }
-.ui-icon-squaresmall-plus { background-position: -48px -208px; }
-.ui-icon-squaresmall-minus { background-position: -64px -208px; }
-.ui-icon-squaresmall-close { background-position: -80px -208px; }
-.ui-icon-grip-dotted-vertical { background-position: 0 -224px; }
-.ui-icon-grip-dotted-horizontal { background-position: -16px -224px; }
-.ui-icon-grip-solid-vertical { background-position: -32px -224px; }
-.ui-icon-grip-solid-horizontal { background-position: -48px -224px; }
-.ui-icon-gripsmall-diagonal-se { background-position: -64px -224px; }
-.ui-icon-grip-diagonal-se { background-position: -80px -224px; }
-
-
-/* Misc visuals
-----------------------------------*/
-
-/* Corner radius */
-.ui-corner-all, .ui-corner-top, .ui-corner-left, .ui-corner-tl { -moz-border-radius-topleft: 4px; -webkit-border-top-left-radius: 4px; -khtml-border-top-left-radius: 4px; border-top-left-radius: 4px; }
-.ui-corner-all, .ui-corner-top, .ui-corner-right, .ui-corner-tr { -moz-border-radius-topright: 4px; -webkit-border-top-right-radius: 4px; -khtml-border-top-right-radius: 4px; border-top-right-radius: 4px; }
-.ui-corner-all, .ui-corner-bottom, .ui-corner-left, .ui-corner-bl { -moz-border-radius-bottomleft: 4px; -webkit-border-bottom-left-radius: 4px; -khtml-border-bottom-left-radius: 4px; border-bottom-left-radius: 4px; }
-.ui-corner-all, .ui-corner-bottom, .ui-corner-right, .ui-corner-br { -moz-border-radius-bottomright: 4px; -webkit-border-bottom-right-radius: 4px; -khtml-border-bottom-right-radius: 4px; border-bottom-right-radius: 4px; }
-
-/* Overlays */
-.ui-widget-overlay { background: #aaaaaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x; opacity: .30;filter:Alpha(Opacity=30); }
-.ui-widget-shadow { margin: -8px 0 0 -8px; padding: 8px; background: #aaaaaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x; opacity: .30;filter:Alpha(Opacity=30); -moz-border-radius: 8px; -khtml-border-radius: 8px; -webkit-border-radius: 8px; border-radius: 8px; }/*!
- * jQuery UI Resizable 1.8.21
- *
- * Copyright 2012, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Resizable#theming
- */
-.ui-resizable { position: relative;}
-.ui-resizable-handle { position: absolute;font-size: 0.1px; display: block; }
-.ui-resizable-disabled .ui-resizable-handle, .ui-resizable-autohide .ui-resizable-handle { display: none; }
-.ui-resizable-n { cursor: n-resize; height: 7px; width: 100%; top: -5px; left: 0; }
-.ui-resizable-s { cursor: s-resize; height: 7px; width: 100%; bottom: -5px; left: 0; }
-.ui-resizable-e { cursor: e-resize; width: 7px; right: -5px; top: 0; height: 100%; }
-.ui-resizable-w { cursor: w-resize; width: 7px; left: -5px; top: 0; height: 100%; }
-.ui-resizable-se { cursor: se-resize; width: 12px; height: 12px; right: 1px; bottom: 1px; }
-.ui-resizable-sw { cursor: sw-resize; width: 9px; height: 9px; left: -5px; bottom: -5px; }
-.ui-resizable-nw { cursor: nw-resize; width: 9px; height: 9px; left: -5px; top: -5px; }
-.ui-resizable-ne { cursor: ne-resize; width: 9px; height: 9px; right: -5px; top: -5px;}/*!
- * jQuery UI Selectable 1.8.21
- *
- * Copyright 2012, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Selectable#theming
- */
-.ui-selectable-helper { position: absolute; z-index: 100; border:1px dotted black; }
-/*!
- * jQuery UI Accordion 1.8.21
- *
- * Copyright 2012, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Accordion#theming
- */
-/* IE/Win - Fix animation bug - #4615 */
-.ui-accordion { width: 100%; }
-.ui-accordion .ui-accordion-header { cursor: pointer; position: relative; margin-top: 1px; zoom: 1; }
-.ui-accordion .ui-accordion-li-fix { display: inline; }
-.ui-accordion .ui-accordion-header-active { border-bottom: 0 !important; }
-.ui-accordion .ui-accordion-header a { display: block; font-size: 1em; padding: .5em .5em .5em .7em; }
-.ui-accordion-icons .ui-accordion-header a { padding-left: 2.2em; }
-.ui-accordion .ui-accordion-header .ui-icon { position: absolute; left: .5em; top: 50%; margin-top: -8px; }
-.ui-accordion .ui-accordion-content { padding: 1em 2.2em; border-top: 0; margin-top: -2px; position: relative; top: 1px; margin-bottom: 2px; overflow: auto; display: none; zoom: 1; }
-.ui-accordion .ui-accordion-content-active { display: block; }
-/*!
- * jQuery UI Autocomplete 1.8.21
- *
- * Copyright 2012, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Autocomplete#theming
- */
-.ui-autocomplete { position: absolute; cursor: default; }	
-
-/* workarounds */
-* html .ui-autocomplete { width:1px; } /* without this, the menu expands to 100% in IE6 */
-
-/*
- * jQuery UI Menu 1.8.21
- *
- * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Menu#theming
- */
-.ui-menu {
-	list-style:none;
-	padding: 2px;
-	margin: 0;
-	display:block;
-	float: left;
-}
-.ui-menu .ui-menu {
-	margin-top: -3px;
-}
-.ui-menu .ui-menu-item {
-	margin:0;
-	padding: 0;
-	zoom: 1;
-	float: left;
-	clear: left;
-	width: 100%;
-}
-.ui-menu .ui-menu-item a {
-	text-decoration:none;
-	display:block;
-	padding:.2em .4em;
-	line-height:1.5;
-	zoom:1;
-}
-.ui-menu .ui-menu-item a.ui-state-hover,
-.ui-menu .ui-menu-item a.ui-state-active {
-	font-weight: normal;
-	margin: -1px;
-}
-/*!
- * jQuery UI Button 1.8.21
- *
- * Copyright 2012, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Button#theming
- */
-.ui-button { display: inline-block; position: relative; padding: 0; margin-right: .1em; text-decoration: none !important; cursor: pointer; text-align: center; zoom: 1; overflow: visible; } /* the overflow property removes extra width in IE */
-.ui-button-icon-only { width: 2.2em; } /* to make room for the icon, a width needs to be set here */
-button.ui-button-icon-only { width: 2.4em; } /* button elements seem to need a little more width */
-.ui-button-icons-only { width: 3.4em; } 
-button.ui-button-icons-only { width: 3.7em; } 
-
-/*button text element */
-.ui-button .ui-button-text { display: block; line-height: 1.4;  }
-.ui-button-text-only .ui-button-text { padding: .4em 1em; }
-.ui-button-icon-only .ui-button-text, .ui-button-icons-only .ui-button-text { padding: .4em; text-indent: -9999999px; }
-.ui-button-text-icon-primary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 1em .4em 2.1em; }
-.ui-button-text-icon-secondary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .4em 2.1em .4em 1em; }
-.ui-button-text-icons .ui-button-text { padding-left: 2.1em; padding-right: 2.1em; }
-/* no icon support for input elements, provide padding by default */
-input.ui-button { padding: .4em 1em; }
-
-/*button icon element(s) */
-.ui-button-icon-only .ui-icon, .ui-button-text-icon-primary .ui-icon, .ui-button-text-icon-secondary .ui-icon, .ui-button-text-icons .ui-icon, .ui-button-icons-only .ui-icon { position: absolute; top: 50%; margin-top: -8px; }
-.ui-button-icon-only .ui-icon { left: 50%; margin-left: -8px; }
-.ui-button-text-icon-primary .ui-button-icon-primary, .ui-button-text-icons .ui-button-icon-primary, .ui-button-icons-only .ui-button-icon-primary { left: .5em; }
-.ui-button-text-icon-secondary .ui-button-icon-secondary, .ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; }
-.ui-button-text-icons .ui-button-icon-secondary, .ui-button-icons-only .ui-button-icon-secondary { right: .5em; }
-
-/*button sets*/
-.ui-buttonset { margin-right: 7px; }
-.ui-buttonset .ui-button { margin-left: 0; margin-right: -.3em; }
-
-/* workarounds */
-button.ui-button::-moz-focus-inner { border: 0; padding: 0; } /* reset extra padding in Firefox */
-/*!
- * jQuery UI Dialog 1.8.21
- *
- * Copyright 2012, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Dialog#theming
- */
-.ui-dialog { position: absolute; padding: .2em; width: 300px; overflow: hidden; }
-.ui-dialog .ui-dialog-titlebar { padding: .4em 1em; position: relative;  }
-.ui-dialog .ui-dialog-title { float: left; margin: .1em 16px .1em 0; } 
-.ui-dialog .ui-dialog-titlebar-close { position: absolute; right: .3em; top: 50%; width: 19px; margin: -10px 0 0 0; padding: 1px; height: 18px; }
-.ui-dialog .ui-dialog-titlebar-close span { display: block; margin: 1px; }
-.ui-dialog .ui-dialog-titlebar-close:hover, .ui-dialog .ui-dialog-titlebar-close:focus { padding: 0; }
-.ui-dialog .ui-dialog-content { position: relative; border: 0; padding: .5em 1em; background: none; overflow: auto; zoom: 1; }
-.ui-dialog .ui-dialog-buttonpane { text-align: left; border-width: 1px 0 0 0; background-image: none; margin: .5em 0 0 0; padding: .3em 1em .5em .4em; }
-.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset { float: right; }
-.ui-dialog .ui-dialog-buttonpane button { margin: .5em .4em .5em 0; cursor: pointer; }
-.ui-dialog .ui-resizable-se { width: 14px; height: 14px; right: 3px; bottom: 3px; }
-.ui-draggable .ui-dialog-titlebar { cursor: move; }
-/*!
- * jQuery UI Slider 1.8.21
- *
- * Copyright 2012, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Slider#theming
- */
-.ui-slider { position: relative; text-align: left; }
-.ui-slider .ui-slider-handle { position: absolute; z-index: 2; width: 1.2em; height: 1.2em; cursor: default; }
-.ui-slider .ui-slider-range { position: absolute; z-index: 1; font-size: .7em; display: block; border: 0; background-position: 0 0; }
-
-.ui-slider-horizontal { height: .8em; }
-.ui-slider-horizontal .ui-slider-handle { top: -.3em; margin-left: -.6em; }
-.ui-slider-horizontal .ui-slider-range { top: 0; height: 100%; }
-.ui-slider-horizontal .ui-slider-range-min { left: 0; }
-.ui-slider-horizontal .ui-slider-range-max { right: 0; }
-
-.ui-slider-vertical { width: .8em; height: 100px; }
-.ui-slider-vertical .ui-slider-handle { left: -.3em; margin-left: 0; margin-bottom: -.6em; }
-.ui-slider-vertical .ui-slider-range { left: 0; width: 100%; }
-.ui-slider-vertical .ui-slider-range-min { bottom: 0; }
-.ui-slider-vertical .ui-slider-range-max { top: 0; }/*!
- * jQuery UI Tabs 1.8.21
- *
- * Copyright 2012, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Tabs#theming
- */
-.ui-tabs { position: relative; padding: .2em; zoom: 1; } /* position: relative prevents IE scroll bug (element with position: relative inside container with overflow: auto appear as "fixed") */
-.ui-tabs .ui-tabs-nav { margin: 0; padding: .2em .2em 0; }
-.ui-tabs .ui-tabs-nav li { list-style: none; float: left; position: relative; top: 1px; margin: 0 .2em 1px 0; border-bottom: 0 !important; padding: 0; white-space: nowrap; }
-.ui-tabs .ui-tabs-nav li a { float: left; padding: .5em 1em; text-decoration: none; }
-.ui-tabs .ui-tabs-nav li.ui-tabs-selected { margin-bottom: 0; padding-bottom: 1px; }
-.ui-tabs .ui-tabs-nav li.ui-tabs-selected a, .ui-tabs .ui-tabs-nav li.ui-state-disabled a, .ui-tabs .ui-tabs-nav li.ui-state-processing a { cursor: text; }
-.ui-tabs .ui-tabs-nav li a, .ui-tabs.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-selected a { cursor: pointer; } /* first selector in group seems obsolete, but required to overcome bug in Opera applying cursor: text overall if defined elsewhere... */
-.ui-tabs .ui-tabs-panel { display: block; border-width: 0; padding: 1em 1.4em; background: none; }
-.ui-tabs .ui-tabs-hide { display: none !important; }
-/*!
- * jQuery UI Datepicker 1.8.21
- *
- * Copyright 2012, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Datepicker#theming
- */
-.ui-datepicker { width: 17em; padding: .2em .2em 0; display: none; }
-.ui-datepicker .ui-datepicker-header { position:relative; padding:.2em 0; }
-.ui-datepicker .ui-datepicker-prev, .ui-datepicker .ui-datepicker-next { position:absolute; top: 2px; width: 1.8em; height: 1.8em; }
-.ui-datepicker .ui-datepicker-prev-hover, .ui-datepicker .ui-datepicker-next-hover { top: 1px; }
-.ui-datepicker .ui-datepicker-prev { left:2px; }
-.ui-datepicker .ui-datepicker-next { right:2px; }
-.ui-datepicker .ui-datepicker-prev-hover { left:1px; }
-.ui-datepicker .ui-datepicker-next-hover { right:1px; }
-.ui-datepicker .ui-datepicker-prev span, .ui-datepicker .ui-datepicker-next span { display: block; position: absolute; left: 50%; margin-left: -8px; top: 50%; margin-top: -8px;  }
-.ui-datepicker .ui-datepicker-title { margin: 0 2.3em; line-height: 1.8em; text-align: center; }
-.ui-datepicker .ui-datepicker-title select { font-size:1em; margin:1px 0; }
-.ui-datepicker select.ui-datepicker-month-year {width: 100%;}
-.ui-datepicker select.ui-datepicker-month, 
-.ui-datepicker select.ui-datepicker-year { width: 49%;}
-.ui-datepicker table {width: 100%; font-size: .9em; border-collapse: collapse; margin:0 0 .4em; }
-.ui-datepicker th { padding: .7em .3em; text-align: center; font-weight: bold; border: 0;  }
-.ui-datepicker td { border: 0; padding: 1px; }
-.ui-datepicker td span, .ui-datepicker td a { display: block; padding: .2em; text-align: right; text-decoration: none; }
-.ui-datepicker .ui-datepicker-buttonpane { background-image: none; margin: .7em 0 0 0; padding:0 .2em; border-left: 0; border-right: 0; border-bottom: 0; }
-.ui-datepicker .ui-datepicker-buttonpane button { float: right; margin: .5em .2em .4em; cursor: pointer; padding: .2em .6em .3em .6em; width:auto; overflow:visible; }
-.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current { float:left; }
-
-/* with multiple calendars */
-.ui-datepicker.ui-datepicker-multi { width:auto; }
-.ui-datepicker-multi .ui-datepicker-group { float:left; }
-.ui-datepicker-multi .ui-datepicker-group table { width:95%; margin:0 auto .4em; }
-.ui-datepicker-multi-2 .ui-datepicker-group { width:50%; }
-.ui-datepicker-multi-3 .ui-datepicker-group { width:33.3%; }
-.ui-datepicker-multi-4 .ui-datepicker-group { width:25%; }
-.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header { border-left-width:0; }
-.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header { border-left-width:0; }
-.ui-datepicker-multi .ui-datepicker-buttonpane { clear:left; }
-.ui-datepicker-row-break { clear:both; width:100%; font-size:0em; }
-
-/* RTL support */
-.ui-datepicker-rtl { direction: rtl; }
-.ui-datepicker-rtl .ui-datepicker-prev { right: 2px; left: auto; }
-.ui-datepicker-rtl .ui-datepicker-next { left: 2px; right: auto; }
-.ui-datepicker-rtl .ui-datepicker-prev:hover { right: 1px; left: auto; }
-.ui-datepicker-rtl .ui-datepicker-next:hover { left: 1px; right: auto; }
-.ui-datepicker-rtl .ui-datepicker-buttonpane { clear:right; }
-.ui-datepicker-rtl .ui-datepicker-buttonpane button { float: left; }
-.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current { float:right; }
-.ui-datepicker-rtl .ui-datepicker-group { float:right; }
-.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
-.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header { border-right-width:0; border-left-width:1px; }
-
-/* IE6 IFRAME FIX (taken from datepicker 1.5.3 */
-.ui-datepicker-cover {
-    display: none; /*sorry for IE5*/
-    display/**/: block; /*sorry for IE5*/
-    position: absolute; /*must have*/
-    z-index: -1; /*must have*/
-    filter: mask(); /*must have*/
-    top: -4px; /*must have*/
-    left: -4px; /*must have*/
-    width: 200px; /*must have*/
-    height: 200px; /*must have*/
-}/*!
- * jQuery UI Progressbar 1.8.21
- *
- * Copyright 2012, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Progressbar#theming
- */
-.ui-progressbar { height:2em; text-align: left; overflow: hidden; }
-.ui-progressbar .ui-progressbar-value {margin: -1px; height:100%; }
\ No newline at end of file
+/*! jQuery UI - v1.9.2 - 2012-12-11
+* http://jqueryui.com
+* Includes: jquery.ui.core.css, jquery.ui.resizable.css, jquery.ui.selectable.css, jquery.ui.accordion.css, jquery.ui.autocomplete.css, jquery.ui.button.css, jquery.ui.datepicker.css, jquery.ui.dialog.css, jquery.ui.menu.css, jquery.ui.progressbar.css, jquery.ui.slider.css, jquery.ui.spinner.css, jquery.ui.tabs.css, jquery.ui.tooltip.css
+* To view and modify this theme, visit http://jqueryui.com/themeroller/?ffDefault=Verdana%2CArial%2Csans-serif&fwDefault=normal&fsDefault=1.1em&cornerRadius=4px&bgColorHeader=cccccc&bgTextureHeader=03_highlight_soft.png&bgImgOpacityHeader=75&borderColorHeader=aaaaaa&fcHeader=222222&iconColorHeader=222222&bgColorContent=ffffff&bgTextureContent=01_flat.png&bgImgOpacityContent=75&borderColorContent=aaaaaa&fcContent=222222&iconColorContent=222222&bgColorDefault=e6e6e6&bgTextureDefault=02_glass.png&bgImgOpacityDefault=75&borderColorDefault=d3d3d3&fcDefault=555555&iconColorDefault=888888&bgColorHover=dadada&bgTextureHover=02_glass.png&bgImgOpacityHover=75&borderColorHover=999999&fcHover=212121&iconColorHover=454545&bgColorActive=ffffff&bgTextureActive=02_glass.png&bgImgOpacityActive=65&borderColorActive=aaaaaa&fcActive=212121&iconColorActive=454545&bgColorHighlight=fbf9ee&bgTextureHighlight=02_glass.png&bgImgOpacityHighlight=55&borderColorHighlight=fcefa1&fcHighlight=363636&iconColorHighlight=2e83ff&bgColorError=fef1ec&bgTextureError=02_glass.png&bgImgOpacityError=95&borderColorError=cd0a0a&fcError=cd0a0a&iconColorError=cd0a0a&bgColorOverlay=aaaaaa&bgTextureOverlay=01_flat.png&bgImgOpacityOverlay=0&opacityOverlay=30&bgColorShadow=aaaaaa&bgTextureShadow=01_flat.png&bgImgOpacityShadow=0&opacityShadow=30&thicknessShadow=8px&offsetTopShadow=-8px&offsetLeftShadow=-8px&cornerRadiusShadow=8px
+* Copyright (c) 2012 jQuery Foundation and other contributors Licensed MIT */
+.ui-helper-hidden{display:none}.ui-helper-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.ui-helper-reset{margin:0;padding:0;border:0;outline:0;line-height:1.3;text-decoration:none;font-size:100%;list-style:none}.ui-helper-clearfix:before,.ui-helper-clearfix:after{content:"";display:table}.ui-helper-clearfix:after{clear:both}.ui-helper-clearfix{zoom:1}.ui-helper-zfix{width:100%;height:100%;top:0;left:0;position:absolute;opacity:0;filter:Alpha(Opacity=0)}.ui-state-disabled{cursor:default!important}.ui-icon{display:block;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat}.ui-widget-overlay{position:absolute;top:0;left:0;width:100%;height:100%}.ui-resizable{position:relative}.ui-resizable-handle{position:absolute;font-size:0.1px;display:block}.ui-resizable-disabled .ui-resizable-handle,.ui-resizable-autohide .ui-resizable-handle{display:none}.ui-resizable-n{cursor:n-resize;height:7px;width:100%;top:-5px;left:0}.ui-resizable-s{cursor:s-resize;height:7px;width:100%;bottom:-5px;left:0}.ui-resizable-e{cursor:e-resize;width:7px;right:-5px;top:0;height:100%}.ui-resizable-w{cursor:w-resize;width:7px;left:-5px;top:0;height:100%}.ui-resizable-se{cursor:se-resize;width:12px;height:12px;right:1px;bottom:1px}.ui-resizable-sw{cursor:sw-resize;width:9px;height:9px;left:-5px;bottom:-5px}.ui-resizable-nw{cursor:nw-resize;width:9px;height:9px;left:-5px;top:-5px}.ui-resizable-ne{cursor:ne-resize;width:9px;height:9px;right:-5px;top:-5px}.ui-selectable-helper{position:absolute;z-index:100;border:1px dotted black}.ui-accordion .ui-accordion-header{display:block;cursor:pointer;position:relative;margin-top:2px;padding:.5em .5em .5em .7em;zoom:1}.ui-accordion .ui-accordion-icons{padding-left:2.2em}.ui-accordion .ui-accordion-noicons{padding-left:.7em}.ui-accordion .ui-accordion-icons .ui-accordion-icons{padding-left:2.2em}.ui-accordion .ui-accordion-header .ui-accordion-header-icon{position:absolute;left:.5em;top:50%;margin-top:-8px}.ui-accordion .ui-accordion-content{padding:1em 2.2em;border-top:0;overflow:auto;zoom:1}.ui-autocomplete{position:absolute;top:0;left:0;cursor:default}* html .ui-autocomplete{width:1px}.ui-button{display:inline-block;position:relative;padding:0;margin-right:.1em;cursor:pointer;text-align:center;zoom:1;overflow:visible}.ui-button,.ui-button:link,.ui-button:visited,.ui-button:hover,.ui-button:active{text-decoration:none}.ui-button-icon-only{width:2.2em}button.ui-button-icon-only{width:2.4em}.ui-button-icons-only{width:3.4em}button.ui-button-icons-only{width:3.7em}.ui-button .ui-button-text{display:block;line-height:1.4}.ui-button-text-only .ui-button-text{padding:.4em 1em}.ui-button-icon-only .ui-button-text,.ui-button-icons-only .ui-button-text{padding:.4em;text-indent:-9999999px}.ui-button-text-icon-primary .ui-button-text,.ui-button-text-icons .ui-button-text{padding:.4em 1em .4em 2.1em}.ui-button-text-icon-secondary .ui-button-text,.ui-button-text-icons .ui-button-text{padding:.4em 2.1em .4em 1em}.ui-button-text-icons .ui-button-text{padding-left:2.1em;padding-right:2.1em}input.ui-button{padding:.4em 1em}.ui-button-icon-only .ui-icon,.ui-button-text-icon-primary .ui-icon,.ui-button-text-icon-secondary .ui-icon,.ui-button-text-icons .ui-icon,.ui-button-icons-only .ui-icon{position:absolute;top:50%;margin-top:-8px}.ui-button-icon-only .ui-icon{left:50%;margin-left:-8px}.ui-button-text-icon-primary .ui-button-icon-primary,.ui-button-text-icons .ui-button-icon-primary,.ui-button-icons-only .ui-button-icon-primary{left:.5em}.ui-button-text-icon-secondary .ui-button-icon-secondary,.ui-button-text-icons .ui-button-icon-secondary,.ui-button-icons-only .ui-button-icon-secondary{right:.5em}.ui-button-text-icons .ui-button-icon-secondary,.ui-button-icons-only .ui-button-icon-secondary{right:.5em}.ui-buttonset{margin-right:7px}.ui-buttonset .ui-button{margin-left:0;margin-right:-.3em}button.ui-button::-moz-focus-inner{border:0;padding:0}.ui-datepicker{width:17em;padding:.2em .2em 0;display:none}.ui-datepicker .ui-datepicker-header{position:relative;padding:.2em 0}.ui-datepicker .ui-datepicker-prev,.ui-datepicker .ui-datepicker-next{position:absolute;top:2px;width:1.8em;height:1.8em}.ui-datepicker .ui-datepicker-prev-hover,.ui-datepicker .ui-datepicker-next-hover{top:1px}.ui-datepicker .ui-datepicker-prev{left:2px}.ui-datepicker .ui-datepicker-next{right:2px}.ui-datepicker .ui-datepicker-prev-hover{left:1px}.ui-datepicker .ui-datepicker-next-hover{right:1px}.ui-datepicker .ui-datepicker-prev span,.ui-datepicker .ui-datepicker-next span{display:block;position:absolute;left:50%;margin-left:-8px;top:50%;margin-top:-8px}.ui-datepicker .ui-datepicker-title{margin:0 2.3em;line-height:1.8em;text-align:center}.ui-datepicker .ui-datepicker-title select{font-size:1em;margin:1px 0}.ui-datepicker select.ui-datepicker-month-year{width:100%}.ui-datepicker select.ui-datepicker-month,.ui-datepicker select.ui-datepicker-year{width:49%}.ui-datepicker table{width:100%;font-size:.9em;border-collapse:collapse;margin:0 0 .4em}.ui-datepicker th{padding:.7em .3em;text-align:center;font-weight:bold;border:0}.ui-datepicker td{border:0;padding:1px}.ui-datepicker td span,.ui-datepicker td a{display:block;padding:.2em;text-align:right;text-decoration:none}.ui-datepicker .ui-datepicker-buttonpane{background-image:none;margin:.7em 0 0 0;padding:0 .2em;border-left:0;border-right:0;border-bottom:0}.ui-datepicker .ui-datepicker-buttonpane button{float:right;margin:.5em .2em .4em;cursor:pointer;padding:.2em .6em .3em .6em;width:auto;overflow:visible}.ui-datepicker .ui-datepicker-buttonpane button.ui-datepicker-current{float:left}.ui-datepicker.ui-datepicker-multi{width:auto}.ui-datepicker-multi .ui-datepicker-group{float:left}.ui-datepicker-multi .ui-datepicker-group table{width:95%;margin:0 auto .4em}.ui-datepicker-multi-2 .ui-datepicker-group{width:50%}.ui-datepicker-multi-3 .ui-datepicker-group{width:33.3%}.ui-datepicker-multi-4 .ui-datepicker-group{width:25%}.ui-datepicker-multi .ui-datepicker-group-last .ui-datepicker-header{border-left-width:0}.ui-datepicker-multi .ui-datepicker-group-middle .ui-datepicker-header{border-left-width:0}.ui-datepicker-multi .ui-datepicker-buttonpane{clear:left}.ui-datepicker-row-break{clear:both;width:100%;font-size:0em}.ui-datepicker-rtl{direction:rtl}.ui-datepicker-rtl .ui-datepicker-prev{right:2px;left:auto}.ui-datepicker-rtl .ui-datepicker-next{left:2px;right:auto}.ui-datepicker-rtl .ui-datepicker-prev:hover{right:1px;left:auto}.ui-datepicker-rtl .ui-datepicker-next:hover{left:1px;right:auto}.ui-datepicker-rtl .ui-datepicker-buttonpane{clear:right}.ui-datepicker-rtl .ui-datepicker-buttonpane button{float:left}.ui-datepicker-rtl .ui-datepicker-buttonpane button.ui-datepicker-current{float:right}.ui-datepicker-rtl .ui-datepicker-group{float:right}.ui-datepicker-rtl .ui-datepicker-group-last .ui-datepicker-header{border-right-width:0;border-left-width:1px}.ui-datepicker-rtl .ui-datepicker-group-middle .ui-datepicker-header{border-right-width:0;border-left-width:1px}.ui-datepicker-cover{position:absolute;z-index:-1;filter:mask();top:-4px;left:-4px;width:200px;height:200px}.ui-dialog{position:absolute;top:0;left:0;padding:.2em;width:300px;overflow:hidden}.ui-dialog .ui-dialog-titlebar{padding:.4em 1em;position:relative}.ui-dialog .ui-dialog-title{float:left;margin:.1em 16px .1em 0}.ui-dialog .ui-dialog-titlebar-close{position:absolute;right:.3em;top:50%;width:19px;margin:-10px 0 0 0;padding:1px;height:18px}.ui-dialog .ui-dialog-titlebar-close span{display:block;margin:1px}.ui-dialog .ui-dialog-titlebar-close:hover,.ui-dialog .ui-dialog-titlebar-close:focus{padding:0}.ui-dialog .ui-dialog-content{position:relative;border:0;padding:.5em 1em;background:none;overflow:auto;zoom:1}.ui-dialog .ui-dialog-buttonpane{text-align:left;border-width:1px 0 0 0;background-image:none;margin:.5em 0 0 0;padding:.3em 1em .5em .4em}.ui-dialog .ui-dialog-buttonpane .ui-dialog-buttonset{float:right}.ui-dialog .ui-dialog-buttonpane button{margin:.5em .4em .5em 0;cursor:pointer}.ui-dialog .ui-resizable-se{width:14px;height:14px;right:3px;bottom:3px}.ui-draggable .ui-dialog-titlebar{cursor:move}.ui-menu{list-style:none;padding:2px;margin:0;display:block;outline:none}.ui-menu .ui-menu{margin-top:-3px;position:absolute}.ui-menu .ui-menu-item{margin:0;padding:0;zoom:1;width:100%}.ui-menu .ui-menu-divider{margin:5px -2px 5px -2px;height:0;font-size:0;line-height:0;border-width:1px 0 0 0}.ui-menu .ui-menu-item a{text-decoration:none;display:block;padding:2px .4em;line-height:1.5;zoom:1;font-weight:normal}.ui-menu .ui-menu-item a.ui-state-focus,.ui-menu .ui-menu-item a.ui-state-active{font-weight:normal;margin:-1px}.ui-menu .ui-state-disabled{font-weight:normal;margin:.4em 0 .2em;line-height:1.5}.ui-menu .ui-state-disabled a{cursor:default}.ui-menu-icons{position:relative}.ui-menu-icons .ui-menu-item a{position:relative;padding-left:2em}.ui-menu .ui-icon{position:absolute;top:.2em;left:.2em}.ui-menu .ui-menu-icon{position:static;float:right}.ui-progressbar{height:2em;text-align:left;overflow:hidden}.ui-progressbar .ui-progressbar-value{margin:-1px;height:100%}.ui-slider{position:relative;text-align:left}.ui-slider .ui-slider-handle{position:absolute;z-index:2;width:1.2em;height:1.2em;cursor:default}.ui-slider .ui-slider-range{position:absolute;z-index:1;font-size:.7em;display:block;border:0;background-position:0 0}.ui-slider-horizontal{height:.8em}.ui-slider-horizontal .ui-slider-handle{top:-.3em;margin-left:-.6em}.ui-slider-horizontal .ui-slider-range{top:0;height:100%}.ui-slider-horizontal .ui-slider-range-min{left:0}.ui-slider-horizontal .ui-slider-range-max{right:0}.ui-slider-vertical{width:.8em;height:100px}.ui-slider-vertical .ui-slider-handle{left:-.3em;margin-left:0;margin-bottom:-.6em}.ui-slider-vertical .ui-slider-range{left:0;width:100%}.ui-slider-vertical .ui-slider-range-min{bottom:0}.ui-slider-vertical .ui-slider-range-max{top:0}.ui-spinner{position:relative;display:inline-block;overflow:hidden;padding:0;vertical-align:middle}.ui-spinner-input{border:none;background:none;padding:0;margin:.2em 0;vertical-align:middle;margin-left:.4em;margin-right:22px}.ui-spinner-button{width:16px;height:50%;font-size:.5em;padding:0;margin:0;text-align:center;position:absolute;cursor:default;display:block;overflow:hidden;right:0}.ui-spinner a.ui-spinner-button{border-top:none;border-bottom:none;border-right:none}.ui-spinner .ui-icon{position:absolute;margin-top:-8px;top:50%;left:0}.ui-spinner-up{top:0}.ui-spinner-down{bottom:0}.ui-spinner .ui-icon-triangle-1-s{background-position:-65px -16px}.ui-tabs{position:relative;padding:.2em;zoom:1}.ui-tabs .ui-tabs-nav{margin:0;padding:.2em .2em 0}.ui-tabs .ui-tabs-nav li{list-style:none;float:left;position:relative;top:0;margin:1px .2em 0 0;border-bottom:0;padding:0;white-space:nowrap}.ui-tabs .ui-tabs-nav li a{float:left;padding:.5em 1em;text-decoration:none}.ui-tabs .ui-tabs-nav li.ui-tabs-active{margin-bottom:-1px;padding-bottom:1px}.ui-tabs .ui-tabs-nav li.ui-tabs-active a,.ui-tabs .ui-tabs-nav li.ui-state-disabled a,.ui-tabs .ui-tabs-nav li.ui-tabs-loading a{cursor:text}.ui-tabs .ui-tabs-nav li a,.ui-tabs-collapsible .ui-tabs-nav li.ui-tabs-active a{cursor:pointer}.ui-tabs .ui-tabs-panel{display:block;border-width:0;padding:1em 1.4em;background:none}.ui-tooltip{padding:8px;position:absolute;z-index:9999;max-width:300px;-webkit-box-shadow:0 0 5px #aaa;box-shadow:0 0 5px #aaa}* html .ui-tooltip{background-image:none}body .ui-tooltip{border-width:2px}.ui-widget{font-family:Verdana,Arial,sans-serif;font-size:1.1em}.ui-widget .ui-widget{font-size:1em}.ui-widget input,.ui-widget select,.ui-widget textarea,.ui-widget button{font-family:Verdana,Arial,sans-serif;font-size:1em}
+.ui-widget-content{border:1px solid #aaa;background:#fff url(images/ui-bg_flat_75_ffffff_40x100.png) 50% 50% repeat-x;color:#222}.ui-widget-content a{color:#222}.ui-widget-header{border:1px solid #aaa;background:#ccc url(images/ui-bg_highlight-soft_75_cccccc_1x100.png) 50% 50% repeat-x;color:#222;font-weight:bold}.ui-widget-header a{color:#222}.ui-state-default,.ui-widget-content .ui-state-default,.ui-widget-header .ui-state-default{border:1px solid #d3d3d3;background:#e6e6e6 url(images/ui-bg_glass_75_e6e6e6_1x400.png) 50% 50% repeat-x;font-weight:normal;color:#555}.ui-state-default a,.ui-state-default a:link,.ui-state-default a:visited{color:#555;text-decoration:none}.ui-state-hover,.ui-widget-content .ui-state-hover,.ui-widget-header .ui-state-hover,.ui-state-focus,.ui-widget-content .ui-state-focus,.ui-widget-header .ui-state-focus{border:1px solid #999;background:#dadada url(images/ui-bg_glass_75_dadada_1x400.png) 50% 50% repeat-x;font-weight:normal;color:#212121}.ui-state-hover a,.ui-state-hover a:hover,.ui-state-hover a:link,.ui-state-hover a:visited{color:#212121;text-decoration:none}.ui-state-active,.ui-widget-content .ui-state-active,.ui-widget-header .ui-state-active{border:1px solid #aaa;background:#fff url(images/ui-bg_glass_65_ffffff_1x400.png) 50% 50% repeat-x;font-weight:normal;color:#212121}.ui-state-active a,.ui-state-active a:link,.ui-state-active a:visited{color:#212121;text-decoration:none}.ui-state-highlight,.ui-widget-content .ui-state-highlight,.ui-widget-header .ui-state-highlight{border:1px solid #fcefa1;background:#fbf9ee url(images/ui-bg_glass_55_fbf9ee_1x400.png) 50% 50% repeat-x;color:#363636}.ui-state-highlight a,.ui-widget-content .ui-state-highlight a,.ui-widget-header .ui-state-highlight a{color:#363636}.ui-state-error,.ui-widget-content .ui-state-error,.ui-widget-header .ui-state-error{border:1px solid #cd0a0a;background:#fef1ec url(images/ui-bg_glass_95_fef1ec_1x400.png) 50% 50% repeat-x;color:#cd0a0a}.ui-state-error a,.ui-widget-content .ui-state-error a,.ui-widget-header .ui-state-error a{color:#cd0a0a}.ui-state-error-text,.ui-widget-content .ui-state-error-text,.ui-widget-header .ui-state-error-text{color:#cd0a0a}.ui-priority-primary,.ui-widget-content .ui-priority-primary,.ui-widget-header .ui-priority-primary{font-weight:bold}.ui-priority-secondary,.ui-widget-content .ui-priority-secondary,.ui-widget-header .ui-priority-secondary{opacity:.7;filter:Alpha(Opacity=70);font-weight:normal}.ui-state-disabled,.ui-widget-content .ui-state-disabled,.ui-widget-header .ui-state-disabled{opacity:.35;filter:Alpha(Opacity=35);background-image:none}.ui-state-disabled .ui-icon{filter:Alpha(Opacity=35)}.ui-icon{width:16px;height:16px;background-image:url(images/ui-icons_222222_256x240.png)}.ui-widget-content .ui-icon{background-image:url(images/ui-icons_222222_256x240.png)}.ui-widget-header .ui-icon{background-image:url(images/ui-icons_222222_256x240.png)}.ui-state-default .ui-icon{background-image:url(images/ui-icons_888888_256x240.png)}.ui-state-hover .ui-icon,.ui-state-focus .ui-icon{background-image:url(images/ui-icons_454545_256x240.png)}.ui-state-active .ui-icon{background-image:url(images/ui-icons_454545_256x240.png)}.ui-state-highlight .ui-icon{background-image:url(images/ui-icons_2e83ff_256x240.png)}.ui-state-error .ui-icon,.ui-state-error-text .ui-icon{background-image:url(images/ui-icons_cd0a0a_256x240.png)}.ui-icon-carat-1-n{background-position:0 0}.ui-icon-carat-1-ne{background-position:-16px 0}.ui-icon-carat-1-e{background-position:-32px 0}.ui-icon-carat-1-se{background-position:-48px 0}.ui-icon-carat-1-s{background-position:-64px 0}.ui-icon-carat-1-sw{background-position:-80px 0}.ui-icon-carat-1-w{background-position:-96px 0}.ui-icon-carat-1-nw{background-position:-112px 0}.ui-icon-carat-2-n-s{background-position:-128px 0}.ui-icon-carat-2-e-w{background-position:-144px 0}.ui-icon-triangle-1-n{background-position:0 -16px}.ui-icon-triangle-1-ne{background-position:-16px -16px}.ui-icon-triangle-1-e{background-position:-32px -16px}.ui-icon-triangle-1-se{background-position:-48px -16px}.ui-icon-triangle-1-s{background-position:-64px -16px}.ui-icon-triangle-1-sw{background-position:-80px -16px}.ui-icon-triangle-1-w{background-position:-96px -16px}.ui-icon-triangle-1-nw{background-position:-112px -16px}.ui-icon-triangle-2-n-s{background-position:-128px -16px}.ui-icon-triangle-2-e-w{background-position:-144px -16px}.ui-icon-arrow-1-n{background-position:0 -32px}.ui-icon-arrow-1-ne{background-position:-16px -32px}.ui-icon-arrow-1-e{background-position:-32px -32px}.ui-icon-arrow-1-se{background-position:-48px -32px}.ui-icon-arrow-1-s{background-position:-64px -32px}.ui-icon-arrow-1-sw{background-position:-80px -32px}.ui-icon-arrow-1-w{background-position:-96px -32px}.ui-icon-arrow-1-nw{background-position:-112px -32px}.ui-icon-arrow-2-n-s{background-position:-128px -32px}.ui-icon-arrow-2-ne-sw{background-position:-144px -32px}.ui-icon-arrow-2-e-w{background-position:-160px -32px}.ui-icon-arrow-2-se-nw{background-position:-176px -32px}.ui-icon-arrowstop-1-n{background-position:-192px -32px}.ui-icon-arrowstop-1-e{background-position:-208px -32px}.ui-icon-arrowstop-1-s{background-position:-224px -32px}.ui-icon-arrowstop-1-w{background-position:-240px -32px}.ui-icon-arrowthick-1-n{background-position:0 -48px}.ui-icon-arrowthick-1-ne{background-position:-16px -48px}.ui-icon-arrowthick-1-e{background-position:-32px -48px}.ui-icon-arrowthick-1-se{background-position:-48px -48px}.ui-icon-arrowthick-1-s{background-position:-64px -48px}.ui-icon-arrowthick-1-sw{background-position:-80px -48px}.ui-icon-arrowthick-1-w{background-position:-96px -48px}.ui-icon-arrowthick-1-nw{background-position:-112px -48px}.ui-icon-arrowthick-2-n-s{background-position:-128px -48px}.ui-icon-arrowthick-2-ne-sw{background-position:-144px -48px}.ui-icon-arrowthick-2-e-w{background-position:-160px -48px}.ui-icon-arrowthick-2-se-nw{background-position:-176px -48px}.ui-icon-arrowthickstop-1-n{background-position:-192px -48px}.ui-icon-arrowthickstop-1-e{background-position:-208px -48px}.ui-icon-arrowthickstop-1-s{background-position:-224px -48px}.ui-icon-arrowthickstop-1-w{background-position:-240px -48px}.ui-icon-arrowreturnthick-1-w{background-position:0 -64px}.ui-icon-arrowreturnthick-1-n{background-position:-16px -64px}.ui-icon-arrowreturnthick-1-e{background-position:-32px -64px}.ui-icon-arrowreturnthick-1-s{background-position:-48px -64px}.ui-icon-arrowreturn-1-w{background-position:-64px -64px}.ui-icon-arrowreturn-1-n{background-position:-80px -64px}.ui-icon-arrowreturn-1-e{background-position:-96px -64px}.ui-icon-arrowreturn-1-s{background-position:-112px -64px}.ui-icon-arrowrefresh-1-w{background-position:-128px -64px}.ui-icon-arrowrefresh-1-n{background-position:-144px -64px}.ui-icon-arrowrefresh-1-e{background-position:-160px -64px}.ui-icon-arrowrefresh-1-s{background-position:-176px -64px}.ui-icon-arrow-4{background-position:0 -80px}.ui-icon-arrow-4-diag{background-position:-16px -80px}.ui-icon-extlink{background-position:-32px -80px}.ui-icon-newwin{background-position:-48px -80px}.ui-icon-refresh{background-position:-64px -80px}.ui-icon-shuffle{background-position:-80px -80px}.ui-icon-transfer-e-w{background-position:-96px -80px}.ui-icon-transferthick-e-w{background-position:-112px -80px}.ui-icon-folder-collapsed{background-position:0 -96px}.ui-icon-folder-open{background-position:-16px -96px}.ui-icon-document{background-position:-32px -96px}.ui-icon-document-b{background-position:-48px -96px}.ui-icon-note{background-position:-64px -96px}.ui-icon-mail-closed{background-position:-80px -96px}.ui-icon-mail-open{background-position:-96px -96px}.ui-icon-suitcase{background-position:-112px -96px}.ui-icon-comment{background-position:-128px -96px}.ui-icon-person{background-position:-144px -96px}.ui-icon-print{background-position:-160px -96px}.ui-icon-trash{background-position:-176px -96px}.ui-icon-locked{background-position:-192px -96px}.ui-icon-unlocked{background-position:-208px -96px}.ui-icon-bookmark{background-position:-224px -96px}.ui-icon-tag{background-position:-240px -96px}.ui-icon-home{background-position:0 -112px}.ui-icon-flag{background-position:-16px -112px}.ui-icon-calendar{background-position:-32px -112px}.ui-icon-cart{background-position:-48px -112px}.ui-icon-pencil{background-position:-64px -112px}.ui-icon-clock{background-position:-80px -112px}.ui-icon-disk{background-position:-96px -112px}.ui-icon-calculator{background-position:-112px -112px}.ui-icon-zoomin{background-position:-128px -112px}.ui-icon-zoomout{background-position:-144px -112px}.ui-icon-search{background-position:-160px -112px}.ui-icon-wrench{background-position:-176px -112px}.ui-icon-gear{background-position:-192px -112px}.ui-icon-heart{background-position:-208px -112px}.ui-icon-star{background-position:-224px -112px}.ui-icon-link{background-position:-240px -112px}.ui-icon-cancel{background-position:0 -128px}.ui-icon-plus{background-position:-16px -128px}.ui-icon-plusthick{background-position:-32px -128px}.ui-icon-minus{background-position:-48px -128px}.ui-icon-minusthick{background-position:-64px -128px}.ui-icon-close{background-position:-80px -128px}.ui-icon-closethick{background-position:-96px -128px}.ui-icon-key{background-position:-112px -128px}.ui-icon-lightbulb{background-position:-128px -128px}.ui-icon-scissors{background-position:-144px -128px}.ui-icon-clipboard{background-position:-160px -128px}.ui-icon-copy{background-position:-176px -128px}.ui-icon-contact{background-position:-192px -128px}.ui-icon-image{background-position:-208px -128px}.ui-icon-video{background-position:-224px -128px}.ui-icon-script{background-position:-240px -128px}.ui-icon-alert{background-position:0 -144px}.ui-icon-info{background-position:-16px -144px}.ui-icon-notice{background-position:-32px -144px}.ui-icon-help{background-position:-48px -144px}.ui-icon-check{background-position:-64px -144px}.ui-icon-bullet{background-position:-80px -144px}.ui-icon-radio-on{background-position:-96px -144px}.ui-icon-radio-off{background-position:-112px -144px}.ui-icon-pin-w{background-position:-128px -144px}.ui-icon-pin-s{background-position:-144px -144px}.ui-icon-play{background-position:0 -160px}.ui-icon-pause{background-position:-16px -160px}.ui-icon-seek-next{background-position:-32px -160px}.ui-icon-seek-prev{background-position:-48px -160px}.ui-icon-seek-end{background-position:-64px -160px}.ui-icon-seek-start{background-position:-80px -160px}.ui-icon-seek-first{background-position:-80px -160px}.ui-icon-stop{background-position:-96px -160px}.ui-icon-eject{background-position:-112px -160px}.ui-icon-volume-off{background-position:-128px -160px}.ui-icon-volume-on{background-position:-144px -160px}.ui-icon-power{background-position:0 -176px}.ui-icon-signal-diag{background-position:-16px -176px}.ui-icon-signal{background-position:-32px -176px}.ui-icon-battery-0{background-position:-48px -176px}.ui-icon-battery-1{background-position:-64px -176px}.ui-icon-battery-2{background-position:-80px -176px}.ui-icon-battery-3{background-position:-96px -176px}.ui-icon-circle-plus{background-position:0 -192px}.ui-icon-circle-minus{background-position:-16px -192px}.ui-icon-circle-close{background-position:-32px -192px}.ui-icon-circle-triangle-e{background-position:-48px -192px}.ui-icon-circle-triangle-s{background-position:-64px -192px}.ui-icon-circle-triangle-w{background-position:-80px -192px}.ui-icon-circle-triangle-n{background-position:-96px -192px}.ui-icon-circle-arrow-e{background-position:-112px -192px}.ui-icon-circle-arrow-s{background-position:-128px -192px}.ui-icon-circle-arrow-w{background-position:-144px -192px}.ui-icon-circle-arrow-n{background-position:-160px -192px}.ui-icon-circle-zoomin{background-position:-176px -192px}
+.ui-icon-circle-zoomout{background-position:-192px -192px}.ui-icon-circle-check{background-position:-208px -192px}.ui-icon-circlesmall-plus{background-position:0 -208px}.ui-icon-circlesmall-minus{background-position:-16px -208px}.ui-icon-circlesmall-close{background-position:-32px -208px}.ui-icon-squaresmall-plus{background-position:-48px -208px}.ui-icon-squaresmall-minus{background-position:-64px -208px}.ui-icon-squaresmall-close{background-position:-80px -208px}.ui-icon-grip-dotted-vertical{background-position:0 -224px}.ui-icon-grip-dotted-horizontal{background-position:-16px -224px}.ui-icon-grip-solid-vertical{background-position:-32px -224px}.ui-icon-grip-solid-horizontal{background-position:-48px -224px}.ui-icon-gripsmall-diagonal-se{background-position:-64px -224px}.ui-icon-grip-diagonal-se{background-position:-80px -224px}.ui-corner-all,.ui-corner-top,.ui-corner-left,.ui-corner-tl{-moz-border-radius-topleft:4px;-webkit-border-top-left-radius:4px;-khtml-border-top-left-radius:4px;border-top-left-radius:4px}.ui-corner-all,.ui-corner-top,.ui-corner-right,.ui-corner-tr{-moz-border-radius-topright:4px;-webkit-border-top-right-radius:4px;-khtml-border-top-right-radius:4px;border-top-right-radius:4px}.ui-corner-all,.ui-corner-bottom,.ui-corner-left,.ui-corner-bl{-moz-border-radius-bottomleft:4px;-webkit-border-bottom-left-radius:4px;-khtml-border-bottom-left-radius:4px;border-bottom-left-radius:4px}.ui-corner-all,.ui-corner-bottom,.ui-corner-right,.ui-corner-br{-moz-border-radius-bottomright:4px;-webkit-border-bottom-right-radius:4px;-khtml-border-bottom-right-radius:4px;border-bottom-right-radius:4px}.ui-widget-overlay{background:#aaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x;opacity:.3;filter:Alpha(Opacity=30)}.ui-widget-shadow{margin:-8px 0 0 -8px;padding:8px;background:#aaa url(images/ui-bg_flat_0_aaaaaa_40x100.png) 50% 50% repeat-x;opacity:.3;filter:Alpha(Opacity=30);-moz-border-radius:8px;-khtml-border-radius:8px;-webkit-border-radius:8px;border-radius:8px}
\ No newline at end of file
--- a/web/wp-content/plugins/duplicator/css/style.css	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-content/plugins/duplicator/css/style.css	Wed Dec 19 17:46:52 2012 -0800
@@ -9,7 +9,12 @@
 
 /*PAGE-MAIN: Toolbar*/
 div.dup-header {padding:5px 10px 0px 0px;border:1px solid #efefef; margin:10px 0px 18px 0px; border-radius:5px;box-shadow: 0 8px 6px -6px #C7C7C7;}
+div.dup-header input {border:1px solid silver; border-radius:4px}
+div.dup-header input:hover {border:1px solid black;}
 table#toolbar-table td {padding:0px; white-space:nowrap;}
+table#toolbar-table input {border:1px solid silver; border-radius:4px}
+table#toolbar-table input:hover {border:1px solid black;}
+
 td.toolbar-label label {font-size:14px !important; margin-top:7px; display:inline-block; font-weight:bold}
 td.toolbar-textbox {white-space:nowrap;width:100%; vertical-align:middle}
 img.toolbar-divider {height:26px; padding:0px 5px 0px 5px}
@@ -85,6 +90,7 @@
 
 /*JQUERY UI OVERIDES */
 .ui-button-text-icon-primary .ui-button-text, .ui-button-text-icons .ui-button-text { padding: .2em 1em .2em 2.1em; }
+.ui-tabs-hide {display:none !important} /*fix for WP 3.5 setting */
 
 
 
--- a/web/wp-content/plugins/duplicator/define.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-content/plugins/duplicator/define.php	Wed Dec 19 17:46:52 2012 -0800
@@ -2,7 +2,7 @@
 	
 	//Prevent directly browsing to the file
 	if (function_exists('plugin_dir_url')) {
-		define('DUPLICATOR_VERSION',   		'0.3.2');
+		define('DUPLICATOR_VERSION',   		'0.4.1');
 		define("DUPLICATOR_HOMEPAGE",		"http://lifeinthegrid.com/labs/duplicator");
 		define("DUPLICATOR_GIVELINK",		"http://lifeinthegrid.com/partner");
 		define("DUPLICATOR_HELPLINK",  		"http://lifeinthegrid.com/duplicator-docs");
--- a/web/wp-content/plugins/duplicator/duplicator.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-content/plugins/duplicator/duplicator.php	Wed Dec 19 17:46:52 2012 -0800
@@ -3,7 +3,7 @@
 Plugin Name: Duplicator
 Plugin URI: http://www.lifeinthegrid.com/duplicator/
 Description: Create a full WordPress backup of your files and database with one click. Duplicate and move an entire site from one location to another in 3 easy steps. Create full snapshot of your site at any point in time.
-Version: 0.3.2
+Version: 0.4.1
 Author: LifeInTheGrid
 Author URI: http://www.lifeinthegrid.com
 License: GPLv2 or later
@@ -11,7 +11,7 @@
 
 /* ================================================================================ 
 Copyright 2011-2012  Cory Lamle 
-Copyright 2011  Gaurav Aggarwal  
+
 This program is free software; you can redistribute it and/or modify
 it under the terms of the GNU General Public License, version 2, as 
 published by the Free Software Foundation.
@@ -25,9 +25,8 @@
 along with this program; if not, write to the Free Software
 Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
 	
-Contributors:
- Many thanks go out to Gaurav Aggarwal for starting the Backup and Move Plugin.
- This project is a fork of that project see backup-and-move for more details.		
+SOURCE CONTRIBUTORS:
+Gaurav Aggarwal
 
 ================================================================================ */
 
@@ -44,15 +43,20 @@
 	$GLOBALS['duplicator_opts']['dbuser']		= isset($GLOBALS['duplicator_opts']['dbuser'])			? $GLOBALS['duplicator_opts']['dbuser'] 		: '';
 	$GLOBALS['duplicator_opts']['dbiconv']		= isset($GLOBALS['duplicator_opts']['dbiconv'])			? $GLOBALS['duplicator_opts']['dbiconv']		: '1';
 	$GLOBALS['duplicator_opts']['dbadd_drop']	= isset($GLOBALS['duplicator_opts']['dbadd_drop'])		? $GLOBALS['duplicator_opts']['dbadd_drop']     : '0';
-	$GLOBALS['duplicator_opts']['nurl']  		= isset($GLOBALS['duplicator_opts']['nurl'] ) 			? $GLOBALS['duplicator_opts']['nurl']  			: '';
+	$GLOBALS['duplicator_opts']['url_new']  	= isset($GLOBALS['duplicator_opts']['url_new'] ) 		? $GLOBALS['duplicator_opts']['url_new']  		: '';
 	$GLOBALS['duplicator_opts']['email-me']		= isset($GLOBALS['duplicator_opts']['email-me'])		? $GLOBALS['duplicator_opts']['email-me']		: '0';
 	$GLOBALS['duplicator_opts']['log_level'] 	= isset($GLOBALS['duplicator_opts']['log_level'])		? $GLOBALS['duplicator_opts']['log_level']  	: '0';
-	$GLOBALS['duplicator_opts']['max_time']		= is_numeric($GLOBALS['duplicator_opts']['max_time'])	? $GLOBALS['duplicator_opts']['max_time']   	: 1000;
 	$GLOBALS['duplicator_opts']['max_memory']	= isset($GLOBALS['duplicator_opts']['max_memory'])  	? $GLOBALS['duplicator_opts']['max_memory'] 	: '1000M';
 	$GLOBALS['duplicator_opts']['email_others']	= isset($GLOBALS['duplicator_opts']['email_others']) 	? $GLOBALS['duplicator_opts']['email_others']	: '';
 	$GLOBALS['duplicator_opts']['skip_ext']		= isset($GLOBALS['duplicator_opts']['skip_ext'])  		? $GLOBALS['duplicator_opts']['skip_ext'] 		: '';
 	$GLOBALS['duplicator_opts']['dir_bypass']	= isset($GLOBALS['duplicator_opts']['dir_bypass'])		? $GLOBALS['duplicator_opts']['dir_bypass']		: '';
 	$GLOBALS['duplicator_opts']['rm_snapshot']  = isset($GLOBALS['duplicator_opts']['rm_snapshot']) 	? $GLOBALS['duplicator_opts']['rm_snapshot'] 	: '1';
+	//max_time needs to be numeric
+	if (isset($GLOBALS['duplicator_opts']['max_time'])) {
+		$GLOBALS['duplicator_opts']['max_time']		= is_numeric($GLOBALS['duplicator_opts']['max_time'])	? $GLOBALS['duplicator_opts']['max_time']   	: 1000;
+	} else {
+		$GLOBALS['duplicator_opts']['max_time'] = 1000;
+	}
 	
 	//Default Arrays
 	$GLOBALS['duplicator_bypass-array']	  = explode(";", $GLOBALS['duplicator_opts']['dir_bypass'], -1);
@@ -88,7 +92,7 @@
 			'dbhost'		=>'localhost',
 			'dbname'		=>'',
 			'dbuser'		=>'',
-			'nurl'			=>'',
+			'url_new'			=>'',
 			'email-me'		=>"{$GLOBALS['duplicator_opts']['email-me']}",
 			'email_others'	=>"{$GLOBALS['duplicator_opts']['email_others']}",
 			'max_time'		=>$GLOBALS['duplicator_opts']['max_time'],
@@ -199,7 +203,7 @@
 	}
 	
 	//HOOKS & ACTIONS
-	load_plugin_textdomain('wpduplicator' , FALSE, basename( dirname( __FILE__ ) ) . '/lang/' );
+	load_plugin_textdomain('wpduplicator' , FALSE, dirname( plugin_basename( __FILE__ ) ) . '/lang/');
 	register_activation_hook(__FILE__ ,	    'duplicator_activate');
 	register_deactivation_hook(__FILE__ ,	'duplicator_deactivate');
 	register_uninstall_hook(__FILE__ , 		'duplicator_uninstall');
@@ -221,7 +225,7 @@
 	 *  Init routines  */
 	function duplicator_init() {
 	   /* Register our stylesheet. */
-	   wp_register_style('jquery-ui', 		  DUPLICATOR_PLUGIN_URL . 'css/jquery-ui.css', null , "1.8.21" );
+	   wp_register_style('jquery-ui', 		  DUPLICATOR_PLUGIN_URL . 'css/jquery-ui.css', null , "1.9.2" );
 	   wp_register_style('duplicator_style',  DUPLICATOR_PLUGIN_URL . 'css/style.css' );
 	}
 
@@ -258,10 +262,14 @@
 	}
 
 	/**
-	 *  DUPLICATOR_SCRIPTS
-	 *  Loads the required javascript libs only for this plugin  */
+	*  DUPLICATOR_SCRIPTS
+	*  Loads the required javascript libs only for this plugin  */
 	function duplicator_scripts() {
-		wp_enqueue_script("jquery-ui", DUPLICATOR_PLUGIN_URL . "js/jquery-ui.min.js", array( 'jquery' ), "1.8.21");
+		wp_enqueue_script('jquery');
+		wp_enqueue_script('jquery-ui-core');
+		wp_enqueue_script('jquery-ui-dialog');
+		wp_enqueue_script('jquery-ui-button');
+		wp_enqueue_script('jquery-ui-tabs');
 	}
 
 	/**
Binary file web/wp-content/plugins/duplicator/img/delete.png has changed
--- a/web/wp-content/plugins/duplicator/inc/actions.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-content/plugins/duplicator/inc/actions.php	Wed Dec 19 17:46:52 2012 -0800
@@ -107,6 +107,7 @@
 		duplicator_log("*********************************************************");
 		duplicator_log("UPDATE INSTALLER FILE");
 		duplicator_log("*********************************************************");
+		duplicator_build_installerFile();
 		duplicator_create_installerFile($uniquename);
 
 		//SEND EMAIL
@@ -204,9 +205,14 @@
 	$test = ini_get('safe_mode');;
 	$json['SYS-103'] = ! ($test) ? 'Pass' : 'Fail';
 	
-	//SYS-104 MYSQLI SUPPORT
-	$test = function_exists('mysqli_connect');
-	$json['SYS-104'] = ($test) ? 'Pass' : 'Fail';
+	//SYS-104 MYSQL SUPPORT
+	$mysql_test1 = function_exists('mysqli_connect');
+	$mysql_test2 = version_compare($wpdb->db_version(), '4.1', '>=' );
+	$json['SYS-104'] = ($mysql_test1 && $mysql_test2) ? 'Pass' : 'Fail'; 
+	
+	//SYS-105 PHP VERSION
+	$test  = version_compare(phpversion(), '5.2.17');
+	$json['SYS-105'] = ($test >= 0) ? 'Pass' : 'Fail';
 
 	$result = in_array('Fail', $json);
 	$json['Success'] = ! $result;
@@ -320,7 +326,7 @@
 		'dbname'		=>$_POST['dbname'],
 		'dbuser'		=>$_POST['dbuser'],
 		'dbiconv'		=>$_POST['dbiconv'],
-		'nurl'			=>rtrim($_POST['nurl'], '/'),
+		'url_new'			=>rtrim($_POST['url_new'], '/'),
 		'email-me'		=>$_POST['email-me'],
 		'email_others'	=>$_POST['email_others'],
 		'max_time'		=>$_POST['max_time'],
--- a/web/wp-content/plugins/duplicator/inc/class.zip.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-content/plugins/duplicator/inc/class.zip.php	Wed Dec 19 17:46:52 2012 -0800
@@ -86,9 +86,11 @@
 				}
 			}
 			
+			/* Legacy: Excludes empty diretories and files with no extention
 			while (false !== ($file = @readdir($dh))) { 
 				if ($file != '.' && $file != '..') { 
 					$fullpath = "{$folderPath}/{$file}";
+					
 					if(is_dir($fullpath)) {
 						duplicator_fcgi_flush();
 						$this->resursiveZip($fullpath);
@@ -103,7 +105,31 @@
 					} 
 					$this->limitItems++;
 				}
-			} 
+			} */
+			
+			
+			while (false !== ($file = @readdir($dh))) {
+                 if ($file != '.' && $file != '..') {
+                    $fullpath = "{$folderPath}/{$file}";
+					$localpath = str_replace($this->rootFolder, '', $folderPath);
+					$localname = empty($localpath) ? '' : ltrim("{$localpath}/", '/');
+                     if(is_dir($fullpath)) {
+                         duplicator_fcgi_flush();
+ 						 $this->zipArchive->addEmptyDir("{$localname}{$file}");
+                         $this->resursiveZip($fullpath);
+                     }
+                     else if(is_file($fullpath) && is_readable($fullpath)) {
+                         //Check filter extensions
+                        $ext = @pathinfo($fullpath, PATHINFO_EXTENSION);
+                        if($ext == '' || !in_array($ext, $this->skipNames)) {
+							$this->zipArchive->addFile("{$folderPath}/{$file}", "{$localname}{$file}");
+                        }
+                     }
+					 $this->limitItems++;
+				}
+			}
+			
+			
 			
 			//Check if were over our count
 			if($this->limitItems > $this->limit) {
--- a/web/wp-content/plugins/duplicator/inc/functions.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-content/plugins/duplicator/inc/functions.php	Wed Dec 19 17:46:52 2012 -0800
@@ -9,14 +9,15 @@
 	try {
 
 		global $wpdb;
-		$dbiconv = ($GLOBALS['duplicator_opts']['dbiconv'] == "0" && function_exists("iconv")) ? false : true;
+		//$dbiconv = ($GLOBALS['duplicator_opts']['dbiconv'] == "0" && function_exists("iconv")) ? false : true;
+		
 		$handle  = fopen($destination,'w+');
 		$tables  = $wpdb->get_col('SHOW TABLES');
 		
 		duplicator_log("log:fun__create_dbscript=>started");
-		if ($dbiconv) {
-			duplicator_log("log:fun__create_dbscript=>dbiconv enabled");
-		}
+		//if ($dbiconv) {
+			//duplicator_log("log:fun__create_dbscript=>dbiconv enabled");
+		//}
 		
 		foreach ($tables as $table) {
 		
@@ -40,7 +41,7 @@
 			
 			//PERFORM ICONV ROUTINE
 			//Chunck the query results to avoid memory issues
-			if ($dbiconv) {
+			/*if ($dbiconv) {
 			
 				for ($i = 0; $i < $row_count; $i++) {
 					$sql   = "";
@@ -67,7 +68,7 @@
 				}
 				
 			//DO NOT PERFORM ICONV
-			} else {
+			} else {*/
 
 				for ($i = 0; $i < $row_count; $i++) {
 					$sql   = "";
@@ -92,7 +93,7 @@
 					}
 				}
 			
-			}
+			//}
 			
 			@fwrite($handle, "\n\n");
 			duplicator_log("done:  {$table}");
@@ -109,6 +110,55 @@
 }
 
 /**
+ *  DUPLICATOR_BUILD_INSTALLERFILE
+ *  Builds the Installer file from the contents of the files/installer directory
+ */
+function duplicator_build_installerFile() {
+
+	duplicator_log("log:fun__build_installerFile=>start");
+
+	$template_path = duplicator_safe_path(DUPLICATOR_PLUGIN_PATH  . 'files/installer.template.php');
+	$main_path	   = duplicator_safe_path(DUPLICATOR_PLUGIN_PATH  . 'files/installer/main.installer.php');
+	@chmod($template_path, 0777);
+	@chmod($main_path, 0777);
+	
+	$main_data  = file_get_contents("{$main_path}");
+	$template_result = file_put_contents($template_path, $main_data);
+	if ($main_data === false || $template_result == false) {
+		duplicator_log("log:fun__build_installerFile=>install generation failed to copy {$main_path}");
+	}
+	
+	$embeded_files = array (
+		"inc.utils.php"		    => "@@INC.UTILS.PHP@@", 
+		"ajax.step1.php"		=> "@@AJAX.STEP1.PHP@@", 
+		"ajax.step2.php"		=> "@@AJAX.STEP2.PHP@@", 
+		"inc.style.css"  		=> "@@INC.STYLE.CSS@@",
+		"inc.scripts.js"		=> "@@INC.SCRIPTS.JS@@",
+		"view.step1.php"		=> "@@VIEW.STEP1.PHP@@",
+		"view.step2.php"		=> "@@VIEW.STEP2.PHP@@",
+		"view.step3.php"		=> "@@VIEW.STEP3.PHP@@"); 
+	
+	foreach ($embeded_files as $name=>$token) { 
+		$file_path    = DUPLICATOR_PLUGIN_PATH  . "files/installer/${name}";
+		@chmod($file_path, 0777);
+		
+		$search_data     = @file_get_contents($template_path);
+		$insert_data  	 = @file_get_contents($file_path);
+		file_put_contents($template_path, str_replace("${token}", "{$insert_data}", $search_data));
+		if ($search_data === false || $insert_data == false) {
+			duplicator_log("log:fun__build_installerFile=>install generation failed at {$token}");
+		}
+		@chmod($file_path, 0644);
+	} 
+	
+	@chmod($template_path, 0644);
+	@chmod($main_path, 0644);
+	
+	duplicator_log("log:fun__build_installerFile=>end");
+}
+
+
+/**
  *  DUPLICATOR_CREATE_INSTALLERFILE
  *  Prep the Installer file for use. use %string% token for replacing 
  *  @param string $uniquename	The unique name this installer file will be associated with
@@ -126,15 +176,16 @@
 	
 	get_option('duplicator_options') == ""  ? "" : $duplicator_opts = unserialize(get_option('duplicator_options'));
 	$replace_items = Array(
-		"fwrite_current_url" 		=> get_option('siteurl'),
+		"fwrite_url_old" 			=> get_option('siteurl'),
 		"fwrite_package_name"  	 	=> "{$uniquename}_package.zip",
 		"fwrite_secure_name"	 	=> "{$uniquename}",
-		"fwrite_nurl" 				=> $duplicator_opts['nurl'],
+		"fwrite_url_new" 			=> $duplicator_opts['url_new'],
 		"fwrite_dbhost" 			=> $duplicator_opts['dbhost'],
 		"fwrite_dbname" 			=> $duplicator_opts['dbname'],
 		"fwrite_dbuser" 			=> $duplicator_opts['dbuser'],
 		"fwrite_wp_tableprefix" 	=> $wpdb->prefix,
-		"fwrite_site_title"			=> get_option('blogname'),
+		"fwrite_blogname"			=> get_option('blogname'),
+		"fwrite_wproot"			    => DUPLICATOR_WPROOTPATH,
 		"fwrite_rescue_flag"		=> "");
 		
 	if( file_exists($template) && is_readable($template)) {
@@ -342,7 +393,7 @@
  *  bytes every 40 seconds or else it forces a script hault
  */
 function duplicator_fcgi_flush() {
-	echo(str_repeat(' ',256));
+	echo(str_repeat(' ',264));
 	@flush();
 }
 
--- a/web/wp-content/plugins/duplicator/inc/javascript.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-content/plugins/duplicator/inc/javascript.php	Wed Dec 19 17:46:52 2012 -0800
@@ -116,7 +116,7 @@
 				'dbhost' 		: $("input#dbhost").val(),
 				'dbname'  		: $("input#dbname").val(),
 				'dbuser'  		: $("input#dbuser").val(),
-				'nurl'  		: $("input#nurl").val(),
+				'url_new'  		: $("input#url_new").val(),
 				'dbiconv'  		: dbiconv,
 				'email-me'  	: email_me,
 				'email_others'  : email_others,
@@ -277,7 +277,7 @@
 	$("#dup-dlg-system-error").dialog({autoOpen:false, height:550, width:650, create:Duplicator._dlgCreate, close:Duplicator._dlgClose });	
 	$("#dup-dlg-quick-path").dialog({autoOpen:false, height:355, width:800, create:Duplicator._dlgCreate, close:Duplicator._dlgClose });	
 	$("#dup-dlg-package-confirm").dialog(
-		{autoOpen:false, height:285, width:625, create:Duplicator._dlgCreate, close:Duplicator._dlgClose,
+		{autoOpen:false, height:300, width:625, create:Duplicator._dlgCreate, close:Duplicator._dlgClose,
 		buttons: {
 				"<?php _e('Create Package Set', 'wpduplicator') ?>" : function() {
 					$(this).dialog("close");
@@ -305,6 +305,12 @@
 	}
 	Duplicator.optionsOpen  = function() {$("div#dialog-options").dialog("open");}
 	Duplicator.optionsClose = function() {$('div#dialog-options').dialog('close');}
+	Duplicator.optionsAddRootPath = function(obj) {
+		var path = $(obj).text();
+		var text = $("#dir_bypass").val() + path + ';';
+		$("#dir_bypass").val(text);
+	}
+	
 
 
 	/*  ============================================================================
--- a/web/wp-content/plugins/duplicator/inc/page.about.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-content/plugins/duplicator/inc/page.about.php	Wed Dec 19 17:46:52 2012 -0800
@@ -12,6 +12,9 @@
 	<!-- h2 requred here for general system messages -->
 	<h2 style='display:none'></h2>
 	<div class="dup-header widget">
+		<!-- !!DO NOT CHANGE/EDIT OR REMOVE PRODUCT NAME!!
+		If your interested in Private Label Rights please contact us at the URL below to discuss
+		customizations to product labeling: http://lifeinthegrid.com/services/	-->
 		<div style='float:left;height:45px'><img src="<?php echo DUPLICATOR_PLUGIN_URL  ?>img/logo.png" style='text-align:top'  /></div> 
 		<div style='float:left;height:45px; text-align:center;'>
 			<h2 style='margin:-12px 0px -7px 0px; text-align:center; width:100%;'>Duplicator &raquo;<span style="font-size:18px"> <?php _e("About", 'wpduplicator') ?></span> </h2>
--- a/web/wp-content/plugins/duplicator/inc/page.diag.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-content/plugins/duplicator/inc/page.diag.php	Wed Dec 19 17:46:52 2012 -0800
@@ -16,6 +16,9 @@
 		<h2 style='display:none'></h2>
 		
 		<div class="dup-header widget" style="margin-bottom:5px">
+			<!-- !!DO NOT CHANGE OR EDIT PRODUCT NAME!!
+			If your interested in Private Label Rights please contact us at the URL below to discuss
+			customizations to product labeling: http://lifeinthegrid.com/services/	-->		
 			<div style='float:left;height:45px'><img src="<?php echo DUPLICATOR_PLUGIN_URL  ?>img/logo.png" style='text-align:top'  /></div> 
 			<div style='float:left;height:45px; text-align:center;'>
 				<h2 style='margin:-12px 0px -7px 0px; text-align:center; width:100%;'>Duplicator &raquo;<span style="font-size:18px"> <?php _e("Diagnostics", 'wpduplicator') ?></span> </h2>
@@ -28,7 +31,6 @@
 			<br style='clear:both' />
 		</div>
 		
-
 	<?php 	echo "<div id='dup-server-info-area'>{$serverinfo}</div>"; ?>
 
 </div>
\ No newline at end of file
--- a/web/wp-content/plugins/duplicator/inc/page.main.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-content/plugins/duplicator/inc/page.main.php	Wed Dec 19 17:46:52 2012 -0800
@@ -27,6 +27,9 @@
 		<!-- h2 requred here for general system messages -->
 		<h2 style='display:none'></h2>
 		<div class="dup-header widget">
+			<!-- !!DO NOT CHANGE OR EDIT PRODUCT NAME!!
+			If your interested in Private Label Rights please contact us at the URL below to discuss
+			customizations to product labeling: http://lifeinthegrid.com/services/	-->
 			<div style='float:left;height:45px'><img src="<?php echo DUPLICATOR_PLUGIN_URL  ?>img/logo.png" style='text-align:top'  /></div> 
 			<div style='float:left;height:45px; text-align:center;'>
 				<h2 style='margin:-12px 0px -7px 0px; text-align:center; width:100%;'>Duplicator &raquo;<span style="font-size:18px"> <?php _e("Dashboard", 'wpduplicator') ?></span> </h2>
--- a/web/wp-content/plugins/duplicator/inc/page.support.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-content/plugins/duplicator/inc/page.support.php	Wed Dec 19 17:46:52 2012 -0800
@@ -28,12 +28,12 @@
 			<?php  _e('For a complete rundown of the Duplicator see the online knowledgebase by clicking the question button or any link below.   If you experience issues with creating or installing a package check out the FAQ page first.', 'wpduplicator');?>
 		</div>
 		
-		<div style="width:100%; padding:10px 10px 0px 10px; font-size:16px; font-weight:bold" align="center">
+		<div style="width:100%;font-size:14px; padding-left:10px; font-weight:bold; text-align:center; line-height:26px;" >
 			<a href="http://lifeinthegrid.com/duplicator-quick" target="_blank"><?php _e('Quick Start', 'wpduplicator') ?></a> &nbsp; | &nbsp;
 			<a href="http://lifeinthegrid.com/duplicator-guide" target="_blank"><?php _e('User Guide', 'wpduplicator') ?></a> &nbsp; | &nbsp; 
-			<a href="http://lifeinthegrid.com/duplicator-faq" target="_blank"><?php _e('FAQs', 'wpduplicator') ?></a> &nbsp; | &nbsp; 
+			<a href="http://lifeinthegrid.com/duplicator-faq" target="_blank"><?php _e('FAQs', 'wpduplicator') ?></a>   &nbsp; | &nbsp; 
 			<a href="http://lifeinthegrid.com/duplicator-log" target="_blank"><?php _e('Changelog', 'wpduplicator') ?></a> &nbsp; | &nbsp; 
-			<a href="http://lifeinthegrid.com/labs/duplicator" target="_blank">Product Page</a>
+			<a href="http://lifeinthegrid.com/labs/duplicator" target="_blank"><?php _e('Product Page', 'wpduplicator') ?></a>
 		</div>		
 		<div style="clear:both; height:35px"></div>
 
@@ -74,7 +74,7 @@
 			?>
 			<i>
 				<?php 
-					_e("Most issues that occur with the Duplicator revolve around how a server is configured.  In order to diagnose your issues we will require temporary admin accounts to your cPanel and WordPress Admin.  Please fill out the "); 
+					_e("Most issues that occur with the Duplicator revolve around how a server is configured.  In order to diagnose your issues we will require temporary admin accounts to your cPanel and WordPress Admin.  Please fill out the ", 'wpduplicator'); 
 					printf(" <a href='http://lifeinthegrid.com/services' target='_blank'>%s</a> %s",
 						__("Request Quote", 'wpduplicator'),
 						__("form and explain your issue in detail.", 'wpduplicator')); 	
--- a/web/wp-content/plugins/duplicator/inc/view.options.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-content/plugins/duplicator/inc/view.options.php	Wed Dec 19 17:46:52 2012 -0800
@@ -56,7 +56,7 @@
 						
 						<label for="dir_bypass"><?php _e("Directories", 'wpduplicator') ?>: </label> 
 						<textarea name="dir_bypass" id="dir_bypass" style="width:625px;height:50px;font-size:11px" /><?php echo $GLOBALS['duplicator_opts']['dir_bypass'] ?></textarea><br/>
-						<div style='font-size:11px; margin:-6px 0px 5px 0px'><i><?php printf("%s: %s",__("Root Path", 'wpduplicator'), rtrim(DUPLICATOR_WPROOTPATH, '/'));	?></i></div>
+						<div style='font-size:11px; margin:-6px 0px 5px 0px'><i><?php printf("%s: <a href='javascript:void(0)' onclick='Duplicator.optionsAddRootPath(this)'>%s</a>",__("Root Path", 'wpduplicator'), rtrim(DUPLICATOR_WPROOTPATH, '/'));	?></i></div>
 						
 						<label class="no-select"><?php _e("File extensions", 'wpduplicator') ?>:</label><br/>
 						<input type="text" name="skip_ext" id="skip_ext"  value="<?php echo $GLOBALS['duplicator_opts']['skip_ext'] ?>" style="width:95%" /> <br/>
@@ -64,7 +64,7 @@
 						<i style="font-size:11px;"><?php printf("%s (/path1;/path2 or exe;txt;)", __("Separate all filters by semicolon", 'wpduplicator')); ?></i>
 					</fieldset><br/>
 					
-					<!-- ENCODEING OPTIONS -->
+					<!-- ENCODEING OPTIONS 
 					<fieldset style="width:97%; line-height: 17px"  class='no-select'>
 						<legend><b><?php _e("Database Encoding", 'wpduplicator') ?></b></legend>
 						
@@ -81,7 +81,7 @@
 								?>
 							</i><br/><br/>					
 							
-					</fieldset>
+					</fieldset>-->
 					<!--div style='position:absolute; bottom:5px'>	
 						<i style='font-size:10px'><?php _e("Having issues saving these options?  Temporarily disable all 'Object Caches' (i.e. W3C Total Object Cache)", 'wpduplicator') ?>.</i>
 					</div-->
@@ -97,7 +97,7 @@
 					<table width="100%" border="0" cellspacing="5" cellpadding="5">
 						<tr>
 							<td style="width:130px"><?php _e("Install URL", 'wpduplicator') ?></td>
-							<td><input type="text" name="nurl" id="nurl" class="txt-settings" value="<?php echo $GLOBALS['duplicator_opts']['nurl'] ?>" /></td>
+							<td><input type="text" name="url_new" id="url_new" class="txt-settings" value="<?php echo $GLOBALS['duplicator_opts']['url_new'] ?>" /></td>
 						</tr>
 					</table>
 				</fieldset><br/>
--- a/web/wp-content/plugins/duplicator/inc/view.system.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-content/plugins/duplicator/inc/view.system.php	Wed Dec 19 17:46:52 2012 -0800
@@ -11,13 +11,14 @@
 		<span id='dup-dlg-package-confirm-scannow-data'>
 			<a href="javascript:void(0)" onclick="Duplicator.getSystemDirectory()"><?php _e("Perform Scan", 'wpduplicator') ?></a> 
 		</span><br/>
+		<i style='font-size:11px'><?php _e("Scan sizes over 1GB may not finish processing on some hosting providers.", 'wpduplicator') ?></i>
 		
 		<div style='font-size:11px; line-height:15px'>
 			<i>
 				<?php printf("%s <a href='javascript:void(0)'  onclick='Duplicator.optionsOpen()'>%s</a>. %s",
 						__('Note: A scan will provide an estimate on the size of your file system.  The scan will exclude items in the', 'wpduplicator'),
 						__('directory filter list', 'wpduplicator'),
-						__('Files that are not readable by the plugin will not be included in the overview.  Directories that are empty will not be included in the final package. ', 'wpduplicator'));
+						__('Files that are not readable by the plugin will not be included in the overview.', 'wpduplicator'));
 				?>
 			</i>
 		</div>
@@ -76,7 +77,7 @@
 
 <!-- ==========================================
 DIALOG: SYSTEM CHECK -->
-<div id="dup-dlg-system-check" title="<?php _e('System Checks', 'wpduplicator'); ?>">
+<div id="dup-dlg-system-check" title="<?php _e('System Status', 'wpduplicator'); ?>">
 	
 	<span class="ui-icon ui-icon-alert" style="float:left; margin:0 7px 20px 0; line-height:18px;"></span>
 	<?php _e("Please validate your system configuration.", 'wpduplicator'); ?>
@@ -144,10 +145,29 @@
 					</div>
 				</li>	
 				<li>
-					<div class='dup-sys-check-title'><a>SYS-104: <?php _e('MySQLi Support', 'wpduplicator');?></a></div> <span id='SYS-104'></span>
+					<div class='dup-sys-check-title'><a>SYS-104: <?php _e('MySQL Support', 'wpduplicator');?></a></div> <span id='SYS-104'></span>
 					<div class='dup-sys-check-data-details'>
 						<?php 
-							_e("In order to complete an install the mysqli extension for PHP is required. If you are on a hosted server please contact your host and request that mysqli extension be enabled. For more information visit: http://php.net/manual/en/mysqli.installation.php", 'wpduplicator');
+						
+							printf("%s <b>[%s]</b>. %s",
+								__("The version of MySQL on this server is ", 'wpduplicator'),
+								$wpdb->db_version(),
+								__("The Duplicator requires MySQL version 4.1+ or better.", 'wpduplicator')
+							);				
+							echo '  ';
+							_e("If the MySQL server version is valid and this requirement fails then the mysqli extension is not installed. If you are on a hosted server please contact your host and request that mysqli extension and MySQL Server 4.1+ be installed. For more info visit: http://php.net/manual/en/mysqli.installation.php", 'wpduplicator');
+						?>
+					</div>
+				</li>
+				<li>
+					<div class='dup-sys-check-title'><a>SYS-105: <?php _e('PHP Support', 'wpduplicator');?></a></div> <span id='SYS-105'></span>
+					<div class='dup-sys-check-data-details'>
+						<?php 
+							printf("%s <b>[%s]</b>. %s",
+								__("The version of PHP on this server is ", 'wpduplicator'),
+								phpversion(),
+								__("The Duplicator requires at least PHP version 5.2.17+ on this server.  Please contact your host and have them upgrade to this stable secure version if the test fails.", 'wpduplicator')
+							);
 						?>
 					</div>
 				</li>	
@@ -158,17 +178,6 @@
 			SYSTEM CHECKS -->
 			<b><?php _e("SYSTEM CHECKS", 'wpduplicator') ?></b><hr style='margin-top:-2px' size="1"/>
 			
-			<!-- PHP SERVER -->
-			<div class='dup-sys-check-title'><b><?php _e("PHP Version", 'wpduplicator');  echo ":</b> " . phpversion(); ?></div> 
-			<?php if (phpversion() >= 5.3): ?>
-				<div class='dup-sys-pass'><?php _e('Good', 'wpduplicator'); ?></div>
-			<?php elseif (phpversion() >= 5.2): ?>
-				<div class='dup-sys-ok'><?php _e('OK', 'wpduplicator'); ?></div>
-				<i style="font-size:11px; font-weight:normal"> &nbsp; (<?php _e("PHP 5.2.17+ is required", 'wpduplicator') ?>)</i>
-			<?php else: ?> 
-				<div class='dup-sys-fail'><?php _e('Fail', 'wpduplicator'); ?></div>
-			<?php endif; ?>	<br />
-			
 			
 			<!-- WEB SERVER -->
 			<?php if (stristr($_SERVER['SERVER_SOFTWARE'], 'apache') !== false): ?>
--- a/web/wp-content/plugins/duplicator/js/jquery-ui.min.js	Wed Dec 19 12:35:13 2012 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,125 +0,0 @@
-/*! jQuery UI - v1.8.21 - 2012-06-05
-* https://github.com/jquery/jquery-ui
-* Includes: jquery.ui.core.js
-* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */
-(function(a,b){function c(b,c){var e=b.nodeName.toLowerCase();if("area"===e){var f=b.parentNode,g=f.name,h;return!b.href||!g||f.nodeName.toLowerCase()!=="map"?!1:(h=a("img[usemap=#"+g+"]")[0],!!h&&d(h))}return(/input|select|textarea|button|object/.test(e)?!b.disabled:"a"==e?b.href||c:c)&&d(b)}function d(b){return!a(b).parents().andSelf().filter(function(){return a.curCSS(this,"visibility")==="hidden"||a.expr.filters.hidden(this)}).length}a.ui=a.ui||{};if(a.ui.version)return;a.extend(a.ui,{version:"1.8.21",keyCode:{ALT:18,BACKSPACE:8,CAPS_LOCK:20,COMMA:188,COMMAND:91,COMMAND_LEFT:91,COMMAND_RIGHT:93,CONTROL:17,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,INSERT:45,LEFT:37,MENU:93,NUMPAD_ADD:107,NUMPAD_DECIMAL:110,NUMPAD_DIVIDE:111,NUMPAD_ENTER:108,NUMPAD_MULTIPLY:106,NUMPAD_SUBTRACT:109,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SHIFT:16,SPACE:32,TAB:9,UP:38,WINDOWS:91}}),a.fn.extend({propAttr:a.fn.prop||a.fn.attr,_focus:a.fn.focus,focus:function(b,c){return typeof b=="number"?this.each(function(){var d=this;setTimeout(function(){a(d).focus(),c&&c.call(d)},b)}):this._focus.apply(this,arguments)},scrollParent:function(){var b;return a.browser.msie&&/(static|relative)/.test(this.css("position"))||/absolute/.test(this.css("position"))?b=this.parents().filter(function(){return/(relative|absolute|fixed)/.test(a.curCSS(this,"position",1))&&/(auto|scroll)/.test(a.curCSS(this,"overflow",1)+a.curCSS(this,"overflow-y",1)+a.curCSS(this,"overflow-x",1))}).eq(0):b=this.parents().filter(function(){return/(auto|scroll)/.test(a.curCSS(this,"overflow",1)+a.curCSS(this,"overflow-y",1)+a.curCSS(this,"overflow-x",1))}).eq(0),/fixed/.test(this.css("position"))||!b.length?a(document):b},zIndex:function(c){if(c!==b)return this.css("zIndex",c);if(this.length){var d=a(this[0]),e,f;while(d.length&&d[0]!==document){e=d.css("position");if(e==="absolute"||e==="relative"||e==="fixed"){f=parseInt(d.css("zIndex"),10);if(!isNaN(f)&&f!==0)return f}d=d.parent()}}return 0},disableSelection:function(){return this.bind((a.support.selectstart?"selectstart":"mousedown")+".ui-disableSelection",function(a){a.preventDefault()})},enableSelection:function(){return this.unbind(".ui-disableSelection")}}),a.each(["Width","Height"],function(c,d){function h(b,c,d,f){return a.each(e,function(){c-=parseFloat(a.curCSS(b,"padding"+this,!0))||0,d&&(c-=parseFloat(a.curCSS(b,"border"+this+"Width",!0))||0),f&&(c-=parseFloat(a.curCSS(b,"margin"+this,!0))||0)}),c}var e=d==="Width"?["Left","Right"]:["Top","Bottom"],f=d.toLowerCase(),g={innerWidth:a.fn.innerWidth,innerHeight:a.fn.innerHeight,outerWidth:a.fn.outerWidth,outerHeight:a.fn.outerHeight};a.fn["inner"+d]=function(c){return c===b?g["inner"+d].call(this):this.each(function(){a(this).css(f,h(this,c)+"px")})},a.fn["outer"+d]=function(b,c){return typeof b!="number"?g["outer"+d].call(this,b):this.each(function(){a(this).css(f,h(this,b,!0,c)+"px")})}}),a.extend(a.expr[":"],{data:function(b,c,d){return!!a.data(b,d[3])},focusable:function(b){return c(b,!isNaN(a.attr(b,"tabindex")))},tabbable:function(b){var d=a.attr(b,"tabindex"),e=isNaN(d);return(e||d>=0)&&c(b,!e)}}),a(function(){var b=document.body,c=b.appendChild(c=document.createElement("div"));c.offsetHeight,a.extend(c.style,{minHeight:"100px",height:"auto",padding:0,borderWidth:0}),a.support.minHeight=c.offsetHeight===100,a.support.selectstart="onselectstart"in c,b.removeChild(c).style.display="none"}),a.extend(a.ui,{plugin:{add:function(b,c,d){var e=a.ui[b].prototype;for(var f in d)e.plugins[f]=e.plugins[f]||[],e.plugins[f].push([c,d[f]])},call:function(a,b,c){var d=a.plugins[b];if(!d||!a.element[0].parentNode)return;for(var e=0;e<d.length;e++)a.options[d[e][0]]&&d[e][1].apply(a.element,c)}},contains:function(a,b){return document.compareDocumentPosition?a.compareDocumentPosition(b)&16:a!==b&&a.contains(b)},hasScroll:function(b,c){if(a(b).css("overflow")==="hidden")return!1;var d=c&&c==="left"?"scrollLeft":"scrollTop",e=!1;return b[d]>0?!0:(b[d]=1,e=b[d]>0,b[d]=0,e)},isOverAxis:function(a,b,c){return a>b&&a<b+c},isOver:function(b,c,d,e,f,g){return a.ui.isOverAxis(b,d,f)&&a.ui.isOverAxis(c,e,g)}})})(jQuery);;/*! jQuery UI - v1.8.21 - 2012-06-05
-* https://github.com/jquery/jquery-ui
-* Includes: jquery.ui.widget.js
-* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */
-(function(a,b){if(a.cleanData){var c=a.cleanData;a.cleanData=function(b){for(var d=0,e;(e=b[d])!=null;d++)try{a(e).triggerHandler("remove")}catch(f){}c(b)}}else{var d=a.fn.remove;a.fn.remove=function(b,c){return this.each(function(){return c||(!b||a.filter(b,[this]).length)&&a("*",this).add([this]).each(function(){try{a(this).triggerHandler("remove")}catch(b){}}),d.call(a(this),b,c)})}}a.widget=function(b,c,d){var e=b.split(".")[0],f;b=b.split(".")[1],f=e+"-"+b,d||(d=c,c=a.Widget),a.expr[":"][f]=function(c){return!!a.data(c,b)},a[e]=a[e]||{},a[e][b]=function(a,b){arguments.length&&this._createWidget(a,b)};var g=new c;g.options=a.extend(!0,{},g.options),a[e][b].prototype=a.extend(!0,g,{namespace:e,widgetName:b,widgetEventPrefix:a[e][b].prototype.widgetEventPrefix||b,widgetBaseClass:f},d),a.widget.bridge(b,a[e][b])},a.widget.bridge=function(c,d){a.fn[c]=function(e){var f=typeof e=="string",g=Array.prototype.slice.call(arguments,1),h=this;return e=!f&&g.length?a.extend.apply(null,[!0,e].concat(g)):e,f&&e.charAt(0)==="_"?h:(f?this.each(function(){var d=a.data(this,c),f=d&&a.isFunction(d[e])?d[e].apply(d,g):d;if(f!==d&&f!==b)return h=f,!1}):this.each(function(){var b=a.data(this,c);b?b.option(e||{})._init():a.data(this,c,new d(e,this))}),h)}},a.Widget=function(a,b){arguments.length&&this._createWidget(a,b)},a.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",options:{disabled:!1},_createWidget:function(b,c){a.data(c,this.widgetName,this),this.element=a(c),this.options=a.extend(!0,{},this.options,this._getCreateOptions(),b);var d=this;this.element.bind("remove."+this.widgetName,function(){d.destroy()}),this._create(),this._trigger("create"),this._init()},_getCreateOptions:function(){return a.metadata&&a.metadata.get(this.element[0])[this.widgetName]},_create:function(){},_init:function(){},destroy:function(){this.element.unbind("."+this.widgetName).removeData(this.widgetName),this.widget().unbind("."+this.widgetName).removeAttr("aria-disabled").removeClass(this.widgetBaseClass+"-disabled "+"ui-state-disabled")},widget:function(){return this.element},option:function(c,d){var e=c;if(arguments.length===0)return a.extend({},this.options);if(typeof c=="string"){if(d===b)return this.options[c];e={},e[c]=d}return this._setOptions(e),this},_setOptions:function(b){var c=this;return a.each(b,function(a,b){c._setOption(a,b)}),this},_setOption:function(a,b){return this.options[a]=b,a==="disabled"&&this.widget()[b?"addClass":"removeClass"](this.widgetBaseClass+"-disabled"+" "+"ui-state-disabled").attr("aria-disabled",b),this},enable:function(){return this._setOption("disabled",!1)},disable:function(){return this._setOption("disabled",!0)},_trigger:function(b,c,d){var e,f,g=this.options[b];d=d||{},c=a.Event(c),c.type=(b===this.widgetEventPrefix?b:this.widgetEventPrefix+b).toLowerCase(),c.target=this.element[0],f=c.originalEvent;if(f)for(e in f)e in c||(c[e]=f[e]);return this.element.trigger(c,d),!(a.isFunction(g)&&g.call(this.element[0],c,d)===!1||c.isDefaultPrevented())}}})(jQuery);;/*! jQuery UI - v1.8.21 - 2012-06-05
-* https://github.com/jquery/jquery-ui
-* Includes: jquery.ui.mouse.js
-* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */
-(function(a,b){var c=!1;a(document).mouseup(function(a){c=!1}),a.widget("ui.mouse",{options:{cancel:":input,option",distance:1,delay:0},_mouseInit:function(){var b=this;this.element.bind("mousedown."+this.widgetName,function(a){return b._mouseDown(a)}).bind("click."+this.widgetName,function(c){if(!0===a.data(c.target,b.widgetName+".preventClickEvent"))return a.removeData(c.target,b.widgetName+".preventClickEvent"),c.stopImmediatePropagation(),!1}),this.started=!1},_mouseDestroy:function(){this.element.unbind("."+this.widgetName),a(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate)},_mouseDown:function(b){if(c)return;this._mouseStarted&&this._mouseUp(b),this._mouseDownEvent=b;var d=this,e=b.which==1,f=typeof this.options.cancel=="string"&&b.target.nodeName?a(b.target).closest(this.options.cancel).length:!1;if(!e||f||!this._mouseCapture(b))return!0;this.mouseDelayMet=!this.options.delay,this.mouseDelayMet||(this._mouseDelayTimer=setTimeout(function(){d.mouseDelayMet=!0},this.options.delay));if(this._mouseDistanceMet(b)&&this._mouseDelayMet(b)){this._mouseStarted=this._mouseStart(b)!==!1;if(!this._mouseStarted)return b.preventDefault(),!0}return!0===a.data(b.target,this.widgetName+".preventClickEvent")&&a.removeData(b.target,this.widgetName+".preventClickEvent"),this._mouseMoveDelegate=function(a){return d._mouseMove(a)},this._mouseUpDelegate=function(a){return d._mouseUp(a)},a(document).bind("mousemove."+this.widgetName,this._mouseMoveDelegate).bind("mouseup."+this.widgetName,this._mouseUpDelegate),b.preventDefault(),c=!0,!0},_mouseMove:function(b){return!a.browser.msie||document.documentMode>=9||!!b.button?this._mouseStarted?(this._mouseDrag(b),b.preventDefault()):(this._mouseDistanceMet(b)&&this._mouseDelayMet(b)&&(this._mouseStarted=this._mouseStart(this._mouseDownEvent,b)!==!1,this._mouseStarted?this._mouseDrag(b):this._mouseUp(b)),!this._mouseStarted):this._mouseUp(b)},_mouseUp:function(b){return a(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate),this._mouseStarted&&(this._mouseStarted=!1,b.target==this._mouseDownEvent.target&&a.data(b.target,this.widgetName+".preventClickEvent",!0),this._mouseStop(b)),!1},_mouseDistanceMet:function(a){return Math.max(Math.abs(this._mouseDownEvent.pageX-a.pageX),Math.abs(this._mouseDownEvent.pageY-a.pageY))>=this.options.distance},_mouseDelayMet:function(a){return this.mouseDelayMet},_mouseStart:function(a){},_mouseDrag:function(a){},_mouseStop:function(a){},_mouseCapture:function(a){return!0}})})(jQuery);;/*! jQuery UI - v1.8.21 - 2012-06-05
-* https://github.com/jquery/jquery-ui
-* Includes: jquery.ui.position.js
-* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */
-(function(a,b){a.ui=a.ui||{};var c=/left|center|right/,d=/top|center|bottom/,e="center",f={},g=a.fn.position,h=a.fn.offset;a.fn.position=function(b){if(!b||!b.of)return g.apply(this,arguments);b=a.extend({},b);var h=a(b.of),i=h[0],j=(b.collision||"flip").split(" "),k=b.offset?b.offset.split(" "):[0,0],l,m,n;return i.nodeType===9?(l=h.width(),m=h.height(),n={top:0,left:0}):i.setTimeout?(l=h.width(),m=h.height(),n={top:h.scrollTop(),left:h.scrollLeft()}):i.preventDefault?(b.at="left top",l=m=0,n={top:b.of.pageY,left:b.of.pageX}):(l=h.outerWidth(),m=h.outerHeight(),n=h.offset()),a.each(["my","at"],function(){var a=(b[this]||"").split(" ");a.length===1&&(a=c.test(a[0])?a.concat([e]):d.test(a[0])?[e].concat(a):[e,e]),a[0]=c.test(a[0])?a[0]:e,a[1]=d.test(a[1])?a[1]:e,b[this]=a}),j.length===1&&(j[1]=j[0]),k[0]=parseInt(k[0],10)||0,k.length===1&&(k[1]=k[0]),k[1]=parseInt(k[1],10)||0,b.at[0]==="right"?n.left+=l:b.at[0]===e&&(n.left+=l/2),b.at[1]==="bottom"?n.top+=m:b.at[1]===e&&(n.top+=m/2),n.left+=k[0],n.top+=k[1],this.each(function(){var c=a(this),d=c.outerWidth(),g=c.outerHeight(),h=parseInt(a.curCSS(this,"marginLeft",!0))||0,i=parseInt(a.curCSS(this,"marginTop",!0))||0,o=d+h+(parseInt(a.curCSS(this,"marginRight",!0))||0),p=g+i+(parseInt(a.curCSS(this,"marginBottom",!0))||0),q=a.extend({},n),r;b.my[0]==="right"?q.left-=d:b.my[0]===e&&(q.left-=d/2),b.my[1]==="bottom"?q.top-=g:b.my[1]===e&&(q.top-=g/2),f.fractions||(q.left=Math.round(q.left),q.top=Math.round(q.top)),r={left:q.left-h,top:q.top-i},a.each(["left","top"],function(c,e){a.ui.position[j[c]]&&a.ui.position[j[c]][e](q,{targetWidth:l,targetHeight:m,elemWidth:d,elemHeight:g,collisionPosition:r,collisionWidth:o,collisionHeight:p,offset:k,my:b.my,at:b.at})}),a.fn.bgiframe&&c.bgiframe(),c.offset(a.extend(q,{using:b.using}))})},a.ui.position={fit:{left:function(b,c){var d=a(window),e=c.collisionPosition.left+c.collisionWidth-d.width()-d.scrollLeft();b.left=e>0?b.left-e:Math.max(b.left-c.collisionPosition.left,b.left)},top:function(b,c){var d=a(window),e=c.collisionPosition.top+c.collisionHeight-d.height()-d.scrollTop();b.top=e>0?b.top-e:Math.max(b.top-c.collisionPosition.top,b.top)}},flip:{left:function(b,c){if(c.at[0]===e)return;var d=a(window),f=c.collisionPosition.left+c.collisionWidth-d.width()-d.scrollLeft(),g=c.my[0]==="left"?-c.elemWidth:c.my[0]==="right"?c.elemWidth:0,h=c.at[0]==="left"?c.targetWidth:-c.targetWidth,i=-2*c.offset[0];b.left+=c.collisionPosition.left<0?g+h+i:f>0?g+h+i:0},top:function(b,c){if(c.at[1]===e)return;var d=a(window),f=c.collisionPosition.top+c.collisionHeight-d.height()-d.scrollTop(),g=c.my[1]==="top"?-c.elemHeight:c.my[1]==="bottom"?c.elemHeight:0,h=c.at[1]==="top"?c.targetHeight:-c.targetHeight,i=-2*c.offset[1];b.top+=c.collisionPosition.top<0?g+h+i:f>0?g+h+i:0}}},a.offset.setOffset||(a.offset.setOffset=function(b,c){/static/.test(a.curCSS(b,"position"))&&(b.style.position="relative");var d=a(b),e=d.offset(),f=parseInt(a.curCSS(b,"top",!0),10)||0,g=parseInt(a.curCSS(b,"left",!0),10)||0,h={top:c.top-e.top+f,left:c.left-e.left+g};"using"in c?c.using.call(b,h):d.css(h)},a.fn.offset=function(b){var c=this[0];return!c||!c.ownerDocument?null:b?a.isFunction(b)?this.each(function(c){a(this).offset(b.call(this,c,a(this).offset()))}):this.each(function(){a.offset.setOffset(this,b)}):h.call(this)}),function(){var b=document.getElementsByTagName("body")[0],c=document.createElement("div"),d,e,g,h,i;d=document.createElement(b?"div":"body"),g={visibility:"hidden",width:0,height:0,border:0,margin:0,background:"none"},b&&a.extend(g,{position:"absolute",left:"-1000px",top:"-1000px"});for(var j in g)d.style[j]=g[j];d.appendChild(c),e=b||document.documentElement,e.insertBefore(d,e.firstChild),c.style.cssText="position: absolute; left: 10.7432222px; top: 10.432325px; height: 30px; width: 201px;",h=a(c).offset(function(a,b){return b}).offset(),d.innerHTML="",e.removeChild(d),i=h.top+h.left+(b?2e3:0),f.fractions=i>21&&i<22}()})(jQuery);;/*! jQuery UI - v1.8.21 - 2012-06-05
-* https://github.com/jquery/jquery-ui
-* Includes: jquery.ui.draggable.js
-* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */
-(function(a,b){a.widget("ui.draggable",a.ui.mouse,{widgetEventPrefix:"drag",options:{addClasses:!0,appendTo:"parent",axis:!1,connectToSortable:!1,containment:!1,cursor:"auto",cursorAt:!1,grid:!1,handle:!1,helper:"original",iframeFix:!1,opacity:!1,refreshPositions:!1,revert:!1,revertDuration:500,scope:"default",scroll:!0,scrollSensitivity:20,scrollSpeed:20,snap:!1,snapMode:"both",snapTolerance:20,stack:!1,zIndex:!1},_create:function(){this.options.helper=="original"&&!/^(?:r|a|f)/.test(this.element.css("position"))&&(this.element[0].style.position="relative"),this.options.addClasses&&this.element.addClass("ui-draggable"),this.options.disabled&&this.element.addClass("ui-draggable-disabled"),this._mouseInit()},destroy:function(){if(!this.element.data("draggable"))return;return this.element.removeData("draggable").unbind(".draggable").removeClass("ui-draggable ui-draggable-dragging ui-draggable-disabled"),this._mouseDestroy(),this},_mouseCapture:function(b){var c=this.options;return this.helper||c.disabled||a(b.target).is(".ui-resizable-handle")?!1:(this.handle=this._getHandle(b),this.handle?(c.iframeFix&&a(c.iframeFix===!0?"iframe":c.iframeFix).each(function(){a('<div class="ui-draggable-iframeFix" style="background: #fff;"></div>').css({width:this.offsetWidth+"px",height:this.offsetHeight+"px",position:"absolute",opacity:"0.001",zIndex:1e3}).css(a(this).offset()).appendTo("body")}),!0):!1)},_mouseStart:function(b){var c=this.options;return this.helper=this._createHelper(b),this.helper.addClass("ui-draggable-dragging"),this._cacheHelperProportions(),a.ui.ddmanager&&(a.ui.ddmanager.current=this),this._cacheMargins(),this.cssPosition=this.helper.css("position"),this.scrollParent=this.helper.scrollParent(),this.offset=this.positionAbs=this.element.offset(),this.offset={top:this.offset.top-this.margins.top,left:this.offset.left-this.margins.left},a.extend(this.offset,{click:{left:b.pageX-this.offset.left,top:b.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()}),this.originalPosition=this.position=this._generatePosition(b),this.originalPageX=b.pageX,this.originalPageY=b.pageY,c.cursorAt&&this._adjustOffsetFromHelper(c.cursorAt),c.containment&&this._setContainment(),this._trigger("start",b)===!1?(this._clear(),!1):(this._cacheHelperProportions(),a.ui.ddmanager&&!c.dropBehaviour&&a.ui.ddmanager.prepareOffsets(this,b),this._mouseDrag(b,!0),a.ui.ddmanager&&a.ui.ddmanager.dragStart(this,b),!0)},_mouseDrag:function(b,c){this.position=this._generatePosition(b),this.positionAbs=this._convertPositionTo("absolute");if(!c){var d=this._uiHash();if(this._trigger("drag",b,d)===!1)return this._mouseUp({}),!1;this.position=d.position}if(!this.options.axis||this.options.axis!="y")this.helper[0].style.left=this.position.left+"px";if(!this.options.axis||this.options.axis!="x")this.helper[0].style.top=this.position.top+"px";return a.ui.ddmanager&&a.ui.ddmanager.drag(this,b),!1},_mouseStop:function(b){var c=!1;a.ui.ddmanager&&!this.options.dropBehaviour&&(c=a.ui.ddmanager.drop(this,b)),this.dropped&&(c=this.dropped,this.dropped=!1);var d=this.element[0],e=!1;while(d&&(d=d.parentNode))d==document&&(e=!0);if(!e&&this.options.helper==="original")return!1;if(this.options.revert=="invalid"&&!c||this.options.revert=="valid"&&c||this.options.revert===!0||a.isFunction(this.options.revert)&&this.options.revert.call(this.element,c)){var f=this;a(this.helper).animate(this.originalPosition,parseInt(this.options.revertDuration,10),function(){f._trigger("stop",b)!==!1&&f._clear()})}else this._trigger("stop",b)!==!1&&this._clear();return!1},_mouseUp:function(b){return this.options.iframeFix===!0&&a("div.ui-draggable-iframeFix").each(function(){this.parentNode.removeChild(this)}),a.ui.ddmanager&&a.ui.ddmanager.dragStop(this,b),a.ui.mouse.prototype._mouseUp.call(this,b)},cancel:function(){return this.helper.is(".ui-draggable-dragging")?this._mouseUp({}):this._clear(),this},_getHandle:function(b){var c=!this.options.handle||!a(this.options.handle,this.element).length?!0:!1;return a(this.options.handle,this.element).find("*").andSelf().each(function(){this==b.target&&(c=!0)}),c},_createHelper:function(b){var c=this.options,d=a.isFunction(c.helper)?a(c.helper.apply(this.element[0],[b])):c.helper=="clone"?this.element.clone().removeAttr("id"):this.element;return d.parents("body").length||d.appendTo(c.appendTo=="parent"?this.element[0].parentNode:c.appendTo),d[0]!=this.element[0]&&!/(fixed|absolute)/.test(d.css("position"))&&d.css("position","absolute"),d},_adjustOffsetFromHelper:function(b){typeof b=="string"&&(b=b.split(" ")),a.isArray(b)&&(b={left:+b[0],top:+b[1]||0}),"left"in b&&(this.offset.click.left=b.left+this.margins.left),"right"in b&&(this.offset.click.left=this.helperProportions.width-b.right+this.margins.left),"top"in b&&(this.offset.click.top=b.top+this.margins.top),"bottom"in b&&(this.offset.click.top=this.helperProportions.height-b.bottom+this.margins.top)},_getParentOffset:function(){this.offsetParent=this.helper.offsetParent();var b=this.offsetParent.offset();this.cssPosition=="absolute"&&this.scrollParent[0]!=document&&a.ui.contains(this.scrollParent[0],this.offsetParent[0])&&(b.left+=this.scrollParent.scrollLeft(),b.top+=this.scrollParent.scrollTop());if(this.offsetParent[0]==document.body||this.offsetParent[0].tagName&&this.offsetParent[0].tagName.toLowerCase()=="html"&&a.browser.msie)b={top:0,left:0};return{top:b.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:b.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if(this.cssPosition=="relative"){var a=this.element.position();return{top:a.top-(parseInt(this.helper.css("top"),10)||0)+this.scrollParent.scrollTop(),left:a.left-(parseInt(this.helper.css("left"),10)||0)+this.scrollParent.scrollLeft()}}return{top:0,left:0}},_cacheMargins:function(){this.margins={left:parseInt(this.element.css("marginLeft"),10)||0,top:parseInt(this.element.css("marginTop"),10)||0,right:parseInt(this.element.css("marginRight"),10)||0,bottom:parseInt(this.element.css("marginBottom"),10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var b=this.options;b.containment=="parent"&&(b.containment=this.helper[0].parentNode);if(b.containment=="document"||b.containment=="window")this.containment=[b.containment=="document"?0:a(window).scrollLeft()-this.offset.relative.left-this.offset.parent.left,b.containment=="document"?0:a(window).scrollTop()-this.offset.relative.top-this.offset.parent.top,(b.containment=="document"?0:a(window).scrollLeft())+a(b.containment=="document"?document:window).width()-this.helperProportions.width-this.margins.left,(b.containment=="document"?0:a(window).scrollTop())+(a(b.containment=="document"?document:window).height()||document.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top];if(!/^(document|window|parent)$/.test(b.containment)&&b.containment.constructor!=Array){var c=a(b.containment),d=c[0];if(!d)return;var e=c.offset(),f=a(d).css("overflow")!="hidden";this.containment=[(parseInt(a(d).css("borderLeftWidth"),10)||0)+(parseInt(a(d).css("paddingLeft"),10)||0),(parseInt(a(d).css("borderTopWidth"),10)||0)+(parseInt(a(d).css("paddingTop"),10)||0),(f?Math.max(d.scrollWidth,d.offsetWidth):d.offsetWidth)-(parseInt(a(d).css("borderLeftWidth"),10)||0)-(parseInt(a(d).css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left-this.margins.right,(f?Math.max(d.scrollHeight,d.offsetHeight):d.offsetHeight)-(parseInt(a(d).css("borderTopWidth"),10)||0)-(parseInt(a(d).css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top-this.margins.bottom],this.relative_container=c}else b.containment.constructor==Array&&(this.containment=b.containment)},_convertPositionTo:function(b,c){c||(c=this.position);var d=b=="absolute"?1:-1,e=this.options,f=this.cssPosition=="absolute"&&(this.scrollParent[0]==document||!a.ui.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,g=/(html|body)/i.test(f[0].tagName);return{top:c.top+this.offset.relative.top*d+this.offset.parent.top*d-(a.browser.safari&&a.browser.version<526&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollTop():g?0:f.scrollTop())*d),left:c.left+this.offset.relative.left*d+this.offset.parent.left*d-(a.browser.safari&&a.browser.version<526&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():g?0:f.scrollLeft())*d)}},_generatePosition:function(b){var c=this.options,d=this.cssPosition=="absolute"&&(this.scrollParent[0]==document||!a.ui.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,e=/(html|body)/i.test(d[0].tagName),f=b.pageX,g=b.pageY;if(this.originalPosition){var h;if(this.containment){if(this.relative_container){var i=this.relative_container.offset();h=[this.containment[0]+i.left,this.containment[1]+i.top,this.containment[2]+i.left,this.containment[3]+i.top]}else h=this.containment;b.pageX-this.offset.click.left<h[0]&&(f=h[0]+this.offset.click.left),b.pageY-this.offset.click.top<h[1]&&(g=h[1]+this.offset.click.top),b.pageX-this.offset.click.left>h[2]&&(f=h[2]+this.offset.click.left),b.pageY-this.offset.click.top>h[3]&&(g=h[3]+this.offset.click.top)}if(c.grid){var j=c.grid[1]?this.originalPageY+Math.round((g-this.originalPageY)/c.grid[1])*c.grid[1]:this.originalPageY;g=h?j-this.offset.click.top<h[1]||j-this.offset.click.top>h[3]?j-this.offset.click.top<h[1]?j+c.grid[1]:j-c.grid[1]:j:j;var k=c.grid[0]?this.originalPageX+Math.round((f-this.originalPageX)/c.grid[0])*c.grid[0]:this.originalPageX;f=h?k-this.offset.click.left<h[0]||k-this.offset.click.left>h[2]?k-this.offset.click.left<h[0]?k+c.grid[0]:k-c.grid[0]:k:k}}return{top:g-this.offset.click.top-this.offset.relative.top-this.offset.parent.top+(a.browser.safari&&a.browser.version<526&&this.cssPosition=="fixed"?0:this.cssPosition=="fixed"?-this.scrollParent.scrollTop():e?0:d.scrollTop()),left:f-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+(a.browser.safari&&a.browser.version<526&&this.cssPosition=="fixed"?0:this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():e?0:d.scrollLeft())}},_clear:function(){this.helper.removeClass("ui-draggable-dragging"),this.helper[0]!=this.element[0]&&!this.cancelHelperRemoval&&this.helper.remove(),this.helper=null,this.cancelHelperRemoval=!1},_trigger:function(b,c,d){return d=d||this._uiHash(),a.ui.plugin.call(this,b,[c,d]),b=="drag"&&(this.positionAbs=this._convertPositionTo("absolute")),a.Widget.prototype._trigger.call(this,b,c,d)},plugins:{},_uiHash:function(a){return{helper:this.helper,position:this.position,originalPosition:this.originalPosition,offset:this.positionAbs}}}),a.extend(a.ui.draggable,{version:"1.8.21"}),a.ui.plugin.add("draggable","connectToSortable",{start:function(b,c){var d=a(this).data("draggable"),e=d.options,f=a.extend({},c,{item:d.element});d.sortables=[],a(e.connectToSortable).each(function(){var c=a.data(this,"sortable");c&&!c.options.disabled&&(d.sortables.push({instance:c,shouldRevert:c.options.revert}),c.refreshPositions(),c._trigger("activate",b,f))})},stop:function(b,c){var d=a(this).data("draggable"),e=a.extend({},c,{item:d.element});a.each(d.sortables,function(){this.instance.isOver?(this.instance.isOver=0,d.cancelHelperRemoval=!0,this.instance.cancelHelperRemoval=!1,this.shouldRevert&&(this.instance.options.revert=!0),this.instance._mouseStop(b),this.instance.options.helper=this.instance.options._helper,d.options.helper=="original"&&this.instance.currentItem.css({top:"auto",left:"auto"})):(this.instance.cancelHelperRemoval=!1,this.instance._trigger("deactivate",b,e))})},drag:function(b,c){var d=a(this).data("draggable"),e=this,f=function(b){var c=this.offset.click.top,d=this.offset.click.left,e=this.positionAbs.top,f=this.positionAbs.left,g=b.height,h=b.width,i=b.top,j=b.left;return a.ui.isOver(e+c,f+d,i,j,g,h)};a.each(d.sortables,function(f){this.instance.positionAbs=d.positionAbs,this.instance.helperProportions=d.helperProportions,this.instance.offset.click=d.offset.click,this.instance._intersectsWith(this.instance.containerCache)?(this.instance.isOver||(this.instance.isOver=1,this.instance.currentItem=a(e).clone().removeAttr("id").appendTo(this.instance.element).data("sortable-item",!0),this.instance.options._helper=this.instance.options.helper,this.instance.options.helper=function(){return c.helper[0]},b.target=this.instance.currentItem[0],this.instance._mouseCapture(b,!0),this.instance._mouseStart(b,!0,!0),this.instance.offset.click.top=d.offset.click.top,this.instance.offset.click.left=d.offset.click.left,this.instance.offset.parent.left-=d.offset.parent.left-this.instance.offset.parent.left,this.instance.offset.parent.top-=d.offset.parent.top-this.instance.offset.parent.top,d._trigger("toSortable",b),d.dropped=this.instance.element,d.currentItem=d.element,this.instance.fromOutside=d),this.instance.currentItem&&this.instance._mouseDrag(b)):this.instance.isOver&&(this.instance.isOver=0,this.instance.cancelHelperRemoval=!0,this.instance.options.revert=!1,this.instance._trigger("out",b,this.instance._uiHash(this.instance)),this.instance._mouseStop(b,!0),this.instance.options.helper=this.instance.options._helper,this.instance.currentItem.remove(),this.instance.placeholder&&this.instance.placeholder.remove(),d._trigger("fromSortable",b),d.dropped=!1)})}}),a.ui.plugin.add("draggable","cursor",{start:function(b,c){var d=a("body"),e=a(this).data("draggable").options;d.css("cursor")&&(e._cursor=d.css("cursor")),d.css("cursor",e.cursor)},stop:function(b,c){var d=a(this).data("draggable").options;d._cursor&&a("body").css("cursor",d._cursor)}}),a.ui.plugin.add("draggable","opacity",{start:function(b,c){var d=a(c.helper),e=a(this).data("draggable").options;d.css("opacity")&&(e._opacity=d.css("opacity")),d.css("opacity",e.opacity)},stop:function(b,c){var d=a(this).data("draggable").options;d._opacity&&a(c.helper).css("opacity",d._opacity)}}),a.ui.plugin.add("draggable","scroll",{start:function(b,c){var d=a(this).data("draggable");d.scrollParent[0]!=document&&d.scrollParent[0].tagName!="HTML"&&(d.overflowOffset=d.scrollParent.offset())},drag:function(b,c){var d=a(this).data("draggable"),e=d.options,f=!1;if(d.scrollParent[0]!=document&&d.scrollParent[0].tagName!="HTML"){if(!e.axis||e.axis!="x")d.overflowOffset.top+d.scrollParent[0].offsetHeight-b.pageY<e.scrollSensitivity?d.scrollParent[0].scrollTop=f=d.scrollParent[0].scrollTop+e.scrollSpeed:b.pageY-d.overflowOffset.top<e.scrollSensitivity&&(d.scrollParent[0].scrollTop=f=d.scrollParent[0].scrollTop-e.scrollSpeed);if(!e.axis||e.axis!="y")d.overflowOffset.left+d.scrollParent[0].offsetWidth-b.pageX<e.scrollSensitivity?d.scrollParent[0].scrollLeft=f=d.scrollParent[0].scrollLeft+e.scrollSpeed:b.pageX-d.overflowOffset.left<e.scrollSensitivity&&(d.scrollParent[0].scrollLeft=f=d.scrollParent[0].scrollLeft-e.scrollSpeed)}else{if(!e.axis||e.axis!="x")b.pageY-a(document).scrollTop()<e.scrollSensitivity?f=a(document).scrollTop(a(document).scrollTop()-e.scrollSpeed):a(window).height()-(b.pageY-a(document).scrollTop())<e.scrollSensitivity&&(f=a(document).scrollTop(a(document).scrollTop()+e.scrollSpeed));if(!e.axis||e.axis!="y")b.pageX-a(document).scrollLeft()<e.scrollSensitivity?f=a(document).scrollLeft(a(document).scrollLeft()-e.scrollSpeed):a(window).width()-(b.pageX-a(document).scrollLeft())<e.scrollSensitivity&&(f=a(document).scrollLeft(a(document).scrollLeft()+e.scrollSpeed))}f!==!1&&a.ui.ddmanager&&!e.dropBehaviour&&a.ui.ddmanager.prepareOffsets(d,b)}}),a.ui.plugin.add("draggable","snap",{start:function(b,c){var d=a(this).data("draggable"),e=d.options;d.snapElements=[],a(e.snap.constructor!=String?e.snap.items||":data(draggable)":e.snap).each(function(){var b=a(this),c=b.offset();this!=d.element[0]&&d.snapElements.push({item:this,width:b.outerWidth(),height:b.outerHeight(),top:c.top,left:c.left})})},drag:function(b,c){var d=a(this).data("draggable"),e=d.options,f=e.snapTolerance,g=c.offset.left,h=g+d.helperProportions.width,i=c.offset.top,j=i+d.helperProportions.height;for(var k=d.snapElements.length-1;k>=0;k--){var l=d.snapElements[k].left,m=l+d.snapElements[k].width,n=d.snapElements[k].top,o=n+d.snapElements[k].height;if(!(l-f<g&&g<m+f&&n-f<i&&i<o+f||l-f<g&&g<m+f&&n-f<j&&j<o+f||l-f<h&&h<m+f&&n-f<i&&i<o+f||l-f<h&&h<m+f&&n-f<j&&j<o+f)){d.snapElements[k].snapping&&d.options.snap.release&&d.options.snap.release.call(d.element,b,a.extend(d._uiHash(),{snapItem:d.snapElements[k].item})),d.snapElements[k].snapping=!1;continue}if(e.snapMode!="inner"){var p=Math.abs(n-j)<=f,q=Math.abs(o-i)<=f,r=Math.abs(l-h)<=f,s=Math.abs(m-g)<=f;p&&(c.position.top=d._convertPositionTo("relative",{top:n-d.helperProportions.height,left:0}).top-d.margins.top),q&&(c.position.top=d._convertPositionTo("relative",{top:o,left:0}).top-d.margins.top),r&&(c.position.left=d._convertPositionTo("relative",{top:0,left:l-d.helperProportions.width}).left-d.margins.left),s&&(c.position.left=d._convertPositionTo("relative",{top:0,left:m}).left-d.margins.left)}var t=p||q||r||s;if(e.snapMode!="outer"){var p=Math.abs(n-i)<=f,q=Math.abs(o-j)<=f,r=Math.abs(l-g)<=f,s=Math.abs(m-h)<=f;p&&(c.position.top=d._convertPositionTo("relative",{top:n,left:0}).top-d.margins.top),q&&(c.position.top=d._convertPositionTo("relative",{top:o-d.helperProportions.height,left:0}).top-d.margins.top),r&&(c.position.left=d._convertPositionTo("relative",{top:0,left:l}).left-d.margins.left),s&&(c.position.left=d._convertPositionTo("relative",{top:0,left:m-d.helperProportions.width}).left-d.margins.left)}!d.snapElements[k].snapping&&(p||q||r||s||t)&&d.options.snap.snap&&d.options.snap.snap.call(d.element,b,a.extend(d._uiHash(),{snapItem:d.snapElements[k].item})),d.snapElements[k].snapping=p||q||r||s||t}}}),a.ui.plugin.add("draggable","stack",{start:function(b,c){var d=a(this).data("draggable").options,e=a.makeArray(a(d.stack)).sort(function(b,c){return(parseInt(a(b).css("zIndex"),10)||0)-(parseInt(a(c).css("zIndex"),10)||0)});if(!e.length)return;var f=parseInt(e[0].style.zIndex)||0;a(e).each(function(a){this.style.zIndex=f+a}),this[0].style.zIndex=f+e.length}}),a.ui.plugin.add("draggable","zIndex",{start:function(b,c){var d=a(c.helper),e=a(this).data("draggable").options;d.css("zIndex")&&(e._zIndex=d.css("zIndex")),d.css("zIndex",e.zIndex)},stop:function(b,c){var d=a(this).data("draggable").options;d._zIndex&&a(c.helper).css("zIndex",d._zIndex)}})})(jQuery);;/*! jQuery UI - v1.8.21 - 2012-06-05
-* https://github.com/jquery/jquery-ui
-* Includes: jquery.ui.droppable.js
-* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */
-(function(a,b){a.widget("ui.droppable",{widgetEventPrefix:"drop",options:{accept:"*",activeClass:!1,addClasses:!0,greedy:!1,hoverClass:!1,scope:"default",tolerance:"intersect"},_create:function(){var b=this.options,c=b.accept;this.isover=0,this.isout=1,this.accept=a.isFunction(c)?c:function(a){return a.is(c)},this.proportions={width:this.element[0].offsetWidth,height:this.element[0].offsetHeight},a.ui.ddmanager.droppables[b.scope]=a.ui.ddmanager.droppables[b.scope]||[],a.ui.ddmanager.droppables[b.scope].push(this),b.addClasses&&this.element.addClass("ui-droppable")},destroy:function(){var b=a.ui.ddmanager.droppables[this.options.scope];for(var c=0;c<b.length;c++)b[c]==this&&b.splice(c,1);return this.element.removeClass("ui-droppable ui-droppable-disabled").removeData("droppable").unbind(".droppable"),this},_setOption:function(b,c){b=="accept"&&(this.accept=a.isFunction(c)?c:function(a){return a.is(c)}),a.Widget.prototype._setOption.apply(this,arguments)},_activate:function(b){var c=a.ui.ddmanager.current;this.options.activeClass&&this.element.addClass(this.options.activeClass),c&&this._trigger("activate",b,this.ui(c))},_deactivate:function(b){var c=a.ui.ddmanager.current;this.options.activeClass&&this.element.removeClass(this.options.activeClass),c&&this._trigger("deactivate",b,this.ui(c))},_over:function(b){var c=a.ui.ddmanager.current;if(!c||(c.currentItem||c.element)[0]==this.element[0])return;this.accept.call(this.element[0],c.currentItem||c.element)&&(this.options.hoverClass&&this.element.addClass(this.options.hoverClass),this._trigger("over",b,this.ui(c)))},_out:function(b){var c=a.ui.ddmanager.current;if(!c||(c.currentItem||c.element)[0]==this.element[0])return;this.accept.call(this.element[0],c.currentItem||c.element)&&(this.options.hoverClass&&this.element.removeClass(this.options.hoverClass),this._trigger("out",b,this.ui(c)))},_drop:function(b,c){var d=c||a.ui.ddmanager.current;if(!d||(d.currentItem||d.element)[0]==this.element[0])return!1;var e=!1;return this.element.find(":data(droppable)").not(".ui-draggable-dragging").each(function(){var b=a.data(this,"droppable");if(b.options.greedy&&!b.options.disabled&&b.options.scope==d.options.scope&&b.accept.call(b.element[0],d.currentItem||d.element)&&a.ui.intersect(d,a.extend(b,{offset:b.element.offset()}),b.options.tolerance))return e=!0,!1}),e?!1:this.accept.call(this.element[0],d.currentItem||d.element)?(this.options.activeClass&&this.element.removeClass(this.options.activeClass),this.options.hoverClass&&this.element.removeClass(this.options.hoverClass),this._trigger("drop",b,this.ui(d)),this.element):!1},ui:function(a){return{draggable:a.currentItem||a.element,helper:a.helper,position:a.position,offset:a.positionAbs}}}),a.extend(a.ui.droppable,{version:"1.8.21"}),a.ui.intersect=function(b,c,d){if(!c.offset)return!1;var e=(b.positionAbs||b.position.absolute).left,f=e+b.helperProportions.width,g=(b.positionAbs||b.position.absolute).top,h=g+b.helperProportions.height,i=c.offset.left,j=i+c.proportions.width,k=c.offset.top,l=k+c.proportions.height;switch(d){case"fit":return i<=e&&f<=j&&k<=g&&h<=l;case"intersect":return i<e+b.helperProportions.width/2&&f-b.helperProportions.width/2<j&&k<g+b.helperProportions.height/2&&h-b.helperProportions.height/2<l;case"pointer":var m=(b.positionAbs||b.position.absolute).left+(b.clickOffset||b.offset.click).left,n=(b.positionAbs||b.position.absolute).top+(b.clickOffset||b.offset.click).top,o=a.ui.isOver(n,m,k,i,c.proportions.height,c.proportions.width);return o;case"touch":return(g>=k&&g<=l||h>=k&&h<=l||g<k&&h>l)&&(e>=i&&e<=j||f>=i&&f<=j||e<i&&f>j);default:return!1}},a.ui.ddmanager={current:null,droppables:{"default":[]},prepareOffsets:function(b,c){var d=a.ui.ddmanager.droppables[b.options.scope]||[],e=c?c.type:null,f=(b.currentItem||b.element).find(":data(droppable)").andSelf();g:for(var h=0;h<d.length;h++){if(d[h].options.disabled||b&&!d[h].accept.call(d[h].element[0],b.currentItem||b.element))continue;for(var i=0;i<f.length;i++)if(f[i]==d[h].element[0]){d[h].proportions.height=0;continue g}d[h].visible=d[h].element.css("display")!="none";if(!d[h].visible)continue;e=="mousedown"&&d[h]._activate.call(d[h],c),d[h].offset=d[h].element.offset(),d[h].proportions={width:d[h].element[0].offsetWidth,height:d[h].element[0].offsetHeight}}},drop:function(b,c){var d=!1;return a.each(a.ui.ddmanager.droppables[b.options.scope]||[],function(){if(!this.options)return;!this.options.disabled&&this.visible&&a.ui.intersect(b,this,this.options.tolerance)&&(d=this._drop.call(this,c)||d),!this.options.disabled&&this.visible&&this.accept.call(this.element[0],b.currentItem||b.element)&&(this.isout=1,this.isover=0,this._deactivate.call(this,c))}),d},dragStart:function(b,c){b.element.parents(":not(body,html)").bind("scroll.droppable",function(){b.options.refreshPositions||a.ui.ddmanager.prepareOffsets(b,c)})},drag:function(b,c){b.options.refreshPositions&&a.ui.ddmanager.prepareOffsets(b,c),a.each(a.ui.ddmanager.droppables[b.options.scope]||[],function(){if(this.options.disabled||this.greedyChild||!this.visible)return;var d=a.ui.intersect(b,this,this.options.tolerance),e=!d&&this.isover==1?"isout":d&&this.isover==0?"isover":null;if(!e)return;var f;if(this.options.greedy){var g=this.element.parents(":data(droppable):eq(0)");g.length&&(f=a.data(g[0],"droppable"),f.greedyChild=e=="isover"?1:0)}f&&e=="isover"&&(f.isover=0,f.isout=1,f._out.call(f,c)),this[e]=1,this[e=="isout"?"isover":"isout"]=0,this[e=="isover"?"_over":"_out"].call(this,c),f&&e=="isout"&&(f.isout=0,f.isover=1,f._over.call(f,c))})},dragStop:function(b,c){b.element.parents(":not(body,html)").unbind("scroll.droppable"),b.options.refreshPositions||a.ui.ddmanager.prepareOffsets(b,c)}}})(jQuery);;/*! jQuery UI - v1.8.21 - 2012-06-05
-* https://github.com/jquery/jquery-ui
-* Includes: jquery.ui.resizable.js
-* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */
-(function(a,b){a.widget("ui.resizable",a.ui.mouse,{widgetEventPrefix:"resize",options:{alsoResize:!1,animate:!1,animateDuration:"slow",animateEasing:"swing",aspectRatio:!1,autoHide:!1,containment:!1,ghost:!1,grid:!1,handles:"e,s,se",helper:!1,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:1e3},_create:function(){var b=this,c=this.options;this.element.addClass("ui-resizable"),a.extend(this,{_aspectRatio:!!c.aspectRatio,aspectRatio:c.aspectRatio,originalElement:this.element,_proportionallyResizeElements:[],_helper:c.helper||c.ghost||c.animate?c.helper||"ui-resizable-helper":null}),this.element[0].nodeName.match(/canvas|textarea|input|select|button|img/i)&&(this.element.wrap(a('<div class="ui-wrapper" style="overflow: hidden;"></div>').css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")})),this.element=this.element.parent().data("resizable",this.element.data("resizable")),this.elementIsWrapper=!0,this.element.css({marginLeft:this.originalElement.css("marginLeft"),marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom")}),this.originalElement.css({marginLeft:0,marginTop:0,marginRight:0,marginBottom:0}),this.originalResizeStyle=this.originalElement.css("resize"),this.originalElement.css("resize","none"),this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"})),this.originalElement.css({margin:this.originalElement.css("margin")}),this._proportionallyResize()),this.handles=c.handles||(a(".ui-resizable-handle",this.element).length?{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"}:"e,s,se");if(this.handles.constructor==String){this.handles=="all"&&(this.handles="n,e,s,w,se,sw,ne,nw");var d=this.handles.split(",");this.handles={};for(var e=0;e<d.length;e++){var f=a.trim(d[e]),g="ui-resizable-"+f,h=a('<div class="ui-resizable-handle '+g+'"></div>');h.css({zIndex:c.zIndex}),"se"==f&&h.addClass("ui-icon ui-icon-gripsmall-diagonal-se"),this.handles[f]=".ui-resizable-"+f,this.element.append(h)}}this._renderAxis=function(b){b=b||this.element;for(var c in this.handles){this.handles[c].constructor==String&&(this.handles[c]=a(this.handles[c],this.element).show());if(this.elementIsWrapper&&this.originalElement[0].nodeName.match(/textarea|input|select|button/i)){var d=a(this.handles[c],this.element),e=0;e=/sw|ne|nw|se|n|s/.test(c)?d.outerHeight():d.outerWidth();var f=["padding",/ne|nw|n/.test(c)?"Top":/se|sw|s/.test(c)?"Bottom":/^e$/.test(c)?"Right":"Left"].join("");b.css(f,e),this._proportionallyResize()}if(!a(this.handles[c]).length)continue}},this._renderAxis(this.element),this._handles=a(".ui-resizable-handle",this.element).disableSelection(),this._handles.mouseover(function(){if(!b.resizing){if(this.className)var a=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i);b.axis=a&&a[1]?a[1]:"se"}}),c.autoHide&&(this._handles.hide(),a(this.element).addClass("ui-resizable-autohide").hover(function(){if(c.disabled)return;a(this).removeClass("ui-resizable-autohide"),b._handles.show()},function(){if(c.disabled)return;b.resizing||(a(this).addClass("ui-resizable-autohide"),b._handles.hide())})),this._mouseInit()},destroy:function(){this._mouseDestroy();var b=function(b){a(b).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing").removeData("resizable").unbind(".resizable").find(".ui-resizable-handle").remove()};if(this.elementIsWrapper){b(this.element);var c=this.element;c.after(this.originalElement.css({position:c.css("position"),width:c.outerWidth(),height:c.outerHeight(),top:c.css("top"),left:c.css("left")})).remove()}return this.originalElement.css("resize",this.originalResizeStyle),b(this.originalElement),this},_mouseCapture:function(b){var c=!1;for(var d in this.handles)a(this.handles[d])[0]==b.target&&(c=!0);return!this.options.disabled&&c},_mouseStart:function(b){var d=this.options,e=this.element.position(),f=this.element;this.resizing=!0,this.documentScroll={top:a(document).scrollTop(),left:a(document).scrollLeft()},(f.is(".ui-draggable")||/absolute/.test(f.css("position")))&&f.css({position:"absolute",top:e.top,left:e.left}),this._renderProxy();var g=c(this.helper.css("left")),h=c(this.helper.css("top"));d.containment&&(g+=a(d.containment).scrollLeft()||0,h+=a(d.containment).scrollTop()||0),this.offset=this.helper.offset(),this.position={left:g,top:h},this.size=this._helper?{width:f.outerWidth(),height:f.outerHeight()}:{width:f.width(),height:f.height()},this.originalSize=this._helper?{width:f.outerWidth(),height:f.outerHeight()}:{width:f.width(),height:f.height()},this.originalPosition={left:g,top:h},this.sizeDiff={width:f.outerWidth()-f.width(),height:f.outerHeight()-f.height()},this.originalMousePosition={left:b.pageX,top:b.pageY},this.aspectRatio=typeof d.aspectRatio=="number"?d.aspectRatio:this.originalSize.width/this.originalSize.height||1;var i=a(".ui-resizable-"+this.axis).css("cursor");return a("body").css("cursor",i=="auto"?this.axis+"-resize":i),f.addClass("ui-resizable-resizing"),this._propagate("start",b),!0},_mouseDrag:function(b){var c=this.helper,d=this.options,e={},f=this,g=this.originalMousePosition,h=this.axis,i=b.pageX-g.left||0,j=b.pageY-g.top||0,k=this._change[h];if(!k)return!1;var l=k.apply(this,[b,i,j]),m=a.browser.msie&&a.browser.version<7,n=this.sizeDiff;this._updateVirtualBoundaries(b.shiftKey);if(this._aspectRatio||b.shiftKey)l=this._updateRatio(l,b);return l=this._respectSize(l,b),this._propagate("resize",b),c.css({top:this.position.top+"px",left:this.position.left+"px",width:this.size.width+"px",height:this.size.height+"px"}),!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize(),this._updateCache(l),this._trigger("resize",b,this.ui()),!1},_mouseStop:function(b){this.resizing=!1;var c=this.options,d=this;if(this._helper){var e=this._proportionallyResizeElements,f=e.length&&/textarea/i.test(e[0].nodeName),g=f&&a.ui.hasScroll(e[0],"left")?0:d.sizeDiff.height,h=f?0:d.sizeDiff.width,i={width:d.helper.width()-h,height:d.helper.height()-g},j=parseInt(d.element.css("left"),10)+(d.position.left-d.originalPosition.left)||null,k=parseInt(d.element.css("top"),10)+(d.position.top-d.originalPosition.top)||null;c.animate||this.element.css(a.extend(i,{top:k,left:j})),d.helper.height(d.size.height),d.helper.width(d.size.width),this._helper&&!c.animate&&this._proportionallyResize()}return a("body").css("cursor","auto"),this.element.removeClass("ui-resizable-resizing"),this._propagate("stop",b),this._helper&&this.helper.remove(),!1},_updateVirtualBoundaries:function(a){var b=this.options,c,e,f,g,h;h={minWidth:d(b.minWidth)?b.minWidth:0,maxWidth:d(b.maxWidth)?b.maxWidth:Infinity,minHeight:d(b.minHeight)?b.minHeight:0,maxHeight:d(b.maxHeight)?b.maxHeight:Infinity};if(this._aspectRatio||a)c=h.minHeight*this.aspectRatio,f=h.minWidth/this.aspectRatio,e=h.maxHeight*this.aspectRatio,g=h.maxWidth/this.aspectRatio,c>h.minWidth&&(h.minWidth=c),f>h.minHeight&&(h.minHeight=f),e<h.maxWidth&&(h.maxWidth=e),g<h.maxHeight&&(h.maxHeight=g);this._vBoundaries=h},_updateCache:function(a){var b=this.options;this.offset=this.helper.offset(),d(a.left)&&(this.position.left=a.left),d(a.top)&&(this.position.top=a.top),d(a.height)&&(this.size.height=a.height),d(a.width)&&(this.size.width=a.width)},_updateRatio:function(a,b){var c=this.options,e=this.position,f=this.size,g=this.axis;return d(a.height)?a.width=a.height*this.aspectRatio:d(a.width)&&(a.height=a.width/this.aspectRatio),g=="sw"&&(a.left=e.left+(f.width-a.width),a.top=null),g=="nw"&&(a.top=e.top+(f.height-a.height),a.left=e.left+(f.width-a.width)),a},_respectSize:function(a,b){var c=this.helper,e=this._vBoundaries,f=this._aspectRatio||b.shiftKey,g=this.axis,h=d(a.width)&&e.maxWidth&&e.maxWidth<a.width,i=d(a.height)&&e.maxHeight&&e.maxHeight<a.height,j=d(a.width)&&e.minWidth&&e.minWidth>a.width,k=d(a.height)&&e.minHeight&&e.minHeight>a.height;j&&(a.width=e.minWidth),k&&(a.height=e.minHeight),h&&(a.width=e.maxWidth),i&&(a.height=e.maxHeight);var l=this.originalPosition.left+this.originalSize.width,m=this.position.top+this.size.height,n=/sw|nw|w/.test(g),o=/nw|ne|n/.test(g);j&&n&&(a.left=l-e.minWidth),h&&n&&(a.left=l-e.maxWidth),k&&o&&(a.top=m-e.minHeight),i&&o&&(a.top=m-e.maxHeight);var p=!a.width&&!a.height;return p&&!a.left&&a.top?a.top=null:p&&!a.top&&a.left&&(a.left=null),a},_proportionallyResize:function(){var b=this.options;if(!this._proportionallyResizeElements.length)return;var c=this.helper||this.element;for(var d=0;d<this._proportionallyResizeElements.length;d++){var e=this._proportionallyResizeElements[d];if(!this.borderDif){var f=[e.css("borderTopWidth"),e.css("borderRightWidth"),e.css("borderBottomWidth"),e.css("borderLeftWidth")],g=[e.css("paddingTop"),e.css("paddingRight"),e.css("paddingBottom"),e.css("paddingLeft")];this.borderDif=a.map(f,function(a,b){var c=parseInt(a,10)||0,d=parseInt(g[b],10)||0;return c+d})}if(!a.browser.msie||!a(c).is(":hidden")&&!a(c).parents(":hidden").length)e.css({height:c.height()-this.borderDif[0]-this.borderDif[2]||0,width:c.width()-this.borderDif[1]-this.borderDif[3]||0});else continue}},_renderProxy:function(){var b=this.element,c=this.options;this.elementOffset=b.offset();if(this._helper){this.helper=this.helper||a('<div style="overflow:hidden;"></div>');var d=a.browser.msie&&a.browser.version<7,e=d?1:0,f=d?2:-1;this.helper.addClass(this._helper).css({width:this.element.outerWidth()+f,height:this.element.outerHeight()+f,position:"absolute",left:this.elementOffset.left-e+"px",top:this.elementOffset.top-e+"px",zIndex:++c.zIndex}),this.helper.appendTo("body").disableSelection()}else this.helper=this.element},_change:{e:function(a,b,c){return{width:this.originalSize.width+b}},w:function(a,b,c){var d=this.options,e=this.originalSize,f=this.originalPosition;return{left:f.left+b,width:e.width-b}},n:function(a,b,c){var d=this.options,e=this.originalSize,f=this.originalPosition;return{top:f.top+c,height:e.height-c}},s:function(a,b,c){return{height:this.originalSize.height+c}},se:function(b,c,d){return a.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[b,c,d]))},sw:function(b,c,d){return a.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[b,c,d]))},ne:function(b,c,d){return a.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[b,c,d]))},nw:function(b,c,d){return a.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[b,c,d]))}},_propagate:function(b,c){a.ui.plugin.call(this,b,[c,this.ui()]),b!="resize"&&this._trigger(b,c,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}}),a.extend(a.ui.resizable,{version:"1.8.21"}),a.ui.plugin.add("resizable","alsoResize",{start:function(b,c){var d=a(this).data("resizable"),e=d.options,f=function(b){a(b).each(function(){var b=a(this);b.data("resizable-alsoresize",{width:parseInt(b.width(),10),height:parseInt(b.height(),10),left:parseInt(b.css("left"),10),top:parseInt(b.css("top"),10)})})};typeof e.alsoResize=="object"&&!e.alsoResize.parentNode?e.alsoResize.length?(e.alsoResize=e.alsoResize[0],f(e.alsoResize)):a.each(e.alsoResize,function(a){f(a)}):f(e.alsoResize)},resize:function(b,c){var d=a(this).data("resizable"),e=d.options,f=d.originalSize,g=d.originalPosition,h={height:d.size.height-f.height||0,width:d.size.width-f.width||0,top:d.position.top-g.top||0,left:d.position.left-g.left||0},i=function(b,d){a(b).each(function(){var b=a(this),e=a(this).data("resizable-alsoresize"),f={},g=d&&d.length?d:b.parents(c.originalElement[0]).length?["width","height"]:["width","height","top","left"];a.each(g,function(a,b){var c=(e[b]||0)+(h[b]||0);c&&c>=0&&(f[b]=c||null)}),b.css(f)})};typeof e.alsoResize=="object"&&!e.alsoResize.nodeType?a.each(e.alsoResize,function(a,b){i(a,b)}):i(e.alsoResize)},stop:function(b,c){a(this).removeData("resizable-alsoresize")}}),a.ui.plugin.add("resizable","animate",{stop:function(b,c){var d=a(this).data("resizable"),e=d.options,f=d._proportionallyResizeElements,g=f.length&&/textarea/i.test(f[0].nodeName),h=g&&a.ui.hasScroll(f[0],"left")?0:d.sizeDiff.height,i=g?0:d.sizeDiff.width,j={width:d.size.width-i,height:d.size.height-h},k=parseInt(d.element.css("left"),10)+(d.position.left-d.originalPosition.left)||null,l=parseInt(d.element.css("top"),10)+(d.position.top-d.originalPosition.top)||null;d.element.animate(a.extend(j,l&&k?{top:l,left:k}:{}),{duration:e.animateDuration,easing:e.animateEasing,step:function(){var c={width:parseInt(d.element.css("width"),10),height:parseInt(d.element.css("height"),10),top:parseInt(d.element.css("top"),10),left:parseInt(d.element.css("left"),10)};f&&f.length&&a(f[0]).css({width:c.width,height:c.height}),d._updateCache(c),d._propagate("resize",b)}})}}),a.ui.plugin.add("resizable","containment",{start:function(b,d){var e=a(this).data("resizable"),f=e.options,g=e.element,h=f.containment,i=h instanceof a?h.get(0):/parent/.test(h)?g.parent().get(0):h;if(!i)return;e.containerElement=a(i);if(/document/.test(h)||h==document)e.containerOffset={left:0,top:0},e.containerPosition={left:0,top:0},e.parentData={element:a(document),left:0,top:0,width:a(document).width(),height:a(document).height()||document.body.parentNode.scrollHeight};else{var j=a(i),k=[];a(["Top","Right","Left","Bottom"]).each(function(a,b){k[a]=c(j.css("padding"+b))}),e.containerOffset=j.offset(),e.containerPosition=j.position(),e.containerSize={height:j.innerHeight()-k[3],width:j.innerWidth()-k[1]};var l=e.containerOffset,m=e.containerSize.height,n=e.containerSize.width,o=a.ui.hasScroll(i,"left")?i.scrollWidth:n,p=a.ui.hasScroll(i)?i.scrollHeight:m;e.parentData={element:i,left:l.left,top:l.top,width:o,height:p}}},resize:function(b,c){var d=a(this).data("resizable"),e=d.options,f=d.containerSize,g=d.containerOffset,h=d.size,i=d.position,j=d._aspectRatio||b.shiftKey,k={top:0,left:0},l=d.containerElement;l[0]!=document&&/static/.test(l.css("position"))&&(k=g),i.left<(d._helper?g.left:0)&&(d.size.width=d.size.width+(d._helper?d.position.left-g.left:d.position.left-k.left),j&&(d.size.height=d.size.width/d.aspectRatio),d.position.left=e.helper?g.left:0),i.top<(d._helper?g.top:0)&&(d.size.height=d.size.height+(d._helper?d.position.top-g.top:d.position.top),j&&(d.size.width=d.size.height*d.aspectRatio),d.position.top=d._helper?g.top:0),d.offset.left=d.parentData.left+d.position.left,d.offset.top=d.parentData.top+d.position.top;var m=Math.abs((d._helper?d.offset.left-k.left:d.offset.left-k.left)+d.sizeDiff.width),n=Math.abs((d._helper?d.offset.top-k.top:d.offset.top-g.top)+d.sizeDiff.height),o=d.containerElement.get(0)==d.element.parent().get(0),p=/relative|absolute/.test(d.containerElement.css("position"));o&&p&&(m-=d.parentData.left),m+d.size.width>=d.parentData.width&&(d.size.width=d.parentData.width-m,j&&(d.size.height=d.size.width/d.aspectRatio)),n+d.size.height>=d.parentData.height&&(d.size.height=d.parentData.height-n,j&&(d.size.width=d.size.height*d.aspectRatio))},stop:function(b,c){var d=a(this).data("resizable"),e=d.options,f=d.position,g=d.containerOffset,h=d.containerPosition,i=d.containerElement,j=a(d.helper),k=j.offset(),l=j.outerWidth()-d.sizeDiff.width,m=j.outerHeight()-d.sizeDiff.height;d._helper&&!e.animate&&/relative/.test(i.css("position"))&&a(this).css({left:k.left-h.left-g.left,width:l,height:m}),d._helper&&!e.animate&&/static/.test(i.css("position"))&&a(this).css({left:k.left-h.left-g.left,width:l,height:m})}}),a.ui.plugin.add("resizable","ghost",{start:function(b,c){var d=a(this).data("resizable"),e=d.options,f=d.size;d.ghost=d.originalElement.clone(),d.ghost.css({opacity:.25,display:"block",position:"relative",height:f.height,width:f.width,margin:0,left:0,top:0}).addClass("ui-resizable-ghost").addClass(typeof e.ghost=="string"?e.ghost:""),d.ghost.appendTo(d.helper)},resize:function(b,c){var d=a(this).data("resizable"),e=d.options;d.ghost&&d.ghost.css({position:"relative",height:d.size.height,width:d.size.width})},stop:function(b,c){var d=a(this).data("resizable"),e=d.options;d.ghost&&d.helper&&d.helper.get(0).removeChild(d.ghost.get(0))}}),a.ui.plugin.add("resizable","grid",{resize:function(b,c){var d=a(this).data("resizable"),e=d.options,f=d.size,g=d.originalSize,h=d.originalPosition,i=d.axis,j=e._aspectRatio||b.shiftKey;e.grid=typeof e.grid=="number"?[e.grid,e.grid]:e.grid;var k=Math.round((f.width-g.width)/(e.grid[0]||1))*(e.grid[0]||1),l=Math.round((f.height-g.height)/(e.grid[1]||1))*(e.grid[1]||1);/^(se|s|e)$/.test(i)?(d.size.width=g.width+k,d.size.height=g.height+l):/^(ne)$/.test(i)?(d.size.width=g.width+k,d.size.height=g.height+l,d.position.top=h.top-l):/^(sw)$/.test(i)?(d.size.width=g.width+k,d.size.height=g.height+l,d.position.left=h.left-k):(d.size.width=g.width+k,d.size.height=g.height+l,d.position.top=h.top-l,d.position.left=h.left-k)}});var c=function(a){return parseInt(a,10)||0},d=function(a){return!isNaN(parseInt(a,10))}})(jQuery);;/*! jQuery UI - v1.8.21 - 2012-06-05
-* https://github.com/jquery/jquery-ui
-* Includes: jquery.ui.selectable.js
-* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */
-(function(a,b){a.widget("ui.selectable",a.ui.mouse,{options:{appendTo:"body",autoRefresh:!0,distance:0,filter:"*",tolerance:"touch"},_create:function(){var b=this;this.element.addClass("ui-selectable"),this.dragged=!1;var c;this.refresh=function(){c=a(b.options.filter,b.element[0]),c.addClass("ui-selectee"),c.each(function(){var b=a(this),c=b.offset();a.data(this,"selectable-item",{element:this,$element:b,left:c.left,top:c.top,right:c.left+b.outerWidth(),bottom:c.top+b.outerHeight(),startselected:!1,selected:b.hasClass("ui-selected"),selecting:b.hasClass("ui-selecting"),unselecting:b.hasClass("ui-unselecting")})})},this.refresh(),this.selectees=c.addClass("ui-selectee"),this._mouseInit(),this.helper=a("<div class='ui-selectable-helper'></div>")},destroy:function(){return this.selectees.removeClass("ui-selectee").removeData("selectable-item"),this.element.removeClass("ui-selectable ui-selectable-disabled").removeData("selectable").unbind(".selectable"),this._mouseDestroy(),this},_mouseStart:function(b){var c=this;this.opos=[b.pageX,b.pageY];if(this.options.disabled)return;var d=this.options;this.selectees=a(d.filter,this.element[0]),this._trigger("start",b),a(d.appendTo).append(this.helper),this.helper.css({left:b.clientX,top:b.clientY,width:0,height:0}),d.autoRefresh&&this.refresh(),this.selectees.filter(".ui-selected").each(function(){var d=a.data(this,"selectable-item");d.startselected=!0,!b.metaKey&&!b.ctrlKey&&(d.$element.removeClass("ui-selected"),d.selected=!1,d.$element.addClass("ui-unselecting"),d.unselecting=!0,c._trigger("unselecting",b,{unselecting:d.element}))}),a(b.target).parents().andSelf().each(function(){var d=a.data(this,"selectable-item");if(d){var e=!b.metaKey&&!b.ctrlKey||!d.$element.hasClass("ui-selected");return d.$element.removeClass(e?"ui-unselecting":"ui-selected").addClass(e?"ui-selecting":"ui-unselecting"),d.unselecting=!e,d.selecting=e,d.selected=e,e?c._trigger("selecting",b,{selecting:d.element}):c._trigger("unselecting",b,{unselecting:d.element}),!1}})},_mouseDrag:function(b){var c=this;this.dragged=!0;if(this.options.disabled)return;var d=this.options,e=this.opos[0],f=this.opos[1],g=b.pageX,h=b.pageY;if(e>g){var i=g;g=e,e=i}if(f>h){var i=h;h=f,f=i}return this.helper.css({left:e,top:f,width:g-e,height:h-f}),this.selectees.each(function(){var i=a.data(this,"selectable-item");if(!i||i.element==c.element[0])return;var j=!1;d.tolerance=="touch"?j=!(i.left>g||i.right<e||i.top>h||i.bottom<f):d.tolerance=="fit"&&(j=i.left>e&&i.right<g&&i.top>f&&i.bottom<h),j?(i.selected&&(i.$element.removeClass("ui-selected"),i.selected=!1),i.unselecting&&(i.$element.removeClass("ui-unselecting"),i.unselecting=!1),i.selecting||(i.$element.addClass("ui-selecting"),i.selecting=!0,c._trigger("selecting",b,{selecting:i.element}))):(i.selecting&&((b.metaKey||b.ctrlKey)&&i.startselected?(i.$element.removeClass("ui-selecting"),i.selecting=!1,i.$element.addClass("ui-selected"),i.selected=!0):(i.$element.removeClass("ui-selecting"),i.selecting=!1,i.startselected&&(i.$element.addClass("ui-unselecting"),i.unselecting=!0),c._trigger("unselecting",b,{unselecting:i.element}))),i.selected&&!b.metaKey&&!b.ctrlKey&&!i.startselected&&(i.$element.removeClass("ui-selected"),i.selected=!1,i.$element.addClass("ui-unselecting"),i.unselecting=!0,c._trigger("unselecting",b,{unselecting:i.element})))}),!1},_mouseStop:function(b){var c=this;this.dragged=!1;var d=this.options;return a(".ui-unselecting",this.element[0]).each(function(){var d=a.data(this,"selectable-item");d.$element.removeClass("ui-unselecting"),d.unselecting=!1,d.startselected=!1,c._trigger("unselected",b,{unselected:d.element})}),a(".ui-selecting",this.element[0]).each(function(){var d=a.data(this,"selectable-item");d.$element.removeClass("ui-selecting").addClass("ui-selected"),d.selecting=!1,d.selected=!0,d.startselected=!0,c._trigger("selected",b,{selected:d.element})}),this._trigger("stop",b),this.helper.remove(),!1}}),a.extend(a.ui.selectable,{version:"1.8.21"})})(jQuery);;/*! jQuery UI - v1.8.21 - 2012-06-05
-* https://github.com/jquery/jquery-ui
-* Includes: jquery.ui.sortable.js
-* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */
-(function(a,b){a.widget("ui.sortable",a.ui.mouse,{widgetEventPrefix:"sort",ready:!1,options:{appendTo:"parent",axis:!1,connectWith:!1,containment:!1,cursor:"auto",cursorAt:!1,dropOnEmpty:!0,forcePlaceholderSize:!1,forceHelperSize:!1,grid:!1,handle:!1,helper:"original",items:"> *",opacity:!1,placeholder:!1,revert:!1,scroll:!0,scrollSensitivity:20,scrollSpeed:20,scope:"default",tolerance:"intersect",zIndex:1e3},_create:function(){var a=this.options;this.containerCache={},this.element.addClass("ui-sortable"),this.refresh(),this.floating=this.items.length?a.axis==="x"||/left|right/.test(this.items[0].item.css("float"))||/inline|table-cell/.test(this.items[0].item.css("display")):!1,this.offset=this.element.offset(),this._mouseInit(),this.ready=!0},destroy:function(){a.Widget.prototype.destroy.call(this),this.element.removeClass("ui-sortable ui-sortable-disabled"),this._mouseDestroy();for(var b=this.items.length-1;b>=0;b--)this.items[b].item.removeData(this.widgetName+"-item");return this},_setOption:function(b,c){b==="disabled"?(this.options[b]=c,this.widget()[c?"addClass":"removeClass"]("ui-sortable-disabled")):a.Widget.prototype._setOption.apply(this,arguments)},_mouseCapture:function(b,c){var d=this;if(this.reverting)return!1;if(this.options.disabled||this.options.type=="static")return!1;this._refreshItems(b);var e=null,f=this,g=a(b.target).parents().each(function(){if(a.data(this,d.widgetName+"-item")==f)return e=a(this),!1});a.data(b.target,d.widgetName+"-item")==f&&(e=a(b.target));if(!e)return!1;if(this.options.handle&&!c){var h=!1;a(this.options.handle,e).find("*").andSelf().each(function(){this==b.target&&(h=!0)});if(!h)return!1}return this.currentItem=e,this._removeCurrentsFromItems(),!0},_mouseStart:function(b,c,d){var e=this.options,f=this;this.currentContainer=this,this.refreshPositions(),this.helper=this._createHelper(b),this._cacheHelperProportions(),this._cacheMargins(),this.scrollParent=this.helper.scrollParent(),this.offset=this.currentItem.offset(),this.offset={top:this.offset.top-this.margins.top,left:this.offset.left-this.margins.left},a.extend(this.offset,{click:{left:b.pageX-this.offset.left,top:b.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()}),this.helper.css("position","absolute"),this.cssPosition=this.helper.css("position"),this.originalPosition=this._generatePosition(b),this.originalPageX=b.pageX,this.originalPageY=b.pageY,e.cursorAt&&this._adjustOffsetFromHelper(e.cursorAt),this.domPosition={prev:this.currentItem.prev()[0],parent:this.currentItem.parent()[0]},this.helper[0]!=this.currentItem[0]&&this.currentItem.hide(),this._createPlaceholder(),e.containment&&this._setContainment(),e.cursor&&(a("body").css("cursor")&&(this._storedCursor=a("body").css("cursor")),a("body").css("cursor",e.cursor)),e.opacity&&(this.helper.css("opacity")&&(this._storedOpacity=this.helper.css("opacity")),this.helper.css("opacity",e.opacity)),e.zIndex&&(this.helper.css("zIndex")&&(this._storedZIndex=this.helper.css("zIndex")),this.helper.css("zIndex",e.zIndex)),this.scrollParent[0]!=document&&this.scrollParent[0].tagName!="HTML"&&(this.overflowOffset=this.scrollParent.offset()),this._trigger("start",b,this._uiHash()),this._preserveHelperProportions||this._cacheHelperProportions();if(!d)for(var g=this.containers.length-1;g>=0;g--)this.containers[g]._trigger("activate",b,f._uiHash(this));return a.ui.ddmanager&&(a.ui.ddmanager.current=this),a.ui.ddmanager&&!e.dropBehaviour&&a.ui.ddmanager.prepareOffsets(this,b),this.dragging=!0,this.helper.addClass("ui-sortable-helper"),this._mouseDrag(b),!0},_mouseDrag:function(b){this.position=this._generatePosition(b),this.positionAbs=this._convertPositionTo("absolute"),this.lastPositionAbs||(this.lastPositionAbs=this.positionAbs);if(this.options.scroll){var c=this.options,d=!1;this.scrollParent[0]!=document&&this.scrollParent[0].tagName!="HTML"?(this.overflowOffset.top+this.scrollParent[0].offsetHeight-b.pageY<c.scrollSensitivity?this.scrollParent[0].scrollTop=d=this.scrollParent[0].scrollTop+c.scrollSpeed:b.pageY-this.overflowOffset.top<c.scrollSensitivity&&(this.scrollParent[0].scrollTop=d=this.scrollParent[0].scrollTop-c.scrollSpeed),this.overflowOffset.left+this.scrollParent[0].offsetWidth-b.pageX<c.scrollSensitivity?this.scrollParent[0].scrollLeft=d=this.scrollParent[0].scrollLeft+c.scrollSpeed:b.pageX-this.overflowOffset.left<c.scrollSensitivity&&(this.scrollParent[0].scrollLeft=d=this.scrollParent[0].scrollLeft-c.scrollSpeed)):(b.pageY-a(document).scrollTop()<c.scrollSensitivity?d=a(document).scrollTop(a(document).scrollTop()-c.scrollSpeed):a(window).height()-(b.pageY-a(document).scrollTop())<c.scrollSensitivity&&(d=a(document).scrollTop(a(document).scrollTop()+c.scrollSpeed)),b.pageX-a(document).scrollLeft()<c.scrollSensitivity?d=a(document).scrollLeft(a(document).scrollLeft()-c.scrollSpeed):a(window).width()-(b.pageX-a(document).scrollLeft())<c.scrollSensitivity&&(d=a(document).scrollLeft(a(document).scrollLeft()+c.scrollSpeed))),d!==!1&&a.ui.ddmanager&&!c.dropBehaviour&&a.ui.ddmanager.prepareOffsets(this,b)}this.positionAbs=this._convertPositionTo("absolute");if(!this.options.axis||this.options.axis!="y")this.helper[0].style.left=this.position.left+"px";if(!this.options.axis||this.options.axis!="x")this.helper[0].style.top=this.position.top+"px";for(var e=this.items.length-1;e>=0;e--){var f=this.items[e],g=f.item[0],h=this._intersectsWithPointer(f);if(!h)continue;if(g!=this.currentItem[0]&&this.placeholder[h==1?"next":"prev"]()[0]!=g&&!a.ui.contains(this.placeholder[0],g)&&(this.options.type=="semi-dynamic"?!a.ui.contains(this.element[0],g):!0)){this.direction=h==1?"down":"up";if(this.options.tolerance=="pointer"||this._intersectsWithSides(f))this._rearrange(b,f);else break;this._trigger("change",b,this._uiHash());break}}return this._contactContainers(b),a.ui.ddmanager&&a.ui.ddmanager.drag(this,b),this._trigger("sort",b,this._uiHash()),this.lastPositionAbs=this.positionAbs,!1},_mouseStop:function(b,c){if(!b)return;a.ui.ddmanager&&!this.options.dropBehaviour&&a.ui.ddmanager.drop(this,b);if(this.options.revert){var d=this,e=d.placeholder.offset();d.reverting=!0,a(this.helper).animate({left:e.left-this.offset.parent.left-d.margins.left+(this.offsetParent[0]==document.body?0:this.offsetParent[0].scrollLeft),top:e.top-this.offset.parent.top-d.margins.top+(this.offsetParent[0]==document.body?0:this.offsetParent[0].scrollTop)},parseInt(this.options.revert,10)||500,function(){d._clear(b)})}else this._clear(b,c);return!1},cancel:function(){var b=this;if(this.dragging){this._mouseUp({target:null}),this.options.helper=="original"?this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper"):this.currentItem.show();for(var c=this.containers.length-1;c>=0;c--)this.containers[c]._trigger("deactivate",null,b._uiHash(this)),this.containers[c].containerCache.over&&(this.containers[c]._trigger("out",null,b._uiHash(this)),this.containers[c].containerCache.over=0)}return this.placeholder&&(this.placeholder[0].parentNode&&this.placeholder[0].parentNode.removeChild(this.placeholder[0]),this.options.helper!="original"&&this.helper&&this.helper[0].parentNode&&this.helper.remove(),a.extend(this,{helper:null,dragging:!1,reverting:!1,_noFinalSort:null}),this.domPosition.prev?a(this.domPosition.prev).after(this.currentItem):a(this.domPosition.parent).prepend(this.currentItem)),this},serialize:function(b){var c=this._getItemsAsjQuery(b&&b.connected),d=[];return b=b||{},a(c).each(function(){var c=(a(b.item||this).attr(b.attribute||"id")||"").match(b.expression||/(.+)[-=_](.+)/);c&&d.push((b.key||c[1]+"[]")+"="+(b.key&&b.expression?c[1]:c[2]))}),!d.length&&b.key&&d.push(b.key+"="),d.join("&")},toArray:function(b){var c=this._getItemsAsjQuery(b&&b.connected),d=[];return b=b||{},c.each(function(){d.push(a(b.item||this).attr(b.attribute||"id")||"")}),d},_intersectsWith:function(a){var b=this.positionAbs.left,c=b+this.helperProportions.width,d=this.positionAbs.top,e=d+this.helperProportions.height,f=a.left,g=f+a.width,h=a.top,i=h+a.height,j=this.offset.click.top,k=this.offset.click.left,l=d+j>h&&d+j<i&&b+k>f&&b+k<g;return this.options.tolerance=="pointer"||this.options.forcePointerForContainers||this.options.tolerance!="pointer"&&this.helperProportions[this.floating?"width":"height"]>a[this.floating?"width":"height"]?l:f<b+this.helperProportions.width/2&&c-this.helperProportions.width/2<g&&h<d+this.helperProportions.height/2&&e-this.helperProportions.height/2<i},_intersectsWithPointer:function(b){var c=this.options.axis==="x"||a.ui.isOverAxis(this.positionAbs.top+this.offset.click.top,b.top,b.height),d=this.options.axis==="y"||a.ui.isOverAxis(this.positionAbs.left+this.offset.click.left,b.left,b.width),e=c&&d,f=this._getDragVerticalDirection(),g=this._getDragHorizontalDirection();return e?this.floating?g&&g=="right"||f=="down"?2:1:f&&(f=="down"?2:1):!1},_intersectsWithSides:function(b){var c=a.ui.isOverAxis(this.positionAbs.top+this.offset.click.top,b.top+b.height/2,b.height),d=a.ui.isOverAxis(this.positionAbs.left+this.offset.click.left,b.left+b.width/2,b.width),e=this._getDragVerticalDirection(),f=this._getDragHorizontalDirection();return this.floating&&f?f=="right"&&d||f=="left"&&!d:e&&(e=="down"&&c||e=="up"&&!c)},_getDragVerticalDirection:function(){var a=this.positionAbs.top-this.lastPositionAbs.top;return a!=0&&(a>0?"down":"up")},_getDragHorizontalDirection:function(){var a=this.positionAbs.left-this.lastPositionAbs.left;return a!=0&&(a>0?"right":"left")},refresh:function(a){return this._refreshItems(a),this.refreshPositions(),this},_connectWith:function(){var a=this.options;return a.connectWith.constructor==String?[a.connectWith]:a.connectWith},_getItemsAsjQuery:function(b){var c=this,d=[],e=[],f=this._connectWith();if(f&&b)for(var g=f.length-1;g>=0;g--){var h=a(f[g]);for(var i=h.length-1;i>=0;i--){var j=a.data(h[i],this.widgetName);j&&j!=this&&!j.options.disabled&&e.push([a.isFunction(j.options.items)?j.options.items.call(j.element):a(j.options.items,j.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),j])}}e.push([a.isFunction(this.options.items)?this.options.items.call(this.element,null,{options:this.options,item:this.currentItem}):a(this.options.items,this.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),this]);for(var g=e.length-1;g>=0;g--)e[g][0].each(function(){d.push(this)});return a(d)},_removeCurrentsFromItems:function(){var a=this.currentItem.find(":data("+this.widgetName+"-item)");for(var b=0;b<this.items.length;b++)for(var c=0;c<a.length;c++)a[c]==this.items[b].item[0]&&this.items.splice(b,1)},_refreshItems:function(b){this.items=[],this.containers=[this];var c=this.items,d=this,e=[[a.isFunction(this.options.items)?this.options.items.call(this.element[0],b,{item:this.currentItem}):a(this.options.items,this.element),this]],f=this._connectWith();if(f&&this.ready)for(var g=f.length-1;g>=0;g--){var h=a(f[g]);for(var i=h.length-1;i>=0;i--){var j=a.data(h[i],this.widgetName);j&&j!=this&&!j.options.disabled&&(e.push([a.isFunction(j.options.items)?j.options.items.call(j.element[0],b,{item:this.currentItem}):a(j.options.items,j.element),j]),this.containers.push(j))}}for(var g=e.length-1;g>=0;g--){var k=e[g][1],l=e[g][0];for(var i=0,m=l.length;i<m;i++){var n=a(l[i]);n.data(this.widgetName+"-item",k),c.push({item:n,instance:k,width:0,height:0,left:0,top:0})}}},refreshPositions:function(b){this.offsetParent&&this.helper&&(this.offset.parent=this._getParentOffset());for(var c=this.items.length-1;c>=0;c--){var d=this.items[c];if(d.instance!=this.currentContainer&&this.currentContainer&&d.item[0]!=this.currentItem[0])continue;var e=this.options.toleranceElement?a(this.options.toleranceElement,d.item):d.item;b||(d.width=e.outerWidth(),d.height=e.outerHeight());var f=e.offset();d.left=f.left,d.top=f.top}if(this.options.custom&&this.options.custom.refreshContainers)this.options.custom.refreshContainers.call(this);else for(var c=this.containers.length-1;c>=0;c--){var f=this.containers[c].element.offset();this.containers[c].containerCache.left=f.left,this.containers[c].containerCache.top=f.top,this.containers[c].containerCache.width=this.containers[c].element.outerWidth(),this.containers[c].containerCache.height=this.containers[c].element.outerHeight()}return this},_createPlaceholder:function(b){var c=b||this,d=c.options;if(!d.placeholder||d.placeholder.constructor==String){var e=d.placeholder;d.placeholder={element:function(){var b=a(document.createElement(c.currentItem[0].nodeName)).addClass(e||c.currentItem[0].className+" ui-sortable-placeholder").removeClass("ui-sortable-helper")[0];return e||(b.style.visibility="hidden"),b},update:function(a,b){if(e&&!d.forcePlaceholderSize)return;b.height()||b.height(c.currentItem.innerHeight()-parseInt(c.currentItem.css("paddingTop")||0,10)-parseInt(c.currentItem.css("paddingBottom")||0,10)),b.width()||b.width(c.currentItem.innerWidth()-parseInt(c.currentItem.css("paddingLeft")||0,10)-parseInt(c.currentItem.css("paddingRight")||0,10))}}}c.placeholder=a(d.placeholder.element.call(c.element,c.currentItem)),c.currentItem.after(c.placeholder),d.placeholder.update(c,c.placeholder)},_contactContainers:function(b){var c=null,d=null;for(var e=this.containers.length-1;e>=0;e--){if(a.ui.contains(this.currentItem[0],this.containers[e].element[0]))continue;if(this._intersectsWith(this.containers[e].containerCache)){if(c&&a.ui.contains(this.containers[e].element[0],c.element[0]))continue;c=this.containers[e],d=e}else this.containers[e].containerCache.over&&(this.containers[e]._trigger("out",b,this._uiHash(this)),this.containers[e].containerCache.over=0)}if(!c)return;if(this.containers.length===1)this.containers[d]._trigger("over",b,this._uiHash(this)),this.containers[d].containerCache.over=1;else if(this.currentContainer!=this.containers[d]){var f=1e4,g=null,h=this.positionAbs[this.containers[d].floating?"left":"top"];for(var i=this.items.length-1;i>=0;i--){if(!a.ui.contains(this.containers[d].element[0],this.items[i].item[0]))continue;var j=this.containers[d].floating?this.items[i].item.offset().left:this.items[i].item.offset().top;Math.abs(j-h)<f&&(f=Math.abs(j-h),g=this.items[i],this.direction=j-h>0?"down":"up")}if(!g&&!this.options.dropOnEmpty)return;this.currentContainer=this.containers[d],g?this._rearrange(b,g,null,!0):this._rearrange(b,null,this.containers[d].element,!0),this._trigger("change",b,this._uiHash()),this.containers[d]._trigger("change",b,this._uiHash(this)),this.options.placeholder.update(this.currentContainer,this.placeholder),this.containers[d]._trigger("over",b,this._uiHash(this)),this.containers[d].containerCache.over=1}},_createHelper:function(b){var c=this.options,d=a.isFunction(c.helper)?a(c.helper.apply(this.element[0],[b,this.currentItem])):c.helper=="clone"?this.currentItem.clone():this.currentItem;return d.parents("body").length||a(c.appendTo!="parent"?c.appendTo:this.currentItem[0].parentNode)[0].appendChild(d[0]),d[0]==this.currentItem[0]&&(this._storedCSS={width:this.currentItem[0].style.width,height:this.currentItem[0].style.height,position:this.currentItem.css("position"),top:this.currentItem.css("top"),left:this.currentItem.css("left")}),(d[0].style.width==""||c.forceHelperSize)&&d.width(this.currentItem.width()),(d[0].style.height==""||c.forceHelperSize)&&d.height(this.currentItem.height()),d},_adjustOffsetFromHelper:function(b){typeof b=="string"&&(b=b.split(" ")),a.isArray(b)&&(b={left:+b[0],top:+b[1]||0}),"left"in b&&(this.offset.click.left=b.left+this.margins.left),"right"in b&&(this.offset.click.left=this.helperProportions.width-b.right+this.margins.left),"top"in b&&(this.offset.click.top=b.top+this.margins.top),"bottom"in b&&(this.offset.click.top=this.helperProportions.height-b.bottom+this.margins.top)},_getParentOffset:function(){this.offsetParent=this.helper.offsetParent();var b=this.offsetParent.offset();this.cssPosition=="absolute"&&this.scrollParent[0]!=document&&a.ui.contains(this.scrollParent[0],this.offsetParent[0])&&(b.left+=this.scrollParent.scrollLeft(),b.top+=this.scrollParent.scrollTop());if(this.offsetParent[0]==document.body||this.offsetParent[0].tagName&&this.offsetParent[0].tagName.toLowerCase()=="html"&&a.browser.msie)b={top:0,left:0};return{top:b.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:b.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if(this.cssPosition=="relative"){var a=this.currentItem.position();return{top:a.top-(parseInt(this.helper.css("top"),10)||0)+this.scrollParent.scrollTop(),left:a.left-(parseInt(this.helper.css("left"),10)||0)+this.scrollParent.scrollLeft()}}return{top:0,left:0}},_cacheMargins:function(){this.margins={left:parseInt(this.currentItem.css("marginLeft"),10)||0,top:parseInt(this.currentItem.css("marginTop"),10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var b=this.options;b.containment=="parent"&&(b.containment=this.helper[0].parentNode);if(b.containment=="document"||b.containment=="window")this.containment=[0-this.offset.relative.left-this.offset.parent.left,0-this.offset.relative.top-this.offset.parent.top,a(b.containment=="document"?document:window).width()-this.helperProportions.width-this.margins.left,(a(b.containment=="document"?document:window).height()||document.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top];if(!/^(document|window|parent)$/.test(b.containment)){var c=a(b.containment)[0],d=a(b.containment).offset(),e=a(c).css("overflow")!="hidden";this.containment=[d.left+(parseInt(a(c).css("borderLeftWidth"),10)||0)+(parseInt(a(c).css("paddingLeft"),10)||0)-this.margins.left,d.top+(parseInt(a(c).css("borderTopWidth"),10)||0)+(parseInt(a(c).css("paddingTop"),10)||0)-this.margins.top,d.left+(e?Math.max(c.scrollWidth,c.offsetWidth):c.offsetWidth)-(parseInt(a(c).css("borderLeftWidth"),10)||0)-(parseInt(a(c).css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left,d.top+(e?Math.max(c.scrollHeight,c.offsetHeight):c.offsetHeight)-(parseInt(a(c).css("borderTopWidth"),10)||0)-(parseInt(a(c).css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top]}},_convertPositionTo:function(b,c){c||(c=this.position);var d=b=="absolute"?1:-1,e=this.options,f=this.cssPosition=="absolute"&&(this.scrollParent[0]==document||!a.ui.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,g=/(html|body)/i.test(f[0].tagName);return{top:c.top+this.offset.relative.top*d+this.offset.parent.top*d-(a.browser.safari&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollTop():g?0:f.scrollTop())*d),left:c.left+this.offset.relative.left*d+this.offset.parent.left*d-(a.browser.safari&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():g?0:f.scrollLeft())*d)}},_generatePosition:function(b){var c=this.options,d=this.cssPosition=="absolute"&&(this.scrollParent[0]==document||!a.ui.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,e=/(html|body)/i.test(d[0].tagName);this.cssPosition=="relative"&&(this.scrollParent[0]==document||this.scrollParent[0]==this.offsetParent[0])&&(this.offset.relative=this._getRelativeOffset());var f=b.pageX,g=b.pageY;if(this.originalPosition){this.containment&&(b.pageX-this.offset.click.left<this.containment[0]&&(f=this.containment[0]+this.offset.click.left),b.pageY-this.offset.click.top<this.containment[1]&&(g=this.containment[1]+this.offset.click.top),b.pageX-this.offset.click.left>this.containment[2]&&(f=this.containment[2]+this.offset.click.left),b.pageY-this.offset.click.top>this.containment[3]&&(g=this.containment[3]+this.offset.click.top));if(c.grid){var h=this.originalPageY+Math.round((g-this.originalPageY)/c.grid[1])*c.grid[1];g=this.containment?h-this.offset.click.top<this.containment[1]||h-this.offset.click.top>this.containment[3]?h-this.offset.click.top<this.containment[1]?h+c.grid[1]:h-c.grid[1]:h:h;var i=this.originalPageX+Math.round((f-this.originalPageX)/c.grid[0])*c.grid[0];f=this.containment?i-this.offset.click.left<this.containment[0]||i-this.offset.click.left>this.containment[2]?i-this.offset.click.left<this.containment[0]?i+c.grid[0]:i-c.grid[0]:i:i}}return{top:g-this.offset.click.top-this.offset.relative.top-this.offset.parent.top+(a.browser.safari&&this.cssPosition=="fixed"?0:this.cssPosition=="fixed"?-this.scrollParent.scrollTop():e?0:d.scrollTop()),left:f-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+(a.browser.safari&&this.cssPosition=="fixed"?0:this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():e?0:d.scrollLeft())}},_rearrange:function(a,b,c,d){c?c[0].appendChild(this.placeholder[0]):b.item[0].parentNode.insertBefore(this.placeholder[0],this.direction=="down"?b.item[0]:b.item[0].nextSibling),this.counter=this.counter?++this.counter:1;var e=this,f=this.counter;window.setTimeout(function(){f==e.counter&&e.refreshPositions(!d)},0)},_clear:function(b,c){this.reverting=!1;var d=[],e=this;!this._noFinalSort&&this.currentItem.parent().length&&this.placeholder.before(this.currentItem),this._noFinalSort=null;if(this.helper[0]==this.currentItem[0]){for(var f in this._storedCSS)if(this._storedCSS[f]=="auto"||this._storedCSS[f]=="static")this._storedCSS[f]="";this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper")}else this.currentItem.show();this.fromOutside&&!c&&d.push(function(a){this._trigger("receive",a,this._uiHash(this.fromOutside))}),(this.fromOutside||this.domPosition.prev!=this.currentItem.prev().not(".ui-sortable-helper")[0]||this.domPosition.parent!=this.currentItem.parent()[0])&&!c&&d.push(function(a){this._trigger("update",a,this._uiHash())});if(!a.ui.contains(this.element[0],this.currentItem[0])){c||d.push(function(a){this._trigger("remove",a,this._uiHash())});for(var f=this.containers.length-1;f>=0;f--)a.ui.contains(this.containers[f].element[0],this.currentItem[0])&&!c&&(d.push(function(a){return function(b){a._trigger("receive",b,this._uiHash(this))}}.call(this,this.containers[f])),d.push(function(a){return function(b){a._trigger("update",b,this._uiHash(this))}}.call(this,this.containers[f])))}for(var f=this.containers.length-1;f>=0;f--)c||d.push(function(a){return function(b){a._trigger("deactivate",b,this._uiHash(this))}}.call(this,this.containers[f])),this.containers[f].containerCache.over&&(d.push(function(a){return function(b){a._trigger("out",b,this._uiHash(this))}}.call(this,this.containers[f])),this.containers[f].containerCache.over=0);this._storedCursor&&a("body").css("cursor",this._storedCursor),this._storedOpacity&&this.helper.css("opacity",this._storedOpacity),this._storedZIndex&&this.helper.css("zIndex",this._storedZIndex=="auto"?"":this._storedZIndex),this.dragging=!1;if(this.cancelHelperRemoval){if(!c){this._trigger("beforeStop",b,this._uiHash());for(var f=0;f<d.length;f++)d[f].call(this,b);this._trigger("stop",b,this._uiHash())}return!1}c||this._trigger("beforeStop",b,this._uiHash()),this.placeholder[0].parentNode.removeChild(this.placeholder[0]),this.helper[0]!=this.currentItem[0]&&this.helper.remove(),this.helper=null;if(!c){for(var f=0;f<d.length;f++)d[f].call(this,b);this._trigger("stop",b,this._uiHash())}return this.fromOutside=!1,!0},_trigger:function(){a.Widget.prototype._trigger.apply(this,arguments)===!1&&this.cancel()},_uiHash:function(b){var c=b||this;return{helper:c.helper,placeholder:c.placeholder||a([]),position:c.position,originalPosition:c.originalPosition,offset:c.positionAbs,item:c.currentItem,sender:b?b.element:null}}}),a.extend(a.ui.sortable,{version:"1.8.21"})})(jQuery);;/*! jQuery UI - v1.8.21 - 2012-06-05
-* https://github.com/jquery/jquery-ui
-* Includes: jquery.ui.accordion.js
-* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */
-(function(a,b){a.widget("ui.accordion",{options:{active:0,animated:"slide",autoHeight:!0,clearStyle:!1,collapsible:!1,event:"click",fillSpace:!1,header:"> li > :first-child,> :not(li):even",icons:{header:"ui-icon-triangle-1-e",headerSelected:"ui-icon-triangle-1-s"},navigation:!1,navigationFilter:function(){return this.href.toLowerCase()===location.href.toLowerCase()}},_create:function(){var b=this,c=b.options;b.running=0,b.element.addClass("ui-accordion ui-widget ui-helper-reset").children("li").addClass("ui-accordion-li-fix"),b.headers=b.element.find(c.header).addClass("ui-accordion-header ui-helper-reset ui-state-default ui-corner-all").bind("mouseenter.accordion",function(){if(c.disabled)return;a(this).addClass("ui-state-hover")}).bind("mouseleave.accordion",function(){if(c.disabled)return;a(this).removeClass("ui-state-hover")}).bind("focus.accordion",function(){if(c.disabled)return;a(this).addClass("ui-state-focus")}).bind("blur.accordion",function(){if(c.disabled)return;a(this).removeClass("ui-state-focus")}),b.headers.next().addClass("ui-accordion-content ui-helper-reset ui-widget-content ui-corner-bottom");if(c.navigation){var d=b.element.find("a").filter(c.navigationFilter).eq(0);if(d.length){var e=d.closest(".ui-accordion-header");e.length?b.active=e:b.active=d.closest(".ui-accordion-content").prev()}}b.active=b._findActive(b.active||c.active).addClass("ui-state-default ui-state-active").toggleClass("ui-corner-all").toggleClass("ui-corner-top"),b.active.next().addClass("ui-accordion-content-active"),b._createIcons(),b.resize(),b.element.attr("role","tablist"),b.headers.attr("role","tab").bind("keydown.accordion",function(a){return b._keydown(a)}).next().attr("role","tabpanel"),b.headers.not(b.active||"").attr({"aria-expanded":"false","aria-selected":"false",tabIndex:-1}).next().hide(),b.active.length?b.active.attr({"aria-expanded":"true","aria-selected":"true",tabIndex:0}):b.headers.eq(0).attr("tabIndex",0),a.browser.safari||b.headers.find("a").attr("tabIndex",-1),c.event&&b.headers.bind(c.event.split(" ").join(".accordion ")+".accordion",function(a){b._clickHandler.call(b,a,this),a.preventDefault()})},_createIcons:function(){var b=this.options;b.icons&&(a("<span></span>").addClass("ui-icon "+b.icons.header).prependTo(this.headers),this.active.children(".ui-icon").toggleClass(b.icons.header).toggleClass(b.icons.headerSelected),this.element.addClass("ui-accordion-icons"))},_destroyIcons:function(){this.headers.children(".ui-icon").remove(),this.element.removeClass("ui-accordion-icons")},destroy:function(){var b=this.options;this.element.removeClass("ui-accordion ui-widget ui-helper-reset").removeAttr("role"),this.headers.unbind(".accordion").removeClass("ui-accordion-header ui-accordion-disabled ui-helper-reset ui-state-default ui-corner-all ui-state-active ui-state-disabled ui-corner-top").removeAttr("role").removeAttr("aria-expanded").removeAttr("aria-selected").removeAttr("tabIndex"),this.headers.find("a").removeAttr("tabIndex"),this._destroyIcons();var c=this.headers.next().css("display","").removeAttr("role").removeClass("ui-helper-reset ui-widget-content ui-corner-bottom ui-accordion-content ui-accordion-content-active ui-accordion-disabled ui-state-disabled");return(b.autoHeight||b.fillHeight)&&c.css("height",""),a.Widget.prototype.destroy.call(this)},_setOption:function(b,c){a.Widget.prototype._setOption.apply(this,arguments),b=="active"&&this.activate(c),b=="icons"&&(this._destroyIcons(),c&&this._createIcons()),b=="disabled"&&this.headers.add(this.headers.next())[c?"addClass":"removeClass"]("ui-accordion-disabled ui-state-disabled")},_keydown:function(b){if(this.options.disabled||b.altKey||b.ctrlKey)return;var c=a.ui.keyCode,d=this.headers.length,e=this.headers.index(b.target),f=!1;switch(b.keyCode){case c.RIGHT:case c.DOWN:f=this.headers[(e+1)%d];break;case c.LEFT:case c.UP:f=this.headers[(e-1+d)%d];break;case c.SPACE:case c.ENTER:this._clickHandler({target:b.target},b.target),b.preventDefault()}return f?(a(b.target).attr("tabIndex",-1),a(f).attr("tabIndex",0),f.focus(),!1):!0},resize:function(){var b=this.options,c;if(b.fillSpace){if(a.browser.msie){var d=this.element.parent().css("overflow");this.element.parent().css("overflow","hidden")}c=this.element.parent().height(),a.browser.msie&&this.element.parent().css("overflow",d),this.headers.each(function(){c-=a(this).outerHeight(!0)}),this.headers.next().each(function(){a(this).height(Math.max(0,c-a(this).innerHeight()+a(this).height()))}).css("overflow","auto")}else b.autoHeight&&(c=0,this.headers.next().each(function(){c=Math.max(c,a(this).height("").height())}).height(c));return this},activate:function(a){this.options.active=a;var b=this._findActive(a)[0];return this._clickHandler({target:b},b),this},_findActive:function(b){return b?typeof b=="number"?this.headers.filter(":eq("+b+")"):this.headers.not(this.headers.not(b)):b===!1?a([]):this.headers.filter(":eq(0)")},_clickHandler:function(b,c){var d=this.options;if(d.disabled)return;if(!b.target){if(!d.collapsible)return;this.active.removeClass("ui-state-active ui-corner-top").addClass("ui-state-default ui-corner-all").children(".ui-icon").removeClass(d.icons.headerSelected).addClass(d.icons.header),this.active.next().addClass("ui-accordion-content-active");var e=this.active.next(),f={options:d,newHeader:a([]),oldHeader:d.active,newContent:a([]),oldContent:e},g=this.active=a([]);this._toggle(g,e,f);return}var h=a(b.currentTarget||c),i=h[0]===this.active[0];d.active=d.collapsible&&i?!1:this.headers.index(h);if(this.running||!d.collapsible&&i)return;var j=this.active,g=h.next(),e=this.active.next(),f={options:d,newHeader:i&&d.collapsible?a([]):h,oldHeader:this.active,newContent:i&&d.collapsible?a([]):g,oldContent:e},k=this.headers.index(this.active[0])>this.headers.index(h[0]);this.active=i?a([]):h,this._toggle(g,e,f,i,k),j.removeClass("ui-state-active ui-corner-top").addClass("ui-state-default ui-corner-all").children(".ui-icon").removeClass(d.icons.headerSelected).addClass(d.icons.header),i||(h.removeClass("ui-state-default ui-corner-all").addClass("ui-state-active ui-corner-top").children(".ui-icon").removeClass(d.icons.header).addClass(d.icons.headerSelected),h.next().addClass("ui-accordion-content-active"));return},_toggle:function(b,c,d,e,f){var g=this,h=g.options;g.toShow=b,g.toHide=c,g.data=d;var i=function(){if(!g)return;return g._completed.apply(g,arguments)};g._trigger("changestart",null,g.data),g.running=c.size()===0?b.size():c.size();if(h.animated){var j={};h.collapsible&&e?j={toShow:a([]),toHide:c,complete:i,down:f,autoHeight:h.autoHeight||h.fillSpace}:j={toShow:b,toHide:c,complete:i,down:f,autoHeight:h.autoHeight||h.fillSpace},h.proxied||(h.proxied=h.animated),h.proxiedDuration||(h.proxiedDuration=h.duration),h.animated=a.isFunction(h.proxied)?h.proxied(j):h.proxied,h.duration=a.isFunction(h.proxiedDuration)?h.proxiedDuration(j):h.proxiedDuration;var k=a.ui.accordion.animations,l=h.duration,m=h.animated;m&&!k[m]&&!a.easing[m]&&(m="slide"),k[m]||(k[m]=function(a){this.slide(a,{easing:m,duration:l||700})}),k[m](j)}else h.collapsible&&e?b.toggle():(c.hide(),b.show()),i(!0);c.prev().attr({"aria-expanded":"false","aria-selected":"false",tabIndex:-1}).blur(),b.prev().attr({"aria-expanded":"true","aria-selected":"true",tabIndex:0}).focus()},_completed:function(a){this.running=a?0:--this.running;if(this.running)return;this.options.clearStyle&&this.toShow.add(this.toHide).css({height:"",overflow:""}),this.toHide.removeClass("ui-accordion-content-active"),this.toHide.length&&(this.toHide.parent()[0].className=this.toHide.parent()[0].className),this._trigger("change",null,this.data)}}),a.extend(a.ui.accordion,{version:"1.8.21",animations:{slide:function(b,c){b=a.extend({easing:"swing",duration:300},b,c);if(!b.toHide.size()){b.toShow.animate({height:"show",paddingTop:"show",paddingBottom:"show"},b);return}if(!b.toShow.size()){b.toHide.animate({height:"hide",paddingTop:"hide",paddingBottom:"hide"},b);return}var d=b.toShow.css("overflow"),e=0,f={},g={},h=["height","paddingTop","paddingBottom"],i,j=b.toShow;i=j[0].style.width,j.width(j.parent().width()-parseFloat(j.css("paddingLeft"))-parseFloat(j.css("paddingRight"))-(parseFloat(j.css("borderLeftWidth"))||0)-(parseFloat(j.css("borderRightWidth"))||0)),a.each(h,function(c,d){g[d]="hide";var e=(""+a.css(b.toShow[0],d)).match(/^([\d+-.]+)(.*)$/);f[d]={value:e[1],unit:e[2]||"px"}}),b.toShow.css({height:0,overflow:"hidden"}).show(),b.toHide.filter(":hidden").each(b.complete).end().filter(":visible").animate(g,{step:function(a,c){c.prop=="height"&&(e=c.end-c.start===0?0:(c.now-c.start)/(c.end-c.start)),b.toShow[0].style[c.prop]=e*f[c.prop].value+f[c.prop].unit},duration:b.duration,easing:b.easing,complete:function(){b.autoHeight||b.toShow.css("height",""),b.toShow.css({width:i,overflow:d}),b.complete()}})},bounceslide:function(a){this.slide(a,{easing:a.down?"easeOutBounce":"swing",duration:a.down?1e3:200})}}})})(jQuery);;/*! jQuery UI - v1.8.21 - 2012-06-05
-* https://github.com/jquery/jquery-ui
-* Includes: jquery.ui.autocomplete.js
-* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */
-(function(a,b){var c=0;a.widget("ui.autocomplete",{options:{appendTo:"body",autoFocus:!1,delay:300,minLength:1,position:{my:"left top",at:"left bottom",collision:"none"},source:null},pending:0,_create:function(){var b=this,c=this.element[0].ownerDocument,d;this.isMultiLine=this.element.is("textarea"),this.element.addClass("ui-autocomplete-input").attr("autocomplete","off").attr({role:"textbox","aria-autocomplete":"list","aria-haspopup":"true"}).bind("keydown.autocomplete",function(c){if(b.options.disabled||b.element.propAttr("readOnly"))return;d=!1;var e=a.ui.keyCode;switch(c.keyCode){case e.PAGE_UP:b._move("previousPage",c);break;case e.PAGE_DOWN:b._move("nextPage",c);break;case e.UP:b._keyEvent("previous",c);break;case e.DOWN:b._keyEvent("next",c);break;case e.ENTER:case e.NUMPAD_ENTER:b.menu.active&&(d=!0,c.preventDefault());case e.TAB:if(!b.menu.active)return;b.menu.select(c);break;case e.ESCAPE:b.element.val(b.term),b.close(c);break;default:clearTimeout(b.searching),b.searching=setTimeout(function(){b.term!=b.element.val()&&(b.selectedItem=null,b.search(null,c))},b.options.delay)}}).bind("keypress.autocomplete",function(a){d&&(d=!1,a.preventDefault())}).bind("focus.autocomplete",function(){if(b.options.disabled)return;b.selectedItem=null,b.previous=b.element.val()}).bind("blur.autocomplete",function(a){if(b.options.disabled)return;clearTimeout(b.searching),b.closing=setTimeout(function(){b.close(a),b._change(a)},150)}),this._initSource(),this.menu=a("<ul></ul>").addClass("ui-autocomplete").appendTo(a(this.options.appendTo||"body",c)[0]).mousedown(function(c){var d=b.menu.element[0];a(c.target).closest(".ui-menu-item").length||setTimeout(function(){a(document).one("mousedown",function(c){c.target!==b.element[0]&&c.target!==d&&!a.ui.contains(d,c.target)&&b.close()})},1),setTimeout(function(){clearTimeout(b.closing)},13)}).menu({focus:function(a,c){var d=c.item.data("item.autocomplete");!1!==b._trigger("focus",a,{item:d})&&/^key/.test(a.originalEvent.type)&&b.element.val(d.value)},selected:function(a,d){var e=d.item.data("item.autocomplete"),f=b.previous;b.element[0]!==c.activeElement&&(b.element.focus(),b.previous=f,setTimeout(function(){b.previous=f,b.selectedItem=e},1)),!1!==b._trigger("select",a,{item:e})&&b.element.val(e.value),b.term=b.element.val(),b.close(a),b.selectedItem=e},blur:function(a,c){b.menu.element.is(":visible")&&b.element.val()!==b.term&&b.element.val(b.term)}}).zIndex(this.element.zIndex()+1).css({top:0,left:0}).hide().data("menu"),a.fn.bgiframe&&this.menu.element.bgiframe(),b.beforeunloadHandler=function(){b.element.removeAttr("autocomplete")},a(window).bind("beforeunload",b.beforeunloadHandler)},destroy:function(){this.element.removeClass("ui-autocomplete-input").removeAttr("autocomplete").removeAttr("role").removeAttr("aria-autocomplete").removeAttr("aria-haspopup"),this.menu.element.remove(),a(window).unbind("beforeunload",this.beforeunloadHandler),a.Widget.prototype.destroy.call(this)},_setOption:function(b,c){a.Widget.prototype._setOption.apply(this,arguments),b==="source"&&this._initSource(),b==="appendTo"&&this.menu.element.appendTo(a(c||"body",this.element[0].ownerDocument)[0]),b==="disabled"&&c&&this.xhr&&this.xhr.abort()},_initSource:function(){var b=this,c,d;a.isArray(this.options.source)?(c=this.options.source,this.source=function(b,d){d(a.ui.autocomplete.filter(c,b.term))}):typeof this.options.source=="string"?(d=this.options.source,this.source=function(c,e){b.xhr&&b.xhr.abort(),b.xhr=a.ajax({url:d,data:c,dataType:"json",success:function(a,b){e(a)},error:function(){e([])}})}):this.source=this.options.source},search:function(a,b){a=a!=null?a:this.element.val(),this.term=this.element.val();if(a.length<this.options.minLength)return this.close(b);clearTimeout(this.closing);if(this._trigger("search",b)===!1)return;return this._search(a)},_search:function(a){this.pending++,this.element.addClass("ui-autocomplete-loading"),this.source({term:a},this._response())},_response:function(){var a=this,b=++c;return function(d){b===c&&a.__response(d),a.pending--,a.pending||a.element.removeClass("ui-autocomplete-loading")}},__response:function(a){!this.options.disabled&&a&&a.length?(a=this._normalize(a),this._suggest(a),this._trigger("open")):this.close()},close:function(a){clearTimeout(this.closing),this.menu.element.is(":visible")&&(this.menu.element.hide(),this.menu.deactivate(),this._trigger("close",a))},_change:function(a){this.previous!==this.element.val()&&this._trigger("change",a,{item:this.selectedItem})},_normalize:function(b){return b.length&&b[0].label&&b[0].value?b:a.map(b,function(b){return typeof b=="string"?{label:b,value:b}:a.extend({label:b.label||b.value,value:b.value||b.label},b)})},_suggest:function(b){var c=this.menu.element.empty().zIndex(this.element.zIndex()+1);this._renderMenu(c,b),this.menu.deactivate(),this.menu.refresh(),c.show(),this._resizeMenu(),c.position(a.extend({of:this.element},this.options.position)),this.options.autoFocus&&this.menu.next(new a.Event("mouseover"))},_resizeMenu:function(){var a=this.menu.element;a.outerWidth(Math.max(a.width("").outerWidth()+1,this.element.outerWidth()))},_renderMenu:function(b,c){var d=this;a.each(c,function(a,c){d._renderItem(b,c)})},_renderItem:function(b,c){return a("<li></li>").data("item.autocomplete",c).append(a("<a></a>").text(c.label)).appendTo(b)},_move:function(a,b){if(!this.menu.element.is(":visible")){this.search(null,b);return}if(this.menu.first()&&/^previous/.test(a)||this.menu.last()&&/^next/.test(a)){this.element.val(this.term),this.menu.deactivate();return}this.menu[a](b)},widget:function(){return this.menu.element},_keyEvent:function(a,b){if(!this.isMultiLine||this.menu.element.is(":visible"))this._move(a,b),b.preventDefault()}}),a.extend(a.ui.autocomplete,{escapeRegex:function(a){return a.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&")},filter:function(b,c){var d=new RegExp(a.ui.autocomplete.escapeRegex(c),"i");return a.grep(b,function(a){return d.test(a.label||a.value||a)})}})})(jQuery),function(a){a.widget("ui.menu",{_create:function(){var b=this;this.element.addClass("ui-menu ui-widget ui-widget-content ui-corner-all").attr({role:"listbox","aria-activedescendant":"ui-active-menuitem"}).click(function(c){if(!a(c.target).closest(".ui-menu-item a").length)return;c.preventDefault(),b.select(c)}),this.refresh()},refresh:function(){var b=this,c=this.element.children("li:not(.ui-menu-item):has(a)").addClass("ui-menu-item").attr("role","menuitem");c.children("a").addClass("ui-corner-all").attr("tabindex",-1).mouseenter(function(c){b.activate(c,a(this).parent())}).mouseleave(function(){b.deactivate()})},activate:function(a,b){this.deactivate();if(this.hasScroll()){var c=b.offset().top-this.element.offset().top,d=this.element.scrollTop(),e=this.element.height();c<0?this.element.scrollTop(d+c):c>=e&&this.element.scrollTop(d+c-e+b.height())}this.active=b.eq(0).children("a").addClass("ui-state-hover").attr("id","ui-active-menuitem").end(),this._trigger("focus",a,{item:b})},deactivate:function(){if(!this.active)return;this.active.children("a").removeClass("ui-state-hover").removeAttr("id"),this._trigger("blur"),this.active=null},next:function(a){this.move("next",".ui-menu-item:first",a)},previous:function(a){this.move("prev",".ui-menu-item:last",a)},first:function(){return this.active&&!this.active.prevAll(".ui-menu-item").length},last:function(){return this.active&&!this.active.nextAll(".ui-menu-item").length},move:function(a,b,c){if(!this.active){this.activate(c,this.element.children(b));return}var d=this.active[a+"All"](".ui-menu-item").eq(0);d.length?this.activate(c,d):this.activate(c,this.element.children(b))},nextPage:function(b){if(this.hasScroll()){if(!this.active||this.last()){this.activate(b,this.element.children(".ui-menu-item:first"));return}var c=this.active.offset().top,d=this.element.height(),e=this.element.children(".ui-menu-item").filter(function(){var b=a(this).offset().top-c-d+a(this).height();return b<10&&b>-10});e.length||(e=this.element.children(".ui-menu-item:last")),this.activate(b,e)}else this.activate(b,this.element.children(".ui-menu-item").filter(!this.active||this.last()?":first":":last"))},previousPage:function(b){if(this.hasScroll()){if(!this.active||this.first()){this.activate(b,this.element.children(".ui-menu-item:last"));return}var c=this.active.offset().top,d=this.element.height(),e=this.element.children(".ui-menu-item").filter(function(){var b=a(this).offset().top-c+d-a(this).height();return b<10&&b>-10});e.length||(e=this.element.children(".ui-menu-item:first")),this.activate(b,e)}else this.activate(b,this.element.children(".ui-menu-item").filter(!this.active||this.first()?":last":":first"))},hasScroll:function(){return this.element.height()<this.element[a.fn.prop?"prop":"attr"]("scrollHeight")},select:function(a){this._trigger("selected",a,{item:this.active})}})}(jQuery);;/*! jQuery UI - v1.8.21 - 2012-06-05
-* https://github.com/jquery/jquery-ui
-* Includes: jquery.ui.button.js
-* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */
-(function(a,b){var c,d,e,f,g="ui-button ui-widget ui-state-default ui-corner-all",h="ui-state-hover ui-state-active ",i="ui-button-icons-only ui-button-icon-only ui-button-text-icons ui-button-text-icon-primary ui-button-text-icon-secondary ui-button-text-only",j=function(){var b=a(this).find(":ui-button");setTimeout(function(){b.button("refresh")},1)},k=function(b){var c=b.name,d=b.form,e=a([]);return c&&(d?e=a(d).find("[name='"+c+"']"):e=a("[name='"+c+"']",b.ownerDocument).filter(function(){return!this.form})),e};a.widget("ui.button",{options:{disabled:null,text:!0,label:null,icons:{primary:null,secondary:null}},_create:function(){this.element.closest("form").unbind("reset.button").bind("reset.button",j),typeof this.options.disabled!="boolean"?this.options.disabled=!!this.element.propAttr("disabled"):this.element.propAttr("disabled",this.options.disabled),this._determineButtonType(),this.hasTitle=!!this.buttonElement.attr("title");var b=this,h=this.options,i=this.type==="checkbox"||this.type==="radio",l="ui-state-hover"+(i?"":" ui-state-active"),m="ui-state-focus";h.label===null&&(h.label=this.buttonElement.html()),this.buttonElement.addClass(g).attr("role","button").bind("mouseenter.button",function(){if(h.disabled)return;a(this).addClass("ui-state-hover"),this===c&&a(this).addClass("ui-state-active")}).bind("mouseleave.button",function(){if(h.disabled)return;a(this).removeClass(l)}).bind("click.button",function(a){h.disabled&&(a.preventDefault(),a.stopImmediatePropagation())}),this.element.bind("focus.button",function(){b.buttonElement.addClass(m)}).bind("blur.button",function(){b.buttonElement.removeClass(m)}),i&&(this.element.bind("change.button",function(){if(f)return;b.refresh()}),this.buttonElement.bind("mousedown.button",function(a){if(h.disabled)return;f=!1,d=a.pageX,e=a.pageY}).bind("mouseup.button",function(a){if(h.disabled)return;if(d!==a.pageX||e!==a.pageY)f=!0})),this.type==="checkbox"?this.buttonElement.bind("click.button",function(){if(h.disabled||f)return!1;a(this).toggleClass("ui-state-active"),b.buttonElement.attr("aria-pressed",b.element[0].checked)}):this.type==="radio"?this.buttonElement.bind("click.button",function(){if(h.disabled||f)return!1;a(this).addClass("ui-state-active"),b.buttonElement.attr("aria-pressed","true");var c=b.element[0];k(c).not(c).map(function(){return a(this).button("widget")[0]}).removeClass("ui-state-active").attr("aria-pressed","false")}):(this.buttonElement.bind("mousedown.button",function(){if(h.disabled)return!1;a(this).addClass("ui-state-active"),c=this,a(document).one("mouseup",function(){c=null})}).bind("mouseup.button",function(){if(h.disabled)return!1;a(this).removeClass("ui-state-active")}).bind("keydown.button",function(b){if(h.disabled)return!1;(b.keyCode==a.ui.keyCode.SPACE||b.keyCode==a.ui.keyCode.ENTER)&&a(this).addClass("ui-state-active")}).bind("keyup.button",function(){a(this).removeClass("ui-state-active")}),this.buttonElement.is("a")&&this.buttonElement.keyup(function(b){b.keyCode===a.ui.keyCode.SPACE&&a(this).click()})),this._setOption("disabled",h.disabled),this._resetButton()},_determineButtonType:function(){this.element.is(":checkbox")?this.type="checkbox":this.element.is(":radio")?this.type="radio":this.element.is("input")?this.type="input":this.type="button";if(this.type==="checkbox"||this.type==="radio"){var a=this.element.parents().filter(":last"),b="label[for='"+this.element.attr("id")+"']";this.buttonElement=a.find(b),this.buttonElement.length||(a=a.length?a.siblings():this.element.siblings(),this.buttonElement=a.filter(b),this.buttonElement.length||(this.buttonElement=a.find(b))),this.element.addClass("ui-helper-hidden-accessible");var c=this.element.is(":checked");c&&this.buttonElement.addClass("ui-state-active"),this.buttonElement.attr("aria-pressed",c)}else this.buttonElement=this.element},widget:function(){return this.buttonElement},destroy:function(){this.element.removeClass("ui-helper-hidden-accessible"),this.buttonElement.removeClass(g+" "+h+" "+i).removeAttr("role").removeAttr("aria-pressed").html(this.buttonElement.find(".ui-button-text").html()),this.hasTitle||this.buttonElement.removeAttr("title"),a.Widget.prototype.destroy.call(this)},_setOption:function(b,c){a.Widget.prototype._setOption.apply(this,arguments);if(b==="disabled"){c?this.element.propAttr("disabled",!0):this.element.propAttr("disabled",!1);return}this._resetButton()},refresh:function(){var b=this.element.is(":disabled");b!==this.options.disabled&&this._setOption("disabled",b),this.type==="radio"?k(this.element[0]).each(function(){a(this).is(":checked")?a(this).button("widget").addClass("ui-state-active").attr("aria-pressed","true"):a(this).button("widget").removeClass("ui-state-active").attr("aria-pressed","false")}):this.type==="checkbox"&&(this.element.is(":checked")?this.buttonElement.addClass("ui-state-active").attr("aria-pressed","true"):this.buttonElement.removeClass("ui-state-active").attr("aria-pressed","false"))},_resetButton:function(){if(this.type==="input"){this.options.label&&this.element.val(this.options.label);return}var b=this.buttonElement.removeClass(i),c=a("<span></span>",this.element[0].ownerDocument).addClass("ui-button-text").html(this.options.label).appendTo(b.empty()).text(),d=this.options.icons,e=d.primary&&d.secondary,f=[];d.primary||d.secondary?(this.options.text&&f.push("ui-button-text-icon"+(e?"s":d.primary?"-primary":"-secondary")),d.primary&&b.prepend("<span class='ui-button-icon-primary ui-icon "+d.primary+"'></span>"),d.secondary&&b.append("<span class='ui-button-icon-secondary ui-icon "+d.secondary+"'></span>"),this.options.text||(f.push(e?"ui-button-icons-only":"ui-button-icon-only"),this.hasTitle||b.attr("title",c))):f.push("ui-button-text-only"),b.addClass(f.join(" "))}}),a.widget("ui.buttonset",{options:{items:":button, :submit, :reset, :checkbox, :radio, a, :data(button)"},_create:function(){this.element.addClass("ui-buttonset")},_init:function(){this.refresh()},_setOption:function(b,c){b==="disabled"&&this.buttons.button("option",b,c),a.Widget.prototype._setOption.apply(this,arguments)},refresh:function(){var b=this.element.css("direction")==="rtl";this.buttons=this.element.find(this.options.items).filter(":ui-button").button("refresh").end().not(":ui-button").button().end().map(function(){return a(this).button("widget")[0]}).removeClass("ui-corner-all ui-corner-left ui-corner-right").filter(":first").addClass(b?"ui-corner-right":"ui-corner-left").end().filter(":last").addClass(b?"ui-corner-left":"ui-corner-right").end().end()},destroy:function(){this.element.removeClass("ui-buttonset"),this.buttons.map(function(){return a(this).button("widget")[0]}).removeClass("ui-corner-left ui-corner-right").end().button("destroy"),a.Widget.prototype.destroy.call(this)}})})(jQuery);;/*! jQuery UI - v1.8.21 - 2012-06-05
-* https://github.com/jquery/jquery-ui
-* Includes: jquery.ui.dialog.js
-* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */
-(function(a,b){var c="ui-dialog ui-widget ui-widget-content ui-corner-all ",d={buttons:!0,height:!0,maxHeight:!0,maxWidth:!0,minHeight:!0,minWidth:!0,width:!0},e={maxHeight:!0,maxWidth:!0,minHeight:!0,minWidth:!0},f=a.attrFn||{val:!0,css:!0,html:!0,text:!0,data:!0,width:!0,height:!0,offset:!0,click:!0};a.widget("ui.dialog",{options:{autoOpen:!0,buttons:{},closeOnEscape:!0,closeText:"close",dialogClass:"",draggable:!0,hide:null,height:"auto",maxHeight:!1,maxWidth:!1,minHeight:150,minWidth:150,modal:!1,position:{my:"center",at:"center",collision:"fit",using:function(b){var c=a(this).css(b).offset().top;c<0&&a(this).css("top",b.top-c)}},resizable:!0,show:null,stack:!0,title:"",width:300,zIndex:1e3},_create:function(){this.originalTitle=this.element.attr("title"),typeof this.originalTitle!="string"&&(this.originalTitle=""),this.options.title=this.options.title||this.originalTitle;var b=this,d=b.options,e=d.title||"&#160;",f=a.ui.dialog.getTitleId(b.element),g=(b.uiDialog=a("<div></div>")).appendTo(document.body).hide().addClass(c+d.dialogClass).css({zIndex:d.zIndex}).attr("tabIndex",-1).css("outline",0).keydown(function(c){d.closeOnEscape&&!c.isDefaultPrevented()&&c.keyCode&&c.keyCode===a.ui.keyCode.ESCAPE&&(b.close(c),c.preventDefault())}).attr({role:"dialog","aria-labelledby":f}).mousedown(function(a){b.moveToTop(!1,a)}),h=b.element.show().removeAttr("title").addClass("ui-dialog-content ui-widget-content").appendTo(g),i=(b.uiDialogTitlebar=a("<div></div>")).addClass("ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix").prependTo(g),j=a('<a href="#"></a>').addClass("ui-dialog-titlebar-close ui-corner-all").attr("role","button").hover(function(){j.addClass("ui-state-hover")},function(){j.removeClass("ui-state-hover")}).focus(function(){j.addClass("ui-state-focus")}).blur(function(){j.removeClass("ui-state-focus")}).click(function(a){return b.close(a),!1}).appendTo(i),k=(b.uiDialogTitlebarCloseText=a("<span></span>")).addClass("ui-icon ui-icon-closethick").text(d.closeText).appendTo(j),l=a("<span></span>").addClass("ui-dialog-title").attr("id",f).html(e).prependTo(i);a.isFunction(d.beforeclose)&&!a.isFunction(d.beforeClose)&&(d.beforeClose=d.beforeclose),i.find("*").add(i).disableSelection(),d.draggable&&a.fn.draggable&&b._makeDraggable(),d.resizable&&a.fn.resizable&&b._makeResizable(),b._createButtons(d.buttons),b._isOpen=!1,a.fn.bgiframe&&g.bgiframe()},_init:function(){this.options.autoOpen&&this.open()},destroy:function(){var a=this;return a.overlay&&a.overlay.destroy(),a.uiDialog.hide(),a.element.unbind(".dialog").removeData("dialog").removeClass("ui-dialog-content ui-widget-content").hide().appendTo("body"),a.uiDialog.remove(),a.originalTitle&&a.element.attr("title",a.originalTitle),a},widget:function(){return this.uiDialog},close:function(b){var c=this,d,e;if(!1===c._trigger("beforeClose",b))return;return c.overlay&&c.overlay.destroy(),c.uiDialog.unbind("keypress.ui-dialog"),c._isOpen=!1,c.options.hide?c.uiDialog.hide(c.options.hide,function(){c._trigger("close",b)}):(c.uiDialog.hide(),c._trigger("close",b)),a.ui.dialog.overlay.resize(),c.options.modal&&(d=0,a(".ui-dialog").each(function(){this!==c.uiDialog[0]&&(e=a(this).css("z-index"),isNaN(e)||(d=Math.max(d,e)))}),a.ui.dialog.maxZ=d),c},isOpen:function(){return this._isOpen},moveToTop:function(b,c){var d=this,e=d.options,f;return e.modal&&!b||!e.stack&&!e.modal?d._trigger("focus",c):(e.zIndex>a.ui.dialog.maxZ&&(a.ui.dialog.maxZ=e.zIndex),d.overlay&&(a.ui.dialog.maxZ+=1,d.overlay.$el.css("z-index",a.ui.dialog.overlay.maxZ=a.ui.dialog.maxZ)),f={scrollTop:d.element.scrollTop(),scrollLeft:d.element.scrollLeft()},a.ui.dialog.maxZ+=1,d.uiDialog.css("z-index",a.ui.dialog.maxZ),d.element.attr(f),d._trigger("focus",c),d)},open:function(){if(this._isOpen)return;var b=this,c=b.options,d=b.uiDialog;return b.overlay=c.modal?new a.ui.dialog.overlay(b):null,b._size(),b._position(c.position),d.show(c.show),b.moveToTop(!0),c.modal&&d.bind("keydown.ui-dialog",function(b){if(b.keyCode!==a.ui.keyCode.TAB)return;var c=a(":tabbable",this),d=c.filter(":first"),e=c.filter(":last");if(b.target===e[0]&&!b.shiftKey)return d.focus(1),!1;if(b.target===d[0]&&b.shiftKey)return e.focus(1),!1}),a(b.element.find(":tabbable").get().concat(d.find(".ui-dialog-buttonpane :tabbable").get().concat(d.get()))).eq(0).focus(),b._isOpen=!0,b._trigger("open"),b},_createButtons:function(b){var c=this,d=!1,e=a("<div></div>").addClass("ui-dialog-buttonpane ui-widget-content ui-helper-clearfix"),g=a("<div></div>").addClass("ui-dialog-buttonset").appendTo(e);c.uiDialog.find(".ui-dialog-buttonpane").remove(),typeof b=="object"&&b!==null&&a.each(b,function(){return!(d=!0)}),d&&(a.each(b,function(b,d){d=a.isFunction(d)?{click:d,text:b}:d;var e=a('<button type="button"></button>').click(function(){d.click.apply(c.element[0],arguments)}).appendTo(g);a.each(d,function(a,b){if(a==="click")return;a in f?e[a](b):e.attr(a,b)}),a.fn.button&&e.button()}),e.appendTo(c.uiDialog))},_makeDraggable:function(){function f(a){return{position:a.position,offset:a.offset}}var b=this,c=b.options,d=a(document),e;b.uiDialog.draggable({cancel:".ui-dialog-content, .ui-dialog-titlebar-close",handle:".ui-dialog-titlebar",containment:"document",start:function(d,g){e=c.height==="auto"?"auto":a(this).height(),a(this).height(a(this).height()).addClass("ui-dialog-dragging"),b._trigger("dragStart",d,f(g))},drag:function(a,c){b._trigger("drag",a,f(c))},stop:function(g,h){c.position=[h.position.left-d.scrollLeft(),h.position.top-d.scrollTop()],a(this).removeClass("ui-dialog-dragging").height(e),b._trigger("dragStop",g,f(h)),a.ui.dialog.overlay.resize()}})},_makeResizable:function(c){function h(a){return{originalPosition:a.originalPosition,originalSize:a.originalSize,position:a.position,size:a.size}}c=c===b?this.options.resizable:c;var d=this,e=d.options,f=d.uiDialog.css("position"),g=typeof c=="string"?c:"n,e,s,w,se,sw,ne,nw";d.uiDialog.resizable({cancel:".ui-dialog-content",containment:"document",alsoResize:d.element,maxWidth:e.maxWidth,maxHeight:e.maxHeight,minWidth:e.minWidth,minHeight:d._minHeight(),handles:g,start:function(b,c){a(this).addClass("ui-dialog-resizing"),d._trigger("resizeStart",b,h(c))},resize:function(a,b){d._trigger("resize",a,h(b))},stop:function(b,c){a(this).removeClass("ui-dialog-resizing"),e.height=a(this).height(),e.width=a(this).width(),d._trigger("resizeStop",b,h(c)),a.ui.dialog.overlay.resize()}}).css("position",f).find(".ui-resizable-se").addClass("ui-icon ui-icon-grip-diagonal-se")},_minHeight:function(){var a=this.options;return a.height==="auto"?a.minHeight:Math.min(a.minHeight,a.height)},_position:function(b){var c=[],d=[0,0],e;if(b){if(typeof b=="string"||typeof b=="object"&&"0"in b)c=b.split?b.split(" "):[b[0],b[1]],c.length===1&&(c[1]=c[0]),a.each(["left","top"],function(a,b){+c[a]===c[a]&&(d[a]=c[a],c[a]=b)}),b={my:c.join(" "),at:c.join(" "),offset:d.join(" ")};b=a.extend({},a.ui.dialog.prototype.options.position,b)}else b=a.ui.dialog.prototype.options.position;e=this.uiDialog.is(":visible"),e||this.uiDialog.show(),this.uiDialog.css({top:0,left:0}).position(a.extend({of:window},b)),e||this.uiDialog.hide()},_setOptions:function(b){var c=this,f={},g=!1;a.each(b,function(a,b){c._setOption(a,b),a in d&&(g=!0),a in e&&(f[a]=b)}),g&&this._size(),this.uiDialog.is(":data(resizable)")&&this.uiDialog.resizable("option",f)},_setOption:function(b,d){var e=this,f=e.uiDialog;switch(b){case"beforeclose":b="beforeClose";break;case"buttons":e._createButtons(d);break;case"closeText":e.uiDialogTitlebarCloseText.text(""+d);break;case"dialogClass":f.removeClass(e.options.dialogClass).addClass(c+d);break;case"disabled":d?f.addClass("ui-dialog-disabled"):f.removeClass("ui-dialog-disabled");break;case"draggable":var g=f.is(":data(draggable)");g&&!d&&f.draggable("destroy"),!g&&d&&e._makeDraggable();break;case"position":e._position(d);break;case"resizable":var h=f.is(":data(resizable)");h&&!d&&f.resizable("destroy"),h&&typeof d=="string"&&f.resizable("option","handles",d),!h&&d!==!1&&e._makeResizable(d);break;case"title":a(".ui-dialog-title",e.uiDialogTitlebar).html(""+(d||"&#160;"))}a.Widget.prototype._setOption.apply(e,arguments)},_size:function(){var b=this.options,c,d,e=this.uiDialog.is(":visible");this.element.show().css({width:"auto",minHeight:0,height:0}),b.minWidth>b.width&&(b.width=b.minWidth),c=this.uiDialog.css({height:"auto",width:b.width}).height(),d=Math.max(0,b.minHeight-c);if(b.height==="auto")if(a.support.minHeight)this.element.css({minHeight:d,height:"auto"});else{this.uiDialog.show();var f=this.element.css("height","auto").height();e||this.uiDialog.hide(),this.element.height(Math.max(f,d))}else this.element.height(Math.max(b.height-c,0));this.uiDialog.is(":data(resizable)")&&this.uiDialog.resizable("option","minHeight",this._minHeight())}}),a.extend(a.ui.dialog,{version:"1.8.21",uuid:0,maxZ:0,getTitleId:function(a){var b=a.attr("id");return b||(this.uuid+=1,b=this.uuid),"ui-dialog-title-"+b},overlay:function(b){this.$el=a.ui.dialog.overlay.create(b)}}),a.extend(a.ui.dialog.overlay,{instances:[],oldInstances:[],maxZ:0,events:a.map("focus,mousedown,mouseup,keydown,keypress,click".split(","),function(a){return a+".dialog-overlay"}).join(" "),create:function(b){this.instances.length===0&&(setTimeout(function(){a.ui.dialog.overlay.instances.length&&a(document).bind(a.ui.dialog.overlay.events,function(b){if(a(b.target).zIndex()<a.ui.dialog.overlay.maxZ)return!1})},1),a(document).bind("keydown.dialog-overlay",function(c){b.options.closeOnEscape&&!c.isDefaultPrevented()&&c.keyCode&&c.keyCode===a.ui.keyCode.ESCAPE&&(b.close(c),c.preventDefault())}),a(window).bind("resize.dialog-overlay",a.ui.dialog.overlay.resize));var c=(this.oldInstances.pop()||a("<div></div>").addClass("ui-widget-overlay")).appendTo(document.body).css({width:this.width(),height:this.height()});return a.fn.bgiframe&&c.bgiframe(),this.instances.push(c),c},destroy:function(b){var c=a.inArray(b,this.instances);c!=-1&&this.oldInstances.push(this.instances.splice(c,1)[0]),this.instances.length===0&&a([document,window]).unbind(".dialog-overlay"),b.remove();var d=0;a.each(this.instances,function(){d=Math.max(d,this.css("z-index"))}),this.maxZ=d},height:function(){var b,c;return a.browser.msie&&a.browser.version<7?(b=Math.max(document.documentElement.scrollHeight,document.body.scrollHeight),c=Math.max(document.documentElement.offsetHeight,document.body.offsetHeight),b<c?a(window).height()+"px":b+"px"):a(document).height()+"px"},width:function(){var b,c;return a.browser.msie?(b=Math.max(document.documentElement.scrollWidth,document.body.scrollWidth),c=Math.max(document.documentElement.offsetWidth,document.body.offsetWidth),b<c?a(window).width()+"px":b+"px"):a(document).width()+"px"},resize:function(){var b=a([]);a.each(a.ui.dialog.overlay.instances,function(){b=b.add(this)}),b.css({width:0,height:0}).css({width:a.ui.dialog.overlay.width(),height:a.ui.dialog.overlay.height()})}}),a.extend(a.ui.dialog.overlay.prototype,{destroy:function(){a.ui.dialog.overlay.destroy(this.$el)}})})(jQuery);;/*! jQuery UI - v1.8.21 - 2012-06-05
-* https://github.com/jquery/jquery-ui
-* Includes: jquery.ui.slider.js
-* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */
-(function(a,b){var c=5;a.widget("ui.slider",a.ui.mouse,{widgetEventPrefix:"slide",options:{animate:!1,distance:0,max:100,min:0,orientation:"horizontal",range:!1,step:1,value:0,values:null},_create:function(){var b=this,d=this.options,e=this.element.find(".ui-slider-handle").addClass("ui-state-default ui-corner-all"),f="<a class='ui-slider-handle ui-state-default ui-corner-all' href='#'></a>",g=d.values&&d.values.length||1,h=[];this._keySliding=!1,this._mouseSliding=!1,this._animateOff=!0,this._handleIndex=null,this._detectOrientation(),this._mouseInit(),this.element.addClass("ui-slider ui-slider-"+this.orientation+" ui-widget"+" ui-widget-content"+" ui-corner-all"+(d.disabled?" ui-slider-disabled ui-disabled":"")),this.range=a([]),d.range&&(d.range===!0&&(d.values||(d.values=[this._valueMin(),this._valueMin()]),d.values.length&&d.values.length!==2&&(d.values=[d.values[0],d.values[0]])),this.range=a("<div></div>").appendTo(this.element).addClass("ui-slider-range ui-widget-header"+(d.range==="min"||d.range==="max"?" ui-slider-range-"+d.range:"")));for(var i=e.length;i<g;i+=1)h.push(f);this.handles=e.add(a(h.join("")).appendTo(b.element)),this.handle=this.handles.eq(0),this.handles.add(this.range).filter("a").click(function(a){a.preventDefault()}).hover(function(){d.disabled||a(this).addClass("ui-state-hover")},function(){a(this).removeClass("ui-state-hover")}).focus(function(){d.disabled?a(this).blur():(a(".ui-slider .ui-state-focus").removeClass("ui-state-focus"),a(this).addClass("ui-state-focus"))}).blur(function(){a(this).removeClass("ui-state-focus")}),this.handles.each(function(b){a(this).data("index.ui-slider-handle",b)}),this.handles.keydown(function(d){var e=a(this).data("index.ui-slider-handle"),f,g,h,i;if(b.options.disabled)return;switch(d.keyCode){case a.ui.keyCode.HOME:case a.ui.keyCode.END:case a.ui.keyCode.PAGE_UP:case a.ui.keyCode.PAGE_DOWN:case a.ui.keyCode.UP:case a.ui.keyCode.RIGHT:case a.ui.keyCode.DOWN:case a.ui.keyCode.LEFT:d.preventDefault();if(!b._keySliding){b._keySliding=!0,a(this).addClass("ui-state-active"),f=b._start(d,e);if(f===!1)return}}i=b.options.step,b.options.values&&b.options.values.length?g=h=b.values(e):g=h=b.value();switch(d.keyCode){case a.ui.keyCode.HOME:h=b._valueMin();break;case a.ui.keyCode.END:h=b._valueMax();break;case a.ui.keyCode.PAGE_UP:h=b._trimAlignValue(g+(b._valueMax()-b._valueMin())/c);break;case a.ui.keyCode.PAGE_DOWN:h=b._trimAlignValue(g-(b._valueMax()-b._valueMin())/c);break;case a.ui.keyCode.UP:case a.ui.keyCode.RIGHT:if(g===b._valueMax())return;h=b._trimAlignValue(g+i);break;case a.ui.keyCode.DOWN:case a.ui.keyCode.LEFT:if(g===b._valueMin())return;h=b._trimAlignValue(g-i)}b._slide(d,e,h)}).keyup(function(c){var d=a(this).data("index.ui-slider-handle");b._keySliding&&(b._keySliding=!1,b._stop(c,d),b._change(c,d),a(this).removeClass("ui-state-active"))}),this._refreshValue(),this._animateOff=!1},destroy:function(){return this.handles.remove(),this.range.remove(),this.element.removeClass("ui-slider ui-slider-horizontal ui-slider-vertical ui-slider-disabled ui-widget ui-widget-content ui-corner-all").removeData("slider").unbind(".slider"),this._mouseDestroy(),this},_mouseCapture:function(b){var c=this.options,d,e,f,g,h,i,j,k,l;return c.disabled?!1:(this.elementSize={width:this.element.outerWidth(),height:this.element.outerHeight()},this.elementOffset=this.element.offset(),d={x:b.pageX,y:b.pageY},e=this._normValueFromMouse(d),f=this._valueMax()-this._valueMin()+1,h=this,this.handles.each(function(b){var c=Math.abs(e-h.values(b));f>c&&(f=c,g=a(this),i=b)}),c.range===!0&&this.values(1)===c.min&&(i+=1,g=a(this.handles[i])),j=this._start(b,i),j===!1?!1:(this._mouseSliding=!0,h._handleIndex=i,g.addClass("ui-state-active").focus(),k=g.offset(),l=!a(b.target).parents().andSelf().is(".ui-slider-handle"),this._clickOffset=l?{left:0,top:0}:{left:b.pageX-k.left-g.width()/2,top:b.pageY-k.top-g.height()/2-(parseInt(g.css("borderTopWidth"),10)||0)-(parseInt(g.css("borderBottomWidth"),10)||0)+(parseInt(g.css("marginTop"),10)||0)},this.handles.hasClass("ui-state-hover")||this._slide(b,i,e),this._animateOff=!0,!0))},_mouseStart:function(a){return!0},_mouseDrag:function(a){var b={x:a.pageX,y:a.pageY},c=this._normValueFromMouse(b);return this._slide(a,this._handleIndex,c),!1},_mouseStop:function(a){return this.handles.removeClass("ui-state-active"),this._mouseSliding=!1,this._stop(a,this._handleIndex),this._change(a,this._handleIndex),this._handleIndex=null,this._clickOffset=null,this._animateOff=!1,!1},_detectOrientation:function(){this.orientation=this.options.orientation==="vertical"?"vertical":"horizontal"},_normValueFromMouse:function(a){var b,c,d,e,f;return this.orientation==="horizontal"?(b=this.elementSize.width,c=a.x-this.elementOffset.left-(this._clickOffset?this._clickOffset.left:0)):(b=this.elementSize.height,c=a.y-this.elementOffset.top-(this._clickOffset?this._clickOffset.top:0)),d=c/b,d>1&&(d=1),d<0&&(d=0),this.orientation==="vertical"&&(d=1-d),e=this._valueMax()-this._valueMin(),f=this._valueMin()+d*e,this._trimAlignValue(f)},_start:function(a,b){var c={handle:this.handles[b],value:this.value()};return this.options.values&&this.options.values.length&&(c.value=this.values(b),c.values=this.values()),this._trigger("start",a,c)},_slide:function(a,b,c){var d,e,f;this.options.values&&this.options.values.length?(d=this.values(b?0:1),this.options.values.length===2&&this.options.range===!0&&(b===0&&c>d||b===1&&c<d)&&(c=d),c!==this.values(b)&&(e=this.values(),e[b]=c,f=this._trigger("slide",a,{handle:this.handles[b],value:c,values:e}),d=this.values(b?0:1),f!==!1&&this.values(b,c,!0))):c!==this.value()&&(f=this._trigger("slide",a,{handle:this.handles[b],value:c}),f!==!1&&this.value(c))},_stop:function(a,b){var c={handle:this.handles[b],value:this.value()};this.options.values&&this.options.values.length&&(c.value=this.values(b),c.values=this.values()),this._trigger("stop",a,c)},_change:function(a,b){if(!this._keySliding&&!this._mouseSliding){var c={handle:this.handles[b],value:this.value()};this.options.values&&this.options.values.length&&(c.value=this.values(b),c.values=this.values()),this._trigger("change",a,c)}},value:function(a){if(arguments.length){this.options.value=this._trimAlignValue(a),this._refreshValue(),this._change(null,0);return}return this._value()},values:function(b,c){var d,e,f;if(arguments.length>1){this.options.values[b]=this._trimAlignValue(c),this._refreshValue(),this._change(null,b);return}if(!arguments.length)return this._values();if(!a.isArray(arguments[0]))return this.options.values&&this.options.values.length?this._values(b):this.value();d=this.options.values,e=arguments[0];for(f=0;f<d.length;f+=1)d[f]=this._trimAlignValue(e[f]),this._change(null,f);this._refreshValue()},_setOption:function(b,c){var d,e=0;a.isArray(this.options.values)&&(e=this.options.values.length),a.Widget.prototype._setOption.apply(this,arguments);switch(b){case"disabled":c?(this.handles.filter(".ui-state-focus").blur(),this.handles.removeClass("ui-state-hover"),this.handles.propAttr("disabled",!0),this.element.addClass("ui-disabled")):(this.handles.propAttr("disabled",!1),this.element.removeClass("ui-disabled"));break;case"orientation":this._detectOrientation(),this.element.removeClass("ui-slider-horizontal ui-slider-vertical").addClass("ui-slider-"+this.orientation),this._refreshValue();break;case"value":this._animateOff=!0,this._refreshValue(),this._change(null,0),this._animateOff=!1;break;case"values":this._animateOff=!0,this._refreshValue();for(d=0;d<e;d+=1)this._change(null,d);this._animateOff=!1}},_value:function(){var a=this.options.value;return a=this._trimAlignValue(a),a},_values:function(a){var b,c,d;if(arguments.length)return b=this.options.values[a],b=this._trimAlignValue(b),b;c=this.options.values.slice();for(d=0;d<c.length;d+=1)c[d]=this._trimAlignValue(c[d]);return c},_trimAlignValue:function(a){if(a<=this._valueMin())return this._valueMin();if(a>=this._valueMax())return this._valueMax();var b=this.options.step>0?this.options.step:1,c=(a-this._valueMin())%b,d=a-c;return Math.abs(c)*2>=b&&(d+=c>0?b:-b),parseFloat(d.toFixed(5))},_valueMin:function(){return this.options.min},_valueMax:function(){return this.options.max},_refreshValue:function(){var b=this.options.range,c=this.options,d=this,e=this._animateOff?!1:c.animate,f,g={},h,i,j,k;this.options.values&&this.options.values.length?this.handles.each(function(b,i){f=(d.values(b)-d._valueMin())/(d._valueMax()-d._valueMin())*100,g[d.orientation==="horizontal"?"left":"bottom"]=f+"%",a(this).stop(1,1)[e?"animate":"css"](g,c.animate),d.options.range===!0&&(d.orientation==="horizontal"?(b===0&&d.range.stop(1,1)[e?"animate":"css"]({left:f+"%"},c.animate),b===1&&d.range[e?"animate":"css"]({width:f-h+"%"},{queue:!1,duration:c.animate})):(b===0&&d.range.stop(1,1)[e?"animate":"css"]({bottom:f+"%"},c.animate),b===1&&d.range[e?"animate":"css"]({height:f-h+"%"},{queue:!1,duration:c.animate}))),h=f}):(i=this.value(),j=this._valueMin(),k=this._valueMax(),f=k!==j?(i-j)/(k-j)*100:0,g[d.orientation==="horizontal"?"left":"bottom"]=f+"%",this.handle.stop(1,1)[e?"animate":"css"](g,c.animate),b==="min"&&this.orientation==="horizontal"&&this.range.stop(1,1)[e?"animate":"css"]({width:f+"%"},c.animate),b==="max"&&this.orientation==="horizontal"&&this.range[e?"animate":"css"]({width:100-f+"%"},{queue:!1,duration:c.animate}),b==="min"&&this.orientation==="vertical"&&this.range.stop(1,1)[e?"animate":"css"]({height:f+"%"},c.animate),b==="max"&&this.orientation==="vertical"&&this.range[e?"animate":"css"]({height:100-f+"%"},{queue:!1,duration:c.animate}))}}),a.extend(a.ui.slider,{version:"1.8.21"})})(jQuery);;/*! jQuery UI - v1.8.21 - 2012-06-05
-* https://github.com/jquery/jquery-ui
-* Includes: jquery.ui.tabs.js
-* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */
-(function(a,b){function e(){return++c}function f(){return++d}var c=0,d=0;a.widget("ui.tabs",{options:{add:null,ajaxOptions:null,cache:!1,cookie:null,collapsible:!1,disable:null,disabled:[],enable:null,event:"click",fx:null,idPrefix:"ui-tabs-",load:null,panelTemplate:"<div></div>",remove:null,select:null,show:null,spinner:"<em>Loading&#8230;</em>",tabTemplate:"<li><a href='#{href}'><span>#{label}</span></a></li>"},_create:function(){this._tabify(!0)},_setOption:function(a,b){if(a=="selected"){if(this.options.collapsible&&b==this.options.selected)return;this.select(b)}else this.options[a]=b,this._tabify()},_tabId:function(a){return a.title&&a.title.replace(/\s/g,"_").replace(/[^\w\u00c0-\uFFFF-]/g,"")||this.options.idPrefix+e()},_sanitizeSelector:function(a){return a.replace(/:/g,"\\:")},_cookie:function(){var b=this.cookie||(this.cookie=this.options.cookie.name||"ui-tabs-"+f());return a.cookie.apply(null,[b].concat(a.makeArray(arguments)))},_ui:function(a,b){return{tab:a,panel:b,index:this.anchors.index(a)}},_cleanup:function(){this.lis.filter(".ui-state-processing").removeClass("ui-state-processing").find("span:data(label.tabs)").each(function(){var b=a(this);b.html(b.data("label.tabs")).removeData("label.tabs")})},_tabify:function(c){function m(b,c){b.css("display",""),!a.support.opacity&&c.opacity&&b[0].style.removeAttribute("filter")}var d=this,e=this.options,f=/^#.+/;this.list=this.element.find("ol,ul").eq(0),this.lis=a(" > li:has(a[href])",this.list),this.anchors=this.lis.map(function(){return a("a",this)[0]}),this.panels=a([]),this.anchors.each(function(b,c){var g=a(c).attr("href"),h=g.split("#")[0],i;h&&(h===location.toString().split("#")[0]||(i=a("base")[0])&&h===i.href)&&(g=c.hash,c.href=g);if(f.test(g))d.panels=d.panels.add(d.element.find(d._sanitizeSelector(g)));else if(g&&g!=="#"){a.data(c,"href.tabs",g),a.data(c,"load.tabs",g.replace(/#.*$/,""));var j=d._tabId(c);c.href="#"+j;var k=d.element.find("#"+j);k.length||(k=a(e.panelTemplate).attr("id",j).addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").insertAfter(d.panels[b-1]||d.list),k.data("destroy.tabs",!0)),d.panels=d.panels.add(k)}else e.disabled.push(b)}),c?(this.element.addClass("ui-tabs ui-widget ui-widget-content ui-corner-all"),this.list.addClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all"),this.lis.addClass("ui-state-default ui-corner-top"),this.panels.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom"),e.selected===b?(location.hash&&this.anchors.each(function(a,b){if(b.hash==location.hash)return e.selected=a,!1}),typeof e.selected!="number"&&e.cookie&&(e.selected=parseInt(d._cookie(),10)),typeof e.selected!="number"&&this.lis.filter(".ui-tabs-selected").length&&(e.selected=this.lis.index(this.lis.filter(".ui-tabs-selected"))),e.selected=e.selected||(this.lis.length?0:-1)):e.selected===null&&(e.selected=-1),e.selected=e.selected>=0&&this.anchors[e.selected]||e.selected<0?e.selected:0,e.disabled=a.unique(e.disabled.concat(a.map(this.lis.filter(".ui-state-disabled"),function(a,b){return d.lis.index(a)}))).sort(),a.inArray(e.selected,e.disabled)!=-1&&e.disabled.splice(a.inArray(e.selected,e.disabled),1),this.panels.addClass("ui-tabs-hide"),this.lis.removeClass("ui-tabs-selected ui-state-active"),e.selected>=0&&this.anchors.length&&(d.element.find(d._sanitizeSelector(d.anchors[e.selected].hash)).removeClass("ui-tabs-hide"),this.lis.eq(e.selected).addClass("ui-tabs-selected ui-state-active"),d.element.queue("tabs",function(){d._trigger("show",null,d._ui(d.anchors[e.selected],d.element.find(d._sanitizeSelector(d.anchors[e.selected].hash))[0]))}),this.load(e.selected)),a(window).bind("unload",function(){d.lis.add(d.anchors).unbind(".tabs"),d.lis=d.anchors=d.panels=null})):e.selected=this.lis.index(this.lis.filter(".ui-tabs-selected")),this.element[e.collapsible?"addClass":"removeClass"]("ui-tabs-collapsible"),e.cookie&&this._cookie(e.selected,e.cookie);for(var g=0,h;h=this.lis[g];g++)a(h)[a.inArray(g,e.disabled)!=-1&&!a(h).hasClass("ui-tabs-selected")?"addClass":"removeClass"]("ui-state-disabled");e.cache===!1&&this.anchors.removeData("cache.tabs"),this.lis.add(this.anchors).unbind(".tabs");if(e.event!=="mouseover"){var i=function(a,b){b.is(":not(.ui-state-disabled)")&&b.addClass("ui-state-"+a)},j=function(a,b){b.removeClass("ui-state-"+a)};this.lis.bind("mouseover.tabs",function(){i("hover",a(this))}),this.lis.bind("mouseout.tabs",function(){j("hover",a(this))}),this.anchors.bind("focus.tabs",function(){i("focus",a(this).closest("li"))}),this.anchors.bind("blur.tabs",function(){j("focus",a(this).closest("li"))})}var k,l;e.fx&&(a.isArray(e.fx)?(k=e.fx[0],l=e.fx[1]):k=l=e.fx);var n=l?function(b,c){a(b).closest("li").addClass("ui-tabs-selected ui-state-active"),c.hide().removeClass("ui-tabs-hide").animate(l,l.duration||"normal",function(){m(c,l),d._trigger("show",null,d._ui(b,c[0]))})}:function(b,c){a(b).closest("li").addClass("ui-tabs-selected ui-state-active"),c.removeClass("ui-tabs-hide"),d._trigger("show",null,d._ui(b,c[0]))},o=k?function(a,b){b.animate(k,k.duration||"normal",function(){d.lis.removeClass("ui-tabs-selected ui-state-active"),b.addClass("ui-tabs-hide"),m(b,k),d.element.dequeue("tabs")})}:function(a,b,c){d.lis.removeClass("ui-tabs-selected ui-state-active"),b.addClass("ui-tabs-hide"),d.element.dequeue("tabs")};this.anchors.bind(e.event+".tabs",function(){var b=this,c=a(b).closest("li"),f=d.panels.filter(":not(.ui-tabs-hide)"),g=d.element.find(d._sanitizeSelector(b.hash));if(c.hasClass("ui-tabs-selected")&&!e.collapsible||c.hasClass("ui-state-disabled")||c.hasClass("ui-state-processing")||d.panels.filter(":animated").length||d._trigger("select",null,d._ui(this,g[0]))===!1)return this.blur(),!1;e.selected=d.anchors.index(this),d.abort();if(e.collapsible){if(c.hasClass("ui-tabs-selected"))return e.selected=-1,e.cookie&&d._cookie(e.selected,e.cookie),d.element.queue("tabs",function(){o(b,f)}).dequeue("tabs"),this.blur(),!1;if(!f.length)return e.cookie&&d._cookie(e.selected,e.cookie),d.element.queue("tabs",function(){n(b,g)}),d.load(d.anchors.index(this)),this.blur(),!1}e.cookie&&d._cookie(e.selected,e.cookie);if(g.length)f.length&&d.element.queue("tabs",function(){o(b,f)}),d.element.queue("tabs",function(){n(b,g)}),d.load(d.anchors.index(this));else throw"jQuery UI Tabs: Mismatching fragment identifier.";a.browser.msie&&this.blur()}),this.anchors.bind("click.tabs",function(){return!1})},_getIndex:function(a){return typeof a=="string"&&(a=this.anchors.index(this.anchors.filter("[href$='"+a+"']"))),a},destroy:function(){var b=this.options;return this.abort(),this.element.unbind(".tabs").removeClass("ui-tabs ui-widget ui-widget-content ui-corner-all ui-tabs-collapsible").removeData("tabs"),this.list.removeClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all"),this.anchors.each(function(){var b=a.data(this,"href.tabs");b&&(this.href=b);var c=a(this).unbind(".tabs");a.each(["href","load","cache"],function(a,b){c.removeData(b+".tabs")})}),this.lis.unbind(".tabs").add(this.panels).each(function(){a.data(this,"destroy.tabs")?a(this).remove():a(this).removeClass(["ui-state-default","ui-corner-top","ui-tabs-selected","ui-state-active","ui-state-hover","ui-state-focus","ui-state-disabled","ui-tabs-panel","ui-widget-content","ui-corner-bottom","ui-tabs-hide"].join(" "))}),b.cookie&&this._cookie(null,b.cookie),this},add:function(c,d,e){e===b&&(e=this.anchors.length);var f=this,g=this.options,h=a(g.tabTemplate.replace(/#\{href\}/g,c).replace(/#\{label\}/g,d)),i=c.indexOf("#")?this._tabId(a("a",h)[0]):c.replace("#","");h.addClass("ui-state-default ui-corner-top").data("destroy.tabs",!0);var j=f.element.find("#"+i);return j.length||(j=a(g.panelTemplate).attr("id",i).data("destroy.tabs",!0)),j.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide"),e>=this.lis.length?(h.appendTo(this.list),j.appendTo(this.list[0].parentNode)):(h.insertBefore(this.lis[e]),j.insertBefore(this.panels[e])),g.disabled=a.map(g.disabled,function(a,b){return a>=e?++a:a}),this._tabify(),this.anchors.length==1&&(g.selected=0,h.addClass("ui-tabs-selected ui-state-active"),j.removeClass("ui-tabs-hide"),this.element.queue("tabs",function(){f._trigger("show",null,f._ui(f.anchors[0],f.panels[0]))}),this.load(0)),this._trigger("add",null,this._ui(this.anchors[e],this.panels[e])),this},remove:function(b){b=this._getIndex(b);var c=this.options,d=this.lis.eq(b).remove(),e=this.panels.eq(b).remove();return d.hasClass("ui-tabs-selected")&&this.anchors.length>1&&this.select(b+(b+1<this.anchors.length?1:-1)),c.disabled=a.map(a.grep(c.disabled,function(a,c){return a!=b}),function(a,c){return a>=b?--a:a}),this._tabify(),this._trigger("remove",null,this._ui(d.find("a")[0],e[0])),this},enable:function(b){b=this._getIndex(b);var c=this.options;if(a.inArray(b,c.disabled)==-1)return;return this.lis.eq(b).removeClass("ui-state-disabled"),c.disabled=a.grep(c.disabled,function(a,c){return a!=b}),this._trigger("enable",null,this._ui(this.anchors[b],this.panels[b])),this},disable:function(a){a=this._getIndex(a);var b=this,c=this.options;return a!=c.selected&&(this.lis.eq(a).addClass("ui-state-disabled"),c.disabled.push(a),c.disabled.sort(),this._trigger("disable",null,this._ui(this.anchors[a],this.panels[a]))),this},select:function(a){a=this._getIndex(a);if(a==-1)if(this.options.collapsible&&this.options.selected!=-1)a=this.options.selected;else return this;return this.anchors.eq(a).trigger(this.options.event+".tabs"),this},load:function(b){b=this._getIndex(b);var c=this,d=this.options,e=this.anchors.eq(b)[0],f=a.data(e,"load.tabs");this.abort();if(!f||this.element.queue("tabs").length!==0&&a.data(e,"cache.tabs")){this.element.dequeue("tabs");return}this.lis.eq(b).addClass("ui-state-processing");if(d.spinner){var g=a("span",e);g.data("label.tabs",g.html()).html(d.spinner)}return this.xhr=a.ajax(a.extend({},d.ajaxOptions,{url:f,success:function(f,g){c.element.find(c._sanitizeSelector(e.hash)).html(f),c._cleanup(),d.cache&&a.data(e,"cache.tabs",!0),c._trigger("load",null,c._ui(c.anchors[b],c.panels[b]));try{d.ajaxOptions.success(f,g)}catch(h){}},error:function(a,f,g){c._cleanup(),c._trigger("load",null,c._ui(c.anchors[b],c.panels[b]));try{d.ajaxOptions.error(a,f,b,e)}catch(g){}}})),c.element.dequeue("tabs"),this},abort:function(){return this.element.queue([]),this.panels.stop(!1,!0),this.element.queue("tabs",this.element.queue("tabs").splice(-2,2)),this.xhr&&(this.xhr.abort(),delete this.xhr),this._cleanup(),this},url:function(a,b){return this.anchors.eq(a).removeData("cache.tabs").data("load.tabs",b),this},length:function(){return this.anchors.length}}),a.extend(a.ui.tabs,{version:"1.8.21"}),a.extend(a.ui.tabs.prototype,{rotation:null,rotate:function(a,b){var c=this,d=this.options,e=c._rotate||(c._rotate=function(b){clearTimeout(c.rotation),c.rotation=setTimeout(function(){var a=d.selected;c.select(++a<c.anchors.length?a:0)},a),b&&b.stopPropagation()}),f=c._unrotate||(c._unrotate=b?function(a){e()}:function(a){a.clientX&&c.rotate(null)});return a?(this.element.bind("tabsshow",e),this.anchors.bind(d.event+".tabs",f),e()):(clearTimeout(c.rotation),this.element.unbind("tabsshow",e),this.anchors.unbind(d.event+".tabs",f),delete this._rotate,delete this._unrotate),this}})})(jQuery);;/*! jQuery UI - v1.8.21 - 2012-06-05
-* https://github.com/jquery/jquery-ui
-* Includes: jquery.ui.datepicker.js
-* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */
-(function($,undefined){function Datepicker(){this.debug=!1,this._curInst=null,this._keyEvent=!1,this._disabledInputs=[],this._datepickerShowing=!1,this._inDialog=!1,this._mainDivId="ui-datepicker-div",this._inlineClass="ui-datepicker-inline",this._appendClass="ui-datepicker-append",this._triggerClass="ui-datepicker-trigger",this._dialogClass="ui-datepicker-dialog",this._disableClass="ui-datepicker-disabled",this._unselectableClass="ui-datepicker-unselectable",this._currentClass="ui-datepicker-current-day",this._dayOverClass="ui-datepicker-days-cell-over",this.regional=[],this.regional[""]={closeText:"Done",prevText:"Prev",nextText:"Next",currentText:"Today",monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayNamesShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],dayNamesMin:["Su","Mo","Tu","We","Th","Fr","Sa"],weekHeader:"Wk",dateFormat:"mm/dd/yy",firstDay:0,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""},this._defaults={showOn:"focus",showAnim:"fadeIn",showOptions:{},defaultDate:null,appendText:"",buttonText:"...",buttonImage:"",buttonImageOnly:!1,hideIfNoPrevNext:!1,navigationAsDateFormat:!1,gotoCurrent:!1,changeMonth:!1,changeYear:!1,yearRange:"c-10:c+10",showOtherMonths:!1,selectOtherMonths:!1,showWeek:!1,calculateWeek:this.iso8601Week,shortYearCutoff:"+10",minDate:null,maxDate:null,duration:"fast",beforeShowDay:null,beforeShow:null,onSelect:null,onChangeMonthYear:null,onClose:null,numberOfMonths:1,showCurrentAtPos:0,stepMonths:1,stepBigMonths:12,altField:"",altFormat:"",constrainInput:!0,showButtonPanel:!1,autoSize:!1,disabled:!1},$.extend(this._defaults,this.regional[""]),this.dpDiv=bindHover($('<div id="'+this._mainDivId+'" class="ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all"></div>'))}function bindHover(a){var b="button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a";return a.bind("mouseout",function(a){var c=$(a.target).closest(b);if(!c.length)return;c.removeClass("ui-state-hover ui-datepicker-prev-hover ui-datepicker-next-hover")}).bind("mouseover",function(c){var d=$(c.target).closest(b);if($.datepicker._isDisabledDatepicker(instActive.inline?a.parent()[0]:instActive.input[0])||!d.length)return;d.parents(".ui-datepicker-calendar").find("a").removeClass("ui-state-hover"),d.addClass("ui-state-hover"),d.hasClass("ui-datepicker-prev")&&d.addClass("ui-datepicker-prev-hover"),d.hasClass("ui-datepicker-next")&&d.addClass("ui-datepicker-next-hover")})}function extendRemove(a,b){$.extend(a,b);for(var c in b)if(b[c]==null||b[c]==undefined)a[c]=b[c];return a}function isArray(a){return a&&($.browser.safari&&typeof a=="object"&&a.length||a.constructor&&a.constructor.toString().match(/\Array\(\)/))}$.extend($.ui,{datepicker:{version:"1.8.21"}});var PROP_NAME="datepicker",dpuuid=(new Date).getTime(),instActive;$.extend(Datepicker.prototype,{markerClassName:"hasDatepicker",maxRows:4,log:function(){this.debug&&console.log.apply("",arguments)},_widgetDatepicker:function(){return this.dpDiv},setDefaults:function(a){return extendRemove(this._defaults,a||{}),this},_attachDatepicker:function(target,settings){var inlineSettings=null;for(var attrName in this._defaults){var attrValue=target.getAttribute("date:"+attrName);if(attrValue){inlineSettings=inlineSettings||{};try{inlineSettings[attrName]=eval(attrValue)}catch(err){inlineSettings[attrName]=attrValue}}}var nodeName=target.nodeName.toLowerCase(),inline=nodeName=="div"||nodeName=="span";target.id||(this.uuid+=1,target.id="dp"+this.uuid);var inst=this._newInst($(target),inline);inst.settings=$.extend({},settings||{},inlineSettings||{}),nodeName=="input"?this._connectDatepicker(target,inst):inline&&this._inlineDatepicker(target,inst)},_newInst:function(a,b){var c=a[0].id.replace(/([^A-Za-z0-9_-])/g,"\\\\$1");return{id:c,input:a,selectedDay:0,selectedMonth:0,selectedYear:0,drawMonth:0,drawYear:0,inline:b,dpDiv:b?bindHover($('<div class="'+this._inlineClass+' ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all"></div>')):this.dpDiv}},_connectDatepicker:function(a,b){var c=$(a);b.append=$([]),b.trigger=$([]);if(c.hasClass(this.markerClassName))return;this._attachments(c,b),c.addClass(this.markerClassName).keydown(this._doKeyDown).keypress(this._doKeyPress).keyup(this._doKeyUp).bind("setData.datepicker",function(a,c,d){b.settings[c]=d}).bind("getData.datepicker",function(a,c){return this._get(b,c)}),this._autoSize(b),$.data(a,PROP_NAME,b),b.settings.disabled&&this._disableDatepicker(a)},_attachments:function(a,b){var c=this._get(b,"appendText"),d=this._get(b,"isRTL");b.append&&b.append.remove(),c&&(b.append=$('<span class="'+this._appendClass+'">'+c+"</span>"),a[d?"before":"after"](b.append)),a.unbind("focus",this._showDatepicker),b.trigger&&b.trigger.remove();var e=this._get(b,"showOn");(e=="focus"||e=="both")&&a.focus(this._showDatepicker);if(e=="button"||e=="both"){var f=this._get(b,"buttonText"),g=this._get(b,"buttonImage");b.trigger=$(this._get(b,"buttonImageOnly")?$("<img/>").addClass(this._triggerClass).attr({src:g,alt:f,title:f}):$('<button type="button"></button>').addClass(this._triggerClass).html(g==""?f:$("<img/>").attr({src:g,alt:f,title:f}))),a[d?"before":"after"](b.trigger),b.trigger.click(function(){return $.datepicker._datepickerShowing&&$.datepicker._lastInput==a[0]?$.datepicker._hideDatepicker():$.datepicker._datepickerShowing&&$.datepicker._lastInput!=a[0]?($.datepicker._hideDatepicker(),$.datepicker._showDatepicker(a[0])):$.datepicker._showDatepicker(a[0]),!1})}},_autoSize:function(a){if(this._get(a,"autoSize")&&!a.inline){var b=new Date(2009,11,20),c=this._get(a,"dateFormat");if(c.match(/[DM]/)){var d=function(a){var b=0,c=0;for(var d=0;d<a.length;d++)a[d].length>b&&(b=a[d].length,c=d);return c};b.setMonth(d(this._get(a,c.match(/MM/)?"monthNames":"monthNamesShort"))),b.setDate(d(this._get(a,c.match(/DD/)?"dayNames":"dayNamesShort"))+20-b.getDay())}a.input.attr("size",this._formatDate(a,b).length)}},_inlineDatepicker:function(a,b){var c=$(a);if(c.hasClass(this.markerClassName))return;c.addClass(this.markerClassName).append(b.dpDiv).bind("setData.datepicker",function(a,c,d){b.settings[c]=d}).bind("getData.datepicker",function(a,c){return this._get(b,c)}),$.data(a,PROP_NAME,b),this._setDate(b,this._getDefaultDate(b),!0),this._updateDatepicker(b),this._updateAlternate(b),b.settings.disabled&&this._disableDatepicker(a),b.dpDiv.css("display","block")},_dialogDatepicker:function(a,b,c,d,e){var f=this._dialogInst;if(!f){this.uuid+=1;var g="dp"+this.uuid;this._dialogInput=$('<input type="text" id="'+g+'" style="position: absolute; top: -100px; width: 0px; z-index: -10;"/>'),this._dialogInput.keydown(this._doKeyDown),$("body").append(this._dialogInput),f=this._dialogInst=this._newInst(this._dialogInput,!1),f.settings={},$.data(this._dialogInput[0],PROP_NAME,f)}extendRemove(f.settings,d||{}),b=b&&b.constructor==Date?this._formatDate(f,b):b,this._dialogInput.val(b),this._pos=e?e.length?e:[e.pageX,e.pageY]:null;if(!this._pos){var h=document.documentElement.clientWidth,i=document.documentElement.clientHeight,j=document.documentElement.scrollLeft||document.body.scrollLeft,k=document.documentElement.scrollTop||document.body.scrollTop;this._pos=[h/2-100+j,i/2-150+k]}return this._dialogInput.css("left",this._pos[0]+20+"px").css("top",this._pos[1]+"px"),f.settings.onSelect=c,this._inDialog=!0,this.dpDiv.addClass(this._dialogClass),this._showDatepicker(this._dialogInput[0]),$.blockUI&&$.blockUI(this.dpDiv),$.data(this._dialogInput[0],PROP_NAME,f),this},_destroyDatepicker:function(a){var b=$(a),c=$.data(a,PROP_NAME);if(!b.hasClass(this.markerClassName))return;var d=a.nodeName.toLowerCase();$.removeData(a,PROP_NAME),d=="input"?(c.append.remove(),c.trigger.remove(),b.removeClass(this.markerClassName).unbind("focus",this._showDatepicker).unbind("keydown",this._doKeyDown).unbind("keypress",this._doKeyPress).unbind("keyup",this._doKeyUp)):(d=="div"||d=="span")&&b.removeClass(this.markerClassName).empty()},_enableDatepicker:function(a){var b=$(a),c=$.data(a,PROP_NAME);if(!b.hasClass(this.markerClassName))return;var d=a.nodeName.toLowerCase();if(d=="input")a.disabled=!1,c.trigger.filter("button").each(function(){this.disabled=!1}).end().filter("img").css({opacity:"1.0",cursor:""});else if(d=="div"||d=="span"){var e=b.children("."+this._inlineClass);e.children().removeClass("ui-state-disabled"),e.find("select.ui-datepicker-month, select.ui-datepicker-year").removeAttr("disabled")}this._disabledInputs=$.map(this._disabledInputs,function(b){return b==a?null:b})},_disableDatepicker:function(a){var b=$(a),c=$.data(a,PROP_NAME);if(!b.hasClass(this.markerClassName))return;var d=a.nodeName.toLowerCase();if(d=="input")a.disabled=!0,c.trigger.filter("button").each(function(){this.disabled=!0}).end().filter("img").css({opacity:"0.5",cursor:"default"});else if(d=="div"||d=="span"){var e=b.children("."+this._inlineClass);e.children().addClass("ui-state-disabled"),e.find("select.ui-datepicker-month, select.ui-datepicker-year").attr("disabled","disabled")}this._disabledInputs=$.map(this._disabledInputs,function(b){return b==a?null:b}),this._disabledInputs[this._disabledInputs.length]=a},_isDisabledDatepicker:function(a){if(!a)return!1;for(var b=0;b<this._disabledInputs.length;b++)if(this._disabledInputs[b]==a)return!0;return!1},_getInst:function(a){try{return $.data(a,PROP_NAME)}catch(b){throw"Missing instance data for this datepicker"}},_optionDatepicker:function(a,b,c){var d=this._getInst(a);if(arguments.length==2&&typeof b=="string")return b=="defaults"?$.extend({},$.datepicker._defaults):d?b=="all"?$.extend({},d.settings):this._get(d,b):null;var e=b||{};typeof b=="string"&&(e={},e[b]=c);if(d){this._curInst==d&&this._hideDatepicker();var f=this._getDateDatepicker(a,!0),g=this._getMinMaxDate(d,"min"),h=this._getMinMaxDate(d,"max");extendRemove(d.settings,e),g!==null&&e.dateFormat!==undefined&&e.minDate===undefined&&(d.settings.minDate=this._formatDate(d,g)),h!==null&&e.dateFormat!==undefined&&e.maxDate===undefined&&(d.settings.maxDate=this._formatDate(d,h)),this._attachments($(a),d),this._autoSize(d),this._setDate(d,f),this._updateAlternate(d),this._updateDatepicker(d)}},_changeDatepicker:function(a,b,c){this._optionDatepicker(a,b,c)},_refreshDatepicker:function(a){var b=this._getInst(a);b&&this._updateDatepicker(b)},_setDateDatepicker:function(a,b){var c=this._getInst(a);c&&(this._setDate(c,b),this._updateDatepicker(c),this._updateAlternate(c))},_getDateDatepicker:function(a,b){var c=this._getInst(a);return c&&!c.inline&&this._setDateFromField(c,b),c?this._getDate(c):null},_doKeyDown:function(a){var b=$.datepicker._getInst(a.target),c=!0,d=b.dpDiv.is(".ui-datepicker-rtl");b._keyEvent=!0;if($.datepicker._datepickerShowing)switch(a.keyCode){case 9:$.datepicker._hideDatepicker(),c=!1;break;case 13:var e=$("td."+$.datepicker._dayOverClass+":not(."+$.datepicker._currentClass+")",b.dpDiv);e[0]&&$.datepicker._selectDay(a.target,b.selectedMonth,b.selectedYear,e[0]);var f=$.datepicker._get(b,"onSelect");if(f){var g=$.datepicker._formatDate(b);f.apply(b.input?b.input[0]:null,[g,b])}else $.datepicker._hideDatepicker();return!1;case 27:$.datepicker._hideDatepicker();break;case 33:$.datepicker._adjustDate(a.target,a.ctrlKey?-$.datepicker._get(b,"stepBigMonths"):-$.datepicker._get(b,"stepMonths"),"M");break;case 34:$.datepicker._adjustDate(a.target,a.ctrlKey?+$.datepicker._get(b,"stepBigMonths"):+$.datepicker._get(b,"stepMonths"),"M");break;case 35:(a.ctrlKey||a.metaKey)&&$.datepicker._clearDate(a.target),c=a.ctrlKey||a.metaKey;break;case 36:(a.ctrlKey||a.metaKey)&&$.datepicker._gotoToday(a.target),c=a.ctrlKey||a.metaKey;break;case 37:(a.ctrlKey||a.metaKey)&&$.datepicker._adjustDate(a.target,d?1:-1,"D"),c=a.ctrlKey||a.metaKey,a.originalEvent.altKey&&$.datepicker._adjustDate(a.target,a.ctrlKey?-$.datepicker._get(b,"stepBigMonths"):-$.datepicker._get(b,"stepMonths"),"M");break;case 38:(a.ctrlKey||a.metaKey)&&$.datepicker._adjustDate(a.target,-7,"D"),c=a.ctrlKey||a.metaKey;break;case 39:(a.ctrlKey||a.metaKey)&&$.datepicker._adjustDate(a.target,d?-1:1,"D"),c=a.ctrlKey||a.metaKey,a.originalEvent.altKey&&$.datepicker._adjustDate(a.target,a.ctrlKey?+$.datepicker._get(b,"stepBigMonths"):+$.datepicker._get(b,"stepMonths"),"M");break;case 40:(a.ctrlKey||a.metaKey)&&$.datepicker._adjustDate(a.target,7,"D"),c=a.ctrlKey||a.metaKey;break;default:c=!1}else a.keyCode==36&&a.ctrlKey?$.datepicker._showDatepicker(this):c=!1;c&&(a.preventDefault(),a.stopPropagation())},_doKeyPress:function(a){var b=$.datepicker._getInst(a.target);if($.datepicker._get(b,"constrainInput")){var c=$.datepicker._possibleChars($.datepicker._get(b,"dateFormat")),d=String.fromCharCode(a.charCode==undefined?a.keyCode:a.charCode);return a.ctrlKey||a.metaKey||d<" "||!c||c.indexOf(d)>-1}},_doKeyUp:function(a){var b=$.datepicker._getInst(a.target);if(b.input.val()!=b.lastVal)try{var c=$.datepicker.parseDate($.datepicker._get(b,"dateFormat"),b.input?b.input.val():null,$.datepicker._getFormatConfig(b));c&&($.datepicker._setDateFromField(b),$.datepicker._updateAlternate(b),$.datepicker._updateDatepicker(b))}catch(d){$.datepicker.log(d)}return!0},_showDatepicker:function(a){a=a.target||a,a.nodeName.toLowerCase()!="input"&&(a=$("input",a.parentNode)[0]);if($.datepicker._isDisabledDatepicker(a)||$.datepicker._lastInput==a)return;var b=$.datepicker._getInst(a);$.datepicker._curInst&&$.datepicker._curInst!=b&&($.datepicker._curInst.dpDiv.stop(!0,!0),b&&$.datepicker._datepickerShowing&&$.datepicker._hideDatepicker($.datepicker._curInst.input[0]));var c=$.datepicker._get(b,"beforeShow"),d=c?c.apply(a,[a,b]):{};if(d===!1)return;extendRemove(b.settings,d),b.lastVal=null,$.datepicker._lastInput=a,$.datepicker._setDateFromField(b),$.datepicker._inDialog&&(a.value=""),$.datepicker._pos||($.datepicker._pos=$.datepicker._findPos(a),$.datepicker._pos[1]+=a.offsetHeight);var e=!1;$(a).parents().each(function(){return e|=$(this).css("position")=="fixed",!e}),e&&$.browser.opera&&($.datepicker._pos[0]-=document.documentElement.scrollLeft,$.datepicker._pos[1]-=document.documentElement.scrollTop);var f={left:$.datepicker._pos[0],top:$.datepicker._pos[1]};$.datepicker._pos=null,b.dpDiv.empty(),b.dpDiv.css({position:"absolute",display:"block",top:"-1000px"}),$.datepicker._updateDatepicker(b),f=$.datepicker._checkOffset(b,f,e),b.dpDiv.css({position:$.datepicker._inDialog&&$.blockUI?"static":e?"fixed":"absolute",display:"none",left:f.left+"px",top:f.top+"px"});if(!b.inline){var g=$.datepicker._get(b,"showAnim"),h=$.datepicker._get(b,"duration"),i=function(){var a=b.dpDiv.find("iframe.ui-datepicker-cover");if(!!a.length){var c=$.datepicker._getBorders(b.dpDiv);a.css({left:-c[0],top:-c[1],width:b.dpDiv.outerWidth(),height:b.dpDiv.outerHeight()})}};b.dpDiv.zIndex($(a).zIndex()+1),$.datepicker._datepickerShowing=!0,$.effects&&$.effects[g]?b.dpDiv.show(g,$.datepicker._get(b,"showOptions"),h,i):b.dpDiv[g||"show"](g?h:null,i),(!g||!h)&&i(),b.input.is(":visible")&&!b.input.is(":disabled")&&b.input.focus(),$.datepicker._curInst=b}},_updateDatepicker:function(a){var b=this;b.maxRows=4;var c=$.datepicker._getBorders(a.dpDiv);instActive=a,a.dpDiv.empty().append(this._generateHTML(a));var d=a.dpDiv.find("iframe.ui-datepicker-cover");!d.length||d.css({left:-c[0],top:-c[1],width:a.dpDiv.outerWidth(),height:a.dpDiv.outerHeight()}),a.dpDiv.find("."+this._dayOverClass+" a").mouseover();var e=this._getNumberOfMonths(a),f=e[1],g=17;a.dpDiv.removeClass("ui-datepicker-multi-2 ui-datepicker-multi-3 ui-datepicker-multi-4").width(""),f>1&&a.dpDiv.addClass("ui-datepicker-multi-"+f).css("width",g*f+"em"),a.dpDiv[(e[0]!=1||e[1]!=1?"add":"remove")+"Class"]("ui-datepicker-multi"),a.dpDiv[(this._get(a,"isRTL")?"add":"remove")+"Class"]("ui-datepicker-rtl"),a==$.datepicker._curInst&&$.datepicker._datepickerShowing&&a.input&&a.input.is(":visible")&&!a.input.is(":disabled")&&a.input[0]!=document.activeElement&&a.input.focus();if(a.yearshtml){var h=a.yearshtml;setTimeout(function(){h===a.yearshtml&&a.yearshtml&&a.dpDiv.find("select.ui-datepicker-year:first").replaceWith(a.yearshtml),h=a.yearshtml=null},0)}},_getBorders:function(a){var b=function(a){return{thin:1,medium:2,thick:3}[a]||a};return[parseFloat(b(a.css("border-left-width"))),parseFloat(b(a.css("border-top-width")))]},_checkOffset:function(a,b,c){var d=a.dpDiv.outerWidth(),e=a.dpDiv.outerHeight(),f=a.input?a.input.outerWidth():0,g=a.input?a.input.outerHeight():0,h=document.documentElement.clientWidth+$(document).scrollLeft(),i=document.documentElement.clientHeight+$(document).scrollTop();return b.left-=this._get(a,"isRTL")?d-f:0,b.left-=c&&b.left==a.input.offset().left?$(document).scrollLeft():0,b.top-=c&&b.top==a.input.offset().top+g?$(document).scrollTop():0,b.left-=Math.min(b.left,b.left+d>h&&h>d?Math.abs(b.left+d-h):0),b.top-=Math.min(b.top,b.top+e>i&&i>e?Math.abs(e+g):0),b},_findPos:function(a){var b=this._getInst(a),c=this._get(b,"isRTL");while(a&&(a.type=="hidden"||a.nodeType!=1||$.expr.filters.hidden(a)))a=a[c?"previousSibling":"nextSibling"];var d=$(a).offset();return[d.left,d.top]},_hideDatepicker:function(a){var b=this._curInst;if(!b||a&&b!=$.data(a,PROP_NAME))return;if(this._datepickerShowing){var c=this._get(b,"showAnim"),d=this._get(b,"duration"),e=function(){$.datepicker._tidyDialog(b)};$.effects&&$.effects[c]?b.dpDiv.hide(c,$.datepicker._get(b,"showOptions"),d,e):b.dpDiv[c=="slideDown"?"slideUp":c=="fadeIn"?"fadeOut":"hide"](c?d:null,e),c||e(),this._datepickerShowing=!1;var f=this._get(b,"onClose");f&&f.apply(b.input?b.input[0]:null,[b.input?b.input.val():"",b]),this._lastInput=null,this._inDialog&&(this._dialogInput.css({position:"absolute",left:"0",top:"-100px"}),$.blockUI&&($.unblockUI(),$("body").append(this.dpDiv))),this._inDialog=!1}},_tidyDialog:function(a){a.dpDiv.removeClass(this._dialogClass).unbind(".ui-datepicker-calendar")},_checkExternalClick:function(a){if(!$.datepicker._curInst)return;var b=$(a.target),c=$.datepicker._getInst(b[0]);(b[0].id!=$.datepicker._mainDivId&&b.parents("#"+$.datepicker._mainDivId).length==0&&!b.hasClass($.datepicker.markerClassName)&&!b.closest("."+$.datepicker._triggerClass).length&&$.datepicker._datepickerShowing&&(!$.datepicker._inDialog||!$.blockUI)||b.hasClass($.datepicker.markerClassName)&&$.datepicker._curInst!=c)&&$.datepicker._hideDatepicker()},_adjustDate:function(a,b,c){var d=$(a),e=this._getInst(d[0]);if(this._isDisabledDatepicker(d[0]))return;this._adjustInstDate(e,b+(c=="M"?this._get(e,"showCurrentAtPos"):0),c),this._updateDatepicker(e)},_gotoToday:function(a){var b=$(a),c=this._getInst(b[0]);if(this._get(c,"gotoCurrent")&&c.currentDay)c.selectedDay=c.currentDay,c.drawMonth=c.selectedMonth=c.currentMonth,c.drawYear=c.selectedYear=c.currentYear;else{var d=new Date;c.selectedDay=d.getDate(),c.drawMonth=c.selectedMonth=d.getMonth(),c.drawYear=c.selectedYear=d.getFullYear()}this._notifyChange(c),this._adjustDate(b)},_selectMonthYear:function(a,b,c){var d=$(a),e=this._getInst(d[0]);e["selected"+(c=="M"?"Month":"Year")]=e["draw"+(c=="M"?"Month":"Year")]=parseInt(b.options[b.selectedIndex].value,10),this._notifyChange(e),this._adjustDate(d)},_selectDay:function(a,b,c,d){var e=$(a);if($(d).hasClass(this._unselectableClass)||this._isDisabledDatepicker(e[0]))return;var f=this._getInst(e[0]);f.selectedDay=f.currentDay=$("a",d).html(),f.selectedMonth=f.currentMonth=b,f.selectedYear=f.currentYear=c,this._selectDate(a,this._formatDate(f,f.currentDay,f.currentMonth,f.currentYear))},_clearDate:function(a){var b=$(a),c=this._getInst(b[0]);this._selectDate(b,"")},_selectDate:function(a,b){var c=$(a),d=this._getInst(c[0]);b=b!=null?b:this._formatDate(d),d.input&&d.input.val(b),this._updateAlternate(d);var e=this._get(d,"onSelect");e?e.apply(d.input?d.input[0]:null,[b,d]):d.input&&d.input.trigger("change"),d.inline?this._updateDatepicker(d):(this._hideDatepicker(),this._lastInput=d.input[0],typeof d.input[0]!="object"&&d.input.focus(),this._lastInput=null)},_updateAlternate:function(a){var b=this._get(a,"altField");if(b){var c=this._get(a,"altFormat")||this._get(a,"dateFormat"),d=this._getDate(a),e=this.formatDate(c,d,this._getFormatConfig(a));$(b).each(function(){$(this).val(e)})}},noWeekends:function(a){var b=a.getDay();return[b>0&&b<6,""]},iso8601Week:function(a){var b=new Date(a.getTime());b.setDate(b.getDate()+4-(b.getDay()||7));var c=b.getTime();return b.setMonth(0),b.setDate(1),Math.floor(Math.round((c-b)/864e5)/7)+1},parseDate:function(a,b,c){if(a==null||b==null)throw"Invalid arguments";b=typeof b=="object"?b.toString():b+"";if(b=="")return null;var d=(c?c.shortYearCutoff:null)||this._defaults.shortYearCutoff;d=typeof d!="string"?d:(new Date).getFullYear()%100+parseInt(d,10);var e=(c?c.dayNamesShort:null)||this._defaults.dayNamesShort,f=(c?c.dayNames:null)||this._defaults.dayNames,g=(c?c.monthNamesShort:null)||this._defaults.monthNamesShort,h=(c?c.monthNames:null)||this._defaults.monthNames,i=-1,j=-1,k=-1,l=-1,m=!1,n=function(b){var c=s+1<a.length&&a.charAt(s+1)==b;return c&&s++,c},o=function(a){var c=n(a),d=a=="@"?14:a=="!"?20:a=="y"&&c?4:a=="o"?3:2,e=new RegExp("^\\d{1,"+d+"}"),f=b.substring(r).match(e);if(!f)throw"Missing number at position "+r;return r+=f[0].length,parseInt(f[0],10)},p=function(a,c,d){var e=$.map(n(a)?d:c,function(a,b){return[[b,a]]}).sort(function(a,b){return-(a[1].length-b[1].length)}),f=-1;$.each(e,function(a,c){var d=c[1];if(b.substr(r,d.length).toLowerCase()==d.toLowerCase())return f=c[0],r+=d.length,!1});if(f!=-1)return f+1;throw"Unknown name at position "+r},q=function(){if(b.charAt(r)!=a.charAt(s))throw"Unexpected literal at position "+r;r++},r=0;for(var s=0;s<a.length;s++)if(m)a.charAt(s)=="'"&&!n("'")?m=!1:q();else switch(a.charAt(s)){case"d":k=o("d");break;case"D":p("D",e,f);break;case"o":l=o("o");break;case"m":j=o("m");break;case"M":j=p("M",g,h);break;case"y":i=o("y");break;case"@":var t=new Date(o("@"));i=t.getFullYear(),j=t.getMonth()+1,k=t.getDate();break;case"!":var t=new Date((o("!")-this._ticksTo1970)/1e4);i=t.getFullYear(),j=t.getMonth()+1,k=t.getDate();break;case"'":n("'")?q():m=!0;break;default:q()}if(r<b.length)throw"Extra/unparsed characters found in date: "+b.substring(r);i==-1?i=(new Date).getFullYear():i<100&&(i+=(new Date).getFullYear()-(new Date).getFullYear()%100+(i<=d?0:-100));if(l>-1){j=1,k=l;do{var u=this._getDaysInMonth(i,j-1);if(k<=u)break;j++,k-=u}while(!0)}var t=this._daylightSavingAdjust(new Date(i,j-1,k));if(t.getFullYear()!=i||t.getMonth()+1!=j||t.getDate()!=k)throw"Invalid date";return t},ATOM:"yy-mm-dd",COOKIE:"D, dd M yy",ISO_8601:"yy-mm-dd",RFC_822:"D, d M y",RFC_850:"DD, dd-M-y",RFC_1036:"D, d M y",RFC_1123:"D, d M yy",RFC_2822:"D, d M yy",RSS:"D, d M y",TICKS:"!",TIMESTAMP:"@",W3C:"yy-mm-dd",_ticksTo1970:(718685+Math.floor(492.5)-Math.floor(19.7)+Math.floor(4.925))*24*60*60*1e7,formatDate:function(a,b,c){if(!b)return"";var d=(c?c.dayNamesShort:null)||this._defaults.dayNamesShort,e=(c?c.dayNames:null)||this._defaults.dayNames,f=(c?c.monthNamesShort:null)||this._defaults.monthNamesShort,g=(c?c.monthNames:null)||this._defaults.monthNames,h=function(b){var c=m+1<a.length&&a.charAt(m+1)==b;return c&&m++,c},i=function(a,b,c){var d=""+b;if(h(a))while(d.length<c)d="0"+d;return d},j=function(a,b,c,d){return h(a)?d[b]:c[b]},k="",l=!1;if(b)for(var m=0;m<a.length;m++)if(l)a.charAt(m)=="'"&&!h("'")?l=!1:k+=a.charAt(m);else switch(a.charAt(m)){case"d":k+=i("d",b.getDate(),2);break;case"D":k+=j("D",b.getDay(),d,e);break;case"o":k+=i("o",Math.round(((new Date(b.getFullYear(),b.getMonth(),b.getDate())).getTime()-(new Date(b.getFullYear(),0,0)).getTime())/864e5),3);break;case"m":k+=i("m",b.getMonth()+1,2);break;case"M":k+=j("M",b.getMonth(),f,g);break;case"y":k+=h("y")?b.getFullYear():(b.getYear()%100<10?"0":"")+b.getYear()%100;break;case"@":k+=b.getTime();break;case"!":k+=b.getTime()*1e4+this._ticksTo1970;break;case"'":h("'")?k+="'":l=!0;break;default:k+=a.charAt(m)}return k},_possibleChars:function(a){var b="",c=!1,d=function(b){var c=e+1<a.length&&a.charAt(e+1)==b;return c&&e++,c};for(var e=0;e<a.length;e++)if(c)a.charAt(e)=="'"&&!d("'")?c=!1:b+=a.charAt(e);else switch(a.charAt(e)){case"d":case"m":case"y":case"@":b+="0123456789";break;case"D":case"M":return null;case"'":d("'")?b+="'":c=!0;break;default:b+=a.charAt(e)}return b},_get:function(a,b){return a.settings[b]!==undefined?a.settings[b]:this._defaults[b]},_setDateFromField:function(a,b){if(a.input.val()==a.lastVal)return;var c=this._get(a,"dateFormat"),d=a.lastVal=a.input?a.input.val():null,e,f;e=f=this._getDefaultDate(a);var g=this._getFormatConfig(a);try{e=this.parseDate(c,d,g)||f}catch(h){this.log(h),d=b?"":d}a.selectedDay=e.getDate(),a.drawMonth=a.selectedMonth=e.getMonth(),a.drawYear=a.selectedYear=e.getFullYear(),a.currentDay=d?e.getDate():0,a.currentMonth=d?e.getMonth():0,a.currentYear=d?e.getFullYear():0,this._adjustInstDate(a)},_getDefaultDate:function(a){return this._restrictMinMax(a,this._determineDate(a,this._get(a,"defaultDate"),new Date))},_determineDate:function(a,b,c){var d=function(a){var b=new Date;return b.setDate(b.getDate()+a),b},e=function(b){try{return $.datepicker.parseDate($.datepicker._get(a,"dateFormat"),b,$.datepicker._getFormatConfig(a))}catch(c){}var d=(b.toLowerCase().match(/^c/)?$.datepicker._getDate(a):null)||new Date,e=d.getFullYear(),f=d.getMonth(),g=d.getDate(),h=/([+-]?[0-9]+)\s*(d|D|w|W|m|M|y|Y)?/g,i=h.exec(b);while(i){switch(i[2]||"d"){case"d":case"D":g+=parseInt(i[1],10);break;case"w":case"W":g+=parseInt(i[1],10)*7;break;case"m":case"M":f+=parseInt(i[1],10),g=Math.min(g,$.datepicker._getDaysInMonth(e,f));break;case"y":case"Y":e+=parseInt(i[1],10),g=Math.min(g,$.datepicker._getDaysInMonth(e,f))}i=h.exec(b)}return new Date(e,f,g)},f=b==null||b===""?c:typeof b=="string"?e(b):typeof b=="number"?isNaN(b)?c:d(b):new Date(b.getTime());return f=f&&f.toString()=="Invalid Date"?c:f,f&&(f.setHours(0),f.setMinutes(0),f.setSeconds(0),f.setMilliseconds(0)),this._daylightSavingAdjust(f)},_daylightSavingAdjust:function(a){return a?(a.setHours(a.getHours()>12?a.getHours()+2:0),a):null},_setDate:function(a,b,c){var d=!b,e=a.selectedMonth,f=a.selectedYear,g=this._restrictMinMax(a,this._determineDate(a,b,new Date));a.selectedDay=a.currentDay=g.getDate(),a.drawMonth=a.selectedMonth=a.currentMonth=g.getMonth(),a.drawYear=a.selectedYear=a.currentYear=g.getFullYear(),(e!=a.selectedMonth||f!=a.selectedYear)&&!c&&this._notifyChange(a),this._adjustInstDate(a),a.input&&a.input.val(d?"":this._formatDate(a))},_getDate:function(a){var b=!a.currentYear||a.input&&a.input.val()==""?null:this._daylightSavingAdjust(new Date(a.currentYear,a.currentMonth,a.currentDay));return b},_generateHTML:function(a){var b=new Date;b=this._daylightSavingAdjust(new Date(b.getFullYear(),b.getMonth(),b.getDate()));var c=this._get(a,"isRTL"),d=this._get(a,"showButtonPanel"),e=this._get(a,"hideIfNoPrevNext"),f=this._get(a,"navigationAsDateFormat"),g=this._getNumberOfMonths(a),h=this._get(a,"showCurrentAtPos"),i=this._get(a,"stepMonths"),j=g[0]!=1||g[1]!=1,k=this._daylightSavingAdjust(a.currentDay?new Date(a.currentYear,a.currentMonth,a.currentDay):new Date(9999,9,9)),l=this._getMinMaxDate(a,"min"),m=this._getMinMaxDate(a,"max"),n=a.drawMonth-h,o=a.drawYear;n<0&&(n+=12,o--);if(m){var p=this._daylightSavingAdjust(new Date(m.getFullYear(),m.getMonth()-g[0]*g[1]+1,m.getDate()));p=l&&p<l?l:p;while(this._daylightSavingAdjust(new Date(o,n,1))>p)n--,n<0&&(n=11,o--)}a.drawMonth=n,a.drawYear=o;var q=this._get(a,"prevText");q=f?this.formatDate(q,this._daylightSavingAdjust(new Date(o,n-i,1)),this._getFormatConfig(a)):q;var r=this._canAdjustMonth(a,-1,o,n)?'<a class="ui-datepicker-prev ui-corner-all" onclick="DP_jQuery_'+dpuuid+".datepicker._adjustDate('#"+a.id+"', -"+i+", 'M');\""+' title="'+q+'"><span class="ui-icon ui-icon-circle-triangle-'+(c?"e":"w")+'">'+q+"</span></a>":e?"":'<a class="ui-datepicker-prev ui-corner-all ui-state-disabled" title="'+q+'"><span class="ui-icon ui-icon-circle-triangle-'+(c?"e":"w")+'">'+q+"</span></a>",s=this._get(a,"nextText");s=f?this.formatDate(s,this._daylightSavingAdjust(new Date(o,n+i,1)),this._getFormatConfig(a)):s;var t=this._canAdjustMonth(a,1,o,n)?'<a class="ui-datepicker-next ui-corner-all" onclick="DP_jQuery_'+dpuuid+".datepicker._adjustDate('#"+a.id+"', +"+i+", 'M');\""+' title="'+s+'"><span class="ui-icon ui-icon-circle-triangle-'+(c?"w":"e")+'">'+s+"</span></a>":e?"":'<a class="ui-datepicker-next ui-corner-all ui-state-disabled" title="'+s+'"><span class="ui-icon ui-icon-circle-triangle-'+(c?"w":"e")+'">'+s+"</span></a>",u=this._get(a,"currentText"),v=this._get(a,"gotoCurrent")&&a.currentDay?k:b;u=f?this.formatDate(u,v,this._getFormatConfig(a)):u;var w=a.inline?"":'<button type="button" class="ui-datepicker-close ui-state-default ui-priority-primary ui-corner-all" onclick="DP_jQuery_'+dpuuid+'.datepicker._hideDatepicker();">'+this._get(a,"closeText")+"</button>",x=d?'<div class="ui-datepicker-buttonpane ui-widget-content">'+(c?w:"")+(this._isInRange(a,v)?'<button type="button" class="ui-datepicker-current ui-state-default ui-priority-secondary ui-corner-all" onclick="DP_jQuery_'+dpuuid+".datepicker._gotoToday('#"+a.id+"');\""+">"+u+"</button>":"")+(c?"":w)+"</div>":"",y=parseInt(this._get(a,"firstDay"),10);y=isNaN(y)?0:y;var z=this._get(a,"showWeek"),A=this._get(a,"dayNames"),B=this._get(a,"dayNamesShort"),C=this._get(a,"dayNamesMin"),D=this._get(a,"monthNames"),E=this._get(a,"monthNamesShort"),F=this._get(a,"beforeShowDay"),G=this._get(a,"showOtherMonths"),H=this._get(a,"selectOtherMonths"),I=this._get(a,"calculateWeek")||this.iso8601Week,J=this._getDefaultDate(a),K="";for(var L=0;L<g[0];L++){var M="";this.maxRows=4;for(var N=0;N<g[1];N++){var O=this._daylightSavingAdjust(new Date(o,n,a.selectedDay)),P=" ui-corner-all",Q="";if(j){Q+='<div class="ui-datepicker-group';if(g[1]>1)switch(N){case 0:Q+=" ui-datepicker-group-first",P=" ui-corner-"+(c?"right":"left");break;case g[1]-1:Q+=" ui-datepicker-group-last",P=" ui-corner-"+(c?"left":"right");break;default:Q+=" ui-datepicker-group-middle",P=""}Q+='">'}Q+='<div class="ui-datepicker-header ui-widget-header ui-helper-clearfix'+P+'">'+(/all|left/.test(P)&&L==0?c?t:r:"")+(/all|right/.test(P)&&L==0?c?r:t:"")+this._generateMonthYearHeader(a,n,o,l,m,L>0||N>0,D,E)+'</div><table class="ui-datepicker-calendar"><thead>'+"<tr>";var R=z?'<th class="ui-datepicker-week-col">'+this._get(a,"weekHeader")+"</th>":"";for(var S=0;S<7;S++){var T=(S+y)%7;R+="<th"+((S+y+6)%7>=5?' class="ui-datepicker-week-end"':"")+">"+'<span title="'+A[T]+'">'+C[T]+"</span></th>"}Q+=R+"</tr></thead><tbody>";var U=this._getDaysInMonth(o,n);o==a.selectedYear&&n==a.selectedMonth&&(a.selectedDay=Math.min(a.selectedDay,U));var V=(this._getFirstDayOfMonth(o,n)-y+7)%7,W=Math.ceil((V+U)/7),X=j?this.maxRows>W?this.maxRows:W:W;this.maxRows=X;var Y=this._daylightSavingAdjust(new Date(o,n,1-V));for(var Z=0;Z<X;Z++){Q+="<tr>";var _=z?'<td class="ui-datepicker-week-col">'+this._get(a,"calculateWeek")(Y)+"</td>":"";for(var S=0;S<7;S++){var ba=F?F.apply(a.input?a.input[0]:null,[Y]):[!0,""],bb=Y.getMonth()!=n,bc=bb&&!H||!ba[0]||l&&Y<l||m&&Y>m;_+='<td class="'+((S+y+6)%7>=5?" ui-datepicker-week-end":"")+(bb?" ui-datepicker-other-month":"")+(Y.getTime()==O.getTime()&&n==a.selectedMonth&&a._keyEvent||J.getTime()==Y.getTime()&&J.getTime()==O.getTime()?" "+this._dayOverClass:"")+(bc?" "+this._unselectableClass+" ui-state-disabled":"")+(bb&&!G?"":" "+ba[1]+(Y.getTime()==k.getTime()?" "+this._currentClass:"")+(Y.getTime()==b.getTime()?" ui-datepicker-today":""))+'"'+((!bb||G)&&ba[2]?' title="'+ba[2]+'"':"")+(bc?"":' onclick="DP_jQuery_'+dpuuid+".datepicker._selectDay('#"+a.id+"',"+Y.getMonth()+","+Y.getFullYear()+', this);return false;"')+">"+(bb&&!G?"&#xa0;":bc?'<span class="ui-state-default">'+Y.getDate()+"</span>":'<a class="ui-state-default'+(Y.getTime()==b.getTime()?" ui-state-highlight":"")+(Y.getTime()==k.getTime()?" ui-state-active":"")+(bb?" ui-priority-secondary":"")+'" href="#">'+Y.getDate()+"</a>")+"</td>",Y.setDate(Y.getDate()+1),Y=this._daylightSavingAdjust(Y)}Q+=_+"</tr>"}n++,n>11&&(n=0,o++),Q+="</tbody></table>"+(j?"</div>"+(g[0]>0&&N==g[1]-1?'<div class="ui-datepicker-row-break"></div>':""):""),M+=Q}K+=M}return K+=x+($.browser.msie&&parseInt($.browser.version,10)<7&&!a.inline?'<iframe src="javascript:false;" class="ui-datepicker-cover" frameborder="0"></iframe>':""),a._keyEvent=!1,K},_generateMonthYearHeader:function(a,b,c,d,e,f,g,h){var i=this._get(a,"changeMonth"),j=this._get(a,"changeYear"),k=this._get(a,"showMonthAfterYear"),l='<div class="ui-datepicker-title">',m="";if(f||!i)m+='<span class="ui-datepicker-month">'+g[b]+"</span>";else{var n=d&&d.getFullYear()==c,o=e&&e.getFullYear()==c;m+='<select class="ui-datepicker-month" onchange="DP_jQuery_'+dpuuid+".datepicker._selectMonthYear('#"+a.id+"', this, 'M');\" "+">";for(var p=0;p<12;p++)(!n||p>=d.getMonth())&&(!o||p<=e.getMonth())&&(m+='<option value="'+p+'"'+(p==b?' selected="selected"':"")+">"+h[p]+"</option>");m+="</select>"}k||(l+=m+(f||!i||!j?"&#xa0;":""));if(!a.yearshtml){a.yearshtml="";if(f||!j)l+='<span class="ui-datepicker-year">'+c+"</span>";else{var q=this._get(a,"yearRange").split(":"),r=(new Date).getFullYear(),s=function(a){var b=a.match(/c[+-].*/)?c+parseInt(a.substring(1),10):a.match(/[+-].*/)?r+parseInt(a,10):parseInt(a,10);return isNaN(b)?r:b},t=s(q[0]),u=Math.max(t,s(q[1]||""));t=d?Math.max(t,d.getFullYear()):t,u=e?Math.min(u,e.getFullYear()):u,a.yearshtml+='<select class="ui-datepicker-year" onchange="DP_jQuery_'+dpuuid+".datepicker._selectMonthYear('#"+a.id+"', this, 'Y');\" "+">";for(;t<=u;t++)a.yearshtml+='<option value="'+t+'"'+(t==c?' selected="selected"':"")+">"+t+"</option>";a.yearshtml+="</select>",l+=a.yearshtml,a.yearshtml=null}}return l+=this._get(a,"yearSuffix"),k&&(l+=(f||!i||!j?"&#xa0;":"")+m),l+="</div>",l},_adjustInstDate:function(a,b,c){var d=a.drawYear+(c=="Y"?b:0),e=a.drawMonth+(c=="M"?b:0),f=Math.min(a.selectedDay,this._getDaysInMonth(d,e))+(c=="D"?b:0),g=this._restrictMinMax(a,this._daylightSavingAdjust(new Date(d,e,f)));a.selectedDay=g.getDate(),a.drawMonth=a.selectedMonth=g.getMonth(),a.drawYear=a.selectedYear=g.getFullYear(),(c=="M"||c=="Y")&&this._notifyChange(a)},_restrictMinMax:function(a,b){var c=this._getMinMaxDate(a,"min"),d=this._getMinMaxDate(a,"max"),e=c&&b<c?c:b;return e=d&&e>d?d:e,e},_notifyChange:function(a){var b=this._get(a,"onChangeMonthYear");b&&b.apply(a.input?a.input[0]:null,[a.selectedYear,a.selectedMonth+1,a])},_getNumberOfMonths:function(a){var b=this._get(a,"numberOfMonths");return b==null?[1,1]:typeof b=="number"?[1,b]:b},_getMinMaxDate:function(a,b){return this._determineDate(a,this._get(a,b+"Date"),null)},_getDaysInMonth:function(a,b){return 32-this._daylightSavingAdjust(new Date(a,b,32)).getDate()},_getFirstDayOfMonth:function(a,b){return(new Date(a,b,1)).getDay()},_canAdjustMonth:function(a,b,c,d){var e=this._getNumberOfMonths(a),f=this._daylightSavingAdjust(new Date(c,d+(b<0?b:e[0]*e[1]),1));return b<0&&f.setDate(this._getDaysInMonth(f.getFullYear(),f.getMonth())),this._isInRange(a,f)},_isInRange:function(a,b){var c=this._getMinMaxDate(a,"min"),d=this._getMinMaxDate(a,"max");return(!c||b.getTime()>=c.getTime())&&(!d||b.getTime()<=d.getTime())},_getFormatConfig:function(a){var b=this._get(a,"shortYearCutoff");return b=typeof b!="string"?b:(new Date).getFullYear()%100+parseInt(b,10),{shortYearCutoff:b,dayNamesShort:this._get(a,"dayNamesShort"),dayNames:this._get(a,"dayNames"),monthNamesShort:this._get(a,"monthNamesShort"),monthNames:this._get(a,"monthNames")}},_formatDate:function(a,b,c,d){b||(a.currentDay=a.selectedDay,a.currentMonth=a.selectedMonth,a.currentYear=a.selectedYear);var e=b?typeof b=="object"?b:this._daylightSavingAdjust(new Date(d,c,b)):this._daylightSavingAdjust(new Date(a.currentYear,a.currentMonth,a.currentDay));return this.formatDate(this._get(a,"dateFormat"),e,this._getFormatConfig(a))}}),$.fn.datepicker=function(a){if(!this.length)return this;$.datepicker.initialized||($(document).mousedown($.datepicker._checkExternalClick).find("body").append($.datepicker.dpDiv),$.datepicker.initialized=!0);var b=Array.prototype.slice.call(arguments,1);return typeof a!="string"||a!="isDisabled"&&a!="getDate"&&a!="widget"?a=="option"&&arguments.length==2&&typeof arguments[1]=="string"?$.datepicker["_"+a+"Datepicker"].apply($.datepicker,[this[0]].concat(b)):this.each(function(){typeof a=="string"?$.datepicker["_"+a+"Datepicker"].apply($.datepicker,[this].concat(b)):$.datepicker._attachDatepicker(this,a)}):$.datepicker["_"+a+"Datepicker"].apply($.datepicker,[this[0]].concat(b))},$.datepicker=new Datepicker,$.datepicker.initialized=!1,$.datepicker.uuid=(new Date).getTime(),$.datepicker.version="1.8.21",window["DP_jQuery_"+dpuuid]=$})(jQuery);;/*! jQuery UI - v1.8.21 - 2012-06-05
-* https://github.com/jquery/jquery-ui
-* Includes: jquery.ui.progressbar.js
-* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */
-(function(a,b){a.widget("ui.progressbar",{options:{value:0,max:100},min:0,_create:function(){this.element.addClass("ui-progressbar ui-widget ui-widget-content ui-corner-all").attr({role:"progressbar","aria-valuemin":this.min,"aria-valuemax":this.options.max,"aria-valuenow":this._value()}),this.valueDiv=a("<div class='ui-progressbar-value ui-widget-header ui-corner-left'></div>").appendTo(this.element),this.oldValue=this._value(),this._refreshValue()},destroy:function(){this.element.removeClass("ui-progressbar ui-widget ui-widget-content ui-corner-all").removeAttr("role").removeAttr("aria-valuemin").removeAttr("aria-valuemax").removeAttr("aria-valuenow"),this.valueDiv.remove(),a.Widget.prototype.destroy.apply(this,arguments)},value:function(a){return a===b?this._value():(this._setOption("value",a),this)},_setOption:function(b,c){b==="value"&&(this.options.value=c,this._refreshValue(),this._value()===this.options.max&&this._trigger("complete")),a.Widget.prototype._setOption.apply(this,arguments)},_value:function(){var a=this.options.value;return typeof a!="number"&&(a=0),Math.min(this.options.max,Math.max(this.min,a))},_percentage:function(){return 100*this._value()/this.options.max},_refreshValue:function(){var a=this.value(),b=this._percentage();this.oldValue!==a&&(this.oldValue=a,this._trigger("change")),this.valueDiv.toggle(a>this.min).toggleClass("ui-corner-right",a===this.options.max).width(b.toFixed(0)+"%"),this.element.attr("aria-valuenow",a)}}),a.extend(a.ui.progressbar,{version:"1.8.21"})})(jQuery);;/*! jQuery UI - v1.8.21 - 2012-06-05
-* https://github.com/jquery/jquery-ui
-* Includes: jquery.effects.core.js
-* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */
-jQuery.effects||function(a,b){function c(b){var c;return b&&b.constructor==Array&&b.length==3?b:(c=/rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(b))?[parseInt(c[1],10),parseInt(c[2],10),parseInt(c[3],10)]:(c=/rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/.exec(b))?[parseFloat(c[1])*2.55,parseFloat(c[2])*2.55,parseFloat(c[3])*2.55]:(c=/#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(b))?[parseInt(c[1],16),parseInt(c[2],16),parseInt(c[3],16)]:(c=/#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(b))?[parseInt(c[1]+c[1],16),parseInt(c[2]+c[2],16),parseInt(c[3]+c[3],16)]:(c=/rgba\(0, 0, 0, 0\)/.exec(b))?e.transparent:e[a.trim(b).toLowerCase()]}function d(b,d){var e;do{e=a.curCSS(b,d);if(e!=""&&e!="transparent"||a.nodeName(b,"body"))break;d="backgroundColor"}while(b=b.parentNode);return c(e)}function h(){var a=document.defaultView?document.defaultView.getComputedStyle(this,null):this.currentStyle,b={},c,d;if(a&&a.length&&a[0]&&a[a[0]]){var e=a.length;while(e--)c=a[e],typeof a[c]=="string"&&(d=c.replace(/\-(\w)/g,function(a,b){return b.toUpperCase()}),b[d]=a[c])}else for(c in a)typeof a[c]=="string"&&(b[c]=a[c]);return b}function i(b){var c,d;for(c in b)d=b[c],(d==null||a.isFunction(d)||c in g||/scrollbar/.test(c)||!/color/i.test(c)&&isNaN(parseFloat(d)))&&delete b[c];return b}function j(a,b){var c={_:0},d;for(d in b)a[d]!=b[d]&&(c[d]=b[d]);return c}function k(b,c,d,e){typeof b=="object"&&(e=c,d=null,c=b,b=c.effect),a.isFunction(c)&&(e=c,d=null,c={});if(typeof c=="number"||a.fx.speeds[c])e=d,d=c,c={};return a.isFunction(d)&&(e=d,d=null),c=c||{},d=d||c.duration,d=a.fx.off?0:typeof d=="number"?d:d in a.fx.speeds?a.fx.speeds[d]:a.fx.speeds._default,e=e||c.complete,[b,c,d,e]}function l(b){return!b||typeof b=="number"||a.fx.speeds[b]?!0:typeof b=="string"&&!a.effects[b]?!0:!1}a.effects={},a.each(["backgroundColor","borderBottomColor","borderLeftColor","borderRightColor","borderTopColor","borderColor","color","outlineColor"],function(b,e){a.fx.step[e]=function(a){a.colorInit||(a.start=d(a.elem,e),a.end=c(a.end),a.colorInit=!0),a.elem.style[e]="rgb("+Math.max(Math.min(parseInt(a.pos*(a.end[0]-a.start[0])+a.start[0],10),255),0)+","+Math.max(Math.min(parseInt(a.pos*(a.end[1]-a.start[1])+a.start[1],10),255),0)+","+Math.max(Math.min(parseInt(a.pos*(a.end[2]-a.start[2])+a.start[2],10),255),0)+")"}});var e={aqua:[0,255,255],azure:[240,255,255],beige:[245,245,220],black:[0,0,0],blue:[0,0,255],brown:[165,42,42],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgrey:[169,169,169],darkgreen:[0,100,0],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkviolet:[148,0,211],fuchsia:[255,0,255],gold:[255,215,0],green:[0,128,0],indigo:[75,0,130],khaki:[240,230,140],lightblue:[173,216,230],lightcyan:[224,255,255],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightyellow:[255,255,224],lime:[0,255,0],magenta:[255,0,255],maroon:[128,0,0],navy:[0,0,128],olive:[128,128,0],orange:[255,165,0],pink:[255,192,203],purple:[128,0,128],violet:[128,0,128],red:[255,0,0],silver:[192,192,192],white:[255,255,255],yellow:[255,255,0],transparent:[255,255,255]},f=["add","remove","toggle"],g={border:1,borderBottom:1,borderColor:1,borderLeft:1,borderRight:1,borderTop:1,borderWidth:1,margin:1,padding:1};a.effects.animateClass=function(b,c,d,e){return a.isFunction(d)&&(e=d,d=null),this.queue(function(){var g=a(this),k=g.attr("style")||" ",l=i(h.call(this)),m,n=g.attr("class")||"";a.each(f,function(a,c){b[c]&&g[c+"Class"](b[c])}),m=i(h.call(this)),g.attr("class",n),g.animate(j(l,m),{queue:!1,duration:c,easing:d,complete:function(){a.each(f,function(a,c){b[c]&&g[c+"Class"](b[c])}),typeof g.attr("style")=="object"?(g.attr("style").cssText="",g.attr("style").cssText=k):g.attr("style",k),e&&e.apply(this,arguments),a.dequeue(this)}})})},a.fn.extend({_addClass:a.fn.addClass,addClass:function(b,c,d,e){return c?a.effects.animateClass.apply(this,[{add:b},c,d,e]):this._addClass(b)},_removeClass:a.fn.removeClass,removeClass:function(b,c,d,e){return c?a.effects.animateClass.apply(this,[{remove:b},c,d,e]):this._removeClass(b)},_toggleClass:a.fn.toggleClass,toggleClass:function(c,d,e,f,g){return typeof d=="boolean"||d===b?e?a.effects.animateClass.apply(this,[d?{add:c}:{remove:c},e,f,g]):this._toggleClass(c,d):a.effects.animateClass.apply(this,[{toggle:c},d,e,f])},switchClass:function(b,c,d,e,f){return a.effects.animateClass.apply(this,[{add:c,remove:b},d,e,f])}}),a.extend(a.effects,{version:"1.8.21",save:function(a,b){for(var c=0;c<b.length;c++)b[c]!==null&&a.data("ec.storage."+b[c],a[0].style[b[c]])},restore:function(a,b){for(var c=0;c<b.length;c++)b[c]!==null&&a.css(b[c],a.data("ec.storage."+b[c]))},setMode:function(a,b){return b=="toggle"&&(b=a.is(":hidden")?"show":"hide"),b},getBaseline:function(a,b){var c,d;switch(a[0]){case"top":c=0;break;case"middle":c=.5;break;case"bottom":c=1;break;default:c=a[0]/b.height}switch(a[1]){case"left":d=0;break;case"center":d=.5;break;case"right":d=1;break;default:d=a[1]/b.width}return{x:d,y:c}},createWrapper:function(b){if(b.parent().is(".ui-effects-wrapper"))return b.parent();var c={width:b.outerWidth(!0),height:b.outerHeight(!0),"float":b.css("float")},d=a("<div></div>").addClass("ui-effects-wrapper").css({fontSize:"100%",background:"transparent",border:"none",margin:0,padding:0}),e=document.activeElement;try{e.id}catch(f){e=document.body}return b.wrap(d),(b[0]===e||a.contains(b[0],e))&&a(e).focus(),d=b.parent(),b.css("position")=="static"?(d.css({position:"relative"}),b.css({position:"relative"})):(a.extend(c,{position:b.css("position"),zIndex:b.css("z-index")}),a.each(["top","left","bottom","right"],function(a,d){c[d]=b.css(d),isNaN(parseInt(c[d],10))&&(c[d]="auto")}),b.css({position:"relative",top:0,left:0,right:"auto",bottom:"auto"})),d.css(c).show()},removeWrapper:function(b){var c,d=document.activeElement;return b.parent().is(".ui-effects-wrapper")?(c=b.parent().replaceWith(b),(b[0]===d||a.contains(b[0],d))&&a(d).focus(),c):b},setTransition:function(b,c,d,e){return e=e||{},a.each(c,function(a,c){var f=b.cssUnit(c);f[0]>0&&(e[c]=f[0]*d+f[1])}),e}}),a.fn.extend({effect:function(b,c,d,e){var f=k.apply(this,arguments),g={options:f[1],duration:f[2],callback:f[3]},h=g.options.mode,i=a.effects[b];return a.fx.off||!i?h?this[h](g.duration,g.callback):this.each(function(){g.callback&&g.callback.call(this)}):i.call(this,g)},_show:a.fn.show,show:function(a){if(l(a))return this._show.apply(this,arguments);var b=k.apply(this,arguments);return b[1].mode="show",this.effect.apply(this,b)},_hide:a.fn.hide,hide:function(a){if(l(a))return this._hide.apply(this,arguments);var b=k.apply(this,arguments);return b[1].mode="hide",this.effect.apply(this,b)},__toggle:a.fn.toggle,toggle:function(b){if(l(b)||typeof b=="boolean"||a.isFunction(b))return this.__toggle.apply(this,arguments);var c=k.apply(this,arguments);return c[1].mode="toggle",this.effect.apply(this,c)},cssUnit:function(b){var c=this.css(b),d=[];return a.each(["em","px","%","pt"],function(a,b){c.indexOf(b)>0&&(d=[parseFloat(c),b])}),d}}),a.easing.jswing=a.easing.swing,a.extend(a.easing,{def:"easeOutQuad",swing:function(b,c,d,e,f){return a.easing[a.easing.def](b,c,d,e,f)},easeInQuad:function(a,b,c,d,e){return d*(b/=e)*b+c},easeOutQuad:function(a,b,c,d,e){return-d*(b/=e)*(b-2)+c},easeInOutQuad:function(a,b,c,d,e){return(b/=e/2)<1?d/2*b*b+c:-d/2*(--b*(b-2)-1)+c},easeInCubic:function(a,b,c,d,e){return d*(b/=e)*b*b+c},easeOutCubic:function(a,b,c,d,e){return d*((b=b/e-1)*b*b+1)+c},easeInOutCubic:function(a,b,c,d,e){return(b/=e/2)<1?d/2*b*b*b+c:d/2*((b-=2)*b*b+2)+c},easeInQuart:function(a,b,c,d,e){return d*(b/=e)*b*b*b+c},easeOutQuart:function(a,b,c,d,e){return-d*((b=b/e-1)*b*b*b-1)+c},easeInOutQuart:function(a,b,c,d,e){return(b/=e/2)<1?d/2*b*b*b*b+c:-d/2*((b-=2)*b*b*b-2)+c},easeInQuint:function(a,b,c,d,e){return d*(b/=e)*b*b*b*b+c},easeOutQuint:function(a,b,c,d,e){return d*((b=b/e-1)*b*b*b*b+1)+c},easeInOutQuint:function(a,b,c,d,e){return(b/=e/2)<1?d/2*b*b*b*b*b+c:d/2*((b-=2)*b*b*b*b+2)+c},easeInSine:function(a,b,c,d,e){return-d*Math.cos(b/e*(Math.PI/2))+d+c},easeOutSine:function(a,b,c,d,e){return d*Math.sin(b/e*(Math.PI/2))+c},easeInOutSine:function(a,b,c,d,e){return-d/2*(Math.cos(Math.PI*b/e)-1)+c},easeInExpo:function(a,b,c,d,e){return b==0?c:d*Math.pow(2,10*(b/e-1))+c},easeOutExpo:function(a,b,c,d,e){return b==e?c+d:d*(-Math.pow(2,-10*b/e)+1)+c},easeInOutExpo:function(a,b,c,d,e){return b==0?c:b==e?c+d:(b/=e/2)<1?d/2*Math.pow(2,10*(b-1))+c:d/2*(-Math.pow(2,-10*--b)+2)+c},easeInCirc:function(a,b,c,d,e){return-d*(Math.sqrt(1-(b/=e)*b)-1)+c},easeOutCirc:function(a,b,c,d,e){return d*Math.sqrt(1-(b=b/e-1)*b)+c},easeInOutCirc:function(a,b,c,d,e){return(b/=e/2)<1?-d/2*(Math.sqrt(1-b*b)-1)+c:d/2*(Math.sqrt(1-(b-=2)*b)+1)+c},easeInElastic:function(a,b,c,d,e){var f=1.70158,g=0,h=d;if(b==0)return c;if((b/=e)==1)return c+d;g||(g=e*.3);if(h<Math.abs(d)){h=d;var f=g/4}else var f=g/(2*Math.PI)*Math.asin(d/h);return-(h*Math.pow(2,10*(b-=1))*Math.sin((b*e-f)*2*Math.PI/g))+c},easeOutElastic:function(a,b,c,d,e){var f=1.70158,g=0,h=d;if(b==0)return c;if((b/=e)==1)return c+d;g||(g=e*.3);if(h<Math.abs(d)){h=d;var f=g/4}else var f=g/(2*Math.PI)*Math.asin(d/h);return h*Math.pow(2,-10*b)*Math.sin((b*e-f)*2*Math.PI/g)+d+c},easeInOutElastic:function(a,b,c,d,e){var f=1.70158,g=0,h=d;if(b==0)return c;if((b/=e/2)==2)return c+d;g||(g=e*.3*1.5);if(h<Math.abs(d)){h=d;var f=g/4}else var f=g/(2*Math.PI)*Math.asin(d/h);return b<1?-0.5*h*Math.pow(2,10*(b-=1))*Math.sin((b*e-f)*2*Math.PI/g)+c:h*Math.pow(2,-10*(b-=1))*Math.sin((b*e-f)*2*Math.PI/g)*.5+d+c},easeInBack:function(a,c,d,e,f,g){return g==b&&(g=1.70158),e*(c/=f)*c*((g+1)*c-g)+d},easeOutBack:function(a,c,d,e,f,g){return g==b&&(g=1.70158),e*((c=c/f-1)*c*((g+1)*c+g)+1)+d},easeInOutBack:function(a,c,d,e,f,g){return g==b&&(g=1.70158),(c/=f/2)<1?e/2*c*c*(((g*=1.525)+1)*c-g)+d:e/2*((c-=2)*c*(((g*=1.525)+1)*c+g)+2)+d},easeInBounce:function(b,c,d,e,f){return e-a.easing.easeOutBounce(b,f-c,0,e,f)+d},easeOutBounce:function(a,b,c,d,e){return(b/=e)<1/2.75?d*7.5625*b*b+c:b<2/2.75?d*(7.5625*(b-=1.5/2.75)*b+.75)+c:b<2.5/2.75?d*(7.5625*(b-=2.25/2.75)*b+.9375)+c:d*(7.5625*(b-=2.625/2.75)*b+.984375)+c},easeInOutBounce:function(b,c,d,e,f){return c<f/2?a.easing.easeInBounce(b,c*2,0,e,f)*.5+d:a.easing.easeOutBounce(b,c*2-f,0,e,f)*.5+e*.5+d}})}(jQuery);;/*! jQuery UI - v1.8.21 - 2012-06-05
-* https://github.com/jquery/jquery-ui
-* Includes: jquery.effects.blind.js
-* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */
-(function(a,b){a.effects.blind=function(b){return this.queue(function(){var c=a(this),d=["position","top","bottom","left","right"],e=a.effects.setMode(c,b.options.mode||"hide"),f=b.options.direction||"vertical";a.effects.save(c,d),c.show();var g=a.effects.createWrapper(c).css({overflow:"hidden"}),h=f=="vertical"?"height":"width",i=f=="vertical"?g.height():g.width();e=="show"&&g.css(h,0);var j={};j[h]=e=="show"?i:0,g.animate(j,b.duration,b.options.easing,function(){e=="hide"&&c.hide(),a.effects.restore(c,d),a.effects.removeWrapper(c),b.callback&&b.callback.apply(c[0],arguments),c.dequeue()})})}})(jQuery);;/*! jQuery UI - v1.8.21 - 2012-06-05
-* https://github.com/jquery/jquery-ui
-* Includes: jquery.effects.bounce.js
-* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */
-(function(a,b){a.effects.bounce=function(b){return this.queue(function(){var c=a(this),d=["position","top","bottom","left","right"],e=a.effects.setMode(c,b.options.mode||"effect"),f=b.options.direction||"up",g=b.options.distance||20,h=b.options.times||5,i=b.duration||250;/show|hide/.test(e)&&d.push("opacity"),a.effects.save(c,d),c.show(),a.effects.createWrapper(c);var j=f=="up"||f=="down"?"top":"left",k=f=="up"||f=="left"?"pos":"neg",g=b.options.distance||(j=="top"?c.outerHeight({margin:!0})/3:c.outerWidth({margin:!0})/3);e=="show"&&c.css("opacity",0).css(j,k=="pos"?-g:g),e=="hide"&&(g=g/(h*2)),e!="hide"&&h--;if(e=="show"){var l={opacity:1};l[j]=(k=="pos"?"+=":"-=")+g,c.animate(l,i/2,b.options.easing),g=g/2,h--}for(var m=0;m<h;m++){var n={},p={};n[j]=(k=="pos"?"-=":"+=")+g,p[j]=(k=="pos"?"+=":"-=")+g,c.animate(n,i/2,b.options.easing).animate(p,i/2,b.options.easing),g=e=="hide"?g*2:g/2}if(e=="hide"){var l={opacity:0};l[j]=(k=="pos"?"-=":"+=")+g,c.animate(l,i/2,b.options.easing,function(){c.hide(),a.effects.restore(c,d),a.effects.removeWrapper(c),b.callback&&b.callback.apply(this,arguments)})}else{var n={},p={};n[j]=(k=="pos"?"-=":"+=")+g,p[j]=(k=="pos"?"+=":"-=")+g,c.animate(n,i/2,b.options.easing).animate(p,i/2,b.options.easing,function(){a.effects.restore(c,d),a.effects.removeWrapper(c),b.callback&&b.callback.apply(this,arguments)})}c.queue("fx",function(){c.dequeue()}),c.dequeue()})}})(jQuery);;/*! jQuery UI - v1.8.21 - 2012-06-05
-* https://github.com/jquery/jquery-ui
-* Includes: jquery.effects.clip.js
-* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */
-(function(a,b){a.effects.clip=function(b){return this.queue(function(){var c=a(this),d=["position","top","bottom","left","right","height","width"],e=a.effects.setMode(c,b.options.mode||"hide"),f=b.options.direction||"vertical";a.effects.save(c,d),c.show();var g=a.effects.createWrapper(c).css({overflow:"hidden"}),h=c[0].tagName=="IMG"?g:c,i={size:f=="vertical"?"height":"width",position:f=="vertical"?"top":"left"},j=f=="vertical"?h.height():h.width();e=="show"&&(h.css(i.size,0),h.css(i.position,j/2));var k={};k[i.size]=e=="show"?j:0,k[i.position]=e=="show"?0:j/2,h.animate(k,{queue:!1,duration:b.duration,easing:b.options.easing,complete:function(){e=="hide"&&c.hide(),a.effects.restore(c,d),a.effects.removeWrapper(c),b.callback&&b.callback.apply(c[0],arguments),c.dequeue()}})})}})(jQuery);;/*! jQuery UI - v1.8.21 - 2012-06-05
-* https://github.com/jquery/jquery-ui
-* Includes: jquery.effects.drop.js
-* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */
-(function(a,b){a.effects.drop=function(b){return this.queue(function(){var c=a(this),d=["position","top","bottom","left","right","opacity"],e=a.effects.setMode(c,b.options.mode||"hide"),f=b.options.direction||"left";a.effects.save(c,d),c.show(),a.effects.createWrapper(c);var g=f=="up"||f=="down"?"top":"left",h=f=="up"||f=="left"?"pos":"neg",i=b.options.distance||(g=="top"?c.outerHeight({margin:!0})/2:c.outerWidth({margin:!0})/2);e=="show"&&c.css("opacity",0).css(g,h=="pos"?-i:i);var j={opacity:e=="show"?1:0};j[g]=(e=="show"?h=="pos"?"+=":"-=":h=="pos"?"-=":"+=")+i,c.animate(j,{queue:!1,duration:b.duration,easing:b.options.easing,complete:function(){e=="hide"&&c.hide(),a.effects.restore(c,d),a.effects.removeWrapper(c),b.callback&&b.callback.apply(this,arguments),c.dequeue()}})})}})(jQuery);;/*! jQuery UI - v1.8.21 - 2012-06-05
-* https://github.com/jquery/jquery-ui
-* Includes: jquery.effects.explode.js
-* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */
-(function(a,b){a.effects.explode=function(b){return this.queue(function(){var c=b.options.pieces?Math.round(Math.sqrt(b.options.pieces)):3,d=b.options.pieces?Math.round(Math.sqrt(b.options.pieces)):3;b.options.mode=b.options.mode=="toggle"?a(this).is(":visible")?"hide":"show":b.options.mode;var e=a(this).show().css("visibility","hidden"),f=e.offset();f.top-=parseInt(e.css("marginTop"),10)||0,f.left-=parseInt(e.css("marginLeft"),10)||0;var g=e.outerWidth(!0),h=e.outerHeight(!0);for(var i=0;i<c;i++)for(var j=0;j<d;j++)e.clone().appendTo("body").wrap("<div></div>").css({position:"absolute",visibility:"visible",left:-j*(g/d),top:-i*(h/c)}).parent().addClass("ui-effects-explode").css({position:"absolute",overflow:"hidden",width:g/d,height:h/c,left:f.left+j*(g/d)+(b.options.mode=="show"?(j-Math.floor(d/2))*(g/d):0),top:f.top+i*(h/c)+(b.options.mode=="show"?(i-Math.floor(c/2))*(h/c):0),opacity:b.options.mode=="show"?0:1}).animate({left:f.left+j*(g/d)+(b.options.mode=="show"?0:(j-Math.floor(d/2))*(g/d)),top:f.top+i*(h/c)+(b.options.mode=="show"?0:(i-Math.floor(c/2))*(h/c)),opacity:b.options.mode=="show"?1:0},b.duration||500);setTimeout(function(){b.options.mode=="show"?e.css({visibility:"visible"}):e.css({visibility:"visible"}).hide(),b.callback&&b.callback.apply(e[0]),e.dequeue(),a("div.ui-effects-explode").remove()},b.duration||500)})}})(jQuery);;/*! jQuery UI - v1.8.21 - 2012-06-05
-* https://github.com/jquery/jquery-ui
-* Includes: jquery.effects.fade.js
-* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */
-(function(a,b){a.effects.fade=function(b){return this.queue(function(){var c=a(this),d=a.effects.setMode(c,b.options.mode||"hide");c.animate({opacity:d},{queue:!1,duration:b.duration,easing:b.options.easing,complete:function(){b.callback&&b.callback.apply(this,arguments),c.dequeue()}})})}})(jQuery);;/*! jQuery UI - v1.8.21 - 2012-06-05
-* https://github.com/jquery/jquery-ui
-* Includes: jquery.effects.fold.js
-* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */
-(function(a,b){a.effects.fold=function(b){return this.queue(function(){var c=a(this),d=["position","top","bottom","left","right"],e=a.effects.setMode(c,b.options.mode||"hide"),f=b.options.size||15,g=!!b.options.horizFirst,h=b.duration?b.duration/2:a.fx.speeds._default/2;a.effects.save(c,d),c.show();var i=a.effects.createWrapper(c).css({overflow:"hidden"}),j=e=="show"!=g,k=j?["width","height"]:["height","width"],l=j?[i.width(),i.height()]:[i.height(),i.width()],m=/([0-9]+)%/.exec(f);m&&(f=parseInt(m[1],10)/100*l[e=="hide"?0:1]),e=="show"&&i.css(g?{height:0,width:f}:{height:f,width:0});var n={},p={};n[k[0]]=e=="show"?l[0]:f,p[k[1]]=e=="show"?l[1]:0,i.animate(n,h,b.options.easing).animate(p,h,b.options.easing,function(){e=="hide"&&c.hide(),a.effects.restore(c,d),a.effects.removeWrapper(c),b.callback&&b.callback.apply(c[0],arguments),c.dequeue()})})}})(jQuery);;/*! jQuery UI - v1.8.21 - 2012-06-05
-* https://github.com/jquery/jquery-ui
-* Includes: jquery.effects.highlight.js
-* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */
-(function(a,b){a.effects.highlight=function(b){return this.queue(function(){var c=a(this),d=["backgroundImage","backgroundColor","opacity"],e=a.effects.setMode(c,b.options.mode||"show"),f={backgroundColor:c.css("backgroundColor")};e=="hide"&&(f.opacity=0),a.effects.save(c,d),c.show().css({backgroundImage:"none",backgroundColor:b.options.color||"#ffff99"}).animate(f,{queue:!1,duration:b.duration,easing:b.options.easing,complete:function(){e=="hide"&&c.hide(),a.effects.restore(c,d),e=="show"&&!a.support.opacity&&this.style.removeAttribute("filter"),b.callback&&b.callback.apply(this,arguments),c.dequeue()}})})}})(jQuery);;/*! jQuery UI - v1.8.21 - 2012-06-05
-* https://github.com/jquery/jquery-ui
-* Includes: jquery.effects.pulsate.js
-* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */
-(function(a,b){a.effects.pulsate=function(b){return this.queue(function(){var c=a(this),d=a.effects.setMode(c,b.options.mode||"show"),e=(b.options.times||5)*2-1,f=b.duration?b.duration/2:a.fx.speeds._default/2,g=c.is(":visible"),h=0;g||(c.css("opacity",0).show(),h=1),(d=="hide"&&g||d=="show"&&!g)&&e--;for(var i=0;i<e;i++)c.animate({opacity:h},f,b.options.easing),h=(h+1)%2;c.animate({opacity:h},f,b.options.easing,function(){h==0&&c.hide(),b.callback&&b.callback.apply(this,arguments)}),c.queue("fx",function(){c.dequeue()}).dequeue()})}})(jQuery);;/*! jQuery UI - v1.8.21 - 2012-06-05
-* https://github.com/jquery/jquery-ui
-* Includes: jquery.effects.scale.js
-* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */
-(function(a,b){a.effects.puff=function(b){return this.queue(function(){var c=a(this),d=a.effects.setMode(c,b.options.mode||"hide"),e=parseInt(b.options.percent,10)||150,f=e/100,g={height:c.height(),width:c.width()};a.extend(b.options,{fade:!0,mode:d,percent:d=="hide"?e:100,from:d=="hide"?g:{height:g.height*f,width:g.width*f}}),c.effect("scale",b.options,b.duration,b.callback),c.dequeue()})},a.effects.scale=function(b){return this.queue(function(){var c=a(this),d=a.extend(!0,{},b.options),e=a.effects.setMode(c,b.options.mode||"effect"),f=parseInt(b.options.percent,10)||(parseInt(b.options.percent,10)==0?0:e=="hide"?0:100),g=b.options.direction||"both",h=b.options.origin;e!="effect"&&(d.origin=h||["middle","center"],d.restore=!0);var i={height:c.height(),width:c.width()};c.from=b.options.from||(e=="show"?{height:0,width:0}:i);var j={y:g!="horizontal"?f/100:1,x:g!="vertical"?f/100:1};c.to={height:i.height*j.y,width:i.width*j.x},b.options.fade&&(e=="show"&&(c.from.opacity=0,c.to.opacity=1),e=="hide"&&(c.from.opacity=1,c.to.opacity=0)),d.from=c.from,d.to=c.to,d.mode=e,c.effect("size",d,b.duration,b.callback),c.dequeue()})},a.effects.size=function(b){return this.queue(function(){var c=a(this),d=["position","top","bottom","left","right","width","height","overflow","opacity"],e=["position","top","bottom","left","right","overflow","opacity"],f=["width","height","overflow"],g=["fontSize"],h=["borderTopWidth","borderBottomWidth","paddingTop","paddingBottom"],i=["borderLeftWidth","borderRightWidth","paddingLeft","paddingRight"],j=a.effects.setMode(c,b.options.mode||"effect"),k=b.options.restore||!1,l=b.options.scale||"both",m=b.options.origin,n={height:c.height(),width:c.width()};c.from=b.options.from||n,c.to=b.options.to||n;if(m){var p=a.effects.getBaseline(m,n);c.from.top=(n.height-c.from.height)*p.y,c.from.left=(n.width-c.from.width)*p.x,c.to.top=(n.height-c.to.height)*p.y,c.to.left=(n.width-c.to.width)*p.x}var q={from:{y:c.from.height/n.height,x:c.from.width/n.width},to:{y:c.to.height/n.height,x:c.to.width/n.width}};if(l=="box"||l=="both")q.from.y!=q.to.y&&(d=d.concat(h),c.from=a.effects.setTransition(c,h,q.from.y,c.from),c.to=a.effects.setTransition(c,h,q.to.y,c.to)),q.from.x!=q.to.x&&(d=d.concat(i),c.from=a.effects.setTransition(c,i,q.from.x,c.from),c.to=a.effects.setTransition(c,i,q.to.x,c.to));(l=="content"||l=="both")&&q.from.y!=q.to.y&&(d=d.concat(g),c.from=a.effects.setTransition(c,g,q.from.y,c.from),c.to=a.effects.setTransition(c,g,q.to.y,c.to)),a.effects.save(c,k?d:e),c.show(),a.effects.createWrapper(c),c.css("overflow","hidden").css(c.from);if(l=="content"||l=="both")h=h.concat(["marginTop","marginBottom"]).concat(g),i=i.concat(["marginLeft","marginRight"]),f=d.concat(h).concat(i),c.find("*[width]").each(function(){var c=a(this);k&&a.effects.save(c,f);var d={height:c.height(),width:c.width()};c.from={height:d.height*q.from.y,width:d.width*q.from.x},c.to={height:d.height*q.to.y,width:d.width*q.to.x},q.from.y!=q.to.y&&(c.from=a.effects.setTransition(c,h,q.from.y,c.from),c.to=a.effects.setTransition(c,h,q.to.y,c.to)),q.from.x!=q.to.x&&(c.from=a.effects.setTransition(c,i,q.from.x,c.from),c.to=a.effects.setTransition(c,i,q.to.x,c.to)),c.css(c.from),c.animate(c.to,b.duration,b.options.easing,function(){k&&a.effects.restore(c,f)})});c.animate(c.to,{queue:!1,duration:b.duration,easing:b.options.easing,complete:function(){c.to.opacity===0&&c.css("opacity",c.from.opacity),j=="hide"&&c.hide(),a.effects.restore(c,k?d:e),a.effects.removeWrapper(c),b.callback&&b.callback.apply(this,arguments),c.dequeue()}})})}})(jQuery);;/*! jQuery UI - v1.8.21 - 2012-06-05
-* https://github.com/jquery/jquery-ui
-* Includes: jquery.effects.shake.js
-* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */
-(function(a,b){a.effects.shake=function(b){return this.queue(function(){var c=a(this),d=["position","top","bottom","left","right"],e=a.effects.setMode(c,b.options.mode||"effect"),f=b.options.direction||"left",g=b.options.distance||20,h=b.options.times||3,i=b.duration||b.options.duration||140;a.effects.save(c,d),c.show(),a.effects.createWrapper(c);var j=f=="up"||f=="down"?"top":"left",k=f=="up"||f=="left"?"pos":"neg",l={},m={},n={};l[j]=(k=="pos"?"-=":"+=")+g,m[j]=(k=="pos"?"+=":"-=")+g*2,n[j]=(k=="pos"?"-=":"+=")+g*2,c.animate(l,i,b.options.easing);for(var p=1;p<h;p++)c.animate(m,i,b.options.easing).animate(n,i,b.options.easing);c.animate(m,i,b.options.easing).animate(l,i/2,b.options.easing,function(){a.effects.restore(c,d),a.effects.removeWrapper(c),b.callback&&b.callback.apply(this,arguments)}),c.queue("fx",function(){c.dequeue()}),c.dequeue()})}})(jQuery);;/*! jQuery UI - v1.8.21 - 2012-06-05
-* https://github.com/jquery/jquery-ui
-* Includes: jquery.effects.slide.js
-* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */
-(function(a,b){a.effects.slide=function(b){return this.queue(function(){var c=a(this),d=["position","top","bottom","left","right"],e=a.effects.setMode(c,b.options.mode||"show"),f=b.options.direction||"left";a.effects.save(c,d),c.show(),a.effects.createWrapper(c).css({overflow:"hidden"});var g=f=="up"||f=="down"?"top":"left",h=f=="up"||f=="left"?"pos":"neg",i=b.options.distance||(g=="top"?c.outerHeight({margin:!0}):c.outerWidth({margin:!0}));e=="show"&&c.css(g,h=="pos"?isNaN(i)?"-"+i:-i:i);var j={};j[g]=(e=="show"?h=="pos"?"+=":"-=":h=="pos"?"-=":"+=")+i,c.animate(j,{queue:!1,duration:b.duration,easing:b.options.easing,complete:function(){e=="hide"&&c.hide(),a.effects.restore(c,d),a.effects.removeWrapper(c),b.callback&&b.callback.apply(this,arguments),c.dequeue()}})})}})(jQuery);;/*! jQuery UI - v1.8.21 - 2012-06-05
-* https://github.com/jquery/jquery-ui
-* Includes: jquery.effects.transfer.js
-* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */
-(function(a,b){a.effects.transfer=function(b){return this.queue(function(){var c=a(this),d=a(b.options.to),e=d.offset(),f={top:e.top,left:e.left,height:d.innerHeight(),width:d.innerWidth()},g=c.offset(),h=a('<div class="ui-effects-transfer"></div>').appendTo(document.body).addClass(b.options.className).css({top:g.top,left:g.left,height:c.innerHeight(),width:c.innerWidth(),position:"absolute"}).animate(f,b.duration,b.options.easing,function(){h.remove(),b.callback&&b.callback.apply(c[0],arguments),c.dequeue()})})}})(jQuery);;
\ No newline at end of file
Binary file web/wp-content/plugins/duplicator/lang/WPDuplicator-de_DE.mo has changed
--- a/web/wp-content/plugins/duplicator/lang/wpduplicator-de_DE.po	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-content/plugins/duplicator/lang/wpduplicator-de_DE.po	Wed Dec 19 17:46:52 2012 -0800
@@ -1,1284 +1,1161 @@
 msgid ""
 msgstr ""
-"Project-Id-Version: Duplicator v0.3.1\n"
+"Project-Id-Version: Duplicator v0.4.0\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2012-08-29 07:53-0700\n"
-"PO-Revision-Date: 2012-08-29 08:03-0700\n"
+"POT-Creation-Date: 2012-09-13 21:17-0700\n"
+"PO-Revision-Date: 2012-11-07 14:28:14+0000\n"
 "Last-Translator: Cory Lamle <cory@lifeinthegrid.com>\n"
 "Language-Team: \n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
 "Plural-Forms: nplurals=2; plural=n != 1;\n"
+"X-Poedit-Language: \n"
+"X-Poedit-Country: \n"
 "X-Poedit-SourceCharset: utf-8\n"
-"X-Poedit-KeywordsList: __;_e;__ngettext:1,2;_n:1,2;__ngettext_noop:1,2;"
-"_n_noop:1,2;_c,_nc:4c,1,2;_x:1,2c;_ex:1,2c;_nx:4c,1,2;_nx_noop:4c,1,2\n"
+"X-Poedit-KeywordsList: __;_e;__ngettext:1,2;_n:1,2;__ngettext_noop:1,2;_n_noop:1,2;_c,_nc:4c,1,2;_x:1,2c;_ex:1,2c;_nx:4c,1,2;_nx_noop:4c,1,2;\n"
 "X-Poedit-Basepath: ../\n"
-"X-Textdomain-Support: yes\n"
+"X-Poedit-Bookmarks: \n"
 "X-Poedit-SearchPath-0: .\n"
+"X-Textdomain-Support: yes"
 
-# @ wpduplicator
-#: duplicator.php:194 inc/page.about.php:141
+#: duplicator.php:197
+#: inc/page.about.php:144
+#@ wpduplicator
 msgid "FAQ"
 msgstr "Häufig gestellte Fragen"
 
-# @ wpduplicator
-#: duplicator.php:195
+#: duplicator.php:198
+#@ wpduplicator
 msgid "Partner"
 msgstr "Partner"
 
-# @ wpduplicator
-#: duplicator.php:196
+#: duplicator.php:199
 #, fuzzy
+#@ wpduplicator
 msgid "Approved Hosts"
 msgstr "Zertifizierte Hosts"
 
-# @ wpduplicator
-#: duplicator.php:246 inc/page.main.php:32
+#: duplicator.php:249
+#: inc/page.main.php:35
+#@ wpduplicator
 msgid "Dashboard"
 msgstr "Dashboard"
 
-# @ wpduplicator
-#: duplicator.php:248 inc/page.diag.php:21
+#: duplicator.php:251
+#: inc/page.diag.php:24
+#@ wpduplicator
 msgid "Diagnostics"
-msgstr "Diagnose"
+msgstr "PHP Info"
 
-# @ wpduplicator
-#: duplicator.php:249 inc/page.about.php:21 inc/page.diag.php:25
-#: inc/page.main.php:36 inc/page.support.php:10
+#: duplicator.php:252
+#: inc/page.about.php:24
+#: inc/page.diag.php:28
+#: inc/page.main.php:39
+#: inc/page.support.php:10
+#@ wpduplicator
 msgid "Support"
-msgstr "unterstützen"
+msgstr "Unterstützen"
 
-# @ wpduplicator
-#: duplicator.php:250 inc/page.diag.php:26 inc/page.main.php:37
+#: duplicator.php:253
+#: inc/page.diag.php:29
+#: inc/page.main.php:40
 #: inc/page.support.php:14
+#@ wpduplicator
 msgid "All About"
-msgstr ""
+msgstr "Über"
 
-# @ wpduplicator
-#: duplicator.php:284
+#: duplicator.php:287
+#@ wpduplicator
 msgid "Manage"
 msgstr "Verwalten"
 
-# @ wpduplicator
 #: files/log-read.php:45
+#@ wpduplicator
 msgid "Log file not found or unreadable"
 msgstr "Log-Datei nicht gefunden oder nicht lesbar"
 
-# @ wpduplicator
 #: files/log-read.php:47
 #, fuzzy
-msgid ""
-"The log file for the Duplicator Plugin can be found in the snapshots "
-"directory with the extension *.log"
-msgstr ""
-"Die Log-Datei für das Plugin Duplicator befindet sichim Verzeichnis wp-"
-"snapshots mit der Endung *.log"
+#@ wpduplicator
+msgid "The log file for the Duplicator Plugin can be found in the snapshots directory with the extension *.log"
+msgstr "Die Log-Datei für das Plugin Duplicator befindet sich im Verzeichnis wp-snapshots mit der Endung *.log"
 
-# @ wpduplicator
 #: files/log-read.php:48
+#@ wpduplicator
 msgid "If no log file is present the try to create a package"
 msgstr "Wenn keine Log-Datei vorhanden ist, erstelle zuerst ein Archiv"
 
-# @ wpduplicator
 #: files/log-read.php:50
+#@ wpduplicator
 msgid "Reasons for log file not showing"
 msgstr "Die Gründe für die Log-Datei werden nicht angezeigt"
 
-# @ wpduplicator
 #: files/log-read.php:51
+#@ wpduplicator
 msgid "The web server does not support returning .log file extentions"
-msgstr ""
-"Der Webserver unterstützt keine wiederkehrenden .log-Datei-Erweiterungen"
+msgstr "Der Webserver unterstützt keine .log-Datei-Erweiterungen"
 
-# @ wpduplicator
 #: files/log-read.php:52
-msgid ""
-"The snapshots directory does not have the correct permissions to write "
-"files.  Try setting the permissions to 755"
-msgstr ""
-"In das Verzeichnis wp-snapshots kann nich geschrieben werden. Bitte setze "
-"die Berechtigung auf 755"
+#@ wpduplicator
+msgid "The snapshots directory does not have the correct permissions to write files.  Try setting the permissions to 755"
+msgstr "In das Verzeichnis wp-snapshots kann nicht geschrieben werden. Bitte setze die Berechtigung auf 755"
 
-# @ wpduplicator
 #: files/log-read.php:53
-msgid ""
-"The process that PHP runs under does not have enough permissions to create "
-"files.  Please contact your hosting provider for more details"
-msgstr ""
-"Der Prozess hat nicht genügend Berechtigungen, um Dateien zu erstellen. "
-"Bitte kontaktiere deinen Hosting-Provider für weitere Informationen"
+#@ wpduplicator
+msgid "The process that PHP runs under does not have enough permissions to create files.  Please contact your hosting provider for more details"
+msgstr "Der Prozess hat nicht genügend Berechtigungen, um Dateien zu erstellen. Bitte kontaktiere deinen Hosting-Provider für weitere Informationen"
 
-# @ wpduplicator
 #: files/log-view.php:100
+#@ wpduplicator
 msgid "Duplicator: Create Package Log"
 msgstr "Duplicator: Erstellen eines Archiv Log"
 
-# @ wpduplicator
 #: files/log-view.php:103
-msgid ""
-"Processing may take several minutes, please wait for progress bar to "
-"complete on the main status bar"
-msgstr ""
-"Die Verarbeitung kann einige Minuten dauern. Bitte warten, bis der "
-"Fortschrittsbalken verschwunden ist."
+#@ wpduplicator
+msgid "Processing may take several minutes, please wait for progress bar to complete on the main status bar"
+msgstr "Die Verarbeitung kann einige Minuten dauern. Bitte warten, bis der Fortschrittsbalken die Beendigung anzeigt."
 
-# @ wpduplicator
 #: files/log-view.php:108
+#@ wpduplicator
 msgid "Auto Refresh"
 msgstr "Automatisch neu laden"
 
-# @ wpduplicator
 #: files/log-view.php:109
+#@ wpduplicator
 msgid "Refresh"
 msgstr "Neu laden"
 
-# @ wpduplicator
 #: files/log-view.php:117
+#@ wpduplicator
 msgid "Support Center"
 msgstr "Support-Center"
 
-# @ wpduplicator
 #: files/log-view.php:118
-msgid ""
-"Do NOT post this data to public sites like the WordPress.org forums as it "
-"contains sensitive data."
-msgstr ""
-"Diesen Inhalt NICHT an öffentlichen Stellen wie die WordPress.org Foren "
-"eingeben, da er sensible Daten enthält."
+#@ wpduplicator
+msgid "Do NOT post this data to public sites like the WordPress.org forums as it contains sensitive data."
+msgstr "Diesen Inhalt NICHT an öffentlichen Stellen wie die WordPress.org Foren eingeben, da er sensible Daten enthält."
 
-# @ wpduplicator
 #: inc/javascript.php:133
+#@ wpduplicator
 msgid "Saving"
 msgstr "Sichern"
 
-# @ wpduplicator
 #: inc/javascript.php:154
+#@ wpduplicator
 msgid "Please select at least one package to delete."
 msgstr "Bitte wähle mindestens ein Archiv zum Löschen."
 
-# @ wpduplicator
 #: inc/javascript.php:158
+#@ wpduplicator
 msgid "Are you sure, you want to delete the selected package(s)?"
 msgstr "Ausgewählte Archive wirklich löschen?"
 
-# @ wpduplicator
-#: inc/javascript.php:174 inc/javascript.php:213 inc/javascript.php:322
-#: inc/javascript.php:422 inc/javascript.php:441
+#: inc/javascript.php:174
+#: inc/javascript.php:213
+#: inc/javascript.php:328
+#: inc/javascript.php:428
+#: inc/javascript.php:447
+#@ wpduplicator
 msgid "Ready to create new package."
-msgstr "Bereit zum Erstellen eines neuen Archivs."
+msgstr "Bereit zum Erstellen eines neuen Archivs"
 
-# @ wpduplicator
 #: inc/javascript.php:189
+#@ wpduplicator
 msgid "Please enter a backup name."
 msgstr "Bitte einen Namen für die Sicherungskopie eingeben."
 
-# @ wpduplicator
 #: inc/javascript.php:197
+#@ wpduplicator
 msgid "Alpanumeric characters only on package name"
-msgstr "Nur Alphanumerische Zeichen erlaubt"
+msgstr "Nur alphanumerische Zeichen erlaubt"
 
-# @ wpduplicator
 #: inc/javascript.php:210
+#@ wpduplicator
 msgid "Evaluating WordPress Setup. Please Wait"
 msgstr "Auswerten der WordPress-Einstellungen. Bitte warten"
 
-# @ wpduplicator
 #: inc/javascript.php:276
+#@ wpduplicator
 msgid "Cancel"
 msgstr "Abbrechen"
 
-# @ wpduplicator
 #: inc/javascript.php:282
+#@ wpduplicator
 msgid "Create Package Set"
 msgstr "Erzeuge Archiv Set"
 
-# @ wpduplicator
-#: inc/javascript.php:327
+#: inc/javascript.php:333
+#@ wpduplicator
 msgid "Checking System Status.  Please Wait!"
 msgstr "Prüfen des System-Status. Bitte warten!"
 
-# @ wpduplicator
-#: inc/javascript.php:353
+#: inc/javascript.php:359
+#@ wpduplicator
 msgid "Scanning Please Wait"
 msgstr "Scannen. Bitte warten"
 
-# @ wpduplicator
-#: inc/javascript.php:358 inc/javascript.php:359 inc/javascript.php:360
+#: inc/javascript.php:364
+#: inc/javascript.php:365
+#: inc/javascript.php:366
+#@ wpduplicator
 msgid "unreadable"
 msgstr "unleserlich"
 
-# @ wpduplicator
-#: inc/javascript.php:361
+#: inc/javascript.php:367
+#@ wpduplicator
 msgid "*Scan Error"
 msgstr "* Scan-Fehler"
 
-# @ wpduplicator
-#: inc/javascript.php:362
+#: inc/javascript.php:368
+#@ wpduplicator
 msgid "Files"
 msgstr "Dateien"
 
-# @ wpduplicator
-#: inc/javascript.php:362
+#: inc/javascript.php:368
+#@ wpduplicator
 msgid "Folders"
 msgstr "Verzeichnisse"
 
-# @ wpduplicator
-#: inc/javascript.php:367
+#: inc/javascript.php:373
+#@ wpduplicator
 msgid "error scanning directory"
-msgstr "Fehler beim Scannen der Verzeichnisse"
+msgstr "Fehler beim Scannen des Verzeichnisses"
 
-# @ wpduplicator
-#: inc/javascript.php:397
+#: inc/javascript.php:403
+#@ wpduplicator
 msgid "DATABASE"
 msgstr "Datenbank"
 
-# @ wpduplicator
-#: inc/javascript.php:398
+#: inc/javascript.php:404
+#@ wpduplicator
 msgid "PACKAGE"
 msgstr "Archive"
 
-# @ wpduplicator
-#: inc/javascript.php:399
+#: inc/javascript.php:405
+#@ wpduplicator
 msgid "INSTALLER"
-msgstr ""
+msgstr "INSTALLER"
 
-# @ wpduplicator
-#: inc/javascript.php:418
+#: inc/javascript.php:424
+#@ wpduplicator
 msgid "AJAX Response"
 msgstr "AJAX-Antwort"
 
-# @ wpduplicator
-#: inc/javascript.php:436
+#: inc/javascript.php:442
 #, fuzzy
+#@ wpduplicator
 msgid "Creating package may take several minutes. Please Wait... "
-msgstr "Dies kann einige Minuten dauern. Bitte warten ..."
+msgstr "Dies kann einige Minuten dauern. Bitte warten ... "
 
-# @ wpduplicator
-#: inc/javascript.php:437
+#: inc/javascript.php:443
+#@ wpduplicator
 msgid "Preview Log"
 msgstr "Vorschau Log-Datei"
 
-# @ wpduplicator
-#: inc/page.about.php:17
+#: inc/page.about.php:20
+#@ wpduplicator
 msgid "About"
-msgstr ""
+msgstr "Über"
 
-# @ wpduplicator
-#: inc/page.about.php:18 inc/page.diag.php:22 inc/page.main.php:33
+#: inc/page.about.php:21
+#: inc/page.diag.php:25
+#: inc/page.main.php:36
 #: inc/page.support.php:11
+#@ wpduplicator
 msgid "By"
 msgstr "von"
 
-# @ wpduplicator
-#: inc/page.about.php:31
-msgid ""
-"Your LifeInTheGrid should be about working smarter not harder.  With the "
-"Duplicator you can streamline your workflows and quickly clone a WordPress "
-"site in minutes.  From Novice to Guru this plugin is designed for Bloggers, "
-"Admins, Developers, Designers, Entrepreneurs and anyone who uses WordPress."
-msgstr ""
-"Ihre LifeInTheGrid sollte über intelligenter arbeiten nicht härter sein.  "
-"Mit dem Duplikator können Ihre Arbeitsabläufe zu optimieren und schnell "
-"Klonen eine WordPress-Seite in Minuten.  Vom Anfänger zum Guru wurde dieses "
-"Plugin für Blogger, Administratoren, Entwickler, Designer, Unternehmer und "
-"wer WordPress verwendet."
+#: inc/page.about.php:34
+#@ wpduplicator
+msgid "Your LifeInTheGrid should be about working smarter not harder.  With the Duplicator you can streamline your workflows and quickly clone a WordPress site in minutes.  From Novice to Guru this plugin is designed for Bloggers, Admins, Developers, Designers, Entrepreneurs and anyone who uses WordPress."
+msgstr "LifeInTheGrid will das Arbeiten vereinfachen. Mit dem Duplicator kannst du deine Arbeitsabläufe optimieren und in wenigen Minuten eine WordPress-Website klonen.  Vom Anfänger bis zum Guru wurde dieses Plugin für Blogger, Administratoren, Entwickler, Designer, Unternehmer und für alle, die WordPress nutzen, entwickelt."
+
+#: inc/page.about.php:36
+#@ wpduplicator
+msgid "If you run into an issue feel free to submit a support ticket and visit our"
+msgstr "Bei Problemen fülle bitte ein Support-Ticket aus und besuche unsere"
 
-# @ wpduplicator
-#: inc/page.about.php:33
-msgid ""
-"If you run into an issue feel free to submit a support ticket and visit our"
-msgstr ""
-"Wenn Sie auf ein Problem stoßen fühlen Sie sich frei, ein Support-Ticket und "
-"besuchen unsere"
-
-# @ wpduplicator
-#: inc/page.about.php:36
+#: inc/page.about.php:39
+#@ wpduplicator
 msgid "knowledgebase"
-msgstr "Knowledgebase"
+msgstr "Wissens-Datenbank"
 
-# @ wpduplicator
-#: inc/page.about.php:39
-msgid ""
-"We also offer premium priority support for those who need feedback within "
-"24-48hrs.  Please visit our "
-msgstr ""
-"Wir bieten auch Premium vorrangig Unterstützung für diejenigen, die Feedback "
-"innerhalb von 24-48 Stunden benötigen. Bitte besuchen Sie unsere"
+#: inc/page.about.php:42
+#@ wpduplicator
+msgid "We also offer premium priority support for those who need feedback within 24-48hrs.  Please visit our "
+msgstr "Wir bieten auch vorrangige Premium-Unterstützung für diejenigen, die Feedback innerhalb von 24-48 Stunden benötigen. Bitte besuche unsere "
 
-# @ wpduplicator
-#: inc/page.about.php:40 inc/page.support.php:70
+#: inc/page.about.php:43
+#: inc/page.support.php:70
+#@ wpduplicator
 msgid "service page"
 msgstr "Service-Seite"
 
-# @ wpduplicator
-#: inc/page.about.php:41
+#: inc/page.about.php:44
+#@ wpduplicator
 msgid "for more details."
 msgstr "für weitere Details."
 
-# @ wpduplicator
-#: inc/page.about.php:50
+#: inc/page.about.php:53
+#@ wpduplicator
 msgid "Support Duplicator"
 msgstr "Unterstützung Duplicator"
 
-# @ wpduplicator
-#: inc/page.about.php:62
-msgid ""
-"Consider a donation of any amount; it will take less than 60 seconds or "
-"about as fast as you can duplicate a site.  These proceeds help to cover "
-"development and support costs.  Thanks for your generosity!!"
-msgstr ""
-"Betrachten Sie eine Spende von jede Menge; Es dauert weniger als 60 Sekunden "
-"oder etwa so schnell, wie Sie eine Site duplizieren können.  Diese Erlöse "
-"helfen, Entwicklung und support-Kosten.  Vielen Dank für Ihre Großzügigkeit!"
+#: inc/page.about.php:65
+#@ wpduplicator
+msgid "Consider a donation of any amount; it will take less than 60 seconds or about as fast as you can duplicate a site.  These proceeds help to cover development and support costs.  Thanks for your generosity!!"
+msgstr "Erwäge eine Spende in beliebiger; es dauert weniger als 60 Sekunden oder etwa so schnell, wie du eine Site duplizieren kannst.  Diese Erlöse helfen bei der Entwicklung und den Support-Kosten.  Vielen Dank für deine Großzügigkeit!"
 
-# @ wpduplicator
-#: inc/page.about.php:74
+#: inc/page.about.php:77
+#@ wpduplicator
 msgid "Help out by leaving a 5 star review on the"
-msgstr "Hilf, indem man eine 5 Sterne Bewertung auf der"
+msgstr "Hilf mit einer 5-Sterne-Bewertung auf der"
 
-# @ wpduplicator
-#: inc/page.about.php:75
+#: inc/page.about.php:78
+#@ wpduplicator
 msgid "WordPress plugins directory"
 msgstr "WordPress Plugins-Verzeichnis"
 
-# @ wpduplicator
-#: inc/page.about.php:76
+#: inc/page.about.php:79
+#@ wpduplicator
 msgid "and by giving your opinion on the survey below."
-msgstr "und indem Sie Ihre Meinung über die Umfrage unten."
+msgstr "und teile deine Meinung über die Umfrage mit."
 
-# @ wpduplicator
-#: inc/page.about.php:79
+#: inc/page.about.php:82
+#@ wpduplicator
 msgid "Give us your Opinion?"
-msgstr "Geben Sie uns Ihre Meinung?"
-
-# @ wpduplicator
-#: inc/page.about.php:91
-msgid "Spread the Word"
-msgstr ""
+msgstr "An der Umfrage teilnehmen"
 
-# @ wpduplicator
-#: inc/page.about.php:92
-msgid ""
-"Spreading the word gives the plugin a wider audience which helps to pool "
-"more resources to test/support/develop and participate to improve the "
-"plugin.  By getting the word out the Duplicator will continue to improve at "
-"a faster rate and harness the power of the open community to push the plugin "
-"further."
-msgstr ""
-"Die Verbreitung des Wortes gibt dem Plugin ein breiteres Publikum, das zu "
-"bündeln mehr Ressourcen zu testen / support / entwickeln und beteiligen, um "
-"das Plugin zu verbessern hilft. Indem wir das Wort aus dem Duplicator wird "
-"weiterhin mit einer schnelleren Rate zu verbessern und nutzen die Kraft der "
-"Open Community, um das Plugin weiter voranzutreiben."
+#: inc/page.about.php:94
+#@ wpduplicator
+msgid "Spread the Word"
+msgstr "Verbreitung des Inhaltes"
 
-# @ wpduplicator
 #: inc/page.about.php:95
+#@ wpduplicator
+msgid "Spreading the word gives the plugin a wider audience which helps to pool more resources to test/support/develop and participate to improve the plugin.  By getting the word out the Duplicator will continue to improve at a faster rate and harness the power of the open community to push the plugin further."
+msgstr "Die Verbreitung des Inhaltes gibt dem Plugin ein breiteres Publikum, welches durch Testen, Support, Entwickeln und Beteiligen unterstützt. Damit wird der Duplicator in kurzer Zeit weiter verbessert und die Gemeinschaft hilft, das Plugin weiter voranzutreiben."
+
+#: inc/page.about.php:98
+#@ wpduplicator
 msgid "Duplicate Your WordPress"
-msgstr "Duplizieren Sie Ihre WordPress"
+msgstr "Duplizieren dein WordPress"
 
-# @ wpduplicator
-#: inc/page.about.php:96
+#: inc/page.about.php:99
+#@ wpduplicator
 msgid "Rapid WordPress Duplication by LifeInTheGrid.com"
 msgstr "Schnelle WordPress Vervielfältigung von LifeInTheGrid.com"
 
-# @ wpduplicator
-#: inc/page.about.php:140 inc/page.support.php:23
+#: inc/page.about.php:143
+#: inc/page.support.php:23
+#@ wpduplicator
 msgid "Knowledge Base"
-msgstr ""
+msgstr "Wissens-Datenbank"
 
-# @ wpduplicator
-#: inc/page.about.php:142
+#: inc/page.about.php:145
+#@ wpduplicator
 msgid "Blog"
-msgstr ""
+msgstr "Blog"
 
-# @ wpduplicator
-#: inc/page.about.php:143
+#: inc/page.about.php:146
+#@ wpduplicator
 msgid "Labs"
-msgstr ""
+msgstr "Alle Produkte"
 
-# @ wpduplicator
-#: inc/page.main.php:45 inc/page.main.php:86
+#: inc/page.main.php:48
+#: inc/page.main.php:89
+#@ wpduplicator
 msgid "Package Name"
 msgstr "Archiv-Name"
 
-# @ wpduplicator
-#: inc/page.main.php:48
+#: inc/page.main.php:51
+#@ wpduplicator
 msgid "Create Package"
 msgstr "Archiv erstellen"
 
-# @ wpduplicator
-#: inc/page.main.php:49
+#: inc/page.main.php:52
+#@ wpduplicator
 msgid "Delete selected package(s)"
 msgstr "Ausgewählte Archive löschen"
 
-# @ wpduplicator
-#: inc/page.main.php:52
+#: inc/page.main.php:55
+#@ wpduplicator
 msgid "Options"
 msgstr "Optionen"
 
-# @ wpduplicator
-#: inc/page.main.php:53
+#: inc/page.main.php:56
+#@ wpduplicator
 msgid "System Check"
 msgstr "System-Check"
 
-# @ wpduplicator
-#: inc/page.main.php:54
+#: inc/page.main.php:57
+#@ wpduplicator
 msgid "Show Create Log"
 msgstr "Log-Datei ansehen"
 
-# @ wpduplicator
-#: inc/page.main.php:64
+#: inc/page.main.php:67
+#@ wpduplicator
 msgid "Status"
-msgstr ""
+msgstr "Status"
 
-# @ wpduplicator
-#: inc/page.main.php:65
+#: inc/page.main.php:68
+#@ wpduplicator
 msgid "Ready to create new package"
 msgstr "Bereit zum Erstellen eines neuen Archivs"
 
-# @ wpduplicator
-#: inc/page.main.php:81
+#: inc/page.main.php:84
+#@ wpduplicator
 msgid "Select all packages"
 msgstr "Alle Archive auswählen"
 
-# @ wpduplicator
-#: inc/page.main.php:82
+#: inc/page.main.php:85
+#@ wpduplicator
 msgid "Information"
 msgstr "Informationen"
 
-# @ wpduplicator
-#: inc/page.main.php:83
+#: inc/page.main.php:86
+#@ wpduplicator
 msgid "Owner"
 msgstr "Besitzer"
 
-# @ wpduplicator
-#: inc/page.main.php:84
+#: inc/page.main.php:87
+#@ wpduplicator
 msgid "Created"
 msgstr "Erstellt"
 
-# @ wpduplicator
-#: inc/page.main.php:85
+#: inc/page.main.php:88
+#@ wpduplicator
 msgid "Size"
 msgstr "Größe"
 
-# @ wpduplicator
-#: inc/page.main.php:88
+#: inc/page.main.php:91
+#@ wpduplicator
 msgid "Package Set"
 msgstr "Archiv Set"
 
-# @ wpduplicator
-#: inc/page.main.php:89
+#: inc/page.main.php:92
+#@ wpduplicator
 msgid "(Download Both)"
 msgstr "(Archiv u. Installer herunterladen)"
 
-# @ wpduplicator
-#: inc/page.main.php:120 inc/page.main.php:148
+#: inc/page.main.php:123
+#: inc/page.main.php:151
+#@ wpduplicator
 msgid "View"
 msgstr "Ansicht"
 
-# @ wpduplicator
-#: inc/page.main.php:126 inc/view.options.php:10
+#: inc/page.main.php:129
+#: inc/view.options.php:10
+#@ wpduplicator
 msgid "Installer"
-msgstr "Installateur"
+msgstr "Installer"
 
-# @ wpduplicator
-#: inc/page.main.php:127 inc/page.main.php:156 inc/view.options.php:9
+#: inc/page.main.php:130
+#: inc/page.main.php:159
+#: inc/view.options.php:9
+#@ wpduplicator
 msgid "Package"
 msgstr "Archiv"
 
-# @ wpduplicator
-#: inc/page.main.php:133
+#: inc/page.main.php:136
+#@ wpduplicator
 msgid "Version"
-msgstr ""
+msgstr "Version"
 
-# @ wpduplicator
-#: inc/page.main.php:134
+#: inc/page.main.php:137
+#@ wpduplicator
 msgid "Secure Name"
 msgstr "Sicherer Dateiname"
 
-# @ wpduplicator
-#: inc/page.main.php:135
+#: inc/page.main.php:138
+#@ wpduplicator
 msgid "Download SQL File"
 msgstr "SQL-Datei herunterladen"
 
-# @ wpduplicator
-#: inc/page.main.php:136
+#: inc/page.main.php:139
+#@ wpduplicator
 msgid "Show Download Links"
-msgstr "Zeige Download-Links"
-
-# @ wpduplicator
-#: inc/page.main.php:162
-msgid "Legacy Version"
-msgstr ""
+msgstr "Download-Links"
 
-# @ wpduplicator
 #: inc/page.main.php:165
-msgid ""
-"This package was built with a version that is no longer supported.  It is "
-"highly recommended that this package be deleted.  For more details see the"
-msgstr ""
-"Dieses Archiv wurde mit einer früheren Version erstellt, welche nicht mehr "
-"unterstützt wird. Es wird dringend empfohlen, dieses Archiv zu löschen. Für "
-"weitere Details siehe die"
+#@ wpduplicator
+msgid "Legacy Version"
+msgstr "Veraltete Version"
 
-# @ wpduplicator
-#: inc/page.main.php:166
+#: inc/page.main.php:168
+#@ wpduplicator
+msgid "This package was built with a version that is no longer supported.  It is highly recommended that this package be deleted.  For more details see the"
+msgstr "Dieses Archiv wurde mit einer früheren Version erstellt, welche nicht mehr unterstützt wird. Es wird dringend empfohlen, dieses Archiv zu löschen. Für weitere Details siehe die"
+
+#: inc/page.main.php:169
+#@ wpduplicator
 msgid "Online FAQs"
 msgstr "Häufig gestellten Fragen (Online)"
 
-# @ wpduplicator
-#: inc/page.main.php:178
+#: inc/page.main.php:181
+#@ wpduplicator
 msgid "No packages found"
 msgstr "Keine Archive gefunden"
 
-# @ wpduplicator
-#: inc/page.main.php:179
+#: inc/page.main.php:182
+#@ wpduplicator
 msgid "To create a new package, enter a name and click the create button "
-msgstr ""
-"Um ein neues Archiv zu erstellen, gib einen Namen ein und klicke auf die "
-"Schaltfläche Erstellen"
+msgstr "Um ein neues Archiv zu erstellen, gib einen Namen ein und klicke auf die Schaltfläche Erstellen"
 
-# @ wpduplicator
-#: inc/page.main.php:181
-msgid "Check Your"
+#: inc/page.main.php:184
+#, fuzzy
+#@ wpduplicator
+msgid "Check your"
 msgstr "Überprüfe die"
 
-# @ wpduplicator
-#: inc/page.main.php:182
-msgid "servers compatibility"
+#: inc/page.main.php:185
+#, fuzzy
+#@ wpduplicator
+msgid "server's compatibility"
 msgstr "Server-Kompatibilität"
 
-# @ wpduplicator
-#: inc/page.main.php:183
+#: inc/page.main.php:186
+#@ wpduplicator
 msgid "with the duplicator"
 msgstr "mit dem Duplicator"
 
-# @ wpduplicator
-#: inc/page.main.php:184
+#: inc/page.main.php:187
+#@ wpduplicator
 msgid "This process will backup all your files and database"
 msgstr "Dieser Prozess erstellt ein Backup aller Dateien und der Datenbank"
 
-# @ wpduplicator
-#: inc/page.main.php:185
+#: inc/page.main.php:188
+#@ wpduplicator
 msgid "Creating a package may take several minutes if you have a large site"
-msgstr ""
-"Bei großen Websites kann das Erstellen eines Archivs einige Minuten dauern"
+msgstr "Bei großen Websites kann das Erstellen eines Archivs einige Minuten dauern"
 
-# @ wpduplicator
-#: inc/page.main.php:186
+#: inc/page.main.php:189
+#@ wpduplicator
 msgid "This window should remain open for the process to complete"
 msgstr "Dieses Fenster sollte bis zum Abschluss des Prozesses offen bleiben"
 
-# @ wpduplicator
-#: inc/page.main.php:187
+#: inc/page.main.php:190
+#@ wpduplicator
 msgid "Please be patient while we work through this Beta version"
 msgstr "Bitte etwas Geduld; dies ist eine Beta-Version"
 
-# @ wpduplicator
-#: inc/page.main.php:188
+#: inc/page.main.php:191
+#@ wpduplicator
 msgid "Please report any issues to"
 msgstr "Bitte berichte alle Probleme an"
 
-# @ wpduplicator
-#: inc/page.main.php:205
+#: inc/page.main.php:208
+#@ wpduplicator
 msgid "Total Storage Used"
-msgstr "Gesamter Speicherplatz"
+msgstr "Belegter Speicherplatz"
 
-# @ wpduplicator
 #: inc/page.support.php:28
-msgid ""
-"For a complete rundown of the Duplicator see the online knowledgebase by "
-"clicking the question button or any link below.   If you experience issues "
-"with creating or installing a package check out the FAQ page first."
-msgstr ""
-"Für eine vollständige Auflistung der Duplicator siehe Online-"
-"Wissensdatenbank, indem Sie auf die Frage Schaltfläche oder einen Link "
-"unten. Wenn Sie erleben Probleme mit der Erstellung oder der Installation "
-"eines Pakets bitte zuerst die FAQ-Seite zuerst."
+#@ wpduplicator
+msgid "For a complete rundown of the Duplicator see the online knowledgebase by clicking the question button or any link below.   If you experience issues with creating or installing a package check out the FAQ page first."
+msgstr "Für eine vollständige Beschreibung des Duplicators klicke bitte auf das Fragezeichen rechts oben. Bei Problemen mit der Erstellung oder Installation eines Archivs bitte zuerst die FAQ-Seite lesen."
 
-# @ wpduplicator
 #: inc/page.support.php:32
+#@ wpduplicator
 msgid "Quick Start"
-msgstr ""
+msgstr "Schnell-Start"
 
-# @ wpduplicator
 #: inc/page.support.php:33
+#@ wpduplicator
 msgid "User Guide"
 msgstr "Benutzerhandbuch"
 
-# @ wpduplicator
 #: inc/page.support.php:34
+#@ wpduplicator
 msgid "FAQs"
-msgstr ""
+msgstr "Häufig gestellte Fragen"
 
-# @ wpduplicator
 #: inc/page.support.php:35
-msgid "Change Log"
-msgstr "Änderung der Registrierung"
+#, fuzzy
+#@ wpduplicator
+msgid "Changelog"
+msgstr "Liste der Änderungen"
 
-# @ wpduplicator
 #: inc/page.support.php:42
+#@ wpduplicator
 msgid "Approved Hosting"
-msgstr ""
+msgstr "Empfohlene Hosting-Provider"
 
-# @ wpduplicator
 #: inc/page.support.php:48
-msgid ""
-"Not all hosting companies are created equal and to get the most out of the "
-"plugin we recommend using hosting providers that we do our own testing on.  "
-"Please visit our"
-msgstr ""
-"Nicht alle Hosting-Unternehmen gleich geschaffen sind und das Beste aus dem "
-"Plugin empfehlen wir die Verwendung Hosting-Provider, dass wir unser eigenes "
-"Test auf zu bekommen. Bitte besuchen Sie unsere"
+#@ wpduplicator
+msgid "Not all hosting companies are created equal and to get the most out of the plugin we recommend using hosting providers that we do our own testing on.  Please visit our"
+msgstr "Nicht alle Hosting-Provider sind geeignet. Wir empfehlen die Verwendung von uns geprüfter Hosting-Provider. Bitte besuche unsere"
 
-# @ wpduplicator
 #: inc/page.support.php:51
+#@ wpduplicator
 msgid "Approved Affiliate Hosting Program"
-msgstr "Genehmigt Partner Hosting Programm"
+msgstr "empfohlene Hosting Provider"
 
-# @ wpduplicator
 #: inc/page.support.php:52
-msgid ""
-"and consider making a switch to hosts that we trust and have experienced "
-"good success with when using the Duplicator"
-msgstr ""
-"und in Erwägung ziehen, einen Schalter, um Hosts, die wir vertrauen und "
-"erlebt haben gute Erfolge mit, wenn Sie die Duplicator"
+#@ wpduplicator
+msgid "and consider making a switch to hosts that we trust and have experienced good success with when using the Duplicator"
+msgstr "und ziehe einen Host in Erwägung ziehen, dem wir vertrauen und mit welchem wir gute Erfahrungen bei der Nutzung von Duplicator gemacht haben"
 
-# @ wpduplicator
 #: inc/page.support.php:59
+#@ wpduplicator
 msgid "Online Support"
-msgstr ""
+msgstr "Online Support"
 
-# @ wpduplicator
 #: inc/page.support.php:66
-msgid ""
-"If you run into an issue and have already read the FAQs feel free to submit "
-"a support ticket and we will try our best to respond within 5-10 business "
-"days or sooner if possible."
-msgstr ""
-"Wenn Sie in ein Problem und führen Sie bereits gelesen haben die FAQs fühlen "
-"Sie sich frei, um ein Support-Ticket einreichen und wir werden unser Bestes "
-"versuchen, um innerhalb von 5-10 Werktagen oder früher, wenn möglich zu "
-"reagieren."
+#@ wpduplicator
+msgid "If you run into an issue and have already read the FAQs feel free to submit a support ticket and we will try our best to respond within 5-10 business days or sooner if possible."
+msgstr "Wenn du ein Problem hast, lies zuerst die FAQs und fülle dann ein Support-Ticket aus. Wir werden unser Bestes versuchen, um innerhalb von 5-10 Werktagen oder wenn möglich früher zu antworten."
 
-# @ wpduplicator
 #: inc/page.support.php:69
+#@ wpduplicator
 msgid "If you need priority support within 24-48hrs please visit our "
-msgstr ""
-"Wenn Sie priority Support innerhalb von 24-48 Stunden benötigen besuchen Sie "
-"bitte unsere"
+msgstr "Wenn du vorrangigen Support innerhalb von 24-48 Stunden benötigst, besuche bitte unsere "
 
-# @ wpduplicator
 #: inc/page.support.php:71
-msgid ""
-"for more details.  Premium support is 100% refundable if we are unable to "
-"resolve your issue."
-msgstr ""
-"für weitere Details. Premium-Support ist 100% zurückerstattet, wenn wir "
-"nicht in der Lage, um Ihr Problem zu lösen sind."
+#@ wpduplicator
+msgid "for more details.  Premium support is 100% refundable if we are unable to resolve your issue."
+msgstr "für weitere Details. Premium-Support wird zu 100% zurückerstattet, wenn wir nicht in der Lage sind, das Problem zu lösen."
 
-# @ default
+#: inc/page.support.php:77
+#@ wpduplicator
+msgid "Most issues that occur with the Duplicator revolve around how a server is configured.  In order to diagnose your issues we will require temporary admin accounts to your cPanel and WordPress Admin.  Please fill out the "
+msgstr "Die meisten Probleme, welche mit dem Duplicator auftreten, drehen sich um die Konfiguration des Servers. Um solche Probleme zu diagnostizieren benötigen wir temporär ein Admin-Konto deiner WordPress-Installation. Bitte fülle das"
+
 #: inc/page.support.php:79
-msgid ""
-"Most issues that occur with the Duplicator revolve around how a server is "
-"configured.  In order to diagnose your issues we will require temporary "
-"admin accounts to your cPanel and WordPress Admin.  Please fill out the "
-msgstr ""
-"Die meisten Probleme, die mit dem Kopierer auftreten kreisen um, wie ein "
-"Server konfiguriert ist. Um Ihre Probleme zu diagnostizieren wir temporäre "
-"Admin-Konten zu Ihrem cPanel und WordPress Admin erfordern. Bitte füllen Sie "
-"das"
+#@ wpduplicator
+msgid "Request Quote"
+msgstr "Anfrageformular"
 
-# @ wpduplicator
-#: inc/page.support.php:81
-msgid "Request Quote"
-msgstr "Angebotsanforderung"
+#: inc/page.support.php:80
+#@ wpduplicator
+msgid "form and explain your issue in detail."
+msgstr "aus und erkläre dein Problem im Detail."
 
-# @ wpduplicator
-#: inc/page.support.php:82
-msgid "form and explain your issue in detail."
-msgstr "bilden und erklären Ihr Problem im Detail."
-
-# @ wpduplicator
 #: inc/view.options.php:4
+#@ wpduplicator
 msgid "Duplicator Options"
 msgstr "Duplicator-Einstellungen"
 
-# @ wpduplicator
 #: inc/view.options.php:11
+#@ wpduplicator
 msgid "System"
 msgstr "System"
 
-# @ wpduplicator
 #: inc/view.options.php:12
+#@ wpduplicator
 msgid "FTP"
-msgstr ""
+msgstr "FTP"
 
-# @ wpduplicator
 #: inc/view.options.php:22
+#@ wpduplicator
 msgid "Processing"
 msgstr "Verarbeitung"
 
-# @ wpduplicator
 #: inc/view.options.php:36
+#@ wpduplicator
 msgid "Max Time"
 msgstr "Maximale Laufzeit"
 
-# @ wpduplicator
 #: inc/view.options.php:36
+#@ wpduplicator
 msgid "seconds"
 msgstr "Sekunden"
 
-# @ wpduplicator
 #: inc/view.options.php:37
+#@ wpduplicator
 msgid "Max Memory"
 msgstr "Maximaler Arbeitsspeicher"
 
-# @ wpduplicator
 #: inc/view.options.php:45
+#@ wpduplicator
 msgid "Email when completed"
-msgstr "Email senden, wenn Archiv vollständig erstellt ist"
+msgstr "Email senden, wenn das Archiv vollständig erstellt ist"
 
-# @ wpduplicator
 #: inc/view.options.php:46
+#@ wpduplicator
 msgid "WP-Admin email is included.  Add extra emails semicolon separated."
-msgstr ""
-"Email an WP-Admin ist enthalten. Weitere Empfänger mit Semikolon getrennt "
-"einfügen."
+msgstr "Email an WP-Admin ist enthalten. Weitere Empfänger bitte mit Semikolon getrennt einfügen."
 
-# @ wpduplicator
 #: inc/view.options.php:55
+#@ wpduplicator
 msgid "Exclusion Filters"
 msgstr "Ausschlusskriterien"
 
-# @ wpduplicator
 #: inc/view.options.php:57
+#@ wpduplicator
 msgid "Directories"
 msgstr "Verzeichnisse"
 
-# @ wpduplicator
 #: inc/view.options.php:59
+#@ wpduplicator
 msgid "Root Path"
 msgstr "Root-Pfad"
 
-# @ wpduplicator
 #: inc/view.options.php:61
+#@ wpduplicator
 msgid "File extensions"
 msgstr "Datei-Erweiterungen"
 
-# @ wpduplicator
 #: inc/view.options.php:64
+#@ wpduplicator
 msgid "Separate all filters by semicolon"
 msgstr "Trenne alle Filter durch ein Semikolon"
 
-# @ wpduplicator
 #: inc/view.options.php:69
+#@ wpduplicator
 msgid "Database Encoding"
 msgstr "Datenbank-Encoding"
 
-# @ wpduplicator
 #: inc/view.options.php:72
+#@ wpduplicator
 msgid "Enable character conversion encoding"
 msgstr "Aktiviere die Konvertierung der Zeichen-Kodierung"
 
-# @ wpduplicator
 #: inc/view.options.php:77
+#@ wpduplicator
 msgid "From"
 msgstr "Von"
 
-# @ wpduplicator
 #: inc/view.options.php:78
+#@ wpduplicator
 msgid "to"
 msgstr "zu"
 
-# @ wpduplicator
 #: inc/view.options.php:79
+#@ wpduplicator
 msgid "Disable this option for extended or double byte character sets"
 msgstr "Deaktiviere diese Option für erweiterte oder Doppel-Byte Zeichensätze"
 
-# @ wpduplicator
 #: inc/view.options.php:86
-msgid ""
-"Having issues saving these options?  Temporarily disable all 'Object "
-"Caches' (i.e. W3C Total Object Cache)"
-msgstr ""
-"Fragen zu diesen Optionen? Deaktiviere vorübergehend alle Cache-Tools (z. B. "
-"W3C Total Object Cache)"
+#@ wpduplicator
+msgid "Having issues saving these options?  Temporarily disable all 'Object Caches' (i.e. W3C Total Object Cache)"
+msgstr "Fragen zu diesen Optionen? Deaktiviere vorübergehend alle Cache-Tools (z. B. W3C Total Object Cache)"
 
-# @ wpduplicator
 #: inc/view.options.php:96
+#@ wpduplicator
 msgid "Settings Defaults"
 msgstr "Grundeinstellungen"
 
-# @ wpduplicator
 #: inc/view.options.php:99
+#@ wpduplicator
 msgid "Install URL"
-msgstr ""
+msgstr "Install URL"
 
-# @ wpduplicator
 #: inc/view.options.php:106
+#@ wpduplicator
 msgid "Database Defaults"
 msgstr "Datenbank-Voreinstellungen"
 
-# @ wpduplicator
 #: inc/view.options.php:109
+#@ wpduplicator
 msgid "Host"
-msgstr ""
+msgstr "Host"
 
-# @ wpduplicator
-#: inc/view.options.php:113 inc/view.system.php:8
+#: inc/view.options.php:113
+#: inc/view.system.php:8
+#@ wpduplicator
 msgid "Name"
 msgstr "Name"
 
-# @ wpduplicator
 #: inc/view.options.php:117
+#@ wpduplicator
 msgid "User"
 msgstr "Benutzer"
 
-# @ wpduplicator
 #: inc/view.options.php:122
-msgid ""
-"The installer can have these fields pre-filled at install time.  These "
-"values are optional."
-msgstr ""
-"Der Installer kann diese Felder vor der Installation bereits ausgefüllt "
-"haben. Diese Werte sind optional."
+#@ wpduplicator
+msgid "The installer can have these fields pre-filled at install time.  These values are optional."
+msgstr "Der Installer kann diese Felder vor der Installation bereits ausgefüllt haben. Diese Werte sind optional."
 
-# @ wpduplicator
 #: inc/view.options.php:129
+#@ wpduplicator
 msgid "Uninstall Options"
 msgstr "Deinstallations-Optionen"
 
-# @ wpduplicator
 #: inc/view.options.php:132
+#@ wpduplicator
 msgid "Delete entire snapshot directory when removing plugin"
-msgstr "Löschen des gesamten Snapshot-Verzeichnis beim Entfernen plugin"
+msgstr "Löschen des gesamten Snapshot-Verzeichnises beim Entfernen des Plugins"
 
-# @ wpduplicator
 #: inc/view.options.php:133
 #, fuzzy
+#@ wpduplicator
 msgid "Snapshot Directory"
 msgstr "Cache-Verzeichnis gefunden"
 
-# @ wpduplicator
 #: inc/view.options.php:161
+#@ wpduplicator
 msgid "Save"
 msgstr "Sichern"
 
-# @ wpduplicator
 #: inc/view.options.php:162
+#@ wpduplicator
 msgid "Close"
 msgstr "Schließen"
 
-# @ wpduplicator
 #: inc/view.system.php:3
+#@ wpduplicator
 msgid "Package Creation"
 msgstr "Archiv erzeugen"
 
-# @ wpduplicator
 #: inc/view.system.php:5
+#@ wpduplicator
 msgid "Create a new Package Set?"
 msgstr "Neues Archiv erzeugen?"
 
-# @ wpduplicator
-#: inc/view.system.php:10 inc/view.system.php:212
+#: inc/view.system.php:10
+#: inc/view.system.php:221
+#@ wpduplicator
 msgid "Pre-Zip Overview"
 msgstr "ZIP-Übersicht"
 
-# @ wpduplicator
 #: inc/view.system.php:12
+#@ wpduplicator
 msgid "Perform Scan"
 msgstr "Scan durchführen"
 
-# @ wpduplicator
-#: inc/view.system.php:18
-msgid ""
-"Note: A scan will provide an estimate on the size of your file system.  The "
-"scan will exclude items in the"
-msgstr ""
-"Hinweis: Ein Scan zeigt die geschätzte Größe aller Dateien (unkomprimiert) "
-"an. Der Suchlauf enthält keine Dateien aus der"
+#: inc/view.system.php:19
+#@ wpduplicator
+msgid "Note: A scan will provide an estimate on the size of your file system.  The scan will exclude items in the"
+msgstr "Hinweis: Ein Scan zeigt die geschätzte Größe aller Dateien (unkomprimiert) an. Der Suchlauf enthält keine Dateien aus der"
 
-# @ wpduplicator
-#: inc/view.system.php:19
+#: inc/view.system.php:20
+#@ wpduplicator
 msgid "directory filter list"
 msgstr "Verzeichnis-Liste"
 
-# @ wpduplicator
-#: inc/view.system.php:20
-msgid ""
-"Files that are not readable by the plugin will not be included in the "
-"overview.  Directories that are empty will not be included in the final "
-"package. "
-msgstr ""
-"Nicht lesbare Dateien werden in die Übersicht nicht aufgenommen. Leere "
-"Verzeichnisse sind im endgültigen Archiv nicht enthalten."
-
-# @ wpduplicator
-#: inc/view.system.php:29
+#: inc/view.system.php:30
+#@ wpduplicator
 msgid "System Constraint"
 msgstr "System-Beschränkung"
 
-# @ wpduplicator
-#: inc/view.system.php:32
+#: inc/view.system.php:33
+#@ wpduplicator
 msgid "Please try again! An issue has occurred."
 msgstr "Bitte versuche es erneut! Ein Problem ist aufgetreten."
 
-# @ wpduplicator
-#: inc/view.system.php:36
+#: inc/view.system.php:37
+#@ wpduplicator
 msgid "Recommendations"
 msgstr "Empfehlungen"
 
-# @ wpduplicator
-#: inc/view.system.php:41
+#: inc/view.system.php:42
+#@ wpduplicator
 msgid "Validate"
-msgstr "prüfe"
+msgstr "Überprüfe"
 
-# @ wpduplicator
-#: inc/view.system.php:42
+#: inc/view.system.php:43
+#@ wpduplicator
 msgid "your system"
 msgstr "dein System"
 
-# @ wpduplicator
-#: inc/view.system.php:43
+#: inc/view.system.php:44
+#@ wpduplicator
 msgid "refresh"
 msgstr "Neu laden"
 
-# @ wpduplicator
-#: inc/view.system.php:44
+#: inc/view.system.php:45
+#@ wpduplicator
 msgid "the dashboard."
 msgstr "das Dashboard."
 
-# @ wpduplicator
-#: inc/view.system.php:48
+#: inc/view.system.php:49
+#@ wpduplicator
 msgid "Monitor"
-msgstr ""
+msgstr "Monitor"
 
-# @ wpduplicator
-#: inc/view.system.php:49
-msgid ""
-"your log file a few more minutes as processing may continue on some systems"
+#: inc/view.system.php:50
+#@ wpduplicator
+msgid "your log file a few more minutes as processing may continue on some systems"
 msgstr "Die Log-Datei steht nach ein paar Minuten bereit"
 
-# @ wpduplicator
-#: inc/view.system.php:52
-msgid ""
-"Contact your server admin to have the page timeout increased (see duration "
-"below)"
-msgstr ""
-"Kontaktiere deinen Server Admin, um das Timeout zu erhöhen (Dauer siehe "
-"unten))"
+#: inc/view.system.php:53
+#@ wpduplicator
+msgid "Contact your server admin to have the page timeout increased (see duration below)"
+msgstr "Kontaktiere deinen Server Admin, um das Timeout zu erhöhen (Dauer siehe unten))"
 
-# @ wpduplicator
-#: inc/view.system.php:53
-msgid ""
-"Consider adding a directory filter in the options dialog if the process "
-"continues to timeout"
-msgstr ""
-"Erwäge ein Verzeichnis mit Filter in den Einstellungen, wenn der Prozess "
-"fortgesetzt wird"
+#: inc/view.system.php:54
+#@ wpduplicator
+msgid "Consider adding a directory filter in the options dialog if the process continues to timeout"
+msgstr "Erwäge ein Verzeichnis mit Filter in den Einstellungen, wenn der Prozess fortgesetzt wird"
 
-# @ wpduplicator
-#: inc/view.system.php:54
+#: inc/view.system.php:55
+#@ wpduplicator
 msgid "Check your disk space.  For hosted sites review your providers help."
-msgstr ""
-"Überprüfe deinen Speicherplatz. Für gehostete Websites wende dich an den "
-"Provider."
+msgstr "Überprüfe deinen Speicherplatz. Für gehostete Websites wende dich an den Provider."
 
-# @ wpduplicator
-#: inc/view.system.php:57
+#: inc/view.system.php:58
 #, fuzzy
+#@ wpduplicator
 msgid "Consider using an"
 msgstr "Erwäge einen"
 
-# @ wpduplicator
-#: inc/view.system.php:59
+#: inc/view.system.php:60
+#@ wpduplicator
 msgid "approved"
 msgstr "genehmigt"
 
-# @ wpduplicator
-#: inc/view.system.php:60
+#: inc/view.system.php:61
+#@ wpduplicator
 msgid "hosting provider."
 msgstr "Hosting-Provider."
 
-# @ wpduplicator
-#: inc/view.system.php:64
+#: inc/view.system.php:65
+#@ wpduplicator
 msgid "Server Response"
 msgstr "Server-Antwort"
 
-# @ wpduplicator
-#: inc/view.system.php:69
+#: inc/view.system.php:70
+#@ wpduplicator
 msgid "See online help for more details at"
 msgstr "Siehe Online-Hilfe für weitere Informationen unter"
 
-# @ wpduplicator
-#: inc/view.system.php:79
-msgid "System Checks"
-msgstr ""
+#: inc/view.system.php:80
+#, fuzzy
+#@ wpduplicator
+msgid "System Status"
+msgstr "System-Beschränkung"
 
-# @ wpduplicator
-#: inc/view.system.php:82
+#: inc/view.system.php:83
+#@ wpduplicator
 msgid "Please validate your system configuration."
 msgstr "Bitte überprüfe deine System-Einstellungen"
 
-# @ wpduplicator
-#: inc/view.system.php:83
+#: inc/view.system.php:84
+#@ wpduplicator
 msgid "Click link for details"
 msgstr "Klicke auf den Link für Details"
 
-# @ wpduplicator
-#: inc/view.system.php:92
+#: inc/view.system.php:93
+#@ wpduplicator
 msgid "SYSTEM REQUIRMENTS"
 msgstr "System-Anforderungen"
 
-# @ wpduplicator
-#: inc/view.system.php:93
+#: inc/view.system.php:94
+#@ wpduplicator
 msgid "File Permissions"
 msgstr "Datei-Berechtigungen"
 
-# @ wpduplicator
-#: inc/view.system.php:96
+#: inc/view.system.php:97
+#@ wpduplicator
 msgid "Required permissions"
-msgstr ""
+msgstr "Erlaubnis erforderlich"
 
-# @ wpduplicator
-#: inc/view.system.php:113
-msgid ""
-"The above paths should have permissions of 755 for directories and 644 for "
-"files. On some hosts the permission set requires 777.  Setting items to 777 "
-"is a security issue and should only be set temporarily.  Please avoid any "
-"hosting company that requires this kind of setup.  See the 'Duplicator "
-"Approved' link at the bottom of this dialog for a list of approved hosting "
-"providers."
-msgstr ""
-"Die oben genannten Pfade sollten Berechtigungen von 755 für Verzeichnisse "
-"und 644 für Dateien. Auf einigen Hosts das Erlaubnis-Set benötigt 777. "
-"Einstellungspunkte auf 777 ist eine Frage der Sicherheit und sollte nur "
-"vorübergehend eingestellt werden. Bitte vermeiden Sie Hosting-Unternehmen, "
-"die diese Art der Installation erfordert. Siehe 'Duplicator Approved' Link "
-"am Ende dieses Dialogs finden Sie eine Liste der zugelassenen Hosting-"
-"Provider."
+#: inc/view.system.php:114
+#@ wpduplicator
+msgid "The above paths should have permissions of 755 for directories and 644 for files. On some hosts the permission set requires 777.  Setting items to 777 is a security issue and should only be set temporarily.  Please avoid any hosting company that requires this kind of setup.  See the 'Duplicator Approved' link at the bottom of this dialog for a list of approved hosting providers."
+msgstr "Die oben genannten Pfade sollten Berechtigungen von 755 für Verzeichnisse und 644 für Dateien haben. Auf einigen Hosts wird 777 benötigt. Berechtigungen von 777 sind eine Frage der Sicherheit und sollten nur vorübergehend eingestellt werden. Bitte vermeide Provider, welche diese Art der Berechtigung erfordern. Siehe 'Duplicator Approved' Link. Am Ende dieses Dialogs befindet sich eine Liste der zugelassenen Hosting-Provider."
 
-# @ wpduplicator
-#: inc/view.system.php:116
-msgid ""
-"Also be sure to check the Owner/Group settings and validate they are correct "
-"and match other successful directories/files that are accessible.  For more "
-"details contact your host or visit their help pages for more how they "
-"implement permission and group settings."
-msgstr ""
-"Auch sicher sein, um die Besitzer / Gruppe Einstellungen zu überprüfen und "
-"zu validieren sie korrekt sind und passen andere erfolgreiche "
-"Verzeichnisse / Dateien, die zugänglich sind. Für weitere Informationen "
-"kontaktieren Sie Ihren Host oder besuchen Sie die Hilfe-Seiten für mehr, wie "
-"sie die Erlaubnis und Gruppeneinstellungen zu implementieren."
+#: inc/view.system.php:117
+#, fuzzy
+#@ wpduplicator
+msgid "Also be sure to check the Owner/Group settings and validate they are correct and match other successful directories/files that are accessible.  For more details contact your host or visit their help pages for more information on how they implement permissions and group settings."
+msgstr "Überprüfe die Einstellungen für Besitzer / Gruppe, ob sie korrekt sind und passe die Verzeichnisse / Dateien soweit erforderlich an. Für weitere Informationen kontaktiere deinen Provider besuche die Hilfe-Seiten für mehr Informationen darüber, wie die notwendigen Berechtigungen und Gruppen-Einstellungen vorgenommen werden."
 
-# @ wpduplicator
-#: inc/view.system.php:123
+#: inc/view.system.php:124
+#@ wpduplicator
 msgid "Reserved Files"
 msgstr "Reservierte Dateien"
 
-# @ wpduplicator
-#: inc/view.system.php:126
-msgid ""
-"If this check fails then a reserved file was found in the WordPress root "
-"directory. The following are reserved file names installer.php, installer-"
-"data.sql and installer-log.txt.  In order to archive your data correctly "
-"please remove any of these files from your WordPress root directory. Then "
-"try creating your package again."
-msgstr ""
-"Wenn diese Prüfung fehlschlägt, wurde eine reserviertes Datei im WordPress-"
-"Root-Verzeichnis gefunden. Bitte entferne die Dateien installer.php, install-"
-"data.sql und install-log.txt vom deinem WordPress-Stammverzeichnis. Dann "
-"starte den Installer erneut."
+#: inc/view.system.php:127
+#@ wpduplicator
+msgid "If this check fails then a reserved file was found in the WordPress root directory. The following are reserved file names installer.php, installer-data.sql and installer-log.txt.  In order to archive your data correctly please remove any of these files from your WordPress root directory. Then try creating your package again."
+msgstr "Wenn diese Prüfung fehlschlägt, wurde eine reserviertes Datei im WordPress-Root-Verzeichnis gefunden. Bitte entferne die Dateien installer.php, install-data.sql und install-log.txt vom deinem WordPress-Stammverzeichnis. Dann starte den Installer erneut."
 
-# @ wpduplicator
-#: inc/view.system.php:131
+#: inc/view.system.php:132
+#@ wpduplicator
 msgid "Zip Archive Enabled"
 msgstr "Zip-Archiv Aktiviert"
 
-# @ wpduplicator
-#: inc/view.system.php:134
-msgid ""
-"The ZipArchive extension for PHP is required for compression.  Please "
-"contact your hosting provider if you're on a hosted server.  For additional "
-"information see our online documentation."
-msgstr ""
-"Die Zip-Archiv-Erweiterung für PHP erfordern eine Kompression. Weitere "
-"Informationen befinden sich auf unserer Online-Dokumentation."
-
-# @ wpduplicator
-#: inc/view.system.php:139
-msgid "Safe Mode Off"
-msgstr ""
+#: inc/view.system.php:135
+#@ wpduplicator
+msgid "The ZipArchive extension for PHP is required for compression.  Please contact your hosting provider if you're on a hosted server.  For additional information see our online documentation."
+msgstr "Die Zip-Archiv-Erweiterung für PHP erfordern eine Kompression. Weitere Informationen befinden sich auf unserer Online-Dokumentation."
 
-# @ wpduplicator
-#: inc/view.system.php:142
-msgid ""
-"Safe Mode needs to be disabled in order for the Duplicator to operate "
-"correctly.  Please set safe_mode = Off in you php.ini file.  If you're on a "
-"hosted server and don't have access to the php.ini file then you will need "
-"to request this setting be updated. Safe Mode is no longer in future "
-"versions of PHP.  If your host will not work with you to resolve the issue "
-"then consider a higher reputable hosting provider."
-msgstr ""
-"Safe Mode muss deaktiviert werden. Bitte safe_mode = off in der Datei php."
-"ini einstellen. Wenn du auf einem Server gehostet bist und keinen Zugriff "
-"auf die php.ini-Datei hast, kontaktiere deinen Provider. Safe Mode ist nicht "
-"mehr in zukünftigen Versionen von PHP. Falls erforderlich, wechsle den "
-"Hosting-Anbieter."
+#: inc/view.system.php:140
+#@ wpduplicator
+msgid "Safe Mode Off"
+msgstr "Safe Mode Off"
 
-# @ wpduplicator
-#: inc/view.system.php:147
-msgid "MySQLi Support"
-msgstr ""
+#: inc/view.system.php:143
+#@ wpduplicator
+msgid "Safe Mode needs to be disabled in order for the Duplicator to operate correctly.  Please set safe_mode = Off in you php.ini file.  If you're on a hosted server and don't have access to the php.ini file then you will need to request this setting be updated. Safe Mode is no longer in future versions of PHP.  If your host will not work with you to resolve the issue then consider a higher reputable hosting provider."
+msgstr "Safe Mode muss deaktiviert werden. Bitte safe_mode = off in der Datei php.ini einstellen. Wenn du auf einem Server gehostet bist und keinen Zugriff auf die php.ini-Datei hast, kontaktiere deinen Provider. Safe Mode entfällt in zukünftigen Versionen von PHP. Falls erforderlich, wechsle den Hosting-Anbieter."
 
-# @ wpduplicator
-#: inc/view.system.php:150
-msgid ""
-"In order to complete an install the mysqli extension for PHP is required. If "
-"you are on a hosted server please contact your host and request that mysqli "
-"extension be enabled. For more information visit: http://php.net/manual/en/"
-"mysqli.installation.php"
-msgstr ""
-"Zur Vervollständigung der Installation ist die mysqli-Erweiterung für PHP "
-"nicht erforderlich. Kontaktiere deinen Provider, ob die mysqli-Erweiterung "
-"aktiviert werden kann. Für weitere Informationen besuchen diese Seite: "
-"http://php.net/manual/en/mysqli.installation.php"
+#: inc/view.system.php:179
+#@ wpduplicator
+msgid "SYSTEM CHECKS"
+msgstr "SYSTEM CHECKS"
 
-# @ wpduplicator
-#: inc/view.system.php:159
-msgid "SYSTEM CHECKS"
-msgstr ""
-
-# @ wpduplicator
-#: inc/view.system.php:162
-msgid "PHP Version"
-msgstr ""
-
-# @ wpduplicator
-#: inc/view.system.php:164 inc/view.system.php:176 inc/view.system.php:200
+#: inc/view.system.php:185
+#: inc/view.system.php:209
+#@ wpduplicator
 msgid "Good"
 msgstr "Gut"
 
-# @ wpduplicator
-#: inc/view.system.php:166 inc/view.system.php:179 inc/view.system.php:182
-#: inc/view.system.php:185 inc/view.system.php:188
+#: inc/view.system.php:188
+#: inc/view.system.php:191
+#: inc/view.system.php:194
+#: inc/view.system.php:197
+#@ wpduplicator
 msgid "OK"
-msgstr ""
+msgstr "OK"
 
-# @ wpduplicator
-#: inc/view.system.php:167
-msgid "PHP 5.2.17+ is required"
-msgstr "PHP 5.2.17+ ist erforderlich"
-
-# @ wpduplicator
-#: inc/view.system.php:169 inc/view.system.php:191 inc/view.system.php:203
+#: inc/view.system.php:200
+#: inc/view.system.php:212
+#@ wpduplicator
 msgid "Fail"
 msgstr "Gescheitert"
 
-# @ wpduplicator
-#: inc/view.system.php:175 inc/view.system.php:178 inc/view.system.php:181
-#: inc/view.system.php:184 inc/view.system.php:187 inc/view.system.php:190
+#: inc/view.system.php:184
+#: inc/view.system.php:187
+#: inc/view.system.php:190
+#: inc/view.system.php:193
+#: inc/view.system.php:196
+#: inc/view.system.php:199
+#@ wpduplicator
 msgid "Web Server"
 msgstr "Webserver"
 
-# @ wpduplicator
-#: inc/view.system.php:190
+#: inc/view.system.php:199
+#@ wpduplicator
 msgid "Not detected"
 msgstr "Nicht erkannt"
 
-# @ wpduplicator
-#: inc/view.system.php:199 inc/view.system.php:202
+#: inc/view.system.php:208
+#: inc/view.system.php:211
+#@ wpduplicator
 msgid "Open Base Dir"
-msgstr ""
+msgstr "Open Base Dir"
 
-# @ wpduplicator
-#: inc/view.system.php:199
+#: inc/view.system.php:208
+#@ wpduplicator
 msgid "Off"
 msgstr "Aus"
 
-# @ wpduplicator
-#: inc/view.system.php:202
+#: inc/view.system.php:211
+#@ wpduplicator
 msgid "On"
 msgstr "An"
 
-# @ wpduplicator
-#: inc/view.system.php:209
+#: inc/view.system.php:218
+#@ wpduplicator
 msgid "PHP SAPI"
-msgstr ""
+msgstr "PHP SAPI"
 
-# @ wpduplicator
-#: inc/view.system.php:214
+#: inc/view.system.php:223
+#@ wpduplicator
 msgid "Scan Now"
 msgstr "Jetzt scannen"
 
-# @ wpduplicator
-#: inc/view.system.php:223
+#: inc/view.system.php:232
+#@ wpduplicator
 msgid "Cache Directory Found"
 msgstr "Cache-Verzeichnis gefunden"
 
-# @ wpduplicator
-#: inc/view.system.php:224
+#: inc/view.system.php:233
+#@ wpduplicator
 msgid "Add to exclusion path now"
 msgstr "In den Ausschluss-Pfad hinzufügen"
 
-# @ wpduplicator
-#: inc/view.system.php:226
+#: inc/view.system.php:235
+#@ wpduplicator
 msgid "Directory excluded"
 msgstr "Verzeichnis ausgeschlossen"
 
-# @ wpduplicator
-#: inc/view.system.php:227
+#: inc/view.system.php:236
+#@ wpduplicator
 msgid "Path"
 msgstr "Pfad"
 
-# @ wpduplicator
-#: inc/view.system.php:229
+#: inc/view.system.php:238
+#@ wpduplicator
 msgid "Cache Directory Not Found"
 msgstr "Cache-Verzeichnis nicht gefunden"
 
-# @ wpduplicator
-#: inc/view.system.php:235
+#: inc/view.system.php:244
+#@ wpduplicator
 msgid "ONLINE RESOURCES"
 msgstr "ONLINE-Quellen"
 
-# @ wpduplicator
-#: inc/view.system.php:240
+#: inc/view.system.php:249
+#@ wpduplicator
 msgid "For additional online help please visit"
 msgstr "Für weitere Online-Hilfe besuche bitte"
 
-# @ wpduplicator
-#: inc/view.system.php:246
+#: inc/view.system.php:255
+#@ wpduplicator
 msgid "Need a hosting provider that is"
 msgstr "Benötigst du einen für Duplicator zertifizierten Hosting-Anbieter?"
 
-# @ wpduplicator
-#: inc/view.system.php:248
+#: inc/view.system.php:257
 #, fuzzy
+#@ wpduplicator
 msgid "Duplicator Approved"
 msgstr "Duplicator-Einstellungen"
 
-# @ wpduplicator
-#: inc/view.system.php:259
+#: inc/view.system.php:268
+#@ wpduplicator
 msgid "Download Links"
-msgstr ""
+msgstr "Download Links"
 
-# @ wpduplicator
-#: inc/view.system.php:262
+#: inc/view.system.php:271
+#@ wpduplicator
 msgid "The following links contain sensitive data.  Please share with caution!"
-msgstr ""
-"Die folgenden Links enthalten sensible Daten. Bitte verwende sie mit "
-"Vorsicht!"
+msgstr "Die folgenden Links enthalten sensible Daten. Bitte verwende sie mit Vorsicht!"
+
+#: inc/view.system.php:277
+#@ wpduplicator
+msgid "The database SQL script is a quick link to your database backup script.  An exact copy is also stored in the package."
+msgstr "Das Datenbank-SQL-Skript ist ein direkter Link zum Datenbank-Backup-Skript. Eine exakte Kopie ist auch im Archiv gespeichert."
+
+#: inc/view.system.php:14
+#@ wpduplicator
+msgid "Scan sizes over 1GB may not finish processing on some hosting providers."
+msgstr "Dateigrößen über 1GB können bei einigen Providern möglicherweise  nicht verarbeitet werden."
+
+#: inc/view.system.php:21
+#@ wpduplicator
+msgid "Files that are not readable by the plugin will not be included in the overview."
+msgstr "Für das Plugin unleserliche Dateien werden nicht in die Übersicht aufgenommen."
+
+#: inc/view.system.php:148
+#@ wpduplicator
+msgid "MySQL Support"
+msgstr "MySQL-Unterstützung"
+
+#: inc/view.system.php:153
+#@ wpduplicator
+msgid "The version of MySQL on this server is "
+msgstr "Die Version von MySQL auf diesem Server ist "
 
-# @ wpduplicator
-#: inc/view.system.php:268
-msgid ""
-"The database SQL script is a quick link to your database backup script.  An "
-"exact copy is also stored in the package."
-msgstr ""
-"Das Datenbank SQL-Skript ist ein schneller Link zum Datenbank-Backup-Skript. "
-"Eine exakte Kopie ist auch im Archiv gespeichert."
+#: inc/view.system.php:155
+#@ wpduplicator
+msgid "The Duplicator requires MySQL version 4.1+ or better."
+msgstr "Der Duplicator erfordert MySQL Version 4.1+ oder höher."
+
+#: inc/view.system.php:158
+#@ wpduplicator
+msgid "If the MySQL server version is valid and this requirement fails then the mysqli extension is not installed. If you are on a hosted server please contact your host and request that mysqli extension and MySQL Server 4.1+ be installed. For more info visit: http://php.net/manual/en/mysqli.installation.php"
+msgstr "Wenn die MySQL-Server-Version gültig ist und diese Anforderung Fehler erzeugt, dann ist die MSQLIi-Erweiterung nicht installiert. Bei einem gehosteten Server wende dich bitte an den Provider und bitte ihn, die MSQLI-Erweiterung und MySQL Server 4.1 + zu installieren. Für weitere Informationen besuche diese Seite: http://php.net/manual/en/mysqli.installation.php"
+
+#: inc/view.system.php:163
+#@ wpduplicator
+msgid "PHP Support"
+msgstr "PHP Unterstützung"
+
+#: inc/view.system.php:167
+#@ wpduplicator
+msgid "The version of PHP on this server is "
+msgstr "Die Version von PHP auf diesem Server ist "
+
+#: inc/view.system.php:169
+#@ wpduplicator
+msgid "The Duplicator requires at least PHP version 5.2.17+ on this server.  Please contact your host and have them upgrade to this stable secure version if the test fails."
+msgstr "Die Duplicator benötigt mindestens PHP Version 5.2.17 + auf diesem Server. Bitte wende dich an deinen Provider, falls der Test fehlschlägt."
+
+#: inc/page.support.php:36
+#@ wpduplicator
+msgid "Product Page"
+msgstr "Produkt Seite"
+
Binary file web/wp-content/plugins/duplicator/lang/wpduplicator.mo has changed
--- a/web/wp-content/plugins/duplicator/lang/wpduplicator.pot	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-content/plugins/duplicator/lang/wpduplicator.pot	Wed Dec 19 17:46:52 2012 -0800
@@ -2,8 +2,8 @@
 msgstr ""
 "Project-Id-Version: WPDuplicator\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2012-08-16 06:20-0700\n"
-"PO-Revision-Date: 2012-08-16 06:22-0700\n"
+"POT-Creation-Date: 2012-09-13 21:16-0700\n"
+"PO-Revision-Date: 2012-09-13 21:16-0700\n"
 "Last-Translator: Cory Lamle <cory@lifeinthegrid.com>\n"
 "Language-Team: \n"
 "MIME-Version: 1.0\n"
@@ -11,61 +11,72 @@
 "Content-Transfer-Encoding: 8bit\n"
 "X-Poedit-KeywordsList: __;_e\n"
 "X-Poedit-Basepath: ./\n"
+"X-Generator: Poedit 1.5.3\n"
 "X-Poedit-SearchPath-0: ..\n"
 
-#: ../duplicator.php:195
+#: ../duplicator.php:198 ../inc/page.about.php:141
 msgid "FAQ"
 msgstr ""
 
-#: ../duplicator.php:196
+#: ../duplicator.php:199
 msgid "Partner"
 msgstr ""
 
-#: ../duplicator.php:197
+#: ../duplicator.php:200
 msgid "Approved Hosts"
 msgstr ""
 
-#: ../duplicator.php:248
+#: ../duplicator.php:250 ../inc/page.main.php:32
 msgid "Dashboard"
 msgstr ""
 
-#: ../duplicator.php:250
+#: ../duplicator.php:252 ../inc/page.diag.php:21
 msgid "Diagnostics"
 msgstr ""
 
-#: ../duplicator.php:281
+#: ../duplicator.php:253 ../inc/page.about.php:21 ../inc/page.diag.php:25
+#: ../inc/page.main.php:36 ../inc/page.support.php:10
+msgid "Support"
+msgstr ""
+
+#: ../duplicator.php:254 ../inc/page.diag.php:26 ../inc/page.main.php:37
+#: ../inc/page.support.php:14
+msgid "All About"
+msgstr ""
+
+#: ../duplicator.php:288
 msgid "Manage"
 msgstr ""
 
-#: ../files/log-read.php:42
+#: ../files/log-read.php:45
 msgid "Log file not found or unreadable"
 msgstr ""
 
-#: ../files/log-read.php:44
+#: ../files/log-read.php:47
 msgid ""
 "The log file for the Duplicator Plugin can be found in the snapshots "
 "directory with the extension *.log"
 msgstr ""
 
-#: ../files/log-read.php:45
+#: ../files/log-read.php:48
 msgid "If no log file is present the try to create a package"
 msgstr ""
 
-#: ../files/log-read.php:47
+#: ../files/log-read.php:50
 msgid "Reasons for log file not showing"
 msgstr ""
 
-#: ../files/log-read.php:48
+#: ../files/log-read.php:51
 msgid "The web server does not support returning .log file extentions"
 msgstr ""
 
-#: ../files/log-read.php:49
+#: ../files/log-read.php:52
 msgid ""
 "The snapshots directory does not have the correct permissions to write "
 "files.  Try setting the permissions to 755"
 msgstr ""
 
-#: ../files/log-read.php:50
+#: ../files/log-read.php:53
 msgid ""
 "The process that PHP runs under does not have enough permissions to create "
 "files.  Please contact your hosting provider for more details"
@@ -190,164 +201,332 @@
 msgid "Preview Log"
 msgstr ""
 
-#: ../inc/page.main.php:31
+#: ../inc/page.about.php:17
+msgid "About"
+msgstr ""
+
+#: ../inc/page.about.php:18 ../inc/page.diag.php:22 ../inc/page.main.php:33
+#: ../inc/page.support.php:11
 msgid "By"
 msgstr ""
 
-#: ../inc/page.main.php:38 ../inc/page.main.php:82
+#: ../inc/page.about.php:31
+msgid ""
+"Your LifeInTheGrid should be about working smarter not harder.  With the "
+"Duplicator you can streamline your workflows and quickly clone a WordPress "
+"site in minutes.  From Novice to Guru this plugin is designed for Bloggers, "
+"Admins, Developers, Designers, Entrepreneurs and anyone who uses WordPress."
+msgstr ""
+
+#: ../inc/page.about.php:33
+msgid ""
+"If you run into an issue feel free to submit a support ticket and visit our"
+msgstr ""
+
+#: ../inc/page.about.php:36
+msgid "knowledgebase"
+msgstr ""
+
+#: ../inc/page.about.php:39
+msgid ""
+"We also offer premium priority support for those who need feedback within "
+"24-48hrs.  Please visit our "
+msgstr ""
+
+#: ../inc/page.about.php:40 ../inc/page.support.php:70
+msgid "service page"
+msgstr ""
+
+#: ../inc/page.about.php:41
+msgid "for more details."
+msgstr ""
+
+#: ../inc/page.about.php:50
+msgid "Support Duplicator"
+msgstr ""
+
+#: ../inc/page.about.php:62
+msgid ""
+"Consider a donation of any amount; it will take less than 60 seconds or "
+"about as fast as you can duplicate a site.  These proceeds help to cover "
+"development and support costs.  Thanks for your generosity!!"
+msgstr ""
+
+#: ../inc/page.about.php:74
+msgid "Help out by leaving a 5 star review on the"
+msgstr ""
+
+#: ../inc/page.about.php:75
+msgid "WordPress plugins directory"
+msgstr ""
+
+#: ../inc/page.about.php:76
+msgid "and by giving your opinion on the survey below."
+msgstr ""
+
+#: ../inc/page.about.php:79
+msgid "Give us your Opinion?"
+msgstr ""
+
+#: ../inc/page.about.php:91
+msgid "Spread the Word"
+msgstr ""
+
+#: ../inc/page.about.php:92
+msgid ""
+"Spreading the word gives the plugin a wider audience which helps to pool "
+"more resources to test/support/develop and participate to improve the "
+"plugin.  By getting the word out the Duplicator will continue to improve at "
+"a faster rate and harness the power of the open community to push the plugin "
+"further."
+msgstr ""
+
+#: ../inc/page.about.php:95
+msgid "Duplicate Your WordPress"
+msgstr ""
+
+#: ../inc/page.about.php:96
+msgid "Rapid WordPress Duplication by LifeInTheGrid.com"
+msgstr ""
+
+#: ../inc/page.about.php:140 ../inc/page.support.php:23
+msgid "Knowledge Base"
+msgstr ""
+
+#: ../inc/page.about.php:142
+msgid "Blog"
+msgstr ""
+
+#: ../inc/page.about.php:143
+msgid "Labs"
+msgstr ""
+
+#: ../inc/page.main.php:45 ../inc/page.main.php:86
 msgid "Package Name"
 msgstr ""
 
-#: ../inc/page.main.php:41
+#: ../inc/page.main.php:48
 msgid "Create Package"
 msgstr ""
 
-#: ../inc/page.main.php:42
+#: ../inc/page.main.php:49
 msgid "Delete selected package(s)"
 msgstr ""
 
-#: ../inc/page.main.php:45
+#: ../inc/page.main.php:52
 msgid "Options"
 msgstr ""
 
-#: ../inc/page.main.php:46
+#: ../inc/page.main.php:53
 msgid "System Check"
 msgstr ""
 
-#: ../inc/page.main.php:47
+#: ../inc/page.main.php:54
 msgid "Show Create Log"
 msgstr ""
 
-#: ../inc/page.main.php:50
-msgid "Help"
-msgstr ""
-
-#: ../inc/page.main.php:51
-msgid "Partner with us"
-msgstr ""
-
-#: ../inc/page.main.php:60
+#: ../inc/page.main.php:64
 msgid "Status"
 msgstr ""
 
-#: ../inc/page.main.php:61
+#: ../inc/page.main.php:65
 msgid "Ready to create new package"
 msgstr ""
 
-#: ../inc/page.main.php:77
+#: ../inc/page.main.php:81
 msgid "Select all packages"
 msgstr ""
 
-#: ../inc/page.main.php:78
+#: ../inc/page.main.php:82
 msgid "Information"
 msgstr ""
 
-#: ../inc/page.main.php:79
+#: ../inc/page.main.php:83
 msgid "Owner"
 msgstr ""
 
-#: ../inc/page.main.php:80
+#: ../inc/page.main.php:84
 msgid "Created"
 msgstr ""
 
-#: ../inc/page.main.php:81
+#: ../inc/page.main.php:85
 msgid "Size"
 msgstr ""
 
-#: ../inc/page.main.php:84
+#: ../inc/page.main.php:88
 msgid "Package Set"
 msgstr ""
 
-#: ../inc/page.main.php:85
+#: ../inc/page.main.php:89
 msgid "(Download Both)"
 msgstr ""
 
-#: ../inc/page.main.php:116 ../inc/page.main.php:144
+#: ../inc/page.main.php:120 ../inc/page.main.php:148
 msgid "View"
 msgstr ""
 
-#: ../inc/page.main.php:122 ../inc/view.options.php:10
+#: ../inc/page.main.php:126 ../inc/view.options.php:10
 msgid "Installer"
 msgstr ""
 
-#: ../inc/page.main.php:123 ../inc/page.main.php:152 ../inc/view.options.php:9
+#: ../inc/page.main.php:127 ../inc/page.main.php:156 ../inc/view.options.php:9
 msgid "Package"
 msgstr ""
 
-#: ../inc/page.main.php:129
+#: ../inc/page.main.php:133
 msgid "Version"
 msgstr ""
 
-#: ../inc/page.main.php:130
+#: ../inc/page.main.php:134
 msgid "Secure Name"
 msgstr ""
 
-#: ../inc/page.main.php:131
+#: ../inc/page.main.php:135
 msgid "Download SQL File"
 msgstr ""
 
-#: ../inc/page.main.php:132
+#: ../inc/page.main.php:136
 msgid "Show Download Links"
 msgstr ""
 
-#: ../inc/page.main.php:158
+#: ../inc/page.main.php:162
 msgid "Legacy Version"
 msgstr ""
 
-#: ../inc/page.main.php:161
+#: ../inc/page.main.php:165
 msgid ""
 "This package was built with a version that is no longer supported.  It is "
 "highly recommended that this package be deleted.  For more details see the"
 msgstr ""
 
-#: ../inc/page.main.php:162
+#: ../inc/page.main.php:166
 msgid "Online FAQs"
 msgstr ""
 
-#: ../inc/page.main.php:174
+#: ../inc/page.main.php:178
 msgid "No packages found"
 msgstr ""
 
-#: ../inc/page.main.php:175
-msgid "To create a new package, enter a name and click the create button "
-msgstr ""
-
-#: ../inc/page.main.php:177
-msgid "Check Your"
-msgstr ""
-
-#: ../inc/page.main.php:178
-msgid "servers compatability"
-msgstr ""
-
 #: ../inc/page.main.php:179
-msgid "with the duplicator"
-msgstr ""
-
-#: ../inc/page.main.php:180
-msgid "This process will backup all your files and database"
+msgid "To create a new package, enter a name and click the create button "
 msgstr ""
 
 #: ../inc/page.main.php:181
-msgid "Creating a package may take several minutes if you have a large site"
+msgid "Check your"
 msgstr ""
 
 #: ../inc/page.main.php:182
+msgid "server's compatibility"
+msgstr ""
+
+#: ../inc/page.main.php:183
+msgid "with the duplicator"
+msgstr ""
+
+#: ../inc/page.main.php:184
+msgid "This process will backup all your files and database"
+msgstr ""
+
+#: ../inc/page.main.php:185
+msgid "Creating a package may take several minutes if you have a large site"
+msgstr ""
+
+#: ../inc/page.main.php:186
 msgid "This window should remain open for the process to complete"
 msgstr ""
 
-#: ../inc/page.main.php:183
+#: ../inc/page.main.php:187
 msgid "Please be patient while we work through this Beta version"
 msgstr ""
 
-#: ../inc/page.main.php:184
+#: ../inc/page.main.php:188
 msgid "Please report any issues to"
 msgstr ""
 
-#: ../inc/page.main.php:201
+#: ../inc/page.main.php:205
 msgid "Total Storage Used"
 msgstr ""
 
+#: ../inc/page.support.php:28
+msgid ""
+"For a complete rundown of the Duplicator see the online knowledgebase by "
+"clicking the question button or any link below.   If you experience issues "
+"with creating or installing a package check out the FAQ page first."
+msgstr ""
+
+#: ../inc/page.support.php:32
+msgid "Quick Start"
+msgstr ""
+
+#: ../inc/page.support.php:33
+msgid "User Guide"
+msgstr ""
+
+#: ../inc/page.support.php:34
+msgid "FAQs"
+msgstr ""
+
+#: ../inc/page.support.php:35
+msgid "Changelog"
+msgstr ""
+
+#: ../inc/page.support.php:42
+msgid "Approved Hosting"
+msgstr ""
+
+#: ../inc/page.support.php:48
+msgid ""
+"Not all hosting companies are created equal and to get the most out of the "
+"plugin we recommend using hosting providers that we do our own testing on.  "
+"Please visit our"
+msgstr ""
+
+#: ../inc/page.support.php:51
+msgid "Approved Affiliate Hosting Program"
+msgstr ""
+
+#: ../inc/page.support.php:52
+msgid ""
+"and consider making a switch to hosts that we trust and have experienced "
+"good success with when using the Duplicator"
+msgstr ""
+
+#: ../inc/page.support.php:59
+msgid "Online Support"
+msgstr ""
+
+#: ../inc/page.support.php:66
+msgid ""
+"If you run into an issue and have already read the FAQs feel free to submit "
+"a support ticket and we will try our best to respond within 5-10 business "
+"days or sooner if possible."
+msgstr ""
+
+#: ../inc/page.support.php:69
+msgid "If you need priority support within 24-48hrs please visit our "
+msgstr ""
+
+#: ../inc/page.support.php:71
+msgid ""
+"for more details.  Premium support is 100% refundable if we are unable to "
+"resolve your issue."
+msgstr ""
+
+#: ../inc/page.support.php:77
+msgid ""
+"Most issues that occur with the Duplicator revolve around how a server is "
+"configured.  In order to diagnose your issues we will require temporary "
+"admin accounts to your cPanel and WordPress Admin.  Please fill out the "
+msgstr ""
+
+#: ../inc/page.support.php:79
+msgid "Request Quote"
+msgstr ""
+
+#: ../inc/page.support.php:80
+msgid "form and explain your issue in detail."
+msgstr ""
+
 #: ../inc/view.options.php:4
 msgid "Duplicator Options"
 msgstr ""
@@ -465,7 +644,7 @@
 msgstr ""
 
 #: ../inc/view.options.php:132
-msgid "Delete Entire Snapshot Directory"
+msgid "Delete entire snapshot directory when removing plugin"
 msgstr ""
 
 #: ../inc/view.options.php:133
@@ -488,7 +667,7 @@
 msgid "Create a new Package Set?"
 msgstr ""
 
-#: ../inc/view.system.php:10 ../inc/view.system.php:205
+#: ../inc/view.system.php:10 ../inc/view.system.php:212
 msgid "Pre-Zip Overview"
 msgstr ""
 
@@ -587,7 +766,7 @@
 msgstr ""
 
 #: ../inc/view.system.php:79
-msgid "System Checks"
+msgid "System Status"
 msgstr ""
 
 #: ../inc/view.system.php:82
@@ -607,17 +786,32 @@
 msgstr ""
 
 #: ../inc/view.system.php:96
+msgid "Required permissions"
+msgstr ""
+
+#: ../inc/view.system.php:113
 msgid ""
-"The following directories should have permissions of 755 and files 644.  "
-"Keep in mind that PHP may be accessing the paths/files as the user id that "
-"the web server runs as."
+"The above paths should have permissions of 755 for directories and 644 for "
+"files. On some hosts the permission set requires 777.  Setting items to 777 "
+"is a security issue and should only be set temporarily.  Please avoid any "
+"hosting company that requires this kind of setup.  See the 'Duplicator "
+"Approved' link at the bottom of this dialog for a list of approved hosting "
+"providers."
 msgstr ""
 
 #: ../inc/view.system.php:116
+msgid ""
+"Also be sure to check the Owner/Group settings and validate they are correct "
+"and match other successful directories/files that are accessible.  For more "
+"details contact your host or visit their help pages for more information on "
+"how they implement permissions and group settings."
+msgstr ""
+
+#: ../inc/view.system.php:123
 msgid "Reserved Files"
 msgstr ""
 
-#: ../inc/view.system.php:119
+#: ../inc/view.system.php:126
 msgid ""
 "If this check fails then a reserved file was found in the WordPress root "
 "directory. The following are reserved file names installer.php, installer-"
@@ -626,22 +820,22 @@
 "try creating your package again."
 msgstr ""
 
-#: ../inc/view.system.php:124
+#: ../inc/view.system.php:131
 msgid "Zip Archive Enabled"
 msgstr ""
 
-#: ../inc/view.system.php:127
+#: ../inc/view.system.php:134
 msgid ""
 "The ZipArchive extension for PHP is required for compression.  Please "
 "contact your hosting provider if you're on a hosted server.  For additional "
 "information see our online documentation."
 msgstr ""
 
-#: ../inc/view.system.php:132
+#: ../inc/view.system.php:139
 msgid "Safe Mode Off"
 msgstr ""
 
-#: ../inc/view.system.php:135
+#: ../inc/view.system.php:142
 msgid ""
 "Safe Mode needs to be disabled in order for the Duplicator to operate "
 "correctly.  Please set safe_mode = Off in you php.ini file.  If you're on a "
@@ -651,11 +845,11 @@
 "then consider a higher reputable hosting provider."
 msgstr ""
 
-#: ../inc/view.system.php:140
+#: ../inc/view.system.php:147
 msgid "MySQLi Support"
 msgstr ""
 
-#: ../inc/view.system.php:143
+#: ../inc/view.system.php:150
 msgid ""
 "In order to complete an install the mysqli extension for PHP is required. If "
 "you are on a hosted server please contact your host and request that mysqli "
@@ -663,109 +857,109 @@
 "mysqli.installation.php"
 msgstr ""
 
-#: ../inc/view.system.php:152
+#: ../inc/view.system.php:159
 msgid "SYSTEM CHECKS"
 msgstr ""
 
-#: ../inc/view.system.php:155
+#: ../inc/view.system.php:162
 msgid "PHP Version"
 msgstr ""
 
-#: ../inc/view.system.php:157 ../inc/view.system.php:169
-#: ../inc/view.system.php:193
+#: ../inc/view.system.php:164 ../inc/view.system.php:176
+#: ../inc/view.system.php:200
 msgid "Good"
 msgstr ""
 
-#: ../inc/view.system.php:159 ../inc/view.system.php:172
-#: ../inc/view.system.php:175 ../inc/view.system.php:178
-#: ../inc/view.system.php:181
+#: ../inc/view.system.php:166 ../inc/view.system.php:179
+#: ../inc/view.system.php:182 ../inc/view.system.php:185
+#: ../inc/view.system.php:188
 msgid "OK"
 msgstr ""
 
-#: ../inc/view.system.php:160
+#: ../inc/view.system.php:167
 msgid "PHP 5.2.17+ is required"
 msgstr ""
 
-#: ../inc/view.system.php:162 ../inc/view.system.php:184
-#: ../inc/view.system.php:196
+#: ../inc/view.system.php:169 ../inc/view.system.php:191
+#: ../inc/view.system.php:203
 msgid "Fail"
 msgstr ""
 
-#: ../inc/view.system.php:168 ../inc/view.system.php:171
-#: ../inc/view.system.php:174 ../inc/view.system.php:177
-#: ../inc/view.system.php:180 ../inc/view.system.php:183
+#: ../inc/view.system.php:175 ../inc/view.system.php:178
+#: ../inc/view.system.php:181 ../inc/view.system.php:184
+#: ../inc/view.system.php:187 ../inc/view.system.php:190
 msgid "Web Server"
 msgstr ""
 
-#: ../inc/view.system.php:183
+#: ../inc/view.system.php:190
 msgid "Not detected"
 msgstr ""
 
-#: ../inc/view.system.php:192 ../inc/view.system.php:195
+#: ../inc/view.system.php:199 ../inc/view.system.php:202
 msgid "Open Base Dir"
 msgstr ""
 
-#: ../inc/view.system.php:192
+#: ../inc/view.system.php:199
 msgid "Off"
 msgstr ""
 
-#: ../inc/view.system.php:195
-msgid "On"
-msgstr ""
-
 #: ../inc/view.system.php:202
+msgid "On"
+msgstr ""
+
+#: ../inc/view.system.php:209
 msgid "PHP SAPI"
 msgstr ""
 
-#: ../inc/view.system.php:207
+#: ../inc/view.system.php:214
 msgid "Scan Now"
 msgstr ""
 
-#: ../inc/view.system.php:216
+#: ../inc/view.system.php:223
 msgid "Cache Directory Found"
 msgstr ""
 
-#: ../inc/view.system.php:217
+#: ../inc/view.system.php:224
 msgid "Add to exclusion path now"
 msgstr ""
 
-#: ../inc/view.system.php:219
+#: ../inc/view.system.php:226
 msgid "Directory excluded"
 msgstr ""
 
-#: ../inc/view.system.php:220
+#: ../inc/view.system.php:227
 msgid "Path"
 msgstr ""
 
-#: ../inc/view.system.php:222
+#: ../inc/view.system.php:229
 msgid "Cache Directory Not Found"
 msgstr ""
 
-#: ../inc/view.system.php:228
+#: ../inc/view.system.php:235
 msgid "ONLINE RESOURCES"
 msgstr ""
 
-#: ../inc/view.system.php:233
+#: ../inc/view.system.php:240
 msgid "For additional online help please visit"
 msgstr ""
 
-#: ../inc/view.system.php:239
+#: ../inc/view.system.php:246
 msgid "Need a hosting provider that is"
 msgstr ""
 
-#: ../inc/view.system.php:241
+#: ../inc/view.system.php:248
 msgid "Duplicator Approved"
 msgstr ""
 
-#: ../inc/view.system.php:252
+#: ../inc/view.system.php:259
 msgid "Download Links"
 msgstr ""
 
-#: ../inc/view.system.php:255
+#: ../inc/view.system.php:262
 msgid "The following links contain sensitive data.  Please share with caution!"
 msgstr ""
 
-#: ../inc/view.system.php:261
+#: ../inc/view.system.php:268
 msgid ""
 "The database SQL script is a quick link to your database backup script.  An "
 "exact copy is also stored in the package."
--- a/web/wp-content/plugins/duplicator/readme.txt	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-content/plugins/duplicator/readme.txt	Wed Dec 19 17:46:52 2012 -0800
@@ -2,9 +2,9 @@
 Contributors: Cory Lamle
 Donate link: www.lifeinthegrid.com/partner
 Tags: backup, restore, move, migrate, localhost, synchronize, duplicate, clone, automate, niche  
-Requires at least: 3.2
-Tested up to: 3.3
-Stable tag: 0.3.2 
+Requires at least: 3.3
+Tested up to: 3.5
+Stable tag: 0.4.1 
 License: GPLv2
 
 Duplicate, clone, backup, move and transfer an entire site from one location to another in 3 easy steps.
@@ -28,13 +28,16 @@
 For complete details see: 
 [lifeinthegrid.com](http://lifeinthegrid.com/) 
 
-Special contributor thanks to:
-<li>Robert Riley from www.taminglife.com</li>
+Contributors:
 <li>Aaron Crawford</li>
-<li>Rami from www.wp-tricks.co.il</li>
+<li>Tomas Gurny</li>
 <li>Paal Joachim Romdahl</li>
-<li>Vincent G from www.Host1Free.com</li>
-<li>Hans-M. Herbrand www.web266.de</li>
+
+Localization:
+<li>Hans-M. Herbrand (German) www.web266.de</li>
+<li>Rami (Hebrew) www.wp-tricks.co.il</li>
+<li>Vincent G from (Lietuva) www.Host1Free.com</li>
+
 
 
 == Installation ==
@@ -68,7 +71,7 @@
 == Screenshots ==
  
 1. The main interface used to create and manage packages
-2. The options dialog is used to configure and setup the Duplicator
+2. The systems check dialog, used to validate a server
 3. The installer screen used to install a packaged instance
  
 
Binary file web/wp-content/plugins/duplicator/screenshot-3.jpg has changed
--- a/web/wp-content/plugins/feedburner-plugin/fdfeedburner.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-content/plugins/feedburner-plugin/fdfeedburner.php	Wed Dec 19 17:46:52 2012 -0800
@@ -1,11 +1,11 @@
 <?php
 /*
-Plugin Name: FD Feedburner Plugin
+ Plugin Name: FD Feedburner Plugin
 Plugin URI: http://flagrantdisregard.com/feedburner/
 Description: Redirects all feeds to a Feedburner feed
 Author: John Watson
 Author URI: http://flagrantdisregard.com/
-Version: 1.45
+Version: 1.46
 
 Copyright (C) Sat Feb 18 2006 John Watson
 john@flagrantdisregard.com
@@ -26,7 +26,7 @@
 You should have received a copy of the GNU General Public License
 along with this program; if not, write to the Free Software
 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
-*/ 
+*/
 
 define('FDFEEDBURNER_TEXTDOMAIN', 'fdfeedburner');
 
@@ -40,9 +40,9 @@
 	global $wpdb;
 	if ( function_exists('add_submenu_page') )
 		add_submenu_page('options-general.php',
-			__('Feedburner', FDFEEDBURNER_TEXTDOMAIN),
-			__('Feedburner', FDFEEDBURNER_TEXTDOMAIN),
-			'manage_options', __FILE__, 'feedburner_conf');
+				__('Feedburner', FDFEEDBURNER_TEXTDOMAIN),
+				__('Feedburner', FDFEEDBURNER_TEXTDOMAIN),
+				'manage_options', __FILE__, 'feedburner_conf');
 }
 
 function feedburner_fix_url($url) {
@@ -60,54 +60,62 @@
 	if (!isset($options['feedburner_append_cats'])) $options['feedburner_append_cats'] = 0;
 	if (!isset($options['feedburner_no_cats'])) $options['feedburner_no_cats'] = 0;
 	if (!isset($options['feedburner_no_search'])) $options['feedburner_no_search'] = 0;
-	
+	if (!isset($options['feedburner_no_author'])) $options['feedburner_no_author'] = 0;
+
 	$updated = false;
 	if ( isset($_POST['submit']) ) {
 		check_admin_referer('fdfeedburner', 'fdfeedburner-admin');
-		
+
 		if (isset($_POST['feedburner_url'])) {
 			$feedburner_url = $_POST['feedburner_url'];
 			if ($feedburner_url != null) $feedburner_url = feedburner_fix_url($feedburner_url);
 		} else {
 			$feedburner_url = null;
 		}
-		
+
 		if (isset($_POST['feedburner_comment_url'])) {
 			$feedburner_comment_url = $_POST['feedburner_comment_url'];
 			if ($feedburner_comment_url != null) $feedburner_comment_url = feedburner_fix_url($feedburner_comment_url);
 		} else {
 			$feedburner_comment_url = null;
 		}
-		
+
 		if (isset($_POST['feedburner_append_cats'])) {
 			$feedburner_append_cats = $_POST['feedburner_append_cats'];
 		} else {
 			$feedburner_append_cats = 0;
 		}
-		
+
 		if (isset($_POST['feedburner_no_cats'])) {
 			$feedburner_no_cats = $_POST['feedburner_no_cats'];
 		} else {
 			$feedburner_no_cats = 0;
 		}
-		
+
 		if (isset($_POST['feedburner_no_search'])) {
 			$feedburner_no_search = $_POST['feedburner_no_search'];
 		} else {
 			$feedburner_no_search = 0;
 		}
-		
+
+		if (isset($_POST['feedburner_no_author'])) {
+			$feedburner_no_author = $_POST['feedburner_no_author'];
+		} else {
+			$feedburner_no_author = 0;
+		}
+
 		$options['feedburner_url'] = $feedburner_url;
 		$options['feedburner_comment_url'] = $feedburner_comment_url;
 		$options['feedburner_append_cats'] = $feedburner_append_cats;
 		$options['feedburner_no_cats'] = $feedburner_no_cats;
 		$options['feedburner_no_search'] = $feedburner_no_search;
-		
+		$options['feedburner_no_author'] = $feedburner_no_author;
+
 		update_option('fd_feedburner', $options);
-		
+
 		$updated = true;
 	}
-?>
+	?>
 
 <div class="wrap">
 <?php
@@ -145,6 +153,11 @@
 	<label for="feedburner_no_search"><?php _e('Do not redirect search result feeds', FDFEEDBURNER_TEXTDOMAIN); ?></label>
 </p>
 
+<p>
+	<input id="feedburner_no_author" name="feedburner_no_author" type="checkbox" value="1"<?php if ($options['feedburner_no_author']==1) echo ' checked'; ?> />
+	<label for="feedburner_no_author"><?php _e('Do not redirect author feeds', FDFEEDBURNER_TEXTDOMAIN); ?></label>
+</p>
+
 <p class="submit" style="text-align: left"><?php wp_nonce_field('fdfeedburner', 'fdfeedburner-admin'); ?><input type="submit" name="submit" value="<?php _e('Save', FDFEEDBURNER_TEXTDOMAIN); ?> &raquo;" /></p>
 </form>
 </div>
@@ -171,10 +184,11 @@
 	if (!isset($options['feedburner_append_cats'])) $options['feedburner_append_cats'] = 0;
 	if (!isset($options['feedburner_no_cats'])) $options['feedburner_no_cats'] = 0;
 	if (!isset($options['feedburner_no_search'])) $options['feedburner_no_search'] = 0;
+	if (!isset($options['feedburner_no_author'])) $options['feedburner_no_author'] = 0;
 	$feed_url = $options['feedburner_url'];
 	$comment_url = $options['feedburner_comment_url'];
 	if ($feed_url == null && $comment_url == null) return;
-	
+
 	// Get category
 	$cat = null;
 	if ($wp->query_vars['category_name'] != null) {
@@ -207,6 +221,12 @@
 		$search = $wp->query_vars['s'];
 	}
 
+	// Get author name
+	$author_name = null;
+	if ($wp->query_vars['author_name'] != null) {
+		$author_name = $wp->query_vars['author_name'];
+	}
+
 	// Redirect comment feed
 	if ($feed == 'comments-rss2' || is_single() || $withcomments) {
 		if ($comment_url != null) {
@@ -225,6 +245,8 @@
 					// If this is a category/tag feed and redirect is disabled, do nothing
 				} else if ($search && $options['feedburner_no_search'] == 1) {
 					// If this is a search result feed and redirect is disabled, do nothing
+				} else if ($author_name && $options['feedburner_no_author'] == 1) {
+					// If this is an author feed and redirect is disabled, do nothing
 				} else {
 					if ($feed_url != null) {
 						// Redirect the feed
@@ -242,4 +264,3 @@
 ==================================================
 */
 add_action('template_redirect', 'feedburner_redirect');
-?>
\ No newline at end of file
Binary file web/wp-content/plugins/feedburner-plugin/languages/fdfeedburner-ru_RU.mo has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-content/plugins/feedburner-plugin/languages/fdfeedburner-ru_RU.po	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,97 @@
+msgid ""
+msgstr ""
+"Project-Id-Version: FD Feedburner Plugin v1.45\n"
+"Report-Msgid-Bugs-To: \n"
+"POT-Creation-Date: \n"
+"PO-Revision-Date: 2012-11-16 21:06:43+0000\n"
+"Last-Translator: CEO Vizitti vizitti.com\n"
+"Language-Team: \n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=n != 1;\n"
+"X-Poedit-Language: Russian\n"
+"X-Poedit-Country: RUSSIA\n"
+"X-Poedit-SourceCharset: utf-8\n"
+"X-Poedit-KeywordsList: __;_e;__ngettext:1,2;_n:1,2;__ngettext_noop:1,2;_n_noop:1,2;_c,_nc:4c,1,2;_x:1,2c;_ex:1,2c;_nx:4c,1,2;_nx_noop:4c,1,2;\n"
+"X-Poedit-Basepath: ../\n"
+"X-Poedit-Bookmarks: \n"
+"X-Poedit-SearchPath-0: .\n"
+"X-Textdomain-Support: yes"
+
+#: fdfeedburner.php:43
+#: fdfeedburner.php:44
+#@ fdfeedburner
+msgid "Feedburner"
+msgstr "Feedburner"
+
+#: fdfeedburner.php:116
+#@ fdfeedburner
+msgid "Configuration updated."
+msgstr "ÐаÑтройки Ñохранены."
+
+#: fdfeedburner.php:120
+#@ fdfeedburner
+msgid "Feedburner Configuration"
+msgstr "ÐаÑтройка Feedburner"
+
+#: fdfeedburner.php:122
+#@ fdfeedburner
+msgid "How does this work?"
+msgstr "Как Ñто работает?"
+
+#: fdfeedburner.php:123
+#@ fdfeedburner
+msgid "This plugin automatically redirects all of your existing feeds to Feedburner (including category and tag feeds)."
+msgstr "Этот плагин автоматичеÑки перенаправлÑет вÑе ваши ÑущеÑтвующие фиды на Feedburner (Ð²ÐºÐ»ÑŽÑ‡Ð°Ñ Ñ„Ð¸Ð´Ñ‹ на категории и теги)."
+
+#: fdfeedburner.php:124
+#@ fdfeedburner
+msgid "First go to <a href=\"http://feedburner.com\">Feedburner.com</a> and burn your feed. Enter the URL Feedburner created for you. You may optionally redirect your comments feed using the same procedure. To disable redirection, disable the plugin or erase the URLs."
+msgstr "Ð”Ð»Ñ Ð½Ð°Ñ‡Ð°Ð»Ð° зайдите на <a href=\"http://feedburner.com\">Feedburner.com</a> и добавьте ваш фид. Введите URL, который Feedburner ÑоздаÑÑ‚ Ð´Ð»Ñ Ð²Ð°Ñ. При желании вы можете иÑпользовать те же процедуры Ð´Ð»Ñ Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ñ„Ð¸Ð´Ð° комментариев. Что бы отключить перенаправление, деактивируйте плагин или почиÑтите URL'Ñ‹."
+
+#: fdfeedburner.php:125
+#@ default
+msgid "Once you enter URLs your feeds will be redirected automatically and you do not need to take any further action."
+msgstr ""
+
+#: fdfeedburner.php:125
+#@ fdfeedburner
+msgid "Note that your feeds may not appear to redirect to Feedburner until you add a new post."
+msgstr "Учтите, что ваши фиды могут не перенаправлÑтьÑÑ Ð½Ð° Feedburner , пока вы не добавите новую запиÑÑŒ."
+
+#: fdfeedburner.php:128
+#@ fdfeedburner
+msgid "Redirect my feeds here:"
+msgstr "Перенаправить мои фиды Ñюда:"
+
+#: fdfeedburner.php:131
+#@ fdfeedburner
+msgid "Redirect my comments feed here:"
+msgstr "Перенаправить фиды комментариев Ñюда:"
+
+#: fdfeedburner.php:134
+#@ fdfeedburner
+msgid "Advanced Options"
+msgstr "Дополнительные опции"
+
+#: fdfeedburner.php:137
+#@ fdfeedburner
+msgid "Do not redirect category or tag feeds"
+msgstr "Ðе перенаправлÑть фиды тегов и категорий"
+
+#: fdfeedburner.php:141
+#@ fdfeedburner
+msgid "Append category/tag to URL for category/tag feeds"
+msgstr "Добавить категорию/тег к URL Ð´Ð»Ñ Ñ„Ð¸Ð´Ð¾Ð² категорий и тегов"
+
+#: fdfeedburner.php:145
+#@ fdfeedburner
+msgid "Do not redirect search result feeds"
+msgstr "Ðе перенаправлÑть фиды результатов поиÑка"
+
+#: fdfeedburner.php:148
+#@ fdfeedburner
+msgid "Save"
+msgstr "Сохранить"
+
--- a/web/wp-content/plugins/feedburner-plugin/languages/fdfeedburner.pot	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-content/plugins/feedburner-plugin/languages/fdfeedburner.pot	Wed Dec 19 17:46:52 2012 -0800
@@ -1,41 +1,41 @@
 # Translation of the WordPress plugin FD Feedburner by .
-# Copyright (C) 2010 
+# Copyright (C) 2012
 # This file is distributed under the same license as the  package.
 msgid ""
 msgstr ""
-"Project-Id-Version: FD Feedburner Plugin 1.42\n"
+"Project-Id-Version: FD Feedburner Plugin 1.46\n"
 "Report-Msgid-Bugs-To: John Watson (john@flagrantdisregard.com)\n"
-"POT-Creation-Date: 2010-03-31 12:01-0700\n"
+"POT-Creation-Date: 2012-12-04 17:19:02+00:00\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
 "PO-Revision-Date: 2010-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=utf-8\n"
-"Content-Transfer-Encoding: 8bit\n"
 
 #: fdfeedburner.php:43 fdfeedburner.php:44
 msgid "Feedburner"
 msgstr ""
 
-#: fdfeedburner.php:120
+#: fdfeedburner.php:124
+msgid "Configuration updated."
+msgstr ""
+
+#: fdfeedburner.php:128
 msgid "Feedburner Configuration"
 msgstr ""
 
-#: fdfeedburner.php:116
-msgid "Configuration updated."
-msgstr ""
-
-#: fdfeedburner.php:122
+#: fdfeedburner.php:130
 msgid "How does this work?"
 msgstr ""
 
-#: fdfeedburner.php:123
+#: fdfeedburner.php:131
 msgid ""
 "This plugin automatically redirects all of your existing feeds to Feedburner "
 "(including category and tag feeds)."
 msgstr ""
 
-#: fdfeedburner.php:124
+#: fdfeedburner.php:132
 msgid ""
 "First go to <a href=\"http://feedburner.com\">Feedburner.com</a> and burn "
 "your feed. Enter the URL Feedburner created for you. You may optionally "
@@ -43,42 +43,46 @@
 "redirection, disable the plugin or erase the URLs."
 msgstr ""
 
-#: fdfeedburner.php:125
+#: fdfeedburner.php:133
 msgid ""
 "Once you enter URLs your feeds will be redirected automatically and you do "
 "not need to take any further action."
 msgstr ""
 
-#: fdfeedburner.php:125
+#: fdfeedburner.php:133
 msgid ""
 "Note that your feeds may not appear to redirect to Feedburner until you add "
 "a new post."
 msgstr ""
 
-#: fdfeedburner.php:128
+#: fdfeedburner.php:136
 msgid "Redirect my feeds here:"
 msgstr ""
 
-#: fdfeedburner.php:131
+#: fdfeedburner.php:139
 msgid "Redirect my comments feed here:"
 msgstr ""
 
-#: fdfeedburner.php:134
+#: fdfeedburner.php:142
 msgid "Advanced Options"
 msgstr ""
 
-#: fdfeedburner.php:137
+#: fdfeedburner.php:145
 msgid "Do not redirect category or tag feeds"
 msgstr ""
 
-#: fdfeedburner.php:141
+#: fdfeedburner.php:149
 msgid "Append category/tag to URL for category/tag feeds"
 msgstr ""
 
-#: fdfeedburner.php:145
+#: fdfeedburner.php:153
 msgid "Do not redirect search result feeds"
 msgstr ""
 
-#: fdfeedburner.php:148
+#: fdfeedburner.php:158
+msgid "Do not redirect author feeds"
+msgstr ""
+
+#: fdfeedburner.php:161
 msgid "Save"
 msgstr ""
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-content/plugins/feedburner-plugin/languages/makemofiles	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,13 @@
+#!/bin/sh
+
+DIR=/home/john/code/wordpressplugins/feedburner-plugin/languages
+FILES=`find $DIR -name "*.po" -exec basename {} .po \;`
+
+for f in $FILES; do
+	if [ ! -e "$DIR/$f.mo" ]; then
+		echo "Compiling $f..."
+		msgfmt "$DIR/$f.po" -o "$DIR/$f.mo"
+	fi
+done
+
+echo "DONE"
--- a/web/wp-content/plugins/feedburner-plugin/readme.txt	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-content/plugins/feedburner-plugin/readme.txt	Wed Dec 19 17:46:52 2012 -0800
@@ -3,7 +3,7 @@
 Donate link: http://flagrantdisregard.com/feedburner/
 Tags: feedburner, redirect, rss, feed
 Requires at least: 2.0
-Tested up to: 3.3.1
+Tested up to: 3.4.2
 Stable tag: trunk
 
 Redirects the main feed and optionally the comments feed seamlessly and
@@ -27,11 +27,16 @@
 == Installation ==
 
 1. Copy the feedburner-plugin folder into wp-content/plugins
-1. Activate the plugin through the 'Plugins'
+1. Activate the plugin through the Plugins menu
 1. Configure your feed from the new Feedburner Settings submenu
 
 == Changelog ==
 
+= 1.46 =
+* Added "Do not redirect author feeds" option. Patch contributed by Robert McFrazier (lxbn.lexblog.com)
+* Translators: please update your translations to include the new author feeds message (msgid "Do not redirect author feeds") if you can. Thanks!
+* Added Russian translation by Pribory Trista (http://vizitti.com)
+
 = 1.45 =
 * Moved options to Settings menu
 * Fixed deprecated permission settings (caused deprecated notices)
--- a/web/wp-content/plugins/network-publisher/networkpub.css	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-content/plugins/network-publisher/networkpub.css	Wed Dec 19 17:46:52 2012 -0800
@@ -22,9 +22,14 @@
 .networkpublisher_add_key_submit_social {text-align: left;}
 .networkpublisher_auth_error {background-color:#ffebe8 !important;border-bottom:1px solid #FFC8BF !important;}
 .networkpublisher_auth_error img {vertical-align:text-bottom;}
-.networkpublisher_share_box {padding:10px 10px 6px 10px;background-color:#FFFFFF;margin-bottom:15px;margin:10px 0px 20px;border:1px solid #DCDCD8;-moz-border-radius: 3px;border-radius: 3px;-webkit-border-radius: 3px;}
-.networkpublisher_share_box table td {font-weight:bold;padding-right:10px;}
-.networkpublisher_share_box table td a{font-weight:bold;}
+.networkpublisher_share_box {padding:10px 0px 6px 10px;background-color:#F7F7F7;margin-bottom:15px;margin:10px 0px 20px;border:1px solid #DCDCD8;-moz-border-radius: 3px;border-radius: 3px;-webkit-border-radius: 3px;}
+.networkpublisher_share_box table {width:100%;}
+.networkpublisher_share_box table td {padding-right:10px;font-weight:bold;}
+.networkpublisher_share_box table td a{font-weight:normal;}
+.networkpublisher_share_box_left {text-align:left;}
+.networkpublisher_share_box_right {text-align:right;padding-right:0px !important;}
+.networkpublisher_share_box_right table {white-space:nowrap;}
+.networkpublisher_share_box_right table td{text-align:right;padding-right:0px !important;}
 .networkpublisher_post_meta_box {padding:6px;}
 .networkpublisher_post_meta_box input {margin:0px;}
 .networkpublisher_post_meta_box img {vertical-align:text-bottom;}
@@ -37,4 +42,5 @@
 .networkpublisher_alert_disable_pub_header {font-size: 12px !important; font-weight: bold !important;padding-bottom: 5px;}
 .networkpub_msg {padding:10px !important;}
 .networkpub_msg_center {padding:10px !important;text-align:center !important;}
-.networkpub_clear_both {clear:both;}
\ No newline at end of file
+.networkpub_clear_both {clear:both;}
+#networkpub_overlay {position:fixed;top:0;left:0;bottom:0;right:0;height: 100%;width: 100%;margin: 0;padding: 0;z-index: 101;}
\ No newline at end of file
--- a/web/wp-content/plugins/network-publisher/networkpub.js	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-content/plugins/network-publisher/networkpub.js	Wed Dec 19 17:46:52 2012 -0800
@@ -1,3 +1,4 @@
+var networkpub_lastpos=0;
 jQuery(document).ready(function($){
 	$(".networkpublisherremove").bind("click", function(e) {
 		$("#networkpub_remove").html('<div class="updated fade" style="padding:5px;text-align:center">'+$("#networkpub_text_removing").val()+'.</div>')
@@ -30,4 +31,36 @@
 			parent
 		);
 	});
+	setTimeout(function(){
+		if($("#linksalpha_browser").length>0){
+			if($("#linksalpha_post_extension_chrome").length == 0) {
+				if($("#linksalpha_browser").val() == 'chrome') {
+					$("#linksalpha_post_download_chrome").show();
+				} else if($("#linksalpha_browser").val() == 'firefox') {
+					$("#linksalpha_post_download_firefox").show();
+				} else if($("#linksalpha_browser").val() == 'safari') {
+					$("#linksalpha_post_download_safari").show();
+				}
+			} else {
+				$("#linksalpha_post_download_chrome").remove();
+				$("#linksalpha_post_download_firefox").remove();
+				$("#linksalpha_post_download_safari").remove();
+				$(".networkpublisher_post_meta_box_first").css('border-top-color', 'transparent');
+			}
+		}
+	},3000);
+	if($("#networkpub_post_update").length) {
+		$("#networkpub_post_update").live("click", function() {
+			$("body").append('<div id="networkpub_overlay"><iframe id="linksalpha_post_plugin" src="http://www.linksalpha.com/post2/postpopup?'+$("#networkpub_post_data").val()+'" frameborder="0" marginheight="0" marginwidth="0" width="100%" height="100%" scrolling="no"></iframe></div>');
+			return false;
+		});
+	}
+	$.receiveMessage(
+		function(e){
+			if(e.data=='["close"]') {
+				$("#networkpub_overlay").remove();
+			}
+		},
+		'http://www.linksalpha.com'
+	);
 });
\ No newline at end of file
--- a/web/wp-content/plugins/network-publisher/networkpub.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-content/plugins/network-publisher/networkpub.php	Wed Dec 19 17:46:52 2012 -0800
@@ -3,7 +3,7 @@
  Plugin Name: Network Publisher
  Plugin URI: http://wordpress.org/extend/plugins/network-publisher/
  Description: Automatically publish your blog posts to multiple Social Networks including Twitter, Facebook Profile, Facebook Pages, LinkedIn, MySpace, Yammer, Yahoo, Identi.ca, and <a href="http://www.linksalpha.com/networks" target="_blank">more</a>. Click <a href="http://help.linksalpha.com/networks/getting-started">here</a> for instructions. Email us at post@linksalpha.com if you have any queries.
- Version: 5.6
+ Version: 5.7.1
  Author: linksalpha
  Author URI: http://www.linksalpha.com
  */
@@ -41,7 +41,7 @@
 define('NETWORKPUB_CURRENTLY_PUBLISHING', 			__('You are currently Publishing your Blog to'));
 define('NETWORKPUB_SOCIAL_NETWORKS', 				__('Social Networks'));
 define('NETWORKPUB_SOCIAL_NETWORK', 				__('Social Network'));
-define('NETWORKPUB_PLUGIN_VERSION', 				'5.6');
+define('NETWORKPUB_PLUGIN_VERSION', 				'5.7.1');
 
 $networkpub_settings['api_key'] = array('label' => 'API Key:', 'type' => 'text', 'default' => '');
 $networkpub_settings['id'] = array('label' => 'id', 'type' => 'text', 'default' => '');
@@ -50,7 +50,6 @@
 /**
  * This is the intialization function
  */
-  
 function networkpub_init() {
 	networkpub_options();
 	//Following will run only if the user is admin of wordpress
@@ -100,6 +99,7 @@
 add_action('wp_head', 'networkpub_add_metatags');
 add_filter('language_attributes', 'networkpub_html_schema');
 
+
 function networkpub_options() {
 	$options = get_option(NETWORKPUB_WIDGET_NAME_INTERNAL);
 	if (!array_key_exists('networkpub_auth_error_show', $options)) {
@@ -141,6 +141,9 @@
 	if (!array_key_exists('networkpub_post_image_video', $options)) {
 		$options['networkpub_post_image_video'] = 'image';
 	}
+	if (!array_key_exists('networkpub_install_extension_alert_show', $options)) {
+		$options['networkpub_install_extension_alert_show'] = 1;
+	}
 	update_option(NETWORKPUB_WIDGET_NAME_INTERNAL, $options);
 }
 
@@ -182,12 +185,30 @@
 	}
 	//HTML
 	$html = '';
+	//Extension download
+	$networkpub_install_extension_alert_show = $options['networkpub_install_extension_alert_show'];
+	if($networkpub_install_extension_alert_show) {
+		global $is_gecko, $is_safari, $is_chrome;
+		$html .= '<div style="display: none;" id="linksalpha_post_download_chrome" class="misc-pub-section networkpublisher_post_meta_box_first"><img src="//lh4.ggpht.com/RcHmTiAjiRPW5GSamTaet1etjiNYaeHVT2yOtEsJDEs9IRWTdt1P64zpDmh6XzAbN4HH9byl9YhgTK_NbcXq=s16" style="vertical-align: text-bottom" />&nbsp;Install <a class="linksalpha_post_download_chrome_link" target="_blank" href="https://chrome.google.com/webstore/detail/ffifmkcjncgmnnmkedgkiabklmjdmpgi">Post extension for Chrome</a>.</div>';
+		$html .= '<div style="display: none;" id="linksalpha_post_download_firefox" class="misc-pub-section networkpublisher_post_meta_box_first"><img src="//lh5.ggpht.com/HE6TEsIgCGZgRKAZJ8SI1Yq7rGGxy5s_TQhleiphoEY2QFye1OlFRm8r_6JmGq4OUfHq07OE2dk6XeHWcYyU=s16" style="vertical-align: text-bottom" />&nbsp;Install <a class="linksalpha_post_download_firefox_link" href="http://www.linksalpha.com/files/post.xpi">Post extension for Firefox</a>.</div>';
+		$html .= '<div style="display: none;" id="linksalpha_post_download_safari" class="misc-pub-section networkpublisher_post_meta_box_first"><img src="//lh6.ggpht.com/4FQoS1Pn8OQOlahH5ESbjJv8iuVPV2If34-fABfBWcrJLUja5wiyLgWAekHWEuk_WaZg_iU9bf4Jli07WDQrRQ=s16" style="vertical-align: text-bottom" />&nbsp;Install <a class="linksalpha_post_download_safari_link" href="http://www.linksalpha.com/files/post.safariextz">Post extension for Safari</a>.</div>';
+		if($is_gecko) {
+			$browser = 'firefox';
+		} elseif($is_chrome) {
+			$browser = 'chrome';
+		} elseif($is_safari) {
+			$browser = 'safari';
+		} else {
+			$browser = '';
+		}
+		$html .= '<input type="hidden" name="linksalpha_browser" id="linksalpha_browser" value="'.$browser.'" autocomplete="off" />';
+	}
 	//Publish
 	$curr_val_publish = get_post_meta($object->ID, '_networkpub_meta_publish', true);
 	if ($curr_val_publish == '') {
 		$curr_val_publish = 1;
 	}
-	$html .= '<div class="misc-pub-section">';
+	$html .= '<div class="misc-pub-section networkpublisher_post_meta_box_first">';
 	$html_label = '&nbsp;<label for="networkpub_meta_cb_publish">' . __('Publish this') . ' <i>' . $this_post_type .'</i>'. __(' to') . ' <a href="' . NETWORKPUB_PLUGIN_ADMIN_URL . '">' . __('configured Networks') . '</a></label>';
 	$html_label_type_disabled = '&nbsp;<label for="networkpub_meta_cb_publish" style="background-color:yellow;">' . __('Publishing of') . ' <i>' . $this_post_type .'</i>'. ' <a href="http://codex.wordpress.org/Post_Types" target="_blank">' . __('Post Type') . '</a>' . __(' to') . ' <a href="' . NETWORKPUB_PLUGIN_ADMIN_URL . '">' . __('configured Networks') . '</a>' . ' ' . __('has been disabled. ') . '<a href="' . NETWORKPUB_PLUGIN_ADMIN_URL . '#setting_networkpub_post_types">' . __('Click Here') . '</a>' . __(' to enable again.') . '</label>';
 	if ($curr_val_publish) {
@@ -219,6 +240,12 @@
 	$html .= '<div class="networkpublisher_post_meta_box_label_box"><label class="networkpublisher_post_meta_box_label" for="networkpub_postmessage"><a target="_blank" href="http://help.linksalpha.com/wordpress-plugin-network-publisher/message">'. __('Message').'</a>'.(' to be included in the post:') . '</label></div>';
 	$html .= '<textarea ' . $inputs_disabled . ' name="networkpub_postmessage" id="networkpub_postmessage">' . $curr_val_message . '</textarea>';
 	$html .= '</div>';
+	//Summary
+	$curr_val_summary = get_post_meta($object->ID, 'networkpub_postsummary', true);
+	$html .= '<div class="misc-pub-section">';
+	$html .= '<div class="networkpublisher_post_meta_box_label_box"><label class="networkpublisher_post_meta_box_label" for="networkpub_postsummary"><a target="_blank" href="http://help.linksalpha.com/wordpress-plugin-network-publisher/summary">'. __('Summary').'</a>'.(' to be included in the post:') . '</label></div>';
+	$html .= '<textarea ' . $inputs_disabled . ' name="networkpub_postsummary" id="networkpub_postsummary">' . $curr_val_summary . '</textarea>';
+	$html .= '</div>';
 	//Twitter handle
 	$curr_val_twitterhandle = get_post_meta($object->ID, 'networkpub_twitterhandle', true);
 	$html .= '<div class="misc-pub-section">';
@@ -278,7 +305,7 @@
 	} else {
 		$html .= '<div class="misc-pub-section" style="border-bottom:0px;padding-bottom:0px;">';
 	}
-	$html .= '<div class="networkpublisher_post_meta_box">';
+	$html .= '<div class="networkpublisher_post_meta_box_label_box">';
 	if ($curr_val_content) {
 		$html .= '<input type="checkbox" name="networkpub_meta_cb_content" id="networkpub_meta_cb_content" checked ' . $inputs_disabled . ' />';
 	} else {
@@ -289,12 +316,20 @@
 	$html .= '</div>';
 	//Content Sent successfully
     if ($networkpub_meta_published == 'failed') {
-    	$html .= '<div class="misc-pub-section" style="border-bottom:0px;padding-bottom:0px;">';
-		$html .= '<div class="networkpublisher_post_meta_box" style="color:red;"><img src="' . NETWORKPUB_WP_PLUGIN_URL . 'alert.png" />&nbsp;' . __('Post to social networks failed.') . '</div>';
+    	$html .= '<div class="misc-pub-section">';
+		$html .= '<div class="networkpublisher_post_meta_box_label_box" style="color:red;"><img src="' . NETWORKPUB_WP_PLUGIN_URL . 'alert.png" />&nbsp;' . __('Post to social networks failed.') . '</div>';
 		$html .= '</div>';
 	} elseif ($networkpub_meta_published == 'done') {
+		$html .= '<div class="misc-pub-section">';
+		$html .= '<div class="networkpublisher_post_meta_box_label_box" style="color:green;"><input type="checkbox" checked disabled="disabled" />&nbsp;<label for="networkpub_meta_cb_content">' . __('Data sent successfully.') . '</label></div>';
+		$html .= '</div>';
+	}
+	if(in_array($networkpub_meta_published, array('failed', 'done'))) {
 		$html .= '<div class="misc-pub-section" style="border-bottom:0px;padding-bottom:0px;">';
-		$html .= '<div class="networkpublisher_post_meta_box" style="color:green;"><input type="checkbox" checked disabled="disabled" />&nbsp;<label for="networkpub_meta_cb_content">' . __('Data sent successfully.') . '</label></div>';
+		$html .= '<input type="button" class="button-primary" id="networkpub_post_update" value="Post an Update">';
+		$post_data = networkpub_get_post_data_republish($object);
+		$post_data_string = http_build_query($post_data);
+		$html .= '<input type="hidden" id="networkpub_post_data" value="'.$post_data_string.'">';
 		$html .= '</div>';
 	}
 	//nonce
@@ -325,6 +360,14 @@
 		}
 	}
 	update_post_meta($post_id, 'networkpub_postmessage', $new_meta_value_postmessage);
+	#Summary
+	$new_meta_value_postsummary = '';
+	if (!empty($_POST['networkpub_postsummary'])) {
+		if ($_POST['networkpub_postsummary']) {
+			$new_meta_value_postsummary = strip_tags($_POST['networkpub_postsummary']);
+		}
+	}
+	update_post_meta($post_id, 'networkpub_postsummary', $new_meta_value_postsummary);
 	#Twitter Handle
 	$new_meta_value_twitterhandle = '';
 	if (!empty($_POST['networkpub_twitterhandle'])) {
@@ -383,7 +426,7 @@
 			echo '
 				<div class="updated fade" style="padding:10px;text-align:left">
 					<div style="font-weight:bold;"><a href="http://wordpress.org/extend/plugins/network-publisher/" target="_blank">' . NETWORKPUB_WIDGET_NAME . '</a> ' . __('plugin is almost ready.') . '</div>
-					<div>' . __('You must') . ' <a href="' . NETWORKPUB_PLUGIN_ADMIN_URL . '">' . __('enter API key') . '</a> ' . __(' on the settings page for plugin') . ' ' . NETWORKPUB_WIDGET_NAME . ' ' . __('for automatic posting of your blog articles to 20+ Social Networks including Twitter, Facebook Profile, Facebook Pages, LinkedIn, MySpace, Yammer, Yahoo, Identi.ca, and more to work') . '</div>
+					<div>' . __('You must') . ' <a href="' . NETWORKPUB_PLUGIN_ADMIN_URL . '">' . __('enter API key') . '</a> ' . __(' on the settings page for plugin') . ' ' . NETWORKPUB_WIDGET_NAME . ' ' . __('for automatic posting of your blog articles to 20+ Social Networks including Twitter, Facebook Profile, Facebook Pages, LinkedIn, MySpace, Yammer, Yahoo, Identi.ca, and more.') . '</div>
 				</div>';
 		}
 	}
@@ -575,6 +618,7 @@
 		return;
 	}
 	$post_message = get_post_meta($post_id, 'networkpub_postmessage', true);
+	$post_summary = get_post_meta($post_id, 'networkpub_postsummary', true);
 	$post_twitterhandle = get_post_meta($post_id, 'networkpub_twitterhandle', true);
 	$post_twitterhash = get_post_meta($post_id, 'networkpub_twitterhash', true);
 	$post_ogtypefacebook = get_post_meta($post_id, 'networkpub_ogtype_facebook', true);
@@ -635,6 +679,7 @@
 					'twitterhandle' => $post_twitterhandle,
 					'hashtag' => $post_twitterhash,
 					'content_message' => $post_message,
+					'content_summary' => $post_summary,
 					'post_image_video' => $networkpub_post_image_video,
 				);
 	$post_image = networkpub_thumbnail_link($post_id, $post_data['post_content']);
@@ -774,6 +819,13 @@
 					$networkpub_thumbnail_size = 'medium';
 				}
 				networkpub_update_option('networkpub_thumbnail_size', $networkpub_thumbnail_size);
+			} elseif ($_POST['networkpub_form_type'] == 'networkpub_install_extension_alert_show') {
+				if (array_key_exists('networkpub_install_extension_alert_show', $_POST)) {
+					$networkpub_install_extension_alert_show = 1;
+				} else {
+					$networkpub_install_extension_alert_show = 0;
+				}
+				networkpub_update_option('networkpub_install_extension_alert_show', $networkpub_install_extension_alert_show);
 			}
 		}
 	}
@@ -871,6 +923,16 @@
 		} else {
 			$networkpub_thumbnail_size = 'medium';
 		}
+		if (array_key_exists('networkpub_install_extension_alert_show', $options)) {
+			$networkpub_install_extension_alert_show = $options['networkpub_install_extension_alert_show'];
+			if ($networkpub_install_extension_alert_show) {
+				$networkpub_install_extension_alert_show = 'checked';
+			} else {
+				$networkpub_install_extension_alert_show = '';
+			}
+		} else {
+			$networkpub_install_extension_alert_show = 'checked';
+		}
 	} else {
 		$networkpub_enable = 'checked';
 		$networkpub_auth_error_show = 'checked';
@@ -884,6 +946,7 @@
 		$networkpub_custom_field_image = '';
 		$networkpub_custom_field_image_url = '';
 		$networkpub_thumbnail_size = 'medium';
+		$networkpub_install_extension_alert_show = 'checked';
 	}
 	$fb_langs = networkpub_fb_langs();
 	$fb_langs_options = '';
@@ -934,25 +997,39 @@
 				<div class="networkpublisher_share_box">
 					<table>
 						<tr>
-							<td>
-								<a href="' . networkpub_postbox_url() . '">' . __('Postbox') . '</a>&nbsp;&nbsp;|&nbsp;&nbsp;' . __('Share') . '
+							<td class="networkpublisher_share_box_left">
+								<span>Install Browser Extension&nbsp;</span>
+								<span><img src="//lh4.ggpht.com/RcHmTiAjiRPW5GSamTaet1etjiNYaeHVT2yOtEsJDEs9IRWTdt1P64zpDmh6XzAbN4HH9byl9YhgTK_NbcXq=s16" style="vertical-align: text-bottom" />&nbsp;<a target="_blank" href="https://chrome.google.com/webstore/detail/ffifmkcjncgmnnmkedgkiabklmjdmpgi">Chrome</a></span>
+								<span><img src="//lh5.ggpht.com/HE6TEsIgCGZgRKAZJ8SI1Yq7rGGxy5s_TQhleiphoEY2QFye1OlFRm8r_6JmGq4OUfHq07OE2dk6XeHWcYyU=s16" style="vertical-align: text-bottom" />&nbsp;<a href="http://www.linksalpha.com/files/post.xpi">Firefox</a></span>
+								<span><img src="//lh6.ggpht.com/4FQoS1Pn8OQOlahH5ESbjJv8iuVPV2If34-fABfBWcrJLUja5wiyLgWAekHWEuk_WaZg_iU9bf4Jli07WDQrRQ=s16" style="vertical-align: text-bottom" />&nbsp;<a href="http://www.linksalpha.com/files/post.safariextz">Safari</a></span>
 							</td>
-							<td>
-								<div class="linksalpha-email-button" id="linksalpha_tag_208867858" data-url="http://www.linksalpha.com" data-text="LinksAlpha - Making Social Media Easy!" data-desc="LinksAlpha provides quick and easy way for companies and users to connect and share on social web. Using LinksAlpha tools, you can integrate Social Media Buttons into your website, Publish your Website Content Automatically to Social Media Sites, and Track Social Media Profiles, all from one place." data-image="http://www.linksalpha.com/images/LALOGO_s175.png"></div>
-								<script type="text/javascript" src="http://www.linksalpha.com/social/loader?tag_id=linksalpha_tag_208867858&fblikefont=arial&vkontakte=1&livejournal=1&twitter=1&xinglang=de&linkedin=1&tumblr=1&hyves=1&fblikelang=en_US&delicious=1&twitterw=110&gpluslang=en-US&gmail=1&weibo=1&posterous=1&xing=1&sonico=1&twitterlang=en&pinterest=1&myspace=1&msn=1&print=1&mailru=1&email=1&counters=googleplus%2Cfacebook%2Clinkedin%2Ctwitter&reddit=1&hotmail=1&netlog=1&twitterrelated=linksalpha&aolmail=1&link=http%3A%2F%2Fwww.linksalpha.com&diigo=1&evernote=1&digg=1&yahoomail=1&yammer=1&stumbleupon=1&instapaper=1&facebookw=90&googleplus=1&fblikeverb=like&fblikeref=linksalpha&halign=left&readitlater=1&v=2&facebook=1&button=googleplus%2Cfacebook%2Clinkedin%2Ctwitter&identica=1"></script>
+							<td class="networkpublisher_share_box_right">
+								<table>
+									<tr>
+										<td>
+											<span style="float:right">
+											<div class="linksalpha-email-button" id="linksalpha_tag_208867858" data-url="http://www.linksalpha.com" data-text="LinksAlpha - Making Social Media Easy!" data-desc="LinksAlpha provides quick and easy way for companies and users to connect and share on social web. Using LinksAlpha tools, you can integrate Social Media Buttons into your website, Publish your Website Content Automatically to Social Media Sites, and Track Social Media Profiles, all from one place." data-image="http://www.linksalpha.com/images/LALOGO_s175.png"></div>
+											<script type="text/javascript" src="http://www.linksalpha.com/social/loader?tag_id=linksalpha_tag_208867858&fblikefont=arial&vkontakte=1&livejournal=1&twitter=1&xinglang=de&linkedin=1&tumblr=1&hyves=1&fblikelang=en_US&delicious=1&twitterw=110&gpluslang=en-US&gmail=1&weibo=1&posterous=1&xing=1&sonico=1&twitterlang=en&pinterest=1&myspace=1&msn=1&print=1&mailru=1&email=1&counters=googleplus%2Cfacebook%2Clinkedin%2Ctwitter&reddit=1&hotmail=1&netlog=1&twitterrelated=linksalpha&aolmail=1&link=http%3A%2F%2Fwww.linksalpha.com&diigo=1&evernote=1&digg=1&yahoomail=1&yammer=1&stumbleupon=1&instapaper=1&facebookw=90&googleplus=1&fblikeverb=like&fblikeref=linksalpha&halign=left&readitlater=1&v=2&facebook=1&button=googleplus%2Cfacebook%2Clinkedin%2Ctwitter&identica=1"></script>
+											</span>
+											<span>' . __('Share') . '&nbsp;&nbsp;</span>
+										</td>
+									</tr>
+								</table>
 							</td>
 						</tr>
 					</table>
 				</div>
-				<div>
-					<div class="networkpublisher_started">
+				<div>';
+	if (empty($options['api_key'])) {
+	$html .=	   '<div class="networkpublisher_started">
 						<div style="padding:0px 0px 5px 0px;"><strong>' . __('Network Publisher') . '</strong> ' . __('makes it easy to Publish your Blog Posts to Social Networks. To configure:') . '</div>
 						<div><b>1.</b>&nbsp;' . __('Connect to your Social Networks at') . ' <a target="_blank" href="http://www.linksalpha.com/networks">' . __('LinksAlpha.com') . '</a></div>
 						<div><b>2.</b>&nbsp;' . __('Get your') . ' <a target="_blank" href="http://www.linksalpha.com/account/your_api_key">' . __('User API Key') . '</a> ' . __('or') . ' <a target="_blank" href="http://www.linksalpha.com/networks">' . __('Network API Key') . '</a> ' . __('and enter it below.') . '</div>
 						<div style="padding:5px 0px 0px 0px;">' . __('Once setup, your Blog posts content appears on the social networks as soon as you hit the Publish button.') . '</div>
 						<div>' . __('You can') . ' <a href="http://help.linksalpha.com/networks/getting-started" target="_blank">' . __('read more about this process at LinksAlpha.com.') . '</a></div>
-					</div>
-					<div class="networkpublisher_header">
+					</div>';
+	}
+	$html .=	   '<div class="networkpublisher_header">
 						<strong>' . __('Setup') . '</strong>
 					</div>
 					<div style="padding-left:0px;margin-bottom:40px;">
@@ -972,9 +1049,12 @@
                                     </tr>
                                     <tr>
                                         <td>
-                                            <div style="padding-bottom:10px;padding-top:3px;">
+                                            <div style="padding-top:3px;">
                                                 <input style="width:400px;  border-width:1px;border-color:gray;border-style:solid" class="widefat" id="' . $field_name . '" name="' . $field_name . '" type="text" TABINDEX=1000 />
                                             </div>
+                                            <div style="padding-top:3px;padding-bottom:10px;color:gray;">
+                                            	<a href="http://help.linksalpha.com/networks/getting-started" target="_blank">' . __('Click here').'</a>'.__(' to read getting started document.').'
+                                            </div>
                                         </td>
                                     </tr>
                                 </table>
@@ -1231,6 +1311,24 @@
 								</div>
 							</div>
 						</a>
+						<div style="padding:40px 0px 0px 0px;">
+ 							<div class="networkpublisher_header">
+ 								<strong>' . __('Show/Hide message to Install Browser Extension') . '</strong>
+ 							</div>
+ 							<div class="networkpublisher_content_box">
+ 								<div style="padding-bottom:10px;">
+ 									<form action="" method="post">
+ 										<div>
+ 											<input type="checkbox" id="networkpub_install_extension_alert_show" name="networkpub_install_extension_alert_show" ' . $networkpub_install_extension_alert_show . ' /><label for="networkpub_install_extension_alert_show">&nbsp;&nbsp;' . __('Check this box to show the message in Network Publisher widget to install browser extension from LinksAlpha.com.') . ' <a target="_blank" href="http://www.linksalpha.com/downloads">' . __('Click Here') . '</a> ' . __('to learn more.') . '</label>
+ 										</div>
+ 										<div style="padding-top:5px;">
+ 											<input type="hidden" name="networkpub_form_type" value="networkpub_install_extension_alert_show" />
+ 											<input type="submit" name="submit" class="button-primary" value="' . __('Update') . '" />
+ 										</div>
+ 									</form>
+ 								</div>
+ 							</div>
+ 						</div>
 						<div style="font-size:13px;margin:40px 0px 0px 0px;">
                             <div class="networkpublisher_header">
 								<strong>' . __('Note') . '</strong>
@@ -1243,15 +1341,10 @@
 				</div>
 			</div>
 			<div style="vertical-align:top;padding-left:2%;text-align:right;width:20%;float:left;">
-				<div style="margin-bottom:20px;width:150px;margin-top:10px;float:right;">
-					<a href="' . networkpub_postbox_url() . '" style="text-decoration:none;">
-						<div class="networkpublisher_button_yellow">' . __('View Postbox') . '</div>
-					</a>
-				</div>
 				<div class="networkpub_clear_both"></div>
-				<div class="networkpublisher_header_3" style="float:right;margin-right:-20px;">' . __('Supported Networks') . '</div>
+				<div class="networkpublisher_header_3" style="float:right;margin-right:-35px;">' . __('Supported Networks') . '</div>
 				<div class="networkpub_clear_both"></div>
-				<div class="networkpublisher_content_box_3" style="float:right;margin-right:-20px;">
+				<div class="networkpublisher_content_box_3" style="float:right;margin-right:-35px;">
 					' . networkpub_supported_networks() . '
 				</div>
 				<div class="networkpub_clear_both"></div>
@@ -1757,7 +1850,6 @@
 }
 
 function networkpub_get_plugin_dir() {
-
 	global $wp_version;
 	if (version_compare($wp_version, '2.8', '<')) {
 		$path = dirname(plugin_basename(__FILE__));
@@ -2166,7 +2258,7 @@
 			if ($xml) {
 				$images = $xml -> xpath('//img');
 				if (!empty($images)) {
-					return $images[0]['src'];
+					return (string)$images[0]['src'];
 				}
 			} else {
 				return False;
@@ -2201,5 +2293,21 @@
 	return;
 }
 
+function networkpub_get_post_data_republish($p) {
+	$post_data = array();
+	$post_data['page_url'] 				=	get_permalink($p);
+	if($p->post_title) {
+		$post_data['page_title'] 		=	networkpub_prepare_text($p->post_title);	
+	}
+	if($p->post_content) {
+		$post_data['page_text'] 		= 	networkpub_prepare_text($p->post_content);	
+	}
+	$page_url_image = networkpub_thumbnail_link($p->ID, $p->post_content);
+	if($page_url_image) {
+		$post_data['page_url_image'] 	= 	$page_url_image;	
+	}
+	return $post_data;
+}
+
 register_deactivation_hook(__FILE__, 'networkpub_deactivate');
 ?>
\ No newline at end of file
--- a/web/wp-content/plugins/network-publisher/readme.txt	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-content/plugins/network-publisher/readme.txt	Wed Dec 19 17:46:52 2012 -0800
@@ -1,9 +1,9 @@
 === Plugin Name ===
 Contributors: linksalpha
-Tags: twitter, page, widgets, widget, linkedin, Post, facebook, facebook page, facebook profile, facebook wall, facebook event, facebook app page, facebook application page, yammer, google, sidebar, myspace, yahoo, comments, rss, identi.ca, plugin, identica, news, posts, publish, distribute, status, update, status update, twitter oauth, oauth, admin, links, auto posts, auto, Blogger, Brightkite, Delicious, Diigo, Foursquare, Google Buzz, Plurk, Posterous, Sonico, Tumblr, Typepad, Windows Live, Yahoo Meme, Status.net, socialcast, p2, tumblr, gowalla, basecamp, backpack, Windows Live
+Tags: twitter, page, widgets, widget, linkedin, linkedin groups, Post, facebook, facebook page, facebook profile, facebook wall, facebook event, facebook app page, facebook application page, facebook group, yammer, google, sidebar, myspace, yahoo, comments, rss, identi.ca, plugin, identica, news, posts, publish, distribute, status, update, status update, twitter oauth, oauth, admin, links, auto posts, auto, Blogger, Delicious, Diigo, Foursquare, Plurk, Posterous, Sonico, Tumblr, Typepad, Yahoo Meme, Status.net, socialcast, p2, tumblr, appnet
 Requires at least: 1.0.0
 Tested up to: 3.4.2
-Stable tag: 5.6
+Stable tag: 5.7.1
 
 == Description ==
 
@@ -15,6 +15,7 @@
 1. Facebook Events
 1. Twitter
 1. LinkedIn
+1. LinkedIn Groups
 1. MySpace
 1. Yammer
 1. Yahoo
@@ -33,6 +34,15 @@
 1. Typepad
 1. Posterous
 1. Yahoo Meme
+1. App.net
+
+**Browser Extensions**
+
+We are excited to announce launch of [LinksAlpha.com](http://www.linksalpha.com) browser extensions for Chrome, Firefox, or Safari. These extensions enable quick and easy posting to your social profiles from your browser. Below are the download links:
+
+1. [Chrome](https://chrome.google.com/webstore/detail/ffifmkcjncgmnnmkedgkiabklmjdmpgi)
+1. [Firefox](http://www.linksalpha.com/files/post.xpi)
+1. [Safari](http://www.linksalpha.com/files/post.safariextz)
 
 
 **Postbox**
@@ -92,6 +102,14 @@
 
 == Changelog ==
 
+= 5.7.1 =
+* Minor bug fix
+
+= 5.7 =
+* Added support to manually re-publish posts to Facebook, Twitter and LinkedIn.
+* Added support for LinkedIn Groups and App.net.
+* Minor bug fix
+
 = 5.6 =
 * User can now set option on per post basis to attach image or video for posts published to Facebook.
 * Added additional error message text.
--- a/web/wp-content/plugins/page2cat/readme.txt	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-content/plugins/page2cat/readme.txt	Wed Dec 19 17:46:52 2012 -0800
@@ -1,9 +1,9 @@
 === Category Pages & Posts Shortcodes ===
 Contributors: swergroup, pixline
-Donate link: https://bitly.com/Vpy3MP
+Donate link: http://swergroup.com
 Tags: category, categories, pages, posts, page, post, integration, shortcode, shortcodes, list, archives
 Requires at least: 3.4.2
-Tested up to: 3.4.2
+Tested up to: 3.5b3
 Stable tag: trunk
 License: GPLv2
 License URI: http://www.gnu.org/licenses/gpl-2.0.html
@@ -57,7 +57,7 @@
 you can create a `category-<category_name>.php` file with a `[showsingle]` shortcode. 
 
 
-GPL2(C) 2008+ [SWER Siti internet Torino](http://swergroup.com/)
+GPL2(C) 2008+ [SWER Sviluppo siti internet Torino](http://swergroup.com/sviluppo/siti-internet-torino/)
 
 [Git source code on Bitbucket](http://dev.swergroup.com/pages-and-posts-shortcodes)
 
--- a/web/wp-content/plugins/pik-slider/pik-slider.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-content/plugins/pik-slider/pik-slider.php	Wed Dec 19 17:46:52 2012 -0800
@@ -17,6 +17,7 @@
 /**
 * Initialise le carousel
 **/
+
 function pikslider_init(){
 
 	$labels = array(
@@ -119,18 +120,22 @@
 	add_action('wp_footer','pikslider_script',30);
 	// HTML
 	$slides = new WP_query('post_type=slide&posts_per_page=100');
+
 	?>
 	<div id="pikslider">
        	<ul>
 	<?php
+
 	while($slides->have_posts()){
 		$slides->the_post();
 		global $post;
+
 		//détection de la langue
 		if (class_exists('xili_language')) {
 			$current_lang = the_cur_lang_dir();
 			if (get_cur_language($post->ID)!=$current_lang['lang']){continue;}
 		}
+
 		$url = get_post_meta($post->ID, '_link', true);
 		$blank = false;
 		if (preg_match("/^http:\/{2}/",$url)){
@@ -158,6 +163,7 @@
 	?>
 	<script type="text/javascript">
 		(function($){
+
 			$('#pikslider ul').carouFredSel({
 				prev: '#pikslider-prev',
     			next: '#pikslider-next',
--- a/web/wp-content/plugins/quick-pagepost-redirect-plugin/license.txt	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-content/plugins/quick-pagepost-redirect-plugin/license.txt	Wed Dec 19 17:46:52 2012 -0800
@@ -1,674 +1,674 @@
-                    GNU GENERAL PUBLIC LICENSE
-                       Version 3, 29 June 2007
-
- Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
- Everyone is permitted to copy and distribute verbatim copies
- of this license document, but changing it is not allowed.
-
-                            Preamble
-
-  The GNU General Public License is a free, copyleft license for
-software and other kinds of works.
-
-  The licenses for most software and other practical works are designed
-to take away your freedom to share and change the works.  By contrast,
-the GNU General Public License is intended to guarantee your freedom to
-share and change all versions of a program--to make sure it remains free
-software for all its users.  We, the Free Software Foundation, use the
-GNU General Public License for most of our software; it applies also to
-any other work released this way by its authors.  You can apply it to
-your programs, too.
-
-  When we speak of free software, we are referring to freedom, not
-price.  Our General Public Licenses are designed to make sure that you
-have the freedom to distribute copies of free software (and charge for
-them if you wish), that you receive source code or can get it if you
-want it, that you can change the software or use pieces of it in new
-free programs, and that you know you can do these things.
-
-  To protect your rights, we need to prevent others from denying you
-these rights or asking you to surrender the rights.  Therefore, you have
-certain responsibilities if you distribute copies of the software, or if
-you modify it: responsibilities to respect the freedom of others.
-
-  For example, if you distribute copies of such a program, whether
-gratis or for a fee, you must pass on to the recipients the same
-freedoms that you received.  You must make sure that they, too, receive
-or can get the source code.  And you must show them these terms so they
-know their rights.
-
-  Developers that use the GNU GPL protect your rights with two steps:
-(1) assert copyright on the software, and (2) offer you this License
-giving you legal permission to copy, distribute and/or modify it.
-
-  For the developers' and authors' protection, the GPL clearly explains
-that there is no warranty for this free software.  For both users' and
-authors' sake, the GPL requires that modified versions be marked as
-changed, so that their problems will not be attributed erroneously to
-authors of previous versions.
-
-  Some devices are designed to deny users access to install or run
-modified versions of the software inside them, although the manufacturer
-can do so.  This is fundamentally incompatible with the aim of
-protecting users' freedom to change the software.  The systematic
-pattern of such abuse occurs in the area of products for individuals to
-use, which is precisely where it is most unacceptable.  Therefore, we
-have designed this version of the GPL to prohibit the practice for those
-products.  If such problems arise substantially in other domains, we
-stand ready to extend this provision to those domains in future versions
-of the GPL, as needed to protect the freedom of users.
-
-  Finally, every program is threatened constantly by software patents.
-States should not allow patents to restrict development and use of
-software on general-purpose computers, but in those that do, we wish to
-avoid the special danger that patents applied to a free program could
-make it effectively proprietary.  To prevent this, the GPL assures that
-patents cannot be used to render the program non-free.
-
-  The precise terms and conditions for copying, distribution and
-modification follow.
-
-                       TERMS AND CONDITIONS
-
-  0. Definitions.
-
-  "This License" refers to version 3 of the GNU General Public License.
-
-  "Copyright" also means copyright-like laws that apply to other kinds of
-works, such as semiconductor masks.
-
-  "The Program" refers to any copyrightable work licensed under this
-License.  Each licensee is addressed as "you".  "Licensees" and
-"recipients" may be individuals or organizations.
-
-  To "modify" a work means to copy from or adapt all or part of the work
-in a fashion requiring copyright permission, other than the making of an
-exact copy.  The resulting work is called a "modified version" of the
-earlier work or a work "based on" the earlier work.
-
-  A "covered work" means either the unmodified Program or a work based
-on the Program.
-
-  To "propagate" a work means to do anything with it that, without
-permission, would make you directly or secondarily liable for
-infringement under applicable copyright law, except executing it on a
-computer or modifying a private copy.  Propagation includes copying,
-distribution (with or without modification), making available to the
-public, and in some countries other activities as well.
-
-  To "convey" a work means any kind of propagation that enables other
-parties to make or receive copies.  Mere interaction with a user through
-a computer network, with no transfer of a copy, is not conveying.
-
-  An interactive user interface displays "Appropriate Legal Notices"
-to the extent that it includes a convenient and prominently visible
-feature that (1) displays an appropriate copyright notice, and (2)
-tells the user that there is no warranty for the work (except to the
-extent that warranties are provided), that licensees may convey the
-work under this License, and how to view a copy of this License.  If
-the interface presents a list of user commands or options, such as a
-menu, a prominent item in the list meets this criterion.
-
-  1. Source Code.
-
-  The "source code" for a work means the preferred form of the work
-for making modifications to it.  "Object code" means any non-source
-form of a work.
-
-  A "Standard Interface" means an interface that either is an official
-standard defined by a recognized standards body, or, in the case of
-interfaces specified for a particular programming language, one that
-is widely used among developers working in that language.
-
-  The "System Libraries" of an executable work include anything, other
-than the work as a whole, that (a) is included in the normal form of
-packaging a Major Component, but which is not part of that Major
-Component, and (b) serves only to enable use of the work with that
-Major Component, or to implement a Standard Interface for which an
-implementation is available to the public in source code form.  A
-"Major Component", in this context, means a major essential component
-(kernel, window system, and so on) of the specific operating system
-(if any) on which the executable work runs, or a compiler used to
-produce the work, or an object code interpreter used to run it.
-
-  The "Corresponding Source" for a work in object code form means all
-the source code needed to generate, install, and (for an executable
-work) run the object code and to modify the work, including scripts to
-control those activities.  However, it does not include the work's
-System Libraries, or general-purpose tools or generally available free
-programs which are used unmodified in performing those activities but
-which are not part of the work.  For example, Corresponding Source
-includes interface definition files associated with source files for
-the work, and the source code for shared libraries and dynamically
-linked subprograms that the work is specifically designed to require,
-such as by intimate data communication or control flow between those
-subprograms and other parts of the work.
-
-  The Corresponding Source need not include anything that users
-can regenerate automatically from other parts of the Corresponding
-Source.
-
-  The Corresponding Source for a work in source code form is that
-same work.
-
-  2. Basic Permissions.
-
-  All rights granted under this License are granted for the term of
-copyright on the Program, and are irrevocable provided the stated
-conditions are met.  This License explicitly affirms your unlimited
-permission to run the unmodified Program.  The output from running a
-covered work is covered by this License only if the output, given its
-content, constitutes a covered work.  This License acknowledges your
-rights of fair use or other equivalent, as provided by copyright law.
-
-  You may make, run and propagate covered works that you do not
-convey, without conditions so long as your license otherwise remains
-in force.  You may convey covered works to others for the sole purpose
-of having them make modifications exclusively for you, or provide you
-with facilities for running those works, provided that you comply with
-the terms of this License in conveying all material for which you do
-not control copyright.  Those thus making or running the covered works
-for you must do so exclusively on your behalf, under your direction
-and control, on terms that prohibit them from making any copies of
-your copyrighted material outside their relationship with you.
-
-  Conveying under any other circumstances is permitted solely under
-the conditions stated below.  Sublicensing is not allowed; section 10
-makes it unnecessary.
-
-  3. Protecting Users' Legal Rights From Anti-Circumvention Law.
-
-  No covered work shall be deemed part of an effective technological
-measure under any applicable law fulfilling obligations under article
-11 of the WIPO copyright treaty adopted on 20 December 1996, or
-similar laws prohibiting or restricting circumvention of such
-measures.
-
-  When you convey a covered work, you waive any legal power to forbid
-circumvention of technological measures to the extent such circumvention
-is effected by exercising rights under this License with respect to
-the covered work, and you disclaim any intention to limit operation or
-modification of the work as a means of enforcing, against the work's
-users, your or third parties' legal rights to forbid circumvention of
-technological measures.
-
-  4. Conveying Verbatim Copies.
-
-  You may convey verbatim copies of the Program's source code as you
-receive it, in any medium, provided that you conspicuously and
-appropriately publish on each copy an appropriate copyright notice;
-keep intact all notices stating that this License and any
-non-permissive terms added in accord with section 7 apply to the code;
-keep intact all notices of the absence of any warranty; and give all
-recipients a copy of this License along with the Program.
-
-  You may charge any price or no price for each copy that you convey,
-and you may offer support or warranty protection for a fee.
-
-  5. Conveying Modified Source Versions.
-
-  You may convey a work based on the Program, or the modifications to
-produce it from the Program, in the form of source code under the
-terms of section 4, provided that you also meet all of these conditions:
-
-    a) The work must carry prominent notices stating that you modified
-    it, and giving a relevant date.
-
-    b) The work must carry prominent notices stating that it is
-    released under this License and any conditions added under section
-    7.  This requirement modifies the requirement in section 4 to
-    "keep intact all notices".
-
-    c) You must license the entire work, as a whole, under this
-    License to anyone who comes into possession of a copy.  This
-    License will therefore apply, along with any applicable section 7
-    additional terms, to the whole of the work, and all its parts,
-    regardless of how they are packaged.  This License gives no
-    permission to license the work in any other way, but it does not
-    invalidate such permission if you have separately received it.
-
-    d) If the work has interactive user interfaces, each must display
-    Appropriate Legal Notices; however, if the Program has interactive
-    interfaces that do not display Appropriate Legal Notices, your
-    work need not make them do so.
-
-  A compilation of a covered work with other separate and independent
-works, which are not by their nature extensions of the covered work,
-and which are not combined with it such as to form a larger program,
-in or on a volume of a storage or distribution medium, is called an
-"aggregate" if the compilation and its resulting copyright are not
-used to limit the access or legal rights of the compilation's users
-beyond what the individual works permit.  Inclusion of a covered work
-in an aggregate does not cause this License to apply to the other
-parts of the aggregate.
-
-  6. Conveying Non-Source Forms.
-
-  You may convey a covered work in object code form under the terms
-of sections 4 and 5, provided that you also convey the
-machine-readable Corresponding Source under the terms of this License,
-in one of these ways:
-
-    a) Convey the object code in, or embodied in, a physical product
-    (including a physical distribution medium), accompanied by the
-    Corresponding Source fixed on a durable physical medium
-    customarily used for software interchange.
-
-    b) Convey the object code in, or embodied in, a physical product
-    (including a physical distribution medium), accompanied by a
-    written offer, valid for at least three years and valid for as
-    long as you offer spare parts or customer support for that product
-    model, to give anyone who possesses the object code either (1) a
-    copy of the Corresponding Source for all the software in the
-    product that is covered by this License, on a durable physical
-    medium customarily used for software interchange, for a price no
-    more than your reasonable cost of physically performing this
-    conveying of source, or (2) access to copy the
-    Corresponding Source from a network server at no charge.
-
-    c) Convey individual copies of the object code with a copy of the
-    written offer to provide the Corresponding Source.  This
-    alternative is allowed only occasionally and noncommercially, and
-    only if you received the object code with such an offer, in accord
-    with subsection 6b.
-
-    d) Convey the object code by offering access from a designated
-    place (gratis or for a charge), and offer equivalent access to the
-    Corresponding Source in the same way through the same place at no
-    further charge.  You need not require recipients to copy the
-    Corresponding Source along with the object code.  If the place to
-    copy the object code is a network server, the Corresponding Source
-    may be on a different server (operated by you or a third party)
-    that supports equivalent copying facilities, provided you maintain
-    clear directions next to the object code saying where to find the
-    Corresponding Source.  Regardless of what server hosts the
-    Corresponding Source, you remain obligated to ensure that it is
-    available for as long as needed to satisfy these requirements.
-
-    e) Convey the object code using peer-to-peer transmission, provided
-    you inform other peers where the object code and Corresponding
-    Source of the work are being offered to the general public at no
-    charge under subsection 6d.
-
-  A separable portion of the object code, whose source code is excluded
-from the Corresponding Source as a System Library, need not be
-included in conveying the object code work.
-
-  A "User Product" is either (1) a "consumer product", which means any
-tangible personal property which is normally used for personal, family,
-or household purposes, or (2) anything designed or sold for incorporation
-into a dwelling.  In determining whether a product is a consumer product,
-doubtful cases shall be resolved in favor of coverage.  For a particular
-product received by a particular user, "normally used" refers to a
-typical or common use of that class of product, regardless of the status
-of the particular user or of the way in which the particular user
-actually uses, or expects or is expected to use, the product.  A product
-is a consumer product regardless of whether the product has substantial
-commercial, industrial or non-consumer uses, unless such uses represent
-the only significant mode of use of the product.
-
-  "Installation Information" for a User Product means any methods,
-procedures, authorization keys, or other information required to install
-and execute modified versions of a covered work in that User Product from
-a modified version of its Corresponding Source.  The information must
-suffice to ensure that the continued functioning of the modified object
-code is in no case prevented or interfered with solely because
-modification has been made.
-
-  If you convey an object code work under this section in, or with, or
-specifically for use in, a User Product, and the conveying occurs as
-part of a transaction in which the right of possession and use of the
-User Product is transferred to the recipient in perpetuity or for a
-fixed term (regardless of how the transaction is characterized), the
-Corresponding Source conveyed under this section must be accompanied
-by the Installation Information.  But this requirement does not apply
-if neither you nor any third party retains the ability to install
-modified object code on the User Product (for example, the work has
-been installed in ROM).
-
-  The requirement to provide Installation Information does not include a
-requirement to continue to provide support service, warranty, or updates
-for a work that has been modified or installed by the recipient, or for
-the User Product in which it has been modified or installed.  Access to a
-network may be denied when the modification itself materially and
-adversely affects the operation of the network or violates the rules and
-protocols for communication across the network.
-
-  Corresponding Source conveyed, and Installation Information provided,
-in accord with this section must be in a format that is publicly
-documented (and with an implementation available to the public in
-source code form), and must require no special password or key for
-unpacking, reading or copying.
-
-  7. Additional Terms.
-
-  "Additional permissions" are terms that supplement the terms of this
-License by making exceptions from one or more of its conditions.
-Additional permissions that are applicable to the entire Program shall
-be treated as though they were included in this License, to the extent
-that they are valid under applicable law.  If additional permissions
-apply only to part of the Program, that part may be used separately
-under those permissions, but the entire Program remains governed by
-this License without regard to the additional permissions.
-
-  When you convey a copy of a covered work, you may at your option
-remove any additional permissions from that copy, or from any part of
-it.  (Additional permissions may be written to require their own
-removal in certain cases when you modify the work.)  You may place
-additional permissions on material, added by you to a covered work,
-for which you have or can give appropriate copyright permission.
-
-  Notwithstanding any other provision of this License, for material you
-add to a covered work, you may (if authorized by the copyright holders of
-that material) supplement the terms of this License with terms:
-
-    a) Disclaiming warranty or limiting liability differently from the
-    terms of sections 15 and 16 of this License; or
-
-    b) Requiring preservation of specified reasonable legal notices or
-    author attributions in that material or in the Appropriate Legal
-    Notices displayed by works containing it; or
-
-    c) Prohibiting misrepresentation of the origin of that material, or
-    requiring that modified versions of such material be marked in
-    reasonable ways as different from the original version; or
-
-    d) Limiting the use for publicity purposes of names of licensors or
-    authors of the material; or
-
-    e) Declining to grant rights under trademark law for use of some
-    trade names, trademarks, or service marks; or
-
-    f) Requiring indemnification of licensors and authors of that
-    material by anyone who conveys the material (or modified versions of
-    it) with contractual assumptions of liability to the recipient, for
-    any liability that these contractual assumptions directly impose on
-    those licensors and authors.
-
-  All other non-permissive additional terms are considered "further
-restrictions" within the meaning of section 10.  If the Program as you
-received it, or any part of it, contains a notice stating that it is
-governed by this License along with a term that is a further
-restriction, you may remove that term.  If a license document contains
-a further restriction but permits relicensing or conveying under this
-License, you may add to a covered work material governed by the terms
-of that license document, provided that the further restriction does
-not survive such relicensing or conveying.
-
-  If you add terms to a covered work in accord with this section, you
-must place, in the relevant source files, a statement of the
-additional terms that apply to those files, or a notice indicating
-where to find the applicable terms.
-
-  Additional terms, permissive or non-permissive, may be stated in the
-form of a separately written license, or stated as exceptions;
-the above requirements apply either way.
-
-  8. Termination.
-
-  You may not propagate or modify a covered work except as expressly
-provided under this License.  Any attempt otherwise to propagate or
-modify it is void, and will automatically terminate your rights under
-this License (including any patent licenses granted under the third
-paragraph of section 11).
-
-  However, if you cease all violation of this License, then your
-license from a particular copyright holder is reinstated (a)
-provisionally, unless and until the copyright holder explicitly and
-finally terminates your license, and (b) permanently, if the copyright
-holder fails to notify you of the violation by some reasonable means
-prior to 60 days after the cessation.
-
-  Moreover, your license from a particular copyright holder is
-reinstated permanently if the copyright holder notifies you of the
-violation by some reasonable means, this is the first time you have
-received notice of violation of this License (for any work) from that
-copyright holder, and you cure the violation prior to 30 days after
-your receipt of the notice.
-
-  Termination of your rights under this section does not terminate the
-licenses of parties who have received copies or rights from you under
-this License.  If your rights have been terminated and not permanently
-reinstated, you do not qualify to receive new licenses for the same
-material under section 10.
-
-  9. Acceptance Not Required for Having Copies.
-
-  You are not required to accept this License in order to receive or
-run a copy of the Program.  Ancillary propagation of a covered work
-occurring solely as a consequence of using peer-to-peer transmission
-to receive a copy likewise does not require acceptance.  However,
-nothing other than this License grants you permission to propagate or
-modify any covered work.  These actions infringe copyright if you do
-not accept this License.  Therefore, by modifying or propagating a
-covered work, you indicate your acceptance of this License to do so.
-
-  10. Automatic Licensing of Downstream Recipients.
-
-  Each time you convey a covered work, the recipient automatically
-receives a license from the original licensors, to run, modify and
-propagate that work, subject to this License.  You are not responsible
-for enforcing compliance by third parties with this License.
-
-  An "entity transaction" is a transaction transferring control of an
-organization, or substantially all assets of one, or subdividing an
-organization, or merging organizations.  If propagation of a covered
-work results from an entity transaction, each party to that
-transaction who receives a copy of the work also receives whatever
-licenses to the work the party's predecessor in interest had or could
-give under the previous paragraph, plus a right to possession of the
-Corresponding Source of the work from the predecessor in interest, if
-the predecessor has it or can get it with reasonable efforts.
-
-  You may not impose any further restrictions on the exercise of the
-rights granted or affirmed under this License.  For example, you may
-not impose a license fee, royalty, or other charge for exercise of
-rights granted under this License, and you may not initiate litigation
-(including a cross-claim or counterclaim in a lawsuit) alleging that
-any patent claim is infringed by making, using, selling, offering for
-sale, or importing the Program or any portion of it.
-
-  11. Patents.
-
-  A "contributor" is a copyright holder who authorizes use under this
-License of the Program or a work on which the Program is based.  The
-work thus licensed is called the contributor's "contributor version".
-
-  A contributor's "essential patent claims" are all patent claims
-owned or controlled by the contributor, whether already acquired or
-hereafter acquired, that would be infringed by some manner, permitted
-by this License, of making, using, or selling its contributor version,
-but do not include claims that would be infringed only as a
-consequence of further modification of the contributor version.  For
-purposes of this definition, "control" includes the right to grant
-patent sublicenses in a manner consistent with the requirements of
-this License.
-
-  Each contributor grants you a non-exclusive, worldwide, royalty-free
-patent license under the contributor's essential patent claims, to
-make, use, sell, offer for sale, import and otherwise run, modify and
-propagate the contents of its contributor version.
-
-  In the following three paragraphs, a "patent license" is any express
-agreement or commitment, however denominated, not to enforce a patent
-(such as an express permission to practice a patent or covenant not to
-sue for patent infringement).  To "grant" such a patent license to a
-party means to make such an agreement or commitment not to enforce a
-patent against the party.
-
-  If you convey a covered work, knowingly relying on a patent license,
-and the Corresponding Source of the work is not available for anyone
-to copy, free of charge and under the terms of this License, through a
-publicly available network server or other readily accessible means,
-then you must either (1) cause the Corresponding Source to be so
-available, or (2) arrange to deprive yourself of the benefit of the
-patent license for this particular work, or (3) arrange, in a manner
-consistent with the requirements of this License, to extend the patent
-license to downstream recipients.  "Knowingly relying" means you have
-actual knowledge that, but for the patent license, your conveying the
-covered work in a country, or your recipient's use of the covered work
-in a country, would infringe one or more identifiable patents in that
-country that you have reason to believe are valid.
-
-  If, pursuant to or in connection with a single transaction or
-arrangement, you convey, or propagate by procuring conveyance of, a
-covered work, and grant a patent license to some of the parties
-receiving the covered work authorizing them to use, propagate, modify
-or convey a specific copy of the covered work, then the patent license
-you grant is automatically extended to all recipients of the covered
-work and works based on it.
-
-  A patent license is "discriminatory" if it does not include within
-the scope of its coverage, prohibits the exercise of, or is
-conditioned on the non-exercise of one or more of the rights that are
-specifically granted under this License.  You may not convey a covered
-work if you are a party to an arrangement with a third party that is
-in the business of distributing software, under which you make payment
-to the third party based on the extent of your activity of conveying
-the work, and under which the third party grants, to any of the
-parties who would receive the covered work from you, a discriminatory
-patent license (a) in connection with copies of the covered work
-conveyed by you (or copies made from those copies), or (b) primarily
-for and in connection with specific products or compilations that
-contain the covered work, unless you entered into that arrangement,
-or that patent license was granted, prior to 28 March 2007.
-
-  Nothing in this License shall be construed as excluding or limiting
-any implied license or other defenses to infringement that may
-otherwise be available to you under applicable patent law.
-
-  12. No Surrender of Others' Freedom.
-
-  If conditions are imposed on you (whether by court order, agreement or
-otherwise) that contradict the conditions of this License, they do not
-excuse you from the conditions of this License.  If you cannot convey a
-covered work so as to satisfy simultaneously your obligations under this
-License and any other pertinent obligations, then as a consequence you may
-not convey it at all.  For example, if you agree to terms that obligate you
-to collect a royalty for further conveying from those to whom you convey
-the Program, the only way you could satisfy both those terms and this
-License would be to refrain entirely from conveying the Program.
-
-  13. Use with the GNU Affero General Public License.
-
-  Notwithstanding any other provision of this License, you have
-permission to link or combine any covered work with a work licensed
-under version 3 of the GNU Affero General Public License into a single
-combined work, and to convey the resulting work.  The terms of this
-License will continue to apply to the part which is the covered work,
-but the special requirements of the GNU Affero General Public License,
-section 13, concerning interaction through a network will apply to the
-combination as such.
-
-  14. Revised Versions of this License.
-
-  The Free Software Foundation may publish revised and/or new versions of
-the GNU General Public License from time to time.  Such new versions will
-be similar in spirit to the present version, but may differ in detail to
-address new problems or concerns.
-
-  Each version is given a distinguishing version number.  If the
-Program specifies that a certain numbered version of the GNU General
-Public License "or any later version" applies to it, you have the
-option of following the terms and conditions either of that numbered
-version or of any later version published by the Free Software
-Foundation.  If the Program does not specify a version number of the
-GNU General Public License, you may choose any version ever published
-by the Free Software Foundation.
-
-  If the Program specifies that a proxy can decide which future
-versions of the GNU General Public License can be used, that proxy's
-public statement of acceptance of a version permanently authorizes you
-to choose that version for the Program.
-
-  Later license versions may give you additional or different
-permissions.  However, no additional obligations are imposed on any
-author or copyright holder as a result of your choosing to follow a
-later version.
-
-  15. Disclaimer of Warranty.
-
-  THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
-APPLICABLE LAW.  EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
-HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
-OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
-THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
-PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
-IS WITH YOU.  SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
-ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
-
-  16. Limitation of Liability.
-
-  IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
-WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
-THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
-GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
-USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
-DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
-PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
-EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
-SUCH DAMAGES.
-
-  17. Interpretation of Sections 15 and 16.
-
-  If the disclaimer of warranty and limitation of liability provided
-above cannot be given local legal effect according to their terms,
-reviewing courts shall apply local law that most closely approximates
-an absolute waiver of all civil liability in connection with the
-Program, unless a warranty or assumption of liability accompanies a
-copy of the Program in return for a fee.
-
-                     END OF TERMS AND CONDITIONS
-
-            How to Apply These Terms to Your New Programs
-
-  If you develop a new program, and you want it to be of the greatest
-possible use to the public, the best way to achieve this is to make it
-free software which everyone can redistribute and change under these terms.
-
-  To do so, attach the following notices to the program.  It is safest
-to attach them to the start of each source file to most effectively
-state the exclusion of warranty; and each file should have at least
-the "copyright" line and a pointer to where the full notice is found.
-
-    <one line to give the program's name and a brief idea of what it does.>
-    Copyright (C) <year>  <name of author>
-
-    This program is free software: you can redistribute it and/or modify
-    it under the terms of the GNU General Public License as published by
-    the Free Software Foundation, either version 3 of the License, or
-    (at your option) any later version.
-
-    This program is distributed in the hope that it will be useful,
-    but WITHOUT ANY WARRANTY; without even the implied warranty of
-    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-    GNU General Public License for more details.
-
-    You should have received a copy of the GNU General Public License
-    along with this program.  If not, see <http://www.gnu.org/licenses/>.
-
-Also add information on how to contact you by electronic and paper mail.
-
-  If the program does terminal interaction, make it output a short
-notice like this when it starts in an interactive mode:
-
-    <program>  Copyright (C) <year>  <name of author>
-    This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
-    This is free software, and you are welcome to redistribute it
-    under certain conditions; type `show c' for details.
-
-The hypothetical commands `show w' and `show c' should show the appropriate
-parts of the General Public License.  Of course, your program's commands
-might be different; for a GUI interface, you would use an "about box".
-
-  You should also get your employer (if you work as a programmer) or school,
-if any, to sign a "copyright disclaimer" for the program, if necessary.
-For more information on this, and how to apply and follow the GNU GPL, see
-<http://www.gnu.org/licenses/>.
-
-  The GNU General Public License does not permit incorporating your program
-into proprietary programs.  If your program is a subroutine library, you
-may consider it more useful to permit linking proprietary applications with
-the library.  If this is what you want to do, use the GNU Lesser General
-Public License instead of this License.  But first, please read
-<http://www.gnu.org/philosophy/why-not-lgpl.html>.
+                    GNU GENERAL PUBLIC LICENSE
+                       Version 3, 29 June 2007
+
+ Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+                            Preamble
+
+  The GNU General Public License is a free, copyleft license for
+software and other kinds of works.
+
+  The licenses for most software and other practical works are designed
+to take away your freedom to share and change the works.  By contrast,
+the GNU General Public License is intended to guarantee your freedom to
+share and change all versions of a program--to make sure it remains free
+software for all its users.  We, the Free Software Foundation, use the
+GNU General Public License for most of our software; it applies also to
+any other work released this way by its authors.  You can apply it to
+your programs, too.
+
+  When we speak of free software, we are referring to freedom, not
+price.  Our General Public Licenses are designed to make sure that you
+have the freedom to distribute copies of free software (and charge for
+them if you wish), that you receive source code or can get it if you
+want it, that you can change the software or use pieces of it in new
+free programs, and that you know you can do these things.
+
+  To protect your rights, we need to prevent others from denying you
+these rights or asking you to surrender the rights.  Therefore, you have
+certain responsibilities if you distribute copies of the software, or if
+you modify it: responsibilities to respect the freedom of others.
+
+  For example, if you distribute copies of such a program, whether
+gratis or for a fee, you must pass on to the recipients the same
+freedoms that you received.  You must make sure that they, too, receive
+or can get the source code.  And you must show them these terms so they
+know their rights.
+
+  Developers that use the GNU GPL protect your rights with two steps:
+(1) assert copyright on the software, and (2) offer you this License
+giving you legal permission to copy, distribute and/or modify it.
+
+  For the developers' and authors' protection, the GPL clearly explains
+that there is no warranty for this free software.  For both users' and
+authors' sake, the GPL requires that modified versions be marked as
+changed, so that their problems will not be attributed erroneously to
+authors of previous versions.
+
+  Some devices are designed to deny users access to install or run
+modified versions of the software inside them, although the manufacturer
+can do so.  This is fundamentally incompatible with the aim of
+protecting users' freedom to change the software.  The systematic
+pattern of such abuse occurs in the area of products for individuals to
+use, which is precisely where it is most unacceptable.  Therefore, we
+have designed this version of the GPL to prohibit the practice for those
+products.  If such problems arise substantially in other domains, we
+stand ready to extend this provision to those domains in future versions
+of the GPL, as needed to protect the freedom of users.
+
+  Finally, every program is threatened constantly by software patents.
+States should not allow patents to restrict development and use of
+software on general-purpose computers, but in those that do, we wish to
+avoid the special danger that patents applied to a free program could
+make it effectively proprietary.  To prevent this, the GPL assures that
+patents cannot be used to render the program non-free.
+
+  The precise terms and conditions for copying, distribution and
+modification follow.
+
+                       TERMS AND CONDITIONS
+
+  0. Definitions.
+
+  "This License" refers to version 3 of the GNU General Public License.
+
+  "Copyright" also means copyright-like laws that apply to other kinds of
+works, such as semiconductor masks.
+
+  "The Program" refers to any copyrightable work licensed under this
+License.  Each licensee is addressed as "you".  "Licensees" and
+"recipients" may be individuals or organizations.
+
+  To "modify" a work means to copy from or adapt all or part of the work
+in a fashion requiring copyright permission, other than the making of an
+exact copy.  The resulting work is called a "modified version" of the
+earlier work or a work "based on" the earlier work.
+
+  A "covered work" means either the unmodified Program or a work based
+on the Program.
+
+  To "propagate" a work means to do anything with it that, without
+permission, would make you directly or secondarily liable for
+infringement under applicable copyright law, except executing it on a
+computer or modifying a private copy.  Propagation includes copying,
+distribution (with or without modification), making available to the
+public, and in some countries other activities as well.
+
+  To "convey" a work means any kind of propagation that enables other
+parties to make or receive copies.  Mere interaction with a user through
+a computer network, with no transfer of a copy, is not conveying.
+
+  An interactive user interface displays "Appropriate Legal Notices"
+to the extent that it includes a convenient and prominently visible
+feature that (1) displays an appropriate copyright notice, and (2)
+tells the user that there is no warranty for the work (except to the
+extent that warranties are provided), that licensees may convey the
+work under this License, and how to view a copy of this License.  If
+the interface presents a list of user commands or options, such as a
+menu, a prominent item in the list meets this criterion.
+
+  1. Source Code.
+
+  The "source code" for a work means the preferred form of the work
+for making modifications to it.  "Object code" means any non-source
+form of a work.
+
+  A "Standard Interface" means an interface that either is an official
+standard defined by a recognized standards body, or, in the case of
+interfaces specified for a particular programming language, one that
+is widely used among developers working in that language.
+
+  The "System Libraries" of an executable work include anything, other
+than the work as a whole, that (a) is included in the normal form of
+packaging a Major Component, but which is not part of that Major
+Component, and (b) serves only to enable use of the work with that
+Major Component, or to implement a Standard Interface for which an
+implementation is available to the public in source code form.  A
+"Major Component", in this context, means a major essential component
+(kernel, window system, and so on) of the specific operating system
+(if any) on which the executable work runs, or a compiler used to
+produce the work, or an object code interpreter used to run it.
+
+  The "Corresponding Source" for a work in object code form means all
+the source code needed to generate, install, and (for an executable
+work) run the object code and to modify the work, including scripts to
+control those activities.  However, it does not include the work's
+System Libraries, or general-purpose tools or generally available free
+programs which are used unmodified in performing those activities but
+which are not part of the work.  For example, Corresponding Source
+includes interface definition files associated with source files for
+the work, and the source code for shared libraries and dynamically
+linked subprograms that the work is specifically designed to require,
+such as by intimate data communication or control flow between those
+subprograms and other parts of the work.
+
+  The Corresponding Source need not include anything that users
+can regenerate automatically from other parts of the Corresponding
+Source.
+
+  The Corresponding Source for a work in source code form is that
+same work.
+
+  2. Basic Permissions.
+
+  All rights granted under this License are granted for the term of
+copyright on the Program, and are irrevocable provided the stated
+conditions are met.  This License explicitly affirms your unlimited
+permission to run the unmodified Program.  The output from running a
+covered work is covered by this License only if the output, given its
+content, constitutes a covered work.  This License acknowledges your
+rights of fair use or other equivalent, as provided by copyright law.
+
+  You may make, run and propagate covered works that you do not
+convey, without conditions so long as your license otherwise remains
+in force.  You may convey covered works to others for the sole purpose
+of having them make modifications exclusively for you, or provide you
+with facilities for running those works, provided that you comply with
+the terms of this License in conveying all material for which you do
+not control copyright.  Those thus making or running the covered works
+for you must do so exclusively on your behalf, under your direction
+and control, on terms that prohibit them from making any copies of
+your copyrighted material outside their relationship with you.
+
+  Conveying under any other circumstances is permitted solely under
+the conditions stated below.  Sublicensing is not allowed; section 10
+makes it unnecessary.
+
+  3. Protecting Users' Legal Rights From Anti-Circumvention Law.
+
+  No covered work shall be deemed part of an effective technological
+measure under any applicable law fulfilling obligations under article
+11 of the WIPO copyright treaty adopted on 20 December 1996, or
+similar laws prohibiting or restricting circumvention of such
+measures.
+
+  When you convey a covered work, you waive any legal power to forbid
+circumvention of technological measures to the extent such circumvention
+is effected by exercising rights under this License with respect to
+the covered work, and you disclaim any intention to limit operation or
+modification of the work as a means of enforcing, against the work's
+users, your or third parties' legal rights to forbid circumvention of
+technological measures.
+
+  4. Conveying Verbatim Copies.
+
+  You may convey verbatim copies of the Program's source code as you
+receive it, in any medium, provided that you conspicuously and
+appropriately publish on each copy an appropriate copyright notice;
+keep intact all notices stating that this License and any
+non-permissive terms added in accord with section 7 apply to the code;
+keep intact all notices of the absence of any warranty; and give all
+recipients a copy of this License along with the Program.
+
+  You may charge any price or no price for each copy that you convey,
+and you may offer support or warranty protection for a fee.
+
+  5. Conveying Modified Source Versions.
+
+  You may convey a work based on the Program, or the modifications to
+produce it from the Program, in the form of source code under the
+terms of section 4, provided that you also meet all of these conditions:
+
+    a) The work must carry prominent notices stating that you modified
+    it, and giving a relevant date.
+
+    b) The work must carry prominent notices stating that it is
+    released under this License and any conditions added under section
+    7.  This requirement modifies the requirement in section 4 to
+    "keep intact all notices".
+
+    c) You must license the entire work, as a whole, under this
+    License to anyone who comes into possession of a copy.  This
+    License will therefore apply, along with any applicable section 7
+    additional terms, to the whole of the work, and all its parts,
+    regardless of how they are packaged.  This License gives no
+    permission to license the work in any other way, but it does not
+    invalidate such permission if you have separately received it.
+
+    d) If the work has interactive user interfaces, each must display
+    Appropriate Legal Notices; however, if the Program has interactive
+    interfaces that do not display Appropriate Legal Notices, your
+    work need not make them do so.
+
+  A compilation of a covered work with other separate and independent
+works, which are not by their nature extensions of the covered work,
+and which are not combined with it such as to form a larger program,
+in or on a volume of a storage or distribution medium, is called an
+"aggregate" if the compilation and its resulting copyright are not
+used to limit the access or legal rights of the compilation's users
+beyond what the individual works permit.  Inclusion of a covered work
+in an aggregate does not cause this License to apply to the other
+parts of the aggregate.
+
+  6. Conveying Non-Source Forms.
+
+  You may convey a covered work in object code form under the terms
+of sections 4 and 5, provided that you also convey the
+machine-readable Corresponding Source under the terms of this License,
+in one of these ways:
+
+    a) Convey the object code in, or embodied in, a physical product
+    (including a physical distribution medium), accompanied by the
+    Corresponding Source fixed on a durable physical medium
+    customarily used for software interchange.
+
+    b) Convey the object code in, or embodied in, a physical product
+    (including a physical distribution medium), accompanied by a
+    written offer, valid for at least three years and valid for as
+    long as you offer spare parts or customer support for that product
+    model, to give anyone who possesses the object code either (1) a
+    copy of the Corresponding Source for all the software in the
+    product that is covered by this License, on a durable physical
+    medium customarily used for software interchange, for a price no
+    more than your reasonable cost of physically performing this
+    conveying of source, or (2) access to copy the
+    Corresponding Source from a network server at no charge.
+
+    c) Convey individual copies of the object code with a copy of the
+    written offer to provide the Corresponding Source.  This
+    alternative is allowed only occasionally and noncommercially, and
+    only if you received the object code with such an offer, in accord
+    with subsection 6b.
+
+    d) Convey the object code by offering access from a designated
+    place (gratis or for a charge), and offer equivalent access to the
+    Corresponding Source in the same way through the same place at no
+    further charge.  You need not require recipients to copy the
+    Corresponding Source along with the object code.  If the place to
+    copy the object code is a network server, the Corresponding Source
+    may be on a different server (operated by you or a third party)
+    that supports equivalent copying facilities, provided you maintain
+    clear directions next to the object code saying where to find the
+    Corresponding Source.  Regardless of what server hosts the
+    Corresponding Source, you remain obligated to ensure that it is
+    available for as long as needed to satisfy these requirements.
+
+    e) Convey the object code using peer-to-peer transmission, provided
+    you inform other peers where the object code and Corresponding
+    Source of the work are being offered to the general public at no
+    charge under subsection 6d.
+
+  A separable portion of the object code, whose source code is excluded
+from the Corresponding Source as a System Library, need not be
+included in conveying the object code work.
+
+  A "User Product" is either (1) a "consumer product", which means any
+tangible personal property which is normally used for personal, family,
+or household purposes, or (2) anything designed or sold for incorporation
+into a dwelling.  In determining whether a product is a consumer product,
+doubtful cases shall be resolved in favor of coverage.  For a particular
+product received by a particular user, "normally used" refers to a
+typical or common use of that class of product, regardless of the status
+of the particular user or of the way in which the particular user
+actually uses, or expects or is expected to use, the product.  A product
+is a consumer product regardless of whether the product has substantial
+commercial, industrial or non-consumer uses, unless such uses represent
+the only significant mode of use of the product.
+
+  "Installation Information" for a User Product means any methods,
+procedures, authorization keys, or other information required to install
+and execute modified versions of a covered work in that User Product from
+a modified version of its Corresponding Source.  The information must
+suffice to ensure that the continued functioning of the modified object
+code is in no case prevented or interfered with solely because
+modification has been made.
+
+  If you convey an object code work under this section in, or with, or
+specifically for use in, a User Product, and the conveying occurs as
+part of a transaction in which the right of possession and use of the
+User Product is transferred to the recipient in perpetuity or for a
+fixed term (regardless of how the transaction is characterized), the
+Corresponding Source conveyed under this section must be accompanied
+by the Installation Information.  But this requirement does not apply
+if neither you nor any third party retains the ability to install
+modified object code on the User Product (for example, the work has
+been installed in ROM).
+
+  The requirement to provide Installation Information does not include a
+requirement to continue to provide support service, warranty, or updates
+for a work that has been modified or installed by the recipient, or for
+the User Product in which it has been modified or installed.  Access to a
+network may be denied when the modification itself materially and
+adversely affects the operation of the network or violates the rules and
+protocols for communication across the network.
+
+  Corresponding Source conveyed, and Installation Information provided,
+in accord with this section must be in a format that is publicly
+documented (and with an implementation available to the public in
+source code form), and must require no special password or key for
+unpacking, reading or copying.
+
+  7. Additional Terms.
+
+  "Additional permissions" are terms that supplement the terms of this
+License by making exceptions from one or more of its conditions.
+Additional permissions that are applicable to the entire Program shall
+be treated as though they were included in this License, to the extent
+that they are valid under applicable law.  If additional permissions
+apply only to part of the Program, that part may be used separately
+under those permissions, but the entire Program remains governed by
+this License without regard to the additional permissions.
+
+  When you convey a copy of a covered work, you may at your option
+remove any additional permissions from that copy, or from any part of
+it.  (Additional permissions may be written to require their own
+removal in certain cases when you modify the work.)  You may place
+additional permissions on material, added by you to a covered work,
+for which you have or can give appropriate copyright permission.
+
+  Notwithstanding any other provision of this License, for material you
+add to a covered work, you may (if authorized by the copyright holders of
+that material) supplement the terms of this License with terms:
+
+    a) Disclaiming warranty or limiting liability differently from the
+    terms of sections 15 and 16 of this License; or
+
+    b) Requiring preservation of specified reasonable legal notices or
+    author attributions in that material or in the Appropriate Legal
+    Notices displayed by works containing it; or
+
+    c) Prohibiting misrepresentation of the origin of that material, or
+    requiring that modified versions of such material be marked in
+    reasonable ways as different from the original version; or
+
+    d) Limiting the use for publicity purposes of names of licensors or
+    authors of the material; or
+
+    e) Declining to grant rights under trademark law for use of some
+    trade names, trademarks, or service marks; or
+
+    f) Requiring indemnification of licensors and authors of that
+    material by anyone who conveys the material (or modified versions of
+    it) with contractual assumptions of liability to the recipient, for
+    any liability that these contractual assumptions directly impose on
+    those licensors and authors.
+
+  All other non-permissive additional terms are considered "further
+restrictions" within the meaning of section 10.  If the Program as you
+received it, or any part of it, contains a notice stating that it is
+governed by this License along with a term that is a further
+restriction, you may remove that term.  If a license document contains
+a further restriction but permits relicensing or conveying under this
+License, you may add to a covered work material governed by the terms
+of that license document, provided that the further restriction does
+not survive such relicensing or conveying.
+
+  If you add terms to a covered work in accord with this section, you
+must place, in the relevant source files, a statement of the
+additional terms that apply to those files, or a notice indicating
+where to find the applicable terms.
+
+  Additional terms, permissive or non-permissive, may be stated in the
+form of a separately written license, or stated as exceptions;
+the above requirements apply either way.
+
+  8. Termination.
+
+  You may not propagate or modify a covered work except as expressly
+provided under this License.  Any attempt otherwise to propagate or
+modify it is void, and will automatically terminate your rights under
+this License (including any patent licenses granted under the third
+paragraph of section 11).
+
+  However, if you cease all violation of this License, then your
+license from a particular copyright holder is reinstated (a)
+provisionally, unless and until the copyright holder explicitly and
+finally terminates your license, and (b) permanently, if the copyright
+holder fails to notify you of the violation by some reasonable means
+prior to 60 days after the cessation.
+
+  Moreover, your license from a particular copyright holder is
+reinstated permanently if the copyright holder notifies you of the
+violation by some reasonable means, this is the first time you have
+received notice of violation of this License (for any work) from that
+copyright holder, and you cure the violation prior to 30 days after
+your receipt of the notice.
+
+  Termination of your rights under this section does not terminate the
+licenses of parties who have received copies or rights from you under
+this License.  If your rights have been terminated and not permanently
+reinstated, you do not qualify to receive new licenses for the same
+material under section 10.
+
+  9. Acceptance Not Required for Having Copies.
+
+  You are not required to accept this License in order to receive or
+run a copy of the Program.  Ancillary propagation of a covered work
+occurring solely as a consequence of using peer-to-peer transmission
+to receive a copy likewise does not require acceptance.  However,
+nothing other than this License grants you permission to propagate or
+modify any covered work.  These actions infringe copyright if you do
+not accept this License.  Therefore, by modifying or propagating a
+covered work, you indicate your acceptance of this License to do so.
+
+  10. Automatic Licensing of Downstream Recipients.
+
+  Each time you convey a covered work, the recipient automatically
+receives a license from the original licensors, to run, modify and
+propagate that work, subject to this License.  You are not responsible
+for enforcing compliance by third parties with this License.
+
+  An "entity transaction" is a transaction transferring control of an
+organization, or substantially all assets of one, or subdividing an
+organization, or merging organizations.  If propagation of a covered
+work results from an entity transaction, each party to that
+transaction who receives a copy of the work also receives whatever
+licenses to the work the party's predecessor in interest had or could
+give under the previous paragraph, plus a right to possession of the
+Corresponding Source of the work from the predecessor in interest, if
+the predecessor has it or can get it with reasonable efforts.
+
+  You may not impose any further restrictions on the exercise of the
+rights granted or affirmed under this License.  For example, you may
+not impose a license fee, royalty, or other charge for exercise of
+rights granted under this License, and you may not initiate litigation
+(including a cross-claim or counterclaim in a lawsuit) alleging that
+any patent claim is infringed by making, using, selling, offering for
+sale, or importing the Program or any portion of it.
+
+  11. Patents.
+
+  A "contributor" is a copyright holder who authorizes use under this
+License of the Program or a work on which the Program is based.  The
+work thus licensed is called the contributor's "contributor version".
+
+  A contributor's "essential patent claims" are all patent claims
+owned or controlled by the contributor, whether already acquired or
+hereafter acquired, that would be infringed by some manner, permitted
+by this License, of making, using, or selling its contributor version,
+but do not include claims that would be infringed only as a
+consequence of further modification of the contributor version.  For
+purposes of this definition, "control" includes the right to grant
+patent sublicenses in a manner consistent with the requirements of
+this License.
+
+  Each contributor grants you a non-exclusive, worldwide, royalty-free
+patent license under the contributor's essential patent claims, to
+make, use, sell, offer for sale, import and otherwise run, modify and
+propagate the contents of its contributor version.
+
+  In the following three paragraphs, a "patent license" is any express
+agreement or commitment, however denominated, not to enforce a patent
+(such as an express permission to practice a patent or covenant not to
+sue for patent infringement).  To "grant" such a patent license to a
+party means to make such an agreement or commitment not to enforce a
+patent against the party.
+
+  If you convey a covered work, knowingly relying on a patent license,
+and the Corresponding Source of the work is not available for anyone
+to copy, free of charge and under the terms of this License, through a
+publicly available network server or other readily accessible means,
+then you must either (1) cause the Corresponding Source to be so
+available, or (2) arrange to deprive yourself of the benefit of the
+patent license for this particular work, or (3) arrange, in a manner
+consistent with the requirements of this License, to extend the patent
+license to downstream recipients.  "Knowingly relying" means you have
+actual knowledge that, but for the patent license, your conveying the
+covered work in a country, or your recipient's use of the covered work
+in a country, would infringe one or more identifiable patents in that
+country that you have reason to believe are valid.
+
+  If, pursuant to or in connection with a single transaction or
+arrangement, you convey, or propagate by procuring conveyance of, a
+covered work, and grant a patent license to some of the parties
+receiving the covered work authorizing them to use, propagate, modify
+or convey a specific copy of the covered work, then the patent license
+you grant is automatically extended to all recipients of the covered
+work and works based on it.
+
+  A patent license is "discriminatory" if it does not include within
+the scope of its coverage, prohibits the exercise of, or is
+conditioned on the non-exercise of one or more of the rights that are
+specifically granted under this License.  You may not convey a covered
+work if you are a party to an arrangement with a third party that is
+in the business of distributing software, under which you make payment
+to the third party based on the extent of your activity of conveying
+the work, and under which the third party grants, to any of the
+parties who would receive the covered work from you, a discriminatory
+patent license (a) in connection with copies of the covered work
+conveyed by you (or copies made from those copies), or (b) primarily
+for and in connection with specific products or compilations that
+contain the covered work, unless you entered into that arrangement,
+or that patent license was granted, prior to 28 March 2007.
+
+  Nothing in this License shall be construed as excluding or limiting
+any implied license or other defenses to infringement that may
+otherwise be available to you under applicable patent law.
+
+  12. No Surrender of Others' Freedom.
+
+  If conditions are imposed on you (whether by court order, agreement or
+otherwise) that contradict the conditions of this License, they do not
+excuse you from the conditions of this License.  If you cannot convey a
+covered work so as to satisfy simultaneously your obligations under this
+License and any other pertinent obligations, then as a consequence you may
+not convey it at all.  For example, if you agree to terms that obligate you
+to collect a royalty for further conveying from those to whom you convey
+the Program, the only way you could satisfy both those terms and this
+License would be to refrain entirely from conveying the Program.
+
+  13. Use with the GNU Affero General Public License.
+
+  Notwithstanding any other provision of this License, you have
+permission to link or combine any covered work with a work licensed
+under version 3 of the GNU Affero General Public License into a single
+combined work, and to convey the resulting work.  The terms of this
+License will continue to apply to the part which is the covered work,
+but the special requirements of the GNU Affero General Public License,
+section 13, concerning interaction through a network will apply to the
+combination as such.
+
+  14. Revised Versions of this License.
+
+  The Free Software Foundation may publish revised and/or new versions of
+the GNU General Public License from time to time.  Such new versions will
+be similar in spirit to the present version, but may differ in detail to
+address new problems or concerns.
+
+  Each version is given a distinguishing version number.  If the
+Program specifies that a certain numbered version of the GNU General
+Public License "or any later version" applies to it, you have the
+option of following the terms and conditions either of that numbered
+version or of any later version published by the Free Software
+Foundation.  If the Program does not specify a version number of the
+GNU General Public License, you may choose any version ever published
+by the Free Software Foundation.
+
+  If the Program specifies that a proxy can decide which future
+versions of the GNU General Public License can be used, that proxy's
+public statement of acceptance of a version permanently authorizes you
+to choose that version for the Program.
+
+  Later license versions may give you additional or different
+permissions.  However, no additional obligations are imposed on any
+author or copyright holder as a result of your choosing to follow a
+later version.
+
+  15. Disclaimer of Warranty.
+
+  THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
+APPLICABLE LAW.  EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
+HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
+OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
+THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
+PURPOSE.  THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
+IS WITH YOU.  SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
+ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
+
+  16. Limitation of Liability.
+
+  IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
+WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
+THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
+GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
+USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
+DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
+PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
+EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
+SUCH DAMAGES.
+
+  17. Interpretation of Sections 15 and 16.
+
+  If the disclaimer of warranty and limitation of liability provided
+above cannot be given local legal effect according to their terms,
+reviewing courts shall apply local law that most closely approximates
+an absolute waiver of all civil liability in connection with the
+Program, unless a warranty or assumption of liability accompanies a
+copy of the Program in return for a fee.
+
+                     END OF TERMS AND CONDITIONS
+
+            How to Apply These Terms to Your New Programs
+
+  If you develop a new program, and you want it to be of the greatest
+possible use to the public, the best way to achieve this is to make it
+free software which everyone can redistribute and change under these terms.
+
+  To do so, attach the following notices to the program.  It is safest
+to attach them to the start of each source file to most effectively
+state the exclusion of warranty; and each file should have at least
+the "copyright" line and a pointer to where the full notice is found.
+
+    <one line to give the program's name and a brief idea of what it does.>
+    Copyright (C) <year>  <name of author>
+
+    This program is free software: you can redistribute it and/or modify
+    it under the terms of the GNU General Public License as published by
+    the Free Software Foundation, either version 3 of the License, or
+    (at your option) any later version.
+
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+    GNU General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with this program.  If not, see <http://www.gnu.org/licenses/>.
+
+Also add information on how to contact you by electronic and paper mail.
+
+  If the program does terminal interaction, make it output a short
+notice like this when it starts in an interactive mode:
+
+    <program>  Copyright (C) <year>  <name of author>
+    This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
+    This is free software, and you are welcome to redistribute it
+    under certain conditions; type `show c' for details.
+
+The hypothetical commands `show w' and `show c' should show the appropriate
+parts of the General Public License.  Of course, your program's commands
+might be different; for a GUI interface, you would use an "about box".
+
+  You should also get your employer (if you work as a programmer) or school,
+if any, to sign a "copyright disclaimer" for the program, if necessary.
+For more information on this, and how to apply and follow the GNU GPL, see
+<http://www.gnu.org/licenses/>.
+
+  The GNU General Public License does not permit incorporating your program
+into proprietary programs.  If your program is a subroutine library, you
+may consider it more useful to permit linking proprietary applications with
+the library.  If this is what you want to do, use the GNU Lesser General
+Public License instead of this License.  But first, please read
+<http://www.gnu.org/philosophy/why-not-lgpl.html>.
--- a/web/wp-content/plugins/quick-pagepost-redirect-plugin/page_post_redirect_plugin.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-content/plugins/quick-pagepost-redirect-plugin/page_post_redirect_plugin.php	Wed Dec 19 17:46:52 2012 -0800
@@ -1,18 +1,18 @@
 <?php 
 /*
-Plugin Name: Quick Page/Post Redirect DEV
+Plugin Name: Quick Page/Post Redirect Plugin
 Plugin URI: http://www.fischercreativemedia.com/wordpress-plugins/quick-pagepost-redirect-plugin/
 Description: Redirect Pages, Posts or Custom Post Types to another location quickly (for internal or external URLs). Includes individual post/page options, redirects for Custom Post types, non-existant 301 Quick Redirects (helpful for sites converted to WordPress), New Window functionality, and rel=nofollow functionality.
 Author: Don Fischer
 Author URI: http://www.fischercreativemedia.com/
-Donate link: http://www.fischercreativemedia.com/wordpress-plugins/donate/
-Version: 4.2.3 
+Donate link: http://www.fischercreativemedia.com/donations/
+Version: 5.0.2
 
 Version info:
 See change log in readme.txt file.
 Version 3.2.4 to 4.0.1 are testing versions only
 
-    Copyright (C) 2009-2011 Donald J. Fischer
+    Copyright (C) 2009-2012 Donald J. Fischer
 
     This program is free software: you can redistribute it and/or modify
     it under the terms of the GNU General Public License as published by
@@ -33,7 +33,51 @@
 		function esc_attr($attr){return attribute_escape( $attr );}
 		function esc_url($url){return clean_url( $url );}
 	}
+	add_action('init','start_ppr_class',0);
 
+//you can use the following action hooks with this plugin:
+// *** Quick Rediects function: use to take over redirect
+// add_action('qppr_redirect','some_callback_function',10,2);
+//		value 1. is Redirect URL
+//		value 2. is Redirect Type
+// *******************************
+// *** Page/Post Redirects function: use to take over redirect
+// add_action('qppr_do_redirect','some_callback_function2',10,2);
+//		value 1. is Redirect URL
+//		value 2. is Redirect Type
+// *******************************
+// *** Meta Redirect Action: Used for Meta Redirect Page Headers (so you can add meta tag)
+//add_action('ppr_meta_head_hook','some_callback',10,3);
+//      arg 1. URL site
+//		arg 2. Meta Redirect Time in Seconds
+//		arg 3. Meta Message to display
+// Example:
+/***
+	add_action('ppr_meta_head_hook','override_ppr_metahead',10,3);
+	function override_ppr_metahead($refresh_url='',$refresh_secs=0,$messages=''){
+        echo '<meta http-equiv="refresh" content="'.$refresh_secs.'; URL='.$refresh_url.'" />'."\n";
+        echo '<div id="ppr_custom_message">'. $messages.'</div>'."\n";
+        return;
+	}
+**/
+// *******************************
+// *** Meta Redirect Filter: Used for Meta Redirect Page Headers (so you can add meta and message, etc.)
+//add_filter('ppr_meta_head_hook_filter','some_callback2',10,2);
+//		value 1. Meta Tag (fully generated)
+//		value 2. Page HTML Message (wrapped in a <div> tag)
+// Example:
+	add_filter('ppr_meta_head_hook_filter','override_ppr_metahead_new');
+	function override_ppr_metahead_new($meta_tag='',$meta_message=''){
+        $meta = $meta_tag;
+        $function = create_function('$content', 'return \'<div id="ppr_custom_message">sample message override</div>\';');
+        $function2 = create_function('$title', 'return \'sample message override TITLE\';');
+        add_filter('get_content',$function,100,1);
+      	add_filter('get_title',$function2,100,1);
+        return $meta;
+	}
+// *******************************
+
+	
 //=======================================
 // Main Redirect Class.
 //=======================================
@@ -62,29 +106,38 @@
 	public $pproverride_rewrite;
 	public $pprmeta_seconds;
 	public $pprmeta_message;
+	public $quickppr_redirectsmeta;
+	public $quickppr_jquerycache;
+	public $pproverride_casesensitive;
+	public $ppruse_jquery;
+	public $pprptypes_ok;
 	
 	function __construct() {
-		$this->ppr_curr_version 	= '4.1';
+		$this->ppr_curr_version 	= '5.0.2';
 		$this->ppr_nofollow 		= array();
 		$this->ppr_newindow 		= array();
 		$this->ppr_url 				= array();
 		$this->ppr_url_rewrite 		= array();
-		$this->thepprversion 		= get_option('ppr_version');
-		$this->thepprmeta 			= get_option('ppr_meta_clean');
-		$this->quickppr_redirects 	= get_option('quickppr_redirects');
-		$this->homelink 			= get_option('home');
+		$this->thepprversion 		= get_option( 'ppr_version');
+		$this->thepprmeta 			= get_option( 'ppr_meta_clean');
+		$this->quickppr_redirects 	= get_option( 'quickppr_redirects');
+		$this->quickppr_redirectsmeta= get_option('quickppr_redirects_meta');
+		$this->homelink 			= get_option( 'home');
 		$this->pproverride_nofollow = get_option( 'ppr_override-nofollow' );
 		$this->pproverride_newwin 	= get_option( 'ppr_override-newwindow' );
+		$this->ppruse_jquery	 	= get_option( 'ppr_use-jquery' );
+		$this->pprptypes_ok			= array();
 		$this->pproverride_type 	= get_option( 'ppr_override-redirect-type' );
 		$this->pproverride_active 	= get_option( 'ppr_override-active' );
 		$this->pproverride_URL 		= get_option( 'ppr_override-URL' );
 		$this->pproverride_rewrite	= get_option( 'ppr_override-rewrite' );
 		$this->pprmeta_message		= get_option( 'ppr_meta-message' );
 		$this->pprmeta_seconds		= get_option( 'ppr_meta-seconds' );
+		$this->pproverride_casesensitive	= get_option( 'ppr_override-casesensitive' );
 		$this->adminlink 			= get_bloginfo('url').'/wp-admin/';
-		$this->fcmlink				= 'http://www.fischercreativemedia.com/wordpress-plugins';
+		$this->fcmlink				= 'http://www.fischercreativemedia.com/plugins';
 		$this->ppr_metaurl			= '';
-		$this->ppr_all_redir_array	= $this->get_main_array();
+		$this->quickppr_jquerycache	= get_option( 'qppr_jQuery_cache' );
 		$this->updatemsg			= '';
 		if($this->pprmeta_seconds==''){$this->pprmeta_seconds='0';}
 		
@@ -92,12 +145,15 @@
 		add_action( 'init', array($this,'ppr_init_check_version'), 1 );				// checks version of plugin in DB and updates if needed.
 		add_action(	'save_post', array($this,'ppr_save_metadata'),20,2 ); 			// save the custom fields
 	  	add_action( 'wp',array($this,'ppr_parse_request') );						// parse query vars
+	  	add_action( 'init',array($this,'ppr_parse_request_new') );					// parse query vars
+		add_action( 'wp_enqueue_scripts',array($this,'ppr_do_jQuery'), 1, 2);		// do the jQuery in site header
 		add_action( 'admin_menu', array($this,'ppr_add_menu') ); 					// add the menu items needed
 		add_action( 'admin_menu', array($this,'ppr_add_metabox') ); 				// add the metaboxes where needed
 		add_action( 'plugin_action_links_' . plugin_basename(__FILE__), array($this,'ppr_filter_plugin_actions') );
 		add_filter( 'query_vars',array($this,'ppr_queryhook') ); 
 		add_filter( 'plugin_row_meta',  array($this,'ppr_filter_plugin_links'), 10, 2 );
-		
+		//add_filter( 'wp_feed_cache_transient_lifetime','ppr_wp_feed_options',10, 2);
+
 		if($this->pproverride_active!='1' && !is_admin()){ 								// don't run these if override active is set
 			add_action( 'init', array($this,'redirect'), 1 ); 							// add the 301 redirect action, high priority
 			add_action( 'init', array($this,'redirect_post_type'), 1 ); 				// add the normal redirect action, high priority
@@ -110,16 +166,146 @@
 			add_filter( 'get_permalink', array($this, 'ppr_filter_links'), 20, 2 );
 		}
 		if (isset( $_POST['submit_301']) ) {$this->quickppr_redirects = $this->save_redirects($_POST['quickppr_redirects']);$this->updatemsg ='Quick Redirects Updated.';} //if submitted, process the data
-		if (isset( $_REQUEST['settings-updated'] ) &&  $_REQUEST['settings-updated']=='true'){$this->updatemsg ='Settings Updated.';}
+		if (isset( $_REQUEST['settings-updated'] ) &&  $_REQUEST['settings-updated']=='true'){/*$this->updatemsg ='Settings Updated.';*/}
 	}
 	
 	function ppr_add_menu(){
-		add_menu_page('Redirect Menu', 'Redirect Menu', 'administrator', 'redirect-options', array($this,'ppr_settings_page'),plugins_url().'/quick-pagepost-redirect-plugin/settings-16-icon.png');
+		add_menu_page('Redirect Options', 'Redirect Options', 'administrator', 'redirect-options', array($this,'ppr_settings_page'),plugins_url( 'settings-16-icon.png' , __FILE__));
 		add_submenu_page( 'redirect-options', 'Quick Redirects', 'Quick Redirects', 'manage_options', 'redirect-updates', array($this,'ppr_options_page') );
 		add_submenu_page( 'redirect-options', 'Redirect Summary', 'Redirect Summary', 'manage_options', 'redirect-summary', array($this,'ppr_summary_page') );
+		add_submenu_page( 'redirect-options', 'FAQs/Help', 'FAQs/Help', 'manage_options', 'redirect-faqs', array($this,'ppr_faq_page') );
 		add_action( 'admin_init', array($this,'register_pprsettings') );
 	}
+	
+	function ppr_do_jQuery($wphead){
+		$this->build_jQueryCache();
+	    wp_enqueue_script( 'pprjquery', get_bloginfo('url').'/', array('jquery'), 'pprjq1');
+	}
+	
+	function build_jQueryCache(){
+		$redirects = $this->quickppr_redirects;
+		$redirectsmeta = $this->quickppr_redirectsmeta;
+		$ppr_newWindowArray = array();
+		$ppr_noFollowArray = array();
+		$ppr_newwin = $this->ppr_newwindow;
+		$ppr_nofoll = $this->ppr_nofollow;
+		
+		//quick redirects
+		if (!empty($redirects)) {
+			foreach ($redirects as $request => $destination) {
+				if($redirectsmeta[$request]['nofollow'] == '1' || $this->pproverride_nofollow =='1'){$ppr_noFollowArray[] = str_replace(array(get_bloginfo('url'),'/'),array('',''),$request);}
+				if($redirectsmeta[$request]['newwindow'] == '1' || $this->pproverride_newwin =='1'){$ppr_newWindowArray[] = str_replace(array(get_bloginfo('url'),'/'),array('',''),$request);}
+			}
+		}
 
+		//New Window Array
+		if (!empty($ppr_newwin)) {
+			foreach ($ppr_newwin as $request) {
+				if($ppr_newwin != ''){$ppr_newWindowArray[] = str_replace(array(get_bloginfo('url'),'/'),array('',''),$request);}
+			}
+		}
+		
+		//No Follow Array
+		if (!empty($ppr_nofoll)) {
+			foreach ($ppr_nofoll as $request) {
+				if($ppr_nofoll != ''){$ppr_noFollowArray[] = str_replace(array(get_bloginfo('url'),'/'),array('',''),$request);}
+			}
+		}
+		
+		$newWin = implode('", "',$ppr_newWindowArray);
+		if($newWin!=''){$newWin = '"'.$newWin.'"';}
+		$newFoll = implode('", "',$ppr_noFollowArray);
+		if($newFoll!=''){$newFoll = '"'.$newFoll.'"';}
+		$pprextrajqrw = '0';
+		$pprextrajqurl = '';
+		if($this->pproverride_rewrite == '1'){
+			$pprextrajqrw = '1';
+			$pprextrajqurl = $this->pproverride_URL;
+		}
+		$theScript ="
+jQuery(document).ready(function() {
+	var pprrewrite = '".$pprextrajqrw."';
+	var pprrewriteurl = '".$pprextrajqurl."';
+	var pprNoFollArr = new Array(".$newFoll.");
+	var pprNewWinArr = new Array(".$newWin.");
+	var pprchechhref = '';
+	var pprchechhref2 = '';
+	var pprspoturl	= '".get_bloginfo('url')."';
+	var tempdf = '';
+	var jqvers = parseFloat(jQuery().jquery, 3);
+	//this checks for jQuery version and serves correct script (i.e., prop vs attr)
+	//alert(jqvers);
+	if(jqvers >= 1.6){
+		jQuery('a').each(function (i) {
+			var tempfga = jQuery(this).attr('href');
+			if(tempfga == '' || typeof tempfga == 'undefined' || tempfga === undefined ){
+				// do nothing
+			}else{
+				var tempfg 	= tempfga.replace(pprspoturl,'');
+				var tempfg2 = tempfg.replace(/\//gi,'');
+				var tempfg3 = tempfga.replace(/\//gi,'');
+				var tempfh 	= jQuery(this).prop('rel');
+				var tempfi 	= jQuery(this).prop('target');
+				if(pprrewrite == '1'){
+					//pprnewurl = jQuery(this).attr('href',pprrewriteurl);
+					// Temp Remove as it causes the all links to be redirected in 5.0.1
+				}	
+				if(jQuery.inArray(tempfg2, pprNoFollArr) >= 0 || jQuery.inArray(tempfg3, pprNoFollArr) >= 0){
+					if(tempfh =='' || tempfh =='undefined' || tempfh === undefined || typeof tempfh == 'undefined' ){
+						jQuery(this).prop('rel','nofollow');
+					}else{
+						if(tempfh != 'nofollow' && tempfh.indexOf('nofollow') == -1){
+							jQuery(this).prop('rel','nofollow '+tempfh);
+						}
+					}
+					jQuery(this).addClass('qppr-nf');
+				}
+				if(jQuery.inArray(tempfg2,pprNewWinArr) >= 0 || jQuery.inArray(tempfg3, pprNewWinArr) >= 0){
+					jQuery(this).addClass('qppr-nw');
+					if(tempfi =='' || tempfi =='undefined' || tempfi === undefined || typeof tempfi == 'undefined'){jQuery(this).prop('target','_blank');}
+				}
+			}
+		});
+	}else{
+		jQuery('a').each(function (i) {
+			var tempfga = jQuery(this).attr('href');
+			if(tempfga == '' || typeof tempfga == 'undefined' || tempfga === undefined ){
+				// do nothing
+			}else{
+				var tempfg 	= tempfga.replace(pprspoturl,'');
+				var tempfg2 = tempfg.replace(/\//gi,'');
+				var tempfg3 = tempfga.replace(/\//gi,'');
+				var tempfh 	= jQuery(this).attr('rel');
+				var tempfi 	= jQuery(this).attr('target');
+				if(pprrewrite == '1'){
+					//pprnewurl = jQuery(this).attr('href',pprrewriteurl);
+					// Temp Remove as it causes the all links to be redirected in 5.0.1
+				}	
+				if(jQuery.inArray(tempfg2, pprNoFollArr) >= 0 || jQuery.inArray(tempfg3, pprNoFollArr) >= 0){
+					if(tempfh =='' || tempfh =='undefined' || tempfh === undefined ||  typeof tempfh == 'undefined' ){
+						jQuery(this).attr('rel','nofollow');
+					}else{
+						if(tempfh != 'nofollow' && tempfh.indexOf('nofollow') == -1){
+							jQuery(this).attr('rel','nofollow '+tempfh);
+						}
+					}
+					jQuery(this).addClass('qppr-nf');
+				}
+				if(jQuery.inArray(tempfg2,pprNewWinArr) >= 0 || jQuery.inArray(tempfg3, pprNewWinArr) >= 0){
+					jQuery(this).addClass('qppr-nw');
+					if(tempfi =='' || tempfi =='undefined' || tempfi === undefined || typeof tempfi == 'undefined' ){jQuery(this).attr('target','_blank');}
+				}
+			}
+		});
+	}
+});
+		";
+		//temp fix until this is resolved:
+		$theScript = '';
+		update_option('qppr_jQuery_cache',$theScript);
+		$this->quickppr_jquerycache = get_option('qppr_jQuery_cache');
+	}
+	
 	function register_pprsettings() {
 		register_setting( 'ppr-settings-group', 'ppr_use-custom-post-types' );
 		register_setting( 'ppr-settings-group', 'ppr_override-nofollow' );
@@ -130,18 +316,89 @@
 		register_setting( 'ppr-settings-group', 'ppr_override-rewrite' );
 		register_setting( 'ppr-settings-group', 'ppr_meta-seconds' );
 		register_setting( 'ppr-settings-group', 'ppr_meta-message' );
+		register_setting( 'ppr-settings-group', 'ppr_use-jquery' );
+		register_setting( 'ppr-settings-group', 'ppr_qpprptypeok' );
+		register_setting( 'ppr-settings-group', 'ppr_override-casesensitive' );
 	}
-
+	
+	function ppr_wp_feed_options($cache,$url){
+		if($url == "http://www.fischercreativemedia.com/?feed=qppr_faqs"){
+			$cache = '1';
+		}
+		return $cache;
+	}
+	
+	function ppr_faq_page(){
+		include_once(ABSPATH . WPINC . '/feed.php');
+		echo '
+		<div class="wrap">
+			<style type="text/css">
+				.faq-item{border-bottom:1px solid #CCC;padding-bottom:10px;margin-bottom:10px;}
+				.faq-item span.qa{color: #21759B;display: block;float: left;font-family: serif;font-size: 17px;font-weight: bold;margin-left: 0;margin-right: 5px;}
+				 h3.qa{color: #21759B;margin:0px 0px 10px 0;font-family: serif;font-size: 17px;font-weight: bold;}
+				.faq-item .qa-content p:first-child{margin-top:0;}
+				.qppr-faq-links {border-bottom: 1px solid #CCCCCC;list-style-position: inside;margin:10px 0 15px 35px;}
+				.qppr-faq-answers{list-style-position: inside;margin:10px 0 15px 35px;}
+				.toplink{text-align:left;}
+				.qa-content div > code{background: none repeat scroll 0 0 #EFEFEF;border: 1px solid #CCCCCC;display: block;margin-left: 35px;overflow-y: auto;padding: 10px 20px;white-space: nowrap;width: 90%;}
+			</style>
+			<div class="icon32" style="background: url('. plugins_url( "settings-icon.png" , __FILE__ ) . ') no-repeat transparent;"><br/></div>
+		 	<h2>Quick Page/Post Redirect FAQs/Help</h2>
+			<div align="left"><p>The FAQS are now on a feed that can be updated on the fly. If you have a question and don\'t see an answer, please send an email to <a href="mailto:plugins@fischercreativemedia.com">plugins@fischercreativemedia.com</a> and ask your question. If it is relevant to the plugin, it will be added to the FAQs feed so it will show up here. Please be sure to include the plugin you are asking a question about (Quick Page/Post Redirect Plugin) and any other information like your WordPress version and examples if the plugin is not working correctly for you. THANKS!</p>
+			<hr noshade color="#C0C0C0" size="1" />
+		';
+		$rss 			= fetch_feed('http://www.fischercreativemedia.com/?feed=qppr_faqs');
+		$linkfaq 		= array();
+		$linkcontent 	= array();
+		if (!is_wp_error( $rss ) ) : 
+		    $maxitems 	= $rss->get_item_quantity(100); 
+		    $rss_items 	= $rss->get_items(0, $maxitems); 
+		endif;
+			$aqr = 0;
+		    if ($maxitems != 0){
+			    foreach ( $rss_items as $item ) :
+			    	$aqr++; 
+			    	$linkfaq[]		= '<li class="faq-top-item"><a href="#faq-'.$aqr.'">'.esc_html( $item->get_title() ).'</a></li>';
+				    $linkcontent[] 	= '<li class="faq-item"><a name="faq-'.$aqr.'"></a><h3 class="qa"><span class="qa">Q. </span>'.esc_html( $item->get_title() ).'</h3><div class="qa-content"><span class="qa answer">A. </span>'.$item->get_content().'</div><div class="toplink"><a href="#faq-top">top &uarr;</a></li>';
+			    endforeach;
+			}
+		echo '<a name="faq-top"></a><h2>Table of Contents</h2>';
+		echo '<ol class="qppr-faq-links">';
+			echo implode("\n",$linkfaq);
+		echo '</ol>';
+		echo '<h2>Questions/Answers</h2>';
+		echo '<ul class="qppr-faq-answers">';
+			echo implode("\n",$linkcontent);
+		echo '</ul>';
+		echo '
+			</div>
+		</div>';
+	}
 	function ppr_summary_page() {?>
 		<div class="wrap">
-		<style type="text/css">.pprdonate{padding:5px;border:1px solid #dadada;font-family:tahoma, arial, helvetica, sans-serif;font-size:12px;float:right;position:absolute;top:25px;right:5px;width:250px;text-align:center;}.qform-table td{padding:2px !important;border:1px solid #cccccc;}.qform-table .headrow td{font-weight:bold;}.qform-table .onrow td{background-color:#eaeaea;}.qform-table .offrow td{background-color:#ffffff;}</style>
-		<div class="icon32" style="<?php echo 'background: url('.plugins_url().'/quick-pagepost-redirect-plugin/settings-icon.png) no-repeat transparent;';?>"><br></div>
+		<style type="text/css">
+		.ppr-acor{background:#FF0000;display:block;color:#FFFFFF;}
+		.ppr-nfor{background:#FFAAAA;display:block;}
+		.ppr-nwor{background:#FF9933;display:block;}
+		.ppr-rrlor{background:#FFFF66;display:block;}
+		.pprdonate{padding:5px;border:1px solid #dadada;font-family:tahoma, arial, helvetica, sans-serif;font-size:12px;float:right;position:absolute;top:25px;right:5px;width:250px;text-align:center;}
+		.qform-table td{padding:2px !important;border:1px solid #cccccc;}
+		.qform-table .headrow td{font-weight:bold;}
+		.qform-table .onrow td{background-color:#eaeaea;}
+		.qform-table .offrow td{background-color:#ffffff;}</style>
+		<div class="icon32" style="<?php echo 'background: url('.plugins_url( 'settings-icon.png' , __FILE__ ).') no-repeat transparent;';?>"><br></div>
 		<h2>Quick Page Post Redirect Summary</h2>
-		<p>This is a summary of Individual redirects only. Quick 301 Redirects can be found <a href="admin.php?page=redirect-updates">here</a>.</p><br/>
+		<p>This is a summary of Individual &amp; Quick 301 Redirects.</p><br/>
 		<?php if($this->updatemsg!=''){?><div class="updated settings-error" id="setting-error-settings_updated"><p><strong><?php echo $this->updatemsg;?></strong></p></div><?php } ?>
 		<?php $this->updatemsg ='';?>
 		 <h2 style="font-size:20px;">Summary</h2>
 		    <div align="left">
+			<?php 		    		
+			if($this->pproverride_active =='1'){echo '<div class="ppr-acor" style="margin:1px 0;width: 250px;font-weight: bold;padding: 2px;">Acitve Override is on - All Redirects are OFF!</div>';}
+			if($this->pproverride_nofollow =='1'){echo '<div class="ppr-nfor" style="margin:1px 0;width: 200px;font-weight: bold;padding: 2px;">No Follow Override is on!</div>';}
+			if($this->pproverride_newwin =='1'){echo '<div class="ppr-nwor" style="margin:1px 0;width: 200px;font-weight: bold;padding: 2px;">New Window Override is on!</div>';}
+			if($this->pproverride_rewrite =='1'){echo '<div class="ppr-rrlor" style="margin:1px 0;width: 200px;font-weight: bold;padding: 2px;">Rewrite Override is on!</div>';}
+			?>
 		    <table class="form-table qform-table" width="100%">
 		        <tr valign="top" class="headrow">
 		        	<td width="50" align="left">ID</td>
@@ -159,12 +416,33 @@
 			$tempReportArray = array();
 			$tempa = array();
 			$tempQTReportArray = array();
-			if(count($this->quickppr_redirects)>0){
+			$this->build_jQueryCache();
+			if( !empty( $this->quickppr_redirects)){
 				foreach($this->quickppr_redirects as $key=>$redir){
 					$tempQTReportArray = array('url'=>$key,'destinaition'=>$redir);
+					$qr_nofollow = $this->quickppr_redirectsmeta[$key]['nofollow'];
+					$qr_newwindow = $this->quickppr_redirectsmeta[$key]['newwindow'];
+					if($qr_nofollow ==''){$qr_nofollow = '0';}
+					if($qr_newwindow ==''){$qr_newwindow = '0';}
+					if($this->pproverride_nofollow == '1'){$qr_nofollow = '<span class="ppr-nfor">1</span>';}
+					if($this->pproverride_newwin == '1'){$qr_newwindow= '<span class="ppr-nwor">1</span>';}
+					if($this->pproverride_rewrite == '1'){$qrtrewrit= '<span class="ppr-rrlor">1</span>';$qrtredURL = '<span class="ppr-rrlor">'.$this->pproverride_URL.'</span>';}else{$qrtrewrit = 'N/A';$qrtredURL =$redir;}
+					if($this->pproverride_active =='1'){$qrtactive = '<span class="ppr-acor">0</span>';}else{$qrtactive= 1;}
+
+					$tempReportArray[] = array(
+						'_pprredirect_active' => $qrtactive,
+						'_pprredirect_rewritelink' => $qrtrewrit,
+						'_pprredirect_relnofollow' => $qr_nofollow,
+						'_pprredirect_newwindow' => $qr_newwindow,
+						'_pprredirect_type' => 'Quick',
+						'post_type' => 'N/A',
+						'id' => 'N/A',
+						'origurl' => $key,
+						'_pprredirect_url' => $qrtredURL
+						);
 				}
 			}
-			if(count($this->ppr_all_redir_array)>0){
+			if(!empty($this->ppr_all_redir_array)){
 				foreach($this->ppr_all_redir_array as $key=>$result){
 					$tempa['id']= $key;
 					$tempa['post_type'] = get_post_type( $key );
@@ -177,10 +455,12 @@
 					unset($tempa);
 				}
 			}
-			if(count($tempReportArray)>0){
+			if(!empty($tempReportArray)){
 				$pclass = 'onrow';
 				foreach($tempReportArray as $reportItem){
 					$tactive = $reportItem['_pprredirect_active'];
+					if($this->pproverride_active =='1'){$tactive = '<span class="ppr-acor">0</span>';}
+					
 					$trewrit = $reportItem['_pprredirect_rewritelink'];
 					$tnofoll = $reportItem['_pprredirect_relnofollow'];
 					$tnewwin = $reportItem['_pprredirect_newwindow'];
@@ -188,10 +468,19 @@
 					$tredURL = $reportItem['_pprredirect_url'];
 					$tpotype = $reportItem['post_type'];
 					$tpostid = $reportItem['id'];
-					$toriurl = get_permalink($tpostid);
+					
+					if($tnewwin == '0' || $tnewwin == ''){$tnewwin = '0';}elseif($tnewwin == 'N/A'){$tnewwin = 'N/A';}elseif($tnewwin == '_blank'){$tnewwin = '1';};
+					if($this->pproverride_nofollow =='1'){$tnofoll = '<span class="ppr-nfor">1</span>';}
+					if($this->pproverride_newwin =='1'){$tnewwin= '<span class="ppr-nwor">1</span>';}
+					if($this->pproverride_rewrite =='1'){$trewrit= '<span class="ppr-rrlor">1</span>';$tredURL = '<span class="ppr-rrlor">'.$this->pproverride_URL.'</span>';}
+					
+					if(isset($reportItem['origurl'])){
+						$toriurl = $reportItem['origurl'];
+					}else{
+						$toriurl = get_permalink($tpostid);
+					}
 					if($pclass == 'offrow'){$pclass = 'onrow';}else{$pclass = 'offrow';}
-					if($tnewwin == '0'){$tnewwin = '0';}else{$tnewwin = '1';}
-					if($tredURL == 'http://www.example.com'){$tredURL='<strong>N/A - redirection will not occur</strong>';}
+					if($tredURL == 'http://www.example.com' || $tredURL == '<span class="ppr-rrlor">http://www.example.com</span>'){$tredURL='<strong>N/A - redirection will not occur</strong>';}
 				?>     
 		        <tr valign="top" class="<?php echo $pclass;?>">
 		        	<td width="50" align="left"><?php echo $tpostid;?></td>
@@ -214,22 +503,125 @@
 	} 
 
 	function ppr_settings_page() {
+		if($_GET['update']=='3'){$this->updatemsg ='All Quick Redirects deleted from database.';}
+		if($_GET['update']=='2'){$this->updatemsg ='All Regular Redirects deleted from database.';}
+		if($_GET['update']=='4'){$this->updatemsg ='Quick Redirects Imported & Replaced.';}
+		if($_GET['update']=='5'){$this->updatemsg ='Quick Redirects Importer & Added to Existing Redirects.';}
 	?>
 	<div class="wrap" style="position:relative;">
-	<style type="text/css">.pprdonate{padding:5px;border:1px solid #dadada;font-family:tahoma, arial, helvetica, sans-serif;font-size:12px;float:right;position:absolute;top:25px;right:5px;width:250px;text-align:center;}.qpprform label {float:left;display:block;width:290px;margin-left:30px;}.qpprform .submit{clear:both;}.qpprform span{font-size:9px;}</style>
-	<div class="icon32" style="<?php echo 'background: url('.plugins_url().'/quick-pagepost-redirect-plugin/settings-icon.png) no-repeat transparent;';?>"><br></div>
+	<style type="text/css">
+	.qppr-posttypes{overflow: hidden;}
+	.qppr-ptype{float: left; width: auto;}
+	.qpprform label {float:left;display:block;width:290px;margin-left:15px;}
+	.qpprform .submit{clear:both;}
+	.qpprform span{font-size:11px;color:#21759B;display:inline-block;margin-left:15px;}
+	.pprdonate{border: 1px solid #DADADA;font-family: tahoma,arial,helvetica,sans-serif;font-size: 12px;overflow: hidden;padding: 5px;position: absolute;right: 0;text-align: center;top: 0;width: 160px;}
+	.pprdonate form{display:block;}
+	.settings-error{display:inline-block;width:70%;}
+	.ppr-type-name{display:inline-block;margin:0 25px 0 2px;}
+	</style>
+	<script type="text/javascript">
+		jQuery(document).ready(function() {
+			jQuery("#qppr_import_qr_button").click(function(event){
+				jQuery('#qppr_addto_form').css({'display':'none'});
+				if(jQuery('#qppr_import_form').css('display')=='block'){
+					jQuery('#qppr_import_form').css({'display':'none'});
+				}else{
+					jQuery('#qppr_import_form').css({'display':'block'});
+				}
+				event.preventDefault();
+			});
+			jQuery("#qppr_addto_qr_button").click(function(event){
+				jQuery('#qppr_import_form').css({'display':'none'});
+				if(jQuery('#qppr_addto_form').css('display')=='block'){
+					jQuery('#qppr_addto_form').css({'display':'none'});
+				}else{
+					jQuery('#qppr_addto_form').css({'display':'block'});
+				}
+				event.preventDefault();
+			});
+			jQuery("#import_redirects_add_qppr").click(function(event){
+				if(jQuery("[name|=qppr_file_add]").attr('value')==''){
+					alert('select a file');
+					event.preventDefault();
+					return false;
+				}
+			});
+			jQuery("#import_redirects_qppr").click(function(event){
+				if(jQuery("[name|=qppr_file]").attr('value')==''){
+					alert('select a file');
+					event.preventDefault();
+					return false;
+				}
+			});
+		});		
+		function check_file(fname){
+		    str		=	fname.value.toUpperCase();
+		    suffix	=	".TXT";
+		    if(!(str.indexOf(suffix, str.length - suffix.length) !== -1)){
+		    	alert('File type not allowed,\nAllowed file: *.txt');
+		        fname.value	= '';
+		    }
+		}
+		function goOnConfirm(message, href) {if (confirm(message)) document.location.href = '/wp-admin/admin.php'+href;}
+	</script>
+	<div class="icon32" style="<?php echo 'background: url('.plugins_url( 'settings-icon.png' , __FILE__ ).') no-repeat transparent;';?>"><br></div>
+	<h2>Quick Page Post Redirect Options & Settings</h2>
+	<?php if($this->updatemsg!=''){?><div class="updated" id="setting-error-settings_updated"><p><strong><?php echo $this->updatemsg;?></strong></p></div><?php } ?>
+	<?php $this->updatemsg ='';//reset message;?>
 	<div class="pprdonate">
-	<p>If you enjoy or find any of our plugins useful, please donate a few dollars to help with future development and updates.</p>
-	<form action="https://www.paypal.com/cgi-bin/webscr" method="post">
-	<input name="cmd" value="_s-xclick" type="hidden">
-	<input name="hosted_button_id" value="8274582" type="hidden">
-	<input alt="PayPal - The safer, easier way to pay online!" name="submit" src="https://www.paypal.com/en_US/i/btn/btn_donateCC_LG.gif" type="image"> <img src="https://www.paypal.com/en_US/i/scr/pixel.gif" alt="" border="0" height="1" width="1"><br>
-	</form>
-	<p>We thank you in advance.</p>
+	<div style="overflow: hidden; width: 161px; text-align: center;">
+	<div style="overflow: hidden; width: 161px; text-align: center; float: left;"><form action="https://www.paypal.com/cgi-bin/webscr" method="post"><input name="cmd" value="_s-xclick" type="hidden"/><input name="hosted_button_id" value="8274582" type="hidden"/><input alt="PayPal - The safer, easier way to pay online!" name="submit" src="https://www.paypal.com/en_US/i/btn/btn_donateCC_LG.gif" type="image"> <img src="https://www.paypal.com/en_US/i/scr/pixel.gif" alt="" border="0" height="1" width="1"></form></div>
+	If you enjoy or find any of our plugins useful, please donate a few dollars to help with future development and updates. We thank you in advance.</div>
 	</div>
-	<h2>Quick Page Post Redirect Options & Settings</h2>
-	<?php if($this->updatemsg!=''){?><div class="updated settings-error" id="setting-error-settings_updated"><p><strong><?php echo $this->updatemsg;?></strong></p></div><?php } ?>
-	<?php $this->updatemsg ='';//reset message;?>
+
+	<div align="left">
+	<table style="border-collapse: collapse" class="form-table">
+        <tr valign="top">
+        	<td><h2 style="font-size:20px;">Import/Export</h2></td>
+        </tr>
+        <tr valign="top">
+        	<td><label>Export Redirects </label><input class="button-secondary qppr_export_qr" type="button" name="qppr_export_qr" value="EXPORT all Quick Redirects" onclick="document.location='<?php echo wp_nonce_url( admin_url('admin.php?page=redirect-options').'&action=export_redirects_qppr', 'export-redirects-qppr'); ?>';" /></td>
+        </tr>
+        <tr valign="top">
+        	<td>
+        		<label>Import Redirects </label>
+        		<input class="button-secondary qppr_import_qr" type="button" id="qppr_import_qr_button" name="qppr_import_qr" value="RESTORE Saved Quick Redirects" /> OR <input class="button-secondary qppr_addto_qr" type="button" id="qppr_addto_qr_button" name="qppr_addto_qr" value="ADD TO Quick Redirects" />
+				<div id="qppr_import_form" class="hide-if-js">
+					<form action="<?php echo admin_url('admin.php?page=redirect-options'); ?>" method="post" enctype="multipart/form-data">
+						<p style="margin:1em 0;">
+							<label>Select Quick Redirects file to import:</label> <input type="file" name="qppr_file" onchange="check_file(this);" />
+						</p>
+						<p class="submit">
+							<?php wp_nonce_field( 'import_redirects_qppr' ); ?>
+							<input class="button-primary" type="submit" id="import_redirects_qppr" name="import_redirects_qppr" value="IMPORT & REPLACE Current Quick Redirects" />
+						</p>
+					</form>
+				</div>
+				<div id="qppr_addto_form" class="hide-if-js">
+					<form action="<?php echo admin_url('admin.php?page=redirect-options'); ?>" method="post" enctype="multipart/form-data">
+						<p style="margin:1em 0;">
+							<label>Select Quick Redirects file to import:</label> <input type="file" name="qppr_file_add" onchange="check_file(this);" />
+							<br/>file should be a text file with one rediect per line, PIPE separated, as <code>redirect|destination|newwindow|nofollow</code> - i.e.:<br/>
+							<code>/old-location.htm|http://some.com/new-destination/|0|1</code><br/><code>/dontate/|http://example.com/destination/|1|1</code><br/>
+							<strong>IMPORTANT:</strong> Make Sure any destinations that might have a PIPE in the querystring data are URL encoded!
+						</p>
+						<p class="submit">
+							<?php wp_nonce_field( 'import_redirects_add_qppr' ); ?>
+							<input class="button-primary" type="submit" id="import_redirects_add_qppr" name="import_redirects_add_qppr" value="ADD TO Current Quick Redirects" />
+						</p>
+					</form>
+				</div>
+
+        	</td>
+        </tr>
+        <tr valign="top">
+        	<td>
+        		<hr noshade color="#EAEAEA" size="1">
+        	</td>
+        </tr>
+	</table>
+	</div>
 
 	<form method="post" action="options.php" class="qpprform">
 	    <?php settings_fields( 'ppr-settings-group' ); ?>
@@ -238,25 +630,58 @@
 	        	<td><h2 style="font-size:20px;">Basic Settings</h2></td>
 	        </tr>
 	        <tr valign="top">
-	        	<td><label>Use with Custom Post Types?</label> <input type="checkbox" name="ppr_use-custom-post-types" value="1"<?php if(get_option('ppr_use-custom-post-types')=='1'){echo ' checked="checked" ';} ?>/></td>
+	        	<td><label>Use with Custom Post Types?</label> <input type="checkbox" name="ppr_use-custom-post-types" value="1"<?php if(get_option('ppr_use-custom-post-types')=='1'){echo ' checked="checked" ';} ?>/>
+	    <?php
+	    $ptypes = get_post_types();
+	    $ptypesok = $this->pprptypes_ok;
+	    if(!is_array($ptypesok)){$ptypesok = get_option( 'ppr_qpprptypeok' );}
+	    if(!is_array($ptypesok)){$ptypesok = array();}
+	    $ptypeHTML = '<div class="qppr-posttypes">';
+	    foreach($ptypes as $ptype){
+	    	if($ptype != 'nav_menu_item' && $ptype != 'attachment' && $ptype != 'revision'){
+		    	if(in_array($ptype,$ptypesok)){
+		    		$ptypecheck = ' checked="checked"';
+		    	}else{
+		    		$ptypecheck = '';
+		    	}
+		    	$ptypeHTML .= '<div class="qppr-ptype"><input class="qppr-ptypecb" type="checkbox" name="ppr_qpprptypeok[]" value="'.$ptype.'"'.$ptypecheck.' /> <div class="ppr-type-name">'.$ptype.'</div></div>';
+	    	}
+	    }
+	    $ptypeHTML .= '</div>';
+	    ?>
+			</td>
 	        </tr>
 	        <tr valign="top">
-	        	<td><label>Meta Refresh Time (in seconds):</label> <input type="text" size="5" name="ppr_meta-seconds" value="<?php echo get_option('ppr_meta-seconds');?>" /> <span>only needed for meta refresh. 0=default (instant)</span></td>
+	        	<td><label><span style="color:#FF0000;font-weight:bold;font-size:100%;margin-left:0px;">Hide</span> meta box for following Post Types:</label><?php echo $ptypeHTML;?></td>
 	        </tr>
 	        <tr valign="top">
-	        	<td><label>Meta Refresh Message:</label> <input type="text" size="25" name="ppr_meta-message" value="<?php echo get_option('ppr_meta-message');?>" /> <span>default is none. message to display while waiting for refresh</span></td>
+	        	<td><label>Use with jQuery?</label> <!--input type="checkbox" name="ppr_use-jquery" value="1"<?php if(get_option('ppr_use-jquery')=='1'){echo ' checked="checked" ';} ?>/--> 
+	        	<input type="checkbox" name="ppr_use-jquery" value="0" disabled />
+				<span>Increases effectiveness of plugin. If you have a jQuery 
+				conflict, try turning this off.</span></td>
+	        </tr>
+	        <tr valign="top">
+	        	<td><label>Meta Refresh Time (in seconds):</label> <input type="text" size="5" name="ppr_meta-seconds" value="<?php echo get_option('ppr_meta-seconds');?>" /> 
+				<span>Only needed for Meta Refresh. 0=default (instant)</span></td>
+	        </tr>
+	        <tr valign="top">
+	        	<td><label>Meta Refresh Message:</label> <input type="text" size="25" name="ppr_meta-message" value="<?php echo get_option('ppr_meta-message');?>" /> 
+				<span>Default is blank. Message to display while waiting for refresh.</span></td>
 	        </tr>
 	        <tr valign="top">
 	        	<td><h2 style="font-size:20px;">Master Override Options</h2><b>NOTE: </b>These will override all individual settings.</td>
 	        </tr>
 	        <tr valign="top">
-	        	<td><label>Turn OFF all Redirects? </label><input type="checkbox" name="ppr_override-active" value="1"<?php if(get_option('ppr_override-active')=='1'){echo ' checked="checked" ';} ?>/> <span>excludes Quick 301 Redirects.</span></td>
+	        	<td><label>Turn OFF all Redirects? </label><input type="checkbox" name="ppr_override-active" value="1"<?php if(get_option('ppr_override-active')=='1'){echo ' checked="checked" ';} ?>/> <span>
+				Includes Quick 301 Redirects when "use with jQuery" is also selected.</span></td>
 	        </tr>
 	        <tr valign="top">
-	        	<td><label>Make ALL Redirects have <code>rel="nofollow"</code>? </label><input type="checkbox" name="ppr_override-nofollow" value="1"<?php if(get_option('ppr_override-nofollow')=='1'){echo ' checked="checked" ';} ?>/> <span>excludes Quick 301 Redirects.</span></td>
+	        	<td><label>Make ALL Redirects have <code>rel="nofollow"</code>? </label><input type="checkbox" name="ppr_override-nofollow" value="1"<?php if(get_option('ppr_override-nofollow')=='1'){echo ' checked="checked" ';} ?>/> 
+				<span>Includes Quick 301 Redirects when "use with jQuery" is also selected.</span></td>
 	        </tr>
 	        <tr valign="top">
-	        	<td><label>Make ALL Redirects open in a New Window? </label><input type="checkbox" name="ppr_override-newwindow" value="1"<?php if(get_option('ppr_override-newwindow')=='1'){echo ' checked="checked" ';} ?>/> <span>excludes Quick 301 Redirects.</span></td>
+	        	<td><label>Make ALL Redirects open in a New Window? </label><input type="checkbox" name="ppr_override-newwindow" value="1"<?php if(get_option('ppr_override-newwindow')=='1'){echo ' checked="checked" ';} ?>/> 
+				<span>Includes Quick 301 Redirects when "use with jQuery" is also selected.</span></td>
 	        </tr>
 	        <tr valign="top">
 	        	<td><label>Make ALL Redirects this type: </label>
@@ -270,10 +695,22 @@
 	        	<span> (Quick 301 Redirects will always be 301)</span></td>
 	        </tr>
 	        <tr valign="top">
-	        	<td><label>Make ALL Redirects go to this URL: </label><input type="text" size="50" name="ppr_override-URL" value="<?php echo get_option('ppr_override-URL'); ?>"/> <span>(use full URL including <code>http://</code>).</span></td>
+	        	<td><label>Make ALL redirects Case Sensitive? </label><input type="checkbox" name="ppr_override-casesensitive" value="1"<?php if(get_option('ppr_override-casesensitive')=='1'){echo ' checked="checked" ';} ?>/> 
+				<span> Makes URLs CaSe SensiTivE - i.e., /somepage/ DOES NOT EQUAL /SoMEpaGe/</span></td>
+	        </tr>
+	        <tr valign="top">
+	        	<td><label>Make ALL Redirects go to this URL: </label><input type="text" size="50" name="ppr_override-URL" value="<?php echo get_option('ppr_override-URL'); ?>"/> 
+				<span>Use full URL including <code>http://</code>.</span></td>
 	        </tr>
 	        <tr valign="top">
-	        	<td><label>Rewrite ALL Redirects URLs to Show in LINK? </label><input type="checkbox" name="ppr_override-rewrite" value="1"<?php if(get_option('ppr_override-rewrite')=='1'){echo ' checked="checked" ';} ?>/> <span>(makes link show redirect URL instead of the original URL).</span></td>
+	        	<td><label>Rewrite ALL Redirects URLs to Show in LINK? </label><input type="checkbox" name="ppr_override-rewrite" value="1"<?php if(get_option('ppr_override-rewrite')=='1'){echo ' checked="checked" ';} ?>/> <span>
+				Makes link show redirect URL instead of the original URL. ONLY includes Quick 301 Redirects when "use with jQuery" is also selected.</span></td>
+	        </tr>
+	        <tr valign="top">
+	        	<td><h2 style="font-size:20px;">Plugin Clean Up</h2><b>NOTE: </b>This will DELETE all redirects - so be careful with this.</td>
+	        </tr>
+	        <tr valign="top">
+	        	<td><label>Delete Redirects? </label><input class="button-secondary qppr_delete_reg" type="button" name="qppr_delete_reg" value="Delete all Page/Post Redirects" onclick="goOnConfirm('Are you sure you want to PERMANENTLY Delets ALL Regular Redirects?' , '?page=redirect-options&qppr_delete_reg=1');" /> <input class="button-secondary qppr_delete_qr" type="button" name="qppr_delete_qr" value="Delete all Quick Redirects" onclick="goOnConfirm('Are you sure you want to PERMANENTLY Delets ALL Quick Redirects?' , '?page=redirect-options&qppr_delete_qr=1');" /></td>
 	        </tr>
 	    </table>
 	    <p class="submit">
@@ -288,41 +725,70 @@
 		$tohash = $this->homelink.'/';
 		?>
 		<div class="wrap">
-		<div class="icon32" style="<?php echo 'background: url('.plugins_url().'/quick-pagepost-redirect-plugin/settings-icon.png) no-repeat transparent;';?>"><br></div>
-		<script type="text/javascript">jQuery(document).ready(function() {jQuery(".delete-qppr").click(function(){var mainurl = '<?php echo get_bloginfo('url');?>/';	var thepprdel = jQuery(this).attr('id');if(confirm('Are you sure you want to delete this redirect?')){jQuery.ajax({url: mainurl+"/",data : "pprd="+thepprdel+"&scid=<?php echo md5($tohash);?>",success: function(data){jQuery('#row'+thepprdel).remove();},complete: function(){}});return false;}else{return false;}});});</script>
+		<div class="icon32" style="<?php echo 'background: url('.plugins_url( 'settings-icon.png' , __FILE__ ).') no-repeat transparent;';?>"><br></div>
+		<script type="text/javascript">jQuery(document).ready(function() { var mainurl = '<?php echo get_bloginfo('url');?>'; jQuery(".delete-qppr").click(function(){ var thepprdel = jQuery(this).attr('id'); if(confirm('Are you sure you want to delete this redirect?')){ jQuery.ajax({ url: mainurl+"/",data : "pprd="+thepprdel+"&scid=<?php echo md5($tohash);?>", success: function(data){ jQuery('#row'+thepprdel).remove(); }, complete: function(){ jQuery(".pprnewwin").each(function (i) { jQuery(this).attr('name','quickppr_redirects[newwindow]['+jQuery(".pprnewwin").index(this)+']'); }); jQuery(".pprnofoll").each(function (i) { jQuery(this).attr('name','quickppr_redirects[nofollow]['+jQuery(".pprnofoll").index(this)+']'); }); } }); return false; }else{ return false; } }); jQuery("#hidepprjqmessage").click(function(){ jQuery.ajax({ url: mainurl+"/",data : "pprhidemessage=1", success: function(data){ jQuery('#usejqpprmessage').remove(); } }); return false; }); jQuery("#hidepprjqmessage2").click(function(){ jQuery.ajax({ url: mainurl+"/",data : "pprhidemessage=2", success: function(data){ jQuery('#usejqpprmessage2').remove(); } }); return false; }); });</script>
+		<style type="text/css">div.info{background-color:#dceff8;border-color:#c00;margin: 5px 0 15px;padding: 5px;border:1px solid #2e92c1;border-radius: 3px;}div.info a{color:#2e92c1;}.usejqpprmessage{overflow:hidden;}.hidepprjqmessage{float:right;font-size:11px;}.delete-qppr{border: 1px solid #FFBBBB;display: inline-block;font-weight: bold;padding: 0 5px;text-decoration: none;text-transform: uppercase;}</style>
 		<h2>Quick 301 Redirects</h2>
 		<?php if($this->updatemsg!=''){?><div class="updated settings-error" id="setting-error-settings_updated"><p><strong><?php echo $this->updatemsg;?></strong></p></div><?php } ?>
 		<?php $this->updatemsg ='';//reset message;?>
-		<br/>This section is useful if you have links from an old site and need to have them redirect to a new location on the current site, or if you have an existing URL that you need to send some place else and you don't want to have a Page or Post created to use the other Page/Post Redirect option.
+		<?php $isJQueryOn = get_option('ppr_use-jquery');$isJQueryMsgHidden = get_option('qppr_jQuery_hide_message');$isJQueryMsgHidden2 = get_option('qppr_jQuery_hide_message2');?>
+		<!--
+		<?php if($isJQueryOn == '' && ($isJQueryMsgHidden =='' || $isJQueryMsgHidden =='0')){?>
+			<div class="usejqpprmessage error below-h2" id="usejqpprmessage"><code>Use with jQuery</code> option is turned off in plugin settings.<br/>In order to use NW (open in a new window) or NF (add rel="nofollow") options for Quick Redirects, you must have it enabled.<br/>
+			<div class="hidepprjqmessage" style=""><a href="javascript:void(0);" id="hidepprjqmessage">hide this message</a></div></div>
+		<?php }elseif($isJQueryMsgHidden2 !='1'){ ?>
+			<div class="usejqpprmessage info below-h2" id="usejqpprmessage2">The <b>NW </b>(open in a new window)<b> NF</b> (nofollow) options are new for this version.<br/>To use them, just click the appropriate option and update. Then, any link in the page that has the request URL will be updated with these options (as long as you have <code>use with jQuery</code> enabled in the plugin settings.
+			<div class="hidepprjqmessage" style=""><a href="javascript:void(0);" id="hidepprjqmessage2">hide this message</a></div></div>
+		<?php }else{ ?>
 		<br/>
-		<br/>To add additional 301 redirects, put the URL you want to redirect in the Request field and the Place you want it to redirect to, in the Destination field.
-		<br/>To delete a redirect, click the 'x' next to the Destination Field.
+		<?php }?>
+		-->This section is useful if you have links from an old site and need to have them redirect to a new location on the current site, or if you have an existing URL that you need to send some place else and you don't want to have a Page or Post created to use the other Page/Post Redirect option.
+		To add these additional 301 redirects, put the URL you want to redirect into the Request field and the place it should redirect to in the Destination field. To delete a redirect, click the 'x' next to the Destination Field. 
+		<!--If you want the redirect to open in a new window or to add rel=nofollow to the link, select the NW (new Window) or NF (no Follow) boxes next to the appropriate redirect (must enable 'use jQuery' in settings for this to work).-->
 		<br/>
-		<br/><b style="color:red;">PLEASE NOTE:</b> 
-		<ul>
-		<li style="color:#214070;margin-left:25px;list-style-type:disc;">The <b>Request</b> field MUST be relative to the ROOT directory and contain the <code>/</code> at the beginning.</li> 
-		<li style="color:#214070;margin-left:25px;list-style-type:disc;">The <b>Destination</b> field can be any valid URL or relative path (from root).</li>
-		<li style="color:#214070;margin-left:25px;list-style-type:disc;">Quick Redirects <b>WILL NOT open in a new window</b>. They are meant to be 'Quick' and since the user will not 
-		actually be clicking anything, a new window cannot be opened.</li>
-		</ul>
-		<br/>
+		<br/><b style="color:red;">IMPORTANT TROUBLE SHOOTING NOTES:</b> 
+		<ol>
+			<li>Until some jQuery issues are resolved, the New Window and No Follow features are not available for Quick Redirects.</li>
+			<!--<li style="color:#214070;margin-left:25px;list-style-type:disc;">The 
+			<b>Request</b> field MUST be relative to the ROOT directory and contain the 
+			<code>/</code> at the beginning.</li>
+			<li style="color:#214070;margin-left:25px;list-style-type:disc;">The 
+			<b>Destination</b> field can be any valid URL or relative path (from root).</li>
+			<li style="color:#214070;margin-left:25px;list-style-type:disc;">In 
+			order for NW (open in a new window) or NF (rel=&quot;nofollow&quot;) options 
+			to work with Quick Redirects, you need to have:
+			<ol><li>&quot;Use with jQuery&quot; option selected in the settings page</li>
+				<li>A link that uses the request url SOMEWHERE in your site page 
+				- i.e., in a menu, content, sidebar, etc. </li>
+				<li>The open in a new window or nofollow settings will not 
+				happen if someone just types the old link in the URL or if that 
+				come from a bookmark or link outside your site - in essence, 
+				there needs to be a link that they click on in your site so that 
+				the jQuery script can add the appropriate <code>target</code> and <code>rel</code> properties to the link to make it work.</li></ol>
+			</li>
+			-->
+		</ol>
 		<form method="post" action="admin.php?page=redirect-updates">
 		<table>
 			<tr>
 				<th align="left">Request</th>
 				<th align="left">Destination</th>
-				<th align="left">&nbsp;</th>
+				<th align="left">NW</th>
+				<th align="left">NF</th>
+				<th align="left">Delete</th>
 			</tr>
 			<tr>
-				<td><small>example: <code>/about.htm</code> or <code>/test-directory/landing-zone/</code></small></td>
-				<td><small>example: <code><?php echo $this->homelink; ?>/about/</code> or  <code><?php echo $this->homelink; ?>/landing/</code></small></td>
+				<td><small>example: <code>/about.htm</code> or <code>/directory/landing/</code></small></td>
+				<td><small>example: <code><?php echo $this->homelink; ?>/about/</code></small></td>
 				<td>&nbsp;</td>
 			</tr>
 			<?php echo $this->expand_redirects(); ?>
 			<tr>
-				<td><input type="text" name="quickppr_redirects[request][]" value="" style="width:35em" />&nbsp;&raquo;&nbsp;</td>
-				<td><input type="text" name="quickppr_redirects[destination][]" value="" style="width:35em;" /></td>
-				<td></td>
+				<td><input type="text" name="quickppr_redirects[request][]" value="" style="width:27em" />&nbsp;&raquo;&nbsp;</td>
+				<td><input type="text" name="quickppr_redirects[destination][]" value="" style="width:27em;" /></td>
+				<td align="center"><input class="pprnewwin" type="checkbox" name="quickppr_redirects[newwindow][<?php if(count($this->quickppr_redirects)==0){echo '0';}else{echo (count($this->quickppr_redirects));}?>]" value="1" title="open in a New Window" /></td>
+				<td align="center"><input class="pprnofoll" type="checkbox" name="quickppr_redirects[nofollow][<?php if(count($this->quickppr_redirects)==0){echo '0';}else{echo (count($this->quickppr_redirects));}?>]" value="1" title="add No Follow" /></td>
+				<td align="center"></td>
 			</tr>
 		</table>
 		
@@ -338,14 +804,23 @@
 	function save_redirects($data){
 	// Save the redirects from the options page to the database
 		$redirects = array();
+		$redirectsmeta = array();
 		for($i = 0; $i < sizeof($data['request']); ++$i) {
-			$request = trim($data['request'][$i]);
+			$request 		= trim($data['request'][$i]);
+			$destination 	= trim($data['destination'][$i]);
+			$newwin 		= trim($data['newwindow'][$i]);
+			$nofoll 		= trim($data['nofollow'][$i]);
 			if(strpos($request,'/',0) !== 0 && strpos($request,'http',0) !== 0){$request = '/'.$request;} // adds root marker to front if not there
 			if((strpos($request,'.') === false && strpos($request,'?') === false) && strpos($request,'/',strlen($request)-1) === false){$request = $request.'/';} // adds end folder marker if not a file end
-			$destination = trim($data['destination'][$i]);
-			if (($request == '' || $request == '/') && $destination == '') { continue; } elseif($request != '' && $request != '/' && $destination == '' ){ $redirects[$request] = $this->homelink.'/';}else { $redirects[$request] = $destination; }
+			if (($request == '' || $request == '/') && $destination == '') { continue;} elseif($request != '' && $request != '/' && $destination == '' ){$redirects[$request] = $this->homelink.'/';}else { $redirects[$request] = $destination; }
+			$redirectsmeta[$request]['newwindow'] = $newwin;
+			$redirectsmeta[$request]['nofollow'] = $nofoll;
 		}
 		update_option('quickppr_redirects', $redirects);
+		update_option('quickppr_redirects_meta', $redirectsmeta);
+		$this->quickppr_redirectsmeta = get_option('quickppr_redirects_meta');
+		$this->quickppr_redirects = get_option('quickppr_redirects');
+		$this->build_jQueryCache();
 		return $redirects;
 	}
 	
@@ -355,11 +830,17 @@
 		if (!empty($this->quickppr_redirects)) {
 			$ww=1;
 			foreach ($this->quickppr_redirects as $request => $destination) {
+				$newWindow = $this->quickppr_redirectsmeta[$request]['newwindow'];
+				$noFollow  = $this->quickppr_redirectsmeta[$request]['nofollow'];
+				if($newWindow == '1'){$newChecked = ' checked="checked"';}else{$newChecked = '';}
+				if($noFollow == '1'){$noChecked = ' checked="checked"';}else{$noChecked = '';}
 				$output .= '
 				<tr id="rowpprdel-'.$ww.'">
-					<td><input type="text" name="quickppr_redirects[request][]" value="'.$request.'" style="width:35em" />&nbsp;&raquo;&nbsp;</td>
-					<td><input type="text" name="quickppr_redirects[destination][]" value="'.$destination.'" style="width:35em;" /></td>
-					<td>&nbsp;<a href="javascript:void();" id="pprdel-'.$ww.'" class="delete-qppr">x</a>&nbsp;</td>
+					<td><input type="text" name="quickppr_redirects[request][]" value="'.$request.'" style="width:27em" />&nbsp;&raquo;&nbsp;</td>
+					<td><input type="text" name="quickppr_redirects[destination][]" value="'.$destination.'" style="width:27em;" /></td>
+					<td align="center"><input class="pprnewwin" type="checkbox" name="quickppr_redirects[newwindow]['.($ww - 1).']" value="1"'.$newChecked.' title="open in a New Window" /></td>
+					<td align="center"><input class="pprnofoll" type="checkbox" name="quickppr_redirects[nofollow]['.($ww - 1).']" value="1"'.$noChecked.' title="add No Follow" /></td>
+					<td align="center">&nbsp;&nbsp;<a href="javascript:void();" id="pprdel-'.$ww.'" class="delete-qppr">X</a>&nbsp;</td>
 				</tr>
 				';
 				$ww++;
@@ -375,8 +856,10 @@
 		}else{
 			$id = $post;
 		}
-		if(array_key_exists($id, $this->ppr_all_redir_array)){
-			$matchedID = $this->ppr_all_redir_array[$id];
+		$newCheck = $this->ppr_all_redir_array;
+		if(!is_array($newCheck)){$newCheck = array();}
+		if(array_key_exists($id, $newCheck)){
+			$matchedID = $newCheck[$id];
 			if($matchedID['_pprredirect_rewritelink'] == '1' || $this->pproverride_rewrite =='1'){ // if rewrite link is checked or override is set
 				if($this->pproverride_URL ==''){$newURL = $matchedID['_pprredirect_url'];}else{$newURL = $this->pproverride_URL;} // check override
 				if(strpos($newURL,$this->homelink)>=0 || strpos($newURL,'www.')>=0 || strpos($newURL,'http://')>=0 || strpos($newURL,'https://')>=0){
@@ -395,8 +878,10 @@
 		}else{
 			$id = $post;
 		}
-		if(array_key_exists($id, $this->ppr_all_redir_array)){
-			$matchedID = $this->ppr_all_redir_array[$id];
+		$newCheck = $this->ppr_all_redir_array;
+		if(!is_array($newCheck)){$newCheck = array();}
+		if(array_key_exists($id, $newCheck)){
+			$matchedID = $newCheck[$id];
 			if($matchedID['_pprredirect_rewritelink'] == '1' || $this->pproverride_rewrite =='1'){ // if rewrite link is checked
 				if($this->pproverride_URL ==''){$newURL = $matchedID['_pprredirect_url'];}else{$newURL = $this->pproverride_URL;} // check override
 				if(strpos($newURL,$this->homelink)>=0 || strpos($newURL,'www.')>=0 || strpos($newURL,'http://')>=0 || strpos($newURL,'https://')>=0){
@@ -420,11 +905,18 @@
 					$post_types_temp = array('page' => 'page','post' => 'post','attachment' => 'attachment','nav_menu_item' => 'nav_menu_item');
 				}
 			}else{
-				$post_types_temp = array('page' => 'page','post' => 'post','attachment' => 'attachment','nav_menu_item' => 'nav_menu_item');
+				$post_types_temp = array('page' => 'page','post' => 'post'/*,'attachment' => 'attachment','nav_menu_item' => 'nav_menu_item'*/);
 			}
 			unset($post_types_temp['revision']); //remove revions from array if present as they are not needed.
+			unset($post_types_temp['attachment']); //remove from array if present as they are not needed.
+			unset($post_types_temp['nav_menu_item']); //remove from array if present as they are not needed.
+			$ptypesok = $this->pprptypes_ok;
+			if($ptypesok==''){$ptypesok = array();}
+			if(!is_array($ptypesok)){$ptypesok = array();}
 			foreach($post_types_temp as $type){
-				add_meta_box( 'edit-box-ppr', 'Quick Page/Post Redirect', array($this,'edit_box_ppr_1'), $type, 'normal', 'high' ); 
+				if(!in_array($type,$ptypesok)){
+					add_meta_box( 'edit-box-ppr', 'Quick Page/Post Redirect', array($this,'edit_box_ppr_1'), $type, 'normal', 'high' ); 
+				}
 			}
 		}
 	}
@@ -432,7 +924,10 @@
 	function get_main_array(){
 		global $wpdb;
 		$theArray = array();
-		$thetemp = $wpdb->get_results("SELECT * FROM $wpdb->postmeta WHERE (`meta_key` = '_pprredirect_active' OR `meta_key` = '_pprredirect_rewritelink' OR `meta_key` = '_pprredirect_newwindow' OR `meta_key` = '_pprredirect_relnofollow' OR `meta_key` = '_pprredirect_type' OR `meta_key` = '_pprredirect_url') ORDER BY `post_id` ASC;");
+		$theArrayNW = array();
+		$theArrayNF = array();
+		$theqsl = "SELECT * FROM $wpdb->postmeta a, $wpdb->posts b  WHERE a.`post_id`=b.`ID` AND b.`post_status`!='trash' AND (a.`meta_key` = '_pprredirect_active' OR a.`meta_key` = '_pprredirect_rewritelink' OR a.`meta_key` = '_pprredirect_newwindow' OR a.`meta_key` = '_pprredirect_relnofollow' OR a.`meta_key` = '_pprredirect_type' OR a.`meta_key` = '_pprredirect_url') ORDER BY a.`post_id` ASC;";
+		$thetemp = $wpdb->get_results($theqsl);
 		if(count($thetemp)>0){
 			foreach($thetemp as $key){
 				$theArray[$key->post_id][$key->meta_key] = $key->meta_value;
@@ -445,9 +940,19 @@
 				if(!isset($theArray[$key->post_id]['_pprredirect_relnofollow'])){$theArray[$key->post_id]['_pprredirect_relnofollow']	= 0;}
 				if(!isset($theArray[$key->post_id]['_pprredirect_newwindow'] ))	{$theArray[$key->post_id]['_pprredirect_newwindow']	= 0;}
 				if(!isset($theArray[$key->post_id]['_pprredirect_active'] )){$theArray[$key->post_id]['_pprredirect_active']			= 0;}
+				
+				if($theArray[$key->post_id]['_pprredirect_newwindow']!= '0' || $this->pproverride_newwin =='1'){
+					$theArrayNW[$key->post_id] = get_permalink($key->ID);
+				}
+				
+				if($theArray[$key->post_id]['_pprredirect_relnofollow']!= '0' || $this->pproverride_nofollow =='1'){
+					$theArrayNF[$key->post_id] = get_permalink($key->ID);
+				}
 			}
 
 		}
+		$this->ppr_newwindow = $theArrayNW;
+		$this->ppr_nofollow = $theArrayNF;
 		return $theArray;
 	}
 	
@@ -478,6 +983,9 @@
 			case 'ppr_metaurlnew':
 				return $this->ppr_metaurlnew;
 				break;
+			case 'ppr_casesensitive':
+				return $this->pproverride_casesensitive;
+				break;
 			case 'hepprversion':
 				return $this->hepprversion;
 				break;
@@ -517,21 +1025,151 @@
 	}
 	
 	function ppr_addmetatohead_theme(){
+		$themsgmeta = '';
+		$themsgmsg 	= '';
+		$hook_name 	= 'ppr_meta_head_hook';
 		// check URL override
 	    if($this->pproverride_URL !=''){$urlsite = $this->pproverride_URL;} else {$urlsite = $this->ppr_metaurl;}
 	    $this->pproverride_URL = ''; //reset
 	    if($this->pprmeta_seconds==''){$this->pprmeta_seconds='0';}
-		echo '<meta http-equiv="refresh" content="'.$this->pprmeta_seconds.'; URL='.$urlsite.'" />';
-		if($this->pprmeta_message!='' && $this->pprmeta_seconds!='0'){echo '<div style="margin-top:20px;text-align:center;">'.$this->pprmeta_message.'</div>';}
-		exit; //stop loading page so meta can do it's job without rest of page loading.
+		$themsgmeta =  '<meta http-equiv="refresh" content="'.$this->pprmeta_seconds.'; URL='.$urlsite.'" />'."\n";
+		if($this->pprmeta_message!='' && $this->pprmeta_seconds!='0'){$themsgmsg =  '<div style="margin-top:20px;text-align:center;">'.$this->pprmeta_message.'</div>'."\n";}
+		if( has_action($hook_name)){
+			do_action( $hook_name,$urlsite,$this->pprmeta_seconds,$this->pprmeta_message);
+			return;
+		}elseif( has_filter($hook_name.'_filter')){
+			$themsgmeta = apply_filters($hook_name, $themsgmeta,$themsgmsg);
+			echo $themsgmeta;
+			return;
+		}else{
+			echo $themsgmeta;
+			echo $themsgmsg;
+			exit; //stop loading page so meta can do it's job without rest of page loading.
+		}
 	}
 
 	function ppr_queryhook($vars) {
 		$vars[] = 'pprd';
 		$vars[] = 'scid';
+		$vars[] = 'pprjq';
+		$vars[] = 'ver';
+		$vars[] = 'pprhidemessage';
+		$vars[] = 'qppr_delete_reg';
+		$vars[] = 'qppr_delete_qr';
 		return $vars;
 	}
-
+	function ppr_parse_request_new($wp) {
+		global $wp;
+		if(is_admin() && (isset($_GET['qppr_delete_reg']) || isset($_GET['qppr_delete_qr']))){
+			if( $_GET['qppr_delete_reg'] =='1'){
+				global $wpdb;
+				$wpdb->query("DELETE FROM $wpdb->postmeta WHERE `meta_key` = '_pprredirect_active' OR `meta_key` = '_pprredirect_rewritelink' OR `meta_key` = '_pprredirect_newwindow' OR `meta_key` = '_pprredirect_relnofollow' OR `meta_key` = '_pprredirect_type' OR `meta_key` = '_pprredirect_url';");
+				wp_redirect('admin.php?page=redirect-options&update=2&settings-updated=true',200);
+				exit;
+			}elseif($_GET['qppr_delete_qr'] =='1'){
+				delete_option('quickppr_redirects');
+				delete_option('quickppr_redirects_meta');
+				wp_redirect('admin.php?page=redirect-options&update=3&settings-updated=true',200);
+				exit;
+			}elseif($_GET['qppr_export_qr'] =='1'){
+				wp_die('This option is not available at this time.','Quick Page/Post Redirect Plugin - Export',array('back_link'=>true));
+				exit;
+			}elseif($_GET['qppr_import_qr'] =='1'){
+				wp_die('This option is not available at this time.','Quick Page/Post Redirect Plugin - Import',array('back_link'=>true));
+				exit;
+			}
+		}elseif ( isset($_GET['action']) && $_GET['action'] == 'export_redirects_qppr' ) {
+			$newQPPR_Array = array();
+			check_admin_referer('export-redirects-qppr');
+			header( 'Expires: Sat, 26 Jul 1997 05:00:00 GMT' ); 
+			header( 'Last-Modified: ' . gmdate( 'D, d M Y H:i:s' ) . ' GMT' ); 
+			header( 'Cache-Control: no-store, no-cache, must-revalidate' ); 
+			header( 'Cache-Control: post-check=0, pre-check=0', false ); 
+			header( 'Pragma: no-cache' ); 
+			header("Content-Type: application/force-download");
+			header("Content-Type: application/octet-stream");
+			header("Content-Type: application/download");
+			header("Content-Disposition: attachment; filename=qppr-quick-redirects-export-".date('U').".txt;");
+			$newQPPR_Array['quickppr_redirects'] = get_option('quickppr_redirects');
+			$newQPPR_Array['quickppr_redirects_meta'] = get_option('quickppr_redirects_meta');
+			die('QUICKPAGEPOSTREDIRECT'.base64_encode(serialize($newQPPR_Array)));
+			exit;
+		} elseif( isset($_POST['import_redirects_qppr']) && isset($_FILES['qppr_file']) ) {
+			check_admin_referer( 'import_redirects_qppr' );
+			if ( $_FILES['qppr_file']['error'] > 0 ) {
+				wp_die('An error occured during the file upload. Please fix your server configuration and retry.', 'SERVER ERROR - Could Not Load',array('response'=>'200','back_link'=>'1'));
+				exit;
+			} else {
+				$config_file = file_get_contents( $_FILES['qppr_file']['tmp_name'] );
+				if ( substr($config_file, 0, strlen('QUICKPAGEPOSTREDIRECT')) !== 'QUICKPAGEPOSTREDIRECT' ) {
+					wp_die('This does not look like a Quick Page Post Redirect config file - it is possibly damaged or corrupt.', 'ERROR - Not a valid File',array('response'=>'200','back_link'=>'1'));
+					exit;
+				} else {
+					$config_file = unserialize(base64_decode(substr($config_file, strlen('QUICKPAGEPOSTREDIRECT'))));
+					if ( !is_array($config_file) ) {
+						wp_die('This does not look like a Quick Page Post Redirect config file - it is possibly damaged or corrupt.', 'ERROR - Not a valid File',array('response'=>'200','back_link'=>'1'));
+						exit;
+					} else {
+						$newQPPRRedirects 	= $config_file['quickppr_redirects'];
+						$newQPPRMeta 		= $config_file['quickppr_redirects_meta'];
+						update_option('quickppr_redirects', $newQPPRRedirects);
+						update_option('quickppr_redirects_meta', $newQPPRMeta);
+						wp_redirect(admin_url('admin.php?page=redirect-options&update=4'),302);
+					}
+				}
+			}
+		} elseif( isset($_POST['import_redirects_add_qppr']) && isset($_FILES['qppr_file_add']) ) {
+			check_admin_referer( 'import_redirects_add_qppr' );
+			if ( $_FILES['qppr_file_add']['error'] > 0 ) {
+				wp_die('An error occured during the file upload. Please fix your server configuration and retry.', 'SERVER ERROR - Could Not Load',array('response'=>'200','back_link'=>'1'));
+				exit;
+			} else {
+				$config_file = file_get_contents( $_FILES['qppr_file_add']['tmp_name'] );
+				//------------
+				if ( strpos($config_file,'|') === false ) {
+					wp_die('This does not look like the file is in the correct format - it is possibly damaged or corrupt.<br/>be sure the redirects are 1 per line and the redirect and destination are seperated by a PIPE (|).<br/>Example:<br/><br/><code>redirect|destination</code>', 'ERROR - Not a valid File',array('response'=>'200','back_link'=>'1'));
+					exit;
+				} else {
+					$tempArr	= array();
+					$tempMArr	= array();
+					$QR_Array 	= explode("\n",$config_file);
+					if(!empty($QR_Array) && is_array($QR_Array)):
+						foreach($QR_Array as $qrtoadd):
+							$item = explode('|',str_replace(array("\r","\n"), array('',''),$qrtoadd));	
+							if(is_array($item) && !empty($item)){
+								$tempArr[$item[0]] = $item[1];
+								if(isset( $item[2]) || isset( $item[3])){
+									$newwin = (isset($item[2]) && ($item[2] != '' && $item[2] != '0')) ? 1 : '';
+									$nofoll = (isset($item[3]) && ($item[3] != '' && $item[3] != '0')) ? 1 : '';
+									$tempMArr[$item[0]]['newwindow'] 	= $newwin;
+									$tempMArr[$item[0]]['nofollow'] 	= $nofoll;
+								}else{
+									$tempMArr[$item[0]]['newwindow'] = '';
+									$tempMArr[$item[0]]['nofollow'] = '';
+								}
+							}
+						endforeach;	
+						if(!empty($tempArr)){
+							$currQRs = get_option('quickppr_redirects');
+							$resultQR = array_merge($currQRs, $tempArr);
+							update_option('quickppr_redirects',$resultQR);
+						}
+						if(!empty($tempMArr)){
+							$currQRM = get_option('quickppr_redirects_meta');
+							$resultQRM = array_merge($currQRM, $tempMArr);
+							update_option('quickppr_redirects_meta',$resultQRM);
+						}
+						wp_redirect(admin_url('admin.php?page=redirect-options&update=5'),302);
+						exit;
+					else:
+						wp_die('Does not look like there are any valid items to import - check the file and try again.', 'ERROR - No Valid items to add.',array('response'=>'200','back_link'=>'1'));
+						exit;
+					endif;
+				}
+				//-------------
+			}
+		}		return;
+	}
 	function ppr_parse_request($wp) {
 		global $wp;
 		if(array_key_exists('pprd', $wp->query_vars) && array_key_exists('scid', $wp->query_vars)){
@@ -539,22 +1177,50 @@
 			if( $wp->query_vars['pprd'] !='' && $wp->query_vars['scid'] == md5($tohash)){
 				$theDel = str_replace('pprdel-','',$wp->query_vars['pprd']);
 				$redirects = get_option('quickppr_redirects');
+				$redirectsmeta = get_option('quickppr_redirects_meta');
 				if (!empty($redirects)) {
 					$ww=1;
 					foreach ($redirects as $request => $destination) {
 						if($ww != (int)$theDel){
 							$quickppr_redirects[$request] = $destination;
+							$quickppr_redirectsmeta[$request] = $redirectsmeta[$request];
 						}
 					$ww++;
 					}
 				} // end if
 				update_option('quickppr_redirects',$quickppr_redirects);
+				update_option('quickppr_redirects_meta',$quickppr_redirectsmeta);
+				$this->build_jQueryCache();
 				echo 1;
 				exit;
 			}else{
 				echo 0;
 				exit;
 			}
+		}elseif(array_key_exists('ver', $wp->query_vars)){
+			if( $wp->query_vars['ver'] =='pprjq1'){
+				if($this->ppruse_jquery == '1'){
+					$pprscript = get_option('qppr_jQuery_cache');
+				}else{
+					$pprscript = '//not set';
+				}
+				if($pprscript == ''){$pprscript = $this->build_jQueryCache();}
+				header('Content-type: text/javascript');
+				echo $pprscript;
+				exit;
+			}
+			return;
+		}elseif(array_key_exists('pprhidemessage', $wp->query_vars)){
+			if( $wp->query_vars['pprhidemessage'] =='1'){
+				update_option('qppr_jQuery_hide_message','1');
+				echo '1';
+				exit;
+			}elseif($wp->query_vars['pprhidemessage'] =='2'){
+				update_option('qppr_jQuery_hide_message2','1');
+				echo '1';
+				exit;
+			}
+			return;
 		}else{
 			return;
 		}
@@ -562,8 +1228,15 @@
 	
 	function ppr_init_check_version() {
 	// checks version of plugin in DB and updates if needed.
+		$this->ppr_all_redir_array	= $this->get_main_array();
+		$this->pprptypes_ok			= get_option( 'ppr_qpprptypeok' );
+		
 		global $wpdb;
 		if($this->thepprversion != $this->ppr_curr_version){
+			update_option( 'ppr_use-jquery','0'); //default to off
+			update_option( 'ppr_override-casesensitive', '1' );
+			$this->ppruse_jquery 	= '0';
+			$this->pproverride_casesensitive = '1';
 			update_option( 'ppr_version', $this->ppr_curr_version );
 		}
 		if($this->thepprmeta != '1'){
@@ -574,15 +1247,15 @@
 
 	function ppr_filter_plugin_actions($links){
 		$new_links = array();
-		$new_links[] = '<a href="'.$this->fcmlink.'/donate/">Donate</a>';
+		$new_links[] = '<a href="'.$this->fcmlink.'/donations/">Donate</a>';
 		return array_merge($links,$new_links );
 	}
 	
 	function ppr_filter_plugin_links($links, $file){
 		if ( $file == plugin_basename(__FILE__) ){
 			$links[] = '<a href="'.$this->adminlink.'admin.php?page=redirect-updates">Quick Redirects</a>';
-			$links[] = '<a target="_blank" href="'.$this->fcmlink.'/quick-pagepost-redirect-plugin/">FAQ</a>';
-			$links[] = '<a target="_blank" href="'.$this->fcmlink.'/donate/">Donate</a>';
+			$links[] = '<a target="_blank" href="'.$this->fcmlink.'/quick-page-post-redirect-plugin/">FAQ</a>';
+			$links[] = '<a target="_blank" href="'.$this->fcmlink.'/donations/">Donate</a>';
 		}
 		return $links;
 	}
@@ -599,10 +1272,11 @@
 		wp_nonce_field( 'pprredirect_noncename', 'pprredirect_noncename', false, true );
 
 		// The actual fields for data entry
-		echo '<label for="pprredirect_active" style="padding:2px 0;"><input type="checkbox" name="pprredirect_active" value="1" '. checked('1',get_post_meta($post->ID,'_pprredirect_active',true),0).' />Make Redirect <b>Active</b>. (check to turn on)</label><br />';
-		echo '<label for="pprredirect_newwindow" style="padding:2px 0;"><input type="checkbox" name="pprredirect_newwindow" id="pprredirect_newwindow" value="_blank" '. checked('_blank',get_post_meta($post->ID,'_pprredirect_newwindow',true),0).'>Open redirect link in a <b>new window.</b></label><br />';
-		echo '<label for="pprredirect_relnofollow" style="padding:2px 0;"><input type="checkbox" name="pprredirect_relnofollow" id="pprredirect_relnofollow" value="1" '. checked('1',get_post_meta($post->ID,'_pprredirect_relnofollow',true),0).'>Add <b>rel=\"nofollow\"</b> to redirect link.</label><br />';
-		echo '<label for="pprredirect_rewritelink" style="padding:2px 0;"><input type="checkbox" name="pprredirect_rewritelink" id="pprredirect_rewritelink" value="1" '. checked('1',get_post_meta($post->ID,'_pprredirect_rewritelink',true),0).'><b>Show</b> the Redirect URL below in the link instead of this page URL. <b>NOTE: You may have to use the <u>FULL</u> URL below!</b></label><br /><br />';
+		echo '<label for="pprredirect_active" style="padding:2px 0;"><input type="checkbox" name="pprredirect_active" value="1" '. checked('1',get_post_meta($post->ID,'_pprredirect_active',true),0).' />&nbsp;Make Redirect <b>Active</b>. (check to turn on)</label><br />';
+		echo '<label for="pprredirect_newwindow" style="padding:2px 0;"><input type="checkbox" name="pprredirect_newwindow" id="pprredirect_newwindow" value="_blank" '. checked('_blank',get_post_meta($post->ID,'_pprredirect_newwindow',true),0).'>&nbsp;Open redirect link in a <b>new window.</b></label><br />';
+		echo '<label for="pprredirect_relnofollow" style="padding:2px 0;"><input type="checkbox" name="pprredirect_relnofollow" id="pprredirect_relnofollow" value="1" '. checked('1',get_post_meta($post->ID,'_pprredirect_relnofollow',true),0).'>&nbsp;Add <b>rel=\"nofollow\"</b> to redirect link.</label><br />';
+		echo '<label for="pprredirect_rewritelink" style="padding:2px 0;"><input type="checkbox" name="pprredirect_rewritelink" id="pprredirect_rewritelink" value="1" '. checked('1',get_post_meta($post->ID,'_pprredirect_rewritelink',true),0).'>&nbsp;<b>Show</b> the Redirect URL below in the link instead of this page URL. <b>NOTE: You may have to use the <u>FULL</u> URL below!</b></label><br /><br />';
+		//echo '<label for="pprredirect_casesensitive" style="padding:2px 0;"><input type="checkbox" name="pprredirect_casesensitive" id="pprredirect_casesensitive" value="1" '. checked('1',get_post_meta($post->ID,'_pprredirect_casesensitive',true),0).'>&nbsp;Make the Redirect Case Insensitive.</label><br /><br />';
 		echo '<label for="pprredirect_url"><b>Redirect URL:</b></label><br />';
 		if(get_post_meta($post->ID, '_pprredirect_url', true)!=''){$pprredirecturl=get_post_meta($post->ID, '_pprredirect_url', true);}else{$pprredirecturl="";}
 		echo '<input type="text" style="width:75%;margin-top:2px;margin-bottom:2px;" name="pprredirect_url" value="'.$pprredirecturl.'" /><br />(i.e., <code>http://example.com</code> or <code>/somepage/</code> or <code>p=15</code> or <code>155</code>. Use <b>FULL URL</b> <i>including</i> <code>http://</code> for all external <i>and</i> meta redirects. )<br /><br />';
@@ -653,7 +1327,8 @@
 			$my_meta_data['_pprredirect_relnofollow'] 	= $_REQUEST['pprredirect_relnofollow'];
 			$my_meta_data['_pprredirect_type'] 			= $_REQUEST['pprredirect_type'];
 			$my_meta_data['_pprredirect_rewritelink'] 	= $_REQUEST['pprredirect_rewritelink'];
-			$my_meta_data['_pprredirect_url']    		= $_REQUEST['pprredirect_url']; //stripslashes( $_POST['pprredirect_url']);
+			$my_meta_data['_pprredirect_url']    		= $_REQUEST['pprredirect_url']; 
+			//$my_meta_data['_pprredirect_casesensitive'] = $_REQUEST['pprredirect_casesensitive']; 
 			
 			if ( 0 === strpos($my_meta_data['_pprredirect_url'], 'www.'))
 				$my_meta_data['_pprredirect_url'] = 'http://' . $my_meta_data['_pprredirect_url'] ; // Starts with www., so add http://
@@ -681,6 +1356,7 @@
 				}
 			}
 		endif;
+		$this->build_jQueryCache();
 	}
 	
 	function ppr_fix_targetsandrels($pages) {
@@ -778,38 +1454,50 @@
 	}
 	
 	function redirect(){
-	// Read the list of redirects and if the current page is found in the list, send the visitor on her way
+		// Read the list of redirects and if the current page is found in the list, send the visitor on her way
 		if (!empty($this->quickppr_redirects) && !is_admin()) {
-			$userrequest = str_replace(get_option('home'),'',$this->getAddress());
-			if(strpos($userrequest,'/') === false) {$userrequesttest = '/'.$userrequest.'/';}else{$userrequesttest = $userrequest.'/';}
-			if (array_key_exists($userrequest,$this->quickppr_redirects) || array_key_exists($userrequesttest,$this->quickppr_redirects)) {
-				if(isset($this->quickppr_redirects[$userrequesttest]) && $this->quickppr_redirects[$userrequesttest]!=''){$userrequest = $userrequesttest;}
-				if($this->quickppr_redirects[$userrequest]!='') {
-					if($this->pproverride_URL!=''){$useURL = $this->pproverride_URL;}else{$useURL = $this->quickppr_redirects[$userrequest];}
-					switch($this->pproverride_type){
-						case '':
-						case '0':
-						case '301':
-							header ('Status: 301');
-							header ('HTTP/1.1 301 Moved Permanently');
-							break;
-						case '302':
-							header ('Status: 302');
-							header ('HTTP/1.1 302 Moved Temporarily');
-							break;
-						case '307':
-							header ('Status: 307');
-							header ('HTTP/1.1 307 Moved Temporarily');
-							break;
-						case 'meta':
-							$this->ppr_metaurl = $useURL;
-							add_action('wp_head', array($this,'ppr_addmetatohead_theme'),1);
-							break;
+			$userrequest 	= str_replace(get_option('home'),'',$this->getAddress());
+			//get the query string if there is one so that it can be preserved
+			$finalQS = '';
+			if(isset($_GET)){ 
+				$useURLQS = array();
+				if(count($_GET) >= 1){
+				foreach($_GET as $key => $value){$useURLQS[] = $key.'='.$value;}
+					$finalQS = '?'.implode('&',$useURLQS);
+					$userrequest = preg_replace('/\?.*/', '', $userrequest);
+				}
+			}
+			//end QS preservation
+
+			$needle 		= $this->pproverride_casesensitive ? $userrequest : strtolower($userrequest);
+			$haystack 		= $this->pproverride_casesensitive ? $this->quickppr_redirects : array_change_key_case($this->quickppr_redirects);
+			$index 			= false;
+			
+			if(array_key_exists($needle, $haystack)){
+				$index = $needle;
+			} elseif(strpos($needle,'/') === false) {
+				if(array_key_exists('/'.$needle.'/', $haystack)){
+					$index = '/'.$needle.'/';
+				}
+			}else{
+				if(array_key_exists($needle.'/', $haystack)){
+					$index = $needle.'/';
+				}
+			}
+			if($index){
+				$val = $haystack[$index];
+				if($val) {
+					$useURL = $this->pproverride_URL!='' ? $this->pproverride_URL : $val;
+					$useURL .= $finalQS; //add QS back
+					do_action('qppr_redirect',$useURL,$this->pproverride_type);
+					if($this->pproverride_type == 'meta'){
+						$this->ppr_metaurl = $useURL;
+						add_action('wp_head', array($this,'ppr_addmetatohead_theme'),1);
+					}else{
+						wp_redirect($useURL,$this->pproverride_type);
+						exit();
 					}
-					//check URL Override
-					header ('Location: ' . $useURL);
-					exit();
-				}
+				}	
 			}
 		}
 	}
@@ -841,30 +1529,12 @@
 					// check if override is set for all redirects to go to one URL
 					if($this->pproverride_URL !=''){$urlsite=$this->pproverride_URL;} 
 					if($this->pproverride_type!='0' && $this->pproverride_type!=''){$redrtype = $this->pproverride_type;} //override check
-					
-					header("Status: $redrtype");
-					switch($redrtype){
-						case '301':
-						case '0':
-						case '':
-							header ('HTTP/1.1 301 Moved Permanently');
-							header("Location: $urlsite", true, $redrtype);
-							exit(); //stop loading page
-							break;
-						case '302':
-							header ('HTTP/1.1 302 Moved Temporarily');
-							header("Location: $urlsite", true, $redrtype);
-							exit(); //stop loading page
-							break;
-						case '307':
-							header ('HTTP/1.1 307 Moved Temporarily');
-							header("Location: $urlsite", true, $redrtype);
-							exit(); //stop loading page
-							break;
-						case 'meta':
-							$this->ppr_metaurl = $redrurl;
-							add_action('wp_head', array($this,'ppr_addmetatohead_theme'),1);
-							break;
+					if($redrtype == 'meta'){
+						$this->ppr_metaurl = $redrurl;
+						add_action('wp_head', array($this,'ppr_addmetatohead_theme'),1);
+					}else{
+						wp_redirect($urlsite,$redrtype);
+						exit();
 					}
 				}
 			}
@@ -908,6 +1578,7 @@
 //=======================================
 // END Main Redirect Class.
 //=======================================
-
-$redirect_plugin = new quick_page_post_reds(); // call our class
+function start_ppr_class(){
+	$redirect_plugin = new quick_page_post_reds(); // call our class
+}
 ?>
\ No newline at end of file
--- a/web/wp-content/plugins/quick-pagepost-redirect-plugin/readme.txt	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-content/plugins/quick-pagepost-redirect-plugin/readme.txt	Wed Dec 19 17:46:52 2012 -0800
@@ -1,20 +1,21 @@
 === Quick Page/Post Redirect Plugin ===
 Contributors: Don Fischer
-Donate link: http://www.fischercreativemedia.com/wordpress-plugins/donate/
-Tags: redirect, 301, 302, meta, post, plugin, page, forward, re-direct, nofollow, menu links, posts, pages, admin, 404, custom post types, nav menu
+Donate link: http://www.fischercreativemedia.com/donations/
+Tags: redirect, 301, 302, meta, post, plugin, page, forward, re-direct, nofollow, menu links, posts, pages, admin, 404, custom post types, nav menu, import, export, restore
 Requires at least: 3.1
-Tested up to: 3.3.2
-Stable tag: 4.2.3
+Tested up to: 3.4.2
+Stable tag: trunk
 
 Redirect Pages/Posts to another page/post or external URL. Has edit box as well as global options. Specify the redirect Location and type. For PHP5+
 
 == Description ==
-
-It adds an option box to the edit section where you can specify the redirect location and type of redirect that you want, temporary, permanent, or meta. See below for additional features added. 
+Version 5.0.2.
+This plugin adds adds an option box to the edit section where you can specify the redirect location and type of redirect that you want, temporary, permanent, or meta. See below for additional features added. 
 
 = Features: = 
 * Works with new WordPress menus
 * Works with new WordPress Custom Post Types (set option on settings page)
+* jQuery integration for more enhanced re-writes (set option on settings page).
 * You can set a redirect page or menu link to open in a new window (will not work on permalinks)
 * You can add a *rel="nofollow"* attribute to the page or menu link of the redirect (will not work on permalinks)
 * You can completely re-write the URL for the redirect so it takes the place of the default page URL (rewrite the href link)
@@ -22,20 +23,24 @@
 * Redirect Location can be to another WordPress page/post or any other website with an external URL. 
 * Redirect can use a full URL path, the post or page ID, permalink or page-name (not available for Quick Redirects method).
 * Option Screen to set global overrides like turning off all redirects at once, setting a global destination link, make all redirect open in a new window, etc.
-* View a summary of all individual redirected pages/posts or custom post types that are currently set up.
+* View a summary of all redirected pages/posts or custom post types and Quick Redirects that are currently set up.
+* Plugin Clean up functions for those who decide they may want to remove all plugin data.
+* Import/Export of redirects for backup, or to bulk add redirects.
+* Built-in FAQs/Help that can be updated daily with relevant questions.
 
-This plugin is not compatible with WordPress versions less than 2.5. Requires PHP 5+.
+This plugin is not compatible with WordPress versions less than 3.1. Requires PHP 5+.
 
-*PLEASE NOTE:* A new page or post needs to be Published in order for the redirect to happen. It WILL work on a DRAFT Status Post/Page ONLY, and I mean ONLY, if the Post/Page has FIRST been Published and the re-saved as a Draft. 
+*PLEASE NOTE:* A new page or post needs to be Published in order for Page/Post redirect to happen. It WILL work on a DRAFT Status Post/Page ONLY, and I mean ONLY, if the Post/Page has FIRST been Published and the re-saved as a Draft. This does not apply to Quick Redirects.
 
 = TROUBLESHOOTING: =
 * To include custom post types, check the setting on the main plugin option page.
 * If you check the box for "Show Redirect URL below" on the edit page, please note that you MUST use the full URL in the Redirect URL box. If you do not, you may experience some odd links and 404 pages, as this option changes the Permalink for the page/post to the EXACT URL you enter in that field. (i.e., if you enter '2' in the field, it will redirect to 'http://2' which is not the same as 'http://yoursite.com/?p=2').
 * If your browser tells you that your are in an infinite loop, check to make sure you do not have pages redirecting to another page that redirects back to the initial page. That WILL cause an infinite loop.
-* If you are using the Quick 301 Redirects method to do your redirects, be sure that your Request URL starts with a / and is relative to the root (i.e., http://mysite.com/test/ would have /test/ in the request field).
-* Links in page/post content and Permalinks will not open in a new window or add the rel=nofollow. That is because the theme template actually sets up the links by calling "the_permalink()" function so add these elements is not consistently possible so it has been excluded from the functionality.
+* If you are using the Quick Redirects method to do your redirects, be sure that your Request URL starts with a / and is relative to the root (i.e., http://mysite.com/test/ would have /test/ in the request field).
+* Links in page/post content and Permalinks will not open in a new window or add the rel=nofollow. That is because the theme template actually sets up the links by calling "the_permalink()" function so adding these elements is not consistently possible. You can however, have the attempt to use a jQuery replace to try to fix the issue - to do this enable the jQuery option in the settings.
 * If your page or post is not redirecting, this is most likely because something else like the theme functions file or another plugin is outputting the header BEFORE the plugin can perform the redirect. This can be tested by turning off all plugins except the Quick Page/Post Redirect Plugin and testing if the redirect works. 9 out of 10 times, a plugin or bad code is the culprit.
-* We have tested the plugin in dozens of themes and alongside a whole lot more plugins. In our experience, (with exception to a few bugs) most of the time another plugin is the problem. If you do notice a problem, please let us know at plugins@fischercreativemedia.com - along with the WP version, theme you are using and plugins you have installed - and we will try to troubleshoot the problem. 
+* We have tested the plugin in dozens of themes and alongside a whole lot more plugins. In our experience, (with exception to a few bugs from time to time) most of the time another plugin is the problem. If you do notice a problem, please let us know at plugins@fischercreativemedia.com - along with the WP version, theme you are using and plugins you have installed - and we will try to troubleshoot the problem. 
+* Check the FAQs/Help located in the Plugin menu for more up to date issues and fixes.
 
 == Installation ==
 
@@ -52,6 +57,8 @@
 1. You can create a redirect with the 'Quick Redirects' option located in the Admin Settings menu.
 
 == Frequently Asked Questions ==
+** SEE A LIST OF MORE UP TO DATE FAQS IN THE PLUGIN MENU ITSELF ** 
+
 = With 3.0s new menu structure, isn't your plugin now obsolete? =
 Yes, and No. Mostly No.
 Here is why - with WordPress 3.0, comes the new menu structure, but only a handful of themes actually have the menu structure already integrated into theme. This means that there are tons of themes out there that still need to use the the old way until they can update their theme template pages and functions to turn on the menu capability.
@@ -68,10 +75,10 @@
 The functionality is located in the REDIRECT MENU under Quick Redirects. The old URL goes in the Request field and the to new URL goes in the Destination field. Simple and Quick!
 
 = Can I add 'rel="nofollow" attribute to the redirect link? =
-YES, you can add a ' rel="nofollow" ' attribute for the redirect link. Simply check the "add rel=nofollow" box when setting up the redirect on the page/post edit page. Note - this option is not available for the Quick Redirects method or for permalinks and link within post content.
+YES, you can add a ' rel="nofollow" ' attribute for the redirect link. Simply check the "add rel=nofollow" box when setting up the redirect on the page/post edit page. Note - this option is only available for the Quick Redirects method when the 'use with jQuery' functionality is enabled in the settings.
 
 = Can I make the redirect open in a new window? =
-YES, you can make the redirect link open in a new window. Simply check the "Open in a new window" box when setting up the redirect on the page/post edit page. Note - this option is not available for the Quick Redirects method or for permalinks and link within post content.
+YES, you can make the redirect link open in a new window. Simply check the "Open in a new window" box when setting up the redirect on the page/post edit page. Note - this option is only available for the Quick Redirects method when the 'use with jQuery' functionality is enabled in the settings.
 
 = I want to just have the link for the redirecting page/post show the new redirect link in the link, not the old one, can I do that? =
 YES, you can hide the original page link and have it replaced with the redirect link. Any place the theme calls either "wp_page_links", "post_links" or "page_links" functions, the plugin can replace the original link with the new one. Simply check the "Show Redirect URL" box when setting up the redirect on the page/post edit page. Note - this option is not available for the Quick Redirects method. 
@@ -108,17 +115,43 @@
 = Should I use a full URL with http:// or https:// ? =
 Yes, you can, but you do not always need to. If you are redirecting to an external URL, then yes. If you are just redirecting to another page or post on your site, then no, it is not needed. When in doubt, use the entire URL.
 
+= That's all the FAQs you have? =
+NO it isn't! Check the plugin FAQs/Help page for a more up to date list of Frequently Asked Questions. The plugin now has a live feed of FAQs that can be updated regularly. If you have something you thin we should add, please let us know.
+
 
 == Screenshots ==
 
-1. The Redirect Menu and available option pages (updated for version 4.0).
-2. Quick 301 Redirects Page (Added in version 1.8).
-3. Main settings and Options page (new in version 4.0)
-4. Summary of redirects page (new in version 4.0)
+1. New FAQs/Help Page. This is updated off an RSS feed so it can be updated regularly with fixs and common questions.
+2. Setting Page. Includes new Import and Export features.
+3. More detailed view of Import/Export Feature.
+4. Plugin Clean Up feature. You can delete ALL plugin data!
+5. Quick Redirects setup page.
+5. Summary of redirects plugin page.
 
 == Changelog ==
-= 4.2.3 =
-* Fix WP_PLUGIN_URL and replace with plugins_url() to help with redirects on SSL. (01/01/2012)
+= 5.0.2 =
+* Bug fixes and jQuery now set to off until issues are resolved.
+* Set Case Sensetive to on by default - Some people having issues with infinite loops.
+
+= 5.0.1 =
+* Fix to jQuery conflict issue.
+
+= 5.0 =
+* Added jQuery version check to ensure no problmes with themes forcing older versions of jQuery
+* Added a few warning /info messages to Quick Redirects page.
+* Redirect summary was updated to display Quick Redirects as well as individual redirects. Now it is easier to see at a glance what redirects you have set up.
+* Rewrite of Quick Redirects functions to allow selecting Open in New Window (NW) and rel=nofollow (NF) as long as 'use jQuery' is selected. 
+* Added "use jQuery" option on settings page - on by default after upgrade
+* Added jQuery redirect replace, target="_blank", and rel="nofollow" to increase success for additional options (mainly Quick redirects).
+* Changed out WP_PLUGIN_URL for plugins_url() to help resolve errors in redirects for SSL/https
+* Changed the way custom post types are handled.These are now on by default for new users - or users who have not specifically set to off.
+* The ability to turn off the Plugin Meta Box for any post type was added (admin permissions required).
+* Import and Export features were added to allow for backup of existing Quick Redirects, Restoring a backup or adding bulk redirects.
+* Plugin clean-up features were added to completely remove either Page/Post meta data (for regular redirects), Quick Redirects, or both.
+* Several filter and action hooks were added to help users better integrate the plugin into their theme, should they need additional functionality.
+* New FAQs/Help page with items provided by an RSS feed, so we can easily update FAQs when common questions/issues arise.
+* Query String data is now preserved for Quick Redirects (thanks to Jon Wilson for the contribution).
+* Case insensitivity option was added for Quick Redirects (thanks to Brian DiChiara for the contribution).
 
 = 4.2.2 =
 * Fix some embarrasing spelling errors.(07/14/2011)
@@ -202,6 +235,5 @@
 * Initial Plugin creation (7/1/2009)
 
 == Upgrade Notice ==
-
-= 4.2.3 =
-Fix for SSL sites - replaces WP_PLUGIN_URL constant with plugins_url() funsction for proper URL Protocol return. 
\ No newline at end of file
+= 5.0.1 =
+Fix to jQuery issue in versions 5.0 and 5.0.1 that caused some jQuery features to malfunction on frontend of site and updated default settingq for use with jQuery (default to off) and Case Seneitive (default to on).
Binary file web/wp-content/plugins/quick-pagepost-redirect-plugin/screenshot-1.jpg has changed
Binary file web/wp-content/plugins/quick-pagepost-redirect-plugin/screenshot-2.jpg has changed
Binary file web/wp-content/plugins/quick-pagepost-redirect-plugin/screenshot-3.jpg has changed
Binary file web/wp-content/plugins/quick-pagepost-redirect-plugin/screenshot-4.jpg has changed
Binary file web/wp-content/plugins/quick-pagepost-redirect-plugin/screenshot-5.jpg has changed
Binary file web/wp-content/plugins/quick-pagepost-redirect-plugin/screenshot-6.jpg has changed
--- a/web/wp-content/plugins/slideshow-jquery-image-gallery/classes/SlideshowPlugin.php	Wed Dec 19 12:35:13 2012 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,158 +0,0 @@
-<?php
-/**
- * Class SlideslowPlugin is called whenever a slideshow do_action tag is come across.
- * Responsible for outputting the slideshow's HTML, CSS and Javascript.
- *
- * TODO Create a variable in which all slideshow html can be stored <- Rethink this, slideshow containers have random ids.
- * @author: Stefan Boonstra
- * @version: 22-09-12
- */
-class SlideshowPlugin {
-
-	/**
-	 * Function deploy prints out the prepared html
-	 *
-	 * @param int $postId
-	 */
-	static function deploy($postId = null){
-		echo self::prepare($postId);
-	}
-
-	/**
-	 * Function prepare returns the required html and enqueues
-	 * the scripts and stylesheets necessary for displaying the slideshow
-	 *
-	 * Passing this function no parameter or passing it a negative one will
-	 * result in a random pick of slideshow
-	 *
-	 * @param int $postId
-	 * @return String $output
-	 */
-	static function prepare($postId = null){
-		// Get post by its ID, or by its slug
-		if(is_numeric($postId))
-			$post = wp_get_single_post($postId);
-		if(is_string($postId)){
-			$query = new WP_Query(array(
-				'post_type' => SlideshowPluginPostType::$postType,
-				'name' => $postId,
-				'orderby' => 'post_date',
-				'order' => 'DESC'
-			));
-
-			if($query->have_posts())
-				$post = $query->next_post();
-		}
-
-		// When no slideshow is found, get one at random
-		if(empty($post)){
-			$post = get_posts(array(
-				'numberposts' => 1,
-				'orderby' => 'rand',
-				'post_type' => SlideshowPluginPostType::$postType
-			));
-
-			if(is_array($post))
-				$post = $post[0];
-		}
-
-		// Exit on error
-		if(empty($post)){echo 'dayum';
-			return '<!-- Wordpress Slideshow - No slideshows available -->';
-		}
-
-		// Get settings
-		$allSettings = SlideshowPluginPostType::getSimpleSettings($post->ID, null, false);
-
-		// Get stored slide settings and convert them to array([slide-key] => array([setting-name] => [value]));
-		$slidesPreOrder = array();
-		$slideSettings = SlideshowPluginPostType::getSettings($post->ID, SlideshowPluginPostType::$prefixes['slide-list'], false);
-		if(is_array($slideSettings) && count($slideSettings) > 0)
-			foreach($slideSettings as $key => $value){
-				$key = explode('_', $key);
-				if(is_numeric($key[1]))
-					$slidesPreOrder[$key[1]][$key[2]] = $value;
-			}
-
-		// Create array ordered by the 'order' key of the slides array: array([order-key] => [slide-key]);
-		$slidesOrder = array();
-		if(count($slidesPreOrder) > 0){
-			foreach($slidesPreOrder as $key => $value)
-				if(isset($value['order']) && is_numeric($value['order']) && $value['order'] > 0)
-					$slidesOrder[$value['order']][] = $key;
-		}
-		ksort($slidesOrder);
-
-		// Order slides by the order key.
-		$slides = array();
-		if(count($slidesOrder) > 0)
-			foreach($slidesOrder as $value)
-				if(is_array($value))
-					foreach($value as $slideId){
-						$slides[] = $slidesPreOrder[$slideId];
-						unset($slidesPreOrder[$slideId]);
-					}
-
-		// Add remaining (unordered) slides to the end of the array.
-		$slides = array_merge($slides, $slidesPreOrder);
-
-		// Randomize if setting is true.
-		if(isset($allSettings['setting_random']) && $allSettings['setting_random'] == 'true')
-			shuffle($slides);
-
-		// Enqueue functional sheet
-		wp_enqueue_style(
-			'slideshow_functional_style',
-			SlideshowPluginMain::getPluginUrl() . '/style/' . __CLASS__ . '/functional.css'
-		);
-
-		// Create a microtime timestamp to host multiple slideshows with different styles and settings on the same page
-		$randomId = rand();
-
-		// Get stylesheet for printing
-		$style = '';
-		if($allSettings['style_style'] == 'custom' && isset($allSettings['style_custom']) && !empty($allSettings['style_custom'])){ // Custom style
-			$style = str_replace('%plugin-url%', SlideshowPluginMain::getPluginUrl(), $allSettings['style_custom']);
-		}else{ // Set style
-			$filePath = SlideshowPluginMain::getPluginPath() . '/style/' . __CLASS__ . '/style-' . $allSettings['style_style'] . '.css';
-			if(file_exists(SlideshowPluginMain::getPluginPath() . '/style/' . __CLASS__ . '/style-' . $allSettings['style_style'] . '.css')){
-				ob_start();
-				include($filePath);
-				$style = str_replace('%plugin-url%', SlideshowPluginMain::getPluginUrl(), ob_get_clean());
-			}
-		}
-
-		// Append the random ID to the slideshow container in the stylesheet, to identify multiple slideshows
-		if(!empty($style))
-			$style = str_replace('.slideshow_container', '.slideshow_container_' . $randomId, $style);
-
-		// Filter settings to only contain settings, then remove prefix
-		$settings = array();
-		if(is_array($allSettings) && count($allSettings) > 0)
-			foreach($allSettings as $key => $value)
-				if(SlideshowPluginPostType::$prefixes['settings'] == substr($key, 0, strlen(SlideshowPluginPostType::$prefixes['settings'])))
-					$settings[substr($key, strlen(SlideshowPluginPostType::$prefixes['settings']))] = $value;
-
-		// Include output file that stores output in $output.
-		$output = '';
-		ob_start();
-		include(SlideshowPluginMain::getPluginPath() . '/views/' . __CLASS__ . '/slideshow.php');
-		$output .= ob_get_clean();
-
-		// Enqueue flash object creation script
-		wp_enqueue_script(
-			'swfobject',
-			SlideshowPluginMain::getPluginUrl() . '/js/' . __CLASS__ . 'swfobject.js'
-		);
-
-		// Enqueue slideshow script
-		wp_enqueue_script(
-			'slideshow_script',
-			SlideshowPluginMain::getPluginUrl() . '/js/' . __CLASS__ . '/slideshow.js',
-			array('jquery')
-		);
-
-		// Return output
-		return $output;
-	}
-}
\ No newline at end of file
--- a/web/wp-content/plugins/slideshow-jquery-image-gallery/classes/SlideshowPluginAjax.php	Wed Dec 19 12:35:13 2012 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,16 +0,0 @@
-<?php
-/**
- * Class SlideshowAjax is used to register ajax functions
- * before as soon as possible, so ajax functions don't get
- * exceedingly large.
- *
- * @author: Stefan Boonstra
- * @version: 19-05-12
- */
-class SlideshowPluginAjax {
-
-	static function init() {
-		add_action('wp_ajax_slideshow_slide_inserter_search_query', array('SlideshowPluginSlideInserter', 'printSearchResults'));
-		add_action('wp_ajax_slideshow_delete_slide', array('SlideshowPluginSlideInserter', 'deleteSlide'));
-	}
-}
\ No newline at end of file
--- a/web/wp-content/plugins/slideshow-jquery-image-gallery/classes/SlideshowPluginPostType.php	Wed Dec 19 12:35:13 2012 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,551 +0,0 @@
-<?php
-/**
- * SlideshowPluginPostType creates a post type specifically designed for
- * slideshows and their individual settings
- *
- * @author: Stefan Boonstra
- * @version: 13-10-12
- */
-class SlideshowPluginPostType {
-
-	/** Variables */
-	static $postType = 'slideshow';
-	static $settingsMetaKey = 'settings';
-	static $prefixes = array(
-		'slide-list' => 'slide_',
-		'style' => 'style_',
-		'settings' => 'setting_',
-	);
-	static $settings = null;
-	static $inputFields = null;
-
-	/**
-	 * Initialize Slideshow post type.
-	 * Called on load of plugin
-	 */
-	static function initialize(){
-		add_action('init', array(__CLASS__, 'registerSlideshowPostType'));
-		add_action('admin_enqueue_scripts', array(__CLASS__, 'enqueue'));
-		add_action('save_post', array(__CLASS__, 'save'));
-	}
-
-	/**
-	 * Registers new posttype slideshow
-	 */
-	static function registerSlideshowPostType(){
-		register_post_type(
-			self::$postType,
-			array(
-				'labels' => array(
-					'name' => __('Slideshows', 'slideshow-plugin'),
-					'singlular_name' => __('Slideshow', 'slideshow-plugin'),
-					'add_new_item' => __('Add New Slideshow', 'slideshow-plugin'),
-					'edit_item' => __('Edit slideshow', 'slideshow-plugin'),
-					'new_item' => __('New slideshow', 'slideshow-plugin'),
-					'view_item' => __('View slideshow', 'slideshow-plugin'),
-					'search_items' => __('Search slideshows', 'slideshow-plugin'),
-					'not_found' => __('No slideshows found', 'slideshow-plugin'),
-					'not_found_in_trash' => __('No slideshows found', 'slideshow-plugin')
-				),
-				'public' => false,
-				'publicly_queryable' => false,
-				'show_ui' => true,
-				'show_in_menu' => true,
-				'query_var' => true,
-				'rewrite' => true,
-				'capability_type' => 'post',
-				'has_archive' => true,
-				'hierarchical' => false,
-				'menu_position' => null,
-				'menu_icon' => SlideshowPluginMain::getPluginUrl() . '/images/' . __CLASS__ . '/adminIcon.png',
-				'supports' => array('title'),
-				'register_meta_box_cb' => array(__CLASS__, 'registerMetaBoxes')
-			)
-		);
-	}
-
-	/**
-	 * Enqueues scripts and stylesheets for when the admin page
-	 * is a slideshow edit page.
-	 */
-	static function enqueue(){
-		$currentScreen = get_current_screen();
-		if($currentScreen->post_type != self::$postType)
-			return;
-
-		// Enqueue associating script
-		wp_enqueue_script(
-			'post-type-handler',
-			SlideshowPluginMain::getPluginUrl() . '/js/' . __CLASS__ . '/post-type-handler.js',
-			array('jquery')
-		);
-
-		// TODO: These scripts have been moved here from the footer. They need to be always printed in the header
-		// TODO: a solution for this needs to be found.
-		// Enqueue scripts required for sorting the slides list
-		//wp_enqueue_script('jquery');
-		wp_enqueue_script('jquery-ui-sortable');
-
-		// Enqueue JSColor
-		wp_enqueue_script('jscolor-colorpicker', SlideshowPluginMain::getPluginUrl() . '/js/SlideshowPluginPostType/jscolor/jscolor.js');
-
-		// Enqueue slide insert script and style
-		SlideshowPluginSlideInserter::enqueueFiles();
-	}
-
-	/**
-	 * Adds custom meta boxes to slideshow post type.
-	 */
-	static function registerMetaBoxes(){
-		add_meta_box(
-			'information',
-			__('Information', 'slideshow-plugin'),
-			array(__CLASS__, 'informationMetaBox'),
-			self::$postType,
-			'normal',
-			'high'
-		);
-
-		add_meta_box(
-			'slides-list',
-			__('Slides List', 'slideshow-plugin'),
-			array(__CLASS__, 'slidesMetaBox'),
-			self::$postType,
-			'side',
-			'default'
-		);
-
-		add_meta_box(
-			'style',
-			__('Slideshow Style', 'slideshow-plugin'),
-			array(__CLASS__, 'styleMetaBox'),
-			self::$postType,
-			'normal',
-			'low'
-		);
-
-		add_meta_box(
-			'settings',
-			__('Slideshow Settings', 'slideshow-plugin'),
-			array(__CLASS__, 'settingsMetaBox'),
-			self::$postType,
-			'normal',
-			'low'
-		);
-
-		// Add support plugin message on edit slideshow
-		if(isset($_GET['action']) && strtolower($_GET['action']) == strtolower('edit'))
-			add_action('admin_notices', array(__CLASS__,  'supportPluginMessage'));
-	}
-
-	/**
-	 * Shows the support plugin message
-	 */
-	static function supportPluginMessage(){
-		include(SlideshowPluginMain::getPluginPath() . '/views/' . __CLASS__ . '/support-plugin.php');
-	}
-
-	/**
-	 * Shows some information about this slideshow
-	 */
-	static function informationMetaBox(){
-		global $post;
-
-		$snippet = htmlentities(sprintf('<?php do_action(\'slideshow_deploy\', \'%s\'); ?>', $post->ID));
-		$shortCode = htmlentities(sprintf('[' . SlideshowPluginShortcode::$shortCode . ' id=\'%s\']', $post->ID));
-
-		include(SlideshowPluginMain::getPluginPath() . '/views/' . __CLASS__ . '/information.php');
-	}
-
-	/**
-	 * Shows slides currently in slideshow
-	 */
-	static function slidesMetaBox(){
-		global $post;
-
-		// Stores highest slide id.
-		$highestSlideId = -1;
-
-		// Get stored slide settings and convert them to array([slide-key] => array([setting-name] => [value]));
-		$slidesPreOrder = array();
-		$settings = self::getSettings($post->ID, self::$prefixes['slide-list']);
-		if(is_array($settings) && count($settings) > 0)
-			foreach($settings as $key => $value){
-				$key = explode('_', $key);
-				if(is_numeric($key[1]))
-					$slidesPreOrder[$key[1]][$key[2]] = $value;
-			}
-
-		// Save slide keys from the $slidePreOrder array in the array itself for later use
-		if(count($slidesPreOrder) > 0)
-			foreach($slidesPreOrder as $key => $value){
-				$slidesPreOrder[$key]['id'] = $key;
-
-				// Save highest slide id
-				if($key > $highestSlideId)
-					$highestSlideId = $key;
-			}
-
-		// Create array ordered by the 'order' key of the slides array: array([order-key] => [slide-key]);
-		$slidesOrder = array();
-		if(count($slidesPreOrder) > 0){
-			foreach($slidesPreOrder as $key => $value)
-				if(isset($value['order']) && is_numeric($value['order']) && $value['order'] > 0)
-					$slidesOrder[$value['order']][] = $key;
-		}
-		ksort($slidesOrder);
-
-		// Order slides by the order key.
-		$slides = array();
-		if(count($slidesOrder) > 0)
-			foreach($slidesOrder as $value)
-				if(is_array($value))
-					foreach($value as $slideId){
-						$slides[] = $slidesPreOrder[$slideId];
-						unset($slidesPreOrder[$slideId]);
-					}
-
-		// Add remaining (unordered) slides to the end of the array.
-		$slides = array_merge($slides, $slidesPreOrder);
-
-		// Set url from which a substitute icon can be fetched
-		$noPreviewIcon = SlideshowPluginMain::getPluginUrl() . '/images/' . __CLASS__ . '/no-img.png';
-
-		// Include slides preview file
-		include(SlideshowPluginMain::getPluginPath() . '/views/' . __CLASS__ . '/slides.php');
-	}
-
-	/**
-	 * Shows style used for slideshow
-	 */
-	static function styleMetaBox(){
-		global $post;
-
-		// Get settings
-		$settings = self::getSettings($post->ID, self::$prefixes['style']);
-
-		// Fill custom style with default css if empty
-		if(isset($settings['style_custom']) && empty($settings['style_custom'][1])){
-			ob_start();
-			include(SlideshowPluginMain::getPluginPath() . '/style/SlideshowPlugin/style-custom.css');
-			$settings['style_custom'][1] = ob_get_clean();
-		}
-
-		// Build fields
-		$inputFields = self::getInputFields($settings, false);
-
-		// Include style settings file
-		include(SlideshowPluginMain::getPluginPath() . '/views/' . __CLASS__ . '/style-settings.php');
-	}
-
-	/**
-	 * Shows settings for particular slideshow
-	 */
-	static function settingsMetaBox(){
-		global $post;
-
-		// Get settings
-		$settings = self::getSettings($post->ID, self::$prefixes['settings']);
-		$inputFields = self::getInputFields($post->ID);
-
-		// Include
-		include(SlideshowPluginMain::getPluginPath() . '/views/' . __CLASS__ . '/settings.php');
-	}
-
-	/**
-	 * Called for saving metaboxes
-	 *
-	 * @param int $postId
-	 * @return int $postId On failure
-	 */
-	static function save($postId){
-		// Verify nonce, check if user has sufficient rights and return on auto-save.
-		if((isset($_POST['nonce']) && !wp_verify_nonce($_POST['nonce'], plugin_basename(__FILE__))) ||
-			!current_user_can('edit_post', $postId) ||
-			defined('DOING_AUTOSAVE') && DOING_AUTOSAVE)
-			return $postId;
-
-		// Get defaults
-		$defaultData = self::getDefaultData(false);
-
-		// Get old data
-		$oldData = get_post_meta($postId, self::$settingsMetaKey, true);
-		if(!is_array(($oldData)))
-			$oldData = array();
-
-		// Filter new data from $_POST
-		$newData = array();
-		if(is_array($_POST) && count($_POST) > 0)
-			foreach($_POST as $key => $value)
-				if(is_array(self::$prefixes) && count(self::$prefixes) > 0)
-					foreach(self::$prefixes as $prefix)
-						if($prefix == substr($key, 0, strlen($prefix)))
-							$newData[$key] = htmlspecialchars($value);
-
-		// Save settings
-		update_post_meta(
-			$postId,
-			self::$settingsMetaKey,
-			array_merge(
-				$defaultData,
-				$oldData,
-				$newData
-		));
-
-		return $postId;
-	}
-
-	/**
-	 * Restores some HTML in a string after using the htmlspecialchars() function on it.
-	 * Therefore, to be able to show the allowed HTML tags in a string, use this function.
-	 *
-	 * @param string $string The htmlspecialchars() string
-	 * @return string  $string The exceptionized string.
-	 */
-	static function htmlspecialchars_decodeOnlyAllowed($string){
-
-
-		return $string;
-	}
-
-	/**
-	 * Get simplified settings. This means there won't be an array full of
-	 * field information and data. There will simply be a key => value pair
-	 * with the retrieved settings or, if that value is empty, the default setting
-	 *
-	 * @param int $postId
-	 * @param string $prefix (optional, defaults to null)
-	 * @param bool $cacheEnabled (optional, defaults to true)
-	 * @return mixed $simpleSettings
-	 */
-	static function getSimpleSettings($postId, $prefix = null, $cacheEnabled = true){
-		$settings = self::getSettings($postId, $prefix, $cacheEnabled);
-
-		$simpleSettings = array();
-		if(is_array($settings) && count($settings) > 0)
-			foreach($settings as $key => $value){
-				if(!is_array($value))
-					continue;
-
-				if(empty($value[1]) && !is_numeric($value[1]))
-					$simpleSettings[$key] = $value[2];
-				else $simpleSettings[$key] = $value[1];
-			}
-
-		return $simpleSettings;
-	}
-
-	/**
-	 * Gets settings for the slideshow with the parsed post id.
-	 * When only the data with a particular prefix needs to be returned, pass the prefix as $prefix
-	 *
-	 * @param int $postId
-	 * @param string $prefix (optional, defaults to null)
-	 * @param bool $cacheEnabled (optional, defaults to true)
-	 * @return mixed $settings
-	 */
-	static function getSettings($postId, $prefix = null, $cacheEnabled = true){
-		if(!is_numeric($postId) || empty($postId))
-			return array();
-
-		if(!isset(self::$settings) || !$cacheEnabled){
-			// Get default data
-			$data = self::getDefaultData();
-
-			// Get settings
-			$currentSettings = get_post_meta(
-				$postId,
-				self::$settingsMetaKey,
-				true
-			);
-
-			// Fill data with settings
-			if(is_array($data) && count($data) > 0)
-				foreach($data as $key => $value)
-					if(isset($currentSettings[$key])){
-						$data[$key][1] = $currentSettings[$key];
-						unset($currentSettings[$key]);
-					}
-
-			// Load settings that are not there by default into data (slides in particular)
-			if(is_array($currentSettings) && count($currentSettings) > 0)
-				foreach($currentSettings as $key => $value)
-					if(!isset($data[$key]))
-						$data[$key] = $value;
-
-			$settings = $data;
-			if($cacheEnabled)
-				self::$settings = $data;
-		}else{
-			$settings = self::$settings;
-		}
-
-		if(isset($prefix))
-			if(is_array($settings) && count($settings) > 0)
-				foreach($settings as $key => $value)
-					if($prefix != substr($key, 0, strlen($prefix)))
-						unset($settings[$key]);
-
-		return $settings;
-	}
-
-	/**
-	 * Gets defdault data. If only default data (without field information) is needed, set fullDefinition to false.
-	 *
-	 * @param boolean $fullDefinition (optional, defaults to true)
-	 * @return mixed $defaultData
-	 */
-	static function getDefaultData($fullDefinition = true){
-		$data = array(
-			'style_style' => __('light', 'slideshow-plugin'),
-			'style_custom' => '',
-			'setting_animation' => __('slide', 'slideshow=plugin'),
-			'setting_slideSpeed' => '1',
-			'setting_descriptionSpeed' => '0.4',
-			'setting_intervalSpeed' => '5',
-			'setting_play' => 'true',
-			'setting_loop' => 'true',
-			'setting_slidesPerView' => '1',
-			'setting_width' => '0',
-			'setting_height' => '200',
-			'setting_descriptionHeight' => '50',
-			'setting_stretchImages' => 'true',
-			'setting_controllable' => 'true',
-			'setting_controlPanel' => 'false',
-			'setting_showDescription' => 'true',
-			'setting_hideDescription' => 'true',
-			'setting_random' => 'false',
-			//'setting_cssInHeader' => 'false',
-			'setting_avoidFilter' => 'true'
-		);
-
-		if($fullDefinition){
-			$yes = __('Yes', 'slideshow-plugin');
-			$no = __('No', 'slideshow-plugin');
-			$data = array( // $data : array([prefix_settingName] => array([inputType], [value], [default], [description], array([options]), array([dependsOn], [onValue]), 'group' => [groupName]))
-				'style_style' => array('select', '', $data['style_style'], __('The style used for this slideshow', 'slideshow-plugin'), array('light' => __('Light', 'slideshow-plugin'), 'dark' => __('Dark', 'slideshow-plugin'), 'custom' => __('Custom', 'slideshow-plugin'))),
-				'style_custom' => array('textarea', '', $data['style_custom'], __('Custom style editor', 'slideshow-plugin'), null, array('style_style', 'custom')),
-				'setting_animation' => array('select', '', $data['setting_animation'], __('Animation used for transition between slides', 'slideshow-plugin'), array('slide' => __('Slide', 'slideshow-plugin'), 'fade' => __('Fade', 'slideshow-plugin')), 'group' => __('Animation', 'slideshow-plugin')),
-				'setting_slideSpeed' => array('text', '', $data['setting_slideSpeed'], __('Number of seconds the slide takes to slide in', 'slideshow-plugin'), 'group' => __('Animation', 'slideshow-plugin')),
-				'setting_descriptionSpeed' => array('text', '', $data['setting_descriptionSpeed'], __('Number of seconds the description takes to slide in', 'slideshow-plugin'), 'group' => __('Animation', 'slideshow-plugin')),
-				'setting_intervalSpeed' => array('text', '', $data['setting_intervalSpeed'], __('Seconds between changing slides', 'slideshow-plugin'), 'group' => __('Animation', 'slideshow-plugin')),
-				'setting_slidesPerView' => array('text', '', $data['setting_slidesPerView'], __('Number of slides to fit into one slide', 'slideshow-plugin'), 'group' => __('Display', 'slideshow-plugin')),
-				'setting_width' => array('text', '', $data['setting_width'], __('Width of the slideshow, set to parent&#39;s width on 0', 'slideshow-plugin'), 'group' => __('Display', 'slideshow-plugin')),
-				'setting_height' => array('text', '', $data['setting_height'], __('Height of the slideshow', 'slideshow-plugin'), 'group' => __('Display', 'slideshow-plugin')),
-				'setting_descriptionHeight' => array('text', '', $data['setting_descriptionHeight'], __('Height of the description boxes', 'slideshow-plugin'), 'group' => __('Display', 'slideshow-plugin')),
-				'setting_stretchImages' => array('radio', '', $data['setting_stretchImages'], __('Fit image into slide (stretching it)', 'slideshow-plugin'), array('true' => $yes, 'false' => $no), 'group' => __('Display', 'slideshow-plugin')),
-				'setting_showDescription' => array('radio', '', $data['setting_showDescription'], __('Show title and description', 'slideshow-plugin'), array('true' => $yes, 'false' => $no), 'group' => __('Display', 'slideshow-plugin')),
-				'setting_hideDescription' => array('radio', '', $data['setting_hideDescription'], __('Hide description box, it will pop up when a mouse hovers over the slide', 'slideshow-plugin'), array('true' => $yes, 'false' => $no), array('setting_showDescription', 'true'), 'group' => __('Display', 'slideshow-plugin')),
-				'setting_play' => array('radio', '', $data['setting_play'], __('Automatically slide to the next slide', 'slideshow-plugin'), array('true' => $yes, 'false' => $no), 'group' => __('Control', 'slideshow-plugin')),
-				'setting_loop' => array('radio', '', $data['setting_loop'], __('Return to the beginning of the slideshow after last slide', 'slideshow-plugin'), array('true' => $yes, 'false' => $no), 'group' => __('Control', 'slideshow-plugin')),
-				'setting_controllable' => array('radio', '', $data['setting_controllable'], __('Activate buttons (so the user can scroll through the slides)', 'slideshow-plugin'), array('true' => $yes, 'false' => $no), 'group' => __('Control', 'slideshow-plugin')),
-				'setting_controlPanel' => array('radio', '', $data['setting_controlPanel'], __('Show control panel (play and pause button)', 'slideshow-plugin'), array('true' => $yes, 'false' => $no), 'group' => __('Control', 'slideshow-plugin')),
-				'setting_random' => array('radio', '', $data['setting_random'], __('Randomize slides', 'slideshow-plugin'), array('true' => $yes, 'false' => $no), 'group' => __('Miscellaneous', 'slideshow-plugin')),
-				//'setting_cssInHeader' => array('radio', '', $data['setting_cssInHeader'], __('Load all CSS in the \'&lt;head&gt;\' area', 'slideshow-plugin'), array('true' => $yes, 'false' => $no), 'group' => __('Miscellaneous', 'slideshow-plugin')),
-				'setting_avoidFilter' => array('radio', '', $data['setting_avoidFilter'], sprintf(__('Avoid content filter (disable if \'%s\' is shown)', 'slideshow-plugin'), SlideshowPluginShortcode::$bookmark), array('true' => $yes, 'false' => $no), 'group' => __('Miscellaneous', 'slideshow-plugin'))
-			);
-		}
-
-		return $data;
-	}
-
-	/**
-	 * Get all attachments attached to the parsed postId
-	 *
-	 * @param int $postId
-	 * @return mixed $attachments
-	 */
-	static function getAttachments($postId){
-		if(!is_numeric($postId))
-			return array();
-
-		return get_posts(array(
-			'post_type' => 'attachment',
-			'numberposts' => -1,
-			'post_status' => null,
-			'post_parent' => $postId
-		));
-	}
-
-	/**
-	 * Gets all input fields based on the list of obtained settings
-	 *
-	 * @param mixed|int $settings
-	 * @param bool $cacheEnabled (optional, defaults to true)
-	 * @return mixed $inputFields
-	 */
-	private static function getInputFields($settings, $cacheEnabled = true){
-		if(is_numeric($settings))
-			$settings = self::getSettings($settings);
-		elseif(empty($settings))
-			return array();
-
-		if(!isset(self::$inputFields) || !$cacheEnabled){
-			$inputFields = array();
-			if(is_array($settings) && count($settings) > 0){
-				foreach($settings as $key => $value){
-					if(!is_array($value))
-						continue;
-
-					$inputField = '';
-					$displayValue = (empty($value[1]) && !is_numeric($value[1]) ? $value[2] : $value[1]);
-					$class = ((isset($value[5]))? 'depends-on-field-value ' . $value[5][0] . ' ' . $value[5][1] . ' ': '') . $key;
-					switch($value[0]){
-						case 'text':
-							$inputField .= '<input
-								type="text"
-								name="' . $key . '"
-								class="' . $class . '"
-								value="' . $displayValue . '"
-							/>';
-							break;
-						case 'textarea':
-							$inputField .= '<textarea
-								name="' . $key . '"
-								class="' . $class . '"
-								rows="20"
-								cols="60"
-							>' . $displayValue . '</textarea>';
-							break;
-						case 'select':
-							$inputField .= '<select name="' . $key . '" class="' . $class . '">';
-							if(is_array($value[4]) && count($value[4]) > 0){
-								foreach($value[4] as $optionKey => $optionValue){
-									$inputField .= '<option value="' . $optionKey . '" ' . selected($displayValue, $optionKey, false) . '>
-										' . $optionValue . '
-									</option>';
-								}
-							}
-							$inputField .= '</select>';
-							break;
-						case 'radio':
-							if(is_array($value[4]) && count($value[4]) > 0){
-								foreach($value[4] as $radioKey => $radioValue){
-									$inputField .= '<label><input
-										type="radio"
-										name="' . $key . '"
-										class="' . $class . '"
-										value="' . $radioKey . '" ' .
-										checked($displayValue, $radioKey, false) .
-										' />' . $radioValue . '</label><br />';
-								}
-							}
-							break;
-						default:
-							$inputField = null;
-							break;
-					};
-
-					$inputFields[$key] = $inputField;
-				}
-			}
-
-			if($cacheEnabled)
-				self::$inputFields = $inputFields;
-		}else{
-			$inputFields = self::$inputFields;
-		}
-
-		return $inputFields;
-	}
-}
\ No newline at end of file
--- a/web/wp-content/plugins/slideshow-jquery-image-gallery/classes/SlideshowPluginSecurity.php	Wed Dec 19 12:35:13 2012 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,141 +0,0 @@
-<?php
-/**
- * The SlideshowPluginSecurity class contains functions for sanitizing in- and output.
- *
- * @author Stefan Boonstra
- * @since 2.1.16
- * @updated 2.1.16
- */
-class SlideshowPluginSecurity {
-
-	/**
-	 * @since 2.1.16
-	 * @var array List of allowed element tags
-	 */
-	private static $allowedElements = array(
-		'b' => array('endTag' => true, 'attributes' => 'default'),
-		'br' => array('endTag' => false),
-		'div' => array('endTag' => true, 'attributes' => 'default'),
-		'h1' => array('endTag' => true, 'attributes' => 'default'),
-		'h2' => array('endTag' => true, 'attributes' => 'default'),
-		'h3' => array('endTag' => true, 'attributes' => 'default'),
-		'h4' => array('endTag' => true, 'attributes' => 'default'),
-		'h5' => array('endTag' => true, 'attributes' => 'default'),
-		'h6' => array('endTag' => true, 'attributes' => 'default'),
-		'i' => array('endTag' => true, 'attributes' => 'default'),
-		'li' => array('endTag' => true, 'attributes' => 'default'),
-		'ol' => array('endTag' => true, 'attributes' => 'default'),
-		'p' => array('endTag' => true, 'attributes' => 'default'),
-		'span' => array('endTag' => true, 'attributes' => 'default'),
-		'strong' => array('endTag' => true, 'attributes' => 'default'),
-		'sub' => array('endTag' => true, 'attributes' => 'default'),
-		'sup' => array('endTag' => true, 'attributes' => 'default'),
-		'table' => array('endTag' => true, 'attributes' => 'default'),
-		'tbody' => array('endTag' => true, 'attributes' => 'default'),
-		'td' => array('endTag' => true, 'attributes' => 'default'),
-		'tfoot' => array('endTag' => true, 'attributes' => 'default'),
-		'th' => array('endTag' => true, 'attributes' => 'default'),
-		'thead' => array('endTag' => true, 'attributes' => 'default'),
-		'tr' => array('endTag' => true, 'attributes' => 'default'),
-		'ul' => array('endTag' => true, 'attributes' => 'default')
-	);
-
-	/**
-	 * @since 2.1.16
-	 * @var array List of attributes allowed in the tags
-	 */
-	private static $defaultAllowedAttributes = array(
-		'class',
-		'id',
-		'style'
-	);
-
-	/**
-	 * Similar to the htmlspecialchars($text) function, except this function
-	 * allows the exceptions defined in this class.
-	 *
-	 * @since 2.1.16
-	 * @updated 2.1.16
-	 */
-	static function htmlspecialchars_allow_exceptions($text){
-		$text = htmlspecialchars(htmlspecialchars_decode($text));
-
-		$allowedElements = self::$allowedElements;
-
-		// Loop through allowed elements decoding their HTML special chars and allowed attributes.
-		if(is_array($allowedElements) && count($allowedElements) > 0){
-			foreach($allowedElements as $element => $attributes){
-
-				$position = 0;
-
-				while(($position = stripos($text, $element, $position)) !== false){ // While element tags found
-
-					$openingTag = '<';
-					$encodedOpeningTag = htmlspecialchars($openingTag);
-
-					if(substr($text, $position - strlen($encodedOpeningTag), strlen($encodedOpeningTag)) == $encodedOpeningTag){ // Check if an opening tag '<' can be found before the tag name
-
-						// Replace encoded opening tag
-						$text = substr_replace($text, '<', $position - strlen($encodedOpeningTag), strlen($encodedOpeningTag));
-						$position -= strlen($encodedOpeningTag) - strlen($openingTag);
-
-						// Get the position of the first element closing tag
-						$closingTag = '>';
-						$encodedClosingTag = htmlspecialchars($closingTag);
-						$closingTagPosition = stripos($text, $encodedClosingTag, $position);
-
-						// Replace encoded closing tag
-						if($closingTagPosition !== false)
-							$text = substr_replace($text, '>', $closingTagPosition, strlen($encodedClosingTag));
-
-						$elementAttributes = null;
-						if(isset($attributes['attributes']) && is_array($attributes['attributes']))
-							$elementAttributes = $attributes['attributes'];
-						elseif(isset($attributes['attributes']) && $attributes['attributes'] == 'default')
-							$elementAttributes = self::$defaultAllowedAttributes;
-						else
-							continue;
-
-						if(!is_array($elementAttributes))
-							continue;
-
-						$tagText = substr($text, $position, $closingTagPosition - $position);
-
-						// Decode allowed attributes
-						foreach($elementAttributes as $attribute){
-
-							$attributeOpener = $attribute . '=' . htmlspecialchars('"');
-
-							$attributePosition = 0;
-							if(($attributePosition = stripos($tagText, $attributeOpener, $attributePosition)) !== false){ // Attribute was found
-
-								$attributeClosingPosition = 0;
-								if(($attributeClosingPosition = stripos($tagText, htmlspecialchars('"'), $attributePosition + strlen($attributeOpener))) === false) // If no closing position of attribute was found, skip.
-									continue;
-
-								// Open the attribute
-								$tagText = str_ireplace($attributeOpener, $attribute . '="', $tagText);
-
-								// Close the attribute
-								$attributeClosingPosition -= strlen($attributeOpener) - strlen($attribute . '="');
-								$tagText = substr_replace($tagText, '"', $attributeClosingPosition, strlen(htmlspecialchars('"')));
-							}
-
-						}
-
-						// Put the attributes of the tag back in place
-						$text = substr_replace($text, $tagText, $position, $closingTagPosition - $position);
-					}
-
-					$position++;
-				}
-
-				// Decode closing tags
-				if(isset($attributes['endTag']) && $attributes['endTag'])
-					$text = str_ireplace(htmlspecialchars('</' . $element . '>'), '</' . $element . '>', $text);
-			}
-		}
-
-		return $text;
-	}
-}
\ No newline at end of file
--- a/web/wp-content/plugins/slideshow-jquery-image-gallery/classes/SlideshowPluginShortcode.php	Wed Dec 19 12:35:13 2012 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,135 +0,0 @@
-<?php
-/**
- * Class SlideshowPluginShortcode provides the shortcode function, which is called
- * on use of shortcode anywhere in the posts and pages. Also provides the shortcode
- * inserter, so that it's made easier for non-programmers to insert the shortcode
- * into a post or page.
- *
- * @since 1.2.0
- * @author: Stefan Boonstra
- * @version: 25-09-12
- */
-class SlideshowPluginShortcode {
-
-	/** Variables */
-	public static $shortCode = 'slideshow_deploy';
-	public static $bookmark = '!slideshow_deploy!';
-	private static $postIds = array();
-
-	/**
-	 * Initializes the shortcode, registering it and hooking the shortcode
-	 * inserter media buttons.
-	 *
-	 * @since 2.1.16
-	 */
-	static function init(){
-		// Register shortcode
-		add_shortcode(self::$shortCode, array(__CLASS__, 'slideshowDeploy'));
-
-		// Admin
-		if(is_admin()){
-			// Add shortcode inserter HTML
-			add_action('media_buttons',  array(__CLASS__, 'shortcodeInserter'), 11);
-
-			// Enqueue shortcode inserter script
-			add_action('admin_enqueue_scripts', array(__CLASS__, 'shortcodeInserterScript'));
-		}
-	}
-
-	/**
-	 * Function slideshowDeploy adds a bookmark to where ever a shortcode
-	 * is found and adds the postId to an array, it then is loaded after
-	 * Wordpress has done its HTML checks.
-	 *
-	 * @since 1.2.0
-	 * @param mixed $atts
-	 * @return String $output
-	 */
-	static function slideshowDeploy($atts){
-		$postId = '';
-		if(isset($atts['id']))
-			$postId = $atts['id'];
-
-		$output = '';
-		$settings = SlideshowPluginPostType::getSimpleSettings($postId, null, false);
-		if($settings['setting_avoidFilter'] == 'true'){
-			// Filter content after all Wordpress HTML parsers are done, then replace bookmarks with raw HTML
-			add_filter('the_content', array(__CLASS__, 'insertSlideshow'), 999);
-			add_filter('the_excerpt', array(__CLASS__, 'insertSlideshow'), 999);
-
-			// Save post id
-			self::$postIds[] = $postId;
-
-			// Set output
-			$output = self::$bookmark;
-		}else{
-			// Just output the slideshow, without filtering
-			$output = SlideshowPlugin::prepare($postId);
-		}
-
-		// Return output
-		return $output;
-	}
-
-	/**
-	 * Function insertSlideshow uses the prepare method of class SlideshowPlugin
-	 * to insert the code for the slideshow on the location a bookmark was found.
-	 *
-	 * @since 2.1.8
-	 * @param String $content
-	 * @return String $content
-	 */
-	static function insertSlideshow($content){
-		// Loop through post ids
-		if(is_array(self::$postIds) && count(self::$postIds) > 0)
-			foreach(self::$postIds as $postId){
-				$updatedContent = preg_replace("/" . self::$bookmark . "/", SlideshowPlugin::prepare($postId), $content, 1);
-
-				if(is_string($updatedContent))
-					$content = $updatedContent;
-			}
-
-		// Reset postIds, so a shortcode in a next post can be used
-		self::$postIds = array();
-
-		return $content;
-	}
-
-	/**
-	 * Hooked on the admin's 'media_buttons' hook, outputs the shortcode inserter media button
-	 *
-	 * @since 2.1.16
-	 */
-	static function shortcodeInserter(){
-		// Get slideshows
-		$slideshows = new WP_Query(array(
-			'post_type' => SlideshowPluginPostType::$postType,
-			'orderby' => 'post_date',
-			'order' => 'DESC'
-		));
-
-		include(SlideshowPluginMain::getPluginPath() . DIRECTORY_SEPARATOR . 'views' . DIRECTORY_SEPARATOR . __CLASS__ . DIRECTORY_SEPARATOR . 'shortcode-inserter.php');
-	}
-
-	/**
-	 * Enqueues the shortcode inserter script
-	 *
-	 * @since 2.1.16
-	 */
-	static function shortcodeInserterScript(){
-		wp_enqueue_script(
-			'slideshow-shortcode-inserter',
-			SlideshowPluginMain::getPluginUrl() . '/js/' . __CLASS__ . '/shortcode-inserter.js',
-			array('jquery')
-		);
-
-		wp_localize_script(
-			'slideshow-shortcode-inserter',
-			'SlideshowShortcodeInserter',
-			array(
-				'undefinedSlideshowMessage' => __('No slideshow selected.', 'slideshow-plugin'),
-				'shortcode' => SlideshowPluginShortcode::$shortCode
-			)
-		);
-	}
-}
\ No newline at end of file
--- a/web/wp-content/plugins/slideshow-jquery-image-gallery/classes/SlideshowPluginSlideInserter.php	Wed Dec 19 12:35:13 2012 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,225 +0,0 @@
-<?php
-/**
- * Class SlideshowPluginSlideInserter
- *
- * TODO This class will probably need to be renamed to SlideshowPluginSlideHandler to explain more functionality
- * TODO than just inserting slides. (Show and delete functionality should be applied here as well)
- * @author Stefan Boonstra
- * @version 03-10-2012
- */
-class SlideshowPluginSlideInserter {
-
-	/** Flag to see if enqueue function has been called */
-	private static $enqueuedFiles;
-
-	/**
-	 * Returns the html for showing the image insert button.
-	 * Enqueues scripts unless $enqueueFiles is set to false.
-	 *
-	 * @param boolean $enqueueFiles
-	 * @return String $button
-	 */
-	static function getImageSlideInsertButton($enqueueFiles = true){
-		if($enqueueFiles)
-			self::enqueueFiles();
-
-		// Put popup html in footer
-		add_action('admin_footer', array(__CLASS__, 'includePopup'));
-
-		// Return button html
-		ob_start();
-		include(SlideshowPluginMain::getPluginPath() . '/views/' . __CLASS__ . '/insert-image-button.php');
-		return ob_get_clean();
-	}
-
-	/**
-	 * Returns the html for showing the text insert button.
-	 * Enqueues scripts unless $enqueueFiles is set to false.
-	 *
-	 * @param boolean $enqueueFiles
-	 * @return String $button
-	 */
-	static function getTextSlideInsertButton($enqueueFiles = true){
-		if($enqueueFiles)
-			self::enqueueFiles();
-
-		// Return button html
-		ob_start();
-		include(SlideshowPluginMain::getPluginPath() . '/views/' . __CLASS__ . '/insert-text-button.php');
-		return ob_get_clean();
-	}
-
-	/**
-	 * Returns the html for showing the video insert button.
-	 * Enqueues scripts unless $enqueueFiles is set to false.
-	 *
-	 * @param boolean $enqueueFiles
-	 * @return String $button
-	 */
-	static function getVideoSlideInsertButton($enqueueFiles = true){
-		if($enqueueFiles)
-			self::enqueueFiles();
-
-		// Return button html
-		ob_start();
-		include(SlideshowPluginMain::getPluginPath() . '/views/' . __CLASS__ . '/insert-video-button.php');
-		return ob_get_clean();
-	}
-
-	/**
-	 * This function is registered in the SlideshowPluginAjax class
-	 * and deletes slides with a particular $_POST['slideId']
-	 */
-	static function deleteSlide(){
-		if((!isset($_POST['slideId']) || !is_numeric($_POST['slideId'])) ||
-			(!isset($_POST['postId']) || !is_numeric($_POST['postId'])))
-			die;
-
-		$search = 'slide_' . $_POST['slideId'] . '_';
-		$settings = get_post_meta($_POST['postId'], 'settings', true);
-		if(is_array($settings) && count($settings) > 0){
-			foreach($settings as $key => $setting)
-				if(strtolower(substr($key, 0, strlen($search))) == strtolower($search))
-					unset($settings[$key]);
-		}
-		update_post_meta($_POST['postId'], 'settings', $settings);
-
-		die;
-	}
-
-	/**
-	 * This function is registered in the SlideshowPluginAjax class
-	 * and prints the results from the search query
-	 */
-	static function printSearchResults(){
-		// Numberposts and offset
-		$numberPosts = 10;
-		$offset = 0;
-		if(isset($_POST['offset']))
-			$offset = $_POST['offset'];
-
-		// Get attachments with a title alike the search string, needs to be filtered
-		add_filter('posts_where', array(__CLASS__, 'printSearchResultsWhereFilter'));
-		$attachments = get_posts(array(
-			'numberposts' => $numberPosts + 1,
-			'offset' => $offset,
-			'orderby' => 'post_date',
-			'order' => 'DESC',
-			'post_type' => 'attachment',
-			'suppress_filters' => false
-		));
-		remove_filter('posts_where', array(__CLASS__, 'printSearchResultsWhereFilter'));
-
-		// Check if there are enough attachments to print a 'Load more images' button
-		$loadMoreResults = false;
-		if(count($attachments) > $numberPosts){
-			array_pop($attachments);
-			$loadMoreResults = true;
-		}
-
-		// Print results to the screen
-		if(count($attachments) > 0){
-			foreach($attachments as $attachment){
-				$image = wp_get_attachment_image_src($attachment->ID);
-				if(!$image[3]) $image[0] = SlideshowPluginMain::getPluginUrl() . '/images/SlideshowPluginPostType/no-img.png';
-				echo '<tr valign="top">
-					<td class="image">
-						<img width="60" height="60" src="' . $image[0] . '" class="attachment" alt="' . $attachment->post_title . '" title="' . $attachment->post_title . '">
-					</td>
-					<td class="column-title">
-						<strong class="title">
-							' . $attachment->post_title . '
-						</strong>
-						<p class="description">' . $attachment->post_content . '</p>
-					</td>
-					<td class="insert-button">
-						<input
-							type="button"
-							id="' . $attachment->ID . '"
-							class="insert-attachment button-secondary"
-							value="' . __('Insert', 'slideshow-plugin') . '"
-						/>
-					</td>
-				</tr>';
-			}
-			if($loadMoreResults){
-				echo '<tr>
-					<td colspan="3" style="text-align: center;">
-						<button class="button-secondary load-more-results ' . ($offset + $numberPosts) . '" >
-							' . __('Load more results', 'slideshow-plugin') . '
-						</button>
-					</td>
-				</tr>';
-			}
-		} else {
-			echo '<tr>
-				<td colspan="3" style="text-align: center;">
-					<a href="' . admin_url() . 'media-new.php" target="_blank">
-						' . __('No images were found, click here to upload some.', 'slideshow-plugin') . '
-					</a>
-				</td>
-			</tr>';
-		}
-
-		die;
-	}
-
-	/**
-	 * Applies a where clause on the get_posts call from self::printSearchResults()
-	 *
-	 * @param string $where
-	 * @return string $where
-	 */
-	static function printSearchResultsWhereFilter($where){
-		global $wpdb;
-
-		if(isset($_POST['search']))
-			$where .= $wpdb->prepare(
-				" AND (post_title LIKE '%%%s%%' OR ID LIKE '%%%s%%') ",
-				$_POST['search'],
-				$_POST['search']
-			);
-
-		return $where;
-	}
-
-	/**
-	 * Include popup, needs to be called in the footer
-	 */
-	static function includePopup(){
-		include(SlideshowPluginMain::getPluginPath() . '/views/' . __CLASS__ . '/search-popup.php');
-	}
-
-	/**
-	 * Enqueues styles and scripts necessary for the media upload button.
-	 */
-	static function enqueueFiles(){
-		// Check if already enqueued
-		if(self::$enqueuedFiles)
-			return;
-
-		// Enqueue style
-		wp_enqueue_style(
-			'slideshow-slide-inserter',
-			SlideshowPluginMain::getPluginUrl() . '/style/' . __CLASS__ . '/slide-inserter.css'
-		);
-
-		// Enqueue insert button script
-		wp_enqueue_script(
-			'slideshow-slide-inserter',
-			SlideshowPluginMain::getPluginUrl() . '/js/' . __CLASS__ . '/slide-inserter.js',
-			array('jquery')
-		);
-
-		wp_localize_script(
-			'slideshow-slide-inserter',
-			'SlideInserterTranslations',
-			array(
-				'confirmMessage' => __('Are you sure you want to delete this slide?', 'slideshow-plugin')
-			)
-		);
-
-		// Set enqueued to true
-		self::$enqueuedFiles = true;
-	}
-}
\ No newline at end of file
--- a/web/wp-content/plugins/slideshow-jquery-image-gallery/classes/SlideshowPluginUpload.php	Wed Dec 19 12:35:13 2012 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,51 +0,0 @@
-<?php
-/**
- * Class SlideshowPluginUpload provides the code for an upload button that can be used
- * anywhere on a website.
- *
- * @author: Stefan Boonstra
- * @version: 15-09-12
- */
-class SlideshowPluginUpload {
-
-	/**
-	 * Returns the html for showing the upload button.
-	 * Enqueues scripts unless $enqueueFiles is set to false.
-	 *
-	 * @param boolean $enqueueFiles
-	 * @return String $button
-	 */
-	static function getUploadButton($enqueueFiles = true){
-		if($enqueueFiles)
-			self::enqueueFiles();
-
-		// Return button html
-		ob_start();
-		include(SlideshowPluginMain::getPluginPath() . '/views/' . __CLASS__ . '/upload-button.php');
-		return ob_get_clean();
-	}
-
-	/**
-	 * Enqueues styles and scripts necessary for the media upload button.
-	 */
-	static function enqueueFiles(){
-		// Enqueue styles
-		wp_enqueue_style('thickbox');
-
-		// Enqueue Wordpress scripts
-		wp_enqueue_script('media-upload', false, array(), false, true);
-		wp_enqueue_script('thickbox', false, array(), false, true);
-
-		// Enqueue slideshow upload button script
-		wp_enqueue_script(
-			'slideshow-upload-button',
-			SlideshowPluginMain::getPluginUrl() . '/js/' . __CLASS__ . '/upload-button.js',
-			array(
-				'jquery',
-				'media-upload',
-				'thickbox'),
-			false,
-			true
-		);
-	}
-}
\ No newline at end of file
--- a/web/wp-content/plugins/slideshow-jquery-image-gallery/classes/SlideshowPluginWidget.php	Wed Dec 19 12:35:13 2012 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,121 +0,0 @@
-<?php
-/**
- * Class SlideshowPluginWidget allows showing one of your slideshows in your widget area.
- *
- * @author: Stefan Boonstra
- * @version: 04-10-12
- */
-class SlideshowPluginWidget extends WP_Widget {
-
-	/** Variables */
-	static $widgetName = 'Slideshow Widget';
-
-	/**
-	 * Initializes the widget
-	 */
-	function SlideshowPluginWidget(){
-		// Settings
-		$options = array(
-			'classname' => 'SlideshowWidget',
-			'description' => __('Enables you to show your slideshows in the widget area of your website.', 'slideshow-plugin')
-		);
-
-		// Create the widget.
-		$this->WP_Widget(
-			'slideshowWidget',
-			__('Slideshow Widget', 'slideshow-plugin'),
-			$options
-		);
-	}
-
-	/**
-	 * The widget as shown to the user.
-	 *
-	 * @param mixed array $args
-	 * @param mixed array $instance
-	 */
-	function widget($args, $instance){
-		// Get slideshowId
-		$slideshowId = '';
-		if(isset($instance['slideshowId']))
-			$slideshowId = $instance['slideshowId'];
-
-		// Get title
-		$title = '';
-		if(isset($instance['title']))
-			$title = $instance['title'];
-
-		// Prepare slideshow for output to website.
-		$output = SlideshowPlugin::prepare($slideshowId);
-
-		$beforeWidget = $afterWidget = $beforeTitle = $afterTitle = '';
-		if(isset($args['before_widget']))
-			$beforeWidget = $args['before_widget'];
-		if(isset($args['after_widget']))
-			$afterWidget = $args['after_widget'];
-		if(isset($args['before_title']))
-			$beforeTitle = $args['before_title'];
-		if(isset($args['after_title']))
-			$afterTitle = $args['after_title'];
-
-		// Output widget
-		echo $beforeWidget .
-			$beforeTitle . $title . $afterTitle .
-			$output .
-		$afterWidget;
-	}
-
-	/**
-	 * The form shown on the admins widget page. Here settings can be changed.
-	 *
-	 * @param mixed array $instance
-	 * @return string
-	 */
-	function form($instance){
-		// Defaults
-		$defaults = array(
-			'title' => __(self::$widgetName, 'slideshow-plugin'),
-			'slideshowId' => -1
-		);
-
-		// Merge database settings with defaults
-		$instance = wp_parse_args((array) $instance, $defaults);
-
-		// Get slideshows
-		$slideshows = get_posts(array(
-			'numberposts' => -1,
-			'offset' => 0,
-			'post_type' => SlideshowPluginPostType::$postType
-		));
-
-		// Include form
-		include(SlideshowPluginMain::getPluginPath() . '/views/' . __CLASS__ . '/form.php');
-	}
-
-	/**
-	 * Updates widget's settings.
-	 *
-	 * @param mixed array $newInstance
-	 * @param mixed array $instance
-	 * @return mixed array $instance
-	 */
-	function update($newInstance, $instance){
-		// Update title
-		if(isset($newInstance['title']))
-			$instance['title'] = $newInstance['title'];
-
-		// Update slideshowId
-		if(isset($newInstance['slideshowId']) && !empty($newInstance['slideshowId']))
-			$instance['slideshowId'] = $newInstance['slideshowId'];
-
-		// Save
-		return $instance;
-	}
-
-	/**
-	 * Registers this widget (should be called upon widget_init action hook)
-	 */
-	static function registerWidget(){
-		register_widget(__CLASS__);
-	}
-}
\ No newline at end of file
Binary file web/wp-content/plugins/slideshow-jquery-image-gallery/images/SlideshowPlugin/dark-arrows.png has changed
Binary file web/wp-content/plugins/slideshow-jquery-image-gallery/images/SlideshowPlugin/dark-controlpanel.png has changed
Binary file web/wp-content/plugins/slideshow-jquery-image-gallery/images/SlideshowPlugin/light-arrows.png has changed
Binary file web/wp-content/plugins/slideshow-jquery-image-gallery/images/SlideshowPlugin/light-controlpanel.png has changed
Binary file web/wp-content/plugins/slideshow-jquery-image-gallery/images/SlideshowPluginPostType/adminIcon.png has changed
Binary file web/wp-content/plugins/slideshow-jquery-image-gallery/images/SlideshowPluginPostType/delete.png has changed
Binary file web/wp-content/plugins/slideshow-jquery-image-gallery/images/SlideshowPluginPostType/draggable.png has changed
Binary file web/wp-content/plugins/slideshow-jquery-image-gallery/images/SlideshowPluginPostType/no-img.png has changed
Binary file web/wp-content/plugins/slideshow-jquery-image-gallery/images/SlideshowPluginSlideInserter/close.png has changed
Binary file web/wp-content/plugins/slideshow-jquery-image-gallery/images/adminIcon.png has changed
Binary file web/wp-content/plugins/slideshow-jquery-image-gallery/images/button-next.png has changed
Binary file web/wp-content/plugins/slideshow-jquery-image-gallery/images/button-previous.png has changed
Binary file web/wp-content/plugins/slideshow-jquery-image-gallery/images/no-img.png has changed
--- a/web/wp-content/plugins/slideshow-jquery-image-gallery/js/SlideshowPlugin/slideshow.js	Wed Dec 19 12:35:13 2012 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-jQuery.fn.slideshow_script=function(){var $container=jQuery(this),$overflow=$container.find('.slideshow_overflow'),$controlPanel=$container.find('.controlPanel'),$togglePlayButton=$controlPanel.find('.togglePlay'),$nextButton=$container.find('.next'),$previousButton=$container.find('.previous'),$slideshow=$container.find('.slideshow'),$slides=$slideshow.find('.slide');var $settings=jQuery.parseJSON($container.find('.settings').text());jQuery.each($settings,function(setting,value){if(value=='true')$settings[setting]=true;else if(value=='false')$settings[setting]=false});if($container.width()<=0){var parentElement=$container.parent();if(parentElement.width()<=0)$container.css('width',parentElement.closest('div').width());else $container.css('width',parentElement.width())}$overflow.css('width',$container.width());var $numberSlidesVisible=3,$buttonsActive=false,$interval='',$currentSlideId=0,$currentViewId=0,$slideWidth=$container.width()/$settings['slidesPerView'];init();function init(){var slidePosition=0;var totalWidth=1000;jQuery.each($slides,function(key,slide){if(slidePosition<=0)jQuery(slide).css({'padding-left':0,'margin-left':0});if(slidePosition>=$settings['slidesPerView']-1)jQuery(slide).css({'padding-right':0,'margin-right':0});var slideWidth=$slideWidth-(jQuery(slide).outerWidth(true)-jQuery(slide).width());jQuery(slide).css({width:slideWidth});totalWidth+=jQuery(slide).outerWidth(true);var image=jQuery(slide).find('img');if(image.attr('src')!=undefined){if($settings['stretchImages']){image.attr({width:jQuery(slide).width(),height:jQuery(slide).height()})}else{image.css('width','auto')}}var description=jQuery(slide).find('.description');if($settings['showDescription']&&description.attr('class')!=undefined){if($settings['hideDescription'])description.css({marginBottom:'-'+description.outerHeight(true)+'px'});else description.css({height:$settings['descriptionHeight']});description.css({display:'block'})}var videoSlideIds=jQuery(slide).find('.videoId').text().split(' ');var videoId=videoSlideIds[0];var elementVideoId=videoSlideIds[1];if(videoId&&elementVideoId){swfobject.embedSWF('http://www.youtube.com/v/'+videoId+'?version=3&enablejsapi=1&playerapiid=player',elementVideoId,jQuery(slide).width(),jQuery(slide).height(),'9',null,null,{allowScriptAccess:'always',wmode:'opaque'},{id:elementVideoId})}slidePosition++;if(slidePosition>=$settings['slidesPerView'])slidePosition=0});$slideshow.css({width:totalWidth,float:'none',position:'absolute',top:0,left:0});if($settings['controlPanel']&&$settings['play'])togglePlay(true);resetInterval();if($settings['controllable']){setNextButtonVisible(true);setPreviousButtonVisible(true);$buttonsActive=true}}function gotoView(viewId,relative){if(relative)viewId=$currentViewId+viewId;if(viewId*$settings['slidesPerView']>=$slides.length){if($settings['loop']){viewId=0}else{viewId=Math.floor(($slides.length-1)/$settings['slidesPerView']);return}}else if(viewId<0){if($settings['loop']){viewId=Math.floor(($slides.length-1)/$settings['slidesPerView'])}else{viewId=0;return}}$currentViewId=viewId;var position=0;var slidePosition=$slideshow.find('.slide_'+(viewId*$settings['slidesPerView'])).position();if(slidePosition)position=slidePosition.left-Math.abs($slideshow.position().left);$buttonsActive=false;if($settings['animation']=='fade'){$slideshow.fadeOut(parseInt($settings['slideSpeed']*1000)/2);setTimeout(function(){$slideshow.animate({left:'-='+position},0);$slideshow.fadeIn(parseInt($settings['slideSpeed']*1000)/ 2)}, parseInt($settings['slideSpeed'] * 1000) /2)}else{$slideshow.animate({left:'-='+position},parseInt($settings['slideSpeed']*1000))}setTimeout(function(){$buttonsActive=true},parseInt($settings['slideSpeed']*1000))}$nextButton.click(function(){if($buttonsActive){resetInterval();gotoView(1,true)}});$previousButton.click(function(){if($buttonsActive){resetInterval();gotoView(-1,true)}});function setNextButtonVisible(visible){if(!$settings['controllable'])return;if(visible)$nextButton.stop(true,true).fadeIn($settings['slideSpeed']);else $nextButton.stop(true,true).fadeOut($settings['slideSpeed'])}function setPreviousButtonVisible(visible){if(!$settings['controllable'])return;if(visible)$previousButton.stop(true,true).fadeIn($settings['slideSpeed']);else $previousButton.stop(true,true).fadeOut($settings['slideSpeed'])}$togglePlayButton.click(function(){togglePlay()});function togglePlay(adaptButton){if(!adaptButton){$settings['play']=!$settings['play'];resetInterval()}if($settings['play'])$togglePlayButton.attr('class','pause');else $togglePlayButton.attr('class','play')}$container.mouseleave(function(){$controlPanel.stop(true,true).fadeOut('slow')});$container.mouseenter(function(){if($settings['controlPanel'])$controlPanel.stop(true,true).fadeIn('fast')});$slides.mouseenter(function(){if($settings['showDescription']&&$settings['hideDescription'])jQuery(this).find('.description').stop(true,true).animate({'margin-bottom':'0px'},parseInt($settings['descriptionSpeed']*1000))});$slides.mouseleave(function(){if($settings['showDescription']&&$settings['hideDescription']){var description=jQuery(this).find('.description');description.stop(true,true).animate({'margin-bottom':'-'+description.outerHeight(true)+'px'},parseInt($settings['descriptionSpeed']*1000))}});function resetInterval(){clearInterval($interval);if($settings['play'])$interval=setInterval(function(){gotoView(1,true)},$settings['intervalSpeed']*1000)}jQuery(window).load(function(){jQuery.each($slides,function(key,slide){var image=jQuery(slide).find('img');if(image.attr('src')!=undefined){var imageWidth=jQuery(slide).width()-(image.outerWidth(true)-image.width());var imageHeight=jQuery(slide).height()-(image.outerHeight(true)-image.height());if($settings['stretchImages']){image.css({width:imageWidth,height:imageHeight})}else{if(image.outerWidth(true)>jQuery(slide).width()){image.css({width:imageWidth,height:'auto'})}else if(image.outerHeight(true)>jQuery(slide).height()){image.css({width:'auto',height:imageHeight})}}}})})};jQuery(document).ready(function(){jQuery.each(jQuery('.slideshow_container'),function(key,value){jQuery(value).slideshow_script()})});
\ No newline at end of file
--- a/web/wp-content/plugins/slideshow-jquery-image-gallery/js/SlideshowPlugin/swfobject.js	Wed Dec 19 12:35:13 2012 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,4 +0,0 @@
-/*	SWFObject v2.2 <http://code.google.com/p/swfobject/> 
-	is released under the MIT License <http://www.opensource.org/licenses/mit-license.php> 
-*/
-var swfobject=function(){var D="undefined",r="object",S="Shockwave Flash",W="ShockwaveFlash.ShockwaveFlash",q="application/x-shockwave-flash",R="SWFObjectExprInst",x="onreadystatechange",O=window,j=document,t=navigator,T=false,U=[h],o=[],N=[],I=[],l,Q,E,B,J=false,a=false,n,G,m=true,M=function(){var aa=typeof j.getElementById!=D&&typeof j.getElementsByTagName!=D&&typeof j.createElement!=D,ah=t.userAgent.toLowerCase(),Y=t.platform.toLowerCase(),ae=Y?/win/.test(Y):/win/.test(ah),ac=Y?/mac/.test(Y):/mac/.test(ah),af=/webkit/.test(ah)?parseFloat(ah.replace(/^.*webkit\/(\d+(\.\d+)?).*$/,"$1")):false,X=!+"\v1",ag=[0,0,0],ab=null;if(typeof t.plugins!=D&&typeof t.plugins[S]==r){ab=t.plugins[S].description;if(ab&&!(typeof t.mimeTypes!=D&&t.mimeTypes[q]&&!t.mimeTypes[q].enabledPlugin)){T=true;X=false;ab=ab.replace(/^.*\s+(\S+\s+\S+$)/,"$1");ag[0]=parseInt(ab.replace(/^(.*)\..*$/,"$1"),10);ag[1]=parseInt(ab.replace(/^.*\.(.*)\s.*$/,"$1"),10);ag[2]=/[a-zA-Z]/.test(ab)?parseInt(ab.replace(/^.*[a-zA-Z]+(.*)$/,"$1"),10):0}}else{if(typeof O.ActiveXObject!=D){try{var ad=new ActiveXObject(W);if(ad){ab=ad.GetVariable("$version");if(ab){X=true;ab=ab.split(" ")[1].split(",");ag=[parseInt(ab[0],10),parseInt(ab[1],10),parseInt(ab[2],10)]}}}catch(Z){}}}return{w3:aa,pv:ag,wk:af,ie:X,win:ae,mac:ac}}(),k=function(){if(!M.w3){return}if((typeof j.readyState!=D&&j.readyState=="complete")||(typeof j.readyState==D&&(j.getElementsByTagName("body")[0]||j.body))){f()}if(!J){if(typeof j.addEventListener!=D){j.addEventListener("DOMContentLoaded",f,false)}if(M.ie&&M.win){j.attachEvent(x,function(){if(j.readyState=="complete"){j.detachEvent(x,arguments.callee);f()}});if(O==top){(function(){if(J){return}try{j.documentElement.doScroll("left")}catch(X){setTimeout(arguments.callee,0);return}f()})()}}if(M.wk){(function(){if(J){return}if(!/loaded|complete/.test(j.readyState)){setTimeout(arguments.callee,0);return}f()})()}s(f)}}();function f(){if(J){return}try{var Z=j.getElementsByTagName("body")[0].appendChild(C("span"));Z.parentNode.removeChild(Z)}catch(aa){return}J=true;var X=U.length;for(var Y=0;Y<X;Y++){U[Y]()}}function K(X){if(J){X()}else{U[U.length]=X}}function s(Y){if(typeof O.addEventListener!=D){O.addEventListener("load",Y,false)}else{if(typeof j.addEventListener!=D){j.addEventListener("load",Y,false)}else{if(typeof O.attachEvent!=D){i(O,"onload",Y)}else{if(typeof O.onload=="function"){var X=O.onload;O.onload=function(){X();Y()}}else{O.onload=Y}}}}}function h(){if(T){V()}else{H()}}function V(){var X=j.getElementsByTagName("body")[0];var aa=C(r);aa.setAttribute("type",q);var Z=X.appendChild(aa);if(Z){var Y=0;(function(){if(typeof Z.GetVariable!=D){var ab=Z.GetVariable("$version");if(ab){ab=ab.split(" ")[1].split(",");M.pv=[parseInt(ab[0],10),parseInt(ab[1],10),parseInt(ab[2],10)]}}else{if(Y<10){Y++;setTimeout(arguments.callee,10);return}}X.removeChild(aa);Z=null;H()})()}else{H()}}function H(){var ag=o.length;if(ag>0){for(var af=0;af<ag;af++){var Y=o[af].id;var ab=o[af].callbackFn;var aa={success:false,id:Y};if(M.pv[0]>0){var ae=c(Y);if(ae){if(F(o[af].swfVersion)&&!(M.wk&&M.wk<312)){w(Y,true);if(ab){aa.success=true;aa.ref=z(Y);ab(aa)}}else{if(o[af].expressInstall&&A()){var ai={};ai.data=o[af].expressInstall;ai.width=ae.getAttribute("width")||"0";ai.height=ae.getAttribute("height")||"0";if(ae.getAttribute("class")){ai.styleclass=ae.getAttribute("class")}if(ae.getAttribute("align")){ai.align=ae.getAttribute("align")}var ah={};var X=ae.getElementsByTagName("param");var ac=X.length;for(var ad=0;ad<ac;ad++){if(X[ad].getAttribute("name").toLowerCase()!="movie"){ah[X[ad].getAttribute("name")]=X[ad].getAttribute("value")}}P(ai,ah,Y,ab)}else{p(ae);if(ab){ab(aa)}}}}}else{w(Y,true);if(ab){var Z=z(Y);if(Z&&typeof Z.SetVariable!=D){aa.success=true;aa.ref=Z}ab(aa)}}}}}function z(aa){var X=null;var Y=c(aa);if(Y&&Y.nodeName=="OBJECT"){if(typeof Y.SetVariable!=D){X=Y}else{var Z=Y.getElementsByTagName(r)[0];if(Z){X=Z}}}return X}function A(){return !a&&F("6.0.65")&&(M.win||M.mac)&&!(M.wk&&M.wk<312)}function P(aa,ab,X,Z){a=true;E=Z||null;B={success:false,id:X};var ae=c(X);if(ae){if(ae.nodeName=="OBJECT"){l=g(ae);Q=null}else{l=ae;Q=X}aa.id=R;if(typeof aa.width==D||(!/%$/.test(aa.width)&&parseInt(aa.width,10)<310)){aa.width="310"}if(typeof aa.height==D||(!/%$/.test(aa.height)&&parseInt(aa.height,10)<137)){aa.height="137"}j.title=j.title.slice(0,47)+" - Flash Player Installation";var ad=M.ie&&M.win?"ActiveX":"PlugIn",ac="MMredirectURL="+O.location.toString().replace(/&/g,"%26")+"&MMplayerType="+ad+"&MMdoctitle="+j.title;if(typeof ab.flashvars!=D){ab.flashvars+="&"+ac}else{ab.flashvars=ac}if(M.ie&&M.win&&ae.readyState!=4){var Y=C("div");X+="SWFObjectNew";Y.setAttribute("id",X);ae.parentNode.insertBefore(Y,ae);ae.style.display="none";(function(){if(ae.readyState==4){ae.parentNode.removeChild(ae)}else{setTimeout(arguments.callee,10)}})()}u(aa,ab,X)}}function p(Y){if(M.ie&&M.win&&Y.readyState!=4){var X=C("div");Y.parentNode.insertBefore(X,Y);X.parentNode.replaceChild(g(Y),X);Y.style.display="none";(function(){if(Y.readyState==4){Y.parentNode.removeChild(Y)}else{setTimeout(arguments.callee,10)}})()}else{Y.parentNode.replaceChild(g(Y),Y)}}function g(ab){var aa=C("div");if(M.win&&M.ie){aa.innerHTML=ab.innerHTML}else{var Y=ab.getElementsByTagName(r)[0];if(Y){var ad=Y.childNodes;if(ad){var X=ad.length;for(var Z=0;Z<X;Z++){if(!(ad[Z].nodeType==1&&ad[Z].nodeName=="PARAM")&&!(ad[Z].nodeType==8)){aa.appendChild(ad[Z].cloneNode(true))}}}}}return aa}function u(ai,ag,Y){var X,aa=c(Y);if(M.wk&&M.wk<312){return X}if(aa){if(typeof ai.id==D){ai.id=Y}if(M.ie&&M.win){var ah="";for(var ae in ai){if(ai[ae]!=Object.prototype[ae]){if(ae.toLowerCase()=="data"){ag.movie=ai[ae]}else{if(ae.toLowerCase()=="styleclass"){ah+=' class="'+ai[ae]+'"'}else{if(ae.toLowerCase()!="classid"){ah+=" "+ae+'="'+ai[ae]+'"'}}}}}var af="";for(var ad in ag){if(ag[ad]!=Object.prototype[ad]){af+='<param name="'+ad+'" value="'+ag[ad]+'" />'}}aa.outerHTML='<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"'+ah+">"+af+"</object>";N[N.length]=ai.id;X=c(ai.id)}else{var Z=C(r);Z.setAttribute("type",q);for(var ac in ai){if(ai[ac]!=Object.prototype[ac]){if(ac.toLowerCase()=="styleclass"){Z.setAttribute("class",ai[ac])}else{if(ac.toLowerCase()!="classid"){Z.setAttribute(ac,ai[ac])}}}}for(var ab in ag){if(ag[ab]!=Object.prototype[ab]&&ab.toLowerCase()!="movie"){e(Z,ab,ag[ab])}}aa.parentNode.replaceChild(Z,aa);X=Z}}return X}function e(Z,X,Y){var aa=C("param");aa.setAttribute("name",X);aa.setAttribute("value",Y);Z.appendChild(aa)}function y(Y){var X=c(Y);if(X&&X.nodeName=="OBJECT"){if(M.ie&&M.win){X.style.display="none";(function(){if(X.readyState==4){b(Y)}else{setTimeout(arguments.callee,10)}})()}else{X.parentNode.removeChild(X)}}}function b(Z){var Y=c(Z);if(Y){for(var X in Y){if(typeof Y[X]=="function"){Y[X]=null}}Y.parentNode.removeChild(Y)}}function c(Z){var X=null;try{X=j.getElementById(Z)}catch(Y){}return X}function C(X){return j.createElement(X)}function i(Z,X,Y){Z.attachEvent(X,Y);I[I.length]=[Z,X,Y]}function F(Z){var Y=M.pv,X=Z.split(".");X[0]=parseInt(X[0],10);X[1]=parseInt(X[1],10)||0;X[2]=parseInt(X[2],10)||0;return(Y[0]>X[0]||(Y[0]==X[0]&&Y[1]>X[1])||(Y[0]==X[0]&&Y[1]==X[1]&&Y[2]>=X[2]))?true:false}function v(ac,Y,ad,ab){if(M.ie&&M.mac){return}var aa=j.getElementsByTagName("head")[0];if(!aa){return}var X=(ad&&typeof ad=="string")?ad:"screen";if(ab){n=null;G=null}if(!n||G!=X){var Z=C("style");Z.setAttribute("type","text/css");Z.setAttribute("media",X);n=aa.appendChild(Z);if(M.ie&&M.win&&typeof j.styleSheets!=D&&j.styleSheets.length>0){n=j.styleSheets[j.styleSheets.length-1]}G=X}if(M.ie&&M.win){if(n&&typeof n.addRule==r){n.addRule(ac,Y)}}else{if(n&&typeof j.createTextNode!=D){n.appendChild(j.createTextNode(ac+" {"+Y+"}"))}}}function w(Z,X){if(!m){return}var Y=X?"visible":"hidden";if(J&&c(Z)){c(Z).style.visibility=Y}else{v("#"+Z,"visibility:"+Y)}}function L(Y){var Z=/[\\\"<>\.;]/;var X=Z.exec(Y)!=null;return X&&typeof encodeURIComponent!=D?encodeURIComponent(Y):Y}var d=function(){if(M.ie&&M.win){window.attachEvent("onunload",function(){var ac=I.length;for(var ab=0;ab<ac;ab++){I[ab][0].detachEvent(I[ab][1],I[ab][2])}var Z=N.length;for(var aa=0;aa<Z;aa++){y(N[aa])}for(var Y in M){M[Y]=null}M=null;for(var X in swfobject){swfobject[X]=null}swfobject=null})}}();return{registerObject:function(ab,X,aa,Z){if(M.w3&&ab&&X){var Y={};Y.id=ab;Y.swfVersion=X;Y.expressInstall=aa;Y.callbackFn=Z;o[o.length]=Y;w(ab,false)}else{if(Z){Z({success:false,id:ab})}}},getObjectById:function(X){if(M.w3){return z(X)}},embedSWF:function(ab,ah,ae,ag,Y,aa,Z,ad,af,ac){var X={success:false,id:ah};if(M.w3&&!(M.wk&&M.wk<312)&&ab&&ah&&ae&&ag&&Y){w(ah,false);K(function(){ae+="";ag+="";var aj={};if(af&&typeof af===r){for(var al in af){aj[al]=af[al]}}aj.data=ab;aj.width=ae;aj.height=ag;var am={};if(ad&&typeof ad===r){for(var ak in ad){am[ak]=ad[ak]}}if(Z&&typeof Z===r){for(var ai in Z){if(typeof am.flashvars!=D){am.flashvars+="&"+ai+"="+Z[ai]}else{am.flashvars=ai+"="+Z[ai]}}}if(F(Y)){var an=u(aj,am,ah);if(aj.id==ah){w(ah,true)}X.success=true;X.ref=an}else{if(aa&&A()){aj.data=aa;P(aj,am,ah,ac);return}else{w(ah,true)}}if(ac){ac(X)}})}else{if(ac){ac(X)}}},switchOffAutoHideShow:function(){m=false},ua:M,getFlashPlayerVersion:function(){return{major:M.pv[0],minor:M.pv[1],release:M.pv[2]}},hasFlashPlayerVersion:F,createSWF:function(Z,Y,X){if(M.w3){return u(Z,Y,X)}else{return undefined}},showExpressInstall:function(Z,aa,X,Y){if(M.w3&&A()){P(Z,aa,X,Y)}},removeSWF:function(X){if(M.w3){y(X)}},createCSS:function(aa,Z,Y,X){if(M.w3){v(aa,Z,Y,X)}},addDomLoadEvent:K,addLoadEvent:s,getQueryParamValue:function(aa){var Z=j.location.search||j.location.hash;if(Z){if(/\?/.test(Z)){Z=Z.split("?")[1]}if(aa==null){return L(Z)}var Y=Z.split("&");for(var X=0;X<Y.length;X++){if(Y[X].substring(0,Y[X].indexOf("="))==aa){return L(Y[X].substring((Y[X].indexOf("=")+1)))}}}return""},expressInstallCallback:function(){if(a){var X=c(R);if(X&&l){X.parentNode.replaceChild(l,X);if(Q){w(Q,true);if(M.ie&&M.win){l.style.display="block"}}if(E){E(B)}}a=false}}}}();
\ No newline at end of file
--- a/web/wp-content/plugins/slideshow-jquery-image-gallery/js/SlideshowPluginFeedback/feedback.js	Wed Dec 19 12:35:13 2012 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,12 +0,0 @@
-jQuery(document).ready(function(){
-	jQuery.ajax({
-		url: slideshowFeedbackVariables['address'],
-		dataType: 'jsonp',
-		data: {
-			method: slideshowFeedbackVariables['method'],
-			access: slideshowFeedbackVariables['access'],
-			host: slideshowFeedbackVariables['host'],
-			version: slideshowFeedbackVariables['version']
-		}
-	});
-});
\ No newline at end of file
Binary file web/wp-content/plugins/slideshow-jquery-image-gallery/js/SlideshowPluginPostType/jscolor/arrow.gif has changed
Binary file web/wp-content/plugins/slideshow-jquery-image-gallery/js/SlideshowPluginPostType/jscolor/cross.gif has changed
Binary file web/wp-content/plugins/slideshow-jquery-image-gallery/js/SlideshowPluginPostType/jscolor/hs.png has changed
Binary file web/wp-content/plugins/slideshow-jquery-image-gallery/js/SlideshowPluginPostType/jscolor/hv.png has changed
--- a/web/wp-content/plugins/slideshow-jquery-image-gallery/js/SlideshowPluginPostType/jscolor/jscolor.js	Wed Dec 19 12:35:13 2012 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-var jscolor={dir:'',bindClass:'color',binding:true,preloading:true,install:function(){jscolor.addEvent(window,'load',jscolor.init)},init:function(){if(jscolor.binding){jscolor.bind()}if(jscolor.preloading){jscolor.preload()}},getDir:function(){if(!jscolor.dir){var detected=jscolor.detectDir();jscolor.dir=detected!==false?detected:'jscolor/'}return jscolor.dir},detectDir:function(){var base=location.href;var e=document.getElementsByTagName('base');for(var i=0;i<e.length;i+=1){if(e[i].href){base=e[i].href}}var e=document.getElementsByTagName('script');for(var i=0;i<e.length;i+=1){if(e[i].src&&/(^|\/)jscolor\.js([?#].*)?$/i.test(e[i].src)){var src=new jscolor.URI(e[i].src);var srcAbs=src.toAbsolute(base);srcAbs.path=srcAbs.path.replace(/[^\/]+$/,'');srcAbs.query=null;srcAbs.fragment=null;return srcAbs.toString()}}return false},bind:function(){var matchClass=new RegExp('(^|\\s)('+jscolor.bindClass+')\\s*(\\{[^}]*\\})?','i');var e=document.getElementsByTagName('input');for(var i=0;i<e.length;i+=1){var m;if(!e[i].color&&e[i].className&&(m=e[i].className.match(matchClass))){var prop={};if(m[3]){try{prop=(new Function('return ('+m[3]+')'))()}catch(eInvalidProp){}}e[i].color=new jscolor.color(e[i],prop)}}},preload:function(){for(var fn in jscolor.imgRequire){if(jscolor.imgRequire.hasOwnProperty(fn)){jscolor.loadImage(fn)}}},images:{pad:[181,101],sld:[16,101],cross:[15,15],arrow:[7,11]},imgRequire:{},imgLoaded:{},requireImage:function(filename){jscolor.imgRequire[filename]=true},loadImage:function(filename){if(!jscolor.imgLoaded[filename]){jscolor.imgLoaded[filename]=new Image();jscolor.imgLoaded[filename].src=jscolor.getDir()+filename}},fetchElement:function(mixed){return typeof mixed==='string'?document.getElementById(mixed):mixed},addEvent:function(el,evnt,func){if(el.addEventListener){el.addEventListener(evnt,func,false)}else if(el.attachEvent){el.attachEvent('on'+evnt,func)}},fireEvent:function(el,evnt){if(!el){return}if(document.createEvent){var ev=document.createEvent('HTMLEvents');ev.initEvent(evnt,true,true);el.dispatchEvent(ev)}else if(document.createEventObject){var ev=document.createEventObject();el.fireEvent('on'+evnt,ev)}else if(el['on'+evnt]){el['on'+evnt]()}},getElementPos:function(e){var e1=e,e2=e;var x=0,y=0;if(e1.offsetParent){do{x+=e1.offsetLeft;y+=e1.offsetTop}while(e1=e1.offsetParent)}while((e2=e2.parentNode)&&e2.nodeName.toUpperCase()!=='BODY'){x-=e2.scrollLeft;y-=e2.scrollTop}return[x,y]},getElementSize:function(e){return[e.offsetWidth,e.offsetHeight]},getRelMousePos:function(e){var x=0,y=0;if(!e){e=window.event}if(typeof e.offsetX==='number'){x=e.offsetX;y=e.offsetY}else if(typeof e.layerX==='number'){x=e.layerX;y=e.layerY}return{x:x,y:y}},getViewPos:function(){if(typeof window.pageYOffset==='number'){return[window.pageXOffset,window.pageYOffset]}else if(document.body&&(document.body.scrollLeft||document.body.scrollTop)){return[document.body.scrollLeft,document.body.scrollTop]}else if(document.documentElement&&(document.documentElement.scrollLeft||document.documentElement.scrollTop)){return[document.documentElement.scrollLeft,document.documentElement.scrollTop]}else{return[0,0]}},getViewSize:function(){if(typeof window.innerWidth==='number'){return[window.innerWidth,window.innerHeight]}else if(document.body&&(document.body.clientWidth||document.body.clientHeight)){return[document.body.clientWidth,document.body.clientHeight]}else if(document.documentElement&&(document.documentElement.clientWidth||document.documentElement.clientHeight)){return[document.documentElement.clientWidth,document.documentElement.clientHeight]}else{return[0,0]}},URI:function(uri){this.scheme=null;this.authority=null;this.path='';this.query=null;this.fragment=null;this.parse=function(uri){var m=uri.match(/^(([A-Za-z][0-9A-Za-z+.-]*)(:))?((\/\/)([^\/?#]*))?([^?#]*)((\?)([^#]*))?((#)(.*))?/);this.scheme=m[3]?m[2]:null;this.authority=m[5]?m[6]:null;this.path=m[7];this.query=m[9]?m[10]:null;this.fragment=m[12]?m[13]:null;return this};this.toString=function(){var result='';if(this.scheme!==null){result=result+this.scheme+':'}if(this.authority!==null){result=result+'//'+this.authority}if(this.path!==null){result=result+this.path}if(this.query!==null){result=result+'?'+this.query}if(this.fragment!==null){result=result+'#'+this.fragment}return result};this.toAbsolute=function(base){var base=new jscolor.URI(base);var r=this;var t=new jscolor.URI;if(base.scheme===null){return false}if(r.scheme!==null&&r.scheme.toLowerCase()===base.scheme.toLowerCase()){r.scheme=null}if(r.scheme!==null){t.scheme=r.scheme;t.authority=r.authority;t.path=removeDotSegments(r.path);t.query=r.query}else{if(r.authority!==null){t.authority=r.authority;t.path=removeDotSegments(r.path);t.query=r.query}else{if(r.path===''){t.path=base.path;if(r.query!==null){t.query=r.query}else{t.query=base.query}}else{if(r.path.substr(0,1)==='/'){t.path=removeDotSegments(r.path)}else{if(base.authority!==null&&base.path===''){t.path='/'+r.path}else{t.path=base.path.replace(/[^\/]+$/,'')+r.path}t.path=removeDotSegments(t.path)}t.query=r.query}t.authority=base.authority}t.scheme=base.scheme}t.fragment=r.fragment;return t};function removeDotSegments(path){var out='';while(path){if(path.substr(0,3)==='../'||path.substr(0,2)==='./'){path=path.replace(/^\.+/,'').substr(1)}else if(path.substr(0,3)==='/./'||path==='/.'){path='/'+path.substr(3)}else if(path.substr(0,4)==='/../'||path==='/..'){path='/'+path.substr(4);out=out.replace(/\/?[^\/]*$/,'')}else if(path==='.'||path==='..'){path=''}else{var rm=path.match(/^\/?[^\/]*/)[0];path=path.substr(rm.length);out=out+rm}}return out}if(uri){this.parse(uri)}},color:function(target,prop){this.required=true;this.adjust=true;this.hash=false;this.caps=true;this.slider=true;this.valueElement=target;this.styleElement=target;this.onImmediateChange=null;this.hsv=[0,0,1];this.rgb=[1,1,1];this.minH=0;this.maxH=6;this.minS=0;this.maxS=1;this.minV=0;this.maxV=1;this.pickerOnfocus=true;this.pickerMode='HSV';this.pickerPosition='bottom';this.pickerSmartPosition=true;this.pickerButtonHeight=20;this.pickerClosable=false;this.pickerCloseText='Close';this.pickerButtonColor='ButtonText';this.pickerFace=10;this.pickerFaceColor='ThreeDFace';this.pickerBorder=1;this.pickerBorderColor='ThreeDHighlight ThreeDShadow ThreeDShadow ThreeDHighlight';this.pickerInset=1;this.pickerInsetColor='ThreeDShadow ThreeDHighlight ThreeDHighlight ThreeDShadow';this.pickerZIndex=10000;for(var p in prop){if(prop.hasOwnProperty(p)){this[p]=prop[p]}}this.hidePicker=function(){if(isPickerOwner()){removePicker()}};this.showPicker=function(){if(!isPickerOwner()){var tp=jscolor.getElementPos(target);var ts=jscolor.getElementSize(target);var vp=jscolor.getViewPos();var vs=jscolor.getViewSize();var ps=getPickerDims(this);var a,b,c;switch(this.pickerPosition.toLowerCase()){case'left':a=1;b=0;c=-1;break;case'right':a=1;b=0;c=1;break;case'top':a=0;b=1;c=-1;break;default:a=0;b=1;c=1;break}var l=(ts[b]+ps[b])/2;if(!this.pickerSmartPosition){var pp=[tp[a],tp[b]+ts[b]-l+l*c]}else{var pp=[-vp[a]+tp[a]+ps[a]>vs[a]?(-vp[a]+tp[a]+ts[a]/2 > vs[a]/2&&tp[a]+ts[a]-ps[a]>=0?tp[a]+ts[a]-ps[a]:tp[a]):tp[a],-vp[b]+tp[b]+ts[b]+ps[b]-l+l*c>vs[b]?(-vp[b]+tp[b]+ts[b]/2 > vs[b]/2&&tp[b]+ts[b]-l-l*c>=0?tp[b]+ts[b]-l-l*c:tp[b]+ts[b]-l+l*c):(tp[b]+ts[b]-l+l*c>=0?tp[b]+ts[b]-l+l*c:tp[b]+ts[b]-l-l*c)]}drawPicker(pp[a],pp[b])}};this.importColor=function(){if(!valueElement){this.exportColor()}else{if(!this.adjust){if(!this.fromString(valueElement.value,leaveValue)){styleElement.style.backgroundImage=styleElement.jscStyle.backgroundImage;styleElement.style.backgroundColor=styleElement.jscStyle.backgroundColor;styleElement.style.color=styleElement.jscStyle.color;this.exportColor(leaveValue|leaveStyle)}}else if(!this.required&&/^\s*$/.test(valueElement.value)){valueElement.value='';styleElement.style.backgroundImage=styleElement.jscStyle.backgroundImage;styleElement.style.backgroundColor=styleElement.jscStyle.backgroundColor;styleElement.style.color=styleElement.jscStyle.color;this.exportColor(leaveValue|leaveStyle)}else if(this.fromString(valueElement.value)){}else{this.exportColor()}}};this.exportColor=function(flags){if(!(flags&leaveValue)&&valueElement){var value=this.toString();if(this.caps){value=value.toUpperCase()}if(this.hash){value='#'+value}valueElement.value=value}if(!(flags&leaveStyle)&&styleElement){styleElement.style.backgroundImage="none";styleElement.style.backgroundColor='#'+this.toString();styleElement.style.color=0.213*this.rgb[0]+0.715*this.rgb[1]+0.072*this.rgb[2]<0.5?'#FFF':'#000'}if(!(flags&leavePad)&&isPickerOwner()){redrawPad()}if(!(flags&leaveSld)&&isPickerOwner()){redrawSld()}};this.fromHSV=function(h,s,v,flags){if(h!==null){h=Math.max(0.0,this.minH,Math.min(6.0,this.maxH,h))}if(s!==null){s=Math.max(0.0,this.minS,Math.min(1.0,this.maxS,s))}if(v!==null){v=Math.max(0.0,this.minV,Math.min(1.0,this.maxV,v))}this.rgb=HSV_RGB(h===null?this.hsv[0]:(this.hsv[0]=h),s===null?this.hsv[1]:(this.hsv[1]=s),v===null?this.hsv[2]:(this.hsv[2]=v));this.exportColor(flags)};this.fromRGB=function(r,g,b,flags){if(r!==null){r=Math.max(0.0,Math.min(1.0,r))}if(g!==null){g=Math.max(0.0,Math.min(1.0,g))}if(b!==null){b=Math.max(0.0,Math.min(1.0,b))}var hsv=RGB_HSV(r===null?this.rgb[0]:r,g===null?this.rgb[1]:g,b===null?this.rgb[2]:b);if(hsv[0]!==null){this.hsv[0]=Math.max(0.0,this.minH,Math.min(6.0,this.maxH,hsv[0]))}if(hsv[2]!==0){this.hsv[1]=hsv[1]===null?null:Math.max(0.0,this.minS,Math.min(1.0,this.maxS,hsv[1]))}this.hsv[2]=hsv[2]===null?null:Math.max(0.0,this.minV,Math.min(1.0,this.maxV,hsv[2]));var rgb=HSV_RGB(this.hsv[0],this.hsv[1],this.hsv[2]);this.rgb[0]=rgb[0];this.rgb[1]=rgb[1];this.rgb[2]=rgb[2];this.exportColor(flags)};this.fromString=function(hex,flags){var m=hex.match(/^\W*([0-9A-F]{3}([0-9A-F]{3})?)\W*$/i);if(!m){return false}else{if(m[1].length===6){this.fromRGB(parseInt(m[1].substr(0,2),16)/255,parseInt(m[1].substr(2,2),16)/255,parseInt(m[1].substr(4,2),16)/255,flags)}else{this.fromRGB(parseInt(m[1].charAt(0)+m[1].charAt(0),16)/255,parseInt(m[1].charAt(1)+m[1].charAt(1),16)/255,parseInt(m[1].charAt(2)+m[1].charAt(2),16)/255,flags)}return true}};this.toString=function(){return((0x100|Math.round(255*this.rgb[0])).toString(16).substr(1)+(0x100|Math.round(255*this.rgb[1])).toString(16).substr(1)+(0x100|Math.round(255*this.rgb[2])).toString(16).substr(1))};function RGB_HSV(r,g,b){var n=Math.min(Math.min(r,g),b);var v=Math.max(Math.max(r,g),b);var m=v-n;if(m===0){return[null,0,v]}var h=r===n?3+(b-g)/m:(g===n?5+(r-b)/m:1+(g-r)/m);return[h===6?0:h,m/v,v]}function HSV_RGB(h,s,v){if(h===null){return[v,v,v]}var i=Math.floor(h);var f=i%2?h-i:1-(h-i);var m=v*(1-s);var n=v*(1-s*f);switch(i){case 6:case 0:return[v,n,m];case 1:return[n,v,m];case 2:return[m,v,n];case 3:return[m,n,v];case 4:return[n,m,v];case 5:return[v,m,n]}}function removePicker(){delete jscolor.picker.owner;document.getElementsByTagName('body')[0].removeChild(jscolor.picker.boxB)}function drawPicker(x,y){if(!jscolor.picker){jscolor.picker={box:document.createElement('div'),boxB:document.createElement('div'),pad:document.createElement('div'),padB:document.createElement('div'),padM:document.createElement('div'),sld:document.createElement('div'),sldB:document.createElement('div'),sldM:document.createElement('div'),btn:document.createElement('div'),btnS:document.createElement('span'),btnT:document.createTextNode(THIS.pickerCloseText)};for(var i=0,segSize=4;i<jscolor.images.sld[1];i+=segSize){var seg=document.createElement('div');seg.style.height=segSize+'px';seg.style.fontSize='1px';seg.style.lineHeight='0';jscolor.picker.sld.appendChild(seg)}jscolor.picker.sldB.appendChild(jscolor.picker.sld);jscolor.picker.box.appendChild(jscolor.picker.sldB);jscolor.picker.box.appendChild(jscolor.picker.sldM);jscolor.picker.padB.appendChild(jscolor.picker.pad);jscolor.picker.box.appendChild(jscolor.picker.padB);jscolor.picker.box.appendChild(jscolor.picker.padM);jscolor.picker.btnS.appendChild(jscolor.picker.btnT);jscolor.picker.btn.appendChild(jscolor.picker.btnS);jscolor.picker.box.appendChild(jscolor.picker.btn);jscolor.picker.boxB.appendChild(jscolor.picker.box)}var p=jscolor.picker;p.box.onmouseup=p.box.onmouseout=function(){target.focus()};p.box.onmousedown=function(){abortBlur=true};p.box.onmousemove=function(e){if(holdPad||holdSld){holdPad&&setPad(e);holdSld&&setSld(e);if(document.selection){document.selection.empty()}else if(window.getSelection){window.getSelection().removeAllRanges()}dispatchImmediateChange()}};p.padM.onmouseup=p.padM.onmouseout=function(){if(holdPad){holdPad=false;jscolor.fireEvent(valueElement,'change')}};p.padM.onmousedown=function(e){switch(modeID){case 0:if(THIS.hsv[2]===0){THIS.fromHSV(null,null,1.0)};break;case 1:if(THIS.hsv[1]===0){THIS.fromHSV(null,1.0,null)};break}holdPad=true;setPad(e);dispatchImmediateChange()};p.sldM.onmouseup=p.sldM.onmouseout=function(){if(holdSld){holdSld=false;jscolor.fireEvent(valueElement,'change')}};p.sldM.onmousedown=function(e){holdSld=true;setSld(e);dispatchImmediateChange()};var dims=getPickerDims(THIS);p.box.style.width=dims[0]+'px';p.box.style.height=dims[1]+'px';p.boxB.style.position='absolute';p.boxB.style.clear='both';p.boxB.style.left=x+'px';p.boxB.style.top=y+'px';p.boxB.style.zIndex=THIS.pickerZIndex;p.boxB.style.border=THIS.pickerBorder+'px solid';p.boxB.style.borderColor=THIS.pickerBorderColor;p.boxB.style.background=THIS.pickerFaceColor;p.pad.style.width=jscolor.images.pad[0]+'px';p.pad.style.height=jscolor.images.pad[1]+'px';p.padB.style.position='absolute';p.padB.style.left=THIS.pickerFace+'px';p.padB.style.top=THIS.pickerFace+'px';p.padB.style.border=THIS.pickerInset+'px solid';p.padB.style.borderColor=THIS.pickerInsetColor;p.padM.style.position='absolute';p.padM.style.left='0';p.padM.style.top='0';p.padM.style.width=THIS.pickerFace+2*THIS.pickerInset+jscolor.images.pad[0]+jscolor.images.arrow[0]+'px';p.padM.style.height=p.box.style.height;p.padM.style.cursor='crosshair';p.sld.style.overflow='hidden';p.sld.style.width=jscolor.images.sld[0]+'px';p.sld.style.height=jscolor.images.sld[1]+'px';p.sldB.style.display=THIS.slider?'block':'none';p.sldB.style.position='absolute';p.sldB.style.right=THIS.pickerFace+'px';p.sldB.style.top=THIS.pickerFace+'px';p.sldB.style.border=THIS.pickerInset+'px solid';p.sldB.style.borderColor=THIS.pickerInsetColor;p.sldM.style.display=THIS.slider?'block':'none';p.sldM.style.position='absolute';p.sldM.style.right='0';p.sldM.style.top='0';p.sldM.style.width=jscolor.images.sld[0]+jscolor.images.arrow[0]+THIS.pickerFace+2*THIS.pickerInset+'px';p.sldM.style.height=p.box.style.height;try{p.sldM.style.cursor='pointer'}catch(eOldIE){p.sldM.style.cursor='hand'}function setBtnBorder(){var insetColors=THIS.pickerInsetColor.split(/\s+/);var pickerOutsetColor=insetColors.length<2?insetColors[0]:insetColors[1]+' '+insetColors[0]+' '+insetColors[0]+' '+insetColors[1];p.btn.style.borderColor=pickerOutsetColor}p.btn.style.display=THIS.pickerClosable?'block':'none';p.btn.style.position='absolute';p.btn.style.left=THIS.pickerFace+'px';p.btn.style.bottom=THIS.pickerFace+'px';p.btn.style.padding='0 15px';p.btn.style.height='18px';p.btn.style.border=THIS.pickerInset+'px solid';setBtnBorder();p.btn.style.color=THIS.pickerButtonColor;p.btn.style.font='12px sans-serif';p.btn.style.textAlign='center';try{p.btn.style.cursor='pointer'}catch(eOldIE){p.btn.style.cursor='hand'}p.btn.onmousedown=function(){THIS.hidePicker()};p.btnS.style.lineHeight=p.btn.style.height;switch(modeID){case 0:var padImg='hs.png';break;case 1:var padImg='hv.png';break}p.padM.style.backgroundImage="url('"+jscolor.getDir()+"cross.gif')";p.padM.style.backgroundRepeat="no-repeat";p.sldM.style.backgroundImage="url('"+jscolor.getDir()+"arrow.gif')";p.sldM.style.backgroundRepeat="no-repeat";p.pad.style.backgroundImage="url('"+jscolor.getDir()+padImg+"')";p.pad.style.backgroundRepeat="no-repeat";p.pad.style.backgroundPosition="0 0";redrawPad();redrawSld();jscolor.picker.owner=THIS;document.getElementsByTagName('body')[0].appendChild(p.boxB)}function getPickerDims(o){var dims=[2*o.pickerInset+2*o.pickerFace+jscolor.images.pad[0]+(o.slider?2*o.pickerInset+2*jscolor.images.arrow[0]+jscolor.images.sld[0]:0),o.pickerClosable?4*o.pickerInset+3*o.pickerFace+jscolor.images.pad[1]+o.pickerButtonHeight:2*o.pickerInset+2*o.pickerFace+jscolor.images.pad[1]];return dims}function redrawPad(){switch(modeID){case 0:var yComponent=1;break;case 1:var yComponent=2;break}var x=Math.round((THIS.hsv[0]/6)*(jscolor.images.pad[0]-1));var y=Math.round((1-THIS.hsv[yComponent])*(jscolor.images.pad[1]-1));jscolor.picker.padM.style.backgroundPosition=(THIS.pickerFace+THIS.pickerInset+x-Math.floor(jscolor.images.cross[0]/2))+'px '+(THIS.pickerFace+THIS.pickerInset+y-Math.floor(jscolor.images.cross[1]/2))+'px';var seg=jscolor.picker.sld.childNodes;switch(modeID){case 0:var rgb=HSV_RGB(THIS.hsv[0],THIS.hsv[1],1);for(var i=0;i<seg.length;i+=1){seg[i].style.backgroundColor='rgb('+(rgb[0]*(1-i/seg.length)*100)+'%,'+(rgb[1]*(1-i/seg.length)*100)+'%,'+(rgb[2]*(1-i/seg.length)*100)+'%)'}break;case 1:var rgb,s,c=[THIS.hsv[2],0,0];var i=Math.floor(THIS.hsv[0]);var f=i%2?THIS.hsv[0]-i:1-(THIS.hsv[0]-i);switch(i){case 6:case 0:rgb=[0,1,2];break;case 1:rgb=[1,0,2];break;case 2:rgb=[2,0,1];break;case 3:rgb=[2,1,0];break;case 4:rgb=[1,2,0];break;case 5:rgb=[0,2,1];break}for(var i=0;i<seg.length;i+=1){s=1-1/(seg.length-1)*i;c[1]=c[0]*(1-s*f);c[2]=c[0]*(1-s);seg[i].style.backgroundColor='rgb('+(c[rgb[0]]*100)+'%,'+(c[rgb[1]]*100)+'%,'+(c[rgb[2]]*100)+'%)'}break}}function redrawSld(){switch(modeID){case 0:var yComponent=2;break;case 1:var yComponent=1;break}var y=Math.round((1-THIS.hsv[yComponent])*(jscolor.images.sld[1]-1));jscolor.picker.sldM.style.backgroundPosition='0 '+(THIS.pickerFace+THIS.pickerInset+y-Math.floor(jscolor.images.arrow[1]/2))+'px'}function isPickerOwner(){return jscolor.picker&&jscolor.picker.owner===THIS}function blurTarget(){if(valueElement===target){THIS.importColor()}if(THIS.pickerOnfocus){THIS.hidePicker()}}function blurValue(){if(valueElement!==target){THIS.importColor()}}function setPad(e){var mpos=jscolor.getRelMousePos(e);var x=mpos.x-THIS.pickerFace-THIS.pickerInset;var y=mpos.y-THIS.pickerFace-THIS.pickerInset;switch(modeID){case 0:THIS.fromHSV(x*(6/(jscolor.images.pad[0]-1)),1-y/(jscolor.images.pad[1]-1),null,leaveSld);break;case 1:THIS.fromHSV(x*(6/(jscolor.images.pad[0]-1)),null,1-y/(jscolor.images.pad[1]-1),leaveSld);break}}function setSld(e){var mpos=jscolor.getRelMousePos(e);var y=mpos.y-THIS.pickerFace-THIS.pickerInset;switch(modeID){case 0:THIS.fromHSV(null,null,1-y/(jscolor.images.sld[1]-1),leavePad);break;case 1:THIS.fromHSV(null,1-y/(jscolor.images.sld[1]-1),null,leavePad);break}}function dispatchImmediateChange(){if(THIS.onImmediateChange){var callback;if(typeof THIS.onImmediateChange==='string'){callback=new Function(THIS.onImmediateChange)}else{callback=THIS.onImmediateChange}callback.call(THIS)}}var THIS=this;var modeID=this.pickerMode.toLowerCase()==='hvs'?1:0;var abortBlur=false;var valueElement=jscolor.fetchElement(this.valueElement),styleElement=jscolor.fetchElement(this.styleElement);var holdPad=false,holdSld=false;var leaveValue=1<<0,leaveStyle=1<<1,leavePad=1<<2,leaveSld=1<<3;jscolor.addEvent(target,'focus',function(){if(THIS.pickerOnfocus){THIS.showPicker()}});jscolor.addEvent(target,'blur',function(){if(!abortBlur){window.setTimeout(function(){abortBlur||blurTarget();abortBlur=false},0)}else{abortBlur=false}});if(valueElement){var updateField=function(){THIS.fromString(valueElement.value,leaveValue);dispatchImmediateChange()};jscolor.addEvent(valueElement,'keyup',updateField);jscolor.addEvent(valueElement,'input',updateField);jscolor.addEvent(valueElement,'blur',blurValue);valueElement.setAttribute('autocomplete','off')}if(styleElement){styleElement.jscStyle={backgroundImage:styleElement.style.backgroundImage,backgroundColor:styleElement.style.backgroundColor,color:styleElement.style.color}}switch(modeID){case 0:jscolor.requireImage('hs.png');break;case 1:jscolor.requireImage('hv.png');break}jscolor.requireImage('cross.gif');jscolor.requireImage('arrow.gif');this.importColor()}};jscolor.install();
\ No newline at end of file
--- a/web/wp-content/plugins/slideshow-jquery-image-gallery/js/SlideshowPluginPostType/post-type-handler.js	Wed Dec 19 12:35:13 2012 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,39 +0,0 @@
-jQuery(document).ready(function(){
-	/**
-	 * Loop through fields that depend on another field's value for showing, register change event
-	 */
-	jQuery('.depends-on-field-value').each(function(key, value){
-		var attributes = jQuery(this).attr('class').split(' ');
-
-		// Check if field should be shown
-		var element = jQuery(this).closest('tr');
-		if((jQuery('input[name="' + attributes[1] + '"]').val() == attributes[2] && jQuery('input[name="' + attributes[1] + '"]').prop('checked')) ||
-			jQuery('select[name="' + attributes[1] + '"]').val() == attributes[2])
-			setElementVisibility(element, true);
-		else
-			setElementVisibility(element, false);
-
-		// On change, set field's visibility
-		jQuery('input[name="' + attributes[1] + '"], select[name="' + attributes[1] + '"]').change(attributes, function(){
-			var element = jQuery('.' + attributes[3]).closest('tr');
-
-			if(jQuery(this).val() == attributes[2])
-				setElementVisibility(element, true);
-			else
-				setElementVisibility(element, false);
-		});
-	});
-
-	/**
-	 * Set element visibility
-	 *
-	 * @param element
-	 * @param visible
-	 */
-	function setElementVisibility(element, visible){
-		if(visible)
-			jQuery(element).css({'display': 'table-row'});
-		else
-			jQuery(element).css({'display': 'none'});
-	}
-});
\ No newline at end of file
--- a/web/wp-content/plugins/slideshow-jquery-image-gallery/js/SlideshowPluginPostType/style-settings.js	Wed Dec 19 12:35:13 2012 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,21 +0,0 @@
-jQuery(document).ready(function(){
-	//if(jQuery('.custom-style-textarea').val() == '')
-	//	jQuery.get('./css/' + this.val(), function(data) { $('#myTextbox').val(data); });
-
-	var currentlyEdited = '.' + jQuery('.style-list').val();
-	setVisible(currentlyEdited, true);
-
-	jQuery('.style-list').change(function(){
-		setVisible(currentlyEdited, false);
-
-		currentlyEdited = '.' + jQuery('.style-list').val();
-		setVisible(currentlyEdited, true);
-	});
-
-	function setVisible(element, visible){
-		if(visible)
-			jQuery(element).css({'display': 'table-row'});
-		else
-			jQuery(element).css({'display': 'none'});
-	}
-});
\ No newline at end of file
--- a/web/wp-content/plugins/slideshow-jquery-image-gallery/js/SlideshowPluginShortcode/shortcode-inserter.js	Wed Dec 19 12:35:13 2012 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,28 +0,0 @@
-jQuery(document).ready(function(){
-
-	jQuery('.insertSlideshowShortcodeSlideshowInsertButton').click(function(){
-		var undefinedSlideshowMessage = SlideshowShortcodeInserter.undefinedSlideshowMessage;
-		if(undefinedSlideshowMessage == undefined)
-			undefinedSlideshowMessage = 'No slideshow selected.';
-
-		var shortcode = SlideshowShortcodeInserter.shortcode;
-		if(shortcode == undefined)
-			shortcode = 'slideshow_deploy';
-
-		var slideshowId = jQuery('#insertSlideshowShortcodeSlideshowSelect').val();
-
-		if(slideshowId == undefined){
-			alert(undefinedSlideshowMessage);
-			return;
-		}
-
-		send_to_editor('[' + shortcode + ' id=\'' + slideshowId + '\']');
-		tb_remove();
-		return true;
-	});
-
-	jQuery('.insertSlideshowShortcodeCancelButton').click(function(){
-		tb_remove();
-		return false;
-	});
-});
\ No newline at end of file
--- a/web/wp-content/plugins/slideshow-jquery-image-gallery/js/SlideshowPluginSlideInserter/slide-inserter.js	Wed Dec 19 12:35:13 2012 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,300 +0,0 @@
-jQuery(document).ready(function(){
-	// Index first
-	slideshowSlideInserterIndexSlidesOrder();
-
-	// Make list items in the sortables list sortable, exclude elements with cancel option.
-	jQuery('.sortable-slides-list').sortable({
-		revert: true,
-		stop: function(event, ui){
-			slideshowSlideInserterIndexSlidesOrder();
-		},
-		cancel: 'input, select, p'
-	});
-
-	// Make the black background stretch all the way down the document
-	jQuery('#slideshow-slide-inserter-popup-background').height(jQuery(document).outerHeight(true));
-
-	// Center the popup in the window
-	jQuery('#slideshow-slide-inserter-popup').css({
-		'top': parseInt((jQuery(window).height() / 2) - (jQuery('#slideshow-slide-inserter-popup').outerHeight(true) / 2), 10),
-		'left': parseInt((jQuery(window).width() / 2) - (jQuery('#slideshow-slide-inserter-popup').outerWidth(true) / 2), 10)
-	});
-
-	// Focus on search bar
-	jQuery('#slideshow-slide-inserter-popup #search').focus();
-
-	// Preload attachments
-	slideshowSlideInserterGetSearchResults();
-
-	/**
-	 * Close popup when clicked on cross
-	 */
-	jQuery('#slideshow-slide-inserter-popup #close').click(function(){
-		slideshowSlideInserterClosePopup();
-	});
-
-	/**
-	 * Close popup when clicked on background
-	 */
-	jQuery('#slideshow-slide-inserter-popup-background').click(function(){
-		slideshowSlideInserterClosePopup();
-	});
-
-	/**
-	 * Send ajax request on click of the search button
-	 */
-	jQuery('#slideshow-slide-inserter-popup #search-submit').click(function(){
-		slideshowSlideInserterGetSearchResults();
-	});
-
-	/**
-	 * Make the 'enter' key do the same as the search button
-	 */
-	jQuery('#slideshow-slide-inserter-popup #search').keypress(function(event){
-		if(event.which == 13){
-			event.preventDefault();
-			slideshowSlideInserterGetSearchResults();
-		}
-	});
-
-	/**
-	 * Open popup by click on button
-	 */
-	jQuery('#slideshow-insert-image-slide').click(function(){
-		jQuery('#slideshow-slide-inserter-popup, #slideshow-slide-inserter-popup-background').css({ display: 'block' });
-	});
-
-	/**
-	 * Insert text slide into the sortable list when the Insert Text Slide button is clicked
-	 */
-	jQuery('#slideshow-insert-text-slide').click(function(){
-		slideshowSlideInserterInsertTextSlide();
-	});
-
-	/**
-	 * Insert video slide into the sortable list when the Insert Video Slide button is clicked
-	 */
-	jQuery('#slideshow-insert-video-slide').click(function(){
-		slideshowSlideInserterInsertVideoSlide();
-	});
-
-	/**
-	 * Ajax deletes a slide from the slides list and from the database
-	 */
-	jQuery('.slideshow-delete-slide').click(function(){
-		var confirmMessage = 'Are you sure you want to delete this slide?';
-		if(typeof SlideInserterTranslations !== undefined)
-			confirmMessage = SlideInserterTranslations.confirmMessage;
-
-		var deleteSlide = confirm(confirmMessage);
-		if(!deleteSlide)
-			return;
-
-		// Get postId from url
-		var postId = -1;
-		jQuery.each(location.search.replace('?', '').split('&'), function(key, value){
-			var splitValue = value.split('=');
-			if(splitValue[0] == 'post')
-				postId = splitValue[1];
-		});
-
-		// Get slideId
-		var slideId = jQuery(this).find('span').attr('class');
-
-
-		if(postId == -1 || slideId == 'undefined')
-			return;
-
-		// Remove slide from DOM
-		jQuery(this).parent().remove();
-
-		// Remove slide by AJAX.
-		jQuery.post(
-			ajaxurl,
-			{
-				action: 'slideshow_delete_slide',
-				postId: postId,
-				slideId: slideId
-			}
-		);
-	});
-
-	/**
-	 * Loop through list items, fill hidden field with loop id
-	 */
-	function slideshowSlideInserterIndexSlidesOrder(){
-		jQuery.each(jQuery('.sortable-slides-list').find('li'), function(key, value){
-			jQuery(value).find('.slide_order').attr('value', key + 1);
-		});
-	}
-
-	/**
-	 * Sends an ajax post request with the search query and print
-	 * retrieved html to the results table.
-	 *
-	 * If offset is set, append data to data that is already there
-	 *
-	 * @param offset (optional, defaults to 0)
-	 */
-	function slideshowSlideInserterGetSearchResults(offset){
-		if(!offset){
-			offset = 0;
-			jQuery('#slideshow-slide-inserter-popup #results').html('');
-		}
-
-		jQuery.post(
-			ajaxurl,
-			{
-				action: 'slideshow_slide_inserter_search_query',
-				search: jQuery('#slideshow-slide-inserter-popup #search').attr('value'),
-				offset: offset
-			},
-			function(response){
-				// Fill table
-				jQuery('#slideshow-slide-inserter-popup #results').append(response);
-
-				// Apply insert to slideshow script
-				jQuery('#slideshow-slide-inserter-popup #results .insert-attachment').click(function(){
-					var tr = jQuery(this).closest('tr');
-					slideshowSlideInserterInsertImageSlide(
-						jQuery(this).attr('id'),
-						jQuery(tr).find('.title').text(),
-						jQuery(tr).find('.description').text(),
-						jQuery(tr).find('.image img').attr('src')
-					);
-				});
-
-				// Load more results on click of the 'Load more results' button
-				if(jQuery('.load-more-results')){
-					jQuery('.load-more-results').click(function(){
-						// Get offset
-						var previousOffset = jQuery(this).attr('class').split(' ')[2];
-
-						// Load ajax results
-						slideshowSlideInserterGetSearchResults(previousOffset);
-
-						// Remove button row
-						jQuery(this).closest('tr').remove();
-					});
-				}
-			}
-		);
-	}
-
-	/**
-	 * Inserts image slide into the slides list
-	 *
-	 * @param id
-	 * @param title
-	 * @param description
-	 * @param src
-	 */
-	function slideshowSlideInserterInsertImageSlide(id, title, description, src){
-		if(slideshowHighestSlideId == 'undefined')
-			return;
-
-		slideshowHighestSlideId++;
-		var imageSlide = jQuery('.image-slide-template').find('li').clone();
-
-		// Fill slide with data
-		imageSlide.find('.attachment').attr('src', src);
-		imageSlide.find('.attachment').attr('title', title);
-		imageSlide.find('.attachment').attr('alt', title);
-		imageSlide.find('.title').html(title);
-		imageSlide.find('.description').html(description);
-		imageSlide.find('.postId').attr('value', id);
-
-		// Set names to be saved to the database
-		imageSlide.find('.url').attr('name', 'slide_' + slideshowHighestSlideId + '_url');
-		imageSlide.find('.type').attr('name', 'slide_' + slideshowHighestSlideId + '_type');
-		imageSlide.find('.postId').attr('name', 'slide_' + slideshowHighestSlideId + '_postId');
-		imageSlide.find('.slide_order').attr('name', 'slide_' + slideshowHighestSlideId + '_order');
-
-		// Register delete link (only needs to delete from DOM)
-		imageSlide.find('.slideshow-delete-new-slide').click(function(){
-			var deleteSlide = confirm('Are you sure you want to delete this slide?');
-			if(!deleteSlide)
-				return;
-
-			jQuery(this).closest('li').remove();
-		});
-
-		// Put slide in the sortables list.
-		jQuery('.sortable-slides-list').prepend(imageSlide);
-
-		// Reindex
-		slideshowSlideInserterIndexSlidesOrder();
-	}
-
-	/**
-	 * Inserts text slide into the slides list
-	 */
-	function slideshowSlideInserterInsertTextSlide(){
-		if(slideshowHighestSlideId == 'undefined')
-			return;
-
-		slideshowHighestSlideId++;
-		var textSlide = jQuery('.text-slide-template').find('li').clone();
-
-		// Set names to be saved to the database
-		textSlide.find('.title').attr('name', 'slide_' + slideshowHighestSlideId + '_title');
-		textSlide.find('.description').attr('name', 'slide_' + slideshowHighestSlideId + '_description');
-		textSlide.find('.color').attr('name', 'slide_' + slideshowHighestSlideId + '_color');
-		textSlide.find('.url').attr('name', 'slide_' + slideshowHighestSlideId + '_url');
-		textSlide.find('.type').attr('name', 'slide_' + slideshowHighestSlideId + '_type');
-		textSlide.find('.slide_order').attr('name', 'slide_' + slideshowHighestSlideId + '_order');
-
-		// Register delete link (only needs to delete from DOM)
-		textSlide.find('.slideshow-delete-new-slide').click(function(){
-			var deleteSlide = confirm('Are you sure you want to delete this slide?');
-			if(!deleteSlide)
-				return;
-
-			jQuery(this).closest('li').remove();
-		});
-
-		// Put slide in the sortables list.
-		jQuery('.sortable-slides-list').prepend(textSlide);
-
-		// Reindex slide orders
-		slideshowSlideInserterIndexSlidesOrder();
-	}
-
-	/**
-	 * Inserts video slide into the slides list
-	 */
-	function slideshowSlideInserterInsertVideoSlide(){
-		if(slideshowHighestSlideId == 'undefined')
-			return;
-
-		slideshowHighestSlideId++;
-		var videoSlide = jQuery('.video-slide-template').find('li').clone();
-
-		// Set names to be saved to the database
-		videoSlide.find('.videoId').attr('name', 'slide_' + slideshowHighestSlideId + '_videoId');
-		videoSlide.find('.type').attr('name', 'slide_' + slideshowHighestSlideId + '_type');
-		videoSlide.find('.slide_order').attr('name', 'slide_' + slideshowHighestSlideId + '_order');
-
-		// Register delete link (only needs to delete from DOM)
-		videoSlide.find('.slideshow-delete-new-slide').click(function(){
-			var deleteSlide = confirm('Are you sure you want to delete this slide?');
-			if(!deleteSlide)
-				return;
-
-			jQuery(this).closest('li').remove();
-		});
-
-		// Put slide in the sortables list.
-		jQuery('.sortable-slides-list').prepend(videoSlide);
-
-		// Reindex slide orders
-		slideshowSlideInserterIndexSlidesOrder();
-	}
-
-	/**
-	 * Closes popup
-	 */
-	function slideshowSlideInserterClosePopup(){
-		jQuery('#slideshow-slide-inserter-popup, #slideshow-slide-inserter-popup-background').css({ display: 'none' });
-	}
-});
\ No newline at end of file
--- a/web/wp-content/plugins/slideshow-jquery-image-gallery/js/SlideshowPluginUpload/upload-button.js	Wed Dec 19 12:35:13 2012 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,8 +0,0 @@
-jQuery(document).ready(function(){
-	jQuery('#upload_image_button').click(function() {
-		formfield = jQuery('#upload_image').attr('name');
-		post_id = jQuery('#post_ID').val();
-		tb_show('', 'media-upload.php?post_id='+post_id+'&amp;type=image&amp;TB_iframe=true');
-		return false;
-	});
-});
\ No newline at end of file
Binary file web/wp-content/plugins/slideshow-jquery-image-gallery/languages/slideshow-plugin-nl_NL.mo has changed
--- a/web/wp-content/plugins/slideshow-jquery-image-gallery/languages/slideshow-plugin-nl_NL.po	Wed Dec 19 12:35:13 2012 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,468 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: Slideshow Plugin\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2012-11-10 13:12+0100\n"
-"PO-Revision-Date: 2012-11-10 13:12+0100\n"
-"Last-Translator: Stefan Boonstra <stefanboonstra@hotmail.com>\n"
-"Language-Team: Stefan Boonstra <wordpress@stefanboonstra.com>\n"
-"Language: nl_NL\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Poedit-KeywordsList: _e;__\n"
-"X-Poedit-Basepath: ../\n"
-"X-Generator: Poedit 1.5.4\n"
-"X-Poedit-SearchPath-0: .\n"
-
-#: classes/SlideshowPluginPostType.php:40
-msgid "Slideshows"
-msgstr "Slideshows"
-
-#: classes/SlideshowPluginPostType.php:41
-#: views/SlideshowPluginWidget/form.php:7
-msgid "Slideshow"
-msgstr "Slideshow"
-
-#: classes/SlideshowPluginPostType.php:42
-msgid "Add New Slideshow"
-msgstr "Nieuwe Slideshow Toevoegen"
-
-#: classes/SlideshowPluginPostType.php:43
-msgid "Edit slideshow"
-msgstr "Slideshow bewerken"
-
-#: classes/SlideshowPluginPostType.php:44
-msgid "New slideshow"
-msgstr "Nieuwe slideshow"
-
-#: classes/SlideshowPluginPostType.php:45
-msgid "View slideshow"
-msgstr "Slideshow bekijken"
-
-#: classes/SlideshowPluginPostType.php:46
-msgid "Search slideshows"
-msgstr "Slideshows zoeken"
-
-#: classes/SlideshowPluginPostType.php:47
-#: classes/SlideshowPluginPostType.php:48
-msgid "No slideshows found"
-msgstr "Geen slideshows gevonden"
-
-#: classes/SlideshowPluginPostType.php:102
-msgid "Information"
-msgstr "Informatie"
-
-#: classes/SlideshowPluginPostType.php:111
-msgid "Slides List"
-msgstr "Slides Lijst"
-
-#: classes/SlideshowPluginPostType.php:120
-msgid "Slideshow Style"
-msgstr "Slideshow Stijl"
-
-#: classes/SlideshowPluginPostType.php:129
-msgid "Slideshow Settings"
-msgstr "Slideshow Instellingen"
-
-#: classes/SlideshowPluginPostType.php:389
-msgid "light"
-msgstr "licht"
-
-#: classes/SlideshowPluginPostType.php:391
-msgid "slide"
-msgstr "slide"
-
-#: classes/SlideshowPluginPostType.php:412
-msgid "Yes"
-msgstr "Ja"
-
-#: classes/SlideshowPluginPostType.php:413
-msgid "No"
-msgstr "Nee"
-
-#: classes/SlideshowPluginPostType.php:415
-msgid "The style used for this slideshow"
-msgstr "De stijl te gebruiken voor deze slideshow"
-
-#: classes/SlideshowPluginPostType.php:415
-msgid "Light"
-msgstr "Licht"
-
-#: classes/SlideshowPluginPostType.php:415
-msgid "Dark"
-msgstr "Donker"
-
-#: classes/SlideshowPluginPostType.php:415
-msgid "Custom"
-msgstr "Aangepast"
-
-#: classes/SlideshowPluginPostType.php:416
-msgid "Custom style editor"
-msgstr "Aangepaste stijl bewerker"
-
-#: classes/SlideshowPluginPostType.php:417
-msgid "Animation used for transition between slides"
-msgstr "Animatie tussen het wisselen van de slides"
-
-#: classes/SlideshowPluginPostType.php:417
-msgid "Slide"
-msgstr "Slide"
-
-#: classes/SlideshowPluginPostType.php:417
-msgid "Fade"
-msgstr "Fade"
-
-#: classes/SlideshowPluginPostType.php:417
-#: classes/SlideshowPluginPostType.php:418
-#: classes/SlideshowPluginPostType.php:419
-#: classes/SlideshowPluginPostType.php:420
-msgid "Animation"
-msgstr "Animatie"
-
-#: classes/SlideshowPluginPostType.php:418
-msgid "Number of seconds the slide takes to slide in"
-msgstr ""
-"Aantal seconden dat de animatie van het inschuiven van de volgende slide "
-"duurt"
-
-#: classes/SlideshowPluginPostType.php:419
-msgid "Number of seconds the description takes to slide in"
-msgstr "Aantal seconden dat het inschuiven van de beschrijving duurt"
-
-#: classes/SlideshowPluginPostType.php:420
-msgid "Seconds between changing slides"
-msgstr "Seconden tussen het wisselen van de slides"
-
-#: classes/SlideshowPluginPostType.php:421
-msgid "Number of slides to fit into one slide"
-msgstr "Aantal slides om in een slide te plaatsen"
-
-#: classes/SlideshowPluginPostType.php:421
-#: classes/SlideshowPluginPostType.php:422
-#: classes/SlideshowPluginPostType.php:423
-#: classes/SlideshowPluginPostType.php:424
-#: classes/SlideshowPluginPostType.php:425
-#: classes/SlideshowPluginPostType.php:426
-#: classes/SlideshowPluginPostType.php:427
-msgid "Display"
-msgstr "Weergave"
-
-#: classes/SlideshowPluginPostType.php:422
-msgid "Width of the slideshow, set to parent&#39;s width on 0"
-msgstr ""
-"Breedte van de slideshow, past zich aan op bovenliggende element wanneer 0"
-
-#: classes/SlideshowPluginPostType.php:423
-msgid "Height of the slideshow"
-msgstr "Hoogte van de slideshow"
-
-#: classes/SlideshowPluginPostType.php:424
-msgid "Height of the description boxes"
-msgstr "Hoogte van de beschrijvingen"
-
-#: classes/SlideshowPluginPostType.php:425
-msgid "Fit image into slide (stretching it)"
-msgstr "Pas afbeelding in de slideshow (oprekken)"
-
-#: classes/SlideshowPluginPostType.php:426
-msgid "Show title and description"
-msgstr "Toon titel en beschrijving"
-
-#: classes/SlideshowPluginPostType.php:427
-msgid "Hide description box, it will pop up when a mouse hovers over the slide"
-msgstr ""
-"Verbeg beschrijving, toon de slide alleen wanneer de muisaanwijzer boven de "
-"slide is"
-
-#: classes/SlideshowPluginPostType.php:428
-msgid "Automatically slide to the next slide"
-msgstr "Automatisch naar de volgende slide gaan"
-
-#: classes/SlideshowPluginPostType.php:428
-#: classes/SlideshowPluginPostType.php:429
-#: classes/SlideshowPluginPostType.php:430
-#: classes/SlideshowPluginPostType.php:431
-msgid "Control"
-msgstr "Controle"
-
-#: classes/SlideshowPluginPostType.php:429
-msgid "Return to the beginning of the slideshow after last slide"
-msgstr "Keer terug naar het begin van de slideshow na de laatste slide."
-
-#: classes/SlideshowPluginPostType.php:430
-msgid "Activate buttons (so the user can scroll through the slides)"
-msgstr "Knoppen activeren (zodat de gebruiker door de slides kan scrollen)"
-
-#: classes/SlideshowPluginPostType.php:431
-msgid "Show control panel (play and pause button)"
-msgstr "Toon controlepaneel (speel en pause knop)"
-
-#: classes/SlideshowPluginPostType.php:432
-msgid "Randomize slides"
-msgstr "Toon slides in willekeurige volgorde"
-
-#: classes/SlideshowPluginPostType.php:432
-#: classes/SlideshowPluginPostType.php:434
-msgid "Miscellaneous"
-msgstr "Overige"
-
-#: classes/SlideshowPluginPostType.php:434
-#, php-format
-msgid "Avoid content filter (disable if '%s' is shown)"
-msgstr "Content filter omzeilen (uitschakelen als '%s' wordt getoond)"
-
-#: classes/SlideshowPluginShortcode.php:129
-msgid "No slideshow selected."
-msgstr "Geen slideshow geselecteerd."
-
-#: classes/SlideshowPluginSlideInserter.php:138
-#: views/SlideshowPluginPostType/slides.php:2
-msgid "Insert"
-msgstr "Invoegen"
-
-#: classes/SlideshowPluginSlideInserter.php:147
-msgid "Load more results"
-msgstr "Meer resultaten laden"
-
-#: classes/SlideshowPluginSlideInserter.php:156
-msgid "No images were found, click here to upload some."
-msgstr "Geen afbeeldingen gevonden, klik hier om afbeeldingen te uploaden."
-
-#: classes/SlideshowPluginSlideInserter.php:216
-msgid "Are you sure you want to delete this slide?"
-msgstr "Weet je zeker dat je deze slide wilt verwijderen?"
-
-#: classes/SlideshowPluginWidget.php:20
-msgid "Enables you to show your slideshows in the widget area of your website."
-msgstr ""
-"Maakt het mogelijk je slideshows te bijken in het widget gebied van je "
-"website."
-
-#: classes/SlideshowPluginWidget.php:26
-msgid "Slideshow Widget"
-msgstr "Slideshow Widget"
-
-#: views/SlideshowPluginPostType/information.php:1
-msgid ""
-"To use this slideshow in your website either add this piece of shortcode to "
-"your posts or pages"
-msgstr ""
-"Om deze slideshow op je website te gebruiken voeg je of dit stukje shortcode "
-"aan je pagina of post toe"
-
-#: views/SlideshowPluginPostType/information.php:3
-msgid ""
-"Or add this piece of code to where ever in your website you want to place "
-"the slideshow"
-msgstr ""
-"Of je voegt dit stuk code toe aan je broncode op de plaats waar je wilt dat "
-"de slideshow te zien is"
-
-#: views/SlideshowPluginPostType/information.php:5
-#, php-format
-msgid "Or go to the %swidgets page%s and show the slideshow as a widget."
-msgstr ""
-"Ook kan je naar de %swidget pagina%s toegaan, om de slideshow te tonen als "
-"widget."
-
-#: views/SlideshowPluginPostType/settings.php:12
-msgid "settings"
-msgstr "instellingen"
-
-#: views/SlideshowPluginPostType/settings.php:26
-#: views/SlideshowPluginPostType/style-settings.php:8
-msgid "Default"
-msgstr "Standaard"
-
-#: views/SlideshowPluginPostType/slides.php:9
-msgid "Add slides to this slideshow by using one of the buttons above."
-msgstr "Voeg slides toe doormiddel van de bovenstaande knoppen."
-
-#: views/SlideshowPluginPostType/slides.php:47
-#: views/SlideshowPluginPostType/slides.php:141
-#: views/SlideshowPluginWidget/form.php:2
-msgid "Title"
-msgstr "Titel"
-
-#: views/SlideshowPluginPostType/slides.php:48
-#: views/SlideshowPluginPostType/slides.php:142
-msgid "Description"
-msgstr "Beschrijving"
-
-#: views/SlideshowPluginPostType/slides.php:49
-#: views/SlideshowPluginPostType/slides.php:143
-msgid "Background color"
-msgstr "Achtergrond kleur"
-
-#: views/SlideshowPluginPostType/slides.php:55
-#: views/SlideshowPluginPostType/slides.php:110
-#: views/SlideshowPluginPostType/slides.php:149
-#: views/SlideshowPluginPostType/slides.php:197
-msgid "Same window"
-msgstr "Zelfde scherm"
-
-#: views/SlideshowPluginPostType/slides.php:56
-#: views/SlideshowPluginPostType/slides.php:111
-#: views/SlideshowPluginPostType/slides.php:150
-#: views/SlideshowPluginPostType/slides.php:198
-msgid "New window"
-msgstr "Nieuw scherm"
-
-#: views/SlideshowPluginPostType/slides.php:60
-#: views/SlideshowPluginPostType/slides.php:115
-#: views/SlideshowPluginPostType/slides.php:154
-#: views/SlideshowPluginPostType/slides.php:202
-msgid "URL"
-msgstr "URL"
-
-#: views/SlideshowPluginPostType/slides.php:76
-#: views/SlideshowPluginPostType/slides.php:170
-msgid "Youtube Video ID"
-msgstr "Youtube Video ID"
-
-#: views/SlideshowPluginPostType/slides.php:94
-#: views/SlideshowPluginPostType/slides.php:101
-msgid "Edit"
-msgstr "Bewerken"
-
-#: views/SlideshowPluginPostType/slides.php:126
-msgid ""
-"An error occurred while loading this slide, and it will not be present in "
-"the slideshow"
-msgstr ""
-"Een fout is ontstaan tijdens het laden van deze slide, de slide zal niet te "
-"bekijken zijn in je slideshow"
-
-#: views/SlideshowPluginPostType/slides.php:131
-#: views/SlideshowPluginPostType/slides.php:162
-#: views/SlideshowPluginPostType/slides.php:177
-#: views/SlideshowPluginPostType/slides.php:211
-msgid "Delete slide"
-msgstr "Verwijder slide"
-
-#: views/SlideshowPluginPostType/support-plugin.php:3
-msgid "Help to keep this plugin free!"
-msgstr "Help mee om deze plugin gratis te houden!"
-
-#: views/SlideshowPluginPostType/support-plugin.php:6
-msgid ""
-"In order to keep you provided with the newest features, forum support, and "
-"bug-fixes, a lot of motivation is required. Therefore I'm kindly asking you "
-"to consider making a small donation to the plugin or rating it as 5-stars on "
-"Wordpress.org. Thank you in advance!"
-msgstr ""
-"Om je te kunnen voorzien van de nieuwste functionaliteiten, forum "
-"ondersteuning en fout-oplossingen, is een hoop motivatie nodig. Daarom zou "
-"ik het enorm waarderen als je een kleine donatie aan de plugin zou willen "
-"doen, of de plugin 5 sterren zou willen geven op Wordpress.org. Alvast "
-"bedankt!"
-
-#: views/SlideshowPluginPostType/support-plugin.php:15
-msgid "Rate on Wordpress.org"
-msgstr "Geef een waardering op Wordpress.org"
-
-#: views/SlideshowPluginPostType/support-plugin.php:24
-msgid "Questions / Suggestions"
-msgstr "Vragen / Opmerkingen"
-
-#: views/SlideshowPluginShortcode/shortcode-inserter.php:4
-#: views/SlideshowPluginShortcode/shortcode-inserter.php:9
-#: views/SlideshowPluginShortcode/shortcode-inserter.php:16
-msgid "Insert a Slideshow"
-msgstr "Slideshow invoegen"
-
-#: views/SlideshowPluginShortcode/shortcode-inserter.php:6
-#: views/SlideshowPluginShortcode/shortcode-inserter.php:50
-msgid "Insert Slideshow"
-msgstr "Slideshow invoegen"
-
-#: views/SlideshowPluginShortcode/shortcode-inserter.php:26
-msgid "Select a slideshow"
-msgstr "Selecteer een slideshow"
-
-#: views/SlideshowPluginShortcode/shortcode-inserter.php:35
-msgid "Untitled slideshow"
-msgstr "Naamloze slideshow"
-
-#: views/SlideshowPluginShortcode/shortcode-inserter.php:55
-msgid "Cancel"
-msgstr "Annuleren"
-
-#: views/SlideshowPluginShortcode/shortcode-inserter.php:66
-#, php-format
-msgid ""
-"It seems you haven't created any slideshows yet. %sYou can create a "
-"slideshow here!%s"
-msgstr ""
-"Het ziet er naar uit dat je nog geen slideshows hebt gemaakt. %sHier kan je "
-"een slideshow maken!%s"
-
-#: views/SlideshowPluginSlideInserter/insert-image-button.php:1
-msgid "Image slide"
-msgstr "Afbeeldingsslide"
-
-#: views/SlideshowPluginSlideInserter/insert-text-button.php:1
-msgid "Text slide"
-msgstr "Tekst slide"
-
-#: views/SlideshowPluginSlideInserter/insert-video-button.php:1
-msgid "Video slide"
-msgstr "Video slide"
-
-#: views/SlideshowPluginSlideInserter/search-popup.php:6
-msgid "Search"
-msgstr "Zoek"
-
-#: views/SlideshowPluginSlideInserter/search-popup.php:7
-msgid "Search images by title or ID"
-msgstr "Zoek afbeeldingen op titel of ID"
-
-#: views/SlideshowPluginUpload/upload-button.php:1
-msgid "Upload/Manage Images"
-msgstr "Upload/Beheer Afbeeldingen"
-
-#: views/SlideshowPluginWidget/form.php:9
-msgid "Random Slideshow"
-msgstr "Willekeurige Slideshow"
-
-#~ msgid "Custom style editor (Does not work with a Strict Doctype)"
-#~ msgstr "Aangepaste stijl bewerker (Werkt niet met een Strict Doctype)"
-
-#~ msgid "Has the Slideshow plugin helped you?"
-#~ msgstr "Heeft de Slideshow plugin je geholpen?"
-
-#~ msgid "Help it back!"
-#~ msgstr "Help hem terug!"
-
-#~ msgid ""
-#~ "If this plugin has filled you with happiness, please support the upkeep "
-#~ "of the plugin by rating it on Wordpress, posting a suggestion for "
-#~ "improvement on the support forum, or making a donation."
-#~ msgstr ""
-#~ "Als deze plugin je met blijdschap heeft vervuld, zou ik het enorm "
-#~ "waarderen als je de plugin wilt beoordelen op Wordpress, een suggestie "
-#~ "wilt maken voor verbetering, of een donatie doen wilt."
-
-#~ msgid "Click on an image to insert it as a slide"
-#~ msgstr "Klik op een plaatje om deze in te voegen als slide"
-
-#~ msgid "Width of the slideshow"
-#~ msgstr "Breedte van de slideshow"
-
-#~ msgid "Defaults to parent's width."
-#~ msgstr "Standaard ingesteld op de breedte van het bovenliggende element."
-
-#~ msgid "Send user to image URL on click"
-#~ msgstr ""
-#~ "Wanner de gebruiker op de afbeelding klikt, stuur hem naar de URL van het "
-#~ "plaatje"
-
-#~ msgid "Style"
-#~ msgstr "Style"
-
-#~ msgid "Custom style"
-#~ msgstr "Aangepaste stijl"
-
-#~ msgid "Leave any field open to use default value."
-#~ msgstr "Een veld dat open wordt gelaten neemt de standaardwaarde aan."
Binary file web/wp-content/plugins/slideshow-jquery-image-gallery/languages/slideshow-plugin-ru_RU.mo has changed
--- a/web/wp-content/plugins/slideshow-jquery-image-gallery/languages/slideshow-plugin-ru_RU.po	Wed Dec 19 12:35:13 2012 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,460 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: Slideshow Plugin\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2012-11-10 13:13+0100\n"
-"PO-Revision-Date: 2012-11-10 13:13+0100\n"
-"Last-Translator: Stefan Boonstra <stefanboonstra@hotmail.com>\n"
-"Language-Team: Stefan Boonstra <wordpress@stefanboonstra.com>\n"
-"Language: ru_UA\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Poedit-KeywordsList: _e;__\n"
-"X-Poedit-Basepath: ../\n"
-"X-Generator: Poedit 1.5.4\n"
-"X-Poedit-SearchPath-0: .\n"
-
-#: classes/SlideshowPluginPostType.php:40
-msgid "Slideshows"
-msgstr "Слайдшоу"
-
-#: classes/SlideshowPluginPostType.php:41
-#: views/SlideshowPluginWidget/form.php:7
-msgid "Slideshow"
-msgstr "Слайдшоу"
-
-#: classes/SlideshowPluginPostType.php:42
-msgid "Add New Slideshow"
-msgstr "Добавить новое Ñлайдшоу"
-
-#: classes/SlideshowPluginPostType.php:43
-msgid "Edit slideshow"
-msgstr "Редактировать Ñлайдшоу"
-
-#: classes/SlideshowPluginPostType.php:44
-msgid "New slideshow"
-msgstr "Ðовое Ñлайдшоу"
-
-#: classes/SlideshowPluginPostType.php:45
-msgid "View slideshow"
-msgstr "ПроÑмотр Ñлайдшоу"
-
-#: classes/SlideshowPluginPostType.php:46
-msgid "Search slideshows"
-msgstr "ПоиÑк Ñлайдшоу"
-
-#: classes/SlideshowPluginPostType.php:47
-#: classes/SlideshowPluginPostType.php:48
-msgid "No slideshows found"
-msgstr "Ðи одного Ñлайдшоу не найдено"
-
-#: classes/SlideshowPluginPostType.php:102
-msgid "Information"
-msgstr "ИнформациÑ"
-
-#: classes/SlideshowPluginPostType.php:111
-msgid "Slides List"
-msgstr "СпиÑок Ñлайдов"
-
-#: classes/SlideshowPluginPostType.php:120
-msgid "Slideshow Style"
-msgstr "Стиль Ñлайдшоу"
-
-#: classes/SlideshowPluginPostType.php:129
-msgid "Slideshow Settings"
-msgstr "ÐаÑтройки Ñлайдшоу"
-
-#: classes/SlideshowPluginPostType.php:389
-msgid "light"
-msgstr ""
-
-#: classes/SlideshowPluginPostType.php:391
-msgid "slide"
-msgstr ""
-
-#: classes/SlideshowPluginPostType.php:412
-msgid "Yes"
-msgstr "Да"
-
-#: classes/SlideshowPluginPostType.php:413
-msgid "No"
-msgstr "Ðет"
-
-#: classes/SlideshowPluginPostType.php:415
-msgid "The style used for this slideshow"
-msgstr "Стиль, иÑпользуемый в Ñтом Ñлайдшоу"
-
-#: classes/SlideshowPluginPostType.php:415
-msgid "Light"
-msgstr "Светлый"
-
-#: classes/SlideshowPluginPostType.php:415
-msgid "Dark"
-msgstr "Тёмный"
-
-#: classes/SlideshowPluginPostType.php:415
-msgid "Custom"
-msgstr "СобÑтвенный"
-
-#: classes/SlideshowPluginPostType.php:416
-msgid "Custom style editor"
-msgstr "Редактор ÑобÑтвенного ÑтилÑ"
-
-#: classes/SlideshowPluginPostType.php:417
-msgid "Animation used for transition between slides"
-msgstr "ÐнимациÑ, иÑÐ¿Ð¾Ð»ÑŒÐ·ÑƒÐµÐ¼Ð°Ñ Ð´Ð»Ñ Ð¿ÐµÑ€ÐµÑ…Ð¾Ð´Ð° между Ñлайдами"
-
-#: classes/SlideshowPluginPostType.php:417
-msgid "Slide"
-msgstr "Слайд"
-
-#: classes/SlideshowPluginPostType.php:417
-msgid "Fade"
-msgstr "Затухание"
-
-#: classes/SlideshowPluginPostType.php:417
-#: classes/SlideshowPluginPostType.php:418
-#: classes/SlideshowPluginPostType.php:419
-#: classes/SlideshowPluginPostType.php:420
-msgid "Animation"
-msgstr "Ðнимационные"
-
-#: classes/SlideshowPluginPostType.php:418
-msgid "Number of seconds the slide takes to slide in"
-msgstr "ЧиÑло Ñекунд, которое занимает поÑвление Ñлайда"
-
-#: classes/SlideshowPluginPostType.php:419
-msgid "Number of seconds the description takes to slide in"
-msgstr "ЧиÑло Ñекунд, которое занимает поÑвление текÑта"
-
-#: classes/SlideshowPluginPostType.php:420
-msgid "Seconds between changing slides"
-msgstr "Секунд между Ñменой Ñлайдов"
-
-#: classes/SlideshowPluginPostType.php:421
-msgid "Number of slides to fit into one slide"
-msgstr "ЧиÑло Ñлайдов, размещённых в одном Ñлайде"
-
-#: classes/SlideshowPluginPostType.php:421
-#: classes/SlideshowPluginPostType.php:422
-#: classes/SlideshowPluginPostType.php:423
-#: classes/SlideshowPluginPostType.php:424
-#: classes/SlideshowPluginPostType.php:425
-#: classes/SlideshowPluginPostType.php:426
-#: classes/SlideshowPluginPostType.php:427
-msgid "Display"
-msgstr "Визуальные"
-
-#: classes/SlideshowPluginPostType.php:422
-msgid "Width of the slideshow, set to parent&#39;s width on 0"
-msgstr ""
-"Ширина Ñлайдшоу. УÑтановите в 0 Ð´Ð»Ñ Ð¾Ð¿Ñ€ÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ ÑˆÐ¸Ñ€Ð¸Ð½Ñ‹ по родительÑкому "
-"Ñлементу"
-
-#: classes/SlideshowPluginPostType.php:423
-msgid "Height of the slideshow"
-msgstr "Ð’Ñ‹Ñота Ñлайдшоу"
-
-#: classes/SlideshowPluginPostType.php:424
-msgid "Height of the description boxes"
-msgstr "Ð’Ñ‹Ñота блока опиÑаниÑ"
-
-#: classes/SlideshowPluginPostType.php:425
-msgid "Fit image into slide (stretching it)"
-msgstr "УмеÑтить изображение в Ñлайд (раÑÑ‚Ñнуть его)"
-
-#: classes/SlideshowPluginPostType.php:426
-msgid "Show title and description"
-msgstr "Показать заголовок и опиÑание"
-
-#: classes/SlideshowPluginPostType.php:427
-msgid "Hide description box, it will pop up when a mouse hovers over the slide"
-msgstr ""
-"Скрыть блок опиÑаниÑ. Он будет поÑвлÑтьÑÑ Ð¿Ñ€Ð¸ наведении ÑƒÐºÐ°Ð·Ð°Ñ‚ÐµÐ»Ñ Ð¼Ñ‹ÑˆÐ¸ "
-"поверх Ñлайда"
-
-#: classes/SlideshowPluginPostType.php:428
-msgid "Automatically slide to the next slide"
-msgstr "ÐвтоматичеÑкий переход к Ñледующему Ñлайду"
-
-#: classes/SlideshowPluginPostType.php:428
-#: classes/SlideshowPluginPostType.php:429
-#: classes/SlideshowPluginPostType.php:430
-#: classes/SlideshowPluginPostType.php:431
-msgid "Control"
-msgstr "УправлÑющие"
-
-#: classes/SlideshowPluginPostType.php:429
-msgid "Return to the beginning of the slideshow after last slide"
-msgstr "ВернутьÑÑ Ð² начало Ñлайдшоу поÑле поÑледнего Ñлайда"
-
-#: classes/SlideshowPluginPostType.php:430
-msgid "Activate buttons (so the user can scroll through the slides)"
-msgstr "Ðктивировать кнопки (пользователь Ñможет пролиÑтывать Ñлайды)"
-
-#: classes/SlideshowPluginPostType.php:431
-msgid "Show control panel (play and pause button)"
-msgstr "Отображать панель ÑƒÐ¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ (кнопка воÑÐ¿Ñ€Ð¾Ð¸Ð·Ð²ÐµÐ´ÐµÐ½Ð¸Ñ Ð¸ оÑтанова)"
-
-#: classes/SlideshowPluginPostType.php:432
-msgid "Randomize slides"
-msgstr "Слайды в Ñлучайном порÑдке"
-
-#: classes/SlideshowPluginPostType.php:432
-#: classes/SlideshowPluginPostType.php:434
-msgid "Miscellaneous"
-msgstr "Разные"
-
-#: classes/SlideshowPluginPostType.php:434
-#, php-format
-msgid "Avoid content filter (disable if '%s' is shown)"
-msgstr "Избегать фильтра Ñодержимого (запрещено, еÑли отображаетÑÑ '%s' )"
-
-#: classes/SlideshowPluginShortcode.php:129
-msgid "No slideshow selected."
-msgstr ""
-
-#: classes/SlideshowPluginSlideInserter.php:138
-#: views/SlideshowPluginPostType/slides.php:2
-msgid "Insert"
-msgstr "Ð’Ñтавить"
-
-#: classes/SlideshowPluginSlideInserter.php:147
-msgid "Load more results"
-msgstr "Загрузить больше результатов"
-
-#: classes/SlideshowPluginSlideInserter.php:156
-msgid "No images were found, click here to upload some."
-msgstr "Ðе найдено изображений, щёлкните здеÑÑŒ Ð´Ð»Ñ Ð·Ð°Ð³Ñ€ÑƒÐ·ÐºÐ¸"
-
-#: classes/SlideshowPluginSlideInserter.php:216
-msgid "Are you sure you want to delete this slide?"
-msgstr ""
-
-#: classes/SlideshowPluginWidget.php:20
-msgid "Enables you to show your slideshows in the widget area of your website."
-msgstr "ПозволÑет отобразить ваше Ñлайдшоу в облаÑти виджетов вашего Ñайта"
-
-#: classes/SlideshowPluginWidget.php:26
-msgid "Slideshow Widget"
-msgstr "Виджет Ñлайдшоу"
-
-#: views/SlideshowPluginPostType/information.php:1
-msgid ""
-"To use this slideshow in your website either add this piece of shortcode to "
-"your posts or pages"
-msgstr ""
-"Ð”Ð»Ñ Ð¸ÑÐ¿Ð¾Ð»ÑŒÐ·Ð¾Ð²Ð°Ð½Ð¸Ñ Ñлайдшоу на вашем Ñайте добавьте Ñтот шорткод в ваши "
-"запиÑи или Ñтраницы"
-
-#: views/SlideshowPluginPostType/information.php:3
-msgid ""
-"Or add this piece of code to where ever in your website you want to place "
-"the slideshow"
-msgstr ""
-"Или добавьте Ñтот фрагмент кода в том меÑте, где вы желаете размеÑтить ваше "
-"Ñлайдшоу"
-
-#: views/SlideshowPluginPostType/information.php:5
-#, php-format
-msgid "Or go to the %swidgets page%s and show the slideshow as a widget."
-msgstr ""
-"Или отправьтеÑÑŒ на %sÑтраницу виджетов%s и отобразите Ñлайдшоу как виджет"
-
-#: views/SlideshowPluginPostType/settings.php:12
-msgid "settings"
-msgstr "наÑтройки"
-
-#: views/SlideshowPluginPostType/settings.php:26
-#: views/SlideshowPluginPostType/style-settings.php:8
-msgid "Default"
-msgstr "ИÑходное"
-
-#: views/SlideshowPluginPostType/slides.php:9
-msgid "Add slides to this slideshow by using one of the buttons above."
-msgstr "Добавить Ñлайды к Ñлайдшоу Ñ Ð¿Ð¾Ð¼Ð¾Ñ‰ÑŒÑŽ одной из кнопок ниже"
-
-#: views/SlideshowPluginPostType/slides.php:47
-#: views/SlideshowPluginPostType/slides.php:141
-#: views/SlideshowPluginWidget/form.php:2
-msgid "Title"
-msgstr "Заголовок"
-
-#: views/SlideshowPluginPostType/slides.php:48
-#: views/SlideshowPluginPostType/slides.php:142
-msgid "Description"
-msgstr "ОпиÑание"
-
-#: views/SlideshowPluginPostType/slides.php:49
-#: views/SlideshowPluginPostType/slides.php:143
-msgid "Background color"
-msgstr "Фоновый цвет"
-
-#: views/SlideshowPluginPostType/slides.php:55
-#: views/SlideshowPluginPostType/slides.php:110
-#: views/SlideshowPluginPostType/slides.php:149
-#: views/SlideshowPluginPostType/slides.php:197
-msgid "Same window"
-msgstr "Текущее окно"
-
-#: views/SlideshowPluginPostType/slides.php:56
-#: views/SlideshowPluginPostType/slides.php:111
-#: views/SlideshowPluginPostType/slides.php:150
-#: views/SlideshowPluginPostType/slides.php:198
-msgid "New window"
-msgstr "Ðовое окно"
-
-#: views/SlideshowPluginPostType/slides.php:60
-#: views/SlideshowPluginPostType/slides.php:115
-#: views/SlideshowPluginPostType/slides.php:154
-#: views/SlideshowPluginPostType/slides.php:202
-msgid "URL"
-msgstr "URL"
-
-#: views/SlideshowPluginPostType/slides.php:76
-#: views/SlideshowPluginPostType/slides.php:170
-msgid "Youtube Video ID"
-msgstr "ID видео на Youtube"
-
-#: views/SlideshowPluginPostType/slides.php:94
-#: views/SlideshowPluginPostType/slides.php:101
-msgid "Edit"
-msgstr "Редактировать"
-
-#: views/SlideshowPluginPostType/slides.php:126
-msgid ""
-"An error occurred while loading this slide, and it will not be present in "
-"the slideshow"
-msgstr ""
-"При загрузке Ñтого Ñлайда произошла ошибка, он не будет отображен в Ñлайдшоу"
-
-#: views/SlideshowPluginPostType/slides.php:131
-#: views/SlideshowPluginPostType/slides.php:162
-#: views/SlideshowPluginPostType/slides.php:177
-#: views/SlideshowPluginPostType/slides.php:211
-msgid "Delete slide"
-msgstr "Удалить Ñлайд"
-
-#: views/SlideshowPluginPostType/support-plugin.php:3
-msgid "Help to keep this plugin free!"
-msgstr "Помогите Ñохранить плагин Ñвободным!"
-
-#: views/SlideshowPluginPostType/support-plugin.php:6
-msgid ""
-"In order to keep you provided with the newest features, forum support, and "
-"bug-fixes, a lot of motivation is required. Therefore I'm kindly asking you "
-"to consider making a small donation to the plugin or rating it as 5-stars on "
-"Wordpress.org. Thank you in advance!"
-msgstr ""
-"Ð”Ð»Ñ Ð¿Ñ€ÐµÐ´Ð¾ÑÑ‚Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð²Ð°Ð¼ новейших возможноÑтей, поддержки на форуме, "
-"иÑправлении ошибок необходима Ð·Ð½Ð°Ñ‡Ð¸Ñ‚ÐµÐ»ÑŒÐ½Ð°Ñ Ð¼Ð¾Ñ‚Ð¸Ð²Ð°Ñ†Ð¸Ñ. ПоÑтому проÑим Ð²Ð°Ñ "
-"Ñделать небольшое пожертвование плагину или оценить его в пÑть баллов на "
-"Ñайте Wordpress.org. Заранее ÑпаÑибо!"
-
-#: views/SlideshowPluginPostType/support-plugin.php:15
-msgid "Rate on Wordpress.org"
-msgstr "ПоÑтавить оценку на Wordpress.org"
-
-#: views/SlideshowPluginPostType/support-plugin.php:24
-msgid "Questions / Suggestions"
-msgstr "ВопроÑÑ‹ / ПредложениÑ"
-
-#: views/SlideshowPluginShortcode/shortcode-inserter.php:4
-#: views/SlideshowPluginShortcode/shortcode-inserter.php:9
-#: views/SlideshowPluginShortcode/shortcode-inserter.php:16
-msgid "Insert a Slideshow"
-msgstr ""
-
-#: views/SlideshowPluginShortcode/shortcode-inserter.php:6
-#: views/SlideshowPluginShortcode/shortcode-inserter.php:50
-msgid "Insert Slideshow"
-msgstr ""
-
-#: views/SlideshowPluginShortcode/shortcode-inserter.php:26
-msgid "Select a slideshow"
-msgstr ""
-
-#: views/SlideshowPluginShortcode/shortcode-inserter.php:35
-msgid "Untitled slideshow"
-msgstr ""
-
-#: views/SlideshowPluginShortcode/shortcode-inserter.php:55
-msgid "Cancel"
-msgstr ""
-
-#: views/SlideshowPluginShortcode/shortcode-inserter.php:66
-#, php-format
-msgid ""
-"It seems you haven't created any slideshows yet. %sYou can create a "
-"slideshow here!%s"
-msgstr ""
-
-#: views/SlideshowPluginSlideInserter/insert-image-button.php:1
-msgid "Image slide"
-msgstr "Слайд Ñ Ð¸Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸ÐµÐ¼"
-
-#: views/SlideshowPluginSlideInserter/insert-text-button.php:1
-msgid "Text slide"
-msgstr "ТекÑтовый Ñлайд"
-
-#: views/SlideshowPluginSlideInserter/insert-video-button.php:1
-msgid "Video slide"
-msgstr "Видео Ñлайд"
-
-#: views/SlideshowPluginSlideInserter/search-popup.php:6
-msgid "Search"
-msgstr "ПоиÑк"
-
-#: views/SlideshowPluginSlideInserter/search-popup.php:7
-msgid "Search images by title or ID"
-msgstr "ПоиÑк Ð¸Ð·Ð¾Ð±Ñ€Ð°Ð¶ÐµÐ½Ð¸Ñ Ð¿Ð¾ заголовку или ID"
-
-#: views/SlideshowPluginUpload/upload-button.php:1
-msgid "Upload/Manage Images"
-msgstr "Загрузка/Управление изображениÑми"
-
-#: views/SlideshowPluginWidget/form.php:9
-msgid "Random Slideshow"
-msgstr "Случайный порÑдок Ñлайдшоу"
-
-#~ msgid "Custom style editor (Does not work with a Strict Doctype)"
-#~ msgstr "Aangepaste stijl bewerker (Werkt niet met een Strict Doctype)"
-
-#~ msgid "Has the Slideshow plugin helped you?"
-#~ msgstr "Heeft de Slideshow plugin je geholpen?"
-
-#~ msgid "Help it back!"
-#~ msgstr "Help hem terug!"
-
-#~ msgid ""
-#~ "If this plugin has filled you with happiness, please support the upkeep "
-#~ "of the plugin by rating it on Wordpress, posting a suggestion for "
-#~ "improvement on the support forum, or making a donation."
-#~ msgstr ""
-#~ "Als deze plugin je met blijdschap heeft vervuld, zou ik het enorm "
-#~ "waarderen als je de plugin wilt beoordelen op Wordpress, een suggestie "
-#~ "wilt maken voor verbetering, of een donatie doen wilt."
-
-#~ msgid "Click on an image to insert it as a slide"
-#~ msgstr "Klik op een plaatje om deze in te voegen als slide"
-
-#~ msgid "Width of the slideshow"
-#~ msgstr "Breedte van de slideshow"
-
-#~ msgid "Defaults to parent's width."
-#~ msgstr "Standaard ingesteld op de breedte van het bovenliggende element."
-
-#~ msgid "Send user to image URL on click"
-#~ msgstr ""
-#~ "Wanner de gebruiker op de afbeelding klikt, stuur hem naar de URL van het "
-#~ "plaatje"
-
-#~ msgid "Style"
-#~ msgstr "Style"
-
-#~ msgid "Custom style"
-#~ msgstr "Aangepaste stijl"
-
-#~ msgid "Leave any field open to use default value."
-#~ msgstr "Een veld dat open wordt gelaten neemt de standaardwaarde aan."
Binary file web/wp-content/plugins/slideshow-jquery-image-gallery/languages/slideshow-plugin-zh_CN.mo has changed
--- a/web/wp-content/plugins/slideshow-jquery-image-gallery/languages/slideshow-plugin-zh_CN.po	Wed Dec 19 12:35:13 2012 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,412 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: Slideshow Plugin\n"
-"Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2012-11-10 13:14+0100\n"
-"PO-Revision-Date: 2012-11-10 13:14+0100\n"
-"Last-Translator: Stefan Boonstra <stefanboonstra@hotmail.com>\n"
-"Language-Team: Kevin Tell\n"
-"Language: zh_CN\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Poedit-KeywordsList: _e;__\n"
-"X-Poedit-Basepath: ../\n"
-"X-Poedit-SourceCharset: UTF-8\n"
-"X-Generator: Poedit 1.5.4\n"
-"X-Poedit-SearchPath-0: .\n"
-
-#: classes/SlideshowPluginPostType.php:40
-msgid "Slideshows"
-msgstr "å¹»ç¯ç‰‡"
-
-#: classes/SlideshowPluginPostType.php:41
-#: views/SlideshowPluginWidget/form.php:7
-msgid "Slideshow"
-msgstr "å¹»ç¯ç‰‡"
-
-#: classes/SlideshowPluginPostType.php:42
-msgid "Add New Slideshow"
-msgstr ""
-
-#: classes/SlideshowPluginPostType.php:43
-msgid "Edit slideshow"
-msgstr ""
-
-#: classes/SlideshowPluginPostType.php:44
-msgid "New slideshow"
-msgstr ""
-
-#: classes/SlideshowPluginPostType.php:45
-msgid "View slideshow"
-msgstr ""
-
-#: classes/SlideshowPluginPostType.php:46
-msgid "Search slideshows"
-msgstr ""
-
-#: classes/SlideshowPluginPostType.php:47
-#: classes/SlideshowPluginPostType.php:48
-msgid "No slideshows found"
-msgstr ""
-
-#: classes/SlideshowPluginPostType.php:102
-msgid "Information"
-msgstr "ä¿¡æ¯"
-
-#: classes/SlideshowPluginPostType.php:111
-msgid "Slides List"
-msgstr ""
-
-#: classes/SlideshowPluginPostType.php:120
-msgid "Slideshow Style"
-msgstr "å¹»ç¯ç‰‡å±•示样å¼"
-
-#: classes/SlideshowPluginPostType.php:129
-msgid "Slideshow Settings"
-msgstr "å¹»ç¯ç‰‡è®¾ç½®"
-
-#: classes/SlideshowPluginPostType.php:389
-msgid "light"
-msgstr ""
-
-#: classes/SlideshowPluginPostType.php:391
-msgid "slide"
-msgstr ""
-
-#: classes/SlideshowPluginPostType.php:412
-msgid "Yes"
-msgstr ""
-
-#: classes/SlideshowPluginPostType.php:413
-msgid "No"
-msgstr ""
-
-#: classes/SlideshowPluginPostType.php:415
-msgid "The style used for this slideshow"
-msgstr ""
-
-#: classes/SlideshowPluginPostType.php:415
-msgid "Light"
-msgstr ""
-
-#: classes/SlideshowPluginPostType.php:415
-msgid "Dark"
-msgstr ""
-
-#: classes/SlideshowPluginPostType.php:415
-msgid "Custom"
-msgstr ""
-
-#: classes/SlideshowPluginPostType.php:416
-msgid "Custom style editor"
-msgstr ""
-
-#: classes/SlideshowPluginPostType.php:417
-msgid "Animation used for transition between slides"
-msgstr "å¹»ç¯ç‰‡æ»‘动的动画效果设置"
-
-#: classes/SlideshowPluginPostType.php:417
-msgid "Slide"
-msgstr ""
-
-#: classes/SlideshowPluginPostType.php:417
-msgid "Fade"
-msgstr ""
-
-#: classes/SlideshowPluginPostType.php:417
-#: classes/SlideshowPluginPostType.php:418
-#: classes/SlideshowPluginPostType.php:419
-#: classes/SlideshowPluginPostType.php:420
-msgid "Animation"
-msgstr "动æ€"
-
-#: classes/SlideshowPluginPostType.php:418
-msgid "Number of seconds the slide takes to slide in"
-msgstr "å¹»ç¯ç‰‡æ»‘动速度"
-
-#: classes/SlideshowPluginPostType.php:419
-msgid "Number of seconds the description takes to slide in"
-msgstr "“æè¿°â€æ»‘动速度"
-
-#: classes/SlideshowPluginPostType.php:420
-msgid "Seconds between changing slides"
-msgstr "å¹»ç¯ç‰‡é—´ç½®æ¢çš„æ—¶é—´é—´éš”"
-
-#: classes/SlideshowPluginPostType.php:421
-msgid "Number of slides to fit into one slide"
-msgstr "åŒä¸€å¹…å¹»ç¯ç‰‡ä¸­æ˜¾ç¤ºå¤šå°‘图片"
-
-#: classes/SlideshowPluginPostType.php:421
-#: classes/SlideshowPluginPostType.php:422
-#: classes/SlideshowPluginPostType.php:423
-#: classes/SlideshowPluginPostType.php:424
-#: classes/SlideshowPluginPostType.php:425
-#: classes/SlideshowPluginPostType.php:426
-#: classes/SlideshowPluginPostType.php:427
-msgid "Display"
-msgstr "显示"
-
-#: classes/SlideshowPluginPostType.php:422
-msgid "Width of the slideshow, set to parent&#39;s width on 0"
-msgstr "å¹»ç¯ç‰‡å®½åº¦ï¼Œ0为继承父元素宽度"
-
-#: classes/SlideshowPluginPostType.php:423
-msgid "Height of the slideshow"
-msgstr "å¹»ç¯ç‰‡é«˜åº¦"
-
-#: classes/SlideshowPluginPostType.php:424
-msgid "Height of the description boxes"
-msgstr "å¹»ç¯ç‰‡ä¸­æè¿°çª—å£çš„高度"
-
-#: classes/SlideshowPluginPostType.php:425
-msgid "Fit image into slide (stretching it)"
-msgstr "图片适应显示 (峿‹‰ä¼¸å›¾ç‰‡"
-
-#: classes/SlideshowPluginPostType.php:426
-msgid "Show title and description"
-msgstr "显示标题和æè¿°"
-
-#: classes/SlideshowPluginPostType.php:427
-msgid "Hide description box, it will pop up when a mouse hovers over the slide"
-msgstr "éšè—æè¿°çª—å£ï¼Œåªæœ‰é¼ æ ‡ç§»è‡³å¹»ç¯ç‰‡æ‰å¼¹å‡º"
-
-#: classes/SlideshowPluginPostType.php:428
-msgid "Automatically slide to the next slide"
-msgstr "å¹»ç¯ç‰‡è‡ªåŠ¨æ»šåŠ¨æ˜¾ç¤º"
-
-#: classes/SlideshowPluginPostType.php:428
-#: classes/SlideshowPluginPostType.php:429
-#: classes/SlideshowPluginPostType.php:430
-#: classes/SlideshowPluginPostType.php:431
-msgid "Control"
-msgstr "控制"
-
-#: classes/SlideshowPluginPostType.php:429
-msgid "Return to the beginning of the slideshow after last slide"
-msgstr "循环展示幻ç¯ç‰‡"
-
-#: classes/SlideshowPluginPostType.php:430
-msgid "Activate buttons (so the user can scroll through the slides)"
-msgstr "激活按钮 (用户å¯é€šè¿‡æŒ‰é’®å·¦å³æ»šåŠ¨æ˜¾ç¤ºå¹»ç¯ç‰‡)"
-
-#: classes/SlideshowPluginPostType.php:431
-msgid "Show control panel (play and pause button)"
-msgstr "æ˜¾ç¤ºæŽ§åˆ¶é¢æ¿ (æ’­æ”¾å’Œåœæ­¢æŒ‰é’®)"
-
-#: classes/SlideshowPluginPostType.php:432
-msgid "Randomize slides"
-msgstr "éšæœºå¹»ç¯ç‰‡"
-
-#: classes/SlideshowPluginPostType.php:432
-#: classes/SlideshowPluginPostType.php:434
-msgid "Miscellaneous"
-msgstr "å…¶ä»–"
-
-#: classes/SlideshowPluginPostType.php:434
-#, php-format
-msgid "Avoid content filter (disable if '%s' is shown)"
-msgstr ""
-
-#: classes/SlideshowPluginShortcode.php:129
-msgid "No slideshow selected."
-msgstr ""
-
-#: classes/SlideshowPluginSlideInserter.php:138
-#: views/SlideshowPluginPostType/slides.php:2
-msgid "Insert"
-msgstr "æ’å…¥"
-
-#: classes/SlideshowPluginSlideInserter.php:147
-msgid "Load more results"
-msgstr ""
-
-#: classes/SlideshowPluginSlideInserter.php:156
-msgid "No images were found, click here to upload some."
-msgstr ""
-
-#: classes/SlideshowPluginSlideInserter.php:216
-msgid "Are you sure you want to delete this slide?"
-msgstr ""
-
-#: classes/SlideshowPluginWidget.php:20
-msgid "Enables you to show your slideshows in the widget area of your website."
-msgstr ""
-
-#: classes/SlideshowPluginWidget.php:26
-msgid "Slideshow Widget"
-msgstr ""
-
-#: views/SlideshowPluginPostType/information.php:1
-msgid ""
-"To use this slideshow in your website either add this piece of shortcode to "
-"your posts or pages"
-msgstr "è¦åœ¨ä½ çš„网站使用幻ç¯ç‰‡åŠŸèƒ½ï¼Œè¯·æŠŠä¸‹é¢ä»£ç åŠ å…¥åˆ°æ–‡ç« æˆ–è€…é¡µé¢å†…:"
-
-#: views/SlideshowPluginPostType/information.php:3
-msgid ""
-"Or add this piece of code to where ever in your website you want to place "
-"the slideshow"
-msgstr "或者加入这串代ç åˆ°ä½ ç½‘站想展示的地方:"
-
-#: views/SlideshowPluginPostType/information.php:5
-#, php-format
-msgid "Or go to the %swidgets page%s and show the slideshow as a widget."
-msgstr "%s或者到å°å·¥å…·é¡µé¢æŠŠå¹»ç¯ç‰‡åŠ å…¥å°å·¥å…·å†…。%s"
-
-#: views/SlideshowPluginPostType/settings.php:12
-msgid "settings"
-msgstr "设置"
-
-#: views/SlideshowPluginPostType/settings.php:26
-#: views/SlideshowPluginPostType/style-settings.php:8
-msgid "Default"
-msgstr ""
-
-#: views/SlideshowPluginPostType/slides.php:9
-msgid "Add slides to this slideshow by using one of the buttons above."
-msgstr ""
-
-#: views/SlideshowPluginPostType/slides.php:47
-#: views/SlideshowPluginPostType/slides.php:141
-#: views/SlideshowPluginWidget/form.php:2
-msgid "Title"
-msgstr ""
-
-#: views/SlideshowPluginPostType/slides.php:48
-#: views/SlideshowPluginPostType/slides.php:142
-msgid "Description"
-msgstr ""
-
-#: views/SlideshowPluginPostType/slides.php:49
-#: views/SlideshowPluginPostType/slides.php:143
-msgid "Background color"
-msgstr ""
-
-#: views/SlideshowPluginPostType/slides.php:55
-#: views/SlideshowPluginPostType/slides.php:110
-#: views/SlideshowPluginPostType/slides.php:149
-#: views/SlideshowPluginPostType/slides.php:197
-msgid "Same window"
-msgstr ""
-
-#: views/SlideshowPluginPostType/slides.php:56
-#: views/SlideshowPluginPostType/slides.php:111
-#: views/SlideshowPluginPostType/slides.php:150
-#: views/SlideshowPluginPostType/slides.php:198
-msgid "New window"
-msgstr ""
-
-#: views/SlideshowPluginPostType/slides.php:60
-#: views/SlideshowPluginPostType/slides.php:115
-#: views/SlideshowPluginPostType/slides.php:154
-#: views/SlideshowPluginPostType/slides.php:202
-msgid "URL"
-msgstr ""
-
-#: views/SlideshowPluginPostType/slides.php:76
-#: views/SlideshowPluginPostType/slides.php:170
-msgid "Youtube Video ID"
-msgstr ""
-
-#: views/SlideshowPluginPostType/slides.php:94
-#: views/SlideshowPluginPostType/slides.php:101
-msgid "Edit"
-msgstr ""
-
-#: views/SlideshowPluginPostType/slides.php:126
-msgid ""
-"An error occurred while loading this slide, and it will not be present in "
-"the slideshow"
-msgstr ""
-
-#: views/SlideshowPluginPostType/slides.php:131
-#: views/SlideshowPluginPostType/slides.php:162
-#: views/SlideshowPluginPostType/slides.php:177
-#: views/SlideshowPluginPostType/slides.php:211
-msgid "Delete slide"
-msgstr ""
-
-#: views/SlideshowPluginPostType/support-plugin.php:3
-msgid "Help to keep this plugin free!"
-msgstr "ååŠ©ä¿æŒæœ¬æ’ä»¶å…è´¹"
-
-#: views/SlideshowPluginPostType/support-plugin.php:6
-msgid ""
-"In order to keep you provided with the newest features, forum support, and "
-"bug-fixes, a lot of motivation is required. Therefore I'm kindly asking you "
-"to consider making a small donation to the plugin or rating it as 5-stars on "
-"Wordpress.org. Thank you in advance!"
-msgstr ""
-"我很爽快地希望你们能考虑对本æ’ä»¶ä½œå‡ºä¸€äº›å°æèµ ï¼Œæˆ–è€…èƒ½åœ¨wordpress.org给予5星"
-"å¥½è¯„ï¼Œè¿™æ ·èƒ½è®©æˆ‘ä¿æŒç§¯æžæ€§ï¼Œåœ¨æœªæ¥æä¾›ç»™ä½ ä»¬æ’ä»¶çš„æŒç»­æ›´æ–°ã€è®ºå›æ”¯æŒå’Œbug的修"
-"å¤ï¼Œå…ˆè·Ÿä½ ä»¬æå‰è°¢è°¢ï¼"
-
-#: views/SlideshowPluginPostType/support-plugin.php:15
-msgid "Rate on Wordpress.org"
-msgstr "为本æ’件打分"
-
-#: views/SlideshowPluginPostType/support-plugin.php:24
-msgid "Questions / Suggestions"
-msgstr "问题/建议"
-
-#: views/SlideshowPluginShortcode/shortcode-inserter.php:4
-#: views/SlideshowPluginShortcode/shortcode-inserter.php:9
-#: views/SlideshowPluginShortcode/shortcode-inserter.php:16
-msgid "Insert a Slideshow"
-msgstr ""
-
-#: views/SlideshowPluginShortcode/shortcode-inserter.php:6
-#: views/SlideshowPluginShortcode/shortcode-inserter.php:50
-msgid "Insert Slideshow"
-msgstr ""
-
-#: views/SlideshowPluginShortcode/shortcode-inserter.php:26
-msgid "Select a slideshow"
-msgstr ""
-
-#: views/SlideshowPluginShortcode/shortcode-inserter.php:35
-msgid "Untitled slideshow"
-msgstr ""
-
-#: views/SlideshowPluginShortcode/shortcode-inserter.php:55
-msgid "Cancel"
-msgstr ""
-
-#: views/SlideshowPluginShortcode/shortcode-inserter.php:66
-#, php-format
-msgid ""
-"It seems you haven't created any slideshows yet. %sYou can create a "
-"slideshow here!%s"
-msgstr ""
-
-#: views/SlideshowPluginSlideInserter/insert-image-button.php:1
-msgid "Image slide"
-msgstr "图示幻ç¯ç‰‡"
-
-#: views/SlideshowPluginSlideInserter/insert-text-button.php:1
-msgid "Text slide"
-msgstr "文本幻ç¯ç‰‡"
-
-#: views/SlideshowPluginSlideInserter/insert-video-button.php:1
-msgid "Video slide"
-msgstr "视频幻ç¯ç‰‡"
-
-#: views/SlideshowPluginSlideInserter/search-popup.php:6
-msgid "Search"
-msgstr ""
-
-#: views/SlideshowPluginSlideInserter/search-popup.php:7
-msgid "Search images by title or ID"
-msgstr ""
-
-#: views/SlideshowPluginUpload/upload-button.php:1
-msgid "Upload/Manage Images"
-msgstr ""
-
-#: views/SlideshowPluginWidget/form.php:9
-msgid "Random Slideshow"
-msgstr ""
-
-#~ msgid "Leave any field open to use default value."
-#~ msgstr "Een veld dat open wordt gelaten neemt de standaardwaarde aan."
--- a/web/wp-content/plugins/slideshow-jquery-image-gallery/readme.txt	Wed Dec 19 12:35:13 2012 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,259 +0,0 @@
-=== Slideshow ===
-
-Contributors: stefanboonstra
-Donate link: http://stefanboonstra.com/donate-to-slideshow/
-Tags: slideshow, slider, slide, slides, show, images, image, photo, gallery, galleries, jquery, javascript, video, text
-Requires at least: 3.3
-Tested up to: 3.4.2
-Stable tag: 2.1.17
-License: GPLv2
-
-Integrate a fancy slideshow in just five steps. - Rainbows. Rainbows everywhere.
-
-
-== Description ==
-
-Slideshow provides an easy way to integrate a slideshow for any Wordpress installation.
-
-Any image can be loaded into the slideshow by picking it from the Wordpress media page, even images you've already
-uploaded can be inserted into your slideshow right away!
-
-Fancy doing something crazy? You can create and use as many slideshows as you'd like, with
-different images, settings and styles for each one of them.
-
-= Features =
-
- - Create as many slideshows with as many slides as you like
- - Image slides
- - Text slides
- - Video slides
- - Place it anywhere on your website
- - Run multiple slideshows on the same page
- - Change animations and handling
- - Customize to taste
- - Shows that visitor who's boss
-
-= Languages =
-
- - English
- - Dutch
- - Russian (Translated by [Oleg Fritz](http://www.facebook.com/profile.php?id=100001331241069))
- - Chinese (Translated by [Kevin Tell](http://www.ivygg.com/))
-
- Feel free to send me your own translation of the plugin to my e-mail address: wordpress@stefanboonstra.com. Many
- thanks in advance!
-
-= Project board =
-
-Check upcoming features, bug-fixes and development progress that are currently on the Slideshow project board at:
-[Slideshow project board - Trello.com](https://trello.com/board/slideshow-plugin-wordpress/506311260cc04591010463c2)
-
-
-== Installation ==
-
-1. Install Slideshow either via the WordPress.org plugin directory, or by uploading the files to your server.
-
-2. After activating Slideshow, you can create a new slideshow.
-
-3. Click on 'Insert Image Slide' to insert an image slide, a popup will appear where you can search for the desired
-image. Insert the image by clicking 'Insert'
-
-4. Use the shortcode or code snippet visible in your slideshow admin panel to deploy your slideshow anywhere on your website,
-or use the widget to show any of your slideshows in the sidebar of your website.
-
-5. Feel like a sir.
-
-
-== Frequently Asked Questions ==
-
-= How do I add image slides? =
-
-You can choose from images that have already been uploaded to your Wordpress website by clicking on the
-'Insert Image Slide' button in the slides list. A screen will pop up and here you are able to search your image files
-by name for image you want to use. If you want to add new images to the slideshow, you need to upload them to the
-Wordpress media page.
-
-= The slideshow does not show up / The slideshow looks like it's not styled =
-
-- The slideshow is mostly called after the `</head>` tag, which means the scripts and stylesheet need to load in the footer
-of the website. A theme that has no `<?php wp_footer(); ?>` call in it's footer will not be able to load the slideshow's
-scripts.
-
-- Often when the slideshow isn't showing, there's a javascript error somewhere on the page and this error has caused
-javascript to break. For the slideshow to work again, this error needs to be fixed. Check if any errors were thrown by
-opening Google Chrome or Firefox (with Firebug installed) and press the 'F12' key. Errors show in the console tab.
-
-= I chose the 'Custom' style option for my slideshow, but the slideshow is not styled anymore =
-
-Since the slideshow is most often called after the </head> tag, the slideshow can't print it's styles in the head of
-the website and has to output it on the page. A strict doctype does not allow stylesheets in the body and thus the
-slideshow may not be styled.
-
-
-== Screenshots ==
-
-1. Here's what some default slideshows can look like. Sit back, grab a beer, enjoy.
-
-2. Create a new slideshow. A shortcode and a code snippet of how to call it is already visible.
-
-3. If you haven't uploaded any images yet, you can do so on the Wordpress media page. Don't forget to insert the images into the slideshow after uploading!
-
-4. Click the 'Insert Image Slide' button in the Slides List to search and pick images from the Wordpress media page.
-
-5. The images you selected are directly visible in your Slides List, don't forget to save!
-
-6. Not satisfied with the handling or styling of the slideshow? Customize!
-
-
-== Changelog ==
-
-= 2.2.0 Pre-release =
-*   Slides can now be randomized.
-*   Multiple slideshows can now be shown with each its separate styling.
-*   Users can now search insertable images by post id.
-
-= 2.1.17 =
-*   Fixed: Invalid argument being supplied for the foreach loop in SlideshowPluginPostType on line 352
-*   Fixed: Undefined index being thrown by URL target setting on slideshow creation.
-*   Video slide now accepts YouTube URLs as well.
-
-= 2.1.16 =
-*   Security update enabling HTML in slides again, but only allowing it in a very strict format without any scripts.
-*   Added shortcode editor, which provides a more convenient way of inserting slideshows in your posts and pages.
-*   Updated the way slideshows are retrieved. A faulty ID will no longer cause the slideshow to not show at all.
-*   Slideshows can now also be fetched by their slugs.
-*   The example shortcode's ID on the slideshow settings page is now surrounded by quotes to prevent confusion.
-
-= 2.1.15 =
-*   Fixed: Security issues.
-*   Added Chinese translation.
-
-= 2.1.14 =
-*   Fixed: Text slide descriptions allow HTML again
-
-= 2.1.13 =
-*   Fixed: PHP security issues.
-*   Set order of images gotten in 'Image slide' pop-up to post date, descending.
-
-= 2.1.12 =
-*   Moved slideshow activation to the footer script. Footer jQuery scripts are now supported.
-
-= 2.1.11 =
-*   Fixed: Conflict with the Gravity Forms plugin.
-
-= 2.1.10 =
-*   Fixed: Slideshow widget form now is compatible with older versions of PHP, that didn't recognize a null value as a set value.
-
-= 2.1.9 =
-*   Fixed: Not all admin themes support scripts in the admin footer, admin scripts are moved to the header.
-
-= 2.1.8 =
-*   Option added to be able to control whether to use a filter, or to directly output on shortcode.
-
-= 2.1.7 =
-*   Fixed: Slideshow in some cases unable to show next slide in fade animation.
-
-= 2.1.6 =
-*   Slideshow widgets are loaded using theme sidebar settings, making the widget more dynamic.
-*   Fixed: Slideshow widget title can now be set to an empty value.
-
-= 2.1.5 =
-*   Fixed: Wordpress intervened with the HTML output by the shortcode, this caused scripts to break.
-*   Fixed: Slideshow width isn't affected by width-less elements anymore, instead it seeks the first div's width.
-
-= 2.1.4 =
-*   Fixed: Slideshows in posts are now longer broken by Wordpress inserted 'em' tags.
-*   Fixed: Image borders no longer fall off-slide.
-
-= 2.1.3 =
-*   Fixed: Overflow container now adapts to its parent element correctly.
-*   Fixed: Internet Explorer now shows control panel (buttons etc.) on top of the Flash element.
-*   Fixed: Images are now loaded by the Wordpress function, rather than being loaded from the database's 'guid'.
-
-= 2.1.2 =
-*   Wordpress media uploader link in image inserter pop-up now opens in a new window.
-*   Fixed: Image inserter pop-up CSS no longer pushes the 'insert' buttons off-screen.
-
-= 2.1.1 =
-*   Fixed: Settings meta-box threw an unexpected 'T_ENDFOREACH' since a shorthand PHP tag was used improperly.
-
-= 2.1.0 =
-*   Added Youtube video slides.
-*   Slide URLs can now be chosen to open in a new window.
-*   Added headers above settings, giving the user mover oversight.
-*   Endless scrolling is now available in the image inserter pop up.
-*   Images are now centered in their slides by default.
-*   Script is now activated on document ready, not window load.
-*   Hid slides in another element so that buttons could overflow the slideshow container.
-*   Fixed: Hide-away settings were influenced by their own settings fields.
-*   Fixed: Stretching was not always handled correctly.
-*   Fixed: Script counter made the first view show twice.
-
-= 2.0.1 =
-*   Fixed: Version 1.x.x slides disappeared after updating to version 2.0.0. An automatic converter has been added.
-
-= 2.0.0 =
-*   Complete sideshow script revision to support new features.
-*   The script now supports two kinds of animations: 'Slide' and 'Fade'.
-*   Multiple images can be shown in one slide, instead of one.
-*   Text slides are available.
-*   Descriptions are more cooperative, they don't overlap the entire image anymore. (Instead they hide or have a user-defined fixed height)
-*   Multiple slideshows can now be shown on one page.
-*   Play and pause buttons are now available, as is the option not to auto-play and/or loop the slideshow.
-*   Stylesheets no longer partially depend on the website's stylesheet, except for the fonts.
-*   The script and its functional stylesheet are now compressed to save loading time.
-*   Added jQuery sortables script to sort slides
-*   Images you've already uploaded and attached to other posts can now be loaded into the slideshow, saving disk space (and time).
-
-= 1.3.5 =
-*   Fixed: Namespace complications found with the Slideshow widget, renamed all classes.
-
-= 1.3.4 =
-*   Fixed: Custom width of the slideshow will no longer cause buttons to fall off-screeen.
-
-= 1.3.3 =
-*   Extended compatibility to servers that do not support short php opening tags.
-
-= 1.3.2 =
-*   Fixed: 1.3.1 Bugfix failed to work, fixed problem entirely after reproducing it.
-*   Added alternative way to load default css into empty custom-style box, so that users without 'allow_url_fopen' enabled aren't influenced negatively by it.
-
-= 1.3.1 =
-*   Fixed: Check if function 'file_get_contents' exists before calling it, some servers have this disabled. (This throws errors and messes up the plugin)
-
-= 1.3.0 =
-*   Added Dutch translation.
-*   Custom styles for each slideshow are now available to be more compatable with every theme. (Black and transparent scheme)
-*   Encapsulated a css class so that it does not interfere with anything outside the slideshow_container.
-*   Moved slides list to the side, saving space on the slideshow specific settings page.
-*   Settings bugs completely fixed, finally. (Previous version deleted post-meta on auto-save)
-*   Moved Slideshow settings and images script to inside the slideshow_container, outputting a more coherent whole.
-*   Settings moved from multiple meta keys to a single one. (This resets everyone's settings)
-*   Added a Wordpress media upload button to the slides list, this simplifies attaching images to a slideshow.
-*   Better way of including the jQuery library is now being used.
-*   Fixed bug with the number of slides shown in the slideshow stuck at the default value of five.
-
-= 1.2.1 =
-*   Fixed: Slideshow specific settings not saving.
-
-= 1.2.0 =
-*   Slideshows can now be placed in posts as well, using shortcode [slideshow id=*SlideshowPostId*].
-*   Added a widget that can be loaded with an existing slideshow of choice.
-*   Tested up to version 3.4
-
-= 1.1.0 =
-*   Added jQuery library as Wordpress websites don't seem to load them by default.
-*   Slideshow script now depends on by the plugin enqueued jQuery script.
-
-= 1.0.1 =
-*   Added documentary comments.
-*   Fixed error with directory paths causing Slideshows post type page to generate warnings.
-
-= 1.0.0 =
-*	Initial release.
-
-
-== Links ==
-
-*	[Stefan Boonstra](http://stefanboonstra.com/)
-*   [Slideshow project board](https://trello.com/board/slideshow-plugin-wordpress/506311260cc04591010463c2)
\ No newline at end of file
Binary file web/wp-content/plugins/slideshow-jquery-image-gallery/screenshot-1.png has changed
Binary file web/wp-content/plugins/slideshow-jquery-image-gallery/screenshot-2.png has changed
Binary file web/wp-content/plugins/slideshow-jquery-image-gallery/screenshot-3.png has changed
Binary file web/wp-content/plugins/slideshow-jquery-image-gallery/screenshot-4.png has changed
Binary file web/wp-content/plugins/slideshow-jquery-image-gallery/screenshot-5.png has changed
Binary file web/wp-content/plugins/slideshow-jquery-image-gallery/screenshot-6.png has changed
--- a/web/wp-content/plugins/slideshow-jquery-image-gallery/slideshow.php	Wed Dec 19 12:35:13 2012 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,186 +0,0 @@
-<?php
-/*
- Plugin Name: Slideshow
- Plugin URI: http://wordpress.org/extend/plugins/slideshow-jquery-image-gallery/
- Description: This plugin offers a slideshow that is easily deployable in your website. Add any image that has already been uploaded to add to your slideshow. Options and styles are customizable for every single slideshow on your website.
- Version: 2.1.17
- Requires at least: 3.3
- Author: StefanBoonstra
- Author URI: http://stefanboonstra.com
- License: GPL
-*/
-
-/**
- * Class SlideshowPluginMain fires up the application on plugin load and provides some
- * methods for the other classes to use like the auto-includer and the
- * base path/url returning method.
- *
- * @author Stefan Boonstra
- * @version 13-10-12
- */
-class SlideshowPluginMain {
-
-	/** Variables */
-	static $version = '2.1.17';
-
-	/**
-	 * Bootstraps the application by assigning the right functions to
-	 * the right action hooks.
-	 */
-	static function bootStrap(){
-		self::autoInclude();
-
-		// Initialize localization on init
-		add_action('init', array(__CLASS__, 'localize'));
-
-		// For ajax requests
-		SlideshowPluginAjax::init();
-
-		// Deploy slideshow on do_action('slideshow_deploy'); hook.
-		add_action('slideshow_deploy', array('SlideshowPlugin', 'deploy'));
-
-		// Initialize shortcode
-		SlideshowPluginShortcode::init();
-
-		// Register widget
-		add_action('widgets_init', array('SlideshowPluginWidget', 'registerWidget'));
-
-		// Register slideshow post type
-		SlideshowPluginPostType::initialize();
-
-		// Transfers v1.x.x slides to the new slide format
-		register_activation_hook(__FILE__, array(__CLASS__, 'transferV1toV2'));
-	}
-
-	/**
-	 * Transfers v1.x.x slides to the new slide format
-	 */
-	static function transferV1toV2(){
-		// Check if this has already been done
-		if(get_option('slideshow-plugin-updated-from-v1-x-x-to-v2-0-1') !== false)
-			return;
-
-		// Get posts
-		$posts = get_posts(array(
-			'numberposts' => -1,
-			'offset' => 0,
-			'post_type' => SlideshowPluginPostType::$postType
-		));
-
-		// Loop through posts
-		if(is_array($posts) && count($posts) > 0){
-			foreach($posts as $post){
-
-				// Stores highest slide id.
-				$highestSlideId = -1;
-
-				// Get stored slide settings and convert them to array([slide-key] => array([setting-name] => [value]));
-				$slidesPreOrder = array();
-				$settings = SlideshowPluginPostType::getSettings($post->ID, SlideshowPluginPostType::$prefixes['slide-list'], true);
-				if(is_array($settings) && count($settings) > 0)
-					foreach($settings as $key => $value){
-						$key = explode('_', $key);
-						if(is_numeric($key[1]))
-							$slidesPreOrder[$key[1]][$key[2]] = $value;
-					}
-
-				// Save slide keys from the $slidePreOrder array in the array itself for later use
-				if(count($slidesPreOrder) > 0)
-					foreach($slidesPreOrder as $key => $value){
-						// Save highest slide id
-						if($key > $highestSlideId)
-							$highestSlideId = $key;
-					}
-
-				// Get defaults
-				$defaultData = SlideshowPluginPostType::getDefaultData(false);
-
-				// Get old data
-				$oldData = get_post_meta($post->ID, SlideshowPluginPostType::$settingsMetaKey, true);
-				if(!is_array(($oldData)))
-					$oldData = array();
-
-				// Get attachments
-				$attachments = get_posts(array(
-					'numberposts' => -1,
-					'offset' => 0,
-					'post_type' => 'attachment',
-					'post_parent' => $post->ID
-				));
-
-				// Get data from attachments
-				$newData = array();
-				if(is_array($attachments) && count($attachments) > 0)
-					foreach($attachments as $attachment){
-						$highestSlideId++;
-						$newData['slide_' . $highestSlideId . '_postId'] = $attachment->ID;
-						$newData['slide_' . $highestSlideId . '_type'] = 'attachment';
-					}
-
-				// Save settings
-				update_post_meta(
-					$post->ID,
-					SlideshowPluginPostType::$settingsMetaKey,
-					array_merge(
-						$defaultData,
-						$oldData,
-						$newData
-					));
-			}
-		}
-
-		update_option('slideshow-plugin-updated-from-v1-x-x-to-v2-0-1', 'updated');
-	}
-
-	/**
-	 * Translates the plugin
-	 */
-	static function localize(){
-		load_plugin_textdomain(
-			'slideshow-plugin',
-			false,
-			dirname(plugin_basename(__FILE__)) . '/languages/'
-		);
-	}
-
-	/**
-	 * Returns url to the base directory of this plugin.
-	 *
-	 * @return string pluginUrl
-	 */
-	static function getPluginUrl(){
-		return plugins_url('', __FILE__);
-	}
-
-	/**
-	 * Returns path to the base directory of this plugin
-	 *
-	 * @return string pluginPath
-	 */
-	static function getPluginPath(){
-		return dirname(__FILE__);
-	}
-
-	/**
-	 * This function will load classes automatically on-call.
-	 */
-	function autoInclude(){
-		if(!function_exists('spl_autoload_register'))
-			return;
-
-		function slideshowFileAutoloader($name) {
-			$name = str_replace('\\', DIRECTORY_SEPARATOR, $name);
-			$file = dirname(__FILE__) . DIRECTORY_SEPARATOR . 'classes' . DIRECTORY_SEPARATOR . $name . '.php';
-
-			if(is_file($file))
-				require_once $file;
-		}
-
-		spl_autoload_register('slideshowFileAutoloader');
-	}
-}
-
-/**
- * Activate plugin
- */
-SlideShowPluginMain::bootStrap();
\ No newline at end of file
--- a/web/wp-content/plugins/slideshow-jquery-image-gallery/style/SlideshowPlugin/functional.css	Wed Dec 19 12:35:13 2012 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-.slideshow_container{position:relative}.slideshow_container .slideshow_overflow{position:relative;overflow:hidden}.slideshow_container .slideshow{height:100%;width:200%;overflow:hidden}.slideshow_container img{margin:0!important;padding:0!important;max-width:100%;max-height:100%;border:0}.slideshow_container .slide{height:100%;float:left;overflow:hidden;text-align:center}.slideshow_container .transparent{zoom:1}.slideshow_container .transparent:hover{zoom:1}.slideshow_container .description{position:absolute;bottom:0;display:none;width:inherit}.slideshow_container .controlPanel{position:absolute;top:5px;left:50%;display:none}.slideshow_container .controlPanel ul{list-style:none;margin:0;padding:0}.slideshow_container .controlPanel ul li{float:left}.slideshow_container .controlPanel ul li:hover{cursor:pointer}.slideshow_container .button{padding:0;position:absolute;top:50%;cursor:pointer;display:none}.slideshow_container .previous{left:5px}.slideshow_container .next{right:5px}.slideshow_container .manufacturer{position:absolute!important;height:1px;width:1px;overflow:hidden;clip:rect(1px 1px 1px 1px);clip:rect(1px,1px,1px,1px);}
\ No newline at end of file
--- a/web/wp-content/plugins/slideshow-jquery-image-gallery/style/SlideshowPlugin/style-custom.css	Wed Dec 19 12:35:13 2012 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,83 +0,0 @@
-.slideshow_container { }
-
-.slideshow_container .slideshow { }
-
-.slideshow_container img { }
-
-.slideshow_container .slide {
-	margin-right: 2px;
-}
-
-.slideshow_container .transparent {
-	filter: alpha(opacity = 50);
-	opacity: 0.5;
-}
-
-.slideshow_container .transparent:hover {
-	filter: alpha(opacity = 80);
-	opacity: 0.8;
-}
-
-.slideshow_container .description {
-	background: #000;
-}
-
-.slideshow_container .controlPanel {
-	width: 21px;
-	height: 21px;
-	background: #000;
-	border-radius: 2px;
-	-moz-border-radius: 10px;
-}
-
-.slideshow_container .controlPanel ul { }
-
-.slideshow_container .controlPanel ul li {
-	margin: 3px;
-	width: 15px;
-	height: 15px;
-}
-
-.slideshow_container .controlPanel ul li:hover { }
-
-.slideshow_container .play {
-	background: url('%plugin-url%/images/SlideshowPlugin/light-controlpanel.png') 0 0 no-repeat;
-}
-
-.slideshow_container .pause {
-	background: url('%plugin-url%/images/SlideshowPlugin/light-controlpanel.png') -15px 0 no-repeat;
-}
-
-.slideshow_container .button {
-	margin-top: -20px;
-	height: 40px;
-	width: 19px;
-	background: url('%plugin-url%/images/SlideshowPlugin/light-arrows.png') no-repeat;
-}
-
-.slideshow_container .previous { }
-
-.slideshow_container .next {
-	background-position: -19px 0;
-}
-
-.slideshow_container a {
-	text-decoration: none;
-	color: #fff;
-	text-align: center;
-}
-
-.slideshow_container .description h2,
-.slideshow_container .description p {
-	color: #fff;
-}
-
-.slideshow_container h2 {
-	margin: 5px;
-	font-size: 25px;
-}
-
-.slideshow_container p {
-	margin: 7px;
-	font-size: 15px;
-}
\ No newline at end of file
--- a/web/wp-content/plugins/slideshow-jquery-image-gallery/style/SlideshowPlugin/style-dark.css	Wed Dec 19 12:35:13 2012 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,82 +0,0 @@
-.slideshow_container {
-	background: #000;
-}
-
-.slideshow_container .slideshow { }
-
-.slideshow_container img { }
-
-.slideshow_container .slide {
-	margin-right: 2px;
-}
-
-.slideshow_container .transparent {
-	filter: alpha(opacity = 50);
-	opacity: 0.5;
-}
-
-.slideshow_container .transparent:hover {
-	filter: alpha(opacity = 80);
-	opacity: 0.8;
-}
-
-.slideshow_container .description {
-	background: #000;
-}
-
-.slideshow_container .controlPanel {
-	width: 20px;
-	height: 20px;
-}
-
-.slideshow_container .controlPanel ul { }
-
-.slideshow_container .controlPanel ul li {
-	margin: 3px;
-	width: 20px;
-	height: 20px;
-}
-
-.slideshow_container .controlPanel ul li:hover { }
-
-.slideshow_container .play {
-	background: url('%plugin-url%/images/SlideshowPlugin/dark-controlpanel.png') 0 0 no-repeat;
-}
-
-.slideshow_container .pause {
-	background: url('%plugin-url%/images/SlideshowPlugin/dark-controlpanel.png') -20px 0 no-repeat;
-}
-
-.slideshow_container .button {
-	margin-top: -50px;
-	height: 100px;
-	width: 24px;
-	background: url('%plugin-url%/images/SlideshowPlugin/dark-arrows.png') no-repeat;
-}
-
-.slideshow_container .previous { }
-
-.slideshow_container .next {
-	background-position: -24px 0;
-}
-
-.slideshow_container a {
-	text-decoration: none;
-	color: #fff;
-	text-align: center;
-}
-
-.slideshow_container .description h2,
-.slideshow_container .description p {
-	color: #fff;
-}
-
-.slideshow_container h2 {
-	margin: 5px;
-	font-size: 25px;
-}
-
-.slideshow_container p {
-	margin: 7px;
-	font-size: 15px;
-}
\ No newline at end of file
--- a/web/wp-content/plugins/slideshow-jquery-image-gallery/style/SlideshowPlugin/style-light.css	Wed Dec 19 12:35:13 2012 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,80 +0,0 @@
-.slideshow_container { }
-
-.slideshow_container .slideshow { }
-
-.slideshow_container img { }
-
-.slideshow_container .slide {
-	margin-right: 2px;
-}
-
-.slideshow_container .transparent {
-	filter: alpha(opacity = 50);
-	opacity: 0.5;
-}
-
-.slideshow_container .transparent:hover {
-	filter: alpha(opacity = 80);
-	opacity: 0.8;
-}
-
-.slideshow_container .description {
-	background: #000;
-}
-
-.slideshow_container .controlPanel {
-	width: 21px;
-	height: 21px;
-	background: #000;
-	border-radius: 2px;
-	-moz-border-radius: 10px;
-}
-
-.slideshow_container .controlPanel ul { }
-
-.slideshow_container .controlPanel ul li {
-	margin: 3px;
-	width: 15px;
-	height: 15px;
-}
-
-.slideshow_container .controlPanel ul li:hover { }
-
-.slideshow_container .play {
-	background: url('%plugin-url%/images/SlideshowPlugin/light-controlpanel.png') 0 0 no-repeat;
-}
-
-.slideshow_container .pause {
-	background: url('%plugin-url%/images/SlideshowPlugin/light-controlpanel.png') -15px 0 no-repeat;
-}
-
-.slideshow_container .button {
-	margin-top: -20px;
-	height: 40px;
-	width: 19px;
-	background: url('%plugin-url%/images/SlideshowPlugin/light-arrows.png') no-repeat;
-}
-
-.slideshow_container .previous { }
-
-.slideshow_container .next {
-	background-position: -19px 0;
-}
-
-.slideshow_container h2,
-.slideshow_container p,
-.slideshow_container a {
-	text-decoration: none;
-	color: #fff;
-	text-align: center;
-}
-
-.slideshow_container h2 {
-	margin: 5px;
-	font-size: 25px;
-}
-
-.slideshow_container p {
-	margin: 7px;
-	font-size: 15px;
-}
\ No newline at end of file
--- a/web/wp-content/plugins/slideshow-jquery-image-gallery/style/SlideshowPlugin/style-transparent.css	Wed Dec 19 12:35:13 2012 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,64 +0,0 @@
-.slideshow_container { }
-
-.slideshow {
-	overflow: hidden;
-}
-
-.slideshow .slideshow_div {
-	width: 0;
-	overflow: hidden;
-	float: left;
-}
-
-.slideshow_container .button {
-	visibility: hidden;
-	width: 24px;
-	height: 100px;
-	cursor: pointer;
-	
-	position: relative;
-	z-index: 2;
-}
-
-.slideshow_container .next {
-	float: right;
-	background: url('../../images/button-next.png');
-	margin-right: 10px;
-}
-
-.slideshow_container .previous {
-	float: left;
-	background: url('../../images/button-previous.png');
-	margin-left: 10px;
-}
-
-.slideshow_container .transparent {
-	zoom: 1;
-	filter: alpha(opacity = 50);
-	opacity: 0.5;
-}
-
-.slideshow_container .transparent:hover {
-	zoom: 1;
-	filter: alpha(opacity = 80);
-	opacity: 0.8;
-}
-
-.slideshow_container .descriptionbox {
-	background: #000;
-	color: #fff;
-	float: right;
-	margin-top: 0;
-	margin-right: 44px;
-	height: 0;
-	width: 300px;
-	overflow: hidden;
-	
-	position: relative;
-	z-index: 1;
-}
-
-.slideshow_container .descriptionbox h2,
-.slideshow_container .descriptionbox p {
-	padding: 10px;
-}
\ No newline at end of file
--- a/web/wp-content/plugins/slideshow-jquery-image-gallery/style/SlideshowPluginSlideInserter/slide-inserter.css	Wed Dec 19 12:35:13 2012 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,49 +0,0 @@
-#slideshow-slide-inserter-popup-background {
-	background: #000;
-	display: none;
-	position: absolute;
-	top: 0;
-	left: 0;
-	width: 100%;
-	z-index: 10000;
-
-	zoom: 1;
-	filter: alpha(opacity = 50);
-	opacity: 0.5;
-}
-
-#slideshow-slide-inserter-popup {
-	background: #fff;
-	display: none;
-	position: absolute;
-	padding: 20px;
-	line-height: 23px;
-	z-index: 10001;
-
-	width: 600px;
-}
-
-#slideshow-slide-inserter-popup #search {
-	float: left;
-	width: 200px;
-}
-
-#slideshow-slide-inserter-popup #close {
-	float: right;
-	width: 32px;
-	height: 32px;
-	background: url('../../images/SlideshowPluginSlideInserter/close.png') no-repeat;
-}
-
-#slideshow-slide-inserter-popup #close:hover {
-	cursor: pointer;
-}
-
-#slideshow-slide-inserter-popup #search-results {
-	height: 400px;
-	overflow-y: scroll;
-}
-
-.sortable-slides-list-item {
-	background: #fff url('../../images/SlideshowPluginPostType/draggable.png') no-repeat right center;
-}
\ No newline at end of file
--- a/web/wp-content/plugins/slideshow-jquery-image-gallery/views/SlideshowPlugin/slideshow.php	Wed Dec 19 12:35:13 2012 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,133 +0,0 @@
-<div class="slideshow_container slideshow_container_<?php echo (is_numeric($randomId)) ? $randomId : 0; ?>" style="width: <?php echo (is_numeric($settings['width']))? $settings['width'] : 0; ?>px; height: <?php echo (is_numeric($settings['height']))? $settings['height'] : 0; ?>px;">
-	<div class="slideshow_overflow" style="width: <?php echo (is_numeric($settings['width']))? $settings['width'] : 0; ?>px; height: <?php echo (is_numeric($settings['height']))? $settings['height'] : 0; ?>px;">
-		<div class="slideshow">
-			<?php if(count($slides) > 0): ?>
-				<?php $i = 0; ?>
-				<?php foreach($slides as $slide): ?>
-
-					<?php
-					$url = $target = '';
-					if(isset($slide['url']))
-						$url = htmlspecialchars($slide['url']);
-					if(isset($slide['urlTarget']))
-						$target = htmlspecialchars($slide['urlTarget']);
-					?>
-
-					<?php if($slide['type'] == 'text'): ?>
-
-						<?php
-							$title = $description = $color = '';
-							if(isset($slide['title']))
-								$title = SlideshowPluginSecurity::htmlspecialchars_allow_exceptions($slide['title']);
-							if(isset($slide['description']))
-								$description = SlideshowPluginSecurity::htmlspecialchars_allow_exceptions($slide['description']);
-							if(isset($slide['color']))
-								$color = htmlspecialchars($slide['color']);
-						?>
-
-						<div class="slide slide_<?php echo $i; ?>" <?php if(!empty($color)) echo 'style="background: #' . $color . ';"'; ?> style="height: <?php echo (is_numeric($settings['height']))? $settings['height'] : 0; ?>px;">
-							<a <?php if(!empty($url)) echo 'href="' . $url . '"';?> <?php if(!empty($target)) echo 'target="' . $target . '"'; ?>>
-								<h2><?php echo $title; ?></h2>
-								<p><?php echo $description; ?></p>
-							</a>
-						</div>
-
-					<?php elseif($slide['type'] == 'video'): ?>
-
-						<?php
-							$videoId = '';
-							if(isset($slide['videoId']))
-								$videoId = htmlspecialchars($slide['videoId']);
-
-							// If the video ID contains 'v=', it means a URL has been passed. Retrieve the video ID.
-							$idPosition = null;
-							if(($idPosition = stripos($videoId, 'v=')) !== false){
-								// The video ID, which perhaps still has some arguments behind it.
-								$videoId = substr($videoId, $idPosition + 2);
-
-								// Explode on extra arguments (&).
-								$videoId = explode('&', $videoId);
-
-								// The first element is the video ID
-								if(is_array($videoId) && isset($videoId[0]))
-									$videoId = $videoId[0];
-							}
-
-							$elementVideoId = 'youtube-player-' . rand() . '-' . $videoId;
-						?>
-
-						<div class="slide slide_<?php echo $i; ?> slide_video" style="height: <?php echo (is_numeric($settings['height']))? $settings['height'] : 0; ?>px;">
-							<div class="videoId" style="display: none;"><?php echo $videoId; ?> <?php echo $elementVideoId; ?></div>
-							<div id="<?php echo $elementVideoId; ?>"></div>
-						</div>
-
-					<?php elseif($slide['type'] == 'attachment'): ?>
-
-						<?php
-						$postId = '';
-						if(isset($slide['postId']) && is_numeric($slide['postId']))
-							$postId = $slide['postId'];
-						else
-							continue;
-
-						$attachment = get_post($postId);
-						if(empty($attachment))
-							continue;
-
-						$image = wp_get_attachment_image_src($attachment->ID, 'full');
-						$imageSrc = '';
-						if(!is_array($image) || !$image){
-							if(!empty($attachment->guid))
-								$imageSrc = $attachment->guid;
-							else
-								continue;
-						}else{
-							$imageSrc = $image[0];
-						}
-						?>
-
-						<div class="slide slide_<?php echo $i; ?>" style="height: <?php echo (is_numeric($settings['height']))? $settings['height'] : 0; ?>px;">
-							<div class="description transparent">
-								<a <?php if(!empty($url)) echo 'href="' . $url . '"'; ?> <?php if(!empty($target)) echo 'target="' . $target . '"'; ?>>
-									<h2><?php echo SlideshowPluginSecurity::htmlspecialchars_allow_exceptions($attachment->post_title); ?></h2>
-									<p><?php echo SlideshowPluginSecurity::htmlspecialchars_allow_exceptions($attachment->post_content); ?></p>
-								</a>
-							</div>
-							<a <?php if(!empty($url)) echo 'href="' . $url . '"'; ?> <?php if(!empty($target)) echo 'target="' . $target . '"'; ?>>
-								<img
-									src="<?php echo htmlspecialchars($imageSrc); ?>"
-									alt="<?php echo htmlspecialchars($attachment->post_title); ?>"
-								/>
-							</a>
-						</div>
-
-					<?php endif; ?>
-					<?php $i++; ?>
-				<?php endforeach; ?>
-			<?php endif; ?>
-		</div>
-	</div>
-
-	<div class="controllers">
-		<div class="controlPanel transparent"><ul><li class="togglePlay play"></li></ul></div>
-
-		<div class="button previous transparent"></div>
-		<div class="button next transparent"></div>
-	</div>
-
-	<div class="settings" style="display: none;"><?php echo json_encode($settings); ?></div>
-
-	<div class="manufacturer">
-		<a href="http://www.stefanboonstra.com/slideshow/">Wordpress Slideshow</a>
-	</div>
-
-	<div style="display: none;">
-		<?php echo SlideshowPluginMain::$version; ?>
-	</div>
-
-	<?php if(!empty($style)): ?>
-	<style type="text/css">
-			<?php echo htmlspecialchars($style); ?>
-	</style>
-	<?php endif; ?>
-</div>
\ No newline at end of file
--- a/web/wp-content/plugins/slideshow-jquery-image-gallery/views/SlideshowPluginPostType/information.php	Wed Dec 19 12:35:13 2012 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,5 +0,0 @@
-<p><?php _e('To use this slideshow in your website either add this piece of shortcode to your posts or pages', 'slideshow-plugin'); ?>:</p>
-<p><i><?php echo $shortCode; ?></i></p>
-<p><?php _e('Or add this piece of code to where ever in your website you want to place the slideshow', 'slideshow-plugin'); ?>:</p>
-<p><i><?php echo $snippet; ?></i></p>
-<p><?php echo sprintf(__('Or go to the %swidgets page%s and show the slideshow as a widget.', 'slideshow-plugin'), '<a href="' . get_admin_url(null, 'widgets.php') . '" target="_blank">', '</a>'); ?></p>
\ No newline at end of file
--- a/web/wp-content/plugins/slideshow-jquery-image-gallery/views/SlideshowPluginPostType/settings.php	Wed Dec 19 12:35:13 2012 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,31 +0,0 @@
-<table>
-	<?php $groups = array(); ?>
-	<?php if(count($settings) > 0): ?>
-	<?php foreach($settings as $key => $value): ?>
-
-	<?php if(!isset($value) || !is_array($value)) continue; ?>
-
-	<?php if(!empty($value['group']) && !isset($groups[$value['group']])): $groups[$value['group']] = true; ?>
-	<tr>
-		<td colspan="3" style="border-bottom: 1px solid #dfdfdf; text-align: center;">
-			<span style="display: inline-block; position: relative; top: 9px; padding: 0 12px; background: #f8f8f8;">
-				<?php echo $value['group']; ?> <?php _e('settings', 'slideshow-plugin'); ?>
-			</span>
-		</td>
-	</tr>
-	<tr>
-		<td colspan="3"></td>
-	</tr>
-	<?php endif; ?>
-	<tr
-		<?php echo !empty($value['group'])? 'class="group-' . strtolower(str_replace(' ', '-', $value['group'])) . '"': ''; ?>
-		<?php echo !empty($value[5])? 'style="display:none;"': ''; ?>
-	>
-		<td><?php echo $value[3]; ?></td>
-		<td><?php echo $inputFields[$key]; ?></td>
-		<td><?php _e('Default', 'slideshow-plugin'); ?>: &#39;<?php echo (isset($value[4]))? $value[4][$value[2]]: $value[2]; ?>&#39;</td>
-	</tr>
-
-	<?php endforeach; ?>
-	<?php endif; ?>
-</table>
\ No newline at end of file
--- a/web/wp-content/plugins/slideshow-jquery-image-gallery/views/SlideshowPluginPostType/slides.php	Wed Dec 19 12:35:13 2012 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,218 +0,0 @@
-<p style="text-align: center;">
-	<i><?php _e('Insert', 'slideshow-plugin'); ?>:</i><br/>
-	<?php echo SlideshowPluginSlideInserter::getImageSlideInsertButton(); ?>
-	<?php echo SlideshowPluginSlideInserter::getTextSlideInsertButton(); ?>
-	<?php echo SlideshowPluginSlideInserter::getVideoSlideInsertButton(); ?>
-</p>
-
-<?php if(count($slides) <= 0): ?>
-	<p><?php _e('Add slides to this slideshow by using one of the buttons above.', 'slideshow-plugin'); ?></p>
-<?php endif; ?>
-
-<style type="text/css">
-	.sortable li {
-		cursor: pointer;
-	}
-</style>
-<script type="text/javascript">
-	var slideshowHighestSlideId = <?php echo (is_numeric($highestSlideId))? $highestSlideId : 0; ?>
-</script>
-
-<ul class="sortable-slides-list">
-	<?php if(count($slides) > 0): ?>
-	<?php foreach($slides as $key => $slide):
-		// General values
-		$id = $url = $target = $order = '';
-		if(isset($slide['id']))
-			$id = $slide['id'];
-		if(isset($slide['url']))
-			$url = $slide['url'];
-		if(isset($slide['urlTarget']))
-			$target = $slide['urlTarget'];
-		if(isset($slide['order']))
-			$order = $slide['order'];
-			?>
-
-		<li class="widefat sortable-slides-list-item">
-			<?php if($slide['type'] == 'text'):
-
-				// Type specific values
-				$title = $description = $color = '';
-				if(isset($slide['title']))
-					$title = $slide['title'];
-				if(isset($slide['description']))
-					$description = $slide['description'];
-				if(isset($slide['color']))
-					$color = $slide['color'];
-				?>
-
-				<p style="padding: 0 5px;">
-				<input type="text" name="slide_<?php echo $id; ?>_title" value="<?php echo $title; ?>" /><i><?php _e('Title', 'slideshow-plugin'); ?></i><br />
-				<input type="text" name="slide_<?php echo $id; ?>_description" value="<?php echo $description; ?>" /><i><?php _e('Description', 'slideshow-plugin'); ?></i><br />
-				<input type="text" name="slide_<?php echo $id; ?>_color" value="<?php echo $color; ?>" class="color" /><i><?php _e('Background color', 'slideshow-plugin'); ?></i><br />
-				</p>
-
-				<p style="float: left; padding: 0 5px;">
-					<input type="text" name="slide_<?php echo $id; ?>_url" value="<?php echo $url; ?>" /><br />
-					<select name="slide_<?php echo $id; ?>_urlTarget">
-						<option value="_self" <?php selected('_self', $target); ?>><?php _e('Same window', 'slideshow-plugin'); ?></option>
-						<option value="_blank" <?php selected('_blank', $target); ?>><?php _e('New window', 'slideshow-plugin'); ?></option>
-					</select>
-				</p>
-				<p style="float: left; line-height: 50px;">
-					<i><?php _e('URL', 'slideshow-plugin'); ?></i>
-				</p>
-				<p style="clear: both;"></p>
-
-				<input type="hidden" name="slide_<?php echo $id; ?>_type" value="text" />
-				<input type="hidden" name="slide_<?php echo $id; ?>_order" value="<?php echo $order; ?>" class="slide_order" />
-
-			<?php elseif($slide['type'] == 'video'):
-
-				// Type specific values
-				$videoId = '';
-				if(isset($slide['videoId']))
-					$videoId = $slide['videoId'];
-				?>
-
-				<p style="padding: 0 5px;">
-					<input type="text" name="slide_<?php echo $id; ?>_videoId" value="<?php echo $videoId; ?>" /><i><?php _e('Youtube Video ID', 'slideshow-plugin'); ?></i>
-				</p>
-
-				<input type="hidden" name="slide_<?php echo $id; ?>_type" value="video" />
-				<input type="hidden" name="slide_<?php echo $id; ?>_order" value="<?php echo $order; ?>" class="slide_order" />
-
-			<?php elseif($slide['type'] == 'attachment'):
-
-				// The attachment should always be there
-				$attachment = get_post($slide['postId']);
-				if(!isset($attachment))
-					continue;
-
-				$editUrl = admin_url() . '/media.php?attachment_id=' . $attachment->ID . '&amp;action=edit';
-				$image = wp_get_attachment_image_src($attachment->ID);
-				if(!$image[3]) $image[0] = $noPreviewIcon; ?>
-
-				<p style="float: left; padding: 0 5px;">
-					<a href="<?php echo $editUrl; ?>" title="<?php _e('Edit', 'slideshow-plugin'); ?> &#34;<?php echo $attachment->post_title; ?>&#34;">
-						<img width="80" height="60" src="<?php echo $image[0]; ?>" class="attachment-80x60" alt="<?php echo $attachment->post_title; ?>" title="<?php echo $attachment->post_title; ?>" />
-					</a>
-				</p>
-
-				<p style="float: left; padding: 0 5px;">
-					<strong>
-						<a href="<?php echo $editUrl; ?>" title="<?php _e('Edit', 'slideshow-plugin'); ?> &#34;<?php echo $attachment->post_title; ?>&#34;"><?php echo $attachment->post_title; ?></a>
-					</strong><br />
-					<?php if(strlen($attachment->post_content) > 30) echo substr($attachment->post_content, 0, 20) . '...'; else echo $attachment->post_content; ?>
-				</p>
-				<p style="clear: both"></p>
-
-				<p style="float: left; padding: 0 5px;">
-					<input type="text" name="slide_<?php echo $id; ?>_url" value="<?php echo $url; ?>" /><br />
-					<select name="slide_<?php echo $id; ?>_urlTarget">
-						<option value="_self" <?php selected('_self', $target); ?>><?php _e('Same window', 'slideshow-plugin'); ?></option>
-						<option value="_blank" <?php selected('_blank', $target); ?>><?php _e('New window', 'slideshow-plugin'); ?></option>
-					</select>
-				</p>
-				<p style="float: left; line-height: 50px;">
-					<i><?php _e('URL', 'slideshow-plugin'); ?></i>
-				</p>
-				<p style="clear: both;"></p>
-
-				<input type="hidden" name="slide_<?php echo $id; ?>_type" value="attachment" />
-				<input type="hidden" name="slide_<?php echo $id; ?>_postId" value="<?php echo $attachment->ID; ?>" />
-				<input type="hidden" name="slide_<?php echo $id; ?>_order" value="<?php echo $order; ?>" class="slide_order" />
-
-			<?php else: ?>
-
-				<p style="padding: 0 5px;">
-					<?php _e('An error occurred while loading this slide, and it will not be present in the slideshow', 'slideshow-plugin'); ?>
-				</p>
-
-			<?php endif; ?>
-			<p style="padding: 0 5px; color: red; cursor: pointer;" class="slideshow-delete-slide">
-				<?php _e('Delete slide', 'slideshow-plugin'); ?>
-				<span style="display: none;" class="<?php echo $id; ?>"></span>
-			</p>
-		</li>
-	<?php endforeach; ?>
-	<?php endif; ?>
-</ul>
-
-<div class="text-slide-template" style="display: none;">
-	<li class="widefat sortable-slides-list-item">
-		<p style="padding: 0 5px;">
-			<input type="text" class="title" /><i><?php _e('Title', 'slideshow-plugin'); ?></i><br />
-			<input type="text" class="description" /><i><?php _e('Description', 'slideshow-plugin'); ?></i><br />
-			<input type="text" class="color" /><i><?php _e('Background color', 'slideshow-plugin'); ?></i><br />
-		</p>
-
-		<p style="float: left; padding: 0 5px;">
-			<input type="text" class="url" value="" /><br />
-			<select class="urlTarget">
-				<option value="_self"><?php _e('Same window', 'slideshow-plugin'); ?></option>
-				<option value="_blank"><?php _e('New window', 'slideshow-plugin'); ?></option>
-			</select>
-		</p>
-		<p style="float: left; line-height: 50px;">
-			<i><?php _e('URL', 'slideshow-plugin'); ?></i>
-		</p>
-		<p style="clear: both"></p>
-
-		<input type="hidden" class="type" value="text" />
-		<input type="hidden" class="slide_order" />
-
-		<p style="padding: 0 5px; color: red; cursor: pointer;" class="slideshow-delete-new-slide">
-			<?php _e('Delete slide', 'slideshow-plugin'); ?>
-		</p>
-	</li>
-</div>
-
-<div class="video-slide-template" style="display: none;">
-	<li class="widefat sortable-slides-list-item">
-		<p style="padding: 0 5px;">
-			<input type="text" class="videoId" /><i><?php _e('Youtube Video ID', 'slideshow-plugin'); ?></i>
-		</p>
-
-		<input type="hidden" class="type" value="video" />
-		<input type="hidden" class="slide_order" />
-
-		<p style="padding: 0 5px; color: red; cursor: pointer;" class="slideshow-delete-new-slide">
-			<?php _e('Delete slide', 'slideshow-plugin'); ?>
-		</p>
-	</li>
-</div>
-
-<div class="image-slide-template" style="display: none;">
-	<li class="widefat sortable-slides-list-item">
-		<p style="float: left; padding: 0 5px;">
-			<img width="80" height="60" src="" class="attachment attachment-80x60" alt="" title="" />
-		</p>
-
-		<p style="float: left; padding: 0 5px;">
-			<strong class="title"></strong><br />
-			<span class="description"></span>
-		</p>
-		<p style="clear: both"></p>
-
-		<p style="float: left; padding: 0 5px;">
-			<input type="text" class="url" value="" /><br />
-			<select class="urlTarget">
-				<option value="_self"><?php _e('Same window', 'slideshow-plugin'); ?></option>
-				<option value="_blank"><?php _e('New window', 'slideshow-plugin'); ?></option>
-			</select>
-		</p>
-		<p style="float: left; line-height: 50px;"
-			<i><?php _e('URL', 'slideshow-plugin'); ?></i>
-		</p>
-		<p style="clear: both"></p>
-
-		<input type="hidden" class="type" value="attachment" />
-		<input type="hidden" class="postId" value="" />
-		<input type="hidden" value="" class="slide_order" />
-
-		<p style="padding: 0 5px; color: red; cursor: pointer;" class="slideshow-delete-new-slide">
-			<?php _e('Delete slide', 'slideshow-plugin'); ?>
-		</p>
-	</li>
-</div>
\ No newline at end of file
--- a/web/wp-content/plugins/slideshow-jquery-image-gallery/views/SlideshowPluginPostType/style-settings.php	Wed Dec 19 12:35:13 2012 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,13 +0,0 @@
-<table>
-	<?php if(count($settings) > 0): ?>
-	<?php foreach($settings as $key => $value): ?>
-
-	<tr <?php if(!empty($value[5])) echo 'style="display:none;"'; ?>>
-		<td><?php echo $value[3]; ?></td>
-		<td><?php echo $inputFields[$key]; ?></td>
-		<td><?php _e('Default', 'slideshow-plugin'); ?>: &#39;<?php echo $value[2]; ?>&#39;</td>
-	</tr>
-
-	<?php endforeach; ?>
-	<?php endif; ?>
-</table>
\ No newline at end of file
--- a/web/wp-content/plugins/slideshow-jquery-image-gallery/views/SlideshowPluginPostType/support-plugin.php	Wed Dec 19 12:35:13 2012 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,38 +0,0 @@
-<div class="updated" style="background: #f7f7f7; border-color: #dfdfdf;">
-	<div style="float: left; width: 50%;">
-		<h3><?php _e('Help to keep this plugin free!', 'slideshow-plugin'); ?></h3>
-
-		<p>
-			<?php _e('In order to keep you provided with the newest features, forum support, and bug-fixes, a lot of motivation is required. Therefore I\'m kindly asking you to consider making a small donation to the plugin or rating it as 5-stars on Wordpress.org. Thank you in advance!', 'slideshow-plugin'); ?>
-		</p>
-	</div>
-
-	<div style="float: right; width: 50%;">
-		<p>
-			<input
-				type="button"
-				class="button-secondary"
-				value="<?php _e('Rate on Wordpress.org', 'slideshow-plugin'); ?>"
-				onclick="window.open('http://wordpress.org/extend/plugins/slideshow-jquery-image-gallery/')"
-			/>
-		</p>
-
-		<p>
-			<input
-				type="button"
-				class="button-secondary"
-				value="<?php _e('Questions / Suggestions', 'slideshow-plugin'); ?>"
-				onclick="window.open('http://wordpress.org/support/plugin/slideshow-jquery-image-gallery/')"
-			/>
-		</p>
-
-		<form action="https://www.paypal.com/cgi-bin/webscr" method="post" target="_blank">
-			<input type="hidden" name="cmd" value="_s-xclick" />
-			<input type="hidden" name="hosted_button_id" value="VWHWA99RBJZW8" />
-			<input type="image" src="https://www.paypalobjects.com/en_GB/i/btn/btn_donate_LG.gif" border="0" name="submit" alt="PayPal — The safer, easier way to pay online." />
-			<img alt="" border="0" src="https://www.paypalobjects.com/nl_NL/i/scr/pixel.gif" width="1" height="1" />
-		</form>
-	</div>
-
-	<div style="clear: both;"></div>
-</div>
\ No newline at end of file
--- a/web/wp-content/plugins/slideshow-jquery-image-gallery/views/SlideshowPluginShortcode/shortcode-inserter.php	Wed Dec 19 12:35:13 2012 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,75 +0,0 @@
-<a
-	href="#TB_inline?width=450&inlineId=insertSlideshowShortcode"
-	class="thickbox"
-	title="<?php _e('Insert a Slideshow', 'slideshow-plugin'); ?>"
->
-	<?php _e('Insert Slideshow', 'slideshow-plugin'); ?>
-	<img
-		src="<?php echo SlideshowPluginMain::getPluginUrl() . '/images/adminIcon.png'; ?>"
-		alt="<?php _e('Insert a Slideshow', 'slideshow-plugin'); ?>"
-	/>
-</a>
-
-<div id="insertSlideshowShortcode" style="display: none;">
-
-	<h3 style="padding: 10px 0; color: #5a5a5a;">
-		<?php _e('Insert a Slideshow', 'slideshow-plugin'); ?>
-	</h3>
-
-	<div style="border: 1px solid #ddd; padding: 10px; color: #5a5a5a;">
-
-		<?php if($slideshows instanceof WP_Query && count($slideshows->get_posts()) > 0): ?>
-
-		<table>
-			<tr>
-
-				<td><?php _e('Select a slideshow', 'slideshow-plugin'); ?></td>
-				<td>
-					<select id="insertSlideshowShortcodeSlideshowSelect">
-
-						<?php foreach($slideshows->get_posts() as $slideshow): ?>
-
-						<?php if(!is_numeric($slideshow->ID)) continue; ?>
-
-						<option value="<?php echo $slideshow->ID; ?>">
-							<?php echo (!empty($slideshow->post_title)) ? htmlspecialchars($slideshow->post_title) : __('Untitled slideshow', 'slideshow-plugin'); ?>
-						</option>
-
-						<?php endforeach; ?>
-
-					</select>
-				</td>
-
-			</tr>
-			<tr>
-
-				<td>
-					<input
-						type="button"
-						class="button-primary insertSlideshowShortcodeSlideshowInsertButton"
-						value="<?php _e('Insert Slideshow', 'slideshow-plugin'); ?>"
-					/>
-					<input
-						type="button"
-						class="button insertSlideshowShortcodeCancelButton"
-					    value="<?php _e('Cancel', 'slideshow-plugin'); ?>"
-					/>
-				</td>
-
-			</tr>
-		</table>
-
-		<?php else: ?>
-
-		<p>
-			<?php echo sprintf(
-				__('It seems you haven\'t created any slideshows yet. %sYou can create a slideshow here!%s', 'slideshow-plugin'),
-				'<a href="' . admin_url('post-new.php?post_type=' . SlideshowPluginPostType::$postType) . '" target="_blank">',
-				'</a>'
-			); ?>
-		</p>
-
-		<?php endif; ?>
-
-    </div>
-</div>
\ No newline at end of file
--- a/web/wp-content/plugins/slideshow-jquery-image-gallery/views/SlideshowPluginSlideInserter/insert-image-button.php	Wed Dec 19 12:35:13 2012 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-<input type="button" id="slideshow-insert-image-slide" class="button" value="<?php _e('Image slide', 'slideshow-plugin'); ?>" />
\ No newline at end of file
--- a/web/wp-content/plugins/slideshow-jquery-image-gallery/views/SlideshowPluginSlideInserter/insert-text-button.php	Wed Dec 19 12:35:13 2012 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-<input type="button" id="slideshow-insert-text-slide" class="button" value="<?php _e('Text slide', 'slideshow-plugin'); ?>" />
\ No newline at end of file
--- a/web/wp-content/plugins/slideshow-jquery-image-gallery/views/SlideshowPluginSlideInserter/insert-video-button.php	Wed Dec 19 12:35:13 2012 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-<input type="button" id="slideshow-insert-video-slide" class="button" value="<?php _e('Video slide', 'slideshow-plugin'); ?>" />
\ No newline at end of file
--- a/web/wp-content/plugins/slideshow-jquery-image-gallery/views/SlideshowPluginSlideInserter/search-popup.php	Wed Dec 19 12:35:13 2012 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,14 +0,0 @@
-<div id="slideshow-slide-inserter-popup-background"></div>
-<div id="slideshow-slide-inserter-popup">
-	<div id="close"></div>
-	<div>
-		<input type="text" id="search" />
-		<?php submit_button(__('Search', 'slideshow-plugin'), 'primary', 'search-submit', false); ?>
-		<i><?php _e('Search images by title or ID', 'slideshow-plugin'); ?></i>
-	</div>
-	<div style="clear: both;"></div>
-
-	<div id="search-results">
-		<table id="results" class="widefat"></table>
-	</div>
-</div>
\ No newline at end of file
--- a/web/wp-content/plugins/slideshow-jquery-image-gallery/views/SlideshowPluginUpload/upload-button.php	Wed Dec 19 12:35:13 2012 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-<input type="button" id="upload_image_button" class="button" value="<?php _e('Upload/Manage Images', 'slideshow-plugin'); ?>" />
\ No newline at end of file
--- a/web/wp-content/plugins/slideshow-jquery-image-gallery/views/SlideshowPluginWidget/form.php	Wed Dec 19 12:35:13 2012 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,16 +0,0 @@
-<p>
-	<label for="<?php echo $this->get_field_id('title'); ?>"><?php _e('Title', 'slideshow-plugin'); ?></label>
-	<input class="widefat" id="<?php echo $this->get_field_id('title'); ?>" name="<?php echo $this->get_field_name('title'); ?>" value="<?php echo htmlspecialchars($instance['title']); ?>" style="width:100%" />
-</p>
-
-<p>
-	<label for="<?php echo $this->get_field_id('slideshowId'); ?>"><?php _e('Slideshow', 'slideshow-plugin'); ?></label>
-	<select class="widefat" id="<?php echo $this->get_field_id('slideshowId'); ?>" name="<?php echo $this->get_field_name('slideshowId'); ?>" value="<?php echo (is_numeric($instance['slideshowId']))? $instance['slideshowId'] : ''; ?>" style="width:100%">
-		<option value="-1" <?php selected($instance['slideshowId'], -1); ?>><?php _e('Random Slideshow', 'slideshow-plugin'); ?></option>
-		<?php if(count($slideshows) > 0): ?>
-		<?php foreach($slideshows as $slideshow): ?>
-			<option value="<?php echo $slideshow->ID ?>" <?php selected($instance['slideshowId'], $slideshow->ID); ?>><?php echo $slideshow->post_title ?></option>
-		<?php endforeach; ?>
-		<?php endif; ?>
-	</select>
-</p>
\ No newline at end of file
--- a/web/wp-content/plugins/social/assets/comments.css	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-content/plugins/social/assets/comments.css	Wed Dec 19 17:46:52 2012 -0800
@@ -43,7 +43,18 @@
 #social a:hover {
 	text-decoration: underline;
 }
-
+ul.addtoany_list li {
+    background: none repeat scroll 0 0 transparent !important;
+    border: 0 none;
+    display: inline !important;
+    line-height: 32px;
+    list-style-type: none;
+    margin: 0 !important;
+    padding: 0 !important;
+}
+#social ul.addtoany_list li a {
+    padding: 0 9px;
+}
 /** @section Utility
  -------------------------------------------------- */
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-content/plugins/wordpress-importer/languages/wordpress-importer.pot	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,231 @@
+# Copyright (C) 2011 WordPress Importer
+# This file is distributed under the same license as the WordPress Importer package.
+msgid ""
+msgstr ""
+"Project-Id-Version: WordPress Importer 0.5\n"
+"Report-Msgid-Bugs-To: http://wordpress.org/tag/wordpress-importer\n"
+"POT-Creation-Date: 2011-07-16 15:45:12+00:00\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"PO-Revision-Date: 2010-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+
+#: parsers.php:42 parsers.php:63
+msgid "There was an error when reading this WXR file"
+msgstr ""
+
+#: parsers.php:43
+msgid ""
+"Details are shown above. The importer will now try again with a different "
+"parser..."
+msgstr ""
+
+#: parsers.php:67 parsers.php:72 parsers.php:262 parsers.php:451
+msgid ""
+"This does not appear to be a WXR file, missing/invalid WXR version number"
+msgstr ""
+
+#: wordpress-importer.php:134 wordpress-importer.php:143
+#: wordpress-importer.php:194 wordpress-importer.php:202
+msgid "Sorry, there has been an error."
+msgstr ""
+
+#: wordpress-importer.php:135
+msgid "The file does not exist, please try again."
+msgstr ""
+
+#: wordpress-importer.php:178
+msgid "All done."
+msgstr ""
+
+#: wordpress-importer.php:178
+msgid "Have fun!"
+msgstr ""
+
+#: wordpress-importer.php:179
+msgid "Remember to update the passwords and roles of imported users."
+msgstr ""
+
+#: wordpress-importer.php:210
+msgid ""
+"This WXR file (version %s) may not be supported by this version of the "
+"importer. Please consider updating."
+msgstr ""
+
+#: wordpress-importer.php:235
+msgid ""
+"Failed to import author %s. Their posts will be attributed to the current "
+"user."
+msgstr ""
+
+#: wordpress-importer.php:261
+msgid "Assign Authors"
+msgstr ""
+
+#: wordpress-importer.php:262
+msgid ""
+"To make it easier for you to edit and save the imported content, you may "
+"want to reassign the author of the imported item to an existing user of this "
+"site. For example, you may want to import all the entries as <code>admin</"
+"code>s entries."
+msgstr ""
+
+#: wordpress-importer.php:264
+msgid ""
+"If a new user is created by WordPress, a new password will be randomly "
+"generated and the new user&#8217;s role will be set as %s. Manually changing "
+"the new user&#8217;s details will be necessary."
+msgstr ""
+
+#: wordpress-importer.php:274
+msgid "Import Attachments"
+msgstr ""
+
+#: wordpress-importer.php:277
+msgid "Download and import file attachments"
+msgstr ""
+
+#: wordpress-importer.php:281
+msgid "Submit"
+msgstr ""
+
+#: wordpress-importer.php:294
+msgid "Import author:"
+msgstr ""
+
+#: wordpress-importer.php:305
+msgid "or create new user with login name:"
+msgstr ""
+
+#: wordpress-importer.php:308
+msgid "as a new user:"
+msgstr ""
+
+#: wordpress-importer.php:316
+msgid "assign posts to an existing user:"
+msgstr ""
+
+#: wordpress-importer.php:318
+msgid "or assign posts to an existing user:"
+msgstr ""
+
+#: wordpress-importer.php:319
+msgid "- Select -"
+msgstr ""
+
+#: wordpress-importer.php:369
+msgid ""
+"Failed to create new user for %s. Their posts will be attributed to the "
+"current user."
+msgstr ""
+
+#: wordpress-importer.php:418
+msgid "Failed to import category %s"
+msgstr ""
+
+#: wordpress-importer.php:456
+msgid "Failed to import post tag %s"
+msgstr ""
+
+#: wordpress-importer.php:500 wordpress-importer.php:626
+msgid "Failed to import %s %s"
+msgstr ""
+
+#: wordpress-importer.php:522
+msgid "Failed to import &#8220;%s&#8221;: Invalid post type %s"
+msgstr ""
+
+#: wordpress-importer.php:543
+msgid "%s &#8220;%s&#8221; already exists."
+msgstr ""
+
+#: wordpress-importer.php:598
+msgid "Failed to import %s &#8220;%s&#8221;"
+msgstr ""
+
+#: wordpress-importer.php:744
+msgid "Menu item skipped due to missing menu slug"
+msgstr ""
+
+#: wordpress-importer.php:751
+msgid "Menu item skipped due to invalid menu slug: %s"
+msgstr ""
+
+#: wordpress-importer.php:814
+msgid "Fetching attachments is not enabled"
+msgstr ""
+
+#: wordpress-importer.php:827
+msgid "Invalid file type"
+msgstr ""
+
+#: wordpress-importer.php:871
+msgid "Remote server did not respond"
+msgstr ""
+
+#: wordpress-importer.php:877
+msgid "Remote server returned error response %1$d %2$s"
+msgstr ""
+
+#: wordpress-importer.php:884
+msgid "Remote file is incorrect size"
+msgstr ""
+
+#: wordpress-importer.php:889
+msgid "Zero size file downloaded"
+msgstr ""
+
+#: wordpress-importer.php:895
+msgid "Remote file is too large, limit is %s"
+msgstr ""
+
+#: wordpress-importer.php:994
+msgid "Import WordPress"
+msgstr ""
+
+#: wordpress-importer.php:1001
+msgid ""
+"A new version of this importer is available. Please update to version %s to "
+"ensure compatibility with newer export files."
+msgstr ""
+
+#: wordpress-importer.php:1016
+msgid ""
+"Howdy! Upload your WordPress eXtended RSS (WXR) file and we&#8217;ll import "
+"the posts, pages, comments, custom fields, categories, and tags into this "
+"site."
+msgstr ""
+
+#: wordpress-importer.php:1017
+msgid "Choose a WXR (.xml) file to upload, then click Upload file and import."
+msgstr ""
+
+#: wordpress-importer.php:1091
+msgid ""
+"Import <strong>posts, pages, comments, custom fields, categories, and tags</"
+"strong> from a WordPress export file."
+msgstr ""
+
+#. Plugin Name of the plugin/theme
+msgid "WordPress Importer"
+msgstr ""
+
+#. Plugin URI of the plugin/theme
+msgid "http://wordpress.org/extend/plugins/wordpress-importer/"
+msgstr ""
+
+#. Description of the plugin/theme
+msgid ""
+"Import posts, pages, comments, custom fields, categories, tags and more from "
+"a WordPress export file."
+msgstr ""
+
+#. Author of the plugin/theme
+msgid "wordpressdotorg"
+msgstr ""
+
+#. Author URI of the plugin/theme
+msgid "http://wordpress.org/"
+msgstr ""
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-content/plugins/wordpress-importer/parsers.php	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,647 @@
+<?php
+/**
+ * WordPress eXtended RSS file parser implementations
+ *
+ * @package WordPress
+ * @subpackage Importer
+ */
+
+/**
+ * WordPress Importer class for managing parsing of WXR files.
+ */
+class WXR_Parser {
+	function parse( $file ) {
+		// Attempt to use proper XML parsers first
+		if ( extension_loaded( 'simplexml' ) ) {
+			$parser = new WXR_Parser_SimpleXML;
+			$result = $parser->parse( $file );
+
+			// If SimpleXML succeeds or this is an invalid WXR file then return the results
+			if ( ! is_wp_error( $result ) || 'SimpleXML_parse_error' != $result->get_error_code() )
+				return $result;
+		} else if ( extension_loaded( 'xml' ) ) {
+			$parser = new WXR_Parser_XML;
+			$result = $parser->parse( $file );
+
+			// If XMLParser succeeds or this is an invalid WXR file then return the results
+			if ( ! is_wp_error( $result ) || 'XML_parse_error' != $result->get_error_code() )
+				return $result;
+		}
+
+		// We have a malformed XML file, so display the error and fallthrough to regex
+		if ( isset($result) && defined('IMPORT_DEBUG') && IMPORT_DEBUG ) {
+			echo '<pre>';
+			if ( 'SimpleXML_parse_error' == $result->get_error_code() ) {
+				foreach  ( $result->get_error_data() as $error )
+					echo $error->line . ':' . $error->column . ' ' . esc_html( $error->message ) . "\n";
+			} else if ( 'XML_parse_error' == $result->get_error_code() ) {
+				$error = $result->get_error_data();
+				echo $error[0] . ':' . $error[1] . ' ' . esc_html( $error[2] );
+			}
+			echo '</pre>';
+			echo '<p><strong>' . __( 'There was an error when reading this WXR file', 'wordpress-importer' ) . '</strong><br />';
+			echo __( 'Details are shown above. The importer will now try again with a different parser...', 'wordpress-importer' ) . '</p>';
+		}
+
+		// use regular expressions if nothing else available or this is bad XML
+		$parser = new WXR_Parser_Regex;
+		return $parser->parse( $file );
+	}
+}
+
+/**
+ * WXR Parser that makes use of the SimpleXML PHP extension.
+ */
+class WXR_Parser_SimpleXML {
+	function parse( $file ) {
+		$authors = $posts = $categories = $tags = $terms = array();
+
+		$internal_errors = libxml_use_internal_errors(true);
+		$xml = simplexml_load_file( $file );
+		// halt if loading produces an error
+		if ( ! $xml )
+			return new WP_Error( 'SimpleXML_parse_error', __( 'There was an error when reading this WXR file', 'wordpress-importer' ), libxml_get_errors() );
+
+		$wxr_version = $xml->xpath('/rss/channel/wp:wxr_version');
+		if ( ! $wxr_version )
+			return new WP_Error( 'WXR_parse_error', __( 'This does not appear to be a WXR file, missing/invalid WXR version number', 'wordpress-importer' ) );
+
+		$wxr_version = (string) trim( $wxr_version[0] );
+		// confirm that we are dealing with the correct file format
+		if ( ! preg_match( '/^\d+\.\d+$/', $wxr_version ) )
+			return new WP_Error( 'WXR_parse_error', __( 'This does not appear to be a WXR file, missing/invalid WXR version number', 'wordpress-importer' ) );
+
+		$base_url = $xml->xpath('/rss/channel/wp:base_site_url');
+		$base_url = (string) trim( $base_url[0] );
+
+		$namespaces = $xml->getDocNamespaces();
+		if ( ! isset( $namespaces['wp'] ) )
+			$namespaces['wp'] = 'http://wordpress.org/export/1.1/';
+		if ( ! isset( $namespaces['excerpt'] ) )
+			$namespaces['excerpt'] = 'http://wordpress.org/export/1.1/excerpt/';
+
+		// grab authors
+		foreach ( $xml->xpath('/rss/channel/wp:author') as $author_arr ) {
+			$a = $author_arr->children( $namespaces['wp'] );
+			$login = (string) $a->author_login;
+			$authors[$login] = array(
+				'author_id' => (int) $a->author_id,
+				'author_login' => $login,
+				'author_email' => (string) $a->author_email,
+				'author_display_name' => (string) $a->author_display_name,
+				'author_first_name' => (string) $a->author_first_name,
+				'author_last_name' => (string) $a->author_last_name
+			);
+		}
+
+		// grab cats, tags and terms
+		foreach ( $xml->xpath('/rss/channel/wp:category') as $term_arr ) {
+			$t = $term_arr->children( $namespaces['wp'] );
+			$categories[] = array(
+				'term_id' => (int) $t->term_id,
+				'category_nicename' => (string) $t->category_nicename,
+				'category_parent' => (string) $t->category_parent,
+				'cat_name' => (string) $t->cat_name,
+				'category_description' => (string) $t->category_description
+			);
+		}
+
+		foreach ( $xml->xpath('/rss/channel/wp:tag') as $term_arr ) {
+			$t = $term_arr->children( $namespaces['wp'] );
+			$tags[] = array(
+				'term_id' => (int) $t->term_id,
+				'tag_slug' => (string) $t->tag_slug,
+				'tag_name' => (string) $t->tag_name,
+				'tag_description' => (string) $t->tag_description
+			);
+		}
+
+		foreach ( $xml->xpath('/rss/channel/wp:term') as $term_arr ) {
+			$t = $term_arr->children( $namespaces['wp'] );
+			$terms[] = array(
+				'term_id' => (int) $t->term_id,
+				'term_taxonomy' => (string) $t->term_taxonomy,
+				'slug' => (string) $t->term_slug,
+				'term_parent' => (string) $t->term_parent,
+				'term_name' => (string) $t->term_name,
+				'term_description' => (string) $t->term_description
+			);
+		}
+
+		// grab posts
+		foreach ( $xml->channel->item as $item ) {
+			$post = array(
+				'post_title' => (string) $item->title,
+				'guid' => (string) $item->guid,
+			);
+
+			$dc = $item->children( 'http://purl.org/dc/elements/1.1/' );
+			$post['post_author'] = (string) $dc->creator;
+
+			$content = $item->children( 'http://purl.org/rss/1.0/modules/content/' );
+			$excerpt = $item->children( $namespaces['excerpt'] );
+			$post['post_content'] = (string) $content->encoded;
+			$post['post_excerpt'] = (string) $excerpt->encoded;
+
+			$wp = $item->children( $namespaces['wp'] );
+			$post['post_id'] = (int) $wp->post_id;
+			$post['post_date'] = (string) $wp->post_date;
+			$post['post_date_gmt'] = (string) $wp->post_date_gmt;
+			$post['comment_status'] = (string) $wp->comment_status;
+			$post['ping_status'] = (string) $wp->ping_status;
+			$post['post_name'] = (string) $wp->post_name;
+			$post['status'] = (string) $wp->status;
+			$post['post_parent'] = (int) $wp->post_parent;
+			$post['menu_order'] = (int) $wp->menu_order;
+			$post['post_type'] = (string) $wp->post_type;
+			$post['post_password'] = (string) $wp->post_password;
+			$post['is_sticky'] = (int) $wp->is_sticky;
+
+			if ( isset($wp->attachment_url) )
+				$post['attachment_url'] = (string) $wp->attachment_url;
+
+			foreach ( $item->category as $c ) {
+				$att = $c->attributes();
+				if ( isset( $att['nicename'] ) )
+					$post['terms'][] = array(
+						'name' => (string) $c,
+						'slug' => (string) $att['nicename'],
+						'domain' => (string) $att['domain']
+					);
+			}
+
+			foreach ( $wp->postmeta as $meta ) {
+				$post['postmeta'][] = array(
+					'key' => (string) $meta->meta_key,
+					'value' => (string) $meta->meta_value
+				);
+			}
+
+			foreach ( $wp->comment as $comment ) {
+				$meta = array();
+				if ( isset( $comment->commentmeta ) ) {
+					foreach ( $comment->commentmeta as $m ) {
+						$meta[] = array(
+							'key' => (string) $m->meta_key,
+							'value' => (string) $m->meta_value
+						);
+					}
+				}
+			
+				$post['comments'][] = array(
+					'comment_id' => (int) $comment->comment_id,
+					'comment_author' => (string) $comment->comment_author,
+					'comment_author_email' => (string) $comment->comment_author_email,
+					'comment_author_IP' => (string) $comment->comment_author_IP,
+					'comment_author_url' => (string) $comment->comment_author_url,
+					'comment_date' => (string) $comment->comment_date,
+					'comment_date_gmt' => (string) $comment->comment_date_gmt,
+					'comment_content' => (string) $comment->comment_content,
+					'comment_approved' => (string) $comment->comment_approved,
+					'comment_type' => (string) $comment->comment_type,
+					'comment_parent' => (string) $comment->comment_parent,
+					'comment_user_id' => (int) $comment->comment_user_id,
+					'commentmeta' => $meta,
+				);
+			}
+
+			$posts[] = $post;
+		}
+
+		return array(
+			'authors' => $authors,
+			'posts' => $posts,
+			'categories' => $categories,
+			'tags' => $tags,
+			'terms' => $terms,
+			'base_url' => $base_url,
+			'version' => $wxr_version
+		);
+	}
+}
+
+/**
+ * WXR Parser that makes use of the XML Parser PHP extension.
+ */
+class WXR_Parser_XML {
+	var $wp_tags = array(
+		'wp:post_id', 'wp:post_date', 'wp:post_date_gmt', 'wp:comment_status', 'wp:ping_status', 'wp:attachment_url',
+		'wp:status', 'wp:post_name', 'wp:post_parent', 'wp:menu_order', 'wp:post_type', 'wp:post_password',
+		'wp:is_sticky', 'wp:term_id', 'wp:category_nicename', 'wp:category_parent', 'wp:cat_name', 'wp:category_description',
+		'wp:tag_slug', 'wp:tag_name', 'wp:tag_description', 'wp:term_taxonomy', 'wp:term_parent',
+		'wp:term_name', 'wp:term_description', 'wp:author_id', 'wp:author_login', 'wp:author_email', 'wp:author_display_name',
+		'wp:author_first_name', 'wp:author_last_name',
+	);
+	var $wp_sub_tags = array(
+		'wp:comment_id', 'wp:comment_author', 'wp:comment_author_email', 'wp:comment_author_url',
+		'wp:comment_author_IP',	'wp:comment_date', 'wp:comment_date_gmt', 'wp:comment_content',
+		'wp:comment_approved', 'wp:comment_type', 'wp:comment_parent', 'wp:comment_user_id',
+	);
+
+	function parse( $file ) {
+		$this->wxr_version = $this->in_post = $this->cdata = $this->data = $this->sub_data = $this->in_tag = $this->in_sub_tag = false;
+		$this->authors = $this->posts = $this->term = $this->category = $this->tag = array();
+
+		$xml = xml_parser_create( 'UTF-8' );
+		xml_parser_set_option( $xml, XML_OPTION_SKIP_WHITE, 1 );
+		xml_parser_set_option( $xml, XML_OPTION_CASE_FOLDING, 0 );
+		xml_set_object( $xml, $this );
+		xml_set_character_data_handler( $xml, 'cdata' );
+		xml_set_element_handler( $xml, 'tag_open', 'tag_close' );
+
+		if ( ! xml_parse( $xml, file_get_contents( $file ), true ) ) {
+			$current_line = xml_get_current_line_number( $xml );
+			$current_column = xml_get_current_column_number( $xml );
+			$error_code = xml_get_error_code( $xml );
+			$error_string = xml_error_string( $error_code );
+			return new WP_Error( 'XML_parse_error', 'There was an error when reading this WXR file', array( $current_line, $current_column, $error_string ) );
+		}
+		xml_parser_free( $xml );
+
+		if ( ! preg_match( '/^\d+\.\d+$/', $this->wxr_version ) )
+			return new WP_Error( 'WXR_parse_error', __( 'This does not appear to be a WXR file, missing/invalid WXR version number', 'wordpress-importer' ) );
+
+		return array(
+			'authors' => $this->authors,
+			'posts' => $this->posts,
+			'categories' => $this->category,
+			'tags' => $this->tag,
+			'terms' => $this->term,
+			'base_url' => $this->base_url,
+			'version' => $this->wxr_version
+		);
+	}
+
+	function tag_open( $parse, $tag, $attr ) {
+		if ( in_array( $tag, $this->wp_tags ) ) {
+			$this->in_tag = substr( $tag, 3 );
+			return;
+		}
+
+		if ( in_array( $tag, $this->wp_sub_tags ) ) {
+			$this->in_sub_tag = substr( $tag, 3 );
+			return;
+		}
+
+		switch ( $tag ) {
+			case 'category':
+				if ( isset($attr['domain'], $attr['nicename']) ) {
+					$this->sub_data['domain'] = $attr['domain'];
+					$this->sub_data['slug'] = $attr['nicename'];
+				}
+				break;
+			case 'item': $this->in_post = true;
+			case 'title': if ( $this->in_post ) $this->in_tag = 'post_title'; break;
+			case 'guid': $this->in_tag = 'guid'; break;
+			case 'dc:creator': $this->in_tag = 'post_author'; break;
+			case 'content:encoded': $this->in_tag = 'post_content'; break;
+			case 'excerpt:encoded': $this->in_tag = 'post_excerpt'; break;
+
+			case 'wp:term_slug': $this->in_tag = 'slug'; break;
+			case 'wp:meta_key': $this->in_sub_tag = 'key'; break;
+			case 'wp:meta_value': $this->in_sub_tag = 'value'; break;
+		}
+	}
+
+	function cdata( $parser, $cdata ) {
+		if ( ! trim( $cdata ) )
+			return;
+
+		$this->cdata .= trim( $cdata );
+	}
+
+	function tag_close( $parser, $tag ) {
+		switch ( $tag ) {
+			case 'wp:comment':
+				unset( $this->sub_data['key'], $this->sub_data['value'] ); // remove meta sub_data
+				if ( ! empty( $this->sub_data ) )
+					$this->data['comments'][] = $this->sub_data;
+				$this->sub_data = false;
+				break;
+			case 'wp:commentmeta':
+				$this->sub_data['commentmeta'][] = array(
+					'key' => $this->sub_data['key'],
+					'value' => $this->sub_data['value']
+				);
+				break;
+			case 'category':
+				if ( ! empty( $this->sub_data ) ) {
+					$this->sub_data['name'] = $this->cdata;
+					$this->data['terms'][] = $this->sub_data;
+				}
+				$this->sub_data = false;
+				break;
+			case 'wp:postmeta':
+				if ( ! empty( $this->sub_data ) )
+					$this->data['postmeta'][] = $this->sub_data;
+				$this->sub_data = false;
+				break;
+			case 'item':
+				$this->posts[] = $this->data;
+				$this->data = false;
+				break;
+			case 'wp:category':
+			case 'wp:tag':
+			case 'wp:term':
+				$n = substr( $tag, 3 );
+				array_push( $this->$n, $this->data );
+				$this->data = false;
+				break;
+			case 'wp:author':
+				if ( ! empty($this->data['author_login']) )
+					$this->authors[$this->data['author_login']] = $this->data;
+				$this->data = false;
+				break;
+			case 'wp:base_site_url':
+				$this->base_url = $this->cdata;
+				break;
+			case 'wp:wxr_version':
+				$this->wxr_version = $this->cdata;
+				break;
+
+			default:
+				if ( $this->in_sub_tag ) {
+					$this->sub_data[$this->in_sub_tag] = ! empty( $this->cdata ) ? $this->cdata : '';
+					$this->in_sub_tag = false;
+				} else if ( $this->in_tag ) {
+					$this->data[$this->in_tag] = ! empty( $this->cdata ) ? $this->cdata : '';
+					$this->in_tag = false;
+				}
+		}
+
+		$this->cdata = false;
+	}
+}
+
+/**
+ * WXR Parser that uses regular expressions. Fallback for installs without an XML parser.
+ */
+class WXR_Parser_Regex {
+	var $authors = array();
+	var $posts = array();
+	var $categories = array();
+	var $tags = array();
+	var $terms = array();
+	var $base_url = '';
+
+	function WXR_Parser_Regex() {
+		$this->__construct();
+	}
+
+	function __construct() {
+		$this->has_gzip = is_callable( 'gzopen' );
+	}
+
+	function parse( $file ) {
+		$wxr_version = $in_post = false;
+
+		$fp = $this->fopen( $file, 'r' );
+		if ( $fp ) {
+			while ( ! $this->feof( $fp ) ) {
+				$importline = rtrim( $this->fgets( $fp ) );
+
+				if ( ! $wxr_version && preg_match( '|<wp:wxr_version>(\d+\.\d+)</wp:wxr_version>|', $importline, $version ) )
+					$wxr_version = $version[1];
+
+				if ( false !== strpos( $importline, '<wp:base_site_url>' ) ) {
+					preg_match( '|<wp:base_site_url>(.*?)</wp:base_site_url>|is', $importline, $url );
+					$this->base_url = $url[1];
+					continue;
+				}
+				if ( false !== strpos( $importline, '<wp:category>' ) ) {
+					preg_match( '|<wp:category>(.*?)</wp:category>|is', $importline, $category );
+					$this->categories[] = $this->process_category( $category[1] );
+					continue;
+				}
+				if ( false !== strpos( $importline, '<wp:tag>' ) ) {
+					preg_match( '|<wp:tag>(.*?)</wp:tag>|is', $importline, $tag );
+					$this->tags[] = $this->process_tag( $tag[1] );
+					continue;
+				}
+				if ( false !== strpos( $importline, '<wp:term>' ) ) {
+					preg_match( '|<wp:term>(.*?)</wp:term>|is', $importline, $term );
+					$this->terms[] = $this->process_term( $term[1] );
+					continue;
+				}
+				if ( false !== strpos( $importline, '<wp:author>' ) ) {
+					preg_match( '|<wp:author>(.*?)</wp:author>|is', $importline, $author );
+					$a = $this->process_author( $author[1] );
+					$this->authors[$a['author_login']] = $a;
+					continue;
+				}
+				if ( false !== strpos( $importline, '<item>' ) ) {
+					$post = '';
+					$in_post = true;
+					continue;
+				}
+				if ( false !== strpos( $importline, '</item>' ) ) {
+					$in_post = false;
+					$this->posts[] = $this->process_post( $post );
+					continue;
+				}
+				if ( $in_post ) {
+					$post .= $importline . "\n";
+				}
+			}
+
+			$this->fclose($fp);
+		}
+
+		if ( ! $wxr_version )
+			return new WP_Error( 'WXR_parse_error', __( 'This does not appear to be a WXR file, missing/invalid WXR version number', 'wordpress-importer' ) );
+
+		return array(
+			'authors' => $this->authors,
+			'posts' => $this->posts,
+			'categories' => $this->categories,
+			'tags' => $this->tags,
+			'terms' => $this->terms,
+			'base_url' => $this->base_url,
+			'version' => $wxr_version
+		);
+	}
+
+	function get_tag( $string, $tag ) {
+		preg_match( "|<$tag.*?>(.*?)</$tag>|is", $string, $return );
+		if ( isset( $return[1] ) ) {
+			if ( substr( $return[1], 0, 9 ) == '<![CDATA[' ) {
+				if ( strpos( $return[1], ']]]]><![CDATA[>' ) !== false ) {
+					preg_match_all( '|<!\[CDATA\[(.*?)\]\]>|s', $return[1], $matches );
+					$return = '';
+					foreach( $matches[1] as $match )
+						$return .= $match;
+				} else {
+					$return = preg_replace( '|^<!\[CDATA\[(.*)\]\]>$|s', '$1', $return[1] );
+				}
+			} else {
+				$return = $return[1];
+			}
+		} else {
+			$return = '';
+		}
+		return $return;
+	}
+
+	function process_category( $c ) {
+		return array(
+			'term_id' => $this->get_tag( $c, 'wp:term_id' ),
+			'cat_name' => $this->get_tag( $c, 'wp:cat_name' ),
+			'category_nicename'	=> $this->get_tag( $c, 'wp:category_nicename' ),
+			'category_parent' => $this->get_tag( $c, 'wp:category_parent' ),
+			'category_description' => $this->get_tag( $c, 'wp:category_description' ),
+		);
+	}
+
+	function process_tag( $t ) {
+		return array(
+			'term_id' => $this->get_tag( $t, 'wp:term_id' ),
+			'tag_name' => $this->get_tag( $t, 'wp:tag_name' ),
+			'tag_slug' => $this->get_tag( $t, 'wp:tag_slug' ),
+			'tag_description' => $this->get_tag( $t, 'wp:tag_description' ),
+		);
+	}
+
+	function process_term( $t ) {
+		return array(
+			'term_id' => $this->get_tag( $t, 'wp:term_id' ),
+			'term_taxonomy' => $this->get_tag( $t, 'wp:term_taxonomy' ),
+			'slug' => $this->get_tag( $t, 'wp:term_slug' ),
+			'term_parent' => $this->get_tag( $t, 'wp:term_parent' ),
+			'term_name' => $this->get_tag( $t, 'wp:term_name' ),
+			'term_description' => $this->get_tag( $t, 'wp:term_description' ),
+		);
+	}
+
+	function process_author( $a ) {
+		return array(
+			'author_id' => $this->get_tag( $a, 'wp:author_id' ),
+			'author_login' => $this->get_tag( $a, 'wp:author_login' ),
+			'author_email' => $this->get_tag( $a, 'wp:author_email' ),
+			'author_display_name' => $this->get_tag( $a, 'wp:author_display_name' ),
+			'author_first_name' => $this->get_tag( $a, 'wp:author_first_name' ),
+			'author_last_name' => $this->get_tag( $a, 'wp:author_last_name' ),
+		);
+	}
+
+	function process_post( $post ) {
+		$post_id        = $this->get_tag( $post, 'wp:post_id' );
+		$post_title     = $this->get_tag( $post, 'title' );
+		$post_date      = $this->get_tag( $post, 'wp:post_date' );
+		$post_date_gmt  = $this->get_tag( $post, 'wp:post_date_gmt' );
+		$comment_status = $this->get_tag( $post, 'wp:comment_status' );
+		$ping_status    = $this->get_tag( $post, 'wp:ping_status' );
+		$status         = $this->get_tag( $post, 'wp:status' );
+		$post_name      = $this->get_tag( $post, 'wp:post_name' );
+		$post_parent    = $this->get_tag( $post, 'wp:post_parent' );
+		$menu_order     = $this->get_tag( $post, 'wp:menu_order' );
+		$post_type      = $this->get_tag( $post, 'wp:post_type' );
+		$post_password  = $this->get_tag( $post, 'wp:post_password' );
+		$is_sticky      = $this->get_tag( $post, 'wp:is_sticky' );
+		$guid           = $this->get_tag( $post, 'guid' );
+		$post_author    = $this->get_tag( $post, 'dc:creator' );
+
+		$post_excerpt = $this->get_tag( $post, 'excerpt:encoded' );
+		$post_excerpt = preg_replace_callback( '|<(/?[A-Z]+)|', array( &$this, '_normalize_tag' ), $post_excerpt );
+		$post_excerpt = str_replace( '<br>', '<br />', $post_excerpt );
+		$post_excerpt = str_replace( '<hr>', '<hr />', $post_excerpt );
+
+		$post_content = $this->get_tag( $post, 'content:encoded' );
+		$post_content = preg_replace_callback( '|<(/?[A-Z]+)|', array( &$this, '_normalize_tag' ), $post_content );
+		$post_content = str_replace( '<br>', '<br />', $post_content );
+		$post_content = str_replace( '<hr>', '<hr />', $post_content );
+
+		$postdata = compact( 'post_id', 'post_author', 'post_date', 'post_date_gmt', 'post_content', 'post_excerpt',
+			'post_title', 'status', 'post_name', 'comment_status', 'ping_status', 'guid', 'post_parent',
+			'menu_order', 'post_type', 'post_password', 'is_sticky'
+		);
+
+		$attachment_url = $this->get_tag( $post, 'wp:attachment_url' );
+		if ( $attachment_url )
+			$postdata['attachment_url'] = $attachment_url;
+
+		preg_match_all( '|<category domain="([^"]+?)" nicename="([^"]+?)">(.+?)</category>|is', $post, $terms, PREG_SET_ORDER );
+		foreach ( $terms as $t ) {
+			$post_terms[] = array(
+				'slug' => $t[2],
+				'domain' => $t[1],
+				'name' => str_replace( array( '<![CDATA[', ']]>' ), '', $t[3] ),
+			);
+		}
+		if ( ! empty( $post_terms ) ) $postdata['terms'] = $post_terms;
+
+		preg_match_all( '|<wp:comment>(.+?)</wp:comment>|is', $post, $comments );
+		$comments = $comments[1];
+		if ( $comments ) {
+			foreach ( $comments as $comment ) {
+				preg_match_all( '|<wp:commentmeta>(.+?)</wp:commentmeta>|is', $comment, $commentmeta );
+				$commentmeta = $commentmeta[1];
+				$c_meta = array();
+				foreach ( $commentmeta as $m ) {
+					$c_meta[] = array(
+						'key' => $this->get_tag( $m, 'wp:meta_key' ),
+						'value' => $this->get_tag( $m, 'wp:meta_value' ),
+					);
+				}
+
+				$post_comments[] = array(
+					'comment_id' => $this->get_tag( $comment, 'wp:comment_id' ),
+					'comment_author' => $this->get_tag( $comment, 'wp:comment_author' ),
+					'comment_author_email' => $this->get_tag( $comment, 'wp:comment_author_email' ),
+					'comment_author_IP' => $this->get_tag( $comment, 'wp:comment_author_IP' ),
+					'comment_author_url' => $this->get_tag( $comment, 'wp:comment_author_url' ),
+					'comment_date' => $this->get_tag( $comment, 'wp:comment_date' ),
+					'comment_date_gmt' => $this->get_tag( $comment, 'wp:comment_date_gmt' ),
+					'comment_content' => $this->get_tag( $comment, 'wp:comment_content' ),
+					'comment_approved' => $this->get_tag( $comment, 'wp:comment_approved' ),
+					'comment_type' => $this->get_tag( $comment, 'wp:comment_type' ),
+					'comment_parent' => $this->get_tag( $comment, 'wp:comment_parent' ),
+					'comment_user_id' => $this->get_tag( $comment, 'wp:comment_user_id' ),
+					'commentmeta' => $c_meta,
+				);
+			}
+		}
+		if ( ! empty( $post_comments ) ) $postdata['comments'] = $post_comments;
+
+		preg_match_all( '|<wp:postmeta>(.+?)</wp:postmeta>|is', $post, $postmeta );
+		$postmeta = $postmeta[1];
+		if ( $postmeta ) {
+			foreach ( $postmeta as $p ) {
+				$post_postmeta[] = array(
+					'key' => $this->get_tag( $p, 'wp:meta_key' ),
+					'value' => $this->get_tag( $p, 'wp:meta_value' ),
+				);
+			}
+		}
+		if ( ! empty( $post_postmeta ) ) $postdata['postmeta'] = $post_postmeta;
+
+		return $postdata;
+	}
+
+	function _normalize_tag( $matches ) {
+		return '<' . strtolower( $matches[1] );
+	}
+
+	function fopen( $filename, $mode = 'r' ) {
+		if ( $this->has_gzip )
+			return gzopen( $filename, $mode );
+		return fopen( $filename, $mode );
+	}
+
+	function feof( $fp ) {
+		if ( $this->has_gzip )
+			return gzeof( $fp );
+		return feof( $fp );
+	}
+
+	function fgets( $fp, $len = 8192 ) {
+		if ( $this->has_gzip )
+			return gzgets( $fp, $len );
+		return fgets( $fp, $len );
+	}
+
+	function fclose( $fp ) {
+		if ( $this->has_gzip )
+			return gzclose( $fp );
+		return fclose( $fp );
+	}
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-content/plugins/wordpress-importer/readme.txt	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,105 @@
+=== Plugin Name ===
+Contributors: wordpressdotorg
+Donate link: 
+Tags: importer, wordpress
+Requires at least: 3.0
+Tested up to: 3.4
+Stable tag: 0.6
+
+Import posts, pages, comments, custom fields, categories, tags and more from a WordPress export file.
+
+== Description ==
+
+The WordPress Importer will import the following content from a WordPress export file:
+
+* Posts, pages and other custom post types
+* Comments
+* Custom fields and post meta
+* Categories, tags and terms from custom taxonomies
+* Authors
+
+For further information and instructions please see the [Codex page on Importing Content](http://codex.wordpress.org/Importing_Content#WordPress)
+
+== Installation ==
+
+The quickest method for installing the importer is:
+
+1. Visit Tools -> Import in the WordPress dashboard
+1. Click on the WordPress link in the list of importers
+1. Click "Install Now"
+1. Finally click "Activate Plugin & Run Importer"
+
+If you would prefer to do things manually then follow these instructions:
+
+1. Upload the `wordpress-importer` folder to the `/wp-content/plugins/` directory
+1. Activate the plugin through the 'Plugins' menu in WordPress
+1. Go to the Tools -> Import screen, click on WordPress
+
+== Changelog ==
+
+= 0.6 =
+* Support for WXR 1.2 and multiple CDATA sections
+* Post aren't duplicates if their post_type's are different
+
+= 0.5.2 =
+* Double check that the uploaded export file exists before processing it. This prevents incorrect error messages when
+an export file is uploaded to a server with bad permissions and WordPress 3.3 or 3.3.1 is being used.
+
+= 0.5 =
+* Import comment meta (requires export from WordPress 3.2)
+* Minor bugfixes and enhancements
+
+= 0.4 =
+* Map comment user_id where possible
+* Import attachments from `wp:attachment_url`
+* Upload attachments to correct directory
+* Remap resized image URLs correctly
+
+= 0.3 =
+* Use an XML Parser if possible
+* Proper import support for nav menus
+* ... and much more, see [Trac ticket #15197](http://core.trac.wordpress.org/ticket/15197)
+
+= 0.1 =
+* Initial release
+
+== Upgrade Notice ==
+
+= 0.6 =
+Support for exports from WordPress 3.4.
+
+= 0.5.2 =
+Fix incorrect error message when the export file could not be uploaded.
+
+= 0.5 =
+Import comment meta and other minor bugfixes and enhancements.
+
+= 0.4 =
+Bug fixes for attachment importing and other small enhancements.
+
+= 0.3 =
+Upgrade for a more robust and reliable experience when importing WordPress export files, and for compatibility with WordPress 3.1.
+
+== Frequently Asked Questions ==
+
+= Help! I'm getting out of memory errors or a blank screen. =
+If your exported file is very large, the import script may run into your host's configured memory limit for PHP.
+
+A message like "Fatal error: Allowed memory size of 8388608 bytes exhausted" indicates that the script can't successfully import your XML file under the current PHP memory limit. If you have access to the php.ini file, you can manually increase the limit; if you do not (your WordPress installation is hosted on a shared server, for instance), you might have to break your exported XML file into several smaller pieces and run the import script one at a time.
+
+For those with shared hosting, the best alternative may be to consult hosting support to determine the safest approach for running the import. A host may be willing to temporarily lift the memory limit and/or run the process directly from their end.
+
+-- [WordPress Codex: Importing Content](http://codex.wordpress.org/Importing_Content#Before_Importing)
+
+== Filters ==
+
+The importer has a couple of filters to allow you to completely enable/block certain features:
+
+* `import_allow_create_users`: return false if you only want to allow mapping to existing users
+* `import_allow_fetch_attachments`: return false if you do not wish to allow importing and downloading of attachments
+* `import_attachment_size_limit`: return an integer value for the maximum file size in bytes to save (default is 0, which is unlimited)
+
+There are also a few actions available to hook into:
+
+* `import_start`: occurs after the export file has been uploaded and author import settings have been chosen
+* `import_end`: called after the last output from the importer
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-content/plugins/wordpress-importer/wordpress-importer.php	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,1098 @@
+<?php
+/*
+Plugin Name: WordPress Importer
+Plugin URI: http://wordpress.org/extend/plugins/wordpress-importer/
+Description: Import posts, pages, comments, custom fields, categories, tags and more from a WordPress export file.
+Author: wordpressdotorg
+Author URI: http://wordpress.org/
+Version: 0.6
+Text Domain: wordpress-importer
+License: GPL version 2 or later - http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+*/
+
+if ( ! defined( 'WP_LOAD_IMPORTERS' ) )
+	return;
+
+/** Display verbose errors */
+define( 'IMPORT_DEBUG', false );
+
+// Load Importer API
+require_once ABSPATH . 'wp-admin/includes/import.php';
+
+if ( ! class_exists( 'WP_Importer' ) ) {
+	$class_wp_importer = ABSPATH . 'wp-admin/includes/class-wp-importer.php';
+	if ( file_exists( $class_wp_importer ) )
+		require $class_wp_importer;
+}
+
+// include WXR file parsers
+require dirname( __FILE__ ) . '/parsers.php';
+
+/**
+ * WordPress Importer class for managing the import process of a WXR file
+ *
+ * @package WordPress
+ * @subpackage Importer
+ */
+if ( class_exists( 'WP_Importer' ) ) {
+class WP_Import extends WP_Importer {
+	var $max_wxr_version = 1.2; // max. supported WXR version
+
+	var $id; // WXR attachment ID
+
+	// information to import from WXR file
+	var $version;
+	var $authors = array();
+	var $posts = array();
+	var $terms = array();
+	var $categories = array();
+	var $tags = array();
+	var $base_url = '';
+
+	// mappings from old information to new
+	var $processed_authors = array();
+	var $author_mapping = array();
+	var $processed_terms = array();
+	var $processed_posts = array();
+	var $post_orphans = array();
+	var $processed_menu_items = array();
+	var $menu_item_orphans = array();
+	var $missing_menu_items = array();
+
+	var $fetch_attachments = false;
+	var $url_remap = array();
+	var $featured_images = array();
+
+	function WP_Import() { /* nothing */ }
+
+	/**
+	 * Registered callback function for the WordPress Importer
+	 *
+	 * Manages the three separate stages of the WXR import process
+	 */
+	function dispatch() {
+		$this->header();
+
+		$step = empty( $_GET['step'] ) ? 0 : (int) $_GET['step'];
+		switch ( $step ) {
+			case 0:
+				$this->greet();
+				break;
+			case 1:
+				check_admin_referer( 'import-upload' );
+				if ( $this->handle_upload() )
+					$this->import_options();
+				break;
+			case 2:
+				check_admin_referer( 'import-wordpress' );
+				$this->fetch_attachments = ( ! empty( $_POST['fetch_attachments'] ) && $this->allow_fetch_attachments() );
+				$this->id = (int) $_POST['import_id'];
+				$file = get_attached_file( $this->id );
+				set_time_limit(0);
+				$this->import( $file );
+				break;
+		}
+
+		$this->footer();
+	}
+
+	/**
+	 * The main controller for the actual import stage.
+	 *
+	 * @param string $file Path to the WXR file for importing
+	 */
+	function import( $file ) {
+		add_filter( 'import_post_meta_key', array( $this, 'is_valid_meta_key' ) );
+		add_filter( 'http_request_timeout', array( &$this, 'bump_request_timeout' ) );
+
+		$this->import_start( $file );
+
+		$this->get_author_mapping();
+
+		wp_suspend_cache_invalidation( true );
+		$this->process_categories();
+		$this->process_tags();
+		$this->process_terms();
+		$this->process_posts();
+		wp_suspend_cache_invalidation( false );
+
+		// update incorrect/missing information in the DB
+		$this->backfill_parents();
+		$this->backfill_attachment_urls();
+		$this->remap_featured_images();
+
+		$this->import_end();
+	}
+
+	/**
+	 * Parses the WXR file and prepares us for the task of processing parsed data
+	 *
+	 * @param string $file Path to the WXR file for importing
+	 */
+	function import_start( $file ) {
+		if ( ! is_file($file) ) {
+			echo '<p><strong>' . __( 'Sorry, there has been an error.', 'wordpress-importer' ) . '</strong><br />';
+			echo __( 'The file does not exist, please try again.', 'wordpress-importer' ) . '</p>';
+			$this->footer();
+			die();
+		}
+
+		$import_data = $this->parse( $file );
+
+		if ( is_wp_error( $import_data ) ) {
+			echo '<p><strong>' . __( 'Sorry, there has been an error.', 'wordpress-importer' ) . '</strong><br />';
+			echo esc_html( $import_data->get_error_message() ) . '</p>';
+			$this->footer();
+			die();
+		}
+
+		$this->version = $import_data['version'];
+		$this->get_authors_from_import( $import_data );
+		$this->posts = $import_data['posts'];
+		$this->terms = $import_data['terms'];
+		$this->categories = $import_data['categories'];
+		$this->tags = $import_data['tags'];
+		$this->base_url = esc_url( $import_data['base_url'] );
+
+		wp_defer_term_counting( true );
+		wp_defer_comment_counting( true );
+
+		do_action( 'import_start' );
+	}
+
+	/**
+	 * Performs post-import cleanup of files and the cache
+	 */
+	function import_end() {
+		wp_import_cleanup( $this->id );
+
+		wp_cache_flush();
+		foreach ( get_taxonomies() as $tax ) {
+			delete_option( "{$tax}_children" );
+			_get_term_hierarchy( $tax );
+		}
+
+		wp_defer_term_counting( false );
+		wp_defer_comment_counting( false );
+
+		echo '<p>' . __( 'All done.', 'wordpress-importer' ) . ' <a href="' . admin_url() . '">' . __( 'Have fun!', 'wordpress-importer' ) . '</a>' . '</p>';
+		echo '<p>' . __( 'Remember to update the passwords and roles of imported users.', 'wordpress-importer' ) . '</p>';
+
+		do_action( 'import_end' );
+	}
+
+	/**
+	 * Handles the WXR upload and initial parsing of the file to prepare for
+	 * displaying author import options
+	 *
+	 * @return bool False if error uploading or invalid file, true otherwise
+	 */
+	function handle_upload() {
+		$file = wp_import_handle_upload();
+
+		if ( isset( $file['error'] ) ) {
+			echo '<p><strong>' . __( 'Sorry, there has been an error.', 'wordpress-importer' ) . '</strong><br />';
+			echo esc_html( $file['error'] ) . '</p>';
+			return false;
+		} else if ( ! file_exists( $file['file'] ) ) {
+			echo '<p><strong>' . __( 'Sorry, there has been an error.', 'wordpress-importer' ) . '</strong><br />';
+			printf( __( 'The export file could not be found at <code>%s</code>. It is likely that this was caused by a permissions problem.', 'wordpress-importer' ), esc_html( $file['file'] ) );
+			echo '</p>';
+			return false;
+		}
+
+		$this->id = (int) $file['id'];
+		$import_data = $this->parse( $file['file'] );
+		if ( is_wp_error( $import_data ) ) {
+			echo '<p><strong>' . __( 'Sorry, there has been an error.', 'wordpress-importer' ) . '</strong><br />';
+			echo esc_html( $import_data->get_error_message() ) . '</p>';
+			return false;
+		}
+
+		$this->version = $import_data['version'];
+		if ( $this->version > $this->max_wxr_version ) {
+			echo '<div class="error"><p><strong>';
+			printf( __( 'This WXR file (version %s) may not be supported by this version of the importer. Please consider updating.', 'wordpress-importer' ), esc_html($import_data['version']) );
+			echo '</strong></p></div>';
+		}
+
+		$this->get_authors_from_import( $import_data );
+
+		return true;
+	}
+
+	/**
+	 * Retrieve authors from parsed WXR data
+	 *
+	 * Uses the provided author information from WXR 1.1 files
+	 * or extracts info from each post for WXR 1.0 files
+	 *
+	 * @param array $import_data Data returned by a WXR parser
+	 */
+	function get_authors_from_import( $import_data ) {
+		if ( ! empty( $import_data['authors'] ) ) {
+			$this->authors = $import_data['authors'];
+		// no author information, grab it from the posts
+		} else {
+			foreach ( $import_data['posts'] as $post ) {
+				$login = sanitize_user( $post['post_author'], true );
+				if ( empty( $login ) ) {
+					printf( __( 'Failed to import author %s. Their posts will be attributed to the current user.', 'wordpress-importer' ), esc_html( $post['post_author'] ) );
+					echo '<br />';
+					continue;
+				}
+
+				if ( ! isset($this->authors[$login]) )
+					$this->authors[$login] = array(
+						'author_login' => $login,
+						'author_display_name' => $post['post_author']
+					);
+			}
+		}
+	}
+
+	/**
+	 * Display pre-import options, author importing/mapping and option to
+	 * fetch attachments
+	 */
+	function import_options() {
+		$j = 0;
+?>
+<form action="<?php echo admin_url( 'admin.php?import=wordpress&amp;step=2' ); ?>" method="post">
+	<?php wp_nonce_field( 'import-wordpress' ); ?>
+	<input type="hidden" name="import_id" value="<?php echo $this->id; ?>" />
+
+<?php if ( ! empty( $this->authors ) ) : ?>
+	<h3><?php _e( 'Assign Authors', 'wordpress-importer' ); ?></h3>
+	<p><?php _e( 'To make it easier for you to edit and save the imported content, you may want to reassign the author of the imported item to an existing user of this site. For example, you may want to import all the entries as <code>admin</code>s entries.', 'wordpress-importer' ); ?></p>
+<?php if ( $this->allow_create_users() ) : ?>
+	<p><?php printf( __( 'If a new user is created by WordPress, a new password will be randomly generated and the new user&#8217;s role will be set as %s. Manually changing the new user&#8217;s details will be necessary.', 'wordpress-importer' ), esc_html( get_option('default_role') ) ); ?></p>
+<?php endif; ?>
+	<ol id="authors">
+<?php foreach ( $this->authors as $author ) : ?>
+		<li><?php $this->author_select( $j++, $author ); ?></li>
+<?php endforeach; ?>
+	</ol>
+<?php endif; ?>
+
+<?php if ( $this->allow_fetch_attachments() ) : ?>
+	<h3><?php _e( 'Import Attachments', 'wordpress-importer' ); ?></h3>
+	<p>
+		<input type="checkbox" value="1" name="fetch_attachments" id="import-attachments" />
+		<label for="import-attachments"><?php _e( 'Download and import file attachments', 'wordpress-importer' ); ?></label>
+	</p>
+<?php endif; ?>
+
+	<p class="submit"><input type="submit" class="button" value="<?php esc_attr_e( 'Submit', 'wordpress-importer' ); ?>" /></p>
+</form>
+<?php
+	}
+
+	/**
+	 * Display import options for an individual author. That is, either create
+	 * a new user based on import info or map to an existing user
+	 *
+	 * @param int $n Index for each author in the form
+	 * @param array $author Author information, e.g. login, display name, email
+	 */
+	function author_select( $n, $author ) {
+		_e( 'Import author:', 'wordpress-importer' );
+		echo ' <strong>' . esc_html( $author['author_display_name'] );
+		if ( $this->version != '1.0' ) echo ' (' . esc_html( $author['author_login'] ) . ')';
+		echo '</strong><br />';
+
+		if ( $this->version != '1.0' )
+			echo '<div style="margin-left:18px">';
+
+		$create_users = $this->allow_create_users();
+		if ( $create_users ) {
+			if ( $this->version != '1.0' ) {
+				_e( 'or create new user with login name:', 'wordpress-importer' );
+				$value = '';
+			} else {
+				_e( 'as a new user:', 'wordpress-importer' );
+				$value = esc_attr( sanitize_user( $author['author_login'], true ) );
+			}
+
+			echo ' <input type="text" name="user_new['.$n.']" value="'. $value .'" /><br />';
+		}
+
+		if ( ! $create_users && $this->version == '1.0' )
+			_e( 'assign posts to an existing user:', 'wordpress-importer' );
+		else
+			_e( 'or assign posts to an existing user:', 'wordpress-importer' );
+		wp_dropdown_users( array( 'name' => "user_map[$n]", 'multi' => true, 'show_option_all' => __( '- Select -', 'wordpress-importer' ) ) );
+		echo '<input type="hidden" name="imported_authors['.$n.']" value="' . esc_attr( $author['author_login'] ) . '" />';
+
+		if ( $this->version != '1.0' )
+			echo '</div>';
+	}
+
+	/**
+	 * Map old author logins to local user IDs based on decisions made
+	 * in import options form. Can map to an existing user, create a new user
+	 * or falls back to the current user in case of error with either of the previous
+	 */
+	function get_author_mapping() {
+		if ( ! isset( $_POST['imported_authors'] ) )
+			return;
+
+		$create_users = $this->allow_create_users();
+
+		foreach ( (array) $_POST['imported_authors'] as $i => $old_login ) {
+			// Multisite adds strtolower to sanitize_user. Need to sanitize here to stop breakage in process_posts.
+			$santized_old_login = sanitize_user( $old_login, true );
+			$old_id = isset( $this->authors[$old_login]['author_id'] ) ? intval($this->authors[$old_login]['author_id']) : false;
+
+			if ( ! empty( $_POST['user_map'][$i] ) ) {
+				$user = get_userdata( intval($_POST['user_map'][$i]) );
+				if ( isset( $user->ID ) ) {
+					if ( $old_id )
+						$this->processed_authors[$old_id] = $user->ID;
+					$this->author_mapping[$santized_old_login] = $user->ID;
+				}
+			} else if ( $create_users ) {
+				if ( ! empty($_POST['user_new'][$i]) ) {
+					$user_id = wp_create_user( $_POST['user_new'][$i], wp_generate_password() );
+				} else if ( $this->version != '1.0' ) {
+					$user_data = array(
+						'user_login' => $old_login,
+						'user_pass' => wp_generate_password(),
+						'user_email' => isset( $this->authors[$old_login]['author_email'] ) ? $this->authors[$old_login]['author_email'] : '',
+						'display_name' => $this->authors[$old_login]['author_display_name'],
+						'first_name' => isset( $this->authors[$old_login]['author_first_name'] ) ? $this->authors[$old_login]['author_first_name'] : '',
+						'last_name' => isset( $this->authors[$old_login]['author_last_name'] ) ? $this->authors[$old_login]['author_last_name'] : '',
+					);
+					$user_id = wp_insert_user( $user_data );
+				}
+
+				if ( ! is_wp_error( $user_id ) ) {
+					if ( $old_id )
+						$this->processed_authors[$old_id] = $user_id;
+					$this->author_mapping[$santized_old_login] = $user_id;
+				} else {
+					printf( __( 'Failed to create new user for %s. Their posts will be attributed to the current user.', 'wordpress-importer' ), esc_html($this->authors[$old_login]['author_display_name']) );
+					if ( defined('IMPORT_DEBUG') && IMPORT_DEBUG )
+						echo ' ' . $user_id->get_error_message();
+					echo '<br />';
+				}
+			}
+
+			// failsafe: if the user_id was invalid, default to the current user
+			if ( ! isset( $this->author_mapping[$santized_old_login] ) ) {
+				if ( $old_id )
+					$this->processed_authors[$old_id] = (int) get_current_user_id();
+				$this->author_mapping[$santized_old_login] = (int) get_current_user_id();
+			}
+		}
+	}
+
+	/**
+	 * Create new categories based on import information
+	 *
+	 * Doesn't create a new category if its slug already exists
+	 */
+	function process_categories() {
+		if ( empty( $this->categories ) )
+			return;
+
+		foreach ( $this->categories as $cat ) {
+			// if the category already exists leave it alone
+			$term_id = term_exists( $cat['category_nicename'], 'category' );
+			if ( $term_id ) {
+				if ( is_array($term_id) ) $term_id = $term_id['term_id'];
+				if ( isset($cat['term_id']) )
+					$this->processed_terms[intval($cat['term_id'])] = (int) $term_id;
+				continue;
+			}
+
+			$category_parent = empty( $cat['category_parent'] ) ? 0 : category_exists( $cat['category_parent'] );
+			$category_description = isset( $cat['category_description'] ) ? $cat['category_description'] : '';
+			$catarr = array(
+				'category_nicename' => $cat['category_nicename'],
+				'category_parent' => $category_parent,
+				'cat_name' => $cat['cat_name'],
+				'category_description' => $category_description
+			);
+
+			$id = wp_insert_category( $catarr );
+			if ( ! is_wp_error( $id ) ) {
+				if ( isset($cat['term_id']) )
+					$this->processed_terms[intval($cat['term_id'])] = $id;
+			} else {
+				printf( __( 'Failed to import category %s', 'wordpress-importer' ), esc_html($cat['category_nicename']) );
+				if ( defined('IMPORT_DEBUG') && IMPORT_DEBUG )
+					echo ': ' . $id->get_error_message();
+				echo '<br />';
+				continue;
+			}
+		}
+
+		unset( $this->categories );
+	}
+
+	/**
+	 * Create new post tags based on import information
+	 *
+	 * Doesn't create a tag if its slug already exists
+	 */
+	function process_tags() {
+		if ( empty( $this->tags ) )
+			return;
+
+		foreach ( $this->tags as $tag ) {
+			// if the tag already exists leave it alone
+			$term_id = term_exists( $tag['tag_slug'], 'post_tag' );
+			if ( $term_id ) {
+				if ( is_array($term_id) ) $term_id = $term_id['term_id'];
+				if ( isset($tag['term_id']) )
+					$this->processed_terms[intval($tag['term_id'])] = (int) $term_id;
+				continue;
+			}
+
+			$tag_desc = isset( $tag['tag_description'] ) ? $tag['tag_description'] : '';
+			$tagarr = array( 'slug' => $tag['tag_slug'], 'description' => $tag_desc );
+
+			$id = wp_insert_term( $tag['tag_name'], 'post_tag', $tagarr );
+			if ( ! is_wp_error( $id ) ) {
+				if ( isset($tag['term_id']) )
+					$this->processed_terms[intval($tag['term_id'])] = $id['term_id'];
+			} else {
+				printf( __( 'Failed to import post tag %s', 'wordpress-importer' ), esc_html($tag['tag_name']) );
+				if ( defined('IMPORT_DEBUG') && IMPORT_DEBUG )
+					echo ': ' . $id->get_error_message();
+				echo '<br />';
+				continue;
+			}
+		}
+
+		unset( $this->tags );
+	}
+
+	/**
+	 * Create new terms based on import information
+	 *
+	 * Doesn't create a term its slug already exists
+	 */
+	function process_terms() {
+		if ( empty( $this->terms ) )
+			return;
+
+		foreach ( $this->terms as $term ) {
+			// if the term already exists in the correct taxonomy leave it alone
+			$term_id = term_exists( $term['slug'], $term['term_taxonomy'] );
+			if ( $term_id ) {
+				if ( is_array($term_id) ) $term_id = $term_id['term_id'];
+				if ( isset($term['term_id']) )
+					$this->processed_terms[intval($term['term_id'])] = (int) $term_id;
+				continue;
+			}
+
+			if ( empty( $term['term_parent'] ) ) {
+				$parent = 0;
+			} else {
+				$parent = term_exists( $term['term_parent'], $term['term_taxonomy'] );
+				if ( is_array( $parent ) ) $parent = $parent['term_id'];
+			}
+			$description = isset( $term['term_description'] ) ? $term['term_description'] : '';
+			$termarr = array( 'slug' => $term['slug'], 'description' => $description, 'parent' => intval($parent) );
+
+			$id = wp_insert_term( $term['term_name'], $term['term_taxonomy'], $termarr );
+			if ( ! is_wp_error( $id ) ) {
+				if ( isset($term['term_id']) )
+					$this->processed_terms[intval($term['term_id'])] = $id['term_id'];
+			} else {
+				printf( __( 'Failed to import %s %s', 'wordpress-importer' ), esc_html($term['term_taxonomy']), esc_html($term['term_name']) );
+				if ( defined('IMPORT_DEBUG') && IMPORT_DEBUG )
+					echo ': ' . $id->get_error_message();
+				echo '<br />';
+				continue;
+			}
+		}
+
+		unset( $this->terms );
+	}
+
+	/**
+	 * Create new posts based on import information
+	 *
+	 * Posts marked as having a parent which doesn't exist will become top level items.
+	 * Doesn't create a new post if: the post type doesn't exist, the given post ID
+	 * is already noted as imported or a post with the same title and date already exists.
+	 * Note that new/updated terms, comments and meta are imported for the last of the above.
+	 */
+	function process_posts() {
+		foreach ( $this->posts as $post ) {
+			if ( ! post_type_exists( $post['post_type'] ) ) {
+				printf( __( 'Failed to import &#8220;%s&#8221;: Invalid post type %s', 'wordpress-importer' ),
+					esc_html($post['post_title']), esc_html($post['post_type']) );
+				echo '<br />';
+				continue;
+			}
+
+			if ( isset( $this->processed_posts[$post['post_id']] ) && ! empty( $post['post_id'] ) )
+				continue;
+
+			if ( $post['status'] == 'auto-draft' )
+				continue;
+
+			if ( 'nav_menu_item' == $post['post_type'] ) {
+				$this->process_menu_item( $post );
+				continue;
+			}
+
+			$post_type_object = get_post_type_object( $post['post_type'] );
+
+			$post_exists = post_exists( $post['post_title'], '', $post['post_date'] );
+			if ( $post_exists && get_post_type( $post_exists ) == $post['post_type'] ) {
+				printf( __('%s &#8220;%s&#8221; already exists.', 'wordpress-importer'), $post_type_object->labels->singular_name, esc_html($post['post_title']) );
+				echo '<br />';
+				$comment_post_ID = $post_id = $post_exists;
+			} else {
+				$post_parent = (int) $post['post_parent'];
+				if ( $post_parent ) {
+					// if we already know the parent, map it to the new local ID
+					if ( isset( $this->processed_posts[$post_parent] ) ) {
+						$post_parent = $this->processed_posts[$post_parent];
+					// otherwise record the parent for later
+					} else {
+						$this->post_orphans[intval($post['post_id'])] = $post_parent;
+						$post_parent = 0;
+					}
+				}
+
+				// map the post author
+				$author = sanitize_user( $post['post_author'], true );
+				if ( isset( $this->author_mapping[$author] ) )
+					$author = $this->author_mapping[$author];
+				else
+					$author = (int) get_current_user_id();
+
+				$postdata = array(
+					'import_id' => $post['post_id'], 'post_author' => $author, 'post_date' => $post['post_date'],
+					'post_date_gmt' => $post['post_date_gmt'], 'post_content' => $post['post_content'],
+					'post_excerpt' => $post['post_excerpt'], 'post_title' => $post['post_title'],
+					'post_status' => $post['status'], 'post_name' => $post['post_name'],
+					'comment_status' => $post['comment_status'], 'ping_status' => $post['ping_status'],
+					'guid' => $post['guid'], 'post_parent' => $post_parent, 'menu_order' => $post['menu_order'],
+					'post_type' => $post['post_type'], 'post_password' => $post['post_password']
+				);
+
+				if ( 'attachment' == $postdata['post_type'] ) {
+					$remote_url = ! empty($post['attachment_url']) ? $post['attachment_url'] : $post['guid'];
+
+					// try to use _wp_attached file for upload folder placement to ensure the same location as the export site
+					// e.g. location is 2003/05/image.jpg but the attachment post_date is 2010/09, see media_handle_upload()
+					$postdata['upload_date'] = $post['post_date'];
+					if ( isset( $post['postmeta'] ) ) {
+						foreach( $post['postmeta'] as $meta ) {
+							if ( $meta['key'] == '_wp_attached_file' ) {
+								if ( preg_match( '%^[0-9]{4}/[0-9]{2}%', $meta['value'], $matches ) )
+									$postdata['upload_date'] = $matches[0];
+								break;
+							}
+						}
+					}
+
+					$comment_post_ID = $post_id = $this->process_attachment( $postdata, $remote_url );
+				} else {
+					$comment_post_ID = $post_id = wp_insert_post( $postdata, true );
+				}
+
+				if ( is_wp_error( $post_id ) ) {
+					printf( __( 'Failed to import %s &#8220;%s&#8221;', 'wordpress-importer' ),
+						$post_type_object->labels->singular_name, esc_html($post['post_title']) );
+					if ( defined('IMPORT_DEBUG') && IMPORT_DEBUG )
+						echo ': ' . $post_id->get_error_message();
+					echo '<br />';
+					continue;
+				}
+
+				if ( $post['is_sticky'] == 1 )
+					stick_post( $post_id );
+			}
+
+			// map pre-import ID to local ID
+			$this->processed_posts[intval($post['post_id'])] = (int) $post_id;
+
+			// add categories, tags and other terms
+			if ( ! empty( $post['terms'] ) ) {
+				$terms_to_set = array();
+				foreach ( $post['terms'] as $term ) {
+					// back compat with WXR 1.0 map 'tag' to 'post_tag'
+					$taxonomy = ( 'tag' == $term['domain'] ) ? 'post_tag' : $term['domain'];
+					$term_exists = term_exists( $term['slug'], $taxonomy );
+					$term_id = is_array( $term_exists ) ? $term_exists['term_id'] : $term_exists;
+					if ( ! $term_id ) {
+						$t = wp_insert_term( $term['name'], $taxonomy, array( 'slug' => $term['slug'] ) );
+						if ( ! is_wp_error( $t ) ) {
+							$term_id = $t['term_id'];
+						} else {
+							printf( __( 'Failed to import %s %s', 'wordpress-importer' ), esc_html($taxonomy), esc_html($term['name']) );
+							if ( defined('IMPORT_DEBUG') && IMPORT_DEBUG )
+								echo ': ' . $t->get_error_message();
+							echo '<br />';
+							continue;
+						}
+					}
+					$terms_to_set[$taxonomy][] = intval( $term_id );
+				}
+
+				foreach ( $terms_to_set as $tax => $ids ) {
+					$tt_ids = wp_set_post_terms( $post_id, $ids, $tax );
+				}
+				unset( $post['terms'], $terms_to_set );
+			}
+
+			// add/update comments
+			if ( ! empty( $post['comments'] ) ) {
+				$num_comments = 0;
+				$inserted_comments = array();
+				foreach ( $post['comments'] as $comment ) {
+					$comment_id	= $comment['comment_id'];
+					$newcomments[$comment_id]['comment_post_ID']      = $comment_post_ID;
+					$newcomments[$comment_id]['comment_author']       = $comment['comment_author'];
+					$newcomments[$comment_id]['comment_author_email'] = $comment['comment_author_email'];
+					$newcomments[$comment_id]['comment_author_IP']    = $comment['comment_author_IP'];
+					$newcomments[$comment_id]['comment_author_url']   = $comment['comment_author_url'];
+					$newcomments[$comment_id]['comment_date']         = $comment['comment_date'];
+					$newcomments[$comment_id]['comment_date_gmt']     = $comment['comment_date_gmt'];
+					$newcomments[$comment_id]['comment_content']      = $comment['comment_content'];
+					$newcomments[$comment_id]['comment_approved']     = $comment['comment_approved'];
+					$newcomments[$comment_id]['comment_type']         = $comment['comment_type'];
+					$newcomments[$comment_id]['comment_parent'] 	  = $comment['comment_parent'];
+					$newcomments[$comment_id]['commentmeta']          = isset( $comment['commentmeta'] ) ? $comment['commentmeta'] : array();
+					if ( isset( $this->processed_authors[$comment['comment_user_id']] ) )
+						$newcomments[$comment_id]['user_id'] = $this->processed_authors[$comment['comment_user_id']];
+				}
+				ksort( $newcomments );
+
+				foreach ( $newcomments as $key => $comment ) {
+					// if this is a new post we can skip the comment_exists() check
+					if ( ! $post_exists || ! comment_exists( $comment['comment_author'], $comment['comment_date'] ) ) {
+						if ( isset( $inserted_comments[$comment['comment_parent']] ) )
+							$comment['comment_parent'] = $inserted_comments[$comment['comment_parent']];
+						$comment = wp_filter_comment( $comment );
+						$inserted_comments[$key] = wp_insert_comment( $comment );
+
+						foreach( $comment['commentmeta'] as $meta ) {
+							$value = maybe_unserialize( $meta['value'] );
+							add_comment_meta( $inserted_comments[$key], $meta['key'], $value );
+						}
+
+						$num_comments++;
+					}
+				}
+				unset( $newcomments, $inserted_comments, $post['comments'] );
+			}
+
+			// add/update post meta
+			if ( isset( $post['postmeta'] ) ) {
+				foreach ( $post['postmeta'] as $meta ) {
+					$key = apply_filters( 'import_post_meta_key', $meta['key'] );
+					$value = false;
+
+					if ( '_edit_last' == $key ) {
+						if ( isset( $this->processed_authors[intval($meta['value'])] ) )
+							$value = $this->processed_authors[intval($meta['value'])];
+						else
+							$key = false;
+					}
+
+					if ( $key ) {
+						// export gets meta straight from the DB so could have a serialized string
+						if ( ! $value )
+							$value = maybe_unserialize( $meta['value'] );
+
+						add_post_meta( $post_id, $key, $value );
+						do_action( 'import_post_meta', $post_id, $key, $value );
+
+						// if the post has a featured image, take note of this in case of remap
+						if ( '_thumbnail_id' == $key )
+							$this->featured_images[$post_id] = (int) $value;
+					}
+				}
+			}
+		}
+
+		unset( $this->posts );
+	}
+
+	/**
+	 * Attempt to create a new menu item from import data
+	 *
+	 * Fails for draft, orphaned menu items and those without an associated nav_menu
+	 * or an invalid nav_menu term. If the post type or term object which the menu item
+	 * represents doesn't exist then the menu item will not be imported (waits until the
+	 * end of the import to retry again before discarding).
+	 *
+	 * @param array $item Menu item details from WXR file
+	 */
+	function process_menu_item( $item ) {
+		// skip draft, orphaned menu items
+		if ( 'draft' == $item['status'] )
+			return;
+
+		$menu_slug = false;
+		if ( isset($item['terms']) ) {
+			// loop through terms, assume first nav_menu term is correct menu
+			foreach ( $item['terms'] as $term ) {
+				if ( 'nav_menu' == $term['domain'] ) {
+					$menu_slug = $term['slug'];
+					break;
+				}
+			}
+		}
+
+		// no nav_menu term associated with this menu item
+		if ( ! $menu_slug ) {
+			_e( 'Menu item skipped due to missing menu slug', 'wordpress-importer' );
+			echo '<br />';
+			return;
+		}
+
+		$menu_id = term_exists( $menu_slug, 'nav_menu' );
+		if ( ! $menu_id ) {
+			printf( __( 'Menu item skipped due to invalid menu slug: %s', 'wordpress-importer' ), esc_html( $menu_slug ) );
+			echo '<br />';
+			return;
+		} else {
+			$menu_id = is_array( $menu_id ) ? $menu_id['term_id'] : $menu_id;
+		}
+
+		foreach ( $item['postmeta'] as $meta )
+			$$meta['key'] = $meta['value'];
+
+		if ( 'taxonomy' == $_menu_item_type && isset( $this->processed_terms[intval($_menu_item_object_id)] ) ) {
+			$_menu_item_object_id = $this->processed_terms[intval($_menu_item_object_id)];
+		} else if ( 'post_type' == $_menu_item_type && isset( $this->processed_posts[intval($_menu_item_object_id)] ) ) {
+			$_menu_item_object_id = $this->processed_posts[intval($_menu_item_object_id)];
+		} else if ( 'custom' != $_menu_item_type ) {
+			// associated object is missing or not imported yet, we'll retry later
+			$this->missing_menu_items[] = $item;
+			return;
+		}
+
+		if ( isset( $this->processed_menu_items[intval($_menu_item_menu_item_parent)] ) ) {
+			$_menu_item_menu_item_parent = $this->processed_menu_items[intval($_menu_item_menu_item_parent)];
+		} else if ( $_menu_item_menu_item_parent ) {
+			$this->menu_item_orphans[intval($item['post_id'])] = (int) $_menu_item_menu_item_parent;
+			$_menu_item_menu_item_parent = 0;
+		}
+
+		// wp_update_nav_menu_item expects CSS classes as a space separated string
+		$_menu_item_classes = maybe_unserialize( $_menu_item_classes );
+		if ( is_array( $_menu_item_classes ) )
+			$_menu_item_classes = implode( ' ', $_menu_item_classes );
+
+		$args = array(
+			'menu-item-object-id' => $_menu_item_object_id,
+			'menu-item-object' => $_menu_item_object,
+			'menu-item-parent-id' => $_menu_item_menu_item_parent,
+			'menu-item-position' => intval( $item['menu_order'] ),
+			'menu-item-type' => $_menu_item_type,
+			'menu-item-title' => $item['post_title'],
+			'menu-item-url' => $_menu_item_url,
+			'menu-item-description' => $item['post_content'],
+			'menu-item-attr-title' => $item['post_excerpt'],
+			'menu-item-target' => $_menu_item_target,
+			'menu-item-classes' => $_menu_item_classes,
+			'menu-item-xfn' => $_menu_item_xfn,
+			'menu-item-status' => $item['status']
+		);
+
+		$id = wp_update_nav_menu_item( $menu_id, 0, $args );
+		if ( $id && ! is_wp_error( $id ) )
+			$this->processed_menu_items[intval($item['post_id'])] = (int) $id;
+	}
+
+	/**
+	 * If fetching attachments is enabled then attempt to create a new attachment
+	 *
+	 * @param array $post Attachment post details from WXR
+	 * @param string $url URL to fetch attachment from
+	 * @return int|WP_Error Post ID on success, WP_Error otherwise
+	 */
+	function process_attachment( $post, $url ) {
+		if ( ! $this->fetch_attachments )
+			return new WP_Error( 'attachment_processing_error',
+				__( 'Fetching attachments is not enabled', 'wordpress-importer' ) );
+
+		// if the URL is absolute, but does not contain address, then upload it assuming base_site_url
+		if ( preg_match( '|^/[\w\W]+$|', $url ) )
+			$url = rtrim( $this->base_url, '/' ) . $url;
+
+		$upload = $this->fetch_remote_file( $url, $post );
+		if ( is_wp_error( $upload ) )
+			return $upload;
+
+		if ( $info = wp_check_filetype( $upload['file'] ) )
+			$post['post_mime_type'] = $info['type'];
+		else
+			return new WP_Error( 'attachment_processing_error', __('Invalid file type', 'wordpress-importer') );
+
+		$post['guid'] = $upload['url'];
+
+		// as per wp-admin/includes/upload.php
+		$post_id = wp_insert_attachment( $post, $upload['file'] );
+		wp_update_attachment_metadata( $post_id, wp_generate_attachment_metadata( $post_id, $upload['file'] ) );
+
+		// remap resized image URLs, works by stripping the extension and remapping the URL stub.
+		if ( preg_match( '!^image/!', $info['type'] ) ) {
+			$parts = pathinfo( $url );
+			$name = basename( $parts['basename'], ".{$parts['extension']}" ); // PATHINFO_FILENAME in PHP 5.2
+
+			$parts_new = pathinfo( $upload['url'] );
+			$name_new = basename( $parts_new['basename'], ".{$parts_new['extension']}" );
+
+			$this->url_remap[$parts['dirname'] . '/' . $name] = $parts_new['dirname'] . '/' . $name_new;
+		}
+
+		return $post_id;
+	}
+
+	/**
+	 * Attempt to download a remote file attachment
+	 *
+	 * @param string $url URL of item to fetch
+	 * @param array $post Attachment details
+	 * @return array|WP_Error Local file location details on success, WP_Error otherwise
+	 */
+	function fetch_remote_file( $url, $post ) {
+		// extract the file name and extension from the url
+		$file_name = basename( $url );
+
+		// get placeholder file in the upload dir with a unique, sanitized filename
+		$upload = wp_upload_bits( $file_name, 0, '', $post['upload_date'] );
+		if ( $upload['error'] )
+			return new WP_Error( 'upload_dir_error', $upload['error'] );
+
+		// fetch the remote url and write it to the placeholder file
+		$headers = wp_get_http( $url, $upload['file'] );
+
+		// request failed
+		if ( ! $headers ) {
+			@unlink( $upload['file'] );
+			return new WP_Error( 'import_file_error', __('Remote server did not respond', 'wordpress-importer') );
+		}
+
+		// make sure the fetch was successful
+		if ( $headers['response'] != '200' ) {
+			@unlink( $upload['file'] );
+			return new WP_Error( 'import_file_error', sprintf( __('Remote server returned error response %1$d %2$s', 'wordpress-importer'), esc_html($headers['response']), get_status_header_desc($headers['response']) ) );
+		}
+
+		$filesize = filesize( $upload['file'] );
+
+		if ( isset( $headers['content-length'] ) && $filesize != $headers['content-length'] ) {
+			@unlink( $upload['file'] );
+			return new WP_Error( 'import_file_error', __('Remote file is incorrect size', 'wordpress-importer') );
+		}
+
+		if ( 0 == $filesize ) {
+			@unlink( $upload['file'] );
+			return new WP_Error( 'import_file_error', __('Zero size file downloaded', 'wordpress-importer') );
+		}
+
+		$max_size = (int) $this->max_attachment_size();
+		if ( ! empty( $max_size ) && $filesize > $max_size ) {
+			@unlink( $upload['file'] );
+			return new WP_Error( 'import_file_error', sprintf(__('Remote file is too large, limit is %s', 'wordpress-importer'), size_format($max_size) ) );
+		}
+
+		// keep track of the old and new urls so we can substitute them later
+		$this->url_remap[$url] = $upload['url'];
+		$this->url_remap[$post['guid']] = $upload['url']; // r13735, really needed?
+		// keep track of the destination if the remote url is redirected somewhere else
+		if ( isset($headers['x-final-location']) && $headers['x-final-location'] != $url )
+			$this->url_remap[$headers['x-final-location']] = $upload['url'];
+
+		return $upload;
+	}
+
+	/**
+	 * Attempt to associate posts and menu items with previously missing parents
+	 *
+	 * An imported post's parent may not have been imported when it was first created
+	 * so try again. Similarly for child menu items and menu items which were missing
+	 * the object (e.g. post) they represent in the menu
+	 */
+	function backfill_parents() {
+		global $wpdb;
+
+		// find parents for post orphans
+		foreach ( $this->post_orphans as $child_id => $parent_id ) {
+			$local_child_id = $local_parent_id = false;
+			if ( isset( $this->processed_posts[$child_id] ) )
+				$local_child_id = $this->processed_posts[$child_id];
+			if ( isset( $this->processed_posts[$parent_id] ) )
+				$local_parent_id = $this->processed_posts[$parent_id];
+
+			if ( $local_child_id && $local_parent_id )
+				$wpdb->update( $wpdb->posts, array( 'post_parent' => $local_parent_id ), array( 'ID' => $local_child_id ), '%d', '%d' );
+		}
+
+		// all other posts/terms are imported, retry menu items with missing associated object
+		$missing_menu_items = $this->missing_menu_items;
+		foreach ( $missing_menu_items as $item )
+			$this->process_menu_item( $item );
+
+		// find parents for menu item orphans
+		foreach ( $this->menu_item_orphans as $child_id => $parent_id ) {
+			$local_child_id = $local_parent_id = 0;
+			if ( isset( $this->processed_menu_items[$child_id] ) )
+				$local_child_id = $this->processed_menu_items[$child_id];
+			if ( isset( $this->processed_menu_items[$parent_id] ) )
+				$local_parent_id = $this->processed_menu_items[$parent_id];
+
+			if ( $local_child_id && $local_parent_id )
+				update_post_meta( $local_child_id, '_menu_item_menu_item_parent', (int) $local_parent_id );
+		}
+	}
+
+	/**
+	 * Use stored mapping information to update old attachment URLs
+	 */
+	function backfill_attachment_urls() {
+		global $wpdb;
+		// make sure we do the longest urls first, in case one is a substring of another
+		uksort( $this->url_remap, array(&$this, 'cmpr_strlen') );
+
+		foreach ( $this->url_remap as $from_url => $to_url ) {
+			// remap urls in post_content
+			$wpdb->query( $wpdb->prepare("UPDATE {$wpdb->posts} SET post_content = REPLACE(post_content, %s, %s)", $from_url, $to_url) );
+			// remap enclosure urls
+			$result = $wpdb->query( $wpdb->prepare("UPDATE {$wpdb->postmeta} SET meta_value = REPLACE(meta_value, %s, %s) WHERE meta_key='enclosure'", $from_url, $to_url) );
+		}
+	}
+
+	/**
+	 * Update _thumbnail_id meta to new, imported attachment IDs
+	 */
+	function remap_featured_images() {
+		// cycle through posts that have a featured image
+		foreach ( $this->featured_images as $post_id => $value ) {
+			if ( isset( $this->processed_posts[$value] ) ) {
+				$new_id = $this->processed_posts[$value];
+				// only update if there's a difference
+				if ( $new_id != $value )
+					update_post_meta( $post_id, '_thumbnail_id', $new_id );
+			}
+		}
+	}
+
+	/**
+	 * Parse a WXR file
+	 *
+	 * @param string $file Path to WXR file for parsing
+	 * @return array Information gathered from the WXR file
+	 */
+	function parse( $file ) {
+		$parser = new WXR_Parser();
+		return $parser->parse( $file );
+	}
+
+	// Display import page title
+	function header() {
+		echo '<div class="wrap">';
+		screen_icon();
+		echo '<h2>' . __( 'Import WordPress', 'wordpress-importer' ) . '</h2>';
+
+		$updates = get_plugin_updates();
+		$basename = plugin_basename(__FILE__);
+		if ( isset( $updates[$basename] ) ) {
+			$update = $updates[$basename];
+			echo '<div class="error"><p><strong>';
+			printf( __( 'A new version of this importer is available. Please update to version %s to ensure compatibility with newer export files.', 'wordpress-importer' ), $update->update->new_version );
+			echo '</strong></p></div>';
+		}
+	}
+
+	// Close div.wrap
+	function footer() {
+		echo '</div>';
+	}
+
+	/**
+	 * Display introductory text and file upload form
+	 */
+	function greet() {
+		echo '<div class="narrow">';
+		echo '<p>'.__( 'Howdy! Upload your WordPress eXtended RSS (WXR) file and we&#8217;ll import the posts, pages, comments, custom fields, categories, and tags into this site.', 'wordpress-importer' ).'</p>';
+		echo '<p>'.__( 'Choose a WXR (.xml) file to upload, then click Upload file and import.', 'wordpress-importer' ).'</p>';
+		wp_import_upload_form( 'admin.php?import=wordpress&amp;step=1' );
+		echo '</div>';
+	}
+
+	/**
+	 * Decide if the given meta key maps to information we will want to import
+	 *
+	 * @param string $key The meta key to check
+	 * @return string|bool The key if we do want to import, false if not
+	 */
+	function is_valid_meta_key( $key ) {
+		// skip attachment metadata since we'll regenerate it from scratch
+		// skip _edit_lock as not relevant for import
+		if ( in_array( $key, array( '_wp_attached_file', '_wp_attachment_metadata', '_edit_lock' ) ) )
+			return false;
+		return $key;
+	}
+
+	/**
+	 * Decide whether or not the importer is allowed to create users.
+	 * Default is true, can be filtered via import_allow_create_users
+	 *
+	 * @return bool True if creating users is allowed
+	 */
+	function allow_create_users() {
+		return apply_filters( 'import_allow_create_users', true );
+	}
+
+	/**
+	 * Decide whether or not the importer should attempt to download attachment files.
+	 * Default is true, can be filtered via import_allow_fetch_attachments. The choice
+	 * made at the import options screen must also be true, false here hides that checkbox.
+	 *
+	 * @return bool True if downloading attachments is allowed
+	 */
+	function allow_fetch_attachments() {
+		return apply_filters( 'import_allow_fetch_attachments', true );
+	}
+
+	/**
+	 * Decide what the maximum file size for downloaded attachments is.
+	 * Default is 0 (unlimited), can be filtered via import_attachment_size_limit
+	 *
+	 * @return int Maximum attachment file size to import
+	 */
+	function max_attachment_size() {
+		return apply_filters( 'import_attachment_size_limit', 0 );
+	}
+
+	/**
+	 * Added to http_request_timeout filter to force timeout at 60 seconds during import
+	 * @return int 60
+	 */
+	function bump_request_timeout() {
+		return 60;
+	}
+
+	// return the difference in length between two strings
+	function cmpr_strlen( $a, $b ) {
+		return strlen($b) - strlen($a);
+	}
+}
+
+} // class_exists( 'WP_Importer' )
+
+function wordpress_importer_init() {
+	load_plugin_textdomain( 'wordpress-importer', false, dirname( plugin_basename( __FILE__ ) ) . '/languages' );
+
+	/**
+	 * WordPress Importer object for registering the import callback
+	 * @global WP_Import $wp_import
+	 */
+	$GLOBALS['wp_import'] = new WP_Import();
+	register_importer( 'wordpress', 'WordPress', __('Import <strong>posts, pages, comments, custom fields, categories, and tags</strong> from a WordPress export file.', 'wordpress-importer'), array( $GLOBALS['wp_import'], 'dispatch' ) );
+}
+add_action( 'admin_init', 'wordpress_importer_init' );
--- a/web/wp-content/plugins/wp-super-cache/readme.txt	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-content/plugins/wp-super-cache/readme.txt	Wed Dec 19 17:46:52 2012 -0800
@@ -1,7 +1,7 @@
 === WP Super Cache ===
 Contributors: donncha, automattic
 Tags: performance,caching,wp-cache,wp-super-cache,cache
-Tested up to: 3.4.2
+Tested up to: 3.5
 Stable tag: 1.2
 Requires at least: 3.0
 
Binary file web/wp-content/plugins/xili-dictionary/languages/xili-dictionary-fr_FR.mo has changed
--- a/web/wp-content/plugins/xili-dictionary/languages/xili-dictionary-fr_FR.po	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-content/plugins/xili-dictionary/languages/xili-dictionary-fr_FR.po	Wed Dec 19 17:46:52 2012 -0800
@@ -2,8 +2,8 @@
 msgstr ""
 "Project-Id-Version: xili_dictionary\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2012-09-23 09:01+0100\n"
-"PO-Revision-Date: 2012-09-23 09:04+0100\n"
+"POT-Creation-Date: 2012-10-21 18:08+0100\n"
+"PO-Revision-Date: 2012-10-21 18:12+0100\n"
 "Last-Translator: dev.xiligroup <contact@xiligroup.com>\n"
 "Language-Team: Michel SCRIBAN <michel@scriban.eu>\n"
 "MIME-Version: 1.0\n"
@@ -16,1201 +16,1475 @@
 "X-Poedit-SourceCharset: utf-8\n"
 "X-Poedit-SearchPath-0: .\n"
 
-#: xili-dictionary.php:266
+#: xili-dictionary.php:285
 msgctxt "post type general name"
 msgid "xili-dictionary©"
 msgstr "Dictionnaire xili©"
 
-#: xili-dictionary.php:267
+#: xili-dictionary.php:286
 msgctxt "post type singular name"
 msgid "Msg"
 msgstr "Msg"
 
-#: xili-dictionary.php:268
+#: xili-dictionary.php:287
 msgid "New msgid"
 msgstr "Ajout msg"
 
-#: xili-dictionary.php:269
+#: xili-dictionary.php:288
 msgid "Add New Msgid"
 msgstr "Ajout msgid"
 
-#: xili-dictionary.php:270
+#: xili-dictionary.php:289
 msgid "Edit Msg"
 msgstr "Editer le msg"
 
-#: xili-dictionary.php:271
+#: xili-dictionary.php:290
 msgid "New Msg"
 msgstr "Nouveau msg"
 
-#: xili-dictionary.php:272
+#: xili-dictionary.php:291
 msgid "View Msg"
 msgstr "Afficher"
 
-#: xili-dictionary.php:273
+#: xili-dictionary.php:292
 msgid "Search Msg"
 msgstr "Chercher msg"
 
-#: xili-dictionary.php:274
+#: xili-dictionary.php:293
 msgid "No Msg found"
 msgstr "Pas de msg trouvé"
 
-#: xili-dictionary.php:275
+#: xili-dictionary.php:294
 msgid "No Msg found in Trash"
 msgstr "Pas de msg dans la poubelle"
 
-#: xili-dictionary.php:302
+#: xili-dictionary.php:321
 msgid "Writer"
 msgstr "Ecrivain"
 
-#: xili-dictionary.php:322
+#: xili-dictionary.php:341
 msgid "Origin"
 msgstr "Origine"
 
-#: xili-dictionary.php:448
+#: xili-dictionary.php:483
 msgid "xd-style.css is in sub-folder xili-css of current theme folder"
 msgstr "xd-style.css est dans le sous-dossier xili-css du thème courant"
 
-#: xili-dictionary.php:453
+#: xili-dictionary.php:488
 #, php-format
 msgid "xd-style.css is in sub-folder xili-css of %s folder"
 msgstr "xd-style.css est dans le sous-dossier xili-css du dossier %s"
 
-#: xili-dictionary.php:458
+#: xili-dictionary.php:493
 msgid "xd-style.css is in sub-folder xili-css of xili-dictionary plugin folder (example)"
 msgstr "xd-style.css est dans le sous-dossier xili-css de l’extension xili-dictionary (exemple à ne pas modifier)"
 
-#: xili-dictionary.php:460
+#: xili-dictionary.php:495
 msgid "no xd-style.css"
 msgstr "pas fichier xd-style.css"
 
-#: xili-dictionary.php:526
+#: xili-dictionary.php:561
 msgid "A term with the name provided already exists."
 msgstr "Le terme avec ce même nom existe."
 
-#: xili-dictionary.php:673
+#: xili-dictionary.php:711
 #, php-format
 msgid "msgid exists as %d with content: %s"
 msgstr "msgid existe dans %d tel que : %s"
 
-#: xili-dictionary.php:690
+#: xili-dictionary.php:728
 msgid "series"
 msgstr "Série"
 
-#: xili-dictionary.php:692
+#: xili-dictionary.php:730
 #, php-format
 msgid "msg %s"
 msgstr "%s de msg"
 
-#: xili-dictionary.php:694
+#: xili-dictionary.php:732
 #, php-format
 msgid "List of MSG %s to translate"
 msgstr "%s de msg à traduire"
 
-#: xili-dictionary.php:695
+#: xili-dictionary.php:733
 msgid "Shortcuts to update mo files"
 msgstr "Raccourcis pour mettre à jour les fichiers .mo"
 
-#: xili-dictionary.php:737
+#: xili-dictionary.php:775
 #, php-format
 msgid "This msg translation is in %1$s (%2$s)"
 msgstr "Ce msg traduit en %1$s (%2$s)"
 
-#: xili-dictionary.php:738
+#: xili-dictionary.php:776
 msgid "Updating shortcuts"
 msgstr "Raccourcis de mise à jour"
 
-#: xili-dictionary.php:741
-#: xili-dictionary.php:750
+#: xili-dictionary.php:779
+#: xili-dictionary.php:788
 msgid "Update"
 msgstr "Mettre à jour"
 
-#: xili-dictionary.php:743
+#: xili-dictionary.php:781
 #, php-format
 msgid "No local translated msgid to be saved in %s"
 msgstr "Pas de msgid 'local' à sauver dans %s"
 
-#: xili-dictionary.php:746
+#: xili-dictionary.php:784
 #, php-format
 msgid "It is possible to update the .mo files of current theme %s"
 msgstr "Il est possible de mettre à jour les fichiers .mo du thème courant %s"
 
-#: xili-dictionary.php:747
+#: xili-dictionary.php:785
 msgid "Before to use this button, it is very important that you verify that your term list is quite achieved inside the dictionary. It is because the original .mo delivered with theme is updated (erased) !!!"
 msgstr "Avant d'utiliser ce bouton, il est très important de vérifier que la liste des termes est presque achevée dans le dictionnaire. En effet, le fichier original livré avec le thème est écrasé. Donc pensez à les importer dans le dictionnaire auparavant !!!"
 
-#: xili-dictionary.php:752
+#: xili-dictionary.php:790
 #, php-format
 msgid "No translated msgid to be saved in %s"
 msgstr "Pas de msgid à sauver dans %s"
 
-#: xili-dictionary.php:759
+#: xili-dictionary.php:797
 msgid "Links are available if a translation (msgstr) is edited."
 msgstr "Les raccourcis sont disponibles si une traduction (msgstr) est en cours."
 
-#: xili-dictionary.php:772
+#: xili-dictionary.php:810
 msgid "Are you sure you want to update mo ? "
 msgstr "Etes vous sûr de vouloir mettre à jour le .mo ?"
 
-#: xili-dictionary.php:793
+#: xili-dictionary.php:831
 msgid "MO file updating started: see result in meta-box named - Shortcuts... - below buttons"
 msgstr "Mise à jour du fichier MO lancée : voir le message résultant dans la boite - Raccourcis... - sous les boutons"
 
-#: xili-dictionary.php:794
+#: xili-dictionary.php:832
 msgid "Local MO updating started: see result in meta-box named - Shortcuts... - below buttons"
 msgstr "Mise à jour du fichier Local MO lancée : voir le message résultant dans la boite - Raccourcis... - sous les boutons"
 
-#: xili-dictionary.php:865
+#: xili-dictionary.php:903
 #, php-format
 msgid "Error with File %s !"
 msgstr "Erreur avec le fichier %s !"
 
-#: xili-dictionary.php:867
+#: xili-dictionary.php:905
 #, php-format
 msgid "File %1s updated with %2s msgids"
 msgstr "Fichier %1s mis à jour avec %2s msgids"
 
-#: xili-dictionary.php:871
+#: xili-dictionary.php:909
 #, php-format
 msgid "Nothing modified in %s, file not updated"
 msgstr "Rien de modifié dans %s, fichhier non mis à jour"
 
-#: xili-dictionary.php:913
-#: xili-dictionary.php:919
+#: xili-dictionary.php:951
+#: xili-dictionary.php:957
 #, php-format
 msgid "MSGs not translated in %1$s. <em>Sub-select in %2$s</em>"
 msgstr "MSGs non traduits en %1$s. <em>Choisir ceux non traduits en %2$s</em>"
 
-#: xili-dictionary.php:919
+#: xili-dictionary.php:957
 #, php-format
 msgid "No selection: Sub-select in %s"
 msgstr "Pas de sélection : Choisir selon %s"
 
-#: xili-dictionary.php:933
-#: xili-dictionary.php:2533
+#: xili-dictionary.php:971
+#: xili-dictionary.php:2594
 msgid "ID"
 msgstr ""
 
-#: xili-dictionary.php:934
-#: xili-dictionary.php:2534
+#: xili-dictionary.php:972
+#: xili-dictionary.php:2595
 msgid "Text"
 msgstr "Texte"
 
-#: xili-dictionary.php:936
-#: xili-dictionary.php:1353
-#: xili-dictionary.php:2536
+#: xili-dictionary.php:974
+#: xili-dictionary.php:1404
+#: xili-dictionary.php:2597
 msgid "Metas"
 msgstr "Métas"
 
-#: xili-dictionary.php:937
-#: xili-dictionary.php:2537
+#: xili-dictionary.php:975
+#: xili-dictionary.php:2598
 msgid "Save status"
 msgstr "Stockage"
 
-#: xili-dictionary.php:938
-#: xili-dictionary.php:2538
+#: xili-dictionary.php:976
+#: xili-dictionary.php:2599
 msgid "Action"
 msgstr "Action"
 
-#: xili-dictionary.php:974
+#: xili-dictionary.php:1012
 msgid "All lines"
 msgstr "Tous"
 
-#: xili-dictionary.php:977
+#: xili-dictionary.php:1015
 msgid "First"
 msgstr "Début"
 
-#: xili-dictionary.php:978
+#: xili-dictionary.php:1016
 msgid "Last page"
 msgstr "Fin"
 
-#: xili-dictionary.php:979
+#: xili-dictionary.php:1017
 msgid "Next"
 msgstr "Suiv."
 
-#: xili-dictionary.php:980
+#: xili-dictionary.php:1018
 msgid "Previous"
 msgstr "Préc."
 
-#: xili-dictionary.php:982
+#: xili-dictionary.php:1020
 msgid "Showing (_START_ to _END_) of _TOTAL_ entries"
 msgstr "Affiche (_START_ à _END_) des _TOTAL_ lignes"
 
-#: xili-dictionary.php:983
+#: xili-dictionary.php:1021
 msgid "(filtered from _MAX_ total entries)"
 msgstr "(filtrés du total des _MAX_ lignes)"
 
-#: xili-dictionary.php:984
+#: xili-dictionary.php:1022
 msgid "Show _MENU_ entries"
 msgstr "Afficher _MENU_ lignes"
 
-#: xili-dictionary.php:985
+#: xili-dictionary.php:1023
 msgid "Filter terms:"
 msgstr "Filtrer les termes :"
 
-#: xili-dictionary.php:1036
+#: xili-dictionary.php:1074
 msgid "Informations and actions about files .po / mo"
 msgstr "Informations et actions à propos des fichiers .po / mo"
 
-#: xili-dictionary.php:1045
+#: xili-dictionary.php:1083
 msgid "Come from theme(s):"
 msgstr "Thème(s) d’origine :"
 
-#: xili-dictionary.php:1048
+#: xili-dictionary.php:1086
 msgid "Not yet assigned"
 msgstr "Non affecté"
 
-#: xili-dictionary.php:1056
+#: xili-dictionary.php:1094
 #, php-format
 msgid "theme folder %s"
 msgstr "dossier du thème %s"
 
-#: xili-dictionary.php:1057
-#: xili-dictionary.php:3606
+#: xili-dictionary.php:1095
+#: xili-dictionary.php:3671
 msgid "this site"
 msgstr "ce site"
 
-#: xili-dictionary.php:1057
+#: xili-dictionary.php:1095
 #, php-format
 msgid "folder %s"
 msgstr "dossier %s"
 
-#: xili-dictionary.php:1059
+#: xili-dictionary.php:1097
 msgid "saved in "
 msgstr "sauvé dans"
 
-#: xili-dictionary.php:1352
+#: xili-dictionary.php:1403
 msgid "Content"
 msgstr "Contenu"
 
-#: xili-dictionary.php:1355
+#: xili-dictionary.php:1406
+#: xili-dictionary.php:6178
 msgid "Language"
 msgstr "Langue"
 
-#: xili-dictionary.php:1413
+#: xili-dictionary.php:1464
 msgid "View all languages"
 msgstr "Voir toutes les langues"
 
-#: xili-dictionary.php:1440
+#: xili-dictionary.php:1491
 msgid "View all origins"
 msgstr "Voir toutes les sources"
 
-#: xili-dictionary.php:1469
+#: xili-dictionary.php:1520
 msgid "View all writers"
 msgstr "Voir tous les rédacteurs"
 
-#: xili-dictionary.php:1539
+#: xili-dictionary.php:1590
 msgid "Context"
 msgstr "Contexte"
 
-#: xili-dictionary.php:1546
+#: xili-dictionary.php:1597
 #, php-format
 msgid "&nbsp;<a href=\"%s\" >Edit context</a>"
 msgstr "&nbsp;<a href=\"%s\" >Modifier le contenu</a>"
 
-#: xili-dictionary.php:1549
+#: xili-dictionary.php:1600
 #, php-format
 msgid "&nbsp;<a href=\"%s\" >Create context</a>"
 msgstr "&nbsp;<a href=\"%s\" >Créer un contexte</a>"
 
-#: xili-dictionary.php:1567
+#: xili-dictionary.php:1618
 #, php-format
 msgid "Return to %s list"
 msgstr "Retour à la liste %s"
 
-#: xili-dictionary.php:1575
+#: xili-dictionary.php:1626
 #, php-format
 msgid "Extracted comments: %s"
 msgstr "Commentaires extraits: %s"
 
-#: xili-dictionary.php:1578
+#: xili-dictionary.php:1629
 #, php-format
 msgid "Translator comments: %s"
 msgstr "Commentaires traducteur : %s"
 
-#: xili-dictionary.php:1580
+#: xili-dictionary.php:1631
 #, php-format
 msgid "Flags: %s"
 msgstr "Drapeaux : %s"
 
-#: xili-dictionary.php:1588
+#: xili-dictionary.php:1639
 msgid "msgstr Translator comments"
 msgstr "Commentaire traducteur msgstr"
 
-#: xili-dictionary.php:1597
+#: xili-dictionary.php:1648
 #, php-format
 msgid "Lines: %s"
 msgstr "Lignes : %s"
 
-#: xili-dictionary.php:1600
-#: xili-dictionary.php:1622
+#: xili-dictionary.php:1651
+#: xili-dictionary.php:1673
 #, php-format
 msgid "Return to <a href=\"%s\" title=\"Go to msg list\">msg list</a>"
 msgstr "Retour à la <a href=\"%s\" title=\"Aller à la liste msg\">liste msg</a>"
 
-#: xili-dictionary.php:1609
+#: xili-dictionary.php:1660
 #, php-format
 msgid "Set in theme (<a href=\"%s\" >set local</a>)"
 msgstr "Mis dans le thème (<a href=\"%s\" >mettre en local</a>)"
 
-#: xili-dictionary.php:1614
+#: xili-dictionary.php:1665
 #, php-format
 msgid "Set in local (<a href=\"%s\" >unset</a>)"
 msgstr "Affecté en local (<a href=\"%s\" >désaffecter</a>)"
 
-#: xili-dictionary.php:1621
+#: xili-dictionary.php:1672
 #, php-format
 msgid "The msgid (%d) was deleted. The msg series must be recreated and commented."
 msgstr "Le msgid (%d) a été effacé. La série des msgs doit être récréée et commentée."
 
-#: xili-dictionary.php:1689
+#: xili-dictionary.php:1740
 msgid "XD say to translate:"
 msgstr "XD indique de traduire :"
 
-#: xili-dictionary.php:1700
-#: xili-dictionary.php:1984
+#: xili-dictionary.php:1751
+#: xili-dictionary.php:2044
 msgid "XD say to translate (msgstr[0]): "
 msgstr "XD indique de traduire (msgstr[0]): "
 
-#: xili-dictionary.php:1712
-#: xili-dictionary.php:1993
+#: xili-dictionary.php:1763
+#: xili-dictionary.php:2053
 msgid "XD say to translate (msgstr[1]): "
 msgstr "XD indique de traduire (msgstr[1]): "
 
-#: xili-dictionary.php:1736
-#: xili-dictionary.php:2003
+#: xili-dictionary.php:1787
+#: xili-dictionary.php:2063
 msgid "XD say id to plural: "
 msgstr "XD indique id au plural: "
 
-#: xili-dictionary.php:1757
+#: xili-dictionary.php:1816
 msgid "msgid:"
 msgstr "msgid :"
 
-#: xili-dictionary.php:1760
-#: xili-dictionary.php:1776
-#: xili-dictionary.php:1956
+#: xili-dictionary.php:1819
+#: xili-dictionary.php:1835
+#: xili-dictionary.php:2016
 #, php-format
 msgid "( <a href=\"%s\" title=\"link to:%d\" >%s</a> )<br />"
 msgstr "( <a href=\"%s\" title=\"lien pour :%d\" >%s</a> )<br />"
 
-#: xili-dictionary.php:1760
-#: xili-dictionary.php:1776
-#: xili-dictionary.php:1825
-#: xili-dictionary.php:1845
-#: xili-dictionary.php:1956
-#: xili-dictionary.php:2051
-#: xili-dictionary.php:2064
-#: xili-dictionary.php:2137
-#: xili-dictionary.php:2149
-#: xili-dictionary.php:2166
-#: xili-dictionary.php:2168
-#: xili-dictionary.php:3608
+#: xili-dictionary.php:1819
+#: xili-dictionary.php:1835
+#: xili-dictionary.php:1885
+#: xili-dictionary.php:1905
+#: xili-dictionary.php:2016
+#: xili-dictionary.php:2111
+#: xili-dictionary.php:2124
+#: xili-dictionary.php:2197
+#: xili-dictionary.php:2209
+#: xili-dictionary.php:2226
+#: xili-dictionary.php:2228
+#: xili-dictionary.php:3673
 msgid "Edit"
 msgstr "Modifier"
 
-#: xili-dictionary.php:1770
+#: xili-dictionary.php:1829
 msgid "msgid_plural:"
 msgstr ""
 
-#: xili-dictionary.php:1784
-#: xili-dictionary.php:1961
+#: xili-dictionary.php:1844
+#: xili-dictionary.php:2021
 #, php-format
 msgid "&nbsp;<a href=\"%s\" >Create msgid_plural</a>"
 msgstr "&nbsp;<a href=\"%s\" >Créer msgid_plural</a>"
 
-#: xili-dictionary.php:1794
-#: xili-dictionary.php:2014
-#: xili-dictionary.php:2017
+#: xili-dictionary.php:1854
+#: xili-dictionary.php:2074
+#: xili-dictionary.php:2077
 msgid "translated in"
 msgstr "traduit en"
 
-#: xili-dictionary.php:1863
-#: xili-dictionary.php:1875
-#: xili-dictionary.php:2079
-#: xili-dictionary.php:2093
+#: xili-dictionary.php:1923
+#: xili-dictionary.php:1935
+#: xili-dictionary.php:2139
+#: xili-dictionary.php:2153
 msgid "Create msgstr in: "
 msgstr "Créer un msgstr :"
 
-#: xili-dictionary.php:1873
-#: xili-dictionary.php:2090
+#: xili-dictionary.php:1933
+#: xili-dictionary.php:2150
 msgid "not yet translated."
 msgstr "non traduit."
 
-#: xili-dictionary.php:1883
+#: xili-dictionary.php:1943
 #, php-format
 msgid "The msgid (%d) was deleted. The msg series must be recreated."
 msgstr "Le msgid (%d) est effacé. La série doit être re-créée."
 
-#: xili-dictionary.php:1934
+#: xili-dictionary.php:1994
 #, php-format
 msgid "msgid saved as: <em>%s</em>"
 msgstr "msgid stocké : <em>%s</em>"
 
-#: xili-dictionary.php:1947
+#: xili-dictionary.php:2007
 #, php-format
 msgid "has plural: <a href=\"%s\" >%d</a><br />"
 msgstr "a le plural: <a href=\"%s\" >%d</a><br />"
 
-#: xili-dictionary.php:1951
+#: xili-dictionary.php:2011
 msgid "has plural:"
 msgstr "a un plural :"
 
-#: xili-dictionary.php:1974
+#: xili-dictionary.php:2034
 msgid "XD say to translate: "
 msgstr "XD indique de traduire :"
 
-#: xili-dictionary.php:2128
+#: xili-dictionary.php:2188
 #, php-format
 msgid "%s saved as: <em>%s</em>"
 msgstr "%s sauvé comme : <em>%s</em>"
 
-#: xili-dictionary.php:2137
+#: xili-dictionary.php:2197
 #, php-format
 msgid "msgid plural of: <strong>%s</strong> ( <a href=\"%s\" title=\"link to:%d\" >%s</a> )<br />"
 msgstr "msgid plural de : <strong>%s</strong> ( <a href=\"%s\" title=\"lien vers :%d\" >%s</a> )<br />"
 
-#: xili-dictionary.php:2139
+#: xili-dictionary.php:2199
 #, php-format
 msgid "msgid plural of: <a href=\"%s\" >%d</a><br />"
 msgstr "msgid plural de : <a href=\"%s\" >%d</a><br />"
 
-#: xili-dictionary.php:2149
+#: xili-dictionary.php:2209
 #, php-format
 msgid "( <a href=\"%s\" title = \"link of:%d\">%s</a> )<br />"
 msgstr "( <a href=\"%s\" title = \"lien vers :%d\">%s</a> )<br />"
 
-#: xili-dictionary.php:2152
-#: xili-dictionary.php:2173
+#: xili-dictionary.php:2212
+#: xili-dictionary.php:2233
 #, php-format
 msgid "msgstr of: <a href=\"%s\" >%d</a><br />"
 msgstr "msgstr de : <a href=\"%s\" >%d</a><br />"
 
-#: xili-dictionary.php:2166
+#: xili-dictionary.php:2226
 #, php-format
 msgid "<strong>%s</strong> plural of: <strong>%s</strong>( <a href=\"%s\" title=\"link to:%d\">%s</a> )<br />"
 msgstr "<strong>%s</strong> plural de : <strong>%s</strong>( <a href=\"%s\" title=\"lien vers :%d\">%s</a> )<br />"
 
-#: xili-dictionary.php:2168
+#: xili-dictionary.php:2228
 #, php-format
 msgid "<strong>%s</strong> translation of: <strong>%s</strong>( <a href=\"%s\" title=\"link to:%d\">%s</a> )<br />"
 msgstr "<strong>%s</strong> traduction de : <strong>%s</strong>( <a href=\"%s\" title=\"lien vers :%d\">%s</a> )<br />"
 
-#: xili-dictionary.php:2177
+#: xili-dictionary.php:2237
 #, php-format
 msgid "msgstr[%d] plural of: <a href=\"%s\" >%d</a><br />"
 msgstr "msgstr[%d] plural de: <a href=\"%s\" >%d</a><br />"
 
-#: xili-dictionary.php:2182
+#: xili-dictionary.php:2242
 #, php-format
 msgid "go to <a href=\"%s\" title=\"link to:%d\">msgid</a>"
 msgstr "pointer le <a href=\"%s\" title=\"lien vers :%d\">msgid</a>"
 
-#: xili-dictionary.php:2253
+#: xili-dictionary.php:2313
 msgid "Xili Dictionary"
 msgstr "Dictionnaire xiliâ„¢"
 
-#: xili-dictionary.php:2253
-#: xili-dictionary.php:4947
+#: xili-dictionary.php:2313
+#: xili-dictionary.php:5188
 msgid "Tools, Files po mo"
 msgstr "Outils, Fichiers po mo"
 
-#: xili-dictionary.php:2262
+#: xili-dictionary.php:2322
 msgid "Msg list"
 msgstr "Liste msg"
 
-#: xili-dictionary.php:2264
+#: xili-dictionary.php:2324
 msgid "XD Msg list"
 msgstr "Liste XD msg"
 
-#: xili-dictionary.php:2275
+#: xili-dictionary.php:2335
 msgid "Message"
 msgstr ""
 
-#: xili-dictionary.php:2276
+#: xili-dictionary.php:2336
 msgid "Info"
 msgstr ""
 
-#: xili-dictionary.php:2277
+#: xili-dictionary.php:2337
 msgid "XD style settings"
 msgstr "Réglages style XD"
 
-#: xili-dictionary.php:2293
+#: xili-dictionary.php:2353
 msgid "Settings"
 msgstr "Réglages"
 
-#: xili-dictionary.php:2427
+#: xili-dictionary.php:2487
 msgid "Note:"
 msgstr "Note et message :"
 
-#: xili-dictionary.php:2434
+#: xili-dictionary.php:2495
 msgid "child of"
 msgstr "enfant de"
 
-#: xili-dictionary.php:2446
+#: xili-dictionary.php:2507
 msgid "xili-language-ms is active !"
 msgstr "xili-language multisite est actif !"
 
-#: xili-dictionary.php:2451
+#: xili-dictionary.php:2512
 msgid "xili-language plugin is not present !"
 msgstr "L'extension xili-language n’est pas présente."
 
-#: xili-dictionary.php:2454
+#: xili-dictionary.php:2515
 msgid "xili-language plugin is not activated !"
 msgstr "L'extension xili-language n'est pas activée."
 
-#: xili-dictionary.php:2459
-msgid "xili-dictionary is a plugin (compatible with xili-language) to build a multilingual dictionary saved in the taxonomy tables of WordPress. With this dictionary, it is possible to create and update .mo file in the current theme folder. And more..."
-msgstr "L'extension xili-dictionary est destinée à créer et mettre à jour les fichiers .mo (et .po aussi) du thème courant. Elle est utile pour les thèmes internationaux ou les thèmes multilingues 'live' pilotés par xili-language."
+#: xili-dictionary.php:2520
+#, php-format
+msgid "xili-dictionary is a plugin (compatible with xili-language) to build a multilingual dictionary saved in the post tables of WordPress as custom post type (%s). With this dictionary, it is possible to create and update .mo file in the current theme folder. And more..."
+msgstr "L'extension xili-dictionary est destinée à créer et mettre à jour les fichiers .mo (et .po aussi) du thème courant. Elle est utile pour les thèmes internationaux ou les thèmes multilingues 'live' pilotés par xili-language. Les éléments sont stockés dans les custom post type (%s) des tables de WP."
 
-#: xili-dictionary.php:2462
+#: xili-dictionary.php:2523
 msgid "Theme's informations:"
 msgstr "A propos du thème :"
 
-#: xili-dictionary.php:2465
+#: xili-dictionary.php:2526
 msgid "Languages sub-folder:"
 msgstr "Sous-dossier langages :"
 
-#: xili-dictionary.php:2468
+#: xili-dictionary.php:2529
 msgid "No languages files are present in theme's folder or theme's sub-folder: <strong>add at least a .po or a .mo inside.</strong><br /> Errors will occur if you try to import or export!"
 msgstr "Aucun fichier de langues détectés dans le dossier (ou sous-dossier) du thème !  <strong>déposer y au moins un fichier .po or a .mo ,</strong><br />Des erreurs risquent d'arriver si vous tentez des imports ou exports."
 
-#: xili-dictionary.php:2470
+#: xili-dictionary.php:2531
 msgid "Available MO files:"
 msgstr "Fichiers MO dispo :"
 
-#: xili-dictionary.php:2485
+#: xili-dictionary.php:2546
 msgid "External file xd-style.css for dashboard (flags, customization)"
 msgstr "Fichier xd-style.css pour le tableau de bord (drapeau, personnalisation)"
 
-#: xili-dictionary.php:2489
+#: xili-dictionary.php:2550
 msgid "There is no style for dashboard"
 msgstr "Il n'y a de style pour le tableau de bord"
 
-#: xili-dictionary.php:2498
+#: xili-dictionary.php:2559
 msgid "No style for dashboard"
 msgstr "Pas de style"
 
-#: xili-dictionary.php:2503
+#: xili-dictionary.php:2564
 msgid "Activate style for dashboard"
 msgstr "Activer le style"
 
-#: xili-dictionary.php:2508
+#: xili-dictionary.php:2569
 msgid "Dictionary Styles"
 msgstr "Style du dictionnaire"
 
-#: xili-dictionary.php:2513
+#: xili-dictionary.php:2574
 msgid "Change style mode"
 msgstr "Changer le type de style"
 
-#: xili-dictionary.php:2602
+#: xili-dictionary.php:2663
+#: xili-dictionary.php:6207
 msgid "What about comments"
 msgstr "En ce qui concerne les commentaires"
 
-#: xili-dictionary.php:2604
+#: xili-dictionary.php:2665
+#: xili-dictionary.php:6209
 msgid "No change"
 msgstr "Sans changement"
 
-#: xili-dictionary.php:2605
+#: xili-dictionary.php:2666
+#: xili-dictionary.php:6210
 msgid "Imported comments replace those in list"
 msgstr "Les commentaires importés remplacent les anciens..."
 
-#: xili-dictionary.php:2606
+#: xili-dictionary.php:2667
+#: xili-dictionary.php:6211
 msgid "Imported comments be appended..."
 msgstr "Les commentaires importés sont ajoutés..."
 
-#: xili-dictionary.php:2613
+#: xili-dictionary.php:2674
 #, php-format
 msgid "Verify before that you are authorized to write in languages folder in theme named: %s"
 msgstr "Avant: vérifier que vous êtes bien habilité à modifier les fichiers langues dans le thème dénommé %s"
 
-#: xili-dictionary.php:2620
+#: xili-dictionary.php:2681
 #, php-format
 msgid "SuperAdmin: %sonly as theme .mo"
 msgstr "En tant que Super Admin : %smodifier le .mo du thème original"
 
-#: xili-dictionary.php:2622
+#: xili-dictionary.php:2683
 #, php-format
 msgid "SuperAdmin: %sonly as theme .po"
 msgstr "En tant que Super Admin : %smodifier le .mo du thème original"
 
-#: xili-dictionary.php:2634
+#: xili-dictionary.php:2695
 msgid "Save only local-xx_XX.mo sub-selection"
 msgstr "Sauver seulement la sous -sélection local-xx_XX.mo"
 
-#: xili-dictionary.php:2637
+#: xili-dictionary.php:2698
 msgid "Save only local-xx_XX.po sub-selection"
 msgstr "Sauver seulement la sous -sélection local-xx_XX.po"
 
-#: xili-dictionary.php:2651
+#: xili-dictionary.php:2712
 #, php-format
 msgid "import terms from local-xx_YY.%s"
 msgstr "importer les termes du fichier local-xx_XX.%s"
 
-#: xili-dictionary.php:2664
+#: xili-dictionary.php:2725
 msgid "Check Origin(s) to be exported"
 msgstr "Cocher selon les origines à exporter"
 
-#: xili-dictionary.php:2688
+#: xili-dictionary.php:2749
 msgid "Slug:"
 msgstr "Code"
 
-#: xili-dictionary.php:2700
+#: xili-dictionary.php:2761
 msgid "This box is used for input dialog, leave it opened and visible…"
 msgstr "Cette fenêtre est utilisée pour le dialogue : laisser visible et ouverte..."
 
-#: xili-dictionary.php:2730
+#: xili-dictionary.php:2792
 msgid "The files"
 msgstr "Les fichiers"
 
-#: xili-dictionary.php:2731
+#: xili-dictionary.php:2793
 msgid "Create or Update mo file in current theme folder"
 msgstr "Crée ou met à jour le fichier .mo dans le dossier du thème actif"
 
-#: xili-dictionary.php:2731
-#: xili-dictionary.php:3021
+#: xili-dictionary.php:2793
+#: xili-dictionary.php:3084
 msgid "Export mo file"
 msgstr "Créer un fichier .mo"
 
-#: xili-dictionary.php:2732
+#: xili-dictionary.php:2794
 msgid "Import po/mo file"
 msgstr "Import d'un fichier "
 
-#: xili-dictionary.php:2732
+#: xili-dictionary.php:2794
 msgid "Import an existing .po file from current theme folder"
 msgstr "Importe un fichier .po existant dans le dossier du thème actif"
 
-#: xili-dictionary.php:2733
+#: xili-dictionary.php:2795
 msgid "Import an existing .mo file from current theme folder"
 msgstr "Importe un fichier .po existant dans le dossier du thème actif"
 
-#: xili-dictionary.php:2734
+#: xili-dictionary.php:2796
 msgid "Create or Update po file in current theme folder"
 msgstr "Crée ou met à jour le fichier .po dans le dossier du thème actif"
 
-#: xili-dictionary.php:2734
-#: xili-dictionary.php:3102
+#: xili-dictionary.php:2796
+#: xili-dictionary.php:3165
 msgid "Export po file"
 msgstr "Créer un fichier .po"
 
-#: xili-dictionary.php:2736
+#: xili-dictionary.php:2798
 msgid "The taxonomies"
 msgstr "Les taxinomies du site."
 
-#: xili-dictionary.php:2737
+#: xili-dictionary.php:2799
 msgid "Import name and description of taxonomy"
 msgstr "Importe nom et description des taxinomies"
 
-#: xili-dictionary.php:2737
-#: xili-dictionary.php:3284
+#: xili-dictionary.php:2799
+#: xili-dictionary.php:3347
 msgid "Import terms of taxonomy"
 msgstr "Importer les noms et descriptions des taxinomies"
 
-#: xili-dictionary.php:2739
+#: xili-dictionary.php:2801
 msgid "The website infos (title, sub-title and more…)"
 msgstr "Les infos du site (titre, sous-titre etc…)"
 
-#: xili-dictionary.php:2741
+#: xili-dictionary.php:2803
 msgid "…and comment, locale, date terms."
 msgstr "… et les termes pour commentaires, locaux et dates."
 
-#: xili-dictionary.php:2743
+#: xili-dictionary.php:2805
 msgid "Import infos of web site and more"
 msgstr "Importer les éléments des infos du site et plus"
 
-#: xili-dictionary.php:2743
+#: xili-dictionary.php:2805
 msgid "Import terms of website's infos"
 msgstr "Importer les termes des infos du site"
 
-#: xili-dictionary.php:2745
-#: xili-dictionary.php:3389
-msgid "Dictionary"
-msgstr "Dictionnaire"
+#: xili-dictionary.php:2807
+msgid "Dictionary in database"
+msgstr "Le dictionnaire dans la base"
 
-#: xili-dictionary.php:2746
-msgid "Erase all terms of dictionary ! (but not .mo or .po files)"
-msgstr "Effacer tous les termes du dictionnaire ! (les fichiers .mo et .po ne sont pas effacés)"
+#: xili-dictionary.php:2808
+msgid "Erase selected terms of dictionary ! (but not .mo or .po files)"
+msgstr "Effacer une sélection ou tous les termes du dictionnaire ! (les fichiers .mo et .po ne sont pas effacés)"
 
-#: xili-dictionary.php:2746
-#: xili-dictionary.php:3311
-msgid "Erase all terms"
+#: xili-dictionary.php:2808
+msgid "Erase (selection of) terms"
 msgstr "Effacer le dictionnaire &raquo;"
 
-#: xili-dictionary.php:2759
+#: xili-dictionary.php:2809
+msgid "Import terms for current theme files"
+msgstr "Importer les termes des fichiers source du thème courant"
+
+#: xili-dictionary.php:2809
+msgid "Import terms from source files"
+msgstr "Importer les termes des fichiers source du thème courant"
+
+#: xili-dictionary.php:2822
 msgid "Sub list of terms"
 msgstr "Sélection des termes par"
 
-#: xili-dictionary.php:2760
+#: xili-dictionary.php:2823
 msgid "Starting with:"
 msgstr "Commençant par :"
 
-#: xili-dictionary.php:2762
+#: xili-dictionary.php:2825
 msgid "Containing:"
 msgstr "Incluant :"
 
-#: xili-dictionary.php:2765
-#: xili-dictionary.php:2785
+#: xili-dictionary.php:2828
+#: xili-dictionary.php:2848
 msgid "Sub select…"
 msgstr "Sous sélectionner…"
 
-#: xili-dictionary.php:2766
+#: xili-dictionary.php:2829
 msgid "No select…"
 msgstr "Désélection"
 
-#: xili-dictionary.php:2770
+#: xili-dictionary.php:2833
 msgid "Selection by language"
 msgstr "Sélection par langue"
 
-#: xili-dictionary.php:2772
+#: xili-dictionary.php:2835
 msgid "No sub-selection"
 msgstr "Sans sous-sélection"
 
-#: xili-dictionary.php:2774
+#: xili-dictionary.php:2837
 msgid "Only MsgID (en_US)"
 msgstr "Que le MsgID (en_US)"
 
-#: xili-dictionary.php:2776
+#: xili-dictionary.php:2839
 msgid "Only Msgstr"
 msgstr ""
 
-#: xili-dictionary.php:2778
+#: xili-dictionary.php:2841
 msgid "Only Msgstr plural"
 msgstr ""
 
-#: xili-dictionary.php:2798
+#: xili-dictionary.php:2861
 msgid "Language to delete"
 msgstr "Langue à supprimer"
 
-#: xili-dictionary.php:2799
+#: xili-dictionary.php:2862
 msgid "Only the languages list is here modified (but not the dictionary's contents)"
 msgstr "Seule la liste des langages est modifiée mais pas les contenus du dictionaire"
 
-#: xili-dictionary.php:2802
+#: xili-dictionary.php:2865
 msgid "Select..."
 msgstr "Choisir..."
 
-#: xili-dictionary.php:2808
+#: xili-dictionary.php:2871
 msgid "Delete a language"
 msgstr "Supprimer une langue"
 
-#: xili-dictionary.php:2812
+#: xili-dictionary.php:2875
 msgid "Language to add"
 msgstr "Langue à ajouter"
 
-#: xili-dictionary.php:2813
+#: xili-dictionary.php:2876
 msgid "ISO (xx_YY)"
 msgstr "Code (xx_YY)"
 
-#: xili-dictionary.php:2815
+#: xili-dictionary.php:2878
 msgid "Name (eng.)"
 msgstr "Nom (angl.)"
 
-#: xili-dictionary.php:2819
+#: xili-dictionary.php:2882
 msgid "Add a language"
 msgstr "Ajouter une langue"
 
-#: xili-dictionary.php:2835
+#: xili-dictionary.php:2898
 msgid "not translated in"
 msgstr "non traduit en"
 
-#: xili-dictionary.php:2875
+#: xili-dictionary.php:2938
 msgid "Dialog box"
 msgstr "Boite de dialogue"
 
-#: xili-dictionary.php:2877
+#: xili-dictionary.php:2940
 msgid "Do &raquo;"
 msgstr "Ajouter&raquo;"
 
-#: xili-dictionary.php:2878
+#: xili-dictionary.php:2941
 msgid "Cancel"
 msgstr "Annuler"
 
-#: xili-dictionary.php:3022
+#: xili-dictionary.php:3085
 msgid "To create a .mo file, choose language and click below."
 msgstr "Pour créer un fichier .mo, choisir le langage et cliquer ci-dessous."
 
-#: xili-dictionary.php:3023
-#: xili-dictionary.php:3104
+#: xili-dictionary.php:3086
+#: xili-dictionary.php:3167
 msgid "Export &raquo;"
 msgstr "Créer &raquo;"
 
-#: xili-dictionary.php:3087
+#: xili-dictionary.php:3150
 #, php-format
 msgid "error during exporting in %2s %1s.mo file."
 msgstr "Erreur pendant la création du fichier %2s %1s.mo."
 
-#: xili-dictionary.php:3089
+#: xili-dictionary.php:3152
 #, php-format
 msgid "exported in %2s %1s.mo file with %3s msgids."
 msgstr "fichier %2s %1s.mo mis à jour avec %3s msgids."
 
-#: xili-dictionary.php:3092
+#: xili-dictionary.php:3155
 #, php-format
 msgid "Nothing in %s, not updated"
 msgstr "Rien dans %s, pas de mise à jour"
 
-#: xili-dictionary.php:3103
+#: xili-dictionary.php:3166
 msgid "To export terms in a .po file, choose language and click below."
 msgstr "Pour exporter les lignes du fichier .po courant, cliquer çi-dessous."
 
-#: xili-dictionary.php:3167
+#: xili-dictionary.php:3230
 #, php-format
 msgid "error during exporting in %2s  %1s.po file."
 msgstr "Erreur pendant la création du fichier %2s %1s.po."
 
-#: xili-dictionary.php:3169
+#: xili-dictionary.php:3232
 #, php-format
 msgid "exported in %2s %1s.po file with %3s msgids."
 msgstr "Fichier %2s %1s.po mis à jour avec %3s msgids."
 
-#: xili-dictionary.php:3172
+#: xili-dictionary.php:3235
 #, php-format
 msgid "Nothing saved in %s, not updated"
 msgstr "Rien de sauvé dans %s, pas de mise à jour"
 
-#: xili-dictionary.php:3181
+#: xili-dictionary.php:3244
 msgid "Import po file"
 msgstr "Import d'un fichier po"
 
-#: xili-dictionary.php:3182
+#: xili-dictionary.php:3245
 msgid "To import terms of the current .po, choose language and click below."
 msgstr "Pour importer les lignes du fichier .po, choisir la langue, cliquer çi-dessous."
 
-#: xili-dictionary.php:3183
-#: xili-dictionary.php:3190
+#: xili-dictionary.php:3246
+#: xili-dictionary.php:3253
 msgid "Import &raquo;"
 msgstr "Importer &raquo;"
 
-#: xili-dictionary.php:3188
+#: xili-dictionary.php:3251
 msgid "Import mo file"
 msgstr "Import d'un fichier .mo"
 
-#: xili-dictionary.php:3189
+#: xili-dictionary.php:3252
 msgid "To import terms of the current .mo, choose language and click below."
 msgstr "Pour importer les lignes du fichier .mo, choisir la langue et cliquer ci-dessous."
 
-#: xili-dictionary.php:3195
+#: xili-dictionary.php:3258
 msgid "line imported from po file: "
 msgstr "ligne(s) importée(s) du fichier .po"
 
-#: xili-dictionary.php:3219
-#: xili-dictionary.php:3254
+#: xili-dictionary.php:3282
+#: xili-dictionary.php:3317
 msgid "id lines = "
 msgstr "lignes id ="
 
-#: xili-dictionary.php:3219
-#: xili-dictionary.php:3254
+#: xili-dictionary.php:3282
+#: xili-dictionary.php:3317
 msgid "str lines = "
 msgstr ""
 
-#: xili-dictionary.php:3223
+#: xili-dictionary.php:3286
 msgid "po file is not present."
 msgstr "Le fichier .po est absent."
 
-#: xili-dictionary.php:3229
+#: xili-dictionary.php:3292
 msgid "line imported from mo file: "
 msgstr "ligne(s) importée(s) du fichier .mo"
 
-#: xili-dictionary.php:3257
+#: xili-dictionary.php:3320
 msgid "mo file is not present."
 msgstr "Le fichier .mo est absent."
 
-#: xili-dictionary.php:3263
+#: xili-dictionary.php:3326
 msgid "Import terms of blog info and others…"
 msgstr "Importer les termes des infos du site..."
 
-#: xili-dictionary.php:3264
+#: xili-dictionary.php:3327
 msgid "To import terms of blog info and others…, click below."
 msgstr "Pour importer les termes du thème courant, cliquer çi-dessous."
 
-#: xili-dictionary.php:3265
+#: xili-dictionary.php:3328
 msgid "Import blog info terms &raquo;"
 msgstr "Importer tous les termes &raquo;"
 
-#: xili-dictionary.php:3276
+#: xili-dictionary.php:3339
 msgid "imported with success"
 msgstr "importé avec succès"
 
-#: xili-dictionary.php:3278
+#: xili-dictionary.php:3341
 msgid "already imported"
 msgstr "déjà importé"
 
-#: xili-dictionary.php:3285
+#: xili-dictionary.php:3348
 msgid "To import terms of the current taxonomy named, click below."
 msgstr "Pour importer les termes du thème courant, cliquer çi-dessous."
 
-#: xili-dictionary.php:3286
+#: xili-dictionary.php:3349
 msgid "Import taxonomy’s terms &raquo;"
 msgstr "Importer &raquo;"
 
-#: xili-dictionary.php:3298
+#: xili-dictionary.php:3361
 msgid "names = "
 msgstr ""
 
-#: xili-dictionary.php:3298
+#: xili-dictionary.php:3361
 msgid "descs = "
 msgstr ""
 
-#: xili-dictionary.php:3300
+#: xili-dictionary.php:3363
 #, php-format
 msgid "taxonomy -%s- terms pbs!"
 msgstr "problème avec les termes de la taxinomie -%s-"
 
-#: xili-dictionary.php:3304
+#: xili-dictionary.php:3367
 #, php-format
 msgid "taxonomy -%s- do not exists"
 msgstr "La taxinomie -%s- n'existe pas"
 
-#: xili-dictionary.php:3312
+#: xili-dictionary.php:3374
+msgid "Erase all terms"
+msgstr "Effacer le dictionnaire &raquo;"
+
+#: xili-dictionary.php:3375
 msgid "To erase terms of the dictionary, click below. (before, create a .po if necessary!)"
 msgstr "Efface tous les termes du dictionnaire ! mais pas les fichiers .po et .mo"
 
-#: xili-dictionary.php:3313
+#: xili-dictionary.php:3376
 msgid "Erase all terms &raquo;"
 msgstr "Effacer le dictionnaire &raquo;"
 
-#: xili-dictionary.php:3324
-#: xili-dictionary.php:3378
+#: xili-dictionary.php:3387
+#: xili-dictionary.php:3443
 msgid "All terms erased !"
 msgstr "Tous les termes effacés !"
 
-#: xili-dictionary.php:3330
-msgid "Import all terms from current theme"
-msgstr "Importer les termes du thème courant"
+#: xili-dictionary.php:3393
+msgid "Import all terms from current theme source"
+msgstr "Importer les termes des sources du thème courant"
 
-#: xili-dictionary.php:3331
-msgid "To import terms of the current theme, click below."
-msgstr "Pour importer les termes du thème courant, cliquer çi-dessous."
+#: xili-dictionary.php:3394
+msgid "<em>Only use this possibility if no po, pot or mo file are provided by the theme maker. (this importer is experimental and only detect the I10n functions</em> __( , _e( , _x( , _ex( , _n( and _nx( ). <br /> To import terms of the current theme source files, click below."
+msgstr "<em>N'utiliser cette possibilité d'import que s'il n'existe pas de fichiers po, pot ou mo fournis par l'auteur du thème. (cet outil est expérimental et ne détecte que les functions i18n</em> __( , _e( , _x( , _ex( , _n( and _nx( ).<br /> Pour importer les termes des fichiers source du thème, cliquer ci-dessous."
 
-#: xili-dictionary.php:3332
+#: xili-dictionary.php:3395
 msgid "Import all terms &raquo;"
 msgstr "Importer tous les termes &raquo;"
 
-#: xili-dictionary.php:3334
+#: xili-dictionary.php:3397
 msgid "List of scanned files:"
 msgstr "Liste des fichiers analysés :"
 
-#: xili-dictionary.php:3342
-#: xili-dictionary.php:3376
+#: xili-dictionary.php:3405
+#: xili-dictionary.php:3441
 msgid "All terms imported !"
 msgstr "tous les éléments importés : "
 
-#: xili-dictionary.php:3346
+#: xili-dictionary.php:3409
 msgid "terms = "
 msgstr ""
 
-#: xili-dictionary.php:3348
+#: xili-dictionary.php:3411
 msgid "theme’s terms pbs!"
 msgstr "Problème dans les éléments du thème"
 
-#: xili-dictionary.php:3356
+#: xili-dictionary.php:3421
 msgid "Find below the list of terms."
 msgstr "Voici ci-dessous la liste des termes."
 
-#: xili-dictionary.php:3361
+#: xili-dictionary.php:3426
 msgid "Import & export"
 msgstr "Importer et exporter"
 
-#: xili-dictionary.php:3362
+#: xili-dictionary.php:3427
 msgid "Terms list management"
 msgstr "Gestion de l'affichage des termes"
 
-#: xili-dictionary.php:3364
+#: xili-dictionary.php:3429
 msgid "Languages list management"
 msgstr "Gestion de la liste des langues"
 
-#: xili-dictionary.php:3367
+#: xili-dictionary.php:3432
 msgid "Multilingual Terms"
 msgstr "Termes en plusieurs langues"
 
-#: xili-dictionary.php:3372
+#: xili-dictionary.php:3437
 msgid "A new term was added."
 msgstr "Un nouveau terme a été ajouté."
 
-#: xili-dictionary.php:3373
+#: xili-dictionary.php:3438
 msgid "A term was updated."
 msgstr "Un terme a été mis à jour."
 
-#: xili-dictionary.php:3374
+#: xili-dictionary.php:3439
 msgid "A term was deleted."
 msgstr "Un terme a été supprimé."
 
-#: xili-dictionary.php:3375
+#: xili-dictionary.php:3440
 msgid "terms imported from WP: "
 msgstr "éléments importés : "
 
-#: xili-dictionary.php:3379
+#: xili-dictionary.php:3444
 msgid "Error when adding !"
 msgstr "Erreur à la création !"
 
-#: xili-dictionary.php:3380
+#: xili-dictionary.php:3445
 msgid "Error when updating !"
 msgstr "Erreur lors de la mise à jour !"
 
-#: xili-dictionary.php:3428
+#: xili-dictionary.php:3454
+msgid "Dictionary"
+msgstr "Dictionnaire"
+
+#: xili-dictionary.php:3493
 msgid "Author"
 msgstr "Auteur"
 
-#: xili-dictionary.php:3784
+#: xili-dictionary.php:3849
 msgid "No translations saved in theme's .mo files"
 msgstr "Non traduit dans les .mo du thème"
 
-#: xili-dictionary.php:3784
+#: xili-dictionary.php:3849
 msgid "Original with translations saved in theme's files: "
 msgstr "Original avec traductions dans les .mo du thème : "
 
-#: xili-dictionary.php:3786
+#: xili-dictionary.php:3851
 msgid "No translations saved in local-xx_XX .mo files"
 msgstr "Non traduit dans les local-xx_XX.mo du thème"
 
-#: xili-dictionary.php:3786
+#: xili-dictionary.php:3851
 msgid "Original with translations saved in local-xx_XX files: "
 msgstr "Original avec traductions dans les local-xx_XX.mo du thème : "
 
-#: xili-dictionary.php:3790
+#: xili-dictionary.php:3855
 msgid "No translations saved in site's .mo files"
 msgstr "Non traduit dans les .mo du thème"
 
-#: xili-dictionary.php:3790
+#: xili-dictionary.php:3855
 msgid "Original with translations saved in site's files: "
 msgstr "Original avec traductions dans les .mo du thème : "
 
-#: xili-dictionary.php:3792
+#: xili-dictionary.php:3857
 msgid "No translations saved in site's local .mo files"
 msgstr "Non traduit dans les .mo du site"
 
-#: xili-dictionary.php:3792
+#: xili-dictionary.php:3857
 msgid "Original with translations saved in site's local files: "
 msgstr "Original avec traductions dans les .mo du site : "
 
-#: xili-dictionary.php:4724
+#: xili-dictionary.php:4898
 msgid "error"
 msgstr "erreur"
 
-#: xili-dictionary.php:4748
+#: xili-dictionary.php:4985
 msgid "List of found terms"
 msgstr "Liste des termes trouvés"
 
-#: xili-dictionary.php:4784
+#: xili-dictionary.php:5025
 msgid "Uncommon filename"
 msgstr "Nom fichier ???"
 
-#: xili-dictionary.php:4789
+#: xili-dictionary.php:5030
 msgid "Site's values"
 msgstr "Données du site"
 
-#: xili-dictionary.php:4810
+#: xili-dictionary.php:5051
 msgid "For more information:"
 msgstr "Pour plus d'information :"
 
-#: xili-dictionary.php:4811
+#: xili-dictionary.php:5052
 msgid "<a href=\"http://wiki.xiligroup.org\" target=\"_blank\">Xili Plugins Documentation and WIKI</a>"
 msgstr "<a href=\"http://wiki.xiligroup.org\" target=\"_blank\">Wiki de l'extension xili-dictionary</a>"
 
-#: xili-dictionary.php:4812
+#: xili-dictionary.php:5053
 msgid "<a href=\"http://dev.xiligroup.com/xili-dictionary\" target=\"_blank\">Xili-dictionary Plugin Documentation</a>"
 msgstr "<a href=\"http://dev.xiligroup.com/xili-dictionary\" target=\"_blank\">Documentation de l'extension xili-dictionary</a>"
 
-#: xili-dictionary.php:4813
+#: xili-dictionary.php:5054
 msgid "<a href=\"http://codex.wordpress.org/\" target=\"_blank\">WordPress Documentation</a>"
 msgstr "<a href=\"http://codex.wordpress.org/\" target=\"_blank\">Documentation WordPress (codex)</a>"
 
-#: xili-dictionary.php:4814
+#: xili-dictionary.php:5055
 msgid "<a href=\"http://forum2.dev.xiligroup.com/\" target=\"_blank\">Support Forums</a>"
 msgstr "<a href=\"http://forum2.dev.xiligroup.com/\" target=\"_blank\">Forum Support</a>"
 
-#: xili-dictionary.php:4818
+#: xili-dictionary.php:5059
 msgid "Things to remember to set xili-dictionary:"
 msgstr "Eléments à retenir pour paramétrer xili-dictionary :"
 
-#: xili-dictionary.php:4820
+#: xili-dictionary.php:5061
 msgid "Verify that the theme is localizable (like kubrick, fusion or twentyten)."
 msgstr "Verifier que le thème utilisé soit bien localisable (tel que kubrick, fusion ou twentyten)."
 
-#: xili-dictionary.php:4821
+#: xili-dictionary.php:5062
 msgid "Define the list of targeted languages."
 msgstr "Définir la liste des langues utilisées."
 
-#: xili-dictionary.php:4822
+#: xili-dictionary.php:5063
 msgid "Prepare a sub-folder .po and .mo files for each language (use the default delivered with the theme or add the pot of the theme and put them inside."
 msgstr "Dans le dossier du thème, préparer un sous-dossier pour les fichiers .po et .mo de chaque langue (utiliser les fichiers livrés par défaut avec le thème ou ajouter son .pot et insérer les dedans."
 
-#: xili-dictionary.php:4823
+#: xili-dictionary.php:5064
 msgid "If you have files: import them to create a base dictionary. If not : add a term or use buttons of import and export metabox."
 msgstr "Si vous avez ces fichiers : importer les pour créer la base initiale du dictionnaire. Sinon, ajouter un terme ou importer les données du site via les boutons de la fenêtre latérale - Importer et exporter"
 
-#: xili-dictionary.php:4828
+#: xili-dictionary.php:5069
 msgid "About xili-dictionary"
 msgstr "A propos de xili-dictionary©"
 
-#: xili-dictionary.php:4833
-#: xili-dictionary.php:4865
+#: xili-dictionary.php:5074
+#: xili-dictionary.php:5106
 msgid "For more infos"
 msgstr "Pour plus d'information"
 
-#: xili-dictionary.php:4841
+#: xili-dictionary.php:5082
 msgid "Things to remember about the list of translations (msgstr) of term (msgid) with xili-dictionary:"
 msgstr "Eléments à retenir concernant la liste des traductions (msgstr) des termes (msgid) avec xili-dictionary :"
 
-#: xili-dictionary.php:4842
-#: xili-dictionary.php:4853
+#: xili-dictionary.php:5083
+#: xili-dictionary.php:5094
 msgid "More details in next versions"
 msgstr "Plus de détails dans les prochaines versions"
 
-#: xili-dictionary.php:4846
+#: xili-dictionary.php:5087
 msgid "About MSG list page"
 msgstr "A propos de la liste des MSGs"
 
-#: xili-dictionary.php:4852
+#: xili-dictionary.php:5093
 msgid "Things to remember before to create or edit a new translation (msgstr) or a term (msgid) with xili-dictionary:"
 msgstr "Eléments à retenir avant de créer ou modifier une nouvelle traduction (msgstr) ou un nouveau terme de référence (msgid) avec xili-dictionary :"
 
-#: xili-dictionary.php:4857
+#: xili-dictionary.php:5098
 msgid "About MSG edit"
 msgstr "A propos de l'édition des MSGs"
 
-#: xili-dictionary.php:4934
+#: xili-dictionary.php:5175
 msgid "Docs about xili-dictionary"
 msgstr "Docs sur le dictionnaire xili©"
 
-#: xili-dictionary.php:4941
+#: xili-dictionary.php:5182
 msgid "xili-dictionary updated"
 msgstr "Nouvelle version de xili-dictionary"
 
-#: xili-dictionary.php:4942
+#: xili-dictionary.php:5183
 #, php-format
 msgid "xili-dictionary was updated to version %s"
 msgstr "xili-dictionary vient d’être mise à jour en version %s"
 
-#: xili-dictionary.php:4943
+#: xili-dictionary.php:5184
 msgid "Version 2.2 improves border-line situations, better messaging. Don’t forget to read latest wiki post about this plugin (see link below)."
 msgstr "La version 2.2 corrige des erreurs en situation limite, améliore les messages. N'oubliez pas de lire les derniers articles à propos de ce plugin dans le wiki (voir lien ci-dessous)."
 
-#: xili-dictionary.php:4944
+#: xili-dictionary.php:5185
 msgid "New boxes added in edit screen of a term: list of untranslated terms, shorcuts to update quickly .mo file"
 msgstr "Nouvelle boite ajoutée dans l’écran pour éditer les termes (msg) : liste des termes non traduits, raccourcis pour mettre à jour les .mo files"
 
-#: xili-dictionary.php:4945
+#: xili-dictionary.php:5186
 msgid "See list and edit a term from the "
 msgstr "Voir la liste et modifier un terme de la"
 
-#: xili-dictionary.php:4945
+#: xili-dictionary.php:5186
 msgid "list of msgs"
 msgstr "liste des msgs"
 
-#: xili-dictionary.php:4946
+#: xili-dictionary.php:5187
 msgid "New queries to detect untranslated terms,"
 msgstr "Nouvelles requêtes pour détecter les termes non traduits,"
 
-#: xili-dictionary.php:4947
+#: xili-dictionary.php:5188
 msgid "See submenu"
 msgstr "Voir le menu"
 
-#: xili-dictionary.php:4948
+#: xili-dictionary.php:5189
 #, php-format
 msgid "Before to question dev.xiligroup support, do not forget to visit %s documentation"
 msgstr "Avant de questionner le support dev.xiligroup, n’oubliez pas de cocher les infos du site et de lire la doc. sur %s"
 
-#~ msgid "MO file updated"
-#~ msgstr "Fichier MO mis à jour"
+#: xili-dictionary.php:5282
+msgid "Erasing"
+msgstr "Suppression en cours"
+
+#: xili-dictionary.php:5283
+msgid "Erase"
+msgstr "Supprimer"
+
+#: xili-dictionary.php:5288
+msgid "Importing files"
+msgstr "Importation en cours du fichier"
+
+#: xili-dictionary.php:5289
+msgid "Import"
+msgstr "Importer"
+
+#: xili-dictionary.php:5317
+msgid "Here it now possible to erase your dictionary (here in WP database) after creating the .mo files (and saving the .po files which is readable with any text editor). <strong>This erasing process don't delete the .mo or .po files.</strong>"
+msgstr "Ici, il est possible de supprimer tout ou partie des termes du dictionnaire qui sont stockés dans la base après avoir créé les fichiers .mo (et après avoir sauvé les fichiers .po - fichiers lisibles avec un éditeur de texte - ). <strong>Ces suppressions de la base ne suppriment pas les fichiers .mo or .po .</strong>"
+
+#: xili-dictionary.php:5326
+msgid "Locale msgs only"
+msgstr "Msgs locaux seulement"
+
+#: xili-dictionary.php:5327
+msgid "Erase only locale msgs (as saved in local-xx_YY files)"
+msgstr "Ne supprime que les msgs locaux (comme ceux sauvés dans les fichiers local-xx_YY)"
+
+#: xili-dictionary.php:5334
+msgid "Terms (msgid / msgstr) to erase"
+msgstr "Termes (msgid / msgstr) à effacer"
+
+#: xili-dictionary.php:5336
+msgid "Original (msgid) and translations or Select language..."
+msgstr "Original (msgid) et traductions ou Sélectionner la langue..."
+
+#: xili-dictionary.php:5337
+msgid "Translations  (msgstr) in all languages"
+msgstr "Traductions (msgstr) dans toutes les langues"
+
+#: xili-dictionary.php:5341
+#, php-format
+msgid "Translations (msgstr) in %s"
+msgstr "Traductions (msgstr) en %s"
+
+#: xili-dictionary.php:5346
+msgid "Language of the translated terms to be erased. Without selection, Original (msgid) AND translation (msgstr) will both be erased."
+msgstr "Langue des termes traduits à supprimer. Sans sélection, les termes originaux (msgid) ET leurs traductions (msgstr) seront supprimés simultanément."
+
+#: xili-dictionary.php:5359
+msgid "Check Origin(s) to be erased"
+msgstr "Cocher selon les origines à supprimer"
+
+#: xili-dictionary.php:5371
+msgid "Origins of the msgs to be erased. Without selection, msg without origin will be erased"
+msgstr "Origines des msgs à supprimer. Sans sélection, tous les messages sont supprimés"
+
+#: xili-dictionary.php:5380
+msgid "Number of entries in one step"
+msgstr "Nombre d'entrées à chaque étape"
+
+#: xili-dictionary.php:5394
+msgid "second(s) delay between each group of rows"
+msgstr "seconde(s) de délai entre chaque groupe de lignes"
+
+#: xili-dictionary.php:5395
+msgid "Keep this high to prevent too-many-connection issues."
+msgstr "A laisser élevé pour prévenir un trop grand nombre de connexions."
+
+#: xili-dictionary.php:5401
+msgid "Erasing the dictionary"
+msgstr "Nettoyage du dictionnaire"
+
+#: xili-dictionary.php:5404
+msgid "What to erase ?"
+msgstr "Choix des suppressions :"
+
+#: xili-dictionary.php:5408
+#: xili-dictionary.php:6116
+msgid "Entries step"
+msgstr "Etape"
+
+#: xili-dictionary.php:5412
+#: xili-dictionary.php:6120
+msgid "Delay Time"
+msgstr "Délai"
+
+#: xili-dictionary.php:5425
+msgid "Erasing Dictionary lines"
+msgstr "Suppression des lignes du dictionnaire"
+
+#: xili-dictionary.php:5432
+#: xili-dictionary.php:6057
+#, php-format
+msgid "<a href=\"%s\">Back</a> to the list of msgs and tools"
+msgstr "<a href=\"%s\">Retour</a> à la liste des messages et aux outils"
+
+#: xili-dictionary.php:5434
+msgid "Start"
+msgstr "Lancer"
+
+#: xili-dictionary.php:5435
+#: xili-dictionary.php:6060
+msgid "Stop"
+msgstr "Arrêter"
+
+#: xili-dictionary.php:5485
+msgid "Starting Importing"
+msgstr "Démarrer l'importation"
+
+#: xili-dictionary.php:5503
+#: xili-dictionary.php:5563
+msgid "Go to the list of msgs:"
+msgstr "Voir la liste des msgs:"
+
+#: xili-dictionary.php:5545
+msgid "Starting Erasing"
+msgstr "Suppression lancée"
+
+#: xili-dictionary.php:5678
+#, php-format
+msgid "Lines found ! ( %2$s lines)"
+msgstr "Lignes trouvées ! ( %2$s lignes)"
+
+#: xili-dictionary.php:5686
+msgid "No msgs to erase"
+msgstr "Pas de msgs à supprimer"
+
+#: xili-dictionary.php:5701
+#, php-format
+msgid "No more msgs to erase (%s)"
+msgstr "Plus de msg à supprimer (%s)"
+
+#: xili-dictionary.php:5703
+#, php-format
+msgid "No msgs to erase (%s)"
+msgstr "Pas de msgs à supprimer (%s)"
+
+#: xili-dictionary.php:5715
+#, php-format
+msgid "Erasing msgs (%1$s - %2$s)"
+msgstr "Suppression des msgs en cours (%1$s - %2$s)"
+
+#: xili-dictionary.php:5730
+#, php-format
+msgid "Erasing Complete (%1$s)"
+msgstr "Suppression terminée (%1$s)"
+
+#: xili-dictionary.php:6049
+msgid "Importing files (.po, .pot, .mo)"
+msgstr "Importation de fichiers (.po, .pot, .mo)"
+
+#: xili-dictionary.php:6059
+msgid "Start importing"
+msgstr "Importation lancée"
+
+#: xili-dictionary.php:6109
+msgid "Importing the files"
+msgstr "Importer les fichiers"
+
+#: xili-dictionary.php:6112
+msgid "Define the file to import"
+msgstr "Définition du fichier à importer"
+
+#: xili-dictionary.php:6134
+#, php-format
+msgid "Here it is possible to import the .%s file inside the dictionary."
+msgstr "Il est ici possible d'importer un fichier .%s dans le dictionnaire."
+
+#: xili-dictionary.php:6144
+msgid "Type"
+msgstr "Type"
+
+#: xili-dictionary.php:6146
+msgid "Select type..."
+msgstr "Choisir le type..."
+
+#: xili-dictionary.php:6147
+msgid "PO file"
+msgstr "Fichier PO"
+
+#: xili-dictionary.php:6148
+msgid "MO file"
+msgstr "Fichier MO"
+
+#: xili-dictionary.php:6151
+msgid "Type of file: .mo or .po"
+msgstr "Type de fichier: .mo or .po"
+
+#: xili-dictionary.php:6157
+msgid "Folder"
+msgstr "Dossier"
+
+#: xili-dictionary.php:6159
+msgid "Site file (blogs.dir)"
+msgstr "Fichier du site (blogs.dir)"
+
+#: xili-dictionary.php:6160
+msgid "Original theme file"
+msgstr "Fichier du thème original"
+
+#: xili-dictionary.php:6163
+msgid "As superadmin, define origin of file"
+msgstr "En tant que superadmin, définir l'origine du fichier"
+
+#: xili-dictionary.php:6171
+msgid "Locale msgs"
+msgstr "Msgs locaux"
+
+#: xili-dictionary.php:6172
+msgid "Import locale file (local-xx_YY)"
+msgstr "Importer un fichier (local-xx_YY)"
+
+#: xili-dictionary.php:6180
+msgid "Select language"
+msgstr "Sélectionner la langue"
+
+#: xili-dictionary.php:6190
+msgid "Language of the file"
+msgstr "Langue du fichier"
+
+#: xili-dictionary.php:6193
+msgid "Name of current theme"
+msgstr "Nom du thème courant"
+
+#: xili-dictionary.php:6195
+msgid "Used to assign origin taxonomy"
+msgstr "Utilisé pour affecter la taxinomie Origine"
+
+#: xili-dictionary.php:6264
+#, php-format
+msgid "File %3$s%2$s.%1$s found ! (%4$s entries)"
+msgstr "Fichier %3$s%2$s.%1$s trouvé ! (%4$s entrées)"
+
+#: xili-dictionary.php:6271
+#, php-format
+msgid "Impossible to find file %3$s%2$s.%1$s (%4$s)"
+msgstr "Impossible de trouver le fichier %3$s%2$s.%1$s (%4$s)"
+
+#: xili-dictionary.php:6283
+msgid "No msgs to import"
+msgstr "Pas de msgs à importer"
+
+#: xili-dictionary.php:6291
+#, php-format
+msgid "Importing msgs (%1$s - %2$s)"
+msgstr "Importation des msgs en cours (%1$s - %2$s)"
+
+#: xili-dictionary.php:6302
+msgid "Importation Complete"
+msgstr "Importation terminée"
+
+#~ msgid "To import terms of the current theme source files, click below."
+#~ msgstr ""
+#~ "Pour importer les termes des fichiers source du thème courant, cliquer çi-"
+#~ "dessous."
 
 #~ msgid "Local MO file updated"
 #~ msgstr "Fichier local MO mis à jour"
--- a/web/wp-content/plugins/xili-dictionary/readme.txt	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-content/plugins/xili-dictionary/readme.txt	Wed Dec 19 17:46:52 2012 -0800
@@ -3,8 +3,8 @@
 Donate link: http://dev.xiligroup.com/
 Tags: theme,post,plugin,posts, page, category, admin,multilingual,taxonomy,dictionary, .mo file, .po file, l10n, i18n, language, international,wpmu,plural,multisite
 Requires at least: 3.3.2
-Tested up to: 3.4.2
-Stable tag: 2.2.0
+Tested up to: 3.5
+Stable tag: 2.3.0
 License: GPLv2
 
 
@@ -25,8 +25,12 @@
 * readme rewritting
 * dictionary for other than theme's .po, .mo files
 
-= 2.2.0 (2012-09-22) =
+= 2.3.0 (2012-10-22) =
+* add ajax functions for import and erase functions (big files, no freeze)
+* fixes
+* See [xili wiki](http://wiki.xiligroup.org/index.php/Xili-dictionary_v2.3:_what%27s_new_%3F)
 
+= 2.2.0 =
 * fixes issues of 2.1 series (messages, import/export, ctxt, conditions, and more…) - thanks to the adventurers ;-)
 
 = 2.1 =
@@ -141,6 +145,9 @@
 © 2009-2012 MS - dev.xiligroup.com
 
 == Changelog ==
+= 2.3.0 (2012-10-22) =
+* add ajax functions for import and erase functions (big files, no freeze)
+* fixes
 = 2.2.0 (2012-09-29) =
 * fixes issues of 2.1 series (messages, import, conditions, and more…). 
 * 2.1.2 and 2.1.3 removed from repository
@@ -170,4 +177,4 @@
 * between 0.9.3 and 1.4.4 see version 1.4.4 - 20120219
 = 0.9.3 = first public release (beta) 
 
-© 20120922 - MS - dev.xiligroup.com
+© 201211202 - MS - dev.xiligroup.com
--- a/web/wp-content/plugins/xili-dictionary/xili-dictionary.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-content/plugins/xili-dictionary/xili-dictionary.php	Wed Dec 19 17:46:52 2012 -0800
@@ -4,13 +4,14 @@
 Plugin URI: http://dev.xiligroup.com/xili-dictionary/
 Description: A tool using wordpress's CPT and taxonomy for localized themes or multilingual themes managed by xili-language - a powerful tool to create .mo file(s) on the fly in the theme's folder and more... - ONLY for >= WP 3.2.1 - 
 Author: dev.xiligroup - MS
-Version: 2.2.0
+Version: 2.3.0
 Author URI: http://dev.xiligroup.com
 License: GPLv2
 Text Domain: xili-dictionary
 Domain Path: /languages/
 */
 
+# 2.3.0 - 121118 - add ajax functions for import and erase functions
 # 2.2.0 - 120922 - fixes issues with .mo and .po inserts - better messages and warning
 # 2.1.3 - 120728 - fixes
 # 2.1.2 - 120715 - list in msg edit - new query - new metabox - new pointers - ...
@@ -34,7 +35,7 @@
 # beta 0.9.3 - first published - 090131 MS
 
 
-define('XILIDICTIONARY_VER','2.2.0');
+define('XILIDICTIONARY_VER','2.3.0');
 
 include_once(ABSPATH . WPINC . '/pomo/po.php'); /* not included in wp-settings */
 
@@ -97,6 +98,9 @@
 	var $langs_group_id; /* group ID and Term Taxo ID */
 	var $langs_group_tt_id;
 	
+	// temp mo/po object
+	
+	var $temp_po; 
 	
 	
 	public function xili_dictionary( $langsfolder = '/' ) { // ?? php4
@@ -148,8 +152,21 @@
 		/* admin */
 		add_action( 'admin_init', array(&$this,'admin_init') ); // 1.3.0
 		add_action( 'admin_init', array(&$this,'ext_style_init') ); // 2.1
+		add_action( 'admin_init', array(&$this,'xd_erasing_init_settings') ); // 2.3
+		add_action( 'admin_init', array(&$this,'xd_importing_init_settings') ); // 2.3
+		
 		add_action( 'admin_menu', array(&$this,'xili_add_dict_pages') );
 		
+		add_action( 'admin_menu', array(&$this,'admin_menus'), 10 ); // 2.3
+		add_action( 'admin_menu', array(&$this,'admin_sub_menus_hide'), 11 );
+		
+		// Attach to the admin head with our ajax requests cycle and css
+		add_action( 'admin_head', array( $this, 'admin_head' ) );
+		
+		// Attach to the admin ajax request to process cycles
+		add_action( 'wp_ajax_xd_erasing_process', array( $this, 'erasing_process_callback' ) ); // 2.3
+		add_action( 'wp_ajax_xd_importing_process', array( $this, 'importing_process_callback' ) ); // 2.3
+		
 		add_action( 'add_meta_boxes', array(&$this, 'add_custom_box_in_post_msg') ); // 2.1.2
 		
 		add_action( 'init', array(&$this, 'xili_dictionary_register_taxonomies')); // and init
@@ -183,6 +200,7 @@
 			add_filter( 'post_updated_messages', array(&$this, 'msg_post_messages'));
 			
 			add_action( 'before_delete_post', array(&$this, 'msgid_post_links_delete') );
+			
 			add_action( 'admin_print_styles-post.php', array(&$this, 'print_styles_xdmsg_edit') );
 			add_action( 'admin_print_styles-post-new.php', array(&$this, 'print_styles_xdmsg_edit') );
 			
@@ -192,6 +210,8 @@
 			add_action( 'admin_print_styles-edit.php', array(&$this, 'print_styles_xdmsg_list') ); // list of msgs
 			
 			add_action( 'admin_print_styles-xdmsg_page_dictionary_page', array(&$this, 'print_styles_xdmsg_tool') );
+			add_action( 'admin_print_styles-xdmsg_page_erase_dictionary_page', array(&$this, 'print_styles_new_ui') );
+			add_action( 'admin_print_styles-xdmsg_page_import_dictionary_page', array(&$this, 'print_styles_new_ui') );
 			
 			
 			add_action( 'add_meta_boxes_' . XDMSG, array(&$this, 'msg_update_action')); // to locally update files from editing...
@@ -433,6 +453,22 @@
 	 	if ( $this->exists_style_ext && $this->xili_settings['external_xd_style'] == "on" ) wp_enqueue_style( 'xili_dictionary_stylesheet' );
 	 }
 	 
+	 /**
+	 * add styles in new screens (import / erase)
+	 *
+	 */
+	 function print_styles_new_ui ( ) {
+	 	
+	 	echo '<!---- xd css ----->'."\n";
+		echo '<style type="text/css" media="screen">'."\n";
+		echo 'form#xd-looping-settings > p { width:600px; padding:10px 20px; 10px 0; font-size:110%; }'."\n";
+		echo '.sub-field {border:1px #ccc solid; width:600px; padding:10px 20px ; margin:5px 0;}'."\n";
+		echo '.link-back > a { border:1px #ccc solid; width:80px; padding:4px 10px ; border-radius: 3px; margin-right:4px;}'."\n";
+		echo '.xd-looping-updated{ width:870px !important; }'."\n";
+		echo '</style>'."\n";
+	 	
+	 }
+	 
 	 
 	/** 
 	 * style for new dashboard
@@ -486,7 +522,8 @@
 		$term = 'en_US';
 		$args = array( 'alias_of' => '', 'description' => 'english', 'parent' => 0, 'slug' =>'en_us');
 		$theids = $this->safe_lang_term_creation ( $term, $args );
-		wp_set_object_terms($theids['term_id'], 'the-langs-group', TAXOLANGSGROUP);
+		if ( !is_wp_error($theids) )
+			wp_set_object_terms($theids['term_id'], 'the-langs-group', TAXOLANGSGROUP);
 		
 		/* default values */
 		if ( ''!= WPLANG && ( strlen( WPLANG )==5 || strlen( WPLANG ) == 2 ) ) : // for japanese
@@ -504,7 +541,8 @@
  		$args = array( 'alias_of' => '', 'description' => $desc, 'parent' => 0, 'slug' => $slug);
  		
  		$theids = $this->safe_lang_term_creation ( $term, $args ) ;
- 		wp_set_object_terms($theids['term_id'], 'the-langs-group', TAXOLANGSGROUP);
+ 		if ( !is_wp_error($theids) ) 
+ 			wp_set_object_terms($theids['term_id'], 'the-langs-group', TAXOLANGSGROUP);
 		
 	}
 	
@@ -614,6 +652,8 @@
 					if ( $res != '' && is_array ( $thelangs ) ) { 
 						
 						unset ( $thelangs['msgstrlangs'][$target_lang]['msgstr'] ) ;
+						if ( isset ( $thelangs['msgstrlangs'][$target_lang] ) && $thelangs['msgstrlangs'][$target_lang] == array( ) ) unset ( $thelangs['msgstrlangs'][$target_lang] ); // 2.3
+						if ( isset ( $thelangs['msgstrlangs'] )  && $thelangs['msgstrlangs'] == array( ) ) unset ( $thelangs['msgstrlangs'] ); // 2.3
 						update_post_meta ( $msgid_ID, $this->msglang_meta, $thelangs ); // update id post_meta
 					}	
 				} elseif ( false !== strpos( $type, 'msgstr_' ) && $target_lang != '' ) {
@@ -624,8 +664,9 @@
 						$thelangs =  ( is_array ( $res ) &&  array() != $res ) ? $res[0]  : array();
 						if ( $res != '' && is_array ( $thelangs ) ) {
 							unset ( $thelangs['msgstrlangs'][$target_lang]['msgstr_0'] ) ;
-							// delete childs or trash ??
-							// ?? recursive 
+							if ( isset ( $thelangs['msgstrlangs'][$target_lang] ) && $thelangs['msgstrlangs'][$target_lang] == array( ) ) unset ( $thelangs['msgstrlangs'][$target_lang] ); // 2.3
+							if ( isset ( $thelangs['msgstrlangs'] )  && $thelangs['msgstrlangs'] == array( ) ) unset ( $thelangs['msgstrlangs'] ); // 2.3
+
 							update_post_meta ( $msgid_ID, $this->msglang_meta, $thelangs ); // update id post_meta
 						}
 					} else {
@@ -859,7 +900,7 @@
 		     	$mo = $this->from_cpt_to_POMO ( $selectlang, 'mo', $extract_array );
    			}
 	     	
-	     	if ( count ($mo->entries) > 0 ){
+	     	if ( isset ( $mo ) && count ($mo->entries) > 0 ){
 	     	
 	     		if ( false === $this->Save_MO_to_file ( $selectlang , $mo, $file ) ) {
 					$this->msg_action_message = sprintf('<span class="alert">'.__('Error with File %s !', 'xili-dictionary').'</span> ('.$file.')', $local.$selectlang.'.mo');
@@ -1120,17 +1161,11 @@
 		return false;  
 	}
 	
-	/**
-	 * import po and mo in cpts series
-	 *
-	 * @since 2.0
-	 * @return 
-	 */
-	function from_pomo_to_cpts ( $po, $curlang = 'en_US' ) {
+	// used by new ajax
+	
+	function pomo_entry_to_xdmsg ( $pomsgid, $pomsgstr, $curlang = 'en_US', $args = array('importing_po_comments'=> '', 'origin_theme' =>'' )  ) {
 		$nblines = array( 0, 0); // id, str count
-		$this->importing_mode = true ;
-		foreach ( $po->entries as $pomsgid => $pomsgstr ) {
-			// test if msgid exists
+		// test if msgid exists
 			$result = $this->msgid_exists ( $pomsgstr->singular, $pomsgstr->context ) ;
 			
 			if ( $result === false ) {
@@ -1140,15 +1175,15 @@
 				$nblines[0]++ ;
 			} else {
 				$msgid_post_ID = $result[0];
-				if ( $this->importing_po_comments != '' ) {
-					$this->insert_comments( $msgid_post_ID, $pomsgstr, $this->importing_po_comments );
+				if ( $args['importing_po_comments'] != '' ) {
+					$this->insert_comments( $msgid_post_ID, $pomsgstr, $args['importing_po_comments'] );
 				}
 				
 			}
 			
 			// add origin taxonomy
-			if ( ''!= $this->origin_theme ) 
-				wp_set_object_terms( $msgid_post_ID, $this->origin_theme, 'origin', true ); // true to append to existing
+			if ( ''!= $args['origin_theme'] ) 
+				wp_set_object_terms( $msgid_post_ID, $args['origin_theme'], 'origin', true ); // true to append to existing
 			
 			if ( $pomsgstr->is_plural != null ) {
 				// create msgid plural (child of msgid)
@@ -1218,7 +1253,26 @@
 					$i++;
 				}
 			}
+			return $nblines;
+	}
+	
+	/**
+	 * import po and mo in cpts series
+	 *
+	 * @since 2.0
+	 * @updated 2.3 pomo_entry_to_xdmsg outside
+	 * @return 
+	 */
+	function from_pomo_to_cpts ( $po, $curlang = 'en_US' ) {
+		$nblines = array( 0, 0); // id, str count
+		$this->importing_mode = true ;
+		foreach ( $po->entries as $pomsgid => $pomsgstr ) {
 			
+			$lines = $this->pomo_entry_to_xdmsg ( $pomsgid, $pomsgstr, $curlang, array ( 'importing_po_comments'=>$this->importing_po_comments, 'origin_theme'=>$this->origin_theme ) ); // global value 
+			
+			$nblines[0] += $lines[0];
+			$nblines[1] += $lines[1];
+			 			
 		}
 		$this->importing_mode = false ;
 		return $nblines;	
@@ -1719,7 +1773,7 @@
 					}
 					// redirect
 					
-					//if ( $translated_post_ID > 0 && $this->xili_settings['creation_redirect'] == 'redirect') {
+					
 					$url_redir = admin_url().'post.php?post='.$translated_post_ID.'&action=edit';
 			
 				?>
@@ -1727,7 +1781,7 @@
    <!--
       window.location= <?php echo "'" . $url_redir . "'"; ?>;
    //-->
-   </script>
+   </script><br />
 <?php
 				//}
 				}
@@ -1736,6 +1790,14 @@
 					$msgid_plural_post_ID = $this->insert_one_cpt_and_meta ( __('XD say id to plural: ', 'xili-dictionary').$temp_post_msg_id->post_content , null, 'msgid_plural' , $msgid_id );
 					$res = get_post_meta ( $msgid_id, $this->msgchild_meta, false ); 
 					$thechilds =  ( is_array ( $res ) &&  array() != $res  ) ? $res[0]  : array();	
+				$url_redir = admin_url().'post.php?post='.$msgid_plural_post_ID.'&action=edit';	
+	//2.3		?>
+   <script type="text/javascript">
+   <!--
+      window.location= <?php echo "'" . $url_redir . "'"; ?>;
+   //-->
+   </script><br />
+<?php		
 							
 			} elseif ( $type == 'msgid' && isset ($_GET['msgaction']) &&  $_GET['msgaction'] == 'setlocal' ) {
 				check_admin_referer( 'xd-setlocal' );
@@ -1778,7 +1840,8 @@
 				
 				
 			} else {
-				if ( !isset ( $thelangs['msgstrlangs'] ) && !isset ( $thechilds['msgid']['plural'] ) ) { // not yet translated
+				//2.3
+				if ( $post->post_status !='auto-draft' && !isset ( $thelangs['msgstrlangs'] ) && !isset ( $thechilds['msgid']['plural'] ) ) { // not yet translated
 					
 					$nonce_url = wp_nonce_url ('post.php?post='.$id.'&action=edit&msgaction=msgid_plural', 'xd-plural'  ) ;
 					printf( __('&nbsp;<a href="%s" >Create msgid_plural</a>', 'xili-dictionary'), $nonce_url );
@@ -2251,7 +2314,7 @@
 		//$this->thehook = add_management_page(__('Xili Dictionary','xili-dictionary'), __('xili Dictionary','xili-dictionary'), 'import', 'dictionary_page', array(&$this,'xili_dictionary_settings'));
 		
 		$this->thehook = add_submenu_page( 'edit.php?post_type='.XDMSG, __('Xili Dictionary','xili-dictionary'), __('Tools, Files po mo','xili-dictionary'), 'import', 'dictionary_page', array(&$this,'xili_dictionary_settings') );
-		
+		add_action( "admin_head-".$this->thehook, array(&$this,'modify_menu_highlight' ));
 		 add_action('load-'.$this->thehook, array(&$this,'on_load_page'));
 		  	
 		 add_action( 'admin_print_scripts-'.$this->thehook, array(&$this,'admin_enqueue_scripts') );
@@ -2272,9 +2335,10 @@
 			wp_enqueue_script('wp-lists');
 			wp_enqueue_script('postbox');
 			
+			add_meta_box('xili-dictionary-sidebox-style', __('XD style settings','xili-dictionary'), array(&$this,'on_sidebox_style_content'), $this->thehook , 'side', 'core');
 			add_meta_box('xili-dictionary-sidebox-message', __('Message','xili-dictionary'), array(&$this,'on_sidebox_message_content'), $this->thehook , 'side', 'core');
 			add_meta_box('xili-dictionary-sidebox-info', __('Info','xili-dictionary'), array(&$this,'on_sidebox_info_content'), $this->thehook , 'side', 'core');
-			add_meta_box('xili-dictionary-sidebox-style', __('XD style settings','xili-dictionary'), array(&$this,'on_sidebox_style_content'), $this->thehook , 'side', 'core');		
+					
 	}
 	
 	/**
@@ -2429,9 +2493,10 @@
 		<?php
 	}
 	
-	function get_theme_name () {
+	function get_theme_name ( $child_of = true ) {
 		if ( function_exists('is_child_theme') && is_child_theme() ) { // 1.8.1 and WP 3.0
-			$theme_name = get_option("stylesheet").' '.__('child of','xili-dictionary').' '.get_option("template"); 
+			$theme_name = get_option("stylesheet");
+			if ( $child_of ) $theme_name .= ' '.__('child of','xili-dictionary').' '.get_option("template"); 
 		} else {
 			$theme_name = get_option("template"); 
 		}
@@ -2456,7 +2521,7 @@
 	   			} 
 	   	}
 		?>
-<p><?php _e('xili-dictionary is a plugin (compatible with xili-language) to build a multilingual dictionary saved in the taxonomy tables of WordPress. With this dictionary, it is possible to create and update .mo file in the current theme folder. And more...','xili-dictionary') ?>
+<p><?php printf ( __('xili-dictionary is a plugin (compatible with xili-language) to build a multilingual dictionary saved in the post tables of WordPress as custom post type (%s). With this dictionary, it is possible to create and update .mo file in the current theme folder. And more...','xili-dictionary'), '<em>' . $this->xdmsg . '</em>' ); ?>
 </p>
 <fieldset style="margin:2px; padding:12px 6px; border:1px solid #ccc;">
 	<legend><?php echo __("Theme's informations:",'xili-dictionary').' ('. $theme_name .')'; ?></legend>
@@ -2568,12 +2633,12 @@
 			<div class="dialoglang">
 				<label for="language_file">
 					<select name="language_file" ><?php
-	   			$extend = WPLANG;
+	   			$default_lang = ( defined ('WPLANG') ) ? WPLANG : '' ;
 	   			$listlanguages = $this->get_terms_of_groups_lite ( $this->langs_group_id, TAXOLANGSGROUP,TAXONAME, 'ASC' );//get_terms(TAXONAME, array('hide_empty' => false));
 				if ( $listlanguages ) {
 	     			foreach ($listlanguages as $reflanguage) {
 	     				echo '<option value="'.$reflanguage->name.'"'; 
-	     				if ($extend == $reflanguage->name) { 
+	     				if ( $default_lang == $reflanguage->name ) { 
 	     					echo ' selected="selected"';
 	     				} 
 	     				echo ">".__($reflanguage->description,'xili-dictionary').'</option>';	
@@ -2726,11 +2791,12 @@
 	 */
 	function on_normal_3_content( $data ) { 
 		extract( $data );
+		$default_lang_get = ( defined ('WPLANG') ) ? '&amp;' . QUETAG . '=' . WPLANG : '' ;
 		?>
 <h4 id="manage_file"><?php _e('The files','xili-dictionary') ;?></h4>
 <a class="action-button blue-button" href="<?php echo $this->xd_settings_page.'&amp;action=export'; ?>" title="<?php _e('Create or Update mo file in current theme folder','xili-dictionary') ?>"><?php _e('Export mo file','xili-dictionary') ?></a>
-&nbsp;<br /><?php _e('Import po/mo file','xili-dictionary') ?>:<a class="small-action-button" href="<?php echo $this->xd_settings_page.'&amp;action=import'; ?>" title="<?php _e('Import an existing .po file from current theme folder','xili-dictionary') ?>">PO</a>
-<a class="small-action-button" href="<?php echo $this->xd_settings_page.'&amp;action=importmo'; ?>" title="<?php _e('Import an existing .mo file from current theme folder','xili-dictionary') ?>">MO</a><br />
+&nbsp;<br /><?php _e('Import po/mo file','xili-dictionary') ?>:<a class="small-action-button" href="edit.php?post_type=<?php echo XDMSG ?>&amp;page=import_dictionary_page&amp;extend=po<?php echo$default_lang_get ?>" title="<?php _e('Import an existing .po file from current theme folder','xili-dictionary') ?>">PO</a>
+<a class="small-action-button" href="edit.php?post_type=<?php echo XDMSG ?>&amp;page=import_dictionary_page&amp;extend=mo<?php echo$default_lang_get ?>" title="<?php _e('Import an existing .mo file from current theme folder','xili-dictionary') ?>">MO</a><br />
 &nbsp;<br /><a class="action-button grey-button" href="<?php echo $this->xd_settings_page.'&amp;action=exportpo'; ?>" title="<?php _e('Create or Update po file in current theme folder','xili-dictionary') ?>"><?php _e('Export po file','xili-dictionary') ?></a>
 
 <h4 id="manage_categories"><?php _e('The taxonomies','xili-dictionary') ;?></h4>
@@ -2742,8 +2808,9 @@
 	   	} ?>
 <a class="action-button blue-button" href="<?php echo $this->xd_settings_page.'&amp;action=importbloginfos'; ?>" title="<?php _e('Import infos of web site and more','xili-dictionary') ?>"><?php _e("Import terms of website's infos",'xili-dictionary') ?></a>
 
-	<h4 id="manage_dictionary"><?php _e('Dictionary','xili-dictionary') ;?></h4>
-   		<a class="action-button grey-button" href="?post_type=xdmsg&action=erasedictionary&amp;page=dictionary_page" title="<?php _e('Erase all terms of dictionary ! (but not .mo or .po files)','xili-dictionary') ?>"><?php _e('Erase all terms','xili-dictionary') ?></a>
+<h4 id="manage_dictionary"><?php _e('Dictionary in database','xili-dictionary') ;?></h4>
+   	<a class="action-button grey-button" href="edit.php?post_type=<?php echo XDMSG ?>&amp;page=erase_dictionary_page" title="<?php _e('Erase selected terms of dictionary ! (but not .mo or .po files)','xili-dictionary') ?>"><?php _e('Erase (selection of) terms','xili-dictionary') ?></a>
+   	<a class="action-button grey-button" href="<?php echo $this->xd_settings_page.'&amp;action=importcurthemeterms'; ?>" title="<?php _e('Import terms for current theme files','xili-dictionary') ?>"><?php _e('Import terms from source files','xili-dictionary') ?></a>
 	
 	<?php // erase and import theme 
 	}
@@ -3082,7 +3149,7 @@
 		     		
 		     		$mo = $this->from_cpt_to_POMO ( $selectlang, 'mo', $extract_array );
 		     	}
-		     	if ( count ($mo->entries) > 0 ){ // 2.2
+		     	if ( isset ( $mo ) && count ($mo->entries) > 0 ){ // 2.2
 		     		if ( false === $this->Save_MO_to_file ($selectlang , $mo, $file ) ) { 
 		     			$message .= $file.' '.sprintf(__('error during exporting in %2s %1s.mo file.','xili-dictionary'), $selectlang, $local);
 		     		} else {
@@ -3327,12 +3394,12 @@
 		    
 		 case 'importcurthemeterms';
 		 	$actiontype = "importingcurthemeterms";
-		    $formtitle = __('Import all terms from current theme','xili-dictionary');
-		    $formhow = __('To import terms of the current theme, click below.','xili-dictionary');
+		    $formtitle = __('Import all terms from current theme source','xili-dictionary');
+		    $formhow = __('<em>Only use this possibility if no po, pot or mo file are provided by the theme maker. (this importer is experimental and only detect the I10n functions</em> __( , _e( , _x( , _ex( , _n( and _nx( ). <br /> To import terms of the current theme source files, click below.','xili-dictionary');
 			$submit_text = __('Import all terms &raquo;','xili-dictionary'); 
 			
 			$this->tempoutput = '<strong>'.__('List of scanned files:','xili-dictionary').'</strong><br />';
-			$themeterms = $this->scan_import_theme_terms(array(&$this,'build_scanned_files'),2);
+			$themeterms = $this->scan_import_theme_terms( array(&$this,'build_scanned_files'), 2 );
 			$formhow = $this->tempoutput.'<br /><br /><strong>'.$formhow .'</strong>';
 			
 		    break;
@@ -3340,17 +3407,19 @@
 		 case 'importingcurthemeterms';   // temporary inactive 2.1
 		    $actiontype = "add";
 		    $message .= ' '.__('All terms imported !','xili-dictionary'); $msg = 5 ;
-		    	$themeterms = $this->scan_import_theme_terms(array(&$this,'build_scanned_files'),0);
-		    if (is_array($themeterms)) {
-				//$nbterms = $this->xili_importthemeterms_in_tables($themeterms); 
+		    	$themeterms = $this->scan_import_theme_terms( array(&$this,'build_scanned_files'), 0 );
+		    if ( is_array( $themeterms ) && $themeterms != array() ) {
+				$nbterms = $this->import_theme_terms ( $themeterms ); 
 				$message .= __('terms = ','xili-dictionary').$nbterms;
 			} else {
 				$message .= ' '.$readfile.__('theme’s terms pbs!','xili-dictionary');
 			}
-		    break;  
+		    break;
+		      
 	     case 'reset';    
 			    $actiontype = "add";
-			    break;    
+			break;
+			    
 		default:
 		    $actiontype = "add";
 		    $message .= ' '.__('Find below the list of terms.','xili-dictionary');
@@ -3373,7 +3442,7 @@
 		$themessages[2] = __('A term was updated.','xili-dictionary');
 		$themessages[3] = __('A term was deleted.','xili-dictionary');
 		$themessages[4] = __('terms imported from WP: ','xili-dictionary') . $message;
-		$themessages[5] = __('All terms imported !','xili-dictionary');
+		$themessages[5] = __('All terms imported !','xili-dictionary') . '('.$message.')';
 		$themessages[6] = 'beta testing log: '.$message ;
 		$themessages[7] = __('All terms erased !','xili-dictionary');
 		$themessages[8] = __('Error when adding !','xili-dictionary');
@@ -3820,10 +3889,12 @@
 				$t = ( $lang == $theme_name ) ? 't': ''; /* from UI to select .pot */
 		}
 		
+		$langfolder = $this->get_langfolder(); // 2.3
+		
 		if ( $local == false ) {
-			$pofile = $this->get_template_directory.$this->langfolder.$lang.'.po'.$t;
+			$pofile = $this->get_template_directory.$langfolder.$lang.'.po'.$t;
 		} else {
-			$pofile = $this->get_template_directory.$this->langfolder.'local-'.$lang.'.po'; // fixed 2.1.1
+			$pofile = $this->get_template_directory.$langfolder.'local-'.$lang.'.po'; // fixed 2.1.1
 		}
 		
 		if ( file_exists( $pofile ) ) { 
@@ -3837,6 +3908,76 @@
 		}
 	}
 	
+	function get_langfolder() {
+		$xili_settings = get_option('xili_dictionary_settings');
+		$langfolderset = $xili_settings['langs_folder'];
+		$full_folder = ( $langfolderset !='' )  ? $langfolderset.'/' : '/';
+		return $full_folder ;
+	}
+	
+	/**
+	 * Import POMO file in respective class
+	 *
+	 *
+	 * @since 2.3 
+	 */
+	function import_POMO ( $extend = 'po',  $lang = 'en_US', $local = '' , $pomofile = '', $multilocal = true ) {
+		if ( in_array ( $extend, array ( 'po', 'mo') ) ) {
+		
+			if ( $extend == 'po' ) {
+				$pomo = new PO();
+				
+				if ( function_exists('the_theme_domain') ) { // xili-language detect it
+					if ( $lang == the_theme_domain() ) $extend = 'pot'; 
+				} else {
+					if ( function_exists('is_child_theme') && is_child_theme() ) { // 1.8.1 and WP 3.0
+						$theme_name = get_option("stylesheet"); 
+					} else {
+						$theme_name = get_option("template"); 
+					}
+					if ( $lang == $theme_name ) $extend = 'pot' ; /* from UI to select .pot */
+				}
+				
+			} else {
+				$pomo = new MO();
+			}
+			$path = "";
+			$langfolder = $this->get_langfolder();
+			if ( is_multisite() && $multilocal ) {
+				if ( ( $uploads = wp_upload_dir() ) && false === $uploads['error'] ) {
+					$path = $uploads['basedir']."/languages/";
+	 			}
+			} else {
+				$path = $this->get_template_directory . $langfolder;
+			}
+			if ( $pomofile == "" &&  $local != '' ) {
+				
+				$pomofile =  $path . $local . '-' . $lang. '.' . $extend ;
+								
+			} else if ( '' == $pomofile ) {
+				
+				$pomofile = $path . $lang . '.' . $extend ;
+				
+			}
+			
+			if ( file_exists( $pomofile ) ) {
+				if ( !$pomo->import_from_file( $pomofile ) ) {
+					return false;
+				} else { 
+					return $pomo;
+				}
+			} else {
+				return false;
+			}
+			
+		
+		} else {
+			return false;	
+		}
+	
+	}
+
+		
 	/**
 	 * Import MO file in class PO 
 	 *
@@ -4694,6 +4835,43 @@
 		$this->importing_mode = false ;
 		return $nbnames;
 	}
+	
+	function import_theme_terms ( $id_terms ) {
+		$count = 0;
+		if ( function_exists('the_theme_domain') ) {// in new xili-language
+	   		$theme = the_theme_domain() ;
+		} else {
+			$theme = $this->get_theme_name(false) ;	
+		}
+		
+		foreach ( $id_terms as $one_term ) {
+			$context = ( isset($one_term['ctxt'] ) ) ? $one_term['ctxt'] : null ;
+			$t_entry = array();
+			$t_entry['extracted_comments'] = sprintf ( 'From theme %s', $theme ) ;
+			$entry = (object) $t_entry ;
+			if ( isset( $one_term['plural'] ) ) {
+				$result = $this->msgid_exists ( $one_term['msgid'], $context ) ;
+				if ( $result === false ) {
+					$msgid_post_ID = $this->insert_one_cpt_and_meta( $one_term['msgid'], $context, 'msgid', 0, $entry ) ;
+					$count++;
+				}
+				$result = $this->msgid_exists ( $one_term['plural'], $context ) ;
+				if ( $result === false ) {
+					$msgid_plural_post_ID = $this->insert_one_cpt_and_meta( $one_term['plural'], $context, 'msgid_plural', $msgid_post_ID, $entry ) ;
+					$count++;
+				}
+				
+			
+			} else {
+				$result = $this->msgid_exists ( $one_term['msgid'] ) ;
+				if ( $result === false ) {
+					$msgid_post_ID = $this->insert_one_cpt_and_meta( $one_term['msgid'], $context, 'msgid', 0, $entry ) ;
+					$count++;
+				} 
+			}
+		}
+		return $count;
+	}
 		
 	/**
 	 * Scan terms in themes files
@@ -4726,27 +4904,94 @@
 					$lines = @file( $path.'/'.$themefile); 
 		 			$t=0;
 					foreach ($lines as $line) { 
-						$i = preg_match_all("/_[_e]\('(.*)', ?'/Ui", $line, $matches,PREG_PATTERN_ORDER);
+						
+						$i = preg_match_all("/_[_e]\(( *)['\"](.*)['\"],( *)['\"]/Ui", $line, $matches, PREG_PATTERN_ORDER ); //' only single //2.3
 	 					if ($i > 0) { 
-							$resultterms = array_merge ($resultterms, $matches[1]);
+	 						$line_terms = array();
+	 						foreach ( $matches[2] as $one_match ) {
+	 							$line_terms[] = array ( 'msgid' => $one_match );
+	 						}
+	 						
+							$resultterms = array_merge ( $resultterms, $line_terms);
+							$t += $i; 
+						}
+						// single context
+						$i = preg_match_all("/_(e*)x\(( *)['\"](.*)['\"],( *)['\"](.*)['\"]/Ui", $line, $matches, PREG_PATTERN_ORDER ); //'' only single //2.3
+	 					if ($i > 0) { 
+	 						$line_terms = array();
+	 						foreach ( $matches[3] as $key => $one_match ) {
+	 							$line_terms[] = array ( 'msgid' => $one_match, 'ctxt' => $matches[5][$key] );
+	 							//error_log ( '---xxxx---'. $matches[5][$key] ) ;
+	 						}
+	 						
+							$resultterms = array_merge ( $resultterms, $line_terms);
 							$t += $i; 
 						}
+						
+						// plural function _n( $single, $plural, $number, $domain = 'default' ) 
+						$i = preg_match_all("/_n\(( *)['\"](.*)['\"],( *)['\"](.*)['\"]/Ui", $line, $matches, PREG_PATTERN_ORDER ); //'' only single //2.3
+	 					if ($i > 0) { 
+	 						$line_terms = array();
+	 						foreach ( $matches[2] as $key => $one_match ) {
+	 							$line_terms[] = array ( 'msgid' => $one_match, 'plural' => $matches[4][$key] );
+	 							//error_log ( '---nnn---'. $matches[4][$key] ) ;
+	 						}
+	 						
+							$resultterms = array_merge ( $resultterms, $line_terms);
+							$t += $i; 
+						}
+						
+						// plural context function _nx($single, $plural, $number, $context, $domain = 'default') 
+						$i = preg_match_all("/_nx\(( *)['\"](.*)['\"],( *)['\"](.*)['\"],(.*),( *)['\"](.*)['\"]/Ui", $line, $matches, PREG_PATTERN_ORDER ); //'' only single //2.3
+	 					if ($i > 0) { 
+	 						$line_terms = array();
+	 						foreach ( $matches[2] as $key => $one_match ) {
+	 							$line_terms[] = array ( 'msgid' => $one_match, 'plural' => $matches[4][$key], 'ctxt' => $matches[7][$key] );
+	 							//error_log ( '---nnn'.$matches[4][$key].'xxx---'. $matches[7][$key] ) ;
+	 						}
+	 						
+							$resultterms = array_merge ( $resultterms, $line_terms);
+							$t += $i; 
+						}
+						
+						
 			 		}
 					if ($display >= 1) 
 						call_user_func($callback, $themefile, $t);
 				} 
 		 }
-		if ($display == 2) 
-			call_user_func($callback, $themefile, $t, $resultterms);
+		 
+		$result_terms = ( $resultterms != array() ) ?  $this->super_unique($resultterms) : array() ;
+		if ( $display == 2 )  
+			call_user_func($callback, $themefile, $t, $result_terms);
 			
-		return $resultterms;
+		return $result_terms;
 	}
-	function build_scanned_files ($themefile, $t, $resultterms = array()) {
-		if ($resultterms == array()) {
+	
+	/* in comment http://fr2.php.net/manual/en/function.array-unique.php */
+	function super_unique($array) {
+  		$result = array_map("unserialize", array_unique(array_map("serialize", $array)));
+
+  		foreach ($result as $key => $value) {
+    		if ( is_array($value) )
+    		{
+      			$result[$key] = $this->super_unique($value);
+    		}
+  		}
+
+  		return $result;
+	}
+	
+	function build_scanned_files ( $themefile, $t, $resultterms = array() ) {
+		if ( $resultterms == array() ) {
 			$this->tempoutput .= "- ".$themefile." (".$t.") ";
 		} else {
 			$this->tempoutput .= "<br /><strong>".__('List of found terms','xili-dictionary').": </strong><br />";
-			$this->tempoutput .= implode (', ',$resultterms);
+			$resultterms_msgid = array();
+			foreach ( $resultterms as $resultterm ) {
+				$resultterms_msgid[] = htmlspecialchars($resultterm['msgid']);
+			}
+			$this->tempoutput .= implode ( ', ', $resultterms_msgid );
 		}
 	}
 	
@@ -5029,6 +5274,1136 @@
 		}
 		if ( defined ( "WP_DEBUG" ) && WP_DEBUG == true ) error_log (  'XD MSG - Updated 2.0->2.1 '.count($i) ) ;
 	}
+	
+	/****************** NEW ADMIN UI *******************/
+	/** since 2.3 **/
+	
+	function admin_menus() {
+
+		$hooks = array();
+		
+		$hooks[] = add_submenu_page('edit.php?post_type='.XDMSG,
+				__( 'Erasing',  'xili-dictionary' ),
+				__( 'Erase',  'xili-dictionary' ),
+				'import', 
+				'erase_dictionary_page', array(&$this,'xili_dictionary_erase')
+			);
+		$hooks[] = add_submenu_page('edit.php?post_type='.XDMSG,
+				__( 'Importing files',  'xili-dictionary' ),
+				__( 'Import',  'xili-dictionary' ),
+				'import', 
+				'import_dictionary_page', array(&$this,'xili_dictionary_import')
+			);	
+			
+		// Fudge the highlighted subnav item when on a XD admin page
+		foreach( $hooks as $hook ) {
+			add_action( "admin_head-$hook", array(&$this,'modify_menu_highlight' ));
+		}
+	
+	}
+	function admin_sub_menus_hide () {
+		
+		remove_submenu_page( 'edit.php?post_type='.XDMSG, 'erase_dictionary_page'    );
+		remove_submenu_page( 'edit.php?post_type='.XDMSG, 'import_dictionary_page' );
+		
+	
+	}
+	
+	function modify_menu_highlight() {
+		global $plugin_page, $submenu_file;
+		
+		// This tweaks the Tools subnav menu to only show one XD menu item
+		if ( in_array( $plugin_page, array( 'erase_dictionary_page', 'import_dictionary_page' ) ) )
+			$submenu_file = 'dictionary_page';
+	}
+	
+	/**
+ 	* Main settings section description for the settings page
+ 	*
+ 	* @since 
+ 	*/
+	function xd_erasing_setting_callback_main_section() {
+?>
+
+		<p><?php _e( "Here it now possible to erase your dictionary (here in WP database) after creating the .mo files (and saving the .po files which is readable with any text editor). <strong>This erasing process don't delete the .mo or .po files.</strong>", 'xili-dictionary' ); ?></p>
+
+	<?php
+	}
+	
+	function xd_sub_selection__setting_callback_row() {
+		?>
+		<div class="sub-field">
+			<input id="_xd_local" name="_xd_local" type="checkbox" id="_xd_local" value="local" <?php checked( ( 'local' == 'local' ) ); ?> />
+			<label for="_xd_local"><?php _e( 'Locale msgs only', 'xili-dictionary' ); ?></label>
+			<p class="description"><?php _e( 'Erase only locale msgs (as saved in local-xx_YY files)', 'xili-dictionary' ); ?></p>
+		</div>
+		<?php
+		
+		$listlanguages = $this->get_terms_of_groups_lite ( $this->langs_group_id, TAXOLANGSGROUP,TAXONAME, 'ASC' ); //get_terms(TAXONAME, array('hide_empty' => false));
+			?>
+		<div class="sub-field">
+			<label for="_xd_lang"><?php _e( 'Terms (msgid / msgstr) to erase', 'xili-dictionary' ); ?>:&nbsp;</label>
+	<select name="_xd_lang" id="_xd_lang" class='postform'>
+		<option value=""> <?php _e('Original (msgid) and translations or Select language...','xili-dictionary') ?> </option>
+		<option value="all-lang"> <?php _e('Translations  (msgstr) in all languages','xili-dictionary') ?> </option>		
+				<?php 
+				foreach ($listlanguages as $language)  {
+					$selected = ( isset ( $_GET[QUETAG] ) && $language->name == $_GET[QUETAG] ) ? "selected=selected" : "" ;
+					echo '<option value="'.$language->name.'" '.$selected.' >'. sprintf(__('Translations (msgstr) in %s','xili-dictionary'), __($language->description, 'xili-dictionary')).'</option>';
+				}
+				
+				?>
+	</select>
+	<p class="description"><?php _e( 'Language of the translated terms to be erased. Without selection, Original (msgid) AND translation (msgstr) will both be erased.', 'xili-dictionary' ); ?></p>
+	</div>
+	<div class="sub-field">
+		<?php
+		
+		if ( is_child_theme() ) { 
+			$cur_theme_name = get_option("stylesheet"); 
+		} else {
+			$cur_theme_name = get_option("template"); 
+		}	
+		$listterms = get_terms( 'origin', array('hide_empty' => false) );	
+		echo '<div class="dialogorigin">'; 
+		if ( $listterms ) {
+			$checkline = __ ( 'Check Origin(s) to be erased', 'xili-dictionary' ).':<br />';
+			$i = 0;
+			echo '<table class="checktheme" ><tr>';
+			foreach ( $listterms as $onetheme) {
+				$checked = ( $onetheme->name == $cur_theme_name ) ? 'checked="checked"'  : '' ;
+				$checkline .= '<td><input type="checkbox" '. $checked .' id="theme-'.$onetheme->term_id.'" name="theme-'.$onetheme->term_id.'" value="'.$onetheme->slug.'" />&nbsp;' . $onetheme->name .'</td>';
+				$i++;
+				if ( ($i % 2) == 0 ) $checkline .= '</tr><tr>';
+			}
+			echo $checkline.'</tr></table>';
+		}
+		echo '</div>'; ?>
+	<p class="description"><?php _e( 'Origins of the msgs to be erased. Without selection, msg without origin will be erased', 'xili-dictionary' ); ?></p>
+	</div>
+	
+	<?php }
+	
+	function xd_erasing_setting_callback_row() {
+	?>
+
+		<input name="_xd_looping_rows" type="text" id="_xd_looping_rows" value="50" class="small-text" />
+		<label for="_xd_looping_rows"><?php _e( 'Number of entries in one step', 'xili-dictionary' ); ?></label>
+
+	<?php
+	}
+	
+	/**
+ * Edit Delay Time setting field
+ *
+ * @since 
+ */
+	function xd_erasing_setting_callback_delay_time() {
+?>
+
+	<input name="_xd_looping_delay_time" type="text" id="_xd_looping_delay_time" value=".5" class="small-text" />
+	<label for="_xd_looping_delay_time"><?php _e( 'second(s) delay between each group of rows', 'xili-dictionary' ); ?></label>
+	<p class="description"><?php _e( 'Keep this high to prevent too-many-connection issues.', 'xili-dictionary' ); ?></p>
+
+<?php
+}
+
+	function xd_erasing_init_settings () {
+		add_settings_section( 'xd_erasing_main',     __( 'Erasing the dictionary', 'xili-dictionary' ),  array(&$this,'xd_erasing_setting_callback_main_section'), 'xd_erasing' );
+
+		// erasing sub-selections
+		add_settings_field( '_xd_sub_selection', __( 'What to erase ?', 'xili-dictionary' ),  array(&$this,'xd_sub_selection__setting_callback_row'), 'xd_erasing', 'xd_erasing_main' );
+		register_setting( 'xd_erasing_main', '_xd_sub_selection', '_xd_sub_selection_define' );
+		
+		// ajax section
+		add_settings_section( 'xd_erasing_tech',     __( 'Technical settings', 'xili-dictionary' ),  array(&$this,'xd_setting_callback_tech_section'), 'xd_erasing' );
+		
+		// erasing rows step
+		add_settings_field( '_xd_looping_rows', __( 'Entries step', 'xili-dictionary' ),  array(&$this,'xd_erasing_setting_callback_row'), 'xd_erasing', 'xd_erasing_tech' );
+		register_setting( 'xd_erasing_tech', '_xd_looping_rows', 'sanitize_title' );
+		
+		// Delay Time
+		add_settings_field( '_xd_looping_delay_time', __( 'Delay Time', 'xili-dictionary' ), array(&$this,'xd_erasing_setting_callback_delay_time'), 'xd_erasing', 'xd_erasing_tech' );
+		register_setting  ( 'xd_erasing_tech', '_xd_looping_delay_time', 'intval' );
+
+		
+	}
+	
+	function xili_dictionary_erase() { 
+	?>
+
+	<div class="wrap">
+
+		<?php screen_icon( 'tools' ); ?>
+
+		<h2 class="nav-tab-wrapper"><?php _e( 'Erasing Dictionary lines',  'xili-dictionary' ); ?></h2>
+
+		<form action="#" method="post" id="xd-looping-settings">
+
+			<?php settings_fields( 'xd_erasing' ); delete_option( '_xd_erasing_step'); // echo get_option( '_xd_erasing_step', 1 ); ?>
+
+			<?php do_settings_sections( 'xd_erasing' ); ?>
+			<h4 class="link-back"><?php printf(__('<a href="%s">Back</a> to the list of msgs and tools','xili-dictionary'), admin_url() . 'edit.php?post_type='.XDMSG.'&page=dictionary_page' ); ?></h4>
+			<p class="submit">
+				<input type="button" name="submit" class="button-primary" id="xd-looping-start" value="<?php _e( 'Start erasing', 'xili-dictionary' ); ?>" onclick="xd_erasing_start()" />
+				<input type="button" name="submit" class="button-primary" id="xd-looping-stop" value="<?php _e( 'Stop', 'xili-dictionary' ); ?>" onclick="xd_looping_stop()" />
+				<img id="xd-looping-progress" src="">
+			</p>
+
+			<div class="xd-looping-updated" id="xd-looping-message"></div>
+		</form>
+	</div>
+	
+	<?php
+	}
+	
+	function admin_head() {
+		
+		?>
+		<script language="javascript">
+
+			var xd_looping_is_running = false;
+			var xd_looping_run_timer;
+			var xd_looping_delay_time = 0;
+			
+			function xd_importing_grab_data() {
+				var values = {};
+				jQuery.each(jQuery('#xd-looping-settings').serializeArray(), function(i, field) {
+					values[field.name] = field.value;
+				});
+
+				if( values['_xd_looping_restart'] ) {
+					jQuery('#_xd_looping_restart').removeAttr("checked");
+				}
+
+				if( values['_xd_looping_delay_time'] ) {
+					xd_looping_delay_time = values['_xd_looping_delay_time'] * 1000;
+				}
+				
+				values['action'] = 'xd_importing_process';
+				values['_ajax_nonce'] = '<?php echo  wp_create_nonce( 'xd_importing_process' ); ?>';
+
+				return values;
+			}
+
+			function xd_importing_start() {
+				if( false == xd_looping_is_running ) {
+					xd_looping_is_running = true;
+					jQuery('#xd-looping-start').hide();
+					jQuery('#xd-looping-stop').show();
+					jQuery('#xd-looping-progress').show();
+					xd_looping_log( '<p class="loading"><?php echo esc_js(__( 'Starting Importing', 'xili-dictionary' )); ?></p>' ); 
+					xd_importing_run();
+				}
+			}
+
+			function xd_importing_run() {
+				jQuery.post(ajaxurl, xd_importing_grab_data(), function(response) {
+					var response_length = response.length - 1;
+					response = response.substring(0,response_length);
+					xd_importing_success(response);
+				});
+			}
+
+			function xd_importing_success(response) {
+				xd_looping_log(response);
+				var possuccess = response.indexOf ("success",0);
+				var poserror = response.indexOf ("error",0);
+				if ( possuccess != -1 || poserror != -1 || response.indexOf('error') > -1 ) {
+					xd_looping_log('<p><?php echo esc_js(__("Go to the list of msgs:","xili-dictionary")); ?> <a href="<?php echo admin_url(); ?>edit.php?post_type=<?php echo XDMSG ?>&page=dictionary_page">Continue</a></p>');
+					
+					xd_looping_stop();
+				} else if( xd_looping_is_running ) { // keep going
+					jQuery('#xd-looping-progress').show();
+					clearTimeout( xd_looping_run_timer );
+					xd_looping_run_timer = setTimeout( 'xd_importing_run()', xd_looping_delay_time );
+				} else {
+					
+					xd_looping_stop();
+				}
+			}
+			
+			
+			function xd_erasing_grab_data() {
+				var values = {};
+				jQuery.each(jQuery('#xd-looping-settings').serializeArray(), function(i, field) {
+					values[field.name] = field.value;
+				});
+
+				if( values['_xd_looping_restart'] ) {
+					jQuery('#_xd_looping_restart').removeAttr("checked");
+				}
+
+				if( values['_xd_looping_delay_time'] ) {
+					xd_looping_delay_time = values['_xd_looping_delay_time'] * 1000;
+				}
+				
+				values['action'] = 'xd_erasing_process';
+				values['_ajax_nonce'] = '<?php echo  wp_create_nonce( 'xd_erasing_process' ); ?>';
+
+				return values;
+			}
+			
+			
+
+			function xd_erasing_start() {
+				if( false == xd_looping_is_running ) {
+					xd_looping_is_running = true;
+					jQuery('#xd-looping-start').hide();
+					jQuery('#xd-looping-stop').show();
+					jQuery('#xd-looping-progress').show();
+					xd_looping_log( '<p class="loading"><?php echo esc_js( __( 'Starting Erasing', 'xili-dictionary' ) ) ; ?></p>' );
+					xd_erasing_run();
+				}
+			}
+			
+			function xd_erasing_run() {
+				jQuery.post(ajaxurl, xd_erasing_grab_data(), function(response) {
+					var response_length = response.length - 1;
+					response = response.substring(0,response_length);
+					xd_erasing_success(response);
+				});
+			}
+
+			function xd_erasing_success(response) {
+				xd_looping_log(response);
+				var possuccess = response.indexOf ("success",0);
+				var poserror = response.indexOf ("error",0);
+				if ( possuccess != -1 || poserror != -1 || response.indexOf('error') > -1 ) {
+					xd_looping_log('<p><?php echo esc_js(__("Go to the list of msgs:","xili-dictionary")); ?> <a href="<?php echo admin_url(); ?>edit.php?post_type=<?php echo XDMSG ?>&page=dictionary_page">Continue</a></p>');
+					xd_looping_stop();
+				} else if( xd_looping_is_running ) { // keep going
+					jQuery('#xd-looping-progress').show();
+					clearTimeout( xd_looping_run_timer );
+					xd_looping_run_timer = setTimeout( 'xd_erasing_run()', xd_looping_delay_time );
+				} else {
+					xd_looping_stop();
+				}
+			}
+
+			function xd_looping_stop() {
+				jQuery('#xd-looping-start').show();
+				jQuery('#xd-looping-stop').hide();
+				jQuery('#xd-looping-progress').hide();
+				jQuery('#xd-looping-message p').removeClass( 'loading' );
+				xd_looping_is_running = false;
+				clearTimeout( xd_looping_run_timer );
+			}
+
+			function xd_looping_log(text) {
+				if ( jQuery('#xd-looping-message').css('display') == 'none' ) {
+					jQuery('#xd-looping-message').show();
+				}
+				if ( text ) {
+					jQuery('#xd-looping-message p').removeClass( 'loading' );
+					jQuery('#xd-looping-message').prepend( text );
+				}
+			}
+
+		</script>
+		<style type="text/css" media="screen">
+			/*<![CDATA[*/
+
+			div.xd-looping-updated,
+			div.xd-looping-warning {
+				border-radius: 3px 3px 3px 3px;
+				border-style: solid;
+				border-width: 1px;
+				padding: 5px 5px 5px 5px;
+			}
+
+			div.xd-looping-updated {
+				height: 300px;
+				overflow: auto;
+				display: none;
+				background-color: #FFFFE0;
+				border-color: #E6DB55;
+				font-family: monospace;
+				font-weight: bold;
+			}
+
+			div.xd-looping-updated p {
+				margin: 0.5em 0;
+				padding: 2px;
+				float: left;
+				clear: left;
+			}
+
+			div.xd-looping-updated p.loading {
+				padding: 2px 20px 2px 2px;
+				background-image: url('<?php echo admin_url(); ?>images/wpspin_light.gif');
+				background-repeat: no-repeat;
+				background-position: center right;
+			}
+
+			#xd-looping-stop {
+				display:none;
+			}
+
+			#xd-looping-progress {
+				display:none;
+			}
+
+			/*]]>*/
+		</style>
+		
+		<?php
+	}
+	
+	
+	function erasing_process_callback() {
+		
+		check_ajax_referer( 'xd_erasing_process' );
+		
+		if ( ! ini_get( 'safe_mode' ) ) {
+			set_time_limit( 0 );
+			ini_set( 'memory_limit',   '256M' );
+			ini_set( 'implicit_flush', '1'    );
+			ignore_user_abort( true );
+		}
+		
+		// Save step and count so that it can be restarted.
+		if ( ! get_option( '_xd_erasing_step' ) ) {
+			update_option( '_xd_erasing_step',  1 );
+			update_option( '_xd_erasing_start', 0 );
+		}
+
+		$step  = (int) get_option( '_xd_erasing_step',  1 );
+		$min   = (int) get_option( '_xd_erasing_start', 0 );
+		$count = (int) ! empty( $_POST['_xd_looping_rows'] ) ? $_POST['_xd_looping_rows'] : 50;
+		$max   = ( $min + $count ) - 1;
+		$start = $min;
+		
+		
+		switch ( $step ) {
+
+			// STEP 1. Prepare and count.
+			case 1 :
+				$count_lines = $this->caching_msgs_to_erase ( );
+				
+				if ( $count_lines > 0 ) {
+					update_option( '_xd_erasing_step',  $step + 1 );
+					update_option( '_xd_erasing_start', 0         );
+					update_option( '_xd_erasing_count_lines', $count_lines );
+					$this->looping_output( sprintf( __('Lines found ! ( %2$s lines)', 'xili-dictionary' ), '', $count_lines ) );
+					
+				} else {
+					delete_option( '_xd_erasing_step'  );
+					delete_option( '_xd_erasing_start' );
+					delete_option( '_xd_erasing_count_lines' );
+					delete_option( '_xd_deletion_type' );
+					delete_option ( '_xd_cache_temp_array_IDs' );
+					$this->looping_output( __( 'No msgs to erase', 'xili-dictionary' ), 'error' );
+					
+				}
+				break;
+			// STEP 2. Loop 	
+			case 2 :
+				$count_lines = get_option( '_xd_erasing_count_lines', $max + 1 );
+				//error_log ('---- count-lines='. $count_lines .', start='. $start );
+				$back = $this->erasing_msgs( $start );
+				if ( in_array( $back , array( 'no-list', 'loop-over', 'loop-full' ) ) ) {
+					update_option( '_xd_erasing_step',  $step + 1 );
+					update_option( '_xd_erasing_start', 0         );
+					if ( empty( $start ) || $back == 'no-list' ) {
+						
+						if ( 'loop-full' == $back ) {
+							$this->looping_output( sprintf(__( 'No more msgs to erase (%s)', 'xili-dictionary' ), $back ) , 'loading' );
+						} else {
+							$this->looping_output( sprintf(__( 'No msgs to erase (%s)', 'xili-dictionary' ), $back ) , 'error' );
+						
+						}
+					}
+						
+				} else {
+					
+					update_option( '_xd_erasing_start', $max + 1 );
+					
+					$count_lines = get_option( '_xd_erasing_count_lines', $max + 1 );
+					$end = ( $count_lines > $max  ) ? $max + 1 : $count_lines ;
+					
+					$this->looping_output( sprintf( __( 'Erasing msgs (%1$s - %2$s)', 'xili-dictionary' ), $min, $end ), 'loading' );
+					
+				}
+			
+				break;
+				
+				
+			default:
+				$count_lines = get_option( '_xd_erasing_count_lines', $max + 1 );
+				delete_option( '_xd_erasing_step'  );
+				delete_option( '_xd_erasing_start' );				
+				delete_option( '_xd_erasing_count_lines');
+				delete_option( '_xd_deletion_type' );
+				delete_option ( '_xd_cache_temp_array_IDs' );
+				
+				$this->looping_output( sprintf( __( 'Erasing Complete (%1$s)', 'xili-dictionary' ), $count_lines ), 'success' );
+				break;
+				
+		}
+	}
+	
+	private static function looping_output( $output = '', $type = '' ) {
+		
+		switch ( $type ) {
+			
+			case 'success':
+				$class = ' class="success"';
+				break;
+			case 'error':
+				$class = ' class="error"';
+				break;	
+			default:
+				$class = ' class="loading"';
+				break;
+		}
+		
+		// Get the last query
+		$before = "<p$class>";
+		$after  = '</p>';
+		//$query  = get_option( '_xd_erasing_query' );
+
+		//if ( ! empty( $query ) )
+			//$before = '<p class="loading" title="' . esc_attr( $query ) . '">';
+
+		echo $before . $output . $after;
+	}
+	
+	private static function erasing_msgs ( $start ) {
+		global $xili_dictionary;
+		// $listdictiolines = $xili_dictionary->get_msgs_to_erase ( $start );
+		$id_list = get_option ( '_xd_cache_temp_array_IDs' );
+		if ( $id_list ) { //$listdictiolines 
+		
+		
+			$count = (int) ! empty( $_POST['_xd_looping_rows'] ) ? $_POST['_xd_looping_rows'] : 50;
+		
+			$only_local = ( isset ( $_POST['_xd_local'] ) ) ? true : false ;
+		
+			$selected_lang = ( isset ( $_POST['_xd_lang'] ) ) ? $_POST['_xd_lang'] : "" ;
+			
+			$deletion_type = get_option( '_xd_deletion_type' );
+			
+	 		// loop
+	 		$count_lines = count( $id_list );
+	 		//error_log ('type='. $deletion_type . ', count-lines='. $count_lines .', start='.$start);
+	 		$i = 0;
+	 		foreach ( $id_list as $one_id ) {
+	 			// to exit loop when only ids remain in loop
+	 			//if ( in_array( $deletion_type , array ( 'all_str', 'only_local' ) ) ) {
+	 				$i++;
+					if ( $i < $start ) continue;
+					if ( $i > ($start + $count) - 1 ) return 'loop';
+					if ( $i > $count_lines  ) return 'loop-over';
+	 			//}
+	 			//error_log ('count='.$count . ' one_id='. $one_id . ', i='. $i );
+	 			$res = get_post_meta ( $one_id, $xili_dictionary->msglang_meta, false );
+				$thelangs =  ( is_array ( $res ) &&  array() != $res ) ? $res[0]  : array();
+	 			
+	 			
+	 			switch ( $deletion_type ) {
+	 				
+	 				case 'all':
+	 					wp_delete_post( $one_id, false ) ;
+	 					break;
+	 					
+	 				case 'only_local':  // id and all str or all str
+	 				
+	 					if ( isset ( $thelangs['msgstrlangs'] ) ) {
+		 					foreach ( $thelangs['msgstrlangs'] as $curlang => $msgtr ) {
+		 						
+		 						$res = get_post_meta ( $one_id, $xili_dictionary->msgchild_meta, false ); 
+								$thechilds =  ( is_array ( $res ) &&  array() != $res  ) ? $res[0]  : array(); 
+		 						if ( isset ( $thechilds['msgid']['plural'] ) ) {
+									$msgstrs_arr = $xili_dictionary->get_cpt_msgstr( $one_id, $curlang, true ); 
+									if ( $msgstrs_arr ) {
+										foreach ( $msgstrs_arr as $msgstrs ) {
+											if ( $selected_lang == "all-lang" )
+												wp_delete_post( $msgstrs->ID, false ) ;
+										}	
+									}
+							
+								} else {
+		 						
+		 							$msgstrs = $xili_dictionary->get_cpt_msgstr( $one_id, $curlang, false ); // affiner plural
+		 				
+		 							// delete only msgstr of $oneline->ID
+		 					
+		 							if ( $msgstrs != false && $selected_lang == "all-lang" ) {
+		 								wp_delete_post( $msgstrs->ID, false ) ;
+		 							}
+								}
+		 					}
+	 					}
+	 					// clean msgid
+	 					// msgid_post_links_delete
+	 					// delete msgid - if $selected_lang == ""
+	 					if ( $selected_lang == "" ) {
+	 						wp_delete_post( $one_id, false ) ;
+	 					}
+	 					break;
+	 					
+	 				case 'str_one_lang':
+	 					
+	 					$res = get_post_meta ( $one_id, $xili_dictionary->msgchild_meta, false ); 
+						$thechilds =  ( is_array ( $res ) &&  array() != $res  ) ? $res[0]  : array(); 
+		 				if ( isset ( $thechilds['msgid']['plural'] ) ) { 
+							$msgstrs_arr = $xili_dictionary->get_cpt_msgstr( $one_id, $selected_lang, true );
+							if ( $msgstrs_arr ) {
+								foreach ( $msgstrs_arr as $msgstrs ) {
+									wp_delete_post( $msgstrs->ID, false ) ;
+								}	
+							}
+							
+						} else {
+	 					
+	 					// delete msgstr of this lang of $oneline->ID
+	 						$msgstrs = $xili_dictionary->get_cpt_msgstr( $one_id, $selected_lang, false );	
+	 					// clean msgid (inside delete_post)
+	 					
+	 					// delete str
+	 						if ( $msgstrs )
+	 							wp_delete_post( $msgstrs->ID, false ) ;
+						}
+	 					break;
+	 					
+	 				case 'all_str':
+	 					
+						 	wp_delete_post( $one_id, false ) ; // id is cleaned by delete filter				
+	
+	 					break;	
+	 			}
+	 		}
+	 		return 'loop-full';
+	 	} else {
+	 		return 'nolist';
+	 	}
+	
+	}
+	
+	function caching_msgs_to_erase ( ) {
+		
+		$list = $this->get_msgs_to_erase ( 0 ) ;
+		
+		if ( $list ) {
+			$id_list = array();
+			foreach ( $list as $one ) {
+				$id_list[] = $one->ID;
+			}
+			update_option( '_xd_cache_temp_array_IDs',  $id_list );
+			return count ( $list );
+		} else {
+			return 0;
+		}
+			
+		
+	}
+	
+	
+	private static function get_msgs_to_erase ( $start ) {
+		global $xili_dictionary;
+		// sub-selection according msg origin (theme)
+		$origins = array();
+		$listterms = get_terms( 'origin', array('hide_empty' => false) );
+		foreach ( $listterms as $onetheme) {
+			if ( isset ( $_POST[ 'theme-'.$onetheme->term_id ] )  ) {
+				$origins[] = $onetheme->slug;
+			}
+		}
+		//error_log ( serialize ( $origins ) );
+		$deletion_type = '';
+		$count = (int) ! empty( $_POST['_xd_looping_rows'] ) ? $_POST['_xd_looping_rows'] : 50;
+		
+		$only_local = ( isset ( $_POST['_xd_local'] ) ) ? true : false ;
+		
+		$selected_lang = ( isset ( $_POST['_xd_lang'] ) ) ? $_POST['_xd_lang'] : "" ;
+		
+		
+		// check origin checked
+		
+		if ( $selected_lang == "" && $only_local == false ) {
+			$query = array(
+				'numberposts' => -1, 'offset' => 0,
+				'category' => 0, 'orderby' => 'ID',
+				'order' => 'ASC', 'include' => array(),
+				'exclude' => array(), 'post_type' => XDMSG,
+				'suppress_filters' => true
+			);
+			$deletion_type = 'all';
+			
+		} else if ( ( $selected_lang == "" || $selected_lang == "all-lang" ) && $only_local == true ) {
+			
+			$query = array(
+				'numberposts' => -1, 'offset' => 0,
+				'category' => 0, 'orderby' => 'ID',
+				'order' => 'ASC', 'include' => array(),
+				'exclude' => array(), 'post_type' => XDMSG,
+				'suppress_filters' => true,
+				'meta_query' => array(
+					'relation' => 'AND',
+						array(
+							'key' => $xili_dictionary->msgtype_meta,
+							'value' => 'msgid',
+							'compare' => '='
+						),
+						array(
+							'key' => $xili_dictionary->msg_extracted_comments,
+							'value' => $xili_dictionary->local_tag,
+							'compare' => 'LIKE'
+						)
+					)
+			);
+			$deletion_type = 'only_local';
+			
+		} else if ( $selected_lang == "all-lang"  && $only_local == false ) {	
+			
+			$query = array(
+				'numberposts' => -1, 'offset' => 0,
+				'category' => 0, 'orderby' => 'ID',
+				'order' => 'ASC', 'include' => array(),
+				'exclude' => array(), 'post_type' => XDMSG,
+				'suppress_filters' => true,
+				'meta_query' => array(
+						array(
+							'key' => $xili_dictionary->msgtype_meta,
+							'value' => array( 'msgstr', 'msgstr_0', 'msgstr_1' ),
+							'compare' => 'IN'
+							)
+					)
+			);
+			
+			$deletion_type = 'all_str';
+			
+		} else if ( $selected_lang != "" && $selected_lang != "all-lang" ) {
+			
+			
+			// only msgstr
+			$query = array(
+				'numberposts' => -1, 'offset' => 0,
+				'category' => 0, 'orderby' => 'ID',
+				'order' => 'ASC', 'include' => array(),
+				'exclude' => array(), 'post_type' => XDMSG,
+				'suppress_filters' => true,
+				'meta_query' => array(
+						'relation' => 'AND',
+						array(
+							'key' => $xili_dictionary->msgtype_meta,
+							'value' => 'msgid',
+							'compare' => '='
+						),
+						array(
+							'key' => $xili_dictionary->msglang_meta,
+							'value' => $selected_lang,
+							'compare' => 'LIKE'
+						)
+					)
+			);
+			
+			if (  $only_local  ) {
+				
+				$query['meta_query'][] = array(
+							'key' => $xili_dictionary->msg_extracted_comments,
+							'value' => $xili_dictionary->local_tag,
+							'compare' => 'LIKE'
+						);
+			}
+			
+			
+			
+			$deletion_type = 'str_one_lang';
+		}
+		
+		if ( $origins != array() ) {
+				
+				if ( count ( $origins ) == 1 ) {
+					
+				 $array_tax = array(
+							'taxonomy' => 'origin',
+							'field' => 'slug',
+							'terms' => $origins[0]
+						);
+				 
+				} else {
+					
+					$array_tax = array(
+							'taxonomy' => 'origin',
+							'field' => 'slug',
+							'terms' => $origins,
+							'operator' => 'IN'
+						);
+				}
+				$query['tax_query'] = array( $array_tax ) ;
+				
+			}	
+			
+	 	$listdictiolines = get_posts( $query );	
+	 	
+	 	if ( $listdictiolines ) {
+	 		update_option( '_xd_deletion_type',  $deletion_type );
+	 		return $listdictiolines;
+	 	} else {
+	 		return false;
+	 	}
+	}
+	
+	/**** importing new UI *****/
+	// since 2.3
+	
+	function xili_dictionary_import() { 
+	?>
+
+	<div class="wrap">
+
+		<?php screen_icon( 'tools' ); ?>
+
+		<h2 class="nav-tab-wrapper"><?php _e( 'Importing files (.po, .pot, .mo)',  'xili-dictionary' ); ?></h2>
+
+		<form action="#" method="post" id="xd-looping-settings">
+
+			<?php settings_fields( 'xd_importing' ); delete_option( '_xd_importing_step'); ?>
+
+			<?php do_settings_sections( 'xd_importing' ); ?>
+			
+			<h4 class="link-back"><?php printf(__('<a href="%s">Back</a> to the list of msgs and tools','xili-dictionary'), admin_url() . 'edit.php?post_type='.XDMSG.'&page=dictionary_page' ); ?></h4>
+			<p class="submit">
+				<input type="button" name="submit" class="button-primary" id="xd-looping-start" value="<?php _e( 'Start importing', 'xili-dictionary' ); ?>" onclick="xd_importing_start()" />
+				<input type="button" name="submit" class="button-primary" id="xd-looping-stop" value="<?php _e( 'Stop', 'xili-dictionary' ); ?>" onclick="xd_importing_stop()" />
+				<img id="xd-looping-progress" src="">
+			</p>
+
+			<div class="xd-looping-updated" id="xd-looping-message"></div>
+		</form>
+	</div>
+	<script type="text/javascript">
+	//<![CDATA[
+	<?php
+	if ( function_exists('the_theme_domain') ) {// in new xili-language
+	    echo 'var potfile = "'.the_theme_domain().'";';
+	} else {
+		echo 'var potfile = "'.$this->get_theme_name(false).'";';	
+	}
+	?>	
+jQuery(document).ready( function() {
+	
+	function bbtvalue ( pot ) {
+	var x = jQuery('#_xd_file_extend').val();
+	var lo = jQuery('#_xd_local').val();
+	var la = jQuery('#_xd_lang').val();
+	var t = '<?php echo esc_js(__( 'Start importing', 'xili-dictionary' )); ?>';
+	if ( jQuery('#_xd_local').is(':checked') ) {
+		jQuery("#xd-looping-start").val( t+" : "+lo+"-"+la+'.'+x );
+	} else {
+		jQuery("#xd-looping-start").val( t+' : '+la+'.'+x+pot );
+	}
+	}
+	
+	jQuery('#_xd_file_extend').change(function() {
+		var x = jQuery(this).val();
+		if ( x == 'po') {
+			jQuery('#po-comment-option').show();
+			jQuery("#_xd_lang").append( new Option( potfile+'.pot', potfile) );
+		} else {
+			jQuery('#po-comment-option').hide();
+			jQuery("#_xd_lang").find("option[value='"+potfile+"']").remove();
+		}
+		bbtvalue ('');
+	});
+	
+	jQuery('#_xd_local').change(function() {
+		bbtvalue ( '' );
+	});
+	
+	jQuery('#_xd_lang').change(function() {
+		var x = jQuery(this).val();		
+		t = '';
+		if ( potfile == x ) { 
+			t = 't'; 
+			jQuery('#_xd_local').attr('checked',false);
+			jQuery('#_xd_local').prop('disabled',true);
+		} else {
+			jQuery('#_xd_local').prop('disabled',false);
+		};
+		bbtvalue ( t );
+	});
+	
+	
+	var x = jQuery('#_xd_file_extend').val();
+	if ( x == 'po' ) {
+		jQuery('#po-comment-option').show();
+		jQuery("#_xd_lang").append( new Option( potfile+'.pot', potfile ) );
+	} else {
+		jQuery('#po-comment-option').hide();
+		jQuery("#_xd_lang").find("option[value='"+potfile+"']").remove();
+	}
+	
+	bbtvalue ('');
+	
+});
+	//]]>
+	</script>
+<?php
+	}
+	
+	function xd_importing_init_settings () {
+		add_settings_section( 'xd_importing_main',     __( 'Importing the files', 'xili-dictionary' ),  array(&$this,'xd_importing_setting_callback_main_section'), 'xd_importing' );
+		
+		//
+		add_settings_field( '_xd_importing_type', __( 'Define the file to import', 'xili-dictionary' ),  array(&$this,'xd_file_importing_setting_callback_row'), 'xd_importing', 'xd_importing_main' );
+		register_setting( 'xd_importing_main', '_xd_importing_type', '_xd_importing_type_define' );
+		
+		// ajax section
+		add_settings_section( 'xd_importing_tech',     __( 'Technical settings', 'xili-dictionary' ),  array(&$this,'xd_setting_callback_tech_section'), 'xd_importing' );
+		
+		// erasing rows step
+		add_settings_field( '_xd_looping_rows', __( 'Entries step', 'xili-dictionary' ),  array(&$this,'xd_erasing_setting_callback_row'), 'xd_importing', 'xd_importing_tech' );
+		register_setting( 'xd_importing_tech', '_xd_looping_rows', 'sanitize_title' );
+		
+		// Delay Time
+		add_settings_field( '_xd_looping_delay_time', __( 'Delay Time', 'xili-dictionary' ), array(&$this,'xd_erasing_setting_callback_delay_time'), 'xd_importing', 'xd_importing_tech' );
+		register_setting  ( 'xd_importing_tech', '_xd_looping_delay_time', 'intval' );
+	
+	}
+	
+	function xd_setting_callback_tech_section () {
+		?>
+		<p><?php _e( "These settings below are reserved for future uses, leave values 'as is'.", 'xili-dictionary' ); ?></p>
+		<?php
+	}
+	
+	
+	/**
+ 	* Main settings section description for the settings page
+ 	*
+ 	* @since 
+ 	*/
+	function xd_importing_setting_callback_main_section() {
+		$extend = ( isset( $_GET['extend'] ) ) ? $_GET['extend'] : 'po';
+?>
+
+		<p><?php printf(__( "Here it is possible to import the .%s file inside the dictionary.", 'xili-dictionary' ), '<strong>' . $extend . '</strong>' ) ; ?></p>
+
+	<?php
+	}
+	
+	function xd_file_importing_setting_callback_row() {
+		$extend = ( isset( $_GET['extend'] ) ) ? $_GET['extend'] : 'po';
+		// pop up to build
+		?>
+	<div class="sub-field">
+	<label for="_xd_file_extend"><?php _e( 'Type', 'xili-dictionary' ); ?>:&nbsp;&nbsp;<strong>.</strong></label>	
+	<select name="_xd_file_extend" id="_xd_file_extend" class='postform'>
+		<option value="" <?php selected( "", $extend ); ?>> <?php _e('Select type...','xili-dictionary') ?> </option>
+		<option value="po" <?php selected( "po", $extend ); ?>> <?php _e('PO file','xili-dictionary') ?> </option>
+		<option value="mo" <?php selected( "mo", $extend ); ?>> <?php _e('MO file','xili-dictionary') ?> </option>
+	</select>
+	
+	<p class="description"><?php _e( 'Type of file: .mo or .po', 'xili-dictionary' ); ?></p>
+	</div>
+<?php // _xd_multi_local
+	if ( is_multisite() && is_super_admin() && !$this->xililanguage_ms ) {
+?>
+	<div class="sub-field">
+	<label for="_xd_multi_local"><?php _e( 'Folder', 'xili-dictionary' ); ?>:&nbsp;</label>
+	<select name="_xd_multi_local" id="_xd_multi_local" class='postform'>
+		<option value="blog-dir"> <?php _e('Site file (blogs.dir)','xili-dictionary') ?> </option>
+		<option value="theme-dir"> <?php _e('Original theme file','xili-dictionary') ?> </option>
+	</select>
+	
+	<p class="description"><?php _e( 'As superadmin, define origin of file', 'xili-dictionary' ); ?></p>
+	</div>
+<?php
+	}
+ // local file
+?>
+	<div class="sub-field">
+	<input id="_xd_local" name="_xd_local" type="checkbox" id="_xd_local" value="local" <?php checked( ( $extend == 'mo' ) ); ?> />
+	<label for="_xd_local"><?php _e( 'Locale msgs', 'xili-dictionary' ); ?></label>
+	<p class="description"><?php _e( 'Import locale file (local-xx_YY)', 'xili-dictionary' ); ?></p>
+	</div>
+<?php
+	$listlanguages = $this->get_terms_of_groups_lite ( $this->langs_group_id, TAXOLANGSGROUP,TAXONAME, 'ASC' ); //get_terms(TAXONAME, array('hide_empty' => false));
+		?>
+		<div class="sub-field">
+		<label for="_xd_lang"><?php _e( 'Language', 'xili-dictionary' ); ?>:&nbsp;</label>
+<select name="_xd_lang" id="_xd_lang" class='postform'>
+	<option value=""> <?php _e('Select language','xili-dictionary') ?> </option>
+			
+			<?php 
+			foreach ($listlanguages as $language)  {
+				$selected = ( isset ( $_GET[QUETAG] ) && $language->name == $_GET[QUETAG] ) ? "selected=selected" : "" ;
+				echo '<option value="'.$language->name.'" '.$selected.' >'.__($language->description, 'xili-dictionary').'</option>';
+			}
+			
+			?>
+</select>
+<p class="description"><?php _e( 'Language of the file', 'xili-dictionary' ); ?></p>
+</div>
+<div class="sub-field">
+<label for="_origin_theme"><?php _e( 'Name of current theme', 'xili-dictionary' ); ?>&nbsp;: <?php echo $this->get_theme_name(false); ?></label>
+<input id="_origin_theme" name="_origin_theme" type="hidden" id="_origin_theme" value="<?php echo $this->get_theme_name(false); ?>" />
+<p class="description"><?php _e( 'Used to assign origin taxonomy', 'xili-dictionary' ); ?></p>
+</div>	
+		<?php
+		
+		?>
+	
+	
+
+<?php
+		//if ( $extend == 'po' ) {
+?>				
+				<div id="po-comment-option" class="sub-field" style="display:none;" >
+				<label for="_importing_po_comments">&nbsp;<?php _e( 'What about comments', 'xili-dictionary' ); ?>:&nbsp;
+				<select name="_importing_po_comments" id="_importing_po_comments">
+					<option value="" ><?php _e('No change','xili-dictionary'); ?></option>
+					<option value="replace" ><?php _e('Imported comments replace those in list','xili-dictionary'); ?></option>
+					<option value="append" ><?php _e('Imported comments be appended...','xili-dictionary'); ?></option>
+				</select>	
+				</label>
+				</div>
+				<?php
+		//}
+	}
+	
+	function _xd_importing_type_define( $input ) {
+		return $input;
+	}
+	
+	function importing_process_callback () {
+		check_ajax_referer( 'xd_importing_process' );
+		
+		if ( ! ini_get( 'safe_mode' ) ) {
+			set_time_limit( 0 );
+			ini_set( 'memory_limit',   '256M' );
+			ini_set( 'implicit_flush', '1'    );
+			ignore_user_abort( true );
+		}
+		
+		// Save step and count so that it can be restarted.
+		if ( ! get_option( '_xd_importing_step' ) ) {
+			update_option( '_xd_importing_step',  1 );
+			update_option( '_xd_importing_start', 0 );
+		}
+
+		$step  = (int) get_option( '_xd_importing_step',  1 );
+		$min   = (int) get_option( '_xd_importing_start', 0 );
+		$count = (int) ! empty( $_POST['_xd_looping_rows'] ) ? $_POST['_xd_looping_rows'] : 50;
+		$max   = ( $min + $count ) - 1;
+		$start = $min;
+		
+		
+		
+		$pomofile = ""; // future use 
+		$lang = ( ! empty( $_POST['_xd_lang'] ) ) ? $_POST['_xd_lang'] : 'en_US';
+		$type = ( ! empty( $_POST['_xd_file_extend'] ) ) ? $_POST['_xd_file_extend'] : 'po';
+		$local_file = ( ! empty( $_POST['_xd_local'] ) ) ? $_POST['_xd_local'] : '';
+		$local_file2 = ( $local_file == '' ) ? '' : $local_file.'-' ;
+		$multilocal = ( $_POST['_xd_multi_local'] == 'blog-dir' ) ? true : false; // find in original theme in multisite
+		
+		switch ( $step ) {
+
+			// STEP 1. Clean all tables.
+			case 1 :
+				$count_entries = $this->caching_file( $type, $lang, $local_file, $pomofile, $multilocal );
+				if ( false != $count_entries ) {
+					update_option( '_xd_importing_step',  $step + 1 );
+					update_option( '_xd_importing_start', 0         );
+					update_option( '_xd_importing_count_entries', $count_entries );
+					
+					$this->looping_output( sprintf( __('File %3$s%2$s.%1$s found ! (%4$s entries)', 'xili-dictionary' ), $type, $lang, $local_file2, $count_entries ) );
+				} else {
+					delete_option( '_xd_importing_step'  );
+					delete_option( '_xd_importing_start' );
+					delete_option( '_xd_cache_pomo_file' );
+					delete_option( '_xd_importing_count_entries');
+					if ( false === strpos( $lang , '_' ) && $type == 'po' ) { $type = 'pot'; } // special case
+					$this->looping_output( sprintf( __('Impossible to find file %3$s%2$s.%1$s (%4$s)', 'xili-dictionary' ), $type, $lang, $local_file2, $pomofile ), 'error' );
+				}
+				break;
+				
+			// STEP 2. Loop 	
+			case 2 :
+				
+				if ( $this->importing_msgs( $start, $lang ) ) {
+					update_option( '_xd_importing_step',  $step + 1 );
+					update_option( '_xd_importing_start', 0         );
+					if ( empty( $start ) ) {
+						
+						$this->looping_output( __( 'No msgs to import', 'xili-dictionary' ), 'error' );
+					}
+				
+				} else {
+					update_option( '_xd_importing_start', $max + 1 );
+					
+					$count_entries = get_option( '_xd_importing_count_entries', $max + 1 );
+					$end = ( $count_entries > $max  ) ? $max + 1 : $count_entries ;
+					$this->looping_output( sprintf( __( 'Importing msgs (%1$s - %2$s)', 'xili-dictionary' ), $min, $end ) );
+					
+				}
+				break;
+				
+			default :
+				delete_option( '_xd_importing_step'  );
+				delete_option( '_xd_importing_start' );
+				delete_option( '_xd_cache_pomo_file' );
+				delete_option( '_xd_importing_count_entries');
+				
+				$this->looping_output( __( 'Importation Complete', 'xili-dictionary' ), 'success' );
+
+				break;
+		
+		}
+		
+	}
+	
+	private static function caching_file( $type, $lang, $local_file = '', $pomofile = '', $multilocal = true ) {
+		global $xili_dictionary; // called by ajax
+		
+		// search file
+			$temp_po = $xili_dictionary->import_POMO ( $type, $lang, $local_file, $pomofile, $multilocal );
+		if ( false !== $temp_po ) {
+			// cache file
+			update_option( '_xd_cache_pomo_file',  $temp_po );
+			
+			return count ( $temp_po->entries ) ;
+		} else {
+			return false;
+		}	
+	}
+	
+	private static function importing_msgs( $start, $lang ) {
+		global $xili_dictionary; // called by ajax
+		
+		$count = (int) ! empty( $_POST['_xd_looping_rows'] ) ? $_POST['_xd_looping_rows'] : 50;
+		$importing_po_comments = ( isset ( $_POST['_importing_po_comments'] ) ) ? $_POST['_importing_po_comments'] : '' ;
+		$origin_theme = $_POST['_origin_theme'];
+		//$temp_po = $xili_dictionary->pomo_import_PO ( $lang );
+		
+		$temp_po = get_option( '_xd_cache_pomo_file',  false );
+		$count_entries = count( $temp_po->entries );
+		if ( false !== $temp_po && ( $start < $count_entries ) ) {
+			$i = 0;
+			foreach ( $temp_po->entries as $pomsgid => $pomsgstr ) { 
+				$i++;
+				if ( $i < $start ) continue;
+				if ( $i > ($start + $count) -1  ) break;
+				if ( $i > $count_entries  ) break;
+				
+				$lines = $xili_dictionary->pomo_entry_to_xdmsg ( $pomsgid, $pomsgstr, $lang, array( 'importing_po_comments'=>$importing_po_comments, 'origin_theme'=>$origin_theme ) );
+				
+				//error_log (  $i . '------------->' . $pomsgstr->singular .'---ID--'. $lines[0] . '---STR--' . $lines[1] );
+				
+			}
+			
+			//error_log ('count='.count( $temp_po->entries ).' start='.$start);
+			return false;
+		}
+		return true;
+	}
+	
+	
+	
+	
 } /* end of class */
 
 
Binary file web/wp-content/themes/IRI-Theme/lang/fr_FR.mo has changed
--- a/web/wp-content/themes/IRI-Theme/lang/fr_FR.po	Wed Dec 19 12:35:13 2012 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,218 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: WordPress 2.9.1 IriTheme\n"
-"Report-Msgid-Bugs-To: samuel.huron@centrepompidou.fr\n"
-"POT-Creation-Date: 2010-03-14 04:57+0000\n"
-"PO-Revision-Date: 2010-05-17 17:41+0100\n"
-"Last-Translator: Samuel Huron <cybunk.com>\n"
-"Language-Team: IRI\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Rosetta-Version: 0.1\n"
-"X-Poedit-Country: FRANCE\n"
-"X-Poedit-SourceCharset: utf-8\n"
-"X-Poedit-KeywordsList: _e;_c;__\n"
-"X-Poedit-Basepath: .\n"
-"Plural-Forms: nplurals=2; plural=n>1\n"
-"X-Poedit-Language: French\n"
-
-#: header.php
-msgid "Home"
-msgstr "Accueil"
-
-msgid "in english"
-msgstr "en anglais"
-
-msgid "Link and external news"
-msgstr "Liens et actualités externes"
-
-msgid "Click here to subscribe our Icalendar feed (in french only)."
-msgstr "Cliquer ici pour vous abonner au Icalendar de l&quot;Institut de recherche et d&quot;innovation."
-
-msgid "en french"
-msgstr "en français"
-
-msgid "in "
-msgstr "en "
-
-msgid "Website"
-msgstr "Site web"
-
-msgid "Research"
-msgstr "Recherches"
-
-msgid "Search"
-msgstr "Rechercher"
-
-msgid "Seminars"
-msgstr "S&eacute;minaires"
-
-msgid "Workshops"
-msgstr "Ateliers"
-
-msgid "Projects"
-msgstr "Projets"
-
-msgid "Experimentations"
-msgstr "Expérimentations"
-
-msgid "Tools"
-msgstr "Outils"
-
-msgid "_"
-msgstr "_"
-
-msgid "Last Publications"
-msgstr "Dernières publications"
-
-msgid "Links and external news"
-msgstr "Liens et actualités externes"
-
-msgid "in"
-msgstr "en"
-
-msgid "Cloud of Tags"
-msgstr "Nuage de tags"
-
-msgid "Networks"
-msgstr "Réseaux"
-
-msgid "Calendar"
-msgstr "Agenda"
-
-msgid "Next Events"
-msgstr "Prochains évènements"
-
-msgid "Contact"
-msgstr "Contact"
-
-msgid "Team"
-msgstr "Crédits"
-
-msgid "this site"
-msgstr "ce site"
-
-msgid "IRI&apos;s sites"
-msgstr "sites IRI"
-
-msgid "ENMI"
-msgstr "ENMI"
-
-msgid "Advanced"
-msgstr "Avanc&eacute;e"
-
-msgid "on this site"
-msgstr "sur ce site"
-
-msgid "on IRI sites"
-msgstr "sur les sites IRI"
-
-msgid "on ENMI"
-msgstr "sur ENMI"
-
-msgid "on Seminars"
-msgstr "sur S&eacute;minaires"
-
-msgid "In the same category"
-msgstr "Dans la même catégorie"
-
-msgid "Search in ENMI&apos;s annotations &#8220;%s&#8221;"
-msgstr "Rechercher dans les annotations des ENMI &#8220;%s&#8221;"
-
-msgid "Search in Seminars&apos;annotations"
-msgstr "Rechercher dans les annotations des s&eacute;minaires &#8220;%s&#8221;"
-
-msgid "Search results for &#8220;%s&#8221;"
-msgstr "R&eacute;sultat de la recherche pour &#8220;%s&#8221;"
-
-msgid "Click here for subscribing to IRI&apos;s calendar"
-msgstr "Cliquer ici pour vous abonner au Icalendar de l&quot;Institut de recherche et d&quot;innovation."
-
-msgid "Click here to access IRI&apos;s Twitter account"
-msgstr "Cliquez ici pour acc&eacute;der au compte Twitter de l&quot;Institut de recherche et d&quot;innovation (IRI)"
-
-msgid "Click here to access IRI&apos;s Facebook account"
-msgstr "Cliquez ici pour souscrire a la page Facebook de l&quot;Institut de recherche et d&quot;innovation (IRI)"
-
-msgid "Click here to access IRI&apos;s Delicious account"
-msgstr "Cliquez ici pour acc&eacute;der au compte Delicious de l&quot;Institut de recherche et d&quot;innovation (IRI)"
-
-msgid "Click here to access IRI&apos;s FlickR account"
-msgstr "Cliquez ici pour acc&eacute;der au compte flick R de l&quot;Institut de recherche et d&quot;innovation (IRI)"
-
-msgid "Click here to access IRI&apos;s LinkedIn account"
-msgstr "Cliquez ici pour acc&eacute;der au groupe linkedin de l&quot;Institut de recherche et d&quot;innovation (IRI)"
-
-msgid "Not Found"
-msgstr "Non trouv&eacute;"
-
-msgid "No results found."
-msgstr "Aucun résultat"
-
-msgid "Sorry, no such page."
-msgstr "Désolé, cette page n&apos;existe pas"
-
-msgid "Next &raquo;"
-msgstr "Suivant &raquo;"
-
-msgid "Read this post"
-msgstr "Lire la suite de l'article"
-
-msgid "&laquo; Precedent"
-msgstr "&laquo; Pr&eacute;c&eacute;dent"
-
-msgid "Published"
-msgstr "Publi&eacute;"
-
-msgid "Pages"
-msgstr "Pages"
-
-msgid "This post in"
-msgstr "_"
-
-msgid "Tags : "
-msgstr "Tags : "
-
-msgid "Tag Cloud"
-msgstr "Nuage de tag"
-
-msgid "Error 404 - Not Found"
-msgstr "Erreur 404 - Page non trouvée"
-
-msgid "__x_"
-msgstr "Oups... Il y a une erreur ! La page que vous avez demandé n'éxiste pas, ou plus. Vous pouvez utiliser le moteur de recherche, ou le nuage de tag pour retrouver ce que vous chercher."
-
-msgid "___x_"
-msgstr "Il n‘y a aucun r&eacute;sultat sur cette requc&egrave;te avec le moteur de recherche interne, vous aurrez peut &ecirc;tre plus de chance en cherchant sur les autres sites IRI grace au formulaire ci dessous : "
-
-msgid "Credits"
-msgstr "Crédits"
-
-msgid "About"
-msgstr "A propos"
-
-msgid "_x_x_x_"
-msgstr "Recherche inters&eacute;minaire dans ligne de temps :"
-
-msgid "Permanent Link to"
-msgstr "Lien permanent vers"
-
-msgid "all"
-msgstr "tous"
-
-msgid "title"
-msgstr "titre"
-
-msgid "resum"
-msgstr "résumé"
-
-msgid "Contribution"
-msgstr "Contribution"
-
-msgid "content"
-msgstr "contenu"
-
-msgid "Click here to follow us !"
-msgstr "Cliquez ici pour suivre le flux RSS"
-
--- a/web/wp-content/themes/IRI-Theme/single.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-content/themes/IRI-Theme/single.php	Wed Dec 19 17:46:52 2012 -0800
@@ -1,6 +1,5 @@
 <?php get_header(); ?>
 	<div class="column span-17 colborder first" id="maincontent">
-		
 		<div class="content">
 			<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
 				<?php  /*<div class="navigation small">
--- a/web/wp-content/themes/IRI-Theme/style.css	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-content/themes/IRI-Theme/style.css	Wed Dec 19 17:46:52 2012 -0800
@@ -971,48 +971,3 @@
 	padding-left:650px;
 }
 
-
-.addtoany_share_save_container {
-    margin: 16px 0;
-}
-ul.addtoany_list {
-    display: inline;
-    list-style-type: none;
-    margin: 0 !important;
-    padding: 0 !important;
-    text-indent: 0 !important;
-}
-ul.addtoany_list li {
-    background: none repeat scroll 0 0 transparent !important;
-    border: 0 none;
-    display: inline !important;
-    line-height: 32px;
-    list-style-type: none;
-    margin: 0 !important;
-    padding: 0 !important;
-}
-ul.addtoany_list li:before {
-    content: "";
-}
-ul.addtoany_list li a {
-    padding: 0 9px;
-}
-ul.addtoany_list img {
-    border: 0 none;
-    float: none;
-    margin: 0;
-    padding: 0;
-    vertical-align: middle;
-}
-ul.addtoany_list a img {
-    opacity: 0.6;
-}
-ul.addtoany_list a:hover img, ul.addtoany_list a.addtoany_share_save img {
-    opacity: 1;
-}
-a.addtoany_share_save img {
-    border: 0 none;
-    height: auto;
-    width: auto;
-}
-
--- a/web/wp-content/themes/twentyeleven/colors/dark.css	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-content/themes/twentyeleven/colors/dark.css	Wed Dec 19 17:46:52 2012 -0800
@@ -35,13 +35,13 @@
 	background: #00063f;
 }
 input[type=text],
-.post-password-required input[type=password],
+input[type=password],
+input[type=email],
+input[type=url],
+input[type=number],
 textarea {
 	border: 1px solid #222;
 }
-input[type=text]:focus,
-textarea:focus {
-}
 input#s {
 	background-color: #ddd;
 }
--- a/web/wp-content/themes/twentyeleven/comments.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-content/themes/twentyeleven/comments.php	Wed Dec 19 17:46:52 2012 -0800
@@ -63,14 +63,15 @@
 		</nav>
 		<?php endif; // check for comment navigation ?>
 
-	<?php
+		<?php
 		/* If there are no comments and comments are closed, let's leave a little note, shall we?
-		 * But we don't want the note on pages or post types that do not support comments.
+		 * But we only want the note on posts and pages that had comments in the first place.
 		 */
-		elseif ( ! comments_open() && ! is_page() && post_type_supports( get_post_type(), 'comments' ) ) :
-	?>
-		<p class="nocomments"><?php _e( 'Comments are closed.', 'twentyeleven' ); ?></p>
-	<?php endif; ?>
+		if ( ! comments_open() && get_comments_number() ) : ?>
+		<p class="nocomments"><?php _e( 'Comments are closed.' , 'twentyeleven' ); ?></p>
+		<?php endif; ?>
+
+	<?php endif; // have_comments() ?>
 
 	<?php comment_form(); ?>
 
--- a/web/wp-content/themes/twentyeleven/content-aside.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-content/themes/twentyeleven/content-aside.php	Wed Dec 19 17:46:52 2012 -0800
@@ -13,7 +13,7 @@
 	<article id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
 		<header class="entry-header">
 			<hgroup>
-				<h2 class="entry-title"><a href="<?php the_permalink(); ?>" title="<?php printf( esc_attr__( 'Permalink to %s', 'twentyeleven' ), the_title_attribute( 'echo=0' ) ); ?>" rel="bookmark"><?php the_title(); ?></a></h2>
+				<h2 class="entry-title"><a href="<?php the_permalink(); ?>" title="<?php echo esc_attr( sprintf( __( 'Permalink to %s', 'twentyeleven' ), the_title_attribute( 'echo=0' ) ) ); ?>" rel="bookmark"><?php the_title(); ?></a></h2>
 				<h3 class="entry-format"><?php _e( 'Aside', 'twentyeleven' ); ?></h3>
 			</hgroup>
 
@@ -42,5 +42,5 @@
 			<span class="comments-link"><?php comments_popup_link( '<span class="leave-reply">' . __( 'Leave a reply', 'twentyeleven' ) . '</span>', __( '<b>1</b> Reply', 'twentyeleven' ), __( '<b>%</b> Replies', 'twentyeleven' ) ); ?></span>
 			<?php endif; ?>
 			<?php edit_post_link( __( 'Edit', 'twentyeleven' ), '<span class="edit-link">', '</span>' ); ?>
-		</footer><!-- #entry-meta -->
+		</footer><!-- .entry-meta -->
 	</article><!-- #post-<?php the_ID(); ?> -->
--- a/web/wp-content/themes/twentyeleven/content-featured.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-content/themes/twentyeleven/content-featured.php	Wed Dec 19 17:46:52 2012 -0800
@@ -11,7 +11,7 @@
 ?>
 <article id="post-<?php the_ID(); ?>" <?php post_class( $feature_class ); ?>>
 	<header class="entry-header">
-		<h2 class="entry-title"><a href="<?php the_permalink(); ?>" title="<?php printf( esc_attr__( 'Permalink to %s', 'twentyeleven' ), the_title_attribute( 'echo=0' ) ); ?>" rel="bookmark"><?php the_title(); ?></a></h2>
+		<h2 class="entry-title"><a href="<?php the_permalink(); ?>" title="<?php echo esc_attr( sprintf( __( 'Permalink to %s', 'twentyeleven' ), the_title_attribute( 'echo=0' ) ) ); ?>" rel="bookmark"><?php the_title(); ?></a></h2>
 
 		<div class="entry-meta">
 			<?php twentyeleven_posted_on(); ?>
--- a/web/wp-content/themes/twentyeleven/content-gallery.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-content/themes/twentyeleven/content-gallery.php	Wed Dec 19 17:46:52 2012 -0800
@@ -13,7 +13,7 @@
 <article id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
 	<header class="entry-header">
 		<hgroup>
-			<h2 class="entry-title"><a href="<?php the_permalink(); ?>" title="<?php printf( esc_attr__( 'Permalink to %s', 'twentyeleven' ), the_title_attribute( 'echo=0' ) ); ?>" rel="bookmark"><?php the_title(); ?></a></h2>
+			<h2 class="entry-title"><a href="<?php the_permalink(); ?>" title="<?php echo esc_attr( sprintf( __( 'Permalink to %s', 'twentyeleven' ), the_title_attribute( 'echo=0' ) ) ); ?>" rel="bookmark"><?php the_title(); ?></a></h2>
 			<h3 class="entry-format"><?php _e( 'Gallery', 'twentyeleven' ); ?></h3>
 		</hgroup>
 
@@ -45,7 +45,7 @@
 				</figure><!-- .gallery-thumb -->
 
 				<p><em><?php printf( _n( 'This gallery contains <a %1$s>%2$s photo</a>.', 'This gallery contains <a %1$s>%2$s photos</a>.', $total_images, 'twentyeleven' ),
-						'href="' . esc_url( get_permalink() ) . '" title="' . sprintf( esc_attr__( 'Permalink to %s', 'twentyeleven' ), the_title_attribute( 'echo=0' ) ) . '" rel="bookmark"',
+						'href="' . esc_url( get_permalink() ) . '" title="' . esc_attr( sprintf( __( 'Permalink to %s', 'twentyeleven' ), the_title_attribute( 'echo=0' ) ) ) . '" rel="bookmark"',
 						number_format_i18n( $total_images )
 					); ?></em></p>
 			<?php endif; ?>
@@ -88,5 +88,5 @@
 		<?php endif; // End if comments_open() ?>
 
 		<?php edit_post_link( __( 'Edit', 'twentyeleven' ), '<span class="edit-link">', '</span>' ); ?>
-	</footer><!-- #entry-meta -->
+	</footer><!-- .entry-meta -->
 </article><!-- #post-<?php the_ID(); ?> -->
--- a/web/wp-content/themes/twentyeleven/content-image.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-content/themes/twentyeleven/content-image.php	Wed Dec 19 17:46:52 2012 -0800
@@ -12,7 +12,7 @@
 	<article id="post-<?php the_ID(); ?>" <?php post_class( 'indexed' ); ?>>
 		<header class="entry-header">
 			<hgroup>
-				<h2 class="entry-title"><a href="<?php the_permalink(); ?>" title="<?php printf( esc_attr__( 'Permalink to %s', 'twentyeleven' ), the_title_attribute( 'echo=0' ) ); ?>" rel="bookmark"><?php the_title(); ?></a></h2>
+				<h2 class="entry-title"><a href="<?php the_permalink(); ?>" title="<?php echo esc_attr( sprintf( __( 'Permalink to %s', 'twentyeleven' ), the_title_attribute( 'echo=0' ) ) ); ?>" rel="bookmark"><?php the_title(); ?></a></h2>
 				<h3 class="entry-format"><?php _e( 'Image', 'twentyeleven' ); ?></h3>
 			</hgroup>
 
@@ -31,7 +31,7 @@
 		<footer class="entry-meta">
 			<div class="entry-meta">
 				<?php
-					printf( __( '<a href="%1$s" rel="bookmark"><time class="entry-date" datetime="%2$s" pubdate>%3$s</time></a><span class="by-author"> <span class="sep"> by </span> <span class="author vcard"><a class="url fn n" href="%4$s" title="%5$s" rel="author">%6$s</a></span></span>', 'twentyeleven' ),
+					printf( __( '<a href="%1$s" rel="bookmark"><time class="entry-date" datetime="%2$s">%3$s</time></a><span class="by-author"> <span class="sep"> by </span> <span class="author vcard"><a class="url fn n" href="%4$s" title="%5$s" rel="author">%6$s</a></span></span>', 'twentyeleven' ),
 						esc_url( get_permalink() ),
 						get_the_date( 'c' ),
 						get_the_date(),
@@ -66,5 +66,5 @@
 			</div><!-- .entry-meta -->
 
 			<?php edit_post_link( __( 'Edit', 'twentyeleven' ), '<span class="edit-link">', '</span>' ); ?>
-		</footer><!-- #entry-meta -->
+		</footer><!-- .entry-meta -->
 	</article><!-- #post-<?php the_ID(); ?> -->
--- a/web/wp-content/themes/twentyeleven/content-link.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-content/themes/twentyeleven/content-link.php	Wed Dec 19 17:46:52 2012 -0800
@@ -13,7 +13,7 @@
 	<article id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
 		<header class="entry-header">
 			<hgroup>
-				<h2 class="entry-title"><a href="<?php the_permalink(); ?>" title="<?php printf( esc_attr__( 'Permalink to %s', 'twentyeleven' ), the_title_attribute( 'echo=0' ) ); ?>" rel="bookmark"><?php the_title(); ?></a></h2>
+				<h2 class="entry-title"><a href="<?php the_permalink(); ?>" title="<?php echo esc_attr( sprintf( __( 'Permalink to %s', 'twentyeleven' ), the_title_attribute( 'echo=0' ) ) ); ?>" rel="bookmark"><?php the_title(); ?></a></h2>
 				<h3 class="entry-format"><?php _e( 'Link', 'twentyeleven' ); ?></h3>
 			</hgroup>
 
@@ -42,5 +42,5 @@
 			<span class="comments-link"><?php comments_popup_link( '<span class="leave-reply">' . __( 'Leave a reply', 'twentyeleven' ) . '</span>', __( '<b>1</b> Reply', 'twentyeleven' ), __( '<b>%</b> Replies', 'twentyeleven' ) ); ?></span>
 			<?php endif; ?>
 			<?php edit_post_link( __( 'Edit', 'twentyeleven' ), '<span class="edit-link">', '</span>' ); ?>
-		</footer><!-- #entry-meta -->
+		</footer><!-- .entry-meta -->
 	</article><!-- #post-<?php the_ID(); ?> -->
--- a/web/wp-content/themes/twentyeleven/content-quote.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-content/themes/twentyeleven/content-quote.php	Wed Dec 19 17:46:52 2012 -0800
@@ -11,7 +11,7 @@
 	<article id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
 		<header class="entry-header">
 			<hgroup>
-				<h2 class="entry-title"><a href="<?php the_permalink(); ?>" title="<?php printf( esc_attr__( 'Permalink to %s', 'twentyeleven' ), the_title_attribute( 'echo=0' ) ); ?>" rel="bookmark"><?php the_title(); ?></a></h2>
+				<h2 class="entry-title"><a href="<?php the_permalink(); ?>" title="<?php echo esc_attr( sprintf( __( 'Permalink to %s', 'twentyeleven' ), the_title_attribute( 'echo=0' ) ) ); ?>" rel="bookmark"><?php the_title(); ?></a></h2>
 				<h3 class="entry-format"><?php _e( 'Quote', 'twentyeleven' ); ?></h3>
 			</hgroup>
 
@@ -70,5 +70,5 @@
 			<?php endif; // End if comments_open() ?>
 
 			<?php edit_post_link( __( 'Edit', 'twentyeleven' ), '<span class="edit-link">', '</span>' ); ?>
-		</footer><!-- #entry-meta -->
+		</footer><!-- .entry-meta -->
 	</article><!-- #post-<?php the_ID(); ?> -->
--- a/web/wp-content/themes/twentyeleven/content-status.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-content/themes/twentyeleven/content-status.php	Wed Dec 19 17:46:52 2012 -0800
@@ -12,7 +12,7 @@
 	<article id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
 		<header class="entry-header">
 			<hgroup>
-				<h2 class="entry-title"><a href="<?php the_permalink(); ?>" title="<?php printf( esc_attr__( 'Permalink to %s', 'twentyeleven' ), the_title_attribute( 'echo=0' ) ); ?>" rel="bookmark"><?php the_title(); ?></a></h2>
+				<h2 class="entry-title"><a href="<?php the_permalink(); ?>" title="<?php echo esc_attr( sprintf( __( 'Permalink to %s', 'twentyeleven' ), the_title_attribute( 'echo=0' ) ) ); ?>" rel="bookmark"><?php the_title(); ?></a></h2>
 				<h3 class="entry-format"><?php _e( 'Status', 'twentyeleven' ); ?></h3>
 			</hgroup>
 
@@ -43,5 +43,5 @@
 			<span class="comments-link"><?php comments_popup_link( '<span class="leave-reply">' . __( 'Leave a reply', 'twentyeleven' ) . '</span>', __( '<b>1</b> Reply', 'twentyeleven' ), __( '<b>%</b> Replies', 'twentyeleven' ) ); ?></span>
 			<?php endif; ?>
 			<?php edit_post_link( __( 'Edit', 'twentyeleven' ), '<span class="edit-link">', '</span>' ); ?>
-		</footer><!-- #entry-meta -->
+		</footer><!-- .entry-meta -->
 	</article><!-- #post-<?php the_ID(); ?> -->
--- a/web/wp-content/themes/twentyeleven/content.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-content/themes/twentyeleven/content.php	Wed Dec 19 17:46:52 2012 -0800
@@ -12,11 +12,11 @@
 		<header class="entry-header">
 			<?php if ( is_sticky() ) : ?>
 				<hgroup>
-					<h2 class="entry-title"><a href="<?php the_permalink(); ?>" title="<?php printf( esc_attr__( 'Permalink to %s', 'twentyeleven' ), the_title_attribute( 'echo=0' ) ); ?>" rel="bookmark"><?php the_title(); ?></a></h2>
+					<h2 class="entry-title"><a href="<?php the_permalink(); ?>" title="<?php echo esc_attr( sprintf( __( 'Permalink to %s', 'twentyeleven' ), the_title_attribute( 'echo=0' ) ) ); ?>" rel="bookmark"><?php the_title(); ?></a></h2>
 					<h3 class="entry-format"><?php _e( 'Featured', 'twentyeleven' ); ?></h3>
 				</hgroup>
 			<?php else : ?>
-			<h1 class="entry-title"><a href="<?php the_permalink(); ?>" title="<?php printf( esc_attr__( 'Permalink to %s', 'twentyeleven' ), the_title_attribute( 'echo=0' ) ); ?>" rel="bookmark"><?php the_title(); ?></a></h1>
+			<h1 class="entry-title"><a href="<?php the_permalink(); ?>" title="<?php echo esc_attr( sprintf( __( 'Permalink to %s', 'twentyeleven' ), the_title_attribute( 'echo=0' ) ) ); ?>" rel="bookmark"><?php the_title(); ?></a></h1>
 			<?php endif; ?>
 
 			<?php if ( 'post' == get_post_type() ) : ?>
@@ -45,7 +45,7 @@
 
 		<footer class="entry-meta">
 			<?php $show_sep = false; ?>
-			<?php if ( 'post' == get_post_type() ) : // Hide category and tag text for pages on Search ?>
+			<?php if ( is_object_in_taxonomy( get_post_type(), 'category' ) ) : // Hide category text when not supported ?>
 			<?php
 				/* translators: used between list items, there is a space after the comma */
 				$categories_list = get_the_category_list( __( ', ', 'twentyeleven' ) );
@@ -56,6 +56,8 @@
 				$show_sep = true; ?>
 			</span>
 			<?php endif; // End if categories ?>
+			<?php endif; // End if is_object_in_taxonomy( get_post_type(), 'category' ) ?>
+			<?php if ( is_object_in_taxonomy( get_post_type(), 'post_tag' ) ) : // Hide tag text when not supported ?>
 			<?php
 				/* translators: used between list items, there is a space after the comma */
 				$tags_list = get_the_tag_list( '', __( ', ', 'twentyeleven' ) );
@@ -68,7 +70,7 @@
 				$show_sep = true; ?>
 			</span>
 			<?php endif; // End if $tags_list ?>
-			<?php endif; // End if 'post' == get_post_type() ?>
+			<?php endif; // End if is_object_in_taxonomy( get_post_type(), 'post_tag' ) ?>
 
 			<?php if ( comments_open() ) : ?>
 			<?php if ( $show_sep ) : ?>
@@ -78,5 +80,5 @@
 			<?php endif; // End if comments_open() ?>
 
 			<?php edit_post_link( __( 'Edit', 'twentyeleven' ), '<span class="edit-link">', '</span>' ); ?>
-		</footer><!-- #entry-meta -->
+		</footer><!-- .entry-meta -->
 	</article><!-- #post-<?php the_ID(); ?> -->
--- a/web/wp-content/themes/twentyeleven/editor-style.css	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-content/themes/twentyeleven/editor-style.css	Wed Dec 19 17:46:52 2012 -0800
@@ -254,7 +254,8 @@
 .wp-caption {
 	margin-top: 0.4em;
 }
-img {
+img,
+.editor-attachment {
 	border: 1px solid #ddd;
 	padding: 6px;
 }
--- a/web/wp-content/themes/twentyeleven/footer.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-content/themes/twentyeleven/footer.php	Wed Dec 19 17:46:52 2012 -0800
@@ -24,7 +24,7 @@
 
 			<div id="site-generator">
 				<?php do_action( 'twentyeleven_credits' ); ?>
-				<a href="<?php echo esc_url( __( 'http://wordpress.org/', 'twentyeleven' ) ); ?>" title="<?php esc_attr_e( 'Semantic Personal Publishing Platform', 'twentyeleven' ); ?>" rel="generator"><?php printf( __( 'Proudly powered by %s', 'twentyeleven' ), 'WordPress' ); ?></a>
+				<a href="<?php echo esc_url( __( 'http://wordpress.org/', 'twentyeleven' ) ); ?>" title="<?php esc_attr_e( 'Semantic Personal Publishing Platform', 'twentyeleven' ); ?>"><?php printf( __( 'Proudly powered by %s', 'twentyeleven' ), 'WordPress' ); ?></a>
 			</div>
 	</footer><!-- #colophon -->
 </div><!-- #page -->
--- a/web/wp-content/themes/twentyeleven/functions.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-content/themes/twentyeleven/functions.php	Wed Dec 19 17:46:52 2012 -0800
@@ -101,7 +101,7 @@
 	if ( 'dark' == $theme_options['color_scheme'] )
 		$default_background_color = '1d1d1d';
 	else
-		$default_background_color = 'f1f1f1';
+		$default_background_color = 'e2e2e2';
 
 	// Add support for custom backgrounds.
 	add_theme_support( 'custom-background', array(
@@ -131,7 +131,7 @@
 		// Callback used to display the header preview in the admin.
 		'admin-preview-callback' => 'twentyeleven_admin_header_image',
 	);
-	
+
 	add_theme_support( 'custom-header', $custom_header_support );
 
 	if ( ! function_exists( 'get_custom_header' ) ) {
@@ -221,7 +221,7 @@
 	// If no custom options for text are set, let's bail.
 	if ( $text_color == HEADER_TEXTCOLOR )
 		return;
-		
+
 	// If we get this far, we have custom styles. Let's do this.
 	?>
 	<style type="text/css">
@@ -337,12 +337,14 @@
 }
 add_filter( 'excerpt_length', 'twentyeleven_excerpt_length' );
 
+if ( ! function_exists( 'twentyeleven_continue_reading_link' ) ) :
 /**
  * Returns a "Continue Reading" link for excerpts
  */
 function twentyeleven_continue_reading_link() {
 	return ' <a href="'. esc_url( get_permalink() ) . '">' . __( 'Continue reading <span class="meta-nav">&rarr;</span>', 'twentyeleven' ) . '</a>';
 }
+endif; // twentyeleven_continue_reading_link
 
 /**
  * Replaces "[...]" (appended to automatically generated excerpts) with an ellipsis and twentyeleven_continue_reading_link().
@@ -373,7 +375,8 @@
  * Get our wp_nav_menu() fallback, wp_page_menu(), to show a home link.
  */
 function twentyeleven_page_menu_args( $args ) {
-	$args['show_home'] = true;
+	if ( ! isset( $args['show_home'] ) )
+		$args['show_home'] = true;
 	return $args;
 }
 add_filter( 'wp_page_menu_args', 'twentyeleven_page_menu_args' );
@@ -442,11 +445,11 @@
 /**
  * Display navigation to next/previous pages when applicable
  */
-function twentyeleven_content_nav( $nav_id ) {
+function twentyeleven_content_nav( $html_id ) {
 	global $wp_query;
 
 	if ( $wp_query->max_num_pages > 1 ) : ?>
-		<nav id="<?php echo $nav_id; ?>">
+		<nav id="<?php echo esc_attr( $html_id ); ?>">
 			<h3 class="assistive-text"><?php _e( 'Post navigation', 'twentyeleven' ); ?></h3>
 			<div class="nav-previous"><?php next_posts_link( __( '<span class="meta-nav">&larr;</span> Older posts', 'twentyeleven' ) ); ?></div>
 			<div class="nav-next"><?php previous_posts_link( __( 'Newer posts <span class="meta-nav">&rarr;</span>', 'twentyeleven' ) ); ?></div>
@@ -538,7 +541,7 @@
 						/* translators: 1: comment author, 2: date and time */
 						printf( __( '%1$s on %2$s <span class="says">said:</span>', 'twentyeleven' ),
 							sprintf( '<span class="fn">%s</span>', get_comment_author_link() ),
-							sprintf( '<a href="%1$s"><time pubdate datetime="%2$s">%3$s</time></a>',
+							sprintf( '<a href="%1$s"><time datetime="%2$s">%3$s</time></a>',
 								esc_url( get_comment_link( $comment->comment_ID ) ),
 								get_comment_time( 'c' ),
 								/* translators: 1: date, 2: time */
@@ -578,7 +581,7 @@
  * @since Twenty Eleven 1.0
  */
 function twentyeleven_posted_on() {
-	printf( __( '<span class="sep">Posted on </span><a href="%1$s" title="%2$s" rel="bookmark"><time class="entry-date" datetime="%3$s" pubdate>%4$s</time></a><span class="by-author"> <span class="sep"> by </span> <span class="author vcard"><a class="url fn n" href="%5$s" title="%6$s" rel="author">%7$s</a></span></span>', 'twentyeleven' ),
+	printf( __( '<span class="sep">Posted on </span><a href="%1$s" title="%2$s" rel="bookmark"><time class="entry-date" datetime="%3$s">%4$s</time></a><span class="by-author"> <span class="sep"> by </span> <span class="author vcard"><a class="url fn n" href="%5$s" title="%6$s" rel="author">%7$s</a></span></span>', 'twentyeleven' ),
 		esc_url( get_permalink() ),
 		esc_attr( get_the_time() ),
 		esc_attr( get_the_date( 'c' ) ),
Binary file web/wp-content/themes/twentyeleven/images/comment-bubble-dark-rtl.png has changed
Binary file web/wp-content/themes/twentyeleven/images/comment-bubble-dark.png has changed
Binary file web/wp-content/themes/twentyeleven/images/comment-bubble-rtl.png has changed
Binary file web/wp-content/themes/twentyeleven/images/comment-bubble.png has changed
Binary file web/wp-content/themes/twentyeleven/images/headers/chessboard.jpg has changed
Binary file web/wp-content/themes/twentyeleven/images/headers/hanoi.jpg has changed
Binary file web/wp-content/themes/twentyeleven/images/headers/lanterns-thumbnail.jpg has changed
Binary file web/wp-content/themes/twentyeleven/images/headers/lanterns.jpg has changed
Binary file web/wp-content/themes/twentyeleven/images/headers/pine-cone.jpg has changed
Binary file web/wp-content/themes/twentyeleven/images/headers/shore.jpg has changed
Binary file web/wp-content/themes/twentyeleven/images/headers/trolley.jpg has changed
Binary file web/wp-content/themes/twentyeleven/images/headers/wheel.jpg has changed
Binary file web/wp-content/themes/twentyeleven/images/headers/willow.jpg has changed
Binary file web/wp-content/themes/twentyeleven/images/search.png has changed
Binary file web/wp-content/themes/twentyeleven/inc/images/content-sidebar.png has changed
Binary file web/wp-content/themes/twentyeleven/inc/images/content.png has changed
Binary file web/wp-content/themes/twentyeleven/inc/images/dark.png has changed
Binary file web/wp-content/themes/twentyeleven/inc/images/light.png has changed
Binary file web/wp-content/themes/twentyeleven/inc/images/sidebar-content.png has changed
--- a/web/wp-content/themes/twentyeleven/inc/widgets.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-content/themes/twentyeleven/inc/widgets.php	Wed Dec 19 17:46:52 2012 -0800
@@ -86,7 +86,7 @@
 				<?php if ( 'link' != get_post_format() ) : ?>
 
 				<li class="widget-entry-title">
-					<a href="<?php echo esc_url( get_permalink() ); ?>" title="<?php printf( esc_attr__( 'Permalink to %s', 'twentyeleven' ), the_title_attribute( 'echo=0' ) ); ?>" rel="bookmark"><?php the_title(); ?></a>
+					<a href="<?php echo esc_url( get_permalink() ); ?>" title="<?php echo esc_attr( sprintf( __( 'Permalink to %s', 'twentyeleven' ), the_title_attribute( 'echo=0' ) ) ); ?>" rel="bookmark"><?php the_title(); ?></a>
 					<span class="comments-link">
 						<?php comments_popup_link( __( '0 <span class="reply">comments &rarr;</span>', 'twentyeleven' ), __( '1 <span class="reply">comment &rarr;</span>', 'twentyeleven' ), __( '% <span class="reply">comments &rarr;</span>', 'twentyeleven' ) ); ?>
 					</span>
@@ -102,7 +102,7 @@
 						if ( empty( $link_url ) )
 							$link_url = get_permalink();
 					?>
-					<a href="<?php echo esc_url( $link_url ); ?>" title="<?php printf( esc_attr__( 'Link to %s', 'twentyeleven' ), the_title_attribute( 'echo=0' ) ); ?>" rel="bookmark"><?php the_title(); ?>&nbsp;<span>&rarr;</span></a>
+					<a href="<?php echo esc_url( $link_url ); ?>" title="<?php echo esc_attr( sprintf( __( 'Link to %s', 'twentyeleven' ), the_title_attribute( 'echo=0' ) ) ); ?>" rel="bookmark"><?php the_title(); ?>&nbsp;<span>&rarr;</span></a>
 					<span class="comments-link">
 						<?php comments_popup_link( __( '0 <span class="reply">comments &rarr;</span>', 'twentyeleven' ), __( '1 <span class="reply">comment &rarr;</span>', 'twentyeleven' ), __( '% <span class="reply">comments &rarr;</span>', 'twentyeleven' ) ); ?>
 					</span>
--- a/web/wp-content/themes/twentyeleven/js/html5.js	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-content/themes/twentyeleven/js/html5.js	Wed Dec 19 17:46:52 2012 -0800
@@ -1,3 +1,6 @@
-// html5shiv MIT @rem remysharp.com/html5-enabling-script
-// iepp v1.6.2 MIT @jon_neal iecss.com/print-protector
-/*@cc_on(function(a,b){function r(a){var b=-1;while(++b<f)a.createElement(e[b])}if(!(!window.attachEvent||!b.createStyleSheet||!function(){var a=document.createElement("div");a.innerHTML="<elem></elem>";return a.childNodes.length!==1}())){a.iepp=a.iepp||{};var c=a.iepp,d=c.html5elements||"abbr|article|aside|audio|canvas|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",e=d.split("|"),f=e.length,g=new RegExp("(^|\\s)("+d+")","gi"),h=new RegExp("<(/*)("+d+")","gi"),i=/^\s*[\{\}]\s*$/,j=new RegExp("(^|[^\\n]*?\\s)("+d+")([^\\n]*)({[\\n\\w\\W]*?})","gi"),k=b.createDocumentFragment(),l=b.documentElement,m=l.firstChild,n=b.createElement("body"),o=b.createElement("style"),p=/print|all/,q;c.getCSS=function(a,b){if(a+""===undefined)return"";var d=-1,e=a.length,f,g=[];while(++d<e){f=a[d];if(f.disabled)continue;b=f.media||b,p.test(b)&&g.push(c.getCSS(f.imports,b),f.cssText),b="all"}return g.join("")},c.parseCSS=function(a){var b=[],c;while((c=j.exec(a))!=null)b.push(((i.exec(c[1])?"\n":c[1])+c[2]+c[3]).replace(g,"$1.iepp_$2")+c[4]);return b.join("\n")},c.writeHTML=function(){var a=-1;q=q||b.body;while(++a<f){var c=b.getElementsByTagName(e[a]),d=c.length,g=-1;while(++g<d)c[g].className.indexOf("iepp_")<0&&(c[g].className+=" iepp_"+e[a])}k.appendChild(q),l.appendChild(n),n.className=q.className,n.id=q.id,n.innerHTML=q.innerHTML.replace(h,"<$1font")},c._beforePrint=function(){o.styleSheet.cssText=c.parseCSS(c.getCSS(b.styleSheets,"all")),c.writeHTML()},c.restoreHTML=function(){n.innerHTML="",l.removeChild(n),l.appendChild(q)},c._afterPrint=function(){c.restoreHTML(),o.styleSheet.cssText=""},r(b),r(k);if(c.disablePP)return;m.insertBefore(o,m.firstChild),o.media="print",o.className="iepp-printshim",a.attachEvent("onbeforeprint",c._beforePrint),a.attachEvent("onafterprint",c._afterPrint)}})(this,document)@*/
\ No newline at end of file
+/*! HTML5 Shiv v3.6 | @afarkas @jdalton @jon_neal @rem | MIT/GPL2 Licensed */
+(function(l,f){function m(){var a=e.elements;return"string"==typeof a?a.split(" "):a}function i(a){var b=n[a[o]];b||(b={},h++,a[o]=h,n[h]=b);return b}function p(a,b,c){b||(b=f);if(g)return b.createElement(a);c||(c=i(b));b=c.cache[a]?c.cache[a].cloneNode():r.test(a)?(c.cache[a]=c.createElem(a)).cloneNode():c.createElem(a);return b.canHaveChildren&&!s.test(a)?c.frag.appendChild(b):b}function t(a,b){if(!b.cache)b.cache={},b.createElem=a.createElement,b.createFrag=a.createDocumentFragment,b.frag=b.createFrag();
+a.createElement=function(c){return!e.shivMethods?b.createElem(c):p(c,a,b)};a.createDocumentFragment=Function("h,f","return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&("+m().join().replace(/\w+/g,function(a){b.createElem(a);b.frag.createElement(a);return'c("'+a+'")'})+");return n}")(e,b.frag)}function q(a){a||(a=f);var b=i(a);if(e.shivCSS&&!j&&!b.hasCSS){var c,d=a;c=d.createElement("p");d=d.getElementsByTagName("head")[0]||d.documentElement;c.innerHTML="x<style>article,aside,figcaption,figure,footer,header,hgroup,nav,section{display:block}mark{background:#FF0;color:#000}</style>";
+c=d.insertBefore(c.lastChild,d.firstChild);b.hasCSS=!!c}g||t(a,b);return a}var k=l.html5||{},s=/^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,r=/^<|^(?:a|b|button|code|div|fieldset|form|h1|h2|h3|h4|h5|h6|i|iframe|img|input|label|li|link|ol|option|p|param|q|script|select|span|strong|style|table|tbody|td|textarea|tfoot|th|thead|tr|ul)$/i,j,o="_html5shiv",h=0,n={},g;(function(){try{var a=f.createElement("a");a.innerHTML="<xyz></xyz>";j="hidden"in a;var b;if(!(b=1==a.childNodes.length)){f.createElement("a");
+var c=f.createDocumentFragment();b="undefined"==typeof c.cloneNode||"undefined"==typeof c.createDocumentFragment||"undefined"==typeof c.createElement}g=b}catch(d){g=j=!0}})();var e={elements:k.elements||"abbr article aside audio bdi canvas data datalist details figcaption figure footer header hgroup mark meter nav output progress section summary time video",shivCSS:!1!==k.shivCSS,supportsUnknownElements:g,shivMethods:!1!==k.shivMethods,type:"default",shivDocument:q,createElement:p,createDocumentFragment:function(a,
+b){a||(a=f);if(g)return a.createDocumentFragment();for(var b=b||i(a),c=b.frag.cloneNode(),d=0,e=m(),h=e.length;d<h;d++)c.createElement(e[d]);return c}};l.html5=e;q(f)})(this,document);
\ No newline at end of file
Binary file web/wp-content/themes/twentyeleven/languages/fr_FR.mo has changed
--- a/web/wp-content/themes/twentyeleven/languages/fr_FR.po	Wed Dec 19 12:35:13 2012 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,727 +0,0 @@
-# Copyright (C) 2010 Twenty Eleven
-# This file is distributed under the same license as the Twenty Eleven package.
-msgid ""
-msgstr ""
-"Project-Id-Version: Twenty Eleven (WordPress 3.4)\n"
-"Report-Msgid-Bugs-To: http://wordpress.org/tags/twentyeleven\n"
-"POT-Creation-Date: 2012-06-04 15:18:22+00:00\n"
-"PO-Revision-Date: 2012-06-06 01:08+0100\n"
-"Last-Translator: WordPress Francophone <traduction_at_wordpress-fr.net>\n"
-"Language-Team: WordPress-Francophone <traduction@wordpress-fr.net>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=n>1\n"
-"X-Poedit-Language: French\n"
-"X-Poedit-Country: FRANCE\n"
-"X-Poedit-SourceCharset: utf-8\n"
-
-#: 404.php:17
-msgid "This is somewhat embarrassing, isn&rsquo;t it?"
-msgstr "C&rsquo;est plutôt gênant, vous ne trouvez pas&nbsp;?"
-
-#: 404.php:21
-msgid "It seems we can&rsquo;t find what you&rsquo;re looking for. Perhaps searching, or one of the links below, can help."
-msgstr "Il semblerait que nous ne soyons pas en mesure de trouver votre contenu. Essayez en lançant une recherche, ou à l&rsquo;aide de l&rsquo;un des lien ci-dessous."
-
-#: 404.php:28
-msgid "Most Used Categories"
-msgstr "Catégories les plus utilisées"
-
-#. translators: %1$s: smilie
-#: 404.php:36
-msgid "Try looking in the monthly archives. %1$s"
-msgstr "Essayez de voir du côté des archives mensuelles. %1$s"
-
-#: archive.php:25
-msgid "Daily Archives: %s"
-msgstr "Archives quotidiennes&nbsp;:"
-
-#: archive.php:27
-msgid "Monthly Archives: %s"
-msgstr "Archives mensuelles&nbsp;: %s"
-
-#: archive.php:27
-msgctxt "monthly archives date format"
-msgid "F Y"
-msgstr "F Y"
-
-#: archive.php:29
-msgid "Yearly Archives: %s"
-msgstr "Archives annuelles&nbsp;: %s"
-
-#: archive.php:29
-msgctxt "yearly archives date format"
-msgid "Y"
-msgstr "Y"
-
-#: archive.php:31
-msgid "Blog Archives"
-msgstr "Archives du blog"
-
-#: archive.php:57
-#: author.php:74
-#: category.php:50
-#: index.php:37
-#: search.php:42
-#: tag.php:50
-msgid "Nothing Found"
-msgstr "Rien n&rsquo;a été trouvé"
-
-#: archive.php:61
-#: author.php:78
-#: category.php:54
-#: index.php:41
-#: tag.php:54
-msgid "Apologies, but no results were found for the requested archive. Perhaps searching will help find a related post."
-msgstr "Toutes nos excuses, mais votre requête pour cette archive n&rsquo;a donné aucun résultat. Peut-être aurez-vous plus de chance en lançant une recherche..."
-
-#: author.php:28
-msgid "Author Archives: %s"
-msgstr "Archives de l&rsquo;auteur&nbsp;: %s"
-
-#: author.php:49
-#: content-single.php:60
-msgid "About %s"
-msgstr "A propos %s"
-
-#: category.php:19
-msgid "Category Archives: %s"
-msgstr "Archives pour la catégorie %s"
-
-#: comments.php:17
-msgid "This post is password protected. Enter the password to view any comments."
-msgstr "Cet article est protégé par un mot de passe. Veuillez le saisir pour pouvoir lire ses commentaires."
-
-#: comments.php:33
-msgid "One thought on &ldquo;%2$s&rdquo;"
-msgid_plural "%1$s thoughts on &ldquo;%2$s&rdquo;"
-msgstr[0] "Une réflexion au sujet de &laquo;&nbsp;%2$s&nbsp;&raquo;"
-msgstr[1] "%1$s réflexions au sujet de &laquo;&nbsp;%2$s&nbsp;&raquo;"
-
-#: comments.php:40
-#: comments.php:60
-msgid "Comment navigation"
-msgstr "Navigation des commentaires"
-
-#: comments.php:41
-#: comments.php:61
-msgid "&larr; Older Comments"
-msgstr "&larr; Commentaire plus ancien"
-
-#: comments.php:42
-#: comments.php:62
-msgid "Newer Comments &rarr;"
-msgstr "Commentaires plus récents &rarr;"
-
-#: comments.php:72
-msgid "Comments are closed."
-msgstr "Les commentaires sont fermés."
-
-#: content-aside.php:16
-#: content-featured.php:14
-#: content-gallery.php:16
-#: content-gallery.php:48
-#: content-image.php:15
-#: content-link.php:16
-#: content-quote.php:14
-#: content-status.php:15
-#: content.php:15
-#: content.php:19
-#: inc/widgets.php:89
-#: showcase.php:120
-#: showcase.php:199
-msgid "Permalink to %s"
-msgstr "Permalien vers %s"
-
-#: content-aside.php:17
-msgid "Aside"
-msgstr "En passant"
-
-#: content-aside.php:22
-#: content-image.php:21
-#: content-link.php:22
-#: content-quote.php:24
-#: content-status.php:21
-#: content.php:30
-msgid "Reply"
-msgstr "Répondre"
-
-#: content-aside.php:22
-#: content-image.php:21
-#: content-link.php:22
-#: content-quote.php:24
-#: content-status.php:21
-#: content.php:30
-msgctxt "comments number"
-msgid "1"
-msgstr "1"
-
-#: content-aside.php:22
-#: content-image.php:21
-#: content-link.php:22
-#: content-quote.php:24
-#: content-status.php:21
-#: content.php:30
-msgctxt "comments number"
-msgid "%"
-msgstr "%"
-
-#: content-aside.php:33
-#: content-gallery.php:32
-#: content-image.php:27
-#: content-link.php:33
-#: content-quote.php:35
-#: content-status.php:34
-#: content.php:41
-#: functions.php:344
-msgid "Continue reading <span class=\"meta-nav\">&rarr;</span>"
-msgstr "Lire la suite <span class=\"meta-nav\">&rarr;</span>"
-
-#: content-aside.php:34
-#: content-featured.php:23
-#: content-gallery.php:54
-#: content-image.php:28
-#: content-intro.php:18
-#: content-link.php:34
-#: content-page.php:18
-#: content-quote.php:36
-#: content-single.php:24
-#: content-status.php:35
-#: content.php:42
-#: image.php:90
-msgid "Pages:"
-msgstr "Pages&nbsp;:"
-
-#: content-aside.php:42
-#: content-gallery.php:87
-#: content-image.php:64
-#: content-link.php:42
-#: content-quote.php:69
-#: content-status.php:43
-#: content.php:77
-#: showcase.php:201
-msgid "Leave a reply"
-msgstr "Laisser une réponse"
-
-#: content-aside.php:42
-#: content-gallery.php:87
-#: content-image.php:64
-#: content-link.php:42
-#: content-quote.php:69
-#: content-status.php:43
-#: content.php:77
-#: showcase.php:201
-msgid "<b>1</b> Reply"
-msgstr "<b>Une</b> réponse"
-
-#: content-aside.php:42
-#: content-gallery.php:87
-#: content-image.php:64
-#: content-link.php:42
-#: content-quote.php:69
-#: content-status.php:43
-#: content.php:77
-#: showcase.php:201
-msgid "<b>%</b> Replies"
-msgstr "<b>%</b> Réponses"
-
-#: content-aside.php:44
-#: content-featured.php:45
-#: content-gallery.php:90
-#: content-image.php:68
-#: content-intro.php:19
-#: content-link.php:44
-#: content-page.php:21
-#: content-quote.php:72
-#: content-single.php:52
-#: content-status.php:45
-#: content.php:80
-#: functions.php:522
-#: functions.php:550
-#: image.php:41
-msgid "Edit"
-msgstr "Modifier"
-
-#. translators: used between list items, there is a space after the comma
-#: content-featured.php:29
-#: content-featured.php:38
-#: content-gallery.php:62
-#: content-gallery.php:72
-#: content-image.php:47
-#: content-image.php:56
-#: content-quote.php:44
-#: content-quote.php:54
-#: content-single.php:30
-#: content-single.php:33
-#: content.php:51
-#: content.php:61
-msgid ", "
-msgstr ", "
-
-#: content-featured.php:31
-msgid "This entry was posted in %1$s and tagged %2$s. Bookmark the <a href=\"%3$s\" title=\"Permalink to %4$s\" rel=\"bookmark\">permalink</a>."
-msgstr "Ce contenu a été publié dans %1$s, et marqué avec %2$s. Mettez-le en favori avec son <a href=\"%3$s\" title=\"Permalien vers %4$s\" rel=\"bookmark\">permalien</a>."
-
-#: content-featured.php:33
-msgid "This entry was posted in %1$s. Bookmark the <a href=\"%3$s\" title=\"Permalink to %4$s\" rel=\"bookmark\">permalink</a>."
-msgstr "Ce contenu a été publié dans %1$s. Mettez-le en favori avec son <a href=\"%3$s\" title=\"Permalien vers %4$s\" rel=\"bookmark\">permalien</a>."
-
-#: content-gallery.php:17
-msgid "Gallery"
-msgstr "Galerie"
-
-#: content-gallery.php:47
-msgid "This gallery contains <a %1$s>%2$s photo</a>."
-msgid_plural "This gallery contains <a %1$s>%2$s photos</a>."
-msgstr[0] "Cette galerie contient <a %1$s>%2$s photo</a>."
-msgstr[1] "Cette galerie contient <a %1$s>%2$s photos</a>."
-
-#: content-gallery.php:66
-#: content-image.php:51
-#: content-quote.php:48
-#: content.php:55
-msgid "<span class=\"%1$s\">Posted in</span> %2$s"
-msgstr "<span class=\"%1$s\">Publié dans</span> %2$s"
-
-#: content-gallery.php:78
-#: content-image.php:59
-#: content-quote.php:60
-#: content.php:67
-msgid "<span class=\"%1$s\">Tagged</span> %2$s"
-msgstr "<span class=\"%1$s\">Mots-clefs&nbsp;:</span> %2$s"
-
-#: content-image.php:16
-msgid "Image"
-msgstr "Image"
-
-#: content-image.php:34
-msgid "<a href=\"%1$s\" rel=\"bookmark\"><time class=\"entry-date\" datetime=\"%2$s\" pubdate>%3$s</time></a><span class=\"by-author\"> <span class=\"sep\"> by </span> <span class=\"author vcard\"><a class=\"url fn n\" href=\"%4$s\" title=\"%5$s\" rel=\"author\">%6$s</a></span></span>"
-msgstr "<a href=\"%1$s\" rel=\"bookmark\"><time class=\"entry-date\" datetime=\"%2$s\" pubdate>%3$s</time></a><span class=\"by-author\"> <span class=\"sep\"> par </span> <span class=\"author vcard\"><a class=\"url fn n\" href=\"%4$s\" title=\"%5$s\" rel=\"author\">%6$s</a></span></span>"
-
-#: content-image.php:39
-#: functions.php:587
-msgid "View all posts by %s"
-msgstr "Afficher tous les articles par %s"
-
-#: content-link.php:17
-msgid "Link"
-msgstr "Lien"
-
-#: content-quote.php:15
-msgid "Quote"
-msgstr "Citation"
-
-#: content-single.php:35
-msgid "This entry was posted in %1$s and tagged %2$s by <a href=\"%6$s\">%5$s</a>. Bookmark the <a href=\"%3$s\" title=\"Permalink to %4$s\" rel=\"bookmark\">permalink</a>."
-msgstr "Ce contenu a été publié dans %1$s par <a href=\"%6$s\">%5$s</a>, et marqué avec %2$s. Mettez-le en favori avec son <a href=\"%3$s\" title=\"Permalien vers %4$s\" rel=\"bookmark\">permalien</a>."
-
-#: content-single.php:37
-msgid "This entry was posted in %1$s by <a href=\"%6$s\">%5$s</a>. Bookmark the <a href=\"%3$s\" title=\"Permalink to %4$s\" rel=\"bookmark\">permalink</a>."
-msgstr "Ce contenu a été publié dans %1$s par <a href=\"%6$s\">%5$s</a>. Mettez-le en favori avec son <a href=\"%3$s\" title=\"Permalien vers %4$s\" rel=\"bookmark\">permalien</a>."
-
-#: content-single.php:39
-msgid "This entry was posted by <a href=\"%6$s\">%5$s</a>. Bookmark the <a href=\"%3$s\" title=\"Permalink to %4$s\" rel=\"bookmark\">permalink</a>."
-msgstr "Ce contenu a été publié par <a href=\"%6$s\">%5$s</a>. Mettez-le en favori avec son <a href=\"%3$s\" title=\"Permalien vers %4$s\" rel=\"bookmark\">permalien</a>."
-
-#: content-single.php:64
-msgid "View all posts by %s <span class=\"meta-nav\">&rarr;</span>"
-msgstr "Afficher tous les articles de %s <span class=\"meta-nav\">&rarr;</span>"
-
-#: content-status.php:16
-msgid "Status"
-msgstr "Humeur du moment"
-
-#: content.php:16
-msgid "Featured"
-msgstr "Mis en avant"
-
-#. #-#-#-#-#  twentyeleven.pot (Twenty Eleven 1.3)  #-#-#-#-#
-#. Author URI of the plugin/theme
-#: footer.php:27
-msgid "http://wordpress.org/"
-msgstr "http://wordpress.org/"
-
-#: footer.php:27
-msgid "Semantic Personal Publishing Platform"
-msgstr "Plate-forme de publication personnelle à la pointe de la sémantique"
-
-#: footer.php:27
-msgid "Proudly powered by %s"
-msgstr "Fièrement propulsé par %s"
-
-#: functions.php:95
-msgid "Primary Menu"
-msgstr "Menu principal"
-
-#. translators: header image description
-#: functions.php:164
-msgid "Wheel"
-msgstr "Roue"
-
-#. translators: header image description
-#: functions.php:170
-msgid "Shore"
-msgstr "Rivage"
-
-#. translators: header image description
-#: functions.php:176
-msgid "Trolley"
-msgstr "Tramway"
-
-#. translators: header image description
-#: functions.php:182
-msgid "Pine Cone"
-msgstr "Pomme de pin"
-
-#. translators: header image description
-#: functions.php:188
-msgid "Chessboard"
-msgstr "Damier"
-
-#. translators: header image description
-#: functions.php:194
-msgid "Lanterns"
-msgstr "Lanternes"
-
-#. translators: header image description
-#: functions.php:200
-msgid "Willow"
-msgstr "Saule"
-
-#. translators: header image description
-#: functions.php:206
-msgid "Hanoi Plant"
-msgstr "Plante de Hanoï"
-
-#: functions.php:391
-msgid "Main Sidebar"
-msgstr "Colonne principale"
-
-#: functions.php:400
-msgid "Showcase Sidebar"
-msgstr "Colonne latérale de la vitrine"
-
-#: functions.php:402
-msgid "The sidebar for the optional Showcase Template"
-msgstr "La colonne latérale pour le modèle factultatif de vitrine"
-
-#: functions.php:410
-msgid "Footer Area One"
-msgstr "Zone 1 du pied de page"
-
-#: functions.php:412
-#: functions.php:422
-#: functions.php:432
-msgid "An optional widget area for your site footer"
-msgstr "Une zone facultative de widgets pour le pied de page de votre site"
-
-#: functions.php:420
-msgid "Footer Area Two"
-msgstr "Zone 2 du pied de page"
-
-#: functions.php:430
-msgid "Footer Area Three"
-msgstr "Zone 3 du pied de page"
-
-#: functions.php:450
-#: single.php:18
-msgid "Post navigation"
-msgstr "Navigation des articles"
-
-#: functions.php:451
-msgid "<span class=\"meta-nav\">&larr;</span> Older posts"
-msgstr "<span class=\"meta-nav\">&larr;</span> Articles plus anciens"
-
-#: functions.php:452
-msgid "Newer posts <span class=\"meta-nav\">&rarr;</span>"
-msgstr "Articles plus récents <span class=\"meta-nav\">&rarr;</span>"
-
-#: functions.php:522
-msgid "Pingback:"
-msgstr "Ping&nbsp;:"
-
-#. translators: 1: comment author, 2: date and time
-#: functions.php:539
-msgid "%1$s on %2$s <span class=\"says\">said:</span>"
-msgstr "Le %2$s, %1$s <span class=\"says\">a dit&nbsp;:</span>"
-
-#. translators: 1: date, 2: time
-#: functions.php:545
-msgid "%1$s at %2$s"
-msgstr "%1$s à %2$s"
-
-#: functions.php:554
-msgid "Your comment is awaiting moderation."
-msgstr "Votre commentaire est en attente de validation."
-
-#: functions.php:563
-msgid "Reply <span>&darr;</span>"
-msgstr "Répondre <span>&darr;</span>"
-
-#: functions.php:581
-msgid "<span class=\"sep\">Posted on </span><a href=\"%1$s\" title=\"%2$s\" rel=\"bookmark\"><time class=\"entry-date\" datetime=\"%3$s\" pubdate>%4$s</time></a><span class=\"by-author\"> <span class=\"sep\"> by </span> <span class=\"author vcard\"><a class=\"url fn n\" href=\"%5$s\" title=\"%6$s\" rel=\"author\">%7$s</a></span></span>"
-msgstr "<span class=\"sep\">Publié le </span><a href=\"%1$s\" title=\"%2$s\" rel=\"bookmark\"><time class=\"entry-date\" datetime=\"%3$s\" pubdate>%4$s</time></a><span class=\"by-author\"> <span class=\"sep\"> par </span> <span class=\"author vcard\"><a class=\"url fn n\" href=\"%5$s\" title=\"%6$s\" rel=\"author\">%7$s</a></span></span>"
-
-#: header.php:45
-msgid "Page %s"
-msgstr "Page %s"
-
-#: header.php:129
-msgid "Main menu"
-msgstr "Menu principal"
-
-#: header.php:131
-msgid "Skip to primary content"
-msgstr "Aller au contenu principal"
-
-#: header.php:132
-msgid "Skip to secondary content"
-msgstr "Aller au contenu secondaire"
-
-#: image.php:18
-msgid "Image navigation"
-msgstr "Navigation des images"
-
-#: image.php:19
-msgid "&larr; Previous"
-msgstr "&larr; Précédent"
-
-#: image.php:20
-msgid "Next &rarr;"
-msgstr "Suivant &rarr;"
-
-#: image.php:30
-msgid "<span class=\"meta-prep meta-prep-entry-date\">Published </span> <span class=\"entry-date\"><abbr class=\"published\" title=\"%1$s\">%2$s</abbr></span> at <a href=\"%3$s\" title=\"Link to full-size image\">%4$s &times; %5$s</a> in <a href=\"%6$s\" title=\"Return to %7$s\" rel=\"gallery\">%8$s</a>"
-msgstr "<span class=\"meta-prep meta-prep-entry-date\">Publié le </span> <span class=\"entry-date\"><abbr class=\"published\" title=\"%1$s\">%2$s</abbr></span> à <a href=\"%3$s\" title=\"Lien vers l'image en taille originale\">%4$s &times; %5$s</a> dans <a href=\"%6$s\" title=\"Revenir à %7$s\" rel=\"gallery\">%8$s</a>"
-
-#: inc/theme-options.php:55
-#: inc/theme-options.php:474
-msgid "Color Scheme"
-msgstr "Jeu de couleurs"
-
-#: inc/theme-options.php:61
-#: inc/theme-options.php:491
-msgid "Link Color"
-msgstr "Couleur des liens"
-
-#: inc/theme-options.php:62
-msgid "Default Layout"
-msgstr "Mise en page par défaut"
-
-#: inc/theme-options.php:94
-#: inc/theme-options.php:95
-msgid "Theme Options"
-msgstr "Options du thème"
-
-#: inc/theme-options.php:110
-msgid "Some themes provide customization options that are grouped together on a Theme Options screen. If you change themes, options may change or disappear, as they are theme-specific. Your current theme, Twenty Eleven, provides the following Theme Options:"
-msgstr "Certains thèmes proposent des options de personnalisation, regroupées sur l&rsquo;écran &laquo;&nbsp;Options du thème"
-
-#: inc/theme-options.php:112
-msgid "<strong>Color Scheme</strong>: You can choose a color palette of \"Light\" (light background with dark text) or \"Dark\" (dark background with light text) for your site."
-msgstr "<strong>Jeu de couleurs</strong>&nbsp;: vous pouvez choisir comme palette de couleurs pour votre site &laquo;&nbsp;Clair&nbsp;&raquo; (fond clair et texte foncé), ou  &laquo;&nbsp;Foncé&nbsp;&raquo; (fond foncé et texte clair)."
-
-#: inc/theme-options.php:113
-msgid "<strong>Link Color</strong>: You can choose the color used for text links on your site. You can enter the HTML color or hex code, or you can choose visually by clicking the \"Select a Color\" button to pick from a color wheel."
-msgstr "<strong>Couleur des liens</strongs>&nbsp;: vous pouvez choisir la couleur des liens textuels de votre site. Saisissez le code couleur (code HTML ou hexadécimal), ou choisissez-la avec le sélecteur de couleur, en cliquant sur &laquo;&nbsp;Choisir une couleur&nbsp;&raquo;."
-
-#: inc/theme-options.php:114
-msgid "<strong>Default Layout</strong>: You can choose if you want your site&#8217;s default layout to have a sidebar on the left, the right, or not at all."
-msgstr "<strong>Mise en page par défaut</strong>&nbsp;: si vous le souhaitez, votre site peut afficher sa barre latérale sur le côté droit, le côté gauche, ou ne pas l&rsquo;afficher du tout."
-
-#: inc/theme-options.php:116
-msgid "Remember to click \"Save Changes\" to save any changes you have made to the theme options."
-msgstr "N&rsquo;oubliez pas de cliquer sur &laquo;&nbsp;Enregistrer les modifications&nbsp;&raquo; pour conserver toutes les modifications apportées aux options du thème"
-
-#: inc/theme-options.php:118
-msgid "For more information:"
-msgstr "Pour plus d&rsquo;information&nbsp;:"
-
-#: inc/theme-options.php:119
-msgid "<a href=\"http://codex.wordpress.org/Appearance_Theme_Options_Screen\" target=\"_blank\">Documentation on Theme Options</a>"
-msgstr "<a href=\"http://codex.wordpress.org/Appearance_Theme_Options_Screen\" target=\"_blank\">Documentation sur les options du thème (en)</a>"
-
-#: inc/theme-options.php:120
-msgid "<a href=\"http://wordpress.org/support/\" target=\"_blank\">Support Forums</a>"
-msgstr "<a href=\"http://www.wordpress-fr.net/support/\" target=\"_blank\">Forums d&rsquo;entraide en français</a>"
-
-#: inc/theme-options.php:127
-msgid "Overview"
-msgstr "Vue d'ensemble"
-
-#: inc/theme-options.php:149
-msgid "Light"
-msgstr "Clair"
-
-#: inc/theme-options.php:155
-msgid "Dark"
-msgstr "Foncé"
-
-#: inc/theme-options.php:173
-msgid "Content on left"
-msgstr "Contenu à gauche"
-
-#: inc/theme-options.php:178
-msgid "Content on right"
-msgstr "Contenu à droite"
-
-#: inc/theme-options.php:183
-msgid "One-column, no sidebar"
-msgstr "Une colonne, pas de barre latérale"
-
-#: inc/theme-options.php:273
-msgid "Select a Color"
-msgstr "Choisir une couleur"
-
-#: inc/theme-options.php:276
-msgid "Default color: %s"
-msgstr "Couleur par défaut&nbsp;:"
-
-#: inc/theme-options.php:312
-msgid "%s Theme Options"
-msgstr "Options du thème %s"
-
-#: inc/theme-options.php:498
-msgid "Layout"
-msgstr "Mise en page"
-
-#: inc/widgets.php:19
-msgid "Use this widget to list your recent Aside, Status, Quote, and Link posts"
-msgstr "Utiliser ce widget pour lister vos derniers contenus court&nbsp;: en passant, humeur du moment, citation, liens..."
-
-#: inc/widgets.php:20
-msgid "Twenty Eleven Ephemera"
-msgstr "Contenu éphémère de Twenty Ten"
-
-#: inc/widgets.php:52
-msgid "Ephemera"
-msgstr "Éphémère"
-
-#: inc/widgets.php:91
-#: inc/widgets.php:107
-msgid "0 <span class=\"reply\">comments &rarr;</span>"
-msgstr "Aucun <span class=\"reply\">commentaire &rarr;</span>"
-
-#: inc/widgets.php:91
-#: inc/widgets.php:107
-msgid "1 <span class=\"reply\">comment &rarr;</span>"
-msgstr "Un <span class=\"reply\">commentaire &rarr;</span>"
-
-#: inc/widgets.php:91
-#: inc/widgets.php:107
-msgid "% <span class=\"reply\">comments &rarr;</span>"
-msgstr "% <span class=\"reply\">commentaires &rarr;</span>"
-
-#: inc/widgets.php:105
-msgid "Link to %s"
-msgstr "Lien vers %s"
-
-#: inc/widgets.php:157
-msgid "Title:"
-msgstr "Titre&nbsp;:"
-
-#: inc/widgets.php:160
-msgid "Number of posts to show:"
-msgstr "Nombre d&rsquo;articles à afficher&nbsp;:"
-
-#: search.php:18
-msgid "Search Results for: %s"
-msgstr "Résultats de recherche pour %s"
-
-#: search.php:46
-msgid "Sorry, but nothing matched your search criteria. Please try again with some different keywords."
-msgstr "Désolé, mais rien ne correspond à votre critères de recherche. Veuillez réessayer avec d&rsquo;autres mots-clefs."
-
-#: searchform.php:11
-#: searchform.php:12
-#: searchform.php:13
-msgid "Search"
-msgstr "Recherche"
-
-#: showcase.php:77
-msgid "Featured Post"
-msgstr "Article mis en avant"
-
-#: showcase.php:150
-msgid "Featuring: %s"
-msgstr "Mise en avant&nbsp;: %s"
-
-#: showcase.php:160
-msgid "Recent Posts"
-msgstr "Articles récents"
-
-#: sidebar.php:19
-msgid "Archives"
-msgstr "Archives"
-
-#: sidebar.php:26
-msgid "Meta"
-msgstr "Méta"
-
-#: single.php:19
-msgid "<span class=\"meta-nav\">&larr;</span> Previous"
-msgstr "<span class=\"meta-nav\">&larr;</span> Précédent"
-
-#: single.php:20
-msgid "Next <span class=\"meta-nav\">&rarr;</span>"
-msgstr "Suivant <span class=\"meta-nav\">&rarr;</span>"
-
-#: tag.php:19
-msgid "Tag Archives: %s"
-msgstr "Archives du mot-clef %s"
-
-#. Theme Name of the plugin/theme
-msgid "Twenty Eleven"
-msgstr "Twenty Eleven"
-
-#. Theme URI of the plugin/theme
-msgid "http://wordpress.org/extend/themes/twentyeleven"
-msgstr "http://wordpress.org/extend/themes/twentyeleven"
-
-#. Description of the plugin/theme
-msgid "The 2011 theme for WordPress is sophisticated, lightweight, and adaptable. Make it yours with a custom menu, header image, and background -- then go further with available theme options for light or dark color scheme, custom link colors, and three layout choices. Twenty Eleven comes equipped with a Showcase page template that transforms your front page into a showcase to show off your best content, widget support galore (sidebar, three footer areas, and a Showcase page widget area), and a custom \"Ephemera\" widget to display your Aside, Link, Quote, or Status posts. Included are styles for print and for the admin editor, support for featured images (as custom header images on posts and pages and as large images on featured \"sticky\" posts), and special styles for six different post formats."
-msgstr "Le thème par défaut de WordPress pour 2011 est sophistiqué, léger et adaptable. Faites-le vôtre avec un menu personnalisé, une image d&rsquo;en-tête et de fond - puis aller plus loin avec les options disponibles pour les couleurs du thèmes (claires ou foncées), celle des liens, et trois choix de mise en page. Twenty-Elevent est équipé d&rsquo;un modèle de page Vitrine qui transforme votre page d&rsquo;accueil en une vitrine pour montrer vos meilleurs contenus, reconnaît de nombreux widgets (colonne latérale, pied de page à trois zones, et une zone de widget pour la page page vitrine), et un widget personnalisable Ephémères, pour afficher vos contenus écrits en passant, vos liens, citations ou humeurs du moment. Sont inclus les styles pour l&rsquo;impression et pour l&rsquo;éditeur de l&rsquo;administration, reconnaissance des images mises en avant (comme les images en-tête personnalisables par article et par page, ou la reprise en grand des images articles mis en avant), et des styles spéciaux pour six formats différents d&rsquo;articles."
-
-#. Author of the plugin/theme
-msgid "the WordPress team"
-msgstr "L&rsquo;équipe WordPress"
-
-#. Tags of the plugin/theme
-msgid "dark, light, white, black, gray, one-column, two-columns, left-sidebar, right-sidebar, fixed-width, flexible-width, custom-background, custom-colors, custom-header, custom-menu, editor-style, featured-image-header, featured-images, full-width-template, microformats, post-formats, rtl-language-support, sticky-post, theme-options, translation-ready"
-msgstr "dark, light, white, black, gray, one-column, two-columns, left-sidebar, right-sidebar, fixed-width, flexible-width, custom-background, custom-colors, custom-header, custom-menu, editor-style, featured-image-header, featured-images, full-width-template, microformats, post-formats, rtl-language-support, sticky-post, theme-options, translation-ready"
-
-#. Template Name of the plugin/theme
-msgid "Showcase Template"
-msgstr "Modèle de vitrine"
-
-#. Template Name of the plugin/theme
-msgid "Sidebar Template"
-msgstr "Modèle de colonne latérale"
-
-#~ msgid "<strong>1</strong> Reply"
-#~ msgstr "<b>Une</b> réponse"
-
-#~ msgid "<strong>%</strong> Replies"
-#~ msgstr "<b>%</b> réponses"
-
-#~ msgid "Leave a Reply"
-#~ msgstr "Laisser une réponse"
-
-#~ msgid "Screen Info"
-#~ msgstr "Information de l&rsquo;écran"
-
-#~ msgid "(Edit)"
-#~ msgstr "(Modifier)"
-
-#~ msgid "[Edit]"
-#~ msgstr "[Modifier]"
-
-#~ msgid "<span class=\"leave-reply\">Reply</span>"
-#~ msgstr "<span class=\"leave-reply\">Répondre</span>"
-
-#~ msgid "<span class=\"leave-reply\">Leave a reply</span>"
-#~ msgstr "<span class=\"leave-reply\">Laisser une réponse</span>"
-
-#~ msgid "<span>Pages:</span>"
-#~ msgstr "<span>Pages&nbsp;:</span>"
--- a/web/wp-content/themes/twentyeleven/languages/twentyeleven.pot	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-content/themes/twentyeleven/languages/twentyeleven.pot	Wed Dec 19 17:46:52 2012 -0800
@@ -2,9 +2,9 @@
 # This file is distributed under the GNU General Public License v2 or later.
 msgid ""
 msgstr ""
-"Project-Id-Version: Twenty Eleven 1.4\n"
+"Project-Id-Version: Twenty Eleven 1.5\n"
 "Report-Msgid-Bugs-To: http://wordpress.org/tags/twentyeleven\n"
-"POT-Creation-Date: 2012-06-10 15:18:15+00:00\n"
+"POT-Creation-Date: 2012-12-07 21:19:12+00:00\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
@@ -103,7 +103,7 @@
 msgid "Newer Comments &rarr;"
 msgstr ""
 
-#: comments.php:72
+#: comments.php:71
 msgid "Comments are closed."
 msgstr ""
 
@@ -137,7 +137,7 @@
 
 #: content-aside.php:33 content-gallery.php:32 content-image.php:27
 #: content-link.php:33 content-quote.php:35 content-status.php:34
-#: content.php:41 functions.php:344
+#: content.php:41 functions.php:345
 msgid "Continue reading <span class=\"meta-nav\">&rarr;</span>"
 msgstr ""
 
@@ -150,26 +150,26 @@
 
 #: content-aside.php:42 content-gallery.php:87 content-image.php:64
 #: content-link.php:42 content-quote.php:69 content-status.php:43
-#: content.php:77 showcase.php:201
+#: content.php:79 showcase.php:201
 msgid "Leave a reply"
 msgstr ""
 
 #: content-aside.php:42 content-gallery.php:87 content-image.php:64
 #: content-link.php:42 content-quote.php:69 content-status.php:43
-#: content.php:77 showcase.php:201
+#: content.php:79 showcase.php:201
 msgid "<b>1</b> Reply"
 msgstr ""
 
 #: content-aside.php:42 content-gallery.php:87 content-image.php:64
 #: content-link.php:42 content-quote.php:69 content-status.php:43
-#: content.php:77 showcase.php:201
+#: content.php:79 showcase.php:201
 msgid "<b>%</b> Replies"
 msgstr ""
 
 #: content-aside.php:44 content-featured.php:45 content-gallery.php:90
 #: content-image.php:68 content-intro.php:19 content-link.php:44
 #: content-page.php:21 content-quote.php:72 content-single.php:52
-#: content-status.php:45 content.php:80 functions.php:522 functions.php:550
+#: content-status.php:45 content.php:82 functions.php:525 functions.php:553
 #: image.php:41
 msgid "Edit"
 msgstr ""
@@ -178,7 +178,7 @@
 #: content-featured.php:29 content-featured.php:38 content-gallery.php:62
 #: content-gallery.php:72 content-image.php:47 content-image.php:56
 #: content-quote.php:44 content-quote.php:54 content-single.php:30
-#: content-single.php:33 content.php:51 content.php:61
+#: content-single.php:33 content.php:51 content.php:63
 msgid ", "
 msgstr ""
 
@@ -210,7 +210,7 @@
 msgstr ""
 
 #: content-gallery.php:78 content-image.php:59 content-quote.php:60
-#: content.php:67
+#: content.php:69
 msgid "<span class=\"%1$s\">Tagged</span> %2$s"
 msgstr ""
 
@@ -221,12 +221,12 @@
 #: content-image.php:34
 msgid ""
 "<a href=\"%1$s\" rel=\"bookmark\"><time class=\"entry-date\" datetime=\"%2$s"
-"\" pubdate>%3$s</time></a><span class=\"by-author\"> <span class=\"sep\"> by "
-"</span> <span class=\"author vcard\"><a class=\"url fn n\" href=\"%4$s\" "
-"title=\"%5$s\" rel=\"author\">%6$s</a></span></span>"
+"\">%3$s</time></a><span class=\"by-author\"> <span class=\"sep\"> by </span> "
+"<span class=\"author vcard\"><a class=\"url fn n\" href=\"%4$s\" title=\"%5$s"
+"\" rel=\"author\">%6$s</a></span></span>"
 msgstr ""
 
-#: content-image.php:39 functions.php:587
+#: content-image.php:39 functions.php:590
 msgid "View all posts by %s"
 msgstr ""
 
@@ -269,7 +269,7 @@
 msgid "Featured"
 msgstr ""
 
-#. #-#-#-#-#  twentyeleven.pot (Twenty Eleven 1.4)  #-#-#-#-#
+#. #-#-#-#-#  twentyeleven.pot (Twenty Eleven 1.5)  #-#-#-#-#
 #. Author URI of the plugin/theme
 #: footer.php:27
 msgid "http://wordpress.org/"
@@ -327,75 +327,75 @@
 msgid "Hanoi Plant"
 msgstr ""
 
-#: functions.php:391
+#: functions.php:394
 msgid "Main Sidebar"
 msgstr ""
 
-#: functions.php:400
+#: functions.php:403
 msgid "Showcase Sidebar"
 msgstr ""
 
-#: functions.php:402
+#: functions.php:405
 msgid "The sidebar for the optional Showcase Template"
 msgstr ""
 
-#: functions.php:410
+#: functions.php:413
 msgid "Footer Area One"
 msgstr ""
 
-#: functions.php:412 functions.php:422 functions.php:432
+#: functions.php:415 functions.php:425 functions.php:435
 msgid "An optional widget area for your site footer"
 msgstr ""
 
-#: functions.php:420
+#: functions.php:423
 msgid "Footer Area Two"
 msgstr ""
 
-#: functions.php:430
+#: functions.php:433
 msgid "Footer Area Three"
 msgstr ""
 
-#: functions.php:450 single.php:18
+#: functions.php:453 single.php:18
 msgid "Post navigation"
 msgstr ""
 
-#: functions.php:451
+#: functions.php:454
 msgid "<span class=\"meta-nav\">&larr;</span> Older posts"
 msgstr ""
 
-#: functions.php:452
+#: functions.php:455
 msgid "Newer posts <span class=\"meta-nav\">&rarr;</span>"
 msgstr ""
 
-#: functions.php:522
+#: functions.php:525
 msgid "Pingback:"
 msgstr ""
 
 #. translators: 1: comment author, 2: date and time
-#: functions.php:539
+#: functions.php:542
 msgid "%1$s on %2$s <span class=\"says\">said:</span>"
 msgstr ""
 
 #. translators: 1: date, 2: time
-#: functions.php:545
+#: functions.php:548
 msgid "%1$s at %2$s"
 msgstr ""
 
-#: functions.php:554
+#: functions.php:557
 msgid "Your comment is awaiting moderation."
 msgstr ""
 
-#: functions.php:563
+#: functions.php:566
 msgid "Reply <span>&darr;</span>"
 msgstr ""
 
-#: functions.php:581
+#: functions.php:584
 msgid ""
 "<span class=\"sep\">Posted on </span><a href=\"%1$s\" title=\"%2$s\" rel="
-"\"bookmark\"><time class=\"entry-date\" datetime=\"%3$s\" pubdate>%4$s</"
-"time></a><span class=\"by-author\"> <span class=\"sep\"> by </span> <span "
-"class=\"author vcard\"><a class=\"url fn n\" href=\"%5$s\" title=\"%6$s\" "
-"rel=\"author\">%7$s</a></span></span>"
+"\"bookmark\"><time class=\"entry-date\" datetime=\"%3$s\">%4$s</time></"
+"a><span class=\"by-author\"> <span class=\"sep\"> by </span> <span class="
+"\"author vcard\"><a class=\"url fn n\" href=\"%5$s\" title=\"%6$s\" rel="
+"\"author\">%7$s</a></span></span>"
 msgstr ""
 
 #: header.php:45
@@ -651,15 +651,6 @@
 msgid "the WordPress team"
 msgstr ""
 
-#. Tags of the plugin/theme
-msgid ""
-"dark, light, white, black, gray, one-column, two-columns, left-sidebar, "
-"right-sidebar, fixed-width, flexible-width, custom-background, custom-"
-"colors, custom-header, custom-menu, editor-style, featured-image-header, "
-"featured-images, full-width-template, microformats, post-formats, rtl-"
-"language-support, sticky-post, theme-options, translation-ready"
-msgstr ""
-
 #. Template Name of the plugin/theme
 msgid "Showcase Template"
 msgstr ""
Binary file web/wp-content/themes/twentyeleven/screenshot.png has changed
--- a/web/wp-content/themes/twentyeleven/showcase.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-content/themes/twentyeleven/showcase.php	Wed Dec 19 17:46:52 2012 -0800
@@ -117,7 +117,7 @@
 								else
 									$thumbnail_size = 'small-feature';
 								?>
-								<a href="<?php the_permalink(); ?>" title="<?php printf( esc_attr__( 'Permalink to %s', 'twentyeleven' ), the_title_attribute( 'echo=0' ) ); ?>" rel="bookmark"><?php the_post_thumbnail( $thumbnail_size ); ?></a>
+								<a href="<?php the_permalink(); ?>" title="<?php echo esc_attr( sprintf( __( 'Permalink to %s', 'twentyeleven' ), the_title_attribute( 'echo=0' ) ) ); ?>" rel="bookmark"><?php the_post_thumbnail( $thumbnail_size ); ?></a>
 								<?php
 							}
 						?>
@@ -147,7 +147,7 @@
 							else
 								$class = '';
 				    	?>
-						<li><a href="#featured-post-<?php echo $counter_slider; ?>" title="<?php printf( esc_attr__( 'Featuring: %s', 'twentyeleven' ), the_title_attribute( 'echo=0' ) ); ?>" <?php echo $class; ?>></a></li>
+						<li><a href="#featured-post-<?php echo $counter_slider; ?>" title="<?php echo esc_attr( sprintf( __( 'Featuring: %s', 'twentyeleven' ), the_title_attribute( 'echo=0' ) ) ); ?>" <?php echo $class; ?>></a></li>
 					<?php endwhile;	?>
 					</ul>
 				</nav>
@@ -196,7 +196,7 @@
 					while ( $recent->have_posts() ) : $recent->the_post(); ?>
 
 						<li class="entry-title">
-							<a href="<?php the_permalink(); ?>" title="<?php printf( esc_attr__( 'Permalink to %s', 'twentyeleven' ), the_title_attribute( 'echo=0' ) ); ?>" rel="bookmark"><?php the_title(); ?></a>
+							<a href="<?php the_permalink(); ?>" title="<?php echo esc_attr( sprintf( __( 'Permalink to %s', 'twentyeleven' ), the_title_attribute( 'echo=0' ) ) ); ?>" rel="bookmark"><?php the_title(); ?></a>
 							<span class="comments-link">
 								<?php comments_popup_link( '<span class="leave-reply">' . __( 'Leave a reply', 'twentyeleven' ) . '</span>', __( '<b>1</b> Reply', 'twentyeleven' ), __( '<b>%</b> Replies', 'twentyeleven' ) ); ?>
 							</span>
--- a/web/wp-content/themes/twentyeleven/single.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-content/themes/twentyeleven/single.php	Wed Dec 19 17:46:52 2012 -0800
@@ -20,7 +20,7 @@
 						<span class="nav-next"><?php next_post_link( '%link', __( 'Next <span class="meta-nav">&rarr;</span>', 'twentyeleven' ) ); ?></span>
 					</nav><!-- #nav-single -->
 
-					<?php get_template_part( 'content', 'single' ); ?>
+					<?php get_template_part( 'content-single', get_post_format() ); ?>
 
 					<?php comments_template( '', true ); ?>
 
--- a/web/wp-content/themes/twentyeleven/style.css	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-content/themes/twentyeleven/style.css	Wed Dec 19 17:46:52 2012 -0800
@@ -4,10 +4,10 @@
 Author: the WordPress team
 Author URI: http://wordpress.org/
 Description: The 2011 theme for WordPress is sophisticated, lightweight, and adaptable. Make it yours with a custom menu, header image, and background -- then go further with available theme options for light or dark color scheme, custom link colors, and three layout choices. Twenty Eleven comes equipped with a Showcase page template that transforms your front page into a showcase to show off your best content, widget support galore (sidebar, three footer areas, and a Showcase page widget area), and a custom "Ephemera" widget to display your Aside, Link, Quote, or Status posts. Included are styles for print and for the admin editor, support for featured images (as custom header images on posts and pages and as large images on featured "sticky" posts), and special styles for six different post formats.
-Version: 1.4
+Version: 1.5
 License: GNU General Public License v2 or later
 License URI: http://www.gnu.org/licenses/gpl-2.0.html
-Tags: dark, light, white, black, gray, one-column, two-columns, left-sidebar, right-sidebar, fixed-width, flexible-width, custom-background, custom-colors, custom-header, custom-menu, editor-style, featured-image-header, featured-images, full-width-template, microformats, post-formats, rtl-language-support, sticky-post, theme-options, translation-ready
+Tags: dark, light, white, black, gray, one-column, two-columns, left-sidebar, right-sidebar, fixed-width, flexible-width, custom-background, custom-colors, custom-header, custom-menu, editor-style, featured-image-header, featured-images, flexible-header, full-width-template, microformats, post-formats, rtl-language-support, sticky-post, theme-options, translation-ready
 Text Domain: twentyeleven
 */
 
@@ -431,10 +431,16 @@
 sub {
 	top: .5ex;
 }
+small {
+	font-size: smaller;
+}
 
 /* Forms */
 input[type=text],
 input[type=password],
+input[type=email],
+input[type=url],
+input[type=number],
 textarea {
 	background: #fafafa;
 	-moz-box-shadow: inset 0 1px 1px rgba(0,0,0,0.1);
@@ -444,6 +450,10 @@
 	color: #888;
 }
 input[type=text]:focus,
+input[type=password]:focus,
+input[type=email]:focus,
+input[type=url]:focus,
+input[type=number]:focus,
 textarea:focus {
 	color: #373737;
 }
@@ -451,7 +461,11 @@
 	padding-left: 3px;
 	width: 98%;
 }
-input[type=text] {
+input[type=text],
+input[type=password],
+input[type=email],
+input[type=url],
+input[type=number] {
 	padding: 3px;
 }
 input#s {
@@ -530,7 +544,7 @@
 }
 #branding img {
 	height: auto;
-	margin-bottom: -7px;
+	display: block;
 	width: 100%;
 }
 
@@ -962,12 +976,15 @@
 	border-color: #ddd;
 }
 
-/* Make sure embeds and iframes fit their containers */
+/* Make sure videos and embeds fit their containers */
 embed,
 iframe,
 object {
 	max-width: 100%;
 }
+.entry-content .twitter-tweet-rendered {
+	max-width: 100% !important; /* Override the Twitter embed fixed width */
+}
 
 /* Password Protected Posts */
 .post-password-required .entry-header .comments-link {
@@ -1190,6 +1207,7 @@
 	float: left;
 	display: block;
 	margin: .375em 1.625em 0 0;
+	max-width: 100%;
 }
 
 
@@ -1751,6 +1769,10 @@
 	font-size: 12px;
 }
 .widget {
+	word-wrap: break-word;
+	-webkit-hyphens: auto;
+	-moz-hyphens: auto;
+	hyphens: auto;
 	clear: both;
 	margin: 0 0 2.2em;
 }
@@ -1960,6 +1982,10 @@
 }
 .commentlist .children li.comment .comment-content {
 	margin: 1.625em 0 0;
+	word-wrap: break-word;
+	-webkit-hyphens: auto;
+	-moz-hyphens: auto;
+	hyphens: auto;
 }
 .comment-meta a {
 	font-weight: bold;
@@ -2116,7 +2142,6 @@
 	font-weight: bold;
 	left: 75%;
 	position: absolute;
-	top: 45px;
 	z-index: 1;
 }
 #respond .comment-notes,
@@ -2686,9 +2711,9 @@
 	margin-right: 7.6%;
 }
 
-/* =IE8 
------------------------------------------------ */ 
- 
-#ie8 section.feature-image.large img { 
-	width: 100%; 
-} 
\ No newline at end of file
+/* =IE8
+----------------------------------------------- */
+
+#ie8 section.feature-image.large img {
+	width: 100%;
+}
\ No newline at end of file
--- a/web/wp-content/themes/twentyten/comments.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-content/themes/twentyten/comments.php	Wed Dec 19 17:46:52 2012 -0800
@@ -62,15 +62,13 @@
 			</div><!-- .navigation -->
 <?php endif; // check for comment navigation ?>
 
-<?php else : // or, if we don't have comments:
-
-	/* If there are no comments and comments are closed,
-	 * let's leave a little note, shall we?
+	<?php
+	/* If there are no comments and comments are closed, let's leave a little note, shall we?
+	 * But we only want the note on posts and pages that had comments in the first place.
 	 */
-	if ( ! comments_open() ) :
-?>
-	<p class="nocomments"><?php _e( 'Comments are closed.', 'twentyten' ); ?></p>
-<?php endif; // end ! comments_open() ?>
+	if ( ! comments_open() && get_comments_number() ) : ?>
+		<p class="nocomments"><?php _e( 'Comments are closed.' , 'twentyten' ); ?></p>
+	<?php endif;  ?>
 
 <?php endif; // end have_comments() ?>
 
--- a/web/wp-content/themes/twentyten/footer.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-content/themes/twentyten/footer.php	Wed Dec 19 17:46:52 2012 -0800
@@ -30,7 +30,7 @@
 
 			<div id="site-generator">
 				<?php do_action( 'twentyten_credits' ); ?>
-				<a href="<?php echo esc_url( __( 'http://wordpress.org/', 'twentyten' ) ); ?>" title="<?php esc_attr_e( 'Semantic Personal Publishing Platform', 'twentyten' ); ?>" rel="generator"><?php printf( __( 'Proudly powered by %s.', 'twentyten' ), 'WordPress' ); ?></a>
+				<a href="<?php echo esc_url( __( 'http://wordpress.org/', 'twentyten' ) ); ?>" title="<?php esc_attr_e( 'Semantic Personal Publishing Platform', 'twentyten' ); ?>"><?php printf( __( 'Proudly powered by %s.', 'twentyten' ), 'WordPress' ); ?></a>
 			</div><!-- #site-generator -->
 
 		</div><!-- #colophon -->
--- a/web/wp-content/themes/twentyten/functions.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-content/themes/twentyten/functions.php	Wed Dec 19 17:46:52 2012 -0800
@@ -115,9 +115,9 @@
 		// Callback for styling the header preview in the admin.
 		'admin-head-callback' => 'twentyten_admin_header_style',
 	);
-	
+
 	add_theme_support( 'custom-header', $custom_header_support );
-	
+
 	if ( ! function_exists( 'get_custom_header' ) ) {
 		// This is all for compatibility with versions of WordPress prior to 3.4.
 		define( 'HEADER_TEXTCOLOR', '' );
@@ -224,7 +224,8 @@
  * @since Twenty Ten 1.0
  */
 function twentyten_page_menu_args( $args ) {
-	$args['show_home'] = true;
+	if ( ! isset( $args['show_home'] ) )
+		$args['show_home'] = true;
 	return $args;
 }
 add_filter( 'wp_page_menu_args', 'twentyten_page_menu_args' );
@@ -243,6 +244,7 @@
 }
 add_filter( 'excerpt_length', 'twentyten_excerpt_length' );
 
+if ( ! function_exists( 'twentyten_continue_reading_link' ) ) :
 /**
  * Returns a "Continue Reading" link for excerpts
  *
@@ -252,6 +254,7 @@
 function twentyten_continue_reading_link() {
 	return ' <a href="'. get_permalink() . '">' . __( 'Continue reading <span class="meta-nav">&rarr;</span>', 'twentyten' ) . '</a>';
 }
+endif;
 
 /**
  * Replaces "[...]" (appended to automatically generated excerpts) with an ellipsis and twentyten_continue_reading_link().
@@ -330,28 +333,28 @@
 	?>
 	<li <?php comment_class(); ?> id="li-comment-<?php comment_ID(); ?>">
 		<div id="comment-<?php comment_ID(); ?>">
-		<div class="comment-author vcard">
-			<?php echo get_avatar( $comment, 40 ); ?>
-			<?php printf( __( '%s <span class="says">says:</span>', 'twentyten' ), sprintf( '<cite class="fn">%s</cite>', get_comment_author_link() ) ); ?>
-		</div><!-- .comment-author .vcard -->
-		<?php if ( $comment->comment_approved == '0' ) : ?>
-			<em class="comment-awaiting-moderation"><?php _e( 'Your comment is awaiting moderation.', 'twentyten' ); ?></em>
-			<br />
-		<?php endif; ?>
+			<div class="comment-author vcard">
+				<?php echo get_avatar( $comment, 40 ); ?>
+				<?php printf( __( '%s <span class="says">says:</span>', 'twentyten' ), sprintf( '<cite class="fn">%s</cite>', get_comment_author_link() ) ); ?>
+			</div><!-- .comment-author .vcard -->
+			<?php if ( $comment->comment_approved == '0' ) : ?>
+				<em class="comment-awaiting-moderation"><?php _e( 'Your comment is awaiting moderation.', 'twentyten' ); ?></em>
+				<br />
+			<?php endif; ?>
 
-		<div class="comment-meta commentmetadata"><a href="<?php echo esc_url( get_comment_link( $comment->comment_ID ) ); ?>">
-			<?php
-				/* translators: 1: date, 2: time */
-				printf( __( '%1$s at %2$s', 'twentyten' ), get_comment_date(),  get_comment_time() ); ?></a><?php edit_comment_link( __( '(Edit)', 'twentyten' ), ' ' );
-			?>
-		</div><!-- .comment-meta .commentmetadata -->
+			<div class="comment-meta commentmetadata"><a href="<?php echo esc_url( get_comment_link( $comment->comment_ID ) ); ?>">
+				<?php
+					/* translators: 1: date, 2: time */
+					printf( __( '%1$s at %2$s', 'twentyten' ), get_comment_date(),  get_comment_time() ); ?></a><?php edit_comment_link( __( '(Edit)', 'twentyten' ), ' ' );
+				?>
+			</div><!-- .comment-meta .commentmetadata -->
 
-		<div class="comment-body"><?php comment_text(); ?></div>
+			<div class="comment-body"><?php comment_text(); ?></div>
 
-		<div class="reply">
-			<?php comment_reply_link( array_merge( $args, array( 'depth' => $depth, 'max_depth' => $args['max_depth'] ) ) ); ?>
-		</div><!-- .reply -->
-	</div><!-- #comment-##  -->
+			<div class="reply">
+				<?php comment_reply_link( array_merge( $args, array( 'depth' => $depth, 'max_depth' => $args['max_depth'] ) ) ); ?>
+			</div><!-- .reply -->
+		</div><!-- #comment-##  -->
 
 	<?php
 			break;
Binary file web/wp-content/themes/twentyten/images/headers/berries-thumbnail.jpg has changed
Binary file web/wp-content/themes/twentyten/images/headers/berries.jpg has changed
Binary file web/wp-content/themes/twentyten/images/headers/cherryblossoms-thumbnail.jpg has changed
Binary file web/wp-content/themes/twentyten/images/headers/cherryblossoms.jpg has changed
Binary file web/wp-content/themes/twentyten/images/headers/concave-thumbnail.jpg has changed
Binary file web/wp-content/themes/twentyten/images/headers/concave.jpg has changed
Binary file web/wp-content/themes/twentyten/images/headers/fern-thumbnail.jpg has changed
Binary file web/wp-content/themes/twentyten/images/headers/fern.jpg has changed
Binary file web/wp-content/themes/twentyten/images/headers/forestfloor-thumbnail.jpg has changed
Binary file web/wp-content/themes/twentyten/images/headers/forestfloor.jpg has changed
Binary file web/wp-content/themes/twentyten/images/headers/inkwell-thumbnail.jpg has changed
Binary file web/wp-content/themes/twentyten/images/headers/inkwell.jpg has changed
Binary file web/wp-content/themes/twentyten/images/headers/path-thumbnail.jpg has changed
Binary file web/wp-content/themes/twentyten/images/headers/path.jpg has changed
Binary file web/wp-content/themes/twentyten/images/headers/sunset-thumbnail.jpg has changed
Binary file web/wp-content/themes/twentyten/images/headers/sunset.jpg has changed
Binary file web/wp-content/themes/twentyten/images/wordpress.png has changed
--- a/web/wp-content/themes/twentyten/languages/_fr_FR.po	Wed Dec 19 12:35:13 2012 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,441 +0,0 @@
-# kubrick theme pot file.
-# Copyright (C) 2008 WordPress
-# This file is distributed under the same license as the kubrick theme package.
-# FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
-#
-msgid ""
-msgstr ""
-"Project-Id-Version: Twenty Ten (WordPress 3.4)\n"
-"Report-Msgid-Bugs-To: http://wordpress.org/tags/twentyten\n"
-"POT-Creation-Date: 2012-06-10 15:18:09+00:00\n"
-"PO-Revision-Date: 2012-06-18 00:13+0100\n"
-"Last-Translator: WordPress Francophone <traduction_at_wordpress-fr.net>\n"
-"Language-Team: WordPress Francophone <traduction@wordpress-fr.net>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=UTF-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"Plural-Forms: nplurals=2; plural=n>1\n"
-"X-Poedit-Language: French\n"
-"X-Poedit-Country: FRANCE\n"
-"X-Poedit-SourceCharset: utf-8\n"
-"X-Poedit-KeywordsList: __;_e;_c;_x\n"
-"X-Poedit-Basepath: .\n"
-"X-Poedit-SearchPath-0: /Users/amaury/Desktop/SVN/WPtrunk/wp-content/themes/twentyten\n"
-"X-Poedit-SearchPath-1: E:\\wamp\\www\\wordpress-beta\\wp-content\\themes\\twentyten\n"
-
-#: 404.php:16
-#: loop.php:33
-msgid "Not Found"
-msgstr "Rien de trouvé"
-
-#: 404.php:18
-msgid "Apologies, but the page you requested could not be found. Perhaps searching will help."
-msgstr "Toutes nos excuses, mais la page que vous demandez est introuvable. Essayez de lancer une recherche."
-
-#: archive.php:33
-msgid "Daily Archives: <span>%s</span>"
-msgstr "Archives quotidiennes&nbsp;: <span>%s</span>"
-
-#: archive.php:35
-msgid "Monthly Archives: <span>%s</span>"
-msgstr "Archives mensuelles&nbsp;: <span>%s</span>"
-
-#: archive.php:35
-msgctxt "monthly archives date format"
-msgid "F Y"
-msgstr "F Y"
-
-#: archive.php:37
-msgid "Yearly Archives: <span>%s</span>"
-msgstr "Archives annuelles&nbsp;: <span>%s</span>"
-
-#: archive.php:37
-msgctxt "yearly archives date format"
-msgid "Y"
-msgstr "Y"
-
-#: archive.php:39
-msgid "Blog Archives"
-msgstr "Archives du blog"
-
-#: author.php:27
-msgid "Author Archives: %s"
-msgstr "Archives de l&rsquo;auteur&nbsp;: %s"
-
-#: author.php:37
-#: loop-single.php:43
-msgid "About %s"
-msgstr "À propos de %s"
-
-#: category.php:16
-msgid "Category Archives: %s"
-msgstr "Archives de catégorie&nbsp;: %s"
-
-#: comments.php:18
-msgid "This post is password protected. Enter the password to view any comments."
-msgstr "Cet article est protégé par un mot de passe. Saisissez le mot de passe pour lire les commentaires."
-
-#: comments.php:35
-msgid "One Response to %2$s"
-msgid_plural "%1$s Responses to %2$s"
-msgstr[0] "Une réponse à %2$s"
-msgstr[1] "%1$s réponses à %2$s"
-
-#: comments.php:41
-#: comments.php:60
-msgid "<span class=\"meta-nav\">&larr;</span> Older Comments"
-msgstr "<span class=\"meta-nav\">&larr;</span> Commentaires plus anciens"
-
-#: comments.php:42
-#: comments.php:61
-msgid "Newer Comments <span class=\"meta-nav\">&rarr;</span>"
-msgstr "Commentaires plus récents <span class=\"meta-nav\">&rarr;</span>"
-
-#: comments.php:72
-msgid "Comments are closed."
-msgstr "Les commentaires sont fermés."
-
-#. #-#-#-#-#  twentyten.pot (Twenty Ten 1.4)  #-#-#-#-#
-#. Theme URI of the plugin/theme
-#: footer.php:33
-msgid "http://wordpress.org/"
-msgstr "http://wordpress.org/"
-
-#: footer.php:33
-msgid "Semantic Personal Publishing Platform"
-msgstr "Plate-forme de publication personnelle à la pointe de la sémantique"
-
-#: footer.php:33
-msgid "Proudly powered by %s."
-msgstr "Fièrement propulsé par %s"
-
-#: functions.php:93
-msgid "Primary Navigation"
-msgstr "Navigation principale"
-
-#. translators: header image description
-#: functions.php:145
-msgid "Berries"
-msgstr "Framboises"
-
-#. translators: header image description
-#: functions.php:151
-msgid "Cherry Blossoms"
-msgstr "Fleurs de cerisier"
-
-#. translators: header image description
-#: functions.php:157
-msgid "Concave"
-msgstr "Mirroir"
-
-#. translators: header image description
-#: functions.php:163
-msgid "Fern"
-msgstr "Fougère"
-
-#. translators: header image description
-#: functions.php:169
-msgid "Forest Floor"
-msgstr "Paysage forestier"
-
-#. translators: header image description
-#: functions.php:175
-msgid "Inkwell"
-msgstr "Encrier"
-
-#. translators: header image description
-#: functions.php:181
-msgid "Path"
-msgstr "Chemin"
-
-#. translators: header image description
-#: functions.php:187
-msgid "Sunset"
-msgstr "Coucher du soleil"
-
-#: functions.php:253
-#: loop-attachment.php:104
-#: loop.php:115
-#: loop.php:143
-msgid "Continue reading <span class=\"meta-nav\">&rarr;</span>"
-msgstr "Continuer la lecture <span class=\"meta-nav\">&rarr;</span>"
-
-#: functions.php:335
-msgid "%s <span class=\"says\">says:</span>"
-msgstr "%s <span class=\"says\">dit&nbsp;:</span>"
-
-#: functions.php:338
-msgid "Your comment is awaiting moderation."
-msgstr "Votre commentaire est en attente de validation."
-
-#. translators: 1: date, 2: time
-#: functions.php:345
-msgid "%1$s at %2$s"
-msgstr "%1$s à %2$s"
-
-#: functions.php:345
-#: functions.php:362
-msgid "(Edit)"
-msgstr "(Modifier)"
-
-#: functions.php:362
-msgid "Pingback:"
-msgstr "Ping&nbsp;:"
-
-#: functions.php:381
-msgid "Primary Widget Area"
-msgstr "Zone principale de widgets"
-
-#: functions.php:383
-msgid "The primary widget area"
-msgstr "La zone principale de widgets"
-
-#: functions.php:392
-msgid "Secondary Widget Area"
-msgstr "Zone secondaire de widgets"
-
-#: functions.php:394
-msgid "The secondary widget area"
-msgstr "La zone secondaire de widgets"
-
-#: functions.php:403
-msgid "First Footer Widget Area"
-msgstr "1ère zone de pied de page"
-
-#: functions.php:405
-msgid "The first footer widget area"
-msgstr "La première zone de widgets pour le pied de page"
-
-#: functions.php:414
-msgid "Second Footer Widget Area"
-msgstr "2ème zone de pied de page"
-
-#: functions.php:416
-msgid "The second footer widget area"
-msgstr "La deuxième zone de widgets pour le pied de page"
-
-#: functions.php:425
-msgid "Third Footer Widget Area"
-msgstr "3ème zone de pied de page"
-
-#: functions.php:427
-msgid "The third footer widget area"
-msgstr "La troisième zone de widgets pour le pied de page"
-
-#: functions.php:436
-msgid "Fourth Footer Widget Area"
-msgstr "4ème zone de pied de page"
-
-#: functions.php:438
-msgid "The fourth footer widget area"
-msgstr "La quatrième zone de widgets pour le pied de page"
-
-#: functions.php:472
-msgid "<span class=\"%1$s\">Posted on</span> %2$s <span class=\"meta-sep\">by</span> %3$s"
-msgstr "<span class=\"%1$s\">Publié le</span> %2$s <span class=\"meta-sep\">par</span> %3$s"
-
-#: functions.php:481
-#: loop-attachment.php:36
-msgid "View all posts by %s"
-msgstr "Afficher tous les articles par %s"
-
-#: functions.php:498
-msgid "This entry was posted in %1$s and tagged %2$s. Bookmark the <a href=\"%3$s\" title=\"Permalink to %4$s\" rel=\"bookmark\">permalink</a>."
-msgstr "Ce contenu a été publié dans %1$s, avec comme mot(s)-clef(s) %2$s. Vous pouvez le mettre en favoris avec <a href=\"%3$s\" title=\"Permalien pour %4$s\" rel=\"bookmark\">ce permalien</a>."
-
-#: functions.php:500
-msgid "This entry was posted in %1$s. Bookmark the <a href=\"%3$s\" title=\"Permalink to %4$s\" rel=\"bookmark\">permalink</a>."
-msgstr "Ce contenu a été publié dans %1$s. Vous pouvez le mettre en favoris avec <a href=\"%3$s\" title=\"Permalien pour %4$s\" rel=\"bookmark\">ce permalien</a>."
-
-#: functions.php:502
-msgid "Bookmark the <a href=\"%3$s\" title=\"Permalink to %4$s\" rel=\"bookmark\">permalink</a>."
-msgstr "Vous pouvez la mettre en favoris avec <a href=\"%3$s\" title=\"Permalien pour %4$s\" rel=\"bookmark\">ce permalien</a>."
-
-#: header.php:33
-msgid "Page %s"
-msgstr "Page %s"
-
-#: header.php:101
-msgid "Skip to content"
-msgstr "Aller au contenu"
-
-#: loop-attachment.php:21
-msgid "Return to %s"
-msgstr "Revenir à %s"
-
-#. translators: %s - title of parent post
-#: loop-attachment.php:23
-msgid "<span class=\"meta-nav\">&larr;</span> %s"
-msgstr "<span class=\"meta-nav\">&larr;</span> %s"
-
-#: loop-attachment.php:32
-msgid "<span class=\"%1$s\">By</span> %2$s"
-msgstr "<span class=\"%1$s\">Par</span> %2$s"
-
-#: loop-attachment.php:43
-msgid "<span class=\"%1$s\">Published</span> %2$s"
-msgstr "<span class=\"%1$s\">Publié le</span> %2$s"
-
-#: loop-attachment.php:53
-msgid "Full size is %s pixels"
-msgstr "La taille originale est de %s pixels"
-
-#: loop-attachment.php:56
-msgid "Link to full-size image"
-msgstr "Lien vers l&rsquo;image originale"
-
-#: loop-attachment.php:63
-#: loop-attachment.php:111
-#: loop-page.php:30
-#: loop-single.php:56
-#: loop.php:100
-#: loop.php:123
-#: loop.php:165
-msgid "Edit"
-msgstr "Modifier"
-
-#: loop-attachment.php:105
-#: loop-page.php:29
-#: loop-single.php:34
-#: loop.php:144
-msgid "Pages:"
-msgstr "Pages&nbsp;:"
-
-#: loop-single.php:21
-#: loop-single.php:61
-msgctxt "Previous post link"
-msgid "&larr;"
-msgstr "&larr;"
-
-#: loop-single.php:22
-#: loop-single.php:62
-msgctxt "Next post link"
-msgid "&rarr;"
-msgstr "&rarr;"
-
-#: loop-single.php:47
-msgid "View all posts by %s <span class=\"meta-nav\">&rarr;</span>"
-msgstr "Voir tous les articles de %s <span class=\"meta-nav\">&rarr;</span>"
-
-#: loop.php:25
-#: loop.php:178
-msgid "<span class=\"meta-nav\">&larr;</span> Older posts"
-msgstr "<span class=\"meta-nav\">&larr;</span> Articles plus anciens"
-
-#: loop.php:26
-#: loop.php:179
-msgid "Newer posts <span class=\"meta-nav\">&rarr;</span>"
-msgstr "Articles plus récents <span class=\"meta-nav\">&rarr;</span>"
-
-#: loop.php:35
-msgid "Apologies, but no results were found for the requested archive. Perhaps searching will help find a related post."
-msgstr "Toutes nos excuses, mais aucun résultat n&rsquo;a été trouvé dans l&rsquo;archive demandée. Peut-être qu&rsquo;une recherche vous permettra de trouver un article similaire."
-
-#: loop.php:60
-#: loop.php:95
-#: loop.php:96
-msgctxt "gallery category slug"
-msgid "gallery"
-msgstr "galerie"
-
-#: loop.php:62
-#: loop.php:83
-#: loop.php:131
-msgid "Permalink to %s"
-msgstr "Lien permanent vers %s"
-
-#: loop.php:82
-msgid "This gallery contains <a %1$s>%2$s photo</a>."
-msgid_plural "This gallery contains <a %1$s>%2$s photos</a>."
-msgstr[0] "Cette galerie contient <a %1$s>%2$s photo</a>."
-msgstr[1] "Cette galerie contient <a %1$s>%2$s photos</a>."
-
-#: loop.php:93
-msgid "View Galleries"
-msgstr "Afficher les galeries"
-
-#: loop.php:93
-#: loop.php:96
-msgid "More Galleries"
-msgstr "Toutes les galeries"
-
-#: loop.php:96
-msgid "View posts in the Gallery category"
-msgstr "Afficher les articles de la catégorie Galerie"
-
-#: loop.php:99
-#: loop.php:122
-#: loop.php:164
-msgid "Leave a comment"
-msgstr "Laisser un commentaire"
-
-#: loop.php:99
-#: loop.php:122
-#: loop.php:164
-msgid "1 Comment"
-msgstr "Un commentaire"
-
-#: loop.php:99
-#: loop.php:122
-#: loop.php:164
-msgid "% Comments"
-msgstr "% commentaires"
-
-# C'est le slug pour la catégorie "Apartés", donc pas d'accent.
-#: loop.php:106
-msgctxt "asides category slug"
-msgid "asides"
-msgstr "apartes"
-
-#: loop.php:151
-msgid "<span class=\"%1$s\">Posted in</span> %2$s"
-msgstr "<span class=\"%1$s\">Publié dans</span> %2$s"
-
-#: loop.php:160
-msgid "<span class=\"%1$s\">Tagged</span> %2$s"
-msgstr "<span class=\"%1$s\">Marqué avec</span> %2$s"
-
-#: search.php:16
-msgid "Search Results for: %s"
-msgstr "Résultats de la recherche&nbsp;: %s"
-
-#: search.php:26
-msgid "Nothing Found"
-msgstr "Rien de trouvé"
-
-#: search.php:28
-msgid "Sorry, but nothing matched your search criteria. Please try again with some different keywords."
-msgstr "Désolé, mais rien ne correspond à vos critères de recherche. Veuillez réessayer avec d&rsquo;autres mots-clefs."
-
-#: sidebar.php:27
-msgid "Archives"
-msgstr "Archives"
-
-#: sidebar.php:34
-msgid "Meta"
-msgstr "Méta"
-
-#: tag.php:16
-msgid "Tag Archives: %s"
-msgstr "Archives par mot-clef&nbsp;: %s"
-
-#. Theme Name of the plugin/theme
-msgid "Twenty Ten"
-msgstr "Twenty Ten"
-
-#. Description of the plugin/theme
-msgid "The 2010 theme for WordPress is stylish, customizable, simple, and readable -- make it yours with a custom menu, header image, and background. Twenty Ten supports six widgetized areas (two in the sidebar, four in the footer) and featured images (thumbnails for gallery posts and custom header images for posts and pages). It includes stylesheets for print and the admin Visual Editor, special styles for posts in the \"Asides\" and \"Gallery\" categories, and has an optional one-column page template that removes the sidebar."
-msgstr "Le thème de WordPress pour 2010. Il est beau, personnalisable, simple et lisible. Appropriez-le-vous grâce en personnalisant son menu, son image d&rsquo;en-tête et son image de fond. Twenty Ten dispose de six zones de widgets (deux dans la barre latérale, quatre en pied de page), et peut exploiter vos images de Une (minitatures pour galeries, et image d&rsquo;en-tête personnalisé pour les articles et pages). Il intègre une feuille de style pour l&rsquo;impression et pour l&rsquo;éditeur visuel, un style spécial pour les articles des catégories &laquo;&nbsp;Apartés&nbsp;&raquo; et &laquo;&nbsp;Galerie&nbsp;&raquo;, et peut fonctionner sous la forme d&rsquo;une colonne seule, en enlevant la barre latérale."
-
-#. Author of the plugin/theme
-msgid "the WordPress team"
-msgstr "L&rsquo;équipe WordPress"
-
-#. Tags of the plugin/theme
-msgid "black, blue, white, two-columns, fixed-width, custom-header, custom-background, threaded-comments, sticky-post, translation-ready, microformats, rtl-language-support, editor-style, custom-menu"
-msgstr "black, blue, white, two-columns, fixed-width, custom-header, custom-background, threaded-comments, sticky-post, translation-ready, microformats, rtl-language-support, editor-style, custom-menu"
-
-#. Template Name of the plugin/theme
-msgid "One column, no sidebar"
-msgstr "Une colonne, pas de colonne latérale"
-
Binary file web/wp-content/themes/twentyten/languages/fr_FR.mo has changed
--- a/web/wp-content/themes/twentyten/languages/local-fr_FR.po	Wed Dec 19 12:35:13 2012 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,277 +0,0 @@
-msgid ""
-msgstr ""
-"Project-Id-Version: xili_dictionary\n"
-"POT-Creation-Date: \n"
-"PO-Revision-Date: 2009-11-08 08:59+0100\n"
-"Last-Translator: dev.xiligroup.com <contact@xiligroup.com>\n"
-"Language-Team: Michel SCRIBAN <michel@scriban.eu>\n"
-"MIME-Version: 1.0\n"
-"Content-Type: text/plain; charset=utf-8\n"
-"Content-Transfer-Encoding: 8bit\n"
-"X-Poedit-KeywordsList: __;_e\n"
-"X-Poedit-Basepath: .\n"
-"X-Poedit-Language: French\n"
-"X-Poedit-Country: FRANCE\n"
-"X-Poedit-SearchPath-0: trunk\n"
-
-msgid "A new term was added."
-msgstr "Un nouveau terme a été ajouté."
-
-msgid "Term to update."
-msgstr "Terme à mettre à jour."
-
-msgid "A term was updated."
-msgstr "Un terme a été mis à jour."
-
-msgid "A term to delete. CLICK MENU DICTIONARY TO CANCEL !"
-msgstr "Terme à effacer. Cliquer le menu DICTIONNAIRE pour annuler !"
-
-msgid "A term was deleted."
-msgstr "Un terme a été supprimé."
-
-msgid "Find above the list of terms."
-msgstr "Voici ci-dessus la liste des termes."
-
-msgid "Dictionary"
-msgstr "Dictionnaire"
-
-msgid "Multilingual Terms"
-msgstr "Termes en plusieurs langues"
-
-msgid "Full name"
-msgstr "Nom complet"
-
-msgid "Slug"
-msgstr "Code"
-
-msgid "Alias of"
-msgstr "Alias de"
-
-msgid "Term group"
-msgstr "Code groupe"
-
-msgid "Note:"
-msgstr "Note et message :"
-
-msgid "Edit term"
-msgstr "Editer le terme"
-
-msgid "Delete term ?"
-msgstr "Supprimer le terme ?"
-
-msgid "xili-dictionary is a plugin (compatible with xili-language) to build a multilingual dictionary saved in the taxonomy tables of WordPress. With this dictionary, it is possible to create and update .mo file in the current theme folder. And more..."
-msgstr "L'extension xili-dictionary est destinée à créer et mettre à jour les fichiers .mo (et .po aussi) du thème courant. Elle est utile pour les thèmes internationaux ou les thèmes multilingues 'live' pilotés par xili-language."
-
-msgid "Add a term"
-msgstr "Ajouter un terme"
-
-msgid "Add &raquo;"
-msgstr "Ajouter…"
-
-msgid "Update &raquo;"
-msgstr "Mettre à jour…"
-
-msgid "Delete &raquo;"
-msgstr "Supprimer…"
-
-msgid "Category"
-msgstr "Catégorie"
-
-msgid "Import terms of categories"
-msgstr "Importer les noms et descriptions des catégories"
-
-msgid "Import category’s terms &raquo;"
-msgstr "Importer &raquo;"
-
-msgid "terms imported from WP: "
-msgstr "éléments importés : "
-
-msgid "To import terms (name and description) of categories into the dictionary before translation, click below. (to cancel, click Dictionary in dashboard menu)."
-msgstr "Cliquer le bouton ci-dessous pour importer les noms et descriptions des catégories du site dans le dictionnaire xili-dictionary."
-
-msgid "Export mo file"
-msgstr "Créer un fichier .mo"
-
-msgid "Export po file"
-msgstr "Créer un fichier .po"
-
-msgid "Export &raquo;"
-msgstr "Créer &raquo;"
-
-msgid "exported in mo file."
-msgstr "Fichier mo créé."
-
-msgid "exported in po file."
-msgstr "Fichier po créé."
-
-msgid "error during exporting in po file."
-msgstr "Erreur pendant la création du fichier po."
-
-msgid "Import po/mo file"
-msgstr "Import d'un fichier "
-
-msgid "Import &raquo;"
-msgstr "Importer &raquo;"
-
-msgid "line imported from po file: "
-msgstr "ligne(s) importée(s) du fichier .po"
-
-msgid "po file is not present."
-msgstr "Le fichier .po est absent."
-
-msgid "The files"
-msgstr "Les fichiers"
-
-msgid "The categories"
-msgstr "Les catégories du site."
-
-msgid "xili-language plugin is not activated !"
-msgstr "L'extension xili-language n'est pas activée."
-
-msgid "xili-language plugin is not present !"
-msgstr "L'extension xili-language n'est pas présente."
-
-msgid "Choose the original term (msgid) to translate"
-msgstr "Choisir le terme (msgid) à traduire"
-
-msgid "no parent (= msgid)"
-msgstr "terme de référence (=msgid)"
-
-msgid "Full msg (id or str)"
-msgstr "Le terme (id or str)"
-
-msgid "Language"
-msgstr "Langue"
-
-msgid "parent of: "
-msgstr "parent de : "
-
-msgid "Relationship (msgid)"
-msgstr "Terme référent (msgid)"
-
-msgid "Import all terms from current theme"
-msgstr "Importer les termes du thème courant"
-
-msgid "Erase all terms &raquo;"
-msgstr "Effacer le dictionnaire &raquo;"
-
-msgid "Erase all terms"
-msgstr "Effacer le dictionnaire &raquo;"
-
-msgid "Import & export"
-msgstr "Importer et exporter"
-
-msgid "Terms list management"
-msgstr "Gestion de l'affichage des termes"
-
-msgid "try another sub-selection !"
-msgstr "Sous-sélection sans résultat !"
-
-msgid "Sub list of terms"
-msgstr "Sélection des termes par"
-
-msgid "Starting with:"
-msgstr "Commençant par :"
-
-msgid "Containing:"
-msgstr "Incluant :"
-
-msgid "No select…"
-msgstr "Désélection"
-
-msgid "Sub select…"
-msgstr "Sous sélectionner…"
-
-msgid "Selection by language"
-msgstr "Sélection par langue"
-
-msgid "No sub-selection"
-msgstr "Sans sous-sélection"
-
-msgid "Only MsgID (en_US)"
-msgstr "Que le MsgID (en_US)"
-
-msgid "Only:"
-msgstr "Que la :"
-
-msgid "Create or Update mo file in current theme folder"
-msgstr "Crée ou met à jour le fichier .mo dans le dossier du thème actif"
-
-msgid "Create or Update po file in current theme folder"
-msgstr "Crée ou met à jour le fichier .po dans le dossier du thème actif"
-
-msgid "Import an existing .po file from current theme folder"
-msgstr "Importe un fichier .po existant dans le dossier du thème actif"
-
-msgid "Import name and description of categories"
-msgstr "Importe nom et description des catégories du blogue"
-
-msgid "To erase terms of the dictionary, click below. (before, create a .po if necessary!)"
-msgstr "Efface tous les termes du dictionnaire ! mais pas les fichiers .po et .mo"
-
-msgid "To import terms of the current theme, click below."
-msgstr "Pour importer les termes du thème courant, cliquer çi-dessous."
-
-msgid "Import all terms &raquo;"
-msgstr "Importer tous les termes &raquo;"
-
-msgid "No parent term defined"
-msgstr "Terme parent non défini !"
-
-msgid "List of found terms"
-msgstr "Liste des termes trouvés"
-
-msgid "List of scanned files:"
-msgstr "Liste des fichiers analysés :"
-
-msgid "Original or translation"
-msgstr "Original ou traduction"
-
-msgid "Full msgid (original)"
-msgstr "La ligne msgid (original)"
-
-msgid "Full msgstr (translation)"
-msgstr "La ligne msgstr (traduction)"
-
-msgid "translation of"
-msgstr "traduction de"
-
-msgid "translated as"
-msgstr "traduit en"
-
-msgid "Original"
-msgstr "Original"
-
-msgid "Translation"
-msgstr "Traduction"
-
-msgid "Use only plural terms if theme contains _n() functions"
-msgstr "N'utiliser les formes pluriels que si le thème contient des fonctions _n() !"
-
-msgid "Add a plural"
-msgstr "Ajouter un pluriel"
-
-msgid "Delete a plural"
-msgstr "Supprimer un pluriel"
-
-msgid "Only the languages list is here modified (but not the dictionary's contents)"
-msgstr "Seule la liste des languages est modifiée mais les contenus du dictionaire"
-
-msgid "Select..."
-msgstr "Choisir..."
-
-msgid "Delete a language"
-msgstr "Supprimer une langue"
-
-msgid "Language to add"
-msgstr "Langue à ajouter"
-
-msgid "ISO (xx_YY)"
-msgstr "Code (xx_YY)"
-
-msgid "Name (eng.)"
-msgstr "Nom (angl.)"
-
-msgid "Add a language"
-msgstr "Ajouter une langue"
-
--- a/web/wp-content/themes/twentyten/languages/twentyten.pot	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-content/themes/twentyten/languages/twentyten.pot	Wed Dec 19 17:46:52 2012 -0800
@@ -2,9 +2,9 @@
 # This file is distributed under the GNU General Public License v2 or later.
 msgid ""
 msgstr ""
-"Project-Id-Version: Twenty Ten 1.4\n"
+"Project-Id-Version: Twenty Ten 1.5\n"
 "Report-Msgid-Bugs-To: http://wordpress.org/tags/twentyten\n"
-"POT-Creation-Date: 2012-06-10 15:18:09+00:00\n"
+"POT-Creation-Date: 2012-12-07 21:19:05+00:00\n"
 "MIME-Version: 1.0\n"
 "Content-Type: text/plain; charset=UTF-8\n"
 "Content-Transfer-Encoding: 8bit\n"
@@ -79,12 +79,12 @@
 msgid "Newer Comments <span class=\"meta-nav\">&rarr;</span>"
 msgstr ""
 
-#: comments.php:72
+#: comments.php:70
 msgid "Comments are closed."
 msgstr ""
 
-#. #-#-#-#-#  twentyten.pot (Twenty Ten 1.4)  #-#-#-#-#
-#. Theme URI of the plugin/theme
+#. #-#-#-#-#  twentyten.pot (Twenty Ten 1.5)  #-#-#-#-#
+#. Author URI of the plugin/theme
 #: footer.php:33
 msgid "http://wordpress.org/"
 msgstr ""
@@ -141,102 +141,102 @@
 msgid "Sunset"
 msgstr ""
 
-#: functions.php:253 loop-attachment.php:104 loop.php:115 loop.php:143
+#: functions.php:255 loop-attachment.php:104 loop.php:115 loop.php:143
 msgid "Continue reading <span class=\"meta-nav\">&rarr;</span>"
 msgstr ""
 
-#: functions.php:335
+#: functions.php:338
 msgid "%s <span class=\"says\">says:</span>"
 msgstr ""
 
-#: functions.php:338
+#: functions.php:341
 msgid "Your comment is awaiting moderation."
 msgstr ""
 
 #. translators: 1: date, 2: time
-#: functions.php:345
+#: functions.php:348
 msgid "%1$s at %2$s"
 msgstr ""
 
-#: functions.php:345 functions.php:362
+#: functions.php:348 functions.php:365
 msgid "(Edit)"
 msgstr ""
 
-#: functions.php:362
+#: functions.php:365
 msgid "Pingback:"
 msgstr ""
 
-#: functions.php:381
+#: functions.php:384
 msgid "Primary Widget Area"
 msgstr ""
 
-#: functions.php:383
+#: functions.php:386
 msgid "The primary widget area"
 msgstr ""
 
-#: functions.php:392
+#: functions.php:395
 msgid "Secondary Widget Area"
 msgstr ""
 
-#: functions.php:394
+#: functions.php:397
 msgid "The secondary widget area"
 msgstr ""
 
-#: functions.php:403
+#: functions.php:406
 msgid "First Footer Widget Area"
 msgstr ""
 
-#: functions.php:405
+#: functions.php:408
 msgid "The first footer widget area"
 msgstr ""
 
-#: functions.php:414
+#: functions.php:417
 msgid "Second Footer Widget Area"
 msgstr ""
 
-#: functions.php:416
+#: functions.php:419
 msgid "The second footer widget area"
 msgstr ""
 
-#: functions.php:425
+#: functions.php:428
 msgid "Third Footer Widget Area"
 msgstr ""
 
-#: functions.php:427
+#: functions.php:430
 msgid "The third footer widget area"
 msgstr ""
 
-#: functions.php:436
+#: functions.php:439
 msgid "Fourth Footer Widget Area"
 msgstr ""
 
-#: functions.php:438
+#: functions.php:441
 msgid "The fourth footer widget area"
 msgstr ""
 
-#: functions.php:472
+#: functions.php:475
 msgid ""
 "<span class=\"%1$s\">Posted on</span> %2$s <span class=\"meta-sep\">by</"
 "span> %3$s"
 msgstr ""
 
-#: functions.php:481 loop-attachment.php:36
+#: functions.php:484 loop-attachment.php:36
 msgid "View all posts by %s"
 msgstr ""
 
-#: functions.php:498
+#: functions.php:501
 msgid ""
 "This entry was posted in %1$s and tagged %2$s. Bookmark the <a href=\"%3$s\" "
 "title=\"Permalink to %4$s\" rel=\"bookmark\">permalink</a>."
 msgstr ""
 
-#: functions.php:500
+#: functions.php:503
 msgid ""
 "This entry was posted in %1$s. Bookmark the <a href=\"%3$s\" title="
 "\"Permalink to %4$s\" rel=\"bookmark\">permalink</a>."
 msgstr ""
 
-#: functions.php:502
+#: functions.php:505
 msgid ""
 "Bookmark the <a href=\"%3$s\" title=\"Permalink to %4$s\" rel=\"bookmark"
 "\">permalink</a>."
@@ -394,6 +394,10 @@
 msgid "Twenty Ten"
 msgstr ""
 
+#. Theme URI of the plugin/theme
+msgid "http://wordpress.org/extend/themes/twentyten"
+msgstr ""
+
 #. Description of the plugin/theme
 msgid ""
 "The 2010 theme for WordPress is stylish, customizable, simple, and readable "
@@ -410,13 +414,6 @@
 msgid "the WordPress team"
 msgstr ""
 
-#. Tags of the plugin/theme
-msgid ""
-"black, blue, white, two-columns, fixed-width, custom-header, custom-"
-"background, threaded-comments, sticky-post, translation-ready, microformats, "
-"rtl-language-support, editor-style, custom-menu"
-msgstr ""
-
 #. Template Name of the plugin/theme
 msgid "One column, no sidebar"
 msgstr ""
--- a/web/wp-content/themes/twentyten/loop.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-content/themes/twentyten/loop.php	Wed Dec 19 17:46:52 2012 -0800
@@ -59,7 +59,7 @@
 
 	<?php if ( ( function_exists( 'get_post_format' ) && 'gallery' == get_post_format( $post->ID ) ) || in_category( _x( 'gallery', 'gallery category slug', 'twentyten' ) ) ) : ?>
 		<div id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
-			<h2 class="entry-title"><a href="<?php the_permalink(); ?>" title="<?php printf( esc_attr__( 'Permalink to %s', 'twentyten' ), the_title_attribute( 'echo=0' ) ); ?>" rel="bookmark"><?php the_title(); ?></a></h2>
+			<h2 class="entry-title"><a href="<?php the_permalink(); ?>" title="<?php echo esc_attr( sprintf( __( 'Permalink to %s', 'twentyten' ), the_title_attribute( 'echo=0' ) ) ); ?>" rel="bookmark"><?php the_title(); ?></a></h2>
 
 			<div class="entry-meta">
 				<?php twentyten_posted_on(); ?>
@@ -80,7 +80,7 @@
 							<a class="size-thumbnail" href="<?php the_permalink(); ?>"><?php echo $image_img_tag; ?></a>
 						</div><!-- .gallery-thumb -->
 						<p><em><?php printf( _n( 'This gallery contains <a %1$s>%2$s photo</a>.', 'This gallery contains <a %1$s>%2$s photos</a>.', $total_images, 'twentyten' ),
-								'href="' . get_permalink() . '" title="' . sprintf( esc_attr__( 'Permalink to %s', 'twentyten' ), the_title_attribute( 'echo=0' ) ) . '" rel="bookmark"',
+								'href="' . get_permalink() . '" title="' . esc_attr( sprintf( __( 'Permalink to %s', 'twentyten' ), the_title_attribute( 'echo=0' ) ) ) . '" rel="bookmark"',
 								number_format_i18n( $total_images )
 							); ?></em></p>
 				<?php endif; ?>
@@ -128,7 +128,7 @@
 
 	<?php else : ?>
 		<div id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
-			<h2 class="entry-title"><a href="<?php the_permalink(); ?>" title="<?php printf( esc_attr__( 'Permalink to %s', 'twentyten' ), the_title_attribute( 'echo=0' ) ); ?>" rel="bookmark"><?php the_title(); ?></a></h2>
+			<h2 class="entry-title"><a href="<?php the_permalink(); ?>" title="<?php echo esc_attr( sprintf( __( 'Permalink to %s', 'twentyten' ), the_title_attribute( 'echo=0' ) ) ); ?>" rel="bookmark"><?php the_title(); ?></a></h2>
 
 			<div class="entry-meta">
 				<?php twentyten_posted_on(); ?>
--- a/web/wp-content/themes/twentyten/rtl.css	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-content/themes/twentyten/rtl.css	Wed Dec 19 17:46:52 2012 -0800
@@ -66,7 +66,7 @@
 .pingback p,
 .reply,
 .widget-title,
-input[type=submit] {
+input[type="submit"] {
 	font-family: Arial, Tahoma, sans-serif;
 }
 
Binary file web/wp-content/themes/twentyten/screenshot.png has changed
--- a/web/wp-content/themes/twentyten/style.css	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-content/themes/twentyten/style.css	Wed Dec 19 17:46:52 2012 -0800
@@ -1,12 +1,13 @@
 /*
 Theme Name: Twenty Ten
-Theme URI: http://wordpress.org/
+Theme URI: http://wordpress.org/extend/themes/twentyten
 Description: The 2010 theme for WordPress is stylish, customizable, simple, and readable -- make it yours with a custom menu, header image, and background. Twenty Ten supports six widgetized areas (two in the sidebar, four in the footer) and featured images (thumbnails for gallery posts and custom header images for posts and pages). It includes stylesheets for print and the admin Visual Editor, special styles for posts in the "Asides" and "Gallery" categories, and has an optional one-column page template that removes the sidebar.
 Author: the WordPress team
-Version: 1.4
+Author URI: http://wordpress.org/
+Version: 1.5
 License: GNU General Public License v2 or later
 License URI: http://www.gnu.org/licenses/gpl-2.0.html
-Tags: black, blue, white, two-columns, fixed-width, custom-header, custom-background, threaded-comments, sticky-post, translation-ready, microformats, rtl-language-support, editor-style, custom-menu
+Tags: black, blue, white, two-columns, fixed-width, custom-header, custom-background, threaded-comments, sticky-post, translation-ready, microformats, rtl-language-support, editor-style, custom-menu, flexible-header
 Text Domain: twentyten
 */
 
@@ -145,7 +146,7 @@
 .wp-caption-text {
 	font-family: "Helvetica Neue", Arial, Helvetica, "Nimbus Sans L", sans-serif;
 }
-input[type=submit] {
+input[type="submit"] {
 	font-family: "Helvetica Neue", Arial, Helvetica, "Nimbus Sans L", sans-serif;
 }
 pre {
@@ -307,7 +308,14 @@
 sub {
 	top: .5ex;
 }
+small {
+	font-size: smaller;
+}
 input[type="text"],
+input[type="password"],
+input[type="email"],
+input[type="url"],
+input[type="number"],
 textarea {
 	background: #f9f9f9;
 	border: 1px solid #ccc;
@@ -437,12 +445,14 @@
 	display: block;
 }
 #access ul li.current_page_item > a,
+#access ul li.current_page_ancestor > a,
 #access ul li.current-menu-ancestor > a,
 #access ul li.current-menu-item > a,
 #access ul li.current-menu-parent > a {
 	color: #fff;
 }
 * html #access ul li.current_page_item a,
+* html #access ul li.current_page_ancestor a,
 * html #access ul li.current-menu-ancestor a,
 * html #access ul li.current-menu-item a,
 * html #access ul li.current-menu-parent a,
@@ -645,7 +655,7 @@
 	clear: both;
 	color: #000;
 	font-weight: bold;
-	margin: 0 0 22px 0;
+	line-height: 48px;
 	word-spacing: 0.5em;
 }
 .page-link a:link,
@@ -781,7 +791,8 @@
 img.size-full,
 img.size-large,
 img.size-medium,
-.attachment img {
+.attachment img,
+.widget-container img {
 	max-width: 100%; /* When images are too wide for containing element, force them to fit. */
 	height: auto; /* Override height to match resized width for correct aspect ratio. */
 }
@@ -1041,7 +1052,7 @@
 }
 
 /* Comments form */
-input[type=submit] {
+input[type="submit"] {
 	color: #333;
 }
 #respond {
@@ -1129,8 +1140,15 @@
 	display: none;
 }
 .widget-container {
+	word-wrap: break-word;
+	-webkit-hyphens: auto;
+	-moz-hyphens: auto;
+	hyphens: auto;
 	margin: 0 0 18px 0;
 }
+.widget-container .wp-caption img {
+	margin: auto;
+}
 .widget-title {
 	color: #222;
 	font-weight: bold;
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-content/themes/twentytwelve/404.php	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,29 @@
+<?php
+/**
+ * The template for displaying 404 pages (Not Found).
+ *
+ * @package WordPress
+ * @subpackage Twenty_Twelve
+ * @since Twenty Twelve 1.0
+ */
+
+get_header(); ?>
+
+	<div id="primary" class="site-content">
+		<div id="content" role="main">
+
+			<article id="post-0" class="post error404 no-results not-found">
+				<header class="entry-header">
+					<h1 class="entry-title"><?php _e( 'This is somewhat embarrassing, isn&rsquo;t it?', 'twentytwelve' ); ?></h1>
+				</header>
+
+				<div class="entry-content">
+					<p><?php _e( 'It seems we can&rsquo;t find what you&rsquo;re looking for. Perhaps searching can help.', 'twentytwelve' ); ?></p>
+					<?php get_search_form(); ?>
+				</div><!-- .entry-content -->
+			</article><!-- #post-0 -->
+
+		</div><!-- #content -->
+	</div><!-- #primary -->
+
+<?php get_footer(); ?>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-content/themes/twentytwelve/archive.php	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,63 @@
+<?php
+/**
+ * The template for displaying Archive pages.
+ *
+ * Used to display archive-type pages if nothing more specific matches a query.
+ * For example, puts together date-based pages if no date.php file exists.
+ *
+ * If you'd like to further customize these archive views, you may create a
+ * new template file for each specific one. For example, Twenty Twelve already
+ * has tag.php for Tag archives, category.php for Category archives, and
+ * author.php for Author archives.
+ *
+ * Learn more: http://codex.wordpress.org/Template_Hierarchy
+ *
+ * @package WordPress
+ * @subpackage Twenty_Twelve
+ * @since Twenty Twelve 1.0
+ */
+
+get_header(); ?>
+
+	<section id="primary" class="site-content">
+		<div id="content" role="main">
+
+		<?php if ( have_posts() ) : ?>
+			<header class="archive-header">
+				<h1 class="archive-title"><?php
+					if ( is_day() ) :
+						printf( __( 'Daily Archives: %s', 'twentytwelve' ), '<span>' . get_the_date() . '</span>' );
+					elseif ( is_month() ) :
+						printf( __( 'Monthly Archives: %s', 'twentytwelve' ), '<span>' . get_the_date( _x( 'F Y', 'monthly archives date format', 'twentytwelve' ) ) . '</span>' );
+					elseif ( is_year() ) :
+						printf( __( 'Yearly Archives: %s', 'twentytwelve' ), '<span>' . get_the_date( _x( 'Y', 'yearly archives date format', 'twentytwelve' ) ) . '</span>' );
+					else :
+						_e( 'Archives', 'twentytwelve' );
+					endif;
+				?></h1>
+			</header><!-- .archive-header -->
+
+			<?php
+			/* Start the Loop */
+			while ( have_posts() ) : the_post();
+
+				/* Include the post format-specific template for the content. If you want to
+				 * this in a child theme then include a file called called content-___.php
+				 * (where ___ is the post format) and that will be used instead.
+				 */
+				get_template_part( 'content', get_post_format() );
+
+			endwhile;
+
+			twentytwelve_content_nav( 'nav-below' );
+			?>
+
+		<?php else : ?>
+			<?php get_template_part( 'content', 'none' ); ?>
+		<?php endif; ?>
+
+		</div><!-- #content -->
+	</section><!-- #primary -->
+
+<?php get_sidebar(); ?>
+<?php get_footer(); ?>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-content/themes/twentytwelve/author.php	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,74 @@
+<?php
+/**
+ * The template for displaying Author Archive pages.
+ *
+ * Used to display archive-type pages for posts by an author.
+ *
+ * Learn more: http://codex.wordpress.org/Template_Hierarchy
+ *
+ * @package WordPress
+ * @subpackage Twenty_Twelve
+ * @since Twenty Twelve 1.0
+ */
+
+get_header(); ?>
+
+	<section id="primary" class="site-content">
+		<div id="content" role="main">
+
+		<?php if ( have_posts() ) : ?>
+
+			<?php
+				/* Queue the first post, that way we know
+				 * what author we're dealing with (if that is the case).
+				 *
+				 * We reset this later so we can run the loop
+				 * properly with a call to rewind_posts().
+				 */
+				the_post();
+			?>
+
+			<header class="archive-header">
+				<h1 class="archive-title"><?php printf( __( 'Author Archives: %s', 'twentytwelve' ), '<span class="vcard"><a class="url fn n" href="' . esc_url( get_author_posts_url( get_the_author_meta( "ID" ) ) ) . '" title="' . esc_attr( get_the_author() ) . '" rel="me">' . get_the_author() . '</a></span>' ); ?></h1>
+			</header><!-- .archive-header -->
+
+			<?php
+				/* Since we called the_post() above, we need to
+				 * rewind the loop back to the beginning that way
+				 * we can run the loop properly, in full.
+				 */
+				rewind_posts();
+			?>
+
+			<?php twentytwelve_content_nav( 'nav-above' ); ?>
+
+			<?php
+			// If a user has filled out their description, show a bio on their entries.
+			if ( get_the_author_meta( 'description' ) ) : ?>
+			<div class="author-info">
+				<div class="author-avatar">
+					<?php echo get_avatar( get_the_author_meta( 'user_email' ), apply_filters( 'twentytwelve_author_bio_avatar_size', 60 ) ); ?>
+				</div><!-- .author-avatar -->
+				<div class="author-description">
+					<h2><?php printf( __( 'About %s', 'twentytwelve' ), get_the_author() ); ?></h2>
+					<p><?php the_author_meta( 'description' ); ?></p>
+				</div><!-- .author-description	-->
+			</div><!-- .author-info -->
+			<?php endif; ?>
+
+			<?php /* Start the Loop */ ?>
+			<?php while ( have_posts() ) : the_post(); ?>
+				<?php get_template_part( 'content', get_post_format() ); ?>
+			<?php endwhile; ?>
+
+			<?php twentytwelve_content_nav( 'nav-below' ); ?>
+
+		<?php else : ?>
+			<?php get_template_part( 'content', 'none' ); ?>
+		<?php endif; ?>
+
+		</div><!-- #content -->
+	</section><!-- #primary -->
+
+<?php get_sidebar(); ?>
+<?php get_footer(); ?>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-content/themes/twentytwelve/category.php	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,51 @@
+<?php
+/**
+ * The template for displaying Category pages.
+ *
+ * Used to display archive-type pages for posts in a category.
+ *
+ * Learn more: http://codex.wordpress.org/Template_Hierarchy
+ *
+ * @package WordPress
+ * @subpackage Twenty_Twelve
+ * @since Twenty Twelve 1.0
+ */
+
+get_header(); ?>
+
+	<section id="primary" class="site-content">
+		<div id="content" role="main">
+
+		<?php if ( have_posts() ) : ?>
+			<header class="archive-header">
+				<h1 class="archive-title"><?php printf( __( 'Category Archives: %s', 'twentytwelve' ), '<span>' . single_cat_title( '', false ) . '</span>' ); ?></h1>
+
+			<?php if ( category_description() ) : // Show an optional category description ?>
+				<div class="archive-meta"><?php echo category_description(); ?></div>
+			<?php endif; ?>
+			</header><!-- .archive-header -->
+
+			<?php
+			/* Start the Loop */
+			while ( have_posts() ) : the_post();
+
+				/* Include the post format-specific template for the content. If you want to
+				 * this in a child theme then include a file called called content-___.php
+				 * (where ___ is the post format) and that will be used instead.
+				 */
+				get_template_part( 'content', get_post_format() );
+
+			endwhile;
+
+			twentytwelve_content_nav( 'nav-below' );
+			?>
+
+		<?php else : ?>
+			<?php get_template_part( 'content', 'none' ); ?>
+		<?php endif; ?>
+
+		</div><!-- #content -->
+	</section><!-- #primary -->
+
+<?php get_sidebar(); ?>
+<?php get_footer(); ?>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-content/themes/twentytwelve/comments.php	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,60 @@
+<?php
+/**
+ * The template for displaying Comments.
+ *
+ * The area of the page that contains both current comments
+ * and the comment form. The actual display of comments is
+ * handled by a callback to twentytwelve_comment() which is
+ * located in the functions.php file.
+ *
+ * @package WordPress
+ * @subpackage Twenty_Twelve
+ * @since Twenty Twelve 1.0
+ */
+
+/*
+ * If the current post is protected by a password and
+ * the visitor has not yet entered the password we will
+ * return early without loading the comments.
+ */
+if ( post_password_required() )
+	return;
+?>
+
+<div id="comments" class="comments-area">
+
+	<?php // You can start editing here -- including this comment! ?>
+
+	<?php if ( have_comments() ) : ?>
+		<h2 class="comments-title">
+			<?php
+				printf( _n( 'One thought on &ldquo;%2$s&rdquo;', '%1$s thoughts on &ldquo;%2$s&rdquo;', get_comments_number(), 'twentytwelve' ),
+					number_format_i18n( get_comments_number() ), '<span>' . get_the_title() . '</span>' );
+			?>
+		</h2>
+
+		<ol class="commentlist">
+			<?php wp_list_comments( array( 'callback' => 'twentytwelve_comment', 'style' => 'ol' ) ); ?>
+		</ol><!-- .commentlist -->
+
+		<?php if ( get_comment_pages_count() > 1 && get_option( 'page_comments' ) ) : // are there comments to navigate through ?>
+		<nav id="comment-nav-below" class="navigation" role="navigation">
+			<h1 class="assistive-text section-heading"><?php _e( 'Comment navigation', 'twentytwelve' ); ?></h1>
+			<div class="nav-previous"><?php previous_comments_link( __( '&larr; Older Comments', 'twentytwelve' ) ); ?></div>
+			<div class="nav-next"><?php next_comments_link( __( 'Newer Comments &rarr;', 'twentytwelve' ) ); ?></div>
+		</nav>
+		<?php endif; // check for comment navigation ?>
+
+		<?php
+		/* If there are no comments and comments are closed, let's leave a note.
+		 * But we only want the note on posts and pages that had comments in the first place.
+		 */
+		if ( ! comments_open() && get_comments_number() ) : ?>
+		<p class="nocomments"><?php _e( 'Comments are closed.' , 'twentytwelve' ); ?></p>
+		<?php endif; ?>
+
+	<?php endif; // have_comments() ?>
+
+	<?php comment_form(); ?>
+
+</div><!-- #comments .comments-area -->
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-content/themes/twentytwelve/content-aside.php	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,28 @@
+<?php
+/**
+ * The template for displaying posts in the Aside post format
+ *
+ * @package WordPress
+ * @subpackage Twenty_Twelve
+ * @since Twenty Twelve 1.0
+ */
+?>
+
+	<article id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
+		<div class="aside">
+			<h1 class="entry-title"><a href="<?php the_permalink(); ?>" title="<?php echo esc_attr( sprintf( __( 'Permalink to %s', 'twentytwelve' ), the_title_attribute( 'echo=0' ) ) ); ?>" rel="bookmark"><?php the_title(); ?></a></h1>
+			<div class="entry-content">
+				<?php the_content( __( 'Continue reading <span class="meta-nav">&rarr;</span>', 'twentytwelve' ) ); ?>
+			</div><!-- .entry-content -->
+		</div><!-- .aside -->
+
+		<footer class="entry-meta">
+			<a href="<?php the_permalink(); ?>" title="<?php echo esc_attr( sprintf( __( 'Permalink to %s', 'twentytwelve' ), the_title_attribute( 'echo=0' ) ) ); ?>" rel="bookmark"><?php echo get_the_date(); ?></a>
+			<?php if ( comments_open() ) : ?>
+			<div class="comments-link">
+				<?php comments_popup_link( '<span class="leave-reply">' . __( 'Leave a reply', 'twentytwelve' ) . '</span>', __( '1 Reply', 'twentytwelve' ), __( '% Replies', 'twentytwelve' ) ); ?>
+			</div><!-- .comments-link -->
+			<?php endif; // comments_open() ?>
+			<?php edit_post_link( __( 'Edit', 'twentytwelve' ), '<span class="edit-link">', '</span>' ); ?>
+		</footer><!-- .entry-meta -->
+	</article><!-- #post -->
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-content/themes/twentytwelve/content-image.php	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,28 @@
+<?php
+/**
+ * The template for displaying posts in the Image post format
+ *
+ * @package WordPress
+ * @subpackage Twenty_Twelve
+ * @since Twenty Twelve 1.0
+ */
+?>
+
+	<article id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
+		<div class="entry-content">
+			<?php the_content( __( 'Continue reading <span class="meta-nav">&rarr;</span>', 'twentytwelve' ) ); ?>
+		</div><!-- .entry-content -->
+
+		<footer class="entry-meta">
+			<a href="<?php the_permalink(); ?>" title="<?php echo esc_attr( sprintf( __( 'Permalink to %s', 'twentytwelve' ), the_title_attribute( 'echo=0' ) ) ); ?>" rel="bookmark">
+				<h1><?php the_title(); ?></h1>
+				<h2><time class="entry-date" datetime="<?php echo esc_attr( get_the_date( 'c' ) ); ?>"><?php echo get_the_date(); ?></time></h2>
+			</a>
+			<?php if ( comments_open() ) : ?>
+			<div class="comments-link">
+				<?php comments_popup_link( '<span class="leave-reply">' . __( 'Leave a reply', 'twentytwelve' ) . '</span>', __( '1 Reply', 'twentytwelve' ), __( '% Replies', 'twentytwelve' ) ); ?>
+			</div><!-- .comments-link -->
+			<?php endif; // comments_open() ?>
+			<?php edit_post_link( __( 'Edit', 'twentytwelve' ), '<span class="edit-link">', '</span>' ); ?>
+		</footer><!-- .entry-meta -->
+	</article><!-- #post -->
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-content/themes/twentytwelve/content-link.php	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,26 @@
+<?php
+/**
+ * The template for displaying posts in the Link post format
+ *
+ * @package WordPress
+ * @subpackage Twenty_Twelve
+ * @since Twenty Twelve 1.0
+ */
+?>
+
+	<article id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
+		<header><?php _e( 'Link', 'twentytwelve' ); ?></header>
+		<div class="entry-content">
+			<?php the_content( __( 'Continue reading <span class="meta-nav">&rarr;</span>', 'twentytwelve' ) ); ?>
+		</div><!-- .entry-content -->
+
+		<footer class="entry-meta">
+			<a href="<?php the_permalink(); ?>" title="<?php echo esc_attr( sprintf( __( 'Permalink to %s', 'twentytwelve' ), the_title_attribute( 'echo=0' ) ) ); ?>" rel="bookmark"><?php echo get_the_date(); ?></a>
+			<?php if ( comments_open() ) : ?>
+			<div class="comments-link">
+				<?php comments_popup_link( '<span class="leave-reply">' . __( 'Leave a reply', 'twentytwelve' ) . '</span>', __( '1 Reply', 'twentytwelve' ), __( '% Replies', 'twentytwelve' ) ); ?>
+			</div><!-- .comments-link -->
+			<?php endif; // comments_open() ?>
+			<?php edit_post_link( __( 'Edit', 'twentytwelve' ), '<span class="edit-link">', '</span>' ); ?>
+		</footer><!-- .entry-meta -->
+	</article><!-- #post -->
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-content/themes/twentytwelve/content-none.php	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,20 @@
+<?php
+/**
+ * The template for displaying a "No posts found" message.
+ *
+ * @package WordPress
+ * @subpackage Twenty_Twelve
+ * @since Twenty Twelve 1.0
+ */
+?>
+
+	<article id="post-0" class="post no-results not-found">
+		<header class="entry-header">
+			<h1 class="entry-title"><?php _e( 'Nothing Found', 'twentytwelve' ); ?></h1>
+		</header>
+
+		<div class="entry-content">
+			<p><?php _e( 'Apologies, but no results were found. Perhaps searching will help find a related post.', 'twentytwelve' ); ?></p>
+			<?php get_search_form(); ?>
+		</div><!-- .entry-content -->
+	</article><!-- #post-0 -->
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-content/themes/twentytwelve/content-page.php	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,23 @@
+<?php
+/**
+ * The template used for displaying page content in page.php
+ *
+ * @package WordPress
+ * @subpackage Twenty_Twelve
+ * @since Twenty Twelve 1.0
+ */
+?>
+
+	<article id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
+		<header class="entry-header">
+			<h1 class="entry-title"><?php the_title(); ?></h1>
+		</header>
+
+		<div class="entry-content">
+			<?php the_content(); ?>
+			<?php wp_link_pages( array( 'before' => '<div class="page-links">' . __( 'Pages:', 'twentytwelve' ), 'after' => '</div>' ) ); ?>
+		</div><!-- .entry-content -->
+		<footer class="entry-meta">
+			<?php edit_post_link( __( 'Edit', 'twentytwelve' ), '<span class="edit-link">', '</span>' ); ?>
+		</footer><!-- .entry-meta -->
+	</article><!-- #post -->
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-content/themes/twentytwelve/content-quote.php	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,25 @@
+<?php
+/**
+ * The template for displaying posts in the Quote post format
+ *
+ * @package WordPress
+ * @subpackage Twenty_Twelve
+ * @since Twenty Twelve 1.0
+ */
+?>
+
+	<article id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
+		<div class="entry-content">
+			<?php the_content( __( 'Continue reading <span class="meta-nav">&rarr;</span>', 'twentytwelve' ) ); ?>
+		</div><!-- .entry-content -->
+
+		<footer class="entry-meta">
+			<a href="<?php the_permalink(); ?>" title="<?php echo esc_attr( sprintf( __( 'Permalink to %s', 'twentytwelve' ), the_title_attribute( 'echo=0' ) ) ); ?>" rel="bookmark"><?php echo get_the_date(); ?></a>
+			<?php if ( comments_open() ) : ?>
+			<div class="comments-link">
+				<?php comments_popup_link( '<span class="leave-reply">' . __( 'Leave a reply', 'twentytwelve' ) . '</span>', __( '1 Reply', 'twentytwelve' ), __( '% Replies', 'twentytwelve' ) ); ?>
+			</div><!-- .comments-link -->
+			<?php endif; // comments_open() ?>
+			<?php edit_post_link( __( 'Edit', 'twentytwelve' ), '<span class="edit-link">', '</span>' ); ?>
+		</footer><!-- .entry-meta -->
+	</article><!-- #post -->
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-content/themes/twentytwelve/content-status.php	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,32 @@
+<?php
+/**
+ * The template for displaying posts in the Status post format
+ *
+ * @package WordPress
+ * @subpackage Twenty_Twelve
+ * @since Twenty Twelve 1.0
+ */
+?>
+
+	<article id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
+		<div class="entry-header">
+			<header>
+				<h1><?php the_author(); ?></h1>
+				<h2><a href="<?php the_permalink(); ?>" title="<?php echo esc_attr( sprintf( __( 'Permalink to %s', 'twentytwelve' ), the_title_attribute( 'echo=0' ) ) ); ?>" rel="bookmark"><?php echo get_the_date(); ?></a></h2>
+			</header>
+			<?php echo get_avatar( get_the_author_meta( 'ID' ), apply_filters( 'twentytwelve_status_avatar', '48' ) ); ?>
+		</div><!-- .entry-header -->
+
+		<div class="entry-content">
+			<?php the_content( __( 'Continue reading <span class="meta-nav">&rarr;</span>', 'twentytwelve' ) ); ?>
+		</div><!-- .entry-content -->
+
+		<footer class="entry-meta">
+			<?php if ( comments_open() ) : ?>
+			<div class="comments-link">
+				<?php comments_popup_link( '<span class="leave-reply">' . __( 'Leave a reply', 'twentytwelve' ) . '</span>', __( '1 Reply', 'twentytwelve' ), __( '% Replies', 'twentytwelve' ) ); ?>
+			</div><!-- .comments-link -->
+			<?php endif; // comments_open() ?>
+			<?php edit_post_link( __( 'Edit', 'twentytwelve' ), '<span class="edit-link">', '</span>' ); ?>
+		</footer><!-- .entry-meta -->
+	</article><!-- #post -->
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-content/themes/twentytwelve/content.php	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,64 @@
+<?php
+/**
+ * The default template for displaying content. Used for both single and index/archive/search.
+ *
+ * @package WordPress
+ * @subpackage Twenty_Twelve
+ * @since Twenty Twelve 1.0
+ */
+?>
+
+	<article id="post-<?php the_ID(); ?>" <?php post_class(); ?>>
+		<?php if ( is_sticky() && is_home() && ! is_paged() ) : ?>
+		<div class="featured-post">
+			<?php _e( 'Featured post', 'twentytwelve' ); ?>
+		</div>
+		<?php endif; ?>
+		<header class="entry-header">
+			<?php the_post_thumbnail(); ?>
+			<?php if ( is_single() ) : ?>
+			<h1 class="entry-title"><?php the_title(); ?></h1>
+			<?php else : ?>
+			<h1 class="entry-title">
+				<a href="<?php the_permalink(); ?>" title="<?php echo esc_attr( sprintf( __( 'Permalink to %s', 'twentytwelve' ), the_title_attribute( 'echo=0' ) ) ); ?>" rel="bookmark"><?php the_title(); ?></a>
+			</h1>
+			<?php endif; // is_single() ?>
+			<?php if ( comments_open() ) : ?>
+				<div class="comments-link">
+					<?php comments_popup_link( '<span class="leave-reply">' . __( 'Leave a reply', 'twentytwelve' ) . '</span>', __( '1 Reply', 'twentytwelve' ), __( '% Replies', 'twentytwelve' ) ); ?>
+				</div><!-- .comments-link -->
+			<?php endif; // comments_open() ?>
+		</header><!-- .entry-header -->
+
+		<?php if ( is_search() ) : // Only display Excerpts for Search ?>
+		<div class="entry-summary">
+			<?php the_excerpt(); ?>
+		</div><!-- .entry-summary -->
+		<?php else : ?>
+		<div class="entry-content">
+			<?php the_content( __( 'Continue reading <span class="meta-nav">&rarr;</span>', 'twentytwelve' ) ); ?>
+			<?php wp_link_pages( array( 'before' => '<div class="page-links">' . __( 'Pages:', 'twentytwelve' ), 'after' => '</div>' ) ); ?>
+		</div><!-- .entry-content -->
+		<?php endif; ?>
+
+		<footer class="entry-meta">
+			<?php twentytwelve_entry_meta(); ?>
+			<?php edit_post_link( __( 'Edit', 'twentytwelve' ), '<span class="edit-link">', '</span>' ); ?>
+			<?php if ( is_singular() && get_the_author_meta( 'description' ) && is_multi_author() ) : // If a user has filled out their description and this is a multi-author blog, show a bio on their entries. ?>
+				<div class="author-info">
+					<div class="author-avatar">
+						<?php echo get_avatar( get_the_author_meta( 'user_email' ), apply_filters( 'twentytwelve_author_bio_avatar_size', 68 ) ); ?>
+					</div><!-- .author-avatar -->
+					<div class="author-description">
+						<h2><?php printf( __( 'About %s', 'twentytwelve' ), get_the_author() ); ?></h2>
+						<p><?php the_author_meta( 'description' ); ?></p>
+						<div class="author-link">
+							<a href="<?php echo esc_url( get_author_posts_url( get_the_author_meta( 'ID' ) ) ); ?>" rel="author">
+								<?php printf( __( 'View all posts by %s <span class="meta-nav">&rarr;</span>', 'twentytwelve' ), get_the_author() ); ?>
+							</a>
+						</div><!-- .author-link	-->
+					</div><!-- .author-description -->
+				</div><!-- .author-info -->
+			<?php endif; ?>
+		</footer><!-- .entry-meta -->
+	</article><!-- #post -->
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-content/themes/twentytwelve/css/ie.css	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,243 @@
+/*
+Styles for older IE versions (previous to IE9).
+*/
+
+body {
+	background-color: #e6e6e6;
+}
+body.custom-background-empty {
+	background-color: #fff;
+}
+body.custom-background-empty .site,
+body.custom-background-white .site {
+	box-shadow: none;
+	margin-bottom: 0;
+	margin-top: 0;
+	padding: 0;
+}
+.assistive-text,
+.site .screen-reader-text {
+	clip: rect(1px 1px 1px 1px); /* IE7 */
+}
+.full-width .site-content {
+	float: none;
+	width: 100%;
+}
+img.size-full,
+img.size-large,
+img.header-image,
+img.wp-post-image,
+img[class*="align"],
+img[class*="wp-image-"],
+img[class*="attachment-"] {
+	width: auto; /* Prevent stretching of full-size and large-size images with height and width attributes in IE8 */
+}
+.author-avatar {
+	float: left;
+	margin-top: 8px;
+	margin-top: 0.571428571rem;
+}
+.author-description {
+	float: right;
+	width: 80%;
+}
+.site {
+	box-shadow: 0 2px 6px rgba(100, 100, 100, 0.3);
+	margin: 48px auto;
+	max-width: 960px;
+	overflow: hidden;
+	padding: 0 40px;
+}
+.site-content {
+	float: left;
+	width: 65.104166667%;
+}
+body.template-front-page .site-content,
+body.single-attachment .site-content,
+body.full-width .site-content {
+	width: 100%;
+}
+.widget-area {
+	float: right;
+	width: 26.041666667%;
+}
+.site-header h1,
+.site-header h2 {
+	text-align: left;
+}
+.site-header h1 {
+	font-size: 26px;
+	line-height: 1.846153846;
+}
+.main-navigation ul.nav-menu,
+.main-navigation div.nav-menu > ul {
+	border-bottom: 1px solid #ededed;
+	border-top: 1px solid #ededed;
+	display: inline-block !important;
+	text-align: left;
+	width: 100%;
+}
+.main-navigation ul {
+	margin: 0;
+	text-indent: 0;
+}
+.main-navigation li a,
+.main-navigation li {
+	display: inline-block;
+	text-decoration: none;
+}
+.ie7 .main-navigation li a,
+.ie7 .main-navigation li {
+	display: inline;
+}
+.main-navigation li a {
+	border-bottom: 0;
+	color: #6a6a6a;
+	line-height: 3.692307692;
+	text-transform: uppercase;
+}
+.main-navigation li a:hover {
+	color: #000;
+}
+.main-navigation li {
+	margin: 0 40px 0 0;
+	position: relative;
+}
+.main-navigation li ul {
+	display: none;
+	margin: 0;
+	padding: 0;
+	position: absolute;
+	top: 100%;
+	z-index: 1;
+}
+.ie7 .main-navigation li ul {
+	left: 0;
+}
+.main-navigation li ul ul,
+.ie7 .main-navigation li ul ul {
+	top: 0;
+	left: 100%;
+}
+.main-navigation ul li:hover > ul {
+	border-left: 0;
+	display: block;
+}
+.main-navigation li ul li a {
+	background: #efefef;
+	border-bottom: 1px solid #ededed;
+	display: block;
+	font-size: 11px;
+	line-height: 2.181818182;
+	padding: 8px 10px;
+	width: 180px;
+}
+.main-navigation li ul li a:hover {
+	background: #e3e3e3;
+	color: #444;
+}
+.main-navigation .current-menu-item > a,
+.main-navigation .current-menu-ancestor > a,
+.main-navigation .current_page_item > a,
+.main-navigation .current_page_ancestor > a {
+	color: #636363;
+	font-weight: bold;
+}
+.menu-toggle {
+	display: none;
+}
+.entry-header .entry-title {
+	font-size: 22px;
+}
+#respond form input[type="text"] {
+	width: 46.333333333%;
+}
+#respond form textarea.blog-textarea {
+	width: 79.666666667%;
+}
+.template-front-page .site-content,
+.template-front-page article {
+	overflow: hidden;
+}
+.template-front-page.has-post-thumbnail article {
+	float: left;
+	width: 47.916666667%;
+}
+.entry-page-image {
+	float: right;
+	margin-bottom: 0;
+	width: 47.916666667%;
+}
+.template-front-page .widget-area .widget,
+.template-front-page.two-sidebars .widget-area .front-widgets {
+	float: left;
+	margin-bottom: 24px;
+	width: 51.875%;
+}
+.template-front-page .widget-area .widget:nth-child(odd) {
+	clear: right;
+}
+.template-front-page .widget-area .widget:nth-child(even),
+.template-front-page.two-sidebars .widget-area .front-widgets + .front-widgets {
+	float: right;
+	margin: 0 0 24px;
+	width: 39.0625%;
+}
+.template-front-page.two-sidebars .widget,
+.template-front-page.two-sidebars .widget:nth-child(even) {
+	float: none;
+	width: auto;
+}
+
+/* =RTL overrides for IE7 and IE8
+-------------------------------------------------------------- */
+.rtl .site-header h1,
+.rtl .site-header h2 {
+	text-align: right;
+}
+.rtl .widget-area,
+.rtl .author-description {
+	float: left;
+}
+.rtl .author-avatar,
+.rtl .site-content {
+	float: right;
+}
+.rtl .main-navigation ul.nav-menu,
+.rtl .main-navigation div.nav-menu > ul {
+	text-align: right;
+}
+.rtl .main-navigation ul li ul li,
+.rtl .main-navigation ul li ul li ul li {
+	margin-left: 40px;
+	margin-right: auto;
+}
+.rtl .main-navigation li ul ul {
+	position: absolute;
+	bottom: 0;
+	right: 100%;
+	z-index: 1;
+}
+.ie7 .rtl .main-navigation li ul ul {
+	position: absolute;
+	bottom: 0;
+	right: 100%;
+	z-index: 1;
+}
+.ie7 .rtl .main-navigation ul li {
+	z-index: 99;
+}
+.ie7 .rtl .main-navigation li ul {
+	position: absolute;
+	bottom: 100%;
+	right: 0;
+	z-index: 1;
+}
+.ie7 .rtl .main-navigation li {
+	margin-right: auto;
+	margin-left: 40px;
+}
+.ie7 .rtl .main-navigation li ul ul ul {
+	position: relative;
+	z-index: 1;
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-content/themes/twentytwelve/editor-style-rtl.css	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,28 @@
+/*
+Theme Name: Twenty Twelve
+Description: Used to style the TinyMCE editor for RTL languages.
+See also rtl.css file.
+*/
+
+html .mceContentBody {
+	direction: rtl;
+	unicode-bidi: embed;
+}
+li {
+	margin: 0 24px 0 0;
+	margin: 0 1.714285714rem 0 0;
+}
+dl {
+	margin: 0 24px;
+	margin: 0 1.714285714rem;
+}
+tr th {
+	text-align: right;
+}
+td {
+	padding: 6px 0 6px 10px;
+	text-align: right;
+}
+.wp-caption {
+	text-align: right;
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-content/themes/twentytwelve/editor-style.css	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,342 @@
+/*
+Theme Name: Twenty Twelve
+Description: Used to style the TinyMCE editor.
+*/
+
+html {
+	font-size: 87.5%;
+}
+html .mceContentBody {
+	max-width: 625px;
+}
+body {
+	color: #444;
+	font-family: "Open Sans", Helvetica, Arial, sans-serif;
+	font-size: 14px;
+	font-size: 1rem;
+	line-height: 1;
+	text-rendering: optimizeLegibility;
+	vertical-align: baseline;
+}
+
+
+/* =Headings
+-------------------------------------------------------------- */
+
+h1,
+h2,
+h3,
+h4,
+h5,
+h6 {
+	clear: both;
+	line-height: 1.846153846;
+	margin: 24px 0;
+	margin: 1.714285714rem 0;
+}
+h1 {
+	font-size: 21px;
+	font-size: 1.5rem;
+	line-height: 1.5;
+}
+h2 {
+	font-size: 18px;
+	font-size: 1.285714286rem;
+	line-height: 1.6;
+}
+h3 {
+	font-size: 16px;
+	font-size: 1.142857143rem;
+}
+h4 {
+	font-size: 14px;
+	font-size: 1rem;
+}
+h5 {
+	font-size: 13px;
+	font-size: 0.928571429rem;
+}
+h6 {
+	font-size: 12px;
+	font-size: 0.857142857rem;
+}
+hr {
+	background-color: #ccc;
+	border: 0;
+	height: 1px;
+	margin: 24px;
+	margin-bottom: 1.714285714rem;
+}
+
+
+/* =Text elements
+-------------------------------------------------------------- */
+
+p {
+	line-height: 1.714285714;
+	margin: 0 0 24px;
+	margin: 0 0 1.714285714rem;
+}
+ul,
+ol {
+	margin: 0 0 24px;
+	margin: 0 0 1.714285714rem;
+	line-height: 1.714285714;
+	padding: 0;
+}
+ul {
+	list-style: disc outside;
+}
+ol {
+	list-style: decimal outside;
+}
+ul ul,
+ol ol,
+ul ol,
+ol ul {
+	margin-bottom: 0;
+}
+li {
+	margin: 0 0 0 24px;
+	margin: 0 0 0 1.714285714rem;
+}
+dl {
+	margin: 0 24px;
+	margin: 0 1.714285714rem;
+}
+dt {
+	font-weight: bold;
+	margin-bottom: 24px;
+	margin-bottom: 1.714285714rem;
+}
+dd {
+	line-height: 1.714285714;
+	margin: 0 0 24px;
+	margin: 0 0 1.714285714rem;
+}
+strong {
+	font-weight: bold;
+}
+cite,
+em,
+i {
+	font-style: italic;
+}
+cite {
+	border: none;
+}
+big {
+	font-size: 128.571429%;
+}
+.mceContentBody blockquote {
+	font-style: italic !important;
+	font-weight: normal;
+	margin: 0;
+	padding: 24px;
+	padding: 1.714285714rem;
+}
+pre {
+	border: 1px solid #ededed;
+	color: #666;
+	font-family: Consolas, Monaco, Lucida Console, monospace;
+	font-size: 12px;
+	font-size: 0.857142857rem;
+	line-height: 1.714285714;
+	margin: 24px 0;
+	margin: 1.714285714rem 0;
+	overflow: auto;
+	padding: 24px;
+	padding: 1.714285714rem;
+}
+code,
+kbd,
+samp,
+var {
+	font-family: Consolas, Monaco, Lucida Console, monospace;
+	font-size: 12px;
+	font-size: 0.857142857rem;
+	line-height: 2;
+}
+abbr,
+acronym,
+dfn {
+	border-bottom: 1px dotted #666;
+	cursor: help;
+}
+address {
+	display: block;
+	line-height: 1.714285714;
+	margin: 0 0 24px;
+	margin: 0 0 1.714285714rem;
+}
+del {
+	color: #333;
+}
+ins {
+	background: #fff9c0;
+	border: none;
+	color: #333;
+	text-decoration: none;
+}
+sup,
+sub {
+	font-size: 75%;
+	line-height: 0;
+	position: relative;
+	vertical-align: baseline;
+}
+sup {
+	top: -0.5em;
+}
+sub {
+	bottom: -0.25em;
+}
+input[type="text"] {
+	border: 1px solid #ccc;
+	border-radius: 3px;
+	font-family: inherit;
+	padding: 6px;
+	padding: 0.428571429rem;
+}
+textarea {
+	border: 1px solid #d5d2ca;
+	border-radius: 3px;
+	font-family: inherit;
+	font-size: 12px;
+	font-size: 0.857142857rem;
+	line-height: 1.714285714;
+	padding: 10px;
+	padding: 0.714285714rem;
+	width: 96%;
+}
+
+
+/* =Links
+-------------------------------------------------------------- */
+
+a,
+a em,
+a strong {
+	color: #21759b;
+	outline: none;
+}
+a:focus,
+a:active,
+a:hover {
+	color: #0f3647;
+}
+
+
+/* =Alignment
+-------------------------------------------------------------- */
+
+.alignleft {
+	display: inline;
+	float: left;
+	margin: 12px 24px 12px 0;
+	margin: 0.857142857rem 1.714285714rem 0.857142857rem 0;
+}
+.alignright {
+	display: inline;
+	float: right;
+	margin: 12px 0 12px 24px;
+	margin: 0.857142857rem 0 0.857142857rem 1.714285714rem;
+}
+.aligncenter {
+	clear: both;
+	display: block;
+	margin-top: 12px;
+	margin-top: 0.857142857rem;
+	margin-bottom: 12px;
+	margin-bottom: 0.857142857rem;
+}
+
+
+/* =Tables
+-------------------------------------------------------------- */
+
+table {
+	border-bottom: 1px solid #ededed;
+	border-collapse: collapse;
+	border-spacing: 0;
+	color: #757575;
+	font-size: 12px;
+	font-size: 0.857142857rem;
+	line-height: 2;
+	margin: 0 0 24px;
+	margin: 0 0 1.714285714rem;
+	width: 100%;
+}
+tr th {
+	color: #636363;
+	font-size: 11px;
+	font-size: 0.785714286rem;
+	font-weight: bold;
+	line-height: 2.181818182;
+	text-align: left;
+	text-transform: uppercase;
+}
+td {
+	border-top: 1px solid #ededed !important;
+	color: #757575;
+	font-size: inherit;
+	font-weight: normal;
+	padding: 6px 10px 6px 0;
+	text-align: left;
+}
+
+
+/* =Images
+-------------------------------------------------------------- */
+
+img,
+.editor-attachment {
+	border: 0;
+	border-radius: 3px;
+	box-shadow: 0 1px 4px rgba(0, 0, 0, 0.2);
+	max-width: 100%;
+}
+img.size-full {
+	width: auto/9; /* Prevent stretching of full-size images in IE8 */
+}
+img[class*="wp-image-"] {
+	height: auto;
+	max-width: 100%;
+}
+img[class*="align"],
+img[class*="wp-image-"],
+img[class*="attachment-"] {
+	height: auto; /* Make sure images with WordPress-added height and width attributes are scaled correctly */
+}
+img.mceWPnextpage {
+	border-radius: 0;
+	box-shadow: none;
+}
+img.wp-smiley {
+	border: 0;
+	border-radius: 0;
+	box-shadow: none;
+	margin-bottom: 0;
+	margin-top: 0;
+	padding: 0;
+}
+.wp-caption {
+	background: transparent;
+	border: none;
+	margin: 0;
+	padding: 4px;
+	text-align: left;
+}
+.wp-caption-dt {
+	margin: 0;
+}
+.wp-caption .wp-caption-text,
+.wp-caption-dd {
+	color: #757575;
+	font-style: italic;
+	font-size: 12px;
+	font-size: 0.857142857rem;
+	line-height: 2;
+	margin: 0 0 24px;
+	margin: 0 0 1.71429rem;
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-content/themes/twentytwelve/footer.php	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,24 @@
+<?php
+/**
+ * The template for displaying the footer.
+ *
+ * Contains footer content and the closing of the
+ * #main and #page div elements.
+ *
+ * @package WordPress
+ * @subpackage Twenty_Twelve
+ * @since Twenty Twelve 1.0
+ */
+?>
+	</div><!-- #main .wrapper -->
+	<footer id="colophon" role="contentinfo">
+		<div class="site-info">
+			<?php do_action( 'twentytwelve_credits' ); ?>
+			<a href="<?php echo esc_url( __( 'http://wordpress.org/', 'twentytwelve' ) ); ?>" title="<?php esc_attr_e( 'Semantic Personal Publishing Platform', 'twentytwelve' ); ?>"><?php printf( __( 'Proudly powered by %s', 'twentytwelve' ), 'WordPress' ); ?></a>
+		</div><!-- .site-info -->
+	</footer><!-- #colophon -->
+</div><!-- #page -->
+
+<?php wp_footer(); ?>
+</body>
+</html>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-content/themes/twentytwelve/functions.php	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,450 @@
+<?php
+/**
+ * Twenty Twelve functions and definitions.
+ *
+ * Sets up the theme and provides some helper functions, which are used
+ * in the theme as custom template tags. Others are attached to action and
+ * filter hooks in WordPress to change core functionality.
+ *
+ * When using a child theme (see http://codex.wordpress.org/Theme_Development and
+ * http://codex.wordpress.org/Child_Themes), you can override certain functions
+ * (those wrapped in a function_exists() call) by defining them first in your child theme's
+ * functions.php file. The child theme's functions.php file is included before the parent
+ * theme's file, so the child theme functions would be used.
+ *
+ * Functions that are not pluggable (not wrapped in function_exists()) are instead attached
+ * to a filter or action hook.
+ *
+ * For more information on hooks, actions, and filters, see http://codex.wordpress.org/Plugin_API.
+ *
+ * @package WordPress
+ * @subpackage Twenty_Twelve
+ * @since Twenty Twelve 1.0
+ */
+
+/**
+ * Sets up the content width value based on the theme's design and stylesheet.
+ */
+if ( ! isset( $content_width ) )
+	$content_width = 625;
+
+/**
+ * Sets up theme defaults and registers the various WordPress features that
+ * Twenty Twelve supports.
+ *
+ * @uses load_theme_textdomain() For translation/localization support.
+ * @uses add_editor_style() To add a Visual Editor stylesheet.
+ * @uses add_theme_support() To add support for post thumbnails, automatic feed links,
+ * 	custom background, and post formats.
+ * @uses register_nav_menu() To add support for navigation menus.
+ * @uses set_post_thumbnail_size() To set a custom post thumbnail size.
+ *
+ * @since Twenty Twelve 1.0
+ */
+function twentytwelve_setup() {
+	/*
+	 * Makes Twenty Twelve available for translation.
+	 *
+	 * Translations can be added to the /languages/ directory.
+	 * If you're building a theme based on Twenty Twelve, use a find and replace
+	 * to change 'twentytwelve' to the name of your theme in all the template files.
+	 */
+	load_theme_textdomain( 'twentytwelve', get_template_directory() . '/languages' );
+
+	// This theme styles the visual editor with editor-style.css to match the theme style.
+	add_editor_style();
+
+	// Adds RSS feed links to <head> for posts and comments.
+	add_theme_support( 'automatic-feed-links' );
+
+	// This theme supports a variety of post formats.
+	add_theme_support( 'post-formats', array( 'aside', 'image', 'link', 'quote', 'status' ) );
+
+	// This theme uses wp_nav_menu() in one location.
+	register_nav_menu( 'primary', __( 'Primary Menu', 'twentytwelve' ) );
+
+	/*
+	 * This theme supports custom background color and image, and here
+	 * we also set up the default background color.
+	 */
+	add_theme_support( 'custom-background', array(
+		'default-color' => 'e6e6e6',
+	) );
+
+	// This theme uses a custom image size for featured images, displayed on "standard" posts.
+	add_theme_support( 'post-thumbnails' );
+	set_post_thumbnail_size( 624, 9999 ); // Unlimited height, soft crop
+}
+add_action( 'after_setup_theme', 'twentytwelve_setup' );
+
+/**
+ * Adds support for a custom header image.
+ */
+require( get_template_directory() . '/inc/custom-header.php' );
+
+/**
+ * Enqueues scripts and styles for front-end.
+ *
+ * @since Twenty Twelve 1.0
+ */
+function twentytwelve_scripts_styles() {
+	global $wp_styles;
+
+	/*
+	 * Adds JavaScript to pages with the comment form to support
+	 * sites with threaded comments (when in use).
+	 */
+	if ( is_singular() && comments_open() && get_option( 'thread_comments' ) )
+		wp_enqueue_script( 'comment-reply' );
+
+	/*
+	 * Adds JavaScript for handling the navigation menu hide-and-show behavior.
+	 */
+	wp_enqueue_script( 'twentytwelve-navigation', get_template_directory_uri() . '/js/navigation.js', array(), '1.0', true );
+
+	/*
+	 * Loads our special font CSS file.
+	 *
+	 * The use of Open Sans by default is localized. For languages that use
+	 * characters not supported by the font, the font can be disabled.
+	 *
+	 * To disable in a child theme, use wp_dequeue_style()
+	 * function mytheme_dequeue_fonts() {
+	 *     wp_dequeue_style( 'twentytwelve-fonts' );
+	 * }
+	 * add_action( 'wp_enqueue_scripts', 'mytheme_dequeue_fonts', 11 );
+	 */
+
+	/* translators: If there are characters in your language that are not supported
+	   by Open Sans, translate this to 'off'. Do not translate into your own language. */
+	if ( 'off' !== _x( 'on', 'Open Sans font: on or off', 'twentytwelve' ) ) {
+		$subsets = 'latin,latin-ext';
+
+		/* translators: To add an additional Open Sans character subset specific to your language, translate
+		   this to 'greek', 'cyrillic' or 'vietnamese'. Do not translate into your own language. */
+		$subset = _x( 'no-subset', 'Open Sans font: add new subset (greek, cyrillic, vietnamese)', 'twentytwelve' );
+
+		if ( 'cyrillic' == $subset )
+			$subsets .= ',cyrillic,cyrillic-ext';
+		elseif ( 'greek' == $subset )
+			$subsets .= ',greek,greek-ext';
+		elseif ( 'vietnamese' == $subset )
+			$subsets .= ',vietnamese';
+
+		$protocol = is_ssl() ? 'https' : 'http';
+		$query_args = array(
+			'family' => 'Open+Sans:400italic,700italic,400,700',
+			'subset' => $subsets,
+		);
+		wp_enqueue_style( 'twentytwelve-fonts', add_query_arg( $query_args, "$protocol://fonts.googleapis.com/css" ), array(), null );
+	}
+
+	/*
+	 * Loads our main stylesheet.
+	 */
+	wp_enqueue_style( 'twentytwelve-style', get_stylesheet_uri() );
+
+	/*
+	 * Loads the Internet Explorer specific stylesheet.
+	 */
+	wp_enqueue_style( 'twentytwelve-ie', get_template_directory_uri() . '/css/ie.css', array( 'twentytwelve-style' ), '20121010' );
+	$wp_styles->add_data( 'twentytwelve-ie', 'conditional', 'lt IE 9' );
+}
+add_action( 'wp_enqueue_scripts', 'twentytwelve_scripts_styles' );
+
+/**
+ * Creates a nicely formatted and more specific title element text
+ * for output in head of document, based on current view.
+ *
+ * @since Twenty Twelve 1.0
+ *
+ * @param string $title Default title text for current view.
+ * @param string $sep Optional separator.
+ * @return string Filtered title.
+ */
+function twentytwelve_wp_title( $title, $sep ) {
+	global $paged, $page;
+
+	if ( is_feed() )
+		return $title;
+
+	// Add the site name.
+	$title .= get_bloginfo( 'name' );
+
+	// Add the site description for the home/front page.
+	$site_description = get_bloginfo( 'description', 'display' );
+	if ( $site_description && ( is_home() || is_front_page() ) )
+		$title = "$title $sep $site_description";
+
+	// Add a page number if necessary.
+	if ( $paged >= 2 || $page >= 2 )
+		$title = "$title $sep " . sprintf( __( 'Page %s', 'twentytwelve' ), max( $paged, $page ) );
+
+	return $title;
+}
+add_filter( 'wp_title', 'twentytwelve_wp_title', 10, 2 );
+
+/**
+ * Makes our wp_nav_menu() fallback -- wp_page_menu() -- show a home link.
+ *
+ * @since Twenty Twelve 1.0
+ */
+function twentytwelve_page_menu_args( $args ) {
+	if ( ! isset( $args['show_home'] ) )
+		$args['show_home'] = true;
+	return $args;
+}
+add_filter( 'wp_page_menu_args', 'twentytwelve_page_menu_args' );
+
+/**
+ * Registers our main widget area and the front page widget areas.
+ *
+ * @since Twenty Twelve 1.0
+ */
+function twentytwelve_widgets_init() {
+	register_sidebar( array(
+		'name' => __( 'Main Sidebar', 'twentytwelve' ),
+		'id' => 'sidebar-1',
+		'description' => __( 'Appears on posts and pages except the optional Front Page template, which has its own widgets', 'twentytwelve' ),
+		'before_widget' => '<aside id="%1$s" class="widget %2$s">',
+		'after_widget' => '</aside>',
+		'before_title' => '<h3 class="widget-title">',
+		'after_title' => '</h3>',
+	) );
+
+	register_sidebar( array(
+		'name' => __( 'First Front Page Widget Area', 'twentytwelve' ),
+		'id' => 'sidebar-2',
+		'description' => __( 'Appears when using the optional Front Page template with a page set as Static Front Page', 'twentytwelve' ),
+		'before_widget' => '<aside id="%1$s" class="widget %2$s">',
+		'after_widget' => '</aside>',
+		'before_title' => '<h3 class="widget-title">',
+		'after_title' => '</h3>',
+	) );
+
+	register_sidebar( array(
+		'name' => __( 'Second Front Page Widget Area', 'twentytwelve' ),
+		'id' => 'sidebar-3',
+		'description' => __( 'Appears when using the optional Front Page template with a page set as Static Front Page', 'twentytwelve' ),
+		'before_widget' => '<aside id="%1$s" class="widget %2$s">',
+		'after_widget' => '</aside>',
+		'before_title' => '<h3 class="widget-title">',
+		'after_title' => '</h3>',
+	) );
+}
+add_action( 'widgets_init', 'twentytwelve_widgets_init' );
+
+if ( ! function_exists( 'twentytwelve_content_nav' ) ) :
+/**
+ * Displays navigation to next/previous pages when applicable.
+ *
+ * @since Twenty Twelve 1.0
+ */
+function twentytwelve_content_nav( $html_id ) {
+	global $wp_query;
+
+	$html_id = esc_attr( $html_id );
+
+	if ( $wp_query->max_num_pages > 1 ) : ?>
+		<nav id="<?php echo $html_id; ?>" class="navigation" role="navigation">
+			<h3 class="assistive-text"><?php _e( 'Post navigation', 'twentytwelve' ); ?></h3>
+			<div class="nav-previous alignleft"><?php next_posts_link( __( '<span class="meta-nav">&larr;</span> Older posts', 'twentytwelve' ) ); ?></div>
+			<div class="nav-next alignright"><?php previous_posts_link( __( 'Newer posts <span class="meta-nav">&rarr;</span>', 'twentytwelve' ) ); ?></div>
+		</nav><!-- #<?php echo $html_id; ?> .navigation -->
+	<?php endif;
+}
+endif;
+
+if ( ! function_exists( 'twentytwelve_comment' ) ) :
+/**
+ * Template for comments and pingbacks.
+ *
+ * To override this walker in a child theme without modifying the comments template
+ * simply create your own twentytwelve_comment(), and that function will be used instead.
+ *
+ * Used as a callback by wp_list_comments() for displaying the comments.
+ *
+ * @since Twenty Twelve 1.0
+ */
+function twentytwelve_comment( $comment, $args, $depth ) {
+	$GLOBALS['comment'] = $comment;
+	switch ( $comment->comment_type ) :
+		case 'pingback' :
+		case 'trackback' :
+		// Display trackbacks differently than normal comments.
+	?>
+	<li <?php comment_class(); ?> id="comment-<?php comment_ID(); ?>">
+		<p><?php _e( 'Pingback:', 'twentytwelve' ); ?> <?php comment_author_link(); ?> <?php edit_comment_link( __( '(Edit)', 'twentytwelve' ), '<span class="edit-link">', '</span>' ); ?></p>
+	<?php
+			break;
+		default :
+		// Proceed with normal comments.
+		global $post;
+	?>
+	<li <?php comment_class(); ?> id="li-comment-<?php comment_ID(); ?>">
+		<article id="comment-<?php comment_ID(); ?>" class="comment">
+			<header class="comment-meta comment-author vcard">
+				<?php
+					echo get_avatar( $comment, 44 );
+					printf( '<cite class="fn">%1$s %2$s</cite>',
+						get_comment_author_link(),
+						// If current post author is also comment author, make it known visually.
+						( $comment->user_id === $post->post_author ) ? '<span> ' . __( 'Post author', 'twentytwelve' ) . '</span>' : ''
+					);
+					printf( '<a href="%1$s"><time datetime="%2$s">%3$s</time></a>',
+						esc_url( get_comment_link( $comment->comment_ID ) ),
+						get_comment_time( 'c' ),
+						/* translators: 1: date, 2: time */
+						sprintf( __( '%1$s at %2$s', 'twentytwelve' ), get_comment_date(), get_comment_time() )
+					);
+				?>
+			</header><!-- .comment-meta -->
+
+			<?php if ( '0' == $comment->comment_approved ) : ?>
+				<p class="comment-awaiting-moderation"><?php _e( 'Your comment is awaiting moderation.', 'twentytwelve' ); ?></p>
+			<?php endif; ?>
+
+			<section class="comment-content comment">
+				<?php comment_text(); ?>
+				<?php edit_comment_link( __( 'Edit', 'twentytwelve' ), '<p class="edit-link">', '</p>' ); ?>
+			</section><!-- .comment-content -->
+
+			<div class="reply">
+				<?php comment_reply_link( array_merge( $args, array( 'reply_text' => __( 'Reply', 'twentytwelve' ), 'after' => ' <span>&darr;</span>', 'depth' => $depth, 'max_depth' => $args['max_depth'] ) ) ); ?>
+			</div><!-- .reply -->
+		</article><!-- #comment-## -->
+	<?php
+		break;
+	endswitch; // end comment_type check
+}
+endif;
+
+if ( ! function_exists( 'twentytwelve_entry_meta' ) ) :
+/**
+ * Prints HTML with meta information for current post: categories, tags, permalink, author, and date.
+ *
+ * Create your own twentytwelve_entry_meta() to override in a child theme.
+ *
+ * @since Twenty Twelve 1.0
+ */
+function twentytwelve_entry_meta() {
+	// Translators: used between list items, there is a space after the comma.
+	$categories_list = get_the_category_list( __( ', ', 'twentytwelve' ) );
+
+	// Translators: used between list items, there is a space after the comma.
+	$tag_list = get_the_tag_list( '', __( ', ', 'twentytwelve' ) );
+
+	$date = sprintf( '<a href="%1$s" title="%2$s" rel="bookmark"><time class="entry-date" datetime="%3$s">%4$s</time></a>',
+		esc_url( get_permalink() ),
+		esc_attr( get_the_time() ),
+		esc_attr( get_the_date( 'c' ) ),
+		esc_html( get_the_date() )
+	);
+
+	$author = sprintf( '<span class="author vcard"><a class="url fn n" href="%1$s" title="%2$s" rel="author">%3$s</a></span>',
+		esc_url( get_author_posts_url( get_the_author_meta( 'ID' ) ) ),
+		esc_attr( sprintf( __( 'View all posts by %s', 'twentytwelve' ), get_the_author() ) ),
+		get_the_author()
+	);
+
+	// Translators: 1 is category, 2 is tag, 3 is the date and 4 is the author's name.
+	if ( $tag_list ) {
+		$utility_text = __( 'This entry was posted in %1$s and tagged %2$s on %3$s<span class="by-author"> by %4$s</span>.', 'twentytwelve' );
+	} elseif ( $categories_list ) {
+		$utility_text = __( 'This entry was posted in %1$s on %3$s<span class="by-author"> by %4$s</span>.', 'twentytwelve' );
+	} else {
+		$utility_text = __( 'This entry was posted on %3$s<span class="by-author"> by %4$s</span>.', 'twentytwelve' );
+	}
+
+	printf(
+		$utility_text,
+		$categories_list,
+		$tag_list,
+		$date,
+		$author
+	);
+}
+endif;
+
+/**
+ * Extends the default WordPress body class to denote:
+ * 1. Using a full-width layout, when no active widgets in the sidebar
+ *    or full-width template.
+ * 2. Front Page template: thumbnail in use and number of sidebars for
+ *    widget areas.
+ * 3. White or empty background color to change the layout and spacing.
+ * 4. Custom fonts enabled.
+ * 5. Single or multiple authors.
+ *
+ * @since Twenty Twelve 1.0
+ *
+ * @param array Existing class values.
+ * @return array Filtered class values.
+ */
+function twentytwelve_body_class( $classes ) {
+	$background_color = get_background_color();
+
+	if ( ! is_active_sidebar( 'sidebar-1' ) || is_page_template( 'page-templates/full-width.php' ) )
+		$classes[] = 'full-width';
+
+	if ( is_page_template( 'page-templates/front-page.php' ) ) {
+		$classes[] = 'template-front-page';
+		if ( has_post_thumbnail() )
+			$classes[] = 'has-post-thumbnail';
+		if ( is_active_sidebar( 'sidebar-2' ) && is_active_sidebar( 'sidebar-3' ) )
+			$classes[] = 'two-sidebars';
+	}
+
+	if ( empty( $background_color ) )
+		$classes[] = 'custom-background-empty';
+	elseif ( in_array( $background_color, array( 'fff', 'ffffff' ) ) )
+		$classes[] = 'custom-background-white';
+
+	// Enable custom font class only if the font CSS is queued to load.
+	if ( wp_style_is( 'twentytwelve-fonts', 'queue' ) )
+		$classes[] = 'custom-font-enabled';
+
+	if ( ! is_multi_author() )
+		$classes[] = 'single-author';
+
+	return $classes;
+}
+add_filter( 'body_class', 'twentytwelve_body_class' );
+
+/**
+ * Adjusts content_width value for full-width and single image attachment
+ * templates, and when there are no active widgets in the sidebar.
+ *
+ * @since Twenty Twelve 1.0
+ */
+function twentytwelve_content_width() {
+	if ( is_page_template( 'page-templates/full-width.php' ) || is_attachment() || ! is_active_sidebar( 'sidebar-1' ) ) {
+		global $content_width;
+		$content_width = 960;
+	}
+}
+add_action( 'template_redirect', 'twentytwelve_content_width' );
+
+/**
+ * Add postMessage support for site title and description for the Theme Customizer.
+ *
+ * @since Twenty Twelve 1.0
+ *
+ * @param WP_Customize_Manager $wp_customize Theme Customizer object.
+ * @return void
+ */
+function twentytwelve_customize_register( $wp_customize ) {
+	$wp_customize->get_setting( 'blogname' )->transport = 'postMessage';
+	$wp_customize->get_setting( 'blogdescription' )->transport = 'postMessage';
+}
+add_action( 'customize_register', 'twentytwelve_customize_register' );
+
+/**
+ * Binds JS handlers to make Theme Customizer preview reload changes asynchronously.
+ *
+ * @since Twenty Twelve 1.0
+ */
+function twentytwelve_customize_preview_js() {
+	wp_enqueue_script( 'twentytwelve-customizer', get_template_directory_uri() . '/js/theme-customizer.js', array( 'customize-preview' ), '20120827', true );
+}
+add_action( 'customize_preview_init', 'twentytwelve_customize_preview_js' );
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-content/themes/twentytwelve/header.php	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,54 @@
+<?php
+/**
+ * The Header for our theme.
+ *
+ * Displays all of the <head> section and everything up till <div id="main">
+ *
+ * @package WordPress
+ * @subpackage Twenty_Twelve
+ * @since Twenty Twelve 1.0
+ */
+?><!DOCTYPE html>
+<!--[if IE 7]>
+<html class="ie ie7" <?php language_attributes(); ?>>
+<![endif]-->
+<!--[if IE 8]>
+<html class="ie ie8" <?php language_attributes(); ?>>
+<![endif]-->
+<!--[if !(IE 7) | !(IE 8)  ]><!-->
+<html <?php language_attributes(); ?>>
+<!--<![endif]-->
+<head>
+<meta charset="<?php bloginfo( 'charset' ); ?>" />
+<meta name="viewport" content="width=device-width" />
+<title><?php wp_title( '|', true, 'right' ); ?></title>
+<link rel="profile" href="http://gmpg.org/xfn/11" />
+<link rel="pingback" href="<?php bloginfo( 'pingback_url' ); ?>" />
+<?php // Loads HTML5 JavaScript file to add support for HTML5 elements in older IE versions. ?>
+<!--[if lt IE 9]>
+<script src="<?php echo get_template_directory_uri(); ?>/js/html5.js" type="text/javascript"></script>
+<![endif]-->
+<?php wp_head(); ?>
+</head>
+
+<body <?php body_class(); ?>>
+<div id="page" class="hfeed site">
+	<header id="masthead" class="site-header" role="banner">
+		<hgroup>
+			<h1 class="site-title"><a href="<?php echo esc_url( home_url( '/' ) ); ?>" title="<?php echo esc_attr( get_bloginfo( 'name', 'display' ) ); ?>" rel="home"><?php bloginfo( 'name' ); ?></a></h1>
+			<h2 class="site-description"><?php bloginfo( 'description' ); ?></h2>
+		</hgroup>
+
+		<nav id="site-navigation" class="main-navigation" role="navigation">
+			<h3 class="menu-toggle"><?php _e( 'Menu', 'twentytwelve' ); ?></h3>
+			<a class="assistive-text" href="#content" title="<?php esc_attr_e( 'Skip to content', 'twentytwelve' ); ?>"><?php _e( 'Skip to content', 'twentytwelve' ); ?></a>
+			<?php wp_nav_menu( array( 'theme_location' => 'primary', 'menu_class' => 'nav-menu' ) ); ?>
+		</nav><!-- #site-navigation -->
+
+		<?php $header_image = get_header_image();
+		if ( ! empty( $header_image ) ) : ?>
+			<a href="<?php echo esc_url( home_url( '/' ) ); ?>"><img src="<?php echo esc_url( $header_image ); ?>" class="header-image" width="<?php echo get_custom_header()->width; ?>" height="<?php echo get_custom_header()->height; ?>" alt="" /></a>
+		<?php endif; ?>
+	</header><!-- #masthead -->
+
+	<div id="main" class="wrapper">
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-content/themes/twentytwelve/image.php	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,106 @@
+<?php
+/**
+ * The template for displaying image attachments.
+ *
+ * Learn more: http://codex.wordpress.org/Template_Hierarchy
+ *
+ * @package WordPress
+ * @subpackage Twenty_Twelve
+ * @since Twenty Twelve 1.0
+ */
+
+get_header(); ?>
+
+	<div id="primary" class="site-content">
+		<div id="content" role="main">
+
+		<?php while ( have_posts() ) : the_post(); ?>
+
+				<article id="post-<?php the_ID(); ?>" <?php post_class( 'image-attachment' ); ?>>
+					<header class="entry-header">
+						<h1 class="entry-title"><?php the_title(); ?></h1>
+
+						<footer class="entry-meta">
+							<?php
+								$metadata = wp_get_attachment_metadata();
+								printf( __( '<span class="meta-prep meta-prep-entry-date">Published </span> <span class="entry-date"><time class="entry-date" datetime="%1$s">%2$s</time></span> at <a href="%3$s" title="Link to full-size image">%4$s &times; %5$s</a> in <a href="%6$s" title="Return to %7$s" rel="gallery">%8$s</a>.', 'twentytwelve' ),
+									esc_attr( get_the_date( 'c' ) ),
+									esc_html( get_the_date() ),
+									esc_url( wp_get_attachment_url() ),
+									$metadata['width'],
+									$metadata['height'],
+									esc_url( get_permalink( $post->post_parent ) ),
+									esc_attr( strip_tags( get_the_title( $post->post_parent ) ) ),
+									get_the_title( $post->post_parent )
+								);
+							?>
+							<?php edit_post_link( __( 'Edit', 'twentytwelve' ), '<span class="edit-link">', '</span>' ); ?>
+						</footer><!-- .entry-meta -->
+
+						<nav id="image-navigation" class="navigation" role="navigation">
+							<span class="previous-image"><?php previous_image_link( false, __( '&larr; Previous', 'twentytwelve' ) ); ?></span>
+							<span class="next-image"><?php next_image_link( false, __( 'Next &rarr;', 'twentytwelve' ) ); ?></span>
+						</nav><!-- #image-navigation -->
+					</header><!-- .entry-header -->
+
+					<div class="entry-content">
+
+						<div class="entry-attachment">
+							<div class="attachment">
+<?php
+/**
+ * Grab the IDs of all the image attachments in a gallery so we can get the URL of the next adjacent image in a gallery,
+ * or the first image (if we're looking at the last image in a gallery), or, in a gallery of one, just the link to that image file
+ */
+$attachments = array_values( get_children( array( 'post_parent' => $post->post_parent, 'post_status' => 'inherit', 'post_type' => 'attachment', 'post_mime_type' => 'image', 'order' => 'ASC', 'orderby' => 'menu_order ID' ) ) );
+foreach ( $attachments as $k => $attachment ) :
+	if ( $attachment->ID == $post->ID )
+		break;
+endforeach;
+
+$k++;
+// If there is more than 1 attachment in a gallery
+if ( count( $attachments ) > 1 ) :
+	if ( isset( $attachments[ $k ] ) ) :
+		// get the URL of the next image attachment
+		$next_attachment_url = get_attachment_link( $attachments[ $k ]->ID );
+	else :
+		// or get the URL of the first image attachment
+		$next_attachment_url = get_attachment_link( $attachments[ 0 ]->ID );
+	endif;
+else :
+	// or, if there's only 1 image, get the URL of the image
+	$next_attachment_url = wp_get_attachment_url();
+endif;
+?>
+								<a href="<?php echo esc_url( $next_attachment_url ); ?>" title="<?php the_title_attribute(); ?>" rel="attachment"><?php
+								$attachment_size = apply_filters( 'twentytwelve_attachment_size', array( 960, 960 ) );
+								echo wp_get_attachment_image( $post->ID, $attachment_size );
+								?></a>
+
+								<?php if ( ! empty( $post->post_excerpt ) ) : ?>
+								<div class="entry-caption">
+									<?php the_excerpt(); ?>
+								</div>
+								<?php endif; ?>
+							</div><!-- .attachment -->
+
+						</div><!-- .entry-attachment -->
+
+						<div class="entry-description">
+							<?php the_content(); ?>
+							<?php wp_link_pages( array( 'before' => '<div class="page-links">' . __( 'Pages:', 'twentytwelve' ), 'after' => '</div>' ) ); ?>
+						</div><!-- .entry-description -->
+
+					</div><!-- .entry-content -->
+
+				</article><!-- #post -->
+
+				<?php comments_template(); ?>
+
+			<?php endwhile; // end of the loop. ?>
+
+		</div><!-- #content -->
+	</div><!-- #primary -->
+
+<?php get_footer(); ?>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-content/themes/twentytwelve/inc/custom-header.php	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,150 @@
+<?php
+/**
+ * Implements an optional custom header for Twenty Twelve.
+ * See http://codex.wordpress.org/Custom_Headers
+ *
+ * @package WordPress
+ * @subpackage Twenty_Twelve
+ * @since Twenty Twelve 1.0
+ */
+
+/**
+ * Sets up the WordPress core custom header arguments and settings.
+ *
+ * @uses add_theme_support() to register support for 3.4 and up.
+ * @uses twentytwelve_header_style() to style front-end.
+ * @uses twentytwelve_admin_header_style() to style wp-admin form.
+ * @uses twentytwelve_admin_header_image() to add custom markup to wp-admin form.
+ *
+ * @since Twenty Twelve 1.0
+ */
+function twentytwelve_custom_header_setup() {
+	$args = array(
+		// Text color and image (empty to use none).
+		'default-text-color'     => '444',
+		'default-image'          => '',
+
+		// Set height and width, with a maximum value for the width.
+		'height'                 => 250,
+		'width'                  => 960,
+		'max-width'              => 2000,
+
+		// Support flexible height and width.
+		'flex-height'            => true,
+		'flex-width'             => true,
+
+		// Random image rotation off by default.
+		'random-default'         => false,
+
+		// Callbacks for styling the header and the admin preview.
+		'wp-head-callback'       => 'twentytwelve_header_style',
+		'admin-head-callback'    => 'twentytwelve_admin_header_style',
+		'admin-preview-callback' => 'twentytwelve_admin_header_image',
+	);
+
+	add_theme_support( 'custom-header', $args );
+}
+add_action( 'after_setup_theme', 'twentytwelve_custom_header_setup' );
+
+/**
+ * Styles the header text displayed on the blog.
+ *
+ * get_header_textcolor() options: 444 is default, hide text (returns 'blank'), or any hex value.
+ *
+ * @since Twenty Twelve 1.0
+ */
+function twentytwelve_header_style() {
+	$text_color = get_header_textcolor();
+
+	// If no custom options for text are set, let's bail
+	if ( $text_color == get_theme_support( 'custom-header', 'default-text-color' ) )
+		return;
+
+	// If we get this far, we have custom styles.
+	?>
+	<style type="text/css">
+	<?php
+		// Has the text been hidden?
+		if ( ! display_header_text() ) :
+	?>
+		.site-title,
+		.site-description {
+			position: absolute !important;
+			clip: rect(1px 1px 1px 1px); /* IE7 */
+			clip: rect(1px, 1px, 1px, 1px);
+		}
+	<?php
+		// If the user has set a custom color for the text, use that.
+		else :
+	?>
+		.site-title a,
+		.site-description {
+			color: #<?php echo $text_color; ?> !important;
+		}
+	<?php endif; ?>
+	</style>
+	<?php
+}
+
+/**
+ * Styles the header image displayed on the Appearance > Header admin panel.
+ *
+ * @since Twenty Twelve 1.0
+ */
+function twentytwelve_admin_header_style() {
+?>
+	<style type="text/css">
+	.appearance_page_custom-header #headimg {
+		border: none;
+	}
+	#headimg h1,
+	#headimg h2 {
+		line-height: 1.6;
+		margin: 0;
+		padding: 0;
+	}
+	#headimg h1 {
+		font-size: 30px;
+	}
+	#headimg h1 a {
+		color: #515151;
+		text-decoration: none;
+	}
+	#headimg h1 a:hover {
+		color: #21759b;
+	}
+	#headimg h2 {
+		color: #757575;
+		font: normal 13px/1.8 "HelveticaNeue-Light", "Helvetica Neue Light", "Helvetica Neue", sans-serif;
+		margin-bottom: 24px;
+	}
+	#headimg img {
+		max-width: <?php echo get_theme_support( 'custom-header', 'max-width' ); ?>px;
+	}
+	</style>
+<?php
+}
+
+/**
+ * Outputs markup to be displayed on the Appearance > Header admin panel.
+ * This callback overrides the default markup displayed there.
+ *
+ * @since Twenty Twelve 1.0
+ */
+function twentytwelve_admin_header_image() {
+	?>
+	<div id="headimg">
+		<?php
+		if ( ! display_header_text() )
+			$style = ' style="display:none;"';
+		else
+			$style = ' style="color:#' . get_header_textcolor() . ';"';
+		?>
+		<h1><a id="name"<?php echo $style; ?> onclick="return false;" href="<?php echo esc_url( home_url( '/' ) ); ?>"><?php bloginfo( 'name' ); ?></a></h1>
+		<h2 id="desc"<?php echo $style; ?>><?php bloginfo( 'description' ); ?></h2>
+		<?php $header_image = get_header_image();
+		if ( ! empty( $header_image ) ) : ?>
+			<img src="<?php echo esc_url( $header_image ); ?>" class="header-image" width="<?php echo get_custom_header()->width; ?>" height="<?php echo get_custom_header()->height; ?>" alt="" />
+		<?php endif; ?>
+	</div>
+<?php }
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-content/themes/twentytwelve/index.php	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,66 @@
+<?php
+/**
+ * The main template file.
+ *
+ * This is the most generic template file in a WordPress theme
+ * and one of the two required files for a theme (the other being style.css).
+ * It is used to display a page when nothing more specific matches a query.
+ * For example, it puts together the home page when no home.php file exists.
+ *
+ * Learn more: http://codex.wordpress.org/Template_Hierarchy
+ *
+ * @package WordPress
+ * @subpackage Twenty_Twelve
+ * @since Twenty Twelve 1.0
+ */
+
+get_header(); ?>
+
+	<div id="primary" class="site-content">
+		<div id="content" role="main">
+		<?php if ( have_posts() ) : ?>
+
+			<?php /* Start the Loop */ ?>
+			<?php while ( have_posts() ) : the_post(); ?>
+				<?php get_template_part( 'content', get_post_format() ); ?>
+			<?php endwhile; ?>
+
+			<?php twentytwelve_content_nav( 'nav-below' ); ?>
+
+		<?php else : ?>
+
+			<article id="post-0" class="post no-results not-found">
+
+			<?php if ( current_user_can( 'edit_posts' ) ) :
+				// Show a different message to a logged-in user who can add posts.
+			?>
+				<header class="entry-header">
+					<h1 class="entry-title"><?php _e( 'No posts to display', 'twentytwelve' ); ?></h1>
+				</header>
+
+				<div class="entry-content">
+					<p><?php printf( __( 'Ready to publish your first post? <a href="%s">Get started here</a>.', 'twentytwelve' ), admin_url( 'post-new.php' ) ); ?></p>
+				</div><!-- .entry-content -->
+
+			<?php else :
+				// Show the default message to everyone else.
+			?>
+				<header class="entry-header">
+					<h1 class="entry-title"><?php _e( 'Nothing Found', 'twentytwelve' ); ?></h1>
+				</header>
+
+				<div class="entry-content">
+					<p><?php _e( 'Apologies, but no results were found. Perhaps searching will help find a related post.', 'twentytwelve' ); ?></p>
+					<?php get_search_form(); ?>
+				</div><!-- .entry-content -->
+			<?php endif; // end current_user_can() check ?>
+
+			</article><!-- #post-0 -->
+
+		<?php endif; // end have_posts() check ?>
+
+		</div><!-- #content -->
+	</div><!-- #primary -->
+
+<?php get_sidebar(); ?>
+<?php get_footer(); ?>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-content/themes/twentytwelve/js/html5.js	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,7 @@
+/*! HTML5 Shiv v3.6 | @afarkas @jdalton @jon_neal @rem | MIT/GPL2 Licensed */
+/* Source: https://github.com/aFarkas/html5shiv */
+(function(l,f){function m(){var a=e.elements;return"string"==typeof a?a.split(" "):a}function i(a){var b=n[a[o]];b||(b={},h++,a[o]=h,n[h]=b);return b}function p(a,b,c){b||(b=f);if(g)return b.createElement(a);c||(c=i(b));b=c.cache[a]?c.cache[a].cloneNode():r.test(a)?(c.cache[a]=c.createElem(a)).cloneNode():c.createElem(a);return b.canHaveChildren&&!s.test(a)?c.frag.appendChild(b):b}function t(a,b){if(!b.cache)b.cache={},b.createElem=a.createElement,b.createFrag=a.createDocumentFragment,b.frag=b.createFrag();
+a.createElement=function(c){return!e.shivMethods?b.createElem(c):p(c,a,b)};a.createDocumentFragment=Function("h,f","return function(){var n=f.cloneNode(),c=n.createElement;h.shivMethods&&("+m().join().replace(/\w+/g,function(a){b.createElem(a);b.frag.createElement(a);return'c("'+a+'")'})+");return n}")(e,b.frag)}function q(a){a||(a=f);var b=i(a);if(e.shivCSS&&!j&&!b.hasCSS){var c,d=a;c=d.createElement("p");d=d.getElementsByTagName("head")[0]||d.documentElement;c.innerHTML="x<style>article,aside,figcaption,figure,footer,header,hgroup,nav,section{display:block}mark{background:#FF0;color:#000}</style>";
+c=d.insertBefore(c.lastChild,d.firstChild);b.hasCSS=!!c}g||t(a,b);return a}var k=l.html5||{},s=/^<|^(?:button|map|select|textarea|object|iframe|option|optgroup)$/i,r=/^<|^(?:a|b|button|code|div|fieldset|form|h1|h2|h3|h4|h5|h6|i|iframe|img|input|label|li|link|ol|option|p|param|q|script|select|span|strong|style|table|tbody|td|textarea|tfoot|th|thead|tr|ul)$/i,j,o="_html5shiv",h=0,n={},g;(function(){try{var a=f.createElement("a");a.innerHTML="<xyz></xyz>";j="hidden"in a;var b;if(!(b=1==a.childNodes.length)){f.createElement("a");
+var c=f.createDocumentFragment();b="undefined"==typeof c.cloneNode||"undefined"==typeof c.createDocumentFragment||"undefined"==typeof c.createElement}g=b}catch(d){g=j=!0}})();var e={elements:k.elements||"abbr article aside audio bdi canvas data datalist details figcaption figure footer header hgroup mark meter nav output progress section summary time video",shivCSS:!1!==k.shivCSS,supportsUnknownElements:g,shivMethods:!1!==k.shivMethods,type:"default",shivDocument:q,createElement:p,createDocumentFragment:function(a,
+b){a||(a=f);if(g)return a.createDocumentFragment();for(var b=b||i(a),c=b.frag.cloneNode(),d=0,e=m(),h=e.length;d<h;d++)c.createElement(e[d]);return c}};l.html5=e;q(f)})(this,document);
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-content/themes/twentytwelve/js/navigation.js	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,33 @@
+/**
+ * navigation.js
+ *
+ * Handles toggling the navigation menu for small screens.
+ */
+( function() {
+	var nav = document.getElementById( 'site-navigation' ), button, menu;
+	if ( ! nav )
+		return;
+	button = nav.getElementsByTagName( 'h3' )[0];
+	menu   = nav.getElementsByTagName( 'ul' )[0];
+	if ( ! button )
+		return;
+
+	// Hide button if menu is missing or empty.
+	if ( ! menu || ! menu.childNodes.length ) {
+		button.style.display = 'none';
+		return;
+	}
+
+	button.onclick = function() {
+		if ( -1 == menu.className.indexOf( 'nav-menu' ) )
+			menu.className = 'nav-menu';
+
+		if ( -1 != button.className.indexOf( 'toggled-on' ) ) {
+			button.className = button.className.replace( ' toggled-on', '' );
+			menu.className = menu.className.replace( ' toggled-on', '' );
+		} else {
+			button.className += ' toggled-on';
+			menu.className += ' toggled-on';
+		}
+	};
+} )();
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-content/themes/twentytwelve/js/theme-customizer.js	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,32 @@
+/**
+ * Theme Customizer enhancements for a better user experience.
+ *
+ * Contains handlers to make Theme Customizer preview reload changes asynchronously.
+ * Things like site title, description, and background color changes.
+ */
+
+( function( $ ) {
+	// Site title and description.
+	wp.customize( 'blogname', function( value ) {
+		value.bind( function( to ) {
+			$( '.site-title a' ).html( to );
+		} );
+	} );
+	wp.customize( 'blogdescription', function( value ) {
+		value.bind( function( to ) {
+			$( '.site-description' ).html( to );
+		} );
+	} );
+
+	// Hook into background color change and adjust body class value as needed.
+	wp.customize( 'background_color', function( value ) {
+		value.bind( function( to ) {
+			if ( '#ffffff' == to || '#fff' == to )
+				$( 'body' ).addClass( 'custom-background-white' );
+			else if ( '' == to )
+				$( 'body' ).addClass( 'custom-background-empty' );
+			else
+				$( 'body' ).removeClass( 'custom-background-empty custom-background-white' );
+		} );
+	} );
+} )( jQuery );
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-content/themes/twentytwelve/languages/twentytwelve.pot	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,350 @@
+# Copyright (C) 2012 the WordPress team
+# This file is distributed under the GNU General Public License v2 or later.
+msgid ""
+msgstr ""
+"Project-Id-Version: Twenty Twelve 1.1\n"
+"Report-Msgid-Bugs-To: http://wordpress.org/tags/twentytwelve\n"
+"POT-Creation-Date: 2012-12-07 21:19:18+00:00\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"PO-Revision-Date: 2012-MO-DA HO:MI+ZONE\n"
+"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
+"Language-Team: LANGUAGE <LL@li.org>\n"
+
+#: 404.php:17
+msgid "This is somewhat embarrassing, isn&rsquo;t it?"
+msgstr ""
+
+#: 404.php:21
+msgid ""
+"It seems we can&rsquo;t find what you&rsquo;re looking for. Perhaps "
+"searching can help."
+msgstr ""
+
+#: archive.php:29
+msgid "Daily Archives: %s"
+msgstr ""
+
+#: archive.php:31
+msgid "Monthly Archives: %s"
+msgstr ""
+
+#: archive.php:31
+msgctxt "monthly archives date format"
+msgid "F Y"
+msgstr ""
+
+#: archive.php:33
+msgid "Yearly Archives: %s"
+msgstr ""
+
+#: archive.php:33
+msgctxt "yearly archives date format"
+msgid "Y"
+msgstr ""
+
+#: archive.php:35
+msgid "Archives"
+msgstr ""
+
+#: author.php:32
+msgid "Author Archives: %s"
+msgstr ""
+
+#: author.php:53 content.php:53
+msgid "About %s"
+msgstr ""
+
+#: category.php:21
+msgid "Category Archives: %s"
+msgstr ""
+
+#: comments.php:31
+msgid "One thought on &ldquo;%2$s&rdquo;"
+msgid_plural "%1$s thoughts on &ldquo;%2$s&rdquo;"
+msgstr[0] ""
+msgstr[1] ""
+
+#: comments.php:42
+msgid "Comment navigation"
+msgstr ""
+
+#: comments.php:43
+msgid "&larr; Older Comments"
+msgstr ""
+
+#: comments.php:44
+msgid "Newer Comments &rarr;"
+msgstr ""
+
+#: comments.php:53
+msgid "Comments are closed."
+msgstr ""
+
+#: content-aside.php:13 content-aside.php:20 content-image.php:17
+#: content-link.php:18 content-quote.php:17 content-status.php:15
+#: content.php:23
+msgid "Permalink to %s"
+msgstr ""
+
+#: content-aside.php:15 content-image.php:13 content-link.php:14
+#: content-quote.php:13 content-status.php:21 content.php:39
+msgid "Continue reading <span class=\"meta-nav\">&rarr;</span>"
+msgstr ""
+
+#: content-aside.php:23 content-image.php:23 content-link.php:21
+#: content-quote.php:20 content-status.php:27 content.php:28
+msgid "Leave a reply"
+msgstr ""
+
+#: content-aside.php:23 content-image.php:23 content-link.php:21
+#: content-quote.php:20 content-status.php:27 content.php:28
+msgid "1 Reply"
+msgstr ""
+
+#: content-aside.php:23 content-image.php:23 content-link.php:21
+#: content-quote.php:20 content-status.php:27 content.php:28
+msgid "% Replies"
+msgstr ""
+
+#: content-aside.php:26 content-image.php:26 content-link.php:24
+#: content-page.php:21 content-quote.php:23 content-status.php:30
+#: content.php:46 functions.php:309 image.php:37
+msgid "Edit"
+msgstr ""
+
+#: content-link.php:12
+msgid "Link"
+msgstr ""
+
+#: content-none.php:13 index.php:49 search.php:34
+msgid "Nothing Found"
+msgstr ""
+
+#: content-none.php:17 index.php:53
+msgid ""
+"Apologies, but no results were found. Perhaps searching will help find a "
+"related post."
+msgstr ""
+
+#: content-page.php:18 content.php:40 image.php:92
+msgid "Pages:"
+msgstr ""
+
+#: content.php:14
+msgid "Featured post"
+msgstr ""
+
+#: content.php:57
+msgid "View all posts by %s <span class=\"meta-nav\">&rarr;</span>"
+msgstr ""
+
+#. #-#-#-#-#  twentytwelve.pot (Twenty Twelve 1.1)  #-#-#-#-#
+#. Author URI of the plugin/theme
+#: footer.php:17
+msgid "http://wordpress.org/"
+msgstr ""
+
+#: footer.php:17
+msgid "Semantic Personal Publishing Platform"
+msgstr ""
+
+#: footer.php:17
+msgid "Proudly powered by %s"
+msgstr ""
+
+#: functions.php:64
+msgid "Primary Menu"
+msgstr ""
+
+#. translators: If there are characters in your language that are not supported
+#. 	   by Open Sans, translate this to 'off'. Do not translate into your own
+#. language.
+#: functions.php:120
+msgctxt "Open Sans font: on or off"
+msgid "on"
+msgstr ""
+
+#. translators: To add an additional Open Sans character subset specific to
+#. your language, translate
+#. 		   this to 'greek', 'cyrillic' or 'vietnamese'. Do not translate into your
+#. own language.
+#: functions.php:125
+msgctxt "Open Sans font: add new subset (greek, cyrillic, vietnamese)"
+msgid "no-subset"
+msgstr ""
+
+#: functions.php:181
+msgid "Page %s"
+msgstr ""
+
+#: functions.php:206
+msgid "Main Sidebar"
+msgstr ""
+
+#: functions.php:208
+msgid ""
+"Appears on posts and pages except the optional Front Page template, which "
+"has its own widgets"
+msgstr ""
+
+#: functions.php:216
+msgid "First Front Page Widget Area"
+msgstr ""
+
+#: functions.php:218 functions.php:228
+msgid ""
+"Appears when using the optional Front Page template with a page set as "
+"Static Front Page"
+msgstr ""
+
+#: functions.php:226
+msgid "Second Front Page Widget Area"
+msgstr ""
+
+#: functions.php:250 single.php:20
+msgid "Post navigation"
+msgstr ""
+
+#: functions.php:251
+msgid "<span class=\"meta-nav\">&larr;</span> Older posts"
+msgstr ""
+
+#: functions.php:252
+msgid "Newer posts <span class=\"meta-nav\">&rarr;</span>"
+msgstr ""
+
+#: functions.php:277
+msgid "Pingback:"
+msgstr ""
+
+#: functions.php:277
+msgid "(Edit)"
+msgstr ""
+
+#: functions.php:292
+msgid "Post author"
+msgstr ""
+
+#. translators: 1: date, 2: time
+#: functions.php:298
+msgid "%1$s at %2$s"
+msgstr ""
+
+#: functions.php:304
+msgid "Your comment is awaiting moderation."
+msgstr ""
+
+#: functions.php:313
+msgid "Reply"
+msgstr ""
+
+#: functions.php:332 functions.php:335
+msgid ", "
+msgstr ""
+
+#: functions.php:346
+msgid "View all posts by %s"
+msgstr ""
+
+#: functions.php:352
+msgid ""
+"This entry was posted in %1$s and tagged %2$s on %3$s<span class=\"by-author"
+"\"> by %4$s</span>."
+msgstr ""
+
+#: functions.php:354
+msgid ""
+"This entry was posted in %1$s on %3$s<span class=\"by-author\"> by %4$s</"
+"span>."
+msgstr ""
+
+#: functions.php:356
+msgid "This entry was posted on %3$s<span class=\"by-author\"> by %4$s</span>."
+msgstr ""
+
+#: header.php:43
+msgid "Menu"
+msgstr ""
+
+#: header.php:44
+msgid "Skip to content"
+msgstr ""
+
+#: image.php:26
+msgid ""
+"<span class=\"meta-prep meta-prep-entry-date\">Published </span> <span class="
+"\"entry-date\"><time class=\"entry-date\" datetime=\"%1$s\">%2$s</time></"
+"span> at <a href=\"%3$s\" title=\"Link to full-size image\">%4$s &times; %5"
+"$s</a> in <a href=\"%6$s\" title=\"Return to %7$s\" rel=\"gallery\">%8$s</a>."
+msgstr ""
+
+#: image.php:41
+msgid "&larr; Previous"
+msgstr ""
+
+#: image.php:42
+msgid "Next &rarr;"
+msgstr ""
+
+#: index.php:38
+msgid "No posts to display"
+msgstr ""
+
+#: index.php:42
+msgid "Ready to publish your first post? <a href=\"%s\">Get started here</a>."
+msgstr ""
+
+#: search.php:18
+msgid "Search Results for: %s"
+msgstr ""
+
+#: search.php:38
+msgid ""
+"Sorry, but nothing matched your search criteria. Please try again with some "
+"different keywords."
+msgstr ""
+
+#: single.php:21
+msgctxt "Previous post link"
+msgid "&larr;"
+msgstr ""
+
+#: single.php:22
+msgctxt "Next post link"
+msgid "&rarr;"
+msgstr ""
+
+#: tag.php:21
+msgid "Tag Archives: %s"
+msgstr ""
+
+#. Theme Name of the plugin/theme
+msgid "Twenty Twelve"
+msgstr ""
+
+#. Theme URI of the plugin/theme
+msgid "http://wordpress.org/extend/themes/twentytwelve"
+msgstr ""
+
+#. Description of the plugin/theme
+msgid ""
+"The 2012 theme for WordPress is a fully responsive theme that looks great on "
+"any device. Features include a front page template with its own widgets, an "
+"optional display font, styling for post formats on both index and single "
+"views, and an optional no-sidebar page template. Make it yours with a custom "
+"menu, header image, and background."
+msgstr ""
+
+#. Author of the plugin/theme
+msgid "the WordPress team"
+msgstr ""
+
+#. Template Name of the plugin/theme
+msgid "Front Page Template"
+msgstr ""
+
+#. Template Name of the plugin/theme
+msgid "Full-width Page Template, No Sidebar"
+msgstr ""
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-content/themes/twentytwelve/page-templates/front-page.php	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,35 @@
+<?php
+/**
+ * Template Name: Front Page Template
+ *
+ * Description: A page template that provides a key component of WordPress as a CMS
+ * by meeting the need for a carefully crafted introductory page. The front page template
+ * in Twenty Twelve consists of a page content area for adding text, images, video --
+ * anything you'd like -- followed by front-page-only widgets in one or two columns.
+ *
+ * @package WordPress
+ * @subpackage Twenty_Twelve
+ * @since Twenty Twelve 1.0
+ */
+
+get_header(); ?>
+
+	<div id="primary" class="site-content">
+		<div id="content" role="main">
+
+			<?php while ( have_posts() ) : the_post(); ?>
+				<?php if ( has_post_thumbnail() ) : ?>
+					<div class="entry-page-image">
+						<?php the_post_thumbnail(); ?>
+					</div><!-- .entry-page-image -->
+				<?php endif; ?>
+
+				<?php get_template_part( 'content', 'page' ); ?>
+
+			<?php endwhile; // end of the loop. ?>
+
+		</div><!-- #content -->
+	</div><!-- #primary -->
+
+<?php get_sidebar( 'front' ); ?>
+<?php get_footer(); ?>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-content/themes/twentytwelve/page-templates/full-width.php	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,30 @@
+<?php
+/**
+ * Template Name: Full-width Page Template, No Sidebar
+ *
+ * Description: Twenty Twelve loves the no-sidebar look as much as
+ * you do. Use this page template to remove the sidebar from any page.
+ *
+ * Tip: to remove the sidebar from all posts and pages simply remove
+ * any active widgets from the Main Sidebar area, and the sidebar will
+ * disappear everywhere.
+ *
+ * @package WordPress
+ * @subpackage Twenty_Twelve
+ * @since Twenty Twelve 1.0
+ */
+
+get_header(); ?>
+
+	<div id="primary" class="site-content">
+		<div id="content" role="main">
+
+			<?php while ( have_posts() ) : the_post(); ?>
+				<?php get_template_part( 'content', 'page' ); ?>
+				<?php comments_template( '', true ); ?>
+			<?php endwhile; // end of the loop. ?>
+
+		</div><!-- #content -->
+	</div><!-- #primary -->
+
+<?php get_footer(); ?>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-content/themes/twentytwelve/page.php	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,29 @@
+<?php
+/**
+ * The template for displaying all pages.
+ *
+ * This is the template that displays all pages by default.
+ * Please note that this is the WordPress construct of pages
+ * and that other 'pages' on your WordPress site will use a
+ * different template.
+ *
+ * @package WordPress
+ * @subpackage Twenty_Twelve
+ * @since Twenty Twelve 1.0
+ */
+
+get_header(); ?>
+
+	<div id="primary" class="site-content">
+		<div id="content" role="main">
+
+			<?php while ( have_posts() ) : the_post(); ?>
+				<?php get_template_part( 'content', 'page' ); ?>
+				<?php comments_template( '', true ); ?>
+			<?php endwhile; // end of the loop. ?>
+
+		</div><!-- #content -->
+	</div><!-- #primary -->
+
+<?php get_sidebar(); ?>
+<?php get_footer(); ?>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-content/themes/twentytwelve/rtl.css	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,237 @@
+/*
+Theme Name: Twenty Twelve
+Description: Adds support for languages written in a Right To Left (RTL) direction.
+It's easy, just a matter of overwriting all the horizontal positioning attributes
+of your CSS stylesheet in a separate stylesheet file named rtl.css.
+
+See http://codex.wordpress.org/Right_to_Left_Language_Support
+*/
+
+
+body {
+	direction: rtl;
+	unicode-bidi: embed;
+}
+caption,
+th,
+td {
+	text-align: right;
+}
+
+/* =Repeatable patterns
+-------------------------------------------------------------- */
+
+/* Images */
+.site-content .gallery-columns-4 .gallery-item {
+	padding-left: 2%;
+	padding-right: 0;
+}
+.site-content .gallery-columns-5 .gallery-item {
+	padding-left: 2%;
+	padding-right: 0;
+}
+
+/* Navigation */
+.nav-previous,
+.previous-image {
+	float: right;
+}
+.nav-next,
+.next-image {
+	float: left;
+	text-align: left;
+}
+
+/* Author profiles */
+.author-avatar {
+	float: right;
+}
+.author-description {
+	float: right;
+	margin-right: 15px;
+	margin-right: 1.071428571rem;
+	margin-left: auto;
+}
+
+
+/* =Main Content
+----------------------------------------------- */
+
+.comment-content ol,
+.comment-content ul {
+	margin: 0 24px 0 0;
+	margin: 0 1.714285714rem 0 0;
+}
+
+
+/* =Basic post styling
+-------------------------------------------------------------- */
+
+.entry-content li,
+.comment-content li {
+	margin: 0 24px 0 0;
+	margin: 0 1.714285714rem 0 0;
+}
+.entry-content td,
+.comment-content td {
+	padding: 6px 0 6px 10px;
+}
+
+
+/* Aside posts */
+article.format-aside .aside {
+	border-right: 22px solid #a8bfe8;
+	border-left: none;
+}
+
+/* Link posts */
+article.format-link header {
+	float: left;
+}
+article.format-link .entry-content {
+	float: right;
+}
+
+/* Status posts */
+.format-status .entry-header img {
+	float: right;
+	margin-left: 21px;
+	margin-left: 1.5rem;
+	margin-right: 0;
+}
+
+
+/* =Comment styling
+-------------------------------------------------------------- */
+
+.comments-area article header img {
+	float: right;
+}
+.comments-area article header cite,
+.comments-area article header time {
+	margin-right: 85px;
+	margin-right: 6.071428571rem;
+	margin-left: auto;
+}
+.comments-area article header h4 {
+	left: 0;
+	right: auto;
+}
+.comments-area li.bypostauthor cite span {
+	margin-right: 5px;
+	margin-right: 0.357142857rem;
+	margin-left: auto;
+}
+
+/* Comment form */
+#respond h3#reply-title #cancel-comment-reply-link {
+	margin-right: 10px;
+	margin-right: 0.714285714rem;
+	margin-left: auto;
+}
+label ~ span.required {
+	float: right;
+	margin: -18px -16px 0 0;
+	margin: -1.285714286rem -1.142857143rem 0 0;
+}
+
+
+/* =Front page template styling
+-------------------------------------------------------------- */
+
+.template-front-page .widget-area .widget_text img {
+	float: right;
+	margin: 8px 0 8px 24px;
+	margin: 0.571428571rem 0 0.571428571rem 1.714285714rem;
+}
+
+
+/* =Widget styling
+-------------------------------------------------------------- */
+
+.widget-area .widget ul ul {
+	margin-right: 12px;
+	margin-right: 0.857142857rem;
+	margin-left: auto;
+}
+.widget-area .textwidget li {
+	margin-left: auto;
+	margin-right: 36px;
+	margin-right: 2.571428571rem;
+}
+.widget_recent_entries .post-date,
+.widget_rss .rss-date {
+	margin-right: 12px;
+	margin-right: 0.857142857rem;
+	margin-left: auto;
+}
+#wp-calendar th,
+#wp-calendar td,
+#wp-calendar caption {
+	text-align: right;
+}
+#wp-calendar #next {
+	padding-left: 24px;
+	padding-left: 1.714285714rem;
+	text-align: left;
+	padding-right: 0;
+}
+
+/* =Media queries
+-------------------------------------------------------------- */
+
+/* Minimum width of 600 pixels. */
+@media screen and (min-width: 600px) {
+	.site-content,
+	.template-front-page.has-post-thumbnail article {
+		float: right;
+	}
+	.widget-area,
+	.entry-page-image {
+		float: left;
+	}
+	.site-header h1,
+	.site-header h2 {
+		text-align: right;
+	}
+	.template-front-page .widget-area .widget_text img {
+		float: right;
+		margin: 8px 0 8px 24px;
+	}
+	.template-front-page .widget-area .widget,
+	.template-front-page.two-sidebars .widget-area .front-widgets {
+		float: right;
+	}
+	.template-front-page .widget-area .widget:nth-child(odd) {
+		clear: left;
+	}
+	.template-front-page .widget-area .widget:nth-child(even),
+	.template-front-page.two-sidebars .widget-area .front-widgets + .front-widgets {
+		float: left;
+		margin: 0 24px 0;
+		margin: 0 1.714285714rem 0;
+	}
+	.main-navigation ul.nav-menu,
+ 	.main-navigation div.nav-menu > ul {
+		text-align: right;
+	}
+	.main-navigation li {
+		margin-left: 40px;
+		margin-left: 2.857142857rem;
+		margin-right: auto;
+	}
+	.main-navigation li ul ul {
+		margin-right: 0;
+		right: 100%;
+		left: auto;
+	}
+	.main-navigation ul li:hover > ul {
+		border-right: 0;
+		border-left: none;
+	}
+	.commentlist .children {
+		margin-right: 48px;
+		margin-right: 3.428571429rem;
+		margin-left: auto;
+	}
+}
\ No newline at end of file
Binary file web/wp-content/themes/twentytwelve/screenshot.png has changed
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-content/themes/twentytwelve/search.php	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,49 @@
+<?php
+/**
+ * The template for displaying Search Results pages.
+ *
+ * @package WordPress
+ * @subpackage Twenty_Twelve
+ * @since Twenty Twelve 1.0
+ */
+
+get_header(); ?>
+
+	<section id="primary" class="site-content">
+		<div id="content" role="main">
+
+		<?php if ( have_posts() ) : ?>
+
+			<header class="page-header">
+				<h1 class="page-title"><?php printf( __( 'Search Results for: %s', 'twentytwelve' ), '<span>' . get_search_query() . '</span>' ); ?></h1>
+			</header>
+
+			<?php twentytwelve_content_nav( 'nav-above' ); ?>
+
+			<?php /* Start the Loop */ ?>
+			<?php while ( have_posts() ) : the_post(); ?>
+				<?php get_template_part( 'content', get_post_format() ); ?>
+			<?php endwhile; ?>
+
+			<?php twentytwelve_content_nav( 'nav-below' ); ?>
+
+		<?php else : ?>
+
+			<article id="post-0" class="post no-results not-found">
+				<header class="entry-header">
+					<h1 class="entry-title"><?php _e( 'Nothing Found', 'twentytwelve' ); ?></h1>
+				</header>
+
+				<div class="entry-content">
+					<p><?php _e( 'Sorry, but nothing matched your search criteria. Please try again with some different keywords.', 'twentytwelve' ); ?></p>
+					<?php get_search_form(); ?>
+				</div><!-- .entry-content -->
+			</article><!-- #post-0 -->
+
+		<?php endif; ?>
+
+		</div><!-- #content -->
+	</section><!-- #primary -->
+
+<?php get_sidebar(); ?>
+<?php get_footer(); ?>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-content/themes/twentytwelve/sidebar-front.php	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,35 @@
+<?php
+/**
+ * The sidebar containing the front page widget areas.
+ *
+ * If no active widgets in either sidebar, they will be hidden completely.
+ *
+ * @package WordPress
+ * @subpackage Twenty_Twelve
+ * @since Twenty Twelve 1.0
+ */
+
+/*
+ * The front page widget area is triggered if any of the areas
+ * have widgets. So let's check that first.
+ *
+ * If none of the sidebars have widgets, then let's bail early.
+ */
+if ( ! is_active_sidebar( 'sidebar-2' ) && ! is_active_sidebar( 'sidebar-3' ) )
+	return;
+
+// If we get this far, we have widgets. Let do this.
+?>
+<div id="secondary" class="widget-area" role="complementary">
+	<?php if ( is_active_sidebar( 'sidebar-2' ) ) : ?>
+	<div class="first front-widgets">
+		<?php dynamic_sidebar( 'sidebar-2' ); ?>
+	</div><!-- .first -->
+	<?php endif; ?>
+
+	<?php if ( is_active_sidebar( 'sidebar-3' ) ) : ?>
+	<div class="second front-widgets">
+		<?php dynamic_sidebar( 'sidebar-3' ); ?>
+	</div><!-- .second -->
+	<?php endif; ?>
+</div><!-- #secondary -->
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-content/themes/twentytwelve/sidebar.php	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,17 @@
+<?php
+/**
+ * The sidebar containing the main widget area.
+ *
+ * If no active widgets in sidebar, let's hide it completely.
+ *
+ * @package WordPress
+ * @subpackage Twenty_Twelve
+ * @since Twenty Twelve 1.0
+ */
+?>
+
+	<?php if ( is_active_sidebar( 'sidebar-1' ) ) : ?>
+		<div id="secondary" class="widget-area" role="complementary">
+			<?php dynamic_sidebar( 'sidebar-1' ); ?>
+		</div><!-- #secondary -->
+	<?php endif; ?>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-content/themes/twentytwelve/single.php	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,33 @@
+<?php
+/**
+ * The Template for displaying all single posts.
+ *
+ * @package WordPress
+ * @subpackage Twenty_Twelve
+ * @since Twenty Twelve 1.0
+ */
+
+get_header(); ?>
+
+	<div id="primary" class="site-content">
+		<div id="content" role="main">
+
+			<?php while ( have_posts() ) : the_post(); ?>
+
+				<?php get_template_part( 'content', get_post_format() ); ?>
+
+				<nav class="nav-single">
+					<h3 class="assistive-text"><?php _e( 'Post navigation', 'twentytwelve' ); ?></h3>
+					<span class="nav-previous"><?php previous_post_link( '%link', '<span class="meta-nav">' . _x( '&larr;', 'Previous post link', 'twentytwelve' ) . '</span> %title' ); ?></span>
+					<span class="nav-next"><?php next_post_link( '%link', '%title <span class="meta-nav">' . _x( '&rarr;', 'Next post link', 'twentytwelve' ) . '</span>' ); ?></span>
+				</nav><!-- .nav-single -->
+
+				<?php comments_template( '', true ); ?>
+
+			<?php endwhile; // end of the loop. ?>
+
+		</div><!-- #content -->
+	</div><!-- #primary -->
+
+<?php get_sidebar(); ?>
+<?php get_footer(); ?>
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-content/themes/twentytwelve/style.css	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,1727 @@
+/*
+Theme Name: Twenty Twelve
+Theme URI: http://wordpress.org/extend/themes/twentytwelve
+Author: the WordPress team
+Author URI: http://wordpress.org/
+Description: The 2012 theme for WordPress is a fully responsive theme that looks great on any device. Features include a front page template with its own widgets, an optional display font, styling for post formats on both index and single views, and an optional no-sidebar page template. Make it yours with a custom menu, header image, and background.
+Version: 1.1
+License: GNU General Public License v2 or later
+License URI: http://www.gnu.org/licenses/gpl-2.0.html
+Tags: light, gray, white, one-column, two-columns, right-sidebar, flexible-width, custom-background, custom-header, custom-menu, editor-style, featured-images, flexible-header, full-width-template, microformats, post-formats, rtl-language-support, sticky-post, theme-options, translation-ready
+Text Domain: twentytwelve
+
+This theme, like WordPress, is licensed under the GPL.
+Use it to make something cool, have fun, and share what you've learned with others.
+*/
+
+/* =Notes
+--------------------------------------------------------------
+This stylesheet uses rem values with a pixel fallback. The rem
+values (and line heights) are calculated using two variables:
+
+$rembase:     14;
+$line-height: 24;
+
+---------- Examples
+
+* Use a pixel value with a rem fallback for font-size, padding, margins, etc.
+	padding: 5px 0;
+	padding: 0.357142857rem 0; (5 / $rembase)
+
+* Set a font-size and then set a line-height based on the font-size
+	font-size: 16px
+	font-size: 1.142857143rem; (16 / $rembase)
+	line-height: 1.5; ($line-height / 16)
+
+---------- Vertical spacing
+
+Vertical spacing between most elements should use 24px or 48px
+to maintain vertical rhythm:
+
+.my-new-div {
+	margin: 24px 0;
+	margin: 1.714285714rem 0; ( 24 / $rembase )
+}
+
+---------- Further reading
+
+http://snook.ca/archives/html_and_css/font-size-with-rem
+http://blog.typekit.com/2011/11/09/type-study-sizing-the-legible-letter/
+
+
+/* =Reset
+-------------------------------------------------------------- */
+
+html, body, div, span, applet, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, a, abbr, acronym, address, big, cite, code, del, dfn, em, img, ins, kbd, q, s, samp, small, strike, strong, sub, sup, tt, var, b, u, i, center, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, embed, figure, figcaption, footer, header, hgroup, menu, nav, output, ruby, section, summary, time, mark, audio, video {
+	margin: 0;
+	padding: 0;
+	border: 0;
+	font-size: 100%;
+	vertical-align: baseline;
+}
+body {
+	line-height: 1;
+}
+ol,
+ul {
+	list-style: none;
+}
+blockquote,
+q {
+	quotes: none;
+}
+blockquote:before,
+blockquote:after,
+q:before,
+q:after {
+	content: '';
+	content: none;
+}
+table {
+	border-collapse: collapse;
+	border-spacing: 0;
+}
+caption,
+th,
+td {
+	font-weight: normal;
+	text-align: left;
+}
+h1,
+h2,
+h3,
+h4,
+h5,
+h6 {
+	clear: both;
+}
+html {
+	overflow-y: scroll;
+	font-size: 100%;
+	-webkit-text-size-adjust: 100%;
+	-ms-text-size-adjust: 100%;
+}
+a:focus {
+	outline: thin dotted;
+}
+article,
+aside,
+details,
+figcaption,
+figure,
+footer,
+header,
+hgroup,
+nav,
+section {
+	display: block;
+}
+audio,
+canvas,
+video {
+	display: inline-block;
+}
+audio:not([controls]) {
+	display: none;
+}
+del {
+	color: #333;
+}
+ins {
+	background: #fff9c0;
+	text-decoration: none;
+}
+hr {
+	background-color: #ccc;
+	border: 0;
+	height: 1px;
+	margin: 24px;
+	margin-bottom: 1.714285714rem;
+}
+sub,
+sup {
+	font-size: 75%;
+	line-height: 0;
+	position: relative;
+	vertical-align: baseline;
+}
+sup {
+	top: -0.5em;
+}
+sub {
+	bottom: -0.25em;
+}
+small {
+	font-size: smaller;
+}
+img {
+	border: 0;
+	-ms-interpolation-mode: bicubic;
+}
+
+/* Clearing floats */
+.clear:after,
+.wrapper:after,
+.format-status .entry-header:after {
+	clear: both;
+}
+.clear:before,
+.clear:after,
+.wrapper:before,
+.wrapper:after,
+.format-status .entry-header:before,
+.format-status .entry-header:after {
+	display: table;
+	content: "";
+}
+
+
+/* =Repeatable patterns
+-------------------------------------------------------------- */
+
+/* Small headers */
+.archive-title,
+.page-title,
+.widget-title,
+.entry-content th,
+.comment-content th {
+	font-size: 11px;
+	font-size: 0.785714286rem;
+	line-height: 2.181818182;
+	font-weight: bold;
+	text-transform: uppercase;
+	color: #636363;
+}
+
+/* Shared Post Format styling */
+article.format-quote footer.entry-meta,
+article.format-link footer.entry-meta,
+article.format-status footer.entry-meta {
+	font-size: 11px;
+	font-size: 0.785714286rem;
+	line-height: 2.181818182;
+}
+
+/* Form fields, general styles first */
+button,
+input,
+textarea {
+	border: 1px solid #ccc;
+	border-radius: 3px;
+	font-family: inherit;
+	padding: 6px;
+	padding: 0.428571429rem;
+}
+button,
+input {
+    line-height: normal;
+}
+textarea {
+	font-size: 100%;
+	overflow: auto;
+	vertical-align: top;
+}
+
+/* Reset non-text input types */
+input[type="checkbox"],
+input[type="radio"],
+input[type="file"],
+input[type="hidden"],
+input[type="image"],
+input[type="color"] {
+	border: 0;
+	border-radius: 0;
+	padding: 0;
+}
+
+/* Buttons */
+.menu-toggle,
+input[type="submit"],
+input[type="button"],
+input[type="reset"],
+article.post-password-required input[type=submit],
+li.bypostauthor cite span {
+	padding: 6px 10px;
+	padding: 0.428571429rem 0.714285714rem;
+	font-size: 11px;
+	font-size: 0.785714286rem;
+	line-height: 1.428571429;
+	font-weight: normal;
+	color: #7c7c7c;
+	background-color: #e6e6e6;
+	background-repeat: repeat-x;
+	background-image: -moz-linear-gradient(top, #f4f4f4, #e6e6e6);
+	background-image: -ms-linear-gradient(top, #f4f4f4, #e6e6e6);
+	background-image: -webkit-linear-gradient(top, #f4f4f4, #e6e6e6);
+	background-image: -o-linear-gradient(top, #f4f4f4, #e6e6e6);
+	background-image: linear-gradient(top, #f4f4f4, #e6e6e6);
+	border: 1px solid #d2d2d2;
+	border-radius: 3px;
+	box-shadow: 0 1px 2px rgba(64, 64, 64, 0.1);
+}
+.menu-toggle,
+button,
+input[type="submit"],
+input[type="button"],
+input[type="reset"] {
+	cursor: pointer;
+}
+button[disabled],
+input[disabled] {
+    cursor: default;
+}
+.menu-toggle:hover,
+button:hover,
+input[type="submit"]:hover,
+input[type="button"]:hover,
+input[type="reset"]:hover,
+article.post-password-required input[type=submit]:hover {
+	color: #5e5e5e;
+	background-color: #ebebeb;
+	background-repeat: repeat-x;
+	background-image: -moz-linear-gradient(top, #f9f9f9, #ebebeb);
+	background-image: -ms-linear-gradient(top, #f9f9f9, #ebebeb);
+	background-image: -webkit-linear-gradient(top, #f9f9f9, #ebebeb);
+	background-image: -o-linear-gradient(top, #f9f9f9, #ebebeb);
+	background-image: linear-gradient(top, #f9f9f9, #ebebeb);
+}
+.menu-toggle:active,
+.menu-toggle.toggled-on,
+button:active,
+input[type="submit"]:active,
+input[type="button"]:active,
+input[type="reset"]:active {
+	color: #757575;
+	background-color: #e1e1e1;
+	background-repeat: repeat-x;
+	background-image: -moz-linear-gradient(top, #ebebeb, #e1e1e1);
+	background-image: -ms-linear-gradient(top, #ebebeb, #e1e1e1);
+	background-image: -webkit-linear-gradient(top, #ebebeb, #e1e1e1);
+	background-image: -o-linear-gradient(top, #ebebeb, #e1e1e1);
+	background-image: linear-gradient(top, #ebebeb, #e1e1e1);
+	box-shadow: inset 0 0 8px 2px #c6c6c6, 0 1px 0 0 #f4f4f4;
+	border: none;
+}
+li.bypostauthor cite span {
+	color: #fff;
+	background-color: #21759b;
+	background-image: none;
+	border: 1px solid #1f6f93;
+	border-radius: 2px;
+	box-shadow: none;
+	padding: 0;
+}
+
+/* Responsive images */
+.entry-content img,
+.comment-content img,
+.widget img {
+	max-width: 100%; /* Fluid images for posts, comments, and widgets */
+}
+img[class*="align"],
+img[class*="wp-image-"],
+img[class*="attachment-"] {
+	height: auto; /* Make sure images with WordPress-added height and width attributes are scaled correctly */
+}
+img.size-full,
+img.size-large,
+img.header-image,
+img.wp-post-image {
+	max-width: 100%;
+	height: auto; /* Make sure images with WordPress-added height and width attributes are scaled correctly */
+}
+
+/* Make sure videos and embeds fit their containers */
+embed,
+iframe,
+object,
+video {
+	max-width: 100%;
+}
+.entry-content .twitter-tweet-rendered {
+	max-width: 100% !important; /* Override the Twitter embed fixed width */
+}
+
+/* Images */
+.alignleft {
+	float: left;
+}
+.alignright {
+	float: right;
+}
+.aligncenter {
+	display: block;
+	margin-left: auto;
+	margin-right: auto;
+}
+.entry-content img,
+.comment-content img,
+.widget img,
+img.header-image,
+.author-avatar img,
+img.wp-post-image {
+	/* Add fancy borders to all WordPress-added images but not things like badges and icons and the like */
+	border-radius: 3px;
+	box-shadow: 0 1px 4px rgba(0, 0, 0, 0.2);
+}
+.wp-caption {
+	max-width: 100%; /* Keep wide captions from overflowing their container. */
+	padding: 4px;
+}
+.wp-caption .wp-caption-text,
+.gallery-caption,
+.entry-caption {
+	font-style: italic;
+	font-size: 12px;
+	font-size: 0.857142857rem;
+	line-height: 2;
+	color: #757575;
+}
+img.wp-smiley,
+.rsswidget img {
+	border: 0;
+	border-radius: 0;
+	box-shadow: none;
+	margin-bottom: 0;
+	margin-top: 0;
+	padding: 0;
+}
+.entry-content dl.gallery-item {
+	margin: 0;
+}
+.gallery-item a,
+.gallery-caption {
+	width: 90%;
+}
+.gallery-item a {
+	display: block;
+}
+.gallery-caption a {
+	display: inline;
+}
+.gallery-columns-1 .gallery-item a {
+	max-width: 100%;
+	width: auto;
+}
+.gallery .gallery-icon img {
+	height: auto;
+	max-width: 90%;
+	padding: 5%;
+}
+.gallery-columns-1 .gallery-icon img {
+	padding: 3%;
+}
+
+/* Navigation */
+.site-content nav {
+	clear: both;
+	line-height: 2;
+	overflow: hidden;
+}
+#nav-above {
+	padding: 24px 0;
+	padding: 1.714285714rem 0;
+}
+#nav-above {
+	display: none;
+}
+.paged #nav-above {
+	display: block;
+}
+.nav-previous,
+.previous-image {
+	float: left;
+	width: 50%;
+}
+.nav-next,
+.next-image {
+	float: right;
+	text-align: right;
+	width: 50%;
+}
+.nav-single + .comments-area,
+#comment-nav-above {
+	margin: 48px 0;
+	margin: 3.428571429rem 0;
+}
+
+/* Author profiles */
+.author .archive-header {
+	margin-bottom: 24px;
+	margin-bottom: 1.714285714rem;
+}
+.author-info {
+	border-top: 1px solid #ededed;
+	margin: 24px 0;
+	margin: 1.714285714rem 0;
+	padding-top: 24px;
+	padding-top: 1.714285714rem;
+	overflow: hidden;
+}
+.author-description p {
+	color: #757575;
+	font-size: 13px;
+	font-size: 0.928571429rem;
+	line-height: 1.846153846;
+}
+.author.archive .author-info {
+	border-top: 0;
+	margin: 0 0 48px;
+	margin: 0 0 3.428571429rem;
+}
+.author.archive .author-avatar {
+	margin-top: 0;
+}
+
+
+/* =Basic structure
+-------------------------------------------------------------- */
+
+/* Body, links, basics */
+html {
+	font-size: 87.5%;
+}
+body {
+	font-size: 14px;
+	font-size: 1rem;
+	font-family: Helvetica, Arial, sans-serif;
+	text-rendering: optimizeLegibility;
+	color: #444;
+}
+body.custom-font-enabled {
+	font-family: "Open Sans", Helvetica, Arial, sans-serif;
+}
+a {
+	outline: none;
+	color: #21759b;
+}
+a:hover {
+	color: #0f3647;
+}
+
+/* Assistive text */
+.assistive-text,
+.site .screen-reader-text {
+	position: absolute !important;
+	clip: rect(1px, 1px, 1px, 1px);
+}
+.main-navigation .assistive-text:hover,
+.main-navigation .assistive-text:active,
+.main-navigation .assistive-text:focus {
+	background: #fff;
+	border: 2px solid #333;
+	border-radius: 3px;
+	clip: auto !important;
+	color: #000;
+	display: block;
+	font-size: 12px;
+	padding: 12px;
+	position: absolute;
+	top: 5px;
+	left: 5px;
+	z-index: 100000; /* Above WP toolbar */
+}
+
+/* Page structure */
+.site {
+	padding: 0 24px;
+	padding: 0 1.714285714rem;
+	background-color: #fff;
+}
+.site-content {
+	margin: 24px 0 0;
+	margin: 1.714285714rem 0 0;
+}
+.widget-area {
+	margin: 24px 0 0;
+	margin: 1.714285714rem 0 0;
+}
+
+/* Header */
+.site-header {
+	padding: 24px 0;
+	padding: 1.714285714rem 0;
+}
+.site-header h1,
+.site-header h2 {
+	text-align: center;
+}
+.site-header h1 a,
+.site-header h2 a {
+	color: #515151;
+	display: inline-block;
+	text-decoration: none;
+}
+.site-header h1 a:hover,
+.site-header h2 a:hover {
+	color: #21759b;
+}
+.site-header h1 {
+	font-size: 24px;
+	font-size: 1.714285714rem;
+	line-height: 1.285714286;
+	margin-bottom: 14px;
+	margin-bottom: 1rem;
+}
+.site-header h2 {
+	font-weight: normal;
+	font-size: 13px;
+	font-size: 0.928571429rem;
+	line-height: 1.846153846;
+	color: #757575;
+}
+.header-image {
+	margin-top: 24px;
+	margin-top: 1.714285714rem;
+}
+
+/* Navigation Menu */
+.main-navigation {
+	margin-top: 24px;
+	margin-top: 1.714285714rem;
+	text-align: center;
+}
+.main-navigation li {
+	margin-top: 24px;
+	margin-top: 1.714285714rem;
+	font-size: 12px;
+	font-size: 0.857142857rem;
+	line-height: 1.42857143;
+}
+.main-navigation a {
+	color: #5e5e5e;
+}
+.main-navigation a:hover {
+	color: #21759b;
+}
+.main-navigation ul.nav-menu,
+.main-navigation div.nav-menu > ul {
+	display: none;
+}
+.main-navigation ul.nav-menu.toggled-on,
+.menu-toggle {
+	display: inline-block;
+}
+
+/* Banner */
+section[role="banner"] {
+	margin-bottom: 48px;
+	margin-bottom: 3.428571429rem;
+}
+
+/* Sidebar */
+.widget-area .widget {
+	-webkit-hyphens: auto;
+	-moz-hyphens: auto;
+	hyphens: auto;
+	margin-bottom: 48px;
+	margin-bottom: 3.428571429rem;
+	word-wrap: break-word;
+}
+.widget-area .widget h3 {
+	margin-bottom: 24px;
+	margin-bottom: 1.714285714rem;
+}
+.widget-area .widget p,
+.widget-area .widget li,
+.widget-area .widget .textwidget {
+	font-size: 13px;
+	font-size: 0.928571429rem;
+	line-height: 1.846153846;
+}
+.widget-area .widget p {
+	margin-bottom: 24px;
+	margin-bottom: 1.714285714rem;
+}
+.widget-area .textwidget ul {
+	list-style: disc outside;
+	margin: 0 0 24px;
+	margin: 0 0 1.714285714rem;
+}
+.widget-area .textwidget li {
+	margin-left: 36px;
+	margin-left: 2.571428571rem;
+}
+.widget-area .widget a {
+	color: #757575;
+}
+.widget-area .widget a:hover {
+	color: #21759b;
+}
+.widget-area #s {
+	width: 53.66666666666%; /* define a width to avoid dropping a wider submit button */
+}
+
+/* Footer */
+footer[role="contentinfo"] {
+	border-top: 1px solid #ededed;
+	clear: both;
+	font-size: 12px;
+	font-size: 0.857142857rem;
+	line-height: 2;
+	max-width: 960px;
+	max-width: 68.571428571rem;
+	margin-top: 24px;
+	margin-top: 1.714285714rem;
+	margin-left: auto;
+	margin-right: auto;
+	padding: 24px 0;
+	padding: 1.714285714rem 0;
+}
+footer[role="contentinfo"] a {
+	color: #686868;
+}
+footer[role="contentinfo"] a:hover {
+	color: #21759b;
+}
+
+
+/* =Main content and comment content
+-------------------------------------------------------------- */
+
+.entry-meta {
+	clear: both;
+}
+.entry-header {
+	margin-bottom: 24px;
+	margin-bottom: 1.714285714rem;
+}
+.entry-header img.wp-post-image {
+	margin-bottom: 24px;
+	margin-bottom: 1.714285714rem;
+}
+.entry-header .entry-title {
+	font-size: 20px;
+	font-size: 1.428571429rem;
+	line-height: 1.2;
+	font-weight: normal;
+}
+.entry-header .entry-title a {
+	text-decoration: none;
+}
+.entry-header .entry-format {
+	margin-top: 24px;
+	margin-top: 1.714285714rem;
+	font-weight: normal;
+}
+.entry-header .comments-link {
+	margin-top: 24px;
+	margin-top: 1.714285714rem;
+	font-size: 13px;
+	font-size: 0.928571429rem;
+	line-height: 1.846153846;
+	color: #757575;
+}
+.comments-link a,
+.entry-meta a {
+	color: #757575;
+}
+.comments-link a:hover,
+.entry-meta a:hover {
+	color: #21759b;
+}
+article.sticky .featured-post {
+	border-top: 4px double #ededed;
+	border-bottom: 4px double #ededed;
+	color: #757575;
+	font-size: 13px;
+	font-size: 0.928571429rem;
+	line-height: 3.692307692;
+	margin-bottom: 24px;
+	margin-bottom: 1.714285714rem;
+	text-align: center;
+}
+.entry-content,
+.entry-summary,
+.mu_register {
+	line-height: 1.714285714;
+}
+.entry-content h1,
+.comment-content h1,
+.entry-content h2,
+.comment-content h2,
+.entry-content h3,
+.comment-content h3,
+.entry-content h4,
+.comment-content h4,
+.entry-content h5,
+.comment-content h5,
+.entry-content h6,
+.comment-content h6 {
+	margin: 24px 0;
+	margin: 1.714285714rem 0;
+	line-height: 1.714285714;
+}
+.entry-content h1,
+.comment-content h1 {
+	font-size: 21px;
+	font-size: 1.5rem;
+	line-height: 1.5;
+}
+.entry-content h2,
+.comment-content h2,
+.mu_register h2 {
+	font-size: 18px;
+	font-size: 1.285714286rem;
+	line-height: 1.6;
+}
+.entry-content h3,
+.comment-content h3 {
+	font-size: 16px;
+	font-size: 1.142857143rem;
+	line-height: 1.846153846;
+}
+.entry-content h4,
+.comment-content h4 {
+	font-size: 14px;
+	font-size: 1rem;
+	line-height: 1.846153846;
+}
+.entry-content h5,
+.comment-content h5 {
+	font-size: 13px;
+	font-size: 0.928571429rem;
+	line-height: 1.846153846;
+}
+.entry-content h6,
+.comment-content h6 {
+	font-size: 12px;
+	font-size: 0.857142857rem;
+	line-height: 1.846153846;
+}
+.entry-content p,
+.entry-summary p,
+.comment-content p,
+.mu_register p {
+	margin: 0 0 24px;
+	margin: 0 0 1.714285714rem;
+	line-height: 1.714285714;
+}
+.entry-content ol,
+.comment-content ol,
+.entry-content ul,
+.comment-content ul,
+.mu_register ul {
+	margin: 0 0 24px;
+	margin: 0 0 1.714285714rem;
+	line-height: 1.714285714;
+}
+.entry-content ul ul,
+.comment-content ul ul,
+.entry-content ol ol,
+.comment-content ol ol,
+.entry-content ul ol,
+.comment-content ul ol,
+.entry-content ol ul,
+.comment-content ol ul {
+	margin-bottom: 0;
+}
+.entry-content ul,
+.comment-content ul,
+.mu_register ul {
+	list-style: disc outside;
+}
+.entry-content ol,
+.comment-content ol {
+	list-style: decimal outside;
+}
+.entry-content li,
+.comment-content li,
+.mu_register li {
+	margin: 0 0 0 36px;
+	margin: 0 0 0 2.571428571rem;
+}
+.entry-content blockquote,
+.comment-content blockquote {
+	margin-bottom: 24px;
+	margin-bottom: 1.714285714rem;
+	padding: 24px;
+	padding: 1.714285714rem;
+	font-style: italic;
+}
+.entry-content blockquote p:last-child,
+.comment-content blockquote p:last-child {
+	margin-bottom: 0;
+}
+.entry-content code,
+.comment-content code {
+	font-family: Consolas, Monaco, Lucida Console, monospace;
+	font-size: 12px;
+	font-size: 0.857142857rem;
+	line-height: 2;
+}
+.entry-content pre,
+.comment-content pre {
+	border: 1px solid #ededed;
+	color: #666;
+	font-family: Consolas, Monaco, Lucida Console, monospace;
+	font-size: 12px;
+	font-size: 0.857142857rem;
+	line-height: 1.714285714;
+	margin: 24px 0;
+	margin: 1.714285714rem 0;
+	overflow: auto;
+	padding: 24px;
+	padding: 1.714285714rem;
+}
+.entry-content pre code,
+.comment-content pre code {
+	display: block;
+}
+.entry-content abbr,
+.comment-content abbr,
+.entry-content dfn,
+.comment-content dfn,
+.entry-content acronym,
+.comment-content acronym {
+	border-bottom: 1px dotted #666;
+	cursor: help;
+}
+.entry-content address,
+.comment-content address {
+	display: block;
+	line-height: 1.714285714;
+	margin: 0 0 24px;
+	margin: 0 0 1.714285714rem;
+}
+img.alignleft {
+	margin: 12px 24px 12px 0;
+	margin: 0.857142857rem 1.714285714rem 0.857142857rem 0;
+}
+img.alignright {
+	margin: 12px 0 12px 24px;
+	margin: 0.857142857rem 0 0.857142857rem 1.714285714rem;
+}
+img.aligncenter {
+	margin-top: 12px;
+	margin-top: 0.857142857rem;
+	margin-bottom: 12px;
+	margin-bottom: 0.857142857rem;
+}
+.entry-content embed,
+.entry-content iframe,
+.entry-content object,
+.entry-content video {
+	margin-bottom: 24px;
+	margin-bottom: 1.714285714rem;
+}
+.entry-content dl,
+.comment-content dl {
+	margin: 0 24px;
+	margin: 0 1.714285714rem;
+}
+.entry-content dt,
+.comment-content dt {
+	font-weight: bold;
+	line-height: 1.714285714;
+}
+.entry-content dd,
+.comment-content dd {
+	line-height: 1.714285714;
+	margin-bottom: 24px;
+	margin-bottom: 1.714285714rem;
+}
+.entry-content table,
+.comment-content table {
+	border-bottom: 1px solid #ededed;
+	color: #757575;
+	font-size: 12px;
+	font-size: 0.857142857rem;
+	line-height: 2;
+	margin: 0 0 24px;
+	margin: 0 0 1.714285714rem;
+	width: 100%;
+}
+.entry-content table caption,
+.comment-content table caption {
+	font-size: 16px;
+	font-size: 1.142857143rem;
+	margin: 24px 0;
+	margin: 1.714285714rem 0;
+}
+.entry-content td,
+.comment-content td {
+	border-top: 1px solid #ededed;
+	padding: 6px 10px 6px 0;
+}
+.site-content article {
+	border-bottom: 4px double #ededed;
+	margin-bottom: 72px;
+	margin-bottom: 5.142857143rem;
+	padding-bottom: 24px;
+	padding-bottom: 1.714285714rem;
+	word-wrap: break-word;
+	-webkit-hyphens: auto;
+	-moz-hyphens: auto;
+	hyphens: auto;
+}
+.page-links {
+	clear: both;
+	line-height: 1.714285714;
+}
+footer.entry-meta {
+	margin-top: 24px;
+	margin-top: 1.714285714rem;
+	font-size: 13px;
+	font-size: 0.928571429rem;
+	line-height: 1.846153846;
+	color: #757575;
+}
+.single-author .entry-meta .by-author {
+	display: none;
+}
+.mu_register h2 {
+	color: #757575;
+	font-weight: normal;
+}
+
+
+/* =Archives
+-------------------------------------------------------------- */
+
+.archive-header,
+.page-header {
+	margin-bottom: 48px;
+	margin-bottom: 3.428571429rem;
+	padding-bottom: 22px;
+	padding-bottom: 1.571428571rem;
+	border-bottom: 1px solid #ededed;
+}
+.archive-meta {
+	color: #757575;
+	font-size: 12px;
+	font-size: 0.857142857rem;
+	line-height: 2;
+	margin-top: 22px;
+	margin-top: 1.571428571rem;
+}
+
+
+/* =Single image attachment view
+-------------------------------------------------------------- */
+
+.article.attachment {
+	overflow: hidden;
+}
+.image-attachment div.attachment {
+	text-align: center;
+}
+.image-attachment div.attachment p {
+	text-align: center;
+}
+.image-attachment div.attachment img {
+	display: block;
+	height: auto;
+	margin: 0 auto;
+	max-width: 100%;
+}
+.image-attachment .entry-caption {
+	margin-top: 8px;
+	margin-top: 0.571428571rem;
+}
+
+
+/* =Aside post format
+-------------------------------------------------------------- */
+
+article.format-aside h1 {
+	margin-bottom: 24px;
+	margin-bottom: 1.714285714rem;
+}
+article.format-aside h1 a {
+	text-decoration: none;
+	color: #4d525a;
+}
+article.format-aside h1 a:hover {
+	color: #2e3542;
+}
+article.format-aside .aside {
+	padding: 24px 24px 0;
+	padding: 1.714285714rem;
+	background: #d2e0f9;
+	border-left: 22px solid #a8bfe8;
+}
+article.format-aside p {
+	font-size: 13px;
+	font-size: 0.928571429rem;
+	line-height: 1.846153846;
+	color: #4a5466;
+}
+article.format-aside blockquote:last-child,
+article.format-aside p:last-child {
+	margin-bottom: 0;
+}
+
+
+/* =Post formats
+-------------------------------------------------------------- */
+
+/* Image posts */
+article.format-image footer h1 {
+	font-size: 13px;
+	font-size: 0.928571429rem;
+	line-height: 1.846153846;
+	font-weight: normal;
+}
+article.format-image footer h2 {
+	font-size: 11px;
+	font-size: 0.785714286rem;
+	line-height: 2.181818182;
+}
+article.format-image footer a h2 {
+	font-weight: normal;
+}
+
+/* Link posts */
+article.format-link header {
+	padding: 0 10px;
+	padding: 0 0.714285714rem;
+	float: right;
+	font-size: 11px;
+	font-size: 0.785714286rem;
+	line-height: 2.181818182;
+	font-weight: bold;
+	font-style: italic;
+	text-transform: uppercase;
+	color: #848484;
+	background-color: #ebebeb;
+	border-radius: 3px;
+}
+article.format-link .entry-content {
+	max-width: 80%;
+	float: left;
+}
+article.format-link .entry-content a {
+	font-size: 22px;
+	font-size: 1.571428571rem;
+	line-height: 1.090909091;
+	text-decoration: none;
+}
+
+/* Quote posts */
+article.format-quote .entry-content p {
+	margin: 0;
+	padding-bottom: 24px;
+	padding-bottom: 1.714285714rem;
+}
+article.format-quote .entry-content blockquote {
+	display: block;
+	padding: 24px 24px 0;
+	padding: 1.714285714rem 1.714285714rem 0;
+	font-size: 15px;
+	font-size: 1.071428571rem;
+	line-height: 1.6;
+	font-style: normal;
+	color: #6a6a6a;
+	background: #efefef;
+}
+
+/* Status posts */
+.format-status .entry-header {
+	margin-bottom: 24px;
+	margin-bottom: 1.714285714rem;
+}
+.format-status .entry-header header {
+	display: inline-block;
+}
+.format-status .entry-header h1 {
+	font-size: 15px;
+	font-size: 1.071428571rem;
+	font-weight: normal;
+	line-height: 1.6;
+	margin: 0;
+}
+.format-status .entry-header h2 {
+	font-size: 12px;
+	font-size: 0.857142857rem;
+	font-weight: normal;
+	line-height: 2;
+	margin: 0;
+}
+.format-status .entry-header header a {
+	color: #757575;
+}
+.format-status .entry-header header a:hover {
+	color: #21759b;
+}
+.format-status .entry-header img {
+	float: left;
+	margin-right: 21px;
+	margin-right: 1.5rem;
+}
+
+
+/* =Comments
+-------------------------------------------------------------- */
+
+.comments-title {
+	margin-bottom: 48px;
+	margin-bottom: 3.428571429rem;
+	font-size: 16px;
+	font-size: 1.142857143rem;
+	line-height: 1.5;
+	font-weight: normal;
+}
+.comments-area article {
+	margin: 24px 0;
+	margin: 1.714285714rem 0;
+}
+.comments-area article header {
+	margin: 0 0 48px;
+	margin: 0 0 3.428571429rem;
+	overflow: hidden;
+	position: relative;
+}
+.comments-area article header img {
+	float: left;
+	padding: 0;
+	line-height: 0;
+}
+.comments-area article header cite,
+.comments-area article header time {
+	display: block;
+	margin-left: 85px;
+	margin-left: 6.071428571rem;
+}
+.comments-area article header cite {
+	font-style: normal;
+	font-size: 15px;
+	font-size: 1.071428571rem;
+	line-height: 1.42857143;
+}
+.comments-area article header time {
+	line-height: 1.714285714;
+	text-decoration: none;
+	font-size: 12px;
+	font-size: 0.857142857rem;
+	color: #5e5e5e;
+}
+.comments-area article header a {
+	text-decoration: none;
+	color: #5e5e5e;
+}
+.comments-area article header a:hover {
+	color: #21759b;
+}
+.comments-area article header cite a {
+	color: #444;
+}
+.comments-area article header cite a:hover {
+	text-decoration: underline;
+}
+.comments-area article header h4 {
+	position: absolute;
+	top: 0;
+	right: 0;
+	padding: 6px 12px;
+	padding: 0.428571429rem 0.857142857rem;
+	font-size: 12px;
+	font-size: 0.857142857rem;
+	font-weight: normal;
+	color: #fff;
+	background-color: #0088d0;
+	background-repeat: repeat-x;
+	background-image: -moz-linear-gradient(top, #009cee, #0088d0);
+	background-image: -ms-linear-gradient(top, #009cee, #0088d0);
+	background-image: -webkit-linear-gradient(top, #009cee, #0088d0);
+	background-image: -o-linear-gradient(top, #009cee, #0088d0);
+	background-image: linear-gradient(top, #009cee, #0088d0);
+	border-radius: 3px;
+	border: 1px solid #007cbd;
+}
+.comments-area li.bypostauthor cite span {
+	position: absolute;
+	margin-left: 5px;
+	margin-left: 0.357142857rem;
+	padding: 2px 5px;
+	padding: 0.142857143rem 0.357142857rem;
+	font-size: 10px;
+	font-size: 0.714285714rem;
+}
+a.comment-reply-link,
+a.comment-edit-link {
+	color: #686868;
+	font-size: 13px;
+	font-size: 0.928571429rem;
+	line-height: 1.846153846;
+}
+a.comment-reply-link:hover,
+a.comment-edit-link:hover {
+	color: #21759b;
+}
+.commentlist .pingback {
+	line-height: 1.714285714;
+	margin-bottom: 24px;
+	margin-bottom: 1.714285714rem;
+}
+
+/* Comment form */
+#respond {
+	margin-top: 48px;
+	margin-top: 3.428571429rem;
+}
+#respond h3#reply-title {
+	font-size: 16px;
+	font-size: 1.142857143rem;
+	line-height: 1.5;
+}
+#respond h3#reply-title #cancel-comment-reply-link {
+	margin-left: 10px;
+	margin-left: 0.714285714rem;
+	font-weight: normal;
+	font-size: 12px;
+	font-size: 0.857142857rem;
+}
+#respond form {
+	margin: 24px 0;
+	margin: 1.714285714rem 0;
+}
+#respond form p {
+	margin: 11px 0;
+	margin: 0.785714286rem 0;
+}
+#respond form p.logged-in-as {
+	margin-bottom: 24px;
+	margin-bottom: 1.714285714rem;
+}
+#respond form label {
+	display: block;
+	line-height: 1.714285714;
+}
+#respond form input[type="text"],
+#respond form textarea {
+	-moz-box-sizing: border-box;
+	box-sizing: border-box;
+	font-size: 12px;
+	font-size: 0.857142857rem;
+	line-height: 1.714285714;
+	padding: 10px;
+	padding: 0.714285714rem;
+	width: 100%;
+}
+#respond form p.form-allowed-tags {
+	margin: 0;
+	font-size: 12px;
+	font-size: 0.857142857rem;
+	line-height: 2;
+	color: #5e5e5e;
+}
+.required {
+	color: red;
+}
+
+
+/* =Front page template
+-------------------------------------------------------------- */
+
+.entry-page-image {
+	margin-bottom: 14px;
+	margin-bottom: 1rem;
+}
+.template-front-page .site-content article {
+	border: 0;
+	margin-bottom: 0;
+}
+.template-front-page .widget-area {
+	clear: both;
+	float: none;
+	width: auto;
+	padding-top: 24px;
+	padding-top: 1.714285714rem;
+	border-top: 1px solid #ededed;
+}
+.template-front-page .widget-area .widget li {
+	margin: 8px 0 0;
+	margin: 0.571428571rem 0 0;
+	font-size: 13px;
+	font-size: 0.928571429rem;
+	line-height: 1.714285714;
+	list-style-type: square;
+	list-style-position: inside;
+}
+.template-front-page .widget-area .widget li a {
+	color: #757575;
+}
+.template-front-page .widget-area .widget li a:hover {
+	color: #21759b;
+}
+.template-front-page .widget-area .widget_text img {
+	float: left;
+	margin: 8px 24px 8px 0;
+	margin: 0.571428571rem 1.714285714rem 0.571428571rem 0;
+}
+
+
+/* =Widgets
+-------------------------------------------------------------- */
+
+.widget-area .widget ul ul {
+	margin-left: 12px;
+	margin-left: 0.857142857rem;
+}
+.widget_rss li {
+	margin: 12px 0;
+	margin: 0.857142857rem 0;
+}
+.widget_recent_entries .post-date,
+.widget_rss .rss-date {
+	color: #aaa;
+	font-size: 11px;
+	font-size: 0.785714286rem;
+	margin-left: 12px;
+	margin-left: 0.857142857rem;
+}
+#wp-calendar {
+	margin: 0;
+	width: 100%;
+	font-size: 13px;
+	font-size: 0.928571429rem;
+	line-height: 1.846153846;
+	color: #686868;
+}
+#wp-calendar th,
+#wp-calendar td,
+#wp-calendar caption {
+	text-align: left;
+}
+#wp-calendar #next {
+	padding-right: 24px;
+	padding-right: 1.714285714rem;
+	text-align: right;
+}
+.widget_search label {
+	display: block;
+	font-size: 13px;
+	font-size: 0.928571429rem;
+	line-height: 1.846153846;
+}
+.widget_twitter li {
+	list-style-type: none;
+}
+.widget_twitter .timesince {
+	display: block;
+	text-align: right;
+}
+
+
+/* =Plugins
+----------------------------------------------- */
+
+img#wpstats {
+	display: block;
+	margin: 0 auto 24px;
+	margin: 0 auto 1.714285714rem;
+}
+
+
+/* =Media queries
+-------------------------------------------------------------- */
+
+/* Minimum width of 600 pixels. */
+@media screen and (min-width: 600px) {
+	.author-avatar {
+		float: left;
+		margin-top: 8px;
+		margin-top: 0.571428571rem;
+	}
+	.author-description {
+		float: right;
+		width: 80%;
+	}
+	.site {
+		margin: 0 auto;
+		max-width: 960px;
+		max-width: 68.571428571rem;
+		overflow: hidden;
+	}
+	.site-content {
+		float: left;
+		width: 65.104166667%;
+	}
+	body.template-front-page .site-content,
+	body.single-attachment .site-content,
+	body.full-width .site-content {
+		width: 100%;
+	}
+	.widget-area {
+		float: right;
+		width: 26.041666667%;
+	}
+	.site-header h1,
+	.site-header h2 {
+		text-align: left;
+	}
+	.site-header h1 {
+		font-size: 26px;
+		font-size: 1.857142857rem;
+		line-height: 1.846153846;
+		margin-bottom: 0;
+	}
+	.main-navigation ul.nav-menu,
+	.main-navigation div.nav-menu > ul {
+		border-bottom: 1px solid #ededed;
+		border-top: 1px solid #ededed;
+		display: inline-block !important;
+		text-align: left;
+		width: 100%;
+	}
+	.main-navigation ul {
+		margin: 0;
+		text-indent: 0;
+	}
+	.main-navigation li a,
+	.main-navigation li {
+		display: inline-block;
+		text-decoration: none;
+	}
+	.main-navigation li a {
+		border-bottom: 0;
+		color: #6a6a6a;
+		line-height: 3.692307692;
+		text-transform: uppercase;
+		white-space: nowrap;
+	}
+	.main-navigation li a:hover {
+		color: #000;
+	}
+	.main-navigation li {
+		margin: 0 40px 0 0;
+		margin: 0 2.857142857rem 0 0;
+		position: relative;
+	}
+	.main-navigation li ul {
+		display: none;
+		margin: 0;
+		padding: 0;
+		position: absolute;
+		top: 100%;
+		z-index: 1;
+	}
+	.main-navigation li ul ul {
+		top: 0;
+		left: 100%;
+	}
+	.main-navigation ul li:hover > ul {
+		border-left: 0;
+		display: block;
+	}
+	.main-navigation li ul li a {
+		background: #efefef;
+		border-bottom: 1px solid #ededed;
+		display: block;
+		font-size: 11px;
+		font-size: 0.785714286rem;
+		line-height: 2.181818182;
+		padding: 8px 10px;
+		padding: 0.571428571rem 0.714285714rem;
+		width: 180px;
+		width: 12.85714286rem;
+		white-space: normal;
+	}
+	.main-navigation li ul li a:hover {
+		background: #e3e3e3;
+		color: #444;
+	}
+	.main-navigation .current-menu-item > a,
+	.main-navigation .current-menu-ancestor > a,
+	.main-navigation .current_page_item > a,
+	.main-navigation .current_page_ancestor > a {
+		color: #636363;
+		font-weight: bold;
+	}
+	.menu-toggle {
+		display: none;
+	}
+	.entry-header .entry-title {
+		font-size: 22px;
+		font-size: 1.571428571rem;
+	}
+	#respond form input[type="text"] {
+		width: 46.333333333%;
+	}
+	#respond form textarea.blog-textarea {
+		width: 79.666666667%;
+	}
+	.template-front-page .site-content,
+	.template-front-page article {
+		overflow: hidden;
+	}
+	.template-front-page.has-post-thumbnail article {
+		float: left;
+		width: 47.916666667%;
+	}
+	.entry-page-image {
+		float: right;
+		margin-bottom: 0;
+		width: 47.916666667%;
+	}
+	.template-front-page .widget-area .widget,
+	.template-front-page.two-sidebars .widget-area .front-widgets {
+		float: left;
+		width: 51.875%;
+		margin-bottom: 24px;
+		margin-bottom: 1.714285714rem;
+	}
+	.template-front-page .widget-area .widget:nth-child(odd) {
+		clear: right;
+	}
+	.template-front-page .widget-area .widget:nth-child(even),
+	.template-front-page.two-sidebars .widget-area .front-widgets + .front-widgets {
+		float: right;
+		width: 39.0625%;
+		margin: 0 0 24px;
+		margin: 0 0 1.714285714rem;
+	}
+	.template-front-page.two-sidebars .widget,
+	.template-front-page.two-sidebars .widget:nth-child(even) {
+		float: none;
+		width: auto;
+	}
+	.commentlist .children {
+		margin-left: 48px;
+		margin-left: 3.428571429rem;
+	}
+}
+
+/* Minimum width of 960 pixels. */
+@media screen and (min-width: 960px) {
+	body {
+		background-color: #e6e6e6;
+	}
+	body .site {
+		padding: 0 40px;
+		padding: 0 2.857142857rem;
+		margin-top: 48px;
+		margin-top: 3.428571429rem;
+		margin-bottom: 48px;
+		margin-bottom: 3.428571429rem;
+		box-shadow: 0 2px 6px rgba(100, 100, 100, 0.3);
+	}
+	body.custom-background-empty {
+		background-color: #fff;
+	}
+	body.custom-background-empty .site,
+	body.custom-background-white .site {
+		padding: 0;
+		margin-top: 0;
+		margin-bottom: 0;
+		box-shadow: none;
+	}
+}
+
+
+/* =Print
+----------------------------------------------- */
+
+@media print {
+	body {
+		background: none !important;
+		color: #000;
+		font-size: 10pt;
+	}
+	footer a[rel=bookmark]:link:after,
+	footer a[rel=bookmark]:visited:after {
+		content: " [" attr(href) "] "; /* Show URLs */
+	}
+	a {
+		text-decoration: none;
+	}
+	.entry-content img,
+	.comment-content img,
+	.author-avatar img,
+	img.wp-post-image {
+		border-radius: 0;
+		box-shadow: none;
+	}
+	.site {
+		clear: both !important;
+		display: block !important;
+		float: none !important;
+		max-width: 100%;
+		position: relative !important;
+	}
+	.site-header {
+		margin-bottom: 72px;
+		margin-bottom: 5.142857143rem;
+		text-align: left;
+	}
+	.site-header h1 {
+		font-size: 21pt;
+		line-height: 1;
+		text-align: left;
+	}
+	.site-header h2 {
+		color: #000;
+		font-size: 10pt;
+		text-align: left;
+	}
+	.site-header h1 a,
+	.site-header h2 a {
+		color: #000;
+	}
+	.author-avatar,
+	#colophon,
+	#respond,
+	.commentlist .comment-edit-link,
+	.commentlist .reply,
+	.entry-header .comments-link,
+	.entry-meta .edit-link a,
+	.page-link,
+	.site-content nav,
+	.widget-area,
+	img.header-image,
+	.main-navigation {
+		display: none;
+	}
+	.wrapper {
+		border-top: none;
+		box-shadow: none;
+	}
+	.site-content {
+		margin: 0;
+		width: auto;
+	}
+	.singular .entry-header .entry-meta {
+		position: static;
+	}
+	.singular .site-content,
+	.singular .entry-header,
+	.singular .entry-content,
+	.singular footer.entry-meta,
+	.singular .comments-title {
+		margin: 0;
+		width: 100%;
+	}
+	.entry-header .entry-title,
+	.entry-title,
+	.singular .entry-title {
+		font-size: 21pt;
+	}
+	footer.entry-meta,
+	footer.entry-meta a {
+		color: #444;
+		font-size: 10pt;
+	}
+	.author-description {
+		float: none;
+		width: auto;
+	}
+
+	/* Comments */
+	.commentlist > li.comment {
+		background: none;
+		position: relative;
+		width: auto;
+	}
+	.commentlist .avatar {
+		height: 39px;
+		left: 2.2em;
+		top: 2.2em;
+		width: 39px;
+	}
+	.comments-area article header cite,
+	.comments-area article header time {
+		margin-left: 50px;
+		margin-left: 3.57142857rem;
+	}
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-content/themes/twentytwelve/tag.php	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,51 @@
+<?php
+/**
+ * The template for displaying Tag pages.
+ *
+ * Used to display archive-type pages for posts in a tag.
+ *
+ * Learn more: http://codex.wordpress.org/Template_Hierarchy
+ *
+ * @package WordPress
+ * @subpackage Twenty_Twelve
+ * @since Twenty Twelve 1.0
+ */
+
+get_header(); ?>
+
+	<section id="primary" class="site-content">
+		<div id="content" role="main">
+
+		<?php if ( have_posts() ) : ?>
+			<header class="archive-header">
+				<h1 class="archive-title"><?php printf( __( 'Tag Archives: %s', 'twentytwelve' ), '<span>' . single_tag_title( '', false ) . '</span>' ); ?></h1>
+
+			<?php if ( tag_description() ) : // Show an optional tag description ?>
+				<div class="archive-meta"><?php echo tag_description(); ?></div>
+			<?php endif; ?>
+			</header><!-- .archive-header -->
+
+			<?php
+			/* Start the Loop */
+			while ( have_posts() ) : the_post();
+
+				/* Include the post format-specific template for the content. If you want to
+				 * this in a child theme then include a file called called content-___.php
+				 * (where ___ is the post format) and that will be used instead.
+				 */
+				get_template_part( 'content', get_post_format() );
+
+			endwhile;
+
+			twentytwelve_content_nav( 'nav-below' );
+			?>
+
+		<?php else : ?>
+			<?php get_template_part( 'content', 'none' ); ?>
+		<?php endif; ?>
+
+		</div><!-- #content -->
+	</section><!-- #primary -->
+
+<?php get_sidebar(); ?>
+<?php get_footer(); ?>
\ No newline at end of file
Binary file web/wp-content/uploads/2010/01/Copy-of-Page-TEch-ENMI-150x150.png has changed
Binary file web/wp-content/uploads/2010/01/Copy-of-Page-TEch-ENMI-300x142.png has changed
Binary file web/wp-content/uploads/2010/01/Copy-of-Page-TEch-ENMI.png has changed
Binary file web/wp-content/uploads/2010/01/ENMI-Dec2012-Programme.2012-11-08.pdf has changed
Binary file web/wp-content/uploads/2010/01/ENMI-Dec2012-Programme.2012-11-081.pdf has changed
Binary file web/wp-content/uploads/2010/01/ENSCI-Grand-fond-PantoneRed-1024x809.png has changed
Binary file web/wp-content/uploads/2010/01/ENSCI-Grand-fond-PantoneRed-150x150.png has changed
Binary file web/wp-content/uploads/2010/01/ENSCI-Grand-fond-PantoneRed-300x237.png has changed
Binary file web/wp-content/uploads/2010/01/ENSCI-Grand-fond-PantoneRed.png has changed
Binary file web/wp-content/uploads/2010/01/FTV-150x150.jpg has changed
Binary file web/wp-content/uploads/2010/01/FTV.jpg has changed
Binary file web/wp-content/uploads/2010/01/Fing-150x150.jpg has changed
Binary file web/wp-content/uploads/2010/01/Fing.jpg has changed
Binary file web/wp-content/uploads/2010/01/Logo_IMT40.jpg has changed
Binary file web/wp-content/uploads/2010/01/Organisateurs-ENMI-150x150.jpg has changed
Binary file web/wp-content/uploads/2010/01/Organisateurs-ENMI-150x150.png has changed
Binary file web/wp-content/uploads/2010/01/Organisateurs-ENMI-300x75.jpg has changed
Binary file web/wp-content/uploads/2010/01/Organisateurs-ENMI-300x75.png has changed
Binary file web/wp-content/uploads/2010/01/Organisateurs-ENMI.jpg has changed
Binary file web/wp-content/uploads/2010/01/Organisateurs-ENMI.png has changed
Binary file web/wp-content/uploads/2010/01/Page-Logos-ENMI3-150x150.png has changed
Binary file web/wp-content/uploads/2010/01/Page-Logos-ENMI3-300x59.png has changed
Binary file web/wp-content/uploads/2010/01/Page-Logos-ENMI3.png has changed
Binary file web/wp-content/uploads/2010/01/Page-Logos-ENMI4-150x150.png has changed
Binary file web/wp-content/uploads/2010/01/Page-Logos-ENMI4-300x82.png has changed
Binary file web/wp-content/uploads/2010/01/Page-Logos-ENMI4.png has changed
Binary file web/wp-content/uploads/2010/01/al_corp_h_rgb_75mm-1024x356.jpg has changed
Binary file web/wp-content/uploads/2010/01/al_corp_h_rgb_75mm-150x150.jpg has changed
Binary file web/wp-content/uploads/2010/01/al_corp_h_rgb_75mm-300x104.jpg has changed
Binary file web/wp-content/uploads/2010/01/al_corp_h_rgb_75mm.jpg has changed
Binary file web/wp-content/uploads/2010/01/knowtex-150x136.jpg has changed
Binary file web/wp-content/uploads/2010/01/knowtex-300x110.jpg has changed
Binary file web/wp-content/uploads/2010/01/knowtex.jpg has changed
Binary file web/wp-content/uploads/2010/01/knowtex1-150x136.jpg has changed
Binary file web/wp-content/uploads/2010/01/knowtex1-300x110.jpg has changed
Binary file web/wp-content/uploads/2010/01/knowtex1.jpg has changed
Binary file web/wp-content/uploads/2010/01/logo-final-unishared-couleur-1023x264.png has changed
Binary file web/wp-content/uploads/2010/01/logo-final-unishared-couleur-150x150.png has changed
Binary file web/wp-content/uploads/2010/01/logo-final-unishared-couleur-300x77.png has changed
Binary file web/wp-content/uploads/2010/01/logo-final-unishared-couleur.png has changed
Binary file web/wp-content/uploads/2010/01/logo_Cap_Digital_HD_RVB-1023x371.jpg has changed
Binary file web/wp-content/uploads/2010/01/logo_Cap_Digital_HD_RVB-150x150.jpg has changed
Binary file web/wp-content/uploads/2010/01/logo_Cap_Digital_HD_RVB-300x108.jpg has changed
Binary file web/wp-content/uploads/2010/01/logo_Cap_Digital_HD_RVB.jpg has changed
Binary file web/wp-content/uploads/2010/01/logo_iri_bleu_transparent-1024x465.jpg has changed
Binary file web/wp-content/uploads/2010/01/logo_iri_bleu_transparent-150x150.jpg has changed
Binary file web/wp-content/uploads/2010/01/logo_iri_bleu_transparent-300x136.jpg has changed
Binary file web/wp-content/uploads/2010/01/logo_iri_bleu_transparent.jpg has changed
Binary file web/wp-content/uploads/2011/02/PatrimoineHumaniteÌs.Puig_Version-OK.pdf has changed
Binary file web/wp-content/uploads/2012/11/1-150x150.jpg has changed
Binary file web/wp-content/uploads/2012/11/1-150x150.png has changed
Binary file web/wp-content/uploads/2012/11/1-300x158.jpg has changed
Binary file web/wp-content/uploads/2012/11/1-300x169.png has changed
Binary file web/wp-content/uploads/2012/11/1.jpg has changed
Binary file web/wp-content/uploads/2012/11/1.png has changed
Binary file web/wp-content/uploads/2012/11/11-150x150.jpg has changed
Binary file web/wp-content/uploads/2012/11/11-150x150.png has changed
Binary file web/wp-content/uploads/2012/11/11-300x158.jpg has changed
Binary file web/wp-content/uploads/2012/11/11-300x169.png has changed
Binary file web/wp-content/uploads/2012/11/11.jpg has changed
Binary file web/wp-content/uploads/2012/11/11.png has changed
Binary file web/wp-content/uploads/2012/11/12-150x150.jpg has changed
Binary file web/wp-content/uploads/2012/11/12-300x158.jpg has changed
Binary file web/wp-content/uploads/2012/11/12.jpg has changed
Binary file web/wp-content/uploads/2012/11/2-150x150.jpg has changed
Binary file web/wp-content/uploads/2012/11/2-300x158.jpg has changed
Binary file web/wp-content/uploads/2012/11/2.jpg has changed
Binary file web/wp-content/uploads/2012/11/21-150x150.jpg has changed
Binary file web/wp-content/uploads/2012/11/21-300x158.jpg has changed
Binary file web/wp-content/uploads/2012/11/21.jpg has changed
Binary file web/wp-content/uploads/2012/11/22-150x150.jpg has changed
Binary file web/wp-content/uploads/2012/11/22-300x158.jpg has changed
Binary file web/wp-content/uploads/2012/11/22.jpg has changed
Binary file web/wp-content/uploads/2012/11/Capture-d’eÌcran-2012-06-01-aÌ€-14.49.18-150x150.png has changed
Binary file web/wp-content/uploads/2012/11/Capture-d’eÌcran-2012-06-01-aÌ€-14.49.18-300x159.png has changed
Binary file web/wp-content/uploads/2012/11/Capture-d’eÌcran-2012-06-01-aÌ€-14.49.18-568x300.png has changed
Binary file web/wp-content/uploads/2012/11/Capture-d’eÌcran-2012-06-01-aÌ€-14.49.18.png has changed
Binary file web/wp-content/uploads/2012/12/C_Archat_Yeelen_ailesdudesir_liens.pdf has changed
Binary file web/wp-content/uploads/2012/12/bbm1-150x150.jpg has changed
Binary file web/wp-content/uploads/2012/12/bbm1-300x158.jpg has changed
Binary file web/wp-content/uploads/2012/12/bbm1.jpg has changed
Binary file web/wp-content/uploads/2012/12/bubble-t1-150x150.jpg has changed
Binary file web/wp-content/uploads/2012/12/bubble-t1-300x158.jpg has changed
Binary file web/wp-content/uploads/2012/12/bubble-t1.jpg has changed
Binary file web/wp-content/uploads/2012/12/bubble-tv1-150x150.jpg has changed
Binary file web/wp-content/uploads/2012/12/bubble-tv1-300x158.jpg has changed
Binary file web/wp-content/uploads/2012/12/bubble-tv1.jpg has changed
Binary file web/wp-content/uploads/2012/12/cinecast1-150x150.jpg has changed
Binary file web/wp-content/uploads/2012/12/cinecast1-300x158.jpg has changed
Binary file web/wp-content/uploads/2012/12/cinecast1.jpg has changed
Binary file web/wp-content/uploads/2012/12/egonomy1-150x150.jpg has changed
Binary file web/wp-content/uploads/2012/12/egonomy1-300x158.jpg has changed
Binary file web/wp-content/uploads/2012/12/egonomy1.jpg has changed
Binary file web/wp-content/uploads/2012/12/eulalie1-150x150.jpg has changed
Binary file web/wp-content/uploads/2012/12/eulalie1-300x158.jpg has changed
Binary file web/wp-content/uploads/2012/12/eulalie1.jpg has changed
Binary file web/wp-content/uploads/2012/12/fingersdance1-150x150.jpg has changed
Binary file web/wp-content/uploads/2012/12/fingersdance1-300x158.jpg has changed
Binary file web/wp-content/uploads/2012/12/fingersdance1.jpg has changed
Binary file web/wp-content/uploads/2012/12/hdabo1-150x150.jpg has changed
Binary file web/wp-content/uploads/2012/12/hdabo1-300x158.jpg has changed
Binary file web/wp-content/uploads/2012/12/hdabo1.jpg has changed
Binary file web/wp-content/uploads/2012/12/hdalab1-150x150.jpg has changed
Binary file web/wp-content/uploads/2012/12/hdalab1-300x158.jpg has changed
Binary file web/wp-content/uploads/2012/12/hdalab1.jpg has changed
Binary file web/wp-content/uploads/2012/12/logiciel-ldt1-150x150.jpg has changed
Binary file web/wp-content/uploads/2012/12/logiciel-ldt1-300x158.jpg has changed
Binary file web/wp-content/uploads/2012/12/logiciel-ldt1.jpg has changed
Binary file web/wp-content/uploads/2012/12/metadataplayer1-150x150.jpg has changed
Binary file web/wp-content/uploads/2012/12/metadataplayer1-300x158.jpg has changed
Binary file web/wp-content/uploads/2012/12/metadataplayer1.jpg has changed
Binary file web/wp-content/uploads/2012/12/museologie1-150x150.jpg has changed
Binary file web/wp-content/uploads/2012/12/museologie1-300x158.jpg has changed
Binary file web/wp-content/uploads/2012/12/museologie1.jpg has changed
Binary file web/wp-content/uploads/2012/12/periplus1-150x150.jpg has changed
Binary file web/wp-content/uploads/2012/12/periplus1-300x158.jpg has changed
Binary file web/wp-content/uploads/2012/12/periplus1.jpg has changed
Binary file web/wp-content/uploads/2012/12/polemictweet1-150x150.jpg has changed
Binary file web/wp-content/uploads/2012/12/polemictweet1-300x158.jpg has changed
Binary file web/wp-content/uploads/2012/12/polemictweet1.jpg has changed
Binary file web/wp-content/uploads/2012/12/seminaire-edito1-150x150.jpg has changed
Binary file web/wp-content/uploads/2012/12/seminaire-edito1-300x158.jpg has changed
Binary file web/wp-content/uploads/2012/12/seminaire-edito1.jpg has changed
Binary file web/wp-content/uploads/2012/12/social-web1-150x150.jpg has changed
Binary file web/wp-content/uploads/2012/12/social-web1-300x158.jpg has changed
Binary file web/wp-content/uploads/2012/12/social-web1.jpg has changed
Binary file web/wp-content/uploads/boss.zip has changed
--- a/web/wp-cron.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-cron.php	Wed Dec 19 17:46:52 2012 -0800
@@ -48,9 +48,9 @@
 	die();
 
 $keys = array_keys( $crons );
-$local_time = microtime( true );
+$gmt_time = microtime( true );
 
-if ( isset($keys[0]) && $keys[0] > $local_time )
+if ( isset($keys[0]) && $keys[0] > $gmt_time )
 	die();
 
 $doing_cron_transient = get_transient( 'doing_cron');
@@ -59,7 +59,7 @@
 if ( empty( $doing_wp_cron ) ) {
 	if ( empty( $_GET[ 'doing_wp_cron' ] ) ) {
 		// Called from external script/job. Try setting a lock.
-		if ( $doing_cron_transient && ( $doing_cron_transient + WP_CRON_LOCK_TIMEOUT > $local_time ) )
+		if ( $doing_cron_transient && ( $doing_cron_transient + WP_CRON_LOCK_TIMEOUT > $gmt_time ) )
 			return;
 		$doing_cron_transient = $doing_wp_cron = sprintf( '%.22F', microtime( true ) );
 		set_transient( 'doing_cron', $doing_wp_cron );
@@ -73,7 +73,7 @@
 	return;
 
 foreach ( $crons as $timestamp => $cronhooks ) {
-	if ( $timestamp > $local_time )
+	if ( $timestamp > $gmt_time )
 		break;
 
 	foreach ( $cronhooks as $hook => $keys ) {
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-includes/SimplePie/Author.php	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,157 @@
+<?php
+/**
+ * SimplePie
+ *
+ * A PHP-Based RSS and Atom Feed Framework.
+ * Takes the hard work out of managing a complete RSS/Atom solution.
+ *
+ * Copyright (c) 2004-2012, Ryan Parman, Geoffrey Sneddon, Ryan McCue, and contributors
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without modification, are
+ * permitted provided that the following conditions are met:
+ *
+ * 	* Redistributions of source code must retain the above copyright notice, this list of
+ * 	  conditions and the following disclaimer.
+ *
+ * 	* Redistributions in binary form must reproduce the above copyright notice, this list
+ * 	  of conditions and the following disclaimer in the documentation and/or other materials
+ * 	  provided with the distribution.
+ *
+ * 	* Neither the name of the SimplePie Team nor the names of its contributors may be used
+ * 	  to endorse or promote products derived from this software without specific prior
+ * 	  written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS
+ * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
+ * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS
+ * AND CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ * @package SimplePie
+ * @version 1.3.1
+ * @copyright 2004-2012 Ryan Parman, Geoffrey Sneddon, Ryan McCue
+ * @author Ryan Parman
+ * @author Geoffrey Sneddon
+ * @author Ryan McCue
+ * @link http://simplepie.org/ SimplePie
+ * @license http://www.opensource.org/licenses/bsd-license.php BSD License
+ */
+
+/**
+ * Manages all author-related data
+ *
+ * Used by {@see SimplePie_Item::get_author()} and {@see SimplePie::get_authors()}
+ *
+ * This class can be overloaded with {@see SimplePie::set_author_class()}
+ *
+ * @package SimplePie
+ * @subpackage API
+ */
+class SimplePie_Author
+{
+	/**
+	 * Author's name
+	 *
+	 * @var string
+	 * @see get_name()
+	 */
+	var $name;
+
+	/**
+	 * Author's link
+	 *
+	 * @var string
+	 * @see get_link()
+	 */
+	var $link;
+
+	/**
+	 * Author's email address
+	 *
+	 * @var string
+	 * @see get_email()
+	 */
+	var $email;
+
+	/**
+	 * Constructor, used to input the data
+	 *
+	 * @param string $name
+	 * @param string $link
+	 * @param string $email
+	 */
+	public function __construct($name = null, $link = null, $email = null)
+	{
+		$this->name = $name;
+		$this->link = $link;
+		$this->email = $email;
+	}
+
+	/**
+	 * String-ified version
+	 *
+	 * @return string
+	 */
+	public function __toString()
+	{
+		// There is no $this->data here
+		return md5(serialize($this));
+	}
+
+	/**
+	 * Author's name
+	 *
+	 * @return string|null
+	 */
+	public function get_name()
+	{
+		if ($this->name !== null)
+		{
+			return $this->name;
+		}
+		else
+		{
+			return null;
+		}
+	}
+
+	/**
+	 * Author's link
+	 *
+	 * @return string|null
+	 */
+	public function get_link()
+	{
+		if ($this->link !== null)
+		{
+			return $this->link;
+		}
+		else
+		{
+			return null;
+		}
+	}
+
+	/**
+	 * Author's email address
+	 *
+	 * @return string|null
+	 */
+	public function get_email()
+	{
+		if ($this->email !== null)
+		{
+			return $this->email;
+		}
+		else
+		{
+			return null;
+		}
+	}
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-includes/SimplePie/Cache.php	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,133 @@
+<?php
+/**
+ * SimplePie
+ *
+ * A PHP-Based RSS and Atom Feed Framework.
+ * Takes the hard work out of managing a complete RSS/Atom solution.
+ *
+ * Copyright (c) 2004-2012, Ryan Parman, Geoffrey Sneddon, Ryan McCue, and contributors
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without modification, are
+ * permitted provided that the following conditions are met:
+ *
+ * 	* Redistributions of source code must retain the above copyright notice, this list of
+ * 	  conditions and the following disclaimer.
+ *
+ * 	* Redistributions in binary form must reproduce the above copyright notice, this list
+ * 	  of conditions and the following disclaimer in the documentation and/or other materials
+ * 	  provided with the distribution.
+ *
+ * 	* Neither the name of the SimplePie Team nor the names of its contributors may be used
+ * 	  to endorse or promote products derived from this software without specific prior
+ * 	  written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS
+ * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
+ * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS
+ * AND CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ * @package SimplePie
+ * @version 1.3.1
+ * @copyright 2004-2012 Ryan Parman, Geoffrey Sneddon, Ryan McCue
+ * @author Ryan Parman
+ * @author Geoffrey Sneddon
+ * @author Ryan McCue
+ * @link http://simplepie.org/ SimplePie
+ * @license http://www.opensource.org/licenses/bsd-license.php BSD License
+ */
+
+/**
+ * Used to create cache objects
+ *
+ * This class can be overloaded with {@see SimplePie::set_cache_class()},
+ * although the preferred way is to create your own handler
+ * via {@see register()}
+ *
+ * @package SimplePie
+ * @subpackage Caching
+ */
+class SimplePie_Cache
+{
+	/**
+	 * Cache handler classes
+	 *
+	 * These receive 3 parameters to their constructor, as documented in
+	 * {@see register()}
+	 * @var array
+	 */
+	protected static $handlers = array(
+		'mysql' => 'SimplePie_Cache_MySQL',
+		'memcache' => 'SimplePie_Cache_Memcache',
+	);
+
+	/**
+	 * Don't call the constructor. Please.
+	 */
+	private function __construct() { }
+
+	/**
+	 * Create a new SimplePie_Cache object
+	 *
+	 * @param string $location URL location (scheme is used to determine handler)
+	 * @param string $filename Unique identifier for cache object
+	 * @param string $extension 'spi' or 'spc'
+	 * @return SimplePie_Cache_Base Type of object depends on scheme of `$location`
+	 */
+	public static function get_handler($location, $filename, $extension)
+	{
+		$type = explode(':', $location, 2);
+		$type = $type[0];
+		if (!empty(self::$handlers[$type]))
+		{
+			$class = self::$handlers[$type];
+			return new $class($location, $filename, $extension);
+		}
+
+		return new SimplePie_Cache_File($location, $filename, $extension);
+	}
+
+	/**
+	 * Create a new SimplePie_Cache object
+	 *
+	 * @deprecated Use {@see get_handler} instead
+	 */
+	public function create($location, $filename, $extension)
+	{
+		trigger_error('Cache::create() has been replaced with Cache::get_handler(). Switch to the registry system to use this.', E_USER_DEPRECATED);
+		return self::get_handler($location, $filename, $extension);
+	}
+
+	/**
+	 * Register a handler
+	 *
+	 * @param string $type DSN type to register for
+	 * @param string $class Name of handler class. Must implement SimplePie_Cache_Base
+	 */
+	public static function register($type, $class)
+	{
+		self::$handlers[$type] = $class;
+	}
+
+	/**
+	 * Parse a URL into an array
+	 *
+	 * @param string $url
+	 * @return array
+	 */
+	public static function parse_URL($url)
+	{
+		$params = parse_url($url);
+		$params['extras'] = array();
+		if (isset($params['query']))
+		{
+			parse_str($params['query'], $params['extras']);
+		}
+		return $params;
+	}
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-includes/SimplePie/Cache/Base.php	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,114 @@
+<?php
+/**
+ * SimplePie
+ *
+ * A PHP-Based RSS and Atom Feed Framework.
+ * Takes the hard work out of managing a complete RSS/Atom solution.
+ *
+ * Copyright (c) 2004-2012, Ryan Parman, Geoffrey Sneddon, Ryan McCue, and contributors
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without modification, are
+ * permitted provided that the following conditions are met:
+ *
+ * 	* Redistributions of source code must retain the above copyright notice, this list of
+ * 	  conditions and the following disclaimer.
+ *
+ * 	* Redistributions in binary form must reproduce the above copyright notice, this list
+ * 	  of conditions and the following disclaimer in the documentation and/or other materials
+ * 	  provided with the distribution.
+ *
+ * 	* Neither the name of the SimplePie Team nor the names of its contributors may be used
+ * 	  to endorse or promote products derived from this software without specific prior
+ * 	  written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS
+ * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
+ * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS
+ * AND CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ * @package SimplePie
+ * @version 1.3.1
+ * @copyright 2004-2012 Ryan Parman, Geoffrey Sneddon, Ryan McCue
+ * @author Ryan Parman
+ * @author Geoffrey Sneddon
+ * @author Ryan McCue
+ * @link http://simplepie.org/ SimplePie
+ * @license http://www.opensource.org/licenses/bsd-license.php BSD License
+ */
+
+/**
+ * Base for cache objects
+ *
+ * Classes to be used with {@see SimplePie_Cache::register()} are expected
+ * to implement this interface.
+ *
+ * @package SimplePie
+ * @subpackage Caching
+ */
+interface SimplePie_Cache_Base
+{
+	/**
+	 * Feed cache type
+	 *
+	 * @var string
+	 */
+	const TYPE_FEED = 'spc';
+
+	/**
+	 * Image cache type
+	 *
+	 * @var string
+	 */
+	const TYPE_IMAGE = 'spi';
+
+	/**
+	 * Create a new cache object
+	 *
+	 * @param string $location Location string (from SimplePie::$cache_location)
+	 * @param string $name Unique ID for the cache
+	 * @param string $type Either TYPE_FEED for SimplePie data, or TYPE_IMAGE for image data
+	 */
+	public function __construct($location, $name, $type);
+
+	/**
+	 * Save data to the cache
+	 *
+	 * @param array|SimplePie $data Data to store in the cache. If passed a SimplePie object, only cache the $data property
+	 * @return bool Successfulness
+	 */
+	public function save($data);
+
+	/**
+	 * Retrieve the data saved to the cache
+	 *
+	 * @return array Data for SimplePie::$data
+	 */
+	public function load();
+
+	/**
+	 * Retrieve the last modified time for the cache
+	 *
+	 * @return int Timestamp
+	 */
+	public function mtime();
+
+	/**
+	 * Set the last modified time to the current time
+	 *
+	 * @return bool Success status
+	 */
+	public function touch();
+
+	/**
+	 * Remove the cache
+	 *
+	 * @return bool Success status
+	 */
+	public function unlink();
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-includes/SimplePie/Cache/DB.php	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,137 @@
+<?php
+/**
+ * SimplePie
+ *
+ * A PHP-Based RSS and Atom Feed Framework.
+ * Takes the hard work out of managing a complete RSS/Atom solution.
+ *
+ * Copyright (c) 2004-2012, Ryan Parman, Geoffrey Sneddon, Ryan McCue, and contributors
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without modification, are
+ * permitted provided that the following conditions are met:
+ *
+ * 	* Redistributions of source code must retain the above copyright notice, this list of
+ * 	  conditions and the following disclaimer.
+ *
+ * 	* Redistributions in binary form must reproduce the above copyright notice, this list
+ * 	  of conditions and the following disclaimer in the documentation and/or other materials
+ * 	  provided with the distribution.
+ *
+ * 	* Neither the name of the SimplePie Team nor the names of its contributors may be used
+ * 	  to endorse or promote products derived from this software without specific prior
+ * 	  written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS
+ * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
+ * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS
+ * AND CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ * @package SimplePie
+ * @version 1.3.1
+ * @copyright 2004-2012 Ryan Parman, Geoffrey Sneddon, Ryan McCue
+ * @author Ryan Parman
+ * @author Geoffrey Sneddon
+ * @author Ryan McCue
+ * @link http://simplepie.org/ SimplePie
+ * @license http://www.opensource.org/licenses/bsd-license.php BSD License
+ */
+
+/**
+ * Base class for database-based caches
+ *
+ * @package SimplePie
+ * @subpackage Caching
+ */
+abstract class SimplePie_Cache_DB implements SimplePie_Cache_Base
+{
+	/**
+	 * Helper for database conversion
+	 *
+	 * Converts a given {@see SimplePie} object into data to be stored
+	 *
+	 * @param SimplePie $data
+	 * @return array First item is the serialized data for storage, second item is the unique ID for this item
+	 */
+	protected static function prepare_simplepie_object_for_cache($data)
+	{
+		$items = $data->get_items();
+		$items_by_id = array();
+
+		if (!empty($items))
+		{
+			foreach ($items as $item)
+			{
+				$items_by_id[$item->get_id()] = $item;
+			}
+
+			if (count($items_by_id) !== count($items))
+			{
+				$items_by_id = array();
+				foreach ($items as $item)
+				{
+					$items_by_id[$item->get_id(true)] = $item;
+				}
+			}
+
+			if (isset($data->data['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['feed'][0]))
+			{
+				$channel =& $data->data['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['feed'][0];
+			}
+			elseif (isset($data->data['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['feed'][0]))
+			{
+				$channel =& $data->data['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['feed'][0];
+			}
+			elseif (isset($data->data['child'][SIMPLEPIE_NAMESPACE_RDF]['RDF'][0]))
+			{
+				$channel =& $data->data['child'][SIMPLEPIE_NAMESPACE_RDF]['RDF'][0];
+			}
+			elseif (isset($data->data['child'][SIMPLEPIE_NAMESPACE_RSS_20]['rss'][0]['child'][SIMPLEPIE_NAMESPACE_RSS_20]['channel'][0]))
+			{
+				$channel =& $data->data['child'][SIMPLEPIE_NAMESPACE_RSS_20]['rss'][0]['child'][SIMPLEPIE_NAMESPACE_RSS_20]['channel'][0];
+			}
+			else
+			{
+				$channel = null;
+			}
+
+			if ($channel !== null)
+			{
+				if (isset($channel['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['entry']))
+				{
+					unset($channel['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['entry']);
+				}
+				if (isset($channel['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['entry']))
+				{
+					unset($channel['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['entry']);
+				}
+				if (isset($channel['child'][SIMPLEPIE_NAMESPACE_RSS_10]['item']))
+				{
+					unset($channel['child'][SIMPLEPIE_NAMESPACE_RSS_10]['item']);
+				}
+				if (isset($channel['child'][SIMPLEPIE_NAMESPACE_RSS_090]['item']))
+				{
+					unset($channel['child'][SIMPLEPIE_NAMESPACE_RSS_090]['item']);
+				}
+				if (isset($channel['child'][SIMPLEPIE_NAMESPACE_RSS_20]['item']))
+				{
+					unset($channel['child'][SIMPLEPIE_NAMESPACE_RSS_20]['item']);
+				}
+			}
+			if (isset($data->data['items']))
+			{
+				unset($data->data['items']);
+			}
+			if (isset($data->data['ordered_items']))
+			{
+				unset($data->data['ordered_items']);
+			}
+		}
+		return array(serialize($data->data), $items_by_id);
+	}
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-includes/SimplePie/Cache/File.php	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,173 @@
+<?php
+/**
+ * SimplePie
+ *
+ * A PHP-Based RSS and Atom Feed Framework.
+ * Takes the hard work out of managing a complete RSS/Atom solution.
+ *
+ * Copyright (c) 2004-2012, Ryan Parman, Geoffrey Sneddon, Ryan McCue, and contributors
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without modification, are
+ * permitted provided that the following conditions are met:
+ *
+ * 	* Redistributions of source code must retain the above copyright notice, this list of
+ * 	  conditions and the following disclaimer.
+ *
+ * 	* Redistributions in binary form must reproduce the above copyright notice, this list
+ * 	  of conditions and the following disclaimer in the documentation and/or other materials
+ * 	  provided with the distribution.
+ *
+ * 	* Neither the name of the SimplePie Team nor the names of its contributors may be used
+ * 	  to endorse or promote products derived from this software without specific prior
+ * 	  written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS
+ * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
+ * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS
+ * AND CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ * @package SimplePie
+ * @version 1.3.1
+ * @copyright 2004-2012 Ryan Parman, Geoffrey Sneddon, Ryan McCue
+ * @author Ryan Parman
+ * @author Geoffrey Sneddon
+ * @author Ryan McCue
+ * @link http://simplepie.org/ SimplePie
+ * @license http://www.opensource.org/licenses/bsd-license.php BSD License
+ */
+
+/**
+ * Caches data to the filesystem
+ *
+ * @package SimplePie
+ * @subpackage Caching
+ */
+class SimplePie_Cache_File implements SimplePie_Cache_Base
+{
+	/**
+	 * Location string
+	 *
+	 * @see SimplePie::$cache_location
+	 * @var string
+	 */
+	protected $location;
+
+	/**
+	 * Filename
+	 *
+	 * @var string
+	 */
+	protected $filename;
+
+	/**
+	 * File extension
+	 *
+	 * @var string
+	 */
+	protected $extension;
+
+	/**
+	 * File path
+	 *
+	 * @var string
+	 */
+	protected $name;
+
+	/**
+	 * Create a new cache object
+	 *
+	 * @param string $location Location string (from SimplePie::$cache_location)
+	 * @param string $name Unique ID for the cache
+	 * @param string $type Either TYPE_FEED for SimplePie data, or TYPE_IMAGE for image data
+	 */
+	public function __construct($location, $name, $type)
+	{
+		$this->location = $location;
+		$this->filename = $name;
+		$this->extension = $type;
+		$this->name = "$this->location/$this->filename.$this->extension";
+	}
+
+	/**
+	 * Save data to the cache
+	 *
+	 * @param array|SimplePie $data Data to store in the cache. If passed a SimplePie object, only cache the $data property
+	 * @return bool Successfulness
+	 */
+	public function save($data)
+	{
+		if (file_exists($this->name) && is_writeable($this->name) || file_exists($this->location) && is_writeable($this->location))
+		{
+			if ($data instanceof SimplePie)
+			{
+				$data = $data->data;
+			}
+
+			$data = serialize($data);
+			return (bool) file_put_contents($this->name, $data);
+		}
+		return false;
+	}
+
+	/**
+	 * Retrieve the data saved to the cache
+	 *
+	 * @return array Data for SimplePie::$data
+	 */
+	public function load()
+	{
+		if (file_exists($this->name) && is_readable($this->name))
+		{
+			return unserialize(file_get_contents($this->name));
+		}
+		return false;
+	}
+
+	/**
+	 * Retrieve the last modified time for the cache
+	 *
+	 * @return int Timestamp
+	 */
+	public function mtime()
+	{
+		if (file_exists($this->name))
+		{
+			return filemtime($this->name);
+		}
+		return false;
+	}
+
+	/**
+	 * Set the last modified time to the current time
+	 *
+	 * @return bool Success status
+	 */
+	public function touch()
+	{
+		if (file_exists($this->name))
+		{
+			return touch($this->name);
+		}
+		return false;
+	}
+
+	/**
+	 * Remove the cache
+	 *
+	 * @return bool Success status
+	 */
+	public function unlink()
+	{
+		if (file_exists($this->name))
+		{
+			return unlink($this->name);
+		}
+		return false;
+	}
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-includes/SimplePie/Cache/Memcache.php	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,183 @@
+<?php
+/**
+ * SimplePie
+ *
+ * A PHP-Based RSS and Atom Feed Framework.
+ * Takes the hard work out of managing a complete RSS/Atom solution.
+ *
+ * Copyright (c) 2004-2012, Ryan Parman, Geoffrey Sneddon, Ryan McCue, and contributors
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without modification, are
+ * permitted provided that the following conditions are met:
+ *
+ * 	* Redistributions of source code must retain the above copyright notice, this list of
+ * 	  conditions and the following disclaimer.
+ *
+ * 	* Redistributions in binary form must reproduce the above copyright notice, this list
+ * 	  of conditions and the following disclaimer in the documentation and/or other materials
+ * 	  provided with the distribution.
+ *
+ * 	* Neither the name of the SimplePie Team nor the names of its contributors may be used
+ * 	  to endorse or promote products derived from this software without specific prior
+ * 	  written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS
+ * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
+ * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS
+ * AND CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ * @package SimplePie
+ * @version 1.3.1
+ * @copyright 2004-2012 Ryan Parman, Geoffrey Sneddon, Ryan McCue
+ * @author Ryan Parman
+ * @author Geoffrey Sneddon
+ * @author Ryan McCue
+ * @link http://simplepie.org/ SimplePie
+ * @license http://www.opensource.org/licenses/bsd-license.php BSD License
+ */
+
+/**
+ * Caches data to memcache
+ *
+ * Registered for URLs with the "memcache" protocol
+ *
+ * For example, `memcache://localhost:11211/?timeout=3600&prefix=sp_` will
+ * connect to memcache on `localhost` on port 11211. All tables will be
+ * prefixed with `sp_` and data will expire after 3600 seconds
+ *
+ * @package SimplePie
+ * @subpackage Caching
+ * @uses Memcache
+ */
+class SimplePie_Cache_Memcache implements SimplePie_Cache_Base
+{
+	/**
+	 * Memcache instance
+	 *
+	 * @var Memcache
+	 */
+	protected $cache;
+
+	/**
+	 * Options
+	 *
+	 * @var array
+	 */
+	protected $options;
+
+	/**
+	 * Cache name
+	 *
+	 * @var string
+	 */
+	protected $name;
+
+	/**
+	 * Create a new cache object
+	 *
+	 * @param string $location Location string (from SimplePie::$cache_location)
+	 * @param string $name Unique ID for the cache
+	 * @param string $type Either TYPE_FEED for SimplePie data, or TYPE_IMAGE for image data
+	 */
+	public function __construct($location, $name, $type)
+	{
+		$this->options = array(
+			'host' => '127.0.0.1',
+			'port' => 11211,
+			'extras' => array(
+				'timeout' => 3600, // one hour
+				'prefix' => 'simplepie_',
+			),
+		);
+		$parsed = SimplePie_Cache::parse_URL($location);
+		$this->options['host'] = empty($parsed['host']) ? $this->options['host'] : $parsed['host'];
+		$this->options['port'] = empty($parsed['port']) ? $this->options['port'] : $parsed['port'];
+		$this->options['extras'] = array_merge($this->options['extras'], $parsed['extras']);
+		$this->name = $this->options['extras']['prefix'] . md5("$name:$type");
+
+		$this->cache = new Memcache();
+		$this->cache->addServer($this->options['host'], (int) $this->options['port']);
+	}
+
+	/**
+	 * Save data to the cache
+	 *
+	 * @param array|SimplePie $data Data to store in the cache. If passed a SimplePie object, only cache the $data property
+	 * @return bool Successfulness
+	 */
+	public function save($data)
+	{
+		if ($data instanceof SimplePie)
+		{
+			$data = $data->data;
+		}
+		return $this->cache->set($this->name, serialize($data), MEMCACHE_COMPRESSED, (int) $this->options['extras']['timeout']);
+	}
+
+	/**
+	 * Retrieve the data saved to the cache
+	 *
+	 * @return array Data for SimplePie::$data
+	 */
+	public function load()
+	{
+		$data = $this->cache->get($this->name);
+
+		if ($data !== false)
+		{
+			return unserialize($data);
+		}
+		return false;
+	}
+
+	/**
+	 * Retrieve the last modified time for the cache
+	 *
+	 * @return int Timestamp
+	 */
+	public function mtime()
+	{
+		$data = $this->cache->get($this->name);
+
+		if ($data !== false)
+		{
+			// essentially ignore the mtime because Memcache expires on it's own
+			return time();
+		}
+
+		return false;
+	}
+
+	/**
+	 * Set the last modified time to the current time
+	 *
+	 * @return bool Success status
+	 */
+	public function touch()
+	{
+		$data = $this->cache->get($this->name);
+
+		if ($data !== false)
+		{
+			return $this->cache->set($this->name, $data, MEMCACHE_COMPRESSED, (int) $this->duration);
+		}
+
+		return false;
+	}
+
+	/**
+	 * Remove the cache
+	 *
+	 * @return bool Success status
+	 */
+	public function unlink()
+	{
+		return $this->cache->delete($this->name, 0);
+	}
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-includes/SimplePie/Cache/MySQL.php	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,438 @@
+<?php
+/**
+ * SimplePie
+ *
+ * A PHP-Based RSS and Atom Feed Framework.
+ * Takes the hard work out of managing a complete RSS/Atom solution.
+ *
+ * Copyright (c) 2004-2012, Ryan Parman, Geoffrey Sneddon, Ryan McCue, and contributors
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without modification, are
+ * permitted provided that the following conditions are met:
+ *
+ * 	* Redistributions of source code must retain the above copyright notice, this list of
+ * 	  conditions and the following disclaimer.
+ *
+ * 	* Redistributions in binary form must reproduce the above copyright notice, this list
+ * 	  of conditions and the following disclaimer in the documentation and/or other materials
+ * 	  provided with the distribution.
+ *
+ * 	* Neither the name of the SimplePie Team nor the names of its contributors may be used
+ * 	  to endorse or promote products derived from this software without specific prior
+ * 	  written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS
+ * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
+ * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS
+ * AND CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ * @package SimplePie
+ * @version 1.3.1
+ * @copyright 2004-2012 Ryan Parman, Geoffrey Sneddon, Ryan McCue
+ * @author Ryan Parman
+ * @author Geoffrey Sneddon
+ * @author Ryan McCue
+ * @link http://simplepie.org/ SimplePie
+ * @license http://www.opensource.org/licenses/bsd-license.php BSD License
+ */
+
+/**
+ * Caches data to a MySQL database
+ *
+ * Registered for URLs with the "mysql" protocol
+ *
+ * For example, `mysql://root:password@localhost:3306/mydb?prefix=sp_` will
+ * connect to the `mydb` database on `localhost` on port 3306, with the user
+ * `root` and the password `password`. All tables will be prefixed with `sp_`
+ *
+ * @package SimplePie
+ * @subpackage Caching
+ */
+class SimplePie_Cache_MySQL extends SimplePie_Cache_DB
+{
+	/**
+	 * PDO instance
+	 *
+	 * @var PDO
+	 */
+	protected $mysql;
+
+	/**
+	 * Options
+	 *
+	 * @var array
+	 */
+	protected $options;
+
+	/**
+	 * Cache ID
+	 *
+	 * @var string
+	 */
+	protected $id;
+
+	/**
+	 * Create a new cache object
+	 *
+	 * @param string $location Location string (from SimplePie::$cache_location)
+	 * @param string $name Unique ID for the cache
+	 * @param string $type Either TYPE_FEED for SimplePie data, or TYPE_IMAGE for image data
+	 */
+	public function __construct($location, $name, $type)
+	{
+		$this->options = array(
+			'user' => null,
+			'pass' => null,
+			'host' => '127.0.0.1',
+			'port' => '3306',
+			'path' => '',
+			'extras' => array(
+				'prefix' => '',
+			),
+		);
+		$this->options = array_merge_recursive($this->options, SimplePie_Cache::parse_URL($location));
+
+		// Path is prefixed with a "/"
+		$this->options['dbname'] = substr($this->options['path'], 1);
+
+		try
+		{
+			$this->mysql = new PDO("mysql:dbname={$this->options['dbname']};host={$this->options['host']};port={$this->options['port']}", $this->options['user'], $this->options['pass'], array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8'));
+		}
+		catch (PDOException $e)
+		{
+			$this->mysql = null;
+			return;
+		}
+
+		$this->id = $name . $type;
+
+		if (!$query = $this->mysql->query('SHOW TABLES'))
+		{
+			$this->mysql = null;
+			return;
+		}
+
+		$db = array();
+		while ($row = $query->fetchColumn())
+		{
+			$db[] = $row;
+		}
+
+		if (!in_array($this->options['extras']['prefix'] . 'cache_data', $db))
+		{
+			$query = $this->mysql->exec('CREATE TABLE `' . $this->options['extras']['prefix'] . 'cache_data` (`id` TEXT CHARACTER SET utf8 NOT NULL, `items` SMALLINT NOT NULL DEFAULT 0, `data` BLOB NOT NULL, `mtime` INT UNSIGNED NOT NULL, UNIQUE (`id`(125)))');
+			if ($query === false)
+			{
+				$this->mysql = null;
+			}
+		}
+
+		if (!in_array($this->options['extras']['prefix'] . 'items', $db))
+		{
+			$query = $this->mysql->exec('CREATE TABLE `' . $this->options['extras']['prefix'] . 'items` (`feed_id` TEXT CHARACTER SET utf8 NOT NULL, `id` TEXT CHARACTER SET utf8 NOT NULL, `data` TEXT CHARACTER SET utf8 NOT NULL, `posted` INT UNSIGNED NOT NULL, INDEX `feed_id` (`feed_id`(125)))');
+			if ($query === false)
+			{
+				$this->mysql = null;
+			}
+		}
+	}
+
+	/**
+	 * Save data to the cache
+	 *
+	 * @param array|SimplePie $data Data to store in the cache. If passed a SimplePie object, only cache the $data property
+	 * @return bool Successfulness
+	 */
+	public function save($data)
+	{
+		if ($this->mysql === null)
+		{
+			return false;
+		}
+
+		if ($data instanceof SimplePie)
+		{
+			$data = clone $data;
+
+			$prepared = self::prepare_simplepie_object_for_cache($data);
+
+			$query = $this->mysql->prepare('SELECT COUNT(*) FROM `' . $this->options['extras']['prefix'] . 'cache_data` WHERE `id` = :feed');
+			$query->bindValue(':feed', $this->id);
+			if ($query->execute())
+			{
+				if ($query->fetchColumn() > 0)
+				{
+					$items = count($prepared[1]);
+					if ($items)
+					{
+						$sql = 'UPDATE `' . $this->options['extras']['prefix'] . 'cache_data` SET `items` = :items, `data` = :data, `mtime` = :time WHERE `id` = :feed';
+						$query = $this->mysql->prepare($sql);
+						$query->bindValue(':items', $items);
+					}
+					else
+					{
+						$sql = 'UPDATE `' . $this->options['extras']['prefix'] . 'cache_data` SET `data` = :data, `mtime` = :time WHERE `id` = :feed';
+						$query = $this->mysql->prepare($sql);
+					}
+
+					$query->bindValue(':data', $prepared[0]);
+					$query->bindValue(':time', time());
+					$query->bindValue(':feed', $this->id);
+					if (!$query->execute())
+					{
+						return false;
+					}
+				}
+				else
+				{
+					$query = $this->mysql->prepare('INSERT INTO `' . $this->options['extras']['prefix'] . 'cache_data` (`id`, `items`, `data`, `mtime`) VALUES(:feed, :count, :data, :time)');
+					$query->bindValue(':feed', $this->id);
+					$query->bindValue(':count', count($prepared[1]));
+					$query->bindValue(':data', $prepared[0]);
+					$query->bindValue(':time', time());
+					if (!$query->execute())
+					{
+						return false;
+					}
+				}
+
+				$ids = array_keys($prepared[1]);
+				if (!empty($ids))
+				{
+					foreach ($ids as $id)
+					{
+						$database_ids[] = $this->mysql->quote($id);
+					}
+
+					$query = $this->mysql->prepare('SELECT `id` FROM `' . $this->options['extras']['prefix'] . 'items` WHERE `id` = ' . implode(' OR `id` = ', $database_ids) . ' AND `feed_id` = :feed');
+					$query->bindValue(':feed', $this->id);
+
+					if ($query->execute())
+					{
+						$existing_ids = array();
+						while ($row = $query->fetchColumn())
+						{
+							$existing_ids[] = $row;
+						}
+
+						$new_ids = array_diff($ids, $existing_ids);
+
+						foreach ($new_ids as $new_id)
+						{
+							if (!($date = $prepared[1][$new_id]->get_date('U')))
+							{
+								$date = time();
+							}
+
+							$query = $this->mysql->prepare('INSERT INTO `' . $this->options['extras']['prefix'] . 'items` (`feed_id`, `id`, `data`, `posted`) VALUES(:feed, :id, :data, :date)');
+							$query->bindValue(':feed', $this->id);
+							$query->bindValue(':id', $new_id);
+							$query->bindValue(':data', serialize($prepared[1][$new_id]->data));
+							$query->bindValue(':date', $date);
+							if (!$query->execute())
+							{
+								return false;
+							}
+						}
+						return true;
+					}
+				}
+				else
+				{
+					return true;
+				}
+			}
+		}
+		else
+		{
+			$query = $this->mysql->prepare('SELECT `id` FROM `' . $this->options['extras']['prefix'] . 'cache_data` WHERE `id` = :feed');
+			$query->bindValue(':feed', $this->id);
+			if ($query->execute())
+			{
+				if ($query->rowCount() > 0)
+				{
+					$query = $this->mysql->prepare('UPDATE `' . $this->options['extras']['prefix'] . 'cache_data` SET `items` = 0, `data` = :data, `mtime` = :time WHERE `id` = :feed');
+					$query->bindValue(':data', serialize($data));
+					$query->bindValue(':time', time());
+					$query->bindValue(':feed', $this->id);
+					if ($this->execute())
+					{
+						return true;
+					}
+				}
+				else
+				{
+					$query = $this->mysql->prepare('INSERT INTO `' . $this->options['extras']['prefix'] . 'cache_data` (`id`, `items`, `data`, `mtime`) VALUES(:id, 0, :data, :time)');
+					$query->bindValue(':id', $this->id);
+					$query->bindValue(':data', serialize($data));
+					$query->bindValue(':time', time());
+					if ($query->execute())
+					{
+						return true;
+					}
+				}
+			}
+		}
+		return false;
+	}
+
+	/**
+	 * Retrieve the data saved to the cache
+	 *
+	 * @return array Data for SimplePie::$data
+	 */
+	public function load()
+	{
+		if ($this->mysql === null)
+		{
+			return false;
+		}
+
+		$query = $this->mysql->prepare('SELECT `items`, `data` FROM `' . $this->options['extras']['prefix'] . 'cache_data` WHERE `id` = :id');
+		$query->bindValue(':id', $this->id);
+		if ($query->execute() && ($row = $query->fetch()))
+		{
+			$data = unserialize($row[1]);
+
+			if (isset($this->options['items'][0]))
+			{
+				$items = (int) $this->options['items'][0];
+			}
+			else
+			{
+				$items = (int) $row[0];
+			}
+
+			if ($items !== 0)
+			{
+				if (isset($data['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['feed'][0]))
+				{
+					$feed =& $data['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['feed'][0];
+				}
+				elseif (isset($data['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['feed'][0]))
+				{
+					$feed =& $data['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['feed'][0];
+				}
+				elseif (isset($data['child'][SIMPLEPIE_NAMESPACE_RDF]['RDF'][0]))
+				{
+					$feed =& $data['child'][SIMPLEPIE_NAMESPACE_RDF]['RDF'][0];
+				}
+				elseif (isset($data['child'][SIMPLEPIE_NAMESPACE_RSS_20]['rss'][0]))
+				{
+					$feed =& $data['child'][SIMPLEPIE_NAMESPACE_RSS_20]['rss'][0];
+				}
+				else
+				{
+					$feed = null;
+				}
+
+				if ($feed !== null)
+				{
+					$sql = 'SELECT `data` FROM `' . $this->options['extras']['prefix'] . 'items` WHERE `feed_id` = :feed ORDER BY `posted` DESC';
+					if ($items > 0)
+					{
+						$sql .= ' LIMIT ' . $items;
+					}
+
+					$query = $this->mysql->prepare($sql);
+					$query->bindValue(':feed', $this->id);
+					if ($query->execute())
+					{
+						while ($row = $query->fetchColumn())
+						{
+							$feed['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['entry'][] = unserialize($row);
+						}
+					}
+					else
+					{
+						return false;
+					}
+				}
+			}
+			return $data;
+		}
+		return false;
+	}
+
+	/**
+	 * Retrieve the last modified time for the cache
+	 *
+	 * @return int Timestamp
+	 */
+	public function mtime()
+	{
+		if ($this->mysql === null)
+		{
+			return false;
+		}
+
+		$query = $this->mysql->prepare('SELECT `mtime` FROM `' . $this->options['extras']['prefix'] . 'cache_data` WHERE `id` = :id');
+		$query->bindValue(':id', $this->id);
+		if ($query->execute() && ($time = $query->fetchColumn()))
+		{
+			return $time;
+		}
+		else
+		{
+			return false;
+		}
+	}
+
+	/**
+	 * Set the last modified time to the current time
+	 *
+	 * @return bool Success status
+	 */
+	public function touch()
+	{
+		if ($this->mysql === null)
+		{
+			return false;
+		}
+
+		$query = $this->mysql->prepare('UPDATE `' . $this->options['extras']['prefix'] . 'cache_data` SET `mtime` = :time WHERE `id` = :id');
+		$query->bindValue(':time', time());
+		$query->bindValue(':id', $this->id);
+		if ($query->execute() && $query->rowCount() > 0)
+		{
+			return true;
+		}
+		else
+		{
+			return false;
+		}
+	}
+
+	/**
+	 * Remove the cache
+	 *
+	 * @return bool Success status
+	 */
+	public function unlink()
+	{
+		if ($this->mysql === null)
+		{
+			return false;
+		}
+
+		$query = $this->mysql->prepare('DELETE FROM `' . $this->options['extras']['prefix'] . 'cache_data` WHERE `id` = :id');
+		$query->bindValue(':id', $this->id);
+		$query2 = $this->mysql->prepare('DELETE FROM `' . $this->options['extras']['prefix'] . 'items` WHERE `feed_id` = :id');
+		$query2->bindValue(':id', $this->id);
+		if ($query->execute() && $query2->execute())
+		{
+			return true;
+		}
+		else
+		{
+			return false;
+		}
+	}
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-includes/SimplePie/Caption.php	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,210 @@
+<?php
+/**
+ * SimplePie
+ *
+ * A PHP-Based RSS and Atom Feed Framework.
+ * Takes the hard work out of managing a complete RSS/Atom solution.
+ *
+ * Copyright (c) 2004-2012, Ryan Parman, Geoffrey Sneddon, Ryan McCue, and contributors
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without modification, are
+ * permitted provided that the following conditions are met:
+ *
+ * 	* Redistributions of source code must retain the above copyright notice, this list of
+ * 	  conditions and the following disclaimer.
+ *
+ * 	* Redistributions in binary form must reproduce the above copyright notice, this list
+ * 	  of conditions and the following disclaimer in the documentation and/or other materials
+ * 	  provided with the distribution.
+ *
+ * 	* Neither the name of the SimplePie Team nor the names of its contributors may be used
+ * 	  to endorse or promote products derived from this software without specific prior
+ * 	  written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS
+ * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
+ * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS
+ * AND CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ * @package SimplePie
+ * @version 1.3.1
+ * @copyright 2004-2012 Ryan Parman, Geoffrey Sneddon, Ryan McCue
+ * @author Ryan Parman
+ * @author Geoffrey Sneddon
+ * @author Ryan McCue
+ * @link http://simplepie.org/ SimplePie
+ * @license http://www.opensource.org/licenses/bsd-license.php BSD License
+ */
+
+
+/**
+ * Handles `<media:text>` captions as defined in Media RSS.
+ *
+ * Used by {@see SimplePie_Enclosure::get_caption()} and {@see SimplePie_Enclosure::get_captions()}
+ *
+ * This class can be overloaded with {@see SimplePie::set_caption_class()}
+ *
+ * @package SimplePie
+ * @subpackage API
+ */
+class SimplePie_Caption
+{
+	/**
+	 * Content type
+	 *
+	 * @var string
+	 * @see get_type()
+	 */
+	var $type;
+
+	/**
+	 * Language
+	 *
+	 * @var string
+	 * @see get_language()
+	 */
+	var $lang;
+
+	/**
+	 * Start time
+	 *
+	 * @var string
+	 * @see get_starttime()
+	 */
+	var $startTime;
+
+	/**
+	 * End time
+	 *
+	 * @var string
+	 * @see get_endtime()
+	 */
+	var $endTime;
+
+	/**
+	 * Caption text
+	 *
+	 * @var string
+	 * @see get_text()
+	 */
+	var $text;
+
+	/**
+	 * Constructor, used to input the data
+	 *
+	 * For documentation on all the parameters, see the corresponding
+	 * properties and their accessors
+	 */
+	public function __construct($type = null, $lang = null, $startTime = null, $endTime = null, $text = null)
+	{
+		$this->type = $type;
+		$this->lang = $lang;
+		$this->startTime = $startTime;
+		$this->endTime = $endTime;
+		$this->text = $text;
+	}
+
+	/**
+	 * String-ified version
+	 *
+	 * @return string
+	 */
+	public function __toString()
+	{
+		// There is no $this->data here
+		return md5(serialize($this));
+	}
+
+	/**
+	 * Get the end time
+	 *
+	 * @return string|null Time in the format 'hh:mm:ss.SSS'
+	 */
+	public function get_endtime()
+	{
+		if ($this->endTime !== null)
+		{
+			return $this->endTime;
+		}
+		else
+		{
+			return null;
+		}
+	}
+
+	/**
+	 * Get the language
+	 *
+	 * @link http://tools.ietf.org/html/rfc3066
+	 * @return string|null Language code as per RFC 3066
+	 */
+	public function get_language()
+	{
+		if ($this->lang !== null)
+		{
+			return $this->lang;
+		}
+		else
+		{
+			return null;
+		}
+	}
+
+	/**
+	 * Get the start time
+	 *
+	 * @return string|null Time in the format 'hh:mm:ss.SSS'
+	 */
+	public function get_starttime()
+	{
+		if ($this->startTime !== null)
+		{
+			return $this->startTime;
+		}
+		else
+		{
+			return null;
+		}
+	}
+
+	/**
+	 * Get the text of the caption
+	 *
+	 * @return string|null
+	 */
+	public function get_text()
+	{
+		if ($this->text !== null)
+		{
+			return $this->text;
+		}
+		else
+		{
+			return null;
+		}
+	}
+
+	/**
+	 * Get the content type (not MIME type)
+	 *
+	 * @return string|null Either 'text' or 'html'
+	 */
+	public function get_type()
+	{
+		if ($this->type !== null)
+		{
+			return $this->type;
+		}
+		else
+		{
+			return null;
+		}
+	}
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-includes/SimplePie/Category.php	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,157 @@
+<?php
+/**
+ * SimplePie
+ *
+ * A PHP-Based RSS and Atom Feed Framework.
+ * Takes the hard work out of managing a complete RSS/Atom solution.
+ *
+ * Copyright (c) 2004-2012, Ryan Parman, Geoffrey Sneddon, Ryan McCue, and contributors
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without modification, are
+ * permitted provided that the following conditions are met:
+ *
+ * 	* Redistributions of source code must retain the above copyright notice, this list of
+ * 	  conditions and the following disclaimer.
+ *
+ * 	* Redistributions in binary form must reproduce the above copyright notice, this list
+ * 	  of conditions and the following disclaimer in the documentation and/or other materials
+ * 	  provided with the distribution.
+ *
+ * 	* Neither the name of the SimplePie Team nor the names of its contributors may be used
+ * 	  to endorse or promote products derived from this software without specific prior
+ * 	  written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS
+ * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
+ * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS
+ * AND CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ * @package SimplePie
+ * @version 1.3.1
+ * @copyright 2004-2012 Ryan Parman, Geoffrey Sneddon, Ryan McCue
+ * @author Ryan Parman
+ * @author Geoffrey Sneddon
+ * @author Ryan McCue
+ * @link http://simplepie.org/ SimplePie
+ * @license http://www.opensource.org/licenses/bsd-license.php BSD License
+ */
+
+/**
+ * Manages all category-related data
+ *
+ * Used by {@see SimplePie_Item::get_category()} and {@see SimplePie_Item::get_categories()}
+ *
+ * This class can be overloaded with {@see SimplePie::set_category_class()}
+ *
+ * @package SimplePie
+ * @subpackage API
+ */
+class SimplePie_Category
+{
+	/**
+	 * Category identifier
+	 *
+	 * @var string
+	 * @see get_term
+	 */
+	var $term;
+
+	/**
+	 * Categorization scheme identifier
+	 *
+	 * @var string
+	 * @see get_scheme()
+	 */
+	var $scheme;
+
+	/**
+	 * Human readable label
+	 *
+	 * @var string
+	 * @see get_label()
+	 */
+	var $label;
+
+	/**
+	 * Constructor, used to input the data
+	 *
+	 * @param string $term
+	 * @param string $scheme
+	 * @param string $label
+	 */
+	public function __construct($term = null, $scheme = null, $label = null)
+	{
+		$this->term = $term;
+		$this->scheme = $scheme;
+		$this->label = $label;
+	}
+
+	/**
+	 * String-ified version
+	 *
+	 * @return string
+	 */
+	public function __toString()
+	{
+		// There is no $this->data here
+		return md5(serialize($this));
+	}
+
+	/**
+	 * Get the category identifier
+	 *
+	 * @return string|null
+	 */
+	public function get_term()
+	{
+		if ($this->term !== null)
+		{
+			return $this->term;
+		}
+		else
+		{
+			return null;
+		}
+	}
+
+	/**
+	 * Get the categorization scheme identifier
+	 *
+	 * @return string|null
+	 */
+	public function get_scheme()
+	{
+		if ($this->scheme !== null)
+		{
+			return $this->scheme;
+		}
+		else
+		{
+			return null;
+		}
+	}
+
+	/**
+	 * Get the human readable label
+	 *
+	 * @return string|null
+	 */
+	public function get_label()
+	{
+		if ($this->label !== null)
+		{
+			return $this->label;
+		}
+		else
+		{
+			return $this->get_term();
+		}
+	}
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-includes/SimplePie/Content/Type/Sniffer.php	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,332 @@
+<?php
+/**
+ * SimplePie
+ *
+ * A PHP-Based RSS and Atom Feed Framework.
+ * Takes the hard work out of managing a complete RSS/Atom solution.
+ *
+ * Copyright (c) 2004-2012, Ryan Parman, Geoffrey Sneddon, Ryan McCue, and contributors
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without modification, are
+ * permitted provided that the following conditions are met:
+ *
+ * 	* Redistributions of source code must retain the above copyright notice, this list of
+ * 	  conditions and the following disclaimer.
+ *
+ * 	* Redistributions in binary form must reproduce the above copyright notice, this list
+ * 	  of conditions and the following disclaimer in the documentation and/or other materials
+ * 	  provided with the distribution.
+ *
+ * 	* Neither the name of the SimplePie Team nor the names of its contributors may be used
+ * 	  to endorse or promote products derived from this software without specific prior
+ * 	  written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS
+ * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
+ * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS
+ * AND CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ * @package SimplePie
+ * @version 1.3.1
+ * @copyright 2004-2012 Ryan Parman, Geoffrey Sneddon, Ryan McCue
+ * @author Ryan Parman
+ * @author Geoffrey Sneddon
+ * @author Ryan McCue
+ * @link http://simplepie.org/ SimplePie
+ * @license http://www.opensource.org/licenses/bsd-license.php BSD License
+ */
+
+
+/**
+ * Content-type sniffing
+ *
+ * Based on the rules in http://tools.ietf.org/html/draft-abarth-mime-sniff-06
+ *
+ * This is used since we can't always trust Content-Type headers, and is based
+ * upon the HTML5 parsing rules.
+ *
+ *
+ * This class can be overloaded with {@see SimplePie::set_content_type_sniffer_class()}
+ *
+ * @package SimplePie
+ * @subpackage HTTP
+ */
+class SimplePie_Content_Type_Sniffer
+{
+	/**
+	 * File object
+	 *
+	 * @var SimplePie_File
+	 */
+	var $file;
+
+	/**
+	 * Create an instance of the class with the input file
+	 *
+	 * @param SimplePie_Content_Type_Sniffer $file Input file
+	 */
+	public function __construct($file)
+	{
+		$this->file = $file;
+	}
+
+	/**
+	 * Get the Content-Type of the specified file
+	 *
+	 * @return string Actual Content-Type
+	 */
+	public function get_type()
+	{
+		if (isset($this->file->headers['content-type']))
+		{
+			if (!isset($this->file->headers['content-encoding'])
+				&& ($this->file->headers['content-type'] === 'text/plain'
+					|| $this->file->headers['content-type'] === 'text/plain; charset=ISO-8859-1'
+					|| $this->file->headers['content-type'] === 'text/plain; charset=iso-8859-1'
+					|| $this->file->headers['content-type'] === 'text/plain; charset=UTF-8'))
+			{
+				return $this->text_or_binary();
+			}
+
+			if (($pos = strpos($this->file->headers['content-type'], ';')) !== false)
+			{
+				$official = substr($this->file->headers['content-type'], 0, $pos);
+			}
+			else
+			{
+				$official = $this->file->headers['content-type'];
+			}
+			$official = trim(strtolower($official));
+
+			if ($official === 'unknown/unknown'
+				|| $official === 'application/unknown')
+			{
+				return $this->unknown();
+			}
+			elseif (substr($official, -4) === '+xml'
+				|| $official === 'text/xml'
+				|| $official === 'application/xml')
+			{
+				return $official;
+			}
+			elseif (substr($official, 0, 6) === 'image/')
+			{
+				if ($return = $this->image())
+				{
+					return $return;
+				}
+				else
+				{
+					return $official;
+				}
+			}
+			elseif ($official === 'text/html')
+			{
+				return $this->feed_or_html();
+			}
+			else
+			{
+				return $official;
+			}
+		}
+		else
+		{
+			return $this->unknown();
+		}
+	}
+
+	/**
+	 * Sniff text or binary
+	 *
+	 * @return string Actual Content-Type
+	 */
+	public function text_or_binary()
+	{
+		if (substr($this->file->body, 0, 2) === "\xFE\xFF"
+			|| substr($this->file->body, 0, 2) === "\xFF\xFE"
+			|| substr($this->file->body, 0, 4) === "\x00\x00\xFE\xFF"
+			|| substr($this->file->body, 0, 3) === "\xEF\xBB\xBF")
+		{
+			return 'text/plain';
+		}
+		elseif (preg_match('/[\x00-\x08\x0E-\x1A\x1C-\x1F]/', $this->file->body))
+		{
+			return 'application/octect-stream';
+		}
+		else
+		{
+			return 'text/plain';
+		}
+	}
+
+	/**
+	 * Sniff unknown
+	 *
+	 * @return string Actual Content-Type
+	 */
+	public function unknown()
+	{
+		$ws = strspn($this->file->body, "\x09\x0A\x0B\x0C\x0D\x20");
+		if (strtolower(substr($this->file->body, $ws, 14)) === '<!doctype html'
+			|| strtolower(substr($this->file->body, $ws, 5)) === '<html'
+			|| strtolower(substr($this->file->body, $ws, 7)) === '<script')
+		{
+			return 'text/html';
+		}
+		elseif (substr($this->file->body, 0, 5) === '%PDF-')
+		{
+			return 'application/pdf';
+		}
+		elseif (substr($this->file->body, 0, 11) === '%!PS-Adobe-')
+		{
+			return 'application/postscript';
+		}
+		elseif (substr($this->file->body, 0, 6) === 'GIF87a'
+			|| substr($this->file->body, 0, 6) === 'GIF89a')
+		{
+			return 'image/gif';
+		}
+		elseif (substr($this->file->body, 0, 8) === "\x89\x50\x4E\x47\x0D\x0A\x1A\x0A")
+		{
+			return 'image/png';
+		}
+		elseif (substr($this->file->body, 0, 3) === "\xFF\xD8\xFF")
+		{
+			return 'image/jpeg';
+		}
+		elseif (substr($this->file->body, 0, 2) === "\x42\x4D")
+		{
+			return 'image/bmp';
+		}
+		elseif (substr($this->file->body, 0, 4) === "\x00\x00\x01\x00")
+		{
+			return 'image/vnd.microsoft.icon';
+		}
+		else
+		{
+			return $this->text_or_binary();
+		}
+	}
+
+	/**
+	 * Sniff images
+	 *
+	 * @return string Actual Content-Type
+	 */
+	public function image()
+	{
+		if (substr($this->file->body, 0, 6) === 'GIF87a'
+			|| substr($this->file->body, 0, 6) === 'GIF89a')
+		{
+			return 'image/gif';
+		}
+		elseif (substr($this->file->body, 0, 8) === "\x89\x50\x4E\x47\x0D\x0A\x1A\x0A")
+		{
+			return 'image/png';
+		}
+		elseif (substr($this->file->body, 0, 3) === "\xFF\xD8\xFF")
+		{
+			return 'image/jpeg';
+		}
+		elseif (substr($this->file->body, 0, 2) === "\x42\x4D")
+		{
+			return 'image/bmp';
+		}
+		elseif (substr($this->file->body, 0, 4) === "\x00\x00\x01\x00")
+		{
+			return 'image/vnd.microsoft.icon';
+		}
+		else
+		{
+			return false;
+		}
+	}
+
+	/**
+	 * Sniff HTML
+	 *
+	 * @return string Actual Content-Type
+	 */
+	public function feed_or_html()
+	{
+		$len = strlen($this->file->body);
+		$pos = strspn($this->file->body, "\x09\x0A\x0D\x20");
+
+		while ($pos < $len)
+		{
+			switch ($this->file->body[$pos])
+			{
+				case "\x09":
+				case "\x0A":
+				case "\x0D":
+				case "\x20":
+					$pos += strspn($this->file->body, "\x09\x0A\x0D\x20", $pos);
+					continue 2;
+
+				case '<':
+					$pos++;
+					break;
+
+				default:
+					return 'text/html';
+			}
+
+			if (substr($this->file->body, $pos, 3) === '!--')
+			{
+				$pos += 3;
+				if ($pos < $len && ($pos = strpos($this->file->body, '-->', $pos)) !== false)
+				{
+					$pos += 3;
+				}
+				else
+				{
+					return 'text/html';
+				}
+			}
+			elseif (substr($this->file->body, $pos, 1) === '!')
+			{
+				if ($pos < $len && ($pos = strpos($this->file->body, '>', $pos)) !== false)
+				{
+					$pos++;
+				}
+				else
+				{
+					return 'text/html';
+				}
+			}
+			elseif (substr($this->file->body, $pos, 1) === '?')
+			{
+				if ($pos < $len && ($pos = strpos($this->file->body, '?>', $pos)) !== false)
+				{
+					$pos += 2;
+				}
+				else
+				{
+					return 'text/html';
+				}
+			}
+			elseif (substr($this->file->body, $pos, 3) === 'rss'
+				|| substr($this->file->body, $pos, 7) === 'rdf:RDF')
+			{
+				return 'application/rss+xml';
+			}
+			elseif (substr($this->file->body, $pos, 4) === 'feed')
+			{
+				return 'application/atom+xml';
+			}
+			else
+			{
+				return 'text/html';
+			}
+		}
+
+		return 'text/html';
+	}
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-includes/SimplePie/Copyright.php	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,130 @@
+<?php
+/**
+ * SimplePie
+ *
+ * A PHP-Based RSS and Atom Feed Framework.
+ * Takes the hard work out of managing a complete RSS/Atom solution.
+ *
+ * Copyright (c) 2004-2012, Ryan Parman, Geoffrey Sneddon, Ryan McCue, and contributors
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without modification, are
+ * permitted provided that the following conditions are met:
+ *
+ * 	* Redistributions of source code must retain the above copyright notice, this list of
+ * 	  conditions and the following disclaimer.
+ *
+ * 	* Redistributions in binary form must reproduce the above copyright notice, this list
+ * 	  of conditions and the following disclaimer in the documentation and/or other materials
+ * 	  provided with the distribution.
+ *
+ * 	* Neither the name of the SimplePie Team nor the names of its contributors may be used
+ * 	  to endorse or promote products derived from this software without specific prior
+ * 	  written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS
+ * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
+ * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS
+ * AND CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ * @package SimplePie
+ * @version 1.3.1
+ * @copyright 2004-2012 Ryan Parman, Geoffrey Sneddon, Ryan McCue
+ * @author Ryan Parman
+ * @author Geoffrey Sneddon
+ * @author Ryan McCue
+ * @link http://simplepie.org/ SimplePie
+ * @license http://www.opensource.org/licenses/bsd-license.php BSD License
+ */
+
+/**
+ * Manages `<media:copyright>` copyright tags as defined in Media RSS
+ *
+ * Used by {@see SimplePie_Enclosure::get_copyright()}
+ *
+ * This class can be overloaded with {@see SimplePie::set_copyright_class()}
+ *
+ * @package SimplePie
+ * @subpackage API
+ */
+class SimplePie_Copyright
+{
+	/**
+	 * Copyright URL
+	 *
+	 * @var string
+	 * @see get_url()
+	 */
+	var $url;
+
+	/**
+	 * Attribution
+	 *
+	 * @var string
+	 * @see get_attribution()
+	 */
+	var $label;
+
+	/**
+	 * Constructor, used to input the data
+	 *
+	 * For documentation on all the parameters, see the corresponding
+	 * properties and their accessors
+	 */
+	public function __construct($url = null, $label = null)
+	{
+		$this->url = $url;
+		$this->label = $label;
+	}
+
+	/**
+	 * String-ified version
+	 *
+	 * @return string
+	 */
+	public function __toString()
+	{
+		// There is no $this->data here
+		return md5(serialize($this));
+	}
+
+	/**
+	 * Get the copyright URL
+	 *
+	 * @return string|null URL to copyright information
+	 */
+	public function get_url()
+	{
+		if ($this->url !== null)
+		{
+			return $this->url;
+		}
+		else
+		{
+			return null;
+		}
+	}
+
+	/**
+	 * Get the attribution text
+	 *
+	 * @return string|null
+	 */
+	public function get_attribution()
+	{
+		if ($this->label !== null)
+		{
+			return $this->label;
+		}
+		else
+		{
+			return null;
+		}
+	}
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-includes/SimplePie/Core.php	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,57 @@
+<?php
+/**
+ * SimplePie
+ *
+ * A PHP-Based RSS and Atom Feed Framework.
+ * Takes the hard work out of managing a complete RSS/Atom solution.
+ *
+ * Copyright (c) 2004-2009, Ryan Parman, Geoffrey Sneddon, Ryan McCue, and contributors
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without modification, are
+ * permitted provided that the following conditions are met:
+ *
+ * 	* Redistributions of source code must retain the above copyright notice, this list of
+ * 	  conditions and the following disclaimer.
+ *
+ * 	* Redistributions in binary form must reproduce the above copyright notice, this list
+ * 	  of conditions and the following disclaimer in the documentation and/or other materials
+ * 	  provided with the distribution.
+ *
+ * 	* Neither the name of the SimplePie Team nor the names of its contributors may be used
+ * 	  to endorse or promote products derived from this software without specific prior
+ * 	  written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS
+ * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
+ * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS
+ * AND CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ * @package SimplePie
+ * @version 1.3.1
+ * @copyright 2004-2012 Ryan Parman, Geoffrey Sneddon, Ryan McCue
+ * @author Ryan Parman
+ * @author Geoffrey Sneddon
+ * @author Ryan McCue
+ * @link http://simplepie.org/ SimplePie
+ * @license http://www.opensource.org/licenses/bsd-license.php BSD License
+ */
+
+/**
+ * SimplePie class.
+ *
+ * Class for backward compatibility.
+ *
+ * @deprecated Use {@see SimplePie} directly
+ * @package SimplePie
+ * @subpackage API
+ */
+class SimplePie_Core extends SimplePie
+{
+
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-includes/SimplePie/Credit.php	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,156 @@
+<?php
+/**
+ * SimplePie
+ *
+ * A PHP-Based RSS and Atom Feed Framework.
+ * Takes the hard work out of managing a complete RSS/Atom solution.
+ *
+ * Copyright (c) 2004-2012, Ryan Parman, Geoffrey Sneddon, Ryan McCue, and contributors
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without modification, are
+ * permitted provided that the following conditions are met:
+ *
+ * 	* Redistributions of source code must retain the above copyright notice, this list of
+ * 	  conditions and the following disclaimer.
+ *
+ * 	* Redistributions in binary form must reproduce the above copyright notice, this list
+ * 	  of conditions and the following disclaimer in the documentation and/or other materials
+ * 	  provided with the distribution.
+ *
+ * 	* Neither the name of the SimplePie Team nor the names of its contributors may be used
+ * 	  to endorse or promote products derived from this software without specific prior
+ * 	  written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS
+ * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
+ * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS
+ * AND CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ * @package SimplePie
+ * @version 1.3.1
+ * @copyright 2004-2012 Ryan Parman, Geoffrey Sneddon, Ryan McCue
+ * @author Ryan Parman
+ * @author Geoffrey Sneddon
+ * @author Ryan McCue
+ * @link http://simplepie.org/ SimplePie
+ * @license http://www.opensource.org/licenses/bsd-license.php BSD License
+ */
+
+/**
+ * Handles `<media:credit>` as defined in Media RSS
+ *
+ * Used by {@see SimplePie_Enclosure::get_credit()} and {@see SimplePie_Enclosure::get_credits()}
+ *
+ * This class can be overloaded with {@see SimplePie::set_credit_class()}
+ *
+ * @package SimplePie
+ * @subpackage API
+ */
+class SimplePie_Credit
+{
+	/**
+	 * Credited role
+	 *
+	 * @var string
+	 * @see get_role()
+	 */
+	var $role;
+
+	/**
+	 * Organizational scheme
+	 *
+	 * @var string
+	 * @see get_scheme()
+	 */
+	var $scheme;
+
+	/**
+	 * Credited name
+	 *
+	 * @var string
+	 * @see get_name()
+	 */
+	var $name;
+
+	/**
+	 * Constructor, used to input the data
+	 *
+	 * For documentation on all the parameters, see the corresponding
+	 * properties and their accessors
+	 */
+	public function __construct($role = null, $scheme = null, $name = null)
+	{
+		$this->role = $role;
+		$this->scheme = $scheme;
+		$this->name = $name;
+	}
+
+	/**
+	 * String-ified version
+	 *
+	 * @return string
+	 */
+	public function __toString()
+	{
+		// There is no $this->data here
+		return md5(serialize($this));
+	}
+
+	/**
+	 * Get the role of the person receiving credit
+	 *
+	 * @return string|null
+	 */
+	public function get_role()
+	{
+		if ($this->role !== null)
+		{
+			return $this->role;
+		}
+		else
+		{
+			return null;
+		}
+	}
+
+	/**
+	 * Get the organizational scheme
+	 *
+	 * @return string|null
+	 */
+	public function get_scheme()
+	{
+		if ($this->scheme !== null)
+		{
+			return $this->scheme;
+		}
+		else
+		{
+			return null;
+		}
+	}
+
+	/**
+	 * Get the credited person/entity's name
+	 *
+	 * @return string|null
+	 */
+	public function get_name()
+	{
+		if ($this->name !== null)
+		{
+			return $this->name;
+		}
+		else
+		{
+			return null;
+		}
+	}
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-includes/SimplePie/Decode/HTML/Entities.php	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,617 @@
+<?php
+/**
+ * SimplePie
+ *
+ * A PHP-Based RSS and Atom Feed Framework.
+ * Takes the hard work out of managing a complete RSS/Atom solution.
+ *
+ * Copyright (c) 2004-2012, Ryan Parman, Geoffrey Sneddon, Ryan McCue, and contributors
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without modification, are
+ * permitted provided that the following conditions are met:
+ *
+ * 	* Redistributions of source code must retain the above copyright notice, this list of
+ * 	  conditions and the following disclaimer.
+ *
+ * 	* Redistributions in binary form must reproduce the above copyright notice, this list
+ * 	  of conditions and the following disclaimer in the documentation and/or other materials
+ * 	  provided with the distribution.
+ *
+ * 	* Neither the name of the SimplePie Team nor the names of its contributors may be used
+ * 	  to endorse or promote products derived from this software without specific prior
+ * 	  written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS
+ * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
+ * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS
+ * AND CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ * @package SimplePie
+ * @version 1.3.1
+ * @copyright 2004-2012 Ryan Parman, Geoffrey Sneddon, Ryan McCue
+ * @author Ryan Parman
+ * @author Geoffrey Sneddon
+ * @author Ryan McCue
+ * @link http://simplepie.org/ SimplePie
+ * @license http://www.opensource.org/licenses/bsd-license.php BSD License
+ */
+
+
+/**
+ * Decode HTML Entities
+ *
+ * This implements HTML5 as of revision 967 (2007-06-28)
+ *
+ * @deprecated Use DOMDocument instead!
+ * @package SimplePie
+ */
+class SimplePie_Decode_HTML_Entities
+{
+	/**
+	 * Data to be parsed
+	 *
+	 * @access private
+	 * @var string
+	 */
+	var $data = '';
+
+	/**
+	 * Currently consumed bytes
+	 *
+	 * @access private
+	 * @var string
+	 */
+	var $consumed = '';
+
+	/**
+	 * Position of the current byte being parsed
+	 *
+	 * @access private
+	 * @var int
+	 */
+	var $position = 0;
+
+	/**
+	 * Create an instance of the class with the input data
+	 *
+	 * @access public
+	 * @param string $data Input data
+	 */
+	public function __construct($data)
+	{
+		$this->data = $data;
+	}
+
+	/**
+	 * Parse the input data
+	 *
+	 * @access public
+	 * @return string Output data
+	 */
+	public function parse()
+	{
+		while (($this->position = strpos($this->data, '&', $this->position)) !== false)
+		{
+			$this->consume();
+			$this->entity();
+			$this->consumed = '';
+		}
+		return $this->data;
+	}
+
+	/**
+	 * Consume the next byte
+	 *
+	 * @access private
+	 * @return mixed The next byte, or false, if there is no more data
+	 */
+	public function consume()
+	{
+		if (isset($this->data[$this->position]))
+		{
+			$this->consumed .= $this->data[$this->position];
+			return $this->data[$this->position++];
+		}
+		else
+		{
+			return false;
+		}
+	}
+
+	/**
+	 * Consume a range of characters
+	 *
+	 * @access private
+	 * @param string $chars Characters to consume
+	 * @return mixed A series of characters that match the range, or false
+	 */
+	public function consume_range($chars)
+	{
+		if ($len = strspn($this->data, $chars, $this->position))
+		{
+			$data = substr($this->data, $this->position, $len);
+			$this->consumed .= $data;
+			$this->position += $len;
+			return $data;
+		}
+		else
+		{
+			return false;
+		}
+	}
+
+	/**
+	 * Unconsume one byte
+	 *
+	 * @access private
+	 */
+	public function unconsume()
+	{
+		$this->consumed = substr($this->consumed, 0, -1);
+		$this->position--;
+	}
+
+	/**
+	 * Decode an entity
+	 *
+	 * @access private
+	 */
+	public function entity()
+	{
+		switch ($this->consume())
+		{
+			case "\x09":
+			case "\x0A":
+			case "\x0B":
+			case "\x0B":
+			case "\x0C":
+			case "\x20":
+			case "\x3C":
+			case "\x26":
+			case false:
+				break;
+
+			case "\x23":
+				switch ($this->consume())
+				{
+					case "\x78":
+					case "\x58":
+						$range = '0123456789ABCDEFabcdef';
+						$hex = true;
+						break;
+
+					default:
+						$range = '0123456789';
+						$hex = false;
+						$this->unconsume();
+						break;
+				}
+
+				if ($codepoint = $this->consume_range($range))
+				{
+					static $windows_1252_specials = array(0x0D => "\x0A", 0x80 => "\xE2\x82\xAC", 0x81 => "\xEF\xBF\xBD", 0x82 => "\xE2\x80\x9A", 0x83 => "\xC6\x92", 0x84 => "\xE2\x80\x9E", 0x85 => "\xE2\x80\xA6", 0x86 => "\xE2\x80\xA0", 0x87 => "\xE2\x80\xA1", 0x88 => "\xCB\x86", 0x89 => "\xE2\x80\xB0", 0x8A => "\xC5\xA0", 0x8B => "\xE2\x80\xB9", 0x8C => "\xC5\x92", 0x8D => "\xEF\xBF\xBD", 0x8E => "\xC5\xBD", 0x8F => "\xEF\xBF\xBD", 0x90 => "\xEF\xBF\xBD", 0x91 => "\xE2\x80\x98", 0x92 => "\xE2\x80\x99", 0x93 => "\xE2\x80\x9C", 0x94 => "\xE2\x80\x9D", 0x95 => "\xE2\x80\xA2", 0x96 => "\xE2\x80\x93", 0x97 => "\xE2\x80\x94", 0x98 => "\xCB\x9C", 0x99 => "\xE2\x84\xA2", 0x9A => "\xC5\xA1", 0x9B => "\xE2\x80\xBA", 0x9C => "\xC5\x93", 0x9D => "\xEF\xBF\xBD", 0x9E => "\xC5\xBE", 0x9F => "\xC5\xB8");
+
+					if ($hex)
+					{
+						$codepoint = hexdec($codepoint);
+					}
+					else
+					{
+						$codepoint = intval($codepoint);
+					}
+
+					if (isset($windows_1252_specials[$codepoint]))
+					{
+						$replacement = $windows_1252_specials[$codepoint];
+					}
+					else
+					{
+						$replacement = SimplePie_Misc::codepoint_to_utf8($codepoint);
+					}
+
+					if (!in_array($this->consume(), array(';', false), true))
+					{
+						$this->unconsume();
+					}
+
+					$consumed_length = strlen($this->consumed);
+					$this->data = substr_replace($this->data, $replacement, $this->position - $consumed_length, $consumed_length);
+					$this->position += strlen($replacement) - $consumed_length;
+				}
+				break;
+
+			default:
+				static $entities = array(
+					'Aacute' => "\xC3\x81",
+					'aacute' => "\xC3\xA1",
+					'Aacute;' => "\xC3\x81",
+					'aacute;' => "\xC3\xA1",
+					'Acirc' => "\xC3\x82",
+					'acirc' => "\xC3\xA2",
+					'Acirc;' => "\xC3\x82",
+					'acirc;' => "\xC3\xA2",
+					'acute' => "\xC2\xB4",
+					'acute;' => "\xC2\xB4",
+					'AElig' => "\xC3\x86",
+					'aelig' => "\xC3\xA6",
+					'AElig;' => "\xC3\x86",
+					'aelig;' => "\xC3\xA6",
+					'Agrave' => "\xC3\x80",
+					'agrave' => "\xC3\xA0",
+					'Agrave;' => "\xC3\x80",
+					'agrave;' => "\xC3\xA0",
+					'alefsym;' => "\xE2\x84\xB5",
+					'Alpha;' => "\xCE\x91",
+					'alpha;' => "\xCE\xB1",
+					'AMP' => "\x26",
+					'amp' => "\x26",
+					'AMP;' => "\x26",
+					'amp;' => "\x26",
+					'and;' => "\xE2\x88\xA7",
+					'ang;' => "\xE2\x88\xA0",
+					'apos;' => "\x27",
+					'Aring' => "\xC3\x85",
+					'aring' => "\xC3\xA5",
+					'Aring;' => "\xC3\x85",
+					'aring;' => "\xC3\xA5",
+					'asymp;' => "\xE2\x89\x88",
+					'Atilde' => "\xC3\x83",
+					'atilde' => "\xC3\xA3",
+					'Atilde;' => "\xC3\x83",
+					'atilde;' => "\xC3\xA3",
+					'Auml' => "\xC3\x84",
+					'auml' => "\xC3\xA4",
+					'Auml;' => "\xC3\x84",
+					'auml;' => "\xC3\xA4",
+					'bdquo;' => "\xE2\x80\x9E",
+					'Beta;' => "\xCE\x92",
+					'beta;' => "\xCE\xB2",
+					'brvbar' => "\xC2\xA6",
+					'brvbar;' => "\xC2\xA6",
+					'bull;' => "\xE2\x80\xA2",
+					'cap;' => "\xE2\x88\xA9",
+					'Ccedil' => "\xC3\x87",
+					'ccedil' => "\xC3\xA7",
+					'Ccedil;' => "\xC3\x87",
+					'ccedil;' => "\xC3\xA7",
+					'cedil' => "\xC2\xB8",
+					'cedil;' => "\xC2\xB8",
+					'cent' => "\xC2\xA2",
+					'cent;' => "\xC2\xA2",
+					'Chi;' => "\xCE\xA7",
+					'chi;' => "\xCF\x87",
+					'circ;' => "\xCB\x86",
+					'clubs;' => "\xE2\x99\xA3",
+					'cong;' => "\xE2\x89\x85",
+					'COPY' => "\xC2\xA9",
+					'copy' => "\xC2\xA9",
+					'COPY;' => "\xC2\xA9",
+					'copy;' => "\xC2\xA9",
+					'crarr;' => "\xE2\x86\xB5",
+					'cup;' => "\xE2\x88\xAA",
+					'curren' => "\xC2\xA4",
+					'curren;' => "\xC2\xA4",
+					'Dagger;' => "\xE2\x80\xA1",
+					'dagger;' => "\xE2\x80\xA0",
+					'dArr;' => "\xE2\x87\x93",
+					'darr;' => "\xE2\x86\x93",
+					'deg' => "\xC2\xB0",
+					'deg;' => "\xC2\xB0",
+					'Delta;' => "\xCE\x94",
+					'delta;' => "\xCE\xB4",
+					'diams;' => "\xE2\x99\xA6",
+					'divide' => "\xC3\xB7",
+					'divide;' => "\xC3\xB7",
+					'Eacute' => "\xC3\x89",
+					'eacute' => "\xC3\xA9",
+					'Eacute;' => "\xC3\x89",
+					'eacute;' => "\xC3\xA9",
+					'Ecirc' => "\xC3\x8A",
+					'ecirc' => "\xC3\xAA",
+					'Ecirc;' => "\xC3\x8A",
+					'ecirc;' => "\xC3\xAA",
+					'Egrave' => "\xC3\x88",
+					'egrave' => "\xC3\xA8",
+					'Egrave;' => "\xC3\x88",
+					'egrave;' => "\xC3\xA8",
+					'empty;' => "\xE2\x88\x85",
+					'emsp;' => "\xE2\x80\x83",
+					'ensp;' => "\xE2\x80\x82",
+					'Epsilon;' => "\xCE\x95",
+					'epsilon;' => "\xCE\xB5",
+					'equiv;' => "\xE2\x89\xA1",
+					'Eta;' => "\xCE\x97",
+					'eta;' => "\xCE\xB7",
+					'ETH' => "\xC3\x90",
+					'eth' => "\xC3\xB0",
+					'ETH;' => "\xC3\x90",
+					'eth;' => "\xC3\xB0",
+					'Euml' => "\xC3\x8B",
+					'euml' => "\xC3\xAB",
+					'Euml;' => "\xC3\x8B",
+					'euml;' => "\xC3\xAB",
+					'euro;' => "\xE2\x82\xAC",
+					'exist;' => "\xE2\x88\x83",
+					'fnof;' => "\xC6\x92",
+					'forall;' => "\xE2\x88\x80",
+					'frac12' => "\xC2\xBD",
+					'frac12;' => "\xC2\xBD",
+					'frac14' => "\xC2\xBC",
+					'frac14;' => "\xC2\xBC",
+					'frac34' => "\xC2\xBE",
+					'frac34;' => "\xC2\xBE",
+					'frasl;' => "\xE2\x81\x84",
+					'Gamma;' => "\xCE\x93",
+					'gamma;' => "\xCE\xB3",
+					'ge;' => "\xE2\x89\xA5",
+					'GT' => "\x3E",
+					'gt' => "\x3E",
+					'GT;' => "\x3E",
+					'gt;' => "\x3E",
+					'hArr;' => "\xE2\x87\x94",
+					'harr;' => "\xE2\x86\x94",
+					'hearts;' => "\xE2\x99\xA5",
+					'hellip;' => "\xE2\x80\xA6",
+					'Iacute' => "\xC3\x8D",
+					'iacute' => "\xC3\xAD",
+					'Iacute;' => "\xC3\x8D",
+					'iacute;' => "\xC3\xAD",
+					'Icirc' => "\xC3\x8E",
+					'icirc' => "\xC3\xAE",
+					'Icirc;' => "\xC3\x8E",
+					'icirc;' => "\xC3\xAE",
+					'iexcl' => "\xC2\xA1",
+					'iexcl;' => "\xC2\xA1",
+					'Igrave' => "\xC3\x8C",
+					'igrave' => "\xC3\xAC",
+					'Igrave;' => "\xC3\x8C",
+					'igrave;' => "\xC3\xAC",
+					'image;' => "\xE2\x84\x91",
+					'infin;' => "\xE2\x88\x9E",
+					'int;' => "\xE2\x88\xAB",
+					'Iota;' => "\xCE\x99",
+					'iota;' => "\xCE\xB9",
+					'iquest' => "\xC2\xBF",
+					'iquest;' => "\xC2\xBF",
+					'isin;' => "\xE2\x88\x88",
+					'Iuml' => "\xC3\x8F",
+					'iuml' => "\xC3\xAF",
+					'Iuml;' => "\xC3\x8F",
+					'iuml;' => "\xC3\xAF",
+					'Kappa;' => "\xCE\x9A",
+					'kappa;' => "\xCE\xBA",
+					'Lambda;' => "\xCE\x9B",
+					'lambda;' => "\xCE\xBB",
+					'lang;' => "\xE3\x80\x88",
+					'laquo' => "\xC2\xAB",
+					'laquo;' => "\xC2\xAB",
+					'lArr;' => "\xE2\x87\x90",
+					'larr;' => "\xE2\x86\x90",
+					'lceil;' => "\xE2\x8C\x88",
+					'ldquo;' => "\xE2\x80\x9C",
+					'le;' => "\xE2\x89\xA4",
+					'lfloor;' => "\xE2\x8C\x8A",
+					'lowast;' => "\xE2\x88\x97",
+					'loz;' => "\xE2\x97\x8A",
+					'lrm;' => "\xE2\x80\x8E",
+					'lsaquo;' => "\xE2\x80\xB9",
+					'lsquo;' => "\xE2\x80\x98",
+					'LT' => "\x3C",
+					'lt' => "\x3C",
+					'LT;' => "\x3C",
+					'lt;' => "\x3C",
+					'macr' => "\xC2\xAF",
+					'macr;' => "\xC2\xAF",
+					'mdash;' => "\xE2\x80\x94",
+					'micro' => "\xC2\xB5",
+					'micro;' => "\xC2\xB5",
+					'middot' => "\xC2\xB7",
+					'middot;' => "\xC2\xB7",
+					'minus;' => "\xE2\x88\x92",
+					'Mu;' => "\xCE\x9C",
+					'mu;' => "\xCE\xBC",
+					'nabla;' => "\xE2\x88\x87",
+					'nbsp' => "\xC2\xA0",
+					'nbsp;' => "\xC2\xA0",
+					'ndash;' => "\xE2\x80\x93",
+					'ne;' => "\xE2\x89\xA0",
+					'ni;' => "\xE2\x88\x8B",
+					'not' => "\xC2\xAC",
+					'not;' => "\xC2\xAC",
+					'notin;' => "\xE2\x88\x89",
+					'nsub;' => "\xE2\x8A\x84",
+					'Ntilde' => "\xC3\x91",
+					'ntilde' => "\xC3\xB1",
+					'Ntilde;' => "\xC3\x91",
+					'ntilde;' => "\xC3\xB1",
+					'Nu;' => "\xCE\x9D",
+					'nu;' => "\xCE\xBD",
+					'Oacute' => "\xC3\x93",
+					'oacute' => "\xC3\xB3",
+					'Oacute;' => "\xC3\x93",
+					'oacute;' => "\xC3\xB3",
+					'Ocirc' => "\xC3\x94",
+					'ocirc' => "\xC3\xB4",
+					'Ocirc;' => "\xC3\x94",
+					'ocirc;' => "\xC3\xB4",
+					'OElig;' => "\xC5\x92",
+					'oelig;' => "\xC5\x93",
+					'Ograve' => "\xC3\x92",
+					'ograve' => "\xC3\xB2",
+					'Ograve;' => "\xC3\x92",
+					'ograve;' => "\xC3\xB2",
+					'oline;' => "\xE2\x80\xBE",
+					'Omega;' => "\xCE\xA9",
+					'omega;' => "\xCF\x89",
+					'Omicron;' => "\xCE\x9F",
+					'omicron;' => "\xCE\xBF",
+					'oplus;' => "\xE2\x8A\x95",
+					'or;' => "\xE2\x88\xA8",
+					'ordf' => "\xC2\xAA",
+					'ordf;' => "\xC2\xAA",
+					'ordm' => "\xC2\xBA",
+					'ordm;' => "\xC2\xBA",
+					'Oslash' => "\xC3\x98",
+					'oslash' => "\xC3\xB8",
+					'Oslash;' => "\xC3\x98",
+					'oslash;' => "\xC3\xB8",
+					'Otilde' => "\xC3\x95",
+					'otilde' => "\xC3\xB5",
+					'Otilde;' => "\xC3\x95",
+					'otilde;' => "\xC3\xB5",
+					'otimes;' => "\xE2\x8A\x97",
+					'Ouml' => "\xC3\x96",
+					'ouml' => "\xC3\xB6",
+					'Ouml;' => "\xC3\x96",
+					'ouml;' => "\xC3\xB6",
+					'para' => "\xC2\xB6",
+					'para;' => "\xC2\xB6",
+					'part;' => "\xE2\x88\x82",
+					'permil;' => "\xE2\x80\xB0",
+					'perp;' => "\xE2\x8A\xA5",
+					'Phi;' => "\xCE\xA6",
+					'phi;' => "\xCF\x86",
+					'Pi;' => "\xCE\xA0",
+					'pi;' => "\xCF\x80",
+					'piv;' => "\xCF\x96",
+					'plusmn' => "\xC2\xB1",
+					'plusmn;' => "\xC2\xB1",
+					'pound' => "\xC2\xA3",
+					'pound;' => "\xC2\xA3",
+					'Prime;' => "\xE2\x80\xB3",
+					'prime;' => "\xE2\x80\xB2",
+					'prod;' => "\xE2\x88\x8F",
+					'prop;' => "\xE2\x88\x9D",
+					'Psi;' => "\xCE\xA8",
+					'psi;' => "\xCF\x88",
+					'QUOT' => "\x22",
+					'quot' => "\x22",
+					'QUOT;' => "\x22",
+					'quot;' => "\x22",
+					'radic;' => "\xE2\x88\x9A",
+					'rang;' => "\xE3\x80\x89",
+					'raquo' => "\xC2\xBB",
+					'raquo;' => "\xC2\xBB",
+					'rArr;' => "\xE2\x87\x92",
+					'rarr;' => "\xE2\x86\x92",
+					'rceil;' => "\xE2\x8C\x89",
+					'rdquo;' => "\xE2\x80\x9D",
+					'real;' => "\xE2\x84\x9C",
+					'REG' => "\xC2\xAE",
+					'reg' => "\xC2\xAE",
+					'REG;' => "\xC2\xAE",
+					'reg;' => "\xC2\xAE",
+					'rfloor;' => "\xE2\x8C\x8B",
+					'Rho;' => "\xCE\xA1",
+					'rho;' => "\xCF\x81",
+					'rlm;' => "\xE2\x80\x8F",
+					'rsaquo;' => "\xE2\x80\xBA",
+					'rsquo;' => "\xE2\x80\x99",
+					'sbquo;' => "\xE2\x80\x9A",
+					'Scaron;' => "\xC5\xA0",
+					'scaron;' => "\xC5\xA1",
+					'sdot;' => "\xE2\x8B\x85",
+					'sect' => "\xC2\xA7",
+					'sect;' => "\xC2\xA7",
+					'shy' => "\xC2\xAD",
+					'shy;' => "\xC2\xAD",
+					'Sigma;' => "\xCE\xA3",
+					'sigma;' => "\xCF\x83",
+					'sigmaf;' => "\xCF\x82",
+					'sim;' => "\xE2\x88\xBC",
+					'spades;' => "\xE2\x99\xA0",
+					'sub;' => "\xE2\x8A\x82",
+					'sube;' => "\xE2\x8A\x86",
+					'sum;' => "\xE2\x88\x91",
+					'sup;' => "\xE2\x8A\x83",
+					'sup1' => "\xC2\xB9",
+					'sup1;' => "\xC2\xB9",
+					'sup2' => "\xC2\xB2",
+					'sup2;' => "\xC2\xB2",
+					'sup3' => "\xC2\xB3",
+					'sup3;' => "\xC2\xB3",
+					'supe;' => "\xE2\x8A\x87",
+					'szlig' => "\xC3\x9F",
+					'szlig;' => "\xC3\x9F",
+					'Tau;' => "\xCE\xA4",
+					'tau;' => "\xCF\x84",
+					'there4;' => "\xE2\x88\xB4",
+					'Theta;' => "\xCE\x98",
+					'theta;' => "\xCE\xB8",
+					'thetasym;' => "\xCF\x91",
+					'thinsp;' => "\xE2\x80\x89",
+					'THORN' => "\xC3\x9E",
+					'thorn' => "\xC3\xBE",
+					'THORN;' => "\xC3\x9E",
+					'thorn;' => "\xC3\xBE",
+					'tilde;' => "\xCB\x9C",
+					'times' => "\xC3\x97",
+					'times;' => "\xC3\x97",
+					'TRADE;' => "\xE2\x84\xA2",
+					'trade;' => "\xE2\x84\xA2",
+					'Uacute' => "\xC3\x9A",
+					'uacute' => "\xC3\xBA",
+					'Uacute;' => "\xC3\x9A",
+					'uacute;' => "\xC3\xBA",
+					'uArr;' => "\xE2\x87\x91",
+					'uarr;' => "\xE2\x86\x91",
+					'Ucirc' => "\xC3\x9B",
+					'ucirc' => "\xC3\xBB",
+					'Ucirc;' => "\xC3\x9B",
+					'ucirc;' => "\xC3\xBB",
+					'Ugrave' => "\xC3\x99",
+					'ugrave' => "\xC3\xB9",
+					'Ugrave;' => "\xC3\x99",
+					'ugrave;' => "\xC3\xB9",
+					'uml' => "\xC2\xA8",
+					'uml;' => "\xC2\xA8",
+					'upsih;' => "\xCF\x92",
+					'Upsilon;' => "\xCE\xA5",
+					'upsilon;' => "\xCF\x85",
+					'Uuml' => "\xC3\x9C",
+					'uuml' => "\xC3\xBC",
+					'Uuml;' => "\xC3\x9C",
+					'uuml;' => "\xC3\xBC",
+					'weierp;' => "\xE2\x84\x98",
+					'Xi;' => "\xCE\x9E",
+					'xi;' => "\xCE\xBE",
+					'Yacute' => "\xC3\x9D",
+					'yacute' => "\xC3\xBD",
+					'Yacute;' => "\xC3\x9D",
+					'yacute;' => "\xC3\xBD",
+					'yen' => "\xC2\xA5",
+					'yen;' => "\xC2\xA5",
+					'yuml' => "\xC3\xBF",
+					'Yuml;' => "\xC5\xB8",
+					'yuml;' => "\xC3\xBF",
+					'Zeta;' => "\xCE\x96",
+					'zeta;' => "\xCE\xB6",
+					'zwj;' => "\xE2\x80\x8D",
+					'zwnj;' => "\xE2\x80\x8C"
+				);
+
+				for ($i = 0, $match = null; $i < 9 && $this->consume() !== false; $i++)
+				{
+					$consumed = substr($this->consumed, 1);
+					if (isset($entities[$consumed]))
+					{
+						$match = $consumed;
+					}
+				}
+
+				if ($match !== null)
+				{
+ 					$this->data = substr_replace($this->data, $entities[$match], $this->position - strlen($consumed) - 1, strlen($match) + 1);
+					$this->position += strlen($entities[$match]) - strlen($consumed) - 1;
+				}
+				break;
+		}
+	}
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-includes/SimplePie/Enclosure.php	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,1380 @@
+<?php
+/**
+ * SimplePie
+ *
+ * A PHP-Based RSS and Atom Feed Framework.
+ * Takes the hard work out of managing a complete RSS/Atom solution.
+ *
+ * Copyright (c) 2004-2012, Ryan Parman, Geoffrey Sneddon, Ryan McCue, and contributors
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without modification, are
+ * permitted provided that the following conditions are met:
+ *
+ * 	* Redistributions of source code must retain the above copyright notice, this list of
+ * 	  conditions and the following disclaimer.
+ *
+ * 	* Redistributions in binary form must reproduce the above copyright notice, this list
+ * 	  of conditions and the following disclaimer in the documentation and/or other materials
+ * 	  provided with the distribution.
+ *
+ * 	* Neither the name of the SimplePie Team nor the names of its contributors may be used
+ * 	  to endorse or promote products derived from this software without specific prior
+ * 	  written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS
+ * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
+ * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS
+ * AND CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ * @package SimplePie
+ * @version 1.3.1
+ * @copyright 2004-2012 Ryan Parman, Geoffrey Sneddon, Ryan McCue
+ * @author Ryan Parman
+ * @author Geoffrey Sneddon
+ * @author Ryan McCue
+ * @link http://simplepie.org/ SimplePie
+ * @license http://www.opensource.org/licenses/bsd-license.php BSD License
+ */
+
+/**
+ * Handles everything related to enclosures (including Media RSS and iTunes RSS)
+ *
+ * Used by {@see SimplePie_Item::get_enclosure()} and {@see SimplePie_Item::get_enclosures()}
+ *
+ * This class can be overloaded with {@see SimplePie::set_enclosure_class()}
+ *
+ * @package SimplePie
+ * @subpackage API
+ */
+class SimplePie_Enclosure
+{
+	/**
+	 * @var string
+	 * @see get_bitrate()
+	 */
+	var $bitrate;
+
+	/**
+	 * @var array
+	 * @see get_captions()
+	 */
+	var $captions;
+
+	/**
+	 * @var array
+	 * @see get_categories()
+	 */
+	var $categories;
+
+	/**
+	 * @var int
+	 * @see get_channels()
+	 */
+	var $channels;
+
+	/**
+	 * @var SimplePie_Copyright
+	 * @see get_copyright()
+	 */
+	var $copyright;
+
+	/**
+	 * @var array
+	 * @see get_credits()
+	 */
+	var $credits;
+
+	/**
+	 * @var string
+	 * @see get_description()
+	 */
+	var $description;
+
+	/**
+	 * @var int
+	 * @see get_duration()
+	 */
+	var $duration;
+
+	/**
+	 * @var string
+	 * @see get_expression()
+	 */
+	var $expression;
+
+	/**
+	 * @var string
+	 * @see get_framerate()
+	 */
+	var $framerate;
+
+	/**
+	 * @var string
+	 * @see get_handler()
+	 */
+	var $handler;
+
+	/**
+	 * @var array
+	 * @see get_hashes()
+	 */
+	var $hashes;
+
+	/**
+	 * @var string
+	 * @see get_height()
+	 */
+	var $height;
+
+	/**
+	 * @deprecated
+	 * @var null
+	 */
+	var $javascript;
+
+	/**
+	 * @var array
+	 * @see get_keywords()
+	 */
+	var $keywords;
+
+	/**
+	 * @var string
+	 * @see get_language()
+	 */
+	var $lang;
+
+	/**
+	 * @var string
+	 * @see get_length()
+	 */
+	var $length;
+
+	/**
+	 * @var string
+	 * @see get_link()
+	 */
+	var $link;
+
+	/**
+	 * @var string
+	 * @see get_medium()
+	 */
+	var $medium;
+
+	/**
+	 * @var string
+	 * @see get_player()
+	 */
+	var $player;
+
+	/**
+	 * @var array
+	 * @see get_ratings()
+	 */
+	var $ratings;
+
+	/**
+	 * @var array
+	 * @see get_restrictions()
+	 */
+	var $restrictions;
+
+	/**
+	 * @var string
+	 * @see get_sampling_rate()
+	 */
+	var $samplingrate;
+
+	/**
+	 * @var array
+	 * @see get_thumbnails()
+	 */
+	var $thumbnails;
+
+	/**
+	 * @var string
+	 * @see get_title()
+	 */
+	var $title;
+
+	/**
+	 * @var string
+	 * @see get_type()
+	 */
+	var $type;
+
+	/**
+	 * @var string
+	 * @see get_width()
+	 */
+	var $width;
+
+	/**
+	 * Constructor, used to input the data
+	 *
+	 * For documentation on all the parameters, see the corresponding
+	 * properties and their accessors
+	 *
+	 * @uses idna_convert If available, this will convert an IDN
+	 */
+	public function __construct($link = null, $type = null, $length = null, $javascript = null, $bitrate = null, $captions = null, $categories = null, $channels = null, $copyright = null, $credits = null, $description = null, $duration = null, $expression = null, $framerate = null, $hashes = null, $height = null, $keywords = null, $lang = null, $medium = null, $player = null, $ratings = null, $restrictions = null, $samplingrate = null, $thumbnails = null, $title = null, $width = null)
+	{
+		$this->bitrate = $bitrate;
+		$this->captions = $captions;
+		$this->categories = $categories;
+		$this->channels = $channels;
+		$this->copyright = $copyright;
+		$this->credits = $credits;
+		$this->description = $description;
+		$this->duration = $duration;
+		$this->expression = $expression;
+		$this->framerate = $framerate;
+		$this->hashes = $hashes;
+		$this->height = $height;
+		$this->keywords = $keywords;
+		$this->lang = $lang;
+		$this->length = $length;
+		$this->link = $link;
+		$this->medium = $medium;
+		$this->player = $player;
+		$this->ratings = $ratings;
+		$this->restrictions = $restrictions;
+		$this->samplingrate = $samplingrate;
+		$this->thumbnails = $thumbnails;
+		$this->title = $title;
+		$this->type = $type;
+		$this->width = $width;
+
+		if (class_exists('idna_convert'))
+		{
+			$idn = new idna_convert();
+			$parsed = SimplePie_Misc::parse_url($link);
+			$this->link = SimplePie_Misc::compress_parse_url($parsed['scheme'], $idn->encode($parsed['authority']), $parsed['path'], $parsed['query'], $parsed['fragment']);
+		}
+		$this->handler = $this->get_handler(); // Needs to load last
+	}
+
+	/**
+	 * String-ified version
+	 *
+	 * @return string
+	 */
+	public function __toString()
+	{
+		// There is no $this->data here
+		return md5(serialize($this));
+	}
+
+	/**
+	 * Get the bitrate
+	 *
+	 * @return string|null
+	 */
+	public function get_bitrate()
+	{
+		if ($this->bitrate !== null)
+		{
+			return $this->bitrate;
+		}
+		else
+		{
+			return null;
+		}
+	}
+
+	/**
+	 * Get a single caption
+	 *
+	 * @param int $key
+	 * @return SimplePie_Caption|null
+	 */
+	public function get_caption($key = 0)
+	{
+		$captions = $this->get_captions();
+		if (isset($captions[$key]))
+		{
+			return $captions[$key];
+		}
+		else
+		{
+			return null;
+		}
+	}
+
+	/**
+	 * Get all captions
+	 *
+	 * @return array|null Array of {@see SimplePie_Caption} objects
+	 */
+	public function get_captions()
+	{
+		if ($this->captions !== null)
+		{
+			return $this->captions;
+		}
+		else
+		{
+			return null;
+		}
+	}
+
+	/**
+	 * Get a single category
+	 *
+	 * @param int $key
+	 * @return SimplePie_Category|null
+	 */
+	public function get_category($key = 0)
+	{
+		$categories = $this->get_categories();
+		if (isset($categories[$key]))
+		{
+			return $categories[$key];
+		}
+		else
+		{
+			return null;
+		}
+	}
+
+	/**
+	 * Get all categories
+	 *
+	 * @return array|null Array of {@see SimplePie_Category} objects
+	 */
+	public function get_categories()
+	{
+		if ($this->categories !== null)
+		{
+			return $this->categories;
+		}
+		else
+		{
+			return null;
+		}
+	}
+
+	/**
+	 * Get the number of audio channels
+	 *
+	 * @return int|null
+	 */
+	public function get_channels()
+	{
+		if ($this->channels !== null)
+		{
+			return $this->channels;
+		}
+		else
+		{
+			return null;
+		}
+	}
+
+	/**
+	 * Get the copyright information
+	 *
+	 * @return SimplePie_Copyright|null
+	 */
+	public function get_copyright()
+	{
+		if ($this->copyright !== null)
+		{
+			return $this->copyright;
+		}
+		else
+		{
+			return null;
+		}
+	}
+
+	/**
+	 * Get a single credit
+	 *
+	 * @param int $key
+	 * @return SimplePie_Credit|null
+	 */
+	public function get_credit($key = 0)
+	{
+		$credits = $this->get_credits();
+		if (isset($credits[$key]))
+		{
+			return $credits[$key];
+		}
+		else
+		{
+			return null;
+		}
+	}
+
+	/**
+	 * Get all credits
+	 *
+	 * @return array|null Array of {@see SimplePie_Credit} objects
+	 */
+	public function get_credits()
+	{
+		if ($this->credits !== null)
+		{
+			return $this->credits;
+		}
+		else
+		{
+			return null;
+		}
+	}
+
+	/**
+	 * Get the description of the enclosure
+	 *
+	 * @return string|null
+	 */
+	public function get_description()
+	{
+		if ($this->description !== null)
+		{
+			return $this->description;
+		}
+		else
+		{
+			return null;
+		}
+	}
+
+	/**
+	 * Get the duration of the enclosure
+	 *
+	 * @param string $convert Convert seconds into hh:mm:ss
+	 * @return string|int|null 'hh:mm:ss' string if `$convert` was specified, otherwise integer (or null if none found)
+	 */
+	public function get_duration($convert = false)
+	{
+		if ($this->duration !== null)
+		{
+			if ($convert)
+			{
+				$time = SimplePie_Misc::time_hms($this->duration);
+				return $time;
+			}
+			else
+			{
+				return $this->duration;
+			}
+		}
+		else
+		{
+			return null;
+		}
+	}
+
+	/**
+	 * Get the expression
+	 *
+	 * @return string Probably one of 'sample', 'full', 'nonstop', 'clip'. Defaults to 'full'
+	 */
+	public function get_expression()
+	{
+		if ($this->expression !== null)
+		{
+			return $this->expression;
+		}
+		else
+		{
+			return 'full';
+		}
+	}
+
+	/**
+	 * Get the file extension
+	 *
+	 * @return string|null
+	 */
+	public function get_extension()
+	{
+		if ($this->link !== null)
+		{
+			$url = SimplePie_Misc::parse_url($this->link);
+			if ($url['path'] !== '')
+			{
+				return pathinfo($url['path'], PATHINFO_EXTENSION);
+			}
+		}
+		return null;
+	}
+
+	/**
+	 * Get the framerate (in frames-per-second)
+	 *
+	 * @return string|null
+	 */
+	public function get_framerate()
+	{
+		if ($this->framerate !== null)
+		{
+			return $this->framerate;
+		}
+		else
+		{
+			return null;
+		}
+	}
+
+	/**
+	 * Get the preferred handler
+	 *
+	 * @return string|null One of 'flash', 'fmedia', 'quicktime', 'wmedia', 'mp3'
+	 */
+	public function get_handler()
+	{
+		return $this->get_real_type(true);
+	}
+
+	/**
+	 * Get a single hash
+	 *
+	 * @link http://www.rssboard.org/media-rss#media-hash
+	 * @param int $key
+	 * @return string|null Hash as per `media:hash`, prefixed with "$algo:"
+	 */
+	public function get_hash($key = 0)
+	{
+		$hashes = $this->get_hashes();
+		if (isset($hashes[$key]))
+		{
+			return $hashes[$key];
+		}
+		else
+		{
+			return null;
+		}
+	}
+
+	/**
+	 * Get all credits
+	 *
+	 * @return array|null Array of strings, see {@see get_hash()}
+	 */
+	public function get_hashes()
+	{
+		if ($this->hashes !== null)
+		{
+			return $this->hashes;
+		}
+		else
+		{
+			return null;
+		}
+	}
+
+	/**
+	 * Get the height
+	 *
+	 * @return string|null
+	 */
+	public function get_height()
+	{
+		if ($this->height !== null)
+		{
+			return $this->height;
+		}
+		else
+		{
+			return null;
+		}
+	}
+
+	/**
+	 * Get the language
+	 *
+	 * @link http://tools.ietf.org/html/rfc3066
+	 * @return string|null Language code as per RFC 3066
+	 */
+	public function get_language()
+	{
+		if ($this->lang !== null)
+		{
+			return $this->lang;
+		}
+		else
+		{
+			return null;
+		}
+	}
+
+	/**
+	 * Get a single keyword
+	 *
+	 * @param int $key
+	 * @return string|null
+	 */
+	public function get_keyword($key = 0)
+	{
+		$keywords = $this->get_keywords();
+		if (isset($keywords[$key]))
+		{
+			return $keywords[$key];
+		}
+		else
+		{
+			return null;
+		}
+	}
+
+	/**
+	 * Get all keywords
+	 *
+	 * @return array|null Array of strings
+	 */
+	public function get_keywords()
+	{
+		if ($this->keywords !== null)
+		{
+			return $this->keywords;
+		}
+		else
+		{
+			return null;
+		}
+	}
+
+	/**
+	 * Get length
+	 *
+	 * @return float Length in bytes
+	 */
+	public function get_length()
+	{
+		if ($this->length !== null)
+		{
+			return $this->length;
+		}
+		else
+		{
+			return null;
+		}
+	}
+
+	/**
+	 * Get the URL
+	 *
+	 * @return string|null
+	 */
+	public function get_link()
+	{
+		if ($this->link !== null)
+		{
+			return urldecode($this->link);
+		}
+		else
+		{
+			return null;
+		}
+	}
+
+	/**
+	 * Get the medium
+	 *
+	 * @link http://www.rssboard.org/media-rss#media-content
+	 * @return string|null Should be one of 'image', 'audio', 'video', 'document', 'executable'
+	 */
+	public function get_medium()
+	{
+		if ($this->medium !== null)
+		{
+			return $this->medium;
+		}
+		else
+		{
+			return null;
+		}
+	}
+
+	/**
+	 * Get the player URL
+	 *
+	 * Typically the same as {@see get_permalink()}
+	 * @return string|null Player URL
+	 */
+	public function get_player()
+	{
+		if ($this->player !== null)
+		{
+			return $this->player;
+		}
+		else
+		{
+			return null;
+		}
+	}
+
+	/**
+	 * Get a single rating
+	 *
+	 * @param int $key
+	 * @return SimplePie_Rating|null
+	 */
+	public function get_rating($key = 0)
+	{
+		$ratings = $this->get_ratings();
+		if (isset($ratings[$key]))
+		{
+			return $ratings[$key];
+		}
+		else
+		{
+			return null;
+		}
+	}
+
+	/**
+	 * Get all ratings
+	 *
+	 * @return array|null Array of {@see SimplePie_Rating} objects
+	 */
+	public function get_ratings()
+	{
+		if ($this->ratings !== null)
+		{
+			return $this->ratings;
+		}
+		else
+		{
+			return null;
+		}
+	}
+
+	/**
+	 * Get a single restriction
+	 *
+	 * @param int $key
+	 * @return SimplePie_Restriction|null
+	 */
+	public function get_restriction($key = 0)
+	{
+		$restrictions = $this->get_restrictions();
+		if (isset($restrictions[$key]))
+		{
+			return $restrictions[$key];
+		}
+		else
+		{
+			return null;
+		}
+	}
+
+	/**
+	 * Get all restrictions
+	 *
+	 * @return array|null Array of {@see SimplePie_Restriction} objects
+	 */
+	public function get_restrictions()
+	{
+		if ($this->restrictions !== null)
+		{
+			return $this->restrictions;
+		}
+		else
+		{
+			return null;
+		}
+	}
+
+	/**
+	 * Get the sampling rate (in kHz)
+	 *
+	 * @return string|null
+	 */
+	public function get_sampling_rate()
+	{
+		if ($this->samplingrate !== null)
+		{
+			return $this->samplingrate;
+		}
+		else
+		{
+			return null;
+		}
+	}
+
+	/**
+	 * Get the file size (in MiB)
+	 *
+	 * @return float|null File size in mebibytes (1048 bytes)
+	 */
+	public function get_size()
+	{
+		$length = $this->get_length();
+		if ($length !== null)
+		{
+			return round($length/1048576, 2);
+		}
+		else
+		{
+			return null;
+		}
+	}
+
+	/**
+	 * Get a single thumbnail
+	 *
+	 * @param int $key
+	 * @return string|null Thumbnail URL
+	 */
+	public function get_thumbnail($key = 0)
+	{
+		$thumbnails = $this->get_thumbnails();
+		if (isset($thumbnails[$key]))
+		{
+			return $thumbnails[$key];
+		}
+		else
+		{
+			return null;
+		}
+	}
+
+	/**
+	 * Get all thumbnails
+	 *
+	 * @return array|null Array of thumbnail URLs
+	 */
+	public function get_thumbnails()
+	{
+		if ($this->thumbnails !== null)
+		{
+			return $this->thumbnails;
+		}
+		else
+		{
+			return null;
+		}
+	}
+
+	/**
+	 * Get the title
+	 *
+	 * @return string|null
+	 */
+	public function get_title()
+	{
+		if ($this->title !== null)
+		{
+			return $this->title;
+		}
+		else
+		{
+			return null;
+		}
+	}
+
+	/**
+	 * Get mimetype of the enclosure
+	 *
+	 * @see get_real_type()
+	 * @return string|null MIME type
+	 */
+	public function get_type()
+	{
+		if ($this->type !== null)
+		{
+			return $this->type;
+		}
+		else
+		{
+			return null;
+		}
+	}
+
+	/**
+	 * Get the width
+	 *
+	 * @return string|null
+	 */
+	public function get_width()
+	{
+		if ($this->width !== null)
+		{
+			return $this->width;
+		}
+		else
+		{
+			return null;
+		}
+	}
+
+	/**
+	 * Embed the enclosure using `<embed>`
+	 *
+	 * @deprecated Use the second parameter to {@see embed} instead
+	 *
+	 * @param array|string $options See first paramter to {@see embed}
+	 * @return string HTML string to output
+	 */
+	public function native_embed($options='')
+	{
+		return $this->embed($options, true);
+	}
+
+	/**
+	 * Embed the enclosure using Javascript
+	 *
+	 * `$options` is an array or comma-separated key:value string, with the
+	 * following properties:
+	 *
+	 * - `alt` (string): Alternate content for when an end-user does not have
+	 *    the appropriate handler installed or when a file type is
+	 *    unsupported. Can be any text or HTML. Defaults to blank.
+	 * - `altclass` (string): If a file type is unsupported, the end-user will
+	 *    see the alt text (above) linked directly to the content. That link
+	 *    will have this value as its class name. Defaults to blank.
+	 * - `audio` (string): This is an image that should be used as a
+	 *    placeholder for audio files before they're loaded (QuickTime-only).
+	 *    Can be any relative or absolute URL. Defaults to blank.
+	 * - `bgcolor` (string): The background color for the media, if not
+	 *    already transparent. Defaults to `#ffffff`.
+	 * - `height` (integer): The height of the embedded media. Accepts any
+	 *    numeric pixel value (such as `360`) or `auto`. Defaults to `auto`,
+	 *    and it is recommended that you use this default.
+	 * - `loop` (boolean): Do you want the media to loop when its done?
+	 *    Defaults to `false`.
+	 * - `mediaplayer` (string): The location of the included
+	 *    `mediaplayer.swf` file. This allows for the playback of Flash Video
+	 *    (`.flv`) files, and is the default handler for non-Odeo MP3's.
+	 *    Defaults to blank.
+	 * - `video` (string): This is an image that should be used as a
+	 *    placeholder for video files before they're loaded (QuickTime-only).
+	 *    Can be any relative or absolute URL. Defaults to blank.
+	 * - `width` (integer): The width of the embedded media. Accepts any
+	 *    numeric pixel value (such as `480`) or `auto`. Defaults to `auto`,
+	 *    and it is recommended that you use this default.
+	 * - `widescreen` (boolean): Is the enclosure widescreen or standard?
+	 *    This applies only to video enclosures, and will automatically resize
+	 *    the content appropriately.  Defaults to `false`, implying 4:3 mode.
+	 *
+	 * Note: Non-widescreen (4:3) mode with `width` and `height` set to `auto`
+	 * will default to 480x360 video resolution.  Widescreen (16:9) mode with
+	 * `width` and `height` set to `auto` will default to 480x270 video resolution.
+	 *
+	 * @todo If the dimensions for media:content are defined, use them when width/height are set to 'auto'.
+	 * @param array|string $options Comma-separated key:value list, or array
+	 * @param bool $native Use `<embed>`
+	 * @return string HTML string to output
+	 */
+	public function embed($options = '', $native = false)
+	{
+		// Set up defaults
+		$audio = '';
+		$video = '';
+		$alt = '';
+		$altclass = '';
+		$loop = 'false';
+		$width = 'auto';
+		$height = 'auto';
+		$bgcolor = '#ffffff';
+		$mediaplayer = '';
+		$widescreen = false;
+		$handler = $this->get_handler();
+		$type = $this->get_real_type();
+
+		// Process options and reassign values as necessary
+		if (is_array($options))
+		{
+			extract($options);
+		}
+		else
+		{
+			$options = explode(',', $options);
+			foreach($options as $option)
+			{
+				$opt = explode(':', $option, 2);
+				if (isset($opt[0], $opt[1]))
+				{
+					$opt[0] = trim($opt[0]);
+					$opt[1] = trim($opt[1]);
+					switch ($opt[0])
+					{
+						case 'audio':
+							$audio = $opt[1];
+							break;
+
+						case 'video':
+							$video = $opt[1];
+							break;
+
+						case 'alt':
+							$alt = $opt[1];
+							break;
+
+						case 'altclass':
+							$altclass = $opt[1];
+							break;
+
+						case 'loop':
+							$loop = $opt[1];
+							break;
+
+						case 'width':
+							$width = $opt[1];
+							break;
+
+						case 'height':
+							$height = $opt[1];
+							break;
+
+						case 'bgcolor':
+							$bgcolor = $opt[1];
+							break;
+
+						case 'mediaplayer':
+							$mediaplayer = $opt[1];
+							break;
+
+						case 'widescreen':
+							$widescreen = $opt[1];
+							break;
+					}
+				}
+			}
+		}
+
+		$mime = explode('/', $type, 2);
+		$mime = $mime[0];
+
+		// Process values for 'auto'
+		if ($width === 'auto')
+		{
+			if ($mime === 'video')
+			{
+				if ($height === 'auto')
+				{
+					$width = 480;
+				}
+				elseif ($widescreen)
+				{
+					$width = round((intval($height)/9)*16);
+				}
+				else
+				{
+					$width = round((intval($height)/3)*4);
+				}
+			}
+			else
+			{
+				$width = '100%';
+			}
+		}
+
+		if ($height === 'auto')
+		{
+			if ($mime === 'audio')
+			{
+				$height = 0;
+			}
+			elseif ($mime === 'video')
+			{
+				if ($width === 'auto')
+				{
+					if ($widescreen)
+					{
+						$height = 270;
+					}
+					else
+					{
+						$height = 360;
+					}
+				}
+				elseif ($widescreen)
+				{
+					$height = round((intval($width)/16)*9);
+				}
+				else
+				{
+					$height = round((intval($width)/4)*3);
+				}
+			}
+			else
+			{
+				$height = 376;
+			}
+		}
+		elseif ($mime === 'audio')
+		{
+			$height = 0;
+		}
+
+		// Set proper placeholder value
+		if ($mime === 'audio')
+		{
+			$placeholder = $audio;
+		}
+		elseif ($mime === 'video')
+		{
+			$placeholder = $video;
+		}
+
+		$embed = '';
+
+		// Flash
+		if ($handler === 'flash')
+		{
+			if ($native)
+			{
+				$embed .= "<embed src=\"" . $this->get_link() . "\" pluginspage=\"http://adobe.com/go/getflashplayer\" type=\"$type\" quality=\"high\" width=\"$width\" height=\"$height\" bgcolor=\"$bgcolor\" loop=\"$loop\"></embed>";
+			}
+			else
+			{
+				$embed .= "<script type='text/javascript'>embed_flash('$bgcolor', '$width', '$height', '" . $this->get_link() . "', '$loop', '$type');</script>";
+			}
+		}
+
+		// Flash Media Player file types.
+		// Preferred handler for MP3 file types.
+		elseif ($handler === 'fmedia' || ($handler === 'mp3' && $mediaplayer !== ''))
+		{
+			$height += 20;
+			if ($native)
+			{
+				$embed .= "<embed src=\"$mediaplayer\" pluginspage=\"http://adobe.com/go/getflashplayer\" type=\"application/x-shockwave-flash\" quality=\"high\" width=\"$width\" height=\"$height\" wmode=\"transparent\" flashvars=\"file=" . rawurlencode($this->get_link().'?file_extension=.'.$this->get_extension()) . "&autostart=false&repeat=$loop&showdigits=true&showfsbutton=false\"></embed>";
+			}
+			else
+			{
+				$embed .= "<script type='text/javascript'>embed_flv('$width', '$height', '" . rawurlencode($this->get_link().'?file_extension=.'.$this->get_extension()) . "', '$placeholder', '$loop', '$mediaplayer');</script>";
+			}
+		}
+
+		// QuickTime 7 file types.  Need to test with QuickTime 6.
+		// Only handle MP3's if the Flash Media Player is not present.
+		elseif ($handler === 'quicktime' || ($handler === 'mp3' && $mediaplayer === ''))
+		{
+			$height += 16;
+			if ($native)
+			{
+				if ($placeholder !== '')
+				{
+					$embed .= "<embed type=\"$type\" style=\"cursor:hand; cursor:pointer;\" href=\"" . $this->get_link() . "\" src=\"$placeholder\" width=\"$width\" height=\"$height\" autoplay=\"false\" target=\"myself\" controller=\"false\" loop=\"$loop\" scale=\"aspect\" bgcolor=\"$bgcolor\" pluginspage=\"http://apple.com/quicktime/download/\"></embed>";
+				}
+				else
+				{
+					$embed .= "<embed type=\"$type\" style=\"cursor:hand; cursor:pointer;\" src=\"" . $this->get_link() . "\" width=\"$width\" height=\"$height\" autoplay=\"false\" target=\"myself\" controller=\"true\" loop=\"$loop\" scale=\"aspect\" bgcolor=\"$bgcolor\" pluginspage=\"http://apple.com/quicktime/download/\"></embed>";
+				}
+			}
+			else
+			{
+				$embed .= "<script type='text/javascript'>embed_quicktime('$type', '$bgcolor', '$width', '$height', '" . $this->get_link() . "', '$placeholder', '$loop');</script>";
+			}
+		}
+
+		// Windows Media
+		elseif ($handler === 'wmedia')
+		{
+			$height += 45;
+			if ($native)
+			{
+				$embed .= "<embed type=\"application/x-mplayer2\" src=\"" . $this->get_link() . "\" autosize=\"1\" width=\"$width\" height=\"$height\" showcontrols=\"1\" showstatusbar=\"0\" showdisplay=\"0\" autostart=\"0\"></embed>";
+			}
+			else
+			{
+				$embed .= "<script type='text/javascript'>embed_wmedia('$width', '$height', '" . $this->get_link() . "');</script>";
+			}
+		}
+
+		// Everything else
+		else $embed .= '<a href="' . $this->get_link() . '" class="' . $altclass . '">' . $alt . '</a>';
+
+		return $embed;
+	}
+
+	/**
+	 * Get the real media type
+	 *
+	 * Often, feeds lie to us, necessitating a bit of deeper inspection. This
+	 * converts types to their canonical representations based on the file
+	 * extension
+	 *
+	 * @see get_type()
+	 * @param bool $find_handler Internal use only, use {@see get_handler()} instead
+	 * @return string MIME type
+	 */
+	public function get_real_type($find_handler = false)
+	{
+		// Mime-types by handler.
+		$types_flash = array('application/x-shockwave-flash', 'application/futuresplash'); // Flash
+		$types_fmedia = array('video/flv', 'video/x-flv','flv-application/octet-stream'); // Flash Media Player
+		$types_quicktime = array('audio/3gpp', 'audio/3gpp2', 'audio/aac', 'audio/x-aac', 'audio/aiff', 'audio/x-aiff', 'audio/mid', 'audio/midi', 'audio/x-midi', 'audio/mp4', 'audio/m4a', 'audio/x-m4a', 'audio/wav', 'audio/x-wav', 'video/3gpp', 'video/3gpp2', 'video/m4v', 'video/x-m4v', 'video/mp4', 'video/mpeg', 'video/x-mpeg', 'video/quicktime', 'video/sd-video'); // QuickTime
+		$types_wmedia = array('application/asx', 'application/x-mplayer2', 'audio/x-ms-wma', 'audio/x-ms-wax', 'video/x-ms-asf-plugin', 'video/x-ms-asf', 'video/x-ms-wm', 'video/x-ms-wmv', 'video/x-ms-wvx'); // Windows Media
+		$types_mp3 = array('audio/mp3', 'audio/x-mp3', 'audio/mpeg', 'audio/x-mpeg'); // MP3
+
+		if ($this->get_type() !== null)
+		{
+			$type = strtolower($this->type);
+		}
+		else
+		{
+			$type = null;
+		}
+
+		// If we encounter an unsupported mime-type, check the file extension and guess intelligently.
+		if (!in_array($type, array_merge($types_flash, $types_fmedia, $types_quicktime, $types_wmedia, $types_mp3)))
+		{
+			switch (strtolower($this->get_extension()))
+			{
+				// Audio mime-types
+				case 'aac':
+				case 'adts':
+					$type = 'audio/acc';
+					break;
+
+				case 'aif':
+				case 'aifc':
+				case 'aiff':
+				case 'cdda':
+					$type = 'audio/aiff';
+					break;
+
+				case 'bwf':
+					$type = 'audio/wav';
+					break;
+
+				case 'kar':
+				case 'mid':
+				case 'midi':
+				case 'smf':
+					$type = 'audio/midi';
+					break;
+
+				case 'm4a':
+					$type = 'audio/x-m4a';
+					break;
+
+				case 'mp3':
+				case 'swa':
+					$type = 'audio/mp3';
+					break;
+
+				case 'wav':
+					$type = 'audio/wav';
+					break;
+
+				case 'wax':
+					$type = 'audio/x-ms-wax';
+					break;
+
+				case 'wma':
+					$type = 'audio/x-ms-wma';
+					break;
+
+				// Video mime-types
+				case '3gp':
+				case '3gpp':
+					$type = 'video/3gpp';
+					break;
+
+				case '3g2':
+				case '3gp2':
+					$type = 'video/3gpp2';
+					break;
+
+				case 'asf':
+					$type = 'video/x-ms-asf';
+					break;
+
+				case 'flv':
+					$type = 'video/x-flv';
+					break;
+
+				case 'm1a':
+				case 'm1s':
+				case 'm1v':
+				case 'm15':
+				case 'm75':
+				case 'mp2':
+				case 'mpa':
+				case 'mpeg':
+				case 'mpg':
+				case 'mpm':
+				case 'mpv':
+					$type = 'video/mpeg';
+					break;
+
+				case 'm4v':
+					$type = 'video/x-m4v';
+					break;
+
+				case 'mov':
+				case 'qt':
+					$type = 'video/quicktime';
+					break;
+
+				case 'mp4':
+				case 'mpg4':
+					$type = 'video/mp4';
+					break;
+
+				case 'sdv':
+					$type = 'video/sd-video';
+					break;
+
+				case 'wm':
+					$type = 'video/x-ms-wm';
+					break;
+
+				case 'wmv':
+					$type = 'video/x-ms-wmv';
+					break;
+
+				case 'wvx':
+					$type = 'video/x-ms-wvx';
+					break;
+
+				// Flash mime-types
+				case 'spl':
+					$type = 'application/futuresplash';
+					break;
+
+				case 'swf':
+					$type = 'application/x-shockwave-flash';
+					break;
+			}
+		}
+
+		if ($find_handler)
+		{
+			if (in_array($type, $types_flash))
+			{
+				return 'flash';
+			}
+			elseif (in_array($type, $types_fmedia))
+			{
+				return 'fmedia';
+			}
+			elseif (in_array($type, $types_quicktime))
+			{
+				return 'quicktime';
+			}
+			elseif (in_array($type, $types_wmedia))
+			{
+				return 'wmedia';
+			}
+			elseif (in_array($type, $types_mp3))
+			{
+				return 'mp3';
+			}
+			else
+			{
+				return null;
+			}
+		}
+		else
+		{
+			return $type;
+		}
+	}
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-includes/SimplePie/Exception.php	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,52 @@
+<?php
+/**
+ * SimplePie
+ *
+ * A PHP-Based RSS and Atom Feed Framework.
+ * Takes the hard work out of managing a complete RSS/Atom solution.
+ *
+ * Copyright (c) 2004-2012, Ryan Parman, Geoffrey Sneddon, Ryan McCue, and contributors
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without modification, are
+ * permitted provided that the following conditions are met:
+ *
+ * 	* Redistributions of source code must retain the above copyright notice, this list of
+ * 	  conditions and the following disclaimer.
+ *
+ * 	* Redistributions in binary form must reproduce the above copyright notice, this list
+ * 	  of conditions and the following disclaimer in the documentation and/or other materials
+ * 	  provided with the distribution.
+ *
+ * 	* Neither the name of the SimplePie Team nor the names of its contributors may be used
+ * 	  to endorse or promote products derived from this software without specific prior
+ * 	  written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS
+ * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
+ * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS
+ * AND CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ * @package SimplePie
+ * @version 1.4-dev
+ * @copyright 2004-2012 Ryan Parman, Geoffrey Sneddon, Ryan McCue
+ * @author Ryan Parman
+ * @author Geoffrey Sneddon
+ * @author Ryan McCue
+ * @link http://simplepie.org/ SimplePie
+ * @license http://www.opensource.org/licenses/bsd-license.php BSD License
+ */
+
+/**
+ * General SimplePie exception class
+ *
+ * @package SimplePie
+ */
+class SimplePie_Exception extends Exception
+{
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-includes/SimplePie/File.php	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,292 @@
+<?php
+/**
+ * SimplePie
+ *
+ * A PHP-Based RSS and Atom Feed Framework.
+ * Takes the hard work out of managing a complete RSS/Atom solution.
+ *
+ * Copyright (c) 2004-2012, Ryan Parman, Geoffrey Sneddon, Ryan McCue, and contributors
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without modification, are
+ * permitted provided that the following conditions are met:
+ *
+ * 	* Redistributions of source code must retain the above copyright notice, this list of
+ * 	  conditions and the following disclaimer.
+ *
+ * 	* Redistributions in binary form must reproduce the above copyright notice, this list
+ * 	  of conditions and the following disclaimer in the documentation and/or other materials
+ * 	  provided with the distribution.
+ *
+ * 	* Neither the name of the SimplePie Team nor the names of its contributors may be used
+ * 	  to endorse or promote products derived from this software without specific prior
+ * 	  written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS
+ * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
+ * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS
+ * AND CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ * @package SimplePie
+ * @version 1.3.1
+ * @copyright 2004-2012 Ryan Parman, Geoffrey Sneddon, Ryan McCue
+ * @author Ryan Parman
+ * @author Geoffrey Sneddon
+ * @author Ryan McCue
+ * @link http://simplepie.org/ SimplePie
+ * @license http://www.opensource.org/licenses/bsd-license.php BSD License
+ */
+
+/**
+ * Used for fetching remote files and reading local files
+ *
+ * Supports HTTP 1.0 via cURL or fsockopen, with spotty HTTP 1.1 support
+ *
+ * This class can be overloaded with {@see SimplePie::set_file_class()}
+ *
+ * @package SimplePie
+ * @subpackage HTTP
+ * @todo Move to properly supporting RFC2616 (HTTP/1.1)
+ */
+class SimplePie_File
+{
+	var $url;
+	var $useragent;
+	var $success = true;
+	var $headers = array();
+	var $body;
+	var $status_code;
+	var $redirects = 0;
+	var $error;
+	var $method = SIMPLEPIE_FILE_SOURCE_NONE;
+
+	public function __construct($url, $timeout = 10, $redirects = 5, $headers = null, $useragent = null, $force_fsockopen = false)
+	{
+		if (class_exists('idna_convert'))
+		{
+			$idn = new idna_convert();
+			$parsed = SimplePie_Misc::parse_url($url);
+			$url = SimplePie_Misc::compress_parse_url($parsed['scheme'], $idn->encode($parsed['authority']), $parsed['path'], $parsed['query'], $parsed['fragment']);
+		}
+		$this->url = $url;
+		$this->useragent = $useragent;
+		if (preg_match('/^http(s)?:\/\//i', $url))
+		{
+			if ($useragent === null)
+			{
+				$useragent = ini_get('user_agent');
+				$this->useragent = $useragent;
+			}
+			if (!is_array($headers))
+			{
+				$headers = array();
+			}
+			if (!$force_fsockopen && function_exists('curl_exec'))
+			{
+				$this->method = SIMPLEPIE_FILE_SOURCE_REMOTE | SIMPLEPIE_FILE_SOURCE_CURL;
+				$fp = curl_init();
+				$headers2 = array();
+				foreach ($headers as $key => $value)
+				{
+					$headers2[] = "$key: $value";
+				}
+				if (version_compare(SimplePie_Misc::get_curl_version(), '7.10.5', '>='))
+				{
+					curl_setopt($fp, CURLOPT_ENCODING, '');
+				}
+				curl_setopt($fp, CURLOPT_URL, $url);
+				curl_setopt($fp, CURLOPT_HEADER, 1);
+				curl_setopt($fp, CURLOPT_RETURNTRANSFER, 1);
+				curl_setopt($fp, CURLOPT_TIMEOUT, $timeout);
+				curl_setopt($fp, CURLOPT_CONNECTTIMEOUT, $timeout);
+				curl_setopt($fp, CURLOPT_REFERER, $url);
+				curl_setopt($fp, CURLOPT_USERAGENT, $useragent);
+				curl_setopt($fp, CURLOPT_HTTPHEADER, $headers2);
+				if (!ini_get('open_basedir') && !ini_get('safe_mode') && version_compare(SimplePie_Misc::get_curl_version(), '7.15.2', '>='))
+				{
+					curl_setopt($fp, CURLOPT_FOLLOWLOCATION, 1);
+					curl_setopt($fp, CURLOPT_MAXREDIRS, $redirects);
+				}
+
+				$this->headers = curl_exec($fp);
+				if (curl_errno($fp) === 23 || curl_errno($fp) === 61)
+				{
+					curl_setopt($fp, CURLOPT_ENCODING, 'none');
+					$this->headers = curl_exec($fp);
+				}
+				if (curl_errno($fp))
+				{
+					$this->error = 'cURL error ' . curl_errno($fp) . ': ' . curl_error($fp);
+					$this->success = false;
+				}
+				else
+				{
+					$info = curl_getinfo($fp);
+					curl_close($fp);
+					$this->headers = explode("\r\n\r\n", $this->headers, $info['redirect_count'] + 1);
+					$this->headers = array_pop($this->headers);
+					$parser = new SimplePie_HTTP_Parser($this->headers);
+					if ($parser->parse())
+					{
+						$this->headers = $parser->headers;
+						$this->body = $parser->body;
+						$this->status_code = $parser->status_code;
+						if ((in_array($this->status_code, array(300, 301, 302, 303, 307)) || $this->status_code > 307 && $this->status_code < 400) && isset($this->headers['location']) && $this->redirects < $redirects)
+						{
+							$this->redirects++;
+							$location = SimplePie_Misc::absolutize_url($this->headers['location'], $url);
+							return $this->__construct($location, $timeout, $redirects, $headers, $useragent, $force_fsockopen);
+						}
+					}
+				}
+			}
+			else
+			{
+				$this->method = SIMPLEPIE_FILE_SOURCE_REMOTE | SIMPLEPIE_FILE_SOURCE_FSOCKOPEN;
+				$url_parts = parse_url($url);
+				$socket_host = $url_parts['host'];
+				if (isset($url_parts['scheme']) && strtolower($url_parts['scheme']) === 'https')
+				{
+					$socket_host = "ssl://$url_parts[host]";
+					$url_parts['port'] = 443;
+				}
+				if (!isset($url_parts['port']))
+				{
+					$url_parts['port'] = 80;
+				}
+				$fp = @fsockopen($socket_host, $url_parts['port'], $errno, $errstr, $timeout);
+				if (!$fp)
+				{
+					$this->error = 'fsockopen error: ' . $errstr;
+					$this->success = false;
+				}
+				else
+				{
+					stream_set_timeout($fp, $timeout);
+					if (isset($url_parts['path']))
+					{
+						if (isset($url_parts['query']))
+						{
+							$get = "$url_parts[path]?$url_parts[query]";
+						}
+						else
+						{
+							$get = $url_parts['path'];
+						}
+					}
+					else
+					{
+						$get = '/';
+					}
+					$out = "GET $get HTTP/1.1\r\n";
+					$out .= "Host: $url_parts[host]\r\n";
+					$out .= "User-Agent: $useragent\r\n";
+					if (extension_loaded('zlib'))
+					{
+						$out .= "Accept-Encoding: x-gzip,gzip,deflate\r\n";
+					}
+
+					if (isset($url_parts['user']) && isset($url_parts['pass']))
+					{
+						$out .= "Authorization: Basic " . base64_encode("$url_parts[user]:$url_parts[pass]") . "\r\n";
+					}
+					foreach ($headers as $key => $value)
+					{
+						$out .= "$key: $value\r\n";
+					}
+					$out .= "Connection: Close\r\n\r\n";
+					fwrite($fp, $out);
+
+					$info = stream_get_meta_data($fp);
+
+					$this->headers = '';
+					while (!$info['eof'] && !$info['timed_out'])
+					{
+						$this->headers .= fread($fp, 1160);
+						$info = stream_get_meta_data($fp);
+					}
+					if (!$info['timed_out'])
+					{
+						$parser = new SimplePie_HTTP_Parser($this->headers);
+						if ($parser->parse())
+						{
+							$this->headers = $parser->headers;
+							$this->body = $parser->body;
+							$this->status_code = $parser->status_code;
+							if ((in_array($this->status_code, array(300, 301, 302, 303, 307)) || $this->status_code > 307 && $this->status_code < 400) && isset($this->headers['location']) && $this->redirects < $redirects)
+							{
+								$this->redirects++;
+								$location = SimplePie_Misc::absolutize_url($this->headers['location'], $url);
+								return $this->__construct($location, $timeout, $redirects, $headers, $useragent, $force_fsockopen);
+							}
+							if (isset($this->headers['content-encoding']))
+							{
+								// Hey, we act dumb elsewhere, so let's do that here too
+								switch (strtolower(trim($this->headers['content-encoding'], "\x09\x0A\x0D\x20")))
+								{
+									case 'gzip':
+									case 'x-gzip':
+										$decoder = new SimplePie_gzdecode($this->body);
+										if (!$decoder->parse())
+										{
+											$this->error = 'Unable to decode HTTP "gzip" stream';
+											$this->success = false;
+										}
+										else
+										{
+											$this->body = $decoder->data;
+										}
+										break;
+
+									case 'deflate':
+										if (($decompressed = gzinflate($this->body)) !== false)
+										{
+											$this->body = $decompressed;
+										}
+										else if (($decompressed = gzuncompress($this->body)) !== false)
+										{
+											$this->body = $decompressed;
+										}
+										else if (function_exists('gzdecode') && ($decompressed = gzdecode($this->body)) !== false)
+										{
+											$this->body = $decompressed;
+										}
+										else
+										{
+											$this->error = 'Unable to decode HTTP "deflate" stream';
+											$this->success = false;
+										}
+										break;
+
+									default:
+										$this->error = 'Unknown content coding';
+										$this->success = false;
+								}
+							}
+						}
+					}
+					else
+					{
+						$this->error = 'fsocket timed out';
+						$this->success = false;
+					}
+					fclose($fp);
+				}
+			}
+		}
+		else
+		{
+			$this->method = SIMPLEPIE_FILE_SOURCE_LOCAL | SIMPLEPIE_FILE_SOURCE_FILE_GET_CONTENTS;
+			if (!$this->body = file_get_contents($url))
+			{
+				$this->error = 'file_get_contents could not read the file';
+				$this->success = false;
+			}
+		}
+	}
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-includes/SimplePie/HTTP/Parser.php	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,500 @@
+<?php
+/**
+ * SimplePie
+ *
+ * A PHP-Based RSS and Atom Feed Framework.
+ * Takes the hard work out of managing a complete RSS/Atom solution.
+ *
+ * Copyright (c) 2004-2012, Ryan Parman, Geoffrey Sneddon, Ryan McCue, and contributors
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without modification, are
+ * permitted provided that the following conditions are met:
+ *
+ * 	* Redistributions of source code must retain the above copyright notice, this list of
+ * 	  conditions and the following disclaimer.
+ *
+ * 	* Redistributions in binary form must reproduce the above copyright notice, this list
+ * 	  of conditions and the following disclaimer in the documentation and/or other materials
+ * 	  provided with the distribution.
+ *
+ * 	* Neither the name of the SimplePie Team nor the names of its contributors may be used
+ * 	  to endorse or promote products derived from this software without specific prior
+ * 	  written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS
+ * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
+ * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS
+ * AND CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ * @package SimplePie
+ * @version 1.3.1
+ * @copyright 2004-2012 Ryan Parman, Geoffrey Sneddon, Ryan McCue
+ * @author Ryan Parman
+ * @author Geoffrey Sneddon
+ * @author Ryan McCue
+ * @link http://simplepie.org/ SimplePie
+ * @license http://www.opensource.org/licenses/bsd-license.php BSD License
+ */
+
+
+/**
+ * HTTP Response Parser
+ *
+ * @package SimplePie
+ * @subpackage HTTP
+ */
+class SimplePie_HTTP_Parser
+{
+	/**
+	 * HTTP Version
+	 *
+	 * @var float
+	 */
+	public $http_version = 0.0;
+
+	/**
+	 * Status code
+	 *
+	 * @var int
+	 */
+	public $status_code = 0;
+
+	/**
+	 * Reason phrase
+	 *
+	 * @var string
+	 */
+	public $reason = '';
+
+	/**
+	 * Key/value pairs of the headers
+	 *
+	 * @var array
+	 */
+	public $headers = array();
+
+	/**
+	 * Body of the response
+	 *
+	 * @var string
+	 */
+	public $body = '';
+
+	/**
+	 * Current state of the state machine
+	 *
+	 * @var string
+	 */
+	protected $state = 'http_version';
+
+	/**
+	 * Input data
+	 *
+	 * @var string
+	 */
+	protected $data = '';
+
+	/**
+	 * Input data length (to avoid calling strlen() everytime this is needed)
+	 *
+	 * @var int
+	 */
+	protected $data_length = 0;
+
+	/**
+	 * Current position of the pointer
+	 *
+	 * @var int
+	 */
+	protected $position = 0;
+
+	/**
+	 * Name of the hedaer currently being parsed
+	 *
+	 * @var string
+	 */
+	protected $name = '';
+
+	/**
+	 * Value of the hedaer currently being parsed
+	 *
+	 * @var string
+	 */
+	protected $value = '';
+
+	/**
+	 * Create an instance of the class with the input data
+	 *
+	 * @param string $data Input data
+	 */
+	public function __construct($data)
+	{
+		$this->data = $data;
+		$this->data_length = strlen($this->data);
+	}
+
+	/**
+	 * Parse the input data
+	 *
+	 * @return bool true on success, false on failure
+	 */
+	public function parse()
+	{
+		while ($this->state && $this->state !== 'emit' && $this->has_data())
+		{
+			$state = $this->state;
+			$this->$state();
+		}
+		$this->data = '';
+		if ($this->state === 'emit' || $this->state === 'body')
+		{
+			return true;
+		}
+		else
+		{
+			$this->http_version = '';
+			$this->status_code = '';
+			$this->reason = '';
+			$this->headers = array();
+			$this->body = '';
+			return false;
+		}
+	}
+
+	/**
+	 * Check whether there is data beyond the pointer
+	 *
+	 * @return bool true if there is further data, false if not
+	 */
+	protected function has_data()
+	{
+		return (bool) ($this->position < $this->data_length);
+	}
+
+	/**
+	 * See if the next character is LWS
+	 *
+	 * @return bool true if the next character is LWS, false if not
+	 */
+	protected function is_linear_whitespace()
+	{
+		return (bool) ($this->data[$this->position] === "\x09"
+			|| $this->data[$this->position] === "\x20"
+			|| ($this->data[$this->position] === "\x0A"
+				&& isset($this->data[$this->position + 1])
+				&& ($this->data[$this->position + 1] === "\x09" || $this->data[$this->position + 1] === "\x20")));
+	}
+
+	/**
+	 * Parse the HTTP version
+	 */
+	protected function http_version()
+	{
+		if (strpos($this->data, "\x0A") !== false && strtoupper(substr($this->data, 0, 5)) === 'HTTP/')
+		{
+			$len = strspn($this->data, '0123456789.', 5);
+			$this->http_version = substr($this->data, 5, $len);
+			$this->position += 5 + $len;
+			if (substr_count($this->http_version, '.') <= 1)
+			{
+				$this->http_version = (float) $this->http_version;
+				$this->position += strspn($this->data, "\x09\x20", $this->position);
+				$this->state = 'status';
+			}
+			else
+			{
+				$this->state = false;
+			}
+		}
+		else
+		{
+			$this->state = false;
+		}
+	}
+
+	/**
+	 * Parse the status code
+	 */
+	protected function status()
+	{
+		if ($len = strspn($this->data, '0123456789', $this->position))
+		{
+			$this->status_code = (int) substr($this->data, $this->position, $len);
+			$this->position += $len;
+			$this->state = 'reason';
+		}
+		else
+		{
+			$this->state = false;
+		}
+	}
+
+	/**
+	 * Parse the reason phrase
+	 */
+	protected function reason()
+	{
+		$len = strcspn($this->data, "\x0A", $this->position);
+		$this->reason = trim(substr($this->data, $this->position, $len), "\x09\x0D\x20");
+		$this->position += $len + 1;
+		$this->state = 'new_line';
+	}
+
+	/**
+	 * Deal with a new line, shifting data around as needed
+	 */
+	protected function new_line()
+	{
+		$this->value = trim($this->value, "\x0D\x20");
+		if ($this->name !== '' && $this->value !== '')
+		{
+			$this->name = strtolower($this->name);
+			// We should only use the last Content-Type header. c.f. issue #1
+			if (isset($this->headers[$this->name]) && $this->name !== 'content-type')
+			{
+				$this->headers[$this->name] .= ', ' . $this->value;
+			}
+			else
+			{
+				$this->headers[$this->name] = $this->value;
+			}
+		}
+		$this->name = '';
+		$this->value = '';
+		if (substr($this->data[$this->position], 0, 2) === "\x0D\x0A")
+		{
+			$this->position += 2;
+			$this->state = 'body';
+		}
+		elseif ($this->data[$this->position] === "\x0A")
+		{
+			$this->position++;
+			$this->state = 'body';
+		}
+		else
+		{
+			$this->state = 'name';
+		}
+	}
+
+	/**
+	 * Parse a header name
+	 */
+	protected function name()
+	{
+		$len = strcspn($this->data, "\x0A:", $this->position);
+		if (isset($this->data[$this->position + $len]))
+		{
+			if ($this->data[$this->position + $len] === "\x0A")
+			{
+				$this->position += $len;
+				$this->state = 'new_line';
+			}
+			else
+			{
+				$this->name = substr($this->data, $this->position, $len);
+				$this->position += $len + 1;
+				$this->state = 'value';
+			}
+		}
+		else
+		{
+			$this->state = false;
+		}
+	}
+
+	/**
+	 * Parse LWS, replacing consecutive LWS characters with a single space
+	 */
+	protected function linear_whitespace()
+	{
+		do
+		{
+			if (substr($this->data, $this->position, 2) === "\x0D\x0A")
+			{
+				$this->position += 2;
+			}
+			elseif ($this->data[$this->position] === "\x0A")
+			{
+				$this->position++;
+			}
+			$this->position += strspn($this->data, "\x09\x20", $this->position);
+		} while ($this->has_data() && $this->is_linear_whitespace());
+		$this->value .= "\x20";
+	}
+
+	/**
+	 * See what state to move to while within non-quoted header values
+	 */
+	protected function value()
+	{
+		if ($this->is_linear_whitespace())
+		{
+			$this->linear_whitespace();
+		}
+		else
+		{
+			switch ($this->data[$this->position])
+			{
+				case '"':
+					// Workaround for ETags: we have to include the quotes as
+					// part of the tag.
+					if (strtolower($this->name) === 'etag')
+					{
+						$this->value .= '"';
+						$this->position++;
+						$this->state = 'value_char';
+						break;
+					}
+					$this->position++;
+					$this->state = 'quote';
+					break;
+
+				case "\x0A":
+					$this->position++;
+					$this->state = 'new_line';
+					break;
+
+				default:
+					$this->state = 'value_char';
+					break;
+			}
+		}
+	}
+
+	/**
+	 * Parse a header value while outside quotes
+	 */
+	protected function value_char()
+	{
+		$len = strcspn($this->data, "\x09\x20\x0A\"", $this->position);
+		$this->value .= substr($this->data, $this->position, $len);
+		$this->position += $len;
+		$this->state = 'value';
+	}
+
+	/**
+	 * See what state to move to while within quoted header values
+	 */
+	protected function quote()
+	{
+		if ($this->is_linear_whitespace())
+		{
+			$this->linear_whitespace();
+		}
+		else
+		{
+			switch ($this->data[$this->position])
+			{
+				case '"':
+					$this->position++;
+					$this->state = 'value';
+					break;
+
+				case "\x0A":
+					$this->position++;
+					$this->state = 'new_line';
+					break;
+
+				case '\\':
+					$this->position++;
+					$this->state = 'quote_escaped';
+					break;
+
+				default:
+					$this->state = 'quote_char';
+					break;
+			}
+		}
+	}
+
+	/**
+	 * Parse a header value while within quotes
+	 */
+	protected function quote_char()
+	{
+		$len = strcspn($this->data, "\x09\x20\x0A\"\\", $this->position);
+		$this->value .= substr($this->data, $this->position, $len);
+		$this->position += $len;
+		$this->state = 'value';
+	}
+
+	/**
+	 * Parse an escaped character within quotes
+	 */
+	protected function quote_escaped()
+	{
+		$this->value .= $this->data[$this->position];
+		$this->position++;
+		$this->state = 'quote';
+	}
+
+	/**
+	 * Parse the body
+	 */
+	protected function body()
+	{
+		$this->body = substr($this->data, $this->position);
+		if (!empty($this->headers['transfer-encoding']))
+		{
+			unset($this->headers['transfer-encoding']);
+			$this->state = 'chunked';
+		}
+		else
+		{
+			$this->state = 'emit';
+		}
+	}
+
+	/**
+	 * Parsed a "Transfer-Encoding: chunked" body
+	 */
+	protected function chunked()
+	{
+		if (!preg_match('/^([0-9a-f]+)[^\r\n]*\r\n/i', trim($this->body)))
+		{
+			$this->state = 'emit';
+			return;
+		}
+
+		$decoded = '';
+		$encoded = $this->body;
+
+		while (true)
+		{
+			$is_chunked = (bool) preg_match( '/^([0-9a-f]+)[^\r\n]*\r\n/i', $encoded, $matches );
+			if (!$is_chunked)
+			{
+				// Looks like it's not chunked after all
+				$this->state = 'emit';
+				return;
+			}
+
+			$length = hexdec(trim($matches[1]));
+			if ($length === 0)
+			{
+				// Ignore trailer headers
+				$this->state = 'emit';
+				$this->body = $decoded;
+				return;
+			}
+
+			$chunk_length = strlen($matches[0]);
+			$decoded .= $part = substr($encoded, $chunk_length, $length);
+			$encoded = substr($encoded, $chunk_length + $length + 2);
+
+			if (trim($encoded) === '0' || empty($encoded))
+			{
+				$this->state = 'emit';
+				$this->body = $decoded;
+				return;
+			}
+		}
+	}
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-includes/SimplePie/IRI.php	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,1238 @@
+<?php
+/**
+ * SimplePie
+ *
+ * A PHP-Based RSS and Atom Feed Framework.
+ * Takes the hard work out of managing a complete RSS/Atom solution.
+ *
+ * Copyright (c) 2004-2012, Ryan Parman, Geoffrey Sneddon, Ryan McCue, and contributors
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without modification, are
+ * permitted provided that the following conditions are met:
+ *
+ * 	* Redistributions of source code must retain the above copyright notice, this list of
+ * 	  conditions and the following disclaimer.
+ *
+ * 	* Redistributions in binary form must reproduce the above copyright notice, this list
+ * 	  of conditions and the following disclaimer in the documentation and/or other materials
+ * 	  provided with the distribution.
+ *
+ * 	* Neither the name of the SimplePie Team nor the names of its contributors may be used
+ * 	  to endorse or promote products derived from this software without specific prior
+ * 	  written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS
+ * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
+ * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS
+ * AND CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ * @package SimplePie
+ * @version 1.3.1
+ * @copyright 2004-2012 Ryan Parman, Geoffrey Sneddon, Ryan McCue
+ * @author Ryan Parman
+ * @author Geoffrey Sneddon
+ * @author Ryan McCue
+ * @link http://simplepie.org/ SimplePie
+ * @license http://www.opensource.org/licenses/bsd-license.php BSD License
+ */
+
+/**
+ * IRI parser/serialiser/normaliser
+ *
+ * @package SimplePie
+ * @subpackage HTTP
+ * @author Geoffrey Sneddon
+ * @author Steve Minutillo
+ * @author Ryan McCue
+ * @copyright 2007-2012 Geoffrey Sneddon, Steve Minutillo, Ryan McCue
+ * @license http://www.opensource.org/licenses/bsd-license.php
+ */
+class SimplePie_IRI
+{
+	/**
+	 * Scheme
+	 *
+	 * @var string
+	 */
+	protected $scheme = null;
+
+	/**
+	 * User Information
+	 *
+	 * @var string
+	 */
+	protected $iuserinfo = null;
+
+	/**
+	 * ihost
+	 *
+	 * @var string
+	 */
+	protected $ihost = null;
+
+	/**
+	 * Port
+	 *
+	 * @var string
+	 */
+	protected $port = null;
+
+	/**
+	 * ipath
+	 *
+	 * @var string
+	 */
+	protected $ipath = '';
+
+	/**
+	 * iquery
+	 *
+	 * @var string
+	 */
+	protected $iquery = null;
+
+	/**
+	 * ifragment
+	 *
+	 * @var string
+	 */
+	protected $ifragment = null;
+
+	/**
+	 * Normalization database
+	 *
+	 * Each key is the scheme, each value is an array with each key as the IRI
+	 * part and value as the default value for that part.
+	 */
+	protected $normalization = array(
+		'acap' => array(
+			'port' => 674
+		),
+		'dict' => array(
+			'port' => 2628
+		),
+		'file' => array(
+			'ihost' => 'localhost'
+		),
+		'http' => array(
+			'port' => 80,
+			'ipath' => '/'
+		),
+		'https' => array(
+			'port' => 443,
+			'ipath' => '/'
+		),
+	);
+
+	/**
+	 * Return the entire IRI when you try and read the object as a string
+	 *
+	 * @return string
+	 */
+	public function __toString()
+	{
+		return $this->get_iri();
+	}
+
+	/**
+	 * Overload __set() to provide access via properties
+	 *
+	 * @param string $name Property name
+	 * @param mixed $value Property value
+	 */
+	public function __set($name, $value)
+	{
+		if (method_exists($this, 'set_' . $name))
+		{
+			call_user_func(array($this, 'set_' . $name), $value);
+		}
+		elseif (
+			   $name === 'iauthority'
+			|| $name === 'iuserinfo'
+			|| $name === 'ihost'
+			|| $name === 'ipath'
+			|| $name === 'iquery'
+			|| $name === 'ifragment'
+		)
+		{
+			call_user_func(array($this, 'set_' . substr($name, 1)), $value);
+		}
+	}
+
+	/**
+	 * Overload __get() to provide access via properties
+	 *
+	 * @param string $name Property name
+	 * @return mixed
+	 */
+	public function __get($name)
+	{
+		// isset() returns false for null, we don't want to do that
+		// Also why we use array_key_exists below instead of isset()
+		$props = get_object_vars($this);
+
+		if (
+			$name === 'iri' ||
+			$name === 'uri' ||
+			$name === 'iauthority' ||
+			$name === 'authority'
+		)
+		{
+			$return = $this->{"get_$name"}();
+		}
+		elseif (array_key_exists($name, $props))
+		{
+			$return = $this->$name;
+		}
+		// host -> ihost
+		elseif (($prop = 'i' . $name) && array_key_exists($prop, $props))
+		{
+			$name = $prop;
+			$return = $this->$prop;
+		}
+		// ischeme -> scheme
+		elseif (($prop = substr($name, 1)) && array_key_exists($prop, $props))
+		{
+			$name = $prop;
+			$return = $this->$prop;
+		}
+		else
+		{
+			trigger_error('Undefined property: ' . get_class($this) . '::' . $name, E_USER_NOTICE);
+			$return = null;
+		}
+
+		if ($return === null && isset($this->normalization[$this->scheme][$name]))
+		{
+			return $this->normalization[$this->scheme][$name];
+		}
+		else
+		{
+			return $return;
+		}
+	}
+
+	/**
+	 * Overload __isset() to provide access via properties
+	 *
+	 * @param string $name Property name
+	 * @return bool
+	 */
+	public function __isset($name)
+	{
+		if (method_exists($this, 'get_' . $name) || isset($this->$name))
+		{
+			return true;
+		}
+		else
+		{
+			return false;
+		}
+	}
+
+	/**
+	 * Overload __unset() to provide access via properties
+	 *
+	 * @param string $name Property name
+	 */
+	public function __unset($name)
+	{
+		if (method_exists($this, 'set_' . $name))
+		{
+			call_user_func(array($this, 'set_' . $name), '');
+		}
+	}
+
+	/**
+	 * Create a new IRI object, from a specified string
+	 *
+	 * @param string $iri
+	 */
+	public function __construct($iri = null)
+	{
+		$this->set_iri($iri);
+	}
+
+	/**
+	 * Create a new IRI object by resolving a relative IRI
+	 *
+	 * Returns false if $base is not absolute, otherwise an IRI.
+	 *
+	 * @param IRI|string $base (Absolute) Base IRI
+	 * @param IRI|string $relative Relative IRI
+	 * @return IRI|false
+	 */
+	public static function absolutize($base, $relative)
+	{
+		if (!($relative instanceof SimplePie_IRI))
+		{
+			$relative = new SimplePie_IRI($relative);
+		}
+		if (!$relative->is_valid())
+		{
+			return false;
+		}
+		elseif ($relative->scheme !== null)
+		{
+			return clone $relative;
+		}
+		else
+		{
+			if (!($base instanceof SimplePie_IRI))
+			{
+				$base = new SimplePie_IRI($base);
+			}
+			if ($base->scheme !== null && $base->is_valid())
+			{
+				if ($relative->get_iri() !== '')
+				{
+					if ($relative->iuserinfo !== null || $relative->ihost !== null || $relative->port !== null)
+					{
+						$target = clone $relative;
+						$target->scheme = $base->scheme;
+					}
+					else
+					{
+						$target = new SimplePie_IRI;
+						$target->scheme = $base->scheme;
+						$target->iuserinfo = $base->iuserinfo;
+						$target->ihost = $base->ihost;
+						$target->port = $base->port;
+						if ($relative->ipath !== '')
+						{
+							if ($relative->ipath[0] === '/')
+							{
+								$target->ipath = $relative->ipath;
+							}
+							elseif (($base->iuserinfo !== null || $base->ihost !== null || $base->port !== null) && $base->ipath === '')
+							{
+								$target->ipath = '/' . $relative->ipath;
+							}
+							elseif (($last_segment = strrpos($base->ipath, '/')) !== false)
+							{
+								$target->ipath = substr($base->ipath, 0, $last_segment + 1) . $relative->ipath;
+							}
+							else
+							{
+								$target->ipath = $relative->ipath;
+							}
+							$target->ipath = $target->remove_dot_segments($target->ipath);
+							$target->iquery = $relative->iquery;
+						}
+						else
+						{
+							$target->ipath = $base->ipath;
+							if ($relative->iquery !== null)
+							{
+								$target->iquery = $relative->iquery;
+							}
+							elseif ($base->iquery !== null)
+							{
+								$target->iquery = $base->iquery;
+							}
+						}
+						$target->ifragment = $relative->ifragment;
+					}
+				}
+				else
+				{
+					$target = clone $base;
+					$target->ifragment = null;
+				}
+				$target->scheme_normalization();
+				return $target;
+			}
+			else
+			{
+				return false;
+			}
+		}
+	}
+
+	/**
+	 * Parse an IRI into scheme/authority/path/query/fragment segments
+	 *
+	 * @param string $iri
+	 * @return array
+	 */
+	protected function parse_iri($iri)
+	{
+		$iri = trim($iri, "\x20\x09\x0A\x0C\x0D");
+		if (preg_match('/^((?P<scheme>[^:\/?#]+):)?(\/\/(?P<authority>[^\/?#]*))?(?P<path>[^?#]*)(\?(?P<query>[^#]*))?(#(?P<fragment>.*))?$/', $iri, $match))
+		{
+			if ($match[1] === '')
+			{
+				$match['scheme'] = null;
+			}
+			if (!isset($match[3]) || $match[3] === '')
+			{
+				$match['authority'] = null;
+			}
+			if (!isset($match[5]))
+			{
+				$match['path'] = '';
+			}
+			if (!isset($match[6]) || $match[6] === '')
+			{
+				$match['query'] = null;
+			}
+			if (!isset($match[8]) || $match[8] === '')
+			{
+				$match['fragment'] = null;
+			}
+			return $match;
+		}
+		else
+		{
+			// This can occur when a paragraph is accidentally parsed as a URI
+			return false;
+		}
+	}
+
+	/**
+	 * Remove dot segments from a path
+	 *
+	 * @param string $input
+	 * @return string
+	 */
+	protected function remove_dot_segments($input)
+	{
+		$output = '';
+		while (strpos($input, './') !== false || strpos($input, '/.') !== false || $input === '.' || $input === '..')
+		{
+			// A: If the input buffer begins with a prefix of "../" or "./", then remove that prefix from the input buffer; otherwise,
+			if (strpos($input, '../') === 0)
+			{
+				$input = substr($input, 3);
+			}
+			elseif (strpos($input, './') === 0)
+			{
+				$input = substr($input, 2);
+			}
+			// B: if the input buffer begins with a prefix of "/./" or "/.", where "." is a complete path segment, then replace that prefix with "/" in the input buffer; otherwise,
+			elseif (strpos($input, '/./') === 0)
+			{
+				$input = substr($input, 2);
+			}
+			elseif ($input === '/.')
+			{
+				$input = '/';
+			}
+			// C: if the input buffer begins with a prefix of "/../" or "/..", where ".." is a complete path segment, then replace that prefix with "/" in the input buffer and remove the last segment and its preceding "/" (if any) from the output buffer; otherwise,
+			elseif (strpos($input, '/../') === 0)
+			{
+				$input = substr($input, 3);
+				$output = substr_replace($output, '', strrpos($output, '/'));
+			}
+			elseif ($input === '/..')
+			{
+				$input = '/';
+				$output = substr_replace($output, '', strrpos($output, '/'));
+			}
+			// D: if the input buffer consists only of "." or "..", then remove that from the input buffer; otherwise,
+			elseif ($input === '.' || $input === '..')
+			{
+				$input = '';
+			}
+			// E: move the first path segment in the input buffer to the end of the output buffer, including the initial "/" character (if any) and any subsequent characters up to, but not including, the next "/" character or the end of the input buffer
+			elseif (($pos = strpos($input, '/', 1)) !== false)
+			{
+				$output .= substr($input, 0, $pos);
+				$input = substr_replace($input, '', 0, $pos);
+			}
+			else
+			{
+				$output .= $input;
+				$input = '';
+			}
+		}
+		return $output . $input;
+	}
+
+	/**
+	 * Replace invalid character with percent encoding
+	 *
+	 * @param string $string Input string
+	 * @param string $extra_chars Valid characters not in iunreserved or
+	 *                            iprivate (this is ASCII-only)
+	 * @param bool $iprivate Allow iprivate
+	 * @return string
+	 */
+	protected function replace_invalid_with_pct_encoding($string, $extra_chars, $iprivate = false)
+	{
+		// Normalize as many pct-encoded sections as possible
+		$string = preg_replace_callback('/(?:%[A-Fa-f0-9]{2})+/', array($this, 'remove_iunreserved_percent_encoded'), $string);
+
+		// Replace invalid percent characters
+		$string = preg_replace('/%(?![A-Fa-f0-9]{2})/', '%25', $string);
+
+		// Add unreserved and % to $extra_chars (the latter is safe because all
+		// pct-encoded sections are now valid).
+		$extra_chars .= 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-._~%';
+
+		// Now replace any bytes that aren't allowed with their pct-encoded versions
+		$position = 0;
+		$strlen = strlen($string);
+		while (($position += strspn($string, $extra_chars, $position)) < $strlen)
+		{
+			$value = ord($string[$position]);
+
+			// Start position
+			$start = $position;
+
+			// By default we are valid
+			$valid = true;
+
+			// No one byte sequences are valid due to the while.
+			// Two byte sequence:
+			if (($value & 0xE0) === 0xC0)
+			{
+				$character = ($value & 0x1F) << 6;
+				$length = 2;
+				$remaining = 1;
+			}
+			// Three byte sequence:
+			elseif (($value & 0xF0) === 0xE0)
+			{
+				$character = ($value & 0x0F) << 12;
+				$length = 3;
+				$remaining = 2;
+			}
+			// Four byte sequence:
+			elseif (($value & 0xF8) === 0xF0)
+			{
+				$character = ($value & 0x07) << 18;
+				$length = 4;
+				$remaining = 3;
+			}
+			// Invalid byte:
+			else
+			{
+				$valid = false;
+				$length = 1;
+				$remaining = 0;
+			}
+
+			if ($remaining)
+			{
+				if ($position + $length <= $strlen)
+				{
+					for ($position++; $remaining; $position++)
+					{
+						$value = ord($string[$position]);
+
+						// Check that the byte is valid, then add it to the character:
+						if (($value & 0xC0) === 0x80)
+						{
+							$character |= ($value & 0x3F) << (--$remaining * 6);
+						}
+						// If it is invalid, count the sequence as invalid and reprocess the current byte:
+						else
+						{
+							$valid = false;
+							$position--;
+							break;
+						}
+					}
+				}
+				else
+				{
+					$position = $strlen - 1;
+					$valid = false;
+				}
+			}
+
+			// Percent encode anything invalid or not in ucschar
+			if (
+				// Invalid sequences
+				!$valid
+				// Non-shortest form sequences are invalid
+				|| $length > 1 && $character <= 0x7F
+				|| $length > 2 && $character <= 0x7FF
+				|| $length > 3 && $character <= 0xFFFF
+				// Outside of range of ucschar codepoints
+				// Noncharacters
+				|| ($character & 0xFFFE) === 0xFFFE
+				|| $character >= 0xFDD0 && $character <= 0xFDEF
+				|| (
+					// Everything else not in ucschar
+					   $character > 0xD7FF && $character < 0xF900
+					|| $character < 0xA0
+					|| $character > 0xEFFFD
+				)
+				&& (
+					// Everything not in iprivate, if it applies
+					   !$iprivate
+					|| $character < 0xE000
+					|| $character > 0x10FFFD
+				)
+			)
+			{
+				// If we were a character, pretend we weren't, but rather an error.
+				if ($valid)
+					$position--;
+
+				for ($j = $start; $j <= $position; $j++)
+				{
+					$string = substr_replace($string, sprintf('%%%02X', ord($string[$j])), $j, 1);
+					$j += 2;
+					$position += 2;
+					$strlen += 2;
+				}
+			}
+		}
+
+		return $string;
+	}
+
+	/**
+	 * Callback function for preg_replace_callback.
+	 *
+	 * Removes sequences of percent encoded bytes that represent UTF-8
+	 * encoded characters in iunreserved
+	 *
+	 * @param array $match PCRE match
+	 * @return string Replacement
+	 */
+	protected function remove_iunreserved_percent_encoded($match)
+	{
+		// As we just have valid percent encoded sequences we can just explode
+		// and ignore the first member of the returned array (an empty string).
+		$bytes = explode('%', $match[0]);
+
+		// Initialize the new string (this is what will be returned) and that
+		// there are no bytes remaining in the current sequence (unsurprising
+		// at the first byte!).
+		$string = '';
+		$remaining = 0;
+
+		// Loop over each and every byte, and set $value to its value
+		for ($i = 1, $len = count($bytes); $i < $len; $i++)
+		{
+			$value = hexdec($bytes[$i]);
+
+			// If we're the first byte of sequence:
+			if (!$remaining)
+			{
+				// Start position
+				$start = $i;
+
+				// By default we are valid
+				$valid = true;
+
+				// One byte sequence:
+				if ($value <= 0x7F)
+				{
+					$character = $value;
+					$length = 1;
+				}
+				// Two byte sequence:
+				elseif (($value & 0xE0) === 0xC0)
+				{
+					$character = ($value & 0x1F) << 6;
+					$length = 2;
+					$remaining = 1;
+				}
+				// Three byte sequence:
+				elseif (($value & 0xF0) === 0xE0)
+				{
+					$character = ($value & 0x0F) << 12;
+					$length = 3;
+					$remaining = 2;
+				}
+				// Four byte sequence:
+				elseif (($value & 0xF8) === 0xF0)
+				{
+					$character = ($value & 0x07) << 18;
+					$length = 4;
+					$remaining = 3;
+				}
+				// Invalid byte:
+				else
+				{
+					$valid = false;
+					$remaining = 0;
+				}
+			}
+			// Continuation byte:
+			else
+			{
+				// Check that the byte is valid, then add it to the character:
+				if (($value & 0xC0) === 0x80)
+				{
+					$remaining--;
+					$character |= ($value & 0x3F) << ($remaining * 6);
+				}
+				// If it is invalid, count the sequence as invalid and reprocess the current byte as the start of a sequence:
+				else
+				{
+					$valid = false;
+					$remaining = 0;
+					$i--;
+				}
+			}
+
+			// If we've reached the end of the current byte sequence, append it to Unicode::$data
+			if (!$remaining)
+			{
+				// Percent encode anything invalid or not in iunreserved
+				if (
+					// Invalid sequences
+					!$valid
+					// Non-shortest form sequences are invalid
+					|| $length > 1 && $character <= 0x7F
+					|| $length > 2 && $character <= 0x7FF
+					|| $length > 3 && $character <= 0xFFFF
+					// Outside of range of iunreserved codepoints
+					|| $character < 0x2D
+					|| $character > 0xEFFFD
+					// Noncharacters
+					|| ($character & 0xFFFE) === 0xFFFE
+					|| $character >= 0xFDD0 && $character <= 0xFDEF
+					// Everything else not in iunreserved (this is all BMP)
+					|| $character === 0x2F
+					|| $character > 0x39 && $character < 0x41
+					|| $character > 0x5A && $character < 0x61
+					|| $character > 0x7A && $character < 0x7E
+					|| $character > 0x7E && $character < 0xA0
+					|| $character > 0xD7FF && $character < 0xF900
+				)
+				{
+					for ($j = $start; $j <= $i; $j++)
+					{
+						$string .= '%' . strtoupper($bytes[$j]);
+					}
+				}
+				else
+				{
+					for ($j = $start; $j <= $i; $j++)
+					{
+						$string .= chr(hexdec($bytes[$j]));
+					}
+				}
+			}
+		}
+
+		// If we have any bytes left over they are invalid (i.e., we are
+		// mid-way through a multi-byte sequence)
+		if ($remaining)
+		{
+			for ($j = $start; $j < $len; $j++)
+			{
+				$string .= '%' . strtoupper($bytes[$j]);
+			}
+		}
+
+		return $string;
+	}
+
+	protected function scheme_normalization()
+	{
+		if (isset($this->normalization[$this->scheme]['iuserinfo']) && $this->iuserinfo === $this->normalization[$this->scheme]['iuserinfo'])
+		{
+			$this->iuserinfo = null;
+		}
+		if (isset($this->normalization[$this->scheme]['ihost']) && $this->ihost === $this->normalization[$this->scheme]['ihost'])
+		{
+			$this->ihost = null;
+		}
+		if (isset($this->normalization[$this->scheme]['port']) && $this->port === $this->normalization[$this->scheme]['port'])
+		{
+			$this->port = null;
+		}
+		if (isset($this->normalization[$this->scheme]['ipath']) && $this->ipath === $this->normalization[$this->scheme]['ipath'])
+		{
+			$this->ipath = '';
+		}
+		if (isset($this->normalization[$this->scheme]['iquery']) && $this->iquery === $this->normalization[$this->scheme]['iquery'])
+		{
+			$this->iquery = null;
+		}
+		if (isset($this->normalization[$this->scheme]['ifragment']) && $this->ifragment === $this->normalization[$this->scheme]['ifragment'])
+		{
+			$this->ifragment = null;
+		}
+	}
+
+	/**
+	 * Check if the object represents a valid IRI. This needs to be done on each
+	 * call as some things change depending on another part of the IRI.
+	 *
+	 * @return bool
+	 */
+	public function is_valid()
+	{
+		$isauthority = $this->iuserinfo !== null || $this->ihost !== null || $this->port !== null;
+		if ($this->ipath !== '' &&
+			(
+				$isauthority && (
+					$this->ipath[0] !== '/' ||
+					substr($this->ipath, 0, 2) === '//'
+				) ||
+				(
+					$this->scheme === null &&
+					!$isauthority &&
+					strpos($this->ipath, ':') !== false &&
+					(strpos($this->ipath, '/') === false ? true : strpos($this->ipath, ':') < strpos($this->ipath, '/'))
+				)
+			)
+		)
+		{
+			return false;
+		}
+
+		return true;
+	}
+
+	/**
+	 * Set the entire IRI. Returns true on success, false on failure (if there
+	 * are any invalid characters).
+	 *
+	 * @param string $iri
+	 * @return bool
+	 */
+	public function set_iri($iri)
+	{
+		static $cache;
+		if (!$cache)
+		{
+			$cache = array();
+		}
+
+		if ($iri === null)
+		{
+			return true;
+		}
+		elseif (isset($cache[$iri]))
+		{
+			list($this->scheme,
+				 $this->iuserinfo,
+				 $this->ihost,
+				 $this->port,
+				 $this->ipath,
+				 $this->iquery,
+				 $this->ifragment,
+				 $return) = $cache[$iri];
+			return $return;
+		}
+		else
+		{
+			$parsed = $this->parse_iri((string) $iri);
+			if (!$parsed)
+			{
+				return false;
+			}
+
+			$return = $this->set_scheme($parsed['scheme'])
+				&& $this->set_authority($parsed['authority'])
+				&& $this->set_path($parsed['path'])
+				&& $this->set_query($parsed['query'])
+				&& $this->set_fragment($parsed['fragment']);
+
+			$cache[$iri] = array($this->scheme,
+								 $this->iuserinfo,
+								 $this->ihost,
+								 $this->port,
+								 $this->ipath,
+								 $this->iquery,
+								 $this->ifragment,
+								 $return);
+			return $return;
+		}
+	}
+
+	/**
+	 * Set the scheme. Returns true on success, false on failure (if there are
+	 * any invalid characters).
+	 *
+	 * @param string $scheme
+	 * @return bool
+	 */
+	public function set_scheme($scheme)
+	{
+		if ($scheme === null)
+		{
+			$this->scheme = null;
+		}
+		elseif (!preg_match('/^[A-Za-z][0-9A-Za-z+\-.]*$/', $scheme))
+		{
+			$this->scheme = null;
+			return false;
+		}
+		else
+		{
+			$this->scheme = strtolower($scheme);
+		}
+		return true;
+	}
+
+	/**
+	 * Set the authority. Returns true on success, false on failure (if there are
+	 * any invalid characters).
+	 *
+	 * @param string $authority
+	 * @return bool
+	 */
+	public function set_authority($authority)
+	{
+		static $cache;
+		if (!$cache)
+			$cache = array();
+
+		if ($authority === null)
+		{
+			$this->iuserinfo = null;
+			$this->ihost = null;
+			$this->port = null;
+			return true;
+		}
+		elseif (isset($cache[$authority]))
+		{
+			list($this->iuserinfo,
+				 $this->ihost,
+				 $this->port,
+				 $return) = $cache[$authority];
+
+			return $return;
+		}
+		else
+		{
+			$remaining = $authority;
+			if (($iuserinfo_end = strrpos($remaining, '@')) !== false)
+			{
+				$iuserinfo = substr($remaining, 0, $iuserinfo_end);
+				$remaining = substr($remaining, $iuserinfo_end + 1);
+			}
+			else
+			{
+				$iuserinfo = null;
+			}
+			if (($port_start = strpos($remaining, ':', strpos($remaining, ']'))) !== false)
+			{
+				if (($port = substr($remaining, $port_start + 1)) === false)
+				{
+					$port = null;
+				}
+				$remaining = substr($remaining, 0, $port_start);
+			}
+			else
+			{
+				$port = null;
+			}
+
+			$return = $this->set_userinfo($iuserinfo) &&
+					  $this->set_host($remaining) &&
+					  $this->set_port($port);
+
+			$cache[$authority] = array($this->iuserinfo,
+									   $this->ihost,
+									   $this->port,
+									   $return);
+
+			return $return;
+		}
+	}
+
+	/**
+	 * Set the iuserinfo.
+	 *
+	 * @param string $iuserinfo
+	 * @return bool
+	 */
+	public function set_userinfo($iuserinfo)
+	{
+		if ($iuserinfo === null)
+		{
+			$this->iuserinfo = null;
+		}
+		else
+		{
+			$this->iuserinfo = $this->replace_invalid_with_pct_encoding($iuserinfo, '!$&\'()*+,;=:');
+			$this->scheme_normalization();
+		}
+
+		return true;
+	}
+
+	/**
+	 * Set the ihost. Returns true on success, false on failure (if there are
+	 * any invalid characters).
+	 *
+	 * @param string $ihost
+	 * @return bool
+	 */
+	public function set_host($ihost)
+	{
+		if ($ihost === null)
+		{
+			$this->ihost = null;
+			return true;
+		}
+		elseif (substr($ihost, 0, 1) === '[' && substr($ihost, -1) === ']')
+		{
+			if (SimplePie_Net_IPv6::check_ipv6(substr($ihost, 1, -1)))
+			{
+				$this->ihost = '[' . SimplePie_Net_IPv6::compress(substr($ihost, 1, -1)) . ']';
+			}
+			else
+			{
+				$this->ihost = null;
+				return false;
+			}
+		}
+		else
+		{
+			$ihost = $this->replace_invalid_with_pct_encoding($ihost, '!$&\'()*+,;=');
+
+			// Lowercase, but ignore pct-encoded sections (as they should
+			// remain uppercase). This must be done after the previous step
+			// as that can add unescaped characters.
+			$position = 0;
+			$strlen = strlen($ihost);
+			while (($position += strcspn($ihost, 'ABCDEFGHIJKLMNOPQRSTUVWXYZ%', $position)) < $strlen)
+			{
+				if ($ihost[$position] === '%')
+				{
+					$position += 3;
+				}
+				else
+				{
+					$ihost[$position] = strtolower($ihost[$position]);
+					$position++;
+				}
+			}
+
+			$this->ihost = $ihost;
+		}
+
+		$this->scheme_normalization();
+
+		return true;
+	}
+
+	/**
+	 * Set the port. Returns true on success, false on failure (if there are
+	 * any invalid characters).
+	 *
+	 * @param string $port
+	 * @return bool
+	 */
+	public function set_port($port)
+	{
+		if ($port === null)
+		{
+			$this->port = null;
+			return true;
+		}
+		elseif (strspn($port, '0123456789') === strlen($port))
+		{
+			$this->port = (int) $port;
+			$this->scheme_normalization();
+			return true;
+		}
+		else
+		{
+			$this->port = null;
+			return false;
+		}
+	}
+
+	/**
+	 * Set the ipath.
+	 *
+	 * @param string $ipath
+	 * @return bool
+	 */
+	public function set_path($ipath)
+	{
+		static $cache;
+		if (!$cache)
+		{
+			$cache = array();
+		}
+
+		$ipath = (string) $ipath;
+
+		if (isset($cache[$ipath]))
+		{
+			$this->ipath = $cache[$ipath][(int) ($this->scheme !== null)];
+		}
+		else
+		{
+			$valid = $this->replace_invalid_with_pct_encoding($ipath, '!$&\'()*+,;=@:/');
+			$removed = $this->remove_dot_segments($valid);
+
+			$cache[$ipath] = array($valid, $removed);
+			$this->ipath =  ($this->scheme !== null) ? $removed : $valid;
+		}
+
+		$this->scheme_normalization();
+		return true;
+	}
+
+	/**
+	 * Set the iquery.
+	 *
+	 * @param string $iquery
+	 * @return bool
+	 */
+	public function set_query($iquery)
+	{
+		if ($iquery === null)
+		{
+			$this->iquery = null;
+		}
+		else
+		{
+			$this->iquery = $this->replace_invalid_with_pct_encoding($iquery, '!$&\'()*+,;=:@/?', true);
+			$this->scheme_normalization();
+		}
+		return true;
+	}
+
+	/**
+	 * Set the ifragment.
+	 *
+	 * @param string $ifragment
+	 * @return bool
+	 */
+	public function set_fragment($ifragment)
+	{
+		if ($ifragment === null)
+		{
+			$this->ifragment = null;
+		}
+		else
+		{
+			$this->ifragment = $this->replace_invalid_with_pct_encoding($ifragment, '!$&\'()*+,;=:@/?');
+			$this->scheme_normalization();
+		}
+		return true;
+	}
+
+	/**
+	 * Convert an IRI to a URI (or parts thereof)
+	 *
+	 * @return string
+	 */
+	public function to_uri($string)
+	{
+		static $non_ascii;
+		if (!$non_ascii)
+		{
+			$non_ascii = implode('', range("\x80", "\xFF"));
+		}
+
+		$position = 0;
+		$strlen = strlen($string);
+		while (($position += strcspn($string, $non_ascii, $position)) < $strlen)
+		{
+			$string = substr_replace($string, sprintf('%%%02X', ord($string[$position])), $position, 1);
+			$position += 3;
+			$strlen += 2;
+		}
+
+		return $string;
+	}
+
+	/**
+	 * Get the complete IRI
+	 *
+	 * @return string
+	 */
+	public function get_iri()
+	{
+		if (!$this->is_valid())
+		{
+			return false;
+		}
+
+		$iri = '';
+		if ($this->scheme !== null)
+		{
+			$iri .= $this->scheme . ':';
+		}
+		if (($iauthority = $this->get_iauthority()) !== null)
+		{
+			$iri .= '//' . $iauthority;
+		}
+		if ($this->ipath !== '')
+		{
+			$iri .= $this->ipath;
+		}
+		elseif (!empty($this->normalization[$this->scheme]['ipath']) && $iauthority !== null && $iauthority !== '')
+		{
+			$iri .= $this->normalization[$this->scheme]['ipath'];
+		}
+		if ($this->iquery !== null)
+		{
+			$iri .= '?' . $this->iquery;
+		}
+		if ($this->ifragment !== null)
+		{
+			$iri .= '#' . $this->ifragment;
+		}
+
+		return $iri;
+	}
+
+	/**
+	 * Get the complete URI
+	 *
+	 * @return string
+	 */
+	public function get_uri()
+	{
+		return $this->to_uri($this->get_iri());
+	}
+
+	/**
+	 * Get the complete iauthority
+	 *
+	 * @return string
+	 */
+	protected function get_iauthority()
+	{
+		if ($this->iuserinfo !== null || $this->ihost !== null || $this->port !== null)
+		{
+			$iauthority = '';
+			if ($this->iuserinfo !== null)
+			{
+				$iauthority .= $this->iuserinfo . '@';
+			}
+			if ($this->ihost !== null)
+			{
+				$iauthority .= $this->ihost;
+			}
+			if ($this->port !== null)
+			{
+				$iauthority .= ':' . $this->port;
+			}
+			return $iauthority;
+		}
+		else
+		{
+			return null;
+		}
+	}
+
+	/**
+	 * Get the complete authority
+	 *
+	 * @return string
+	 */
+	protected function get_authority()
+	{
+		$iauthority = $this->get_iauthority();
+		if (is_string($iauthority))
+			return $this->to_uri($iauthority);
+		else
+			return $iauthority;
+	}
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-includes/SimplePie/Item.php	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,2964 @@
+<?php
+/**
+ * SimplePie
+ *
+ * A PHP-Based RSS and Atom Feed Framework.
+ * Takes the hard work out of managing a complete RSS/Atom solution.
+ *
+ * Copyright (c) 2004-2012, Ryan Parman, Geoffrey Sneddon, Ryan McCue, and contributors
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without modification, are
+ * permitted provided that the following conditions are met:
+ *
+ * 	* Redistributions of source code must retain the above copyright notice, this list of
+ * 	  conditions and the following disclaimer.
+ *
+ * 	* Redistributions in binary form must reproduce the above copyright notice, this list
+ * 	  of conditions and the following disclaimer in the documentation and/or other materials
+ * 	  provided with the distribution.
+ *
+ * 	* Neither the name of the SimplePie Team nor the names of its contributors may be used
+ * 	  to endorse or promote products derived from this software without specific prior
+ * 	  written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS
+ * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
+ * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS
+ * AND CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ * @package SimplePie
+ * @version 1.3.1
+ * @copyright 2004-2012 Ryan Parman, Geoffrey Sneddon, Ryan McCue
+ * @author Ryan Parman
+ * @author Geoffrey Sneddon
+ * @author Ryan McCue
+ * @link http://simplepie.org/ SimplePie
+ * @license http://www.opensource.org/licenses/bsd-license.php BSD License
+ */
+
+
+/**
+ * Manages all item-related data
+ *
+ * Used by {@see SimplePie::get_item()} and {@see SimplePie::get_items()}
+ *
+ * This class can be overloaded with {@see SimplePie::set_item_class()}
+ *
+ * @package SimplePie
+ * @subpackage API
+ */
+class SimplePie_Item
+{
+	/**
+	 * Parent feed
+	 *
+	 * @access private
+	 * @var SimplePie
+	 */
+	var $feed;
+
+	/**
+	 * Raw data
+	 *
+	 * @access private
+	 * @var array
+	 */
+	var $data = array();
+
+	/**
+	 * Registry object
+	 *
+	 * @see set_registry
+	 * @var SimplePie_Registry
+	 */
+	protected $registry;
+
+	/**
+	 * Create a new item object
+	 *
+	 * This is usually used by {@see SimplePie::get_items} and
+	 * {@see SimplePie::get_item}. Avoid creating this manually.
+	 *
+	 * @param SimplePie $feed Parent feed
+	 * @param array $data Raw data
+	 */
+	public function __construct($feed, $data)
+	{
+		$this->feed = $feed;
+		$this->data = $data;
+	}
+
+	/**
+	 * Set the registry handler
+	 *
+	 * This is usually used by {@see SimplePie_Registry::create}
+	 *
+	 * @since 1.3
+	 * @param SimplePie_Registry $registry
+	 */
+	public function set_registry(SimplePie_Registry $registry)
+	{
+		$this->registry = $registry;
+	}
+
+	/**
+	 * Get a string representation of the item
+	 *
+	 * @return string
+	 */
+	public function __toString()
+	{
+		return md5(serialize($this->data));
+	}
+
+	/**
+	 * Remove items that link back to this before destroying this object
+	 */
+	public function __destruct()
+	{
+		if ((version_compare(PHP_VERSION, '5.3', '<') || !gc_enabled()) && !ini_get('zend.ze1_compatibility_mode'))
+		{
+			unset($this->feed);
+		}
+	}
+
+	/**
+	 * Get data for an item-level element
+	 *
+	 * This method allows you to get access to ANY element/attribute that is a
+	 * sub-element of the item/entry tag.
+	 *
+	 * See {@see SimplePie::get_feed_tags()} for a description of the return value
+	 *
+	 * @since 1.0
+	 * @see http://simplepie.org/wiki/faq/supported_xml_namespaces
+	 * @param string $namespace The URL of the XML namespace of the elements you're trying to access
+	 * @param string $tag Tag name
+	 * @return array
+	 */
+	public function get_item_tags($namespace, $tag)
+	{
+		if (isset($this->data['child'][$namespace][$tag]))
+		{
+			return $this->data['child'][$namespace][$tag];
+		}
+		else
+		{
+			return null;
+		}
+	}
+
+	/**
+	 * Get the base URL value from the parent feed
+	 *
+	 * Uses `<xml:base>`
+	 *
+	 * @param array $element
+	 * @return string
+	 */
+	public function get_base($element = array())
+	{
+		return $this->feed->get_base($element);
+	}
+
+	/**
+	 * Sanitize feed data
+	 *
+	 * @access private
+	 * @see SimplePie::sanitize()
+	 * @param string $data Data to sanitize
+	 * @param int $type One of the SIMPLEPIE_CONSTRUCT_* constants
+	 * @param string $base Base URL to resolve URLs against
+	 * @return string Sanitized data
+	 */
+	public function sanitize($data, $type, $base = '')
+	{
+		return $this->feed->sanitize($data, $type, $base);
+	}
+
+	/**
+	 * Get the parent feed
+	 *
+	 * Note: this may not work as you think for multifeeds!
+	 *
+	 * @link http://simplepie.org/faq/typical_multifeed_gotchas#missing_data_from_feed
+	 * @since 1.0
+	 * @return SimplePie
+	 */
+	public function get_feed()
+	{
+		return $this->feed;
+	}
+
+	/**
+	 * Get the unique identifier for the item
+	 *
+	 * This is usually used when writing code to check for new items in a feed.
+	 *
+	 * Uses `<atom:id>`, `<guid>`, `<dc:identifier>` or the `about` attribute
+	 * for RDF. If none of these are supplied (or `$hash` is true), creates an
+	 * MD5 hash based on the permalink and title. If either of those are not
+	 * supplied, creates a hash based on the full feed data.
+	 *
+	 * @since Beta 2
+	 * @param boolean $hash Should we force using a hash instead of the supplied ID?
+	 * @return string
+	 */
+	public function get_id($hash = false)
+	{
+		if (!$hash)
+		{
+			if ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'id'))
+			{
+				return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
+			}
+			elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_03, 'id'))
+			{
+				return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
+			}
+			elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_RSS_20, 'guid'))
+			{
+				return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
+			}
+			elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_DC_11, 'identifier'))
+			{
+				return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
+			}
+			elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_DC_10, 'identifier'))
+			{
+				return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
+			}
+			elseif (isset($this->data['attribs'][SIMPLEPIE_NAMESPACE_RDF]['about']))
+			{
+				return $this->sanitize($this->data['attribs'][SIMPLEPIE_NAMESPACE_RDF]['about'], SIMPLEPIE_CONSTRUCT_TEXT);
+			}
+			elseif (($return = $this->get_permalink()) !== null)
+			{
+				return $return;
+			}
+			elseif (($return = $this->get_title()) !== null)
+			{
+				return $return;
+			}
+		}
+		if ($this->get_permalink() !== null || $this->get_title() !== null)
+		{
+			return md5($this->get_permalink() . $this->get_title());
+		}
+		else
+		{
+			return md5(serialize($this->data));
+		}
+	}
+
+	/**
+	 * Get the title of the item
+	 *
+	 * Uses `<atom:title>`, `<title>` or `<dc:title>`
+	 *
+	 * @since Beta 2 (previously called `get_item_title` since 0.8)
+	 * @return string|null
+	 */
+	public function get_title()
+	{
+		if (!isset($this->data['title']))
+		{
+			if ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'title'))
+			{
+				$this->data['title'] = $this->sanitize($return[0]['data'], $this->registry->call('Misc', 'atom_10_construct_type', array($return[0]['attribs'])), $this->get_base($return[0]));
+			}
+			elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_03, 'title'))
+			{
+				$this->data['title'] = $this->sanitize($return[0]['data'], $this->registry->call('Misc', 'atom_03_construct_type', array($return[0]['attribs'])), $this->get_base($return[0]));
+			}
+			elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_RSS_10, 'title'))
+			{
+				$this->data['title'] = $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_MAYBE_HTML, $this->get_base($return[0]));
+			}
+			elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_RSS_090, 'title'))
+			{
+				$this->data['title'] = $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_MAYBE_HTML, $this->get_base($return[0]));
+			}
+			elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_RSS_20, 'title'))
+			{
+				$this->data['title'] = $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_MAYBE_HTML, $this->get_base($return[0]));
+			}
+			elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_DC_11, 'title'))
+			{
+				$this->data['title'] = $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
+			}
+			elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_DC_10, 'title'))
+			{
+				$this->data['title'] = $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
+			}
+			else
+			{
+				$this->data['title'] = null;
+			}
+		}
+		return $this->data['title'];
+	}
+
+	/**
+	 * Get the content for the item
+	 *
+	 * Prefers summaries over full content , but will return full content if a
+	 * summary does not exist.
+	 *
+	 * To prefer full content instead, use {@see get_content}
+	 *
+	 * Uses `<atom:summary>`, `<description>`, `<dc:description>` or
+	 * `<itunes:subtitle>`
+	 *
+	 * @since 0.8
+	 * @param boolean $description_only Should we avoid falling back to the content?
+	 * @return string|null
+	 */
+	public function get_description($description_only = false)
+	{
+		if ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'summary'))
+		{
+			return $this->sanitize($return[0]['data'], $this->registry->call('Misc', 'atom_10_construct_type', array($return[0]['attribs'])), $this->get_base($return[0]));
+		}
+		elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_03, 'summary'))
+		{
+			return $this->sanitize($return[0]['data'], $this->registry->call('Misc', 'atom_03_construct_type', array($return[0]['attribs'])), $this->get_base($return[0]));
+		}
+		elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_RSS_10, 'description'))
+		{
+			return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_MAYBE_HTML, $this->get_base($return[0]));
+		}
+		elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_RSS_20, 'description'))
+		{
+			return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_HTML, $this->get_base($return[0]));
+		}
+		elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_DC_11, 'description'))
+		{
+			return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
+		}
+		elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_DC_10, 'description'))
+		{
+			return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
+		}
+		elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_ITUNES, 'summary'))
+		{
+			return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_HTML, $this->get_base($return[0]));
+		}
+		elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_ITUNES, 'subtitle'))
+		{
+			return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
+		}
+		elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_RSS_090, 'description'))
+		{
+			return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_HTML);
+		}
+
+		elseif (!$description_only)
+		{
+			return $this->get_content(true);
+		}
+		else
+		{
+			return null;
+		}
+	}
+
+	/**
+	 * Get the content for the item
+	 *
+	 * Prefers full content over summaries, but will return a summary if full
+	 * content does not exist.
+	 *
+	 * To prefer summaries instead, use {@see get_description}
+	 *
+	 * Uses `<atom:content>` or `<content:encoded>` (RSS 1.0 Content Module)
+	 *
+	 * @since 1.0
+	 * @param boolean $content_only Should we avoid falling back to the description?
+	 * @return string|null
+	 */
+	public function get_content($content_only = false)
+	{
+		if ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'content'))
+		{
+			return $this->sanitize($return[0]['data'], $this->registry->call('Misc', 'atom_10_content_construct_type', array($return[0]['attribs'])), $this->get_base($return[0]));
+		}
+		elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_03, 'content'))
+		{
+			return $this->sanitize($return[0]['data'], $this->registry->call('Misc', 'atom_03_construct_type', array($return[0]['attribs'])), $this->get_base($return[0]));
+		}
+		elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_RSS_10_MODULES_CONTENT, 'encoded'))
+		{
+			return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_HTML, $this->get_base($return[0]));
+		}
+		elseif (!$content_only)
+		{
+			return $this->get_description(true);
+		}
+		else
+		{
+			return null;
+		}
+	}
+
+	/**
+	 * Get a category for the item
+	 *
+	 * @since Beta 3 (previously called `get_categories()` since Beta 2)
+	 * @param int $key The category that you want to return.  Remember that arrays begin with 0, not 1
+	 * @return SimplePie_Category|null
+	 */
+	public function get_category($key = 0)
+	{
+		$categories = $this->get_categories();
+		if (isset($categories[$key]))
+		{
+			return $categories[$key];
+		}
+		else
+		{
+			return null;
+		}
+	}
+
+	/**
+	 * Get all categories for the item
+	 *
+	 * Uses `<atom:category>`, `<category>` or `<dc:subject>`
+	 *
+	 * @since Beta 3
+	 * @return array|null List of {@see SimplePie_Category} objects
+	 */
+	public function get_categories()
+	{
+		$categories = array();
+
+		foreach ((array) $this->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'category') as $category)
+		{
+			$term = null;
+			$scheme = null;
+			$label = null;
+			if (isset($category['attribs']['']['term']))
+			{
+				$term = $this->sanitize($category['attribs']['']['term'], SIMPLEPIE_CONSTRUCT_TEXT);
+			}
+			if (isset($category['attribs']['']['scheme']))
+			{
+				$scheme = $this->sanitize($category['attribs']['']['scheme'], SIMPLEPIE_CONSTRUCT_TEXT);
+			}
+			if (isset($category['attribs']['']['label']))
+			{
+				$label = $this->sanitize($category['attribs']['']['label'], SIMPLEPIE_CONSTRUCT_TEXT);
+			}
+			$categories[] = $this->registry->create('Category', array($term, $scheme, $label));
+		}
+		foreach ((array) $this->get_item_tags(SIMPLEPIE_NAMESPACE_RSS_20, 'category') as $category)
+		{
+			// This is really the label, but keep this as the term also for BC.
+			// Label will also work on retrieving because that falls back to term.
+			$term = $this->sanitize($category['data'], SIMPLEPIE_CONSTRUCT_TEXT);
+			if (isset($category['attribs']['']['domain']))
+			{
+				$scheme = $this->sanitize($category['attribs']['']['domain'], SIMPLEPIE_CONSTRUCT_TEXT);
+			}
+			else
+			{
+				$scheme = null;
+			}
+			$categories[] = $this->registry->create('Category', array($term, $scheme, null));
+		}
+		foreach ((array) $this->get_item_tags(SIMPLEPIE_NAMESPACE_DC_11, 'subject') as $category)
+		{
+			$categories[] = $this->registry->create('Category', array($this->sanitize($category['data'], SIMPLEPIE_CONSTRUCT_TEXT), null, null));
+		}
+		foreach ((array) $this->get_item_tags(SIMPLEPIE_NAMESPACE_DC_10, 'subject') as $category)
+		{
+			$categories[] = $this->registry->create('Category', array($this->sanitize($category['data'], SIMPLEPIE_CONSTRUCT_TEXT), null, null));
+		}
+
+		if (!empty($categories))
+		{
+			return array_unique($categories);
+		}
+		else
+		{
+			return null;
+		}
+	}
+
+	/**
+	 * Get an author for the item
+	 *
+	 * @since Beta 2
+	 * @param int $key The author that you want to return.  Remember that arrays begin with 0, not 1
+	 * @return SimplePie_Author|null
+	 */
+	public function get_author($key = 0)
+	{
+		$authors = $this->get_authors();
+		if (isset($authors[$key]))
+		{
+			return $authors[$key];
+		}
+		else
+		{
+			return null;
+		}
+	}
+
+	/**
+	 * Get a contributor for the item
+	 *
+	 * @since 1.1
+	 * @param int $key The contrbutor that you want to return.  Remember that arrays begin with 0, not 1
+	 * @return SimplePie_Author|null
+	 */
+	public function get_contributor($key = 0)
+	{
+		$contributors = $this->get_contributors();
+		if (isset($contributors[$key]))
+		{
+			return $contributors[$key];
+		}
+		else
+		{
+			return null;
+		}
+	}
+
+	/**
+	 * Get all contributors for the item
+	 *
+	 * Uses `<atom:contributor>`
+	 *
+	 * @since 1.1
+	 * @return array|null List of {@see SimplePie_Author} objects
+	 */
+	public function get_contributors()
+	{
+		$contributors = array();
+		foreach ((array) $this->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'contributor') as $contributor)
+		{
+			$name = null;
+			$uri = null;
+			$email = null;
+			if (isset($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['name'][0]['data']))
+			{
+				$name = $this->sanitize($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['name'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
+			}
+			if (isset($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['uri'][0]['data']))
+			{
+				$uri = $this->sanitize($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['uri'][0]['data'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['uri'][0]));
+			}
+			if (isset($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['email'][0]['data']))
+			{
+				$email = $this->sanitize($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['email'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
+			}
+			if ($name !== null || $email !== null || $uri !== null)
+			{
+				$contributors[] = $this->registry->create('Author', array($name, $uri, $email));
+			}
+		}
+		foreach ((array) $this->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_03, 'contributor') as $contributor)
+		{
+			$name = null;
+			$url = null;
+			$email = null;
+			if (isset($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['name'][0]['data']))
+			{
+				$name = $this->sanitize($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['name'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
+			}
+			if (isset($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['url'][0]['data']))
+			{
+				$url = $this->sanitize($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['url'][0]['data'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['url'][0]));
+			}
+			if (isset($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['email'][0]['data']))
+			{
+				$email = $this->sanitize($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['email'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
+			}
+			if ($name !== null || $email !== null || $url !== null)
+			{
+				$contributors[] = $this->registry->create('Author', array($name, $url, $email));
+			}
+		}
+
+		if (!empty($contributors))
+		{
+			return array_unique($contributors);
+		}
+		else
+		{
+			return null;
+		}
+	}
+
+	/**
+	 * Get all authors for the item
+	 *
+	 * Uses `<atom:author>`, `<author>`, `<dc:creator>` or `<itunes:author>`
+	 *
+	 * @since Beta 2
+	 * @return array|null List of {@see SimplePie_Author} objects
+	 */
+	public function get_authors()
+	{
+		$authors = array();
+		foreach ((array) $this->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'author') as $author)
+		{
+			$name = null;
+			$uri = null;
+			$email = null;
+			if (isset($author['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['name'][0]['data']))
+			{
+				$name = $this->sanitize($author['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['name'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
+			}
+			if (isset($author['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['uri'][0]['data']))
+			{
+				$uri = $this->sanitize($author['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['uri'][0]['data'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($author['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['uri'][0]));
+			}
+			if (isset($author['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['email'][0]['data']))
+			{
+				$email = $this->sanitize($author['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['email'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
+			}
+			if ($name !== null || $email !== null || $uri !== null)
+			{
+				$authors[] = $this->registry->create('Author', array($name, $uri, $email));
+			}
+		}
+		if ($author = $this->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_03, 'author'))
+		{
+			$name = null;
+			$url = null;
+			$email = null;
+			if (isset($author[0]['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['name'][0]['data']))
+			{
+				$name = $this->sanitize($author[0]['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['name'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
+			}
+			if (isset($author[0]['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['url'][0]['data']))
+			{
+				$url = $this->sanitize($author[0]['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['url'][0]['data'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($author[0]['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['url'][0]));
+			}
+			if (isset($author[0]['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['email'][0]['data']))
+			{
+				$email = $this->sanitize($author[0]['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['email'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
+			}
+			if ($name !== null || $email !== null || $url !== null)
+			{
+				$authors[] = $this->registry->create('Author', array($name, $url, $email));
+			}
+		}
+		if ($author = $this->get_item_tags(SIMPLEPIE_NAMESPACE_RSS_20, 'author'))
+		{
+			$authors[] = $this->registry->create('Author', array(null, null, $this->sanitize($author[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT)));
+		}
+		foreach ((array) $this->get_item_tags(SIMPLEPIE_NAMESPACE_DC_11, 'creator') as $author)
+		{
+			$authors[] = $this->registry->create('Author', array($this->sanitize($author['data'], SIMPLEPIE_CONSTRUCT_TEXT), null, null));
+		}
+		foreach ((array) $this->get_item_tags(SIMPLEPIE_NAMESPACE_DC_10, 'creator') as $author)
+		{
+			$authors[] = $this->registry->create('Author', array($this->sanitize($author['data'], SIMPLEPIE_CONSTRUCT_TEXT), null, null));
+		}
+		foreach ((array) $this->get_item_tags(SIMPLEPIE_NAMESPACE_ITUNES, 'author') as $author)
+		{
+			$authors[] = $this->registry->create('Author', array($this->sanitize($author['data'], SIMPLEPIE_CONSTRUCT_TEXT), null, null));
+		}
+
+		if (!empty($authors))
+		{
+			return array_unique($authors);
+		}
+		elseif (($source = $this->get_source()) && ($authors = $source->get_authors()))
+		{
+			return $authors;
+		}
+		elseif ($authors = $this->feed->get_authors())
+		{
+			return $authors;
+		}
+		else
+		{
+			return null;
+		}
+	}
+
+	/**
+	 * Get the copyright info for the item
+	 *
+	 * Uses `<atom:rights>` or `<dc:rights>`
+	 *
+	 * @since 1.1
+	 * @return string
+	 */
+	public function get_copyright()
+	{
+		if ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'rights'))
+		{
+			return $this->sanitize($return[0]['data'], $this->registry->call('Misc', 'atom_10_construct_type', array($return[0]['attribs'])), $this->get_base($return[0]));
+		}
+		elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_DC_11, 'rights'))
+		{
+			return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
+		}
+		elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_DC_10, 'rights'))
+		{
+			return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
+		}
+		else
+		{
+			return null;
+		}
+	}
+
+	/**
+	 * Get the posting date/time for the item
+	 *
+	 * Uses `<atom:published>`, `<atom:updated>`, `<atom:issued>`,
+	 * `<atom:modified>`, `<pubDate>` or `<dc:date>`
+	 *
+	 * Note: obeys PHP's timezone setting. To get a UTC date/time, use
+	 * {@see get_gmdate}
+	 *
+	 * @since Beta 2 (previously called `get_item_date` since 0.8)
+	 *
+	 * @param string $date_format Supports any PHP date format from {@see http://php.net/date} (empty for the raw data)
+	 * @return int|string|null
+	 */
+	public function get_date($date_format = 'j F Y, g:i a')
+	{
+		if (!isset($this->data['date']))
+		{
+			if ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'published'))
+			{
+				$this->data['date']['raw'] = $return[0]['data'];
+			}
+			elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'updated'))
+			{
+				$this->data['date']['raw'] = $return[0]['data'];
+			}
+			elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_03, 'issued'))
+			{
+				$this->data['date']['raw'] = $return[0]['data'];
+			}
+			elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_03, 'created'))
+			{
+				$this->data['date']['raw'] = $return[0]['data'];
+			}
+			elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_03, 'modified'))
+			{
+				$this->data['date']['raw'] = $return[0]['data'];
+			}
+			elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_RSS_20, 'pubDate'))
+			{
+				$this->data['date']['raw'] = $return[0]['data'];
+			}
+			elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_DC_11, 'date'))
+			{
+				$this->data['date']['raw'] = $return[0]['data'];
+			}
+			elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_DC_10, 'date'))
+			{
+				$this->data['date']['raw'] = $return[0]['data'];
+			}
+
+			if (!empty($this->data['date']['raw']))
+			{
+				$parser = $this->registry->call('Parse_Date', 'get');
+				$this->data['date']['parsed'] = $parser->parse($this->data['date']['raw']);
+			}
+			else
+			{
+				$this->data['date'] = null;
+			}
+		}
+		if ($this->data['date'])
+		{
+			$date_format = (string) $date_format;
+			switch ($date_format)
+			{
+				case '':
+					return $this->sanitize($this->data['date']['raw'], SIMPLEPIE_CONSTRUCT_TEXT);
+
+				case 'U':
+					return $this->data['date']['parsed'];
+
+				default:
+					return date($date_format, $this->data['date']['parsed']);
+			}
+		}
+		else
+		{
+			return null;
+		}
+	}
+
+	/**
+	 * Get the update date/time for the item
+	 *
+	 * Uses `<atom:updated>`
+	 *
+	 * Note: obeys PHP's timezone setting. To get a UTC date/time, use
+	 * {@see get_gmdate}
+	 *
+	 * @param string $date_format Supports any PHP date format from {@see http://php.net/date} (empty for the raw data)
+	 * @return int|string|null
+	 */
+	public function get_updated_date($date_format = 'j F Y, g:i a')
+	{
+		if (!isset($this->data['updated']))
+		{
+			if ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'updated'))
+			{
+				$this->data['updated']['raw'] = $return[0]['data'];
+			}
+
+			if (!empty($this->data['updated']['raw']))
+			{
+				$parser = $this->registry->call('Parse_Date', 'get');
+				$this->data['updated']['parsed'] = $parser->parse($this->data['date']['raw']);
+			}
+			else
+			{
+				$this->data['updated'] = null;
+			}
+		}
+		if ($this->data['updated'])
+		{
+			$date_format = (string) $date_format;
+			switch ($date_format)
+			{
+				case '':
+					return $this->sanitize($this->data['updated']['raw'], SIMPLEPIE_CONSTRUCT_TEXT);
+
+				case 'U':
+					return $this->data['updated']['parsed'];
+
+				default:
+					return date($date_format, $this->data['updated']['parsed']);
+			}
+		}
+		else
+		{
+			return null;
+		}
+	}
+
+	/**
+	 * Get the localized posting date/time for the item
+	 *
+	 * Returns the date formatted in the localized language. To display in
+	 * languages other than the server's default, you need to change the locale
+	 * with {@link http://php.net/setlocale setlocale()}. The available
+	 * localizations depend on which ones are installed on your web server.
+	 *
+	 * @since 1.0
+	 *
+	 * @param string $date_format Supports any PHP date format from {@see http://php.net/strftime} (empty for the raw data)
+	 * @return int|string|null
+	 */
+	public function get_local_date($date_format = '%c')
+	{
+		if (!$date_format)
+		{
+			return $this->sanitize($this->get_date(''), SIMPLEPIE_CONSTRUCT_TEXT);
+		}
+		elseif (($date = $this->get_date('U')) !== null && $date !== false)
+		{
+			return strftime($date_format, $date);
+		}
+		else
+		{
+			return null;
+		}
+	}
+
+	/**
+	 * Get the posting date/time for the item (UTC time)
+	 *
+	 * @see get_date
+	 * @param string $date_format Supports any PHP date format from {@see http://php.net/date}
+	 * @return int|string|null
+	 */
+	public function get_gmdate($date_format = 'j F Y, g:i a')
+	{
+		$date = $this->get_date('U');
+		if ($date === null)
+		{
+			return null;
+		}
+
+		return gmdate($date_format, $date);
+	}
+
+	/**
+	 * Get the update date/time for the item (UTC time)
+	 *
+	 * @see get_updated_date
+	 * @param string $date_format Supports any PHP date format from {@see http://php.net/date}
+	 * @return int|string|null
+	 */
+	public function get_updated_gmdate($date_format = 'j F Y, g:i a')
+	{
+		$date = $this->get_updated_date('U');
+		if ($date === null)
+		{
+			return null;
+		}
+
+		return gmdate($date_format, $date);
+	}
+
+	/**
+	 * Get the permalink for the item
+	 *
+	 * Returns the first link available with a relationship of "alternate".
+	 * Identical to {@see get_link()} with key 0
+	 *
+	 * @see get_link
+	 * @since 0.8
+	 * @return string|null Permalink URL
+	 */
+	public function get_permalink()
+	{
+		$link = $this->get_link();
+		$enclosure = $this->get_enclosure(0);
+		if ($link !== null)
+		{
+			return $link;
+		}
+		elseif ($enclosure !== null)
+		{
+			return $enclosure->get_link();
+		}
+		else
+		{
+			return null;
+		}
+	}
+
+	/**
+	 * Get a single link for the item
+	 *
+	 * @since Beta 3
+	 * @param int $key The link that you want to return.  Remember that arrays begin with 0, not 1
+	 * @param string $rel The relationship of the link to return
+	 * @return string|null Link URL
+	 */
+	public function get_link($key = 0, $rel = 'alternate')
+	{
+		$links = $this->get_links($rel);
+		if ($links[$key] !== null)
+		{
+			return $links[$key];
+		}
+		else
+		{
+			return null;
+		}
+	}
+
+	/**
+	 * Get all links for the item
+	 *
+	 * Uses `<atom:link>`, `<link>` or `<guid>`
+	 *
+	 * @since Beta 2
+	 * @param string $rel The relationship of links to return
+	 * @return array|null Links found for the item (strings)
+	 */
+	public function get_links($rel = 'alternate')
+	{
+		if (!isset($this->data['links']))
+		{
+			$this->data['links'] = array();
+			foreach ((array) $this->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'link') as $link)
+			{
+				if (isset($link['attribs']['']['href']))
+				{
+					$link_rel = (isset($link['attribs']['']['rel'])) ? $link['attribs']['']['rel'] : 'alternate';
+					$this->data['links'][$link_rel][] = $this->sanitize($link['attribs']['']['href'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($link));
+
+				}
+			}
+			foreach ((array) $this->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_03, 'link') as $link)
+			{
+				if (isset($link['attribs']['']['href']))
+				{
+					$link_rel = (isset($link['attribs']['']['rel'])) ? $link['attribs']['']['rel'] : 'alternate';
+					$this->data['links'][$link_rel][] = $this->sanitize($link['attribs']['']['href'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($link));
+				}
+			}
+			if ($links = $this->get_item_tags(SIMPLEPIE_NAMESPACE_RSS_10, 'link'))
+			{
+				$this->data['links']['alternate'][] = $this->sanitize($links[0]['data'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($links[0]));
+			}
+			if ($links = $this->get_item_tags(SIMPLEPIE_NAMESPACE_RSS_090, 'link'))
+			{
+				$this->data['links']['alternate'][] = $this->sanitize($links[0]['data'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($links[0]));
+			}
+			if ($links = $this->get_item_tags(SIMPLEPIE_NAMESPACE_RSS_20, 'link'))
+			{
+				$this->data['links']['alternate'][] = $this->sanitize($links[0]['data'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($links[0]));
+			}
+			if ($links = $this->get_item_tags(SIMPLEPIE_NAMESPACE_RSS_20, 'guid'))
+			{
+				if (!isset($links[0]['attribs']['']['isPermaLink']) || strtolower(trim($links[0]['attribs']['']['isPermaLink'])) === 'true')
+				{
+					$this->data['links']['alternate'][] = $this->sanitize($links[0]['data'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($links[0]));
+				}
+			}
+
+			$keys = array_keys($this->data['links']);
+			foreach ($keys as $key)
+			{
+				if ($this->registry->call('Misc', 'is_isegment_nz_nc', array($key)))
+				{
+					if (isset($this->data['links'][SIMPLEPIE_IANA_LINK_RELATIONS_REGISTRY . $key]))
+					{
+						$this->data['links'][SIMPLEPIE_IANA_LINK_RELATIONS_REGISTRY . $key] = array_merge($this->data['links'][$key], $this->data['links'][SIMPLEPIE_IANA_LINK_RELATIONS_REGISTRY . $key]);
+						$this->data['links'][$key] =& $this->data['links'][SIMPLEPIE_IANA_LINK_RELATIONS_REGISTRY . $key];
+					}
+					else
+					{
+						$this->data['links'][SIMPLEPIE_IANA_LINK_RELATIONS_REGISTRY . $key] =& $this->data['links'][$key];
+					}
+				}
+				elseif (substr($key, 0, 41) === SIMPLEPIE_IANA_LINK_RELATIONS_REGISTRY)
+				{
+					$this->data['links'][substr($key, 41)] =& $this->data['links'][$key];
+				}
+				$this->data['links'][$key] = array_unique($this->data['links'][$key]);
+			}
+		}
+		if (isset($this->data['links'][$rel]))
+		{
+			return $this->data['links'][$rel];
+		}
+		else
+		{
+			return null;
+		}
+	}
+
+	/**
+	 * Get an enclosure from the item
+	 *
+	 * Supports the <enclosure> RSS tag, as well as Media RSS and iTunes RSS.
+	 *
+	 * @since Beta 2
+	 * @todo Add ability to prefer one type of content over another (in a media group).
+	 * @param int $key The enclosure that you want to return.  Remember that arrays begin with 0, not 1
+	 * @return SimplePie_Enclosure|null
+	 */
+	public function get_enclosure($key = 0, $prefer = null)
+	{
+		$enclosures = $this->get_enclosures();
+		if (isset($enclosures[$key]))
+		{
+			return $enclosures[$key];
+		}
+		else
+		{
+			return null;
+		}
+	}
+
+	/**
+	 * Get all available enclosures (podcasts, etc.)
+	 *
+	 * Supports the <enclosure> RSS tag, as well as Media RSS and iTunes RSS.
+	 *
+	 * At this point, we're pretty much assuming that all enclosures for an item
+	 * are the same content.  Anything else is too complicated to
+	 * properly support.
+	 *
+	 * @since Beta 2
+	 * @todo Add support for end-user defined sorting of enclosures by type/handler (so we can prefer the faster-loading FLV over MP4).
+	 * @todo If an element exists at a level, but it's value is empty, we should fall back to the value from the parent (if it exists).
+	 * @return array|null List of SimplePie_Enclosure items
+	 */
+	public function get_enclosures()
+	{
+		if (!isset($this->data['enclosures']))
+		{
+			$this->data['enclosures'] = array();
+
+			// Elements
+			$captions_parent = null;
+			$categories_parent = null;
+			$copyrights_parent = null;
+			$credits_parent = null;
+			$description_parent = null;
+			$duration_parent = null;
+			$hashes_parent = null;
+			$keywords_parent = null;
+			$player_parent = null;
+			$ratings_parent = null;
+			$restrictions_parent = null;
+			$thumbnails_parent = null;
+			$title_parent = null;
+
+			// Let's do the channel and item-level ones first, and just re-use them if we need to.
+			$parent = $this->get_feed();
+
+			// CAPTIONS
+			if ($captions = $this->get_item_tags(SIMPLEPIE_NAMESPACE_MEDIARSS, 'text'))
+			{
+				foreach ($captions as $caption)
+				{
+					$caption_type = null;
+					$caption_lang = null;
+					$caption_startTime = null;
+					$caption_endTime = null;
+					$caption_text = null;
+					if (isset($caption['attribs']['']['type']))
+					{
+						$caption_type = $this->sanitize($caption['attribs']['']['type'], SIMPLEPIE_CONSTRUCT_TEXT);
+					}
+					if (isset($caption['attribs']['']['lang']))
+					{
+						$caption_lang = $this->sanitize($caption['attribs']['']['lang'], SIMPLEPIE_CONSTRUCT_TEXT);
+					}
+					if (isset($caption['attribs']['']['start']))
+					{
+						$caption_startTime = $this->sanitize($caption['attribs']['']['start'], SIMPLEPIE_CONSTRUCT_TEXT);
+					}
+					if (isset($caption['attribs']['']['end']))
+					{
+						$caption_endTime = $this->sanitize($caption['attribs']['']['end'], SIMPLEPIE_CONSTRUCT_TEXT);
+					}
+					if (isset($caption['data']))
+					{
+						$caption_text = $this->sanitize($caption['data'], SIMPLEPIE_CONSTRUCT_TEXT);
+					}
+					$captions_parent[] = $this->registry->create('Caption', array($caption_type, $caption_lang, $caption_startTime, $caption_endTime, $caption_text));
+				}
+			}
+			elseif ($captions = $parent->get_channel_tags(SIMPLEPIE_NAMESPACE_MEDIARSS, 'text'))
+			{
+				foreach ($captions as $caption)
+				{
+					$caption_type = null;
+					$caption_lang = null;
+					$caption_startTime = null;
+					$caption_endTime = null;
+					$caption_text = null;
+					if (isset($caption['attribs']['']['type']))
+					{
+						$caption_type = $this->sanitize($caption['attribs']['']['type'], SIMPLEPIE_CONSTRUCT_TEXT);
+					}
+					if (isset($caption['attribs']['']['lang']))
+					{
+						$caption_lang = $this->sanitize($caption['attribs']['']['lang'], SIMPLEPIE_CONSTRUCT_TEXT);
+					}
+					if (isset($caption['attribs']['']['start']))
+					{
+						$caption_startTime = $this->sanitize($caption['attribs']['']['start'], SIMPLEPIE_CONSTRUCT_TEXT);
+					}
+					if (isset($caption['attribs']['']['end']))
+					{
+						$caption_endTime = $this->sanitize($caption['attribs']['']['end'], SIMPLEPIE_CONSTRUCT_TEXT);
+					}
+					if (isset($caption['data']))
+					{
+						$caption_text = $this->sanitize($caption['data'], SIMPLEPIE_CONSTRUCT_TEXT);
+					}
+					$captions_parent[] = $this->registry->create('Caption', array($caption_type, $caption_lang, $caption_startTime, $caption_endTime, $caption_text));
+				}
+			}
+			if (is_array($captions_parent))
+			{
+				$captions_parent = array_values(array_unique($captions_parent));
+			}
+
+			// CATEGORIES
+			foreach ((array) $this->get_item_tags(SIMPLEPIE_NAMESPACE_MEDIARSS, 'category') as $category)
+			{
+				$term = null;
+				$scheme = null;
+				$label = null;
+				if (isset($category['data']))
+				{
+					$term = $this->sanitize($category['data'], SIMPLEPIE_CONSTRUCT_TEXT);
+				}
+				if (isset($category['attribs']['']['scheme']))
+				{
+					$scheme = $this->sanitize($category['attribs']['']['scheme'], SIMPLEPIE_CONSTRUCT_TEXT);
+				}
+				else
+				{
+					$scheme = 'http://search.yahoo.com/mrss/category_schema';
+				}
+				if (isset($category['attribs']['']['label']))
+				{
+					$label = $this->sanitize($category['attribs']['']['label'], SIMPLEPIE_CONSTRUCT_TEXT);
+				}
+				$categories_parent[] = $this->registry->create('Category', array($term, $scheme, $label));
+			}
+			foreach ((array) $parent->get_channel_tags(SIMPLEPIE_NAMESPACE_MEDIARSS, 'category') as $category)
+			{
+				$term = null;
+				$scheme = null;
+				$label = null;
+				if (isset($category['data']))
+				{
+					$term = $this->sanitize($category['data'], SIMPLEPIE_CONSTRUCT_TEXT);
+				}
+				if (isset($category['attribs']['']['scheme']))
+				{
+					$scheme = $this->sanitize($category['attribs']['']['scheme'], SIMPLEPIE_CONSTRUCT_TEXT);
+				}
+				else
+				{
+					$scheme = 'http://search.yahoo.com/mrss/category_schema';
+				}
+				if (isset($category['attribs']['']['label']))
+				{
+					$label = $this->sanitize($category['attribs']['']['label'], SIMPLEPIE_CONSTRUCT_TEXT);
+				}
+				$categories_parent[] = $this->registry->create('Category', array($term, $scheme, $label));
+			}
+			foreach ((array) $parent->get_channel_tags(SIMPLEPIE_NAMESPACE_ITUNES, 'category') as $category)
+			{
+				$term = null;
+				$scheme = 'http://www.itunes.com/dtds/podcast-1.0.dtd';
+				$label = null;
+				if (isset($category['attribs']['']['text']))
+				{
+					$label = $this->sanitize($category['attribs']['']['text'], SIMPLEPIE_CONSTRUCT_TEXT);
+				}
+				$categories_parent[] = $this->registry->create('Category', array($term, $scheme, $label));
+
+				if (isset($category['child'][SIMPLEPIE_NAMESPACE_ITUNES]['category']))
+				{
+					foreach ((array) $category['child'][SIMPLEPIE_NAMESPACE_ITUNES]['category'] as $subcategory)
+					{
+						if (isset($subcategory['attribs']['']['text']))
+						{
+							$label = $this->sanitize($subcategory['attribs']['']['text'], SIMPLEPIE_CONSTRUCT_TEXT);
+						}
+						$categories_parent[] = $this->registry->create('Category', array($term, $scheme, $label));
+					}
+				}
+			}
+			if (is_array($categories_parent))
+			{
+				$categories_parent = array_values(array_unique($categories_parent));
+			}
+
+			// COPYRIGHT
+			if ($copyright = $this->get_item_tags(SIMPLEPIE_NAMESPACE_MEDIARSS, 'copyright'))
+			{
+				$copyright_url = null;
+				$copyright_label = null;
+				if (isset($copyright[0]['attribs']['']['url']))
+				{
+					$copyright_url = $this->sanitize($copyright[0]['attribs']['']['url'], SIMPLEPIE_CONSTRUCT_TEXT);
+				}
+				if (isset($copyright[0]['data']))
+				{
+					$copyright_label = $this->sanitize($copyright[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
+				}
+				$copyrights_parent = $this->registry->create('Copyright', array($copyright_url, $copyright_label));
+			}
+			elseif ($copyright = $parent->get_channel_tags(SIMPLEPIE_NAMESPACE_MEDIARSS, 'copyright'))
+			{
+				$copyright_url = null;
+				$copyright_label = null;
+				if (isset($copyright[0]['attribs']['']['url']))
+				{
+					$copyright_url = $this->sanitize($copyright[0]['attribs']['']['url'], SIMPLEPIE_CONSTRUCT_TEXT);
+				}
+				if (isset($copyright[0]['data']))
+				{
+					$copyright_label = $this->sanitize($copyright[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
+				}
+				$copyrights_parent = $this->registry->create('Copyright', array($copyright_url, $copyright_label));
+			}
+
+			// CREDITS
+			if ($credits = $this->get_item_tags(SIMPLEPIE_NAMESPACE_MEDIARSS, 'credit'))
+			{
+				foreach ($credits as $credit)
+				{
+					$credit_role = null;
+					$credit_scheme = null;
+					$credit_name = null;
+					if (isset($credit['attribs']['']['role']))
+					{
+						$credit_role = $this->sanitize($credit['attribs']['']['role'], SIMPLEPIE_CONSTRUCT_TEXT);
+					}
+					if (isset($credit['attribs']['']['scheme']))
+					{
+						$credit_scheme = $this->sanitize($credit['attribs']['']['scheme'], SIMPLEPIE_CONSTRUCT_TEXT);
+					}
+					else
+					{
+						$credit_scheme = 'urn:ebu';
+					}
+					if (isset($credit['data']))
+					{
+						$credit_name = $this->sanitize($credit['data'], SIMPLEPIE_CONSTRUCT_TEXT);
+					}
+					$credits_parent[] = $this->registry->create('Credit', array($credit_role, $credit_scheme, $credit_name));
+				}
+			}
+			elseif ($credits = $parent->get_channel_tags(SIMPLEPIE_NAMESPACE_MEDIARSS, 'credit'))
+			{
+				foreach ($credits as $credit)
+				{
+					$credit_role = null;
+					$credit_scheme = null;
+					$credit_name = null;
+					if (isset($credit['attribs']['']['role']))
+					{
+						$credit_role = $this->sanitize($credit['attribs']['']['role'], SIMPLEPIE_CONSTRUCT_TEXT);
+					}
+					if (isset($credit['attribs']['']['scheme']))
+					{
+						$credit_scheme = $this->sanitize($credit['attribs']['']['scheme'], SIMPLEPIE_CONSTRUCT_TEXT);
+					}
+					else
+					{
+						$credit_scheme = 'urn:ebu';
+					}
+					if (isset($credit['data']))
+					{
+						$credit_name = $this->sanitize($credit['data'], SIMPLEPIE_CONSTRUCT_TEXT);
+					}
+					$credits_parent[] = $this->registry->create('Credit', array($credit_role, $credit_scheme, $credit_name));
+				}
+			}
+			if (is_array($credits_parent))
+			{
+				$credits_parent = array_values(array_unique($credits_parent));
+			}
+
+			// DESCRIPTION
+			if ($description_parent = $this->get_item_tags(SIMPLEPIE_NAMESPACE_MEDIARSS, 'description'))
+			{
+				if (isset($description_parent[0]['data']))
+				{
+					$description_parent = $this->sanitize($description_parent[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
+				}
+			}
+			elseif ($description_parent = $parent->get_channel_tags(SIMPLEPIE_NAMESPACE_MEDIARSS, 'description'))
+			{
+				if (isset($description_parent[0]['data']))
+				{
+					$description_parent = $this->sanitize($description_parent[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
+				}
+			}
+
+			// DURATION
+			if ($duration_parent = $this->get_item_tags(SIMPLEPIE_NAMESPACE_ITUNES, 'duration'))
+			{
+				$seconds = null;
+				$minutes = null;
+				$hours = null;
+				if (isset($duration_parent[0]['data']))
+				{
+					$temp = explode(':', $this->sanitize($duration_parent[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT));
+					if (sizeof($temp) > 0)
+					{
+						$seconds = (int) array_pop($temp);
+					}
+					if (sizeof($temp) > 0)
+					{
+						$minutes = (int) array_pop($temp);
+						$seconds += $minutes * 60;
+					}
+					if (sizeof($temp) > 0)
+					{
+						$hours = (int) array_pop($temp);
+						$seconds += $hours * 3600;
+					}
+					unset($temp);
+					$duration_parent = $seconds;
+				}
+			}
+
+			// HASHES
+			if ($hashes_iterator = $this->get_item_tags(SIMPLEPIE_NAMESPACE_MEDIARSS, 'hash'))
+			{
+				foreach ($hashes_iterator as $hash)
+				{
+					$value = null;
+					$algo = null;
+					if (isset($hash['data']))
+					{
+						$value = $this->sanitize($hash['data'], SIMPLEPIE_CONSTRUCT_TEXT);
+					}
+					if (isset($hash['attribs']['']['algo']))
+					{
+						$algo = $this->sanitize($hash['attribs']['']['algo'], SIMPLEPIE_CONSTRUCT_TEXT);
+					}
+					else
+					{
+						$algo = 'md5';
+					}
+					$hashes_parent[] = $algo.':'.$value;
+				}
+			}
+			elseif ($hashes_iterator = $parent->get_channel_tags(SIMPLEPIE_NAMESPACE_MEDIARSS, 'hash'))
+			{
+				foreach ($hashes_iterator as $hash)
+				{
+					$value = null;
+					$algo = null;
+					if (isset($hash['data']))
+					{
+						$value = $this->sanitize($hash['data'], SIMPLEPIE_CONSTRUCT_TEXT);
+					}
+					if (isset($hash['attribs']['']['algo']))
+					{
+						$algo = $this->sanitize($hash['attribs']['']['algo'], SIMPLEPIE_CONSTRUCT_TEXT);
+					}
+					else
+					{
+						$algo = 'md5';
+					}
+					$hashes_parent[] = $algo.':'.$value;
+				}
+			}
+			if (is_array($hashes_parent))
+			{
+				$hashes_parent = array_values(array_unique($hashes_parent));
+			}
+
+			// KEYWORDS
+			if ($keywords = $this->get_item_tags(SIMPLEPIE_NAMESPACE_MEDIARSS, 'keywords'))
+			{
+				if (isset($keywords[0]['data']))
+				{
+					$temp = explode(',', $this->sanitize($keywords[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT));
+					foreach ($temp as $word)
+					{
+						$keywords_parent[] = trim($word);
+					}
+				}
+				unset($temp);
+			}
+			elseif ($keywords = $this->get_item_tags(SIMPLEPIE_NAMESPACE_ITUNES, 'keywords'))
+			{
+				if (isset($keywords[0]['data']))
+				{
+					$temp = explode(',', $this->sanitize($keywords[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT));
+					foreach ($temp as $word)
+					{
+						$keywords_parent[] = trim($word);
+					}
+				}
+				unset($temp);
+			}
+			elseif ($keywords = $parent->get_channel_tags(SIMPLEPIE_NAMESPACE_MEDIARSS, 'keywords'))
+			{
+				if (isset($keywords[0]['data']))
+				{
+					$temp = explode(',', $this->sanitize($keywords[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT));
+					foreach ($temp as $word)
+					{
+						$keywords_parent[] = trim($word);
+					}
+				}
+				unset($temp);
+			}
+			elseif ($keywords = $parent->get_channel_tags(SIMPLEPIE_NAMESPACE_ITUNES, 'keywords'))
+			{
+				if (isset($keywords[0]['data']))
+				{
+					$temp = explode(',', $this->sanitize($keywords[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT));
+					foreach ($temp as $word)
+					{
+						$keywords_parent[] = trim($word);
+					}
+				}
+				unset($temp);
+			}
+			if (is_array($keywords_parent))
+			{
+				$keywords_parent = array_values(array_unique($keywords_parent));
+			}
+
+			// PLAYER
+			if ($player_parent = $this->get_item_tags(SIMPLEPIE_NAMESPACE_MEDIARSS, 'player'))
+			{
+				if (isset($player_parent[0]['attribs']['']['url']))
+				{
+					$player_parent = $this->sanitize($player_parent[0]['attribs']['']['url'], SIMPLEPIE_CONSTRUCT_IRI);
+				}
+			}
+			elseif ($player_parent = $parent->get_channel_tags(SIMPLEPIE_NAMESPACE_MEDIARSS, 'player'))
+			{
+				if (isset($player_parent[0]['attribs']['']['url']))
+				{
+					$player_parent = $this->sanitize($player_parent[0]['attribs']['']['url'], SIMPLEPIE_CONSTRUCT_IRI);
+				}
+			}
+
+			// RATINGS
+			if ($ratings = $this->get_item_tags(SIMPLEPIE_NAMESPACE_MEDIARSS, 'rating'))
+			{
+				foreach ($ratings as $rating)
+				{
+					$rating_scheme = null;
+					$rating_value = null;
+					if (isset($rating['attribs']['']['scheme']))
+					{
+						$rating_scheme = $this->sanitize($rating['attribs']['']['scheme'], SIMPLEPIE_CONSTRUCT_TEXT);
+					}
+					else
+					{
+						$rating_scheme = 'urn:simple';
+					}
+					if (isset($rating['data']))
+					{
+						$rating_value = $this->sanitize($rating['data'], SIMPLEPIE_CONSTRUCT_TEXT);
+					}
+					$ratings_parent[] = $this->registry->create('Rating', array($rating_scheme, $rating_value));
+				}
+			}
+			elseif ($ratings = $this->get_item_tags(SIMPLEPIE_NAMESPACE_ITUNES, 'explicit'))
+			{
+				foreach ($ratings as $rating)
+				{
+					$rating_scheme = 'urn:itunes';
+					$rating_value = null;
+					if (isset($rating['data']))
+					{
+						$rating_value = $this->sanitize($rating['data'], SIMPLEPIE_CONSTRUCT_TEXT);
+					}
+					$ratings_parent[] = $this->registry->create('Rating', array($rating_scheme, $rating_value));
+				}
+			}
+			elseif ($ratings = $parent->get_channel_tags(SIMPLEPIE_NAMESPACE_MEDIARSS, 'rating'))
+			{
+				foreach ($ratings as $rating)
+				{
+					$rating_scheme = null;
+					$rating_value = null;
+					if (isset($rating['attribs']['']['scheme']))
+					{
+						$rating_scheme = $this->sanitize($rating['attribs']['']['scheme'], SIMPLEPIE_CONSTRUCT_TEXT);
+					}
+					else
+					{
+						$rating_scheme = 'urn:simple';
+					}
+					if (isset($rating['data']))
+					{
+						$rating_value = $this->sanitize($rating['data'], SIMPLEPIE_CONSTRUCT_TEXT);
+					}
+					$ratings_parent[] = $this->registry->create('Rating', array($rating_scheme, $rating_value));
+				}
+			}
+			elseif ($ratings = $parent->get_channel_tags(SIMPLEPIE_NAMESPACE_ITUNES, 'explicit'))
+			{
+				foreach ($ratings as $rating)
+				{
+					$rating_scheme = 'urn:itunes';
+					$rating_value = null;
+					if (isset($rating['data']))
+					{
+						$rating_value = $this->sanitize($rating['data'], SIMPLEPIE_CONSTRUCT_TEXT);
+					}
+					$ratings_parent[] = $this->registry->create('Rating', array($rating_scheme, $rating_value));
+				}
+			}
+			if (is_array($ratings_parent))
+			{
+				$ratings_parent = array_values(array_unique($ratings_parent));
+			}
+
+			// RESTRICTIONS
+			if ($restrictions = $this->get_item_tags(SIMPLEPIE_NAMESPACE_MEDIARSS, 'restriction'))
+			{
+				foreach ($restrictions as $restriction)
+				{
+					$restriction_relationship = null;
+					$restriction_type = null;
+					$restriction_value = null;
+					if (isset($restriction['attribs']['']['relationship']))
+					{
+						$restriction_relationship = $this->sanitize($restriction['attribs']['']['relationship'], SIMPLEPIE_CONSTRUCT_TEXT);
+					}
+					if (isset($restriction['attribs']['']['type']))
+					{
+						$restriction_type = $this->sanitize($restriction['attribs']['']['type'], SIMPLEPIE_CONSTRUCT_TEXT);
+					}
+					if (isset($restriction['data']))
+					{
+						$restriction_value = $this->sanitize($restriction['data'], SIMPLEPIE_CONSTRUCT_TEXT);
+					}
+					$restrictions_parent[] = $this->registry->create('Restriction', array($restriction_relationship, $restriction_type, $restriction_value));
+				}
+			}
+			elseif ($restrictions = $this->get_item_tags(SIMPLEPIE_NAMESPACE_ITUNES, 'block'))
+			{
+				foreach ($restrictions as $restriction)
+				{
+					$restriction_relationship = 'allow';
+					$restriction_type = null;
+					$restriction_value = 'itunes';
+					if (isset($restriction['data']) && strtolower($restriction['data']) === 'yes')
+					{
+						$restriction_relationship = 'deny';
+					}
+					$restrictions_parent[] = $this->registry->create('Restriction', array($restriction_relationship, $restriction_type, $restriction_value));
+				}
+			}
+			elseif ($restrictions = $parent->get_channel_tags(SIMPLEPIE_NAMESPACE_MEDIARSS, 'restriction'))
+			{
+				foreach ($restrictions as $restriction)
+				{
+					$restriction_relationship = null;
+					$restriction_type = null;
+					$restriction_value = null;
+					if (isset($restriction['attribs']['']['relationship']))
+					{
+						$restriction_relationship = $this->sanitize($restriction['attribs']['']['relationship'], SIMPLEPIE_CONSTRUCT_TEXT);
+					}
+					if (isset($restriction['attribs']['']['type']))
+					{
+						$restriction_type = $this->sanitize($restriction['attribs']['']['type'], SIMPLEPIE_CONSTRUCT_TEXT);
+					}
+					if (isset($restriction['data']))
+					{
+						$restriction_value = $this->sanitize($restriction['data'], SIMPLEPIE_CONSTRUCT_TEXT);
+					}
+					$restrictions_parent[] = $this->registry->create('Restriction', array($restriction_relationship, $restriction_type, $restriction_value));
+				}
+			}
+			elseif ($restrictions = $parent->get_channel_tags(SIMPLEPIE_NAMESPACE_ITUNES, 'block'))
+			{
+				foreach ($restrictions as $restriction)
+				{
+					$restriction_relationship = 'allow';
+					$restriction_type = null;
+					$restriction_value = 'itunes';
+					if (isset($restriction['data']) && strtolower($restriction['data']) === 'yes')
+					{
+						$restriction_relationship = 'deny';
+					}
+					$restrictions_parent[] = $this->registry->create('Restriction', array($restriction_relationship, $restriction_type, $restriction_value));
+				}
+			}
+			if (is_array($restrictions_parent))
+			{
+				$restrictions_parent = array_values(array_unique($restrictions_parent));
+			}
+			else
+			{
+				$restrictions_parent = array(new SimplePie_Restriction('allow', null, 'default'));
+			}
+
+			// THUMBNAILS
+			if ($thumbnails = $this->get_item_tags(SIMPLEPIE_NAMESPACE_MEDIARSS, 'thumbnail'))
+			{
+				foreach ($thumbnails as $thumbnail)
+				{
+					if (isset($thumbnail['attribs']['']['url']))
+					{
+						$thumbnails_parent[] = $this->sanitize($thumbnail['attribs']['']['url'], SIMPLEPIE_CONSTRUCT_IRI);
+					}
+				}
+			}
+			elseif ($thumbnails = $parent->get_channel_tags(SIMPLEPIE_NAMESPACE_MEDIARSS, 'thumbnail'))
+			{
+				foreach ($thumbnails as $thumbnail)
+				{
+					if (isset($thumbnail['attribs']['']['url']))
+					{
+						$thumbnails_parent[] = $this->sanitize($thumbnail['attribs']['']['url'], SIMPLEPIE_CONSTRUCT_IRI);
+					}
+				}
+			}
+
+			// TITLES
+			if ($title_parent = $this->get_item_tags(SIMPLEPIE_NAMESPACE_MEDIARSS, 'title'))
+			{
+				if (isset($title_parent[0]['data']))
+				{
+					$title_parent = $this->sanitize($title_parent[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
+				}
+			}
+			elseif ($title_parent = $parent->get_channel_tags(SIMPLEPIE_NAMESPACE_MEDIARSS, 'title'))
+			{
+				if (isset($title_parent[0]['data']))
+				{
+					$title_parent = $this->sanitize($title_parent[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
+				}
+			}
+
+			// Clear the memory
+			unset($parent);
+
+			// Attributes
+			$bitrate = null;
+			$channels = null;
+			$duration = null;
+			$expression = null;
+			$framerate = null;
+			$height = null;
+			$javascript = null;
+			$lang = null;
+			$length = null;
+			$medium = null;
+			$samplingrate = null;
+			$type = null;
+			$url = null;
+			$width = null;
+
+			// Elements
+			$captions = null;
+			$categories = null;
+			$copyrights = null;
+			$credits = null;
+			$description = null;
+			$hashes = null;
+			$keywords = null;
+			$player = null;
+			$ratings = null;
+			$restrictions = null;
+			$thumbnails = null;
+			$title = null;
+
+			// If we have media:group tags, loop through them.
+			foreach ((array) $this->get_item_tags(SIMPLEPIE_NAMESPACE_MEDIARSS, 'group') as $group)
+			{
+				if(isset($group['child']) && isset($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['content']))
+				{
+					// If we have media:content tags, loop through them.
+					foreach ((array) $group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['content'] as $content)
+					{
+						if (isset($content['attribs']['']['url']))
+						{
+							// Attributes
+							$bitrate = null;
+							$channels = null;
+							$duration = null;
+							$expression = null;
+							$framerate = null;
+							$height = null;
+							$javascript = null;
+							$lang = null;
+							$length = null;
+							$medium = null;
+							$samplingrate = null;
+							$type = null;
+							$url = null;
+							$width = null;
+
+							// Elements
+							$captions = null;
+							$categories = null;
+							$copyrights = null;
+							$credits = null;
+							$description = null;
+							$hashes = null;
+							$keywords = null;
+							$player = null;
+							$ratings = null;
+							$restrictions = null;
+							$thumbnails = null;
+							$title = null;
+
+							// Start checking the attributes of media:content
+							if (isset($content['attribs']['']['bitrate']))
+							{
+								$bitrate = $this->sanitize($content['attribs']['']['bitrate'], SIMPLEPIE_CONSTRUCT_TEXT);
+							}
+							if (isset($content['attribs']['']['channels']))
+							{
+								$channels = $this->sanitize($content['attribs']['']['channels'], SIMPLEPIE_CONSTRUCT_TEXT);
+							}
+							if (isset($content['attribs']['']['duration']))
+							{
+								$duration = $this->sanitize($content['attribs']['']['duration'], SIMPLEPIE_CONSTRUCT_TEXT);
+							}
+							else
+							{
+								$duration = $duration_parent;
+							}
+							if (isset($content['attribs']['']['expression']))
+							{
+								$expression = $this->sanitize($content['attribs']['']['expression'], SIMPLEPIE_CONSTRUCT_TEXT);
+							}
+							if (isset($content['attribs']['']['framerate']))
+							{
+								$framerate = $this->sanitize($content['attribs']['']['framerate'], SIMPLEPIE_CONSTRUCT_TEXT);
+							}
+							if (isset($content['attribs']['']['height']))
+							{
+								$height = $this->sanitize($content['attribs']['']['height'], SIMPLEPIE_CONSTRUCT_TEXT);
+							}
+							if (isset($content['attribs']['']['lang']))
+							{
+								$lang = $this->sanitize($content['attribs']['']['lang'], SIMPLEPIE_CONSTRUCT_TEXT);
+							}
+							if (isset($content['attribs']['']['fileSize']))
+							{
+								$length = ceil($content['attribs']['']['fileSize']);
+							}
+							if (isset($content['attribs']['']['medium']))
+							{
+								$medium = $this->sanitize($content['attribs']['']['medium'], SIMPLEPIE_CONSTRUCT_TEXT);
+							}
+							if (isset($content['attribs']['']['samplingrate']))
+							{
+								$samplingrate = $this->sanitize($content['attribs']['']['samplingrate'], SIMPLEPIE_CONSTRUCT_TEXT);
+							}
+							if (isset($content['attribs']['']['type']))
+							{
+								$type = $this->sanitize($content['attribs']['']['type'], SIMPLEPIE_CONSTRUCT_TEXT);
+							}
+							if (isset($content['attribs']['']['width']))
+							{
+								$width = $this->sanitize($content['attribs']['']['width'], SIMPLEPIE_CONSTRUCT_TEXT);
+							}
+							$url = $this->sanitize($content['attribs']['']['url'], SIMPLEPIE_CONSTRUCT_IRI);
+
+							// Checking the other optional media: elements. Priority: media:content, media:group, item, channel
+
+							// CAPTIONS
+							if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['text']))
+							{
+								foreach ($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['text'] as $caption)
+								{
+									$caption_type = null;
+									$caption_lang = null;
+									$caption_startTime = null;
+									$caption_endTime = null;
+									$caption_text = null;
+									if (isset($caption['attribs']['']['type']))
+									{
+										$caption_type = $this->sanitize($caption['attribs']['']['type'], SIMPLEPIE_CONSTRUCT_TEXT);
+									}
+									if (isset($caption['attribs']['']['lang']))
+									{
+										$caption_lang = $this->sanitize($caption['attribs']['']['lang'], SIMPLEPIE_CONSTRUCT_TEXT);
+									}
+									if (isset($caption['attribs']['']['start']))
+									{
+										$caption_startTime = $this->sanitize($caption['attribs']['']['start'], SIMPLEPIE_CONSTRUCT_TEXT);
+									}
+									if (isset($caption['attribs']['']['end']))
+									{
+										$caption_endTime = $this->sanitize($caption['attribs']['']['end'], SIMPLEPIE_CONSTRUCT_TEXT);
+									}
+									if (isset($caption['data']))
+									{
+										$caption_text = $this->sanitize($caption['data'], SIMPLEPIE_CONSTRUCT_TEXT);
+									}
+									$captions[] = $this->registry->create('Caption', array($caption_type, $caption_lang, $caption_startTime, $caption_endTime, $caption_text));
+								}
+								if (is_array($captions))
+								{
+									$captions = array_values(array_unique($captions));
+								}
+							}
+							elseif (isset($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['text']))
+							{
+								foreach ($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['text'] as $caption)
+								{
+									$caption_type = null;
+									$caption_lang = null;
+									$caption_startTime = null;
+									$caption_endTime = null;
+									$caption_text = null;
+									if (isset($caption['attribs']['']['type']))
+									{
+										$caption_type = $this->sanitize($caption['attribs']['']['type'], SIMPLEPIE_CONSTRUCT_TEXT);
+									}
+									if (isset($caption['attribs']['']['lang']))
+									{
+										$caption_lang = $this->sanitize($caption['attribs']['']['lang'], SIMPLEPIE_CONSTRUCT_TEXT);
+									}
+									if (isset($caption['attribs']['']['start']))
+									{
+										$caption_startTime = $this->sanitize($caption['attribs']['']['start'], SIMPLEPIE_CONSTRUCT_TEXT);
+									}
+									if (isset($caption['attribs']['']['end']))
+									{
+										$caption_endTime = $this->sanitize($caption['attribs']['']['end'], SIMPLEPIE_CONSTRUCT_TEXT);
+									}
+									if (isset($caption['data']))
+									{
+										$caption_text = $this->sanitize($caption['data'], SIMPLEPIE_CONSTRUCT_TEXT);
+									}
+									$captions[] = $this->registry->create('Caption', array($caption_type, $caption_lang, $caption_startTime, $caption_endTime, $caption_text));
+								}
+								if (is_array($captions))
+								{
+									$captions = array_values(array_unique($captions));
+								}
+							}
+							else
+							{
+								$captions = $captions_parent;
+							}
+
+							// CATEGORIES
+							if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['category']))
+							{
+								foreach ((array) $content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['category'] as $category)
+								{
+									$term = null;
+									$scheme = null;
+									$label = null;
+									if (isset($category['data']))
+									{
+										$term = $this->sanitize($category['data'], SIMPLEPIE_CONSTRUCT_TEXT);
+									}
+									if (isset($category['attribs']['']['scheme']))
+									{
+										$scheme = $this->sanitize($category['attribs']['']['scheme'], SIMPLEPIE_CONSTRUCT_TEXT);
+									}
+									else
+									{
+										$scheme = 'http://search.yahoo.com/mrss/category_schema';
+									}
+									if (isset($category['attribs']['']['label']))
+									{
+										$label = $this->sanitize($category['attribs']['']['label'], SIMPLEPIE_CONSTRUCT_TEXT);
+									}
+									$categories[] = $this->registry->create('Category', array($term, $scheme, $label));
+								}
+							}
+							if (isset($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['category']))
+							{
+								foreach ((array) $group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['category'] as $category)
+								{
+									$term = null;
+									$scheme = null;
+									$label = null;
+									if (isset($category['data']))
+									{
+										$term = $this->sanitize($category['data'], SIMPLEPIE_CONSTRUCT_TEXT);
+									}
+									if (isset($category['attribs']['']['scheme']))
+									{
+										$scheme = $this->sanitize($category['attribs']['']['scheme'], SIMPLEPIE_CONSTRUCT_TEXT);
+									}
+									else
+									{
+										$scheme = 'http://search.yahoo.com/mrss/category_schema';
+									}
+									if (isset($category['attribs']['']['label']))
+									{
+										$label = $this->sanitize($category['attribs']['']['label'], SIMPLEPIE_CONSTRUCT_TEXT);
+									}
+									$categories[] = $this->registry->create('Category', array($term, $scheme, $label));
+								}
+							}
+							if (is_array($categories) && is_array($categories_parent))
+							{
+								$categories = array_values(array_unique(array_merge($categories, $categories_parent)));
+							}
+							elseif (is_array($categories))
+							{
+								$categories = array_values(array_unique($categories));
+							}
+							elseif (is_array($categories_parent))
+							{
+								$categories = array_values(array_unique($categories_parent));
+							}
+
+							// COPYRIGHTS
+							if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['copyright']))
+							{
+								$copyright_url = null;
+								$copyright_label = null;
+								if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['copyright'][0]['attribs']['']['url']))
+								{
+									$copyright_url = $this->sanitize($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['copyright'][0]['attribs']['']['url'], SIMPLEPIE_CONSTRUCT_TEXT);
+								}
+								if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['copyright'][0]['data']))
+								{
+									$copyright_label = $this->sanitize($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['copyright'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
+								}
+								$copyrights = $this->registry->create('Copyright', array($copyright_url, $copyright_label));
+							}
+							elseif (isset($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['copyright']))
+							{
+								$copyright_url = null;
+								$copyright_label = null;
+								if (isset($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['copyright'][0]['attribs']['']['url']))
+								{
+									$copyright_url = $this->sanitize($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['copyright'][0]['attribs']['']['url'], SIMPLEPIE_CONSTRUCT_TEXT);
+								}
+								if (isset($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['copyright'][0]['data']))
+								{
+									$copyright_label = $this->sanitize($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['copyright'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
+								}
+								$copyrights = $this->registry->create('Copyright', array($copyright_url, $copyright_label));
+							}
+							else
+							{
+								$copyrights = $copyrights_parent;
+							}
+
+							// CREDITS
+							if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['credit']))
+							{
+								foreach ($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['credit'] as $credit)
+								{
+									$credit_role = null;
+									$credit_scheme = null;
+									$credit_name = null;
+									if (isset($credit['attribs']['']['role']))
+									{
+										$credit_role = $this->sanitize($credit['attribs']['']['role'], SIMPLEPIE_CONSTRUCT_TEXT);
+									}
+									if (isset($credit['attribs']['']['scheme']))
+									{
+										$credit_scheme = $this->sanitize($credit['attribs']['']['scheme'], SIMPLEPIE_CONSTRUCT_TEXT);
+									}
+									else
+									{
+										$credit_scheme = 'urn:ebu';
+									}
+									if (isset($credit['data']))
+									{
+										$credit_name = $this->sanitize($credit['data'], SIMPLEPIE_CONSTRUCT_TEXT);
+									}
+									$credits[] = $this->registry->create('Credit', array($credit_role, $credit_scheme, $credit_name));
+								}
+								if (is_array($credits))
+								{
+									$credits = array_values(array_unique($credits));
+								}
+							}
+							elseif (isset($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['credit']))
+							{
+								foreach ($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['credit'] as $credit)
+								{
+									$credit_role = null;
+									$credit_scheme = null;
+									$credit_name = null;
+									if (isset($credit['attribs']['']['role']))
+									{
+										$credit_role = $this->sanitize($credit['attribs']['']['role'], SIMPLEPIE_CONSTRUCT_TEXT);
+									}
+									if (isset($credit['attribs']['']['scheme']))
+									{
+										$credit_scheme = $this->sanitize($credit['attribs']['']['scheme'], SIMPLEPIE_CONSTRUCT_TEXT);
+									}
+									else
+									{
+										$credit_scheme = 'urn:ebu';
+									}
+									if (isset($credit['data']))
+									{
+										$credit_name = $this->sanitize($credit['data'], SIMPLEPIE_CONSTRUCT_TEXT);
+									}
+									$credits[] = $this->registry->create('Credit', array($credit_role, $credit_scheme, $credit_name));
+								}
+								if (is_array($credits))
+								{
+									$credits = array_values(array_unique($credits));
+								}
+							}
+							else
+							{
+								$credits = $credits_parent;
+							}
+
+							// DESCRIPTION
+							if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['description']))
+							{
+								$description = $this->sanitize($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['description'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
+							}
+							elseif (isset($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['description']))
+							{
+								$description = $this->sanitize($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['description'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
+							}
+							else
+							{
+								$description = $description_parent;
+							}
+
+							// HASHES
+							if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['hash']))
+							{
+								foreach ($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['hash'] as $hash)
+								{
+									$value = null;
+									$algo = null;
+									if (isset($hash['data']))
+									{
+										$value = $this->sanitize($hash['data'], SIMPLEPIE_CONSTRUCT_TEXT);
+									}
+									if (isset($hash['attribs']['']['algo']))
+									{
+										$algo = $this->sanitize($hash['attribs']['']['algo'], SIMPLEPIE_CONSTRUCT_TEXT);
+									}
+									else
+									{
+										$algo = 'md5';
+									}
+									$hashes[] = $algo.':'.$value;
+								}
+								if (is_array($hashes))
+								{
+									$hashes = array_values(array_unique($hashes));
+								}
+							}
+							elseif (isset($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['hash']))
+							{
+								foreach ($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['hash'] as $hash)
+								{
+									$value = null;
+									$algo = null;
+									if (isset($hash['data']))
+									{
+										$value = $this->sanitize($hash['data'], SIMPLEPIE_CONSTRUCT_TEXT);
+									}
+									if (isset($hash['attribs']['']['algo']))
+									{
+										$algo = $this->sanitize($hash['attribs']['']['algo'], SIMPLEPIE_CONSTRUCT_TEXT);
+									}
+									else
+									{
+										$algo = 'md5';
+									}
+									$hashes[] = $algo.':'.$value;
+								}
+								if (is_array($hashes))
+								{
+									$hashes = array_values(array_unique($hashes));
+								}
+							}
+							else
+							{
+								$hashes = $hashes_parent;
+							}
+
+							// KEYWORDS
+							if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['keywords']))
+							{
+								if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['keywords'][0]['data']))
+								{
+									$temp = explode(',', $this->sanitize($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['keywords'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT));
+									foreach ($temp as $word)
+									{
+										$keywords[] = trim($word);
+									}
+									unset($temp);
+								}
+								if (is_array($keywords))
+								{
+									$keywords = array_values(array_unique($keywords));
+								}
+							}
+							elseif (isset($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['keywords']))
+							{
+								if (isset($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['keywords'][0]['data']))
+								{
+									$temp = explode(',', $this->sanitize($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['keywords'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT));
+									foreach ($temp as $word)
+									{
+										$keywords[] = trim($word);
+									}
+									unset($temp);
+								}
+								if (is_array($keywords))
+								{
+									$keywords = array_values(array_unique($keywords));
+								}
+							}
+							else
+							{
+								$keywords = $keywords_parent;
+							}
+
+							// PLAYER
+							if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['player']))
+							{
+								$player = $this->sanitize($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['player'][0]['attribs']['']['url'], SIMPLEPIE_CONSTRUCT_IRI);
+							}
+							elseif (isset($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['player']))
+							{
+								$player = $this->sanitize($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['player'][0]['attribs']['']['url'], SIMPLEPIE_CONSTRUCT_IRI);
+							}
+							else
+							{
+								$player = $player_parent;
+							}
+
+							// RATINGS
+							if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['rating']))
+							{
+								foreach ($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['rating'] as $rating)
+								{
+									$rating_scheme = null;
+									$rating_value = null;
+									if (isset($rating['attribs']['']['scheme']))
+									{
+										$rating_scheme = $this->sanitize($rating['attribs']['']['scheme'], SIMPLEPIE_CONSTRUCT_TEXT);
+									}
+									else
+									{
+										$rating_scheme = 'urn:simple';
+									}
+									if (isset($rating['data']))
+									{
+										$rating_value = $this->sanitize($rating['data'], SIMPLEPIE_CONSTRUCT_TEXT);
+									}
+									$ratings[] = $this->registry->create('Rating', array($rating_scheme, $rating_value));
+								}
+								if (is_array($ratings))
+								{
+									$ratings = array_values(array_unique($ratings));
+								}
+							}
+							elseif (isset($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['rating']))
+							{
+								foreach ($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['rating'] as $rating)
+								{
+									$rating_scheme = null;
+									$rating_value = null;
+									if (isset($rating['attribs']['']['scheme']))
+									{
+										$rating_scheme = $this->sanitize($rating['attribs']['']['scheme'], SIMPLEPIE_CONSTRUCT_TEXT);
+									}
+									else
+									{
+										$rating_scheme = 'urn:simple';
+									}
+									if (isset($rating['data']))
+									{
+										$rating_value = $this->sanitize($rating['data'], SIMPLEPIE_CONSTRUCT_TEXT);
+									}
+									$ratings[] = $this->registry->create('Rating', array($rating_scheme, $rating_value));
+								}
+								if (is_array($ratings))
+								{
+									$ratings = array_values(array_unique($ratings));
+								}
+							}
+							else
+							{
+								$ratings = $ratings_parent;
+							}
+
+							// RESTRICTIONS
+							if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['restriction']))
+							{
+								foreach ($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['restriction'] as $restriction)
+								{
+									$restriction_relationship = null;
+									$restriction_type = null;
+									$restriction_value = null;
+									if (isset($restriction['attribs']['']['relationship']))
+									{
+										$restriction_relationship = $this->sanitize($restriction['attribs']['']['relationship'], SIMPLEPIE_CONSTRUCT_TEXT);
+									}
+									if (isset($restriction['attribs']['']['type']))
+									{
+										$restriction_type = $this->sanitize($restriction['attribs']['']['type'], SIMPLEPIE_CONSTRUCT_TEXT);
+									}
+									if (isset($restriction['data']))
+									{
+										$restriction_value = $this->sanitize($restriction['data'], SIMPLEPIE_CONSTRUCT_TEXT);
+									}
+									$restrictions[] = $this->registry->create('Restriction', array($restriction_relationship, $restriction_type, $restriction_value));
+								}
+								if (is_array($restrictions))
+								{
+									$restrictions = array_values(array_unique($restrictions));
+								}
+							}
+							elseif (isset($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['restriction']))
+							{
+								foreach ($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['restriction'] as $restriction)
+								{
+									$restriction_relationship = null;
+									$restriction_type = null;
+									$restriction_value = null;
+									if (isset($restriction['attribs']['']['relationship']))
+									{
+										$restriction_relationship = $this->sanitize($restriction['attribs']['']['relationship'], SIMPLEPIE_CONSTRUCT_TEXT);
+									}
+									if (isset($restriction['attribs']['']['type']))
+									{
+										$restriction_type = $this->sanitize($restriction['attribs']['']['type'], SIMPLEPIE_CONSTRUCT_TEXT);
+									}
+									if (isset($restriction['data']))
+									{
+										$restriction_value = $this->sanitize($restriction['data'], SIMPLEPIE_CONSTRUCT_TEXT);
+									}
+									$restrictions[] = $this->registry->create('Restriction', array($restriction_relationship, $restriction_type, $restriction_value));
+								}
+								if (is_array($restrictions))
+								{
+									$restrictions = array_values(array_unique($restrictions));
+								}
+							}
+							else
+							{
+								$restrictions = $restrictions_parent;
+							}
+
+							// THUMBNAILS
+							if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['thumbnail']))
+							{
+								foreach ($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['thumbnail'] as $thumbnail)
+								{
+									$thumbnails[] = $this->sanitize($thumbnail['attribs']['']['url'], SIMPLEPIE_CONSTRUCT_IRI);
+								}
+								if (is_array($thumbnails))
+								{
+									$thumbnails = array_values(array_unique($thumbnails));
+								}
+							}
+							elseif (isset($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['thumbnail']))
+							{
+								foreach ($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['thumbnail'] as $thumbnail)
+								{
+									$thumbnails[] = $this->sanitize($thumbnail['attribs']['']['url'], SIMPLEPIE_CONSTRUCT_IRI);
+								}
+								if (is_array($thumbnails))
+								{
+									$thumbnails = array_values(array_unique($thumbnails));
+								}
+							}
+							else
+							{
+								$thumbnails = $thumbnails_parent;
+							}
+
+							// TITLES
+							if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['title']))
+							{
+								$title = $this->sanitize($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['title'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
+							}
+							elseif (isset($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['title']))
+							{
+								$title = $this->sanitize($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['title'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
+							}
+							else
+							{
+								$title = $title_parent;
+							}
+
+							$this->data['enclosures'][] = $this->registry->create('Enclosure', array($url, $type, $length, null, $bitrate, $captions, $categories, $channels, $copyrights, $credits, $description, $duration, $expression, $framerate, $hashes, $height, $keywords, $lang, $medium, $player, $ratings, $restrictions, $samplingrate, $thumbnails, $title, $width));
+						}
+					}
+				}
+			}
+
+			// If we have standalone media:content tags, loop through them.
+			if (isset($this->data['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['content']))
+			{
+				foreach ((array) $this->data['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['content'] as $content)
+				{
+					if (isset($content['attribs']['']['url']) || isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['player']))
+					{
+						// Attributes
+						$bitrate = null;
+						$channels = null;
+						$duration = null;
+						$expression = null;
+						$framerate = null;
+						$height = null;
+						$javascript = null;
+						$lang = null;
+						$length = null;
+						$medium = null;
+						$samplingrate = null;
+						$type = null;
+						$url = null;
+						$width = null;
+
+						// Elements
+						$captions = null;
+						$categories = null;
+						$copyrights = null;
+						$credits = null;
+						$description = null;
+						$hashes = null;
+						$keywords = null;
+						$player = null;
+						$ratings = null;
+						$restrictions = null;
+						$thumbnails = null;
+						$title = null;
+
+						// Start checking the attributes of media:content
+						if (isset($content['attribs']['']['bitrate']))
+						{
+							$bitrate = $this->sanitize($content['attribs']['']['bitrate'], SIMPLEPIE_CONSTRUCT_TEXT);
+						}
+						if (isset($content['attribs']['']['channels']))
+						{
+							$channels = $this->sanitize($content['attribs']['']['channels'], SIMPLEPIE_CONSTRUCT_TEXT);
+						}
+						if (isset($content['attribs']['']['duration']))
+						{
+							$duration = $this->sanitize($content['attribs']['']['duration'], SIMPLEPIE_CONSTRUCT_TEXT);
+						}
+						else
+						{
+							$duration = $duration_parent;
+						}
+						if (isset($content['attribs']['']['expression']))
+						{
+							$expression = $this->sanitize($content['attribs']['']['expression'], SIMPLEPIE_CONSTRUCT_TEXT);
+						}
+						if (isset($content['attribs']['']['framerate']))
+						{
+							$framerate = $this->sanitize($content['attribs']['']['framerate'], SIMPLEPIE_CONSTRUCT_TEXT);
+						}
+						if (isset($content['attribs']['']['height']))
+						{
+							$height = $this->sanitize($content['attribs']['']['height'], SIMPLEPIE_CONSTRUCT_TEXT);
+						}
+						if (isset($content['attribs']['']['lang']))
+						{
+							$lang = $this->sanitize($content['attribs']['']['lang'], SIMPLEPIE_CONSTRUCT_TEXT);
+						}
+						if (isset($content['attribs']['']['fileSize']))
+						{
+							$length = ceil($content['attribs']['']['fileSize']);
+						}
+						if (isset($content['attribs']['']['medium']))
+						{
+							$medium = $this->sanitize($content['attribs']['']['medium'], SIMPLEPIE_CONSTRUCT_TEXT);
+						}
+						if (isset($content['attribs']['']['samplingrate']))
+						{
+							$samplingrate = $this->sanitize($content['attribs']['']['samplingrate'], SIMPLEPIE_CONSTRUCT_TEXT);
+						}
+						if (isset($content['attribs']['']['type']))
+						{
+							$type = $this->sanitize($content['attribs']['']['type'], SIMPLEPIE_CONSTRUCT_TEXT);
+						}
+						if (isset($content['attribs']['']['width']))
+						{
+							$width = $this->sanitize($content['attribs']['']['width'], SIMPLEPIE_CONSTRUCT_TEXT);
+						}
+						if (isset($content['attribs']['']['url']))
+						{
+							$url = $this->sanitize($content['attribs']['']['url'], SIMPLEPIE_CONSTRUCT_IRI);
+						}
+						// Checking the other optional media: elements. Priority: media:content, media:group, item, channel
+
+						// CAPTIONS
+						if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['text']))
+						{
+							foreach ($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['text'] as $caption)
+							{
+								$caption_type = null;
+								$caption_lang = null;
+								$caption_startTime = null;
+								$caption_endTime = null;
+								$caption_text = null;
+								if (isset($caption['attribs']['']['type']))
+								{
+									$caption_type = $this->sanitize($caption['attribs']['']['type'], SIMPLEPIE_CONSTRUCT_TEXT);
+								}
+								if (isset($caption['attribs']['']['lang']))
+								{
+									$caption_lang = $this->sanitize($caption['attribs']['']['lang'], SIMPLEPIE_CONSTRUCT_TEXT);
+								}
+								if (isset($caption['attribs']['']['start']))
+								{
+									$caption_startTime = $this->sanitize($caption['attribs']['']['start'], SIMPLEPIE_CONSTRUCT_TEXT);
+								}
+								if (isset($caption['attribs']['']['end']))
+								{
+									$caption_endTime = $this->sanitize($caption['attribs']['']['end'], SIMPLEPIE_CONSTRUCT_TEXT);
+								}
+								if (isset($caption['data']))
+								{
+									$caption_text = $this->sanitize($caption['data'], SIMPLEPIE_CONSTRUCT_TEXT);
+								}
+								$captions[] = $this->registry->create('Caption', array($caption_type, $caption_lang, $caption_startTime, $caption_endTime, $caption_text));
+							}
+							if (is_array($captions))
+							{
+								$captions = array_values(array_unique($captions));
+							}
+						}
+						else
+						{
+							$captions = $captions_parent;
+						}
+
+						// CATEGORIES
+						if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['category']))
+						{
+							foreach ((array) $content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['category'] as $category)
+							{
+								$term = null;
+								$scheme = null;
+								$label = null;
+								if (isset($category['data']))
+								{
+									$term = $this->sanitize($category['data'], SIMPLEPIE_CONSTRUCT_TEXT);
+								}
+								if (isset($category['attribs']['']['scheme']))
+								{
+									$scheme = $this->sanitize($category['attribs']['']['scheme'], SIMPLEPIE_CONSTRUCT_TEXT);
+								}
+								else
+								{
+									$scheme = 'http://search.yahoo.com/mrss/category_schema';
+								}
+								if (isset($category['attribs']['']['label']))
+								{
+									$label = $this->sanitize($category['attribs']['']['label'], SIMPLEPIE_CONSTRUCT_TEXT);
+								}
+								$categories[] = $this->registry->create('Category', array($term, $scheme, $label));
+							}
+						}
+						if (is_array($categories) && is_array($categories_parent))
+						{
+							$categories = array_values(array_unique(array_merge($categories, $categories_parent)));
+						}
+						elseif (is_array($categories))
+						{
+							$categories = array_values(array_unique($categories));
+						}
+						elseif (is_array($categories_parent))
+						{
+							$categories = array_values(array_unique($categories_parent));
+						}
+						else
+						{
+							$categories = null;
+						}
+
+						// COPYRIGHTS
+						if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['copyright']))
+						{
+							$copyright_url = null;
+							$copyright_label = null;
+							if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['copyright'][0]['attribs']['']['url']))
+							{
+								$copyright_url = $this->sanitize($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['copyright'][0]['attribs']['']['url'], SIMPLEPIE_CONSTRUCT_TEXT);
+							}
+							if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['copyright'][0]['data']))
+							{
+								$copyright_label = $this->sanitize($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['copyright'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
+							}
+							$copyrights = $this->registry->create('Copyright', array($copyright_url, $copyright_label));
+						}
+						else
+						{
+							$copyrights = $copyrights_parent;
+						}
+
+						// CREDITS
+						if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['credit']))
+						{
+							foreach ($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['credit'] as $credit)
+							{
+								$credit_role = null;
+								$credit_scheme = null;
+								$credit_name = null;
+								if (isset($credit['attribs']['']['role']))
+								{
+									$credit_role = $this->sanitize($credit['attribs']['']['role'], SIMPLEPIE_CONSTRUCT_TEXT);
+								}
+								if (isset($credit['attribs']['']['scheme']))
+								{
+									$credit_scheme = $this->sanitize($credit['attribs']['']['scheme'], SIMPLEPIE_CONSTRUCT_TEXT);
+								}
+								else
+								{
+									$credit_scheme = 'urn:ebu';
+								}
+								if (isset($credit['data']))
+								{
+									$credit_name = $this->sanitize($credit['data'], SIMPLEPIE_CONSTRUCT_TEXT);
+								}
+								$credits[] = $this->registry->create('Credit', array($credit_role, $credit_scheme, $credit_name));
+							}
+							if (is_array($credits))
+							{
+								$credits = array_values(array_unique($credits));
+							}
+						}
+						else
+						{
+							$credits = $credits_parent;
+						}
+
+						// DESCRIPTION
+						if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['description']))
+						{
+							$description = $this->sanitize($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['description'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
+						}
+						else
+						{
+							$description = $description_parent;
+						}
+
+						// HASHES
+						if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['hash']))
+						{
+							foreach ($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['hash'] as $hash)
+							{
+								$value = null;
+								$algo = null;
+								if (isset($hash['data']))
+								{
+									$value = $this->sanitize($hash['data'], SIMPLEPIE_CONSTRUCT_TEXT);
+								}
+								if (isset($hash['attribs']['']['algo']))
+								{
+									$algo = $this->sanitize($hash['attribs']['']['algo'], SIMPLEPIE_CONSTRUCT_TEXT);
+								}
+								else
+								{
+									$algo = 'md5';
+								}
+								$hashes[] = $algo.':'.$value;
+							}
+							if (is_array($hashes))
+							{
+								$hashes = array_values(array_unique($hashes));
+							}
+						}
+						else
+						{
+							$hashes = $hashes_parent;
+						}
+
+						// KEYWORDS
+						if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['keywords']))
+						{
+							if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['keywords'][0]['data']))
+							{
+								$temp = explode(',', $this->sanitize($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['keywords'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT));
+								foreach ($temp as $word)
+								{
+									$keywords[] = trim($word);
+								}
+								unset($temp);
+							}
+							if (is_array($keywords))
+							{
+								$keywords = array_values(array_unique($keywords));
+							}
+						}
+						else
+						{
+							$keywords = $keywords_parent;
+						}
+
+						// PLAYER
+						if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['player']))
+						{
+							$player = $this->sanitize($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['player'][0]['attribs']['']['url'], SIMPLEPIE_CONSTRUCT_IRI);
+						}
+						else
+						{
+							$player = $player_parent;
+						}
+
+						// RATINGS
+						if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['rating']))
+						{
+							foreach ($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['rating'] as $rating)
+							{
+								$rating_scheme = null;
+								$rating_value = null;
+								if (isset($rating['attribs']['']['scheme']))
+								{
+									$rating_scheme = $this->sanitize($rating['attribs']['']['scheme'], SIMPLEPIE_CONSTRUCT_TEXT);
+								}
+								else
+								{
+									$rating_scheme = 'urn:simple';
+								}
+								if (isset($rating['data']))
+								{
+									$rating_value = $this->sanitize($rating['data'], SIMPLEPIE_CONSTRUCT_TEXT);
+								}
+								$ratings[] = $this->registry->create('Rating', array($rating_scheme, $rating_value));
+							}
+							if (is_array($ratings))
+							{
+								$ratings = array_values(array_unique($ratings));
+							}
+						}
+						else
+						{
+							$ratings = $ratings_parent;
+						}
+
+						// RESTRICTIONS
+						if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['restriction']))
+						{
+							foreach ($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['restriction'] as $restriction)
+							{
+								$restriction_relationship = null;
+								$restriction_type = null;
+								$restriction_value = null;
+								if (isset($restriction['attribs']['']['relationship']))
+								{
+									$restriction_relationship = $this->sanitize($restriction['attribs']['']['relationship'], SIMPLEPIE_CONSTRUCT_TEXT);
+								}
+								if (isset($restriction['attribs']['']['type']))
+								{
+									$restriction_type = $this->sanitize($restriction['attribs']['']['type'], SIMPLEPIE_CONSTRUCT_TEXT);
+								}
+								if (isset($restriction['data']))
+								{
+									$restriction_value = $this->sanitize($restriction['data'], SIMPLEPIE_CONSTRUCT_TEXT);
+								}
+								$restrictions[] = $this->registry->create('Restriction', array($restriction_relationship, $restriction_type, $restriction_value));
+							}
+							if (is_array($restrictions))
+							{
+								$restrictions = array_values(array_unique($restrictions));
+							}
+						}
+						else
+						{
+							$restrictions = $restrictions_parent;
+						}
+
+						// THUMBNAILS
+						if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['thumbnail']))
+						{
+							foreach ($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['thumbnail'] as $thumbnail)
+							{
+								$thumbnails[] = $this->sanitize($thumbnail['attribs']['']['url'], SIMPLEPIE_CONSTRUCT_IRI);
+							}
+							if (is_array($thumbnails))
+							{
+								$thumbnails = array_values(array_unique($thumbnails));
+							}
+						}
+						else
+						{
+							$thumbnails = $thumbnails_parent;
+						}
+
+						// TITLES
+						if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['title']))
+						{
+							$title = $this->sanitize($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['title'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
+						}
+						else
+						{
+							$title = $title_parent;
+						}
+
+						$this->data['enclosures'][] = $this->registry->create('Enclosure', array($url, $type, $length, null, $bitrate, $captions, $categories, $channels, $copyrights, $credits, $description, $duration, $expression, $framerate, $hashes, $height, $keywords, $lang, $medium, $player, $ratings, $restrictions, $samplingrate, $thumbnails, $title, $width));
+					}
+				}
+			}
+
+			foreach ((array) $this->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'link') as $link)
+			{
+				if (isset($link['attribs']['']['href']) && !empty($link['attribs']['']['rel']) && $link['attribs']['']['rel'] === 'enclosure')
+				{
+					// Attributes
+					$bitrate = null;
+					$channels = null;
+					$duration = null;
+					$expression = null;
+					$framerate = null;
+					$height = null;
+					$javascript = null;
+					$lang = null;
+					$length = null;
+					$medium = null;
+					$samplingrate = null;
+					$type = null;
+					$url = null;
+					$width = null;
+
+					$url = $this->sanitize($link['attribs']['']['href'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($link));
+					if (isset($link['attribs']['']['type']))
+					{
+						$type = $this->sanitize($link['attribs']['']['type'], SIMPLEPIE_CONSTRUCT_TEXT);
+					}
+					if (isset($link['attribs']['']['length']))
+					{
+						$length = ceil($link['attribs']['']['length']);
+					}
+
+					// Since we don't have group or content for these, we'll just pass the '*_parent' variables directly to the constructor
+					$this->data['enclosures'][] = $this->registry->create('Enclosure', array($url, $type, $length, null, $bitrate, $captions_parent, $categories_parent, $channels, $copyrights_parent, $credits_parent, $description_parent, $duration_parent, $expression, $framerate, $hashes_parent, $height, $keywords_parent, $lang, $medium, $player_parent, $ratings_parent, $restrictions_parent, $samplingrate, $thumbnails_parent, $title_parent, $width));
+				}
+			}
+
+			foreach ((array) $this->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_03, 'link') as $link)
+			{
+				if (isset($link['attribs']['']['href']) && !empty($link['attribs']['']['rel']) && $link['attribs']['']['rel'] === 'enclosure')
+				{
+					// Attributes
+					$bitrate = null;
+					$channels = null;
+					$duration = null;
+					$expression = null;
+					$framerate = null;
+					$height = null;
+					$javascript = null;
+					$lang = null;
+					$length = null;
+					$medium = null;
+					$samplingrate = null;
+					$type = null;
+					$url = null;
+					$width = null;
+
+					$url = $this->sanitize($link['attribs']['']['href'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($link));
+					if (isset($link['attribs']['']['type']))
+					{
+						$type = $this->sanitize($link['attribs']['']['type'], SIMPLEPIE_CONSTRUCT_TEXT);
+					}
+					if (isset($link['attribs']['']['length']))
+					{
+						$length = ceil($link['attribs']['']['length']);
+					}
+
+					// Since we don't have group or content for these, we'll just pass the '*_parent' variables directly to the constructor
+					$this->data['enclosures'][] = $this->registry->create('Enclosure', array($url, $type, $length, null, $bitrate, $captions_parent, $categories_parent, $channels, $copyrights_parent, $credits_parent, $description_parent, $duration_parent, $expression, $framerate, $hashes_parent, $height, $keywords_parent, $lang, $medium, $player_parent, $ratings_parent, $restrictions_parent, $samplingrate, $thumbnails_parent, $title_parent, $width));
+				}
+			}
+
+			if ($enclosure = $this->get_item_tags(SIMPLEPIE_NAMESPACE_RSS_20, 'enclosure'))
+			{
+				if (isset($enclosure[0]['attribs']['']['url']))
+				{
+					// Attributes
+					$bitrate = null;
+					$channels = null;
+					$duration = null;
+					$expression = null;
+					$framerate = null;
+					$height = null;
+					$javascript = null;
+					$lang = null;
+					$length = null;
+					$medium = null;
+					$samplingrate = null;
+					$type = null;
+					$url = null;
+					$width = null;
+
+					$url = $this->sanitize($enclosure[0]['attribs']['']['url'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($enclosure[0]));
+					if (isset($enclosure[0]['attribs']['']['type']))
+					{
+						$type = $this->sanitize($enclosure[0]['attribs']['']['type'], SIMPLEPIE_CONSTRUCT_TEXT);
+					}
+					if (isset($enclosure[0]['attribs']['']['length']))
+					{
+						$length = ceil($enclosure[0]['attribs']['']['length']);
+					}
+
+					// Since we don't have group or content for these, we'll just pass the '*_parent' variables directly to the constructor
+					$this->data['enclosures'][] = $this->registry->create('Enclosure', array($url, $type, $length, null, $bitrate, $captions_parent, $categories_parent, $channels, $copyrights_parent, $credits_parent, $description_parent, $duration_parent, $expression, $framerate, $hashes_parent, $height, $keywords_parent, $lang, $medium, $player_parent, $ratings_parent, $restrictions_parent, $samplingrate, $thumbnails_parent, $title_parent, $width));
+				}
+			}
+
+			if (sizeof($this->data['enclosures']) === 0 && ($url || $type || $length || $bitrate || $captions_parent || $categories_parent || $channels || $copyrights_parent || $credits_parent || $description_parent || $duration_parent || $expression || $framerate || $hashes_parent || $height || $keywords_parent || $lang || $medium || $player_parent || $ratings_parent || $restrictions_parent || $samplingrate || $thumbnails_parent || $title_parent || $width))
+			{
+				// Since we don't have group or content for these, we'll just pass the '*_parent' variables directly to the constructor
+				$this->data['enclosures'][] = $this->registry->create('Enclosure', array($url, $type, $length, null, $bitrate, $captions_parent, $categories_parent, $channels, $copyrights_parent, $credits_parent, $description_parent, $duration_parent, $expression, $framerate, $hashes_parent, $height, $keywords_parent, $lang, $medium, $player_parent, $ratings_parent, $restrictions_parent, $samplingrate, $thumbnails_parent, $title_parent, $width));
+			}
+
+			$this->data['enclosures'] = array_values(array_unique($this->data['enclosures']));
+		}
+		if (!empty($this->data['enclosures']))
+		{
+			return $this->data['enclosures'];
+		}
+		else
+		{
+			return null;
+		}
+	}
+
+	/**
+	 * Get the latitude coordinates for the item
+	 *
+	 * Compatible with the W3C WGS84 Basic Geo and GeoRSS specifications
+	 *
+	 * Uses `<geo:lat>` or `<georss:point>`
+	 *
+	 * @since 1.0
+	 * @link http://www.w3.org/2003/01/geo/ W3C WGS84 Basic Geo
+	 * @link http://www.georss.org/ GeoRSS
+	 * @return string|null
+	 */
+	public function get_latitude()
+	{
+		if ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_W3C_BASIC_GEO, 'lat'))
+		{
+			return (float) $return[0]['data'];
+		}
+		elseif (($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_GEORSS, 'point')) && preg_match('/^((?:-)?[0-9]+(?:\.[0-9]+)) ((?:-)?[0-9]+(?:\.[0-9]+))$/', trim($return[0]['data']), $match))
+		{
+			return (float) $match[1];
+		}
+		else
+		{
+			return null;
+		}
+	}
+
+	/**
+	 * Get the longitude coordinates for the item
+	 *
+	 * Compatible with the W3C WGS84 Basic Geo and GeoRSS specifications
+	 *
+	 * Uses `<geo:long>`, `<geo:lon>` or `<georss:point>`
+	 *
+	 * @since 1.0
+	 * @link http://www.w3.org/2003/01/geo/ W3C WGS84 Basic Geo
+	 * @link http://www.georss.org/ GeoRSS
+	 * @return string|null
+	 */
+	public function get_longitude()
+	{
+		if ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_W3C_BASIC_GEO, 'long'))
+		{
+			return (float) $return[0]['data'];
+		}
+		elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_W3C_BASIC_GEO, 'lon'))
+		{
+			return (float) $return[0]['data'];
+		}
+		elseif (($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_GEORSS, 'point')) && preg_match('/^((?:-)?[0-9]+(?:\.[0-9]+)) ((?:-)?[0-9]+(?:\.[0-9]+))$/', trim($return[0]['data']), $match))
+		{
+			return (float) $match[2];
+		}
+		else
+		{
+			return null;
+		}
+	}
+
+	/**
+	 * Get the `<atom:source>` for the item
+	 *
+	 * @since 1.1
+	 * @return SimplePie_Source|null
+	 */
+	public function get_source()
+	{
+		if ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'source'))
+		{
+			return $this->registry->create('Source', array($this, $return[0]));
+		}
+		else
+		{
+			return null;
+		}
+	}
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-includes/SimplePie/Locator.php	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,372 @@
+<?php
+/**
+ * SimplePie
+ *
+ * A PHP-Based RSS and Atom Feed Framework.
+ * Takes the hard work out of managing a complete RSS/Atom solution.
+ *
+ * Copyright (c) 2004-2012, Ryan Parman, Geoffrey Sneddon, Ryan McCue, and contributors
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without modification, are
+ * permitted provided that the following conditions are met:
+ *
+ * 	* Redistributions of source code must retain the above copyright notice, this list of
+ * 	  conditions and the following disclaimer.
+ *
+ * 	* Redistributions in binary form must reproduce the above copyright notice, this list
+ * 	  of conditions and the following disclaimer in the documentation and/or other materials
+ * 	  provided with the distribution.
+ *
+ * 	* Neither the name of the SimplePie Team nor the names of its contributors may be used
+ * 	  to endorse or promote products derived from this software without specific prior
+ * 	  written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS
+ * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
+ * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS
+ * AND CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ * @package SimplePie
+ * @version 1.3.1
+ * @copyright 2004-2012 Ryan Parman, Geoffrey Sneddon, Ryan McCue
+ * @author Ryan Parman
+ * @author Geoffrey Sneddon
+ * @author Ryan McCue
+ * @link http://simplepie.org/ SimplePie
+ * @license http://www.opensource.org/licenses/bsd-license.php BSD License
+ */
+
+/**
+ * Used for feed auto-discovery
+ *
+ *
+ * This class can be overloaded with {@see SimplePie::set_locator_class()}
+ *
+ * @package SimplePie
+ */
+class SimplePie_Locator
+{
+	var $useragent;
+	var $timeout;
+	var $file;
+	var $local = array();
+	var $elsewhere = array();
+	var $cached_entities = array();
+	var $http_base;
+	var $base;
+	var $base_location = 0;
+	var $checked_feeds = 0;
+	var $max_checked_feeds = 10;
+	protected $registry;
+
+	public function __construct(SimplePie_File $file, $timeout = 10, $useragent = null, $max_checked_feeds = 10)
+	{
+		$this->file = $file;
+		$this->useragent = $useragent;
+		$this->timeout = $timeout;
+		$this->max_checked_feeds = $max_checked_feeds;
+
+		if (class_exists('DOMDocument'))
+		{
+			$this->dom = new DOMDocument();
+
+			set_error_handler(array('SimplePie_Misc', 'silence_errors'));
+			$this->dom->loadHTML($this->file->body);
+			restore_error_handler();
+		}
+		else
+		{
+			$this->dom = null;
+		}
+	}
+
+	public function set_registry(SimplePie_Registry $registry)
+	{
+		$this->registry = $registry;
+	}
+
+	public function find($type = SIMPLEPIE_LOCATOR_ALL, &$working)
+	{
+		if ($this->is_feed($this->file))
+		{
+			return $this->file;
+		}
+
+		if ($this->file->method & SIMPLEPIE_FILE_SOURCE_REMOTE)
+		{
+			$sniffer = $this->registry->create('Content_Type_Sniffer', array($this->file));
+			if ($sniffer->get_type() !== 'text/html')
+			{
+				return null;
+			}
+		}
+
+		if ($type & ~SIMPLEPIE_LOCATOR_NONE)
+		{
+			$this->get_base();
+		}
+
+		if ($type & SIMPLEPIE_LOCATOR_AUTODISCOVERY && $working = $this->autodiscovery())
+		{
+			return $working[0];
+		}
+
+		if ($type & (SIMPLEPIE_LOCATOR_LOCAL_EXTENSION | SIMPLEPIE_LOCATOR_LOCAL_BODY | SIMPLEPIE_LOCATOR_REMOTE_EXTENSION | SIMPLEPIE_LOCATOR_REMOTE_BODY) && $this->get_links())
+		{
+			if ($type & SIMPLEPIE_LOCATOR_LOCAL_EXTENSION && $working = $this->extension($this->local))
+			{
+				return $working;
+			}
+
+			if ($type & SIMPLEPIE_LOCATOR_LOCAL_BODY && $working = $this->body($this->local))
+			{
+				return $working;
+			}
+
+			if ($type & SIMPLEPIE_LOCATOR_REMOTE_EXTENSION && $working = $this->extension($this->elsewhere))
+			{
+				return $working;
+			}
+
+			if ($type & SIMPLEPIE_LOCATOR_REMOTE_BODY && $working = $this->body($this->elsewhere))
+			{
+				return $working;
+			}
+		}
+		return null;
+	}
+
+	public function is_feed($file)
+	{
+		if ($file->method & SIMPLEPIE_FILE_SOURCE_REMOTE)
+		{
+			$sniffer = $this->registry->create('Content_Type_Sniffer', array($file));
+			$sniffed = $sniffer->get_type();
+			if (in_array($sniffed, array('application/rss+xml', 'application/rdf+xml', 'text/rdf', 'application/atom+xml', 'text/xml', 'application/xml')))
+			{
+				return true;
+			}
+			else
+			{
+				return false;
+			}
+		}
+		elseif ($file->method & SIMPLEPIE_FILE_SOURCE_LOCAL)
+		{
+			return true;
+		}
+		else
+		{
+			return false;
+		}
+	}
+
+	public function get_base()
+	{
+		if ($this->dom === null)
+		{
+			throw new SimplePie_Exception('DOMDocument not found, unable to use locator');
+		}
+		$this->http_base = $this->file->url;
+		$this->base = $this->http_base;
+		$elements = $this->dom->getElementsByTagName('base');
+		foreach ($elements as $element)
+		{
+			if ($element->hasAttribute('href'))
+			{
+				$base = $this->registry->call('Misc', 'absolutize_url', array(trim($element->getAttribute('href')), $this->http_base));
+				if ($base === false)
+				{
+					continue;
+				}
+				$this->base = $base;
+				$this->base_location = method_exists($element, 'getLineNo') ? $element->getLineNo() : 0;
+				break;
+			}
+		}
+	}
+
+	public function autodiscovery()
+	{
+		$done = array();
+		$feeds = array();
+		$feeds = array_merge($feeds, $this->search_elements_by_tag('link', $done, $feeds));
+		$feeds = array_merge($feeds, $this->search_elements_by_tag('a', $done, $feeds));
+		$feeds = array_merge($feeds, $this->search_elements_by_tag('area', $done, $feeds));
+
+		if (!empty($feeds))
+		{
+			return array_values($feeds);
+		}
+		else
+		{
+			return null;
+		}
+	}
+
+	protected function search_elements_by_tag($name, &$done, $feeds)
+	{
+		if ($this->dom === null)
+		{
+			throw new SimplePie_Exception('DOMDocument not found, unable to use locator');
+		}
+
+		$links = $this->dom->getElementsByTagName($name);
+		foreach ($links as $link)
+		{
+			if ($this->checked_feeds === $this->max_checked_feeds)
+			{
+				break;
+			}
+			if ($link->hasAttribute('href') && $link->hasAttribute('rel'))
+			{
+				$rel = array_unique($this->registry->call('Misc', 'space_seperated_tokens', array(strtolower($link->getAttribute('rel')))));
+				$line = method_exists($link, 'getLineNo') ? $link->getLineNo() : 1;
+
+				if ($this->base_location < $line)
+				{
+					$href = $this->registry->call('Misc', 'absolutize_url', array(trim($link->getAttribute('href')), $this->base));
+				}
+				else
+				{
+					$href = $this->registry->call('Misc', 'absolutize_url', array(trim($link->getAttribute('href')), $this->http_base));
+				}
+				if ($href === false)
+				{
+					continue;
+				}
+
+				if (!in_array($href, $done) && in_array('feed', $rel) || (in_array('alternate', $rel) && !in_array('stylesheet', $rel) && $link->hasAttribute('type') && in_array(strtolower($this->registry->call('Misc', 'parse_mime', array($link->getAttribute('type')))), array('application/rss+xml', 'application/atom+xml'))) && !isset($feeds[$href]))
+				{
+					$this->checked_feeds++;
+					$headers = array(
+						'Accept' => 'application/atom+xml, application/rss+xml, application/rdf+xml;q=0.9, application/xml;q=0.8, text/xml;q=0.8, text/html;q=0.7, unknown/unknown;q=0.1, application/unknown;q=0.1, */*;q=0.1',
+					);
+					$feed = $this->registry->create('File', array($href, $this->timeout, 5, $headers, $this->useragent));
+					if ($feed->success && ($feed->method & SIMPLEPIE_FILE_SOURCE_REMOTE === 0 || ($feed->status_code === 200 || $feed->status_code > 206 && $feed->status_code < 300)) && $this->is_feed($feed))
+					{
+						$feeds[$href] = $feed;
+					}
+				}
+				$done[] = $href;
+			}
+		}
+
+		return $feeds;
+	}
+
+	public function get_links()
+	{
+		if ($this->dom === null)
+		{
+			throw new SimplePie_Exception('DOMDocument not found, unable to use locator');
+		}
+
+		$links = $this->dom->getElementsByTagName('a');
+		foreach ($links as $link)
+		{
+			if ($link->hasAttribute('href'))
+			{
+				$href = trim($link->getAttribute('href'));
+				$parsed = $this->registry->call('Misc', 'parse_url', array($href));
+				if ($parsed['scheme'] === '' || preg_match('/^(http(s)|feed)?$/i', $parsed['scheme']))
+				{
+					if (method_exists($link, 'getLineNo') && $this->base_location < $link->getLineNo())
+					{
+						$href = $this->registry->call('Misc', 'absolutize_url', array(trim($link->getAttribute('href')), $this->base));
+					}
+					else
+					{
+						$href = $this->registry->call('Misc', 'absolutize_url', array(trim($link->getAttribute('href')), $this->http_base));
+					}
+					if ($href === false)
+					{
+						continue;
+					}
+
+					$current = $this->registry->call('Misc', 'parse_url', array($this->file->url));
+
+					if ($parsed['authority'] === '' || $parsed['authority'] === $current['authority'])
+					{
+						$this->local[] = $href;
+					}
+					else
+					{
+						$this->elsewhere[] = $href;
+					}
+				}
+			}
+		}
+		$this->local = array_unique($this->local);
+		$this->elsewhere = array_unique($this->elsewhere);
+		if (!empty($this->local) || !empty($this->elsewhere))
+		{
+			return true;
+		}
+		return null;
+	}
+
+	public function extension(&$array)
+	{
+		foreach ($array as $key => $value)
+		{
+			if ($this->checked_feeds === $this->max_checked_feeds)
+			{
+				break;
+			}
+			if (in_array(strtolower(strrchr($value, '.')), array('.rss', '.rdf', '.atom', '.xml')))
+			{
+				$this->checked_feeds++;
+
+				$headers = array(
+					'Accept' => 'application/atom+xml, application/rss+xml, application/rdf+xml;q=0.9, application/xml;q=0.8, text/xml;q=0.8, text/html;q=0.7, unknown/unknown;q=0.1, application/unknown;q=0.1, */*;q=0.1',
+				);
+				$feed = $this->registry->create('File', array($value, $this->timeout, 5, $headers, $this->useragent));
+				if ($feed->success && ($feed->method & SIMPLEPIE_FILE_SOURCE_REMOTE === 0 || ($feed->status_code === 200 || $feed->status_code > 206 && $feed->status_code < 300)) && $this->is_feed($feed))
+				{
+					return $feed;
+				}
+				else
+				{
+					unset($array[$key]);
+				}
+			}
+		}
+		return null;
+	}
+
+	public function body(&$array)
+	{
+		foreach ($array as $key => $value)
+		{
+			if ($this->checked_feeds === $this->max_checked_feeds)
+			{
+				break;
+			}
+			if (preg_match('/(rss|rdf|atom|xml)/i', $value))
+			{
+				$this->checked_feeds++;
+				$headers = array(
+					'Accept' => 'application/atom+xml, application/rss+xml, application/rdf+xml;q=0.9, application/xml;q=0.8, text/xml;q=0.8, text/html;q=0.7, unknown/unknown;q=0.1, application/unknown;q=0.1, */*;q=0.1',
+				);
+				$feed = $this->registry->create('File', array($value, $this->timeout, 5, null, $this->useragent));
+				if ($feed->success && ($feed->method & SIMPLEPIE_FILE_SOURCE_REMOTE === 0 || ($feed->status_code === 200 || $feed->status_code > 206 && $feed->status_code < 300)) && $this->is_feed($feed))
+				{
+					return $feed;
+				}
+				else
+				{
+					unset($array[$key]);
+				}
+			}
+		}
+		return null;
+	}
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-includes/SimplePie/Misc.php	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,2247 @@
+<?php
+/**
+ * SimplePie
+ *
+ * A PHP-Based RSS and Atom Feed Framework.
+ * Takes the hard work out of managing a complete RSS/Atom solution.
+ *
+ * Copyright (c) 2004-2012, Ryan Parman, Geoffrey Sneddon, Ryan McCue, and contributors
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without modification, are
+ * permitted provided that the following conditions are met:
+ *
+ * 	* Redistributions of source code must retain the above copyright notice, this list of
+ * 	  conditions and the following disclaimer.
+ *
+ * 	* Redistributions in binary form must reproduce the above copyright notice, this list
+ * 	  of conditions and the following disclaimer in the documentation and/or other materials
+ * 	  provided with the distribution.
+ *
+ * 	* Neither the name of the SimplePie Team nor the names of its contributors may be used
+ * 	  to endorse or promote products derived from this software without specific prior
+ * 	  written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS
+ * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
+ * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS
+ * AND CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ * @package SimplePie
+ * @version 1.3.1
+ * @copyright 2004-2012 Ryan Parman, Geoffrey Sneddon, Ryan McCue
+ * @author Ryan Parman
+ * @author Geoffrey Sneddon
+ * @author Ryan McCue
+ * @link http://simplepie.org/ SimplePie
+ * @license http://www.opensource.org/licenses/bsd-license.php BSD License
+ */
+
+/**
+ * Miscellanous utilities
+ *
+ * @package SimplePie
+ */
+class SimplePie_Misc
+{
+	public static function time_hms($seconds)
+	{
+		$time = '';
+
+		$hours = floor($seconds / 3600);
+		$remainder = $seconds % 3600;
+		if ($hours > 0)
+		{
+			$time .= $hours.':';
+		}
+
+		$minutes = floor($remainder / 60);
+		$seconds = $remainder % 60;
+		if ($minutes < 10 && $hours > 0)
+		{
+			$minutes = '0' . $minutes;
+		}
+		if ($seconds < 10)
+		{
+			$seconds = '0' . $seconds;
+		}
+
+		$time .= $minutes.':';
+		$time .= $seconds;
+
+		return $time;
+	}
+
+	public static function absolutize_url($relative, $base)
+	{
+		$iri = SimplePie_IRI::absolutize(new SimplePie_IRI($base), $relative);
+		if ($iri === false)
+		{
+			return false;
+		}
+		return $iri->get_uri();
+	}
+
+	/**
+	 * Get a HTML/XML element from a HTML string
+	 *
+	 * @deprecated Use DOMDocument instead (parsing HTML with regex is bad!)
+	 * @param string $realname Element name (including namespace prefix if applicable)
+	 * @param string $string HTML document
+	 * @return array
+	 */
+	public static function get_element($realname, $string)
+	{
+		$return = array();
+		$name = preg_quote($realname, '/');
+		if (preg_match_all("/<($name)" . SIMPLEPIE_PCRE_HTML_ATTRIBUTE . "(>(.*)<\/$name>|(\/)?>)/siU", $string, $matches, PREG_SET_ORDER | PREG_OFFSET_CAPTURE))
+		{
+			for ($i = 0, $total_matches = count($matches); $i < $total_matches; $i++)
+			{
+				$return[$i]['tag'] = $realname;
+				$return[$i]['full'] = $matches[$i][0][0];
+				$return[$i]['offset'] = $matches[$i][0][1];
+				if (strlen($matches[$i][3][0]) <= 2)
+				{
+					$return[$i]['self_closing'] = true;
+				}
+				else
+				{
+					$return[$i]['self_closing'] = false;
+					$return[$i]['content'] = $matches[$i][4][0];
+				}
+				$return[$i]['attribs'] = array();
+				if (isset($matches[$i][2][0]) && preg_match_all('/[\x09\x0A\x0B\x0C\x0D\x20]+([^\x09\x0A\x0B\x0C\x0D\x20\x2F\x3E][^\x09\x0A\x0B\x0C\x0D\x20\x2F\x3D\x3E]*)(?:[\x09\x0A\x0B\x0C\x0D\x20]*=[\x09\x0A\x0B\x0C\x0D\x20]*(?:"([^"]*)"|\'([^\']*)\'|([^\x09\x0A\x0B\x0C\x0D\x20\x22\x27\x3E][^\x09\x0A\x0B\x0C\x0D\x20\x3E]*)?))?/', ' ' . $matches[$i][2][0] . ' ', $attribs, PREG_SET_ORDER))
+				{
+					for ($j = 0, $total_attribs = count($attribs); $j < $total_attribs; $j++)
+					{
+						if (count($attribs[$j]) === 2)
+						{
+							$attribs[$j][2] = $attribs[$j][1];
+						}
+						$return[$i]['attribs'][strtolower($attribs[$j][1])]['data'] = SimplePie_Misc::entities_decode(end($attribs[$j]), 'UTF-8');
+					}
+				}
+			}
+		}
+		return $return;
+	}
+
+	public static function element_implode($element)
+	{
+		$full = "<$element[tag]";
+		foreach ($element['attribs'] as $key => $value)
+		{
+			$key = strtolower($key);
+			$full .= " $key=\"" . htmlspecialchars($value['data']) . '"';
+		}
+		if ($element['self_closing'])
+		{
+			$full .= ' />';
+		}
+		else
+		{
+			$full .= ">$element[content]</$element[tag]>";
+		}
+		return $full;
+	}
+
+	public static function error($message, $level, $file, $line)
+	{
+		if ((ini_get('error_reporting') & $level) > 0)
+		{
+			switch ($level)
+			{
+				case E_USER_ERROR:
+					$note = 'PHP Error';
+					break;
+				case E_USER_WARNING:
+					$note = 'PHP Warning';
+					break;
+				case E_USER_NOTICE:
+					$note = 'PHP Notice';
+					break;
+				default:
+					$note = 'Unknown Error';
+					break;
+			}
+
+			$log_error = true;
+			if (!function_exists('error_log'))
+			{
+				$log_error = false;
+			}
+
+			$log_file = @ini_get('error_log');
+			if (!empty($log_file) && ('syslog' !== $log_file) && !@is_writable($log_file))
+			{
+				$log_error = false;
+			}
+
+			if ($log_error)
+			{
+				@error_log("$note: $message in $file on line $line", 0);
+			}
+		}
+
+		return $message;
+	}
+
+	public static function fix_protocol($url, $http = 1)
+	{
+		$url = SimplePie_Misc::normalize_url($url);
+		$parsed = SimplePie_Misc::parse_url($url);
+		if ($parsed['scheme'] !== '' && $parsed['scheme'] !== 'http' && $parsed['scheme'] !== 'https')
+		{
+			return SimplePie_Misc::fix_protocol(SimplePie_Misc::compress_parse_url('http', $parsed['authority'], $parsed['path'], $parsed['query'], $parsed['fragment']), $http);
+		}
+
+		if ($parsed['scheme'] === '' && $parsed['authority'] === '' && !file_exists($url))
+		{
+			return SimplePie_Misc::fix_protocol(SimplePie_Misc::compress_parse_url('http', $parsed['path'], '', $parsed['query'], $parsed['fragment']), $http);
+		}
+
+		if ($http === 2 && $parsed['scheme'] !== '')
+		{
+			return "feed:$url";
+		}
+		elseif ($http === 3 && strtolower($parsed['scheme']) === 'http')
+		{
+			return substr_replace($url, 'podcast', 0, 4);
+		}
+		elseif ($http === 4 && strtolower($parsed['scheme']) === 'http')
+		{
+			return substr_replace($url, 'itpc', 0, 4);
+		}
+		else
+		{
+			return $url;
+		}
+	}
+
+	public static function parse_url($url)
+	{
+		$iri = new SimplePie_IRI($url);
+		return array(
+			'scheme' => (string) $iri->scheme,
+			'authority' => (string) $iri->authority,
+			'path' => (string) $iri->path,
+			'query' => (string) $iri->query,
+			'fragment' => (string) $iri->fragment
+		);
+	}
+
+	public static function compress_parse_url($scheme = '', $authority = '', $path = '', $query = '', $fragment = '')
+	{
+		$iri = new SimplePie_IRI('');
+		$iri->scheme = $scheme;
+		$iri->authority = $authority;
+		$iri->path = $path;
+		$iri->query = $query;
+		$iri->fragment = $fragment;
+		return $iri->get_uri();
+	}
+
+	public static function normalize_url($url)
+	{
+		$iri = new SimplePie_IRI($url);
+		return $iri->get_uri();
+	}
+
+	public static function percent_encoding_normalization($match)
+	{
+		$integer = hexdec($match[1]);
+		if ($integer >= 0x41 && $integer <= 0x5A || $integer >= 0x61 && $integer <= 0x7A || $integer >= 0x30 && $integer <= 0x39 || $integer === 0x2D || $integer === 0x2E || $integer === 0x5F || $integer === 0x7E)
+		{
+			return chr($integer);
+		}
+		else
+		{
+			return strtoupper($match[0]);
+		}
+	}
+
+	/**
+	 * Converts a Windows-1252 encoded string to a UTF-8 encoded string
+	 *
+	 * @static
+	 * @param string $string Windows-1252 encoded string
+	 * @return string UTF-8 encoded string
+	 */
+	public static function windows_1252_to_utf8($string)
+	{
+		static $convert_table = array("\x80" => "\xE2\x82\xAC", "\x81" => "\xEF\xBF\xBD", "\x82" => "\xE2\x80\x9A", "\x83" => "\xC6\x92", "\x84" => "\xE2\x80\x9E", "\x85" => "\xE2\x80\xA6", "\x86" => "\xE2\x80\xA0", "\x87" => "\xE2\x80\xA1", "\x88" => "\xCB\x86", "\x89" => "\xE2\x80\xB0", "\x8A" => "\xC5\xA0", "\x8B" => "\xE2\x80\xB9", "\x8C" => "\xC5\x92", "\x8D" => "\xEF\xBF\xBD", "\x8E" => "\xC5\xBD", "\x8F" => "\xEF\xBF\xBD", "\x90" => "\xEF\xBF\xBD", "\x91" => "\xE2\x80\x98", "\x92" => "\xE2\x80\x99", "\x93" => "\xE2\x80\x9C", "\x94" => "\xE2\x80\x9D", "\x95" => "\xE2\x80\xA2", "\x96" => "\xE2\x80\x93", "\x97" => "\xE2\x80\x94", "\x98" => "\xCB\x9C", "\x99" => "\xE2\x84\xA2", "\x9A" => "\xC5\xA1", "\x9B" => "\xE2\x80\xBA", "\x9C" => "\xC5\x93", "\x9D" => "\xEF\xBF\xBD", "\x9E" => "\xC5\xBE", "\x9F" => "\xC5\xB8", "\xA0" => "\xC2\xA0", "\xA1" => "\xC2\xA1", "\xA2" => "\xC2\xA2", "\xA3" => "\xC2\xA3", "\xA4" => "\xC2\xA4", "\xA5" => "\xC2\xA5", "\xA6" => "\xC2\xA6", "\xA7" => "\xC2\xA7", "\xA8" => "\xC2\xA8", "\xA9" => "\xC2\xA9", "\xAA" => "\xC2\xAA", "\xAB" => "\xC2\xAB", "\xAC" => "\xC2\xAC", "\xAD" => "\xC2\xAD", "\xAE" => "\xC2\xAE", "\xAF" => "\xC2\xAF", "\xB0" => "\xC2\xB0", "\xB1" => "\xC2\xB1", "\xB2" => "\xC2\xB2", "\xB3" => "\xC2\xB3", "\xB4" => "\xC2\xB4", "\xB5" => "\xC2\xB5", "\xB6" => "\xC2\xB6", "\xB7" => "\xC2\xB7", "\xB8" => "\xC2\xB8", "\xB9" => "\xC2\xB9", "\xBA" => "\xC2\xBA", "\xBB" => "\xC2\xBB", "\xBC" => "\xC2\xBC", "\xBD" => "\xC2\xBD", "\xBE" => "\xC2\xBE", "\xBF" => "\xC2\xBF", "\xC0" => "\xC3\x80", "\xC1" => "\xC3\x81", "\xC2" => "\xC3\x82", "\xC3" => "\xC3\x83", "\xC4" => "\xC3\x84", "\xC5" => "\xC3\x85", "\xC6" => "\xC3\x86", "\xC7" => "\xC3\x87", "\xC8" => "\xC3\x88", "\xC9" => "\xC3\x89", "\xCA" => "\xC3\x8A", "\xCB" => "\xC3\x8B", "\xCC" => "\xC3\x8C", "\xCD" => "\xC3\x8D", "\xCE" => "\xC3\x8E", "\xCF" => "\xC3\x8F", "\xD0" => "\xC3\x90", "\xD1" => "\xC3\x91", "\xD2" => "\xC3\x92", "\xD3" => "\xC3\x93", "\xD4" => "\xC3\x94", "\xD5" => "\xC3\x95", "\xD6" => "\xC3\x96", "\xD7" => "\xC3\x97", "\xD8" => "\xC3\x98", "\xD9" => "\xC3\x99", "\xDA" => "\xC3\x9A", "\xDB" => "\xC3\x9B", "\xDC" => "\xC3\x9C", "\xDD" => "\xC3\x9D", "\xDE" => "\xC3\x9E", "\xDF" => "\xC3\x9F", "\xE0" => "\xC3\xA0", "\xE1" => "\xC3\xA1", "\xE2" => "\xC3\xA2", "\xE3" => "\xC3\xA3", "\xE4" => "\xC3\xA4", "\xE5" => "\xC3\xA5", "\xE6" => "\xC3\xA6", "\xE7" => "\xC3\xA7", "\xE8" => "\xC3\xA8", "\xE9" => "\xC3\xA9", "\xEA" => "\xC3\xAA", "\xEB" => "\xC3\xAB", "\xEC" => "\xC3\xAC", "\xED" => "\xC3\xAD", "\xEE" => "\xC3\xAE", "\xEF" => "\xC3\xAF", "\xF0" => "\xC3\xB0", "\xF1" => "\xC3\xB1", "\xF2" => "\xC3\xB2", "\xF3" => "\xC3\xB3", "\xF4" => "\xC3\xB4", "\xF5" => "\xC3\xB5", "\xF6" => "\xC3\xB6", "\xF7" => "\xC3\xB7", "\xF8" => "\xC3\xB8", "\xF9" => "\xC3\xB9", "\xFA" => "\xC3\xBA", "\xFB" => "\xC3\xBB", "\xFC" => "\xC3\xBC", "\xFD" => "\xC3\xBD", "\xFE" => "\xC3\xBE", "\xFF" => "\xC3\xBF");
+
+		return strtr($string, $convert_table);
+	}
+
+	/**
+	 * Change a string from one encoding to another
+	 *
+	 * @param string $data Raw data in $input encoding
+	 * @param string $input Encoding of $data
+	 * @param string $output Encoding you want
+	 * @return string|boolean False if we can't convert it
+	 */
+	public static function change_encoding($data, $input, $output)
+	{
+		$input = SimplePie_Misc::encoding($input);
+		$output = SimplePie_Misc::encoding($output);
+
+		// We fail to fail on non US-ASCII bytes
+		if ($input === 'US-ASCII')
+		{
+			static $non_ascii_octects = '';
+			if (!$non_ascii_octects)
+			{
+				for ($i = 0x80; $i <= 0xFF; $i++)
+				{
+					$non_ascii_octects .= chr($i);
+				}
+			}
+			$data = substr($data, 0, strcspn($data, $non_ascii_octects));
+		}
+
+		// This is first, as behaviour of this is completely predictable
+		if ($input === 'windows-1252' && $output === 'UTF-8')
+		{
+			return SimplePie_Misc::windows_1252_to_utf8($data);
+		}
+		// This is second, as behaviour of this varies only with PHP version (the middle part of this expression checks the encoding is supported).
+		elseif (function_exists('mb_convert_encoding') && ($return = SimplePie_Misc::change_encoding_mbstring($data, $input, $output)))
+		{
+			return $return;
+ 		}
+		// This is last, as behaviour of this varies with OS userland and PHP version
+		elseif (function_exists('iconv') && ($return = SimplePie_Misc::change_encoding_iconv($data, $input, $output)))
+		{
+			return $return;
+		}
+		// If we can't do anything, just fail
+		else
+		{
+			return false;
+		}
+	}
+
+	protected static function change_encoding_mbstring($data, $input, $output)
+	{
+		if ($input === 'windows-949')
+		{
+			$input = 'EUC-KR';
+		}
+		if ($output === 'windows-949')
+		{
+			$output = 'EUC-KR';
+		}
+		if ($input === 'Windows-31J')
+		{
+			$input = 'SJIS';
+		}
+		if ($output === 'Windows-31J')
+		{
+			$output = 'SJIS';
+		}
+
+		// Check that the encoding is supported
+		if (@mb_convert_encoding("\x80", 'UTF-16BE', $input) === "\x00\x80")
+		{
+			return false;
+		}
+		if (!in_array($input, mb_list_encodings()))
+		{
+			return false;
+		}
+
+		// Let's do some conversion
+		if ($return = @mb_convert_encoding($data, $output, $input))
+		{
+			return $return;
+		}
+
+		return false;
+	}
+
+	protected static function change_encoding_iconv($data, $input, $output)
+	{
+		return @iconv($input, $output, $data);
+	}
+
+	/**
+	 * Normalize an encoding name
+	 *
+	 * This is automatically generated by create.php
+	 *
+	 * To generate it, run `php create.php` on the command line, and copy the
+	 * output to replace this function.
+	 *
+	 * @param string $charset Character set to standardise
+	 * @return string Standardised name
+	 */
+	public static function encoding($charset)
+	{
+		// Normalization from UTS #22
+		switch (strtolower(preg_replace('/(?:[^a-zA-Z0-9]+|([^0-9])0+)/', '\1', $charset)))
+		{
+			case 'adobestandardencoding':
+			case 'csadobestandardencoding':
+				return 'Adobe-Standard-Encoding';
+
+			case 'adobesymbolencoding':
+			case 'cshppsmath':
+				return 'Adobe-Symbol-Encoding';
+
+			case 'ami1251':
+			case 'amiga1251':
+				return 'Amiga-1251';
+
+			case 'ansix31101983':
+			case 'csat5001983':
+			case 'csiso99naplps':
+			case 'isoir99':
+			case 'naplps':
+				return 'ANSI_X3.110-1983';
+
+			case 'arabic7':
+			case 'asmo449':
+			case 'csiso89asmo449':
+			case 'iso9036':
+			case 'isoir89':
+				return 'ASMO_449';
+
+			case 'big5':
+			case 'csbig5':
+				return 'Big5';
+
+			case 'big5hkscs':
+				return 'Big5-HKSCS';
+
+			case 'bocu1':
+			case 'csbocu1':
+				return 'BOCU-1';
+
+			case 'brf':
+			case 'csbrf':
+				return 'BRF';
+
+			case 'bs4730':
+			case 'csiso4unitedkingdom':
+			case 'gb':
+			case 'iso646gb':
+			case 'isoir4':
+			case 'uk':
+				return 'BS_4730';
+
+			case 'bsviewdata':
+			case 'csiso47bsviewdata':
+			case 'isoir47':
+				return 'BS_viewdata';
+
+			case 'cesu8':
+			case 'cscesu8':
+				return 'CESU-8';
+
+			case 'ca':
+			case 'csa71':
+			case 'csaz243419851':
+			case 'csiso121canadian1':
+			case 'iso646ca':
+			case 'isoir121':
+				return 'CSA_Z243.4-1985-1';
+
+			case 'csa72':
+			case 'csaz243419852':
+			case 'csiso122canadian2':
+			case 'iso646ca2':
+			case 'isoir122':
+				return 'CSA_Z243.4-1985-2';
+
+			case 'csaz24341985gr':
+			case 'csiso123csaz24341985gr':
+			case 'isoir123':
+				return 'CSA_Z243.4-1985-gr';
+
+			case 'csiso139csn369103':
+			case 'csn369103':
+			case 'isoir139':
+				return 'CSN_369103';
+
+			case 'csdecmcs':
+			case 'dec':
+			case 'decmcs':
+				return 'DEC-MCS';
+
+			case 'csiso21german':
+			case 'de':
+			case 'din66003':
+			case 'iso646de':
+			case 'isoir21':
+				return 'DIN_66003';
+
+			case 'csdkus':
+			case 'dkus':
+				return 'dk-us';
+
+			case 'csiso646danish':
+			case 'dk':
+			case 'ds2089':
+			case 'iso646dk':
+				return 'DS_2089';
+
+			case 'csibmebcdicatde':
+			case 'ebcdicatde':
+				return 'EBCDIC-AT-DE';
+
+			case 'csebcdicatdea':
+			case 'ebcdicatdea':
+				return 'EBCDIC-AT-DE-A';
+
+			case 'csebcdiccafr':
+			case 'ebcdiccafr':
+				return 'EBCDIC-CA-FR';
+
+			case 'csebcdicdkno':
+			case 'ebcdicdkno':
+				return 'EBCDIC-DK-NO';
+
+			case 'csebcdicdknoa':
+			case 'ebcdicdknoa':
+				return 'EBCDIC-DK-NO-A';
+
+			case 'csebcdices':
+			case 'ebcdices':
+				return 'EBCDIC-ES';
+
+			case 'csebcdicesa':
+			case 'ebcdicesa':
+				return 'EBCDIC-ES-A';
+
+			case 'csebcdicess':
+			case 'ebcdicess':
+				return 'EBCDIC-ES-S';
+
+			case 'csebcdicfise':
+			case 'ebcdicfise':
+				return 'EBCDIC-FI-SE';
+
+			case 'csebcdicfisea':
+			case 'ebcdicfisea':
+				return 'EBCDIC-FI-SE-A';
+
+			case 'csebcdicfr':
+			case 'ebcdicfr':
+				return 'EBCDIC-FR';
+
+			case 'csebcdicit':
+			case 'ebcdicit':
+				return 'EBCDIC-IT';
+
+			case 'csebcdicpt':
+			case 'ebcdicpt':
+				return 'EBCDIC-PT';
+
+			case 'csebcdicuk':
+			case 'ebcdicuk':
+				return 'EBCDIC-UK';
+
+			case 'csebcdicus':
+			case 'ebcdicus':
+				return 'EBCDIC-US';
+
+			case 'csiso111ecmacyrillic':
+			case 'ecmacyrillic':
+			case 'isoir111':
+			case 'koi8e':
+				return 'ECMA-cyrillic';
+
+			case 'csiso17spanish':
+			case 'es':
+			case 'iso646es':
+			case 'isoir17':
+				return 'ES';
+
+			case 'csiso85spanish2':
+			case 'es2':
+			case 'iso646es2':
+			case 'isoir85':
+				return 'ES2';
+
+			case 'cseucpkdfmtjapanese':
+			case 'eucjp':
+			case 'extendedunixcodepackedformatforjapanese':
+				return 'EUC-JP';
+
+			case 'cseucfixwidjapanese':
+			case 'extendedunixcodefixedwidthforjapanese':
+				return 'Extended_UNIX_Code_Fixed_Width_for_Japanese';
+
+			case 'gb18030':
+				return 'GB18030';
+
+			case 'chinese':
+			case 'cp936':
+			case 'csgb2312':
+			case 'csiso58gb231280':
+			case 'gb2312':
+			case 'gb231280':
+			case 'gbk':
+			case 'isoir58':
+			case 'ms936':
+			case 'windows936':
+				return 'GBK';
+
+			case 'cn':
+			case 'csiso57gb1988':
+			case 'gb198880':
+			case 'iso646cn':
+			case 'isoir57':
+				return 'GB_1988-80';
+
+			case 'csiso153gost1976874':
+			case 'gost1976874':
+			case 'isoir153':
+			case 'stsev35888':
+				return 'GOST_19768-74';
+
+			case 'csiso150':
+			case 'csiso150greekccitt':
+			case 'greekccitt':
+			case 'isoir150':
+				return 'greek-ccitt';
+
+			case 'csiso88greek7':
+			case 'greek7':
+			case 'isoir88':
+				return 'greek7';
+
+			case 'csiso18greek7old':
+			case 'greek7old':
+			case 'isoir18':
+				return 'greek7-old';
+
+			case 'cshpdesktop':
+			case 'hpdesktop':
+				return 'HP-DeskTop';
+
+			case 'cshplegal':
+			case 'hplegal':
+				return 'HP-Legal';
+
+			case 'cshpmath8':
+			case 'hpmath8':
+				return 'HP-Math8';
+
+			case 'cshppifont':
+			case 'hppifont':
+				return 'HP-Pi-font';
+
+			case 'cshproman8':
+			case 'hproman8':
+			case 'r8':
+			case 'roman8':
+				return 'hp-roman8';
+
+			case 'hzgb2312':
+				return 'HZ-GB-2312';
+
+			case 'csibmsymbols':
+			case 'ibmsymbols':
+				return 'IBM-Symbols';
+
+			case 'csibmthai':
+			case 'ibmthai':
+				return 'IBM-Thai';
+
+			case 'cp37':
+			case 'csibm37':
+			case 'ebcdiccpca':
+			case 'ebcdiccpnl':
+			case 'ebcdiccpus':
+			case 'ebcdiccpwt':
+			case 'ibm37':
+				return 'IBM037';
+
+			case 'cp38':
+			case 'csibm38':
+			case 'ebcdicint':
+			case 'ibm38':
+				return 'IBM038';
+
+			case 'cp273':
+			case 'csibm273':
+			case 'ibm273':
+				return 'IBM273';
+
+			case 'cp274':
+			case 'csibm274':
+			case 'ebcdicbe':
+			case 'ibm274':
+				return 'IBM274';
+
+			case 'cp275':
+			case 'csibm275':
+			case 'ebcdicbr':
+			case 'ibm275':
+				return 'IBM275';
+
+			case 'csibm277':
+			case 'ebcdiccpdk':
+			case 'ebcdiccpno':
+			case 'ibm277':
+				return 'IBM277';
+
+			case 'cp278':
+			case 'csibm278':
+			case 'ebcdiccpfi':
+			case 'ebcdiccpse':
+			case 'ibm278':
+				return 'IBM278';
+
+			case 'cp280':
+			case 'csibm280':
+			case 'ebcdiccpit':
+			case 'ibm280':
+				return 'IBM280';
+
+			case 'cp281':
+			case 'csibm281':
+			case 'ebcdicjpe':
+			case 'ibm281':
+				return 'IBM281';
+
+			case 'cp284':
+			case 'csibm284':
+			case 'ebcdiccpes':
+			case 'ibm284':
+				return 'IBM284';
+
+			case 'cp285':
+			case 'csibm285':
+			case 'ebcdiccpgb':
+			case 'ibm285':
+				return 'IBM285';
+
+			case 'cp290':
+			case 'csibm290':
+			case 'ebcdicjpkana':
+			case 'ibm290':
+				return 'IBM290';
+
+			case 'cp297':
+			case 'csibm297':
+			case 'ebcdiccpfr':
+			case 'ibm297':
+				return 'IBM297';
+
+			case 'cp420':
+			case 'csibm420':
+			case 'ebcdiccpar1':
+			case 'ibm420':
+				return 'IBM420';
+
+			case 'cp423':
+			case 'csibm423':
+			case 'ebcdiccpgr':
+			case 'ibm423':
+				return 'IBM423';
+
+			case 'cp424':
+			case 'csibm424':
+			case 'ebcdiccphe':
+			case 'ibm424':
+				return 'IBM424';
+
+			case '437':
+			case 'cp437':
+			case 'cspc8codepage437':
+			case 'ibm437':
+				return 'IBM437';
+
+			case 'cp500':
+			case 'csibm500':
+			case 'ebcdiccpbe':
+			case 'ebcdiccpch':
+			case 'ibm500':
+				return 'IBM500';
+
+			case 'cp775':
+			case 'cspc775baltic':
+			case 'ibm775':
+				return 'IBM775';
+
+			case '850':
+			case 'cp850':
+			case 'cspc850multilingual':
+			case 'ibm850':
+				return 'IBM850';
+
+			case '851':
+			case 'cp851':
+			case 'csibm851':
+			case 'ibm851':
+				return 'IBM851';
+
+			case '852':
+			case 'cp852':
+			case 'cspcp852':
+			case 'ibm852':
+				return 'IBM852';
+
+			case '855':
+			case 'cp855':
+			case 'csibm855':
+			case 'ibm855':
+				return 'IBM855';
+
+			case '857':
+			case 'cp857':
+			case 'csibm857':
+			case 'ibm857':
+				return 'IBM857';
+
+			case 'ccsid858':
+			case 'cp858':
+			case 'ibm858':
+			case 'pcmultilingual850euro':
+				return 'IBM00858';
+
+			case '860':
+			case 'cp860':
+			case 'csibm860':
+			case 'ibm860':
+				return 'IBM860';
+
+			case '861':
+			case 'cp861':
+			case 'cpis':
+			case 'csibm861':
+			case 'ibm861':
+				return 'IBM861';
+
+			case '862':
+			case 'cp862':
+			case 'cspc862latinhebrew':
+			case 'ibm862':
+				return 'IBM862';
+
+			case '863':
+			case 'cp863':
+			case 'csibm863':
+			case 'ibm863':
+				return 'IBM863';
+
+			case 'cp864':
+			case 'csibm864':
+			case 'ibm864':
+				return 'IBM864';
+
+			case '865':
+			case 'cp865':
+			case 'csibm865':
+			case 'ibm865':
+				return 'IBM865';
+
+			case '866':
+			case 'cp866':
+			case 'csibm866':
+			case 'ibm866':
+				return 'IBM866';
+
+			case 'cp868':
+			case 'cpar':
+			case 'csibm868':
+			case 'ibm868':
+				return 'IBM868';
+
+			case '869':
+			case 'cp869':
+			case 'cpgr':
+			case 'csibm869':
+			case 'ibm869':
+				return 'IBM869';
+
+			case 'cp870':
+			case 'csibm870':
+			case 'ebcdiccproece':
+			case 'ebcdiccpyu':
+			case 'ibm870':
+				return 'IBM870';
+
+			case 'cp871':
+			case 'csibm871':
+			case 'ebcdiccpis':
+			case 'ibm871':
+				return 'IBM871';
+
+			case 'cp880':
+			case 'csibm880':
+			case 'ebcdiccyrillic':
+			case 'ibm880':
+				return 'IBM880';
+
+			case 'cp891':
+			case 'csibm891':
+			case 'ibm891':
+				return 'IBM891';
+
+			case 'cp903':
+			case 'csibm903':
+			case 'ibm903':
+				return 'IBM903';
+
+			case '904':
+			case 'cp904':
+			case 'csibbm904':
+			case 'ibm904':
+				return 'IBM904';
+
+			case 'cp905':
+			case 'csibm905':
+			case 'ebcdiccptr':
+			case 'ibm905':
+				return 'IBM905';
+
+			case 'cp918':
+			case 'csibm918':
+			case 'ebcdiccpar2':
+			case 'ibm918':
+				return 'IBM918';
+
+			case 'ccsid924':
+			case 'cp924':
+			case 'ebcdiclatin9euro':
+			case 'ibm924':
+				return 'IBM00924';
+
+			case 'cp1026':
+			case 'csibm1026':
+			case 'ibm1026':
+				return 'IBM1026';
+
+			case 'ibm1047':
+				return 'IBM1047';
+
+			case 'ccsid1140':
+			case 'cp1140':
+			case 'ebcdicus37euro':
+			case 'ibm1140':
+				return 'IBM01140';
+
+			case 'ccsid1141':
+			case 'cp1141':
+			case 'ebcdicde273euro':
+			case 'ibm1141':
+				return 'IBM01141';
+
+			case 'ccsid1142':
+			case 'cp1142':
+			case 'ebcdicdk277euro':
+			case 'ebcdicno277euro':
+			case 'ibm1142':
+				return 'IBM01142';
+
+			case 'ccsid1143':
+			case 'cp1143':
+			case 'ebcdicfi278euro':
+			case 'ebcdicse278euro':
+			case 'ibm1143':
+				return 'IBM01143';
+
+			case 'ccsid1144':
+			case 'cp1144':
+			case 'ebcdicit280euro':
+			case 'ibm1144':
+				return 'IBM01144';
+
+			case 'ccsid1145':
+			case 'cp1145':
+			case 'ebcdices284euro':
+			case 'ibm1145':
+				return 'IBM01145';
+
+			case 'ccsid1146':
+			case 'cp1146':
+			case 'ebcdicgb285euro':
+			case 'ibm1146':
+				return 'IBM01146';
+
+			case 'ccsid1147':
+			case 'cp1147':
+			case 'ebcdicfr297euro':
+			case 'ibm1147':
+				return 'IBM01147';
+
+			case 'ccsid1148':
+			case 'cp1148':
+			case 'ebcdicinternational500euro':
+			case 'ibm1148':
+				return 'IBM01148';
+
+			case 'ccsid1149':
+			case 'cp1149':
+			case 'ebcdicis871euro':
+			case 'ibm1149':
+				return 'IBM01149';
+
+			case 'csiso143iecp271':
+			case 'iecp271':
+			case 'isoir143':
+				return 'IEC_P27-1';
+
+			case 'csiso49inis':
+			case 'inis':
+			case 'isoir49':
+				return 'INIS';
+
+			case 'csiso50inis8':
+			case 'inis8':
+			case 'isoir50':
+				return 'INIS-8';
+
+			case 'csiso51iniscyrillic':
+			case 'iniscyrillic':
+			case 'isoir51':
+				return 'INIS-cyrillic';
+
+			case 'csinvariant':
+			case 'invariant':
+				return 'INVARIANT';
+
+			case 'iso2022cn':
+				return 'ISO-2022-CN';
+
+			case 'iso2022cnext':
+				return 'ISO-2022-CN-EXT';
+
+			case 'csiso2022jp':
+			case 'iso2022jp':
+				return 'ISO-2022-JP';
+
+			case 'csiso2022jp2':
+			case 'iso2022jp2':
+				return 'ISO-2022-JP-2';
+
+			case 'csiso2022kr':
+			case 'iso2022kr':
+				return 'ISO-2022-KR';
+
+			case 'cswindows30latin1':
+			case 'iso88591windows30latin1':
+				return 'ISO-8859-1-Windows-3.0-Latin-1';
+
+			case 'cswindows31latin1':
+			case 'iso88591windows31latin1':
+				return 'ISO-8859-1-Windows-3.1-Latin-1';
+
+			case 'csisolatin2':
+			case 'iso88592':
+			case 'iso885921987':
+			case 'isoir101':
+			case 'l2':
+			case 'latin2':
+				return 'ISO-8859-2';
+
+			case 'cswindows31latin2':
+			case 'iso88592windowslatin2':
+				return 'ISO-8859-2-Windows-Latin-2';
+
+			case 'csisolatin3':
+			case 'iso88593':
+			case 'iso885931988':
+			case 'isoir109':
+			case 'l3':
+			case 'latin3':
+				return 'ISO-8859-3';
+
+			case 'csisolatin4':
+			case 'iso88594':
+			case 'iso885941988':
+			case 'isoir110':
+			case 'l4':
+			case 'latin4':
+				return 'ISO-8859-4';
+
+			case 'csisolatincyrillic':
+			case 'cyrillic':
+			case 'iso88595':
+			case 'iso885951988':
+			case 'isoir144':
+				return 'ISO-8859-5';
+
+			case 'arabic':
+			case 'asmo708':
+			case 'csisolatinarabic':
+			case 'ecma114':
+			case 'iso88596':
+			case 'iso885961987':
+			case 'isoir127':
+				return 'ISO-8859-6';
+
+			case 'csiso88596e':
+			case 'iso88596e':
+				return 'ISO-8859-6-E';
+
+			case 'csiso88596i':
+			case 'iso88596i':
+				return 'ISO-8859-6-I';
+
+			case 'csisolatingreek':
+			case 'ecma118':
+			case 'elot928':
+			case 'greek':
+			case 'greek8':
+			case 'iso88597':
+			case 'iso885971987':
+			case 'isoir126':
+				return 'ISO-8859-7';
+
+			case 'csisolatinhebrew':
+			case 'hebrew':
+			case 'iso88598':
+			case 'iso885981988':
+			case 'isoir138':
+				return 'ISO-8859-8';
+
+			case 'csiso88598e':
+			case 'iso88598e':
+				return 'ISO-8859-8-E';
+
+			case 'csiso88598i':
+			case 'iso88598i':
+				return 'ISO-8859-8-I';
+
+			case 'cswindows31latin5':
+			case 'iso88599windowslatin5':
+				return 'ISO-8859-9-Windows-Latin-5';
+
+			case 'csisolatin6':
+			case 'iso885910':
+			case 'iso8859101992':
+			case 'isoir157':
+			case 'l6':
+			case 'latin6':
+				return 'ISO-8859-10';
+
+			case 'iso885913':
+				return 'ISO-8859-13';
+
+			case 'iso885914':
+			case 'iso8859141998':
+			case 'isoceltic':
+			case 'isoir199':
+			case 'l8':
+			case 'latin8':
+				return 'ISO-8859-14';
+
+			case 'iso885915':
+			case 'latin9':
+				return 'ISO-8859-15';
+
+			case 'iso885916':
+			case 'iso8859162001':
+			case 'isoir226':
+			case 'l10':
+			case 'latin10':
+				return 'ISO-8859-16';
+
+			case 'iso10646j1':
+				return 'ISO-10646-J-1';
+
+			case 'csunicode':
+			case 'iso10646ucs2':
+				return 'ISO-10646-UCS-2';
+
+			case 'csucs4':
+			case 'iso10646ucs4':
+				return 'ISO-10646-UCS-4';
+
+			case 'csunicodeascii':
+			case 'iso10646ucsbasic':
+				return 'ISO-10646-UCS-Basic';
+
+			case 'csunicodelatin1':
+			case 'iso10646':
+			case 'iso10646unicodelatin1':
+				return 'ISO-10646-Unicode-Latin1';
+
+			case 'csiso10646utf1':
+			case 'iso10646utf1':
+				return 'ISO-10646-UTF-1';
+
+			case 'csiso115481':
+			case 'iso115481':
+			case 'isotr115481':
+				return 'ISO-11548-1';
+
+			case 'csiso90':
+			case 'isoir90':
+				return 'iso-ir-90';
+
+			case 'csunicodeibm1261':
+			case 'isounicodeibm1261':
+				return 'ISO-Unicode-IBM-1261';
+
+			case 'csunicodeibm1264':
+			case 'isounicodeibm1264':
+				return 'ISO-Unicode-IBM-1264';
+
+			case 'csunicodeibm1265':
+			case 'isounicodeibm1265':
+				return 'ISO-Unicode-IBM-1265';
+
+			case 'csunicodeibm1268':
+			case 'isounicodeibm1268':
+				return 'ISO-Unicode-IBM-1268';
+
+			case 'csunicodeibm1276':
+			case 'isounicodeibm1276':
+				return 'ISO-Unicode-IBM-1276';
+
+			case 'csiso646basic1983':
+			case 'iso646basic1983':
+			case 'ref':
+				return 'ISO_646.basic:1983';
+
+			case 'csiso2intlrefversion':
+			case 'irv':
+			case 'iso646irv1983':
+			case 'isoir2':
+				return 'ISO_646.irv:1983';
+
+			case 'csiso2033':
+			case 'e13b':
+			case 'iso20331983':
+			case 'isoir98':
+				return 'ISO_2033-1983';
+
+			case 'csiso5427cyrillic':
+			case 'iso5427':
+			case 'isoir37':
+				return 'ISO_5427';
+
+			case 'iso5427cyrillic1981':
+			case 'iso54271981':
+			case 'isoir54':
+				return 'ISO_5427:1981';
+
+			case 'csiso5428greek':
+			case 'iso54281980':
+			case 'isoir55':
+				return 'ISO_5428:1980';
+
+			case 'csiso6937add':
+			case 'iso6937225':
+			case 'isoir152':
+				return 'ISO_6937-2-25';
+
+			case 'csisotextcomm':
+			case 'iso69372add':
+			case 'isoir142':
+				return 'ISO_6937-2-add';
+
+			case 'csiso8859supp':
+			case 'iso8859supp':
+			case 'isoir154':
+			case 'latin125':
+				return 'ISO_8859-supp';
+
+			case 'csiso10367box':
+			case 'iso10367box':
+			case 'isoir155':
+				return 'ISO_10367-box';
+
+			case 'csiso15italian':
+			case 'iso646it':
+			case 'isoir15':
+			case 'it':
+				return 'IT';
+
+			case 'csiso13jisc6220jp':
+			case 'isoir13':
+			case 'jisc62201969':
+			case 'jisc62201969jp':
+			case 'katakana':
+			case 'x2017':
+				return 'JIS_C6220-1969-jp';
+
+			case 'csiso14jisc6220ro':
+			case 'iso646jp':
+			case 'isoir14':
+			case 'jisc62201969ro':
+			case 'jp':
+				return 'JIS_C6220-1969-ro';
+
+			case 'csiso42jisc62261978':
+			case 'isoir42':
+			case 'jisc62261978':
+				return 'JIS_C6226-1978';
+
+			case 'csiso87jisx208':
+			case 'isoir87':
+			case 'jisc62261983':
+			case 'jisx2081983':
+			case 'x208':
+				return 'JIS_C6226-1983';
+
+			case 'csiso91jisc62291984a':
+			case 'isoir91':
+			case 'jisc62291984a':
+			case 'jpocra':
+				return 'JIS_C6229-1984-a';
+
+			case 'csiso92jisc62991984b':
+			case 'iso646jpocrb':
+			case 'isoir92':
+			case 'jisc62291984b':
+			case 'jpocrb':
+				return 'JIS_C6229-1984-b';
+
+			case 'csiso93jis62291984badd':
+			case 'isoir93':
+			case 'jisc62291984badd':
+			case 'jpocrbadd':
+				return 'JIS_C6229-1984-b-add';
+
+			case 'csiso94jis62291984hand':
+			case 'isoir94':
+			case 'jisc62291984hand':
+			case 'jpocrhand':
+				return 'JIS_C6229-1984-hand';
+
+			case 'csiso95jis62291984handadd':
+			case 'isoir95':
+			case 'jisc62291984handadd':
+			case 'jpocrhandadd':
+				return 'JIS_C6229-1984-hand-add';
+
+			case 'csiso96jisc62291984kana':
+			case 'isoir96':
+			case 'jisc62291984kana':
+				return 'JIS_C6229-1984-kana';
+
+			case 'csjisencoding':
+			case 'jisencoding':
+				return 'JIS_Encoding';
+
+			case 'cshalfwidthkatakana':
+			case 'jisx201':
+			case 'x201':
+				return 'JIS_X0201';
+
+			case 'csiso159jisx2121990':
+			case 'isoir159':
+			case 'jisx2121990':
+			case 'x212':
+				return 'JIS_X0212-1990';
+
+			case 'csiso141jusib1002':
+			case 'iso646yu':
+			case 'isoir141':
+			case 'js':
+			case 'jusib1002':
+			case 'yu':
+				return 'JUS_I.B1.002';
+
+			case 'csiso147macedonian':
+			case 'isoir147':
+			case 'jusib1003mac':
+			case 'macedonian':
+				return 'JUS_I.B1.003-mac';
+
+			case 'csiso146serbian':
+			case 'isoir146':
+			case 'jusib1003serb':
+			case 'serbian':
+				return 'JUS_I.B1.003-serb';
+
+			case 'koi7switched':
+				return 'KOI7-switched';
+
+			case 'cskoi8r':
+			case 'koi8r':
+				return 'KOI8-R';
+
+			case 'koi8u':
+				return 'KOI8-U';
+
+			case 'csksc5636':
+			case 'iso646kr':
+			case 'ksc5636':
+				return 'KSC5636';
+
+			case 'cskz1048':
+			case 'kz1048':
+			case 'rk1048':
+			case 'strk10482002':
+				return 'KZ-1048';
+
+			case 'csiso19latingreek':
+			case 'isoir19':
+			case 'latingreek':
+				return 'latin-greek';
+
+			case 'csiso27latingreek1':
+			case 'isoir27':
+			case 'latingreek1':
+				return 'Latin-greek-1';
+
+			case 'csiso158lap':
+			case 'isoir158':
+			case 'lap':
+			case 'latinlap':
+				return 'latin-lap';
+
+			case 'csmacintosh':
+			case 'mac':
+			case 'macintosh':
+				return 'macintosh';
+
+			case 'csmicrosoftpublishing':
+			case 'microsoftpublishing':
+				return 'Microsoft-Publishing';
+
+			case 'csmnem':
+			case 'mnem':
+				return 'MNEM';
+
+			case 'csmnemonic':
+			case 'mnemonic':
+				return 'MNEMONIC';
+
+			case 'csiso86hungarian':
+			case 'hu':
+			case 'iso646hu':
+			case 'isoir86':
+			case 'msz77953':
+				return 'MSZ_7795.3';
+
+			case 'csnatsdano':
+			case 'isoir91':
+			case 'natsdano':
+				return 'NATS-DANO';
+
+			case 'csnatsdanoadd':
+			case 'isoir92':
+			case 'natsdanoadd':
+				return 'NATS-DANO-ADD';
+
+			case 'csnatssefi':
+			case 'isoir81':
+			case 'natssefi':
+				return 'NATS-SEFI';
+
+			case 'csnatssefiadd':
+			case 'isoir82':
+			case 'natssefiadd':
+				return 'NATS-SEFI-ADD';
+
+			case 'csiso151cuba':
+			case 'cuba':
+			case 'iso646cu':
+			case 'isoir151':
+			case 'ncnc1081':
+				return 'NC_NC00-10:81';
+
+			case 'csiso69french':
+			case 'fr':
+			case 'iso646fr':
+			case 'isoir69':
+			case 'nfz62010':
+				return 'NF_Z_62-010';
+
+			case 'csiso25french':
+			case 'iso646fr1':
+			case 'isoir25':
+			case 'nfz620101973':
+				return 'NF_Z_62-010_(1973)';
+
+			case 'csiso60danishnorwegian':
+			case 'csiso60norwegian1':
+			case 'iso646no':
+			case 'isoir60':
+			case 'no':
+			case 'ns45511':
+				return 'NS_4551-1';
+
+			case 'csiso61norwegian2':
+			case 'iso646no2':
+			case 'isoir61':
+			case 'no2':
+			case 'ns45512':
+				return 'NS_4551-2';
+
+			case 'osdebcdicdf3irv':
+				return 'OSD_EBCDIC_DF03_IRV';
+
+			case 'osdebcdicdf41':
+				return 'OSD_EBCDIC_DF04_1';
+
+			case 'osdebcdicdf415':
+				return 'OSD_EBCDIC_DF04_15';
+
+			case 'cspc8danishnorwegian':
+			case 'pc8danishnorwegian':
+				return 'PC8-Danish-Norwegian';
+
+			case 'cspc8turkish':
+			case 'pc8turkish':
+				return 'PC8-Turkish';
+
+			case 'csiso16portuguese':
+			case 'iso646pt':
+			case 'isoir16':
+			case 'pt':
+				return 'PT';
+
+			case 'csiso84portuguese2':
+			case 'iso646pt2':
+			case 'isoir84':
+			case 'pt2':
+				return 'PT2';
+
+			case 'cp154':
+			case 'csptcp154':
+			case 'cyrillicasian':
+			case 'pt154':
+			case 'ptcp154':
+				return 'PTCP154';
+
+			case 'scsu':
+				return 'SCSU';
+
+			case 'csiso10swedish':
+			case 'fi':
+			case 'iso646fi':
+			case 'iso646se':
+			case 'isoir10':
+			case 'se':
+			case 'sen850200b':
+				return 'SEN_850200_B';
+
+			case 'csiso11swedishfornames':
+			case 'iso646se2':
+			case 'isoir11':
+			case 'se2':
+			case 'sen850200c':
+				return 'SEN_850200_C';
+
+			case 'csiso102t617bit':
+			case 'isoir102':
+			case 't617bit':
+				return 'T.61-7bit';
+
+			case 'csiso103t618bit':
+			case 'isoir103':
+			case 't61':
+			case 't618bit':
+				return 'T.61-8bit';
+
+			case 'csiso128t101g2':
+			case 'isoir128':
+			case 't101g2':
+				return 'T.101-G2';
+
+			case 'cstscii':
+			case 'tscii':
+				return 'TSCII';
+
+			case 'csunicode11':
+			case 'unicode11':
+				return 'UNICODE-1-1';
+
+			case 'csunicode11utf7':
+			case 'unicode11utf7':
+				return 'UNICODE-1-1-UTF-7';
+
+			case 'csunknown8bit':
+			case 'unknown8bit':
+				return 'UNKNOWN-8BIT';
+
+			case 'ansix341968':
+			case 'ansix341986':
+			case 'ascii':
+			case 'cp367':
+			case 'csascii':
+			case 'ibm367':
+			case 'iso646irv1991':
+			case 'iso646us':
+			case 'isoir6':
+			case 'us':
+			case 'usascii':
+				return 'US-ASCII';
+
+			case 'csusdk':
+			case 'usdk':
+				return 'us-dk';
+
+			case 'utf7':
+				return 'UTF-7';
+
+			case 'utf8':
+				return 'UTF-8';
+
+			case 'utf16':
+				return 'UTF-16';
+
+			case 'utf16be':
+				return 'UTF-16BE';
+
+			case 'utf16le':
+				return 'UTF-16LE';
+
+			case 'utf32':
+				return 'UTF-32';
+
+			case 'utf32be':
+				return 'UTF-32BE';
+
+			case 'utf32le':
+				return 'UTF-32LE';
+
+			case 'csventurainternational':
+			case 'venturainternational':
+				return 'Ventura-International';
+
+			case 'csventuramath':
+			case 'venturamath':
+				return 'Ventura-Math';
+
+			case 'csventuraus':
+			case 'venturaus':
+				return 'Ventura-US';
+
+			case 'csiso70videotexsupp1':
+			case 'isoir70':
+			case 'videotexsuppl':
+				return 'videotex-suppl';
+
+			case 'csviqr':
+			case 'viqr':
+				return 'VIQR';
+
+			case 'csviscii':
+			case 'viscii':
+				return 'VISCII';
+
+			case 'csshiftjis':
+			case 'cswindows31j':
+			case 'mskanji':
+			case 'shiftjis':
+			case 'windows31j':
+				return 'Windows-31J';
+
+			case 'iso885911':
+			case 'tis620':
+				return 'windows-874';
+
+			case 'cseuckr':
+			case 'csksc56011987':
+			case 'euckr':
+			case 'isoir149':
+			case 'korean':
+			case 'ksc5601':
+			case 'ksc56011987':
+			case 'ksc56011989':
+			case 'windows949':
+				return 'windows-949';
+
+			case 'windows1250':
+				return 'windows-1250';
+
+			case 'windows1251':
+				return 'windows-1251';
+
+			case 'cp819':
+			case 'csisolatin1':
+			case 'ibm819':
+			case 'iso88591':
+			case 'iso885911987':
+			case 'isoir100':
+			case 'l1':
+			case 'latin1':
+			case 'windows1252':
+				return 'windows-1252';
+
+			case 'windows1253':
+				return 'windows-1253';
+
+			case 'csisolatin5':
+			case 'iso88599':
+			case 'iso885991989':
+			case 'isoir148':
+			case 'l5':
+			case 'latin5':
+			case 'windows1254':
+				return 'windows-1254';
+
+			case 'windows1255':
+				return 'windows-1255';
+
+			case 'windows1256':
+				return 'windows-1256';
+
+			case 'windows1257':
+				return 'windows-1257';
+
+			case 'windows1258':
+				return 'windows-1258';
+
+			default:
+				return $charset;
+		}
+	}
+
+	public static function get_curl_version()
+	{
+		if (is_array($curl = curl_version()))
+		{
+			$curl = $curl['version'];
+		}
+		elseif (substr($curl, 0, 5) === 'curl/')
+		{
+			$curl = substr($curl, 5, strcspn($curl, "\x09\x0A\x0B\x0C\x0D", 5));
+		}
+		elseif (substr($curl, 0, 8) === 'libcurl/')
+		{
+			$curl = substr($curl, 8, strcspn($curl, "\x09\x0A\x0B\x0C\x0D", 8));
+		}
+		else
+		{
+			$curl = 0;
+		}
+		return $curl;
+	}
+
+	/**
+	 * Strip HTML comments
+	 *
+	 * @param string $data Data to strip comments from
+	 * @return string Comment stripped string
+	 */
+	public static function strip_comments($data)
+	{
+		$output = '';
+		while (($start = strpos($data, '<!--')) !== false)
+		{
+			$output .= substr($data, 0, $start);
+			if (($end = strpos($data, '-->', $start)) !== false)
+			{
+				$data = substr_replace($data, '', 0, $end + 3);
+			}
+			else
+			{
+				$data = '';
+			}
+		}
+		return $output . $data;
+	}
+
+	public static function parse_date($dt)
+	{
+		$parser = SimplePie_Parse_Date::get();
+		return $parser->parse($dt);
+	}
+
+	/**
+	 * Decode HTML entities
+	 *
+	 * @deprecated Use DOMDocument instead
+	 * @param string $data Input data
+	 * @return string Output data
+	 */
+	public static function entities_decode($data)
+	{
+		$decoder = new SimplePie_Decode_HTML_Entities($data);
+		return $decoder->parse();
+	}
+
+	/**
+	 * Remove RFC822 comments
+	 *
+	 * @param string $data Data to strip comments from
+	 * @return string Comment stripped string
+	 */
+	public static function uncomment_rfc822($string)
+	{
+		$string = (string) $string;
+		$position = 0;
+		$length = strlen($string);
+		$depth = 0;
+
+		$output = '';
+
+		while ($position < $length && ($pos = strpos($string, '(', $position)) !== false)
+		{
+			$output .= substr($string, $position, $pos - $position);
+			$position = $pos + 1;
+			if ($string[$pos - 1] !== '\\')
+			{
+				$depth++;
+				while ($depth && $position < $length)
+				{
+					$position += strcspn($string, '()', $position);
+					if ($string[$position - 1] === '\\')
+					{
+						$position++;
+						continue;
+					}
+					elseif (isset($string[$position]))
+					{
+						switch ($string[$position])
+						{
+							case '(':
+								$depth++;
+								break;
+
+							case ')':
+								$depth--;
+								break;
+						}
+						$position++;
+					}
+					else
+					{
+						break;
+					}
+				}
+			}
+			else
+			{
+				$output .= '(';
+			}
+		}
+		$output .= substr($string, $position);
+
+		return $output;
+	}
+
+	public static function parse_mime($mime)
+	{
+		if (($pos = strpos($mime, ';')) === false)
+		{
+			return trim($mime);
+		}
+		else
+		{
+			return trim(substr($mime, 0, $pos));
+		}
+	}
+
+	public static function atom_03_construct_type($attribs)
+	{
+		if (isset($attribs['']['mode']) && strtolower(trim($attribs['']['mode']) === 'base64'))
+		{
+			$mode = SIMPLEPIE_CONSTRUCT_BASE64;
+		}
+		else
+		{
+			$mode = SIMPLEPIE_CONSTRUCT_NONE;
+		}
+		if (isset($attribs['']['type']))
+		{
+			switch (strtolower(trim($attribs['']['type'])))
+			{
+				case 'text':
+				case 'text/plain':
+					return SIMPLEPIE_CONSTRUCT_TEXT | $mode;
+
+				case 'html':
+				case 'text/html':
+					return SIMPLEPIE_CONSTRUCT_HTML | $mode;
+
+				case 'xhtml':
+				case 'application/xhtml+xml':
+					return SIMPLEPIE_CONSTRUCT_XHTML | $mode;
+
+				default:
+					return SIMPLEPIE_CONSTRUCT_NONE | $mode;
+			}
+		}
+		else
+		{
+			return SIMPLEPIE_CONSTRUCT_TEXT | $mode;
+		}
+	}
+
+	public static function atom_10_construct_type($attribs)
+	{
+		if (isset($attribs['']['type']))
+		{
+			switch (strtolower(trim($attribs['']['type'])))
+			{
+				case 'text':
+					return SIMPLEPIE_CONSTRUCT_TEXT;
+
+				case 'html':
+					return SIMPLEPIE_CONSTRUCT_HTML;
+
+				case 'xhtml':
+					return SIMPLEPIE_CONSTRUCT_XHTML;
+
+				default:
+					return SIMPLEPIE_CONSTRUCT_NONE;
+			}
+		}
+		return SIMPLEPIE_CONSTRUCT_TEXT;
+	}
+
+	public static function atom_10_content_construct_type($attribs)
+	{
+		if (isset($attribs['']['type']))
+		{
+			$type = strtolower(trim($attribs['']['type']));
+			switch ($type)
+			{
+				case 'text':
+					return SIMPLEPIE_CONSTRUCT_TEXT;
+
+				case 'html':
+					return SIMPLEPIE_CONSTRUCT_HTML;
+
+				case 'xhtml':
+					return SIMPLEPIE_CONSTRUCT_XHTML;
+			}
+			if (in_array(substr($type, -4), array('+xml', '/xml')) || substr($type, 0, 5) === 'text/')
+			{
+				return SIMPLEPIE_CONSTRUCT_NONE;
+			}
+			else
+			{
+				return SIMPLEPIE_CONSTRUCT_BASE64;
+			}
+		}
+		else
+		{
+			return SIMPLEPIE_CONSTRUCT_TEXT;
+		}
+	}
+
+	public static function is_isegment_nz_nc($string)
+	{
+		return (bool) preg_match('/^([A-Za-z0-9\-._~\x{A0}-\x{D7FF}\x{F900}-\x{FDCF}\x{FDF0}-\x{FFEF}\x{10000}-\x{1FFFD}\x{20000}-\x{2FFFD}\x{30000}-\x{3FFFD}\x{40000}-\x{4FFFD}\x{50000}-\x{5FFFD}\x{60000}-\x{6FFFD}\x{70000}-\x{7FFFD}\x{80000}-\x{8FFFD}\x{90000}-\x{9FFFD}\x{A0000}-\x{AFFFD}\x{B0000}-\x{BFFFD}\x{C0000}-\x{CFFFD}\x{D0000}-\x{DFFFD}\x{E1000}-\x{EFFFD}!$&\'()*+,;=@]|(%[0-9ABCDEF]{2}))+$/u', $string);
+	}
+
+	public static function space_seperated_tokens($string)
+	{
+		$space_characters = "\x20\x09\x0A\x0B\x0C\x0D";
+		$string_length = strlen($string);
+
+		$position = strspn($string, $space_characters);
+		$tokens = array();
+
+		while ($position < $string_length)
+		{
+			$len = strcspn($string, $space_characters, $position);
+			$tokens[] = substr($string, $position, $len);
+			$position += $len;
+			$position += strspn($string, $space_characters, $position);
+		}
+
+		return $tokens;
+	}
+
+	/**
+	 * Converts a unicode codepoint to a UTF-8 character
+	 *
+	 * @static
+	 * @param int $codepoint Unicode codepoint
+	 * @return string UTF-8 character
+	 */
+	public static function codepoint_to_utf8($codepoint)
+	{
+		$codepoint = (int) $codepoint;
+		if ($codepoint < 0)
+		{
+			return false;
+		}
+		else if ($codepoint <= 0x7f)
+		{
+			return chr($codepoint);
+		}
+		else if ($codepoint <= 0x7ff)
+		{
+			return chr(0xc0 | ($codepoint >> 6)) . chr(0x80 | ($codepoint & 0x3f));
+		}
+		else if ($codepoint <= 0xffff)
+		{
+			return chr(0xe0 | ($codepoint >> 12)) . chr(0x80 | (($codepoint >> 6) & 0x3f)) . chr(0x80 | ($codepoint & 0x3f));
+		}
+		else if ($codepoint <= 0x10ffff)
+		{
+			return chr(0xf0 | ($codepoint >> 18)) . chr(0x80 | (($codepoint >> 12) & 0x3f)) . chr(0x80 | (($codepoint >> 6) & 0x3f)) . chr(0x80 | ($codepoint & 0x3f));
+		}
+		else
+		{
+			// U+FFFD REPLACEMENT CHARACTER
+			return "\xEF\xBF\xBD";
+		}
+	}
+
+	/**
+	 * Similar to parse_str()
+	 *
+	 * Returns an associative array of name/value pairs, where the value is an
+	 * array of values that have used the same name
+	 *
+	 * @static
+	 * @param string $str The input string.
+	 * @return array
+	 */
+	public static function parse_str($str)
+	{
+		$return = array();
+		$str = explode('&', $str);
+
+		foreach ($str as $section)
+		{
+			if (strpos($section, '=') !== false)
+			{
+				list($name, $value) = explode('=', $section, 2);
+				$return[urldecode($name)][] = urldecode($value);
+			}
+			else
+			{
+				$return[urldecode($section)][] = null;
+			}
+		}
+
+		return $return;
+	}
+
+	/**
+	 * Detect XML encoding, as per XML 1.0 Appendix F.1
+	 *
+	 * @todo Add support for EBCDIC
+	 * @param string $data XML data
+	 * @param SimplePie_Registry $registry Class registry
+	 * @return array Possible encodings
+	 */
+	public static function xml_encoding($data, $registry)
+	{
+		// UTF-32 Big Endian BOM
+		if (substr($data, 0, 4) === "\x00\x00\xFE\xFF")
+		{
+			$encoding[] = 'UTF-32BE';
+		}
+		// UTF-32 Little Endian BOM
+		elseif (substr($data, 0, 4) === "\xFF\xFE\x00\x00")
+		{
+			$encoding[] = 'UTF-32LE';
+		}
+		// UTF-16 Big Endian BOM
+		elseif (substr($data, 0, 2) === "\xFE\xFF")
+		{
+			$encoding[] = 'UTF-16BE';
+		}
+		// UTF-16 Little Endian BOM
+		elseif (substr($data, 0, 2) === "\xFF\xFE")
+		{
+			$encoding[] = 'UTF-16LE';
+		}
+		// UTF-8 BOM
+		elseif (substr($data, 0, 3) === "\xEF\xBB\xBF")
+		{
+			$encoding[] = 'UTF-8';
+		}
+		// UTF-32 Big Endian Without BOM
+		elseif (substr($data, 0, 20) === "\x00\x00\x00\x3C\x00\x00\x00\x3F\x00\x00\x00\x78\x00\x00\x00\x6D\x00\x00\x00\x6C")
+		{
+			if ($pos = strpos($data, "\x00\x00\x00\x3F\x00\x00\x00\x3E"))
+			{
+				$parser = $registry->create('XML_Declaration_Parser', array(SimplePie_Misc::change_encoding(substr($data, 20, $pos - 20), 'UTF-32BE', 'UTF-8')));
+				if ($parser->parse())
+				{
+					$encoding[] = $parser->encoding;
+				}
+			}
+			$encoding[] = 'UTF-32BE';
+		}
+		// UTF-32 Little Endian Without BOM
+		elseif (substr($data, 0, 20) === "\x3C\x00\x00\x00\x3F\x00\x00\x00\x78\x00\x00\x00\x6D\x00\x00\x00\x6C\x00\x00\x00")
+		{
+			if ($pos = strpos($data, "\x3F\x00\x00\x00\x3E\x00\x00\x00"))
+			{
+				$parser = $registry->create('XML_Declaration_Parser', array(SimplePie_Misc::change_encoding(substr($data, 20, $pos - 20), 'UTF-32LE', 'UTF-8')));
+				if ($parser->parse())
+				{
+					$encoding[] = $parser->encoding;
+				}
+			}
+			$encoding[] = 'UTF-32LE';
+		}
+		// UTF-16 Big Endian Without BOM
+		elseif (substr($data, 0, 10) === "\x00\x3C\x00\x3F\x00\x78\x00\x6D\x00\x6C")
+		{
+			if ($pos = strpos($data, "\x00\x3F\x00\x3E"))
+			{
+				$parser = $registry->create('XML_Declaration_Parser', array(SimplePie_Misc::change_encoding(substr($data, 20, $pos - 10), 'UTF-16BE', 'UTF-8')));
+				if ($parser->parse())
+				{
+					$encoding[] = $parser->encoding;
+				}
+			}
+			$encoding[] = 'UTF-16BE';
+		}
+		// UTF-16 Little Endian Without BOM
+		elseif (substr($data, 0, 10) === "\x3C\x00\x3F\x00\x78\x00\x6D\x00\x6C\x00")
+		{
+			if ($pos = strpos($data, "\x3F\x00\x3E\x00"))
+			{
+				$parser = $registry->create('XML_Declaration_Parser', array(SimplePie_Misc::change_encoding(substr($data, 20, $pos - 10), 'UTF-16LE', 'UTF-8')));
+				if ($parser->parse())
+				{
+					$encoding[] = $parser->encoding;
+				}
+			}
+			$encoding[] = 'UTF-16LE';
+		}
+		// US-ASCII (or superset)
+		elseif (substr($data, 0, 5) === "\x3C\x3F\x78\x6D\x6C")
+		{
+			if ($pos = strpos($data, "\x3F\x3E"))
+			{
+				$parser = $registry->create('XML_Declaration_Parser', array(substr($data, 5, $pos - 5)));
+				if ($parser->parse())
+				{
+					$encoding[] = $parser->encoding;
+				}
+			}
+			$encoding[] = 'UTF-8';
+		}
+		// Fallback to UTF-8
+		else
+		{
+			$encoding[] = 'UTF-8';
+		}
+		return $encoding;
+	}
+
+	public static function output_javascript()
+	{
+		if (function_exists('ob_gzhandler'))
+		{
+			ob_start('ob_gzhandler');
+		}
+		header('Content-type: text/javascript; charset: UTF-8');
+		header('Cache-Control: must-revalidate');
+		header('Expires: ' . gmdate('D, d M Y H:i:s', time() + 604800) . ' GMT'); // 7 days
+		?>
+function embed_quicktime(type, bgcolor, width, height, link, placeholder, loop) {
+	if (placeholder != '') {
+		document.writeln('<embed type="'+type+'" style="cursor:hand; cursor:pointer;" href="'+link+'" src="'+placeholder+'" width="'+width+'" height="'+height+'" autoplay="false" target="myself" controller="false" loop="'+loop+'" scale="aspect" bgcolor="'+bgcolor+'" pluginspage="http://www.apple.com/quicktime/download/"></embed>');
+	}
+	else {
+		document.writeln('<embed type="'+type+'" style="cursor:hand; cursor:pointer;" src="'+link+'" width="'+width+'" height="'+height+'" autoplay="false" target="myself" controller="true" loop="'+loop+'" scale="aspect" bgcolor="'+bgcolor+'" pluginspage="http://www.apple.com/quicktime/download/"></embed>');
+	}
+}
+
+function embed_flash(bgcolor, width, height, link, loop, type) {
+	document.writeln('<embed src="'+link+'" pluginspage="http://www.macromedia.com/go/getflashplayer" type="'+type+'" quality="high" width="'+width+'" height="'+height+'" bgcolor="'+bgcolor+'" loop="'+loop+'"></embed>');
+}
+
+function embed_flv(width, height, link, placeholder, loop, player) {
+	document.writeln('<embed src="'+player+'" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" quality="high" width="'+width+'" height="'+height+'" wmode="transparent" flashvars="file='+link+'&autostart=false&repeat='+loop+'&showdigits=true&showfsbutton=false"></embed>');
+}
+
+function embed_wmedia(width, height, link) {
+	document.writeln('<embed type="application/x-mplayer2" src="'+link+'" autosize="1" width="'+width+'" height="'+height+'" showcontrols="1" showstatusbar="0" showdisplay="0" autostart="0"></embed>');
+}
+		<?php
+	}
+
+	/**
+	 * Get the SimplePie build timestamp
+	 *
+	 * Uses the git index if it exists, otherwise uses the modification time
+	 * of the newest file.
+	 */
+	public static function get_build()
+	{
+		$root = dirname(dirname(__FILE__));
+		if (file_exists($root . '/.git/index'))
+		{
+			return filemtime($root . '/.git/index');
+		}
+		elseif (file_exists($root . '/SimplePie'))
+		{
+			$time = 0;
+			foreach (glob($root . '/SimplePie/*.php') as $file)
+			{
+				if (($mtime = filemtime($file)) > $time)
+				{
+					$time = $mtime;
+				}
+			}
+			return $time;
+		}
+		elseif (file_exists(dirname(__FILE__) . '/Core.php'))
+		{
+			return filemtime(dirname(__FILE__) . '/Core.php');
+		}
+		else
+		{
+			return filemtime(__FILE__);
+		}
+	}
+
+	/**
+	 * Format debugging information
+	 */
+	public static function debug(&$sp)
+	{
+		$info = 'SimplePie ' . SIMPLEPIE_VERSION . ' Build ' . SIMPLEPIE_BUILD . "\n";
+		$info .= 'PHP ' . PHP_VERSION . "\n";
+		if ($sp->error() !== null)
+		{
+			$info .= 'Error occurred: ' . $sp->error() . "\n";
+		}
+		else
+		{
+			$info .= "No error found.\n";
+		}
+		$info .= "Extensions:\n";
+		$extensions = array('pcre', 'curl', 'zlib', 'mbstring', 'iconv', 'xmlreader', 'xml');
+		foreach ($extensions as $ext)
+		{
+			if (extension_loaded($ext))
+			{
+				$info .= "    $ext loaded\n";
+				switch ($ext)
+				{
+					case 'pcre':
+						$info .= '      Version ' . PCRE_VERSION . "\n";
+						break;
+					case 'curl':
+						$version = curl_version();
+						$info .= '      Version ' . $version['version'] . "\n";
+						break;
+					case 'mbstring':
+						$info .= '      Overloading: ' . mb_get_info('func_overload') . "\n";
+						break;
+					case 'iconv':
+						$info .= '      Version ' . ICONV_VERSION . "\n";
+						break;
+					case 'xml':
+						$info .= '      Version ' . LIBXML_DOTTED_VERSION . "\n";
+						break;
+				}
+			}
+			else
+			{
+				$info .= "    $ext not loaded\n";
+			}
+		}
+		return $info;
+	}
+
+	public static function silence_errors($num, $str)
+	{
+		// No-op
+	}
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-includes/SimplePie/Net/IPv6.php	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,276 @@
+<?php
+/**
+ * SimplePie
+ *
+ * A PHP-Based RSS and Atom Feed Framework.
+ * Takes the hard work out of managing a complete RSS/Atom solution.
+ *
+ * Copyright (c) 2004-2012, Ryan Parman, Geoffrey Sneddon, Ryan McCue, and contributors
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without modification, are
+ * permitted provided that the following conditions are met:
+ *
+ * 	* Redistributions of source code must retain the above copyright notice, this list of
+ * 	  conditions and the following disclaimer.
+ *
+ * 	* Redistributions in binary form must reproduce the above copyright notice, this list
+ * 	  of conditions and the following disclaimer in the documentation and/or other materials
+ * 	  provided with the distribution.
+ *
+ * 	* Neither the name of the SimplePie Team nor the names of its contributors may be used
+ * 	  to endorse or promote products derived from this software without specific prior
+ * 	  written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS
+ * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
+ * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS
+ * AND CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ * @package SimplePie
+ * @version 1.3.1
+ * @copyright 2004-2012 Ryan Parman, Geoffrey Sneddon, Ryan McCue
+ * @author Ryan Parman
+ * @author Geoffrey Sneddon
+ * @author Ryan McCue
+ * @link http://simplepie.org/ SimplePie
+ * @license http://www.opensource.org/licenses/bsd-license.php BSD License
+ */
+
+
+/**
+ * Class to validate and to work with IPv6 addresses.
+ *
+ * @package SimplePie
+ * @subpackage HTTP
+ * @copyright 2003-2005 The PHP Group
+ * @license http://www.opensource.org/licenses/bsd-license.php
+ * @link http://pear.php.net/package/Net_IPv6
+ * @author Alexander Merz <alexander.merz@web.de>
+ * @author elfrink at introweb dot nl
+ * @author Josh Peck <jmp at joshpeck dot org>
+ * @author Geoffrey Sneddon <geoffers@gmail.com>
+ */
+class SimplePie_Net_IPv6
+{
+	/**
+	 * Uncompresses an IPv6 address
+	 *
+	 * RFC 4291 allows you to compress concecutive zero pieces in an address to
+	 * '::'. This method expects a valid IPv6 address and expands the '::' to
+	 * the required number of zero pieces.
+	 *
+	 * Example:  FF01::101   ->  FF01:0:0:0:0:0:0:101
+	 *           ::1         ->  0:0:0:0:0:0:0:1
+	 *
+	 * @author Alexander Merz <alexander.merz@web.de>
+	 * @author elfrink at introweb dot nl
+	 * @author Josh Peck <jmp at joshpeck dot org>
+	 * @copyright 2003-2005 The PHP Group
+	 * @license http://www.opensource.org/licenses/bsd-license.php
+	 * @param string $ip An IPv6 address
+	 * @return string The uncompressed IPv6 address
+	 */
+	public static function uncompress($ip)
+	{
+		$c1 = -1;
+		$c2 = -1;
+		if (substr_count($ip, '::') === 1)
+		{
+			list($ip1, $ip2) = explode('::', $ip);
+			if ($ip1 === '')
+			{
+				$c1 = -1;
+			}
+			else
+			{
+				$c1 = substr_count($ip1, ':');
+			}
+			if ($ip2 === '')
+			{
+				$c2 = -1;
+			}
+			else
+			{
+				$c2 = substr_count($ip2, ':');
+			}
+			if (strpos($ip2, '.') !== false)
+			{
+				$c2++;
+			}
+			// ::
+			if ($c1 === -1 && $c2 === -1)
+			{
+				$ip = '0:0:0:0:0:0:0:0';
+			}
+			// ::xxx
+			else if ($c1 === -1)
+			{
+				$fill = str_repeat('0:', 7 - $c2);
+				$ip = str_replace('::', $fill, $ip);
+			}
+			// xxx::
+			else if ($c2 === -1)
+			{
+				$fill = str_repeat(':0', 7 - $c1);
+				$ip = str_replace('::', $fill, $ip);
+			}
+			// xxx::xxx
+			else
+			{
+				$fill = ':' . str_repeat('0:', 6 - $c2 - $c1);
+				$ip = str_replace('::', $fill, $ip);
+			}
+		}
+		return $ip;
+	}
+
+	/**
+	 * Compresses an IPv6 address
+	 *
+	 * RFC 4291 allows you to compress concecutive zero pieces in an address to
+	 * '::'. This method expects a valid IPv6 address and compresses consecutive
+	 * zero pieces to '::'.
+	 *
+	 * Example:  FF01:0:0:0:0:0:0:101   ->  FF01::101
+	 *           0:0:0:0:0:0:0:1        ->  ::1
+	 *
+	 * @see uncompress()
+	 * @param string $ip An IPv6 address
+	 * @return string The compressed IPv6 address
+	 */
+	public static function compress($ip)
+	{
+		// Prepare the IP to be compressed
+		$ip = self::uncompress($ip);
+		$ip_parts = self::split_v6_v4($ip);
+
+		// Replace all leading zeros
+		$ip_parts[0] = preg_replace('/(^|:)0+([0-9])/', '\1\2', $ip_parts[0]);
+
+		// Find bunches of zeros
+		if (preg_match_all('/(?:^|:)(?:0(?::|$))+/', $ip_parts[0], $matches, PREG_OFFSET_CAPTURE))
+		{
+			$max = 0;
+			$pos = null;
+			foreach ($matches[0] as $match)
+			{
+				if (strlen($match[0]) > $max)
+				{
+					$max = strlen($match[0]);
+					$pos = $match[1];
+				}
+			}
+
+			$ip_parts[0] = substr_replace($ip_parts[0], '::', $pos, $max);
+		}
+
+		if ($ip_parts[1] !== '')
+		{
+			return implode(':', $ip_parts);
+		}
+		else
+		{
+			return $ip_parts[0];
+		}
+	}
+
+	/**
+	 * Splits an IPv6 address into the IPv6 and IPv4 representation parts
+	 *
+	 * RFC 4291 allows you to represent the last two parts of an IPv6 address
+	 * using the standard IPv4 representation
+	 *
+	 * Example:  0:0:0:0:0:0:13.1.68.3
+	 *           0:0:0:0:0:FFFF:129.144.52.38
+	 *
+	 * @param string $ip An IPv6 address
+	 * @return array [0] contains the IPv6 represented part, and [1] the IPv4 represented part
+	 */
+	private static function split_v6_v4($ip)
+	{
+		if (strpos($ip, '.') !== false)
+		{
+			$pos = strrpos($ip, ':');
+			$ipv6_part = substr($ip, 0, $pos);
+			$ipv4_part = substr($ip, $pos + 1);
+			return array($ipv6_part, $ipv4_part);
+		}
+		else
+		{
+			return array($ip, '');
+		}
+	}
+
+	/**
+	 * Checks an IPv6 address
+	 *
+	 * Checks if the given IP is a valid IPv6 address
+	 *
+	 * @param string $ip An IPv6 address
+	 * @return bool true if $ip is a valid IPv6 address
+	 */
+	public static function check_ipv6($ip)
+	{
+		$ip = self::uncompress($ip);
+		list($ipv6, $ipv4) = self::split_v6_v4($ip);
+		$ipv6 = explode(':', $ipv6);
+		$ipv4 = explode('.', $ipv4);
+		if (count($ipv6) === 8 && count($ipv4) === 1 || count($ipv6) === 6 && count($ipv4) === 4)
+		{
+			foreach ($ipv6 as $ipv6_part)
+			{
+				// The section can't be empty
+				if ($ipv6_part === '')
+					return false;
+
+				// Nor can it be over four characters
+				if (strlen($ipv6_part) > 4)
+					return false;
+
+				// Remove leading zeros (this is safe because of the above)
+				$ipv6_part = ltrim($ipv6_part, '0');
+				if ($ipv6_part === '')
+					$ipv6_part = '0';
+
+				// Check the value is valid
+				$value = hexdec($ipv6_part);
+				if (dechex($value) !== strtolower($ipv6_part) || $value < 0 || $value > 0xFFFF)
+					return false;
+			}
+			if (count($ipv4) === 4)
+			{
+				foreach ($ipv4 as $ipv4_part)
+				{
+					$value = (int) $ipv4_part;
+					if ((string) $value !== $ipv4_part || $value < 0 || $value > 0xFF)
+						return false;
+				}
+			}
+			return true;
+		}
+		else
+		{
+			return false;
+		}
+	}
+
+	/**
+	 * Checks if the given IP is a valid IPv6 address
+	 *
+	 * @codeCoverageIgnore
+	 * @deprecated Use {@see SimplePie_Net_IPv6::check_ipv6()} instead
+	 * @see check_ipv6
+	 * @param string $ip An IPv6 address
+	 * @return bool true if $ip is a valid IPv6 address
+	 */
+	public static function checkIPv6($ip)
+	{
+		return self::check_ipv6($ip);
+	}
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-includes/SimplePie/Parse/Date.php	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,983 @@
+<?php
+/**
+ * SimplePie
+ *
+ * A PHP-Based RSS and Atom Feed Framework.
+ * Takes the hard work out of managing a complete RSS/Atom solution.
+ *
+ * Copyright (c) 2004-2012, Ryan Parman, Geoffrey Sneddon, Ryan McCue, and contributors
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without modification, are
+ * permitted provided that the following conditions are met:
+ *
+ * 	* Redistributions of source code must retain the above copyright notice, this list of
+ * 	  conditions and the following disclaimer.
+ *
+ * 	* Redistributions in binary form must reproduce the above copyright notice, this list
+ * 	  of conditions and the following disclaimer in the documentation and/or other materials
+ * 	  provided with the distribution.
+ *
+ * 	* Neither the name of the SimplePie Team nor the names of its contributors may be used
+ * 	  to endorse or promote products derived from this software without specific prior
+ * 	  written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS
+ * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
+ * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS
+ * AND CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ * @package SimplePie
+ * @version 1.3.1
+ * @copyright 2004-2012 Ryan Parman, Geoffrey Sneddon, Ryan McCue
+ * @author Ryan Parman
+ * @author Geoffrey Sneddon
+ * @author Ryan McCue
+ * @link http://simplepie.org/ SimplePie
+ * @license http://www.opensource.org/licenses/bsd-license.php BSD License
+ */
+
+
+/**
+ * Date Parser
+ *
+ * @package SimplePie
+ * @subpackage Parsing
+ */
+class SimplePie_Parse_Date
+{
+	/**
+	 * Input data
+	 *
+	 * @access protected
+	 * @var string
+	 */
+	var $date;
+
+	/**
+	 * List of days, calendar day name => ordinal day number in the week
+	 *
+	 * @access protected
+	 * @var array
+	 */
+	var $day = array(
+		// English
+		'mon' => 1,
+		'monday' => 1,
+		'tue' => 2,
+		'tuesday' => 2,
+		'wed' => 3,
+		'wednesday' => 3,
+		'thu' => 4,
+		'thursday' => 4,
+		'fri' => 5,
+		'friday' => 5,
+		'sat' => 6,
+		'saturday' => 6,
+		'sun' => 7,
+		'sunday' => 7,
+		// Dutch
+		'maandag' => 1,
+		'dinsdag' => 2,
+		'woensdag' => 3,
+		'donderdag' => 4,
+		'vrijdag' => 5,
+		'zaterdag' => 6,
+		'zondag' => 7,
+		// French
+		'lundi' => 1,
+		'mardi' => 2,
+		'mercredi' => 3,
+		'jeudi' => 4,
+		'vendredi' => 5,
+		'samedi' => 6,
+		'dimanche' => 7,
+		// German
+		'montag' => 1,
+		'dienstag' => 2,
+		'mittwoch' => 3,
+		'donnerstag' => 4,
+		'freitag' => 5,
+		'samstag' => 6,
+		'sonnabend' => 6,
+		'sonntag' => 7,
+		// Italian
+		'lunedì' => 1,
+		'martedì' => 2,
+		'mercoledì' => 3,
+		'giovedì' => 4,
+		'venerdì' => 5,
+		'sabato' => 6,
+		'domenica' => 7,
+		// Spanish
+		'lunes' => 1,
+		'martes' => 2,
+		'miércoles' => 3,
+		'jueves' => 4,
+		'viernes' => 5,
+		'sábado' => 6,
+		'domingo' => 7,
+		// Finnish
+		'maanantai' => 1,
+		'tiistai' => 2,
+		'keskiviikko' => 3,
+		'torstai' => 4,
+		'perjantai' => 5,
+		'lauantai' => 6,
+		'sunnuntai' => 7,
+		// Hungarian
+		'hétfő' => 1,
+		'kedd' => 2,
+		'szerda' => 3,
+		'csütörtok' => 4,
+		'péntek' => 5,
+		'szombat' => 6,
+		'vasárnap' => 7,
+		// Greek
+		'Δευ' => 1,
+		'ΤÏι' => 2,
+		'Τετ' => 3,
+		'Πεμ' => 4,
+		'ΠαÏ' => 5,
+		'Σαβ' => 6,
+		'ΚυÏ' => 7,
+	);
+
+	/**
+	 * List of months, calendar month name => calendar month number
+	 *
+	 * @access protected
+	 * @var array
+	 */
+	var $month = array(
+		// English
+		'jan' => 1,
+		'january' => 1,
+		'feb' => 2,
+		'february' => 2,
+		'mar' => 3,
+		'march' => 3,
+		'apr' => 4,
+		'april' => 4,
+		'may' => 5,
+		// No long form of May
+		'jun' => 6,
+		'june' => 6,
+		'jul' => 7,
+		'july' => 7,
+		'aug' => 8,
+		'august' => 8,
+		'sep' => 9,
+		'september' => 8,
+		'oct' => 10,
+		'october' => 10,
+		'nov' => 11,
+		'november' => 11,
+		'dec' => 12,
+		'december' => 12,
+		// Dutch
+		'januari' => 1,
+		'februari' => 2,
+		'maart' => 3,
+		'april' => 4,
+		'mei' => 5,
+		'juni' => 6,
+		'juli' => 7,
+		'augustus' => 8,
+		'september' => 9,
+		'oktober' => 10,
+		'november' => 11,
+		'december' => 12,
+		// French
+		'janvier' => 1,
+		'février' => 2,
+		'mars' => 3,
+		'avril' => 4,
+		'mai' => 5,
+		'juin' => 6,
+		'juillet' => 7,
+		'août' => 8,
+		'septembre' => 9,
+		'octobre' => 10,
+		'novembre' => 11,
+		'décembre' => 12,
+		// German
+		'januar' => 1,
+		'februar' => 2,
+		'märz' => 3,
+		'april' => 4,
+		'mai' => 5,
+		'juni' => 6,
+		'juli' => 7,
+		'august' => 8,
+		'september' => 9,
+		'oktober' => 10,
+		'november' => 11,
+		'dezember' => 12,
+		// Italian
+		'gennaio' => 1,
+		'febbraio' => 2,
+		'marzo' => 3,
+		'aprile' => 4,
+		'maggio' => 5,
+		'giugno' => 6,
+		'luglio' => 7,
+		'agosto' => 8,
+		'settembre' => 9,
+		'ottobre' => 10,
+		'novembre' => 11,
+		'dicembre' => 12,
+		// Spanish
+		'enero' => 1,
+		'febrero' => 2,
+		'marzo' => 3,
+		'abril' => 4,
+		'mayo' => 5,
+		'junio' => 6,
+		'julio' => 7,
+		'agosto' => 8,
+		'septiembre' => 9,
+		'setiembre' => 9,
+		'octubre' => 10,
+		'noviembre' => 11,
+		'diciembre' => 12,
+		// Finnish
+		'tammikuu' => 1,
+		'helmikuu' => 2,
+		'maaliskuu' => 3,
+		'huhtikuu' => 4,
+		'toukokuu' => 5,
+		'kesäkuu' => 6,
+		'heinäkuu' => 7,
+		'elokuu' => 8,
+		'suuskuu' => 9,
+		'lokakuu' => 10,
+		'marras' => 11,
+		'joulukuu' => 12,
+		// Hungarian
+		'január' => 1,
+		'február' => 2,
+		'március' => 3,
+		'április' => 4,
+		'május' => 5,
+		'június' => 6,
+		'július' => 7,
+		'augusztus' => 8,
+		'szeptember' => 9,
+		'október' => 10,
+		'november' => 11,
+		'december' => 12,
+		// Greek
+		'Ιαν' => 1,
+		'Φεβ' => 2,
+		'Μάώ' => 3,
+		'Μαώ' => 3,
+		'ΑπÏ' => 4,
+		'Μάι' => 5,
+		'Μαϊ' => 5,
+		'Μαι' => 5,
+		'ΙοÏν' => 6,
+		'Ιον' => 6,
+		'ΙοÏλ' => 7,
+		'Ιολ' => 7,
+		'ΑÏγ' => 8,
+		'Αυγ' => 8,
+		'Σεπ' => 9,
+		'Οκτ' => 10,
+		'Îοέ' => 11,
+		'Δεκ' => 12,
+	);
+
+	/**
+	 * List of timezones, abbreviation => offset from UTC
+	 *
+	 * @access protected
+	 * @var array
+	 */
+	var $timezone = array(
+		'ACDT' => 37800,
+		'ACIT' => 28800,
+		'ACST' => 34200,
+		'ACT' => -18000,
+		'ACWDT' => 35100,
+		'ACWST' => 31500,
+		'AEDT' => 39600,
+		'AEST' => 36000,
+		'AFT' => 16200,
+		'AKDT' => -28800,
+		'AKST' => -32400,
+		'AMDT' => 18000,
+		'AMT' => -14400,
+		'ANAST' => 46800,
+		'ANAT' => 43200,
+		'ART' => -10800,
+		'AZOST' => -3600,
+		'AZST' => 18000,
+		'AZT' => 14400,
+		'BIOT' => 21600,
+		'BIT' => -43200,
+		'BOT' => -14400,
+		'BRST' => -7200,
+		'BRT' => -10800,
+		'BST' => 3600,
+		'BTT' => 21600,
+		'CAST' => 18000,
+		'CAT' => 7200,
+		'CCT' => 23400,
+		'CDT' => -18000,
+		'CEDT' => 7200,
+		'CET' => 3600,
+		'CGST' => -7200,
+		'CGT' => -10800,
+		'CHADT' => 49500,
+		'CHAST' => 45900,
+		'CIST' => -28800,
+		'CKT' => -36000,
+		'CLDT' => -10800,
+		'CLST' => -14400,
+		'COT' => -18000,
+		'CST' => -21600,
+		'CVT' => -3600,
+		'CXT' => 25200,
+		'DAVT' => 25200,
+		'DTAT' => 36000,
+		'EADT' => -18000,
+		'EAST' => -21600,
+		'EAT' => 10800,
+		'ECT' => -18000,
+		'EDT' => -14400,
+		'EEST' => 10800,
+		'EET' => 7200,
+		'EGT' => -3600,
+		'EKST' => 21600,
+		'EST' => -18000,
+		'FJT' => 43200,
+		'FKDT' => -10800,
+		'FKST' => -14400,
+		'FNT' => -7200,
+		'GALT' => -21600,
+		'GEDT' => 14400,
+		'GEST' => 10800,
+		'GFT' => -10800,
+		'GILT' => 43200,
+		'GIT' => -32400,
+		'GST' => 14400,
+		'GST' => -7200,
+		'GYT' => -14400,
+		'HAA' => -10800,
+		'HAC' => -18000,
+		'HADT' => -32400,
+		'HAE' => -14400,
+		'HAP' => -25200,
+		'HAR' => -21600,
+		'HAST' => -36000,
+		'HAT' => -9000,
+		'HAY' => -28800,
+		'HKST' => 28800,
+		'HMT' => 18000,
+		'HNA' => -14400,
+		'HNC' => -21600,
+		'HNE' => -18000,
+		'HNP' => -28800,
+		'HNR' => -25200,
+		'HNT' => -12600,
+		'HNY' => -32400,
+		'IRDT' => 16200,
+		'IRKST' => 32400,
+		'IRKT' => 28800,
+		'IRST' => 12600,
+		'JFDT' => -10800,
+		'JFST' => -14400,
+		'JST' => 32400,
+		'KGST' => 21600,
+		'KGT' => 18000,
+		'KOST' => 39600,
+		'KOVST' => 28800,
+		'KOVT' => 25200,
+		'KRAST' => 28800,
+		'KRAT' => 25200,
+		'KST' => 32400,
+		'LHDT' => 39600,
+		'LHST' => 37800,
+		'LINT' => 50400,
+		'LKT' => 21600,
+		'MAGST' => 43200,
+		'MAGT' => 39600,
+		'MAWT' => 21600,
+		'MDT' => -21600,
+		'MESZ' => 7200,
+		'MEZ' => 3600,
+		'MHT' => 43200,
+		'MIT' => -34200,
+		'MNST' => 32400,
+		'MSDT' => 14400,
+		'MSST' => 10800,
+		'MST' => -25200,
+		'MUT' => 14400,
+		'MVT' => 18000,
+		'MYT' => 28800,
+		'NCT' => 39600,
+		'NDT' => -9000,
+		'NFT' => 41400,
+		'NMIT' => 36000,
+		'NOVST' => 25200,
+		'NOVT' => 21600,
+		'NPT' => 20700,
+		'NRT' => 43200,
+		'NST' => -12600,
+		'NUT' => -39600,
+		'NZDT' => 46800,
+		'NZST' => 43200,
+		'OMSST' => 25200,
+		'OMST' => 21600,
+		'PDT' => -25200,
+		'PET' => -18000,
+		'PETST' => 46800,
+		'PETT' => 43200,
+		'PGT' => 36000,
+		'PHOT' => 46800,
+		'PHT' => 28800,
+		'PKT' => 18000,
+		'PMDT' => -7200,
+		'PMST' => -10800,
+		'PONT' => 39600,
+		'PST' => -28800,
+		'PWT' => 32400,
+		'PYST' => -10800,
+		'PYT' => -14400,
+		'RET' => 14400,
+		'ROTT' => -10800,
+		'SAMST' => 18000,
+		'SAMT' => 14400,
+		'SAST' => 7200,
+		'SBT' => 39600,
+		'SCDT' => 46800,
+		'SCST' => 43200,
+		'SCT' => 14400,
+		'SEST' => 3600,
+		'SGT' => 28800,
+		'SIT' => 28800,
+		'SRT' => -10800,
+		'SST' => -39600,
+		'SYST' => 10800,
+		'SYT' => 7200,
+		'TFT' => 18000,
+		'THAT' => -36000,
+		'TJT' => 18000,
+		'TKT' => -36000,
+		'TMT' => 18000,
+		'TOT' => 46800,
+		'TPT' => 32400,
+		'TRUT' => 36000,
+		'TVT' => 43200,
+		'TWT' => 28800,
+		'UYST' => -7200,
+		'UYT' => -10800,
+		'UZT' => 18000,
+		'VET' => -14400,
+		'VLAST' => 39600,
+		'VLAT' => 36000,
+		'VOST' => 21600,
+		'VUT' => 39600,
+		'WAST' => 7200,
+		'WAT' => 3600,
+		'WDT' => 32400,
+		'WEST' => 3600,
+		'WFT' => 43200,
+		'WIB' => 25200,
+		'WIT' => 32400,
+		'WITA' => 28800,
+		'WKST' => 18000,
+		'WST' => 28800,
+		'YAKST' => 36000,
+		'YAKT' => 32400,
+		'YAPT' => 36000,
+		'YEKST' => 21600,
+		'YEKT' => 18000,
+	);
+
+	/**
+	 * Cached PCRE for SimplePie_Parse_Date::$day
+	 *
+	 * @access protected
+	 * @var string
+	 */
+	var $day_pcre;
+
+	/**
+	 * Cached PCRE for SimplePie_Parse_Date::$month
+	 *
+	 * @access protected
+	 * @var string
+	 */
+	var $month_pcre;
+
+	/**
+	 * Array of user-added callback methods
+	 *
+	 * @access private
+	 * @var array
+	 */
+	var $built_in = array();
+
+	/**
+	 * Array of user-added callback methods
+	 *
+	 * @access private
+	 * @var array
+	 */
+	var $user = array();
+
+	/**
+	 * Create new SimplePie_Parse_Date object, and set self::day_pcre,
+	 * self::month_pcre, and self::built_in
+	 *
+	 * @access private
+	 */
+	public function __construct()
+	{
+		$this->day_pcre = '(' . implode(array_keys($this->day), '|') . ')';
+		$this->month_pcre = '(' . implode(array_keys($this->month), '|') . ')';
+
+		static $cache;
+		if (!isset($cache[get_class($this)]))
+		{
+			$all_methods = get_class_methods($this);
+
+			foreach ($all_methods as $method)
+			{
+				if (strtolower(substr($method, 0, 5)) === 'date_')
+				{
+					$cache[get_class($this)][] = $method;
+				}
+			}
+		}
+
+		foreach ($cache[get_class($this)] as $method)
+		{
+			$this->built_in[] = $method;
+		}
+	}
+
+	/**
+	 * Get the object
+	 *
+	 * @access public
+	 */
+	public static function get()
+	{
+		static $object;
+		if (!$object)
+		{
+			$object = new SimplePie_Parse_Date;
+		}
+		return $object;
+	}
+
+	/**
+	 * Parse a date
+	 *
+	 * @final
+	 * @access public
+	 * @param string $date Date to parse
+	 * @return int Timestamp corresponding to date string, or false on failure
+	 */
+	public function parse($date)
+	{
+		foreach ($this->user as $method)
+		{
+			if (($returned = call_user_func($method, $date)) !== false)
+			{
+				return $returned;
+			}
+		}
+
+		foreach ($this->built_in as $method)
+		{
+			if (($returned = call_user_func(array($this, $method), $date)) !== false)
+			{
+				return $returned;
+			}
+		}
+
+		return false;
+	}
+
+	/**
+	 * Add a callback method to parse a date
+	 *
+	 * @final
+	 * @access public
+	 * @param callback $callback
+	 */
+	public function add_callback($callback)
+	{
+		if (is_callable($callback))
+		{
+			$this->user[] = $callback;
+		}
+		else
+		{
+			trigger_error('User-supplied function must be a valid callback', E_USER_WARNING);
+		}
+	}
+
+	/**
+	 * Parse a superset of W3C-DTF (allows hyphens and colons to be omitted, as
+	 * well as allowing any of upper or lower case "T", horizontal tabs, or
+	 * spaces to be used as the time seperator (including more than one))
+	 *
+	 * @access protected
+	 * @return int Timestamp
+	 */
+	public function date_w3cdtf($date)
+	{
+		static $pcre;
+		if (!$pcre)
+		{
+			$year = '([0-9]{4})';
+			$month = $day = $hour = $minute = $second = '([0-9]{2})';
+			$decimal = '([0-9]*)';
+			$zone = '(?:(Z)|([+\-])([0-9]{1,2}):?([0-9]{1,2}))';
+			$pcre = '/^' . $year . '(?:-?' . $month . '(?:-?' . $day . '(?:[Tt\x09\x20]+' . $hour . '(?::?' . $minute . '(?::?' . $second . '(?:.' . $decimal . ')?)?)?' . $zone . ')?)?)?$/';
+		}
+		if (preg_match($pcre, $date, $match))
+		{
+			/*
+			Capturing subpatterns:
+			1: Year
+			2: Month
+			3: Day
+			4: Hour
+			5: Minute
+			6: Second
+			7: Decimal fraction of a second
+			8: Zulu
+			9: Timezone ±
+			10: Timezone hours
+			11: Timezone minutes
+			*/
+
+			// Fill in empty matches
+			for ($i = count($match); $i <= 3; $i++)
+			{
+				$match[$i] = '1';
+			}
+
+			for ($i = count($match); $i <= 7; $i++)
+			{
+				$match[$i] = '0';
+			}
+
+			// Numeric timezone
+			if (isset($match[9]) && $match[9] !== '')
+			{
+				$timezone = $match[10] * 3600;
+				$timezone += $match[11] * 60;
+				if ($match[9] === '-')
+				{
+					$timezone = 0 - $timezone;
+				}
+			}
+			else
+			{
+				$timezone = 0;
+			}
+
+			// Convert the number of seconds to an integer, taking decimals into account
+			$second = round($match[6] + $match[7] / pow(10, strlen($match[7])));
+
+			return gmmktime($match[4], $match[5], $second, $match[2], $match[3], $match[1]) - $timezone;
+		}
+		else
+		{
+			return false;
+		}
+	}
+
+	/**
+	 * Remove RFC822 comments
+	 *
+	 * @access protected
+	 * @param string $data Data to strip comments from
+	 * @return string Comment stripped string
+	 */
+	public function remove_rfc2822_comments($string)
+	{
+		$string = (string) $string;
+		$position = 0;
+		$length = strlen($string);
+		$depth = 0;
+
+		$output = '';
+
+		while ($position < $length && ($pos = strpos($string, '(', $position)) !== false)
+		{
+			$output .= substr($string, $position, $pos - $position);
+			$position = $pos + 1;
+			if ($string[$pos - 1] !== '\\')
+			{
+				$depth++;
+				while ($depth && $position < $length)
+				{
+					$position += strcspn($string, '()', $position);
+					if ($string[$position - 1] === '\\')
+					{
+						$position++;
+						continue;
+					}
+					elseif (isset($string[$position]))
+					{
+						switch ($string[$position])
+						{
+							case '(':
+								$depth++;
+								break;
+
+							case ')':
+								$depth--;
+								break;
+						}
+						$position++;
+					}
+					else
+					{
+						break;
+					}
+				}
+			}
+			else
+			{
+				$output .= '(';
+			}
+		}
+		$output .= substr($string, $position);
+
+		return $output;
+	}
+
+	/**
+	 * Parse RFC2822's date format
+	 *
+	 * @access protected
+	 * @return int Timestamp
+	 */
+	public function date_rfc2822($date)
+	{
+		static $pcre;
+		if (!$pcre)
+		{
+			$wsp = '[\x09\x20]';
+			$fws = '(?:' . $wsp . '+|' . $wsp . '*(?:\x0D\x0A' . $wsp . '+)+)';
+			$optional_fws = $fws . '?';
+			$day_name = $this->day_pcre;
+			$month = $this->month_pcre;
+			$day = '([0-9]{1,2})';
+			$hour = $minute = $second = '([0-9]{2})';
+			$year = '([0-9]{2,4})';
+			$num_zone = '([+\-])([0-9]{2})([0-9]{2})';
+			$character_zone = '([A-Z]{1,5})';
+			$zone = '(?:' . $num_zone . '|' . $character_zone . ')';
+			$pcre = '/(?:' . $optional_fws . $day_name . $optional_fws . ',)?' . $optional_fws . $day . $fws . $month . $fws . $year . $fws . $hour . $optional_fws . ':' . $optional_fws . $minute . '(?:' . $optional_fws . ':' . $optional_fws . $second . ')?' . $fws . $zone . '/i';
+		}
+		if (preg_match($pcre, $this->remove_rfc2822_comments($date), $match))
+		{
+			/*
+			Capturing subpatterns:
+			1: Day name
+			2: Day
+			3: Month
+			4: Year
+			5: Hour
+			6: Minute
+			7: Second
+			8: Timezone ±
+			9: Timezone hours
+			10: Timezone minutes
+			11: Alphabetic timezone
+			*/
+
+			// Find the month number
+			$month = $this->month[strtolower($match[3])];
+
+			// Numeric timezone
+			if ($match[8] !== '')
+			{
+				$timezone = $match[9] * 3600;
+				$timezone += $match[10] * 60;
+				if ($match[8] === '-')
+				{
+					$timezone = 0 - $timezone;
+				}
+			}
+			// Character timezone
+			elseif (isset($this->timezone[strtoupper($match[11])]))
+			{
+				$timezone = $this->timezone[strtoupper($match[11])];
+			}
+			// Assume everything else to be -0000
+			else
+			{
+				$timezone = 0;
+			}
+
+			// Deal with 2/3 digit years
+			if ($match[4] < 50)
+			{
+				$match[4] += 2000;
+			}
+			elseif ($match[4] < 1000)
+			{
+				$match[4] += 1900;
+			}
+
+			// Second is optional, if it is empty set it to zero
+			if ($match[7] !== '')
+			{
+				$second = $match[7];
+			}
+			else
+			{
+				$second = 0;
+			}
+
+			return gmmktime($match[5], $match[6], $second, $month, $match[2], $match[4]) - $timezone;
+		}
+		else
+		{
+			return false;
+		}
+	}
+
+	/**
+	 * Parse RFC850's date format
+	 *
+	 * @access protected
+	 * @return int Timestamp
+	 */
+	public function date_rfc850($date)
+	{
+		static $pcre;
+		if (!$pcre)
+		{
+			$space = '[\x09\x20]+';
+			$day_name = $this->day_pcre;
+			$month = $this->month_pcre;
+			$day = '([0-9]{1,2})';
+			$year = $hour = $minute = $second = '([0-9]{2})';
+			$zone = '([A-Z]{1,5})';
+			$pcre = '/^' . $day_name . ',' . $space . $day . '-' . $month . '-' . $year . $space . $hour . ':' . $minute . ':' . $second . $space . $zone . '$/i';
+		}
+		if (preg_match($pcre, $date, $match))
+		{
+			/*
+			Capturing subpatterns:
+			1: Day name
+			2: Day
+			3: Month
+			4: Year
+			5: Hour
+			6: Minute
+			7: Second
+			8: Timezone
+			*/
+
+			// Month
+			$month = $this->month[strtolower($match[3])];
+
+			// Character timezone
+			if (isset($this->timezone[strtoupper($match[8])]))
+			{
+				$timezone = $this->timezone[strtoupper($match[8])];
+			}
+			// Assume everything else to be -0000
+			else
+			{
+				$timezone = 0;
+			}
+
+			// Deal with 2 digit year
+			if ($match[4] < 50)
+			{
+				$match[4] += 2000;
+			}
+			else
+			{
+				$match[4] += 1900;
+			}
+
+			return gmmktime($match[5], $match[6], $match[7], $month, $match[2], $match[4]) - $timezone;
+		}
+		else
+		{
+			return false;
+		}
+	}
+
+	/**
+	 * Parse C99's asctime()'s date format
+	 *
+	 * @access protected
+	 * @return int Timestamp
+	 */
+	public function date_asctime($date)
+	{
+		static $pcre;
+		if (!$pcre)
+		{
+			$space = '[\x09\x20]+';
+			$wday_name = $this->day_pcre;
+			$mon_name = $this->month_pcre;
+			$day = '([0-9]{1,2})';
+			$hour = $sec = $min = '([0-9]{2})';
+			$year = '([0-9]{4})';
+			$terminator = '\x0A?\x00?';
+			$pcre = '/^' . $wday_name . $space . $mon_name . $space . $day . $space . $hour . ':' . $min . ':' . $sec . $space . $year . $terminator . '$/i';
+		}
+		if (preg_match($pcre, $date, $match))
+		{
+			/*
+			Capturing subpatterns:
+			1: Day name
+			2: Month
+			3: Day
+			4: Hour
+			5: Minute
+			6: Second
+			7: Year
+			*/
+
+			$month = $this->month[strtolower($match[2])];
+			return gmmktime($match[4], $match[5], $match[6], $month, $match[3], $match[7]);
+		}
+		else
+		{
+			return false;
+		}
+	}
+
+	/**
+	 * Parse dates using strtotime()
+	 *
+	 * @access protected
+	 * @return int Timestamp
+	 */
+	public function date_strtotime($date)
+	{
+		$strtotime = strtotime($date);
+		if ($strtotime === -1 || $strtotime === false)
+		{
+			return false;
+		}
+		else
+		{
+			return $strtotime;
+		}
+	}
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-includes/SimplePie/Parser.php	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,407 @@
+<?php
+/**
+ * SimplePie
+ *
+ * A PHP-Based RSS and Atom Feed Framework.
+ * Takes the hard work out of managing a complete RSS/Atom solution.
+ *
+ * Copyright (c) 2004-2012, Ryan Parman, Geoffrey Sneddon, Ryan McCue, and contributors
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without modification, are
+ * permitted provided that the following conditions are met:
+ *
+ * 	* Redistributions of source code must retain the above copyright notice, this list of
+ * 	  conditions and the following disclaimer.
+ *
+ * 	* Redistributions in binary form must reproduce the above copyright notice, this list
+ * 	  of conditions and the following disclaimer in the documentation and/or other materials
+ * 	  provided with the distribution.
+ *
+ * 	* Neither the name of the SimplePie Team nor the names of its contributors may be used
+ * 	  to endorse or promote products derived from this software without specific prior
+ * 	  written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS
+ * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
+ * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS
+ * AND CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ * @package SimplePie
+ * @version 1.3.1
+ * @copyright 2004-2012 Ryan Parman, Geoffrey Sneddon, Ryan McCue
+ * @author Ryan Parman
+ * @author Geoffrey Sneddon
+ * @author Ryan McCue
+ * @link http://simplepie.org/ SimplePie
+ * @license http://www.opensource.org/licenses/bsd-license.php BSD License
+ */
+
+/**
+ * Parses XML into something sane
+ *
+ *
+ * This class can be overloaded with {@see SimplePie::set_parser_class()}
+ *
+ * @package SimplePie
+ * @subpackage Parsing
+ */
+class SimplePie_Parser
+{
+	var $error_code;
+	var $error_string;
+	var $current_line;
+	var $current_column;
+	var $current_byte;
+	var $separator = ' ';
+	var $namespace = array('');
+	var $element = array('');
+	var $xml_base = array('');
+	var $xml_base_explicit = array(false);
+	var $xml_lang = array('');
+	var $data = array();
+	var $datas = array(array());
+	var $current_xhtml_construct = -1;
+	var $encoding;
+	protected $registry;
+
+	public function set_registry(SimplePie_Registry $registry)
+	{
+		$this->registry = $registry;
+	}
+
+	public function parse(&$data, $encoding)
+	{
+		// Use UTF-8 if we get passed US-ASCII, as every US-ASCII character is a UTF-8 character
+		if (strtoupper($encoding) === 'US-ASCII')
+		{
+			$this->encoding = 'UTF-8';
+		}
+		else
+		{
+			$this->encoding = $encoding;
+		}
+
+		// Strip BOM:
+		// UTF-32 Big Endian BOM
+		if (substr($data, 0, 4) === "\x00\x00\xFE\xFF")
+		{
+			$data = substr($data, 4);
+		}
+		// UTF-32 Little Endian BOM
+		elseif (substr($data, 0, 4) === "\xFF\xFE\x00\x00")
+		{
+			$data = substr($data, 4);
+		}
+		// UTF-16 Big Endian BOM
+		elseif (substr($data, 0, 2) === "\xFE\xFF")
+		{
+			$data = substr($data, 2);
+		}
+		// UTF-16 Little Endian BOM
+		elseif (substr($data, 0, 2) === "\xFF\xFE")
+		{
+			$data = substr($data, 2);
+		}
+		// UTF-8 BOM
+		elseif (substr($data, 0, 3) === "\xEF\xBB\xBF")
+		{
+			$data = substr($data, 3);
+		}
+
+		if (substr($data, 0, 5) === '<?xml' && strspn(substr($data, 5, 1), "\x09\x0A\x0D\x20") && ($pos = strpos($data, '?>')) !== false)
+		{
+			$declaration = $this->registry->create('XML_Declaration_Parser', array(substr($data, 5, $pos - 5)));
+			if ($declaration->parse())
+			{
+				$data = substr($data, $pos + 2);
+				$data = '<?xml version="' . $declaration->version . '" encoding="' . $encoding . '" standalone="' . (($declaration->standalone) ? 'yes' : 'no') . '"?>' . $data;
+			}
+			else
+			{
+				$this->error_string = 'SimplePie bug! Please report this!';
+				return false;
+			}
+		}
+
+		$return = true;
+
+		static $xml_is_sane = null;
+		if ($xml_is_sane === null)
+		{
+			$parser_check = xml_parser_create();
+			xml_parse_into_struct($parser_check, '<foo>&amp;</foo>', $values);
+			xml_parser_free($parser_check);
+			$xml_is_sane = isset($values[0]['value']);
+		}
+
+		// Create the parser
+		if ($xml_is_sane)
+		{
+			$xml = xml_parser_create_ns($this->encoding, $this->separator);
+			xml_parser_set_option($xml, XML_OPTION_SKIP_WHITE, 1);
+			xml_parser_set_option($xml, XML_OPTION_CASE_FOLDING, 0);
+			xml_set_object($xml, $this);
+			xml_set_character_data_handler($xml, 'cdata');
+			xml_set_element_handler($xml, 'tag_open', 'tag_close');
+
+			// Parse!
+			if (!xml_parse($xml, $data, true))
+			{
+				$this->error_code = xml_get_error_code($xml);
+				$this->error_string = xml_error_string($this->error_code);
+				$return = false;
+			}
+			$this->current_line = xml_get_current_line_number($xml);
+			$this->current_column = xml_get_current_column_number($xml);
+			$this->current_byte = xml_get_current_byte_index($xml);
+			xml_parser_free($xml);
+			return $return;
+		}
+		else
+		{
+			libxml_clear_errors();
+			$xml = new XMLReader();
+			$xml->xml($data);
+			while (@$xml->read())
+			{
+				switch ($xml->nodeType)
+				{
+
+					case constant('XMLReader::END_ELEMENT'):
+						if ($xml->namespaceURI !== '')
+						{
+							$tagName = $xml->namespaceURI . $this->separator . $xml->localName;
+						}
+						else
+						{
+							$tagName = $xml->localName;
+						}
+						$this->tag_close(null, $tagName);
+						break;
+					case constant('XMLReader::ELEMENT'):
+						$empty = $xml->isEmptyElement;
+						if ($xml->namespaceURI !== '')
+						{
+							$tagName = $xml->namespaceURI . $this->separator . $xml->localName;
+						}
+						else
+						{
+							$tagName = $xml->localName;
+						}
+						$attributes = array();
+						while ($xml->moveToNextAttribute())
+						{
+							if ($xml->namespaceURI !== '')
+							{
+								$attrName = $xml->namespaceURI . $this->separator . $xml->localName;
+							}
+							else
+							{
+								$attrName = $xml->localName;
+							}
+							$attributes[$attrName] = $xml->value;
+						}
+						$this->tag_open(null, $tagName, $attributes);
+						if ($empty)
+						{
+							$this->tag_close(null, $tagName);
+						}
+						break;
+					case constant('XMLReader::TEXT'):
+
+					case constant('XMLReader::CDATA'):
+						$this->cdata(null, $xml->value);
+						break;
+				}
+			}
+			if ($error = libxml_get_last_error())
+			{
+				$this->error_code = $error->code;
+				$this->error_string = $error->message;
+				$this->current_line = $error->line;
+				$this->current_column = $error->column;
+				return false;
+			}
+			else
+			{
+				return true;
+			}
+		}
+	}
+
+	public function get_error_code()
+	{
+		return $this->error_code;
+	}
+
+	public function get_error_string()
+	{
+		return $this->error_string;
+	}
+
+	public function get_current_line()
+	{
+		return $this->current_line;
+	}
+
+	public function get_current_column()
+	{
+		return $this->current_column;
+	}
+
+	public function get_current_byte()
+	{
+		return $this->current_byte;
+	}
+
+	public function get_data()
+	{
+		return $this->data;
+	}
+
+	public function tag_open($parser, $tag, $attributes)
+	{
+		list($this->namespace[], $this->element[]) = $this->split_ns($tag);
+
+		$attribs = array();
+		foreach ($attributes as $name => $value)
+		{
+			list($attrib_namespace, $attribute) = $this->split_ns($name);
+			$attribs[$attrib_namespace][$attribute] = $value;
+		}
+
+		if (isset($attribs[SIMPLEPIE_NAMESPACE_XML]['base']))
+		{
+			$base = $this->registry->call('Misc', 'absolutize_url', array($attribs[SIMPLEPIE_NAMESPACE_XML]['base'], end($this->xml_base)));
+			if ($base !== false)
+			{
+				$this->xml_base[] = $base;
+				$this->xml_base_explicit[] = true;
+			}
+		}
+		else
+		{
+			$this->xml_base[] = end($this->xml_base);
+			$this->xml_base_explicit[] = end($this->xml_base_explicit);
+		}
+
+		if (isset($attribs[SIMPLEPIE_NAMESPACE_XML]['lang']))
+		{
+			$this->xml_lang[] = $attribs[SIMPLEPIE_NAMESPACE_XML]['lang'];
+		}
+		else
+		{
+			$this->xml_lang[] = end($this->xml_lang);
+		}
+
+		if ($this->current_xhtml_construct >= 0)
+		{
+			$this->current_xhtml_construct++;
+			if (end($this->namespace) === SIMPLEPIE_NAMESPACE_XHTML)
+			{
+				$this->data['data'] .= '<' . end($this->element);
+				if (isset($attribs['']))
+				{
+					foreach ($attribs[''] as $name => $value)
+					{
+						$this->data['data'] .= ' ' . $name . '="' . htmlspecialchars($value, ENT_COMPAT, $this->encoding) . '"';
+					}
+				}
+				$this->data['data'] .= '>';
+			}
+		}
+		else
+		{
+			$this->datas[] =& $this->data;
+			$this->data =& $this->data['child'][end($this->namespace)][end($this->element)][];
+			$this->data = array('data' => '', 'attribs' => $attribs, 'xml_base' => end($this->xml_base), 'xml_base_explicit' => end($this->xml_base_explicit), 'xml_lang' => end($this->xml_lang));
+			if ((end($this->namespace) === SIMPLEPIE_NAMESPACE_ATOM_03 && in_array(end($this->element), array('title', 'tagline', 'copyright', 'info', 'summary', 'content')) && isset($attribs['']['mode']) && $attribs['']['mode'] === 'xml')
+			|| (end($this->namespace) === SIMPLEPIE_NAMESPACE_ATOM_10 && in_array(end($this->element), array('rights', 'subtitle', 'summary', 'info', 'title', 'content')) && isset($attribs['']['type']) && $attribs['']['type'] === 'xhtml')
+			|| (end($this->namespace) === SIMPLEPIE_NAMESPACE_RSS_20 && in_array(end($this->element), array('title')))
+			|| (end($this->namespace) === SIMPLEPIE_NAMESPACE_RSS_090 && in_array(end($this->element), array('title')))
+			|| (end($this->namespace) === SIMPLEPIE_NAMESPACE_RSS_10 && in_array(end($this->element), array('title'))))
+			{
+				$this->current_xhtml_construct = 0;
+			}
+		}
+	}
+
+	public function cdata($parser, $cdata)
+	{
+		if ($this->current_xhtml_construct >= 0)
+		{
+			$this->data['data'] .= htmlspecialchars($cdata, ENT_QUOTES, $this->encoding);
+		}
+		else
+		{
+			$this->data['data'] .= $cdata;
+		}
+	}
+
+	public function tag_close($parser, $tag)
+	{
+		if ($this->current_xhtml_construct >= 0)
+		{
+			$this->current_xhtml_construct--;
+			if (end($this->namespace) === SIMPLEPIE_NAMESPACE_XHTML && !in_array(end($this->element), array('area', 'base', 'basefont', 'br', 'col', 'frame', 'hr', 'img', 'input', 'isindex', 'link', 'meta', 'param')))
+			{
+				$this->data['data'] .= '</' . end($this->element) . '>';
+			}
+		}
+		if ($this->current_xhtml_construct === -1)
+		{
+			$this->data =& $this->datas[count($this->datas) - 1];
+			array_pop($this->datas);
+		}
+
+		array_pop($this->element);
+		array_pop($this->namespace);
+		array_pop($this->xml_base);
+		array_pop($this->xml_base_explicit);
+		array_pop($this->xml_lang);
+	}
+
+	public function split_ns($string)
+	{
+		static $cache = array();
+		if (!isset($cache[$string]))
+		{
+			if ($pos = strpos($string, $this->separator))
+			{
+				static $separator_length;
+				if (!$separator_length)
+				{
+					$separator_length = strlen($this->separator);
+				}
+				$namespace = substr($string, 0, $pos);
+				$local_name = substr($string, $pos + $separator_length);
+				if (strtolower($namespace) === SIMPLEPIE_NAMESPACE_ITUNES)
+				{
+					$namespace = SIMPLEPIE_NAMESPACE_ITUNES;
+				}
+
+				// Normalize the Media RSS namespaces
+				if ($namespace === SIMPLEPIE_NAMESPACE_MEDIARSS_WRONG ||
+					$namespace === SIMPLEPIE_NAMESPACE_MEDIARSS_WRONG2 ||
+					$namespace === SIMPLEPIE_NAMESPACE_MEDIARSS_WRONG3 ||
+					$namespace === SIMPLEPIE_NAMESPACE_MEDIARSS_WRONG4 ||
+					$namespace === SIMPLEPIE_NAMESPACE_MEDIARSS_WRONG5 )
+				{
+					$namespace = SIMPLEPIE_NAMESPACE_MEDIARSS;
+				}
+				$cache[$string] = array($namespace, $local_name);
+			}
+			else
+			{
+				$cache[$string] = array('', $string);
+			}
+		}
+		return $cache[$string];
+	}
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-includes/SimplePie/Rating.php	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,129 @@
+<?php
+/**
+ * SimplePie
+ *
+ * A PHP-Based RSS and Atom Feed Framework.
+ * Takes the hard work out of managing a complete RSS/Atom solution.
+ *
+ * Copyright (c) 2004-2012, Ryan Parman, Geoffrey Sneddon, Ryan McCue, and contributors
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without modification, are
+ * permitted provided that the following conditions are met:
+ *
+ * 	* Redistributions of source code must retain the above copyright notice, this list of
+ * 	  conditions and the following disclaimer.
+ *
+ * 	* Redistributions in binary form must reproduce the above copyright notice, this list
+ * 	  of conditions and the following disclaimer in the documentation and/or other materials
+ * 	  provided with the distribution.
+ *
+ * 	* Neither the name of the SimplePie Team nor the names of its contributors may be used
+ * 	  to endorse or promote products derived from this software without specific prior
+ * 	  written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS
+ * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
+ * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS
+ * AND CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ * @package SimplePie
+ * @version 1.3.1
+ * @copyright 2004-2012 Ryan Parman, Geoffrey Sneddon, Ryan McCue
+ * @author Ryan Parman
+ * @author Geoffrey Sneddon
+ * @author Ryan McCue
+ * @link http://simplepie.org/ SimplePie
+ * @license http://www.opensource.org/licenses/bsd-license.php BSD License
+ */
+
+/**
+ * Handles `<media:rating>` or `<itunes:explicit>` tags as defined in Media RSS and iTunes RSS respectively
+ *
+ * Used by {@see SimplePie_Enclosure::get_rating()} and {@see SimplePie_Enclosure::get_ratings()}
+ *
+ * This class can be overloaded with {@see SimplePie::set_rating_class()}
+ *
+ * @package SimplePie
+ * @subpackage API
+ */
+class SimplePie_Rating
+{
+	/**
+	 * Rating scheme
+	 *
+	 * @var string
+	 * @see get_scheme()
+	 */
+	var $scheme;
+
+	/**
+	 * Rating value
+	 *
+	 * @var string
+	 * @see get_value()
+	 */
+	var $value;
+
+	/**
+	 * Constructor, used to input the data
+	 *
+	 * For documentation on all the parameters, see the corresponding
+	 * properties and their accessors
+	 */
+	public function __construct($scheme = null, $value = null)
+	{
+		$this->scheme = $scheme;
+		$this->value = $value;
+	}
+
+	/**
+	 * String-ified version
+	 *
+	 * @return string
+	 */
+	public function __toString()
+	{
+		// There is no $this->data here
+		return md5(serialize($this));
+	}
+
+	/**
+	 * Get the organizational scheme for the rating
+	 *
+	 * @return string|null
+	 */
+	public function get_scheme()
+	{
+		if ($this->scheme !== null)
+		{
+			return $this->scheme;
+		}
+		else
+		{
+			return null;
+		}
+	}
+
+	/**
+	 * Get the value of the rating
+	 *
+	 * @return string|null
+	 */
+	public function get_value()
+	{
+		if ($this->value !== null)
+		{
+			return $this->value;
+		}
+		else
+		{
+			return null;
+		}
+	}
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-includes/SimplePie/Registry.php	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,225 @@
+<?php
+/**
+ * SimplePie
+ *
+ * A PHP-Based RSS and Atom Feed Framework.
+ * Takes the hard work out of managing a complete RSS/Atom solution.
+ *
+ * Copyright (c) 2004-2012, Ryan Parman, Geoffrey Sneddon, Ryan McCue, and contributors
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without modification, are
+ * permitted provided that the following conditions are met:
+ *
+ * 	* Redistributions of source code must retain the above copyright notice, this list of
+ * 	  conditions and the following disclaimer.
+ *
+ * 	* Redistributions in binary form must reproduce the above copyright notice, this list
+ * 	  of conditions and the following disclaimer in the documentation and/or other materials
+ * 	  provided with the distribution.
+ *
+ * 	* Neither the name of the SimplePie Team nor the names of its contributors may be used
+ * 	  to endorse or promote products derived from this software without specific prior
+ * 	  written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS
+ * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
+ * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS
+ * AND CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ * @package SimplePie
+ * @version 1.3.1
+ * @copyright 2004-2012 Ryan Parman, Geoffrey Sneddon, Ryan McCue
+ * @author Ryan Parman
+ * @author Geoffrey Sneddon
+ * @author Ryan McCue
+ * @link http://simplepie.org/ SimplePie
+ * @license http://www.opensource.org/licenses/bsd-license.php BSD License
+ */
+
+/**
+ * Handles creating objects and calling methods
+ *
+ * Access this via {@see SimplePie::get_registry()}
+ *
+ * @package SimplePie
+ */
+class SimplePie_Registry
+{
+	/**
+	 * Default class mapping
+	 *
+	 * Overriding classes *must* subclass these.
+	 *
+	 * @var array
+	 */
+	protected $default = array(
+		'Cache' => 'SimplePie_Cache',
+		'Locator' => 'SimplePie_Locator',
+		'Parser' => 'SimplePie_Parser',
+		'File' => 'SimplePie_File',
+		'Sanitize' => 'SimplePie_Sanitize',
+		'Item' => 'SimplePie_Item',
+		'Author' => 'SimplePie_Author',
+		'Category' => 'SimplePie_Category',
+		'Enclosure' => 'SimplePie_Enclosure',
+		'Caption' => 'SimplePie_Caption',
+		'Copyright' => 'SimplePie_Copyright',
+		'Credit' => 'SimplePie_Credit',
+		'Rating' => 'SimplePie_Rating',
+		'Restriction' => 'SimplePie_Restriction',
+		'Content_Type_Sniffer' => 'SimplePie_Content_Type_Sniffer',
+		'Source' => 'SimplePie_Source',
+		'Misc' => 'SimplePie_Misc',
+		'XML_Declaration_Parser' => 'SimplePie_XML_Declaration_Parser',
+		'Parse_Date' => 'SimplePie_Parse_Date',
+	);
+
+	/**
+	 * Class mapping
+	 *
+	 * @see register()
+	 * @var array
+	 */
+	protected $classes = array();
+
+	/**
+	 * Legacy classes
+	 *
+	 * @see register()
+	 * @var array
+	 */
+	protected $legacy = array();
+
+	/**
+	 * Constructor
+	 *
+	 * No-op
+	 */
+	public function __construct() { }
+
+	/**
+	 * Register a class
+	 *
+	 * @param string $type See {@see $default} for names
+	 * @param string $class Class name, must subclass the corresponding default
+	 * @param bool $legacy Whether to enable legacy support for this class
+	 * @return bool Successfulness
+	 */
+	public function register($type, $class, $legacy = false)
+	{
+		if (!is_subclass_of($class, $this->default[$type]))
+		{
+			return false;
+		}
+
+		$this->classes[$type] = $class;
+
+		if ($legacy)
+		{
+			$this->legacy[] = $class;
+		}
+
+		return true;
+	}
+
+	/**
+	 * Get the class registered for a type
+	 *
+	 * Where possible, use {@see create()} or {@see call()} instead
+	 *
+	 * @param string $type
+	 * @return string|null
+	 */
+	public function get_class($type)
+	{
+		if (!empty($this->classes[$type]))
+		{
+			return $this->classes[$type];
+		}
+		if (!empty($this->default[$type]))
+		{
+			return $this->default[$type];
+		}
+
+		return null;
+	}
+
+	/**
+	 * Create a new instance of a given type
+	 *
+	 * @param string $type
+	 * @param array $parameters Parameters to pass to the constructor
+	 * @return object Instance of class
+	 */
+	public function &create($type, $parameters = array())
+	{
+		$class = $this->get_class($type);
+
+		if (in_array($class, $this->legacy))
+		{
+			switch ($type)
+			{
+				case 'locator':
+					// Legacy: file, timeout, useragent, file_class, max_checked_feeds, content_type_sniffer_class
+					// Specified: file, timeout, useragent, max_checked_feeds
+					$replacement = array($this->get_class('file'), $parameters[3], $this->get_class('content_type_sniffer'));
+					array_splice($parameters, 3, 1, $replacement);
+					break;
+			}
+		}
+
+		if (!method_exists($class, '__construct'))
+		{
+			$instance = new $class;
+		}
+		else
+		{
+			$reflector = new ReflectionClass($class);
+			$instance = $reflector->newInstanceArgs($parameters);
+		}
+
+		if (method_exists($instance, 'set_registry'))
+		{
+			$instance->set_registry($this);
+		}
+		return $instance;
+	}
+
+	/**
+	 * Call a static method for a type
+	 *
+	 * @param string $type
+	 * @param string $method
+	 * @param array $parameters
+	 * @return mixed
+	 */
+	public function &call($type, $method, $parameters = array())
+	{
+		$class = $this->get_class($type);
+
+		if (in_array($class, $this->legacy))
+		{
+			switch ($type)
+			{
+				case 'Cache':
+					// For backwards compatibility with old non-static
+					// Cache::create() methods
+					if ($method === 'get_handler')
+					{
+						$result = @call_user_func_array(array($class, 'create'), $parameters);
+						return $result;
+					}
+					break;
+			}
+		}
+
+		$result = call_user_func_array(array($class, $method), $parameters);
+		return $result;
+	}
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-includes/SimplePie/Restriction.php	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,155 @@
+<?php
+/**
+ * SimplePie
+ *
+ * A PHP-Based RSS and Atom Feed Framework.
+ * Takes the hard work out of managing a complete RSS/Atom solution.
+ *
+ * Copyright (c) 2004-2012, Ryan Parman, Geoffrey Sneddon, Ryan McCue, and contributors
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without modification, are
+ * permitted provided that the following conditions are met:
+ *
+ * 	* Redistributions of source code must retain the above copyright notice, this list of
+ * 	  conditions and the following disclaimer.
+ *
+ * 	* Redistributions in binary form must reproduce the above copyright notice, this list
+ * 	  of conditions and the following disclaimer in the documentation and/or other materials
+ * 	  provided with the distribution.
+ *
+ * 	* Neither the name of the SimplePie Team nor the names of its contributors may be used
+ * 	  to endorse or promote products derived from this software without specific prior
+ * 	  written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS
+ * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
+ * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS
+ * AND CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ * @package SimplePie
+ * @version 1.3.1
+ * @copyright 2004-2012 Ryan Parman, Geoffrey Sneddon, Ryan McCue
+ * @author Ryan Parman
+ * @author Geoffrey Sneddon
+ * @author Ryan McCue
+ * @link http://simplepie.org/ SimplePie
+ * @license http://www.opensource.org/licenses/bsd-license.php BSD License
+ */
+
+/**
+ * Handles `<media:restriction>` as defined in Media RSS
+ *
+ * Used by {@see SimplePie_Enclosure::get_restriction()} and {@see SimplePie_Enclosure::get_restrictions()}
+ *
+ * This class can be overloaded with {@see SimplePie::set_restriction_class()}
+ *
+ * @package SimplePie
+ * @subpackage API
+ */
+class SimplePie_Restriction
+{
+	/**
+	 * Relationship ('allow'/'deny')
+	 *
+	 * @var string
+	 * @see get_relationship()
+	 */
+	var $relationship;
+
+	/**
+	 * Type of restriction
+	 *
+	 * @var string
+	 * @see get_type()
+	 */
+	var $type;
+
+	/**
+	 * Restricted values
+	 *
+	 * @var string
+	 * @see get_value()
+	 */
+	var $value;
+
+	/**
+	 * Constructor, used to input the data
+	 *
+	 * For documentation on all the parameters, see the corresponding
+	 * properties and their accessors
+	 */
+	public function __construct($relationship = null, $type = null, $value = null)
+	{
+		$this->relationship = $relationship;
+		$this->type = $type;
+		$this->value = $value;
+	}
+
+	/**
+	 * String-ified version
+	 *
+	 * @return string
+	 */
+	public function __toString()
+	{
+		// There is no $this->data here
+		return md5(serialize($this));
+	}
+
+	/**
+	 * Get the relationship
+	 *
+	 * @return string|null Either 'allow' or 'deny'
+	 */
+	public function get_relationship()
+	{
+		if ($this->relationship !== null)
+		{
+			return $this->relationship;
+		}
+		else
+		{
+			return null;
+		}
+	}
+
+	/**
+	 * Get the type
+	 *
+	 * @return string|null
+	 */
+	public function get_type()
+	{
+		if ($this->type !== null)
+		{
+			return $this->type;
+		}
+		else
+		{
+			return null;
+		}
+	}
+
+	/**
+	 * Get the list of restricted things
+	 *
+	 * @return string|null
+	 */
+	public function get_value()
+	{
+		if ($this->value !== null)
+		{
+			return $this->value;
+		}
+		else
+		{
+			return null;
+		}
+	}
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-includes/SimplePie/Sanitize.php	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,554 @@
+<?php
+/**
+ * SimplePie
+ *
+ * A PHP-Based RSS and Atom Feed Framework.
+ * Takes the hard work out of managing a complete RSS/Atom solution.
+ *
+ * Copyright (c) 2004-2012, Ryan Parman, Geoffrey Sneddon, Ryan McCue, and contributors
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without modification, are
+ * permitted provided that the following conditions are met:
+ *
+ * 	* Redistributions of source code must retain the above copyright notice, this list of
+ * 	  conditions and the following disclaimer.
+ *
+ * 	* Redistributions in binary form must reproduce the above copyright notice, this list
+ * 	  of conditions and the following disclaimer in the documentation and/or other materials
+ * 	  provided with the distribution.
+ *
+ * 	* Neither the name of the SimplePie Team nor the names of its contributors may be used
+ * 	  to endorse or promote products derived from this software without specific prior
+ * 	  written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS
+ * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
+ * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS
+ * AND CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ * @package SimplePie
+ * @version 1.3.1
+ * @copyright 2004-2012 Ryan Parman, Geoffrey Sneddon, Ryan McCue
+ * @author Ryan Parman
+ * @author Geoffrey Sneddon
+ * @author Ryan McCue
+ * @link http://simplepie.org/ SimplePie
+ * @license http://www.opensource.org/licenses/bsd-license.php BSD License
+ */
+
+/**
+ * Used for data cleanup and post-processing
+ *
+ *
+ * This class can be overloaded with {@see SimplePie::set_sanitize_class()}
+ *
+ * @package SimplePie
+ * @todo Move to using an actual HTML parser (this will allow tags to be properly stripped, and to switch between HTML and XHTML), this will also make it easier to shorten a string while preserving HTML tags
+ */
+class SimplePie_Sanitize
+{
+	// Private vars
+	var $base;
+
+	// Options
+	var $remove_div = true;
+	var $image_handler = '';
+	var $strip_htmltags = array('base', 'blink', 'body', 'doctype', 'embed', 'font', 'form', 'frame', 'frameset', 'html', 'iframe', 'input', 'marquee', 'meta', 'noscript', 'object', 'param', 'script', 'style');
+	var $encode_instead_of_strip = false;
+	var $strip_attributes = array('bgsound', 'class', 'expr', 'id', 'style', 'onclick', 'onerror', 'onfinish', 'onmouseover', 'onmouseout', 'onfocus', 'onblur', 'lowsrc', 'dynsrc');
+	var $strip_comments = false;
+	var $output_encoding = 'UTF-8';
+	var $enable_cache = true;
+	var $cache_location = './cache';
+	var $cache_name_function = 'md5';
+	var $timeout = 10;
+	var $useragent = '';
+	var $force_fsockopen = false;
+	var $replace_url_attributes = null;
+
+	public function __construct()
+	{
+		// Set defaults
+		$this->set_url_replacements(null);
+	}
+
+	public function remove_div($enable = true)
+	{
+		$this->remove_div = (bool) $enable;
+	}
+
+	public function set_image_handler($page = false)
+	{
+		if ($page)
+		{
+			$this->image_handler = (string) $page;
+		}
+		else
+		{
+			$this->image_handler = false;
+		}
+	}
+
+	public function set_registry(SimplePie_Registry $registry)
+	{
+		$this->registry = $registry;
+	}
+
+	public function pass_cache_data($enable_cache = true, $cache_location = './cache', $cache_name_function = 'md5', $cache_class = 'SimplePie_Cache')
+	{
+		if (isset($enable_cache))
+		{
+			$this->enable_cache = (bool) $enable_cache;
+		}
+
+		if ($cache_location)
+		{
+			$this->cache_location = (string) $cache_location;
+		}
+
+		if ($cache_name_function)
+		{
+			$this->cache_name_function = (string) $cache_name_function;
+		}
+	}
+
+	public function pass_file_data($file_class = 'SimplePie_File', $timeout = 10, $useragent = '', $force_fsockopen = false)
+	{
+		if ($timeout)
+		{
+			$this->timeout = (string) $timeout;
+		}
+
+		if ($useragent)
+		{
+			$this->useragent = (string) $useragent;
+		}
+
+		if ($force_fsockopen)
+		{
+			$this->force_fsockopen = (string) $force_fsockopen;
+		}
+	}
+
+	public function strip_htmltags($tags = array('base', 'blink', 'body', 'doctype', 'embed', 'font', 'form', 'frame', 'frameset', 'html', 'iframe', 'input', 'marquee', 'meta', 'noscript', 'object', 'param', 'script', 'style'))
+	{
+		if ($tags)
+		{
+			if (is_array($tags))
+			{
+				$this->strip_htmltags = $tags;
+			}
+			else
+			{
+				$this->strip_htmltags = explode(',', $tags);
+			}
+		}
+		else
+		{
+			$this->strip_htmltags = false;
+		}
+	}
+
+	public function encode_instead_of_strip($encode = false)
+	{
+		$this->encode_instead_of_strip = (bool) $encode;
+	}
+
+	public function strip_attributes($attribs = array('bgsound', 'class', 'expr', 'id', 'style', 'onclick', 'onerror', 'onfinish', 'onmouseover', 'onmouseout', 'onfocus', 'onblur', 'lowsrc', 'dynsrc'))
+	{
+		if ($attribs)
+		{
+			if (is_array($attribs))
+			{
+				$this->strip_attributes = $attribs;
+			}
+			else
+			{
+				$this->strip_attributes = explode(',', $attribs);
+			}
+		}
+		else
+		{
+			$this->strip_attributes = false;
+		}
+	}
+
+	public function strip_comments($strip = false)
+	{
+		$this->strip_comments = (bool) $strip;
+	}
+
+	public function set_output_encoding($encoding = 'UTF-8')
+	{
+		$this->output_encoding = (string) $encoding;
+	}
+
+	/**
+	 * Set element/attribute key/value pairs of HTML attributes
+	 * containing URLs that need to be resolved relative to the feed
+	 *
+	 * Defaults to |a|@href, |area|@href, |blockquote|@cite, |del|@cite,
+	 * |form|@action, |img|@longdesc, |img|@src, |input|@src, |ins|@cite,
+	 * |q|@cite
+	 *
+	 * @since 1.0
+	 * @param array|null $element_attribute Element/attribute key/value pairs, null for default
+	 */
+	public function set_url_replacements($element_attribute = null)
+	{
+		if ($element_attribute === null)
+		{
+			$element_attribute = array(
+				'a' => 'href',
+				'area' => 'href',
+				'blockquote' => 'cite',
+				'del' => 'cite',
+				'form' => 'action',
+				'img' => array(
+					'longdesc',
+					'src'
+				),
+				'input' => 'src',
+				'ins' => 'cite',
+				'q' => 'cite'
+			);
+		}
+		$this->replace_url_attributes = (array) $element_attribute;
+	}
+
+	public function sanitize($data, $type, $base = '')
+	{
+		$data = trim($data);
+		if ($data !== '' || $type & SIMPLEPIE_CONSTRUCT_IRI)
+		{
+			if ($type & SIMPLEPIE_CONSTRUCT_MAYBE_HTML)
+			{
+				if (preg_match('/(&(#(x[0-9a-fA-F]+|[0-9]+)|[a-zA-Z0-9]+)|<\/[A-Za-z][^\x09\x0A\x0B\x0C\x0D\x20\x2F\x3E]*' . SIMPLEPIE_PCRE_HTML_ATTRIBUTE . '>)/', $data))
+				{
+					$type |= SIMPLEPIE_CONSTRUCT_HTML;
+				}
+				else
+				{
+					$type |= SIMPLEPIE_CONSTRUCT_TEXT;
+				}
+			}
+
+			if ($type & SIMPLEPIE_CONSTRUCT_BASE64)
+			{
+				$data = base64_decode($data);
+			}
+
+			if ($type & (SIMPLEPIE_CONSTRUCT_HTML | SIMPLEPIE_CONSTRUCT_XHTML))
+			{
+
+				if (!class_exists('DOMDocument'))
+				{
+					$this->registry->call('Misc', 'error', array('DOMDocument not found, unable to use sanitizer', E_USER_WARNING, __FILE__, __LINE__));
+					return '';
+				}
+				$document = new DOMDocument();
+				$document->encoding = 'UTF-8';
+				$data = $this->preprocess($data, $type);
+
+				set_error_handler(array('SimplePie_Misc', 'silence_errors'));
+				$document->loadHTML($data);
+				restore_error_handler();
+
+				// Strip comments
+				if ($this->strip_comments)
+				{
+					$xpath = new DOMXPath($document);
+					$comments = $xpath->query('//comment()');
+
+					foreach ($comments as $comment)
+					{
+						$comment->parentNode->removeChild($comment);
+					}
+				}
+
+				// Strip out HTML tags and attributes that might cause various security problems.
+				// Based on recommendations by Mark Pilgrim at:
+				// http://diveintomark.org/archives/2003/06/12/how_to_consume_rss_safely
+				if ($this->strip_htmltags)
+				{
+					foreach ($this->strip_htmltags as $tag)
+					{
+						$this->strip_tag($tag, $document, $type);
+					}
+				}
+
+				if ($this->strip_attributes)
+				{
+					foreach ($this->strip_attributes as $attrib)
+					{
+						$this->strip_attr($attrib, $document);
+					}
+				}
+
+				// Replace relative URLs
+				$this->base = $base;
+				foreach ($this->replace_url_attributes as $element => $attributes)
+				{
+					$this->replace_urls($document, $element, $attributes);
+				}
+
+				// If image handling (caching, etc.) is enabled, cache and rewrite all the image tags.
+				if (isset($this->image_handler) && ((string) $this->image_handler) !== '' && $this->enable_cache)
+				{
+					$images = $document->getElementsByTagName('img');
+					foreach ($images as $img)
+					{
+						if ($img->hasAttribute('src'))
+						{
+							$image_url = call_user_func($this->cache_name_function, $img->getAttribute('src'));
+							$cache = $this->registry->call('Cache', 'get_handler', array($this->cache_location, $image_url, 'spi'));
+
+							if ($cache->load())
+							{
+								$img->setAttribute('src', $this->image_handler . $image_url);
+							}
+							else
+							{
+								$file = $this->registry->create('File', array($img['attribs']['src']['data'], $this->timeout, 5, array('X-FORWARDED-FOR' => $_SERVER['REMOTE_ADDR']), $this->useragent, $this->force_fsockopen));
+								$headers = $file->headers;
+
+								if ($file->success && ($file->method & SIMPLEPIE_FILE_SOURCE_REMOTE === 0 || ($file->status_code === 200 || $file->status_code > 206 && $file->status_code < 300)))
+								{
+									if ($cache->save(array('headers' => $file->headers, 'body' => $file->body)))
+									{
+										$img->setAttribute('src', $this->image_handler . $image_url);
+									}
+									else
+									{
+										trigger_error("$this->cache_location is not writeable. Make sure you've set the correct relative or absolute path, and that the location is server-writable.", E_USER_WARNING);
+									}
+								}
+							}
+						}
+					}
+				}
+
+				// Remove the DOCTYPE
+				// Seems to cause segfaulting if we don't do this
+				if ($document->firstChild instanceof DOMDocumentType)
+				{
+					$document->removeChild($document->firstChild);
+				}
+
+				// Move everything from the body to the root
+				$real_body = $document->getElementsByTagName('body')->item(0)->childNodes->item(0);
+				$document->replaceChild($real_body, $document->firstChild);
+
+				// Finally, convert to a HTML string
+				$data = trim($document->saveHTML());
+
+				if ($this->remove_div)
+				{
+					$data = preg_replace('/^<div' . SIMPLEPIE_PCRE_XML_ATTRIBUTE . '>/', '', $data);
+					$data = preg_replace('/<\/div>$/', '', $data);
+				}
+				else
+				{
+					$data = preg_replace('/^<div' . SIMPLEPIE_PCRE_XML_ATTRIBUTE . '>/', '<div>', $data);
+				}
+			}
+
+			if ($type & SIMPLEPIE_CONSTRUCT_IRI)
+			{
+				$absolute = $this->registry->call('Misc', 'absolutize_url', array($data, $base));
+				if ($absolute !== false)
+				{
+					$data = $absolute;
+				}
+			}
+
+			if ($type & (SIMPLEPIE_CONSTRUCT_TEXT | SIMPLEPIE_CONSTRUCT_IRI))
+			{
+				$data = htmlspecialchars($data, ENT_COMPAT, 'UTF-8');
+			}
+
+			if ($this->output_encoding !== 'UTF-8')
+			{
+				$data = $this->registry->call('Misc', 'change_encoding', array($data, 'UTF-8', $this->output_encoding));
+			}
+		}
+		return $data;
+	}
+
+	protected function preprocess($html, $type)
+	{
+		$ret = '';
+		if ($type & ~SIMPLEPIE_CONSTRUCT_XHTML)
+		{
+			// Atom XHTML constructs are wrapped with a div by default
+			// Note: No protection if $html contains a stray </div>!
+			$html = '<div>' . $html . '</div>';
+			$ret .= '<!DOCTYPE html>';
+			$content_type = 'text/html';
+		}
+		else
+		{
+			$ret .= '<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">';
+			$content_type = 'application/xhtml+xml';
+		}
+
+		$ret .= '<html><head>';
+		$ret .= '<meta http-equiv="Content-Type" content="' . $content_type . '; charset=utf-8" />';
+		$ret .= '</head><body>' . $html . '</body></html>';
+		return $ret;
+	}
+
+	public function replace_urls($document, $tag, $attributes)
+	{
+		if (!is_array($attributes))
+		{
+			$attributes = array($attributes);
+		}
+
+		if (!is_array($this->strip_htmltags) || !in_array($tag, $this->strip_htmltags))
+		{
+			$elements = $document->getElementsByTagName($tag);
+			foreach ($elements as $element)
+			{
+				foreach ($attributes as $attribute)
+				{
+					if ($element->hasAttribute($attribute))
+					{
+						$value = $this->registry->call('Misc', 'absolutize_url', array($element->getAttribute($attribute), $this->base));
+						if ($value !== false)
+						{
+							$element->setAttribute($attribute, $value);
+						}
+					}
+				}
+			}
+		}
+	}
+
+	public function do_strip_htmltags($match)
+	{
+		if ($this->encode_instead_of_strip)
+		{
+			if (isset($match[4]) && !in_array(strtolower($match[1]), array('script', 'style')))
+			{
+				$match[1] = htmlspecialchars($match[1], ENT_COMPAT, 'UTF-8');
+				$match[2] = htmlspecialchars($match[2], ENT_COMPAT, 'UTF-8');
+				return "&lt;$match[1]$match[2]&gt;$match[3]&lt;/$match[1]&gt;";
+			}
+			else
+			{
+				return htmlspecialchars($match[0], ENT_COMPAT, 'UTF-8');
+			}
+		}
+		elseif (isset($match[4]) && !in_array(strtolower($match[1]), array('script', 'style')))
+		{
+			return $match[4];
+		}
+		else
+		{
+			return '';
+		}
+	}
+
+	protected function strip_tag($tag, $document, $type)
+	{
+		$xpath = new DOMXPath($document);
+		$elements = $xpath->query('body//' . $tag);
+		if ($this->encode_instead_of_strip)
+		{
+			foreach ($elements as $element)
+			{
+				$fragment = $document->createDocumentFragment();
+
+				// For elements which aren't script or style, include the tag itself
+				if (!in_array($tag, array('script', 'style')))
+				{
+					$text = '<' . $tag;
+					if ($element->hasAttributes())
+					{
+						$attrs = array();
+						foreach ($element->attributes as $name => $attr)
+						{
+							$value = $attr->value;
+
+							// In XHTML, empty values should never exist, so we repeat the value
+							if (empty($value) && ($type & SIMPLEPIE_CONSTRUCT_XHTML))
+							{
+								$value = $name;
+							}
+							// For HTML, empty is fine
+							elseif (empty($value) && ($type & SIMPLEPIE_CONSTRUCT_HTML))
+							{
+								$attrs[] = $name;
+								continue;
+							}
+
+							// Standard attribute text
+							$attrs[] = $name . '="' . $attr->value . '"';
+						}
+						$text .= ' ' . implode(' ', $attrs);
+					}
+					$text .= '>';
+					$fragment->appendChild(new DOMText($text));
+				}
+
+				$number = $element->childNodes->length;
+				for ($i = $number; $i > 0; $i--)
+				{
+					$child = $element->childNodes->item(0);
+					$fragment->appendChild($child);
+				}
+
+				if (!in_array($tag, array('script', 'style')))
+				{
+					$fragment->appendChild(new DOMText('</' . $tag . '>'));
+				}
+
+				$element->parentNode->replaceChild($fragment, $element);
+			}
+
+			return;
+		}
+		elseif (in_array($tag, array('script', 'style')))
+		{
+			foreach ($elements as $element)
+			{
+				$element->parentNode->removeChild($element);
+			}
+
+			return;
+		}
+		else
+		{
+			foreach ($elements as $element)
+			{
+				$fragment = $document->createDocumentFragment();
+				$number = $element->childNodes->length;
+				for ($i = $number; $i > 0; $i--)
+				{
+					$child = $element->childNodes->item(0);
+					$fragment->appendChild($child);
+				}
+
+				$element->parentNode->replaceChild($fragment, $element);
+			}
+		}
+	}
+
+	protected function strip_attr($attrib, $document)
+	{
+		$xpath = new DOMXPath($document);
+		$elements = $xpath->query('//*[@' . $attrib . ']');
+
+		foreach ($elements as $element)
+		{
+			$element->removeAttribute($attrib);
+		}
+	}
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-includes/SimplePie/Source.php	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,611 @@
+<?php
+/**
+ * SimplePie
+ *
+ * A PHP-Based RSS and Atom Feed Framework.
+ * Takes the hard work out of managing a complete RSS/Atom solution.
+ *
+ * Copyright (c) 2004-2012, Ryan Parman, Geoffrey Sneddon, Ryan McCue, and contributors
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without modification, are
+ * permitted provided that the following conditions are met:
+ *
+ * 	* Redistributions of source code must retain the above copyright notice, this list of
+ * 	  conditions and the following disclaimer.
+ *
+ * 	* Redistributions in binary form must reproduce the above copyright notice, this list
+ * 	  of conditions and the following disclaimer in the documentation and/or other materials
+ * 	  provided with the distribution.
+ *
+ * 	* Neither the name of the SimplePie Team nor the names of its contributors may be used
+ * 	  to endorse or promote products derived from this software without specific prior
+ * 	  written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS
+ * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
+ * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS
+ * AND CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ * @package SimplePie
+ * @version 1.3.1
+ * @copyright 2004-2012 Ryan Parman, Geoffrey Sneddon, Ryan McCue
+ * @author Ryan Parman
+ * @author Geoffrey Sneddon
+ * @author Ryan McCue
+ * @link http://simplepie.org/ SimplePie
+ * @license http://www.opensource.org/licenses/bsd-license.php BSD License
+ */
+
+/**
+ * Handles `<atom:source>`
+ *
+ * Used by {@see SimplePie_Item::get_source()}
+ *
+ * This class can be overloaded with {@see SimplePie::set_source_class()}
+ *
+ * @package SimplePie
+ * @subpackage API
+ */
+class SimplePie_Source
+{
+	var $item;
+	var $data = array();
+	protected $registry;
+
+	public function __construct($item, $data)
+	{
+		$this->item = $item;
+		$this->data = $data;
+	}
+
+	public function set_registry(SimplePie_Registry $registry)
+	{
+		$this->registry = $registry;
+	}
+
+	public function __toString()
+	{
+		return md5(serialize($this->data));
+	}
+
+	public function get_source_tags($namespace, $tag)
+	{
+		if (isset($this->data['child'][$namespace][$tag]))
+		{
+			return $this->data['child'][$namespace][$tag];
+		}
+		else
+		{
+			return null;
+		}
+	}
+
+	public function get_base($element = array())
+	{
+		return $this->item->get_base($element);
+	}
+
+	public function sanitize($data, $type, $base = '')
+	{
+		return $this->item->sanitize($data, $type, $base);
+	}
+
+	public function get_item()
+	{
+		return $this->item;
+	}
+
+	public function get_title()
+	{
+		if ($return = $this->get_source_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'title'))
+		{
+			return $this->sanitize($return[0]['data'], $this->registry->call('Misc', 'atom_10_construct_type', array($return[0]['attribs'])), $this->get_base($return[0]));
+		}
+		elseif ($return = $this->get_source_tags(SIMPLEPIE_NAMESPACE_ATOM_03, 'title'))
+		{
+			return $this->sanitize($return[0]['data'], $this->registry->call('Misc', 'atom_03_construct_type', array($return[0]['attribs'])), $this->get_base($return[0]));
+		}
+		elseif ($return = $this->get_source_tags(SIMPLEPIE_NAMESPACE_RSS_10, 'title'))
+		{
+			return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_MAYBE_HTML, $this->get_base($return[0]));
+		}
+		elseif ($return = $this->get_source_tags(SIMPLEPIE_NAMESPACE_RSS_090, 'title'))
+		{
+			return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_MAYBE_HTML, $this->get_base($return[0]));
+		}
+		elseif ($return = $this->get_source_tags(SIMPLEPIE_NAMESPACE_RSS_20, 'title'))
+		{
+			return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_MAYBE_HTML, $this->get_base($return[0]));
+		}
+		elseif ($return = $this->get_source_tags(SIMPLEPIE_NAMESPACE_DC_11, 'title'))
+		{
+			return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
+		}
+		elseif ($return = $this->get_source_tags(SIMPLEPIE_NAMESPACE_DC_10, 'title'))
+		{
+			return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
+		}
+		else
+		{
+			return null;
+		}
+	}
+
+	public function get_category($key = 0)
+	{
+		$categories = $this->get_categories();
+		if (isset($categories[$key]))
+		{
+			return $categories[$key];
+		}
+		else
+		{
+			return null;
+		}
+	}
+
+	public function get_categories()
+	{
+		$categories = array();
+
+		foreach ((array) $this->get_source_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'category') as $category)
+		{
+			$term = null;
+			$scheme = null;
+			$label = null;
+			if (isset($category['attribs']['']['term']))
+			{
+				$term = $this->sanitize($category['attribs']['']['term'], SIMPLEPIE_CONSTRUCT_TEXT);
+			}
+			if (isset($category['attribs']['']['scheme']))
+			{
+				$scheme = $this->sanitize($category['attribs']['']['scheme'], SIMPLEPIE_CONSTRUCT_TEXT);
+			}
+			if (isset($category['attribs']['']['label']))
+			{
+				$label = $this->sanitize($category['attribs']['']['label'], SIMPLEPIE_CONSTRUCT_TEXT);
+			}
+			$categories[] = $this->registry->create('Category', array($term, $scheme, $label));
+		}
+		foreach ((array) $this->get_source_tags(SIMPLEPIE_NAMESPACE_RSS_20, 'category') as $category)
+		{
+			// This is really the label, but keep this as the term also for BC.
+			// Label will also work on retrieving because that falls back to term.
+			$term = $this->sanitize($category['data'], SIMPLEPIE_CONSTRUCT_TEXT);
+			if (isset($category['attribs']['']['domain']))
+			{
+				$scheme = $this->sanitize($category['attribs']['']['domain'], SIMPLEPIE_CONSTRUCT_TEXT);
+			}
+			else
+			{
+				$scheme = null;
+			}
+			$categories[] = $this->registry->create('Category', array($term, $scheme, null));
+		}
+		foreach ((array) $this->get_source_tags(SIMPLEPIE_NAMESPACE_DC_11, 'subject') as $category)
+		{
+			$categories[] = $this->registry->create('Category', array($this->sanitize($category['data'], SIMPLEPIE_CONSTRUCT_TEXT), null, null));
+		}
+		foreach ((array) $this->get_source_tags(SIMPLEPIE_NAMESPACE_DC_10, 'subject') as $category)
+		{
+			$categories[] = $this->registry->create('Category', array($this->sanitize($category['data'], SIMPLEPIE_CONSTRUCT_TEXT), null, null));
+		}
+
+		if (!empty($categories))
+		{
+			return array_unique($categories);
+		}
+		else
+		{
+			return null;
+		}
+	}
+
+	public function get_author($key = 0)
+	{
+		$authors = $this->get_authors();
+		if (isset($authors[$key]))
+		{
+			return $authors[$key];
+		}
+		else
+		{
+			return null;
+		}
+	}
+
+	public function get_authors()
+	{
+		$authors = array();
+		foreach ((array) $this->get_source_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'author') as $author)
+		{
+			$name = null;
+			$uri = null;
+			$email = null;
+			if (isset($author['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['name'][0]['data']))
+			{
+				$name = $this->sanitize($author['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['name'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
+			}
+			if (isset($author['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['uri'][0]['data']))
+			{
+				$uri = $this->sanitize($author['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['uri'][0]['data'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($author['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['uri'][0]));
+			}
+			if (isset($author['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['email'][0]['data']))
+			{
+				$email = $this->sanitize($author['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['email'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
+			}
+			if ($name !== null || $email !== null || $uri !== null)
+			{
+				$authors[] = $this->registry->create('Author', array($name, $uri, $email));
+			}
+		}
+		if ($author = $this->get_source_tags(SIMPLEPIE_NAMESPACE_ATOM_03, 'author'))
+		{
+			$name = null;
+			$url = null;
+			$email = null;
+			if (isset($author[0]['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['name'][0]['data']))
+			{
+				$name = $this->sanitize($author[0]['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['name'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
+			}
+			if (isset($author[0]['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['url'][0]['data']))
+			{
+				$url = $this->sanitize($author[0]['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['url'][0]['data'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($author[0]['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['url'][0]));
+			}
+			if (isset($author[0]['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['email'][0]['data']))
+			{
+				$email = $this->sanitize($author[0]['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['email'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
+			}
+			if ($name !== null || $email !== null || $url !== null)
+			{
+				$authors[] = $this->registry->create('Author', array($name, $url, $email));
+			}
+		}
+		foreach ((array) $this->get_source_tags(SIMPLEPIE_NAMESPACE_DC_11, 'creator') as $author)
+		{
+			$authors[] = $this->registry->create('Author', array($this->sanitize($author['data'], SIMPLEPIE_CONSTRUCT_TEXT), null, null));
+		}
+		foreach ((array) $this->get_source_tags(SIMPLEPIE_NAMESPACE_DC_10, 'creator') as $author)
+		{
+			$authors[] = $this->registry->create('Author', array($this->sanitize($author['data'], SIMPLEPIE_CONSTRUCT_TEXT), null, null));
+		}
+		foreach ((array) $this->get_source_tags(SIMPLEPIE_NAMESPACE_ITUNES, 'author') as $author)
+		{
+			$authors[] = $this->registry->create('Author', array($this->sanitize($author['data'], SIMPLEPIE_CONSTRUCT_TEXT), null, null));
+		}
+
+		if (!empty($authors))
+		{
+			return array_unique($authors);
+		}
+		else
+		{
+			return null;
+		}
+	}
+
+	public function get_contributor($key = 0)
+	{
+		$contributors = $this->get_contributors();
+		if (isset($contributors[$key]))
+		{
+			return $contributors[$key];
+		}
+		else
+		{
+			return null;
+		}
+	}
+
+	public function get_contributors()
+	{
+		$contributors = array();
+		foreach ((array) $this->get_source_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'contributor') as $contributor)
+		{
+			$name = null;
+			$uri = null;
+			$email = null;
+			if (isset($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['name'][0]['data']))
+			{
+				$name = $this->sanitize($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['name'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
+			}
+			if (isset($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['uri'][0]['data']))
+			{
+				$uri = $this->sanitize($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['uri'][0]['data'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['uri'][0]));
+			}
+			if (isset($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['email'][0]['data']))
+			{
+				$email = $this->sanitize($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['email'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
+			}
+			if ($name !== null || $email !== null || $uri !== null)
+			{
+				$contributors[] = $this->registry->create('Author', array($name, $uri, $email));
+			}
+		}
+		foreach ((array) $this->get_source_tags(SIMPLEPIE_NAMESPACE_ATOM_03, 'contributor') as $contributor)
+		{
+			$name = null;
+			$url = null;
+			$email = null;
+			if (isset($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['name'][0]['data']))
+			{
+				$name = $this->sanitize($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['name'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
+			}
+			if (isset($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['url'][0]['data']))
+			{
+				$url = $this->sanitize($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['url'][0]['data'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['url'][0]));
+			}
+			if (isset($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['email'][0]['data']))
+			{
+				$email = $this->sanitize($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['email'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
+			}
+			if ($name !== null || $email !== null || $url !== null)
+			{
+				$contributors[] = $this->registry->create('Author', array($name, $url, $email));
+			}
+		}
+
+		if (!empty($contributors))
+		{
+			return array_unique($contributors);
+		}
+		else
+		{
+			return null;
+		}
+	}
+
+	public function get_link($key = 0, $rel = 'alternate')
+	{
+		$links = $this->get_links($rel);
+		if (isset($links[$key]))
+		{
+			return $links[$key];
+		}
+		else
+		{
+			return null;
+		}
+	}
+
+	/**
+	 * Added for parity between the parent-level and the item/entry-level.
+	 */
+	public function get_permalink()
+	{
+		return $this->get_link(0);
+	}
+
+	public function get_links($rel = 'alternate')
+	{
+		if (!isset($this->data['links']))
+		{
+			$this->data['links'] = array();
+			if ($links = $this->get_source_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'link'))
+			{
+				foreach ($links as $link)
+				{
+					if (isset($link['attribs']['']['href']))
+					{
+						$link_rel = (isset($link['attribs']['']['rel'])) ? $link['attribs']['']['rel'] : 'alternate';
+						$this->data['links'][$link_rel][] = $this->sanitize($link['attribs']['']['href'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($link));
+					}
+				}
+			}
+			if ($links = $this->get_source_tags(SIMPLEPIE_NAMESPACE_ATOM_03, 'link'))
+			{
+				foreach ($links as $link)
+				{
+					if (isset($link['attribs']['']['href']))
+					{
+						$link_rel = (isset($link['attribs']['']['rel'])) ? $link['attribs']['']['rel'] : 'alternate';
+						$this->data['links'][$link_rel][] = $this->sanitize($link['attribs']['']['href'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($link));
+
+					}
+				}
+			}
+			if ($links = $this->get_source_tags(SIMPLEPIE_NAMESPACE_RSS_10, 'link'))
+			{
+				$this->data['links']['alternate'][] = $this->sanitize($links[0]['data'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($links[0]));
+			}
+			if ($links = $this->get_source_tags(SIMPLEPIE_NAMESPACE_RSS_090, 'link'))
+			{
+				$this->data['links']['alternate'][] = $this->sanitize($links[0]['data'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($links[0]));
+			}
+			if ($links = $this->get_source_tags(SIMPLEPIE_NAMESPACE_RSS_20, 'link'))
+			{
+				$this->data['links']['alternate'][] = $this->sanitize($links[0]['data'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($links[0]));
+			}
+
+			$keys = array_keys($this->data['links']);
+			foreach ($keys as $key)
+			{
+				if ($this->registry->call('Misc', 'is_isegment_nz_nc', array($key)))
+				{
+					if (isset($this->data['links'][SIMPLEPIE_IANA_LINK_RELATIONS_REGISTRY . $key]))
+					{
+						$this->data['links'][SIMPLEPIE_IANA_LINK_RELATIONS_REGISTRY . $key] = array_merge($this->data['links'][$key], $this->data['links'][SIMPLEPIE_IANA_LINK_RELATIONS_REGISTRY . $key]);
+						$this->data['links'][$key] =& $this->data['links'][SIMPLEPIE_IANA_LINK_RELATIONS_REGISTRY . $key];
+					}
+					else
+					{
+						$this->data['links'][SIMPLEPIE_IANA_LINK_RELATIONS_REGISTRY . $key] =& $this->data['links'][$key];
+					}
+				}
+				elseif (substr($key, 0, 41) === SIMPLEPIE_IANA_LINK_RELATIONS_REGISTRY)
+				{
+					$this->data['links'][substr($key, 41)] =& $this->data['links'][$key];
+				}
+				$this->data['links'][$key] = array_unique($this->data['links'][$key]);
+			}
+		}
+
+		if (isset($this->data['links'][$rel]))
+		{
+			return $this->data['links'][$rel];
+		}
+		else
+		{
+			return null;
+		}
+	}
+
+	public function get_description()
+	{
+		if ($return = $this->get_source_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'subtitle'))
+		{
+			return $this->sanitize($return[0]['data'], $this->registry->call('Misc', 'atom_10_construct_type', array($return[0]['attribs'])), $this->get_base($return[0]));
+		}
+		elseif ($return = $this->get_source_tags(SIMPLEPIE_NAMESPACE_ATOM_03, 'tagline'))
+		{
+			return $this->sanitize($return[0]['data'], $this->registry->call('Misc', 'atom_03_construct_type', array($return[0]['attribs'])), $this->get_base($return[0]));
+		}
+		elseif ($return = $this->get_source_tags(SIMPLEPIE_NAMESPACE_RSS_10, 'description'))
+		{
+			return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_MAYBE_HTML, $this->get_base($return[0]));
+		}
+		elseif ($return = $this->get_source_tags(SIMPLEPIE_NAMESPACE_RSS_090, 'description'))
+		{
+			return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_MAYBE_HTML, $this->get_base($return[0]));
+		}
+		elseif ($return = $this->get_source_tags(SIMPLEPIE_NAMESPACE_RSS_20, 'description'))
+		{
+			return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_MAYBE_HTML, $this->get_base($return[0]));
+		}
+		elseif ($return = $this->get_source_tags(SIMPLEPIE_NAMESPACE_DC_11, 'description'))
+		{
+			return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
+		}
+		elseif ($return = $this->get_source_tags(SIMPLEPIE_NAMESPACE_DC_10, 'description'))
+		{
+			return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
+		}
+		elseif ($return = $this->get_source_tags(SIMPLEPIE_NAMESPACE_ITUNES, 'summary'))
+		{
+			return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_HTML, $this->get_base($return[0]));
+		}
+		elseif ($return = $this->get_source_tags(SIMPLEPIE_NAMESPACE_ITUNES, 'subtitle'))
+		{
+			return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_HTML, $this->get_base($return[0]));
+		}
+		else
+		{
+			return null;
+		}
+	}
+
+	public function get_copyright()
+	{
+		if ($return = $this->get_source_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'rights'))
+		{
+			return $this->sanitize($return[0]['data'], $this->registry->call('Misc', 'atom_10_construct_type', array($return[0]['attribs'])), $this->get_base($return[0]));
+		}
+		elseif ($return = $this->get_source_tags(SIMPLEPIE_NAMESPACE_ATOM_03, 'copyright'))
+		{
+			return $this->sanitize($return[0]['data'], $this->registry->call('Misc', 'atom_03_construct_type', array($return[0]['attribs'])), $this->get_base($return[0]));
+		}
+		elseif ($return = $this->get_source_tags(SIMPLEPIE_NAMESPACE_RSS_20, 'copyright'))
+		{
+			return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
+		}
+		elseif ($return = $this->get_source_tags(SIMPLEPIE_NAMESPACE_DC_11, 'rights'))
+		{
+			return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
+		}
+		elseif ($return = $this->get_source_tags(SIMPLEPIE_NAMESPACE_DC_10, 'rights'))
+		{
+			return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
+		}
+		else
+		{
+			return null;
+		}
+	}
+
+	public function get_language()
+	{
+		if ($return = $this->get_source_tags(SIMPLEPIE_NAMESPACE_RSS_20, 'language'))
+		{
+			return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
+		}
+		elseif ($return = $this->get_source_tags(SIMPLEPIE_NAMESPACE_DC_11, 'language'))
+		{
+			return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
+		}
+		elseif ($return = $this->get_source_tags(SIMPLEPIE_NAMESPACE_DC_10, 'language'))
+		{
+			return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
+		}
+		elseif (isset($this->data['xml_lang']))
+		{
+			return $this->sanitize($this->data['xml_lang'], SIMPLEPIE_CONSTRUCT_TEXT);
+		}
+		else
+		{
+			return null;
+		}
+	}
+
+	public function get_latitude()
+	{
+		if ($return = $this->get_source_tags(SIMPLEPIE_NAMESPACE_W3C_BASIC_GEO, 'lat'))
+		{
+			return (float) $return[0]['data'];
+		}
+		elseif (($return = $this->get_source_tags(SIMPLEPIE_NAMESPACE_GEORSS, 'point')) && preg_match('/^((?:-)?[0-9]+(?:\.[0-9]+)) ((?:-)?[0-9]+(?:\.[0-9]+))$/', trim($return[0]['data']), $match))
+		{
+			return (float) $match[1];
+		}
+		else
+		{
+			return null;
+		}
+	}
+
+	public function get_longitude()
+	{
+		if ($return = $this->get_source_tags(SIMPLEPIE_NAMESPACE_W3C_BASIC_GEO, 'long'))
+		{
+			return (float) $return[0]['data'];
+		}
+		elseif ($return = $this->get_source_tags(SIMPLEPIE_NAMESPACE_W3C_BASIC_GEO, 'lon'))
+		{
+			return (float) $return[0]['data'];
+		}
+		elseif (($return = $this->get_source_tags(SIMPLEPIE_NAMESPACE_GEORSS, 'point')) && preg_match('/^((?:-)?[0-9]+(?:\.[0-9]+)) ((?:-)?[0-9]+(?:\.[0-9]+))$/', trim($return[0]['data']), $match))
+		{
+			return (float) $match[2];
+		}
+		else
+		{
+			return null;
+		}
+	}
+
+	public function get_image_url()
+	{
+		if ($return = $this->get_source_tags(SIMPLEPIE_NAMESPACE_ITUNES, 'image'))
+		{
+			return $this->sanitize($return[0]['attribs']['']['href'], SIMPLEPIE_CONSTRUCT_IRI);
+		}
+		elseif ($return = $this->get_source_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'logo'))
+		{
+			return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($return[0]));
+		}
+		elseif ($return = $this->get_source_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'icon'))
+		{
+			return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($return[0]));
+		}
+		else
+		{
+			return null;
+		}
+	}
+}
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-includes/SimplePie/XML/Declaration/Parser.php	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,362 @@
+<?php
+/**
+ * SimplePie
+ *
+ * A PHP-Based RSS and Atom Feed Framework.
+ * Takes the hard work out of managing a complete RSS/Atom solution.
+ *
+ * Copyright (c) 2004-2012, Ryan Parman, Geoffrey Sneddon, Ryan McCue, and contributors
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without modification, are
+ * permitted provided that the following conditions are met:
+ *
+ * 	* Redistributions of source code must retain the above copyright notice, this list of
+ * 	  conditions and the following disclaimer.
+ *
+ * 	* Redistributions in binary form must reproduce the above copyright notice, this list
+ * 	  of conditions and the following disclaimer in the documentation and/or other materials
+ * 	  provided with the distribution.
+ *
+ * 	* Neither the name of the SimplePie Team nor the names of its contributors may be used
+ * 	  to endorse or promote products derived from this software without specific prior
+ * 	  written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS
+ * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
+ * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS
+ * AND CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ * @package SimplePie
+ * @version 1.3.1
+ * @copyright 2004-2012 Ryan Parman, Geoffrey Sneddon, Ryan McCue
+ * @author Ryan Parman
+ * @author Geoffrey Sneddon
+ * @author Ryan McCue
+ * @link http://simplepie.org/ SimplePie
+ * @license http://www.opensource.org/licenses/bsd-license.php BSD License
+ */
+
+
+/**
+ * Parses the XML Declaration
+ *
+ * @package SimplePie
+ * @subpackage Parsing
+ */
+class SimplePie_XML_Declaration_Parser
+{
+	/**
+	 * XML Version
+	 *
+	 * @access public
+	 * @var string
+	 */
+	var $version = '1.0';
+
+	/**
+	 * Encoding
+	 *
+	 * @access public
+	 * @var string
+	 */
+	var $encoding = 'UTF-8';
+
+	/**
+	 * Standalone
+	 *
+	 * @access public
+	 * @var bool
+	 */
+	var $standalone = false;
+
+	/**
+	 * Current state of the state machine
+	 *
+	 * @access private
+	 * @var string
+	 */
+	var $state = 'before_version_name';
+
+	/**
+	 * Input data
+	 *
+	 * @access private
+	 * @var string
+	 */
+	var $data = '';
+
+	/**
+	 * Input data length (to avoid calling strlen() everytime this is needed)
+	 *
+	 * @access private
+	 * @var int
+	 */
+	var $data_length = 0;
+
+	/**
+	 * Current position of the pointer
+	 *
+	 * @var int
+	 * @access private
+	 */
+	var $position = 0;
+
+	/**
+	 * Create an instance of the class with the input data
+	 *
+	 * @access public
+	 * @param string $data Input data
+	 */
+	public function __construct($data)
+	{
+		$this->data = $data;
+		$this->data_length = strlen($this->data);
+	}
+
+	/**
+	 * Parse the input data
+	 *
+	 * @access public
+	 * @return bool true on success, false on failure
+	 */
+	public function parse()
+	{
+		while ($this->state && $this->state !== 'emit' && $this->has_data())
+		{
+			$state = $this->state;
+			$this->$state();
+		}
+		$this->data = '';
+		if ($this->state === 'emit')
+		{
+			return true;
+		}
+		else
+		{
+			$this->version = '';
+			$this->encoding = '';
+			$this->standalone = '';
+			return false;
+		}
+	}
+
+	/**
+	 * Check whether there is data beyond the pointer
+	 *
+	 * @access private
+	 * @return bool true if there is further data, false if not
+	 */
+	public function has_data()
+	{
+		return (bool) ($this->position < $this->data_length);
+	}
+
+	/**
+	 * Advance past any whitespace
+	 *
+	 * @return int Number of whitespace characters passed
+	 */
+	public function skip_whitespace()
+	{
+		$whitespace = strspn($this->data, "\x09\x0A\x0D\x20", $this->position);
+		$this->position += $whitespace;
+		return $whitespace;
+	}
+
+	/**
+	 * Read value
+	 */
+	public function get_value()
+	{
+		$quote = substr($this->data, $this->position, 1);
+		if ($quote === '"' || $quote === "'")
+		{
+			$this->position++;
+			$len = strcspn($this->data, $quote, $this->position);
+			if ($this->has_data())
+			{
+				$value = substr($this->data, $this->position, $len);
+				$this->position += $len + 1;
+				return $value;
+			}
+		}
+		return false;
+	}
+
+	public function before_version_name()
+	{
+		if ($this->skip_whitespace())
+		{
+			$this->state = 'version_name';
+		}
+		else
+		{
+			$this->state = false;
+		}
+	}
+
+	public function version_name()
+	{
+		if (substr($this->data, $this->position, 7) === 'version')
+		{
+			$this->position += 7;
+			$this->skip_whitespace();
+			$this->state = 'version_equals';
+		}
+		else
+		{
+			$this->state = false;
+		}
+	}
+
+	public function version_equals()
+	{
+		if (substr($this->data, $this->position, 1) === '=')
+		{
+			$this->position++;
+			$this->skip_whitespace();
+			$this->state = 'version_value';
+		}
+		else
+		{
+			$this->state = false;
+		}
+	}
+
+	public function version_value()
+	{
+		if ($this->version = $this->get_value())
+		{
+			$this->skip_whitespace();
+			if ($this->has_data())
+			{
+				$this->state = 'encoding_name';
+			}
+			else
+			{
+				$this->state = 'emit';
+			}
+		}
+		else
+		{
+			$this->state = false;
+		}
+	}
+
+	public function encoding_name()
+	{
+		if (substr($this->data, $this->position, 8) === 'encoding')
+		{
+			$this->position += 8;
+			$this->skip_whitespace();
+			$this->state = 'encoding_equals';
+		}
+		else
+		{
+			$this->state = 'standalone_name';
+		}
+	}
+
+	public function encoding_equals()
+	{
+		if (substr($this->data, $this->position, 1) === '=')
+		{
+			$this->position++;
+			$this->skip_whitespace();
+			$this->state = 'encoding_value';
+		}
+		else
+		{
+			$this->state = false;
+		}
+	}
+
+	public function encoding_value()
+	{
+		if ($this->encoding = $this->get_value())
+		{
+			$this->skip_whitespace();
+			if ($this->has_data())
+			{
+				$this->state = 'standalone_name';
+			}
+			else
+			{
+				$this->state = 'emit';
+			}
+		}
+		else
+		{
+			$this->state = false;
+		}
+	}
+
+	public function standalone_name()
+	{
+		if (substr($this->data, $this->position, 10) === 'standalone')
+		{
+			$this->position += 10;
+			$this->skip_whitespace();
+			$this->state = 'standalone_equals';
+		}
+		else
+		{
+			$this->state = false;
+		}
+	}
+
+	public function standalone_equals()
+	{
+		if (substr($this->data, $this->position, 1) === '=')
+		{
+			$this->position++;
+			$this->skip_whitespace();
+			$this->state = 'standalone_value';
+		}
+		else
+		{
+			$this->state = false;
+		}
+	}
+
+	public function standalone_value()
+	{
+		if ($standalone = $this->get_value())
+		{
+			switch ($standalone)
+			{
+				case 'yes':
+					$this->standalone = true;
+					break;
+
+				case 'no':
+					$this->standalone = false;
+					break;
+
+				default:
+					$this->state = false;
+					return;
+			}
+
+			$this->skip_whitespace();
+			if ($this->has_data())
+			{
+				$this->state = false;
+			}
+			else
+			{
+				$this->state = 'emit';
+			}
+		}
+		else
+		{
+			$this->state = false;
+		}
+	}
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-includes/SimplePie/gzdecode.php	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,371 @@
+<?php
+/**
+ * SimplePie
+ *
+ * A PHP-Based RSS and Atom Feed Framework.
+ * Takes the hard work out of managing a complete RSS/Atom solution.
+ *
+ * Copyright (c) 2004-2012, Ryan Parman, Geoffrey Sneddon, Ryan McCue, and contributors
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without modification, are
+ * permitted provided that the following conditions are met:
+ *
+ * 	* Redistributions of source code must retain the above copyright notice, this list of
+ * 	  conditions and the following disclaimer.
+ *
+ * 	* Redistributions in binary form must reproduce the above copyright notice, this list
+ * 	  of conditions and the following disclaimer in the documentation and/or other materials
+ * 	  provided with the distribution.
+ *
+ * 	* Neither the name of the SimplePie Team nor the names of its contributors may be used
+ * 	  to endorse or promote products derived from this software without specific prior
+ * 	  written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS
+ * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
+ * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDERS
+ * AND CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
+ * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
+ * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ * @package SimplePie
+ * @version 1.3.1
+ * @copyright 2004-2012 Ryan Parman, Geoffrey Sneddon, Ryan McCue
+ * @author Ryan Parman
+ * @author Geoffrey Sneddon
+ * @author Ryan McCue
+ * @link http://simplepie.org/ SimplePie
+ * @license http://www.opensource.org/licenses/bsd-license.php BSD License
+ */
+
+
+/**
+ * Decode 'gzip' encoded HTTP data
+ *
+ * @package SimplePie
+ * @subpackage HTTP
+ * @link http://www.gzip.org/format.txt
+ */
+class SimplePie_gzdecode
+{
+	/**
+	 * Compressed data
+	 *
+	 * @access private
+	 * @var string
+	 * @see gzdecode::$data
+	 */
+	var $compressed_data;
+
+	/**
+	 * Size of compressed data
+	 *
+	 * @access private
+	 * @var int
+	 */
+	var $compressed_size;
+
+	/**
+	 * Minimum size of a valid gzip string
+	 *
+	 * @access private
+	 * @var int
+	 */
+	var $min_compressed_size = 18;
+
+	/**
+	 * Current position of pointer
+	 *
+	 * @access private
+	 * @var int
+	 */
+	var $position = 0;
+
+	/**
+	 * Flags (FLG)
+	 *
+	 * @access private
+	 * @var int
+	 */
+	var $flags;
+
+	/**
+	 * Uncompressed data
+	 *
+	 * @access public
+	 * @see gzdecode::$compressed_data
+	 * @var string
+	 */
+	var $data;
+
+	/**
+	 * Modified time
+	 *
+	 * @access public
+	 * @var int
+	 */
+	var $MTIME;
+
+	/**
+	 * Extra Flags
+	 *
+	 * @access public
+	 * @var int
+	 */
+	var $XFL;
+
+	/**
+	 * Operating System
+	 *
+	 * @access public
+	 * @var int
+	 */
+	var $OS;
+
+	/**
+	 * Subfield ID 1
+	 *
+	 * @access public
+	 * @see gzdecode::$extra_field
+	 * @see gzdecode::$SI2
+	 * @var string
+	 */
+	var $SI1;
+
+	/**
+	 * Subfield ID 2
+	 *
+	 * @access public
+	 * @see gzdecode::$extra_field
+	 * @see gzdecode::$SI1
+	 * @var string
+	 */
+	var $SI2;
+
+	/**
+	 * Extra field content
+	 *
+	 * @access public
+	 * @see gzdecode::$SI1
+	 * @see gzdecode::$SI2
+	 * @var string
+	 */
+	var $extra_field;
+
+	/**
+	 * Original filename
+	 *
+	 * @access public
+	 * @var string
+	 */
+	var $filename;
+
+	/**
+	 * Human readable comment
+	 *
+	 * @access public
+	 * @var string
+	 */
+	var $comment;
+
+	/**
+	 * Don't allow anything to be set
+	 *
+	 * @param string $name
+	 * @param mixed $value
+	 */
+	public function __set($name, $value)
+	{
+		trigger_error("Cannot write property $name", E_USER_ERROR);
+	}
+
+	/**
+	 * Set the compressed string and related properties
+	 *
+	 * @param string $data
+	 */
+	public function __construct($data)
+	{
+		$this->compressed_data = $data;
+		$this->compressed_size = strlen($data);
+	}
+
+	/**
+	 * Decode the GZIP stream
+	 *
+	 * @return bool Successfulness
+	 */
+	public function parse()
+	{
+		if ($this->compressed_size >= $this->min_compressed_size)
+		{
+			// Check ID1, ID2, and CM
+			if (substr($this->compressed_data, 0, 3) !== "\x1F\x8B\x08")
+			{
+				return false;
+			}
+
+			// Get the FLG (FLaGs)
+			$this->flags = ord($this->compressed_data[3]);
+
+			// FLG bits above (1 << 4) are reserved
+			if ($this->flags > 0x1F)
+			{
+				return false;
+			}
+
+			// Advance the pointer after the above
+			$this->position += 4;
+
+			// MTIME
+			$mtime = substr($this->compressed_data, $this->position, 4);
+			// Reverse the string if we're on a big-endian arch because l is the only signed long and is machine endianness
+			if (current(unpack('S', "\x00\x01")) === 1)
+			{
+				$mtime = strrev($mtime);
+			}
+			$this->MTIME = current(unpack('l', $mtime));
+			$this->position += 4;
+
+			// Get the XFL (eXtra FLags)
+			$this->XFL = ord($this->compressed_data[$this->position++]);
+
+			// Get the OS (Operating System)
+			$this->OS = ord($this->compressed_data[$this->position++]);
+
+			// Parse the FEXTRA
+			if ($this->flags & 4)
+			{
+				// Read subfield IDs
+				$this->SI1 = $this->compressed_data[$this->position++];
+				$this->SI2 = $this->compressed_data[$this->position++];
+
+				// SI2 set to zero is reserved for future use
+				if ($this->SI2 === "\x00")
+				{
+					return false;
+				}
+
+				// Get the length of the extra field
+				$len = current(unpack('v', substr($this->compressed_data, $this->position, 2)));
+				$this->position += 2;
+
+				// Check the length of the string is still valid
+				$this->min_compressed_size += $len + 4;
+				if ($this->compressed_size >= $this->min_compressed_size)
+				{
+					// Set the extra field to the given data
+					$this->extra_field = substr($this->compressed_data, $this->position, $len);
+					$this->position += $len;
+				}
+				else
+				{
+					return false;
+				}
+			}
+
+			// Parse the FNAME
+			if ($this->flags & 8)
+			{
+				// Get the length of the filename
+				$len = strcspn($this->compressed_data, "\x00", $this->position);
+
+				// Check the length of the string is still valid
+				$this->min_compressed_size += $len + 1;
+				if ($this->compressed_size >= $this->min_compressed_size)
+				{
+					// Set the original filename to the given string
+					$this->filename = substr($this->compressed_data, $this->position, $len);
+					$this->position += $len + 1;
+				}
+				else
+				{
+					return false;
+				}
+			}
+
+			// Parse the FCOMMENT
+			if ($this->flags & 16)
+			{
+				// Get the length of the comment
+				$len = strcspn($this->compressed_data, "\x00", $this->position);
+
+				// Check the length of the string is still valid
+				$this->min_compressed_size += $len + 1;
+				if ($this->compressed_size >= $this->min_compressed_size)
+				{
+					// Set the original comment to the given string
+					$this->comment = substr($this->compressed_data, $this->position, $len);
+					$this->position += $len + 1;
+				}
+				else
+				{
+					return false;
+				}
+			}
+
+			// Parse the FHCRC
+			if ($this->flags & 2)
+			{
+				// Check the length of the string is still valid
+				$this->min_compressed_size += $len + 2;
+				if ($this->compressed_size >= $this->min_compressed_size)
+				{
+					// Read the CRC
+					$crc = current(unpack('v', substr($this->compressed_data, $this->position, 2)));
+
+					// Check the CRC matches
+					if ((crc32(substr($this->compressed_data, 0, $this->position)) & 0xFFFF) === $crc)
+					{
+						$this->position += 2;
+					}
+					else
+					{
+						return false;
+					}
+				}
+				else
+				{
+					return false;
+				}
+			}
+
+			// Decompress the actual data
+			if (($this->data = gzinflate(substr($this->compressed_data, $this->position, -8))) === false)
+			{
+				return false;
+			}
+			else
+			{
+				$this->position = $this->compressed_size - 8;
+			}
+
+			// Check CRC of data
+			$crc = current(unpack('V', substr($this->compressed_data, $this->position, 4)));
+			$this->position += 4;
+			/*if (extension_loaded('hash') && sprintf('%u', current(unpack('V', hash('crc32b', $this->data)))) !== sprintf('%u', $crc))
+			{
+				return false;
+			}*/
+
+			// Check ISIZE of data
+			$isize = current(unpack('V', substr($this->compressed_data, $this->position, 4)));
+			$this->position += 4;
+			if (sprintf('%u', strlen($this->data) & 0xFFFFFFFF) !== sprintf('%u', $isize))
+			{
+				return false;
+			}
+
+			// Wow, against all odds, we've actually got a valid gzip string
+			return true;
+		}
+		else
+		{
+			return false;
+		}
+	}
+}
--- a/web/wp-includes/admin-bar.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/admin-bar.php	Wed Dec 19 17:46:52 2012 -0800
@@ -341,12 +341,10 @@
 		),
 	) );
 
-	$blue_wp_logo_url = includes_url('images/wpmini-blue.png');
+	foreach ( (array) $wp_admin_bar->user->blogs as $blog ) {
+		switch_to_blog( $blog->userblog_id );
 
-	foreach ( (array) $wp_admin_bar->user->blogs as $blog ) {
-		// @todo Replace with some favicon lookup.
-		//$blavatar = '<img src="' . esc_url( blavatar_url( blavatar_domain( $blog->siteurl ), 'img', 16, $blue_wp_logo_url ) ) . '" alt="Blavatar" width="16" height="16" />';
-		$blavatar = '<img src="' . esc_url($blue_wp_logo_url) . '" alt="' . esc_attr__( 'Blavatar' ) . '" width="16" height="16" class="blavatar"/>';
+		$blavatar = '<div class="blavatar"></div>';
 
 		$blogname = empty( $blog->blogname ) ? $blog->domain : $blog->blogname;
 		$menu_id  = 'blog-' . $blog->userblog_id;
@@ -355,28 +353,31 @@
 			'parent'    => 'my-sites-list',
 			'id'        => $menu_id,
 			'title'     => $blavatar . $blogname,
-			'href'      => get_admin_url( $blog->userblog_id ),
+			'href'      => admin_url(),
 		) );
 
 		$wp_admin_bar->add_menu( array(
 			'parent' => $menu_id,
 			'id'     => $menu_id . '-d',
 			'title'  => __( 'Dashboard' ),
-			'href'   => get_admin_url( $blog->userblog_id ),
+			'href'   => admin_url(),
 		) );
 
-		if ( current_user_can_for_blog( $blog->userblog_id, 'edit_posts' ) ) {
+		if ( current_user_can( get_post_type_object( 'post' )->cap->create_posts ) ) {
 			$wp_admin_bar->add_menu( array(
 				'parent' => $menu_id,
 				'id'     => $menu_id . '-n',
 				'title'  => __( 'New Post' ),
-				'href'   => get_admin_url( $blog->userblog_id, 'post-new.php' ),
+				'href'   => admin_url( 'post-new.php' ),
 			) );
+		}
+
+		if ( current_user_can( 'edit_posts' ) ) {
 			$wp_admin_bar->add_menu( array(
 				'parent' => $menu_id,
 				'id'     => $menu_id . '-c',
 				'title'  => __( 'Manage Comments' ),
-				'href'   => get_admin_url( $blog->userblog_id, 'edit-comments.php' ),
+				'href'   => admin_url( 'edit-comments.php' ),
 			) );
 		}
 
@@ -384,8 +385,10 @@
 			'parent' => $menu_id,
 			'id'     => $menu_id . '-v',
 			'title'  => __( 'Visit Site' ),
-			'href'   => get_home_url( $blog->userblog_id, '/' ),
+			'href'   => home_url( '/' ),
 		) );
+
+		restore_current_blog();
 	}
 }
 
@@ -417,16 +420,18 @@
  * @since 3.1.0
  */
 function wp_admin_bar_edit_menu( $wp_admin_bar ) {
-	global $post, $tag, $wp_the_query;
+	global $tag, $wp_the_query;
 
 	if ( is_admin() ) {
 		$current_screen = get_current_screen();
+		$post = get_post();
 
 		if ( 'post' == $current_screen->base
 			&& 'add' != $current_screen->action
 			&& ( $post_type_object = get_post_type_object( $post->post_type ) )
 			&& current_user_can( $post_type_object->cap->read_post, $post->ID )
-			&& ( $post_type_object->public ) )
+			&& ( $post_type_object->public )
+			&& ( $post_type_object->show_in_admin_bar ) )
 		{
 			$wp_admin_bar->add_menu( array(
 				'id' => 'view',
@@ -453,7 +458,7 @@
 		if ( ! empty( $current_object->post_type )
 			&& ( $post_type_object = get_post_type_object( $current_object->post_type ) )
 			&& current_user_can( $post_type_object->cap->edit_post, $current_object->ID )
-			&& ( $post_type_object->show_ui || 'attachment' == $current_object->post_type ) )
+			&& $post_type_object->show_ui && $post_type_object->show_in_admin_bar )
 		{
 			$wp_admin_bar->add_menu( array(
 				'id' => 'edit',
@@ -484,30 +489,31 @@
 
 	$cpts = (array) get_post_types( array( 'show_in_admin_bar' => true ), 'objects' );
 
-	if ( isset( $cpts['post'] ) && current_user_can( $cpts['post']->cap->edit_posts ) ) {
+	if ( isset( $cpts['post'] ) && current_user_can( $cpts['post']->cap->create_posts ) )
 		$actions[ 'post-new.php' ] = array( $cpts['post']->labels->name_admin_bar, 'new-post' );
-		unset( $cpts['post'] );
-	}
 
-	if ( current_user_can( 'upload_files' ) )
-		$actions[ 'media-new.php' ] = array( _x( 'Media', 'add new from admin bar' ), 'new-media' );
+	if ( isset( $cpts['attachment'] ) && current_user_can( 'upload_files' ) )
+		$actions[ 'media-new.php' ] = array( $cpts['attachment']->labels->name_admin_bar, 'new-media' );
 
 	if ( current_user_can( 'manage_links' ) )
 		$actions[ 'link-add.php' ] = array( _x( 'Link', 'add new from admin bar' ), 'new-link' );
 
-	if ( isset( $cpts['page'] ) && current_user_can( $cpts['page']->cap->edit_posts ) ) {
+	if ( isset( $cpts['page'] ) && current_user_can( $cpts['page']->cap->create_posts ) )
 		$actions[ 'post-new.php?post_type=page' ] = array( $cpts['page']->labels->name_admin_bar, 'new-page' );
-		unset( $cpts['page'] );
-	}
+
+	unset( $cpts['post'], $cpts['page'], $cpts['attachment'] );
 
 	// Add any additional custom post types.
 	foreach ( $cpts as $cpt ) {
-		if ( ! current_user_can( $cpt->cap->edit_posts ) )
+		if ( ! current_user_can( $cpt->cap->create_posts ) )
 			continue;
 
 		$key = 'post-new.php?post_type=' . $cpt->name;
 		$actions[ $key ] = array( $cpt->labels->name_admin_bar, 'new-' . $cpt->name );
 	}
+	// Avoid clash with parent node and a 'content' post type.
+	if ( isset( $actions['post-new.php?post_type=content'] ) )
+		$actions['post-new.php?post_type=content'][1] = 'add-new-content';
 
 	if ( current_user_can( 'create_users' ) || current_user_can( 'promote_users' ) )
 		$actions[ 'user-new.php' ] = array( _x( 'User', 'add new from admin bar' ), 'new-user' );
@@ -614,6 +620,7 @@
 		return;
 
 	$title = '<span class="ab-icon"></span><span class="ab-label">' . number_format_i18n( $update_data['counts']['total'] ) . '</span>';
+	$title .= '<span class="screen-reader-text">' . $update_data['title'] . '</span>';
 
 	$wp_admin_bar->add_menu( array(
 		'id'    => 'updates',
@@ -635,7 +642,7 @@
 		return;
 
 	$form  = '<form action="' . esc_url( home_url( '/' ) ) . '" method="get" id="adminbarsearch">';
-	$form .= '<input class="adminbar-input" name="s" id="adminbar-search" tabindex="10" type="text" value="" maxlength="150" />';
+	$form .= '<input class="adminbar-input" name="s" id="adminbar-search" type="text" value="" maxlength="150" />';
 	$form .= '<input type="submit" class="adminbar-button" value="' . __('Search') . '"/>';
 	$form .= '</form>';
 
@@ -723,7 +730,7 @@
 	global $show_admin_bar, $pagenow;
 
 	// For all these types of requests, we never want an admin bar.
-	if ( defined('XMLRPC_REQUEST') || defined('APP_REQUEST') || defined('DOING_AJAX') || defined('IFRAME_REQUEST') )
+	if ( defined('XMLRPC_REQUEST') || defined('DOING_AJAX') || defined('IFRAME_REQUEST') )
 		return false;
 
 	// Integrated into the admin.
--- a/web/wp-includes/author-template.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/author-template.php	Wed Dec 19 17:46:52 2012 -0800
@@ -69,8 +69,7 @@
  * @return string The author's display name.
  */
 function get_the_modified_author() {
-	global $post;
-	if ( $last_id = get_post_meta($post->ID, '_edit_last', true) ) {
+	if ( $last_id = get_post_meta( get_post()->ID, '_edit_last', true) ) {
 		$last_user = get_userdata($last_id);
 		return apply_filters('the_modified_author', $last_user->display_name);
 	}
@@ -164,8 +163,7 @@
  * @return int The number of posts by the author.
  */
 function get_the_author_posts() {
-	global $post;
-	return count_user_posts($post->post_author);
+	return count_user_posts( get_post()->post_author );
 }
 
 /**
--- a/web/wp-includes/bookmark-template.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/bookmark-template.php	Wed Dec 19 17:46:52 2012 -0800
@@ -42,7 +42,6 @@
  *
  * @since 2.1.0
  * @access private
- * @usedby wp_list_bookmarks()
  *
  * @param array $bookmarks List of bookmarks to traverse
  * @param string|array $args Optional. Overwrite the defaults.
@@ -79,7 +78,7 @@
 		if ( $show_updated )
 			if ( '00' != substr($bookmark->link_updated_f, 0, 2) ) {
 				$title .= ' (';
-				$title .= sprintf(__('Last updated: %s'), date(get_option('links_updated_date_format'), $bookmark->link_updated_f + (get_option('gmt_offset') * 3600)));
+				$title .= sprintf(__('Last updated: %s'), date(get_option('links_updated_date_format'), $bookmark->link_updated_f + (get_option('gmt_offset') * HOUR_IN_SECONDS)));
 				$title .= ')';
 			}
 
@@ -189,7 +188,7 @@
  * @link http://codex.wordpress.org/Template_Tags/wp_list_bookmarks
  *
  * @since 2.1.0
- * @uses _list_bookmarks() Used to iterate over all of the bookmarks and return
+ * @uses _walk_bookmarks() Used to iterate over all of the bookmarks and return
  *		the html
  * @uses get_terms() Gets all of the categories that are for links.
  *
@@ -216,9 +215,13 @@
 	$output = '';
 
 	if ( $categorize ) {
-		//Split the bookmarks into ul's for each category
-		$cats = get_terms('link_category', array('name__like' => $category_name, 'include' => $category, 'exclude' => $exclude_category, 'orderby' => $category_orderby, 'order' => $category_order, 'hierarchical' => 0));
+		$cats = get_terms( 'link_category', array( 'name__like' => $category_name, 'include' => $category, 'exclude' => $exclude_category, 'orderby' => $category_orderby, 'order' => $category_order, 'hierarchical' => 0 ) );
+		if ( empty( $cats ) )
+			$categorize = false;
+	}
 
+	if ( $categorize ) {
+		// Split the bookmarks into ul's for each category
 		foreach ( (array) $cats as $cat ) {
 			$params = array_merge($r, array('category'=>$cat->term_id));
 			$bookmarks = get_bookmarks($params);
--- a/web/wp-includes/bookmark.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/bookmark.php	Wed Dec 19 17:46:52 2012 -0800
@@ -33,11 +33,16 @@
 			$_bookmark = & $GLOBALS['link'];
 		} elseif ( ! $_bookmark = wp_cache_get($bookmark, 'bookmark') ) {
 			$_bookmark = $wpdb->get_row($wpdb->prepare("SELECT * FROM $wpdb->links WHERE link_id = %d LIMIT 1", $bookmark));
-			$_bookmark->link_category = array_unique( wp_get_object_terms($_bookmark->link_id, 'link_category', array('fields' => 'ids')) );
-			wp_cache_add($_bookmark->link_id, $_bookmark, 'bookmark');
+			if ( $_bookmark ) {
+				$_bookmark->link_category = array_unique( wp_get_object_terms( $_bookmark->link_id, 'link_category', array( 'fields' => 'ids' ) ) );
+				wp_cache_add( $_bookmark->link_id, $_bookmark, 'bookmark' );
+			}
 		}
 	}
 
+	if ( ! $_bookmark )
+		return $_bookmark;
+
 	$_bookmark = sanitize_bookmark($_bookmark, $filter);
 
 	if ( $output == OBJECT ) {
--- a/web/wp-includes/cache.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/cache.php	Wed Dec 19 17:46:52 2012 -0800
@@ -180,6 +180,21 @@
 }
 
 /**
+ * Switch the interal blog id.
+ *
+ * This changes the blog id used to create keys in blog specific groups.
+ *
+ * @since 3.5.0
+ *
+ * @param int $blog_id Blog ID
+ */
+function wp_cache_switch_to_blog( $blog_id ) {
+	global $wp_object_cache;
+
+	return $wp_object_cache->switch_to_blog( $blog_id );
+}
+
+/**
  * Adds a group or set of groups to the list of global groups.
  *
  * @since 2.6.0
@@ -189,7 +204,7 @@
 function wp_cache_add_global_groups( $groups ) {
 	global $wp_object_cache;
 
-	return $wp_object_cache->add_global_groups($groups);
+	return $wp_object_cache->add_global_groups( $groups );
 }
 
 /**
@@ -205,12 +220,23 @@
 }
 
 /**
- * Reset internal cache keys and structures. If the cache backend uses global blog or site IDs as part of its cache keys,
- * this function instructs the backend to reset those keys and perform any cleanup since blog or site IDs have changed since cache init.
+ * Reset internal cache keys and structures. If the cache backend uses global
+ * blog or site IDs as part of its cache keys, this function instructs the
+ * backend to reset those keys and perform any cleanup since blog or site IDs
+ * have changed since cache init.
+ *
+ * This function is deprecated. Use wp_cache_switch_to_blog() instead of this
+ * function when preparing the cache for a blog switch. For clearing the cache
+ * during unit tests, consider using wp_cache_init(). wp_cache_init() is not
+ * recommended outside of unit tests as the performance penality for using it is
+ * high.
  *
  * @since 2.6.0
+ * @deprecated 3.5.0
  */
 function wp_cache_reset() {
+	_deprecated_function( __FUNCTION__, '3.5' );
+
 	global $wp_object_cache;
 
 	return $wp_object_cache->reset();
@@ -271,6 +297,15 @@
 	var $global_groups = array();
 
 	/**
+	 * The blog prefix to prepend to keys in non-global groups.
+	 *
+	 * @var int
+	 * @access private
+	 * @since 3.5.0
+	 */
+	var $blog_prefix;
+
+	/**
 	 * Adds data to the cache if it doesn't already exist.
 	 *
 	 * @uses WP_Object_Cache::_exists Checks to see if the cache already has data.
@@ -292,7 +327,11 @@
 		if ( empty( $group ) )
 			$group = 'default';
 
-		if ( $this->_exists($key, $group) )
+		$id = $key;
+		if ( $this->multisite && ! isset( $this->global_groups[ $group ] ) )
+			$id = $this->blog_prefix . $key;
+
+		if ( $this->_exists( $id, $group ) )
 			return false;
 
 		return $this->set($key, $data, $group, $expire);
@@ -308,8 +347,8 @@
 	function add_global_groups( $groups ) {
 		$groups = (array) $groups;
 
-		$this->global_groups = array_merge($this->global_groups, $groups);
-		$this->global_groups = array_unique($this->global_groups);
+		$groups = array_fill_keys( $groups, true );
+		$this->global_groups = array_merge( $this->global_groups, $groups );
 	}
 
 	/**
@@ -323,6 +362,12 @@
 	 * @return false|int False on failure, the item's new value on success.
 	 */
 	function decr( $key, $offset = 1, $group = 'default' ) {
+		if ( empty( $group ) )
+			$group = 'default';
+
+		if ( $this->multisite && ! isset( $this->global_groups[ $group ] ) )
+			$key = $this->blog_prefix . $key;
+
 		if ( ! $this->_exists( $key, $group ) )
 			return false;
 
@@ -358,6 +403,9 @@
 		if ( empty( $group ) )
 			$group = 'default';
 
+		if ( $this->multisite && ! isset( $this->global_groups[ $group ] ) )
+			$key = $this->blog_prefix . $key;
+
 		if ( ! $force && ! $this->_exists( $key, $group ) )
 			return false;
 
@@ -399,6 +447,9 @@
 		if ( empty( $group ) )
 			$group = 'default';
 
+		if ( $this->multisite && ! isset( $this->global_groups[ $group ] ) )
+			$key = $this->blog_prefix . $key;
+
 		if ( $this->_exists( $key, $group ) ) {
 			$found = true;
 			$this->cache_hits += 1;
@@ -427,6 +478,9 @@
 		if ( empty( $group ) )
 			$group = 'default';
 
+		if ( $this->multisite && ! isset( $this->global_groups[ $group ] ) )
+			$key = $this->blog_prefix . $key;
+
 		if ( ! $this->_exists( $key, $group ) )
 			return false;
 
@@ -455,26 +509,33 @@
 	 * @param int $expire When to expire the cache contents
 	 * @return bool False if not exists, true if contents were replaced
 	 */
-	function replace($key, $data, $group = 'default', $expire = '') {
+	function replace( $key, $data, $group = 'default', $expire = '' ) {
 		if ( empty( $group ) )
 			$group = 'default';
 
-		if ( ! $this->_exists( $key, $group ) )
+		$id = $key;
+		if ( $this->multisite && ! isset( $this->global_groups[ $group ] ) )
+			$id = $this->blog_prefix . $key;
+
+		if ( ! $this->_exists( $id, $group ) )
 			return false;
 
-		return $this->set($key, $data, $group, $expire);
+		return $this->set( $key, $data, $group, $expire );
 	}
 
 	/**
 	 * Reset keys
 	 *
 	 * @since 3.0.0
+	 * @deprecated 3.5.0
 	 */
 	function reset() {
+		_deprecated_function( __FUNCTION__, '3.5', 'switch_to_blog()' );
+
 		// Clear out non-global caches since the blog ID has changed.
-		foreach ( array_keys($this->cache) as $group ) {
-			if ( !in_array($group, $this->global_groups) )
-				unset($this->cache[$group]);
+		foreach ( array_keys( $this->cache ) as $group ) {
+			if ( ! isset( $this->global_groups[ $group ] ) )
+				unset( $this->cache[ $group ] );
 		}
 	}
 
@@ -502,7 +563,10 @@
 		if ( empty( $group ) )
 			$group = 'default';
 
-		if ( is_object($data) )
+		if ( $this->multisite && ! isset( $this->global_groups[ $group ] ) )
+			$key = $this->blog_prefix . $key;
+
+		if ( is_object( $data ) )
 			$data = clone $data;
 
 		$this->cache[$group][$key] = $data;
@@ -530,11 +594,28 @@
 	}
 
 	/**
-	 * Utility function to determine whether a key exists in the cache.
-	 * @access private
+	 * Switch the interal blog id.
+	 *
+	 * This changes the blog id used to create keys in blog specific groups.
+	 *
+	 * @since 3.5.0
+	 *
+	 * @param int $blog_id Blog ID
 	 */
-	protected function _exists($key, $group) {
-		return isset( $this->cache[$group] ) && is_array( $this->cache[$group] ) && array_key_exists( $key, $this->cache[$group] );
+	function switch_to_blog( $blog_id ) {
+		$blog_id = (int) $blog_id;
+		$this->blog_prefix = $this->multisite ? $blog_id . ':' : '';
+	}
+
+	/**
+	 * Utility function to determine whether a key exists in the cache.
+	 *
+	 * @since 3.4.0
+	 *
+	 * @access protected
+	 */
+	protected function _exists( $key, $group ) {
+		return isset( $this->cache[ $group ] ) && ( isset( $this->cache[ $group ][ $key ] ) || array_key_exists( $key, $this->cache[ $group ] ) );
 	}
 
 	/**
@@ -544,11 +625,17 @@
 	 * @return null|WP_Object_Cache If cache is disabled, returns null.
 	 */
 	function __construct() {
+		global $blog_id;
+
+		$this->multisite = is_multisite();
+		$this->blog_prefix =  $this->multisite ? $blog_id . ':' : '';
+
+
 		/**
 		 * @todo This should be moved to the PHP4 style constructor, PHP5
 		 * already calls __destruct()
 		 */
-		register_shutdown_function(array(&$this, "__destruct"));
+		register_shutdown_function( array( $this, '__destruct' ) );
 	}
 
 	/**
--- a/web/wp-includes/canonical.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/canonical.php	Wed Dec 19 17:46:52 2012 -0800
@@ -18,7 +18,9 @@
  * one or the other.
  *
  * Prevents redirection for feeds, trackbacks, searches, comment popup, and
- * admin URLs. Does not redirect on IIS, page/post previews, and on form data.
+ * admin URLs. Does not redirect on non-pretty-permalink-supporting IIS 7,
+ * page/post previews, WP admin, Trackbacks, robots.txt, searches, or on POST
+ * requests.
  *
  * Will also attempt to find the correct link when a user enters a URL that does
  * not exist based on exact WordPress query. Will instead try to parse the URL
@@ -37,7 +39,7 @@
 function redirect_canonical( $requested_url = null, $do_redirect = true ) {
 	global $wp_rewrite, $is_IIS, $wp_query, $wpdb;
 
-	if ( is_trackback() || is_search() || is_comments_popup() || is_admin() || !empty($_POST) || is_preview() || is_robots() || $is_IIS )
+	if ( is_trackback() || is_search() || is_comments_popup() || is_admin() || !empty($_POST) || is_preview() || is_robots() || ( $is_IIS && !iis7_supports_permalinks() ) )
 		return;
 
 	if ( !$requested_url ) {
@@ -280,7 +282,7 @@
 
 		if ( 'wp-register.php' == basename( $redirect['path'] ) ) {
 			if ( is_multisite() )
-				$redirect_url = apply_filters( 'wp_signup_location', site_url( 'wp-signup.php' ) );
+				$redirect_url = apply_filters( 'wp_signup_location', network_site_url( 'wp-signup.php' ) );
 			else
 				$redirect_url = site_url( 'wp-login.php?action=register' );
 			wp_redirect( $redirect_url, 301 );
--- a/web/wp-includes/capabilities.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/capabilities.php	Wed Dec 19 17:46:52 2012 -0800
@@ -108,7 +108,37 @@
 
 		$this->role_objects = array();
 		$this->role_names =  array();
-		foreach ( (array) $this->roles as $role => $data ) {
+		foreach ( array_keys( $this->roles ) as $role ) {
+			$this->role_objects[$role] = new WP_Role( $role, $this->roles[$role]['capabilities'] );
+			$this->role_names[$role] = $this->roles[$role]['name'];
+		}
+	}
+
+	/**
+	 * Reinitialize the object
+	 *
+	 * Recreates the role objects. This is typically called only by switch_to_blog()
+	 * after switching wpdb to a new blog ID.
+	 *
+	 * @since 3.5.0
+	 * @access public
+	 */
+	function reinit() {
+		// There is no need to reinit if using the wp_user_roles global.
+		if ( ! $this->use_db )
+			return;
+
+		global $wpdb, $wp_user_roles;
+
+		// Duplicated from _init() to avoid an extra function call.
+		$this->role_key = $wpdb->prefix . 'user_roles';
+		$this->roles = get_option( $this->role_key );
+		if ( empty( $this->roles ) )
+			return;
+
+		$this->role_objects = array();
+		$this->role_names =  array();
+		foreach ( array_keys( $this->roles ) as $role ) {
 			$this->role_objects[$role] = new WP_Role( $role, $this->roles[$role]['capabilities'] );
 			$this->role_names[$role] = $this->roles[$role]['name'];
 		}
@@ -176,6 +206,9 @@
 	 * @param bool $grant Optional, default is true. Whether role is capable of performing capability.
 	 */
 	function add_cap( $role, $cap, $grant = true ) {
+		if ( ! isset( $this->roles[$role] ) )
+			return;
+
 		$this->roles[$role]['capabilities'][$cap] = $grant;
 		if ( $this->use_db )
 			update_option( $this->role_key, $this->roles );
@@ -191,6 +224,9 @@
 	 * @param string $cap Capability name.
 	 */
 	function remove_cap( $role, $cap ) {
+		if ( ! isset( $this->roles[$role] ) )
+			return;
+
 		unset( $this->roles[$role]['capabilities'][$cap] );
 		if ( $this->use_db )
 			update_option( $this->role_key, $this->roles );
@@ -233,8 +269,7 @@
 	 * @param string $role Role name to look up.
 	 * @return bool
 	 */
-	function is_role( $role )
-	{
+	function is_role( $role ) {
 		return isset( $this->role_names[$role] );
 	}
 }
@@ -430,7 +465,7 @@
 	 * @since 2.0.0
 	 * @access public
 	 *
-	 * @param int|string $id User's ID
+	 * @param int|string|stdClass|WP_User $id User's ID, a WP_User object, or a user object from the DB.
 	 * @param string $name Optional. User's username
 	 * @param int $blog_id Optional Blog ID, defaults to current blog.
 	 * @return WP_User
@@ -448,6 +483,14 @@
 			);
 		}
 
+		if ( is_a( $id, 'WP_User' ) ) {
+			$this->init( $id->data, $blog_id );
+			return;
+		} elseif ( is_object( $id ) ) {
+			$this->init( $id, $blog_id );
+			return;
+		}
+
 		if ( ! empty( $id ) && ! is_numeric( $id ) ) {
 			$name = $id;
 			$id = 0;
@@ -636,6 +679,17 @@
 		return $this->__isset( $key );
 	}
 
+	/*
+	 * Return an array representation.
+	 *
+	 * @since 3.5.0
+	 *
+	 * @return array Array representation.
+	 */
+	function to_array() {
+		return get_object_vars( $this->data );
+	}
+
 	/**
 	 * Set up capability object properties.
 	 *
@@ -685,7 +739,7 @@
 
 		//Filter out caps that are not role names and assign to $this->roles
 		if ( is_array( $this->caps ) )
-			$this->roles = array_filter( array_keys( $this->caps ), array( &$wp_roles, 'is_role' ) );
+			$this->roles = array_filter( array_keys( $this->caps ), array( $wp_roles, 'is_role' ) );
 
 		//Build $allcaps from role caps, overlay user's $caps
 		$this->allcaps = array();
@@ -743,12 +797,12 @@
 	 * @param string $role Role name.
 	 */
 	function set_role( $role ) {
+		if ( 1 == count( $this->roles ) && $role == current( $this->roles ) )
+			return;
+
 		foreach ( (array) $this->roles as $oldrole )
 			unset( $this->caps[$oldrole] );
 
-		if ( 1 == count( $this->roles ) && $role == $this->roles[0] )
-			return;
-
 		if ( !empty( $role ) ) {
 			$this->caps[$role] = true;
 			$this->roles = array( $role => true );
@@ -828,7 +882,7 @@
 	 * @param string $cap Capability name.
 	 */
 	function remove_cap( $cap ) {
-		if ( empty( $this->caps[$cap] ) )
+		if ( ! isset( $this->caps[$cap] ) )
 			return;
 		unset( $this->caps[$cap] );
 		update_user_meta( $this->ID, $this->cap_key, $this->caps );
@@ -947,20 +1001,19 @@
 		$caps[] = 'promote_users';
 		break;
 	case 'edit_user':
+	case 'edit_users':
 		// Allow user to edit itself
-		if ( isset( $args[0] ) && $user_id == $args[0] )
+		if ( 'edit_user' == $cap && isset( $args[0] ) && $user_id == $args[0] )
 			break;
-		// Fall through
-	case 'edit_users':
+
 		// If multisite these caps are allowed only for super admins.
 		if ( is_multisite() && !is_super_admin( $user_id ) )
 			$caps[] = 'do_not_allow';
 		else
-			$caps[] = 'edit_users'; // Explicit due to primitive fall through
+			$caps[] = 'edit_users'; // edit_user maps to edit_users.
 		break;
 	case 'delete_post':
 	case 'delete_page':
-		$author_data = get_userdata( $user_id );
 		$post = get_post( $args[0] );
 
 		if ( 'revision' == $post->post_type ) {
@@ -977,12 +1030,13 @@
 			break;
 		}
 
-		if ( '' != $post->post_author ) {
-			$post_author_data = get_userdata( $post->post_author );
-		} else {
-			// No author set yet, so default to current user for cap checks.
-			$post_author_data = $author_data;
-		}
+		$post_author_id = $post->post_author;
+
+		// If no author set yet, default to current user for cap checks.
+		if ( ! $post_author_id )
+			$post_author_id = $user_id;
+
+		$post_author_data = $post_author_id == get_current_user_id() ? wp_get_current_user() : get_userdata( $post_author_id );
 
 		// If the user is the author...
 		if ( is_object( $post_author_data ) && $user_id == $post_author_data->ID ) {
@@ -1010,7 +1064,6 @@
 		// edit_others_posts
 	case 'edit_post':
 	case 'edit_page':
-		$author_data = get_userdata( $user_id );
 		$post = get_post( $args[0] );
 
 		if ( 'revision' == $post->post_type ) {
@@ -1027,14 +1080,14 @@
 			break;
 		}
 
-		if ( '' != $post->post_author ) {
-			$post_author_data = get_userdata( $post->post_author );
-		} else {
-			// No author set yet, so default to current user for cap checks.
-			$post_author_data = $author_data;
-		}
+		$post_author_id = $post->post_author;
 
-		//echo "current user id : $user_id, post author id: " . $post_author_data->ID . "<br />";
+		// If no author set yet, default to current user for cap checks.
+		if ( ! $post_author_id )
+			$post_author_id = $user_id;
+
+		$post_author_data = $post_author_id == get_current_user_id() ? wp_get_current_user() : get_userdata( $post_author_id );
+
 		// If the user is the author...
 		if ( is_object( $post_author_data ) && $user_id == $post_author_data->ID ) {
 			// If the post is published...
@@ -1059,7 +1112,6 @@
 		break;
 	case 'read_post':
 	case 'read_page':
-		$author_data = get_userdata( $user_id );
 		$post = get_post( $args[0] );
 
 		if ( 'revision' == $post->post_type ) {
@@ -1082,12 +1134,13 @@
 			break;
 		}
 
-		if ( '' != $post->post_author ) {
-			$post_author_data = get_userdata( $post->post_author );
-		} else {
-			// No author set yet, so default to current user for cap checks.
-			$post_author_data = $author_data;
-		}
+		$post_author_id = $post->post_author;
+
+		// If no author set yet, default to current user for cap checks.
+		if ( ! $post_author_id )
+			$post_author_id = $user_id;
+
+		$post_author_data = $post_author_id == get_current_user_id() ? wp_get_current_user() : get_userdata( $post_author_id );
 
 		if ( is_object( $post_author_data ) && $user_id == $post_author_data->ID )
 			$caps[] = $post_type->cap->read;
@@ -1096,6 +1149,12 @@
 		else
 			$caps = map_meta_cap( 'edit_post', $user_id, $post->ID );
 		break;
+	case 'publish_post':
+		$post = get_post( $args[0] );
+		$post_type = get_post_type_object( $post->post_type );
+
+		$caps[] = $post_type->cap->publish_posts;
+		break;
 	case 'edit_post_meta':
 	case 'delete_post_meta':
 	case 'add_post_meta':
@@ -1138,11 +1197,16 @@
 	case 'edit_files':
 	case 'edit_plugins':
 	case 'edit_themes':
-		if ( defined('DISALLOW_FILE_EDIT') && DISALLOW_FILE_EDIT ) {
+		// Disallow the file editors.
+		if ( defined( 'DISALLOW_FILE_EDIT' ) && DISALLOW_FILE_EDIT )
+			$caps[] = 'do_not_allow';
+		elseif ( defined( 'DISALLOW_FILE_MODS' ) && DISALLOW_FILE_MODS )
 			$caps[] = 'do_not_allow';
-			break;
-		}
-		// Fall through if not DISALLOW_FILE_EDIT.
+		elseif ( is_multisite() && ! is_super_admin( $user_id ) )
+			$caps[] = 'do_not_allow';
+		else
+			$caps[] = $cap;
+		break;
 	case 'update_plugins':
 	case 'delete_plugins':
 	case 'install_plugins':
@@ -1150,23 +1214,31 @@
 	case 'delete_themes':
 	case 'install_themes':
 	case 'update_core':
-		// Disallow anything that creates, deletes, or edits core, plugin, or theme files.
+		// Disallow anything that creates, deletes, or updates core, plugin, or theme files.
 		// Files in uploads are excepted.
-		if ( defined('DISALLOW_FILE_MODS') && DISALLOW_FILE_MODS ) {
+		if ( defined( 'DISALLOW_FILE_MODS' ) && DISALLOW_FILE_MODS )
+			$caps[] = 'do_not_allow';
+		elseif ( is_multisite() && ! is_super_admin( $user_id ) )
 			$caps[] = 'do_not_allow';
-			break;
+		else
+			$caps[] = $cap;
+		break;
+	case 'activate_plugins':
+		$caps[] = $cap;
+		if ( is_multisite() ) {
+			// update_, install_, and delete_ are handled above with is_super_admin().
+			$menu_perms = get_site_option( 'menu_items', array() );
+			if ( empty( $menu_perms['plugins'] ) )
+				$caps[] = 'manage_network_plugins';
 		}
-		// Fall through if not DISALLOW_FILE_MODS.
+		break;
 	case 'delete_user':
 	case 'delete_users':
-		// If multisite these caps are allowed only for super admins.
-		if ( is_multisite() && !is_super_admin( $user_id ) ) {
+		// If multisite only super admins can delete users.
+		if ( is_multisite() && ! is_super_admin( $user_id ) )
 			$caps[] = 'do_not_allow';
-		} else {
-			if ( 'delete_user' == $cap )
-				$cap = 'delete_users';
-			$caps[] = $cap;
-		}
+		else
+			$caps[] = 'delete_users'; // delete_user maps to delete_users.
 		break;
 	case 'create_users':
 		if ( !is_multisite() )
@@ -1176,6 +1248,12 @@
 		else
 			$caps[] = 'do_not_allow';
 		break;
+	case 'manage_links' :
+		if ( get_option( 'link_manager_enabled' ) )
+			$caps[] = $cap;
+		else
+			$caps[] = 'do_not_allow';
+		break;
 	default:
 		// Handle meta capabilities for custom post types.
 		$post_type_meta_caps = _post_type_meta_capabilities();
@@ -1221,21 +1299,23 @@
  * @return bool
  */
 function current_user_can_for_blog( $blog_id, $capability ) {
+	if ( is_multisite() )
+		switch_to_blog( $blog_id );
+
 	$current_user = wp_get_current_user();
 
 	if ( empty( $current_user ) )
 		return false;
 
-	// Create new object to avoid stomping the global current_user.
-	$user = new WP_User( $current_user->ID) ;
-
-	// Set the blog id. @todo add blog id arg to WP_User constructor?
-	$user->for_blog( $blog_id );
-
 	$args = array_slice( func_get_args(), 2 );
 	$args = array_merge( array( $capability ), $args );
 
-	return call_user_func_array( array( &$user, 'has_cap' ), $args );
+	$can = call_user_func_array( array( $current_user, 'has_cap' ), $args );
+
+	if ( is_multisite() )
+		restore_current_blog();
+
+	return $can;
 }
 
 /**
@@ -1251,15 +1331,15 @@
 	if ( !$post = get_post($post) )
 		return false;
 
-	$author = new WP_User( $post->post_author );
+	$author = get_userdata( $post->post_author );
 
-	if ( empty( $author->ID ) )
+	if ( ! $author )
 		return false;
 
 	$args = array_slice( func_get_args(), 2 );
 	$args = array_merge( array( $capability ), $args );
 
-	return call_user_func_array( array( &$author, 'has_cap' ), $args );
+	return call_user_func_array( array( $author, 'has_cap' ), $args );
 }
 
 /**
@@ -1273,7 +1353,7 @@
  */
 function user_can( $user, $capability ) {
 	if ( ! is_object( $user ) )
-		$user = new WP_User( $user );
+		$user = get_userdata( $user );
 
 	if ( ! $user || ! $user->exists() )
 		return false;
@@ -1281,7 +1361,7 @@
 	$args = array_slice( func_get_args(), 2 );
 	$args = array_merge( array( $capability ), $args );
 
-	return call_user_func_array( array( &$user, 'has_cap' ), $args );
+	return call_user_func_array( array( $user, 'has_cap' ), $args );
 }
 
 /**
@@ -1367,12 +1447,12 @@
  * @return bool True if the user is a site admin.
  */
 function is_super_admin( $user_id = false ) {
-	if ( $user_id )
-		$user = new WP_User( $user_id );
+	if ( ! $user_id || $user_id == get_current_user_id() )
+		$user = wp_get_current_user();
 	else
-		$user = wp_get_current_user();
+		$user = get_userdata( $user_id );
 
-	if ( ! $user->exists() )
+	if ( ! $user || ! $user->exists() )
 		return false;
 
 	if ( is_multisite() ) {
--- a/web/wp-includes/category-template.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/category-template.php	Wed Dec 19 17:46:52 2012 -0800
@@ -41,7 +41,7 @@
  */
 function get_category_parents( $id, $link = false, $separator = '/', $nicename = false, $visited = array() ) {
 	$chain = '';
-	$parent = &get_category( $id );
+	$parent = get_category( $id );
 	if ( is_wp_error( $parent ) )
 		return $parent;
 
@@ -73,7 +73,7 @@
  */
 function get_the_category( $id = false ) {
 	$categories = get_the_terms( $id, 'category' );
-	if ( ! $categories )
+	if ( ! $categories || is_wp_error( $categories ) )
 		$categories = array();
 
 	$categories = array_values( $categories );
@@ -135,7 +135,7 @@
  */
 function get_the_category_by_ID( $cat_ID ) {
 	$cat_ID = (int) $cat_ID;
-	$category = &get_category( $cat_ID );
+	$category = get_category( $cat_ID );
 	if ( is_wp_error( $category ) )
 		return $category;
 	return $category->name;
@@ -1054,29 +1054,21 @@
  *
  * @since 2.5.0
  *
- * @param int $id Post ID.
+ * @param mixed $post Post ID or object.
  * @param string $taxonomy Taxonomy name.
  * @return array|bool False on failure. Array of term objects on success.
  */
-function get_the_terms( $id, $taxonomy ) {
-	global $post;
-
- 	$id = (int) $id;
+function get_the_terms( $post, $taxonomy ) {
+	if ( ! $post = get_post( $post ) )
+		return false;
 
-	if ( !$id ) {
-		if ( empty( $post->ID ) )
-			return false;
-		else
-			$id = (int) $post->ID;
+	$terms = get_object_term_cache( $post->ID, $taxonomy );
+	if ( false === $terms ) {
+		$terms = wp_get_object_terms( $post->ID, $taxonomy );
+		wp_cache_add($post->ID, $terms, $taxonomy . '_relationships');
 	}
 
-	$terms = get_object_term_cache( $id, $taxonomy );
-	if ( false === $terms ) {
-		$terms = wp_get_object_terms( $id, $taxonomy );
-		wp_cache_add($id, $terms, $taxonomy . '_relationships');
-	}
-
-	$terms = apply_filters( 'get_the_terms', $terms, $id, $taxonomy );
+	$terms = apply_filters( 'get_the_terms', $terms, $post->ID, $taxonomy );
 
 	if ( empty( $terms ) )
 		return false;
--- a/web/wp-includes/category.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/category.php	Wed Dec 19 17:46:52 2012 -0800
@@ -36,7 +36,7 @@
  * @param string|array $args Optional. Change the defaults retrieving categories.
  * @return array List of categories.
  */
-function &get_categories( $args = '' ) {
+function get_categories( $args = '' ) {
 	$defaults = array( 'taxonomy' => 'category' );
 	$args = wp_parse_args( $args, $defaults );
 
@@ -78,7 +78,7 @@
  * @param string $filter Optional. Default is raw or no WordPress defined filter will applied.
  * @return mixed Category data in type defined by $output parameter.
  */
-function &get_category( $category, $output = OBJECT, $filter = 'raw' ) {
+function get_category( $category, $output = OBJECT, $filter = 'raw' ) {
 	$category = get_term( $category, 'category', $output, $filter );
 	if ( is_wp_error( $category ) )
 		return $category;
@@ -165,10 +165,10 @@
  *
  * @since 1.0.0
  *
- * @param string $cat_name Optional. Default is 'General' and can be any category name.
+ * @param string $cat_name Category name.
  * @return int 0, if failure and ID of category on success.
  */
-function get_cat_ID( $cat_name='General' ) {
+function get_cat_ID( $cat_name ) {
 	$cat = get_term_by( 'name', $cat_name, 'category' );
 	if ( $cat )
 		return $cat->term_id;
@@ -185,7 +185,7 @@
  */
 function get_cat_name( $cat_id ) {
 	$cat_id = (int) $cat_id;
-	$category = &get_category( $cat_id );
+	$category = get_category( $cat_id );
 	if ( ! $category || is_wp_error( $category ) )
 		return '';
 	return $category->name;
@@ -249,7 +249,7 @@
  * @param string|array $args Tag arguments to use when retrieving tags.
  * @return array List of tags.
  */
-function &get_tags( $args = '' ) {
+function get_tags( $args = '' ) {
 	$tags = get_terms( 'post_tag', $args );
 
 	if ( empty( $tags ) ) {
@@ -280,7 +280,7 @@
  * @param string $filter Optional. Default is raw or no WordPress defined filter will applied.
  * @return object|array Return type based on $output value.
  */
-function &get_tag( $tag, $output = OBJECT, $filter = 'raw' ) {
+function get_tag( $tag, $output = OBJECT, $filter = 'raw' ) {
 	return get_term( $tag, 'post_tag', $output, $filter );
 }
 
--- a/web/wp-includes/class-IXR.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/class-IXR.php	Wed Dec 19 17:46:52 2012 -0800
@@ -466,11 +466,18 @@
 
     function output($xml)
     {
-        $xml = '<?xml version="1.0"?>'."\n".$xml;
+        $charset = function_exists('get_option') ? get_option('blog_charset') : '';
+        if ($charset)
+            $xml = '<?xml version="1.0" encoding="'.$charset.'"?>'."\n".$xml;
+        else
+            $xml = '<?xml version="1.0"?>'."\n".$xml;
         $length = strlen($xml);
         header('Connection: close');
         header('Content-Length: '.$length);
-        header('Content-Type: text/xml');
+        if ($charset)
+            header('Content-Type: text/xml; charset='.$charset);
+        else
+            header('Content-Type: text/xml');
         header('Date: '.date('r'));
         echo $xml;
         exit;
--- a/web/wp-includes/class-feed.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/class-feed.php	Wed Dec 19 17:46:52 2012 -0800
@@ -85,10 +85,45 @@
 				$this->status_code = wp_remote_retrieve_response_code( $res );
 			}
 		} else {
-			if ( ! $this->body = file_get_contents($url) ) {
+			if ( ! file_exists($url) || ( ! $this->body = file_get_contents($url) ) ) {
 				$this->error = 'file_get_contents could not read the file';
 				$this->success = false;
 			}
 		}
 	}
 }
+
+/**
+ * WordPress SimplePie Sanitization Class
+ *
+ * Extension of the SimplePie_Sanitize class to use KSES, because
+ * we cannot universally count on DOMDocument being available
+ *
+ * @package WordPress
+ * @since 3.5.0
+ */
+class WP_SimplePie_Sanitize_KSES extends SimplePie_Sanitize {
+	public function sanitize( $data, $type, $base = '' ) {
+		$data = trim( $data );
+		if ( $type & SIMPLEPIE_CONSTRUCT_MAYBE_HTML ) {
+			if (preg_match('/(&(#(x[0-9a-fA-F]+|[0-9]+)|[a-zA-Z0-9]+)|<\/[A-Za-z][^\x09\x0A\x0B\x0C\x0D\x20\x2F\x3E]*' . SIMPLEPIE_PCRE_HTML_ATTRIBUTE . '>)/', $data)) {
+				$type |= SIMPLEPIE_CONSTRUCT_HTML;
+			}
+			else {
+				$type |= SIMPLEPIE_CONSTRUCT_TEXT;
+			}
+		}
+		if ( $type & SIMPLEPIE_CONSTRUCT_BASE64 ) {
+			$data = base64_decode( $data );
+		}
+		if ( $type & ( SIMPLEPIE_CONSTRUCT_HTML | SIMPLEPIE_CONSTRUCT_XHTML ) ) {
+			$data = wp_kses_post( $data );
+			if ( $this->output_encoding !== 'UTF-8' ) {
+				$data = $this->registry->call( 'Misc', 'change_encoding', array( $data, 'UTF-8', $this->output_encoding ) );
+			}
+			return $data;
+		} else {
+			return parent::sanitize( $data, $type, $base );
+		}
+	}
+}
--- a/web/wp-includes/class-http.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/class-http.php	Wed Dec 19 17:46:52 2012 -0800
@@ -169,21 +169,17 @@
 		if ( WP_Http_Encoding::is_available() )
 			$r['headers']['Accept-Encoding'] = WP_Http_Encoding::accept_encoding();
 
-		if ( empty($r['body']) ) {
-			$r['body'] = null;
-			// Some servers fail when sending content without the content-length header being set.
-			// Also, to fix another bug, we only send when doing POST and PUT and the content-length
-			// header isn't already set.
-			if ( ($r['method'] == 'POST' || $r['method'] == 'PUT') && ! isset( $r['headers']['Content-Length'] ) )
-				$r['headers']['Content-Length'] = 0;
-		} else {
+		if ( ( ! is_null( $r['body'] ) && '' != $r['body'] ) || 'POST' == $r['method'] || 'PUT' == $r['method'] ) {
 			if ( is_array( $r['body'] ) || is_object( $r['body'] ) ) {
 				$r['body'] = http_build_query( $r['body'], null, '&' );
+
 				if ( ! isset( $r['headers']['Content-Type'] ) )
 					$r['headers']['Content-Type'] = 'application/x-www-form-urlencoded; charset=' . get_option( 'blog_charset' );
-				$r['headers']['Content-Length'] = strlen( $r['body'] );
 			}
 
+			if ( '' === $r['body'] )
+				$r['body'] = null;
+
 			if ( ! isset( $r['headers']['Content-Length'] ) && ! isset( $r['headers']['content-length'] ) )
 				$r['headers']['Content-Length'] = strlen( $r['body'] );
 		}
@@ -200,7 +196,7 @@
 	 * @param array $args Request arguments
 	 * @param string $url URL to Request
 	 *
-	 * @return string|false Class name for the first transport that claims to support the request. False if no transport claims to support the request.
+	 * @return string|bool Class name for the first transport that claims to support the request. False if no transport claims to support the request.
 	 */
 	public function _get_first_available_transport( $args, $url = null ) {
 		$request_order = array( 'curl', 'streams', 'fsockopen' );
@@ -382,18 +378,18 @@
 
 			list($key, $value) = explode(':', $tempheader, 2);
 
-			if ( !empty( $value ) ) {
-				$key = strtolower( $key );
-				if ( isset( $newheaders[$key] ) ) {
-					if ( !is_array($newheaders[$key]) )
-						$newheaders[$key] = array($newheaders[$key]);
-					$newheaders[$key][] = trim( $value );
-				} else {
-					$newheaders[$key] = trim( $value );
-				}
-				if ( 'set-cookie' == $key )
-					$cookies[] = new WP_Http_Cookie( $value );
+			$key = strtolower( $key );
+			$value = trim( $value );
+
+			if ( isset( $newheaders[ $key ] ) ) {
+				if ( ! is_array( $newheaders[ $key ] ) )
+					$newheaders[$key] = array( $newheaders[ $key ] );
+				$newheaders[ $key ][] = $value;
+			} else {
+				$newheaders[ $key ] = $value;
 			}
+			if ( 'set-cookie' == $key )
+				$cookies[] = new WP_Http_Cookie( $value );
 		}
 
 		return array('response' => $response, 'headers' => $newheaders, 'cookies' => $cookies);
@@ -429,6 +425,8 @@
 	 * Based off the HTTP http_encoding_dechunk function. Does not support UTF-8. Does not support
 	 * returning footer headers. Shouldn't be too difficult to support it though.
 	 *
+	 * @link http://tools.ietf.org/html/rfc2616#section-19.4.6 Process for chunked decoding.
+	 *
 	 * @todo Add support for footer chunked headers.
 	 * @access public
 	 * @since 2.7.0
@@ -806,7 +804,7 @@
 		if ( ! function_exists( 'fsockopen' ) )
 			return false;
 
-		if ( false !== ($option = get_option( 'disable_fsockopen' )) && time()-$option < 43200 ) // 12 hours
+		if ( false !== ( $option = get_option( 'disable_fsockopen' ) ) && time() - $option < 12 * HOUR_IN_SECONDS )
 			return false;
 
 		$is_ssl = isset( $args['ssl'] ) && $args['ssl'];
@@ -912,7 +910,7 @@
 				$arrContext['http']['header'] .= $proxy->authentication_header() . "\r\n";
 		}
 
-		if ( ! empty($r['body'] ) )
+		if ( ! is_null( $r['body'] ) )
 			$arrContext['http']['content'] = $r['body'];
 
 		$context = stream_context_create($arrContext);
@@ -1105,13 +1103,13 @@
 				break;
 			default:
 				curl_setopt( $handle, CURLOPT_CUSTOMREQUEST, $r['method'] );
-				if ( ! empty( $r['body'] ) )
+				if ( ! is_null( $r['body'] ) )
 					curl_setopt( $handle, CURLOPT_POSTFIELDS, $r['body'] );
 				break;
 		}
 
 		if ( true === $r['blocking'] )
-			curl_setopt( $handle, CURLOPT_HEADERFUNCTION, array( &$this, 'stream_headers' ) );
+			curl_setopt( $handle, CURLOPT_HEADERFUNCTION, array( $this, 'stream_headers' ) );
 
 		curl_setopt( $handle, CURLOPT_HEADER, false );
 
@@ -1392,6 +1390,10 @@
 
 		$home = parse_url( get_option('siteurl') );
 
+		$result = apply_filters( 'pre_http_send_through_proxy', null, $uri, $check, $home );
+		if ( ! is_null( $result ) )
+			return $result;
+
 		if ( $check['host'] == 'localhost' || $check['host'] == $home['host'] )
 			return false;
 
@@ -1546,7 +1548,7 @@
 	 */
 	function test( $url ) {
 		// Expires - if expired then nothing else matters
-		if ( time() > $this->expires )
+		if ( isset( $this->expires ) && time() > $this->expires )
 			return false;
 
 		// Get details on the URL we're thinking about sending to
@@ -1586,7 +1588,7 @@
 	 * @return string Header encoded cookie name and value.
 	 */
 	function getHeaderValue() {
-		if ( empty( $this->name ) || empty( $this->value ) )
+		if ( ! isset( $this->name ) || ! isset( $this->value ) )
 			return '';
 
 		return $this->name . '=' . apply_filters( 'wp_http_cookie_value', $this->value, $this->name );
@@ -1673,7 +1675,7 @@
 	/**
 	 * Decompression of deflated string while staying compatible with the majority of servers.
 	 *
-	 * Certain Servers will return deflated data with headers which PHP's gziniflate()
+	 * Certain Servers will return deflated data with headers which PHP's gzinflate()
 	 * function cannot handle out of the box. The following function has been created from
 	 * various snippets on the gzinflate() PHP documentation.
 	 *
--- a/web/wp-includes/class-oembed.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/class-oembed.php	Wed Dec 19 17:46:52 2012 -0800
@@ -30,28 +30,31 @@
 		// The WP_Embed class disables discovery for non-unfiltered_html users, so only providers in this array will be used for them.
 		// Add to this list using the wp_oembed_add_provider() function (see its PHPDoc for details).
 		$this->providers = apply_filters( 'oembed_providers', array(
-			'#http://(www\.)?youtube.com/watch.*#i'              => array( 'http://www.youtube.com/oembed',                     true  ),
+			'#https?://(www\.)?youtube.com/watch.*#i'            => array( 'http://www.youtube.com/oembed',                     true  ),
 			'http://youtu.be/*'                                  => array( 'http://www.youtube.com/oembed',                     false ),
 			'http://blip.tv/*'                                   => array( 'http://blip.tv/oembed/',                            false ),
-			'#http://(www\.)?vimeo\.com/.*#i'                    => array( 'http://vimeo.com/api/oembed.{format}',              true  ),
-			'#http://(www\.)?dailymotion\.com/.*#i'              => array( 'http://www.dailymotion.com/services/oembed',        true  ),
-			'#http://(www\.)?flickr\.com/.*#i'                   => array( 'http://www.flickr.com/services/oembed/',            true  ),
-			'#http://(.+\.)?smugmug\.com/.*#i'                   => array( 'http://api.smugmug.com/services/oembed/',           true  ),
-			'#http://(www\.)?hulu\.com/watch/.*#i'               => array( 'http://www.hulu.com/api/oembed.{format}',           true  ),
-			'#http://(www\.)?viddler\.com/.*#i'                  => array( 'http://lab.viddler.com/services/oembed/',           true  ),
+			'#https?://(www\.)?vimeo\.com/.*#i'                  => array( 'http://vimeo.com/api/oembed.{format}',              true  ),
+			'#https?://(www\.)?dailymotion\.com/.*#i'            => array( 'http://www.dailymotion.com/services/oembed',        true  ),
+			'#https?://(www\.)?flickr\.com/.*#i'                 => array( 'http://www.flickr.com/services/oembed/',            true  ),
+			'#https?://(.+\.)?smugmug\.com/.*#i'                 => array( 'http://api.smugmug.com/services/oembed/',           true  ),
+			'#https?://(www\.)?hulu\.com/watch/.*#i'             => array( 'http://www.hulu.com/api/oembed.{format}',           true  ),
+			'#https?://(www\.)?viddler\.com/.*#i'                => array( 'http://lab.viddler.com/services/oembed/',           true  ),
 			'http://qik.com/*'                                   => array( 'http://qik.com/api/oembed.{format}',                false ),
 			'http://revision3.com/*'                             => array( 'http://revision3.com/api/oembed/',                  false ),
 			'http://i*.photobucket.com/albums/*'                 => array( 'http://photobucket.com/oembed',                     false ),
 			'http://gi*.photobucket.com/groups/*'                => array( 'http://photobucket.com/oembed',                     false ),
-			'#http://(www\.)?scribd\.com/.*#i'                   => array( 'http://www.scribd.com/services/oembed',             true  ),
+			'#https?://(www\.)?scribd\.com/.*#i'                 => array( 'http://www.scribd.com/services/oembed',             true  ),
 			'http://wordpress.tv/*'                              => array( 'http://wordpress.tv/oembed/',                       false ),
-			'#http://(.+\.)?polldaddy\.com/.*#i'                 => array( 'http://polldaddy.com/oembed/',                      true  ),
-			'#http://(www\.)?funnyordie\.com/videos/.*#i'        => array( 'http://www.funnyordie.com/oembed',                  true  ),
+			'#https?://(.+\.)?polldaddy\.com/.*#i'               => array( 'http://polldaddy.com/oembed/',                      true  ),
+			'#https?://(www\.)?funnyordie\.com/videos/.*#i'      => array( 'http://www.funnyordie.com/oembed',                  true  ),
 			'#https?://(www\.)?twitter.com/.+?/status(es)?/.*#i' => array( 'http://api.twitter.com/1/statuses/oembed.{format}', true  ),
+ 			'#https?://(www\.)?soundcloud\.com/.*#i'             => array( 'http://soundcloud.com/oembed',                      true  ),
+			'#https?://(www\.)?slideshare.net/*#'                => array( 'http://www.slideshare.net/api/oembed/2',            true  ),
+			'#http://instagr(\.am|am\.com)/p/.*#i'               => array( 'http://api.instagram.com/oembed',                   true  ),
 		) );
 
 		// Fix any embeds that contain new lines in the middle of the HTML which breaks wpautop().
-		add_filter( 'oembed_dataparse', array(&$this, '_strip_newlines'), 10, 3 );
+		add_filter( 'oembed_dataparse', array($this, '_strip_newlines'), 10, 3 );
 	}
 
 	/**
@@ -75,8 +78,10 @@
 			list( $providerurl, $regex ) = $data;
 
 			// Turn the asterisk-type provider URLs into regex
-			if ( !$regex )
+			if ( !$regex ) {
 				$matchmask = '#' . str_replace( '___wildcard___', '(.+)', preg_quote( str_replace( '*', '___wildcard___', $matchmask ), '#' ) ) . '#i';
+				$matchmask = preg_replace( '|^#http\\\://|', '#https?\://', $matchmask );
+			}
 
 			if ( preg_match( $matchmask, $url ) ) {
 				$provider = str_replace( '{format}', 'json', $providerurl ); // JSON is easier to deal with than XML
@@ -163,6 +168,8 @@
 		$provider = add_query_arg( 'maxheight', (int) $args['height'], $provider );
 		$provider = add_query_arg( 'url', urlencode($url), $provider );
 
+		$provider = apply_filters( 'oembed_fetch_url', $provider, $url, $args );
+
 		foreach( array( 'json', 'xml' ) as $format ) {
 			$result = $this->_fetch_with_format( $provider, $format );
 			if ( is_wp_error( $result ) && 'not-implemented' == $result->get_error_code() )
@@ -209,20 +216,39 @@
 	 * @access private
 	 */
 	function _parse_xml( $response_body ) {
-		if ( function_exists('simplexml_load_string') ) {
-			$errors = libxml_use_internal_errors( 'true' );
-			$data = simplexml_load_string( $response_body );
-			libxml_use_internal_errors( $errors );
-			if ( ! is_object( $data ) )
-				return false;
+		if ( !function_exists('simplexml_load_string') ) {
+			return false;
+		}
+
+		if ( ! class_exists( 'DOMDocument' ) )
+			return false;
+
+		$errors = libxml_use_internal_errors( true );
+		$old_value = null;
+		if ( function_exists( 'libxml_disable_entity_loader' ) ) {
+			$old_value = libxml_disable_entity_loader( true );
+		}
+
+		$dom = new DOMDocument;
+		$success = $dom->loadXML( $response_body );
 
-			$return = new stdClass;
-			foreach ( $data as $key => $value )
-				$return->$key = (string) $value;
+		if ( ! is_null( $old_value ) ) {
+			libxml_disable_entity_loader( $old_value );
+		}
+		libxml_use_internal_errors( $errors );
+
+		if ( ! $success || isset( $dom->doctype ) ) {
+			return false;
+		}
 
-			return $return;
-		}
-		return false;
+		$data = simplexml_import_dom( $dom );
+		if ( ! is_object( $data ) )
+			return false;
+
+		$return = new stdClass;
+		foreach ( $data as $key => $value )
+			$return->$key = (string) $value;
+		return $return;
 	}
 
 	/**
@@ -296,7 +322,7 @@
  *
  * @return WP_oEmbed object.
  */
-function &_wp_oembed_get_object() {
+function _wp_oembed_get_object() {
 	static $wp_oembed;
 
 	if ( is_null($wp_oembed) )
--- a/web/wp-includes/class-simplepie.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/class-simplepie.php	Wed Dec 19 17:46:52 2012 -0800
@@ -1,12 +1,71 @@
 <?php
 if ( ! class_exists( 'SimplePie' ) ) :
+
+// Load classes we will need.
+require ABSPATH . WPINC . '/SimplePie/Misc.php';
+require ABSPATH . WPINC . '/SimplePie/Cache.php';
+require ABSPATH . WPINC . '/SimplePie/File.php';
+require ABSPATH . WPINC . '/SimplePie/Sanitize.php';
+require ABSPATH . WPINC . '/SimplePie/Registry.php';
+require ABSPATH . WPINC . '/SimplePie/IRI.php';
+require ABSPATH . WPINC . '/SimplePie/Locator.php';
+require ABSPATH . WPINC . '/SimplePie/Content/Type/Sniffer.php';
+require ABSPATH . WPINC . '/SimplePie/XML/Declaration/Parser.php';
+require ABSPATH . WPINC . '/SimplePie/Parser.php';
+require ABSPATH . WPINC . '/SimplePie/Item.php';
+require ABSPATH . WPINC . '/SimplePie/Parse/Date.php';
+require ABSPATH . WPINC . '/SimplePie/Author.php';
+
+/**
+ * WordPress autoloader for SimplePie.
+ *
+ * @since 3.5.0
+ */
+function wp_simplepie_autoload( $class ) {
+	if ( 0 !== strpos( $class, 'SimplePie_' ) )
+		return;
+
+	$file = ABSPATH . WPINC . '/' . str_replace( '_', '/', $class ) . '.php';
+	include $file;
+}
+
+if ( function_exists( 'spl_autoload_register' ) ) {
+	/**
+	 * We autoload classes we may not need.
+	 *
+	 * If SPL is disabled, we load all of SimplePie manually.
+	 *
+	 * Core.php is not loaded manually, because SimplePie_Core (a deprecated class)
+	 * was never included in WordPress core.
+	 */
+	spl_autoload_register( 'wp_simplepie_autoload' );
+} else {
+	require ABSPATH . WPINC . '/SimplePie/Cache/Base.php';
+	require ABSPATH . WPINC . '/SimplePie/Cache/DB.php';
+	require ABSPATH . WPINC . '/SimplePie/Cache/File.php';
+	require ABSPATH . WPINC . '/SimplePie/Cache/Memcache.php';
+	require ABSPATH . WPINC . '/SimplePie/Cache/MySQL.php';
+	require ABSPATH . WPINC . '/SimplePie/Caption.php';
+	require ABSPATH . WPINC . '/SimplePie/Category.php';
+	require ABSPATH . WPINC . '/SimplePie/Copyright.php';
+	require ABSPATH . WPINC . '/SimplePie/Credit.php';
+	require ABSPATH . WPINC . '/SimplePie/Decode/HTML/Entities.php';
+	require ABSPATH . WPINC . '/SimplePie/Enclosure.php';
+	require ABSPATH . WPINC . '/SimplePie/gzdecode.php';
+	require ABSPATH . WPINC . '/SimplePie/HTTP/Parser.php';
+	require ABSPATH . WPINC . '/SimplePie/Net/IPv6.php';
+	require ABSPATH . WPINC . '/SimplePie/Rating.php';
+	require ABSPATH . WPINC . '/SimplePie/Restriction.php';
+	require ABSPATH . WPINC . '/SimplePie/Source.php';
+}
+
 /**
  * SimplePie
  *
  * A PHP-Based RSS and Atom Feed Framework.
  * Takes the hard work out of managing a complete RSS/Atom solution.
  *
- * Copyright (c) 2004-2011, Ryan Parman, Geoffrey Sneddon, Ryan McCue, and contributors
+ * Copyright (c) 2004-2012, Ryan Parman, Geoffrey Sneddon, Ryan McCue, and contributors
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without modification, are
@@ -34,15 +93,13 @@
  * POSSIBILITY OF SUCH DAMAGE.
  *
  * @package SimplePie
- * @version 1.2.1
- * @copyright 2004-2011 Ryan Parman, Geoffrey Sneddon, Ryan McCue
+ * @version 1.3.1
+ * @copyright 2004-2012 Ryan Parman, Geoffrey Sneddon, Ryan McCue
  * @author Ryan Parman
  * @author Geoffrey Sneddon
  * @author Ryan McCue
  * @link http://simplepie.org/ SimplePie
- * @link http://simplepie.org/support/ Please submit all bug reports and feature requests to the SimplePie forums
  * @license http://www.opensource.org/licenses/bsd-license.php BSD License
- * @todo phpDoc comments
  */
 
 /**
@@ -53,12 +110,13 @@
 /**
  * SimplePie Version
  */
-define('SIMPLEPIE_VERSION', '1.2.1');
+define('SIMPLEPIE_VERSION', '1.3.1');
 
 /**
  * SimplePie Build
+ * @todo Hardcode for release (there's no need to have to call SimplePie_Misc::get_build() only every load of simplepie.inc)
  */
-define('SIMPLEPIE_BUILD', '20111015034325');
+define('SIMPLEPIE_BUILD', gmdate('YmdHis', SimplePie_Misc::get_build()));
 
 /**
  * SimplePie Website URL
@@ -335,11 +393,31 @@
 define('SIMPLEPIE_NAMESPACE_MEDIARSS', 'http://search.yahoo.com/mrss/');
 
 /**
- * Wrong Media RSS Namespace
+ * Wrong Media RSS Namespace. Caused by a long-standing typo in the spec.
  */
 define('SIMPLEPIE_NAMESPACE_MEDIARSS_WRONG', 'http://search.yahoo.com/mrss');
 
 /**
+ * Wrong Media RSS Namespace #2. New namespace introduced in Media RSS 1.5.
+ */
+define('SIMPLEPIE_NAMESPACE_MEDIARSS_WRONG2', 'http://video.search.yahoo.com/mrss');
+
+/**
+ * Wrong Media RSS Namespace #3. A possible typo of the Media RSS 1.5 namespace.
+ */
+define('SIMPLEPIE_NAMESPACE_MEDIARSS_WRONG3', 'http://video.search.yahoo.com/mrss/');
+
+/**
+ * Wrong Media RSS Namespace #4. New spec location after the RSS Advisory Board takes it over, but not a valid namespace.
+ */
+define('SIMPLEPIE_NAMESPACE_MEDIARSS_WRONG4', 'http://www.rssboard.org/media-rss');
+
+/**
+ * Wrong Media RSS Namespace #5. A possible typo of the RSS Advisory Board URL.
+ */
+define('SIMPLEPIE_NAMESPACE_MEDIARSS_WRONG5', 'http://www.rssboard.org/media-rss/');
+
+/**
  * iTunes RSS Namespace
  */
 define('SIMPLEPIE_NAMESPACE_ITUNES', 'http://www.itunes.com/dtds/podcast-1.0.dtd');
@@ -355,11 +433,6 @@
 define('SIMPLEPIE_IANA_LINK_RELATIONS_REGISTRY', 'http://www.iana.org/assignments/relation/');
 
 /**
- * Whether we're running on PHP5
- */
-define('SIMPLEPIE_PHP5', version_compare(PHP_VERSION, '5.0.0', '>='));
-
-/**
  * No file source
  */
 define('SIMPLEPIE_FILE_SOURCE_NONE', 0);
@@ -389,10 +462,13 @@
  */
 define('SIMPLEPIE_FILE_SOURCE_FILE_GET_CONTENTS', 16);
 
+
+
 /**
  * SimplePie
  *
  * @package SimplePie
+ * @subpackage API
  */
 class SimplePie
 {
@@ -400,55 +476,55 @@
 	 * @var array Raw data
 	 * @access private
 	 */
-	var $data = array();
+	public $data = array();
 
 	/**
 	 * @var mixed Error string
 	 * @access private
 	 */
-	var $error;
+	public $error;
 
 	/**
 	 * @var object Instance of SimplePie_Sanitize (or other class)
 	 * @see SimplePie::set_sanitize_class()
 	 * @access private
 	 */
-	var $sanitize;
+	public $sanitize;
 
 	/**
 	 * @var string SimplePie Useragent
 	 * @see SimplePie::set_useragent()
 	 * @access private
 	 */
-	var $useragent = SIMPLEPIE_USERAGENT;
+	public $useragent = SIMPLEPIE_USERAGENT;
 
 	/**
 	 * @var string Feed URL
 	 * @see SimplePie::set_feed_url()
 	 * @access private
 	 */
-	var $feed_url;
+	public $feed_url;
 
 	/**
 	 * @var object Instance of SimplePie_File to use as a feed
 	 * @see SimplePie::set_file()
 	 * @access private
 	 */
-	var $file;
+	public $file;
 
 	/**
 	 * @var string Raw feed data
 	 * @see SimplePie::set_raw_data()
 	 * @access private
 	 */
-	var $raw_data;
+	public $raw_data;
 
 	/**
 	 * @var int Timeout for fetching remote files
 	 * @see SimplePie::set_timeout()
 	 * @access private
 	 */
-	var $timeout = 10;
+	public $timeout = 10;
 
 	/**
 	 * @var bool Forces fsockopen() to be used for remote files instead
@@ -456,7 +532,7 @@
 	 * @see SimplePie::force_fsockopen()
 	 * @access private
 	 */
-	var $force_fsockopen = false;
+	public $force_fsockopen = false;
 
 	/**
 	 * @var bool Force the given data/URL to be treated as a feed no matter what
@@ -464,56 +540,49 @@
 	 * @see SimplePie::force_feed()
 	 * @access private
 	 */
-	var $force_feed = false;
-
-	/**
-	 * @var bool Enable/Disable XML dump
-	 * @see SimplePie::enable_xml_dump()
-	 * @access private
-	 */
-	var $xml_dump = false;
+	public $force_feed = false;
 
 	/**
 	 * @var bool Enable/Disable Caching
 	 * @see SimplePie::enable_cache()
 	 * @access private
 	 */
-	var $cache = true;
+	public $cache = true;
 
 	/**
 	 * @var int Cache duration (in seconds)
 	 * @see SimplePie::set_cache_duration()
 	 * @access private
 	 */
-	var $cache_duration = 3600;
+	public $cache_duration = 3600;
 
 	/**
 	 * @var int Auto-discovery cache duration (in seconds)
 	 * @see SimplePie::set_autodiscovery_cache_duration()
 	 * @access private
 	 */
-	var $autodiscovery_cache_duration = 604800; // 7 Days.
+	public $autodiscovery_cache_duration = 604800; // 7 Days.
 
 	/**
 	 * @var string Cache location (relative to executing script)
 	 * @see SimplePie::set_cache_location()
 	 * @access private
 	 */
-	var $cache_location = './cache';
+	public $cache_location = './cache';
 
 	/**
 	 * @var string Function that creates the cache filename
 	 * @see SimplePie::set_cache_name_function()
 	 * @access private
 	 */
-	var $cache_name_function = 'md5';
+	public $cache_name_function = 'md5';
 
 	/**
 	 * @var bool Reorder feed by date descending
 	 * @see SimplePie::enable_order_by_date()
 	 * @access private
 	 */
-	var $order_by_date = true;
+	public $order_by_date = true;
 
 	/**
 	 * @var mixed Force input encoding to be set to the follow value
@@ -521,246 +590,132 @@
 	 * @see SimplePie::set_input_encoding()
 	 * @access private
 	 */
-	var $input_encoding = false;
+	public $input_encoding = false;
 
 	/**
 	 * @var int Feed Autodiscovery Level
 	 * @see SimplePie::set_autodiscovery_level()
 	 * @access private
 	 */
-	var $autodiscovery = SIMPLEPIE_LOCATOR_ALL;
-
-	/**
-	 * @var string Class used for caching feeds
-	 * @see SimplePie::set_cache_class()
-	 * @access private
-	 */
-	var $cache_class = 'SimplePie_Cache';
-
-	/**
-	 * @var string Class used for locating feeds
-	 * @see SimplePie::set_locator_class()
-	 * @access private
-	 */
-	var $locator_class = 'SimplePie_Locator';
-
-	/**
-	 * @var string Class used for parsing feeds
-	 * @see SimplePie::set_parser_class()
-	 * @access private
-	 */
-	var $parser_class = 'SimplePie_Parser';
-
-	/**
-	 * @var string Class used for fetching feeds
-	 * @see SimplePie::set_file_class()
-	 * @access private
-	 */
-	var $file_class = 'SimplePie_File';
-
-	/**
-	 * @var string Class used for items
-	 * @see SimplePie::set_item_class()
-	 * @access private
-	 */
-	var $item_class = 'SimplePie_Item';
-
-	/**
-	 * @var string Class used for authors
-	 * @see SimplePie::set_author_class()
-	 * @access private
-	 */
-	var $author_class = 'SimplePie_Author';
-
-	/**
-	 * @var string Class used for categories
-	 * @see SimplePie::set_category_class()
-	 * @access private
-	 */
-	var $category_class = 'SimplePie_Category';
+	public $autodiscovery = SIMPLEPIE_LOCATOR_ALL;
 
 	/**
-	 * @var string Class used for enclosures
-	 * @see SimplePie::set_enclosures_class()
-	 * @access private
-	 */
-	var $enclosure_class = 'SimplePie_Enclosure';
-
-	/**
-	 * @var string Class used for Media RSS <media:text> captions
-	 * @see SimplePie::set_caption_class()
-	 * @access private
-	 */
-	var $caption_class = 'SimplePie_Caption';
-
-	/**
-	 * @var string Class used for Media RSS <media:copyright>
-	 * @see SimplePie::set_copyright_class()
-	 * @access private
-	 */
-	var $copyright_class = 'SimplePie_Copyright';
-
-	/**
-	 * @var string Class used for Media RSS <media:credit>
-	 * @see SimplePie::set_credit_class()
-	 * @access private
+	 * Class registry object
+	 *
+	 * @var SimplePie_Registry
 	 */
-	var $credit_class = 'SimplePie_Credit';
-
-	/**
-	 * @var string Class used for Media RSS <media:rating>
-	 * @see SimplePie::set_rating_class()
-	 * @access private
-	 */
-	var $rating_class = 'SimplePie_Rating';
-
-	/**
-	 * @var string Class used for Media RSS <media:restriction>
-	 * @see SimplePie::set_restriction_class()
-	 * @access private
-	 */
-	var $restriction_class = 'SimplePie_Restriction';
-
-	/**
-	 * @var string Class used for content-type sniffing
-	 * @see SimplePie::set_content_type_sniffer_class()
-	 * @access private
-	 */
-	var $content_type_sniffer_class = 'SimplePie_Content_Type_Sniffer';
-
-	/**
-	 * @var string Class used for item sources.
-	 * @see SimplePie::set_source_class()
-	 * @access private
-	 */
-	var $source_class = 'SimplePie_Source';
-
-	/**
-	 * @var mixed Set javascript query string parameter (false, or
-	 * anything type-cast to false, disables this feature)
-	 * @see SimplePie::set_javascript()
-	 * @access private
-	 */
-	var $javascript = 'js';
+	public $registry;
 
 	/**
 	 * @var int Maximum number of feeds to check with autodiscovery
 	 * @see SimplePie::set_max_checked_feeds()
 	 * @access private
 	 */
-	var $max_checked_feeds = 10;
+	public $max_checked_feeds = 10;
 
 	/**
 	 * @var array All the feeds found during the autodiscovery process
 	 * @see SimplePie::get_all_discovered_feeds()
 	 * @access private
 	 */
-	var $all_discovered_feeds = array();
-
-	/**
-	 * @var string Web-accessible path to the handler_favicon.php file.
-	 * @see SimplePie::set_favicon_handler()
-	 * @access private
-	 */
-	var $favicon_handler = '';
+	public $all_discovered_feeds = array();
 
 	/**
 	 * @var string Web-accessible path to the handler_image.php file.
 	 * @see SimplePie::set_image_handler()
 	 * @access private
 	 */
-	var $image_handler = '';
+	public $image_handler = '';
 
 	/**
 	 * @var array Stores the URLs when multiple feeds are being initialized.
 	 * @see SimplePie::set_feed_url()
 	 * @access private
 	 */
-	var $multifeed_url = array();
+	public $multifeed_url = array();
 
 	/**
 	 * @var array Stores SimplePie objects when multiple feeds initialized.
 	 * @access private
 	 */
-	var $multifeed_objects = array();
+	public $multifeed_objects = array();
 
 	/**
 	 * @var array Stores the get_object_vars() array for use with multifeeds.
 	 * @see SimplePie::set_feed_url()
 	 * @access private
 	 */
-	var $config_settings = null;
+	public $config_settings = null;
 
 	/**
 	 * @var integer Stores the number of items to return per-feed with multifeeds.
 	 * @see SimplePie::set_item_limit()
 	 * @access private
 	 */
-	var $item_limit = 0;
+	public $item_limit = 0;
 
 	/**
 	 * @var array Stores the default attributes to be stripped by strip_attributes().
 	 * @see SimplePie::strip_attributes()
 	 * @access private
 	 */
-	var $strip_attributes = array('bgsound', 'class', 'expr', 'id', 'style', 'onclick', 'onerror', 'onfinish', 'onmouseover', 'onmouseout', 'onfocus', 'onblur', 'lowsrc', 'dynsrc');
+	public $strip_attributes = array('bgsound', 'class', 'expr', 'id', 'style', 'onclick', 'onerror', 'onfinish', 'onmouseover', 'onmouseout', 'onfocus', 'onblur', 'lowsrc', 'dynsrc');
 
 	/**
 	 * @var array Stores the default tags to be stripped by strip_htmltags().
 	 * @see SimplePie::strip_htmltags()
 	 * @access private
 	 */
-	var $strip_htmltags = array('base', 'blink', 'body', 'doctype', 'embed', 'font', 'form', 'frame', 'frameset', 'html', 'iframe', 'input', 'marquee', 'meta', 'noscript', 'object', 'param', 'script', 'style');
+	public $strip_htmltags = array('base', 'blink', 'body', 'doctype', 'embed', 'font', 'form', 'frame', 'frameset', 'html', 'iframe', 'input', 'marquee', 'meta', 'noscript', 'object', 'param', 'script', 'style');
 
 	/**
 	 * The SimplePie class contains feed level data and options
 	 *
-	 * There are two ways that you can create a new SimplePie object. The first
-	 * is by passing a feed URL as a parameter to the SimplePie constructor
-	 * (as well as optionally setting the cache location and cache expiry). This
-	 * will initialise the whole feed with all of the default settings, and you
-	 * can begin accessing methods and properties immediately.
+	 * To use SimplePie, create the SimplePie object with no parameters. You can
+	 * then set configuration options using the provided methods. After setting
+	 * them, you must initialise the feed using $feed->init(). At that point the
+	 * object's methods and properties will be available to you.
 	 *
-	 * The second way is to create the SimplePie object with no parameters
-	 * at all. This will enable you to set configuration options. After setting
-	 * them, you must initialise the feed using $feed->init(). At that point the
-	 * object's methods and properties will be available to you. This format is
-	 * what is used throughout this documentation.
+	 * Previously, it was possible to pass in the feed URL along with cache
+	 * options directly into the constructor. This has been removed as of 1.3 as
+	 * it caused a lot of confusion.
 	 *
-	 * @access public
 	 * @since 1.0 Preview Release
-	 * @param string $feed_url This is the URL you want to parse.
-	 * @param string $cache_location This is where you want the cache to be stored.
-	 * @param int $cache_duration This is the number of seconds that you want to store the cache file for.
 	 */
-	function SimplePie($feed_url = null, $cache_location = null, $cache_duration = null)
+	public function __construct()
 	{
-		// Other objects, instances created here so we can set options on them
-		$this->sanitize =& new SimplePie_Sanitize;
-
-		// Set options if they're passed to the constructor
-		if ($cache_location !== null)
+		if (version_compare(PHP_VERSION, '5.2', '<'))
 		{
-			$this->set_cache_location($cache_location);
+			trigger_error('PHP 4.x, 5.0 and 5.1 are no longer supported. Please upgrade to PHP 5.2 or newer.');
+			die();
 		}
 
-		if ($cache_duration !== null)
+		// Other objects, instances created here so we can set options on them
+		$this->sanitize = new SimplePie_Sanitize();
+		$this->registry = new SimplePie_Registry();
+
+		if (func_num_args() > 0)
 		{
-			$this->set_cache_duration($cache_duration);
-		}
+			$level = defined('E_USER_DEPRECATED') ? E_USER_DEPRECATED : E_USER_WARNING;
+			trigger_error('Passing parameters to the constructor is no longer supported. Please use set_feed_url(), set_cache_location(), and set_cache_location() directly.', $level);
 
-		// Only init the script if we're passed a feed URL
-		if ($feed_url !== null)
-		{
-			$this->set_feed_url($feed_url);
-			$this->init();
+			$args = func_get_args();
+			switch (count($args)) {
+				case 3:
+					$this->set_cache_duration($args[2]);
+				case 2:
+					$this->set_cache_location($args[1]);
+				case 1:
+					$this->set_feed_url($args[0]);
+					$this->init();
+			}
 		}
 	}
 
 	/**
 	 * Used for converting object to a string
 	 */
-	function __toString()
+	public function __toString()
 	{
 		return md5(serialize($this->data));
 	}
@@ -768,7 +723,7 @@
 	/**
 	 * Remove items that link back to this before destroying this object
 	 */
-	function __destruct()
+	public function __destruct()
 	{
 		if ((version_compare(PHP_VERSION, '5.3', '<') || !gc_enabled()) && !ini_get('zend.ze1_compatibility_mode'))
 		{
@@ -792,20 +747,21 @@
 	}
 
 	/**
-	 * Force the given data/URL to be treated as a feed no matter what it
-	 * appears like
+	 * Force the given data/URL to be treated as a feed
 	 *
-	 * @access public
+	 * This tells SimplePie to ignore the content-type provided by the server.
+	 * Be careful when using this option, as it will also disable autodiscovery.
+	 *
 	 * @since 1.1
 	 * @param bool $enable Force the given data/URL to be treated as a feed
 	 */
-	function force_feed($enable = false)
+	public function force_feed($enable = false)
 	{
 		$this->force_feed = (bool) $enable;
 	}
 
 	/**
-	 * This is the URL of the feed you want to parse.
+	 * Set the URL of the feed you want to parse
 	 *
 	 * This allows you to enter the URL of the feed you want to parse, or the
 	 * website you want to try to use auto-discovery on. This takes priority
@@ -815,37 +771,35 @@
 	 * of a string for the $url. Remember that with each additional feed comes
 	 * additional processing and resources.
 	 *
-	 * @access public
 	 * @since 1.0 Preview Release
-	 * @param mixed $url This is the URL (or array of URLs) that you want to parse.
-	 * @see SimplePie::set_raw_data()
+	 * @see set_raw_data()
+	 * @param string|array $url This is the URL (or array of URLs) that you want to parse.
 	 */
-	function set_feed_url($url)
+	public function set_feed_url($url)
 	{
+		$this->multifeed_url = array();
 		if (is_array($url))
 		{
-			$this->multifeed_url = array();
 			foreach ($url as $value)
 			{
-				$this->multifeed_url[] = SimplePie_Misc::fix_protocol($value, 1);
+				$this->multifeed_url[] = $this->registry->call('Misc', 'fix_protocol', array($value, 1));
 			}
 		}
 		else
 		{
-			$this->feed_url = SimplePie_Misc::fix_protocol($url, 1);
+			$this->feed_url = $this->registry->call('Misc', 'fix_protocol', array($url, 1));
 		}
 	}
 
 	/**
-	 * Provides an instance of SimplePie_File to use as a feed
+	 * Set an instance of {@see SimplePie_File} to use as a feed
 	 *
-	 * @access public
-	 * @param object &$file Instance of SimplePie_File (or subclass)
+	 * @param SimplePie_File &$file
 	 * @return bool True on success, false on failure
 	 */
-	function set_file(&$file)
+	public function set_file(&$file)
 	{
-		if (is_a($file, 'SimplePie_File'))
+		if ($file instanceof SimplePie_File)
 		{
 			$this->feed_url = $file->url;
 			$this->file =& $file;
@@ -855,138 +809,113 @@
 	}
 
 	/**
+	 * Set the raw XML data to parse
+	 *
 	 * Allows you to use a string of RSS/Atom data instead of a remote feed.
 	 *
 	 * If you have a feed available as a string in PHP, you can tell SimplePie
 	 * to parse that data string instead of a remote feed. Any set feed URL
 	 * takes precedence.
 	 *
-	 * @access public
 	 * @since 1.0 Beta 3
 	 * @param string $data RSS or Atom data as a string.
-	 * @see SimplePie::set_feed_url()
+	 * @see set_feed_url()
 	 */
-	function set_raw_data($data)
+	public function set_raw_data($data)
 	{
 		$this->raw_data = $data;
 	}
 
 	/**
-	 * Allows you to override the default timeout for fetching remote feeds.
+	 * Set the the default timeout for fetching remote feeds
 	 *
 	 * This allows you to change the maximum time the feed's server to respond
 	 * and send the feed back.
 	 *
-	 * @access public
 	 * @since 1.0 Beta 3
 	 * @param int $timeout The maximum number of seconds to spend waiting to retrieve a feed.
 	 */
-	function set_timeout($timeout = 10)
+	public function set_timeout($timeout = 10)
 	{
 		$this->timeout = (int) $timeout;
 	}
 
 	/**
-	 * Forces SimplePie to use fsockopen() instead of the preferred cURL
-	 * functions.
+	 * Force SimplePie to use fsockopen() instead of cURL
 	 *
-	 * @access public
 	 * @since 1.0 Beta 3
 	 * @param bool $enable Force fsockopen() to be used
 	 */
-	function force_fsockopen($enable = false)
+	public function force_fsockopen($enable = false)
 	{
 		$this->force_fsockopen = (bool) $enable;
 	}
 
 	/**
-	 * Outputs the raw XML content of the feed, after it has gone through
-	 * SimplePie's filters.
-	 *
-	 * Used only for debugging, this function will output the XML content as
-	 * text/xml. When SimplePie reads in a feed, it does a bit of cleaning up
-	 * before trying to parse it. Many parts of the feed are re-written in
-	 * memory, and in the end, you have a parsable feed. XML dump shows you the
-	 * actual XML that SimplePie tries to parse, which may or may not be very
-	 * different from the original feed.
-	 *
-	 * @access public
-	 * @since 1.0 Preview Release
-	 * @param bool $enable Enable XML dump
-	 */
-	function enable_xml_dump($enable = false)
-	{
-		$this->xml_dump = (bool) $enable;
-	}
-
-	/**
-	 * Enables/disables caching in SimplePie.
+	 * Enable/disable caching in SimplePie.
 	 *
 	 * This option allows you to disable caching all-together in SimplePie.
 	 * However, disabling the cache can lead to longer load times.
 	 *
-	 * @access public
 	 * @since 1.0 Preview Release
 	 * @param bool $enable Enable caching
 	 */
-	function enable_cache($enable = true)
+	public function enable_cache($enable = true)
 	{
 		$this->cache = (bool) $enable;
 	}
 
 	/**
-	 * Set the length of time (in seconds) that the contents of a feed
-	 * will be cached.
+	 * Set the length of time (in seconds) that the contents of a feed will be
+	 * cached
 	 *
-	 * @access public
-	 * @param int $seconds The feed content cache duration.
+	 * @param int $seconds The feed content cache duration
 	 */
-	function set_cache_duration($seconds = 3600)
+	public function set_cache_duration($seconds = 3600)
 	{
 		$this->cache_duration = (int) $seconds;
 	}
 
 	/**
-	 * Set the length of time (in seconds) that the autodiscovered feed
-	 * URL will be cached.
+	 * Set the length of time (in seconds) that the autodiscovered feed URL will
+	 * be cached
 	 *
-	 * @access public
 	 * @param int $seconds The autodiscovered feed URL cache duration.
 	 */
-	function set_autodiscovery_cache_duration($seconds = 604800)
+	public function set_autodiscovery_cache_duration($seconds = 604800)
 	{
 		$this->autodiscovery_cache_duration = (int) $seconds;
 	}
 
 	/**
-	 * Set the file system location where the cached files should be stored.
+	 * Set the file system location where the cached files should be stored
 	 *
-	 * @access public
 	 * @param string $location The file system location.
 	 */
-	function set_cache_location($location = './cache')
+	public function set_cache_location($location = './cache')
 	{
 		$this->cache_location = (string) $location;
 	}
 
 	/**
-	 * Determines whether feed items should be sorted into reverse chronological order.
+	 * Set whether feed items should be sorted into reverse chronological order
 	 *
-	 * @access public
 	 * @param bool $enable Sort as reverse chronological order.
 	 */
-	function enable_order_by_date($enable = true)
+	public function enable_order_by_date($enable = true)
 	{
 		$this->order_by_date = (bool) $enable;
 	}
 
 	/**
-	 * Allows you to override the character encoding reported by the feed.
+	 * Set the character encoding used to parse the feed
 	 *
-	 * @access public
-	 * @param string $encoding Character encoding.
+	 * This overrides the encoding reported by the feed, however it will fall
+	 * back to the normal encoding detection if the override fails
+	 *
+	 * @param string $encoding Character encoding
 	 */
-	function set_input_encoding($encoding = false)
+	public function set_input_encoding($encoding = false)
 	{
 		if ($encoding)
 		{
@@ -1001,7 +930,6 @@
 	/**
 	 * Set how much feed autodiscovery to do
 	 *
-	 * @access public
 	 * @see SIMPLEPIE_LOCATOR_NONE
 	 * @see SIMPLEPIE_LOCATOR_AUTODISCOVERY
 	 * @see SIMPLEPIE_LOCATOR_LOCAL_EXTENSION
@@ -1009,325 +937,168 @@
 	 * @see SIMPLEPIE_LOCATOR_REMOTE_EXTENSION
 	 * @see SIMPLEPIE_LOCATOR_REMOTE_BODY
 	 * @see SIMPLEPIE_LOCATOR_ALL
-	 * @param int $level Feed Autodiscovery Level (level can be a
-	 * combination of the above constants, see bitwise OR operator)
+	 * @param int $level Feed Autodiscovery Level (level can be a combination of the above constants, see bitwise OR operator)
 	 */
-	function set_autodiscovery_level($level = SIMPLEPIE_LOCATOR_ALL)
+	public function set_autodiscovery_level($level = SIMPLEPIE_LOCATOR_ALL)
 	{
 		$this->autodiscovery = (int) $level;
 	}
 
 	/**
-	 * Allows you to change which class SimplePie uses for caching.
+	 * Get the class registry
+	 *
+	 * Use this to override SimplePie's default classes
+	 * @see SimplePie_Registry
+	 * @return SimplePie_Registry
+	 */
+	public function &get_registry()
+	{
+		return $this->registry;
+	}
+
+	/**#@+
 	 * Useful when you are overloading or extending SimplePie's default classes.
 	 *
-	 * @access public
-	 * @param string $class Name of custom class.
-	 * @link http://php.net/manual/en/keyword.extends.php PHP4 extends documentation
+	 * @deprecated Use {@see get_registry()} instead
 	 * @link http://php.net/manual/en/language.oop5.basic.php#language.oop5.basic.extends PHP5 extends documentation
+	 * @param string $class Name of custom class
+	 * @return boolean True on success, false otherwise
 	 */
-	function set_cache_class($class = 'SimplePie_Cache')
+	/**
+	 * Set which class SimplePie uses for caching
+	 */
+	public function set_cache_class($class = 'SimplePie_Cache')
 	{
-		if (SimplePie_Misc::is_subclass_of($class, 'SimplePie_Cache'))
-		{
-			$this->cache_class = $class;
-			return true;
-		}
-		return false;
+		return $this->registry->register('Cache', $class, true);
 	}
 
 	/**
-	 * Allows you to change which class SimplePie uses for auto-discovery.
-	 * Useful when you are overloading or extending SimplePie's default classes.
-	 *
-	 * @access public
-	 * @param string $class Name of custom class.
-	 * @link http://php.net/manual/en/keyword.extends.php PHP4 extends documentation
-	 * @link http://php.net/manual/en/language.oop5.basic.php#language.oop5.basic.extends PHP5 extends documentation
+	 * Set which class SimplePie uses for auto-discovery
 	 */
-	function set_locator_class($class = 'SimplePie_Locator')
+	public function set_locator_class($class = 'SimplePie_Locator')
 	{
-		if (SimplePie_Misc::is_subclass_of($class, 'SimplePie_Locator'))
-		{
-			$this->locator_class = $class;
-			return true;
-		}
-		return false;
-	}
-
-	/**
-	 * Allows you to change which class SimplePie uses for XML parsing.
-	 * Useful when you are overloading or extending SimplePie's default classes.
-	 *
-	 * @access public
-	 * @param string $class Name of custom class.
-	 * @link http://php.net/manual/en/keyword.extends.php PHP4 extends documentation
-	 * @link http://php.net/manual/en/language.oop5.basic.php#language.oop5.basic.extends PHP5 extends documentation
-	 */
-	function set_parser_class($class = 'SimplePie_Parser')
-	{
-		if (SimplePie_Misc::is_subclass_of($class, 'SimplePie_Parser'))
-		{
-			$this->parser_class = $class;
-			return true;
-		}
-		return false;
+		return $this->registry->register('Locator', $class, true);
 	}
 
 	/**
-	 * Allows you to change which class SimplePie uses for remote file fetching.
-	 * Useful when you are overloading or extending SimplePie's default classes.
-	 *
-	 * @access public
-	 * @param string $class Name of custom class.
-	 * @link http://php.net/manual/en/keyword.extends.php PHP4 extends documentation
-	 * @link http://php.net/manual/en/language.oop5.basic.php#language.oop5.basic.extends PHP5 extends documentation
+	 * Set which class SimplePie uses for XML parsing
 	 */
-	function set_file_class($class = 'SimplePie_File')
+	public function set_parser_class($class = 'SimplePie_Parser')
 	{
-		if (SimplePie_Misc::is_subclass_of($class, 'SimplePie_File'))
-		{
-			$this->file_class = $class;
-			return true;
-		}
-		return false;
+		return $this->registry->register('Parser', $class, true);
 	}
 
 	/**
-	 * Allows you to change which class SimplePie uses for data sanitization.
-	 * Useful when you are overloading or extending SimplePie's default classes.
-	 *
-	 * @access public
-	 * @param string $class Name of custom class.
-	 * @link http://php.net/manual/en/keyword.extends.php PHP4 extends documentation
-	 * @link http://php.net/manual/en/language.oop5.basic.php#language.oop5.basic.extends PHP5 extends documentation
+	 * Set which class SimplePie uses for remote file fetching
 	 */
-	function set_sanitize_class($class = 'SimplePie_Sanitize')
+	public function set_file_class($class = 'SimplePie_File')
 	{
-		if (SimplePie_Misc::is_subclass_of($class, 'SimplePie_Sanitize'))
-		{
-			$this->sanitize =& new $class;
-			return true;
-		}
-		return false;
+		return $this->registry->register('File', $class, true);
 	}
 
 	/**
-	 * Allows you to change which class SimplePie uses for handling feed items.
-	 * Useful when you are overloading or extending SimplePie's default classes.
-	 *
-	 * @access public
-	 * @param string $class Name of custom class.
-	 * @link http://php.net/manual/en/keyword.extends.php PHP4 extends documentation
-	 * @link http://php.net/manual/en/language.oop5.basic.php#language.oop5.basic.extends PHP5 extends documentation
+	 * Set which class SimplePie uses for data sanitization
 	 */
-	function set_item_class($class = 'SimplePie_Item')
+	public function set_sanitize_class($class = 'SimplePie_Sanitize')
 	{
-		if (SimplePie_Misc::is_subclass_of($class, 'SimplePie_Item'))
-		{
-			$this->item_class = $class;
-			return true;
-		}
-		return false;
+		return $this->registry->register('Sanitize', $class, true);
 	}
 
 	/**
-	 * Allows you to change which class SimplePie uses for handling author data.
-	 * Useful when you are overloading or extending SimplePie's default classes.
-	 *
-	 * @access public
-	 * @param string $class Name of custom class.
-	 * @link http://php.net/manual/en/keyword.extends.php PHP4 extends documentation
-	 * @link http://php.net/manual/en/language.oop5.basic.php#language.oop5.basic.extends PHP5 extends documentation
+	 * Set which class SimplePie uses for handling feed items
 	 */
-	function set_author_class($class = 'SimplePie_Author')
+	public function set_item_class($class = 'SimplePie_Item')
 	{
-		if (SimplePie_Misc::is_subclass_of($class, 'SimplePie_Author'))
-		{
-			$this->author_class = $class;
-			return true;
-		}
-		return false;
+		return $this->registry->register('Item', $class, true);
 	}
 
 	/**
-	 * Allows you to change which class SimplePie uses for handling category data.
-	 * Useful when you are overloading or extending SimplePie's default classes.
-	 *
-	 * @access public
-	 * @param string $class Name of custom class.
-	 * @link http://php.net/manual/en/keyword.extends.php PHP4 extends documentation
-	 * @link http://php.net/manual/en/language.oop5.basic.php#language.oop5.basic.extends PHP5 extends documentation
+	 * Set which class SimplePie uses for handling author data
 	 */
-	function set_category_class($class = 'SimplePie_Category')
+	public function set_author_class($class = 'SimplePie_Author')
 	{
-		if (SimplePie_Misc::is_subclass_of($class, 'SimplePie_Category'))
-		{
-			$this->category_class = $class;
-			return true;
-		}
-		return false;
+		return $this->registry->register('Author', $class, true);
 	}
 
 	/**
-	 * Allows you to change which class SimplePie uses for feed enclosures.
-	 * Useful when you are overloading or extending SimplePie's default classes.
-	 *
-	 * @access public
-	 * @param string $class Name of custom class.
-	 * @link http://php.net/manual/en/keyword.extends.php PHP4 extends documentation
-	 * @link http://php.net/manual/en/language.oop5.basic.php#language.oop5.basic.extends PHP5 extends documentation
+	 * Set which class SimplePie uses for handling category data
 	 */
-	function set_enclosure_class($class = 'SimplePie_Enclosure')
+	public function set_category_class($class = 'SimplePie_Category')
 	{
-		if (SimplePie_Misc::is_subclass_of($class, 'SimplePie_Enclosure'))
-		{
-			$this->enclosure_class = $class;
-			return true;
-		}
-		return false;
+		return $this->registry->register('Category', $class, true);
 	}
 
 	/**
-	 * Allows you to change which class SimplePie uses for <media:text> captions
-	 * Useful when you are overloading or extending SimplePie's default classes.
-	 *
-	 * @access public
-	 * @param string $class Name of custom class.
-	 * @link http://php.net/manual/en/keyword.extends.php PHP4 extends documentation
-	 * @link http://php.net/manual/en/language.oop5.basic.php#language.oop5.basic.extends PHP5 extends documentation
+	 * Set which class SimplePie uses for feed enclosures
 	 */
-	function set_caption_class($class = 'SimplePie_Caption')
+	public function set_enclosure_class($class = 'SimplePie_Enclosure')
 	{
-		if (SimplePie_Misc::is_subclass_of($class, 'SimplePie_Caption'))
-		{
-			$this->caption_class = $class;
-			return true;
-		}
-		return false;
+		return $this->registry->register('Enclosure', $class, true);
 	}
 
 	/**
-	 * Allows you to change which class SimplePie uses for <media:copyright>
-	 * Useful when you are overloading or extending SimplePie's default classes.
-	 *
-	 * @access public
-	 * @param string $class Name of custom class.
-	 * @link http://php.net/manual/en/keyword.extends.php PHP4 extends documentation
-	 * @link http://php.net/manual/en/language.oop5.basic.php#language.oop5.basic.extends PHP5 extends documentation
+	 * Set which class SimplePie uses for `<media:text>` captions
 	 */
-	function set_copyright_class($class = 'SimplePie_Copyright')
+	public function set_caption_class($class = 'SimplePie_Caption')
 	{
-		if (SimplePie_Misc::is_subclass_of($class, 'SimplePie_Copyright'))
-		{
-			$this->copyright_class = $class;
-			return true;
-		}
-		return false;
+		return $this->registry->register('Caption', $class, true);
 	}
 
 	/**
-	 * Allows you to change which class SimplePie uses for <media:credit>
-	 * Useful when you are overloading or extending SimplePie's default classes.
-	 *
-	 * @access public
-	 * @param string $class Name of custom class.
-	 * @link http://php.net/manual/en/keyword.extends.php PHP4 extends documentation
-	 * @link http://php.net/manual/en/language.oop5.basic.php#language.oop5.basic.extends PHP5 extends documentation
+	 * Set which class SimplePie uses for `<media:copyright>`
 	 */
-	function set_credit_class($class = 'SimplePie_Credit')
+	public function set_copyright_class($class = 'SimplePie_Copyright')
 	{
-		if (SimplePie_Misc::is_subclass_of($class, 'SimplePie_Credit'))
-		{
-			$this->credit_class = $class;
-			return true;
-		}
-		return false;
+		return $this->registry->register('Copyright', $class, true);
 	}
 
 	/**
-	 * Allows you to change which class SimplePie uses for <media:rating>
-	 * Useful when you are overloading or extending SimplePie's default classes.
-	 *
-	 * @access public
-	 * @param string $class Name of custom class.
-	 * @link http://php.net/manual/en/keyword.extends.php PHP4 extends documentation
-	 * @link http://php.net/manual/en/language.oop5.basic.php#language.oop5.basic.extends PHP5 extends documentation
+	 * Set which class SimplePie uses for `<media:credit>`
 	 */
-	function set_rating_class($class = 'SimplePie_Rating')
+	public function set_credit_class($class = 'SimplePie_Credit')
 	{
-		if (SimplePie_Misc::is_subclass_of($class, 'SimplePie_Rating'))
-		{
-			$this->rating_class = $class;
-			return true;
-		}
-		return false;
+		return $this->registry->register('Credit', $class, true);
 	}
 
 	/**
-	 * Allows you to change which class SimplePie uses for <media:restriction>
-	 * Useful when you are overloading or extending SimplePie's default classes.
-	 *
-	 * @access public
-	 * @param string $class Name of custom class.
-	 * @link http://php.net/manual/en/keyword.extends.php PHP4 extends documentation
-	 * @link http://php.net/manual/en/language.oop5.basic.php#language.oop5.basic.extends PHP5 extends documentation
+	 * Set which class SimplePie uses for `<media:rating>`
 	 */
-	function set_restriction_class($class = 'SimplePie_Restriction')
+	public function set_rating_class($class = 'SimplePie_Rating')
 	{
-		if (SimplePie_Misc::is_subclass_of($class, 'SimplePie_Restriction'))
-		{
-			$this->restriction_class = $class;
-			return true;
-		}
-		return false;
+		return $this->registry->register('Rating', $class, true);
 	}
 
 	/**
-	 * Allows you to change which class SimplePie uses for content-type sniffing.
-	 * Useful when you are overloading or extending SimplePie's default classes.
-	 *
-	 * @access public
-	 * @param string $class Name of custom class.
-	 * @link http://php.net/manual/en/keyword.extends.php PHP4 extends documentation
-	 * @link http://php.net/manual/en/language.oop5.basic.php#language.oop5.basic.extends PHP5 extends documentation
+	 * Set which class SimplePie uses for `<media:restriction>`
 	 */
-	function set_content_type_sniffer_class($class = 'SimplePie_Content_Type_Sniffer')
+	public function set_restriction_class($class = 'SimplePie_Restriction')
 	{
-		if (SimplePie_Misc::is_subclass_of($class, 'SimplePie_Content_Type_Sniffer'))
-		{
-			$this->content_type_sniffer_class = $class;
-			return true;
-		}
-		return false;
+		return $this->registry->register('Restriction', $class, true);
 	}
 
 	/**
-	 * Allows you to change which class SimplePie uses item sources.
-	 * Useful when you are overloading or extending SimplePie's default classes.
-	 *
-	 * @access public
-	 * @param string $class Name of custom class.
-	 * @link http://php.net/manual/en/keyword.extends.php PHP4 extends documentation
-	 * @link http://php.net/manual/en/language.oop5.basic.php#language.oop5.basic.extends PHP5 extends documentation
+	 * Set which class SimplePie uses for content-type sniffing
 	 */
-	function set_source_class($class = 'SimplePie_Source')
+	public function set_content_type_sniffer_class($class = 'SimplePie_Content_Type_Sniffer')
 	{
-		if (SimplePie_Misc::is_subclass_of($class, 'SimplePie_Source'))
-		{
-			$this->source_class = $class;
-			return true;
-		}
-		return false;
+		return $this->registry->register('Content_Type_Sniffer', $class, true);
 	}
 
 	/**
-	 * Allows you to override the default user agent string.
+	 * Set which class SimplePie uses item sources
+	 */
+	public function set_source_class($class = 'SimplePie_Source')
+	{
+		return $this->registry->register('Source', $class, true);
+	}
+	/**#@-*/
+
+	/**
+	 * Set the user agent string
 	 *
-	 * @access public
 	 * @param string $ua New user agent string.
 	 */
-	function set_useragent($ua = SIMPLEPIE_USERAGENT)
+	public function set_useragent($ua = SIMPLEPIE_USERAGENT)
 	{
 		$this->useragent = (string) $ua;
 	}
@@ -1335,10 +1106,9 @@
 	/**
 	 * Set callback function to create cache filename with
 	 *
-	 * @access public
 	 * @param mixed $function Callback function
 	 */
-	function set_cache_name_function($function = 'md5')
+	public function set_cache_name_function($function = 'md5')
 	{
 		if (is_callable($function))
 		{
@@ -1347,31 +1117,14 @@
 	}
 
 	/**
-	 * Set javascript query string parameter
+	 * Set options to make SP as fast as possible
 	 *
-	 * @access public
-	 * @param mixed $get Javascript query string parameter
-	 */
-	function set_javascript($get = 'js')
-	{
-		if ($get)
-		{
-			$this->javascript = (string) $get;
-		}
-		else
-		{
-			$this->javascript = false;
-		}
-	}
-
-	/**
-	 * Set options to make SP as fast as possible.  Forgoes a
-	 * substantial amount of data sanitization in favor of speed.
+	 * Forgoes a substantial amount of data sanitization in favor of speed. This
+	 * turns SimplePie into a dumb parser of feeds.
 	 *
-	 * @access public
 	 * @param bool $set Whether to set them or not
 	 */
-	function set_stupidly_fast($set = false)
+	public function set_stupidly_fast($set = false)
 	{
 		if ($set)
 		{
@@ -1387,20 +1140,19 @@
 	/**
 	 * Set maximum number of feeds to check with autodiscovery
 	 *
-	 * @access public
 	 * @param int $max Maximum number of feeds to check
 	 */
-	function set_max_checked_feeds($max = 10)
+	public function set_max_checked_feeds($max = 10)
 	{
 		$this->max_checked_feeds = (int) $max;
 	}
 
-	function remove_div($enable = true)
+	public function remove_div($enable = true)
 	{
 		$this->sanitize->remove_div($enable);
 	}
 
-	function strip_htmltags($tags = '', $encode = null)
+	public function strip_htmltags($tags = '', $encode = null)
 	{
 		if ($tags === '')
 		{
@@ -1413,12 +1165,12 @@
 		}
 	}
 
-	function encode_instead_of_strip($enable = true)
+	public function encode_instead_of_strip($enable = true)
 	{
 		$this->sanitize->encode_instead_of_strip($enable);
 	}
 
-	function strip_attributes($attribs = '')
+	public function strip_attributes($attribs = '')
 	{
 		if ($attribs === '')
 		{
@@ -1427,12 +1179,34 @@
 		$this->sanitize->strip_attributes($attribs);
 	}
 
-	function set_output_encoding($encoding = 'UTF-8')
+	/**
+	 * Set the output encoding
+	 *
+	 * Allows you to override SimplePie's output to match that of your webpage.
+	 * This is useful for times when your webpages are not being served as
+	 * UTF-8.  This setting will be obeyed by {@see handle_content_type()}, and
+	 * is similar to {@see set_input_encoding()}.
+	 *
+	 * It should be noted, however, that not all character encodings can support
+	 * all characters.  If your page is being served as ISO-8859-1 and you try
+	 * to display a Japanese feed, you'll likely see garbled characters.
+	 * Because of this, it is highly recommended to ensure that your webpages
+	 * are served as UTF-8.
+	 *
+	 * The number of supported character encodings depends on whether your web
+	 * host supports {@link http://php.net/mbstring mbstring},
+	 * {@link http://php.net/iconv iconv}, or both. See
+	 * {@link http://simplepie.org/wiki/faq/Supported_Character_Encodings} for
+	 * more information.
+	 *
+	 * @param string $encoding
+	 */
+	public function set_output_encoding($encoding = 'UTF-8')
 	{
 		$this->sanitize->set_output_encoding($encoding);
 	}
 
-	function strip_comments($strip = false)
+	public function strip_comments($strip = false)
 	{
 		$this->sanitize->strip_comments($strip);
 	}
@@ -1441,42 +1215,25 @@
 	 * Set element/attribute key/value pairs of HTML attributes
 	 * containing URLs that need to be resolved relative to the feed
 	 *
-	 * @access public
+	 * Defaults to |a|@href, |area|@href, |blockquote|@cite, |del|@cite,
+	 * |form|@action, |img|@longdesc, |img|@src, |input|@src, |ins|@cite,
+	 * |q|@cite
+	 *
 	 * @since 1.0
-	 * @param array $element_attribute Element/attribute key/value pairs
+	 * @param array|null $element_attribute Element/attribute key/value pairs, null for default
 	 */
-	function set_url_replacements($element_attribute = array('a' => 'href', 'area' => 'href', 'blockquote' => 'cite', 'del' => 'cite', 'form' => 'action', 'img' => array('longdesc', 'src'), 'input' => 'src', 'ins' => 'cite', 'q' => 'cite'))
+	public function set_url_replacements($element_attribute = null)
 	{
 		$this->sanitize->set_url_replacements($element_attribute);
 	}
 
 	/**
-	 * Set the handler to enable the display of cached favicons.
-	 *
-	 * @access public
-	 * @param str $page Web-accessible path to the handler_favicon.php file.
-	 * @param str $qs The query string that the value should be passed to.
-	 */
-	function set_favicon_handler($page = false, $qs = 'i')
-	{
-		if ($page !== false)
-		{
-			$this->favicon_handler = $page . '?' . $qs . '=';
-		}
-		else
-		{
-			$this->favicon_handler = '';
-		}
-	}
-
-	/**
 	 * Set the handler to enable the display of cached images.
 	 *
-	 * @access public
 	 * @param str $page Web-accessible path to the handler_image.php file.
 	 * @param str $qs The query string that the value should be passed to.
 	 */
-	function set_image_handler($page = false, $qs = 'i')
+	public function set_image_handler($page = false, $qs = 'i')
 	{
 		if ($page !== false)
 		{
@@ -1489,20 +1246,28 @@
 	}
 
 	/**
-	 * Set the limit for items returned per-feed with multifeeds.
+	 * Set the limit for items returned per-feed with multifeeds
 	 *
-	 * @access public
 	 * @param integer $limit The maximum number of items to return.
 	 */
-	function set_item_limit($limit = 0)
+	public function set_item_limit($limit = 0)
 	{
 		$this->item_limit = (int) $limit;
 	}
 
-	function init()
+	/**
+	 * Initialize the feed object
+	 *
+	 * This is what makes everything happen.  Period.  This is where all of the
+	 * configuration options get processed, feeds are fetched, cached, and
+	 * parsed, and all of that other good stuff.
+	 *
+	 * @return boolean True if successful, false otherwise
+	 */
+	public function init()
 	{
 		// Check absolute bare minimum requirements.
-		if ((function_exists('version_compare') && version_compare(PHP_VERSION, '4.3.0', '<')) || !extension_loaded('xml') || !extension_loaded('pcre'))
+		if (!extension_loaded('xml') || !extension_loaded('pcre'))
 		{
 			return false;
 		}
@@ -1523,331 +1288,383 @@
 			}
 		}
 
-		if (isset($_GET[$this->javascript]))
+		if (method_exists($this->sanitize, 'set_registry'))
 		{
-			SimplePie_Misc::output_javascript();
-			exit;
+			$this->sanitize->set_registry($this->registry);
 		}
 
 		// Pass whatever was set with config options over to the sanitizer.
-		$this->sanitize->pass_cache_data($this->cache, $this->cache_location, $this->cache_name_function, $this->cache_class);
-		$this->sanitize->pass_file_data($this->file_class, $this->timeout, $this->useragent, $this->force_fsockopen);
+		// Pass the classes in for legacy support; new classes should use the registry instead
+		$this->sanitize->pass_cache_data($this->cache, $this->cache_location, $this->cache_name_function, $this->registry->get_class('Cache'));
+		$this->sanitize->pass_file_data($this->registry->get_class('File'), $this->timeout, $this->useragent, $this->force_fsockopen);
 
-		if ($this->feed_url !== null || $this->raw_data !== null)
+		if (!empty($this->multifeed_url))
 		{
-			$this->data = array();
+			$i = 0;
+			$success = 0;
 			$this->multifeed_objects = array();
-			$cache = false;
+			$this->error = array();
+			foreach ($this->multifeed_url as $url)
+			{
+				$this->multifeed_objects[$i] = clone $this;
+				$this->multifeed_objects[$i]->set_feed_url($url);
+				$single_success = $this->multifeed_objects[$i]->init();
+				$success |= $single_success;
+				if (!$single_success)
+				{
+					$this->error[$i] = $this->multifeed_objects[$i]->error();
+				}
+				$i++;
+			}
+			return (bool) $success;
+		}
+		elseif ($this->feed_url === null && $this->raw_data === null)
+		{
+			return false;
+		}
 
-			if ($this->feed_url !== null)
+		$this->error = null;
+		$this->data = array();
+		$this->multifeed_objects = array();
+		$cache = false;
+
+		if ($this->feed_url !== null)
+		{
+			$parsed_feed_url = $this->registry->call('Misc', 'parse_url', array($this->feed_url));
+
+			// Decide whether to enable caching
+			if ($this->cache && $parsed_feed_url['scheme'] !== '')
+			{
+				$cache = $this->registry->call('Cache', 'get_handler', array($this->cache_location, call_user_func($this->cache_name_function, $this->feed_url), 'spc'));
+			}
+
+			// Fetch the data via SimplePie_File into $this->raw_data
+			if (($fetched = $this->fetch_data($cache)) === true)
 			{
-				$parsed_feed_url = SimplePie_Misc::parse_url($this->feed_url);
-				// Decide whether to enable caching
-				if ($this->cache && $parsed_feed_url['scheme'] !== '')
+				return true;
+			}
+			elseif ($fetched === false) {
+				return false;
+			}
+
+			list($headers, $sniffed) = $fetched;
+		}
+
+		// Set up array of possible encodings
+		$encodings = array();
+
+		// First check to see if input has been overridden.
+		if ($this->input_encoding !== false)
+		{
+			$encodings[] = $this->input_encoding;
+		}
+
+		$application_types = array('application/xml', 'application/xml-dtd', 'application/xml-external-parsed-entity');
+		$text_types = array('text/xml', 'text/xml-external-parsed-entity');
+
+		// RFC 3023 (only applies to sniffed content)
+		if (isset($sniffed))
+		{
+			if (in_array($sniffed, $application_types) || substr($sniffed, 0, 12) === 'application/' && substr($sniffed, -4) === '+xml')
+			{
+				if (isset($headers['content-type']) && preg_match('/;\x20?charset=([^;]*)/i', $headers['content-type'], $charset))
 				{
-					$cache = call_user_func(array($this->cache_class, 'create'), $this->cache_location, call_user_func($this->cache_name_function, $this->feed_url), 'spc');
+					$encodings[] = strtoupper($charset[1]);
+				}
+				$encodings = array_merge($encodings, $this->registry->call('Misc', 'xml_encoding', array($this->raw_data, &$this->registry)));
+				$encodings[] = 'UTF-8';
+			}
+			elseif (in_array($sniffed, $text_types) || substr($sniffed, 0, 5) === 'text/' && substr($sniffed, -4) === '+xml')
+			{
+				if (isset($headers['content-type']) && preg_match('/;\x20?charset=([^;]*)/i', $headers['content-type'], $charset))
+				{
+					$encodings[] = $charset[1];
 				}
-				// If it's enabled and we don't want an XML dump, use the cache
-				if ($cache && !$this->xml_dump)
+				$encodings[] = 'US-ASCII';
+			}
+			// Text MIME-type default
+			elseif (substr($sniffed, 0, 5) === 'text/')
+			{
+				$encodings[] = 'US-ASCII';
+			}
+		}
+
+		// Fallback to XML 1.0 Appendix F.1/UTF-8/ISO-8859-1
+		$encodings = array_merge($encodings, $this->registry->call('Misc', 'xml_encoding', array($this->raw_data, &$this->registry)));
+		$encodings[] = 'UTF-8';
+		$encodings[] = 'ISO-8859-1';
+
+		// There's no point in trying an encoding twice
+		$encodings = array_unique($encodings);
+
+		// Loop through each possible encoding, till we return something, or run out of possibilities
+		foreach ($encodings as $encoding)
+		{
+			// Change the encoding to UTF-8 (as we always use UTF-8 internally)
+			if ($utf8_data = $this->registry->call('Misc', 'change_encoding', array($this->raw_data, $encoding, 'UTF-8')))
+			{
+				// Create new parser
+				$parser = $this->registry->create('Parser');
+
+				// If it's parsed fine
+				if ($parser->parse($utf8_data, 'UTF-8'))
 				{
-					// Load the Cache
-					$this->data = $cache->load();
-					if (!empty($this->data))
+					$this->data = $parser->get_data();
+					if (!($this->get_type() & ~SIMPLEPIE_TYPE_NONE))
+					{
+						$this->error = "A feed could not be found at $this->feed_url. This does not appear to be a valid RSS or Atom feed.";
+						$this->registry->call('Misc', 'error', array($this->error, E_USER_NOTICE, __FILE__, __LINE__));
+						return false;
+					}
+
+					if (isset($headers))
+					{
+						$this->data['headers'] = $headers;
+					}
+					$this->data['build'] = SIMPLEPIE_BUILD;
+
+					// Cache the file if caching is enabled
+					if ($cache && !$cache->save($this))
 					{
-						// If the cache is for an outdated build of SimplePie
-						if (!isset($this->data['build']) || $this->data['build'] !== SIMPLEPIE_BUILD)
-						{
-							$cache->unlink();
-							$this->data = array();
-						}
-						// If we've hit a collision just rerun it with caching disabled
-						elseif (isset($this->data['url']) && $this->data['url'] !== $this->feed_url)
-						{
-							$cache = false;
-							$this->data = array();
-						}
-						// If we've got a non feed_url stored (if the page isn't actually a feed, or is a redirect) use that URL.
-						elseif (isset($this->data['feed_url']))
+						trigger_error("$this->cache_location is not writeable. Make sure you've set the correct relative or absolute path, and that the location is server-writable.", E_USER_WARNING);
+					}
+					return true;
+				}
+			}
+		}
+
+		if (isset($parser))
+		{
+			// We have an error, just set SimplePie_Misc::error to it and quit
+			$this->error = sprintf('This XML document is invalid, likely due to invalid characters. XML error: %s at line %d, column %d', $parser->get_error_string(), $parser->get_current_line(), $parser->get_current_column());
+		}
+		else
+		{
+			$this->error = 'The data could not be converted to UTF-8. You MUST have either the iconv or mbstring extension installed. Upgrading to PHP 5.x (which includes iconv) is highly recommended.';
+		}
+
+		$this->registry->call('Misc', 'error', array($this->error, E_USER_NOTICE, __FILE__, __LINE__));
+
+		return false;
+	}
+
+	/**
+	 * Fetch the data via SimplePie_File
+	 *
+	 * If the data is already cached, attempt to fetch it from there instead
+	 * @param SimplePie_Cache|false $cache Cache handler, or false to not load from the cache
+	 * @return array|true Returns true if the data was loaded from the cache, or an array of HTTP headers and sniffed type
+	 */
+	protected function fetch_data(&$cache)
+	{
+		// If it's enabled, use the cache
+		if ($cache)
+		{
+			// Load the Cache
+			$this->data = $cache->load();
+			if (!empty($this->data))
+			{
+				// If the cache is for an outdated build of SimplePie
+				if (!isset($this->data['build']) || $this->data['build'] !== SIMPLEPIE_BUILD)
+				{
+					$cache->unlink();
+					$this->data = array();
+				}
+				// If we've hit a collision just rerun it with caching disabled
+				elseif (isset($this->data['url']) && $this->data['url'] !== $this->feed_url)
+				{
+					$cache = false;
+					$this->data = array();
+				}
+				// If we've got a non feed_url stored (if the page isn't actually a feed, or is a redirect) use that URL.
+				elseif (isset($this->data['feed_url']))
+				{
+					// If the autodiscovery cache is still valid use it.
+					if ($cache->mtime() + $this->autodiscovery_cache_duration > time())
+					{
+						// Do not need to do feed autodiscovery yet.
+						if ($this->data['feed_url'] !== $this->data['url'])
 						{
-							// If the autodiscovery cache is still valid use it.
-							if ($cache->mtime() + $this->autodiscovery_cache_duration > time())
-							{
-								// Do not need to do feed autodiscovery yet.
-								if ($this->data['feed_url'] === $this->data['url'])
-								{
-									$cache->unlink();
-									$this->data = array();
-								}
-								else
-								{
-									$this->set_feed_url($this->data['feed_url']);
-									return $this->init();
-								}
-							}
+							$this->set_feed_url($this->data['feed_url']);
+							return $this->init();
 						}
-						// Check if the cache has been updated
-						elseif ($cache->mtime() + $this->cache_duration < time())
-						{
-							// If we have last-modified and/or etag set
-							if (isset($this->data['headers']['last-modified']) || isset($this->data['headers']['etag']))
-							{
-								$headers = array();
-								if (isset($this->data['headers']['last-modified']))
-								{
-									$headers['if-modified-since'] = $this->data['headers']['last-modified'];
-								}
-								if (isset($this->data['headers']['etag']))
-								{
-									$headers['if-none-match'] = '"' . $this->data['headers']['etag'] . '"';
-								}
-								$file =& new $this->file_class($this->feed_url, $this->timeout/10, 5, $headers, $this->useragent, $this->force_fsockopen);
-								if ($file->success)
-								{
-									if ($file->status_code === 304)
-									{
-										$cache->touch();
-										return true;
-									}
-									else
-									{
-										$headers = $file->headers;
-									}
-								}
-								else
-								{
-									unset($file);
-								}
-							}
-						}
-						// If the cache is still valid, just return true
-						else
-						{
-							return true;
-						}
-					}
-					// If the cache is empty, delete it
-					else
-					{
+
 						$cache->unlink();
 						$this->data = array();
 					}
 				}
-				// If we don't already have the file (it'll only exist if we've opened it to check if the cache has been modified), open it.
-				if (!isset($file))
+				// Check if the cache has been updated
+				elseif ($cache->mtime() + $this->cache_duration < time())
 				{
-					if (is_a($this->file, 'SimplePie_File') && $this->file->url === $this->feed_url)
-					{
-						$file =& $this->file;
-					}
-					else
-					{
-						$file =& new $this->file_class($this->feed_url, $this->timeout, 5, null, $this->useragent, $this->force_fsockopen);
-					}
-				}
-				// If the file connection has an error, set SimplePie::error to that and quit
-				if (!$file->success && !($file->method & SIMPLEPIE_FILE_SOURCE_REMOTE === 0 || ($file->status_code === 200 || $file->status_code > 206 && $file->status_code < 300)))
-				{
-					$this->error = $file->error;
-					if (!empty($this->data))
-					{
-						return true;
-					}
-					else
+					// If we have last-modified and/or etag set
+					if (isset($this->data['headers']['last-modified']) || isset($this->data['headers']['etag']))
 					{
-						return false;
-					}
-				}
+						$headers = array(
+							'Accept' => 'application/atom+xml, application/rss+xml, application/rdf+xml;q=0.9, application/xml;q=0.8, text/xml;q=0.8, text/html;q=0.7, unknown/unknown;q=0.1, application/unknown;q=0.1, */*;q=0.1',
+						);
+						if (isset($this->data['headers']['last-modified']))
+						{
+							$headers['if-modified-since'] = $this->data['headers']['last-modified'];
+						}
+						if (isset($this->data['headers']['etag']))
+						{
+							$headers['if-none-match'] = $this->data['headers']['etag'];
+						}
 
-				if (!$this->force_feed)
-				{
-					// Check if the supplied URL is a feed, if it isn't, look for it.
-					$locate =& new $this->locator_class($file, $this->timeout, $this->useragent, $this->file_class, $this->max_checked_feeds, $this->content_type_sniffer_class);
-					if (!$locate->is_feed($file))
-					{
-						// We need to unset this so that if SimplePie::set_file() has been called that object is untouched
-						unset($file);
-						if ($file = $locate->find($this->autodiscovery, $this->all_discovered_feeds))
+						$file = $this->registry->create('File', array($this->feed_url, $this->timeout/10, 5, $headers, $this->useragent, $this->force_fsockopen));
+
+						if ($file->success)
 						{
-							if ($cache)
+							if ($file->status_code === 304)
 							{
-								$this->data = array('url' => $this->feed_url, 'feed_url' => $file->url, 'build' => SIMPLEPIE_BUILD);
-								if (!$cache->save($this))
-								{
-									trigger_error("$this->cache_location is not writeable. Make sure you've set the correct relative or absolute path, and that the location is server-writable.", E_USER_WARNING);
-								}
-								$cache = call_user_func(array($this->cache_class, 'create'), $this->cache_location, call_user_func($this->cache_name_function, $file->url), 'spc');
+								$cache->touch();
+								return true;
 							}
-							$this->feed_url = $file->url;
 						}
 						else
 						{
-							$this->error = "A feed could not be found at $this->feed_url. A feed with an invalid mime type may fall victim to this error, or " . SIMPLEPIE_NAME . " was unable to auto-discover it.. Use force_feed() if you are certain this URL is a real feed.";
-							SimplePie_Misc::error($this->error, E_USER_NOTICE, __FILE__, __LINE__);
-							return false;
+							unset($file);
 						}
 					}
-					$locate = null;
+				}
+				// If the cache is still valid, just return true
+				else
+				{
+					$this->raw_data = false;
+					return true;
 				}
-
-				$headers = $file->headers;
-				$data = $file->body;
-				$sniffer =& new $this->content_type_sniffer_class($file);
-				$sniffed = $sniffer->get_type();
+			}
+			// If the cache is empty, delete it
+			else
+			{
+				$cache->unlink();
+				$this->data = array();
+			}
+		}
+		// If we don't already have the file (it'll only exist if we've opened it to check if the cache has been modified), open it.
+		if (!isset($file))
+		{
+			if ($this->file instanceof SimplePie_File && $this->file->url === $this->feed_url)
+			{
+				$file =& $this->file;
 			}
 			else
 			{
-				$data = $this->raw_data;
-			}
-
-			// Set up array of possible encodings
-			$encodings = array();
-
-			// First check to see if input has been overridden.
-			if ($this->input_encoding !== false)
-			{
-				$encodings[] = $this->input_encoding;
+				$headers = array(
+					'Accept' => 'application/atom+xml, application/rss+xml, application/rdf+xml;q=0.9, application/xml;q=0.8, text/xml;q=0.8, text/html;q=0.7, unknown/unknown;q=0.1, application/unknown;q=0.1, */*;q=0.1',
+				);
+				$file = $this->registry->create('File', array($this->feed_url, $this->timeout, 5, $headers, $this->useragent, $this->force_fsockopen));
 			}
-
-			$application_types = array('application/xml', 'application/xml-dtd', 'application/xml-external-parsed-entity');
-			$text_types = array('text/xml', 'text/xml-external-parsed-entity');
-
-			// RFC 3023 (only applies to sniffed content)
-			if (isset($sniffed))
-			{
-				if (in_array($sniffed, $application_types) || substr($sniffed, 0, 12) === 'application/' && substr($sniffed, -4) === '+xml')
-				{
-					if (isset($headers['content-type']) && preg_match('/;\x20?charset=([^;]*)/i', $headers['content-type'], $charset))
-					{
-						$encodings[] = strtoupper($charset[1]);
-					}
-					$encodings = array_merge($encodings, SimplePie_Misc::xml_encoding($data));
-					$encodings[] = 'UTF-8';
-				}
-				elseif (in_array($sniffed, $text_types) || substr($sniffed, 0, 5) === 'text/' && substr($sniffed, -4) === '+xml')
-				{
-					if (isset($headers['content-type']) && preg_match('/;\x20?charset=([^;]*)/i', $headers['content-type'], $charset))
-					{
-						$encodings[] = $charset[1];
-					}
-					$encodings[] = 'US-ASCII';
-				}
-				// Text MIME-type default
-				elseif (substr($sniffed, 0, 5) === 'text/')
-				{
-					$encodings[] = 'US-ASCII';
-				}
-			}
+		}
+		// If the file connection has an error, set SimplePie::error to that and quit
+		if (!$file->success && !($file->method & SIMPLEPIE_FILE_SOURCE_REMOTE === 0 || ($file->status_code === 200 || $file->status_code > 206 && $file->status_code < 300)))
+		{
+			$this->error = $file->error;
+			return !empty($this->data);
+		}
 
-			// Fallback to XML 1.0 Appendix F.1/UTF-8/ISO-8859-1
-			$encodings = array_merge($encodings, SimplePie_Misc::xml_encoding($data));
-			$encodings[] = 'UTF-8';
-			$encodings[] = 'ISO-8859-1';
-
-			// There's no point in trying an encoding twice
-			$encodings = array_unique($encodings);
-
-			// If we want the XML, just output that with the most likely encoding and quit
-			if ($this->xml_dump)
-			{
-				header('Content-type: text/xml; charset=' . $encodings[0]);
-				echo $data;
-				exit;
-			}
-
-			// Loop through each possible encoding, till we return something, or run out of possibilities
-			foreach ($encodings as $encoding)
-			{
-				// Change the encoding to UTF-8 (as we always use UTF-8 internally)
-				if ($utf8_data = SimplePie_Misc::change_encoding($data, $encoding, 'UTF-8'))
-				{
-					// Create new parser
-					$parser =& new $this->parser_class();
+		if (!$this->force_feed)
+		{
+			// Check if the supplied URL is a feed, if it isn't, look for it.
+			$locate = $this->registry->create('Locator', array(&$file, $this->timeout, $this->useragent, $this->max_checked_feeds));
 
-					// If it's parsed fine
-					if ($parser->parse($utf8_data, 'UTF-8'))
+			if (!$locate->is_feed($file))
+			{
+				// We need to unset this so that if SimplePie::set_file() has been called that object is untouched
+				unset($file);
+				try
+				{
+					if (!($file = $locate->find($this->autodiscovery, $this->all_discovered_feeds)))
 					{
-						$this->data = $parser->get_data();
-						if ($this->get_type() & ~SIMPLEPIE_TYPE_NONE)
-						{
-							if (isset($headers))
-							{
-								$this->data['headers'] = $headers;
-							}
-							$this->data['build'] = SIMPLEPIE_BUILD;
-
-							// Cache the file if caching is enabled
-							if ($cache && !$cache->save($this))
-							{
-								trigger_error("$this->cache_location is not writeable. Make sure you've set the correct relative or absolute path, and that the location is server-writable.", E_USER_WARNING);
-							}
-							return true;
-						}
-						else
-						{
-							$this->error = "A feed could not be found at $this->feed_url. This does not appear to be a valid RSS or Atom feed.";
-							SimplePie_Misc::error($this->error, E_USER_NOTICE, __FILE__, __LINE__);
-							return false;
-						}
+						$this->error = "A feed could not be found at $this->feed_url. A feed with an invalid mime type may fall victim to this error, or " . SIMPLEPIE_NAME . " was unable to auto-discover it.. Use force_feed() if you are certain this URL is a real feed.";
+						$this->registry->call('Misc', 'error', array($this->error, E_USER_NOTICE, __FILE__, __LINE__));
+						return false;
 					}
 				}
-			}
-			if (isset($parser))
-			{
-				// We have an error, just set SimplePie_Misc::error to it and quit
-				$this->error = sprintf('This XML document is invalid, likely due to invalid characters. XML error: %s at line %d, column %d', $parser->get_error_string(), $parser->get_current_line(), $parser->get_current_column());
+				catch (SimplePie_Exception $e)
+				{
+					// This is usually because DOMDocument doesn't exist
+					$this->error = $e->getMessage();
+					$this->registry->call('Misc', 'error', array($this->error, E_USER_NOTICE, $e->getFile(), $e->getLine()));
+					return false;
+				}
+				if ($cache)
+				{
+					$this->data = array('url' => $this->feed_url, 'feed_url' => $file->url, 'build' => SIMPLEPIE_BUILD);
+					if (!$cache->save($this))
+					{
+						trigger_error("$this->cache_location is not writeable. Make sure you've set the correct relative or absolute path, and that the location is server-writable.", E_USER_WARNING);
+					}
+					$cache = $this->registry->call('Cache', 'get_handler', array($this->cache_location, call_user_func($this->cache_name_function, $file->url), 'spc'));
+				}
+				$this->feed_url = $file->url;
 			}
-			else
-			{
-				$this->error = 'The data could not be converted to UTF-8. You MUST have either the iconv or mbstring extension installed. Upgrading to PHP 5.x (which includes iconv) is highly recommended.';
-			}
-			SimplePie_Misc::error($this->error, E_USER_NOTICE, __FILE__, __LINE__);
-			return false;
+			$locate = null;
 		}
-		elseif (!empty($this->multifeed_url))
-		{
-			$i = 0;
-			$success = 0;
-			$this->multifeed_objects = array();
-			foreach ($this->multifeed_url as $url)
-			{
-				if (SIMPLEPIE_PHP5)
-				{
-					// This keyword needs to defy coding standards for PHP4 compatibility
-					$this->multifeed_objects[$i] = clone($this);
-				}
-				else
-				{
-					$this->multifeed_objects[$i] = $this;
-				}
-				$this->multifeed_objects[$i]->set_feed_url($url);
-				$success |= $this->multifeed_objects[$i]->init();
-				$i++;
-			}
-			return (bool) $success;
-		}
-		else
-		{
-			return false;
-		}
+
+		$this->raw_data = $file->body;
+
+		$headers = $file->headers;
+		$sniffer = $this->registry->create('Content_Type_Sniffer', array(&$file));
+		$sniffed = $sniffer->get_type();
+
+		return array($headers, $sniffed);
 	}
 
 	/**
-	 * Return the error message for the occured error
+	 * Get the error message for the occured error
 	 *
-	 * @access public
-	 * @return string Error message
+	 * @return string|array Error message, or array of messages for multifeeds
 	 */
-	function error()
+	public function error()
 	{
 		return $this->error;
 	}
 
-	function get_encoding()
+	/**
+	 * Get the raw XML
+	 *
+	 * This is the same as the old `$feed->enable_xml_dump(true)`, but returns
+	 * the data instead of printing it.
+	 *
+	 * @return string|boolean Raw XML data, false if the cache is used
+	 */
+	public function get_raw_data()
+	{
+		return $this->raw_data;
+	}
+
+	/**
+	 * Get the character encoding used for output
+	 *
+	 * @since Preview Release
+	 * @return string
+	 */
+	public function get_encoding()
 	{
 		return $this->sanitize->output_encoding;
 	}
 
-	function handle_content_type($mime = 'text/html')
+	/**
+	 * Send the content-type header with correct encoding
+	 *
+	 * This method ensures that the SimplePie-enabled page is being served with
+	 * the correct {@link http://www.iana.org/assignments/media-types/ mime-type}
+	 * and character encoding HTTP headers (character encoding determined by the
+	 * {@see set_output_encoding} config option).
+	 *
+	 * This won't work properly if any content or whitespace has already been
+	 * sent to the browser, because it relies on PHP's
+	 * {@link http://php.net/header header()} function, and these are the
+	 * circumstances under which the function works.
+	 *
+	 * Because it's setting these settings for the entire page (as is the nature
+	 * of HTTP headers), this should only be used once per page (again, at the
+	 * top).
+	 *
+	 * @param string $mime MIME type to serve the page as
+	 */
+	public function handle_content_type($mime = 'text/html')
 	{
 		if (!headers_sent())
 		{
@@ -1864,7 +1681,33 @@
 		}
 	}
 
-	function get_type()
+	/**
+	 * Get the type of the feed
+	 *
+	 * This returns a SIMPLEPIE_TYPE_* constant, which can be tested against
+	 * using {@link http://php.net/language.operators.bitwise bitwise operators}
+	 *
+	 * @since 0.8 (usage changed to using constants in 1.0)
+	 * @see SIMPLEPIE_TYPE_NONE Unknown.
+	 * @see SIMPLEPIE_TYPE_RSS_090 RSS 0.90.
+	 * @see SIMPLEPIE_TYPE_RSS_091_NETSCAPE RSS 0.91 (Netscape).
+	 * @see SIMPLEPIE_TYPE_RSS_091_USERLAND RSS 0.91 (Userland).
+	 * @see SIMPLEPIE_TYPE_RSS_091 RSS 0.91.
+	 * @see SIMPLEPIE_TYPE_RSS_092 RSS 0.92.
+	 * @see SIMPLEPIE_TYPE_RSS_093 RSS 0.93.
+	 * @see SIMPLEPIE_TYPE_RSS_094 RSS 0.94.
+	 * @see SIMPLEPIE_TYPE_RSS_10 RSS 1.0.
+	 * @see SIMPLEPIE_TYPE_RSS_20 RSS 2.0.x.
+	 * @see SIMPLEPIE_TYPE_RSS_RDF RDF-based RSS.
+	 * @see SIMPLEPIE_TYPE_RSS_SYNDICATION Non-RDF-based RSS (truly intended as syndication format).
+	 * @see SIMPLEPIE_TYPE_RSS_ALL Any version of RSS.
+	 * @see SIMPLEPIE_TYPE_ATOM_03 Atom 0.3.
+	 * @see SIMPLEPIE_TYPE_ATOM_10 Atom 1.0.
+	 * @see SIMPLEPIE_TYPE_ATOM_ALL Any version of Atom.
+	 * @see SIMPLEPIE_TYPE_ALL Any known/supported feed type.
+	 * @return int SIMPLEPIE_TYPE_* constant
+	 */
+	public function get_type()
 	{
 		if (!isset($this->data['type']))
 		{
@@ -1945,72 +1788,18 @@
 	}
 
 	/**
-	 * Returns the URL for the favicon of the feed's website.
+	 * Get the URL for the feed
 	 *
-	 * @todo Cache atom:icon
-	 * @access public
-	 * @since 1.0
-	 */
-	function get_favicon()
-	{
-		if ($return = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'icon'))
-		{
-			return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($return[0]));
-		}
-		elseif (($url = $this->get_link()) !== null && preg_match('/^http(s)?:\/\//i', $url))
-		{
-			$favicon = SimplePie_Misc::absolutize_url('/favicon.ico', $url);
-
-			if ($this->cache && $this->favicon_handler)
-			{
-				$favicon_filename = call_user_func($this->cache_name_function, $favicon);
-				$cache = call_user_func(array($this->cache_class, 'create'), $this->cache_location, $favicon_filename, 'spi');
-
-				if ($cache->load())
-				{
-					return $this->sanitize($this->favicon_handler . $favicon_filename, SIMPLEPIE_CONSTRUCT_IRI);
-				}
-				else
-				{
-					$file =& new $this->file_class($favicon, $this->timeout / 10, 5, array('X-FORWARDED-FOR' => $_SERVER['REMOTE_ADDR']), $this->useragent, $this->force_fsockopen);
-
-					if ($file->success && ($file->method & SIMPLEPIE_FILE_SOURCE_REMOTE === 0 || ($file->status_code === 200 || $file->status_code > 206 && $file->status_code < 300)) && strlen($file->body) > 0)
-					{
-						$sniffer =& new $this->content_type_sniffer_class($file);
-						if (substr($sniffer->get_type(), 0, 6) === 'image/')
-						{
-							if ($cache->save(array('headers' => $file->headers, 'body' => $file->body)))
-							{
-								return $this->sanitize($this->favicon_handler . $favicon_filename, SIMPLEPIE_CONSTRUCT_IRI);
-							}
-							else
-							{
-								trigger_error("$cache->name is not writeable. Make sure you've set the correct relative or absolute path, and that the location is server-writable.", E_USER_WARNING);
-								return $this->sanitize($favicon, SIMPLEPIE_CONSTRUCT_IRI);
-							}
-						}
-						// not an image
-						else
-						{
-							return false;
-						}
-					}
-				}
-			}
-			else
-			{
-				return $this->sanitize($favicon, SIMPLEPIE_CONSTRUCT_IRI);
-			}
-		}
-		return false;
-	}
-
-	/**
+	 * May or may not be different from the URL passed to {@see set_feed_url()},
+	 * depending on whether auto-discovery was used.
+	 *
+	 * @since Preview Release (previously called `get_feed_url()` since SimplePie 0.8.)
 	 * @todo If we have a perm redirect we should return the new URL
 	 * @todo When we make the above change, let's support <itunes:new-feed-url> as well
 	 * @todo Also, |atom:link|@rel=self
+	 * @return string|null
 	 */
-	function subscribe_url()
+	public function subscribe_url()
 	{
 		if ($this->feed_url !== null)
 		{
@@ -2022,156 +1811,38 @@
 		}
 	}
 
-	function subscribe_feed()
-	{
-		if ($this->feed_url !== null)
-		{
-			return $this->sanitize(SimplePie_Misc::fix_protocol($this->feed_url, 2), SIMPLEPIE_CONSTRUCT_IRI);
-		}
-		else
-		{
-			return null;
-		}
-	}
-
-	function subscribe_outlook()
-	{
-		if ($this->feed_url !== null)
-		{
-			return $this->sanitize('outlook' . SimplePie_Misc::fix_protocol($this->feed_url, 2), SIMPLEPIE_CONSTRUCT_IRI);
-		}
-		else
-		{
-			return null;
-		}
-	}
-
-	function subscribe_podcast()
-	{
-		if ($this->feed_url !== null)
-		{
-			return $this->sanitize(SimplePie_Misc::fix_protocol($this->feed_url, 3), SIMPLEPIE_CONSTRUCT_IRI);
-		}
-		else
-		{
-			return null;
-		}
-	}
-
-	function subscribe_itunes()
-	{
-		if ($this->feed_url !== null)
-		{
-			return $this->sanitize(SimplePie_Misc::fix_protocol($this->feed_url, 4), SIMPLEPIE_CONSTRUCT_IRI);
-		}
-		else
-		{
-			return null;
-		}
-	}
-
 	/**
-	 * Creates the subscribe_* methods' return data
+	 * Get data for an feed-level element
+	 *
+	 * This method allows you to get access to ANY element/attribute that is a
+	 * sub-element of the opening feed tag.
+	 *
+	 * The return value is an indexed array of elements matching the given
+	 * namespace and tag name. Each element has `attribs`, `data` and `child`
+	 * subkeys. For `attribs` and `child`, these contain namespace subkeys.
+	 * `attribs` then has one level of associative name => value data (where
+	 * `value` is a string) after the namespace. `child` has tag-indexed keys
+	 * after the namespace, each member of which is an indexed array matching
+	 * this same format.
 	 *
-	 * @access private
-	 * @param string $feed_url String to prefix to the feed URL
-	 * @param string $site_url String to prefix to the site URL (and
-	 * suffix to the feed URL)
-	 * @return mixed URL if feed exists, false otherwise
+	 * For example:
+	 * <pre>
+	 * // This is probably a bad example because we already support
+	 * // <media:content> natively, but it shows you how to parse through
+	 * // the nodes.
+	 * $group = $item->get_item_tags(SIMPLEPIE_NAMESPACE_MEDIARSS, 'group');
+	 * $content = $group[0]['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['content'];
+	 * $file = $content[0]['attribs']['']['url'];
+	 * echo $file;
+	 * </pre>
+	 *
+	 * @since 1.0
+	 * @see http://simplepie.org/wiki/faq/supported_xml_namespaces
+	 * @param string $namespace The URL of the XML namespace of the elements you're trying to access
+	 * @param string $tag Tag name
+	 * @return array
 	 */
-	function subscribe_service($feed_url, $site_url = null)
-	{
-		if ($this->subscribe_url())
-		{
-			$return = $feed_url . rawurlencode($this->feed_url);
-			if ($site_url !== null && $this->get_link() !== null)
-			{
-				$return .= $site_url . rawurlencode($this->get_link());
-			}
-			return $this->sanitize($return, SIMPLEPIE_CONSTRUCT_IRI);
-		}
-		else
-		{
-			return null;
-		}
-	}
-
-	function subscribe_aol()
-	{
-		return $this->subscribe_service('http://feeds.my.aol.com/add.jsp?url=');
-	}
-
-	function subscribe_bloglines()
-	{
-		return $this->subscribe_service('http://www.bloglines.com/sub/');
-	}
-
-	function subscribe_eskobo()
-	{
-		return $this->subscribe_service('http://www.eskobo.com/?AddToMyPage=');
-	}
-
-	function subscribe_feedfeeds()
-	{
-		return $this->subscribe_service('http://www.feedfeeds.com/add?feed=');
-	}
-
-	function subscribe_feedster()
-	{
-		return $this->subscribe_service('http://www.feedster.com/myfeedster.php?action=addrss&confirm=no&rssurl=');
-	}
-
-	function subscribe_google()
-	{
-		return $this->subscribe_service('http://fusion.google.com/add?feedurl=');
-	}
-
-	function subscribe_gritwire()
-	{
-		return $this->subscribe_service('http://my.gritwire.com/feeds/addExternalFeed.aspx?FeedUrl=');
-	}
-
-	function subscribe_msn()
-	{
-		return $this->subscribe_service('http://my.msn.com/addtomymsn.armx?id=rss&ut=', '&ru=');
-	}
-
-	function subscribe_netvibes()
-	{
-		return $this->subscribe_service('http://www.netvibes.com/subscribe.php?url=');
-	}
-
-	function subscribe_newsburst()
-	{
-		return $this->subscribe_service('http://www.newsburst.com/Source/?add=');
-	}
-
-	function subscribe_newsgator()
-	{
-		return $this->subscribe_service('http://www.newsgator.com/ngs/subscriber/subext.aspx?url=');
-	}
-
-	function subscribe_odeo()
-	{
-		return $this->subscribe_service('http://www.odeo.com/listen/subscribe?feed=');
-	}
-
-	function subscribe_podnova()
-	{
-		return $this->subscribe_service('http://www.podnova.com/index_your_podcasts.srf?action=add&url=');
-	}
-
-	function subscribe_rojo()
-	{
-		return $this->subscribe_service('http://www.rojo.com/add-subscription?resource=');
-	}
-
-	function subscribe_yahoo()
-	{
-		return $this->subscribe_service('http://add.my.yahoo.com/rss?url=');
-	}
-
-	function get_feed_tags($namespace, $tag)
+	public function get_feed_tags($namespace, $tag)
 	{
 		$type = $this->get_type();
 		if ($type & SIMPLEPIE_TYPE_ATOM_10)
@@ -2205,7 +1876,21 @@
 		return null;
 	}
 
-	function get_channel_tags($namespace, $tag)
+	/**
+	 * Get data for an channel-level element
+	 *
+	 * This method allows you to get access to ANY element/attribute in the
+	 * channel/header section of the feed.
+	 *
+	 * See {@see SimplePie::get_feed_tags()} for a description of the return value
+	 *
+	 * @since 1.0
+	 * @see http://simplepie.org/wiki/faq/supported_xml_namespaces
+	 * @param string $namespace The URL of the XML namespace of the elements you're trying to access
+	 * @param string $tag Tag name
+	 * @return array
+	 */
+	public function get_channel_tags($namespace, $tag)
 	{
 		$type = $this->get_type();
 		if ($type & SIMPLEPIE_TYPE_ATOM_ALL)
@@ -2248,7 +1933,21 @@
 		return null;
 	}
 
-	function get_image_tags($namespace, $tag)
+	/**
+	 * Get data for an channel-level element
+	 *
+	 * This method allows you to get access to ANY element/attribute in the
+	 * image/logo section of the feed.
+	 *
+	 * See {@see SimplePie::get_feed_tags()} for a description of the return value
+	 *
+	 * @since 1.0
+	 * @see http://simplepie.org/wiki/faq/supported_xml_namespaces
+	 * @param string $namespace The URL of the XML namespace of the elements you're trying to access
+	 * @param string $tag Tag name
+	 * @return array
+	 */
+	public function get_image_tags($namespace, $tag)
 	{
 		$type = $this->get_type();
 		if ($type & SIMPLEPIE_TYPE_RSS_10)
@@ -2284,7 +1983,19 @@
 		return null;
 	}
 
-	function get_base($element = array())
+	/**
+	 * Get the base URL value from the feed
+	 *
+	 * Uses `<xml:base>` if available, otherwise uses the first link in the
+	 * feed, or failing that, the URL of the feed itself.
+	 *
+	 * @see get_link
+	 * @see subscribe_url
+	 *
+	 * @param array $element
+	 * @return string
+	 */
+	public function get_base($element = array())
 	{
 		if (!($this->get_type() & SIMPLEPIE_TYPE_RSS_SYNDICATION) && !empty($element['xml_base_explicit']) && isset($element['xml_base']))
 		{
@@ -2300,20 +2011,38 @@
 		}
 	}
 
-	function sanitize($data, $type, $base = '')
+	/**
+	 * Sanitize feed data
+	 *
+	 * @access private
+	 * @see SimplePie_Sanitize::sanitize()
+	 * @param string $data Data to sanitize
+	 * @param int $type One of the SIMPLEPIE_CONSTRUCT_* constants
+	 * @param string $base Base URL to resolve URLs against
+	 * @return string Sanitized data
+	 */
+	public function sanitize($data, $type, $base = '')
 	{
 		return $this->sanitize->sanitize($data, $type, $base);
 	}
 
-	function get_title()
+	/**
+	 * Get the title of the feed
+	 *
+	 * Uses `<atom:title>`, `<title>` or `<dc:title>`
+	 *
+	 * @since 1.0 (previously called `get_feed_title` since 0.8)
+	 * @return string|null
+	 */
+	public function get_title()
 	{
 		if ($return = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'title'))
 		{
-			return $this->sanitize($return[0]['data'], SimplePie_Misc::atom_10_construct_type($return[0]['attribs']), $this->get_base($return[0]));
+			return $this->sanitize($return[0]['data'], $this->registry->call('Misc', 'atom_10_construct_type', array($return[0]['attribs'])), $this->get_base($return[0]));
 		}
 		elseif ($return = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_ATOM_03, 'title'))
 		{
-			return $this->sanitize($return[0]['data'], SimplePie_Misc::atom_03_construct_type($return[0]['attribs']), $this->get_base($return[0]));
+			return $this->sanitize($return[0]['data'], $this->registry->call('Misc', 'atom_03_construct_type', array($return[0]['attribs'])), $this->get_base($return[0]));
 		}
 		elseif ($return = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_RSS_10, 'title'))
 		{
@@ -2341,7 +2070,14 @@
 		}
 	}
 
-	function get_category($key = 0)
+	/**
+	 * Get a category for the feed
+	 *
+	 * @since Unknown
+	 * @param int $key The category that you want to return.  Remember that arrays begin with 0, not 1
+	 * @return SimplePie_Category|null
+	 */
+	public function get_category($key = 0)
 	{
 		$categories = $this->get_categories();
 		if (isset($categories[$key]))
@@ -2354,7 +2090,15 @@
 		}
 	}
 
-	function get_categories()
+	/**
+	 * Get all categories for the feed
+	 *
+	 * Uses `<atom:category>`, `<category>` or `<dc:subject>`
+	 *
+	 * @since Unknown
+	 * @return array|null List of {@see SimplePie_Category} objects
+	 */
+	public function get_categories()
 	{
 		$categories = array();
 
@@ -2375,7 +2119,7 @@
 			{
 				$label = $this->sanitize($category['attribs']['']['label'], SIMPLEPIE_CONSTRUCT_TEXT);
 			}
-			$categories[] =& new $this->category_class($term, $scheme, $label);
+			$categories[] = $this->registry->create('Category', array($term, $scheme, $label));
 		}
 		foreach ((array) $this->get_channel_tags(SIMPLEPIE_NAMESPACE_RSS_20, 'category') as $category)
 		{
@@ -2390,20 +2134,20 @@
 			{
 				$scheme = null;
 			}
-			$categories[] =& new $this->category_class($term, $scheme, null);
+			$categories[] = $this->registry->create('Category', array($term, $scheme, null));
 		}
 		foreach ((array) $this->get_channel_tags(SIMPLEPIE_NAMESPACE_DC_11, 'subject') as $category)
 		{
-			$categories[] =& new $this->category_class($this->sanitize($category['data'], SIMPLEPIE_CONSTRUCT_TEXT), null, null);
+			$categories[] = $this->registry->create('Category', array($this->sanitize($category['data'], SIMPLEPIE_CONSTRUCT_TEXT), null, null));
 		}
 		foreach ((array) $this->get_channel_tags(SIMPLEPIE_NAMESPACE_DC_10, 'subject') as $category)
 		{
-			$categories[] =& new $this->category_class($this->sanitize($category['data'], SIMPLEPIE_CONSTRUCT_TEXT), null, null);
+			$categories[] = $this->registry->create('Category', array($this->sanitize($category['data'], SIMPLEPIE_CONSTRUCT_TEXT), null, null));
 		}
 
 		if (!empty($categories))
 		{
-			return SimplePie_Misc::array_unique($categories);
+			return array_unique($categories);
 		}
 		else
 		{
@@ -2411,7 +2155,14 @@
 		}
 	}
 
-	function get_author($key = 0)
+	/**
+	 * Get an author for the feed
+	 *
+	 * @since 1.1
+	 * @param int $key The author that you want to return.  Remember that arrays begin with 0, not 1
+	 * @return SimplePie_Author|null
+	 */
+	public function get_author($key = 0)
 	{
 		$authors = $this->get_authors();
 		if (isset($authors[$key]))
@@ -2424,7 +2175,15 @@
 		}
 	}
 
-	function get_authors()
+	/**
+	 * Get all authors for the feed
+	 *
+	 * Uses `<atom:author>`, `<author>`, `<dc:creator>` or `<itunes:author>`
+	 *
+	 * @since 1.1
+	 * @return array|null List of {@see SimplePie_Author} objects
+	 */
+	public function get_authors()
 	{
 		$authors = array();
 		foreach ((array) $this->get_channel_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'author') as $author)
@@ -2446,7 +2205,7 @@
 			}
 			if ($name !== null || $email !== null || $uri !== null)
 			{
-				$authors[] =& new $this->author_class($name, $uri, $email);
+				$authors[] = $this->registry->create('Author', array($name, $uri, $email));
 			}
 		}
 		if ($author = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_ATOM_03, 'author'))
@@ -2468,25 +2227,25 @@
 			}
 			if ($name !== null || $email !== null || $url !== null)
 			{
-				$authors[] =& new $this->author_class($name, $url, $email);
+				$authors[] = $this->registry->create('Author', array($name, $url, $email));
 			}
 		}
 		foreach ((array) $this->get_channel_tags(SIMPLEPIE_NAMESPACE_DC_11, 'creator') as $author)
 		{
-			$authors[] =& new $this->author_class($this->sanitize($author['data'], SIMPLEPIE_CONSTRUCT_TEXT), null, null);
+			$authors[] = $this->registry->create('Author', array($this->sanitize($author['data'], SIMPLEPIE_CONSTRUCT_TEXT), null, null));
 		}
 		foreach ((array) $this->get_channel_tags(SIMPLEPIE_NAMESPACE_DC_10, 'creator') as $author)
 		{
-			$authors[] =& new $this->author_class($this->sanitize($author['data'], SIMPLEPIE_CONSTRUCT_TEXT), null, null);
+			$authors[] = $this->registry->create('Author', array($this->sanitize($author['data'], SIMPLEPIE_CONSTRUCT_TEXT), null, null));
 		}
 		foreach ((array) $this->get_channel_tags(SIMPLEPIE_NAMESPACE_ITUNES, 'author') as $author)
 		{
-			$authors[] =& new $this->author_class($this->sanitize($author['data'], SIMPLEPIE_CONSTRUCT_TEXT), null, null);
+			$authors[] = $this->registry->create('Author', array($this->sanitize($author['data'], SIMPLEPIE_CONSTRUCT_TEXT), null, null));
 		}
 
 		if (!empty($authors))
 		{
-			return SimplePie_Misc::array_unique($authors);
+			return array_unique($authors);
 		}
 		else
 		{
@@ -2494,7 +2253,14 @@
 		}
 	}
 
-	function get_contributor($key = 0)
+	/**
+	 * Get a contributor for the feed
+	 *
+	 * @since 1.1
+	 * @param int $key The contrbutor that you want to return.  Remember that arrays begin with 0, not 1
+	 * @return SimplePie_Author|null
+	 */
+	public function get_contributor($key = 0)
 	{
 		$contributors = $this->get_contributors();
 		if (isset($contributors[$key]))
@@ -2507,7 +2273,15 @@
 		}
 	}
 
-	function get_contributors()
+	/**
+	 * Get all contributors for the feed
+	 *
+	 * Uses `<atom:contributor>`
+	 *
+	 * @since 1.1
+	 * @return array|null List of {@see SimplePie_Author} objects
+	 */
+	public function get_contributors()
 	{
 		$contributors = array();
 		foreach ((array) $this->get_channel_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'contributor') as $contributor)
@@ -2529,7 +2303,7 @@
 			}
 			if ($name !== null || $email !== null || $uri !== null)
 			{
-				$contributors[] =& new $this->author_class($name, $uri, $email);
+				$contributors[] = $this->registry->create('Author', array($name, $uri, $email));
 			}
 		}
 		foreach ((array) $this->get_channel_tags(SIMPLEPIE_NAMESPACE_ATOM_03, 'contributor') as $contributor)
@@ -2551,13 +2325,13 @@
 			}
 			if ($name !== null || $email !== null || $url !== null)
 			{
-				$contributors[] =& new $this->author_class($name, $url, $email);
+				$contributors[] = $this->registry->create('Author', array($name, $url, $email));
 			}
 		}
 
 		if (!empty($contributors))
 		{
-			return SimplePie_Misc::array_unique($contributors);
+			return array_unique($contributors);
 		}
 		else
 		{
@@ -2565,7 +2339,15 @@
 		}
 	}
 
-	function get_link($key = 0, $rel = 'alternate')
+	/**
+	 * Get a single link for the feed
+	 *
+	 * @since 1.0 (previously called `get_feed_link` since Preview Release, `get_feed_permalink()` since 0.8)
+	 * @param int $key The link that you want to return.  Remember that arrays begin with 0, not 1
+	 * @param string $rel The relationship of the link to return
+	 * @return string|null Link URL
+	 */
+	public function get_link($key = 0, $rel = 'alternate')
 	{
 		$links = $this->get_links($rel);
 		if (isset($links[$key]))
@@ -2579,14 +2361,31 @@
 	}
 
 	/**
-	 * Added for parity between the parent-level and the item/entry-level.
+	 * Get the permalink for the item
+	 *
+	 * Returns the first link available with a relationship of "alternate".
+	 * Identical to {@see get_link()} with key 0
+	 *
+	 * @see get_link
+	 * @since 1.0 (previously called `get_feed_link` since Preview Release, `get_feed_permalink()` since 0.8)
+	 * @internal Added for parity between the parent-level and the item/entry-level.
+	 * @return string|null Link URL
 	 */
-	function get_permalink()
+	public function get_permalink()
 	{
 		return $this->get_link(0);
 	}
 
-	function get_links($rel = 'alternate')
+	/**
+	 * Get all links for the feed
+	 *
+	 * Uses `<atom:link>` or `<link>`
+	 *
+	 * @since Beta 2
+	 * @param string $rel The relationship of links to return
+	 * @return array|null Links found for the feed (strings)
+	 */
+	public function get_links($rel = 'alternate')
 	{
 		if (!isset($this->data['links']))
 		{
@@ -2630,7 +2429,7 @@
 			$keys = array_keys($this->data['links']);
 			foreach ($keys as $key)
 			{
-				if (SimplePie_Misc::is_isegment_nz_nc($key))
+				if ($this->registry->call('Misc', 'is_isegment_nz_nc', array($key)))
 				{
 					if (isset($this->data['links'][SIMPLEPIE_IANA_LINK_RELATIONS_REGISTRY . $key]))
 					{
@@ -2660,20 +2459,29 @@
 		}
 	}
 
-	function get_all_discovered_feeds()
+	public function get_all_discovered_feeds()
 	{
 		return $this->all_discovered_feeds;
 	}
 
-	function get_description()
+	/**
+	 * Get the content for the item
+	 *
+	 * Uses `<atom:subtitle>`, `<atom:tagline>`, `<description>`,
+	 * `<dc:description>`, `<itunes:summary>` or `<itunes:subtitle>`
+	 *
+	 * @since 1.0 (previously called `get_feed_description()` since 0.8)
+	 * @return string|null
+	 */
+	public function get_description()
 	{
 		if ($return = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'subtitle'))
 		{
-			return $this->sanitize($return[0]['data'], SimplePie_Misc::atom_10_construct_type($return[0]['attribs']), $this->get_base($return[0]));
+			return $this->sanitize($return[0]['data'], $this->registry->call('Misc', 'atom_10_construct_type', array($return[0]['attribs'])), $this->get_base($return[0]));
 		}
 		elseif ($return = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_ATOM_03, 'tagline'))
 		{
-			return $this->sanitize($return[0]['data'], SimplePie_Misc::atom_03_construct_type($return[0]['attribs']), $this->get_base($return[0]));
+			return $this->sanitize($return[0]['data'], $this->registry->call('Misc', 'atom_03_construct_type', array($return[0]['attribs'])), $this->get_base($return[0]));
 		}
 		elseif ($return = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_RSS_10, 'description'))
 		{
@@ -2709,15 +2517,23 @@
 		}
 	}
 
-	function get_copyright()
+	/**
+	 * Get the copyright info for the feed
+	 *
+	 * Uses `<atom:rights>`, `<atom:copyright>` or `<dc:rights>`
+	 *
+	 * @since 1.0 (previously called `get_feed_copyright()` since 0.8)
+	 * @return string|null
+	 */
+	public function get_copyright()
 	{
 		if ($return = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'rights'))
 		{
-			return $this->sanitize($return[0]['data'], SimplePie_Misc::atom_10_construct_type($return[0]['attribs']), $this->get_base($return[0]));
+			return $this->sanitize($return[0]['data'], $this->registry->call('Misc', 'atom_10_construct_type', array($return[0]['attribs'])), $this->get_base($return[0]));
 		}
 		elseif ($return = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_ATOM_03, 'copyright'))
 		{
-			return $this->sanitize($return[0]['data'], SimplePie_Misc::atom_03_construct_type($return[0]['attribs']), $this->get_base($return[0]));
+			return $this->sanitize($return[0]['data'], $this->registry->call('Misc', 'atom_03_construct_type', array($return[0]['attribs'])), $this->get_base($return[0]));
 		}
 		elseif ($return = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_RSS_20, 'copyright'))
 		{
@@ -2737,7 +2553,15 @@
 		}
 	}
 
-	function get_language()
+	/**
+	 * Get the language for the feed
+	 *
+	 * Uses `<language>`, `<dc:language>`, or @xml_lang
+	 *
+	 * @since 1.0 (previously called `get_feed_language()` since 0.8)
+	 * @return string|null
+	 */
+	public function get_language()
 	{
 		if ($return = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_RSS_20, 'language'))
 		{
@@ -2773,7 +2597,19 @@
 		}
 	}
 
-	function get_latitude()
+	/**
+	 * Get the latitude coordinates for the item
+	 *
+	 * Compatible with the W3C WGS84 Basic Geo and GeoRSS specifications
+	 *
+	 * Uses `<geo:lat>` or `<georss:point>`
+	 *
+	 * @since 1.0
+	 * @link http://www.w3.org/2003/01/geo/ W3C WGS84 Basic Geo
+	 * @link http://www.georss.org/ GeoRSS
+	 * @return string|null
+	 */
+	public function get_latitude()
 	{
 
 		if ($return = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_W3C_BASIC_GEO, 'lat'))
@@ -2790,7 +2626,19 @@
 		}
 	}
 
-	function get_longitude()
+	/**
+	 * Get the longitude coordinates for the feed
+	 *
+	 * Compatible with the W3C WGS84 Basic Geo and GeoRSS specifications
+	 *
+	 * Uses `<geo:long>`, `<geo:lon>` or `<georss:point>`
+	 *
+	 * @since 1.0
+	 * @link http://www.w3.org/2003/01/geo/ W3C WGS84 Basic Geo
+	 * @link http://www.georss.org/ GeoRSS
+	 * @return string|null
+	 */
+	public function get_longitude()
 	{
 		if ($return = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_W3C_BASIC_GEO, 'long'))
 		{
@@ -2810,7 +2658,16 @@
 		}
 	}
 
-	function get_image_title()
+	/**
+	 * Get the feed logo's title
+	 *
+	 * RSS 0.9.0, 1.0 and 2.0 feeds are allowed to have a "feed logo" title.
+	 *
+	 * Uses `<image><title>` or `<image><dc:title>`
+	 *
+	 * @return string|null
+	 */
+	public function get_image_title()
 	{
 		if ($return = $this->get_image_tags(SIMPLEPIE_NAMESPACE_RSS_10, 'title'))
 		{
@@ -2838,7 +2695,18 @@
 		}
 	}
 
-	function get_image_url()
+	/**
+	 * Get the feed logo's URL
+	 *
+	 * RSS 0.9.0, 2.0, Atom 1.0, and feeds with iTunes RSS tags are allowed to
+	 * have a "feed logo" URL. This points directly to the image itself.
+	 *
+	 * Uses `<itunes:image>`, `<atom:logo>`, `<atom:icon>`,
+	 * `<image><title>` or `<image><dc:title>`
+	 *
+	 * @return string|null
+	 */
+	public function get_image_url()
 	{
 		if ($return = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_ITUNES, 'image'))
 		{
@@ -2870,7 +2738,19 @@
 		}
 	}
 
-	function get_image_link()
+
+	/**
+	 * Get the feed logo's link
+	 *
+	 * RSS 0.9.0, 1.0 and 2.0 feeds are allowed to have a "feed logo" link. This
+	 * points to a human-readable page that the image should link to.
+	 *
+	 * Uses `<itunes:image>`, `<atom:logo>`, `<atom:icon>`,
+	 * `<image><title>` or `<image><dc:title>`
+	 *
+	 * @return string|null
+	 */
+	public function get_image_link()
 	{
 		if ($return = $this->get_image_tags(SIMPLEPIE_NAMESPACE_RSS_10, 'link'))
 		{
@@ -2890,7 +2770,17 @@
 		}
 	}
 
-	function get_image_width()
+	/**
+	 * Get the feed logo's link
+	 *
+	 * RSS 2.0 feeds are allowed to have a "feed logo" width.
+	 *
+	 * Uses `<image><width>` or defaults to 88.0 if no width is specified and
+	 * the feed is an RSS 2.0 feed.
+	 *
+	 * @return int|float|null
+	 */
+	public function get_image_width()
 	{
 		if ($return = $this->get_image_tags(SIMPLEPIE_NAMESPACE_RSS_20, 'width'))
 		{
@@ -2906,7 +2796,17 @@
 		}
 	}
 
-	function get_image_height()
+	/**
+	 * Get the feed logo's height
+	 *
+	 * RSS 2.0 feeds are allowed to have a "feed logo" height.
+	 *
+	 * Uses `<image><height>` or defaults to 31.0 if no height is specified and
+	 * the feed is an RSS 2.0 feed.
+	 *
+	 * @return int|float|null
+	 */
+	public function get_image_height()
 	{
 		if ($return = $this->get_image_tags(SIMPLEPIE_NAMESPACE_RSS_20, 'height'))
 		{
@@ -2922,7 +2822,16 @@
 		}
 	}
 
-	function get_item_quantity($max = 0)
+	/**
+	 * Get the number of items in the feed
+	 *
+	 * This is well-suited for {@link http://php.net/for for()} loops with
+	 * {@see get_item()}
+	 *
+	 * @param int $max Maximum value to return. 0 for no limit
+	 * @return int Number of items in the feed
+	 */
+	public function get_item_quantity($max = 0)
 	{
 		$max = (int) $max;
 		$qty = count($this->get_items());
@@ -2936,7 +2845,19 @@
 		}
 	}
 
-	function get_item($key = 0)
+	/**
+	 * Get a single item from the feed
+	 *
+	 * This is better suited for {@link http://php.net/for for()} loops, whereas
+	 * {@see get_items()} is better suited for
+	 * {@link http://php.net/foreach foreach()} loops.
+	 *
+	 * @see get_item_quantity()
+	 * @since Beta 2
+	 * @param int $key The item that you want to return.  Remember that arrays begin with 0, not 1
+	 * @return SimplePie_Item|null
+	 */
+	public function get_item($key = 0)
 	{
 		$items = $this->get_items();
 		if (isset($items[$key]))
@@ -2949,7 +2870,20 @@
 		}
 	}
 
-	function get_items($start = 0, $end = 0)
+	/**
+	 * Get all items from the feed
+	 *
+	 * This is better suited for {@link http://php.net/for for()} loops, whereas
+	 * {@see get_items()} is better suited for
+	 * {@link http://php.net/foreach foreach()} loops.
+	 *
+	 * @see get_item_quantity
+	 * @since Beta 2
+	 * @param int $start Index to start at
+	 * @param int $end Number of items to return. 0 for all items after `$start`
+	 * @return array|null List of {@see SimplePie_Item} objects
+	 */
+	public function get_items($start = 0, $end = 0)
 	{
 		if (!isset($this->data['items']))
 		{
@@ -2965,7 +2899,7 @@
 					$keys = array_keys($items);
 					foreach ($keys as $key)
 					{
-						$this->data['items'][] =& new $this->item_class($this, $items[$key]);
+						$this->data['items'][] = $this->registry->create('Item', array($this, $items[$key]));
 					}
 				}
 				if ($items = $this->get_feed_tags(SIMPLEPIE_NAMESPACE_ATOM_03, 'entry'))
@@ -2973,7 +2907,7 @@
 					$keys = array_keys($items);
 					foreach ($keys as $key)
 					{
-						$this->data['items'][] =& new $this->item_class($this, $items[$key]);
+						$this->data['items'][] = $this->registry->create('Item', array($this, $items[$key]));
 					}
 				}
 				if ($items = $this->get_feed_tags(SIMPLEPIE_NAMESPACE_RSS_10, 'item'))
@@ -2981,7 +2915,7 @@
 					$keys = array_keys($items);
 					foreach ($keys as $key)
 					{
-						$this->data['items'][] =& new $this->item_class($this, $items[$key]);
+						$this->data['items'][] = $this->registry->create('Item', array($this, $items[$key]));
 					}
 				}
 				if ($items = $this->get_feed_tags(SIMPLEPIE_NAMESPACE_RSS_090, 'item'))
@@ -2989,7 +2923,7 @@
 					$keys = array_keys($items);
 					foreach ($keys as $key)
 					{
-						$this->data['items'][] =& new $this->item_class($this, $items[$key]);
+						$this->data['items'][] = $this->registry->create('Item', array($this, $items[$key]));
 					}
 				}
 				if ($items = $this->get_channel_tags(SIMPLEPIE_NAMESPACE_RSS_20, 'item'))
@@ -2997,7 +2931,7 @@
 					$keys = array_keys($items);
 					foreach ($keys as $key)
 					{
-						$this->data['items'][] =& new $this->item_class($this, $items[$key]);
+						$this->data['items'][] = $this->registry->create('Item', array($this, $items[$key]));
 					}
 				}
 			}
@@ -3023,7 +2957,7 @@
 					$this->data['ordered_items'] = $this->data['items'];
 					if ($do_sort)
 					{
-						usort($this->data['ordered_items'], array(&$this, 'sort_items'));
+						usort($this->data['ordered_items'], array(get_class($this), 'sort_items'));
 					}
 				}
 				$items = $this->data['ordered_items'];
@@ -3050,24 +2984,98 @@
 	}
 
 	/**
-	 * @static
+	 * Set the favicon handler
+	 *
+	 * @deprecated Use your own favicon handling instead
+	 */
+	public function set_favicon_handler($page = false, $qs = 'i')
+	{
+		$level = defined('E_USER_DEPRECATED') ? E_USER_DEPRECATED : E_USER_WARNING;
+		trigger_error('Favicon handling has been removed, please use your own handling', $level);
+		return false;
+	}
+
+	/**
+	 * Get the favicon for the current feed
+	 *
+	 * @deprecated Use your own favicon handling instead
 	 */
-	function sort_items($a, $b)
+	public function get_favicon()
+	{
+		$level = defined('E_USER_DEPRECATED') ? E_USER_DEPRECATED : E_USER_WARNING;
+		trigger_error('Favicon handling has been removed, please use your own handling', $level);
+
+		if (($url = $this->get_link()) !== null)
+		{
+			return 'http://g.etfv.co/' . urlencode($url);
+		}
+
+		return false;
+	}
+
+	/**
+	 * Magic method handler
+	 *
+	 * @param string $method Method name
+	 * @param array $args Arguments to the method
+	 * @return mixed
+	 */
+	public function __call($method, $args)
+	{
+		if (strpos($method, 'subscribe_') === 0)
+		{
+			$level = defined('E_USER_DEPRECATED') ? E_USER_DEPRECATED : E_USER_WARNING;
+			trigger_error('subscribe_*() has been deprecated, implement the callback yourself', $level);
+			return '';
+		}
+		if ($method === 'enable_xml_dump')
+		{
+			$level = defined('E_USER_DEPRECATED') ? E_USER_DEPRECATED : E_USER_WARNING;
+			trigger_error('enable_xml_dump() has been deprecated, use get_raw_data() instead', $level);
+			return false;
+		}
+
+		$class = get_class($this);
+		$trace = debug_backtrace();
+		$file = $trace[0]['file'];
+		$line = $trace[0]['line'];
+		trigger_error("Call to undefined method $class::$method() in $file on line $line", E_USER_ERROR);
+	}
+
+	/**
+	 * Sorting callback for items
+	 *
+	 * @access private
+	 * @param SimplePie $a
+	 * @param SimplePie $b
+	 * @return boolean
+	 */
+	public static function sort_items($a, $b)
 	{
 		return $a->get_date('U') <= $b->get_date('U');
 	}
 
 	/**
-	 * @static
+	 * Merge items from several feeds into one
+	 *
+	 * If you're merging multiple feeds together, they need to all have dates
+	 * for the items or else SimplePie will refuse to sort them.
+	 *
+	 * @link http://simplepie.org/wiki/tutorial/sort_multiple_feeds_by_time_and_date#if_feeds_require_separate_per-feed_settings
+	 * @param array $urls List of SimplePie feed objects to merge
+	 * @param int $start Starting item
+	 * @param int $end Number of items to return
+	 * @param int $limit Maximum number of items per feed
+	 * @return array
 	 */
-	function merge_items($urls, $start = 0, $end = 0, $limit = 0)
+	public static function merge_items($urls, $start = 0, $end = 0, $limit = 0)
 	{
 		if (is_array($urls) && sizeof($urls) > 0)
 		{
 			$items = array();
 			foreach ($urls as $arg)
 			{
-				if (is_a($arg, 'SimplePie'))
+				if ($arg instanceof SimplePie)
 				{
 					$items = array_merge($items, $arg->get_items(0, $limit));
 				}
@@ -3089,7 +3097,7 @@
 			$item = null;
 			if ($do_sort)
 			{
-				usort($items, array('SimplePie', 'sort_items'));
+				usort($items, array(get_class($urls[0]), 'sort_items'));
 			}
 
 			if ($end === 0)
@@ -3108,12193 +3116,4 @@
 		}
 	}
 }
-
-class SimplePie_Item
-{
-	var $feed;
-	var $data = array();
-
-	function SimplePie_Item($feed, $data)
-	{
-		$this->feed = $feed;
-		$this->data = $data;
-	}
-
-	function __toString()
-	{
-		return md5(serialize($this->data));
-	}
-
-	/**
-	 * Remove items that link back to this before destroying this object
-	 */
-	function __destruct()
-	{
-		if ((version_compare(PHP_VERSION, '5.3', '<') || !gc_enabled()) && !ini_get('zend.ze1_compatibility_mode'))
-		{
-			unset($this->feed);
-		}
-	}
-
-	function get_item_tags($namespace, $tag)
-	{
-		if (isset($this->data['child'][$namespace][$tag]))
-		{
-			return $this->data['child'][$namespace][$tag];
-		}
-		else
-		{
-			return null;
-		}
-	}
-
-	function get_base($element = array())
-	{
-		return $this->feed->get_base($element);
-	}
-
-	function sanitize($data, $type, $base = '')
-	{
-		return $this->feed->sanitize($data, $type, $base);
-	}
-
-	function get_feed()
-	{
-		return $this->feed;
-	}
-
-	function get_id($hash = false)
-	{
-		if (!$hash)
-		{
-			if ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'id'))
-			{
-				return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-			}
-			elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_03, 'id'))
-			{
-				return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-			}
-			elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_RSS_20, 'guid'))
-			{
-				return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-			}
-			elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_DC_11, 'identifier'))
-			{
-				return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-			}
-			elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_DC_10, 'identifier'))
-			{
-				return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-			}
-			elseif (($return = $this->get_permalink()) !== null)
-			{
-				return $return;
-			}
-			elseif (($return = $this->get_title()) !== null)
-			{
-				return $return;
-			}
-		}
-		if ($this->get_permalink() !== null || $this->get_title() !== null)
-		{
-			return md5($this->get_permalink() . $this->get_title());
-		}
-		else
-		{
-			return md5(serialize($this->data));
-		}
-	}
-
-	function get_title()
-	{
-		if (!isset($this->data['title']))
-		{
-			if ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'title'))
-			{
-				$this->data['title'] = $this->sanitize($return[0]['data'], SimplePie_Misc::atom_10_construct_type($return[0]['attribs']), $this->get_base($return[0]));
-			}
-			elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_03, 'title'))
-			{
-				$this->data['title'] = $this->sanitize($return[0]['data'], SimplePie_Misc::atom_03_construct_type($return[0]['attribs']), $this->get_base($return[0]));
-			}
-			elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_RSS_10, 'title'))
-			{
-				$this->data['title'] = $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_MAYBE_HTML, $this->get_base($return[0]));
-			}
-			elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_RSS_090, 'title'))
-			{
-				$this->data['title'] = $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_MAYBE_HTML, $this->get_base($return[0]));
-			}
-			elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_RSS_20, 'title'))
-			{
-				$this->data['title'] = $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_MAYBE_HTML, $this->get_base($return[0]));
-			}
-			elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_DC_11, 'title'))
-			{
-				$this->data['title'] = $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-			}
-			elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_DC_10, 'title'))
-			{
-				$this->data['title'] = $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-			}
-			else
-			{
-				$this->data['title'] = null;
-			}
-		}
-		return $this->data['title'];
-	}
-
-	function get_description($description_only = false)
-	{
-		if ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'summary'))
-		{
-			return $this->sanitize($return[0]['data'], SimplePie_Misc::atom_10_construct_type($return[0]['attribs']), $this->get_base($return[0]));
-		}
-		elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_03, 'summary'))
-		{
-			return $this->sanitize($return[0]['data'], SimplePie_Misc::atom_03_construct_type($return[0]['attribs']), $this->get_base($return[0]));
-		}
-		elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_RSS_10, 'description'))
-		{
-			return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_MAYBE_HTML, $this->get_base($return[0]));
-		}
-		elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_RSS_20, 'description'))
-		{
-			return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_HTML, $this->get_base($return[0]));
-		}
-		elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_DC_11, 'description'))
-		{
-			return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-		}
-		elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_DC_10, 'description'))
-		{
-			return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-		}
-		elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_ITUNES, 'summary'))
-		{
-			return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_HTML, $this->get_base($return[0]));
-		}
-		elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_ITUNES, 'subtitle'))
-		{
-			return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-		}
-		elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_RSS_090, 'description'))
-		{
-			return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_HTML);
-		}
-
-		elseif (!$description_only)
-		{
-			return $this->get_content(true);
-		}
-		else
-		{
-			return null;
-		}
-	}
-
-	function get_content($content_only = false)
-	{
-		if ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'content'))
-		{
-			return $this->sanitize($return[0]['data'], SimplePie_Misc::atom_10_content_construct_type($return[0]['attribs']), $this->get_base($return[0]));
-		}
-		elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_03, 'content'))
-		{
-			return $this->sanitize($return[0]['data'], SimplePie_Misc::atom_03_construct_type($return[0]['attribs']), $this->get_base($return[0]));
-		}
-		elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_RSS_10_MODULES_CONTENT, 'encoded'))
-		{
-			return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_HTML, $this->get_base($return[0]));
-		}
-		elseif (!$content_only)
-		{
-			return $this->get_description(true);
-		}
-		else
-		{
-			return null;
-		}
-	}
-
-	function get_category($key = 0)
-	{
-		$categories = $this->get_categories();
-		if (isset($categories[$key]))
-		{
-			return $categories[$key];
-		}
-		else
-		{
-			return null;
-		}
-	}
-
-	function get_categories()
-	{
-		$categories = array();
-
-		foreach ((array) $this->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'category') as $category)
-		{
-			$term = null;
-			$scheme = null;
-			$label = null;
-			if (isset($category['attribs']['']['term']))
-			{
-				$term = $this->sanitize($category['attribs']['']['term'], SIMPLEPIE_CONSTRUCT_TEXT);
-			}
-			if (isset($category['attribs']['']['scheme']))
-			{
-				$scheme = $this->sanitize($category['attribs']['']['scheme'], SIMPLEPIE_CONSTRUCT_TEXT);
-			}
-			if (isset($category['attribs']['']['label']))
-			{
-				$label = $this->sanitize($category['attribs']['']['label'], SIMPLEPIE_CONSTRUCT_TEXT);
-			}
-			$categories[] =& new $this->feed->category_class($term, $scheme, $label);
-		}
-		foreach ((array) $this->get_item_tags(SIMPLEPIE_NAMESPACE_RSS_20, 'category') as $category)
-		{
-			// This is really the label, but keep this as the term also for BC.
-			// Label will also work on retrieving because that falls back to term.
-			$term = $this->sanitize($category['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-			if (isset($category['attribs']['']['domain']))
-			{
-				$scheme = $this->sanitize($category['attribs']['']['domain'], SIMPLEPIE_CONSTRUCT_TEXT);
-			}
-			else
-			{
-				$scheme = null;
-			}
-			$categories[] =& new $this->feed->category_class($term, $scheme, null);
-		}
-		foreach ((array) $this->get_item_tags(SIMPLEPIE_NAMESPACE_DC_11, 'subject') as $category)
-		{
-			$categories[] =& new $this->feed->category_class($this->sanitize($category['data'], SIMPLEPIE_CONSTRUCT_TEXT), null, null);
-		}
-		foreach ((array) $this->get_item_tags(SIMPLEPIE_NAMESPACE_DC_10, 'subject') as $category)
-		{
-			$categories[] =& new $this->feed->category_class($this->sanitize($category['data'], SIMPLEPIE_CONSTRUCT_TEXT), null, null);
-		}
-
-		if (!empty($categories))
-		{
-			return SimplePie_Misc::array_unique($categories);
-		}
-		else
-		{
-			return null;
-		}
-	}
-
-	function get_author($key = 0)
-	{
-		$authors = $this->get_authors();
-		if (isset($authors[$key]))
-		{
-			return $authors[$key];
-		}
-		else
-		{
-			return null;
-		}
-	}
-
-	function get_contributor($key = 0)
-	{
-		$contributors = $this->get_contributors();
-		if (isset($contributors[$key]))
-		{
-			return $contributors[$key];
-		}
-		else
-		{
-			return null;
-		}
-	}
-
-	function get_contributors()
-	{
-		$contributors = array();
-		foreach ((array) $this->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'contributor') as $contributor)
-		{
-			$name = null;
-			$uri = null;
-			$email = null;
-			if (isset($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['name'][0]['data']))
-			{
-				$name = $this->sanitize($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['name'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-			}
-			if (isset($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['uri'][0]['data']))
-			{
-				$uri = $this->sanitize($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['uri'][0]['data'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['uri'][0]));
-			}
-			if (isset($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['email'][0]['data']))
-			{
-				$email = $this->sanitize($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['email'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-			}
-			if ($name !== null || $email !== null || $uri !== null)
-			{
-				$contributors[] =& new $this->feed->author_class($name, $uri, $email);
-			}
-		}
-		foreach ((array) $this->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_03, 'contributor') as $contributor)
-		{
-			$name = null;
-			$url = null;
-			$email = null;
-			if (isset($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['name'][0]['data']))
-			{
-				$name = $this->sanitize($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['name'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-			}
-			if (isset($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['url'][0]['data']))
-			{
-				$url = $this->sanitize($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['url'][0]['data'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['url'][0]));
-			}
-			if (isset($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['email'][0]['data']))
-			{
-				$email = $this->sanitize($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['email'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-			}
-			if ($name !== null || $email !== null || $url !== null)
-			{
-				$contributors[] =& new $this->feed->author_class($name, $url, $email);
-			}
-		}
-
-		if (!empty($contributors))
-		{
-			return SimplePie_Misc::array_unique($contributors);
-		}
-		else
-		{
-			return null;
-		}
-	}
-
-	function get_authors()
-	{
-		$authors = array();
-		foreach ((array) $this->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'author') as $author)
-		{
-			$name = null;
-			$uri = null;
-			$email = null;
-			if (isset($author['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['name'][0]['data']))
-			{
-				$name = $this->sanitize($author['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['name'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-			}
-			if (isset($author['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['uri'][0]['data']))
-			{
-				$uri = $this->sanitize($author['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['uri'][0]['data'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($author['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['uri'][0]));
-			}
-			if (isset($author['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['email'][0]['data']))
-			{
-				$email = $this->sanitize($author['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['email'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-			}
-			if ($name !== null || $email !== null || $uri !== null)
-			{
-				$authors[] =& new $this->feed->author_class($name, $uri, $email);
-			}
-		}
-		if ($author = $this->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_03, 'author'))
-		{
-			$name = null;
-			$url = null;
-			$email = null;
-			if (isset($author[0]['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['name'][0]['data']))
-			{
-				$name = $this->sanitize($author[0]['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['name'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-			}
-			if (isset($author[0]['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['url'][0]['data']))
-			{
-				$url = $this->sanitize($author[0]['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['url'][0]['data'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($author[0]['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['url'][0]));
-			}
-			if (isset($author[0]['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['email'][0]['data']))
-			{
-				$email = $this->sanitize($author[0]['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['email'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-			}
-			if ($name !== null || $email !== null || $url !== null)
-			{
-				$authors[] =& new $this->feed->author_class($name, $url, $email);
-			}
-		}
-		if ($author = $this->get_item_tags(SIMPLEPIE_NAMESPACE_RSS_20, 'author'))
-		{
-			$authors[] =& new $this->feed->author_class(null, null, $this->sanitize($author[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT));
-		}
-		foreach ((array) $this->get_item_tags(SIMPLEPIE_NAMESPACE_DC_11, 'creator') as $author)
-		{
-			$authors[] =& new $this->feed->author_class($this->sanitize($author['data'], SIMPLEPIE_CONSTRUCT_TEXT), null, null);
-		}
-		foreach ((array) $this->get_item_tags(SIMPLEPIE_NAMESPACE_DC_10, 'creator') as $author)
-		{
-			$authors[] =& new $this->feed->author_class($this->sanitize($author['data'], SIMPLEPIE_CONSTRUCT_TEXT), null, null);
-		}
-		foreach ((array) $this->get_item_tags(SIMPLEPIE_NAMESPACE_ITUNES, 'author') as $author)
-		{
-			$authors[] =& new $this->feed->author_class($this->sanitize($author['data'], SIMPLEPIE_CONSTRUCT_TEXT), null, null);
-		}
-
-		if (!empty($authors))
-		{
-			return SimplePie_Misc::array_unique($authors);
-		}
-		elseif (($source = $this->get_source()) && ($authors = $source->get_authors()))
-		{
-			return $authors;
-		}
-		elseif ($authors = $this->feed->get_authors())
-		{
-			return $authors;
-		}
-		else
-		{
-			return null;
-		}
-	}
-
-	function get_copyright()
-	{
-		if ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'rights'))
-		{
-			return $this->sanitize($return[0]['data'], SimplePie_Misc::atom_10_construct_type($return[0]['attribs']), $this->get_base($return[0]));
-		}
-		elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_DC_11, 'rights'))
-		{
-			return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-		}
-		elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_DC_10, 'rights'))
-		{
-			return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-		}
-		else
-		{
-			return null;
-		}
-	}
-
-	function get_date($date_format = 'j F Y, g:i a')
-	{
-		if (!isset($this->data['date']))
-		{
-			if ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'published'))
-			{
-				$this->data['date']['raw'] = $return[0]['data'];
-			}
-			elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'updated'))
-			{
-				$this->data['date']['raw'] = $return[0]['data'];
-			}
-			elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_03, 'issued'))
-			{
-				$this->data['date']['raw'] = $return[0]['data'];
-			}
-			elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_03, 'created'))
-			{
-				$this->data['date']['raw'] = $return[0]['data'];
-			}
-			elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_03, 'modified'))
-			{
-				$this->data['date']['raw'] = $return[0]['data'];
-			}
-			elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_RSS_20, 'pubDate'))
-			{
-				$this->data['date']['raw'] = $return[0]['data'];
-			}
-			elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_DC_11, 'date'))
-			{
-				$this->data['date']['raw'] = $return[0]['data'];
-			}
-			elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_DC_10, 'date'))
-			{
-				$this->data['date']['raw'] = $return[0]['data'];
-			}
-
-			if (!empty($this->data['date']['raw']))
-			{
-				$parser = SimplePie_Parse_Date::get();
-				$this->data['date']['parsed'] = $parser->parse($this->data['date']['raw']);
-			}
-			else
-			{
-				$this->data['date'] = null;
-			}
-		}
-		if ($this->data['date'])
-		{
-			$date_format = (string) $date_format;
-			switch ($date_format)
-			{
-				case '':
-					return $this->sanitize($this->data['date']['raw'], SIMPLEPIE_CONSTRUCT_TEXT);
-
-				case 'U':
-					return $this->data['date']['parsed'];
-
-				default:
-					return date($date_format, $this->data['date']['parsed']);
-			}
-		}
-		else
-		{
-			return null;
-		}
-	}
-
-	function get_local_date($date_format = '%c')
-	{
-		if (!$date_format)
-		{
-			return $this->sanitize($this->get_date(''), SIMPLEPIE_CONSTRUCT_TEXT);
-		}
-		elseif (($date = $this->get_date('U')) !== null && $date !== false)
-		{
-			return strftime($date_format, $date);
-		}
-		else
-		{
-			return null;
-		}
-	}
-
-	function get_permalink()
-	{
-		$link = $this->get_link();
-		$enclosure = $this->get_enclosure(0);
-		if ($link !== null)
-		{
-			return $link;
-		}
-		elseif ($enclosure !== null)
-		{
-			return $enclosure->get_link();
-		}
-		else
-		{
-			return null;
-		}
-	}
-
-	function get_link($key = 0, $rel = 'alternate')
-	{
-		$links = $this->get_links($rel);
-		if ($links[$key] !== null)
-		{
-			return $links[$key];
-		}
-		else
-		{
-			return null;
-		}
-	}
-
-	function get_links($rel = 'alternate')
-	{
-		if (!isset($this->data['links']))
-		{
-			$this->data['links'] = array();
-			foreach ((array) $this->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'link') as $link)
-			{
-				if (isset($link['attribs']['']['href']))
-				{
-					$link_rel = (isset($link['attribs']['']['rel'])) ? $link['attribs']['']['rel'] : 'alternate';
-					$this->data['links'][$link_rel][] = $this->sanitize($link['attribs']['']['href'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($link));
-
-				}
-			}
-			foreach ((array) $this->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_03, 'link') as $link)
-			{
-				if (isset($link['attribs']['']['href']))
-				{
-					$link_rel = (isset($link['attribs']['']['rel'])) ? $link['attribs']['']['rel'] : 'alternate';
-					$this->data['links'][$link_rel][] = $this->sanitize($link['attribs']['']['href'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($link));
-				}
-			}
-			if ($links = $this->get_item_tags(SIMPLEPIE_NAMESPACE_RSS_10, 'link'))
-			{
-				$this->data['links']['alternate'][] = $this->sanitize($links[0]['data'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($links[0]));
-			}
-			if ($links = $this->get_item_tags(SIMPLEPIE_NAMESPACE_RSS_090, 'link'))
-			{
-				$this->data['links']['alternate'][] = $this->sanitize($links[0]['data'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($links[0]));
-			}
-			if ($links = $this->get_item_tags(SIMPLEPIE_NAMESPACE_RSS_20, 'link'))
-			{
-				$this->data['links']['alternate'][] = $this->sanitize($links[0]['data'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($links[0]));
-			}
-			if ($links = $this->get_item_tags(SIMPLEPIE_NAMESPACE_RSS_20, 'guid'))
-			{
-				if (!isset($links[0]['attribs']['']['isPermaLink']) || strtolower(trim($links[0]['attribs']['']['isPermaLink'])) === 'true')
-				{
-					$this->data['links']['alternate'][] = $this->sanitize($links[0]['data'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($links[0]));
-				}
-			}
-
-			$keys = array_keys($this->data['links']);
-			foreach ($keys as $key)
-			{
-				if (SimplePie_Misc::is_isegment_nz_nc($key))
-				{
-					if (isset($this->data['links'][SIMPLEPIE_IANA_LINK_RELATIONS_REGISTRY . $key]))
-					{
-						$this->data['links'][SIMPLEPIE_IANA_LINK_RELATIONS_REGISTRY . $key] = array_merge($this->data['links'][$key], $this->data['links'][SIMPLEPIE_IANA_LINK_RELATIONS_REGISTRY . $key]);
-						$this->data['links'][$key] =& $this->data['links'][SIMPLEPIE_IANA_LINK_RELATIONS_REGISTRY . $key];
-					}
-					else
-					{
-						$this->data['links'][SIMPLEPIE_IANA_LINK_RELATIONS_REGISTRY . $key] =& $this->data['links'][$key];
-					}
-				}
-				elseif (substr($key, 0, 41) === SIMPLEPIE_IANA_LINK_RELATIONS_REGISTRY)
-				{
-					$this->data['links'][substr($key, 41)] =& $this->data['links'][$key];
-				}
-				$this->data['links'][$key] = array_unique($this->data['links'][$key]);
-			}
-		}
-		if (isset($this->data['links'][$rel]))
-		{
-			return $this->data['links'][$rel];
-		}
-		else
-		{
-			return null;
-		}
-	}
-
-	/**
-	 * @todo Add ability to prefer one type of content over another (in a media group).
-	 */
-	function get_enclosure($key = 0, $prefer = null)
-	{
-		$enclosures = $this->get_enclosures();
-		if (isset($enclosures[$key]))
-		{
-			return $enclosures[$key];
-		}
-		else
-		{
-			return null;
-		}
-	}
-
-	/**
-	 * Grabs all available enclosures (podcasts, etc.)
-	 *
-	 * Supports the <enclosure> RSS tag, as well as Media RSS and iTunes RSS.
-	 *
-	 * At this point, we're pretty much assuming that all enclosures for an item are the same content.  Anything else is too complicated to properly support.
-	 *
-	 * @todo Add support for end-user defined sorting of enclosures by type/handler (so we can prefer the faster-loading FLV over MP4).
-	 * @todo If an element exists at a level, but it's value is empty, we should fall back to the value from the parent (if it exists).
-	 */
-	function get_enclosures()
-	{
-		if (!isset($this->data['enclosures']))
-		{
-			$this->data['enclosures'] = array();
-
-			// Elements
-			$captions_parent = null;
-			$categories_parent = null;
-			$copyrights_parent = null;
-			$credits_parent = null;
-			$description_parent = null;
-			$duration_parent = null;
-			$hashes_parent = null;
-			$keywords_parent = null;
-			$player_parent = null;
-			$ratings_parent = null;
-			$restrictions_parent = null;
-			$thumbnails_parent = null;
-			$title_parent = null;
-
-			// Let's do the channel and item-level ones first, and just re-use them if we need to.
-			$parent = $this->get_feed();
-
-			// CAPTIONS
-			if ($captions = $this->get_item_tags(SIMPLEPIE_NAMESPACE_MEDIARSS, 'text'))
-			{
-				foreach ($captions as $caption)
-				{
-					$caption_type = null;
-					$caption_lang = null;
-					$caption_startTime = null;
-					$caption_endTime = null;
-					$caption_text = null;
-					if (isset($caption['attribs']['']['type']))
-					{
-						$caption_type = $this->sanitize($caption['attribs']['']['type'], SIMPLEPIE_CONSTRUCT_TEXT);
-					}
-					if (isset($caption['attribs']['']['lang']))
-					{
-						$caption_lang = $this->sanitize($caption['attribs']['']['lang'], SIMPLEPIE_CONSTRUCT_TEXT);
-					}
-					if (isset($caption['attribs']['']['start']))
-					{
-						$caption_startTime = $this->sanitize($caption['attribs']['']['start'], SIMPLEPIE_CONSTRUCT_TEXT);
-					}
-					if (isset($caption['attribs']['']['end']))
-					{
-						$caption_endTime = $this->sanitize($caption['attribs']['']['end'], SIMPLEPIE_CONSTRUCT_TEXT);
-					}
-					if (isset($caption['data']))
-					{
-						$caption_text = $this->sanitize($caption['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-					}
-					$captions_parent[] =& new $this->feed->caption_class($caption_type, $caption_lang, $caption_startTime, $caption_endTime, $caption_text);
-				}
-			}
-			elseif ($captions = $parent->get_channel_tags(SIMPLEPIE_NAMESPACE_MEDIARSS, 'text'))
-			{
-				foreach ($captions as $caption)
-				{
-					$caption_type = null;
-					$caption_lang = null;
-					$caption_startTime = null;
-					$caption_endTime = null;
-					$caption_text = null;
-					if (isset($caption['attribs']['']['type']))
-					{
-						$caption_type = $this->sanitize($caption['attribs']['']['type'], SIMPLEPIE_CONSTRUCT_TEXT);
-					}
-					if (isset($caption['attribs']['']['lang']))
-					{
-						$caption_lang = $this->sanitize($caption['attribs']['']['lang'], SIMPLEPIE_CONSTRUCT_TEXT);
-					}
-					if (isset($caption['attribs']['']['start']))
-					{
-						$caption_startTime = $this->sanitize($caption['attribs']['']['start'], SIMPLEPIE_CONSTRUCT_TEXT);
-					}
-					if (isset($caption['attribs']['']['end']))
-					{
-						$caption_endTime = $this->sanitize($caption['attribs']['']['end'], SIMPLEPIE_CONSTRUCT_TEXT);
-					}
-					if (isset($caption['data']))
-					{
-						$caption_text = $this->sanitize($caption['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-					}
-					$captions_parent[] =& new $this->feed->caption_class($caption_type, $caption_lang, $caption_startTime, $caption_endTime, $caption_text);
-				}
-			}
-			if (is_array($captions_parent))
-			{
-				$captions_parent = array_values(SimplePie_Misc::array_unique($captions_parent));
-			}
-
-			// CATEGORIES
-			foreach ((array) $this->get_item_tags(SIMPLEPIE_NAMESPACE_MEDIARSS, 'category') as $category)
-			{
-				$term = null;
-				$scheme = null;
-				$label = null;
-				if (isset($category['data']))
-				{
-					$term = $this->sanitize($category['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-				}
-				if (isset($category['attribs']['']['scheme']))
-				{
-					$scheme = $this->sanitize($category['attribs']['']['scheme'], SIMPLEPIE_CONSTRUCT_TEXT);
-				}
-				else
-				{
-					$scheme = 'http://search.yahoo.com/mrss/category_schema';
-				}
-				if (isset($category['attribs']['']['label']))
-				{
-					$label = $this->sanitize($category['attribs']['']['label'], SIMPLEPIE_CONSTRUCT_TEXT);
-				}
-				$categories_parent[] =& new $this->feed->category_class($term, $scheme, $label);
-			}
-			foreach ((array) $parent->get_channel_tags(SIMPLEPIE_NAMESPACE_MEDIARSS, 'category') as $category)
-			{
-				$term = null;
-				$scheme = null;
-				$label = null;
-				if (isset($category['data']))
-				{
-					$term = $this->sanitize($category['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-				}
-				if (isset($category['attribs']['']['scheme']))
-				{
-					$scheme = $this->sanitize($category['attribs']['']['scheme'], SIMPLEPIE_CONSTRUCT_TEXT);
-				}
-				else
-				{
-					$scheme = 'http://search.yahoo.com/mrss/category_schema';
-				}
-				if (isset($category['attribs']['']['label']))
-				{
-					$label = $this->sanitize($category['attribs']['']['label'], SIMPLEPIE_CONSTRUCT_TEXT);
-				}
-				$categories_parent[] =& new $this->feed->category_class($term, $scheme, $label);
-			}
-			foreach ((array) $parent->get_channel_tags(SIMPLEPIE_NAMESPACE_ITUNES, 'category') as $category)
-			{
-				$term = null;
-				$scheme = 'http://www.itunes.com/dtds/podcast-1.0.dtd';
-				$label = null;
-				if (isset($category['attribs']['']['text']))
-				{
-					$label = $this->sanitize($category['attribs']['']['text'], SIMPLEPIE_CONSTRUCT_TEXT);
-				}
-				$categories_parent[] =& new $this->feed->category_class($term, $scheme, $label);
-
-				if (isset($category['child'][SIMPLEPIE_NAMESPACE_ITUNES]['category']))
-				{
-					foreach ((array) $category['child'][SIMPLEPIE_NAMESPACE_ITUNES]['category'] as $subcategory)
-					{
-						if (isset($subcategory['attribs']['']['text']))
-						{
-							$label = $this->sanitize($subcategory['attribs']['']['text'], SIMPLEPIE_CONSTRUCT_TEXT);
-						}
-						$categories_parent[] =& new $this->feed->category_class($term, $scheme, $label);
-					}
-				}
-			}
-			if (is_array($categories_parent))
-			{
-				$categories_parent = array_values(SimplePie_Misc::array_unique($categories_parent));
-			}
-
-			// COPYRIGHT
-			if ($copyright = $this->get_item_tags(SIMPLEPIE_NAMESPACE_MEDIARSS, 'copyright'))
-			{
-				$copyright_url = null;
-				$copyright_label = null;
-				if (isset($copyright[0]['attribs']['']['url']))
-				{
-					$copyright_url = $this->sanitize($copyright[0]['attribs']['']['url'], SIMPLEPIE_CONSTRUCT_TEXT);
-				}
-				if (isset($copyright[0]['data']))
-				{
-					$copyright_label = $this->sanitize($copyright[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-				}
-				$copyrights_parent =& new $this->feed->copyright_class($copyright_url, $copyright_label);
-			}
-			elseif ($copyright = $parent->get_channel_tags(SIMPLEPIE_NAMESPACE_MEDIARSS, 'copyright'))
-			{
-				$copyright_url = null;
-				$copyright_label = null;
-				if (isset($copyright[0]['attribs']['']['url']))
-				{
-					$copyright_url = $this->sanitize($copyright[0]['attribs']['']['url'], SIMPLEPIE_CONSTRUCT_TEXT);
-				}
-				if (isset($copyright[0]['data']))
-				{
-					$copyright_label = $this->sanitize($copyright[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-				}
-				$copyrights_parent =& new $this->feed->copyright_class($copyright_url, $copyright_label);
-			}
-
-			// CREDITS
-			if ($credits = $this->get_item_tags(SIMPLEPIE_NAMESPACE_MEDIARSS, 'credit'))
-			{
-				foreach ($credits as $credit)
-				{
-					$credit_role = null;
-					$credit_scheme = null;
-					$credit_name = null;
-					if (isset($credit['attribs']['']['role']))
-					{
-						$credit_role = $this->sanitize($credit['attribs']['']['role'], SIMPLEPIE_CONSTRUCT_TEXT);
-					}
-					if (isset($credit['attribs']['']['scheme']))
-					{
-						$credit_scheme = $this->sanitize($credit['attribs']['']['scheme'], SIMPLEPIE_CONSTRUCT_TEXT);
-					}
-					else
-					{
-						$credit_scheme = 'urn:ebu';
-					}
-					if (isset($credit['data']))
-					{
-						$credit_name = $this->sanitize($credit['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-					}
-					$credits_parent[] =& new $this->feed->credit_class($credit_role, $credit_scheme, $credit_name);
-				}
-			}
-			elseif ($credits = $parent->get_channel_tags(SIMPLEPIE_NAMESPACE_MEDIARSS, 'credit'))
-			{
-				foreach ($credits as $credit)
-				{
-					$credit_role = null;
-					$credit_scheme = null;
-					$credit_name = null;
-					if (isset($credit['attribs']['']['role']))
-					{
-						$credit_role = $this->sanitize($credit['attribs']['']['role'], SIMPLEPIE_CONSTRUCT_TEXT);
-					}
-					if (isset($credit['attribs']['']['scheme']))
-					{
-						$credit_scheme = $this->sanitize($credit['attribs']['']['scheme'], SIMPLEPIE_CONSTRUCT_TEXT);
-					}
-					else
-					{
-						$credit_scheme = 'urn:ebu';
-					}
-					if (isset($credit['data']))
-					{
-						$credit_name = $this->sanitize($credit['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-					}
-					$credits_parent[] =& new $this->feed->credit_class($credit_role, $credit_scheme, $credit_name);
-				}
-			}
-			if (is_array($credits_parent))
-			{
-				$credits_parent = array_values(SimplePie_Misc::array_unique($credits_parent));
-			}
-
-			// DESCRIPTION
-			if ($description_parent = $this->get_item_tags(SIMPLEPIE_NAMESPACE_MEDIARSS, 'description'))
-			{
-				if (isset($description_parent[0]['data']))
-				{
-					$description_parent = $this->sanitize($description_parent[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-				}
-			}
-			elseif ($description_parent = $parent->get_channel_tags(SIMPLEPIE_NAMESPACE_MEDIARSS, 'description'))
-			{
-				if (isset($description_parent[0]['data']))
-				{
-					$description_parent = $this->sanitize($description_parent[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-				}
-			}
-
-			// DURATION
-			if ($duration_parent = $this->get_item_tags(SIMPLEPIE_NAMESPACE_ITUNES, 'duration'))
-			{
-				$seconds = null;
-				$minutes = null;
-				$hours = null;
-				if (isset($duration_parent[0]['data']))
-				{
-					$temp = explode(':', $this->sanitize($duration_parent[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT));
-					if (sizeof($temp) > 0)
-					{
-						$seconds = (int) array_pop($temp);
-					}
-					if (sizeof($temp) > 0)
-					{
-						$minutes = (int) array_pop($temp);
-						$seconds += $minutes * 60;
-					}
-					if (sizeof($temp) > 0)
-					{
-						$hours = (int) array_pop($temp);
-						$seconds += $hours * 3600;
-					}
-					unset($temp);
-					$duration_parent = $seconds;
-				}
-			}
-
-			// HASHES
-			if ($hashes_iterator = $this->get_item_tags(SIMPLEPIE_NAMESPACE_MEDIARSS, 'hash'))
-			{
-				foreach ($hashes_iterator as $hash)
-				{
-					$value = null;
-					$algo = null;
-					if (isset($hash['data']))
-					{
-						$value = $this->sanitize($hash['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-					}
-					if (isset($hash['attribs']['']['algo']))
-					{
-						$algo = $this->sanitize($hash['attribs']['']['algo'], SIMPLEPIE_CONSTRUCT_TEXT);
-					}
-					else
-					{
-						$algo = 'md5';
-					}
-					$hashes_parent[] = $algo.':'.$value;
-				}
-			}
-			elseif ($hashes_iterator = $parent->get_channel_tags(SIMPLEPIE_NAMESPACE_MEDIARSS, 'hash'))
-			{
-				foreach ($hashes_iterator as $hash)
-				{
-					$value = null;
-					$algo = null;
-					if (isset($hash['data']))
-					{
-						$value = $this->sanitize($hash['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-					}
-					if (isset($hash['attribs']['']['algo']))
-					{
-						$algo = $this->sanitize($hash['attribs']['']['algo'], SIMPLEPIE_CONSTRUCT_TEXT);
-					}
-					else
-					{
-						$algo = 'md5';
-					}
-					$hashes_parent[] = $algo.':'.$value;
-				}
-			}
-			if (is_array($hashes_parent))
-			{
-				$hashes_parent = array_values(SimplePie_Misc::array_unique($hashes_parent));
-			}
-
-			// KEYWORDS
-			if ($keywords = $this->get_item_tags(SIMPLEPIE_NAMESPACE_MEDIARSS, 'keywords'))
-			{
-				if (isset($keywords[0]['data']))
-				{
-					$temp = explode(',', $this->sanitize($keywords[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT));
-					foreach ($temp as $word)
-					{
-						$keywords_parent[] = trim($word);
-					}
-				}
-				unset($temp);
-			}
-			elseif ($keywords = $this->get_item_tags(SIMPLEPIE_NAMESPACE_ITUNES, 'keywords'))
-			{
-				if (isset($keywords[0]['data']))
-				{
-					$temp = explode(',', $this->sanitize($keywords[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT));
-					foreach ($temp as $word)
-					{
-						$keywords_parent[] = trim($word);
-					}
-				}
-				unset($temp);
-			}
-			elseif ($keywords = $parent->get_channel_tags(SIMPLEPIE_NAMESPACE_MEDIARSS, 'keywords'))
-			{
-				if (isset($keywords[0]['data']))
-				{
-					$temp = explode(',', $this->sanitize($keywords[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT));
-					foreach ($temp as $word)
-					{
-						$keywords_parent[] = trim($word);
-					}
-				}
-				unset($temp);
-			}
-			elseif ($keywords = $parent->get_channel_tags(SIMPLEPIE_NAMESPACE_ITUNES, 'keywords'))
-			{
-				if (isset($keywords[0]['data']))
-				{
-					$temp = explode(',', $this->sanitize($keywords[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT));
-					foreach ($temp as $word)
-					{
-						$keywords_parent[] = trim($word);
-					}
-				}
-				unset($temp);
-			}
-			if (is_array($keywords_parent))
-			{
-				$keywords_parent = array_values(SimplePie_Misc::array_unique($keywords_parent));
-			}
-
-			// PLAYER
-			if ($player_parent = $this->get_item_tags(SIMPLEPIE_NAMESPACE_MEDIARSS, 'player'))
-			{
-				if (isset($player_parent[0]['attribs']['']['url']))
-				{
-					$player_parent = $this->sanitize($player_parent[0]['attribs']['']['url'], SIMPLEPIE_CONSTRUCT_IRI);
-				}
-			}
-			elseif ($player_parent = $parent->get_channel_tags(SIMPLEPIE_NAMESPACE_MEDIARSS, 'player'))
-			{
-				if (isset($player_parent[0]['attribs']['']['url']))
-				{
-					$player_parent = $this->sanitize($player_parent[0]['attribs']['']['url'], SIMPLEPIE_CONSTRUCT_IRI);
-				}
-			}
-
-			// RATINGS
-			if ($ratings = $this->get_item_tags(SIMPLEPIE_NAMESPACE_MEDIARSS, 'rating'))
-			{
-				foreach ($ratings as $rating)
-				{
-					$rating_scheme = null;
-					$rating_value = null;
-					if (isset($rating['attribs']['']['scheme']))
-					{
-						$rating_scheme = $this->sanitize($rating['attribs']['']['scheme'], SIMPLEPIE_CONSTRUCT_TEXT);
-					}
-					else
-					{
-						$rating_scheme = 'urn:simple';
-					}
-					if (isset($rating['data']))
-					{
-						$rating_value = $this->sanitize($rating['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-					}
-					$ratings_parent[] =& new $this->feed->rating_class($rating_scheme, $rating_value);
-				}
-			}
-			elseif ($ratings = $this->get_item_tags(SIMPLEPIE_NAMESPACE_ITUNES, 'explicit'))
-			{
-				foreach ($ratings as $rating)
-				{
-					$rating_scheme = 'urn:itunes';
-					$rating_value = null;
-					if (isset($rating['data']))
-					{
-						$rating_value = $this->sanitize($rating['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-					}
-					$ratings_parent[] =& new $this->feed->rating_class($rating_scheme, $rating_value);
-				}
-			}
-			elseif ($ratings = $parent->get_channel_tags(SIMPLEPIE_NAMESPACE_MEDIARSS, 'rating'))
-			{
-				foreach ($ratings as $rating)
-				{
-					$rating_scheme = null;
-					$rating_value = null;
-					if (isset($rating['attribs']['']['scheme']))
-					{
-						$rating_scheme = $this->sanitize($rating['attribs']['']['scheme'], SIMPLEPIE_CONSTRUCT_TEXT);
-					}
-					else
-					{
-						$rating_scheme = 'urn:simple';
-					}
-					if (isset($rating['data']))
-					{
-						$rating_value = $this->sanitize($rating['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-					}
-					$ratings_parent[] =& new $this->feed->rating_class($rating_scheme, $rating_value);
-				}
-			}
-			elseif ($ratings = $parent->get_channel_tags(SIMPLEPIE_NAMESPACE_ITUNES, 'explicit'))
-			{
-				foreach ($ratings as $rating)
-				{
-					$rating_scheme = 'urn:itunes';
-					$rating_value = null;
-					if (isset($rating['data']))
-					{
-						$rating_value = $this->sanitize($rating['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-					}
-					$ratings_parent[] =& new $this->feed->rating_class($rating_scheme, $rating_value);
-				}
-			}
-			if (is_array($ratings_parent))
-			{
-				$ratings_parent = array_values(SimplePie_Misc::array_unique($ratings_parent));
-			}
-
-			// RESTRICTIONS
-			if ($restrictions = $this->get_item_tags(SIMPLEPIE_NAMESPACE_MEDIARSS, 'restriction'))
-			{
-				foreach ($restrictions as $restriction)
-				{
-					$restriction_relationship = null;
-					$restriction_type = null;
-					$restriction_value = null;
-					if (isset($restriction['attribs']['']['relationship']))
-					{
-						$restriction_relationship = $this->sanitize($restriction['attribs']['']['relationship'], SIMPLEPIE_CONSTRUCT_TEXT);
-					}
-					if (isset($restriction['attribs']['']['type']))
-					{
-						$restriction_type = $this->sanitize($restriction['attribs']['']['type'], SIMPLEPIE_CONSTRUCT_TEXT);
-					}
-					if (isset($restriction['data']))
-					{
-						$restriction_value = $this->sanitize($restriction['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-					}
-					$restrictions_parent[] =& new $this->feed->restriction_class($restriction_relationship, $restriction_type, $restriction_value);
-				}
-			}
-			elseif ($restrictions = $this->get_item_tags(SIMPLEPIE_NAMESPACE_ITUNES, 'block'))
-			{
-				foreach ($restrictions as $restriction)
-				{
-					$restriction_relationship = 'allow';
-					$restriction_type = null;
-					$restriction_value = 'itunes';
-					if (isset($restriction['data']) && strtolower($restriction['data']) === 'yes')
-					{
-						$restriction_relationship = 'deny';
-					}
-					$restrictions_parent[] =& new $this->feed->restriction_class($restriction_relationship, $restriction_type, $restriction_value);
-				}
-			}
-			elseif ($restrictions = $parent->get_channel_tags(SIMPLEPIE_NAMESPACE_MEDIARSS, 'restriction'))
-			{
-				foreach ($restrictions as $restriction)
-				{
-					$restriction_relationship = null;
-					$restriction_type = null;
-					$restriction_value = null;
-					if (isset($restriction['attribs']['']['relationship']))
-					{
-						$restriction_relationship = $this->sanitize($restriction['attribs']['']['relationship'], SIMPLEPIE_CONSTRUCT_TEXT);
-					}
-					if (isset($restriction['attribs']['']['type']))
-					{
-						$restriction_type = $this->sanitize($restriction['attribs']['']['type'], SIMPLEPIE_CONSTRUCT_TEXT);
-					}
-					if (isset($restriction['data']))
-					{
-						$restriction_value = $this->sanitize($restriction['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-					}
-					$restrictions_parent[] =& new $this->feed->restriction_class($restriction_relationship, $restriction_type, $restriction_value);
-				}
-			}
-			elseif ($restrictions = $parent->get_channel_tags(SIMPLEPIE_NAMESPACE_ITUNES, 'block'))
-			{
-				foreach ($restrictions as $restriction)
-				{
-					$restriction_relationship = 'allow';
-					$restriction_type = null;
-					$restriction_value = 'itunes';
-					if (isset($restriction['data']) && strtolower($restriction['data']) === 'yes')
-					{
-						$restriction_relationship = 'deny';
-					}
-					$restrictions_parent[] =& new $this->feed->restriction_class($restriction_relationship, $restriction_type, $restriction_value);
-				}
-			}
-			if (is_array($restrictions_parent))
-			{
-				$restrictions_parent = array_values(SimplePie_Misc::array_unique($restrictions_parent));
-			}
-
-			// THUMBNAILS
-			if ($thumbnails = $this->get_item_tags(SIMPLEPIE_NAMESPACE_MEDIARSS, 'thumbnail'))
-			{
-				foreach ($thumbnails as $thumbnail)
-				{
-					if (isset($thumbnail['attribs']['']['url']))
-					{
-						$thumbnails_parent[] = $this->sanitize($thumbnail['attribs']['']['url'], SIMPLEPIE_CONSTRUCT_IRI);
-					}
-				}
-			}
-			elseif ($thumbnails = $parent->get_channel_tags(SIMPLEPIE_NAMESPACE_MEDIARSS, 'thumbnail'))
-			{
-				foreach ($thumbnails as $thumbnail)
-				{
-					if (isset($thumbnail['attribs']['']['url']))
-					{
-						$thumbnails_parent[] = $this->sanitize($thumbnail['attribs']['']['url'], SIMPLEPIE_CONSTRUCT_IRI);
-					}
-				}
-			}
-
-			// TITLES
-			if ($title_parent = $this->get_item_tags(SIMPLEPIE_NAMESPACE_MEDIARSS, 'title'))
-			{
-				if (isset($title_parent[0]['data']))
-				{
-					$title_parent = $this->sanitize($title_parent[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-				}
-			}
-			elseif ($title_parent = $parent->get_channel_tags(SIMPLEPIE_NAMESPACE_MEDIARSS, 'title'))
-			{
-				if (isset($title_parent[0]['data']))
-				{
-					$title_parent = $this->sanitize($title_parent[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-				}
-			}
-
-			// Clear the memory
-			unset($parent);
-
-			// Attributes
-			$bitrate = null;
-			$channels = null;
-			$duration = null;
-			$expression = null;
-			$framerate = null;
-			$height = null;
-			$javascript = null;
-			$lang = null;
-			$length = null;
-			$medium = null;
-			$samplingrate = null;
-			$type = null;
-			$url = null;
-			$width = null;
-
-			// Elements
-			$captions = null;
-			$categories = null;
-			$copyrights = null;
-			$credits = null;
-			$description = null;
-			$hashes = null;
-			$keywords = null;
-			$player = null;
-			$ratings = null;
-			$restrictions = null;
-			$thumbnails = null;
-			$title = null;
-
-			// If we have media:group tags, loop through them.
-			foreach ((array) $this->get_item_tags(SIMPLEPIE_NAMESPACE_MEDIARSS, 'group') as $group)
-			{
-				if(isset($group['child']) && isset($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['content']))
-				{
-					// If we have media:content tags, loop through them.
-					foreach ((array) $group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['content'] as $content)
-					{
-						if (isset($content['attribs']['']['url']))
-						{
-							// Attributes
-							$bitrate = null;
-							$channels = null;
-							$duration = null;
-							$expression = null;
-							$framerate = null;
-							$height = null;
-							$javascript = null;
-							$lang = null;
-							$length = null;
-							$medium = null;
-							$samplingrate = null;
-							$type = null;
-							$url = null;
-							$width = null;
-
-							// Elements
-							$captions = null;
-							$categories = null;
-							$copyrights = null;
-							$credits = null;
-							$description = null;
-							$hashes = null;
-							$keywords = null;
-							$player = null;
-							$ratings = null;
-							$restrictions = null;
-							$thumbnails = null;
-							$title = null;
-
-							// Start checking the attributes of media:content
-							if (isset($content['attribs']['']['bitrate']))
-							{
-								$bitrate = $this->sanitize($content['attribs']['']['bitrate'], SIMPLEPIE_CONSTRUCT_TEXT);
-							}
-							if (isset($content['attribs']['']['channels']))
-							{
-								$channels = $this->sanitize($content['attribs']['']['channels'], SIMPLEPIE_CONSTRUCT_TEXT);
-							}
-							if (isset($content['attribs']['']['duration']))
-							{
-								$duration = $this->sanitize($content['attribs']['']['duration'], SIMPLEPIE_CONSTRUCT_TEXT);
-							}
-							else
-							{
-								$duration = $duration_parent;
-							}
-							if (isset($content['attribs']['']['expression']))
-							{
-								$expression = $this->sanitize($content['attribs']['']['expression'], SIMPLEPIE_CONSTRUCT_TEXT);
-							}
-							if (isset($content['attribs']['']['framerate']))
-							{
-								$framerate = $this->sanitize($content['attribs']['']['framerate'], SIMPLEPIE_CONSTRUCT_TEXT);
-							}
-							if (isset($content['attribs']['']['height']))
-							{
-								$height = $this->sanitize($content['attribs']['']['height'], SIMPLEPIE_CONSTRUCT_TEXT);
-							}
-							if (isset($content['attribs']['']['lang']))
-							{
-								$lang = $this->sanitize($content['attribs']['']['lang'], SIMPLEPIE_CONSTRUCT_TEXT);
-							}
-							if (isset($content['attribs']['']['fileSize']))
-							{
-								$length = ceil($content['attribs']['']['fileSize']);
-							}
-							if (isset($content['attribs']['']['medium']))
-							{
-								$medium = $this->sanitize($content['attribs']['']['medium'], SIMPLEPIE_CONSTRUCT_TEXT);
-							}
-							if (isset($content['attribs']['']['samplingrate']))
-							{
-								$samplingrate = $this->sanitize($content['attribs']['']['samplingrate'], SIMPLEPIE_CONSTRUCT_TEXT);
-							}
-							if (isset($content['attribs']['']['type']))
-							{
-								$type = $this->sanitize($content['attribs']['']['type'], SIMPLEPIE_CONSTRUCT_TEXT);
-							}
-							if (isset($content['attribs']['']['width']))
-							{
-								$width = $this->sanitize($content['attribs']['']['width'], SIMPLEPIE_CONSTRUCT_TEXT);
-							}
-							$url = $this->sanitize($content['attribs']['']['url'], SIMPLEPIE_CONSTRUCT_IRI);
-
-							// Checking the other optional media: elements. Priority: media:content, media:group, item, channel
-
-							// CAPTIONS
-							if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['text']))
-							{
-								foreach ($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['text'] as $caption)
-								{
-									$caption_type = null;
-									$caption_lang = null;
-									$caption_startTime = null;
-									$caption_endTime = null;
-									$caption_text = null;
-									if (isset($caption['attribs']['']['type']))
-									{
-										$caption_type = $this->sanitize($caption['attribs']['']['type'], SIMPLEPIE_CONSTRUCT_TEXT);
-									}
-									if (isset($caption['attribs']['']['lang']))
-									{
-										$caption_lang = $this->sanitize($caption['attribs']['']['lang'], SIMPLEPIE_CONSTRUCT_TEXT);
-									}
-									if (isset($caption['attribs']['']['start']))
-									{
-										$caption_startTime = $this->sanitize($caption['attribs']['']['start'], SIMPLEPIE_CONSTRUCT_TEXT);
-									}
-									if (isset($caption['attribs']['']['end']))
-									{
-										$caption_endTime = $this->sanitize($caption['attribs']['']['end'], SIMPLEPIE_CONSTRUCT_TEXT);
-									}
-									if (isset($caption['data']))
-									{
-										$caption_text = $this->sanitize($caption['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-									}
-									$captions[] =& new $this->feed->caption_class($caption_type, $caption_lang, $caption_startTime, $caption_endTime, $caption_text);
-								}
-								if (is_array($captions))
-								{
-									$captions = array_values(SimplePie_Misc::array_unique($captions));
-								}
-							}
-							elseif (isset($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['text']))
-							{
-								foreach ($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['text'] as $caption)
-								{
-									$caption_type = null;
-									$caption_lang = null;
-									$caption_startTime = null;
-									$caption_endTime = null;
-									$caption_text = null;
-									if (isset($caption['attribs']['']['type']))
-									{
-										$caption_type = $this->sanitize($caption['attribs']['']['type'], SIMPLEPIE_CONSTRUCT_TEXT);
-									}
-									if (isset($caption['attribs']['']['lang']))
-									{
-										$caption_lang = $this->sanitize($caption['attribs']['']['lang'], SIMPLEPIE_CONSTRUCT_TEXT);
-									}
-									if (isset($caption['attribs']['']['start']))
-									{
-										$caption_startTime = $this->sanitize($caption['attribs']['']['start'], SIMPLEPIE_CONSTRUCT_TEXT);
-									}
-									if (isset($caption['attribs']['']['end']))
-									{
-										$caption_endTime = $this->sanitize($caption['attribs']['']['end'], SIMPLEPIE_CONSTRUCT_TEXT);
-									}
-									if (isset($caption['data']))
-									{
-										$caption_text = $this->sanitize($caption['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-									}
-									$captions[] =& new $this->feed->caption_class($caption_type, $caption_lang, $caption_startTime, $caption_endTime, $caption_text);
-								}
-								if (is_array($captions))
-								{
-									$captions = array_values(SimplePie_Misc::array_unique($captions));
-								}
-							}
-							else
-							{
-								$captions = $captions_parent;
-							}
-
-							// CATEGORIES
-							if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['category']))
-							{
-								foreach ((array) $content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['category'] as $category)
-								{
-									$term = null;
-									$scheme = null;
-									$label = null;
-									if (isset($category['data']))
-									{
-										$term = $this->sanitize($category['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-									}
-									if (isset($category['attribs']['']['scheme']))
-									{
-										$scheme = $this->sanitize($category['attribs']['']['scheme'], SIMPLEPIE_CONSTRUCT_TEXT);
-									}
-									else
-									{
-										$scheme = 'http://search.yahoo.com/mrss/category_schema';
-									}
-									if (isset($category['attribs']['']['label']))
-									{
-										$label = $this->sanitize($category['attribs']['']['label'], SIMPLEPIE_CONSTRUCT_TEXT);
-									}
-									$categories[] =& new $this->feed->category_class($term, $scheme, $label);
-								}
-							}
-							if (isset($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['category']))
-							{
-								foreach ((array) $group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['category'] as $category)
-								{
-									$term = null;
-									$scheme = null;
-									$label = null;
-									if (isset($category['data']))
-									{
-										$term = $this->sanitize($category['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-									}
-									if (isset($category['attribs']['']['scheme']))
-									{
-										$scheme = $this->sanitize($category['attribs']['']['scheme'], SIMPLEPIE_CONSTRUCT_TEXT);
-									}
-									else
-									{
-										$scheme = 'http://search.yahoo.com/mrss/category_schema';
-									}
-									if (isset($category['attribs']['']['label']))
-									{
-										$label = $this->sanitize($category['attribs']['']['label'], SIMPLEPIE_CONSTRUCT_TEXT);
-									}
-									$categories[] =& new $this->feed->category_class($term, $scheme, $label);
-								}
-							}
-							if (is_array($categories) && is_array($categories_parent))
-							{
-								$categories = array_values(SimplePie_Misc::array_unique(array_merge($categories, $categories_parent)));
-							}
-							elseif (is_array($categories))
-							{
-								$categories = array_values(SimplePie_Misc::array_unique($categories));
-							}
-							elseif (is_array($categories_parent))
-							{
-								$categories = array_values(SimplePie_Misc::array_unique($categories_parent));
-							}
-
-							// COPYRIGHTS
-							if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['copyright']))
-							{
-								$copyright_url = null;
-								$copyright_label = null;
-								if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['copyright'][0]['attribs']['']['url']))
-								{
-									$copyright_url = $this->sanitize($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['copyright'][0]['attribs']['']['url'], SIMPLEPIE_CONSTRUCT_TEXT);
-								}
-								if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['copyright'][0]['data']))
-								{
-									$copyright_label = $this->sanitize($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['copyright'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-								}
-								$copyrights =& new $this->feed->copyright_class($copyright_url, $copyright_label);
-							}
-							elseif (isset($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['copyright']))
-							{
-								$copyright_url = null;
-								$copyright_label = null;
-								if (isset($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['copyright'][0]['attribs']['']['url']))
-								{
-									$copyright_url = $this->sanitize($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['copyright'][0]['attribs']['']['url'], SIMPLEPIE_CONSTRUCT_TEXT);
-								}
-								if (isset($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['copyright'][0]['data']))
-								{
-									$copyright_label = $this->sanitize($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['copyright'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-								}
-								$copyrights =& new $this->feed->copyright_class($copyright_url, $copyright_label);
-							}
-							else
-							{
-								$copyrights = $copyrights_parent;
-							}
-
-							// CREDITS
-							if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['credit']))
-							{
-								foreach ($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['credit'] as $credit)
-								{
-									$credit_role = null;
-									$credit_scheme = null;
-									$credit_name = null;
-									if (isset($credit['attribs']['']['role']))
-									{
-										$credit_role = $this->sanitize($credit['attribs']['']['role'], SIMPLEPIE_CONSTRUCT_TEXT);
-									}
-									if (isset($credit['attribs']['']['scheme']))
-									{
-										$credit_scheme = $this->sanitize($credit['attribs']['']['scheme'], SIMPLEPIE_CONSTRUCT_TEXT);
-									}
-									else
-									{
-										$credit_scheme = 'urn:ebu';
-									}
-									if (isset($credit['data']))
-									{
-										$credit_name = $this->sanitize($credit['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-									}
-									$credits[] =& new $this->feed->credit_class($credit_role, $credit_scheme, $credit_name);
-								}
-								if (is_array($credits))
-								{
-									$credits = array_values(SimplePie_Misc::array_unique($credits));
-								}
-							}
-							elseif (isset($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['credit']))
-							{
-								foreach ($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['credit'] as $credit)
-								{
-									$credit_role = null;
-									$credit_scheme = null;
-									$credit_name = null;
-									if (isset($credit['attribs']['']['role']))
-									{
-										$credit_role = $this->sanitize($credit['attribs']['']['role'], SIMPLEPIE_CONSTRUCT_TEXT);
-									}
-									if (isset($credit['attribs']['']['scheme']))
-									{
-										$credit_scheme = $this->sanitize($credit['attribs']['']['scheme'], SIMPLEPIE_CONSTRUCT_TEXT);
-									}
-									else
-									{
-										$credit_scheme = 'urn:ebu';
-									}
-									if (isset($credit['data']))
-									{
-										$credit_name = $this->sanitize($credit['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-									}
-									$credits[] =& new $this->feed->credit_class($credit_role, $credit_scheme, $credit_name);
-								}
-								if (is_array($credits))
-								{
-									$credits = array_values(SimplePie_Misc::array_unique($credits));
-								}
-							}
-							else
-							{
-								$credits = $credits_parent;
-							}
-
-							// DESCRIPTION
-							if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['description']))
-							{
-								$description = $this->sanitize($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['description'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-							}
-							elseif (isset($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['description']))
-							{
-								$description = $this->sanitize($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['description'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-							}
-							else
-							{
-								$description = $description_parent;
-							}
-
-							// HASHES
-							if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['hash']))
-							{
-								foreach ($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['hash'] as $hash)
-								{
-									$value = null;
-									$algo = null;
-									if (isset($hash['data']))
-									{
-										$value = $this->sanitize($hash['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-									}
-									if (isset($hash['attribs']['']['algo']))
-									{
-										$algo = $this->sanitize($hash['attribs']['']['algo'], SIMPLEPIE_CONSTRUCT_TEXT);
-									}
-									else
-									{
-										$algo = 'md5';
-									}
-									$hashes[] = $algo.':'.$value;
-								}
-								if (is_array($hashes))
-								{
-									$hashes = array_values(SimplePie_Misc::array_unique($hashes));
-								}
-							}
-							elseif (isset($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['hash']))
-							{
-								foreach ($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['hash'] as $hash)
-								{
-									$value = null;
-									$algo = null;
-									if (isset($hash['data']))
-									{
-										$value = $this->sanitize($hash['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-									}
-									if (isset($hash['attribs']['']['algo']))
-									{
-										$algo = $this->sanitize($hash['attribs']['']['algo'], SIMPLEPIE_CONSTRUCT_TEXT);
-									}
-									else
-									{
-										$algo = 'md5';
-									}
-									$hashes[] = $algo.':'.$value;
-								}
-								if (is_array($hashes))
-								{
-									$hashes = array_values(SimplePie_Misc::array_unique($hashes));
-								}
-							}
-							else
-							{
-								$hashes = $hashes_parent;
-							}
-
-							// KEYWORDS
-							if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['keywords']))
-							{
-								if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['keywords'][0]['data']))
-								{
-									$temp = explode(',', $this->sanitize($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['keywords'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT));
-									foreach ($temp as $word)
-									{
-										$keywords[] = trim($word);
-									}
-									unset($temp);
-								}
-								if (is_array($keywords))
-								{
-									$keywords = array_values(SimplePie_Misc::array_unique($keywords));
-								}
-							}
-							elseif (isset($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['keywords']))
-							{
-								if (isset($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['keywords'][0]['data']))
-								{
-									$temp = explode(',', $this->sanitize($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['keywords'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT));
-									foreach ($temp as $word)
-									{
-										$keywords[] = trim($word);
-									}
-									unset($temp);
-								}
-								if (is_array($keywords))
-								{
-									$keywords = array_values(SimplePie_Misc::array_unique($keywords));
-								}
-							}
-							else
-							{
-								$keywords = $keywords_parent;
-							}
-
-							// PLAYER
-							if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['player']))
-							{
-								$player = $this->sanitize($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['player'][0]['attribs']['']['url'], SIMPLEPIE_CONSTRUCT_IRI);
-							}
-							elseif (isset($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['player']))
-							{
-								$player = $this->sanitize($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['player'][0]['attribs']['']['url'], SIMPLEPIE_CONSTRUCT_IRI);
-							}
-							else
-							{
-								$player = $player_parent;
-							}
-
-							// RATINGS
-							if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['rating']))
-							{
-								foreach ($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['rating'] as $rating)
-								{
-									$rating_scheme = null;
-									$rating_value = null;
-									if (isset($rating['attribs']['']['scheme']))
-									{
-										$rating_scheme = $this->sanitize($rating['attribs']['']['scheme'], SIMPLEPIE_CONSTRUCT_TEXT);
-									}
-									else
-									{
-										$rating_scheme = 'urn:simple';
-									}
-									if (isset($rating['data']))
-									{
-										$rating_value = $this->sanitize($rating['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-									}
-									$ratings[] =& new $this->feed->rating_class($rating_scheme, $rating_value);
-								}
-								if (is_array($ratings))
-								{
-									$ratings = array_values(SimplePie_Misc::array_unique($ratings));
-								}
-							}
-							elseif (isset($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['rating']))
-							{
-								foreach ($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['rating'] as $rating)
-								{
-									$rating_scheme = null;
-									$rating_value = null;
-									if (isset($rating['attribs']['']['scheme']))
-									{
-										$rating_scheme = $this->sanitize($rating['attribs']['']['scheme'], SIMPLEPIE_CONSTRUCT_TEXT);
-									}
-									else
-									{
-										$rating_scheme = 'urn:simple';
-									}
-									if (isset($rating['data']))
-									{
-										$rating_value = $this->sanitize($rating['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-									}
-									$ratings[] =& new $this->feed->rating_class($rating_scheme, $rating_value);
-								}
-								if (is_array($ratings))
-								{
-									$ratings = array_values(SimplePie_Misc::array_unique($ratings));
-								}
-							}
-							else
-							{
-								$ratings = $ratings_parent;
-							}
-
-							// RESTRICTIONS
-							if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['restriction']))
-							{
-								foreach ($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['restriction'] as $restriction)
-								{
-									$restriction_relationship = null;
-									$restriction_type = null;
-									$restriction_value = null;
-									if (isset($restriction['attribs']['']['relationship']))
-									{
-										$restriction_relationship = $this->sanitize($restriction['attribs']['']['relationship'], SIMPLEPIE_CONSTRUCT_TEXT);
-									}
-									if (isset($restriction['attribs']['']['type']))
-									{
-										$restriction_type = $this->sanitize($restriction['attribs']['']['type'], SIMPLEPIE_CONSTRUCT_TEXT);
-									}
-									if (isset($restriction['data']))
-									{
-										$restriction_value = $this->sanitize($restriction['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-									}
-									$restrictions[] =& new $this->feed->restriction_class($restriction_relationship, $restriction_type, $restriction_value);
-								}
-								if (is_array($restrictions))
-								{
-									$restrictions = array_values(SimplePie_Misc::array_unique($restrictions));
-								}
-							}
-							elseif (isset($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['restriction']))
-							{
-								foreach ($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['restriction'] as $restriction)
-								{
-									$restriction_relationship = null;
-									$restriction_type = null;
-									$restriction_value = null;
-									if (isset($restriction['attribs']['']['relationship']))
-									{
-										$restriction_relationship = $this->sanitize($restriction['attribs']['']['relationship'], SIMPLEPIE_CONSTRUCT_TEXT);
-									}
-									if (isset($restriction['attribs']['']['type']))
-									{
-										$restriction_type = $this->sanitize($restriction['attribs']['']['type'], SIMPLEPIE_CONSTRUCT_TEXT);
-									}
-									if (isset($restriction['data']))
-									{
-										$restriction_value = $this->sanitize($restriction['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-									}
-									$restrictions[] =& new $this->feed->restriction_class($restriction_relationship, $restriction_type, $restriction_value);
-								}
-								if (is_array($restrictions))
-								{
-									$restrictions = array_values(SimplePie_Misc::array_unique($restrictions));
-								}
-							}
-							else
-							{
-								$restrictions = $restrictions_parent;
-							}
-
-							// THUMBNAILS
-							if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['thumbnail']))
-							{
-								foreach ($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['thumbnail'] as $thumbnail)
-								{
-									$thumbnails[] = $this->sanitize($thumbnail['attribs']['']['url'], SIMPLEPIE_CONSTRUCT_IRI);
-								}
-								if (is_array($thumbnails))
-								{
-									$thumbnails = array_values(SimplePie_Misc::array_unique($thumbnails));
-								}
-							}
-							elseif (isset($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['thumbnail']))
-							{
-								foreach ($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['thumbnail'] as $thumbnail)
-								{
-									$thumbnails[] = $this->sanitize($thumbnail['attribs']['']['url'], SIMPLEPIE_CONSTRUCT_IRI);
-								}
-								if (is_array($thumbnails))
-								{
-									$thumbnails = array_values(SimplePie_Misc::array_unique($thumbnails));
-								}
-							}
-							else
-							{
-								$thumbnails = $thumbnails_parent;
-							}
-
-							// TITLES
-							if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['title']))
-							{
-								$title = $this->sanitize($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['title'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-							}
-							elseif (isset($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['title']))
-							{
-								$title = $this->sanitize($group['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['title'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-							}
-							else
-							{
-								$title = $title_parent;
-							}
-
-							$this->data['enclosures'][] =& new $this->feed->enclosure_class($url, $type, $length, $this->feed->javascript, $bitrate, $captions, $categories, $channels, $copyrights, $credits, $description, $duration, $expression, $framerate, $hashes, $height, $keywords, $lang, $medium, $player, $ratings, $restrictions, $samplingrate, $thumbnails, $title, $width);
-						}
-					}
-				}
-			}
-
-			// If we have standalone media:content tags, loop through them.
-			if (isset($this->data['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['content']))
-			{
-				foreach ((array) $this->data['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['content'] as $content)
-				{
-					if (isset($content['attribs']['']['url']) || isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['player']))
-					{
-						// Attributes
-						$bitrate = null;
-						$channels = null;
-						$duration = null;
-						$expression = null;
-						$framerate = null;
-						$height = null;
-						$javascript = null;
-						$lang = null;
-						$length = null;
-						$medium = null;
-						$samplingrate = null;
-						$type = null;
-						$url = null;
-						$width = null;
-
-						// Elements
-						$captions = null;
-						$categories = null;
-						$copyrights = null;
-						$credits = null;
-						$description = null;
-						$hashes = null;
-						$keywords = null;
-						$player = null;
-						$ratings = null;
-						$restrictions = null;
-						$thumbnails = null;
-						$title = null;
-
-						// Start checking the attributes of media:content
-						if (isset($content['attribs']['']['bitrate']))
-						{
-							$bitrate = $this->sanitize($content['attribs']['']['bitrate'], SIMPLEPIE_CONSTRUCT_TEXT);
-						}
-						if (isset($content['attribs']['']['channels']))
-						{
-							$channels = $this->sanitize($content['attribs']['']['channels'], SIMPLEPIE_CONSTRUCT_TEXT);
-						}
-						if (isset($content['attribs']['']['duration']))
-						{
-							$duration = $this->sanitize($content['attribs']['']['duration'], SIMPLEPIE_CONSTRUCT_TEXT);
-						}
-						else
-						{
-							$duration = $duration_parent;
-						}
-						if (isset($content['attribs']['']['expression']))
-						{
-							$expression = $this->sanitize($content['attribs']['']['expression'], SIMPLEPIE_CONSTRUCT_TEXT);
-						}
-						if (isset($content['attribs']['']['framerate']))
-						{
-							$framerate = $this->sanitize($content['attribs']['']['framerate'], SIMPLEPIE_CONSTRUCT_TEXT);
-						}
-						if (isset($content['attribs']['']['height']))
-						{
-							$height = $this->sanitize($content['attribs']['']['height'], SIMPLEPIE_CONSTRUCT_TEXT);
-						}
-						if (isset($content['attribs']['']['lang']))
-						{
-							$lang = $this->sanitize($content['attribs']['']['lang'], SIMPLEPIE_CONSTRUCT_TEXT);
-						}
-						if (isset($content['attribs']['']['fileSize']))
-						{
-							$length = ceil($content['attribs']['']['fileSize']);
-						}
-						if (isset($content['attribs']['']['medium']))
-						{
-							$medium = $this->sanitize($content['attribs']['']['medium'], SIMPLEPIE_CONSTRUCT_TEXT);
-						}
-						if (isset($content['attribs']['']['samplingrate']))
-						{
-							$samplingrate = $this->sanitize($content['attribs']['']['samplingrate'], SIMPLEPIE_CONSTRUCT_TEXT);
-						}
-						if (isset($content['attribs']['']['type']))
-						{
-							$type = $this->sanitize($content['attribs']['']['type'], SIMPLEPIE_CONSTRUCT_TEXT);
-						}
-						if (isset($content['attribs']['']['width']))
-						{
-							$width = $this->sanitize($content['attribs']['']['width'], SIMPLEPIE_CONSTRUCT_TEXT);
-						}
-						if (isset($content['attribs']['']['url']))
-						{
-							$url = $this->sanitize($content['attribs']['']['url'], SIMPLEPIE_CONSTRUCT_IRI);
-						}
-						// Checking the other optional media: elements. Priority: media:content, media:group, item, channel
-
-						// CAPTIONS
-						if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['text']))
-						{
-							foreach ($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['text'] as $caption)
-							{
-								$caption_type = null;
-								$caption_lang = null;
-								$caption_startTime = null;
-								$caption_endTime = null;
-								$caption_text = null;
-								if (isset($caption['attribs']['']['type']))
-								{
-									$caption_type = $this->sanitize($caption['attribs']['']['type'], SIMPLEPIE_CONSTRUCT_TEXT);
-								}
-								if (isset($caption['attribs']['']['lang']))
-								{
-									$caption_lang = $this->sanitize($caption['attribs']['']['lang'], SIMPLEPIE_CONSTRUCT_TEXT);
-								}
-								if (isset($caption['attribs']['']['start']))
-								{
-									$caption_startTime = $this->sanitize($caption['attribs']['']['start'], SIMPLEPIE_CONSTRUCT_TEXT);
-								}
-								if (isset($caption['attribs']['']['end']))
-								{
-									$caption_endTime = $this->sanitize($caption['attribs']['']['end'], SIMPLEPIE_CONSTRUCT_TEXT);
-								}
-								if (isset($caption['data']))
-								{
-									$caption_text = $this->sanitize($caption['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-								}
-								$captions[] =& new $this->feed->caption_class($caption_type, $caption_lang, $caption_startTime, $caption_endTime, $caption_text);
-							}
-							if (is_array($captions))
-							{
-								$captions = array_values(SimplePie_Misc::array_unique($captions));
-							}
-						}
-						else
-						{
-							$captions = $captions_parent;
-						}
-
-						// CATEGORIES
-						if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['category']))
-						{
-							foreach ((array) $content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['category'] as $category)
-							{
-								$term = null;
-								$scheme = null;
-								$label = null;
-								if (isset($category['data']))
-								{
-									$term = $this->sanitize($category['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-								}
-								if (isset($category['attribs']['']['scheme']))
-								{
-									$scheme = $this->sanitize($category['attribs']['']['scheme'], SIMPLEPIE_CONSTRUCT_TEXT);
-								}
-								else
-								{
-									$scheme = 'http://search.yahoo.com/mrss/category_schema';
-								}
-								if (isset($category['attribs']['']['label']))
-								{
-									$label = $this->sanitize($category['attribs']['']['label'], SIMPLEPIE_CONSTRUCT_TEXT);
-								}
-								$categories[] =& new $this->feed->category_class($term, $scheme, $label);
-							}
-						}
-						if (is_array($categories) && is_array($categories_parent))
-						{
-							$categories = array_values(SimplePie_Misc::array_unique(array_merge($categories, $categories_parent)));
-						}
-						elseif (is_array($categories))
-						{
-							$categories = array_values(SimplePie_Misc::array_unique($categories));
-						}
-						elseif (is_array($categories_parent))
-						{
-							$categories = array_values(SimplePie_Misc::array_unique($categories_parent));
-						}
-						else
-						{
-							$categories = null;
-						}
-
-						// COPYRIGHTS
-						if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['copyright']))
-						{
-							$copyright_url = null;
-							$copyright_label = null;
-							if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['copyright'][0]['attribs']['']['url']))
-							{
-								$copyright_url = $this->sanitize($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['copyright'][0]['attribs']['']['url'], SIMPLEPIE_CONSTRUCT_TEXT);
-							}
-							if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['copyright'][0]['data']))
-							{
-								$copyright_label = $this->sanitize($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['copyright'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-							}
-							$copyrights =& new $this->feed->copyright_class($copyright_url, $copyright_label);
-						}
-						else
-						{
-							$copyrights = $copyrights_parent;
-						}
-
-						// CREDITS
-						if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['credit']))
-						{
-							foreach ($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['credit'] as $credit)
-							{
-								$credit_role = null;
-								$credit_scheme = null;
-								$credit_name = null;
-								if (isset($credit['attribs']['']['role']))
-								{
-									$credit_role = $this->sanitize($credit['attribs']['']['role'], SIMPLEPIE_CONSTRUCT_TEXT);
-								}
-								if (isset($credit['attribs']['']['scheme']))
-								{
-									$credit_scheme = $this->sanitize($credit['attribs']['']['scheme'], SIMPLEPIE_CONSTRUCT_TEXT);
-								}
-								else
-								{
-									$credit_scheme = 'urn:ebu';
-								}
-								if (isset($credit['data']))
-								{
-									$credit_name = $this->sanitize($credit['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-								}
-								$credits[] =& new $this->feed->credit_class($credit_role, $credit_scheme, $credit_name);
-							}
-							if (is_array($credits))
-							{
-								$credits = array_values(SimplePie_Misc::array_unique($credits));
-							}
-						}
-						else
-						{
-							$credits = $credits_parent;
-						}
-
-						// DESCRIPTION
-						if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['description']))
-						{
-							$description = $this->sanitize($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['description'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-						}
-						else
-						{
-							$description = $description_parent;
-						}
-
-						// HASHES
-						if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['hash']))
-						{
-							foreach ($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['hash'] as $hash)
-							{
-								$value = null;
-								$algo = null;
-								if (isset($hash['data']))
-								{
-									$value = $this->sanitize($hash['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-								}
-								if (isset($hash['attribs']['']['algo']))
-								{
-									$algo = $this->sanitize($hash['attribs']['']['algo'], SIMPLEPIE_CONSTRUCT_TEXT);
-								}
-								else
-								{
-									$algo = 'md5';
-								}
-								$hashes[] = $algo.':'.$value;
-							}
-							if (is_array($hashes))
-							{
-								$hashes = array_values(SimplePie_Misc::array_unique($hashes));
-							}
-						}
-						else
-						{
-							$hashes = $hashes_parent;
-						}
-
-						// KEYWORDS
-						if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['keywords']))
-						{
-							if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['keywords'][0]['data']))
-							{
-								$temp = explode(',', $this->sanitize($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['keywords'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT));
-								foreach ($temp as $word)
-								{
-									$keywords[] = trim($word);
-								}
-								unset($temp);
-							}
-							if (is_array($keywords))
-							{
-								$keywords = array_values(SimplePie_Misc::array_unique($keywords));
-							}
-						}
-						else
-						{
-							$keywords = $keywords_parent;
-						}
-
-						// PLAYER
-						if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['player']))
-						{
-							$player = $this->sanitize($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['player'][0]['attribs']['']['url'], SIMPLEPIE_CONSTRUCT_IRI);
-						}
-						else
-						{
-							$player = $player_parent;
-						}
-
-						// RATINGS
-						if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['rating']))
-						{
-							foreach ($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['rating'] as $rating)
-							{
-								$rating_scheme = null;
-								$rating_value = null;
-								if (isset($rating['attribs']['']['scheme']))
-								{
-									$rating_scheme = $this->sanitize($rating['attribs']['']['scheme'], SIMPLEPIE_CONSTRUCT_TEXT);
-								}
-								else
-								{
-									$rating_scheme = 'urn:simple';
-								}
-								if (isset($rating['data']))
-								{
-									$rating_value = $this->sanitize($rating['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-								}
-								$ratings[] =& new $this->feed->rating_class($rating_scheme, $rating_value);
-							}
-							if (is_array($ratings))
-							{
-								$ratings = array_values(SimplePie_Misc::array_unique($ratings));
-							}
-						}
-						else
-						{
-							$ratings = $ratings_parent;
-						}
-
-						// RESTRICTIONS
-						if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['restriction']))
-						{
-							foreach ($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['restriction'] as $restriction)
-							{
-								$restriction_relationship = null;
-								$restriction_type = null;
-								$restriction_value = null;
-								if (isset($restriction['attribs']['']['relationship']))
-								{
-									$restriction_relationship = $this->sanitize($restriction['attribs']['']['relationship'], SIMPLEPIE_CONSTRUCT_TEXT);
-								}
-								if (isset($restriction['attribs']['']['type']))
-								{
-									$restriction_type = $this->sanitize($restriction['attribs']['']['type'], SIMPLEPIE_CONSTRUCT_TEXT);
-								}
-								if (isset($restriction['data']))
-								{
-									$restriction_value = $this->sanitize($restriction['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-								}
-								$restrictions[] =& new $this->feed->restriction_class($restriction_relationship, $restriction_type, $restriction_value);
-							}
-							if (is_array($restrictions))
-							{
-								$restrictions = array_values(SimplePie_Misc::array_unique($restrictions));
-							}
-						}
-						else
-						{
-							$restrictions = $restrictions_parent;
-						}
-
-						// THUMBNAILS
-						if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['thumbnail']))
-						{
-							foreach ($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['thumbnail'] as $thumbnail)
-							{
-								$thumbnails[] = $this->sanitize($thumbnail['attribs']['']['url'], SIMPLEPIE_CONSTRUCT_IRI);
-							}
-							if (is_array($thumbnails))
-							{
-								$thumbnails = array_values(SimplePie_Misc::array_unique($thumbnails));
-							}
-						}
-						else
-						{
-							$thumbnails = $thumbnails_parent;
-						}
-
-						// TITLES
-						if (isset($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['title']))
-						{
-							$title = $this->sanitize($content['child'][SIMPLEPIE_NAMESPACE_MEDIARSS]['title'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-						}
-						else
-						{
-							$title = $title_parent;
-						}
-
-						$this->data['enclosures'][] =& new $this->feed->enclosure_class($url, $type, $length, $this->feed->javascript, $bitrate, $captions, $categories, $channels, $copyrights, $credits, $description, $duration, $expression, $framerate, $hashes, $height, $keywords, $lang, $medium, $player, $ratings, $restrictions, $samplingrate, $thumbnails, $title, $width);
-					}
-				}
-			}
-
-			foreach ((array) $this->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'link') as $link)
-			{
-				if (isset($link['attribs']['']['href']) && !empty($link['attribs']['']['rel']) && $link['attribs']['']['rel'] === 'enclosure')
-				{
-					// Attributes
-					$bitrate = null;
-					$channels = null;
-					$duration = null;
-					$expression = null;
-					$framerate = null;
-					$height = null;
-					$javascript = null;
-					$lang = null;
-					$length = null;
-					$medium = null;
-					$samplingrate = null;
-					$type = null;
-					$url = null;
-					$width = null;
-
-					$url = $this->sanitize($link['attribs']['']['href'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($link));
-					if (isset($link['attribs']['']['type']))
-					{
-						$type = $this->sanitize($link['attribs']['']['type'], SIMPLEPIE_CONSTRUCT_TEXT);
-					}
-					if (isset($link['attribs']['']['length']))
-					{
-						$length = ceil($link['attribs']['']['length']);
-					}
-
-					// Since we don't have group or content for these, we'll just pass the '*_parent' variables directly to the constructor
-					$this->data['enclosures'][] =& new $this->feed->enclosure_class($url, $type, $length, $this->feed->javascript, $bitrate, $captions_parent, $categories_parent, $channels, $copyrights_parent, $credits_parent, $description_parent, $duration_parent, $expression, $framerate, $hashes_parent, $height, $keywords_parent, $lang, $medium, $player_parent, $ratings_parent, $restrictions_parent, $samplingrate, $thumbnails_parent, $title_parent, $width);
-				}
-			}
-
-			foreach ((array) $this->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_03, 'link') as $link)
-			{
-				if (isset($link['attribs']['']['href']) && !empty($link['attribs']['']['rel']) && $link['attribs']['']['rel'] === 'enclosure')
-				{
-					// Attributes
-					$bitrate = null;
-					$channels = null;
-					$duration = null;
-					$expression = null;
-					$framerate = null;
-					$height = null;
-					$javascript = null;
-					$lang = null;
-					$length = null;
-					$medium = null;
-					$samplingrate = null;
-					$type = null;
-					$url = null;
-					$width = null;
-
-					$url = $this->sanitize($link['attribs']['']['href'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($link));
-					if (isset($link['attribs']['']['type']))
-					{
-						$type = $this->sanitize($link['attribs']['']['type'], SIMPLEPIE_CONSTRUCT_TEXT);
-					}
-					if (isset($link['attribs']['']['length']))
-					{
-						$length = ceil($link['attribs']['']['length']);
-					}
-
-					// Since we don't have group or content for these, we'll just pass the '*_parent' variables directly to the constructor
-					$this->data['enclosures'][] =& new $this->feed->enclosure_class($url, $type, $length, $this->feed->javascript, $bitrate, $captions_parent, $categories_parent, $channels, $copyrights_parent, $credits_parent, $description_parent, $duration_parent, $expression, $framerate, $hashes_parent, $height, $keywords_parent, $lang, $medium, $player_parent, $ratings_parent, $restrictions_parent, $samplingrate, $thumbnails_parent, $title_parent, $width);
-				}
-			}
-
-			if ($enclosure = $this->get_item_tags(SIMPLEPIE_NAMESPACE_RSS_20, 'enclosure'))
-			{
-				if (isset($enclosure[0]['attribs']['']['url']))
-				{
-					// Attributes
-					$bitrate = null;
-					$channels = null;
-					$duration = null;
-					$expression = null;
-					$framerate = null;
-					$height = null;
-					$javascript = null;
-					$lang = null;
-					$length = null;
-					$medium = null;
-					$samplingrate = null;
-					$type = null;
-					$url = null;
-					$width = null;
-
-					$url = $this->sanitize($enclosure[0]['attribs']['']['url'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($enclosure[0]));
-					if (isset($enclosure[0]['attribs']['']['type']))
-					{
-						$type = $this->sanitize($enclosure[0]['attribs']['']['type'], SIMPLEPIE_CONSTRUCT_TEXT);
-					}
-					if (isset($enclosure[0]['attribs']['']['length']))
-					{
-						$length = ceil($enclosure[0]['attribs']['']['length']);
-					}
-
-					// Since we don't have group or content for these, we'll just pass the '*_parent' variables directly to the constructor
-					$this->data['enclosures'][] =& new $this->feed->enclosure_class($url, $type, $length, $this->feed->javascript, $bitrate, $captions_parent, $categories_parent, $channels, $copyrights_parent, $credits_parent, $description_parent, $duration_parent, $expression, $framerate, $hashes_parent, $height, $keywords_parent, $lang, $medium, $player_parent, $ratings_parent, $restrictions_parent, $samplingrate, $thumbnails_parent, $title_parent, $width);
-				}
-			}
-
-			if (sizeof($this->data['enclosures']) === 0 && ($url || $type || $length || $bitrate || $captions_parent || $categories_parent || $channels || $copyrights_parent || $credits_parent || $description_parent || $duration_parent || $expression || $framerate || $hashes_parent || $height || $keywords_parent || $lang || $medium || $player_parent || $ratings_parent || $restrictions_parent || $samplingrate || $thumbnails_parent || $title_parent || $width))
-			{
-				// Since we don't have group or content for these, we'll just pass the '*_parent' variables directly to the constructor
-				$this->data['enclosures'][] =& new $this->feed->enclosure_class($url, $type, $length, $this->feed->javascript, $bitrate, $captions_parent, $categories_parent, $channels, $copyrights_parent, $credits_parent, $description_parent, $duration_parent, $expression, $framerate, $hashes_parent, $height, $keywords_parent, $lang, $medium, $player_parent, $ratings_parent, $restrictions_parent, $samplingrate, $thumbnails_parent, $title_parent, $width);
-			}
-
-			$this->data['enclosures'] = array_values(SimplePie_Misc::array_unique($this->data['enclosures']));
-		}
-		if (!empty($this->data['enclosures']))
-		{
-			return $this->data['enclosures'];
-		}
-		else
-		{
-			return null;
-		}
-	}
-
-	function get_latitude()
-	{
-		if ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_W3C_BASIC_GEO, 'lat'))
-		{
-			return (float) $return[0]['data'];
-		}
-		elseif (($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_GEORSS, 'point')) && preg_match('/^((?:-)?[0-9]+(?:\.[0-9]+)) ((?:-)?[0-9]+(?:\.[0-9]+))$/', trim($return[0]['data']), $match))
-		{
-			return (float) $match[1];
-		}
-		else
-		{
-			return null;
-		}
-	}
-
-	function get_longitude()
-	{
-		if ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_W3C_BASIC_GEO, 'long'))
-		{
-			return (float) $return[0]['data'];
-		}
-		elseif ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_W3C_BASIC_GEO, 'lon'))
-		{
-			return (float) $return[0]['data'];
-		}
-		elseif (($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_GEORSS, 'point')) && preg_match('/^((?:-)?[0-9]+(?:\.[0-9]+)) ((?:-)?[0-9]+(?:\.[0-9]+))$/', trim($return[0]['data']), $match))
-		{
-			return (float) $match[2];
-		}
-		else
-		{
-			return null;
-		}
-	}
-
-	function get_source()
-	{
-		if ($return = $this->get_item_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'source'))
-		{
-			return new $this->feed->source_class($this, $return[0]);
-		}
-		else
-		{
-			return null;
-		}
-	}
-
-	/**
-	 * Creates the add_to_* methods' return data
-	 *
-	 * @access private
-	 * @param string $item_url String to prefix to the item permalink
-	 * @param string $title_url String to prefix to the item title
-	 * (and suffix to the item permalink)
-	 * @return mixed URL if feed exists, false otherwise
-	 */
-	function add_to_service($item_url, $title_url = null, $summary_url = null)
-	{
-		if ($this->get_permalink() !== null)
-		{
-			$return = $item_url . rawurlencode($this->get_permalink());
-			if ($title_url !== null && $this->get_title() !== null)
-			{
-				$return .= $title_url . rawurlencode($this->get_title());
-			}
-			if ($summary_url !== null && $this->get_description() !== null)
-			{
-				$return .= $summary_url . rawurlencode($this->get_description());
-			}
-			return $this->sanitize($return, SIMPLEPIE_CONSTRUCT_IRI);
-		}
-		else
-		{
-			return null;
-		}
-	}
-
-	function add_to_blinklist()
-	{
-		return $this->add_to_service('http://www.blinklist.com/index.php?Action=Blink/addblink.php&Description=&Url=', '&Title=');
-	}
-
-	function add_to_blogmarks()
-	{
-		return $this->add_to_service('http://blogmarks.net/my/new.php?mini=1&simple=1&url=', '&title=');
-	}
-
-	function add_to_delicious()
-	{
-		return $this->add_to_service('http://del.icio.us/post/?v=4&url=', '&title=');
-	}
-
-	function add_to_digg()
-	{
-		return $this->add_to_service('http://digg.com/submit?url=', '&title=', '&bodytext=');
-	}
-
-	function add_to_furl()
-	{
-		return $this->add_to_service('http://www.furl.net/storeIt.jsp?u=', '&t=');
-	}
-
-	function add_to_magnolia()
-	{
-		return $this->add_to_service('http://ma.gnolia.com/bookmarklet/add?url=', '&title=');
-	}
-
-	function add_to_myweb20()
-	{
-		return $this->add_to_service('http://myweb2.search.yahoo.com/myresults/bookmarklet?u=', '&t=');
-	}
-
-	function add_to_newsvine()
-	{
-		return $this->add_to_service('http://www.newsvine.com/_wine/save?u=', '&h=');
-	}
-
-	function add_to_reddit()
-	{
-		return $this->add_to_service('http://reddit.com/submit?url=', '&title=');
-	}
-
-	function add_to_segnalo()
-	{
-		return $this->add_to_service('http://segnalo.com/post.html.php?url=', '&title=');
-	}
-
-	function add_to_simpy()
-	{
-		return $this->add_to_service('http://www.simpy.com/simpy/LinkAdd.do?href=', '&title=');
-	}
-
-	function add_to_spurl()
-	{
-		return $this->add_to_service('http://www.spurl.net/spurl.php?v=3&url=', '&title=');
-	}
-
-	function add_to_wists()
-	{
-		return $this->add_to_service('http://wists.com/r.php?c=&r=', '&title=');
-	}
-
-	function search_technorati()
-	{
-		return $this->add_to_service('http://www.technorati.com/search/');
-	}
-}
-
-class SimplePie_Source
-{
-	var $item;
-	var $data = array();
-
-	function SimplePie_Source($item, $data)
-	{
-		$this->item = $item;
-		$this->data = $data;
-	}
-
-	function __toString()
-	{
-		return md5(serialize($this->data));
-	}
-
-	function get_source_tags($namespace, $tag)
-	{
-		if (isset($this->data['child'][$namespace][$tag]))
-		{
-			return $this->data['child'][$namespace][$tag];
-		}
-		else
-		{
-			return null;
-		}
-	}
-
-	function get_base($element = array())
-	{
-		return $this->item->get_base($element);
-	}
-
-	function sanitize($data, $type, $base = '')
-	{
-		return $this->item->sanitize($data, $type, $base);
-	}
-
-	function get_item()
-	{
-		return $this->item;
-	}
-
-	function get_title()
-	{
-		if ($return = $this->get_source_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'title'))
-		{
-			return $this->sanitize($return[0]['data'], SimplePie_Misc::atom_10_construct_type($return[0]['attribs']), $this->get_base($return[0]));
-		}
-		elseif ($return = $this->get_source_tags(SIMPLEPIE_NAMESPACE_ATOM_03, 'title'))
-		{
-			return $this->sanitize($return[0]['data'], SimplePie_Misc::atom_03_construct_type($return[0]['attribs']), $this->get_base($return[0]));
-		}
-		elseif ($return = $this->get_source_tags(SIMPLEPIE_NAMESPACE_RSS_10, 'title'))
-		{
-			return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_MAYBE_HTML, $this->get_base($return[0]));
-		}
-		elseif ($return = $this->get_source_tags(SIMPLEPIE_NAMESPACE_RSS_090, 'title'))
-		{
-			return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_MAYBE_HTML, $this->get_base($return[0]));
-		}
-		elseif ($return = $this->get_source_tags(SIMPLEPIE_NAMESPACE_RSS_20, 'title'))
-		{
-			return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_MAYBE_HTML, $this->get_base($return[0]));
-		}
-		elseif ($return = $this->get_source_tags(SIMPLEPIE_NAMESPACE_DC_11, 'title'))
-		{
-			return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-		}
-		elseif ($return = $this->get_source_tags(SIMPLEPIE_NAMESPACE_DC_10, 'title'))
-		{
-			return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-		}
-		else
-		{
-			return null;
-		}
-	}
-
-	function get_category($key = 0)
-	{
-		$categories = $this->get_categories();
-		if (isset($categories[$key]))
-		{
-			return $categories[$key];
-		}
-		else
-		{
-			return null;
-		}
-	}
-
-	function get_categories()
-	{
-		$categories = array();
-
-		foreach ((array) $this->get_source_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'category') as $category)
-		{
-			$term = null;
-			$scheme = null;
-			$label = null;
-			if (isset($category['attribs']['']['term']))
-			{
-				$term = $this->sanitize($category['attribs']['']['term'], SIMPLEPIE_CONSTRUCT_TEXT);
-			}
-			if (isset($category['attribs']['']['scheme']))
-			{
-				$scheme = $this->sanitize($category['attribs']['']['scheme'], SIMPLEPIE_CONSTRUCT_TEXT);
-			}
-			if (isset($category['attribs']['']['label']))
-			{
-				$label = $this->sanitize($category['attribs']['']['label'], SIMPLEPIE_CONSTRUCT_TEXT);
-			}
-			$categories[] =& new $this->item->feed->category_class($term, $scheme, $label);
-		}
-		foreach ((array) $this->get_source_tags(SIMPLEPIE_NAMESPACE_RSS_20, 'category') as $category)
-		{
-			// This is really the label, but keep this as the term also for BC.
-			// Label will also work on retrieving because that falls back to term.
-			$term = $this->sanitize($category['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-			if (isset($category['attribs']['']['domain']))
-			{
-				$scheme = $this->sanitize($category['attribs']['']['domain'], SIMPLEPIE_CONSTRUCT_TEXT);
-			}
-			else
-			{
-				$scheme = null;
-			}
-			$categories[] =& new $this->item->feed->category_class($term, $scheme, null);
-		}
-		foreach ((array) $this->get_source_tags(SIMPLEPIE_NAMESPACE_DC_11, 'subject') as $category)
-		{
-			$categories[] =& new $this->item->feed->category_class($this->sanitize($category['data'], SIMPLEPIE_CONSTRUCT_TEXT), null, null);
-		}
-		foreach ((array) $this->get_source_tags(SIMPLEPIE_NAMESPACE_DC_10, 'subject') as $category)
-		{
-			$categories[] =& new $this->item->feed->category_class($this->sanitize($category['data'], SIMPLEPIE_CONSTRUCT_TEXT), null, null);
-		}
-
-		if (!empty($categories))
-		{
-			return SimplePie_Misc::array_unique($categories);
-		}
-		else
-		{
-			return null;
-		}
-	}
-
-	function get_author($key = 0)
-	{
-		$authors = $this->get_authors();
-		if (isset($authors[$key]))
-		{
-			return $authors[$key];
-		}
-		else
-		{
-			return null;
-		}
-	}
-
-	function get_authors()
-	{
-		$authors = array();
-		foreach ((array) $this->get_source_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'author') as $author)
-		{
-			$name = null;
-			$uri = null;
-			$email = null;
-			if (isset($author['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['name'][0]['data']))
-			{
-				$name = $this->sanitize($author['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['name'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-			}
-			if (isset($author['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['uri'][0]['data']))
-			{
-				$uri = $this->sanitize($author['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['uri'][0]['data'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($author['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['uri'][0]));
-			}
-			if (isset($author['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['email'][0]['data']))
-			{
-				$email = $this->sanitize($author['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['email'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-			}
-			if ($name !== null || $email !== null || $uri !== null)
-			{
-				$authors[] =& new $this->item->feed->author_class($name, $uri, $email);
-			}
-		}
-		if ($author = $this->get_source_tags(SIMPLEPIE_NAMESPACE_ATOM_03, 'author'))
-		{
-			$name = null;
-			$url = null;
-			$email = null;
-			if (isset($author[0]['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['name'][0]['data']))
-			{
-				$name = $this->sanitize($author[0]['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['name'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-			}
-			if (isset($author[0]['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['url'][0]['data']))
-			{
-				$url = $this->sanitize($author[0]['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['url'][0]['data'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($author[0]['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['url'][0]));
-			}
-			if (isset($author[0]['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['email'][0]['data']))
-			{
-				$email = $this->sanitize($author[0]['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['email'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-			}
-			if ($name !== null || $email !== null || $url !== null)
-			{
-				$authors[] =& new $this->item->feed->author_class($name, $url, $email);
-			}
-		}
-		foreach ((array) $this->get_source_tags(SIMPLEPIE_NAMESPACE_DC_11, 'creator') as $author)
-		{
-			$authors[] =& new $this->item->feed->author_class($this->sanitize($author['data'], SIMPLEPIE_CONSTRUCT_TEXT), null, null);
-		}
-		foreach ((array) $this->get_source_tags(SIMPLEPIE_NAMESPACE_DC_10, 'creator') as $author)
-		{
-			$authors[] =& new $this->item->feed->author_class($this->sanitize($author['data'], SIMPLEPIE_CONSTRUCT_TEXT), null, null);
-		}
-		foreach ((array) $this->get_source_tags(SIMPLEPIE_NAMESPACE_ITUNES, 'author') as $author)
-		{
-			$authors[] =& new $this->item->feed->author_class($this->sanitize($author['data'], SIMPLEPIE_CONSTRUCT_TEXT), null, null);
-		}
-
-		if (!empty($authors))
-		{
-			return SimplePie_Misc::array_unique($authors);
-		}
-		else
-		{
-			return null;
-		}
-	}
-
-	function get_contributor($key = 0)
-	{
-		$contributors = $this->get_contributors();
-		if (isset($contributors[$key]))
-		{
-			return $contributors[$key];
-		}
-		else
-		{
-			return null;
-		}
-	}
-
-	function get_contributors()
-	{
-		$contributors = array();
-		foreach ((array) $this->get_source_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'contributor') as $contributor)
-		{
-			$name = null;
-			$uri = null;
-			$email = null;
-			if (isset($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['name'][0]['data']))
-			{
-				$name = $this->sanitize($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['name'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-			}
-			if (isset($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['uri'][0]['data']))
-			{
-				$uri = $this->sanitize($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['uri'][0]['data'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['uri'][0]));
-			}
-			if (isset($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['email'][0]['data']))
-			{
-				$email = $this->sanitize($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['email'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-			}
-			if ($name !== null || $email !== null || $uri !== null)
-			{
-				$contributors[] =& new $this->item->feed->author_class($name, $uri, $email);
-			}
-		}
-		foreach ((array) $this->get_source_tags(SIMPLEPIE_NAMESPACE_ATOM_03, 'contributor') as $contributor)
-		{
-			$name = null;
-			$url = null;
-			$email = null;
-			if (isset($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['name'][0]['data']))
-			{
-				$name = $this->sanitize($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['name'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-			}
-			if (isset($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['url'][0]['data']))
-			{
-				$url = $this->sanitize($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['url'][0]['data'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['url'][0]));
-			}
-			if (isset($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['email'][0]['data']))
-			{
-				$email = $this->sanitize($contributor['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['email'][0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-			}
-			if ($name !== null || $email !== null || $url !== null)
-			{
-				$contributors[] =& new $this->item->feed->author_class($name, $url, $email);
-			}
-		}
-
-		if (!empty($contributors))
-		{
-			return SimplePie_Misc::array_unique($contributors);
-		}
-		else
-		{
-			return null;
-		}
-	}
-
-	function get_link($key = 0, $rel = 'alternate')
-	{
-		$links = $this->get_links($rel);
-		if (isset($links[$key]))
-		{
-			return $links[$key];
-		}
-		else
-		{
-			return null;
-		}
-	}
-
-	/**
-	 * Added for parity between the parent-level and the item/entry-level.
-	 */
-	function get_permalink()
-	{
-		return $this->get_link(0);
-	}
-
-	function get_links($rel = 'alternate')
-	{
-		if (!isset($this->data['links']))
-		{
-			$this->data['links'] = array();
-			if ($links = $this->get_source_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'link'))
-			{
-				foreach ($links as $link)
-				{
-					if (isset($link['attribs']['']['href']))
-					{
-						$link_rel = (isset($link['attribs']['']['rel'])) ? $link['attribs']['']['rel'] : 'alternate';
-						$this->data['links'][$link_rel][] = $this->sanitize($link['attribs']['']['href'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($link));
-					}
-				}
-			}
-			if ($links = $this->get_source_tags(SIMPLEPIE_NAMESPACE_ATOM_03, 'link'))
-			{
-				foreach ($links as $link)
-				{
-					if (isset($link['attribs']['']['href']))
-					{
-						$link_rel = (isset($link['attribs']['']['rel'])) ? $link['attribs']['']['rel'] : 'alternate';
-						$this->data['links'][$link_rel][] = $this->sanitize($link['attribs']['']['href'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($link));
-
-					}
-				}
-			}
-			if ($links = $this->get_source_tags(SIMPLEPIE_NAMESPACE_RSS_10, 'link'))
-			{
-				$this->data['links']['alternate'][] = $this->sanitize($links[0]['data'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($links[0]));
-			}
-			if ($links = $this->get_source_tags(SIMPLEPIE_NAMESPACE_RSS_090, 'link'))
-			{
-				$this->data['links']['alternate'][] = $this->sanitize($links[0]['data'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($links[0]));
-			}
-			if ($links = $this->get_source_tags(SIMPLEPIE_NAMESPACE_RSS_20, 'link'))
-			{
-				$this->data['links']['alternate'][] = $this->sanitize($links[0]['data'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($links[0]));
-			}
-
-			$keys = array_keys($this->data['links']);
-			foreach ($keys as $key)
-			{
-				if (SimplePie_Misc::is_isegment_nz_nc($key))
-				{
-					if (isset($this->data['links'][SIMPLEPIE_IANA_LINK_RELATIONS_REGISTRY . $key]))
-					{
-						$this->data['links'][SIMPLEPIE_IANA_LINK_RELATIONS_REGISTRY . $key] = array_merge($this->data['links'][$key], $this->data['links'][SIMPLEPIE_IANA_LINK_RELATIONS_REGISTRY . $key]);
-						$this->data['links'][$key] =& $this->data['links'][SIMPLEPIE_IANA_LINK_RELATIONS_REGISTRY . $key];
-					}
-					else
-					{
-						$this->data['links'][SIMPLEPIE_IANA_LINK_RELATIONS_REGISTRY . $key] =& $this->data['links'][$key];
-					}
-				}
-				elseif (substr($key, 0, 41) === SIMPLEPIE_IANA_LINK_RELATIONS_REGISTRY)
-				{
-					$this->data['links'][substr($key, 41)] =& $this->data['links'][$key];
-				}
-				$this->data['links'][$key] = array_unique($this->data['links'][$key]);
-			}
-		}
-
-		if (isset($this->data['links'][$rel]))
-		{
-			return $this->data['links'][$rel];
-		}
-		else
-		{
-			return null;
-		}
-	}
-
-	function get_description()
-	{
-		if ($return = $this->get_source_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'subtitle'))
-		{
-			return $this->sanitize($return[0]['data'], SimplePie_Misc::atom_10_construct_type($return[0]['attribs']), $this->get_base($return[0]));
-		}
-		elseif ($return = $this->get_source_tags(SIMPLEPIE_NAMESPACE_ATOM_03, 'tagline'))
-		{
-			return $this->sanitize($return[0]['data'], SimplePie_Misc::atom_03_construct_type($return[0]['attribs']), $this->get_base($return[0]));
-		}
-		elseif ($return = $this->get_source_tags(SIMPLEPIE_NAMESPACE_RSS_10, 'description'))
-		{
-			return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_MAYBE_HTML, $this->get_base($return[0]));
-		}
-		elseif ($return = $this->get_source_tags(SIMPLEPIE_NAMESPACE_RSS_090, 'description'))
-		{
-			return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_MAYBE_HTML, $this->get_base($return[0]));
-		}
-		elseif ($return = $this->get_source_tags(SIMPLEPIE_NAMESPACE_RSS_20, 'description'))
-		{
-			return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_MAYBE_HTML, $this->get_base($return[0]));
-		}
-		elseif ($return = $this->get_source_tags(SIMPLEPIE_NAMESPACE_DC_11, 'description'))
-		{
-			return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-		}
-		elseif ($return = $this->get_source_tags(SIMPLEPIE_NAMESPACE_DC_10, 'description'))
-		{
-			return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-		}
-		elseif ($return = $this->get_source_tags(SIMPLEPIE_NAMESPACE_ITUNES, 'summary'))
-		{
-			return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_HTML, $this->get_base($return[0]));
-		}
-		elseif ($return = $this->get_source_tags(SIMPLEPIE_NAMESPACE_ITUNES, 'subtitle'))
-		{
-			return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_HTML, $this->get_base($return[0]));
-		}
-		else
-		{
-			return null;
-		}
-	}
-
-	function get_copyright()
-	{
-		if ($return = $this->get_source_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'rights'))
-		{
-			return $this->sanitize($return[0]['data'], SimplePie_Misc::atom_10_construct_type($return[0]['attribs']), $this->get_base($return[0]));
-		}
-		elseif ($return = $this->get_source_tags(SIMPLEPIE_NAMESPACE_ATOM_03, 'copyright'))
-		{
-			return $this->sanitize($return[0]['data'], SimplePie_Misc::atom_03_construct_type($return[0]['attribs']), $this->get_base($return[0]));
-		}
-		elseif ($return = $this->get_source_tags(SIMPLEPIE_NAMESPACE_RSS_20, 'copyright'))
-		{
-			return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-		}
-		elseif ($return = $this->get_source_tags(SIMPLEPIE_NAMESPACE_DC_11, 'rights'))
-		{
-			return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-		}
-		elseif ($return = $this->get_source_tags(SIMPLEPIE_NAMESPACE_DC_10, 'rights'))
-		{
-			return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-		}
-		else
-		{
-			return null;
-		}
-	}
-
-	function get_language()
-	{
-		if ($return = $this->get_source_tags(SIMPLEPIE_NAMESPACE_RSS_20, 'language'))
-		{
-			return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-		}
-		elseif ($return = $this->get_source_tags(SIMPLEPIE_NAMESPACE_DC_11, 'language'))
-		{
-			return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-		}
-		elseif ($return = $this->get_source_tags(SIMPLEPIE_NAMESPACE_DC_10, 'language'))
-		{
-			return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_TEXT);
-		}
-		elseif (isset($this->data['xml_lang']))
-		{
-			return $this->sanitize($this->data['xml_lang'], SIMPLEPIE_CONSTRUCT_TEXT);
-		}
-		else
-		{
-			return null;
-		}
-	}
-
-	function get_latitude()
-	{
-		if ($return = $this->get_source_tags(SIMPLEPIE_NAMESPACE_W3C_BASIC_GEO, 'lat'))
-		{
-			return (float) $return[0]['data'];
-		}
-		elseif (($return = $this->get_source_tags(SIMPLEPIE_NAMESPACE_GEORSS, 'point')) && preg_match('/^((?:-)?[0-9]+(?:\.[0-9]+)) ((?:-)?[0-9]+(?:\.[0-9]+))$/', trim($return[0]['data']), $match))
-		{
-			return (float) $match[1];
-		}
-		else
-		{
-			return null;
-		}
-	}
-
-	function get_longitude()
-	{
-		if ($return = $this->get_source_tags(SIMPLEPIE_NAMESPACE_W3C_BASIC_GEO, 'long'))
-		{
-			return (float) $return[0]['data'];
-		}
-		elseif ($return = $this->get_source_tags(SIMPLEPIE_NAMESPACE_W3C_BASIC_GEO, 'lon'))
-		{
-			return (float) $return[0]['data'];
-		}
-		elseif (($return = $this->get_source_tags(SIMPLEPIE_NAMESPACE_GEORSS, 'point')) && preg_match('/^((?:-)?[0-9]+(?:\.[0-9]+)) ((?:-)?[0-9]+(?:\.[0-9]+))$/', trim($return[0]['data']), $match))
-		{
-			return (float) $match[2];
-		}
-		else
-		{
-			return null;
-		}
-	}
-
-	function get_image_url()
-	{
-		if ($return = $this->get_source_tags(SIMPLEPIE_NAMESPACE_ITUNES, 'image'))
-		{
-			return $this->sanitize($return[0]['attribs']['']['href'], SIMPLEPIE_CONSTRUCT_IRI);
-		}
-		elseif ($return = $this->get_source_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'logo'))
-		{
-			return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($return[0]));
-		}
-		elseif ($return = $this->get_source_tags(SIMPLEPIE_NAMESPACE_ATOM_10, 'icon'))
-		{
-			return $this->sanitize($return[0]['data'], SIMPLEPIE_CONSTRUCT_IRI, $this->get_base($return[0]));
-		}
-		else
-		{
-			return null;
-		}
-	}
-}
-
-class SimplePie_Author
-{
-	var $name;
-	var $link;
-	var $email;
-
-	// Constructor, used to input the data
-	function SimplePie_Author($name = null, $link = null, $email = null)
-	{
-		$this->name = $name;
-		$this->link = $link;
-		$this->email = $email;
-	}
-
-	function __toString()
-	{
-		// There is no $this->data here
-		return md5(serialize($this));
-	}
-
-	function get_name()
-	{
-		if ($this->name !== null)
-		{
-			return $this->name;
-		}
-		else
-		{
-			return null;
-		}
-	}
-
-	function get_link()
-	{
-		if ($this->link !== null)
-		{
-			return $this->link;
-		}
-		else
-		{
-			return null;
-		}
-	}
-
-	function get_email()
-	{
-		if ($this->email !== null)
-		{
-			return $this->email;
-		}
-		else
-		{
-			return null;
-		}
-	}
-}
-
-class SimplePie_Category
-{
-	var $term;
-	var $scheme;
-	var $label;
-
-	// Constructor, used to input the data
-	function SimplePie_Category($term = null, $scheme = null, $label = null)
-	{
-		$this->term = $term;
-		$this->scheme = $scheme;
-		$this->label = $label;
-	}
-
-	function __toString()
-	{
-		// There is no $this->data here
-		return md5(serialize($this));
-	}
-
-	function get_term()
-	{
-		if ($this->term !== null)
-		{
-			return $this->term;
-		}
-		else
-		{
-			return null;
-		}
-	}
-
-	function get_scheme()
-	{
-		if ($this->scheme !== null)
-		{
-			return $this->scheme;
-		}
-		else
-		{
-			return null;
-		}
-	}
-
-	function get_label()
-	{
-		if ($this->label !== null)
-		{
-			return $this->label;
-		}
-		else
-		{
-			return $this->get_term();
-		}
-	}
-}
-
-class SimplePie_Enclosure
-{
-	var $bitrate;
-	var $captions;
-	var $categories;
-	var $channels;
-	var $copyright;
-	var $credits;
-	var $description;
-	var $duration;
-	var $expression;
-	var $framerate;
-	var $handler;
-	var $hashes;
-	var $height;
-	var $javascript;
-	var $keywords;
-	var $lang;
-	var $length;
-	var $link;
-	var $medium;
-	var $player;
-	var $ratings;
-	var $restrictions;
-	var $samplingrate;
-	var $thumbnails;
-	var $title;
-	var $type;
-	var $width;
-
-	// Constructor, used to input the data
-	function SimplePie_Enclosure($link = null, $type = null, $length = null, $javascript = null, $bitrate = null, $captions = null, $categories = null, $channels = null, $copyright = null, $credits = null, $description = null, $duration = null, $expression = null, $framerate = null, $hashes = null, $height = null, $keywords = null, $lang = null, $medium = null, $player = null, $ratings = null, $restrictions = null, $samplingrate = null, $thumbnails = null, $title = null, $width = null)
-	{
-		$this->bitrate = $bitrate;
-		$this->captions = $captions;
-		$this->categories = $categories;
-		$this->channels = $channels;
-		$this->copyright = $copyright;
-		$this->credits = $credits;
-		$this->description = $description;
-		$this->duration = $duration;
-		$this->expression = $expression;
-		$this->framerate = $framerate;
-		$this->hashes = $hashes;
-		$this->height = $height;
-		$this->javascript = $javascript;
-		$this->keywords = $keywords;
-		$this->lang = $lang;
-		$this->length = $length;
-		$this->link = $link;
-		$this->medium = $medium;
-		$this->player = $player;
-		$this->ratings = $ratings;
-		$this->restrictions = $restrictions;
-		$this->samplingrate = $samplingrate;
-		$this->thumbnails = $thumbnails;
-		$this->title = $title;
-		$this->type = $type;
-		$this->width = $width;
-		if (class_exists('idna_convert'))
-		{
-			$idn =& new idna_convert;
-			$parsed = SimplePie_Misc::parse_url($link);
-			$this->link = SimplePie_Misc::compress_parse_url($parsed['scheme'], $idn->encode($parsed['authority']), $parsed['path'], $parsed['query'], $parsed['fragment']);
-		}
-		$this->handler = $this->get_handler(); // Needs to load last
-	}
-
-	function __toString()
-	{
-		// There is no $this->data here
-		return md5(serialize($this));
-	}
-
-	function get_bitrate()
-	{
-		if ($this->bitrate !== null)
-		{
-			return $this->bitrate;
-		}
-		else
-		{
-			return null;
-		}
-	}
-
-	function get_caption($key = 0)
-	{
-		$captions = $this->get_captions();
-		if (isset($captions[$key]))
-		{
-			return $captions[$key];
-		}
-		else
-		{
-			return null;
-		}
-	}
-
-	function get_captions()
-	{
-		if ($this->captions !== null)
-		{
-			return $this->captions;
-		}
-		else
-		{
-			return null;
-		}
-	}
-
-	function get_category($key = 0)
-	{
-		$categories = $this->get_categories();
-		if (isset($categories[$key]))
-		{
-			return $categories[$key];
-		}
-		else
-		{
-			return null;
-		}
-	}
-
-	function get_categories()
-	{
-		if ($this->categories !== null)
-		{
-			return $this->categories;
-		}
-		else
-		{
-			return null;
-		}
-	}
-
-	function get_channels()
-	{
-		if ($this->channels !== null)
-		{
-			return $this->channels;
-		}
-		else
-		{
-			return null;
-		}
-	}
-
-	function get_copyright()
-	{
-		if ($this->copyright !== null)
-		{
-			return $this->copyright;
-		}
-		else
-		{
-			return null;
-		}
-	}
-
-	function get_credit($key = 0)
-	{
-		$credits = $this->get_credits();
-		if (isset($credits[$key]))
-		{
-			return $credits[$key];
-		}
-		else
-		{
-			return null;
-		}
-	}
-
-	function get_credits()
-	{
-		if ($this->credits !== null)
-		{
-			return $this->credits;
-		}
-		else
-		{
-			return null;
-		}
-	}
-
-	function get_description()
-	{
-		if ($this->description !== null)
-		{
-			return $this->description;
-		}
-		else
-		{
-			return null;
-		}
-	}
-
-	function get_duration($convert = false)
-	{
-		if ($this->duration !== null)
-		{
-			if ($convert)
-			{
-				$time = SimplePie_Misc::time_hms($this->duration);
-				return $time;
-			}
-			else
-			{
-				return $this->duration;
-			}
-		}
-		else
-		{
-			return null;
-		}
-	}
-
-	function get_expression()
-	{
-		if ($this->expression !== null)
-		{
-			return $this->expression;
-		}
-		else
-		{
-			return 'full';
-		}
-	}
-
-	function get_extension()
-	{
-		if ($this->link !== null)
-		{
-			$url = SimplePie_Misc::parse_url($this->link);
-			if ($url['path'] !== '')
-			{
-				return pathinfo($url['path'], PATHINFO_EXTENSION);
-			}
-		}
-		return null;
-	}
-
-	function get_framerate()
-	{
-		if ($this->framerate !== null)
-		{
-			return $this->framerate;
-		}
-		else
-		{
-			return null;
-		}
-	}
-
-	function get_handler()
-	{
-		return $this->get_real_type(true);
-	}
-
-	function get_hash($key = 0)
-	{
-		$hashes = $this->get_hashes();
-		if (isset($hashes[$key]))
-		{
-			return $hashes[$key];
-		}
-		else
-		{
-			return null;
-		}
-	}
-
-	function get_hashes()
-	{
-		if ($this->hashes !== null)
-		{
-			return $this->hashes;
-		}
-		else
-		{
-			return null;
-		}
-	}
-
-	function get_height()
-	{
-		if ($this->height !== null)
-		{
-			return $this->height;
-		}
-		else
-		{
-			return null;
-		}
-	}
-
-	function get_language()
-	{
-		if ($this->lang !== null)
-		{
-			return $this->lang;
-		}
-		else
-		{
-			return null;
-		}
-	}
-
-	function get_keyword($key = 0)
-	{
-		$keywords = $this->get_keywords();
-		if (isset($keywords[$key]))
-		{
-			return $keywords[$key];
-		}
-		else
-		{
-			return null;
-		}
-	}
-
-	function get_keywords()
-	{
-		if ($this->keywords !== null)
-		{
-			return $this->keywords;
-		}
-		else
-		{
-			return null;
-		}
-	}
-
-	function get_length()
-	{
-		if ($this->length !== null)
-		{
-			return $this->length;
-		}
-		else
-		{
-			return null;
-		}
-	}
-
-	function get_link()
-	{
-		if ($this->link !== null)
-		{
-			return urldecode($this->link);
-		}
-		else
-		{
-			return null;
-		}
-	}
-
-	function get_medium()
-	{
-		if ($this->medium !== null)
-		{
-			return $this->medium;
-		}
-		else
-		{
-			return null;
-		}
-	}
-
-	function get_player()
-	{
-		if ($this->player !== null)
-		{
-			return $this->player;
-		}
-		else
-		{
-			return null;
-		}
-	}
-
-	function get_rating($key = 0)
-	{
-		$ratings = $this->get_ratings();
-		if (isset($ratings[$key]))
-		{
-			return $ratings[$key];
-		}
-		else
-		{
-			return null;
-		}
-	}
-
-	function get_ratings()
-	{
-		if ($this->ratings !== null)
-		{
-			return $this->ratings;
-		}
-		else
-		{
-			return null;
-		}
-	}
-
-	function get_restriction($key = 0)
-	{
-		$restrictions = $this->get_restrictions();
-		if (isset($restrictions[$key]))
-		{
-			return $restrictions[$key];
-		}
-		else
-		{
-			return null;
-		}
-	}
-
-	function get_restrictions()
-	{
-		if ($this->restrictions !== null)
-		{
-			return $this->restrictions;
-		}
-		else
-		{
-			return null;
-		}
-	}
-
-	function get_sampling_rate()
-	{
-		if ($this->samplingrate !== null)
-		{
-			return $this->samplingrate;
-		}
-		else
-		{
-			return null;
-		}
-	}
-
-	function get_size()
-	{
-		$length = $this->get_length();
-		if ($length !== null)
-		{
-			return round($length/1048576, 2);
-		}
-		else
-		{
-			return null;
-		}
-	}
-
-	function get_thumbnail($key = 0)
-	{
-		$thumbnails = $this->get_thumbnails();
-		if (isset($thumbnails[$key]))
-		{
-			return $thumbnails[$key];
-		}
-		else
-		{
-			return null;
-		}
-	}
-
-	function get_thumbnails()
-	{
-		if ($this->thumbnails !== null)
-		{
-			return $this->thumbnails;
-		}
-		else
-		{
-			return null;
-		}
-	}
-
-	function get_title()
-	{
-		if ($this->title !== null)
-		{
-			return $this->title;
-		}
-		else
-		{
-			return null;
-		}
-	}
-
-	function get_type()
-	{
-		if ($this->type !== null)
-		{
-			return $this->type;
-		}
-		else
-		{
-			return null;
-		}
-	}
-
-	function get_width()
-	{
-		if ($this->width !== null)
-		{
-			return $this->width;
-		}
-		else
-		{
-			return null;
-		}
-	}
-
-	function native_embed($options='')
-	{
-		return $this->embed($options, true);
-	}
-
-	/**
-	 * @todo If the dimensions for media:content are defined, use them when width/height are set to 'auto'.
-	 */
-	function embed($options = '', $native = false)
-	{
-		// Set up defaults
-		$audio = '';
-		$video = '';
-		$alt = '';
-		$altclass = '';
-		$loop = 'false';
-		$width = 'auto';
-		$height = 'auto';
-		$bgcolor = '#ffffff';
-		$mediaplayer = '';
-		$widescreen = false;
-		$handler = $this->get_handler();
-		$type = $this->get_real_type();
-
-		// Process options and reassign values as necessary
-		if (is_array($options))
-		{
-			extract($options);
-		}
-		else
-		{
-			$options = explode(',', $options);
-			foreach($options as $option)
-			{
-				$opt = explode(':', $option, 2);
-				if (isset($opt[0], $opt[1]))
-				{
-					$opt[0] = trim($opt[0]);
-					$opt[1] = trim($opt[1]);
-					switch ($opt[0])
-					{
-						case 'audio':
-							$audio = $opt[1];
-							break;
-
-						case 'video':
-							$video = $opt[1];
-							break;
-
-						case 'alt':
-							$alt = $opt[1];
-							break;
-
-						case 'altclass':
-							$altclass = $opt[1];
-							break;
-
-						case 'loop':
-							$loop = $opt[1];
-							break;
-
-						case 'width':
-							$width = $opt[1];
-							break;
-
-						case 'height':
-							$height = $opt[1];
-							break;
-
-						case 'bgcolor':
-							$bgcolor = $opt[1];
-							break;
-
-						case 'mediaplayer':
-							$mediaplayer = $opt[1];
-							break;
-
-						case 'widescreen':
-							$widescreen = $opt[1];
-							break;
-					}
-				}
-			}
-		}
-
-		$mime = explode('/', $type, 2);
-		$mime = $mime[0];
-
-		// Process values for 'auto'
-		if ($width === 'auto')
-		{
-			if ($mime === 'video')
-			{
-				if ($height === 'auto')
-				{
-					$width = 480;
-				}
-				elseif ($widescreen)
-				{
-					$width = round((intval($height)/9)*16);
-				}
-				else
-				{
-					$width = round((intval($height)/3)*4);
-				}
-			}
-			else
-			{
-				$width = '100%';
-			}
-		}
-
-		if ($height === 'auto')
-		{
-			if ($mime === 'audio')
-			{
-				$height = 0;
-			}
-			elseif ($mime === 'video')
-			{
-				if ($width === 'auto')
-				{
-					if ($widescreen)
-					{
-						$height = 270;
-					}
-					else
-					{
-						$height = 360;
-					}
-				}
-				elseif ($widescreen)
-				{
-					$height = round((intval($width)/16)*9);
-				}
-				else
-				{
-					$height = round((intval($width)/4)*3);
-				}
-			}
-			else
-			{
-				$height = 376;
-			}
-		}
-		elseif ($mime === 'audio')
-		{
-			$height = 0;
-		}
-
-		// Set proper placeholder value
-		if ($mime === 'audio')
-		{
-			$placeholder = $audio;
-		}
-		elseif ($mime === 'video')
-		{
-			$placeholder = $video;
-		}
-
-		$embed = '';
-
-		// Make sure the JS library is included
-		if (!$native)
-		{
-			static $javascript_outputted = null;
-			if (!$javascript_outputted && $this->javascript)
-			{
-				$embed .= '<script type="text/javascript" src="?' . htmlspecialchars($this->javascript) . '"></script>';
-				$javascript_outputted = true;
-			}
-		}
-
-		// Odeo Feed MP3's
-		if ($handler === 'odeo')
-		{
-			if ($native)
-			{
-				$embed .= '<embed src="http://odeo.com/flash/audio_player_fullsize.swf" pluginspage="http://adobe.com/go/getflashplayer" type="application/x-shockwave-flash" quality="high" width="440" height="80" wmode="transparent" allowScriptAccess="any" flashvars="valid_sample_rate=true&external_url=' . $this->get_link() . '"></embed>';
-			}
-			else
-			{
-				$embed .= '<script type="text/javascript">embed_odeo("' . $this->get_link() . '");</script>';
-			}
-		}
-
-		// Flash
-		elseif ($handler === 'flash')
-		{
-			if ($native)
-			{
-				$embed .= "<embed src=\"" . $this->get_link() . "\" pluginspage=\"http://adobe.com/go/getflashplayer\" type=\"$type\" quality=\"high\" width=\"$width\" height=\"$height\" bgcolor=\"$bgcolor\" loop=\"$loop\"></embed>";
-			}
-			else
-			{
-				$embed .= "<script type='text/javascript'>embed_flash('$bgcolor', '$width', '$height', '" . $this->get_link() . "', '$loop', '$type');</script>";
-			}
-		}
-
-		// Flash Media Player file types.
-		// Preferred handler for MP3 file types.
-		elseif ($handler === 'fmedia' || ($handler === 'mp3' && $mediaplayer !== ''))
-		{
-			$height += 20;
-			if ($native)
-			{
-				$embed .= "<embed src=\"$mediaplayer\" pluginspage=\"http://adobe.com/go/getflashplayer\" type=\"application/x-shockwave-flash\" quality=\"high\" width=\"$width\" height=\"$height\" wmode=\"transparent\" flashvars=\"file=" . rawurlencode($this->get_link().'?file_extension=.'.$this->get_extension()) . "&autostart=false&repeat=$loop&showdigits=true&showfsbutton=false\"></embed>";
-			}
-			else
-			{
-				$embed .= "<script type='text/javascript'>embed_flv('$width', '$height', '" . rawurlencode($this->get_link().'?file_extension=.'.$this->get_extension()) . "', '$placeholder', '$loop', '$mediaplayer');</script>";
-			}
-		}
-
-		// QuickTime 7 file types.  Need to test with QuickTime 6.
-		// Only handle MP3's if the Flash Media Player is not present.
-		elseif ($handler === 'quicktime' || ($handler === 'mp3' && $mediaplayer === ''))
-		{
-			$height += 16;
-			if ($native)
-			{
-				if ($placeholder !== '')
-				{
-					$embed .= "<embed type=\"$type\" style=\"cursor:hand; cursor:pointer;\" href=\"" . $this->get_link() . "\" src=\"$placeholder\" width=\"$width\" height=\"$height\" autoplay=\"false\" target=\"myself\" controller=\"false\" loop=\"$loop\" scale=\"aspect\" bgcolor=\"$bgcolor\" pluginspage=\"http://apple.com/quicktime/download/\"></embed>";
-				}
-				else
-				{
-					$embed .= "<embed type=\"$type\" style=\"cursor:hand; cursor:pointer;\" src=\"" . $this->get_link() . "\" width=\"$width\" height=\"$height\" autoplay=\"false\" target=\"myself\" controller=\"true\" loop=\"$loop\" scale=\"aspect\" bgcolor=\"$bgcolor\" pluginspage=\"http://apple.com/quicktime/download/\"></embed>";
-				}
-			}
-			else
-			{
-				$embed .= "<script type='text/javascript'>embed_quicktime('$type', '$bgcolor', '$width', '$height', '" . $this->get_link() . "', '$placeholder', '$loop');</script>";
-			}
-		}
-
-		// Windows Media
-		elseif ($handler === 'wmedia')
-		{
-			$height += 45;
-			if ($native)
-			{
-				$embed .= "<embed type=\"application/x-mplayer2\" src=\"" . $this->get_link() . "\" autosize=\"1\" width=\"$width\" height=\"$height\" showcontrols=\"1\" showstatusbar=\"0\" showdisplay=\"0\" autostart=\"0\"></embed>";
-			}
-			else
-			{
-				$embed .= "<script type='text/javascript'>embed_wmedia('$width', '$height', '" . $this->get_link() . "');</script>";
-			}
-		}
-
-		// Everything else
-		else $embed .= '<a href="' . $this->get_link() . '" class="' . $altclass . '">' . $alt . '</a>';
-
-		return $embed;
-	}
-
-	function get_real_type($find_handler = false)
-	{
-		// If it's Odeo, let's get it out of the way.
-		if (substr(strtolower($this->get_link()), 0, 15) === 'http://odeo.com')
-		{
-			return 'odeo';
-		}
-
-		// Mime-types by handler.
-		$types_flash = array('application/x-shockwave-flash', 'application/futuresplash'); // Flash
-		$types_fmedia = array('video/flv', 'video/x-flv','flv-application/octet-stream'); // Flash Media Player
-		$types_quicktime = array('audio/3gpp', 'audio/3gpp2', 'audio/aac', 'audio/x-aac', 'audio/aiff', 'audio/x-aiff', 'audio/mid', 'audio/midi', 'audio/x-midi', 'audio/mp4', 'audio/m4a', 'audio/x-m4a', 'audio/wav', 'audio/x-wav', 'video/3gpp', 'video/3gpp2', 'video/m4v', 'video/x-m4v', 'video/mp4', 'video/mpeg', 'video/x-mpeg', 'video/quicktime', 'video/sd-video'); // QuickTime
-		$types_wmedia = array('application/asx', 'application/x-mplayer2', 'audio/x-ms-wma', 'audio/x-ms-wax', 'video/x-ms-asf-plugin', 'video/x-ms-asf', 'video/x-ms-wm', 'video/x-ms-wmv', 'video/x-ms-wvx'); // Windows Media
-		$types_mp3 = array('audio/mp3', 'audio/x-mp3', 'audio/mpeg', 'audio/x-mpeg'); // MP3
-
-		if ($this->get_type() !== null)
-		{
-			$type = strtolower($this->type);
-		}
-		else
-		{
-			$type = null;
-		}
-
-		// If we encounter an unsupported mime-type, check the file extension and guess intelligently.
-		if (!in_array($type, array_merge($types_flash, $types_fmedia, $types_quicktime, $types_wmedia, $types_mp3)))
-		{
-			switch (strtolower($this->get_extension()))
-			{
-				// Audio mime-types
-				case 'aac':
-				case 'adts':
-					$type = 'audio/acc';
-					break;
-
-				case 'aif':
-				case 'aifc':
-				case 'aiff':
-				case 'cdda':
-					$type = 'audio/aiff';
-					break;
-
-				case 'bwf':
-					$type = 'audio/wav';
-					break;
-
-				case 'kar':
-				case 'mid':
-				case 'midi':
-				case 'smf':
-					$type = 'audio/midi';
-					break;
-
-				case 'm4a':
-					$type = 'audio/x-m4a';
-					break;
-
-				case 'mp3':
-				case 'swa':
-					$type = 'audio/mp3';
-					break;
-
-				case 'wav':
-					$type = 'audio/wav';
-					break;
-
-				case 'wax':
-					$type = 'audio/x-ms-wax';
-					break;
-
-				case 'wma':
-					$type = 'audio/x-ms-wma';
-					break;
-
-				// Video mime-types
-				case '3gp':
-				case '3gpp':
-					$type = 'video/3gpp';
-					break;
-
-				case '3g2':
-				case '3gp2':
-					$type = 'video/3gpp2';
-					break;
-
-				case 'asf':
-					$type = 'video/x-ms-asf';
-					break;
-
-				case 'flv':
-					$type = 'video/x-flv';
-					break;
-
-				case 'm1a':
-				case 'm1s':
-				case 'm1v':
-				case 'm15':
-				case 'm75':
-				case 'mp2':
-				case 'mpa':
-				case 'mpeg':
-				case 'mpg':
-				case 'mpm':
-				case 'mpv':
-					$type = 'video/mpeg';
-					break;
-
-				case 'm4v':
-					$type = 'video/x-m4v';
-					break;
-
-				case 'mov':
-				case 'qt':
-					$type = 'video/quicktime';
-					break;
-
-				case 'mp4':
-				case 'mpg4':
-					$type = 'video/mp4';
-					break;
-
-				case 'sdv':
-					$type = 'video/sd-video';
-					break;
-
-				case 'wm':
-					$type = 'video/x-ms-wm';
-					break;
-
-				case 'wmv':
-					$type = 'video/x-ms-wmv';
-					break;
-
-				case 'wvx':
-					$type = 'video/x-ms-wvx';
-					break;
-
-				// Flash mime-types
-				case 'spl':
-					$type = 'application/futuresplash';
-					break;
-
-				case 'swf':
-					$type = 'application/x-shockwave-flash';
-					break;
-			}
-		}
-
-		if ($find_handler)
-		{
-			if (in_array($type, $types_flash))
-			{
-				return 'flash';
-			}
-			elseif (in_array($type, $types_fmedia))
-			{
-				return 'fmedia';
-			}
-			elseif (in_array($type, $types_quicktime))
-			{
-				return 'quicktime';
-			}
-			elseif (in_array($type, $types_wmedia))
-			{
-				return 'wmedia';
-			}
-			elseif (in_array($type, $types_mp3))
-			{
-				return 'mp3';
-			}
-			else
-			{
-				return null;
-			}
-		}
-		else
-		{
-			return $type;
-		}
-	}
-}
-
-class SimplePie_Caption
-{
-	var $type;
-	var $lang;
-	var $startTime;
-	var $endTime;
-	var $text;
-
-	// Constructor, used to input the data
-	function SimplePie_Caption($type = null, $lang = null, $startTime = null, $endTime = null, $text = null)
-	{
-		$this->type = $type;
-		$this->lang = $lang;
-		$this->startTime = $startTime;
-		$this->endTime = $endTime;
-		$this->text = $text;
-	}
-
-	function __toString()
-	{
-		// There is no $this->data here
-		return md5(serialize($this));
-	}
-
-	function get_endtime()
-	{
-		if ($this->endTime !== null)
-		{
-			return $this->endTime;
-		}
-		else
-		{
-			return null;
-		}
-	}
-
-	function get_language()
-	{
-		if ($this->lang !== null)
-		{
-			return $this->lang;
-		}
-		else
-		{
-			return null;
-		}
-	}
-
-	function get_starttime()
-	{
-		if ($this->startTime !== null)
-		{
-			return $this->startTime;
-		}
-		else
-		{
-			return null;
-		}
-	}
-
-	function get_text()
-	{
-		if ($this->text !== null)
-		{
-			return $this->text;
-		}
-		else
-		{
-			return null;
-		}
-	}
-
-	function get_type()
-	{
-		if ($this->type !== null)
-		{
-			return $this->type;
-		}
-		else
-		{
-			return null;
-		}
-	}
-}
-
-class SimplePie_Credit
-{
-	var $role;
-	var $scheme;
-	var $name;
-
-	// Constructor, used to input the data
-	function SimplePie_Credit($role = null, $scheme = null, $name = null)
-	{
-		$this->role = $role;
-		$this->scheme = $scheme;
-		$this->name = $name;
-	}
-
-	function __toString()
-	{
-		// There is no $this->data here
-		return md5(serialize($this));
-	}
-
-	function get_role()
-	{
-		if ($this->role !== null)
-		{
-			return $this->role;
-		}
-		else
-		{
-			return null;
-		}
-	}
-
-	function get_scheme()
-	{
-		if ($this->scheme !== null)
-		{
-			return $this->scheme;
-		}
-		else
-		{
-			return null;
-		}
-	}
-
-	function get_name()
-	{
-		if ($this->name !== null)
-		{
-			return $this->name;
-		}
-		else
-		{
-			return null;
-		}
-	}
-}
-
-class SimplePie_Copyright
-{
-	var $url;
-	var $label;
-
-	// Constructor, used to input the data
-	function SimplePie_Copyright($url = null, $label = null)
-	{
-		$this->url = $url;
-		$this->label = $label;
-	}
-
-	function __toString()
-	{
-		// There is no $this->data here
-		return md5(serialize($this));
-	}
-
-	function get_url()
-	{
-		if ($this->url !== null)
-		{
-			return $this->url;
-		}
-		else
-		{
-			return null;
-		}
-	}
-
-	function get_attribution()
-	{
-		if ($this->label !== null)
-		{
-			return $this->label;
-		}
-		else
-		{
-			return null;
-		}
-	}
-}
-
-class SimplePie_Rating
-{
-	var $scheme;
-	var $value;
-
-	// Constructor, used to input the data
-	function SimplePie_Rating($scheme = null, $value = null)
-	{
-		$this->scheme = $scheme;
-		$this->value = $value;
-	}
-
-	function __toString()
-	{
-		// There is no $this->data here
-		return md5(serialize($this));
-	}
-
-	function get_scheme()
-	{
-		if ($this->scheme !== null)
-		{
-			return $this->scheme;
-		}
-		else
-		{
-			return null;
-		}
-	}
-
-	function get_value()
-	{
-		if ($this->value !== null)
-		{
-			return $this->value;
-		}
-		else
-		{
-			return null;
-		}
-	}
-}
-
-class SimplePie_Restriction
-{
-	var $relationship;
-	var $type;
-	var $value;
-
-	// Constructor, used to input the data
-	function SimplePie_Restriction($relationship = null, $type = null, $value = null)
-	{
-		$this->relationship = $relationship;
-		$this->type = $type;
-		$this->value = $value;
-	}
-
-	function __toString()
-	{
-		// There is no $this->data here
-		return md5(serialize($this));
-	}
-
-	function get_relationship()
-	{
-		if ($this->relationship !== null)
-		{
-			return $this->relationship;
-		}
-		else
-		{
-			return null;
-		}
-	}
-
-	function get_type()
-	{
-		if ($this->type !== null)
-		{
-			return $this->type;
-		}
-		else
-		{
-			return null;
-		}
-	}
-
-	function get_value()
-	{
-		if ($this->value !== null)
-		{
-			return $this->value;
-		}
-		else
-		{
-			return null;
-		}
-	}
-}
-
-/**
- * @todo Move to properly supporting RFC2616 (HTTP/1.1)
- */
-class SimplePie_File
-{
-	var $url;
-	var $useragent;
-	var $success = true;
-	var $headers = array();
-	var $body;
-	var $status_code;
-	var $redirects = 0;
-	var $error;
-	var $method = SIMPLEPIE_FILE_SOURCE_NONE;
-
-	function SimplePie_File($url, $timeout = 10, $redirects = 5, $headers = null, $useragent = null, $force_fsockopen = false)
-	{
-		if (class_exists('idna_convert'))
-		{
-			$idn =& new idna_convert;
-			$parsed = SimplePie_Misc::parse_url($url);
-			$url = SimplePie_Misc::compress_parse_url($parsed['scheme'], $idn->encode($parsed['authority']), $parsed['path'], $parsed['query'], $parsed['fragment']);
-		}
-		$this->url = $url;
-		$this->useragent = $useragent;
-		if (preg_match('/^http(s)?:\/\//i', $url))
-		{
-			if ($useragent === null)
-			{
-				$useragent = ini_get('user_agent');
-				$this->useragent = $useragent;
-			}
-			if (!is_array($headers))
-			{
-				$headers = array();
-			}
-			if (!$force_fsockopen && function_exists('curl_exec'))
-			{
-				$this->method = SIMPLEPIE_FILE_SOURCE_REMOTE | SIMPLEPIE_FILE_SOURCE_CURL;
-				$fp = curl_init();
-				$headers2 = array();
-				foreach ($headers as $key => $value)
-				{
-					$headers2[] = "$key: $value";
-				}
-				if (version_compare(SimplePie_Misc::get_curl_version(), '7.10.5', '>='))
-				{
-					curl_setopt($fp, CURLOPT_ENCODING, '');
-				}
-				curl_setopt($fp, CURLOPT_URL, $url);
-				curl_setopt($fp, CURLOPT_HEADER, 1);
-				curl_setopt($fp, CURLOPT_RETURNTRANSFER, 1);
-				curl_setopt($fp, CURLOPT_TIMEOUT, $timeout);
-				curl_setopt($fp, CURLOPT_CONNECTTIMEOUT, $timeout);
-				curl_setopt($fp, CURLOPT_REFERER, $url);
-				curl_setopt($fp, CURLOPT_USERAGENT, $useragent);
-				curl_setopt($fp, CURLOPT_HTTPHEADER, $headers2);
-				if (!ini_get('open_basedir') && !ini_get('safe_mode') && version_compare(SimplePie_Misc::get_curl_version(), '7.15.2', '>='))
-				{
-					curl_setopt($fp, CURLOPT_FOLLOWLOCATION, 1);
-					curl_setopt($fp, CURLOPT_MAXREDIRS, $redirects);
-				}
-
-				$this->headers = curl_exec($fp);
-				if (curl_errno($fp) === 23 || curl_errno($fp) === 61)
-				{
-					curl_setopt($fp, CURLOPT_ENCODING, 'none');
-					$this->headers = curl_exec($fp);
-				}
-				if (curl_errno($fp))
-				{
-					$this->error = 'cURL error ' . curl_errno($fp) . ': ' . curl_error($fp);
-					$this->success = false;
-				}
-				else
-				{
-					$info = curl_getinfo($fp);
-					curl_close($fp);
-					$this->headers = explode("\r\n\r\n", $this->headers, $info['redirect_count'] + 1);
-					$this->headers = array_pop($this->headers);
-					$parser =& new SimplePie_HTTP_Parser($this->headers);
-					if ($parser->parse())
-					{
-						$this->headers = $parser->headers;
-						$this->body = $parser->body;
-						$this->status_code = $parser->status_code;
-						if ((in_array($this->status_code, array(300, 301, 302, 303, 307)) || $this->status_code > 307 && $this->status_code < 400) && isset($this->headers['location']) && $this->redirects < $redirects)
-						{
-							$this->redirects++;
-							$location = SimplePie_Misc::absolutize_url($this->headers['location'], $url);
-							return $this->SimplePie_File($location, $timeout, $redirects, $headers, $useragent, $force_fsockopen);
-						}
-					}
-				}
-			}
-			else
-			{
-				$this->method = SIMPLEPIE_FILE_SOURCE_REMOTE | SIMPLEPIE_FILE_SOURCE_FSOCKOPEN;
-				$url_parts = parse_url($url);
-				$socket_host = $url_parts['host'];
-				if (isset($url_parts['scheme']) && strtolower($url_parts['scheme']) === 'https')
-				{
-					$socket_host = "ssl://$url_parts[host]";
-					$url_parts['port'] = 443;
-				}
-				if (!isset($url_parts['port']))
-				{
-					$url_parts['port'] = 80;
-				}
-				$fp = @fsockopen($socket_host, $url_parts['port'], $errno, $errstr, $timeout);
-				if (!$fp)
-				{
-					$this->error = 'fsockopen error: ' . $errstr;
-					$this->success = false;
-				}
-				else
-				{
-					stream_set_timeout($fp, $timeout);
-					if (isset($url_parts['path']))
-					{
-						if (isset($url_parts['query']))
-						{
-							$get = "$url_parts[path]?$url_parts[query]";
-						}
-						else
-						{
-							$get = $url_parts['path'];
-						}
-					}
-					else
-					{
-						$get = '/';
-					}
-					$out = "GET $get HTTP/1.0\r\n";
-					$out .= "Host: $url_parts[host]\r\n";
-					$out .= "User-Agent: $useragent\r\n";
-					if (extension_loaded('zlib'))
-					{
-						$out .= "Accept-Encoding: x-gzip,gzip,deflate\r\n";
-					}
-
-					if (isset($url_parts['user']) && isset($url_parts['pass']))
-					{
-						$out .= "Authorization: Basic " . base64_encode("$url_parts[user]:$url_parts[pass]") . "\r\n";
-					}
-					foreach ($headers as $key => $value)
-					{
-						$out .= "$key: $value\r\n";
-					}
-					$out .= "Connection: Close\r\n\r\n";
-					fwrite($fp, $out);
-
-					$info = stream_get_meta_data($fp);
-
-					$this->headers = '';
-					while (!$info['eof'] && !$info['timed_out'])
-					{
-						$this->headers .= fread($fp, 1160);
-						$info = stream_get_meta_data($fp);
-					}
-					if (!$info['timed_out'])
-					{
-						$parser =& new SimplePie_HTTP_Parser($this->headers);
-						if ($parser->parse())
-						{
-							$this->headers = $parser->headers;
-							$this->body = $parser->body;
-							$this->status_code = $parser->status_code;
-							if ((in_array($this->status_code, array(300, 301, 302, 303, 307)) || $this->status_code > 307 && $this->status_code < 400) && isset($this->headers['location']) && $this->redirects < $redirects)
-							{
-								$this->redirects++;
-								$location = SimplePie_Misc::absolutize_url($this->headers['location'], $url);
-								return $this->SimplePie_File($location, $timeout, $redirects, $headers, $useragent, $force_fsockopen);
-							}
-							if (isset($this->headers['content-encoding']))
-							{
-								// Hey, we act dumb elsewhere, so let's do that here too
-								switch (strtolower(trim($this->headers['content-encoding'], "\x09\x0A\x0D\x20")))
-								{
-									case 'gzip':
-									case 'x-gzip':
-										$decoder =& new SimplePie_gzdecode($this->body);
-										if (!$decoder->parse())
-										{
-											$this->error = 'Unable to decode HTTP "gzip" stream';
-											$this->success = false;
-										}
-										else
-										{
-											$this->body = $decoder->data;
-										}
-										break;
-
-									case 'deflate':
-										if (($body = gzuncompress($this->body)) === false)
-										{
-											if (($body = gzinflate($this->body)) === false)
-											{
-												$this->error = 'Unable to decode HTTP "deflate" stream';
-												$this->success = false;
-											}
-										}
-										$this->body = $body;
-										break;
-
-									default:
-										$this->error = 'Unknown content coding';
-										$this->success = false;
-								}
-							}
-						}
-					}
-					else
-					{
-						$this->error = 'fsocket timed out';
-						$this->success = false;
-					}
-					fclose($fp);
-				}
-			}
-		}
-		else
-		{
-			$this->method = SIMPLEPIE_FILE_SOURCE_LOCAL | SIMPLEPIE_FILE_SOURCE_FILE_GET_CONTENTS;
-			if (!$this->body = file_get_contents($url))
-			{
-				$this->error = 'file_get_contents could not read the file';
-				$this->success = false;
-			}
-		}
-	}
-}
-
-/**
- * HTTP Response Parser
- *
- * @package SimplePie
- */
-class SimplePie_HTTP_Parser
-{
-	/**
-	 * HTTP Version
-	 *
-	 * @access public
-	 * @var float
-	 */
-	var $http_version = 0.0;
-
-	/**
-	 * Status code
-	 *
-	 * @access public
-	 * @var int
-	 */
-	var $status_code = 0;
-
-	/**
-	 * Reason phrase
-	 *
-	 * @access public
-	 * @var string
-	 */
-	var $reason = '';
-
-	/**
-	 * Key/value pairs of the headers
-	 *
-	 * @access public
-	 * @var array
-	 */
-	var $headers = array();
-
-	/**
-	 * Body of the response
-	 *
-	 * @access public
-	 * @var string
-	 */
-	var $body = '';
-
-	/**
-	 * Current state of the state machine
-	 *
-	 * @access private
-	 * @var string
-	 */
-	var $state = 'http_version';
-
-	/**
-	 * Input data
-	 *
-	 * @access private
-	 * @var string
-	 */
-	var $data = '';
-
-	/**
-	 * Input data length (to avoid calling strlen() everytime this is needed)
-	 *
-	 * @access private
-	 * @var int
-	 */
-	var $data_length = 0;
-
-	/**
-	 * Current position of the pointer
-	 *
-	 * @var int
-	 * @access private
-	 */
-	var $position = 0;
-
-	/**
-	 * Name of the hedaer currently being parsed
-	 *
-	 * @access private
-	 * @var string
-	 */
-	var $name = '';
-
-	/**
-	 * Value of the hedaer currently being parsed
-	 *
-	 * @access private
-	 * @var string
-	 */
-	var $value = '';
-
-	/**
-	 * Create an instance of the class with the input data
-	 *
-	 * @access public
-	 * @param string $data Input data
-	 */
-	function SimplePie_HTTP_Parser($data)
-	{
-		$this->data = $data;
-		$this->data_length = strlen($this->data);
-	}
-
-	/**
-	 * Parse the input data
-	 *
-	 * @access public
-	 * @return bool true on success, false on failure
-	 */
-	function parse()
-	{
-		while ($this->state && $this->state !== 'emit' && $this->has_data())
-		{
-			$state = $this->state;
-			$this->$state();
-		}
-		$this->data = '';
-		if ($this->state === 'emit' || $this->state === 'body')
-		{
-			return true;
-		}
-		else
-		{
-			$this->http_version = '';
-			$this->status_code = '';
-			$this->reason = '';
-			$this->headers = array();
-			$this->body = '';
-			return false;
-		}
-	}
-
-	/**
-	 * Check whether there is data beyond the pointer
-	 *
-	 * @access private
-	 * @return bool true if there is further data, false if not
-	 */
-	function has_data()
-	{
-		return (bool) ($this->position < $this->data_length);
-	}
-
-	/**
-	 * See if the next character is LWS
-	 *
-	 * @access private
-	 * @return bool true if the next character is LWS, false if not
-	 */
-	function is_linear_whitespace()
-	{
-		return (bool) ($this->data[$this->position] === "\x09"
-			|| $this->data[$this->position] === "\x20"
-			|| ($this->data[$this->position] === "\x0A"
-				&& isset($this->data[$this->position + 1])
-				&& ($this->data[$this->position + 1] === "\x09" || $this->data[$this->position + 1] === "\x20")));
-	}
-
-	/**
-	 * Parse the HTTP version
-	 *
-	 * @access private
-	 */
-	function http_version()
-	{
-		if (strpos($this->data, "\x0A") !== false && strtoupper(substr($this->data, 0, 5)) === 'HTTP/')
-		{
-			$len = strspn($this->data, '0123456789.', 5);
-			$this->http_version = substr($this->data, 5, $len);
-			$this->position += 5 + $len;
-			if (substr_count($this->http_version, '.') <= 1)
-			{
-				$this->http_version = (float) $this->http_version;
-				$this->position += strspn($this->data, "\x09\x20", $this->position);
-				$this->state = 'status';
-			}
-			else
-			{
-				$this->state = false;
-			}
-		}
-		else
-		{
-			$this->state = false;
-		}
-	}
-
-	/**
-	 * Parse the status code
-	 *
-	 * @access private
-	 */
-	function status()
-	{
-		if ($len = strspn($this->data, '0123456789', $this->position))
-		{
-			$this->status_code = (int) substr($this->data, $this->position, $len);
-			$this->position += $len;
-			$this->state = 'reason';
-		}
-		else
-		{
-			$this->state = false;
-		}
-	}
-
-	/**
-	 * Parse the reason phrase
-	 *
-	 * @access private
-	 */
-	function reason()
-	{
-		$len = strcspn($this->data, "\x0A", $this->position);
-		$this->reason = trim(substr($this->data, $this->position, $len), "\x09\x0D\x20");
-		$this->position += $len + 1;
-		$this->state = 'new_line';
-	}
-
-	/**
-	 * Deal with a new line, shifting data around as needed
-	 *
-	 * @access private
-	 */
-	function new_line()
-	{
-		$this->value = trim($this->value, "\x0D\x20");
-		if ($this->name !== '' && $this->value !== '')
-		{
-			$this->name = strtolower($this->name);
-			if (isset($this->headers[$this->name]))
-			{
-				$this->headers[$this->name] .= ', ' . $this->value;
-			}
-			else
-			{
-				$this->headers[$this->name] = $this->value;
-			}
-		}
-		$this->name = '';
-		$this->value = '';
-		if (substr($this->data[$this->position], 0, 2) === "\x0D\x0A")
-		{
-			$this->position += 2;
-			$this->state = 'body';
-		}
-		elseif ($this->data[$this->position] === "\x0A")
-		{
-			$this->position++;
-			$this->state = 'body';
-		}
-		else
-		{
-			$this->state = 'name';
-		}
-	}
-
-	/**
-	 * Parse a header name
-	 *
-	 * @access private
-	 */
-	function name()
-	{
-		$len = strcspn($this->data, "\x0A:", $this->position);
-		if (isset($this->data[$this->position + $len]))
-		{
-			if ($this->data[$this->position + $len] === "\x0A")
-			{
-				$this->position += $len;
-				$this->state = 'new_line';
-			}
-			else
-			{
-				$this->name = substr($this->data, $this->position, $len);
-				$this->position += $len + 1;
-				$this->state = 'value';
-			}
-		}
-		else
-		{
-			$this->state = false;
-		}
-	}
-
-	/**
-	 * Parse LWS, replacing consecutive LWS characters with a single space
-	 *
-	 * @access private
-	 */
-	function linear_whitespace()
-	{
-		do
-		{
-			if (substr($this->data, $this->position, 2) === "\x0D\x0A")
-			{
-				$this->position += 2;
-			}
-			elseif ($this->data[$this->position] === "\x0A")
-			{
-				$this->position++;
-			}
-			$this->position += strspn($this->data, "\x09\x20", $this->position);
-		} while ($this->has_data() && $this->is_linear_whitespace());
-		$this->value .= "\x20";
-	}
-
-	/**
-	 * See what state to move to while within non-quoted header values
-	 *
-	 * @access private
-	 */
-	function value()
-	{
-		if ($this->is_linear_whitespace())
-		{
-			$this->linear_whitespace();
-		}
-		else
-		{
-			switch ($this->data[$this->position])
-			{
-				case '"':
-					$this->position++;
-					$this->state = 'quote';
-					break;
-
-				case "\x0A":
-					$this->position++;
-					$this->state = 'new_line';
-					break;
-
-				default:
-					$this->state = 'value_char';
-					break;
-			}
-		}
-	}
-
-	/**
-	 * Parse a header value while outside quotes
-	 *
-	 * @access private
-	 */
-	function value_char()
-	{
-		$len = strcspn($this->data, "\x09\x20\x0A\"", $this->position);
-		$this->value .= substr($this->data, $this->position, $len);
-		$this->position += $len;
-		$this->state = 'value';
-	}
-
-	/**
-	 * See what state to move to while within quoted header values
-	 *
-	 * @access private
-	 */
-	function quote()
-	{
-		if ($this->is_linear_whitespace())
-		{
-			$this->linear_whitespace();
-		}
-		else
-		{
-			switch ($this->data[$this->position])
-			{
-				case '"':
-					$this->position++;
-					$this->state = 'value';
-					break;
-
-				case "\x0A":
-					$this->position++;
-					$this->state = 'new_line';
-					break;
-
-				case '\\':
-					$this->position++;
-					$this->state = 'quote_escaped';
-					break;
-
-				default:
-					$this->state = 'quote_char';
-					break;
-			}
-		}
-	}
-
-	/**
-	 * Parse a header value while within quotes
-	 *
-	 * @access private
-	 */
-	function quote_char()
-	{
-		$len = strcspn($this->data, "\x09\x20\x0A\"\\", $this->position);
-		$this->value .= substr($this->data, $this->position, $len);
-		$this->position += $len;
-		$this->state = 'value';
-	}
-
-	/**
-	 * Parse an escaped character within quotes
-	 *
-	 * @access private
-	 */
-	function quote_escaped()
-	{
-		$this->value .= $this->data[$this->position];
-		$this->position++;
-		$this->state = 'quote';
-	}
-
-	/**
-	 * Parse the body
-	 *
-	 * @access private
-	 */
-	function body()
-	{
-		$this->body = substr($this->data, $this->position);
-		$this->state = 'emit';
-	}
-}
-
-/**
- * gzdecode
- *
- * @package SimplePie
- */
-class SimplePie_gzdecode
-{
-	/**
-	 * Compressed data
-	 *
-	 * @access private
-	 * @see gzdecode::$data
-	 */
-	var $compressed_data;
-
-	/**
-	 * Size of compressed data
-	 *
-	 * @access private
-	 */
-	var $compressed_size;
-
-	/**
-	 * Minimum size of a valid gzip string
-	 *
-	 * @access private
-	 */
-	var $min_compressed_size = 18;
-
-	/**
-	 * Current position of pointer
-	 *
-	 * @access private
-	 */
-	var $position = 0;
-
-	/**
-	 * Flags (FLG)
-	 *
-	 * @access private
-	 */
-	var $flags;
-
-	/**
-	 * Uncompressed data
-	 *
-	 * @access public
-	 * @see gzdecode::$compressed_data
-	 */
-	var $data;
-
-	/**
-	 * Modified time
-	 *
-	 * @access public
-	 */
-	var $MTIME;
-
-	/**
-	 * Extra Flags
-	 *
-	 * @access public
-	 */
-	var $XFL;
-
-	/**
-	 * Operating System
-	 *
-	 * @access public
-	 */
-	var $OS;
-
-	/**
-	 * Subfield ID 1
-	 *
-	 * @access public
-	 * @see gzdecode::$extra_field
-	 * @see gzdecode::$SI2
-	 */
-	var $SI1;
-
-	/**
-	 * Subfield ID 2
-	 *
-	 * @access public
-	 * @see gzdecode::$extra_field
-	 * @see gzdecode::$SI1
-	 */
-	var $SI2;
-
-	/**
-	 * Extra field content
-	 *
-	 * @access public
-	 * @see gzdecode::$SI1
-	 * @see gzdecode::$SI2
-	 */
-	var $extra_field;
-
-	/**
-	 * Original filename
-	 *
-	 * @access public
-	 */
-	var $filename;
-
-	/**
-	 * Human readable comment
-	 *
-	 * @access public
-	 */
-	var $comment;
-
-	/**
-	 * Don't allow anything to be set
-	 *
-	 * @access public
-	 */
-	function __set($name, $value)
-	{
-		trigger_error("Cannot write property $name", E_USER_ERROR);
-	}
-
-	/**
-	 * Set the compressed string and related properties
-	 *
-	 * @access public
-	 */
-	function SimplePie_gzdecode($data)
-	{
-		$this->compressed_data = $data;
-		$this->compressed_size = strlen($data);
-	}
-
-	/**
-	 * Decode the GZIP stream
-	 *
-	 * @access public
-	 */
-	function parse()
-	{
-		if ($this->compressed_size >= $this->min_compressed_size)
-		{
-			// Check ID1, ID2, and CM
-			if (substr($this->compressed_data, 0, 3) !== "\x1F\x8B\x08")
-			{
-				return false;
-			}
-
-			// Get the FLG (FLaGs)
-			$this->flags = ord($this->compressed_data[3]);
-
-			// FLG bits above (1 << 4) are reserved
-			if ($this->flags > 0x1F)
-			{
-				return false;
-			}
-
-			// Advance the pointer after the above
-			$this->position += 4;
-
-			// MTIME
-			$mtime = substr($this->compressed_data, $this->position, 4);
-			// Reverse the string if we're on a big-endian arch because l is the only signed long and is machine endianness
-			if (current(unpack('S', "\x00\x01")) === 1)
-			{
-				$mtime = strrev($mtime);
-			}
-			$this->MTIME = current(unpack('l', $mtime));
-			$this->position += 4;
-
-			// Get the XFL (eXtra FLags)
-			$this->XFL = ord($this->compressed_data[$this->position++]);
-
-			// Get the OS (Operating System)
-			$this->OS = ord($this->compressed_data[$this->position++]);
-
-			// Parse the FEXTRA
-			if ($this->flags & 4)
-			{
-				// Read subfield IDs
-				$this->SI1 = $this->compressed_data[$this->position++];
-				$this->SI2 = $this->compressed_data[$this->position++];
-
-				// SI2 set to zero is reserved for future use
-				if ($this->SI2 === "\x00")
-				{
-					return false;
-				}
-
-				// Get the length of the extra field
-				$len = current(unpack('v', substr($this->compressed_data, $this->position, 2)));
-				$this->position += 2;
-
-				// Check the length of the string is still valid
-				$this->min_compressed_size += $len + 4;
-				if ($this->compressed_size >= $this->min_compressed_size)
-				{
-					// Set the extra field to the given data
-					$this->extra_field = substr($this->compressed_data, $this->position, $len);
-					$this->position += $len;
-				}
-				else
-				{
-					return false;
-				}
-			}
-
-			// Parse the FNAME
-			if ($this->flags & 8)
-			{
-				// Get the length of the filename
-				$len = strcspn($this->compressed_data, "\x00", $this->position);
-
-				// Check the length of the string is still valid
-				$this->min_compressed_size += $len + 1;
-				if ($this->compressed_size >= $this->min_compressed_size)
-				{
-					// Set the original filename to the given string
-					$this->filename = substr($this->compressed_data, $this->position, $len);
-					$this->position += $len + 1;
-				}
-				else
-				{
-					return false;
-				}
-			}
-
-			// Parse the FCOMMENT
-			if ($this->flags & 16)
-			{
-				// Get the length of the comment
-				$len = strcspn($this->compressed_data, "\x00", $this->position);
-
-				// Check the length of the string is still valid
-				$this->min_compressed_size += $len + 1;
-				if ($this->compressed_size >= $this->min_compressed_size)
-				{
-					// Set the original comment to the given string
-					$this->comment = substr($this->compressed_data, $this->position, $len);
-					$this->position += $len + 1;
-				}
-				else
-				{
-					return false;
-				}
-			}
-
-			// Parse the FHCRC
-			if ($this->flags & 2)
-			{
-				// Check the length of the string is still valid
-				$this->min_compressed_size += $len + 2;
-				if ($this->compressed_size >= $this->min_compressed_size)
-				{
-					// Read the CRC
-					$crc = current(unpack('v', substr($this->compressed_data, $this->position, 2)));
-
-					// Check the CRC matches
-					if ((crc32(substr($this->compressed_data, 0, $this->position)) & 0xFFFF) === $crc)
-					{
-						$this->position += 2;
-					}
-					else
-					{
-						return false;
-					}
-				}
-				else
-				{
-					return false;
-				}
-			}
-
-			// Decompress the actual data
-			if (($this->data = gzinflate(substr($this->compressed_data, $this->position, -8))) === false)
-			{
-				return false;
-			}
-			else
-			{
-				$this->position = $this->compressed_size - 8;
-			}
-
-			// Check CRC of data
-			$crc = current(unpack('V', substr($this->compressed_data, $this->position, 4)));
-			$this->position += 4;
-			/*if (extension_loaded('hash') && sprintf('%u', current(unpack('V', hash('crc32b', $this->data)))) !== sprintf('%u', $crc))
-			{
-				return false;
-			}*/
-
-			// Check ISIZE of data
-			$isize = current(unpack('V', substr($this->compressed_data, $this->position, 4)));
-			$this->position += 4;
-			if (sprintf('%u', strlen($this->data) & 0xFFFFFFFF) !== sprintf('%u', $isize))
-			{
-				return false;
-			}
-
-			// Wow, against all odds, we've actually got a valid gzip string
-			return true;
-		}
-		else
-		{
-			return false;
-		}
-	}
-}
-
-class SimplePie_Cache
-{
-	/**
-	 * Don't call the constructor. Please.
-	 *
-	 * @access private
-	 */
-	function SimplePie_Cache()
-	{
-		trigger_error('Please call SimplePie_Cache::create() instead of the constructor', E_USER_ERROR);
-	}
-
-	/**
-	 * Create a new SimplePie_Cache object
-	 *
-	 * @static
-	 * @access public
-	 */
-	function create($location, $filename, $extension)
-	{
-		$location_iri =& new SimplePie_IRI($location);
-		switch ($location_iri->get_scheme())
-		{
-			case 'mysql':
-				if (extension_loaded('mysql'))
-				{
-					return new SimplePie_Cache_MySQL($location_iri, $filename, $extension);
-				}
-				break;
-
-			default:
-				return new SimplePie_Cache_File($location, $filename, $extension);
-		}
-	}
-}
-
-class SimplePie_Cache_File
-{
-	var $location;
-	var $filename;
-	var $extension;
-	var $name;
-
-	function SimplePie_Cache_File($location, $filename, $extension)
-	{
-		$this->location = $location;
-		$this->filename = $filename;
-		$this->extension = $extension;
-		$this->name = "$this->location/$this->filename.$this->extension";
-	}
-
-	function save($data)
-	{
-		if (file_exists($this->name) && is_writeable($this->name) || file_exists($this->location) && is_writeable($this->location))
-		{
-			if (is_a($data, 'SimplePie'))
-			{
-				$data = $data->data;
-			}
-
-			$data = serialize($data);
-
-			if (function_exists('file_put_contents'))
-			{
-				return (bool) file_put_contents($this->name, $data);
-			}
-			else
-			{
-				$fp = fopen($this->name, 'wb');
-				if ($fp)
-				{
-					fwrite($fp, $data);
-					fclose($fp);
-					return true;
-				}
-			}
-		}
-		return false;
-	}
-
-	function load()
-	{
-		if (file_exists($this->name) && is_readable($this->name))
-		{
-			return unserialize(file_get_contents($this->name));
-		}
-		return false;
-	}
-
-	function mtime()
-	{
-		if (file_exists($this->name))
-		{
-			return filemtime($this->name);
-		}
-		return false;
-	}
-
-	function touch()
-	{
-		if (file_exists($this->name))
-		{
-			return touch($this->name);
-		}
-		return false;
-	}
-
-	function unlink()
-	{
-		if (file_exists($this->name))
-		{
-			return unlink($this->name);
-		}
-		return false;
-	}
-}
-
-class SimplePie_Cache_DB
-{
-	function prepare_simplepie_object_for_cache($data)
-	{
-		$items = $data->get_items();
-		$items_by_id = array();
-
-		if (!empty($items))
-		{
-			foreach ($items as $item)
-			{
-				$items_by_id[$item->get_id()] = $item;
-			}
-
-			if (count($items_by_id) !== count($items))
-			{
-				$items_by_id = array();
-				foreach ($items as $item)
-				{
-					$items_by_id[$item->get_id(true)] = $item;
-				}
-			}
-
-			if (isset($data->data['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['feed'][0]))
-			{
-				$channel =& $data->data['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['feed'][0];
-			}
-			elseif (isset($data->data['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['feed'][0]))
-			{
-				$channel =& $data->data['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['feed'][0];
-			}
-			elseif (isset($data->data['child'][SIMPLEPIE_NAMESPACE_RDF]['RDF'][0]))
-			{
-				$channel =& $data->data['child'][SIMPLEPIE_NAMESPACE_RDF]['RDF'][0];
-			}
-			elseif (isset($data->data['child'][SIMPLEPIE_NAMESPACE_RSS_20]['rss'][0]['child'][SIMPLEPIE_NAMESPACE_RSS_20]['channel'][0]))
-			{
-				$channel =& $data->data['child'][SIMPLEPIE_NAMESPACE_RSS_20]['rss'][0]['child'][SIMPLEPIE_NAMESPACE_RSS_20]['channel'][0];
-			}
-			else
-			{
-				$channel = null;
-			}
-
-			if ($channel !== null)
-			{
-				if (isset($channel['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['entry']))
-				{
-					unset($channel['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['entry']);
-				}
-				if (isset($channel['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['entry']))
-				{
-					unset($channel['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['entry']);
-				}
-				if (isset($channel['child'][SIMPLEPIE_NAMESPACE_RSS_10]['item']))
-				{
-					unset($channel['child'][SIMPLEPIE_NAMESPACE_RSS_10]['item']);
-				}
-				if (isset($channel['child'][SIMPLEPIE_NAMESPACE_RSS_090]['item']))
-				{
-					unset($channel['child'][SIMPLEPIE_NAMESPACE_RSS_090]['item']);
-				}
-				if (isset($channel['child'][SIMPLEPIE_NAMESPACE_RSS_20]['item']))
-				{
-					unset($channel['child'][SIMPLEPIE_NAMESPACE_RSS_20]['item']);
-				}
-			}
-			if (isset($data->data['items']))
-			{
-				unset($data->data['items']);
-			}
-			if (isset($data->data['ordered_items']))
-			{
-				unset($data->data['ordered_items']);
-			}
-		}
-		return array(serialize($data->data), $items_by_id);
-	}
-}
-
-class SimplePie_Cache_MySQL extends SimplePie_Cache_DB
-{
-	var $mysql;
-	var $options;
-	var $id;
-
-	function SimplePie_Cache_MySQL($mysql_location, $name, $extension)
-	{
-		$host = $mysql_location->get_host();
-		if (SimplePie_Misc::stripos($host, 'unix(') === 0 && substr($host, -1) === ')')
-		{
-			$server = ':' . substr($host, 5, -1);
-		}
-		else
-		{
-			$server = $host;
-			if ($mysql_location->get_port() !== null)
-			{
-				$server .= ':' . $mysql_location->get_port();
-			}
-		}
-
-		if (strpos($mysql_location->get_userinfo(), ':') !== false)
-		{
-			list($username, $password) = explode(':', $mysql_location->get_userinfo(), 2);
-		}
-		else
-		{
-			$username = $mysql_location->get_userinfo();
-			$password = null;
-		}
-
-		if ($this->mysql = mysql_connect($server, $username, $password))
-		{
-			$this->id = $name . $extension;
-			$this->options = SimplePie_Misc::parse_str($mysql_location->get_query());
-			if (!isset($this->options['prefix'][0]))
-			{
-				$this->options['prefix'][0] = '';
-			}
-
-			if (mysql_select_db(ltrim($mysql_location->get_path(), '/'))
-				&& mysql_query('SET NAMES utf8')
-				&& ($query = mysql_unbuffered_query('SHOW TABLES')))
-			{
-				$db = array();
-				while ($row = mysql_fetch_row($query))
-				{
-					$db[] = $row[0];
-				}
-
-				if (!in_array($this->options['prefix'][0] . 'cache_data', $db))
-				{
-					if (!mysql_query('CREATE TABLE `' . $this->options['prefix'][0] . 'cache_data` (`id` TEXT CHARACTER SET utf8 NOT NULL, `items` SMALLINT NOT NULL DEFAULT 0, `data` BLOB NOT NULL, `mtime` INT UNSIGNED NOT NULL, UNIQUE (`id`(125)))'))
-					{
-						$this->mysql = null;
-					}
-				}
-
-				if (!in_array($this->options['prefix'][0] . 'items', $db))
-				{
-					if (!mysql_query('CREATE TABLE `' . $this->options['prefix'][0] . 'items` (`feed_id` TEXT CHARACTER SET utf8 NOT NULL, `id` TEXT CHARACTER SET utf8 NOT NULL, `data` TEXT CHARACTER SET utf8 NOT NULL, `posted` INT UNSIGNED NOT NULL, INDEX `feed_id` (`feed_id`(125)))'))
-					{
-						$this->mysql = null;
-					}
-				}
-			}
-			else
-			{
-				$this->mysql = null;
-			}
-		}
-	}
-
-	function save($data)
-	{
-		if ($this->mysql)
-		{
-			$feed_id = "'" . mysql_real_escape_string($this->id) . "'";
-
-			if (is_a($data, 'SimplePie'))
-			{
-				if (SIMPLEPIE_PHP5)
-				{
-					// This keyword needs to defy coding standards for PHP4 compatibility
-					$data = clone($data);
-				}
-
-				$prepared = $this->prepare_simplepie_object_for_cache($data);
-
-				if ($query = mysql_query('SELECT `id` FROM `' . $this->options['prefix'][0] . 'cache_data` WHERE `id` = ' . $feed_id, $this->mysql))
-				{
-					if (mysql_num_rows($query))
-					{
-						$items = count($prepared[1]);
-						if ($items)
-						{
-							$sql = 'UPDATE `' . $this->options['prefix'][0] . 'cache_data` SET `items` = ' . $items . ', `data` = \'' . mysql_real_escape_string($prepared[0]) . '\', `mtime` = ' . time() . ' WHERE `id` = ' . $feed_id;
-						}
-						else
-						{
-							$sql = 'UPDATE `' . $this->options['prefix'][0] . 'cache_data` SET `data` = \'' . mysql_real_escape_string($prepared[0]) . '\', `mtime` = ' . time() . ' WHERE `id` = ' . $feed_id;
-						}
-
-						if (!mysql_query($sql, $this->mysql))
-						{
-							return false;
-						}
-					}
-					elseif (!mysql_query('INSERT INTO `' . $this->options['prefix'][0] . 'cache_data` (`id`, `items`, `data`, `mtime`) VALUES(' . $feed_id . ', ' . count($prepared[1]) . ', \'' . mysql_real_escape_string($prepared[0]) . '\', ' . time() . ')', $this->mysql))
-					{
-						return false;
-					}
-
-					$ids = array_keys($prepared[1]);
-					if (!empty($ids))
-					{
-						foreach ($ids as $id)
-						{
-							$database_ids[] = mysql_real_escape_string($id);
-						}
-
-						if ($query = mysql_unbuffered_query('SELECT `id` FROM `' . $this->options['prefix'][0] . 'items` WHERE `id` = \'' . implode('\' OR `id` = \'', $database_ids) . '\' AND `feed_id` = ' . $feed_id, $this->mysql))
-						{
-							$existing_ids = array();
-							while ($row = mysql_fetch_row($query))
-							{
-								$existing_ids[] = $row[0];
-							}
-
-							$new_ids = array_diff($ids, $existing_ids);
-
-							foreach ($new_ids as $new_id)
-							{
-								if (!($date = $prepared[1][$new_id]->get_date('U')))
-								{
-									$date = time();
-								}
-
-								if (!mysql_query('INSERT INTO `' . $this->options['prefix'][0] . 'items` (`feed_id`, `id`, `data`, `posted`) VALUES(' . $feed_id . ', \'' . mysql_real_escape_string($new_id) . '\', \'' . mysql_real_escape_string(serialize($prepared[1][$new_id]->data)) . '\', ' . $date . ')', $this->mysql))
-								{
-									return false;
-								}
-							}
-							return true;
-						}
-					}
-					else
-					{
-						return true;
-					}
-				}
-			}
-			elseif ($query = mysql_query('SELECT `id` FROM `' . $this->options['prefix'][0] . 'cache_data` WHERE `id` = ' . $feed_id, $this->mysql))
-			{
-				if (mysql_num_rows($query))
-				{
-					if (mysql_query('UPDATE `' . $this->options['prefix'][0] . 'cache_data` SET `items` = 0, `data` = \'' . mysql_real_escape_string(serialize($data)) . '\', `mtime` = ' . time() . ' WHERE `id` = ' . $feed_id, $this->mysql))
-					{
-						return true;
-					}
-				}
-				elseif (mysql_query('INSERT INTO `' . $this->options['prefix'][0] . 'cache_data` (`id`, `items`, `data`, `mtime`) VALUES(\'' . mysql_real_escape_string($this->id) . '\', 0, \'' . mysql_real_escape_string(serialize($data)) . '\', ' . time() . ')', $this->mysql))
-				{
-					return true;
-				}
-			}
-		}
-		return false;
-	}
-
-	function load()
-	{
-		if ($this->mysql && ($query = mysql_query('SELECT `items`, `data` FROM `' . $this->options['prefix'][0] . 'cache_data` WHERE `id` = \'' . mysql_real_escape_string($this->id) . "'", $this->mysql)) && ($row = mysql_fetch_row($query)))
-		{
-			$data = unserialize($row[1]);
-
-			if (isset($this->options['items'][0]))
-			{
-				$items = (int) $this->options['items'][0];
-			}
-			else
-			{
-				$items = (int) $row[0];
-			}
-
-			if ($items !== 0)
-			{
-				if (isset($data['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['feed'][0]))
-				{
-					$feed =& $data['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['feed'][0];
-				}
-				elseif (isset($data['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['feed'][0]))
-				{
-					$feed =& $data['child'][SIMPLEPIE_NAMESPACE_ATOM_03]['feed'][0];
-				}
-				elseif (isset($data['child'][SIMPLEPIE_NAMESPACE_RDF]['RDF'][0]))
-				{
-					$feed =& $data['child'][SIMPLEPIE_NAMESPACE_RDF]['RDF'][0];
-				}
-				elseif (isset($data['child'][SIMPLEPIE_NAMESPACE_RSS_20]['rss'][0]))
-				{
-					$feed =& $data['child'][SIMPLEPIE_NAMESPACE_RSS_20]['rss'][0];
-				}
-				else
-				{
-					$feed = null;
-				}
-
-				if ($feed !== null)
-				{
-					$sql = 'SELECT `data` FROM `' . $this->options['prefix'][0] . 'items` WHERE `feed_id` = \'' . mysql_real_escape_string($this->id) . '\' ORDER BY `posted` DESC';
-					if ($items > 0)
-					{
-						$sql .= ' LIMIT ' . $items;
-					}
-
-					if ($query = mysql_unbuffered_query($sql, $this->mysql))
-					{
-						while ($row = mysql_fetch_row($query))
-						{
-							$feed['child'][SIMPLEPIE_NAMESPACE_ATOM_10]['entry'][] = unserialize($row[0]);
-						}
-					}
-					else
-					{
-						return false;
-					}
-				}
-			}
-			return $data;
-		}
-		return false;
-	}
-
-	function mtime()
-	{
-		if ($this->mysql && ($query = mysql_query('SELECT `mtime` FROM `' . $this->options['prefix'][0] . 'cache_data` WHERE `id` = \'' . mysql_real_escape_string($this->id) . "'", $this->mysql)) && ($row = mysql_fetch_row($query)))
-		{
-			return $row[0];
-		}
-		else
-		{
-			return false;
-		}
-	}
-
-	function touch()
-	{
-		if ($this->mysql && ($query = mysql_query('UPDATE `' . $this->options['prefix'][0] . 'cache_data` SET `mtime` = ' . time() . ' WHERE `id` = \'' . mysql_real_escape_string($this->id) . "'", $this->mysql)) && mysql_affected_rows($this->mysql))
-		{
-			return true;
-		}
-		else
-		{
-			return false;
-		}
-	}
-
-	function unlink()
-	{
-		if ($this->mysql && ($query = mysql_query('DELETE FROM `' . $this->options['prefix'][0] . 'cache_data` WHERE `id` = \'' . mysql_real_escape_string($this->id) . "'", $this->mysql)) && ($query2 = mysql_query('DELETE FROM `' . $this->options['prefix'][0] . 'items` WHERE `feed_id` = \'' . mysql_real_escape_string($this->id) . "'", $this->mysql)))
-		{
-			return true;
-		}
-		else
-		{
-			return false;
-		}
-	}
-}
-
-class SimplePie_Misc
-{
-	function time_hms($seconds)
-	{
-		$time = '';
-
-		$hours = floor($seconds / 3600);
-		$remainder = $seconds % 3600;
-		if ($hours > 0)
-		{
-			$time .= $hours.':';
-		}
-
-		$minutes = floor($remainder / 60);
-		$seconds = $remainder % 60;
-		if ($minutes < 10 && $hours > 0)
-		{
-			$minutes = '0' . $minutes;
-		}
-		if ($seconds < 10)
-		{
-			$seconds = '0' . $seconds;
-		}
-
-		$time .= $minutes.':';
-		$time .= $seconds;
-
-		return $time;
-	}
-
-	function absolutize_url($relative, $base)
-	{
-		$iri = SimplePie_IRI::absolutize(new SimplePie_IRI($base), $relative);
-		return $iri->get_iri();
-	}
-
-	function remove_dot_segments($input)
-	{
-		$output = '';
-		while (strpos($input, './') !== false || strpos($input, '/.') !== false || $input === '.' || $input === '..')
-		{
-			// A: If the input buffer begins with a prefix of "../" or "./", then remove that prefix from the input buffer; otherwise,
-			if (strpos($input, '../') === 0)
-			{
-				$input = substr($input, 3);
-			}
-			elseif (strpos($input, './') === 0)
-			{
-				$input = substr($input, 2);
-			}
-			// B: if the input buffer begins with a prefix of "/./" or "/.", where "." is a complete path segment, then replace that prefix with "/" in the input buffer; otherwise,
-			elseif (strpos($input, '/./') === 0)
-			{
-				$input = substr_replace($input, '/', 0, 3);
-			}
-			elseif ($input === '/.')
-			{
-				$input = '/';
-			}
-			// C: if the input buffer begins with a prefix of "/../" or "/..", where ".." is a complete path segment, then replace that prefix with "/" in the input buffer and remove the last segment and its preceding "/" (if any) from the output buffer; otherwise,
-			elseif (strpos($input, '/../') === 0)
-			{
-				$input = substr_replace($input, '/', 0, 4);
-				$output = substr_replace($output, '', strrpos($output, '/'));
-			}
-			elseif ($input === '/..')
-			{
-				$input = '/';
-				$output = substr_replace($output, '', strrpos($output, '/'));
-			}
-			// D: if the input buffer consists only of "." or "..", then remove that from the input buffer; otherwise,
-			elseif ($input === '.' || $input === '..')
-			{
-				$input = '';
-			}
-			// E: move the first path segment in the input buffer to the end of the output buffer, including the initial "/" character (if any) and any subsequent characters up to, but not including, the next "/" character or the end of the input buffer
-			elseif (($pos = strpos($input, '/', 1)) !== false)
-			{
-				$output .= substr($input, 0, $pos);
-				$input = substr_replace($input, '', 0, $pos);
-			}
-			else
-			{
-				$output .= $input;
-				$input = '';
-			}
-		}
-		return $output . $input;
-	}
-
-	function get_element($realname, $string)
-	{
-		$return = array();
-		$name = preg_quote($realname, '/');
-		if (preg_match_all("/<($name)" . SIMPLEPIE_PCRE_HTML_ATTRIBUTE . "(>(.*)<\/$name>|(\/)?>)/siU", $string, $matches, PREG_SET_ORDER | PREG_OFFSET_CAPTURE))
-		{
-			for ($i = 0, $total_matches = count($matches); $i < $total_matches; $i++)
-			{
-				$return[$i]['tag'] = $realname;
-				$return[$i]['full'] = $matches[$i][0][0];
-				$return[$i]['offset'] = $matches[$i][0][1];
-				if (strlen($matches[$i][3][0]) <= 2)
-				{
-					$return[$i]['self_closing'] = true;
-				}
-				else
-				{
-					$return[$i]['self_closing'] = false;
-					$return[$i]['content'] = $matches[$i][4][0];
-				}
-				$return[$i]['attribs'] = array();
-				if (isset($matches[$i][2][0]) && preg_match_all('/[\x09\x0A\x0B\x0C\x0D\x20]+([^\x09\x0A\x0B\x0C\x0D\x20\x2F\x3E][^\x09\x0A\x0B\x0C\x0D\x20\x2F\x3D\x3E]*)(?:[\x09\x0A\x0B\x0C\x0D\x20]*=[\x09\x0A\x0B\x0C\x0D\x20]*(?:"([^"]*)"|\'([^\']*)\'|([^\x09\x0A\x0B\x0C\x0D\x20\x22\x27\x3E][^\x09\x0A\x0B\x0C\x0D\x20\x3E]*)?))?/', ' ' . $matches[$i][2][0] . ' ', $attribs, PREG_SET_ORDER))
-				{
-					for ($j = 0, $total_attribs = count($attribs); $j < $total_attribs; $j++)
-					{
-						if (count($attribs[$j]) === 2)
-						{
-							$attribs[$j][2] = $attribs[$j][1];
-						}
-						$return[$i]['attribs'][strtolower($attribs[$j][1])]['data'] = SimplePie_Misc::entities_decode(end($attribs[$j]), 'UTF-8');
-					}
-				}
-			}
-		}
-		return $return;
-	}
-
-	function element_implode($element)
-	{
-		$full = "<$element[tag]";
-		foreach ($element['attribs'] as $key => $value)
-		{
-			$key = strtolower($key);
-			$full .= " $key=\"" . htmlspecialchars($value['data']) . '"';
-		}
-		if ($element['self_closing'])
-		{
-			$full .= ' />';
-		}
-		else
-		{
-			$full .= ">$element[content]</$element[tag]>";
-		}
-		return $full;
-	}
-
-	function error($message, $level, $file, $line)
-	{
-		if ((ini_get('error_reporting') & $level) > 0)
-		{
-			switch ($level)
-			{
-				case E_USER_ERROR:
-					$note = 'PHP Error';
-					break;
-				case E_USER_WARNING:
-					$note = 'PHP Warning';
-					break;
-				case E_USER_NOTICE:
-					$note = 'PHP Notice';
-					break;
-				default:
-					$note = 'Unknown Error';
-					break;
-			}
-
-			$log_error = true;
-			if (!function_exists('error_log'))
-			{
-				$log_error = false;
-			}
-
-			$log_file = @ini_get('error_log');
-			if (!empty($log_file) && ('syslog' != $log_file) && !@is_writable($log_file))
-			{
-				$log_error = false;
-			}
-
-			if ($log_error)
-			{
-				@error_log("$note: $message in $file on line $line", 0);
-			}
-		}
-
-		return $message;
-	}
-
-	/**
-	 * If a file has been cached, retrieve and display it.
-	 *
-	 * This is most useful for caching images (get_favicon(), etc.),
-	 * however it works for all cached files.  This WILL NOT display ANY
-	 * file/image/page/whatever, but rather only display what has already
-	 * been cached by SimplePie.
-	 *
-	 * @access public
-	 * @see SimplePie::get_favicon()
-	 * @param str $identifier_url URL that is used to identify the content.
-	 * This may or may not be the actual URL of the live content.
-	 * @param str $cache_location Location of SimplePie's cache.  Defaults
-	 * to './cache'.
-	 * @param str $cache_extension The file extension that the file was
-	 * cached with.  Defaults to 'spc'.
-	 * @param str $cache_class Name of the cache-handling class being used
-	 * in SimplePie.  Defaults to 'SimplePie_Cache', and should be left
-	 * as-is unless you've overloaded the class.
-	 * @param str $cache_name_function Obsolete. Exists for backwards
-	 * compatibility reasons only.
-	 */
-	function display_cached_file($identifier_url, $cache_location = './cache', $cache_extension = 'spc', $cache_class = 'SimplePie_Cache', $cache_name_function = 'md5')
-	{
-		$cache = call_user_func(array($cache_class, 'create'), $cache_location, $identifier_url, $cache_extension);
-
-		if ($file = $cache->load())
-		{
-			if (isset($file['headers']['content-type']))
-			{
-				header('Content-type:' . $file['headers']['content-type']);
-			}
-			else
-			{
-				header('Content-type: application/octet-stream');
-			}
-			header('Expires: ' . gmdate('D, d M Y H:i:s', time() + 604800) . ' GMT'); // 7 days
-			echo $file['body'];
-			exit;
-		}
-
-		die('Cached file for ' . $identifier_url . ' cannot be found.');
-	}
-
-	function fix_protocol($url, $http = 1)
-	{
-		$url = SimplePie_Misc::normalize_url($url);
-		$parsed = SimplePie_Misc::parse_url($url);
-		if ($parsed['scheme'] !== '' && $parsed['scheme'] !== 'http' && $parsed['scheme'] !== 'https')
-		{
-			return SimplePie_Misc::fix_protocol(SimplePie_Misc::compress_parse_url('http', $parsed['authority'], $parsed['path'], $parsed['query'], $parsed['fragment']), $http);
-		}
-
-		if ($parsed['scheme'] === '' && $parsed['authority'] === '' && !file_exists($url))
-		{
-			return SimplePie_Misc::fix_protocol(SimplePie_Misc::compress_parse_url('http', $parsed['path'], '', $parsed['query'], $parsed['fragment']), $http);
-		}
-
-		if ($http === 2 && $parsed['scheme'] !== '')
-		{
-			return "feed:$url";
-		}
-		elseif ($http === 3 && strtolower($parsed['scheme']) === 'http')
-		{
-			return substr_replace($url, 'podcast', 0, 4);
-		}
-		elseif ($http === 4 && strtolower($parsed['scheme']) === 'http')
-		{
-			return substr_replace($url, 'itpc', 0, 4);
-		}
-		else
-		{
-			return $url;
-		}
-	}
-
-	function parse_url($url)
-	{
-		$iri =& new SimplePie_IRI($url);
-		return array(
-			'scheme' => (string) $iri->get_scheme(),
-			'authority' => (string) $iri->get_authority(),
-			'path' => (string) $iri->get_path(),
-			'query' => (string) $iri->get_query(),
-			'fragment' => (string) $iri->get_fragment()
-		);
-	}
-
-	function compress_parse_url($scheme = '', $authority = '', $path = '', $query = '', $fragment = '')
-	{
-		$iri =& new SimplePie_IRI('');
-		$iri->set_scheme($scheme);
-		$iri->set_authority($authority);
-		$iri->set_path($path);
-		$iri->set_query($query);
-		$iri->set_fragment($fragment);
-		return $iri->get_iri();
-	}
-
-	function normalize_url($url)
-	{
-		$iri =& new SimplePie_IRI($url);
-		return $iri->get_iri();
-	}
-
-	function percent_encoding_normalization($match)
-	{
-		$integer = hexdec($match[1]);
-		if ($integer >= 0x41 && $integer <= 0x5A || $integer >= 0x61 && $integer <= 0x7A || $integer >= 0x30 && $integer <= 0x39 || $integer === 0x2D || $integer === 0x2E || $integer === 0x5F || $integer === 0x7E)
-		{
-			return chr($integer);
-		}
-		else
-		{
-			return strtoupper($match[0]);
-		}
-	}
-
-	/**
-	 * Remove bad UTF-8 bytes
-	 *
-	 * PCRE Pattern to locate bad bytes in a UTF-8 string comes from W3C
-	 * FAQ: Multilingual Forms (modified to include full ASCII range)
-	 *
-	 * @author Geoffrey Sneddon
-	 * @see http://www.w3.org/International/questions/qa-forms-utf-8
-	 * @param string $str String to remove bad UTF-8 bytes from
-	 * @return string UTF-8 string
-	 */
-	function utf8_bad_replace($str)
-	{
-		if (function_exists('iconv') && ($return = @iconv('UTF-8', 'UTF-8//IGNORE', $str)))
-		{
-			return $return;
-		}
-		elseif (function_exists('mb_convert_encoding') && ($return = @mb_convert_encoding($str, 'UTF-8', 'UTF-8')))
-		{
-			return $return;
-		}
-		elseif (preg_match_all('/(?:[\x00-\x7F]|[\xC2-\xDF][\x80-\xBF]|\xE0[\xA0-\xBF][\x80-\xBF]|[\xE1-\xEC\xEE\xEF][\x80-\xBF]{2}|\xED[\x80-\x9F][\x80-\xBF]|\xF0[\x90-\xBF][\x80-\xBF]{2}|[\xF1-\xF3][\x80-\xBF]{3}|\xF4[\x80-\x8F][\x80-\xBF]{2})+/', $str, $matches))
-		{
-			return implode("\xEF\xBF\xBD", $matches[0]);
-		}
-		elseif ($str !== '')
-		{
-			return "\xEF\xBF\xBD";
-		}
-		else
-		{
-			return '';
-		}
-	}
-
-	/**
-	 * Converts a Windows-1252 encoded string to a UTF-8 encoded string
-	 *
-	 * @static
-	 * @access public
-	 * @param string $string Windows-1252 encoded string
-	 * @return string UTF-8 encoded string
-	 */
-	function windows_1252_to_utf8($string)
-	{
-		static $convert_table = array("\x80" => "\xE2\x82\xAC", "\x81" => "\xEF\xBF\xBD", "\x82" => "\xE2\x80\x9A", "\x83" => "\xC6\x92", "\x84" => "\xE2\x80\x9E", "\x85" => "\xE2\x80\xA6", "\x86" => "\xE2\x80\xA0", "\x87" => "\xE2\x80\xA1", "\x88" => "\xCB\x86", "\x89" => "\xE2\x80\xB0", "\x8A" => "\xC5\xA0", "\x8B" => "\xE2\x80\xB9", "\x8C" => "\xC5\x92", "\x8D" => "\xEF\xBF\xBD", "\x8E" => "\xC5\xBD", "\x8F" => "\xEF\xBF\xBD", "\x90" => "\xEF\xBF\xBD", "\x91" => "\xE2\x80\x98", "\x92" => "\xE2\x80\x99", "\x93" => "\xE2\x80\x9C", "\x94" => "\xE2\x80\x9D", "\x95" => "\xE2\x80\xA2", "\x96" => "\xE2\x80\x93", "\x97" => "\xE2\x80\x94", "\x98" => "\xCB\x9C", "\x99" => "\xE2\x84\xA2", "\x9A" => "\xC5\xA1", "\x9B" => "\xE2\x80\xBA", "\x9C" => "\xC5\x93", "\x9D" => "\xEF\xBF\xBD", "\x9E" => "\xC5\xBE", "\x9F" => "\xC5\xB8", "\xA0" => "\xC2\xA0", "\xA1" => "\xC2\xA1", "\xA2" => "\xC2\xA2", "\xA3" => "\xC2\xA3", "\xA4" => "\xC2\xA4", "\xA5" => "\xC2\xA5", "\xA6" => "\xC2\xA6", "\xA7" => "\xC2\xA7", "\xA8" => "\xC2\xA8", "\xA9" => "\xC2\xA9", "\xAA" => "\xC2\xAA", "\xAB" => "\xC2\xAB", "\xAC" => "\xC2\xAC", "\xAD" => "\xC2\xAD", "\xAE" => "\xC2\xAE", "\xAF" => "\xC2\xAF", "\xB0" => "\xC2\xB0", "\xB1" => "\xC2\xB1", "\xB2" => "\xC2\xB2", "\xB3" => "\xC2\xB3", "\xB4" => "\xC2\xB4", "\xB5" => "\xC2\xB5", "\xB6" => "\xC2\xB6", "\xB7" => "\xC2\xB7", "\xB8" => "\xC2\xB8", "\xB9" => "\xC2\xB9", "\xBA" => "\xC2\xBA", "\xBB" => "\xC2\xBB", "\xBC" => "\xC2\xBC", "\xBD" => "\xC2\xBD", "\xBE" => "\xC2\xBE", "\xBF" => "\xC2\xBF", "\xC0" => "\xC3\x80", "\xC1" => "\xC3\x81", "\xC2" => "\xC3\x82", "\xC3" => "\xC3\x83", "\xC4" => "\xC3\x84", "\xC5" => "\xC3\x85", "\xC6" => "\xC3\x86", "\xC7" => "\xC3\x87", "\xC8" => "\xC3\x88", "\xC9" => "\xC3\x89", "\xCA" => "\xC3\x8A", "\xCB" => "\xC3\x8B", "\xCC" => "\xC3\x8C", "\xCD" => "\xC3\x8D", "\xCE" => "\xC3\x8E", "\xCF" => "\xC3\x8F", "\xD0" => "\xC3\x90", "\xD1" => "\xC3\x91", "\xD2" => "\xC3\x92", "\xD3" => "\xC3\x93", "\xD4" => "\xC3\x94", "\xD5" => "\xC3\x95", "\xD6" => "\xC3\x96", "\xD7" => "\xC3\x97", "\xD8" => "\xC3\x98", "\xD9" => "\xC3\x99", "\xDA" => "\xC3\x9A", "\xDB" => "\xC3\x9B", "\xDC" => "\xC3\x9C", "\xDD" => "\xC3\x9D", "\xDE" => "\xC3\x9E", "\xDF" => "\xC3\x9F", "\xE0" => "\xC3\xA0", "\xE1" => "\xC3\xA1", "\xE2" => "\xC3\xA2", "\xE3" => "\xC3\xA3", "\xE4" => "\xC3\xA4", "\xE5" => "\xC3\xA5", "\xE6" => "\xC3\xA6", "\xE7" => "\xC3\xA7", "\xE8" => "\xC3\xA8", "\xE9" => "\xC3\xA9", "\xEA" => "\xC3\xAA", "\xEB" => "\xC3\xAB", "\xEC" => "\xC3\xAC", "\xED" => "\xC3\xAD", "\xEE" => "\xC3\xAE", "\xEF" => "\xC3\xAF", "\xF0" => "\xC3\xB0", "\xF1" => "\xC3\xB1", "\xF2" => "\xC3\xB2", "\xF3" => "\xC3\xB3", "\xF4" => "\xC3\xB4", "\xF5" => "\xC3\xB5", "\xF6" => "\xC3\xB6", "\xF7" => "\xC3\xB7", "\xF8" => "\xC3\xB8", "\xF9" => "\xC3\xB9", "\xFA" => "\xC3\xBA", "\xFB" => "\xC3\xBB", "\xFC" => "\xC3\xBC", "\xFD" => "\xC3\xBD", "\xFE" => "\xC3\xBE", "\xFF" => "\xC3\xBF");
-
-		return strtr($string, $convert_table);
-	}
-
-	function change_encoding($data, $input, $output)
-	{
-		$input = SimplePie_Misc::encoding($input);
-		$output = SimplePie_Misc::encoding($output);
-
-		// We fail to fail on non US-ASCII bytes
-		if ($input === 'US-ASCII')
-		{
-			static $non_ascii_octects = '';
-			if (!$non_ascii_octects)
-			{
-				for ($i = 0x80; $i <= 0xFF; $i++)
-				{
-					$non_ascii_octects .= chr($i);
-				}
-			}
-			$data = substr($data, 0, strcspn($data, $non_ascii_octects));
-		}
-
-		// This is first, as behaviour of this is completely predictable
-		if ($input === 'windows-1252' && $output === 'UTF-8')
-		{
-			return SimplePie_Misc::windows_1252_to_utf8($data);
-		}
-		// This is second, as behaviour of this varies only with PHP version (the middle part of this expression checks the encoding is supported).
-		elseif (function_exists('mb_convert_encoding') && @mb_convert_encoding("\x80", 'UTF-16BE', $input) !== "\x00\x80" && in_array($input, mb_list_encodings()) && ($return = @mb_convert_encoding($data, $output, $input)))
-		{
-			return $return;
-		}
-		// This is last, as behaviour of this varies with OS userland and PHP version
-		elseif (function_exists('iconv') && ($return = @iconv($input, $output, $data)))
-		{
-			return $return;
-		}
-		// If we can't do anything, just fail
-		else
-		{
-			return false;
-		}
-	}
-
-	/**
-	 * Normalize an encoding name
-	 *
-	 * This is automatically generated by create.php
-	 *
-	 * To generate it, run `php create.php` on the command line, and copy the
-	 * output to replace this function.
-	 *
-	 * @param string $charset Character set to standardise
-	 * @return string Standardised name
-	 */
-	function encoding($charset)
-	{
-		// Normalization from UTS #22
-		switch (strtolower(preg_replace('/(?:[^a-zA-Z0-9]+|([^0-9])0+)/', '\1', $charset)))
-		{
-			case 'adobestandardencoding':
-			case 'csadobestandardencoding':
-				return 'Adobe-Standard-Encoding';
-
-			case 'adobesymbolencoding':
-			case 'cshppsmath':
-				return 'Adobe-Symbol-Encoding';
-
-			case 'ami1251':
-			case 'amiga1251':
-				return 'Amiga-1251';
-
-			case 'ansix31101983':
-			case 'csat5001983':
-			case 'csiso99naplps':
-			case 'isoir99':
-			case 'naplps':
-				return 'ANSI_X3.110-1983';
-
-			case 'arabic7':
-			case 'asmo449':
-			case 'csiso89asmo449':
-			case 'iso9036':
-			case 'isoir89':
-				return 'ASMO_449';
-
-			case 'big5':
-			case 'csbig5':
-				return 'Big5';
-
-			case 'big5hkscs':
-				return 'Big5-HKSCS';
-
-			case 'bocu1':
-			case 'csbocu1':
-				return 'BOCU-1';
-
-			case 'brf':
-			case 'csbrf':
-				return 'BRF';
-
-			case 'bs4730':
-			case 'csiso4unitedkingdom':
-			case 'gb':
-			case 'iso646gb':
-			case 'isoir4':
-			case 'uk':
-				return 'BS_4730';
-
-			case 'bsviewdata':
-			case 'csiso47bsviewdata':
-			case 'isoir47':
-				return 'BS_viewdata';
-
-			case 'cesu8':
-			case 'cscesu8':
-				return 'CESU-8';
-
-			case 'ca':
-			case 'csa71':
-			case 'csaz243419851':
-			case 'csiso121canadian1':
-			case 'iso646ca':
-			case 'isoir121':
-				return 'CSA_Z243.4-1985-1';
-
-			case 'csa72':
-			case 'csaz243419852':
-			case 'csiso122canadian2':
-			case 'iso646ca2':
-			case 'isoir122':
-				return 'CSA_Z243.4-1985-2';
-
-			case 'csaz24341985gr':
-			case 'csiso123csaz24341985gr':
-			case 'isoir123':
-				return 'CSA_Z243.4-1985-gr';
-
-			case 'csiso139csn369103':
-			case 'csn369103':
-			case 'isoir139':
-				return 'CSN_369103';
-
-			case 'csdecmcs':
-			case 'dec':
-			case 'decmcs':
-				return 'DEC-MCS';
-
-			case 'csiso21german':
-			case 'de':
-			case 'din66003':
-			case 'iso646de':
-			case 'isoir21':
-				return 'DIN_66003';
-
-			case 'csdkus':
-			case 'dkus':
-				return 'dk-us';
-
-			case 'csiso646danish':
-			case 'dk':
-			case 'ds2089':
-			case 'iso646dk':
-				return 'DS_2089';
-
-			case 'csibmebcdicatde':
-			case 'ebcdicatde':
-				return 'EBCDIC-AT-DE';
-
-			case 'csebcdicatdea':
-			case 'ebcdicatdea':
-				return 'EBCDIC-AT-DE-A';
-
-			case 'csebcdiccafr':
-			case 'ebcdiccafr':
-				return 'EBCDIC-CA-FR';
-
-			case 'csebcdicdkno':
-			case 'ebcdicdkno':
-				return 'EBCDIC-DK-NO';
-
-			case 'csebcdicdknoa':
-			case 'ebcdicdknoa':
-				return 'EBCDIC-DK-NO-A';
-
-			case 'csebcdices':
-			case 'ebcdices':
-				return 'EBCDIC-ES';
-
-			case 'csebcdicesa':
-			case 'ebcdicesa':
-				return 'EBCDIC-ES-A';
-
-			case 'csebcdicess':
-			case 'ebcdicess':
-				return 'EBCDIC-ES-S';
-
-			case 'csebcdicfise':
-			case 'ebcdicfise':
-				return 'EBCDIC-FI-SE';
-
-			case 'csebcdicfisea':
-			case 'ebcdicfisea':
-				return 'EBCDIC-FI-SE-A';
-
-			case 'csebcdicfr':
-			case 'ebcdicfr':
-				return 'EBCDIC-FR';
-
-			case 'csebcdicit':
-			case 'ebcdicit':
-				return 'EBCDIC-IT';
-
-			case 'csebcdicpt':
-			case 'ebcdicpt':
-				return 'EBCDIC-PT';
-
-			case 'csebcdicuk':
-			case 'ebcdicuk':
-				return 'EBCDIC-UK';
-
-			case 'csebcdicus':
-			case 'ebcdicus':
-				return 'EBCDIC-US';
-
-			case 'csiso111ecmacyrillic':
-			case 'ecmacyrillic':
-			case 'isoir111':
-			case 'koi8e':
-				return 'ECMA-cyrillic';
-
-			case 'csiso17spanish':
-			case 'es':
-			case 'iso646es':
-			case 'isoir17':
-				return 'ES';
-
-			case 'csiso85spanish2':
-			case 'es2':
-			case 'iso646es2':
-			case 'isoir85':
-				return 'ES2';
-
-			case 'cseucpkdfmtjapanese':
-			case 'eucjp':
-			case 'extendedunixcodepackedformatforjapanese':
-				return 'EUC-JP';
-
-			case 'cseucfixwidjapanese':
-			case 'extendedunixcodefixedwidthforjapanese':
-				return 'Extended_UNIX_Code_Fixed_Width_for_Japanese';
-
-			case 'gb18030':
-				return 'GB18030';
-
-			case 'chinese':
-			case 'cp936':
-			case 'csgb2312':
-			case 'csiso58gb231280':
-			case 'gb2312':
-			case 'gb231280':
-			case 'gbk':
-			case 'isoir58':
-			case 'ms936':
-			case 'windows936':
-				return 'GBK';
-
-			case 'cn':
-			case 'csiso57gb1988':
-			case 'gb198880':
-			case 'iso646cn':
-			case 'isoir57':
-				return 'GB_1988-80';
-
-			case 'csiso153gost1976874':
-			case 'gost1976874':
-			case 'isoir153':
-			case 'stsev35888':
-				return 'GOST_19768-74';
-
-			case 'csiso150':
-			case 'csiso150greekccitt':
-			case 'greekccitt':
-			case 'isoir150':
-				return 'greek-ccitt';
-
-			case 'csiso88greek7':
-			case 'greek7':
-			case 'isoir88':
-				return 'greek7';
-
-			case 'csiso18greek7old':
-			case 'greek7old':
-			case 'isoir18':
-				return 'greek7-old';
-
-			case 'cshpdesktop':
-			case 'hpdesktop':
-				return 'HP-DeskTop';
-
-			case 'cshplegal':
-			case 'hplegal':
-				return 'HP-Legal';
-
-			case 'cshpmath8':
-			case 'hpmath8':
-				return 'HP-Math8';
-
-			case 'cshppifont':
-			case 'hppifont':
-				return 'HP-Pi-font';
-
-			case 'cshproman8':
-			case 'hproman8':
-			case 'r8':
-			case 'roman8':
-				return 'hp-roman8';
-
-			case 'hzgb2312':
-				return 'HZ-GB-2312';
-
-			case 'csibmsymbols':
-			case 'ibmsymbols':
-				return 'IBM-Symbols';
-
-			case 'csibmthai':
-			case 'ibmthai':
-				return 'IBM-Thai';
-
-			case 'cp37':
-			case 'csibm37':
-			case 'ebcdiccpca':
-			case 'ebcdiccpnl':
-			case 'ebcdiccpus':
-			case 'ebcdiccpwt':
-			case 'ibm37':
-				return 'IBM037';
-
-			case 'cp38':
-			case 'csibm38':
-			case 'ebcdicint':
-			case 'ibm38':
-				return 'IBM038';
-
-			case 'cp273':
-			case 'csibm273':
-			case 'ibm273':
-				return 'IBM273';
-
-			case 'cp274':
-			case 'csibm274':
-			case 'ebcdicbe':
-			case 'ibm274':
-				return 'IBM274';
-
-			case 'cp275':
-			case 'csibm275':
-			case 'ebcdicbr':
-			case 'ibm275':
-				return 'IBM275';
-
-			case 'csibm277':
-			case 'ebcdiccpdk':
-			case 'ebcdiccpno':
-			case 'ibm277':
-				return 'IBM277';
-
-			case 'cp278':
-			case 'csibm278':
-			case 'ebcdiccpfi':
-			case 'ebcdiccpse':
-			case 'ibm278':
-				return 'IBM278';
-
-			case 'cp280':
-			case 'csibm280':
-			case 'ebcdiccpit':
-			case 'ibm280':
-				return 'IBM280';
-
-			case 'cp281':
-			case 'csibm281':
-			case 'ebcdicjpe':
-			case 'ibm281':
-				return 'IBM281';
-
-			case 'cp284':
-			case 'csibm284':
-			case 'ebcdiccpes':
-			case 'ibm284':
-				return 'IBM284';
-
-			case 'cp285':
-			case 'csibm285':
-			case 'ebcdiccpgb':
-			case 'ibm285':
-				return 'IBM285';
-
-			case 'cp290':
-			case 'csibm290':
-			case 'ebcdicjpkana':
-			case 'ibm290':
-				return 'IBM290';
-
-			case 'cp297':
-			case 'csibm297':
-			case 'ebcdiccpfr':
-			case 'ibm297':
-				return 'IBM297';
-
-			case 'cp420':
-			case 'csibm420':
-			case 'ebcdiccpar1':
-			case 'ibm420':
-				return 'IBM420';
-
-			case 'cp423':
-			case 'csibm423':
-			case 'ebcdiccpgr':
-			case 'ibm423':
-				return 'IBM423';
-
-			case 'cp424':
-			case 'csibm424':
-			case 'ebcdiccphe':
-			case 'ibm424':
-				return 'IBM424';
-
-			case '437':
-			case 'cp437':
-			case 'cspc8codepage437':
-			case 'ibm437':
-				return 'IBM437';
-
-			case 'cp500':
-			case 'csibm500':
-			case 'ebcdiccpbe':
-			case 'ebcdiccpch':
-			case 'ibm500':
-				return 'IBM500';
-
-			case 'cp775':
-			case 'cspc775baltic':
-			case 'ibm775':
-				return 'IBM775';
-
-			case '850':
-			case 'cp850':
-			case 'cspc850multilingual':
-			case 'ibm850':
-				return 'IBM850';
-
-			case '851':
-			case 'cp851':
-			case 'csibm851':
-			case 'ibm851':
-				return 'IBM851';
-
-			case '852':
-			case 'cp852':
-			case 'cspcp852':
-			case 'ibm852':
-				return 'IBM852';
-
-			case '855':
-			case 'cp855':
-			case 'csibm855':
-			case 'ibm855':
-				return 'IBM855';
-
-			case '857':
-			case 'cp857':
-			case 'csibm857':
-			case 'ibm857':
-				return 'IBM857';
-
-			case 'ccsid858':
-			case 'cp858':
-			case 'ibm858':
-			case 'pcmultilingual850euro':
-				return 'IBM00858';
-
-			case '860':
-			case 'cp860':
-			case 'csibm860':
-			case 'ibm860':
-				return 'IBM860';
-
-			case '861':
-			case 'cp861':
-			case 'cpis':
-			case 'csibm861':
-			case 'ibm861':
-				return 'IBM861';
-
-			case '862':
-			case 'cp862':
-			case 'cspc862latinhebrew':
-			case 'ibm862':
-				return 'IBM862';
-
-			case '863':
-			case 'cp863':
-			case 'csibm863':
-			case 'ibm863':
-				return 'IBM863';
-
-			case 'cp864':
-			case 'csibm864':
-			case 'ibm864':
-				return 'IBM864';
-
-			case '865':
-			case 'cp865':
-			case 'csibm865':
-			case 'ibm865':
-				return 'IBM865';
-
-			case '866':
-			case 'cp866':
-			case 'csibm866':
-			case 'ibm866':
-				return 'IBM866';
-
-			case 'cp868':
-			case 'cpar':
-			case 'csibm868':
-			case 'ibm868':
-				return 'IBM868';
-
-			case '869':
-			case 'cp869':
-			case 'cpgr':
-			case 'csibm869':
-			case 'ibm869':
-				return 'IBM869';
-
-			case 'cp870':
-			case 'csibm870':
-			case 'ebcdiccproece':
-			case 'ebcdiccpyu':
-			case 'ibm870':
-				return 'IBM870';
-
-			case 'cp871':
-			case 'csibm871':
-			case 'ebcdiccpis':
-			case 'ibm871':
-				return 'IBM871';
-
-			case 'cp880':
-			case 'csibm880':
-			case 'ebcdiccyrillic':
-			case 'ibm880':
-				return 'IBM880';
-
-			case 'cp891':
-			case 'csibm891':
-			case 'ibm891':
-				return 'IBM891';
-
-			case 'cp903':
-			case 'csibm903':
-			case 'ibm903':
-				return 'IBM903';
-
-			case '904':
-			case 'cp904':
-			case 'csibbm904':
-			case 'ibm904':
-				return 'IBM904';
-
-			case 'cp905':
-			case 'csibm905':
-			case 'ebcdiccptr':
-			case 'ibm905':
-				return 'IBM905';
-
-			case 'cp918':
-			case 'csibm918':
-			case 'ebcdiccpar2':
-			case 'ibm918':
-				return 'IBM918';
-
-			case 'ccsid924':
-			case 'cp924':
-			case 'ebcdiclatin9euro':
-			case 'ibm924':
-				return 'IBM00924';
-
-			case 'cp1026':
-			case 'csibm1026':
-			case 'ibm1026':
-				return 'IBM1026';
-
-			case 'ibm1047':
-				return 'IBM1047';
-
-			case 'ccsid1140':
-			case 'cp1140':
-			case 'ebcdicus37euro':
-			case 'ibm1140':
-				return 'IBM01140';
-
-			case 'ccsid1141':
-			case 'cp1141':
-			case 'ebcdicde273euro':
-			case 'ibm1141':
-				return 'IBM01141';
-
-			case 'ccsid1142':
-			case 'cp1142':
-			case 'ebcdicdk277euro':
-			case 'ebcdicno277euro':
-			case 'ibm1142':
-				return 'IBM01142';
-
-			case 'ccsid1143':
-			case 'cp1143':
-			case 'ebcdicfi278euro':
-			case 'ebcdicse278euro':
-			case 'ibm1143':
-				return 'IBM01143';
-
-			case 'ccsid1144':
-			case 'cp1144':
-			case 'ebcdicit280euro':
-			case 'ibm1144':
-				return 'IBM01144';
-
-			case 'ccsid1145':
-			case 'cp1145':
-			case 'ebcdices284euro':
-			case 'ibm1145':
-				return 'IBM01145';
-
-			case 'ccsid1146':
-			case 'cp1146':
-			case 'ebcdicgb285euro':
-			case 'ibm1146':
-				return 'IBM01146';
-
-			case 'ccsid1147':
-			case 'cp1147':
-			case 'ebcdicfr297euro':
-			case 'ibm1147':
-				return 'IBM01147';
-
-			case 'ccsid1148':
-			case 'cp1148':
-			case 'ebcdicinternational500euro':
-			case 'ibm1148':
-				return 'IBM01148';
-
-			case 'ccsid1149':
-			case 'cp1149':
-			case 'ebcdicis871euro':
-			case 'ibm1149':
-				return 'IBM01149';
-
-			case 'csiso143iecp271':
-			case 'iecp271':
-			case 'isoir143':
-				return 'IEC_P27-1';
-
-			case 'csiso49inis':
-			case 'inis':
-			case 'isoir49':
-				return 'INIS';
-
-			case 'csiso50inis8':
-			case 'inis8':
-			case 'isoir50':
-				return 'INIS-8';
-
-			case 'csiso51iniscyrillic':
-			case 'iniscyrillic':
-			case 'isoir51':
-				return 'INIS-cyrillic';
-
-			case 'csinvariant':
-			case 'invariant':
-				return 'INVARIANT';
-
-			case 'iso2022cn':
-				return 'ISO-2022-CN';
-
-			case 'iso2022cnext':
-				return 'ISO-2022-CN-EXT';
-
-			case 'csiso2022jp':
-			case 'iso2022jp':
-				return 'ISO-2022-JP';
-
-			case 'csiso2022jp2':
-			case 'iso2022jp2':
-				return 'ISO-2022-JP-2';
-
-			case 'csiso2022kr':
-			case 'iso2022kr':
-				return 'ISO-2022-KR';
-
-			case 'cswindows30latin1':
-			case 'iso88591windows30latin1':
-				return 'ISO-8859-1-Windows-3.0-Latin-1';
-
-			case 'cswindows31latin1':
-			case 'iso88591windows31latin1':
-				return 'ISO-8859-1-Windows-3.1-Latin-1';
-
-			case 'csisolatin2':
-			case 'iso88592':
-			case 'iso885921987':
-			case 'isoir101':
-			case 'l2':
-			case 'latin2':
-				return 'ISO-8859-2';
-
-			case 'cswindows31latin2':
-			case 'iso88592windowslatin2':
-				return 'ISO-8859-2-Windows-Latin-2';
-
-			case 'csisolatin3':
-			case 'iso88593':
-			case 'iso885931988':
-			case 'isoir109':
-			case 'l3':
-			case 'latin3':
-				return 'ISO-8859-3';
-
-			case 'csisolatin4':
-			case 'iso88594':
-			case 'iso885941988':
-			case 'isoir110':
-			case 'l4':
-			case 'latin4':
-				return 'ISO-8859-4';
-
-			case 'csisolatincyrillic':
-			case 'cyrillic':
-			case 'iso88595':
-			case 'iso885951988':
-			case 'isoir144':
-				return 'ISO-8859-5';
-
-			case 'arabic':
-			case 'asmo708':
-			case 'csisolatinarabic':
-			case 'ecma114':
-			case 'iso88596':
-			case 'iso885961987':
-			case 'isoir127':
-				return 'ISO-8859-6';
-
-			case 'csiso88596e':
-			case 'iso88596e':
-				return 'ISO-8859-6-E';
-
-			case 'csiso88596i':
-			case 'iso88596i':
-				return 'ISO-8859-6-I';
-
-			case 'csisolatingreek':
-			case 'ecma118':
-			case 'elot928':
-			case 'greek':
-			case 'greek8':
-			case 'iso88597':
-			case 'iso885971987':
-			case 'isoir126':
-				return 'ISO-8859-7';
-
-			case 'csisolatinhebrew':
-			case 'hebrew':
-			case 'iso88598':
-			case 'iso885981988':
-			case 'isoir138':
-				return 'ISO-8859-8';
-
-			case 'csiso88598e':
-			case 'iso88598e':
-				return 'ISO-8859-8-E';
-
-			case 'csiso88598i':
-			case 'iso88598i':
-				return 'ISO-8859-8-I';
-
-			case 'cswindows31latin5':
-			case 'iso88599windowslatin5':
-				return 'ISO-8859-9-Windows-Latin-5';
-
-			case 'csisolatin6':
-			case 'iso885910':
-			case 'iso8859101992':
-			case 'isoir157':
-			case 'l6':
-			case 'latin6':
-				return 'ISO-8859-10';
-
-			case 'iso885913':
-				return 'ISO-8859-13';
-
-			case 'iso885914':
-			case 'iso8859141998':
-			case 'isoceltic':
-			case 'isoir199':
-			case 'l8':
-			case 'latin8':
-				return 'ISO-8859-14';
-
-			case 'iso885915':
-			case 'latin9':
-				return 'ISO-8859-15';
-
-			case 'iso885916':
-			case 'iso8859162001':
-			case 'isoir226':
-			case 'l10':
-			case 'latin10':
-				return 'ISO-8859-16';
-
-			case 'iso10646j1':
-				return 'ISO-10646-J-1';
-
-			case 'csunicode':
-			case 'iso10646ucs2':
-				return 'ISO-10646-UCS-2';
-
-			case 'csucs4':
-			case 'iso10646ucs4':
-				return 'ISO-10646-UCS-4';
-
-			case 'csunicodeascii':
-			case 'iso10646ucsbasic':
-				return 'ISO-10646-UCS-Basic';
-
-			case 'csunicodelatin1':
-			case 'iso10646':
-			case 'iso10646unicodelatin1':
-				return 'ISO-10646-Unicode-Latin1';
-
-			case 'csiso10646utf1':
-			case 'iso10646utf1':
-				return 'ISO-10646-UTF-1';
-
-			case 'csiso115481':
-			case 'iso115481':
-			case 'isotr115481':
-				return 'ISO-11548-1';
-
-			case 'csiso90':
-			case 'isoir90':
-				return 'iso-ir-90';
-
-			case 'csunicodeibm1261':
-			case 'isounicodeibm1261':
-				return 'ISO-Unicode-IBM-1261';
-
-			case 'csunicodeibm1264':
-			case 'isounicodeibm1264':
-				return 'ISO-Unicode-IBM-1264';
-
-			case 'csunicodeibm1265':
-			case 'isounicodeibm1265':
-				return 'ISO-Unicode-IBM-1265';
-
-			case 'csunicodeibm1268':
-			case 'isounicodeibm1268':
-				return 'ISO-Unicode-IBM-1268';
-
-			case 'csunicodeibm1276':
-			case 'isounicodeibm1276':
-				return 'ISO-Unicode-IBM-1276';
-
-			case 'csiso646basic1983':
-			case 'iso646basic1983':
-			case 'ref':
-				return 'ISO_646.basic:1983';
-
-			case 'csiso2intlrefversion':
-			case 'irv':
-			case 'iso646irv1983':
-			case 'isoir2':
-				return 'ISO_646.irv:1983';
-
-			case 'csiso2033':
-			case 'e13b':
-			case 'iso20331983':
-			case 'isoir98':
-				return 'ISO_2033-1983';
-
-			case 'csiso5427cyrillic':
-			case 'iso5427':
-			case 'isoir37':
-				return 'ISO_5427';
-
-			case 'iso5427cyrillic1981':
-			case 'iso54271981':
-			case 'isoir54':
-				return 'ISO_5427:1981';
-
-			case 'csiso5428greek':
-			case 'iso54281980':
-			case 'isoir55':
-				return 'ISO_5428:1980';
-
-			case 'csiso6937add':
-			case 'iso6937225':
-			case 'isoir152':
-				return 'ISO_6937-2-25';
-
-			case 'csisotextcomm':
-			case 'iso69372add':
-			case 'isoir142':
-				return 'ISO_6937-2-add';
-
-			case 'csiso8859supp':
-			case 'iso8859supp':
-			case 'isoir154':
-			case 'latin125':
-				return 'ISO_8859-supp';
-
-			case 'csiso10367box':
-			case 'iso10367box':
-			case 'isoir155':
-				return 'ISO_10367-box';
-
-			case 'csiso15italian':
-			case 'iso646it':
-			case 'isoir15':
-			case 'it':
-				return 'IT';
-
-			case 'csiso13jisc6220jp':
-			case 'isoir13':
-			case 'jisc62201969':
-			case 'jisc62201969jp':
-			case 'katakana':
-			case 'x2017':
-				return 'JIS_C6220-1969-jp';
-
-			case 'csiso14jisc6220ro':
-			case 'iso646jp':
-			case 'isoir14':
-			case 'jisc62201969ro':
-			case 'jp':
-				return 'JIS_C6220-1969-ro';
-
-			case 'csiso42jisc62261978':
-			case 'isoir42':
-			case 'jisc62261978':
-				return 'JIS_C6226-1978';
-
-			case 'csiso87jisx208':
-			case 'isoir87':
-			case 'jisc62261983':
-			case 'jisx2081983':
-			case 'x208':
-				return 'JIS_C6226-1983';
-
-			case 'csiso91jisc62291984a':
-			case 'isoir91':
-			case 'jisc62291984a':
-			case 'jpocra':
-				return 'JIS_C6229-1984-a';
-
-			case 'csiso92jisc62991984b':
-			case 'iso646jpocrb':
-			case 'isoir92':
-			case 'jisc62291984b':
-			case 'jpocrb':
-				return 'JIS_C6229-1984-b';
-
-			case 'csiso93jis62291984badd':
-			case 'isoir93':
-			case 'jisc62291984badd':
-			case 'jpocrbadd':
-				return 'JIS_C6229-1984-b-add';
-
-			case 'csiso94jis62291984hand':
-			case 'isoir94':
-			case 'jisc62291984hand':
-			case 'jpocrhand':
-				return 'JIS_C6229-1984-hand';
-
-			case 'csiso95jis62291984handadd':
-			case 'isoir95':
-			case 'jisc62291984handadd':
-			case 'jpocrhandadd':
-				return 'JIS_C6229-1984-hand-add';
-
-			case 'csiso96jisc62291984kana':
-			case 'isoir96':
-			case 'jisc62291984kana':
-				return 'JIS_C6229-1984-kana';
-
-			case 'csjisencoding':
-			case 'jisencoding':
-				return 'JIS_Encoding';
-
-			case 'cshalfwidthkatakana':
-			case 'jisx201':
-			case 'x201':
-				return 'JIS_X0201';
-
-			case 'csiso159jisx2121990':
-			case 'isoir159':
-			case 'jisx2121990':
-			case 'x212':
-				return 'JIS_X0212-1990';
-
-			case 'csiso141jusib1002':
-			case 'iso646yu':
-			case 'isoir141':
-			case 'js':
-			case 'jusib1002':
-			case 'yu':
-				return 'JUS_I.B1.002';
-
-			case 'csiso147macedonian':
-			case 'isoir147':
-			case 'jusib1003mac':
-			case 'macedonian':
-				return 'JUS_I.B1.003-mac';
-
-			case 'csiso146serbian':
-			case 'isoir146':
-			case 'jusib1003serb':
-			case 'serbian':
-				return 'JUS_I.B1.003-serb';
-
-			case 'koi7switched':
-				return 'KOI7-switched';
-
-			case 'cskoi8r':
-			case 'koi8r':
-				return 'KOI8-R';
-
-			case 'koi8u':
-				return 'KOI8-U';
-
-			case 'csksc5636':
-			case 'iso646kr':
-			case 'ksc5636':
-				return 'KSC5636';
-
-			case 'cskz1048':
-			case 'kz1048':
-			case 'rk1048':
-			case 'strk10482002':
-				return 'KZ-1048';
-
-			case 'csiso19latingreek':
-			case 'isoir19':
-			case 'latingreek':
-				return 'latin-greek';
-
-			case 'csiso27latingreek1':
-			case 'isoir27':
-			case 'latingreek1':
-				return 'Latin-greek-1';
-
-			case 'csiso158lap':
-			case 'isoir158':
-			case 'lap':
-			case 'latinlap':
-				return 'latin-lap';
-
-			case 'csmacintosh':
-			case 'mac':
-			case 'macintosh':
-				return 'macintosh';
-
-			case 'csmicrosoftpublishing':
-			case 'microsoftpublishing':
-				return 'Microsoft-Publishing';
-
-			case 'csmnem':
-			case 'mnem':
-				return 'MNEM';
-
-			case 'csmnemonic':
-			case 'mnemonic':
-				return 'MNEMONIC';
-
-			case 'csiso86hungarian':
-			case 'hu':
-			case 'iso646hu':
-			case 'isoir86':
-			case 'msz77953':
-				return 'MSZ_7795.3';
-
-			case 'csnatsdano':
-			case 'isoir91':
-			case 'natsdano':
-				return 'NATS-DANO';
-
-			case 'csnatsdanoadd':
-			case 'isoir92':
-			case 'natsdanoadd':
-				return 'NATS-DANO-ADD';
-
-			case 'csnatssefi':
-			case 'isoir81':
-			case 'natssefi':
-				return 'NATS-SEFI';
-
-			case 'csnatssefiadd':
-			case 'isoir82':
-			case 'natssefiadd':
-				return 'NATS-SEFI-ADD';
-
-			case 'csiso151cuba':
-			case 'cuba':
-			case 'iso646cu':
-			case 'isoir151':
-			case 'ncnc1081':
-				return 'NC_NC00-10:81';
-
-			case 'csiso69french':
-			case 'fr':
-			case 'iso646fr':
-			case 'isoir69':
-			case 'nfz62010':
-				return 'NF_Z_62-010';
-
-			case 'csiso25french':
-			case 'iso646fr1':
-			case 'isoir25':
-			case 'nfz620101973':
-				return 'NF_Z_62-010_(1973)';
-
-			case 'csiso60danishnorwegian':
-			case 'csiso60norwegian1':
-			case 'iso646no':
-			case 'isoir60':
-			case 'no':
-			case 'ns45511':
-				return 'NS_4551-1';
-
-			case 'csiso61norwegian2':
-			case 'iso646no2':
-			case 'isoir61':
-			case 'no2':
-			case 'ns45512':
-				return 'NS_4551-2';
-
-			case 'osdebcdicdf3irv':
-				return 'OSD_EBCDIC_DF03_IRV';
-
-			case 'osdebcdicdf41':
-				return 'OSD_EBCDIC_DF04_1';
-
-			case 'osdebcdicdf415':
-				return 'OSD_EBCDIC_DF04_15';
-
-			case 'cspc8danishnorwegian':
-			case 'pc8danishnorwegian':
-				return 'PC8-Danish-Norwegian';
-
-			case 'cspc8turkish':
-			case 'pc8turkish':
-				return 'PC8-Turkish';
-
-			case 'csiso16portuguese':
-			case 'iso646pt':
-			case 'isoir16':
-			case 'pt':
-				return 'PT';
-
-			case 'csiso84portuguese2':
-			case 'iso646pt2':
-			case 'isoir84':
-			case 'pt2':
-				return 'PT2';
-
-			case 'cp154':
-			case 'csptcp154':
-			case 'cyrillicasian':
-			case 'pt154':
-			case 'ptcp154':
-				return 'PTCP154';
-
-			case 'scsu':
-				return 'SCSU';
-
-			case 'csiso10swedish':
-			case 'fi':
-			case 'iso646fi':
-			case 'iso646se':
-			case 'isoir10':
-			case 'se':
-			case 'sen850200b':
-				return 'SEN_850200_B';
-
-			case 'csiso11swedishfornames':
-			case 'iso646se2':
-			case 'isoir11':
-			case 'se2':
-			case 'sen850200c':
-				return 'SEN_850200_C';
-
-			case 'csiso102t617bit':
-			case 'isoir102':
-			case 't617bit':
-				return 'T.61-7bit';
-
-			case 'csiso103t618bit':
-			case 'isoir103':
-			case 't61':
-			case 't618bit':
-				return 'T.61-8bit';
-
-			case 'csiso128t101g2':
-			case 'isoir128':
-			case 't101g2':
-				return 'T.101-G2';
-
-			case 'cstscii':
-			case 'tscii':
-				return 'TSCII';
-
-			case 'csunicode11':
-			case 'unicode11':
-				return 'UNICODE-1-1';
-
-			case 'csunicode11utf7':
-			case 'unicode11utf7':
-				return 'UNICODE-1-1-UTF-7';
-
-			case 'csunknown8bit':
-			case 'unknown8bit':
-				return 'UNKNOWN-8BIT';
-
-			case 'ansix341968':
-			case 'ansix341986':
-			case 'ascii':
-			case 'cp367':
-			case 'csascii':
-			case 'ibm367':
-			case 'iso646irv1991':
-			case 'iso646us':
-			case 'isoir6':
-			case 'us':
-			case 'usascii':
-				return 'US-ASCII';
-
-			case 'csusdk':
-			case 'usdk':
-				return 'us-dk';
-
-			case 'utf7':
-				return 'UTF-7';
-
-			case 'utf8':
-				return 'UTF-8';
-
-			case 'utf16':
-				return 'UTF-16';
-
-			case 'utf16be':
-				return 'UTF-16BE';
-
-			case 'utf16le':
-				return 'UTF-16LE';
-
-			case 'utf32':
-				return 'UTF-32';
-
-			case 'utf32be':
-				return 'UTF-32BE';
-
-			case 'utf32le':
-				return 'UTF-32LE';
-
-			case 'csventurainternational':
-			case 'venturainternational':
-				return 'Ventura-International';
-
-			case 'csventuramath':
-			case 'venturamath':
-				return 'Ventura-Math';
-
-			case 'csventuraus':
-			case 'venturaus':
-				return 'Ventura-US';
-
-			case 'csiso70videotexsupp1':
-			case 'isoir70':
-			case 'videotexsuppl':
-				return 'videotex-suppl';
-
-			case 'csviqr':
-			case 'viqr':
-				return 'VIQR';
-
-			case 'csviscii':
-			case 'viscii':
-				return 'VISCII';
-
-			case 'csshiftjis':
-			case 'cswindows31j':
-			case 'mskanji':
-			case 'shiftjis':
-			case 'windows31j':
-				return 'Windows-31J';
-
-			case 'iso885911':
-			case 'tis620':
-				return 'windows-874';
-
-			case 'cseuckr':
-			case 'csksc56011987':
-			case 'euckr':
-			case 'isoir149':
-			case 'korean':
-			case 'ksc5601':
-			case 'ksc56011987':
-			case 'ksc56011989':
-			case 'windows949':
-				return 'windows-949';
-
-			case 'windows1250':
-				return 'windows-1250';
-
-			case 'windows1251':
-				return 'windows-1251';
-
-			case 'cp819':
-			case 'csisolatin1':
-			case 'ibm819':
-			case 'iso88591':
-			case 'iso885911987':
-			case 'isoir100':
-			case 'l1':
-			case 'latin1':
-			case 'windows1252':
-				return 'windows-1252';
-
-			case 'windows1253':
-				return 'windows-1253';
-
-			case 'csisolatin5':
-			case 'iso88599':
-			case 'iso885991989':
-			case 'isoir148':
-			case 'l5':
-			case 'latin5':
-			case 'windows1254':
-				return 'windows-1254';
-
-			case 'windows1255':
-				return 'windows-1255';
-
-			case 'windows1256':
-				return 'windows-1256';
-
-			case 'windows1257':
-				return 'windows-1257';
-
-			case 'windows1258':
-				return 'windows-1258';
-
-			default:
-				return $charset;
-		}
-	}
-
-	function get_curl_version()
-	{
-		if (is_array($curl = curl_version()))
-		{
-			$curl = $curl['version'];
-		}
-		elseif (substr($curl, 0, 5) === 'curl/')
-		{
-			$curl = substr($curl, 5, strcspn($curl, "\x09\x0A\x0B\x0C\x0D", 5));
-		}
-		elseif (substr($curl, 0, 8) === 'libcurl/')
-		{
-			$curl = substr($curl, 8, strcspn($curl, "\x09\x0A\x0B\x0C\x0D", 8));
-		}
-		else
-		{
-			$curl = 0;
-		}
-		return $curl;
-	}
-
-	function is_subclass_of($class1, $class2)
-	{
-		if (func_num_args() !== 2)
-		{
-			trigger_error('Wrong parameter count for SimplePie_Misc::is_subclass_of()', E_USER_WARNING);
-		}
-		elseif (version_compare(PHP_VERSION, '5.0.3', '>=') || is_object($class1))
-		{
-			return is_subclass_of($class1, $class2);
-		}
-		elseif (is_string($class1) && is_string($class2))
-		{
-			if (class_exists($class1))
-			{
-				if (class_exists($class2))
-				{
-					$class2 = strtolower($class2);
-					while ($class1 = strtolower(get_parent_class($class1)))
-					{
-						if ($class1 === $class2)
-						{
-							return true;
-						}
-					}
-				}
-			}
-			else
-			{
-				trigger_error('Unknown class passed as parameter', E_USER_WARNNG);
-			}
-		}
-		return false;
-	}
-
-	/**
-	 * Strip HTML comments
-	 *
-	 * @access public
-	 * @param string $data Data to strip comments from
-	 * @return string Comment stripped string
-	 */
-	function strip_comments($data)
-	{
-		$output = '';
-		while (($start = strpos($data, '<!--')) !== false)
-		{
-			$output .= substr($data, 0, $start);
-			if (($end = strpos($data, '-->', $start)) !== false)
-			{
-				$data = substr_replace($data, '', 0, $end + 3);
-			}
-			else
-			{
-				$data = '';
-			}
-		}
-		return $output . $data;
-	}
-
-	function parse_date($dt)
-	{
-		$parser = SimplePie_Parse_Date::get();
-		return $parser->parse($dt);
-	}
-
-	/**
-	 * Decode HTML entities
-	 *
-	 * @static
-	 * @access public
-	 * @param string $data Input data
-	 * @return string Output data
-	 */
-	function entities_decode($data)
-	{
-		$decoder =& new SimplePie_Decode_HTML_Entities($data);
-		return $decoder->parse();
-	}
-
-	/**
-	 * Remove RFC822 comments
-	 *
-	 * @access public
-	 * @param string $data Data to strip comments from
-	 * @return string Comment stripped string
-	 */
-	function uncomment_rfc822($string)
-	{
-		$string = (string) $string;
-		$position = 0;
-		$length = strlen($string);
-		$depth = 0;
-
-		$output = '';
-
-		while ($position < $length && ($pos = strpos($string, '(', $position)) !== false)
-		{
-			$output .= substr($string, $position, $pos - $position);
-			$position = $pos + 1;
-			if ($string[$pos - 1] !== '\\')
-			{
-				$depth++;
-				while ($depth && $position < $length)
-				{
-					$position += strcspn($string, '()', $position);
-					if ($string[$position - 1] === '\\')
-					{
-						$position++;
-						continue;
-					}
-					elseif (isset($string[$position]))
-					{
-						switch ($string[$position])
-						{
-							case '(':
-								$depth++;
-								break;
-
-							case ')':
-								$depth--;
-								break;
-						}
-						$position++;
-					}
-					else
-					{
-						break;
-					}
-				}
-			}
-			else
-			{
-				$output .= '(';
-			}
-		}
-		$output .= substr($string, $position);
-
-		return $output;
-	}
-
-	function parse_mime($mime)
-	{
-		if (($pos = strpos($mime, ';')) === false)
-		{
-			return trim($mime);
-		}
-		else
-		{
-			return trim(substr($mime, 0, $pos));
-		}
-	}
-
-	function htmlspecialchars_decode($string, $quote_style)
-	{
-		if (function_exists('htmlspecialchars_decode'))
-		{
-			return htmlspecialchars_decode($string, $quote_style);
-		}
-		else
-		{
-			return strtr($string, array_flip(get_html_translation_table(HTML_SPECIALCHARS, $quote_style)));
-		}
-	}
-
-	function atom_03_construct_type($attribs)
-	{
-		if (isset($attribs['']['mode']) && strtolower(trim($attribs['']['mode']) === 'base64'))
-		{
-			$mode = SIMPLEPIE_CONSTRUCT_BASE64;
-		}
-		else
-		{
-			$mode = SIMPLEPIE_CONSTRUCT_NONE;
-		}
-		if (isset($attribs['']['type']))
-		{
-			switch (strtolower(trim($attribs['']['type'])))
-			{
-				case 'text':
-				case 'text/plain':
-					return SIMPLEPIE_CONSTRUCT_TEXT | $mode;
-
-				case 'html':
-				case 'text/html':
-					return SIMPLEPIE_CONSTRUCT_HTML | $mode;
-
-				case 'xhtml':
-				case 'application/xhtml+xml':
-					return SIMPLEPIE_CONSTRUCT_XHTML | $mode;
-
-				default:
-					return SIMPLEPIE_CONSTRUCT_NONE | $mode;
-			}
-		}
-		else
-		{
-			return SIMPLEPIE_CONSTRUCT_TEXT | $mode;
-		}
-	}
-
-	function atom_10_construct_type($attribs)
-	{
-		if (isset($attribs['']['type']))
-		{
-			switch (strtolower(trim($attribs['']['type'])))
-			{
-				case 'text':
-					return SIMPLEPIE_CONSTRUCT_TEXT;
-
-				case 'html':
-					return SIMPLEPIE_CONSTRUCT_HTML;
-
-				case 'xhtml':
-					return SIMPLEPIE_CONSTRUCT_XHTML;
-
-				default:
-					return SIMPLEPIE_CONSTRUCT_NONE;
-			}
-		}
-		return SIMPLEPIE_CONSTRUCT_TEXT;
-	}
-
-	function atom_10_content_construct_type($attribs)
-	{
-		if (isset($attribs['']['type']))
-		{
-			$type = strtolower(trim($attribs['']['type']));
-			switch ($type)
-			{
-				case 'text':
-					return SIMPLEPIE_CONSTRUCT_TEXT;
-
-				case 'html':
-					return SIMPLEPIE_CONSTRUCT_HTML;
-
-				case 'xhtml':
-					return SIMPLEPIE_CONSTRUCT_XHTML;
-			}
-			if (in_array(substr($type, -4), array('+xml', '/xml')) || substr($type, 0, 5) === 'text/')
-			{
-				return SIMPLEPIE_CONSTRUCT_NONE;
-			}
-			else
-			{
-				return SIMPLEPIE_CONSTRUCT_BASE64;
-			}
-		}
-		else
-		{
-			return SIMPLEPIE_CONSTRUCT_TEXT;
-		}
-	}
-
-	function is_isegment_nz_nc($string)
-	{
-		return (bool) preg_match('/^([A-Za-z0-9\-._~\x{A0}-\x{D7FF}\x{F900}-\x{FDCF}\x{FDF0}-\x{FFEF}\x{10000}-\x{1FFFD}\x{20000}-\x{2FFFD}\x{30000}-\x{3FFFD}\x{40000}-\x{4FFFD}\x{50000}-\x{5FFFD}\x{60000}-\x{6FFFD}\x{70000}-\x{7FFFD}\x{80000}-\x{8FFFD}\x{90000}-\x{9FFFD}\x{A0000}-\x{AFFFD}\x{B0000}-\x{BFFFD}\x{C0000}-\x{CFFFD}\x{D0000}-\x{DFFFD}\x{E1000}-\x{EFFFD}!$&\'()*+,;=@]|(%[0-9ABCDEF]{2}))+$/u', $string);
-	}
-
-	function space_seperated_tokens($string)
-	{
-		$space_characters = "\x20\x09\x0A\x0B\x0C\x0D";
-		$string_length = strlen($string);
-
-		$position = strspn($string, $space_characters);
-		$tokens = array();
-
-		while ($position < $string_length)
-		{
-			$len = strcspn($string, $space_characters, $position);
-			$tokens[] = substr($string, $position, $len);
-			$position += $len;
-			$position += strspn($string, $space_characters, $position);
-		}
-
-		return $tokens;
-	}
-
-	function array_unique($array)
-	{
-		if (version_compare(PHP_VERSION, '5.2', '>='))
-		{
-			return array_unique($array);
-		}
-		else
-		{
-			$array = (array) $array;
-			$new_array = array();
-			$new_array_strings = array();
-			foreach ($array as $key => $value)
-			{
-				if (is_object($value))
-				{
-					if (method_exists($value, '__toString'))
-					{
-						$cmp = $value->__toString();
-					}
-					else
-					{
-						trigger_error('Object of class ' . get_class($value) . ' could not be converted to string', E_USER_ERROR);
-					}
-				}
-				elseif (is_array($value))
-				{
-					$cmp = (string) reset($value);
-				}
-				else
-				{
-					$cmp = (string) $value;
-				}
-				if (!in_array($cmp, $new_array_strings))
-				{
-					$new_array[$key] = $value;
-					$new_array_strings[] = $cmp;
-				}
-			}
-			return $new_array;
-		}
-	}
-
-	/**
-	 * Converts a unicode codepoint to a UTF-8 character
-	 *
-	 * @static
-	 * @access public
-	 * @param int $codepoint Unicode codepoint
-	 * @return string UTF-8 character
-	 */
-	function codepoint_to_utf8($codepoint)
-	{
-		$codepoint = (int) $codepoint;
-		if ($codepoint < 0)
-		{
-			return false;
-		}
-		else if ($codepoint <= 0x7f)
-		{
-			return chr($codepoint);
-		}
-		else if ($codepoint <= 0x7ff)
-		{
-			return chr(0xc0 | ($codepoint >> 6)) . chr(0x80 | ($codepoint & 0x3f));
-		}
-		else if ($codepoint <= 0xffff)
-		{
-			return chr(0xe0 | ($codepoint >> 12)) . chr(0x80 | (($codepoint >> 6) & 0x3f)) . chr(0x80 | ($codepoint & 0x3f));
-		}
-		else if ($codepoint <= 0x10ffff)
-		{
-			return chr(0xf0 | ($codepoint >> 18)) . chr(0x80 | (($codepoint >> 12) & 0x3f)) . chr(0x80 | (($codepoint >> 6) & 0x3f)) . chr(0x80 | ($codepoint & 0x3f));
-		}
-		else
-		{
-			// U+FFFD REPLACEMENT CHARACTER
-			return "\xEF\xBF\xBD";
-		}
-	}
-
-	/**
-	 * Re-implementation of PHP 5's stripos()
-	 *
-	 * Returns the numeric position of the first occurrence of needle in the
-	 * haystack string.
-	 *
-	 * @static
-	 * @access string
-	 * @param object $haystack
-	 * @param string $needle Note that the needle may be a string of one or more
-	 *     characters. If needle is not a string, it is converted to an integer
-	 *     and applied as the ordinal value of a character.
-	 * @param int $offset The optional offset parameter allows you to specify which
-	 *     character in haystack to start searching. The position returned is still
-	 *     relative to the beginning of haystack.
-	 * @return bool If needle is not found, stripos() will return boolean false.
-	 */
-	function stripos($haystack, $needle, $offset = 0)
-	{
-		if (function_exists('stripos'))
-		{
-			return stripos($haystack, $needle, $offset);
-		}
-		else
-		{
-			if (is_string($needle))
-			{
-				$needle = strtolower($needle);
-			}
-			elseif (is_int($needle) || is_bool($needle) || is_double($needle))
-			{
-				$needle = strtolower(chr($needle));
-			}
-			else
-			{
-				trigger_error('needle is not a string or an integer', E_USER_WARNING);
-				return false;
-			}
-
-			return strpos(strtolower($haystack), $needle, $offset);
-		}
-	}
-
-	/**
-	 * Similar to parse_str()
-	 *
-	 * Returns an associative array of name/value pairs, where the value is an
-	 * array of values that have used the same name
-	 *
-	 * @static
-	 * @access string
-	 * @param string $str The input string.
-	 * @return array
-	 */
-	function parse_str($str)
-	{
-		$return = array();
-		$str = explode('&', $str);
-
-		foreach ($str as $section)
-		{
-			if (strpos($section, '=') !== false)
-			{
-				list($name, $value) = explode('=', $section, 2);
-				$return[urldecode($name)][] = urldecode($value);
-			}
-			else
-			{
-				$return[urldecode($section)][] = null;
-			}
-		}
-
-		return $return;
-	}
-
-	/**
-	 * Detect XML encoding, as per XML 1.0 Appendix F.1
-	 *
-	 * @todo Add support for EBCDIC
-	 * @param string $data XML data
-	 * @return array Possible encodings
-	 */
-	function xml_encoding($data)
-	{
-		// UTF-32 Big Endian BOM
-		if (substr($data, 0, 4) === "\x00\x00\xFE\xFF")
-		{
-			$encoding[] = 'UTF-32BE';
-		}
-		// UTF-32 Little Endian BOM
-		elseif (substr($data, 0, 4) === "\xFF\xFE\x00\x00")
-		{
-			$encoding[] = 'UTF-32LE';
-		}
-		// UTF-16 Big Endian BOM
-		elseif (substr($data, 0, 2) === "\xFE\xFF")
-		{
-			$encoding[] = 'UTF-16BE';
-		}
-		// UTF-16 Little Endian BOM
-		elseif (substr($data, 0, 2) === "\xFF\xFE")
-		{
-			$encoding[] = 'UTF-16LE';
-		}
-		// UTF-8 BOM
-		elseif (substr($data, 0, 3) === "\xEF\xBB\xBF")
-		{
-			$encoding[] = 'UTF-8';
-		}
-		// UTF-32 Big Endian Without BOM
-		elseif (substr($data, 0, 20) === "\x00\x00\x00\x3C\x00\x00\x00\x3F\x00\x00\x00\x78\x00\x00\x00\x6D\x00\x00\x00\x6C")
-		{
-			if ($pos = strpos($data, "\x00\x00\x00\x3F\x00\x00\x00\x3E"))
-			{
-				$parser =& new SimplePie_XML_Declaration_Parser(SimplePie_Misc::change_encoding(substr($data, 20, $pos - 20), 'UTF-32BE', 'UTF-8'));
-				if ($parser->parse())
-				{
-					$encoding[] = $parser->encoding;
-				}
-			}
-			$encoding[] = 'UTF-32BE';
-		}
-		// UTF-32 Little Endian Without BOM
-		elseif (substr($data, 0, 20) === "\x3C\x00\x00\x00\x3F\x00\x00\x00\x78\x00\x00\x00\x6D\x00\x00\x00\x6C\x00\x00\x00")
-		{
-			if ($pos = strpos($data, "\x3F\x00\x00\x00\x3E\x00\x00\x00"))
-			{
-				$parser =& new SimplePie_XML_Declaration_Parser(SimplePie_Misc::change_encoding(substr($data, 20, $pos - 20), 'UTF-32LE', 'UTF-8'));
-				if ($parser->parse())
-				{
-					$encoding[] = $parser->encoding;
-				}
-			}
-			$encoding[] = 'UTF-32LE';
-		}
-		// UTF-16 Big Endian Without BOM
-		elseif (substr($data, 0, 10) === "\x00\x3C\x00\x3F\x00\x78\x00\x6D\x00\x6C")
-		{
-			if ($pos = strpos($data, "\x00\x3F\x00\x3E"))
-			{
-				$parser =& new SimplePie_XML_Declaration_Parser(SimplePie_Misc::change_encoding(substr($data, 20, $pos - 10), 'UTF-16BE', 'UTF-8'));
-				if ($parser->parse())
-				{
-					$encoding[] = $parser->encoding;
-				}
-			}
-			$encoding[] = 'UTF-16BE';
-		}
-		// UTF-16 Little Endian Without BOM
-		elseif (substr($data, 0, 10) === "\x3C\x00\x3F\x00\x78\x00\x6D\x00\x6C\x00")
-		{
-			if ($pos = strpos($data, "\x3F\x00\x3E\x00"))
-			{
-				$parser =& new SimplePie_XML_Declaration_Parser(SimplePie_Misc::change_encoding(substr($data, 20, $pos - 10), 'UTF-16LE', 'UTF-8'));
-				if ($parser->parse())
-				{
-					$encoding[] = $parser->encoding;
-				}
-			}
-			$encoding[] = 'UTF-16LE';
-		}
-		// US-ASCII (or superset)
-		elseif (substr($data, 0, 5) === "\x3C\x3F\x78\x6D\x6C")
-		{
-			if ($pos = strpos($data, "\x3F\x3E"))
-			{
-				$parser =& new SimplePie_XML_Declaration_Parser(substr($data, 5, $pos - 5));
-				if ($parser->parse())
-				{
-					$encoding[] = $parser->encoding;
-				}
-			}
-			$encoding[] = 'UTF-8';
-		}
-		// Fallback to UTF-8
-		else
-		{
-			$encoding[] = 'UTF-8';
-		}
-		return $encoding;
-	}
-
-	function output_javascript()
-	{
-		if (function_exists('ob_gzhandler'))
-		{
-			ob_start('ob_gzhandler');
-		}
-		header('Content-type: text/javascript; charset: UTF-8');
-		header('Cache-Control: must-revalidate');
-		header('Expires: ' . gmdate('D, d M Y H:i:s', time() + 604800) . ' GMT'); // 7 days
-		?>
-function embed_odeo(link) {
-	document.writeln('<embed src="http://odeo.com/flash/audio_player_fullsize.swf" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" quality="high" width="440" height="80" wmode="transparent" allowScriptAccess="any" flashvars="valid_sample_rate=true&external_url='+link+'"></embed>');
-}
-
-function embed_quicktime(type, bgcolor, width, height, link, placeholder, loop) {
-	if (placeholder != '') {
-		document.writeln('<embed type="'+type+'" style="cursor:hand; cursor:pointer;" href="'+link+'" src="'+placeholder+'" width="'+width+'" height="'+height+'" autoplay="false" target="myself" controller="false" loop="'+loop+'" scale="aspect" bgcolor="'+bgcolor+'" pluginspage="http://www.apple.com/quicktime/download/"></embed>');
-	}
-	else {
-		document.writeln('<embed type="'+type+'" style="cursor:hand; cursor:pointer;" src="'+link+'" width="'+width+'" height="'+height+'" autoplay="false" target="myself" controller="true" loop="'+loop+'" scale="aspect" bgcolor="'+bgcolor+'" pluginspage="http://www.apple.com/quicktime/download/"></embed>');
-	}
-}
-
-function embed_flash(bgcolor, width, height, link, loop, type) {
-	document.writeln('<embed src="'+link+'" pluginspage="http://www.macromedia.com/go/getflashplayer" type="'+type+'" quality="high" width="'+width+'" height="'+height+'" bgcolor="'+bgcolor+'" loop="'+loop+'"></embed>');
-}
-
-function embed_flv(width, height, link, placeholder, loop, player) {
-	document.writeln('<embed src="'+player+'" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" quality="high" width="'+width+'" height="'+height+'" wmode="transparent" flashvars="file='+link+'&autostart=false&repeat='+loop+'&showdigits=true&showfsbutton=false"></embed>');
-}
-
-function embed_wmedia(width, height, link) {
-	document.writeln('<embed type="application/x-mplayer2" src="'+link+'" autosize="1" width="'+width+'" height="'+height+'" showcontrols="1" showstatusbar="0" showdisplay="0" autostart="0"></embed>');
-}
-		<?php
-	}
-
-
-
-	/**
-	 * Format debugging information
-	 */
-	function debug($sp)
-	{
-		$info = 'SimplePie ' . SIMPLEPIE_VERSION . ' Build ' . SIMPLEPIE_BUILD . "\n";
-		$info .= 'PHP ' . PHP_VERSION . "\n";
-		if ($sp->error() !== null)
-		{
-			$info .= 'Error occurred: ' . $sp->error() . "\n";
-		}
-		else
-		{
-			$info .= "No error found.\n";
-		}
-		$info .= "Extensions:\n";
-		$extensions = array('pcre', 'curl', 'zlib', 'mbstring', 'iconv', 'xmlreader', 'xml');
-		foreach ($extensions as $ext)
-		{
-			if (extension_loaded($ext))
-			{
-				$info .= "    $ext loaded\n";
-				switch ($ext)
-				{
-					case 'pcre':
-						$info .= '      Version ' . PCRE_VERSION . "\n";
-						break;
-					case 'curl':
-						$version = curl_version();
-						$info .= '      Version ' . $version['version'] . "\n";
-						break;
-					case 'mbstring':
-						$info .= '      Overloading: ' . mb_get_info('func_overload') . "\n";
-						break;
-					case 'iconv':
-						$info .= '      Version ' . ICONV_VERSION . "\n";
-						break;
-					case 'xml':
-						$info .= '      Version ' . LIBXML_DOTTED_VERSION . "\n";
-						break;
-				}
-			}
-			else
-			{
-				$info .= "    $ext not loaded\n";
-			}
-		}
-		return $info;
-	}
-}
-
-/**
- * Decode HTML Entities
- *
- * This implements HTML5 as of revision 967 (2007-06-28)
- *
- * @package SimplePie
- */
-class SimplePie_Decode_HTML_Entities
-{
-	/**
-	 * Data to be parsed
-	 *
-	 * @access private
-	 * @var string
-	 */
-	var $data = '';
-
-	/**
-	 * Currently consumed bytes
-	 *
-	 * @access private
-	 * @var string
-	 */
-	var $consumed = '';
-
-	/**
-	 * Position of the current byte being parsed
-	 *
-	 * @access private
-	 * @var int
-	 */
-	var $position = 0;
-
-	/**
-	 * Create an instance of the class with the input data
-	 *
-	 * @access public
-	 * @param string $data Input data
-	 */
-	function SimplePie_Decode_HTML_Entities($data)
-	{
-		$this->data = $data;
-	}
-
-	/**
-	 * Parse the input data
-	 *
-	 * @access public
-	 * @return string Output data
-	 */
-	function parse()
-	{
-		while (($this->position = strpos($this->data, '&', $this->position)) !== false)
-		{
-			$this->consume();
-			$this->entity();
-			$this->consumed = '';
-		}
-		return $this->data;
-	}
-
-	/**
-	 * Consume the next byte
-	 *
-	 * @access private
-	 * @return mixed The next byte, or false, if there is no more data
-	 */
-	function consume()
-	{
-		if (isset($this->data[$this->position]))
-		{
-			$this->consumed .= $this->data[$this->position];
-			return $this->data[$this->position++];
-		}
-		else
-		{
-			return false;
-		}
-	}
-
-	/**
-	 * Consume a range of characters
-	 *
-	 * @access private
-	 * @param string $chars Characters to consume
-	 * @return mixed A series of characters that match the range, or false
-	 */
-	function consume_range($chars)
-	{
-		if ($len = strspn($this->data, $chars, $this->position))
-		{
-			$data = substr($this->data, $this->position, $len);
-			$this->consumed .= $data;
-			$this->position += $len;
-			return $data;
-		}
-		else
-		{
-			return false;
-		}
-	}
-
-	/**
-	 * Unconsume one byte
-	 *
-	 * @access private
-	 */
-	function unconsume()
-	{
-		$this->consumed = substr($this->consumed, 0, -1);
-		$this->position--;
-	}
-
-	/**
-	 * Decode an entity
-	 *
-	 * @access private
-	 */
-	function entity()
-	{
-		switch ($this->consume())
-		{
-			case "\x09":
-			case "\x0A":
-			case "\x0B":
-			case "\x0B":
-			case "\x0C":
-			case "\x20":
-			case "\x3C":
-			case "\x26":
-			case false:
-				break;
-
-			case "\x23":
-				switch ($this->consume())
-				{
-					case "\x78":
-					case "\x58":
-						$range = '0123456789ABCDEFabcdef';
-						$hex = true;
-						break;
-
-					default:
-						$range = '0123456789';
-						$hex = false;
-						$this->unconsume();
-						break;
-				}
-
-				if ($codepoint = $this->consume_range($range))
-				{
-					static $windows_1252_specials = array(0x0D => "\x0A", 0x80 => "\xE2\x82\xAC", 0x81 => "\xEF\xBF\xBD", 0x82 => "\xE2\x80\x9A", 0x83 => "\xC6\x92", 0x84 => "\xE2\x80\x9E", 0x85 => "\xE2\x80\xA6", 0x86 => "\xE2\x80\xA0", 0x87 => "\xE2\x80\xA1", 0x88 => "\xCB\x86", 0x89 => "\xE2\x80\xB0", 0x8A => "\xC5\xA0", 0x8B => "\xE2\x80\xB9", 0x8C => "\xC5\x92", 0x8D => "\xEF\xBF\xBD", 0x8E => "\xC5\xBD", 0x8F => "\xEF\xBF\xBD", 0x90 => "\xEF\xBF\xBD", 0x91 => "\xE2\x80\x98", 0x92 => "\xE2\x80\x99", 0x93 => "\xE2\x80\x9C", 0x94 => "\xE2\x80\x9D", 0x95 => "\xE2\x80\xA2", 0x96 => "\xE2\x80\x93", 0x97 => "\xE2\x80\x94", 0x98 => "\xCB\x9C", 0x99 => "\xE2\x84\xA2", 0x9A => "\xC5\xA1", 0x9B => "\xE2\x80\xBA", 0x9C => "\xC5\x93", 0x9D => "\xEF\xBF\xBD", 0x9E => "\xC5\xBE", 0x9F => "\xC5\xB8");
-
-					if ($hex)
-					{
-						$codepoint = hexdec($codepoint);
-					}
-					else
-					{
-						$codepoint = intval($codepoint);
-					}
-
-					if (isset($windows_1252_specials[$codepoint]))
-					{
-						$replacement = $windows_1252_specials[$codepoint];
-					}
-					else
-					{
-						$replacement = SimplePie_Misc::codepoint_to_utf8($codepoint);
-					}
-
-					if (!in_array($this->consume(), array(';', false), true))
-					{
-						$this->unconsume();
-					}
-
-					$consumed_length = strlen($this->consumed);
-					$this->data = substr_replace($this->data, $replacement, $this->position - $consumed_length, $consumed_length);
-					$this->position += strlen($replacement) - $consumed_length;
-				}
-				break;
-
-			default:
-				static $entities = array('Aacute' => "\xC3\x81", 'aacute' => "\xC3\xA1", 'Aacute;' => "\xC3\x81", 'aacute;' => "\xC3\xA1", 'Acirc' => "\xC3\x82", 'acirc' => "\xC3\xA2", 'Acirc;' => "\xC3\x82", 'acirc;' => "\xC3\xA2", 'acute' => "\xC2\xB4", 'acute;' => "\xC2\xB4", 'AElig' => "\xC3\x86", 'aelig' => "\xC3\xA6", 'AElig;' => "\xC3\x86", 'aelig;' => "\xC3\xA6", 'Agrave' => "\xC3\x80", 'agrave' => "\xC3\xA0", 'Agrave;' => "\xC3\x80", 'agrave;' => "\xC3\xA0", 'alefsym;' => "\xE2\x84\xB5", 'Alpha;' => "\xCE\x91", 'alpha;' => "\xCE\xB1", 'AMP' => "\x26", 'amp' => "\x26", 'AMP;' => "\x26", 'amp;' => "\x26", 'and;' => "\xE2\x88\xA7", 'ang;' => "\xE2\x88\xA0", 'apos;' => "\x27", 'Aring' => "\xC3\x85", 'aring' => "\xC3\xA5", 'Aring;' => "\xC3\x85", 'aring;' => "\xC3\xA5", 'asymp;' => "\xE2\x89\x88", 'Atilde' => "\xC3\x83", 'atilde' => "\xC3\xA3", 'Atilde;' => "\xC3\x83", 'atilde;' => "\xC3\xA3", 'Auml' => "\xC3\x84", 'auml' => "\xC3\xA4", 'Auml;' => "\xC3\x84", 'auml;' => "\xC3\xA4", 'bdquo;' => "\xE2\x80\x9E", 'Beta;' => "\xCE\x92", 'beta;' => "\xCE\xB2", 'brvbar' => "\xC2\xA6", 'brvbar;' => "\xC2\xA6", 'bull;' => "\xE2\x80\xA2", 'cap;' => "\xE2\x88\xA9", 'Ccedil' => "\xC3\x87", 'ccedil' => "\xC3\xA7", 'Ccedil;' => "\xC3\x87", 'ccedil;' => "\xC3\xA7", 'cedil' => "\xC2\xB8", 'cedil;' => "\xC2\xB8", 'cent' => "\xC2\xA2", 'cent;' => "\xC2\xA2", 'Chi;' => "\xCE\xA7", 'chi;' => "\xCF\x87", 'circ;' => "\xCB\x86", 'clubs;' => "\xE2\x99\xA3", 'cong;' => "\xE2\x89\x85", 'COPY' => "\xC2\xA9", 'copy' => "\xC2\xA9", 'COPY;' => "\xC2\xA9", 'copy;' => "\xC2\xA9", 'crarr;' => "\xE2\x86\xB5", 'cup;' => "\xE2\x88\xAA", 'curren' => "\xC2\xA4", 'curren;' => "\xC2\xA4", 'Dagger;' => "\xE2\x80\xA1", 'dagger;' => "\xE2\x80\xA0", 'dArr;' => "\xE2\x87\x93", 'darr;' => "\xE2\x86\x93", 'deg' => "\xC2\xB0", 'deg;' => "\xC2\xB0", 'Delta;' => "\xCE\x94", 'delta;' => "\xCE\xB4", 'diams;' => "\xE2\x99\xA6", 'divide' => "\xC3\xB7", 'divide;' => "\xC3\xB7", 'Eacute' => "\xC3\x89", 'eacute' => "\xC3\xA9", 'Eacute;' => "\xC3\x89", 'eacute;' => "\xC3\xA9", 'Ecirc' => "\xC3\x8A", 'ecirc' => "\xC3\xAA", 'Ecirc;' => "\xC3\x8A", 'ecirc;' => "\xC3\xAA", 'Egrave' => "\xC3\x88", 'egrave' => "\xC3\xA8", 'Egrave;' => "\xC3\x88", 'egrave;' => "\xC3\xA8", 'empty;' => "\xE2\x88\x85", 'emsp;' => "\xE2\x80\x83", 'ensp;' => "\xE2\x80\x82", 'Epsilon;' => "\xCE\x95", 'epsilon;' => "\xCE\xB5", 'equiv;' => "\xE2\x89\xA1", 'Eta;' => "\xCE\x97", 'eta;' => "\xCE\xB7", 'ETH' => "\xC3\x90", 'eth' => "\xC3\xB0", 'ETH;' => "\xC3\x90", 'eth;' => "\xC3\xB0", 'Euml' => "\xC3\x8B", 'euml' => "\xC3\xAB", 'Euml;' => "\xC3\x8B", 'euml;' => "\xC3\xAB", 'euro;' => "\xE2\x82\xAC", 'exist;' => "\xE2\x88\x83", 'fnof;' => "\xC6\x92", 'forall;' => "\xE2\x88\x80", 'frac12' => "\xC2\xBD", 'frac12;' => "\xC2\xBD", 'frac14' => "\xC2\xBC", 'frac14;' => "\xC2\xBC", 'frac34' => "\xC2\xBE", 'frac34;' => "\xC2\xBE", 'frasl;' => "\xE2\x81\x84", 'Gamma;' => "\xCE\x93", 'gamma;' => "\xCE\xB3", 'ge;' => "\xE2\x89\xA5", 'GT' => "\x3E", 'gt' => "\x3E", 'GT;' => "\x3E", 'gt;' => "\x3E", 'hArr;' => "\xE2\x87\x94", 'harr;' => "\xE2\x86\x94", 'hearts;' => "\xE2\x99\xA5", 'hellip;' => "\xE2\x80\xA6", 'Iacute' => "\xC3\x8D", 'iacute' => "\xC3\xAD", 'Iacute;' => "\xC3\x8D", 'iacute;' => "\xC3\xAD", 'Icirc' => "\xC3\x8E", 'icirc' => "\xC3\xAE", 'Icirc;' => "\xC3\x8E", 'icirc;' => "\xC3\xAE", 'iexcl' => "\xC2\xA1", 'iexcl;' => "\xC2\xA1", 'Igrave' => "\xC3\x8C", 'igrave' => "\xC3\xAC", 'Igrave;' => "\xC3\x8C", 'igrave;' => "\xC3\xAC", 'image;' => "\xE2\x84\x91", 'infin;' => "\xE2\x88\x9E", 'int;' => "\xE2\x88\xAB", 'Iota;' => "\xCE\x99", 'iota;' => "\xCE\xB9", 'iquest' => "\xC2\xBF", 'iquest;' => "\xC2\xBF", 'isin;' => "\xE2\x88\x88", 'Iuml' => "\xC3\x8F", 'iuml' => "\xC3\xAF", 'Iuml;' => "\xC3\x8F", 'iuml;' => "\xC3\xAF", 'Kappa;' => "\xCE\x9A", 'kappa;' => "\xCE\xBA", 'Lambda;' => "\xCE\x9B", 'lambda;' => "\xCE\xBB", 'lang;' => "\xE3\x80\x88", 'laquo' => "\xC2\xAB", 'laquo;' => "\xC2\xAB", 'lArr;' => "\xE2\x87\x90", 'larr;' => "\xE2\x86\x90", 'lceil;' => "\xE2\x8C\x88", 'ldquo;' => "\xE2\x80\x9C", 'le;' => "\xE2\x89\xA4", 'lfloor;' => "\xE2\x8C\x8A", 'lowast;' => "\xE2\x88\x97", 'loz;' => "\xE2\x97\x8A", 'lrm;' => "\xE2\x80\x8E", 'lsaquo;' => "\xE2\x80\xB9", 'lsquo;' => "\xE2\x80\x98", 'LT' => "\x3C", 'lt' => "\x3C", 'LT;' => "\x3C", 'lt;' => "\x3C", 'macr' => "\xC2\xAF", 'macr;' => "\xC2\xAF", 'mdash;' => "\xE2\x80\x94", 'micro' => "\xC2\xB5", 'micro;' => "\xC2\xB5", 'middot' => "\xC2\xB7", 'middot;' => "\xC2\xB7", 'minus;' => "\xE2\x88\x92", 'Mu;' => "\xCE\x9C", 'mu;' => "\xCE\xBC", 'nabla;' => "\xE2\x88\x87", 'nbsp' => "\xC2\xA0", 'nbsp;' => "\xC2\xA0", 'ndash;' => "\xE2\x80\x93", 'ne;' => "\xE2\x89\xA0", 'ni;' => "\xE2\x88\x8B", 'not' => "\xC2\xAC", 'not;' => "\xC2\xAC", 'notin;' => "\xE2\x88\x89", 'nsub;' => "\xE2\x8A\x84", 'Ntilde' => "\xC3\x91", 'ntilde' => "\xC3\xB1", 'Ntilde;' => "\xC3\x91", 'ntilde;' => "\xC3\xB1", 'Nu;' => "\xCE\x9D", 'nu;' => "\xCE\xBD", 'Oacute' => "\xC3\x93", 'oacute' => "\xC3\xB3", 'Oacute;' => "\xC3\x93", 'oacute;' => "\xC3\xB3", 'Ocirc' => "\xC3\x94", 'ocirc' => "\xC3\xB4", 'Ocirc;' => "\xC3\x94", 'ocirc;' => "\xC3\xB4", 'OElig;' => "\xC5\x92", 'oelig;' => "\xC5\x93", 'Ograve' => "\xC3\x92", 'ograve' => "\xC3\xB2", 'Ograve;' => "\xC3\x92", 'ograve;' => "\xC3\xB2", 'oline;' => "\xE2\x80\xBE", 'Omega;' => "\xCE\xA9", 'omega;' => "\xCF\x89", 'Omicron;' => "\xCE\x9F", 'omicron;' => "\xCE\xBF", 'oplus;' => "\xE2\x8A\x95", 'or;' => "\xE2\x88\xA8", 'ordf' => "\xC2\xAA", 'ordf;' => "\xC2\xAA", 'ordm' => "\xC2\xBA", 'ordm;' => "\xC2\xBA", 'Oslash' => "\xC3\x98", 'oslash' => "\xC3\xB8", 'Oslash;' => "\xC3\x98", 'oslash;' => "\xC3\xB8", 'Otilde' => "\xC3\x95", 'otilde' => "\xC3\xB5", 'Otilde;' => "\xC3\x95", 'otilde;' => "\xC3\xB5", 'otimes;' => "\xE2\x8A\x97", 'Ouml' => "\xC3\x96", 'ouml' => "\xC3\xB6", 'Ouml;' => "\xC3\x96", 'ouml;' => "\xC3\xB6", 'para' => "\xC2\xB6", 'para;' => "\xC2\xB6", 'part;' => "\xE2\x88\x82", 'permil;' => "\xE2\x80\xB0", 'perp;' => "\xE2\x8A\xA5", 'Phi;' => "\xCE\xA6", 'phi;' => "\xCF\x86", 'Pi;' => "\xCE\xA0", 'pi;' => "\xCF\x80", 'piv;' => "\xCF\x96", 'plusmn' => "\xC2\xB1", 'plusmn;' => "\xC2\xB1", 'pound' => "\xC2\xA3", 'pound;' => "\xC2\xA3", 'Prime;' => "\xE2\x80\xB3", 'prime;' => "\xE2\x80\xB2", 'prod;' => "\xE2\x88\x8F", 'prop;' => "\xE2\x88\x9D", 'Psi;' => "\xCE\xA8", 'psi;' => "\xCF\x88", 'QUOT' => "\x22", 'quot' => "\x22", 'QUOT;' => "\x22", 'quot;' => "\x22", 'radic;' => "\xE2\x88\x9A", 'rang;' => "\xE3\x80\x89", 'raquo' => "\xC2\xBB", 'raquo;' => "\xC2\xBB", 'rArr;' => "\xE2\x87\x92", 'rarr;' => "\xE2\x86\x92", 'rceil;' => "\xE2\x8C\x89", 'rdquo;' => "\xE2\x80\x9D", 'real;' => "\xE2\x84\x9C", 'REG' => "\xC2\xAE", 'reg' => "\xC2\xAE", 'REG;' => "\xC2\xAE", 'reg;' => "\xC2\xAE", 'rfloor;' => "\xE2\x8C\x8B", 'Rho;' => "\xCE\xA1", 'rho;' => "\xCF\x81", 'rlm;' => "\xE2\x80\x8F", 'rsaquo;' => "\xE2\x80\xBA", 'rsquo;' => "\xE2\x80\x99", 'sbquo;' => "\xE2\x80\x9A", 'Scaron;' => "\xC5\xA0", 'scaron;' => "\xC5\xA1", 'sdot;' => "\xE2\x8B\x85", 'sect' => "\xC2\xA7", 'sect;' => "\xC2\xA7", 'shy' => "\xC2\xAD", 'shy;' => "\xC2\xAD", 'Sigma;' => "\xCE\xA3", 'sigma;' => "\xCF\x83", 'sigmaf;' => "\xCF\x82", 'sim;' => "\xE2\x88\xBC", 'spades;' => "\xE2\x99\xA0", 'sub;' => "\xE2\x8A\x82", 'sube;' => "\xE2\x8A\x86", 'sum;' => "\xE2\x88\x91", 'sup;' => "\xE2\x8A\x83", 'sup1' => "\xC2\xB9", 'sup1;' => "\xC2\xB9", 'sup2' => "\xC2\xB2", 'sup2;' => "\xC2\xB2", 'sup3' => "\xC2\xB3", 'sup3;' => "\xC2\xB3", 'supe;' => "\xE2\x8A\x87", 'szlig' => "\xC3\x9F", 'szlig;' => "\xC3\x9F", 'Tau;' => "\xCE\xA4", 'tau;' => "\xCF\x84", 'there4;' => "\xE2\x88\xB4", 'Theta;' => "\xCE\x98", 'theta;' => "\xCE\xB8", 'thetasym;' => "\xCF\x91", 'thinsp;' => "\xE2\x80\x89", 'THORN' => "\xC3\x9E", 'thorn' => "\xC3\xBE", 'THORN;' => "\xC3\x9E", 'thorn;' => "\xC3\xBE", 'tilde;' => "\xCB\x9C", 'times' => "\xC3\x97", 'times;' => "\xC3\x97", 'TRADE;' => "\xE2\x84\xA2", 'trade;' => "\xE2\x84\xA2", 'Uacute' => "\xC3\x9A", 'uacute' => "\xC3\xBA", 'Uacute;' => "\xC3\x9A", 'uacute;' => "\xC3\xBA", 'uArr;' => "\xE2\x87\x91", 'uarr;' => "\xE2\x86\x91", 'Ucirc' => "\xC3\x9B", 'ucirc' => "\xC3\xBB", 'Ucirc;' => "\xC3\x9B", 'ucirc;' => "\xC3\xBB", 'Ugrave' => "\xC3\x99", 'ugrave' => "\xC3\xB9", 'Ugrave;' => "\xC3\x99", 'ugrave;' => "\xC3\xB9", 'uml' => "\xC2\xA8", 'uml;' => "\xC2\xA8", 'upsih;' => "\xCF\x92", 'Upsilon;' => "\xCE\xA5", 'upsilon;' => "\xCF\x85", 'Uuml' => "\xC3\x9C", 'uuml' => "\xC3\xBC", 'Uuml;' => "\xC3\x9C", 'uuml;' => "\xC3\xBC", 'weierp;' => "\xE2\x84\x98", 'Xi;' => "\xCE\x9E", 'xi;' => "\xCE\xBE", 'Yacute' => "\xC3\x9D", 'yacute' => "\xC3\xBD", 'Yacute;' => "\xC3\x9D", 'yacute;' => "\xC3\xBD", 'yen' => "\xC2\xA5", 'yen;' => "\xC2\xA5", 'yuml' => "\xC3\xBF", 'Yuml;' => "\xC5\xB8", 'yuml;' => "\xC3\xBF", 'Zeta;' => "\xCE\x96", 'zeta;' => "\xCE\xB6", 'zwj;' => "\xE2\x80\x8D", 'zwnj;' => "\xE2\x80\x8C");
-
-				for ($i = 0, $match = null; $i < 9 && $this->consume() !== false; $i++)
-				{
-					$consumed = substr($this->consumed, 1);
-					if (isset($entities[$consumed]))
-					{
-						$match = $consumed;
-					}
-				}
-
-				if ($match !== null)
-				{
- 					$this->data = substr_replace($this->data, $entities[$match], $this->position - strlen($consumed) - 1, strlen($match) + 1);
-					$this->position += strlen($entities[$match]) - strlen($consumed) - 1;
-				}
-				break;
-		}
-	}
-}
-
-/**
- * IRI parser/serialiser
- *
- * @package SimplePie
- */
-class SimplePie_IRI
-{
-	/**
-	 * Scheme
-	 *
-	 * @access private
-	 * @var string
-	 */
-	var $scheme;
-
-	/**
-	 * User Information
-	 *
-	 * @access private
-	 * @var string
-	 */
-	var $userinfo;
-
-	/**
-	 * Host
-	 *
-	 * @access private
-	 * @var string
-	 */
-	var $host;
-
-	/**
-	 * Port
-	 *
-	 * @access private
-	 * @var string
-	 */
-	var $port;
-
-	/**
-	 * Path
-	 *
-	 * @access private
-	 * @var string
-	 */
-	var $path;
-
-	/**
-	 * Query
-	 *
-	 * @access private
-	 * @var string
-	 */
-	var $query;
-
-	/**
-	 * Fragment
-	 *
-	 * @access private
-	 * @var string
-	 */
-	var $fragment;
-
-	/**
-	 * Whether the object represents a valid IRI
-	 *
-	 * @access private
-	 * @var array
-	 */
-	var $valid = array();
-
-	/**
-	 * Return the entire IRI when you try and read the object as a string
-	 *
-	 * @access public
-	 * @return string
-	 */
-	function __toString()
-	{
-		return $this->get_iri();
-	}
-
-	/**
-	 * Create a new IRI object, from a specified string
-	 *
-	 * @access public
-	 * @param string $iri
-	 * @return SimplePie_IRI
-	 */
-	function SimplePie_IRI($iri)
-	{
-		$iri = (string) $iri;
-		if ($iri !== '')
-		{
-			$parsed = $this->parse_iri($iri);
-			$this->set_scheme($parsed['scheme']);
-			$this->set_authority($parsed['authority']);
-			$this->set_path($parsed['path']);
-			$this->set_query($parsed['query']);
-			$this->set_fragment($parsed['fragment']);
-		}
-	}
-
-	/**
-	 * Create a new IRI object by resolving a relative IRI
-	 *
-	 * @static
-	 * @access public
-	 * @param SimplePie_IRI $base Base IRI
-	 * @param string $relative Relative IRI
-	 * @return SimplePie_IRI
-	 */
-	function absolutize($base, $relative)
-	{
-		$relative = (string) $relative;
-		if ($relative !== '')
-		{
-			$relative =& new SimplePie_IRI($relative);
-			if ($relative->get_scheme() !== null)
-			{
-				$target = $relative;
-			}
-			elseif ($base->get_iri() !== null)
-			{
-				if ($relative->get_authority() !== null)
-				{
-					$target = $relative;
-					$target->set_scheme($base->get_scheme());
-				}
-				else
-				{
-					$target =& new SimplePie_IRI('');
-					$target->set_scheme($base->get_scheme());
-					$target->set_userinfo($base->get_userinfo());
-					$target->set_host($base->get_host());
-					$target->set_port($base->get_port());
-					if ($relative->get_path() !== null)
-					{
-						if (strpos($relative->get_path(), '/') === 0)
-						{
-							$target->set_path($relative->get_path());
-						}
-						elseif (($base->get_userinfo() !== null || $base->get_host() !== null || $base->get_port() !== null) && $base->get_path() === null)
-						{
-							$target->set_path('/' . $relative->get_path());
-						}
-						elseif (($last_segment = strrpos($base->get_path(), '/')) !== false)
-						{
-							$target->set_path(substr($base->get_path(), 0, $last_segment + 1) . $relative->get_path());
-						}
-						else
-						{
-							$target->set_path($relative->get_path());
-						}
-						$target->set_query($relative->get_query());
-					}
-					else
-					{
-						$target->set_path($base->get_path());
-						if ($relative->get_query() !== null)
-						{
-							$target->set_query($relative->get_query());
-						}
-						elseif ($base->get_query() !== null)
-						{
-							$target->set_query($base->get_query());
-						}
-					}
-				}
-				$target->set_fragment($relative->get_fragment());
-			}
-			else
-			{
-				// No base URL, just return the relative URL
-				$target = $relative;
-			}
-		}
-		else
-		{
-			$target = $base;
-		}
-		return $target;
-	}
-
-	/**
-	 * Parse an IRI into scheme/authority/path/query/fragment segments
-	 *
-	 * @access private
-	 * @param string $iri
-	 * @return array
-	 */
-	function parse_iri($iri)
-	{
-		preg_match('/^(([^:\/?#]+):)?(\/\/([^\/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?$/', $iri, $match);
-		for ($i = count($match); $i <= 9; $i++)
-		{
-			$match[$i] = '';
-		}
-		return array('scheme' => $match[2], 'authority' => $match[4], 'path' => $match[5], 'query' => $match[7], 'fragment' => $match[9]);
-	}
-
-	/**
-	 * Remove dot segments from a path
-	 *
-	 * @access private
-	 * @param string $input
-	 * @return string
-	 */
-	function remove_dot_segments($input)
-	{
-		$output = '';
-		while (strpos($input, './') !== false || strpos($input, '/.') !== false || $input === '.' || $input === '..')
-		{
-			// A: If the input buffer begins with a prefix of "../" or "./", then remove that prefix from the input buffer; otherwise,
-			if (strpos($input, '../') === 0)
-			{
-				$input = substr($input, 3);
-			}
-			elseif (strpos($input, './') === 0)
-			{
-				$input = substr($input, 2);
-			}
-			// B: if the input buffer begins with a prefix of "/./" or "/.", where "." is a complete path segment, then replace that prefix with "/" in the input buffer; otherwise,
-			elseif (strpos($input, '/./') === 0)
-			{
-				$input = substr_replace($input, '/', 0, 3);
-			}
-			elseif ($input === '/.')
-			{
-				$input = '/';
-			}
-			// C: if the input buffer begins with a prefix of "/../" or "/..", where ".." is a complete path segment, then replace that prefix with "/" in the input buffer and remove the last segment and its preceding "/" (if any) from the output buffer; otherwise,
-			elseif (strpos($input, '/../') === 0)
-			{
-				$input = substr_replace($input, '/', 0, 4);
-				$output = substr_replace($output, '', strrpos($output, '/'));
-			}
-			elseif ($input === '/..')
-			{
-				$input = '/';
-				$output = substr_replace($output, '', strrpos($output, '/'));
-			}
-			// D: if the input buffer consists only of "." or "..", then remove that from the input buffer; otherwise,
-			elseif ($input === '.' || $input === '..')
-			{
-				$input = '';
-			}
-			// E: move the first path segment in the input buffer to the end of the output buffer, including the initial "/" character (if any) and any subsequent characters up to, but not including, the next "/" character or the end of the input buffer
-			elseif (($pos = strpos($input, '/', 1)) !== false)
-			{
-				$output .= substr($input, 0, $pos);
-				$input = substr_replace($input, '', 0, $pos);
-			}
-			else
-			{
-				$output .= $input;
-				$input = '';
-			}
-		}
-		return $output . $input;
-	}
-
-	/**
-	 * Replace invalid character with percent encoding
-	 *
-	 * @param string $string Input string
-	 * @param string $valid_chars Valid characters
-	 * @param int $case Normalise case
-	 * @return string
-	 */
-	function replace_invalid_with_pct_encoding($string, $valid_chars, $case = SIMPLEPIE_SAME_CASE, $iprivate = false)
-	{
-		// Normalize as many pct-encoded sections as possible
-		$string = preg_replace_callback('/(?:%[A-Fa-f0-9]{2})+/', array(&$this, 'remove_iunreserved_percent_encoded'), $string);
-
-		// Replace invalid percent characters
-		$string = preg_replace('/%(?![A-Fa-f0-9]{2})/', '%25', $string);
-
-		// Add unreserved and % to $valid_chars (the latter is safe because all
-		// pct-encoded sections are now valid).
-		$valid_chars .= 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-._~%';
-
-		// Now replace any bytes that aren't allowed with their pct-encoded versions
-		$position = 0;
-		$strlen = strlen($string);
-		while (($position += strspn($string, $valid_chars, $position)) < $strlen)
-		{
-			$value = ord($string[$position]);
-
-			// Start position
-			$start = $position;
-
-			// By default we are valid
-			$valid = true;
-
-			// No one byte sequences are valid due to the while.
-			// Two byte sequence:
-			if (($value & 0xE0) === 0xC0)
-			{
-				$character = ($value & 0x1F) << 6;
-				$length = 2;
-				$remaining = 1;
-			}
-			// Three byte sequence:
-			elseif (($value & 0xF0) === 0xE0)
-			{
-				$character = ($value & 0x0F) << 12;
-				$length = 3;
-				$remaining = 2;
-			}
-			// Four byte sequence:
-			elseif (($value & 0xF8) === 0xF0)
-			{
-				$character = ($value & 0x07) << 18;
-				$length = 4;
-				$remaining = 3;
-			}
-			// Invalid byte:
-			else
-			{
-				$valid = false;
-				$length = 1;
-				$remaining = 0;
-			}
-
-			if ($remaining)
-			{
-				if ($position + $length <= $strlen)
-				{
-					for ($position++; $remaining; $position++)
-					{
-						$value = ord($string[$position]);
-
-						// Check that the byte is valid, then add it to the character:
-						if (($value & 0xC0) === 0x80)
-						{
-							$character |= ($value & 0x3F) << (--$remaining * 6);
-						}
-						// If it is invalid, count the sequence as invalid and reprocess the current byte:
-						else
-						{
-							$valid = false;
-							$position--;
-							break;
-						}
-					}
-				}
-				else
-				{
-					$position = $strlen - 1;
-					$valid = false;
-				}
-			}
-
-			// Percent encode anything invalid or not in ucschar
-			if (
-				// Invalid sequences
-				!$valid
-				// Non-shortest form sequences are invalid
-				|| $length > 1 && $character <= 0x7F
-				|| $length > 2 && $character <= 0x7FF
-				|| $length > 3 && $character <= 0xFFFF
-				// Outside of range of ucschar codepoints
-				// Noncharacters
-				|| ($character & 0xFFFE) === 0xFFFE
-				|| $character >= 0xFDD0 && $character <= 0xFDEF
-				|| (
-					// Everything else not in ucschar
-					   $character > 0xD7FF && $character < 0xF900
-					|| $character < 0xA0
-					|| $character > 0xEFFFD
-				)
-				&& (
-					// Everything not in iprivate, if it applies
-					   !$iprivate
-					|| $character < 0xE000
-					|| $character > 0x10FFFD
-				)
-			)
-			{
-				// If we were a character, pretend we weren't, but rather an error.
-				if ($valid)
-					$position--;
-
-				for ($j = $start; $j <= $position; $j++)
-				{
-					$string = substr_replace($string, sprintf('%%%02X', ord($string[$j])), $j, 1);
-					$j += 2;
-					$position += 2;
-					$strlen += 2;
-				}
-			}
-		}
-
-		// Normalise case
-		if ($case & SIMPLEPIE_LOWERCASE)
-		{
-			$string = strtolower($string);
-		}
-		elseif ($case & SIMPLEPIE_UPPERCASE)
-		{
-			$string = strtoupper($string);
-		}
-
-		return $string;
-	}
-
-	/**
-	 * Callback function for preg_replace_callback.
-	 *
-	 * Removes sequences of percent encoded bytes that represent UTF-8
-	 * encoded characters in iunreserved
-	 *
-	 * @access private
-	 * @param array $match PCRE match
-	 * @return string Replacement
-	 */
-	function remove_iunreserved_percent_encoded($match)
-	{
-		// As we just have valid percent encoded sequences we can just explode
-		// and ignore the first member of the returned array (an empty string).
-		$bytes = explode('%', $match[0]);
-
-		// Initialize the new string (this is what will be returned) and that
-		// there are no bytes remaining in the current sequence (unsurprising
-		// at the first byte!).
-		$string = '';
-		$remaining = 0;
-
-		// Loop over each and every byte, and set $value to its value
-		for ($i = 1, $len = count($bytes); $i < $len; $i++)
-		{
-			$value = hexdec($bytes[$i]);
-
-			// If we're the first byte of sequence:
-			if (!$remaining)
-			{
-				// Start position
-				$start = $i;
-
-				// By default we are valid
-				$valid = true;
-
-				// One byte sequence:
-				if ($value <= 0x7F)
-				{
-					$character = $value;
-					$length = 1;
-				}
-				// Two byte sequence:
-				elseif (($value & 0xE0) === 0xC0)
-				{
-					$character = ($value & 0x1F) << 6;
-					$length = 2;
-					$remaining = 1;
-				}
-				// Three byte sequence:
-				elseif (($value & 0xF0) === 0xE0)
-				{
-					$character = ($value & 0x0F) << 12;
-					$length = 3;
-					$remaining = 2;
-				}
-				// Four byte sequence:
-				elseif (($value & 0xF8) === 0xF0)
-				{
-					$character = ($value & 0x07) << 18;
-					$length = 4;
-					$remaining = 3;
-				}
-				// Invalid byte:
-				else
-				{
-					$valid = false;
-					$remaining = 0;
-				}
-			}
-			// Continuation byte:
-			else
-			{
-				// Check that the byte is valid, then add it to the character:
-				if (($value & 0xC0) === 0x80)
-				{
-					$remaining--;
-					$character |= ($value & 0x3F) << ($remaining * 6);
-				}
-				// If it is invalid, count the sequence as invalid and reprocess the current byte as the start of a sequence:
-				else
-				{
-					$valid = false;
-					$remaining = 0;
-					$i--;
-				}
-			}
-
-			// If we've reached the end of the current byte sequence, append it to Unicode::$data
-			if (!$remaining)
-			{
-				// Percent encode anything invalid or not in iunreserved
-				if (
-					// Invalid sequences
-					!$valid
-					// Non-shortest form sequences are invalid
-					|| $length > 1 && $character <= 0x7F
-					|| $length > 2 && $character <= 0x7FF
-					|| $length > 3 && $character <= 0xFFFF
-					// Outside of range of iunreserved codepoints
-					|| $character < 0x2D
-					|| $character > 0xEFFFD
-					// Noncharacters
-					|| ($character & 0xFFFE) === 0xFFFE
-					|| $character >= 0xFDD0 && $character <= 0xFDEF
-					// Everything else not in iunreserved (this is all BMP)
-					|| $character === 0x2F
-					|| $character > 0x39 && $character < 0x41
-					|| $character > 0x5A && $character < 0x61
-					|| $character > 0x7A && $character < 0x7E
-					|| $character > 0x7E && $character < 0xA0
-					|| $character > 0xD7FF && $character < 0xF900
-				)
-				{
-					for ($j = $start; $j <= $i; $j++)
-					{
-						$string .= '%' . strtoupper($bytes[$j]);
-					}
-				}
-				else
-				{
-					for ($j = $start; $j <= $i; $j++)
-					{
-						$string .= chr(hexdec($bytes[$j]));
-					}
-				}
-			}
-		}
-
-		// If we have any bytes left over they are invalid (i.e., we are
-		// mid-way through a multi-byte sequence)
-		if ($remaining)
-		{
-			for ($j = $start; $j < $len; $j++)
-			{
-				$string .= '%' . strtoupper($bytes[$j]);
-			}
-		}
-
-		return $string;
-	}
-
-	/**
-	 * Check if the object represents a valid IRI
-	 *
-	 * @access public
-	 * @return bool
-	 */
-	function is_valid()
-	{
-		return array_sum($this->valid) === count($this->valid);
-	}
-
-	/**
-	 * Set the scheme. Returns true on success, false on failure (if there are
-	 * any invalid characters).
-	 *
-	 * @access public
-	 * @param string $scheme
-	 * @return bool
-	 */
-	function set_scheme($scheme)
-	{
-		if ($scheme === null || $scheme === '')
-		{
-			$this->scheme = null;
-		}
-		else
-		{
-			$len = strlen($scheme);
-			switch (true)
-			{
-				case $len > 1:
-					if (!strspn($scheme, 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+-.', 1))
-					{
-						$this->scheme = null;
-						$this->valid[__FUNCTION__] = false;
-						return false;
-					}
-
-				case $len > 0:
-					if (!strspn($scheme, 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz', 0, 1))
-					{
-						$this->scheme = null;
-						$this->valid[__FUNCTION__] = false;
-						return false;
-					}
-			}
-			$this->scheme = strtolower($scheme);
-		}
-		$this->valid[__FUNCTION__] = true;
-		return true;
-	}
-
-	/**
-	 * Set the authority. Returns true on success, false on failure (if there are
-	 * any invalid characters).
-	 *
-	 * @access public
-	 * @param string $authority
-	 * @return bool
-	 */
-	function set_authority($authority)
-	{
-		if (($userinfo_end = strrpos($authority, '@')) !== false)
-		{
-			$userinfo = substr($authority, 0, $userinfo_end);
-			$authority = substr($authority, $userinfo_end + 1);
-		}
-		else
-		{
-			$userinfo = null;
-		}
-
-		if (($port_start = strpos($authority, ':')) !== false)
-		{
-			$port = substr($authority, $port_start + 1);
-			$authority = substr($authority, 0, $port_start);
-		}
-		else
-		{
-			$port = null;
-		}
-
-		return $this->set_userinfo($userinfo) && $this->set_host($authority) && $this->set_port($port);
-	}
-
-	/**
-	 * Set the userinfo.
-	 *
-	 * @access public
-	 * @param string $userinfo
-	 * @return bool
-	 */
-	function set_userinfo($userinfo)
-	{
-		if ($userinfo === null || $userinfo === '')
-		{
-			$this->userinfo = null;
-		}
-		else
-		{
-			$this->userinfo = $this->replace_invalid_with_pct_encoding($userinfo, 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-._~!$&\'()*+,;=:');
-		}
-		$this->valid[__FUNCTION__] = true;
-		return true;
-	}
-
-	/**
-	 * Set the host. Returns true on success, false on failure (if there are
-	 * any invalid characters).
-	 *
-	 * @access public
-	 * @param string $host
-	 * @return bool
-	 */
-	function set_host($host)
-	{
-		if ($host === null || $host === '')
-		{
-			$this->host = null;
-			$this->valid[__FUNCTION__] = true;
-			return true;
-		}
-		elseif ($host[0] === '[' && substr($host, -1) === ']')
-		{
-			if (SimplePie_Net_IPv6::checkIPv6(substr($host, 1, -1)))
-			{
-				$this->host = $host;
-				$this->valid[__FUNCTION__] = true;
-				return true;
-			}
-			else
-			{
-				$this->host = null;
-				$this->valid[__FUNCTION__] = false;
-				return false;
-			}
-		}
-		else
-		{
-			$this->host = $this->replace_invalid_with_pct_encoding($host, 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-._~!$&\'()*+,;=', SIMPLEPIE_LOWERCASE);
-			$this->valid[__FUNCTION__] = true;
-			return true;
-		}
-	}
-
-	/**
-	 * Set the port. Returns true on success, false on failure (if there are
-	 * any invalid characters).
-	 *
-	 * @access public
-	 * @param string $port
-	 * @return bool
-	 */
-	function set_port($port)
-	{
-		if ($port === null || $port === '')
-		{
-			$this->port = null;
-			$this->valid[__FUNCTION__] = true;
-			return true;
-		}
-		elseif (strspn($port, '0123456789') === strlen($port))
-		{
-			$this->port = (int) $port;
-			$this->valid[__FUNCTION__] = true;
-			return true;
-		}
-		else
-		{
-			$this->port = null;
-			$this->valid[__FUNCTION__] = false;
-			return false;
-		}
-	}
-
-	/**
-	 * Set the path.
-	 *
-	 * @access public
-	 * @param string $path
-	 * @return bool
-	 */
-	function set_path($path)
-	{
-		if ($path === null || $path === '')
-		{
-			$this->path = null;
-			$this->valid[__FUNCTION__] = true;
-			return true;
-		}
-		elseif (substr($path, 0, 2) === '//' && $this->userinfo === null && $this->host === null && $this->port === null)
-		{
-			$this->path = null;
-			$this->valid[__FUNCTION__] = false;
-			return false;
-		}
-		else
-		{
-			$this->path = $this->replace_invalid_with_pct_encoding($path, 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-._~!$&\'()*+,;=@/');
-			if ($this->scheme !== null)
-			{
-				$this->path = $this->remove_dot_segments($this->path);
-			}
-			$this->valid[__FUNCTION__] = true;
-			return true;
-		}
-	}
-
-	/**
-	 * Set the query.
-	 *
-	 * @access public
-	 * @param string $query
-	 * @return bool
-	 */
-	function set_query($query)
-	{
-		if ($query === null || $query === '')
-		{
-			$this->query = null;
-		}
-		else
-		{
-			$this->query = $this->replace_invalid_with_pct_encoding($query, 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-._~!$\'()*+,;:@/?&=');
-		}
-		$this->valid[__FUNCTION__] = true;
-		return true;
-	}
-
-	/**
-	 * Set the fragment.
-	 *
-	 * @access public
-	 * @param string $fragment
-	 * @return bool
-	 */
-	function set_fragment($fragment)
-	{
-		if ($fragment === null || $fragment === '')
-		{
-			$this->fragment = null;
-		}
-		else
-		{
-			$this->fragment = $this->replace_invalid_with_pct_encoding($fragment, 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-._~!$&\'()*+,;=:@/?');
-		}
-		$this->valid[__FUNCTION__] = true;
-		return true;
-	}
-
-	/**
-	 * Get the complete IRI
-	 *
-	 * @access public
-	 * @return string
-	 */
-	function get_iri()
-	{
-		$iri = '';
-		if ($this->scheme !== null)
-		{
-			$iri .= $this->scheme . ':';
-		}
-		if (($authority = $this->get_authority()) !== null)
-		{
-			$iri .= '//' . $authority;
-		}
-		if ($this->path !== null)
-		{
-			$iri .= $this->path;
-		}
-		if ($this->query !== null)
-		{
-			$iri .= '?' . $this->query;
-		}
-		if ($this->fragment !== null)
-		{
-			$iri .= '#' . $this->fragment;
-		}
-
-		if ($iri !== '')
-		{
-			return $iri;
-		}
-		else
-		{
-			return null;
-		}
-	}
-
-	/**
-	 * Get the scheme
-	 *
-	 * @access public
-	 * @return string
-	 */
-	function get_scheme()
-	{
-		return $this->scheme;
-	}
-
-	/**
-	 * Get the complete authority
-	 *
-	 * @access public
-	 * @return string
-	 */
-	function get_authority()
-	{
-		$authority = '';
-		if ($this->userinfo !== null)
-		{
-			$authority .= $this->userinfo . '@';
-		}
-		if ($this->host !== null)
-		{
-			$authority .= $this->host;
-		}
-		if ($this->port !== null)
-		{
-			$authority .= ':' . $this->port;
-		}
-
-		if ($authority !== '')
-		{
-			return $authority;
-		}
-		else
-		{
-			return null;
-		}
-	}
-
-	/**
-	 * Get the user information
-	 *
-	 * @access public
-	 * @return string
-	 */
-	function get_userinfo()
-	{
-		return $this->userinfo;
-	}
-
-	/**
-	 * Get the host
-	 *
-	 * @access public
-	 * @return string
-	 */
-	function get_host()
-	{
-		return $this->host;
-	}
-
-	/**
-	 * Get the port
-	 *
-	 * @access public
-	 * @return string
-	 */
-	function get_port()
-	{
-		return $this->port;
-	}
-
-	/**
-	 * Get the path
-	 *
-	 * @access public
-	 * @return string
-	 */
-	function get_path()
-	{
-		return $this->path;
-	}
-
-	/**
-	 * Get the query
-	 *
-	 * @access public
-	 * @return string
-	 */
-	function get_query()
-	{
-		return $this->query;
-	}
-
-	/**
-	 * Get the fragment
-	 *
-	 * @access public
-	 * @return string
-	 */
-	function get_fragment()
-	{
-		return $this->fragment;
-	}
-}
-
-/**
- * Class to validate and to work with IPv6 addresses.
- *
- * @package SimplePie
- * @copyright 2003-2005 The PHP Group
- * @license http://www.opensource.org/licenses/bsd-license.php
- * @link http://pear.php.net/package/Net_IPv6
- * @author Alexander Merz <alexander.merz@web.de>
- * @author elfrink at introweb dot nl
- * @author Josh Peck <jmp at joshpeck dot org>
- * @author Geoffrey Sneddon <geoffers@gmail.com>
- */
-class SimplePie_Net_IPv6
-{
-	/**
-	 * Removes a possible existing netmask specification of an IP address.
-	 *
-	 * @param string $ip the (compressed) IP as Hex representation
-	 * @return string the IP the without netmask
-	 * @since 1.1.0
-	 * @access public
-	 * @static
-	 */
-	function removeNetmaskSpec($ip)
-	{
-		if (strpos($ip, '/') !== false)
-		{
-			list($addr, $nm) = explode('/', $ip);
-		}
-		else
-		{
-			$addr = $ip;
-		}
-		return $addr;
-	}
-
-	/**
-	 * Uncompresses an IPv6 address
-	 *
-	 * RFC 2373 allows you to compress zeros in an address to '::'. This
-	 * function expects an valid IPv6 address and expands the '::' to
-	 * the required zeros.
-	 *
-	 * Example:	 FF01::101	->	FF01:0:0:0:0:0:0:101
-	 *			 ::1		->	0:0:0:0:0:0:0:1
-	 *
-	 * @access public
-	 * @static
-	 * @param string $ip a valid IPv6-address (hex format)
-	 * @return string the uncompressed IPv6-address (hex format)
-	 */
-	function Uncompress($ip)
-	{
-		$uip = SimplePie_Net_IPv6::removeNetmaskSpec($ip);
-		$c1 = -1;
-		$c2 = -1;
-		if (strpos($ip, '::') !== false)
-		{
-			list($ip1, $ip2) = explode('::', $ip);
-			if ($ip1 === '')
-			{
-				$c1 = -1;
-			}
-			else
-			{
-				$pos = 0;
-				if (($pos = substr_count($ip1, ':')) > 0)
-				{
-					$c1 = $pos;
-				}
-				else
-				{
-					$c1 = 0;
-				}
-			}
-			if ($ip2 === '')
-			{
-				$c2 = -1;
-			}
-			else
-			{
-				$pos = 0;
-				if (($pos = substr_count($ip2, ':')) > 0)
-				{
-					$c2 = $pos;
-				}
-				else
-				{
-					$c2 = 0;
-				}
-			}
-			if (strstr($ip2, '.'))
-			{
-				$c2++;
-			}
-			// ::
-			if ($c1 === -1 && $c2 === -1)
-			{
-				$uip = '0:0:0:0:0:0:0:0';
-			}
-			// ::xxx
-			else if ($c1 === -1)
-			{
-				$fill = str_repeat('0:', 7 - $c2);
-				$uip =	str_replace('::', $fill, $uip);
-			}
-			// xxx::
-			else if ($c2 === -1)
-			{
-				$fill = str_repeat(':0', 7 - $c1);
-				$uip =	str_replace('::', $fill, $uip);
-			}
-			// xxx::xxx
-			else
-			{
-				$fill = str_repeat(':0:', 6 - $c2 - $c1);
-				$uip =	str_replace('::', $fill, $uip);
-				$uip =	str_replace('::', ':', $uip);
-			}
-		}
-		return $uip;
-	}
-
-	/**
-	 * Splits an IPv6 address into the IPv6 and a possible IPv4 part
-	 *
-	 * RFC 2373 allows you to note the last two parts of an IPv6 address as
-	 * an IPv4 compatible address
-	 *
-	 * Example:	 0:0:0:0:0:0:13.1.68.3
-	 *			 0:0:0:0:0:FFFF:129.144.52.38
-	 *
-	 * @access public
-	 * @static
-	 * @param string $ip a valid IPv6-address (hex format)
-	 * @return array [0] contains the IPv6 part, [1] the IPv4 part (hex format)
-	 */
-	function SplitV64($ip)
-	{
-		$ip = SimplePie_Net_IPv6::Uncompress($ip);
-		if (strstr($ip, '.'))
-		{
-			$pos = strrpos($ip, ':');
-			$ip[$pos] = '_';
-			$ipPart = explode('_', $ip);
-			return $ipPart;
-		}
-		else
-		{
-			return array($ip, '');
-		}
-	}
-
-	/**
-	 * Checks an IPv6 address
-	 *
-	 * Checks if the given IP is IPv6-compatible
-	 *
-	 * @access public
-	 * @static
-	 * @param string $ip a valid IPv6-address
-	 * @return bool true if $ip is an IPv6 address
-	 */
-	function checkIPv6($ip)
-	{
-		$ipPart = SimplePie_Net_IPv6::SplitV64($ip);
-		$count = 0;
-		if (!empty($ipPart[0]))
-		{
-			$ipv6 = explode(':', $ipPart[0]);
-			for ($i = 0; $i < count($ipv6); $i++)
-			{
-				$dec = hexdec($ipv6[$i]);
-				$hex = strtoupper(preg_replace('/^[0]{1,3}(.*[0-9a-fA-F])$/', '\\1', $ipv6[$i]));
-				if ($ipv6[$i] >= 0 && $dec <= 65535 && $hex === strtoupper(dechex($dec)))
-				{
-					$count++;
-				}
-			}
-			if ($count === 8)
-			{
-				return true;
-			}
-			elseif ($count === 6 && !empty($ipPart[1]))
-			{
-				$ipv4 = explode('.', $ipPart[1]);
-				$count = 0;
-				foreach ($ipv4 as $ipv4_part)
-				{
-					if ($ipv4_part >= 0 && $ipv4_part <= 255 && preg_match('/^\d{1,3}$/', $ipv4_part))
-					{
-						$count++;
-					}
-				}
-				if ($count === 4)
-				{
-					return true;
-				}
-			}
-			else
-			{
-				return false;
-			}
-
-		}
-		else
-		{
-			return false;
-		}
-	}
-}
-
-/**
- * Date Parser
- *
- * @package SimplePie
- */
-class SimplePie_Parse_Date
-{
-	/**
-	 * Input data
-	 *
-	 * @access protected
-	 * @var string
-	 */
-	var $date;
-
-	/**
-	 * List of days, calendar day name => ordinal day number in the week
-	 *
-	 * @access protected
-	 * @var array
-	 */
-	var $day = array(
-		// English
-		'mon' => 1,
-		'monday' => 1,
-		'tue' => 2,
-		'tuesday' => 2,
-		'wed' => 3,
-		'wednesday' => 3,
-		'thu' => 4,
-		'thursday' => 4,
-		'fri' => 5,
-		'friday' => 5,
-		'sat' => 6,
-		'saturday' => 6,
-		'sun' => 7,
-		'sunday' => 7,
-		// Dutch
-		'maandag' => 1,
-		'dinsdag' => 2,
-		'woensdag' => 3,
-		'donderdag' => 4,
-		'vrijdag' => 5,
-		'zaterdag' => 6,
-		'zondag' => 7,
-		// French
-		'lundi' => 1,
-		'mardi' => 2,
-		'mercredi' => 3,
-		'jeudi' => 4,
-		'vendredi' => 5,
-		'samedi' => 6,
-		'dimanche' => 7,
-		// German
-		'montag' => 1,
-		'dienstag' => 2,
-		'mittwoch' => 3,
-		'donnerstag' => 4,
-		'freitag' => 5,
-		'samstag' => 6,
-		'sonnabend' => 6,
-		'sonntag' => 7,
-		// Italian
-		'lunedì' => 1,
-		'martedì' => 2,
-		'mercoledì' => 3,
-		'giovedì' => 4,
-		'venerdì' => 5,
-		'sabato' => 6,
-		'domenica' => 7,
-		// Spanish
-		'lunes' => 1,
-		'martes' => 2,
-		'miércoles' => 3,
-		'jueves' => 4,
-		'viernes' => 5,
-		'sábado' => 6,
-		'domingo' => 7,
-		// Finnish
-		'maanantai' => 1,
-		'tiistai' => 2,
-		'keskiviikko' => 3,
-		'torstai' => 4,
-		'perjantai' => 5,
-		'lauantai' => 6,
-		'sunnuntai' => 7,
-		// Hungarian
-		'hétfő' => 1,
-		'kedd' => 2,
-		'szerda' => 3,
-		'csütörtok' => 4,
-		'péntek' => 5,
-		'szombat' => 6,
-		'vasárnap' => 7,
-		// Greek
-		'Δευ' => 1,
-		'ΤÏι' => 2,
-		'Τετ' => 3,
-		'Πεμ' => 4,
-		'ΠαÏ' => 5,
-		'Σαβ' => 6,
-		'ΚυÏ' => 7,
-	);
-
-	/**
-	 * List of months, calendar month name => calendar month number
-	 *
-	 * @access protected
-	 * @var array
-	 */
-	var $month = array(
-		// English
-		'jan' => 1,
-		'january' => 1,
-		'feb' => 2,
-		'february' => 2,
-		'mar' => 3,
-		'march' => 3,
-		'apr' => 4,
-		'april' => 4,
-		'may' => 5,
-		// No long form of May
-		'jun' => 6,
-		'june' => 6,
-		'jul' => 7,
-		'july' => 7,
-		'aug' => 8,
-		'august' => 8,
-		'sep' => 9,
-		'september' => 8,
-		'oct' => 10,
-		'october' => 10,
-		'nov' => 11,
-		'november' => 11,
-		'dec' => 12,
-		'december' => 12,
-		// Dutch
-		'januari' => 1,
-		'februari' => 2,
-		'maart' => 3,
-		'april' => 4,
-		'mei' => 5,
-		'juni' => 6,
-		'juli' => 7,
-		'augustus' => 8,
-		'september' => 9,
-		'oktober' => 10,
-		'november' => 11,
-		'december' => 12,
-		// French
-		'janvier' => 1,
-		'février' => 2,
-		'mars' => 3,
-		'avril' => 4,
-		'mai' => 5,
-		'juin' => 6,
-		'juillet' => 7,
-		'août' => 8,
-		'septembre' => 9,
-		'octobre' => 10,
-		'novembre' => 11,
-		'décembre' => 12,
-		// German
-		'januar' => 1,
-		'februar' => 2,
-		'märz' => 3,
-		'april' => 4,
-		'mai' => 5,
-		'juni' => 6,
-		'juli' => 7,
-		'august' => 8,
-		'september' => 9,
-		'oktober' => 10,
-		'november' => 11,
-		'dezember' => 12,
-		// Italian
-		'gennaio' => 1,
-		'febbraio' => 2,
-		'marzo' => 3,
-		'aprile' => 4,
-		'maggio' => 5,
-		'giugno' => 6,
-		'luglio' => 7,
-		'agosto' => 8,
-		'settembre' => 9,
-		'ottobre' => 10,
-		'novembre' => 11,
-		'dicembre' => 12,
-		// Spanish
-		'enero' => 1,
-		'febrero' => 2,
-		'marzo' => 3,
-		'abril' => 4,
-		'mayo' => 5,
-		'junio' => 6,
-		'julio' => 7,
-		'agosto' => 8,
-		'septiembre' => 9,
-		'setiembre' => 9,
-		'octubre' => 10,
-		'noviembre' => 11,
-		'diciembre' => 12,
-		// Finnish
-		'tammikuu' => 1,
-		'helmikuu' => 2,
-		'maaliskuu' => 3,
-		'huhtikuu' => 4,
-		'toukokuu' => 5,
-		'kesäkuu' => 6,
-		'heinäkuu' => 7,
-		'elokuu' => 8,
-		'suuskuu' => 9,
-		'lokakuu' => 10,
-		'marras' => 11,
-		'joulukuu' => 12,
-		// Hungarian
-		'január' => 1,
-		'február' => 2,
-		'március' => 3,
-		'április' => 4,
-		'május' => 5,
-		'június' => 6,
-		'július' => 7,
-		'augusztus' => 8,
-		'szeptember' => 9,
-		'október' => 10,
-		'november' => 11,
-		'december' => 12,
-		// Greek
-		'Ιαν' => 1,
-		'Φεβ' => 2,
-		'Μάώ' => 3,
-		'Μαώ' => 3,
-		'ΑπÏ' => 4,
-		'Μάι' => 5,
-		'Μαϊ' => 5,
-		'Μαι' => 5,
-		'ΙοÏν' => 6,
-		'Ιον' => 6,
-		'ΙοÏλ' => 7,
-		'Ιολ' => 7,
-		'ΑÏγ' => 8,
-		'Αυγ' => 8,
-		'Σεπ' => 9,
-		'Οκτ' => 10,
-		'Îοέ' => 11,
-		'Δεκ' => 12,
-	);
-
-	/**
-	 * List of timezones, abbreviation => offset from UTC
-	 *
-	 * @access protected
-	 * @var array
-	 */
-	var $timezone = array(
-		'ACDT' => 37800,
-		'ACIT' => 28800,
-		'ACST' => 34200,
-		'ACT' => -18000,
-		'ACWDT' => 35100,
-		'ACWST' => 31500,
-		'AEDT' => 39600,
-		'AEST' => 36000,
-		'AFT' => 16200,
-		'AKDT' => -28800,
-		'AKST' => -32400,
-		'AMDT' => 18000,
-		'AMT' => -14400,
-		'ANAST' => 46800,
-		'ANAT' => 43200,
-		'ART' => -10800,
-		'AZOST' => -3600,
-		'AZST' => 18000,
-		'AZT' => 14400,
-		'BIOT' => 21600,
-		'BIT' => -43200,
-		'BOT' => -14400,
-		'BRST' => -7200,
-		'BRT' => -10800,
-		'BST' => 3600,
-		'BTT' => 21600,
-		'CAST' => 18000,
-		'CAT' => 7200,
-		'CCT' => 23400,
-		'CDT' => -18000,
-		'CEDT' => 7200,
-		'CET' => 3600,
-		'CGST' => -7200,
-		'CGT' => -10800,
-		'CHADT' => 49500,
-		'CHAST' => 45900,
-		'CIST' => -28800,
-		'CKT' => -36000,
-		'CLDT' => -10800,
-		'CLST' => -14400,
-		'COT' => -18000,
-		'CST' => -21600,
-		'CVT' => -3600,
-		'CXT' => 25200,
-		'DAVT' => 25200,
-		'DTAT' => 36000,
-		'EADT' => -18000,
-		'EAST' => -21600,
-		'EAT' => 10800,
-		'ECT' => -18000,
-		'EDT' => -14400,
-		'EEST' => 10800,
-		'EET' => 7200,
-		'EGT' => -3600,
-		'EKST' => 21600,
-		'EST' => -18000,
-		'FJT' => 43200,
-		'FKDT' => -10800,
-		'FKST' => -14400,
-		'FNT' => -7200,
-		'GALT' => -21600,
-		'GEDT' => 14400,
-		'GEST' => 10800,
-		'GFT' => -10800,
-		'GILT' => 43200,
-		'GIT' => -32400,
-		'GST' => 14400,
-		'GST' => -7200,
-		'GYT' => -14400,
-		'HAA' => -10800,
-		'HAC' => -18000,
-		'HADT' => -32400,
-		'HAE' => -14400,
-		'HAP' => -25200,
-		'HAR' => -21600,
-		'HAST' => -36000,
-		'HAT' => -9000,
-		'HAY' => -28800,
-		'HKST' => 28800,
-		'HMT' => 18000,
-		'HNA' => -14400,
-		'HNC' => -21600,
-		'HNE' => -18000,
-		'HNP' => -28800,
-		'HNR' => -25200,
-		'HNT' => -12600,
-		'HNY' => -32400,
-		'IRDT' => 16200,
-		'IRKST' => 32400,
-		'IRKT' => 28800,
-		'IRST' => 12600,
-		'JFDT' => -10800,
-		'JFST' => -14400,
-		'JST' => 32400,
-		'KGST' => 21600,
-		'KGT' => 18000,
-		'KOST' => 39600,
-		'KOVST' => 28800,
-		'KOVT' => 25200,
-		'KRAST' => 28800,
-		'KRAT' => 25200,
-		'KST' => 32400,
-		'LHDT' => 39600,
-		'LHST' => 37800,
-		'LINT' => 50400,
-		'LKT' => 21600,
-		'MAGST' => 43200,
-		'MAGT' => 39600,
-		'MAWT' => 21600,
-		'MDT' => -21600,
-		'MESZ' => 7200,
-		'MEZ' => 3600,
-		'MHT' => 43200,
-		'MIT' => -34200,
-		'MNST' => 32400,
-		'MSDT' => 14400,
-		'MSST' => 10800,
-		'MST' => -25200,
-		'MUT' => 14400,
-		'MVT' => 18000,
-		'MYT' => 28800,
-		'NCT' => 39600,
-		'NDT' => -9000,
-		'NFT' => 41400,
-		'NMIT' => 36000,
-		'NOVST' => 25200,
-		'NOVT' => 21600,
-		'NPT' => 20700,
-		'NRT' => 43200,
-		'NST' => -12600,
-		'NUT' => -39600,
-		'NZDT' => 46800,
-		'NZST' => 43200,
-		'OMSST' => 25200,
-		'OMST' => 21600,
-		'PDT' => -25200,
-		'PET' => -18000,
-		'PETST' => 46800,
-		'PETT' => 43200,
-		'PGT' => 36000,
-		'PHOT' => 46800,
-		'PHT' => 28800,
-		'PKT' => 18000,
-		'PMDT' => -7200,
-		'PMST' => -10800,
-		'PONT' => 39600,
-		'PST' => -28800,
-		'PWT' => 32400,
-		'PYST' => -10800,
-		'PYT' => -14400,
-		'RET' => 14400,
-		'ROTT' => -10800,
-		'SAMST' => 18000,
-		'SAMT' => 14400,
-		'SAST' => 7200,
-		'SBT' => 39600,
-		'SCDT' => 46800,
-		'SCST' => 43200,
-		'SCT' => 14400,
-		'SEST' => 3600,
-		'SGT' => 28800,
-		'SIT' => 28800,
-		'SRT' => -10800,
-		'SST' => -39600,
-		'SYST' => 10800,
-		'SYT' => 7200,
-		'TFT' => 18000,
-		'THAT' => -36000,
-		'TJT' => 18000,
-		'TKT' => -36000,
-		'TMT' => 18000,
-		'TOT' => 46800,
-		'TPT' => 32400,
-		'TRUT' => 36000,
-		'TVT' => 43200,
-		'TWT' => 28800,
-		'UYST' => -7200,
-		'UYT' => -10800,
-		'UZT' => 18000,
-		'VET' => -14400,
-		'VLAST' => 39600,
-		'VLAT' => 36000,
-		'VOST' => 21600,
-		'VUT' => 39600,
-		'WAST' => 7200,
-		'WAT' => 3600,
-		'WDT' => 32400,
-		'WEST' => 3600,
-		'WFT' => 43200,
-		'WIB' => 25200,
-		'WIT' => 32400,
-		'WITA' => 28800,
-		'WKST' => 18000,
-		'WST' => 28800,
-		'YAKST' => 36000,
-		'YAKT' => 32400,
-		'YAPT' => 36000,
-		'YEKST' => 21600,
-		'YEKT' => 18000,
-	);
-
-	/**
-	 * Cached PCRE for SimplePie_Parse_Date::$day
-	 *
-	 * @access protected
-	 * @var string
-	 */
-	var $day_pcre;
-
-	/**
-	 * Cached PCRE for SimplePie_Parse_Date::$month
-	 *
-	 * @access protected
-	 * @var string
-	 */
-	var $month_pcre;
-
-	/**
-	 * Array of user-added callback methods
-	 *
-	 * @access private
-	 * @var array
-	 */
-	var $built_in = array();
-
-	/**
-	 * Array of user-added callback methods
-	 *
-	 * @access private
-	 * @var array
-	 */
-	var $user = array();
-
-	/**
-	 * Create new SimplePie_Parse_Date object, and set self::day_pcre,
-	 * self::month_pcre, and self::built_in
-	 *
-	 * @access private
-	 */
-	function SimplePie_Parse_Date()
-	{
-		$this->day_pcre = '(' . implode(array_keys($this->day), '|') . ')';
-		$this->month_pcre = '(' . implode(array_keys($this->month), '|') . ')';
-
-		static $cache;
-		if (!isset($cache[get_class($this)]))
-		{
-			$all_methods = get_class_methods($this);
-
-			foreach ($all_methods as $method)
-			{
-				if (strtolower(substr($method, 0, 5)) === 'date_')
-				{
-					$cache[get_class($this)][] = $method;
-				}
-			}
-		}
-
-		foreach ($cache[get_class($this)] as $method)
-		{
-			$this->built_in[] = $method;
-		}
-	}
-
-	/**
-	 * Get the object
-	 *
-	 * @access public
-	 */
-	function get()
-	{
-		static $object;
-		if (!$object)
-		{
-			$object =& new SimplePie_Parse_Date;
-		}
-		return $object;
-	}
-
-	/**
-	 * Parse a date
-	 *
-	 * @final
-	 * @access public
-	 * @param string $date Date to parse
-	 * @return int Timestamp corresponding to date string, or false on failure
-	 */
-	function parse($date)
-	{
-		foreach ($this->user as $method)
-		{
-			if (($returned = call_user_func($method, $date)) !== false)
-			{
-				return $returned;
-			}
-		}
-
-		foreach ($this->built_in as $method)
-		{
-			if (($returned = call_user_func(array(&$this, $method), $date)) !== false)
-			{
-				return $returned;
-			}
-		}
-
-		return false;
-	}
-
-	/**
-	 * Add a callback method to parse a date
-	 *
-	 * @final
-	 * @access public
-	 * @param callback $callback
-	 */
-	function add_callback($callback)
-	{
-		if (is_callable($callback))
-		{
-			$this->user[] = $callback;
-		}
-		else
-		{
-			trigger_error('User-supplied function must be a valid callback', E_USER_WARNING);
-		}
-	}
-
-	/**
-	 * Parse a superset of W3C-DTF (allows hyphens and colons to be omitted, as
-	 * well as allowing any of upper or lower case "T", horizontal tabs, or
-	 * spaces to be used as the time seperator (including more than one))
-	 *
-	 * @access protected
-	 * @return int Timestamp
-	 */
-	function date_w3cdtf($date)
-	{
-		static $pcre;
-		if (!$pcre)
-		{
-			$year = '([0-9]{4})';
-			$month = $day = $hour = $minute = $second = '([0-9]{2})';
-			$decimal = '([0-9]*)';
-			$zone = '(?:(Z)|([+\-])([0-9]{1,2}):?([0-9]{1,2}))';
-			$pcre = '/^' . $year . '(?:-?' . $month . '(?:-?' . $day . '(?:[Tt\x09\x20]+' . $hour . '(?::?' . $minute . '(?::?' . $second . '(?:.' . $decimal . ')?)?)?' . $zone . ')?)?)?$/';
-		}
-		if (preg_match($pcre, $date, $match))
-		{
-			/*
-			Capturing subpatterns:
-			1: Year
-			2: Month
-			3: Day
-			4: Hour
-			5: Minute
-			6: Second
-			7: Decimal fraction of a second
-			8: Zulu
-			9: Timezone ±
-			10: Timezone hours
-			11: Timezone minutes
-			*/
-
-			// Fill in empty matches
-			for ($i = count($match); $i <= 3; $i++)
-			{
-				$match[$i] = '1';
-			}
-
-			for ($i = count($match); $i <= 7; $i++)
-			{
-				$match[$i] = '0';
-			}
-
-			// Numeric timezone
-			if (isset($match[9]) && $match[9] !== '')
-			{
-				$timezone = $match[10] * 3600;
-				$timezone += $match[11] * 60;
-				if ($match[9] === '-')
-				{
-					$timezone = 0 - $timezone;
-				}
-			}
-			else
-			{
-				$timezone = 0;
-			}
-
-			// Convert the number of seconds to an integer, taking decimals into account
-			$second = round($match[6] + $match[7] / pow(10, strlen($match[7])));
-
-			return gmmktime($match[4], $match[5], $second, $match[2], $match[3], $match[1]) - $timezone;
-		}
-		else
-		{
-			return false;
-		}
-	}
-
-	/**
-	 * Remove RFC822 comments
-	 *
-	 * @access protected
-	 * @param string $data Data to strip comments from
-	 * @return string Comment stripped string
-	 */
-	function remove_rfc2822_comments($string)
-	{
-		$string = (string) $string;
-		$position = 0;
-		$length = strlen($string);
-		$depth = 0;
-
-		$output = '';
-
-		while ($position < $length && ($pos = strpos($string, '(', $position)) !== false)
-		{
-			$output .= substr($string, $position, $pos - $position);
-			$position = $pos + 1;
-			if ($string[$pos - 1] !== '\\')
-			{
-				$depth++;
-				while ($depth && $position < $length)
-				{
-					$position += strcspn($string, '()', $position);
-					if ($string[$position - 1] === '\\')
-					{
-						$position++;
-						continue;
-					}
-					elseif (isset($string[$position]))
-					{
-						switch ($string[$position])
-						{
-							case '(':
-								$depth++;
-								break;
-
-							case ')':
-								$depth--;
-								break;
-						}
-						$position++;
-					}
-					else
-					{
-						break;
-					}
-				}
-			}
-			else
-			{
-				$output .= '(';
-			}
-		}
-		$output .= substr($string, $position);
-
-		return $output;
-	}
-
-	/**
-	 * Parse RFC2822's date format
-	 *
-	 * @access protected
-	 * @return int Timestamp
-	 */
-	function date_rfc2822($date)
-	{
-		static $pcre;
-		if (!$pcre)
-		{
-			$wsp = '[\x09\x20]';
-			$fws = '(?:' . $wsp . '+|' . $wsp . '*(?:\x0D\x0A' . $wsp . '+)+)';
-			$optional_fws = $fws . '?';
-			$day_name = $this->day_pcre;
-			$month = $this->month_pcre;
-			$day = '([0-9]{1,2})';
-			$hour = $minute = $second = '([0-9]{2})';
-			$year = '([0-9]{2,4})';
-			$num_zone = '([+\-])([0-9]{2})([0-9]{2})';
-			$character_zone = '([A-Z]{1,5})';
-			$zone = '(?:' . $num_zone . '|' . $character_zone . ')';
-			$pcre = '/(?:' . $optional_fws . $day_name . $optional_fws . ',)?' . $optional_fws . $day . $fws . $month . $fws . $year . $fws . $hour . $optional_fws . ':' . $optional_fws . $minute . '(?:' . $optional_fws . ':' . $optional_fws . $second . ')?' . $fws . $zone . '/i';
-		}
-		if (preg_match($pcre, $this->remove_rfc2822_comments($date), $match))
-		{
-			/*
-			Capturing subpatterns:
-			1: Day name
-			2: Day
-			3: Month
-			4: Year
-			5: Hour
-			6: Minute
-			7: Second
-			8: Timezone ±
-			9: Timezone hours
-			10: Timezone minutes
-			11: Alphabetic timezone
-			*/
-
-			// Find the month number
-			$month = $this->month[strtolower($match[3])];
-
-			// Numeric timezone
-			if ($match[8] !== '')
-			{
-				$timezone = $match[9] * 3600;
-				$timezone += $match[10] * 60;
-				if ($match[8] === '-')
-				{
-					$timezone = 0 - $timezone;
-				}
-			}
-			// Character timezone
-			elseif (isset($this->timezone[strtoupper($match[11])]))
-			{
-				$timezone = $this->timezone[strtoupper($match[11])];
-			}
-			// Assume everything else to be -0000
-			else
-			{
-				$timezone = 0;
-			}
-
-			// Deal with 2/3 digit years
-			if ($match[4] < 50)
-			{
-				$match[4] += 2000;
-			}
-			elseif ($match[4] < 1000)
-			{
-				$match[4] += 1900;
-			}
-
-			// Second is optional, if it is empty set it to zero
-			if ($match[7] !== '')
-			{
-				$second = $match[7];
-			}
-			else
-			{
-				$second = 0;
-			}
-
-			return gmmktime($match[5], $match[6], $second, $month, $match[2], $match[4]) - $timezone;
-		}
-		else
-		{
-			return false;
-		}
-	}
-
-	/**
-	 * Parse RFC850's date format
-	 *
-	 * @access protected
-	 * @return int Timestamp
-	 */
-	function date_rfc850($date)
-	{
-		static $pcre;
-		if (!$pcre)
-		{
-			$space = '[\x09\x20]+';
-			$day_name = $this->day_pcre;
-			$month = $this->month_pcre;
-			$day = '([0-9]{1,2})';
-			$year = $hour = $minute = $second = '([0-9]{2})';
-			$zone = '([A-Z]{1,5})';
-			$pcre = '/^' . $day_name . ',' . $space . $day . '-' . $month . '-' . $year . $space . $hour . ':' . $minute . ':' . $second . $space . $zone . '$/i';
-		}
-		if (preg_match($pcre, $date, $match))
-		{
-			/*
-			Capturing subpatterns:
-			1: Day name
-			2: Day
-			3: Month
-			4: Year
-			5: Hour
-			6: Minute
-			7: Second
-			8: Timezone
-			*/
-
-			// Month
-			$month = $this->month[strtolower($match[3])];
-
-			// Character timezone
-			if (isset($this->timezone[strtoupper($match[8])]))
-			{
-				$timezone = $this->timezone[strtoupper($match[8])];
-			}
-			// Assume everything else to be -0000
-			else
-			{
-				$timezone = 0;
-			}
-
-			// Deal with 2 digit year
-			if ($match[4] < 50)
-			{
-				$match[4] += 2000;
-			}
-			else
-			{
-				$match[4] += 1900;
-			}
-
-			return gmmktime($match[5], $match[6], $match[7], $month, $match[2], $match[4]) - $timezone;
-		}
-		else
-		{
-			return false;
-		}
-	}
-
-	/**
-	 * Parse C99's asctime()'s date format
-	 *
-	 * @access protected
-	 * @return int Timestamp
-	 */
-	function date_asctime($date)
-	{
-		static $pcre;
-		if (!$pcre)
-		{
-			$space = '[\x09\x20]+';
-			$wday_name = $this->day_pcre;
-			$mon_name = $this->month_pcre;
-			$day = '([0-9]{1,2})';
-			$hour = $sec = $min = '([0-9]{2})';
-			$year = '([0-9]{4})';
-			$terminator = '\x0A?\x00?';
-			$pcre = '/^' . $wday_name . $space . $mon_name . $space . $day . $space . $hour . ':' . $min . ':' . $sec . $space . $year . $terminator . '$/i';
-		}
-		if (preg_match($pcre, $date, $match))
-		{
-			/*
-			Capturing subpatterns:
-			1: Day name
-			2: Month
-			3: Day
-			4: Hour
-			5: Minute
-			6: Second
-			7: Year
-			*/
-
-			$month = $this->month[strtolower($match[2])];
-			return gmmktime($match[4], $match[5], $match[6], $month, $match[3], $match[7]);
-		}
-		else
-		{
-			return false;
-		}
-	}
-
-	/**
-	 * Parse dates using strtotime()
-	 *
-	 * @access protected
-	 * @return int Timestamp
-	 */
-	function date_strtotime($date)
-	{
-		$strtotime = strtotime($date);
-		if ($strtotime === -1 || $strtotime === false)
-		{
-			return false;
-		}
-		else
-		{
-			return $strtotime;
-		}
-	}
-}
-
-/**
- * Content-type sniffing
- *
- * @package SimplePie
- */
-class SimplePie_Content_Type_Sniffer
-{
-	/**
-	 * File object
-	 *
-	 * @var SimplePie_File
-	 * @access private
-	 */
-	var $file;
-
-	/**
-	 * Create an instance of the class with the input file
-	 *
-	 * @access public
-	 * @param SimplePie_Content_Type_Sniffer $file Input file
-	 */
-	function SimplePie_Content_Type_Sniffer($file)
-	{
-		$this->file = $file;
-	}
-
-	/**
-	 * Get the Content-Type of the specified file
-	 *
-	 * @access public
-	 * @return string Actual Content-Type
-	 */
-	function get_type()
-	{
-		if (isset($this->file->headers['content-type']))
-		{
-			if (!isset($this->file->headers['content-encoding'])
-				&& ($this->file->headers['content-type'] === 'text/plain'
-					|| $this->file->headers['content-type'] === 'text/plain; charset=ISO-8859-1'
-					|| $this->file->headers['content-type'] === 'text/plain; charset=iso-8859-1'))
-			{
-				return $this->text_or_binary();
-			}
-
-			if (($pos = strpos($this->file->headers['content-type'], ';')) !== false)
-			{
-				$official = substr($this->file->headers['content-type'], 0, $pos);
-			}
-			else
-			{
-				$official = $this->file->headers['content-type'];
-			}
-			$official = strtolower($official);
-
-			if ($official === 'unknown/unknown'
-				|| $official === 'application/unknown')
-			{
-				return $this->unknown();
-			}
-			elseif (substr($official, -4) === '+xml'
-				|| $official === 'text/xml'
-				|| $official === 'application/xml')
-			{
-				return $official;
-			}
-			elseif (substr($official, 0, 6) === 'image/')
-			{
-				if ($return = $this->image())
-				{
-					return $return;
-				}
-				else
-				{
-					return $official;
-				}
-			}
-			elseif ($official === 'text/html')
-			{
-				return $this->feed_or_html();
-			}
-			else
-			{
-				return $official;
-			}
-		}
-		else
-		{
-			return $this->unknown();
-		}
-	}
-
-	/**
-	 * Sniff text or binary
-	 *
-	 * @access private
-	 * @return string Actual Content-Type
-	 */
-	function text_or_binary()
-	{
-		if (substr($this->file->body, 0, 2) === "\xFE\xFF"
-			|| substr($this->file->body, 0, 2) === "\xFF\xFE"
-			|| substr($this->file->body, 0, 4) === "\x00\x00\xFE\xFF"
-			|| substr($this->file->body, 0, 3) === "\xEF\xBB\xBF")
-		{
-			return 'text/plain';
-		}
-		elseif (preg_match('/[\x00-\x08\x0E-\x1A\x1C-\x1F]/', $this->file->body))
-		{
-			return 'application/octect-stream';
-		}
-		else
-		{
-			return 'text/plain';
-		}
-	}
-
-	/**
-	 * Sniff unknown
-	 *
-	 * @access private
-	 * @return string Actual Content-Type
-	 */
-	function unknown()
-	{
-		$ws = strspn($this->file->body, "\x09\x0A\x0B\x0C\x0D\x20");
-		if (strtolower(substr($this->file->body, $ws, 14)) === '<!doctype html'
-			|| strtolower(substr($this->file->body, $ws, 5)) === '<html'
-			|| strtolower(substr($this->file->body, $ws, 7)) === '<script')
-		{
-			return 'text/html';
-		}
-		elseif (substr($this->file->body, 0, 5) === '%PDF-')
-		{
-			return 'application/pdf';
-		}
-		elseif (substr($this->file->body, 0, 11) === '%!PS-Adobe-')
-		{
-			return 'application/postscript';
-		}
-		elseif (substr($this->file->body, 0, 6) === 'GIF87a'
-			|| substr($this->file->body, 0, 6) === 'GIF89a')
-		{
-			return 'image/gif';
-		}
-		elseif (substr($this->file->body, 0, 8) === "\x89\x50\x4E\x47\x0D\x0A\x1A\x0A")
-		{
-			return 'image/png';
-		}
-		elseif (substr($this->file->body, 0, 3) === "\xFF\xD8\xFF")
-		{
-			return 'image/jpeg';
-		}
-		elseif (substr($this->file->body, 0, 2) === "\x42\x4D")
-		{
-			return 'image/bmp';
-		}
-		else
-		{
-			return $this->text_or_binary();
-		}
-	}
-
-	/**
-	 * Sniff images
-	 *
-	 * @access private
-	 * @return string Actual Content-Type
-	 */
-	function image()
-	{
-		if (substr($this->file->body, 0, 6) === 'GIF87a'
-			|| substr($this->file->body, 0, 6) === 'GIF89a')
-		{
-			return 'image/gif';
-		}
-		elseif (substr($this->file->body, 0, 8) === "\x89\x50\x4E\x47\x0D\x0A\x1A\x0A")
-		{
-			return 'image/png';
-		}
-		elseif (substr($this->file->body, 0, 3) === "\xFF\xD8\xFF")
-		{
-			return 'image/jpeg';
-		}
-		elseif (substr($this->file->body, 0, 2) === "\x42\x4D")
-		{
-			return 'image/bmp';
-		}
-		else
-		{
-			return false;
-		}
-	}
-
-	/**
-	 * Sniff HTML
-	 *
-	 * @access private
-	 * @return string Actual Content-Type
-	 */
-	function feed_or_html()
-	{
-		$len = strlen($this->file->body);
-		$pos = strspn($this->file->body, "\x09\x0A\x0D\x20");
-
-		while ($pos < $len)
-		{
-			switch ($this->file->body[$pos])
-			{
-				case "\x09":
-				case "\x0A":
-				case "\x0D":
-				case "\x20":
-					$pos += strspn($this->file->body, "\x09\x0A\x0D\x20", $pos);
-					continue 2;
-
-				case '<':
-					$pos++;
-					break;
-
-				default:
-					return 'text/html';
-			}
-
-			if (substr($this->file->body, $pos, 3) === '!--')
-			{
-				$pos += 3;
-				if ($pos < $len && ($pos = strpos($this->file->body, '-->', $pos)) !== false)
-				{
-					$pos += 3;
-				}
-				else
-				{
-					return 'text/html';
-				}
-			}
-			elseif (substr($this->file->body, $pos, 1) === '!')
-			{
-				if ($pos < $len && ($pos = strpos($this->file->body, '>', $pos)) !== false)
-				{
-					$pos++;
-				}
-				else
-				{
-					return 'text/html';
-				}
-			}
-			elseif (substr($this->file->body, $pos, 1) === '?')
-			{
-				if ($pos < $len && ($pos = strpos($this->file->body, '?>', $pos)) !== false)
-				{
-					$pos += 2;
-				}
-				else
-				{
-					return 'text/html';
-				}
-			}
-			elseif (substr($this->file->body, $pos, 3) === 'rss'
-				|| substr($this->file->body, $pos, 7) === 'rdf:RDF')
-			{
-				return 'application/rss+xml';
-			}
-			elseif (substr($this->file->body, $pos, 4) === 'feed')
-			{
-				return 'application/atom+xml';
-			}
-			else
-			{
-				return 'text/html';
-			}
-		}
-
-		return 'text/html';
-	}
-}
-
-/**
- * Parses the XML Declaration
- *
- * @package SimplePie
- */
-class SimplePie_XML_Declaration_Parser
-{
-	/**
-	 * XML Version
-	 *
-	 * @access public
-	 * @var string
-	 */
-	var $version = '1.0';
-
-	/**
-	 * Encoding
-	 *
-	 * @access public
-	 * @var string
-	 */
-	var $encoding = 'UTF-8';
-
-	/**
-	 * Standalone
-	 *
-	 * @access public
-	 * @var bool
-	 */
-	var $standalone = false;
-
-	/**
-	 * Current state of the state machine
-	 *
-	 * @access private
-	 * @var string
-	 */
-	var $state = 'before_version_name';
-
-	/**
-	 * Input data
-	 *
-	 * @access private
-	 * @var string
-	 */
-	var $data = '';
-
-	/**
-	 * Input data length (to avoid calling strlen() everytime this is needed)
-	 *
-	 * @access private
-	 * @var int
-	 */
-	var $data_length = 0;
-
-	/**
-	 * Current position of the pointer
-	 *
-	 * @var int
-	 * @access private
-	 */
-	var $position = 0;
-
-	/**
-	 * Create an instance of the class with the input data
-	 *
-	 * @access public
-	 * @param string $data Input data
-	 */
-	function SimplePie_XML_Declaration_Parser($data)
-	{
-		$this->data = $data;
-		$this->data_length = strlen($this->data);
-	}
-
-	/**
-	 * Parse the input data
-	 *
-	 * @access public
-	 * @return bool true on success, false on failure
-	 */
-	function parse()
-	{
-		while ($this->state && $this->state !== 'emit' && $this->has_data())
-		{
-			$state = $this->state;
-			$this->$state();
-		}
-		$this->data = '';
-		if ($this->state === 'emit')
-		{
-			return true;
-		}
-		else
-		{
-			$this->version = '';
-			$this->encoding = '';
-			$this->standalone = '';
-			return false;
-		}
-	}
-
-	/**
-	 * Check whether there is data beyond the pointer
-	 *
-	 * @access private
-	 * @return bool true if there is further data, false if not
-	 */
-	function has_data()
-	{
-		return (bool) ($this->position < $this->data_length);
-	}
-
-	/**
-	 * Advance past any whitespace
-	 *
-	 * @return int Number of whitespace characters passed
-	 */
-	function skip_whitespace()
-	{
-		$whitespace = strspn($this->data, "\x09\x0A\x0D\x20", $this->position);
-		$this->position += $whitespace;
-		return $whitespace;
-	}
-
-	/**
-	 * Read value
-	 */
-	function get_value()
-	{
-		$quote = substr($this->data, $this->position, 1);
-		if ($quote === '"' || $quote === "'")
-		{
-			$this->position++;
-			$len = strcspn($this->data, $quote, $this->position);
-			if ($this->has_data())
-			{
-				$value = substr($this->data, $this->position, $len);
-				$this->position += $len + 1;
-				return $value;
-			}
-		}
-		return false;
-	}
-
-	function before_version_name()
-	{
-		if ($this->skip_whitespace())
-		{
-			$this->state = 'version_name';
-		}
-		else
-		{
-			$this->state = false;
-		}
-	}
-
-	function version_name()
-	{
-		if (substr($this->data, $this->position, 7) === 'version')
-		{
-			$this->position += 7;
-			$this->skip_whitespace();
-			$this->state = 'version_equals';
-		}
-		else
-		{
-			$this->state = false;
-		}
-	}
-
-	function version_equals()
-	{
-		if (substr($this->data, $this->position, 1) === '=')
-		{
-			$this->position++;
-			$this->skip_whitespace();
-			$this->state = 'version_value';
-		}
-		else
-		{
-			$this->state = false;
-		}
-	}
-
-	function version_value()
-	{
-		if ($this->version = $this->get_value())
-		{
-			$this->skip_whitespace();
-			if ($this->has_data())
-			{
-				$this->state = 'encoding_name';
-			}
-			else
-			{
-				$this->state = 'emit';
-			}
-		}
-		else
-		{
-			$this->state = false;
-		}
-	}
-
-	function encoding_name()
-	{
-		if (substr($this->data, $this->position, 8) === 'encoding')
-		{
-			$this->position += 8;
-			$this->skip_whitespace();
-			$this->state = 'encoding_equals';
-		}
-		else
-		{
-			$this->state = 'standalone_name';
-		}
-	}
-
-	function encoding_equals()
-	{
-		if (substr($this->data, $this->position, 1) === '=')
-		{
-			$this->position++;
-			$this->skip_whitespace();
-			$this->state = 'encoding_value';
-		}
-		else
-		{
-			$this->state = false;
-		}
-	}
-
-	function encoding_value()
-	{
-		if ($this->encoding = $this->get_value())
-		{
-			$this->skip_whitespace();
-			if ($this->has_data())
-			{
-				$this->state = 'standalone_name';
-			}
-			else
-			{
-				$this->state = 'emit';
-			}
-		}
-		else
-		{
-			$this->state = false;
-		}
-	}
-
-	function standalone_name()
-	{
-		if (substr($this->data, $this->position, 10) === 'standalone')
-		{
-			$this->position += 10;
-			$this->skip_whitespace();
-			$this->state = 'standalone_equals';
-		}
-		else
-		{
-			$this->state = false;
-		}
-	}
-
-	function standalone_equals()
-	{
-		if (substr($this->data, $this->position, 1) === '=')
-		{
-			$this->position++;
-			$this->skip_whitespace();
-			$this->state = 'standalone_value';
-		}
-		else
-		{
-			$this->state = false;
-		}
-	}
-
-	function standalone_value()
-	{
-		if ($standalone = $this->get_value())
-		{
-			switch ($standalone)
-			{
-				case 'yes':
-					$this->standalone = true;
-					break;
-
-				case 'no':
-					$this->standalone = false;
-					break;
-
-				default:
-					$this->state = false;
-					return;
-			}
-
-			$this->skip_whitespace();
-			if ($this->has_data())
-			{
-				$this->state = false;
-			}
-			else
-			{
-				$this->state = 'emit';
-			}
-		}
-		else
-		{
-			$this->state = false;
-		}
-	}
-}
-
-class SimplePie_Locator
-{
-	var $useragent;
-	var $timeout;
-	var $file;
-	var $local = array();
-	var $elsewhere = array();
-	var $file_class = 'SimplePie_File';
-	var $cached_entities = array();
-	var $http_base;
-	var $base;
-	var $base_location = 0;
-	var $checked_feeds = 0;
-	var $max_checked_feeds = 10;
-	var $content_type_sniffer_class = 'SimplePie_Content_Type_Sniffer';
-
-	function SimplePie_Locator(&$file, $timeout = 10, $useragent = null, $file_class = 'SimplePie_File', $max_checked_feeds = 10, $content_type_sniffer_class = 'SimplePie_Content_Type_Sniffer')
-	{
-		$this->file =& $file;
-		$this->file_class = $file_class;
-		$this->useragent = $useragent;
-		$this->timeout = $timeout;
-		$this->max_checked_feeds = $max_checked_feeds;
-		$this->content_type_sniffer_class = $content_type_sniffer_class;
-	}
-
-	function find($type = SIMPLEPIE_LOCATOR_ALL, &$working)
-	{
-		if ($this->is_feed($this->file))
-		{
-			return $this->file;
-		}
-
-		if ($this->file->method & SIMPLEPIE_FILE_SOURCE_REMOTE)
-		{
-			$sniffer =& new $this->content_type_sniffer_class($this->file);
-			if ($sniffer->get_type() !== 'text/html')
-			{
-				return null;
-			}
-		}
-
-		if ($type & ~SIMPLEPIE_LOCATOR_NONE)
-		{
-			$this->get_base();
-		}
-
-		if ($type & SIMPLEPIE_LOCATOR_AUTODISCOVERY && $working = $this->autodiscovery())
-		{
-			return $working[0];
-		}
-
-		if ($type & (SIMPLEPIE_LOCATOR_LOCAL_EXTENSION | SIMPLEPIE_LOCATOR_LOCAL_BODY | SIMPLEPIE_LOCATOR_REMOTE_EXTENSION | SIMPLEPIE_LOCATOR_REMOTE_BODY) && $this->get_links())
-		{
-			if ($type & SIMPLEPIE_LOCATOR_LOCAL_EXTENSION && $working = $this->extension($this->local))
-			{
-				return $working;
-			}
-
-			if ($type & SIMPLEPIE_LOCATOR_LOCAL_BODY && $working = $this->body($this->local))
-			{
-				return $working;
-			}
-
-			if ($type & SIMPLEPIE_LOCATOR_REMOTE_EXTENSION && $working = $this->extension($this->elsewhere))
-			{
-				return $working;
-			}
-
-			if ($type & SIMPLEPIE_LOCATOR_REMOTE_BODY && $working = $this->body($this->elsewhere))
-			{
-				return $working;
-			}
-		}
-		return null;
-	}
-
-	function is_feed(&$file)
-	{
-		if ($file->method & SIMPLEPIE_FILE_SOURCE_REMOTE)
-		{
-			$sniffer =& new $this->content_type_sniffer_class($file);
-			$sniffed = $sniffer->get_type();
-			if (in_array($sniffed, array('application/rss+xml', 'application/rdf+xml', 'text/rdf', 'application/atom+xml', 'text/xml', 'application/xml')))
-			{
-				return true;
-			}
-			else
-			{
-				return false;
-			}
-		}
-		elseif ($file->method & SIMPLEPIE_FILE_SOURCE_LOCAL)
-		{
-			return true;
-		}
-		else
-		{
-			return false;
-		}
-	}
-
-	function get_base()
-	{
-		$this->http_base = $this->file->url;
-		$this->base = $this->http_base;
-		$elements = SimplePie_Misc::get_element('base', $this->file->body);
-		foreach ($elements as $element)
-		{
-			if ($element['attribs']['href']['data'] !== '')
-			{
-				$this->base = SimplePie_Misc::absolutize_url(trim($element['attribs']['href']['data']), $this->http_base);
-				$this->base_location = $element['offset'];
-				break;
-			}
-		}
-	}
-
-	function autodiscovery()
-	{
-		$links = array_merge(SimplePie_Misc::get_element('link', $this->file->body), SimplePie_Misc::get_element('a', $this->file->body), SimplePie_Misc::get_element('area', $this->file->body));
-		$done = array();
-		$feeds = array();
-		foreach ($links as $link)
-		{
-			if ($this->checked_feeds === $this->max_checked_feeds)
-			{
-				break;
-			}
-			if (isset($link['attribs']['href']['data']) && isset($link['attribs']['rel']['data']))
-			{
-				$rel = array_unique(SimplePie_Misc::space_seperated_tokens(strtolower($link['attribs']['rel']['data'])));
-
-				if ($this->base_location < $link['offset'])
-				{
-					$href = SimplePie_Misc::absolutize_url(trim($link['attribs']['href']['data']), $this->base);
-				}
-				else
-				{
-					$href = SimplePie_Misc::absolutize_url(trim($link['attribs']['href']['data']), $this->http_base);
-				}
-
-				if (!in_array($href, $done) && in_array('feed', $rel) || (in_array('alternate', $rel) && !empty($link['attribs']['type']['data']) && in_array(strtolower(SimplePie_Misc::parse_mime($link['attribs']['type']['data'])), array('application/rss+xml', 'application/atom+xml'))) && !isset($feeds[$href]))
-				{
-					$this->checked_feeds++;
-					$feed =& new $this->file_class($href, $this->timeout, 5, null, $this->useragent);
-					if ($feed->success && ($feed->method & SIMPLEPIE_FILE_SOURCE_REMOTE === 0 || ($feed->status_code === 200 || $feed->status_code > 206 && $feed->status_code < 300)) && $this->is_feed($feed))
-					{
-						$feeds[$href] = $feed;
-					}
-				}
-				$done[] = $href;
-			}
-		}
-
-		if (!empty($feeds))
-		{
-			return array_values($feeds);
-		}
-		else {
-			return null;
-		}
-	}
-
-	function get_links()
-	{
-		$links = SimplePie_Misc::get_element('a', $this->file->body);
-		foreach ($links as $link)
-		{
-			if (isset($link['attribs']['href']['data']))
-			{
-				$href = trim($link['attribs']['href']['data']);
-				$parsed = SimplePie_Misc::parse_url($href);
-				if ($parsed['scheme'] === '' || preg_match('/^(http(s)|feed)?$/i', $parsed['scheme']))
-				{
-					if ($this->base_location < $link['offset'])
-					{
-						$href = SimplePie_Misc::absolutize_url(trim($link['attribs']['href']['data']), $this->base);
-					}
-					else
-					{
-						$href = SimplePie_Misc::absolutize_url(trim($link['attribs']['href']['data']), $this->http_base);
-					}
-
-					$current = SimplePie_Misc::parse_url($this->file->url);
-
-					if ($parsed['authority'] === '' || $parsed['authority'] === $current['authority'])
-					{
-						$this->local[] = $href;
-					}
-					else
-					{
-						$this->elsewhere[] = $href;
-					}
-				}
-			}
-		}
-		$this->local = array_unique($this->local);
-		$this->elsewhere = array_unique($this->elsewhere);
-		if (!empty($this->local) || !empty($this->elsewhere))
-		{
-			return true;
-		}
-		return null;
-	}
-
-	function extension(&$array)
-	{
-		foreach ($array as $key => $value)
-		{
-			if ($this->checked_feeds === $this->max_checked_feeds)
-			{
-				break;
-			}
-			if (in_array(strtolower(strrchr($value, '.')), array('.rss', '.rdf', '.atom', '.xml')))
-			{
-				$this->checked_feeds++;
-				$feed =& new $this->file_class($value, $this->timeout, 5, null, $this->useragent);
-				if ($feed->success && ($feed->method & SIMPLEPIE_FILE_SOURCE_REMOTE === 0 || ($feed->status_code === 200 || $feed->status_code > 206 && $feed->status_code < 300)) && $this->is_feed($feed))
-				{
-					return $feed;
-				}
-				else
-				{
-					unset($array[$key]);
-				}
-			}
-		}
-		return null;
-	}
-
-	function body(&$array)
-	{
-		foreach ($array as $key => $value)
-		{
-			if ($this->checked_feeds === $this->max_checked_feeds)
-			{
-				break;
-			}
-			if (preg_match('/(rss|rdf|atom|xml)/i', $value))
-			{
-				$this->checked_feeds++;
-				$feed =& new $this->file_class($value, $this->timeout, 5, null, $this->useragent);
-				if ($feed->success && ($feed->method & SIMPLEPIE_FILE_SOURCE_REMOTE === 0 || ($feed->status_code === 200 || $feed->status_code > 206 && $feed->status_code < 300)) && $this->is_feed($feed))
-				{
-					return $feed;
-				}
-				else
-				{
-					unset($array[$key]);
-				}
-			}
-		}
-		return null;
-	}
-}
-
-class SimplePie_Parser
-{
-	var $error_code;
-	var $error_string;
-	var $current_line;
-	var $current_column;
-	var $current_byte;
-	var $separator = ' ';
-	var $namespace = array('');
-	var $element = array('');
-	var $xml_base = array('');
-	var $xml_base_explicit = array(false);
-	var $xml_lang = array('');
-	var $data = array();
-	var $datas = array(array());
-	var $current_xhtml_construct = -1;
-	var $encoding;
-
-	function parse(&$data, $encoding)
-	{
-		// Use UTF-8 if we get passed US-ASCII, as every US-ASCII character is a UTF-8 character
-		if (strtoupper($encoding) === 'US-ASCII')
-		{
-			$this->encoding = 'UTF-8';
-		}
-		else
-		{
-			$this->encoding = $encoding;
-		}
-
-		// Strip BOM:
-		// UTF-32 Big Endian BOM
-		if (substr($data, 0, 4) === "\x00\x00\xFE\xFF")
-		{
-			$data = substr($data, 4);
-		}
-		// UTF-32 Little Endian BOM
-		elseif (substr($data, 0, 4) === "\xFF\xFE\x00\x00")
-		{
-			$data = substr($data, 4);
-		}
-		// UTF-16 Big Endian BOM
-		elseif (substr($data, 0, 2) === "\xFE\xFF")
-		{
-			$data = substr($data, 2);
-		}
-		// UTF-16 Little Endian BOM
-		elseif (substr($data, 0, 2) === "\xFF\xFE")
-		{
-			$data = substr($data, 2);
-		}
-		// UTF-8 BOM
-		elseif (substr($data, 0, 3) === "\xEF\xBB\xBF")
-		{
-			$data = substr($data, 3);
-		}
-
-		if (substr($data, 0, 5) === '<?xml' && strspn(substr($data, 5, 1), "\x09\x0A\x0D\x20") && ($pos = strpos($data, '?>')) !== false)
-		{
-			$declaration =& new SimplePie_XML_Declaration_Parser(substr($data, 5, $pos - 5));
-			if ($declaration->parse())
-			{
-				$data = substr($data, $pos + 2);
-				$data = '<?xml version="' . $declaration->version . '" encoding="' . $encoding . '" standalone="' . (($declaration->standalone) ? 'yes' : 'no') . '"?>' . $data;
-			}
-			else
-			{
-				$this->error_string = 'SimplePie bug! Please report this!';
-				return false;
-			}
-		}
-
-		$return = true;
-
-		static $xml_is_sane = null;
-		if ($xml_is_sane === null)
-		{
-			$parser_check = xml_parser_create();
-			xml_parse_into_struct($parser_check, '<foo>&amp;</foo>', $values);
-			xml_parser_free($parser_check);
-			$xml_is_sane = isset($values[0]['value']);
-		}
-
-		// Create the parser
-		if ($xml_is_sane)
-		{
-			$xml = xml_parser_create_ns($this->encoding, $this->separator);
-			xml_parser_set_option($xml, XML_OPTION_SKIP_WHITE, 1);
-			xml_parser_set_option($xml, XML_OPTION_CASE_FOLDING, 0);
-			xml_set_object($xml, $this);
-			xml_set_character_data_handler($xml, 'cdata');
-			xml_set_element_handler($xml, 'tag_open', 'tag_close');
-
-			// Parse!
-			if (!xml_parse($xml, $data, true))
-			{
-				$this->error_code = xml_get_error_code($xml);
-				$this->error_string = xml_error_string($this->error_code);
-				$return = false;
-			}
-			$this->current_line = xml_get_current_line_number($xml);
-			$this->current_column = xml_get_current_column_number($xml);
-			$this->current_byte = xml_get_current_byte_index($xml);
-			xml_parser_free($xml);
-			return $return;
-		}
-		else
-		{
-			libxml_clear_errors();
-			$xml =& new XMLReader();
-			$xml->xml($data);
-			while (@$xml->read())
-			{
-				switch ($xml->nodeType)
-				{
-
-					case constant('XMLReader::END_ELEMENT'):
-						if ($xml->namespaceURI !== '')
-						{
-							$tagName = $xml->namespaceURI . $this->separator . $xml->localName;
-						}
-						else
-						{
-							$tagName = $xml->localName;
-						}
-						$this->tag_close(null, $tagName);
-						break;
-					case constant('XMLReader::ELEMENT'):
-						$empty = $xml->isEmptyElement;
-						if ($xml->namespaceURI !== '')
-						{
-							$tagName = $xml->namespaceURI . $this->separator . $xml->localName;
-						}
-						else
-						{
-							$tagName = $xml->localName;
-						}
-						$attributes = array();
-						while ($xml->moveToNextAttribute())
-						{
-							if ($xml->namespaceURI !== '')
-							{
-								$attrName = $xml->namespaceURI . $this->separator . $xml->localName;
-							}
-							else
-							{
-								$attrName = $xml->localName;
-							}
-							$attributes[$attrName] = $xml->value;
-						}
-						$this->tag_open(null, $tagName, $attributes);
-						if ($empty)
-						{
-							$this->tag_close(null, $tagName);
-						}
-						break;
-					case constant('XMLReader::TEXT'):
-
-					case constant('XMLReader::CDATA'):
-						$this->cdata(null, $xml->value);
-						break;
-				}
-			}
-			if ($error = libxml_get_last_error())
-			{
-				$this->error_code = $error->code;
-				$this->error_string = $error->message;
-				$this->current_line = $error->line;
-				$this->current_column = $error->column;
-				return false;
-			}
-			else
-			{
-				return true;
-			}
-		}
-	}
-
-	function get_error_code()
-	{
-		return $this->error_code;
-	}
-
-	function get_error_string()
-	{
-		return $this->error_string;
-	}
-
-	function get_current_line()
-	{
-		return $this->current_line;
-	}
-
-	function get_current_column()
-	{
-		return $this->current_column;
-	}
-
-	function get_current_byte()
-	{
-		return $this->current_byte;
-	}
-
-	function get_data()
-	{
-		return $this->data;
-	}
-
-	function tag_open($parser, $tag, $attributes)
-	{
-		list($this->namespace[], $this->element[]) = $this->split_ns($tag);
-
-		$attribs = array();
-		foreach ($attributes as $name => $value)
-		{
-			list($attrib_namespace, $attribute) = $this->split_ns($name);
-			$attribs[$attrib_namespace][$attribute] = $value;
-		}
-
-		if (isset($attribs[SIMPLEPIE_NAMESPACE_XML]['base']))
-		{
-			$this->xml_base[] = SimplePie_Misc::absolutize_url($attribs[SIMPLEPIE_NAMESPACE_XML]['base'], end($this->xml_base));
-			$this->xml_base_explicit[] = true;
-		}
-		else
-		{
-			$this->xml_base[] = end($this->xml_base);
-			$this->xml_base_explicit[] = end($this->xml_base_explicit);
-		}
-
-		if (isset($attribs[SIMPLEPIE_NAMESPACE_XML]['lang']))
-		{
-			$this->xml_lang[] = $attribs[SIMPLEPIE_NAMESPACE_XML]['lang'];
-		}
-		else
-		{
-			$this->xml_lang[] = end($this->xml_lang);
-		}
-
-		if ($this->current_xhtml_construct >= 0)
-		{
-			$this->current_xhtml_construct++;
-			if (end($this->namespace) === SIMPLEPIE_NAMESPACE_XHTML)
-			{
-				$this->data['data'] .= '<' . end($this->element);
-				if (isset($attribs['']))
-				{
-					foreach ($attribs[''] as $name => $value)
-					{
-						$this->data['data'] .= ' ' . $name . '="' . htmlspecialchars($value, ENT_COMPAT, $this->encoding) . '"';
-					}
-				}
-				$this->data['data'] .= '>';
-			}
-		}
-		else
-		{
-			$this->datas[] =& $this->data;
-			$this->data =& $this->data['child'][end($this->namespace)][end($this->element)][];
-			$this->data = array('data' => '', 'attribs' => $attribs, 'xml_base' => end($this->xml_base), 'xml_base_explicit' => end($this->xml_base_explicit), 'xml_lang' => end($this->xml_lang));
-			if ((end($this->namespace) === SIMPLEPIE_NAMESPACE_ATOM_03 && in_array(end($this->element), array('title', 'tagline', 'copyright', 'info', 'summary', 'content')) && isset($attribs['']['mode']) && $attribs['']['mode'] === 'xml')
-			|| (end($this->namespace) === SIMPLEPIE_NAMESPACE_ATOM_10 && in_array(end($this->element), array('rights', 'subtitle', 'summary', 'info', 'title', 'content')) && isset($attribs['']['type']) && $attribs['']['type'] === 'xhtml'))
-			{
-				$this->current_xhtml_construct = 0;
-			}
-		}
-	}
-
-	function cdata($parser, $cdata)
-	{
-		if ($this->current_xhtml_construct >= 0)
-		{
-			$this->data['data'] .= htmlspecialchars($cdata, ENT_QUOTES, $this->encoding);
-		}
-		else
-		{
-			$this->data['data'] .= $cdata;
-		}
-	}
-
-	function tag_close($parser, $tag)
-	{
-		if ($this->current_xhtml_construct >= 0)
-		{
-			$this->current_xhtml_construct--;
-			if (end($this->namespace) === SIMPLEPIE_NAMESPACE_XHTML && !in_array(end($this->element), array('area', 'base', 'basefont', 'br', 'col', 'frame', 'hr', 'img', 'input', 'isindex', 'link', 'meta', 'param')))
-			{
-				$this->data['data'] .= '</' . end($this->element) . '>';
-			}
-		}
-		if ($this->current_xhtml_construct === -1)
-		{
-			$this->data =& $this->datas[count($this->datas) - 1];
-			array_pop($this->datas);
-		}
-
-		array_pop($this->element);
-		array_pop($this->namespace);
-		array_pop($this->xml_base);
-		array_pop($this->xml_base_explicit);
-		array_pop($this->xml_lang);
-	}
-
-	function split_ns($string)
-	{
-		static $cache = array();
-		if (!isset($cache[$string]))
-		{
-			if ($pos = strpos($string, $this->separator))
-			{
-				static $separator_length;
-				if (!$separator_length)
-				{
-					$separator_length = strlen($this->separator);
-				}
-				$namespace = substr($string, 0, $pos);
-				$local_name = substr($string, $pos + $separator_length);
-				if (strtolower($namespace) === SIMPLEPIE_NAMESPACE_ITUNES)
-				{
-					$namespace = SIMPLEPIE_NAMESPACE_ITUNES;
-				}
-
-				// Normalize the Media RSS namespaces
-				if ($namespace === SIMPLEPIE_NAMESPACE_MEDIARSS_WRONG)
-				{
-					$namespace = SIMPLEPIE_NAMESPACE_MEDIARSS;
-				}
-				$cache[$string] = array($namespace, $local_name);
-			}
-			else
-			{
-				$cache[$string] = array('', $string);
-			}
-		}
-		return $cache[$string];
-	}
-}
-
-/**
- * @todo Move to using an actual HTML parser (this will allow tags to be properly stripped, and to switch between HTML and XHTML), this will also make it easier to shorten a string while preserving HTML tags
- */
-class SimplePie_Sanitize
-{
-	// Private vars
-	var $base;
-
-	// Options
-	var $remove_div = true;
-	var $image_handler = '';
-	var $strip_htmltags = array('base', 'blink', 'body', 'doctype', 'embed', 'font', 'form', 'frame', 'frameset', 'html', 'iframe', 'input', 'marquee', 'meta', 'noscript', 'object', 'param', 'script', 'style');
-	var $encode_instead_of_strip = false;
-	var $strip_attributes = array('bgsound', 'class', 'expr', 'id', 'style', 'onclick', 'onerror', 'onfinish', 'onmouseover', 'onmouseout', 'onfocus', 'onblur', 'lowsrc', 'dynsrc');
-	var $strip_comments = false;
-	var $output_encoding = 'UTF-8';
-	var $enable_cache = true;
-	var $cache_location = './cache';
-	var $cache_name_function = 'md5';
-	var $cache_class = 'SimplePie_Cache';
-	var $file_class = 'SimplePie_File';
-	var $timeout = 10;
-	var $useragent = '';
-	var $force_fsockopen = false;
-
-	var $replace_url_attributes = array(
-		'a' => 'href',
-		'area' => 'href',
-		'blockquote' => 'cite',
-		'del' => 'cite',
-		'form' => 'action',
-		'img' => array('longdesc', 'src'),
-		'input' => 'src',
-		'ins' => 'cite',
-		'q' => 'cite'
-	);
-
-	function remove_div($enable = true)
-	{
-		$this->remove_div = (bool) $enable;
-	}
-
-	function set_image_handler($page = false)
-	{
-		if ($page)
-		{
-			$this->image_handler = (string) $page;
-		}
-		else
-		{
-			$this->image_handler = false;
-		}
-	}
-
-	function pass_cache_data($enable_cache = true, $cache_location = './cache', $cache_name_function = 'md5', $cache_class = 'SimplePie_Cache')
-	{
-		if (isset($enable_cache))
-		{
-			$this->enable_cache = (bool) $enable_cache;
-		}
-
-		if ($cache_location)
-		{
-			$this->cache_location = (string) $cache_location;
-		}
-
-		if ($cache_name_function)
-		{
-			$this->cache_name_function = (string) $cache_name_function;
-		}
-
-		if ($cache_class)
-		{
-			$this->cache_class = (string) $cache_class;
-		}
-	}
-
-	function pass_file_data($file_class = 'SimplePie_File', $timeout = 10, $useragent = '', $force_fsockopen = false)
-	{
-		if ($file_class)
-		{
-			$this->file_class = (string) $file_class;
-		}
-
-		if ($timeout)
-		{
-			$this->timeout = (string) $timeout;
-		}
-
-		if ($useragent)
-		{
-			$this->useragent = (string) $useragent;
-		}
-
-		if ($force_fsockopen)
-		{
-			$this->force_fsockopen = (string) $force_fsockopen;
-		}
-	}
-
-	function strip_htmltags($tags = array('base', 'blink', 'body', 'doctype', 'embed', 'font', 'form', 'frame', 'frameset', 'html', 'iframe', 'input', 'marquee', 'meta', 'noscript', 'object', 'param', 'script', 'style'))
-	{
-		if ($tags)
-		{
-			if (is_array($tags))
-			{
-				$this->strip_htmltags = $tags;
-			}
-			else
-			{
-				$this->strip_htmltags = explode(',', $tags);
-			}
-		}
-		else
-		{
-			$this->strip_htmltags = false;
-		}
-	}
-
-	function encode_instead_of_strip($encode = false)
-	{
-		$this->encode_instead_of_strip = (bool) $encode;
-	}
-
-	function strip_attributes($attribs = array('bgsound', 'class', 'expr', 'id', 'style', 'onclick', 'onerror', 'onfinish', 'onmouseover', 'onmouseout', 'onfocus', 'onblur', 'lowsrc', 'dynsrc'))
-	{
-		if ($attribs)
-		{
-			if (is_array($attribs))
-			{
-				$this->strip_attributes = $attribs;
-			}
-			else
-			{
-				$this->strip_attributes = explode(',', $attribs);
-			}
-		}
-		else
-		{
-			$this->strip_attributes = false;
-		}
-	}
-
-	function strip_comments($strip = false)
-	{
-		$this->strip_comments = (bool) $strip;
-	}
-
-	function set_output_encoding($encoding = 'UTF-8')
-	{
-		$this->output_encoding = (string) $encoding;
-	}
-
-	/**
-	 * Set element/attribute key/value pairs of HTML attributes
-	 * containing URLs that need to be resolved relative to the feed
-	 *
-	 * @access public
-	 * @since 1.0
-	 * @param array $element_attribute Element/attribute key/value pairs
-	 */
-	function set_url_replacements($element_attribute = array('a' => 'href', 'area' => 'href', 'blockquote' => 'cite', 'del' => 'cite', 'form' => 'action', 'img' => array('longdesc', 'src'), 'input' => 'src', 'ins' => 'cite', 'q' => 'cite'))
-	{
-		$this->replace_url_attributes = (array) $element_attribute;
-	}
-
-	function sanitize($data, $type, $base = '')
-	{
-		$data = trim($data);
-		if ($data !== '' || $type & SIMPLEPIE_CONSTRUCT_IRI)
-		{
-			if ($type & SIMPLEPIE_CONSTRUCT_MAYBE_HTML)
-			{
-				if (preg_match('/(&(#(x[0-9a-fA-F]+|[0-9]+)|[a-zA-Z0-9]+)|<\/[A-Za-z][^\x09\x0A\x0B\x0C\x0D\x20\x2F\x3E]*' . SIMPLEPIE_PCRE_HTML_ATTRIBUTE . '>)/', $data))
-				{
-					$type |= SIMPLEPIE_CONSTRUCT_HTML;
-				}
-				else
-				{
-					$type |= SIMPLEPIE_CONSTRUCT_TEXT;
-				}
-			}
-
-			if ($type & SIMPLEPIE_CONSTRUCT_BASE64)
-			{
-				$data = base64_decode($data);
-			}
-
-			if ($type & SIMPLEPIE_CONSTRUCT_XHTML)
-			{
-				if ($this->remove_div)
-				{
-					$data = preg_replace('/^<div' . SIMPLEPIE_PCRE_XML_ATTRIBUTE . '>/', '', $data);
-					$data = preg_replace('/<\/div>$/', '', $data);
-				}
-				else
-				{
-					$data = preg_replace('/^<div' . SIMPLEPIE_PCRE_XML_ATTRIBUTE . '>/', '<div>', $data);
-				}
-			}
-
-			if ($type & (SIMPLEPIE_CONSTRUCT_HTML | SIMPLEPIE_CONSTRUCT_XHTML))
-			{
-				// Strip comments
-				if ($this->strip_comments)
-				{
-					$data = SimplePie_Misc::strip_comments($data);
-				}
-
-				// Strip out HTML tags and attributes that might cause various security problems.
-				// Based on recommendations by Mark Pilgrim at:
-				// http://diveintomark.org/archives/2003/06/12/how_to_consume_rss_safely
-				if ($this->strip_htmltags)
-				{
-					foreach ($this->strip_htmltags as $tag)
-					{
-						$pcre = "/<($tag)" . SIMPLEPIE_PCRE_HTML_ATTRIBUTE . "(>(.*)<\/$tag" . SIMPLEPIE_PCRE_HTML_ATTRIBUTE . '>|(\/)?>)/siU';
-						while (preg_match($pcre, $data))
-						{
-							$data = preg_replace_callback($pcre, array(&$this, 'do_strip_htmltags'), $data);
-						}
-					}
-				}
-
-				if ($this->strip_attributes)
-				{
-					foreach ($this->strip_attributes as $attrib)
-					{
-						$data = preg_replace('/(<[A-Za-z][^\x09\x0A\x0B\x0C\x0D\x20\x2F\x3E]*)' . SIMPLEPIE_PCRE_HTML_ATTRIBUTE . trim($attrib) . '(?:\s*=\s*(?:"(?:[^"]*)"|\'(?:[^\']*)\'|(?:[^\x09\x0A\x0B\x0C\x0D\x20\x22\x27\x3E][^\x09\x0A\x0B\x0C\x0D\x20\x3E]*)?))?' . SIMPLEPIE_PCRE_HTML_ATTRIBUTE . '>/', '\1\2\3>', $data);
-					}
-				}
-
-				// Replace relative URLs
-				$this->base = $base;
-				foreach ($this->replace_url_attributes as $element => $attributes)
-				{
-					$data = $this->replace_urls($data, $element, $attributes);
-				}
-
-				// If image handling (caching, etc.) is enabled, cache and rewrite all the image tags.
-				if (isset($this->image_handler) && ((string) $this->image_handler) !== '' && $this->enable_cache)
-				{
-					$images = SimplePie_Misc::get_element('img', $data);
-					foreach ($images as $img)
-					{
-						if (isset($img['attribs']['src']['data']))
-						{
-							$image_url = call_user_func($this->cache_name_function, $img['attribs']['src']['data']);
-							$cache = call_user_func(array($this->cache_class, 'create'), $this->cache_location, $image_url, 'spi');
-
-							if ($cache->load())
-							{
-								$img['attribs']['src']['data'] = $this->image_handler . $image_url;
-								$data = str_replace($img['full'], SimplePie_Misc::element_implode($img), $data);
-							}
-							else
-							{
-								$file =& new $this->file_class($img['attribs']['src']['data'], $this->timeout, 5, array('X-FORWARDED-FOR' => $_SERVER['REMOTE_ADDR']), $this->useragent, $this->force_fsockopen);
-								$headers = $file->headers;
-
-								if ($file->success && ($file->method & SIMPLEPIE_FILE_SOURCE_REMOTE === 0 || ($file->status_code === 200 || $file->status_code > 206 && $file->status_code < 300)))
-								{
-									if ($cache->save(array('headers' => $file->headers, 'body' => $file->body)))
-									{
-										$img['attribs']['src']['data'] = $this->image_handler . $image_url;
-										$data = str_replace($img['full'], SimplePie_Misc::element_implode($img), $data);
-									}
-									else
-									{
-										trigger_error("$this->cache_location is not writeable. Make sure you've set the correct relative or absolute path, and that the location is server-writable.", E_USER_WARNING);
-									}
-								}
-							}
-						}
-					}
-				}
-
-				// Having (possibly) taken stuff out, there may now be whitespace at the beginning/end of the data
-				$data = trim($data);
-			}
-
-			if ($type & SIMPLEPIE_CONSTRUCT_IRI)
-			{
-				$data = SimplePie_Misc::absolutize_url($data, $base);
-			}
-
-			if ($type & (SIMPLEPIE_CONSTRUCT_TEXT | SIMPLEPIE_CONSTRUCT_IRI))
-			{
-				$data = htmlspecialchars($data, ENT_COMPAT, 'UTF-8');
-			}
-
-			if ($this->output_encoding !== 'UTF-8')
-			{
-				$data = SimplePie_Misc::change_encoding($data, 'UTF-8', $this->output_encoding);
-			}
-		}
-		return $data;
-	}
-
-	function replace_urls($data, $tag, $attributes)
-	{
-		if (!is_array($this->strip_htmltags) || !in_array($tag, $this->strip_htmltags))
-		{
-			$elements = SimplePie_Misc::get_element($tag, $data);
-			foreach ($elements as $element)
-			{
-				if (is_array($attributes))
-				{
-					foreach ($attributes as $attribute)
-					{
-						if (isset($element['attribs'][$attribute]['data']))
-						{
-							$element['attribs'][$attribute]['data'] = SimplePie_Misc::absolutize_url($element['attribs'][$attribute]['data'], $this->base);
-							$new_element = SimplePie_Misc::element_implode($element);
-							$data = str_replace($element['full'], $new_element, $data);
-							$element['full'] = $new_element;
-						}
-					}
-				}
-				elseif (isset($element['attribs'][$attributes]['data']))
-				{
-					$element['attribs'][$attributes]['data'] = SimplePie_Misc::absolutize_url($element['attribs'][$attributes]['data'], $this->base);
-					$data = str_replace($element['full'], SimplePie_Misc::element_implode($element), $data);
-				}
-			}
-		}
-		return $data;
-	}
-
-	function do_strip_htmltags($match)
-	{
-		if ($this->encode_instead_of_strip)
-		{
-			if (isset($match[4]) && !in_array(strtolower($match[1]), array('script', 'style')))
-			{
-				$match[1] = htmlspecialchars($match[1], ENT_COMPAT, 'UTF-8');
-				$match[2] = htmlspecialchars($match[2], ENT_COMPAT, 'UTF-8');
-				return "&lt;$match[1]$match[2]&gt;$match[3]&lt;/$match[1]&gt;";
-			}
-			else
-			{
-				return htmlspecialchars($match[0], ENT_COMPAT, 'UTF-8');
-			}
-		}
-		elseif (isset($match[4]) && !in_array(strtolower($match[1]), array('script', 'style')))
-		{
-			return $match[4];
-		}
-		else
-		{
-			return '';
-		}
-	}
-}
-endif;
-?>
+endif;
\ No newline at end of file
--- a/web/wp-includes/class-wp-admin-bar.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/class-wp-admin-bar.php	Wed Dec 19 17:46:52 2012 -0800
@@ -1,4 +1,12 @@
 <?php
+/**
+ * The WordPress Toolbar
+ *
+ * @since 3.1.0
+ *
+ * @package WordPress
+ * @subpackage Toolbar
+ */
 class WP_Admin_Bar {
 	private $nodes = array();
 	private $bound = false;
@@ -104,7 +112,7 @@
 			$defaults = get_object_vars( $maybe_defaults );
 
 		// Do the same for 'meta' items.
-		if ( ! empty( $defaults['meta'] ) && empty( $args['meta'] ) )
+		if ( ! empty( $defaults['meta'] ) && ! empty( $args['meta'] ) )
 			$args['meta'] = wp_parse_args( $args['meta'], $defaults['meta'] );
 
 		$args = wp_parse_args( $args, $defaults );
@@ -149,13 +157,13 @@
 	}
 
 	final public function get_nodes() {
-	   if ( ! $nodes = $this->_get_nodes() )
-	      return;
+		if ( ! $nodes = $this->_get_nodes() )
+			return;
 
-	   foreach ( $nodes as &$node ) {
-	       $node = clone $node;
-	   }
-	   return $nodes;
+		foreach ( $nodes as &$node ) {
+			$node = clone $node;
+		}
+		return $nodes;
 	}
 
 	final protected function _get_nodes() {
@@ -184,7 +192,7 @@
 	/**
 	 * Remove a node.
 	 *
-	 * @return object The removed node.
+	 * @param string The ID of the item.
 	 */
 	public function remove_node( $id ) {
 		$this->_unset_node( $id );
@@ -237,8 +245,9 @@
 
 			if ( $node->type == 'group' ) {
 				if ( empty( $node->meta['class'] ) )
-					$node->meta['class'] = '';
-				$node->meta['class'] .= ' ' . $group_class;
+					$node->meta['class'] = $group_class;
+				else
+					$node->meta['class'] .= ' ' . $group_class;
 			}
 
 			// Items in items aren't allowed. Wrap nested items in 'default' groups.
@@ -339,11 +348,13 @@
 
 		?>
 		<div id="wpadminbar" class="<?php echo $class; ?>" role="navigation">
-			<div class="quicklinks">
+			<a class="screen-reader-shortcut" href="#wp-toolbar" tabindex="1"><?php _e('Skip to toolbar'); ?></a>
+			<div class="quicklinks" id="wp-toolbar" role="navigation" aria-label="<?php esc_attr_e('Top navigation toolbar.'); ?>" tabindex="0">
 				<?php foreach ( $root->children as $group ) {
 					$this->_render_group( $group );
 				} ?>
 			</div>
+			<a class="screen-reader-shortcut" href="<?php echo esc_url( wp_logout_url() ); ?>"><?php _e('Log Out'); ?></a>
 		</div>
 
 		<?php
@@ -367,9 +378,12 @@
 		if ( $node->type != 'group' || empty( $node->children ) )
 			return;
 
-		$class = empty( $node->meta['class'] ) ? '' : $node->meta['class'];
+		if ( ! empty( $node->meta['class'] ) )
+			$class = ' class="' . esc_attr( trim( $node->meta['class'] ) ) . '"';
+		else
+			$class = '';
 
-		?><ul id="<?php echo esc_attr( 'wp-admin-bar-' . $node->id ); ?>" class="<?php echo esc_attr( $class ); ?>"><?php
+		?><ul id="<?php echo esc_attr( 'wp-admin-bar-' . $node->id ); ?>"<?php echo $class; ?>><?php
 			foreach ( $node->children as $item ) {
 				$this->_render_item( $item );
 			}
@@ -383,22 +397,25 @@
 		$is_parent = ! empty( $node->children );
 		$has_link  = ! empty( $node->href );
 
-		$tabindex = isset( $node->meta['tabindex'] ) ? (int) $node->meta['tabindex'] : 10;
+		$tabindex = isset( $node->meta['tabindex'] ) ? (int) $node->meta['tabindex'] : '';
+		$aria_attributes = $tabindex ? 'tabindex="' . $tabindex . '"' : '';
 
 		$menuclass = '';
-		$aria_attributes = 'tabindex="' . $tabindex . '"';
 
 		if ( $is_parent ) {
-			$menuclass = 'menupop';
+			$menuclass = 'menupop ';
 			$aria_attributes .= ' aria-haspopup="true"';
 		}
 
 		if ( ! empty( $node->meta['class'] ) )
-			$menuclass .= ' ' . $node->meta['class'];
+			$menuclass .= $node->meta['class'];
+
+		if ( $menuclass )
+			$menuclass = ' class="' . esc_attr( trim( $menuclass ) ) . '"';
 
 		?>
 
-		<li id="<?php echo esc_attr( 'wp-admin-bar-' . $node->id ); ?>" class="<?php echo esc_attr( $menuclass ); ?>"><?php
+		<li id="<?php echo esc_attr( 'wp-admin-bar-' . $node->id ); ?>"<?php echo $menuclass; ?>><?php
 			if ( $has_link ):
 				?><a class="ab-item" <?php echo $aria_attributes; ?> href="<?php echo esc_url( $node->href ) ?>"<?php
 					if ( ! empty( $node->meta['onclick'] ) ) :
--- a/web/wp-includes/class-wp-ajax-response.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/class-wp-ajax-response.php	Wed Dec 19 17:46:52 2012 -0800
@@ -126,8 +126,8 @@
 	 * @since 2.1.0
 	 */
 	function send() {
-		header('Content-Type: text/xml');
-		echo "<?xml version='1.0' standalone='yes'?><wp_ajax>";
+		header( 'Content-Type: text/xml; charset=' . get_option( 'blog_charset' ) );
+		echo "<?xml version='1.0' encoding='" . get_option( 'blog_charset' ) . "' standalone='yes'?><wp_ajax>";
 		foreach ( (array) $this->responses as $response )
 			echo $response;
 		echo '</wp_ajax>';
--- a/web/wp-includes/class-wp-atom-server.php	Wed Dec 19 12:35:13 2012 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1488 +0,0 @@
-<?php
-
-/**
- * WordPress AtomPub API implementation.
- *
- * @package WordPress
- * @subpackage Publishing
- * @since 2.2.0
- */
-class wp_atom_server {
-
-	/**
-	 * ATOM content type.
-	 *
-	 * @since 2.2.0
-	 * @var string
-	 */
-	var $ATOM_CONTENT_TYPE = 'application/atom+xml';
-
-	/**
-	 * Categories ATOM content type.
-	 *
-	 * @since 2.2.0
-	 * @var string
-	 */
-	var $CATEGORIES_CONTENT_TYPE = 'application/atomcat+xml';
-
-	/**
-	 * Service ATOM content type.
-	 *
-	 * @since 2.3.0
-	 * @var string
-	 */
-	var $SERVICE_CONTENT_TYPE = 'application/atomsvc+xml';
-
-	/**
-	 * ATOM XML namespace.
-	 *
-	 * @since 2.3.0
-	 * @var string
-	 */
-	var $ATOM_NS = 'http://www.w3.org/2005/Atom';
-
-	/**
-	 * ATOMPUB XML namespace.
-	 *
-	 * @since 2.3.0
-	 * @var string
-	 */
-	var $ATOMPUB_NS = 'http://www.w3.org/2007/app';
-
-	/**
-	 * Entries path.
-	 *
-	 * @since 2.2.0
-	 * @var string
-	 */
-	var $ENTRIES_PATH = "posts";
-
-	/**
-	 * Categories path.
-	 *
-	 * @since 2.2.0
-	 * @var string
-	 */
-	var $CATEGORIES_PATH = "categories";
-
-	/**
-	 * Media path.
-	 *
-	 * @since 2.2.0
-	 * @var string
-	 */
-	var $MEDIA_PATH = "attachments";
-
-	/**
-	 * Entry path.
-	 *
-	 * @since 2.2.0
-	 * @var string
-	 */
-	var $ENTRY_PATH = "post";
-
-	/**
-	 * Service path.
-	 *
-	 * @since 2.2.0
-	 * @var string
-	 */
-	var $SERVICE_PATH = "service";
-
-	/**
-	 * Media single path.
-	 *
-	 * @since 2.2.0
-	 * @var string
-	 */
-	var $MEDIA_SINGLE_PATH = "attachment";
-
-	/**
-	 * ATOMPUB parameters.
-	 *
-	 * @since 2.2.0
-	 * @var array
-	 */
-	var $params = array();
-
-	/**
-	 * Supported ATOMPUB media types.
-	 *
-	 * @since 2.3.0
-	 * @var array
-	 */
-	var $media_content_types = array('image/*','audio/*','video/*');
-
-	/**
-	 * ATOMPUB content type(s).
-	 *
-	 * @since 2.2.0
-	 * @var array
-	 */
-	var $atom_content_types = array('application/atom+xml');
-
-	/**
-	 * ATOMPUB methods.
-	 *
-	 * @since 2.2.0
-	 * @var unknown_type
-	 */
-	var $selectors = array();
-
-	/**
-	 * Whether to do output.
-	 *
-	 * Support for head.
-	 *
-	 * @since 2.2.0
-	 * @var bool
-	 */
-	var $do_output = true;
-
-	/**
-	 * Constructor - Sets up object properties.
-	 *
-	 * @since 2.2.0
-	 * @return AtomServer
-	 */
-	function __construct() {
-
-		$var_by_ref = explode( '/', $_SERVER['SCRIPT_NAME'] );
-		$this->script_name = array_pop( $var_by_ref );
-		$this->app_base = site_url( $this->script_name . '/' );
-
-		$this->selectors = array(
-			'@/service$@' =>
-				array('GET' => 'get_service'),
-			'@/categories$@' =>
-				array('GET' => 'get_categories_xml'),
-			'@/post/(\d+)$@' =>
-				array('GET' => 'get_post',
-						'PUT' => 'put_post',
-						'DELETE' => 'delete_post'),
-			'@/posts/?(\d+)?$@' =>
-				array('GET' => 'get_posts',
-						'POST' => 'create_post'),
-			'@/attachments/?(\d+)?$@' =>
-				array('GET' => 'get_attachment',
-						'POST' => 'create_attachment'),
-			'@/attachment/file/(\d+)$@' =>
-				array('GET' => 'get_file'),
-			'@/attachment/(\d+)$@' =>
-				array('GET' => 'get_attachment',
-						'PUT' => 'put_attachment',
-						'DELETE' => 'delete_attachment'),
-		);
-	}
-
-	/**
-	 * Handle ATOMPUB request.
-	 *
-	 * @since 2.2.0
-	 */
-	function handle_request() {
-
-		if ( !empty( $_SERVER['ORIG_PATH_INFO'] ) )
-			$path = $_SERVER['ORIG_PATH_INFO'];
-		else
-			$path = $_SERVER['PATH_INFO'];
-
-		$method = $_SERVER['REQUEST_METHOD'];
-
-		$this->process_conditionals();
-		//$this->process_conditionals();
-
-		// exception case for HEAD (treat exactly as GET, but don't output)
-		if ($method == 'HEAD') {
-			$this->do_output = false;
-			$method = 'GET';
-		}
-
-		// redirect to /service in case no path is found.
-		if (strlen($path) == 0 || $path == '/')
-			$this->redirect($this->get_service_url());
-
-		// check to see if AtomPub is enabled
-		if ( !get_option( 'enable_app' ) )
-			$this->forbidden( sprintf( __( 'AtomPub services are disabled on this site. An admin user can enable them at %s' ), admin_url('options-writing.php') ) );
-
-		// dispatch
-		foreach ( $this->selectors as $regex => $funcs ) {
-			if ( preg_match($regex, $path, $matches) ) {
-				if ( isset($funcs[$method]) ) {
-
-					// authenticate regardless of the operation and set the current
-					// user. each handler will decide if auth is required or not.
-					if ( !$this->authenticate() ) {
-						$this->auth_required('Credentials required.');
-					}
-
-					array_shift($matches);
-					call_user_func_array(array($this,$funcs[$method]), $matches);
-					wp_die();
-				} else {
-					// only allow what we have handlers for...
-					$this->not_allowed(array_keys($funcs));
-				}
-			}
-		}
-
-		// oops, nothing found
-		$this->not_found();
-	}
-
-	/**
-	 * Retrieve XML for ATOMPUB service.
-	 *
-	 * @since 2.2.0
-	 */
-	function get_service() {
-
-		if ( !current_user_can( 'edit_posts' ) )
-			$this->auth_required( __( 'Sorry, you do not have the right to access this site.' ) );
-
-		$entries_url = esc_attr($this->get_entries_url());
-		$categories_url = esc_attr($this->get_categories_url());
-		$media_url = esc_attr($this->get_attachments_url());
-		$accepted_media_types = '';
-		foreach ($this->media_content_types as $med) {
-			$accepted_media_types = $accepted_media_types . "<accept>" . $med . "</accept>";
-		}
-		$atom_prefix="atom";
-		$atom_blogname = get_bloginfo('name');
-		$service_doc = <<<EOD
-<service xmlns="$this->ATOMPUB_NS" xmlns:$atom_prefix="$this->ATOM_NS">
-  <workspace>
-    <$atom_prefix:title>$atom_blogname Workspace</$atom_prefix:title>
-    <collection href="$entries_url">
-      <$atom_prefix:title>$atom_blogname Posts</$atom_prefix:title>
-      <accept>$this->ATOM_CONTENT_TYPE;type=entry</accept>
-      <categories href="$categories_url" />
-    </collection>
-    <collection href="$media_url">
-      <$atom_prefix:title>$atom_blogname Media</$atom_prefix:title>
-      $accepted_media_types
-    </collection>
-  </workspace>
-</service>
-
-EOD;
-
-		$this->output($service_doc, $this->SERVICE_CONTENT_TYPE);
-	}
-
-	/**
-	 * Retrieve categories list in XML format.
-	 *
-	 * @since 2.2.0
-	 */
-	function get_categories_xml() {
-
-		if ( !current_user_can( 'edit_posts' ) )
-			$this->auth_required( __( 'Sorry, you do not have the right to access this site.' ) );
-
-		$home = esc_attr(get_bloginfo_rss('url'));
-
-		$categories = "";
-		$cats = get_categories(array('hierarchical' => 0, 'hide_empty' => 0));
-		foreach ( (array) $cats as $cat ) {
-			$categories .= "    <category term=\"" . esc_attr($cat->name) . "\" />\n";
-		}
-		$output = <<<EOD
-<app:categories xmlns:app="$this->ATOMPUB_NS"
-	xmlns="$this->ATOM_NS"
-	fixed="yes" scheme="$home">
-	$categories
-</app:categories>
-EOD;
-		$this->output($output, $this->CATEGORIES_CONTENT_TYPE);
-	}
-
-	/**
-	 * Create new post.
-	 *
-	 * @since 2.2.0
-	 */
-	function create_post() {
-		global $user_ID;
-		$this->get_accepted_content_type($this->atom_content_types);
-
-		$parser = new AtomParser();
-		if ( !$parser->parse() )
-			$this->client_error();
-
-		$entry = array_pop($parser->feed->entries);
-
-		$publish = ! ( isset( $entry->draft ) && 'yes' == trim( $entry->draft ) );
-		$cap = ($publish) ? 'publish_posts' : 'edit_posts';
-
-		if ( !current_user_can($cap) )
-			$this->auth_required(__('Sorry, you do not have the right to edit/publish new posts.'));
-
-		$catnames = array();
-		if ( !empty( $entry->categories ) ) {
-			foreach ( $entry->categories as $cat ) {
-				array_push($catnames, $cat["term"]);
-			}
-		}
-
-		$wp_cats = get_categories(array('hide_empty' => false));
-
-		$post_category = array();
-
-		foreach ( $wp_cats as $cat ) {
-			if ( in_array($cat->name, $catnames) )
-				array_push($post_category, $cat->term_id);
-		}
-
-		$blog_ID = get_current_blog_id();
-		$post_status = ($publish) ? 'publish' : 'draft';
-		$post_author = (int) $user_ID;
-
-		$post_title   = '';
-		$post_content = '';
-		$post_excerpt = '';
-		$pubtimes     = '';
-
-		if ( isset( $entry->title ) && is_array( $entry->title ) && !empty( $entry->title[1] ) )
-			$post_title = (string) $entry->title[1];
-		if ( isset( $entry->content ) && is_array( $entry->content ) && !empty( $entry->content[1] ) )
-			$post_content = (string) $entry->content[1];
-		if ( isset( $entry->summary ) && is_array( $entry->summary ) && !empty( $entry->summary[1] ) )
-			$post_excerpt = (string) $entry->summary[1];
-		if ( !empty( $entry->published ) )
-			$pubtimes = (string) $entry->published;
-
-		$pubtimes = $this->get_publish_time( $pubtimes );
-
-		$post_date = $pubtimes[0];
-		$post_date_gmt = $pubtimes[1];
-
-		if ( isset( $_SERVER['HTTP_SLUG'] ) )
-			$post_name = $_SERVER['HTTP_SLUG'];
-
-		$post_data = compact('blog_ID', 'post_author', 'post_date', 'post_date_gmt', 'post_content', 'post_title', 'post_category', 'post_status', 'post_excerpt', 'post_name');
-
-		$this->escape($post_data);
-
-		$postID = wp_insert_post($post_data);
-		if ( is_wp_error( $postID ) )
-			$this->internal_error($postID->get_error_message());
-
-		if ( !$postID )
-			$this->internal_error(__('Sorry, your entry could not be posted. Something wrong happened.'));
-
-		// getting warning here about unable to set headers
-		// because something in the cache is printing to the buffer
-		// could we clean up wp_set_post_categories or cache to not print
-		// this could affect our ability to send back the right headers
-		@wp_set_post_categories($postID, $post_category);
-
-		do_action( 'atompub_create_post', $postID, $entry );
-
-		$output = $this->get_entry($postID);
-
-		$this->created($postID, $output);
-	}
-
-	/**
-	 * Retrieve post.
-	 *
-	 * @since 2.2.0
-	 *
-	 * @param int $postID Post ID.
-	 */
-	function get_post($postID) {
-		global $entry;
-
-		if ( ! get_post( $postID ) || ! current_user_can( 'edit_post', $postID ) )
-			$this->auth_required( __( 'Sorry, you do not have the right to access this post.' ) );
-
-		$this->set_current_entry($postID);
-		$output = $this->get_entry($postID);
-		$this->output($output);
-
-	}
-
-	/**
-	 * Update post.
-	 *
-	 * @since 2.2.0
-	 *
-	 * @param int $postID Post ID.
-	 */
-	function put_post($postID) {
-		// checked for valid content-types (atom+xml)
-		// quick check and exit
-		$this->get_accepted_content_type($this->atom_content_types);
-
-		$parser = new AtomParser();
-		if ( !$parser->parse() )
-			$this->bad_request();
-
-		$parsed = array_pop($parser->feed->entries);
-
-		// check for not found
-		global $entry;
-		$this->set_current_entry($postID);
-
-		if ( !current_user_can('edit_post', $postID) )
-			$this->auth_required(__('Sorry, you do not have the right to edit this post.'));
-
-		$publish = ! ( isset($parsed->draft) && 'yes' == trim($parsed->draft) );
-
-		if ( $publish && ! current_user_can( 'publish_posts' ) )
-			$this->auth_required( __( 'Sorry, you do not have the right to publish this post.' ) );
-
-		$post_status = ($publish) ? 'publish' : 'draft';
-
-		extract($entry);
-
-		$post_title = $parsed->title[1];
-		$post_content = $parsed->content[1];
-		$post_excerpt = $parsed->summary[1];
-		$pubtimes = $this->get_publish_time($entry->published);
-		$post_date = $pubtimes[0];
-		$post_date_gmt = $pubtimes[1];
-		$pubtimes = $this->get_publish_time($parsed->updated);
-		$post_modified = $pubtimes[0];
-		$post_modified_gmt = $pubtimes[1];
-
-		$postdata = compact('ID', 'post_content', 'post_title', 'post_category', 'post_status', 'post_excerpt', 'post_date', 'post_date_gmt', 'post_modified', 'post_modified_gmt');
-		$this->escape($postdata);
-
-		$result = wp_update_post($postdata);
-
-		if ( !$result )
-			$this->internal_error(__('For some strange yet very annoying reason, this post could not be edited.'));
-
-		do_action( 'atompub_put_post', $ID, $parsed );
-
-		$this->ok();
-	}
-
-	/**
-	 * Remove post.
-	 *
-	 * @since 2.2.0
-	 *
-	 * @param int $postID Post ID.
-	 */
-	function delete_post($postID) {
-
-		// check for not found
-		global $entry;
-		$this->set_current_entry($postID);
-
-		if ( !current_user_can('delete_post', $postID) )
-			$this->auth_required(__('Sorry, you do not have the right to delete this post.'));
-
-		if ( $entry['post_type'] == 'attachment' ) {
-			$this->delete_attachment($postID);
-		} else {
-			$result = wp_delete_post($postID);
-
-			if ( !$result ) {
-				$this->internal_error(__('For some strange yet very annoying reason, this post could not be deleted.'));
-			}
-
-			$this->ok();
-		}
-
-	}
-
-	/**
-	 * Retrieve attachment.
-	 *
-	 * @since 2.2.0
-	 *
-	 * @param int $postID Optional. Post ID.
-	 */
-	function get_attachment($postID = null) {
-		if ( !current_user_can( 'upload_files' ) )
-			$this->auth_required( __( 'You do not have permission to upload files.' ) );
-
-		if ( !isset($postID) ) {
-			$this->get_attachments();
-		} else {
-			if ( ! current_user_can( 'edit_post', $postID ) )
-				$this->auth_required( __( 'Sorry, you do not have the right to edit this post.' ) );
-
-			$this->set_current_entry($postID);
-			$output = $this->get_entry($postID, 'attachment');
-			$this->output($output);
-		}
-	}
-
-	/**
-	 * Create new attachment.
-	 *
-	 * @since 2.2.0
-	 */
-	function create_attachment() {
-
-		$type = $this->get_accepted_content_type();
-
-		if ( !current_user_can('upload_files') )
-			$this->auth_required( __( 'You do not have permission to upload files.' ) );
-
-		$fp = fopen("php://input", "rb");
-		$bits = null;
-		while ( !feof($fp) ) {
-			$bits .= fread($fp, 4096);
-		}
-		fclose($fp);
-
-		$slug = '';
-		if ( isset( $_SERVER['HTTP_SLUG'] ) )
-			$slug = $_SERVER['HTTP_SLUG'];
-		elseif ( isset( $_SERVER['HTTP_TITLE'] ) )
-			$slug = $_SERVER['HTTP_TITLE'];
-		elseif ( empty( $slug ) ) // just make a random name
-			$slug = substr( md5( uniqid( microtime() ) ), 0, 7);
-		$ext = preg_replace( '|.*/([a-z0-9]+)|', '$1', $_SERVER['CONTENT_TYPE'] );
-		$slug = sanitize_file_name( "$slug.$ext" );
-		$file = wp_upload_bits( $slug, null, $bits);
-
-		$url = $file['url'];
-		$file = $file['file'];
-
-		do_action('wp_create_file_in_uploads', $file); // replicate
-
-		// Construct the attachment array
-		$attachment = array(
-			'post_title' => $slug,
-			'post_content' => $slug,
-			'post_status' => 'attachment',
-			'post_parent' => 0,
-			'post_mime_type' => $type,
-			'guid' => $url
-			);
-
-		// Save the data
-		$postID = wp_insert_attachment($attachment, $file);
-
-		if (!$postID)
-			$this->internal_error(__('Sorry, your entry could not be posted. Something wrong happened.'));
-
-		$output = $this->get_entry($postID, 'attachment');
-
-		$this->created($postID, $output, 'attachment');
-	}
-
-	/**
-	 * Update attachment.
-	 *
-	 * @since 2.2.0
-	 *
-	 * @param int $postID Post ID.
-	 */
-	function put_attachment($postID) {
-		// checked for valid content-types (atom+xml)
-		// quick check and exit
-		$this->get_accepted_content_type($this->atom_content_types);
-
-		$parser = new AtomParser();
-		if (!$parser->parse()) {
-			$this->bad_request();
-		}
-
-		$parsed = array_pop($parser->feed->entries);
-
-		// check for not found
-		global $entry;
-		$this->set_current_entry($postID);
-
-		if ( !current_user_can('edit_post', $entry['ID']) || 'attachment' != $entry['post_type'] )
-			$this->auth_required(__('Sorry, you do not have the right to edit this post.'));
-
-		extract($entry);
-
-		$post_title = $parsed->title[1];
-		$post_content = $parsed->summary[1];
-		$pubtimes = $this->get_publish_time($parsed->updated);
-		$post_modified = $pubtimes[0];
-		$post_modified_gmt = $pubtimes[1];
-
-		$postdata = compact('ID', 'post_content', 'post_title', 'post_category', 'post_status', 'post_excerpt', 'post_modified', 'post_modified_gmt');
-		$this->escape($postdata);
-
-		$result = wp_update_post($postdata);
-
-		if ( !$result )
-			$this->internal_error(__('For some strange yet very annoying reason, this post could not be edited.'));
-
-		$this->ok();
-	}
-
-	/**
-	 * Remove attachment.
-	 *
-	 * @since 2.2.0
-	 *
-	 * @param int $postID Post ID.
-	 */
-	function delete_attachment($postID) {
-
-		// check for not found
-		global $entry;
-		$this->set_current_entry($postID);
-
-		if ( !current_user_can('delete_post', $postID) )
-			$this->auth_required(__('Sorry, you do not have the right to delete this post.'));
-
-		$location = get_post_meta($entry['ID'], '_wp_attached_file', true);
-		$filetype = wp_check_filetype($location);
-
-		if ( !isset($location) || 'attachment' != $entry['post_type'] || empty($filetype['ext']) )
-			$this->internal_error(__('Error occurred while accessing post metadata for file location.'));
-
-		// delete attachment
-		$result = wp_delete_attachment($postID);
-
-		if ( !$result )
-			$this->internal_error(__('For some strange yet very annoying reason, this post could not be deleted.'));
-
-		$this->ok();
-	}
-
-	/**
-	 * Retrieve attachment from post.
-	 *
-	 * @since 2.2.0
-	 *
-	 * @param int $postID Post ID.
-	 */
-	function get_file($postID) {
-
-		// check for not found
-		global $entry;
-		$this->set_current_entry($postID);
-
-		// then whether user can edit the specific post
-		if ( !current_user_can('edit_post', $postID) )
-			$this->auth_required(__('Sorry, you do not have the right to edit this post.'));
-
-		$location = get_post_meta($entry['ID'], '_wp_attached_file', true);
-		$location = get_option ('upload_path') . '/' . $location;
-		$filetype = wp_check_filetype($location);
-
-		if ( !isset($location) || 'attachment' != $entry['post_type'] || empty($filetype['ext']) )
-			$this->internal_error(__('Error occurred while accessing post metadata for file location.'));
-
-		status_header('200');
-		header('Content-Type: ' . $entry['post_mime_type']);
-		header('Connection: close');
-
-		if ( $fp = fopen($location, "rb") ) {
-			status_header('200');
-			header('Content-Type: ' . $entry['post_mime_type']);
-			header('Connection: close');
-
-			while ( !feof($fp) ) {
-				echo fread($fp, 4096);
-			}
-
-			fclose($fp);
-		} else {
-			status_header ('404');
-		}
-
-		wp_die();
-	}
-
-	/**
-	 * Upload file to blog and add attachment to post.
-	 *
-	 * @since 2.2.0
-	 *
-	 * @param int $postID Post ID.
-	 */
-	function put_file($postID) {
-
-		// first check if user can upload
-		if ( !current_user_can('upload_files') )
-			$this->auth_required(__('You do not have permission to upload files.'));
-
-		// check for not found
-		global $entry;
-		$this->set_current_entry($postID);
-
-		// then whether user can edit the specific post
-		if ( !current_user_can('edit_post', $postID) )
-			$this->auth_required(__('Sorry, you do not have the right to edit this post.'));
-
-		$upload_dir = wp_upload_dir( );
-		$location = get_post_meta($entry['ID'], '_wp_attached_file', true);
-		$filetype = wp_check_filetype($location);
-
-		$location = "{$upload_dir['basedir']}/{$location}";
-
-		if (!isset($location) || 'attachment' != $entry['post_type'] || empty($filetype['ext']))
-			$this->internal_error(__('Error occurred while accessing post metadata for file location.'));
-
-		$fp = fopen("php://input", "rb");
-		$localfp = fopen($location, "w+");
-		while ( !feof($fp) ) {
-			fwrite($localfp,fread($fp, 4096));
-		}
-		fclose($fp);
-		fclose($localfp);
-
-		$ID = $entry['ID'];
-		$pubtimes = $this->get_publish_time($entry->published);
-		$post_date = $pubtimes[0];
-		$post_date_gmt = $pubtimes[1];
-		$pubtimes = $this->get_publish_time($parsed->updated);
-		$post_modified = $pubtimes[0];
-		$post_modified_gmt = $pubtimes[1];
-
-		$post_data = compact('ID', 'post_date', 'post_date_gmt', 'post_modified', 'post_modified_gmt');
-		$result = wp_update_post($post_data);
-
-		if ( !$result )
-			$this->internal_error(__('Sorry, your entry could not be posted. Something wrong happened.'));
-
-		wp_update_attachment_metadata( $postID, wp_generate_attachment_metadata( $postID, $location ) );
-
-		$this->ok();
-	}
-
-	/**
-	 * Retrieve entries URL.
-	 *
-	 * @since 2.2.0
-	 *
-	 * @param int $page Page ID.
-	 * @return string
-	 */
-	function get_entries_url($page = null) {
-		if ( isset($GLOBALS['post_type']) && ( $GLOBALS['post_type'] == 'attachment' ) )
-			$path = $this->MEDIA_PATH;
-		else
-			$path = $this->ENTRIES_PATH;
-		$url = $this->app_base . $path;
-		if ( isset($page) && is_int($page) )
-			$url .= "/$page";
-		return $url;
-	}
-
-	/**
-	 * Display entries URL.
-	 *
-	 * @since 2.2.0
-	 *
-	 * @param int $page Page ID.
-	 */
-	function the_entries_url($page = null) {
-		echo $this->get_entries_url($page);
-	}
-
-	/**
-	 * Retrieve categories URL.
-	 *
-	 * @since 2.2.0
-	 *
-	 * @param mixed $deprecated Not used.
-	 * @return string
-	 */
-	function get_categories_url($deprecated = '') {
-		if ( !empty( $deprecated ) )
-			_deprecated_argument( __FUNCTION__, '2.5' );
-		return $this->app_base . $this->CATEGORIES_PATH;
-	}
-
-	/**
-	 * Display category URL.
-	 *
-	 * @since 2.2.0
-	 */
-	function the_categories_url() {
-		echo $this->get_categories_url();
-	}
-
-	/**
-	 * Retrieve attachment URL.
-	 *
-	 * @since 2.2.0
-	 *
-	 * @param int $page Page ID.
-	 * @return string
-	 */
-	function get_attachments_url($page = null) {
-		$url = $this->app_base . $this->MEDIA_PATH;
-		if (isset($page) && is_int($page)) {
-			$url .= "/$page";
-		}
-		return $url;
-	}
-
-	/**
-	 * Display attachment URL.
-	 *
-	 * @since 2.2.0
-	 *
-	 * @param int $page Page ID.
-	 */
-	function the_attachments_url($page = null) {
-		echo $this->get_attachments_url($page);
-	}
-
-	/**
-	 * Retrieve service URL.
-	 *
-	 * @since 2.3.0
-	 *
-	 * @return string
-	 */
-	function get_service_url() {
-		return $this->app_base . $this->SERVICE_PATH;
-	}
-
-	/**
-	 * Retrieve entry URL.
-	 *
-	 * @since 2.7.0
-	 *
-	 * @param int $postID Post ID.
-	 * @return string
-	 */
-	function get_entry_url($postID = null) {
-		if (!isset($postID)) {
-			global $post;
-			$postID = (int) $post->ID;
-		}
-
-		$url = $this->app_base . $this->ENTRY_PATH . "/$postID";
-
-		return $url;
-	}
-
-	/**
-	 * Display entry URL.
-	 *
-	 * @since 2.7.0
-	 *
-	 * @param int $postID Post ID.
-	 */
-	function the_entry_url($postID = null) {
-		echo $this->get_entry_url($postID);
-	}
-
-	/**
-	 * Retrieve media URL.
-	 *
-	 * @since 2.2.0
-	 *
-	 * @param int $postID Post ID.
-	 * @return string
-	 */
-	function get_media_url($postID = null) {
-		if (!isset($postID)) {
-			global $post;
-			$postID = (int) $post->ID;
-		}
-
-		$url = $this->app_base . $this->MEDIA_SINGLE_PATH ."/file/$postID";
-
-		return $url;
-	}
-
-	/**
-	 * Display the media URL.
-	 *
-	 * @since 2.2.0
-	 *
-	 * @param int $postID Post ID.
-	 */
-	function the_media_url($postID = null) {
-		echo $this->get_media_url($postID);
-	}
-
-	/**
-	 * Set the current entry to post ID.
-	 *
-	 * @since 2.2.0
-	 *
-	 * @param int $postID Post ID.
-	 */
-	function set_current_entry($postID) {
-		global $entry;
-
-		if (!isset($postID)) {
-			// $this->bad_request();
-			$this->not_found();
-		}
-
-		$entry = wp_get_single_post($postID,ARRAY_A);
-
-		if (!isset($entry) || !isset($entry['ID']))
-			$this->not_found();
-
-		return;
-	}
-
-	/**
-	 * Display posts XML.
-	 *
-	 * @since 2.2.0
-	 *
-	 * @param int $page Optional. Page ID.
-	 * @param string $post_type Optional, default is 'post'. Post Type.
-	 */
-	function get_posts($page = 1, $post_type = 'post') {
-		$feed = $this->get_feed($page, $post_type);
-		$this->output($feed);
-	}
-
-	/**
-	 * Display attachment XML.
-	 *
-	 * @since 2.2.0
-	 *
-	 * @param int $page Page ID.
-	 * @param string $post_type Optional, default is 'attachment'. Post type.
-	 */
-	function get_attachments($page = 1, $post_type = 'attachment') {
-		$GLOBALS['post_type'] = $post_type;
-		$feed = $this->get_feed($page, $post_type);
-		$this->output($feed);
-	}
-
-	/**
-	 * Retrieve feed XML.
-	 *
-	 * @since 2.2.0
-	 *
-	 * @param int $page Page ID.
-	 * @param string $post_type Optional, default is post. Post type.
-	 * @return string
-	 */
-	function get_feed($page = 1, $post_type = 'post') {
-		global $post, $wp, $wp_query, $posts, $wpdb, $blog_id;
-		ob_start();
-
-		$this->ENTRY_PATH = $post_type;
-
-		if (!isset($page)) {
-			$page = 1;
-		}
-		$page = (int) $page;
-
-		$count = get_option('posts_per_rss');
-
-		wp('posts_per_page=' . $count . '&offset=' . ($count * ($page-1)) . '&orderby=modified&perm=readable');
-
-		$post = $GLOBALS['post'];
-		$posts = $GLOBALS['posts'];
-		$wp = $GLOBALS['wp'];
-		$wp_query = $GLOBALS['wp_query'];
-		$wpdb = $GLOBALS['wpdb'];
-		$blog_id = (int) $GLOBALS['blog_id'];
-
-		$last_page = $wp_query->max_num_pages;
-		$next_page = (($page + 1) > $last_page) ? null : $page + 1;
-		$prev_page = ($page - 1) < 1 ? null : $page - 1;
-		$last_page = ((int)$last_page == 1 || (int)$last_page == 0) ? null : (int) $last_page;
-		$self_page = $page > 1 ? $page : null;
-?><feed xmlns="<?php echo $this->ATOM_NS ?>" xmlns:app="<?php echo $this->ATOMPUB_NS ?>" xml:lang="<?php bloginfo_rss( 'language' ); ?>" <?php do_action('app_ns'); ?> >
-<id><?php $this->the_entries_url() ?></id>
-<updated><?php echo mysql2date('Y-m-d\TH:i:s\Z', get_lastpostmodified('GMT'), false); ?></updated>
-<title type="text"><?php bloginfo_rss('name') ?></title>
-<subtitle type="text"><?php bloginfo_rss("description") ?></subtitle>
-<link rel="first" type="<?php echo $this->ATOM_CONTENT_TYPE ?>" href="<?php $this->the_entries_url() ?>" />
-<?php if (isset($prev_page)): ?>
-<link rel="previous" type="<?php echo $this->ATOM_CONTENT_TYPE ?>" href="<?php $this->the_entries_url($prev_page) ?>" />
-<?php endif; ?>
-<?php if (isset($next_page)): ?>
-<link rel="next" type="<?php echo $this->ATOM_CONTENT_TYPE ?>" href="<?php $this->the_entries_url($next_page) ?>" />
-<?php endif; ?>
-<link rel="last" type="<?php echo $this->ATOM_CONTENT_TYPE ?>" href="<?php $this->the_entries_url($last_page) ?>" />
-<link rel="self" type="<?php echo $this->ATOM_CONTENT_TYPE ?>" href="<?php $this->the_entries_url($self_page) ?>" />
-<rights type="text">Copyright <?php echo date('Y'); ?></rights>
-<?php do_action('app_head'); ?>
-<?php if ( have_posts() ) {
-			while ( have_posts() ) {
-				the_post();
-				$this->echo_entry();
-			}
-		}
-?></feed>
-<?php
-		$feed = ob_get_contents();
-		ob_end_clean();
-		return $feed;
-	}
-
-	/**
-	 * Display entry XML.
-	 *
-	 * @since 2.2.0
-	 *
-	 * @param int $postID Post ID.
-	 * @param string $post_type Optional, default is post. Post type.
-	 * @return string.
-	 */
-	function get_entry($postID, $post_type = 'post') {
-		ob_start();
-		switch($post_type) {
-			case 'post':
-				$varname = 'p';
-				break;
-			case 'attachment':
-				$this->ENTRY_PATH = 'attachment';
-				$varname = 'attachment_id';
-				break;
-		}
-		query_posts($varname . '=' . $postID);
-		if ( have_posts() ) {
-			while ( have_posts() ) {
-				the_post();
-				$this->echo_entry();
-				$entry = ob_get_contents();
-				break;
-			}
-		}
-		ob_end_clean();
-
-		return $entry;
-	}
-
-	/**
-	 * Display post content XML.
-	 *
-	 * @since 2.3.0
-	 */
-	function echo_entry() { ?>
-<entry xmlns="<?php echo $this->ATOM_NS ?>"
-       xmlns:app="<?php echo $this->ATOMPUB_NS ?>" xml:lang="<?php bloginfo_rss( 'language' ); ?>">
-	<id><?php the_guid( $GLOBALS['post']->ID ); ?></id>
-<?php list($content_type, $content) = prep_atom_text_construct(get_the_title()); ?>
-	<title type="<?php echo $content_type ?>"><?php echo $content ?></title>
-	<updated><?php echo get_post_modified_time('Y-m-d\TH:i:s\Z', true); ?></updated>
-	<published><?php echo get_post_time('Y-m-d\TH:i:s\Z', true); ?></published>
-	<app:edited><?php echo get_post_modified_time('Y-m-d\TH:i:s\Z', true); ?></app:edited>
-	<app:control>
-		<app:draft><?php echo ($GLOBALS['post']->post_status == 'draft' ? 'yes' : 'no') ?></app:draft>
-	</app:control>
-	<author>
-		<name><?php the_author()?></name>
-<?php if ( get_the_author_meta('url') && get_the_author_meta('url') != 'http://' ) { ?>
-		<uri><?php the_author_meta('url') ?></uri>
-<?php } ?>
-	</author>
-<?php if ($GLOBALS['post']->post_type == 'attachment') { ?>
-	<link rel="edit-media" href="<?php $this->the_media_url() ?>" />
-	<content type="<?php echo $GLOBALS['post']->post_mime_type ?>" src="<?php the_guid() ; ?>"/>
-<?php } else { ?>
-	<link href="<?php the_permalink_rss() ?>" />
-<?php if ( strlen( $GLOBALS['post']->post_content ) ) :
-list($content_type, $content) = prep_atom_text_construct(get_the_content()); ?>
-	<content type="<?php echo $content_type ?>"><?php echo $content ?></content>
-<?php endif; ?>
-<?php } ?>
-	<link rel="edit" href="<?php $this->the_entry_url() ?>" />
-	<?php the_category_rss( 'atom' ); ?>
-<?php list($content_type, $content) = prep_atom_text_construct(get_the_excerpt()); ?>
-	<summary type="<?php echo $content_type ?>"><?php echo $content ?></summary>
-	<?php do_action('app_entry'); ?>
-</entry>
-<?php }
-
-	/**
-	 * Set 'OK' (200) status header.
-	 *
-	 * @since 2.2.0
-	 */
-	function ok() {
-		header('Content-Type: text/plain');
-		status_header('200');
-		wp_die();
-	}
-
-	/**
-	 * Set 'No Content' (204) status header.
-	 *
-	 * @since 2.2.0
-	 */
-	function no_content() {
-		header('Content-Type: text/plain');
-		status_header('204');
-		echo "Moved to Trash.";
-		wp_die();
-	}
-
-	/**
-	 * Display 'Internal Server Error' (500) status header.
-	 *
-	 * @since 2.2.0
-	 *
-	 * @param string $msg Optional. Status string.
-	 */
-	function internal_error($msg = 'Internal Server Error') {
-		header('Content-Type: text/plain');
-		status_header('500');
-		echo $msg;
-		wp_die();
-	}
-
-	/**
-	 * Set 'Bad Request' (400) status header.
-	 *
-	 * @since 2.2.0
-	 */
-	function bad_request() {
-		header('Content-Type: text/plain');
-		status_header('400');
-		wp_die();
-	}
-
-	/**
-	 * Set 'Length Required' (411) status header.
-	 *
-	 * @since 2.2.0
-	 */
-	function length_required() {
-		header("HTTP/1.1 411 Length Required");
-		header('Content-Type: text/plain');
-		status_header('411');
-		wp_die();
-	}
-
-	/**
-	 * Set 'Unsupported Media Type' (415) status header.
-	 *
-	 * @since 2.2.0
-	 */
-	function invalid_media() {
-		header("HTTP/1.1 415 Unsupported Media Type");
-		header('Content-Type: text/plain');
-		wp_die();
-	}
-
-	/**
-	 * Set 'Forbidden' (403) status header.
-	 *
-	 * @since 2.6.0
-	 */
-	function forbidden($reason='') {
-		header('Content-Type: text/plain');
-		status_header('403');
-		echo $reason;
-		wp_die();
-	}
-
-	/**
-	 * Set 'Not Found' (404) status header.
-	 *
-	 * @since 2.2.0
-	 */
-	function not_found() {
-		header('Content-Type: text/plain');
-		status_header('404');
-		wp_die();
-	}
-
-	/**
-	 * Set 'Not Allowed' (405) status header.
-	 *
-	 * @since 2.2.0
-	 */
-	function not_allowed($allow) {
-		header('Allow: ' . join(',', $allow));
-		status_header('405');
-		wp_die();
-	}
-
-	/**
-	 * Display Redirect (302) content and set status headers.
-	 *
-	 * @since 2.3.0
-	 */
-	function redirect($url) {
-		$escaped_url = esc_attr($url);
-		$content = <<<EOD
-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
-<html>
-  <head>
-    <title>302 Found</title>
-  </head>
-<body>
-  <h1>Found</h1>
-  <p>The document has moved <a href="$escaped_url">here</a>.</p>
-  </body>
-</html>
-
-EOD;
-		header('HTTP/1.1 302 Moved');
-		header('Content-Type: text/html');
-		header('Location: ' . $url);
-		echo $content;
-		wp_die();
-
-	}
-
-	/**
-	 * Set 'Client Error' (400) status header.
-	 *
-	 * @since 2.2.0
-	 */
-	function client_error($msg = 'Client Error') {
-		header('Content-Type: text/plain');
-		status_header('400');
-		wp_die();
-	}
-
-	/**
-	 * Set created status headers (201).
-	 *
-	 * Sets the 'content-type', 'content-location', and 'location'.
-	 *
-	 * @since 2.2.0
-	 */
-	function created($post_ID, $content, $post_type = 'post') {
-		$edit = $this->get_entry_url($post_ID);
-		switch($post_type) {
-			case 'post':
-				$ctloc = $this->get_entry_url($post_ID);
-				break;
-			case 'attachment':
-				$edit = $this->app_base . "attachments/$post_ID";
-				break;
-		}
-		header("Content-Type: $this->ATOM_CONTENT_TYPE");
-		if (isset($ctloc))
-			header('Content-Location: ' . $ctloc);
-		header('Location: ' . $edit);
-		status_header('201');
-		echo $content;
-		wp_die();
-	}
-
-	/**
-	 * Set 'Auth Required' (401) headers.
-	 *
-	 * @since 2.2.0
-	 *
-	 * @param string $msg Status header content and HTML content.
-	 */
-	function auth_required($msg) {
-		nocache_headers();
-		header('WWW-Authenticate: Basic realm="WordPress Atom Protocol"');
-		header("HTTP/1.1 401 $msg");
-		header('Status: 401 ' . $msg);
-		header('Content-Type: text/html');
-		$content = <<<EOD
-<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 2.0//EN">
-<html>
-  <head>
-    <title>401 Unauthorized</title>
-  </head>
-<body>
-    <h1>401 Unauthorized</h1>
-    <p>$msg</p>
-  </body>
-</html>
-
-EOD;
-		echo $content;
-		wp_die();
-	}
-
-	/**
-	 * Display XML and set headers with content type.
-	 *
-	 * @since 2.2.0
-	 *
-	 * @param string $xml Display feed content.
-	 * @param string $ctype Optional, default is 'atom+xml'. Feed content type.
-	 */
-	function output($xml, $ctype = 'application/atom+xml') {
-		status_header('200');
-		$xml = '<?xml version="1.0" encoding="' . strtolower(get_option('blog_charset')) . '"?>'."\n".$xml;
-		header('Connection: close');
-		header('Content-Length: '. strlen($xml));
-		header('Content-Type: ' . $ctype);
-		header('Content-Disposition: attachment; filename=atom.xml');
-		header('Date: '. date('r'));
-		if ($this->do_output)
-			echo $xml;
-		wp_die();
-	}
-
-	/**
-	 * Sanitize content for database usage.
-	 *
-	 * @since 2.2.0
-	 *
-	 * @param array $array Sanitize array and multi-dimension array.
-	 */
-	function escape(&$array) {
-		global $wpdb;
-
-		foreach ($array as $k => $v) {
-				if (is_array($v)) {
-						$this->escape($array[$k]);
-				} else if (is_object($v)) {
-						//skip
-				} else {
-						$array[$k] = $wpdb->escape($v);
-				}
-		}
-	}
-
-	/**
-	 * Access credential through various methods and perform login.
-	 *
-	 * @since 2.2.0
-	 *
-	 * @return bool
-	 */
-	function authenticate() {
-
-		// if using mod_rewrite/ENV hack
-		// http://www.besthostratings.com/articles/http-auth-php-cgi.html
-		if (isset($_SERVER['HTTP_AUTHORIZATION'])) {
-			list($_SERVER['PHP_AUTH_USER'], $_SERVER['PHP_AUTH_PW']) =
-				explode(':', base64_decode(substr($_SERVER['HTTP_AUTHORIZATION'], 6)));
-		} else if (isset($_SERVER['REDIRECT_REMOTE_USER'])) {
-			// Workaround for setups that do not forward HTTP_AUTHORIZATION
-			// See http://trac.wordpress.org/ticket/7361
-			list($_SERVER['PHP_AUTH_USER'], $_SERVER['PHP_AUTH_PW']) =
-				explode(':', base64_decode(substr($_SERVER['REDIRECT_REMOTE_USER'], 6)));
-		}
-
-		// If Basic Auth is working...
-		if (isset($_SERVER['PHP_AUTH_USER']) && isset($_SERVER['PHP_AUTH_PW'])) {
-
-			$user = wp_authenticate($_SERVER['PHP_AUTH_USER'], $_SERVER['PHP_AUTH_PW']);
-			if ( $user && !is_wp_error($user) ) {
-				wp_set_current_user($user->ID);
-				return true;
-			}
-		}
-
-		return false;
-	}
-
-	/**
-	 * Retrieve accepted content types.
-	 *
-	 * @since 2.2.0
-	 *
-	 * @param array $types Optional. Content Types.
-	 * @return string
-	 */
-	function get_accepted_content_type($types = null) {
-
-		if (!isset($types)) {
-			$types = $this->media_content_types;
-		}
-
-		if (!isset($_SERVER['CONTENT_LENGTH']) || !isset($_SERVER['CONTENT_TYPE'])) {
-			$this->length_required();
-		}
-
-		$type = $_SERVER['CONTENT_TYPE'];
-		list($type,$subtype) = explode('/',$type);
-		list($subtype) = explode(";",$subtype); // strip MIME parameters
-
-		foreach($types as $t) {
-			list($acceptedType,$acceptedSubtype) = explode('/',$t);
-			if ($acceptedType == '*' || $acceptedType == $type) {
-				if ($acceptedSubtype == '*' || $acceptedSubtype == $subtype)
-					return $type . "/" . $subtype;
-			}
-		}
-
-		$this->invalid_media();
-	}
-
-	/**
-	 * Process conditionals for posts.
-	 *
-	 * @since 2.2.0
-	 */
-	function process_conditionals() {
-
-		if (empty($this->params)) return;
-		if ($_SERVER['REQUEST_METHOD'] == 'DELETE') return;
-
-		switch($this->params[0]) {
-			case $this->ENTRY_PATH:
-				global $post;
-				$post = wp_get_single_post($this->params[1]);
-				$wp_last_modified = get_post_modified_time('D, d M Y H:i:s', true);
-				$post = null;
-				break;
-			case $this->ENTRIES_PATH:
-				$wp_last_modified = mysql2date('D, d M Y H:i:s', get_lastpostmodified('GMT'), 0).' GMT';
-				break;
-			default:
-				return;
-		}
-		$wp_etag = md5($wp_last_modified);
-		@header("Last-Modified: $wp_last_modified");
-		@header("ETag: $wp_etag");
-
-		// Support for Conditional GET
-		if (isset($_SERVER['HTTP_IF_NONE_MATCH']))
-			$client_etag = stripslashes($_SERVER['HTTP_IF_NONE_MATCH']);
-		else
-			$client_etag = false;
-
-		$client_last_modified = trim( $_SERVER['HTTP_IF_MODIFIED_SINCE']);
-		// If string is empty, return 0. If not, attempt to parse into a timestamp
-		$client_modified_timestamp = $client_last_modified ? strtotime($client_last_modified) : 0;
-
-		// Make a timestamp for our most recent modification...
-		$wp_modified_timestamp = strtotime($wp_last_modified);
-
-		if ( ($client_last_modified && $client_etag) ?
-		(($client_modified_timestamp >= $wp_modified_timestamp) && ($client_etag == $wp_etag)) :
-		(($client_modified_timestamp >= $wp_modified_timestamp) || ($client_etag == $wp_etag)) ) {
-			status_header( 304 );
-			wp_die();
-		}
-	}
-
-	/**
-	 * Convert RFC3339 time string to timestamp.
-	 *
-	 * @since 2.3.0
-	 *
-	 * @param string $str String to time.
-	 * @return bool|int false if format is incorrect.
-	 */
-	function rfc3339_str2time($str) {
-
-		$match = false;
-		if (!preg_match("/(\d{4}-\d{2}-\d{2})T(\d{2}\:\d{2}\:\d{2})\.?\d{0,3}(Z|[+-]+\d{2}\:\d{2})/", $str, $match))
-			return false;
-
-		if ($match[3] == 'Z')
-			$match[3] = '+0000';
-
-		return strtotime($match[1] . " " . $match[2] . " " . $match[3]);
-	}
-
-	/**
-	 * Retrieve published time to display in XML.
-	 *
-	 * @since 2.3.0
-	 *
-	 * @param string $published Time string.
-	 * @return string
-	 */
-	function get_publish_time($published) {
-
-		$pubtime = $this->rfc3339_str2time($published);
-
-		if (!$pubtime) {
-			return array(current_time('mysql'),current_time('mysql',1));
-		} else {
-			return array(date("Y-m-d H:i:s", $pubtime), gmdate("Y-m-d H:i:s", $pubtime));
-		}
-	}
-
-}
--- a/web/wp-includes/class-wp-customize-control.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/class-wp-customize-control.php	Wed Dec 19 17:46:52 2012 -0800
@@ -6,25 +6,71 @@
  * @subpackage Customize
  * @since 3.4.0
  */
+class WP_Customize_Control {
+	/**
+	 * @access public
+	 * @var WP_Customize_Manager
+	 */
+	public $manager;
 
-class WP_Customize_Control {
-	public $manager;
+	/**
+	 * @access public
+	 * @var string
+	 */
 	public $id;
 
-	// All settings tied to the control.
+	/**
+	 * All settings tied to the control.
+	 *
+	 * @access public
+	 * @var array
+	 */
 	public $settings;
 
-	// The primary setting for the control (if there is one).
+	/**
+	 * The primary setting for the control (if there is one).
+	 *
+	 * @access public
+	 * @var string
+	 */
 	public $setting = 'default';
 
+	/**
+	 * @access public
+	 * @var int
+	 */
 	public $priority          = 10;
+
+	/**
+	 * @access public
+	 * @var string
+	 */
 	public $section           = '';
+
+	/**
+	 * @access public
+	 * @var string
+	 */
 	public $label             = '';
-	// @todo: remove choices
+
+	/**
+	 * @todo: Remove choices
+	 *
+	 * @access public
+	 * @var array
+	 */
 	public $choices           = array();
 
+	/**
+	 * @access public
+	 * @var array
+	 */
 	public $json = array();
 
+	/**
+	 * @access public
+	 * @var string
+	 */
 	public $type = 'text';
 
 
@@ -34,6 +80,10 @@
 	 * If $args['settings'] is not defined, use the $id as the setting ID.
 	 *
 	 * @since 3.4.0
+	 *
+	 * @param WP_Customize_Manager $manager
+	 * @param string $id
+	 * @param array $args
 	 */
 	function __construct( $manager, $id, $args = array() ) {
 		$keys = array_keys( get_object_vars( $this ) );
@@ -75,6 +125,9 @@
 	 * Grabs the main setting by default.
 	 *
 	 * @since 3.4.0
+	 *
+	 * @param string $setting_key
+	 * @return mixed The requested setting's value, if the setting exists.
 	 */
 	public final function value( $setting_key = 'default' ) {
 		if ( isset( $this->settings[ $setting_key ] ) )
@@ -119,6 +172,7 @@
 	 * Check capabilities and render the control.
 	 *
 	 * @since 3.4.0
+	 * @uses WP_Customize_Control::render()
 	 */
 	public final function maybe_render() {
 		if ( ! $this->check_capabilities() )
@@ -144,6 +198,14 @@
 		</li><?php
 	}
 
+	/**
+	 * Get the data link parameter for a setting.
+	 *
+	 * @since 3.4.0
+	 *
+	 * @param string $setting_key
+	 * @return string Data link parameter, if $setting_key is a valid setting, empty string otherwise.
+	 */
 	public function get_link( $setting_key = 'default' ) {
 		if ( ! isset( $this->settings[ $setting_key ] ) )
 			return '';
@@ -151,6 +213,14 @@
 		return 'data-customize-setting-link="' . esc_attr( $this->settings[ $setting_key ]->id ) . '"';
 	}
 
+	/**
+	 * Render the data link parameter for a setting
+	 *
+	 * @since 3.4.0
+	 * @uses WP_Customize_Control::get_link()
+	 *
+	 * @param string $setting_key
+	 */
 	public function link( $setting_key = 'default' ) {
 		echo $this->get_link( $setting_key );
 	}
@@ -238,53 +308,117 @@
 	}
 }
 
+/**
+ * Customize Color Control Class
+ *
+ * @package WordPress
+ * @subpackage Customize
+ * @since 3.4.0
+ */
 class WP_Customize_Color_Control extends WP_Customize_Control {
+	/**
+	 * @access public
+	 * @var string
+	 */
 	public $type = 'color';
+
+	/**
+	 * @access public
+	 * @var array
+	 */
 	public $statuses;
 
+	/**
+	 * Constructor.
+	 *
+	 * If $args['settings'] is not defined, use the $id as the setting ID.
+	 *
+	 * @since 3.4.0
+	 * @uses WP_Customize_Control::__construct()
+	 *
+	 * @param WP_Customize_Manager $manager
+	 * @param string $id
+	 * @param array $args
+	 */
 	public function __construct( $manager, $id, $args = array() ) {
 		$this->statuses = array( '' => __('Default') );
 		parent::__construct( $manager, $id, $args );
 	}
 
+	/**
+	 * Enqueue control related scripts/styles.
+	 *
+	 * @since 3.4.0
+	 */
 	public function enqueue() {
-		wp_enqueue_script( 'farbtastic' );
-		wp_enqueue_style( 'farbtastic' );
+		wp_enqueue_script( 'wp-color-picker' );
+		wp_enqueue_style( 'wp-color-picker' );
 	}
 
+	/**
+	 * Refresh the parameters passed to the JavaScript via JSON.
+	 *
+	 * @since 3.4.0
+	 * @uses WP_Customize_Control::to_json()
+	 */
 	public function to_json() {
 		parent::to_json();
 		$this->json['statuses'] = $this->statuses;
 	}
 
+	/**
+	 * Render the control's content.
+	 *
+	 * @since 3.4.0
+	 */
 	public function render_content() {
+		$this_default = $this->setting->default;
+		$default_attr = '';
+		if ( $this_default ) {
+			if ( false === strpos( $this_default, '#' ) )
+				$this_default = '#' . $this_default;
+			$default_attr = ' data-default-color="' . esc_attr( $this_default ) . '"';
+		}
+		// The input's value gets set by JS. Don't fill it.
 		?>
 		<label>
 			<span class="customize-control-title"><?php echo esc_html( $this->label ); ?></span>
 			<div class="customize-control-content">
-				<div class="dropdown">
-					<div class="dropdown-content">
-						<div class="dropdown-status"></div>
-					</div>
-					<div class="dropdown-arrow"></div>
-				</div>
-				<input class="color-picker-hex" type="text" maxlength="7" placeholder="<?php esc_attr_e('Hex Value'); ?>" />
+				<input class="color-picker-hex" type="text" maxlength="7" placeholder="<?php esc_attr_e( 'Hex Value' ); ?>"<?php echo $default_attr ?> />
 			</div>
-			<div class="farbtastic-placeholder"></div>
 		</label>
 		<?php
 	}
 }
 
+/**
+ * Customize Upload Control Class
+ *
+ * @package WordPress
+ * @subpackage Customize
+ * @since 3.4.0
+ */
 class WP_Customize_Upload_Control extends WP_Customize_Control {
 	public $type    = 'upload';
 	public $removed = '';
 	public $context;
+	public $extensions = array();
 
+	/**
+	 * Enqueue control related scripts/styles.
+	 *
+	 * @since 3.4.0
+	 */
 	public function enqueue() {
 		wp_enqueue_script( 'wp-plupload' );
 	}
 
+	/**
+	 * Refresh the parameters passed to the JavaScript via JSON.
+	 *
+	 * @since 3.4.0
+	 * @uses WP_Customize_Control::to_json()
+	 */
 	public function to_json() {
 		parent::to_json();
 
@@ -292,8 +426,16 @@
 
 		if ( $this->context )
 			$this->json['context'] = $this->context;
+
+		if ( $this->extensions )
+			$this->json['extensions'] = implode( ',', $this->extensions );
 	}
 
+	/**
+	 * Render the control's content.
+	 *
+	 * @since 3.4.0
+	 */
 	public function render_content() {
 		?>
 		<label>
@@ -307,13 +449,33 @@
 	}
 }
 
+/**
+ * Customize Image Control Class
+ *
+ * @package WordPress
+ * @subpackage Customize
+ * @since 3.4.0
+ */
 class WP_Customize_Image_Control extends WP_Customize_Upload_Control {
 	public $type = 'image';
 	public $get_url;
 	public $statuses;
+	public $extensions = array( 'jpg', 'jpeg', 'gif', 'png' );
 
 	protected $tabs = array();
 
+	/**
+	 * Constructor.
+	 *
+	 * If $args['settings'] is not defined, use the $id as the setting ID.
+	 *
+	 * @since 3.4.0
+	 * @uses WP_Customize_Upload_Control::__construct()
+	 *
+	 * @param WP_Customize_Manager $manager
+	 * @param string $id
+	 * @param array $args
+	 */
 	public function __construct( $manager, $id, $args ) {
 		$this->statuses = array( '' => __('No Image') );
 
@@ -338,11 +500,22 @@
 			$this->manager->remove_control( $this->id );
 	}
 
+	/**
+	 * Refresh the parameters passed to the JavaScript via JSON.
+	 *
+	 * @since 3.4.0
+	 * @uses WP_Customize_Upload_Control::to_json()
+	 */
 	public function to_json() {
 		parent::to_json();
 		$this->json['statuses'] = $this->statuses;
 	}
 
+	/**
+	 * Render the control's content.
+	 *
+	 * @since 3.4.0
+	 */
 	public function render_content() {
 		$src = $this->value();
 		if ( isset( $this->get_url ) )
@@ -353,7 +526,7 @@
 			<span class="customize-control-title"><?php echo esc_html( $this->label ); ?></span>
 
 			<div class="customize-control-content">
-				<div class="dropdown preview-thumbnail">
+				<div class="dropdown preview-thumbnail" tabindex="0">
 					<div class="dropdown-content">
 						<?php if ( empty( $src ) ): ?>
 							<img style="display:none;" />
@@ -369,7 +542,7 @@
 			<div class="library">
 				<ul>
 					<?php foreach ( $this->tabs as $id => $tab ): ?>
-						<li data-customize-tab='<?php echo esc_attr( $id ); ?>'>
+						<li data-customize-tab='<?php echo esc_attr( $id ); ?>' tabindex='0'>
 							<?php echo esc_html( $tab['label'] ); ?>
 						</li>
 					<?php endforeach; ?>
@@ -388,6 +561,15 @@
 		<?php
 	}
 
+	/**
+	 * Add a tab to the control.
+	 *
+	 * @since 3.4.0
+	 *
+	 * @param string $id
+	 * @param string $label
+	 * @param mixed $callback
+	 */
 	public function add_tab( $id, $label, $callback ) {
 		$this->tabs[ $id ] = array(
 			'label'    => $label,
@@ -395,10 +577,20 @@
 		);
 	}
 
+	/**
+	 * Remove a tab from the control.
+	 *
+	 * @since 3.4.0
+	 *
+	 * @param string $id
+	 */
 	public function remove_tab( $id ) {
 		unset( $this->tabs[ $id ] );
 	}
 
+	/**
+	 * @since 3.4.0
+	 */
 	public function tab_upload_new() {
 		if ( ! _device_can_upload() ) {
 			?>
@@ -416,12 +608,21 @@
 		}
 	}
 
+	/**
+	 * @since 3.4.0
+	 */
 	public function tab_uploaded() {
 		?>
 		<div class="uploaded-target"></div>
 		<?php
 	}
 
+	/**
+	 * @since 3.4.0
+	 *
+	 * @param string $url
+	 * @param string $thumbnail_url
+	 */
 	public function print_tab_image( $url, $thumbnail_url = null ) {
 		$url = set_url_scheme( $url );
 		$thumbnail_url = ( $thumbnail_url ) ? set_url_scheme( $thumbnail_url ) : $url;
@@ -433,7 +634,23 @@
 	}
 }
 
+/**
+ * Customize Background Image Control Class
+ *
+ * @package WordPress
+ * @subpackage Customize
+ * @since 3.4.0
+ */
 class WP_Customize_Background_Image_Control extends WP_Customize_Image_Control {
+
+	/**
+	 * Constructor.
+	 *
+	 * @since 3.4.0
+	 * @uses WP_Customize_Image_Control::__construct()
+	 *
+	 * @param WP_Customize_Manager $manager
+	 */
 	public function __construct( $manager ) {
 		parent::__construct( $manager, 'background_image', array(
 			'label'    => __( 'Background Image' ),
@@ -446,6 +663,9 @@
 			$this->add_tab( 'default',  __('Default'),  array( $this, 'tab_default_background' ) );
 	}
 
+	/**
+	 * @since 3.4.0
+	 */
 	public function tab_uploaded() {
 		$backgrounds = get_posts( array(
 			'post_type'  => 'attachment',
@@ -464,11 +684,22 @@
 			$this->print_tab_image( esc_url_raw( $background->guid ) );
 	}
 
+	/**
+	 * @since 3.4.0
+	 * @uses WP_Customize_Image_Control::print_tab_image()
+	 */
 	public function tab_default_background() {
 		$this->print_tab_image( $this->setting->default );
 	}
 }
 
+/**
+ * Customize Header Image Control Class
+ *
+ * @package WordPress
+ * @subpackage Customize
+ * @since 3.4.0
+ */
 class WP_Customize_Header_Image_Control extends WP_Customize_Image_Control {
 	/**
 	 * The processed default headers.
@@ -484,6 +715,15 @@
 	 */
 	protected $uploaded_headers;
 
+	/**
+	 * Constructor.
+	 *
+	 * @since 3.4.0
+	 * @uses WP_Customize_Image_Control::__construct()
+	 * @uses WP_Customize_Image_Control::add_tab()
+	 *
+	 * @param WP_Customize_Manager $manager
+	 */
 	public function __construct( $manager ) {
 		parent::__construct( $manager, 'header_image', array(
 			'label'    => __( 'Header Image' ),
@@ -533,6 +773,12 @@
 		return parent::prepare_control();
 	}
 
+	/**
+	 * @since 3.4.0
+	 *
+	 * @param mixed $choice Which header image to select. (@see Custom_Image_Header::get_header_image() )
+	 * @param array $header
+	 */
 	public function print_header_image( $choice, $header ) {
 		$header['url']           = set_url_scheme( $header['url'] );
 		$header['thumbnail_url'] = set_url_scheme( $header['thumbnail_url'] );
@@ -553,6 +799,9 @@
 		<?php
 	}
 
+	/**
+	 * @since 3.4.0
+	 */
 	public function tab_uploaded() {
 		?><div class="uploaded-target"></div><?php
 
@@ -560,6 +809,9 @@
 			$this->print_header_image( $choice, $header );
 	}
 
+	/**
+	 * @since 3.4.0
+	 */
 	public function tab_default_headers() {
 		foreach ( $this->default_headers as $choice => $header )
 			$this->print_header_image( $choice, $header );
--- a/web/wp-includes/class-wp-customize-manager.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/class-wp-customize-manager.php	Wed Dec 19 17:46:52 2012 -0800
@@ -1,12 +1,11 @@
 <?php
 /**
- * Customize
+ * Customize Manager.
  *
  * @package WordPress
  * @subpackage Customize
  * @since 3.4.0
  */
-
 final class WP_Customize_Manager {
 	protected $theme;
 	protected $original_stylesheet;
@@ -56,10 +55,12 @@
 		add_action( 'customize_controls_enqueue_scripts', array( $this, 'enqueue_control_scripts' ) );
 	}
 
- 	/**
+	/**
 	 * Return true if it's an AJAX request.
 	 *
 	 * @since 3.4.0
+	 *
+	 * @return bool
 	 */
 	public function doing_ajax() {
 		return isset( $_POST['customized'] ) || ( defined( 'DOING_AJAX' ) && DOING_AJAX );
@@ -69,10 +70,10 @@
 	 * Custom wp_die wrapper. Returns either the standard message for UI
 	 * or the AJAX message.
 	 *
-	 * @param  mixed $ajax_message AJAX return
-	 * @param  mixed $message      UI message
+	 * @since 3.4.0
 	 *
-	 * @since 3.4.0
+	 * @param mixed $ajax_message AJAX return
+	 * @param mixed $message UI message
 	 */
 	protected function wp_die( $ajax_message, $message = null ) {
 		if ( $this->doing_ajax() )
@@ -88,6 +89,8 @@
 	 * Return the AJAX wp_die() handler if it's a customized request.
 	 *
 	 * @since 3.4.0
+	 *
+	 * @return string
 	 */
 	public function wp_die_handler() {
 		if ( $this->doing_ajax() )
@@ -95,10 +98,11 @@
 
 		return '_default_wp_die_handler';
 	}
+
 	/**
-	* Start preview and customize theme.
-	*
-	* Check if customize query variable exist. Init filters to filter the current theme.
+	 * Start preview and customize theme.
+	 *
+	 * Check if customize query variable exist. Init filters to filter the current theme.
 	 *
 	 * @since 3.4.0
 	 */
@@ -137,6 +141,11 @@
 		$this->start_previewing_theme();
 	}
 
+	/**
+	 * Callback to validate a theme once it is loaded
+	 *
+	 * @since 3.4.0
+	 */
 	function after_setup_theme() {
 		if ( ! $this->doing_ajax() && ! validate_current_theme() ) {
 			wp_redirect( 'themes.php?broken=true' );
@@ -279,6 +288,9 @@
 	 * Instead, the JS will sniff out the location header.
 	 *
 	 * @since 3.4.0
+	 *
+	 * @param $status
+	 * @return int
 	 */
 	public function wp_redirect_status( $status ) {
 		if ( $this->is_preview() && ! is_admin() )
@@ -291,6 +303,9 @@
 	 * Decode the $_POST attribute used to override the WP_Customize_Setting values.
 	 *
 	 * @since 3.4.0
+	 *
+	 * @param mixed $setting A WP_Customize_Setting derived object
+	 * @return string Sanitized attribute
 	 */
 	public function post_value( $setting ) {
 		if ( ! isset( $this->_post_values ) ) {
@@ -367,11 +382,11 @@
 		);
 
 		if ( 2 == $this->nonce_tick ) {
- 			$settings['nonce'] = array(
- 				'save' => wp_create_nonce( 'save-customize_' . $this->get_stylesheet() ),
- 				'preview' => wp_create_nonce( 'preview-customize_' . $this->get_stylesheet() )
- 			);
- 		}
+			$settings['nonce'] = array(
+				'save' => wp_create_nonce( 'save-customize_' . $this->get_stylesheet() ),
+				'preview' => wp_create_nonce( 'preview-customize_' . $this->get_stylesheet() )
+			);
+		}
 
 		foreach ( $this->settings as $id => $setting ) {
 			$settings['values'][ $id ] = $setting->js_value();
@@ -464,6 +479,7 @@
 	 *
 	 * @since 3.4.0
 	 *
+	 * @param $current_theme {@internal Parameter is not used}
 	 * @return string Theme name.
 	 */
 	public function current_theme( $current_theme ) {
@@ -486,7 +502,7 @@
 			// Temporarily stop previewing the theme to allow switch_themes()
 			// to operate properly.
 			$this->stop_previewing_theme();
-			switch_theme( $this->get_template(), $this->get_stylesheet() );
+			switch_theme( $this->get_stylesheet() );
 			$this->start_previewing_theme();
 		}
 
@@ -630,6 +646,7 @@
 	 *
 	 * @param object $a Object A.
 	 * @param object $b Object B.
+	 * @return int
 	 */
 	protected final function _cmp_priority( $a, $b ) {
 		$ap = $a->priority;
@@ -960,6 +977,9 @@
 	 * Accepts 'blank', and otherwise uses sanitize_hex_color_no_hash().
 	 *
 	 * @since 3.4.0
+	 *
+	 * @param string $color
+	 * @return string
 	 */
 	public function _sanitize_header_textcolor( $color ) {
 		return ( 'blank' === $color ) ? 'blank' : sanitize_hex_color_no_hash( $color );
@@ -973,6 +993,9 @@
  * For validating values without a #, see sanitize_hex_color_no_hash().
  *
  * @since 3.4.0
+ *
+ * @param string $color
+ * @return string|null
  */
 function sanitize_hex_color( $color ) {
 	if ( '' === $color )
@@ -995,6 +1018,10 @@
  * Returns either '', a 3 or 6 digit hex color (without a #), or null.
  *
  * @since 3.4.0
+ * @uses sanitize_hex_color()
+ *
+ * @param string $color
+ * @return string|null
  */
 function sanitize_hex_color_no_hash( $color ) {
 	$color = ltrim( $color, '#' );
@@ -1012,6 +1039,9 @@
  * This method should only be necessary if using sanitize_hex_color_no_hash().
  *
  * @since 3.4.0
+ *
+ * @param string $color
+ * @return string
  */
 function maybe_hash_hex_color( $color ) {
 	if ( $unhashed = sanitize_hex_color_no_hash( $color ) )
--- a/web/wp-includes/class-wp-customize-section.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/class-wp-customize-section.php	Wed Dec 19 17:46:52 2012 -0800
@@ -1,12 +1,11 @@
 <?php
 /**
- * Customize Section Class
+ * Customize Section Class.
  *
  * @package WordPress
  * @subpackage Customize
  * @since 3.4.0
  */
-
 class WP_Customize_Section {
 	public $manager;
 	public $id;
@@ -22,6 +21,7 @@
 	 *
 	 * @since 3.4.0
 	 *
+	 * @param WP_Customize_Manager $manager
 	 * @param string $id An specific ID of the section.
 	 * @param array $args Section arguments.
 	 */
@@ -72,7 +72,6 @@
 		$this->render();
 	}
 
-
 	/**
 	 * Render the section.
 	 *
@@ -81,7 +80,7 @@
 	protected function render() {
 		?>
 		<li id="customize-section-<?php echo esc_attr( $this->id ); ?>" class="control-section customize-section">
-			<h3 class="customize-section-title" title="<?php echo esc_attr( $this->description ); ?>"><?php echo esc_html( $this->title ); ?></h3>
+			<h3 class="customize-section-title" tabindex="0" title="<?php echo esc_attr( $this->description ); ?>"><?php echo esc_html( $this->title ); ?></h3>
 			<ul class="customize-section-content">
 				<?php
 				foreach ( $this->controls as $control )
--- a/web/wp-includes/class-wp-customize-setting.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/class-wp-customize-setting.php	Wed Dec 19 17:46:52 2012 -0800
@@ -1,12 +1,11 @@
 <?php
 /**
- * Customize Setting Class
+ * Customize Setting Class.
  *
  * @package WordPress
  * @subpackage Customize
  * @since 3.4.0
  */
-
 class WP_Customize_Setting {
 	public $manager;
 	public $id;
@@ -28,9 +27,11 @@
 	 *
 	 * @since 3.4.0
 	 *
+	 * @param WP_Customize_Manager $manager
 	 * @param string $id An specific ID of the setting. Can be a
 	 *                   theme mod or option name.
 	 * @param array $args Setting arguments.
+	 * @return WP_Customize_Setting
 	 */
 	function __construct( $manager, $id, $args = array() ) {
 		$keys = array_keys( get_class_vars( __CLASS__ ) );
@@ -87,8 +88,9 @@
 	 * Callback function to filter the theme mods and options.
 	 *
 	 * @since 3.4.0
+	 * @uses WP_Customize_Setting::multidimensional_replace()
 	 *
-	 * @param mixed Old value.
+	 * @param mixed $original Old value.
 	 * @return mixed New or old value.
 	 */
 	public function _preview_filter( $original ) {
@@ -118,8 +120,8 @@
 	 *
 	 * @since 3.4.0
 	 *
-	 * @param $default mixed A default value which is used as a fallback. Default is null.
-	 * @return mixed Either the default value on failure or sanitized value.
+	 * @param mixed $default A default value which is used as a fallback. Default is null.
+	 * @return mixed The default value on failure, otherwise the sanitized value.
 	 */
 	public final function post_value( $default = null ) {
 		if ( isset( $this->_post_value ) )
@@ -138,7 +140,7 @@
 	 *
 	 * @since 3.4.0
 	 *
-	 * @param $value mixed The value to sanitize.
+	 * @param mixed $value The value to sanitize.
 	 * @return mixed Null if an input isn't valid, otherwise the sanitized value.
 	 */
 	public function sanitize( $value ) {
@@ -151,7 +153,7 @@
 	 *
 	 * @since 3.4.0
 	 *
-	 * @param $value mixed The value to update.
+	 * @param mixed $value The value to update.
 	 * @return mixed The result of saving the value.
 	 */
 	protected function update( $value ) {
@@ -172,7 +174,7 @@
 	 *
 	 * @since 3.4.0
 	 *
-	 * @param $value mixed The value to update.
+	 * @param mixed $value The value to update.
 	 * @return mixed The result of saving the value.
 	 */
 	protected function _update_theme_mod( $value ) {
@@ -192,7 +194,7 @@
 	 *
 	 * @since 3.4.0
 	 *
-	 * @param $value mixed The value to update.
+	 * @param mixed $value The value to update.
 	 * @return mixed The result of saving the value.
 	 */
 	protected function _update_option( $value ) {
@@ -276,7 +278,7 @@
 	 * @param $root
 	 * @param $keys
 	 * @param bool $create Default is false.
-	 * @return null|array
+	 * @return null|array Keys are 'root', 'node', and 'key'.
 	 */
 	final protected function multidimensional( &$root, $keys, $create = false ) {
 		if ( $create && empty( $root ) )
@@ -372,19 +374,36 @@
  * A setting that is used to filter a value, but will not save the results.
  *
  * Results should be properly handled using another setting or callback.
+ *
+ * @package WordPress
+ * @subpackage Customize
+ * @since 3.4.0
  */
 class WP_Customize_Filter_Setting extends WP_Customize_Setting {
-	public function update() {}
+
+	/**
+	 * @since 3.4.0
+	 */
+	public function update( $value ) {}
 }
 
 /**
  * A setting that is used to filter a value, but will not save the results.
  *
  * Results should be properly handled using another setting or callback.
+ *
+ * @package WordPress
+ * @subpackage Customize
+ * @since 3.4.0
  */
 final class WP_Customize_Header_Image_Setting extends WP_Customize_Setting {
 	public $id = 'header_image_data';
 
+	/**
+	 * @since 3.4.0
+	 *
+	 * @param $value
+	 */
 	public function update( $value ) {
 		global $custom_image_header;
 
@@ -400,9 +419,20 @@
 	}
 }
 
+/**
+ * @package WordPress
+ * @subpackage Customize
+ * @since 3.4.0
+ */
 final class WP_Customize_Background_Image_Setting extends WP_Customize_Setting {
 	public $id = 'background_image_thumb';
 
+	/**
+	 * @since 3.4.0
+	 * @uses remove_theme_mod()
+	 *
+	 * @param $value
+	 */
 	public function update( $value ) {
 		remove_theme_mod( 'background_image_thumb' );
 	}
--- a/web/wp-includes/class-wp-editor.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/class-wp-editor.php	Wed Dec 19 17:46:52 2012 -0800
@@ -32,9 +32,10 @@
 			'wpautop' => true, // use wpautop?
 			'media_buttons' => true, // show insert/upload button(s)
 			'textarea_name' => $editor_id, // set the textarea name to something different, square brackets [] can be used here
-			'textarea_rows' => get_option('default_post_edit_rows', 10), // rows="..."
+			'textarea_rows' => 20,
 			'tabindex' => '',
-			'editor_css' => '', // intended for extra styles for both visual and HTML editors buttons, needs to include the <style> tags, can use "scoped".
+			'tabfocus_elements' => ':prev,:next', // the previous and next element ID to move the focus to when pressing the Tab key in TinyMCE
+			'editor_css' => '', // intended for extra styles for both visual and Text editors buttons, needs to include the <style> tags, can use "scoped".
 			'editor_class' => '', // add extra class(es) to the editor textarea
 			'teeny' => false, // output the minimal editor config used in Press This
 			'dfw' => false, // replace the default fullscreen with DFW (needs specific DOM elements and css)
@@ -51,6 +52,28 @@
 		if ( self::$this_quicktags )
 			self::$has_quicktags = true;
 
+		if ( empty( $set['editor_height'] ) )
+			return $set;
+
+		if ( 'content' === $editor_id ) {
+			// A cookie (set when a user resizes the editor) overrides the height.
+			$cookie = (int) get_user_setting( 'ed_size' );
+
+			// Upgrade an old TinyMCE cookie if it is still around, and the new one isn't.
+			if ( ! $cookie && isset( $_COOKIE['TinyMCE_content_size'] ) ) {
+				parse_str( $_COOKIE['TinyMCE_content_size'], $cookie );
+ 				$cookie = $cookie['ch'];
+			}
+
+			if ( $cookie )
+				$set['editor_height'] = $cookie;
+		}
+
+		if ( $set['editor_height'] < 50 )
+			$set['editor_height'] = 50;
+		elseif ( $set['editor_height'] > 5000 )
+			$set['editor_height'] = 5000;
+
 		return $set;
 	}
 
@@ -66,16 +89,21 @@
 		$set = self::parse_settings($editor_id, $settings);
 		$editor_class = ' class="' . trim( $set['editor_class'] . ' wp-editor-area' ) . '"';
 		$tabindex = $set['tabindex'] ? ' tabindex="' . (int) $set['tabindex'] . '"' : '';
-		$rows = ' rows="' . (int) $set['textarea_rows'] . '"';
 		$switch_class = 'html-active';
 		$toolbar = $buttons = '';
 
+		if ( ! empty( $set['editor_height'] ) )
+			$height = ' style="height: ' . $set['editor_height'] . 'px"';
+		else
+			$height = ' rows="' . $set['textarea_rows'] . '"';
+
 		if ( !current_user_can( 'upload_files' ) )
 			$set['media_buttons'] = false;
 
 		if ( self::$this_quicktags && self::$this_tinymce ) {
 			$switch_class = 'html-active';
 
+			// 'html' and 'switch-html' are used for the "Text" editor tab.
 			if ( 'html' == wp_default_editor() ) {
 				add_filter('the_editor_content', 'wp_htmledit_pre');
 			} else {
@@ -83,11 +111,11 @@
 				$switch_class = 'tmce-active';
 			}
 
-			$buttons .= '<a id="' . $editor_id . '-html" class="hide-if-no-js wp-switch-editor switch-html" onclick="switchEditors.switchto(this);">' . __('HTML') . "</a>\n";
-			$buttons .= '<a id="' . $editor_id . '-tmce" class="hide-if-no-js wp-switch-editor switch-tmce" onclick="switchEditors.switchto(this);">' . __('Visual') . "</a>\n";
+			$buttons .= '<a id="' . $editor_id . '-html" class="wp-switch-editor switch-html" onclick="switchEditors.switchto(this);">' . _x( 'Text', 'Name for the Text editor tab (formerly HTML)' ) . "</a>\n";
+			$buttons .= '<a id="' . $editor_id . '-tmce" class="wp-switch-editor switch-tmce" onclick="switchEditors.switchto(this);">' . __('Visual') . "</a>\n";
 		}
 
-		echo '<div id="wp-' . $editor_id . '-wrap" class="wp-editor-wrap ' . $switch_class . '">';
+		echo '<div id="wp-' . $editor_id . '-wrap" class="wp-core-ui wp-editor-wrap ' . $switch_class . '">';
 
 		if ( self::$editor_buttons_css ) {
 			wp_print_styles('editor-buttons');
@@ -98,7 +126,7 @@
 			echo $set['editor_css'] . "\n";
 
 		if ( !empty($buttons) || $set['media_buttons'] ) {
-			echo '<div id="wp-' . $editor_id . '-editor-tools" class="wp-editor-tools">';
+			echo '<div id="wp-' . $editor_id . '-editor-tools" class="wp-editor-tools hide-if-no-js">';
 			echo $buttons;
 
 			if ( $set['media_buttons'] ) {
@@ -107,14 +135,14 @@
 				if ( !function_exists('media_buttons') )
 					include(ABSPATH . 'wp-admin/includes/media.php');
 
-				echo '<div id="wp-' . $editor_id . '-media-buttons" class="hide-if-no-js wp-media-buttons">';
+				echo '<div id="wp-' . $editor_id . '-media-buttons" class="wp-media-buttons">';
 				do_action('media_buttons', $editor_id);
 				echo "</div>\n";
 			}
 			echo "</div>\n";
 		}
 
-		$the_editor = apply_filters('the_editor', '<div id="wp-' . $editor_id . '-editor-container" class="wp-editor-container"><textarea' . $editor_class . $rows . $tabindex . ' cols="40" name="' . $set['textarea_name'] . '" id="' . $editor_id . '">%s</textarea></div>');
+		$the_editor = apply_filters('the_editor', '<div id="wp-' . $editor_id . '-editor-container" class="wp-editor-container"><textarea' . $editor_class . $height . $tabindex . ' cols="40" name="' . $set['textarea_name'] . '" id="' . $editor_id . '">%s</textarea></div>');
 		$content = apply_filters('the_editor_content', $content);
 
 		printf($the_editor, $content);
@@ -124,7 +152,7 @@
 	}
 
 	public static function editor_settings($editor_id, $set) {
-		global $editor_styles, $post;
+		global $editor_styles;
 		$first_run = false;
 
 		if ( empty(self::$first_init) ) {
@@ -170,7 +198,7 @@
 				$ext_plugins = '';
 
 				if ( $set['teeny'] ) {
-					self::$plugins = $plugins = apply_filters( 'teeny_mce_plugins', array('inlinepopups', 'fullscreen', 'wordpress', 'wplink', 'wpdialogs'), $editor_id );
+					self::$plugins = $plugins = apply_filters( 'teeny_mce_plugins', array('inlinepopups', 'fullscreen', 'wordpress', 'wplink', 'wpdialogs' ), $editor_id );
 				} else {
 					/*
 					The following filter takes an associative array of external plugins for TinyMCE in the form 'plugin_name' => 'url'.
@@ -209,7 +237,7 @@
 
 						foreach ( $mce_external_plugins as $name => $url ) {
 
-							if ( is_ssl() ) $url = str_replace('http://', 'https://', $url);
+							$url = set_url_scheme( $url );
 
 							$plugins[] = '-' . $name;
 
@@ -310,14 +338,14 @@
 					'keep_styles' => false,
 					'entities' => '38,amp,60,lt,62,gt',
 					'accessibility_focus' => true,
-					'tabfocus_elements' => 'title,publish',
 					'media_strict' => false,
 					'paste_remove_styles' => true,
 					'paste_remove_spans' => true,
 					'paste_strip_class_attributes' => 'all',
 					'paste_text_use_dialog' => true,
+					'webkit_fake_resize' => false,
 					'spellchecker_rpc_url' => self::$baseurl . '/plugins/spellchecker/rpc.php',
-					'extended_valid_elements' => 'article[*],aside[*],audio[*],canvas[*],command[*],datalist[*],details[*],embed[*],figcaption[*],figure[*],footer[*],header[*],hgroup[*],keygen[*],mark[*],meter[*],nav[*],output[*],progress[*],section[*],source[*],summary,time[*],video[*],wbr',
+					'schema' => 'html5',
 					'wpeditimage_disable_captions' => $no_captions,
 					'wp_fullscreen_content_css' => self::$baseurl . '/plugins/wpfullscreen/css/wp-fullscreen.css',
 					'plugins' => implode( ',', $plugins )
@@ -335,9 +363,8 @@
 						$template_dir = get_template_directory();
 
 						foreach ( $editor_styles as $key => $file ) {
-							if ( $file && file_exists( "$template_dir/$file" ) ) {
+							if ( $file && file_exists( "$template_dir/$file" ) )
 								$mce_css[] = "$template_uri/$file";
-							}
 						}
 					}
 
@@ -358,19 +385,19 @@
 			}
 
 			if ( $set['teeny'] ) {
-				$mce_buttons = apply_filters( 'teeny_mce_buttons', array('bold', 'italic', 'underline', 'blockquote', 'separator', 'strikethrough', 'bullist', 'numlist', 'justifyleft', 'justifycenter', 'justifyright', 'undo', 'redo', 'link', 'unlink', 'fullscreen'), $editor_id );
+				$mce_buttons = apply_filters( 'teeny_mce_buttons', array('bold', 'italic', 'underline', 'blockquote', 'strikethrough', 'bullist', 'numlist', 'justifyleft', 'justifycenter', 'justifyright', 'undo', 'redo', 'link', 'unlink', 'fullscreen'), $editor_id );
 				$mce_buttons_2 = $mce_buttons_3 = $mce_buttons_4 = array();
 			} else {
-				$mce_buttons = apply_filters('mce_buttons', array('bold', 'italic', 'strikethrough', '|', 'bullist', 'numlist', 'blockquote', '|', 'justifyleft', 'justifycenter', 'justifyright', '|', 'link', 'unlink', 'wp_more', '|', 'spellchecker', 'fullscreen', 'wp_adv' ), $editor_id);
-				$mce_buttons_2 = apply_filters('mce_buttons_2', array( 'formatselect', 'underline', 'justifyfull', 'forecolor', '|', 'pastetext', 'pasteword', 'removeformat', '|', 'charmap', '|', 'outdent', 'indent', '|', 'undo', 'redo', 'wp_help' ), $editor_id);
+				$mce_buttons = apply_filters('mce_buttons', array('bold', 'italic', 'strikethrough', 'bullist', 'numlist', 'blockquote', 'justifyleft', 'justifycenter', 'justifyright', 'link', 'unlink', 'wp_more', 'spellchecker', 'fullscreen', 'wp_adv' ), $editor_id);
+				$mce_buttons_2 = apply_filters('mce_buttons_2', array( 'formatselect', 'underline', 'justifyfull', 'forecolor', 'pastetext', 'pasteword', 'removeformat', 'charmap', 'outdent', 'indent', 'undo', 'redo', 'wp_help' ), $editor_id);
 				$mce_buttons_3 = apply_filters('mce_buttons_3', array(), $editor_id);
 				$mce_buttons_4 = apply_filters('mce_buttons_4', array(), $editor_id);
 			}
 
 			$body_class = $editor_id;
 
-			if ( isset($post) )
-				$body_class .= " post-type-$post->post_type";
+			if ( $post = get_post() )
+				$body_class .= ' post-type-' . $post->post_type;
 
 			if ( !empty($set['tinymce']['body_class']) ) {
 				$body_class .= ' ' . $set['tinymce']['body_class'];
@@ -398,9 +425,13 @@
 				'theme_advanced_buttons2' => implode($mce_buttons_2, ','),
 				'theme_advanced_buttons3' => implode($mce_buttons_3, ','),
 				'theme_advanced_buttons4' => implode($mce_buttons_4, ','),
+				'tabfocus_elements' => $set['tabfocus_elements'],
 				'body_class' => $body_class
 			);
 
+			// The main editor doesn't use the TinyMCE resizing cookie.
+			$mceInit['theme_advanced_resizing_use_cookie'] = 'content' !== $editor_id || empty( $set['editor_height'] );
+
 			if ( $first_run )
 				$mceInit = array_merge(self::$first_init, $mceInit);
 
@@ -408,7 +439,7 @@
 				$mceInit = array_merge($mceInit, $set['tinymce']);
 
 			// For people who really REALLY know what they're doing with TinyMCE
-			// You can modify initArray to add, remove, change elements of the config before tinyMCE.init
+			// You can modify $mceInit to add, remove, change elements of the config before tinyMCE.init
 			// Setting "valid_elements", "invalid_elements" and "extended_valid_elements" can be done through this filter.
 			// Best is to use the default cleanup by not specifying valid_elements, as TinyMCE contains full set of XHTML 1.0.
 			if ( $set['teeny'] ) {
@@ -538,25 +569,37 @@
 		$baseurl = self::$baseurl;
 
 		if ( $tmce_on ) {
-			if ( $compressed )
+			if ( $compressed ) {
 				echo "<script type='text/javascript' src='{$baseurl}/wp-tinymce.php?c=1&amp;$version'></script>\n";
-			else
+			} else {
 				echo "<script type='text/javascript' src='{$baseurl}/tiny_mce.js?$version'></script>\n";
+				echo "<script type='text/javascript' src='{$baseurl}/wp-tinymce-schema.js?$version'></script>\n";
+			}
 
 			if ( 'en' != self::$mce_locale && isset($lang) )
 				echo "<script type='text/javascript'>\n$lang\n</script>\n";
 			else
 				echo "<script type='text/javascript' src='{$baseurl}/langs/wp-langs-en.js?$version'></script>\n";
 		}
+
+		$mce = ( self::$has_tinymce && wp_default_editor() == 'tinymce' ) || ! self::$has_quicktags;
 ?>
 
 	<script type="text/javascript">
+		var wpActiveEditor;
+
 		(function(){
-			var init, ed, qt, first_init, mce = <?php echo wp_default_editor() == 'tinymce' ? 'true' : 'false'; ?>;
+			var init, ed, qt, first_init, DOM, el, i, mce = <?php echo (int) $mce; ?>;
 
 			if ( typeof(tinymce) == 'object' ) {
+				DOM = tinymce.DOM;
 				// mark wp_theme/ui.css as loaded
-				tinymce.DOM.files[tinymce.baseURI.getURI() + '/themes/advanced/skins/wp_theme/ui.css'] = true;
+				DOM.files[tinymce.baseURI.getURI() + '/themes/advanced/skins/wp_theme/ui.css'] = true;
+
+				DOM.events.add( DOM.select('.wp-editor-wrap'), 'mousedown', function(e){
+					if ( this.id )
+						wpActiveEditor = this.id.slice(3, -5);
+				});
 
 				for ( ed in tinyMCEPreInit.mceInit ) {
 					if ( first_init ) {
@@ -568,6 +611,14 @@
 					if ( mce )
 						try { tinymce.init(init); } catch(e){}
 				}
+			} else {
+				if ( tinyMCEPreInit.qtInit ) {
+					for ( i in tinyMCEPreInit.qtInit ) {
+						el = tinyMCEPreInit.qtInit[i].id;
+						if ( el )
+							document.getElementById('wp-'+el+'-wrap').onmousedown = function(){ wpActiveEditor = this.id.slice(3, -5); }
+					}
+				}
 			}
 
 			if ( typeof(QTags) == 'function' ) {
@@ -576,29 +627,23 @@
 				}
 			}
 		})();
-
-		var wpActiveEditor;
-
-		jQuery('.wp-editor-wrap').mousedown(function(e){
-			wpActiveEditor = this.id.slice(3, -5);
-		});
-
-<?php
+		<?php
 
 		if ( self::$ext_plugins )
 			echo self::$ext_plugins . "\n";
 
 		if ( ! $compressed && $tmce_on ) {
-?>
-		(function(){var t=tinyMCEPreInit,sl=tinymce.ScriptLoader,ln=t.ref.language,th=t.ref.theme,pl=t.ref.plugins;sl.markDone(t.base+'/langs/'+ln+'.js');sl.markDone(t.base+'/themes/'+th+'/langs/'+ln+'.js');sl.markDone(t.base+'/themes/'+th+'/langs/'+ln+'_dlg.js');sl.markDone(t.base+'/themes/advanced/skins/wp_theme/ui.css');tinymce.each(pl.split(','),function(n){if(n&&n.charAt(0)!='-'){sl.markDone(t.base+'/plugins/'+n+'/langs/'+ln+'.js');sl.markDone(t.base+'/plugins/'+n+'/langs/'+ln+'_dlg.js');}});})();
-<?php
+			?>
+			(function(){var t=tinyMCEPreInit,sl=tinymce.ScriptLoader,ln=t.ref.language,th=t.ref.theme,pl=t.ref.plugins;sl.markDone(t.base+'/langs/'+ln+'.js');sl.markDone(t.base+'/themes/'+th+'/langs/'+ln+'.js');sl.markDone(t.base+'/themes/'+th+'/langs/'+ln+'_dlg.js');sl.markDone(t.base+'/themes/advanced/skins/wp_theme/ui.css');tinymce.each(pl.split(','),function(n){if(n&&n.charAt(0)!='-'){sl.markDone(t.base+'/plugins/'+n+'/langs/'+ln+'.js');sl.markDone(t.base+'/plugins/'+n+'/langs/'+ln+'_dlg.js');}});})();
+			<?php
 		}
 
 		if ( !is_admin() )
 			echo 'var ajaxurl = "' . admin_url( 'admin-ajax.php', 'relative' ) . '";';
-?>
-	</script>
-<?php
+
+		?>
+		</script>
+		<?php
 
 		if ( in_array('wplink', self::$plugins, true) || in_array('link', self::$qt_buttons, true) )
 			self::wp_link_dialog();
@@ -610,7 +655,8 @@
 	}
 
 	public static function wp_fullscreen_html() {
-		global $content_width, $post;
+		global $content_width;
+		$post = get_post();
 
 		$width = isset($content_width) && 800 > $content_width ? $content_width : 800;
 		$width = $width + 22; // compensate for the padding and border
@@ -624,8 +670,8 @@
 			<div id="wp-fullscreen-central-toolbar" style="width:<?php echo $width; ?>px;">
 
 			<div id="wp-fullscreen-mode-bar"><div id="wp-fullscreen-modes">
-				<a href="#" onclick="fullscreen.switchmode('tinymce');return false;"><?php _e('Visual'); ?></a>
-				<a href="#" onclick="fullscreen.switchmode('html');return false;"><?php _e('HTML'); ?></a>
+				<a href="#" onclick="fullscreen.switchmode('tinymce');return false;"><?php _e( 'Visual' ); ?></a>
+				<a href="#" onclick="fullscreen.switchmode('html');return false;"><?php _ex( 'Text', 'Name for the Text editor tab (formerly HTML)' ); ?></a>
 			</div></div>
 
 			<div id="wp-fullscreen-button-bar"><div id="wp-fullscreen-buttons" class="wp_themeSkin">
@@ -667,9 +713,9 @@
 			</div></div>
 
 			<div id="wp-fullscreen-save">
-				<span><?php if ( $post->post_status == 'publish' ) _e('Updated.'); else _e('Saved.'); ?></span>
-				<img src="<?php echo admin_url('images/wpspin_light.gif'); ?>" alt="" />
-				<input type="button" class="button-primary" value="<?php echo $save; ?>" onclick="fullscreen.save();" />
+				<input type="button" class="button-primary right" value="<?php echo $save; ?>" onclick="fullscreen.save();" />
+				<span class="spinner"></span>
+				<span class="fs-saved"><?php if ( $post->post_status == 'publish' ) _e('Updated.'); else _e('Saved.'); ?></span>
 			</div>
 
 			</div>
@@ -768,13 +814,13 @@
 		<div id="link-options">
 			<p class="howto"><?php _e( 'Enter the destination URL' ); ?></p>
 			<div>
-				<label><span><?php _e( 'URL' ); ?></span><input id="url-field" type="text" tabindex="10" name="href" /></label>
+				<label><span><?php _e( 'URL' ); ?></span><input id="url-field" type="text" name="href" /></label>
 			</div>
 			<div>
-				<label><span><?php _e( 'Title' ); ?></span><input id="link-title-field" type="text" tabindex="20" name="linktitle" /></label>
+				<label><span><?php _e( 'Title' ); ?></span><input id="link-title-field" type="text" name="linktitle" /></label>
 			</div>
 			<div class="link-target">
-				<label><input type="checkbox" id="link-target-checkbox" tabindex="30" /> <?php _e( 'Open link in a new window/tab' ); ?></label>
+				<label><input type="checkbox" id="link-target-checkbox" /> <?php _e( 'Open link in a new window/tab' ); ?></label>
 			</div>
 		</div>
 		<?php $show_internal = '1' == get_user_setting( 'wplink', '0' ); ?>
@@ -782,33 +828,33 @@
 		<div id="search-panel"<?php if ( ! $show_internal ) echo ' style="display:none"'; ?>>
 			<div class="link-search-wrapper">
 				<label>
-					<span><?php _e( 'Search' ); ?></span>
-					<input type="text" id="search-field" class="link-search-field" tabindex="60" autocomplete="off" />
-					<img class="waiting" src="<?php echo esc_url( admin_url( 'images/wpspin_light.gif' ) ); ?>" alt="" />
+					<span class="search-label"><?php _e( 'Search' ); ?></span>
+					<input type="search" id="search-field" class="link-search-field" autocomplete="off" />
+					<span class="spinner"></span>
 				</label>
 			</div>
 			<div id="search-results" class="query-results">
 				<ul></ul>
 				<div class="river-waiting">
-					<img class="waiting" src="<?php echo esc_url( admin_url( 'images/wpspin_light.gif' ) ); ?>" alt="" />
+					<span class="spinner"></span>
 				</div>
 			</div>
 			<div id="most-recent-results" class="query-results">
 				<div class="query-notice"><em><?php _e( 'No search term specified. Showing recent items.' ); ?></em></div>
 				<ul></ul>
 				<div class="river-waiting">
-					<img class="waiting" src="<?php echo esc_url( admin_url( 'images/wpspin_light.gif' ) ); ?>" alt="" />
+					<span class="spinner"></span>
 				</div>
 			</div>
 		</div>
 	</div>
 	<div class="submitbox">
+		<div id="wp-link-update">
+			<input type="submit" value="<?php esc_attr_e( 'Add Link' ); ?>" class="button-primary" id="wp-link-submit" name="wp-link-submit">
+		</div>
 		<div id="wp-link-cancel">
 			<a class="submitdelete deletion" href="#"><?php _e( 'Cancel' ); ?></a>
 		</div>
-		<div id="wp-link-update">
-			<input type="submit" tabindex="100" value="<?php esc_attr_e( 'Add Link' ); ?>" class="button-primary" id="wp-link-submit" name="wp-link-submit">
-		</div>
 	</div>
 	</form>
 	</div>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-includes/class-wp-embed.php	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,277 @@
+<?php
+/**
+ * API for easily embedding rich media such as videos and images into content.
+ *
+ * @package WordPress
+ * @subpackage Embed
+ * @since 2.9.0
+ */
+class WP_Embed {
+	var $handlers = array();
+	var $post_ID;
+	var $usecache = true;
+	var $linkifunknown = true;
+
+	/**
+	 * Constructor
+	 */
+	function __construct() {
+		// Hack to get the [embed] shortcode to run before wpautop()
+		add_filter( 'the_content', array( $this, 'run_shortcode' ), 8 );
+
+		// Shortcode placeholder for strip_shortcodes()
+		add_shortcode( 'embed', '__return_false' );
+
+		// Attempts to embed all URLs in a post
+		add_filter( 'the_content', array( $this, 'autoembed' ), 8 );
+
+		// When a post is saved, invalidate the oEmbed cache
+		add_action( 'pre_post_update', array( $this, 'delete_oembed_caches' ) );
+
+		// After a post is saved, cache oEmbed items via AJAX
+		add_action( 'edit_form_advanced', array( $this, 'maybe_run_ajax_cache' ) );
+	}
+
+	/**
+	 * Process the [embed] shortcode.
+	 *
+	 * Since the [embed] shortcode needs to be run earlier than other shortcodes,
+	 * this function removes all existing shortcodes, registers the [embed] shortcode,
+	 * calls {@link do_shortcode()}, and then re-registers the old shortcodes.
+	 *
+	 * @uses $shortcode_tags
+	 * @uses remove_all_shortcodes()
+	 * @uses add_shortcode()
+	 * @uses do_shortcode()
+	 *
+	 * @param string $content Content to parse
+	 * @return string Content with shortcode parsed
+	 */
+	function run_shortcode( $content ) {
+		global $shortcode_tags;
+
+		// Back up current registered shortcodes and clear them all out
+		$orig_shortcode_tags = $shortcode_tags;
+		remove_all_shortcodes();
+
+		add_shortcode( 'embed', array( $this, 'shortcode' ) );
+
+		// Do the shortcode (only the [embed] one is registered)
+		$content = do_shortcode( $content );
+
+		// Put the original shortcodes back
+		$shortcode_tags = $orig_shortcode_tags;
+
+		return $content;
+	}
+
+	/**
+	 * If a post/page was saved, then output JavaScript to make
+	 * an AJAX request that will call WP_Embed::cache_oembed().
+	 */
+	function maybe_run_ajax_cache() {
+		$post = get_post();
+
+		if ( ! $post || empty($_GET['message']) || 1 != $_GET['message'] )
+			return;
+
+?>
+<script type="text/javascript">
+/* <![CDATA[ */
+	jQuery(document).ready(function($){
+		$.get("<?php echo admin_url( 'admin-ajax.php?action=oembed-cache&post=' . $post->ID, 'relative' ); ?>");
+	});
+/* ]]> */
+</script>
+<?php
+	}
+
+	/**
+	 * Register an embed handler. Do not use this function directly, use {@link wp_embed_register_handler()} instead.
+	 * This function should probably also only be used for sites that do not support oEmbed.
+	 *
+	 * @param string $id An internal ID/name for the handler. Needs to be unique.
+	 * @param string $regex The regex that will be used to see if this handler should be used for a URL.
+	 * @param callback $callback The callback function that will be called if the regex is matched.
+	 * @param int $priority Optional. Used to specify the order in which the registered handlers will be tested (default: 10). Lower numbers correspond with earlier testing, and handlers with the same priority are tested in the order in which they were added to the action.
+	 */
+	function register_handler( $id, $regex, $callback, $priority = 10 ) {
+		$this->handlers[$priority][$id] = array(
+			'regex'    => $regex,
+			'callback' => $callback,
+		);
+	}
+
+	/**
+	 * Unregister a previously registered embed handler. Do not use this function directly, use {@link wp_embed_unregister_handler()} instead.
+	 *
+	 * @param string $id The handler ID that should be removed.
+	 * @param int $priority Optional. The priority of the handler to be removed (default: 10).
+	 */
+	function unregister_handler( $id, $priority = 10 ) {
+		if ( isset($this->handlers[$priority][$id]) )
+			unset($this->handlers[$priority][$id]);
+	}
+
+	/**
+	 * The {@link do_shortcode()} callback function.
+	 *
+	 * Attempts to convert a URL into embed HTML. Starts by checking the URL against the regex of the registered embed handlers.
+	 * If none of the regex matches and it's enabled, then the URL will be given to the {@link WP_oEmbed} class.
+	 *
+	 * @uses wp_oembed_get()
+	 * @uses wp_parse_args()
+	 * @uses wp_embed_defaults()
+	 * @uses WP_Embed::maybe_make_link()
+	 * @uses get_option()
+	 * @uses author_can()
+	 * @uses wp_cache_get()
+	 * @uses wp_cache_set()
+	 * @uses get_post_meta()
+	 * @uses update_post_meta()
+	 *
+	 * @param array $attr Shortcode attributes.
+	 * @param string $url The URL attempting to be embedded.
+	 * @return string The embed HTML on success, otherwise the original URL.
+	 */
+	function shortcode( $attr, $url = '' ) {
+		$post = get_post();
+
+		if ( empty( $url ) )
+			return '';
+
+		$rawattr = $attr;
+		$attr = wp_parse_args( $attr, wp_embed_defaults() );
+
+		// kses converts & into &amp; and we need to undo this
+		// See http://core.trac.wordpress.org/ticket/11311
+		$url = str_replace( '&amp;', '&', $url );
+
+		// Look for known internal handlers
+		ksort( $this->handlers );
+		foreach ( $this->handlers as $priority => $handlers ) {
+			foreach ( $handlers as $id => $handler ) {
+				if ( preg_match( $handler['regex'], $url, $matches ) && is_callable( $handler['callback'] ) ) {
+					if ( false !== $return = call_user_func( $handler['callback'], $matches, $attr, $url, $rawattr ) )
+						return apply_filters( 'embed_handler_html', $return, $url, $attr );
+				}
+			}
+		}
+
+		$post_ID = ( ! empty( $post->ID ) ) ? $post->ID : null;
+		if ( ! empty( $this->post_ID ) ) // Potentially set by WP_Embed::cache_oembed()
+			$post_ID = $this->post_ID;
+
+		// Unknown URL format. Let oEmbed have a go.
+		if ( $post_ID ) {
+
+			// Check for a cached result (stored in the post meta)
+			$cachekey = '_oembed_' . md5( $url . serialize( $attr ) );
+			if ( $this->usecache ) {
+				$cache = get_post_meta( $post_ID, $cachekey, true );
+
+				// Failures are cached
+				if ( '{{unknown}}' === $cache )
+					return $this->maybe_make_link( $url );
+
+				if ( ! empty( $cache ) )
+					return apply_filters( 'embed_oembed_html', $cache, $url, $attr, $post_ID );
+			}
+
+			// Use oEmbed to get the HTML
+			$attr['discover'] = ( apply_filters('embed_oembed_discover', false) && author_can( $post_ID, 'unfiltered_html' ) );
+			$html = wp_oembed_get( $url, $attr );
+
+			// Cache the result
+			$cache = ( $html ) ? $html : '{{unknown}}';
+			update_post_meta( $post_ID, $cachekey, $cache );
+
+			// If there was a result, return it
+			if ( $html )
+				return apply_filters( 'embed_oembed_html', $html, $url, $attr, $post_ID );
+		}
+
+		// Still unknown
+		return $this->maybe_make_link( $url );
+	}
+
+	/**
+	 * Delete all oEmbed caches.
+	 *
+	 * @param int $post_ID Post ID to delete the caches for.
+	 */
+	function delete_oembed_caches( $post_ID ) {
+		$post_metas = get_post_custom_keys( $post_ID );
+		if ( empty($post_metas) )
+			return;
+
+		foreach( $post_metas as $post_meta_key ) {
+			if ( '_oembed_' == substr( $post_meta_key, 0, 8 ) )
+				delete_post_meta( $post_ID, $post_meta_key );
+		}
+	}
+
+	/**
+	 * Triggers a caching of all oEmbed results.
+	 *
+	 * @param int $post_ID Post ID to do the caching for.
+	 */
+	function cache_oembed( $post_ID ) {
+		$post = get_post( $post_ID );
+
+		if ( empty($post->ID) || !in_array( $post->post_type, apply_filters( 'embed_cache_oembed_types', array( 'post', 'page' ) ) ) )
+			return;
+
+		// Trigger a caching
+		if ( !empty($post->post_content) ) {
+			$this->post_ID = $post->ID;
+			$this->usecache = false;
+
+			$content = $this->run_shortcode( $post->post_content );
+			$this->autoembed( $content );
+
+			$this->usecache = true;
+		}
+	}
+
+	/**
+	 * Passes any unlinked URLs that are on their own line to {@link WP_Embed::shortcode()} for potential embedding.
+	 *
+	 * @uses WP_Embed::autoembed_callback()
+	 *
+	 * @param string $content The content to be searched.
+	 * @return string Potentially modified $content.
+	 */
+	function autoembed( $content ) {
+		return preg_replace_callback( '|^\s*(https?://[^\s"]+)\s*$|im', array( $this, 'autoembed_callback' ), $content );
+	}
+
+	/**
+	 * Callback function for {@link WP_Embed::autoembed()}.
+	 *
+	 * @uses WP_Embed::shortcode()
+	 *
+	 * @param array $match A regex match array.
+	 * @return string The embed HTML on success, otherwise the original URL.
+	 */
+	function autoembed_callback( $match ) {
+		$oldval = $this->linkifunknown;
+		$this->linkifunknown = false;
+		$return = $this->shortcode( array(), $match[1] );
+		$this->linkifunknown = $oldval;
+
+		return "\n$return\n";
+	}
+
+	/**
+	 * Conditionally makes a hyperlink based on an internal class variable.
+	 *
+	 * @param string $url URL to potentially be linked.
+	 * @return string Linked URL or the original URL.
+	 */
+	function maybe_make_link( $url ) {
+		$output = ( $this->linkifunknown ) ? '<a href="' . esc_attr($url) . '">' . esc_html($url) . '</a>' : $url;
+		return apply_filters( 'embed_maybe_make_link', $output, $url );
+	}
+}
+$GLOBALS['wp_embed'] = new WP_Embed();
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-includes/class-wp-image-editor-gd.php	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,390 @@
+<?php
+/**
+ * WordPress GD Image Editor
+ *
+ * @package WordPress
+ * @subpackage Image_Editor
+ */
+
+/**
+ * WordPress Image Editor Class for Image Manipulation through GD
+ *
+ * @since 3.5.0
+ * @package WordPress
+ * @subpackage Image_Editor
+ * @uses WP_Image_Editor Extends class
+ */
+class WP_Image_Editor_GD extends WP_Image_Editor {
+
+	protected $image = false; // GD Resource
+
+	function __destruct() {
+		if ( $this->image ) {
+			// we don't need the original in memory anymore
+			imagedestroy( $this->image );
+		}
+	}
+
+	/**
+	 * Checks to see if current environment supports GD.
+	 *
+	 * @since 3.5.0
+	 * @access public
+	 *
+	 * @return boolean
+	 */
+	public static function test( $args = array() ) {
+		if ( ! extension_loaded('gd') || ! function_exists('gd_info') )
+			return false;
+
+		// On some setups GD library does not provide imagerotate() - Ticket #11536
+		if ( isset( $args['methods'] ) &&
+			 in_array( 'rotate', $args['methods'] ) &&
+			 ! function_exists('imagerotate') ){
+
+				return false;
+		}
+
+		return true;
+	}
+
+	/**
+	 * Checks to see if editor supports the mime-type specified.
+	 *
+	 * @since 3.5.0
+	 * @access public
+	 *
+	 * @param string $mime_type
+	 * @return boolean
+	 */
+	public static function supports_mime_type( $mime_type ) {
+		$image_types = imagetypes();
+		switch( $mime_type ) {
+			case 'image/jpeg':
+				return ($image_types & IMG_JPG) != 0;
+			case 'image/png':
+				return ($image_types & IMG_PNG) != 0;
+			case 'image/gif':
+				return ($image_types & IMG_GIF) != 0;
+		}
+
+		return false;
+	}
+
+	/**
+	 * Loads image from $this->file into new GD Resource.
+	 *
+	 * @since 3.5.0
+	 * @access protected
+	 *
+	 * @return boolean|\WP_Error
+	 */
+	public function load() {
+		if ( $this->image )
+			return true;
+
+		if ( ! is_file( $this->file ) && ! preg_match( '|^https?://|', $this->file ) )
+			return new WP_Error( 'error_loading_image', __('File doesn&#8217;t exist?'), $this->file );
+
+		// Set artificially high because GD uses uncompressed images in memory
+		@ini_set( 'memory_limit', apply_filters( 'image_memory_limit', WP_MAX_MEMORY_LIMIT ) );
+		$this->image = @imagecreatefromstring( file_get_contents( $this->file ) );
+
+		if ( ! is_resource( $this->image ) )
+			return new WP_Error( 'invalid_image', __('File is not an image.'), $this->file );
+
+		$size = @getimagesize( $this->file );
+		if ( ! $size )
+			return new WP_Error( 'invalid_image', __('Could not read image size.'), $this->file );
+
+		$this->update_size( $size[0], $size[1] );
+		$this->mime_type = $size['mime'];
+
+		return true;
+	}
+
+	/**
+	 * Sets or updates current image size.
+	 *
+	 * @since 3.5.0
+	 * @access protected
+	 *
+	 * @param int $width
+	 * @param int $height
+	 */
+	protected function update_size( $width = false, $height = false ) {
+		if ( ! $width )
+			$width = imagesx( $this->image );
+
+		if ( ! $height )
+			$height = imagesy( $this->image );
+
+		return parent::update_size( $width, $height );
+	}
+
+	/**
+	 * Resizes current image.
+	 * Wraps _resize, since _resize returns a GD Resource.
+	 *
+	 * @since 3.5.0
+	 * @access public
+	 *
+	 * @param int $max_w
+	 * @param int $max_h
+	 * @param boolean $crop
+	 * @return boolean|WP_Error
+	 */
+	public function resize( $max_w, $max_h, $crop = false ) {
+		if ( ( $this->size['width'] == $max_w ) && ( $this->size['height'] == $max_h ) )
+			return true;
+
+		$resized = $this->_resize( $max_w, $max_h, $crop );
+
+		if ( is_resource( $resized ) ) {
+			imagedestroy( $this->image );
+			$this->image = $resized;
+			return true;
+
+		} elseif ( is_wp_error( $resized ) )
+			return $resized;
+
+		return new WP_Error( 'image_resize_error', __('Image resize failed.'), $this->file );
+	}
+
+	protected function _resize( $max_w, $max_h, $crop = false ) {
+		$dims = image_resize_dimensions( $this->size['width'], $this->size['height'], $max_w, $max_h, $crop );
+		if ( ! $dims ) {
+			return new WP_Error( 'error_getting_dimensions', __('Could not calculate resized image dimensions'), $this->file );
+		}
+		list( $dst_x, $dst_y, $src_x, $src_y, $dst_w, $dst_h, $src_w, $src_h ) = $dims;
+
+		$resized = wp_imagecreatetruecolor( $dst_w, $dst_h );
+		imagecopyresampled( $resized, $this->image, $dst_x, $dst_y, $src_x, $src_y, $dst_w, $dst_h, $src_w, $src_h );
+
+		if ( is_resource( $resized ) ) {
+			$this->update_size( $dst_w, $dst_h );
+			return $resized;
+		}
+
+		return new WP_Error( 'image_resize_error', __('Image resize failed.'), $this->file );
+	}
+
+	/**
+	 * Processes current image and saves to disk
+	 * multiple sizes from single source.
+	 *
+	 * @since 3.5.0
+	 * @access public
+	 *
+	 * @param array $sizes { {'width'=>int, 'height'=>int, 'crop'=>bool}, ... }
+	 * @return array
+	 */
+	public function multi_resize( $sizes ) {
+		$metadata = array();
+		$orig_size = $this->size;
+
+		foreach ( $sizes as $size => $size_data ) {
+			$image = $this->_resize( $size_data['width'], $size_data['height'], $size_data['crop'] );
+
+			if( ! is_wp_error( $image ) ) {
+				$resized = $this->_save( $image );
+
+				imagedestroy( $image );
+
+				if ( ! is_wp_error( $resized ) && $resized ) {
+					unset( $resized['path'] );
+					$metadata[$size] = $resized;
+				}
+			}
+
+			$this->size = $orig_size;
+		}
+
+		return $metadata;
+	}
+
+	/**
+	 * Crops Image.
+	 *
+	 * @since 3.5.0
+	 * @access public
+	 *
+	 * @param string|int $src The source file or Attachment ID.
+	 * @param int $src_x The start x position to crop from.
+	 * @param int $src_y The start y position to crop from.
+	 * @param int $src_w The width to crop.
+	 * @param int $src_h The height to crop.
+	 * @param int $dst_w Optional. The destination width.
+	 * @param int $dst_h Optional. The destination height.
+	 * @param boolean $src_abs Optional. If the source crop points are absolute.
+	 * @return boolean|WP_Error
+	 */
+	public function crop( $src_x, $src_y, $src_w, $src_h, $dst_w = null, $dst_h = null, $src_abs = false ) {
+		// If destination width/height isn't specified, use same as
+		// width/height from source.
+		if ( ! $dst_w )
+			$dst_w = $src_w;
+		if ( ! $dst_h )
+			$dst_h = $src_h;
+
+		$dst = wp_imagecreatetruecolor( $dst_w, $dst_h );
+
+		if ( $src_abs ) {
+			$src_w -= $src_x;
+			$src_h -= $src_y;
+		}
+
+		if ( function_exists( 'imageantialias' ) )
+			imageantialias( $dst, true );
+
+		imagecopyresampled( $dst, $this->image, 0, 0, $src_x, $src_y, $dst_w, $dst_h, $src_w, $src_h );
+
+		if ( is_resource( $dst ) ) {
+			imagedestroy( $this->image );
+			$this->image = $dst;
+			$this->update_size();
+			return true;
+		}
+
+		return new WP_Error( 'image_crop_error', __('Image crop failed.'), $this->file );
+	}
+
+	/**
+	 * Rotates current image counter-clockwise by $angle.
+	 * Ported from image-edit.php
+	 *
+	 * @since 3.5.0
+	 * @access public
+	 *
+	 * @param float $angle
+	 * @return boolean|WP_Error
+	 */
+	public function rotate( $angle ) {
+		if ( function_exists('imagerotate') ) {
+			$rotated = imagerotate( $this->image, $angle, 0 );
+
+			if ( is_resource( $rotated ) ) {
+				imagedestroy( $this->image );
+				$this->image = $rotated;
+				$this->update_size();
+				return true;
+			}
+		}
+		return new WP_Error( 'image_rotate_error', __('Image rotate failed.'), $this->file );
+	}
+
+	/**
+	 * Flips current image.
+	 *
+	 * @since 3.5.0
+	 * @access public
+	 *
+	 * @param boolean $horz Horizontal Flip
+	 * @param boolean $vert Vertical Flip
+	 * @returns boolean|WP_Error
+	 */
+	public function flip( $horz, $vert ) {
+		$w = $this->size['width'];
+		$h = $this->size['height'];
+		$dst = wp_imagecreatetruecolor( $w, $h );
+
+		if ( is_resource( $dst ) ) {
+			$sx = $vert ? ($w - 1) : 0;
+			$sy = $horz ? ($h - 1) : 0;
+			$sw = $vert ? -$w : $w;
+			$sh = $horz ? -$h : $h;
+
+			if ( imagecopyresampled( $dst, $this->image, 0, 0, $sx, $sy, $w, $h, $sw, $sh ) ) {
+				imagedestroy( $this->image );
+				$this->image = $dst;
+				return true;
+			}
+		}
+		return new WP_Error( 'image_flip_error', __('Image flip failed.'), $this->file );
+	}
+
+	/**
+	 * Saves current in-memory image to file.
+	 *
+	 * @since 3.5.0
+	 * @access public
+	 *
+	 * @param string $destfilename
+	 * @param string $mime_type
+	 * @return array|WP_Error {'path'=>string, 'file'=>string, 'width'=>int, 'height'=>int, 'mime-type'=>string}
+	 */
+	public function save( $filename = null, $mime_type = null ) {
+		$saved = $this->_save( $this->image, $filename, $mime_type );
+
+		if ( ! is_wp_error( $saved ) ) {
+			$this->file = $saved['path'];
+			$this->mime_type = $saved['mime-type'];
+		}
+
+		return $saved;
+	}
+
+	protected function _save( $image, $filename = null, $mime_type = null ) {
+		list( $filename, $extension, $mime_type ) = $this->get_output_format( $filename, $mime_type );
+
+		if ( ! $filename )
+			$filename = $this->generate_filename( null, null, $extension );
+
+		if ( 'image/gif' == $mime_type ) {
+			if ( ! $this->make_image( $filename, 'imagegif', array( $image, $filename ) ) )
+				return new WP_Error( 'image_save_error', __('Image Editor Save Failed') );
+		}
+		elseif ( 'image/png' == $mime_type ) {
+			// convert from full colors to index colors, like original PNG.
+			if ( function_exists('imageistruecolor') && ! imageistruecolor( $image ) )
+				imagetruecolortopalette( $image, false, imagecolorstotal( $image ) );
+
+			if ( ! $this->make_image( $filename, 'imagepng', array( $image, $filename ) ) )
+				return new WP_Error( 'image_save_error', __('Image Editor Save Failed') );
+		}
+		elseif ( 'image/jpeg' == $mime_type ) {
+			if ( ! $this->make_image( $filename, 'imagejpeg', array( $image, $filename, apply_filters( 'jpeg_quality', $this->quality, 'image_resize' ) ) ) )
+				return new WP_Error( 'image_save_error', __('Image Editor Save Failed') );
+		}
+		else {
+			return new WP_Error( 'image_save_error', __('Image Editor Save Failed') );
+		}
+
+		// Set correct file permissions
+		$stat = stat( dirname( $filename ) );
+		$perms = $stat['mode'] & 0000666; //same permissions as parent folder, strip off the executable bits
+		@ chmod( $filename, $perms );
+
+		return array(
+			'path' => $filename,
+			'file' => wp_basename( apply_filters( 'image_make_intermediate_size', $filename ) ),
+			'width' => $this->size['width'],
+			'height' => $this->size['height'],
+			'mime-type'=> $mime_type,
+		);
+	}
+
+	/**
+	 * Returns stream of current image.
+	 *
+	 * @since 3.5.0
+	 * @access public
+	 *
+	 * @param string $mime_type
+	 */
+	public function stream( $mime_type = null ) {
+		list( $filename, $extension, $mime_type ) = $this->get_output_format( null, $mime_type );
+
+		switch ( $mime_type ) {
+			case 'image/png':
+				header( 'Content-Type: image/png' );
+				return imagepng( $this->image );
+			case 'image/gif':
+				header( 'Content-Type: image/gif' );
+				return imagegif( $this->image );
+			default:
+				header( 'Content-Type: image/jpeg' );
+				return imagejpeg( $this->image, null, $this->quality );
+		}
+	}
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-includes/class-wp-image-editor-imagick.php	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,468 @@
+<?php
+/**
+ * WordPress Imagick Image Editor
+ *
+ * @package WordPress
+ * @subpackage Image_Editor
+ */
+
+/**
+ * WordPress Image Editor Class for Image Manipulation through Imagick PHP Module
+ *
+ * @since 3.5.0
+ * @package WordPress
+ * @subpackage Image_Editor
+ * @uses WP_Image_Editor Extends class
+ */
+class WP_Image_Editor_Imagick extends WP_Image_Editor {
+
+	protected $image = null; // Imagick Object
+
+	function __destruct() {
+		if ( $this->image ) {
+			// we don't need the original in memory anymore
+			$this->image->clear();
+			$this->image->destroy();
+		}
+	}
+
+	/**
+	 * Checks to see if current environment supports Imagick.
+	 *
+	 * We require Imagick 2.2.0 or greater, based on whether the queryFormats()
+	 * method can be called statically.
+	 *
+	 * @since 3.5.0
+	 * @access public
+	 *
+	 * @return boolean
+	 */
+	public static function test( $args = array() ) {
+
+		// First, test Imagick's extension and classes.
+		if ( ! extension_loaded( 'imagick' ) || ! class_exists( 'Imagick' ) || ! class_exists( 'ImagickPixel' ) )
+			return false;
+
+		if ( version_compare( phpversion( 'imagick' ), '2.2.0', '<' ) )
+			return false;
+
+		$required_methods = array(
+			'clear',
+			'destroy',
+			'valid',
+			'getimage',
+			'writeimage',
+			'getimageblob',
+			'getimagegeometry',
+			'getimageformat',
+			'setimageformat',
+			'setimagecompression',
+			'setimagecompressionquality',
+			'setimagepage',
+			'scaleimage',
+			'cropimage',
+			'rotateimage',
+			'flipimage',
+			'flopimage',
+		);
+
+		// Now, test for deep requirements within Imagick.
+		if ( ! defined( 'imagick::COMPRESSION_JPEG' ) )
+			return false;
+
+		if ( array_diff( $required_methods, get_class_methods( 'Imagick' ) ) )
+			return false;
+
+		return true;
+	}
+
+	/**
+	 * Checks to see if editor supports the mime-type specified.
+	 *
+	 * @since 3.5.0
+	 * @access public
+	 *
+	 * @param string $mime_type
+	 * @return boolean
+	 */
+	public static function supports_mime_type( $mime_type ) {
+		$imagick_extension = strtoupper( self::get_extension( $mime_type ) );
+
+		if ( ! $imagick_extension )
+			return false;
+
+		// setIteratorIndex is optional unless mime is an animated format.
+		// Here, we just say no if you are missing it and aren't loading a jpeg.
+		if ( ! method_exists( 'Imagick', 'setIteratorIndex' ) && $mime_type != 'image/jpeg' )
+				return false;
+
+		try {
+			return ( (bool) Imagick::queryFormats( $imagick_extension ) );
+		}
+		catch ( Exception $e ) {
+			return false;
+		}
+	}
+
+	/**
+	 * Loads image from $this->file into new Imagick Object.
+	 *
+	 * @since 3.5.0
+	 * @access protected
+	 *
+	 * @return boolean|WP_Error True if loaded; WP_Error on failure.
+	 */
+	public function load() {
+		if ( $this->image )
+			return true;
+
+		if ( ! is_file( $this->file ) && ! preg_match( '|^https?://|', $this->file ) )
+			return new WP_Error( 'error_loading_image', __('File doesn&#8217;t exist?'), $this->file );
+
+		// Even though Imagick uses less PHP memory than GD, set higher limit for users that have low PHP.ini limits
+		@ini_set( 'memory_limit', apply_filters( 'image_memory_limit', WP_MAX_MEMORY_LIMIT ) );
+
+		try {
+			$this->image = new Imagick( $this->file );
+
+			if( ! $this->image->valid() )
+				return new WP_Error( 'invalid_image', __('File is not an image.'), $this->file);
+
+			// Select the first frame to handle animated images properly
+			if ( is_callable( array( $this->image, 'setIteratorIndex' ) ) )
+				$this->image->setIteratorIndex(0);
+
+			$this->mime_type = $this->get_mime_type( $this->image->getImageFormat() );
+		}
+		catch ( Exception $e ) {
+			return new WP_Error( 'invalid_image', $e->getMessage(), $this->file );
+		}
+
+		$updated_size = $this->update_size();
+		if ( is_wp_error( $updated_size ) )
+				return $updated_size;
+
+		return $this->set_quality();
+	}
+
+	/**
+	 * Sets Image Compression quality on a 1-100% scale.
+	 *
+	 * @since 3.5.0
+	 * @access public
+	 *
+	 * @param int $quality Compression Quality. Range: [1,100]
+	 * @return boolean|WP_Error
+	 */
+	public function set_quality( $quality = null ) {
+		if ( !$quality )
+			$quality = $this->quality;
+
+		try {
+			if( 'image/jpeg' == $this->mime_type ) {
+				$this->image->setImageCompressionQuality( apply_filters( 'jpeg_quality', $quality, 'image_resize' ) );
+				$this->image->setImageCompression( imagick::COMPRESSION_JPEG );
+			}
+			else {
+				$this->image->setImageCompressionQuality( $quality );
+			}
+		}
+		catch ( Exception $e ) {
+			return new WP_Error( 'image_quality_error', $e->getMessage() );
+		}
+
+		return parent::set_quality( $quality );
+	}
+
+	/**
+	 * Sets or updates current image size.
+	 *
+	 * @since 3.5.0
+	 * @access protected
+	 *
+	 * @param int $width
+	 * @param int $height
+	 */
+	protected function update_size( $width = null, $height = null ) {
+		$size = null;
+		if ( !$width || !$height ) {
+			try {
+				$size = $this->image->getImageGeometry();
+			}
+			catch ( Exception $e ) {
+				return new WP_Error( 'invalid_image', __('Could not read image size'), $this->file );
+			}
+		}
+
+		if ( ! $width )
+			$width = $size['width'];
+
+		if ( ! $height )
+			$height = $size['height'];
+
+		return parent::update_size( $width, $height );
+	}
+
+	/**
+	 * Resizes current image.
+	 *
+	 * @since 3.5.0
+	 * @access public
+	 *
+	 * @param int $max_w
+	 * @param int $max_h
+	 * @param boolean $crop
+	 * @return boolean|WP_Error
+	 */
+	public function resize( $max_w, $max_h, $crop = false ) {
+		if ( ( $this->size['width'] == $max_w ) && ( $this->size['height'] == $max_h ) )
+			return true;
+
+		$dims = image_resize_dimensions( $this->size['width'], $this->size['height'], $max_w, $max_h, $crop );
+		if ( ! $dims )
+			return new WP_Error( 'error_getting_dimensions', __('Could not calculate resized image dimensions') );
+		list( $dst_x, $dst_y, $src_x, $src_y, $dst_w, $dst_h, $src_w, $src_h ) = $dims;
+
+		if ( $crop ) {
+			return $this->crop( $src_x, $src_y, $src_w, $src_h, $dst_w, $dst_h );
+		}
+
+		try {
+			/**
+			 * @TODO: Thumbnail is more efficient, given a newer version of Imagemagick.
+			 * $this->image->thumbnailImage( $dst_w, $dst_h );
+			 */
+			$this->image->scaleImage( $dst_w, $dst_h );
+		}
+		catch ( Exception $e ) {
+			return new WP_Error( 'image_resize_error', $e->getMessage() );
+		}
+
+		return $this->update_size( $dst_w, $dst_h );
+	}
+
+	/**
+	 * Processes current image and saves to disk
+	 * multiple sizes from single source.
+	 *
+	 * @since 3.5.0
+	 * @access public
+	 *
+	 * @param array $sizes { {'width'=>int, 'height'=>int, 'crop'=>bool}, ... }
+	 * @return array
+	 */
+	public function multi_resize( $sizes ) {
+		$metadata = array();
+		$orig_size = $this->size;
+		$orig_image = $this->image->getImage();
+
+		foreach ( $sizes as $size => $size_data ) {
+			if ( ! $this->image )
+				$this->image = $orig_image->getImage();
+
+			$resize_result = $this->resize( $size_data['width'], $size_data['height'], $size_data['crop'] );
+
+			if( ! is_wp_error( $resize_result ) ) {
+				$resized = $this->_save( $this->image );
+
+				$this->image->clear();
+				$this->image->destroy();
+				$this->image = null;
+
+				if ( ! is_wp_error( $resized ) && $resized ) {
+					unset( $resized['path'] );
+					$metadata[$size] = $resized;
+				}
+			}
+
+			$this->size = $orig_size;
+		}
+
+		$this->image = $orig_image;
+
+		return $metadata;
+	}
+
+	/**
+	 * Crops Image.
+	 *
+	 * @since 3.5.0
+	 * @access public
+	 *
+	 * @param string|int $src The source file or Attachment ID.
+	 * @param int $src_x The start x position to crop from.
+	 * @param int $src_y The start y position to crop from.
+	 * @param int $src_w The width to crop.
+	 * @param int $src_h The height to crop.
+	 * @param int $dst_w Optional. The destination width.
+	 * @param int $dst_h Optional. The destination height.
+	 * @param boolean $src_abs Optional. If the source crop points are absolute.
+	 * @return boolean|WP_Error
+	 */
+	public function crop( $src_x, $src_y, $src_w, $src_h, $dst_w = null, $dst_h = null, $src_abs = false ) {
+		if ( $src_abs ) {
+			$src_w -= $src_x;
+			$src_h -= $src_y;
+		}
+
+		try {
+			$this->image->cropImage( $src_w, $src_h, $src_x, $src_y );
+			$this->image->setImagePage( $src_w, $src_h, 0, 0);
+
+			if ( $dst_w || $dst_h ) {
+				// If destination width/height isn't specified, use same as
+				// width/height from source.
+				if ( ! $dst_w )
+					$dst_w = $src_w;
+				if ( ! $dst_h )
+					$dst_h = $src_h;
+
+				$this->image->scaleImage( $dst_w, $dst_h );
+				return $this->update_size();
+			}
+		}
+		catch ( Exception $e ) {
+			return new WP_Error( 'image_crop_error', $e->getMessage() );
+		}
+		return $this->update_size();
+	}
+
+	/**
+	 * Rotates current image counter-clockwise by $angle.
+	 *
+	 * @since 3.5.0
+	 * @access public
+	 *
+	 * @param float $angle
+	 * @return boolean|WP_Error
+	 */
+	public function rotate( $angle ) {
+		/**
+		 * $angle is 360-$angle because Imagick rotates clockwise
+		 * (GD rotates counter-clockwise)
+		 */
+		try {
+			$this->image->rotateImage( new ImagickPixel('none'), 360-$angle );
+		}
+		catch ( Exception $e ) {
+			return new WP_Error( 'image_rotate_error', $e->getMessage() );
+		}
+		return $this->update_size();
+	}
+
+	/**
+	 * Flips current image.
+	 *
+	 * @since 3.5.0
+	 * @access public
+	 *
+	 * @param boolean $horz Horizontal Flip
+	 * @param boolean $vert Vertical Flip
+	 * @returns boolean|WP_Error
+	 */
+	public function flip( $horz, $vert ) {
+		try {
+			if ( $horz )
+				$this->image->flipImage();
+
+			if ( $vert )
+				$this->image->flopImage();
+		}
+		catch ( Exception $e ) {
+			return new WP_Error( 'image_flip_error', $e->getMessage() );
+		}
+		return true;
+	}
+
+	/**
+	 * Saves current image to file.
+	 *
+	 * @since 3.5.0
+	 * @access public
+	 *
+	 * @param string $destfilename
+	 * @param string $mime_type
+	 * @return array|WP_Error {'path'=>string, 'file'=>string, 'width'=>int, 'height'=>int, 'mime-type'=>string}
+	 */
+	public function save( $destfilename = null, $mime_type = null ) {
+		$saved = $this->_save( $this->image, $destfilename, $mime_type );
+
+		if ( ! is_wp_error( $saved ) ) {
+			$this->file = $saved['path'];
+			$this->mime_type = $saved['mime-type'];
+
+			try {
+				$this->image->setImageFormat( strtoupper( $this->get_extension( $this->mime_type ) ) );
+			}
+			catch ( Exception $e ) {
+				return new WP_Error( 'image_save_error', $e->getMessage(), $this->file );
+			}
+		}
+
+		return $saved;
+	}
+
+	protected function _save( $image, $filename = null, $mime_type = null ) {
+		list( $filename, $extension, $mime_type ) = $this->get_output_format( $filename, $mime_type );
+
+		if ( ! $filename )
+			$filename = $this->generate_filename( null, null, $extension );
+
+		try {
+			// Store initial Format
+			$orig_format = $this->image->getImageFormat();
+
+			$this->image->setImageFormat( strtoupper( $this->get_extension( $mime_type ) ) );
+			$this->make_image( $filename, array( $image, 'writeImage' ), array( $filename ) );
+
+			// Reset original Format
+			$this->image->setImageFormat( $orig_format );
+		}
+		catch ( Exception $e ) {
+			return new WP_Error( 'image_save_error', $e->getMessage(), $filename );
+		}
+
+		// Set correct file permissions
+		$stat = stat( dirname( $filename ) );
+		$perms = $stat['mode'] & 0000666; //same permissions as parent folder, strip off the executable bits
+		@ chmod( $filename, $perms );
+
+		return array(
+			'path' => $filename,
+			'file' => wp_basename( apply_filters( 'image_make_intermediate_size', $filename ) ),
+			'width' => $this->size['width'],
+			'height' => $this->size['height'],
+			'mime-type' => $mime_type,
+		);
+	}
+
+	/**
+	 * Streams current image to browser.
+	 *
+	 * @since 3.5.0
+	 * @access public
+	 *
+	 * @param string $mime_type
+	 * @return boolean|WP_Error
+	 */
+	public function stream( $mime_type = null ) {
+		list( $filename, $extension, $mime_type ) = $this->get_output_format( null, $mime_type );
+
+		try {
+			// Temporarily change format for stream
+			$this->image->setImageFormat( strtoupper( $extension ) );
+
+			// Output stream of image content
+			header( "Content-Type: $mime_type" );
+			print $this->image->getImageBlob();
+
+			// Reset Image to original Format
+			$this->image->setImageFormat( $this->get_extension( $this->mime_type ) );
+		}
+		catch ( Exception $e ) {
+			return new WP_Error( 'image_stream_error', $e->getMessage() );
+		}
+
+		return true;
+	}
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-includes/class-wp-image-editor.php	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,400 @@
+<?php
+/**
+ * Base WordPress Image Editor
+ *
+ * @package WordPress
+ * @subpackage Image_Editor
+ */
+
+/**
+ * Base image editor class from which implementations extend
+ *
+ * @since 3.5.0
+ */
+abstract class WP_Image_Editor {
+	protected $file = null;
+	protected $size = null;
+	protected $mime_type = null;
+	protected $default_mime_type = 'image/jpeg';
+	protected $quality = 90;
+
+	/**
+	 * Each instance handles a single file.
+	 */
+	public function __construct( $file ) {
+		$this->file = $file;
+	}
+
+	/**
+	 * Checks to see if current environment supports the editor chosen.
+	 * Must be overridden in a sub-class.
+	 *
+	 * @since 3.5.0
+	 * @access public
+	 * @abstract
+	 *
+	 * @param array $args
+	 * @return boolean
+	 */
+	public static function test( $args = array() ) {
+		return false;
+	}
+
+	/**
+	 * Checks to see if editor supports the mime-type specified.
+	 * Must be overridden in a sub-class.
+	 *
+	 * @since 3.5.0
+	 * @access public
+	 * @abstract
+	 *
+	 * @param string $mime_type
+	 * @return boolean
+	 */
+	public static function supports_mime_type( $mime_type ) {
+		return false;
+	}
+
+	/**
+	 * Loads image from $this->file into editor.
+	 *
+	 * @since 3.5.0
+	 * @access protected
+	 * @abstract
+	 *
+	 * @return boolean|WP_Error True if loaded; WP_Error on failure.
+	 */
+	abstract public function load();
+
+	/**
+	 * Saves current image to file.
+	 *
+	 * @since 3.5.0
+	 * @access public
+	 * @abstract
+	 *
+	 * @param string $destfilename
+	 * @param string $mime_type
+	 * @return array|WP_Error {'path'=>string, 'file'=>string, 'width'=>int, 'height'=>int, 'mime-type'=>string}
+	 */
+	abstract public function save( $destfilename = null, $mime_type = null );
+
+	/**
+	 * Resizes current image.
+	 *
+	 * @since 3.5.0
+	 * @access public
+	 * @abstract
+	 *
+	 * @param int $max_w
+	 * @param int $max_h
+	 * @param boolean $crop
+	 * @return boolean|WP_Error
+	 */
+	abstract public function resize( $max_w, $max_h, $crop = false );
+
+	/**
+	 * Processes current image and saves to disk
+	 * multiple sizes from single source.
+	 *
+	 * @since 3.5.0
+	 * @access public
+	 * @abstract
+	 *
+	 * @param array $sizes { {'width'=>int, 'height'=>int, 'crop'=>bool}, ... }
+	 * @return array
+	 */
+	abstract public function multi_resize( $sizes );
+
+	/**
+	 * Crops Image.
+	 *
+	 * @since 3.5.0
+	 * @access public
+	 * @abstract
+	 *
+	 * @param string|int $src The source file or Attachment ID.
+	 * @param int $src_x The start x position to crop from.
+	 * @param int $src_y The start y position to crop from.
+	 * @param int $src_w The width to crop.
+	 * @param int $src_h The height to crop.
+	 * @param int $dst_w Optional. The destination width.
+	 * @param int $dst_h Optional. The destination height.
+	 * @param boolean $src_abs Optional. If the source crop points are absolute.
+	 * @return boolean|WP_Error
+	 */
+	abstract public function crop( $src_x, $src_y, $src_w, $src_h, $dst_w = null, $dst_h = null, $src_abs = false );
+
+	/**
+	 * Rotates current image counter-clockwise by $angle.
+	 *
+	 * @since 3.5.0
+	 * @access public
+	 * @abstract
+	 *
+	 * @param float $angle
+	 * @return boolean|WP_Error
+	 */
+	abstract public function rotate( $angle );
+
+	/**
+	 * Flips current image.
+	 *
+	 * @since 3.5.0
+	 * @access public
+	 * @abstract
+	 *
+	 * @param boolean $horz Horizontal Flip
+	 * @param boolean $vert Vertical Flip
+	 * @return boolean|WP_Error
+	 */
+	abstract public function flip( $horz, $vert );
+
+	/**
+	 * Streams current image to browser.
+	 *
+	 * @since 3.5.0
+	 * @access public
+	 * @abstract
+	 *
+	 * @param string $mime_type
+	 * @return boolean|WP_Error
+	 */
+	abstract public function stream( $mime_type = null );
+
+	/**
+	 * Gets dimensions of image.
+	 *
+	 * @since 3.5.0
+	 * @access public
+	 *
+	 * @return array {'width'=>int, 'height'=>int}
+	 */
+	public function get_size() {
+		return $this->size;
+	}
+
+	/**
+	 * Sets current image size.
+	 *
+	 * @since 3.5.0
+	 * @access protected
+	 *
+	 * @param int $width
+	 * @param int $height
+	 */
+	protected function update_size( $width = null, $height = null ) {
+		$this->size = array(
+			'width' => (int) $width,
+			'height' => (int) $height
+		);
+		return true;
+	}
+
+	/**
+	 * Sets Image Compression quality on a 1-100% scale.
+	 *
+	 * @since 3.5.0
+	 * @access public
+	 *
+	 * @param int $quality Compression Quality. Range: [1,100]
+	 * @return boolean
+	 */
+	public function set_quality( $quality ) {
+		$this->quality = apply_filters( 'wp_editor_set_quality', $quality );
+
+		return ( (bool) $this->quality );
+	}
+
+	/**
+	 * Returns preferred mime-type and extension based on provided
+	 * file's extension and mime, or current file's extension and mime.
+	 *
+	 * Will default to $this->default_mime_type if requested is not supported.
+	 *
+	 * Provides corrected filename only if filename is provided.
+	 *
+	 * @since 3.5.0
+	 * @access protected
+	 *
+	 * @param string $filename
+	 * @param string $mime_type
+	 * @return array { filename|null, extension, mime-type }
+	 */
+	protected function get_output_format( $filename = null, $mime_type = null ) {
+		$new_ext = $file_ext = null;
+		$file_mime = null;
+
+		// By default, assume specified type takes priority
+		if ( $mime_type ) {
+			$new_ext = $this->get_extension( $mime_type );
+		}
+
+		if ( $filename ) {
+			$file_ext = strtolower( pathinfo( $filename, PATHINFO_EXTENSION ) );
+			$file_mime = $this->get_mime_type( $file_ext );
+		}
+		else {
+			// If no file specified, grab editor's current extension and mime-type.
+			$file_ext = strtolower( pathinfo( $this->file, PATHINFO_EXTENSION ) );
+			$file_mime = $this->mime_type;
+		}
+
+		// Check to see if specified mime-type is the same as type implied by
+		// file extension.  If so, prefer extension from file.
+		if ( ! $mime_type || ( $file_mime == $mime_type ) ) {
+			$mime_type = $file_mime;
+			$new_ext = $file_ext;
+		}
+
+		// Double-check that the mime-type selected is supported by the editor.
+		// If not, choose a default instead.
+		if ( ! $this->supports_mime_type( $mime_type ) ) {
+			$mime_type = apply_filters( 'image_editor_default_mime_type', $this->default_mime_type );
+			$new_ext = $this->get_extension( $mime_type );
+		}
+
+		if ( $filename ) {
+			$ext = '';
+			$info = pathinfo( $filename );
+			$dir  = $info['dirname'];
+
+			if( isset( $info['extension'] ) )
+				$ext = $info['extension'];
+
+			$filename = trailingslashit( $dir ) . wp_basename( $filename, ".$ext" ) . ".{$new_ext}";
+		}
+
+		return array( $filename, $new_ext, $mime_type );
+	}
+
+	/**
+	 * Builds an output filename based on current file, and adding proper suffix
+	 *
+	 * @since 3.5.0
+	 * @access public
+	 *
+	 * @param string $suffix
+	 * @param string $dest_path
+	 * @param string $extension
+	 * @return string filename
+	 */
+	public function generate_filename( $suffix = null, $dest_path = null, $extension = null ) {
+		// $suffix will be appended to the destination filename, just before the extension
+		if ( ! $suffix )
+			$suffix = $this->get_suffix();
+
+		$info = pathinfo( $this->file );
+		$dir  = $info['dirname'];
+		$ext  = $info['extension'];
+
+		$name = wp_basename( $this->file, ".$ext" );
+		$new_ext = strtolower( $extension ? $extension : $ext );
+
+		if ( ! is_null( $dest_path ) && $_dest_path = realpath( $dest_path ) )
+			$dir = $_dest_path;
+
+		return trailingslashit( $dir ) . "{$name}-{$suffix}.{$new_ext}";
+	}
+
+	/**
+	 * Builds and returns proper suffix for file based on height and width.
+	 *
+	 * @since 3.5.0
+	 * @access public
+	 *
+	 * @return string suffix
+	 */
+	public function get_suffix() {
+		if ( ! $this->get_size() )
+			return false;
+
+		return "{$this->size['width']}x{$this->size['height']}";
+	}
+
+	/**
+	 * Either calls editor's save function or handles file as a stream.
+	 *
+	 * @since 3.5.0
+	 * @access protected
+	 *
+	 * @param string|stream $filename
+	 * @param callable $function
+	 * @param array $arguments
+	 * @return boolean
+	 */
+	protected function make_image( $filename, $function, $arguments ) {
+		$dst_file = $filename;
+
+		if ( $stream = wp_is_stream( $filename ) ) {
+			$filename = null;
+			ob_start();
+		}
+
+		$result = call_user_func_array( $function, $arguments );
+
+		if ( $result && $stream ) {
+			$contents = ob_get_contents();
+
+			$fp = fopen( $dst_file, 'w' );
+
+			if ( ! $fp )
+				return false;
+
+			fwrite( $fp, $contents );
+			fclose( $fp );
+		}
+
+		if ( $stream ) {
+			ob_end_clean();
+		}
+
+		return $result;
+	}
+
+	/**
+	 * Returns first matched mime-type from extension,
+	 * as mapped from wp_get_mime_types()
+	 *
+	 * @since 3.5.0
+	 * @access protected
+	 *
+	 * @param string $extension
+	 * @return string|boolean
+	 */
+	protected static function get_mime_type( $extension = null ) {
+		if ( ! $extension )
+			return false;
+
+		$mime_types = wp_get_mime_types();
+		$extensions = array_keys( $mime_types );
+
+		foreach( $extensions as $_extension ) {
+			if ( preg_match( "/{$extension}/i", $_extension ) ) {
+				return $mime_types[$_extension];
+			}
+		}
+
+		return false;
+	}
+
+	/**
+	 * Returns first matched extension from Mime-type,
+	 * as mapped from wp_get_mime_types()
+	 *
+	 * @since 3.5.0
+	 * @access protected
+	 *
+	 * @param string $mime_type
+	 * @return string|boolean
+	 */
+	protected static function get_extension( $mime_type = null ) {
+		$extensions = explode( '|', array_search( $mime_type, wp_get_mime_types() ) );
+
+		if ( empty( $extensions[0] ) )
+			return false;
+
+		return $extensions[0];
+	}
+}
+
--- a/web/wp-includes/class-wp-theme.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/class-wp-theme.php	Wed Dec 19 17:46:52 2012 -0800
@@ -41,6 +41,7 @@
 		'default'      => 'WordPress Default',
 		'twentyten'    => 'Twenty Ten',
 		'twentyeleven' => 'Twenty Eleven',
+		'twentytwelve' => 'Twenty Twelve',
 	);
 
 	/**
@@ -253,6 +254,7 @@
 				// Parent theme is missing.
 				$this->errors = new WP_Error( 'theme_no_parent', sprintf( __( 'The parent theme is missing. Please install the "%s" parent theme.' ), $this->template ) );
 				$this->cache_add( 'theme', array( 'headers' => $this->headers, 'errors' => $this->errors, 'stylesheet' => $this->stylesheet, 'template' => $this->template ) );
+				$this->parent = new WP_Theme( $this->template, $this->theme_root, $this );
 				return;
 			}
 		}
@@ -1102,7 +1104,7 @@
 	public static function get_allowed_on_site( $blog_id = null ) {
 		static $allowed_themes = array();
 
-		if ( ! $blog_id )
+		if ( ! $blog_id || ! is_multisite() )
 			$blog_id = get_current_blog_id();
 
 		if ( isset( $allowed_themes[ $blog_id ] ) )
@@ -1110,18 +1112,24 @@
 
 		$current = $blog_id == get_current_blog_id();
 
-		if ( $current )
+		if ( $current ) {
 			$allowed_themes[ $blog_id ] = get_option( 'allowedthemes' );
-		else
-			$allowed_themes[ $blog_id ] = get_blog_option( $blog_id, 'allowedthemes' );
+		} else {
+			switch_to_blog( $blog_id );
+			$allowed_themes[ $blog_id ] = get_option( 'allowedthemes' );
+			restore_current_blog();
+		}
 
 		// This is all super old MU back compat joy.
 		// 'allowedthemes' keys things by stylesheet. 'allowed_themes' keyed things by name.
 		if ( false === $allowed_themes[ $blog_id ] ) {
-			if ( $current )
+			if ( $current ) {
 				$allowed_themes[ $blog_id ] = get_option( 'allowed_themes' );
-			else
-				$allowed_themes[ $blog_id ] = get_blog_option( $blog_id, 'allowed_themes' );
+			} else {
+				switch_to_blog( $blog_id );
+				$allowed_themes[ $blog_id ] = get_option( 'allowed_themes' );
+				restore_current_blog();
+			}
 
 			if ( ! is_array( $allowed_themes[ $blog_id ] ) || empty( $allowed_themes[ $blog_id ] ) ) {
 				$allowed_themes[ $blog_id ] = array();
@@ -1140,8 +1148,10 @@
 					update_option( 'allowedthemes', $allowed_themes[ $blog_id ] );
 					delete_option( 'allowed_themes' );
 				} else {
-					update_blog_option( $blog_id, 'allowedthemes', $allowed_themes[ $blog_id ] );
-					delete_blog_option( $blog_id, 'allowed_themes' );
+					switch_to_blog( $blog_id );
+					update_option( 'allowedthemes', $allowed_themes[ $blog_id ] );
+					delete_option( 'allowed_themes' );
+					restore_current_blog();
 				}
 			}
 		}
--- a/web/wp-includes/class-wp-walker.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/class-wp-walker.php	Wed Dec 19 17:46:52 2012 -0800
@@ -126,7 +126,7 @@
 		if ( is_array( $args[0] ) )
 			$args[0]['has_children'] = ! empty( $children_elements[$element->$id_field] );
 		$cb_args = array_merge( array(&$output, $element, $depth), $args);
-		call_user_func_array(array(&$this, 'start_el'), $cb_args);
+		call_user_func_array(array($this, 'start_el'), $cb_args);
 
 		$id = $element->$id_field;
 
@@ -139,7 +139,7 @@
 					$newlevel = true;
 					//start the child delimiter
 					$cb_args = array_merge( array(&$output, $depth), $args);
-					call_user_func_array(array(&$this, 'start_lvl'), $cb_args);
+					call_user_func_array(array($this, 'start_lvl'), $cb_args);
 				}
 				$this->display_element( $child, $children_elements, $max_depth, $depth + 1, $args, $output );
 			}
@@ -149,12 +149,12 @@
 		if ( isset($newlevel) && $newlevel ){
 			//end the child delimiter
 			$cb_args = array_merge( array(&$output, $depth), $args);
-			call_user_func_array(array(&$this, 'end_lvl'), $cb_args);
+			call_user_func_array(array($this, 'end_lvl'), $cb_args);
 		}
 
 		//end this element
 		$cb_args = array_merge( array(&$output, $element, $depth), $args);
-		call_user_func_array(array(&$this, 'end_el'), $cb_args);
+		call_user_func_array(array($this, 'end_el'), $cb_args);
 	}
 
 	/**
--- a/web/wp-includes/class-wp-xmlrpc-server.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/class-wp-xmlrpc-server.php	Wed Dec 19 17:46:52 2012 -0800
@@ -48,6 +48,10 @@
 			'wp.getTerms'			=> 'this:wp_getTerms',
 			'wp.getTaxonomy'		=> 'this:wp_getTaxonomy',
 			'wp.getTaxonomies'		=> 'this:wp_getTaxonomies',
+			'wp.getUser'			=> 'this:wp_getUser',
+			'wp.getUsers'			=> 'this:wp_getUsers',
+			'wp.getProfile'			=> 'this:wp_getProfile',
+			'wp.editProfile'		=> 'this:wp_editProfile',
 			'wp.getPage'			=> 'this:wp_getPage',
 			'wp.getPages'			=> 'this:wp_getPages',
 			'wp.newPage'			=> 'this:wp_newPage',
@@ -78,14 +82,14 @@
 			'wp.getPostFormats'     => 'this:wp_getPostFormats',
 			'wp.getPostType'		=> 'this:wp_getPostType',
 			'wp.getPostTypes'		=> 'this:wp_getPostTypes',
+			'wp.getRevisions'		=> 'this:wp_getRevisions',
+			'wp.restoreRevision'	=> 'this:wp_restoreRevision',
 
 			// Blogger API
 			'blogger.getUsersBlogs' => 'this:blogger_getUsersBlogs',
 			'blogger.getUserInfo' => 'this:blogger_getUserInfo',
 			'blogger.getPost' => 'this:blogger_getPost',
 			'blogger.getRecentPosts' => 'this:blogger_getRecentPosts',
-			'blogger.getTemplate' => 'this:blogger_getTemplate',
-			'blogger.setTemplate' => 'this:blogger_setTemplate',
 			'blogger.newPost' => 'this:blogger_newPost',
 			'blogger.editPost' => 'this:blogger_editPost',
 			'blogger.deletePost' => 'this:blogger_deletePost',
@@ -101,8 +105,6 @@
 			// MetaWeblog API aliases for Blogger API
 			// see http://www.xmlrpc.com/stories/storyReader$2460
 			'metaWeblog.deletePost' => 'this:blogger_deletePost',
-			'metaWeblog.getTemplate' => 'this:blogger_getTemplate',
-			'metaWeblog.setTemplate' => 'this:blogger_setTemplate',
 			'metaWeblog.getUsersBlogs' => 'this:blogger_getUsersBlogs',
 
 			// MovableType API
@@ -158,48 +160,33 @@
 	}
 
 	/**
-	 * Check user's credentials.
-	 *
-	 * @since 1.5.0
-	 *
-	 * @param string $user_login User's username.
-	 * @param string $user_pass User's password.
-	 * @return bool Whether authentication passed.
-	 * @deprecated use wp_xmlrpc_server::login
-	 * @see wp_xmlrpc_server::login
-	 */
-	function login_pass_ok($user_login, $user_pass) {
-		if ( !get_option( 'enable_xmlrpc' ) ) {
-			$this->error = new IXR_Error( 405, sprintf( __( 'XML-RPC services are disabled on this site. An admin user can enable them at %s'),  admin_url('options-writing.php') ) );
-			return false;
-		}
-
-		if (!user_pass_ok($user_login, $user_pass)) {
-			$this->error = new IXR_Error(403, __('Bad login/pass combination.'));
-			return false;
-		}
-		return true;
-	}
-
-	/**
 	 * Log user in.
 	 *
-	 * @since 2.8
+	 * @since 2.8.0
 	 *
 	 * @param string $username User's username.
 	 * @param string $password User's password.
 	 * @return mixed WP_User object if authentication passed, false otherwise
 	 */
-	function login($username, $password) {
-		if ( !get_option( 'enable_xmlrpc' ) ) {
-			$this->error = new IXR_Error( 405, sprintf( __( 'XML-RPC services are disabled on this site. An admin user can enable them at %s'),  admin_url('options-writing.php') ) );
+	function login( $username, $password ) {
+		// Respect any old filters against get_option() for 'enable_xmlrpc'.
+		$enabled = apply_filters( 'pre_option_enable_xmlrpc', false ); // Deprecated
+		if ( false === $enabled )
+			$enabled = apply_filters( 'option_enable_xmlrpc', true ); // Deprecated
+
+		// Proper filter for turning off XML-RPC. It is on by default.
+		$enabled = apply_filters( 'xmlrpc_enabled', $enabled );
+
+		if ( ! $enabled ) {
+			$this->error = new IXR_Error( 405, sprintf( __( 'XML-RPC services are disabled on this site.' ) ) );
 			return false;
 		}
 
 		$user = wp_authenticate($username, $password);
 
 		if (is_wp_error($user)) {
-			$this->error = new IXR_Error(403, __('Bad login/pass combination.'));
+			$this->error = new IXR_Error( 403, __( 'Incorrect username or password.' ) );
+			$this->error = apply_filters( 'xmlrpc_login_error', $this->error, $user );
 			return false;
 		}
 
@@ -208,6 +195,22 @@
 	}
 
 	/**
+	 * Check user's credentials. Deprecated.
+	 *
+	 * @since 1.5.0
+	 * @deprecated 2.8.0
+	 * @deprecated use wp_xmlrpc_server::login
+	 * @see wp_xmlrpc_server::login
+	 *
+	 * @param string $username User's username.
+	 * @param string $password User's password.
+	 * @return bool Whether authentication passed.
+	 */
+	function login_pass_ok( $username, $password ) {
+		return (bool) $this->login( $username, $password );
+	}
+
+	/**
 	 * Sanitize string or array of strings for database.
 	 *
 	 * @since 1.5.2
@@ -319,6 +322,11 @@
 				'readonly'      => true,
 				'option'        => 'siteurl'
 			),
+			'home_url'          => array(
+				'desc'          => __( 'Home URL' ),
+				'readonly'      => true,
+				'option'        => 'home'
+			),
 			'image_default_link_type' => array(
 				'desc'          => __( 'Image default link type' ),
 				'readonly'      => true,
@@ -473,15 +481,17 @@
 				continue;
 
 			$blog_id = $blog->userblog_id;
-			switch_to_blog($blog_id);
-			$is_admin = current_user_can('manage_options');
+
+			switch_to_blog( $blog_id );
+
+			$is_admin = current_user_can( 'manage_options' );
 
 			$struct[] = array(
 				'isAdmin'		=> $is_admin,
-				'url'			=> get_option( 'home' ) . '/',
+				'url'			=> home_url( '/' ),
 				'blogid'		=> (string) $blog_id,
 				'blogName'		=> get_option( 'blogname' ),
-				'xmlrpc'		=> site_url( 'xmlrpc.php' )
+				'xmlrpc'		=> site_url( 'xmlrpc.php', 'rpc' ),
 			);
 
 			restore_current_blog();
@@ -773,7 +783,7 @@
 		// Get info the page parent if there is one.
 		$parent_title = "";
 		if ( ! empty( $page->post_parent ) ) {
-			$parent = get_page( $page->post_parent );
+			$parent = get_post( $page->post_parent );
 			$parent_title = $parent->post_title;
 		}
 
@@ -871,6 +881,46 @@
 	}
 
 	/**
+	 * Prepares user data for return in an XML-RPC object.
+	 *
+	 * @access protected
+	 *
+	 * @param WP_User $user The unprepared user object
+	 * @param array $fields The subset of user fields to return
+	 * @return array The prepared user data
+	 */
+	protected function _prepare_user( $user, $fields ) {
+		$_user = array( 'user_id' => strval( $user->ID ) );
+
+		$user_fields = array(
+			'username'          => $user->user_login,
+			'first_name'        => $user->user_firstname,
+			'last_name'         => $user->user_lastname,
+			'registered'        => $this->_convert_date( $user->user_registered ),
+			'bio'               => $user->user_description,
+			'email'             => $user->user_email,
+			'nickname'          => $user->nickname,
+			'nicename'          => $user->user_nicename,
+			'url'               => $user->user_url,
+			'display_name'      => $user->display_name,
+			'roles'             => $user->roles,
+		);
+
+		if ( in_array( 'all', $fields ) ) {
+			$_user = array_merge( $_user, $user_fields );
+		} else {
+			if ( in_array( 'basic', $fields ) ) {
+				$basic_fields = array( 'username', 'email', 'registered', 'display_name', 'nicename' );
+				$fields = array_merge( $fields, $basic_fields );
+			}
+			$requested_fields = array_intersect_key( $user_fields, array_flip( $fields ) );
+			$_user = array_merge( $_user, $requested_fields );
+		}
+
+		return apply_filters( 'xmlrpc_prepare_user', $_user, $user, $fields );
+	}
+
+	/**
 	 * Create a new post for any registered post type.
 	 *
 	 * @since 3.4.0
@@ -885,7 +935,7 @@
 	 *      - post_status (default: 'draft')
 	 *      - post_title
 	 *      - post_author
-	 *      - post_exerpt
+	 *      - post_excerpt
 	 *      - post_content
 	 *      - post_date_gmt | post_date
 	 *      - post_format
@@ -962,7 +1012,7 @@
 			if ( $post_data['post_type'] != get_post_type( $post_data['ID'] ) )
 				return new IXR_Error( 401, __( 'The post type may not be changed.' ) );
 		} else {
-			if ( ! current_user_can( $post_type->cap->edit_posts ) )
+			if ( ! current_user_can( $post_type->cap->create_posts ) || ! current_user_can( $post_type->cap->edit_posts ) )
 				return new IXR_Error( 401, __( 'Sorry, you are not allowed to post on this site.' ) );
 		}
 
@@ -980,7 +1030,8 @@
 					return new IXR_Error( 401, __( 'Sorry, you are not allowed to publish posts in this post type' ) );
 				break;
 			default:
-				$post_data['post_status'] = 'draft';
+				if ( ! get_post_status_object( $post_data['post_status'] ) )
+					$post_data['post_status'] = 'draft';
 			break;
 		}
 
@@ -1045,8 +1096,9 @@
 			// empty value deletes, non-empty value adds/updates
 			if ( ! $post_data['post_thumbnail'] )
 				delete_post_thumbnail( $post_ID );
-			elseif ( ! set_post_thumbnail( $post_ID, $post_data['post_thumbnail'] ) )
-					return new IXR_Error( 404, __( 'Invalid attachment ID.' ) );
+			elseif ( ! get_post( absint( $post_data['post_thumbnail'] ) ) )
+				return new IXR_Error( 404, __( 'Invalid attachment ID.' ) );
+			set_post_thumbnail( $post_ID, $post_data['post_thumbnail'] );
 			unset( $content_struct['post_thumbnail'] );
 		}
 
@@ -1157,7 +1209,7 @@
 
 		$post_data = apply_filters( 'xmlrpc_wp_insert_post_data', $post_data, $content_struct );
 
-		$post_ID = wp_insert_post( $post_data, true );
+		$post_ID = $update ? wp_update_post( $post_data, true ) : wp_insert_post( $post_data, true );
 		if ( is_wp_error( $post_ID ) )
 			return new IXR_Error( 500, $post_ID->get_error_message() );
 
@@ -1205,6 +1257,13 @@
 		if ( empty( $post['ID'] ) )
 			return new IXR_Error( 404, __( 'Invalid post ID.' ) );
 
+		if ( isset( $content_struct['if_not_modified_since'] ) ) {
+			// If the post has been modified since the date provided, return an error.
+			if ( mysql2date( 'U', $post['post_modified_gmt'] ) > $content_struct['if_not_modified_since']->getTimestamp() ) {
+				return new IXR_Error( 409, __( 'There is a revision of this post that is more recent.' ) );
+			}
+		}
+
 		// convert the date field back to IXR form
 		$post['post_date'] = $this->_convert_date( $post['post_date'] );
 
@@ -1254,7 +1313,7 @@
 
 		do_action( 'xmlrpc_call', 'wp.deletePost' );
 
-		$post = wp_get_single_post( $post_id, ARRAY_A );
+		$post = get_post( $post_id, ARRAY_A );
 		if ( empty( $post['ID'] ) )
 			return new IXR_Error( 404, __( 'Invalid post ID.' ) );
 
@@ -1284,7 +1343,7 @@
 	 * groups are 'post' (all basic fields), 'taxonomies', 'custom_fields',
 	 * and 'enclosure'.
 	 *
-	 * @uses wp_get_single_post()
+	 * @uses get_post()
 	 * @param array $args Method parameters. Contains:
 	 *  - int     $post_id
 	 *  - string  $username
@@ -1335,7 +1394,7 @@
 
 		do_action( 'xmlrpc_call', 'wp.getPost' );
 
-		$post = wp_get_single_post( $post_id, ARRAY_A );
+		$post = get_post( $post_id, ARRAY_A );
 
 		if ( empty( $post['ID'] ) )
 			return new IXR_Error( 404, __( 'Invalid post ID.' ) );
@@ -1423,6 +1482,10 @@
 				$query['order'] = $filter['order'];
 		}
 
+		if ( isset( $filter['s'] ) ) {
+			$query['s'] = $filter['s'];
+		}
+
 		$posts_list = wp_get_recent_posts( $query );
 
 		if ( ! $posts_list )
@@ -1918,6 +1981,262 @@
 	}
 
 	/**
+	 * Retrieve a user.
+	 *
+	 * The optional $fields parameter specifies what fields will be included
+	 * in the response array. This should be a list of field names. 'user_id' will
+	 * always be included in the response regardless of the value of $fields.
+	 *
+	 * Instead of, or in addition to, individual field names, conceptual group
+	 * names can be used to specify multiple fields. The available conceptual
+	 * groups are 'basic' and 'all'.
+	 *
+	 * @uses get_userdata()
+	 * @param array $args Method parameters. Contains:
+	 *  - int     $blog_id
+	 *  - string  $username
+	 *  - string  $password
+	 *  - int     $user_id
+	 *  - array   $fields optional
+	 * @return array contains (based on $fields parameter):
+	 *  - 'user_id'
+	 *  - 'username'
+	 *  - 'first_name'
+	 *  - 'last_name'
+	 *  - 'registered'
+	 *  - 'bio'
+	 *  - 'email'
+	 *  - 'nickname'
+	 *  - 'nicename'
+	 *  - 'url'
+	 *  - 'display_name'
+	 *  - 'roles'
+	 */
+	function wp_getUser( $args ) {
+		if ( ! $this->minimum_args( $args, 4 ) )
+			return $this->error;
+
+		$this->escape( $args );
+
+		$blog_id    = (int) $args[0];
+		$username   = $args[1];
+		$password   = $args[2];
+		$user_id    = (int) $args[3];
+
+		if ( isset( $args[4] ) )
+			$fields = $args[4];
+		else
+			$fields = apply_filters( 'xmlrpc_default_user_fields', array( 'all' ), 'wp.getUser' );
+
+		if ( ! $user = $this->login( $username, $password ) )
+			return $this->error;
+
+		do_action( 'xmlrpc_call', 'wp.getUser' );
+
+		if ( ! current_user_can( 'edit_user', $user_id ) )
+			return new IXR_Error( 401, __( 'Sorry, you cannot edit users.' ) );
+
+		$user_data = get_userdata( $user_id );
+
+		if ( ! $user_data )
+			return new IXR_Error( 404, __( 'Invalid user ID' ) );
+
+		return $this->_prepare_user( $user_data, $fields );
+	}
+
+	/**
+	 * Retrieve users.
+	 *
+	 * The optional $filter parameter modifies the query used to retrieve users.
+	 * Accepted keys are 'number' (default: 50), 'offset' (default: 0), 'role',
+	 * 'who', 'orderby', and 'order'.
+	 *
+	 * The optional $fields parameter specifies what fields will be included
+	 * in the response array.
+	 *
+	 * @uses get_users()
+	 * @see wp_getUser() for more on $fields and return values
+	 *
+	 * @param array $args Method parameters. Contains:
+	 *  - int     $blog_id
+	 *  - string  $username
+	 *  - string  $password
+	 *  - array   $filter optional
+	 *  - array   $fields optional
+	 * @return array users data
+	 */
+	function wp_getUsers( $args ) {
+		if ( ! $this->minimum_args( $args, 3 ) )
+			return $this->error;
+
+		$this->escape( $args );
+
+		$blog_id    = (int) $args[0];
+		$username   = $args[1];
+		$password   = $args[2];
+		$filter     = isset( $args[3] ) ? $args[3] : array();
+
+		if ( isset( $args[4] ) )
+			$fields = $args[4];
+		else
+			$fields = apply_filters( 'xmlrpc_default_user_fields', array( 'all' ), 'wp.getUsers' );
+
+		if ( ! $user = $this->login( $username, $password ) )
+			return $this->error;
+
+		do_action( 'xmlrpc_call', 'wp.getUsers' );
+
+		if ( ! current_user_can( 'list_users' ) )
+			return new IXR_Error( 401, __( 'Sorry, you cannot list users.' ) );
+
+		$query = array( 'fields' => 'all_with_meta' );
+
+		$query['number'] = ( isset( $filter['number'] ) ) ? absint( $filter['number'] ) : 50;
+		$query['offset'] = ( isset( $filter['offset'] ) ) ? absint( $filter['offset'] ) : 0;
+
+		if ( isset( $filter['orderby'] ) ) {
+			$query['orderby'] = $filter['orderby'];
+
+			if ( isset( $filter['order'] ) )
+				$query['order'] = $filter['order'];
+		}
+
+		if ( isset( $filter['role'] ) ) {
+			if ( get_role( $filter['role'] ) === null )
+				return new IXR_Error( 403, __( 'The role specified is not valid' ) );
+
+			$query['role'] = $filter['role'];
+		}
+
+		if ( isset( $filter['who'] ) ) {
+			$query['who'] = $filter['who'];
+		}
+
+		$users = get_users( $query );
+
+		$_users = array();
+		foreach ( $users as $user_data ) {
+			if ( current_user_can( 'edit_user', $user_data->ID ) )
+				$_users[] = $this->_prepare_user( $user_data, $fields );
+		}
+		return $_users;
+	}
+
+	/**
+	 * Retrieve information about the requesting user.
+	 *
+	 * @uses get_userdata()
+	 * @param array $args Method parameters. Contains:
+	 *  - int     $blog_id
+	 *  - string  $username
+	 *  - string  $password
+	 *  - array   $fields optional
+	 * @return array (@see wp_getUser)
+	 */
+	function wp_getProfile( $args ) {
+		if ( ! $this->minimum_args( $args, 3 ) )
+			return $this->error;
+
+		$this->escape( $args );
+
+		$blog_id    = (int) $args[0];
+		$username   = $args[1];
+		$password   = $args[2];
+
+		if ( isset( $args[3] ) )
+			$fields = $args[3];
+		else
+			$fields = apply_filters( 'xmlrpc_default_user_fields', array( 'all' ), 'wp.getProfile' );
+
+		if ( ! $user = $this->login( $username, $password ) )
+			return $this->error;
+
+		do_action( 'xmlrpc_call', 'wp.getProfile' );
+
+		if ( ! current_user_can( 'edit_user', $user->ID ) )
+			return new IXR_Error( 401, __( 'Sorry, you cannot edit your profile.' ) );
+
+		$user_data = get_userdata( $user->ID );
+
+		return $this->_prepare_user( $user_data, $fields );
+	}
+
+	/**
+	 * Edit user's profile.
+	 *
+	 * @uses wp_update_user()
+	 * @param array $args Method parameters. Contains:
+	 *  - int     $blog_id
+	 *  - string  $username
+	 *  - string  $password
+	 *  - array   $content_struct
+	 *      It can optionally contain:
+	 *      - 'first_name'
+	 *      - 'last_name'
+	 *      - 'website'
+	 *      - 'display_name'
+	 *      - 'nickname'
+	 *      - 'nicename'
+	 *      - 'bio'
+	 * @return bool True, on success.
+	 */
+	function wp_editProfile( $args ) {
+		if ( ! $this->minimum_args( $args, 4 ) )
+			return $this->error;
+
+		$this->escape( $args );
+
+		$blog_id        = (int) $args[0];
+		$username       = $args[1];
+		$password       = $args[2];
+		$content_struct = $args[3];
+
+		if ( ! $user = $this->login( $username, $password ) )
+			return $this->error;
+
+		do_action( 'xmlrpc_call', 'wp.editProfile' );
+
+		if ( ! current_user_can( 'edit_user', $user->ID ) )
+			return new IXR_Error( 401, __( 'Sorry, you cannot edit your profile.' ) );
+
+		// holds data of the user
+		$user_data = array();
+		$user_data['ID'] = $user->ID;
+
+		// only set the user details if it was given
+		if ( isset( $content_struct['first_name'] ) )
+			$user_data['first_name'] = $content_struct['first_name'];
+
+		if ( isset( $content_struct['last_name'] ) )
+			$user_data['last_name'] = $content_struct['last_name'];
+
+		if ( isset( $content_struct['url'] ) )
+			$user_data['user_url'] = $content_struct['url'];
+
+		if ( isset( $content_struct['display_name'] ) )
+			$user_data['display_name'] = $content_struct['display_name'];
+
+		if ( isset( $content_struct['nickname'] ) )
+			$user_data['nickname'] = $content_struct['nickname'];
+
+		if ( isset( $content_struct['nicename'] ) )
+			$user_data['user_nicename'] = $content_struct['nicename'];
+
+		if ( isset( $content_struct['bio'] ) )
+			$user_data['description'] = $content_struct['bio'];
+
+		$result = wp_update_user( $user_data );
+
+		if ( is_wp_error( $result ) )
+			return new IXR_Error( 500, $result->get_error_message() );
+
+		if ( ! $result )
+			return new IXR_Error( 500, __( 'Sorry, the user cannot be updated.' ) );
+
+		return true;
+	}
+
+	/**
 	 * Retrieve page.
 	 *
 	 * @since 2.2.0
@@ -1941,7 +2260,7 @@
 			return $this->error;
 		}
 
-		$page = get_page($page_id);
+		$page = get_post($page_id);
 		if ( ! $page )
 			return new IXR_Error( 404, __( 'Invalid post ID.' ) );
 
@@ -2058,7 +2377,7 @@
 
 		// Get the current page based on the page_id and
 		// make sure it is a page and not a post.
-		$actual_page = wp_get_single_post($page_id, ARRAY_A);
+		$actual_page = get_post($page_id, ARRAY_A);
 		if ( !$actual_page || ($actual_page['post_type'] != 'page') )
 			return(new IXR_Error(404, __('Sorry, no such page.')));
 
@@ -2099,7 +2418,7 @@
 		do_action('xmlrpc_call', 'wp.editPage');
 
 		// Get the page data and make sure it is a page.
-		$actual_page = wp_get_single_post($page_id, ARRAY_A);
+		$actual_page = get_post($page_id, ARRAY_A);
 		if ( !$actual_page || ($actual_page['post_type'] != 'page') )
 			return(new IXR_Error(404, __('Sorry, no such page.')));
 
@@ -3169,6 +3488,128 @@
 		return $struct;
 	}
 
+	/**
+	 * Retrieve revisions for a specific post.
+	 *
+	 * @since 3.5.0
+	 *
+	 * The optional $fields parameter specifies what fields will be included
+	 * in the response array.
+	 *
+	 * @uses wp_get_post_revisions()
+	 * @see wp_getPost() for more on $fields
+	 *
+	 * @param array $args Method parameters. Contains:
+	 *  - int     $blog_id
+	 *  - string  $username
+	 *  - string  $password
+	 *  - int     $post_id
+	 *  - array   $fields
+	 * @return array contains a collection of posts.
+	 */
+	function wp_getRevisions( $args ) {
+		if ( ! $this->minimum_args( $args, 4 ) )
+			return $this->error;
+
+		$this->escape( $args );
+
+		$blog_id    = (int) $args[0];
+		$username   = $args[1];
+		$password   = $args[2];
+		$post_id    = (int) $args[3];
+
+		if ( isset( $args[4] ) )
+			$fields = $args[4];
+		else
+			$fields = apply_filters( 'xmlrpc_default_revision_fields', array( 'post_date', 'post_date_gmt' ), 'wp.getRevisions' );
+
+		if ( ! $user = $this->login( $username, $password ) )
+			return $this->error;
+
+		do_action( 'xmlrpc_call', 'wp.getRevisions' );
+
+		if ( ! $post = get_post( $post_id ) )
+			return new IXR_Error( 404, __( 'Invalid post ID' ) );
+
+		if ( ! current_user_can( 'edit_post', $post_id ) )
+			return new IXR_Error( 401, __( 'Sorry, you are not allowed to edit posts.' ) );
+
+		// Check if revisions are enabled.
+		if ( ! WP_POST_REVISIONS || ! post_type_supports( $post->post_type, 'revisions' ) )
+			return new IXR_Error( 401, __( 'Sorry, revisions are disabled.' ) );
+
+		$revisions = wp_get_post_revisions( $post_id );
+
+		if ( ! $revisions )
+			return array();
+
+		$struct = array();
+
+		foreach ( $revisions as $revision ) {
+			if ( ! current_user_can( 'read_post', $revision->ID ) )
+				continue;
+
+			// Skip autosaves
+			if ( wp_is_post_autosave( $revision ) )
+				continue;
+
+			$struct[] = $this->_prepare_post( get_object_vars( $revision ), $fields );
+		}
+
+		return $struct;
+	}
+
+	/**
+	 * Restore a post revision
+	 *
+	 * @since 3.5.0
+	 *
+	 * @uses wp_restore_post_revision()
+	 *
+	 * @param array $args Method parameters. Contains:
+	 *  - int     $blog_id
+	 *  - string  $username
+	 *  - string  $password
+	 *  - int     $post_id
+	 * @return bool false if there was an error restoring, true if success.
+	 */
+	function wp_restoreRevision( $args ) {
+		if ( ! $this->minimum_args( $args, 3 ) )
+			return $this->error;
+
+		$this->escape( $args );
+
+		$blog_id     = (int) $args[0];
+		$username    = $args[1];
+		$password    = $args[2];
+		$revision_id = (int) $args[3];
+
+		if ( ! $user = $this->login( $username, $password ) )
+			return $this->error;
+
+		do_action( 'xmlrpc_call', 'wp.restoreRevision' );
+
+		if ( ! $revision = wp_get_post_revision( $revision_id ) )
+			return new IXR_Error( 404, __( 'Invalid post ID' ) );
+
+		if ( wp_is_post_autosave( $revision ) )
+			return new IXR_Error( 404, __( 'Invalid post ID' ) );
+
+		if ( ! $post = get_post( $revision->post_parent ) )
+			return new IXR_Error( 404, __( 'Invalid post ID' ) );
+
+		if ( ! current_user_can( 'edit_post', $revision->post_parent ) )
+			return new IXR_Error( 401, __( 'Sorry, you cannot edit this post.' ) );
+
+		// Check if revisions are disabled.
+		if ( ! WP_POST_REVISIONS || ! post_type_supports( $post->post_type, 'revisions' ) )
+			return new IXR_Error( 401, __( 'Sorry, revisions are disabled.' ) );
+
+		$post = wp_restore_post_revision( $revision_id );
+
+		return (bool) $post;
+	}
+
 	/* Blogger API functions.
 	 * specs on http://plant.blogger.com/api and http://groups.yahoo.com/group/bloggerDev/
 	 */
@@ -3204,7 +3645,7 @@
 			'url'      => get_option('home') . '/',
 			'blogid'   => '1',
 			'blogName' => get_option('blogname'),
-			'xmlrpc'   => site_url( 'xmlrpc.php' )
+			'xmlrpc'   => site_url( 'xmlrpc.php', 'rpc' ),
 		);
 
 		return array($struct);
@@ -3216,12 +3657,12 @@
 	 * @access protected
 	 */
 	function _multisite_getUsersBlogs($args) {
-		global $current_blog;
+		$current_blog = get_blog_details();
+
 		$domain = $current_blog->domain;
 		$path = $current_blog->path . 'xmlrpc.php';
-		$protocol = is_ssl() ? 'https' : 'http';
-
-		$rpc = new IXR_Client("$protocol://{$domain}{$path}");
+
+		$rpc = new IXR_Client( set_url_scheme( "http://{$domain}{$path}" ) );
 		$rpc->query('wp.getUsersBlogs', $args[1], $args[2]);
 		$blogs = $rpc->getResponse();
 
@@ -3294,7 +3735,7 @@
 		if ( !$user = $this->login($username, $password) )
 			return $this->error;
 
-		$post_data = wp_get_single_post($post_ID, ARRAY_A);
+		$post_data = get_post($post_ID, ARRAY_A);
 		if ( ! $post_data )
 			return new IXR_Error( 404, __( 'Invalid post ID.' ) );
 
@@ -3381,82 +3822,23 @@
 	}
 
 	/**
-	 * Retrieve blog_filename content.
+	 * Deprecated.
 	 *
 	 * @since 1.5.0
-	 *
-	 * @param array $args Method parameters.
-	 * @return string
+	 * @deprecated 3.5.0
 	 */
 	function blogger_getTemplate($args) {
-
-		$this->escape($args);
-
-		$blog_ID    = (int) $args[1];
-		$username = $args[2];
-		$password  = $args[3];
-		$template   = $args[4]; /* could be 'main' or 'archiveIndex', but we don't use it */
-
-		if ( !$user = $this->login($username, $password) )
-			return $this->error;
-
-		do_action('xmlrpc_call', 'blogger.getTemplate');
-
-		if ( !current_user_can('edit_themes') )
-			return new IXR_Error(401, __('Sorry, this user cannot edit the template.'));
-
-		/* warning: here we make the assumption that the blog's URL is on the same server */
-		$filename = get_option('home') . '/';
-		$filename = preg_replace('#https?://.+?/#', $_SERVER['DOCUMENT_ROOT'].'/', $filename);
-
-		$f = fopen($filename, 'r');
-		$content = fread($f, filesize($filename));
-		fclose($f);
-
-		/* so it is actually editable with a windows/mac client */
-		// FIXME: (or delete me) do we really want to cater to bad clients at the expense of good ones by BEEPing up their line breaks? commented. $content = str_replace("\n", "\r\n", $content);
-
-		return $content;
+		return new IXR_Error( 403, __('Sorry, that file cannot be edited.' ) );
 	}
 
 	/**
-	 * Updates the content of blog_filename.
+	 * Deprecated.
 	 *
 	 * @since 1.5.0
-	 *
-	 * @param array $args Method parameters.
-	 * @return bool True when done.
+	 * @deprecated 3.5.0
 	 */
 	function blogger_setTemplate($args) {
-
-		$this->escape($args);
-
-		$blog_ID    = (int) $args[1];
-		$username = $args[2];
-		$password  = $args[3];
-		$content    = $args[4];
-		$template   = $args[5]; /* could be 'main' or 'archiveIndex', but we don't use it */
-
-		if ( !$user = $this->login($username, $password) )
-			return $this->error;
-
-		do_action('xmlrpc_call', 'blogger.setTemplate');
-
-		if ( !current_user_can('edit_themes') )
-			return new IXR_Error(401, __('Sorry, this user cannot edit the template.'));
-
-		/* warning: here we make the assumption that the blog's URL is on the same server */
-		$filename = get_option('home') . '/';
-		$filename = preg_replace('#https?://.+?/#', $_SERVER['DOCUMENT_ROOT'].'/', $filename);
-
-		if ($f = fopen($filename, 'w+')) {
-			fwrite($f, $content);
-			fclose($f);
-		} else {
-			return new IXR_Error(500, __('Either the file is not writable, or something wrong happened. The file has not been updated.'));
-		}
-
-		return true;
+		return new IXR_Error( 403, __('Sorry, that file cannot be edited.' ) );
 	}
 
 	/**
@@ -3483,7 +3865,7 @@
 		do_action('xmlrpc_call', 'blogger.newPost');
 
 		$cap = ($publish) ? 'publish_posts' : 'edit_posts';
-		if ( !current_user_can($cap) )
+		if ( ! current_user_can( get_post_type_object( 'post' )->cap->create_posts ) || !current_user_can($cap) )
 			return new IXR_Error(401, __('Sorry, you are not allowed to post on this site.'));
 
 		$post_status = ($publish) ? 'publish' : 'draft';
@@ -3536,7 +3918,7 @@
 
 		do_action('xmlrpc_call', 'blogger.editPost');
 
-		$actual_post = wp_get_single_post($post_ID,ARRAY_A);
+		$actual_post = get_post($post_ID,ARRAY_A);
 
 		if ( !$actual_post || $actual_post['post_type'] != 'post' )
 			return new IXR_Error(404, __('Sorry, no such post.'));
@@ -3590,7 +3972,7 @@
 
 		do_action('xmlrpc_call', 'blogger.deletePost');
 
-		$actual_post = wp_get_single_post($post_ID,ARRAY_A);
+		$actual_post = get_post($post_ID,ARRAY_A);
 
 		if ( !$actual_post || $actual_post['post_type'] != 'post' )
 			return new IXR_Error(404, __('Sorry, no such post.'));
@@ -3698,6 +4080,8 @@
 			$post_type = 'post';
 		}
 
+		if ( ! current_user_can( get_post_type_object( $post_type )->cap->create_posts ) )
+			return new IXR_Error( 401, __( 'Sorry, you are not allowed to publish posts on this site.' ) );
 		if ( !current_user_can( $cap ) )
 			return new IXR_Error( 401, $error_message );
 
@@ -3730,18 +4114,18 @@
 		$post_author = $user->ID;
 
 		// If an author id was provided then use it instead.
-		if ( isset($content_struct['wp_author_id']) && ($user->ID != $content_struct['wp_author_id']) ) {
+		if ( isset( $content_struct['wp_author_id'] ) && ( $user->ID != $content_struct['wp_author_id'] ) ) {
 			switch ( $post_type ) {
 				case "post":
-					if ( !current_user_can('edit_others_posts') )
-						return(new IXR_Error(401, __('You are not allowed to post as this user')));
+					if ( !current_user_can( 'edit_others_posts' ) )
+						return( new IXR_Error( 401, __( 'You are not allowed to create posts as this user.' ) ) );
 					break;
 				case "page":
-					if ( !current_user_can('edit_others_pages') )
-						return(new IXR_Error(401, __('You are not allowed to create pages as this user')));
+					if ( !current_user_can( 'edit_others_pages' ) )
+						return( new IXR_Error( 401, __( 'You are not allowed to create pages as this user.' ) ) );
 					break;
 				default:
-					return(new IXR_Error(401, __('Invalid post type')));
+					return( new IXR_Error( 401, __( 'Invalid post type' ) ) );
 					break;
 			}
 			$author = get_userdata( $content_struct['wp_author_id'] );
@@ -3902,7 +4286,7 @@
 		// Handle post formats if assigned, value is validated earlier
 		// in this function
 		if ( isset( $content_struct['wp_post_format'] ) )
-			wp_set_post_terms( $post_ID, array( 'post-format-' . $content_struct['wp_post_format'] ), 'post_format' );
+			set_post_format( $post_ID, $content_struct['wp_post_format'] );
 
 		$post_ID = wp_insert_post( $postdata, true );
 		if ( is_wp_error( $post_ID ) )
@@ -3980,7 +4364,7 @@
 
 		do_action('xmlrpc_call', 'metaWeblog.editPost');
 
-		$postdata = wp_get_single_post( $post_ID, ARRAY_A );
+		$postdata = get_post( $post_ID, ARRAY_A );
 
 		// If there is no post data for the give post id, stop
 		// now and return an error. Other wise a new post will be
@@ -4219,7 +4603,7 @@
 		// Handle post formats if assigned, validation is handled
 		// earlier in this function
 		if ( isset( $content_struct['wp_post_format'] ) )
-			wp_set_post_terms( $post_ID, array( 'post-format-' . $content_struct['wp_post_format'] ), 'post_format' );
+			set_post_format( $post_ID, $content_struct['wp_post_format'] );
 
 		do_action( 'xmlrpc_call_success_mw_editPost', $post_ID, $args );
 
@@ -4245,7 +4629,7 @@
 		if ( !$user = $this->login($username, $password) )
 			return $this->error;
 
-		$postdata = wp_get_single_post($post_ID, ARRAY_A);
+		$postdata = get_post($post_ID, ARRAY_A);
 		if ( ! $postdata )
 			return new IXR_Error( 404, __( 'Invalid post ID.' ) );
 
@@ -4380,6 +4764,7 @@
 		if ( !$posts_list )
 			return array();
 
+		$struct = array();
 		foreach ($posts_list as $entry) {
 			if ( !current_user_can( 'edit_post', $entry['ID'] ) )
 				continue;
@@ -4568,8 +4953,13 @@
 			return new IXR_Error(500, $errorString);
 		}
 		// Construct the attachment array
-		// attach to post_id 0
 		$post_id = 0;
+		if ( ! empty( $data['post_id'] ) ) {
+			$post_id = (int) $data['post_id'];
+
+			if ( ! current_user_can( 'edit_post', $post_id ) )
+				return new IXR_Error( 401, __( 'Sorry, you cannot edit this post.' ) );
+		}
 		$attachment = array(
 			'post_title' => $name,
 			'post_content' => '',
@@ -4767,6 +5157,7 @@
 		if ( !current_user_can('edit_post', $post_ID) )
 			return new IXR_Error(401, __('Sorry, you cannot edit this post.'));
 
+		$catids = array();
 		foreach ( $categories as $cat ) {
 			$catids[] = $cat['categoryId'];
 		}
@@ -4824,7 +5215,7 @@
 
 		do_action('xmlrpc_call', 'mt.getTrackbackPings');
 
-		$actual_post = wp_get_single_post($post_ID, ARRAY_A);
+		$actual_post = get_post($post_ID, ARRAY_A);
 
 		if ( !$actual_post )
 			return new IXR_Error(404, __('Sorry, no such post.'));
@@ -4871,7 +5262,7 @@
 
 		do_action('xmlrpc_call', 'mt.publishPost');
 
-		$postdata = wp_get_single_post($post_ID, ARRAY_A);
+		$postdata = get_post($post_ID, ARRAY_A);
 		if ( ! $postdata )
 			return new IXR_Error( 404, __( 'Invalid post ID.' ) );
 
@@ -4934,7 +5325,7 @@
 			$blah = explode('/', $match[0]);
 			$post_ID = (int) $blah[1];
 			$way = 'from the path';
-		} elseif ( preg_match('#p=[0-9]{1,}#', $urltest['query'], $match) ) {
+		} elseif ( isset( $urltest['query'] ) && preg_match('#p=[0-9]{1,}#', $urltest['query'], $match) ) {
 			// the querystring defines the post_ID (?p=XXXX)
 			$blah = explode('=', $match[0]);
 			$post_ID = (int) $blah[1];
@@ -4994,7 +5385,7 @@
 		// Work around bug in strip_tags():
 		$linea = str_replace('<!DOC', '<DOC', $linea);
 		$linea = preg_replace( '/[\s\r\n\t]+/', ' ', $linea ); // normalize spaces
-		$linea = preg_replace( "/ <(h1|h2|h3|h4|h5|h6|p|th|td|li|dt|dd|pre|caption|input|textarea|button|body)[^>]*>/", "\n\n", $linea );
+		$linea = preg_replace( "/<\/*(h1|h2|h3|h4|h5|h6|p|th|td|li|dt|dd|pre|caption|input|textarea|button|body)[^>]*>/", "\n\n", $linea );
 
 		preg_match('|<title>([^<]*?)</title>|is', $linea, $matchtitle);
 		$title = $matchtitle[1];
@@ -5085,7 +5476,7 @@
 	  		return new IXR_Error(33, __('The specified target URL cannot be used as a target. It either doesn&#8217;t exist, or it is not a pingback-enabled resource.'));
 		}
 
-		$actual_post = wp_get_single_post($post_ID, ARRAY_A);
+		$actual_post = get_post($post_ID, ARRAY_A);
 
 		if ( !$actual_post ) {
 			// No such post = resource not found
--- a/web/wp-includes/class-wp.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/class-wp.php	Wed Dec 19 17:46:52 2012 -0800
@@ -120,6 +120,9 @@
 	function parse_request($extra_query_vars = '') {
 		global $wp_rewrite;
 
+		if ( ! apply_filters( 'do_parse_request', true, $this, $extra_query_vars ) )
+			return;
+
 		$this->query_vars = array();
 		$post_type_query_vars = array();
 
@@ -161,13 +164,13 @@
 			// requested permalink.
 			$req_uri = str_replace($pathinfo, '', $req_uri);
 			$req_uri = trim($req_uri, '/');
-			$req_uri = preg_replace("|^$home_path|", '', $req_uri);
+			$req_uri = preg_replace("|^$home_path|i", '', $req_uri);
 			$req_uri = trim($req_uri, '/');
 			$pathinfo = trim($pathinfo, '/');
-			$pathinfo = preg_replace("|^$home_path|", '', $pathinfo);
+			$pathinfo = preg_replace("|^$home_path|i", '', $pathinfo);
 			$pathinfo = trim($pathinfo, '/');
 			$self = trim($self, '/');
-			$self = preg_replace("|^$home_path|", '', $self);
+			$self = preg_replace("|^$home_path|i", '', $self);
 			$self = trim($self, '/');
 
 			// The requested permalink is in $pathinfo for path info requests and
@@ -192,7 +195,7 @@
 					$query = $rewrite['$'];
 					$matches = array('');
 				}
-			} else if ( $req_uri != 'wp-app.php' ) {
+			} else {
 				foreach ( (array) $rewrite as $match => $query ) {
 					// If the requesting file is the anchor of the match, prepend it to the path info.
 					if ( ! empty($req_uri) && strpos($match, $req_uri) === 0 && $req_uri != $request )
@@ -226,16 +229,14 @@
 				// Parse the query.
 				parse_str($query, $perma_query_vars);
 
-				// If we're processing a 404 request, clear the error var
-				// since we found something.
-				unset( $_GET['error'] );
-				unset( $error );
+				// If we're processing a 404 request, clear the error var since we found something.
+				if ( '404' == $error )
+					unset( $error, $_GET['error'] );
 			}
 
 			// If req_uri is empty or if it is a request for ourself, unset error.
 			if ( empty($request) || $req_uri == $self || strpos($_SERVER['PHP_SELF'], 'wp-admin/') !== false ) {
-				unset( $_GET['error'] );
-				unset( $error );
+				unset( $error, $_GET['error'] );
 
 				if ( isset($perma_query_vars) && strpos($_SERVER['PHP_SELF'], 'wp-admin/') !== false )
 					unset( $perma_query_vars );
@@ -322,11 +323,15 @@
 
 		if ( is_user_logged_in() )
 			$headers = array_merge($headers, wp_get_nocache_headers());
-		if ( !empty($this->query_vars['error']) && '404' == $this->query_vars['error'] ) {
-			$status = 404;
-			if ( !is_user_logged_in() )
-				$headers = array_merge($headers, wp_get_nocache_headers());
-			$headers['Content-Type'] = get_option('html_type') . '; charset=' . get_option('blog_charset');
+		if ( ! empty( $this->query_vars['error'] ) ) {
+			$status = (int) $this->query_vars['error'];
+			if ( 404 === $status ) {
+				if ( ! is_user_logged_in() )
+					$headers = array_merge($headers, wp_get_nocache_headers());
+				$headers['Content-Type'] = get_option('html_type') . '; charset=' . get_option('blog_charset');
+			} elseif ( in_array( $status, array( 403, 500, 502, 503 ) ) ) {
+				$exit_required = true;
+			}
 		} else if ( empty($this->query_vars['feed']) ) {
 			$headers['Content-Type'] = get_option('html_type') . '; charset=' . get_option('blog_charset');
 		} else {
@@ -376,6 +381,9 @@
 		foreach( (array) $headers as $name => $field_value )
 			@header("{$name}: {$field_value}");
 
+		if ( isset( $headers['Last-Modified'] ) && empty( $headers['Last-Modified'] ) && function_exists( 'header_remove' ) )
+			@header_remove( 'Last-Modified' );
+
 		if ( $exit_required )
 			exit();
 
@@ -601,7 +609,7 @@
 	 * @return string
 	 */
 	function _map() {
-		$callback = array(&$this, 'callback');
+		$callback = array($this, 'callback');
 		return preg_replace_callback($this->_pattern, $callback, $this->_subject);
 	}
 
--- a/web/wp-includes/class.wp-dependencies.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/class.wp-dependencies.php	Wed Dec 19 17:46:52 2012 -0800
@@ -196,24 +196,27 @@
 		}
 	}
 
-	function query( $handle, $list = 'registered' ) { // registered, queue, done, to_do
-		switch ( $list ) :
-		case 'registered':
-		case 'scripts': // back compat
-			if ( isset($this->registered[$handle]) )
-				return $this->registered[$handle];
-			break;
-		case 'to_print': // back compat
-		case 'printed': // back compat
-			if ( 'to_print' == $list )
-				$list = 'to_do';
-			else
-				$list = 'printed';
-		default:
-			if ( in_array($handle, $this->$list) )
-				return true;
-			break;
-		endswitch;
+
+	function query( $handle, $list = 'registered' ) {
+		switch ( $list ) {
+			case 'registered' :
+			case 'scripts': // back compat
+				if ( isset( $this->registered[ $handle ] ) )
+					return $this->registered[ $handle ];
+				return false;
+
+			case 'enqueued' :
+			case 'queue' :
+				return in_array( $handle, $this->queue );
+
+			case 'to_do' :
+			case 'to_print': // back compat
+				return in_array( $handle, $this->to_do );
+
+			case 'done' :
+			case 'printed': // back compat
+				return in_array( $handle, $this->done );
+		}
 		return false;
 	}
 
@@ -244,8 +247,8 @@
 	var $extra = array();
 
 	function __construct() {
-		@list($this->handle, $this->src, $this->deps, $this->ver, $this->args) = func_get_args();
-		if ( !is_array($this->deps) )
+		@list( $this->handle, $this->src, $this->deps, $this->ver, $this->args ) = func_get_args();
+		if ( ! is_array($this->deps) )
 			$this->deps = array();
 	}
 
--- a/web/wp-includes/class.wp-scripts.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/class.wp-scripts.php	Wed Dec 19 17:46:52 2012 -0800
@@ -110,7 +110,7 @@
 		}
 
 		$this->print_extra_script( $handle );
-		if ( !preg_match('|^https?://|', $src) && ! ( $this->content_url && 0 === strpos($src, $this->content_url) ) ) {
+		if ( !preg_match('|^(https?:)?//|', $src) && ! ( $this->content_url && 0 === strpos($src, $this->content_url) ) ) {
 			$src = $this->base_url . $src;
 		}
 
--- a/web/wp-includes/class.wp-styles.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/class.wp-styles.php	Wed Dec 19 17:46:52 2012 -0800
@@ -135,7 +135,7 @@
 	}
 
 	function _css_href( $src, $ver, $handle ) {
-		if ( !is_bool($src) && !preg_match('|^https?://|', $src) && ! ( $this->content_url && 0 === strpos($src, $this->content_url) ) ) {
+		if ( !is_bool($src) && !preg_match('|^(https?:)?//|', $src) && ! ( $this->content_url && 0 === strpos($src, $this->content_url) ) ) {
 			$src = $this->base_url . $src;
 		}
 
--- a/web/wp-includes/comment-template.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/comment-template.php	Wed Dec 19 17:46:52 2012 -0800
@@ -810,11 +810,8 @@
  * @uses $post Gets the ID of the current post for the token
  */
 function wp_comment_form_unfiltered_html_nonce() {
-	global $post;
-
-	$post_id = 0;
-	if ( !empty($post) )
-		$post_id = $post->ID;
+	$post = get_post();
+	$post_id = $post ? $post->ID : 0;
 
 	if ( current_user_can( 'unfiltered_html' ) ) {
 		wp_nonce_field( 'unfiltered-html-comment_' . $post_id, '_wp_unfiltered_html_comment_disabled', false );
@@ -897,7 +894,7 @@
 	update_comment_cache($wp_query->comments);
 
 	if ( $separate_comments ) {
-		$wp_query->comments_by_type = &separate_comments($comments);
+		$wp_query->comments_by_type = separate_comments($comments);
 		$comments_by_type = &$wp_query->comments_by_type;
 	}
 
@@ -907,7 +904,7 @@
 		$overridden_cpage = true;
 	}
 
-	if ( !defined('COMMENTS_TEMPLATE') || !COMMENTS_TEMPLATE)
+	if ( !defined('COMMENTS_TEMPLATE') )
 		define('COMMENTS_TEMPLATE', true);
 
 	$include = apply_filters('comments_template', STYLESHEETPATH . $file );
@@ -1331,13 +1328,13 @@
 	function start_el( &$output, $comment, $depth, $args, $id = 0 ) {
 		$depth++;
 		$GLOBALS['comment_depth'] = $depth;
+		$GLOBALS['comment'] = $comment;
 
 		if ( !empty($args['callback']) ) {
 			call_user_func($args['callback'], $comment, $args, $depth);
 			return;
 		}
 
-		$GLOBALS['comment'] = $comment;
 		extract($args, EXTR_SKIP);
 
 		if ( 'div' == $args['style'] ) {
@@ -1431,7 +1428,7 @@
 		if ( empty($comments) )
 			return;
 		if ( 'all' != $r['type'] ) {
-			$comments_by_type = &separate_comments($comments);
+			$comments_by_type = separate_comments($comments);
 			if ( empty($comments_by_type[$r['type']]) )
 				return;
 			$_comments = $comments_by_type[$r['type']];
@@ -1443,7 +1440,7 @@
 			return;
 		if ( 'all' != $r['type'] ) {
 			if ( empty($wp_query->comments_by_type) )
-				$wp_query->comments_by_type = &separate_comments($wp_query->comments);
+				$wp_query->comments_by_type = separate_comments($wp_query->comments);
 			if ( empty($wp_query->comments_by_type[$r['type']]) )
 				return;
 			$_comments = $wp_query->comments_by_type[$r['type']];
@@ -1524,9 +1521,9 @@
 	$req = get_option( 'require_name_email' );
 	$aria_req = ( $req ? " aria-required='true'" : '' );
 	$fields =  array(
-		'author' => '<p class="comment-form-author">' . '<label for="author">' . __( 'Name' ) . '</label> ' . ( $req ? '<span class="required">*</span>' : '' ) .
+		'author' => '<p class="comment-form-author">' . '<label for="author">' . __( 'Name' ) . ( $req ? ' <span class="required">*</span>' : '' ) . '</label> ' .
 		            '<input id="author" name="author" type="text" value="' . esc_attr( $commenter['comment_author'] ) . '" size="30"' . $aria_req . ' /></p>',
-		'email'  => '<p class="comment-form-email"><label for="email">' . __( 'Email' ) . '</label> ' . ( $req ? '<span class="required">*</span>' : '' ) .
+		'email'  => '<p class="comment-form-email"><label for="email">' . __( 'Email' ) . ( $req ? ' <span class="required">*</span>' : '' ) . '</label> ' .
 		            '<input id="email" name="email" type="text" value="' . esc_attr(  $commenter['comment_author_email'] ) . '" size="30"' . $aria_req . ' /></p>',
 		'url'    => '<p class="comment-form-url"><label for="url">' . __( 'Website' ) . '</label>' .
 		            '<input id="url" name="url" type="text" value="' . esc_attr( $commenter['comment_author_url'] ) . '" size="30" /></p>',
@@ -1537,7 +1534,7 @@
 		'fields'               => apply_filters( 'comment_form_default_fields', $fields ),
 		'comment_field'        => '<p class="comment-form-comment"><label for="comment">' . _x( 'Comment', 'noun' ) . '</label><textarea id="comment" name="comment" cols="45" rows="8" aria-required="true"></textarea></p>',
 		'must_log_in'          => '<p class="must-log-in">' . sprintf( __( 'You must be <a href="%s">logged in</a> to post a comment.' ), wp_login_url( apply_filters( 'the_permalink', get_permalink( $post_id ) ) ) ) . '</p>',
-		'logged_in_as'         => '<p class="logged-in-as">' . sprintf( __( 'Logged in as <a href="%1$s">%2$s</a>. <a href="%3$s" title="Log out of this account">Log out?</a>' ), admin_url( 'profile.php' ), $user_identity, wp_logout_url( apply_filters( 'the_permalink', get_permalink( $post_id ) ) ) ) . '</p>',
+		'logged_in_as'         => '<p class="logged-in-as">' . sprintf( __( 'Logged in as <a href="%1$s">%2$s</a>. <a href="%3$s" title="Log out of this account">Log out?</a>' ), get_edit_user_link(), $user_identity, wp_logout_url( apply_filters( 'the_permalink', get_permalink( $post_id ) ) ) ) . '</p>',
 		'comment_notes_before' => '<p class="comment-notes">' . __( 'Your email address will not be published.' ) . ( $req ? $required_text : '' ) . '</p>',
 		'comment_notes_after'  => '<p class="form-allowed-tags">' . sprintf( __( 'You may use these <abbr title="HyperText Markup Language">HTML</abbr> tags and attributes: %s' ), ' <code>' . allowed_tags() . '</code>' ) . '</p>',
 		'id_form'              => 'commentform',
--- a/web/wp-includes/comment.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/comment.php	Wed Dec 19 17:46:52 2012 -0800
@@ -127,7 +127,7 @@
  * @param string $output Optional. OBJECT or ARRAY_A or ARRAY_N constants.
  * @return object|array|null Depends on $output value.
  */
-function &get_comment(&$comment, $output = OBJECT) {
+function get_comment(&$comment, $output = OBJECT) {
 	global $wpdb;
 	$null = null;
 
@@ -190,6 +190,14 @@
  * @since 3.1.0
  */
 class WP_Comment_Query {
+	/**
+	 * Metadata query container
+	 *
+	 * @since 3.5.0
+	 * @access public
+	 * @var object WP_Meta_Query
+	 */
+	var $meta_query = false;
 
 	/**
 	 * Execute the query
@@ -222,25 +230,32 @@
 			'type' => '',
 			'user_id' => '',
 			'search' => '',
-			'count' => false
+			'count' => false,
+			'meta_key' => '',
+			'meta_value' => '',
+			'meta_query' => '',
 		);
 
+		$groupby = '';
+
 		$this->query_vars = wp_parse_args( $query_vars, $defaults );
+
+		// Parse meta query
+		$this->meta_query = new WP_Meta_Query();
+		$this->meta_query->parse_query_vars( $this->query_vars );
+
 		do_action_ref_array( 'pre_get_comments', array( &$this ) );
 		extract( $this->query_vars, EXTR_SKIP );
 
 		// $args can be whatever, only use the args defined in defaults to compute the key
 		$key = md5( serialize( compact(array_keys($defaults)) )  );
-		$last_changed = wp_cache_get('last_changed', 'comment');
-		if ( !$last_changed ) {
-			$last_changed = time();
-			wp_cache_set('last_changed', $last_changed, 'comment');
-		}
+		$last_changed = wp_cache_get( 'last_changed', 'comment' );
+		if ( ! $last_changed )
+			$last_changed = wp_cache_set( 'last_changed', 1, 'comment' );
 		$cache_key = "get_comments:$key:$last_changed";
 
-		if ( $cache = wp_cache_get( $cache_key, 'comment' ) ) {
+		if ( $cache = wp_cache_get( $cache_key, 'comment' ) )
 			return $cache;
-		}
 
 		$post_id = absint($post_id);
 
@@ -248,10 +263,8 @@
 			$approved = "comment_approved = '0'";
 		elseif ( 'approve' == $status )
 			$approved = "comment_approved = '1'";
-		elseif ( 'spam' == $status )
-			$approved = "comment_approved = 'spam'";
-		elseif ( 'trash' == $status )
-			$approved = "comment_approved = 'trash'";
+		elseif ( ! empty( $status ) && 'all' != $status )
+			$approved = $wpdb->prepare( "comment_approved = %s", $status );
 		else
 			$approved = "( comment_approved = '0' OR comment_approved = '1' )";
 
@@ -259,26 +272,36 @@
 
 		if ( ! empty( $orderby ) ) {
 			$ordersby = is_array($orderby) ? $orderby : preg_split('/[,\s]/', $orderby);
-			$ordersby = array_intersect(
-				$ordersby,
-				array(
-					'comment_agent',
-					'comment_approved',
-					'comment_author',
-					'comment_author_email',
-					'comment_author_IP',
-					'comment_author_url',
-					'comment_content',
-					'comment_date',
-					'comment_date_gmt',
-					'comment_ID',
-					'comment_karma',
-					'comment_parent',
-					'comment_post_ID',
-					'comment_type',
-					'user_id',
-				)
+			$allowed_keys = array(
+				'comment_agent',
+				'comment_approved',
+				'comment_author',
+				'comment_author_email',
+				'comment_author_IP',
+				'comment_author_url',
+				'comment_content',
+				'comment_date',
+				'comment_date_gmt',
+				'comment_ID',
+				'comment_karma',
+				'comment_parent',
+				'comment_post_ID',
+				'comment_type',
+				'user_id',
 			);
+			if ( ! empty( $this->query_vars['meta_key'] ) ) {
+				$allowed_keys[] = $q['meta_key'];
+				$allowed_keys[] = 'meta_value';
+				$allowed_keys[] = 'meta_value_num';
+			}
+			$ordersby = array_intersect( $ordersby, $allowed_keys );
+			foreach ( $ordersby as $key => $value ) {
+				if ( $value == $q['meta_key'] || $value == 'meta_value' ) {
+					$ordersby[ $key ] = "$wpdb->commentmeta.meta_value";
+				} elseif ( $value == 'meta_value_num' ) {
+					$ordersby[ $key ] = "$wpdb->commentmeta.meta_value+0";
+				}
+			}
 			$orderby = empty( $ordersby ) ? 'comment_date_gmt' : implode(', ', $ordersby);
 		} else {
 			$orderby = 'comment_date_gmt';
@@ -331,12 +354,22 @@
 				$where .= $wpdb->prepare( " AND {$wpdb->posts}.{$field_name} = %s", $field_value );
 		}
 
-		$pieces = array( 'fields', 'join', 'where', 'orderby', 'order', 'limits' );
+		if ( ! empty( $this->meta_query->queries ) ) {
+			$clauses = $this->meta_query->get_sql( 'comment', $wpdb->comments, 'comment_ID', $this );
+			$join .= $clauses['join'];
+			$where .= $clauses['where'];
+			$groupby = "{$wpdb->comments}.comment_ID";
+		}
+
+		$pieces = array( 'fields', 'join', 'where', 'orderby', 'order', 'limits', 'groupby' );
 		$clauses = apply_filters_ref_array( 'comments_clauses', array( compact( $pieces ), &$this ) );
 		foreach ( $pieces as $piece )
 			$$piece = isset( $clauses[ $piece ] ) ? $clauses[ $piece ] : '';
 
-		$query = "SELECT $fields FROM $wpdb->comments $join WHERE $where ORDER BY $orderby $order $limits";
+		if ( $groupby )
+			$groupby = 'GROUP BY ' . $groupby;
+
+		$query = "SELECT $fields FROM $wpdb->comments $join WHERE $where $groupby ORDER BY $orderby $order $limits";
 
 		if ( $count )
 			return $wpdb->get_var( $query );
@@ -399,14 +432,14 @@
  *
  * @since 1.5.0
  * @uses $wpdb
- * @global array $cache_lastcommentmodified
  *
  * @param string $timezone Which timezone to use in reference to 'gmt', 'blog',
  *		or 'server' locations.
  * @return string Last comment modified date.
  */
 function get_lastcommentmodified($timezone = 'server') {
-	global $cache_lastcommentmodified, $wpdb;
+	global $wpdb;
+	static $cache_lastcommentmodified = array();
 
 	if ( isset($cache_lastcommentmodified[$timezone]) )
 		return $cache_lastcommentmodified[$timezone];
@@ -636,7 +669,7 @@
 
 	// Simple duplicate check
 	// expected_slashed ($comment_post_ID, $comment_author, $comment_author_email, $comment_content)
-	$dupe = "SELECT comment_ID FROM $wpdb->comments WHERE comment_post_ID = '$comment_post_ID' AND comment_approved != 'trash' AND ( comment_author = '$comment_author' ";
+	$dupe = "SELECT comment_ID FROM $wpdb->comments WHERE comment_post_ID = '$comment_post_ID' AND comment_parent = '$comment_parent' AND comment_approved != 'trash' AND ( comment_author = '$comment_author' ";
 	if ( $comment_author_email )
 		$dupe .= "OR comment_author_email = '$comment_author_email' ";
 	$dupe .= ") AND comment_content = '$comment_content' LIMIT 1";
@@ -650,13 +683,12 @@
 
 	do_action( 'check_comment_flood', $comment_author_IP, $comment_author_email, $comment_date_gmt );
 
-	if ( isset($user_id) && $user_id) {
-		$userdata = get_userdata($user_id);
-		$user = new WP_User($user_id);
+	if ( ! empty( $user_id ) ) {
+		$user = get_userdata( $user_id );
 		$post_author = $wpdb->get_var($wpdb->prepare("SELECT post_author FROM $wpdb->posts WHERE ID = %d LIMIT 1", $comment_post_ID));
 	}
 
-	if ( isset($userdata) && ( $user_id == $post_author || $user->has_cap('moderate_comments') ) ) {
+	if ( isset( $user ) && ( $user_id == $post_author || $user->has_cap( 'moderate_comments' ) ) ) {
 		// The author and the admins get respect.
 		$approved = 1;
 	 } else {
@@ -694,7 +726,7 @@
 	global $wpdb;
 	if ( current_user_can( 'manage_options' ) )
 		return; // don't throttle admins
-	$hour_ago = gmdate( 'Y-m-d H:i:s', time() - 3600 );
+	$hour_ago = gmdate( 'Y-m-d H:i:s', time() - HOUR_IN_SECONDS );
 	if ( $lasttime = $wpdb->get_var( $wpdb->prepare( "SELECT `comment_date_gmt` FROM `$wpdb->comments` WHERE `comment_date_gmt` >= %s AND ( `comment_author_IP` = %s OR `comment_author_email` = %s ) ORDER BY `comment_date_gmt` DESC LIMIT 1", $hour_ago, $ip, $email ) ) ) {
 		$time_lastcomment = mysql2date('U', $lasttime, false);
 		$time_newcomment  = mysql2date('U', $date, false);
@@ -718,7 +750,7 @@
  * @param array $comments Array of comments
  * @return array Array of comments keyed by comment_type.
  */
-function &separate_comments(&$comments) {
+function separate_comments(&$comments) {
 	$comments_by_type = array('comment' => array(), 'trackback' => array(), 'pingback' => array(), 'pings' => array());
 	$count = count($comments);
 	for ( $i = 0; $i < $count; $i++ ) {
@@ -1258,6 +1290,13 @@
 	$comment = get_comment($id);
 	do_action('wp_insert_comment', $id, $comment);
 
+	if ( function_exists( 'wp_cache_incr' ) ) {
+		wp_cache_incr( 'last_changed', 1, 'comment' );
+	} else {
+		$last_changed = wp_cache_get( 'last_changed', 'comment' );
+		wp_cache_set( 'last_changed', $last_changed + 1, 'comment' );
+	}
+
 	return $id;
 }
 
@@ -1366,7 +1405,7 @@
 		if ( '0' == $commentdata['comment_approved'] )
 			wp_notify_moderator($comment_ID);
 
-		$post = &get_post($commentdata['comment_post_ID']); // Don't notify if it's your own comment
+		$post = get_post($commentdata['comment_post_ID']); // Don't notify if it's your own comment
 
 		if ( get_option('comments_notify') && $commentdata['comment_approved'] && ( ! isset( $commentdata['user_id'] ) || $post->post_author != $commentdata['user_id'] ) )
 			wp_notify_postauthor($comment_ID, isset( $commentdata['comment_type'] ) ? $commentdata['comment_type'] : '' );
@@ -1479,7 +1518,7 @@
 	else if ( 'approve' == $comment_approved )
 		$comment_approved = 1;
 
-	$data = compact('comment_content', 'comment_author', 'comment_author_email', 'comment_approved', 'comment_karma', 'comment_author_url', 'comment_date', 'comment_date_gmt');
+	$data = compact( 'comment_content', 'comment_author', 'comment_author_email', 'comment_approved', 'comment_karma', 'comment_author_url', 'comment_date', 'comment_date_gmt', 'comment_parent' );
 	$rval = $wpdb->update( $wpdb->comments, $data, compact( 'comment_ID' ) );
 
 	clean_comment_cache($comment_ID);
@@ -1704,7 +1743,7 @@
 function do_trackbacks($post_id) {
 	global $wpdb;
 
-	$post = $wpdb->get_row( $wpdb->prepare("SELECT * FROM $wpdb->posts WHERE ID = %d", $post_id) );
+	$post = get_post( $post_id );
 	$to_ping = get_to_ping($post_id);
 	$pinged  = get_pung($post_id);
 	if ( empty($to_ping) ) {
@@ -1929,7 +1968,12 @@
 	foreach ( (array) $ids as $id )
 		wp_cache_delete($id, 'comment');
 
-	wp_cache_set('last_changed', time(), 'comment');
+	if ( function_exists( 'wp_cache_incr' ) ) {
+		wp_cache_incr( 'last_changed', 1, 'comment' );
+	} else {
+		$last_changed = wp_cache_get( 'last_changed', 'comment' );
+		wp_cache_set( 'last_changed', $last_changed + 1, 'comment' );
+	}
 }
 
 /**
@@ -1976,7 +2020,7 @@
 	if ( ! $days_old )
 		return $posts;
 
-	if ( time() - strtotime( $posts[0]->post_date_gmt ) > ( $days_old * 24 * 60 * 60 ) ) {
+	if ( time() - strtotime( $posts[0]->post_date_gmt ) > ( $days_old * DAY_IN_SECONDS ) ) {
 		$posts[0]->comment_status = 'closed';
 		$posts[0]->ping_status = 'closed';
 	}
@@ -2011,7 +2055,7 @@
 	if ( ! in_array( $post->post_type, $post_types ) )
 		return $open;
 
-	if ( time() - strtotime( $post->post_date_gmt ) > ( $days_old * 24 * 60 * 60 ) )
+	if ( time() - strtotime( $post->post_date_gmt ) > ( $days_old * DAY_IN_SECONDS ) )
 		return false;
 
 	return $open;
--- a/web/wp-includes/cron.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/cron.php	Wed Dec 19 17:46:52 2012 -0800
@@ -22,7 +22,7 @@
 function wp_schedule_single_event( $timestamp, $hook, $args = array()) {
 	// don't schedule a duplicate if there's already an identical event due in the next 10 minutes
 	$next = wp_next_scheduled($hook, $args);
-	if ( $next && $next <= $timestamp + 600 )
+	if ( $next && $next <= $timestamp + 10 * MINUTE_IN_SECONDS )
 		return;
 
 	$crons = _get_cron_array();
@@ -192,10 +192,10 @@
  *
  * @return null Cron could not be spawned, because it is not needed to run.
  */
-function spawn_cron( $local_time = 0 ) {
+function spawn_cron( $gmt_time = 0 ) {
 
-	if ( ! $local_time )
-		$local_time = microtime( true );
+	if ( ! $gmt_time )
+		$gmt_time = microtime( true );
 
 	if ( defined('DOING_CRON') || isset($_GET['doing_wp_cron']) )
 		return;
@@ -206,11 +206,11 @@
 	*/
 	$lock = get_transient('doing_cron');
 
-	if ( $lock > $local_time + 10*60 )
+	if ( $lock > $gmt_time + 10 * MINUTE_IN_SECONDS )
 		$lock = 0;
 
 	// don't run if another process is currently running it or more than once every 60 sec.
-	if ( $lock + WP_CRON_LOCK_TIMEOUT > $local_time )
+	if ( $lock + WP_CRON_LOCK_TIMEOUT > $gmt_time )
 		return;
 
 	//sanity check
@@ -219,14 +219,14 @@
 		return;
 
 	$keys = array_keys( $crons );
-	if ( isset($keys[0]) && $keys[0] > $local_time )
+	if ( isset($keys[0]) && $keys[0] > $gmt_time )
 		return;
 
 	if ( defined('ALTERNATE_WP_CRON') && ALTERNATE_WP_CRON ) {
 		if ( !empty($_POST) || defined('DOING_AJAX') )
 			return;
 
-		$doing_wp_cron = sprintf( '%.22F', $local_time );
+		$doing_wp_cron = sprintf( '%.22F', $gmt_time );
 		set_transient( 'doing_cron', $doing_wp_cron );
 
 		ob_start();
@@ -241,11 +241,16 @@
 		return;
 	}
 
-	$doing_wp_cron = sprintf( '%.22F', $local_time );
+	$doing_wp_cron = sprintf( '%.22F', $gmt_time );
 	set_transient( 'doing_cron', $doing_wp_cron );
 
-	$cron_url = site_url( 'wp-cron.php?doing_wp_cron=' . $doing_wp_cron );
-	wp_remote_post( $cron_url, array( 'timeout' => 0.01, 'blocking' => false, 'sslverify' => apply_filters( 'https_local_ssl_verify', true ) ) );
+	$cron_request = apply_filters( 'cron_request', array(
+		'url' => site_url( 'wp-cron.php?doing_wp_cron=' . $doing_wp_cron ),
+		'key' => $doing_wp_cron,
+		'args' => array( 'timeout' => 0.01, 'blocking' => false, 'sslverify' => apply_filters( 'https_local_ssl_verify', true ) )
+	) );
+
+	wp_remote_post( $cron_request['url'], $cron_request['args'] );
 }
 
 /**
@@ -264,18 +269,18 @@
 	if ( false === $crons = _get_cron_array() )
 		return;
 
-	$local_time = microtime( true );
+	$gmt_time = microtime( true );
 	$keys = array_keys( $crons );
-	if ( isset($keys[0]) && $keys[0] > $local_time )
+	if ( isset($keys[0]) && $keys[0] > $gmt_time )
 		return;
 
 	$schedules = wp_get_schedules();
 	foreach ( $crons as $timestamp => $cronhooks ) {
-		if ( $timestamp > $local_time ) break;
+		if ( $timestamp > $gmt_time ) break;
 		foreach ( (array) $cronhooks as $hook => $args ) {
 			if ( isset($schedules[$hook]['callback']) && !call_user_func( $schedules[$hook]['callback'] ) )
 				continue;
-			spawn_cron( $local_time );
+			spawn_cron( $gmt_time );
 			break 2;
 		}
 	}
@@ -313,9 +318,9 @@
  */
 function wp_get_schedules() {
 	$schedules = array(
-		'hourly' => array( 'interval' => 3600, 'display' => __('Once Hourly') ),
-		'twicedaily' => array( 'interval' => 43200, 'display' => __('Twice Daily') ),
-		'daily' => array( 'interval' => 86400, 'display' => __('Once Daily') ),
+		'hourly'     => array( 'interval' => HOUR_IN_SECONDS,      'display' => __( 'Once Hourly' ) ),
+		'twicedaily' => array( 'interval' => 12 * HOUR_IN_SECONDS, 'display' => __( 'Twice Daily' ) ),
+		'daily'      => array( 'interval' => DAY_IN_SECONDS,       'display' => __( 'Once Daily' ) ),
 	);
 	return array_merge( apply_filters( 'cron_schedules', array() ), $schedules );
 }
--- a/web/wp-includes/css/admin-bar-rtl.css	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/css/admin-bar-rtl.css	Wed Dec 19 17:46:52 2012 -0800
@@ -1,1 +1,201 @@
-#wpadminbar *{font-family:Tahoma,Arial,Helvetica,sans-serif}#wpadminbar{direction:rtl;font-family:Tahoma,Arial,Helvetica,sans-serif;left:auto;right:0}#wpadminbar .quicklinks{border-left:0;border-right:1px solid transparent}#wpadminbar .quicklinks ul{text-align:right}#wpadminbar li{float:right}#wpadminbar .quicklinks>ul>li{border-right:0;border-left:1px solid #555}#wpadminbar .quicklinks>ul>li>a,#wpadminbar .quicklinks>ul>li>.ab-empty-item{border-right:0;border-left:1px solid #333}#wpadminbar .quicklinks .ab-top-secondary>li{border-left:0;border-right:1px solid #333;float:left}#wpadminbar .quicklinks .ab-top-secondary>li>a,#wpadminbar .quicklinks .ab-top-secondary>li>.ab-empty-item{border-right:1px solid #555;border-left:0}#wpadminbar .menupop .ab-sub-wrapper,#wpadminbar .shortlink-input{margin:0 -1px 0 0}#wpadminbar.ie7 .menupop .ab-sub-wrapper,#wpadminbar.ie7 .shortlink-input{left:auto;right:0}#wpadminbar .ab-top-secondary .menupop .ab-sub-wrapper{right:auto;left:0;margin:0 0 0 -1px}#wpadminbar .menupop li:hover>.ab-sub-wrapper,#wpadminbar .menupop li.hover>.ab-sub-wrapper{margin-left:0;margin-right:100%}#wpadminbar .ab-top-secondary .menupop li:hover>.ab-sub-wrapper,#wpadminbar .ab-top-secondary .menupop li.hover>.ab-sub-wrapper{margin-left:inherit;margin-right:0;left:100%;right:inherit}#wpadminbar .menupop .menupop>.ab-item{background-position:5% -46px;padding-left:2em;padding-right:1em}#wpadminbar .ab-top-secondary .menupop .menupop>.ab-item{background-position:95% -20px;padding-left:1em;padding-right:2em}#wpadminbar .quicklinks .menupop ul.ab-sub-secondary{right:0;left:auto}#wpadminbar .ab-top-secondary{float:left;right:auto;left:0}#wpadminbar ul li:last-child,#wpadminbar ul li:last-child .ab-item{border-left:0}#wpadminbar #wp-admin-bar-my-account.with-avatar #wp-admin-bar-user-actions>li{margin-right:88px;margin-left:16px}#wp-admin-bar-user-actions>li>.ab-item{padding-left:0;padding-right:8px}#wp-admin-bar-user-info .avatar{left:auto;right:-72px}#wpadminbar .quicklinks li#wp-admin-bar-my-account.with-avatar>a img{margin-left:-1px;margin-right:4px}#wpadminbar .quicklinks li img.blavatar{margin-right:0;margin-left:4px}#wpadminbar #adminbarsearch .adminbar-input{font-family:Tahoma,Arial,Helvetica,sans-serif;padding:0 24px 0 3px;margin:0;background-position:50% 2px}#wpadminbar #adminbarsearch .adminbar-input:focus,#wpadminbar.ie7 #adminbarsearch .adminbar-input{background-position:99% 2px}#wpadminbar .ab-icon{float:right}.ie7 #wp-admin-bar-wp-logo>.ab-item .ab-icon{position:static}#wpadminbar.ie7 .ab-icon{float:left;left:12px}#wpadminbar .ab-label{margin-left:0;margin-right:4px;float:left}#wpadminbar.ie7 .ab-label{margin-right:0}#wpadminbar.ie7 #wp-admin-bar-comments>a{min-width:25px}#wpadminbar a:hover .ab-comments-icon-arrow{border-right-color:#bbb}#wpadminbar .menupop .ab-sub-wrapper,#wpadminbar .shortlink-input{right:0}#wpadminbar .quicklinks .menupop ul li a{position:relative}* html #wpadminbar .quicklinks ul li a{float:right}
\ No newline at end of file
+#wpadminbar * {
+	font-family: Tahoma, Arial, Helvetica, sans-serif;
+}
+
+#wpadminbar {
+	direction: rtl;
+	font-family: Tahoma, Arial, Helvetica, sans-serif;
+	left: auto;
+	right: 0;
+}
+
+#wpadminbar .quicklinks ul {
+	text-align: right;
+}
+
+#wpadminbar li {
+	float: right;
+}
+
+#wpadminbar .quicklinks > ul > li {
+	border-right: 0;
+	border-left: 1px solid #555;
+}
+
+#wpadminbar .quicklinks > ul > li > a,
+#wpadminbar .quicklinks > ul > li > .ab-empty-item {
+	border-right: 0;
+	border-left: 1px solid #333;
+}
+
+#wpadminbar .quicklinks .ab-top-secondary > li {
+	border-left: 0;
+	border-right: 1px solid #333;
+	float: left;
+}
+
+#wpadminbar .quicklinks .ab-top-secondary > li > a,
+#wpadminbar .quicklinks .ab-top-secondary > li > .ab-empty-item {
+	border-right: 1px solid #555;
+	border-left: 0;
+}
+
+#wpadminbar .menupop .ab-sub-wrapper,
+#wpadminbar .shortlink-input {
+	margin: 0 -1px 0 0;
+}
+
+#wpadminbar.ie7 .menupop .ab-sub-wrapper,
+#wpadminbar.ie7 .shortlink-input {
+	left: auto;
+	right: 0;
+}
+
+#wpadminbar .ab-top-secondary .menupop .ab-sub-wrapper {
+	right: auto;
+	left: 0;
+	margin: 0 0 0 -1px;
+}
+
+#wpadminbar .menupop li:hover > .ab-sub-wrapper,
+#wpadminbar .menupop li.hover > .ab-sub-wrapper {
+	margin-left: 0px;
+	margin-right: 100%;
+}
+
+#wpadminbar .ab-top-secondary .menupop li:hover > .ab-sub-wrapper,
+#wpadminbar .ab-top-secondary .menupop li.hover > .ab-sub-wrapper {
+	margin-left: inherit;
+	margin-right: 0;
+	left: 100%;
+	right: inherit;
+}
+
+#wpadminbar .menupop .menupop > .ab-item {
+	background-position: 5% -46px;
+	padding-left: 2em;
+	padding-right: 1em;
+}
+
+#wpadminbar .ab-top-secondary .menupop .menupop > .ab-item {
+	background-position: 95% -20px;
+	padding-left: 1em;
+	padding-right: 2em;
+}
+
+#wpadminbar .quicklinks .menupop ul.ab-sub-secondary {
+	right: 0;
+	left: auto;
+}
+
+#wpadminbar .ab-top-secondary {
+	float: left;
+	right: auto;
+	left: 0;
+}
+
+#wpadminbar ul li:last-child,
+#wpadminbar ul li:last-child .ab-item {
+	border-left: 0;
+}
+
+#wpadminbar .screen-reader-shortcut:focus {
+	left: auto;
+	right: 6px;
+}
+
+/**
+ * My Account
+ */
+#wpadminbar #wp-admin-bar-my-account.with-avatar #wp-admin-bar-user-actions > li {
+	margin-right: 88px;
+	margin-left: 16px;
+}
+
+#wp-admin-bar-user-actions > li > .ab-item {
+	padding-left: 0;
+	padding-right: 8px;
+}
+
+#wp-admin-bar-user-info .avatar {
+	left: auto;
+	right: -72px;
+}
+
+#wpadminbar .quicklinks li#wp-admin-bar-my-account.with-avatar > a img {
+	margin-left: -1px;
+	margin-right: 4px
+}
+
+/*
+ * My Sites
+ */
+#wpadminbar .quicklinks li .blavatar {
+	margin-right: 0px;
+	margin-left: 4px;
+}
+
+/*
+ * Search
+ */
+#wpadminbar #adminbarsearch .adminbar-input {
+	font-family: Tahoma, Arial, Helvetica, sans-serif;
+	padding: 0 24px 0 3px;
+	margin: 0;
+	background-position: 50% 2px;
+}
+
+#wpadminbar #adminbarsearch .adminbar-input:focus,
+#wpadminbar.ie7 #adminbarsearch .adminbar-input {
+	background-position: 99% 2px;
+}
+
+/**
+ * Comments icon
+ */
+#wpadminbar .ab-icon {
+	float: right;
+}
+
+.ie7 #wp-admin-bar-wp-logo > .ab-item .ab-icon {
+	position: static;
+}
+
+#wpadminbar.ie7 .ab-icon {
+	float: left;
+	left: 12px;
+}
+
+#wpadminbar .ab-label {
+	margin-left: 0px;
+	margin-right: 4px;
+	float: left;
+}
+
+#wpadminbar.ie7 .ab-label {
+	margin-right: 0;
+}
+
+#wpadminbar.ie7 #wp-admin-bar-comments > a {
+	min-width: 25px;
+}
+
+#wpadminbar a:hover .ab-comments-icon-arrow {
+	border-right-color: #bbb;
+}
+
+#wpadminbar .menupop .ab-sub-wrapper,
+#wpadminbar .shortlink-input {
+	right: 0;
+}
+
+#wpadminbar .quicklinks .menupop ul li a {
+	position: relative;
+}
+
+/**
+ * IE 6-targeted rules
+ */
+* html #wpadminbar .quicklinks ul li a {
+	float: right;
+}
--- a/web/wp-includes/css/admin-bar-rtl.dev.css	Wed Dec 19 12:35:13 2012 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,201 +0,0 @@
-#wpadminbar * {
-	font-family: Tahoma, Arial, Helvetica, sans-serif;
-}
-
-#wpadminbar {
-	direction: rtl;
-	font-family: Tahoma, Arial, Helvetica, sans-serif;
-	left: auto;
-	right: 0;
-}
-
-#wpadminbar .quicklinks {
-	border-left: 0;
-	border-right: 1px solid transparent;
-}
-
-#wpadminbar .quicklinks ul {
-	text-align: right;
-}
-
-#wpadminbar li {
-	float: right;
-}
-
-#wpadminbar .quicklinks > ul > li {
-	border-right: 0;
-	border-left: 1px solid #555;
-}
-
-#wpadminbar .quicklinks > ul > li > a,
-#wpadminbar .quicklinks > ul > li > .ab-empty-item {
-	border-right: 0;
-	border-left: 1px solid #333;
-}
-
-#wpadminbar .quicklinks .ab-top-secondary > li {
-	border-left: 0;
-	border-right: 1px solid #333;
-	float: left;
-}
-
-#wpadminbar .quicklinks .ab-top-secondary > li > a,
-#wpadminbar .quicklinks .ab-top-secondary > li > .ab-empty-item {
-	border-right: 1px solid #555;
-	border-left: 0;
-}
-
-#wpadminbar .menupop .ab-sub-wrapper,
-#wpadminbar .shortlink-input {
-	margin: 0 -1px 0 0;
-}
-
-#wpadminbar.ie7 .menupop .ab-sub-wrapper,
-#wpadminbar.ie7 .shortlink-input {
-	left: auto;
-	right: 0;
-}
-
-#wpadminbar .ab-top-secondary .menupop .ab-sub-wrapper {
-	right: auto;
-	left: 0;
-	margin: 0 0 0 -1px;
-}
-
-#wpadminbar .menupop li:hover > .ab-sub-wrapper,
-#wpadminbar .menupop li.hover > .ab-sub-wrapper {
-	margin-left: 0px;
-	margin-right: 100%;
-}
-
-#wpadminbar .ab-top-secondary .menupop li:hover > .ab-sub-wrapper,
-#wpadminbar .ab-top-secondary .menupop li.hover > .ab-sub-wrapper {
-	margin-left: inherit;
-	margin-right: 0;
-	left: 100%;
-	right: inherit;
-}
-
-#wpadminbar .menupop .menupop > .ab-item {
-	background-position: 5% -46px;
-	padding-left: 2em;
-	padding-right: 1em;
-}
-
-#wpadminbar .ab-top-secondary .menupop .menupop > .ab-item {
-	background-position: 95% -20px;
-	padding-left: 1em;
-	padding-right: 2em;
-}
-
-#wpadminbar .quicklinks .menupop ul.ab-sub-secondary {
-	right: 0;
-	left: auto;
-}
-
-#wpadminbar .ab-top-secondary {
-	float: left;
-	right: auto;
-	left: 0;
-}
-
-#wpadminbar ul li:last-child,
-#wpadminbar ul li:last-child .ab-item {
-	border-left: 0;
-}
-
-/**
- * My Account
- */
-#wpadminbar #wp-admin-bar-my-account.with-avatar #wp-admin-bar-user-actions > li {
-	margin-right: 88px;
-	margin-left: 16px;
-}
-
-#wp-admin-bar-user-actions > li > .ab-item {
-	padding-left: 0;
-	padding-right: 8px;
-}
-
-#wp-admin-bar-user-info .avatar {
-	left: auto;
-	right: -72px;
-}
-
-#wpadminbar .quicklinks li#wp-admin-bar-my-account.with-avatar > a img {
-	margin-left: -1px;
-	margin-right: 4px
-}
-
-/*
- * My Sites
- */
-#wpadminbar .quicklinks li img.blavatar {
-	margin-right: 0px;
-	margin-left: 4px;
-}
-
-/*
- * Search
- */
-#wpadminbar #adminbarsearch .adminbar-input {
-	font-family: Tahoma, Arial, Helvetica, sans-serif;
-	padding: 0 24px 0 3px;
-	margin: 0;
-	background-position: 50% 2px;
-}
-
-#wpadminbar #adminbarsearch .adminbar-input:focus,
-#wpadminbar.ie7 #adminbarsearch .adminbar-input {
-	background-position: 99% 2px;
-}
-
-/**
- * Comments icon
- */
-#wpadminbar .ab-icon {
-	float: right;
-}
-
-.ie7 #wp-admin-bar-wp-logo > .ab-item .ab-icon {
-	position: static;
-}
-
-#wpadminbar.ie7 .ab-icon {
-	float: left;
-	left: 12px;
-}
-
-#wpadminbar .ab-label {
-	margin-left: 0px;
-	margin-right: 4px;
-	float: left;
-}
-
-#wpadminbar.ie7 .ab-label {
-	margin-right: 0;
-}
-
-#wpadminbar.ie7 #wp-admin-bar-comments > a {
-	min-width: 25px;
-}
-
-#wpadminbar a:hover .ab-comments-icon-arrow {
-	border-right-color: #bbb;
-}
-
-#wpadminbar .menupop .ab-sub-wrapper,
-#wpadminbar .shortlink-input {
-	right: 0;
-}
-
-#wpadminbar .quicklinks .menupop ul li a {
-	position: relative;
-}
-
-/**
- * IE 6-targeted rules
- */
-* html #wpadminbar .quicklinks ul li a {
-	float: right;
-}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-includes/css/admin-bar-rtl.min.css	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,1 @@
+#wpadminbar *{font-family:Tahoma,Arial,Helvetica,sans-serif}#wpadminbar{direction:rtl;font-family:Tahoma,Arial,Helvetica,sans-serif;left:auto;right:0}#wpadminbar .quicklinks ul{text-align:right}#wpadminbar li{float:right}#wpadminbar .quicklinks>ul>li{border-right:0;border-left:1px solid #555}#wpadminbar .quicklinks>ul>li>a,#wpadminbar .quicklinks>ul>li>.ab-empty-item{border-right:0;border-left:1px solid #333}#wpadminbar .quicklinks .ab-top-secondary>li{border-left:0;border-right:1px solid #333;float:left}#wpadminbar .quicklinks .ab-top-secondary>li>a,#wpadminbar .quicklinks .ab-top-secondary>li>.ab-empty-item{border-right:1px solid #555;border-left:0}#wpadminbar .menupop .ab-sub-wrapper,#wpadminbar .shortlink-input{margin:0 -1px 0 0}#wpadminbar.ie7 .menupop .ab-sub-wrapper,#wpadminbar.ie7 .shortlink-input{left:auto;right:0}#wpadminbar .ab-top-secondary .menupop .ab-sub-wrapper{right:auto;left:0;margin:0 0 0 -1px}#wpadminbar .menupop li:hover>.ab-sub-wrapper,#wpadminbar .menupop li.hover>.ab-sub-wrapper{margin-left:0;margin-right:100%}#wpadminbar .ab-top-secondary .menupop li:hover>.ab-sub-wrapper,#wpadminbar .ab-top-secondary .menupop li.hover>.ab-sub-wrapper{margin-left:inherit;margin-right:0;left:100%;right:inherit}#wpadminbar .menupop .menupop>.ab-item{background-position:5% -46px;padding-left:2em;padding-right:1em}#wpadminbar .ab-top-secondary .menupop .menupop>.ab-item{background-position:95% -20px;padding-left:1em;padding-right:2em}#wpadminbar .quicklinks .menupop ul.ab-sub-secondary{right:0;left:auto}#wpadminbar .ab-top-secondary{float:left;right:auto;left:0}#wpadminbar ul li:last-child,#wpadminbar ul li:last-child .ab-item{border-left:0}#wpadminbar .screen-reader-shortcut:focus{left:auto;right:6px}#wpadminbar #wp-admin-bar-my-account.with-avatar #wp-admin-bar-user-actions>li{margin-right:88px;margin-left:16px}#wp-admin-bar-user-actions>li>.ab-item{padding-left:0;padding-right:8px}#wp-admin-bar-user-info .avatar{left:auto;right:-72px}#wpadminbar .quicklinks li#wp-admin-bar-my-account.with-avatar>a img{margin-left:-1px;margin-right:4px}#wpadminbar .quicklinks li .blavatar{margin-right:0;margin-left:4px}#wpadminbar #adminbarsearch .adminbar-input{font-family:Tahoma,Arial,Helvetica,sans-serif;padding:0 24px 0 3px;margin:0;background-position:50% 2px}#wpadminbar #adminbarsearch .adminbar-input:focus,#wpadminbar.ie7 #adminbarsearch .adminbar-input{background-position:99% 2px}#wpadminbar .ab-icon{float:right}.ie7 #wp-admin-bar-wp-logo>.ab-item .ab-icon{position:static}#wpadminbar.ie7 .ab-icon{float:left;left:12px}#wpadminbar .ab-label{margin-left:0;margin-right:4px;float:left}#wpadminbar.ie7 .ab-label{margin-right:0}#wpadminbar.ie7 #wp-admin-bar-comments>a{min-width:25px}#wpadminbar a:hover .ab-comments-icon-arrow{border-right-color:#bbb}#wpadminbar .menupop .ab-sub-wrapper,#wpadminbar .shortlink-input{right:0}#wpadminbar .quicklinks .menupop ul li a{position:relative}* html #wpadminbar .quicklinks ul li a{float:right}
\ No newline at end of file
--- a/web/wp-includes/css/admin-bar.css	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/css/admin-bar.css	Wed Dec 19 17:46:52 2012 -0800
@@ -1,1 +1,685 @@
-#wpadminbar *{height:auto;width:auto;margin:0;padding:0;position:static;text-transform:none;letter-spacing:normal;line-height:1;font:normal 13px/28px sans-serif;color:#ccc;text-shadow:#444 0 -1px 0}#wpadminbar ul li:before,#wpadminbar ul li:after{content:normal}#wpadminbar a,#wpadminbar a:hover,#wpadminbar a img,#wpadminbar a img:hover{outline:0;border:0;text-decoration:none;background:0}#wpadminbar{direction:ltr;color:#ccc;font:normal 13px/28px sans-serif;height:28px;position:fixed;top:0;left:0;width:100%;min-width:600px;z-index:99999;background-color:#464646;background-image:-ms-linear-gradient(bottom,#373737,#464646 5px);background-image:-moz-linear-gradient(bottom,#373737,#464646 5px);background-image:-o-linear-gradient(bottom,#373737,#464646 5px);background-image:-webkit-gradient(linear,left bottom,left top,from(#373737),to(#464646));background-image:-webkit-linear-gradient(bottom,#373737,#464646 5px);background-image:linear-gradient(bottom,#373737,#464646 5px)}#wpadminbar .ab-sub-wrapper,#wpadminbar ul,#wpadminbar ul li{background:0;clear:none;list-style:none;margin:0;padding:0;position:relative;z-index:99999}#wpadminbar .quicklinks{border-left:1px solid transparent}#wpadminbar .quicklinks ul{text-align:left}#wpadminbar li{float:left}#wpadminbar .ab-empty-item{outline:0}#wpadminbar .quicklinks>ul>li{border-right:1px solid #555}#wpadminbar .quicklinks>ul>li>a,#wpadminbar .quicklinks>ul>li>.ab-empty-item{border-right:1px solid #333}#wpadminbar .quicklinks .ab-top-secondary>li{border-left:1px solid #333;border-right:0;float:right}#wpadminbar .quicklinks .ab-top-secondary>li>a,#wpadminbar .quicklinks .ab-top-secondary>li>.ab-empty-item{border-left:1px solid #555;border-right:0}#wpadminbar .quicklinks a,#wpadminbar .quicklinks .ab-empty-item,#wpadminbar .shortlink-input{height:28px;display:block;padding:0 12px;margin:0}#wpadminbar .menupop .ab-sub-wrapper,#wpadminbar .shortlink-input{margin:0 0 0 -1px;padding:0;-moz-box-shadow:0 4px 4px rgba(0,0,0,0.2);-webkit-box-shadow:0 4px 4px rgba(0,0,0,0.2);box-shadow:0 4px 4px rgba(0,0,0,0.2);background:#fff;display:none;position:absolute;float:none;border-width:0 1px 1px 1px;border-style:solid;border-color:#dfdfdf}#wpadminbar.ie7 .menupop .ab-sub-wrapper,#wpadminbar.ie7 .shortlink-input{top:28px;left:0}#wpadminbar .ab-top-menu>.menupop>.ab-sub-wrapper{min-width:100%}#wpadminbar .ab-top-secondary .menupop .ab-sub-wrapper{right:0;left:auto;margin:0 -1px 0 0}#wpadminbar .ab-sub-wrapper>.ab-submenu:first-child{border-top:0}#wpadminbar .ab-submenu{padding:6px 0;border-top:1px solid #dfdfdf}#wpadminbar .selected .shortlink-input{display:block}#wpadminbar .quicklinks .menupop ul li{float:none}#wpadminbar .quicklinks .menupop ul li a strong{font-weight:bold}#wpadminbar .quicklinks .menupop ul li .ab-item,#wpadminbar .quicklinks .menupop ul li a strong,#wpadminbar .quicklinks .menupop.hover ul li .ab-item,#wpadminbar.nojs .quicklinks .menupop:hover ul li .ab-item,#wpadminbar .shortlink-input{line-height:26px;height:26px;text-shadow:none;white-space:nowrap;min-width:140px}#wpadminbar .shortlink-input{width:200px}#wpadminbar.nojs li:hover>.ab-sub-wrapper,#wpadminbar li.hover>.ab-sub-wrapper{display:block}#wpadminbar .menupop li:hover>.ab-sub-wrapper,#wpadminbar .menupop li.hover>.ab-sub-wrapper{margin-left:100%;margin-top:-33px;border-width:1px}#wpadminbar .ab-top-secondary .menupop li:hover>.ab-sub-wrapper,#wpadminbar .ab-top-secondary .menupop li.hover>.ab-sub-wrapper{margin-left:0;left:inherit;right:100%}#wpadminbar .ab-top-menu>li:hover>.ab-item,#wpadminbar .ab-top-menu>li.hover>.ab-item,#wpadminbar .ab-top-menu>li>.ab-item:focus,#wpadminbar.nojq .quicklinks .ab-top-menu>li>.ab-item:focus{color:#fafafa;background-color:#3a3a3a;background-image:-ms-linear-gradient(bottom,#3a3a3a,#222);background-image:-moz-linear-gradient(bottom,#3a3a3a,#222);background-image:-o-linear-gradient(bottom,#3a3a3a,#222);background-image:-webkit-gradient(linear,left bottom,left top,from(#3a3a3a),to(#222));background-image:-webkit-linear-gradient(bottom,#3a3a3a,#222);background-image:linear-gradient(bottom,#3a3a3a,#222)}#wpadminbar.nojs .ab-top-menu>li.menupop:hover>.ab-item,#wpadminbar .ab-top-menu>li.menupop.hover>.ab-item{background:#fff;color:#333;text-shadow:none;border-right-color:transparent;border-left-color:transparent}#wpadminbar .hover .ab-label,#wpadminbar.nojq .ab-item:focus .ab-label{color:#fafafa}#wpadminbar .menupop.hover .ab-label{color:#333;text-shadow:none}#wpadminbar .menupop li:hover,#wpadminbar .menupop li.hover,#wpadminbar .quicklinks .menupop .ab-item:focus,#wpadminbar .quicklinks .ab-top-menu .menupop .ab-item:focus{background-color:#eaf2fa}#wpadminbar .ab-submenu .ab-item{color:#333;text-shadow:none}#wpadminbar .quicklinks .menupop ul li a,#wpadminbar .quicklinks .menupop ul li a strong,#wpadminbar .quicklinks .menupop.hover ul li a,#wpadminbar.nojs .quicklinks .menupop:hover ul li a{color:#21759b}#wpadminbar .menupop .menupop>.ab-item{display:block;background-image:url(../images/admin-bar-sprite.png?d=20111130);background-position:95% -20px;background-repeat:no-repeat;padding-right:2em}#wpadminbar .ab-top-secondary .menupop .menupop>.ab-item{background-image:url(../images/admin-bar-sprite.png?d=20111130);background-position:5% -46px;background-repeat:no-repeat;padding-left:2em;padding-right:1em}#wpadminbar .quicklinks .menupop ul.ab-sub-secondary{display:block;position:relative;right:auto;margin:0;background:#eee;-moz-box-shadow:none;-webkit-box-shadow:none;box-shadow:none}#wpadminbar .quicklinks .menupop .ab-sub-secondary>li:hover,#wpadminbar .quicklinks .menupop .ab-sub-secondary>li.hover,#wpadminbar .quicklinks .menupop .ab-sub-secondary>li .ab-item:focus{background-color:#dfdfdf}#wpadminbar .quicklinks a span#ab-updates{background:#eee;color:#333;text-shadow:none;display:inline;padding:2px 5px;font-size:10px;font-weight:bold;-webkit-border-radius:10px;border-radius:10px}#wpadminbar .quicklinks a:hover span#ab-updates{background:#fff;color:#000}#wpadminbar .ab-top-secondary{float:right;background-color:#464646;background-image:-ms-linear-gradient(bottom,#373737,#464646 5px);background-image:-moz-linear-gradient(bottom,#373737,#464646 5px);background-image:-o-linear-gradient(bottom,#373737,#464646 5px);background-image:-webkit-gradient(linear,left bottom,left top,from(#373737),to(#464646));background-image:-webkit-linear-gradient(bottom,#373737,#464646 5px);background-image:linear-gradient(bottom,#373737,#464646 5px)}#wpadminbar ul li:last-child,#wpadminbar ul li:last-child .ab-item{border-right:0;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none}#wp-admin-bar-my-account>ul{min-width:198px}#wp-admin-bar-my-account.with-avatar>ul{min-width:270px}#wpadminbar #wp-admin-bar-user-actions>li{margin-left:16px;margin-right:16px}#wpadminbar #wp-admin-bar-my-account.with-avatar #wp-admin-bar-user-actions>li{margin-left:88px}#wp-admin-bar-user-actions>li>.ab-item{padding-left:8px}#wpadminbar #wp-admin-bar-user-info{margin-top:6px;margin-bottom:15px;height:auto;background:0}#wp-admin-bar-user-info .avatar{position:absolute;left:-72px;top:4px;width:64px;height:64px}#wpadminbar #wp-admin-bar-user-info a{background:0;height:auto}#wpadminbar #wp-admin-bar-user-info span{background:0;padding:0;height:18px}#wpadminbar #wp-admin-bar-user-info .display-name,#wpadminbar #wp-admin-bar-user-info .username{text-shadow:none;display:block}#wpadminbar #wp-admin-bar-user-info .display-name{color:#333}#wpadminbar #wp-admin-bar-user-info .username{color:#999;font-size:11px}#wpadminbar .quicklinks li#wp-admin-bar-my-account.with-avatar>a img{width:16px;height:16px;border:1px solid #999;padding:0;background:#eee;line-height:24px;vertical-align:middle;margin:-3px 0 0 6px;float:none;display:inline}#wpadminbar .quicklinks li img.blavatar{vertical-align:middle;margin:-3px 4px 0 0;padding:0}#wpadminbar #wp-admin-bar-search .ab-item{padding:0}#wpadminbar #wp-admin-bar-search .ab-item{background:transparent}#wpadminbar #adminbarsearch{height:28px;padding:0 2px}#wpadminbar #adminbarsearch .adminbar-input{font:13px/24px sans-serif;height:24px;width:24px;border:0;padding:0 3px 0 23px;margin:0;color:#ccc;text-shadow:#444 0 -1px 0;background-color:rgba(255,255,255,0);background-image:url(../images/admin-bar-sprite.png?d=20111130);background-position:3px 2px;background-repeat:no-repeat;outline:0;cursor:pointer;-webkit-border-radius:3px;border-radius:3px;-moz-box-shadow:none;-webkit-box-shadow:none;box-shadow:none;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box;-webkit-transition-duration:400ms;-webkit-transition-property:width,background;-webkit-transition-timing-function:ease;-moz-transition-duration:400ms;-moz-transition-property:width,background;-moz-transition-timing-function:ease;-o-transition-duration:400ms;-o-transition-property:width,background;-o-transition-timing-function:ease}#wpadminbar.ie7 #adminbarsearch .adminbar-input{margin-top:1px;width:120px}#wpadminbar #adminbarsearch .adminbar-input:focus{color:#555;text-shadow:0 1px 0 #fff;width:200px;background-color:rgba(255,255,255,0.9);cursor:text}#wpadminbar.ie8 #adminbarsearch .adminbar-input{background-color:#464646}#wpadminbar.ie8 #adminbarsearch .adminbar-input:focus{background-color:#fff}#wpadminbar #adminbarsearch .adminbar-input::-webkit-input-placeholder{color:#ddd}#wpadminbar #adminbarsearch .adminbar-input:-moz-placeholder{color:#ddd}#wpadminbar #adminbarsearch .adminbar-button{display:none}#wpadminbar #wp-admin-bar-appearance{border-top:0;margin-top:-12px}#wpadminbar #wp-admin-bar-appearance{border-top:0;margin-top:-12px}#wpadminbar .ab-icon{position:relative;float:left;width:16px;height:16px;margin-top:6px}#wpadminbar .ab-label{margin-left:4px}#wp-admin-bar-wp-logo>.ab-item .ab-icon{width:20px;height:20px;margin-top:4px;background-image:url(../images/admin-bar-sprite.png?d=20111130);background-position:0 -76px;background-repeat:no-repeat}#wpadminbar.nojs #wp-admin-bar-wp-logo:hover>.ab-item .ab-icon,#wpadminbar #wp-admin-bar-wp-logo.hover>.ab-item .ab-icon{background-position:0 -104px}#wp-admin-bar-updates>.ab-item .ab-icon{background-image:url(../images/admin-bar-sprite.png?d=20111130);background-position:-2px -159px;background-repeat:no-repeat}#wp-admin-bar-comments>.ab-item .ab-icon{background-image:url(../images/admin-bar-sprite.png?d=20111130);background-position:-1px -134px;background-repeat:no-repeat}#wpadminbar span.count-0{display:none}#wpadminbar #wp-admin-bar-new-content>.ab-item .ab-icon{background-image:url(../images/admin-bar-sprite.png?d=20111130);background-position:-2px -182px;background-repeat:no-repeat}#wpadminbar.nojs #wp-admin-bar-new-content:hover>.ab-item .ab-icon,#wpadminbar #wp-admin-bar-new-content.hover>.ab-item .ab-icon{background-position:-2px -203px}.no-customize-support .hide-if-no-customize,.customize-support .hide-if-customize{display:none}@media only screen and (-webkit-min-device-pixel-ratio:1.5){#wpadminbar .menupop .menupop>.ab-item,#wpadminbar .ab-top-secondary .menupop .menupop>.ab-item,#wpadminbar #adminbarsearch .adminbar-input,#wp-admin-bar-wp-logo>.ab-item .ab-icon,#wp-admin-bar-updates>.ab-item .ab-icon,#wp-admin-bar-comments>.ab-item .ab-icon,#wpadminbar #wp-admin-bar-new-content>.ab-item .ab-icon{background-image:url(../images/admin-bar-sprite-2x.png?d=20120516);background-size:20px 220px}}* html #wpadminbar{overflow:hidden;position:absolute}* html #wpadminbar .quicklinks ul li a{float:left}* html #wpadminbar .menupop a span{background-image:none}
\ No newline at end of file
+#wpadminbar * {
+	height: auto;
+	width: auto;
+	margin: 0;
+	padding: 0;
+	position: static;
+	text-transform: none;
+	letter-spacing: normal;
+	line-height: 1;
+	font: normal 13px/28px sans-serif;
+	color: #ccc;
+	text-shadow: #444 0px -1px 0px;
+	-webkit-box-sizing: content-box;
+	-moz-box-sizing:    content-box;
+	box-sizing:         content-box;
+}
+
+#wpadminbar ul li:before,
+#wpadminbar ul li:after {
+	content: normal;
+}
+
+#wpadminbar a,
+#wpadminbar a:hover,
+#wpadminbar a img,
+#wpadminbar a img:hover {
+	outline: none;
+	border: none;
+	text-decoration: none;
+	background: none;
+}
+
+#wpadminbar a:focus,
+#wpadminbar a:active,
+#wpadminbar input[type="text"],
+#wpadminbar input[type="password"],
+#wpadminbar input[type="number"],
+#wpadminbar input[type="search"],
+#wpadminbar input[type="email"],
+#wpadminbar input[type="url"],
+#wpadminbar select,
+#wpadminbar textarea,
+#wpadminbar div {
+	outline: none;
+}
+
+#wpadminbar {
+	direction: ltr;
+	color: #ccc;
+	font: normal 13px/28px sans-serif;
+	height: 28px;
+	position: fixed;
+	top: 0;
+	left: 0;
+	width: 100%;
+	min-width: 600px; /* match the min-width of the body in wp-admin.css */
+	z-index: 99999;
+	background: #464646;
+	background-image: -webkit-gradient(linear, left bottom, left top, color-stop(0, #373737), color-stop(18%, #464646));
+	background-image: -webkit-linear-gradient(bottom, #373737 0, #464646 5px);
+	background-image:    -moz-linear-gradient(bottom, #373737 0, #464646 5px);
+	background-image:      -o-linear-gradient(bottom, #373737 0, #464646 5px);
+	background-image: linear-gradient(to top, #373737 0, #464646 5px);
+}
+
+#wpadminbar .ab-sub-wrapper,
+#wpadminbar ul,
+#wpadminbar ul li {
+	background: none;
+	clear: none;
+	list-style: none;
+	margin: 0;
+	padding: 0;
+	position: relative;
+	text-indent: 0;
+	z-index: 99999;
+}
+
+#wpadminbar .quicklinks {
+	border-left: 1px solid transparent;
+}
+
+#wpadminbar .quicklinks ul {
+	text-align: left;
+}
+
+#wpadminbar li {
+	float: left;
+}
+
+#wpadminbar .ab-empty-item {
+	outline: none;
+}
+
+#wpadminbar .quicklinks > ul > li {
+	border-right: 1px solid #555;
+}
+
+#wpadminbar .quicklinks > ul > li > a,
+#wpadminbar .quicklinks > ul > li > .ab-empty-item {
+	border-right: 1px solid #333;
+}
+
+#wpadminbar .quicklinks .ab-top-secondary > li {
+	border-left: 1px solid #333;
+	border-right: 0;
+	float: right;
+}
+
+#wpadminbar .quicklinks .ab-top-secondary > li > a,
+#wpadminbar .quicklinks .ab-top-secondary > li > .ab-empty-item {
+	border-left: 1px solid #555;
+	border-right: 0;
+}
+
+#wpadminbar .quicklinks a,
+#wpadminbar .quicklinks .ab-empty-item,
+#wpadminbar .shortlink-input {
+	height: 28px;
+	display: block;
+	padding: 0 12px;
+	margin: 0;
+}
+
+#wpadminbar .menupop .ab-sub-wrapper,
+#wpadminbar .shortlink-input {
+	margin: 0 0 0 -1px;
+	padding: 0;
+	-webkit-box-shadow: 0 4px 4px rgba(0,0,0,0.2);
+	box-shadow: 0 4px 4px rgba(0,0,0,0.2);
+	background: #fff;
+	display: none;
+	position: absolute;
+	float: none;
+	border-width: 0 1px 1px 1px;
+	border-style: solid;
+	border-color: #dfdfdf;
+}
+
+#wpadminbar.ie7 .menupop .ab-sub-wrapper,
+#wpadminbar.ie7 .shortlink-input {
+	top: 28px;
+	left: 0;
+}
+
+#wpadminbar .ab-top-menu > .menupop > .ab-sub-wrapper {
+	min-width: 100%;
+}
+
+#wpadminbar .ab-top-secondary .menupop .ab-sub-wrapper {
+	right: 0;
+	left: auto;
+	margin: 0 -1px 0 0;
+}
+
+#wpadminbar .ab-sub-wrapper > .ab-submenu:first-child {
+	border-top: none;
+}
+
+#wpadminbar .ab-submenu {
+	padding: 6px 0;
+	border-top: 1px solid #dfdfdf;
+}
+
+#wpadminbar .selected .shortlink-input {
+	display: block;
+}
+
+#wpadminbar .quicklinks .menupop ul li {
+	float: none;
+}
+
+#wpadminbar .quicklinks .menupop ul li a strong {
+	font-weight: bold;
+}
+
+#wpadminbar .quicklinks .menupop ul li .ab-item,
+#wpadminbar .quicklinks .menupop ul li a strong,
+#wpadminbar .quicklinks .menupop.hover ul li .ab-item,
+#wpadminbar.nojs .quicklinks .menupop:hover ul li .ab-item,
+#wpadminbar .shortlink-input {
+	line-height: 26px;
+	height: 26px;
+	text-shadow: none;
+	white-space: nowrap;
+	min-width: 140px;
+}
+
+#wpadminbar .shortlink-input {
+	width: 200px;
+}
+
+#wpadminbar.nojs li:hover > .ab-sub-wrapper,
+#wpadminbar li.hover > .ab-sub-wrapper {
+	display: block;
+}
+
+#wpadminbar .menupop li:hover > .ab-sub-wrapper,
+#wpadminbar .menupop li.hover > .ab-sub-wrapper {
+	margin-left: 100%;
+	margin-top: -33px;
+	border-width: 1px;
+}
+
+#wpadminbar .ab-top-secondary .menupop li:hover > .ab-sub-wrapper,
+#wpadminbar .ab-top-secondary .menupop li.hover > .ab-sub-wrapper {
+	margin-left: 0;
+	left: inherit;
+	right: 100%;
+}
+
+#wpadminbar .ab-top-menu > li:hover > .ab-item,
+#wpadminbar .ab-top-menu > li.hover > .ab-item,
+#wpadminbar .ab-top-menu > li > .ab-item:focus,
+#wpadminbar.nojq .quicklinks .ab-top-menu > li > .ab-item:focus {
+	color: #fafafa;
+	background: #222;
+	background-image: -webkit-gradient(linear, left bottom, left top, from(#3a3a3a), to(#222));
+	background-image: -webkit-linear-gradient(bottom, #3a3a3a, #222);
+	background-image:    -moz-linear-gradient(bottom, #3a3a3a, #222);
+	background-image:      -o-linear-gradient(bottom, #3a3a3a, #222);
+	background-image: linear-gradient(to top, #3a3a3a, #222);
+}
+
+#wpadminbar.nojs .ab-top-menu > li.menupop:hover > .ab-item,
+#wpadminbar .ab-top-menu > li.menupop.hover > .ab-item {
+	background: #fff;
+	color: #333;
+	text-shadow: none;
+	border-right-color: transparent;
+	border-left-color: transparent;
+}
+
+#wpadminbar .hover .ab-label,
+#wpadminbar.nojq .ab-item:focus .ab-label {
+	color: #fafafa;
+}
+
+#wpadminbar .menupop.hover .ab-label {
+	color: #333;
+	text-shadow: none;
+}
+
+#wpadminbar .menupop li:hover,
+#wpadminbar .menupop li.hover,
+#wpadminbar .quicklinks .menupop .ab-item:focus,
+#wpadminbar .quicklinks .ab-top-menu .menupop .ab-item:focus {
+	background-color: #eaf2fa;
+}
+
+#wpadminbar .ab-submenu .ab-item {
+	color: #333;
+	text-shadow: none;
+}
+
+#wpadminbar .quicklinks .menupop ul li a,
+#wpadminbar .quicklinks .menupop ul li a strong,
+#wpadminbar .quicklinks .menupop.hover ul li a,
+#wpadminbar.nojs .quicklinks .menupop:hover ul li a {
+	color: #21759B;
+}
+
+#wpadminbar .menupop .menupop > .ab-item {
+	display: block;
+	background-image: url(../images/admin-bar-sprite.png?d=20120830);
+	background-position: 95% -20px;
+	background-repeat: no-repeat;
+	padding-right: 2em;
+}
+
+#wpadminbar .ab-top-secondary .menupop .menupop > .ab-item {
+	background-image: url(../images/admin-bar-sprite.png?d=20120830);
+	background-position: 5% -46px;
+	background-repeat: no-repeat;
+	padding-left: 2em;
+	padding-right: 1em;
+}
+
+#wpadminbar .quicklinks .menupop ul.ab-sub-secondary {
+	display: block;
+	position: relative;
+	right: auto;
+	margin: 0;
+	background: #eee;
+	-webkit-box-shadow: none;
+	box-shadow: none;
+}
+
+#wpadminbar .quicklinks .menupop .ab-sub-secondary > li:hover,
+#wpadminbar .quicklinks .menupop .ab-sub-secondary > li.hover,
+#wpadminbar .quicklinks .menupop .ab-sub-secondary > li .ab-item:focus {
+	background-color: #dfdfdf;
+}
+
+#wpadminbar .quicklinks a span#ab-updates {
+	background: #eee;
+	color: #333;
+	text-shadow: none;
+	display: inline;
+	padding: 2px 5px;
+	font-size: 10px;
+	font-weight: bold;
+	-webkit-border-radius: 10px;
+	border-radius: 10px;
+}
+
+#wpadminbar .quicklinks a:hover span#ab-updates  {
+	background: #fff;
+	color: #000;
+}
+
+#wpadminbar .ab-top-secondary {
+	float: right;
+	background: #464646;
+	background-image: -webkit-gradient(linear, left bottom, left top, color-stop(0, #373737), color-stop(18%, #464646));
+	background-image: -webkit-linear-gradient(bottom, #373737 0, #464646 5px);
+	background-image:    -moz-linear-gradient(bottom, #373737 0, #464646 5px);
+	background-image:      -o-linear-gradient(bottom, #373737 0, #464646 5px);
+	background-image: linear-gradient(to top, #373737 0, #464646 5px);
+}
+
+#wpadminbar ul li:last-child,
+#wpadminbar ul li:last-child .ab-item {
+	border-right: 0;
+	-webkit-box-shadow: none;
+	box-shadow: none;
+}
+
+/**
+ * My Account
+ */
+#wp-admin-bar-my-account > ul {
+	min-width: 198px;
+}
+
+#wp-admin-bar-my-account.with-avatar > ul {
+	min-width: 270px;
+}
+
+#wpadminbar #wp-admin-bar-user-actions > li {
+	margin-left: 16px;
+	margin-right: 16px;
+}
+
+#wpadminbar #wp-admin-bar-my-account.with-avatar #wp-admin-bar-user-actions > li {
+	margin-left: 88px;
+}
+
+#wp-admin-bar-user-actions > li > .ab-item {
+	padding-left: 8px;
+}
+
+#wpadminbar #wp-admin-bar-user-info {
+	margin-top: 6px;
+	margin-bottom: 15px;
+	height: auto;
+	background: none;
+}
+
+#wp-admin-bar-user-info .avatar {
+	position: absolute;
+	left: -72px;
+	top: 4px;
+	width: 64px;
+	height: 64px;
+}
+
+#wpadminbar #wp-admin-bar-user-info a {
+	background: none;
+	height: auto;
+}
+
+#wpadminbar #wp-admin-bar-user-info span {
+	background: none;
+	padding: 0;
+	height: 18px;
+}
+
+#wpadminbar #wp-admin-bar-user-info .display-name,
+#wpadminbar #wp-admin-bar-user-info .username {
+	text-shadow: none;
+	display: block;
+}
+
+#wpadminbar #wp-admin-bar-user-info .display-name {
+	color: #333;
+}
+
+#wpadminbar #wp-admin-bar-user-info .username {
+	color: #999;
+	font-size: 11px;
+}
+
+#wpadminbar .quicklinks li#wp-admin-bar-my-account.with-avatar > a img {
+	width: 16px;
+	height: 16px;
+	border: 1px solid #999;
+	padding: 0;
+	background: #eee;
+	line-height: 24px;
+	vertical-align: middle;
+	margin: -3px 0 0 6px;
+	float: none;
+	display: inline;
+}
+
+/*
+ * My Sites
+ */
+#wpadminbar .quicklinks li .blavatar {
+	vertical-align: middle;
+	margin: -3px 4px 0 0;
+	padding: 0;
+}
+
+#wpadminbar .quicklinks li div.blavatar {
+	background: url('../images/wpmini-blue.png') no-repeat;
+	height: 16px;
+	width: 16px;
+	display: inline-block;
+}
+
+/**
+ * Search
+ */
+#wpadminbar #wp-admin-bar-search .ab-item {
+	padding: 0;
+}
+
+#wpadminbar #wp-admin-bar-search .ab-item {
+	/* default background */
+	background: transparent;
+}
+
+#wpadminbar #adminbarsearch {
+	height: 28px;
+	padding: 0 2px;
+}
+
+#wpadminbar #adminbarsearch .adminbar-input {
+	font: 13px/24px sans-serif;
+	height: 24px;
+	width: 24px;
+	border: none;
+	padding: 0 3px 0 23px;
+	margin: 0;
+	color: #ccc;
+	text-shadow: #444 0px -1px 0px;
+	background-color: rgba( 255, 255, 255, 0 );
+	background-image: url(../images/admin-bar-sprite.png?d=20120830);
+	background-position: 3px 2px;
+	background-repeat: no-repeat;
+	outline: none;
+	cursor: pointer;
+
+	-webkit-border-radius: 3px;
+	border-radius: 3px;
+
+	-webkit-box-shadow: none;
+	box-shadow: none;
+
+	-moz-box-sizing: border-box;
+	-webkit-box-sizing: border-box;
+	-ms-box-sizing: border-box;
+	box-sizing: border-box;
+
+	-webkit-transition-duration: 400ms;
+	-webkit-transition-property: width, background;
+	-webkit-transition-timing-function: ease;
+	-moz-transition-duration: 400ms;
+	-moz-transition-property: width, background;
+	-moz-transition-timing-function: ease;
+	-o-transition-duration: 400ms;
+	-o-transition-property: width, background;
+	-o-transition-timing-function: ease;
+}
+
+#wpadminbar.ie7 #adminbarsearch .adminbar-input {
+	margin-top: 1px;
+	width: 120px;
+}
+
+#wpadminbar #adminbarsearch .adminbar-input:focus {
+	color: #555;
+	text-shadow: 0 1px 0 #fff;
+	width: 200px;
+	background-color: rgba( 255, 255, 255, 0.9 );
+	cursor: text;
+}
+
+#wpadminbar.ie8 #adminbarsearch .adminbar-input {
+	background-color: #464646;
+}
+
+#wpadminbar.ie8 #adminbarsearch .adminbar-input:focus {
+	background-color: #fff;
+}
+
+/* Two rules to ensure browser recognition */
+#wpadminbar #adminbarsearch .adminbar-input::-webkit-input-placeholder {
+	color: #ddd;
+}
+
+#wpadminbar #adminbarsearch .adminbar-input:-moz-placeholder {
+	color: #ddd;
+}
+
+#wpadminbar #adminbarsearch .adminbar-button {
+	display: none;
+}
+
+/**
+ * Site Menu
+ */
+#wpadminbar #wp-admin-bar-appearance {
+	border-top: none;
+	margin-top: -12px;
+}
+
+/**
+ * Site Menu
+ */
+#wpadminbar #wp-admin-bar-appearance {
+	border-top: none;
+	margin-top: -12px;
+}
+
+/**
+ * ICONS
+ */
+#wpadminbar .ab-icon {
+	position: relative;
+	float: left;
+	width: 16px;
+	height: 16px;
+	margin-top: 6px;
+}
+
+#wpadminbar .ab-label {
+	margin-left: 4px;
+}
+
+/**
+ * WP Logo icon
+ */
+#wp-admin-bar-wp-logo > .ab-item .ab-icon {
+	width: 20px;
+	height: 20px;
+	margin-top: 4px;
+	background-image: url(../images/admin-bar-sprite.png?d=20120830);
+	background-position: 0 -76px;
+	background-repeat: no-repeat;
+}
+
+#wpadminbar.nojs #wp-admin-bar-wp-logo:hover > .ab-item .ab-icon,
+#wpadminbar #wp-admin-bar-wp-logo.hover > .ab-item .ab-icon {
+	background-position: 0 -104px;
+}
+
+/**
+ * Updates icon
+ */
+#wp-admin-bar-updates > .ab-item .ab-icon {
+	background-image: url(../images/admin-bar-sprite.png?d=20120830);
+	background-position: -2px -159px;
+	background-repeat: no-repeat;
+}
+
+/**
+ * Comments icon
+ */
+#wp-admin-bar-comments > .ab-item .ab-icon {
+	background-image: url(../images/admin-bar-sprite.png?d=20120830);
+	background-position: -1px -134px;
+	background-repeat: no-repeat;
+}
+
+#wpadminbar span.count-0 {
+	display: none;
+}
+
+/**
+ * Add New icon
+ */
+#wpadminbar #wp-admin-bar-new-content > .ab-item .ab-icon {
+	background-image: url(../images/admin-bar-sprite.png?d=20120830);
+	background-position: -2px -182px;
+	background-repeat: no-repeat;
+}
+
+/**
+ * Add New icon
+ */
+#wpadminbar.nojs #wp-admin-bar-new-content:hover > .ab-item .ab-icon,
+#wpadminbar #wp-admin-bar-new-content.hover > .ab-item .ab-icon {
+	background-position: -2px -203px;
+}
+
+/**
+ * Customize support classes
+ */
+.no-customize-support .hide-if-no-customize,
+.customize-support .hide-if-customize,
+.no-customize-support.wp-core-ui .hide-if-no-customize,
+.no-customize-support .wp-core-ui .hide-if-no-customize,
+.customize-support.wp-core-ui .hide-if-customize,
+.customize-support .wp-core-ui .hide-if-customize {
+	display: none;
+}
+
+/**
+ * Retina display 2x icons
+ */
+@media print,
+  (-o-min-device-pixel-ratio: 5/4),
+  (-webkit-min-device-pixel-ratio: 1.25),
+  (min-resolution: 120dpi) {
+	#wpadminbar .menupop .menupop > .ab-item,
+	#wpadminbar .ab-top-secondary .menupop .menupop > .ab-item,
+	#wpadminbar #adminbarsearch .adminbar-input,
+	#wp-admin-bar-wp-logo > .ab-item .ab-icon,
+	#wp-admin-bar-updates > .ab-item .ab-icon,
+	#wp-admin-bar-comments > .ab-item .ab-icon,
+	#wpadminbar #wp-admin-bar-new-content > .ab-item .ab-icon {
+		background-image: url(../images/admin-bar-sprite-2x.png?d=20120830);
+		background-size: 20px 220px;
+	}
+
+	#wpadminbar .quicklinks li div.blavatar {
+		background: url('../images/wpmini-blue-2x.png') no-repeat;
+		background-size: 16px 16px;
+	}
+}
+
+/* Skip link */
+#wpadminbar .screen-reader-text,
+#wpadminbar .screen-reader-text span {
+	position: absolute;
+	left: -1000em;
+	top: -1000em;
+	height: 1px;
+	width: 1px;
+	overflow: hidden;
+}
+
+#wpadminbar .screen-reader-shortcut {
+	position: absolute;
+	top: -1000em;
+}
+
+#wpadminbar .screen-reader-shortcut:focus {
+	left: 6px;
+	top: 7px;
+	height: auto;
+	width: auto;
+	display: block;
+	font-size: 14px;
+	font-weight: bold;
+	padding: 15px 23px 14px;
+	background: #f1f1f1;
+	color: #21759b;
+	text-shadow: none;
+	border-radius: 3px;
+	z-index: 100000;
+	line-height: normal;
+	-webkit-box-shadow: 0 0 2px 2px rgba(0,0,0,.6);
+	box-shadow: 0 0 2px 2px rgba(0,0,0,.6);
+	text-decoration: none;
+}
+
+/**
+ * IE 6-targeted rules
+ */
+* html #wpadminbar {
+	overflow: hidden;
+	position: absolute;
+}
+
+* html #wpadminbar .quicklinks ul li a {
+	float: left;
+}
+
+* html #wpadminbar .menupop a span {
+	background-image: none;
+}
--- a/web/wp-includes/css/admin-bar.dev.css	Wed Dec 19 12:35:13 2012 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,622 +0,0 @@
-#wpadminbar * {
-	height: auto;
-	width: auto;
-	margin: 0;
-	padding: 0;
-	position: static;
-	text-transform: none;
-	letter-spacing: normal;
-	line-height: 1;
-	font: normal 13px/28px sans-serif;
-	color: #ccc;
-	text-shadow: #444 0px -1px 0px;
-}
-
-#wpadminbar ul li:before,
-#wpadminbar ul li:after {
-	content: normal;
-}
-
-#wpadminbar a,
-#wpadminbar a:hover,
-#wpadminbar a img,
-#wpadminbar a img:hover {
-	outline: none;
-	border: none;
-	text-decoration: none;
-	background: none;
-}
-
-#wpadminbar {
-	direction: ltr;
-	color: #ccc;
-	font: normal 13px/28px sans-serif;
-	height: 28px;
-	position: fixed;
-	top: 0;
-	left: 0;
-	width: 100%;
-	min-width: 600px; /* match the min-width of the body in wp-admin.css */
-	z-index: 99999;
-
-	background-color: #464646; /* Fallback */
-	background-image: -ms-linear-gradient(bottom, #373737, #464646 5px); /* IE10 */
-	background-image: -moz-linear-gradient(bottom, #373737, #464646 5px); /* Firefox */
-	background-image: -o-linear-gradient(bottom, #373737, #464646 5px); /* Opera */
-	background-image: -webkit-gradient(linear, left bottom, left top, from(#373737), to(#464646)); /* old Webkit */
-	background-image: -webkit-linear-gradient(bottom, #373737, #464646 5px); /* new Webkit */
-	background-image: linear-gradient(bottom, #373737, #464646 5px); /* proposed W3C Markup */
-}
-
-#wpadminbar .ab-sub-wrapper,
-#wpadminbar ul,
-#wpadminbar ul li {
-	background: none;
-	clear: none;
-	list-style: none;
-	margin: 0;
-	padding: 0;
-	position: relative;
-	z-index: 99999;
-}
-
-#wpadminbar .quicklinks {
-	border-left: 1px solid transparent;
-}
-
-#wpadminbar .quicklinks ul {
-	text-align: left;
-}
-
-#wpadminbar li {
-	float: left;
-}
-
-#wpadminbar .ab-empty-item {
-	outline: none;
-}
-
-#wpadminbar .quicklinks > ul > li {
-	border-right: 1px solid #555;
-}
-
-#wpadminbar .quicklinks > ul > li > a,
-#wpadminbar .quicklinks > ul > li > .ab-empty-item {
-	border-right: 1px solid #333;
-}
-
-#wpadminbar .quicklinks .ab-top-secondary > li {
-	border-left: 1px solid #333;
-	border-right: 0;
-	float: right;
-}
-
-#wpadminbar .quicklinks .ab-top-secondary > li > a,
-#wpadminbar .quicklinks .ab-top-secondary > li > .ab-empty-item {
-	border-left: 1px solid #555;
-	border-right: 0;
-}
-
-#wpadminbar .quicklinks a,
-#wpadminbar .quicklinks .ab-empty-item,
-#wpadminbar .shortlink-input {
-	height: 28px;
-	display: block;
-	padding: 0 12px;
-	margin: 0;
-}
-
-#wpadminbar .menupop .ab-sub-wrapper,
-#wpadminbar .shortlink-input {
-	margin: 0 0 0 -1px;
-	padding: 0;
-	-moz-box-shadow: 0 4px 4px rgba(0,0,0,0.2);
-	-webkit-box-shadow: 0 4px 4px rgba(0,0,0,0.2);
-	box-shadow: 0 4px 4px rgba(0,0,0,0.2);
-	background: #fff;
-	display: none;
-	position: absolute;
-	float: none;
-	border-width: 0 1px 1px 1px;
-	border-style: solid;
-	border-color: #dfdfdf;
-}
-
-#wpadminbar.ie7 .menupop .ab-sub-wrapper,
-#wpadminbar.ie7 .shortlink-input {
-	top: 28px;
-	left: 0;
-}
-
-#wpadminbar .ab-top-menu > .menupop > .ab-sub-wrapper {
-	min-width: 100%;
-}
-
-#wpadminbar .ab-top-secondary .menupop .ab-sub-wrapper {
-	right: 0;
-	left: auto;
-	margin: 0 -1px 0 0;
-}
-
-#wpadminbar .ab-sub-wrapper > .ab-submenu:first-child {
-	border-top: none;
-}
-
-#wpadminbar .ab-submenu {
-	padding: 6px 0;
-	border-top: 1px solid #dfdfdf;
-}
-
-#wpadminbar .selected .shortlink-input {
-	display: block;
-}
-
-#wpadminbar .quicklinks .menupop ul li {
-	float: none;
-}
-
-#wpadminbar .quicklinks .menupop ul li a strong {
-	font-weight: bold;
-}
-
-#wpadminbar .quicklinks .menupop ul li .ab-item,
-#wpadminbar .quicklinks .menupop ul li a strong,
-#wpadminbar .quicklinks .menupop.hover ul li .ab-item,
-#wpadminbar.nojs .quicklinks .menupop:hover ul li .ab-item,
-#wpadminbar .shortlink-input {
-	line-height: 26px;
-	height: 26px;
-	text-shadow: none;
-	white-space: nowrap;
-	min-width: 140px;
-}
-
-#wpadminbar .shortlink-input {
-	width: 200px;
-}
-
-#wpadminbar.nojs li:hover > .ab-sub-wrapper,
-#wpadminbar li.hover > .ab-sub-wrapper {
-	display: block;
-}
-
-#wpadminbar .menupop li:hover > .ab-sub-wrapper,
-#wpadminbar .menupop li.hover > .ab-sub-wrapper {
-	margin-left: 100%;
-	margin-top: -33px;
-	border-width: 1px;
-}
-
-#wpadminbar .ab-top-secondary .menupop li:hover > .ab-sub-wrapper,
-#wpadminbar .ab-top-secondary .menupop li.hover > .ab-sub-wrapper {
-	margin-left: 0;
-	left: inherit;
-	right: 100%;
-}
-
-#wpadminbar .ab-top-menu > li:hover > .ab-item,
-#wpadminbar .ab-top-menu > li.hover > .ab-item,
-#wpadminbar .ab-top-menu > li > .ab-item:focus,
-#wpadminbar.nojq .quicklinks .ab-top-menu > li > .ab-item:focus {
-	color: #fafafa;
-	background-color: #3a3a3a; /* Fallback */
-	background-image: -ms-linear-gradient(bottom, #3a3a3a, #222); /* IE10 */
-	background-image: -moz-linear-gradient(bottom, #3a3a3a, #222); /* Firefox */
-	background-image: -o-linear-gradient(bottom, #3a3a3a, #222); /* Opera */
-	background-image: -webkit-gradient(linear, left bottom, left top, from(#3a3a3a), to(#222)); /* old Webkit */
-	background-image: -webkit-linear-gradient(bottom, #3a3a3a, #222); /* new Webkit */
-	background-image: linear-gradient(bottom, #3a3a3a, #222); /* proposed W3C Markup */
-}
-
-#wpadminbar.nojs .ab-top-menu > li.menupop:hover > .ab-item,
-#wpadminbar .ab-top-menu > li.menupop.hover > .ab-item {
-	background: #fff;
-	color: #333;
-	text-shadow: none;
-	border-right-color: transparent;
-	border-left-color: transparent;
-}
-
-#wpadminbar .hover .ab-label,
-#wpadminbar.nojq .ab-item:focus .ab-label {
-	color: #fafafa;
-}
-
-#wpadminbar .menupop.hover .ab-label {
-	color: #333;
-	text-shadow: none;
-}
-
-#wpadminbar .menupop li:hover,
-#wpadminbar .menupop li.hover,
-#wpadminbar .quicklinks .menupop .ab-item:focus,
-#wpadminbar .quicklinks .ab-top-menu .menupop .ab-item:focus {
-	background-color: #eaf2fa;
-}
-
-#wpadminbar .ab-submenu .ab-item {
-	color: #333;
-	text-shadow: none;
-}
-
-#wpadminbar .quicklinks .menupop ul li a,
-#wpadminbar .quicklinks .menupop ul li a strong,
-#wpadminbar .quicklinks .menupop.hover ul li a,
-#wpadminbar.nojs .quicklinks .menupop:hover ul li a {
-	color: #21759B;
-}
-
-#wpadminbar .menupop .menupop > .ab-item {
-	display: block;
-	background-image: url(../images/admin-bar-sprite.png?d=20111130);
-	background-position: 95% -20px;
-	background-repeat: no-repeat;
-	padding-right: 2em;
-}
-
-#wpadminbar .ab-top-secondary .menupop .menupop > .ab-item {
-	background-image: url(../images/admin-bar-sprite.png?d=20111130);
-	background-position: 5% -46px;
-	background-repeat: no-repeat;
-	padding-left: 2em;
-	padding-right: 1em;
-}
-
-#wpadminbar .quicklinks .menupop ul.ab-sub-secondary {
-	display: block;
-	position: relative;
-	right: auto;
-	margin: 0;
-
-	background: #eee;
-
-	-moz-box-shadow: none;
-	-webkit-box-shadow: none;
-	box-shadow: none;
-}
-
-#wpadminbar .quicklinks .menupop .ab-sub-secondary > li:hover,
-#wpadminbar .quicklinks .menupop .ab-sub-secondary > li.hover,
-#wpadminbar .quicklinks .menupop .ab-sub-secondary > li .ab-item:focus {
-	background-color: #dfdfdf;
-}
-
-#wpadminbar .quicklinks a span#ab-updates {
-	background: #eee;
-	color: #333;
-	text-shadow: none;
-	display: inline;
-	padding: 2px 5px;
-	font-size: 10px;
-	font-weight: bold;
-	-webkit-border-radius: 10px;
-	border-radius: 10px;
-}
-
-#wpadminbar .quicklinks a:hover span#ab-updates  {
-	background: #fff;
-	color: #000;
-}
-
-#wpadminbar .ab-top-secondary {
-	float: right;
-	background-color: #464646; /* Fallback */
-	background-image: -ms-linear-gradient(bottom, #373737, #464646 5px); /* IE10 */
-	background-image: -moz-linear-gradient(bottom, #373737, #464646 5px); /* Firefox */
-	background-image: -o-linear-gradient(bottom, #373737, #464646 5px); /* Opera */
-	background-image: -webkit-gradient(linear, left bottom, left top, from(#373737), to(#464646)); /* old Webkit */
-	background-image: -webkit-linear-gradient(bottom, #373737, #464646 5px); /* new Webkit */
-	background-image: linear-gradient(bottom, #373737, #464646 5px); /* proposed W3C Markup */
-}
-
-#wpadminbar ul li:last-child,
-#wpadminbar ul li:last-child .ab-item {
-	border-right: 0;
-	-webkit-box-shadow: none;
-	-moz-box-shadow: none;
-	box-shadow: none;
-}
-
-/**
- * My Account
- */
-#wp-admin-bar-my-account > ul {
-	min-width: 198px;
-}
-
-#wp-admin-bar-my-account.with-avatar > ul {
-	min-width: 270px;
-}
-
-#wpadminbar #wp-admin-bar-user-actions > li {
-	margin-left: 16px;
-	margin-right: 16px;
-}
-
-#wpadminbar #wp-admin-bar-my-account.with-avatar #wp-admin-bar-user-actions > li {
-	margin-left: 88px;
-}
-
-#wp-admin-bar-user-actions > li > .ab-item {
-	padding-left: 8px;
-}
-
-#wpadminbar #wp-admin-bar-user-info {
-	margin-top: 6px;
-	margin-bottom: 15px;
-	height: auto;
-	background: none;
-}
-
-#wp-admin-bar-user-info .avatar {
-	position: absolute;
-	left: -72px;
-	top: 4px;
-	width: 64px;
-	height: 64px;
-}
-
-#wpadminbar #wp-admin-bar-user-info a {
-	background: none;
-	height: auto;
-}
-
-#wpadminbar #wp-admin-bar-user-info span {
-	background: none;
-	padding: 0;
-	height: 18px;
-}
-
-#wpadminbar #wp-admin-bar-user-info .display-name,
-#wpadminbar #wp-admin-bar-user-info .username {
-	text-shadow: none;
-	display: block;
-}
-
-#wpadminbar #wp-admin-bar-user-info .display-name {
-	color: #333;
-}
-
-#wpadminbar #wp-admin-bar-user-info .username {
-	color: #999;
-	font-size: 11px;
-}
-
-#wpadminbar .quicklinks li#wp-admin-bar-my-account.with-avatar > a img {
-	width: 16px;
-	height: 16px;
-	border: 1px solid #999;
-	padding: 0;
-	background: #eee;
-	line-height: 24px;
-	vertical-align: middle;
-	margin: -3px 0 0 6px;
-	float: none;
-	display: inline;
-}
-
-/*
- * My Sites
- */
-#wpadminbar .quicklinks li img.blavatar {
-	vertical-align: middle;
-	margin: -3px 4px 0 0;
-	padding: 0;
-}
-
-/**
- * Search
- */
-#wpadminbar #wp-admin-bar-search .ab-item {
-	padding: 0;
-}
-
-#wpadminbar #wp-admin-bar-search .ab-item {
-	/* default background */
-	background: transparent;
-}
-
-#wpadminbar #adminbarsearch {
-	height: 28px;
-	padding: 0 2px;
-}
-
-#wpadminbar #adminbarsearch .adminbar-input {
-	font: 13px/24px sans-serif;
-	height: 24px;
-	width: 24px;
-	border: none;
-	padding: 0 3px 0 23px;
-	margin: 0;
-	color: #ccc;
-	text-shadow: #444 0px -1px 0px;
-	background-color: rgba( 255, 255, 255, 0 );
-	background-image: url(../images/admin-bar-sprite.png?d=20111130);
-	background-position: 3px 2px;
-	background-repeat: no-repeat;
-	outline: none;
-	cursor: pointer;
-
-	-webkit-border-radius: 3px;
-	border-radius: 3px;
-
-	-moz-box-shadow: none;
-	-webkit-box-shadow: none;
-	box-shadow: none;
-
-	-moz-box-sizing: border-box;
-	-webkit-box-sizing: border-box;
-	-ms-box-sizing: border-box;
-	box-sizing: border-box;
-
-	-webkit-transition-duration: 400ms;
-	-webkit-transition-property: width, background;
-	-webkit-transition-timing-function: ease;
-	-moz-transition-duration: 400ms;
-	-moz-transition-property: width, background;
-	-moz-transition-timing-function: ease;
-	-o-transition-duration: 400ms;
-	-o-transition-property: width, background;
-	-o-transition-timing-function: ease;
-}
-
-#wpadminbar.ie7 #adminbarsearch .adminbar-input {
-	margin-top: 1px;
-	width: 120px;
-}
-
-#wpadminbar #adminbarsearch .adminbar-input:focus {
-	color: #555;
-	text-shadow: 0 1px 0 #fff;
-	width: 200px;
-	background-color: rgba( 255, 255, 255, 0.9 );
-	cursor: text;
-}
-
-#wpadminbar.ie8 #adminbarsearch .adminbar-input {
-	background-color: #464646;
-}
-
-#wpadminbar.ie8 #adminbarsearch .adminbar-input:focus {
-	background-color: #fff;
-}
-
-/* Two rules to ensure browser recognition */
-#wpadminbar #adminbarsearch .adminbar-input::-webkit-input-placeholder {
-	color: #ddd;
-}
-
-#wpadminbar #adminbarsearch .adminbar-input:-moz-placeholder {
-	color: #ddd;
-}
-
-#wpadminbar #adminbarsearch .adminbar-button {
-	display: none;
-}
-
-/**
- * Site Menu
- */
-#wpadminbar #wp-admin-bar-appearance {
-	border-top: none;
-	margin-top: -12px;
-}
-
-/**
- * Site Menu
- */
-#wpadminbar #wp-admin-bar-appearance {
-	border-top: none;
-	margin-top: -12px;
-}
-
-/**
- * ICONS
- */
-#wpadminbar .ab-icon {
-	position: relative;
-	float: left;
-	width: 16px;
-	height: 16px;
-	margin-top: 6px;
-}
-
-#wpadminbar .ab-label {
-	margin-left: 4px;
-}
-
-/**
- * WP Logo icon
- */
-#wp-admin-bar-wp-logo > .ab-item .ab-icon {
-	width: 20px;
-	height: 20px;
-	margin-top: 4px;
-	background-image: url(../images/admin-bar-sprite.png?d=20111130);
-	background-position: 0 -76px;
-	background-repeat: no-repeat;
-}
-
-#wpadminbar.nojs #wp-admin-bar-wp-logo:hover > .ab-item .ab-icon,
-#wpadminbar #wp-admin-bar-wp-logo.hover > .ab-item .ab-icon {
-	background-position: 0 -104px;
-}
-
-/**
- * Updates icon
- */
-#wp-admin-bar-updates > .ab-item .ab-icon {
-	background-image: url(../images/admin-bar-sprite.png?d=20111130);
-	background-position: -2px -159px;
-	background-repeat: no-repeat;
-}
-
-/**
- * Comments icon
- */
-#wp-admin-bar-comments > .ab-item .ab-icon {
-	background-image: url(../images/admin-bar-sprite.png?d=20111130);
-	background-position: -1px -134px;
-	background-repeat: no-repeat;
-}
-
-#wpadminbar span.count-0 {
-	display: none;
-}
-
-/**
- * Add New icon
- */
-#wpadminbar #wp-admin-bar-new-content > .ab-item .ab-icon {
-	background-image: url(../images/admin-bar-sprite.png?d=20111130);
-	background-position: -2px -182px;
-	background-repeat: no-repeat;
-}
-
-/**
- * Add New icon
- */
-#wpadminbar.nojs #wp-admin-bar-new-content:hover > .ab-item .ab-icon,
-#wpadminbar #wp-admin-bar-new-content.hover > .ab-item .ab-icon {
-	background-position: -2px -203px;
-}
-
-/**
- * Customize support classes
- */
-.no-customize-support .hide-if-no-customize,
-.customize-support .hide-if-customize {
-	display: none;
-}
-
-/**
- * Retina display 2x icons
- */
-@media only screen and (-webkit-min-device-pixel-ratio: 1.5) {
-	#wpadminbar .menupop .menupop > .ab-item,
-	#wpadminbar .ab-top-secondary .menupop .menupop > .ab-item,
-	#wpadminbar #adminbarsearch .adminbar-input,
-	#wp-admin-bar-wp-logo > .ab-item .ab-icon,
-	#wp-admin-bar-updates > .ab-item .ab-icon,
-	#wp-admin-bar-comments > .ab-item .ab-icon,
-	#wpadminbar #wp-admin-bar-new-content > .ab-item .ab-icon {
-		background-image: url(../images/admin-bar-sprite-2x.png?d=20120516);
-		background-size: 20px 220px;
-	}
-}
-
-/**
- * IE 6-targeted rules
- */
-* html #wpadminbar {
-	overflow: hidden;
-	position: absolute;
-}
-
-* html #wpadminbar .quicklinks ul li a {
-	float: left;
-}
-
-* html #wpadminbar .menupop a span {
-	background-image: none;
-}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-includes/css/admin-bar.min.css	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,1 @@
+#wpadminbar *{height:auto;width:auto;margin:0;padding:0;position:static;text-transform:none;letter-spacing:normal;line-height:1;font:normal 13px/28px sans-serif;color:#ccc;text-shadow:#444 0 -1px 0;-webkit-box-sizing:content-box;-moz-box-sizing:content-box;box-sizing:content-box}#wpadminbar ul li:before,#wpadminbar ul li:after{content:normal}#wpadminbar a,#wpadminbar a:hover,#wpadminbar a img,#wpadminbar a img:hover{outline:0;border:0;text-decoration:none;background:0}#wpadminbar a:focus,#wpadminbar a:active,#wpadminbar input[type="text"],#wpadminbar input[type="password"],#wpadminbar input[type="number"],#wpadminbar input[type="search"],#wpadminbar input[type="email"],#wpadminbar input[type="url"],#wpadminbar select,#wpadminbar textarea,#wpadminbar div{outline:0}#wpadminbar{direction:ltr;color:#ccc;font:normal 13px/28px sans-serif;height:28px;position:fixed;top:0;left:0;width:100%;min-width:600px;z-index:99999;background:#464646;background-image:-webkit-gradient(linear,left bottom,left top,color-stop(0,#373737),color-stop(18%,#464646));background-image:-webkit-linear-gradient(bottom,#373737 0,#464646 5px);background-image:-moz-linear-gradient(bottom,#373737 0,#464646 5px);background-image:-o-linear-gradient(bottom,#373737 0,#464646 5px);background-image:linear-gradient(to top,#373737 0,#464646 5px)}#wpadminbar .ab-sub-wrapper,#wpadminbar ul,#wpadminbar ul li{background:0;clear:none;list-style:none;margin:0;padding:0;position:relative;text-indent:0;z-index:99999}#wpadminbar .quicklinks{border-left:1px solid transparent}#wpadminbar .quicklinks ul{text-align:left}#wpadminbar li{float:left}#wpadminbar .ab-empty-item{outline:0}#wpadminbar .quicklinks>ul>li{border-right:1px solid #555}#wpadminbar .quicklinks>ul>li>a,#wpadminbar .quicklinks>ul>li>.ab-empty-item{border-right:1px solid #333}#wpadminbar .quicklinks .ab-top-secondary>li{border-left:1px solid #333;border-right:0;float:right}#wpadminbar .quicklinks .ab-top-secondary>li>a,#wpadminbar .quicklinks .ab-top-secondary>li>.ab-empty-item{border-left:1px solid #555;border-right:0}#wpadminbar .quicklinks a,#wpadminbar .quicklinks .ab-empty-item,#wpadminbar .shortlink-input{height:28px;display:block;padding:0 12px;margin:0}#wpadminbar .menupop .ab-sub-wrapper,#wpadminbar .shortlink-input{margin:0 0 0 -1px;padding:0;-webkit-box-shadow:0 4px 4px rgba(0,0,0,0.2);box-shadow:0 4px 4px rgba(0,0,0,0.2);background:#fff;display:none;position:absolute;float:none;border-width:0 1px 1px 1px;border-style:solid;border-color:#dfdfdf}#wpadminbar.ie7 .menupop .ab-sub-wrapper,#wpadminbar.ie7 .shortlink-input{top:28px;left:0}#wpadminbar .ab-top-menu>.menupop>.ab-sub-wrapper{min-width:100%}#wpadminbar .ab-top-secondary .menupop .ab-sub-wrapper{right:0;left:auto;margin:0 -1px 0 0}#wpadminbar .ab-sub-wrapper>.ab-submenu:first-child{border-top:0}#wpadminbar .ab-submenu{padding:6px 0;border-top:1px solid #dfdfdf}#wpadminbar .selected .shortlink-input{display:block}#wpadminbar .quicklinks .menupop ul li{float:none}#wpadminbar .quicklinks .menupop ul li a strong{font-weight:bold}#wpadminbar .quicklinks .menupop ul li .ab-item,#wpadminbar .quicklinks .menupop ul li a strong,#wpadminbar .quicklinks .menupop.hover ul li .ab-item,#wpadminbar.nojs .quicklinks .menupop:hover ul li .ab-item,#wpadminbar .shortlink-input{line-height:26px;height:26px;text-shadow:none;white-space:nowrap;min-width:140px}#wpadminbar .shortlink-input{width:200px}#wpadminbar.nojs li:hover>.ab-sub-wrapper,#wpadminbar li.hover>.ab-sub-wrapper{display:block}#wpadminbar .menupop li:hover>.ab-sub-wrapper,#wpadminbar .menupop li.hover>.ab-sub-wrapper{margin-left:100%;margin-top:-33px;border-width:1px}#wpadminbar .ab-top-secondary .menupop li:hover>.ab-sub-wrapper,#wpadminbar .ab-top-secondary .menupop li.hover>.ab-sub-wrapper{margin-left:0;left:inherit;right:100%}#wpadminbar .ab-top-menu>li:hover>.ab-item,#wpadminbar .ab-top-menu>li.hover>.ab-item,#wpadminbar .ab-top-menu>li>.ab-item:focus,#wpadminbar.nojq .quicklinks .ab-top-menu>li>.ab-item:focus{color:#fafafa;background:#222;background-image:-webkit-gradient(linear,left bottom,left top,from(#3a3a3a),to(#222));background-image:-webkit-linear-gradient(bottom,#3a3a3a,#222);background-image:-moz-linear-gradient(bottom,#3a3a3a,#222);background-image:-o-linear-gradient(bottom,#3a3a3a,#222);background-image:linear-gradient(to top,#3a3a3a,#222)}#wpadminbar.nojs .ab-top-menu>li.menupop:hover>.ab-item,#wpadminbar .ab-top-menu>li.menupop.hover>.ab-item{background:#fff;color:#333;text-shadow:none;border-right-color:transparent;border-left-color:transparent}#wpadminbar .hover .ab-label,#wpadminbar.nojq .ab-item:focus .ab-label{color:#fafafa}#wpadminbar .menupop.hover .ab-label{color:#333;text-shadow:none}#wpadminbar .menupop li:hover,#wpadminbar .menupop li.hover,#wpadminbar .quicklinks .menupop .ab-item:focus,#wpadminbar .quicklinks .ab-top-menu .menupop .ab-item:focus{background-color:#eaf2fa}#wpadminbar .ab-submenu .ab-item{color:#333;text-shadow:none}#wpadminbar .quicklinks .menupop ul li a,#wpadminbar .quicklinks .menupop ul li a strong,#wpadminbar .quicklinks .menupop.hover ul li a,#wpadminbar.nojs .quicklinks .menupop:hover ul li a{color:#21759b}#wpadminbar .menupop .menupop>.ab-item{display:block;background-image:url(../images/admin-bar-sprite.png?d=20120830);background-position:95% -20px;background-repeat:no-repeat;padding-right:2em}#wpadminbar .ab-top-secondary .menupop .menupop>.ab-item{background-image:url(../images/admin-bar-sprite.png?d=20120830);background-position:5% -46px;background-repeat:no-repeat;padding-left:2em;padding-right:1em}#wpadminbar .quicklinks .menupop ul.ab-sub-secondary{display:block;position:relative;right:auto;margin:0;background:#eee;-webkit-box-shadow:none;box-shadow:none}#wpadminbar .quicklinks .menupop .ab-sub-secondary>li:hover,#wpadminbar .quicklinks .menupop .ab-sub-secondary>li.hover,#wpadminbar .quicklinks .menupop .ab-sub-secondary>li .ab-item:focus{background-color:#dfdfdf}#wpadminbar .quicklinks a span#ab-updates{background:#eee;color:#333;text-shadow:none;display:inline;padding:2px 5px;font-size:10px;font-weight:bold;-webkit-border-radius:10px;border-radius:10px}#wpadminbar .quicklinks a:hover span#ab-updates{background:#fff;color:#000}#wpadminbar .ab-top-secondary{float:right;background:#464646;background-image:-webkit-gradient(linear,left bottom,left top,color-stop(0,#373737),color-stop(18%,#464646));background-image:-webkit-linear-gradient(bottom,#373737 0,#464646 5px);background-image:-moz-linear-gradient(bottom,#373737 0,#464646 5px);background-image:-o-linear-gradient(bottom,#373737 0,#464646 5px);background-image:linear-gradient(to top,#373737 0,#464646 5px)}#wpadminbar ul li:last-child,#wpadminbar ul li:last-child .ab-item{border-right:0;-webkit-box-shadow:none;box-shadow:none}#wp-admin-bar-my-account>ul{min-width:198px}#wp-admin-bar-my-account.with-avatar>ul{min-width:270px}#wpadminbar #wp-admin-bar-user-actions>li{margin-left:16px;margin-right:16px}#wpadminbar #wp-admin-bar-my-account.with-avatar #wp-admin-bar-user-actions>li{margin-left:88px}#wp-admin-bar-user-actions>li>.ab-item{padding-left:8px}#wpadminbar #wp-admin-bar-user-info{margin-top:6px;margin-bottom:15px;height:auto;background:0}#wp-admin-bar-user-info .avatar{position:absolute;left:-72px;top:4px;width:64px;height:64px}#wpadminbar #wp-admin-bar-user-info a{background:0;height:auto}#wpadminbar #wp-admin-bar-user-info span{background:0;padding:0;height:18px}#wpadminbar #wp-admin-bar-user-info .display-name,#wpadminbar #wp-admin-bar-user-info .username{text-shadow:none;display:block}#wpadminbar #wp-admin-bar-user-info .display-name{color:#333}#wpadminbar #wp-admin-bar-user-info .username{color:#999;font-size:11px}#wpadminbar .quicklinks li#wp-admin-bar-my-account.with-avatar>a img{width:16px;height:16px;border:1px solid #999;padding:0;background:#eee;line-height:24px;vertical-align:middle;margin:-3px 0 0 6px;float:none;display:inline}#wpadminbar .quicklinks li .blavatar{vertical-align:middle;margin:-3px 4px 0 0;padding:0}#wpadminbar .quicklinks li div.blavatar{background:url('../images/wpmini-blue.png') no-repeat;height:16px;width:16px;display:inline-block}#wpadminbar #wp-admin-bar-search .ab-item{padding:0}#wpadminbar #wp-admin-bar-search .ab-item{background:transparent}#wpadminbar #adminbarsearch{height:28px;padding:0 2px}#wpadminbar #adminbarsearch .adminbar-input{font:13px/24px sans-serif;height:24px;width:24px;border:0;padding:0 3px 0 23px;margin:0;color:#ccc;text-shadow:#444 0 -1px 0;background-color:rgba(255,255,255,0);background-image:url(../images/admin-bar-sprite.png?d=20120830);background-position:3px 2px;background-repeat:no-repeat;outline:0;cursor:pointer;-webkit-border-radius:3px;border-radius:3px;-webkit-box-shadow:none;box-shadow:none;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box;-webkit-transition-duration:400ms;-webkit-transition-property:width,background;-webkit-transition-timing-function:ease;-moz-transition-duration:400ms;-moz-transition-property:width,background;-moz-transition-timing-function:ease;-o-transition-duration:400ms;-o-transition-property:width,background;-o-transition-timing-function:ease}#wpadminbar.ie7 #adminbarsearch .adminbar-input{margin-top:1px;width:120px}#wpadminbar #adminbarsearch .adminbar-input:focus{color:#555;text-shadow:0 1px 0 #fff;width:200px;background-color:rgba(255,255,255,0.9);cursor:text}#wpadminbar.ie8 #adminbarsearch .adminbar-input{background-color:#464646}#wpadminbar.ie8 #adminbarsearch .adminbar-input:focus{background-color:#fff}#wpadminbar #adminbarsearch .adminbar-input::-webkit-input-placeholder{color:#ddd}#wpadminbar #adminbarsearch .adminbar-input:-moz-placeholder{color:#ddd}#wpadminbar #adminbarsearch .adminbar-button{display:none}#wpadminbar #wp-admin-bar-appearance{border-top:0;margin-top:-12px}#wpadminbar #wp-admin-bar-appearance{border-top:0;margin-top:-12px}#wpadminbar .ab-icon{position:relative;float:left;width:16px;height:16px;margin-top:6px}#wpadminbar .ab-label{margin-left:4px}#wp-admin-bar-wp-logo>.ab-item .ab-icon{width:20px;height:20px;margin-top:4px;background-image:url(../images/admin-bar-sprite.png?d=20120830);background-position:0 -76px;background-repeat:no-repeat}#wpadminbar.nojs #wp-admin-bar-wp-logo:hover>.ab-item .ab-icon,#wpadminbar #wp-admin-bar-wp-logo.hover>.ab-item .ab-icon{background-position:0 -104px}#wp-admin-bar-updates>.ab-item .ab-icon{background-image:url(../images/admin-bar-sprite.png?d=20120830);background-position:-2px -159px;background-repeat:no-repeat}#wp-admin-bar-comments>.ab-item .ab-icon{background-image:url(../images/admin-bar-sprite.png?d=20120830);background-position:-1px -134px;background-repeat:no-repeat}#wpadminbar span.count-0{display:none}#wpadminbar #wp-admin-bar-new-content>.ab-item .ab-icon{background-image:url(../images/admin-bar-sprite.png?d=20120830);background-position:-2px -182px;background-repeat:no-repeat}#wpadminbar.nojs #wp-admin-bar-new-content:hover>.ab-item .ab-icon,#wpadminbar #wp-admin-bar-new-content.hover>.ab-item .ab-icon{background-position:-2px -203px}.no-customize-support .hide-if-no-customize,.customize-support .hide-if-customize,.no-customize-support.wp-core-ui .hide-if-no-customize,.no-customize-support .wp-core-ui .hide-if-no-customize,.customize-support.wp-core-ui .hide-if-customize,.customize-support .wp-core-ui .hide-if-customize{display:none}@media print,(-o-min-device-pixel-ratio:5/4),(-webkit-min-device-pixel-ratio:1.25),(min-resolution:120dpi){#wpadminbar .menupop .menupop>.ab-item,#wpadminbar .ab-top-secondary .menupop .menupop>.ab-item,#wpadminbar #adminbarsearch .adminbar-input,#wp-admin-bar-wp-logo>.ab-item .ab-icon,#wp-admin-bar-updates>.ab-item .ab-icon,#wp-admin-bar-comments>.ab-item .ab-icon,#wpadminbar #wp-admin-bar-new-content>.ab-item .ab-icon{background-image:url(../images/admin-bar-sprite-2x.png?d=20120830);background-size:20px 220px}#wpadminbar .quicklinks li div.blavatar{background:url('../images/wpmini-blue-2x.png') no-repeat;background-size:16px 16px}}#wpadminbar .screen-reader-text,#wpadminbar .screen-reader-text span{position:absolute;left:-1000em;top:-1000em;height:1px;width:1px;overflow:hidden}#wpadminbar .screen-reader-shortcut{position:absolute;top:-1000em}#wpadminbar .screen-reader-shortcut:focus{left:6px;top:7px;height:auto;width:auto;display:block;font-size:14px;font-weight:bold;padding:15px 23px 14px;background:#f1f1f1;color:#21759b;text-shadow:none;border-radius:3px;z-index:100000;line-height:normal;-webkit-box-shadow:0 0 2px 2px rgba(0,0,0,.6);box-shadow:0 0 2px 2px rgba(0,0,0,.6);text-decoration:none}* html #wpadminbar{overflow:hidden;position:absolute}* html #wpadminbar .quicklinks ul li a{float:left}* html #wpadminbar .menupop a span{background-image:none}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-includes/css/buttons.css	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,288 @@
+/* ----------------------------------------------------------------------------
+
+
+WordPress-style Buttons
+=======================
+Create a button by adding the `.button` class to an element. For backwards
+compatibility, we support several other classes (such as `.button-secondary`),
+but these will *not* work with the stackable classes described below.
+
+Button Styles
+-------------
+To display a primary button style, add the `.button-primary` class to a button.
+
+Button Sizes
+------------
+Adjust a button's size by adding the `.button-large` or `.button-small` class.
+
+Button States
+-------------
+Lock the state of a button by adding the name of the pseudoclass as
+an actual class (e.g. `.hover` for `:hover`).
+
+
+TABLE OF CONTENTS:
+------------------
+ 1.0 - Button Layouts
+ 2.0 - Default Button Style
+ 3.0 - Primary Button Style
+ 4.0 - Button Groups
+
+---------------------------------------------------------------------------- */
+
+/* ----------------------------------------------------------------------------
+  1.0 - Button Layouts
+---------------------------------------------------------------------------- */
+
+.wp-core-ui .button,
+.wp-core-ui .button-primary,
+.wp-core-ui .button-secondary {
+	display: inline-block;
+	text-decoration: none;
+	font-size: 12px;
+	line-height: 23px;
+	height: 24px;
+	margin: 0;
+	padding: 0 10px 1px;
+	cursor: pointer;
+	border-width: 1px;
+	border-style: solid;
+	-webkit-border-radius: 3px;
+	-webkit-appearance: none;
+	border-radius: 3px;
+	white-space: nowrap;
+	-webkit-box-sizing: border-box;
+	-moz-box-sizing:    border-box;
+	box-sizing:         border-box;
+}
+
+/* Remove the dotted border on :focus and the extra padding in Firefox */
+.wp-core-ui button::-moz-focus-inner,
+.wp-core-ui input[type="reset"]::-moz-focus-inner,
+.wp-core-ui input[type="button"]::-moz-focus-inner,
+.wp-core-ui input[type="submit"]::-moz-focus-inner {
+	border-width: 1px 0;
+	border-style: solid none;
+	border-color: transparent;
+	padding: 0;
+}
+
+.wp-core-ui .button.button-large,
+.wp-core-ui .button-group.button-large .button {
+	height: 30px;
+    line-height: 28px;
+    padding: 0 12px 2px;
+}
+
+.wp-core-ui .button.button-small,
+.wp-core-ui .button-group.button-small .button {
+	height: 21px;
+	line-height: 20px;
+	padding: 0 8px 1px;
+}
+
+.wp-core-ui .button.button-hero,
+.wp-core-ui .button-group.button-hero .button {
+	font-size: 14px;
+	height: 46px;
+	line-height: 44px;
+	padding: 0 36px;
+}
+
+.wp-core-ui .button:active {
+	outline: none;
+}
+
+.wp-core-ui .button.hidden {
+	display: none;
+}
+
+/* ----------------------------------------------------------------------------
+  2.0 - Default Button Style
+---------------------------------------------------------------------------- */
+
+.wp-core-ui .button,
+.wp-core-ui .button-secondary {
+	background: #f3f3f3;
+	background-image: -webkit-gradient(linear, left top, left bottom, from(#fefefe), to(#f4f4f4));
+	background-image: -webkit-linear-gradient(top, #fefefe, #f4f4f4);
+	background-image:    -moz-linear-gradient(top, #fefefe, #f4f4f4);
+	background-image:      -o-linear-gradient(top, #fefefe, #f4f4f4);
+	background-image:   linear-gradient(to bottom, #fefefe, #f4f4f4);
+	border-color: #bbb;
+ 	color: #333;
+	text-shadow: 0 1px 0 #fff;
+}
+
+.wp-core-ui .button.hover,
+.wp-core-ui .button:hover,
+.wp-core-ui .button-secondary:hover,
+.wp-core-ui .button.focus,
+.wp-core-ui .button:focus,
+.wp-core-ui .button-secondary:focus {
+	background: #f3f3f3;
+	background-image: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#f3f3f3));
+	background-image: -webkit-linear-gradient(top, #fff, #f3f3f3);
+	background-image:    -moz-linear-gradient(top, #fff, #f3f3f3);
+	background-image:     -ms-linear-gradient(top, #fff, #f3f3f3);
+	background-image:      -o-linear-gradient(top, #fff, #f3f3f3);
+	background-image:   linear-gradient(to bottom, #fff, #f3f3f3);
+	border-color: #999;
+	color: #222;
+}
+
+.wp-core-ui .button.focus,
+.wp-core-ui .button:focus,
+.wp-core-ui .button-secondary:focus {
+	-webkit-box-shadow: 1px 1px 1px rgba(0,0,0,.2);
+	box-shadow: 1px 1px 1px rgba(0,0,0,.2);
+}
+
+.wp-core-ui .button.active,
+.wp-core-ui .button.active:hover,
+.wp-core-ui .button.active:focus,
+.wp-core-ui .button:active,
+.wp-core-ui .button-secondary:active {
+	background: #eee;
+	background-image: -webkit-gradient(linear, left top, left bottom, from(#f4f4f4), to(#fefefe));
+	background-image: -webkit-linear-gradient(top, #f4f4f4, #fefefe);
+	background-image:    -moz-linear-gradient(top, #f4f4f4, #fefefe);
+	background-image:     -ms-linear-gradient(top, #f4f4f4, #fefefe);
+	background-image:      -o-linear-gradient(top, #f4f4f4, #fefefe);
+	background-image:   linear-gradient(to bottom, #f4f4f4, #fefefe);
+	border-color: #999;
+	color: #333;
+	text-shadow: 0 -1px 0 #fff;
+	-webkit-box-shadow: inset 0 2px 5px -3px rgba( 0, 0, 0, 0.5 );
+ 	box-shadow: inset 0 2px 5px -3px rgba( 0, 0, 0, 0.5 );
+}
+
+.wp-core-ui .button[disabled],
+.wp-core-ui .button:disabled,
+.wp-core-ui .button-secondary[disabled],
+.wp-core-ui .button-secondary:disabled,
+.wp-core-ui .button-disabled {
+	color: #aaa !important;
+	border-color: #ddd !important;
+	background-image: -webkit-gradient(linear, left top, left bottom, from(#f9f9f9), to(#f4f4f4)) !important;
+	background-image: -webkit-linear-gradient(top, #f9f9f9, #f4f4f4) !important;
+	background-image:    -moz-linear-gradient(top, #f9f9f9, #f4f4f4) !important;
+	background-image:     -ms-linear-gradient(top, #f9f9f9, #f4f4f4) !important;
+	background-image:      -o-linear-gradient(top, #f9f9f9, #f4f4f4) !important;
+	background-image:   linear-gradient(to bottom, #f9f9f9, #f4f4f4) !important;
+	-webkit-box-shadow: none !important;
+	box-shadow:         none !important;
+	text-shadow: 0 1px 0 #fff !important;
+	cursor: default;
+}
+
+/* ----------------------------------------------------------------------------
+  3.0 - Primary Button Style
+---------------------------------------------------------------------------- */
+
+.wp-core-ui .button-primary {
+	background-color: #21759b;
+	background-image: -webkit-gradient(linear, left top, left bottom, from(#2a95c5), to(#21759b));
+	background-image: -webkit-linear-gradient(top, #2a95c5, #21759b);
+	background-image:    -moz-linear-gradient(top, #2a95c5, #21759b);
+	background-image:     -ms-linear-gradient(top, #2a95c5, #21759b);
+	background-image:      -o-linear-gradient(top, #2a95c5, #21759b);
+	background-image:   linear-gradient(to bottom, #2a95c5, #21759b);
+	border-color: #21759b;
+	border-bottom-color: #1e6a8d;
+	-webkit-box-shadow: inset 0 1px 0 rgba(120,200,230,0.5);
+ 	box-shadow: inset 0 1px 0 rgba(120,200,230,0.5);
+ 	color: #fff;
+	text-decoration: none;
+	text-shadow: 0 1px 0 rgba(0,0,0,0.1);
+}
+
+.wp-core-ui .button-primary.hover,
+.wp-core-ui .button-primary:hover,
+.wp-core-ui .button-primary.focus,
+.wp-core-ui .button-primary:focus {
+	background-color: #278ab7;
+	background-image: -webkit-gradient(linear, left top, left bottom, from(#2e9fd2), to(#21759b));
+	background-image: -webkit-linear-gradient(top, #2e9fd2, #21759b);
+	background-image:    -moz-linear-gradient(top, #2e9fd2, #21759b);
+	background-image:     -ms-linear-gradient(top, #2e9fd2, #21759b);
+	background-image:      -o-linear-gradient(top, #2e9fd2, #21759b);
+	background-image:   linear-gradient(to bottom, #2e9fd2, #21759b);
+	border-color: #1b607f;
+	-webkit-box-shadow: inset 0 1px 0 rgba(120,200,230,0.6);
+ 	box-shadow: inset 0 1px 0 rgba(120,200,230,0.6);
+	color: #fff;
+	text-shadow: 0 -1px 0 rgba(0,0,0,0.3);
+}
+
+.wp-core-ui .button-primary.focus,
+.wp-core-ui .button-primary:focus {
+	border-color: #0e3950;
+	-webkit-box-shadow: inset 0 1px 0 rgba(120,200,230,0.6), 1px 1px 2px rgba(0,0,0,0.4);
+	box-shadow: inset 0 1px 0 rgba(120,200,230,0.6), 1px 1px 2px rgba(0,0,0,0.4);
+}
+
+.wp-core-ui .button-primary.active,
+.wp-core-ui .button-primary.active:hover,
+.wp-core-ui .button-primary.active:focus,
+.wp-core-ui .button-primary:active {
+	background: #1b607f;
+	background-image: -webkit-gradient(linear, left top, left bottom, from(#21759b), to(#278ab7));
+	background-image: -webkit-linear-gradient(top, #21759b, #278ab7);
+	background-image:    -moz-linear-gradient(top, #21759b, #278ab7);
+	background-image:     -ms-linear-gradient(top, #21759b, #278ab7);
+	background-image:      -o-linear-gradient(top, #21759b, #278ab7);
+	background-image:   linear-gradient(to bottom, #21759b, #278ab7);
+	border-color: #124560 #2382ae #2382ae #2382ae;
+	color: rgba(255,255,255,0.95);
+	-webkit-box-shadow: inset 0 1px 0 rgba(0,0,0,0.1);
+ 	box-shadow: inset 0 1px 0 rgba(0,0,0,0.1);
+	text-shadow: 0 1px 0 rgba(0,0,0,0.1);
+}
+
+.wp-core-ui .button-primary[disabled],
+.wp-core-ui .button-primary:disabled,
+.wp-core-ui .button-primary-disabled {
+	color: #94cde7 !important;
+	background: #298cba !important;
+	border-color: #1b607f !important;
+	-webkit-box-shadow: none !important;
+	box-shadow:         none !important;
+	text-shadow: 0 -1px 0 rgba(0,0,0,0.1) !important;
+	cursor: default;
+}
+
+/* ----------------------------------------------------------------------------
+  4.0 - Button Groups
+---------------------------------------------------------------------------- */
+
+.wp-core-ui .button-group {
+	position: relative;
+	display: inline-block;
+	white-space: nowrap;
+	font-size: 0;
+	vertical-align: middle;
+}
+
+.wp-core-ui .button-group > .button {
+	display: inline-block;
+	border-radius: 0;
+	margin-right: -1px;
+	z-index: 10;
+}
+
+.wp-core-ui .button-group > .button-primary {
+	z-index: 100;
+}
+
+.wp-core-ui .button-group > .button:hover {
+	z-index: 20;
+}
+
+.wp-core-ui .button-group > .button:first-child {
+	border-radius: 3px 0 0 3px;
+}
+
+.wp-core-ui .button-group > .button:last-child {
+	border-radius: 0 3px 3px 0;
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-includes/css/buttons.min.css	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,1 @@
+.wp-core-ui .button,.wp-core-ui .button-primary,.wp-core-ui .button-secondary{display:inline-block;text-decoration:none;font-size:12px;line-height:23px;height:24px;margin:0;padding:0 10px 1px;cursor:pointer;border-width:1px;border-style:solid;-webkit-border-radius:3px;-webkit-appearance:none;border-radius:3px;white-space:nowrap;-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.wp-core-ui button::-moz-focus-inner,.wp-core-ui input[type="reset"]::-moz-focus-inner,.wp-core-ui input[type="button"]::-moz-focus-inner,.wp-core-ui input[type="submit"]::-moz-focus-inner{border-width:1px 0;border-style:solid none;border-color:transparent;padding:0}.wp-core-ui .button.button-large,.wp-core-ui .button-group.button-large .button{height:30px;line-height:28px;padding:0 12px 2px}.wp-core-ui .button.button-small,.wp-core-ui .button-group.button-small .button{height:21px;line-height:20px;padding:0 8px 1px}.wp-core-ui .button.button-hero,.wp-core-ui .button-group.button-hero .button{font-size:14px;height:46px;line-height:44px;padding:0 36px}.wp-core-ui .button:active{outline:0}.wp-core-ui .button.hidden{display:none}.wp-core-ui .button,.wp-core-ui .button-secondary{background:#f3f3f3;background-image:-webkit-gradient(linear,left top,left bottom,from(#fefefe),to(#f4f4f4));background-image:-webkit-linear-gradient(top,#fefefe,#f4f4f4);background-image:-moz-linear-gradient(top,#fefefe,#f4f4f4);background-image:-o-linear-gradient(top,#fefefe,#f4f4f4);background-image:linear-gradient(to bottom,#fefefe,#f4f4f4);border-color:#bbb;color:#333;text-shadow:0 1px 0 #fff}.wp-core-ui .button.hover,.wp-core-ui .button:hover,.wp-core-ui .button-secondary:hover,.wp-core-ui .button.focus,.wp-core-ui .button:focus,.wp-core-ui .button-secondary:focus{background:#f3f3f3;background-image:-webkit-gradient(linear,left top,left bottom,from(#fff),to(#f3f3f3));background-image:-webkit-linear-gradient(top,#fff,#f3f3f3);background-image:-moz-linear-gradient(top,#fff,#f3f3f3);background-image:-ms-linear-gradient(top,#fff,#f3f3f3);background-image:-o-linear-gradient(top,#fff,#f3f3f3);background-image:linear-gradient(to bottom,#fff,#f3f3f3);border-color:#999;color:#222}.wp-core-ui .button.focus,.wp-core-ui .button:focus,.wp-core-ui .button-secondary:focus{-webkit-box-shadow:1px 1px 1px rgba(0,0,0,.2);box-shadow:1px 1px 1px rgba(0,0,0,.2)}.wp-core-ui .button.active,.wp-core-ui .button.active:hover,.wp-core-ui .button.active:focus,.wp-core-ui .button:active,.wp-core-ui .button-secondary:active{background:#eee;background-image:-webkit-gradient(linear,left top,left bottom,from(#f4f4f4),to(#fefefe));background-image:-webkit-linear-gradient(top,#f4f4f4,#fefefe);background-image:-moz-linear-gradient(top,#f4f4f4,#fefefe);background-image:-ms-linear-gradient(top,#f4f4f4,#fefefe);background-image:-o-linear-gradient(top,#f4f4f4,#fefefe);background-image:linear-gradient(to bottom,#f4f4f4,#fefefe);border-color:#999;color:#333;text-shadow:0 -1px 0 #fff;-webkit-box-shadow:inset 0 2px 5px -3px rgba(0,0,0,0.5);box-shadow:inset 0 2px 5px -3px rgba(0,0,0,0.5)}.wp-core-ui .button[disabled],.wp-core-ui .button:disabled,.wp-core-ui .button-secondary[disabled],.wp-core-ui .button-secondary:disabled,.wp-core-ui .button-disabled{color:#aaa!important;border-color:#ddd!important;background-image:-webkit-gradient(linear,left top,left bottom,from(#f9f9f9),to(#f4f4f4))!important;background-image:-webkit-linear-gradient(top,#f9f9f9,#f4f4f4)!important;background-image:-moz-linear-gradient(top,#f9f9f9,#f4f4f4)!important;background-image:-ms-linear-gradient(top,#f9f9f9,#f4f4f4)!important;background-image:-o-linear-gradient(top,#f9f9f9,#f4f4f4)!important;background-image:linear-gradient(to bottom,#f9f9f9,#f4f4f4)!important;-webkit-box-shadow:none!important;box-shadow:none!important;text-shadow:0 1px 0 #fff!important;cursor:default}.wp-core-ui .button-primary{background-color:#21759b;background-image:-webkit-gradient(linear,left top,left bottom,from(#2a95c5),to(#21759b));background-image:-webkit-linear-gradient(top,#2a95c5,#21759b);background-image:-moz-linear-gradient(top,#2a95c5,#21759b);background-image:-ms-linear-gradient(top,#2a95c5,#21759b);background-image:-o-linear-gradient(top,#2a95c5,#21759b);background-image:linear-gradient(to bottom,#2a95c5,#21759b);border-color:#21759b;border-bottom-color:#1e6a8d;-webkit-box-shadow:inset 0 1px 0 rgba(120,200,230,0.5);box-shadow:inset 0 1px 0 rgba(120,200,230,0.5);color:#fff;text-decoration:none;text-shadow:0 1px 0 rgba(0,0,0,0.1)}.wp-core-ui .button-primary.hover,.wp-core-ui .button-primary:hover,.wp-core-ui .button-primary.focus,.wp-core-ui .button-primary:focus{background-color:#278ab7;background-image:-webkit-gradient(linear,left top,left bottom,from(#2e9fd2),to(#21759b));background-image:-webkit-linear-gradient(top,#2e9fd2,#21759b);background-image:-moz-linear-gradient(top,#2e9fd2,#21759b);background-image:-ms-linear-gradient(top,#2e9fd2,#21759b);background-image:-o-linear-gradient(top,#2e9fd2,#21759b);background-image:linear-gradient(to bottom,#2e9fd2,#21759b);border-color:#1b607f;-webkit-box-shadow:inset 0 1px 0 rgba(120,200,230,0.6);box-shadow:inset 0 1px 0 rgba(120,200,230,0.6);color:#fff;text-shadow:0 -1px 0 rgba(0,0,0,0.3)}.wp-core-ui .button-primary.focus,.wp-core-ui .button-primary:focus{border-color:#0e3950;-webkit-box-shadow:inset 0 1px 0 rgba(120,200,230,0.6),1px 1px 2px rgba(0,0,0,0.4);box-shadow:inset 0 1px 0 rgba(120,200,230,0.6),1px 1px 2px rgba(0,0,0,0.4)}.wp-core-ui .button-primary.active,.wp-core-ui .button-primary.active:hover,.wp-core-ui .button-primary.active:focus,.wp-core-ui .button-primary:active{background:#1b607f;background-image:-webkit-gradient(linear,left top,left bottom,from(#21759b),to(#278ab7));background-image:-webkit-linear-gradient(top,#21759b,#278ab7);background-image:-moz-linear-gradient(top,#21759b,#278ab7);background-image:-ms-linear-gradient(top,#21759b,#278ab7);background-image:-o-linear-gradient(top,#21759b,#278ab7);background-image:linear-gradient(to bottom,#21759b,#278ab7);border-color:#124560 #2382ae #2382ae #2382ae;color:rgba(255,255,255,0.95);-webkit-box-shadow:inset 0 1px 0 rgba(0,0,0,0.1);box-shadow:inset 0 1px 0 rgba(0,0,0,0.1);text-shadow:0 1px 0 rgba(0,0,0,0.1)}.wp-core-ui .button-primary[disabled],.wp-core-ui .button-primary:disabled,.wp-core-ui .button-primary-disabled{color:#94cde7!important;background:#298cba!important;border-color:#1b607f!important;-webkit-box-shadow:none!important;box-shadow:none!important;text-shadow:0 -1px 0 rgba(0,0,0,0.1)!important;cursor:default}.wp-core-ui .button-group{position:relative;display:inline-block;white-space:nowrap;font-size:0;vertical-align:middle}.wp-core-ui .button-group>.button{display:inline-block;border-radius:0;margin-right:-1px;z-index:10}.wp-core-ui .button-group>.button-primary{z-index:100}.wp-core-ui .button-group>.button:hover{z-index:20}.wp-core-ui .button-group>.button:first-child{border-radius:3px 0 0 3px}.wp-core-ui .button-group>.button:last-child{border-radius:0 3px 3px 0}
\ No newline at end of file
--- a/web/wp-includes/css/editor.css	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/css/editor.css	Wed Dec 19 17:46:52 2012 -0800
@@ -1,1 +1,2114 @@
-.wp_themeSkin table,.wp_themeSkin tbody,.wp_themeSkin a,.wp_themeSkin img,.wp_themeSkin tr,.wp_themeSkin div,.wp_themeSkin td,.wp_themeSkin iframe,.wp_themeSkin span,.wp_themeSkin *,.wp_themeSkin .mceText{border:0;margin:0;padding:0;white-space:nowrap;text-decoration:none;font-weight:normal;cursor:default;vertical-align:baseline;width:auto;border-collapse:separate}.wp_themeSkin a:hover,.wp_themeSkin a:link,.wp_themeSkin a:visited,.wp_themeSkin a:active{text-decoration:none;font-weight:normal;cursor:default}.wp_themeSkin table td{vertical-align:middle}.wp_themeSkin *,.wp_themeSkin a:hover,.wp_themeSkin a:link,.wp_themeSkin a:visited,.wp_themeSkin a:active{color:#000}.wp_themeSkin iframe{display:block}.wp_themeSkin #mce_fullscreen_ifr{background-color:#fff}.wp_themeSkin .mceToolbar{padding:1px}.wp_themeSkin .mceExternalToolbar{position:absolute;border-bottom:0;display:none}.wp_themeSkin .mceExternalToolbar td.mceToolbar{padding-right:13px}.wp_themeSkin .mceExternalClose{position:absolute;top:3px;right:3px;width:7px;height:7px;background:url("../js/tinymce/themes/advanced/img/icons.gif") -820px 0}.wp_themeSkin table.mceToolbar,.wp_themeSkin tr.mceFirst .mceToolbar tr td,.wp_themeSkin tr.mceLast .mceToolbar tr td{border:0;margin:0;padding:0}.wp_themeSkin table.mceLayout{border:0}.wp_themeSkin .mceStatusbar{display:block;font-family:Arial,"Bitstream Vera Sans",Helvetica,Verdana,sans-serif;font-size:12px;line-height:16px;padding:0 0 0 8px;overflow:visible;height:20px;border-top:1px solid #dfdfdf;color:#000;background-color:#f5f5f5}.rtl .wp_themeSkin .mceStatusbar{padding:0 8px 0 0}.wp_themeSkin .mceStatusbar *{color:#555}.wp_themeSkin .mceStatusbar div{float:left;padding:2px}.rtl .wp_themeSkin .mceStatusbar div{float:right}.wp_themeSkin .mceStatusbar a.mceResize{display:block;float:right;background:url("../js/tinymce/themes/advanced/img/icons.gif") -800px 0;width:20px;height:20px;cursor:se-resize}.rtl .wp_themeSkin .mceStatusbar a.mceResize{float:left}.wp_themeSkin .mceStatusbar a:hover{text-decoration:underline}.wp_themeSkin table.mceToolbar{margin:0 6px 2px}.wp_themeSkin #content_toolbar1{margin-top:2px}.wp_themeSkin .mceToolbar .mceToolbarEndListBox span{display:none}.wp_themeSkin span.mceIcon,.wp_themeSkin img.mceIcon{display:block;width:20px;height:20px}.wp_themeSkin .mceIcon{background:url("../js/tinymce/themes/advanced/img/icons.gif") no-repeat 20px 20px}.wp_themeSkin .mceButton{display:block;width:20px;height:20px;cursor:default;padding:1px 2px;margin:1px;-webkit-border-radius:2px;border-radius:2px;-webkit-box-shadow:0 1px 0 rgba(0,0,0,0.15),inset 0 0 2px 1px #fff;-moz-box-shadow:0 1px 0 rgba(0,0,0,0.15),inset 0 0 2px 1px #fff;box-shadow:0 1px 0 rgba(0,0,0,0.15),inset 0 0 2px 1px #fff}.wp_themeSkin a.mceButtonEnabled:hover{background-image:inherit 0 -10px}.wp_themeSkin .mceOldBoxModel a.mceButton span,.wp_themeSkin .mceOldBoxModel a.mceButton img{margin:0 0 0 1px}.wp_themeSkin a.mceButton:active,.wp_themeSkin a.mceButtonActive,.wp_themeSkin a.mceButtonActive:hover,.wp_themeSkin a.mceButtonSelected{-webkit-box-shadow:0 1px 1px rgba(0,0,0,0.15),inset 0 0 2px 1px #fff;-moz-box-shadow:0 1px 0 rgba(0,0,0,0.15),inset 0 0 2px 1px #fff;box-shadow:0 1px 0 rgba(0,0,0,0.15),inset 0 0 2px 1px #fff}.wp_themeSkin .mceButtonDisabled .mceIcon{opacity:.5;filter:alpha(opacity=50)}.wp_themeSkin .mceSeparator{height:24px;width:1px;display:block;background:transparent;overflow:hidden;margin:0 2px}.wp_themeSkin .mceListBox,.wp_themeSkin .mceListBox a{display:block}.wp_themeSkin .mceListBox .mceText{padding:1px 2px 1px 5px;text-align:left;text-decoration:none;width:70px;-webkit-border-bottom-left-radius:2px;-webkit-border-top-left-radius:2px;border-bottom-left-radius:2px;border-top-left-radius:2px;-webkit-box-shadow:0 1px 0 rgba(0,0,0,0.15),inset 0 0 2px 1px #fff;-moz-box-shadow:0 1px 0 rgba(0,0,0,0.15),inset 0 0 2px 1px #fff;box-shadow:0 1px 0 rgba(0,0,0,0.15),inset 0 0 2px 1px #fff;font-family:Arial,"Bitstream Vera Sans",Helvetica,Verdana,sans-serif;font-size:12px;height:20px;line-height:20px;overflow:hidden}.wp_themeSkin .mceListBox{margin:1px;direction:ltr}.wp_themeSkin .mceListBox .mceOpen{width:14px;height:20px;border-collapse:separate;padding:1px;-webkit-border-bottom-left-radius:0;-webkit-border-top-left-radius:0;border-bottom-left-radius:0;border-top-left-radius:0;-webkit-box-shadow:0 1px 0 rgba(0,0,0,0.15),inset 0 0 2px 1px #fff;-moz-box-shadow:0 1px 0 rgba(0,0,0,0.15),inset 0 0 2px 1px #fff;box-shadow:0 1px 0 rgba(0,0,0,0.15),inset 0 0 2px 1px #fff}.wp_themeSkin .mceListBox .mceOpen span{display:block;width:14px;height:20px;background-image:url("../images/down_arrow.gif");background-position:2px 1px;background-repeat:no-repeat}.wp_themeSkin table.mceListBoxEnabled:hover .mceText,.wp_themeSkin .mceListBoxHover .mceText,.wp_themeSkin .mceListBoxSelected .mceText,.wp_themeSkin table.mceListBoxEnabled:hover .mceOpen,.wp_themeSkin .mceListBoxHover .mceOpen,.wp_themeSkin .mceListBoxSelected .mceOpen{background-image:none}.wp_themeSkin .mceListBoxDisabled .mceText{color:gray}.wp_themeSkin .mceListBoxMenu{overflow:auto;overflow-x:hidden}.wp_themeSkin .mceOldBoxModel .mceListBox .mceText{height:22px}.wp_themeSkin select.mceListBox{font-family:Arial,"Bitstream Vera Sans",Helvetica,Verdana,sans-serif;font-size:12px;border-color:#b2b2b2;background-color:#fff}.wp_themeSkin .mceSplitButton a,.wp_themeSkin .mceSplitButton span{display:block;height:20px}.wp_themeSkin .mceSplitButton{display:block;margin:1px;direction:ltr}.wp_themeSkin table.mceSplitButton td{padding:2px;-webkit-border-radius:2px;border-radius:2px}.wp_themeSkin table.mceSplitButton td a{-webkit-box-shadow:0 1px 0 rgba(0,0,0,0.15),inset 0 0 2px 1px #fff;-moz-box-shadow:0 1px 0 rgba(0,0,0,0.15),inset 0 0 2px 1px #fff;box-shadow:0 1px 0 rgba(0,0,0,0.15),inset 0 0 2px 1px #fff}.wp_themeSkin table.mceSplitButton:hover td{background-image:inherit 0 -10px}.wp_themeSkin .mceSplitButton a.mceAction{height:20px;width:20px;padding:1px 2px}.wp_themeSkin .mceSplitButton span.mceAction{background-image:url("../js/tinymce/themes/advanced/img/icons.gif");background-repeat:no-repeat;background-color:transparent;width:20px}.wp_themeSkin .mceSplitButton a.mceOpen{width:10px;height:20px;background-image:url("../images/down_arrow.gif");background-position:1px 2px;background-repeat:no-repeat;padding:1px;border-left:0 none!important}.wp_themeSkin .mceSplitButton span.mceOpen{display:none}.wp_themeSkin .mceSplitButtonDisabled .mceAction{opacity:.3;filter:alpha(opacity=30)}.wp_themeSkin .mceListBox a.mceText,.wp_themeSkin .mceSplitButton a.mceAction{-webkit-border-bottom-left-radius:2px;-webkit-border-top-left-radius:2px;border-bottom-left-radius:2px;border-top-left-radius:2px}.wp_themeSkin .mceSplitButton a.mceOpen,.wp_themeSkin .mceListBox a.mceOpen{-webkit-border-bottom-right-radius:2px;-webkit-border-top-right-radius:2px;border-bottom-right-radius:2px;border-top-right-radius:2px}.wp_themeSkin span.mce_undo,.wp_themeSkin span.mce_redo,.wp_themeSkin span.mce_bullist,.wp_themeSkin span.mce_numlist,.wp_themeSkin span.mce_blockquote,.wp_themeSkin span.mce_charmap,.wp_themeSkin span.mce_bold,.wp_themeSkin span.mce_italic,.wp_themeSkin span.mce_underline,.wp_themeSkin span.mce_justifyleft,.wp_themeSkin span.mce_justifyright,.wp_themeSkin span.mce_justifycenter,.wp_themeSkin span.mce_justifyfull,.wp_themeSkin span.mce_indent,.wp_themeSkin span.mce_outdent,.wp_themeSkin span.mce_link,.wp_themeSkin span.mce_unlink,.wp_themeSkin span.mce_help,.wp_themeSkin span.mce_removeformat,.wp_themeSkin span.mce_fullscreen,.wp_themeSkin span.mce_wp_fullscreen,.wp_themeSkin span.mce_media,.wp_themeSkin span.mce_pastetext,.wp_themeSkin span.mce_pasteword,.wp_themeSkin span.mce_wp_help,.wp_themeSkin span.mce_wp_adv,.wp_themeSkin span.mce_wp_more,.wp_themeSkin span.mce_strikethrough,.wp_themeSkin span.mce_spellchecker,.wp_themeSkin span.mce_forecolor,.wp_themeSkin .mce_forecolorpicker,.wp_themeSkin .mceSplitButton .mce_spellchecker span.mce_spellchecker,.wp_themeSkin .mceSplitButton .mce_forecolor span.mce_forecolor,.wp_themeSkin .mceSplitButton span.mce_numlist,.wp_themeSkin .mceSplitButton span.mce_bullist{background-image:url(../images/wpicons.png)}.wp_themeSkin div.mceColorSplitMenu table{background-color:#ebebeb;border-color:#b2b2b2}.wp_themeSkin .mceColorSplitMenu td{padding:2px}.wp_themeSkin .mceColorSplitMenu a{display:block;width:9px;height:9px;overflow:hidden;border-color:#b2b2b2}.wp_themeSkin .mceColorSplitMenu td.mceMoreColors{padding:1px 3px 1px 1px}.wp_themeSkin .mceColorSplitMenu a.mceMoreColors{width:100%;height:auto;text-align:center;font-family:Tahoma,Verdana,Arial,Helvetica;font-size:11px;line-height:20px;border-color:#fff}.wp_themeSkin .mceColorPreview{margin:-5px 0 0 2px;width:16px;height:4px;overflow:hidden}.wp_themeSkin .mceMenu{position:absolute;left:0;top:0;z-index:1000;border-color:#ddd}.wp_themeSkin .mceNoIcons span.mceIcon{width:0}.wp_themeSkin .mceNoIcons a .mceText{padding-left:10px}.wp_themeSkin .mceMenu table{background-color:#ebeaeb}.wp_themeSkin .mceMenu a,.wp_themeSkin .mceMenu span,.wp_themeSkin .mceMenu{display:block}.wp_themeSkin .mceMenu td{height:20px;overflow:hidden}.wp_themeSkin .mceMenu a{position:relative;padding:3px 0 4px 0;text-decoration:none!important}.wp_themeSkin .mceMenu .mceText{position:relative;display:block;font-family:Tahoma,Verdana,Arial,Helvetica;cursor:default;margin:0;padding:0 25px;color:#000}.wp_themeSkin .mceMenu span.mceText,.wp_themeSkin .mceMenu .mcePreview{font-size:12px}.wp_themeSkin .mceMenu pre.mceText{font-family:Monospace}.wp_themeSkin .mceMenu .mceIcon{position:absolute;top:0;left:0;width:22px}.wp_themeSkin .mceMenu .mceMenuItemEnabled a:hover,.wp_themeSkin .mceMenu .mceMenuItemActive{background-color:#f5f5f5}.wp_themeSkin td.mceMenuItemSeparator{height:1px;background-color:#aaa}.wp_themeSkin .mceMenuItemTitle a{border-top:0;border-right:0;border-left:0;border-bottom:1px solid #aaa;text-decoration:none!important;background-color:#ccc}.wp_themeSkin .mceMenuItemTitle span.mceText{font-weight:bold;padding-left:4px;color:#000}.wp_themeSkin .mceMenuItemSelected .mceIcon{background:url("../js/tinymce/themes/advanced/skins/default/img/menu_check.gif");color:#888}.wp_themeSkin .mceNoIcons .mceMenuItemSelected a{background:url("../js/tinymce/themes/advanced/skins/default/img/menu_arrow.gif") no-repeat -6px center}.wp_themeSkin .mceMenu span.mceMenuLine{display:none}.wp_themeSkin .mceMenuItemSub a{background:url("../js/tinymce/themes/advanced/skins/default/img/menu_arrow.gif") no-repeat top right}.wp_themeSkin .mceBlocker{position:absolute;left:0;top:0;z-index:1000;opacity:.5;filter:alpha(opacity=50);background:#FFF}.wp_themeSkin .mceProgress{position:absolute;left:0;top:0;z-index:1001;background:url("../js/tinymce/themes/advanced/skins/default/img/progress.gif") no-repeat;width:32px;height:32px;margin:-16px 0 0 -16px}.wp_themeSkin .mcePlaceHolder{border:1px dotted gray}.wp_themeSkin .mce_address span.mceText{font-style:italic}.wp_themeSkin .mce_pre span.mceText{font-family:monospace}.wp_themeSkin .mce_h1 span.mceText{font-weight:bolder;font-size:17px}.wp_themeSkin .mce_h2 span.mceText{font-weight:bolder;font-size:16px}.wp_themeSkin .mce_h3 span.mceText{font-weight:bolder;font-size:15px}.wp_themeSkin .mce_h4 span.mceText{font-weight:bolder;font-size:14px}.wp_themeSkin .mce_h5 span.mceText{font-weight:bolder;font-size:13px}.wp_themeSkin .mce_h6 span.mceText{font-weight:bolder;font-size:12px}.wp_themeSkin span.mce_undo{background-position:-500px -20px}.wp_themeSkin .mceButtonEnabled:hover span.mce_undo,.wp_themeSkin .mceButtonActive span.mce_undo{background-position:-500px 0}.wp_themeSkin span.mce_redo{background-position:-480px -20px}.wp_themeSkin .mceButtonEnabled:hover span.mce_redo,.wp_themeSkin .mceButtonActive span.mce_redo{background-position:-480px 0}.wp_themeSkin span.mce_bullist{background-position:-40px -20px}.wp_themeSkin .mceButtonEnabled:hover span.mce_bullist,.wp_themeSkin .mceButtonActive span.mce_bullist,.wp_themeSkin .mceSplitButton:hover span.mce_bullist{background-position:-40px 0}.wp_themeSkin span.mce_numlist{background-position:-61px -20px}.wp_themeSkin .mceButtonEnabled:hover span.mce_numlist,.wp_themeSkin .mceButtonActive span.mce_numlist,.wp_themeSkin .mceSplitButton:hover span.mce_numlist{background-position:-61px 0}.wp_themeSkin span.mce_blockquote{background-position:-80px -20px}.wp_themeSkin .mceButtonEnabled:hover span.mce_blockquote,.wp_themeSkin .mceButtonActive span.mce_blockquote{background-position:-80px 0}.wp_themeSkin span.mce_charmap{background-position:-420px -20px}.wp_themeSkin .mceButtonEnabled:hover span.mce_charmap,.wp_themeSkin .mceButtonActive span.mce_charmap{background-position:-420px 0}.wp_themeSkin span.mce_bold{background-position:-1px -20px}.wp_themeSkin .mceButtonEnabled:hover span.mce_bold,.wp_themeSkin .mceButtonActive span.mce_bold{background-position:-1px 0}.wp_themeSkin span.mce_italic{background-position:-21px -20px}.wp_themeSkin .mceButtonEnabled:hover span.mce_italic,.wp_themeSkin .mceButtonActive span.mce_italic{background-position:-21px 0}.wp_themeSkin span.mce_underline{background-position:-280px -19px}.wp_themeSkin .mceButtonEnabled:hover span.mce_underline,.wp_themeSkin .mceButtonActive span.mce_underline{background-position:-280px 1px}.wp_themeSkin span.mce_justifyleft{background-position:-100px -19px}.wp_themeSkin .mceButtonEnabled:hover span.mce_justifyleft,.wp_themeSkin .mceButtonActive span.mce_justifyleft{background-position:-100px 1px}.wp_themeSkin span.mce_justifyright{background-position:-141px -19px}.wp_themeSkin .mceButtonEnabled:hover span.mce_justifyright,.wp_themeSkin .mceButtonActive span.mce_justifyright{background-position:-141px 1px}.wp_themeSkin span.mce_justifycenter{background-position:-120px -19px}.wp_themeSkin .mceButtonEnabled:hover span.mce_justifycenter,.wp_themeSkin .mceButtonActive span.mce_justifycenter{background-position:-120px 1px}.wp_themeSkin span.mce_justifyfull{background-position:-300px -19px}.wp_themeSkin .mceButtonEnabled:hover span.mce_justifyfull,.wp_themeSkin .mceButtonActive span.mce_justifyfull{background-position:-300px 1px}.wp_themeSkin span.mce_indent{background-position:-461px -19px}.wp_themeSkin .mceButtonEnabled:hover span.mce_indent,.wp_themeSkin .mceButtonActive span.mce_indent{background-position:-461px 1px}.wp_themeSkin span.mce_outdent{background-position:-440px -19px}.wp_themeSkin .mceButtonEnabled:hover span.mce_outdent,.wp_themeSkin .mceButtonActive span.mce_outdent{background-position:-440px 1px}.wp_themeSkin span.mce_link{background-position:-161px -20px}.wp_themeSkin .mceButtonEnabled:hover span.mce_link,.wp_themeSkin .mceButtonActive span.mce_link{background-position:-161px 0}.wp_themeSkin span.mce_unlink{background-position:-180px -20px}.wp_themeSkin .mceButtonEnabled:hover span.mce_unlink,.wp_themeSkin .mceButtonActive span.mce_unlink{background-position:-180px 0}.wp_themeSkin span.mce_help{background-position:-521px -20px}.wp_themeSkin .mceButtonEnabled:hover span.mce_help,.wp_themeSkin .mceButtonActive span.mce_help{background-position:-521px 0}.wp_themeSkin span.mce_removeformat{background-position:-381px -20px}.wp_themeSkin .mceButtonEnabled:hover span.mce_removeformat,.wp_themeSkin .mceButtonActive span.mce_removeformat{background-position:-381px 0}.wp_themeSkin span.mce_strikethrough{background-position:-540px -18px}.wp_themeSkin .mceButtonEnabled:hover span.mce_strikethrough,.wp_themeSkin .mceButtonActive span.mce_strikethrough{background-position:-540px 0}.wp_themeSkin .mceSplitButton .mce_forecolor span.mce_forecolor{background-position:-321px -22px}.wp_themeSkin .mceSplitButtonEnabled:hover span.mce_forecolor,.wp_themeSkin .mceSplitButtonActive span.mce_forecolor{background-position:-321px -2px}.wp_themeSkin .mce_forecolorpicker{background-position:-320px -20px}.wp_themeSkin span.mce_fullscreen{background-position:-240px -20px}.wp_themeSkin .mceButtonEnabled:hover span.mce_fullscreen,.wp_themeSkin .mceButtonActive span.mce_fullscreen{background-position:-240px 0}.wp_themeSkin span.mce_wp_fullscreen{background-position:-240px -20px}.wp_themeSkin .mceButtonEnabled:hover span.mce_wp_fullscreen,.wp_themeSkin .mceButtonActive span.mce_wp_fullscreen{background-position:-240px 0}.wp_themeSkin span.mce_media{background-position:-401px -20px}.wp_themeSkin .mceButtonEnabled:hover span.mce_media,.wp_themeSkin .mceButtonActive span.mce_media{background-position:-401px 0}.wp_themeSkin span.mce_pastetext{background-position:-340px -20px}.wp_themeSkin .mceButtonEnabled:hover span.mce_pastetext,.wp_themeSkin .mceButtonActive span.mce_pastetext{background-position:-340px 0}.wp_themeSkin span.mce_pasteword{background-position:-360px -20px}.wp_themeSkin .mceButtonEnabled:hover span.mce_pasteword,.wp_themeSkin .mceButtonActive span.mce_pasteword{background-position:-360px 0}.wp_themeSkin span.mce_spellchecker{background-position:-220px -19px}.wp_themeSkin .mceButtonEnabled:hover span.mce_spellchecker,.wp_themeSkin .mceSplitButtonEnabled:hover span.mce_spellchecker,.wp_themeSkin .mceButtonActive span.mce_spellchecker,.wp_themeSkin .mceSplitButtonActive span.mce_spellchecker{background-position:-220px 1px}.wp_themeSkin span.mce_wp_help{background-position:-521px -20px}.wp_themeSkin .mceButtonEnabled:hover span.mce_wp_help,.wp_themeSkin .mceButtonActive span.mce_wp_help{background-position:-521px 0}.wp_themeSkin span.mce_wp_adv{background-position:-260px -20px}.wp_themeSkin .mceButtonEnabled:hover span.mce_wp_adv,.wp_themeSkin .mceButtonActive span.mce_wp_adv{background-position:-260px 0}.wp_themeSkin span.mce_wp_more{background-position:-201px -20px}.wp_themeSkin .mceButtonEnabled:hover span.mce_wp_more,.wp_themeSkin .mceButtonActive span.mce_wp_more{background-position:-201px 0}.wp_themeSkin span.mce_cleanup{background-position:-380px -20px}.wp_themeSkin span.mce_anchor{background-position:-200px 0}.wp_themeSkin span.mce_sub{background-position:-600px 0}.wp_themeSkin span.mce_sup{background-position:-620px 0}.wp_themeSkin span.mce_newdocument{background-position:-520px 0}.wp_themeSkin span.mce_image{background-position:-380px 0}.wp_themeSkin span.mce_code{background-position:-260px 0}.wp_themeSkin span.mce_hr{background-position:-360px 0}.wp_themeSkin span.mce_visualaid{background-position:-660px 0}.wp_themeSkin span.mce_paste{background-position:-560px 0}.wp_themeSkin span.mce_copy{background-position:-700px 0}.wp_themeSkin span.mce_cut{background-position:-680px 0}.wp_themeSkin .mce_backcolor span.mceAction{background-position:-760px 0}.wp_themeSkin .mce_backcolorpicker{background-position:-760px 0}.wp_themeSkin span.mce_advhr{background-position:-0px -20px}.wp_themeSkin span.mce_ltr{background-position:-20px -20px}.wp_themeSkin span.mce_rtl{background-position:-40px -20px}.wp_themeSkin span.mce_emotions{background-position:-60px -20px}.wp_themeSkin span.mce_fullpage{background-position:-80px -20px}.wp_themeSkin span.mce_iespell{background-position:-120px -20px}.wp_themeSkin span.mce_insertdate{background-position:-140px -20px}.wp_themeSkin span.mce_inserttime{background-position:-160px -20px}.wp_themeSkin span.mce_absolute{background-position:-180px -20px}.wp_themeSkin span.mce_backward{background-position:-200px -20px}.wp_themeSkin span.mce_forward{background-position:-220px -20px}.wp_themeSkin span.mce_insert_layer{background-position:-240px -20px}.wp_themeSkin span.mce_insertlayer{background-position:-260px -20px}.wp_themeSkin span.mce_movebackward{background-position:-280px -20px}.wp_themeSkin span.mce_moveforward{background-position:-300px -20px}.wp_themeSkin span.mce_nonbreaking{background-position:-340px -20px}.wp_themeSkin span.mce_selectall{background-position:-400px -20px}.wp_themeSkin span.mce_preview{background-position:-420px -20px}.wp_themeSkin span.mce_print{background-position:-440px -20px}.wp_themeSkin span.mce_cancel{background-position:-460px -20px}.wp_themeSkin span.mce_save{background-position:-480px -20px}.wp_themeSkin span.mce_replace{background-position:-500px -20px}.wp_themeSkin span.mce_search{background-position:-520px -20px}.wp_themeSkin span.mce_styleprops{background-position:-560px -20px}.wp_themeSkin span.mce_table{background-position:-580px -20px}.wp_themeSkin span.mce_cell_props{background-position:-600px -20px}.wp_themeSkin span.mce_delete_table{background-position:-620px -20px}.wp_themeSkin span.mce_delete_col{background-position:-640px -20px}.wp_themeSkin span.mce_delete_row{background-position:-660px -20px}.wp_themeSkin span.mce_col_after{background-position:-680px -20px}.wp_themeSkin span.mce_col_before{background-position:-700px -20px}.wp_themeSkin span.mce_row_after{background-position:-720px -20px}.wp_themeSkin span.mce_row_before{background-position:-740px -20px}.wp_themeSkin span.mce_merge_cells{background-position:-760px -20px}.wp_themeSkin span.mce_table_props{background-position:-980px -20px}.wp_themeSkin span.mce_row_props{background-position:-780px -20px}.wp_themeSkin span.mce_split_cells{background-position:-800px -20px}.wp_themeSkin span.mce_template{background-position:-820px -20px}.wp_themeSkin span.mce_visualchars{background-position:-840px -20px}.wp_themeSkin span.mce_abbr{background-position:-860px -20px}.wp_themeSkin span.mce_acronym{background-position:-880px -20px}.wp_themeSkin span.mce_attribs{background-position:-900px -20px}.wp_themeSkin span.mce_cite{background-position:-920px -20px}.wp_themeSkin span.mce_del{background-position:-940px -20px}.wp_themeSkin span.mce_ins{background-position:-960px -20px}.wp_themeSkin span.mce_pagebreak{background-position:0 -40px}.wp_themeSkin .mceExternalToolbar,.wp_themeSkin .mceButton,.wp_themeSkin a.mceButtonEnabled:hover,.wp_themeSkin a.mceButtonActive,.wp_themeSkin a.mceButtonSelected,.wp_themeSkin .mceListBox .mceText,.wp_themeSkin .mceListBox .mceOpen,.wp_themeSkin table.mceListBoxEnabled:hover .mceText,.wp_themeSkin .mceListBoxHover .mceText,.wp_themeSkin .mceListBoxSelected .mceText,.wp_themeSkin table.mceListBoxEnabled:hover .mceOpen,.wp_themeSkin .mceListBoxHover .mceOpen,.wp_themeSkin .mceListBoxSelected .mceOpen,.wp_themeSkin select.mceListBox,.wp_themeSkin .mceSplitButton a.mceAction,.wp_themeSkin .mceSplitButton a.mceOpen,.wp_themeSkin .mceSplitButton a.mceOpen:hover,.wp_themeSkin .mceSplitButtonSelected a.mceOpen,.wp_themeSkin table.mceSplitButtonEnabled:hover a.mceAction,.wp_themeSkin .mceSplitButton a.mceAction:hover,.wp_themeSkin div.mceColorSplitMenu table,.wp_themeSkin .mceColorSplitMenu a,.wp_themeSkin .mceColorSplitMenu a.mceMoreColors,.wp_themeSkin .mceColorSplitMenu a.mceMoreColors:hover,.wp_themeSkin a.mceMoreColors:hover,.wp_themeSkin .mceMenu{border-style:solid;border-width:1px}.wp_themeSkin iframe{background:transparent}.wp_themeSkin .mceButton,.wp_themeSkin .mceListBox .mceText,.wp_themeSkin .mceListBox .mceOpen{border-color:#ccc;background-color:#eee;background-image:-ms-linear-gradient(bottom,#ddd,#fff);background-image:-moz-linear-gradient(bottom,#ddd,#fff);background-image:-o-linear-gradient(bottom,#ddd,#fff);background-image:-webkit-gradient(linear,left bottom,left top,from(#ddd),to(#fff));background-image:-webkit-linear-gradient(bottom,#ddd,#fff);background-image:linear-gradient(bottom,#ddd,#fff)}.wp_themeSkin a.mceButtonEnabled:hover{border-color:#a0a0a0;background:#ddd;background-image:-ms-linear-gradient(bottom,#ccc,#fff);background-image:-moz-linear-gradient(bottom,#ccc,#fff);background-image:-o-linear-gradient(bottom,#ccc,#fff);background-image:-webkit-gradient(linear,left bottom,left top,from(#ccc),to(#fff));background-image:-webkit-linear-gradient(bottom,#ccc,#fff);background-image:linear-gradient(bottom,#ccc,#fff)}.wp_themeSkin a.mceButton:active,.wp_themeSkin a.mceButtonEnabled:active,.wp_themeSkin a.mceButtonSelected:active,.wp_themeSkin a.mceButtonActive,.wp_themeSkin a.mceButtonActive:active,.wp_themeSkin a.mceButtonActive:hover{background-color:#ddd;background-image:-ms-linear-gradient(bottom,#eee,#bbb);background-image:-moz-linear-gradient(bottom,#eee,#bbb);background-image:-o-linear-gradient(bottom,#eee,#bbb);background-image:-webkit-gradient(linear,left bottom,left top,from(#eee),to(#bbb));background-image:-webkit-linear-gradient(bottom,#eee,#bbb);background-image:linear-gradient(bottom,#eee,#bbb);border-color:#909090}.wp_themeSkin .mceButtonDisabled{border-color:#ccc!important}.wp_themeSkin .mceListBox .mceOpen{border-left:0!important}.wp_themeSkin table.mceListBoxEnabled:hover .mceOpen,.wp_themeSkin .mceListBoxHover .mceOpen,.wp_themeSkin .mceListBoxHover:active .mceOpen,.wp_themeSkin .mceListBoxSelected .mceOpen,.wp_themeSkin .mceListBoxSelected .mceText,.wp_themeSkin table.mceListBoxEnabled:active .mceText{background:#ccc;border-color:#999}.wp_themeSkin table.mceListBoxEnabled:hover .mceText,.wp_themeSkin .mceListBoxHover .mceText,.wp_themeSkin table.mceListBoxEnabled:hover .mceOpen,.wp_themeSkin .mceListBoxHover .mceOpen{border-color:#909090;background-color:#eee;background-image:-ms-linear-gradient(bottom,#ccc,#fff);background-image:-moz-linear-gradient(bottom,#ccc,#fff);background-image:-o-linear-gradient(bottom,#ccc,#fff);background-image:-webkit-gradient(linear,left bottom,left top,from(#ccc),to(#fff));background-image:-webkit-linear-gradient(bottom,#ccc,#fff);background-image:linear-gradient(bottom,#ccc,#fff)}.wp_themeSkin .mceSplitButton a.mceAction,.wp_themeSkin .mceSplitButton a.mceOpen{border-color:#ccc}.wp_themeSkin .mceSplitButton a.mceOpen:hover,.wp_themeSkin .mceSplitButtonSelected a.mceOpen,.wp_themeSkin table.mceSplitButtonEnabled:hover a.mceAction,.wp_themeSkin .mceSplitButton a.mceAction:hover{border-color:#909090}.wp_themeSkin table.mceSplitButton td{background-color:#eee;background-image:-ms-linear-gradient(bottom,#ddd,#fff);background-image:-moz-linear-gradient(bottom,#ddd,#fff);background-image:-o-linear-gradient(bottom,#ddd,#fff);background-image:-webkit-gradient(linear,left bottom,left top,from(#ddd),to(#fff));background-image:-webkit-linear-gradient(bottom,#ddd,#fff);background-image:linear-gradient(bottom,#ddd,#fff)}.wp_themeSkin table.mceSplitButton:hover td{background-image:-ms-linear-gradient(bottom,#ccc,#fff);background-image:-moz-linear-gradient(bottom,#ccc,#fff);background-image:-o-linear-gradient(bottom,#ccc,#fff);background-image:-webkit-gradient(linear,left bottom,left top,from(#ccc),to(#fff));background-image:-webkit-linear-gradient(bottom,#ccc,#fff);background-image:linear-gradient(bottom,#ccc,#fff)}.wp_themeSkin .mceSplitButtonActive{background-color:#b2b2b2}.wp_themeSkin .mceColorSplitMenu a.mceMoreColors:hover{border-color:#0a246a;background-color:#b6bdd2}.wp_themeSkin a.mceMoreColors:hover{border-color:#0a246a}.wp_themeSkin .mceMenuItemDisabled .mceText{color:#888}#mceModalBlocker{background:#000}.wp-editor-area{font-family:Consolas,Monaco,monospace;padding:10px;line-height:150%;border:0 none;outline:0;resize:vertical;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.wp-editor-tools{height:30px;padding:0 10px}.wp-editor-container{border-width:1px;border-style:solid;-webkit-border-top-right-radius:3px;-webkit-border-top-left-radius:3px;border-top-right-radius:3px;border-top-left-radius:3px;border-color:#ccc #ccc #dfdfdf}.wp-editor-container textarea.wp-editor-area{width:99.9%}.quicktags-toolbar,.wp_themeSkin tr.mceFirst td.mceToolbar{border-bottom:1px solid #ccc;background-color:#e9e9e9;background-image:-ms-linear-gradient(bottom,#ddd,#e9e9e9);background-image:-moz-linear-gradient(bottom,#ddd,#e9e9e9);background-image:-o-linear-gradient(bottom,#ddd,#e9e9e9);background-image:-webkit-linear-gradient(bottom,#ddd,#e9e9e9);background-image:linear-gradient(bottom,#ddd,#e9e9e9)}.wp-switch-editor{height:18px;font:13px/18px Arial,Helvetica,sans-serif normal;margin:5px 5px 0 0;padding:4px 5px 2px;float:right;cursor:pointer;border-width:1px;border-style:solid;-webkit-border-top-right-radius:3px;-webkit-border-top-left-radius:3px;border-top-right-radius:3px;border-top-left-radius:3px;background-color:#f1f1f1;border-color:#dfdfdf #dfdfdf #ccc;color:#999}html[dir="rtl"] .wp-switch-editor{float:left}.wp-switch-editor:hover{text-decoration:none!important}.js .tmce-active .wp-editor-area{color:black}.tmce-active .quicktags-toolbar{display:none}.tmce-active .switch-tmce,.html-active .switch-html{border-color:#ccc #ccc #e9e9e9;background-color:#e9e9e9;color:#333}.wp-media-buttons{line-height:1;padding:9px 0 0}.wp-media-buttons a{text-decoration:none;color:#333;font-size:12px;vertical-align:bottom}.wp-media-buttons img{padding:0 4px;vertical-align:middle}.quicktags-toolbar{border-bottom-style:solid;border-bottom-width:1px;-webkit-border-top-right-radius:3px;-webkit-border-top-left-radius:3px;border-top-right-radius:3px;border-top-left-radius:3px;padding:2px 8px 0;min-height:29px}.quicktags-toolbar>div{padding:2px 4px 0}.quicktags-toolbar input{margin:2px 1px 4px;line-height:18px;display:inline-block;min-width:26px;padding:2px 4px;font:12px/18px Arial,Helvetica,sans-serif normal;color:#464646;border:1px solid #c3c3c3;-webkit-border-radius:3px;border-radius:3px;background-color:#eee;background-image:-ms-linear-gradient(bottom,#e3e3e3,#fff);background-image:-moz-linear-gradient(bottom,#e3e3e3,#fff);background-image:-o-linear-gradient(bottom,#e3e3e3,#fff);background-image:-webkit-linear-gradient(bottom,#e3e3e3,#fff);background-image:linear-gradient(bottom,#e3e3e3,#fff)}.quicktags-toolbar input:hover{border-color:#aaa;background:#ddd}.quicktags-toolbar input[value="link"]{text-decoration:underline}.quicktags-toolbar input[value="del"]{text-decoration:line-through}.quicktags-toolbar input[value="i"]{font-style:italic}.quicktags-toolbar input[value="b"]{font-weight:bold}#wp_editbtns,#wp_gallerybtns{padding:2px;position:absolute;display:none;z-index:999998}#wp_editimgbtn,#wp_delimgbtn,#wp_editgallery,#wp_delgallery{border-color:#999;background-color:#eee;margin:2px;padding:2px;border-width:1px;border-style:solid;-webkit-border-radius:3px;border-radius:3px}#wp_editimgbtn:hover,#wp_delimgbtn:hover,#wp_editgallery:hover,#wp_delgallery:hover{border-color:#555;background-color:#ccc}#wp-link{background-color:#f5f5f5;line-height:1.4em;font-size:12px}#wp-link ol,#wp-link ul{list-style:none;margin:0;padding:0}#wp-link input[type="text"]{-webkit-box-sizing:border-box}#wp-link input[type="text"],#wp-link textarea{border-width:1px;border-style:solid;-webkit-border-radius:4px;border-radius:4px;font-size:12px;margin:1px;padding:3px}#wp-link #link-options{padding:10px 0 14px;border-bottom:1px solid #dfdfdf;margin:0 6px 14px}#wp-link p.howto{margin:3px}#wp-link #internal-toggle{display:inline-block;cursor:pointer;padding-left:18px}#wp-link .toggle-arrow{background:transparent url('../images/toggle-arrow.png') top left no-repeat;height:23px;line-height:23px}#wp-link .toggle-arrow-active{background-position:center left}#wp-link label input[type="text"]{width:360px;margin-top:5px}#wp-link label span{display:inline-block;width:80px;text-align:right;padding-right:5px}#wp-link .link-search-wrapper{margin:5px 6px 9px;display:block;overflow:hidden}#wp-link .link-search-wrapper span{float:left;margin-top:9px}#wp-link .link-search-wrapper input[type="text"]{float:left;width:220px}#wp-link .link-search-wrapper img.waiting{margin:8px 1px 0 4px;float:left;display:none}#wp-link .link-target{width:auto;padding:3px 0 0;margin:0 0 0 87px;font-size:11px}#wp-link .query-results{border:1px #dfdfdf solid;margin:0 5px 5px;background:#fff;height:185px;overflow:auto;position:relative}#wp-link li,#wp-link .query-notice{clear:both;margin-bottom:0;border-bottom:1px solid #f1f1f1;color:#333;padding:4px 6px;cursor:pointer;position:relative}#wp-link li:hover{background:#eaf2fa;color:#151515}#wp-link li.unselectable{border-bottom:1px solid #dfdfdf}#wp-link li.unselectable:hover{background:#fff;cursor:auto;color:#333}#wp-link li.selected{background:#ddd;color:#333}#wp-link li.selected .item-title{font-weight:bold}#wp-link .item-title{display:inline-block;width:80%}#wp-link .item-info{text-transform:uppercase;color:#666;font-size:11px;position:absolute;right:5px;top:4px;bottom:0}#wp-link #search-results{display:none}#wp-link #search-panel{float:left;width:100%}#wp-link .river-waiting{display:none;padding:10px 0}#wp-link .river-waiting img.waiting{margin:0 auto;display:block}#wp-link .submitbox{padding:5px 10px;font-size:11px;overflow:auto;height:29px}#wp-link-cancel{line-height:25px;float:left}#wp-link-update{line-height:23px;float:right}.ui-helper-hidden{display:none}.ui-helper-hidden-accessible{position:absolute;left:-99999999px}.ui-helper-reset{margin:0;padding:0;border:0;outline:0;line-height:1.3;text-decoration:none;font-size:100%;list-style:none}.ui-helper-clearfix:after{content:".";display:block;height:0;clear:both;visibility:hidden}.ui-helper-clearfix{display:inline-block}/*\*/* html .ui-helper-clearfix{height:1%}.ui-helper-clearfix{display:block}/**/.ui-helper-zfix{width:100%;height:100%;top:0;left:0;position:absolute;opacity:0;filter:Alpha(Opacity=0)}.ui-state-disabled{cursor:default!important}.ui-icon{display:block;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat}.ui-widget-overlay{position:absolute;top:0;left:0;width:100%;height:100%}.ui-resizable{position:relative}.ui-resizable-handle{position:absolute;font-size:.1px;z-index:99999;display:block}.ui-resizable-disabled .ui-resizable-handle,.ui-resizable-autohide .ui-resizable-handle{display:none}.ui-resizable-n{cursor:n-resize;height:7px;width:100%;top:-5px;left:0}.ui-resizable-s{cursor:s-resize;height:7px;width:100%;bottom:-5px;left:0}.ui-resizable-e{cursor:e-resize;width:7px;right:-5px;top:0;height:100%}.ui-resizable-w{cursor:w-resize;width:7px;left:-5px;top:0;height:100%}.ui-resizable-se{cursor:se-resize;width:12px;height:12px;right:1px;bottom:1px}.ui-resizable-sw{cursor:sw-resize;width:9px;height:9px;left:-5px;bottom:-5px}.ui-resizable-nw{cursor:nw-resize;width:9px;height:9px;left:-5px;top:-5px}.ui-resizable-ne{cursor:ne-resize;width:9px;height:9px;right:-5px;top:-5px}.wp-dialog{position:absolute;width:300px;overflow:hidden}.wp-dialog .ui-dialog-titlebar{position:relative}.wp-dialog .ui-dialog-titlebar-close span{display:block;margin:1px}.wp-dialog .ui-dialog-content{position:relative;border:0;padding:0;background:0;overflow:auto;zoom:1}.wp-dialog .ui-dialog-buttonpane{text-align:left;border-width:1px 0 0 0;background-image:none;margin:.5em 0 0 0;padding:.3em 1em .5em .4em}.wp-dialog .ui-dialog-buttonpane .ui-dialog-buttonset{float:right}.wp-dialog .ui-dialog-buttonpane button{margin:.5em .4em .5em 0;cursor:pointer}.wp-dialog .ui-resizable-se{width:14px;height:14px;right:3px;bottom:3px}.ui-draggable .ui-dialog-titlebar{cursor:move}.wp-dialog{border:1px solid #999;-moz-box-shadow:0 0 16px rgba(0,0,0,0.3);-webkit-box-shadow:0 0 16px rgba(0,0,0,0.3);box-shadow:0 0 16px rgba(0,0,0,0.3)}.wp-dialog .ui-dialog-title{display:block;text-align:center;padding:1px 0 2px}.wp-dialog .ui-dialog-titlebar{padding:0 1em;background-color:#444;font-weight:bold;font-size:11px;line-height:18px;color:#e5e5e5}.wp-dialog{background-color:#fff;-webkit-border-top-left-radius:4px;-webkit-border-top-right-radius:4px;border-top-left-radius:4px;border-top-right-radius:4px}.wp-dialog .ui-dialog-titlebar{-webkit-border-top-left-radius:3px;-webkit-border-top-right-radius:3px;border-top-left-radius:3px;border-top-right-radius:3px}.wp-dialog .ui-dialog-titlebar-close{position:absolute;width:29px;height:16px;top:2px;right:6px;background:url('../js/tinymce/plugins/inlinepopups/skins/clearlooks2/img/buttons.gif') no-repeat -87px -16px;padding:0}.wp-dialog .ui-dialog-titlebar-close:hover,.wp-dialog .ui-dialog-titlebar-close:focus{background-position:-87px -32px}.ui-widget-overlay{background-color:#000;opacity:.6;filter:alpha(opacity=60)}.rtl #wp-link #internal-toggle{padding-right:18px;padding-left:0}.rtl #wp-link label span{text-align:left;padding-left:5px;padding-right:0}.rtl #wp-link .link-search-wrapper span{float:right}.rtl #wp-link .link-search-wrapper input[type="text"]{float:right}.rtl #wp-link .link-search-wrapper img.waiting{margin:8px 4px 0 1px;float:right}.rtl #wp-link .link-target{margin:0 87px 0 0}.rtl #wp-link .item-info{left:5px;right:auto;top:4px;bottom:0}.rtl #wp-link #search-panel{float:right}.rtl #wp-link-cancel{float:right}.rtl #wp-link-update{float:left}.rtl #wp-link .toggle-arrow{background-position:top right}.rtl #wp-link .toggle-arrow-active{background-position:center right}.rtl .wp_themeSkin .mceListBox .mceText{text-align:right}.rtl .wp_themeSkin .mceNoIcons a .mceText{padding-right:10px;padding-left:25px}.rtl .mceListBoxMenu.mceNoIcons{margin-left:-14px}.clearlooks2 .mceFocus .mceTop .mceLeft{background:#444;border-left:1px solid #999;border-top:1px solid #999;-webkit-border-top-left-radius:3px;border-top-left-radius:3px}.clearlooks2 .mceFocus .mceTop .mceRight{background:#444;border-right:1px solid #999;border-top:1px solid #999;-webkit-border-top-right-radius:3px;border-top-right-radius:3px}.clearlooks2 .mceMiddle .mceLeft{background:#f1f1f1;border-left:1px solid #999}.clearlooks2 .mceMiddle .mceRight{background:#f1f1f1;border-right:1px solid #999}.clearlooks2 .mceBottom{background:#f1f1f1;border-bottom:1px solid #999}.clearlooks2 .mceBottom .mceLeft{background:#f1f1f1;border-bottom:1px solid #999;border-left:1px solid #999}.clearlooks2 .mceBottom .mceCenter{background:#f1f1f1;border-bottom:1px solid #999}.clearlooks2 .mceBottom .mceRight{background:#f1f1f1;border-bottom:1px solid #999;border-right:1px solid #999}.clearlooks2 .mceFocus .mceTop span{color:#e5e5e5}.fullscreen-overlay{z-index:149999;display:none;position:fixed;top:0;bottom:0;left:0;right:0;filter:inherit}.fullscreen-active .fullscreen-overlay,.fullscreen-active #wp-fullscreen-body{display:block}.fullscreen-fader{z-index:200000}.fullscreen-active .fullscreen-fader{display:none}#wp-fullscreen-body{width:100%;z-index:150005;display:none;position:absolute;top:0;left:0;font-size:12px}#wp-fullscreen-wrap{margin:0 auto 50px;position:relative;padding-top:60px}#wp-fullscreen-title{font-size:1.7em;line-height:100%;outline:medium none;padding:6px 7px;width:100%;margin-bottom:30px}#wp-fullscreen-container{padding:4px 10px 50px}#wp-fullscreen-title,#wp-fullscreen-container{-webkit-border-radius:0;border-radius:0;border:1px dashed transparent;background:transparent;-moz-transition-property:border-color;-moz-transition-duration:.6s;-webkit-transition-property:border-color;-webkit-transition-duration:.6s;-o-transition-property:border-color;-o-transition-duration:.6s;transition-property:border-color;transition-duration:.6s}#wp_mce_fullscreen{width:100%;min-height:300px;border:0;background:transparent;font-family:Consolas,Monaco,monospace;line-height:1.6em;padding:0;overflow-y:hidden;outline:0;resize:none}#wp-fullscreen-tagline{color:#bbb;font-size:18px;float:right;padding-top:5px}#fullscreen-topbar{position:fixed;top:0;left:0;z-index:150050;border-bottom-style:solid;border-bottom-width:1px;min-width:800px;width:100%;height:40px}#wp-fullscreen-toolbar{padding:6px 10px 0;clear:both;max-width:1100px;min-width:820px;margin:0 auto}#wp-fullscreen-mode-bar,#wp-fullscreen-button-bar,#wp-fullscreen-close,#wp-fullscreen-count{float:left}#wp-fullscreen-save{float:right;padding:2px 2px 0 5px}#wp-fullscreen-count,#wp-fullscreen-close{padding-top:5px}#wp-fullscreen-central-toolbar{margin:auto;padding:0}#wp-fullscreen-buttons>div{float:left}#wp-fullscreen-mode-bar{padding:1px 14px 0 0}#wp-fullscreen-modes a{display:block;font-size:11px;text-decoration:none;float:left;margin:1px 0 0 0;padding:2px 6px 2px;border-width:1px 1px 1px 0;border-style:solid;border-color:#bbb;color:#777;text-shadow:0 1px 0 #fff;background-color:#f4f4f4;background-image:-moz-linear-gradient(bottom,#e4e4e4,#f9f9f9);background-image:-webkit-gradient(linear,left bottom,left top,from(#e4e4e4),to(#f9f9f9))}#wp-fullscreen-modes a:hover,.wp-html-mode #wp-fullscreen-modes a:last-child,.wp-tmce-mode #wp-fullscreen-modes a:first-child{color:#333;border-color:#999;background-color:#eee;background-image:-moz-linear-gradient(bottom,#f9f9f9,#e0e0e0);background-image:-webkit-gradient(linear,left bottom,left top,from(#f9f9f9),to(#e0e0e0))}#wp-fullscreen-modes a:first-child{border-width:1px;-webkit-border-top-left-radius:3px;-webkit-border-bottom-left-radius:3px;border-top-left-radius:3px;border-bottom-left-radius:3px}#wp-fullscreen-modes a:last-child{-webkit-border-top-right-radius:3px;-webkit-border-bottom-right-radius:3px;border-top-right-radius:3px;border-bottom-right-radius:3px}#wp-fullscreen-buttons .active a{background:inherit}#wp-fullscreen-buttons .hidden{display:none}#wp-fullscreen-buttons .disabled{opacity:.5}.wp-html-mode #wp-fullscreen-buttons div{display:none}.wp-html-mode #wp-fullscreen-buttons div.wp-fullscreen-both{display:block}#fullscreen-topbar.fullscreen-make-sticky{display:block!important}#wp-fullscreen-save img{vertical-align:middle}#wp-fullscreen-save img,#wp-fullscreen-save span{padding-right:4px;display:none}#wp-fullscreen-buttons .mce_image .mce_image{background-image:url('../../wp-admin/images/media-button.png?ver=20120201');background-position:3px 3px}.fullscreen-active #TB_overlay{z-index:150100}.fullscreen-active #TB_window{z-index:150102}#wp_mce_fullscreen_ifr{background:transparent}#wp_mce_fullscreen_parent #wp_mce_fullscreen_tbl tr.mceFirst{display:none}#wp-fullscreen-container .wp_themeSkin table td{vertical-align:top}.fullscreen-overlay{background:#fff}.wp-fullscreen-focus #wp-fullscreen-title,.wp-fullscreen-focus #wp-fullscreen-container{border-color:#ccc}#fullscreen-topbar{border-bottom-color:#dfdfdf;background-color:#f1f1f1;background-image:-ms-linear-gradient(top,#f9f9f9,#ececec);background-image:-moz-linear-gradient(top,#f9f9f9,#ececec);background-image:-o-linear-gradient(top,#f9f9f9,#ececec);background-image:-webkit-gradient(linear,left top,left bottom,from(#f9f9f9),to(#ececec));background-image:-webkit-linear-gradient(top,#f9f9f9,#ececec);background-image:linear-gradient(top,#f9f9f9,#ececec)}.fade-1000,.fade-600,.fade-400,.fade-300{opacity:0;-moz-transition-property:opacity;-webkit-transition-property:opacity;-o-transition-property:opacity;transition-property:opacity}.fade-1000{-moz-transition-duration:1s;-webkit-transition-duration:1s;-o-transition-duration:1s;transition-duration:1s}.fade-600{-moz-transition-duration:.6s;-webkit-transition-duration:.6s;-o-transition-duration:.6s;transition-duration:.6s}.fade-400{-moz-transition-duration:.4s;-webkit-transition-duration:.4s;-o-transition-duration:.4s;transition-duration:.4s}.fade-300{-moz-transition-duration:.3s;-webkit-transition-duration:.3s;-o-transition-duration:.3s;transition-duration:.3s}.fade-trigger{opacity:1}.rtl #wp-fullscreen-tagline{float:left}.rtl #fullscreen-topbar{left:auto;right:0}.rtl #wp-fullscreen-mode-bar,.rtl #wp-fullscreen-button-bar,.rtl #wp-fullscreen-close,.rtl #wp-fullscreen-count{float:right}.rtl #wp-fullscreen-save{float:left}.rtl #wp-fullscreen-save{padding:2px 5px 0 2px}.rtl #wp-fullscreen-buttons>div{float:right}.rtl #wp-fullscreen-mode-bar{padding:1px 0 0 14px}.rtl #wp-fullscreen-modes a{float:right;border-width:1px 0 1px 1px}.rtl #wp-fullscreen-modes a:first-child{-webkit-border-top-left-radius:0;-webkit-border-top-right-radius:3px;-webkit-border-bottom-left-radius:0;-webkit-border-bottom-right-radius:3px;border-width:1px;border-top-left-radius:0;border-top-right-radius:3px;border-bottom-right-left:0;border-bottom-right-radius:3px}.rtl #wp-fullscreen-modes a:last-child{-webkit-border-top-right-radius:0;-webkit-border-top-left-radius:3px;-webkit-border-bottom-right-radius:0;-webkit-border-bottom-left-radius:3px;border-top-right-radius:0;border-top-left-radius:3px;border-bottom-right-radius:0;border-bottom-left-radius:3px}.rtl #wp-fullscreen-save img,.rtl #wp-fullscreen-save span{padding-right:0;padding-left:4px}
\ No newline at end of file
+
+/*------------------------------------------------------------------------------
+ TinyMCE and Quicklinks toolbars
+------------------------------------------------------------------------------*/
+
+/* wp_theme/ui.css */
+.wp_themeSkin table,
+.wp_themeSkin tbody,
+.wp_themeSkin a,
+.wp_themeSkin img,
+.wp_themeSkin tr,
+.wp_themeSkin div,
+.wp_themeSkin td,
+.wp_themeSkin iframe,
+.wp_themeSkin span,
+.wp_themeSkin *,
+.wp_themeSkin .mceText {
+	border: 0;
+	margin: 0;
+	padding: 0;
+	white-space: nowrap;
+	text-decoration: none;
+	font-weight: normal;
+	cursor: default;
+	vertical-align: baseline;
+	width: auto;
+	border-collapse: separate;
+}
+
+.wp_themeSkin a:hover,
+.wp_themeSkin a:link,
+.wp_themeSkin a:visited,
+.wp_themeSkin a:active {
+	text-decoration: none;
+	font-weight: normal;
+	cursor: default;
+}
+
+.wp_themeSkin table td {
+	vertical-align: middle;
+}
+
+.wp_themeSkin *,
+.wp_themeSkin a:hover,
+.wp_themeSkin a:link,
+.wp_themeSkin a:visited,
+.wp_themeSkin a:active {
+	color: #555;
+}
+
+/* Containers */
+.wp_themeSkin table {}
+
+.wp_themeSkin iframe {
+	display: block;
+}
+
+.wp_themeSkin #mce_fullscreen_ifr {
+	background-color: #fff;
+}
+
+.wp_themeSkin .mceToolbar {
+	padding: 1px;
+}
+
+/* External */
+.wp_themeSkin .mceExternalToolbar {
+	position: absolute;
+	border-bottom: 0;
+	display: none;
+}
+
+.wp_themeSkin .mceExternalToolbar td.mceToolbar {
+	padding-right: 13px;
+}
+
+.wp_themeSkin .mceExternalClose {
+	position: absolute;
+	top: 3px;
+	right: 3px;
+	width: 7px;
+	height: 7px;
+	background: url("../js/tinymce/themes/advanced/img/icons.gif") -820px 0;
+}
+
+/* Layout */
+.wp_themeSkin table.mceToolbar,
+.wp_themeSkin tr.mceFirst .mceToolbar tr td,
+.wp_themeSkin tr.mceLast .mceToolbar tr td {
+	border: 0;
+	margin: 0;
+	padding: 0;
+}
+
+.wp_themeSkin table.mceLayout {
+	border: 0;
+}
+
+.wp_themeSkin .mceStatusbar {
+	display: block;
+	font-family: sans-serif;
+	font-size: 12px;
+	line-height: 16px;
+	padding: 0 0 0 8px;
+	overflow: visible;
+	height: 20px;
+	border-top: 1px solid #dfdfdf;
+	color: #000;
+	background-color: #f5f5f5;
+}
+
+.rtl .wp_themeSkin .mceStatusbar {
+	padding: 0 8px 0 0;
+}
+
+.wp_themeSkin .mceStatusbar * {
+	color: #555;
+}
+
+.wp_themeSkin .mceStatusbar div {
+	float: left;
+	padding: 2px;
+}
+
+.rtl .wp_themeSkin .mceStatusbar div {
+	float: right;
+}
+
+.wp_themeSkin .mceStatusbar a.mceResize {
+	display: block;
+	float: right;
+	background: url("../js/tinymce/themes/advanced/img/icons.gif") -800px 0;
+	width: 20px;
+	height: 20px;
+	cursor: se-resize;
+}
+
+.rtl .wp_themeSkin .mceStatusbar a.mceResize {
+	float: left;
+}
+
+.wp_themeSkin .mceStatusbar a:hover {
+	text-decoration: underline;
+}
+
+.wp_themeSkin table.mceToolbar {
+	margin: 0 6px 2px;
+}
+
+.wp_themeSkin table.mceToolbar :active,
+.wp_themeSkin table.mceToolbar :focus,
+.wp_themeSkin table.mceToolbar:focus,
+.wp_themeSkin span.mceSeparator:focus {
+	outline: none;
+}
+
+.wp_themeSkin #content_toolbar1 {
+	margin-top: 2px;
+}
+
+.wp_themeSkin .mceToolbar .mceToolbarEndListBox span {
+	display: none;
+}
+
+.wp_themeSkin span.mceIcon,
+.wp_themeSkin img.mceIcon {
+	display: block;
+	width: 20px;
+	height: 20px;
+}
+
+.wp_themeSkin .mceIcon {
+	background: url("../js/tinymce/themes/advanced/img/icons.gif") no-repeat 20px 20px;
+}
+
+/* Button */
+.wp_themeSkin .mceButton {
+	display: block;
+	width: 20px;
+	height: 20px;
+	cursor: default;
+	padding: 1px 2px;
+	margin: 1px;
+	-webkit-border-radius: 2px;
+	border-radius: 2px;
+}
+
+.wp_themeSkin a.mceButtonEnabled:hover {
+	background-image: inherit 0 -10px;
+}
+
+.wp_themeSkin .mceOldBoxModel a.mceButton span, .wp_themeSkin .mceOldBoxModel a.mceButton img {
+	margin: 0 0 0 1px;
+}
+
+.wp_themeSkin .mceButtonDisabled .mceIcon {
+	opacity: 0.2;
+	filter: alpha(opacity=20);
+}
+
+/* Separator */
+.wp_themeSkin .mceSeparator {
+	display: none;
+}
+
+/* ListBox */
+.wp_themeSkin .mceListBox,
+.wp_themeSkin .mceListBox a {
+	display: block;
+}
+
+.wp_themeSkin .mceListBox .mceText {
+	padding: 1px 4px 1px 5px;
+	width: 70px;
+	text-align: left;
+	text-decoration: none;
+	-webkit-border-bottom-left-radius: 2px;
+	-webkit-border-top-left-radius: 2px;
+	border-bottom-left-radius: 2px;
+	border-top-left-radius: 2px;
+	font-family: sans-serif;
+	font-size: 12px;
+	height: 20px;
+	line-height: 20px;
+	overflow: hidden;
+}
+
+.wp_themeSkin .mceListBox {
+	margin: 1px;
+	direction: ltr;
+	background-color: #fff;
+	border: 1px solid #ddd;
+	-webkit-box-shadow: inset 0 1px 1px -1px rgba(0, 0, 0, .2);
+	box-shadow:         inset 0 1px 1px -1px rgba(0, 0, 0, .2);
+}
+
+.wp_themeSkin .mceListBox .mceOpen {
+	width: 12px;
+	height: 20px;
+	border-collapse: separate;
+	padding: 1px;
+	-webkit-border-bottom-left-radius: 0;
+	-webkit-border-top-left-radius: 0;
+	border-bottom-left-radius: 0;
+	border-top-left-radius: 0;
+}
+
+.wp_themeSkin .mceListBox .mceFirst a {
+	border-style: solid;
+	border-width: 1px;
+	border-bottom-right-radius: 2px;
+	border-top-right-radius: 2px;
+}
+
+/*.wp_themeSkin .mceListBox .mceLast {
+	display: none;
+}*/
+
+.wp_themeSkin .mceListBox .mceOpen,
+.wp_themeSkin .mceListBoxHover .mceOpen,
+.wp_themeSkin .mceListBoxSelected .mceOpen,
+.wp_themeSkin table.mceListBoxEnabled .mceOpen {
+	background-image: url("../images/down_arrow.gif");
+	background-position: 3px 1px;
+	background-repeat: no-repeat;
+}
+
+.wp_themeSkin .mceListBoxDisabled .mceText {
+	color: gray;
+}
+
+.wp_themeSkin .mceListBoxMenu {
+	overflow: auto;
+	overflow-x: hidden;
+}
+
+.wp_themeSkin .mceOldBoxModel .mceListBox .mceText {
+	height: 22px;
+}
+
+.wp_themeSkin select.mceListBox {
+	font-family: sans-serif;
+	font-size: 12px;
+	border-color: #b2b2b2;
+	background-color: #fff;
+}
+
+/* SplitButton */
+.wp_themeSkin .mceSplitButton a,
+.wp_themeSkin .mceSplitButton span {
+	display: block;
+	height: 20px;
+}
+
+.wp_themeSkin .mceSplitButton {
+	display: block;
+	direction: ltr;
+}
+
+.wp_themeSkin table.mceSplitButton td {
+	padding: 2px;
+	-webkit-border-radius: 2px;
+	border-radius: 2px;
+}
+
+.wp_themeSkin table.mceSplitButton:hover td {
+	background-image: inherit 0 -10px;
+}
+
+.wp_themeSkin .mceSplitButton a.mceAction {
+	height: 20px;
+	width: 20px;
+	padding: 1px 2px;
+	border-right: 0 none;
+}
+
+.wp_themeSkin .mceSplitButton span.mceAction {
+	background-image: url("../js/tinymce/themes/advanced/img/icons.gif");
+	background-repeat: no-repeat;
+	background-color: transparent;
+	width: 20px;
+}
+
+.wp_themeSkin .mceSplitButton a.mceOpen {
+	width: 11px;
+	height: 20px;
+	background-position: 0px 2px;
+	background-repeat: no-repeat;
+	padding: 1px 0;
+}
+
+.wp_themeSkin .mceSplitButton span.mceOpen {
+	display: none;
+}
+
+.wp_themeSkin .mceSplitButtonDisabled .mceAction {
+	opacity: 0.3;
+	filter: alpha(opacity=30);
+}
+
+.wp_themeSkin .mceListBox a.mceText,
+.wp_themeSkin .mceSplitButton a.mceAction {
+	-webkit-border-bottom-left-radius: 2px;
+	-webkit-border-top-left-radius: 2px;
+	border-bottom-left-radius: 2px;
+	border-top-left-radius: 2px;
+}
+
+.wp_themeSkin .mceSplitButton a.mceOpen,
+.wp_themeSkin .mceListBox a.mceOpen {
+	-webkit-border-bottom-right-radius: 2px;
+	-webkit-border-top-right-radius: 2px;
+	border-bottom-right-radius: 2px;
+	border-top-right-radius: 2px;
+}
+
+.wp_themeSkin span.mce_undo,
+.wp_themeSkin span.mce_redo,
+.wp_themeSkin span.mce_bullist,
+.wp_themeSkin span.mce_numlist,
+.wp_themeSkin span.mce_blockquote,
+.wp_themeSkin span.mce_charmap,
+.wp_themeSkin span.mce_bold,
+.wp_themeSkin span.mce_italic,
+.wp_themeSkin span.mce_underline,
+.wp_themeSkin span.mce_justifyleft,
+.wp_themeSkin span.mce_justifyright,
+.wp_themeSkin span.mce_justifycenter,
+.wp_themeSkin span.mce_justifyfull,
+.wp_themeSkin span.mce_indent,
+.wp_themeSkin span.mce_outdent,
+.wp_themeSkin span.mce_link,
+.wp_themeSkin span.mce_unlink,
+.wp_themeSkin span.mce_help,
+.wp_themeSkin span.mce_removeformat,
+.wp_themeSkin span.mce_fullscreen,
+.wp_themeSkin span.mce_wp_fullscreen,
+.wp_themeSkin span.mce_media,
+.wp_themeSkin span.mce_pastetext,
+.wp_themeSkin span.mce_pasteword,
+.wp_themeSkin span.mce_wp_help,
+.wp_themeSkin span.mce_wp_adv,
+.wp_themeSkin span.mce_wp_more,
+.wp_themeSkin span.mce_strikethrough,
+.wp_themeSkin span.mce_spellchecker,
+.wp_themeSkin span.mce_forecolor,
+.wp_themeSkin .mce_forecolorpicker,
+.wp_themeSkin .mceSplitButton .mce_spellchecker span.mce_spellchecker,
+.wp_themeSkin .mceSplitButton .mce_forecolor span.mce_forecolor,
+.wp_themeSkin .mceSplitButton span.mce_numlist,
+.wp_themeSkin .mceSplitButton span.mce_bullist {
+	background-image: url('../images/wpicons.png?ver=20120720');
+}
+
+/* ColorSplitButton */
+.wp_themeSkin div.mceColorSplitMenu table {
+	background-color: #ebebeb;
+	border-color: #bbb;
+}
+
+.wp_themeSkin .mceColorSplitMenu td {
+	padding: 2px;
+}
+
+.wp_themeSkin .mceColorSplitMenu a {
+	display: block;
+	width: 9px;
+	height: 9px;
+	overflow: hidden;
+	border-color: #B2B2B2;
+}
+
+.wp_themeSkin .mceColorSplitMenu td.mceMoreColors {
+	padding: 1px 3px 1px 1px;
+}
+
+.wp_themeSkin .mceColorSplitMenu a.mceMoreColors {
+	width: 100%;
+	height: auto;
+	text-align: center;
+	font-family: Tahoma,Verdana,Arial,Helvetica;
+	font-size: 11px;
+	line-height: 20px;
+	border-color: #fff;
+}
+
+.wp_themeSkin .mceColorSplitMenu a.mceMoreColors:hover {}
+.wp_themeSkin a.mceMoreColors:hover {}
+.wp_themeSkin .mceColorPreview {
+	margin: -5px 0 0 2px;
+	width: 16px;
+	height: 4px;
+	overflow: hidden;
+}
+
+/* Menu */
+.wp_themeSkin .mceMenu {
+	position: absolute;
+	left: 0;
+	top: 0;
+	z-index: 1000;
+	border-color: #ddd;
+	direction: ltr;
+}
+
+.wp_themeSkin .mceNoIcons span.mceIcon {
+	width: 0;
+}
+
+.wp_themeSkin .mceNoIcons a .mceText {
+	padding-left: 10px;
+}
+
+.wp_themeSkin .mceMenu table {
+	background-color: #ebeaeb;
+}
+
+.wp_themeSkin .mceMenu a,
+.wp_themeSkin .mceMenu span,
+.wp_themeSkin .mceMenu {
+	display: block;
+}
+
+.wp_themeSkin .mceMenu td {
+	height: 20px;overflow: hidden;
+}
+
+.wp_themeSkin .mceMenu a {
+	position: relative;
+	padding: 3px 0 4px 0;
+	text-decoration: none !important;
+}
+
+.wp_themeSkin .mceMenu .mceText {
+	position: relative;
+	display: block;
+	font-family: Tahoma,Verdana,Arial,Helvetica;
+	cursor: default;
+	margin: 0;
+	padding: 0 25px;
+	color: #000;
+}
+
+.wp_themeSkin .mceMenu span.mceText, .wp_themeSkin .mceMenu .mcePreview {
+	font-size: 12px;
+}
+
+.wp_themeSkin .mceMenu pre.mceText {
+	font-family: Monospace;
+}
+
+.wp_themeSkin .mceMenu .mceIcon {
+	position: absolute;
+	top: 0;
+	left: 0;
+	width: 22px;
+}
+
+.wp_themeSkin .mceMenu .mceMenuItemEnabled a:hover,
+.wp_themeSkin .mceMenu .mceMenuItemActive {
+	background-color: #f5f5f5;
+}
+
+.wp_themeSkin td.mceMenuItemSeparator {
+	height: 1px;
+	background-color: #aaa;
+}
+
+.wp_themeSkin .mceMenuItemTitle a {
+	border-top: 0;
+	border-right: 0;
+	border-left: 0;
+	border-bottom: 1px solid #aaa;
+	text-decoration: none !important;
+	background-color: #ccc;
+}
+
+.wp_themeSkin .mceMenuItemTitle span.mceText {
+	font-weight: bold;
+	padding-left: 4px;
+	color: #000;
+}
+
+.wp_themeSkin .mceMenuItemSelected .mceIcon {
+	background: url("../js/tinymce/themes/advanced/skins/default/img/menu_check.gif");
+	color: #888;
+}
+
+.wp_themeSkin .mceNoIcons .mceMenuItemSelected a {
+	background: url("../js/tinymce/themes/advanced/skins/default/img/menu_arrow.gif") no-repeat -6px center;
+}
+
+.wp_themeSkin .mceMenu span.mceMenuLine {
+	display: none;
+}
+
+.wp_themeSkin .mceMenuItemSub a {
+	background: url("../js/tinymce/themes/advanced/skins/default/img/menu_arrow.gif") no-repeat top right;
+}
+
+/* Progress,Resize */
+.wp_themeSkin .mceBlocker {
+	position: absolute;
+	left: 0;
+	top: 0;
+	z-index: 1000;
+	opacity: 0.5;
+	filter: alpha(opacity=50);
+	background: #FFF;
+}
+
+.wp_themeSkin .mceProgress {
+	position: absolute;
+	left: 0;
+	top: 0;
+	z-index: 1001;
+	background: url("../js/tinymce/themes/advanced/skins/default/img/progress.gif") no-repeat;
+	width: 32px;
+	height: 32px;
+	margin: -16px 0 0 -16px;
+}
+
+.wp_themeSkin .mcePlaceHolder {
+	border: 1px dotted gray;
+}
+
+/* Rtl */
+.mceRtl .mceListBox .mceText {
+	text-align: right;
+	padding: 0 4px 0 0;
+}
+
+.mceRtl .mceMenuItem .mceText {
+	text-align: right;
+}
+
+/* Formats */
+.wp_themeSkin .mce_p span.mceText {}
+.wp_themeSkin .mce_address span.mceText {
+	font-style: italic;
+}
+
+.wp_themeSkin .mce_pre span.mceText {
+	font-family: monospace;
+}
+
+.wp_themeSkin .mce_h1 span.mceText {
+	font-weight: bolder;
+	font-size: 17px;
+}
+
+.wp_themeSkin .mce_h2 span.mceText {
+	font-weight: bolder;
+	font-size: 16px;
+}
+
+.wp_themeSkin .mce_h3 span.mceText {
+	font-weight: bolder;
+	font-size: 15px;
+}
+
+.wp_themeSkin .mce_h4 span.mceText {
+	font-weight: bolder;
+	font-size: 14px;
+}
+
+.wp_themeSkin .mce_h5 span.mceText {
+	font-weight: bolder;
+	font-size: 13px;
+}
+
+.wp_themeSkin .mce_h6 span.mceText {
+	font-weight: bolder;
+	font-size: 12px;
+}
+
+/* Theme */
+.wp_themeSkin span.mce_undo {background-position:-500px -20px}
+.wp_themeSkin .mceButtonEnabled:hover span.mce_undo,
+.wp_themeSkin .mceButtonActive span.mce_undo {background-position:-500px 0}
+
+.wp_themeSkin span.mce_redo {background-position:-480px -20px}
+.wp_themeSkin .mceButtonEnabled:hover span.mce_redo,
+.wp_themeSkin .mceButtonActive span.mce_redo {background-position:-480px 0}
+
+.wp_themeSkin span.mce_bullist {background-position:-40px -20px}
+.wp_themeSkin .mceButtonEnabled:hover span.mce_bullist,
+.wp_themeSkin .mceButtonActive span.mce_bullist,
+.wp_themeSkin .mceSplitButton:hover span.mce_bullist {background-position:-40px 0}
+
+.wp_themeSkin span.mce_numlist {background-position:-60px -20px}
+.wp_themeSkin .mceButtonEnabled:hover span.mce_numlist,
+.wp_themeSkin .mceButtonActive span.mce_numlist,
+.wp_themeSkin .mceSplitButton:hover span.mce_numlist {background-position:-60px 0}
+
+.wp_themeSkin span.mce_blockquote {background-position:-80px -20px}
+.wp_themeSkin .mceButtonEnabled:hover span.mce_blockquote,
+.wp_themeSkin .mceButtonActive span.mce_blockquote {background-position:-80px 0}
+
+.wp_themeSkin span.mce_charmap {background-position:-420px -20px}
+.wp_themeSkin .mceButtonEnabled:hover span.mce_charmap,
+.wp_themeSkin .mceButtonActive span.mce_charmap {background-position:-420px 0}
+
+.wp_themeSkin span.mce_bold {background-position:0 -20px}
+.wp_themeSkin .mceButtonEnabled:hover span.mce_bold,
+.wp_themeSkin .mceButtonActive span.mce_bold {background-position:0 0}
+
+.wp_themeSkin span.mce_italic {background-position:-20px -20px}
+.wp_themeSkin .mceButtonEnabled:hover span.mce_italic,
+.wp_themeSkin .mceButtonActive span.mce_italic {background-position:-20px 0}
+
+.wp_themeSkin span.mce_underline {background-position:-280px -20px}
+.wp_themeSkin .mceButtonEnabled:hover span.mce_underline,
+.wp_themeSkin .mceButtonActive span.mce_underline {background-position:-280px 0}
+
+.wp_themeSkin span.mce_justifyleft {background-position:-100px -20px}
+.wp_themeSkin .mceButtonEnabled:hover span.mce_justifyleft,
+.wp_themeSkin .mceButtonActive span.mce_justifyleft {background-position:-100px 0}
+
+.wp_themeSkin span.mce_justifyright {background-position:-140px -20px}
+.wp_themeSkin .mceButtonEnabled:hover span.mce_justifyright,
+.wp_themeSkin .mceButtonActive span.mce_justifyright {background-position:-140px 0}
+
+.wp_themeSkin span.mce_justifycenter {background-position:-120px -20px}
+.wp_themeSkin .mceButtonEnabled:hover span.mce_justifycenter,
+.wp_themeSkin .mceButtonActive span.mce_justifycenter {background-position:-120px 0}
+
+.wp_themeSkin span.mce_justifyfull {background-position:-300px -20px}
+.wp_themeSkin .mceButtonEnabled:hover span.mce_justifyfull,
+.wp_themeSkin .mceButtonActive span.mce_justifyfull {background-position:-300px 0}
+
+.wp_themeSkin span.mce_indent {background-position:-460px -20px}
+.wp_themeSkin .mceButtonEnabled:hover span.mce_indent,
+.wp_themeSkin .mceButtonActive span.mce_indent {background-position:-460px 0}
+
+.wp_themeSkin span.mce_outdent {background-position:-440px -20px}
+.wp_themeSkin .mceButtonEnabled:hover span.mce_outdent,
+.wp_themeSkin .mceButtonActive span.mce_outdent {background-position:-440px 0}
+
+.wp_themeSkin span.mce_link {background-position:-160px -20px}
+.wp_themeSkin .mceButtonEnabled:hover span.mce_link,
+.wp_themeSkin .mceButtonActive span.mce_link {background-position:-160px 0}
+
+.wp_themeSkin span.mce_unlink {background-position:-180px -20px}
+.wp_themeSkin .mceButtonEnabled:hover span.mce_unlink,
+.wp_themeSkin .mceButtonActive span.mce_unlink {background-position:-180px 0}
+
+.wp_themeSkin span.mce_help {background-position:-520px -20px}
+.wp_themeSkin .mceButtonEnabled:hover span.mce_help,
+.wp_themeSkin .mceButtonActive span.mce_help {background-position:-520px 0}
+
+.wp_themeSkin span.mce_removeformat {background-position:-380px -20px}
+.wp_themeSkin .mceButtonEnabled:hover span.mce_removeformat,
+.wp_themeSkin .mceButtonActive span.mce_removeformat {background-position:-380px 0}
+
+.wp_themeSkin span.mce_strikethrough {background-position:-540px -20px;}
+.wp_themeSkin .mceButtonEnabled:hover span.mce_strikethrough,
+.wp_themeSkin .mceButtonActive span.mce_strikethrough {background-position:-540px 0}
+
+.wp_themeSkin .mceSplitButton .mce_forecolor span.mce_forecolor {background-position:-320px -20px}
+.wp_themeSkin .mceSplitButtonEnabled:hover span.mce_forecolor,
+.wp_themeSkin .mceSplitButtonSelected span.mce_forecolor {background-position:-320px 0}
+
+.wp_themeSkin .mce_forecolorpicker {background-position:-320px -20px}
+
+/* Plugins in WP */
+.wp_themeSkin span.mce_fullscreen {background-position:-240px -20px}
+.wp_themeSkin .mceButtonEnabled:hover span.mce_fullscreen,
+.wp_themeSkin .mceButtonActive span.mce_fullscreen {background-position:-240px 0}
+
+.wp_themeSkin span.mce_wp_fullscreen {background-position:-240px -20px}
+.wp_themeSkin .mceButtonEnabled:hover span.mce_wp_fullscreen,
+.wp_themeSkin .mceButtonActive span.mce_wp_fullscreen {background-position:-240px 0}
+
+.wp_themeSkin span.mce_media {background-position:-400px -20px}
+.wp_themeSkin .mceButtonEnabled:hover span.mce_media,
+.wp_themeSkin .mceButtonActive span.mce_media {background-position:-400px 0}
+
+.wp_themeSkin span.mce_pastetext {background-position:-340px -20px}
+.wp_themeSkin .mceButtonEnabled:hover span.mce_pastetext,
+.wp_themeSkin .mceButtonActive span.mce_pastetext {background-position:-340px 0}
+
+.wp_themeSkin span.mce_pasteword {background-position:-360px -20px}
+.wp_themeSkin .mceButtonEnabled:hover span.mce_pasteword,
+.wp_themeSkin .mceButtonActive span.mce_pasteword {background-position:-360px 0}
+
+.wp_themeSkin span.mce_spellchecker {background-position:-220px -20px}
+.wp_themeSkin .mceButtonEnabled:hover span.mce_spellchecker,
+.wp_themeSkin .mceSplitButtonEnabled:hover span.mce_spellchecker,
+.wp_themeSkin .mceButtonActive span.mce_spellchecker,
+.wp_themeSkin .mceSplitButtonSelected span.mce_spellchecker {background-position:-220px 0}
+
+.wp_themeSkin span.mce_wp_help {background-position:-520px -20px}
+.wp_themeSkin .mceButtonEnabled:hover span.mce_wp_help,
+.wp_themeSkin .mceButtonActive span.mce_wp_help {background-position:-520px 0}
+
+.wp_themeSkin span.mce_wp_adv {background-position:-260px -20px}
+.wp_themeSkin .mceButtonEnabled:hover span.mce_wp_adv,
+.wp_themeSkin .mceButtonActive span.mce_wp_adv {background-position:-260px 0}
+
+.wp_themeSkin span.mce_wp_more {background-position:-200px -20px}
+.wp_themeSkin .mceButtonEnabled:hover span.mce_wp_more,
+.wp_themeSkin .mceButtonActive span.mce_wp_more {background-position:-200px 0}
+
+/* Default icons */
+.wp_themeSkin span.mce_cleanup {background-position:-380px -20px}
+.wp_themeSkin span.mce_anchor {background-position:-200px 0}
+.wp_themeSkin span.mce_sub {background-position:-600px 0}
+.wp_themeSkin span.mce_sup {background-position:-620px 0}
+.wp_themeSkin span.mce_newdocument {background-position:-520px 0}
+.wp_themeSkin span.mce_image {background-position:-380px 0}
+.wp_themeSkin span.mce_code {background-position:-260px 0}
+.wp_themeSkin span.mce_hr {background-position:-360px 0}
+.wp_themeSkin span.mce_visualaid {background-position:-660px 0}
+.wp_themeSkin span.mce_paste {background-position:-560px 0}
+.wp_themeSkin span.mce_copy {background-position:-700px 0}
+.wp_themeSkin span.mce_cut {background-position:-680px 0}
+.wp_themeSkin .mce_backcolor span.mceAction {background-position:-760px 0}
+.wp_themeSkin .mce_backcolorpicker {background-position:-760px 0}
+
+/* Plugins */
+.wp_themeSkin span.mce_advhr {background-position:-0px -20px}
+.wp_themeSkin span.mce_ltr {background-position:-20px -20px}
+.wp_themeSkin span.mce_rtl {background-position:-40px -20px}
+.wp_themeSkin span.mce_emotions {background-position:-60px -20px}
+.wp_themeSkin span.mce_fullpage {background-position:-80px -20px}
+.wp_themeSkin span.mce_iespell {background-position:-120px -20px}
+.wp_themeSkin span.mce_insertdate {background-position:-140px -20px}
+.wp_themeSkin span.mce_inserttime {background-position:-160px -20px}
+.wp_themeSkin span.mce_absolute {background-position:-180px -20px}
+.wp_themeSkin span.mce_backward {background-position:-200px -20px}
+.wp_themeSkin span.mce_forward {background-position:-220px -20px}
+.wp_themeSkin span.mce_insert_layer {background-position:-240px -20px}
+.wp_themeSkin span.mce_insertlayer {background-position:-260px -20px}
+.wp_themeSkin span.mce_movebackward {background-position:-280px -20px}
+.wp_themeSkin span.mce_moveforward {background-position:-300px -20px}
+.wp_themeSkin span.mce_nonbreaking {background-position:-340px -20px}
+.wp_themeSkin span.mce_selectall {background-position:-400px -20px}
+.wp_themeSkin span.mce_preview {background-position:-420px -20px}
+.wp_themeSkin span.mce_print {background-position:-440px -20px}
+.wp_themeSkin span.mce_cancel {background-position:-460px -20px}
+.wp_themeSkin span.mce_save {background-position:-480px -20px}
+.wp_themeSkin span.mce_replace {background-position:-500px -20px}
+.wp_themeSkin span.mce_search {background-position:-520px -20px}
+.wp_themeSkin span.mce_styleprops {background-position:-560px -20px}
+.wp_themeSkin span.mce_table {background-position:-580px -20px}
+.wp_themeSkin span.mce_cell_props {background-position:-600px -20px}
+.wp_themeSkin span.mce_delete_table {background-position:-620px -20px}
+.wp_themeSkin span.mce_delete_col {background-position:-640px -20px}
+.wp_themeSkin span.mce_delete_row {background-position:-660px -20px}
+.wp_themeSkin span.mce_col_after {background-position:-680px -20px}
+.wp_themeSkin span.mce_col_before {background-position:-700px -20px}
+.wp_themeSkin span.mce_row_after {background-position:-720px -20px}
+.wp_themeSkin span.mce_row_before {background-position:-740px -20px}
+.wp_themeSkin span.mce_merge_cells {background-position:-760px -20px}
+.wp_themeSkin span.mce_table_props {background-position:-980px -20px}
+.wp_themeSkin span.mce_row_props {background-position:-780px -20px}
+.wp_themeSkin span.mce_split_cells {background-position:-800px -20px}
+.wp_themeSkin span.mce_template {background-position:-820px -20px}
+.wp_themeSkin span.mce_visualchars {background-position:-840px -20px}
+.wp_themeSkin span.mce_abbr {background-position:-860px -20px}
+.wp_themeSkin span.mce_acronym {background-position:-880px -20px}
+.wp_themeSkin span.mce_attribs {background-position:-900px -20px}
+.wp_themeSkin span.mce_cite {background-position:-920px -20px}
+.wp_themeSkin span.mce_del {background-position:-940px -20px}
+.wp_themeSkin span.mce_ins {background-position:-960px -20px}
+.wp_themeSkin span.mce_pagebreak {background-position:0 -40px}
+.wp_themeSkin span.mce_restoredraft {background-position:-20px -40px}
+.wp_themeSkin span.mce_visualblocks {background-position: -40px -40px}
+
+/* border */
+.wp_themeSkin .mceExternalToolbar,
+.wp_themeSkin .mceButton,
+.wp_themeSkin a.mceButtonEnabled:hover,
+.wp_themeSkin a.mceButtonActive,
+.wp_themeSkin a.mceButtonSelected,
+.wp_themeSkin .mceListBox .mceText,
+.wp_themeSkin .mceListBox .mceOpen,
+.wp_themeSkin select.mceListBox,
+.wp_themeSkin .mceSplitButton a.mceAction,
+.wp_themeSkin .mceSplitButton a.mceOpen,
+.wp_themeSkin .mceSplitButton a.mceOpen:hover,
+.wp_themeSkin .mceSplitButtonSelected a.mceOpen,
+.wp_themeSkin table.mceSplitButtonEnabled:hover a.mceAction,
+.wp_themeSkin .mceSplitButton a.mceAction:hover,
+.wp_themeSkin div.mceColorSplitMenu table,
+.wp_themeSkin .mceColorSplitMenu a,
+.wp_themeSkin .mceColorSplitMenu a.mceMoreColors,
+.wp_themeSkin .mceColorSplitMenu a.mceMoreColors:hover,
+.wp_themeSkin a.mceMoreColors:hover,
+.wp_themeSkin .mceMenu {
+	border-style: solid;
+	border-width: 1px;
+}
+.wp_themeSkin .mceListBox .mceText {
+	border-right: 0 none;
+}
+.wp_themeSkin iframe {
+	background: transparent;
+}
+
+.wp_themeSkin .mceButton {
+	border-color: transparent;
+}
+
+.wp_themeSkin .mceListBox .mceText,
+.wp_themeSkin .mceListBox .mceOpen {
+	border-color: transparent;
+}
+
+.wp_themeSkin a.mceButtonEnabled:hover,
+.wp_themeSkin table.mceSplitButton:hover {
+	border-color: #bbb;
+	background: #eee;
+	background-image: -webkit-gradient(linear, left bottom, left top, from(#e5e5e5), to(#fff));
+	background-image: -webkit-linear-gradient(bottom, #e5e5e5, #fff);
+	background-image:    -moz-linear-gradient(bottom, #e5e5e5, #fff);
+	background-image:      -o-linear-gradient(bottom, #e5e5e5, #fff);
+	background-image: linear-gradient(to top, #e5e5e5, #fff);
+}
+
+.wp_themeSkin a.mceButton:active,
+.wp_themeSkin a.mceButtonEnabled:active,
+.wp_themeSkin a.mceButtonSelected:active,
+.wp_themeSkin a.mceButtonActive,
+.wp_themeSkin a.mceButtonActive:active,
+.wp_themeSkin a.mceButtonActive:hover,
+.wp_themeSkin .mceSplitButtonSelected table,
+.wp_themeSkin .mceSplitButtonSelected table:hover {
+	outline: none;
+	border-color: #999 #ccc #ccc #999;
+	background: #eee;
+	background-image: -webkit-gradient(linear, left bottom, left top, from(#f6f6f6), to(#e3e3e3));
+	background-image: -webkit-linear-gradient(bottom, #f6f6f6, #e3e3e3);
+	background-image:    -moz-linear-gradient(bottom, #f6f6f6, #e3e3e3);
+	background-image:      -o-linear-gradient(bottom, #f6f6f6, #e3e3e3);
+	background-image: linear-gradient(to top, #f6f6f6, #e3e3e3);
+}
+
+.wp_themeSkin .mceSplitButtonSelected table a.mceOpen,
+.wp_themeSkin .mceSplitButtonSelected table a.mceAction {
+	border-color: #999 #ccc #ccc #999;
+}
+
+.wp_themeSkin .mceButtonDisabled {
+	border-color: transparent;
+}
+
+.wp_themeSkin .mceListBox .mceOpen {
+	border-left: 0;
+}
+
+.wp_themeSkin .mceListBoxEnabled:hover,
+.wp_themeSkin .mceListBoxEnabled:active,
+.wp_themeSkin .mceListBoxHover,
+.wp_themeSkin .mceListBoxHover:active,
+.wp_themeSkin .mceListBoxSelected {
+	-webkit-box-shadow: inset 0 1px 1px -1px rgba(0, 0, 0, .3);
+	box-shadow:         inset 0 1px 1px -1px rgba(0, 0, 0, .3);
+	border-color: #bbb;
+}
+
+/* SplitButton */
+.wp_themeSkin .mceSplitButton .mceLast span.mceOpen .mceIconOnly {
+	display: block;
+}
+
+.wp_themeSkin .mceSplitButton a.mceAction,
+.wp_themeSkin .mceSplitButton a.mceOpen {
+	border-color: transparent;
+}
+
+.wp_themeSkin .mceSplitButton:hover a {
+	border-color: #bbb;
+}
+
+.wp_themeSkin .mceSplitButtonEnabled a.mceOpen,
+.wp_themeSkin .mceSplitButtonSelected a.mceOpen,
+.wp_themeSkin .mceSplitButtonActive a.mceOpen,
+.wp_themeSkin .mceSplitButtonEnabled:hover a.mceOpen {
+	background-image: url("../images/down_arrow.gif");
+	background-position: 1px 2px;
+	background-repeat: no-repeat;
+	border-left: 0;
+}
+
+.wp_themeSkin .mceSplitButtonActive td {
+	-webkit-border-radius: 3px;
+	border-radius: 3px;
+}
+
+.wp_themeSkin .mceColorSplitMenu a.mceMoreColors:hover {
+	border-color: #0A246A;
+	background-color: #B6BDD2;
+}
+
+.wp_themeSkin a.mceMoreColors:hover {
+	border-color: #0A246A;
+}
+
+.wp_themeSkin .mceMenuItemDisabled .mceText {
+	color: #888;
+}
+
+#mceModalBlocker {
+	background: #000;
+}
+
+/* WP specific */
+.wp-editor-wrap {
+	position: relative;
+}
+
+.wp-editor-area {
+	font-family: Consolas, Monaco, monospace;
+	padding: 10px;
+	margin: 1px 0 0;
+	line-height: 150%;
+	border: 0 none;
+	outline: none;
+	display: block;
+	resize: vertical;
+	-moz-box-sizing: border-box;
+	-webkit-box-sizing: border-box;
+	box-sizing: border-box;
+}
+
+.wp-editor-tools {
+	height: 30px;
+	padding: 0 10px 0 0;
+}
+
+.rtl .wp-editor-tools {
+	padding: 0 0 0 10px;
+}
+
+.wp-editor-container {
+    border-width: 1px;
+	border-style: solid;
+	-webkit-border-top-right-radius: 3px;
+	-webkit-border-top-left-radius: 3px;
+	border-top-right-radius: 3px;
+	border-top-left-radius: 3px;
+	border-color: #ccc #ccc #dfdfdf;
+}
+
+.wp-editor-container textarea.wp-editor-area {
+	width: 100%;
+	margin: 0;
+	-webkit-box-shadow: none;
+	box-shadow: none;
+}
+
+.quicktags-toolbar,
+.wp_themeSkin tr.mceFirst td.mceToolbar {
+	border-bottom: 1px solid #d1d1d1;
+	background: #eee;
+	background-image: -webkit-gradient(linear, left bottom, left top, from(#e5e5e5), to(#f4f4f4));
+	background-image: -webkit-linear-gradient(bottom, #e5e5e5, #f4f4f4);
+	background-image:    -moz-linear-gradient(bottom, #e5e5e5, #f4f4f4);
+	background-image:      -o-linear-gradient(bottom, #e5e5e5, #f4f4f4);
+	background-image: linear-gradient(to top, #e5e5e5, #f4f4f4);
+}
+
+.wp-switch-editor {
+	height: 18px;
+    font: 13px/18px Arial,Helvetica,sans-serif normal;
+	margin: 5px 5px 0 0;
+	padding: 4px 5px 2px;
+	float: right;
+	cursor: pointer;
+	border-width: 1px;
+	border-style: solid;
+	-webkit-border-top-right-radius: 3px;
+	-webkit-border-top-left-radius: 3px;
+	border-top-right-radius: 3px;
+	border-top-left-radius: 3px;
+	background-color: #f1f1f1;
+	border-color: #dfdfdf #dfdfdf #ccc;
+	color: #999;
+}
+
+html[dir="rtl"] .wp-switch-editor {
+	float: left;
+}
+
+.wp-switch-editor:active {
+	background-color: #f1f1f1;
+}
+
+.wp-switch-editor:hover {
+	text-decoration: none !important;
+}
+
+.js .tmce-active .wp-editor-area {
+	color: white;
+}
+
+.tmce-active .quicktags-toolbar {
+	 display: none;
+}
+
+.tmce-active .switch-tmce,
+.html-active .switch-html {
+	border-color: #ccc #ccc #f4f4f4;
+	background-color: #f4f4f4;
+	color: #555;
+}
+
+.wp-media-buttons .button {
+	margin-right: 5px;
+}
+
+.rtl .wp-media-buttons .button {
+	margin-right: 0;
+	margin-left: 5px;
+}
+
+.wp-media-buttons .insert-media {
+	padding-left: 0.4em;
+}
+
+.rtl .wp-media-buttons .insert-media {
+	padding-left: 10px;
+	padding-right: 0.4em;
+}
+
+.wp-media-buttons a {
+	text-decoration: none;
+	color: #464646;
+	font-size: 12px;
+}
+
+.wp-media-buttons img {
+	padding: 0 4px;
+	vertical-align: middle;
+}
+
+.wp-media-buttons span.wp-media-buttons-icon {
+	display: inline-block;
+	width: 16px;
+	height: 16px;
+	vertical-align: text-top;
+	margin: 0 2px;
+}
+
+.wp-media-buttons .add_media span.wp-media-buttons-icon {
+	background: url('../../wp-admin/images/media-button.png') no-repeat top left;
+}
+
+.quicktags-toolbar {
+	border-bottom-style: solid;
+	border-bottom-width: 1px;
+	-webkit-border-top-right-radius: 3px;
+	-webkit-border-top-left-radius: 3px;
+	border-top-right-radius: 3px;
+	border-top-left-radius: 3px;
+	padding: 2px 8px 0;
+	min-height: 29px;
+}
+
+.quicktags-toolbar > div {
+	padding: 2px 4px 0;
+}
+
+.quicktags-toolbar input {
+	margin: 2px 1px 4px;
+	line-height: 18px;
+	display: inline-block;
+	min-width: 26px;
+	padding: 2px 4px;
+	font: 12px/18px Arial, Helvetica, sans-serif normal;
+	color: #464646;
+	border: 1px solid #c3c3c3;
+	-webkit-border-radius: 3px;
+	border-radius: 3px;
+	background: #eee;
+	background-image: -webkit-gradient(linear, left bottom, left top, from(#e3e3e3), to(#fff));
+	background-image: -webkit-linear-gradient(bottom, #e3e3e3, #fff);
+	background-image:    -moz-linear-gradient(bottom, #e3e3e3, #fff);
+	background-image:      -o-linear-gradient(bottom, #e3e3e3, #fff);
+	background-image: linear-gradient(to top, #e3e3e3, #fff);
+}
+
+.quicktags-toolbar input:hover {
+	border-color: #aaa;
+	background: #ddd;
+}
+
+.quicktags-toolbar input[value="link"] {
+	text-decoration: underline;
+}
+
+.quicktags-toolbar input[value="del"] {
+	text-decoration: line-through;
+}
+
+.quicktags-toolbar input[value="i"] {
+	font-style: italic;
+}
+
+.quicktags-toolbar input[value="b"] {
+	font-weight: bold;
+}
+
+#wp_editbtns,
+#wp_gallerybtns {
+	padding: 2px;
+	position: absolute;
+	display: none;
+	z-index: 155000;
+}
+
+#wp_editimgbtn,
+#wp_delimgbtn,
+#wp_editgallery,
+#wp_delgallery {
+	border-color: #999;
+	background-color: #eee;
+	margin: 2px;
+	padding: 2px;
+	border-width: 1px;
+	border-style: solid;
+	-webkit-border-radius: 3px;
+	border-radius: 3px;
+}
+
+#wp_editimgbtn:hover,
+#wp_delimgbtn:hover,
+#wp_editgallery:hover,
+#wp_delgallery:hover {
+	border-color: #555;
+	background-color: #ccc;
+}
+
+/*------------------------------------------------------------------------------
+ wp-link
+------------------------------------------------------------------------------*/
+
+#wp-link {
+	background-color: #F5F5F5;
+	line-height: 1.4em;
+	font-size: 12px;
+}
+
+#wp-link ol,
+#wp-link ul {
+	list-style: none;
+	margin: 0;
+	padding: 0;
+}
+
+#wp-link input[type="text"] {
+	-webkit-box-sizing: border-box;
+}
+
+#wp-link input[type="text"],
+#wp-link textarea {
+	border-width: 1px;
+	border-style: solid;
+	-webkit-border-radius: 4px;
+	border-radius: 4px;
+	font-size: 12px;
+	margin: 1px;
+	padding: 3px;
+}
+
+#wp-link #link-options {
+	padding: 10px 0 14px;
+	border-bottom: 1px solid #dfdfdf;
+	margin: 0 6px 14px;
+}
+
+#wp-link p.howto {
+	margin: 3px;
+}
+
+#wp-link #internal-toggle {
+	display: inline-block;
+	cursor: pointer;
+	padding-left: 18px;
+}
+
+#wp-link .toggle-arrow {
+	background: transparent url( '../images/toggle-arrow.png' ) top left no-repeat;
+	height: 23px;
+	line-height: 23px;
+}
+
+#wp-link .toggle-arrow-active {
+	background-position: center left;
+}
+
+#wp-link label input[type="text"] {
+	width: 360px;
+	margin-top: 5px;
+}
+
+#wp-link #link-options label span,
+#wp-link #search-panel label span.search-label {
+	display: inline-block;
+	width: 80px;
+	text-align: right;
+	padding-right: 5px;
+}
+
+#wp-link .link-search-field {
+	float: left;
+	margin-right: 5px;
+}
+
+#wp-link .link-search-wrapper {
+	margin: 5px 6px 9px;
+	display: block;
+	overflow: hidden;
+}
+
+#wp-link .link-search-wrapper span {
+	float: left;
+	margin-top: 4px;
+}
+
+#wp-link .link-search-wrapper input[type="text"] {
+	float: left;
+	width: 220px;
+}
+
+#wp-link .link-search-wrapper .spinner {
+	margin: 4px 2px 0 0;
+	display: none;
+	vertical-align: text-bottom;
+}
+
+#wp-link .link-target {
+	width: auto;
+	padding: 3px 0 0;
+	margin: 0 0 0 87px;
+	font-size: 11px;
+}
+
+#wp-link .query-results {
+	border: 1px #dfdfdf solid;
+	margin: 0 5px 5px;
+	background: #fff;
+	height: 185px;
+	overflow: auto;
+	position: relative;
+}
+
+#wp-link li,
+#wp-link .query-notice {
+	clear: both;
+	margin-bottom: 0;
+	border-bottom: 1px solid #f1f1f1;
+	color: #333;
+	padding: 4px 6px;
+	cursor: pointer;
+	position: relative;
+}
+
+#wp-link li:hover {
+	background: #eaf2fa;
+	color: #151515;
+}
+
+#wp-link li.unselectable {
+	border-bottom: 1px solid #dfdfdf;
+}
+
+#wp-link li.unselectable:hover {
+	background: #fff;
+	cursor: auto;
+	color: #333;
+}
+
+#wp-link li.selected {
+	background: #ddd;
+	color: #333;
+}
+
+#wp-link li.selected .item-title {
+	font-weight: bold;
+}
+
+#wp-link .item-title {
+	display: inline-block;
+	width: 80%;
+}
+
+#wp-link .item-info {
+	text-transform: uppercase;
+	color: #666;
+	font-size: 11px;
+	position: absolute;
+	right: 5px;
+	top: 4px;
+	bottom: 0;
+}
+
+#wp-link #search-results {
+	display: none;
+}
+
+#wp-link  #search-panel {
+	float: left;
+	width: 100%;
+}
+
+#wp-link .river-waiting {
+	display: none;
+	padding: 10px 0;
+}
+
+#wp-link .river-waiting .spinner {
+	margin: 0 auto;
+	display: block;
+}
+
+#wp-link .submitbox {
+	padding: 5px 10px;
+	font-size: 11px;
+	overflow: auto;
+	height: 29px;
+}
+
+#wp-link-cancel {
+	line-height: 25px;
+	float: left;
+}
+
+#wp-link-update {
+	line-height: 23px;
+	float: right;
+}
+
+/*
+ * Based on:
+ * jQuery UI CSS Framework @VERSION
+ *
+ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Theming/API
+ */
+
+/* Layout helpers
+----------------------------------*/
+.ui-helper-hidden { display: none; }
+.ui-helper-hidden-accessible { position: absolute; left: -99999999px; }
+.ui-helper-reset { margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; }
+.ui-helper-clearfix:after { content: "."; display: block; height: 0; clear: both; visibility: hidden; }
+.ui-helper-clearfix { display: inline-block; }
+/* required comment for clearfix to work in Opera \*/
+* html .ui-helper-clearfix { height:1%; }
+.ui-helper-clearfix { display:block; }
+/* end clearfix */
+.ui-helper-zfix { width: 100%; height: 100%; top: 0; left: 0; position: absolute; opacity: 0; filter:Alpha(Opacity=0); }
+
+/* Interaction Cues
+----------------------------------*/
+.ui-state-disabled { cursor: default !important; }
+
+/* Icons
+----------------------------------*/
+
+/* states and images */
+.ui-icon { display: block; text-indent: -99999px; overflow: hidden; background-repeat: no-repeat; }
+
+/* Misc visuals
+----------------------------------*/
+
+/* Overlays */
+.ui-widget-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }
+
+/*
+ * jQuery UI Resizable
+ *
+ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Resizable#theming
+ */
+.ui-resizable { position: relative;}
+.ui-resizable-handle { position: absolute;font-size: 0.1px;z-index: 99999; display: block;}
+.ui-resizable-disabled .ui-resizable-handle, .ui-resizable-autohide .ui-resizable-handle { display: none; }
+.ui-resizable-n { cursor: n-resize; height: 7px; width: 100%; top: -5px; left: 0; }
+.ui-resizable-s { cursor: s-resize; height: 7px; width: 100%; bottom: -5px; left: 0; }
+.ui-resizable-e { cursor: e-resize; width: 7px; right: -5px; top: 0; height: 100%; }
+.ui-resizable-w { cursor: w-resize; width: 7px; left: -5px; top: 0; height: 100%; }
+.ui-resizable-se { cursor: se-resize; width: 12px; height: 12px; right: 1px; bottom: 1px; }
+.ui-resizable-sw { cursor: sw-resize; width: 9px; height: 9px; left: -5px; bottom: -5px; }
+.ui-resizable-nw { cursor: nw-resize; width: 9px; height: 9px; left: -5px; top: -5px; }
+.ui-resizable-ne { cursor: ne-resize; width: 9px; height: 9px; right: -5px; top: -5px;}
+
+/*
+ * jQuery UI Dialog
+ *
+ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Dialog#theming
+ */
+.wp-dialog { position: absolute; width: 300px; overflow: hidden; }
+.wp-dialog .ui-dialog-titlebar { position: relative; }
+.wp-dialog .ui-dialog-titlebar-close span { display: block; margin: 1px; }
+.wp-dialog .ui-dialog-content { position: relative; border: 0; padding: 0; background: none; overflow: auto; zoom: 1; }
+.wp-dialog .ui-dialog-buttonpane { text-align: left; border-width: 1px 0 0 0; background-image: none; margin: .5em 0 0 0; padding: .3em 1em .5em .4em; }
+.wp-dialog .ui-dialog-buttonpane .ui-dialog-buttonset { float: right; }
+.wp-dialog .ui-dialog-buttonpane button { margin: .5em .4em .5em 0; cursor: pointer; }
+.wp-dialog .ui-resizable-se { width: 14px; height: 14px; right: 3px; bottom: 3px; }
+.ui-draggable .ui-dialog-titlebar { cursor: move; }
+
+/* WP jQuery Dialog Theme */
+.wp-dialog {
+	border: 1px solid #999;
+	-webkit-box-shadow: 0px 0px 16px rgba( 0,0,0,0.3 );
+	box-shadow: 0px 0px 16px rgba( 0,0,0,0.3 );
+}
+
+.wp-dialog .ui-dialog-title {
+	display: block;
+	text-align: center;
+	padding: 1px 0 2px;
+}
+
+.wp-dialog .ui-dialog-titlebar {
+	padding: 0 1em;
+	background-color: #444;
+	font-weight: bold;
+	font-size: 11px;
+	line-height: 18px;
+	color: #e5e5e5;
+}
+
+.wp-dialog {
+	background-color: #fff;
+	-webkit-border-top-left-radius: 4px;
+	-webkit-border-top-right-radius: 4px;
+	border-top-left-radius: 4px;
+	border-top-right-radius: 4px;
+}
+
+.wp-dialog .ui-dialog-titlebar {
+	-webkit-border-top-left-radius: 3px;
+	-webkit-border-top-right-radius: 3px;
+	border-top-left-radius: 3px;
+	border-top-right-radius: 3px;
+}
+
+.wp-dialog .ui-dialog-titlebar-close {
+	position: absolute;
+	width: 29px;
+	height: 16px;
+	top: 2px;
+	right: 6px;
+	background: url('../js/tinymce/plugins/inlinepopups/skins/clearlooks2/img/buttons.gif') no-repeat -87px -16px;
+	padding: 0;
+}
+
+.wp-dialog .ui-dialog-titlebar-close:hover,
+.wp-dialog .ui-dialog-titlebar-close:focus {
+	background-position: -87px -32px;
+}
+
+.ui-widget-overlay {
+	background-color: #000;
+	opacity: 0.6;
+	filter: alpha(opacity=60);
+}
+
+/*
+RTL
+*/
+.rtl #wp-link #internal-toggle {
+	padding-right: 18px;
+	padding-left: 0;
+}
+
+.rtl #wp-link label span {
+	text-align: left;
+	padding-left: 5px;
+	padding-right: 0;
+}
+
+.rtl #wp-link .link-search-wrapper span {
+	float: right;
+}
+
+.rtl #wp-link .link-search-wrapper input[type="text"] {
+	float: right;
+}
+
+.rtl #wp-link .link-target {
+	margin: 0 87px 0 0;
+}
+
+.rtl #wp-link .item-info {
+	left: 5px;
+	right: auto;
+	top: 4px;
+	bottom: 0;
+}
+
+.rtl #wp-link #search-panel {
+	float: right;
+}
+
+.rtl #wp-link-cancel {
+	float: right;
+}
+
+.rtl #wp-link-update {
+	float: left;
+}
+
+.rtl #wp-link .toggle-arrow {
+	background-position: top right;
+}
+
+.rtl #wp-link .toggle-arrow-active {
+	background-position: center right;
+}
+
+.rtl .wp_themeSkin .mceListBox .mceText {
+	text-align: right;
+}
+
+.rtl .wp_themeSkin .mceNoIcons a .mceText {
+	padding-right: 10px;
+	padding-left: 25px;
+}
+
+.rtl .mceListBoxMenu.mceNoIcons {
+	margin-left: -14px;
+}
+
+.clearlooks2 .mceFocus .mceTop .mceLeft {
+	background: #444444;
+	border-left: 1px solid #999;
+	border-top: 1px solid #999;
+	-webkit-border-top-left-radius: 3px;
+	border-top-left-radius: 3px;
+}
+
+.clearlooks2 .mceFocus .mceTop .mceRight {
+	background: #444444;
+	border-right: 1px solid #999;
+	border-top: 1px solid #999;
+	-webkit-border-top-right-radius: 3px;
+	border-top-right-radius: 3px;
+}
+
+.clearlooks2 .mceMiddle .mceLeft {
+	background: #f1f1f1;
+	border-left: 1px solid #999;
+}
+
+.clearlooks2 .mceMiddle .mceRight {
+	background: #f1f1f1;
+	border-right: 1px solid #999;
+}
+
+.clearlooks2 .mceBottom {
+	background: #f1f1f1;
+	border-bottom: 1px solid #999;
+}
+
+.clearlooks2 .mceBottom .mceLeft {
+	background: #f1f1f1;
+	border-bottom: 1px solid #999;
+	border-left: 1px solid #999;
+}
+
+.clearlooks2 .mceBottom .mceCenter {
+	background: #f1f1f1;
+	border-bottom: 1px solid #999;
+}
+
+.clearlooks2 .mceBottom .mceRight {
+	background: #f1f1f1;
+	border-bottom: 1px solid #999;
+	border-right: 1px solid #999;
+}
+
+.clearlooks2 .mceFocus .mceTop span {
+	color: #e5e5e5;
+}
+
+
+/* Distraction Free Writing mode
+ * =Overlay Styles
+-------------------------------------------------------------- */
+.fullscreen-overlay {
+	z-index: 149999;
+	display: none;
+	position: fixed;
+	top: 0;
+	bottom: 0;
+	left: 0;
+	right: 0;
+	filter: inherit;
+}
+
+.fullscreen-active .fullscreen-overlay,
+.fullscreen-active #wp-fullscreen-body {
+	display: block;
+}
+
+.fullscreen-fader {
+	z-index: 200000;
+}
+
+.fullscreen-active .fullscreen-fader {
+	display: none;
+}
+
+/* =Overlay Body
+-------------------------------------------------------------- */
+#wp-fullscreen-body {
+	width: 100%;
+	z-index: 150005;
+	display: none;
+	position: absolute;
+	top: 0;
+	left: 0;
+	font-size: 12px;
+}
+
+#wp-fullscreen-wrap {
+	margin: 0 auto 50px;
+	position: relative;
+	padding-top: 60px;
+}
+
+#wp-fullscreen-title {
+    font-size: 1.7em;
+    line-height: 100%;
+    outline: medium none;
+    padding: 6px 7px;
+    width: 100%;
+    margin-bottom: 30px;
+}
+
+#wp-fullscreen-container {
+	padding: 4px 10px 50px;
+}
+
+#wp-fullscreen-title,
+#wp-fullscreen-container {
+	-webkit-border-radius: 0;
+	border-radius: 0;
+	border: 1px dashed transparent;
+	background: transparent;
+	-moz-transition-property: border-color;
+	-moz-transition-duration: 0.6s;
+	-webkit-transition-property: border-color;
+	-webkit-transition-duration: 0.6s;
+	-o-transition-property: border-color;
+	-o-transition-duration: 0.6s;
+	transition-property: border-color;
+	transition-duration: 0.6s;
+}
+
+#wp_mce_fullscreen {
+	width: 100%;
+	min-height: 300px;
+	border: 0;
+	background: transparent;
+	font-family: Consolas, Monaco, monospace;
+	line-height: 1.6em;
+	padding: 0;
+	overflow-y: hidden;
+	outline: none;
+	resize: none;
+}
+
+#wp-fullscreen-tagline {
+	color: #BBBBBB;
+	font-size: 18px;
+	float: right;
+	padding-top: 5px;
+}
+
+/* =Top bar
+-------------------------------------------------------------- */
+#fullscreen-topbar {
+	position: fixed;
+	top: 0;
+	left: 0;
+	z-index: 150050;
+	border-bottom-style: solid;
+	border-bottom-width: 1px;
+	min-width: 800px;
+	width: 100%;
+	height: 40px;
+}
+
+#wp-fullscreen-toolbar {
+	padding: 6px 10px 0;
+	clear: both;
+	max-width: 1100px;
+	min-width: 820px;
+	margin: 0 auto;
+}
+
+#wp-fullscreen-mode-bar,
+#wp-fullscreen-button-bar,
+#wp-fullscreen-close,
+#wp-fullscreen-count {
+	float: left;
+}
+
+#wp-fullscreen-save {
+	float: right;
+	padding: 2px 2px 0 5px;
+}
+
+#wp-fullscreen-count,
+#wp-fullscreen-close {
+	padding-top: 5px;
+}
+
+#wp-fullscreen-central-toolbar {
+	margin: auto;
+	padding: 0;
+}
+
+#wp-fullscreen-buttons > div {
+	float: left;
+}
+
+#wp-fullscreen-mode-bar {
+	padding: 1px 14px 0 0;
+}
+
+#wp-fullscreen-modes a {
+	display: block;
+	font-size: 11px;
+	text-decoration: none;
+	float: left;
+	margin: 1px 0 0 0;
+	padding: 2px 6px 2px;
+	border-width: 1px 1px 1px 0;
+	border-style: solid;
+	border-color: #bbb;
+	color: #777;
+	text-shadow: 0 1px 0 #fff;
+	background-color: #f4f4f4;
+	background: #f4f4f4;
+	background-image: -webkit-gradient(linear, left bottom, left top, from(#e4e4e4), to(#f9f9f9));
+	background-image: -webkit-linear-gradient(bottom, #e4e4e4, #f9f9f9);
+	background-image:    -moz-linear-gradient(bottom, #e4e4e4, #f9f9f9);
+	background-image:      -o-linear-gradient(bottom, #e4e4e4, #f9f9f9);
+	background-image: linear-gradient(to top, #e4e4e4, #f9f9f9);
+}
+
+#wp-fullscreen-modes a:hover,
+.wp-html-mode #wp-fullscreen-modes a:last-child,
+.wp-tmce-mode #wp-fullscreen-modes a:first-child {
+	color: #333;
+	border-color: #999;
+	background: #eee;
+	background-image: -webkit-gradient(linear, left top, left bottom, from(#e4e4e4), to(#f9f9f9));
+	background-image: -webkit-linear-gradient(top, #e4e4e4, #f9f9f9);
+	background-image:    -moz-linear-gradient(top, #e4e4e4, #f9f9f9);
+	background-image:      -o-linear-gradient(top, #e4e4e4, #f9f9f9);
+	background-image: linear-gradient(to bottom, #e4e4e4, #f9f9f9);
+}
+
+#wp-fullscreen-modes a:first-child {
+	border-width: 1px;
+	-webkit-border-top-left-radius: 3px;
+	-webkit-border-bottom-left-radius: 3px;
+	border-top-left-radius: 3px;
+	border-bottom-left-radius: 3px;
+}
+
+#wp-fullscreen-modes a:last-child {
+	-webkit-border-top-right-radius: 3px;
+	-webkit-border-bottom-right-radius: 3px;
+	border-top-right-radius: 3px;
+	border-bottom-right-radius: 3px;
+}
+
+#wp-fullscreen-buttons .active a {
+	background: inherit;
+}
+
+#wp-fullscreen-buttons .hidden {
+	display: none;
+}
+
+#wp-fullscreen-buttons .disabled {
+	opacity: 0.5;
+}
+
+.wp-html-mode #wp-fullscreen-buttons div {
+	display: none;
+}
+
+.wp-html-mode #wp-fullscreen-buttons div.wp-fullscreen-both {
+	display: block;
+}
+
+#fullscreen-topbar.fullscreen-make-sticky {
+	display: block !important;
+}
+
+#wp-fullscreen-save img {
+	vertical-align: middle;
+}
+
+#wp-fullscreen-save img,
+#wp-fullscreen-save span {
+	padding-right: 4px;
+	display: none;
+}
+
+#wp-fullscreen-buttons #wp_fs_image span.mce_image {
+	background-image: url('../../wp-admin/images/media-button.png');
+	background-position: 2px 2px;
+}
+
+/* =Thickbox Adjustments
+-------------------------------------------------------------- */
+.fullscreen-active #TB_overlay {
+	z-index: 150100;
+}
+
+.fullscreen-active #TB_window {
+	z-index: 150102;
+}
+
+/* =TinyMCE Adjustments
+-------------------------------------------------------------- */
+#wp_mce_fullscreen_ifr {
+	background: transparent;
+}
+
+#wp_mce_fullscreen_parent #wp_mce_fullscreen_tbl tr.mceFirst {
+	display : none;
+}
+
+#wp-fullscreen-container .wp_themeSkin table td {
+	vertical-align: top;
+}
+
+/* Colors */
+.fullscreen-overlay {
+	background: #fff;
+}
+
+.wp-fullscreen-focus #wp-fullscreen-title,
+.wp-fullscreen-focus #wp-fullscreen-container {
+	border-color: #ccc;
+}
+
+#fullscreen-topbar {
+	border-bottom-color: #DFDFDF;
+	background: #f1f1f1;
+	background-image: -webkit-gradient(linear, left bottom, left top, from(#ececec), to(#f9f9f9));
+	background-image: -webkit-linear-gradient(bottom, #ececec, #f9f9f9);
+	background-image:    -moz-linear-gradient(bottom, #ececec, #f9f9f9);
+	background-image:      -o-linear-gradient(bottom, #ececec, #f9f9f9);
+	background-image: linear-gradient(to top, #ececec, #f9f9f9);
+}
+
+/* =CSS 3 transitions
+-------------------------------------------------------------- */
+
+.fade-1000,
+.fade-600,
+.fade-400,
+.fade-300 {
+	opacity: 0;
+	-moz-transition-property: opacity;
+	-webkit-transition-property: opacity;
+	-o-transition-property: opacity;
+	transition-property: opacity;
+}
+
+.fade-1000 {
+	-moz-transition-duration: 1s;
+	-webkit-transition-duration: 1s;
+	-o-transition-duration: 1s;
+	transition-duration: 1s;
+}
+
+.fade-600 {
+	-moz-transition-duration: 0.6s;
+	-webkit-transition-duration: 0.6s;
+	-o-transition-duration: 0.6s;
+	transition-duration: 0.6s;
+}
+
+.fade-400 {
+	-moz-transition-duration: 0.4s;
+	-webkit-transition-duration: 0.4s;
+	-o-transition-duration: 0.4s;
+	transition-duration: 0.4s;
+}
+
+.fade-300 {
+	-moz-transition-duration: 0.3s;
+	-webkit-transition-duration: 0.3s;
+	-o-transition-duration: 0.3s;
+	transition-duration: 0.3s;
+}
+
+.fade-trigger {
+	opacity: 1;
+}
+
+/* Distraction Free Writing - RTL
+ * =Overlay Styles
+-------------------------------------------------------------- */
+
+/* No RTL for now, this space intentionally left blank */
+
+/* =Overlay Body
+-------------------------------------------------------------- */
+.rtl #wp-fullscreen-tagline {
+	float: left;
+}
+
+/* =Top bar
+-------------------------------------------------------------- */
+.rtl #fullscreen-topbar {
+	left:auto;
+	right: 0;
+}
+
+.rtl #wp-fullscreen-mode-bar,
+.rtl #wp-fullscreen-button-bar,
+.rtl #wp-fullscreen-close,
+.rtl #wp-fullscreen-count {
+	float: right;
+}
+
+.rtl #wp-fullscreen-save {
+	float: left;
+}
+
+.rtl #wp-fullscreen-save {
+	padding: 2px 5px 0 2px;
+}
+
+.rtl #wp-fullscreen-buttons > div {
+	float: right;
+}
+
+.rtl #wp-fullscreen-mode-bar {
+	padding: 1px 0 0 14px;
+}
+
+.rtl #wp-fullscreen-modes a {
+	float: right;
+	border-width: 1px 0 1px 1px;
+}
+
+.rtl #wp-fullscreen-modes a:first-child {
+	-webkit-border-top-left-radius: 0;
+	-webkit-border-top-right-radius: 3px;
+	-webkit-border-bottom-left-radius: 0;
+	-webkit-border-bottom-right-radius: 3px;
+	border-width: 1px;
+	border-top-left-radius: 0;
+	border-top-right-radius: 3px;
+	border-bottom-left-radius: 0;
+	border-bottom-right-radius: 3px;
+}
+
+.rtl #wp-fullscreen-modes a:last-child {
+	-webkit-border-top-right-radius: 0;
+	-webkit-border-top-left-radius: 3px;
+	-webkit-border-bottom-right-radius: 0;
+	-webkit-border-bottom-left-radius: 3px;
+	border-top-right-radius: 0;
+	border-top-left-radius: 3px;
+	border-bottom-right-radius: 0;
+	border-bottom-left-radius: 3px;
+}
+
+.rtl #wp-fullscreen-save img,
+.rtl #wp-fullscreen-save span {
+	padding-right: 0;
+	padding-left: 4px;
+}
+
+/* =Thickbox Adjustments
+-------------------------------------------------------------- */
+/* No RTL for now, this space intentionally left blank */
+
+
+/* =TinyMCE Adjustments
+-------------------------------------------------------------- */
+/* No RTL for now, this space intentionally left blank */
+
+
+/* HiDPI */
+@media print,
+  (-o-min-device-pixel-ratio: 5/4),
+  (-webkit-min-device-pixel-ratio: 1.25),
+  (min-resolution: 120dpi) {
+	.wp_themeSkin span.mce_undo,
+	.wp_themeSkin span.mce_redo,
+	.wp_themeSkin span.mce_bullist,
+	.wp_themeSkin span.mce_numlist,
+	.wp_themeSkin span.mce_blockquote,
+	.wp_themeSkin span.mce_charmap,
+	.wp_themeSkin span.mce_bold,
+	.wp_themeSkin span.mce_italic,
+	.wp_themeSkin span.mce_underline,
+	.wp_themeSkin span.mce_justifyleft,
+	.wp_themeSkin span.mce_justifyright,
+	.wp_themeSkin span.mce_justifycenter,
+	.wp_themeSkin span.mce_justifyfull,
+	.wp_themeSkin span.mce_indent,
+	.wp_themeSkin span.mce_outdent,
+	.wp_themeSkin span.mce_link,
+	.wp_themeSkin span.mce_unlink,
+	.wp_themeSkin span.mce_help,
+	.wp_themeSkin span.mce_removeformat,
+	.wp_themeSkin span.mce_fullscreen,
+	.wp_themeSkin span.mce_wp_fullscreen,
+	.wp_themeSkin span.mce_media,
+	.wp_themeSkin span.mce_pastetext,
+	.wp_themeSkin span.mce_pasteword,
+	.wp_themeSkin span.mce_wp_help,
+	.wp_themeSkin span.mce_wp_adv,
+	.wp_themeSkin span.mce_wp_more,
+	.wp_themeSkin span.mce_strikethrough,
+	.wp_themeSkin span.mce_spellchecker,
+	.wp_themeSkin span.mce_forecolor,
+	.wp_themeSkin .mce_forecolorpicker,
+	.wp_themeSkin .mceSplitButton .mce_spellchecker span.mce_spellchecker,
+	.wp_themeSkin .mceSplitButton .mce_forecolor span.mce_forecolor,
+	.wp_themeSkin .mceSplitButton span.mce_numlist,
+	.wp_themeSkin .mceSplitButton span.mce_bullist {
+		background-image: url('../images/wpicons-2x.png?ver=20120720');
+		background-size: 560px 40px;
+	}
+
+	.wp-media-buttons .add_media span.wp-media-buttons-icon,
+	#wp-fullscreen-buttons #wp_fs_image span.mce_image {
+		background-image: url('../../wp-admin/images/media-button-2x.png');
+		background-size: 16px 16px;
+	}
+
+	.wp_themeSkin .mceListBox .mceOpen,
+	.wp_themeSkin .mceListBoxHover .mceOpen,
+	.wp_themeSkin .mceListBoxSelected .mceOpen,
+	.wp_themeSkin table.mceListBoxEnabled .mceOpen {
+		background-image: url('../images/down_arrow-2x.gif');
+		background-size: 10px 20px;
+	}
+
+	.wp_themeSkin .mceSplitButtonEnabled a.mceOpen,
+	.wp_themeSkin .mceSplitButtonSelected a.mceOpen,
+	.wp_themeSkin .mceSplitButtonActive a.mceOpen,
+	.wp_themeSkin .mceSplitButtonEnabled:hover a.mceOpen {
+		background-image: url('../images/down_arrow-2x.gif');
+		background-size: 10px 20px;
+	}
+
+	#wp-link .toggle-arrow {
+		background: transparent url('../images/toggle-arrow-2x.png') top left no-repeat;
+		background-size: 19px 69px;
+	}
+}
+
--- a/web/wp-includes/css/editor.dev.css	Wed Dec 19 12:35:13 2012 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,2021 +0,0 @@
-
-/*------------------------------------------------------------------------------
- TinyMCE and Quicklinks toolbars
-------------------------------------------------------------------------------*/
-
-/* wp_theme/ui.css */
-.wp_themeSkin table,
-.wp_themeSkin tbody,
-.wp_themeSkin a,
-.wp_themeSkin img,
-.wp_themeSkin tr,
-.wp_themeSkin div,
-.wp_themeSkin td,
-.wp_themeSkin iframe,
-.wp_themeSkin span,
-.wp_themeSkin *,
-.wp_themeSkin .mceText {
-	border: 0;
-	margin: 0;
-	padding: 0;
-	white-space: nowrap;
-	text-decoration: none;
-	font-weight: normal;
-	cursor: default;
-	vertical-align: baseline;
-	width: auto;
-	border-collapse: separate;
-}
-
-.wp_themeSkin a:hover,
-.wp_themeSkin a:link,
-.wp_themeSkin a:visited,
-.wp_themeSkin a:active {
-	text-decoration: none;
-	font-weight: normal;
-	cursor: default;
-}
-
-.wp_themeSkin table td {
-	vertical-align: middle;
-}
-
-.wp_themeSkin *,
-.wp_themeSkin a:hover,
-.wp_themeSkin a:link,
-.wp_themeSkin a:visited,
-.wp_themeSkin a:active {
-	color: #000;
-}
-
-/* Containers */
-.wp_themeSkin table {}
-
-.wp_themeSkin iframe {
-	display: block;
-}
-
-.wp_themeSkin #mce_fullscreen_ifr {
-	background-color: #fff;
-}
-
-.wp_themeSkin .mceToolbar {
-	padding: 1px;
-}
-
-/* External */
-.wp_themeSkin .mceExternalToolbar {
-	position: absolute;
-	border-bottom: 0;
-	display: none;
-}
-
-.wp_themeSkin .mceExternalToolbar td.mceToolbar {
-	padding-right: 13px;
-}
-
-.wp_themeSkin .mceExternalClose {
-	position: absolute;
-	top: 3px;
-	right: 3px;
-	width: 7px;
-	height: 7px;
-	background: url("../js/tinymce/themes/advanced/img/icons.gif") -820px 0;
-}
-
-/* Layout */
-.wp_themeSkin table.mceToolbar,
-.wp_themeSkin tr.mceFirst .mceToolbar tr td,
-.wp_themeSkin tr.mceLast .mceToolbar tr td {
-	border: 0;
-	margin: 0;
-	padding: 0;
-}
-
-.wp_themeSkin table.mceLayout {
-	border: 0;
-}
-
-.wp_themeSkin .mceStatusbar {
-	display: block;
-	font-family: Arial, "Bitstream Vera Sans", Helvetica, Verdana, sans-serif;
-	font-size: 12px;
-	line-height: 16px;
-	padding: 0 0 0 8px;
-	overflow: visible;
-	height: 20px;
-	border-top: 1px solid #dfdfdf;
-	color: #000;
-	background-color: #f5f5f5;
-}
-
-.rtl .wp_themeSkin .mceStatusbar {
-	padding: 0 8px 0 0;
-}
-
-.wp_themeSkin .mceStatusbar * {
-	color: #555;
-}
-
-.wp_themeSkin .mceStatusbar div {
-	float: left;
-	padding: 2px;
-}
-
-.rtl .wp_themeSkin .mceStatusbar div {
-	float: right;
-}
-
-.wp_themeSkin .mceStatusbar a.mceResize {
-	display: block;
-	float: right;
-	background: url("../js/tinymce/themes/advanced/img/icons.gif") -800px 0;
-	width: 20px;
-	height: 20px;
-	cursor: se-resize;
-}
-
-.rtl .wp_themeSkin .mceStatusbar a.mceResize {
-	float: left;
-}
-
-.wp_themeSkin .mceStatusbar a:hover {
-	text-decoration: underline;
-}
-
-.wp_themeSkin table.mceToolbar {
-	margin: 0 6px 2px;
-}
-
-.wp_themeSkin #content_toolbar1 {
-	margin-top: 2px;
-}
-
-.wp_themeSkin .mceToolbar .mceToolbarEndListBox span {
-	display: none;
-}
-
-.wp_themeSkin span.mceIcon,
-.wp_themeSkin img.mceIcon {
-	display: block;
-	width: 20px;
-	height: 20px;
-}
-
-.wp_themeSkin .mceIcon {
-	background: url("../js/tinymce/themes/advanced/img/icons.gif") no-repeat 20px 20px;
-}
-
-/* Button */
-.wp_themeSkin .mceButton {
-	display: block;
-	width: 20px;
-	height: 20px;
-	cursor: default;
-	padding: 1px 2px;
-	margin: 1px;
-	-webkit-border-radius: 2px;
-	border-radius: 2px;
-	-webkit-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.15), inset 0 0 2px 1px #fff;
-	-moz-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.15), inset 0 0 2px 1px #fff;
-	box-shadow: 0 1px 0 rgba(0, 0, 0, 0.15), inset 0 0 2px 1px #fff;
-}
-
-.wp_themeSkin a.mceButtonEnabled:hover {
-	background-image: inherit 0 -10px;
-}
-
-.wp_themeSkin .mceOldBoxModel a.mceButton span, .wp_themeSkin .mceOldBoxModel a.mceButton img {
-	margin: 0 0 0 1px;
-}
-
-.wp_themeSkin a.mceButton:active,
-.wp_themeSkin a.mceButtonActive,
-.wp_themeSkin a.mceButtonActive:hover,
-.wp_themeSkin a.mceButtonSelected {
-	-webkit-box-shadow:	 0 1px 1px rgba(0, 0, 0, 0.15), inset 0 0 2px 1px #fff;
-	-moz-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.15), inset 0 0 2px 1px #fff;
-	box-shadow: 0 1px 0 rgba(0, 0, 0, 0.15), inset 0 0 2px 1px #fff;
-}
-
-.wp_themeSkin .mceButtonDisabled .mceIcon {
-	opacity: 0.5;
-	filter: alpha(opacity=50);
-}
-
-/* Separator */
-.wp_themeSkin .mceSeparator {
-	height: 24px;
-	width: 1px;
-	display: block;
-	background: transparent;
-	overflow: hidden;
-	margin: 0 2px;
-}
-
-/* ListBox */
-.wp_themeSkin .mceListBox,
-.wp_themeSkin .mceListBox a {
-	display: block;
-}
-
-.wp_themeSkin .mceListBox .mceText {
-	padding: 1px 2px 1px 5px;
-	text-align: left;
-	text-decoration: none;
-	width: 70px;
-	-webkit-border-bottom-left-radius: 2px;
-	-webkit-border-top-left-radius: 2px;
-	border-bottom-left-radius: 2px;
-	border-top-left-radius: 2px;
-	-webkit-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.15), inset 0 0 2px 1px #fff;
-	-moz-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.15), inset 0 0 2px 1px #fff;
-	box-shadow: 0 1px 0 rgba(0, 0, 0, 0.15), inset 0 0 2px 1px #fff;
-	font-family: Arial, "Bitstream Vera Sans", Helvetica, Verdana, sans-serif;
-	font-size: 12px;
-	height: 20px;
-	line-height: 20px;
-	overflow: hidden;
-}
-
-.wp_themeSkin .mceListBox {
-	margin: 1px;
-	direction: ltr;
-}
-
-.wp_themeSkin .mceListBox .mceOpen {
-	width: 14px;
-	height: 20px;
-	border-collapse: separate;
-	padding: 1px;
-	-webkit-border-bottom-left-radius: 0;
-	-webkit-border-top-left-radius: 0;
-	border-bottom-left-radius: 0;
-	border-top-left-radius: 0;
-	-webkit-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.15), inset 0 0 2px 1px #fff;
-	-moz-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.15), inset 0 0 2px 1px #fff;
-	box-shadow: 0 1px 0 rgba(0, 0, 0, 0.15), inset 0 0 2px 1px #fff;
-}
-
-.wp_themeSkin .mceListBox .mceOpen span {
-	display: block;
-	width: 14px;
-	height: 20px;
-	background-image: url("../images/down_arrow.gif");
-	background-position: 2px 1px;
-	background-repeat: no-repeat;
-}
-
-.wp_themeSkin table.mceListBoxEnabled:hover .mceText,
-.wp_themeSkin .mceListBoxHover .mceText,
-.wp_themeSkin .mceListBoxSelected .mceText,
-.wp_themeSkin table.mceListBoxEnabled:hover .mceOpen,
-.wp_themeSkin .mceListBoxHover .mceOpen,
-.wp_themeSkin .mceListBoxSelected .mceOpen {
-	background-image: none;
-}
-
-.wp_themeSkin .mceListBoxDisabled .mceText {
-	color: gray;
-}
-
-.wp_themeSkin .mceListBoxMenu {
-	overflow: auto;
-	overflow-x: hidden;
-}
-
-.wp_themeSkin .mceOldBoxModel .mceListBox .mceText {
-	height: 22px;
-}
-
-.wp_themeSkin select.mceListBox {
-	font-family: Arial, "Bitstream Vera Sans", Helvetica, Verdana, sans-serif;
-	font-size: 12px;
-	border-color: #B2B2B2;
-	background-color: #fff;
-}
-
-/* SplitButton */
-.wp_themeSkin .mceSplitButton a,
-.wp_themeSkin .mceSplitButton span {
-	display: block;
-	height: 20px;
-}
-
-.wp_themeSkin .mceSplitButton {
-	display: block;
-	margin: 1px;
-	direction: ltr;
-}
-
-.wp_themeSkin table.mceSplitButton td {
-	padding: 2px;
-	-webkit-border-radius: 2px;
-	border-radius: 2px;
-}
-
-.wp_themeSkin table.mceSplitButton td a {
-	-webkit-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.15), inset 0 0 2px 1px #fff;
-	-moz-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.15), inset 0 0 2px 1px #fff;
-	box-shadow: 0 1px 0 rgba(0, 0, 0, 0.15), inset 0 0 2px 1px #fff;
-}
-
-.wp_themeSkin table.mceSplitButton:hover td {
-	background-image: inherit 0 -10px;
-}
-
-.wp_themeSkin .mceSplitButton a.mceAction {
-	height: 20px;
-	width: 20px;
-	padding: 1px 2px;
-}
-
-.wp_themeSkin .mceSplitButton span.mceAction {
-	background-image: url("../js/tinymce/themes/advanced/img/icons.gif");
-	background-repeat: no-repeat;
-	background-color: transparent;
-	width: 20px;
-}
-
-.wp_themeSkin .mceSplitButton a.mceOpen {
-	width: 10px;
-	height: 20px;
-	background-image: url("../images/down_arrow.gif");
-	background-position: 1px 2px;
-	background-repeat: no-repeat;
-	padding: 1px;
-	border-left: 0 none !important;
-}
-
-.wp_themeSkin .mceSplitButton span.mceOpen {
-	display: none;
-}
-
-.wp_themeSkin .mceSplitButtonDisabled .mceAction {
-	opacity: 0.3;
-	filter: alpha(opacity=30);
-}
-
-.wp_themeSkin .mceListBox a.mceText,
-.wp_themeSkin .mceSplitButton a.mceAction {
-	-webkit-border-bottom-left-radius: 2px;
-	-webkit-border-top-left-radius: 2px;
-	border-bottom-left-radius: 2px;
-	border-top-left-radius: 2px;
-}
-
-.wp_themeSkin .mceSplitButton a.mceOpen,
-.wp_themeSkin .mceListBox a.mceOpen {
-	-webkit-border-bottom-right-radius: 2px;
-	-webkit-border-top-right-radius: 2px;
-	border-bottom-right-radius: 2px;
-	border-top-right-radius: 2px;
-}
-
-.wp_themeSkin span.mce_undo,
-.wp_themeSkin span.mce_redo,
-.wp_themeSkin span.mce_bullist,
-.wp_themeSkin span.mce_numlist,
-.wp_themeSkin span.mce_blockquote,
-.wp_themeSkin span.mce_charmap,
-.wp_themeSkin span.mce_bold,
-.wp_themeSkin span.mce_italic,
-.wp_themeSkin span.mce_underline,
-.wp_themeSkin span.mce_justifyleft,
-.wp_themeSkin span.mce_justifyright,
-.wp_themeSkin span.mce_justifycenter,
-.wp_themeSkin span.mce_justifyfull,
-.wp_themeSkin span.mce_indent,
-.wp_themeSkin span.mce_outdent,
-.wp_themeSkin span.mce_link,
-.wp_themeSkin span.mce_unlink,
-.wp_themeSkin span.mce_help,
-.wp_themeSkin span.mce_removeformat,
-.wp_themeSkin span.mce_fullscreen,
-.wp_themeSkin span.mce_wp_fullscreen,
-.wp_themeSkin span.mce_media,
-.wp_themeSkin span.mce_pastetext,
-.wp_themeSkin span.mce_pasteword,
-.wp_themeSkin span.mce_wp_help,
-.wp_themeSkin span.mce_wp_adv,
-.wp_themeSkin span.mce_wp_more,
-.wp_themeSkin span.mce_strikethrough,
-.wp_themeSkin span.mce_spellchecker,
-.wp_themeSkin span.mce_forecolor,
-.wp_themeSkin .mce_forecolorpicker,
-.wp_themeSkin .mceSplitButton .mce_spellchecker span.mce_spellchecker,
-.wp_themeSkin .mceSplitButton .mce_forecolor span.mce_forecolor,
-.wp_themeSkin .mceSplitButton span.mce_numlist,
-.wp_themeSkin .mceSplitButton span.mce_bullist {
-	background-image: url(../images/wpicons.png);
-}
-
-/* ColorSplitButton */
-.wp_themeSkin div.mceColorSplitMenu table {
-	background-color: #ebebeb;
-	border-color: #B2B2B2;
-}
-
-.wp_themeSkin .mceColorSplitMenu td {
-	padding: 2px;
-}
-
-.wp_themeSkin .mceColorSplitMenu a {
-	display: block;
-	width: 9px;
-	height: 9px;
-	overflow: hidden;
-	border-color: #B2B2B2;
-}
-
-.wp_themeSkin .mceColorSplitMenu td.mceMoreColors {
-	padding: 1px 3px 1px 1px;
-}
-
-.wp_themeSkin .mceColorSplitMenu a.mceMoreColors {
-	width: 100%;
-	height: auto;
-	text-align: center;
-	font-family: Tahoma,Verdana,Arial,Helvetica;
-	font-size: 11px;
-	line-height: 20px;
-	border-color: #fff;
-}
-
-.wp_themeSkin .mceColorSplitMenu a.mceMoreColors:hover {}
-.wp_themeSkin a.mceMoreColors:hover {}
-.wp_themeSkin .mceColorPreview {
-	margin: -5px 0 0 2px;
-	width: 16px;
-	height: 4px;
-	overflow: hidden;
-}
-
-/* Menu */
-.wp_themeSkin .mceMenu {
-	position: absolute;
-	left: 0;
-	top: 0;
-	z-index: 1000;
-	border-color: #ddd;
-}
-
-.wp_themeSkin .mceNoIcons span.mceIcon {
-	width: 0;
-}
-
-.wp_themeSkin .mceNoIcons a .mceText {
-	padding-left: 10px;
-}
-
-.wp_themeSkin .mceMenu table {
-	background-color: #ebeaeb;
-}
-
-.wp_themeSkin .mceMenu a,
-.wp_themeSkin .mceMenu span,
-.wp_themeSkin .mceMenu {
-	display: block;
-}
-
-.wp_themeSkin .mceMenu td {
-	height: 20px;overflow: hidden;
-}
-
-.wp_themeSkin .mceMenu a {
-	position: relative;
-	padding: 3px 0 4px 0;
-	text-decoration: none !important;
-}
-
-.wp_themeSkin .mceMenu .mceText {
-	position: relative;
-	display: block;
-	font-family: Tahoma,Verdana,Arial,Helvetica;
-	cursor: default;
-	margin: 0;
-	padding: 0 25px;
-	color: #000;
-}
-
-.wp_themeSkin .mceMenu span.mceText, .wp_themeSkin .mceMenu .mcePreview {
-	font-size: 12px;
-}
-
-.wp_themeSkin .mceMenu pre.mceText {
-	font-family: Monospace;
-}
-
-.wp_themeSkin .mceMenu .mceIcon {
-	position: absolute;
-	top: 0;
-	left: 0;
-	width: 22px;
-}
-
-.wp_themeSkin .mceMenu .mceMenuItemEnabled a:hover,
-.wp_themeSkin .mceMenu .mceMenuItemActive {
-	background-color: #f5f5f5;
-}
-
-.wp_themeSkin td.mceMenuItemSeparator {
-	height: 1px;
-	background-color: #aaa;
-}
-
-.wp_themeSkin .mceMenuItemTitle a {
-	border-top: 0;
-	border-right: 0;
-	border-left: 0;
-	border-bottom: 1px solid #aaa;
-	text-decoration: none !important;
-	background-color: #ccc;
-}
-
-.wp_themeSkin .mceMenuItemTitle span.mceText {
-	font-weight: bold;
-	padding-left: 4px;
-	color: #000;
-}
-
-.wp_themeSkin .mceMenuItemSelected .mceIcon {
-	background: url("../js/tinymce/themes/advanced/skins/default/img/menu_check.gif");
-	color: #888;
-}
-
-.wp_themeSkin .mceNoIcons .mceMenuItemSelected a {
-	background: url("../js/tinymce/themes/advanced/skins/default/img/menu_arrow.gif") no-repeat -6px center;
-}
-
-.wp_themeSkin .mceMenu span.mceMenuLine {
-	display: none;
-}
-
-.wp_themeSkin .mceMenuItemSub a {
-	background: url("../js/tinymce/themes/advanced/skins/default/img/menu_arrow.gif") no-repeat top right;
-}
-
-/* Progress,Resize */
-.wp_themeSkin .mceBlocker {
-	position: absolute;
-	left: 0;
-	top: 0;
-	z-index: 1000;
-	opacity: 0.5;
-	filter: alpha(opacity=50);
-	background: #FFF;
-}
-
-.wp_themeSkin .mceProgress {
-	position: absolute;
-	left: 0;
-	top: 0;
-	z-index: 1001;
-	background: url("../js/tinymce/themes/advanced/skins/default/img/progress.gif") no-repeat;
-	width: 32px;
-	height: 32px;
-	margin: -16px 0 0 -16px;
-}
-
-.wp_themeSkin .mcePlaceHolder {
-	border: 1px dotted gray;
-}
-
-/* Formats */
-.wp_themeSkin .mce_p span.mceText {}
-.wp_themeSkin .mce_address span.mceText {
-	font-style: italic;
-}
-
-.wp_themeSkin .mce_pre span.mceText {
-	font-family: monospace;
-}
-
-.wp_themeSkin .mce_h1 span.mceText {
-	font-weight: bolder;
-	font-size: 17px;
-}
-
-.wp_themeSkin .mce_h2 span.mceText {
-	font-weight: bolder;
-	font-size: 16px;
-}
-
-.wp_themeSkin .mce_h3 span.mceText {
-	font-weight: bolder;
-	font-size: 15px;
-}
-
-.wp_themeSkin .mce_h4 span.mceText {
-	font-weight: bolder;
-	font-size: 14px;
-}
-
-.wp_themeSkin .mce_h5 span.mceText {
-	font-weight: bolder;
-	font-size: 13px;
-}
-
-.wp_themeSkin .mce_h6 span.mceText {
-	font-weight: bolder;
-	font-size: 12px;
-}
-
-/* Theme */
-.wp_themeSkin span.mce_undo {background-position:-500px -20px}
-.wp_themeSkin .mceButtonEnabled:hover span.mce_undo,
-.wp_themeSkin .mceButtonActive span.mce_undo {background-position:-500px 0}
-
-.wp_themeSkin span.mce_redo {background-position:-480px -20px}
-.wp_themeSkin .mceButtonEnabled:hover span.mce_redo,
-.wp_themeSkin .mceButtonActive span.mce_redo {background-position:-480px 0}
-
-.wp_themeSkin span.mce_bullist {background-position:-40px -20px}
-.wp_themeSkin .mceButtonEnabled:hover span.mce_bullist,
-.wp_themeSkin .mceButtonActive span.mce_bullist,
-.wp_themeSkin .mceSplitButton:hover span.mce_bullist {background-position:-40px 0}
-
-.wp_themeSkin span.mce_numlist {background-position:-61px -20px}
-.wp_themeSkin .mceButtonEnabled:hover span.mce_numlist,
-.wp_themeSkin .mceButtonActive span.mce_numlist,
-.wp_themeSkin .mceSplitButton:hover span.mce_numlist {background-position:-61px 0}
-
-.wp_themeSkin span.mce_blockquote {background-position:-80px -20px}
-.wp_themeSkin .mceButtonEnabled:hover span.mce_blockquote,
-.wp_themeSkin .mceButtonActive span.mce_blockquote {background-position:-80px 0}
-
-.wp_themeSkin span.mce_charmap {background-position:-420px -20px}
-.wp_themeSkin .mceButtonEnabled:hover span.mce_charmap,
-.wp_themeSkin .mceButtonActive span.mce_charmap {background-position:-420px 0}
-
-.wp_themeSkin span.mce_bold {background-position:-1px -20px}
-.wp_themeSkin .mceButtonEnabled:hover span.mce_bold,
-.wp_themeSkin .mceButtonActive span.mce_bold {background-position:-1px 0}
-
-.wp_themeSkin span.mce_italic {background-position:-21px -20px}
-.wp_themeSkin .mceButtonEnabled:hover span.mce_italic,
-.wp_themeSkin .mceButtonActive span.mce_italic {background-position:-21px 0}
-
-.wp_themeSkin span.mce_underline {background-position:-280px -19px}
-.wp_themeSkin .mceButtonEnabled:hover span.mce_underline,
-.wp_themeSkin .mceButtonActive span.mce_underline {background-position:-280px 1px}
-
-.wp_themeSkin span.mce_justifyleft {background-position:-100px -19px}
-.wp_themeSkin .mceButtonEnabled:hover span.mce_justifyleft,
-.wp_themeSkin .mceButtonActive span.mce_justifyleft {background-position:-100px 1px}
-
-.wp_themeSkin span.mce_justifyright {background-position:-141px -19px}
-.wp_themeSkin .mceButtonEnabled:hover span.mce_justifyright,
-.wp_themeSkin .mceButtonActive span.mce_justifyright {background-position:-141px 1px}
-
-.wp_themeSkin span.mce_justifycenter {background-position:-120px -19px}
-.wp_themeSkin .mceButtonEnabled:hover span.mce_justifycenter,
-.wp_themeSkin .mceButtonActive span.mce_justifycenter {background-position:-120px 1px}
-
-.wp_themeSkin span.mce_justifyfull {background-position:-300px -19px}
-.wp_themeSkin .mceButtonEnabled:hover span.mce_justifyfull,
-.wp_themeSkin .mceButtonActive span.mce_justifyfull {background-position:-300px 1px}
-
-.wp_themeSkin span.mce_indent {background-position:-461px -19px}
-.wp_themeSkin .mceButtonEnabled:hover span.mce_indent,
-.wp_themeSkin .mceButtonActive span.mce_indent {background-position:-461px 1px}
-
-.wp_themeSkin span.mce_outdent {background-position:-440px -19px}
-.wp_themeSkin .mceButtonEnabled:hover span.mce_outdent,
-.wp_themeSkin .mceButtonActive span.mce_outdent {background-position:-440px 1px}
-
-.wp_themeSkin span.mce_link {background-position:-161px -20px}
-.wp_themeSkin .mceButtonEnabled:hover span.mce_link,
-.wp_themeSkin .mceButtonActive span.mce_link {background-position:-161px 0}
-
-.wp_themeSkin span.mce_unlink {background-position:-180px -20px}
-.wp_themeSkin .mceButtonEnabled:hover span.mce_unlink,
-.wp_themeSkin .mceButtonActive span.mce_unlink {background-position:-180px 0}
-
-.wp_themeSkin span.mce_help {background-position:-521px -20px}
-.wp_themeSkin .mceButtonEnabled:hover span.mce_help,
-.wp_themeSkin .mceButtonActive span.mce_help {background-position:-521px 0}
-
-.wp_themeSkin span.mce_removeformat {background-position:-381px -20px}
-.wp_themeSkin .mceButtonEnabled:hover span.mce_removeformat,
-.wp_themeSkin .mceButtonActive span.mce_removeformat {background-position:-381px 0}
-
-.wp_themeSkin span.mce_strikethrough {background-position:-540px -18px;}
-.wp_themeSkin .mceButtonEnabled:hover span.mce_strikethrough,
-.wp_themeSkin .mceButtonActive span.mce_strikethrough {background-position:-540px 0}
-
-.wp_themeSkin .mceSplitButton .mce_forecolor span.mce_forecolor {background-position:-321px -22px}
-.wp_themeSkin .mceSplitButtonEnabled:hover span.mce_forecolor,
-.wp_themeSkin .mceSplitButtonActive span.mce_forecolor {background-position:-321px -2px}
-
-.wp_themeSkin .mce_forecolorpicker {background-position:-320px -20px}
-
-/* Plugins in WP */
-.wp_themeSkin span.mce_fullscreen {background-position:-240px -20px}
-.wp_themeSkin .mceButtonEnabled:hover span.mce_fullscreen,
-.wp_themeSkin .mceButtonActive span.mce_fullscreen {background-position:-240px 0}
-
-.wp_themeSkin span.mce_wp_fullscreen {background-position:-240px -20px}
-.wp_themeSkin .mceButtonEnabled:hover span.mce_wp_fullscreen,
-.wp_themeSkin .mceButtonActive span.mce_wp_fullscreen {background-position:-240px 0}
-
-.wp_themeSkin span.mce_media {background-position:-401px -20px}
-.wp_themeSkin .mceButtonEnabled:hover span.mce_media,
-.wp_themeSkin .mceButtonActive span.mce_media {background-position:-401px 0}
-
-.wp_themeSkin span.mce_pastetext {background-position:-340px -20px}
-.wp_themeSkin .mceButtonEnabled:hover span.mce_pastetext,
-.wp_themeSkin .mceButtonActive span.mce_pastetext {background-position:-340px 0}
-
-.wp_themeSkin span.mce_pasteword {background-position:-360px -20px}
-.wp_themeSkin .mceButtonEnabled:hover span.mce_pasteword,
-.wp_themeSkin .mceButtonActive span.mce_pasteword {background-position:-360px 0}
-
-.wp_themeSkin span.mce_spellchecker {background-position:-220px -19px}
-.wp_themeSkin .mceButtonEnabled:hover span.mce_spellchecker,
-.wp_themeSkin .mceSplitButtonEnabled:hover span.mce_spellchecker,
-.wp_themeSkin .mceButtonActive span.mce_spellchecker,
-.wp_themeSkin .mceSplitButtonActive span.mce_spellchecker {background-position:-220px 1px}
-
-.wp_themeSkin span.mce_wp_help {background-position:-521px -20px}
-.wp_themeSkin .mceButtonEnabled:hover span.mce_wp_help,
-.wp_themeSkin .mceButtonActive span.mce_wp_help {background-position:-521px 0}
-
-.wp_themeSkin span.mce_wp_adv {background-position:-260px -20px}
-.wp_themeSkin .mceButtonEnabled:hover span.mce_wp_adv,
-.wp_themeSkin .mceButtonActive span.mce_wp_adv {background-position:-260px 0}
-
-.wp_themeSkin span.mce_wp_more {background-position:-201px -20px}
-.wp_themeSkin .mceButtonEnabled:hover span.mce_wp_more,
-.wp_themeSkin .mceButtonActive span.mce_wp_more {background-position:-201px 0}
-
-/* Default icons */
-.wp_themeSkin span.mce_cleanup {background-position:-380px -20px}
-.wp_themeSkin span.mce_anchor {background-position:-200px 0}
-.wp_themeSkin span.mce_sub {background-position:-600px 0}
-.wp_themeSkin span.mce_sup {background-position:-620px 0}
-.wp_themeSkin span.mce_newdocument {background-position:-520px 0}
-.wp_themeSkin span.mce_image {background-position:-380px 0}
-.wp_themeSkin span.mce_code {background-position:-260px 0}
-.wp_themeSkin span.mce_hr {background-position:-360px 0}
-.wp_themeSkin span.mce_visualaid {background-position:-660px 0}
-.wp_themeSkin span.mce_paste {background-position:-560px 0}
-.wp_themeSkin span.mce_copy {background-position:-700px 0}
-.wp_themeSkin span.mce_cut {background-position:-680px 0}
-.wp_themeSkin .mce_backcolor span.mceAction {background-position:-760px 0}
-.wp_themeSkin .mce_backcolorpicker {background-position:-760px 0}
-
-/* Plugins */
-.wp_themeSkin span.mce_advhr {background-position:-0px -20px}
-.wp_themeSkin span.mce_ltr {background-position:-20px -20px}
-.wp_themeSkin span.mce_rtl {background-position:-40px -20px}
-.wp_themeSkin span.mce_emotions {background-position:-60px -20px}
-.wp_themeSkin span.mce_fullpage {background-position:-80px -20px}
-.wp_themeSkin span.mce_iespell {background-position:-120px -20px}
-.wp_themeSkin span.mce_insertdate {background-position:-140px -20px}
-.wp_themeSkin span.mce_inserttime {background-position:-160px -20px}
-.wp_themeSkin span.mce_absolute {background-position:-180px -20px}
-.wp_themeSkin span.mce_backward {background-position:-200px -20px}
-.wp_themeSkin span.mce_forward {background-position:-220px -20px}
-.wp_themeSkin span.mce_insert_layer {background-position:-240px -20px}
-.wp_themeSkin span.mce_insertlayer {background-position:-260px -20px}
-.wp_themeSkin span.mce_movebackward {background-position:-280px -20px}
-.wp_themeSkin span.mce_moveforward {background-position:-300px -20px}
-.wp_themeSkin span.mce_nonbreaking {background-position:-340px -20px}
-.wp_themeSkin span.mce_selectall {background-position:-400px -20px}
-.wp_themeSkin span.mce_preview {background-position:-420px -20px}
-.wp_themeSkin span.mce_print {background-position:-440px -20px}
-.wp_themeSkin span.mce_cancel {background-position:-460px -20px}
-.wp_themeSkin span.mce_save {background-position:-480px -20px}
-.wp_themeSkin span.mce_replace {background-position:-500px -20px}
-.wp_themeSkin span.mce_search {background-position:-520px -20px}
-.wp_themeSkin span.mce_styleprops {background-position:-560px -20px}
-.wp_themeSkin span.mce_table {background-position:-580px -20px}
-.wp_themeSkin span.mce_cell_props {background-position:-600px -20px}
-.wp_themeSkin span.mce_delete_table {background-position:-620px -20px}
-.wp_themeSkin span.mce_delete_col {background-position:-640px -20px}
-.wp_themeSkin span.mce_delete_row {background-position:-660px -20px}
-.wp_themeSkin span.mce_col_after {background-position:-680px -20px}
-.wp_themeSkin span.mce_col_before {background-position:-700px -20px}
-.wp_themeSkin span.mce_row_after {background-position:-720px -20px}
-.wp_themeSkin span.mce_row_before {background-position:-740px -20px}
-.wp_themeSkin span.mce_merge_cells {background-position:-760px -20px}
-.wp_themeSkin span.mce_table_props {background-position:-980px -20px}
-.wp_themeSkin span.mce_row_props {background-position:-780px -20px}
-.wp_themeSkin span.mce_split_cells {background-position:-800px -20px}
-.wp_themeSkin span.mce_template {background-position:-820px -20px}
-.wp_themeSkin span.mce_visualchars {background-position:-840px -20px}
-.wp_themeSkin span.mce_abbr {background-position:-860px -20px}
-.wp_themeSkin span.mce_acronym {background-position:-880px -20px}
-.wp_themeSkin span.mce_attribs {background-position:-900px -20px}
-.wp_themeSkin span.mce_cite {background-position:-920px -20px}
-.wp_themeSkin span.mce_del {background-position:-940px -20px}
-.wp_themeSkin span.mce_ins {background-position:-960px -20px}
-.wp_themeSkin span.mce_pagebreak {background-position:0 -40px}
-
-/* border */
-.wp_themeSkin .mceExternalToolbar,
-.wp_themeSkin .mceButton,
-.wp_themeSkin a.mceButtonEnabled:hover,
-.wp_themeSkin a.mceButtonActive,
-.wp_themeSkin a.mceButtonSelected,
-.wp_themeSkin .mceListBox .mceText,
-.wp_themeSkin .mceListBox .mceOpen,
-.wp_themeSkin table.mceListBoxEnabled:hover .mceText,
-.wp_themeSkin .mceListBoxHover .mceText,
-.wp_themeSkin .mceListBoxSelected .mceText,
-.wp_themeSkin table.mceListBoxEnabled:hover .mceOpen,
-.wp_themeSkin .mceListBoxHover .mceOpen,
-.wp_themeSkin .mceListBoxSelected .mceOpen,
-.wp_themeSkin select.mceListBox,
-.wp_themeSkin .mceSplitButton a.mceAction,
-.wp_themeSkin .mceSplitButton a.mceOpen,
-.wp_themeSkin .mceSplitButton a.mceOpen:hover,
-.wp_themeSkin .mceSplitButtonSelected a.mceOpen,
-.wp_themeSkin table.mceSplitButtonEnabled:hover a.mceAction,
-.wp_themeSkin .mceSplitButton a.mceAction:hover,
-.wp_themeSkin div.mceColorSplitMenu table,
-.wp_themeSkin .mceColorSplitMenu a,
-.wp_themeSkin .mceColorSplitMenu a.mceMoreColors,
-.wp_themeSkin .mceColorSplitMenu a.mceMoreColors:hover,
-.wp_themeSkin a.mceMoreColors:hover,
-.wp_themeSkin .mceMenu {
-	border-style: solid;
-	border-width: 1px;
-}
-
-.wp_themeSkin iframe {
-	background: transparent;
-}
-
-.wp_themeSkin .mceButton,
-.wp_themeSkin .mceListBox .mceText,
-.wp_themeSkin .mceListBox .mceOpen {
-	border-color: #ccc;
-	background-color: #eee; /* Fallback */
-	background-image: -ms-linear-gradient(bottom, #ddd, #fff); /* IE10 */
-	background-image: -moz-linear-gradient(bottom, #ddd, #fff); /* Firefox */
-	background-image: -o-linear-gradient(bottom, #ddd, #fff); /* Opera */
-	background-image: -webkit-gradient(linear, left bottom, left top, from(#ddd), to(#fff)); /* old Webkit */
-	background-image: -webkit-linear-gradient(bottom, #ddd, #fff); /* new Webkit */
-	background-image: linear-gradient(bottom, #ddd, #fff); /* proposed W3C Markup */
-}
-
-.wp_themeSkin a.mceButtonEnabled:hover {
-	border-color: #a0a0a0;
-	background: #ddd; /* Fallback */
-	background-image: -ms-linear-gradient(bottom, #ccc, #fff); /* IE10 */
-	background-image: -moz-linear-gradient(bottom, #ccc, #fff); /* Firefox */
-	background-image: -o-linear-gradient(bottom, #ccc, #fff); /* Opera */
-	background-image: -webkit-gradient(linear, left bottom, left top, from(#ccc), to(#fff)); /* old Webkit */
-	background-image: -webkit-linear-gradient(bottom, #ccc, #fff); /* new Webkit */
-	background-image: linear-gradient(bottom, #ccc, #fff); /* proposed W3C Markup */
-}
-
-.wp_themeSkin a.mceButton:active,
-.wp_themeSkin a.mceButtonEnabled:active,
-.wp_themeSkin a.mceButtonSelected:active,
-.wp_themeSkin a.mceButtonActive,
-.wp_themeSkin a.mceButtonActive:active,
-.wp_themeSkin a.mceButtonActive:hover {
-	background-color: #ddd; /* Fallback */
-	background-image: -ms-linear-gradient(bottom, #eee, #bbb); /* IE10 */
-	background-image: -moz-linear-gradient(bottom, #eee, #bbb); /* Firefox */
-	background-image: -o-linear-gradient(bottom, #eee, #bbb); /* Opera */
-	background-image: -webkit-gradient(linear, left bottom, left top, from(#eee), to(#bbb)); /* old Webkit */
-	background-image: -webkit-linear-gradient(bottom, #eee, #bbb); /* new Webkit */
-	background-image: linear-gradient(bottom, #eee, #bbb); /* proposed W3C Markup */
-	border-color: #909090;
-}
-
-.wp_themeSkin .mceButtonDisabled {
-	border-color: #ccc !important;
-}
-
-.wp_themeSkin .mceListBox .mceOpen {
-	border-left: 0 !important;
-}
-
-.wp_themeSkin table.mceListBoxEnabled:hover .mceOpen,
-.wp_themeSkin .mceListBoxHover .mceOpen,
-.wp_themeSkin .mceListBoxHover:active .mceOpen,
-.wp_themeSkin .mceListBoxSelected .mceOpen,
-.wp_themeSkin .mceListBoxSelected .mceText,
-.wp_themeSkin table.mceListBoxEnabled:active .mceText {
-	background: #ccc;
-	border-color: #999;
-}
-
-.wp_themeSkin table.mceListBoxEnabled:hover .mceText,
-.wp_themeSkin .mceListBoxHover .mceText,
-.wp_themeSkin table.mceListBoxEnabled:hover .mceOpen,
-.wp_themeSkin .mceListBoxHover .mceOpen {
-	border-color: #909090;
-	background-color: #eee; /* Fallback */
-	background-image: -ms-linear-gradient(bottom, #ccc, #fff); /* IE10 */
-	background-image: -moz-linear-gradient(bottom, #ccc, #fff); /* Firefox */
-	background-image: -o-linear-gradient(bottom, #ccc, #fff); /* Opera */
-	background-image: -webkit-gradient(linear, left bottom, left top, from(#ccc), to(#fff)); /* old Webkit */
-	background-image: -webkit-linear-gradient(bottom, #ccc, #fff); /* new Webkit */
-	background-image: linear-gradient(bottom, #ccc, #fff); /* proposed W3C Markup */
-}
-
-/* SplitButton */
-.wp_themeSkin .mceSplitButton a.mceAction,
-.wp_themeSkin .mceSplitButton a.mceOpen {
-	border-color: #ccc;
-}
-
-.wp_themeSkin .mceSplitButton a.mceOpen:hover,
-.wp_themeSkin .mceSplitButtonSelected a.mceOpen,
-.wp_themeSkin table.mceSplitButtonEnabled:hover a.mceAction,
-.wp_themeSkin .mceSplitButton a.mceAction:hover {
-	border-color: #909090;
-}
-
-.wp_themeSkin table.mceSplitButton td {
-	background-color: #eee; /* Fallback */
-	background-image: -ms-linear-gradient(bottom, #ddd, #fff); /* IE10 */
-	background-image: -moz-linear-gradient(bottom, #ddd, #fff); /* Firefox */
-	background-image: -o-linear-gradient(bottom, #ddd, #fff); /* Opera */
-	background-image: -webkit-gradient(linear, left bottom, left top, from(#ddd), to(#fff)); /* old Webkit */
-	background-image: -webkit-linear-gradient(bottom, #ddd, #fff); /* new Webkit */
-	background-image: linear-gradient(bottom, #ddd, #fff); /* proposed W3C Markup */
-}
-
-.wp_themeSkin table.mceSplitButton:hover td {
-	background-image: -ms-linear-gradient(bottom, #ccc, #fff); /* IE10 */
-	background-image: -moz-linear-gradient(bottom, #ccc, #fff); /* Firefox */
-	background-image: -o-linear-gradient(bottom, #ccc, #fff); /* Opera */
-	background-image: -webkit-gradient(linear, left bottom, left top, from(#ccc), to(#fff)); /* old Webkit */
-	background-image: -webkit-linear-gradient(bottom, #ccc, #fff); /* new Webkit */
-	background-image: linear-gradient(bottom, #ccc, #fff); /* proposed W3C Markup */
-}
-
-.wp_themeSkin .mceSplitButtonActive {
-	background-color: #B2B2B2;
-}
-
-.wp_themeSkin .mceColorSplitMenu a.mceMoreColors:hover {
-	border-color: #0A246A;
-	background-color: #B6BDD2;
-}
-
-.wp_themeSkin a.mceMoreColors:hover {
-	border-color: #0A246A;
-}
-
-.wp_themeSkin .mceMenuItemDisabled .mceText {
-	color: #888;
-}
-
-#mceModalBlocker {
-	background: #000;
-}
-
-/* WP specific */
-.wp-editor-area {
-	font-family: Consolas, Monaco, monospace;
-	padding: 10px;
-	line-height: 150%;
-	border: 0 none;
-	outline: none;
-	resize: vertical;
-	-moz-box-sizing: border-box;
-	-webkit-box-sizing: border-box;
-	box-sizing: border-box;
-}
-
-.wp-editor-tools {
-	height: 30px;
-	padding: 0 10px;
-}
-
-.wp-editor-container {
-    border-width: 1px;
-	border-style: solid;
-	-webkit-border-top-right-radius: 3px;
-	-webkit-border-top-left-radius: 3px;
-	border-top-right-radius: 3px;
-	border-top-left-radius: 3px;
-	border-color: #ccc #ccc #dfdfdf;
-}
-
-.wp-editor-container textarea.wp-editor-area {
-	width: 99.9%;
-}
-
-.quicktags-toolbar,
-.wp_themeSkin tr.mceFirst td.mceToolbar {
-	border-bottom: 1px solid #ccc;
-	background-color: #e9e9e9; /* Fallback */
-	background-image: -ms-linear-gradient(bottom, #ddd, #e9e9e9); /* IE10 */
-	background-image: -moz-linear-gradient(bottom, #ddd, #e9e9e9); /* Firefox */
-	background-image: -o-linear-gradient(bottom, #ddd, #e9e9e9); /* Opera */
-	background-image: -webkit-linear-gradient(bottom, #ddd, #e9e9e9); /* new Webkit */
-	background-image: linear-gradient(bottom, #ddd, #e9e9e9); /* proposed W3C Markup */
-}
-
-.wp-switch-editor {
-	height: 18px;
-    font: 13px/18px Arial,Helvetica,sans-serif normal;
-	margin: 5px 5px 0 0;
-	padding: 4px 5px 2px;
-	float: right;
-	cursor: pointer;
-	border-width: 1px;
-	border-style: solid;
-	-webkit-border-top-right-radius: 3px;
-	-webkit-border-top-left-radius: 3px;
-	border-top-right-radius: 3px;
-	border-top-left-radius: 3px;
-	background-color: #f1f1f1;
-	border-color: #dfdfdf #dfdfdf #ccc;
-	color: #999;
-}
-
-html[dir="rtl"] .wp-switch-editor {
-	float: left;
-}
-
-.wp-switch-editor:hover {
-	text-decoration: none !important;
-}
-
-.js .tmce-active .wp-editor-area {
-	color: white;
-}
-
-.tmce-active .quicktags-toolbar {
-	 display: none;
-}
-
-.tmce-active .switch-tmce,
-.html-active .switch-html {
-	border-color: #ccc #ccc #e9e9e9;
-	background-color: #e9e9e9;
-	color: #333;
-}
-
-.wp-media-buttons {
-	line-height: 1;
-    padding: 9px 0 0;
-}
-
-.wp-media-buttons a {
-	text-decoration: none;
-	color: #333;
-	font-size: 12px;
-	vertical-align: bottom;
-}
-
-.wp-media-buttons img {
-	padding: 0 4px;
-	vertical-align: middle;
-}
-
-.quicktags-toolbar {
-	border-bottom-style: solid;
-	border-bottom-width: 1px;
-	-webkit-border-top-right-radius: 3px;
-	-webkit-border-top-left-radius: 3px;
-	border-top-right-radius: 3px;
-	border-top-left-radius: 3px;
-	padding: 2px 8px 0;
-	min-height: 29px;
-}
-
-.quicktags-toolbar > div {
-	padding: 2px 4px 0;
-}
-
-.quicktags-toolbar input {
-	margin: 2px 1px 4px;
-	line-height: 18px;
-	display: inline-block;
-	min-width: 26px;
-	padding: 2px 4px;
-	font: 12px/18px Arial,Helvetica,sans-serif normal;
-	color: #464646;
-	border: 1px solid #C3C3C3;
-	-webkit-border-radius: 3px;
-	border-radius: 3px;
-	background-color: #eee;
-	background-image: -ms-linear-gradient(bottom, #e3e3e3, #fff);
-	background-image: -moz-linear-gradient(bottom, #e3e3e3, #fff);
-	background-image: -o-linear-gradient(bottom, #e3e3e3, #fff);
-	background-image: -webkit-linear-gradient(bottom, #e3e3e3, #fff);
-	background-image: linear-gradient(bottom, #e3e3e3, #fff);
-}
-
-.quicktags-toolbar input:hover {
-	border-color: #aaa;
-	background: #ddd;
-}
-
-.quicktags-toolbar input[value="link"] {
-	text-decoration: underline;
-}
-
-.quicktags-toolbar input[value="del"] {
-	text-decoration: line-through;
-}
-
-.quicktags-toolbar input[value="i"] {
-	font-style: italic;
-}
-
-.quicktags-toolbar input[value="b"] {
-	font-weight: bold;
-}
-
-#wp_editbtns,
-#wp_gallerybtns {
-	padding: 2px;
-	position: absolute;
-	display: none;
-	z-index: 999998;
-}
-
-#wp_editimgbtn,
-#wp_delimgbtn,
-#wp_editgallery,
-#wp_delgallery {
-	border-color: #999;
-	background-color: #eee;
-	margin: 2px;
-	padding: 2px;
-	border-width: 1px;
-	border-style: solid;
-	-webkit-border-radius: 3px;
-	border-radius: 3px;
-}
-
-#wp_editimgbtn:hover,
-#wp_delimgbtn:hover,
-#wp_editgallery:hover,
-#wp_delgallery:hover {
-	border-color: #555;
-	background-color: #ccc;
-}
-
-/*------------------------------------------------------------------------------
- wp-link
-------------------------------------------------------------------------------*/
-
-#wp-link {
-	background-color: #F5F5F5;
-	line-height: 1.4em;
-	font-size: 12px;
-}
-
-#wp-link ol,
-#wp-link ul {
-	list-style: none;
-	margin: 0;
-	padding: 0;
-}
-
-#wp-link input[type="text"] {
-	-webkit-box-sizing: border-box;
-}
-
-#wp-link input[type="text"],
-#wp-link textarea {
-	border-width: 1px;
-	border-style: solid;
-	-webkit-border-radius: 4px;
-	border-radius: 4px;
-	font-size: 12px;
-	margin: 1px;
-	padding: 3px;
-}
-
-#wp-link #link-options {
-	padding: 10px 0 14px;
-	border-bottom: 1px solid #dfdfdf;
-	margin: 0 6px 14px;
-}
-
-#wp-link p.howto {
-	margin: 3px;
-}
-
-#wp-link #internal-toggle {
-	display: inline-block;
-	cursor: pointer;
-	padding-left: 18px;
-}
-
-#wp-link .toggle-arrow {
-	background: transparent url( '../images/toggle-arrow.png' ) top left no-repeat;
-	height: 23px;
-	line-height: 23px;
-}
-
-#wp-link .toggle-arrow-active {
-	background-position: center left;
-}
-
-#wp-link label input[type="text"] {
-	width: 360px;
-	margin-top: 5px;
-}
-
-#wp-link label span {
-	display: inline-block;
-	width: 80px;
-	text-align: right;
-	padding-right: 5px;
-}
-
-#wp-link .link-search-wrapper {
-	margin: 5px 6px 9px;
-	display: block;
-	overflow: hidden;
-}
-
-#wp-link .link-search-wrapper span {
-	float: left;
-	margin-top: 9px;
-}
-
-#wp-link .link-search-wrapper input[type="text"] {
-	float: left;
-	width: 220px;
-}
-
-#wp-link .link-search-wrapper img.waiting {
-	margin: 8px 1px 0 4px;
-	float: left;
-	display: none;
-}
-
-#wp-link .link-target {
-	width: auto;
-	padding: 3px 0 0;
-	margin: 0 0 0 87px;
-	font-size: 11px;
-}
-
-#wp-link .query-results {
-	border: 1px #dfdfdf solid;
-	margin: 0 5px 5px;
-	background: #fff;
-	height: 185px;
-	overflow: auto;
-	position: relative;
-}
-
-#wp-link li,
-#wp-link .query-notice {
-	clear: both;
-	margin-bottom: 0;
-	border-bottom: 1px solid #f1f1f1;
-	color: #333;
-	padding: 4px 6px;
-	cursor: pointer;
-	position: relative;
-}
-
-#wp-link li:hover {
-	background: #eaf2fa;
-	color: #151515;
-}
-
-#wp-link li.unselectable {
-	border-bottom: 1px solid #dfdfdf;
-}
-
-#wp-link li.unselectable:hover {
-	background: #fff;
-	cursor: auto;
-	color: #333;
-}
-
-#wp-link li.selected {
-	background: #ddd;
-	color: #333;
-}
-
-#wp-link li.selected .item-title {
-	font-weight: bold;
-}
-
-#wp-link .item-title {
-	display: inline-block;
-	width: 80%;
-}
-
-#wp-link .item-info {
-	text-transform: uppercase;
-	color: #666;
-	font-size: 11px;
-	position: absolute;
-	right: 5px;
-	top: 4px;
-	bottom: 0;
-}
-
-#wp-link #search-results {
-	display: none;
-}
-
-#wp-link  #search-panel {
-	float: left;
-	width: 100%;
-}
-
-#wp-link .river-waiting {
-	display: none;
-	padding: 10px 0;
-}
-
-#wp-link .river-waiting img.waiting {
-	margin: 0 auto;
-	display: block;
-}
-
-#wp-link .submitbox {
-	padding: 5px 10px;
-	font-size: 11px;
-	overflow: auto;
-	height: 29px;
-}
-
-#wp-link-cancel {
-	line-height: 25px;
-	float: left;
-}
-
-#wp-link-update {
-	line-height: 23px;
-	float: right;
-}
-
-/*
- * Based on:
- * jQuery UI CSS Framework @VERSION
- *
- * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Theming/API
- */
-
-/* Layout helpers
-----------------------------------*/
-.ui-helper-hidden { display: none; }
-.ui-helper-hidden-accessible { position: absolute; left: -99999999px; }
-.ui-helper-reset { margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; }
-.ui-helper-clearfix:after { content: "."; display: block; height: 0; clear: both; visibility: hidden; }
-.ui-helper-clearfix { display: inline-block; }
-/* required comment for clearfix to work in Opera \*/
-* html .ui-helper-clearfix { height:1%; }
-.ui-helper-clearfix { display:block; }
-/* end clearfix */
-.ui-helper-zfix { width: 100%; height: 100%; top: 0; left: 0; position: absolute; opacity: 0; filter:Alpha(Opacity=0); }
-
-/* Interaction Cues
-----------------------------------*/
-.ui-state-disabled { cursor: default !important; }
-
-/* Icons
-----------------------------------*/
-
-/* states and images */
-.ui-icon { display: block; text-indent: -99999px; overflow: hidden; background-repeat: no-repeat; }
-
-/* Misc visuals
-----------------------------------*/
-
-/* Overlays */
-.ui-widget-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }
-
-/*
- * jQuery UI Resizable
- *
- * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Resizable#theming
- */
-.ui-resizable { position: relative;}
-.ui-resizable-handle { position: absolute;font-size: 0.1px;z-index: 99999; display: block;}
-.ui-resizable-disabled .ui-resizable-handle, .ui-resizable-autohide .ui-resizable-handle { display: none; }
-.ui-resizable-n { cursor: n-resize; height: 7px; width: 100%; top: -5px; left: 0; }
-.ui-resizable-s { cursor: s-resize; height: 7px; width: 100%; bottom: -5px; left: 0; }
-.ui-resizable-e { cursor: e-resize; width: 7px; right: -5px; top: 0; height: 100%; }
-.ui-resizable-w { cursor: w-resize; width: 7px; left: -5px; top: 0; height: 100%; }
-.ui-resizable-se { cursor: se-resize; width: 12px; height: 12px; right: 1px; bottom: 1px; }
-.ui-resizable-sw { cursor: sw-resize; width: 9px; height: 9px; left: -5px; bottom: -5px; }
-.ui-resizable-nw { cursor: nw-resize; width: 9px; height: 9px; left: -5px; top: -5px; }
-.ui-resizable-ne { cursor: ne-resize; width: 9px; height: 9px; right: -5px; top: -5px;}
-
-/*
- * jQuery UI Dialog
- *
- * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Dialog#theming
- */
-.wp-dialog { position: absolute; width: 300px; overflow: hidden; }
-.wp-dialog .ui-dialog-titlebar { position: relative; }
-.wp-dialog .ui-dialog-titlebar-close span { display: block; margin: 1px; }
-.wp-dialog .ui-dialog-content { position: relative; border: 0; padding: 0; background: none; overflow: auto; zoom: 1; }
-.wp-dialog .ui-dialog-buttonpane { text-align: left; border-width: 1px 0 0 0; background-image: none; margin: .5em 0 0 0; padding: .3em 1em .5em .4em; }
-.wp-dialog .ui-dialog-buttonpane .ui-dialog-buttonset { float: right; }
-.wp-dialog .ui-dialog-buttonpane button { margin: .5em .4em .5em 0; cursor: pointer; }
-.wp-dialog .ui-resizable-se { width: 14px; height: 14px; right: 3px; bottom: 3px; }
-.ui-draggable .ui-dialog-titlebar { cursor: move; }
-
-/* WP jQuery Dialog Theme */
-.wp-dialog {
-	border: 1px solid #999;
-	-moz-box-shadow: 0px 0px 16px rgba( 0,0,0,0.3 );
-	-webkit-box-shadow: 0px 0px 16px rgba( 0,0,0,0.3 );
-	box-shadow: 0px 0px 16px rgba( 0,0,0,0.3 );
-}
-
-.wp-dialog .ui-dialog-title {
-	display: block;
-	text-align: center;
-	padding: 1px 0 2px;
-}
-
-.wp-dialog .ui-dialog-titlebar {
-	padding: 0 1em;
-	background-color: #444;
-	font-weight: bold;
-	font-size: 11px;
-	line-height: 18px;
-	color: #e5e5e5;
-}
-
-.wp-dialog {
-	background-color: #fff;
-	-webkit-border-top-left-radius: 4px;
-	-webkit-border-top-right-radius: 4px;
-	border-top-left-radius: 4px;
-	border-top-right-radius: 4px;
-}
-
-.wp-dialog .ui-dialog-titlebar {
-	-webkit-border-top-left-radius: 3px;
-	-webkit-border-top-right-radius: 3px;
-	border-top-left-radius: 3px;
-	border-top-right-radius: 3px;
-}
-
-.wp-dialog .ui-dialog-titlebar-close {
-	position: absolute;
-	width: 29px;
-	height: 16px;
-	top: 2px;
-	right: 6px;
-	background: url('../js/tinymce/plugins/inlinepopups/skins/clearlooks2/img/buttons.gif') no-repeat -87px -16px;
-	padding: 0;
-}
-
-.wp-dialog .ui-dialog-titlebar-close:hover,
-.wp-dialog .ui-dialog-titlebar-close:focus {
-	background-position: -87px -32px;
-}
-
-.ui-widget-overlay {
-	background-color: #000;
-	opacity: 0.6;
-	filter: alpha(opacity=60);
-}
-
-/*
-RTL
-*/
-.rtl #wp-link #internal-toggle {
-	padding-right: 18px;
-	padding-left: 0;
-}
-
-.rtl #wp-link label span {
-	text-align: left;
-	padding-left: 5px;
-	padding-right: 0;
-}
-
-.rtl #wp-link .link-search-wrapper span {
-	float: right;
-}
-
-.rtl #wp-link .link-search-wrapper input[type="text"] {
-	float: right;
-}
-
-.rtl #wp-link .link-search-wrapper img.waiting {
-	margin: 8px 4px 0 1px;
-	float: right;
-}
-
-.rtl #wp-link .link-target {
-	margin: 0 87px 0 0;
-}
-
-.rtl #wp-link .item-info {
-	left: 5px;
-	right: auto;
-	top: 4px;
-	bottom: 0;
-}
-
-.rtl #wp-link #search-panel {
-	float: right;
-}
-
-.rtl #wp-link-cancel {
-	float: right;
-}
-
-.rtl #wp-link-update {
-	float: left;
-}
-
-.rtl #wp-link .toggle-arrow {
-	background-position: top right;
-}
-
-.rtl #wp-link .toggle-arrow-active {
-	background-position: center right;
-}
-
-.rtl .wp_themeSkin .mceListBox .mceText {
-	text-align: right;
-}
-
-.rtl .wp_themeSkin .mceNoIcons a .mceText {
-	padding-right: 10px;
-	padding-left: 25px;
-}
-
-.rtl .mceListBoxMenu.mceNoIcons {
-	margin-left: -14px;
-}
-
-.clearlooks2 .mceFocus .mceTop .mceLeft {
-	background: #444444;
-	border-left: 1px solid #999;
-	border-top: 1px solid #999;
-	-webkit-border-top-left-radius: 3px;
-	border-top-left-radius: 3px;
-}
-
-.clearlooks2 .mceFocus .mceTop .mceRight {
-	background: #444444;
-	border-right: 1px solid #999;
-	border-top: 1px solid #999;
-	-webkit-border-top-right-radius: 3px;
-	border-top-right-radius: 3px;
-}
-
-.clearlooks2 .mceMiddle .mceLeft {
-	background: #f1f1f1;
-	border-left: 1px solid #999;
-}
-
-.clearlooks2 .mceMiddle .mceRight {
-	background: #f1f1f1;
-	border-right: 1px solid #999;
-}
-
-.clearlooks2 .mceBottom {
-	background: #f1f1f1;
-	border-bottom: 1px solid #999;
-}
-
-.clearlooks2 .mceBottom .mceLeft {
-	background: #f1f1f1;
-	border-bottom: 1px solid #999;
-	border-left: 1px solid #999;
-}
-
-.clearlooks2 .mceBottom .mceCenter {
-	background: #f1f1f1;
-	border-bottom: 1px solid #999;
-}
-
-.clearlooks2 .mceBottom .mceRight {
-	background: #f1f1f1;
-	border-bottom: 1px solid #999;
-	border-right: 1px solid #999;
-}
-
-.clearlooks2 .mceFocus .mceTop span {
-	color: #e5e5e5;
-}
-
-
-/* Distraction Free Writing mode
- * =Overlay Styles
--------------------------------------------------------------- */
-.fullscreen-overlay {
-	z-index: 149999;
-	display: none;
-	position: fixed;
-	top: 0;
-	bottom: 0;
-	left: 0;
-	right: 0;
-	filter: inherit;
-}
-
-.fullscreen-active .fullscreen-overlay,
-.fullscreen-active #wp-fullscreen-body {
-	display: block;
-}
-
-.fullscreen-fader {
-	z-index: 200000;
-}
-
-.fullscreen-active .fullscreen-fader {
-	display: none;
-}
-
-/* =Overlay Body
--------------------------------------------------------------- */
-#wp-fullscreen-body {
-	width: 100%;
-	z-index: 150005;
-	display: none;
-	position: absolute;
-	top: 0;
-	left: 0;
-	font-size: 12px;
-}
-
-#wp-fullscreen-wrap {
-	margin: 0 auto 50px;
-	position: relative;
-	padding-top: 60px;
-}
-
-#wp-fullscreen-title {
-    font-size: 1.7em;
-    line-height: 100%;
-    outline: medium none;
-    padding: 6px 7px;
-    width: 100%;
-    margin-bottom: 30px;
-}
-
-#wp-fullscreen-container {
-	padding: 4px 10px 50px;
-}
-
-#wp-fullscreen-title,
-#wp-fullscreen-container {
-	-webkit-border-radius: 0;
-	border-radius: 0;
-	border: 1px dashed transparent;
-	background: transparent;
-	-moz-transition-property: border-color;
-	-moz-transition-duration: 0.6s;
-	-webkit-transition-property: border-color;
-	-webkit-transition-duration: 0.6s;
-	-o-transition-property: border-color;
-	-o-transition-duration: 0.6s;
-	transition-property: border-color;
-	transition-duration: 0.6s;
-}
-
-#wp_mce_fullscreen {
-	width: 100%;
-	min-height: 300px;
-	border: 0;
-	background: transparent;
-	font-family: Consolas, Monaco, monospace;
-	line-height: 1.6em;
-	padding: 0;
-	overflow-y: hidden;
-	outline: none;
-	resize: none;
-}
-
-#wp-fullscreen-tagline {
-	color: #BBBBBB;
-	font-size: 18px;
-	float: right;
-	padding-top: 5px;
-}
-
-/* =Top bar
--------------------------------------------------------------- */
-#fullscreen-topbar {
-	position: fixed;
-	top: 0;
-	left: 0;
-	z-index: 150050;
-	border-bottom-style: solid;
-	border-bottom-width: 1px;
-	min-width: 800px;
-	width: 100%;
-	height: 40px;
-}
-
-#wp-fullscreen-toolbar {
-	padding: 6px 10px 0;
-	clear: both;
-	max-width: 1100px;
-	min-width: 820px;
-	margin: 0 auto;
-}
-
-#wp-fullscreen-mode-bar,
-#wp-fullscreen-button-bar,
-#wp-fullscreen-close,
-#wp-fullscreen-count {
-	float: left;
-}
-
-#wp-fullscreen-save {
-	float: right;
-	padding: 2px 2px 0 5px;
-}
-
-#wp-fullscreen-count,
-#wp-fullscreen-close {
-	padding-top: 5px;
-}
-
-#wp-fullscreen-central-toolbar {
-	margin: auto;
-	padding: 0;
-}
-
-#wp-fullscreen-buttons > div {
-	float: left;
-}
-
-#wp-fullscreen-mode-bar {
-	padding: 1px 14px 0 0;
-}
-
-#wp-fullscreen-modes a {
-	display: block;
-	font-size: 11px;
-	text-decoration: none;
-	float: left;
-	margin: 1px 0 0 0;
-	padding: 2px 6px 2px;
-	border-width: 1px 1px 1px 0;
-	border-style: solid;
-	border-color: #bbb;
-	color: #777;
-	text-shadow: 0 1px 0 #fff;
-	background-color: #f4f4f4;
-	background-image: -moz-linear-gradient(bottom,  #e4e4e4,  #f9f9f9);
-	background-image: -webkit-gradient(linear, left bottom, left top, from(#e4e4e4), to(#f9f9f9));
-}
-
-#wp-fullscreen-modes a:hover,
-.wp-html-mode #wp-fullscreen-modes a:last-child,
-.wp-tmce-mode #wp-fullscreen-modes a:first-child {
-	color: #333;
-	border-color: #999;
-	background-color: #eee;
-	background-image: -moz-linear-gradient(bottom,  #f9f9f9,  #e0e0e0);
-	background-image: -webkit-gradient(linear, left bottom, left top, from(#f9f9f9), to(#e0e0e0));
-}
-
-#wp-fullscreen-modes a:first-child {
-	border-width: 1px;
-	-webkit-border-top-left-radius: 3px;
-	-webkit-border-bottom-left-radius: 3px;
-	border-top-left-radius: 3px;
-	border-bottom-left-radius: 3px;
-}
-
-#wp-fullscreen-modes a:last-child {
-	-webkit-border-top-right-radius: 3px;
-	-webkit-border-bottom-right-radius: 3px;
-	border-top-right-radius: 3px;
-	border-bottom-right-radius: 3px;
-}
-
-#wp-fullscreen-buttons .active a {
-	background: inherit;
-}
-
-#wp-fullscreen-buttons .hidden {
-	display: none;
-}
-
-#wp-fullscreen-buttons .disabled {
-	opacity: 0.5;
-}
-
-.wp-html-mode #wp-fullscreen-buttons div {
-	display: none;
-}
-
-.wp-html-mode #wp-fullscreen-buttons div.wp-fullscreen-both {
-	display: block;
-}
-
-#fullscreen-topbar.fullscreen-make-sticky {
-	display: block !important;
-}
-
-#wp-fullscreen-save img {
-	vertical-align: middle;
-}
-
-#wp-fullscreen-save img,
-#wp-fullscreen-save span {
-	padding-right: 4px;
-	display: none;
-}
-
-#wp-fullscreen-buttons .mce_image .mce_image {
-	background-image: url('../../wp-admin/images/media-button.png?ver=20120201');
-	background-position: 3px 3px;
-}
-
-/* =Thickbox Adjustments
--------------------------------------------------------------- */
-.fullscreen-active #TB_overlay {
-	z-index: 150100;
-}
-
-.fullscreen-active #TB_window {
-	z-index: 150102;
-}
-
-/* =TinyMCE Adjustments
--------------------------------------------------------------- */
-#wp_mce_fullscreen_ifr {
-	background: transparent;
-}
-
-#wp_mce_fullscreen_parent #wp_mce_fullscreen_tbl tr.mceFirst {
-	display : none;
-}
-
-#wp-fullscreen-container .wp_themeSkin table td {
-	vertical-align: top;
-}
-
-/* Colors */
-.fullscreen-overlay {
-	background: #fff;
-}
-
-.wp-fullscreen-focus #wp-fullscreen-title,
-.wp-fullscreen-focus #wp-fullscreen-container {
-	border-color: #ccc;
-}
-
-#fullscreen-topbar {
-	border-bottom-color: #DFDFDF;
-	background-color: #f1f1f1; /* Fallback */
-	background-image: -ms-linear-gradient(top, #f9f9f9, #ececec); /* IE10 */
-	background-image: -moz-linear-gradient(top, #f9f9f9, #ececec); /* Firefox */
-	background-image: -o-linear-gradient(top, #f9f9f9, #ececec); /* Opera */
-	background-image: -webkit-gradient(linear, left top, left bottom, from(#f9f9f9), to(#ececec)); /* old Webkit */
-	background-image: -webkit-linear-gradient(top, #f9f9f9, #ececec); /* new Webkit */
-	background-image: linear-gradient(top, #f9f9f9, #ececec); /* proposed W3C Markup */
-}
-
-/* =CSS 3 transitions
--------------------------------------------------------------- */
-
-.fade-1000,
-.fade-600,
-.fade-400,
-.fade-300 {
-	opacity: 0;
-	-moz-transition-property: opacity;
-	-webkit-transition-property: opacity;
-	-o-transition-property: opacity;
-	transition-property: opacity;
-}
-
-.fade-1000 {
-	-moz-transition-duration: 1s;
-	-webkit-transition-duration: 1s;
-	-o-transition-duration: 1s;
-	transition-duration: 1s;
-}
-
-.fade-600 {
-	-moz-transition-duration: 0.6s;
-	-webkit-transition-duration: 0.6s;
-	-o-transition-duration: 0.6s;
-	transition-duration: 0.6s;
-}
-
-.fade-400 {
-	-moz-transition-duration: 0.4s;
-	-webkit-transition-duration: 0.4s;
-	-o-transition-duration: 0.4s;
-	transition-duration: 0.4s;
-}
-
-.fade-300 {
-	-moz-transition-duration: 0.3s;
-	-webkit-transition-duration: 0.3s;
-	-o-transition-duration: 0.3s;
-	transition-duration: 0.3s;
-}
-
-.fade-trigger {
-	opacity: 1;
-}
-
-/* Distraction Free Writing - RTL
- * =Overlay Styles
--------------------------------------------------------------- */
-
-/* No RTL for now, this space intentionally left blank */
-
-/* =Overlay Body
--------------------------------------------------------------- */
-.rtl #wp-fullscreen-tagline {
-	float: left;
-}
-
-/* =Top bar
--------------------------------------------------------------- */
-.rtl #fullscreen-topbar {
-	left:auto;
-	right: 0;
-}
-
-.rtl #wp-fullscreen-mode-bar,
-.rtl #wp-fullscreen-button-bar,
-.rtl #wp-fullscreen-close,
-.rtl #wp-fullscreen-count {
-	float: right;
-}
-
-.rtl #wp-fullscreen-save {
-	float: left;
-}
-
-.rtl #wp-fullscreen-save {
-	padding: 2px 5px 0 2px;
-}
-
-.rtl #wp-fullscreen-buttons > div {
-	float: right;
-}
-
-.rtl #wp-fullscreen-mode-bar {
-	padding: 1px 0 0 14px;
-}
-
-.rtl #wp-fullscreen-modes a {
-	float: right;
-	border-width: 1px 0 1px 1px;
-}
-
-.rtl #wp-fullscreen-modes a:first-child {
-	-webkit-border-top-left-radius: 0;
-	-webkit-border-top-right-radius: 3px;
-	-webkit-border-bottom-left-radius: 0;
-	-webkit-border-bottom-right-radius: 3px;
-	border-width: 1px;
-	border-top-left-radius: 0;
-	border-top-right-radius: 3px;
-	border-bottom-right-left: 0;
-	border-bottom-right-radius: 3px;
-}
-
-.rtl #wp-fullscreen-modes a:last-child {
-	-webkit-border-top-right-radius: 0;
-	-webkit-border-top-left-radius: 3px;
-	-webkit-border-bottom-right-radius: 0;
-	-webkit-border-bottom-left-radius: 3px;
-	border-top-right-radius: 0;
-	border-top-left-radius: 3px;
-	border-bottom-right-radius: 0;
-	border-bottom-left-radius: 3px;
-}
-
-.rtl #wp-fullscreen-save img,
-.rtl #wp-fullscreen-save span {
-	padding-right: 0;
-	padding-left: 4px;
-}
-
-/* =Thickbox Adjustments
--------------------------------------------------------------- */
-/* No RTL for now, this space intentionally left blank */
-
-
-/* =TinyMCE Adjustments
--------------------------------------------------------------- */
-/* No RTL for now, this space intentionally left blank */
-
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-includes/css/editor.min.css	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,1 @@
+.wp_themeSkin table,.wp_themeSkin tbody,.wp_themeSkin a,.wp_themeSkin img,.wp_themeSkin tr,.wp_themeSkin div,.wp_themeSkin td,.wp_themeSkin iframe,.wp_themeSkin span,.wp_themeSkin *,.wp_themeSkin .mceText{border:0;margin:0;padding:0;white-space:nowrap;text-decoration:none;font-weight:normal;cursor:default;vertical-align:baseline;width:auto;border-collapse:separate}.wp_themeSkin a:hover,.wp_themeSkin a:link,.wp_themeSkin a:visited,.wp_themeSkin a:active{text-decoration:none;font-weight:normal;cursor:default}.wp_themeSkin table td{vertical-align:middle}.wp_themeSkin *,.wp_themeSkin a:hover,.wp_themeSkin a:link,.wp_themeSkin a:visited,.wp_themeSkin a:active{color:#555}.wp_themeSkin iframe{display:block}.wp_themeSkin #mce_fullscreen_ifr{background-color:#fff}.wp_themeSkin .mceToolbar{padding:1px}.wp_themeSkin .mceExternalToolbar{position:absolute;border-bottom:0;display:none}.wp_themeSkin .mceExternalToolbar td.mceToolbar{padding-right:13px}.wp_themeSkin .mceExternalClose{position:absolute;top:3px;right:3px;width:7px;height:7px;background:url("../js/tinymce/themes/advanced/img/icons.gif") -820px 0}.wp_themeSkin table.mceToolbar,.wp_themeSkin tr.mceFirst .mceToolbar tr td,.wp_themeSkin tr.mceLast .mceToolbar tr td{border:0;margin:0;padding:0}.wp_themeSkin table.mceLayout{border:0}.wp_themeSkin .mceStatusbar{display:block;font-family:sans-serif;font-size:12px;line-height:16px;padding:0 0 0 8px;overflow:visible;height:20px;border-top:1px solid #dfdfdf;color:#000;background-color:#f5f5f5}.rtl .wp_themeSkin .mceStatusbar{padding:0 8px 0 0}.wp_themeSkin .mceStatusbar *{color:#555}.wp_themeSkin .mceStatusbar div{float:left;padding:2px}.rtl .wp_themeSkin .mceStatusbar div{float:right}.wp_themeSkin .mceStatusbar a.mceResize{display:block;float:right;background:url("../js/tinymce/themes/advanced/img/icons.gif") -800px 0;width:20px;height:20px;cursor:se-resize}.rtl .wp_themeSkin .mceStatusbar a.mceResize{float:left}.wp_themeSkin .mceStatusbar a:hover{text-decoration:underline}.wp_themeSkin table.mceToolbar{margin:0 6px 2px}.wp_themeSkin table.mceToolbar :active,.wp_themeSkin table.mceToolbar :focus,.wp_themeSkin table.mceToolbar:focus,.wp_themeSkin span.mceSeparator:focus{outline:0}.wp_themeSkin #content_toolbar1{margin-top:2px}.wp_themeSkin .mceToolbar .mceToolbarEndListBox span{display:none}.wp_themeSkin span.mceIcon,.wp_themeSkin img.mceIcon{display:block;width:20px;height:20px}.wp_themeSkin .mceIcon{background:url("../js/tinymce/themes/advanced/img/icons.gif") no-repeat 20px 20px}.wp_themeSkin .mceButton{display:block;width:20px;height:20px;cursor:default;padding:1px 2px;margin:1px;-webkit-border-radius:2px;border-radius:2px}.wp_themeSkin a.mceButtonEnabled:hover{background-image:inherit 0 -10px}.wp_themeSkin .mceOldBoxModel a.mceButton span,.wp_themeSkin .mceOldBoxModel a.mceButton img{margin:0 0 0 1px}.wp_themeSkin .mceButtonDisabled .mceIcon{opacity:.2;filter:alpha(opacity=20)}.wp_themeSkin .mceSeparator{display:none}.wp_themeSkin .mceListBox,.wp_themeSkin .mceListBox a{display:block}.wp_themeSkin .mceListBox .mceText{padding:1px 4px 1px 5px;width:70px;text-align:left;text-decoration:none;-webkit-border-bottom-left-radius:2px;-webkit-border-top-left-radius:2px;border-bottom-left-radius:2px;border-top-left-radius:2px;font-family:sans-serif;font-size:12px;height:20px;line-height:20px;overflow:hidden}.wp_themeSkin .mceListBox{margin:1px;direction:ltr;background-color:#fff;border:1px solid #ddd;-webkit-box-shadow:inset 0 1px 1px -1px rgba(0,0,0,.2);box-shadow:inset 0 1px 1px -1px rgba(0,0,0,.2)}.wp_themeSkin .mceListBox .mceOpen{width:12px;height:20px;border-collapse:separate;padding:1px;-webkit-border-bottom-left-radius:0;-webkit-border-top-left-radius:0;border-bottom-left-radius:0;border-top-left-radius:0}.wp_themeSkin .mceListBox .mceFirst a{border-style:solid;border-width:1px;border-bottom-right-radius:2px;border-top-right-radius:2px}.wp_themeSkin .mceListBox .mceOpen,.wp_themeSkin .mceListBoxHover .mceOpen,.wp_themeSkin .mceListBoxSelected .mceOpen,.wp_themeSkin table.mceListBoxEnabled .mceOpen{background-image:url("../images/down_arrow.gif");background-position:3px 1px;background-repeat:no-repeat}.wp_themeSkin .mceListBoxDisabled .mceText{color:gray}.wp_themeSkin .mceListBoxMenu{overflow:auto;overflow-x:hidden}.wp_themeSkin .mceOldBoxModel .mceListBox .mceText{height:22px}.wp_themeSkin select.mceListBox{font-family:sans-serif;font-size:12px;border-color:#b2b2b2;background-color:#fff}.wp_themeSkin .mceSplitButton a,.wp_themeSkin .mceSplitButton span{display:block;height:20px}.wp_themeSkin .mceSplitButton{display:block;direction:ltr}.wp_themeSkin table.mceSplitButton td{padding:2px;-webkit-border-radius:2px;border-radius:2px}.wp_themeSkin table.mceSplitButton:hover td{background-image:inherit 0 -10px}.wp_themeSkin .mceSplitButton a.mceAction{height:20px;width:20px;padding:1px 2px;border-right:0 none}.wp_themeSkin .mceSplitButton span.mceAction{background-image:url("../js/tinymce/themes/advanced/img/icons.gif");background-repeat:no-repeat;background-color:transparent;width:20px}.wp_themeSkin .mceSplitButton a.mceOpen{width:11px;height:20px;background-position:0 2px;background-repeat:no-repeat;padding:1px 0}.wp_themeSkin .mceSplitButton span.mceOpen{display:none}.wp_themeSkin .mceSplitButtonDisabled .mceAction{opacity:.3;filter:alpha(opacity=30)}.wp_themeSkin .mceListBox a.mceText,.wp_themeSkin .mceSplitButton a.mceAction{-webkit-border-bottom-left-radius:2px;-webkit-border-top-left-radius:2px;border-bottom-left-radius:2px;border-top-left-radius:2px}.wp_themeSkin .mceSplitButton a.mceOpen,.wp_themeSkin .mceListBox a.mceOpen{-webkit-border-bottom-right-radius:2px;-webkit-border-top-right-radius:2px;border-bottom-right-radius:2px;border-top-right-radius:2px}.wp_themeSkin span.mce_undo,.wp_themeSkin span.mce_redo,.wp_themeSkin span.mce_bullist,.wp_themeSkin span.mce_numlist,.wp_themeSkin span.mce_blockquote,.wp_themeSkin span.mce_charmap,.wp_themeSkin span.mce_bold,.wp_themeSkin span.mce_italic,.wp_themeSkin span.mce_underline,.wp_themeSkin span.mce_justifyleft,.wp_themeSkin span.mce_justifyright,.wp_themeSkin span.mce_justifycenter,.wp_themeSkin span.mce_justifyfull,.wp_themeSkin span.mce_indent,.wp_themeSkin span.mce_outdent,.wp_themeSkin span.mce_link,.wp_themeSkin span.mce_unlink,.wp_themeSkin span.mce_help,.wp_themeSkin span.mce_removeformat,.wp_themeSkin span.mce_fullscreen,.wp_themeSkin span.mce_wp_fullscreen,.wp_themeSkin span.mce_media,.wp_themeSkin span.mce_pastetext,.wp_themeSkin span.mce_pasteword,.wp_themeSkin span.mce_wp_help,.wp_themeSkin span.mce_wp_adv,.wp_themeSkin span.mce_wp_more,.wp_themeSkin span.mce_strikethrough,.wp_themeSkin span.mce_spellchecker,.wp_themeSkin span.mce_forecolor,.wp_themeSkin .mce_forecolorpicker,.wp_themeSkin .mceSplitButton .mce_spellchecker span.mce_spellchecker,.wp_themeSkin .mceSplitButton .mce_forecolor span.mce_forecolor,.wp_themeSkin .mceSplitButton span.mce_numlist,.wp_themeSkin .mceSplitButton span.mce_bullist{background-image:url('../images/wpicons.png?ver=20120720')}.wp_themeSkin div.mceColorSplitMenu table{background-color:#ebebeb;border-color:#bbb}.wp_themeSkin .mceColorSplitMenu td{padding:2px}.wp_themeSkin .mceColorSplitMenu a{display:block;width:9px;height:9px;overflow:hidden;border-color:#b2b2b2}.wp_themeSkin .mceColorSplitMenu td.mceMoreColors{padding:1px 3px 1px 1px}.wp_themeSkin .mceColorSplitMenu a.mceMoreColors{width:100%;height:auto;text-align:center;font-family:Tahoma,Verdana,Arial,Helvetica;font-size:11px;line-height:20px;border-color:#fff}.wp_themeSkin .mceColorPreview{margin:-5px 0 0 2px;width:16px;height:4px;overflow:hidden}.wp_themeSkin .mceMenu{position:absolute;left:0;top:0;z-index:1000;border-color:#ddd;direction:ltr}.wp_themeSkin .mceNoIcons span.mceIcon{width:0}.wp_themeSkin .mceNoIcons a .mceText{padding-left:10px}.wp_themeSkin .mceMenu table{background-color:#ebeaeb}.wp_themeSkin .mceMenu a,.wp_themeSkin .mceMenu span,.wp_themeSkin .mceMenu{display:block}.wp_themeSkin .mceMenu td{height:20px;overflow:hidden}.wp_themeSkin .mceMenu a{position:relative;padding:3px 0 4px 0;text-decoration:none!important}.wp_themeSkin .mceMenu .mceText{position:relative;display:block;font-family:Tahoma,Verdana,Arial,Helvetica;cursor:default;margin:0;padding:0 25px;color:#000}.wp_themeSkin .mceMenu span.mceText,.wp_themeSkin .mceMenu .mcePreview{font-size:12px}.wp_themeSkin .mceMenu pre.mceText{font-family:Monospace}.wp_themeSkin .mceMenu .mceIcon{position:absolute;top:0;left:0;width:22px}.wp_themeSkin .mceMenu .mceMenuItemEnabled a:hover,.wp_themeSkin .mceMenu .mceMenuItemActive{background-color:#f5f5f5}.wp_themeSkin td.mceMenuItemSeparator{height:1px;background-color:#aaa}.wp_themeSkin .mceMenuItemTitle a{border-top:0;border-right:0;border-left:0;border-bottom:1px solid #aaa;text-decoration:none!important;background-color:#ccc}.wp_themeSkin .mceMenuItemTitle span.mceText{font-weight:bold;padding-left:4px;color:#000}.wp_themeSkin .mceMenuItemSelected .mceIcon{background:url("../js/tinymce/themes/advanced/skins/default/img/menu_check.gif");color:#888}.wp_themeSkin .mceNoIcons .mceMenuItemSelected a{background:url("../js/tinymce/themes/advanced/skins/default/img/menu_arrow.gif") no-repeat -6px center}.wp_themeSkin .mceMenu span.mceMenuLine{display:none}.wp_themeSkin .mceMenuItemSub a{background:url("../js/tinymce/themes/advanced/skins/default/img/menu_arrow.gif") no-repeat top right}.wp_themeSkin .mceBlocker{position:absolute;left:0;top:0;z-index:1000;opacity:.5;filter:alpha(opacity=50);background:#FFF}.wp_themeSkin .mceProgress{position:absolute;left:0;top:0;z-index:1001;background:url("../js/tinymce/themes/advanced/skins/default/img/progress.gif") no-repeat;width:32px;height:32px;margin:-16px 0 0 -16px}.wp_themeSkin .mcePlaceHolder{border:1px dotted gray}.mceRtl .mceListBox .mceText{text-align:right;padding:0 4px 0 0}.mceRtl .mceMenuItem .mceText{text-align:right}.wp_themeSkin .mce_address span.mceText{font-style:italic}.wp_themeSkin .mce_pre span.mceText{font-family:monospace}.wp_themeSkin .mce_h1 span.mceText{font-weight:bolder;font-size:17px}.wp_themeSkin .mce_h2 span.mceText{font-weight:bolder;font-size:16px}.wp_themeSkin .mce_h3 span.mceText{font-weight:bolder;font-size:15px}.wp_themeSkin .mce_h4 span.mceText{font-weight:bolder;font-size:14px}.wp_themeSkin .mce_h5 span.mceText{font-weight:bolder;font-size:13px}.wp_themeSkin .mce_h6 span.mceText{font-weight:bolder;font-size:12px}.wp_themeSkin span.mce_undo{background-position:-500px -20px}.wp_themeSkin .mceButtonEnabled:hover span.mce_undo,.wp_themeSkin .mceButtonActive span.mce_undo{background-position:-500px 0}.wp_themeSkin span.mce_redo{background-position:-480px -20px}.wp_themeSkin .mceButtonEnabled:hover span.mce_redo,.wp_themeSkin .mceButtonActive span.mce_redo{background-position:-480px 0}.wp_themeSkin span.mce_bullist{background-position:-40px -20px}.wp_themeSkin .mceButtonEnabled:hover span.mce_bullist,.wp_themeSkin .mceButtonActive span.mce_bullist,.wp_themeSkin .mceSplitButton:hover span.mce_bullist{background-position:-40px 0}.wp_themeSkin span.mce_numlist{background-position:-60px -20px}.wp_themeSkin .mceButtonEnabled:hover span.mce_numlist,.wp_themeSkin .mceButtonActive span.mce_numlist,.wp_themeSkin .mceSplitButton:hover span.mce_numlist{background-position:-60px 0}.wp_themeSkin span.mce_blockquote{background-position:-80px -20px}.wp_themeSkin .mceButtonEnabled:hover span.mce_blockquote,.wp_themeSkin .mceButtonActive span.mce_blockquote{background-position:-80px 0}.wp_themeSkin span.mce_charmap{background-position:-420px -20px}.wp_themeSkin .mceButtonEnabled:hover span.mce_charmap,.wp_themeSkin .mceButtonActive span.mce_charmap{background-position:-420px 0}.wp_themeSkin span.mce_bold{background-position:0 -20px}.wp_themeSkin .mceButtonEnabled:hover span.mce_bold,.wp_themeSkin .mceButtonActive span.mce_bold{background-position:0 0}.wp_themeSkin span.mce_italic{background-position:-20px -20px}.wp_themeSkin .mceButtonEnabled:hover span.mce_italic,.wp_themeSkin .mceButtonActive span.mce_italic{background-position:-20px 0}.wp_themeSkin span.mce_underline{background-position:-280px -20px}.wp_themeSkin .mceButtonEnabled:hover span.mce_underline,.wp_themeSkin .mceButtonActive span.mce_underline{background-position:-280px 0}.wp_themeSkin span.mce_justifyleft{background-position:-100px -20px}.wp_themeSkin .mceButtonEnabled:hover span.mce_justifyleft,.wp_themeSkin .mceButtonActive span.mce_justifyleft{background-position:-100px 0}.wp_themeSkin span.mce_justifyright{background-position:-140px -20px}.wp_themeSkin .mceButtonEnabled:hover span.mce_justifyright,.wp_themeSkin .mceButtonActive span.mce_justifyright{background-position:-140px 0}.wp_themeSkin span.mce_justifycenter{background-position:-120px -20px}.wp_themeSkin .mceButtonEnabled:hover span.mce_justifycenter,.wp_themeSkin .mceButtonActive span.mce_justifycenter{background-position:-120px 0}.wp_themeSkin span.mce_justifyfull{background-position:-300px -20px}.wp_themeSkin .mceButtonEnabled:hover span.mce_justifyfull,.wp_themeSkin .mceButtonActive span.mce_justifyfull{background-position:-300px 0}.wp_themeSkin span.mce_indent{background-position:-460px -20px}.wp_themeSkin .mceButtonEnabled:hover span.mce_indent,.wp_themeSkin .mceButtonActive span.mce_indent{background-position:-460px 0}.wp_themeSkin span.mce_outdent{background-position:-440px -20px}.wp_themeSkin .mceButtonEnabled:hover span.mce_outdent,.wp_themeSkin .mceButtonActive span.mce_outdent{background-position:-440px 0}.wp_themeSkin span.mce_link{background-position:-160px -20px}.wp_themeSkin .mceButtonEnabled:hover span.mce_link,.wp_themeSkin .mceButtonActive span.mce_link{background-position:-160px 0}.wp_themeSkin span.mce_unlink{background-position:-180px -20px}.wp_themeSkin .mceButtonEnabled:hover span.mce_unlink,.wp_themeSkin .mceButtonActive span.mce_unlink{background-position:-180px 0}.wp_themeSkin span.mce_help{background-position:-520px -20px}.wp_themeSkin .mceButtonEnabled:hover span.mce_help,.wp_themeSkin .mceButtonActive span.mce_help{background-position:-520px 0}.wp_themeSkin span.mce_removeformat{background-position:-380px -20px}.wp_themeSkin .mceButtonEnabled:hover span.mce_removeformat,.wp_themeSkin .mceButtonActive span.mce_removeformat{background-position:-380px 0}.wp_themeSkin span.mce_strikethrough{background-position:-540px -20px}.wp_themeSkin .mceButtonEnabled:hover span.mce_strikethrough,.wp_themeSkin .mceButtonActive span.mce_strikethrough{background-position:-540px 0}.wp_themeSkin .mceSplitButton .mce_forecolor span.mce_forecolor{background-position:-320px -20px}.wp_themeSkin .mceSplitButtonEnabled:hover span.mce_forecolor,.wp_themeSkin .mceSplitButtonSelected span.mce_forecolor{background-position:-320px 0}.wp_themeSkin .mce_forecolorpicker{background-position:-320px -20px}.wp_themeSkin span.mce_fullscreen{background-position:-240px -20px}.wp_themeSkin .mceButtonEnabled:hover span.mce_fullscreen,.wp_themeSkin .mceButtonActive span.mce_fullscreen{background-position:-240px 0}.wp_themeSkin span.mce_wp_fullscreen{background-position:-240px -20px}.wp_themeSkin .mceButtonEnabled:hover span.mce_wp_fullscreen,.wp_themeSkin .mceButtonActive span.mce_wp_fullscreen{background-position:-240px 0}.wp_themeSkin span.mce_media{background-position:-400px -20px}.wp_themeSkin .mceButtonEnabled:hover span.mce_media,.wp_themeSkin .mceButtonActive span.mce_media{background-position:-400px 0}.wp_themeSkin span.mce_pastetext{background-position:-340px -20px}.wp_themeSkin .mceButtonEnabled:hover span.mce_pastetext,.wp_themeSkin .mceButtonActive span.mce_pastetext{background-position:-340px 0}.wp_themeSkin span.mce_pasteword{background-position:-360px -20px}.wp_themeSkin .mceButtonEnabled:hover span.mce_pasteword,.wp_themeSkin .mceButtonActive span.mce_pasteword{background-position:-360px 0}.wp_themeSkin span.mce_spellchecker{background-position:-220px -20px}.wp_themeSkin .mceButtonEnabled:hover span.mce_spellchecker,.wp_themeSkin .mceSplitButtonEnabled:hover span.mce_spellchecker,.wp_themeSkin .mceButtonActive span.mce_spellchecker,.wp_themeSkin .mceSplitButtonSelected span.mce_spellchecker{background-position:-220px 0}.wp_themeSkin span.mce_wp_help{background-position:-520px -20px}.wp_themeSkin .mceButtonEnabled:hover span.mce_wp_help,.wp_themeSkin .mceButtonActive span.mce_wp_help{background-position:-520px 0}.wp_themeSkin span.mce_wp_adv{background-position:-260px -20px}.wp_themeSkin .mceButtonEnabled:hover span.mce_wp_adv,.wp_themeSkin .mceButtonActive span.mce_wp_adv{background-position:-260px 0}.wp_themeSkin span.mce_wp_more{background-position:-200px -20px}.wp_themeSkin .mceButtonEnabled:hover span.mce_wp_more,.wp_themeSkin .mceButtonActive span.mce_wp_more{background-position:-200px 0}.wp_themeSkin span.mce_cleanup{background-position:-380px -20px}.wp_themeSkin span.mce_anchor{background-position:-200px 0}.wp_themeSkin span.mce_sub{background-position:-600px 0}.wp_themeSkin span.mce_sup{background-position:-620px 0}.wp_themeSkin span.mce_newdocument{background-position:-520px 0}.wp_themeSkin span.mce_image{background-position:-380px 0}.wp_themeSkin span.mce_code{background-position:-260px 0}.wp_themeSkin span.mce_hr{background-position:-360px 0}.wp_themeSkin span.mce_visualaid{background-position:-660px 0}.wp_themeSkin span.mce_paste{background-position:-560px 0}.wp_themeSkin span.mce_copy{background-position:-700px 0}.wp_themeSkin span.mce_cut{background-position:-680px 0}.wp_themeSkin .mce_backcolor span.mceAction{background-position:-760px 0}.wp_themeSkin .mce_backcolorpicker{background-position:-760px 0}.wp_themeSkin span.mce_advhr{background-position:-0px -20px}.wp_themeSkin span.mce_ltr{background-position:-20px -20px}.wp_themeSkin span.mce_rtl{background-position:-40px -20px}.wp_themeSkin span.mce_emotions{background-position:-60px -20px}.wp_themeSkin span.mce_fullpage{background-position:-80px -20px}.wp_themeSkin span.mce_iespell{background-position:-120px -20px}.wp_themeSkin span.mce_insertdate{background-position:-140px -20px}.wp_themeSkin span.mce_inserttime{background-position:-160px -20px}.wp_themeSkin span.mce_absolute{background-position:-180px -20px}.wp_themeSkin span.mce_backward{background-position:-200px -20px}.wp_themeSkin span.mce_forward{background-position:-220px -20px}.wp_themeSkin span.mce_insert_layer{background-position:-240px -20px}.wp_themeSkin span.mce_insertlayer{background-position:-260px -20px}.wp_themeSkin span.mce_movebackward{background-position:-280px -20px}.wp_themeSkin span.mce_moveforward{background-position:-300px -20px}.wp_themeSkin span.mce_nonbreaking{background-position:-340px -20px}.wp_themeSkin span.mce_selectall{background-position:-400px -20px}.wp_themeSkin span.mce_preview{background-position:-420px -20px}.wp_themeSkin span.mce_print{background-position:-440px -20px}.wp_themeSkin span.mce_cancel{background-position:-460px -20px}.wp_themeSkin span.mce_save{background-position:-480px -20px}.wp_themeSkin span.mce_replace{background-position:-500px -20px}.wp_themeSkin span.mce_search{background-position:-520px -20px}.wp_themeSkin span.mce_styleprops{background-position:-560px -20px}.wp_themeSkin span.mce_table{background-position:-580px -20px}.wp_themeSkin span.mce_cell_props{background-position:-600px -20px}.wp_themeSkin span.mce_delete_table{background-position:-620px -20px}.wp_themeSkin span.mce_delete_col{background-position:-640px -20px}.wp_themeSkin span.mce_delete_row{background-position:-660px -20px}.wp_themeSkin span.mce_col_after{background-position:-680px -20px}.wp_themeSkin span.mce_col_before{background-position:-700px -20px}.wp_themeSkin span.mce_row_after{background-position:-720px -20px}.wp_themeSkin span.mce_row_before{background-position:-740px -20px}.wp_themeSkin span.mce_merge_cells{background-position:-760px -20px}.wp_themeSkin span.mce_table_props{background-position:-980px -20px}.wp_themeSkin span.mce_row_props{background-position:-780px -20px}.wp_themeSkin span.mce_split_cells{background-position:-800px -20px}.wp_themeSkin span.mce_template{background-position:-820px -20px}.wp_themeSkin span.mce_visualchars{background-position:-840px -20px}.wp_themeSkin span.mce_abbr{background-position:-860px -20px}.wp_themeSkin span.mce_acronym{background-position:-880px -20px}.wp_themeSkin span.mce_attribs{background-position:-900px -20px}.wp_themeSkin span.mce_cite{background-position:-920px -20px}.wp_themeSkin span.mce_del{background-position:-940px -20px}.wp_themeSkin span.mce_ins{background-position:-960px -20px}.wp_themeSkin span.mce_pagebreak{background-position:0 -40px}.wp_themeSkin span.mce_restoredraft{background-position:-20px -40px}.wp_themeSkin span.mce_visualblocks{background-position:-40px -40px}.wp_themeSkin .mceExternalToolbar,.wp_themeSkin .mceButton,.wp_themeSkin a.mceButtonEnabled:hover,.wp_themeSkin a.mceButtonActive,.wp_themeSkin a.mceButtonSelected,.wp_themeSkin .mceListBox .mceText,.wp_themeSkin .mceListBox .mceOpen,.wp_themeSkin select.mceListBox,.wp_themeSkin .mceSplitButton a.mceAction,.wp_themeSkin .mceSplitButton a.mceOpen,.wp_themeSkin .mceSplitButton a.mceOpen:hover,.wp_themeSkin .mceSplitButtonSelected a.mceOpen,.wp_themeSkin table.mceSplitButtonEnabled:hover a.mceAction,.wp_themeSkin .mceSplitButton a.mceAction:hover,.wp_themeSkin div.mceColorSplitMenu table,.wp_themeSkin .mceColorSplitMenu a,.wp_themeSkin .mceColorSplitMenu a.mceMoreColors,.wp_themeSkin .mceColorSplitMenu a.mceMoreColors:hover,.wp_themeSkin a.mceMoreColors:hover,.wp_themeSkin .mceMenu{border-style:solid;border-width:1px}.wp_themeSkin .mceListBox .mceText{border-right:0 none}.wp_themeSkin iframe{background:transparent}.wp_themeSkin .mceButton{border-color:transparent}.wp_themeSkin .mceListBox .mceText,.wp_themeSkin .mceListBox .mceOpen{border-color:transparent}.wp_themeSkin a.mceButtonEnabled:hover,.wp_themeSkin table.mceSplitButton:hover{border-color:#bbb;background:#eee;background-image:-webkit-gradient(linear,left bottom,left top,from(#e5e5e5),to(#fff));background-image:-webkit-linear-gradient(bottom,#e5e5e5,#fff);background-image:-moz-linear-gradient(bottom,#e5e5e5,#fff);background-image:-o-linear-gradient(bottom,#e5e5e5,#fff);background-image:linear-gradient(to top,#e5e5e5,#fff)}.wp_themeSkin a.mceButton:active,.wp_themeSkin a.mceButtonEnabled:active,.wp_themeSkin a.mceButtonSelected:active,.wp_themeSkin a.mceButtonActive,.wp_themeSkin a.mceButtonActive:active,.wp_themeSkin a.mceButtonActive:hover,.wp_themeSkin .mceSplitButtonSelected table,.wp_themeSkin .mceSplitButtonSelected table:hover{outline:0;border-color:#999 #ccc #ccc #999;background:#eee;background-image:-webkit-gradient(linear,left bottom,left top,from(#f6f6f6),to(#e3e3e3));background-image:-webkit-linear-gradient(bottom,#f6f6f6,#e3e3e3);background-image:-moz-linear-gradient(bottom,#f6f6f6,#e3e3e3);background-image:-o-linear-gradient(bottom,#f6f6f6,#e3e3e3);background-image:linear-gradient(to top,#f6f6f6,#e3e3e3)}.wp_themeSkin .mceSplitButtonSelected table a.mceOpen,.wp_themeSkin .mceSplitButtonSelected table a.mceAction{border-color:#999 #ccc #ccc #999}.wp_themeSkin .mceButtonDisabled{border-color:transparent}.wp_themeSkin .mceListBox .mceOpen{border-left:0}.wp_themeSkin .mceListBoxEnabled:hover,.wp_themeSkin .mceListBoxEnabled:active,.wp_themeSkin .mceListBoxHover,.wp_themeSkin .mceListBoxHover:active,.wp_themeSkin .mceListBoxSelected{-webkit-box-shadow:inset 0 1px 1px -1px rgba(0,0,0,.3);box-shadow:inset 0 1px 1px -1px rgba(0,0,0,.3);border-color:#bbb}.wp_themeSkin .mceSplitButton .mceLast span.mceOpen .mceIconOnly{display:block}.wp_themeSkin .mceSplitButton a.mceAction,.wp_themeSkin .mceSplitButton a.mceOpen{border-color:transparent}.wp_themeSkin .mceSplitButton:hover a{border-color:#bbb}.wp_themeSkin .mceSplitButtonEnabled a.mceOpen,.wp_themeSkin .mceSplitButtonSelected a.mceOpen,.wp_themeSkin .mceSplitButtonActive a.mceOpen,.wp_themeSkin .mceSplitButtonEnabled:hover a.mceOpen{background-image:url("../images/down_arrow.gif");background-position:1px 2px;background-repeat:no-repeat;border-left:0}.wp_themeSkin .mceSplitButtonActive td{-webkit-border-radius:3px;border-radius:3px}.wp_themeSkin .mceColorSplitMenu a.mceMoreColors:hover{border-color:#0a246a;background-color:#b6bdd2}.wp_themeSkin a.mceMoreColors:hover{border-color:#0a246a}.wp_themeSkin .mceMenuItemDisabled .mceText{color:#888}#mceModalBlocker{background:#000}.wp-editor-wrap{position:relative}.wp-editor-area{font-family:Consolas,Monaco,monospace;padding:10px;margin:1px 0 0;line-height:150%;border:0 none;outline:0;display:block;resize:vertical;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.wp-editor-tools{height:30px;padding:0 10px 0 0}.rtl .wp-editor-tools{padding:0 0 0 10px}.wp-editor-container{border-width:1px;border-style:solid;-webkit-border-top-right-radius:3px;-webkit-border-top-left-radius:3px;border-top-right-radius:3px;border-top-left-radius:3px;border-color:#ccc #ccc #dfdfdf}.wp-editor-container textarea.wp-editor-area{width:100%;margin:0;-webkit-box-shadow:none;box-shadow:none}.quicktags-toolbar,.wp_themeSkin tr.mceFirst td.mceToolbar{border-bottom:1px solid #d1d1d1;background:#eee;background-image:-webkit-gradient(linear,left bottom,left top,from(#e5e5e5),to(#f4f4f4));background-image:-webkit-linear-gradient(bottom,#e5e5e5,#f4f4f4);background-image:-moz-linear-gradient(bottom,#e5e5e5,#f4f4f4);background-image:-o-linear-gradient(bottom,#e5e5e5,#f4f4f4);background-image:linear-gradient(to top,#e5e5e5,#f4f4f4)}.wp-switch-editor{height:18px;font:13px/18px Arial,Helvetica,sans-serif normal;margin:5px 5px 0 0;padding:4px 5px 2px;float:right;cursor:pointer;border-width:1px;border-style:solid;-webkit-border-top-right-radius:3px;-webkit-border-top-left-radius:3px;border-top-right-radius:3px;border-top-left-radius:3px;background-color:#f1f1f1;border-color:#dfdfdf #dfdfdf #ccc;color:#999}html[dir="rtl"] .wp-switch-editor{float:left}.wp-switch-editor:active{background-color:#f1f1f1}.wp-switch-editor:hover{text-decoration:none!important}.js .tmce-active .wp-editor-area{color:white}.tmce-active .quicktags-toolbar{display:none}.tmce-active .switch-tmce,.html-active .switch-html{border-color:#ccc #ccc #f4f4f4;background-color:#f4f4f4;color:#555}.wp-media-buttons .button{margin-right:5px}.rtl .wp-media-buttons .button{margin-right:0;margin-left:5px}.wp-media-buttons .insert-media{padding-left:.4em}.rtl .wp-media-buttons .insert-media{padding-left:10px;padding-right:.4em}.wp-media-buttons a{text-decoration:none;color:#464646;font-size:12px}.wp-media-buttons img{padding:0 4px;vertical-align:middle}.wp-media-buttons span.wp-media-buttons-icon{display:inline-block;width:16px;height:16px;vertical-align:text-top;margin:0 2px}.wp-media-buttons .add_media span.wp-media-buttons-icon{background:url('../../wp-admin/images/media-button.png') no-repeat top left}.quicktags-toolbar{border-bottom-style:solid;border-bottom-width:1px;-webkit-border-top-right-radius:3px;-webkit-border-top-left-radius:3px;border-top-right-radius:3px;border-top-left-radius:3px;padding:2px 8px 0;min-height:29px}.quicktags-toolbar>div{padding:2px 4px 0}.quicktags-toolbar input{margin:2px 1px 4px;line-height:18px;display:inline-block;min-width:26px;padding:2px 4px;font:12px/18px Arial,Helvetica,sans-serif normal;color:#464646;border:1px solid #c3c3c3;-webkit-border-radius:3px;border-radius:3px;background:#eee;background-image:-webkit-gradient(linear,left bottom,left top,from(#e3e3e3),to(#fff));background-image:-webkit-linear-gradient(bottom,#e3e3e3,#fff);background-image:-moz-linear-gradient(bottom,#e3e3e3,#fff);background-image:-o-linear-gradient(bottom,#e3e3e3,#fff);background-image:linear-gradient(to top,#e3e3e3,#fff)}.quicktags-toolbar input:hover{border-color:#aaa;background:#ddd}.quicktags-toolbar input[value="link"]{text-decoration:underline}.quicktags-toolbar input[value="del"]{text-decoration:line-through}.quicktags-toolbar input[value="i"]{font-style:italic}.quicktags-toolbar input[value="b"]{font-weight:bold}#wp_editbtns,#wp_gallerybtns{padding:2px;position:absolute;display:none;z-index:155000}#wp_editimgbtn,#wp_delimgbtn,#wp_editgallery,#wp_delgallery{border-color:#999;background-color:#eee;margin:2px;padding:2px;border-width:1px;border-style:solid;-webkit-border-radius:3px;border-radius:3px}#wp_editimgbtn:hover,#wp_delimgbtn:hover,#wp_editgallery:hover,#wp_delgallery:hover{border-color:#555;background-color:#ccc}#wp-link{background-color:#f5f5f5;line-height:1.4em;font-size:12px}#wp-link ol,#wp-link ul{list-style:none;margin:0;padding:0}#wp-link input[type="text"]{-webkit-box-sizing:border-box}#wp-link input[type="text"],#wp-link textarea{border-width:1px;border-style:solid;-webkit-border-radius:4px;border-radius:4px;font-size:12px;margin:1px;padding:3px}#wp-link #link-options{padding:10px 0 14px;border-bottom:1px solid #dfdfdf;margin:0 6px 14px}#wp-link p.howto{margin:3px}#wp-link #internal-toggle{display:inline-block;cursor:pointer;padding-left:18px}#wp-link .toggle-arrow{background:transparent url('../images/toggle-arrow.png') top left no-repeat;height:23px;line-height:23px}#wp-link .toggle-arrow-active{background-position:center left}#wp-link label input[type="text"]{width:360px;margin-top:5px}#wp-link #link-options label span,#wp-link #search-panel label span.search-label{display:inline-block;width:80px;text-align:right;padding-right:5px}#wp-link .link-search-field{float:left;margin-right:5px}#wp-link .link-search-wrapper{margin:5px 6px 9px;display:block;overflow:hidden}#wp-link .link-search-wrapper span{float:left;margin-top:4px}#wp-link .link-search-wrapper input[type="text"]{float:left;width:220px}#wp-link .link-search-wrapper .spinner{margin:4px 2px 0 0;display:none;vertical-align:text-bottom}#wp-link .link-target{width:auto;padding:3px 0 0;margin:0 0 0 87px;font-size:11px}#wp-link .query-results{border:1px #dfdfdf solid;margin:0 5px 5px;background:#fff;height:185px;overflow:auto;position:relative}#wp-link li,#wp-link .query-notice{clear:both;margin-bottom:0;border-bottom:1px solid #f1f1f1;color:#333;padding:4px 6px;cursor:pointer;position:relative}#wp-link li:hover{background:#eaf2fa;color:#151515}#wp-link li.unselectable{border-bottom:1px solid #dfdfdf}#wp-link li.unselectable:hover{background:#fff;cursor:auto;color:#333}#wp-link li.selected{background:#ddd;color:#333}#wp-link li.selected .item-title{font-weight:bold}#wp-link .item-title{display:inline-block;width:80%}#wp-link .item-info{text-transform:uppercase;color:#666;font-size:11px;position:absolute;right:5px;top:4px;bottom:0}#wp-link #search-results{display:none}#wp-link #search-panel{float:left;width:100%}#wp-link .river-waiting{display:none;padding:10px 0}#wp-link .river-waiting .spinner{margin:0 auto;display:block}#wp-link .submitbox{padding:5px 10px;font-size:11px;overflow:auto;height:29px}#wp-link-cancel{line-height:25px;float:left}#wp-link-update{line-height:23px;float:right}.ui-helper-hidden{display:none}.ui-helper-hidden-accessible{position:absolute;left:-99999999px}.ui-helper-reset{margin:0;padding:0;border:0;outline:0;line-height:1.3;text-decoration:none;font-size:100%;list-style:none}.ui-helper-clearfix:after{content:".";display:block;height:0;clear:both;visibility:hidden}.ui-helper-clearfix{display:inline-block}/*\*/* html .ui-helper-clearfix{height:1%}.ui-helper-clearfix{display:block}/**/.ui-helper-zfix{width:100%;height:100%;top:0;left:0;position:absolute;opacity:0;filter:Alpha(Opacity=0)}.ui-state-disabled{cursor:default!important}.ui-icon{display:block;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat}.ui-widget-overlay{position:absolute;top:0;left:0;width:100%;height:100%}.ui-resizable{position:relative}.ui-resizable-handle{position:absolute;font-size:.1px;z-index:99999;display:block}.ui-resizable-disabled .ui-resizable-handle,.ui-resizable-autohide .ui-resizable-handle{display:none}.ui-resizable-n{cursor:n-resize;height:7px;width:100%;top:-5px;left:0}.ui-resizable-s{cursor:s-resize;height:7px;width:100%;bottom:-5px;left:0}.ui-resizable-e{cursor:e-resize;width:7px;right:-5px;top:0;height:100%}.ui-resizable-w{cursor:w-resize;width:7px;left:-5px;top:0;height:100%}.ui-resizable-se{cursor:se-resize;width:12px;height:12px;right:1px;bottom:1px}.ui-resizable-sw{cursor:sw-resize;width:9px;height:9px;left:-5px;bottom:-5px}.ui-resizable-nw{cursor:nw-resize;width:9px;height:9px;left:-5px;top:-5px}.ui-resizable-ne{cursor:ne-resize;width:9px;height:9px;right:-5px;top:-5px}.wp-dialog{position:absolute;width:300px;overflow:hidden}.wp-dialog .ui-dialog-titlebar{position:relative}.wp-dialog .ui-dialog-titlebar-close span{display:block;margin:1px}.wp-dialog .ui-dialog-content{position:relative;border:0;padding:0;background:0;overflow:auto;zoom:1}.wp-dialog .ui-dialog-buttonpane{text-align:left;border-width:1px 0 0 0;background-image:none;margin:.5em 0 0 0;padding:.3em 1em .5em .4em}.wp-dialog .ui-dialog-buttonpane .ui-dialog-buttonset{float:right}.wp-dialog .ui-dialog-buttonpane button{margin:.5em .4em .5em 0;cursor:pointer}.wp-dialog .ui-resizable-se{width:14px;height:14px;right:3px;bottom:3px}.ui-draggable .ui-dialog-titlebar{cursor:move}.wp-dialog{border:1px solid #999;-webkit-box-shadow:0 0 16px rgba(0,0,0,0.3);box-shadow:0 0 16px rgba(0,0,0,0.3)}.wp-dialog .ui-dialog-title{display:block;text-align:center;padding:1px 0 2px}.wp-dialog .ui-dialog-titlebar{padding:0 1em;background-color:#444;font-weight:bold;font-size:11px;line-height:18px;color:#e5e5e5}.wp-dialog{background-color:#fff;-webkit-border-top-left-radius:4px;-webkit-border-top-right-radius:4px;border-top-left-radius:4px;border-top-right-radius:4px}.wp-dialog .ui-dialog-titlebar{-webkit-border-top-left-radius:3px;-webkit-border-top-right-radius:3px;border-top-left-radius:3px;border-top-right-radius:3px}.wp-dialog .ui-dialog-titlebar-close{position:absolute;width:29px;height:16px;top:2px;right:6px;background:url('../js/tinymce/plugins/inlinepopups/skins/clearlooks2/img/buttons.gif') no-repeat -87px -16px;padding:0}.wp-dialog .ui-dialog-titlebar-close:hover,.wp-dialog .ui-dialog-titlebar-close:focus{background-position:-87px -32px}.ui-widget-overlay{background-color:#000;opacity:.6;filter:alpha(opacity=60)}.rtl #wp-link #internal-toggle{padding-right:18px;padding-left:0}.rtl #wp-link label span{text-align:left;padding-left:5px;padding-right:0}.rtl #wp-link .link-search-wrapper span{float:right}.rtl #wp-link .link-search-wrapper input[type="text"]{float:right}.rtl #wp-link .link-target{margin:0 87px 0 0}.rtl #wp-link .item-info{left:5px;right:auto;top:4px;bottom:0}.rtl #wp-link #search-panel{float:right}.rtl #wp-link-cancel{float:right}.rtl #wp-link-update{float:left}.rtl #wp-link .toggle-arrow{background-position:top right}.rtl #wp-link .toggle-arrow-active{background-position:center right}.rtl .wp_themeSkin .mceListBox .mceText{text-align:right}.rtl .wp_themeSkin .mceNoIcons a .mceText{padding-right:10px;padding-left:25px}.rtl .mceListBoxMenu.mceNoIcons{margin-left:-14px}.clearlooks2 .mceFocus .mceTop .mceLeft{background:#444;border-left:1px solid #999;border-top:1px solid #999;-webkit-border-top-left-radius:3px;border-top-left-radius:3px}.clearlooks2 .mceFocus .mceTop .mceRight{background:#444;border-right:1px solid #999;border-top:1px solid #999;-webkit-border-top-right-radius:3px;border-top-right-radius:3px}.clearlooks2 .mceMiddle .mceLeft{background:#f1f1f1;border-left:1px solid #999}.clearlooks2 .mceMiddle .mceRight{background:#f1f1f1;border-right:1px solid #999}.clearlooks2 .mceBottom{background:#f1f1f1;border-bottom:1px solid #999}.clearlooks2 .mceBottom .mceLeft{background:#f1f1f1;border-bottom:1px solid #999;border-left:1px solid #999}.clearlooks2 .mceBottom .mceCenter{background:#f1f1f1;border-bottom:1px solid #999}.clearlooks2 .mceBottom .mceRight{background:#f1f1f1;border-bottom:1px solid #999;border-right:1px solid #999}.clearlooks2 .mceFocus .mceTop span{color:#e5e5e5}.fullscreen-overlay{z-index:149999;display:none;position:fixed;top:0;bottom:0;left:0;right:0;filter:inherit}.fullscreen-active .fullscreen-overlay,.fullscreen-active #wp-fullscreen-body{display:block}.fullscreen-fader{z-index:200000}.fullscreen-active .fullscreen-fader{display:none}#wp-fullscreen-body{width:100%;z-index:150005;display:none;position:absolute;top:0;left:0;font-size:12px}#wp-fullscreen-wrap{margin:0 auto 50px;position:relative;padding-top:60px}#wp-fullscreen-title{font-size:1.7em;line-height:100%;outline:medium none;padding:6px 7px;width:100%;margin-bottom:30px}#wp-fullscreen-container{padding:4px 10px 50px}#wp-fullscreen-title,#wp-fullscreen-container{-webkit-border-radius:0;border-radius:0;border:1px dashed transparent;background:transparent;-moz-transition-property:border-color;-moz-transition-duration:.6s;-webkit-transition-property:border-color;-webkit-transition-duration:.6s;-o-transition-property:border-color;-o-transition-duration:.6s;transition-property:border-color;transition-duration:.6s}#wp_mce_fullscreen{width:100%;min-height:300px;border:0;background:transparent;font-family:Consolas,Monaco,monospace;line-height:1.6em;padding:0;overflow-y:hidden;outline:0;resize:none}#wp-fullscreen-tagline{color:#bbb;font-size:18px;float:right;padding-top:5px}#fullscreen-topbar{position:fixed;top:0;left:0;z-index:150050;border-bottom-style:solid;border-bottom-width:1px;min-width:800px;width:100%;height:40px}#wp-fullscreen-toolbar{padding:6px 10px 0;clear:both;max-width:1100px;min-width:820px;margin:0 auto}#wp-fullscreen-mode-bar,#wp-fullscreen-button-bar,#wp-fullscreen-close,#wp-fullscreen-count{float:left}#wp-fullscreen-save{float:right;padding:2px 2px 0 5px}#wp-fullscreen-count,#wp-fullscreen-close{padding-top:5px}#wp-fullscreen-central-toolbar{margin:auto;padding:0}#wp-fullscreen-buttons>div{float:left}#wp-fullscreen-mode-bar{padding:1px 14px 0 0}#wp-fullscreen-modes a{display:block;font-size:11px;text-decoration:none;float:left;margin:1px 0 0 0;padding:2px 6px 2px;border-width:1px 1px 1px 0;border-style:solid;border-color:#bbb;color:#777;text-shadow:0 1px 0 #fff;background-color:#f4f4f4;background:#f4f4f4;background-image:-webkit-gradient(linear,left bottom,left top,from(#e4e4e4),to(#f9f9f9));background-image:-webkit-linear-gradient(bottom,#e4e4e4,#f9f9f9);background-image:-moz-linear-gradient(bottom,#e4e4e4,#f9f9f9);background-image:-o-linear-gradient(bottom,#e4e4e4,#f9f9f9);background-image:linear-gradient(to top,#e4e4e4,#f9f9f9)}#wp-fullscreen-modes a:hover,.wp-html-mode #wp-fullscreen-modes a:last-child,.wp-tmce-mode #wp-fullscreen-modes a:first-child{color:#333;border-color:#999;background:#eee;background-image:-webkit-gradient(linear,left top,left bottom,from(#e4e4e4),to(#f9f9f9));background-image:-webkit-linear-gradient(top,#e4e4e4,#f9f9f9);background-image:-moz-linear-gradient(top,#e4e4e4,#f9f9f9);background-image:-o-linear-gradient(top,#e4e4e4,#f9f9f9);background-image:linear-gradient(to bottom,#e4e4e4,#f9f9f9)}#wp-fullscreen-modes a:first-child{border-width:1px;-webkit-border-top-left-radius:3px;-webkit-border-bottom-left-radius:3px;border-top-left-radius:3px;border-bottom-left-radius:3px}#wp-fullscreen-modes a:last-child{-webkit-border-top-right-radius:3px;-webkit-border-bottom-right-radius:3px;border-top-right-radius:3px;border-bottom-right-radius:3px}#wp-fullscreen-buttons .active a{background:inherit}#wp-fullscreen-buttons .hidden{display:none}#wp-fullscreen-buttons .disabled{opacity:.5}.wp-html-mode #wp-fullscreen-buttons div{display:none}.wp-html-mode #wp-fullscreen-buttons div.wp-fullscreen-both{display:block}#fullscreen-topbar.fullscreen-make-sticky{display:block!important}#wp-fullscreen-save img{vertical-align:middle}#wp-fullscreen-save img,#wp-fullscreen-save span{padding-right:4px;display:none}#wp-fullscreen-buttons #wp_fs_image span.mce_image{background-image:url('../../wp-admin/images/media-button.png');background-position:2px 2px}.fullscreen-active #TB_overlay{z-index:150100}.fullscreen-active #TB_window{z-index:150102}#wp_mce_fullscreen_ifr{background:transparent}#wp_mce_fullscreen_parent #wp_mce_fullscreen_tbl tr.mceFirst{display:none}#wp-fullscreen-container .wp_themeSkin table td{vertical-align:top}.fullscreen-overlay{background:#fff}.wp-fullscreen-focus #wp-fullscreen-title,.wp-fullscreen-focus #wp-fullscreen-container{border-color:#ccc}#fullscreen-topbar{border-bottom-color:#dfdfdf;background:#f1f1f1;background-image:-webkit-gradient(linear,left bottom,left top,from(#ececec),to(#f9f9f9));background-image:-webkit-linear-gradient(bottom,#ececec,#f9f9f9);background-image:-moz-linear-gradient(bottom,#ececec,#f9f9f9);background-image:-o-linear-gradient(bottom,#ececec,#f9f9f9);background-image:linear-gradient(to top,#ececec,#f9f9f9)}.fade-1000,.fade-600,.fade-400,.fade-300{opacity:0;-moz-transition-property:opacity;-webkit-transition-property:opacity;-o-transition-property:opacity;transition-property:opacity}.fade-1000{-moz-transition-duration:1s;-webkit-transition-duration:1s;-o-transition-duration:1s;transition-duration:1s}.fade-600{-moz-transition-duration:.6s;-webkit-transition-duration:.6s;-o-transition-duration:.6s;transition-duration:.6s}.fade-400{-moz-transition-duration:.4s;-webkit-transition-duration:.4s;-o-transition-duration:.4s;transition-duration:.4s}.fade-300{-moz-transition-duration:.3s;-webkit-transition-duration:.3s;-o-transition-duration:.3s;transition-duration:.3s}.fade-trigger{opacity:1}.rtl #wp-fullscreen-tagline{float:left}.rtl #fullscreen-topbar{left:auto;right:0}.rtl #wp-fullscreen-mode-bar,.rtl #wp-fullscreen-button-bar,.rtl #wp-fullscreen-close,.rtl #wp-fullscreen-count{float:right}.rtl #wp-fullscreen-save{float:left}.rtl #wp-fullscreen-save{padding:2px 5px 0 2px}.rtl #wp-fullscreen-buttons>div{float:right}.rtl #wp-fullscreen-mode-bar{padding:1px 0 0 14px}.rtl #wp-fullscreen-modes a{float:right;border-width:1px 0 1px 1px}.rtl #wp-fullscreen-modes a:first-child{-webkit-border-top-left-radius:0;-webkit-border-top-right-radius:3px;-webkit-border-bottom-left-radius:0;-webkit-border-bottom-right-radius:3px;border-width:1px;border-top-left-radius:0;border-top-right-radius:3px;border-bottom-left-radius:0;border-bottom-right-radius:3px}.rtl #wp-fullscreen-modes a:last-child{-webkit-border-top-right-radius:0;-webkit-border-top-left-radius:3px;-webkit-border-bottom-right-radius:0;-webkit-border-bottom-left-radius:3px;border-top-right-radius:0;border-top-left-radius:3px;border-bottom-right-radius:0;border-bottom-left-radius:3px}.rtl #wp-fullscreen-save img,.rtl #wp-fullscreen-save span{padding-right:0;padding-left:4px}@media print,(-o-min-device-pixel-ratio:5/4),(-webkit-min-device-pixel-ratio:1.25),(min-resolution:120dpi){.wp_themeSkin span.mce_undo,.wp_themeSkin span.mce_redo,.wp_themeSkin span.mce_bullist,.wp_themeSkin span.mce_numlist,.wp_themeSkin span.mce_blockquote,.wp_themeSkin span.mce_charmap,.wp_themeSkin span.mce_bold,.wp_themeSkin span.mce_italic,.wp_themeSkin span.mce_underline,.wp_themeSkin span.mce_justifyleft,.wp_themeSkin span.mce_justifyright,.wp_themeSkin span.mce_justifycenter,.wp_themeSkin span.mce_justifyfull,.wp_themeSkin span.mce_indent,.wp_themeSkin span.mce_outdent,.wp_themeSkin span.mce_link,.wp_themeSkin span.mce_unlink,.wp_themeSkin span.mce_help,.wp_themeSkin span.mce_removeformat,.wp_themeSkin span.mce_fullscreen,.wp_themeSkin span.mce_wp_fullscreen,.wp_themeSkin span.mce_media,.wp_themeSkin span.mce_pastetext,.wp_themeSkin span.mce_pasteword,.wp_themeSkin span.mce_wp_help,.wp_themeSkin span.mce_wp_adv,.wp_themeSkin span.mce_wp_more,.wp_themeSkin span.mce_strikethrough,.wp_themeSkin span.mce_spellchecker,.wp_themeSkin span.mce_forecolor,.wp_themeSkin .mce_forecolorpicker,.wp_themeSkin .mceSplitButton .mce_spellchecker span.mce_spellchecker,.wp_themeSkin .mceSplitButton .mce_forecolor span.mce_forecolor,.wp_themeSkin .mceSplitButton span.mce_numlist,.wp_themeSkin .mceSplitButton span.mce_bullist{background-image:url('../images/wpicons-2x.png?ver=20120720');background-size:560px 40px}.wp-media-buttons .add_media span.wp-media-buttons-icon,#wp-fullscreen-buttons #wp_fs_image span.mce_image{background-image:url('../../wp-admin/images/media-button-2x.png');background-size:16px 16px}.wp_themeSkin .mceListBox .mceOpen,.wp_themeSkin .mceListBoxHover .mceOpen,.wp_themeSkin .mceListBoxSelected .mceOpen,.wp_themeSkin table.mceListBoxEnabled .mceOpen{background-image:url('../images/down_arrow-2x.gif');background-size:10px 20px}.wp_themeSkin .mceSplitButtonEnabled a.mceOpen,.wp_themeSkin .mceSplitButtonSelected a.mceOpen,.wp_themeSkin .mceSplitButtonActive a.mceOpen,.wp_themeSkin .mceSplitButtonEnabled:hover a.mceOpen{background-image:url('../images/down_arrow-2x.gif');background-size:10px 20px}#wp-link .toggle-arrow{background:transparent url('../images/toggle-arrow-2x.png') top left no-repeat;background-size:19px 69px}}
\ No newline at end of file
--- a/web/wp-includes/css/jquery-ui-dialog.css	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/css/jquery-ui-dialog.css	Wed Dec 19 17:46:52 2012 -0800
@@ -1,1 +1,139 @@
-.ui-helper-hidden{display:none}.ui-helper-hidden-accessible{position:absolute;left:-99999999px}.ui-helper-reset{margin:0;padding:0;border:0;outline:0;line-height:1.3;text-decoration:none;font-size:100%;list-style:none}.ui-helper-clearfix:after{content:".";display:block;height:0;clear:both;visibility:hidden}.ui-helper-clearfix{display:inline-block}/*\*/* html .ui-helper-clearfix{height:1%}.ui-helper-clearfix{display:block}/**/.ui-helper-zfix{width:100%;height:100%;top:0;left:0;position:absolute;opacity:0;filter:Alpha(Opacity=0)}.ui-state-disabled{cursor:default!important}.ui-icon{display:block;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat}.ui-widget-overlay{position:absolute;top:0;left:0;width:100%;height:100%}.ui-resizable{position:relative}.ui-resizable-handle{position:absolute;font-size:.1px;z-index:99999;display:block}.ui-resizable-disabled .ui-resizable-handle,.ui-resizable-autohide .ui-resizable-handle{display:none}.ui-resizable-n{cursor:n-resize;height:7px;width:100%;top:-5px;left:0}.ui-resizable-s{cursor:s-resize;height:7px;width:100%;bottom:-5px;left:0}.ui-resizable-e{cursor:e-resize;width:7px;right:-5px;top:0;height:100%}.ui-resizable-w{cursor:w-resize;width:7px;left:-5px;top:0;height:100%}.ui-resizable-se{cursor:se-resize;width:12px;height:12px;right:1px;bottom:1px}.ui-resizable-sw{cursor:sw-resize;width:9px;height:9px;left:-5px;bottom:-5px}.ui-resizable-nw{cursor:nw-resize;width:9px;height:9px;left:-5px;top:-5px}.ui-resizable-ne{cursor:ne-resize;width:9px;height:9px;right:-5px;top:-5px}.wp-dialog{position:absolute;width:300px;overflow:hidden}.wp-dialog .ui-dialog-titlebar{position:relative}.wp-dialog .ui-dialog-titlebar-close span{display:block;margin:1px}.wp-dialog .ui-dialog-content{position:relative;border:0;padding:0;background:0;overflow:auto;zoom:1}.wp-dialog .ui-dialog-buttonpane{text-align:left;border-width:1px 0 0 0;background-image:none;margin:.5em 0 0 0;padding:.3em 1em .5em .4em}.wp-dialog .ui-dialog-buttonpane .ui-dialog-buttonset{float:right}.wp-dialog .ui-dialog-buttonpane button{margin:.5em .4em .5em 0;cursor:pointer}.wp-dialog .ui-resizable-se{width:14px;height:14px;right:3px;bottom:3px}.ui-draggable .ui-dialog-titlebar{cursor:move}.wp-dialog{border:1px solid #999;-moz-box-shadow:0 0 16px rgba(0,0,0,0.3);-webkit-box-shadow:0 0 16px rgba(0,0,0,0.3);box-shadow:0 0 16px rgba(0,0,0,0.3)}.wp-dialog .ui-dialog-title{display:block;text-align:center;padding:1px 0 2px}.wp-dialog .ui-dialog-titlebar{padding:0 1em;background-color:#444;font-weight:bold;font-size:11px;line-height:18px;color:#e5e5e5}.wp-dialog{background-color:#f5f5f5;-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-webkit-border-top-right-radius:4px;border-top-right-radius:4px}.wp-dialog .ui-dialog-titlebar{-webkit-border-top-left-radius:3px;border-top-left-radius:3px;-webkit-border-top-right-radius:3px;border-top-right-radius:3px}.wp-dialog .ui-dialog-titlebar-close{position:absolute;width:29px;height:16px;top:2px;right:6px;background:url('../js/tinymce/plugins/inlinepopups/skins/clearlooks2/img/buttons.gif') no-repeat -87px -16px;padding:0}.wp-dialog .ui-dialog-titlebar-close:hover,.wp-dialog .ui-dialog-titlebar-close:focus{background-position:-87px -32px}.ui-widget-overlay{background-color:#000;opacity:.6;filter:alpha(opacity=60)}
\ No newline at end of file
+/*
+ * jQuery UI CSS Framework @VERSION
+ *
+ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Theming/API
+ */
+
+/* Layout helpers
+----------------------------------*/
+.ui-helper-hidden { display: none; }
+.ui-helper-hidden-accessible { position: absolute; left: -99999999px; }
+.ui-helper-reset { margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; }
+.ui-helper-clearfix:after { content: "."; display: block; height: 0; clear: both; visibility: hidden; }
+.ui-helper-clearfix { display: inline-block; }
+/* required comment for clearfix to work in Opera \*/
+* html .ui-helper-clearfix { height:1%; }
+.ui-helper-clearfix { display:block; }
+/* end clearfix */
+.ui-helper-zfix { width: 100%; height: 100%; top: 0; left: 0; position: absolute; opacity: 0; filter:Alpha(Opacity=0); }
+
+
+/* Interaction Cues
+----------------------------------*/
+.ui-state-disabled { cursor: default !important; }
+
+
+/* Icons
+----------------------------------*/
+
+/* states and images */
+.ui-icon { display: block; text-indent: -99999px; overflow: hidden; background-repeat: no-repeat; }
+
+
+/* Misc visuals
+----------------------------------*/
+
+/* Overlays */
+.ui-widget-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }
+
+/*
+ * jQuery UI Resizable
+ *
+ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Resizable#theming
+ */
+.ui-resizable { position: relative;}
+.ui-resizable-handle { position: absolute;font-size: 0.1px;z-index: 99999; display: block;}
+.ui-resizable-disabled .ui-resizable-handle, .ui-resizable-autohide .ui-resizable-handle { display: none; }
+.ui-resizable-n { cursor: n-resize; height: 7px; width: 100%; top: -5px; left: 0; }
+.ui-resizable-s { cursor: s-resize; height: 7px; width: 100%; bottom: -5px; left: 0; }
+.ui-resizable-e { cursor: e-resize; width: 7px; right: -5px; top: 0; height: 100%; }
+.ui-resizable-w { cursor: w-resize; width: 7px; left: -5px; top: 0; height: 100%; }
+.ui-resizable-se { cursor: se-resize; width: 12px; height: 12px; right: 1px; bottom: 1px; }
+.ui-resizable-sw { cursor: sw-resize; width: 9px; height: 9px; left: -5px; bottom: -5px; }
+.ui-resizable-nw { cursor: nw-resize; width: 9px; height: 9px; left: -5px; top: -5px; }
+.ui-resizable-ne { cursor: ne-resize; width: 9px; height: 9px; right: -5px; top: -5px;}
+
+/*
+ * jQuery UI Dialog
+ *
+ * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
+ * Dual licensed under the MIT or GPL Version 2 licenses.
+ * http://jquery.org/license
+ *
+ * http://docs.jquery.com/UI/Dialog#theming
+ */
+.wp-dialog { position: absolute; width: 300px; overflow: hidden; }
+.wp-dialog .ui-dialog-titlebar { position: relative; }
+.wp-dialog .ui-dialog-titlebar-close span { display: block; margin: 1px; }
+.wp-dialog .ui-dialog-content { position: relative; border: 0; padding: 0; background: none; overflow: auto; zoom: 1; }
+.wp-dialog .ui-dialog-buttonpane { text-align: left; border-width: 1px 0 0 0; background-image: none; margin: .5em 0 0 0; padding: .3em 1em .5em .4em; }
+.wp-dialog .ui-dialog-buttonpane .ui-dialog-buttonset { float: right; }
+.wp-dialog .ui-dialog-buttonpane button { margin: .5em .4em .5em 0; cursor: pointer; }
+.wp-dialog .ui-resizable-se { width: 14px; height: 14px; right: 3px; bottom: 3px; }
+.ui-draggable .ui-dialog-titlebar { cursor: move; }
+
+/* WP jQuery Dialog Theme */
+.wp-dialog {
+	border: 1px solid #999;
+	-webkit-box-shadow: 0px 0px 16px rgba( 0,0,0,0.3 );
+	box-shadow: 0px 0px 16px rgba( 0,0,0,0.3 );
+}
+
+.wp-dialog .ui-dialog-title {
+	display: block;
+	text-align: center;
+	padding: 1px 0 2px;
+}
+
+.wp-dialog .ui-dialog-titlebar {
+	padding: 0 1em;
+	background-color: #444;
+	font-weight: bold;
+	font-size: 11px;
+	line-height: 18px;
+	color: #e5e5e5;
+}
+
+.wp-dialog {
+	background-color: #f5f5f5;
+	-webkit-border-top-left-radius: 4px;
+	border-top-left-radius: 4px;
+	-webkit-border-top-right-radius: 4px;
+	border-top-right-radius: 4px;
+}
+
+.wp-dialog .ui-dialog-titlebar {
+	-webkit-border-top-left-radius: 3px;
+	border-top-left-radius: 3px;
+	-webkit-border-top-right-radius: 3px;
+	border-top-right-radius: 3px;
+}
+
+.wp-dialog .ui-dialog-titlebar-close {
+	position: absolute;
+	width: 29px;
+	height: 16px;
+	top: 2px;
+	right: 6px;
+	background: url('../js/tinymce/plugins/inlinepopups/skins/clearlooks2/img/buttons.gif') no-repeat -87px -16px;
+	padding: 0;
+}
+
+.wp-dialog .ui-dialog-titlebar-close:hover,
+.wp-dialog .ui-dialog-titlebar-close:focus {
+	background-position: -87px -32px;
+}
+
+.ui-widget-overlay {
+	background-color: #000;
+	opacity: 0.6;
+	filter: alpha(opacity=60);
+}
--- a/web/wp-includes/css/jquery-ui-dialog.dev.css	Wed Dec 19 12:35:13 2012 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,140 +0,0 @@
-/*
- * jQuery UI CSS Framework @VERSION
- *
- * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Theming/API
- */
-
-/* Layout helpers
-----------------------------------*/
-.ui-helper-hidden { display: none; }
-.ui-helper-hidden-accessible { position: absolute; left: -99999999px; }
-.ui-helper-reset { margin: 0; padding: 0; border: 0; outline: 0; line-height: 1.3; text-decoration: none; font-size: 100%; list-style: none; }
-.ui-helper-clearfix:after { content: "."; display: block; height: 0; clear: both; visibility: hidden; }
-.ui-helper-clearfix { display: inline-block; }
-/* required comment for clearfix to work in Opera \*/
-* html .ui-helper-clearfix { height:1%; }
-.ui-helper-clearfix { display:block; }
-/* end clearfix */
-.ui-helper-zfix { width: 100%; height: 100%; top: 0; left: 0; position: absolute; opacity: 0; filter:Alpha(Opacity=0); }
-
-
-/* Interaction Cues
-----------------------------------*/
-.ui-state-disabled { cursor: default !important; }
-
-
-/* Icons
-----------------------------------*/
-
-/* states and images */
-.ui-icon { display: block; text-indent: -99999px; overflow: hidden; background-repeat: no-repeat; }
-
-
-/* Misc visuals
-----------------------------------*/
-
-/* Overlays */
-.ui-widget-overlay { position: absolute; top: 0; left: 0; width: 100%; height: 100%; }
-
-/*
- * jQuery UI Resizable
- *
- * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Resizable#theming
- */
-.ui-resizable { position: relative;}
-.ui-resizable-handle { position: absolute;font-size: 0.1px;z-index: 99999; display: block;}
-.ui-resizable-disabled .ui-resizable-handle, .ui-resizable-autohide .ui-resizable-handle { display: none; }
-.ui-resizable-n { cursor: n-resize; height: 7px; width: 100%; top: -5px; left: 0; }
-.ui-resizable-s { cursor: s-resize; height: 7px; width: 100%; bottom: -5px; left: 0; }
-.ui-resizable-e { cursor: e-resize; width: 7px; right: -5px; top: 0; height: 100%; }
-.ui-resizable-w { cursor: w-resize; width: 7px; left: -5px; top: 0; height: 100%; }
-.ui-resizable-se { cursor: se-resize; width: 12px; height: 12px; right: 1px; bottom: 1px; }
-.ui-resizable-sw { cursor: sw-resize; width: 9px; height: 9px; left: -5px; bottom: -5px; }
-.ui-resizable-nw { cursor: nw-resize; width: 9px; height: 9px; left: -5px; top: -5px; }
-.ui-resizable-ne { cursor: ne-resize; width: 9px; height: 9px; right: -5px; top: -5px;}
-
-/*
- * jQuery UI Dialog
- *
- * Copyright 2010, AUTHORS.txt (http://jqueryui.com/about)
- * Dual licensed under the MIT or GPL Version 2 licenses.
- * http://jquery.org/license
- *
- * http://docs.jquery.com/UI/Dialog#theming
- */
-.wp-dialog { position: absolute; width: 300px; overflow: hidden; }
-.wp-dialog .ui-dialog-titlebar { position: relative; }
-.wp-dialog .ui-dialog-titlebar-close span { display: block; margin: 1px; }
-.wp-dialog .ui-dialog-content { position: relative; border: 0; padding: 0; background: none; overflow: auto; zoom: 1; }
-.wp-dialog .ui-dialog-buttonpane { text-align: left; border-width: 1px 0 0 0; background-image: none; margin: .5em 0 0 0; padding: .3em 1em .5em .4em; }
-.wp-dialog .ui-dialog-buttonpane .ui-dialog-buttonset { float: right; }
-.wp-dialog .ui-dialog-buttonpane button { margin: .5em .4em .5em 0; cursor: pointer; }
-.wp-dialog .ui-resizable-se { width: 14px; height: 14px; right: 3px; bottom: 3px; }
-.ui-draggable .ui-dialog-titlebar { cursor: move; }
-
-/* WP jQuery Dialog Theme */
-.wp-dialog {
-	border: 1px solid #999;
-	-moz-box-shadow: 0px 0px 16px rgba( 0,0,0,0.3 );
-	-webkit-box-shadow: 0px 0px 16px rgba( 0,0,0,0.3 );
-	box-shadow: 0px 0px 16px rgba( 0,0,0,0.3 );
-}
-
-.wp-dialog .ui-dialog-title {
-	display: block;
-	text-align: center;
-	padding: 1px 0 2px;
-}
-
-.wp-dialog .ui-dialog-titlebar {
-	padding: 0 1em;
-	background-color: #444;
-	font-weight: bold;
-	font-size: 11px;
-	line-height: 18px;
-	color: #e5e5e5;
-}
-
-.wp-dialog {
-	background-color: #f5f5f5;
-	-webkit-border-top-left-radius: 4px;
-	border-top-left-radius: 4px;
-	-webkit-border-top-right-radius: 4px;
-	border-top-right-radius: 4px;
-}
-
-.wp-dialog .ui-dialog-titlebar {
-	-webkit-border-top-left-radius: 3px;
-	border-top-left-radius: 3px;
-	-webkit-border-top-right-radius: 3px;
-	border-top-right-radius: 3px;
-}
-
-.wp-dialog .ui-dialog-titlebar-close {
-	position: absolute;
-	width: 29px;
-	height: 16px;
-	top: 2px;
-	right: 6px;
-	background: url('../js/tinymce/plugins/inlinepopups/skins/clearlooks2/img/buttons.gif') no-repeat -87px -16px;
-	padding: 0;
-}
-
-.wp-dialog .ui-dialog-titlebar-close:hover,
-.wp-dialog .ui-dialog-titlebar-close:focus {
-	background-position: -87px -32px;
-}
-
-.ui-widget-overlay {
-	background-color: #000;
-	opacity: 0.6;
-	filter: alpha(opacity=60);
-}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-includes/css/jquery-ui-dialog.min.css	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,1 @@
+.ui-helper-hidden{display:none}.ui-helper-hidden-accessible{position:absolute;left:-99999999px}.ui-helper-reset{margin:0;padding:0;border:0;outline:0;line-height:1.3;text-decoration:none;font-size:100%;list-style:none}.ui-helper-clearfix:after{content:".";display:block;height:0;clear:both;visibility:hidden}.ui-helper-clearfix{display:inline-block}/*\*/* html .ui-helper-clearfix{height:1%}.ui-helper-clearfix{display:block}/**/.ui-helper-zfix{width:100%;height:100%;top:0;left:0;position:absolute;opacity:0;filter:Alpha(Opacity=0)}.ui-state-disabled{cursor:default!important}.ui-icon{display:block;text-indent:-99999px;overflow:hidden;background-repeat:no-repeat}.ui-widget-overlay{position:absolute;top:0;left:0;width:100%;height:100%}.ui-resizable{position:relative}.ui-resizable-handle{position:absolute;font-size:.1px;z-index:99999;display:block}.ui-resizable-disabled .ui-resizable-handle,.ui-resizable-autohide .ui-resizable-handle{display:none}.ui-resizable-n{cursor:n-resize;height:7px;width:100%;top:-5px;left:0}.ui-resizable-s{cursor:s-resize;height:7px;width:100%;bottom:-5px;left:0}.ui-resizable-e{cursor:e-resize;width:7px;right:-5px;top:0;height:100%}.ui-resizable-w{cursor:w-resize;width:7px;left:-5px;top:0;height:100%}.ui-resizable-se{cursor:se-resize;width:12px;height:12px;right:1px;bottom:1px}.ui-resizable-sw{cursor:sw-resize;width:9px;height:9px;left:-5px;bottom:-5px}.ui-resizable-nw{cursor:nw-resize;width:9px;height:9px;left:-5px;top:-5px}.ui-resizable-ne{cursor:ne-resize;width:9px;height:9px;right:-5px;top:-5px}.wp-dialog{position:absolute;width:300px;overflow:hidden}.wp-dialog .ui-dialog-titlebar{position:relative}.wp-dialog .ui-dialog-titlebar-close span{display:block;margin:1px}.wp-dialog .ui-dialog-content{position:relative;border:0;padding:0;background:0;overflow:auto;zoom:1}.wp-dialog .ui-dialog-buttonpane{text-align:left;border-width:1px 0 0 0;background-image:none;margin:.5em 0 0 0;padding:.3em 1em .5em .4em}.wp-dialog .ui-dialog-buttonpane .ui-dialog-buttonset{float:right}.wp-dialog .ui-dialog-buttonpane button{margin:.5em .4em .5em 0;cursor:pointer}.wp-dialog .ui-resizable-se{width:14px;height:14px;right:3px;bottom:3px}.ui-draggable .ui-dialog-titlebar{cursor:move}.wp-dialog{border:1px solid #999;-webkit-box-shadow:0 0 16px rgba(0,0,0,0.3);box-shadow:0 0 16px rgba(0,0,0,0.3)}.wp-dialog .ui-dialog-title{display:block;text-align:center;padding:1px 0 2px}.wp-dialog .ui-dialog-titlebar{padding:0 1em;background-color:#444;font-weight:bold;font-size:11px;line-height:18px;color:#e5e5e5}.wp-dialog{background-color:#f5f5f5;-webkit-border-top-left-radius:4px;border-top-left-radius:4px;-webkit-border-top-right-radius:4px;border-top-right-radius:4px}.wp-dialog .ui-dialog-titlebar{-webkit-border-top-left-radius:3px;border-top-left-radius:3px;-webkit-border-top-right-radius:3px;border-top-right-radius:3px}.wp-dialog .ui-dialog-titlebar-close{position:absolute;width:29px;height:16px;top:2px;right:6px;background:url('../js/tinymce/plugins/inlinepopups/skins/clearlooks2/img/buttons.gif') no-repeat -87px -16px;padding:0}.wp-dialog .ui-dialog-titlebar-close:hover,.wp-dialog .ui-dialog-titlebar-close:focus{background-position:-87px -32px}.ui-widget-overlay{background-color:#000;opacity:.6;filter:alpha(opacity=60)}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-includes/css/media-views-rtl.css	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,303 @@
+/**
+ * Modal
+ */
+.media-modal-close {
+	right: auto;
+	left: 7px;
+}
+
+/**
+ * Toolbar
+ */
+.media-toolbar-primary {
+	float: left;
+}
+
+.media-toolbar-secondary {
+	float: right;
+}
+
+.media-toolbar-primary > .media-button,
+.media-toolbar-primary > .media-button-group {
+	margin-left: 0;
+	margin-right: 10px;
+	float: right;
+}
+
+.media-toolbar-secondary > .media-button,
+.media-toolbar-secondary > .media-button-group {
+	margin-right: 0;
+	margin-left: 10px;
+	float: right;
+}
+
+/**
+ * Sidebar
+ */
+.media-sidebar {
+	right: auto;
+	left: 0;
+	border-left: 0;
+	border-right: 1px solid #dfdfdf;
+}
+
+.media-sidebar .setting {
+	float: right;
+}
+
+.media-sidebar .setting span {
+	margin-right: 0;
+	margin-left: 4%;
+}
+
+.media-sidebar .setting span,
+.compat-item label span {
+	float: right;
+	text-align: left;
+}
+
+.media-sidebar .setting input,
+.media-sidebar .setting textarea {
+	float: left;
+}
+
+.compat-item {
+	float: right;
+}
+
+.compat-item .label {
+	margin-right: 0;
+	margin-left: 4%;
+	float: right;
+	text-align: left;
+}
+
+.compat-item .field {
+	float: left;
+	padding-right: 0;
+	padding-left: 1px;
+}
+
+/**
+ * Menu
+ */
+.media-menu {
+	border-right: 0;
+	border-left: 1px solid #d9d9d9;
+	box-shadow: inset 6px 0 6px -6px rgba( 0, 0, 0, 0.2 )
+}
+
+/**
+ * Router
+ */
+.media-router > a {
+	float: right;
+	border-right: 0;
+	border-left: 1px solid #dfdfdf;
+}
+.media-router > a:last-child {
+	border-left: 0;
+}
+
+/**
+ * Frame
+ */
+.media-frame-menu {
+	left: auto;
+	right: 0;
+}
+
+.media-frame-title,
+.media-frame-router,
+.media-frame-content,
+.media-frame-toolbar {
+	left: 0;
+	right: 200px;
+}
+
+.media-frame.hide-menu .media-frame-title,
+.media-frame.hide-menu .media-frame-router,
+.media-frame.hide-menu .media-frame-toolbar,
+.media-frame.hide-menu .media-frame-content {
+	right: 0;
+}
+
+.media-frame.hide-menu .media-frame-menu {
+	left: auto;
+	right: -200px;
+}
+
+/**
+ * Attachment Browser Filters
+ */
+.media-frame select.attachment-filters {
+	margin-right: 0;
+	margin-left: 10px;
+}
+
+/**
+ * Search
+ */
+.media-toolbar-secondary .search {
+	margin-right: 0;
+	margin-left: 16px;
+}
+
+/**
+ * Attachments
+ */
+.attachments {
+	padding-right: 0;
+	padding-left: 16px;
+}
+
+/**
+ * Attachment
+ */
+.attachment {
+	float: right;
+}
+
+.attachment .thumbnail {
+	left: auto;
+	right: 0;
+}
+
+.attachment .close {
+	right: auto;
+	left: 5px;
+}
+
+.attachment .check {
+	right: auto;
+	left: -7px;
+}
+
+/**
+ * Attachments Browser
+ */
+.attachments-browser .media-toolbar {
+	right: 0;
+	left: 300px;
+}
+
+.attachments-browser .attachments,
+.attachments-browser .uploader-inline {
+	right: 0;
+	left: 300px;
+}
+
+
+/**
+ * Progress Bar
+ */
+.attachment-preview .media-progress-bar {
+	left: auto;
+	right: 15%;
+}
+
+.media-sidebar .media-uploader-status .upload-dismiss-errors {
+	right: auto;
+	left: 0;
+}
+
+.upload-errors .upload-error-label {
+	margin-right: 0;
+	margin-left: 8px;
+	float: right;
+	margin-top: -3px;
+}
+
+/**
+ * Selection
+ */
+.media-selection {
+	right: 0;
+	left: 350px;
+	padding: 0 16px 0 0;
+}
+
+.media-selection .selection-info {
+	margin-right: 0;
+	margin-left: 10px;
+}
+
+.media-selection .selection-info a {
+	float: right;
+	border-right: 0;
+	border-left: 1px solid #dfdfdf;
+	margin: 1px -8px 1px 8px;
+}
+
+.media-selection .selection-info a:last-child {
+	border-right: 1px;
+	border-left: 0;
+	margin-left: 0;
+	margin-right: -8px;
+}
+
+.media-selection:after {
+	right: auto;
+	left: 0;
+	background-image: -webkit-gradient(linear, left top, right top, from( rgba( 255, 255, 255, 1 ) ), to( rgba( 255, 255, 255, 0 ) ));
+	background-image: -webkit-linear-gradient(left, rgba( 255, 255, 255, 1 ) ,  rgba( 255, 255, 255, 0 ) );
+	background-image:    -moz-linear-gradient(left, rgba( 255, 255, 255, 1 ) ,  rgba( 255, 255, 255, 0 ) );
+	background-image:      -o-linear-gradient(left, rgba( 255, 255, 255, 1 ) ,  rgba( 255, 255, 255, 0 ) );
+	background-image:   linear-gradient(to right, rgba( 255, 255, 255, 1 ) ,  rgba( 255, 255, 255, 0 ) );
+}
+
+/**
+ * Attachment Details
+ */
+.attachment-info .thumbnail {
+	float: right;
+	margin-right: 0;
+	margin-left: 10px;
+}
+
+.attachment-info .details {
+	float: right;
+}
+
+/**
+ * Attachment Display Settings
+ */
+.attachment-display-settings {
+	float: right;
+}
+
+/**
+ * Embed from URL
+ */
+.embed-url span {
+	display: block;
+	padding: 4px 2px 6px 0;
+}
+
+.media-embed .thumbnail {
+	float: right;
+}
+
+.media-embed .setting {
+	float: right;
+}
+
+/**
+ * Responsive layout
+ */
+@media only screen and (max-width: 900px) {
+	.media-frame-title,
+	.media-frame-router,
+	.media-frame-content,
+	.media-frame-toolbar {
+		left: 0;
+		right: 140px;
+	}
+
+	.attachments-browser .attachments,
+	.attachments-browser .uploader-inline,
+	.attachments-browser .media-toolbar {
+		right: 0;
+		left: 180px;
+	}
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-includes/css/media-views-rtl.min.css	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,1 @@
+.media-modal-close{right:auto;left:7px}.media-toolbar-primary{float:left}.media-toolbar-secondary{float:right}.media-toolbar-primary>.media-button,.media-toolbar-primary>.media-button-group{margin-left:0;margin-right:10px;float:right}.media-toolbar-secondary>.media-button,.media-toolbar-secondary>.media-button-group{margin-right:0;margin-left:10px;float:right}.media-sidebar{right:auto;left:0;border-left:0;border-right:1px solid #dfdfdf}.media-sidebar .setting{float:right}.media-sidebar .setting span{margin-right:0;margin-left:4%}.media-sidebar .setting span,.compat-item label span{float:right;text-align:left}.media-sidebar .setting input,.media-sidebar .setting textarea{float:left}.compat-item{float:right}.compat-item .label{margin-right:0;margin-left:4%;float:right;text-align:left}.compat-item .field{float:left;padding-right:0;padding-left:1px}.media-menu{border-right:0;border-left:1px solid #d9d9d9;box-shadow:inset 6px 0 6px -6px rgba(0,0,0,0.2)}.media-router>a{float:right;border-right:0;border-left:1px solid #dfdfdf}.media-router>a:last-child{border-left:0}.media-frame-menu{left:auto;right:0}.media-frame-title,.media-frame-router,.media-frame-content,.media-frame-toolbar{left:0;right:200px}.media-frame.hide-menu .media-frame-title,.media-frame.hide-menu .media-frame-router,.media-frame.hide-menu .media-frame-toolbar,.media-frame.hide-menu .media-frame-content{right:0}.media-frame.hide-menu .media-frame-menu{left:auto;right:-200px}.media-frame select.attachment-filters{margin-right:0;margin-left:10px}.media-toolbar-secondary .search{margin-right:0;margin-left:16px}.attachments{padding-right:0;padding-left:16px}.attachment{float:right}.attachment .thumbnail{left:auto;right:0}.attachment .close{right:auto;left:5px}.attachment .check{right:auto;left:-7px}.attachments-browser .media-toolbar{right:0;left:300px}.attachments-browser .attachments,.attachments-browser .uploader-inline{right:0;left:300px}.attachment-preview .media-progress-bar{left:auto;right:15%}.media-sidebar .media-uploader-status .upload-dismiss-errors{right:auto;left:0}.upload-errors .upload-error-label{margin-right:0;margin-left:8px;float:right;margin-top:-3px}.media-selection{right:0;left:350px;padding:0 16px 0 0}.media-selection .selection-info{margin-right:0;margin-left:10px}.media-selection .selection-info a{float:right;border-right:0;border-left:1px solid #dfdfdf;margin:1px -8px 1px 8px}.media-selection .selection-info a:last-child{border-right:1px;border-left:0;margin-left:0;margin-right:-8px}.media-selection:after{right:auto;left:0;background-image:-webkit-gradient(linear,left top,right top,from(rgba(255,255,255,1)),to(rgba(255,255,255,0)));background-image:-webkit-linear-gradient(left,rgba(255,255,255,1),rgba(255,255,255,0));background-image:-moz-linear-gradient(left,rgba(255,255,255,1),rgba(255,255,255,0));background-image:-o-linear-gradient(left,rgba(255,255,255,1),rgba(255,255,255,0));background-image:linear-gradient(to right,rgba(255,255,255,1),rgba(255,255,255,0))}.attachment-info .thumbnail{float:right;margin-right:0;margin-left:10px}.attachment-info .details{float:right}.attachment-display-settings{float:right}.embed-url span{display:block;padding:4px 2px 6px 0}.media-embed .thumbnail{float:right}.media-embed .setting{float:right}@media only screen and (max-width:900px){.media-frame-title,.media-frame-router,.media-frame-content,.media-frame-toolbar{left:0;right:140px}.attachments-browser .attachments,.attachments-browser .uploader-inline,.attachments-browser .media-toolbar{right:0;left:180px}}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-includes/css/media-views.css	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,1673 @@
+/**
+ * Base Styles
+ */
+.media-modal,
+.media-frame {
+	font-family: sans-serif;
+	font-size: 12px;
+}
+
+.media-frame input,
+.media-frame textarea {
+	padding: 6px 8px;
+	line-height: 16px;
+}
+
+.media-frame select,
+.wp-admin .media-frame select {
+	line-height: 28px;
+	margin-top: 3px;
+}
+
+.media-frame a {
+	border-bottom: none;
+	color: #21759b;
+}
+
+.media-frame a:hover {
+	color: #d54e21;
+}
+
+.media-frame a.button {
+	color: #333;
+}
+
+.media-frame a.button:hover {
+	color: #222;
+}
+
+.media-frame a.button-primary,
+.media-frame a.button-primary:hover {
+	color: #fff;
+}
+
+.media-frame input[type="text"],
+.media-frame input[type="password"],
+.media-frame input[type="number"],
+.media-frame input[type="search"],
+.media-frame input[type="email"],
+.media-frame input[type="url"],
+.media-frame textarea,
+.media-frame select {
+	font-family: sans-serif;
+	font-size: 12px;
+	-moz-box-sizing: border-box;
+	-webkit-box-sizing: border-box;
+	-ms-box-sizing: border-box; /* ie8 only */
+	box-sizing: border-box;
+	-webkit-border-radius: 3px;
+	border-radius: 3px;
+	border-width: 1px;
+	border-style: solid;
+	border-color: #dfdfdf;
+}
+
+.media-frame select {
+	height: 24px;
+	padding: 2px;
+}
+
+.media-frame input:disabled,
+.media-frame textarea:disabled,
+.media-frame input[readonly],
+.media-frame textarea[readonly] {
+	background-color: #eee;
+}
+
+.media-frame input[type="search"] {
+	-webkit-appearance: textfield;
+}
+
+.media-frame :-moz-placeholder {
+   color: #a9a9a9;
+}
+
+/* Enable draggable on IE10 touch events until it's rolled into jQuery UI core */
+.ui-sortable,
+.ui-draggable {
+	-ms-touch-action: none;
+}
+
+/**
+ * Modal
+ */
+.media-modal {
+	position: fixed;
+	top: 30px;
+	left: 30px;
+	right: 30px;
+	bottom: 30px;
+	z-index: 160000;
+}
+
+.media-modal-backdrop {
+	position: fixed;
+	top: 0;
+	left: 0;
+	right: 0;
+	bottom: 0;
+	min-height: 360px;
+	background: #000;
+	opacity: 0.7;
+	z-index: 159900;
+}
+
+.media-modal-close {
+	position: absolute;
+	top: 7px;
+	right: 7px;
+	width: 30px;
+	height: 30px;
+	z-index: 1000;
+}
+.media-modal-close span {
+	display: block;
+	margin: 8px auto 0;
+	width: 15px;
+	height: 15px;
+	background-position: -100px 0;
+}
+
+.media-modal-close:active {
+	outline: 0;
+}
+
+.media-modal-content {
+	position: absolute;
+	top: 0;
+	left: 0;
+	right: 0;
+	bottom: 0;
+	overflow: auto;
+	min-height: 300px;
+	background: #fff;
+}
+
+.media-modal-icon {
+	background-image: url(../images/uploader-icons.png);
+	background-repeat: no-repeat;
+}
+
+/**
+ * Toolbar
+ */
+.media-toolbar {
+	position: absolute;
+	top: 0;
+	left: 0;
+	right: 0;
+	z-index: 100;
+	height: 60px;
+	padding: 0 16px;
+	border: 0 solid #dfdfdf;
+	overflow: hidden;
+}
+
+.media-toolbar-primary {
+	float: right;
+	height: 100%;
+}
+
+.media-toolbar-secondary {
+	float: left;
+	height: 100%;
+}
+
+.media-toolbar-primary > .media-button,
+.media-toolbar-primary > .media-button-group {
+	margin-left: 10px;
+	float: left;
+	margin-top: 15px;
+}
+
+.media-toolbar-secondary > .media-button,
+.media-toolbar-secondary > .media-button-group {
+	margin-right: 10px;
+	float: left;
+	margin-top: 15px;
+}
+
+/**
+ * Sidebar
+ */
+.media-sidebar {
+	position: absolute;
+	top: 0;
+	right: 0;
+	bottom: 0;
+	width: 267px;
+	padding: 0 16px 24px;
+	z-index: 75;
+	background: #f5f5f5;
+	border-left: 1px solid #dfdfdf;
+	overflow: auto;
+	-webkit-overflow-scrolling: touch;
+}
+
+.hide-toolbar .media-sidebar {
+	bottom: 0;
+}
+
+.media-sidebar .sidebar-title {
+	font-weight: 200;
+	font-size: 20px;
+	margin: 0;
+	padding: 12px 10px 10px;
+	line-height: 28px;
+}
+
+.media-sidebar .sidebar-content {
+	padding: 0 10px;
+	margin-bottom: 130px;
+}
+
+.media-sidebar .search {
+	display: block;
+	width: 100%;
+}
+
+.media-sidebar h3 {
+	position: relative;
+	font-weight: bold;
+	text-transform: uppercase;
+	font-size: 12px;
+	color: #777;
+	text-shadow: 0 1px 0 #fff;
+	margin: 24px 0 8px;
+}
+
+.media-sidebar .setting {
+	display: block;
+	float: left;
+	width: 100%;
+	margin: 1px 0;
+}
+
+.media-sidebar .setting label {
+	display: block;
+}
+
+.media-sidebar .setting .link-to-custom {
+	margin: 3px 0;
+}
+
+.media-sidebar .setting span {
+	min-width: 30%;
+	margin-right: 4%;
+	font-size: 12px;
+}
+
+.media-sidebar .setting select {
+	max-width: 65%;
+}
+
+.media-sidebar .setting input[type="checkbox"] {
+	width: auto;
+	float: none;
+	margin-top: 8px;
+	padding: 0;
+}
+
+.media-sidebar .setting span,
+.compat-item label span {
+	float: left;
+	min-height: 22px;
+	padding-top: 8px;
+	line-height: 16px;
+	text-align: right;
+	font-weight: normal;
+	color: #999;
+	text-shadow: 0 1px 0 #fff;
+}
+
+.media-sidebar .setting input,
+.media-sidebar .setting textarea {
+	width: 65%;
+	float: right;
+}
+
+.media-sidebar .setting textarea,
+.compat-item .field textarea {
+	height: 62px;
+	resize: vertical;
+}
+
+.media-sidebar select {
+	margin-top: 3px;
+}
+
+.compat-item {
+	float: left;
+	width: 100%;
+	overflow: hidden;
+}
+
+.compat-item table {
+	width: 100%;
+	table-layout: fixed;
+	border-spacing: 0;
+	border: 0;
+}
+
+.compat-item tr {
+	padding: 2px 0;
+	display: block;
+	overflow: hidden;
+}
+
+.compat-item .label,
+.compat-item .field {
+	display: block;
+	margin: 0;
+	padding: 0;
+}
+
+.compat-item .label {
+	min-width: 30%;
+	margin-right: 4%;
+	float: left;
+	text-align: right;
+}
+
+.compat-item .label span {
+	display: block;
+	width: 100%;
+}
+
+.compat-item .field {
+	float: right;
+	width: 65%;
+	padding-right: 1px;
+}
+
+.compat-item .field input {
+	width: 100%;
+	margin: 0;
+}
+
+
+/**
+ * Menu
+ */
+.media-menu {
+	position: absolute;
+	top: 0;
+	left: 0;
+	right: 0;
+	bottom: 0;
+	margin: 0;
+	padding: 16px 0;
+	border-right: 1px solid #d9d9d9;
+	box-shadow: inset -6px 0 6px -6px rgba( 0, 0, 0, 0.2 );
+	-webkit-user-select: none;
+	-moz-user-select: none;
+	-ms-user-select: none;
+	user-select: none;
+}
+
+.media-menu > a {
+	display: block;
+	position: relative;
+	padding: 4px 20px;
+	margin: 0;
+	line-height: 18px;
+	font-size: 14px;
+	color: #21759B;
+	text-shadow: 0 1px 0 #fff;
+	text-decoration: none;
+}
+
+.media-menu > a:hover {
+	color: #21759B;
+	background: rgba( 0, 0, 0, 0.04 );
+}
+
+.media-menu > a:active {
+	outline: none;
+}
+
+.media-menu .active,
+.media-menu .active:hover {
+	color: #333;
+	font-weight: bold;
+}
+
+.media-menu .separator {
+	height: 0;
+	margin: 12px 20px;
+	padding: 0;
+	border-top: 1px solid #dfdfdf;
+	border-bottom: 1px solid #fff;
+}
+
+/**
+ * Menu
+ */
+.media-router {
+	position: relative;
+	padding: 0 6px;
+	margin: 0;
+	clear: both;
+	-webkit-user-select: none;
+	-moz-user-select: none;
+	-ms-user-select: none;
+	user-select: none;
+}
+
+.media-router > a {
+	position: relative;
+	float: left;
+	padding: 2px 10px;
+	margin: 0;
+	height: 18px;
+	line-height: 18px;
+	font-size: 14px;
+	border-right: 1px solid #dfdfdf;
+	text-shadow: 0 1px 0 #fff;
+	text-decoration: none;
+}
+
+.media-router > a:last-child {
+	border-right: 0;
+}
+
+.media-router > a:active,
+.media-router > a:focus {
+	outline: none;
+}
+
+.media-router .active,
+.media-router .active:hover {
+	color: #333;
+}
+
+.media-router .active:after {
+	content: '';
+	display: block;
+	margin: -100px auto 0;
+	width: 7px;
+	height: 7px;
+	background: #fff;
+	box-shadow: 1px 1px 1px rgba( 0, 0, 0, 0.2 );
+	z-index: 300;
+
+	-webkit-transform: rotate( 45deg ) translate( 75px, 75px );
+	-moz-transform:    rotate( 45deg ) translate( 75px, 75px );
+	-ms-transform:     rotate( 45deg ) translate( 75px, 75px );
+	-o-transform:      rotate( 45deg ) translate( 75px, 75px );
+	transform:         rotate( 45deg ) translate( 75px, 75px );
+}
+
+/**
+ * Frame
+ */
+.media-frame {
+	overflow: hidden;
+	position: absolute;
+	top: 0;
+	left: 0;
+	right: 0;
+	bottom: 0;
+}
+
+.media-frame-menu {
+	position: absolute;
+	top: 0;
+	left: 0;
+	bottom: 0;
+	width: 199px;
+	z-index: 150;
+}
+
+.media-frame-title {
+	position: absolute;
+	top: 0;
+	left: 200px;
+	right: 0;
+	height: 45px;
+	z-index: 200;
+}
+
+.media-frame-router {
+	position: absolute;
+	top: 45px;
+	left: 200px;
+	right: 0;
+	height: 30px;
+	z-index: 200;
+	border-bottom: 1px solid #dfdfdf;
+	box-shadow: 0 4px 4px -4px rgba( 0, 0, 0, 0.1 );
+}
+
+.media-frame-content {
+	position: absolute;
+	top: 75px;
+	left: 200px;
+	right: 0;
+	bottom: 61px;
+	height: auto;
+	width: auto;
+	margin: 0;
+	overflow: auto;
+}
+
+.media-frame-toolbar {
+	position: absolute;
+	left: 200px;
+	right: 0;
+	bottom: 0;
+	height: 60px;
+	z-index: 100;
+	border: 0 solid #dfdfdf;
+	border-width: 1px 0 0 0;
+	box-shadow: 0 -4px 4px -4px rgba( 0, 0, 0, 0.1 );
+}
+
+.media-frame.hide-menu .media-frame-title,
+.media-frame.hide-menu .media-frame-router,
+.media-frame.hide-menu .media-frame-toolbar,
+.media-frame.hide-menu .media-frame-content {
+	left: 0;
+}
+
+.media-frame.hide-menu .media-frame-menu {
+	left: -200px;
+}
+
+.media-frame.hide-toolbar .media-frame-content {
+	bottom: 0;
+}
+
+.media-frame.hide-toolbar .media-frame-toolbar {
+	bottom: -61px;
+}
+
+.media-frame.hide-router .media-frame-content {
+	top: 45px;
+}
+
+.media-frame.hide-router .media-frame-router {
+	display: none;
+}
+
+.media-frame.hide-router .media-frame-title {
+	border-bottom: 1px solid #dfdfdf;
+	box-shadow: 0 4px 4px -4px rgba( 0, 0, 0, 0.1 );
+}
+
+.media-frame .media-toolbar .add-to-gallery {
+	display: none;
+}
+
+.media-frame-title h1 {
+	padding: 0 16px;
+	font-size: 22px;
+	font-weight: 200;
+	line-height: 45px;
+	margin: 0;
+}
+
+/**
+ * Iframes
+ */
+.media-frame .media-iframe {
+	overflow: hidden;
+}
+
+.media-frame .media-iframe,
+.media-frame .media-iframe iframe {
+	height: 100%;
+	width: 100%;
+	border: 0;
+}
+
+/**
+ * Attachment Browser Filters
+ */
+.media-frame select.attachment-filters {
+	margin-top: 11px;
+	margin-right: 10px;
+}
+
+/**
+ * Search
+ */
+.media-frame .search {
+	margin-top: 11px;
+	padding: 4px;
+	line-height: 18px;
+	font-size: 13px;
+	color: #464646;
+	font-family: sans-serif;
+	-webkit-appearance: none;
+}
+
+.media-toolbar-secondary .search {
+	margin-right: 16px;
+}
+
+/**
+ * Attachments
+ */
+.attachments {
+	margin: 0;
+	padding-right: 16px;
+	-webkit-overflow-scrolling: touch;
+}
+
+/**
+ * Attachment
+ */
+.attachment {
+	position: relative;
+	float: left;
+
+	padding: 0;
+	margin: 0 10px 20px;
+	color: #464646;
+	list-style: none;
+	text-align: center;
+
+	-webkit-user-select: none;
+	-moz-user-select:    none;
+	-ms-user-select:     none;
+	-o-user-select:      none;
+	user-select:         none;
+}
+
+.selected.attachment {
+	box-shadow:
+		0 0 0 1px #fff,
+		0 0 0 3px #ccc;
+}
+
+.details.attachment {
+	box-shadow:
+		0 0 0 1px #fff,
+		0 0 0 5px #1e8cbe;
+}
+
+.attachment-preview {
+	position: relative;
+	width: 199px;
+	height: 199px;
+	box-shadow:
+		inset 0 0 15px rgba( 0, 0, 0, 0.1 ),
+		inset 0 0 0 1px rgba( 0, 0, 0, 0.05 );
+	background: #eee;
+	cursor: pointer;
+}
+
+.attachment .icon {
+	margin: 0 auto;
+	overflow: hidden;
+	padding-top: 20%;
+}
+
+.attachment .thumbnail {
+	display: block;
+	position: absolute;
+	top: 0;
+	left: 0;
+	margin: 0 auto;
+	overflow: hidden;
+	max-width: 100%;
+	max-height: 100%;
+}
+
+.attachment-preview .thumbnail:after {
+	content: '';
+	display: block;
+	position: absolute;
+	top: 0;
+	left: 0;
+	right: 0;
+	bottom: 0;
+	box-shadow: inset 0 0 0 1px rgba( 0, 0, 0, 0.1 );
+	overflow: hidden;
+}
+
+.attachment .thumbnail img {
+	top: 0;
+	left: 0;
+}
+
+.attachment .thumbnail .centered {
+	position: absolute;
+	top: 0;
+	left: 0;
+	width: 100%;
+	height: 100%;
+	-webkit-transform: translate( 50%, 50% );
+	-moz-transform:    translate( 50%, 50% );
+	-ms-transform:     translate( 50%, 50% );
+	-o-transform:      translate( 50%, 50% );
+	transform:         translate( 50%, 50% );
+}
+
+.attachment .thumbnail .centered img {
+	-webkit-transform: translate( -50%, -50% );
+	-moz-transform:    translate( -50%, -50% );
+	-ms-transform:     translate( -50%, -50% );
+	-o-transform:      translate( -50%, -50% );
+	transform:         translate( -50%, -50% );
+}
+
+.attachment .filename {
+	position: absolute;
+	left: 0;
+	right: 0;
+	bottom: 0;
+	overflow: hidden;
+	max-height: 100%;
+
+	word-wrap: break-word;
+	text-align: center;
+	font-weight: bold;
+	background: rgba( 255, 255, 255, 0.8 );
+	box-shadow: inset 0 0 0 1px rgba( 0, 0, 0, 0.15 );
+}
+
+.attachment .filename div {
+	padding: 5px 10px;
+}
+
+.attachment-preview .thumbnail {
+	width: 199px;
+	height: 199px;
+}
+
+.attachment .thumbnail img {
+	position: absolute;
+}
+
+.attachment .close {
+	display: none;
+	position: absolute;
+	top: 5px;
+	right: 5px;
+	height: 22px;
+	width: 22px;
+	padding: 0;
+	font-size: 20px;
+	line-height: 20px;
+	text-align: center;
+	text-decoration: none;
+	color: #464646;
+	background-color: #fff;
+	background-position: -96px 4px;
+	border-width: 0;
+	border-radius: 3px;
+	box-shadow: 0 0 0 1px rgba( 0, 0, 0, 0.3 );
+}
+
+.attachment .close:hover {
+	box-shadow: 0 0 0 1px rgba( 0, 0, 0, 0.6 );
+}
+
+.attachment:hover .close {
+	display: block;
+}
+
+.attachment .check {
+	display: none;
+	height: 24px;
+	width: 24px;
+	position: absolute;
+	top: -7px;
+	right: -7px;
+	outline: none;
+
+	border: 1px solid #fff;
+	border-radius: 3px;
+	box-shadow: 0 0 0 1px rgba( 0, 0, 0, 0.4 );
+
+	background: #f1f1f1;
+	background-image: -webkit-gradient(linear, left top, left bottom, from(#f1f1f1), to(#e1e1e1));
+	background-image: -webkit-linear-gradient(top, #f1f1f1, #e1e1e1);
+	background-image:    -moz-linear-gradient(top, #f1f1f1, #e1e1e1);
+	background-image:      -o-linear-gradient(top, #f1f1f1, #e1e1e1);
+	background-image:   linear-gradient(to bottom, #f1f1f1, #e1e1e1);
+}
+
+.attachment .check div {
+	background-position: -1px 0;
+	height: 15px;
+	width: 15px;
+	margin: 5px;
+}
+
+.attachment .check:hover div {
+	background-position: -40px 0;
+}
+
+.attachment.selected .check {
+	display: block;
+}
+
+.attachment.details .check {
+	box-shadow: 0 0 0 1px #1e8cbe;
+
+	background: #1e8cbe;
+	background-image: -webkit-gradient(linear, left top, left bottom, from(#1e8cbe), to(#0074a2));
+	background-image: -webkit-linear-gradient(top, #1e8cbe, #0074a2);
+	background-image:    -moz-linear-gradient(top, #1e8cbe, #0074a2);
+	background-image:      -o-linear-gradient(top, #1e8cbe, #0074a2);
+	background-image:   linear-gradient(to bottom, #1e8cbe, #0074a2);
+}
+
+.attachment.details .check div {
+	background-position: -21px 0;
+}
+
+.attachment.details .check:hover div {
+	background-position: -60px 0;
+}
+
+.media-frame .attachment .describe {
+	position: relative;
+	display: block;
+	width: 100%;
+	margin: -1px 0 0;
+	padding: 8px;
+	font-size: 12px;
+	border-radius: 0;
+}
+
+/**
+ * Attachments Browser
+ */
+.media-frame .attachments-browser {
+	position: relative;
+	width: 100%;
+	height: 100%;
+	overflow: hidden;
+}
+
+.attachments-browser .media-toolbar {
+	right: 300px;
+	height: 50px;
+}
+
+.attachments-browser .media-toolbar-primary > .media-button,
+.attachments-browser .media-toolbar-primary > .media-button-group,
+.attachments-browser .media-toolbar-secondary > .media-button,
+.attachments-browser .media-toolbar-secondary > .media-button-group {
+	margin-top: 10px;
+}
+
+.attachments-browser .attachments,
+.attachments-browser .uploader-inline {
+	position: absolute;
+	top: 50px;
+	left: 0;
+	right: 300px;
+	bottom: 0;
+	overflow: auto;
+}
+
+.attachments-browser .instructions {
+	display: inline-block;
+	margin-top: 16px;
+	line-height: 18px;
+	font-size: 13px;
+	color: #999;
+}
+
+/**
+ * Progress Bar
+ */
+.media-progress-bar {
+	position: relative;
+	height: 10px;
+	width: 70%;
+	margin: 10px auto;
+	border-radius: 10px;
+	background: #dfdfdf;
+	background: rgba( 0, 0, 0, 0.1 );
+}
+
+.media-progress-bar div {
+	height: 10px;
+	min-width: 20px;
+	width: 0;
+	background: #aaa;
+	background: rgba( 0, 0, 0, 0.2 );
+	border-radius: 10px;
+	-webkit-transition: width 300ms;
+	-moz-transition:    width 300ms;
+	-ms-transition:     width 300ms;
+	-o-transition:      width 300ms;
+	transition:         width 300ms;
+}
+
+.media-uploader-status .media-progress-bar {
+	display: none;
+	width: 100%;
+}
+
+.uploading.media-uploader-status .media-progress-bar {
+	display: block;
+}
+
+.attachment-preview .media-progress-bar {
+	position: absolute;
+	top: 50%;
+	left: 15%;
+	width: 70%;
+	margin: -5px 0 0 0;
+}
+
+.media-uploader-status {
+	position: relative;
+	margin: 0 auto;
+	padding-bottom: 10px;
+	max-width: 400px;
+}
+
+.media-sidebar .media-uploader-status {
+	border-bottom: 1px solid #dfdfdf;
+	box-shadow: 0 1px 0 #fff;
+}
+
+.uploader-inline .media-uploader-status h3 {
+	display: none;
+}
+
+.media-uploader-status .upload-details {
+	display: none;
+	font-size: 12px;
+	color: #666;
+	text-shadow: 0 1px 0 #fff;
+}
+
+.uploading.media-uploader-status .upload-details {
+	display: block;
+}
+
+.media-uploader-status .upload-detail-separator {
+	padding: 0 4px;
+}
+
+.media-uploader-status .upload-count {
+	color: #464646;
+}
+
+.media-uploader-status .upload-dismiss-errors,
+.media-uploader-status .upload-errors {
+	display: none;
+}
+
+.errors.media-uploader-status .upload-dismiss-errors,
+.errors.media-uploader-status .upload-errors {
+	display: block;
+}
+
+.media-uploader-status .upload-dismiss-errors {
+	text-decoration: none;
+}
+
+.media-sidebar .media-uploader-status .upload-dismiss-errors {
+	position: absolute;
+	top: 0;
+	right: 0;
+}
+
+.upload-errors .upload-error {
+	margin: 8px auto 0 auto;
+	padding: 8px;
+	border: 1px #c00 solid;
+	background: #ffebe8;
+	border-radius: 3px;
+}
+
+.upload-errors .upload-error-label {
+	padding: 2px 4px;
+	margin-right: 8px;
+	font-weight: bold;
+	color: #fff;
+	background: #e00;
+	background-image: -webkit-gradient(linear, left top, left bottom, from(#e00), to(#a00));
+	background-image: -webkit-linear-gradient(top, #e00, #a00);
+	background-image:    -moz-linear-gradient(top, #e00, #a00);
+	background-image:      -o-linear-gradient(top, #e00, #a00);
+	background-image:   linear-gradient(to bottom, #e00, #a00);
+	border-radius: 3px;
+}
+
+.upload-errors .upload-error-message {
+	display: block;
+	padding-top: 8px;
+	color: #b44;
+	word-wrap: break-word;
+}
+
+.uploader-window {
+	position: fixed;
+	top: 0;
+	left: 0;
+	right: 0;
+	bottom: 0;
+	background: rgba( 0, 86, 132, 0.9 );
+
+	z-index: 250000;
+	display: none;
+	text-align: center;
+	opacity: 0;
+
+	-webkit-transition: opacity 250ms;
+	-moz-transition:    opacity 250ms;
+	-ms-transition:     opacity 250ms;
+	-o-transition:      opacity 250ms;
+	transition:         opacity 250ms;
+}
+
+.uploader-window-content {
+	position: absolute;
+	top: 10px;
+	left: 10px;
+	right: 10px;
+	bottom: 10px;
+	border: 1px dashed #fff;
+}
+
+.uploader-window h3 {
+	position: absolute;
+	top: 50%;
+	left: 0;
+	right: 0;
+	-webkit-transform: translateY( -50% );
+	-moz-transform:    translateY( -50% );
+	-ms-transform:     translateY( -50% );
+	-o-transform:      translateY( -50% );
+	transform:         translateY( -50% );
+
+	font-size: 20px;
+	font-weight: 200;
+	color: #fff;
+	padding: 0;
+}
+
+.uploader-window .media-progress-bar {
+	margin-top: 20px;
+	max-width: 300px;
+	background: transparent;
+	border-color: #fff;
+	display: none;
+}
+
+.uploader-window .media-progress-bar div {
+	background: #fff;
+}
+
+.uploading .uploader-window .media-progress-bar {
+	display: block;
+}
+
+.media-frame .uploader-inline {
+	margin: 20px;
+	padding: 20px;
+	text-align: center;
+}
+
+.uploader-inline-content {
+	position: absolute;
+	top: 30%;
+	left: 0;
+	right: 0;
+}
+
+.uploader-inline-content .upload-ui {
+	margin: 4em 0;
+}
+
+.uploader-inline-content .post-upload-ui {
+	margin-bottom: 2em;
+}
+
+.uploader-inline .has-upload-message .upload-ui {
+	margin: 0 0 4em;
+}
+
+.uploader-inline h3 {
+	font-size: 20px;
+	line-height: 28px;
+	font-weight: 200;
+	margin-bottom: 1.6em;
+}
+
+.uploader-inline .has-upload-message .upload-instructions {
+	font-size: 14px;
+	color: #464646;
+	font-weight: normal;
+}
+
+.uploader-inline .drop-instructions {
+	display: none;
+}
+
+.supports-drag-drop .uploader-inline .drop-instructions {
+	display: block;
+}
+
+.uploader-inline p {
+	font-size: 12px;
+}
+
+.uploader-inline .media-progress-bar {
+	display: none;
+}
+
+.uploading.uploader-inline .media-progress-bar {
+	display: block;
+}
+
+.uploader-inline .browser {
+	display: inline-block !important;
+}
+
+/**
+ * Selection
+ */
+.media-selection {
+	position: absolute;
+	top: 0;
+	left: 0;
+	right: 350px;
+	height: 60px;
+	padding: 0 0 0 16px;
+	overflow: hidden;
+	white-space: nowrap;
+}
+
+.media-selection .selection-info {
+	display: inline-block;
+	font-size: 12px;
+	height: 60px;
+	margin-right: 10px;
+	vertical-align: top;
+}
+
+.media-selection.empty,
+.media-selection.editing {
+	display: none;
+}
+
+.media-selection.one .edit-selection {
+	display: none;
+}
+
+.media-selection .count {
+	display: block;
+	padding-top: 12px;
+	font-size: 14px;
+	line-height: 20px;
+	font-weight: bold;
+}
+
+.media-selection .selection-info a {
+	display: block;
+	float: left;
+	padding: 1px 8px;
+	margin: 1px 8px 1px -8px;
+	line-height: 16px;
+	text-decoration: none;
+	border-right: 1px solid #dfdfdf;
+	color: #21759B;
+}
+
+.media-selection .selection-info a:hover {
+	background: #21759B;
+	color: #fff;
+	border-color: transparent;
+}
+
+.media-selection .selection-info a:last-child {
+	border-right: 0;
+	margin-right: 0;
+}
+
+.media-selection .selection-info .clear-selection {
+	color: red;
+}
+
+.media-selection .selection-info .clear-selection:hover {
+	background: red;
+}
+
+.media-selection .selection-view {
+	display: inline-block;
+	vertical-align: top;
+}
+
+.media-selection .attachments {
+	display: inline-block;
+	height: 48px;
+	margin-top: 5px;
+	overflow: hidden;
+	vertical-align: top;
+}
+
+.media-selection .attachment .icon {
+	width: 50%;
+}
+
+.attachment.selection.selected {
+	box-shadow: none;
+}
+
+.attachment.selection.details {
+	box-shadow:
+		0 0 0 1px #fff,
+		0 0 0 4px #1e8cbe;
+}
+
+.media-selection .attachment.selection.details {
+	box-shadow:
+		0 0 0 1px #fff,
+		0 0 0 3px #1e8cbe;
+}
+
+.media-selection:after {
+	content: '';
+	display: block;
+	position: absolute;
+	top: 0;
+	right: 0;
+	bottom: 0;
+	width: 25px;
+	background-image: -webkit-gradient(linear, right top, left top, from( rgba( 255, 255, 255, 1 ) ), to( rgba( 255, 255, 255, 0 ) ));
+	background-image: -webkit-linear-gradient(right, rgba( 255, 255, 255, 1 ) ,  rgba( 255, 255, 255, 0 ) );
+	background-image:    -moz-linear-gradient(right, rgba( 255, 255, 255, 1 ) ,  rgba( 255, 255, 255, 0 ) );
+	background-image:      -o-linear-gradient(right, rgba( 255, 255, 255, 1 ) ,  rgba( 255, 255, 255, 0 ) );
+	background-image:   linear-gradient(to left, rgba( 255, 255, 255, 1 ) ,  rgba( 255, 255, 255, 0 ) );
+}
+
+.media-selection .attachment .filename {
+	display: none;
+}
+
+/**
+ * Spinner
+ */
+
+.media-frame .spinner {
+	background: url(../images/wpspin.gif) no-repeat;
+	background-size: 16px 16px;
+	display: none;
+	opacity: 0.7;
+	filter: alpha(opacity=70);
+	width: 16px;
+	height: 16px;
+	margin: 0;
+}
+
+.media-sidebar .settings-save-status {
+	background: #f5f5f5;
+	float: right;
+	text-transform: none;
+	z-index: 10;
+}
+
+.media-sidebar .settings-save-status .spinner {
+	margin: 0 5px 0;
+}
+
+.media-sidebar .settings-save-status .saved {
+	float: right;
+	display: none;
+}
+
+.media-sidebar .save-waiting .settings-save-status .spinner,
+.media-sidebar .save-complete .settings-save-status .saved {
+	display: block;
+}
+
+/**
+ * Attachment Details
+ */
+.attachment-details {
+	position: relative;
+	overflow: auto;
+}
+
+.attachment-info {
+	overflow: hidden;
+	min-height: 60px;
+	margin-bottom: 16px;
+	line-height: 18px;
+	color: #999;
+	border-bottom: 1px solid #e5e5e5;
+	box-shadow: 0 1px 0 #fff;
+	padding-bottom: 11px;
+}
+
+.attachment-info .filename {
+	font-weight: bold;
+	color: #464646;
+	word-wrap: break-word;
+}
+
+.attachment-info .thumbnail {
+	position: relative;
+	float: left;
+	max-width: 120px;
+	max-height: 120px;
+	margin-top: 5px;
+	margin-right: 10px;
+	margin-bottom: 5px;
+}
+
+.uploading .attachment-info .thumbnail {
+	width: 120px;
+	height: 80px;
+	box-shadow: inset 0 0 15px rgba( 0, 0, 0, 0.1 );
+}
+
+.uploading .attachment-info .media-progress-bar {
+	margin-top: 35px;
+}
+
+.attachment-info .thumbnail:after {
+	content: '';
+	display: block;
+	position: absolute;
+	top: 0;
+	left: 0;
+	right: 0;
+	bottom: 0;
+	box-shadow: inset 0 0 0 1px rgba( 0, 0, 0, 0.15 );
+	overflow: hidden;
+}
+
+.attachment-info .thumbnail img {
+	display: block;
+	max-width: 120px;
+	max-height: 120px;
+	margin: 0 auto;
+}
+
+.attachment-info .details {
+	float: left;
+	font-size: 12px;
+	max-width: 100%;
+}
+
+.attachment-info .edit-attachment,
+.attachment-info .refresh-attachment,
+.attachment-info .delete-attachment {
+	display: block;
+	text-decoration: none;
+	white-space: nowrap;
+}
+
+.attachment-info .refresh-attachment,
+.attachment-details.needs-refresh .attachment-info .edit-attachment {
+	display: none;
+}
+
+.attachment-details.needs-refresh .attachment-info .refresh-attachment,
+.attachment-info .edit-attachment {
+	display: block;
+}
+
+.attachment-info .delete-attachment {
+	color: #bc0b0b;
+}
+
+.attachment-info .delete-attachment:hover {
+	color: red;
+}
+
+/**
+ * Attachment Display Settings
+ */
+.attachment-display-settings {
+	width: 100%;
+	float: left;
+	overflow: hidden;
+}
+
+.attachment-display-settings h4 {
+	margin: 1.4em 0 0.4em;
+}
+
+.gallery-settings {
+	overflow: hidden;
+}
+
+/**
+ * Embed from URL
+ */
+.embed-url {
+	display: block;
+	position: relative;
+	padding: 0 16px 7px;
+	margin: 0;
+	z-index: 250;
+	background: #fff;
+	border-bottom: 1px solid #dfdfdf;
+	box-shadow: 0 4px 4px -4px rgba( 0, 0, 0, 0.1 );
+	font-size: 18px;
+	font-weight: 200;
+}
+
+.media-frame .embed-url input {
+	font-size: 18px;
+	padding: 12px 14px;
+	width: 100%;
+	min-width: 200px;
+	box-shadow: inset 2px 2px 4px -2px rgba( 0, 0, 0, 0.1 );
+}
+
+.media-frame .embed-url .spinner {
+	position: absolute;
+	top: 16px;
+	right: 26px;
+}
+
+.media-frame .embed-loading .embed-url .spinner {
+	display: block;
+}
+
+.embed-link-settings,
+.embed-image-settings {
+	position: absolute;
+	background: #f5f5f5;
+	top: 57px;
+	left: 0;
+	right: 0;
+	bottom: 0;
+	padding: 16px 16px 32px;
+	overflow: auto;
+}
+
+.media-embed .thumbnail {
+	max-width: 100%;
+	max-height: 200px;
+	position: relative;
+	float: left;
+}
+
+.media-embed .thumbnail img {
+	max-height: 200px;
+	display: block;
+}
+
+.media-embed .thumbnail:after {
+	content: '';
+	display: block;
+	position: absolute;
+	top: 0;
+	left: 0;
+	right: 0;
+	bottom: 0;
+	box-shadow: inset 0 0 0 1px rgba( 0, 0, 0, 0.1 );
+	overflow: hidden;
+}
+
+.media-embed .setting {
+	width: 100%;
+	margin-top: 10px;
+	float: left;
+	display: block;
+	clear: both;
+}
+
+.media-embed .setting span {
+	display: block;
+	width: 200px;
+	font-size: 13px;
+	line-height: 24px;
+	color: #999;
+	text-shadow: 0 1px 0 #fff;
+}
+
+.media-embed .setting .button-group {
+	margin: 2px 0;
+}
+
+.media-embed .setting input,
+.media-embed .setting textarea {
+	display: block;
+	width: 100%;
+	max-width: 400px;
+	margin: 1px 0;
+}
+
+/**
+ * IE7 Fixes
+ */
+.ie7 .media-frame .attachments-browser {
+	position: static;
+}
+
+.ie7 .media-frame .embed-url input {
+	margin-top: 4px;
+	width: 90%;
+}
+
+.ie7 .compat-item {
+	width: 99%;
+}
+
+.ie7 .attachment-display-settings {
+	width: auto;
+}
+
+.ie7 .attachment-preview,
+.ie7 .attachment-preview .thumbnail {
+	width: 120px;
+	height: 120px;
+}
+
+.ie7 .media-frame .attachment .describe {
+	width: 102px;
+}
+
+.ie7 .media-sidebar .setting select {
+	max-width: 55%;
+}
+
+.ie7 .media-sidebar .setting input,
+.ie7 .media-sidebar .setting textarea {
+	width: 55%;
+}
+
+.ie7 .media-sidebar .setting .link-to-custom {
+	float: left;
+}
+
+@media only screen and (max-width: 960px) {
+	.media-frame-content .media-toolbar-primary .search,
+	.media-frame-content .media-toolbar-secondary .attachment-filters {
+		max-width: 120px;
+	}
+}
+
+/**
+ * Responsive layout
+ */
+@media only screen and (max-width: 900px) {
+	.media-frame-menu {
+		width: 139px;
+	}
+
+	.media-menu > a {
+		padding: 4px 10px;
+	}
+
+	.media-frame-title,
+	.media-frame-router,
+	.media-frame-content,
+	.media-frame-toolbar {
+		left: 140px;
+	}
+
+	.media-sidebar {
+		width: 159px;
+		padding: 0 10px 24px;
+	}
+
+	.attachments-browser .attachments,
+	.attachments-browser .uploader-inline,
+	.attachments-browser .media-toolbar {
+		right: 180px;
+	}
+
+	.media-sidebar .setting input,
+	.media-sidebar .setting textarea,
+	.media-sidebar .setting span,
+	.compat-item label span {
+		float: none;
+	}
+
+	.media-sidebar .setting span,
+	.compat-item label span {
+		text-align: inherit;
+		display: block;
+		min-height: 16px;
+		margin: 0;
+		padding: 8px 2px 0;
+	}
+
+	.media-sidebar .setting input,
+	.media-sidebar .setting textarea,
+	.media-sidebar .setting select {
+		width: 98%;
+		max-width: none;
+	}
+
+	.media-sidebar .setting select.columns {
+		width: auto;
+	}
+
+	.media-frame input,
+	.media-frame textarea,
+	.media-frame .search {
+		padding: 3px 6px;
+	}
+
+	.media-frame-content .attachment .icon {
+		top: 40%;
+	}
+
+	.media-selection {
+		min-width: 120px;
+	}
+
+	.media-selection:after {
+		background: none;
+	}
+
+	.media-selection .attachments {
+		display: none;
+	}
+
+	.media-menu .separator {
+		margin: 12px 10px;
+	}
+}
+
+@media only screen and (max-width: 800px) {
+	.media-frame-content .media-toolbar .instructions {
+		display: none;
+	}
+}
+
+@media only screen and (max-width: 680px) {
+	.media-frame-content .media-toolbar .search,
+	.media-frame-content .media-toolbar .attachment-filters {
+		max-width: 85px;
+	}
+}
+
+/* Use the same min-width as in the admin */
+@media only screen and (max-width: 600px) {
+	.media-modal {
+		width: 540px;
+		position: absolute;
+	}
+
+	.media-modal-backdrop {
+		width: 600px;
+		position: absolute;
+	}
+}
+
+/**
+ * HiDPI Displays
+ */
+@media print,
+  (-o-min-device-pixel-ratio: 5/4),
+  (-webkit-min-device-pixel-ratio: 1.25),
+  (min-resolution: 120dpi) {
+  	.media-modal-icon {
+  		background-image: url(../images/uploader-icons-2x.png);
+  		background-size: 134px 15px;
+  	}
+
+  	.media-frame .spinner {
+  		background-image: url(../images/wpspin-2x.gif);
+  	}
+}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-includes/css/media-views.min.css	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,1 @@
+.media-modal,.media-frame{font-family:sans-serif;font-size:12px}.media-frame input,.media-frame textarea{padding:6px 8px;line-height:16px}.media-frame select,.wp-admin .media-frame select{line-height:28px;margin-top:3px}.media-frame a{border-bottom:0;color:#21759b}.media-frame a:hover{color:#d54e21}.media-frame a.button{color:#333}.media-frame a.button:hover{color:#222}.media-frame a.button-primary,.media-frame a.button-primary:hover{color:#fff}.media-frame input[type="text"],.media-frame input[type="password"],.media-frame input[type="number"],.media-frame input[type="search"],.media-frame input[type="email"],.media-frame input[type="url"],.media-frame textarea,.media-frame select{font-family:sans-serif;font-size:12px;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;-ms-box-sizing:border-box;box-sizing:border-box;-webkit-border-radius:3px;border-radius:3px;border-width:1px;border-style:solid;border-color:#dfdfdf}.media-frame select{height:24px;padding:2px}.media-frame input:disabled,.media-frame textarea:disabled,.media-frame input[readonly],.media-frame textarea[readonly]{background-color:#eee}.media-frame input[type="search"]{-webkit-appearance:textfield}.media-frame :-moz-placeholder{color:#a9a9a9}.ui-sortable,.ui-draggable{-ms-touch-action:none}.media-modal{position:fixed;top:30px;left:30px;right:30px;bottom:30px;z-index:160000}.media-modal-backdrop{position:fixed;top:0;left:0;right:0;bottom:0;min-height:360px;background:#000;opacity:.7;z-index:159900}.media-modal-close{position:absolute;top:7px;right:7px;width:30px;height:30px;z-index:1000}.media-modal-close span{display:block;margin:8px auto 0;width:15px;height:15px;background-position:-100px 0}.media-modal-close:active{outline:0}.media-modal-content{position:absolute;top:0;left:0;right:0;bottom:0;overflow:auto;min-height:300px;background:#fff}.media-modal-icon{background-image:url(../images/uploader-icons.png);background-repeat:no-repeat}.media-toolbar{position:absolute;top:0;left:0;right:0;z-index:100;height:60px;padding:0 16px;border:0 solid #dfdfdf;overflow:hidden}.media-toolbar-primary{float:right;height:100%}.media-toolbar-secondary{float:left;height:100%}.media-toolbar-primary>.media-button,.media-toolbar-primary>.media-button-group{margin-left:10px;float:left;margin-top:15px}.media-toolbar-secondary>.media-button,.media-toolbar-secondary>.media-button-group{margin-right:10px;float:left;margin-top:15px}.media-sidebar{position:absolute;top:0;right:0;bottom:0;width:267px;padding:0 16px 24px;z-index:75;background:#f5f5f5;border-left:1px solid #dfdfdf;overflow:auto;-webkit-overflow-scrolling:touch}.hide-toolbar .media-sidebar{bottom:0}.media-sidebar .sidebar-title{font-weight:200;font-size:20px;margin:0;padding:12px 10px 10px;line-height:28px}.media-sidebar .sidebar-content{padding:0 10px;margin-bottom:130px}.media-sidebar .search{display:block;width:100%}.media-sidebar h3{position:relative;font-weight:bold;text-transform:uppercase;font-size:12px;color:#777;text-shadow:0 1px 0 #fff;margin:24px 0 8px}.media-sidebar .setting{display:block;float:left;width:100%;margin:1px 0}.media-sidebar .setting label{display:block}.media-sidebar .setting .link-to-custom{margin:3px 0}.media-sidebar .setting span{min-width:30%;margin-right:4%;font-size:12px}.media-sidebar .setting select{max-width:65%}.media-sidebar .setting input[type="checkbox"]{width:auto;float:none;margin-top:8px;padding:0}.media-sidebar .setting span,.compat-item label span{float:left;min-height:22px;padding-top:8px;line-height:16px;text-align:right;font-weight:normal;color:#999;text-shadow:0 1px 0 #fff}.media-sidebar .setting input,.media-sidebar .setting textarea{width:65%;float:right}.media-sidebar .setting textarea,.compat-item .field textarea{height:62px;resize:vertical}.media-sidebar select{margin-top:3px}.compat-item{float:left;width:100%;overflow:hidden}.compat-item table{width:100%;table-layout:fixed;border-spacing:0;border:0}.compat-item tr{padding:2px 0;display:block;overflow:hidden}.compat-item .label,.compat-item .field{display:block;margin:0;padding:0}.compat-item .label{min-width:30%;margin-right:4%;float:left;text-align:right}.compat-item .label span{display:block;width:100%}.compat-item .field{float:right;width:65%;padding-right:1px}.compat-item .field input{width:100%;margin:0}.media-menu{position:absolute;top:0;left:0;right:0;bottom:0;margin:0;padding:16px 0;border-right:1px solid #d9d9d9;box-shadow:inset -6px 0 6px -6px rgba(0,0,0,0.2);-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.media-menu>a{display:block;position:relative;padding:4px 20px;margin:0;line-height:18px;font-size:14px;color:#21759b;text-shadow:0 1px 0 #fff;text-decoration:none}.media-menu>a:hover{color:#21759b;background:rgba(0,0,0,0.04)}.media-menu>a:active{outline:0}.media-menu .active,.media-menu .active:hover{color:#333;font-weight:bold}.media-menu .separator{height:0;margin:12px 20px;padding:0;border-top:1px solid #dfdfdf;border-bottom:1px solid #fff}.media-router{position:relative;padding:0 6px;margin:0;clear:both;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.media-router>a{position:relative;float:left;padding:2px 10px;margin:0;height:18px;line-height:18px;font-size:14px;border-right:1px solid #dfdfdf;text-shadow:0 1px 0 #fff;text-decoration:none}.media-router>a:last-child{border-right:0}.media-router>a:active,.media-router>a:focus{outline:0}.media-router .active,.media-router .active:hover{color:#333}.media-router .active:after{content:'';display:block;margin:-100px auto 0;width:7px;height:7px;background:#fff;box-shadow:1px 1px 1px rgba(0,0,0,0.2);z-index:300;-webkit-transform:rotate(45deg) translate(75px,75px);-moz-transform:rotate(45deg) translate(75px,75px);-ms-transform:rotate(45deg) translate(75px,75px);-o-transform:rotate(45deg) translate(75px,75px);transform:rotate(45deg) translate(75px,75px)}.media-frame{overflow:hidden;position:absolute;top:0;left:0;right:0;bottom:0}.media-frame-menu{position:absolute;top:0;left:0;bottom:0;width:199px;z-index:150}.media-frame-title{position:absolute;top:0;left:200px;right:0;height:45px;z-index:200}.media-frame-router{position:absolute;top:45px;left:200px;right:0;height:30px;z-index:200;border-bottom:1px solid #dfdfdf;box-shadow:0 4px 4px -4px rgba(0,0,0,0.1)}.media-frame-content{position:absolute;top:75px;left:200px;right:0;bottom:61px;height:auto;width:auto;margin:0;overflow:auto}.media-frame-toolbar{position:absolute;left:200px;right:0;bottom:0;height:60px;z-index:100;border:0 solid #dfdfdf;border-width:1px 0 0 0;box-shadow:0 -4px 4px -4px rgba(0,0,0,0.1)}.media-frame.hide-menu .media-frame-title,.media-frame.hide-menu .media-frame-router,.media-frame.hide-menu .media-frame-toolbar,.media-frame.hide-menu .media-frame-content{left:0}.media-frame.hide-menu .media-frame-menu{left:-200px}.media-frame.hide-toolbar .media-frame-content{bottom:0}.media-frame.hide-toolbar .media-frame-toolbar{bottom:-61px}.media-frame.hide-router .media-frame-content{top:45px}.media-frame.hide-router .media-frame-router{display:none}.media-frame.hide-router .media-frame-title{border-bottom:1px solid #dfdfdf;box-shadow:0 4px 4px -4px rgba(0,0,0,0.1)}.media-frame .media-toolbar .add-to-gallery{display:none}.media-frame-title h1{padding:0 16px;font-size:22px;font-weight:200;line-height:45px;margin:0}.media-frame .media-iframe{overflow:hidden}.media-frame .media-iframe,.media-frame .media-iframe iframe{height:100%;width:100%;border:0}.media-frame select.attachment-filters{margin-top:11px;margin-right:10px}.media-frame .search{margin-top:11px;padding:4px;line-height:18px;font-size:13px;color:#464646;font-family:sans-serif;-webkit-appearance:none}.media-toolbar-secondary .search{margin-right:16px}.attachments{margin:0;padding-right:16px;-webkit-overflow-scrolling:touch}.attachment{position:relative;float:left;padding:0;margin:0 10px 20px;color:#464646;list-style:none;text-align:center;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none}.selected.attachment{box-shadow:0 0 0 1px #fff,0 0 0 3px #ccc}.details.attachment{box-shadow:0 0 0 1px #fff,0 0 0 5px #1e8cbe}.attachment-preview{position:relative;width:199px;height:199px;box-shadow:inset 0 0 15px rgba(0,0,0,0.1),inset 0 0 0 1px rgba(0,0,0,0.05);background:#eee;cursor:pointer}.attachment .icon{margin:0 auto;overflow:hidden;padding-top:20%}.attachment .thumbnail{display:block;position:absolute;top:0;left:0;margin:0 auto;overflow:hidden;max-width:100%;max-height:100%}.attachment-preview .thumbnail:after{content:'';display:block;position:absolute;top:0;left:0;right:0;bottom:0;box-shadow:inset 0 0 0 1px rgba(0,0,0,0.1);overflow:hidden}.attachment .thumbnail img{top:0;left:0}.attachment .thumbnail .centered{position:absolute;top:0;left:0;width:100%;height:100%;-webkit-transform:translate(50%,50%);-moz-transform:translate(50%,50%);-ms-transform:translate(50%,50%);-o-transform:translate(50%,50%);transform:translate(50%,50%)}.attachment .thumbnail .centered img{-webkit-transform:translate(-50%,-50%);-moz-transform:translate(-50%,-50%);-ms-transform:translate(-50%,-50%);-o-transform:translate(-50%,-50%);transform:translate(-50%,-50%)}.attachment .filename{position:absolute;left:0;right:0;bottom:0;overflow:hidden;max-height:100%;word-wrap:break-word;text-align:center;font-weight:bold;background:rgba(255,255,255,0.8);box-shadow:inset 0 0 0 1px rgba(0,0,0,0.15)}.attachment .filename div{padding:5px 10px}.attachment-preview .thumbnail{width:199px;height:199px}.attachment .thumbnail img{position:absolute}.attachment .close{display:none;position:absolute;top:5px;right:5px;height:22px;width:22px;padding:0;font-size:20px;line-height:20px;text-align:center;text-decoration:none;color:#464646;background-color:#fff;background-position:-96px 4px;border-width:0;border-radius:3px;box-shadow:0 0 0 1px rgba(0,0,0,0.3)}.attachment .close:hover{box-shadow:0 0 0 1px rgba(0,0,0,0.6)}.attachment:hover .close{display:block}.attachment .check{display:none;height:24px;width:24px;position:absolute;top:-7px;right:-7px;outline:0;border:1px solid #fff;border-radius:3px;box-shadow:0 0 0 1px rgba(0,0,0,0.4);background:#f1f1f1;background-image:-webkit-gradient(linear,left top,left bottom,from(#f1f1f1),to(#e1e1e1));background-image:-webkit-linear-gradient(top,#f1f1f1,#e1e1e1);background-image:-moz-linear-gradient(top,#f1f1f1,#e1e1e1);background-image:-o-linear-gradient(top,#f1f1f1,#e1e1e1);background-image:linear-gradient(to bottom,#f1f1f1,#e1e1e1)}.attachment .check div{background-position:-1px 0;height:15px;width:15px;margin:5px}.attachment .check:hover div{background-position:-40px 0}.attachment.selected .check{display:block}.attachment.details .check{box-shadow:0 0 0 1px #1e8cbe;background:#1e8cbe;background-image:-webkit-gradient(linear,left top,left bottom,from(#1e8cbe),to(#0074a2));background-image:-webkit-linear-gradient(top,#1e8cbe,#0074a2);background-image:-moz-linear-gradient(top,#1e8cbe,#0074a2);background-image:-o-linear-gradient(top,#1e8cbe,#0074a2);background-image:linear-gradient(to bottom,#1e8cbe,#0074a2)}.attachment.details .check div{background-position:-21px 0}.attachment.details .check:hover div{background-position:-60px 0}.media-frame .attachment .describe{position:relative;display:block;width:100%;margin:-1px 0 0;padding:8px;font-size:12px;border-radius:0}.media-frame .attachments-browser{position:relative;width:100%;height:100%;overflow:hidden}.attachments-browser .media-toolbar{right:300px;height:50px}.attachments-browser .media-toolbar-primary>.media-button,.attachments-browser .media-toolbar-primary>.media-button-group,.attachments-browser .media-toolbar-secondary>.media-button,.attachments-browser .media-toolbar-secondary>.media-button-group{margin-top:10px}.attachments-browser .attachments,.attachments-browser .uploader-inline{position:absolute;top:50px;left:0;right:300px;bottom:0;overflow:auto}.attachments-browser .instructions{display:inline-block;margin-top:16px;line-height:18px;font-size:13px;color:#999}.media-progress-bar{position:relative;height:10px;width:70%;margin:10px auto;border-radius:10px;background:#dfdfdf;background:rgba(0,0,0,0.1)}.media-progress-bar div{height:10px;min-width:20px;width:0;background:#aaa;background:rgba(0,0,0,0.2);border-radius:10px;-webkit-transition:width 300ms;-moz-transition:width 300ms;-ms-transition:width 300ms;-o-transition:width 300ms;transition:width 300ms}.media-uploader-status .media-progress-bar{display:none;width:100%}.uploading.media-uploader-status .media-progress-bar{display:block}.attachment-preview .media-progress-bar{position:absolute;top:50%;left:15%;width:70%;margin:-5px 0 0 0}.media-uploader-status{position:relative;margin:0 auto;padding-bottom:10px;max-width:400px}.media-sidebar .media-uploader-status{border-bottom:1px solid #dfdfdf;box-shadow:0 1px 0 #fff}.uploader-inline .media-uploader-status h3{display:none}.media-uploader-status .upload-details{display:none;font-size:12px;color:#666;text-shadow:0 1px 0 #fff}.uploading.media-uploader-status .upload-details{display:block}.media-uploader-status .upload-detail-separator{padding:0 4px}.media-uploader-status .upload-count{color:#464646}.media-uploader-status .upload-dismiss-errors,.media-uploader-status .upload-errors{display:none}.errors.media-uploader-status .upload-dismiss-errors,.errors.media-uploader-status .upload-errors{display:block}.media-uploader-status .upload-dismiss-errors{text-decoration:none}.media-sidebar .media-uploader-status .upload-dismiss-errors{position:absolute;top:0;right:0}.upload-errors .upload-error{margin:8px auto 0 auto;padding:8px;border:1px #c00 solid;background:#ffebe8;border-radius:3px}.upload-errors .upload-error-label{padding:2px 4px;margin-right:8px;font-weight:bold;color:#fff;background:#e00;background-image:-webkit-gradient(linear,left top,left bottom,from(#e00),to(#a00));background-image:-webkit-linear-gradient(top,#e00,#a00);background-image:-moz-linear-gradient(top,#e00,#a00);background-image:-o-linear-gradient(top,#e00,#a00);background-image:linear-gradient(to bottom,#e00,#a00);border-radius:3px}.upload-errors .upload-error-message{display:block;padding-top:8px;color:#b44;word-wrap:break-word}.uploader-window{position:fixed;top:0;left:0;right:0;bottom:0;background:rgba(0,86,132,0.9);z-index:250000;display:none;text-align:center;opacity:0;-webkit-transition:opacity 250ms;-moz-transition:opacity 250ms;-ms-transition:opacity 250ms;-o-transition:opacity 250ms;transition:opacity 250ms}.uploader-window-content{position:absolute;top:10px;left:10px;right:10px;bottom:10px;border:1px dashed #fff}.uploader-window h3{position:absolute;top:50%;left:0;right:0;-webkit-transform:translateY(-50%);-moz-transform:translateY(-50%);-ms-transform:translateY(-50%);-o-transform:translateY(-50%);transform:translateY(-50%);font-size:20px;font-weight:200;color:#fff;padding:0}.uploader-window .media-progress-bar{margin-top:20px;max-width:300px;background:transparent;border-color:#fff;display:none}.uploader-window .media-progress-bar div{background:#fff}.uploading .uploader-window .media-progress-bar{display:block}.media-frame .uploader-inline{margin:20px;padding:20px;text-align:center}.uploader-inline-content{position:absolute;top:30%;left:0;right:0}.uploader-inline-content .upload-ui{margin:4em 0}.uploader-inline-content .post-upload-ui{margin-bottom:2em}.uploader-inline .has-upload-message .upload-ui{margin:0 0 4em}.uploader-inline h3{font-size:20px;line-height:28px;font-weight:200;margin-bottom:1.6em}.uploader-inline .has-upload-message .upload-instructions{font-size:14px;color:#464646;font-weight:normal}.uploader-inline .drop-instructions{display:none}.supports-drag-drop .uploader-inline .drop-instructions{display:block}.uploader-inline p{font-size:12px}.uploader-inline .media-progress-bar{display:none}.uploading.uploader-inline .media-progress-bar{display:block}.uploader-inline .browser{display:inline-block!important}.media-selection{position:absolute;top:0;left:0;right:350px;height:60px;padding:0 0 0 16px;overflow:hidden;white-space:nowrap}.media-selection .selection-info{display:inline-block;font-size:12px;height:60px;margin-right:10px;vertical-align:top}.media-selection.empty,.media-selection.editing{display:none}.media-selection.one .edit-selection{display:none}.media-selection .count{display:block;padding-top:12px;font-size:14px;line-height:20px;font-weight:bold}.media-selection .selection-info a{display:block;float:left;padding:1px 8px;margin:1px 8px 1px -8px;line-height:16px;text-decoration:none;border-right:1px solid #dfdfdf;color:#21759b}.media-selection .selection-info a:hover{background:#21759b;color:#fff;border-color:transparent}.media-selection .selection-info a:last-child{border-right:0;margin-right:0}.media-selection .selection-info .clear-selection{color:red}.media-selection .selection-info .clear-selection:hover{background:red}.media-selection .selection-view{display:inline-block;vertical-align:top}.media-selection .attachments{display:inline-block;height:48px;margin-top:5px;overflow:hidden;vertical-align:top}.media-selection .attachment .icon{width:50%}.attachment.selection.selected{box-shadow:none}.attachment.selection.details{box-shadow:0 0 0 1px #fff,0 0 0 4px #1e8cbe}.media-selection .attachment.selection.details{box-shadow:0 0 0 1px #fff,0 0 0 3px #1e8cbe}.media-selection:after{content:'';display:block;position:absolute;top:0;right:0;bottom:0;width:25px;background-image:-webkit-gradient(linear,right top,left top,from(rgba(255,255,255,1)),to(rgba(255,255,255,0)));background-image:-webkit-linear-gradient(right,rgba(255,255,255,1),rgba(255,255,255,0));background-image:-moz-linear-gradient(right,rgba(255,255,255,1),rgba(255,255,255,0));background-image:-o-linear-gradient(right,rgba(255,255,255,1),rgba(255,255,255,0));background-image:linear-gradient(to left,rgba(255,255,255,1),rgba(255,255,255,0))}.media-selection .attachment .filename{display:none}.media-frame .spinner{background:url(../images/wpspin.gif) no-repeat;background-size:16px 16px;display:none;opacity:.7;filter:alpha(opacity=70);width:16px;height:16px;margin:0}.media-sidebar .settings-save-status{background:#f5f5f5;float:right;text-transform:none;z-index:10}.media-sidebar .settings-save-status .spinner{margin:0 5px 0}.media-sidebar .settings-save-status .saved{float:right;display:none}.media-sidebar .save-waiting .settings-save-status .spinner,.media-sidebar .save-complete .settings-save-status .saved{display:block}.attachment-details{position:relative;overflow:auto}.attachment-info{overflow:hidden;min-height:60px;margin-bottom:16px;line-height:18px;color:#999;border-bottom:1px solid #e5e5e5;box-shadow:0 1px 0 #fff;padding-bottom:11px}.attachment-info .filename{font-weight:bold;color:#464646;word-wrap:break-word}.attachment-info .thumbnail{position:relative;float:left;max-width:120px;max-height:120px;margin-top:5px;margin-right:10px;margin-bottom:5px}.uploading .attachment-info .thumbnail{width:120px;height:80px;box-shadow:inset 0 0 15px rgba(0,0,0,0.1)}.uploading .attachment-info .media-progress-bar{margin-top:35px}.attachment-info .thumbnail:after{content:'';display:block;position:absolute;top:0;left:0;right:0;bottom:0;box-shadow:inset 0 0 0 1px rgba(0,0,0,0.15);overflow:hidden}.attachment-info .thumbnail img{display:block;max-width:120px;max-height:120px;margin:0 auto}.attachment-info .details{float:left;font-size:12px;max-width:100%}.attachment-info .edit-attachment,.attachment-info .refresh-attachment,.attachment-info .delete-attachment{display:block;text-decoration:none;white-space:nowrap}.attachment-info .refresh-attachment,.attachment-details.needs-refresh .attachment-info .edit-attachment{display:none}.attachment-details.needs-refresh .attachment-info .refresh-attachment,.attachment-info .edit-attachment{display:block}.attachment-info .delete-attachment{color:#bc0b0b}.attachment-info .delete-attachment:hover{color:red}.attachment-display-settings{width:100%;float:left;overflow:hidden}.attachment-display-settings h4{margin:1.4em 0 .4em}.gallery-settings{overflow:hidden}.embed-url{display:block;position:relative;padding:0 16px 7px;margin:0;z-index:250;background:#fff;border-bottom:1px solid #dfdfdf;box-shadow:0 4px 4px -4px rgba(0,0,0,0.1);font-size:18px;font-weight:200}.media-frame .embed-url input{font-size:18px;padding:12px 14px;width:100%;min-width:200px;box-shadow:inset 2px 2px 4px -2px rgba(0,0,0,0.1)}.media-frame .embed-url .spinner{position:absolute;top:16px;right:26px}.media-frame .embed-loading .embed-url .spinner{display:block}.embed-link-settings,.embed-image-settings{position:absolute;background:#f5f5f5;top:57px;left:0;right:0;bottom:0;padding:16px 16px 32px;overflow:auto}.media-embed .thumbnail{max-width:100%;max-height:200px;position:relative;float:left}.media-embed .thumbnail img{max-height:200px;display:block}.media-embed .thumbnail:after{content:'';display:block;position:absolute;top:0;left:0;right:0;bottom:0;box-shadow:inset 0 0 0 1px rgba(0,0,0,0.1);overflow:hidden}.media-embed .setting{width:100%;margin-top:10px;float:left;display:block;clear:both}.media-embed .setting span{display:block;width:200px;font-size:13px;line-height:24px;color:#999;text-shadow:0 1px 0 #fff}.media-embed .setting .button-group{margin:2px 0}.media-embed .setting input,.media-embed .setting textarea{display:block;width:100%;max-width:400px;margin:1px 0}.ie7 .media-frame .attachments-browser{position:static}.ie7 .media-frame .embed-url input{margin-top:4px;width:90%}.ie7 .compat-item{width:99%}.ie7 .attachment-display-settings{width:auto}.ie7 .attachment-preview,.ie7 .attachment-preview .thumbnail{width:120px;height:120px}.ie7 .media-frame .attachment .describe{width:102px}.ie7 .media-sidebar .setting select{max-width:55%}.ie7 .media-sidebar .setting input,.ie7 .media-sidebar .setting textarea{width:55%}.ie7 .media-sidebar .setting .link-to-custom{float:left}@media only screen and (max-width:960px){.media-frame-content .media-toolbar-primary .search,.media-frame-content .media-toolbar-secondary .attachment-filters{max-width:120px}}@media only screen and (max-width:900px){.media-frame-menu{width:139px}.media-menu>a{padding:4px 10px}.media-frame-title,.media-frame-router,.media-frame-content,.media-frame-toolbar{left:140px}.media-sidebar{width:159px;padding:0 10px 24px}.attachments-browser .attachments,.attachments-browser .uploader-inline,.attachments-browser .media-toolbar{right:180px}.media-sidebar .setting input,.media-sidebar .setting textarea,.media-sidebar .setting span,.compat-item label span{float:none}.media-sidebar .setting span,.compat-item label span{text-align:inherit;display:block;min-height:16px;margin:0;padding:8px 2px 0}.media-sidebar .setting input,.media-sidebar .setting textarea,.media-sidebar .setting select{width:98%;max-width:none}.media-sidebar .setting select.columns{width:auto}.media-frame input,.media-frame textarea,.media-frame .search{padding:3px 6px}.media-frame-content .attachment .icon{top:40%}.media-selection{min-width:120px}.media-selection:after{background:0}.media-selection .attachments{display:none}.media-menu .separator{margin:12px 10px}}@media only screen and (max-width:800px){.media-frame-content .media-toolbar .instructions{display:none}}@media only screen and (max-width:680px){.media-frame-content .media-toolbar .search,.media-frame-content .media-toolbar .attachment-filters{max-width:85px}}@media only screen and (max-width:600px){.media-modal{width:540px;position:absolute}.media-modal-backdrop{width:600px;position:absolute}}@media print,(-o-min-device-pixel-ratio:5/4),(-webkit-min-device-pixel-ratio:1.25),(min-resolution:120dpi){.media-modal-icon{background-image:url(../images/uploader-icons-2x.png);background-size:134px 15px}.media-frame .spinner{background-image:url(../images/wpspin-2x.gif)}}
\ No newline at end of file
--- a/web/wp-includes/css/wp-pointer.css	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/css/wp-pointer.css	Wed Dec 19 17:46:52 2012 -0800
@@ -1,1 +1,228 @@
-.wp-pointer-content{padding:0 0 10px;position:relative;font-size:13px;background:#fff;border-style:solid;border-width:1px;border-color:#dfdfdf;border-color:rgba(0,0,0,.125);-webkit-border-radius:3px;border-radius:3px;-webkit-box-shadow:0 2px 4px rgba(0,0,0,.19);-moz-box-shadow:0 2px 4px rgba(0,0,0,.19);box-shadow:0 2px 4px rgba(0,0,0,.19)}.wp-pointer-content h3{position:relative;margin:0 0 5px;padding:15px 18px 14px 60px;line-height:1.4em;font-size:14px;color:#fff;border-radius:3px 3px 0 0;text-shadow:0 -1px 0 rgba(0,0,0,0.3);background-color:#8cc1e9;background-image:-webkit-linear-gradient(bottom,#72a7cf 0,#8cc1e9 100%);background-image:-moz-linear-gradient(bottom,#72a7cf 0,#8cc1e9 100%);background-image:-ms-linear-gradient(bottom,#72a7cf 0,#8cc1e9 100%);background-image:-o-linear-gradient(bottom,#72a7cf 0,#8cc1e9 100%);background-image:linear-gradient(bottom,#72a7cf 0,#8cc1e9 100%)}.wp-pointer-content h3:before{position:absolute;top:0;left:15px;content:' ';width:36px;height:100%;background:url('../images/icon-pointer-flag.png') 0 50% no-repeat}.wp-pointer-content p{padding:0 15px}.wp-pointer-buttons{margin:0;padding:5px 15px;overflow:auto}.wp-pointer-buttons a{float:right;display:inline-block;text-decoration:none}.wp-pointer-buttons a.close{padding-left:3px;position:relative}.wp-pointer-buttons a.close:before{content:' ';width:10px;height:100%;position:absolute;left:-10px;background:url('../images/xit.gif') 0 50% no-repeat}.wp-pointer-buttons a.close:hover:before{background-position:100% 50%}.wp-pointer-arrow,.wp-pointer-arrow-inner{position:absolute;width:0;height:0}.wp-pointer-arrow{z-index:10;background:url('../images/arrow-pointer-blue.png') 0 0 no-repeat}.wp-pointer-arrow-inner{z-index:20}.wp-pointer-top,.wp-pointer-undefined{padding-top:13px}.wp-pointer-bottom{padding-bottom:13px}.wp-pointer-left{padding-left:13px}.wp-pointer-right{padding-right:13px}.wp-pointer-top .wp-pointer-arrow,.wp-pointer-bottom .wp-pointer-arrow,.wp-pointer-undefined .wp-pointer-arrow{left:50px;width:30px;height:14px}.wp-pointer-left .wp-pointer-arrow,.wp-pointer-right .wp-pointer-arrow{top:50%;margin-top:-15px;width:14px;height:30px}.wp-pointer-top .wp-pointer-arrow,.wp-pointer-undefined .wp-pointer-arrow{top:0;background-position:0 0}.wp-pointer-bottom .wp-pointer-arrow{bottom:0;background-position:0 -46px}.wp-pointer-left .wp-pointer-arrow{left:0;background-position:0 -15px}.wp-pointer-right .wp-pointer-arrow{right:0;background-position:-16px -15px}.rtl .wp-pointer-content h3{padding-right:60px;padding-left:18px}.rtl .wp-pointer-content h3:before{right:15px}.rtl .wp-pointer-buttons a{float:left}.rtl .wp-pointer-buttons a.close{padding-right:3px;padding-left:0}.rtl .wp-pointer-buttons a.close:before{right:-10px}.rtl .wp-pointer-top .wp-pointer-arrow,.rtl .wp-pointer-bottom .wp-pointer-arrow,.rtl .wp-pointer-undefined .wp-pointer-arrow{right:50px}
\ No newline at end of file
+.wp-pointer {
+}
+
+.wp-pointer-content {
+	padding: 0 0 10px;
+	position: relative;
+	font-size: 13px;
+
+	background: #fff;
+	border-style: solid;
+	border-width: 1px;
+	/* Fallback for non-rgba-compliant browsers */
+	border-color: #dfdfdf;
+	/* Use rgba to look better against non-white backgrounds. */
+	border-color: rgba(0,0,0,.125);
+	-webkit-border-radius: 3px;
+	border-radius: 3px;
+
+	-webkit-box-shadow: 0 2px 4px rgba(0,0,0,.19);
+	box-shadow: 0 2px 4px rgba(0,0,0,.19);
+}
+
+.wp-pointer-content h3 {
+	position: relative;
+	margin: 0 0 5px;
+	padding: 15px 18px 14px 60px;
+	line-height: 1.4em;
+	font-size: 14px;
+	color: #fff;
+	border-radius: 3px 3px 0 0;
+	text-shadow: 0 -1px 0 rgba(0,0,0,0.3);
+	background: #8cc1e9;
+	background-image: -webkit-gradient(linear, left bottom, left top, from(#72a7cf), to(#8cc1e9));
+	background-image: -webkit-linear-gradient(bottom, #72a7cf, #8cc1e9);
+	background-image:    -moz-linear-gradient(bottom, #72a7cf, #8cc1e9);
+	background-image:      -o-linear-gradient(bottom, #72a7cf, #8cc1e9);
+	background-image: linear-gradient(to top, #72a7cf, #8cc1e9);
+}
+
+.wp-pointer-content h3:before {
+	position: absolute;
+	top: 0;
+	left: 15px;
+	content: ' ';
+	width: 36px;
+	height: 100%;
+	background: url('../images/icon-pointer-flag.png') 0 50% no-repeat;
+}
+
+.wp-pointer-content p {
+	padding: 0 15px;
+}
+
+.wp-pointer-buttons {
+	margin: 0;
+	padding: 5px 15px;
+	overflow: auto;
+}
+
+.wp-pointer-buttons a {
+	float: right;
+	display: inline-block;
+	text-decoration: none;
+}
+
+.wp-pointer-buttons a.close {
+	padding-left:3px;
+	position: relative;
+}
+
+.wp-pointer-buttons a.close:before {
+	content: ' ';
+	width:10px;
+	height:100%;
+	position:absolute;
+	left:-10px;
+	background:url('../images/xit.gif') 0 50% no-repeat;
+}
+
+.wp-pointer-buttons a.close:hover:before {
+	background-position:100% 50%;
+}
+
+/* The arrow base class must take up no space, even with transparent borders. */
+.wp-pointer-arrow,
+.wp-pointer-arrow-inner {
+	position: absolute;
+	width: 0;
+	height: 0;
+}
+
+.wp-pointer-arrow {
+	z-index: 10;
+	background:url('../images/arrow-pointer-blue.png') 0 0 no-repeat;
+}
+
+.wp-pointer-arrow-inner {
+	z-index: 20;
+}
+
+/* Make Room for the Arrow! */
+.wp-pointer-top,
+.wp-pointer-undefined {
+	padding-top: 13px;
+}
+
+.wp-pointer-bottom {
+	padding-bottom: 13px;
+}
+
+.wp-pointer-left {
+	padding-left: 13px;
+}
+
+.wp-pointer-right {
+	padding-right: 13px;
+}
+
+/* Base Size & Positioning */
+.wp-pointer-top .wp-pointer-arrow,
+.wp-pointer-bottom .wp-pointer-arrow,
+.wp-pointer-undefined .wp-pointer-arrow {
+	left: 50px;
+	width: 30px;
+	height: 14px;
+}
+
+.wp-pointer-left .wp-pointer-arrow,
+.wp-pointer-right .wp-pointer-arrow {
+	top: 50%;
+	margin-top: -15px;
+	width: 14px;
+	height: 30px;
+}
+
+/* Arrow Sprite */
+.wp-pointer-top .wp-pointer-arrow,
+.wp-pointer-undefined .wp-pointer-arrow {
+	top: 0;
+	background-position: 0 0;
+}
+
+.wp-pointer-bottom .wp-pointer-arrow {
+	bottom: 0;
+	background-position: 0 -46px;
+}
+
+.wp-pointer-left .wp-pointer-arrow {
+	left: 0;
+	background-position: 0 -15px;
+}
+
+.wp-pointer-right .wp-pointer-arrow {
+	right:0;
+	background-position:-16px -15px;
+}
+
+/* - RTL
+------------------------------------------------------------------------------*/
+
+.rtl .wp-pointer-content h3 {
+	padding-right: 60px;
+	padding-left: 18px;
+}
+
+.rtl .wp-pointer-content h3:before {
+	right: 15px;
+}
+
+.rtl .wp-pointer-buttons a {
+	float: left;
+}
+
+.rtl .wp-pointer-buttons a.close {
+	padding-right:3px;
+	padding-left: 0;
+}
+
+.rtl .wp-pointer-buttons a.close:before {
+	right:-10px;
+}
+
+.rtl .wp-pointer-top .wp-pointer-arrow,
+.rtl .wp-pointer-bottom .wp-pointer-arrow,
+.rtl .wp-pointer-undefined .wp-pointer-arrow {
+	right: 50px;
+}
+
+/**
+ * HiDPI Displays
+ */
+@media print,
+  (-o-min-device-pixel-ratio: 5/4),
+  (-webkit-min-device-pixel-ratio: 1.25),
+  (min-resolution: 120dpi) {
+
+	.wp-pointer-buttons a.close:before {
+		background-image: url('../images/xit-2x.gif');
+		background-size: 20px auto;
+	}
+
+	.wp-pointer-content h3:before {
+		background-image: url('../images/icon-pointer-flag-2x.png');
+		background-size: 36px auto;
+	}
+
+	.wp-pointer-arrow {
+		background: url('../images/arrow-pointer-blue-2x.png') 0 0 no-repeat;
+		background-size: 30px 60px;
+	}
+
+	.wp-pointer-top .wp-pointer-arrow,
+	.wp-pointer-undefined .wp-pointer-arrow {
+		background-position: 0 1px;
+	}
+
+	.wp-pointer-bottom .wp-pointer-arrow {
+		background-position: 0 -47px;
+	}
+
+	.wp-pointer-left .wp-pointer-arrow {
+		background-position: 1px -15px;
+	}
+
+	.wp-pointer-right .wp-pointer-arrow {
+		background-position:-17px -15px;
+	}
+}
--- a/web/wp-includes/css/wp-pointer.dev.css	Wed Dec 19 12:35:13 2012 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,188 +0,0 @@
-.wp-pointer {
-}
-
-.wp-pointer-content {
-	padding: 0 0 10px;
-	position: relative;
-	font-size: 13px;
-
-	background: #fff;
-	border-style: solid;
-	border-width: 1px;
-	/* Fallback for non-rgba-compliant browsers */
-	border-color: #dfdfdf;
-	/* Use rgba to look better against non-white backgrounds. */
-	border-color: rgba(0,0,0,.125);
-	-webkit-border-radius: 3px;
-	border-radius: 3px;
-
-	-webkit-box-shadow: 0 2px 4px rgba(0,0,0,.19);
-	-moz-box-shadow: 0 2px 4px rgba(0,0,0,.19);
-	box-shadow: 0 2px 4px rgba(0,0,0,.19);
-}
-
-.wp-pointer-content h3 {
-	position: relative;
-	margin: 0 0 5px;
-	padding: 15px 18px 14px 60px;
-	line-height: 1.4em;
-	font-size: 14px;
-	color: #fff;
-	border-radius: 3px 3px 0 0;
-	text-shadow: 0 -1px 0 rgba(0,0,0,0.3);
-	background-color: #8cc1e9;
-	background-image: -webkit-linear-gradient(bottom, rgb(114,167,207) 0%, rgb(140,193,233) 100%);
-	background-image: -moz-linear-gradient(bottom, rgb(114,167,207) 0%, rgb(140,193,233) 100%);
-	background-image: -ms-linear-gradient(bottom, rgb(114,167,207) 0%, rgb(140,193,233) 100%);
-	background-image: -o-linear-gradient(bottom, rgb(114,167,207) 0%, rgb(140,193,233) 100%);
-	background-image: linear-gradient(bottom, rgb(114,167,207) 0%, rgb(140,193,233) 100%);
-}
-
-.wp-pointer-content h3:before {
-	position: absolute;
-	top: 0;
-	left: 15px;
-	content: ' ';
-	width: 36px;
-	height: 100%;
-	background: url('../images/icon-pointer-flag.png') 0 50% no-repeat;
-}
-
-.wp-pointer-content p {
-	padding: 0 15px;
-}
-
-.wp-pointer-buttons {
-	margin: 0;
-	padding: 5px 15px;
-	overflow: auto;
-}
-
-.wp-pointer-buttons a {
-	float: right;
-	display: inline-block;
-	text-decoration: none;
-}
-
-.wp-pointer-buttons a.close {
-	padding-left:3px;
-	position: relative;
-}
-
-.wp-pointer-buttons a.close:before {
-	content: ' ';
-	width:10px;
-	height:100%;
-	position:absolute;
-	left:-10px;
-	background:url('../images/xit.gif') 0 50% no-repeat;
-}
-
-.wp-pointer-buttons a.close:hover:before {
-	background-position:100% 50%;
-}
-
-/* The arrow base class must take up no space, even with transparent borders. */
-.wp-pointer-arrow,
-.wp-pointer-arrow-inner {
-	position: absolute;
-	width: 0;
-	height: 0;
-}
-
-.wp-pointer-arrow {
-	z-index: 10;
-	background:url('../images/arrow-pointer-blue.png') 0 0 no-repeat;
-}
-
-.wp-pointer-arrow-inner {
-	z-index: 20;
-}
-
-/* Make Room for the Arrow! */
-.wp-pointer-top,
-.wp-pointer-undefined {
-	padding-top: 13px;
-}
-
-.wp-pointer-bottom {
-	padding-bottom: 13px;
-}
-
-.wp-pointer-left {
-	padding-left: 13px;
-}
-
-.wp-pointer-right {
-	padding-right: 13px;
-}
-
-/* Base Size & Positioning */
-.wp-pointer-top .wp-pointer-arrow,
-.wp-pointer-bottom .wp-pointer-arrow,
-.wp-pointer-undefined .wp-pointer-arrow {
-	left: 50px;
-	width: 30px;
-	height: 14px;
-}
-
-.wp-pointer-left .wp-pointer-arrow,
-.wp-pointer-right .wp-pointer-arrow {
-	top: 50%;
-	margin-top: -15px;
-	width: 14px;
-	height: 30px;
-}
-
-/* Arrow Sprite */
-.wp-pointer-top .wp-pointer-arrow,
-.wp-pointer-undefined .wp-pointer-arrow {
-	top: 0;
-	background-position: 0 0;
-}
-
-.wp-pointer-bottom .wp-pointer-arrow {
-	bottom: 0;
-	background-position: 0 -46px;
-}
-
-.wp-pointer-left .wp-pointer-arrow {
-	left: 0;
-	background-position: 0 -15px;
-}
-
-.wp-pointer-right .wp-pointer-arrow {
-	right:0;
-	background-position:-16px -15px;
-}
-
-/* - RTL
-------------------------------------------------------------------------------*/
-
-.rtl .wp-pointer-content h3 {
-	padding-right: 60px;
-	padding-left: 18px;
-}
-
-.rtl .wp-pointer-content h3:before {
-	right: 15px;
-}
-
-.rtl .wp-pointer-buttons a {
-	float: left;
-}
-
-.rtl .wp-pointer-buttons a.close {
-	padding-right:3px;
-	padding-left: 0;
-}
-
-.rtl .wp-pointer-buttons a.close:before {
-	right:-10px;
-}
-
-.rtl .wp-pointer-top .wp-pointer-arrow,
-.rtl .wp-pointer-bottom .wp-pointer-arrow,
-.rtl .wp-pointer-undefined .wp-pointer-arrow {
-	right: 50px;
-}
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-includes/css/wp-pointer.min.css	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,1 @@
+.wp-pointer-content{padding:0 0 10px;position:relative;font-size:13px;background:#fff;border-style:solid;border-width:1px;border-color:#dfdfdf;border-color:rgba(0,0,0,.125);-webkit-border-radius:3px;border-radius:3px;-webkit-box-shadow:0 2px 4px rgba(0,0,0,.19);box-shadow:0 2px 4px rgba(0,0,0,.19)}.wp-pointer-content h3{position:relative;margin:0 0 5px;padding:15px 18px 14px 60px;line-height:1.4em;font-size:14px;color:#fff;border-radius:3px 3px 0 0;text-shadow:0 -1px 0 rgba(0,0,0,0.3);background:#8cc1e9;background-image:-webkit-gradient(linear,left bottom,left top,from(#72a7cf),to(#8cc1e9));background-image:-webkit-linear-gradient(bottom,#72a7cf,#8cc1e9);background-image:-moz-linear-gradient(bottom,#72a7cf,#8cc1e9);background-image:-o-linear-gradient(bottom,#72a7cf,#8cc1e9);background-image:linear-gradient(to top,#72a7cf,#8cc1e9)}.wp-pointer-content h3:before{position:absolute;top:0;left:15px;content:' ';width:36px;height:100%;background:url('../images/icon-pointer-flag.png') 0 50% no-repeat}.wp-pointer-content p{padding:0 15px}.wp-pointer-buttons{margin:0;padding:5px 15px;overflow:auto}.wp-pointer-buttons a{float:right;display:inline-block;text-decoration:none}.wp-pointer-buttons a.close{padding-left:3px;position:relative}.wp-pointer-buttons a.close:before{content:' ';width:10px;height:100%;position:absolute;left:-10px;background:url('../images/xit.gif') 0 50% no-repeat}.wp-pointer-buttons a.close:hover:before{background-position:100% 50%}.wp-pointer-arrow,.wp-pointer-arrow-inner{position:absolute;width:0;height:0}.wp-pointer-arrow{z-index:10;background:url('../images/arrow-pointer-blue.png') 0 0 no-repeat}.wp-pointer-arrow-inner{z-index:20}.wp-pointer-top,.wp-pointer-undefined{padding-top:13px}.wp-pointer-bottom{padding-bottom:13px}.wp-pointer-left{padding-left:13px}.wp-pointer-right{padding-right:13px}.wp-pointer-top .wp-pointer-arrow,.wp-pointer-bottom .wp-pointer-arrow,.wp-pointer-undefined .wp-pointer-arrow{left:50px;width:30px;height:14px}.wp-pointer-left .wp-pointer-arrow,.wp-pointer-right .wp-pointer-arrow{top:50%;margin-top:-15px;width:14px;height:30px}.wp-pointer-top .wp-pointer-arrow,.wp-pointer-undefined .wp-pointer-arrow{top:0;background-position:0 0}.wp-pointer-bottom .wp-pointer-arrow{bottom:0;background-position:0 -46px}.wp-pointer-left .wp-pointer-arrow{left:0;background-position:0 -15px}.wp-pointer-right .wp-pointer-arrow{right:0;background-position:-16px -15px}.rtl .wp-pointer-content h3{padding-right:60px;padding-left:18px}.rtl .wp-pointer-content h3:before{right:15px}.rtl .wp-pointer-buttons a{float:left}.rtl .wp-pointer-buttons a.close{padding-right:3px;padding-left:0}.rtl .wp-pointer-buttons a.close:before{right:-10px}.rtl .wp-pointer-top .wp-pointer-arrow,.rtl .wp-pointer-bottom .wp-pointer-arrow,.rtl .wp-pointer-undefined .wp-pointer-arrow{right:50px}@media print,(-o-min-device-pixel-ratio:5/4),(-webkit-min-device-pixel-ratio:1.25),(min-resolution:120dpi){.wp-pointer-buttons a.close:before{background-image:url('../images/xit-2x.gif');background-size:20px auto}.wp-pointer-content h3:before{background-image:url('../images/icon-pointer-flag-2x.png');background-size:36px auto}.wp-pointer-arrow{background:url('../images/arrow-pointer-blue-2x.png') 0 0 no-repeat;background-size:30px 60px}.wp-pointer-top .wp-pointer-arrow,.wp-pointer-undefined .wp-pointer-arrow{background-position:0 1px}.wp-pointer-bottom .wp-pointer-arrow{background-position:0 -47px}.wp-pointer-left .wp-pointer-arrow{background-position:1px -15px}.wp-pointer-right .wp-pointer-arrow{background-position:-17px -15px}}
\ No newline at end of file
--- a/web/wp-includes/default-constants.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/default-constants.php	Wed Dec 19 17:46:52 2012 -0800
@@ -20,7 +20,7 @@
 		if( is_multisite() ) {
 			define('WP_MEMORY_LIMIT', '64M');
 		} else {
-			define('WP_MEMORY_LIMIT', '32M');
+			define('WP_MEMORY_LIMIT', '40M');
 		}
 	}
 
@@ -39,8 +39,11 @@
 		$blog_id = 1;
 
 	// set memory limits.
-	if ( function_exists('memory_get_usage') && ( (int) @ini_get('memory_limit') < abs(intval(WP_MEMORY_LIMIT)) ) )
-		@ini_set('memory_limit', WP_MEMORY_LIMIT);
+	if ( function_exists( 'memory_get_usage' ) ) {
+		$current_limit = @ini_get( 'memory_limit' );
+		if ( -1 != $current_limit && ( -1 == WP_MEMORY_LIMIT || ( intval( $current_limit ) < abs( intval( WP_MEMORY_LIMIT ) ) ) ) )
+			@ini_set( 'memory_limit', WP_MEMORY_LIMIT );
+	}
 
 	if ( !defined('WP_CONTENT_DIR') )
 		define( 'WP_CONTENT_DIR', ABSPATH . 'wp-content' ); // no trailing slash, full paths only - WP_CONTENT_URL is defined further down
@@ -69,6 +72,14 @@
 
 	if ( !defined('SHORTINIT') )
 		define('SHORTINIT', false);
+
+	// Constants for expressing human-readable intervals
+	// in their respective number of seconds.
+ 	define( 'MINUTE_IN_SECONDS', 60 );
+ 	define( 'HOUR_IN_SECONDS',   60 * MINUTE_IN_SECONDS );
+ 	define( 'DAY_IN_SECONDS',    24 * HOUR_IN_SECONDS   );
+	define( 'WEEK_IN_SECONDS',    7 * DAY_IN_SECONDS    );
+ 	define( 'YEAR_IN_SECONDS',  365 * DAY_IN_SECONDS    );
 }
 
 /**
@@ -293,6 +304,6 @@
 	 * @since 3.0.0
 	 */
 	if ( !defined('WP_DEFAULT_THEME') )
-		define( 'WP_DEFAULT_THEME', 'twentyeleven' );
+		define( 'WP_DEFAULT_THEME', 'twentytwelve' );
 
 }
--- a/web/wp-includes/default-filters.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/default-filters.php	Wed Dec 19 17:46:52 2012 -0800
@@ -249,7 +249,6 @@
 add_action( 'shutdown',                   'wp_ob_end_flush_all',                      1    );
 add_action( 'pre_post_update',            'wp_save_post_revision'                          );
 add_action( 'publish_post',               '_publish_post_hook',                       5, 1 );
-add_action( 'save_post',                  '_save_post_hook',                          5, 2 );
 add_action( 'transition_post_status',     '_transition_post_status',                  5, 3 );
 add_action( 'transition_post_status',     '_update_term_count_on_transition_post_status', 10, 3 );
 add_action( 'comment_form',               'wp_comment_form_unfiltered_html_nonce'          );
@@ -258,6 +257,7 @@
 add_action( 'admin_init',                 'send_frame_options_header',               10, 0 );
 add_action( 'importer_scheduled_cleanup', 'wp_delete_attachment'                           );
 add_action( 'upgrader_scheduled_cleanup', 'wp_delete_attachment'                           );
+add_action( 'welcome_panel',              'wp_welcome_panel'                               );
 
 // Navigation menu actions
 add_action( 'delete_post',                '_wp_delete_post_menu_item'         );
@@ -282,4 +282,10 @@
 add_action( 'admin_init', 'register_admin_color_schemes', 1);
 add_action( 'admin_color_scheme_picker', 'admin_color_scheme_picker' );
 
+// If the upgrade hasn't run yet, assume link manager is used.
+add_filter( 'default_option_link_manager_enabled', '__return_true' );
+
+// This option no longer exists; tell plugins we always support auto-embedding.
+add_filter( 'default_option_embed_autourls', '__return_true' );
+
 unset($filter, $action);
--- a/web/wp-includes/default-widgets.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/default-widgets.php	Wed Dec 19 17:46:52 2012 -0800
@@ -150,8 +150,8 @@
 		<option value=""><?php _ex('All Links', 'links widget'); ?></option>
 		<?php
 		foreach ( $link_cats as $link_cat ) {
-			echo '<option value="' . intval($link_cat->term_id) . '"'
-				. ( $link_cat->term_id == $instance['category'] ? ' selected="selected"' : '' )
+			echo '<option value="' . intval( $link_cat->term_id ) . '"'
+				. selected( $instance['category'], $link_cat->term_id, false )
 				. '>' . $link_cat->name . "</option>\n";
 		}
 		?>
@@ -161,7 +161,7 @@
 			<option value="name"<?php selected( $instance['orderby'], 'name' ); ?>><?php _e( 'Link title' ); ?></option>
 			<option value="rating"<?php selected( $instance['orderby'], 'rating' ); ?>><?php _e( 'Link rating' ); ?></option>
 			<option value="id"<?php selected( $instance['orderby'], 'id' ); ?>><?php _e( 'Link ID' ); ?></option>
-			<option value="rand"<?php selected( $instance['orderby'], 'rand' ); ?>><?php _e( 'Random' ); ?></option>
+			<option value="rand"<?php selected( $instance['orderby'], 'rand' ); ?>><?php _ex( 'Random', 'Links widget' ); ?></option>
 		</select>
 		</p>
 		<p>
@@ -355,7 +355,7 @@
 
 	function widget( $args, $instance ) {
 		extract($args);
-		$title = apply_filters('widget_title', empty($instance['title']) ? '&nbsp;' : $instance['title'], $instance, $this->id_base);
+		$title = apply_filters('widget_title', empty($instance['title']) ? '' : $instance['title'], $instance, $this->id_base);
 		echo $before_widget;
 		if ( $title )
 			echo $before_title . $title . $after_title;
@@ -536,9 +536,9 @@
 		parent::__construct('recent-posts', __('Recent Posts'), $widget_ops);
 		$this->alt_option_name = 'widget_recent_entries';
 
-		add_action( 'save_post', array(&$this, 'flush_widget_cache') );
-		add_action( 'deleted_post', array(&$this, 'flush_widget_cache') );
-		add_action( 'switch_theme', array(&$this, 'flush_widget_cache') );
+		add_action( 'save_post', array($this, 'flush_widget_cache') );
+		add_action( 'deleted_post', array($this, 'flush_widget_cache') );
+		add_action( 'switch_theme', array($this, 'flush_widget_cache') );
 	}
 
 	function widget($args, $instance) {
@@ -561,6 +561,7 @@
 		$title = apply_filters('widget_title', empty($instance['title']) ? __('Recent Posts') : $instance['title'], $instance, $this->id_base);
 		if ( empty( $instance['number'] ) || ! $number = absint( $instance['number'] ) )
  			$number = 10;
+		$show_date = isset( $instance['show_date'] ) ? $instance['show_date'] : false;
 
 		$r = new WP_Query( apply_filters( 'widget_posts_args', array( 'posts_per_page' => $number, 'no_found_rows' => true, 'post_status' => 'publish', 'ignore_sticky_posts' => true ) ) );
 		if ($r->have_posts()) :
@@ -568,8 +569,13 @@
 		<?php echo $before_widget; ?>
 		<?php if ( $title ) echo $before_title . $title . $after_title; ?>
 		<ul>
-		<?php  while ($r->have_posts()) : $r->the_post(); ?>
-		<li><a href="<?php the_permalink() ?>" title="<?php echo esc_attr(get_the_title() ? get_the_title() : get_the_ID()); ?>"><?php if ( get_the_title() ) the_title(); else the_ID(); ?></a></li>
+		<?php while ( $r->have_posts() ) : $r->the_post(); ?>
+			<li>
+				<a href="<?php the_permalink() ?>" title="<?php echo esc_attr( get_the_title() ? get_the_title() : get_the_ID() ); ?>"><?php if ( get_the_title() ) the_title(); else the_ID(); ?></a>
+			<?php if ( $show_date ) : ?>
+				<span class="post-date"><?php echo get_the_date(); ?></span>
+			<?php endif; ?>
+			</li>
 		<?php endwhile; ?>
 		</ul>
 		<?php echo $after_widget; ?>
@@ -587,6 +593,7 @@
 		$instance = $old_instance;
 		$instance['title'] = strip_tags($new_instance['title']);
 		$instance['number'] = (int) $new_instance['number'];
+		$instance['show_date'] = (bool) $new_instance['show_date'];
 		$this->flush_widget_cache();
 
 		$alloptions = wp_cache_get( 'alloptions', 'options' );
@@ -601,14 +608,18 @@
 	}
 
 	function form( $instance ) {
-		$title = isset($instance['title']) ? esc_attr($instance['title']) : '';
-		$number = isset($instance['number']) ? absint($instance['number']) : 5;
+		$title     = isset( $instance['title'] ) ? esc_attr( $instance['title'] ) : '';
+		$number    = isset( $instance['number'] ) ? absint( $instance['number'] ) : 5;
+		$show_date = isset( $instance['show_date'] ) ? (bool) $instance['show_date'] : false;
 ?>
-		<p><label for="<?php echo $this->get_field_id('title'); ?>"><?php _e('Title:'); ?></label>
-		<input class="widefat" id="<?php echo $this->get_field_id('title'); ?>" name="<?php echo $this->get_field_name('title'); ?>" type="text" value="<?php echo $title; ?>" /></p>
+		<p><label for="<?php echo $this->get_field_id( 'title' ); ?>"><?php _e( 'Title:' ); ?></label>
+		<input class="widefat" id="<?php echo $this->get_field_id( 'title' ); ?>" name="<?php echo $this->get_field_name( 'title' ); ?>" type="text" value="<?php echo $title; ?>" /></p>
 
-		<p><label for="<?php echo $this->get_field_id('number'); ?>"><?php _e('Number of posts to show:'); ?></label>
-		<input id="<?php echo $this->get_field_id('number'); ?>" name="<?php echo $this->get_field_name('number'); ?>" type="text" value="<?php echo $number; ?>" size="3" /></p>
+		<p><label for="<?php echo $this->get_field_id( 'number' ); ?>"><?php _e( 'Number of posts to show:' ); ?></label>
+		<input id="<?php echo $this->get_field_id( 'number' ); ?>" name="<?php echo $this->get_field_name( 'number' ); ?>" type="text" value="<?php echo $number; ?>" size="3" /></p>
+
+		<p><input class="checkbox" type="checkbox" <?php checked( $show_date ); ?> id="<?php echo $this->get_field_id( 'show_date' ); ?>" name="<?php echo $this->get_field_name( 'show_date' ); ?>" />
+		<label for="<?php echo $this->get_field_id( 'show_date' ); ?>"><?php _e( 'Display post date?' ); ?></label></p>
 <?php
 	}
 }
@@ -626,10 +637,10 @@
 		$this->alt_option_name = 'widget_recent_comments';
 
 		if ( is_active_widget(false, false, $this->id_base) )
-			add_action( 'wp_head', array(&$this, 'recent_comments_style') );
+			add_action( 'wp_head', array($this, 'recent_comments_style') );
 
-		add_action( 'comment_post', array(&$this, 'flush_widget_cache') );
-		add_action( 'transition_comment_status', array(&$this, 'flush_widget_cache') );
+		add_action( 'comment_post', array($this, 'flush_widget_cache') );
+		add_action( 'transition_comment_status', array($this, 'flush_widget_cache') );
 	}
 
 	function recent_comments_style() {
@@ -675,6 +686,10 @@
 
 		$output .= '<ul id="recentcomments">';
 		if ( $comments ) {
+			// Prime cache for associated posts. (Prime post term cache if we need it for permalinks.)
+			$post_ids = array_unique( wp_list_pluck( $comments, 'comment_post_ID' ) );
+			_prime_post_caches( $post_ids, strpos( get_option( 'permalink_structure' ), '%category%' ), false );
+
 			foreach ( (array) $comments as $comment) {
 				$output .=  '<li class="recentcomments">' . /* translators: comments widget: 1: comment author, 2: post link */ sprintf(_x('%1$s on %2$s', 'widgets'), get_comment_author_link(), '<a href="' . esc_url( get_comment_link($comment->comment_ID) ) . '">' . get_the_title($comment->comment_post_ID) . '</a>') . '</li>';
 			}
@@ -829,7 +844,7 @@
 	$show_date     = (int) $show_date;
 
 	if ( !$rss->get_item_quantity() ) {
-		echo '<ul><li>' . __( 'An error has occurred; the feed is probably down. Try again later.' ) . '</li></ul>';
+		echo '<ul><li>' . __( 'An error has occurred, which probably means the feed is down. Try again later.' ) . '</li></ul>';
 		$rss->__destruct();
 		unset($rss);
 		return;
@@ -935,7 +950,7 @@
 	<select id="rss-items-<?php echo $number; ?>" name="widget-rss[<?php echo $number; ?>][items]">
 <?php
 		for ( $i = 1; $i <= 20; ++$i )
-			echo "<option value='$i' " . ( $items == $i ? "selected='selected'" : '' ) . ">$i</option>";
+			echo "<option value='$i' " . selected( $items, $i, false ) . ">$i</option>";
 ?>
 	</select></p>
 <?php endif; if ( $inputs['show_summary'] ) : ?>
@@ -1130,8 +1145,9 @@
 			<select id="<?php echo $this->get_field_id('nav_menu'); ?>" name="<?php echo $this->get_field_name('nav_menu'); ?>">
 		<?php
 			foreach ( $menus as $menu ) {
-				$selected = $nav_menu == $menu->term_id ? ' selected="selected"' : '';
-				echo '<option'. $selected .' value="'. $menu->term_id .'">'. $menu->name .'</option>';
+				echo '<option value="' . $menu->term_id . '"'
+					. selected( $nav_menu, $menu->term_id, false )
+					. '>'. $menu->name . '</option>';
 			}
 		?>
 			</select>
@@ -1158,7 +1174,8 @@
 
 	register_widget('WP_Widget_Archives');
 
-	register_widget('WP_Widget_Links');
+	if ( get_option( 'link_manager_enabled' ) )
+		register_widget('WP_Widget_Links');
 
 	register_widget('WP_Widget_Meta');
 
--- a/web/wp-includes/deprecated.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/deprecated.php	Wed Dec 19 17:46:52 2012 -0800
@@ -26,7 +26,7 @@
 function get_postdata($postid) {
 	_deprecated_function( __FUNCTION__, '1.5.1', 'get_post()' );
 
-	$post = &get_post($postid);
+	$post = get_post($postid);
 
 	$postdata = array (
 		'ID' => $post->ID,
@@ -57,14 +57,14 @@
  * @deprecated Use The Loop - {@link http://codex.wordpress.org/The_Loop Use new WordPress Loop}
  */
 function start_wp() {
-	global $wp_query, $post;
+	global $wp_query;
 
 	_deprecated_function( __FUNCTION__, '1.5', __('new WordPress Loop') );
 
 	// Since the old style loop is being used, advance the query iterator here.
 	$wp_query->next_post();
 
-	setup_postdata($post);
+	setup_postdata( get_post() );
 }
 
 /**
@@ -984,7 +984,7 @@
 
 		if ( $show_updated )
 			if (substr($row->link_updated_f, 0, 2) != '00')
-				$title .= ' ('.__('Last updated') . ' ' . date(get_option('links_updated_date_format'), $row->link_updated_f + (get_option('gmt_offset') * 3600)) . ')';
+				$title .= ' ('.__('Last updated') . ' ' . date(get_option('links_updated_date_format'), $row->link_updated_f + (get_option('gmt_offset') * HOUR_IN_SECONDS)) . ')';
 
 		if ( '' != $title )
 			$title = ' title="' . $title . '"';
@@ -1215,7 +1215,7 @@
  */
 function comments_rss() {
 	_deprecated_function( __FUNCTION__, '2.2', 'get_post_comments_feed_link()' );
-	return get_post_comments_feed_link();
+	return esc_url( get_post_comments_feed_link() );
 }
 
 /**
@@ -1892,7 +1892,7 @@
 function get_the_attachment_link($id = 0, $fullsize = false, $max_dims = false, $permalink = false) {
 	_deprecated_function( __FUNCTION__, '2.5', 'wp_get_attachment_link()' );
 	$id = (int) $id;
-	$_post = & get_post($id);
+	$_post = get_post($id);
 
 	if ( ('attachment' != $_post->post_type) || !$url = wp_get_attachment_url($_post->ID) )
 		return __('Missing Attachment');
@@ -1921,7 +1921,7 @@
 function get_attachment_icon_src( $id = 0, $fullsize = false ) {
 	_deprecated_function( __FUNCTION__, '2.5', 'wp_get_attachment_image_src()' );
 	$id = (int) $id;
-	if ( !$post = & get_post($id) )
+	if ( !$post = get_post($id) )
 		return false;
 
 	$file = get_attached_file( $post->ID );
@@ -1966,7 +1966,7 @@
 function get_attachment_icon( $id = 0, $fullsize = false, $max_dims = false ) {
 	_deprecated_function( __FUNCTION__, '2.5', 'wp_get_attachment_image()' );
 	$id = (int) $id;
-	if ( !$post = & get_post($id) )
+	if ( !$post = get_post($id) )
 		return false;
 
 	if ( !$src = get_attachment_icon_src( $post->ID, $fullsize ) )
@@ -2023,7 +2023,7 @@
 function get_attachment_innerHTML($id = 0, $fullsize = false, $max_dims = false) {
 	_deprecated_function( __FUNCTION__, '2.5', 'wp_get_attachment_image()' );
 	$id = (int) $id;
-	if ( !$post = & get_post($id) )
+	if ( !$post = get_post($id) )
 		return false;
 
 	if ( $innerHTML = get_attachment_icon($post->ID, $fullsize, $max_dims))
@@ -2801,7 +2801,7 @@
 	_deprecated_function( __FUNCTION__, '3.3' );
 
 	if ( ! empty( $GLOBALS['post'] ) && ! empty( $GLOBALS['post']->post_parent ) )
-		$post = & get_post($GLOBALS['post']->post_parent);
+		$post = get_post($GLOBALS['post']->post_parent);
 
 	if ( empty($post) )
 		return;
@@ -3097,7 +3097,7 @@
  * @return array Theme data.
  */
 function get_theme_data( $theme_file ) {
-	_deprecated_function( __FUNCTION__, 3.4, 'wp_get_theme()' );
+	_deprecated_function( __FUNCTION__, '3.4', 'wp_get_theme()' );
 	$theme = new WP_Theme( basename( dirname( $theme_file ) ), dirname( dirname( $theme_file ) ) );
 
 	$theme_data = array(
@@ -3133,7 +3133,7 @@
  * @param array $pages list of page objects
  */
 function update_page_cache( &$pages ) {
-	_deprecated_function( __FUNCTION__, 3.4, 'update_post_cache()' );
+	_deprecated_function( __FUNCTION__, '3.4', 'update_post_cache()' );
 
 	update_post_cache( $pages );
 }
@@ -3152,7 +3152,215 @@
  * @param int $id Page ID to clean
  */
 function clean_page_cache( $id ) {
-	_deprecated_function( __FUNCTION__, 3.4, 'clean_post_cache()' );
+	_deprecated_function( __FUNCTION__, '3.4', 'clean_post_cache()' );
 
 	clean_post_cache( $id );
 }
+
+/**
+ * Retrieve nonce action "Are you sure" message.
+ *
+ * Deprecated in 3.4.1 and 3.5.0. Backported to 3.3.3.
+ *
+ * @since 2.0.4
+ * @deprecated 3.4.1
+ * @deprecated Use wp_nonce_ays()
+ * @see wp_nonce_ays()
+ *
+ * @param string $action Nonce action.
+ * @return string Are you sure message.
+ */
+function wp_explain_nonce( $action ) {
+	_deprecated_function( __FUNCTION__, '3.4.1', 'wp_nonce_ays()' );
+	return __( 'Are you sure you want to do this?' );
+}
+
+/**
+ * Display "sticky" CSS class, if a post is sticky.
+ *
+ * @since 2.7.0
+ * @deprecated 3.5.0
+ * @deprecated Use post_class()
+ * @see post_class()
+ *
+ * @param int $post_id An optional post ID.
+ */
+function sticky_class( $post_id = null ) {
+	_deprecated_function( __FUNCTION__, '3.5', 'post_class()' );
+	if ( is_sticky( $post_id ) )
+		echo ' sticky';
+}
+
+/**
+ * Retrieve post ancestors.
+ *
+ * This is no longer needed as WP_Post lazy-loads the ancestors
+ * property with get_post_ancestors().
+ *
+ * @since 2.3.4
+ * @deprecated 3.5.0
+ * @see get_post_ancestors()
+ */
+function _get_post_ancestors( &$post ) {
+	_deprecated_function( __FUNCTION__, '3.5' );
+}
+
+/**
+ * Load an image from a string, if PHP supports it.
+ *
+ * @since 2.1.0
+ * @deprecated 3.5.0
+ * @see wp_get_image_editor()
+ *
+ * @param string $file Filename of the image to load.
+ * @return resource The resulting image resource on success, Error string on failure.
+ */
+function wp_load_image( $file ) {
+	_deprecated_function( __FUNCTION__, '3.5', 'wp_get_image_editor()' );
+
+	if ( is_numeric( $file ) )
+		$file = get_attached_file( $file );
+
+	if ( ! is_file( $file ) )
+		return sprintf(__('File &#8220;%s&#8221; doesn&#8217;t exist?'), $file);
+
+	if ( ! function_exists('imagecreatefromstring') )
+		return __('The GD image library is not installed.');
+
+	// Set artificially high because GD uses uncompressed images in memory
+	@ini_set( 'memory_limit', apply_filters( 'image_memory_limit', WP_MAX_MEMORY_LIMIT ) );
+	$image = imagecreatefromstring( file_get_contents( $file ) );
+
+	if ( !is_resource( $image ) )
+		return sprintf(__('File &#8220;%s&#8221; is not an image.'), $file);
+
+	return $image;
+}
+
+/**
+ * Scale down an image to fit a particular size and save a new copy of the image.
+ *
+ * The PNG transparency will be preserved using the function, as well as the
+ * image type. If the file going in is PNG, then the resized image is going to
+ * be PNG. The only supported image types are PNG, GIF, and JPEG.
+ *
+ * Some functionality requires API to exist, so some PHP version may lose out
+ * support. This is not the fault of WordPress (where functionality is
+ * downgraded, not actual defects), but of your PHP version.
+ *
+ * @since 2.5.0
+ * @deprecated 3.5.0
+ * @see wp_get_image_editor()
+ *
+ * @param string $file Image file path.
+ * @param int $max_w Maximum width to resize to.
+ * @param int $max_h Maximum height to resize to.
+ * @param bool $crop Optional. Whether to crop image or resize.
+ * @param string $suffix Optional. File suffix.
+ * @param string $dest_path Optional. New image file path.
+ * @param int $jpeg_quality Optional, default is 90. Image quality percentage.
+ * @return mixed WP_Error on failure. String with new destination path.
+ */
+function image_resize( $file, $max_w, $max_h, $crop = false, $suffix = null, $dest_path = null, $jpeg_quality = 90 ) {
+	_deprecated_function( __FUNCTION__, '3.5', 'wp_get_image_editor()' );
+
+	$editor = wp_get_image_editor( $file );
+	if ( is_wp_error( $editor ) )
+		return $editor;
+	$editor->set_quality( $jpeg_quality );
+
+	$resized = $editor->resize( $max_w, $max_h, $crop );
+	if ( is_wp_error( $resized ) )
+		return $resized;
+
+	$dest_file = $editor->generate_filename( $suffix, $dest_path );
+	$saved = $editor->save( $dest_file );
+
+	if ( is_wp_error( $saved ) )
+		return $saved;
+
+	return $dest_file;
+}
+
+/**
+ * Retrieve a single post, based on post ID.
+ *
+ * Has categories in 'post_category' property or key. Has tags in 'tags_input'
+ * property or key.
+ *
+ * @since 1.0.0
+ * @deprecated 3.5.0
+ * @see get_post()
+ *
+ * @param int $postid Post ID.
+ * @param string $mode How to return result, either OBJECT, ARRAY_N, or ARRAY_A.
+ * @return object|array Post object or array holding post contents and information
+ */
+function wp_get_single_post( $postid = 0, $mode = OBJECT ) {
+	_deprecated_function( __FUNCTION__, '3.5', 'get_post()' );
+	return get_post( $postid, $mode, 'edit' );
+}
+
+/**
+ * Check that the user login name and password is correct.
+ *
+ * @since 0.71
+ * @deprecated 3.5.0
+ * @deprecated Use wp_authenticate()
+ * @see wp_authenticate()
+ *
+ * @param string $user_login User name.
+ * @param string $user_pass User password.
+ * @return bool False if does not authenticate, true if username and password authenticates.
+ */
+function user_pass_ok($user_login, $user_pass) {
+	_deprecated_function( __FUNCTION__, '3.5', 'wp_authenticate()' );
+	$user = wp_authenticate( $user_login, $user_pass );
+	if ( is_wp_error( $user ) )
+		return false;
+
+	return true;
+}
+
+/**
+ * Callback formerly fired on the save_post hook. No longer needed.
+ *
+ * @since 2.3.0
+ * @deprecated 3.5.0
+ */
+function _save_post_hook() {}
+
+/**
+ * Check if the installed version of GD supports particular image type
+ *
+ * @since 2.9.0
+ * @deprecated 3.5.0
+ * see wp_image_editor_supports()
+ *
+ * @param string $mime_type
+ * @return bool
+ */
+function gd_edit_image_support($mime_type) {
+	_deprecated_function( __FUNCTION__, '3.5', 'wp_image_editor_supports()' );
+
+	if ( function_exists('imagetypes') ) {
+		switch( $mime_type ) {
+			case 'image/jpeg':
+				return (imagetypes() & IMG_JPG) != 0;
+			case 'image/png':
+				return (imagetypes() & IMG_PNG) != 0;
+			case 'image/gif':
+				return (imagetypes() & IMG_GIF) != 0;
+		}
+	} else {
+		switch( $mime_type ) {
+			case 'image/jpeg':
+				return function_exists('imagecreatefromjpeg');
+			case 'image/png':
+				return function_exists('imagecreatefrompng');
+			case 'image/gif':
+				return function_exists('imagecreatefromgif');
+		}
+	}
+	return false;
+}
--- a/web/wp-includes/feed-atom-comments.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/feed-atom-comments.php	Wed Dec 19 17:46:52 2012 -0800
@@ -16,11 +16,11 @@
 >
 	<title type="text"><?php
 		if ( is_singular() )
-			printf(ent2ncr(__('Comments on %s')), get_the_title_rss());
+			printf( ent2ncr( __( 'Comments on %s' ) ), get_the_title_rss() );
 		elseif ( is_search() )
-			printf(ent2ncr(__('Comments for %1$s searching on %2$s')), get_bloginfo_rss( 'name' ), get_search_query() );
+			printf( ent2ncr( __( 'Comments for %1$s searching on %2$s' ) ), get_bloginfo_rss( 'name' ), get_search_query() );
 		else
-			printf(ent2ncr(__('Comments for %s')), get_bloginfo_rss( 'name' ) . get_wp_title_rss());
+			printf( ent2ncr( __( 'Comments for %s' ) ), get_bloginfo_rss( 'name' ) . get_wp_title_rss() );
 	?></title>
 	<subtitle type="text"><?php bloginfo_rss('description'); ?></subtitle>
 
@@ -28,8 +28,8 @@
 
 <?php if ( is_singular() ) { ?>
 	<link rel="alternate" type="<?php bloginfo_rss('html_type'); ?>" href="<?php comments_link_feed(); ?>" />
-	<link rel="self" type="application/atom+xml" href="<?php echo get_post_comments_feed_link('', 'atom'); ?>" />
-	<id><?php echo get_post_comments_feed_link('', 'atom'); ?></id>
+	<link rel="self" type="application/atom+xml" href="<?php echo esc_url( get_post_comments_feed_link('', 'atom') ); ?>" />
+	<id><?php echo esc_url( get_post_comments_feed_link('', 'atom') ); ?></id>
 <?php } elseif(is_search()) { ?>
 	<link rel="alternate" type="<?php bloginfo_rss('html_type'); ?>" href="<?php echo home_url() . '?s=' . get_search_query(); ?>" />
 	<link rel="self" type="application/atom+xml" href="<?php echo get_search_comments_feed_link('', 'atom'); ?>" />
--- a/web/wp-includes/feed-atom.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/feed-atom.php	Wed Dec 19 17:46:52 2012 -0800
@@ -21,7 +21,7 @@
 
 	<updated><?php echo mysql2date('Y-m-d\TH:i:s\Z', get_lastpostmodified('GMT'), false); ?></updated>
 
-	<link rel="alternate" type="text/html" href="<?php bloginfo_rss('url') ?>" />
+	<link rel="alternate" type="<?php bloginfo_rss('html_type'); ?>" href="<?php bloginfo_rss('url') ?>" />
 	<id><?php bloginfo('atom_url'); ?></id>
 	<link rel="self" type="application/atom+xml" href="<?php self_link(); ?>" />
 
@@ -36,7 +36,7 @@
 			do_action('atom_author'); ?>
 		</author>
 		<title type="<?php html_type_rss(); ?>"><![CDATA[<?php the_title_rss() ?>]]></title>
-		<link rel="alternate" type="text/html" href="<?php the_permalink_rss() ?>" />
+		<link rel="alternate" type="<?php bloginfo_rss('html_type'); ?>" href="<?php the_permalink_rss() ?>" />
 		<id><?php the_guid() ; ?></id>
 		<updated><?php echo get_post_modified_time('Y-m-d\TH:i:s\Z', true); ?></updated>
 		<published><?php echo get_post_time('Y-m-d\TH:i:s\Z', true); ?></published>
@@ -47,8 +47,8 @@
 <?php endif; ?>
 <?php atom_enclosure(); ?>
 <?php do_action('atom_entry'); ?>
-		<link rel="replies" type="text/html" href="<?php the_permalink_rss() ?>#comments" thr:count="<?php echo get_comments_number()?>"/>
-		<link rel="replies" type="application/atom+xml" href="<?php echo get_post_comments_feed_link(0,'atom') ?>" thr:count="<?php echo get_comments_number()?>"/>
+		<link rel="replies" type="<?php bloginfo_rss('html_type'); ?>" href="<?php the_permalink_rss() ?>#comments" thr:count="<?php echo get_comments_number()?>"/>
+		<link rel="replies" type="application/atom+xml" href="<?php echo esc_url( get_post_comments_feed_link(0, 'atom') ); ?>" thr:count="<?php echo get_comments_number()?>"/>
 		<thr:total><?php echo get_comments_number()?></thr:total>
 	</entry>
 	<?php endwhile ; ?>
--- a/web/wp-includes/feed-rss2-comments.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/feed-rss2-comments.php	Wed Dec 19 17:46:52 2012 -0800
@@ -19,11 +19,11 @@
 <channel>
 	<title><?php
 		if ( is_singular() )
-			printf(ent2ncr(__('Comments on: %s')), get_the_title_rss());
+			printf( ent2ncr( __( 'Comments on: %s' ) ), get_the_title_rss() );
 		elseif ( is_search() )
-			printf(ent2ncr(__('Comments for %s searching on %s')), get_bloginfo_rss( 'name' ), esc_attr($wp_query->query_vars['s']));
+			printf( ent2ncr( __( 'Comments for %1$s searching on %2$s' ) ), get_bloginfo_rss( 'name' ), get_search_query() );
 		else
-			printf(ent2ncr(__('Comments for %s')), get_bloginfo_rss( 'name' ) . get_wp_title_rss());
+			printf( ent2ncr( __( 'Comments for %s' ) ), get_bloginfo_rss( 'name' ) . get_wp_title_rss() );
 	?></title>
 	<atom:link href="<?php self_link(); ?>" rel="self" type="application/rss+xml" />
 	<link><?php (is_single()) ? the_permalink_rss() : bloginfo_rss("url") ?></link>
@@ -54,7 +54,7 @@
 		<description><?php echo ent2ncr(__('Protected Comments: Please enter your password to view comments.')); ?></description>
 		<content:encoded><![CDATA[<?php echo get_the_password_form() ?>]]></content:encoded>
 <?php else : // post pass ?>
-		<description><?php comment_text_rss() ?></description>
+		<description><![CDATA[<?php comment_text_rss() ?>]]></description>
 		<content:encoded><![CDATA[<?php comment_text() ?>]]></content:encoded>
 <?php endif; // post pass
 	do_action('commentrss2_item', $comment->comment_ID, $comment_post->ID);
--- a/web/wp-includes/feed-rss2.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/feed-rss2.php	Wed Dec 19 17:46:52 2012 -0800
@@ -41,13 +41,14 @@
 
 		<guid isPermaLink="false"><?php the_guid(); ?></guid>
 <?php if (get_option('rss_use_excerpt')) : ?>
-		<description><![CDATA[<?php the_excerpt_rss() ?>]]></description>
+		<description><![CDATA[<?php the_excerpt_rss(); ?>]]></description>
 <?php else : ?>
-		<description><![CDATA[<?php the_excerpt_rss() ?>]]></description>
-	<?php if ( strlen( $post->post_content ) > 0 ) : ?>
-		<content:encoded><![CDATA[<?php the_content_feed('rss2') ?>]]></content:encoded>
+		<description><![CDATA[<?php the_excerpt_rss(); ?>]]></description>
+	<?php $content = get_the_content_feed('rss2'); ?>
+	<?php if ( strlen( $content ) > 0 ) : ?>
+		<content:encoded><![CDATA[<?php echo $content; ?>]]></content:encoded>
 	<?php else : ?>
-		<content:encoded><![CDATA[<?php the_excerpt_rss() ?>]]></content:encoded>
+		<content:encoded><![CDATA[<?php the_excerpt_rss(); ?>]]></content:encoded>
 	<?php endif; ?>
 <?php endif; ?>
 		<wfw:commentRss><?php echo esc_url( get_post_comments_feed_link(null, 'rss2') ); ?></wfw:commentRss>
--- a/web/wp-includes/feed.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/feed.php	Wed Dec 19 17:46:52 2012 -0800
@@ -140,6 +140,7 @@
  * @see get_the_content()
  *
  * @param string $feed_type The type of feed. rss2 | atom | rss | rdf
+ * @return string The filtered content.
  */
 function get_the_content_feed($feed_type = null) {
 	if ( !$feed_type )
@@ -487,12 +488,7 @@
  */
 function self_link() {
 	$host = @parse_url(home_url());
-	$host = $host['host'];
-	echo esc_url(
-		( is_ssl() ? 'https' : 'http' ) . '://'
-		. $host
-		. stripslashes($_SERVER['REQUEST_URI'])
-		);
+	echo esc_url( set_url_scheme( 'http://' . $host['host'] . stripslashes($_SERVER['REQUEST_URI']) ) );
 }
 
 /**
@@ -531,10 +527,17 @@
 	require_once (ABSPATH . WPINC . '/class-feed.php');
 
 	$feed = new SimplePie();
+
+	$feed->set_sanitize_class( 'WP_SimplePie_Sanitize_KSES' );
+	// We must manually overwrite $feed->sanitize because SimplePie's
+	// constructor sets it before we have a chance to set the sanitization class
+	$feed->sanitize = new WP_SimplePie_Sanitize_KSES();
+
+	$feed->set_cache_class( 'WP_Feed_Cache' );
+	$feed->set_file_class( 'WP_SimplePie_File' );
+
 	$feed->set_feed_url($url);
-	$feed->set_cache_class('WP_Feed_Cache');
-	$feed->set_file_class('WP_SimplePie_File');
-	$feed->set_cache_duration(apply_filters('wp_feed_cache_transient_lifetime', 43200, $url));
+	$feed->set_cache_duration( apply_filters( 'wp_feed_cache_transient_lifetime', 12 * HOUR_IN_SECONDS, $url ) );
 	do_action_ref_array( 'wp_feed_options', array( &$feed, $url ) );
 	$feed->init();
 	$feed->handle_content_type();
--- a/web/wp-includes/formatting.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/formatting.php	Wed Dec 19 17:46:52 2012 -0800
@@ -100,7 +100,7 @@
 	}
 
 	// Transform into regexp sub-expression used in _wptexturize_pushpop_element
-	// Must do this everytime in case plugins use these filters in a context sensitive manner
+	// Must do this every time in case plugins use these filters in a context sensitive manner
 	$no_texturize_tags = '(' . implode('|', apply_filters('no_texturize_tags', $default_no_texturize_tags) ) . ')';
 	$no_texturize_shortcodes = '(' . implode('|', apply_filters('no_texturize_shortcodes', $default_no_texturize_shortcodes) ) . ')';
 
@@ -141,8 +141,7 @@
  * @param array $stack Array used as stack of opened tag elements
  * @param string $disabled_elements Tags to match against formatted as regexp sub-expression
  * @param string $opening Tag opening character, assumed to be 1 character long
- * @param string $opening Tag closing  character
- * @return object
+ * @param string $closing Tag closing character
  */
 function _wptexturize_pushpop_element($text, &$stack, $disabled_elements, $opening = '<', $closing = '>') {
 	// Check if it is a closing tag -- otherwise assume opening tag
@@ -221,7 +220,7 @@
 
 	$pee = preg_replace('|<br />\s*<br />|', "\n\n", $pee);
 	// Space things out a little
-	$allblocks = '(?:table|thead|tfoot|caption|col|colgroup|tbody|tr|td|th|div|dl|dd|dt|ul|ol|li|pre|select|option|form|map|area|blockquote|address|math|style|p|h[1-6]|hr|fieldset|legend|section|article|aside|hgroup|header|footer|nav|figure|figcaption|details|menu|summary)';
+	$allblocks = '(?:table|thead|tfoot|caption|col|colgroup|tbody|tr|td|th|div|dl|dd|dt|ul|ol|li|pre|select|option|form|map|area|blockquote|address|math|style|p|h[1-6]|hr|fieldset|noscript|samp|legend|section|article|aside|hgroup|header|footer|nav|figure|figcaption|details|menu|summary)';
 	$pee = preg_replace('!(<' . $allblocks . '[^>]*>)!', "\n$1", $pee);
 	$pee = preg_replace('!(</' . $allblocks . '>)!', "$1\n\n", $pee);
 	$pee = str_replace(array("\r\n", "\r"), "\n", $pee); // cross-platform newlines
@@ -264,7 +263,7 @@
  * @since 3.1.0
  * @access private
  * @param array $matches preg_replace_callback matches array
- * @returns string
+ * @return string
  */
 function _autop_newline_preservation_helper( $matches ) {
 	return str_replace("\n", "<WPPreserveNewline />", $matches[0]);
@@ -296,7 +295,7 @@
 		. '('                                // 1: The shortcode
 		.     '\\['                          // Opening bracket
 		.     "($tagregexp)"                 // 2: Shortcode name
-		.     '\\b'                          // Word boundary
+		.     '(?![\\w-])'                   // Not followed by word character or hyphen
 		                                     // Unroll the loop: Inside the opening shortcode tag
 		.     '[^\\]\\/]*'                   // Not a closing bracket or forward slash
 		.     '(?:'
@@ -770,6 +769,20 @@
 		chr(225).chr(187).chr(164) => 'U', chr(225).chr(187).chr(165) => 'u',
 		chr(225).chr(187).chr(176) => 'U', chr(225).chr(187).chr(177) => 'u',
 		chr(225).chr(187).chr(180) => 'Y', chr(225).chr(187).chr(181) => 'y',
+		// Vowels with diacritic (Chinese, Hanyu Pinyin)
+		chr(201).chr(145) => 'a',
+		// macron
+		chr(199).chr(149) => 'U', chr(199).chr(150) => 'u',
+		// acute accent
+		chr(199).chr(151) => 'U', chr(199).chr(152) => 'u',
+		// caron
+		chr(199).chr(141) => 'A', chr(199).chr(142) => 'a',
+		chr(199).chr(143) => 'I', chr(199).chr(144) => 'i',
+		chr(199).chr(145) => 'O', chr(199).chr(146) => 'o',
+		chr(199).chr(147) => 'U', chr(199).chr(148) => 'u',
+		chr(199).chr(153) => 'U', chr(199).chr(154) => 'u',
+		// grave accent
+		chr(199).chr(155) => 'U', chr(199).chr(156) => 'u',
 		);
 
 		$string = strtr($string, $chars);
@@ -986,6 +999,8 @@
 			'%e2%80%9a', '%e2%80%9b', '%e2%80%9e', '%e2%80%9f',
 			// copy, reg, deg, hellip and trade
 			'%c2%a9', '%c2%ae', '%c2%b0', '%e2%80%a6', '%e2%84%a2',
+			// grave accent, acute accent, macron, caron
+			'%cc%80', '%cc%81', '%cc%84', '%cc%8c',
 		), '', $title );
 
 		// Convert times to x
@@ -1009,7 +1024,7 @@
  * @since 2.5.1
  *
  * @param string $orderby Order by string to be checked.
- * @return string|false Returns the order by clause if it is a match, false otherwise.
+ * @return string|bool Returns the order by clause if it is a match, false otherwise.
  */
 function sanitize_sql_orderby( $orderby ){
 	preg_match('/^\s*([a-z0-9_]+(\s+(ASC|DESC))?(\s*,\s*|\s*$))+|^\s*RAND\(\s*\)\s*$/i', $orderby, $obmatches);
@@ -1156,8 +1171,10 @@
 	$stacksize = 0;
 	$tagqueue = '';
 	$newtext = '';
-	$single_tags = array( 'br', 'hr', 'img', 'input' ); // Known single-entity/self-closing tags
-	$nestable_tags = array( 'blockquote', 'div', 'span', 'q' ); // Tags that can be immediately nested within themselves
+	// Known single-entity/self-closing tags
+	$single_tags = array( 'area', 'base', 'basefont', 'br', 'col', 'command', 'embed', 'frame', 'hr', 'img', 'input', 'isindex', 'link', 'meta', 'param', 'source' );
+	// Tags that can be immediately nested within themselves
+	$nestable_tags = array( 'blockquote', 'div', 'object', 'q', 'span' );
 
 	// WP bug fix for comments - in case you REALLY meant to type '< !--'
 	$text = str_replace('< !--', '<    !--', $text);
@@ -1204,26 +1221,35 @@
 
 			// Tag Cleaning
 
-			// If self-closing or '', don't do anything.
-			if ( substr($regex[2],-1) == '/' || $tag == '' ) {
+			// If it's an empty tag "< >", do nothing
+			if ( '' == $tag ) {
 				// do nothing
 			}
+			// ElseIf it presents itself as a self-closing tag...
+			elseif ( substr( $regex[2], -1 ) == '/' ) {
+				// ...but it isn't a known single-entity self-closing tag, then don't let it be treated as such and
+				// immediately close it with a closing tag (the tag will encapsulate no text as a result)
+				if ( ! in_array( $tag, $single_tags ) )
+					$regex[2] = trim( substr( $regex[2], 0, -1 ) ) . "></$tag";
+			}
 			// ElseIf it's a known single-entity tag but it doesn't close itself, do so
 			elseif ( in_array($tag, $single_tags) ) {
 				$regex[2] .= '/';
-			} else {	// Push the tag onto the stack
+			}
+			// Else it's not a single-entity tag
+			else {
 				// If the top of the stack is the same as the tag we want to push, close previous tag
 				if ( $stacksize > 0 && !in_array($tag, $nestable_tags) && $tagstack[$stacksize - 1] == $tag ) {
-					$tagqueue = '</' . array_pop ($tagstack) . '>';
+					$tagqueue = '</' . array_pop( $tagstack ) . '>';
 					$stacksize--;
 				}
-				$stacksize = array_push ($tagstack, $tag);
+				$stacksize = array_push( $tagstack, $tag );
 			}
 
 			// Attributes
 			$attributes = $regex[2];
-			if( !empty($attributes) )
-				$attributes = ' '.$attributes;
+			if( ! empty( $attributes ) && $attributes[0] != '>' )
+				$attributes = ' ' . $attributes;
 
 			$tag = '<' . $tag . $attributes . '>';
 			//If already queuing a close tag, then put this tag on, too
@@ -1381,8 +1407,8 @@
  *
  * @since 2.0.0
  *
- * @param array|string $value The array or string to be stripped.
- * @return array|string Stripped array (or string in the callback).
+ * @param mixed $value The value to be stripped.
+ * @return mixed Stripped value.
  */
 function stripslashes_deep($value) {
 	if ( is_array($value) ) {
@@ -1392,7 +1418,7 @@
 		foreach ($vars as $key=>$data) {
 			$value->{$key} = stripslashes_deep( $data );
 		}
-	} else {
+	} elseif ( is_string( $value ) ) {
 		$value = stripslashes($value);
 	}
 
@@ -1623,8 +1649,8 @@
  * @since 3.4.0
  * @access private
  *
- * @param string $string The string to split
- * @param    int $goal   The desired chunk length.
+ * @param string $string The string to split.
+ * @param int $goal The desired chunk length.
  * @return array Numeric array of chunks.
  */
 function _split_str_by_whitespace( $string, $goal ) {
@@ -1822,7 +1848,6 @@
  * Convert to ASCII from email subjects.
  *
  * @since 1.2.0
- * @usedby wp_mail() handles charsets in email subjects
  *
  * @param string $string Subject line
  * @return string Converted string to ASCII
@@ -1839,11 +1864,12 @@
 }
 
 /**
- * Helper function to convert hex encoded chars to ascii
+ * Helper function to convert hex encoded chars to ASCII
  *
  * @since 3.1.0
  * @access private
- * @param array $match the preg_replace_callback matches array
+ * @param array $match The preg_replace_callback matches array
+ * @return array Converted chars
  */
 function _wp_iso_convert( $match ) {
 	return chr( hexdec( strtolower( $match[1] ) ) );
@@ -1866,19 +1892,25 @@
  */
 function get_gmt_from_date($string, $format = 'Y-m-d H:i:s') {
 	preg_match('#([0-9]{1,4})-([0-9]{1,2})-([0-9]{1,2}) ([0-9]{1,2}):([0-9]{1,2}):([0-9]{1,2})#', $string, $matches);
+	if ( ! $matches )
+		return date( $format, 0 );
+
 	$tz = get_option('timezone_string');
 	if ( $tz ) {
 		date_default_timezone_set( $tz );
-		$datetime = new DateTime( $string );
+		$datetime = date_create( $string );
+		if ( ! $datetime )
+			return date( $format, 0 );
+
 		$datetime->setTimezone( new DateTimeZone('UTC') );
 		$offset = $datetime->getOffset();
-		$datetime->modify( '+' . $offset / 3600 . ' hours');
+		$datetime->modify( '+' . $offset / HOUR_IN_SECONDS . ' hours');
 		$string_gmt = gmdate($format, $datetime->format('U'));
 
 		date_default_timezone_set('UTC');
 	} else {
 		$string_time = gmmktime($matches[4], $matches[5], $matches[6], $matches[2], $matches[3], $matches[1]);
-		$string_gmt = gmdate($format, $string_time - get_option('gmt_offset') * 3600);
+		$string_gmt = gmdate($format, $string_time - get_option('gmt_offset') * HOUR_IN_SECONDS);
 	}
 	return $string_gmt;
 }
@@ -1898,7 +1930,7 @@
 function get_date_from_gmt($string, $format = 'Y-m-d H:i:s') {
 	preg_match('#([0-9]{1,4})-([0-9]{1,2})-([0-9]{1,2}) ([0-9]{1,2}):([0-9]{1,2}):([0-9]{1,2})#', $string, $matches);
 	$string_time = gmmktime($matches[4], $matches[5], $matches[6], $matches[2], $matches[3], $matches[1]);
-	$string_localtime = gmdate($format, $string_time + get_option('gmt_offset')*3600);
+	$string_localtime = gmdate($format, $string_time + get_option('gmt_offset') * HOUR_IN_SECONDS);
 	return $string_localtime;
 }
 
@@ -1918,7 +1950,7 @@
 		$sign    = (substr($timezone, 0, 1) == '+') ? 1 : -1;
 		$hours   = intval(substr($timezone, 1, 2));
 		$minutes = intval(substr($timezone, 3, 4)) / 60;
-		$offset  = $sign * 3600 * ($hours + $minutes);
+		$offset  = $sign * HOUR_IN_SECONDS * ($hours + $minutes);
 	}
 	return $offset;
 }
@@ -1942,7 +1974,7 @@
 		if (!empty($date_bits[7])) { // we have a timezone, so let's compute an offset
 			$offset = iso8601_timezone_to_offset($date_bits[7]);
 		} else { // we don't have a timezone, so we assume user local timezone (not server's!)
-			$offset = 3600 * get_option('gmt_offset');
+			$offset = HOUR_IN_SECONDS * get_option('gmt_offset');
 		}
 
 		$timestamp = gmmktime($date_bits[4], $date_bits[5], $date_bits[6], $date_bits[2], $date_bits[3], $date_bits[1]);
@@ -2067,28 +2099,28 @@
  * @return string Human readable time difference.
  */
 function human_time_diff( $from, $to = '' ) {
-	if ( empty($to) )
+	if ( empty( $to ) )
 		$to = time();
-	$diff = (int) abs($to - $from);
-	if ($diff <= 3600) {
-		$mins = round($diff / 60);
-		if ($mins <= 1) {
+	$diff = (int) abs( $to - $from );
+	if ( $diff <= HOUR_IN_SECONDS ) {
+		$mins = round( $diff / MINUTE_IN_SECONDS );
+		if ( $mins <= 1 ) {
 			$mins = 1;
 		}
 		/* translators: min=minute */
-		$since = sprintf(_n('%s min', '%s mins', $mins), $mins);
-	} else if (($diff <= 86400) && ($diff > 3600)) {
-		$hours = round($diff / 3600);
-		if ($hours <= 1) {
+		$since = sprintf( _n( '%s min', '%s mins', $mins ), $mins );
+	} elseif ( ( $diff <= DAY_IN_SECONDS ) && ( $diff > HOUR_IN_SECONDS ) ) {
+		$hours = round( $diff / HOUR_IN_SECONDS );
+		if ( $hours <= 1 ) {
 			$hours = 1;
 		}
-		$since = sprintf(_n('%s hour', '%s hours', $hours), $hours);
-	} elseif ($diff >= 86400) {
-		$days = round($diff / 86400);
-		if ($days <= 1) {
+		$since = sprintf( _n( '%s hour', '%s hours', $hours ), $hours );
+	} elseif ( $diff >= DAY_IN_SECONDS ) {
+		$days = round( $diff / DAY_IN_SECONDS );
+		if ( $days <= 1 ) {
 			$days = 1;
 		}
-		$since = sprintf(_n('%s day', '%s days', $days), $days);
+		$since = sprintf( _n( '%s day', '%s days', $days ), $days );
 	}
 	return $since;
 }
@@ -2738,8 +2770,6 @@
 		case 'medium_size_h':
 		case 'large_size_w':
 		case 'large_size_h':
-		case 'embed_size_h':
-		case 'default_post_edit_rows':
 		case 'mailserver_port':
 		case 'comment_max_links':
 		case 'page_on_front':
@@ -2756,11 +2786,6 @@
 			$value = absint( $value );
 			break;
 
-		case 'embed_size_w':
-			if ( '' !== $value )
-				$value = absint( $value );
-			break;
-
 		case 'posts_per_page':
 		case 'posts_per_rss':
 			$value = (int) $value;
@@ -2779,9 +2804,7 @@
 
 		case 'blogdescription':
 		case 'blogname':
-			$value = addslashes($value);
-			$value = wp_filter_post_kses( $value ); // calls stripslashes then addslashes
-			$value = stripslashes($value);
+			$value = wp_kses_post( $value );
 			$value = esc_html( $value );
 			break;
 
@@ -2789,17 +2812,29 @@
 			$value = preg_replace('/[^a-zA-Z0-9_-]/', '', $value); // strips slashes
 			break;
 
+		case 'blog_public':
+			// This is the value if the settings checkbox is not checked on POST. Don't rely on this.
+			if ( null === $value )
+				$value = 1;
+			else
+				$value = intval( $value );
+			break;
+
 		case 'date_format':
 		case 'time_format':
 		case 'mailserver_url':
 		case 'mailserver_login':
 		case 'mailserver_pass':
+		case 'upload_path':
+			$value = strip_tags( $value );
+			$value = wp_kses_data( $value );
+			break;
+
 		case 'ping_sites':
-		case 'upload_path':
-			$value = strip_tags($value);
-			$value = addslashes($value);
-			$value = wp_filter_kses($value); // calls stripslashes then addslashes
-			$value = stripslashes($value);
+			$value = explode( "\n", $value );
+			$value = array_filter( array_map( 'trim', $value ) );
+			$value = array_filter( array_map( 'esc_url_raw', $value ) );
+			$value = implode( "\n", $value );
 			break;
 
 		case 'gmt_offset':
@@ -2832,6 +2867,32 @@
 				$value = get_option( $option );
 			break;
 
+		case 'illegal_names':
+			if ( ! is_array( $value ) )
+				$value = explode( "\n", $value );
+
+			$value = array_values( array_filter( array_map( 'trim', $value ) ) );
+
+			if ( ! $value )
+				$value = '';
+			break;
+
+		case 'limited_email_domains':
+		case 'banned_email_domains':
+			if ( ! is_array( $value ) )
+				$value = explode( "\n", $value );
+
+			$domains = array_values( array_filter( array_map( 'trim', $value ) ) );
+			$value = array();
+
+			foreach ( $domains as $domain ) {
+				if ( ! preg_match( '/(--|\.\.)/', $domain ) && preg_match( '|^([a-zA-Z0-9-\.])+$|', $domain ) )
+					$value[] = $domain;
+			}
+			if ( ! $value )
+				$value = '';
+			break;
+
 		case 'timezone_string':
 			$allowed_zones = timezone_identifiers_list();
 			if ( ! in_array( $value, $allowed_zones ) && ! empty( $value ) ) {
@@ -3189,7 +3250,7 @@
  * @return string
  */
 function wp_basename( $path, $suffix = '' ) {
-	return urldecode( basename( str_replace( '%2F', '/', urlencode( $path ) ), $suffix ) );
+	return urldecode( basename( str_replace( array( '%2F', '%5C' ), '/', urlencode( $path ) ), $suffix ) );
 }
 
 /**
@@ -3206,7 +3267,7 @@
 	// Still here? Use the more judicious replacement
 	static $dblq = false;
 	if ( false === $dblq )
-		$dblq = _x('&#8220;', 'opening curly quote');
+		$dblq = _x( '&#8220;', 'opening curly double quote' );
 	return str_replace(
 		array( ' Wordpress', '&#8216;Wordpress', $dblq . 'Wordpress', '>Wordpress', '(Wordpress' ),
 		array( ' WordPress', '&#8216;WordPress', $dblq . 'WordPress', '>WordPress', '(WordPress' ),
--- a/web/wp-includes/functions.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/functions.php	Wed Dec 19 17:46:52 2012 -0800
@@ -59,10 +59,10 @@
 function current_time( $type, $gmt = 0 ) {
 	switch ( $type ) {
 		case 'mysql':
-			return ( $gmt ) ? gmdate( 'Y-m-d H:i:s' ) : gmdate( 'Y-m-d H:i:s', ( time() + ( get_option( 'gmt_offset' ) * 3600 ) ) );
+			return ( $gmt ) ? gmdate( 'Y-m-d H:i:s' ) : gmdate( 'Y-m-d H:i:s', ( time() + ( get_option( 'gmt_offset' ) * HOUR_IN_SECONDS ) ) );
 			break;
 		case 'timestamp':
-			return ( $gmt ) ? time() : time() + ( get_option( 'gmt_offset' ) * 3600 );
+			return ( $gmt ) ? time() : time() + ( get_option( 'gmt_offset' ) * HOUR_IN_SECONDS );
 			break;
 	}
 }
@@ -214,8 +214,8 @@
 	if ( $weekday < $start_of_week )
 		$weekday += 7;
 
-	$start = $day - 86400 * ( $weekday - $start_of_week ); // The most recent week start day on or before $day
-	$end = $start + 604799; // $start + 7 days - 1 second
+	$start = $day - DAY_IN_SECONDS * ( $weekday - $start_of_week ); // The most recent week start day on or before $day
+	$end = $start + 7 * DAY_IN_SECONDS - 1; // $start + 7 days - 1 second
 	return compact( 'start', 'end' );
 }
 
@@ -458,7 +458,7 @@
 				if ( false !== $url_parts ) {
 					$extension = pathinfo( $url_parts['path'], PATHINFO_EXTENSION );
 					if ( !empty( $extension ) ) {
-						foreach ( get_allowed_mime_types( ) as $exts => $mime ) {
+						foreach ( wp_get_mime_types() as $exts => $mime ) {
 							if ( preg_match( '!^(' . $exts . ')$!i', $extension ) ) {
 								$type = $mime;
 								break;
@@ -637,16 +637,17 @@
  */
 function add_query_arg() {
 	$ret = '';
-	if ( is_array( func_get_arg(0) ) ) {
-		if ( @func_num_args() < 2 || false === @func_get_arg( 1 ) )
+	$args = func_get_args();
+	if ( is_array( $args[0] ) ) {
+		if ( count( $args ) < 2 || false === $args[1] )
 			$uri = $_SERVER['REQUEST_URI'];
 		else
-			$uri = @func_get_arg( 1 );
+			$uri = $args[1];
 	} else {
-		if ( @func_num_args() < 3 || false === @func_get_arg( 2 ) )
+		if ( count( $args ) < 3 || false === $args[2] )
 			$uri = $_SERVER['REQUEST_URI'];
 		else
-			$uri = @func_get_arg( 2 );
+			$uri = $args[2];
 	}
 
 	if ( $frag = strstr( $uri, '#' ) )
@@ -654,9 +655,12 @@
 	else
 		$frag = '';
 
-	if ( preg_match( '|^https?://|i', $uri, $matches ) ) {
-		$protocol = $matches[0];
-		$uri = substr( $uri, strlen( $protocol ) );
+	if ( 0 === stripos( 'http://', $uri ) ) {
+		$protocol = 'http://';
+		$uri = substr( $uri, 7 );
+	} elseif ( 0 === stripos( 'https://', $uri ) ) {
+		$protocol = 'https://';
+		$uri = substr( $uri, 8 );
 	} else {
 		$protocol = '';
 	}
@@ -670,7 +674,7 @@
 			$base = $parts[0] . '?';
 			$query = $parts[1];
 		}
-	} elseif ( !empty( $protocol ) || strpos( $uri, '=' ) === false ) {
+	} elseif ( $protocol || strpos( $uri, '=' ) === false ) {
 		$base = $uri . '?';
 		$query = '';
 	} else {
@@ -680,14 +684,14 @@
 
 	wp_parse_str( $query, $qs );
 	$qs = urlencode_deep( $qs ); // this re-URL-encodes things that were already in the query string
-	if ( is_array( func_get_arg( 0 ) ) ) {
-		$kayvees = func_get_arg( 0 );
+	if ( is_array( $args[0] ) ) {
+		$kayvees = $args[0];
 		$qs = array_merge( $qs, $kayvees );
 	} else {
-		$qs[func_get_arg( 0 )] = func_get_arg( 1 );
+		$qs[ $args[0] ] = $args[1];
 	}
 
-	foreach ( (array) $qs as $k => $v ) {
+	foreach ( $qs as $k => $v ) {
 		if ( $v === false )
 			unset( $qs[$k] );
 	}
@@ -898,7 +902,7 @@
 function wp_get_nocache_headers() {
 	$headers = array(
 		'Expires' => 'Wed, 11 Jan 1984 05:00:00 GMT',
-		'Last-Modified' => gmdate( 'D, d M Y H:i:s' ) . ' GMT',
+		'Last-Modified' => '',
 		'Cache-Control' => 'no-cache, must-revalidate, max-age=0',
 		'Pragma' => 'no-cache',
 	);
@@ -922,6 +926,8 @@
 	$headers = wp_get_nocache_headers();
 	foreach( $headers as $name => $field_value )
 		@header("{$name}: {$field_value}");
+	if ( empty( $headers['Last-Modified'] ) && function_exists( 'header_remove' ) )
+		@header_remove( 'Last-Modified' );
 }
 
 /**
@@ -930,7 +936,7 @@
  * @since 2.1.0
  */
 function cache_javascript_headers() {
-	$expiresOffset = 864000; // 10 days
+	$expiresOffset = 10 * DAY_IN_SECONDS;
 	header( "Content-Type: text/javascript; charset=" . get_bloginfo( 'charset' ) );
 	header( "Vary: Accept-Encoding" ); // Handle proxies
 	header( "Expires: " . gmdate( "D, d M Y H:i:s", time() + $expiresOffset ) . " GMT" );
@@ -1291,9 +1297,21 @@
  * @return bool Whether the path was created. True if path already exists.
  */
 function wp_mkdir_p( $target ) {
+	$wrapper = null;
+
+	// strip the protocol
+	if( wp_is_stream( $target ) ) {
+		list( $wrapper, $target ) = explode( '://', $target, 2 );
+	}
+
 	// from php.net/mkdir user contributed notes
 	$target = str_replace( '//', '/', $target );
 
+	// put the wrapper back on the target
+	if( $wrapper !== null ) {
+		$target = $wrapper . '://' . $target;
+	}
+
 	// safe mode fails with a trailing slash under certain PHP versions.
 	$target = rtrim($target, '/'); // Use rtrim() instead of untrailingslashit to avoid formatting.php dependency.
 	if ( empty($target) )
@@ -1363,9 +1381,13 @@
 
 /**
  * Determines a writable directory for temporary files.
- * Function's preference is to WP_CONTENT_DIR followed by the return value of <code>sys_get_temp_dir()</code>, before finally defaulting to /tmp/
- *
- * In the event that this function does not find a writable location, It may be overridden by the <code>WP_TEMP_DIR</code> constant in your <code>wp-config.php</code> file.
+ * Function's preference is the return value of <code>sys_get_temp_dir()</code>,
+ * followed by your PHP temporary upload directory, followed by WP_CONTENT_DIR,
+ * before finally defaulting to /tmp/
+ *
+ * In the event that this function does not find a writable location,
+ * It may be overridden by the <code>WP_TEMP_DIR</code> constant in
+ * your <code>wp-config.php</code> file.
  *
  * @since 2.5.0
  *
@@ -1377,27 +1399,60 @@
 		return trailingslashit(WP_TEMP_DIR);
 
 	if ( $temp )
-		return trailingslashit($temp);
-
-	$temp = WP_CONTENT_DIR . '/';
-	if ( is_dir($temp) && @is_writable($temp) )
-		return $temp;
-
-	if  ( function_exists('sys_get_temp_dir') ) {
+		return trailingslashit( rtrim( $temp, '\\' ) );
+
+	$is_win = ( 'WIN' === strtoupper( substr( PHP_OS, 0, 3 ) ) );
+
+	if ( function_exists('sys_get_temp_dir') ) {
 		$temp = sys_get_temp_dir();
-		if ( @is_writable($temp) )
-			return trailingslashit($temp);
+		if ( @is_dir( $temp ) && ( $is_win ? win_is_writable( $temp ) : @is_writable( $temp ) ) ) {
+			return trailingslashit( rtrim( $temp, '\\' ) );
+		}
 	}
 
 	$temp = ini_get('upload_tmp_dir');
-	if ( is_dir($temp) && @is_writable($temp) )
-		return trailingslashit($temp);
+	if ( is_dir( $temp ) && ( $is_win ? win_is_writable( $temp ) : @is_writable( $temp ) ) )
+		return trailingslashit( rtrim( $temp, '\\' ) );
+
+	$temp = WP_CONTENT_DIR . '/';
+	if ( is_dir( $temp ) && ( $is_win ? win_is_writable( $temp ) : @is_writable( $temp ) ) )
+		return $temp;
 
 	$temp = '/tmp/';
 	return $temp;
 }
 
 /**
+ * Workaround for Windows bug in is_writable() function
+ *
+ * @since 2.8.0
+ *
+ * @param string $path
+ * @return bool
+ */
+function win_is_writable( $path ) {
+	/* will work in despite of Windows ACLs bug
+	 * NOTE: use a trailing slash for folders!!!
+	 * see http://bugs.php.net/bug.php?id=27609
+	 * see http://bugs.php.net/bug.php?id=30931
+	 */
+
+	if ( $path[strlen( $path ) - 1] == '/' ) // recursively return a temporary file path
+		return win_is_writable( $path . uniqid( mt_rand() ) . '.tmp');
+	else if ( is_dir( $path ) )
+		return win_is_writable( $path . '/' . uniqid( mt_rand() ) . '.tmp' );
+	// check tmp file for read/write capabilities
+	$should_delete_tmp_file = !file_exists( $path );
+	$f = @fopen( $path, 'a' );
+	if ( $f === false )
+		return false;
+	fclose( $f );
+	if ( $should_delete_tmp_file )
+		unlink( $path );
+	return true;
+}
+
+/**
  * Get an array containing the current upload directory's path and url.
  *
  * Checks the 'upload_path' option, which should be from the web root folder,
@@ -1431,21 +1486,16 @@
  * @return array See above for description.
  */
 function wp_upload_dir( $time = null ) {
-	global $switched;
 	$siteurl = get_option( 'siteurl' );
-	$upload_path = get_option( 'upload_path' );
-	$upload_path = trim($upload_path);
-	$main_override = is_multisite() && defined( 'MULTISITE' ) && is_main_site();
-	if ( empty($upload_path) ) {
+	$upload_path = trim( get_option( 'upload_path' ) );
+
+	if ( empty( $upload_path ) || 'wp-content/uploads' == $upload_path ) {
 		$dir = WP_CONTENT_DIR . '/uploads';
+	} elseif ( 0 !== strpos( $upload_path, ABSPATH ) ) {
+		// $dir is absolute, $upload_path is (maybe) relative to ABSPATH
+		$dir = path_join( ABSPATH, $upload_path );
 	} else {
 		$dir = $upload_path;
-		if ( 'wp-content/uploads' == $upload_path ) {
-			$dir = WP_CONTENT_DIR . '/uploads';
-		} elseif ( 0 !== strpos($dir, ABSPATH) ) {
-			// $dir is absolute, $upload_path is (maybe) relative to ABSPATH
-			$dir = path_join( ABSPATH, $dir );
-		}
 	}
 
 	if ( !$url = get_option( 'upload_url_path' ) ) {
@@ -1455,19 +1505,54 @@
 			$url = trailingslashit( $siteurl ) . $upload_path;
 	}
 
-	if ( defined('UPLOADS') && !$main_override && ( !isset( $switched ) || $switched === false ) ) {
+	// Obey the value of UPLOADS. This happens as long as ms-files rewriting is disabled.
+	// We also sometimes obey UPLOADS when rewriting is enabled -- see the next block.
+	if ( defined( 'UPLOADS' ) && ! ( is_multisite() && get_site_option( 'ms_files_rewriting' ) ) ) {
 		$dir = ABSPATH . UPLOADS;
 		$url = trailingslashit( $siteurl ) . UPLOADS;
 	}
 
-	if ( is_multisite() && !$main_override && ( !isset( $switched ) || $switched === false ) ) {
-		if ( defined( 'BLOGUPLOADDIR' ) )
-			$dir = untrailingslashit(BLOGUPLOADDIR);
-		$url = str_replace( UPLOADS, 'files', $url );
+	// If multisite (and if not the main site in a post-MU network)
+	if ( is_multisite() && ! ( is_main_site() && defined( 'MULTISITE' ) ) ) {
+
+		if ( ! get_site_option( 'ms_files_rewriting' ) ) {
+			// If ms-files rewriting is disabled (networks created post-3.5), it is fairly straightforward:
+			// Append sites/%d if we're not on the main site (for post-MU networks). (The extra directory
+			// prevents a four-digit ID from conflicting with a year-based directory for the main site.
+			// But if a MU-era network has disabled ms-files rewriting manually, they don't need the extra
+			// directory, as they never had wp-content/uploads for the main site.)
+
+			if ( defined( 'MULTISITE' ) )
+				$ms_dir = '/sites/' . get_current_blog_id();
+			else
+				$ms_dir = '/' . get_current_blog_id();
+
+			$dir .= $ms_dir;
+			$url .= $ms_dir;
+
+		} elseif ( defined( 'UPLOADS' ) && ! ms_is_switched() ) {
+			// Handle the old-form ms-files.php rewriting if the network still has that enabled.
+			// When ms-files rewriting is enabled, then we only listen to UPLOADS when:
+			//   1) we are not on the main site in a post-MU network,
+			//      as wp-content/uploads is used there, and
+			//   2) we are not switched, as ms_upload_constants() hardcodes
+			//      these constants to reflect the original blog ID.
+			//
+			// Rather than UPLOADS, we actually use BLOGUPLOADDIR if it is set, as it is absolute.
+			// (And it will be set, see ms_upload_constants().) Otherwise, UPLOADS can be used, as
+			// as it is relative to ABSPATH. For the final piece: when UPLOADS is used with ms-files
+			// rewriting in multisite, the resulting URL is /files. (#WP22702 for background.)
+
+			if ( defined( 'BLOGUPLOADDIR' ) )
+				$dir = untrailingslashit( BLOGUPLOADDIR );
+			else
+				$dir = ABSPATH . UPLOADS;
+			$url = trailingslashit( $siteurl ) . 'files';
+		}
 	}
 
-	$bdir = $dir;
-	$burl = $url;
+	$basedir = $dir;
+	$baseurl = $url;
 
 	$subdir = '';
 	if ( get_option( 'uploads_use_yearmonth_folders' ) ) {
@@ -1482,7 +1567,15 @@
 	$dir .= $subdir;
 	$url .= $subdir;
 
-	$uploads = apply_filters( 'upload_dir', array( 'path' => $dir, 'url' => $url, 'subdir' => $subdir, 'basedir' => $bdir, 'baseurl' => $burl, 'error' => false ) );
+	$uploads = apply_filters( 'upload_dir',
+		array(
+			'path'    => $dir,
+			'url'     => $url,
+			'subdir'  => $subdir,
+			'basedir' => $basedir,
+			'baseurl' => $baseurl,
+			'error'   => false,
+		) );
 
 	// Make sure we have an uploads dir
 	if ( ! wp_mkdir_p( $uploads['path'] ) ) {
@@ -1492,7 +1585,7 @@
 			$error_path = basename( $uploads['basedir'] ) . $uploads['subdir'];
 
 		$message = sprintf( __( 'Unable to create directory %s. Is its parent directory writable by the server?' ), $error_path );
-		return array( 'error' => $message );
+		$uploads['error'] = $message;
 	}
 
 	return $uploads;
@@ -1591,7 +1684,7 @@
 		return array( 'error' => __( 'Empty filename' ) );
 
 	$wp_filetype = wp_check_filetype( $name );
-	if ( !$wp_filetype['ext'] )
+	if ( ! $wp_filetype['ext'] && ! current_user_can( 'unfiltered_upload' ) )
 		return array( 'error' => __( 'Invalid file type' ) );
 
 	$upload = wp_upload_dir( $time );
@@ -1651,13 +1744,13 @@
  */
 function wp_ext2type( $ext ) {
 	$ext2type = apply_filters( 'ext2type', array(
-		'audio'       => array( 'aac', 'ac3',  'aif',  'aiff', 'm3a',  'm4a',   'm4b', 'mka', 'mp1', 'mp2',  'mp3', 'ogg', 'oga', 'ram', 'wav', 'wma' ),
-		'video'       => array( 'asf', 'avi',  'divx', 'dv',   'flv',  'm4v',   'mkv', 'mov', 'mp4', 'mpeg', 'mpg', 'mpv', 'ogm', 'ogv', 'qt',  'rm', 'vob', 'wmv' ),
-		'document'    => array( 'doc', 'docx', 'docm', 'dotm', 'odt',  'pages', 'pdf', 'rtf', 'wp',  'wpd' ),
-		'spreadsheet' => array( 'numbers',     'ods',  'xls',  'xlsx', 'xlsb',  'xlsm' ),
-		'interactive' => array( 'key', 'ppt',  'pptx', 'pptm', 'odp',  'swf' ),
+		'audio'       => array( 'aac', 'ac3',  'aif',  'aiff', 'm3a',  'm4a',   'm4b',  'mka',  'mp1',  'mp2',  'mp3', 'ogg', 'oga', 'ram', 'wav', 'wma' ),
+		'video'       => array( 'asf', 'avi',  'divx', 'dv',   'flv',  'm4v',   'mkv',  'mov',  'mp4',  'mpeg', 'mpg', 'mpv', 'ogm', 'ogv', 'qt',  'rm', 'vob', 'wmv' ),
+		'document'    => array( 'doc', 'docx', 'docm', 'dotm', 'odt',  'pages', 'pdf',  'rtf',  'wp',   'wpd' ),
+		'spreadsheet' => array( 'numbers',     'ods',  'xls',  'xlsx', 'xlsm',  'xlsb' ),
+		'interactive' => array( 'swf', 'key',  'ppt',  'pptx', 'pptm', 'pps',   'ppsx', 'ppsm', 'sldx', 'sldm', 'odp' ),
 		'text'        => array( 'asc', 'csv',  'tsv',  'txt' ),
-		'archive'     => array( 'bz2', 'cab',  'dmg',  'gz',   'rar',  'sea',   'sit', 'sqx', 'tar', 'tgz',  'zip', '7z' ),
+		'archive'     => array( 'bz2', 'cab',  'dmg',  'gz',   'rar',  'sea',   'sit',  'sqx',  'tar',  'tgz',  'zip', '7z' ),
 		'code'        => array( 'css', 'htm',  'html', 'php',  'js' ),
 	));
 	foreach ( $ext2type as $type => $exts )
@@ -1763,101 +1856,114 @@
 }
 
 /**
+ * Retrieve list of mime types and file extensions.
+ *
+ * @since 3.5.0
+ *
+ * @uses apply_filters() Calls 'mime_types' on returned array. This filter should
+ * be used to add types, not remove them. To remove types use the upload_mimes filter.
+ *
+ * @return array Array of mime types keyed by the file extension regex corresponding to those types.
+ */
+function wp_get_mime_types() {
+	// Accepted MIME types are set here as PCRE unless provided.
+	return apply_filters( 'mime_types', array(
+	// Image formats
+	'jpg|jpeg|jpe' => 'image/jpeg',
+	'gif' => 'image/gif',
+	'png' => 'image/png',
+	'bmp' => 'image/bmp',
+	'tif|tiff' => 'image/tiff',
+	'ico' => 'image/x-icon',
+	// Video formats
+	'asf|asx|wax|wmv|wmx' => 'video/asf',
+	'avi' => 'video/avi',
+	'divx' => 'video/divx',
+	'flv' => 'video/x-flv',
+	'mov|qt' => 'video/quicktime',
+	'mpeg|mpg|mpe' => 'video/mpeg',
+	'mp4|m4v' => 'video/mp4',
+	'ogv' => 'video/ogg',
+	'mkv' => 'video/x-matroska',
+	// Text formats
+	'txt|asc|c|cc|h' => 'text/plain',
+	'csv' => 'text/csv',
+	'tsv' => 'text/tab-separated-values',
+	'ics' => 'text/calendar',
+	'rtx' => 'text/richtext',
+	'css' => 'text/css',
+	'htm|html' => 'text/html',
+	// Audio formats
+	'mp3|m4a|m4b' => 'audio/mpeg',
+	'ra|ram' => 'audio/x-realaudio',
+	'wav' => 'audio/wav',
+	'ogg|oga' => 'audio/ogg',
+	'mid|midi' => 'audio/midi',
+	'wma' => 'audio/wma',
+	'mka' => 'audio/x-matroska',
+	// Misc application formats
+	'rtf' => 'application/rtf',
+	'js' => 'application/javascript',
+	'pdf' => 'application/pdf',
+	'swf' => 'application/x-shockwave-flash',
+	'class' => 'application/java',
+	'tar' => 'application/x-tar',
+	'zip' => 'application/zip',
+	'gz|gzip' => 'application/x-gzip',
+	'rar' => 'application/rar',
+	'7z' => 'application/x-7z-compressed',
+	'exe' => 'application/x-msdownload',
+	// MS Office formats
+	'doc' => 'application/msword',
+	'pot|pps|ppt' => 'application/vnd.ms-powerpoint',
+	'wri' => 'application/vnd.ms-write',
+	'xla|xls|xlt|xlw' => 'application/vnd.ms-excel',
+	'mdb' => 'application/vnd.ms-access',
+	'mpp' => 'application/vnd.ms-project',
+	'docx' => 'application/vnd.openxmlformats-officedocument.wordprocessingml.document',
+	'docm' => 'application/vnd.ms-word.document.macroEnabled.12',
+	'dotx' => 'application/vnd.openxmlformats-officedocument.wordprocessingml.template',
+	'dotm' => 'application/vnd.ms-word.template.macroEnabled.12',
+	'xlsx' => 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet',
+	'xlsm' => 'application/vnd.ms-excel.sheet.macroEnabled.12',
+	'xlsb' => 'application/vnd.ms-excel.sheet.binary.macroEnabled.12',
+	'xltx' => 'application/vnd.openxmlformats-officedocument.spreadsheetml.template',
+	'xltm' => 'application/vnd.ms-excel.template.macroEnabled.12',
+	'xlam' => 'application/vnd.ms-excel.addin.macroEnabled.12',
+	'pptx' => 'application/vnd.openxmlformats-officedocument.presentationml.presentation',
+	'pptm' => 'application/vnd.ms-powerpoint.presentation.macroEnabled.12',
+	'ppsx' => 'application/vnd.openxmlformats-officedocument.presentationml.slideshow',
+	'ppsm' => 'application/vnd.ms-powerpoint.slideshow.macroEnabled.12',
+	'potx' => 'application/vnd.openxmlformats-officedocument.presentationml.template',
+	'potm' => 'application/vnd.ms-powerpoint.template.macroEnabled.12',
+	'ppam' => 'application/vnd.ms-powerpoint.addin.macroEnabled.12',
+	'sldx' => 'application/vnd.openxmlformats-officedocument.presentationml.slide',
+	'sldm' => 'application/vnd.ms-powerpoint.slide.macroEnabled.12',
+	'onetoc|onetoc2|onetmp|onepkg' => 'application/onenote',
+	// OpenOffice formats
+	'odt' => 'application/vnd.oasis.opendocument.text',
+	'odp' => 'application/vnd.oasis.opendocument.presentation',
+	'ods' => 'application/vnd.oasis.opendocument.spreadsheet',
+	'odg' => 'application/vnd.oasis.opendocument.graphics',
+	'odc' => 'application/vnd.oasis.opendocument.chart',
+	'odb' => 'application/vnd.oasis.opendocument.database',
+	'odf' => 'application/vnd.oasis.opendocument.formula',
+	// WordPerfect formats
+	'wp|wpd' => 'application/wordperfect',
+	) );
+}
+/**
  * Retrieve list of allowed mime types and file extensions.
  *
  * @since 2.8.6
  *
+ * @uses apply_filters() Calls 'upload_mimes' on returned array
+ * @uses wp_get_upload_mime_types() to fetch the list of mime types
+ *
  * @return array Array of mime types keyed by the file extension regex corresponding to those types.
  */
 function get_allowed_mime_types() {
-	static $mimes = false;
-
-	if ( !$mimes ) {
-		// Accepted MIME types are set here as PCRE unless provided.
-		$mimes = apply_filters( 'upload_mimes', array(
-		'jpg|jpeg|jpe' => 'image/jpeg',
-		'gif' => 'image/gif',
-		'png' => 'image/png',
-		'bmp' => 'image/bmp',
-		'tif|tiff' => 'image/tiff',
-		'ico' => 'image/x-icon',
-		'asf|asx|wax|wmv|wmx' => 'video/asf',
-		'avi' => 'video/avi',
-		'divx' => 'video/divx',
-		'flv' => 'video/x-flv',
-		'mov|qt' => 'video/quicktime',
-		'mpeg|mpg|mpe' => 'video/mpeg',
-		'txt|asc|c|cc|h' => 'text/plain',
-		'csv' => 'text/csv',
-		'tsv' => 'text/tab-separated-values',
-		'ics' => 'text/calendar',
-		'rtx' => 'text/richtext',
-		'css' => 'text/css',
-		'htm|html' => 'text/html',
-		'mp3|m4a|m4b' => 'audio/mpeg',
-		'mp4|m4v' => 'video/mp4',
-		'ra|ram' => 'audio/x-realaudio',
-		'wav' => 'audio/wav',
-		'ogg|oga' => 'audio/ogg',
-		'ogv' => 'video/ogg',
-		'mid|midi' => 'audio/midi',
-		'wma' => 'audio/wma',
-		'mka' => 'audio/x-matroska',
-		'mkv' => 'video/x-matroska',
-		'rtf' => 'application/rtf',
-		'js' => 'application/javascript',
-		'pdf' => 'application/pdf',
-		'doc|docx' => 'application/msword',
-		'pot|pps|ppt|pptx|ppam|pptm|sldm|ppsm|potm' => 'application/vnd.ms-powerpoint',
-		'wri' => 'application/vnd.ms-write',
-		'xla|xls|xlsx|xlt|xlw|xlam|xlsb|xlsm|xltm' => 'application/vnd.ms-excel',
-		'mdb' => 'application/vnd.ms-access',
-		'mpp' => 'application/vnd.ms-project',
-		'docm|dotm' => 'application/vnd.ms-word',
-		'pptx|sldx|ppsx|potx' => 'application/vnd.openxmlformats-officedocument.presentationml',
-		'xlsx|xltx' => 'application/vnd.openxmlformats-officedocument.spreadsheetml',
-		'docx|dotx' => 'application/vnd.openxmlformats-officedocument.wordprocessingml',
-		'onetoc|onetoc2|onetmp|onepkg' => 'application/onenote',
-		'swf' => 'application/x-shockwave-flash',
-		'class' => 'application/java',
-		'tar' => 'application/x-tar',
-		'zip' => 'application/zip',
-		'gz|gzip' => 'application/x-gzip',
-		'rar' => 'application/rar',
-		'7z' => 'application/x-7z-compressed',
-		'exe' => 'application/x-msdownload',
-		// openoffice formats
-		'odt' => 'application/vnd.oasis.opendocument.text',
-		'odp' => 'application/vnd.oasis.opendocument.presentation',
-		'ods' => 'application/vnd.oasis.opendocument.spreadsheet',
-		'odg' => 'application/vnd.oasis.opendocument.graphics',
-		'odc' => 'application/vnd.oasis.opendocument.chart',
-		'odb' => 'application/vnd.oasis.opendocument.database',
-		'odf' => 'application/vnd.oasis.opendocument.formula',
-		// wordperfect formats
-		'wp|wpd' => 'application/wordperfect',
-		) );
-	}
-
-	return $mimes;
-}
-
-/**
- * Retrieve nonce action "Are you sure" message.
- *
- * Deprecated in 3.4.1 and 3.5.0. Backported to 3.3.3.
- *
- * @since 2.0.4
- * @deprecated 3.4.1
- * @deprecated Use wp_nonce_ays()
- * @see wp_nonce_ays()
- *
- * @param string $action Nonce action.
- * @return string Are you sure message.
- */
-function wp_explain_nonce( $action ) {
-	_deprecated_function( __FUNCTION__, '3.4.1', 'wp_nonce_ays()' );
-	return __( 'Are you sure you want to do this?' );
+	return apply_filters( 'upload_mimes', wp_get_mime_types() );
 }
 
 /**
@@ -1906,8 +2012,6 @@
 		$function = apply_filters( 'wp_die_ajax_handler', '_ajax_wp_die_handler' );
 	elseif ( defined( 'XMLRPC_REQUEST' ) && XMLRPC_REQUEST )
 		$function = apply_filters( 'wp_die_xmlrpc_handler', '_xmlrpc_wp_die_handler' );
-	elseif ( defined( 'APP_REQUEST' ) && APP_REQUEST )
-		$function = apply_filters( 'wp_die_app_handler', '_scalar_wp_die_handler' );
 	else
 		$function = apply_filters( 'wp_die_handler', '_default_wp_die_handler' );
 
@@ -2029,42 +2133,72 @@
 		a:hover {
 			color: #D54E21;
 		}
-
 		.button {
-			font-family: sans-serif;
+			display: inline-block;
 			text-decoration: none;
-			font-size: 14px !important;
-			line-height: 16px;
-			padding: 6px 12px;
+			font-size: 14px;
+			line-height: 23px;
+			height: 24px;
+			margin: 0;
+			padding: 0 10px 1px;
 			cursor: pointer;
-			border: 1px solid #bbb;
-			color: #464646;
-			-webkit-border-radius: 15px;
-			border-radius: 15px;
-			-moz-box-sizing: content-box;
-			-webkit-box-sizing: content-box;
-			box-sizing: content-box;
-			background-color: #f5f5f5;
-			background-image: -ms-linear-gradient(top, #ffffff, #f2f2f2);
-			background-image: -moz-linear-gradient(top, #ffffff, #f2f2f2);
-			background-image: -o-linear-gradient(top, #ffffff, #f2f2f2);
-			background-image: -webkit-gradient(linear, left top, left bottom, from(#ffffff), to(#f2f2f2));
-			background-image: -webkit-linear-gradient(top, #ffffff, #f2f2f2);
-			background-image: linear-gradient(top, #ffffff, #f2f2f2);
+			border-width: 1px;
+			border-style: solid;
+			-webkit-border-radius: 3px;
+			border-radius: 3px;
+			white-space: nowrap;
+			-webkit-box-sizing: border-box;
+			-moz-box-sizing:    border-box;
+			box-sizing:         border-box;
+			background: #f3f3f3;
+			background-image: -webkit-gradient(linear, left top, left bottom, from(#fefefe), to(#f4f4f4));
+			background-image: -webkit-linear-gradient(top, #fefefe, #f4f4f4);
+			background-image:    -moz-linear-gradient(top, #fefefe, #f4f4f4);
+			background-image:      -o-linear-gradient(top, #fefefe, #f4f4f4);
+			background-image:   linear-gradient(to bottom, #fefefe, #f4f4f4);
+			border-color: #bbb;
+		 	color: #333;
+			text-shadow: 0 1px 0 #fff;
 		}
 
-		.button:hover {
-			color: #000;
-			border-color: #666;
+		.button.button-large {
+			height: 29px;
+			line-height: 28px;
+			padding: 0 12px;
+		}
+
+		.button:hover,
+		.button:focus {
+			background: #f3f3f3;
+			background-image: -webkit-gradient(linear, left top, left bottom, from(#fff), to(#f3f3f3));
+			background-image: -webkit-linear-gradient(top, #fff, #f3f3f3);
+			background-image:    -moz-linear-gradient(top, #fff, #f3f3f3);
+			background-image:     -ms-linear-gradient(top, #fff, #f3f3f3);
+			background-image:      -o-linear-gradient(top, #fff, #f3f3f3);
+			background-image:   linear-gradient(to bottom, #fff, #f3f3f3);
+			border-color: #999;
+			color: #222;
+		}
+
+		.button:focus  {
+			-webkit-box-shadow: 1px 1px 1px rgba(0,0,0,.2);
+			box-shadow: 1px 1px 1px rgba(0,0,0,.2);
 		}
 
 		.button:active {
-			background-image: -ms-linear-gradient(top, #f2f2f2, #ffffff);
-			background-image: -moz-linear-gradient(top, #f2f2f2, #ffffff);
-			background-image: -o-linear-gradient(top, #f2f2f2, #ffffff);
-			background-image: -webkit-gradient(linear, left top, left bottom, from(#f2f2f2), to(#ffffff));
-			background-image: -webkit-linear-gradient(top, #f2f2f2, #ffffff);
-			background-image: linear-gradient(top, #f2f2f2, #ffffff);
+			outline: none;
+			background: #eee;
+			background-image: -webkit-gradient(linear, left top, left bottom, from(#f4f4f4), to(#fefefe));
+			background-image: -webkit-linear-gradient(top, #f4f4f4, #fefefe);
+			background-image:    -moz-linear-gradient(top, #f4f4f4, #fefefe);
+			background-image:     -ms-linear-gradient(top, #f4f4f4, #fefefe);
+			background-image:      -o-linear-gradient(top, #f4f4f4, #fefefe);
+			background-image:   linear-gradient(to bottom, #f4f4f4, #fefefe);
+			border-color: #999;
+			color: #333;
+			text-shadow: 0 -1px 0 #fff;
+			-webkit-box-shadow: inset 0 2px 5px -3px rgba( 0, 0, 0, 0.5 );
+		 	box-shadow: inset 0 2px 5px -3px rgba( 0, 0, 0, 0.5 );
 		}
 
 		<?php if ( 'rtl' == $text_direction ) : ?>
@@ -2139,6 +2273,54 @@
 }
 
 /**
+ * Send a JSON response back to an Ajax request.
+ *
+ * @since 3.5.0
+ *
+ * @param mixed $response Variable (usually an array or object) to encode as JSON, then print and die.
+ */
+function wp_send_json( $response ) {
+	@header( 'Content-Type: application/json; charset=' . get_option( 'blog_charset' ) );
+	echo json_encode( $response );
+	if ( defined( 'DOING_AJAX' ) && DOING_AJAX )
+		wp_die();
+	else
+		die;
+}
+
+/**
+ * Send a JSON response back to an Ajax request, indicating success.
+ *
+ * @since 3.5.0
+ *
+ * @param mixed $data Data to encode as JSON, then print and die.
+ */
+function wp_send_json_success( $data = null ) {
+	$response = array( 'success' => true );
+
+	if ( isset( $data ) )
+		$response['data'] = $data;
+
+	wp_send_json( $response );
+}
+
+/**
+ * Send a JSON response back to an Ajax request, indicating failure.
+ *
+ * @since 3.5.0
+ *
+ * @param mixed $data Data to encode as JSON, then print and die.
+ */
+function wp_send_json_error( $data = null ) {
+	$response = array( 'success' => false );
+
+	if ( isset( $data ) )
+		$response['data'] = $data;
+
+	wp_send_json( $response );
+}
+
+/**
  * Retrieve the WordPress home page URL.
  *
  * If the constant named 'WP_HOME' exists, then it will be used and returned by
@@ -2429,7 +2611,7 @@
 
 		$matched = 0;
 		foreach ( $args as $m_key => $m_value ) {
-			if ( $m_value == $to_match[ $m_key ] )
+			if ( array_key_exists( $m_key, $to_match ) && $m_value == $to_match[ $m_key ] )
 				$matched++;
 		}
 
@@ -2487,6 +2669,10 @@
  */
 function wp_widgets_add_menu() {
 	global $submenu;
+
+	if ( ! current_theme_supports( 'widgets' ) )
+		return;
+
 	$submenu['themes.php'][7] = array( __( 'Widgets' ), 'edit_theme_options', 'widgets.php' );
 	ksort( $submenu['themes.php'], SORT_NUMERIC );
 }
@@ -2581,8 +2767,8 @@
  */
 function url_is_accessable_via_ssl($url)
 {
-	if (in_array('curl', get_loaded_extensions())) {
-		$ssl = preg_replace( '/^http:\/\//', 'https://',  $url );
+	if ( in_array( 'curl', get_loaded_extensions() ) ) {
+		$ssl = set_url_scheme( $url, 'https' );
 
 		$ch = curl_init();
 		curl_setopt($ch, CURLOPT_URL, $ssl);
@@ -2932,9 +3118,10 @@
 	if ( defined('WP_SITEURL') && '' != WP_SITEURL ) {
 		$url = WP_SITEURL;
 	} else {
-		$schema = is_ssl() ? 'https://' : 'http://';
-		$url = preg_replace('#/(wp-admin/.*|wp-login.php)#i', '', $schema . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']);
+		$schema = is_ssl() ? 'https://' : 'http://'; // set_url_scheme() is not defined yet
+		$url = preg_replace( '#/(wp-admin/.*|wp-login.php)#i', '', $schema . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'] );
 	}
+
 	return rtrim($url, '/');
 }
 
@@ -2993,13 +3180,13 @@
  * @return bool True if not multisite or $blog_id is main site
  */
 function is_main_site( $blog_id = '' ) {
-	global $current_site, $current_blog;
-
-	if ( !is_multisite() )
+	global $current_site;
+
+	if ( ! is_multisite() )
 		return true;
 
-	if ( !$blog_id )
-		$blog_id = $current_blog->blog_id;
+	if ( ! $blog_id )
+		$blog_id = get_current_blog_id();
 
 	return $blog_id == $current_site->blog_id;
 }
@@ -3047,7 +3234,7 @@
 	if ( false === $timezone_object || false === $datetime_object ) {
 		return false;
 	}
-	return round( timezone_offset_get( $timezone_object, $datetime_object ) / 3600, 2 );
+	return round( timezone_offset_get( $timezone_object, $datetime_object ) / HOUR_IN_SECONDS, 2 );
 }
 
 /**
@@ -3247,7 +3434,7 @@
 function wp_scheduled_delete() {
 	global $wpdb;
 
-	$delete_timestamp = time() - (60*60*24*EMPTY_TRASH_DAYS);
+	$delete_timestamp = time() - ( DAY_IN_SECONDS * EMPTY_TRASH_DAYS );
 
 	$posts_to_delete = $wpdb->get_results($wpdb->prepare("SELECT post_id FROM $wpdb->postmeta WHERE meta_key = '_wp_trash_meta_time' AND meta_value < '%d'", $delete_timestamp), ARRAY_A);
 
@@ -3536,7 +3723,7 @@
 	static $protocols;
 
 	if ( empty( $protocols ) ) {
-		$protocols = array( 'http', 'https', 'ftp', 'ftps', 'mailto', 'news', 'irc', 'gopher', 'nntp', 'feed', 'telnet', 'mms', 'rtsp', 'svn' );
+		$protocols = array( 'http', 'https', 'ftp', 'ftps', 'mailto', 'news', 'irc', 'gopher', 'nntp', 'feed', 'telnet', 'mms', 'rtsp', 'svn', 'tel', 'fax', 'xmpp' );
 		$protocols = apply_filters( 'kses_allowed_protocols', $protocols );
 	}
 
@@ -3628,8 +3815,31 @@
 		|| strpos($ua, 'iPad') !== false
 		|| strpos($ua, 'iPod') !== false ) {
 			return preg_match( '#OS ([\d_]+) like Mac OS X#', $ua, $version ) && version_compare( $version[1], '6', '>=' );
-	} else {
-		return true;
 	}
+
+	return true;
 }
 
+/**
+ * Test if a given path is a stream URL
+ *
+ * @param string $path The resource path or URL
+ * @return bool True if the path is a stream URL
+ */
+function wp_is_stream( $path ) {
+	$wrappers = stream_get_wrappers();
+	$wrappers_re = '(' . join('|', $wrappers) . ')';
+
+	return preg_match( "!^$wrappers_re://!", $path ) === 1;
+}
+
+/**
+ * Test if the supplied date is valid for the Gregorian calendar
+ *
+ * @since 3.5.0
+ *
+ * @return bool true|false
+ */
+function wp_checkdate( $month, $day, $year, $source_date ) {
+	return apply_filters( 'wp_checkdate', checkdate( $month, $day, $year ), $source_date );
+}
--- a/web/wp-includes/functions.wp-scripts.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/functions.wp-scripts.php	Wed Dec 19 17:46:52 2012 -0800
@@ -161,16 +161,18 @@
 /**
  * Check whether script has been added to WordPress Scripts.
  *
- * The values for list defaults to 'queue', which is the same as enqueue for
- * scripts.
+ * By default, checks if the script has been enqueued. You can also
+ * pass 'registered' to $list, to see if the script is registered,
+ * and you can check processing statuses with 'to_do' and 'done'.
  *
  * @since WP unknown; BP unknown
  *
- * @param string $handle Handle used to add script.
- * @param string $list Optional, defaults to 'queue'. Others values are 'registered', 'queue', 'done', 'to_do'
- * @return bool
+ * @param string $handle Name of the script.
+ * @param string $list Optional. Defaults to 'enqueued'. Values are
+ * 	'registered', 'enqueued' (or 'queue'), 'to_do', and 'done'.
+ * @return bool Whether script is in the list.
  */
-function wp_script_is( $handle, $list = 'queue' ) {
+function wp_script_is( $handle, $list = 'enqueued' ) {
 	global $wp_scripts;
 	if ( ! is_a( $wp_scripts, 'WP_Scripts' ) ) {
 		if ( ! did_action( 'init' ) )
@@ -179,10 +181,5 @@
 		$wp_scripts = new WP_Scripts();
 	}
 
-	$query = $wp_scripts->query( $handle, $list );
-
-	if ( is_object( $query ) )
-		return true;
-
-	return $query;
+	return (bool) $wp_scripts->query( $handle, $list );
 }
--- a/web/wp-includes/functions.wp-styles.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/functions.wp-styles.php	Wed Dec 19 17:46:52 2012 -0800
@@ -167,16 +167,19 @@
 /**
  * Check whether style has been added to WordPress Styles.
  *
- * The values for list defaults to 'queue', which is the same as wp_enqueue_style().
+ * By default, checks if the style has been enqueued. You can also
+ * pass 'registered' to $list, to see if the style is registered,
+ * and you can check processing statuses with 'to_do' and 'done'.
  *
  * @since WP unknown; BP unknown
  * @global object $wp_styles The WP_Styles object for printing styles.
  *
  * @param string $handle Name of the stylesheet.
- * @param string $list Values are 'registered', 'done', 'queue' and 'to_do'.
- * @return bool True on success, false on failure.
+ * @param string $list Optional. Defaults to 'enqueued'. Values are
+ * 	'registered', 'enqueued' (or 'queue'), 'to_do', and 'done'.
+ * @return bool Whether style is in the list.
  */
-function wp_style_is( $handle, $list = 'queue' ) {
+function wp_style_is( $handle, $list = 'enqueued' ) {
 	global $wp_styles;
 	if ( ! is_a( $wp_styles, 'WP_Styles' ) ) {
 		if ( ! did_action( 'init' ) )
@@ -185,10 +188,5 @@
 		$wp_styles = new WP_Styles();
 	}
 
-	$query = $wp_styles->query( $handle, $list );
-
-	if ( is_object( $query ) )
-		return true;
-
-	return $query;
+	return (bool) $wp_styles->query( $handle, $list );
 }
--- a/web/wp-includes/general-template.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/general-template.php	Wed Dec 19 17:46:52 2012 -0800
@@ -147,6 +147,7 @@
  *
  * @since 2.7.0
  * @param boolean $echo Default to echo and not return the form.
+ * @return string|null String when retrieving, null when displaying or if searchform.php exists.
  */
 function get_search_form($echo = true) {
 	do_action( 'get_search_form' );
@@ -181,6 +182,7 @@
  *
  * @param string $redirect Optional path to redirect to on login/logout.
  * @param boolean $echo Default to echo and not return the link.
+ * @return string|null String when retrieving, null when displaying.
  */
 function wp_loginout($redirect = '', $echo = true) {
 	if ( ! is_user_logged_in() )
@@ -205,6 +207,7 @@
  * @uses apply_filters() calls 'logout_url' hook on final logout url
  *
  * @param string $redirect Path to redirect to on logout.
+ * @return string A log out URL.
  */
 function wp_logout_url($redirect = '') {
 	$args = array( 'action' => 'logout' );
@@ -229,7 +232,7 @@
  *
  * @param string $redirect Path to redirect to on login.
  * @param bool $force_reauth Whether to force reauthorization, even if a cookie is present. Default is false.
- * @return string A log in url
+ * @return string A log in URL.
  */
 function wp_login_url($redirect = '', $force_reauth = false) {
 	$login_url = site_url('wp-login.php', 'login');
@@ -248,8 +251,8 @@
  * the HTML immediately. Pass array('echo'=>false) to return the string instead.
  *
  * @since 3.0.0
- * @param array $args Configuration options to modify the form output
- * @return Void, or string containing the form
+ * @param array $args Configuration options to modify the form output.
+ * @return string|null String when retrieving, null when displaying.
  */
 function wp_login_form( $args = array() ) {
 	$defaults = array( 'echo' => true,
@@ -274,16 +277,16 @@
 			' . apply_filters( 'login_form_top', '', $args ) . '
 			<p class="login-username">
 				<label for="' . esc_attr( $args['id_username'] ) . '">' . esc_html( $args['label_username'] ) . '</label>
-				<input type="text" name="log" id="' . esc_attr( $args['id_username'] ) . '" class="input" value="' . esc_attr( $args['value_username'] ) . '" size="20" tabindex="10" />
+				<input type="text" name="log" id="' . esc_attr( $args['id_username'] ) . '" class="input" value="' . esc_attr( $args['value_username'] ) . '" size="20" />
 			</p>
 			<p class="login-password">
 				<label for="' . esc_attr( $args['id_password'] ) . '">' . esc_html( $args['label_password'] ) . '</label>
-				<input type="password" name="pwd" id="' . esc_attr( $args['id_password'] ) . '" class="input" value="" size="20" tabindex="20" />
+				<input type="password" name="pwd" id="' . esc_attr( $args['id_password'] ) . '" class="input" value="" size="20" />
 			</p>
 			' . apply_filters( 'login_form_middle', '', $args ) . '
-			' . ( $args['remember'] ? '<p class="login-remember"><label><input name="rememberme" type="checkbox" id="' . esc_attr( $args['id_remember'] ) . '" value="forever" tabindex="90"' . ( $args['value_remember'] ? ' checked="checked"' : '' ) . ' /> ' . esc_html( $args['label_remember'] ) . '</label></p>' : '' ) . '
+			' . ( $args['remember'] ? '<p class="login-remember"><label><input name="rememberme" type="checkbox" id="' . esc_attr( $args['id_remember'] ) . '" value="forever"' . ( $args['value_remember'] ? ' checked="checked"' : '' ) . ' /> ' . esc_html( $args['label_remember'] ) . '</label></p>' : '' ) . '
 			<p class="login-submit">
-				<input type="submit" name="wp-submit" id="' . esc_attr( $args['id_submit'] ) . '" class="button-primary" value="' . esc_attr( $args['label_log_in'] ) . '" tabindex="100" />
+				<input type="submit" name="wp-submit" id="' . esc_attr( $args['id_submit'] ) . '" class="button-primary" value="' . esc_attr( $args['label_log_in'] ) . '" />
 				<input type="hidden" name="redirect_to" value="' . esc_url( $args['redirect'] ) . '" />
 			</p>
 			' . apply_filters( 'login_form_bottom', '', $args ) . '
@@ -305,6 +308,7 @@
  * @uses apply_filters() calls 'lostpassword_url' hook on the lostpassword url
  *
  * @param string $redirect Path to redirect to on login.
+ * @return string Lost password URL.
  */
 function wp_lostpassword_url( $redirect = '' ) {
 	$args = array( 'action' => 'lostpassword' );
@@ -328,6 +332,7 @@
  * @param string $before Text to output before the link (defaults to <li>).
  * @param string $after Text to output after the link (defaults to </li>).
  * @param boolean $echo Default to echo and not return the link.
+ * @return string|null String when retrieving, null when displaying.
  */
 function wp_register( $before = '<li>', $after = '</li>', $echo = true ) {
 
@@ -492,18 +497,6 @@
 }
 
 /**
- * Retrieve the current blog id
- *
- * @since 3.1.0
- *
- * @return int Blog id
- */
-function get_current_blog_id() {
-	global $blog_id;
-	return absint($blog_id);
-}
-
-/**
  * Display or retrieve page title for all areas of blog.
  *
  * By default, the page title will display the separator before the page title,
@@ -873,6 +866,7 @@
  * @since 1.2.0
  *
  * @param string|array $args Optional. Override defaults.
+ * @return string|null String when retrieving, null when displaying.
  */
 function wp_get_archives($args = '') {
 	global $wpdb, $wp_locale;
@@ -881,7 +875,7 @@
 		'type' => 'monthly', 'limit' => '',
 		'format' => 'html', 'before' => '',
 		'after' => '', 'show_post_count' => false,
-		'echo' => 1
+		'echo' => 1, 'order' => 'DESC',
 	);
 
 	$r = wp_parse_args( $args, $defaults );
@@ -895,6 +889,10 @@
 		$limit = ' LIMIT '.$limit;
 	}
 
+	$order = strtoupper( $order );
+	if ( $order !== 'ASC' )
+		$order = 'DESC';
+
 	// this is what will separate dates on weekly archive links
 	$archive_week_separator = '&#8211;';
 
@@ -921,7 +919,7 @@
 	$output = '';
 
 	if ( 'monthly' == $type ) {
-		$query = "SELECT YEAR(post_date) AS `year`, MONTH(post_date) AS `month`, count(ID) as posts FROM $wpdb->posts $join $where GROUP BY YEAR(post_date), MONTH(post_date) ORDER BY post_date DESC $limit";
+		$query = "SELECT YEAR(post_date) AS `year`, MONTH(post_date) AS `month`, count(ID) as posts FROM $wpdb->posts $join $where GROUP BY YEAR(post_date), MONTH(post_date) ORDER BY post_date $order $limit";
 		$key = md5($query);
 		$cache = wp_cache_get( 'wp_get_archives' , 'general');
 		if ( !isset( $cache[ $key ] ) ) {
@@ -943,7 +941,7 @@
 			}
 		}
 	} elseif ('yearly' == $type) {
-		$query = "SELECT YEAR(post_date) AS `year`, count(ID) as posts FROM $wpdb->posts $join $where GROUP BY YEAR(post_date) ORDER BY post_date DESC $limit";
+		$query = "SELECT YEAR(post_date) AS `year`, count(ID) as posts FROM $wpdb->posts $join $where GROUP BY YEAR(post_date) ORDER BY post_date $order $limit";
 		$key = md5($query);
 		$cache = wp_cache_get( 'wp_get_archives' , 'general');
 		if ( !isset( $cache[ $key ] ) ) {
@@ -964,7 +962,7 @@
 			}
 		}
 	} elseif ( 'daily' == $type ) {
-		$query = "SELECT YEAR(post_date) AS `year`, MONTH(post_date) AS `month`, DAYOFMONTH(post_date) AS `dayofmonth`, count(ID) as posts FROM $wpdb->posts $join $where GROUP BY YEAR(post_date), MONTH(post_date), DAYOFMONTH(post_date) ORDER BY post_date DESC $limit";
+		$query = "SELECT YEAR(post_date) AS `year`, MONTH(post_date) AS `month`, DAYOFMONTH(post_date) AS `dayofmonth`, count(ID) as posts FROM $wpdb->posts $join $where GROUP BY YEAR(post_date), MONTH(post_date), DAYOFMONTH(post_date) ORDER BY post_date $order $limit";
 		$key = md5($query);
 		$cache = wp_cache_get( 'wp_get_archives' , 'general');
 		if ( !isset( $cache[ $key ] ) ) {
@@ -987,7 +985,7 @@
 		}
 	} elseif ( 'weekly' == $type ) {
 		$week = _wp_mysql_week( '`post_date`' );
-		$query = "SELECT DISTINCT $week AS `week`, YEAR( `post_date` ) AS `yr`, DATE_FORMAT( `post_date`, '%Y-%m-%d' ) AS `yyyymmdd`, count( `ID` ) AS `posts` FROM `$wpdb->posts` $join $where GROUP BY $week, YEAR( `post_date` ) ORDER BY `post_date` DESC $limit";
+		$query = "SELECT DISTINCT $week AS `week`, YEAR( `post_date` ) AS `yr`, DATE_FORMAT( `post_date`, '%Y-%m-%d' ) AS `yyyymmdd`, count( `ID` ) AS `posts` FROM `$wpdb->posts` $join $where GROUP BY $week, YEAR( `post_date` ) ORDER BY `post_date` $order $limit";
 		$key = md5($query);
 		$cache = wp_cache_get( 'wp_get_archives' , 'general');
 		if ( !isset( $cache[ $key ] ) ) {
@@ -1050,7 +1048,6 @@
  * Get number of days since the start of the week.
  *
  * @since 1.5.0
- * @usedby get_calendar()
  *
  * @param int $num Number of day.
  * @return int Days since the start of the week.
@@ -1067,9 +1064,11 @@
  * no posts for the month, then it will not be displayed.
  *
  * @since 1.0.0
+ * @uses calendar_week_mod()
  *
  * @param bool $initial Optional, default is true. Use initial calendar names.
  * @param bool $echo Optional, default is true. Set to false for return.
+ * @return string|null String when retrieving, null when displaying.
  */
 function get_calendar($initial = true, $echo = true) {
 	global $wpdb, $m, $monthnum, $year, $wp_locale, $posts;
@@ -1319,8 +1318,7 @@
  * @since 1.0.0
  */
 function the_date_xml() {
-	global $post;
-	echo mysql2date('Y-m-d', $post->post_date, false);
+	echo mysql2date( 'Y-m-d', get_post()->post_date, false );
 }
 
 /**
@@ -1375,7 +1373,7 @@
  * @return string|null Null if displaying, string if retrieving.
  */
 function get_the_date( $d = '' ) {
-	global $post;
+	$post = get_post();
 	$the_date = '';
 
 	if ( '' == $d )
@@ -1536,8 +1534,8 @@
  * @uses $post
  */
 function the_weekday() {
-	global $wp_locale, $post;
-	$the_weekday = $wp_locale->get_weekday(mysql2date('w', $post->post_date, false));
+	global $wp_locale;
+	$the_weekday = $wp_locale->get_weekday( mysql2date( 'w', get_post()->post_date, false ) );
 	$the_weekday = apply_filters('the_weekday', $the_weekday);
 	echo $the_weekday;
 }
@@ -1554,11 +1552,11 @@
  * @param string $after Optional Output after the date.
  */
 function the_weekday_date($before='',$after='') {
-	global $wp_locale, $post, $day, $previousweekday;
+	global $wp_locale, $day, $previousweekday;
 	$the_weekday_date = '';
 	if ( $currentday != $previousweekday ) {
 		$the_weekday_date .= $before;
-		$the_weekday_date .= $wp_locale->get_weekday(mysql2date('w', $post->post_date, false));
+		$the_weekday_date .= $wp_locale->get_weekday( mysql2date( 'w', get_post()->post_date, false ) );
 		$the_weekday_date .= $after;
 		$previousweekday = $currentday;
 	}
@@ -1633,13 +1631,15 @@
 		'authortitle' => __('%1$s %2$s Posts by %3$s Feed'),
 		/* translators: 1: blog name, 2: separator(raquo), 3: search phrase */
 		'searchtitle' => __('%1$s %2$s Search Results for &#8220;%3$s&#8221; Feed'),
+		/* translators: 1: blog name, 2: separator(raquo), 3: post type name */
+		'posttypetitle' => __('%1$s %2$s %3$s Feed'),
 	);
 
 	$args = wp_parse_args( $args, $defaults );
 
 	if ( is_single() || is_page() ) {
 		$id = 0;
-		$post = &get_post( $id );
+		$post = get_post( $id );
 
 		if ( comments_open() || pings_open() || $post->comment_count > 0 ) {
 			$title = sprintf( $args['singletitle'], get_bloginfo('name'), $args['separator'], esc_html( get_the_title() ) );
@@ -1663,6 +1663,9 @@
 	} elseif ( is_search() ) {
 		$title = sprintf( $args['searchtitle'], get_bloginfo('name'), $args['separator'], get_search_query( false ) );
 		$href = get_search_feed_link();
+	} elseif ( is_post_type_archive() ) {
+		$title = sprintf( $args['posttypetitle'], get_bloginfo('name'), $args['separator'], post_type_archive_title( '', false ) );
+		$href = get_post_type_archive_feed_link( get_queried_object()->name );
 	}
 
 	if ( isset($title) && isset($href) )
@@ -1754,7 +1757,7 @@
 		if ( get_user_option( 'rich_editing' ) == 'true' || ! is_user_logged_in() ) { // default to 'true' for logged out users
 			if ( $is_safari ) {
 				$wp_rich_edit = ! wp_is_mobile() || ( preg_match( '!AppleWebKit/(\d+)!', $_SERVER['HTTP_USER_AGENT'], $match ) && intval( $match[1] ) >= 534 );
-			} elseif ( $is_gecko || $is_opera || $is_chrome || $is_IE ) {
+			} elseif ( $is_gecko || $is_chrome || $is_IE || ( $is_opera && !wp_is_mobile() ) ) {
 				$wp_rich_edit = true;
 			}
 		}
@@ -1767,7 +1770,7 @@
  * Find out which editor should be displayed by default.
  *
  * Works out which of the two editors to display as the current editor for a
- * user.
+ * user. The 'html' setting is for the "Text" editor tab.
  *
  * @since 2.5.0
  *
@@ -1855,8 +1858,8 @@
 	$attributes = array();
 	$output = '';
 
-	if ( function_exists( 'is_rtl' ) )
-		$attributes[] = 'dir="' . ( is_rtl() ? 'rtl' : 'ltr' ) . '"';
+	if ( function_exists( 'is_rtl' ) && is_rtl() )
+		$attributes[] = 'dir="rtl"';
 
 	if ( $lang = get_bloginfo('language') ) {
 		if ( get_option('html_type') == 'text/html' || $doctype == 'html' )
@@ -2032,9 +2035,9 @@
  * @since 3.0.0
  */
 function register_admin_color_schemes() {
-	wp_admin_css_color( 'classic', _x( 'Blue', 'admin color scheme' ), admin_url( 'css/colors-classic.css' ),
+	wp_admin_css_color( 'classic', _x( 'Blue', 'admin color scheme' ), admin_url( 'css/colors-classic.min.css' ),
 		array( '#5589aa', '#cfdfe9', '#d1e5ee', '#eff8ff' ) );
-	wp_admin_css_color( 'fresh', _x( 'Gray', 'admin color scheme' ), admin_url( 'css/colors-fresh.css' ),
+	wp_admin_css_color( 'fresh', _x( 'Gray', 'admin color scheme' ), admin_url( 'css/colors-fresh.min.css' ),
 		array( '#555', '#a0a0a0', '#ccc', '#f1f1f1' ) );
 }
 
@@ -2264,8 +2267,8 @@
  * @since 2.8.0
  * @access private
  *
- * @param any $helper One of the values to compare
- * @param any $current (true) The other value to compare if not just true
+ * @param mixed $helper One of the values to compare
+ * @param mixed $current (true) The other value to compare if not just true
  * @param bool $echo Whether to echo or just return the string
  * @param string $type The type of checked|selected|disabled we are doing
  * @return string html attribute or empty string
--- a/web/wp-includes/http.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/http.php	Wed Dec 19 17:46:52 2012 -0800
@@ -19,7 +19,7 @@
  *
  * @return WP_Http HTTP Transport object.
  */
-function &_wp_http_get_object() {
+function _wp_http_get_object() {
 	static $http;
 
 	if ( is_null($http) )
@@ -284,6 +284,10 @@
  * Send Access-Control-Allow-Origin and related headers if the current request
  * is from an allowed origin.
  *
+ * If the request is an OPTIONS request, the script exits with either access
+ * control headers sent, or a 403 response if the origin is not allowed. For
+ * other request methods, you will receive a return value.
+ *
  * @since 3.4.0
  *
  * @return bool|string Returns the origin URL if headers are sent. Returns false
@@ -291,11 +295,19 @@
  */
 function send_origin_headers() {
 	$origin = get_http_origin();
-	if ( ! is_allowed_http_origin( $origin ) )
-		return false;
 
-	@header( 'Access-Control-Allow-Origin: ' .  $origin );
-	@header( 'Access-Control-Allow-Credentials: true' );
+	if ( is_allowed_http_origin( $origin ) ) {
+		@header( 'Access-Control-Allow-Origin: ' .  $origin );
+		@header( 'Access-Control-Allow-Credentials: true' );
+		if ( 'OPTIONS' === $_SERVER['REQUEST_METHOD'] )
+			exit;
+		return $origin;
+	}
 
-	return $origin;
-}
\ No newline at end of file
+	if ( 'OPTIONS' === $_SERVER['REQUEST_METHOD'] ) {
+		status_header( 403 );
+		exit;
+	}
+
+	return false;
+}
Binary file web/wp-includes/images/admin-bar-sprite-2x.png has changed
Binary file web/wp-includes/images/admin-bar-sprite.png has changed
Binary file web/wp-includes/images/arrow-pointer-blue-2x.png has changed
Binary file web/wp-includes/images/arrow-pointer-blue.png has changed
Binary file web/wp-includes/images/crystal/archive.png has changed
Binary file web/wp-includes/images/crystal/audio.png has changed
Binary file web/wp-includes/images/crystal/code.png has changed
Binary file web/wp-includes/images/crystal/default.png has changed
Binary file web/wp-includes/images/crystal/document.png has changed
Binary file web/wp-includes/images/crystal/interactive.png has changed
Binary file web/wp-includes/images/crystal/spreadsheet.png has changed
Binary file web/wp-includes/images/crystal/text.png has changed
Binary file web/wp-includes/images/crystal/video.png has changed
Binary file web/wp-includes/images/down_arrow-2x.gif has changed
Binary file web/wp-includes/images/icon-pointer-flag-2x.png has changed
Binary file web/wp-includes/images/rss-2x.png has changed
Binary file web/wp-includes/images/rss.png has changed
Binary file web/wp-includes/images/toggle-arrow-2x.png has changed
Binary file web/wp-includes/images/toggle-arrow.png has changed
Binary file web/wp-includes/images/upload.png has changed
Binary file web/wp-includes/images/uploader-icons-2x.png has changed
Binary file web/wp-includes/images/uploader-icons.png has changed
Binary file web/wp-includes/images/wlw/wp-comments.png has changed
Binary file web/wp-includes/images/wlw/wp-icon.png has changed
Binary file web/wp-includes/images/wlw/wp-watermark.png has changed
Binary file web/wp-includes/images/wpicons-2x.png has changed
Binary file web/wp-includes/images/wpicons.png has changed
Binary file web/wp-includes/images/wpmini-blue-2x.png has changed
Binary file web/wp-includes/images/wpmini-blue.png has changed
Binary file web/wp-includes/images/wpspin-2x.gif has changed
Binary file web/wp-includes/images/wpspin.gif has changed
Binary file web/wp-includes/images/xit-2x.gif has changed
--- a/web/wp-includes/js/admin-bar.dev.js	Wed Dec 19 12:35:13 2012 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,254 +0,0 @@
-// use jQuery and hoverIntent if loaded
-if ( typeof(jQuery) != 'undefined' ) {
-	if ( typeof(jQuery.fn.hoverIntent) == 'undefined' )
-		(function(a){a.fn.hoverIntent=function(l,j){var m={sensitivity:7,interval:100,timeout:0};m=a.extend(m,j?{over:l,out:j}:l);var o,n,h,d;var e=function(f){o=f.pageX;n=f.pageY};var c=function(g,f){f.hoverIntent_t=clearTimeout(f.hoverIntent_t);if((Math.abs(h-o)+Math.abs(d-n))<m.sensitivity){a(f).unbind("mousemove",e);f.hoverIntent_s=1;return m.over.apply(f,[g])}else{h=o;d=n;f.hoverIntent_t=setTimeout(function(){c(g,f)},m.interval)}};var i=function(g,f){f.hoverIntent_t=clearTimeout(f.hoverIntent_t);f.hoverIntent_s=0;return m.out.apply(f,[g])};var b=function(q){var f=this;var g=(q.type=="mouseover"?q.fromElement:q.toElement)||q.relatedTarget;while(g&&g!=this){try{g=g.parentNode}catch(q){g=this}}if(g==this){if(a.browser.mozilla){if(q.type=="mouseout"){f.mtout=setTimeout(function(){k(q,f)},30)}else{if(f.mtout){f.mtout=clearTimeout(f.mtout)}}}return}else{if(f.mtout){f.mtout=clearTimeout(f.mtout)}k(q,f)}};var k=function(p,f){var g=jQuery.extend({},p);if(f.hoverIntent_t){f.hoverIntent_t=clearTimeout(f.hoverIntent_t)}if(p.type=="mouseover"){h=g.pageX;d=g.pageY;a(f).bind("mousemove",e);if(f.hoverIntent_s!=1){f.hoverIntent_t=setTimeout(function(){c(g,f)},m.interval)}}else{a(f).unbind("mousemove",e);if(f.hoverIntent_s==1){f.hoverIntent_t=setTimeout(function(){i(g,f)},m.timeout)}}};return this.mouseover(b).mouseout(b)}})(jQuery);
-
-	jQuery(document).ready(function($){
-		var refresh = function(i, el){ // force the browser to refresh the tabbing index
-			var node = $(el), tab = node.attr('tabindex');
-			if ( tab )
-				node.attr('tabindex', '0').attr('tabindex', tab);
-		};
-
-		$('#wpadminbar').removeClass('nojq').removeClass('nojs').find('li.menupop').hoverIntent({
-			over: function(e){
-				$(this).addClass('hover');
-			},
-			out: function(e){
-				$(this).removeClass('hover');
-			},
-			timeout: 180,
-			sensitivity: 7,
-			interval: 100
-		});
-
-		$('#wp-admin-bar-get-shortlink').click(function(e){
-			e.preventDefault();
-			$(this).addClass('selected').children('.shortlink-input').blur(function(){
-				$(this).parents('#wp-admin-bar-get-shortlink').removeClass('selected');
-			}).focus().select();
-		});
-
-		$('#wpadminbar li.menupop > .ab-item').bind('keydown.adminbar', function(e){
-			if ( e.which != 13 )
-				return;
-
-			var target = $(e.target), wrap = target.closest('ab-sub-wrapper');
-
-			e.stopPropagation();
-			e.preventDefault();
-
-			if ( !wrap.length )
-				wrap = $('#wpadminbar .quicklinks');
-
-			wrap.find('.menupop').removeClass('hover');
-			target.parent().toggleClass('hover');
-			target.siblings('.ab-sub-wrapper').find('.ab-item').each(refresh);
-		}).each(refresh);
-
-		$('#wpadminbar .ab-item').bind('keydown.adminbar', function(e){
-			if ( e.which != 27 )
-				return;
-
-			var target = $(e.target);
-
-			e.stopPropagation();
-			e.preventDefault();
-
-			target.closest('.hover').removeClass('hover').children('.ab-item').focus();
-			target.siblings('.ab-sub-wrapper').find('.ab-item').each(refresh);
-		});
-
-		$('#wpadminbar').click( function(e) {
-			if ( e.target.id != 'wpadminbar' && e.target.id != 'wp-admin-bar-top-secondary' )
-				return;
-
-			e.preventDefault();
-			$('html, body').animate({ scrollTop: 0 }, 'fast');
-		});
-
-	});
-} else {
-	(function(d, w) {
-		var addEvent = function( obj, type, fn ) {
-			if (obj.addEventListener)
-				obj.addEventListener(type, fn, false);
-			else if (obj.attachEvent)
-				obj.attachEvent('on' + type, function() { return fn.call(obj, window.event);});
-		},
-
-		aB, hc = new RegExp('\\bhover\\b', 'g'), q = [],
-		rselected = new RegExp('\\bselected\\b', 'g'),
-
-		/**
-		 * Get the timeout ID of the given element
-		 */
-		getTOID = function(el) {
-			var i = q.length;
-			while( i-- )
-				if ( q[i] && el == q[i][1] )
-					return q[i][0];
-			return false;
-		},
-
-		addHoverClass = function(t) {
-			var i, id, inA, hovering, ul, li,
-				ancestors = [],
-				ancestorLength = 0;
-
-			while ( t && t != aB && t != d ) {
-				if( 'LI' == t.nodeName.toUpperCase() ) {
-					ancestors[ ancestors.length ] = t;
-					id = getTOID(t);
-					if ( id )
-						clearTimeout( id );
-					t.className = t.className ? ( t.className.replace(hc, '') + ' hover' ) : 'hover';
-					hovering = t;
-				}
-				t = t.parentNode;
-			}
-
-			// Remove any selected classes.
-			if ( hovering && hovering.parentNode ) {
-				ul = hovering.parentNode;
-				if ( ul && 'UL' == ul.nodeName.toUpperCase() ) {
-					i = ul.childNodes.length;
-					while ( i-- ) {
-						li = ul.childNodes[i];
-						if ( li != hovering )
-							li.className = li.className ? li.className.replace( rselected, '' ) : '';
-					}
-				}
-			}
-
-			/* remove the hover class for any objects not in the immediate element's ancestry */
-			i = q.length;
-			while ( i-- ) {
-				inA = false;
-				ancestorLength = ancestors.length;
-				while( ancestorLength-- ) {
-					if ( ancestors[ ancestorLength ] == q[i][1] )
-						inA = true;
-				}
-
-				if ( ! inA )
-					q[i][1].className = q[i][1].className ? q[i][1].className.replace(hc, '') : '';
-			}
-		},
-
-		removeHoverClass = function(t) {
-			while ( t && t != aB && t != d ) {
-				if( 'LI' == t.nodeName.toUpperCase() ) {
-					(function(t) {
-						var to = setTimeout(function() {
-							t.className = t.className ? t.className.replace(hc, '') : '';
-						}, 500);
-						q[q.length] = [to, t];
-					})(t);
-				}
-				t = t.parentNode;
-			}
-		},
-
-		clickShortlink = function(e) {
-			var i, l, node,
-				t = e.target || e.srcElement;
-
-			// Make t the shortlink menu item, or return.
-			while ( true ) {
-				// Check if we've gone past the shortlink node,
-				// or if the user is clicking on the input.
-				if ( ! t || t == d || t == aB )
-					return;
-				// Check if we've found the shortlink node.
-				if ( t.id && t.id == 'wp-admin-bar-get-shortlink' )
-					break;
-				t = t.parentNode;
-			}
-
-			// IE doesn't support preventDefault, and does support returnValue
-			if ( e.preventDefault )
-				e.preventDefault();
-			e.returnValue = false;
-
-			if ( -1 == t.className.indexOf('selected') )
-				t.className += ' selected';
-
-			for ( i = 0, l = t.childNodes.length; i < l; i++ ) {
-				node = t.childNodes[i];
-				if ( node.className && -1 != node.className.indexOf('shortlink-input') ) {
-					node.focus();
-					node.select();
-					node.onblur = function() {
-						t.className = t.className ? t.className.replace( rselected, '' ) : '';
-					};
-					break;
-				}
-			}
-			return false;
-		},
-
-		scrollToTop = function(t) {
-			var distance, speed, step, steps, timer, speed_step;
-
-			// Ensure that the #wpadminbar was the target of the click.
-			if ( t.id != 'wpadminbar' && t.id != 'wp-admin-bar-top-secondary' )
-				return;
-
-			distance    = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0;
-
-			if ( distance < 1 )
-				return;
-
-			speed_step = distance > 800 ? 130 : 100;
-			speed     = Math.min( 12, Math.round( distance / speed_step ) );
-			step      = distance > 800 ? Math.round( distance / 30  ) : Math.round( distance / 20  );
-			steps     = [];
-			timer     = 0;
-
-			// Animate scrolling to the top of the page by generating steps to
-			// the top of the page and shifting to each step at a set interval.
-			while ( distance ) {
-				distance -= step;
-				if ( distance < 0 )
-					distance = 0;
-				steps.push( distance );
-
-				setTimeout( function() {
-					window.scrollTo( 0, steps.shift() );
-				}, timer * speed );
-
-				timer++;
-			}
-		};
-
-		addEvent(w, 'load', function() {
-			aB = d.getElementById('wpadminbar');
-
-			if ( d.body && aB ) {
-				d.body.appendChild( aB );
-
-				if ( aB.className )
-					aB.className = aB.className.replace(/nojs/, '');
-
-				addEvent(aB, 'mouseover', function(e) {
-					addHoverClass( e.target || e.srcElement );
-				});
-
-				addEvent(aB, 'mouseout', function(e) {
-					removeHoverClass( e.target || e.srcElement );
-				});
-
-				addEvent(aB, 'click', clickShortlink );
-
-				addEvent(aB, 'click', function(e) {
-					scrollToTop( e.target || e.srcElement );
-				});
-			}
-
-			if ( w.location.hash )
-				w.scrollBy(0,-32);
-		});
-	})(document, window);
-
-}
--- a/web/wp-includes/js/admin-bar.js	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/js/admin-bar.js	Wed Dec 19 17:46:52 2012 -0800
@@ -1,1 +1,318 @@
-if(typeof(jQuery)!="undefined"){if(typeof(jQuery.fn.hoverIntent)=="undefined"){(function(b){b.fn.hoverIntent=function(p,r){var g={sensitivity:7,interval:100,timeout:0};g=b.extend(g,r?{over:p,out:r}:p);var a,f,t,v;var u=function(c){a=c.pageX;f=c.pageY};var w=function(c,d){d.hoverIntent_t=clearTimeout(d.hoverIntent_t);if((Math.abs(t-a)+Math.abs(v-f))<g.sensitivity){b(d).unbind("mousemove",u);d.hoverIntent_s=1;return g.over.apply(d,[c])}else{t=a;v=f;d.hoverIntent_t=setTimeout(function(){w(c,d)},g.interval)}};var s=function(c,d){d.hoverIntent_t=clearTimeout(d.hoverIntent_t);d.hoverIntent_s=0;return g.out.apply(d,[c])};var x=function(e){var d=this;var c=(e.type=="mouseover"?e.fromElement:e.toElement)||e.relatedTarget;while(c&&c!=this){try{c=c.parentNode}catch(e){c=this}}if(c==this){if(b.browser.mozilla){if(e.type=="mouseout"){d.mtout=setTimeout(function(){q(e,d)},30)}else{if(d.mtout){d.mtout=clearTimeout(d.mtout)}}}return}else{if(d.mtout){d.mtout=clearTimeout(d.mtout)}q(e,d)}};var q=function(e,d){var c=jQuery.extend({},e);if(d.hoverIntent_t){d.hoverIntent_t=clearTimeout(d.hoverIntent_t)}if(e.type=="mouseover"){t=c.pageX;v=c.pageY;b(d).bind("mousemove",u);if(d.hoverIntent_s!=1){d.hoverIntent_t=setTimeout(function(){w(c,d)},g.interval)}}else{b(d).unbind("mousemove",u);if(d.hoverIntent_s==1){d.hoverIntent_t=setTimeout(function(){s(c,d)},g.timeout)}}};return this.mouseover(x).mouseout(x)}})(jQuery)}jQuery(document).ready(function(b){var a=function(c,e){var f=b(e),d=f.attr("tabindex");if(d){f.attr("tabindex","0").attr("tabindex",d)}};b("#wpadminbar").removeClass("nojq").removeClass("nojs").find("li.menupop").hoverIntent({over:function(c){b(this).addClass("hover")},out:function(c){b(this).removeClass("hover")},timeout:180,sensitivity:7,interval:100});b("#wp-admin-bar-get-shortlink").click(function(c){c.preventDefault();b(this).addClass("selected").children(".shortlink-input").blur(function(){b(this).parents("#wp-admin-bar-get-shortlink").removeClass("selected")}).focus().select()});b("#wpadminbar li.menupop > .ab-item").bind("keydown.adminbar",function(f){if(f.which!=13){return}var d=b(f.target),c=d.closest("ab-sub-wrapper");f.stopPropagation();f.preventDefault();if(!c.length){c=b("#wpadminbar .quicklinks")}c.find(".menupop").removeClass("hover");d.parent().toggleClass("hover");d.siblings(".ab-sub-wrapper").find(".ab-item").each(a)}).each(a);b("#wpadminbar .ab-item").bind("keydown.adminbar",function(d){if(d.which!=27){return}var c=b(d.target);d.stopPropagation();d.preventDefault();c.closest(".hover").removeClass("hover").children(".ab-item").focus();c.siblings(".ab-sub-wrapper").find(".ab-item").each(a)});b("#wpadminbar").click(function(c){if(c.target.id!="wpadminbar"&&c.target.id!="wp-admin-bar-top-secondary"){return}c.preventDefault();b("html, body").animate({scrollTop:0},"fast")})})}else{(function(j,l){var e=function(o,n,d){if(o.addEventListener){o.addEventListener(n,d,false)}else{if(o.attachEvent){o.attachEvent("on"+n,function(){return d.call(o,window.event)})}}},f,g=new RegExp("\\bhover\\b","g"),b=[],k=new RegExp("\\bselected\\b","g"),h=function(n){var d=b.length;while(d--){if(b[d]&&n==b[d][1]){return b[d][0]}}return false},i=function(u){var o,d,r,n,q,s,v=[],p=0;while(u&&u!=f&&u!=j){if("LI"==u.nodeName.toUpperCase()){v[v.length]=u;d=h(u);if(d){clearTimeout(d)}u.className=u.className?(u.className.replace(g,"")+" hover"):"hover";n=u}u=u.parentNode}if(n&&n.parentNode){q=n.parentNode;if(q&&"UL"==q.nodeName.toUpperCase()){o=q.childNodes.length;while(o--){s=q.childNodes[o];if(s!=n){s.className=s.className?s.className.replace(k,""):""}}}}o=b.length;while(o--){r=false;p=v.length;while(p--){if(v[p]==b[o][1]){r=true}}if(!r){b[o][1].className=b[o][1].className?b[o][1].className.replace(g,""):""}}},m=function(d){while(d&&d!=f&&d!=j){if("LI"==d.nodeName.toUpperCase()){(function(n){var o=setTimeout(function(){n.className=n.className?n.className.replace(g,""):""},500);b[b.length]=[o,n]})(d)}d=d.parentNode}},c=function(q){var o,d,p,n=q.target||q.srcElement;while(true){if(!n||n==j||n==f){return}if(n.id&&n.id=="wp-admin-bar-get-shortlink"){break}n=n.parentNode}if(q.preventDefault){q.preventDefault()}q.returnValue=false;if(-1==n.className.indexOf("selected")){n.className+=" selected"}for(o=0,d=n.childNodes.length;o<d;o++){p=n.childNodes[o];if(p.className&&-1!=p.className.indexOf("shortlink-input")){p.focus();p.select();p.onblur=function(){n.className=n.className?n.className.replace(k,""):""};break}}return false},a=function(n){var s,q,p,d,r,o;if(n.id!="wpadminbar"&&n.id!="wp-admin-bar-top-secondary"){return}s=window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop||0;if(s<1){return}o=s>800?130:100;q=Math.min(12,Math.round(s/o));p=s>800?Math.round(s/30):Math.round(s/20);d=[];r=0;while(s){s-=p;if(s<0){s=0}d.push(s);setTimeout(function(){window.scrollTo(0,d.shift())},r*q);r++}};e(l,"load",function(){f=j.getElementById("wpadminbar");if(j.body&&f){j.body.appendChild(f);if(f.className){f.className=f.className.replace(/nojs/,"")}e(f,"mouseover",function(d){i(d.target||d.srcElement)});e(f,"mouseout",function(d){m(d.target||d.srcElement)});e(f,"click",c);e(f,"click",function(d){a(d.target||d.srcElement)})}if(l.location.hash){l.scrollBy(0,-32)}})})(document,window)};
\ No newline at end of file
+// use jQuery and hoverIntent if loaded
+if ( typeof(jQuery) != 'undefined' ) {
+	if ( typeof(jQuery.fn.hoverIntent) == 'undefined' )
+		(function(a){a.fn.hoverIntent=function(l,j){var m={sensitivity:7,interval:100,timeout:0};m=a.extend(m,j?{over:l,out:j}:l);var o,n,h,d;var e=function(f){o=f.pageX;n=f.pageY};var c=function(g,f){f.hoverIntent_t=clearTimeout(f.hoverIntent_t);if((Math.abs(h-o)+Math.abs(d-n))<m.sensitivity){a(f).unbind("mousemove",e);f.hoverIntent_s=1;return m.over.apply(f,[g])}else{h=o;d=n;f.hoverIntent_t=setTimeout(function(){c(g,f)},m.interval)}};var i=function(g,f){f.hoverIntent_t=clearTimeout(f.hoverIntent_t);f.hoverIntent_s=0;return m.out.apply(f,[g])};var b=function(q){var f=this;var g=(q.type=="mouseover"?q.fromElement:q.toElement)||q.relatedTarget;while(g&&g!=this){try{g=g.parentNode}catch(q){g=this}}if(g==this){if(a.browser.mozilla){if(q.type=="mouseout"){f.mtout=setTimeout(function(){k(q,f)},30)}else{if(f.mtout){f.mtout=clearTimeout(f.mtout)}}}return}else{if(f.mtout){f.mtout=clearTimeout(f.mtout)}k(q,f)}};var k=function(p,f){var g=jQuery.extend({},p);if(f.hoverIntent_t){f.hoverIntent_t=clearTimeout(f.hoverIntent_t)}if(p.type=="mouseover"){h=g.pageX;d=g.pageY;a(f).bind("mousemove",e);if(f.hoverIntent_s!=1){f.hoverIntent_t=setTimeout(function(){c(g,f)},m.interval)}}else{a(f).unbind("mousemove",e);if(f.hoverIntent_s==1){f.hoverIntent_t=setTimeout(function(){i(g,f)},m.timeout)}}};return this.mouseover(b).mouseout(b)}})(jQuery);
+
+	jQuery(document).ready(function($){
+		var adminbar = $('#wpadminbar'), refresh, touchOpen, touchClose, disableHoverIntent = false;
+
+		refresh = function(i, el){ // force the browser to refresh the tabbing index
+			var node = $(el), tab = node.attr('tabindex');
+			if ( tab )
+				node.attr('tabindex', '0').attr('tabindex', tab);
+		};
+
+		touchOpen = function(unbind) {
+			adminbar.find('li.menupop').on('click.wp-mobile-hover', function(e) {
+				var el = $(this);
+
+				if ( !el.hasClass('hover') ) {
+					e.preventDefault();
+					adminbar.find('li.menupop.hover').removeClass('hover');
+					el.addClass('hover');
+				}
+
+				if ( unbind ) {
+					$('li.menupop').off('click.wp-mobile-hover');
+					disableHoverIntent = false;
+				}
+			});
+		};
+
+		touchClose = function() {
+			var mobileEvent = /Mobile\/.+Safari/.test(navigator.userAgent) ? 'touchstart' : 'click';
+			// close any open drop-downs when the click/touch is not on the toolbar
+			$(document.body).on( mobileEvent+'.wp-mobile-hover', function(e) {
+				if ( !$(e.target).closest('#wpadminbar').length )
+					adminbar.find('li.menupop.hover').removeClass('hover');
+			});
+		};
+
+		adminbar.removeClass('nojq').removeClass('nojs');
+
+		if ( 'ontouchstart' in window ) {
+			adminbar.on('touchstart', function(){
+				touchOpen(true);
+				disableHoverIntent = true;
+			});
+			touchClose();
+		} else if ( /IEMobile\/[1-9]/.test(navigator.userAgent) ) {
+			touchOpen();
+			touchClose();
+		}
+
+		adminbar.find('li.menupop').hoverIntent({
+			over: function(e){
+				if ( disableHoverIntent )
+					return;
+
+				$(this).addClass('hover');
+			},
+			out: function(e){
+				if ( disableHoverIntent )
+					return;
+
+				$(this).removeClass('hover');
+			},
+			timeout: 180,
+			sensitivity: 7,
+			interval: 100
+		});
+
+		if ( window.location.hash )
+			window.scrollBy( 0, -32 );
+
+		$('#wp-admin-bar-get-shortlink').click(function(e){
+			e.preventDefault();
+			$(this).addClass('selected').children('.shortlink-input').blur(function(){
+				$(this).parents('#wp-admin-bar-get-shortlink').removeClass('selected');
+			}).focus().select();
+		});
+
+		$('#wpadminbar li.menupop > .ab-item').bind('keydown.adminbar', function(e){
+			if ( e.which != 13 )
+				return;
+
+			var target = $(e.target), wrap = target.closest('ab-sub-wrapper');
+
+			e.stopPropagation();
+			e.preventDefault();
+
+			if ( !wrap.length )
+				wrap = $('#wpadminbar .quicklinks');
+
+			wrap.find('.menupop').removeClass('hover');
+			target.parent().toggleClass('hover');
+			target.siblings('.ab-sub-wrapper').find('.ab-item').each(refresh);
+		}).each(refresh);
+
+		$('#wpadminbar .ab-item').bind('keydown.adminbar', function(e){
+			if ( e.which != 27 )
+				return;
+
+			var target = $(e.target);
+
+			e.stopPropagation();
+			e.preventDefault();
+
+			target.closest('.hover').removeClass('hover').children('.ab-item').focus();
+			target.siblings('.ab-sub-wrapper').find('.ab-item').each(refresh);
+		});
+
+		$('#wpadminbar').click( function(e) {
+			if ( e.target.id != 'wpadminbar' && e.target.id != 'wp-admin-bar-top-secondary' )
+				return;
+
+			e.preventDefault();
+			$('html, body').animate({ scrollTop: 0 }, 'fast');
+		});
+
+		// fix focus bug in WebKit
+		$('.screen-reader-shortcut').keydown( function(e) {
+			if ( 13 != e.which )
+				return;
+
+			var id = $(this).attr('href');
+
+			if ( $.browser.webkit && id && id.charAt(0) == '#' ) {
+				setTimeout(function () {
+					$(id).focus();
+				}, 100);
+			}
+		});
+	});
+} else {
+	(function(d, w) {
+		var addEvent = function( obj, type, fn ) {
+			if ( obj.addEventListener )
+				obj.addEventListener(type, fn, false);
+			else if ( obj.attachEvent )
+				obj.attachEvent('on' + type, function() { return fn.call(obj, window.event);});
+		},
+
+		aB, hc = new RegExp('\\bhover\\b', 'g'), q = [],
+		rselected = new RegExp('\\bselected\\b', 'g'),
+
+		/**
+		 * Get the timeout ID of the given element
+		 */
+		getTOID = function(el) {
+			var i = q.length;
+			while ( i-- ) {
+				if ( q[i] && el == q[i][1] )
+					return q[i][0];
+			}
+			return false;
+		},
+
+		addHoverClass = function(t) {
+			var i, id, inA, hovering, ul, li,
+				ancestors = [],
+				ancestorLength = 0;
+
+			while ( t && t != aB && t != d ) {
+				if ( 'LI' == t.nodeName.toUpperCase() ) {
+					ancestors[ ancestors.length ] = t;
+					id = getTOID(t);
+					if ( id )
+						clearTimeout( id );
+					t.className = t.className ? ( t.className.replace(hc, '') + ' hover' ) : 'hover';
+					hovering = t;
+				}
+				t = t.parentNode;
+			}
+
+			// Remove any selected classes.
+			if ( hovering && hovering.parentNode ) {
+				ul = hovering.parentNode;
+				if ( ul && 'UL' == ul.nodeName.toUpperCase() ) {
+					i = ul.childNodes.length;
+					while ( i-- ) {
+						li = ul.childNodes[i];
+						if ( li != hovering )
+							li.className = li.className ? li.className.replace( rselected, '' ) : '';
+					}
+				}
+			}
+
+			/* remove the hover class for any objects not in the immediate element's ancestry */
+			i = q.length;
+			while ( i-- ) {
+				inA = false;
+				ancestorLength = ancestors.length;
+				while( ancestorLength-- ) {
+					if ( ancestors[ ancestorLength ] == q[i][1] )
+						inA = true;
+				}
+
+				if ( ! inA )
+					q[i][1].className = q[i][1].className ? q[i][1].className.replace(hc, '') : '';
+			}
+		},
+
+		removeHoverClass = function(t) {
+			while ( t && t != aB && t != d ) {
+				if ( 'LI' == t.nodeName.toUpperCase() ) {
+					(function(t) {
+						var to = setTimeout(function() {
+							t.className = t.className ? t.className.replace(hc, '') : '';
+						}, 500);
+						q[q.length] = [to, t];
+					})(t);
+				}
+				t = t.parentNode;
+			}
+		},
+
+		clickShortlink = function(e) {
+			var i, l, node,
+				t = e.target || e.srcElement;
+
+			// Make t the shortlink menu item, or return.
+			while ( true ) {
+				// Check if we've gone past the shortlink node,
+				// or if the user is clicking on the input.
+				if ( ! t || t == d || t == aB )
+					return;
+				// Check if we've found the shortlink node.
+				if ( t.id && t.id == 'wp-admin-bar-get-shortlink' )
+					break;
+				t = t.parentNode;
+			}
+
+			// IE doesn't support preventDefault, and does support returnValue
+			if ( e.preventDefault )
+				e.preventDefault();
+			e.returnValue = false;
+
+			if ( -1 == t.className.indexOf('selected') )
+				t.className += ' selected';
+
+			for ( i = 0, l = t.childNodes.length; i < l; i++ ) {
+				node = t.childNodes[i];
+				if ( node.className && -1 != node.className.indexOf('shortlink-input') ) {
+					node.focus();
+					node.select();
+					node.onblur = function() {
+						t.className = t.className ? t.className.replace( rselected, '' ) : '';
+					};
+					break;
+				}
+			}
+			return false;
+		},
+
+		scrollToTop = function(t) {
+			var distance, speed, step, steps, timer, speed_step;
+
+			// Ensure that the #wpadminbar was the target of the click.
+			if ( t.id != 'wpadminbar' && t.id != 'wp-admin-bar-top-secondary' )
+				return;
+
+			distance    = window.pageYOffset || document.documentElement.scrollTop || document.body.scrollTop || 0;
+
+			if ( distance < 1 )
+				return;
+
+			speed_step = distance > 800 ? 130 : 100;
+			speed     = Math.min( 12, Math.round( distance / speed_step ) );
+			step      = distance > 800 ? Math.round( distance / 30  ) : Math.round( distance / 20  );
+			steps     = [];
+			timer     = 0;
+
+			// Animate scrolling to the top of the page by generating steps to
+			// the top of the page and shifting to each step at a set interval.
+			while ( distance ) {
+				distance -= step;
+				if ( distance < 0 )
+					distance = 0;
+				steps.push( distance );
+
+				setTimeout( function() {
+					window.scrollTo( 0, steps.shift() );
+				}, timer * speed );
+
+				timer++;
+			}
+		};
+
+		addEvent(w, 'load', function() {
+			aB = d.getElementById('wpadminbar');
+
+			if ( d.body && aB ) {
+				d.body.appendChild( aB );
+
+				if ( aB.className )
+					aB.className = aB.className.replace(/nojs/, '');
+
+				addEvent(aB, 'mouseover', function(e) {
+					addHoverClass( e.target || e.srcElement );
+				});
+
+				addEvent(aB, 'mouseout', function(e) {
+					removeHoverClass( e.target || e.srcElement );
+				});
+
+				addEvent(aB, 'click', clickShortlink );
+
+				addEvent(aB, 'click', function(e) {
+					scrollToTop( e.target || e.srcElement );
+				});
+			}
+
+			if ( w.location.hash )
+				w.scrollBy(0,-32);
+		});
+	})(document, window);
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-includes/js/admin-bar.min.js	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,1 @@
+if(typeof(jQuery)!="undefined"){if(typeof(jQuery.fn.hoverIntent)=="undefined"){(function(b){b.fn.hoverIntent=function(p,r){var g={sensitivity:7,interval:100,timeout:0};g=b.extend(g,r?{over:p,out:r}:p);var a,f,t,v;var u=function(c){a=c.pageX;f=c.pageY};var w=function(c,d){d.hoverIntent_t=clearTimeout(d.hoverIntent_t);if((Math.abs(t-a)+Math.abs(v-f))<g.sensitivity){b(d).unbind("mousemove",u);d.hoverIntent_s=1;return g.over.apply(d,[c])}else{t=a;v=f;d.hoverIntent_t=setTimeout(function(){w(c,d)},g.interval)}};var s=function(c,d){d.hoverIntent_t=clearTimeout(d.hoverIntent_t);d.hoverIntent_s=0;return g.out.apply(d,[c])};var x=function(e){var d=this;var c=(e.type=="mouseover"?e.fromElement:e.toElement)||e.relatedTarget;while(c&&c!=this){try{c=c.parentNode}catch(e){c=this}}if(c==this){if(b.browser.mozilla){if(e.type=="mouseout"){d.mtout=setTimeout(function(){q(e,d)},30)}else{if(d.mtout){d.mtout=clearTimeout(d.mtout)}}}return}else{if(d.mtout){d.mtout=clearTimeout(d.mtout)}q(e,d)}};var q=function(e,d){var c=jQuery.extend({},e);if(d.hoverIntent_t){d.hoverIntent_t=clearTimeout(d.hoverIntent_t)}if(e.type=="mouseover"){t=c.pageX;v=c.pageY;b(d).bind("mousemove",u);if(d.hoverIntent_s!=1){d.hoverIntent_t=setTimeout(function(){w(c,d)},g.interval)}}else{b(d).unbind("mousemove",u);if(d.hoverIntent_s==1){d.hoverIntent_t=setTimeout(function(){s(c,d)},g.timeout)}}};return this.mouseover(x).mouseout(x)}})(jQuery)}jQuery(document).ready(function(e){var d=e("#wpadminbar"),c,a,b,f=false;c=function(g,j){var k=e(j),h=k.attr("tabindex");if(h){k.attr("tabindex","0").attr("tabindex",h)}};a=function(g){d.find("li.menupop").on("click.wp-mobile-hover",function(i){var h=e(this);if(!h.hasClass("hover")){i.preventDefault();d.find("li.menupop.hover").removeClass("hover");h.addClass("hover")}if(g){e("li.menupop").off("click.wp-mobile-hover");f=false}})};b=function(){var g=/Mobile\/.+Safari/.test(navigator.userAgent)?"touchstart":"click";e(document.body).on(g+".wp-mobile-hover",function(h){if(!e(h.target).closest("#wpadminbar").length){d.find("li.menupop.hover").removeClass("hover")}})};d.removeClass("nojq").removeClass("nojs");if("ontouchstart" in window){d.on("touchstart",function(){a(true);f=true});b()}else{if(/IEMobile\/[1-9]/.test(navigator.userAgent)){a();b()}}d.find("li.menupop").hoverIntent({over:function(g){if(f){return}e(this).addClass("hover")},out:function(g){if(f){return}e(this).removeClass("hover")},timeout:180,sensitivity:7,interval:100});if(window.location.hash){window.scrollBy(0,-32)}e("#wp-admin-bar-get-shortlink").click(function(g){g.preventDefault();e(this).addClass("selected").children(".shortlink-input").blur(function(){e(this).parents("#wp-admin-bar-get-shortlink").removeClass("selected")}).focus().select()});e("#wpadminbar li.menupop > .ab-item").bind("keydown.adminbar",function(i){if(i.which!=13){return}var h=e(i.target),g=h.closest("ab-sub-wrapper");i.stopPropagation();i.preventDefault();if(!g.length){g=e("#wpadminbar .quicklinks")}g.find(".menupop").removeClass("hover");h.parent().toggleClass("hover");h.siblings(".ab-sub-wrapper").find(".ab-item").each(c)}).each(c);e("#wpadminbar .ab-item").bind("keydown.adminbar",function(h){if(h.which!=27){return}var g=e(h.target);h.stopPropagation();h.preventDefault();g.closest(".hover").removeClass("hover").children(".ab-item").focus();g.siblings(".ab-sub-wrapper").find(".ab-item").each(c)});e("#wpadminbar").click(function(g){if(g.target.id!="wpadminbar"&&g.target.id!="wp-admin-bar-top-secondary"){return}g.preventDefault();e("html, body").animate({scrollTop:0},"fast")});e(".screen-reader-shortcut").keydown(function(g){if(13!=g.which){return}var h=e(this).attr("href");if(e.browser.webkit&&h&&h.charAt(0)=="#"){setTimeout(function(){e(h).focus()},100)}})})}else{(function(j,l){var e=function(o,n,d){if(o.addEventListener){o.addEventListener(n,d,false)}else{if(o.attachEvent){o.attachEvent("on"+n,function(){return d.call(o,window.event)})}}},f,g=new RegExp("\\bhover\\b","g"),b=[],k=new RegExp("\\bselected\\b","g"),h=function(n){var d=b.length;while(d--){if(b[d]&&n==b[d][1]){return b[d][0]}}return false},i=function(u){var o,d,r,n,q,s,v=[],p=0;while(u&&u!=f&&u!=j){if("LI"==u.nodeName.toUpperCase()){v[v.length]=u;d=h(u);if(d){clearTimeout(d)}u.className=u.className?(u.className.replace(g,"")+" hover"):"hover";n=u}u=u.parentNode}if(n&&n.parentNode){q=n.parentNode;if(q&&"UL"==q.nodeName.toUpperCase()){o=q.childNodes.length;while(o--){s=q.childNodes[o];if(s!=n){s.className=s.className?s.className.replace(k,""):""}}}}o=b.length;while(o--){r=false;p=v.length;while(p--){if(v[p]==b[o][1]){r=true}}if(!r){b[o][1].className=b[o][1].className?b[o][1].className.replace(g,""):""}}},m=function(d){while(d&&d!=f&&d!=j){if("LI"==d.nodeName.toUpperCase()){(function(n){var o=setTimeout(function(){n.className=n.className?n.className.replace(g,""):""},500);b[b.length]=[o,n]})(d)}d=d.parentNode}},c=function(q){var o,d,p,n=q.target||q.srcElement;while(true){if(!n||n==j||n==f){return}if(n.id&&n.id=="wp-admin-bar-get-shortlink"){break}n=n.parentNode}if(q.preventDefault){q.preventDefault()}q.returnValue=false;if(-1==n.className.indexOf("selected")){n.className+=" selected"}for(o=0,d=n.childNodes.length;o<d;o++){p=n.childNodes[o];if(p.className&&-1!=p.className.indexOf("shortlink-input")){p.focus();p.select();p.onblur=function(){n.className=n.className?n.className.replace(k,""):""};break}}return false},a=function(n){var s,q,p,d,r,o;if(n.id!="wpadminbar"&&n.id!="wp-admin-bar-top-secondary"){return}s=window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop||0;if(s<1){return}o=s>800?130:100;q=Math.min(12,Math.round(s/o));p=s>800?Math.round(s/30):Math.round(s/20);d=[];r=0;while(s){s-=p;if(s<0){s=0}d.push(s);setTimeout(function(){window.scrollTo(0,d.shift())},r*q);r++}};e(l,"load",function(){f=j.getElementById("wpadminbar");if(j.body&&f){j.body.appendChild(f);if(f.className){f.className=f.className.replace(/nojs/,"")}e(f,"mouseover",function(d){i(d.target||d.srcElement)});e(f,"mouseout",function(d){m(d.target||d.srcElement)});e(f,"click",c);e(f,"click",function(d){a(d.target||d.srcElement)})}if(l.location.hash){l.scrollBy(0,-32)}})})(document,window)};
\ No newline at end of file
--- a/web/wp-includes/js/autosave.dev.js	Wed Dec 19 12:35:13 2012 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,344 +0,0 @@
-var autosave, autosaveLast = '', autosavePeriodical, autosaveOldMessage = '', autosaveDelayPreview = false, notSaved = true, blockSave = false, fullscreen, autosaveLockRelease = true;
-
-jQuery(document).ready( function($) {
-	var dotabkey = true;
-
-	autosaveLast = $('#post #title').val() + $('#post #content').val();
-	autosavePeriodical = $.schedule({time: autosaveL10n.autosaveInterval * 1000, func: function() { autosave(); }, repeat: true, protect: true});
-
-	//Disable autosave after the form has been submitted
-	$("#post").submit(function() {
-		$.cancel(autosavePeriodical);
-		autosaveLockRelease = false;
-	});
-
-	$('input[type="submit"], a.submitdelete', '#submitpost').click(function(){
-		blockSave = true;
-		window.onbeforeunload = null;
-		$(':button, :submit', '#submitpost').each(function(){
-			var t = $(this);
-			if ( t.hasClass('button-primary') )
-				t.addClass('button-primary-disabled');
-			else
-				t.addClass('button-disabled');
-		});
-		if ( $(this).attr('id') == 'publish' )
-			$('#ajax-loading').css('visibility', 'visible');
-		else
-			$('#draft-ajax-loading').css('visibility', 'visible');
-	});
-
-	window.onbeforeunload = function(){
-		var mce = typeof(tinyMCE) != 'undefined' ? tinyMCE.activeEditor : false, title, content;
-
-		if ( mce && !mce.isHidden() ) {
-			if ( mce.isDirty() )
-				return autosaveL10n.saveAlert;
-		} else {
-			if ( fullscreen && fullscreen.settings.visible ) {
-				title = $('#wp-fullscreen-title').val();
-				content = $("#wp_mce_fullscreen").val();
-			} else {
-				title = $('#post #title').val();
-				content = $('#post #content').val();
-			}
-
-			if ( ( title || content ) && title + content != autosaveLast )
-				return autosaveL10n.saveAlert;
-		}
-	};
-
-	$(window).unload( function(e) {
-		if ( ! autosaveLockRelease )
-			return;
-
-		// unload fires (twice) on removing the Thickbox iframe. Make sure we process only the main document unload.
-		if ( e.target && e.target.nodeName != '#document' )
-			return;
-
-		$.ajax({
-			type: 'POST',
-			url: ajaxurl,
-			async: false,
-			data: {
-				action: 'wp-remove-post-lock',
-				_wpnonce: $('#_wpnonce').val(),
-				post_ID: $('#post_ID').val(),
-				active_post_lock: $('#active_post_lock').val()
-			}
-		});
-	} );
-
-	// preview
-	$('#post-preview').click(function(){
-		if ( $('#auto_draft').val() == '1' && notSaved ) {
-			autosaveDelayPreview = true;
-			autosave();
-			return false;
-		}
-		doPreview();
-		return false;
-	});
-
-	doPreview = function() {
-		$('input#wp-preview').val('dopreview');
-		$('form#post').attr('target', 'wp-preview').submit().attr('target', '');
-
-		/*
-		 * Workaround for WebKit bug preventing a form submitting twice to the same action.
-		 * https://bugs.webkit.org/show_bug.cgi?id=28633
-		 */
-		if ( $.browser.safari ) {
-			$('form#post').attr('action', function(index, value) {
-				return value + '?t=' + new Date().getTime();
-			});
-		}
-
-		$('input#wp-preview').val('');
-	}
-
-	//  This code is meant to allow tabbing from Title to Post if tinyMCE is defined.
-	if ( typeof tinyMCE != 'undefined' ) {
-		$('#title')[$.browser.opera ? 'keypress' : 'keydown'](function (e) {
-			if ( e.which == 9 && !e.shiftKey && !e.controlKey && !e.altKey ) {
-				if ( ($('#auto_draft').val() == '1') && ($("#title").val().length > 0) ) { autosave(); }
-				if ( tinyMCE.activeEditor && ! tinyMCE.activeEditor.isHidden() && dotabkey ) {
-					e.preventDefault();
-					dotabkey = false;
-					tinyMCE.activeEditor.focus();
-					return false;
-				}
-			}
-		});
-	}
-
-	// autosave new posts after a title is typed but not if Publish or Save Draft is clicked
-	if ( '1' == $('#auto_draft').val() ) {
-		$('#title').blur( function() {
-			if ( !this.value || $('#auto_draft').val() != '1' )
-				return;
-			delayed_autosave();
-		});
-	}
-});
-
-function autosave_parse_response(response) {
-	var res = wpAjax.parseAjaxResponse(response, 'autosave'), message = '', postID, sup;
-
-	if ( res && res.responses && res.responses.length ) {
-		message = res.responses[0].data; // The saved message or error.
-		// someone else is editing: disable autosave, set errors
-		if ( res.responses[0].supplemental ) {
-			sup = res.responses[0].supplemental;
-			if ( 'disable' == sup['disable_autosave'] ) {
-				autosave = function() {};
-				autosaveLockRelease = false;
-				res = { errors: true };
-			}
-
-			if ( sup['active-post-lock'] ) {
-				jQuery('#active_post_lock').val( sup['active-post-lock'] );
-			}
-
-			if ( sup['alert'] ) {
-				jQuery('#autosave-alert').remove();
-				jQuery('#titlediv').after('<div id="autosave-alert" class="error below-h2"><p>' + sup['alert'] + '</p></div>');
-			}
-
-			jQuery.each(sup, function(selector, value) {
-				if ( selector.match(/^replace-/) ) {
-					jQuery('#'+selector.replace('replace-', '')).val(value);
-				}
-			});
-		}
-
-		// if no errors: add slug UI
-		if ( !res.errors ) {
-			postID = parseInt( res.responses[0].id, 10 );
-			if ( !isNaN(postID) && postID > 0 ) {
-				autosave_update_slug(postID);
-			}
-		}
-	}
-	if ( message ) { // update autosave message
-		jQuery('.autosave-message').html(message);
-	} else if ( autosaveOldMessage && res ) {
-		jQuery('.autosave-message').html( autosaveOldMessage );
-	}
-	return res;
-}
-
-// called when autosaving pre-existing post
-function autosave_saved(response) {
-	blockSave = false;
-	autosave_parse_response(response); // parse the ajax response
-	autosave_enable_buttons(); // re-enable disabled form buttons
-}
-
-// called when autosaving new post
-function autosave_saved_new(response) {
-	blockSave = false;
-	var res = autosave_parse_response(response), postID;
-	if ( res && res.responses.length && !res.errors ) {
-		// An ID is sent only for real auto-saves, not for autosave=0 "keepalive" saves
-		postID = parseInt( res.responses[0].id, 10 );
-		if ( !isNaN(postID) && postID > 0 ) {
-			notSaved = false;
-			jQuery('#auto_draft').val('0'); // No longer an auto-draft
-		}
-		autosave_enable_buttons();
-		if ( autosaveDelayPreview ) {
-			autosaveDelayPreview = false;
-			doPreview();
-		}
-	} else {
-		autosave_enable_buttons(); // re-enable disabled form buttons
-	}
-}
-
-function autosave_update_slug(post_id) {
-	// create slug area only if not already there
-	if ( 'undefined' != makeSlugeditClickable && jQuery.isFunction(makeSlugeditClickable) && !jQuery('#edit-slug-box > *').size() ) {
-		jQuery.post( ajaxurl, {
-				action: 'sample-permalink',
-				post_id: post_id,
-				new_title: fullscreen && fullscreen.settings.visible ? jQuery('#wp-fullscreen-title').val() : jQuery('#title').val(),
-				samplepermalinknonce: jQuery('#samplepermalinknonce').val()
-			},
-			function(data) {
-				if ( data !== '-1' ) {
-					jQuery('#edit-slug-box').html(data);
-					makeSlugeditClickable();
-				}
-			}
-		);
-	}
-}
-
-function autosave_loading() {
-	jQuery('.autosave-message').html(autosaveL10n.savingText);
-}
-
-function autosave_enable_buttons() {
-	// delay that a bit to avoid some rare collisions while the DOM is being updated.
-	setTimeout(function(){
-		jQuery(':button, :submit', '#submitpost').removeAttr('disabled');
-		jQuery('.ajax-loading').css('visibility', 'hidden');
-	}, 500);
-}
-
-function autosave_disable_buttons() {
-	jQuery(':button, :submit', '#submitpost').prop('disabled', true);
-	// Re-enable 5 sec later. Just gives autosave a head start to avoid collisions.
-	setTimeout(autosave_enable_buttons, 5000);
-}
-
-function delayed_autosave() {
-	setTimeout(function(){
-		if ( blockSave )
-			return;
-		autosave();
-	}, 200);
-}
-
-autosave = function() {
-	// (bool) is rich editor enabled and active
-	blockSave = true;
-	var rich = (typeof tinyMCE != "undefined") && tinyMCE.activeEditor && !tinyMCE.activeEditor.isHidden(),
-		post_data, doAutoSave, ed, origStatus, successCallback;
-
-	autosave_disable_buttons();
-
-	post_data = {
-		action: "autosave",
-		post_ID:  jQuery("#post_ID").val() || 0,
-		autosavenonce: jQuery('#autosavenonce').val(),
-		post_type: jQuery('#post_type').val() || "",
-		autosave: 1
-	};
-
-	jQuery('.tags-input').each( function() {
-		post_data[this.name] = this.value;
-	} );
-
-	// We always send the ajax request in order to keep the post lock fresh.
-	// This (bool) tells whether or not to write the post to the DB during the ajax request.
-	doAutoSave = true;
-
-	// No autosave while thickbox is open (media buttons)
-	if ( jQuery("#TB_window").css('display') == 'block' )
-		doAutoSave = false;
-
-	/* Gotta do this up here so we can check the length when tinyMCE is in use */
-	if ( rich && doAutoSave ) {
-		ed = tinyMCE.activeEditor;
-		// Don't run while the TinyMCE spellcheck is on. It resets all found words.
-		if ( ed.plugins.spellchecker && ed.plugins.spellchecker.active ) {
-			doAutoSave = false;
-		} else {
-			if ( 'mce_fullscreen' == ed.id || 'wp_mce_fullscreen' == ed.id )
-				tinyMCE.get('content').setContent(ed.getContent({format : 'raw'}), {format : 'raw'});
-			tinyMCE.triggerSave();
-		}
-	}
-
-	if ( fullscreen && fullscreen.settings.visible ) {
-		post_data["post_title"] = jQuery('#wp-fullscreen-title').val() || '';
-		post_data["content"] = jQuery("#wp_mce_fullscreen").val() || '';
-	} else {
-		post_data["post_title"] = jQuery("#title").val() || '';
-		post_data["content"] = jQuery("#content").val() || '';
-	}
-
-	if ( jQuery('#post_name').val() )
-		post_data["post_name"] = jQuery('#post_name').val();
-
-	// Nothing to save or no change.
-	if ( ( post_data["post_title"].length == 0 && post_data["content"].length == 0 ) || post_data["post_title"] + post_data["content"] == autosaveLast ) {
-		doAutoSave = false;
-	}
-
-	origStatus = jQuery('#original_post_status').val();
-
-	goodcats = ([]);
-	jQuery("[name='post_category[]']:checked").each( function(i) {
-		goodcats.push(this.value);
-	} );
-	post_data["catslist"] = goodcats.join(",");
-
-	if ( jQuery("#comment_status").prop("checked") )
-		post_data["comment_status"] = 'open';
-	if ( jQuery("#ping_status").prop("checked") )
-		post_data["ping_status"] = 'open';
-	if ( jQuery("#excerpt").size() )
-		post_data["excerpt"] = jQuery("#excerpt").val();
-	if ( jQuery("#post_author").size() )
-		post_data["post_author"] = jQuery("#post_author").val();
-	if ( jQuery("#parent_id").val() )
-		post_data["parent_id"] = jQuery("#parent_id").val();
-	post_data["user_ID"] = jQuery("#user-id").val();
-	if ( jQuery('#auto_draft').val() == '1' )
-		post_data["auto_draft"] = '1';
-
-	if ( doAutoSave ) {
-		autosaveLast = post_data["post_title"] + post_data["content"];
-		jQuery(document).triggerHandler('wpcountwords', [ post_data["content"] ]);
-	} else {
-		post_data['autosave'] = 0;
-	}
-
-	if ( post_data["auto_draft"] == '1' ) {
-		successCallback = autosave_saved_new; // new post
-	} else {
-		successCallback = autosave_saved; // pre-existing post
-	}
-
-	autosaveOldMessage = jQuery('#autosave').html();
-	jQuery.ajax({
-		data: post_data,
-		beforeSend: doAutoSave ? autosave_loading : null,
-		type: "POST",
-		url: ajaxurl,
-		success: successCallback
-	});
-}
--- a/web/wp-includes/js/autosave.js	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/js/autosave.js	Wed Dec 19 17:46:52 2012 -0800
@@ -1,1 +1,351 @@
-var autosave,autosaveLast="",autosavePeriodical,autosaveOldMessage="",autosaveDelayPreview=false,notSaved=true,blockSave=false,fullscreen,autosaveLockRelease=true;jQuery(document).ready(function(b){var a=true;autosaveLast=b("#post #title").val()+b("#post #content").val();autosavePeriodical=b.schedule({time:autosaveL10n.autosaveInterval*1000,func:function(){autosave()},repeat:true,protect:true});b("#post").submit(function(){b.cancel(autosavePeriodical);autosaveLockRelease=false});b('input[type="submit"], a.submitdelete',"#submitpost").click(function(){blockSave=true;window.onbeforeunload=null;b(":button, :submit","#submitpost").each(function(){var c=b(this);if(c.hasClass("button-primary")){c.addClass("button-primary-disabled")}else{c.addClass("button-disabled")}});if(b(this).attr("id")=="publish"){b("#ajax-loading").css("visibility","visible")}else{b("#draft-ajax-loading").css("visibility","visible")}});window.onbeforeunload=function(){var c=typeof(tinyMCE)!="undefined"?tinyMCE.activeEditor:false,e,d;if(c&&!c.isHidden()){if(c.isDirty()){return autosaveL10n.saveAlert}}else{if(fullscreen&&fullscreen.settings.visible){e=b("#wp-fullscreen-title").val();d=b("#wp_mce_fullscreen").val()}else{e=b("#post #title").val();d=b("#post #content").val()}if((e||d)&&e+d!=autosaveLast){return autosaveL10n.saveAlert}}};b(window).unload(function(c){if(!autosaveLockRelease){return}if(c.target&&c.target.nodeName!="#document"){return}b.ajax({type:"POST",url:ajaxurl,async:false,data:{action:"wp-remove-post-lock",_wpnonce:b("#_wpnonce").val(),post_ID:b("#post_ID").val(),active_post_lock:b("#active_post_lock").val()}})});b("#post-preview").click(function(){if(b("#auto_draft").val()=="1"&&notSaved){autosaveDelayPreview=true;autosave();return false}doPreview();return false});doPreview=function(){b("input#wp-preview").val("dopreview");b("form#post").attr("target","wp-preview").submit().attr("target","");if(b.browser.safari){b("form#post").attr("action",function(c,d){return d+"?t="+new Date().getTime()})}b("input#wp-preview").val("")};if(typeof tinyMCE!="undefined"){b("#title")[b.browser.opera?"keypress":"keydown"](function(c){if(c.which==9&&!c.shiftKey&&!c.controlKey&&!c.altKey){if((b("#auto_draft").val()=="1")&&(b("#title").val().length>0)){autosave()}if(tinyMCE.activeEditor&&!tinyMCE.activeEditor.isHidden()&&a){c.preventDefault();a=false;tinyMCE.activeEditor.focus();return false}}})}if("1"==b("#auto_draft").val()){b("#title").blur(function(){if(!this.value||b("#auto_draft").val()!="1"){return}delayed_autosave()})}});function autosave_parse_response(c){var d=wpAjax.parseAjaxResponse(c,"autosave"),e="",a,b;if(d&&d.responses&&d.responses.length){e=d.responses[0].data;if(d.responses[0].supplemental){b=d.responses[0].supplemental;if("disable"==b.disable_autosave){autosave=function(){};autosaveLockRelease=false;d={errors:true}}if(b["active-post-lock"]){jQuery("#active_post_lock").val(b["active-post-lock"])}if(b.alert){jQuery("#autosave-alert").remove();jQuery("#titlediv").after('<div id="autosave-alert" class="error below-h2"><p>'+b.alert+"</p></div>")}jQuery.each(b,function(f,g){if(f.match(/^replace-/)){jQuery("#"+f.replace("replace-","")).val(g)}})}if(!d.errors){a=parseInt(d.responses[0].id,10);if(!isNaN(a)&&a>0){autosave_update_slug(a)}}}if(e){jQuery(".autosave-message").html(e)}else{if(autosaveOldMessage&&d){jQuery(".autosave-message").html(autosaveOldMessage)}}return d}function autosave_saved(a){blockSave=false;autosave_parse_response(a);autosave_enable_buttons()}function autosave_saved_new(b){blockSave=false;var c=autosave_parse_response(b),a;if(c&&c.responses.length&&!c.errors){a=parseInt(c.responses[0].id,10);if(!isNaN(a)&&a>0){notSaved=false;jQuery("#auto_draft").val("0")}autosave_enable_buttons();if(autosaveDelayPreview){autosaveDelayPreview=false;doPreview()}}else{autosave_enable_buttons()}}function autosave_update_slug(a){if("undefined"!=makeSlugeditClickable&&jQuery.isFunction(makeSlugeditClickable)&&!jQuery("#edit-slug-box > *").size()){jQuery.post(ajaxurl,{action:"sample-permalink",post_id:a,new_title:fullscreen&&fullscreen.settings.visible?jQuery("#wp-fullscreen-title").val():jQuery("#title").val(),samplepermalinknonce:jQuery("#samplepermalinknonce").val()},function(b){if(b!=="-1"){jQuery("#edit-slug-box").html(b);makeSlugeditClickable()}})}}function autosave_loading(){jQuery(".autosave-message").html(autosaveL10n.savingText)}function autosave_enable_buttons(){setTimeout(function(){jQuery(":button, :submit","#submitpost").removeAttr("disabled");jQuery(".ajax-loading").css("visibility","hidden")},500)}function autosave_disable_buttons(){jQuery(":button, :submit","#submitpost").prop("disabled",true);setTimeout(autosave_enable_buttons,5000)}function delayed_autosave(){setTimeout(function(){if(blockSave){return}autosave()},200)}autosave=function(){blockSave=true;var c=(typeof tinyMCE!="undefined")&&tinyMCE.activeEditor&&!tinyMCE.activeEditor.isHidden(),d,f,b,e,a;autosave_disable_buttons();d={action:"autosave",post_ID:jQuery("#post_ID").val()||0,autosavenonce:jQuery("#autosavenonce").val(),post_type:jQuery("#post_type").val()||"",autosave:1};jQuery(".tags-input").each(function(){d[this.name]=this.value});f=true;if(jQuery("#TB_window").css("display")=="block"){f=false}if(c&&f){b=tinyMCE.activeEditor;if(b.plugins.spellchecker&&b.plugins.spellchecker.active){f=false}else{if("mce_fullscreen"==b.id||"wp_mce_fullscreen"==b.id){tinyMCE.get("content").setContent(b.getContent({format:"raw"}),{format:"raw"})}tinyMCE.triggerSave()}}if(fullscreen&&fullscreen.settings.visible){d.post_title=jQuery("#wp-fullscreen-title").val()||"";d.content=jQuery("#wp_mce_fullscreen").val()||""}else{d.post_title=jQuery("#title").val()||"";d.content=jQuery("#content").val()||""}if(jQuery("#post_name").val()){d.post_name=jQuery("#post_name").val()}if((d.post_title.length==0&&d.content.length==0)||d.post_title+d.content==autosaveLast){f=false}e=jQuery("#original_post_status").val();goodcats=([]);jQuery("[name='post_category[]']:checked").each(function(g){goodcats.push(this.value)});d.catslist=goodcats.join(",");if(jQuery("#comment_status").prop("checked")){d.comment_status="open"}if(jQuery("#ping_status").prop("checked")){d.ping_status="open"}if(jQuery("#excerpt").size()){d.excerpt=jQuery("#excerpt").val()}if(jQuery("#post_author").size()){d.post_author=jQuery("#post_author").val()}if(jQuery("#parent_id").val()){d.parent_id=jQuery("#parent_id").val()}d.user_ID=jQuery("#user-id").val();if(jQuery("#auto_draft").val()=="1"){d.auto_draft="1"}if(f){autosaveLast=d.post_title+d.content;jQuery(document).triggerHandler("wpcountwords",[d.content])}else{d.autosave=0}if(d.auto_draft=="1"){a=autosave_saved_new}else{a=autosave_saved}autosaveOldMessage=jQuery("#autosave").html();jQuery.ajax({data:d,beforeSend:f?autosave_loading:null,type:"POST",url:ajaxurl,success:a})};
\ No newline at end of file
+var autosave, autosaveLast = '', autosavePeriodical, autosaveOldMessage = '', autosaveDelayPreview = false, notSaved = true, blockSave = false, fullscreen, autosaveLockRelease = true;
+
+jQuery(document).ready( function($) {
+
+	autosaveLast = ( $('#post #title').val() || '' ) + ( $('#post #content').val() || '' );
+	autosavePeriodical = $.schedule({time: autosaveL10n.autosaveInterval * 1000, func: function() { autosave(); }, repeat: true, protect: true});
+
+	//Disable autosave after the form has been submitted
+	$("#post").submit(function() {
+		$.cancel(autosavePeriodical);
+		autosaveLockRelease = false;
+	});
+
+	$('input[type="submit"], a.submitdelete', '#submitpost').click(function(){
+		blockSave = true;
+		window.onbeforeunload = null;
+		$(':button, :submit', '#submitpost').each(function(){
+			var t = $(this);
+			if ( t.hasClass('button-primary') )
+				t.addClass('button-primary-disabled');
+			else
+				t.addClass('button-disabled');
+		});
+		if ( $(this).attr('id') == 'publish' )
+			$('#major-publishing-actions .spinner').show();
+		else
+			$('#minor-publishing .spinner').show();
+	});
+
+	window.onbeforeunload = function(){
+		var mce = typeof(tinymce) != 'undefined' ? tinymce.activeEditor : false, title, content;
+
+		if ( mce && !mce.isHidden() ) {
+			if ( mce.isDirty() )
+				return autosaveL10n.saveAlert;
+		} else {
+			if ( fullscreen && fullscreen.settings.visible ) {
+				title = $('#wp-fullscreen-title').val() || '';
+				content = $("#wp_mce_fullscreen").val() || '';
+			} else {
+				title = $('#post #title').val() || '';
+				content = $('#post #content').val() || '';
+			}
+
+			if ( ( title || content ) && title + content != autosaveLast )
+				return autosaveL10n.saveAlert;
+		}
+	};
+
+	$(window).unload( function(e) {
+		if ( ! autosaveLockRelease )
+			return;
+
+		// unload fires (twice) on removing the Thickbox iframe. Make sure we process only the main document unload.
+		if ( e.target && e.target.nodeName != '#document' )
+			return;
+
+		$.ajax({
+			type: 'POST',
+			url: ajaxurl,
+			async: false,
+			data: {
+				action: 'wp-remove-post-lock',
+				_wpnonce: $('#_wpnonce').val(),
+				post_ID: $('#post_ID').val(),
+				active_post_lock: $('#active_post_lock').val()
+			}
+		});
+	} );
+
+	// preview
+	$('#post-preview').click(function(){
+		if ( $('#auto_draft').val() == '1' && notSaved ) {
+			autosaveDelayPreview = true;
+			autosave();
+			return false;
+		}
+		doPreview();
+		return false;
+	});
+
+	doPreview = function() {
+		$('input#wp-preview').val('dopreview');
+		$('form#post').attr('target', 'wp-preview').submit().attr('target', '');
+
+		/*
+		 * Workaround for WebKit bug preventing a form submitting twice to the same action.
+		 * https://bugs.webkit.org/show_bug.cgi?id=28633
+		 */
+		if ( $.browser.safari ) {
+			$('form#post').attr('action', function(index, value) {
+				return value + '?t=' + new Date().getTime();
+			});
+		}
+
+		$('input#wp-preview').val('');
+	}
+
+	// This code is meant to allow tabbing from Title to Post content.
+	$('#title').on('keydown.editor-focus', function(e) {
+		var ed;
+
+		if ( e.which != 9 )
+			return;
+
+		if ( !e.ctrlKey && !e.altKey && !e.shiftKey ) {
+			if ( typeof(tinymce) != 'undefined' )
+				ed = tinymce.get('content');
+
+			if ( ed && !ed.isHidden() ) {
+				$(this).one('keyup', function(e){
+					$('#content_tbl td.mceToolbar > a').focus();
+				});
+			} else {
+				$('#content').focus();
+			}
+
+			e.preventDefault();
+		}
+	});
+
+	// autosave new posts after a title is typed but not if Publish or Save Draft is clicked
+	if ( '1' == $('#auto_draft').val() ) {
+		$('#title').blur( function() {
+			if ( !this.value || $('#auto_draft').val() != '1' )
+				return;
+			delayed_autosave();
+		});
+	}
+});
+
+function autosave_parse_response(response) {
+	var res = wpAjax.parseAjaxResponse(response, 'autosave'), message = '', postID, sup;
+
+	if ( res && res.responses && res.responses.length ) {
+		message = res.responses[0].data; // The saved message or error.
+		// someone else is editing: disable autosave, set errors
+		if ( res.responses[0].supplemental ) {
+			sup = res.responses[0].supplemental;
+			if ( 'disable' == sup['disable_autosave'] ) {
+				autosave = function() {};
+				autosaveLockRelease = false;
+				res = { errors: true };
+			}
+
+			if ( sup['active-post-lock'] ) {
+				jQuery('#active_post_lock').val( sup['active-post-lock'] );
+			}
+
+			if ( sup['alert'] ) {
+				jQuery('#autosave-alert').remove();
+				jQuery('#titlediv').after('<div id="autosave-alert" class="error below-h2"><p>' + sup['alert'] + '</p></div>');
+			}
+
+			jQuery.each(sup, function(selector, value) {
+				if ( selector.match(/^replace-/) ) {
+					jQuery('#'+selector.replace('replace-', '')).val(value);
+				}
+			});
+		}
+
+		// if no errors: add slug UI
+		if ( !res.errors ) {
+			postID = parseInt( res.responses[0].id, 10 );
+			if ( !isNaN(postID) && postID > 0 ) {
+				autosave_update_slug(postID);
+			}
+		}
+	}
+	if ( message ) { // update autosave message
+		jQuery('.autosave-message').html(message);
+	} else if ( autosaveOldMessage && res ) {
+		jQuery('.autosave-message').html( autosaveOldMessage );
+	}
+	return res;
+}
+
+// called when autosaving pre-existing post
+function autosave_saved(response) {
+	blockSave = false;
+	autosave_parse_response(response); // parse the ajax response
+	autosave_enable_buttons(); // re-enable disabled form buttons
+}
+
+// called when autosaving new post
+function autosave_saved_new(response) {
+	blockSave = false;
+	var res = autosave_parse_response(response), postID;
+	if ( res && res.responses.length && !res.errors ) {
+		// An ID is sent only for real auto-saves, not for autosave=0 "keepalive" saves
+		postID = parseInt( res.responses[0].id, 10 );
+		if ( !isNaN(postID) && postID > 0 ) {
+			notSaved = false;
+			jQuery('#auto_draft').val('0'); // No longer an auto-draft
+		}
+		autosave_enable_buttons();
+		if ( autosaveDelayPreview ) {
+			autosaveDelayPreview = false;
+			doPreview();
+		}
+	} else {
+		autosave_enable_buttons(); // re-enable disabled form buttons
+	}
+}
+
+function autosave_update_slug(post_id) {
+	// create slug area only if not already there
+	if ( 'undefined' != makeSlugeditClickable && jQuery.isFunction(makeSlugeditClickable) && !jQuery('#edit-slug-box > *').size() ) {
+		jQuery.post( ajaxurl, {
+				action: 'sample-permalink',
+				post_id: post_id,
+				new_title: fullscreen && fullscreen.settings.visible ? jQuery('#wp-fullscreen-title').val() : jQuery('#title').val(),
+				samplepermalinknonce: jQuery('#samplepermalinknonce').val()
+			},
+			function(data) {
+				if ( data !== '-1' ) {
+					jQuery('#edit-slug-box').html(data);
+					makeSlugeditClickable();
+				}
+			}
+		);
+	}
+}
+
+function autosave_loading() {
+	jQuery('.autosave-message').html(autosaveL10n.savingText);
+}
+
+function autosave_enable_buttons() {
+	// delay that a bit to avoid some rare collisions while the DOM is being updated.
+	setTimeout(function(){
+		jQuery(':button, :submit', '#submitpost').removeAttr('disabled');
+		jQuery('.spinner', '#submitpost').hide();
+	}, 500);
+}
+
+function autosave_disable_buttons() {
+	jQuery(':button, :submit', '#submitpost').prop('disabled', true);
+	// Re-enable 5 sec later. Just gives autosave a head start to avoid collisions.
+	setTimeout(autosave_enable_buttons, 5000);
+}
+
+function delayed_autosave() {
+	setTimeout(function(){
+		if ( blockSave )
+			return;
+		autosave();
+	}, 200);
+}
+
+autosave = function() {
+	// (bool) is rich editor enabled and active
+	blockSave = true;
+	var rich = (typeof tinymce != "undefined") && tinymce.activeEditor && !tinymce.activeEditor.isHidden(),
+		post_data, doAutoSave, ed, origStatus, successCallback;
+
+	autosave_disable_buttons();
+
+	post_data = {
+		action: "autosave",
+		post_ID:  jQuery("#post_ID").val() || 0,
+		autosavenonce: jQuery('#autosavenonce').val(),
+		post_type: jQuery('#post_type').val() || "",
+		autosave: 1
+	};
+
+	jQuery('.tags-input').each( function() {
+		post_data[this.name] = this.value;
+	} );
+
+	// We always send the ajax request in order to keep the post lock fresh.
+	// This (bool) tells whether or not to write the post to the DB during the ajax request.
+	doAutoSave = true;
+
+	// No autosave while thickbox is open (media buttons)
+	if ( jQuery("#TB_window").css('display') == 'block' )
+		doAutoSave = false;
+
+	/* Gotta do this up here so we can check the length when tinymce is in use */
+	if ( rich && doAutoSave ) {
+		ed = tinymce.activeEditor;
+		// Don't run while the tinymce spellcheck is on. It resets all found words.
+		if ( ed.plugins.spellchecker && ed.plugins.spellchecker.active ) {
+			doAutoSave = false;
+		} else {
+			if ( 'mce_fullscreen' == ed.id || 'wp_mce_fullscreen' == ed.id )
+				tinymce.get('content').setContent(ed.getContent({format : 'raw'}), {format : 'raw'});
+			tinymce.triggerSave();
+		}
+	}
+
+	if ( fullscreen && fullscreen.settings.visible ) {
+		post_data["post_title"] = jQuery('#wp-fullscreen-title').val() || '';
+		post_data["content"] = jQuery("#wp_mce_fullscreen").val() || '';
+	} else {
+		post_data["post_title"] = jQuery("#title").val() || '';
+		post_data["content"] = jQuery("#content").val() || '';
+	}
+
+	if ( jQuery('#post_name').val() )
+		post_data["post_name"] = jQuery('#post_name').val();
+
+	// Nothing to save or no change.
+	if ( ( post_data["post_title"].length == 0 && post_data["content"].length == 0 ) || post_data["post_title"] + post_data["content"] == autosaveLast ) {
+		doAutoSave = false;
+	}
+
+	origStatus = jQuery('#original_post_status').val();
+
+	goodcats = ([]);
+	jQuery("[name='post_category[]']:checked").each( function(i) {
+		goodcats.push(this.value);
+	} );
+	post_data["catslist"] = goodcats.join(",");
+
+	if ( jQuery("#comment_status").prop("checked") )
+		post_data["comment_status"] = 'open';
+	if ( jQuery("#ping_status").prop("checked") )
+		post_data["ping_status"] = 'open';
+	if ( jQuery("#excerpt").size() )
+		post_data["excerpt"] = jQuery("#excerpt").val();
+	if ( jQuery("#post_author").size() )
+		post_data["post_author"] = jQuery("#post_author").val();
+	if ( jQuery("#parent_id").val() )
+		post_data["parent_id"] = jQuery("#parent_id").val();
+	post_data["user_ID"] = jQuery("#user-id").val();
+	if ( jQuery('#auto_draft').val() == '1' )
+		post_data["auto_draft"] = '1';
+
+	if ( doAutoSave ) {
+		autosaveLast = post_data["post_title"] + post_data["content"];
+		jQuery(document).triggerHandler('wpcountwords', [ post_data["content"] ]);
+	} else {
+		post_data['autosave'] = 0;
+	}
+
+	if ( post_data["auto_draft"] == '1' ) {
+		successCallback = autosave_saved_new; // new post
+	} else {
+		successCallback = autosave_saved; // pre-existing post
+	}
+
+	autosaveOldMessage = jQuery('#autosave').html();
+	jQuery.ajax({
+		data: post_data,
+		beforeSend: doAutoSave ? autosave_loading : null,
+		type: "POST",
+		url: ajaxurl,
+		success: successCallback
+	});
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-includes/js/autosave.min.js	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,1 @@
+var autosave,autosaveLast="",autosavePeriodical,autosaveOldMessage="",autosaveDelayPreview=false,notSaved=true,blockSave=false,fullscreen,autosaveLockRelease=true;jQuery(document).ready(function(a){autosaveLast=(a("#post #title").val()||"")+(a("#post #content").val()||"");autosavePeriodical=a.schedule({time:autosaveL10n.autosaveInterval*1000,func:function(){autosave()},repeat:true,protect:true});a("#post").submit(function(){a.cancel(autosavePeriodical);autosaveLockRelease=false});a('input[type="submit"], a.submitdelete',"#submitpost").click(function(){blockSave=true;window.onbeforeunload=null;a(":button, :submit","#submitpost").each(function(){var b=a(this);if(b.hasClass("button-primary")){b.addClass("button-primary-disabled")}else{b.addClass("button-disabled")}});if(a(this).attr("id")=="publish"){a("#major-publishing-actions .spinner").show()}else{a("#minor-publishing .spinner").show()}});window.onbeforeunload=function(){var b=typeof(tinymce)!="undefined"?tinymce.activeEditor:false,d,c;if(b&&!b.isHidden()){if(b.isDirty()){return autosaveL10n.saveAlert}}else{if(fullscreen&&fullscreen.settings.visible){d=a("#wp-fullscreen-title").val()||"";c=a("#wp_mce_fullscreen").val()||""}else{d=a("#post #title").val()||"";c=a("#post #content").val()||""}if((d||c)&&d+c!=autosaveLast){return autosaveL10n.saveAlert}}};a(window).unload(function(b){if(!autosaveLockRelease){return}if(b.target&&b.target.nodeName!="#document"){return}a.ajax({type:"POST",url:ajaxurl,async:false,data:{action:"wp-remove-post-lock",_wpnonce:a("#_wpnonce").val(),post_ID:a("#post_ID").val(),active_post_lock:a("#active_post_lock").val()}})});a("#post-preview").click(function(){if(a("#auto_draft").val()=="1"&&notSaved){autosaveDelayPreview=true;autosave();return false}doPreview();return false});doPreview=function(){a("input#wp-preview").val("dopreview");a("form#post").attr("target","wp-preview").submit().attr("target","");if(a.browser.safari){a("form#post").attr("action",function(b,c){return c+"?t="+new Date().getTime()})}a("input#wp-preview").val("")};a("#title").on("keydown.editor-focus",function(c){var b;if(c.which!=9){return}if(!c.ctrlKey&&!c.altKey&&!c.shiftKey){if(typeof(tinymce)!="undefined"){b=tinymce.get("content")}if(b&&!b.isHidden()){a(this).one("keyup",function(d){a("#content_tbl td.mceToolbar > a").focus()})}else{a("#content").focus()}c.preventDefault()}});if("1"==a("#auto_draft").val()){a("#title").blur(function(){if(!this.value||a("#auto_draft").val()!="1"){return}delayed_autosave()})}});function autosave_parse_response(c){var d=wpAjax.parseAjaxResponse(c,"autosave"),e="",a,b;if(d&&d.responses&&d.responses.length){e=d.responses[0].data;if(d.responses[0].supplemental){b=d.responses[0].supplemental;if("disable"==b.disable_autosave){autosave=function(){};autosaveLockRelease=false;d={errors:true}}if(b["active-post-lock"]){jQuery("#active_post_lock").val(b["active-post-lock"])}if(b.alert){jQuery("#autosave-alert").remove();jQuery("#titlediv").after('<div id="autosave-alert" class="error below-h2"><p>'+b.alert+"</p></div>")}jQuery.each(b,function(f,g){if(f.match(/^replace-/)){jQuery("#"+f.replace("replace-","")).val(g)}})}if(!d.errors){a=parseInt(d.responses[0].id,10);if(!isNaN(a)&&a>0){autosave_update_slug(a)}}}if(e){jQuery(".autosave-message").html(e)}else{if(autosaveOldMessage&&d){jQuery(".autosave-message").html(autosaveOldMessage)}}return d}function autosave_saved(a){blockSave=false;autosave_parse_response(a);autosave_enable_buttons()}function autosave_saved_new(b){blockSave=false;var c=autosave_parse_response(b),a;if(c&&c.responses.length&&!c.errors){a=parseInt(c.responses[0].id,10);if(!isNaN(a)&&a>0){notSaved=false;jQuery("#auto_draft").val("0")}autosave_enable_buttons();if(autosaveDelayPreview){autosaveDelayPreview=false;doPreview()}}else{autosave_enable_buttons()}}function autosave_update_slug(a){if("undefined"!=makeSlugeditClickable&&jQuery.isFunction(makeSlugeditClickable)&&!jQuery("#edit-slug-box > *").size()){jQuery.post(ajaxurl,{action:"sample-permalink",post_id:a,new_title:fullscreen&&fullscreen.settings.visible?jQuery("#wp-fullscreen-title").val():jQuery("#title").val(),samplepermalinknonce:jQuery("#samplepermalinknonce").val()},function(b){if(b!=="-1"){jQuery("#edit-slug-box").html(b);makeSlugeditClickable()}})}}function autosave_loading(){jQuery(".autosave-message").html(autosaveL10n.savingText)}function autosave_enable_buttons(){setTimeout(function(){jQuery(":button, :submit","#submitpost").removeAttr("disabled");jQuery(".spinner","#submitpost").hide()},500)}function autosave_disable_buttons(){jQuery(":button, :submit","#submitpost").prop("disabled",true);setTimeout(autosave_enable_buttons,5000)}function delayed_autosave(){setTimeout(function(){if(blockSave){return}autosave()},200)}autosave=function(){blockSave=true;var c=(typeof tinymce!="undefined")&&tinymce.activeEditor&&!tinymce.activeEditor.isHidden(),d,f,b,e,a;autosave_disable_buttons();d={action:"autosave",post_ID:jQuery("#post_ID").val()||0,autosavenonce:jQuery("#autosavenonce").val(),post_type:jQuery("#post_type").val()||"",autosave:1};jQuery(".tags-input").each(function(){d[this.name]=this.value});f=true;if(jQuery("#TB_window").css("display")=="block"){f=false}if(c&&f){b=tinymce.activeEditor;if(b.plugins.spellchecker&&b.plugins.spellchecker.active){f=false}else{if("mce_fullscreen"==b.id||"wp_mce_fullscreen"==b.id){tinymce.get("content").setContent(b.getContent({format:"raw"}),{format:"raw"})}tinymce.triggerSave()}}if(fullscreen&&fullscreen.settings.visible){d.post_title=jQuery("#wp-fullscreen-title").val()||"";d.content=jQuery("#wp_mce_fullscreen").val()||""}else{d.post_title=jQuery("#title").val()||"";d.content=jQuery("#content").val()||""}if(jQuery("#post_name").val()){d.post_name=jQuery("#post_name").val()}if((d.post_title.length==0&&d.content.length==0)||d.post_title+d.content==autosaveLast){f=false}e=jQuery("#original_post_status").val();goodcats=([]);jQuery("[name='post_category[]']:checked").each(function(g){goodcats.push(this.value)});d.catslist=goodcats.join(",");if(jQuery("#comment_status").prop("checked")){d.comment_status="open"}if(jQuery("#ping_status").prop("checked")){d.ping_status="open"}if(jQuery("#excerpt").size()){d.excerpt=jQuery("#excerpt").val()}if(jQuery("#post_author").size()){d.post_author=jQuery("#post_author").val()}if(jQuery("#parent_id").val()){d.parent_id=jQuery("#parent_id").val()}d.user_ID=jQuery("#user-id").val();if(jQuery("#auto_draft").val()=="1"){d.auto_draft="1"}if(f){autosaveLast=d.post_title+d.content;jQuery(document).triggerHandler("wpcountwords",[d.content])}else{d.autosave=0}if(d.auto_draft=="1"){a=autosave_saved_new}else{a=autosave_saved}autosaveOldMessage=jQuery("#autosave").html();jQuery.ajax({data:d,beforeSend:f?autosave_loading:null,type:"POST",url:ajaxurl,success:a})};
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-includes/js/backbone.min.js	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,38 @@
+// Backbone.js 0.9.2
+
+// (c) 2010-2012 Jeremy Ashkenas, DocumentCloud Inc.
+// Backbone may be freely distributed under the MIT license.
+// For all details and documentation:
+// http://backbonejs.org
+(function(){var l=this,y=l.Backbone,z=Array.prototype.slice,A=Array.prototype.splice,g;g="undefined"!==typeof exports?exports:l.Backbone={};g.VERSION="0.9.2";var f=l._;!f&&"undefined"!==typeof require&&(f=require("underscore"));var i=l.jQuery||l.Zepto||l.ender;g.setDomLibrary=function(a){i=a};g.noConflict=function(){l.Backbone=y;return this};g.emulateHTTP=!1;g.emulateJSON=!1;var p=/\s+/,k=g.Events={on:function(a,b,c){var d,e,f,g,j;if(!b)return this;a=a.split(p);for(d=this._callbacks||(this._callbacks=
+{});e=a.shift();)f=(j=d[e])?j.tail:{},f.next=g={},f.context=c,f.callback=b,d[e]={tail:g,next:j?j.next:f};return this},off:function(a,b,c){var d,e,h,g,j,q;if(e=this._callbacks){if(!a&&!b&&!c)return delete this._callbacks,this;for(a=a?a.split(p):f.keys(e);d=a.shift();)if(h=e[d],delete e[d],h&&(b||c))for(g=h.tail;(h=h.next)!==g;)if(j=h.callback,q=h.context,b&&j!==b||c&&q!==c)this.on(d,j,q);return this}},trigger:function(a){var b,c,d,e,f,g;if(!(d=this._callbacks))return this;f=d.all;a=a.split(p);for(g=
+z.call(arguments,1);b=a.shift();){if(c=d[b])for(e=c.tail;(c=c.next)!==e;)c.callback.apply(c.context||this,g);if(c=f){e=c.tail;for(b=[b].concat(g);(c=c.next)!==e;)c.callback.apply(c.context||this,b)}}return this}};k.bind=k.on;k.unbind=k.off;var o=g.Model=function(a,b){var c;a||(a={});b&&b.parse&&(a=this.parse(a));if(c=n(this,"defaults"))a=f.extend({},c,a);b&&b.collection&&(this.collection=b.collection);this.attributes={};this._escapedAttributes={};this.cid=f.uniqueId("c");this.changed={};this._silent=
+{};this._pending={};this.set(a,{silent:!0});this.changed={};this._silent={};this._pending={};this._previousAttributes=f.clone(this.attributes);this.initialize.apply(this,arguments)};f.extend(o.prototype,k,{changed:null,_silent:null,_pending:null,idAttribute:"id",initialize:function(){},toJSON:function(){return f.clone(this.attributes)},get:function(a){return this.attributes[a]},escape:function(a){var b;if(b=this._escapedAttributes[a])return b;b=this.get(a);return this._escapedAttributes[a]=f.escape(null==
+b?"":""+b)},has:function(a){return null!=this.get(a)},set:function(a,b,c){var d,e;f.isObject(a)||null==a?(d=a,c=b):(d={},d[a]=b);c||(c={});if(!d)return this;d instanceof o&&(d=d.attributes);if(c.unset)for(e in d)d[e]=void 0;if(!this._validate(d,c))return!1;this.idAttribute in d&&(this.id=d[this.idAttribute]);var b=c.changes={},h=this.attributes,g=this._escapedAttributes,j=this._previousAttributes||{};for(e in d){a=d[e];if(!f.isEqual(h[e],a)||c.unset&&f.has(h,e))delete g[e],(c.silent?this._silent:
+b)[e]=!0;c.unset?delete h[e]:h[e]=a;!f.isEqual(j[e],a)||f.has(h,e)!=f.has(j,e)?(this.changed[e]=a,c.silent||(this._pending[e]=!0)):(delete this.changed[e],delete this._pending[e])}c.silent||this.change(c);return this},unset:function(a,b){(b||(b={})).unset=!0;return this.set(a,null,b)},clear:function(a){(a||(a={})).unset=!0;return this.set(f.clone(this.attributes),a)},fetch:function(a){var a=a?f.clone(a):{},b=this,c=a.success;a.success=function(d,e,f){if(!b.set(b.parse(d,f),a))return!1;c&&c(b,d)};
+a.error=g.wrapError(a.error,b,a);return(this.sync||g.sync).call(this,"read",this,a)},save:function(a,b,c){var d,e;f.isObject(a)||null==a?(d=a,c=b):(d={},d[a]=b);c=c?f.clone(c):{};if(c.wait){if(!this._validate(d,c))return!1;e=f.clone(this.attributes)}a=f.extend({},c,{silent:!0});if(d&&!this.set(d,c.wait?a:c))return!1;var h=this,i=c.success;c.success=function(a,b,e){b=h.parse(a,e);if(c.wait){delete c.wait;b=f.extend(d||{},b)}if(!h.set(b,c))return false;i?i(h,a):h.trigger("sync",h,a,c)};c.error=g.wrapError(c.error,
+h,c);b=this.isNew()?"create":"update";b=(this.sync||g.sync).call(this,b,this,c);c.wait&&this.set(e,a);return b},destroy:function(a){var a=a?f.clone(a):{},b=this,c=a.success,d=function(){b.trigger("destroy",b,b.collection,a)};if(this.isNew())return d(),!1;a.success=function(e){a.wait&&d();c?c(b,e):b.trigger("sync",b,e,a)};a.error=g.wrapError(a.error,b,a);var e=(this.sync||g.sync).call(this,"delete",this,a);a.wait||d();return e},url:function(){var a=n(this,"urlRoot")||n(this.collection,"url")||t();
+return this.isNew()?a:a+("/"==a.charAt(a.length-1)?"":"/")+encodeURIComponent(this.id)},parse:function(a){return a},clone:function(){return new this.constructor(this.attributes)},isNew:function(){return null==this.id},change:function(a){a||(a={});var b=this._changing;this._changing=!0;for(var c in this._silent)this._pending[c]=!0;var d=f.extend({},a.changes,this._silent);this._silent={};for(c in d)this.trigger("change:"+c,this,this.get(c),a);if(b)return this;for(;!f.isEmpty(this._pending);){this._pending=
+{};this.trigger("change",this,a);for(c in this.changed)!this._pending[c]&&!this._silent[c]&&delete this.changed[c];this._previousAttributes=f.clone(this.attributes)}this._changing=!1;return this},hasChanged:function(a){return!arguments.length?!f.isEmpty(this.changed):f.has(this.changed,a)},changedAttributes:function(a){if(!a)return this.hasChanged()?f.clone(this.changed):!1;var b,c=!1,d=this._previousAttributes,e;for(e in a)if(!f.isEqual(d[e],b=a[e]))(c||(c={}))[e]=b;return c},previous:function(a){return!arguments.length||
+!this._previousAttributes?null:this._previousAttributes[a]},previousAttributes:function(){return f.clone(this._previousAttributes)},isValid:function(){return!this.validate(this.attributes)},_validate:function(a,b){if(b.silent||!this.validate)return!0;var a=f.extend({},this.attributes,a),c=this.validate(a,b);if(!c)return!0;b&&b.error?b.error(this,c,b):this.trigger("error",this,c,b);return!1}});var r=g.Collection=function(a,b){b||(b={});b.model&&(this.model=b.model);b.comparator&&(this.comparator=b.comparator);
+this._reset();this.initialize.apply(this,arguments);a&&this.reset(a,{silent:!0,parse:b.parse})};f.extend(r.prototype,k,{model:o,initialize:function(){},toJSON:function(a){return this.map(function(b){return b.toJSON(a)})},add:function(a,b){var c,d,e,g,i,j={},k={},l=[];b||(b={});a=f.isArray(a)?a.slice():[a];c=0;for(d=a.length;c<d;c++){if(!(e=a[c]=this._prepareModel(a[c],b)))throw Error("Can't add an invalid model to a collection");g=e.cid;i=e.id;j[g]||this._byCid[g]||null!=i&&(k[i]||this._byId[i])?
+l.push(c):j[g]=k[i]=e}for(c=l.length;c--;)a.splice(l[c],1);c=0;for(d=a.length;c<d;c++)(e=a[c]).on("all",this._onModelEvent,this),this._byCid[e.cid]=e,null!=e.id&&(this._byId[e.id]=e);this.length+=d;A.apply(this.models,[null!=b.at?b.at:this.models.length,0].concat(a));this.comparator&&this.sort({silent:!0});if(b.silent)return this;c=0;for(d=this.models.length;c<d;c++)if(j[(e=this.models[c]).cid])b.index=c,e.trigger("add",e,this,b);return this},remove:function(a,b){var c,d,e,g;b||(b={});a=f.isArray(a)?
+a.slice():[a];c=0;for(d=a.length;c<d;c++)if(g=this.getByCid(a[c])||this.get(a[c]))delete this._byId[g.id],delete this._byCid[g.cid],e=this.indexOf(g),this.models.splice(e,1),this.length--,b.silent||(b.index=e,g.trigger("remove",g,this,b)),this._removeReference(g);return this},push:function(a,b){a=this._prepareModel(a,b);this.add(a,b);return a},pop:function(a){var b=this.at(this.length-1);this.remove(b,a);return b},unshift:function(a,b){a=this._prepareModel(a,b);this.add(a,f.extend({at:0},b));return a},
+shift:function(a){var b=this.at(0);this.remove(b,a);return b},get:function(a){return null==a?void 0:this._byId[null!=a.id?a.id:a]},getByCid:function(a){return a&&this._byCid[a.cid||a]},at:function(a){return this.models[a]},where:function(a){return f.isEmpty(a)?[]:this.filter(function(b){for(var c in a)if(a[c]!==b.get(c))return!1;return!0})},sort:function(a){a||(a={});if(!this.comparator)throw Error("Cannot sort a set without a comparator");var b=f.bind(this.comparator,this);1==this.comparator.length?
+this.models=this.sortBy(b):this.models.sort(b);a.silent||this.trigger("reset",this,a);return this},pluck:function(a){return f.map(this.models,function(b){return b.get(a)})},reset:function(a,b){a||(a=[]);b||(b={});for(var c=0,d=this.models.length;c<d;c++)this._removeReference(this.models[c]);this._reset();this.add(a,f.extend({silent:!0},b));b.silent||this.trigger("reset",this,b);return this},fetch:function(a){a=a?f.clone(a):{};void 0===a.parse&&(a.parse=!0);var b=this,c=a.success;a.success=function(d,
+e,f){b[a.add?"add":"reset"](b.parse(d,f),a);c&&c(b,d)};a.error=g.wrapError(a.error,b,a);return(this.sync||g.sync).call(this,"read",this,a)},create:function(a,b){var c=this,b=b?f.clone(b):{},a=this._prepareModel(a,b);if(!a)return!1;b.wait||c.add(a,b);var d=b.success;b.success=function(e,f){b.wait&&c.add(e,b);d?d(e,f):e.trigger("sync",a,f,b)};a.save(null,b);return a},parse:function(a){return a},chain:function(){return f(this.models).chain()},_reset:function(){this.length=0;this.models=[];this._byId=
+{};this._byCid={}},_prepareModel:function(a,b){b||(b={});a instanceof o?a.collection||(a.collection=this):(b.collection=this,a=new this.model(a,b),a._validate(a.attributes,b)||(a=!1));return a},_removeReference:function(a){this==a.collection&&delete a.collection;a.off("all",this._onModelEvent,this)},_onModelEvent:function(a,b,c,d){("add"==a||"remove"==a)&&c!=this||("destroy"==a&&this.remove(b,d),b&&a==="change:"+b.idAttribute&&(delete this._byId[b.previous(b.idAttribute)],this._byId[b.id]=b),this.trigger.apply(this,
+arguments))}});f.each("forEach,each,map,reduce,reduceRight,find,detect,filter,select,reject,every,all,some,any,include,contains,invoke,max,min,sortBy,sortedIndex,toArray,size,first,initial,rest,last,without,indexOf,shuffle,lastIndexOf,isEmpty,groupBy".split(","),function(a){r.prototype[a]=function(){return f[a].apply(f,[this.models].concat(f.toArray(arguments)))}});var u=g.Router=function(a){a||(a={});a.routes&&(this.routes=a.routes);this._bindRoutes();this.initialize.apply(this,arguments)},B=/:\w+/g,
+C=/\*\w+/g,D=/[-[\]{}()+?.,\\^$|#\s]/g;f.extend(u.prototype,k,{initialize:function(){},route:function(a,b,c){g.history||(g.history=new m);f.isRegExp(a)||(a=this._routeToRegExp(a));c||(c=this[b]);g.history.route(a,f.bind(function(d){d=this._extractParameters(a,d);c&&c.apply(this,d);this.trigger.apply(this,["route:"+b].concat(d));g.history.trigger("route",this,b,d)},this));return this},navigate:function(a,b){g.history.navigate(a,b)},_bindRoutes:function(){if(this.routes){var a=[],b;for(b in this.routes)a.unshift([b,
+this.routes[b]]);b=0;for(var c=a.length;b<c;b++)this.route(a[b][0],a[b][1],this[a[b][1]])}},_routeToRegExp:function(a){a=a.replace(D,"\\$&").replace(B,"([^/]+)").replace(C,"(.*?)");return RegExp("^"+a+"$")},_extractParameters:function(a,b){return a.exec(b).slice(1)}});var m=g.History=function(){this.handlers=[];f.bindAll(this,"checkUrl")},s=/^[#\/]/,E=/msie [\w.]+/;m.started=!1;f.extend(m.prototype,k,{interval:50,getHash:function(a){return(a=(a?a.location:window.location).href.match(/#(.*)$/))?a[1]:
+""},getFragment:function(a,b){if(null==a)if(this._hasPushState||b){var a=window.location.pathname,c=window.location.search;c&&(a+=c)}else a=this.getHash();a.indexOf(this.options.root)||(a=a.substr(this.options.root.length));return a.replace(s,"")},start:function(a){if(m.started)throw Error("Backbone.history has already been started");m.started=!0;this.options=f.extend({},{root:"/"},this.options,a);this._wantsHashChange=!1!==this.options.hashChange;this._wantsPushState=!!this.options.pushState;this._hasPushState=
+!(!this.options.pushState||!window.history||!window.history.pushState);var a=this.getFragment(),b=document.documentMode;if(b=E.exec(navigator.userAgent.toLowerCase())&&(!b||7>=b))this.iframe=i('<iframe src="javascript:0" tabindex="-1" />').hide().appendTo("body")[0].contentWindow,this.navigate(a);this._hasPushState?i(window).bind("popstate",this.checkUrl):this._wantsHashChange&&"onhashchange"in window&&!b?i(window).bind("hashchange",this.checkUrl):this._wantsHashChange&&(this._checkUrlInterval=setInterval(this.checkUrl,
+this.interval));this.fragment=a;a=window.location;b=a.pathname==this.options.root;if(this._wantsHashChange&&this._wantsPushState&&!this._hasPushState&&!b)return this.fragment=this.getFragment(null,!0),window.location.replace(this.options.root+"#"+this.fragment),!0;this._wantsPushState&&this._hasPushState&&b&&a.hash&&(this.fragment=this.getHash().replace(s,""),window.history.replaceState({},document.title,a.protocol+"//"+a.host+this.options.root+this.fragment));if(!this.options.silent)return this.loadUrl()},
+stop:function(){i(window).unbind("popstate",this.checkUrl).unbind("hashchange",this.checkUrl);clearInterval(this._checkUrlInterval);m.started=!1},route:function(a,b){this.handlers.unshift({route:a,callback:b})},checkUrl:function(){var a=this.getFragment();a==this.fragment&&this.iframe&&(a=this.getFragment(this.getHash(this.iframe)));if(a==this.fragment)return!1;this.iframe&&this.navigate(a);this.loadUrl()||this.loadUrl(this.getHash())},loadUrl:function(a){var b=this.fragment=this.getFragment(a);return f.any(this.handlers,
+function(a){if(a.route.test(b))return a.callback(b),!0})},navigate:function(a,b){if(!m.started)return!1;if(!b||!0===b)b={trigger:b};var c=(a||"").replace(s,"");this.fragment!=c&&(this._hasPushState?(0!=c.indexOf(this.options.root)&&(c=this.options.root+c),this.fragment=c,window.history[b.replace?"replaceState":"pushState"]({},document.title,c)):this._wantsHashChange?(this.fragment=c,this._updateHash(window.location,c,b.replace),this.iframe&&c!=this.getFragment(this.getHash(this.iframe))&&(b.replace||
+this.iframe.document.open().close(),this._updateHash(this.iframe.location,c,b.replace))):window.location.assign(this.options.root+a),b.trigger&&this.loadUrl(a))},_updateHash:function(a,b,c){c?a.replace(a.toString().replace(/(javascript:|#).*$/,"")+"#"+b):a.hash=b}});var v=g.View=function(a){this.cid=f.uniqueId("view");this._configure(a||{});this._ensureElement();this.initialize.apply(this,arguments);this.delegateEvents()},F=/^(\S+)\s*(.*)$/,w="model,collection,el,id,attributes,className,tagName".split(",");
+f.extend(v.prototype,k,{tagName:"div",$:function(a){return this.$el.find(a)},initialize:function(){},render:function(){return this},remove:function(){this.$el.remove();return this},make:function(a,b,c){a=document.createElement(a);b&&i(a).attr(b);c&&i(a).html(c);return a},setElement:function(a,b){this.$el&&this.undelegateEvents();this.$el=a instanceof i?a:i(a);this.el=this.$el[0];!1!==b&&this.delegateEvents();return this},delegateEvents:function(a){if(a||(a=n(this,"events"))){this.undelegateEvents();
+for(var b in a){var c=a[b];f.isFunction(c)||(c=this[a[b]]);if(!c)throw Error('Method "'+a[b]+'" does not exist');var d=b.match(F),e=d[1],d=d[2],c=f.bind(c,this),e=e+(".delegateEvents"+this.cid);""===d?this.$el.bind(e,c):this.$el.delegate(d,e,c)}}},undelegateEvents:function(){this.$el.unbind(".delegateEvents"+this.cid)},_configure:function(a){this.options&&(a=f.extend({},this.options,a));for(var b=0,c=w.length;b<c;b++){var d=w[b];a[d]&&(this[d]=a[d])}this.options=a},_ensureElement:function(){if(this.el)this.setElement(this.el,
+!1);else{var a=n(this,"attributes")||{};this.id&&(a.id=this.id);this.className&&(a["class"]=this.className);this.setElement(this.make(this.tagName,a),!1)}}});o.extend=r.extend=u.extend=v.extend=function(a,b){var c=G(this,a,b);c.extend=this.extend;return c};var H={create:"POST",update:"PUT","delete":"DELETE",read:"GET"};g.sync=function(a,b,c){var d=H[a];c||(c={});var e={type:d,dataType:"json"};c.url||(e.url=n(b,"url")||t());if(!c.data&&b&&("create"==a||"update"==a))e.contentType="application/json",
+e.data=JSON.stringify(b.toJSON());g.emulateJSON&&(e.contentType="application/x-www-form-urlencoded",e.data=e.data?{model:e.data}:{});if(g.emulateHTTP&&("PUT"===d||"DELETE"===d))g.emulateJSON&&(e.data._method=d),e.type="POST",e.beforeSend=function(a){a.setRequestHeader("X-HTTP-Method-Override",d)};"GET"!==e.type&&!g.emulateJSON&&(e.processData=!1);return i.ajax(f.extend(e,c))};g.wrapError=function(a,b,c){return function(d,e){e=d===b?e:d;a?a(b,e,c):b.trigger("error",b,e,c)}};var x=function(){},G=function(a,
+b,c){var d;d=b&&b.hasOwnProperty("constructor")?b.constructor:function(){a.apply(this,arguments)};f.extend(d,a);x.prototype=a.prototype;d.prototype=new x;b&&f.extend(d.prototype,b);c&&f.extend(d,c);d.prototype.constructor=d;d.__super__=a.prototype;return d},n=function(a,b){return!a||!a[b]?null:f.isFunction(a[b])?a[b]():a[b]},t=function(){throw Error('A "url" property or function must be specified');}}).call(this);
--- a/web/wp-includes/js/colorpicker.dev.js	Wed Dec 19 12:35:13 2012 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,707 +0,0 @@
-// ===================================================================
-// Author: Matt Kruse <matt@mattkruse.com>
-// WWW: http://www.mattkruse.com/
-//
-// NOTICE: You may use this code for any purpose, commercial or
-// private, without any further permission from the author. You may
-// remove this notice from your final code if you wish, however it is
-// appreciated by the author if at least my web site address is kept.
-//
-// You may *NOT* re-distribute this code in any way except through its
-// use. That means, you can include it in your product, or your web
-// site, or any other form where the code is actually being used. You
-// may not put the plain javascript up on your site for download or
-// include it in your javascript libraries for download. 
-// If you wish to share this code with others, please just point them
-// to the URL instead.
-// Please DO NOT link directly to my .js files from your site. Copy
-// the files to your server and use them there. Thank you.
-// ===================================================================
-
-
-/* SOURCE FILE: AnchorPosition.js */
-
-/* 
-AnchorPosition.js
-Author: Matt Kruse
-Last modified: 10/11/02
-
-DESCRIPTION: These functions find the position of an <A> tag in a document,
-so other elements can be positioned relative to it.
-
-COMPATABILITY: Netscape 4.x,6.x,Mozilla, IE 5.x,6.x on Windows. Some small
-positioning errors - usually with Window positioning - occur on the 
-Macintosh platform.
-
-FUNCTIONS:
-getAnchorPosition(anchorname)
-  Returns an Object() having .x and .y properties of the pixel coordinates
-  of the upper-left corner of the anchor. Position is relative to the PAGE.
-
-getAnchorWindowPosition(anchorname)
-  Returns an Object() having .x and .y properties of the pixel coordinates
-  of the upper-left corner of the anchor, relative to the WHOLE SCREEN.
-
-NOTES:
-
-1) For popping up separate browser windows, use getAnchorWindowPosition. 
-   Otherwise, use getAnchorPosition
-
-2) Your anchor tag MUST contain both NAME and ID attributes which are the 
-   same. For example:
-   <A NAME="test" ID="test"> </A>
-
-3) There must be at least a space between <A> </A> for IE5.5 to see the 
-   anchor tag correctly. Do not do <A></A> with no space.
-*/ 
-
-// getAnchorPosition(anchorname)
-//   This function returns an object having .x and .y properties which are the coordinates
-//   of the named anchor, relative to the page.
-function getAnchorPosition(anchorname) {
-	// This function will return an Object with x and y properties
-	var useWindow=false;
-	var coordinates=new Object();
-	var x=0,y=0;
-	// Browser capability sniffing
-	var use_gebi=false, use_css=false, use_layers=false;
-	if (document.getElementById) { use_gebi=true; }
-	else if (document.all) { use_css=true; }
-	else if (document.layers) { use_layers=true; }
-	// Logic to find position
- 	if (use_gebi && document.all) {
-		x=AnchorPosition_getPageOffsetLeft(document.all[anchorname]);
-		y=AnchorPosition_getPageOffsetTop(document.all[anchorname]);
-		}
-	else if (use_gebi) {
-		var o=document.getElementById(anchorname);
-		x=AnchorPosition_getPageOffsetLeft(o);
-		y=AnchorPosition_getPageOffsetTop(o);
-		}
- 	else if (use_css) {
-		x=AnchorPosition_getPageOffsetLeft(document.all[anchorname]);
-		y=AnchorPosition_getPageOffsetTop(document.all[anchorname]);
-		}
-	else if (use_layers) {
-		var found=0;
-		for (var i=0; i<document.anchors.length; i++) {
-			if (document.anchors[i].name==anchorname) { found=1; break; }
-			}
-		if (found==0) {
-			coordinates.x=0; coordinates.y=0; return coordinates;
-			}
-		x=document.anchors[i].x;
-		y=document.anchors[i].y;
-		}
-	else {
-		coordinates.x=0; coordinates.y=0; return coordinates;
-		}
-	coordinates.x=x;
-	coordinates.y=y;
-	return coordinates;
-	}
-
-// getAnchorWindowPosition(anchorname)
-//   This function returns an object having .x and .y properties which are the coordinates
-//   of the named anchor, relative to the window
-function getAnchorWindowPosition(anchorname) {
-	var coordinates=getAnchorPosition(anchorname);
-	var x=0;
-	var y=0;
-	if (document.getElementById) {
-		if (isNaN(window.screenX)) {
-			x=coordinates.x-document.body.scrollLeft+window.screenLeft;
-			y=coordinates.y-document.body.scrollTop+window.screenTop;
-			}
-		else {
-			x=coordinates.x+window.screenX+(window.outerWidth-window.innerWidth)-window.pageXOffset;
-			y=coordinates.y+window.screenY+(window.outerHeight-24-window.innerHeight)-window.pageYOffset;
-			}
-		}
-	else if (document.all) {
-		x=coordinates.x-document.body.scrollLeft+window.screenLeft;
-		y=coordinates.y-document.body.scrollTop+window.screenTop;
-		}
-	else if (document.layers) {
-		x=coordinates.x+window.screenX+(window.outerWidth-window.innerWidth)-window.pageXOffset;
-		y=coordinates.y+window.screenY+(window.outerHeight-24-window.innerHeight)-window.pageYOffset;
-		}
-	coordinates.x=x;
-	coordinates.y=y;
-	return coordinates;
-	}
-
-// Functions for IE to get position of an object
-function AnchorPosition_getPageOffsetLeft (el) {
-	var ol=el.offsetLeft;
-	while ((el=el.offsetParent) != null) { ol += el.offsetLeft; }
-	return ol;
-	}
-function AnchorPosition_getWindowOffsetLeft (el) {
-	return AnchorPosition_getPageOffsetLeft(el)-document.body.scrollLeft;
-	}
-function AnchorPosition_getPageOffsetTop (el) {
-	var ot=el.offsetTop;
-	while((el=el.offsetParent) != null) { ot += el.offsetTop; }
-	return ot;
-	}
-function AnchorPosition_getWindowOffsetTop (el) {
-	return AnchorPosition_getPageOffsetTop(el)-document.body.scrollTop;
-	}
-
-/* SOURCE FILE: PopupWindow.js */
-
-/* 
-PopupWindow.js
-Author: Matt Kruse
-Last modified: 02/16/04
-
-DESCRIPTION: This object allows you to easily and quickly popup a window
-in a certain place. The window can either be a DIV or a separate browser
-window.
-
-COMPATABILITY: Works with Netscape 4.x, 6.x, IE 5.x on Windows. Some small
-positioning errors - usually with Window positioning - occur on the 
-Macintosh platform. Due to bugs in Netscape 4.x, populating the popup 
-window with <STYLE> tags may cause errors.
-
-USAGE:
-// Create an object for a WINDOW popup
-var win = new PopupWindow(); 
-
-// Create an object for a DIV window using the DIV named 'mydiv'
-var win = new PopupWindow('mydiv'); 
-
-// Set the window to automatically hide itself when the user clicks 
-// anywhere else on the page except the popup
-win.autoHide(); 
-
-// Show the window relative to the anchor name passed in
-win.showPopup(anchorname);
-
-// Hide the popup
-win.hidePopup();
-
-// Set the size of the popup window (only applies to WINDOW popups
-win.setSize(width,height);
-
-// Populate the contents of the popup window that will be shown. If you 
-// change the contents while it is displayed, you will need to refresh()
-win.populate(string);
-
-// set the URL of the window, rather than populating its contents
-// manually
-win.setUrl("http://www.site.com/");
-
-// Refresh the contents of the popup
-win.refresh();
-
-// Specify how many pixels to the right of the anchor the popup will appear
-win.offsetX = 50;
-
-// Specify how many pixels below the anchor the popup will appear
-win.offsetY = 100;
-
-NOTES:
-1) Requires the functions in AnchorPosition.js
-
-2) Your anchor tag MUST contain both NAME and ID attributes which are the 
-   same. For example:
-   <A NAME="test" ID="test"> </A>
-
-3) There must be at least a space between <A> </A> for IE5.5 to see the 
-   anchor tag correctly. Do not do <A></A> with no space.
-
-4) When a PopupWindow object is created, a handler for 'onmouseup' is
-   attached to any event handler you may have already defined. Do NOT define
-   an event handler for 'onmouseup' after you define a PopupWindow object or
-   the autoHide() will not work correctly.
-*/ 
-
-// Set the position of the popup window based on the anchor
-function PopupWindow_getXYPosition(anchorname) {
-	var coordinates;
-	if (this.type == "WINDOW") {
-		coordinates = getAnchorWindowPosition(anchorname);
-		}
-	else {
-		coordinates = getAnchorPosition(anchorname);
-		}
-	this.x = coordinates.x;
-	this.y = coordinates.y;
-	}
-// Set width/height of DIV/popup window
-function PopupWindow_setSize(width,height) {
-	this.width = width;
-	this.height = height;
-	}
-// Fill the window with contents
-function PopupWindow_populate(contents) {
-	this.contents = contents;
-	this.populated = false;
-	}
-// Set the URL to go to
-function PopupWindow_setUrl(url) {
-	this.url = url;
-	}
-// Set the window popup properties
-function PopupWindow_setWindowProperties(props) {
-	this.windowProperties = props;
-	}
-// Refresh the displayed contents of the popup
-function PopupWindow_refresh() {
-	if (this.divName != null) {
-		// refresh the DIV object
-		if (this.use_gebi) {
-			document.getElementById(this.divName).innerHTML = this.contents;
-			}
-		else if (this.use_css) { 
-			document.all[this.divName].innerHTML = this.contents;
-			}
-		else if (this.use_layers) { 
-			var d = document.layers[this.divName]; 
-			d.document.open();
-			d.document.writeln(this.contents);
-			d.document.close();
-			}
-		}
-	else {
-		if (this.popupWindow != null && !this.popupWindow.closed) {
-			if (this.url!="") {
-				this.popupWindow.location.href=this.url;
-				}
-			else {
-				this.popupWindow.document.open();
-				this.popupWindow.document.writeln(this.contents);
-				this.popupWindow.document.close();
-			}
-			this.popupWindow.focus();
-			}
-		}
-	}
-// Position and show the popup, relative to an anchor object
-function PopupWindow_showPopup(anchorname) {
-	this.getXYPosition(anchorname);
-	this.x += this.offsetX;
-	this.y += this.offsetY;
-	if (!this.populated && (this.contents != "")) {
-		this.populated = true;
-		this.refresh();
-		}
-	if (this.divName != null) {
-		// Show the DIV object
-		if (this.use_gebi) {
-			document.getElementById(this.divName).style.left = this.x + "px";
-			document.getElementById(this.divName).style.top = this.y;
-			document.getElementById(this.divName).style.visibility = "visible";
-			}
-		else if (this.use_css) {
-			document.all[this.divName].style.left = this.x;
-			document.all[this.divName].style.top = this.y;
-			document.all[this.divName].style.visibility = "visible";
-			}
-		else if (this.use_layers) {
-			document.layers[this.divName].left = this.x;
-			document.layers[this.divName].top = this.y;
-			document.layers[this.divName].visibility = "visible";
-			}
-		}
-	else {
-		if (this.popupWindow == null || this.popupWindow.closed) {
-			// If the popup window will go off-screen, move it so it doesn't
-			if (this.x<0) { this.x=0; }
-			if (this.y<0) { this.y=0; }
-			if (screen && screen.availHeight) {
-				if ((this.y + this.height) > screen.availHeight) {
-					this.y = screen.availHeight - this.height;
-					}
-				}
-			if (screen && screen.availWidth) {
-				if ((this.x + this.width) > screen.availWidth) {
-					this.x = screen.availWidth - this.width;
-					}
-				}
-			var avoidAboutBlank = window.opera || ( document.layers && !navigator.mimeTypes['*'] ) || navigator.vendor == 'KDE' || ( document.childNodes && !document.all && !navigator.taintEnabled );
-			this.popupWindow = window.open(avoidAboutBlank?"":"about:blank","window_"+anchorname,this.windowProperties+",width="+this.width+",height="+this.height+",screenX="+this.x+",left="+this.x+",screenY="+this.y+",top="+this.y+"");
-			}
-		this.refresh();
-		}
-	}
-// Hide the popup
-function PopupWindow_hidePopup() {
-	if (this.divName != null) {
-		if (this.use_gebi) {
-			document.getElementById(this.divName).style.visibility = "hidden";
-			}
-		else if (this.use_css) {
-			document.all[this.divName].style.visibility = "hidden";
-			}
-		else if (this.use_layers) {
-			document.layers[this.divName].visibility = "hidden";
-			}
-		}
-	else {
-		if (this.popupWindow && !this.popupWindow.closed) {
-			this.popupWindow.close();
-			this.popupWindow = null;
-			}
-		}
-	}
-// Pass an event and return whether or not it was the popup DIV that was clicked
-function PopupWindow_isClicked(e) {
-	if (this.divName != null) {
-		if (this.use_layers) {
-			var clickX = e.pageX;
-			var clickY = e.pageY;
-			var t = document.layers[this.divName];
-			if ((clickX > t.left) && (clickX < t.left+t.clip.width) && (clickY > t.top) && (clickY < t.top+t.clip.height)) {
-				return true;
-				}
-			else { return false; }
-			}
-		else if (document.all) { // Need to hard-code this to trap IE for error-handling
-			var t = window.event.srcElement;
-			while (t.parentElement != null) {
-				if (t.id==this.divName) {
-					return true;
-					}
-				t = t.parentElement;
-				}
-			return false;
-			}
-		else if (this.use_gebi && e) {
-			var t = e.originalTarget;
-			while (t.parentNode != null) {
-				if (t.id==this.divName) {
-					return true;
-					}
-				t = t.parentNode;
-				}
-			return false;
-			}
-		return false;
-		}
-	return false;
-	}
-
-// Check an onMouseDown event to see if we should hide
-function PopupWindow_hideIfNotClicked(e) {
-	if (this.autoHideEnabled && !this.isClicked(e)) {
-		this.hidePopup();
-		}
-	}
-// Call this to make the DIV disable automatically when mouse is clicked outside it
-function PopupWindow_autoHide() {
-	this.autoHideEnabled = true;
-	}
-// This global function checks all PopupWindow objects onmouseup to see if they should be hidden
-function PopupWindow_hidePopupWindows(e) {
-	for (var i=0; i<popupWindowObjects.length; i++) {
-		if (popupWindowObjects[i] != null) {
-			var p = popupWindowObjects[i];
-			p.hideIfNotClicked(e);
-			}
-		}
-	}
-// Run this immediately to attach the event listener
-function PopupWindow_attachListener() {
-	if (document.layers) {
-		document.captureEvents(Event.MOUSEUP);
-		}
-	window.popupWindowOldEventListener = document.onmouseup;
-	if (window.popupWindowOldEventListener != null) {
-		document.onmouseup = new Function("window.popupWindowOldEventListener(); PopupWindow_hidePopupWindows();");
-		}
-	else {
-		document.onmouseup = PopupWindow_hidePopupWindows;
-		}
-	}
-// CONSTRUCTOR for the PopupWindow object
-// Pass it a DIV name to use a DHTML popup, otherwise will default to window popup
-function PopupWindow() {
-	if (!window.popupWindowIndex) { window.popupWindowIndex = 0; }
-	if (!window.popupWindowObjects) { window.popupWindowObjects = new Array(); }
-	if (!window.listenerAttached) {
-		window.listenerAttached = true;
-		PopupWindow_attachListener();
-		}
-	this.index = popupWindowIndex++;
-	popupWindowObjects[this.index] = this;
-	this.divName = null;
-	this.popupWindow = null;
-	this.width=0;
-	this.height=0;
-	this.populated = false;
-	this.visible = false;
-	this.autoHideEnabled = false;
-
-	this.contents = "";
-	this.url="";
-	this.windowProperties="toolbar=no,location=no,status=no,menubar=no,scrollbars=auto,resizable,alwaysRaised,dependent,titlebar=no";
-	if (arguments.length>0) {
-		this.type="DIV";
-		this.divName = arguments[0];
-		}
-	else {
-		this.type="WINDOW";
-		}
-	this.use_gebi = false;
-	this.use_css = false;
-	this.use_layers = false;
-	if (document.getElementById) { this.use_gebi = true; }
-	else if (document.all) { this.use_css = true; }
-	else if (document.layers) { this.use_layers = true; }
-	else { this.type = "WINDOW"; }
-	this.offsetX = 0;
-	this.offsetY = 0;
-	// Method mappings
-	this.getXYPosition = PopupWindow_getXYPosition;
-	this.populate = PopupWindow_populate;
-	this.setUrl = PopupWindow_setUrl;
-	this.setWindowProperties = PopupWindow_setWindowProperties;
-	this.refresh = PopupWindow_refresh;
-	this.showPopup = PopupWindow_showPopup;
-	this.hidePopup = PopupWindow_hidePopup;
-	this.setSize = PopupWindow_setSize;
-	this.isClicked = PopupWindow_isClicked;
-	this.autoHide = PopupWindow_autoHide;
-	this.hideIfNotClicked = PopupWindow_hideIfNotClicked;
-	}
-
-/* SOURCE FILE: ColorPicker2.js */
-
-/* 
-Last modified: 02/24/2003
-
-DESCRIPTION: This widget is used to select a color, in hexadecimal #RRGGBB 
-form. It uses a color "swatch" to display the standard 216-color web-safe 
-palette. The user can then click on a color to select it.
-
-COMPATABILITY: See notes in AnchorPosition.js and PopupWindow.js.
-Only the latest DHTML-capable browsers will show the color and hex values
-at the bottom as your mouse goes over them.
-
-USAGE:
-// Create a new ColorPicker object using DHTML popup
-var cp = new ColorPicker();
-
-// Create a new ColorPicker object using Window Popup
-var cp = new ColorPicker('window');
-
-// Add a link in your page to trigger the popup. For example:
-<A HREF="#" onClick="cp.show('pick');return false;" NAME="pick" ID="pick">Pick</A>
-
-// Or use the built-in "select" function to do the dirty work for you:
-<A HREF="#" onClick="cp.select(document.forms[0].color,'pick');return false;" NAME="pick" ID="pick">Pick</A>
-
-// If using DHTML popup, write out the required DIV tag near the bottom
-// of your page.
-<SCRIPT LANGUAGE="JavaScript">cp.writeDiv()</SCRIPT>
-
-// Write the 'pickColor' function that will be called when the user clicks
-// a color and do something with the value. This is only required if you
-// want to do something other than simply populate a form field, which is 
-// what the 'select' function will give you.
-function pickColor(color) {
-	field.value = color;
-	}
-
-NOTES:
-1) Requires the functions in AnchorPosition.js and PopupWindow.js
-
-2) Your anchor tag MUST contain both NAME and ID attributes which are the 
-   same. For example:
-   <A NAME="test" ID="test"> </A>
-
-3) There must be at least a space between <A> </A> for IE5.5 to see the 
-   anchor tag correctly. Do not do <A></A> with no space.
-
-4) When a ColorPicker object is created, a handler for 'onmouseup' is
-   attached to any event handler you may have already defined. Do NOT define
-   an event handler for 'onmouseup' after you define a ColorPicker object or
-   the color picker will not hide itself correctly.
-*/ 
-ColorPicker_targetInput = null;
-function ColorPicker_writeDiv() {
-	document.writeln("<DIV ID=\"colorPickerDiv\" STYLE=\"position:absolute;visibility:hidden;\"> </DIV>");
-	}
-
-function ColorPicker_show(anchorname) {
-	this.showPopup(anchorname);
-	}
-
-function ColorPicker_pickColor(color,obj) {
-	obj.hidePopup();
-	pickColor(color);
-	}
-
-// A Default "pickColor" function to accept the color passed back from popup.
-// User can over-ride this with their own function.
-function pickColor(color) {
-	if (ColorPicker_targetInput==null) {
-		alert("Target Input is null, which means you either didn't use the 'select' function or you have no defined your own 'pickColor' function to handle the picked color!");
-		return;
-		}
-	ColorPicker_targetInput.value = color;
-	}
-
-// This function is the easiest way to popup the window, select a color, and
-// have the value populate a form field, which is what most people want to do.
-function ColorPicker_select(inputobj,linkname) {
-	if (inputobj.type!="text" && inputobj.type!="hidden" && inputobj.type!="textarea") { 
-		alert("colorpicker.select: Input object passed is not a valid form input object"); 
-		window.ColorPicker_targetInput=null;
-		return;
-		}
-	window.ColorPicker_targetInput = inputobj;
-	this.show(linkname);
-	}
-
-// This function runs when you move your mouse over a color block, if you have a newer browser
-function ColorPicker_highlightColor(c) {
-	var thedoc = (arguments.length>1)?arguments[1]:window.document;
-	var d = thedoc.getElementById("colorPickerSelectedColor");
-	d.style.backgroundColor = c;
-	d = thedoc.getElementById("colorPickerSelectedColorValue");
-	d.innerHTML = c;
-	}
-
-function ColorPicker() {
-	var windowMode = false;
-	// Create a new PopupWindow object
-	if (arguments.length==0) {
-		var divname = "colorPickerDiv";
-		}
-	else if (arguments[0] == "window") {
-		var divname = '';
-		windowMode = true;
-		}
-	else {
-		var divname = arguments[0];
-		}
-
-	if (divname != "") {
-		var cp = new PopupWindow(divname);
-		}
-	else {
-		var cp = new PopupWindow();
-		cp.setSize(225,250);
-		}
-
-	// Object variables
-	cp.currentValue = "#FFFFFF";
-
-	// Method Mappings
-	cp.writeDiv = ColorPicker_writeDiv;
-	cp.highlightColor = ColorPicker_highlightColor;
-	cp.show = ColorPicker_show;
-	cp.select = ColorPicker_select;
-
-	// Code to populate color picker window
-	var colors = new Array(	"#4180B6","#69AEE7","#000000","#000033","#000066","#000099","#0000CC","#0000FF","#330000","#330033","#330066","#330099",
-							"#3300CC","#3300FF","#660000","#660033","#660066","#660099","#6600CC","#6600FF","#990000","#990033","#990066","#990099",
-							"#9900CC","#9900FF","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#FF0000","#FF0033","#FF0066","#FF0099",
-							"#FF00CC","#FF00FF","#7FFFFF","#7FFFFF","#7FF7F7","#7FEFEF","#7FE7E7","#7FDFDF","#7FD7D7","#7FCFCF","#7FC7C7","#7FBFBF",
-							"#7FB7B7","#7FAFAF","#7FA7A7","#7F9F9F","#7F9797","#7F8F8F","#7F8787","#7F7F7F","#7F7777","#7F6F6F","#7F6767","#7F5F5F",
-							"#7F5757","#7F4F4F","#7F4747","#7F3F3F","#7F3737","#7F2F2F","#7F2727","#7F1F1F","#7F1717","#7F0F0F","#7F0707","#7F0000",
-
-							"#4180B6","#69AEE7","#003300","#003333","#003366","#003399","#0033CC","#0033FF","#333300","#333333","#333366","#333399",
-							"#3333CC","#3333FF","#663300","#663333","#663366","#663399","#6633CC","#6633FF","#993300","#993333","#993366","#993399",
-							"#9933CC","#9933FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#FF3300","#FF3333","#FF3366","#FF3399",
-							"#FF33CC","#FF33FF","#FF7FFF","#FF7FFF","#F77FF7","#EF7FEF","#E77FE7","#DF7FDF","#D77FD7","#CF7FCF","#C77FC7","#BF7FBF",
-							"#B77FB7","#AF7FAF","#A77FA7","#9F7F9F","#977F97","#8F7F8F","#877F87","#7F7F7F","#777F77","#6F7F6F","#677F67","#5F7F5F",
-							"#577F57","#4F7F4F","#477F47","#3F7F3F","#377F37","#2F7F2F","#277F27","#1F7F1F","#177F17","#0F7F0F","#077F07","#007F00",
-
-							"#4180B6","#69AEE7","#006600","#006633","#006666","#006699","#0066CC","#0066FF","#336600","#336633","#336666","#336699",
-							"#3366CC","#3366FF","#666600","#666633","#666666","#666699","#6666CC","#6666FF","#996600","#996633","#996666","#996699",
-							"#9966CC","#9966FF","#CC6600","#CC6633","#CC6666","#CC6699","#CC66CC","#CC66FF","#FF6600","#FF6633","#FF6666","#FF6699",
-							"#FF66CC","#FF66FF","#FFFF7F","#FFFF7F","#F7F77F","#EFEF7F","#E7E77F","#DFDF7F","#D7D77F","#CFCF7F","#C7C77F","#BFBF7F",
-							"#B7B77F","#AFAF7F","#A7A77F","#9F9F7F","#97977F","#8F8F7F","#87877F","#7F7F7F","#77777F","#6F6F7F","#67677F","#5F5F7F",
-							"#57577F","#4F4F7F","#47477F","#3F3F7F","#37377F","#2F2F7F","#27277F","#1F1F7F","#17177F","#0F0F7F","#07077F","#00007F",
-
-							"#4180B6","#69AEE7","#009900","#009933","#009966","#009999","#0099CC","#0099FF","#339900","#339933","#339966","#339999",
-							"#3399CC","#3399FF","#669900","#669933","#669966","#669999","#6699CC","#6699FF","#999900","#999933","#999966","#999999",
-							"#9999CC","#9999FF","#CC9900","#CC9933","#CC9966","#CC9999","#CC99CC","#CC99FF","#FF9900","#FF9933","#FF9966","#FF9999",
-							"#FF99CC","#FF99FF","#3FFFFF","#3FFFFF","#3FF7F7","#3FEFEF","#3FE7E7","#3FDFDF","#3FD7D7","#3FCFCF","#3FC7C7","#3FBFBF",
-							"#3FB7B7","#3FAFAF","#3FA7A7","#3F9F9F","#3F9797","#3F8F8F","#3F8787","#3F7F7F","#3F7777","#3F6F6F","#3F6767","#3F5F5F",
-							"#3F5757","#3F4F4F","#3F4747","#3F3F3F","#3F3737","#3F2F2F","#3F2727","#3F1F1F","#3F1717","#3F0F0F","#3F0707","#3F0000",
-
-							"#4180B6","#69AEE7","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#33CC00","#33CC33","#33CC66","#33CC99",
-							"#33CCCC","#33CCFF","#66CC00","#66CC33","#66CC66","#66CC99","#66CCCC","#66CCFF","#99CC00","#99CC33","#99CC66","#99CC99",
-							"#99CCCC","#99CCFF","#CCCC00","#CCCC33","#CCCC66","#CCCC99","#CCCCCC","#CCCCFF","#FFCC00","#FFCC33","#FFCC66","#FFCC99",
-							"#FFCCCC","#FFCCFF","#FF3FFF","#FF3FFF","#F73FF7","#EF3FEF","#E73FE7","#DF3FDF","#D73FD7","#CF3FCF","#C73FC7","#BF3FBF",
-							"#B73FB7","#AF3FAF","#A73FA7","#9F3F9F","#973F97","#8F3F8F","#873F87","#7F3F7F","#773F77","#6F3F6F","#673F67","#5F3F5F",
-							"#573F57","#4F3F4F","#473F47","#3F3F3F","#373F37","#2F3F2F","#273F27","#1F3F1F","#173F17","#0F3F0F","#073F07","#003F00",
-
-							"#4180B6","#69AEE7","#00FF00","#00FF33","#00FF66","#00FF99","#00FFCC","#00FFFF","#33FF00","#33FF33","#33FF66","#33FF99",
-							"#33FFCC","#33FFFF","#66FF00","#66FF33","#66FF66","#66FF99","#66FFCC","#66FFFF","#99FF00","#99FF33","#99FF66","#99FF99",
-							"#99FFCC","#99FFFF","#CCFF00","#CCFF33","#CCFF66","#CCFF99","#CCFFCC","#CCFFFF","#FFFF00","#FFFF33","#FFFF66","#FFFF99",
-							"#FFFFCC","#FFFFFF","#FFFF3F","#FFFF3F","#F7F73F","#EFEF3F","#E7E73F","#DFDF3F","#D7D73F","#CFCF3F","#C7C73F","#BFBF3F",
-							"#B7B73F","#AFAF3F","#A7A73F","#9F9F3F","#97973F","#8F8F3F","#87873F","#7F7F3F","#77773F","#6F6F3F","#67673F","#5F5F3F",
-							"#57573F","#4F4F3F","#47473F","#3F3F3F","#37373F","#2F2F3F","#27273F","#1F1F3F","#17173F","#0F0F3F","#07073F","#00003F",
-
-							"#4180B6","#69AEE7","#FFFFFF","#FFEEEE","#FFDDDD","#FFCCCC","#FFBBBB","#FFAAAA","#FF9999","#FF8888","#FF7777","#FF6666",
-							"#FF5555","#FF4444","#FF3333","#FF2222","#FF1111","#FF0000","#FF0000","#FF0000","#FF0000","#EE0000","#DD0000","#CC0000",
-							"#BB0000","#AA0000","#990000","#880000","#770000","#660000","#550000","#440000","#330000","#220000","#110000","#000000",
-							"#000000","#000000","#000000","#001111","#002222","#003333","#004444","#005555","#006666","#007777","#008888","#009999",
-							"#00AAAA","#00BBBB","#00CCCC","#00DDDD","#00EEEE","#00FFFF","#00FFFF","#00FFFF","#00FFFF","#11FFFF","#22FFFF","#33FFFF",
-							"#44FFFF","#55FFFF","#66FFFF","#77FFFF","#88FFFF","#99FFFF","#AAFFFF","#BBFFFF","#CCFFFF","#DDFFFF","#EEFFFF","#FFFFFF",
-
-							"#4180B6","#69AEE7","#FFFFFF","#EEFFEE","#DDFFDD","#CCFFCC","#BBFFBB","#AAFFAA","#99FF99","#88FF88","#77FF77","#66FF66",
-							"#55FF55","#44FF44","#33FF33","#22FF22","#11FF11","#00FF00","#00FF00","#00FF00","#00FF00","#00EE00","#00DD00","#00CC00",
-							"#00BB00","#00AA00","#009900","#008800","#007700","#006600","#005500","#004400","#003300","#002200","#001100","#000000",
-							"#000000","#000000","#000000","#110011","#220022","#330033","#440044","#550055","#660066","#770077","#880088","#990099",
-							"#AA00AA","#BB00BB","#CC00CC","#DD00DD","#EE00EE","#FF00FF","#FF00FF","#FF00FF","#FF00FF","#FF11FF","#FF22FF","#FF33FF",
-							"#FF44FF","#FF55FF","#FF66FF","#FF77FF","#FF88FF","#FF99FF","#FFAAFF","#FFBBFF","#FFCCFF","#FFDDFF","#FFEEFF","#FFFFFF",
-
-							"#4180B6","#69AEE7","#FFFFFF","#EEEEFF","#DDDDFF","#CCCCFF","#BBBBFF","#AAAAFF","#9999FF","#8888FF","#7777FF","#6666FF",
-							"#5555FF","#4444FF","#3333FF","#2222FF","#1111FF","#0000FF","#0000FF","#0000FF","#0000FF","#0000EE","#0000DD","#0000CC",
-							"#0000BB","#0000AA","#000099","#000088","#000077","#000066","#000055","#000044","#000033","#000022","#000011","#000000",
-							"#000000","#000000","#000000","#111100","#222200","#333300","#444400","#555500","#666600","#777700","#888800","#999900",
-							"#AAAA00","#BBBB00","#CCCC00","#DDDD00","#EEEE00","#FFFF00","#FFFF00","#FFFF00","#FFFF00","#FFFF11","#FFFF22","#FFFF33",
-							"#FFFF44","#FFFF55","#FFFF66","#FFFF77","#FFFF88","#FFFF99","#FFFFAA","#FFFFBB","#FFFFCC","#FFFFDD","#FFFFEE","#FFFFFF",
-
-							"#4180B6","#69AEE7","#FFFFFF","#FFFFFF","#FBFBFB","#F7F7F7","#F3F3F3","#EFEFEF","#EBEBEB","#E7E7E7","#E3E3E3","#DFDFDF",
-							"#DBDBDB","#D7D7D7","#D3D3D3","#CFCFCF","#CBCBCB","#C7C7C7","#C3C3C3","#BFBFBF","#BBBBBB","#B7B7B7","#B3B3B3","#AFAFAF",
-							"#ABABAB","#A7A7A7","#A3A3A3","#9F9F9F","#9B9B9B","#979797","#939393","#8F8F8F","#8B8B8B","#878787","#838383","#7F7F7F",
-							"#7B7B7B","#777777","#737373","#6F6F6F","#6B6B6B","#676767","#636363","#5F5F5F","#5B5B5B","#575757","#535353","#4F4F4F",
-							"#4B4B4B","#474747","#434343","#3F3F3F","#3B3B3B","#373737","#333333","#2F2F2F","#2B2B2B","#272727","#232323","#1F1F1F",
-							"#1B1B1B","#171717","#131313","#0F0F0F","#0B0B0B","#070707","#030303","#000000","#000000","#000000","#000000","#000000");
-	var total = colors.length;
-	var width = 72;
-	var cp_contents = "";
-	var windowRef = (windowMode)?"window.opener.":"";
-	if (windowMode) {
-		cp_contents += "<html><head><title>Select Color</title></head>";
-		cp_contents += "<body marginwidth=0 marginheight=0 leftmargin=0 topmargin=0><span style='text-align: center;'>";
-		}
-	cp_contents += "<table style='border: none;' cellspacing=0 cellpadding=0>";
-	var use_highlight = (document.getElementById || document.all)?true:false;
-	for (var i=0; i<total; i++) {
-		if ((i % width) == 0) { cp_contents += "<tr>"; }
-		if (use_highlight) { var mo = 'onMouseOver="'+windowRef+'ColorPicker_highlightColor(\''+colors[i]+'\',window.document)"'; }
-		else { mo = ""; }
-		cp_contents += '<td style="background-color: '+colors[i]+';"><a href="javascript:void()" onclick="'+windowRef+'ColorPicker_pickColor(\''+colors[i]+'\','+windowRef+'window.popupWindowObjects['+cp.index+']);return false;" '+mo+'>&nbsp;</a></td>';
-		if ( ((i+1)>=total) || (((i+1) % width) == 0)) { 
-			cp_contents += "</tr>";
-			}
-		}
-	// If the browser supports dynamically changing TD cells, add the fancy stuff
-	if (document.getElementById) {
-		var width1 = Math.floor(width/2);
-		var width2 = width = width1;
-		cp_contents += "<tr><td colspan='"+width1+"' style='background-color: #FFF;' ID='colorPickerSelectedColor'>&nbsp;</td><td colspan='"+width2+"' style='text-align: center;' id='colorPickerSelectedColorValue'>#FFFFFF</td></tr>";
-		}
-	cp_contents += "</table>";
-	if (windowMode) {
-		cp_contents += "</span></body></html>";
-		}
-	// end populate code
-
-	// Write the contents to the popup object
-	cp.populate(cp_contents+"\n");
-	// Move the table down a bit so you can see it
-	cp.offsetY = 25;
-	cp.autoHide();
-	return cp;
-	}
--- a/web/wp-includes/js/colorpicker.js	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/js/colorpicker.js	Wed Dec 19 17:46:52 2012 -0800
@@ -1,1 +1,707 @@
-function getAnchorPosition(b){var e=false;var k=new Object();var j=0,g=0;var d=false,f=false,h=false;if(document.getElementById){d=true}else{if(document.all){f=true}else{if(document.layers){h=true}}}if(d&&document.all){j=AnchorPosition_getPageOffsetLeft(document.all[b]);g=AnchorPosition_getPageOffsetTop(document.all[b])}else{if(d){var a=document.getElementById(b);j=AnchorPosition_getPageOffsetLeft(a);g=AnchorPosition_getPageOffsetTop(a)}else{if(f){j=AnchorPosition_getPageOffsetLeft(document.all[b]);g=AnchorPosition_getPageOffsetTop(document.all[b])}else{if(h){var l=0;for(var c=0;c<document.anchors.length;c++){if(document.anchors[c].name==b){l=1;break}}if(l==0){k.x=0;k.y=0;return k}j=document.anchors[c].x;g=document.anchors[c].y}else{k.x=0;k.y=0;return k}}}}k.x=j;k.y=g;return k}function getAnchorWindowPosition(b){var c=getAnchorPosition(b);var a=0;var d=0;if(document.getElementById){if(isNaN(window.screenX)){a=c.x-document.body.scrollLeft+window.screenLeft;d=c.y-document.body.scrollTop+window.screenTop}else{a=c.x+window.screenX+(window.outerWidth-window.innerWidth)-window.pageXOffset;d=c.y+window.screenY+(window.outerHeight-24-window.innerHeight)-window.pageYOffset}}else{if(document.all){a=c.x-document.body.scrollLeft+window.screenLeft;d=c.y-document.body.scrollTop+window.screenTop}else{if(document.layers){a=c.x+window.screenX+(window.outerWidth-window.innerWidth)-window.pageXOffset;d=c.y+window.screenY+(window.outerHeight-24-window.innerHeight)-window.pageYOffset}}}c.x=a;c.y=d;return c}function AnchorPosition_getPageOffsetLeft(b){var a=b.offsetLeft;while((b=b.offsetParent)!=null){a+=b.offsetLeft}return a}function AnchorPosition_getWindowOffsetLeft(a){return AnchorPosition_getPageOffsetLeft(a)-document.body.scrollLeft}function AnchorPosition_getPageOffsetTop(a){var b=a.offsetTop;while((a=a.offsetParent)!=null){b+=a.offsetTop}return b}function AnchorPosition_getWindowOffsetTop(a){return AnchorPosition_getPageOffsetTop(a)-document.body.scrollTop}function PopupWindow_getXYPosition(a){var b;if(this.type=="WINDOW"){b=getAnchorWindowPosition(a)}else{b=getAnchorPosition(a)}this.x=b.x;this.y=b.y}function PopupWindow_setSize(b,a){this.width=b;this.height=a}function PopupWindow_populate(a){this.contents=a;this.populated=false}function PopupWindow_setUrl(a){this.url=a}function PopupWindow_setWindowProperties(a){this.windowProperties=a}function PopupWindow_refresh(){if(this.divName!=null){if(this.use_gebi){document.getElementById(this.divName).innerHTML=this.contents}else{if(this.use_css){document.all[this.divName].innerHTML=this.contents}else{if(this.use_layers){var a=document.layers[this.divName];a.document.open();a.document.writeln(this.contents);a.document.close()}}}}else{if(this.popupWindow!=null&&!this.popupWindow.closed){if(this.url!=""){this.popupWindow.location.href=this.url}else{this.popupWindow.document.open();this.popupWindow.document.writeln(this.contents);this.popupWindow.document.close()}this.popupWindow.focus()}}}function PopupWindow_showPopup(a){this.getXYPosition(a);this.x+=this.offsetX;this.y+=this.offsetY;if(!this.populated&&(this.contents!="")){this.populated=true;this.refresh()}if(this.divName!=null){if(this.use_gebi){document.getElementById(this.divName).style.left=this.x+"px";document.getElementById(this.divName).style.top=this.y;document.getElementById(this.divName).style.visibility="visible"}else{if(this.use_css){document.all[this.divName].style.left=this.x;document.all[this.divName].style.top=this.y;document.all[this.divName].style.visibility="visible"}else{if(this.use_layers){document.layers[this.divName].left=this.x;document.layers[this.divName].top=this.y;document.layers[this.divName].visibility="visible"}}}}else{if(this.popupWindow==null||this.popupWindow.closed){if(this.x<0){this.x=0}if(this.y<0){this.y=0}if(screen&&screen.availHeight){if((this.y+this.height)>screen.availHeight){this.y=screen.availHeight-this.height}}if(screen&&screen.availWidth){if((this.x+this.width)>screen.availWidth){this.x=screen.availWidth-this.width}}var b=window.opera||(document.layers&&!navigator.mimeTypes["*"])||navigator.vendor=="KDE"||(document.childNodes&&!document.all&&!navigator.taintEnabled);this.popupWindow=window.open(b?"":"about:blank","window_"+a,this.windowProperties+",width="+this.width+",height="+this.height+",screenX="+this.x+",left="+this.x+",screenY="+this.y+",top="+this.y+"")}this.refresh()}}function PopupWindow_hidePopup(){if(this.divName!=null){if(this.use_gebi){document.getElementById(this.divName).style.visibility="hidden"}else{if(this.use_css){document.all[this.divName].style.visibility="hidden"}else{if(this.use_layers){document.layers[this.divName].visibility="hidden"}}}}else{if(this.popupWindow&&!this.popupWindow.closed){this.popupWindow.close();this.popupWindow=null}}}function PopupWindow_isClicked(c){if(this.divName!=null){if(this.use_layers){var d=c.pageX;var b=c.pageY;var a=document.layers[this.divName];if((d>a.left)&&(d<a.left+a.clip.width)&&(b>a.top)&&(b<a.top+a.clip.height)){return true}else{return false}}else{if(document.all){var a=window.event.srcElement;while(a.parentElement!=null){if(a.id==this.divName){return true}a=a.parentElement}return false}else{if(this.use_gebi&&c){var a=c.originalTarget;while(a.parentNode!=null){if(a.id==this.divName){return true}a=a.parentNode}return false}}}return false}return false}function PopupWindow_hideIfNotClicked(a){if(this.autoHideEnabled&&!this.isClicked(a)){this.hidePopup()}}function PopupWindow_autoHide(){this.autoHideEnabled=true}function PopupWindow_hidePopupWindows(c){for(var a=0;a<popupWindowObjects.length;a++){if(popupWindowObjects[a]!=null){var b=popupWindowObjects[a];b.hideIfNotClicked(c)}}}function PopupWindow_attachListener(){if(document.layers){document.captureEvents(Event.MOUSEUP)}window.popupWindowOldEventListener=document.onmouseup;if(window.popupWindowOldEventListener!=null){document.onmouseup=new Function("window.popupWindowOldEventListener(); PopupWindow_hidePopupWindows();")}else{document.onmouseup=PopupWindow_hidePopupWindows}}function PopupWindow(){if(!window.popupWindowIndex){window.popupWindowIndex=0}if(!window.popupWindowObjects){window.popupWindowObjects=new Array()}if(!window.listenerAttached){window.listenerAttached=true;PopupWindow_attachListener()}this.index=popupWindowIndex++;popupWindowObjects[this.index]=this;this.divName=null;this.popupWindow=null;this.width=0;this.height=0;this.populated=false;this.visible=false;this.autoHideEnabled=false;this.contents="";this.url="";this.windowProperties="toolbar=no,location=no,status=no,menubar=no,scrollbars=auto,resizable,alwaysRaised,dependent,titlebar=no";if(arguments.length>0){this.type="DIV";this.divName=arguments[0]}else{this.type="WINDOW"}this.use_gebi=false;this.use_css=false;this.use_layers=false;if(document.getElementById){this.use_gebi=true}else{if(document.all){this.use_css=true}else{if(document.layers){this.use_layers=true}else{this.type="WINDOW"}}}this.offsetX=0;this.offsetY=0;this.getXYPosition=PopupWindow_getXYPosition;this.populate=PopupWindow_populate;this.setUrl=PopupWindow_setUrl;this.setWindowProperties=PopupWindow_setWindowProperties;this.refresh=PopupWindow_refresh;this.showPopup=PopupWindow_showPopup;this.hidePopup=PopupWindow_hidePopup;this.setSize=PopupWindow_setSize;this.isClicked=PopupWindow_isClicked;this.autoHide=PopupWindow_autoHide;this.hideIfNotClicked=PopupWindow_hideIfNotClicked}ColorPicker_targetInput=null;function ColorPicker_writeDiv(){document.writeln('<DIV ID="colorPickerDiv" STYLE="position:absolute;visibility:hidden;"> </DIV>')}function ColorPicker_show(a){this.showPopup(a)}function ColorPicker_pickColor(a,b){b.hidePopup();pickColor(a)}function pickColor(a){if(ColorPicker_targetInput==null){alert("Target Input is null, which means you either didn't use the 'select' function or you have no defined your own 'pickColor' function to handle the picked color!");return}ColorPicker_targetInput.value=a}function ColorPicker_select(b,a){if(b.type!="text"&&b.type!="hidden"&&b.type!="textarea"){alert("colorpicker.select: Input object passed is not a valid form input object");window.ColorPicker_targetInput=null;return}window.ColorPicker_targetInput=b;this.show(a)}function ColorPicker_highlightColor(e){var a=(arguments.length>1)?arguments[1]:window.document;var b=a.getElementById("colorPickerSelectedColor");b.style.backgroundColor=e;b=a.getElementById("colorPickerSelectedColorValue");b.innerHTML=e}function ColorPicker(){var g=false;if(arguments.length==0){var e="colorPickerDiv"}else{if(arguments[0]=="window"){var e="";g=true}else{var e=arguments[0]}}if(e!=""){var m=new PopupWindow(e)}else{var m=new PopupWindow();m.setSize(225,250)}m.currentValue="#FFFFFF";m.writeDiv=ColorPicker_writeDiv;m.highlightColor=ColorPicker_highlightColor;m.show=ColorPicker_show;m.select=ColorPicker_select;var a=new Array("#4180B6","#69AEE7","#000000","#000033","#000066","#000099","#0000CC","#0000FF","#330000","#330033","#330066","#330099","#3300CC","#3300FF","#660000","#660033","#660066","#660099","#6600CC","#6600FF","#990000","#990033","#990066","#990099","#9900CC","#9900FF","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#7FFFFF","#7FFFFF","#7FF7F7","#7FEFEF","#7FE7E7","#7FDFDF","#7FD7D7","#7FCFCF","#7FC7C7","#7FBFBF","#7FB7B7","#7FAFAF","#7FA7A7","#7F9F9F","#7F9797","#7F8F8F","#7F8787","#7F7F7F","#7F7777","#7F6F6F","#7F6767","#7F5F5F","#7F5757","#7F4F4F","#7F4747","#7F3F3F","#7F3737","#7F2F2F","#7F2727","#7F1F1F","#7F1717","#7F0F0F","#7F0707","#7F0000","#4180B6","#69AEE7","#003300","#003333","#003366","#003399","#0033CC","#0033FF","#333300","#333333","#333366","#333399","#3333CC","#3333FF","#663300","#663333","#663366","#663399","#6633CC","#6633FF","#993300","#993333","#993366","#993399","#9933CC","#9933FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF7FFF","#FF7FFF","#F77FF7","#EF7FEF","#E77FE7","#DF7FDF","#D77FD7","#CF7FCF","#C77FC7","#BF7FBF","#B77FB7","#AF7FAF","#A77FA7","#9F7F9F","#977F97","#8F7F8F","#877F87","#7F7F7F","#777F77","#6F7F6F","#677F67","#5F7F5F","#577F57","#4F7F4F","#477F47","#3F7F3F","#377F37","#2F7F2F","#277F27","#1F7F1F","#177F17","#0F7F0F","#077F07","#007F00","#4180B6","#69AEE7","#006600","#006633","#006666","#006699","#0066CC","#0066FF","#336600","#336633","#336666","#336699","#3366CC","#3366FF","#666600","#666633","#666666","#666699","#6666CC","#6666FF","#996600","#996633","#996666","#996699","#9966CC","#9966FF","#CC6600","#CC6633","#CC6666","#CC6699","#CC66CC","#CC66FF","#FF6600","#FF6633","#FF6666","#FF6699","#FF66CC","#FF66FF","#FFFF7F","#FFFF7F","#F7F77F","#EFEF7F","#E7E77F","#DFDF7F","#D7D77F","#CFCF7F","#C7C77F","#BFBF7F","#B7B77F","#AFAF7F","#A7A77F","#9F9F7F","#97977F","#8F8F7F","#87877F","#7F7F7F","#77777F","#6F6F7F","#67677F","#5F5F7F","#57577F","#4F4F7F","#47477F","#3F3F7F","#37377F","#2F2F7F","#27277F","#1F1F7F","#17177F","#0F0F7F","#07077F","#00007F","#4180B6","#69AEE7","#009900","#009933","#009966","#009999","#0099CC","#0099FF","#339900","#339933","#339966","#339999","#3399CC","#3399FF","#669900","#669933","#669966","#669999","#6699CC","#6699FF","#999900","#999933","#999966","#999999","#9999CC","#9999FF","#CC9900","#CC9933","#CC9966","#CC9999","#CC99CC","#CC99FF","#FF9900","#FF9933","#FF9966","#FF9999","#FF99CC","#FF99FF","#3FFFFF","#3FFFFF","#3FF7F7","#3FEFEF","#3FE7E7","#3FDFDF","#3FD7D7","#3FCFCF","#3FC7C7","#3FBFBF","#3FB7B7","#3FAFAF","#3FA7A7","#3F9F9F","#3F9797","#3F8F8F","#3F8787","#3F7F7F","#3F7777","#3F6F6F","#3F6767","#3F5F5F","#3F5757","#3F4F4F","#3F4747","#3F3F3F","#3F3737","#3F2F2F","#3F2727","#3F1F1F","#3F1717","#3F0F0F","#3F0707","#3F0000","#4180B6","#69AEE7","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#66CC00","#66CC33","#66CC66","#66CC99","#66CCCC","#66CCFF","#99CC00","#99CC33","#99CC66","#99CC99","#99CCCC","#99CCFF","#CCCC00","#CCCC33","#CCCC66","#CCCC99","#CCCCCC","#CCCCFF","#FFCC00","#FFCC33","#FFCC66","#FFCC99","#FFCCCC","#FFCCFF","#FF3FFF","#FF3FFF","#F73FF7","#EF3FEF","#E73FE7","#DF3FDF","#D73FD7","#CF3FCF","#C73FC7","#BF3FBF","#B73FB7","#AF3FAF","#A73FA7","#9F3F9F","#973F97","#8F3F8F","#873F87","#7F3F7F","#773F77","#6F3F6F","#673F67","#5F3F5F","#573F57","#4F3F4F","#473F47","#3F3F3F","#373F37","#2F3F2F","#273F27","#1F3F1F","#173F17","#0F3F0F","#073F07","#003F00","#4180B6","#69AEE7","#00FF00","#00FF33","#00FF66","#00FF99","#00FFCC","#00FFFF","#33FF00","#33FF33","#33FF66","#33FF99","#33FFCC","#33FFFF","#66FF00","#66FF33","#66FF66","#66FF99","#66FFCC","#66FFFF","#99FF00","#99FF33","#99FF66","#99FF99","#99FFCC","#99FFFF","#CCFF00","#CCFF33","#CCFF66","#CCFF99","#CCFFCC","#CCFFFF","#FFFF00","#FFFF33","#FFFF66","#FFFF99","#FFFFCC","#FFFFFF","#FFFF3F","#FFFF3F","#F7F73F","#EFEF3F","#E7E73F","#DFDF3F","#D7D73F","#CFCF3F","#C7C73F","#BFBF3F","#B7B73F","#AFAF3F","#A7A73F","#9F9F3F","#97973F","#8F8F3F","#87873F","#7F7F3F","#77773F","#6F6F3F","#67673F","#5F5F3F","#57573F","#4F4F3F","#47473F","#3F3F3F","#37373F","#2F2F3F","#27273F","#1F1F3F","#17173F","#0F0F3F","#07073F","#00003F","#4180B6","#69AEE7","#FFFFFF","#FFEEEE","#FFDDDD","#FFCCCC","#FFBBBB","#FFAAAA","#FF9999","#FF8888","#FF7777","#FF6666","#FF5555","#FF4444","#FF3333","#FF2222","#FF1111","#FF0000","#FF0000","#FF0000","#FF0000","#EE0000","#DD0000","#CC0000","#BB0000","#AA0000","#990000","#880000","#770000","#660000","#550000","#440000","#330000","#220000","#110000","#000000","#000000","#000000","#000000","#001111","#002222","#003333","#004444","#005555","#006666","#007777","#008888","#009999","#00AAAA","#00BBBB","#00CCCC","#00DDDD","#00EEEE","#00FFFF","#00FFFF","#00FFFF","#00FFFF","#11FFFF","#22FFFF","#33FFFF","#44FFFF","#55FFFF","#66FFFF","#77FFFF","#88FFFF","#99FFFF","#AAFFFF","#BBFFFF","#CCFFFF","#DDFFFF","#EEFFFF","#FFFFFF","#4180B6","#69AEE7","#FFFFFF","#EEFFEE","#DDFFDD","#CCFFCC","#BBFFBB","#AAFFAA","#99FF99","#88FF88","#77FF77","#66FF66","#55FF55","#44FF44","#33FF33","#22FF22","#11FF11","#00FF00","#00FF00","#00FF00","#00FF00","#00EE00","#00DD00","#00CC00","#00BB00","#00AA00","#009900","#008800","#007700","#006600","#005500","#004400","#003300","#002200","#001100","#000000","#000000","#000000","#000000","#110011","#220022","#330033","#440044","#550055","#660066","#770077","#880088","#990099","#AA00AA","#BB00BB","#CC00CC","#DD00DD","#EE00EE","#FF00FF","#FF00FF","#FF00FF","#FF00FF","#FF11FF","#FF22FF","#FF33FF","#FF44FF","#FF55FF","#FF66FF","#FF77FF","#FF88FF","#FF99FF","#FFAAFF","#FFBBFF","#FFCCFF","#FFDDFF","#FFEEFF","#FFFFFF","#4180B6","#69AEE7","#FFFFFF","#EEEEFF","#DDDDFF","#CCCCFF","#BBBBFF","#AAAAFF","#9999FF","#8888FF","#7777FF","#6666FF","#5555FF","#4444FF","#3333FF","#2222FF","#1111FF","#0000FF","#0000FF","#0000FF","#0000FF","#0000EE","#0000DD","#0000CC","#0000BB","#0000AA","#000099","#000088","#000077","#000066","#000055","#000044","#000033","#000022","#000011","#000000","#000000","#000000","#000000","#111100","#222200","#333300","#444400","#555500","#666600","#777700","#888800","#999900","#AAAA00","#BBBB00","#CCCC00","#DDDD00","#EEEE00","#FFFF00","#FFFF00","#FFFF00","#FFFF00","#FFFF11","#FFFF22","#FFFF33","#FFFF44","#FFFF55","#FFFF66","#FFFF77","#FFFF88","#FFFF99","#FFFFAA","#FFFFBB","#FFFFCC","#FFFFDD","#FFFFEE","#FFFFFF","#4180B6","#69AEE7","#FFFFFF","#FFFFFF","#FBFBFB","#F7F7F7","#F3F3F3","#EFEFEF","#EBEBEB","#E7E7E7","#E3E3E3","#DFDFDF","#DBDBDB","#D7D7D7","#D3D3D3","#CFCFCF","#CBCBCB","#C7C7C7","#C3C3C3","#BFBFBF","#BBBBBB","#B7B7B7","#B3B3B3","#AFAFAF","#ABABAB","#A7A7A7","#A3A3A3","#9F9F9F","#9B9B9B","#979797","#939393","#8F8F8F","#8B8B8B","#878787","#838383","#7F7F7F","#7B7B7B","#777777","#737373","#6F6F6F","#6B6B6B","#676767","#636363","#5F5F5F","#5B5B5B","#575757","#535353","#4F4F4F","#4B4B4B","#474747","#434343","#3F3F3F","#3B3B3B","#373737","#333333","#2F2F2F","#2B2B2B","#272727","#232323","#1F1F1F","#1B1B1B","#171717","#131313","#0F0F0F","#0B0B0B","#070707","#030303","#000000","#000000","#000000","#000000","#000000");var n=a.length;var c=72;var k="";var j=(g)?"window.opener.":"";if(g){k+="<html><head><title>Select Color</title></head>";k+="<body marginwidth=0 marginheight=0 leftmargin=0 topmargin=0><span style='text-align: center;'>"}k+="<table style='border: none;' cellspacing=0 cellpadding=0>";var l=(document.getElementById||document.all)?true:false;for(var h=0;h<n;h++){if((h%c)==0){k+="<tr>"}if(l){var f='onMouseOver="'+j+"ColorPicker_highlightColor('"+a[h]+"',window.document)\""}else{f=""}k+='<td style="background-color: '+a[h]+';"><a href="javascript:void()" onclick="'+j+"ColorPicker_pickColor('"+a[h]+"',"+j+"window.popupWindowObjects["+m.index+']);return false;" '+f+">&nbsp;</a></td>";if(((h+1)>=n)||(((h+1)%c)==0)){k+="</tr>"}}if(document.getElementById){var d=Math.floor(c/2);var b=c=d;k+="<tr><td colspan='"+d+"' style='background-color: #FFF;' ID='colorPickerSelectedColor'>&nbsp;</td><td colspan='"+b+"' style='text-align: center;' id='colorPickerSelectedColorValue'>#FFFFFF</td></tr>"}k+="</table>";if(g){k+="</span></body></html>"}m.populate(k+"\n");m.offsetY=25;m.autoHide();return m};
\ No newline at end of file
+// ===================================================================
+// Author: Matt Kruse <matt@mattkruse.com>
+// WWW: http://www.mattkruse.com/
+//
+// NOTICE: You may use this code for any purpose, commercial or
+// private, without any further permission from the author. You may
+// remove this notice from your final code if you wish, however it is
+// appreciated by the author if at least my web site address is kept.
+//
+// You may *NOT* re-distribute this code in any way except through its
+// use. That means, you can include it in your product, or your web
+// site, or any other form where the code is actually being used. You
+// may not put the plain javascript up on your site for download or
+// include it in your javascript libraries for download.
+// If you wish to share this code with others, please just point them
+// to the URL instead.
+// Please DO NOT link directly to my .js files from your site. Copy
+// the files to your server and use them there. Thank you.
+// ===================================================================
+
+
+/* SOURCE FILE: AnchorPosition.js */
+
+/*
+AnchorPosition.js
+Author: Matt Kruse
+Last modified: 10/11/02
+
+DESCRIPTION: These functions find the position of an <A> tag in a document,
+so other elements can be positioned relative to it.
+
+COMPATABILITY: Netscape 4.x,6.x,Mozilla, IE 5.x,6.x on Windows. Some small
+positioning errors - usually with Window positioning - occur on the
+Macintosh platform.
+
+FUNCTIONS:
+getAnchorPosition(anchorname)
+  Returns an Object() having .x and .y properties of the pixel coordinates
+  of the upper-left corner of the anchor. Position is relative to the PAGE.
+
+getAnchorWindowPosition(anchorname)
+  Returns an Object() having .x and .y properties of the pixel coordinates
+  of the upper-left corner of the anchor, relative to the WHOLE SCREEN.
+
+NOTES:
+
+1) For popping up separate browser windows, use getAnchorWindowPosition.
+   Otherwise, use getAnchorPosition
+
+2) Your anchor tag MUST contain both NAME and ID attributes which are the
+   same. For example:
+   <A NAME="test" ID="test"> </A>
+
+3) There must be at least a space between <A> </A> for IE5.5 to see the
+   anchor tag correctly. Do not do <A></A> with no space.
+*/
+
+// getAnchorPosition(anchorname)
+//   This function returns an object having .x and .y properties which are the coordinates
+//   of the named anchor, relative to the page.
+function getAnchorPosition(anchorname) {
+	// This function will return an Object with x and y properties
+	var useWindow=false;
+	var coordinates=new Object();
+	var x=0,y=0;
+	// Browser capability sniffing
+	var use_gebi=false, use_css=false, use_layers=false;
+	if (document.getElementById) { use_gebi=true; }
+	else if (document.all) { use_css=true; }
+	else if (document.layers) { use_layers=true; }
+	// Logic to find position
+ 	if (use_gebi && document.all) {
+		x=AnchorPosition_getPageOffsetLeft(document.all[anchorname]);
+		y=AnchorPosition_getPageOffsetTop(document.all[anchorname]);
+		}
+	else if (use_gebi) {
+		var o=document.getElementById(anchorname);
+		x=AnchorPosition_getPageOffsetLeft(o);
+		y=AnchorPosition_getPageOffsetTop(o);
+		}
+ 	else if (use_css) {
+		x=AnchorPosition_getPageOffsetLeft(document.all[anchorname]);
+		y=AnchorPosition_getPageOffsetTop(document.all[anchorname]);
+		}
+	else if (use_layers) {
+		var found=0;
+		for (var i=0; i<document.anchors.length; i++) {
+			if (document.anchors[i].name==anchorname) { found=1; break; }
+			}
+		if (found==0) {
+			coordinates.x=0; coordinates.y=0; return coordinates;
+			}
+		x=document.anchors[i].x;
+		y=document.anchors[i].y;
+		}
+	else {
+		coordinates.x=0; coordinates.y=0; return coordinates;
+		}
+	coordinates.x=x;
+	coordinates.y=y;
+	return coordinates;
+	}
+
+// getAnchorWindowPosition(anchorname)
+//   This function returns an object having .x and .y properties which are the coordinates
+//   of the named anchor, relative to the window
+function getAnchorWindowPosition(anchorname) {
+	var coordinates=getAnchorPosition(anchorname);
+	var x=0;
+	var y=0;
+	if (document.getElementById) {
+		if (isNaN(window.screenX)) {
+			x=coordinates.x-document.body.scrollLeft+window.screenLeft;
+			y=coordinates.y-document.body.scrollTop+window.screenTop;
+			}
+		else {
+			x=coordinates.x+window.screenX+(window.outerWidth-window.innerWidth)-window.pageXOffset;
+			y=coordinates.y+window.screenY+(window.outerHeight-24-window.innerHeight)-window.pageYOffset;
+			}
+		}
+	else if (document.all) {
+		x=coordinates.x-document.body.scrollLeft+window.screenLeft;
+		y=coordinates.y-document.body.scrollTop+window.screenTop;
+		}
+	else if (document.layers) {
+		x=coordinates.x+window.screenX+(window.outerWidth-window.innerWidth)-window.pageXOffset;
+		y=coordinates.y+window.screenY+(window.outerHeight-24-window.innerHeight)-window.pageYOffset;
+		}
+	coordinates.x=x;
+	coordinates.y=y;
+	return coordinates;
+	}
+
+// Functions for IE to get position of an object
+function AnchorPosition_getPageOffsetLeft (el) {
+	var ol=el.offsetLeft;
+	while ((el=el.offsetParent) != null) { ol += el.offsetLeft; }
+	return ol;
+	}
+function AnchorPosition_getWindowOffsetLeft (el) {
+	return AnchorPosition_getPageOffsetLeft(el)-document.body.scrollLeft;
+	}
+function AnchorPosition_getPageOffsetTop (el) {
+	var ot=el.offsetTop;
+	while((el=el.offsetParent) != null) { ot += el.offsetTop; }
+	return ot;
+	}
+function AnchorPosition_getWindowOffsetTop (el) {
+	return AnchorPosition_getPageOffsetTop(el)-document.body.scrollTop;
+	}
+
+/* SOURCE FILE: PopupWindow.js */
+
+/*
+PopupWindow.js
+Author: Matt Kruse
+Last modified: 02/16/04
+
+DESCRIPTION: This object allows you to easily and quickly popup a window
+in a certain place. The window can either be a DIV or a separate browser
+window.
+
+COMPATABILITY: Works with Netscape 4.x, 6.x, IE 5.x on Windows. Some small
+positioning errors - usually with Window positioning - occur on the
+Macintosh platform. Due to bugs in Netscape 4.x, populating the popup
+window with <STYLE> tags may cause errors.
+
+USAGE:
+// Create an object for a WINDOW popup
+var win = new PopupWindow();
+
+// Create an object for a DIV window using the DIV named 'mydiv'
+var win = new PopupWindow('mydiv');
+
+// Set the window to automatically hide itself when the user clicks
+// anywhere else on the page except the popup
+win.autoHide();
+
+// Show the window relative to the anchor name passed in
+win.showPopup(anchorname);
+
+// Hide the popup
+win.hidePopup();
+
+// Set the size of the popup window (only applies to WINDOW popups
+win.setSize(width,height);
+
+// Populate the contents of the popup window that will be shown. If you
+// change the contents while it is displayed, you will need to refresh()
+win.populate(string);
+
+// set the URL of the window, rather than populating its contents
+// manually
+win.setUrl("http://www.site.com/");
+
+// Refresh the contents of the popup
+win.refresh();
+
+// Specify how many pixels to the right of the anchor the popup will appear
+win.offsetX = 50;
+
+// Specify how many pixels below the anchor the popup will appear
+win.offsetY = 100;
+
+NOTES:
+1) Requires the functions in AnchorPosition.js
+
+2) Your anchor tag MUST contain both NAME and ID attributes which are the
+   same. For example:
+   <A NAME="test" ID="test"> </A>
+
+3) There must be at least a space between <A> </A> for IE5.5 to see the
+   anchor tag correctly. Do not do <A></A> with no space.
+
+4) When a PopupWindow object is created, a handler for 'onmouseup' is
+   attached to any event handler you may have already defined. Do NOT define
+   an event handler for 'onmouseup' after you define a PopupWindow object or
+   the autoHide() will not work correctly.
+*/
+
+// Set the position of the popup window based on the anchor
+function PopupWindow_getXYPosition(anchorname) {
+	var coordinates;
+	if (this.type == "WINDOW") {
+		coordinates = getAnchorWindowPosition(anchorname);
+		}
+	else {
+		coordinates = getAnchorPosition(anchorname);
+		}
+	this.x = coordinates.x;
+	this.y = coordinates.y;
+	}
+// Set width/height of DIV/popup window
+function PopupWindow_setSize(width,height) {
+	this.width = width;
+	this.height = height;
+	}
+// Fill the window with contents
+function PopupWindow_populate(contents) {
+	this.contents = contents;
+	this.populated = false;
+	}
+// Set the URL to go to
+function PopupWindow_setUrl(url) {
+	this.url = url;
+	}
+// Set the window popup properties
+function PopupWindow_setWindowProperties(props) {
+	this.windowProperties = props;
+	}
+// Refresh the displayed contents of the popup
+function PopupWindow_refresh() {
+	if (this.divName != null) {
+		// refresh the DIV object
+		if (this.use_gebi) {
+			document.getElementById(this.divName).innerHTML = this.contents;
+			}
+		else if (this.use_css) {
+			document.all[this.divName].innerHTML = this.contents;
+			}
+		else if (this.use_layers) {
+			var d = document.layers[this.divName];
+			d.document.open();
+			d.document.writeln(this.contents);
+			d.document.close();
+			}
+		}
+	else {
+		if (this.popupWindow != null && !this.popupWindow.closed) {
+			if (this.url!="") {
+				this.popupWindow.location.href=this.url;
+				}
+			else {
+				this.popupWindow.document.open();
+				this.popupWindow.document.writeln(this.contents);
+				this.popupWindow.document.close();
+			}
+			this.popupWindow.focus();
+			}
+		}
+	}
+// Position and show the popup, relative to an anchor object
+function PopupWindow_showPopup(anchorname) {
+	this.getXYPosition(anchorname);
+	this.x += this.offsetX;
+	this.y += this.offsetY;
+	if (!this.populated && (this.contents != "")) {
+		this.populated = true;
+		this.refresh();
+		}
+	if (this.divName != null) {
+		// Show the DIV object
+		if (this.use_gebi) {
+			document.getElementById(this.divName).style.left = this.x + "px";
+			document.getElementById(this.divName).style.top = this.y;
+			document.getElementById(this.divName).style.visibility = "visible";
+			}
+		else if (this.use_css) {
+			document.all[this.divName].style.left = this.x;
+			document.all[this.divName].style.top = this.y;
+			document.all[this.divName].style.visibility = "visible";
+			}
+		else if (this.use_layers) {
+			document.layers[this.divName].left = this.x;
+			document.layers[this.divName].top = this.y;
+			document.layers[this.divName].visibility = "visible";
+			}
+		}
+	else {
+		if (this.popupWindow == null || this.popupWindow.closed) {
+			// If the popup window will go off-screen, move it so it doesn't
+			if (this.x<0) { this.x=0; }
+			if (this.y<0) { this.y=0; }
+			if (screen && screen.availHeight) {
+				if ((this.y + this.height) > screen.availHeight) {
+					this.y = screen.availHeight - this.height;
+					}
+				}
+			if (screen && screen.availWidth) {
+				if ((this.x + this.width) > screen.availWidth) {
+					this.x = screen.availWidth - this.width;
+					}
+				}
+			var avoidAboutBlank = window.opera || ( document.layers && !navigator.mimeTypes['*'] ) || navigator.vendor == 'KDE' || ( document.childNodes && !document.all && !navigator.taintEnabled );
+			this.popupWindow = window.open(avoidAboutBlank?"":"about:blank","window_"+anchorname,this.windowProperties+",width="+this.width+",height="+this.height+",screenX="+this.x+",left="+this.x+",screenY="+this.y+",top="+this.y+"");
+			}
+		this.refresh();
+		}
+	}
+// Hide the popup
+function PopupWindow_hidePopup() {
+	if (this.divName != null) {
+		if (this.use_gebi) {
+			document.getElementById(this.divName).style.visibility = "hidden";
+			}
+		else if (this.use_css) {
+			document.all[this.divName].style.visibility = "hidden";
+			}
+		else if (this.use_layers) {
+			document.layers[this.divName].visibility = "hidden";
+			}
+		}
+	else {
+		if (this.popupWindow && !this.popupWindow.closed) {
+			this.popupWindow.close();
+			this.popupWindow = null;
+			}
+		}
+	}
+// Pass an event and return whether or not it was the popup DIV that was clicked
+function PopupWindow_isClicked(e) {
+	if (this.divName != null) {
+		if (this.use_layers) {
+			var clickX = e.pageX;
+			var clickY = e.pageY;
+			var t = document.layers[this.divName];
+			if ((clickX > t.left) && (clickX < t.left+t.clip.width) && (clickY > t.top) && (clickY < t.top+t.clip.height)) {
+				return true;
+				}
+			else { return false; }
+			}
+		else if (document.all) { // Need to hard-code this to trap IE for error-handling
+			var t = window.event.srcElement;
+			while (t.parentElement != null) {
+				if (t.id==this.divName) {
+					return true;
+					}
+				t = t.parentElement;
+				}
+			return false;
+			}
+		else if (this.use_gebi && e) {
+			var t = e.originalTarget;
+			while (t.parentNode != null) {
+				if (t.id==this.divName) {
+					return true;
+					}
+				t = t.parentNode;
+				}
+			return false;
+			}
+		return false;
+		}
+	return false;
+	}
+
+// Check an onMouseDown event to see if we should hide
+function PopupWindow_hideIfNotClicked(e) {
+	if (this.autoHideEnabled && !this.isClicked(e)) {
+		this.hidePopup();
+		}
+	}
+// Call this to make the DIV disable automatically when mouse is clicked outside it
+function PopupWindow_autoHide() {
+	this.autoHideEnabled = true;
+	}
+// This global function checks all PopupWindow objects onmouseup to see if they should be hidden
+function PopupWindow_hidePopupWindows(e) {
+	for (var i=0; i<popupWindowObjects.length; i++) {
+		if (popupWindowObjects[i] != null) {
+			var p = popupWindowObjects[i];
+			p.hideIfNotClicked(e);
+			}
+		}
+	}
+// Run this immediately to attach the event listener
+function PopupWindow_attachListener() {
+	if (document.layers) {
+		document.captureEvents(Event.MOUSEUP);
+		}
+	window.popupWindowOldEventListener = document.onmouseup;
+	if (window.popupWindowOldEventListener != null) {
+		document.onmouseup = new Function("window.popupWindowOldEventListener(); PopupWindow_hidePopupWindows();");
+		}
+	else {
+		document.onmouseup = PopupWindow_hidePopupWindows;
+		}
+	}
+// CONSTRUCTOR for the PopupWindow object
+// Pass it a DIV name to use a DHTML popup, otherwise will default to window popup
+function PopupWindow() {
+	if (!window.popupWindowIndex) { window.popupWindowIndex = 0; }
+	if (!window.popupWindowObjects) { window.popupWindowObjects = new Array(); }
+	if (!window.listenerAttached) {
+		window.listenerAttached = true;
+		PopupWindow_attachListener();
+		}
+	this.index = popupWindowIndex++;
+	popupWindowObjects[this.index] = this;
+	this.divName = null;
+	this.popupWindow = null;
+	this.width=0;
+	this.height=0;
+	this.populated = false;
+	this.visible = false;
+	this.autoHideEnabled = false;
+
+	this.contents = "";
+	this.url="";
+	this.windowProperties="toolbar=no,location=no,status=no,menubar=no,scrollbars=auto,resizable,alwaysRaised,dependent,titlebar=no";
+	if (arguments.length>0) {
+		this.type="DIV";
+		this.divName = arguments[0];
+		}
+	else {
+		this.type="WINDOW";
+		}
+	this.use_gebi = false;
+	this.use_css = false;
+	this.use_layers = false;
+	if (document.getElementById) { this.use_gebi = true; }
+	else if (document.all) { this.use_css = true; }
+	else if (document.layers) { this.use_layers = true; }
+	else { this.type = "WINDOW"; }
+	this.offsetX = 0;
+	this.offsetY = 0;
+	// Method mappings
+	this.getXYPosition = PopupWindow_getXYPosition;
+	this.populate = PopupWindow_populate;
+	this.setUrl = PopupWindow_setUrl;
+	this.setWindowProperties = PopupWindow_setWindowProperties;
+	this.refresh = PopupWindow_refresh;
+	this.showPopup = PopupWindow_showPopup;
+	this.hidePopup = PopupWindow_hidePopup;
+	this.setSize = PopupWindow_setSize;
+	this.isClicked = PopupWindow_isClicked;
+	this.autoHide = PopupWindow_autoHide;
+	this.hideIfNotClicked = PopupWindow_hideIfNotClicked;
+	}
+
+/* SOURCE FILE: ColorPicker2.js */
+
+/*
+Last modified: 02/24/2003
+
+DESCRIPTION: This widget is used to select a color, in hexadecimal #RRGGBB
+form. It uses a color "swatch" to display the standard 216-color web-safe
+palette. The user can then click on a color to select it.
+
+COMPATABILITY: See notes in AnchorPosition.js and PopupWindow.js.
+Only the latest DHTML-capable browsers will show the color and hex values
+at the bottom as your mouse goes over them.
+
+USAGE:
+// Create a new ColorPicker object using DHTML popup
+var cp = new ColorPicker();
+
+// Create a new ColorPicker object using Window Popup
+var cp = new ColorPicker('window');
+
+// Add a link in your page to trigger the popup. For example:
+<A HREF="#" onClick="cp.show('pick');return false;" NAME="pick" ID="pick">Pick</A>
+
+// Or use the built-in "select" function to do the dirty work for you:
+<A HREF="#" onClick="cp.select(document.forms[0].color,'pick');return false;" NAME="pick" ID="pick">Pick</A>
+
+// If using DHTML popup, write out the required DIV tag near the bottom
+// of your page.
+<SCRIPT LANGUAGE="JavaScript">cp.writeDiv()</SCRIPT>
+
+// Write the 'pickColor' function that will be called when the user clicks
+// a color and do something with the value. This is only required if you
+// want to do something other than simply populate a form field, which is
+// what the 'select' function will give you.
+function pickColor(color) {
+	field.value = color;
+	}
+
+NOTES:
+1) Requires the functions in AnchorPosition.js and PopupWindow.js
+
+2) Your anchor tag MUST contain both NAME and ID attributes which are the
+   same. For example:
+   <A NAME="test" ID="test"> </A>
+
+3) There must be at least a space between <A> </A> for IE5.5 to see the
+   anchor tag correctly. Do not do <A></A> with no space.
+
+4) When a ColorPicker object is created, a handler for 'onmouseup' is
+   attached to any event handler you may have already defined. Do NOT define
+   an event handler for 'onmouseup' after you define a ColorPicker object or
+   the color picker will not hide itself correctly.
+*/
+ColorPicker_targetInput = null;
+function ColorPicker_writeDiv() {
+	document.writeln("<DIV ID=\"colorPickerDiv\" STYLE=\"position:absolute;visibility:hidden;\"> </DIV>");
+	}
+
+function ColorPicker_show(anchorname) {
+	this.showPopup(anchorname);
+	}
+
+function ColorPicker_pickColor(color,obj) {
+	obj.hidePopup();
+	pickColor(color);
+	}
+
+// A Default "pickColor" function to accept the color passed back from popup.
+// User can over-ride this with their own function.
+function pickColor(color) {
+	if (ColorPicker_targetInput==null) {
+		alert("Target Input is null, which means you either didn't use the 'select' function or you have no defined your own 'pickColor' function to handle the picked color!");
+		return;
+		}
+	ColorPicker_targetInput.value = color;
+	}
+
+// This function is the easiest way to popup the window, select a color, and
+// have the value populate a form field, which is what most people want to do.
+function ColorPicker_select(inputobj,linkname) {
+	if (inputobj.type!="text" && inputobj.type!="hidden" && inputobj.type!="textarea") {
+		alert("colorpicker.select: Input object passed is not a valid form input object");
+		window.ColorPicker_targetInput=null;
+		return;
+		}
+	window.ColorPicker_targetInput = inputobj;
+	this.show(linkname);
+	}
+
+// This function runs when you move your mouse over a color block, if you have a newer browser
+function ColorPicker_highlightColor(c) {
+	var thedoc = (arguments.length>1)?arguments[1]:window.document;
+	var d = thedoc.getElementById("colorPickerSelectedColor");
+	d.style.backgroundColor = c;
+	d = thedoc.getElementById("colorPickerSelectedColorValue");
+	d.innerHTML = c;
+	}
+
+function ColorPicker() {
+	var windowMode = false;
+	// Create a new PopupWindow object
+	if (arguments.length==0) {
+		var divname = "colorPickerDiv";
+		}
+	else if (arguments[0] == "window") {
+		var divname = '';
+		windowMode = true;
+		}
+	else {
+		var divname = arguments[0];
+		}
+
+	if (divname != "") {
+		var cp = new PopupWindow(divname);
+		}
+	else {
+		var cp = new PopupWindow();
+		cp.setSize(225,250);
+		}
+
+	// Object variables
+	cp.currentValue = "#FFFFFF";
+
+	// Method Mappings
+	cp.writeDiv = ColorPicker_writeDiv;
+	cp.highlightColor = ColorPicker_highlightColor;
+	cp.show = ColorPicker_show;
+	cp.select = ColorPicker_select;
+
+	// Code to populate color picker window
+	var colors = new Array(	"#4180B6","#69AEE7","#000000","#000033","#000066","#000099","#0000CC","#0000FF","#330000","#330033","#330066","#330099",
+							"#3300CC","#3300FF","#660000","#660033","#660066","#660099","#6600CC","#6600FF","#990000","#990033","#990066","#990099",
+							"#9900CC","#9900FF","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#FF0000","#FF0033","#FF0066","#FF0099",
+							"#FF00CC","#FF00FF","#7FFFFF","#7FFFFF","#7FF7F7","#7FEFEF","#7FE7E7","#7FDFDF","#7FD7D7","#7FCFCF","#7FC7C7","#7FBFBF",
+							"#7FB7B7","#7FAFAF","#7FA7A7","#7F9F9F","#7F9797","#7F8F8F","#7F8787","#7F7F7F","#7F7777","#7F6F6F","#7F6767","#7F5F5F",
+							"#7F5757","#7F4F4F","#7F4747","#7F3F3F","#7F3737","#7F2F2F","#7F2727","#7F1F1F","#7F1717","#7F0F0F","#7F0707","#7F0000",
+
+							"#4180B6","#69AEE7","#003300","#003333","#003366","#003399","#0033CC","#0033FF","#333300","#333333","#333366","#333399",
+							"#3333CC","#3333FF","#663300","#663333","#663366","#663399","#6633CC","#6633FF","#993300","#993333","#993366","#993399",
+							"#9933CC","#9933FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#FF3300","#FF3333","#FF3366","#FF3399",
+							"#FF33CC","#FF33FF","#FF7FFF","#FF7FFF","#F77FF7","#EF7FEF","#E77FE7","#DF7FDF","#D77FD7","#CF7FCF","#C77FC7","#BF7FBF",
+							"#B77FB7","#AF7FAF","#A77FA7","#9F7F9F","#977F97","#8F7F8F","#877F87","#7F7F7F","#777F77","#6F7F6F","#677F67","#5F7F5F",
+							"#577F57","#4F7F4F","#477F47","#3F7F3F","#377F37","#2F7F2F","#277F27","#1F7F1F","#177F17","#0F7F0F","#077F07","#007F00",
+
+							"#4180B6","#69AEE7","#006600","#006633","#006666","#006699","#0066CC","#0066FF","#336600","#336633","#336666","#336699",
+							"#3366CC","#3366FF","#666600","#666633","#666666","#666699","#6666CC","#6666FF","#996600","#996633","#996666","#996699",
+							"#9966CC","#9966FF","#CC6600","#CC6633","#CC6666","#CC6699","#CC66CC","#CC66FF","#FF6600","#FF6633","#FF6666","#FF6699",
+							"#FF66CC","#FF66FF","#FFFF7F","#FFFF7F","#F7F77F","#EFEF7F","#E7E77F","#DFDF7F","#D7D77F","#CFCF7F","#C7C77F","#BFBF7F",
+							"#B7B77F","#AFAF7F","#A7A77F","#9F9F7F","#97977F","#8F8F7F","#87877F","#7F7F7F","#77777F","#6F6F7F","#67677F","#5F5F7F",
+							"#57577F","#4F4F7F","#47477F","#3F3F7F","#37377F","#2F2F7F","#27277F","#1F1F7F","#17177F","#0F0F7F","#07077F","#00007F",
+
+							"#4180B6","#69AEE7","#009900","#009933","#009966","#009999","#0099CC","#0099FF","#339900","#339933","#339966","#339999",
+							"#3399CC","#3399FF","#669900","#669933","#669966","#669999","#6699CC","#6699FF","#999900","#999933","#999966","#999999",
+							"#9999CC","#9999FF","#CC9900","#CC9933","#CC9966","#CC9999","#CC99CC","#CC99FF","#FF9900","#FF9933","#FF9966","#FF9999",
+							"#FF99CC","#FF99FF","#3FFFFF","#3FFFFF","#3FF7F7","#3FEFEF","#3FE7E7","#3FDFDF","#3FD7D7","#3FCFCF","#3FC7C7","#3FBFBF",
+							"#3FB7B7","#3FAFAF","#3FA7A7","#3F9F9F","#3F9797","#3F8F8F","#3F8787","#3F7F7F","#3F7777","#3F6F6F","#3F6767","#3F5F5F",
+							"#3F5757","#3F4F4F","#3F4747","#3F3F3F","#3F3737","#3F2F2F","#3F2727","#3F1F1F","#3F1717","#3F0F0F","#3F0707","#3F0000",
+
+							"#4180B6","#69AEE7","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#33CC00","#33CC33","#33CC66","#33CC99",
+							"#33CCCC","#33CCFF","#66CC00","#66CC33","#66CC66","#66CC99","#66CCCC","#66CCFF","#99CC00","#99CC33","#99CC66","#99CC99",
+							"#99CCCC","#99CCFF","#CCCC00","#CCCC33","#CCCC66","#CCCC99","#CCCCCC","#CCCCFF","#FFCC00","#FFCC33","#FFCC66","#FFCC99",
+							"#FFCCCC","#FFCCFF","#FF3FFF","#FF3FFF","#F73FF7","#EF3FEF","#E73FE7","#DF3FDF","#D73FD7","#CF3FCF","#C73FC7","#BF3FBF",
+							"#B73FB7","#AF3FAF","#A73FA7","#9F3F9F","#973F97","#8F3F8F","#873F87","#7F3F7F","#773F77","#6F3F6F","#673F67","#5F3F5F",
+							"#573F57","#4F3F4F","#473F47","#3F3F3F","#373F37","#2F3F2F","#273F27","#1F3F1F","#173F17","#0F3F0F","#073F07","#003F00",
+
+							"#4180B6","#69AEE7","#00FF00","#00FF33","#00FF66","#00FF99","#00FFCC","#00FFFF","#33FF00","#33FF33","#33FF66","#33FF99",
+							"#33FFCC","#33FFFF","#66FF00","#66FF33","#66FF66","#66FF99","#66FFCC","#66FFFF","#99FF00","#99FF33","#99FF66","#99FF99",
+							"#99FFCC","#99FFFF","#CCFF00","#CCFF33","#CCFF66","#CCFF99","#CCFFCC","#CCFFFF","#FFFF00","#FFFF33","#FFFF66","#FFFF99",
+							"#FFFFCC","#FFFFFF","#FFFF3F","#FFFF3F","#F7F73F","#EFEF3F","#E7E73F","#DFDF3F","#D7D73F","#CFCF3F","#C7C73F","#BFBF3F",
+							"#B7B73F","#AFAF3F","#A7A73F","#9F9F3F","#97973F","#8F8F3F","#87873F","#7F7F3F","#77773F","#6F6F3F","#67673F","#5F5F3F",
+							"#57573F","#4F4F3F","#47473F","#3F3F3F","#37373F","#2F2F3F","#27273F","#1F1F3F","#17173F","#0F0F3F","#07073F","#00003F",
+
+							"#4180B6","#69AEE7","#FFFFFF","#FFEEEE","#FFDDDD","#FFCCCC","#FFBBBB","#FFAAAA","#FF9999","#FF8888","#FF7777","#FF6666",
+							"#FF5555","#FF4444","#FF3333","#FF2222","#FF1111","#FF0000","#FF0000","#FF0000","#FF0000","#EE0000","#DD0000","#CC0000",
+							"#BB0000","#AA0000","#990000","#880000","#770000","#660000","#550000","#440000","#330000","#220000","#110000","#000000",
+							"#000000","#000000","#000000","#001111","#002222","#003333","#004444","#005555","#006666","#007777","#008888","#009999",
+							"#00AAAA","#00BBBB","#00CCCC","#00DDDD","#00EEEE","#00FFFF","#00FFFF","#00FFFF","#00FFFF","#11FFFF","#22FFFF","#33FFFF",
+							"#44FFFF","#55FFFF","#66FFFF","#77FFFF","#88FFFF","#99FFFF","#AAFFFF","#BBFFFF","#CCFFFF","#DDFFFF","#EEFFFF","#FFFFFF",
+
+							"#4180B6","#69AEE7","#FFFFFF","#EEFFEE","#DDFFDD","#CCFFCC","#BBFFBB","#AAFFAA","#99FF99","#88FF88","#77FF77","#66FF66",
+							"#55FF55","#44FF44","#33FF33","#22FF22","#11FF11","#00FF00","#00FF00","#00FF00","#00FF00","#00EE00","#00DD00","#00CC00",
+							"#00BB00","#00AA00","#009900","#008800","#007700","#006600","#005500","#004400","#003300","#002200","#001100","#000000",
+							"#000000","#000000","#000000","#110011","#220022","#330033","#440044","#550055","#660066","#770077","#880088","#990099",
+							"#AA00AA","#BB00BB","#CC00CC","#DD00DD","#EE00EE","#FF00FF","#FF00FF","#FF00FF","#FF00FF","#FF11FF","#FF22FF","#FF33FF",
+							"#FF44FF","#FF55FF","#FF66FF","#FF77FF","#FF88FF","#FF99FF","#FFAAFF","#FFBBFF","#FFCCFF","#FFDDFF","#FFEEFF","#FFFFFF",
+
+							"#4180B6","#69AEE7","#FFFFFF","#EEEEFF","#DDDDFF","#CCCCFF","#BBBBFF","#AAAAFF","#9999FF","#8888FF","#7777FF","#6666FF",
+							"#5555FF","#4444FF","#3333FF","#2222FF","#1111FF","#0000FF","#0000FF","#0000FF","#0000FF","#0000EE","#0000DD","#0000CC",
+							"#0000BB","#0000AA","#000099","#000088","#000077","#000066","#000055","#000044","#000033","#000022","#000011","#000000",
+							"#000000","#000000","#000000","#111100","#222200","#333300","#444400","#555500","#666600","#777700","#888800","#999900",
+							"#AAAA00","#BBBB00","#CCCC00","#DDDD00","#EEEE00","#FFFF00","#FFFF00","#FFFF00","#FFFF00","#FFFF11","#FFFF22","#FFFF33",
+							"#FFFF44","#FFFF55","#FFFF66","#FFFF77","#FFFF88","#FFFF99","#FFFFAA","#FFFFBB","#FFFFCC","#FFFFDD","#FFFFEE","#FFFFFF",
+
+							"#4180B6","#69AEE7","#FFFFFF","#FFFFFF","#FBFBFB","#F7F7F7","#F3F3F3","#EFEFEF","#EBEBEB","#E7E7E7","#E3E3E3","#DFDFDF",
+							"#DBDBDB","#D7D7D7","#D3D3D3","#CFCFCF","#CBCBCB","#C7C7C7","#C3C3C3","#BFBFBF","#BBBBBB","#B7B7B7","#B3B3B3","#AFAFAF",
+							"#ABABAB","#A7A7A7","#A3A3A3","#9F9F9F","#9B9B9B","#979797","#939393","#8F8F8F","#8B8B8B","#878787","#838383","#7F7F7F",
+							"#7B7B7B","#777777","#737373","#6F6F6F","#6B6B6B","#676767","#636363","#5F5F5F","#5B5B5B","#575757","#535353","#4F4F4F",
+							"#4B4B4B","#474747","#434343","#3F3F3F","#3B3B3B","#373737","#333333","#2F2F2F","#2B2B2B","#272727","#232323","#1F1F1F",
+							"#1B1B1B","#171717","#131313","#0F0F0F","#0B0B0B","#070707","#030303","#000000","#000000","#000000","#000000","#000000");
+	var total = colors.length;
+	var width = 72;
+	var cp_contents = "";
+	var windowRef = (windowMode)?"window.opener.":"";
+	if (windowMode) {
+		cp_contents += "<html><head><title>Select Color</title></head>";
+		cp_contents += "<body marginwidth=0 marginheight=0 leftmargin=0 topmargin=0><span style='text-align: center;'>";
+		}
+	cp_contents += "<table style='border: none;' cellspacing=0 cellpadding=0>";
+	var use_highlight = (document.getElementById || document.all)?true:false;
+	for (var i=0; i<total; i++) {
+		if ((i % width) == 0) { cp_contents += "<tr>"; }
+		if (use_highlight) { var mo = 'onMouseOver="'+windowRef+'ColorPicker_highlightColor(\''+colors[i]+'\',window.document)"'; }
+		else { mo = ""; }
+		cp_contents += '<td style="background-color: '+colors[i]+';"><a href="javascript:void()" onclick="'+windowRef+'ColorPicker_pickColor(\''+colors[i]+'\','+windowRef+'window.popupWindowObjects['+cp.index+']);return false;" '+mo+'>&nbsp;</a></td>';
+		if ( ((i+1)>=total) || (((i+1) % width) == 0)) {
+			cp_contents += "</tr>";
+			}
+		}
+	// If the browser supports dynamically changing TD cells, add the fancy stuff
+	if (document.getElementById) {
+		var width1 = Math.floor(width/2);
+		var width2 = width = width1;
+		cp_contents += "<tr><td colspan='"+width1+"' style='background-color: #FFF;' ID='colorPickerSelectedColor'>&nbsp;</td><td colspan='"+width2+"' style='text-align: center;' id='colorPickerSelectedColorValue'>#FFFFFF</td></tr>";
+		}
+	cp_contents += "</table>";
+	if (windowMode) {
+		cp_contents += "</span></body></html>";
+		}
+	// end populate code
+
+	// Write the contents to the popup object
+	cp.populate(cp_contents+"\n");
+	// Move the table down a bit so you can see it
+	cp.offsetY = 25;
+	cp.autoHide();
+	return cp;
+	}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-includes/js/colorpicker.min.js	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,1 @@
+function getAnchorPosition(b){var e=false;var k=new Object();var j=0,g=0;var d=false,f=false,h=false;if(document.getElementById){d=true}else{if(document.all){f=true}else{if(document.layers){h=true}}}if(d&&document.all){j=AnchorPosition_getPageOffsetLeft(document.all[b]);g=AnchorPosition_getPageOffsetTop(document.all[b])}else{if(d){var a=document.getElementById(b);j=AnchorPosition_getPageOffsetLeft(a);g=AnchorPosition_getPageOffsetTop(a)}else{if(f){j=AnchorPosition_getPageOffsetLeft(document.all[b]);g=AnchorPosition_getPageOffsetTop(document.all[b])}else{if(h){var l=0;for(var c=0;c<document.anchors.length;c++){if(document.anchors[c].name==b){l=1;break}}if(l==0){k.x=0;k.y=0;return k}j=document.anchors[c].x;g=document.anchors[c].y}else{k.x=0;k.y=0;return k}}}}k.x=j;k.y=g;return k}function getAnchorWindowPosition(b){var c=getAnchorPosition(b);var a=0;var d=0;if(document.getElementById){if(isNaN(window.screenX)){a=c.x-document.body.scrollLeft+window.screenLeft;d=c.y-document.body.scrollTop+window.screenTop}else{a=c.x+window.screenX+(window.outerWidth-window.innerWidth)-window.pageXOffset;d=c.y+window.screenY+(window.outerHeight-24-window.innerHeight)-window.pageYOffset}}else{if(document.all){a=c.x-document.body.scrollLeft+window.screenLeft;d=c.y-document.body.scrollTop+window.screenTop}else{if(document.layers){a=c.x+window.screenX+(window.outerWidth-window.innerWidth)-window.pageXOffset;d=c.y+window.screenY+(window.outerHeight-24-window.innerHeight)-window.pageYOffset}}}c.x=a;c.y=d;return c}function AnchorPosition_getPageOffsetLeft(b){var a=b.offsetLeft;while((b=b.offsetParent)!=null){a+=b.offsetLeft}return a}function AnchorPosition_getWindowOffsetLeft(a){return AnchorPosition_getPageOffsetLeft(a)-document.body.scrollLeft}function AnchorPosition_getPageOffsetTop(a){var b=a.offsetTop;while((a=a.offsetParent)!=null){b+=a.offsetTop}return b}function AnchorPosition_getWindowOffsetTop(a){return AnchorPosition_getPageOffsetTop(a)-document.body.scrollTop}function PopupWindow_getXYPosition(a){var b;if(this.type=="WINDOW"){b=getAnchorWindowPosition(a)}else{b=getAnchorPosition(a)}this.x=b.x;this.y=b.y}function PopupWindow_setSize(b,a){this.width=b;this.height=a}function PopupWindow_populate(a){this.contents=a;this.populated=false}function PopupWindow_setUrl(a){this.url=a}function PopupWindow_setWindowProperties(a){this.windowProperties=a}function PopupWindow_refresh(){if(this.divName!=null){if(this.use_gebi){document.getElementById(this.divName).innerHTML=this.contents}else{if(this.use_css){document.all[this.divName].innerHTML=this.contents}else{if(this.use_layers){var a=document.layers[this.divName];a.document.open();a.document.writeln(this.contents);a.document.close()}}}}else{if(this.popupWindow!=null&&!this.popupWindow.closed){if(this.url!=""){this.popupWindow.location.href=this.url}else{this.popupWindow.document.open();this.popupWindow.document.writeln(this.contents);this.popupWindow.document.close()}this.popupWindow.focus()}}}function PopupWindow_showPopup(a){this.getXYPosition(a);this.x+=this.offsetX;this.y+=this.offsetY;if(!this.populated&&(this.contents!="")){this.populated=true;this.refresh()}if(this.divName!=null){if(this.use_gebi){document.getElementById(this.divName).style.left=this.x+"px";document.getElementById(this.divName).style.top=this.y;document.getElementById(this.divName).style.visibility="visible"}else{if(this.use_css){document.all[this.divName].style.left=this.x;document.all[this.divName].style.top=this.y;document.all[this.divName].style.visibility="visible"}else{if(this.use_layers){document.layers[this.divName].left=this.x;document.layers[this.divName].top=this.y;document.layers[this.divName].visibility="visible"}}}}else{if(this.popupWindow==null||this.popupWindow.closed){if(this.x<0){this.x=0}if(this.y<0){this.y=0}if(screen&&screen.availHeight){if((this.y+this.height)>screen.availHeight){this.y=screen.availHeight-this.height}}if(screen&&screen.availWidth){if((this.x+this.width)>screen.availWidth){this.x=screen.availWidth-this.width}}var b=window.opera||(document.layers&&!navigator.mimeTypes["*"])||navigator.vendor=="KDE"||(document.childNodes&&!document.all&&!navigator.taintEnabled);this.popupWindow=window.open(b?"":"about:blank","window_"+a,this.windowProperties+",width="+this.width+",height="+this.height+",screenX="+this.x+",left="+this.x+",screenY="+this.y+",top="+this.y+"")}this.refresh()}}function PopupWindow_hidePopup(){if(this.divName!=null){if(this.use_gebi){document.getElementById(this.divName).style.visibility="hidden"}else{if(this.use_css){document.all[this.divName].style.visibility="hidden"}else{if(this.use_layers){document.layers[this.divName].visibility="hidden"}}}}else{if(this.popupWindow&&!this.popupWindow.closed){this.popupWindow.close();this.popupWindow=null}}}function PopupWindow_isClicked(c){if(this.divName!=null){if(this.use_layers){var d=c.pageX;var b=c.pageY;var a=document.layers[this.divName];if((d>a.left)&&(d<a.left+a.clip.width)&&(b>a.top)&&(b<a.top+a.clip.height)){return true}else{return false}}else{if(document.all){var a=window.event.srcElement;while(a.parentElement!=null){if(a.id==this.divName){return true}a=a.parentElement}return false}else{if(this.use_gebi&&c){var a=c.originalTarget;while(a.parentNode!=null){if(a.id==this.divName){return true}a=a.parentNode}return false}}}return false}return false}function PopupWindow_hideIfNotClicked(a){if(this.autoHideEnabled&&!this.isClicked(a)){this.hidePopup()}}function PopupWindow_autoHide(){this.autoHideEnabled=true}function PopupWindow_hidePopupWindows(c){for(var a=0;a<popupWindowObjects.length;a++){if(popupWindowObjects[a]!=null){var b=popupWindowObjects[a];b.hideIfNotClicked(c)}}}function PopupWindow_attachListener(){if(document.layers){document.captureEvents(Event.MOUSEUP)}window.popupWindowOldEventListener=document.onmouseup;if(window.popupWindowOldEventListener!=null){document.onmouseup=new Function("window.popupWindowOldEventListener(); PopupWindow_hidePopupWindows();")}else{document.onmouseup=PopupWindow_hidePopupWindows}}function PopupWindow(){if(!window.popupWindowIndex){window.popupWindowIndex=0}if(!window.popupWindowObjects){window.popupWindowObjects=new Array()}if(!window.listenerAttached){window.listenerAttached=true;PopupWindow_attachListener()}this.index=popupWindowIndex++;popupWindowObjects[this.index]=this;this.divName=null;this.popupWindow=null;this.width=0;this.height=0;this.populated=false;this.visible=false;this.autoHideEnabled=false;this.contents="";this.url="";this.windowProperties="toolbar=no,location=no,status=no,menubar=no,scrollbars=auto,resizable,alwaysRaised,dependent,titlebar=no";if(arguments.length>0){this.type="DIV";this.divName=arguments[0]}else{this.type="WINDOW"}this.use_gebi=false;this.use_css=false;this.use_layers=false;if(document.getElementById){this.use_gebi=true}else{if(document.all){this.use_css=true}else{if(document.layers){this.use_layers=true}else{this.type="WINDOW"}}}this.offsetX=0;this.offsetY=0;this.getXYPosition=PopupWindow_getXYPosition;this.populate=PopupWindow_populate;this.setUrl=PopupWindow_setUrl;this.setWindowProperties=PopupWindow_setWindowProperties;this.refresh=PopupWindow_refresh;this.showPopup=PopupWindow_showPopup;this.hidePopup=PopupWindow_hidePopup;this.setSize=PopupWindow_setSize;this.isClicked=PopupWindow_isClicked;this.autoHide=PopupWindow_autoHide;this.hideIfNotClicked=PopupWindow_hideIfNotClicked}ColorPicker_targetInput=null;function ColorPicker_writeDiv(){document.writeln('<DIV ID="colorPickerDiv" STYLE="position:absolute;visibility:hidden;"> </DIV>')}function ColorPicker_show(a){this.showPopup(a)}function ColorPicker_pickColor(a,b){b.hidePopup();pickColor(a)}function pickColor(a){if(ColorPicker_targetInput==null){alert("Target Input is null, which means you either didn't use the 'select' function or you have no defined your own 'pickColor' function to handle the picked color!");return}ColorPicker_targetInput.value=a}function ColorPicker_select(b,a){if(b.type!="text"&&b.type!="hidden"&&b.type!="textarea"){alert("colorpicker.select: Input object passed is not a valid form input object");window.ColorPicker_targetInput=null;return}window.ColorPicker_targetInput=b;this.show(a)}function ColorPicker_highlightColor(e){var a=(arguments.length>1)?arguments[1]:window.document;var b=a.getElementById("colorPickerSelectedColor");b.style.backgroundColor=e;b=a.getElementById("colorPickerSelectedColorValue");b.innerHTML=e}function ColorPicker(){var g=false;if(arguments.length==0){var e="colorPickerDiv"}else{if(arguments[0]=="window"){var e="";g=true}else{var e=arguments[0]}}if(e!=""){var m=new PopupWindow(e)}else{var m=new PopupWindow();m.setSize(225,250)}m.currentValue="#FFFFFF";m.writeDiv=ColorPicker_writeDiv;m.highlightColor=ColorPicker_highlightColor;m.show=ColorPicker_show;m.select=ColorPicker_select;var a=new Array("#4180B6","#69AEE7","#000000","#000033","#000066","#000099","#0000CC","#0000FF","#330000","#330033","#330066","#330099","#3300CC","#3300FF","#660000","#660033","#660066","#660099","#6600CC","#6600FF","#990000","#990033","#990066","#990099","#9900CC","#9900FF","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#7FFFFF","#7FFFFF","#7FF7F7","#7FEFEF","#7FE7E7","#7FDFDF","#7FD7D7","#7FCFCF","#7FC7C7","#7FBFBF","#7FB7B7","#7FAFAF","#7FA7A7","#7F9F9F","#7F9797","#7F8F8F","#7F8787","#7F7F7F","#7F7777","#7F6F6F","#7F6767","#7F5F5F","#7F5757","#7F4F4F","#7F4747","#7F3F3F","#7F3737","#7F2F2F","#7F2727","#7F1F1F","#7F1717","#7F0F0F","#7F0707","#7F0000","#4180B6","#69AEE7","#003300","#003333","#003366","#003399","#0033CC","#0033FF","#333300","#333333","#333366","#333399","#3333CC","#3333FF","#663300","#663333","#663366","#663399","#6633CC","#6633FF","#993300","#993333","#993366","#993399","#9933CC","#9933FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF7FFF","#FF7FFF","#F77FF7","#EF7FEF","#E77FE7","#DF7FDF","#D77FD7","#CF7FCF","#C77FC7","#BF7FBF","#B77FB7","#AF7FAF","#A77FA7","#9F7F9F","#977F97","#8F7F8F","#877F87","#7F7F7F","#777F77","#6F7F6F","#677F67","#5F7F5F","#577F57","#4F7F4F","#477F47","#3F7F3F","#377F37","#2F7F2F","#277F27","#1F7F1F","#177F17","#0F7F0F","#077F07","#007F00","#4180B6","#69AEE7","#006600","#006633","#006666","#006699","#0066CC","#0066FF","#336600","#336633","#336666","#336699","#3366CC","#3366FF","#666600","#666633","#666666","#666699","#6666CC","#6666FF","#996600","#996633","#996666","#996699","#9966CC","#9966FF","#CC6600","#CC6633","#CC6666","#CC6699","#CC66CC","#CC66FF","#FF6600","#FF6633","#FF6666","#FF6699","#FF66CC","#FF66FF","#FFFF7F","#FFFF7F","#F7F77F","#EFEF7F","#E7E77F","#DFDF7F","#D7D77F","#CFCF7F","#C7C77F","#BFBF7F","#B7B77F","#AFAF7F","#A7A77F","#9F9F7F","#97977F","#8F8F7F","#87877F","#7F7F7F","#77777F","#6F6F7F","#67677F","#5F5F7F","#57577F","#4F4F7F","#47477F","#3F3F7F","#37377F","#2F2F7F","#27277F","#1F1F7F","#17177F","#0F0F7F","#07077F","#00007F","#4180B6","#69AEE7","#009900","#009933","#009966","#009999","#0099CC","#0099FF","#339900","#339933","#339966","#339999","#3399CC","#3399FF","#669900","#669933","#669966","#669999","#6699CC","#6699FF","#999900","#999933","#999966","#999999","#9999CC","#9999FF","#CC9900","#CC9933","#CC9966","#CC9999","#CC99CC","#CC99FF","#FF9900","#FF9933","#FF9966","#FF9999","#FF99CC","#FF99FF","#3FFFFF","#3FFFFF","#3FF7F7","#3FEFEF","#3FE7E7","#3FDFDF","#3FD7D7","#3FCFCF","#3FC7C7","#3FBFBF","#3FB7B7","#3FAFAF","#3FA7A7","#3F9F9F","#3F9797","#3F8F8F","#3F8787","#3F7F7F","#3F7777","#3F6F6F","#3F6767","#3F5F5F","#3F5757","#3F4F4F","#3F4747","#3F3F3F","#3F3737","#3F2F2F","#3F2727","#3F1F1F","#3F1717","#3F0F0F","#3F0707","#3F0000","#4180B6","#69AEE7","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#66CC00","#66CC33","#66CC66","#66CC99","#66CCCC","#66CCFF","#99CC00","#99CC33","#99CC66","#99CC99","#99CCCC","#99CCFF","#CCCC00","#CCCC33","#CCCC66","#CCCC99","#CCCCCC","#CCCCFF","#FFCC00","#FFCC33","#FFCC66","#FFCC99","#FFCCCC","#FFCCFF","#FF3FFF","#FF3FFF","#F73FF7","#EF3FEF","#E73FE7","#DF3FDF","#D73FD7","#CF3FCF","#C73FC7","#BF3FBF","#B73FB7","#AF3FAF","#A73FA7","#9F3F9F","#973F97","#8F3F8F","#873F87","#7F3F7F","#773F77","#6F3F6F","#673F67","#5F3F5F","#573F57","#4F3F4F","#473F47","#3F3F3F","#373F37","#2F3F2F","#273F27","#1F3F1F","#173F17","#0F3F0F","#073F07","#003F00","#4180B6","#69AEE7","#00FF00","#00FF33","#00FF66","#00FF99","#00FFCC","#00FFFF","#33FF00","#33FF33","#33FF66","#33FF99","#33FFCC","#33FFFF","#66FF00","#66FF33","#66FF66","#66FF99","#66FFCC","#66FFFF","#99FF00","#99FF33","#99FF66","#99FF99","#99FFCC","#99FFFF","#CCFF00","#CCFF33","#CCFF66","#CCFF99","#CCFFCC","#CCFFFF","#FFFF00","#FFFF33","#FFFF66","#FFFF99","#FFFFCC","#FFFFFF","#FFFF3F","#FFFF3F","#F7F73F","#EFEF3F","#E7E73F","#DFDF3F","#D7D73F","#CFCF3F","#C7C73F","#BFBF3F","#B7B73F","#AFAF3F","#A7A73F","#9F9F3F","#97973F","#8F8F3F","#87873F","#7F7F3F","#77773F","#6F6F3F","#67673F","#5F5F3F","#57573F","#4F4F3F","#47473F","#3F3F3F","#37373F","#2F2F3F","#27273F","#1F1F3F","#17173F","#0F0F3F","#07073F","#00003F","#4180B6","#69AEE7","#FFFFFF","#FFEEEE","#FFDDDD","#FFCCCC","#FFBBBB","#FFAAAA","#FF9999","#FF8888","#FF7777","#FF6666","#FF5555","#FF4444","#FF3333","#FF2222","#FF1111","#FF0000","#FF0000","#FF0000","#FF0000","#EE0000","#DD0000","#CC0000","#BB0000","#AA0000","#990000","#880000","#770000","#660000","#550000","#440000","#330000","#220000","#110000","#000000","#000000","#000000","#000000","#001111","#002222","#003333","#004444","#005555","#006666","#007777","#008888","#009999","#00AAAA","#00BBBB","#00CCCC","#00DDDD","#00EEEE","#00FFFF","#00FFFF","#00FFFF","#00FFFF","#11FFFF","#22FFFF","#33FFFF","#44FFFF","#55FFFF","#66FFFF","#77FFFF","#88FFFF","#99FFFF","#AAFFFF","#BBFFFF","#CCFFFF","#DDFFFF","#EEFFFF","#FFFFFF","#4180B6","#69AEE7","#FFFFFF","#EEFFEE","#DDFFDD","#CCFFCC","#BBFFBB","#AAFFAA","#99FF99","#88FF88","#77FF77","#66FF66","#55FF55","#44FF44","#33FF33","#22FF22","#11FF11","#00FF00","#00FF00","#00FF00","#00FF00","#00EE00","#00DD00","#00CC00","#00BB00","#00AA00","#009900","#008800","#007700","#006600","#005500","#004400","#003300","#002200","#001100","#000000","#000000","#000000","#000000","#110011","#220022","#330033","#440044","#550055","#660066","#770077","#880088","#990099","#AA00AA","#BB00BB","#CC00CC","#DD00DD","#EE00EE","#FF00FF","#FF00FF","#FF00FF","#FF00FF","#FF11FF","#FF22FF","#FF33FF","#FF44FF","#FF55FF","#FF66FF","#FF77FF","#FF88FF","#FF99FF","#FFAAFF","#FFBBFF","#FFCCFF","#FFDDFF","#FFEEFF","#FFFFFF","#4180B6","#69AEE7","#FFFFFF","#EEEEFF","#DDDDFF","#CCCCFF","#BBBBFF","#AAAAFF","#9999FF","#8888FF","#7777FF","#6666FF","#5555FF","#4444FF","#3333FF","#2222FF","#1111FF","#0000FF","#0000FF","#0000FF","#0000FF","#0000EE","#0000DD","#0000CC","#0000BB","#0000AA","#000099","#000088","#000077","#000066","#000055","#000044","#000033","#000022","#000011","#000000","#000000","#000000","#000000","#111100","#222200","#333300","#444400","#555500","#666600","#777700","#888800","#999900","#AAAA00","#BBBB00","#CCCC00","#DDDD00","#EEEE00","#FFFF00","#FFFF00","#FFFF00","#FFFF00","#FFFF11","#FFFF22","#FFFF33","#FFFF44","#FFFF55","#FFFF66","#FFFF77","#FFFF88","#FFFF99","#FFFFAA","#FFFFBB","#FFFFCC","#FFFFDD","#FFFFEE","#FFFFFF","#4180B6","#69AEE7","#FFFFFF","#FFFFFF","#FBFBFB","#F7F7F7","#F3F3F3","#EFEFEF","#EBEBEB","#E7E7E7","#E3E3E3","#DFDFDF","#DBDBDB","#D7D7D7","#D3D3D3","#CFCFCF","#CBCBCB","#C7C7C7","#C3C3C3","#BFBFBF","#BBBBBB","#B7B7B7","#B3B3B3","#AFAFAF","#ABABAB","#A7A7A7","#A3A3A3","#9F9F9F","#9B9B9B","#979797","#939393","#8F8F8F","#8B8B8B","#878787","#838383","#7F7F7F","#7B7B7B","#777777","#737373","#6F6F6F","#6B6B6B","#676767","#636363","#5F5F5F","#5B5B5B","#575757","#535353","#4F4F4F","#4B4B4B","#474747","#434343","#3F3F3F","#3B3B3B","#373737","#333333","#2F2F2F","#2B2B2B","#272727","#232323","#1F1F1F","#1B1B1B","#171717","#131313","#0F0F0F","#0B0B0B","#070707","#030303","#000000","#000000","#000000","#000000","#000000");var n=a.length;var c=72;var k="";var j=(g)?"window.opener.":"";if(g){k+="<html><head><title>Select Color</title></head>";k+="<body marginwidth=0 marginheight=0 leftmargin=0 topmargin=0><span style='text-align: center;'>"}k+="<table style='border: none;' cellspacing=0 cellpadding=0>";var l=(document.getElementById||document.all)?true:false;for(var h=0;h<n;h++){if((h%c)==0){k+="<tr>"}if(l){var f='onMouseOver="'+j+"ColorPicker_highlightColor('"+a[h]+"',window.document)\""}else{f=""}k+='<td style="background-color: '+a[h]+';"><a href="javascript:void()" onclick="'+j+"ColorPicker_pickColor('"+a[h]+"',"+j+"window.popupWindowObjects["+m.index+']);return false;" '+f+">&nbsp;</a></td>";if(((h+1)>=n)||(((h+1)%c)==0)){k+="</tr>"}}if(document.getElementById){var d=Math.floor(c/2);var b=c=d;k+="<tr><td colspan='"+d+"' style='background-color: #FFF;' ID='colorPickerSelectedColor'>&nbsp;</td><td colspan='"+b+"' style='text-align: center;' id='colorPickerSelectedColorValue'>#FFFFFF</td></tr>"}k+="</table>";if(g){k+="</span></body></html>"}m.populate(k+"\n");m.offsetY=25;m.autoHide();return m};
\ No newline at end of file
--- a/web/wp-includes/js/comment-reply.dev.js	Wed Dec 19 12:35:13 2012 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,48 +0,0 @@
-
-addComment = {
-	moveForm : function(commId, parentId, respondId, postId) {
-		var t = this, div, comm = t.I(commId), respond = t.I(respondId), cancel = t.I('cancel-comment-reply-link'), parent = t.I('comment_parent'), post = t.I('comment_post_ID');
-
-		if ( ! comm || ! respond || ! cancel || ! parent )
-			return;
-
-		t.respondId = respondId;
-		postId = postId || false;
-
-		if ( ! t.I('wp-temp-form-div') ) {
-			div = document.createElement('div');
-			div.id = 'wp-temp-form-div';
-			div.style.display = 'none';
-			respond.parentNode.insertBefore(div, respond);
-		}
-
-		comm.parentNode.insertBefore(respond, comm.nextSibling);
-		if ( post && postId )
-			post.value = postId;
-		parent.value = parentId;
-		cancel.style.display = '';
-
-		cancel.onclick = function() {
-			var t = addComment, temp = t.I('wp-temp-form-div'), respond = t.I(t.respondId);
-
-			if ( ! temp || ! respond )
-				return;
-
-			t.I('comment_parent').value = '0';
-			temp.parentNode.insertBefore(respond, temp);
-			temp.parentNode.removeChild(temp);
-			this.style.display = 'none';
-			this.onclick = null;
-			return false;
-		}
-
-		try { t.I('comment').focus(); }
-		catch(e) {}
-
-		return false;
-	},
-
-	I : function(e) {
-		return document.getElementById(e);
-	}
-}
--- a/web/wp-includes/js/comment-reply.js	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/js/comment-reply.js	Wed Dec 19 17:46:52 2012 -0800
@@ -1,1 +1,48 @@
-addComment={moveForm:function(d,f,i,c){var m=this,a,h=m.I(d),b=m.I(i),l=m.I("cancel-comment-reply-link"),j=m.I("comment_parent"),k=m.I("comment_post_ID");if(!h||!b||!l||!j){return}m.respondId=i;c=c||false;if(!m.I("wp-temp-form-div")){a=document.createElement("div");a.id="wp-temp-form-div";a.style.display="none";b.parentNode.insertBefore(a,b)}h.parentNode.insertBefore(b,h.nextSibling);if(k&&c){k.value=c}j.value=f;l.style.display="";l.onclick=function(){var n=addComment,e=n.I("wp-temp-form-div"),o=n.I(n.respondId);if(!e||!o){return}n.I("comment_parent").value="0";e.parentNode.insertBefore(o,e);e.parentNode.removeChild(e);this.style.display="none";this.onclick=null;return false};try{m.I("comment").focus()}catch(g){}return false},I:function(a){return document.getElementById(a)}};
\ No newline at end of file
+
+addComment = {
+	moveForm : function(commId, parentId, respondId, postId) {
+		var t = this, div, comm = t.I(commId), respond = t.I(respondId), cancel = t.I('cancel-comment-reply-link'), parent = t.I('comment_parent'), post = t.I('comment_post_ID');
+
+		if ( ! comm || ! respond || ! cancel || ! parent )
+			return;
+
+		t.respondId = respondId;
+		postId = postId || false;
+
+		if ( ! t.I('wp-temp-form-div') ) {
+			div = document.createElement('div');
+			div.id = 'wp-temp-form-div';
+			div.style.display = 'none';
+			respond.parentNode.insertBefore(div, respond);
+		}
+
+		comm.parentNode.insertBefore(respond, comm.nextSibling);
+		if ( post && postId )
+			post.value = postId;
+		parent.value = parentId;
+		cancel.style.display = '';
+
+		cancel.onclick = function() {
+			var t = addComment, temp = t.I('wp-temp-form-div'), respond = t.I(t.respondId);
+
+			if ( ! temp || ! respond )
+				return;
+
+			t.I('comment_parent').value = '0';
+			temp.parentNode.insertBefore(respond, temp);
+			temp.parentNode.removeChild(temp);
+			this.style.display = 'none';
+			this.onclick = null;
+			return false;
+		}
+
+		try { t.I('comment').focus(); }
+		catch(e) {}
+
+		return false;
+	},
+
+	I : function(e) {
+		return document.getElementById(e);
+	}
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-includes/js/comment-reply.min.js	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,1 @@
+addComment={moveForm:function(d,f,i,c){var m=this,a,h=m.I(d),b=m.I(i),l=m.I("cancel-comment-reply-link"),j=m.I("comment_parent"),k=m.I("comment_post_ID");if(!h||!b||!l||!j){return}m.respondId=i;c=c||false;if(!m.I("wp-temp-form-div")){a=document.createElement("div");a.id="wp-temp-form-div";a.style.display="none";b.parentNode.insertBefore(a,b)}h.parentNode.insertBefore(b,h.nextSibling);if(k&&c){k.value=c}j.value=f;l.style.display="";l.onclick=function(){var n=addComment,e=n.I("wp-temp-form-div"),o=n.I(n.respondId);if(!e||!o){return}n.I("comment_parent").value="0";e.parentNode.insertBefore(o,e);e.parentNode.removeChild(e);this.style.display="none";this.onclick=null;return false};try{m.I("comment").focus()}catch(g){}return false},I:function(a){return document.getElementById(a)}};
\ No newline at end of file
Binary file web/wp-includes/js/crop/marqueeHoriz.gif has changed
Binary file web/wp-includes/js/crop/marqueeVert.gif has changed
--- a/web/wp-includes/js/customize-base.dev.js	Wed Dec 19 12:35:13 2012 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,586 +0,0 @@
-if ( typeof wp === 'undefined' )
-	var wp = {};
-
-(function( exports, $ ){
-	var api, extend, ctor, inherits,
-		slice = Array.prototype.slice;
-
-	/* =====================================================================
-	 * Micro-inheritance - thank you, backbone.js.
-	 * ===================================================================== */
-
-	extend = function( protoProps, classProps ) {
-		var child = inherits( this, protoProps, classProps );
-		child.extend = this.extend;
-		return child;
-	};
-
-	// Shared empty constructor function to aid in prototype-chain creation.
-	ctor = function() {};
-
-	// Helper function to correctly set up the prototype chain, for subclasses.
-	// Similar to `goog.inherits`, but uses a hash of prototype properties and
-	// class properties to be extended.
-	inherits = function( parent, protoProps, staticProps ) {
-		var child;
-
-		// The constructor function for the new subclass is either defined by you
-		// (the "constructor" property in your `extend` definition), or defaulted
-		// by us to simply call `super()`.
-		if ( protoProps && protoProps.hasOwnProperty( 'constructor' ) ) {
-			child = protoProps.constructor;
-		} else {
-			child = function() {
-				// Storing the result `super()` before returning the value
-				// prevents a bug in Opera where, if the constructor returns
-				// a function, Opera will reject the return value in favor of
-				// the original object. This causes all sorts of trouble.
-				var result = parent.apply( this, arguments );
-				return result;
-			};
-		}
-
-		// Inherit class (static) properties from parent.
-		$.extend( child, parent );
-
-		// Set the prototype chain to inherit from `parent`, without calling
-		// `parent`'s constructor function.
-		ctor.prototype  = parent.prototype;
-		child.prototype = new ctor();
-
-		// Add prototype properties (instance properties) to the subclass,
-		// if supplied.
-		if ( protoProps )
-			$.extend( child.prototype, protoProps );
-
-		// Add static properties to the constructor function, if supplied.
-		if ( staticProps )
-			$.extend( child, staticProps );
-
-		// Correctly set child's `prototype.constructor`.
-		child.prototype.constructor = child;
-
-		// Set a convenience property in case the parent's prototype is needed later.
-		child.__super__ = parent.prototype;
-
-		return child;
-	};
-
-	api = {};
-
-	/* =====================================================================
-	 * Base class.
-	 * ===================================================================== */
-
-	api.Class = function( applicator, argsArray, options ) {
-		var magic, args = arguments;
-
-		if ( applicator && argsArray && api.Class.applicator === applicator ) {
-			args = argsArray;
-			$.extend( this, options || {} );
-		}
-
-		magic = this;
-		if ( this.instance ) {
-			magic = function() {
-				return magic.instance.apply( magic, arguments );
-			};
-
-			$.extend( magic, this );
-		}
-
-		magic.initialize.apply( magic, args );
-		return magic;
-	};
-
-	api.Class.applicator = {};
-
-	api.Class.prototype.initialize = function() {};
-
-	/*
-	 * Checks whether a given instance extended a constructor.
-	 *
-	 * The magic surrounding the instance parameter causes the instanceof
-	 * keyword to return inaccurate results; it defaults to the function's
-	 * prototype instead of the constructor chain. Hence this function.
-	 */
-	api.Class.prototype.extended = function( constructor ) {
-		var proto = this;
-
-		while ( typeof proto.constructor !== 'undefined' ) {
-			if ( proto.constructor === constructor )
-				return true;
-			if ( typeof proto.constructor.__super__ === 'undefined' )
-				return false;
-			proto = proto.constructor.__super__;
-		}
-		return false;
-	};
-
-	api.Class.extend = extend;
-
-	/* =====================================================================
-	 * Events mixin.
-	 * ===================================================================== */
-
-	api.Events = {
-		trigger: function( id ) {
-			if ( this.topics && this.topics[ id ] )
-				this.topics[ id ].fireWith( this, slice.call( arguments, 1 ) );
-			return this;
-		},
-
-		bind: function( id, callback ) {
-			this.topics = this.topics || {};
-			this.topics[ id ] = this.topics[ id ] || $.Callbacks();
-			this.topics[ id ].add.apply( this.topics[ id ], slice.call( arguments, 1 ) );
-			return this;
-		},
-
-		unbind: function( id, callback ) {
-			if ( this.topics && this.topics[ id ] )
-				this.topics[ id ].remove.apply( this.topics[ id ], slice.call( arguments, 1 ) );
-			return this;
-		}
-	};
-
-	/* =====================================================================
-	 * Observable values that support two-way binding.
-	 * ===================================================================== */
-
-	api.Value = api.Class.extend({
-		initialize: function( initial, options ) {
-			this._value = initial; // @todo: potentially change this to a this.set() call.
-			this.callbacks = $.Callbacks();
-
-			$.extend( this, options || {} );
-
-			this.set = $.proxy( this.set, this );
-		},
-
-		/*
-		 * Magic. Returns a function that will become the instance.
-		 * Set to null to prevent the instance from extending a function.
-		 */
-		instance: function() {
-			return arguments.length ? this.set.apply( this, arguments ) : this.get();
-		},
-
-		get: function() {
-			return this._value;
-		},
-
-		set: function( to ) {
-			var from = this._value;
-
-			to = this._setter.apply( this, arguments );
-			to = this.validate( to );
-
-			// Bail if the sanitized value is null or unchanged.
-			if ( null === to || this._value === to )
-				return this;
-
-			this._value = to;
-
-			this.callbacks.fireWith( this, [ to, from ] );
-
-			return this;
-		},
-
-		_setter: function( to ) {
-			return to;
-		},
-
-		setter: function( callback ) {
-			var from = this.get();
-			this._setter = callback;
-			// Temporarily clear value so setter can decide if it's valid.
-			this._value = null;
-			this.set( from );
-			return this;
-		},
-
-		resetSetter: function() {
-			this._setter = this.constructor.prototype._setter;
-			this.set( this.get() );
-			return this;
-		},
-
-		validate: function( value ) {
-			return value;
-		},
-
-		bind: function( callback ) {
-			this.callbacks.add.apply( this.callbacks, arguments );
-			return this;
-		},
-
-		unbind: function( callback ) {
-			this.callbacks.remove.apply( this.callbacks, arguments );
-			return this;
-		},
-
-		link: function() { // values*
-			var set = this.set;
-			$.each( arguments, function() {
-				this.bind( set );
-			});
-			return this;
-		},
-
-		unlink: function() { // values*
-			var set = this.set;
-			$.each( arguments, function() {
-				this.unbind( set );
-			});
-			return this;
-		},
-
-		sync: function() { // values*
-			var that = this;
-			$.each( arguments, function() {
-				that.link( this );
-				this.link( that );
-			});
-			return this;
-		},
-
-		unsync: function() { // values*
-			var that = this;
-			$.each( arguments, function() {
-				that.unlink( this );
-				this.unlink( that );
-			});
-			return this;
-		}
-	});
-
-	/* =====================================================================
-	 * A collection of observable values.
-	 * ===================================================================== */
-
-	api.Values = api.Class.extend({
-		defaultConstructor: api.Value,
-
-		initialize: function( options ) {
-			$.extend( this, options || {} );
-
-			this._value = {};
-			this._deferreds = {};
-		},
-
-		instance: function( id ) {
-			if ( arguments.length === 1 )
-				return this.value( id );
-
-			return this.when.apply( this, arguments );
-		},
-
-		value: function( id ) {
-			return this._value[ id ];
-		},
-
-		has: function( id ) {
-			return typeof this._value[ id ] !== 'undefined';
-		},
-
-		add: function( id, value ) {
-			if ( this.has( id ) )
-				return this.value( id );
-
-			this._value[ id ] = value;
-			value.parent = this;
-			if ( value.extended( api.Value ) )
-				value.bind( this._change );
-
-			this.trigger( 'add', value );
-
-			if ( this._deferreds[ id ] )
-				this._deferreds[ id ].resolve();
-
-			return this._value[ id ];
-		},
-
-		create: function( id ) {
-			return this.add( id, new this.defaultConstructor( api.Class.applicator, slice.call( arguments, 1 ) ) );
-		},
-
-		each: function( callback, context ) {
-			context = typeof context === 'undefined' ? this : context;
-
-			$.each( this._value, function( key, obj ) {
-				callback.call( context, obj, key );
-			});
-		},
-
-		remove: function( id ) {
-			var value;
-
-			if ( this.has( id ) ) {
-				value = this.value( id );
-				this.trigger( 'remove', value );
-				if ( value.extended( api.Value ) )
-					value.unbind( this._change );
-				delete value.parent;
-			}
-
-			delete this._value[ id ];
-			delete this._deferreds[ id ];
-		},
-
-		/**
-		 * Runs a callback once all requested values exist.
-		 *
-		 * when( ids*, [callback] );
-		 *
-		 * For example:
-		 *     when( id1, id2, id3, function( value1, value2, value3 ) {} );
-		 *
-		 * @returns $.Deferred.promise();
-		 */
-		when: function() {
-			var self = this,
-				ids  = slice.call( arguments ),
-				dfd  = $.Deferred();
-
-			// If the last argument is a callback, bind it to .done()
-			if ( $.isFunction( ids[ ids.length - 1 ] ) )
-				dfd.done( ids.pop() );
-
-			$.when.apply( $, $.map( ids, function( id ) {
-				if ( self.has( id ) )
-					return;
-
-				return self._deferreds[ id ] = self._deferreds[ id ] || $.Deferred();
-			})).done( function() {
-				var values = $.map( ids, function( id ) {
-						return self( id );
-					});
-
-				// If a value is missing, we've used at least one expired deferred.
-				// Call Values.when again to generate a new deferred.
-				if ( values.length !== ids.length ) {
-					// ids.push( callback );
-					self.when.apply( self, ids ).done( function() {
-						dfd.resolveWith( self, values );
-					});
-					return;
-				}
-
-				dfd.resolveWith( self, values );
-			});
-
-			return dfd.promise();
-		},
-
-		_change: function() {
-			this.parent.trigger( 'change', this );
-		}
-	});
-
-	$.extend( api.Values.prototype, api.Events );
-
-	/* =====================================================================
-	 * An observable value that syncs with an element.
-	 *
-	 * Handles inputs, selects, and textareas by default.
-	 * ===================================================================== */
-
-	api.ensure = function( element ) {
-		return typeof element == 'string' ? $( element ) : element;
-	};
-
-	api.Element = api.Value.extend({
-		initialize: function( element, options ) {
-			var self = this,
-				synchronizer = api.Element.synchronizer.html,
-				type, update, refresh;
-
-			this.element = api.ensure( element );
-			this.events = '';
-
-			if ( this.element.is('input, select, textarea') ) {
-				this.events += 'change';
-				synchronizer = api.Element.synchronizer.val;
-
-				if ( this.element.is('input') ) {
-					type = this.element.prop('type');
-					if ( api.Element.synchronizer[ type ] )
-						synchronizer = api.Element.synchronizer[ type ];
-					if ( 'text' === type || 'password' === type )
-						this.events += ' keyup';
-				} else if ( this.element.is('textarea') ) {
-					this.events += ' keyup';
-				}
-			}
-
-			api.Value.prototype.initialize.call( this, null, $.extend( options || {}, synchronizer ) );
-			this._value = this.get();
-
-			update  = this.update;
-			refresh = this.refresh;
-
-			this.update = function( to ) {
-				if ( to !== refresh.call( self ) )
-					update.apply( this, arguments );
-			};
-			this.refresh = function() {
-				self.set( refresh.call( self ) );
-			};
-
-			this.bind( this.update );
-			this.element.bind( this.events, this.refresh );
-		},
-
-		find: function( selector ) {
-			return $( selector, this.element );
-		},
-
-		refresh: function() {},
-
-		update: function() {}
-	});
-
-	api.Element.synchronizer = {};
-
-	$.each( [ 'html', 'val' ], function( i, method ) {
-		api.Element.synchronizer[ method ] = {
-			update: function( to ) {
-				this.element[ method ]( to );
-			},
-			refresh: function() {
-				return this.element[ method ]();
-			}
-		};
-	});
-
-	api.Element.synchronizer.checkbox = {
-		update: function( to ) {
-			this.element.prop( 'checked', to );
-		},
-		refresh: function() {
-			return this.element.prop( 'checked' );
-		}
-	};
-
-	api.Element.synchronizer.radio = {
-		update: function( to ) {
-			this.element.filter( function() {
-				return this.value === to;
-			}).prop( 'checked', true );
-		},
-		refresh: function() {
-			return this.element.filter( ':checked' ).val();
-		}
-	};
-
-	/* =====================================================================
-	 * Messenger for postMessage.
-	 * ===================================================================== */
-
-	$.support.postMessage = !! window.postMessage;
-
-	api.Messenger = api.Class.extend({
-		add: function( key, initial, options ) {
-			return this[ key ] = new api.Value( initial, options );
-		},
-
-		/**
-		 * Initialize Messenger.
-		 *
-		 * @param  {object} params        Parameters to configure the messenger.
-		 *         {string} .url          The URL to communicate with.
-		 *         {window} .targetWindow The window instance to communicate with. Default window.parent.
-		 *         {string} .channel      If provided, will send the channel with each message and only accept messages a matching channel.
-		 * @param  {object} options       Extend any instance parameter or method with this object.
-		 */
-		initialize: function( params, options ) {
-			// Target the parent frame by default, but only if a parent frame exists.
-			var defaultTarget = window.parent == window ? null : window.parent;
-
-			$.extend( this, options || {} );
-
-			this.add( 'channel', params.channel );
-			this.add( 'url', params.url || '' );
-			this.add( 'targetWindow', params.targetWindow || defaultTarget );
-			this.add( 'origin', this.url() ).link( this.url ).setter( function( to ) {
-				return to.replace( /([^:]+:\/\/[^\/]+).*/, '$1' );
-			});
-
-			// Since we want jQuery to treat the receive function as unique
-			// to this instance, we give the function a new guid.
-			//
-			// This will prevent every Messenger's receive function from being
-			// unbound when calling $.off( 'message', this.receive );
-			this.receive = $.proxy( this.receive, this );
-			this.receive.guid = $.guid++;
-
-			$( window ).on( 'message', this.receive );
-		},
-
-		destroy: function() {
-			$( window ).off( 'message', this.receive );
-		},
-
-		receive: function( event ) {
-			var message;
-
-			event = event.originalEvent;
-
-			if ( ! this.targetWindow() )
-				return;
-
-			// Check to make sure the origin is valid.
-			if ( this.origin() && event.origin !== this.origin() )
-				return;
-
-			message = JSON.parse( event.data );
-
-			// Check required message properties.
-			if ( ! message || ! message.id || typeof message.data === 'undefined' )
-				return;
-
-			// Check if channel names match.
-			if ( ( message.channel || this.channel() ) && this.channel() !== message.channel )
-				return;
-
-			this.trigger( message.id, message.data );
-		},
-
-		send: function( id, data ) {
-			var message;
-
-			data = typeof data === 'undefined' ? null : data;
-
-			if ( ! this.url() || ! this.targetWindow() )
-				return;
-
-			message = { id: id, data: data };
-			if ( this.channel() )
-				message.channel = this.channel();
-
-			this.targetWindow().postMessage( JSON.stringify( message ), this.origin() );
-		}
-	});
-
-	// Add the Events mixin to api.Messenger.
-	$.extend( api.Messenger.prototype, api.Events );
-
-	/* =====================================================================
-	 * Core customize object.
-	 * ===================================================================== */
-
-	api = $.extend( new api.Values(), api );
-	api.get = function() {
-		var result = {};
-
-		this.each( function( obj, key ) {
-			result[ key ] = obj.get();
-		});
-
-		return result;
-	};
-
-	// Expose the API to the world.
-	exports.customize = api;
-})( wp, jQuery );
--- a/web/wp-includes/js/customize-base.js	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/js/customize-base.js	Wed Dec 19 17:46:52 2012 -0800
@@ -1,1 +1,585 @@
-if(typeof wp==="undefined"){var wp={}}(function(a,d){var b,g,c,f,e=Array.prototype.slice;g=function(h,i){var j=f(this,h,i);j.extend=this.extend;return j};c=function(){};f=function(i,h,j){var k;if(h&&h.hasOwnProperty("constructor")){k=h.constructor}else{k=function(){var l=i.apply(this,arguments);return l}}d.extend(k,i);c.prototype=i.prototype;k.prototype=new c();if(h){d.extend(k.prototype,h)}if(j){d.extend(k,j)}k.prototype.constructor=k;k.__super__=i.prototype;return k};b={};b.Class=function(l,k,i){var j,h=arguments;if(l&&k&&b.Class.applicator===l){h=k;d.extend(this,i||{})}j=this;if(this.instance){j=function(){return j.instance.apply(j,arguments)};d.extend(j,this)}j.initialize.apply(j,h);return j};b.Class.applicator={};b.Class.prototype.initialize=function(){};b.Class.prototype.extended=function(h){var i=this;while(typeof i.constructor!=="undefined"){if(i.constructor===h){return true}if(typeof i.constructor.__super__==="undefined"){return false}i=i.constructor.__super__}return false};b.Class.extend=g;b.Events={trigger:function(h){if(this.topics&&this.topics[h]){this.topics[h].fireWith(this,e.call(arguments,1))}return this},bind:function(i,h){this.topics=this.topics||{};this.topics[i]=this.topics[i]||d.Callbacks();this.topics[i].add.apply(this.topics[i],e.call(arguments,1));return this},unbind:function(i,h){if(this.topics&&this.topics[i]){this.topics[i].remove.apply(this.topics[i],e.call(arguments,1))}return this}};b.Value=b.Class.extend({initialize:function(i,h){this._value=i;this.callbacks=d.Callbacks();d.extend(this,h||{});this.set=d.proxy(this.set,this)},instance:function(){return arguments.length?this.set.apply(this,arguments):this.get()},get:function(){return this._value},set:function(i){var h=this._value;i=this._setter.apply(this,arguments);i=this.validate(i);if(null===i||this._value===i){return this}this._value=i;this.callbacks.fireWith(this,[i,h]);return this},_setter:function(h){return h},setter:function(i){var h=this.get();this._setter=i;this._value=null;this.set(h);return this},resetSetter:function(){this._setter=this.constructor.prototype._setter;this.set(this.get());return this},validate:function(h){return h},bind:function(h){this.callbacks.add.apply(this.callbacks,arguments);return this},unbind:function(h){this.callbacks.remove.apply(this.callbacks,arguments);return this},link:function(){var h=this.set;d.each(arguments,function(){this.bind(h)});return this},unlink:function(){var h=this.set;d.each(arguments,function(){this.unbind(h)});return this},sync:function(){var h=this;d.each(arguments,function(){h.link(this);this.link(h)});return this},unsync:function(){var h=this;d.each(arguments,function(){h.unlink(this);this.unlink(h)});return this}});b.Values=b.Class.extend({defaultConstructor:b.Value,initialize:function(h){d.extend(this,h||{});this._value={};this._deferreds={}},instance:function(h){if(arguments.length===1){return this.value(h)}return this.when.apply(this,arguments)},value:function(h){return this._value[h]},has:function(h){return typeof this._value[h]!=="undefined"},add:function(i,h){if(this.has(i)){return this.value(i)}this._value[i]=h;h.parent=this;if(h.extended(b.Value)){h.bind(this._change)}this.trigger("add",h);if(this._deferreds[i]){this._deferreds[i].resolve()}return this._value[i]},create:function(h){return this.add(h,new this.defaultConstructor(b.Class.applicator,e.call(arguments,1)))},each:function(i,h){h=typeof h==="undefined"?this:h;d.each(this._value,function(j,k){i.call(h,k,j)})},remove:function(i){var h;if(this.has(i)){h=this.value(i);this.trigger("remove",h);if(h.extended(b.Value)){h.unbind(this._change)}delete h.parent}delete this._value[i];delete this._deferreds[i]},when:function(){var i=this,j=e.call(arguments),h=d.Deferred();if(d.isFunction(j[j.length-1])){h.done(j.pop())}d.when.apply(d,d.map(j,function(k){if(i.has(k)){return}return i._deferreds[k]=i._deferreds[k]||d.Deferred()})).done(function(){var k=d.map(j,function(l){return i(l)});if(k.length!==j.length){i.when.apply(i,j).done(function(){h.resolveWith(i,k)});return}h.resolveWith(i,k)});return h.promise()},_change:function(){this.parent.trigger("change",this)}});d.extend(b.Values.prototype,b.Events);b.ensure=function(h){return typeof h=="string"?d(h):h};b.Element=b.Value.extend({initialize:function(j,i){var h=this,m=b.Element.synchronizer.html,l,n,k;this.element=b.ensure(j);this.events="";if(this.element.is("input, select, textarea")){this.events+="change";m=b.Element.synchronizer.val;if(this.element.is("input")){l=this.element.prop("type");if(b.Element.synchronizer[l]){m=b.Element.synchronizer[l]}if("text"===l||"password"===l){this.events+=" keyup"}}else{if(this.element.is("textarea")){this.events+=" keyup"}}}b.Value.prototype.initialize.call(this,null,d.extend(i||{},m));this._value=this.get();n=this.update;k=this.refresh;this.update=function(o){if(o!==k.call(h)){n.apply(this,arguments)}};this.refresh=function(){h.set(k.call(h))};this.bind(this.update);this.element.bind(this.events,this.refresh)},find:function(h){return d(h,this.element)},refresh:function(){},update:function(){}});b.Element.synchronizer={};d.each(["html","val"],function(h,j){b.Element.synchronizer[j]={update:function(i){this.element[j](i)},refresh:function(){return this.element[j]()}}});b.Element.synchronizer.checkbox={update:function(h){this.element.prop("checked",h)},refresh:function(){return this.element.prop("checked")}};b.Element.synchronizer.radio={update:function(h){this.element.filter(function(){return this.value===h}).prop("checked",true)},refresh:function(){return this.element.filter(":checked").val()}};d.support.postMessage=!!window.postMessage;b.Messenger=b.Class.extend({add:function(j,i,h){return this[j]=new b.Value(i,h)},initialize:function(j,h){var i=window.parent==window?null:window.parent;d.extend(this,h||{});this.add("channel",j.channel);this.add("url",j.url||"");this.add("targetWindow",j.targetWindow||i);this.add("origin",this.url()).link(this.url).setter(function(k){return k.replace(/([^:]+:\/\/[^\/]+).*/,"$1")});this.receive=d.proxy(this.receive,this);this.receive.guid=d.guid++;d(window).on("message",this.receive)},destroy:function(){d(window).off("message",this.receive)},receive:function(i){var h;i=i.originalEvent;if(!this.targetWindow()){return}if(this.origin()&&i.origin!==this.origin()){return}h=JSON.parse(i.data);if(!h||!h.id||typeof h.data==="undefined"){return}if((h.channel||this.channel())&&this.channel()!==h.channel){return}this.trigger(h.id,h.data)},send:function(j,i){var h;i=typeof i==="undefined"?null:i;if(!this.url()||!this.targetWindow()){return}h={id:j,data:i};if(this.channel()){h.channel=this.channel()}this.targetWindow().postMessage(JSON.stringify(h),this.origin())}});d.extend(b.Messenger.prototype,b.Events);b=d.extend(new b.Values(),b);b.get=function(){var h={};this.each(function(j,i){h[i]=j.get()});return h};a.customize=b})(wp,jQuery);
\ No newline at end of file
+window.wp = window.wp || {};
+
+(function( exports, $ ){
+	var api, extend, ctor, inherits,
+		slice = Array.prototype.slice;
+
+	/* =====================================================================
+	 * Micro-inheritance - thank you, backbone.js.
+	 * ===================================================================== */
+
+	extend = function( protoProps, classProps ) {
+		var child = inherits( this, protoProps, classProps );
+		child.extend = this.extend;
+		return child;
+	};
+
+	// Shared empty constructor function to aid in prototype-chain creation.
+	ctor = function() {};
+
+	// Helper function to correctly set up the prototype chain, for subclasses.
+	// Similar to `goog.inherits`, but uses a hash of prototype properties and
+	// class properties to be extended.
+	inherits = function( parent, protoProps, staticProps ) {
+		var child;
+
+		// The constructor function for the new subclass is either defined by you
+		// (the "constructor" property in your `extend` definition), or defaulted
+		// by us to simply call `super()`.
+		if ( protoProps && protoProps.hasOwnProperty( 'constructor' ) ) {
+			child = protoProps.constructor;
+		} else {
+			child = function() {
+				// Storing the result `super()` before returning the value
+				// prevents a bug in Opera where, if the constructor returns
+				// a function, Opera will reject the return value in favor of
+				// the original object. This causes all sorts of trouble.
+				var result = parent.apply( this, arguments );
+				return result;
+			};
+		}
+
+		// Inherit class (static) properties from parent.
+		$.extend( child, parent );
+
+		// Set the prototype chain to inherit from `parent`, without calling
+		// `parent`'s constructor function.
+		ctor.prototype  = parent.prototype;
+		child.prototype = new ctor();
+
+		// Add prototype properties (instance properties) to the subclass,
+		// if supplied.
+		if ( protoProps )
+			$.extend( child.prototype, protoProps );
+
+		// Add static properties to the constructor function, if supplied.
+		if ( staticProps )
+			$.extend( child, staticProps );
+
+		// Correctly set child's `prototype.constructor`.
+		child.prototype.constructor = child;
+
+		// Set a convenience property in case the parent's prototype is needed later.
+		child.__super__ = parent.prototype;
+
+		return child;
+	};
+
+	api = {};
+
+	/* =====================================================================
+	 * Base class.
+	 * ===================================================================== */
+
+	api.Class = function( applicator, argsArray, options ) {
+		var magic, args = arguments;
+
+		if ( applicator && argsArray && api.Class.applicator === applicator ) {
+			args = argsArray;
+			$.extend( this, options || {} );
+		}
+
+		magic = this;
+		if ( this.instance ) {
+			magic = function() {
+				return magic.instance.apply( magic, arguments );
+			};
+
+			$.extend( magic, this );
+		}
+
+		magic.initialize.apply( magic, args );
+		return magic;
+	};
+
+	api.Class.applicator = {};
+
+	api.Class.prototype.initialize = function() {};
+
+	/*
+	 * Checks whether a given instance extended a constructor.
+	 *
+	 * The magic surrounding the instance parameter causes the instanceof
+	 * keyword to return inaccurate results; it defaults to the function's
+	 * prototype instead of the constructor chain. Hence this function.
+	 */
+	api.Class.prototype.extended = function( constructor ) {
+		var proto = this;
+
+		while ( typeof proto.constructor !== 'undefined' ) {
+			if ( proto.constructor === constructor )
+				return true;
+			if ( typeof proto.constructor.__super__ === 'undefined' )
+				return false;
+			proto = proto.constructor.__super__;
+		}
+		return false;
+	};
+
+	api.Class.extend = extend;
+
+	/* =====================================================================
+	 * Events mixin.
+	 * ===================================================================== */
+
+	api.Events = {
+		trigger: function( id ) {
+			if ( this.topics && this.topics[ id ] )
+				this.topics[ id ].fireWith( this, slice.call( arguments, 1 ) );
+			return this;
+		},
+
+		bind: function( id, callback ) {
+			this.topics = this.topics || {};
+			this.topics[ id ] = this.topics[ id ] || $.Callbacks();
+			this.topics[ id ].add.apply( this.topics[ id ], slice.call( arguments, 1 ) );
+			return this;
+		},
+
+		unbind: function( id, callback ) {
+			if ( this.topics && this.topics[ id ] )
+				this.topics[ id ].remove.apply( this.topics[ id ], slice.call( arguments, 1 ) );
+			return this;
+		}
+	};
+
+	/* =====================================================================
+	 * Observable values that support two-way binding.
+	 * ===================================================================== */
+
+	api.Value = api.Class.extend({
+		initialize: function( initial, options ) {
+			this._value = initial; // @todo: potentially change this to a this.set() call.
+			this.callbacks = $.Callbacks();
+
+			$.extend( this, options || {} );
+
+			this.set = $.proxy( this.set, this );
+		},
+
+		/*
+		 * Magic. Returns a function that will become the instance.
+		 * Set to null to prevent the instance from extending a function.
+		 */
+		instance: function() {
+			return arguments.length ? this.set.apply( this, arguments ) : this.get();
+		},
+
+		get: function() {
+			return this._value;
+		},
+
+		set: function( to ) {
+			var from = this._value;
+
+			to = this._setter.apply( this, arguments );
+			to = this.validate( to );
+
+			// Bail if the sanitized value is null or unchanged.
+			if ( null === to || this._value === to )
+				return this;
+
+			this._value = to;
+
+			this.callbacks.fireWith( this, [ to, from ] );
+
+			return this;
+		},
+
+		_setter: function( to ) {
+			return to;
+		},
+
+		setter: function( callback ) {
+			var from = this.get();
+			this._setter = callback;
+			// Temporarily clear value so setter can decide if it's valid.
+			this._value = null;
+			this.set( from );
+			return this;
+		},
+
+		resetSetter: function() {
+			this._setter = this.constructor.prototype._setter;
+			this.set( this.get() );
+			return this;
+		},
+
+		validate: function( value ) {
+			return value;
+		},
+
+		bind: function( callback ) {
+			this.callbacks.add.apply( this.callbacks, arguments );
+			return this;
+		},
+
+		unbind: function( callback ) {
+			this.callbacks.remove.apply( this.callbacks, arguments );
+			return this;
+		},
+
+		link: function() { // values*
+			var set = this.set;
+			$.each( arguments, function() {
+				this.bind( set );
+			});
+			return this;
+		},
+
+		unlink: function() { // values*
+			var set = this.set;
+			$.each( arguments, function() {
+				this.unbind( set );
+			});
+			return this;
+		},
+
+		sync: function() { // values*
+			var that = this;
+			$.each( arguments, function() {
+				that.link( this );
+				this.link( that );
+			});
+			return this;
+		},
+
+		unsync: function() { // values*
+			var that = this;
+			$.each( arguments, function() {
+				that.unlink( this );
+				this.unlink( that );
+			});
+			return this;
+		}
+	});
+
+	/* =====================================================================
+	 * A collection of observable values.
+	 * ===================================================================== */
+
+	api.Values = api.Class.extend({
+		defaultConstructor: api.Value,
+
+		initialize: function( options ) {
+			$.extend( this, options || {} );
+
+			this._value = {};
+			this._deferreds = {};
+		},
+
+		instance: function( id ) {
+			if ( arguments.length === 1 )
+				return this.value( id );
+
+			return this.when.apply( this, arguments );
+		},
+
+		value: function( id ) {
+			return this._value[ id ];
+		},
+
+		has: function( id ) {
+			return typeof this._value[ id ] !== 'undefined';
+		},
+
+		add: function( id, value ) {
+			if ( this.has( id ) )
+				return this.value( id );
+
+			this._value[ id ] = value;
+			value.parent = this;
+			if ( value.extended( api.Value ) )
+				value.bind( this._change );
+
+			this.trigger( 'add', value );
+
+			if ( this._deferreds[ id ] )
+				this._deferreds[ id ].resolve();
+
+			return this._value[ id ];
+		},
+
+		create: function( id ) {
+			return this.add( id, new this.defaultConstructor( api.Class.applicator, slice.call( arguments, 1 ) ) );
+		},
+
+		each: function( callback, context ) {
+			context = typeof context === 'undefined' ? this : context;
+
+			$.each( this._value, function( key, obj ) {
+				callback.call( context, obj, key );
+			});
+		},
+
+		remove: function( id ) {
+			var value;
+
+			if ( this.has( id ) ) {
+				value = this.value( id );
+				this.trigger( 'remove', value );
+				if ( value.extended( api.Value ) )
+					value.unbind( this._change );
+				delete value.parent;
+			}
+
+			delete this._value[ id ];
+			delete this._deferreds[ id ];
+		},
+
+		/**
+		 * Runs a callback once all requested values exist.
+		 *
+		 * when( ids*, [callback] );
+		 *
+		 * For example:
+		 *     when( id1, id2, id3, function( value1, value2, value3 ) {} );
+		 *
+		 * @returns $.Deferred.promise();
+		 */
+		when: function() {
+			var self = this,
+				ids  = slice.call( arguments ),
+				dfd  = $.Deferred();
+
+			// If the last argument is a callback, bind it to .done()
+			if ( $.isFunction( ids[ ids.length - 1 ] ) )
+				dfd.done( ids.pop() );
+
+			$.when.apply( $, $.map( ids, function( id ) {
+				if ( self.has( id ) )
+					return;
+
+				return self._deferreds[ id ] = self._deferreds[ id ] || $.Deferred();
+			})).done( function() {
+				var values = $.map( ids, function( id ) {
+						return self( id );
+					});
+
+				// If a value is missing, we've used at least one expired deferred.
+				// Call Values.when again to generate a new deferred.
+				if ( values.length !== ids.length ) {
+					// ids.push( callback );
+					self.when.apply( self, ids ).done( function() {
+						dfd.resolveWith( self, values );
+					});
+					return;
+				}
+
+				dfd.resolveWith( self, values );
+			});
+
+			return dfd.promise();
+		},
+
+		_change: function() {
+			this.parent.trigger( 'change', this );
+		}
+	});
+
+	$.extend( api.Values.prototype, api.Events );
+
+	/* =====================================================================
+	 * An observable value that syncs with an element.
+	 *
+	 * Handles inputs, selects, and textareas by default.
+	 * ===================================================================== */
+
+	api.ensure = function( element ) {
+		return typeof element == 'string' ? $( element ) : element;
+	};
+
+	api.Element = api.Value.extend({
+		initialize: function( element, options ) {
+			var self = this,
+				synchronizer = api.Element.synchronizer.html,
+				type, update, refresh;
+
+			this.element = api.ensure( element );
+			this.events = '';
+
+			if ( this.element.is('input, select, textarea') ) {
+				this.events += 'change';
+				synchronizer = api.Element.synchronizer.val;
+
+				if ( this.element.is('input') ) {
+					type = this.element.prop('type');
+					if ( api.Element.synchronizer[ type ] )
+						synchronizer = api.Element.synchronizer[ type ];
+					if ( 'text' === type || 'password' === type )
+						this.events += ' keyup';
+				} else if ( this.element.is('textarea') ) {
+					this.events += ' keyup';
+				}
+			}
+
+			api.Value.prototype.initialize.call( this, null, $.extend( options || {}, synchronizer ) );
+			this._value = this.get();
+
+			update  = this.update;
+			refresh = this.refresh;
+
+			this.update = function( to ) {
+				if ( to !== refresh.call( self ) )
+					update.apply( this, arguments );
+			};
+			this.refresh = function() {
+				self.set( refresh.call( self ) );
+			};
+
+			this.bind( this.update );
+			this.element.bind( this.events, this.refresh );
+		},
+
+		find: function( selector ) {
+			return $( selector, this.element );
+		},
+
+		refresh: function() {},
+
+		update: function() {}
+	});
+
+	api.Element.synchronizer = {};
+
+	$.each( [ 'html', 'val' ], function( i, method ) {
+		api.Element.synchronizer[ method ] = {
+			update: function( to ) {
+				this.element[ method ]( to );
+			},
+			refresh: function() {
+				return this.element[ method ]();
+			}
+		};
+	});
+
+	api.Element.synchronizer.checkbox = {
+		update: function( to ) {
+			this.element.prop( 'checked', to );
+		},
+		refresh: function() {
+			return this.element.prop( 'checked' );
+		}
+	};
+
+	api.Element.synchronizer.radio = {
+		update: function( to ) {
+			this.element.filter( function() {
+				return this.value === to;
+			}).prop( 'checked', true );
+		},
+		refresh: function() {
+			return this.element.filter( ':checked' ).val();
+		}
+	};
+
+	/* =====================================================================
+	 * Messenger for postMessage.
+	 * ===================================================================== */
+
+	$.support.postMessage = !! window.postMessage;
+
+	api.Messenger = api.Class.extend({
+		add: function( key, initial, options ) {
+			return this[ key ] = new api.Value( initial, options );
+		},
+
+		/**
+		 * Initialize Messenger.
+		 *
+		 * @param  {object} params        Parameters to configure the messenger.
+		 *         {string} .url          The URL to communicate with.
+		 *         {window} .targetWindow The window instance to communicate with. Default window.parent.
+		 *         {string} .channel      If provided, will send the channel with each message and only accept messages a matching channel.
+		 * @param  {object} options       Extend any instance parameter or method with this object.
+		 */
+		initialize: function( params, options ) {
+			// Target the parent frame by default, but only if a parent frame exists.
+			var defaultTarget = window.parent == window ? null : window.parent;
+
+			$.extend( this, options || {} );
+
+			this.add( 'channel', params.channel );
+			this.add( 'url', params.url || '' );
+			this.add( 'targetWindow', params.targetWindow || defaultTarget );
+			this.add( 'origin', this.url() ).link( this.url ).setter( function( to ) {
+				return to.replace( /([^:]+:\/\/[^\/]+).*/, '$1' );
+			});
+
+			// Since we want jQuery to treat the receive function as unique
+			// to this instance, we give the function a new guid.
+			//
+			// This will prevent every Messenger's receive function from being
+			// unbound when calling $.off( 'message', this.receive );
+			this.receive = $.proxy( this.receive, this );
+			this.receive.guid = $.guid++;
+
+			$( window ).on( 'message', this.receive );
+		},
+
+		destroy: function() {
+			$( window ).off( 'message', this.receive );
+		},
+
+		receive: function( event ) {
+			var message;
+
+			event = event.originalEvent;
+
+			if ( ! this.targetWindow() )
+				return;
+
+			// Check to make sure the origin is valid.
+			if ( this.origin() && event.origin !== this.origin() )
+				return;
+
+			message = JSON.parse( event.data );
+
+			// Check required message properties.
+			if ( ! message || ! message.id || typeof message.data === 'undefined' )
+				return;
+
+			// Check if channel names match.
+			if ( ( message.channel || this.channel() ) && this.channel() !== message.channel )
+				return;
+
+			this.trigger( message.id, message.data );
+		},
+
+		send: function( id, data ) {
+			var message;
+
+			data = typeof data === 'undefined' ? null : data;
+
+			if ( ! this.url() || ! this.targetWindow() )
+				return;
+
+			message = { id: id, data: data };
+			if ( this.channel() )
+				message.channel = this.channel();
+
+			this.targetWindow().postMessage( JSON.stringify( message ), this.origin() );
+		}
+	});
+
+	// Add the Events mixin to api.Messenger.
+	$.extend( api.Messenger.prototype, api.Events );
+
+	/* =====================================================================
+	 * Core customize object.
+	 * ===================================================================== */
+
+	api = $.extend( new api.Values(), api );
+	api.get = function() {
+		var result = {};
+
+		this.each( function( obj, key ) {
+			result[ key ] = obj.get();
+		});
+
+		return result;
+	};
+
+	// Expose the API to the world.
+	exports.customize = api;
+})( wp, jQuery );
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-includes/js/customize-base.min.js	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,1 @@
+window.wp=window.wp||{};(function(a,d){var b,g,c,f,e=Array.prototype.slice;g=function(h,i){var j=f(this,h,i);j.extend=this.extend;return j};c=function(){};f=function(i,h,j){var k;if(h&&h.hasOwnProperty("constructor")){k=h.constructor}else{k=function(){var l=i.apply(this,arguments);return l}}d.extend(k,i);c.prototype=i.prototype;k.prototype=new c();if(h){d.extend(k.prototype,h)}if(j){d.extend(k,j)}k.prototype.constructor=k;k.__super__=i.prototype;return k};b={};b.Class=function(l,k,i){var j,h=arguments;if(l&&k&&b.Class.applicator===l){h=k;d.extend(this,i||{})}j=this;if(this.instance){j=function(){return j.instance.apply(j,arguments)};d.extend(j,this)}j.initialize.apply(j,h);return j};b.Class.applicator={};b.Class.prototype.initialize=function(){};b.Class.prototype.extended=function(h){var i=this;while(typeof i.constructor!=="undefined"){if(i.constructor===h){return true}if(typeof i.constructor.__super__==="undefined"){return false}i=i.constructor.__super__}return false};b.Class.extend=g;b.Events={trigger:function(h){if(this.topics&&this.topics[h]){this.topics[h].fireWith(this,e.call(arguments,1))}return this},bind:function(i,h){this.topics=this.topics||{};this.topics[i]=this.topics[i]||d.Callbacks();this.topics[i].add.apply(this.topics[i],e.call(arguments,1));return this},unbind:function(i,h){if(this.topics&&this.topics[i]){this.topics[i].remove.apply(this.topics[i],e.call(arguments,1))}return this}};b.Value=b.Class.extend({initialize:function(i,h){this._value=i;this.callbacks=d.Callbacks();d.extend(this,h||{});this.set=d.proxy(this.set,this)},instance:function(){return arguments.length?this.set.apply(this,arguments):this.get()},get:function(){return this._value},set:function(i){var h=this._value;i=this._setter.apply(this,arguments);i=this.validate(i);if(null===i||this._value===i){return this}this._value=i;this.callbacks.fireWith(this,[i,h]);return this},_setter:function(h){return h},setter:function(i){var h=this.get();this._setter=i;this._value=null;this.set(h);return this},resetSetter:function(){this._setter=this.constructor.prototype._setter;this.set(this.get());return this},validate:function(h){return h},bind:function(h){this.callbacks.add.apply(this.callbacks,arguments);return this},unbind:function(h){this.callbacks.remove.apply(this.callbacks,arguments);return this},link:function(){var h=this.set;d.each(arguments,function(){this.bind(h)});return this},unlink:function(){var h=this.set;d.each(arguments,function(){this.unbind(h)});return this},sync:function(){var h=this;d.each(arguments,function(){h.link(this);this.link(h)});return this},unsync:function(){var h=this;d.each(arguments,function(){h.unlink(this);this.unlink(h)});return this}});b.Values=b.Class.extend({defaultConstructor:b.Value,initialize:function(h){d.extend(this,h||{});this._value={};this._deferreds={}},instance:function(h){if(arguments.length===1){return this.value(h)}return this.when.apply(this,arguments)},value:function(h){return this._value[h]},has:function(h){return typeof this._value[h]!=="undefined"},add:function(i,h){if(this.has(i)){return this.value(i)}this._value[i]=h;h.parent=this;if(h.extended(b.Value)){h.bind(this._change)}this.trigger("add",h);if(this._deferreds[i]){this._deferreds[i].resolve()}return this._value[i]},create:function(h){return this.add(h,new this.defaultConstructor(b.Class.applicator,e.call(arguments,1)))},each:function(i,h){h=typeof h==="undefined"?this:h;d.each(this._value,function(j,k){i.call(h,k,j)})},remove:function(i){var h;if(this.has(i)){h=this.value(i);this.trigger("remove",h);if(h.extended(b.Value)){h.unbind(this._change)}delete h.parent}delete this._value[i];delete this._deferreds[i]},when:function(){var i=this,j=e.call(arguments),h=d.Deferred();if(d.isFunction(j[j.length-1])){h.done(j.pop())}d.when.apply(d,d.map(j,function(k){if(i.has(k)){return}return i._deferreds[k]=i._deferreds[k]||d.Deferred()})).done(function(){var k=d.map(j,function(l){return i(l)});if(k.length!==j.length){i.when.apply(i,j).done(function(){h.resolveWith(i,k)});return}h.resolveWith(i,k)});return h.promise()},_change:function(){this.parent.trigger("change",this)}});d.extend(b.Values.prototype,b.Events);b.ensure=function(h){return typeof h=="string"?d(h):h};b.Element=b.Value.extend({initialize:function(j,i){var h=this,m=b.Element.synchronizer.html,l,n,k;this.element=b.ensure(j);this.events="";if(this.element.is("input, select, textarea")){this.events+="change";m=b.Element.synchronizer.val;if(this.element.is("input")){l=this.element.prop("type");if(b.Element.synchronizer[l]){m=b.Element.synchronizer[l]}if("text"===l||"password"===l){this.events+=" keyup"}}else{if(this.element.is("textarea")){this.events+=" keyup"}}}b.Value.prototype.initialize.call(this,null,d.extend(i||{},m));this._value=this.get();n=this.update;k=this.refresh;this.update=function(o){if(o!==k.call(h)){n.apply(this,arguments)}};this.refresh=function(){h.set(k.call(h))};this.bind(this.update);this.element.bind(this.events,this.refresh)},find:function(h){return d(h,this.element)},refresh:function(){},update:function(){}});b.Element.synchronizer={};d.each(["html","val"],function(h,j){b.Element.synchronizer[j]={update:function(i){this.element[j](i)},refresh:function(){return this.element[j]()}}});b.Element.synchronizer.checkbox={update:function(h){this.element.prop("checked",h)},refresh:function(){return this.element.prop("checked")}};b.Element.synchronizer.radio={update:function(h){this.element.filter(function(){return this.value===h}).prop("checked",true)},refresh:function(){return this.element.filter(":checked").val()}};d.support.postMessage=!!window.postMessage;b.Messenger=b.Class.extend({add:function(j,i,h){return this[j]=new b.Value(i,h)},initialize:function(j,h){var i=window.parent==window?null:window.parent;d.extend(this,h||{});this.add("channel",j.channel);this.add("url",j.url||"");this.add("targetWindow",j.targetWindow||i);this.add("origin",this.url()).link(this.url).setter(function(k){return k.replace(/([^:]+:\/\/[^\/]+).*/,"$1")});this.receive=d.proxy(this.receive,this);this.receive.guid=d.guid++;d(window).on("message",this.receive)},destroy:function(){d(window).off("message",this.receive)},receive:function(i){var h;i=i.originalEvent;if(!this.targetWindow()){return}if(this.origin()&&i.origin!==this.origin()){return}h=JSON.parse(i.data);if(!h||!h.id||typeof h.data==="undefined"){return}if((h.channel||this.channel())&&this.channel()!==h.channel){return}this.trigger(h.id,h.data)},send:function(j,i){var h;i=typeof i==="undefined"?null:i;if(!this.url()||!this.targetWindow()){return}h={id:j,data:i};if(this.channel()){h.channel=this.channel()}this.targetWindow().postMessage(JSON.stringify(h),this.origin())}});d.extend(b.Messenger.prototype,b.Events);b=d.extend(new b.Values(),b);b.get=function(){var h={};this.each(function(j,i){h[i]=j.get()});return h};a.customize=b})(wp,jQuery);
\ No newline at end of file
--- a/web/wp-includes/js/customize-loader.dev.js	Wed Dec 19 12:35:13 2012 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,159 +0,0 @@
-if ( typeof wp === 'undefined' )
-	var wp = {};
-
-(function( exports, $ ){
-	var api = wp.customize,
-		Loader;
-
-	$.extend( $.support, {
-		history: !! ( window.history && history.pushState ),
-		hashchange: ('onhashchange' in window) && (document.documentMode === undefined || document.documentMode > 7)
-	});
-
-	Loader = $.extend( {}, api.Events, {
-		initialize: function() {
-			this.body = $( document.body );
-
-			// Ensure the loader is supported.
-			// Check for settings, postMessage support, and whether we require CORS support.
-			if ( ! Loader.settings || ! $.support.postMessage || ( ! $.support.cors && Loader.settings.isCrossDomain ) ) {
-				return;
-			}
-
-			this.window  = $( window );
-			this.element = $( '<div id="customize-container" />' ).appendTo( this.body );
-
-			this.bind( 'open', this.overlay.show );
-			this.bind( 'close', this.overlay.hide );
-
-			$('#wpbody').on( 'click', '.load-customize', function( event ) {
-				event.preventDefault();
-
-				// Load the theme.
-				Loader.open( $(this).attr('href') );
-			});
-
-			// Add navigation listeners.
-			if ( $.support.history )
-				this.window.on( 'popstate', Loader.popstate );
-
-			if ( $.support.hashchange ) {
-				this.window.on( 'hashchange', Loader.hashchange );
-				this.window.triggerHandler( 'hashchange' );
-			}
-		},
-
-		popstate: function( e ) {
-			var state = e.originalEvent.state;
-			if ( state && state.customize )
-				Loader.open( state.customize );
-			else if ( Loader.active )
-				Loader.close();
-		},
-
-		hashchange: function( e ) {
-			var hash = window.location.toString().split('#')[1];
-
-			if ( hash && 0 === hash.indexOf( 'wp_customize=on' ) )
-				Loader.open( Loader.settings.url + '?' + hash );
-
-			if ( ! hash && ! $.support.history )
-				Loader.close();
-		},
-
-		open: function( src ) {
-			var hash;
-
-			if ( this.active )
-				return;
-
-			// Load the full page on mobile devices.
-			if ( Loader.settings.browser.mobile )
-				return window.location = src;
-
-			this.active = true;
-			this.body.addClass('customize-loading');
-
-			this.iframe = $( '<iframe />', { src: src }).appendTo( this.element );
-			this.iframe.one( 'load', this.loaded );
-
-			// Create a postMessage connection with the iframe.
-			this.messenger = new api.Messenger({
-				url: src,
-				channel: 'loader',
-				targetWindow: this.iframe[0].contentWindow
-			});
-
-			// Wait for the connection from the iframe before sending any postMessage events.
-			this.messenger.bind( 'ready', function() {
-				Loader.messenger.send( 'back' );
-			});
-
-			this.messenger.bind( 'close', function() {
-				if ( $.support.history )
-					history.back();
-				else if ( $.support.hashchange )
-					window.location.hash = '';
-				else
-					Loader.close();
-			});
-
-			this.messenger.bind( 'activated', function( location ) {
-				if ( location )
-					window.location = location;
-			});
-
-			hash = src.split('?')[1];
-
-			// Ensure we don't call pushState if the user hit the forward button.
-			if ( $.support.history && window.location.href !== src )
-				history.pushState( { customize: src }, '', src );
-			else if ( ! $.support.history && $.support.hashchange && hash )
-				window.location.hash = 'wp_customize=on&' + hash;
-
-			this.trigger( 'open' );
-		},
-
-		opened: function() {
-			Loader.body.addClass( 'customize-active full-overlay-active' );
-		},
-
-		close: function() {
-			if ( ! this.active )
-				return;
-			this.active = false;
-
-			this.trigger( 'close' );
-		},
-
-		closed: function() {
-			Loader.iframe.remove();
-			Loader.messenger.destroy();
-			Loader.iframe    = null;
-			Loader.messenger = null;
-			Loader.body.removeClass( 'customize-active full-overlay-active' ).removeClass( 'customize-loading' );
-		},
-
-		loaded: function() {
-			Loader.body.removeClass('customize-loading');
-		},
-
-		overlay: {
-			show: function() {
-				this.element.fadeIn( 200, Loader.opened );
-			},
-
-			hide: function() {
-				this.element.fadeOut( 200, Loader.closed );
-			}
-		}
-	});
-
-	$( function() {
-		Loader.settings = _wpCustomizeLoaderSettings;
-		Loader.initialize();
-	});
-
-	// Expose the API to the world.
-	api.Loader = Loader;
-})( wp, jQuery );
--- a/web/wp-includes/js/customize-loader.js	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/js/customize-loader.js	Wed Dec 19 17:46:52 2012 -0800
@@ -1,1 +1,164 @@
-if(typeof wp==="undefined"){var wp={}}(function(a,c){var b=wp.customize,d;c.extend(c.support,{history:!!(window.history&&history.pushState),hashchange:("onhashchange" in window)&&(document.documentMode===undefined||document.documentMode>7)});d=c.extend({},b.Events,{initialize:function(){this.body=c(document.body);if(!d.settings||!c.support.postMessage||(!c.support.cors&&d.settings.isCrossDomain)){return}this.window=c(window);this.element=c('<div id="customize-container" />').appendTo(this.body);this.bind("open",this.overlay.show);this.bind("close",this.overlay.hide);c("#wpbody").on("click",".load-customize",function(e){e.preventDefault();d.open(c(this).attr("href"))});if(c.support.history){this.window.on("popstate",d.popstate)}if(c.support.hashchange){this.window.on("hashchange",d.hashchange);this.window.triggerHandler("hashchange")}},popstate:function(g){var f=g.originalEvent.state;if(f&&f.customize){d.open(f.customize)}else{if(d.active){d.close()}}},hashchange:function(g){var f=window.location.toString().split("#")[1];if(f&&0===f.indexOf("wp_customize=on")){d.open(d.settings.url+"?"+f)}if(!f&&!c.support.history){d.close()}},open:function(f){var e;if(this.active){return}if(d.settings.browser.mobile){return window.location=f}this.active=true;this.body.addClass("customize-loading");this.iframe=c("<iframe />",{src:f}).appendTo(this.element);this.iframe.one("load",this.loaded);this.messenger=new b.Messenger({url:f,channel:"loader",targetWindow:this.iframe[0].contentWindow});this.messenger.bind("ready",function(){d.messenger.send("back")});this.messenger.bind("close",function(){if(c.support.history){history.back()}else{if(c.support.hashchange){window.location.hash=""}else{d.close()}}});this.messenger.bind("activated",function(g){if(g){window.location=g}});e=f.split("?")[1];if(c.support.history&&window.location.href!==f){history.pushState({customize:f},"",f)}else{if(!c.support.history&&c.support.hashchange&&e){window.location.hash="wp_customize=on&"+e}}this.trigger("open")},opened:function(){d.body.addClass("customize-active full-overlay-active")},close:function(){if(!this.active){return}this.active=false;this.trigger("close")},closed:function(){d.iframe.remove();d.messenger.destroy();d.iframe=null;d.messenger=null;d.body.removeClass("customize-active full-overlay-active").removeClass("customize-loading")},loaded:function(){d.body.removeClass("customize-loading")},overlay:{show:function(){this.element.fadeIn(200,d.opened)},hide:function(){this.element.fadeOut(200,d.closed)}}});c(function(){d.settings=_wpCustomizeLoaderSettings;d.initialize()});b.Loader=d})(wp,jQuery);
\ No newline at end of file
+window.wp = window.wp || {};
+
+(function( exports, $ ){
+	var api = wp.customize,
+		Loader;
+
+	$.extend( $.support, {
+		history: !! ( window.history && history.pushState ),
+		hashchange: ('onhashchange' in window) && (document.documentMode === undefined || document.documentMode > 7)
+	});
+
+	Loader = $.extend( {}, api.Events, {
+		initialize: function() {
+			this.body = $( document.body );
+
+			// Ensure the loader is supported.
+			// Check for settings, postMessage support, and whether we require CORS support.
+			if ( ! Loader.settings || ! $.support.postMessage || ( ! $.support.cors && Loader.settings.isCrossDomain ) ) {
+				return;
+			}
+
+			this.window  = $( window );
+			this.element = $( '<div id="customize-container" />' ).appendTo( this.body );
+
+			this.bind( 'open', this.overlay.show );
+			this.bind( 'close', this.overlay.hide );
+
+			$('#wpbody').on( 'click', '.load-customize', function( event ) {
+				event.preventDefault();
+
+				// Store a reference to the link that opened the customizer.
+				Loader.link = $(this);
+				// Load the theme.
+				Loader.open( Loader.link.attr('href') );
+			});
+
+			// Add navigation listeners.
+			if ( $.support.history )
+				this.window.on( 'popstate', Loader.popstate );
+
+			if ( $.support.hashchange ) {
+				this.window.on( 'hashchange', Loader.hashchange );
+				this.window.triggerHandler( 'hashchange' );
+			}
+		},
+
+		popstate: function( e ) {
+			var state = e.originalEvent.state;
+			if ( state && state.customize )
+				Loader.open( state.customize );
+			else if ( Loader.active )
+				Loader.close();
+		},
+
+		hashchange: function( e ) {
+			var hash = window.location.toString().split('#')[1];
+
+			if ( hash && 0 === hash.indexOf( 'wp_customize=on' ) )
+				Loader.open( Loader.settings.url + '?' + hash );
+
+			if ( ! hash && ! $.support.history )
+				Loader.close();
+		},
+
+		open: function( src ) {
+			var hash;
+
+			if ( this.active )
+				return;
+
+			// Load the full page on mobile devices.
+			if ( Loader.settings.browser.mobile )
+				return window.location = src;
+
+			this.active = true;
+			this.body.addClass('customize-loading');
+
+			this.iframe = $( '<iframe />', { src: src }).appendTo( this.element );
+			this.iframe.one( 'load', this.loaded );
+
+			// Create a postMessage connection with the iframe.
+			this.messenger = new api.Messenger({
+				url: src,
+				channel: 'loader',
+				targetWindow: this.iframe[0].contentWindow
+			});
+
+			// Wait for the connection from the iframe before sending any postMessage events.
+			this.messenger.bind( 'ready', function() {
+				Loader.messenger.send( 'back' );
+			});
+
+			this.messenger.bind( 'close', function() {
+				if ( $.support.history )
+					history.back();
+				else if ( $.support.hashchange )
+					window.location.hash = '';
+				else
+					Loader.close();
+			});
+
+			this.messenger.bind( 'activated', function( location ) {
+				if ( location )
+					window.location = location;
+			});
+
+			hash = src.split('?')[1];
+
+			// Ensure we don't call pushState if the user hit the forward button.
+			if ( $.support.history && window.location.href !== src )
+				history.pushState( { customize: src }, '', src );
+			else if ( ! $.support.history && $.support.hashchange && hash )
+				window.location.hash = 'wp_customize=on&' + hash;
+
+			this.trigger( 'open' );
+		},
+
+		opened: function() {
+			Loader.body.addClass( 'customize-active full-overlay-active' );
+		},
+
+		close: function() {
+			if ( ! this.active )
+				return;
+			this.active = false;
+
+			this.trigger( 'close' );
+
+			// Return focus to link that was originally clicked.
+			if ( this.link )
+				this.link.focus();
+		},
+
+		closed: function() {
+			Loader.iframe.remove();
+			Loader.messenger.destroy();
+			Loader.iframe    = null;
+			Loader.messenger = null;
+			Loader.body.removeClass( 'customize-active full-overlay-active' ).removeClass( 'customize-loading' );
+		},
+
+		loaded: function() {
+			Loader.body.removeClass('customize-loading');
+		},
+
+		overlay: {
+			show: function() {
+				this.element.fadeIn( 200, Loader.opened );
+			},
+
+			hide: function() {
+				this.element.fadeOut( 200, Loader.closed );
+			}
+		}
+	});
+
+	$( function() {
+		Loader.settings = _wpCustomizeLoaderSettings;
+		Loader.initialize();
+	});
+
+	// Expose the API to the world.
+	api.Loader = Loader;
+})( wp, jQuery );
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-includes/js/customize-loader.min.js	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,1 @@
+window.wp=window.wp||{};(function(a,c){var b=wp.customize,d;c.extend(c.support,{history:!!(window.history&&history.pushState),hashchange:("onhashchange" in window)&&(document.documentMode===undefined||document.documentMode>7)});d=c.extend({},b.Events,{initialize:function(){this.body=c(document.body);if(!d.settings||!c.support.postMessage||(!c.support.cors&&d.settings.isCrossDomain)){return}this.window=c(window);this.element=c('<div id="customize-container" />').appendTo(this.body);this.bind("open",this.overlay.show);this.bind("close",this.overlay.hide);c("#wpbody").on("click",".load-customize",function(e){e.preventDefault();d.link=c(this);d.open(d.link.attr("href"))});if(c.support.history){this.window.on("popstate",d.popstate)}if(c.support.hashchange){this.window.on("hashchange",d.hashchange);this.window.triggerHandler("hashchange")}},popstate:function(g){var f=g.originalEvent.state;if(f&&f.customize){d.open(f.customize)}else{if(d.active){d.close()}}},hashchange:function(g){var f=window.location.toString().split("#")[1];if(f&&0===f.indexOf("wp_customize=on")){d.open(d.settings.url+"?"+f)}if(!f&&!c.support.history){d.close()}},open:function(f){var e;if(this.active){return}if(d.settings.browser.mobile){return window.location=f}this.active=true;this.body.addClass("customize-loading");this.iframe=c("<iframe />",{src:f}).appendTo(this.element);this.iframe.one("load",this.loaded);this.messenger=new b.Messenger({url:f,channel:"loader",targetWindow:this.iframe[0].contentWindow});this.messenger.bind("ready",function(){d.messenger.send("back")});this.messenger.bind("close",function(){if(c.support.history){history.back()}else{if(c.support.hashchange){window.location.hash=""}else{d.close()}}});this.messenger.bind("activated",function(g){if(g){window.location=g}});e=f.split("?")[1];if(c.support.history&&window.location.href!==f){history.pushState({customize:f},"",f)}else{if(!c.support.history&&c.support.hashchange&&e){window.location.hash="wp_customize=on&"+e}}this.trigger("open")},opened:function(){d.body.addClass("customize-active full-overlay-active")},close:function(){if(!this.active){return}this.active=false;this.trigger("close");if(this.link){this.link.focus()}},closed:function(){d.iframe.remove();d.messenger.destroy();d.iframe=null;d.messenger=null;d.body.removeClass("customize-active full-overlay-active").removeClass("customize-loading")},loaded:function(){d.body.removeClass("customize-loading")},overlay:{show:function(){this.element.fadeIn(200,d.opened)},hide:function(){this.element.fadeOut(200,d.closed)}}});c(function(){d.settings=_wpCustomizeLoaderSettings;d.initialize()});b.Loader=d})(wp,jQuery);
\ No newline at end of file
--- a/web/wp-includes/js/customize-preview.dev.js	Wed Dec 19 12:35:13 2012 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,146 +0,0 @@
-(function( exports, $ ){
-	var api = wp.customize,
-		debounce;
-
-	debounce = function( fn, delay, context ) {
-		var timeout;
-		return function() {
-			var args = arguments;
-
-			context = context || this;
-
-			clearTimeout( timeout );
-			timeout = setTimeout( function() {
-				timeout = null;
-				fn.apply( context, args );
-			}, delay );
-		};
-	};
-
-	api.Preview = api.Messenger.extend({
-		/**
-		 * Requires params:
-		 *  - url    - the URL of preview frame
-		 */
-		initialize: function( params, options ) {
-			var self = this;
-
-			api.Messenger.prototype.initialize.call( this, params, options );
-
-			this.body = $( document.body );
-			this.body.on( 'click.preview', 'a', function( event ) {
-				event.preventDefault();
-				self.send( 'scroll', 0 );
-				self.send( 'url', $(this).prop('href') );
-			});
-
-			// You cannot submit forms.
-			// @todo: Allow form submissions by mixing $_POST data with the customize setting $_POST data.
-			this.body.on( 'submit.preview', 'form', function( event ) {
-				event.preventDefault();
-			});
-
-			this.window = $( window );
-			this.window.on( 'scroll.preview', debounce( function() {
-				self.send( 'scroll', self.window.scrollTop() );
-			}, 200 ));
-
-			this.bind( 'scroll', function( distance ) {
-				self.window.scrollTop( distance );
-			});
-		}
-	});
-
-	$( function() {
-		api.settings = window._wpCustomizeSettings;
-		if ( ! api.settings )
-			return;
-
-		var preview, bg;
-
-		preview = new api.Preview({
-			url: window.location.href,
-			channel: api.settings.channel
-		});
-
-		preview.bind( 'settings', function( values ) {
-			$.each( values, function( id, value ) {
-				if ( api.has( id ) )
-					api( id ).set( value );
-				else
-					api.create( id, value );
-			});
-		});
-
-		preview.trigger( 'settings', api.settings.values );
-
-		preview.bind( 'setting', function( args ) {
-			var value;
-
-			args = args.slice();
-
-			if ( value = api( args.shift() ) )
-				value.set.apply( value, args );
-		});
-
-		preview.bind( 'sync', function( events ) {
-			$.each( events, function( event, args ) {
-				preview.trigger( event, args );
-			});
-			preview.send( 'synced' );
-		});
-
-	 	preview.bind( 'active', function() {
-	 		if ( api.settings.nonce )
-	 			preview.send( 'nonce', api.settings.nonce );
-	 	});
-
-		preview.send( 'ready' );
-
-		/* Custom Backgrounds */
-		bg = $.map(['color', 'image', 'position_x', 'repeat', 'attachment'], function( prop ) {
-			return 'background_' + prop;
-		});
-
-		api.when.apply( api, bg ).done( function( color, image, position_x, repeat, attachment ) {
-			var body = $(document.body),
-				head = $('head'),
-				style = $('#custom-background-css'),
-				update;
-
-			// If custom backgrounds are active and we can't find the
-			// default output, bail.
-			if ( body.hasClass('custom-background') && ! style.length )
-				return;
-
-			update = function() {
-				var css = '';
-
-				// The body will support custom backgrounds if either
-				// the color or image are set.
-				//
-				// See get_body_class() in /wp-includes/post-template.php
-				body.toggleClass( 'custom-background', !! ( color() || image() ) );
-
-				if ( color() )
-					css += 'background-color: ' + color() + ';';
-
-				if ( image() ) {
-					css += 'background-image: url("' + image() + '");';
-					css += 'background-position: top ' + position_x() + ';';
-					css += 'background-repeat: ' + repeat() + ';';
-					css += 'background-position: top ' + attachment() + ';';
-				}
-
-				// Refresh the stylesheet by removing and recreating it.
-				style.remove();
-				style = $('<style type="text/css" id="custom-background-css">body.custom-background { ' + css + ' }</style>').appendTo( head );
-			};
-
-			$.each( arguments, function() {
-				this.bind( update );
-			});
-		});
-	});
-
-})( wp, jQuery );
--- a/web/wp-includes/js/customize-preview.js	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/js/customize-preview.js	Wed Dec 19 17:46:52 2012 -0800
@@ -1,1 +1,146 @@
-(function(b,d){var c=wp.customize,a;a=function(g,e,f){var h;return function(){var i=arguments;f=f||this;clearTimeout(h);h=setTimeout(function(){h=null;g.apply(f,i)},e)}};c.Preview=c.Messenger.extend({initialize:function(g,f){var e=this;c.Messenger.prototype.initialize.call(this,g,f);this.body=d(document.body);this.body.on("click.preview","a",function(h){h.preventDefault();e.send("scroll",0);e.send("url",d(this).prop("href"))});this.body.on("submit.preview","form",function(h){h.preventDefault()});this.window=d(window);this.window.on("scroll.preview",a(function(){e.send("scroll",e.window.scrollTop())},200));this.bind("scroll",function(h){e.window.scrollTop(h)})}});d(function(){c.settings=window._wpCustomizeSettings;if(!c.settings){return}var f,e;f=new c.Preview({url:window.location.href,channel:c.settings.channel});f.bind("settings",function(g){d.each(g,function(i,h){if(c.has(i)){c(i).set(h)}else{c.create(i,h)}})});f.trigger("settings",c.settings.values);f.bind("setting",function(g){var h;g=g.slice();if(h=c(g.shift())){h.set.apply(h,g)}});f.bind("sync",function(g){d.each(g,function(i,h){f.trigger(i,h)});f.send("synced")});f.bind("active",function(){if(c.settings.nonce){f.send("nonce",c.settings.nonce)}});f.send("ready");e=d.map(["color","image","position_x","repeat","attachment"],function(g){return"background_"+g});c.when.apply(c,e).done(function(j,i,m,h,l){var n=d(document.body),o=d("head"),g=d("#custom-background-css"),k;if(n.hasClass("custom-background")&&!g.length){return}k=function(){var p="";n.toggleClass("custom-background",!!(j()||i()));if(j()){p+="background-color: "+j()+";"}if(i()){p+='background-image: url("'+i()+'");';p+="background-position: top "+m()+";";p+="background-repeat: "+h()+";";p+="background-position: top "+l()+";"}g.remove();g=d('<style type="text/css" id="custom-background-css">body.custom-background { '+p+" }</style>").appendTo(o)};d.each(arguments,function(){this.bind(k)})})})})(wp,jQuery);
\ No newline at end of file
+(function( exports, $ ){
+	var api = wp.customize,
+		debounce;
+
+	debounce = function( fn, delay, context ) {
+		var timeout;
+		return function() {
+			var args = arguments;
+
+			context = context || this;
+
+			clearTimeout( timeout );
+			timeout = setTimeout( function() {
+				timeout = null;
+				fn.apply( context, args );
+			}, delay );
+		};
+	};
+
+	api.Preview = api.Messenger.extend({
+		/**
+		 * Requires params:
+		 *  - url    - the URL of preview frame
+		 */
+		initialize: function( params, options ) {
+			var self = this;
+
+			api.Messenger.prototype.initialize.call( this, params, options );
+
+			this.body = $( document.body );
+			this.body.on( 'click.preview', 'a', function( event ) {
+				event.preventDefault();
+				self.send( 'scroll', 0 );
+				self.send( 'url', $(this).prop('href') );
+			});
+
+			// You cannot submit forms.
+			// @todo: Allow form submissions by mixing $_POST data with the customize setting $_POST data.
+			this.body.on( 'submit.preview', 'form', function( event ) {
+				event.preventDefault();
+			});
+
+			this.window = $( window );
+			this.window.on( 'scroll.preview', debounce( function() {
+				self.send( 'scroll', self.window.scrollTop() );
+			}, 200 ));
+
+			this.bind( 'scroll', function( distance ) {
+				self.window.scrollTop( distance );
+			});
+		}
+	});
+
+	$( function() {
+		api.settings = window._wpCustomizeSettings;
+		if ( ! api.settings )
+			return;
+
+		var preview, bg;
+
+		preview = new api.Preview({
+			url: window.location.href,
+			channel: api.settings.channel
+		});
+
+		preview.bind( 'settings', function( values ) {
+			$.each( values, function( id, value ) {
+				if ( api.has( id ) )
+					api( id ).set( value );
+				else
+					api.create( id, value );
+			});
+		});
+
+		preview.trigger( 'settings', api.settings.values );
+
+		preview.bind( 'setting', function( args ) {
+			var value;
+
+			args = args.slice();
+
+			if ( value = api( args.shift() ) )
+				value.set.apply( value, args );
+		});
+
+		preview.bind( 'sync', function( events ) {
+			$.each( events, function( event, args ) {
+				preview.trigger( event, args );
+			});
+			preview.send( 'synced' );
+		});
+
+	 	preview.bind( 'active', function() {
+	 		if ( api.settings.nonce )
+	 			preview.send( 'nonce', api.settings.nonce );
+	 	});
+
+		preview.send( 'ready' );
+
+		/* Custom Backgrounds */
+		bg = $.map(['color', 'image', 'position_x', 'repeat', 'attachment'], function( prop ) {
+			return 'background_' + prop;
+		});
+
+		api.when.apply( api, bg ).done( function( color, image, position_x, repeat, attachment ) {
+			var body = $(document.body),
+				head = $('head'),
+				style = $('#custom-background-css'),
+				update;
+
+			// If custom backgrounds are active and we can't find the
+			// default output, bail.
+			if ( body.hasClass('custom-background') && ! style.length )
+				return;
+
+			update = function() {
+				var css = '';
+
+				// The body will support custom backgrounds if either
+				// the color or image are set.
+				//
+				// See get_body_class() in /wp-includes/post-template.php
+				body.toggleClass( 'custom-background', !! ( color() || image() ) );
+
+				if ( color() )
+					css += 'background-color: ' + color() + ';';
+
+				if ( image() ) {
+					css += 'background-image: url("' + image() + '");';
+					css += 'background-position: top ' + position_x() + ';';
+					css += 'background-repeat: ' + repeat() + ';';
+					css += 'background-attachment: ' + attachment() + ';';
+				}
+
+				// Refresh the stylesheet by removing and recreating it.
+				style.remove();
+				style = $('<style type="text/css" id="custom-background-css">body.custom-background { ' + css + ' }</style>').appendTo( head );
+			};
+
+			$.each( arguments, function() {
+				this.bind( update );
+			});
+		});
+	});
+
+})( wp, jQuery );
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-includes/js/customize-preview.min.js	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,1 @@
+(function(b,d){var c=wp.customize,a;a=function(g,e,f){var h;return function(){var i=arguments;f=f||this;clearTimeout(h);h=setTimeout(function(){h=null;g.apply(f,i)},e)}};c.Preview=c.Messenger.extend({initialize:function(g,f){var e=this;c.Messenger.prototype.initialize.call(this,g,f);this.body=d(document.body);this.body.on("click.preview","a",function(h){h.preventDefault();e.send("scroll",0);e.send("url",d(this).prop("href"))});this.body.on("submit.preview","form",function(h){h.preventDefault()});this.window=d(window);this.window.on("scroll.preview",a(function(){e.send("scroll",e.window.scrollTop())},200));this.bind("scroll",function(h){e.window.scrollTop(h)})}});d(function(){c.settings=window._wpCustomizeSettings;if(!c.settings){return}var f,e;f=new c.Preview({url:window.location.href,channel:c.settings.channel});f.bind("settings",function(g){d.each(g,function(i,h){if(c.has(i)){c(i).set(h)}else{c.create(i,h)}})});f.trigger("settings",c.settings.values);f.bind("setting",function(g){var h;g=g.slice();if(h=c(g.shift())){h.set.apply(h,g)}});f.bind("sync",function(g){d.each(g,function(i,h){f.trigger(i,h)});f.send("synced")});f.bind("active",function(){if(c.settings.nonce){f.send("nonce",c.settings.nonce)}});f.send("ready");e=d.map(["color","image","position_x","repeat","attachment"],function(g){return"background_"+g});c.when.apply(c,e).done(function(j,i,m,h,l){var n=d(document.body),o=d("head"),g=d("#custom-background-css"),k;if(n.hasClass("custom-background")&&!g.length){return}k=function(){var p="";n.toggleClass("custom-background",!!(j()||i()));if(j()){p+="background-color: "+j()+";"}if(i()){p+='background-image: url("'+i()+'");';p+="background-position: top "+m()+";";p+="background-repeat: "+h()+";";p+="background-attachment: "+l()+";"}g.remove();g=d('<style type="text/css" id="custom-background-css">body.custom-background { '+p+" }</style>").appendTo(o)};d.each(arguments,function(){this.bind(k)})})})})(wp,jQuery);
\ No newline at end of file
--- a/web/wp-includes/js/hoverIntent.dev.js	Wed Dec 19 12:35:13 2012 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,106 +0,0 @@
-/**
-* hoverIntent is similar to jQuery's built-in "hover" function except that
-* instead of firing the onMouseOver event immediately, hoverIntent checks
-* to see if the user's mouse has slowed down (beneath the sensitivity
-* threshold) before firing the onMouseOver event.
-* 
-* hoverIntent r6 // 2011.02.26 // jQuery 1.5.1+
-* <http://cherne.net/brian/resources/jquery.hoverIntent.html>
-* 
-* hoverIntent is currently available for use in all personal or commercial 
-* projects under both MIT and GPL licenses. This means that you can choose 
-* the license that best suits your project, and use it accordingly.
-* 
-* // basic usage (just like .hover) receives onMouseOver and onMouseOut functions
-* $("ul li").hoverIntent( showNav , hideNav );
-* 
-* // advanced usage receives configuration object only
-* $("ul li").hoverIntent({
-*	sensitivity: 7, // number = sensitivity threshold (must be 1 or higher)
-*	interval: 100,   // number = milliseconds of polling interval
-*	over: showNav,  // function = onMouseOver callback (required)
-*	timeout: 0,   // number = milliseconds delay before onMouseOut function call
-*	out: hideNav    // function = onMouseOut callback (required)
-* });
-* 
-* @param  f  onMouseOver function || An object with configuration options
-* @param  g  onMouseOut function  || Nothing (use configuration options object)
-* @author    Brian Cherne brian(at)cherne(dot)net
-*/
-(function($) {
-	$.fn.hoverIntent = function(f,g) {
-		// default configuration options
-		var cfg = {
-			sensitivity: 7,
-			interval: 100,
-			timeout: 0
-		};
-		// override configuration options with user supplied object
-		cfg = $.extend(cfg, g ? { over: f, out: g } : f );
-
-		// instantiate variables
-		// cX, cY = current X and Y position of mouse, updated by mousemove event
-		// pX, pY = previous X and Y position of mouse, set by mouseover and polling interval
-		var cX, cY, pX, pY;
-
-		// A private function for getting mouse position
-		var track = function(ev) {
-			cX = ev.pageX;
-			cY = ev.pageY;
-		};
-
-		// A private function for comparing current and previous mouse position
-		var compare = function(ev,ob) {
-			ob.hoverIntent_t = clearTimeout(ob.hoverIntent_t);
-			// compare mouse positions to see if they've crossed the threshold
-			if ( ( Math.abs(pX-cX) + Math.abs(pY-cY) ) < cfg.sensitivity ) {
-				$(ob).unbind("mousemove",track);
-				// set hoverIntent state to true (so mouseOut can be called)
-				ob.hoverIntent_s = 1;
-				return cfg.over.apply(ob,[ev]);
-			} else {
-				// set previous coordinates for next time
-				pX = cX; pY = cY;
-				// use self-calling timeout, guarantees intervals are spaced out properly (avoids JavaScript timer bugs)
-				ob.hoverIntent_t = setTimeout( function(){compare(ev, ob);} , cfg.interval );
-			}
-		};
-
-		// A private function for delaying the mouseOut function
-		var delay = function(ev,ob) {
-			ob.hoverIntent_t = clearTimeout(ob.hoverIntent_t);
-			ob.hoverIntent_s = 0;
-			return cfg.out.apply(ob,[ev]);
-		};
-
-		// A private function for handling mouse 'hovering'
-		var handleHover = function(e) {
-			// copy objects to be passed into t (required for event object to be passed in IE)
-			var ev = jQuery.extend({},e);
-			var ob = this;
-
-			// cancel hoverIntent timer if it exists
-			if (ob.hoverIntent_t) { ob.hoverIntent_t = clearTimeout(ob.hoverIntent_t); }
-
-			// if e.type == "mouseenter"
-			if (e.type == "mouseenter") {
-				// set "previous" X and Y position based on initial entry point
-				pX = ev.pageX; pY = ev.pageY;
-				// update "current" X and Y position based on mousemove
-				$(ob).bind("mousemove",track);
-				// start polling interval (self-calling timeout) to compare mouse coordinates over time
-				if (ob.hoverIntent_s != 1) { ob.hoverIntent_t = setTimeout( function(){compare(ev,ob);} , cfg.interval );}
-
-			// else e.type == "mouseleave"
-			} else {
-				// unbind expensive mousemove event
-				$(ob).unbind("mousemove",track);
-				// if hoverIntent state is true, then call the mouseOut function after the specified delay
-				if (ob.hoverIntent_s == 1) { ob.hoverIntent_t = setTimeout( function(){delay(ev,ob);} , cfg.timeout );}
-			}
-		};
-
-		// bind the function to the two event listeners
-		return this.bind('mouseenter',handleHover).bind('mouseleave',handleHover);
-	};
-})(jQuery);
\ No newline at end of file
--- a/web/wp-includes/js/hoverIntent.js	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/js/hoverIntent.js	Wed Dec 19 17:46:52 2012 -0800
@@ -1,1 +1,106 @@
-(function(a){a.fn.hoverIntent=function(k,j){var l={sensitivity:7,interval:100,timeout:0};l=a.extend(l,j?{over:k,out:j}:k);var n,m,h,d;var e=function(f){n=f.pageX;m=f.pageY};var c=function(g,f){f.hoverIntent_t=clearTimeout(f.hoverIntent_t);if((Math.abs(h-n)+Math.abs(d-m))<l.sensitivity){a(f).unbind("mousemove",e);f.hoverIntent_s=1;return l.over.apply(f,[g])}else{h=n;d=m;f.hoverIntent_t=setTimeout(function(){c(g,f)},l.interval)}};var i=function(g,f){f.hoverIntent_t=clearTimeout(f.hoverIntent_t);f.hoverIntent_s=0;return l.out.apply(f,[g])};var b=function(o){var g=jQuery.extend({},o);var f=this;if(f.hoverIntent_t){f.hoverIntent_t=clearTimeout(f.hoverIntent_t)}if(o.type=="mouseenter"){h=g.pageX;d=g.pageY;a(f).bind("mousemove",e);if(f.hoverIntent_s!=1){f.hoverIntent_t=setTimeout(function(){c(g,f)},l.interval)}}else{a(f).unbind("mousemove",e);if(f.hoverIntent_s==1){f.hoverIntent_t=setTimeout(function(){i(g,f)},l.timeout)}}};return this.bind("mouseenter",b).bind("mouseleave",b)}})(jQuery);
\ No newline at end of file
+/**
+* hoverIntent is similar to jQuery's built-in "hover" function except that
+* instead of firing the onMouseOver event immediately, hoverIntent checks
+* to see if the user's mouse has slowed down (beneath the sensitivity
+* threshold) before firing the onMouseOver event.
+* 
+* hoverIntent r6 // 2011.02.26 // jQuery 1.5.1+
+* <http://cherne.net/brian/resources/jquery.hoverIntent.html>
+* 
+* hoverIntent is currently available for use in all personal or commercial 
+* projects under both MIT and GPL licenses. This means that you can choose 
+* the license that best suits your project, and use it accordingly.
+* 
+* // basic usage (just like .hover) receives onMouseOver and onMouseOut functions
+* $("ul li").hoverIntent( showNav , hideNav );
+* 
+* // advanced usage receives configuration object only
+* $("ul li").hoverIntent({
+*	sensitivity: 7, // number = sensitivity threshold (must be 1 or higher)
+*	interval: 100,   // number = milliseconds of polling interval
+*	over: showNav,  // function = onMouseOver callback (required)
+*	timeout: 0,   // number = milliseconds delay before onMouseOut function call
+*	out: hideNav    // function = onMouseOut callback (required)
+* });
+* 
+* @param  f  onMouseOver function || An object with configuration options
+* @param  g  onMouseOut function  || Nothing (use configuration options object)
+* @author    Brian Cherne brian(at)cherne(dot)net
+*/
+(function($) {
+	$.fn.hoverIntent = function(f,g) {
+		// default configuration options
+		var cfg = {
+			sensitivity: 7,
+			interval: 100,
+			timeout: 0
+		};
+		// override configuration options with user supplied object
+		cfg = $.extend(cfg, g ? { over: f, out: g } : f );
+
+		// instantiate variables
+		// cX, cY = current X and Y position of mouse, updated by mousemove event
+		// pX, pY = previous X and Y position of mouse, set by mouseover and polling interval
+		var cX, cY, pX, pY;
+
+		// A private function for getting mouse position
+		var track = function(ev) {
+			cX = ev.pageX;
+			cY = ev.pageY;
+		};
+
+		// A private function for comparing current and previous mouse position
+		var compare = function(ev,ob) {
+			ob.hoverIntent_t = clearTimeout(ob.hoverIntent_t);
+			// compare mouse positions to see if they've crossed the threshold
+			if ( ( Math.abs(pX-cX) + Math.abs(pY-cY) ) < cfg.sensitivity ) {
+				$(ob).unbind("mousemove",track);
+				// set hoverIntent state to true (so mouseOut can be called)
+				ob.hoverIntent_s = 1;
+				return cfg.over.apply(ob,[ev]);
+			} else {
+				// set previous coordinates for next time
+				pX = cX; pY = cY;
+				// use self-calling timeout, guarantees intervals are spaced out properly (avoids JavaScript timer bugs)
+				ob.hoverIntent_t = setTimeout( function(){compare(ev, ob);} , cfg.interval );
+			}
+		};
+
+		// A private function for delaying the mouseOut function
+		var delay = function(ev,ob) {
+			ob.hoverIntent_t = clearTimeout(ob.hoverIntent_t);
+			ob.hoverIntent_s = 0;
+			return cfg.out.apply(ob,[ev]);
+		};
+
+		// A private function for handling mouse 'hovering'
+		var handleHover = function(e) {
+			// copy objects to be passed into t (required for event object to be passed in IE)
+			var ev = jQuery.extend({},e);
+			var ob = this;
+
+			// cancel hoverIntent timer if it exists
+			if (ob.hoverIntent_t) { ob.hoverIntent_t = clearTimeout(ob.hoverIntent_t); }
+
+			// if e.type == "mouseenter"
+			if (e.type == "mouseenter") {
+				// set "previous" X and Y position based on initial entry point
+				pX = ev.pageX; pY = ev.pageY;
+				// update "current" X and Y position based on mousemove
+				$(ob).bind("mousemove",track);
+				// start polling interval (self-calling timeout) to compare mouse coordinates over time
+				if (ob.hoverIntent_s != 1) { ob.hoverIntent_t = setTimeout( function(){compare(ev,ob);} , cfg.interval );}
+
+			// else e.type == "mouseleave"
+			} else {
+				// unbind expensive mousemove event
+				$(ob).unbind("mousemove",track);
+				// if hoverIntent state is true, then call the mouseOut function after the specified delay
+				if (ob.hoverIntent_s == 1) { ob.hoverIntent_t = setTimeout( function(){delay(ev,ob);} , cfg.timeout );}
+			}
+		};
+
+		// bind the function to the two event listeners
+		return this.bind('mouseenter',handleHover).bind('mouseleave',handleHover);
+	};
+})(jQuery);
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-includes/js/hoverIntent.min.js	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,1 @@
+(function(a){a.fn.hoverIntent=function(k,j){var l={sensitivity:7,interval:100,timeout:0};l=a.extend(l,j?{over:k,out:j}:k);var n,m,h,d;var e=function(f){n=f.pageX;m=f.pageY};var c=function(g,f){f.hoverIntent_t=clearTimeout(f.hoverIntent_t);if((Math.abs(h-n)+Math.abs(d-m))<l.sensitivity){a(f).unbind("mousemove",e);f.hoverIntent_s=1;return l.over.apply(f,[g])}else{h=n;d=m;f.hoverIntent_t=setTimeout(function(){c(g,f)},l.interval)}};var i=function(g,f){f.hoverIntent_t=clearTimeout(f.hoverIntent_t);f.hoverIntent_s=0;return l.out.apply(f,[g])};var b=function(o){var g=jQuery.extend({},o);var f=this;if(f.hoverIntent_t){f.hoverIntent_t=clearTimeout(f.hoverIntent_t)}if(o.type=="mouseenter"){h=g.pageX;d=g.pageY;a(f).bind("mousemove",e);if(f.hoverIntent_s!=1){f.hoverIntent_t=setTimeout(function(){c(g,f)},l.interval)}}else{a(f).unbind("mousemove",e);if(f.hoverIntent_s==1){f.hoverIntent_t=setTimeout(function(){i(g,f)},l.timeout)}}};return this.bind("mouseenter",b).bind("mouseleave",b)}})(jQuery);
\ No newline at end of file
Binary file web/wp-includes/js/imgareaselect/border-anim-h.gif has changed
Binary file web/wp-includes/js/imgareaselect/border-anim-v.gif has changed
--- a/web/wp-includes/js/imgareaselect/jquery.imgareaselect.dev.js	Wed Dec 19 12:35:13 2012 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1198 +0,0 @@
-/*
- * imgAreaSelect jQuery plugin
- * version 0.9.9
- *
- * Copyright (c) 2008-2011 Michal Wojciechowski (odyniec.net)
- *
- * Dual licensed under the MIT (MIT-LICENSE.txt)
- * and GPL (GPL-LICENSE.txt) licenses.
- *
- * http://odyniec.net/projects/imgareaselect/
- *
- */
-
-(function($) {
-
-/*
- * Math functions will be used extensively, so it's convenient to make a few
- * shortcuts
- */
-var abs = Math.abs,
-    max = Math.max,
-    min = Math.min,
-    round = Math.round;
-
-/**
- * Create a new HTML div element
- *
- * @return A jQuery object representing the new element
- */
-function div() {
-    return $('<div/>');
-}
-
-/**
- * imgAreaSelect initialization
- *
- * @param img
- *            A HTML image element to attach the plugin to
- * @param options
- *            An options object
- */
-$.imgAreaSelect = function (img, options) {
-    var
-        /* jQuery object representing the image */
-        $img = $(img),
-
-        /* Has the image finished loading? */
-        imgLoaded,
-
-        /* Plugin elements */
-
-        /* Container box */
-        $box = div(),
-        /* Selection area */
-        $area = div(),
-        /* Border (four divs) */
-        $border = div().add(div()).add(div()).add(div()),
-        /* Outer area (four divs) */
-        $outer = div().add(div()).add(div()).add(div()),
-        /* Handles (empty by default, initialized in setOptions()) */
-        $handles = $([]),
-
-        /*
-         * Additional element to work around a cursor problem in Opera
-         * (explained later)
-         */
-        $areaOpera,
-
-        /* Image position (relative to viewport) */
-        left, top,
-
-        /* Image offset (as returned by .offset()) */
-        imgOfs = { left: 0, top: 0 },
-
-        /* Image dimensions (as returned by .width() and .height()) */
-        imgWidth, imgHeight,
-
-        /*
-         * jQuery object representing the parent element that the plugin
-         * elements are appended to
-         */
-        $parent,
-
-        /* Parent element offset (as returned by .offset()) */
-        parOfs = { left: 0, top: 0 },
-
-        /* Base z-index for plugin elements */
-        zIndex = 0,
-
-        /* Plugin elements position */
-        position = 'absolute',
-
-        /* X/Y coordinates of the starting point for move/resize operations */
-        startX, startY,
-
-        /* Horizontal and vertical scaling factors */
-        scaleX, scaleY,
-
-        /* Current resize mode ("nw", "se", etc.) */
-        resize,
-
-        /* Selection area constraints */
-        minWidth, minHeight, maxWidth, maxHeight,
-
-        /* Aspect ratio to maintain (floating point number) */
-        aspectRatio,
-
-        /* Are the plugin elements currently displayed? */
-        shown,
-
-        /* Current selection (relative to parent element) */
-        x1, y1, x2, y2,
-
-        /* Current selection (relative to scaled image) */
-        selection = { x1: 0, y1: 0, x2: 0, y2: 0, width: 0, height: 0 },
-
-        /* Document element */
-        docElem = document.documentElement,
-
-        /* Various helper variables used throughout the code */
-        $p, d, i, o, w, h, adjusted;
-
-    /*
-     * Translate selection coordinates (relative to scaled image) to viewport
-     * coordinates (relative to parent element)
-     */
-
-    /**
-     * Translate selection X to viewport X
-     *
-     * @param x
-     *            Selection X
-     * @return Viewport X
-     */
-    function viewX(x) {
-        return x + imgOfs.left - parOfs.left;
-    }
-
-    /**
-     * Translate selection Y to viewport Y
-     *
-     * @param y
-     *            Selection Y
-     * @return Viewport Y
-     */
-    function viewY(y) {
-        return y + imgOfs.top - parOfs.top;
-    }
-
-    /*
-     * Translate viewport coordinates to selection coordinates
-     */
-
-    /**
-     * Translate viewport X to selection X
-     *
-     * @param x
-     *            Viewport X
-     * @return Selection X
-     */
-    function selX(x) {
-        return x - imgOfs.left + parOfs.left;
-    }
-
-    /**
-     * Translate viewport Y to selection Y
-     *
-     * @param y
-     *            Viewport Y
-     * @return Selection Y
-     */
-    function selY(y) {
-        return y - imgOfs.top + parOfs.top;
-    }
-
-    /*
-     * Translate event coordinates (relative to document) to viewport
-     * coordinates
-     */
-
-    /**
-     * Get event X and translate it to viewport X
-     *
-     * @param event
-     *            The event object
-     * @return Viewport X
-     */
-    function evX(event) {
-        return event.pageX - parOfs.left;
-    }
-
-    /**
-     * Get event Y and translate it to viewport Y
-     *
-     * @param event
-     *            The event object
-     * @return Viewport Y
-     */
-    function evY(event) {
-        return event.pageY - parOfs.top;
-    }
-
-    /**
-     * Get the current selection
-     *
-     * @param noScale
-     *            If set to <code>true</code>, scaling is not applied to the
-     *            returned selection
-     * @return Selection object
-     */
-    function getSelection(noScale) {
-        var sx = noScale || scaleX, sy = noScale || scaleY;
-
-        return { x1: round(selection.x1 * sx),
-            y1: round(selection.y1 * sy),
-            x2: round(selection.x2 * sx),
-            y2: round(selection.y2 * sy),
-            width: round(selection.x2 * sx) - round(selection.x1 * sx),
-            height: round(selection.y2 * sy) - round(selection.y1 * sy) };
-    }
-
-    /**
-     * Set the current selection
-     *
-     * @param x1
-     *            X coordinate of the upper left corner of the selection area
-     * @param y1
-     *            Y coordinate of the upper left corner of the selection area
-     * @param x2
-     *            X coordinate of the lower right corner of the selection area
-     * @param y2
-     *            Y coordinate of the lower right corner of the selection area
-     * @param noScale
-     *            If set to <code>true</code>, scaling is not applied to the
-     *            new selection
-     */
-    function setSelection(x1, y1, x2, y2, noScale) {
-        var sx = noScale || scaleX, sy = noScale || scaleY;
-
-        selection = {
-            x1: round(x1 / sx || 0),
-            y1: round(y1 / sy || 0),
-            x2: round(x2 / sx || 0),
-            y2: round(y2 / sy || 0)
-        };
-
-        selection.width = selection.x2 - selection.x1;
-        selection.height = selection.y2 - selection.y1;
-    }
-
-    /**
-     * Recalculate image and parent offsets
-     */
-    function adjust() {
-        /*
-         * Do not adjust if image width is not a positive number. This might
-         * happen when imgAreaSelect is put on a parent element which is then
-         * hidden.
-         */
-        if (!$img.width())
-            return;
-
-        /*
-         * Get image offset. The .offset() method returns float values, so they
-         * need to be rounded.
-         */
-        imgOfs = { left: round($img.offset().left), top: round($img.offset().top) };
-
-        /* Get image dimensions */
-        imgWidth = $img.innerWidth();
-        imgHeight = $img.innerHeight();
-
-        imgOfs.top += ($img.outerHeight() - imgHeight) >> 1;
-        imgOfs.left += ($img.outerWidth() - imgWidth) >> 1;
-
-        /* Set minimum and maximum selection area dimensions */
-        minWidth = round(options.minWidth / scaleX) || 0;
-        minHeight = round(options.minHeight / scaleY) || 0;
-        maxWidth = round(min(options.maxWidth / scaleX || 1<<24, imgWidth));
-        maxHeight = round(min(options.maxHeight / scaleY || 1<<24, imgHeight));
-
-        /*
-         * Workaround for jQuery 1.3.2 incorrect offset calculation, originally
-         * observed in Safari 3. Firefox 2 is also affected.
-         */
-        if ($().jquery == '1.3.2' && position == 'fixed' &&
-            !docElem['getBoundingClientRect'])
-        {
-            imgOfs.top += max(document.body.scrollTop, docElem.scrollTop);
-            imgOfs.left += max(document.body.scrollLeft, docElem.scrollLeft);
-        }
-
-        /* Determine parent element offset */
-        parOfs = /absolute|relative/.test($parent.css('position')) ?
-            { left: round($parent.offset().left) - $parent.scrollLeft(),
-                top: round($parent.offset().top) - $parent.scrollTop() } :
-            position == 'fixed' ?
-                { left: $(document).scrollLeft(), top: $(document).scrollTop() } :
-                { left: 0, top: 0 };
-
-        left = viewX(0);
-        top = viewY(0);
-
-        /*
-         * Check if selection area is within image boundaries, adjust if
-         * necessary
-         */
-        if (selection.x2 > imgWidth || selection.y2 > imgHeight)
-            doResize();
-    }
-
-    /**
-     * Update plugin elements
-     *
-     * @param resetKeyPress
-     *            If set to <code>false</code>, this instance's keypress
-     *            event handler is not activated
-     */
-    function update(resetKeyPress) {
-        /* If plugin elements are hidden, do nothing */
-        if (!shown) return;
-
-        /*
-         * Set the position and size of the container box and the selection area
-         * inside it
-         */
-        $box.css({ left: viewX(selection.x1), top: viewY(selection.y1) })
-            .add($area).width(w = selection.width).height(h = selection.height);
-
-        /*
-         * Reset the position of selection area, borders, and handles (IE6/IE7
-         * position them incorrectly if we don't do this)
-         */
-        $area.add($border).add($handles).css({ left: 0, top: 0 });
-
-        /* Set border dimensions */
-        $border
-            .width(max(w - $border.outerWidth() + $border.innerWidth(), 0))
-            .height(max(h - $border.outerHeight() + $border.innerHeight(), 0));
-
-        /* Arrange the outer area elements */
-        $($outer[0]).css({ left: left, top: top,
-            width: selection.x1, height: imgHeight });
-        $($outer[1]).css({ left: left + selection.x1, top: top,
-            width: w, height: selection.y1 });
-        $($outer[2]).css({ left: left + selection.x2, top: top,
-            width: imgWidth - selection.x2, height: imgHeight });
-        $($outer[3]).css({ left: left + selection.x1, top: top + selection.y2,
-            width: w, height: imgHeight - selection.y2 });
-
-        w -= $handles.outerWidth();
-        h -= $handles.outerHeight();
-
-        /* Arrange handles */
-        switch ($handles.length) {
-        case 8:
-            $($handles[4]).css({ left: w >> 1 });
-            $($handles[5]).css({ left: w, top: h >> 1 });
-            $($handles[6]).css({ left: w >> 1, top: h });
-            $($handles[7]).css({ top: h >> 1 });
-        case 4:
-            $handles.slice(1,3).css({ left: w });
-            $handles.slice(2,4).css({ top: h });
-        }
-
-        if (resetKeyPress !== false) {
-            /*
-             * Need to reset the document keypress event handler -- unbind the
-             * current handler
-             */
-            if ($.imgAreaSelect.keyPress != docKeyPress)
-                $(document).unbind($.imgAreaSelect.keyPress,
-                    $.imgAreaSelect.onKeyPress);
-
-            if (options.keys)
-                /*
-                 * Set the document keypress event handler to this instance's
-                 * docKeyPress() function
-                 */
-                $(document)[$.imgAreaSelect.keyPress](
-                    $.imgAreaSelect.onKeyPress = docKeyPress);
-        }
-
-        /*
-         * Internet Explorer displays 1px-wide dashed borders incorrectly by
-         * filling the spaces between dashes with white. Toggling the margin
-         * property between 0 and "auto" fixes this in IE6 and IE7 (IE8 is still
-         * broken). This workaround is not perfect, as it requires setTimeout()
-         * and thus causes the border to flicker a bit, but I haven't found a
-         * better solution.
-         *
-         * Note: This only happens with CSS borders, set with the borderWidth,
-         * borderOpacity, borderColor1, and borderColor2 options (which are now
-         * deprecated). Borders created with GIF background images are fine.
-         */
-        if ($.browser.msie && $border.outerWidth() - $border.innerWidth() == 2) {
-            $border.css('margin', 0);
-            setTimeout(function () { $border.css('margin', 'auto'); }, 0);
-        }
-    }
-
-    /**
-     * Do the complete update sequence: recalculate offsets, update the
-     * elements, and set the correct values of x1, y1, x2, and y2.
-     *
-     * @param resetKeyPress
-     *            If set to <code>false</code>, this instance's keypress
-     *            event handler is not activated
-     */
-    function doUpdate(resetKeyPress) {
-        adjust();
-        update(resetKeyPress);
-        x1 = viewX(selection.x1); y1 = viewY(selection.y1);
-        x2 = viewX(selection.x2); y2 = viewY(selection.y2);
-    }
-
-    /**
-     * Hide or fade out an element (or multiple elements)
-     *
-     * @param $elem
-     *            A jQuery object containing the element(s) to hide/fade out
-     * @param fn
-     *            Callback function to be called when fadeOut() completes
-     */
-    function hide($elem, fn) {
-        options.fadeSpeed ? $elem.fadeOut(options.fadeSpeed, fn) : $elem.hide();
-    }
-
-    /**
-     * Selection area mousemove event handler
-     *
-     * @param event
-     *            The event object
-     */
-    function areaMouseMove(event) {
-        var x = selX(evX(event)) - selection.x1,
-            y = selY(evY(event)) - selection.y1;
-
-        if (!adjusted) {
-            adjust();
-            adjusted = true;
-
-            $box.one('mouseout', function () { adjusted = false; });
-        }
-
-        /* Clear the resize mode */
-        resize = '';
-
-        if (options.resizable) {
-            /*
-             * Check if the mouse pointer is over the resize margin area and set
-             * the resize mode accordingly
-             */
-            if (y <= options.resizeMargin)
-                resize = 'n';
-            else if (y >= selection.height - options.resizeMargin)
-                resize = 's';
-            if (x <= options.resizeMargin)
-                resize += 'w';
-            else if (x >= selection.width - options.resizeMargin)
-                resize += 'e';
-        }
-
-        $box.css('cursor', resize ? resize + '-resize' :
-            options.movable ? 'move' : '');
-        if ($areaOpera)
-            $areaOpera.toggle();
-    }
-
-    /**
-     * Document mouseup event handler
-     *
-     * @param event
-     *            The event object
-     */
-    function docMouseUp(event) {
-        /* Set back the default cursor */
-        $('body').css('cursor', '');
-        /*
-         * If autoHide is enabled, or if the selection has zero width/height,
-         * hide the selection and the outer area
-         */
-        if (options.autoHide || selection.width * selection.height == 0)
-            hide($box.add($outer), function () { $(this).hide(); });
-
-        $(document).unbind('mousemove', selectingMouseMove);
-        $box.mousemove(areaMouseMove);
-
-        options.onSelectEnd(img, getSelection());
-    }
-
-    /**
-     * Selection area mousedown event handler
-     *
-     * @param event
-     *            The event object
-     * @return false
-     */
-    function areaMouseDown(event) {
-        if (event.which != 1) return false;
-
-        adjust();
-
-        if (resize) {
-            /* Resize mode is in effect */
-            $('body').css('cursor', resize + '-resize');
-
-            x1 = viewX(selection[/w/.test(resize) ? 'x2' : 'x1']);
-            y1 = viewY(selection[/n/.test(resize) ? 'y2' : 'y1']);
-
-            $(document).mousemove(selectingMouseMove)
-                .one('mouseup', docMouseUp);
-            $box.unbind('mousemove', areaMouseMove);
-        }
-        else if (options.movable) {
-            startX = left + selection.x1 - evX(event);
-            startY = top + selection.y1 - evY(event);
-
-            $box.unbind('mousemove', areaMouseMove);
-
-            $(document).mousemove(movingMouseMove)
-                .one('mouseup', function () {
-                    options.onSelectEnd(img, getSelection());
-
-                    $(document).unbind('mousemove', movingMouseMove);
-                    $box.mousemove(areaMouseMove);
-                });
-        }
-        else
-            $img.mousedown(event);
-
-        return false;
-    }
-
-    /**
-     * Adjust the x2/y2 coordinates to maintain aspect ratio (if defined)
-     *
-     * @param xFirst
-     *            If set to <code>true</code>, calculate x2 first. Otherwise,
-     *            calculate y2 first.
-     */
-    function fixAspectRatio(xFirst) {
-        if (aspectRatio)
-            if (xFirst) {
-                x2 = max(left, min(left + imgWidth,
-                    x1 + abs(y2 - y1) * aspectRatio * (x2 > x1 || -1)));
-                y2 = round(max(top, min(top + imgHeight,
-                    y1 + abs(x2 - x1) / aspectRatio * (y2 > y1 || -1))));
-                x2 = round(x2);
-            }
-            else {
-                y2 = max(top, min(top + imgHeight,
-                    y1 + abs(x2 - x1) / aspectRatio * (y2 > y1 || -1)));
-                x2 = round(max(left, min(left + imgWidth,
-                    x1 + abs(y2 - y1) * aspectRatio * (x2 > x1 || -1))));
-                y2 = round(y2);
-            }
-    }
-
-    /**
-     * Resize the selection area respecting the minimum/maximum dimensions and
-     * aspect ratio
-     */
-    function doResize() {
-        /*
-         * Make sure the top left corner of the selection area stays within
-         * image boundaries (it might not if the image source was dynamically
-         * changed).
-         */
-        x1 = min(x1, left + imgWidth);
-        y1 = min(y1, top + imgHeight);
-
-        if (abs(x2 - x1) < minWidth) {
-            /* Selection width is smaller than minWidth */
-            x2 = x1 - minWidth * (x2 < x1 || -1);
-
-            if (x2 < left)
-                x1 = left + minWidth;
-            else if (x2 > left + imgWidth)
-                x1 = left + imgWidth - minWidth;
-        }
-
-        if (abs(y2 - y1) < minHeight) {
-            /* Selection height is smaller than minHeight */
-            y2 = y1 - minHeight * (y2 < y1 || -1);
-
-            if (y2 < top)
-                y1 = top + minHeight;
-            else if (y2 > top + imgHeight)
-                y1 = top + imgHeight - minHeight;
-        }
-
-        x2 = max(left, min(x2, left + imgWidth));
-        y2 = max(top, min(y2, top + imgHeight));
-
-        fixAspectRatio(abs(x2 - x1) < abs(y2 - y1) * aspectRatio);
-
-        if (abs(x2 - x1) > maxWidth) {
-            /* Selection width is greater than maxWidth */
-            x2 = x1 - maxWidth * (x2 < x1 || -1);
-            fixAspectRatio();
-        }
-
-        if (abs(y2 - y1) > maxHeight) {
-            /* Selection height is greater than maxHeight */
-            y2 = y1 - maxHeight * (y2 < y1 || -1);
-            fixAspectRatio(true);
-        }
-
-        selection = { x1: selX(min(x1, x2)), x2: selX(max(x1, x2)),
-            y1: selY(min(y1, y2)), y2: selY(max(y1, y2)),
-            width: abs(x2 - x1), height: abs(y2 - y1) };
-
-        update();
-
-        options.onSelectChange(img, getSelection());
-    }
-
-    /**
-     * Mousemove event handler triggered when the user is selecting an area
-     *
-     * @param event
-     *            The event object
-     * @return false
-     */
-    function selectingMouseMove(event) {
-        x2 = /w|e|^$/.test(resize) || aspectRatio ? evX(event) : viewX(selection.x2);
-        y2 = /n|s|^$/.test(resize) || aspectRatio ? evY(event) : viewY(selection.y2);
-
-        doResize();
-
-        return false;
-    }
-
-    /**
-     * Move the selection area
-     *
-     * @param newX1
-     *            New viewport X1
-     * @param newY1
-     *            New viewport Y1
-     */
-    function doMove(newX1, newY1) {
-        x2 = (x1 = newX1) + selection.width;
-        y2 = (y1 = newY1) + selection.height;
-
-        $.extend(selection, { x1: selX(x1), y1: selY(y1), x2: selX(x2),
-            y2: selY(y2) });
-
-        update();
-
-        options.onSelectChange(img, getSelection());
-    }
-
-    /**
-     * Mousemove event handler triggered when the selection area is being moved
-     *
-     * @param event
-     *            The event object
-     * @return false
-     */
-    function movingMouseMove(event) {
-        x1 = max(left, min(startX + evX(event), left + imgWidth - selection.width));
-        y1 = max(top, min(startY + evY(event), top + imgHeight - selection.height));
-
-        doMove(x1, y1);
-
-        event.preventDefault();
-        return false;
-    }
-
-    /**
-     * Start selection
-     */
-    function startSelection() {
-        $(document).unbind('mousemove', startSelection);
-        adjust();
-
-        x2 = x1;
-        y2 = y1;
-        doResize();
-
-        resize = '';
-
-        if (!$outer.is(':visible'))
-            /* Show the plugin elements */
-            $box.add($outer).hide().fadeIn(options.fadeSpeed||0);
-
-        shown = true;
-
-        $(document).unbind('mouseup', cancelSelection)
-            .mousemove(selectingMouseMove).one('mouseup', docMouseUp);
-        $box.unbind('mousemove', areaMouseMove);
-
-        options.onSelectStart(img, getSelection());
-    }
-
-    /**
-     * Cancel selection
-     */
-    function cancelSelection() {
-        $(document).unbind('mousemove', startSelection)
-            .unbind('mouseup', cancelSelection);
-        hide($box.add($outer));
-
-        setSelection(selX(x1), selY(y1), selX(x1), selY(y1));
-
-        /* If this is an API call, callback functions should not be triggered */
-        if (!(this instanceof $.imgAreaSelect)) {
-            options.onSelectChange(img, getSelection());
-            options.onSelectEnd(img, getSelection());
-        }
-    }
-
-    /**
-     * Image mousedown event handler
-     *
-     * @param event
-     *            The event object
-     * @return false
-     */
-    function imgMouseDown(event) {
-        /* Ignore the event if animation is in progress */
-        if (event.which != 1 || $outer.is(':animated')) return false;
-
-        adjust();
-        startX = x1 = evX(event);
-        startY = y1 = evY(event);
-
-        /* Selection will start when the mouse is moved */
-        $(document).mousemove(startSelection).mouseup(cancelSelection);
-
-        return false;
-    }
-
-    /**
-     * Window resize event handler
-     */
-    function windowResize() {
-        doUpdate(false);
-    }
-
-    /**
-     * Image load event handler. This is the final part of the initialization
-     * process.
-     */
-    function imgLoad() {
-        imgLoaded = true;
-
-        /* Set options */
-        setOptions(options = $.extend({
-            classPrefix: 'imgareaselect',
-            movable: true,
-            parent: 'body',
-            resizable: true,
-            resizeMargin: 10,
-            onInit: function () {},
-            onSelectStart: function () {},
-            onSelectChange: function () {},
-            onSelectEnd: function () {}
-        }, options));
-
-        $box.add($outer).css({ visibility: '' });
-
-        if (options.show) {
-            shown = true;
-            adjust();
-            update();
-            $box.add($outer).hide().fadeIn(options.fadeSpeed||0);
-        }
-
-        /*
-         * Call the onInit callback. The setTimeout() call is used to ensure
-         * that the plugin has been fully initialized and the object instance is
-         * available (so that it can be obtained in the callback).
-         */
-        setTimeout(function () { options.onInit(img, getSelection()); }, 0);
-    }
-
-    /**
-     * Document keypress event handler
-     *
-     * @param event
-     *            The event object
-     * @return false
-     */
-    var docKeyPress = function(event) {
-        var k = options.keys, d, t, key = event.keyCode;
-
-        d = !isNaN(k.alt) && (event.altKey || event.originalEvent.altKey) ? k.alt :
-            !isNaN(k.ctrl) && event.ctrlKey ? k.ctrl :
-            !isNaN(k.shift) && event.shiftKey ? k.shift :
-            !isNaN(k.arrows) ? k.arrows : 10;
-
-        if (k.arrows == 'resize' || (k.shift == 'resize' && event.shiftKey) ||
-            (k.ctrl == 'resize' && event.ctrlKey) ||
-            (k.alt == 'resize' && (event.altKey || event.originalEvent.altKey)))
-        {
-            /* Resize selection */
-
-            switch (key) {
-            case 37:
-                /* Left */
-                d = -d;
-            case 39:
-                /* Right */
-                t = max(x1, x2);
-                x1 = min(x1, x2);
-                x2 = max(t + d, x1);
-                fixAspectRatio();
-                break;
-            case 38:
-                /* Up */
-                d = -d;
-            case 40:
-                /* Down */
-                t = max(y1, y2);
-                y1 = min(y1, y2);
-                y2 = max(t + d, y1);
-                fixAspectRatio(true);
-                break;
-            default:
-                return;
-            }
-
-            doResize();
-        }
-        else {
-            /* Move selection */
-
-            x1 = min(x1, x2);
-            y1 = min(y1, y2);
-
-            switch (key) {
-            case 37:
-                /* Left */
-                doMove(max(x1 - d, left), y1);
-                break;
-            case 38:
-                /* Up */
-                doMove(x1, max(y1 - d, top));
-                break;
-            case 39:
-                /* Right */
-                doMove(x1 + min(d, imgWidth - selX(x2)), y1);
-                break;
-            case 40:
-                /* Down */
-                doMove(x1, y1 + min(d, imgHeight - selY(y2)));
-                break;
-            default:
-                return;
-            }
-        }
-
-        return false;
-    };
-
-    /**
-     * Apply style options to plugin element (or multiple elements)
-     *
-     * @param $elem
-     *            A jQuery object representing the element(s) to style
-     * @param props
-     *            An object that maps option names to corresponding CSS
-     *            properties
-     */
-    function styleOptions($elem, props) {
-        for (var option in props)
-            if (options[option] !== undefined)
-                $elem.css(props[option], options[option]);
-    }
-
-    /**
-     * Set plugin options
-     *
-     * @param newOptions
-     *            The new options object
-     */
-    function setOptions(newOptions) {
-        if (newOptions.parent)
-            ($parent = $(newOptions.parent)).append($box.add($outer));
-
-        /* Merge the new options with the existing ones */
-        $.extend(options, newOptions);
-
-        adjust();
-
-        if (newOptions.handles != null) {
-            /* Recreate selection area handles */
-            $handles.remove();
-            $handles = $([]);
-
-            i = newOptions.handles ? newOptions.handles == 'corners' ? 4 : 8 : 0;
-
-            while (i--)
-                $handles = $handles.add(div());
-
-            /* Add a class to handles and set the CSS properties */
-            $handles.addClass(options.classPrefix + '-handle').css({
-                position: 'absolute',
-                /*
-                 * The font-size property needs to be set to zero, otherwise
-                 * Internet Explorer makes the handles too large
-                 */
-                fontSize: 0,
-                zIndex: zIndex + 1 || 1
-            });
-
-            /*
-             * If handle width/height has not been set with CSS rules, set the
-             * default 5px
-             */
-            if (!parseInt($handles.css('width')) >= 0)
-                $handles.width(5).height(5);
-
-            /*
-             * If the borderWidth option is in use, add a solid border to
-             * handles
-             */
-            if (o = options.borderWidth)
-                $handles.css({ borderWidth: o, borderStyle: 'solid' });
-
-            /* Apply other style options */
-            styleOptions($handles, { borderColor1: 'border-color',
-                borderColor2: 'background-color',
-                borderOpacity: 'opacity' });
-        }
-
-        /* Calculate scale factors */
-        scaleX = options.imageWidth / imgWidth || 1;
-        scaleY = options.imageHeight / imgHeight || 1;
-
-        /* Set selection */
-        if (newOptions.x1 != null) {
-            setSelection(newOptions.x1, newOptions.y1, newOptions.x2,
-                newOptions.y2);
-            newOptions.show = !newOptions.hide;
-        }
-
-        if (newOptions.keys)
-            /* Enable keyboard support */
-            options.keys = $.extend({ shift: 1, ctrl: 'resize' },
-                newOptions.keys);
-
-        /* Add classes to plugin elements */
-        $outer.addClass(options.classPrefix + '-outer');
-        $area.addClass(options.classPrefix + '-selection');
-        for (i = 0; i++ < 4;)
-            $($border[i-1]).addClass(options.classPrefix + '-border' + i);
-
-        /* Apply style options */
-        styleOptions($area, { selectionColor: 'background-color',
-            selectionOpacity: 'opacity' });
-        styleOptions($border, { borderOpacity: 'opacity',
-            borderWidth: 'border-width' });
-        styleOptions($outer, { outerColor: 'background-color',
-            outerOpacity: 'opacity' });
-        if (o = options.borderColor1)
-            $($border[0]).css({ borderStyle: 'solid', borderColor: o });
-        if (o = options.borderColor2)
-            $($border[1]).css({ borderStyle: 'dashed', borderColor: o });
-
-        /* Append all the selection area elements to the container box */
-        $box.append($area.add($border).add($areaOpera).add($handles));
-
-        if ($.browser.msie) {
-            if (o = $outer.css('filter').match(/opacity=(\d+)/))
-                $outer.css('opacity', o[1]/100);
-            if (o = $border.css('filter').match(/opacity=(\d+)/))
-                $border.css('opacity', o[1]/100);
-        }
-
-        if (newOptions.hide)
-            hide($box.add($outer));
-        else if (newOptions.show && imgLoaded) {
-            shown = true;
-            $box.add($outer).fadeIn(options.fadeSpeed||0);
-            doUpdate();
-        }
-
-        /* Calculate the aspect ratio factor */
-        aspectRatio = (d = (options.aspectRatio || '').split(/:/))[0] / d[1];
-
-        $img.add($outer).unbind('mousedown', imgMouseDown);
-
-        if (options.disable || options.enable === false) {
-            /* Disable the plugin */
-            $box.unbind('mousemove', areaMouseMove).unbind('mousedown', areaMouseDown);
-            $(window).unbind('resize', windowResize);
-        }
-        else {
-            if (options.enable || options.disable === false) {
-                /* Enable the plugin */
-                if (options.resizable || options.movable)
-                    $box.mousemove(areaMouseMove).mousedown(areaMouseDown);
-
-                $(window).resize(windowResize);
-            }
-
-            if (!options.persistent)
-                $img.add($outer).mousedown(imgMouseDown);
-        }
-
-        options.enable = options.disable = undefined;
-    }
-
-    /**
-     * Remove plugin completely
-     */
-    this.remove = function () {
-        /*
-         * Call setOptions with { disable: true } to unbind the event handlers
-         */
-        setOptions({ disable: true });
-        $box.add($outer).remove();
-    };
-
-    /*
-     * Public API
-     */
-
-    /**
-     * Get current options
-     *
-     * @return An object containing the set of options currently in use
-     */
-    this.getOptions = function () { return options; };
-
-    /**
-     * Set plugin options
-     *
-     * @param newOptions
-     *            The new options object
-     */
-    this.setOptions = setOptions;
-
-    /**
-     * Get the current selection
-     *
-     * @param noScale
-     *            If set to <code>true</code>, scaling is not applied to the
-     *            returned selection
-     * @return Selection object
-     */
-    this.getSelection = getSelection;
-
-    /**
-     * Set the current selection
-     *
-     * @param x1
-     *            X coordinate of the upper left corner of the selection area
-     * @param y1
-     *            Y coordinate of the upper left corner of the selection area
-     * @param x2
-     *            X coordinate of the lower right corner of the selection area
-     * @param y2
-     *            Y coordinate of the lower right corner of the selection area
-     * @param noScale
-     *            If set to <code>true</code>, scaling is not applied to the
-     *            new selection
-     */
-    this.setSelection = setSelection;
-
-    /**
-     * Cancel selection
-     */
-    this.cancelSelection = cancelSelection;
-
-    /**
-     * Update plugin elements
-     *
-     * @param resetKeyPress
-     *            If set to <code>false</code>, this instance's keypress
-     *            event handler is not activated
-     */
-    this.update = doUpdate;
-
-    /*
-     * Traverse the image's parent elements (up to <body>) and find the
-     * highest z-index
-     */
-    $p = $img;
-
-    while ($p.length) {
-        zIndex = max(zIndex,
-            !isNaN($p.css('z-index')) ? $p.css('z-index') : zIndex);
-        /* Also check if any of the ancestor elements has fixed position */
-        if ($p.css('position') == 'fixed')
-            position = 'fixed';
-
-        $p = $p.parent(':not(body)');
-    }
-
-    /*
-     * If z-index is given as an option, it overrides the one found by the
-     * above loop
-     */
-    zIndex = options.zIndex || zIndex;
-
-    if ($.browser.msie)
-        $img.attr('unselectable', 'on');
-
-    /*
-     * In MSIE and WebKit, we need to use the keydown event instead of keypress
-     */
-    $.imgAreaSelect.keyPress = $.browser.msie ||
-        $.browser.safari ? 'keydown' : 'keypress';
-
-    /*
-     * There is a bug affecting the CSS cursor property in Opera (observed in
-     * versions up to 10.00) that prevents the cursor from being updated unless
-     * the mouse leaves and enters the element again. To trigger the mouseover
-     * event, we're adding an additional div to $box and we're going to toggle
-     * it when mouse moves inside the selection area.
-     */
-    if ($.browser.opera)
-        $areaOpera = div().css({ width: '100%', height: '100%',
-            position: 'absolute', zIndex: zIndex + 2 || 2 });
-
-    /*
-     * We initially set visibility to "hidden" as a workaround for a weird
-     * behaviour observed in Google Chrome 1.0.154.53 (on Windows XP). Normally
-     * we would just set display to "none", but, for some reason, if we do so
-     * then Chrome refuses to later display the element with .show() or
-     * .fadeIn().
-     */
-    $box.add($outer).css({ visibility: 'hidden', position: position,
-        overflow: 'hidden', zIndex: zIndex || '0' });
-    $box.css({ zIndex: zIndex + 2 || 2 });
-    $area.add($border).css({ position: 'absolute', fontSize: 0 });
-
-    /*
-     * If the image has been fully loaded, or if it is not really an image (eg.
-     * a div), call imgLoad() immediately; otherwise, bind it to be called once
-     * on image load event.
-     */
-    img.complete || img.readyState == 'complete' || !$img.is('img') ?
-        imgLoad() : $img.one('load', imgLoad);
-
-    /*
-     * MSIE 9.0 doesn't always fire the image load event -- resetting the src
-     * attribute seems to trigger it. The check is for version 7 and above to
-     * accommodate for MSIE 9 running in compatibility mode.
-     */
-   if (!imgLoaded && $.browser.msie && $.browser.version >= 7)
-        img.src = img.src;
-};
-
-/**
- * Invoke imgAreaSelect on a jQuery object containing the image(s)
- *
- * @param options
- *            Options object
- * @return The jQuery object or a reference to imgAreaSelect instance (if the
- *         <code>instance</code> option was specified)
- */
-$.fn.imgAreaSelect = function (options) {
-    options = options || {};
-
-    this.each(function () {
-        /* Is there already an imgAreaSelect instance bound to this element? */
-        if ($(this).data('imgAreaSelect')) {
-            /* Yes there is -- is it supposed to be removed? */
-            if (options.remove) {
-                /* Remove the plugin */
-                $(this).data('imgAreaSelect').remove();
-                $(this).removeData('imgAreaSelect');
-            }
-            else
-                /* Reset options */
-                $(this).data('imgAreaSelect').setOptions(options);
-        }
-        else if (!options.remove) {
-            /* No exising instance -- create a new one */
-
-            /*
-             * If neither the "enable" nor the "disable" option is present, add
-             * "enable" as the default
-             */
-            if (options.enable === undefined && options.disable === undefined)
-                options.enable = true;
-
-            $(this).data('imgAreaSelect', new $.imgAreaSelect(this, options));
-        }
-    });
-
-    if (options.instance)
-        /*
-         * Return the imgAreaSelect instance bound to the first element in the
-         * set
-         */
-        return $(this).data('imgAreaSelect');
-
-    return this;
-};
-
-})(jQuery);
--- a/web/wp-includes/js/imgareaselect/jquery.imgareaselect.js	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/js/imgareaselect/jquery.imgareaselect.js	Wed Dec 19 17:46:52 2012 -0800
@@ -1,1 +1,1198 @@
-(function(e){var b=Math.abs,a=Math.max,d=Math.min,c=Math.round;function f(){return e("<div/>")}e.imgAreaSelect=function(s,X){var az=e(s),Z,av=f(),ai=f(),K=f().add(f()).add(f()).add(f()),ab=f().add(f()).add(f()).add(f()),O=e([]),V,n,q,aC={left:0,top:0},Q,j,C,P={left:0,top:0},D=0,ag="absolute",T,S,ad,ac,L,E,U,W,am,Y,N,A,aD,z,aB,y={x1:0,y1:0,x2:0,y2:0,width:0,height:0},p=document.documentElement,l,au,ap,aj,af,aq,x;function J(h){return h+aC.left-P.left}function I(h){return h+aC.top-P.top}function H(h){return h-aC.left+P.left}function B(h){return h-aC.top+P.top}function ao(h){return h.pageX-P.left}function al(h){return h.pageY-P.top}function G(h){var o=h||ad,i=h||ac;return{x1:c(y.x1*o),y1:c(y.y1*i),x2:c(y.x2*o),y2:c(y.y2*i),width:c(y.x2*o)-c(y.x1*o),height:c(y.y2*i)-c(y.y1*i)}}function ah(i,w,h,o,aE){var aG=aE||ad,aF=aE||ac;y={x1:c(i/aG||0),y1:c(w/aF||0),x2:c(h/aG||0),y2:c(o/aF||0)};y.width=y.x2-y.x1;y.height=y.y2-y.y1}function ar(){if(!az.width()){return}aC={left:c(az.offset().left),top:c(az.offset().top)};Q=az.innerWidth();j=az.innerHeight();aC.top+=(az.outerHeight()-j)>>1;aC.left+=(az.outerWidth()-Q)>>1;E=c(X.minWidth/ad)||0;U=c(X.minHeight/ac)||0;W=c(d(X.maxWidth/ad||1<<24,Q));am=c(d(X.maxHeight/ac||1<<24,j));if(e().jquery=="1.3.2"&&ag=="fixed"&&!p.getBoundingClientRect){aC.top+=a(document.body.scrollTop,p.scrollTop);aC.left+=a(document.body.scrollLeft,p.scrollLeft)}P=/absolute|relative/.test(C.css("position"))?{left:c(C.offset().left)-C.scrollLeft(),top:c(C.offset().top)-C.scrollTop()}:ag=="fixed"?{left:e(document).scrollLeft(),top:e(document).scrollTop()}:{left:0,top:0};n=J(0);q=I(0);if(y.x2>Q||y.y2>j){ay()}}function aa(h){if(!N){return}av.css({left:J(y.x1),top:I(y.y1)}).add(ai).width(af=y.width).height(aq=y.height);ai.add(K).add(O).css({left:0,top:0});K.width(a(af-K.outerWidth()+K.innerWidth(),0)).height(a(aq-K.outerHeight()+K.innerHeight(),0));e(ab[0]).css({left:n,top:q,width:y.x1,height:j});e(ab[1]).css({left:n+y.x1,top:q,width:af,height:y.y1});e(ab[2]).css({left:n+y.x2,top:q,width:Q-y.x2,height:j});e(ab[3]).css({left:n+y.x1,top:q+y.y2,width:af,height:j-y.y2});af-=O.outerWidth();aq-=O.outerHeight();switch(O.length){case 8:e(O[4]).css({left:af>>1});e(O[5]).css({left:af,top:aq>>1});e(O[6]).css({left:af>>1,top:aq});e(O[7]).css({top:aq>>1});case 4:O.slice(1,3).css({left:af});O.slice(2,4).css({top:aq})}if(h!==false){if(e.imgAreaSelect.keyPress!=aw){e(document).unbind(e.imgAreaSelect.keyPress,e.imgAreaSelect.onKeyPress)}if(X.keys){e(document)[e.imgAreaSelect.keyPress](e.imgAreaSelect.onKeyPress=aw)}}if(e.browser.msie&&K.outerWidth()-K.innerWidth()==2){K.css("margin",0);setTimeout(function(){K.css("margin","auto")},0)}}function u(h){ar();aa(h);A=J(y.x1);aD=I(y.y1);z=J(y.x2);aB=I(y.y2)}function ak(h,i){X.fadeSpeed?h.fadeOut(X.fadeSpeed,i):h.hide()}function F(i){var h=H(ao(i))-y.x1,o=B(al(i))-y.y1;if(!x){ar();x=true;av.one("mouseout",function(){x=false})}L="";if(X.resizable){if(o<=X.resizeMargin){L="n"}else{if(o>=y.height-X.resizeMargin){L="s"}}if(h<=X.resizeMargin){L+="w"}else{if(h>=y.width-X.resizeMargin){L+="e"}}}av.css("cursor",L?L+"-resize":X.movable?"move":"");if(V){V.toggle()}}function an(h){e("body").css("cursor","");if(X.autoHide||y.width*y.height==0){ak(av.add(ab),function(){e(this).hide()})}e(document).unbind("mousemove",ae);av.mousemove(F);X.onSelectEnd(s,G())}function t(h){if(h.which!=1){return false}ar();if(L){e("body").css("cursor",L+"-resize");A=J(y[/w/.test(L)?"x2":"x1"]);aD=I(y[/n/.test(L)?"y2":"y1"]);e(document).mousemove(ae).one("mouseup",an);av.unbind("mousemove",F)}else{if(X.movable){T=n+y.x1-ao(h);S=q+y.y1-al(h);av.unbind("mousemove",F);e(document).mousemove(g).one("mouseup",function(){X.onSelectEnd(s,G());e(document).unbind("mousemove",g);av.mousemove(F)})}else{az.mousedown(h)}}return false}function r(h){if(Y){if(h){z=a(n,d(n+Q,A+b(aB-aD)*Y*(z>A||-1)));aB=c(a(q,d(q+j,aD+b(z-A)/Y*(aB>aD||-1))));z=c(z)}else{aB=a(q,d(q+j,aD+b(z-A)/Y*(aB>aD||-1)));z=c(a(n,d(n+Q,A+b(aB-aD)*Y*(z>A||-1))));aB=c(aB)}}}function ay(){A=d(A,n+Q);aD=d(aD,q+j);if(b(z-A)<E){z=A-E*(z<A||-1);if(z<n){A=n+E}else{if(z>n+Q){A=n+Q-E}}}if(b(aB-aD)<U){aB=aD-U*(aB<aD||-1);if(aB<q){aD=q+U}else{if(aB>q+j){aD=q+j-U}}}z=a(n,d(z,n+Q));aB=a(q,d(aB,q+j));r(b(z-A)<b(aB-aD)*Y);if(b(z-A)>W){z=A-W*(z<A||-1);r()}if(b(aB-aD)>am){aB=aD-am*(aB<aD||-1);r(true)}y={x1:H(d(A,z)),x2:H(a(A,z)),y1:B(d(aD,aB)),y2:B(a(aD,aB)),width:b(z-A),height:b(aB-aD)};aa();X.onSelectChange(s,G())}function ae(h){z=/w|e|^$/.test(L)||Y?ao(h):J(y.x2);aB=/n|s|^$/.test(L)||Y?al(h):I(y.y2);ay();return false}function R(h,i){z=(A=h)+y.width;aB=(aD=i)+y.height;e.extend(y,{x1:H(A),y1:B(aD),x2:H(z),y2:B(aB)});aa();X.onSelectChange(s,G())}function g(h){A=a(n,d(T+ao(h),n+Q-y.width));aD=a(q,d(S+al(h),q+j-y.height));R(A,aD);h.preventDefault();return false}function aA(){e(document).unbind("mousemove",aA);ar();z=A;aB=aD;ay();L="";if(!ab.is(":visible")){av.add(ab).hide().fadeIn(X.fadeSpeed||0)}N=true;e(document).unbind("mouseup",at).mousemove(ae).one("mouseup",an);av.unbind("mousemove",F);X.onSelectStart(s,G())}function at(){e(document).unbind("mousemove",aA).unbind("mouseup",at);ak(av.add(ab));ah(H(A),B(aD),H(A),B(aD));if(!(this instanceof e.imgAreaSelect)){X.onSelectChange(s,G());X.onSelectEnd(s,G())}}function m(h){if(h.which!=1||ab.is(":animated")){return false}ar();T=A=ao(h);S=aD=al(h);e(document).mousemove(aA).mouseup(at);return false}function v(){u(false)}function ax(){Z=true;M(X=e.extend({classPrefix:"imgareaselect",movable:true,parent:"body",resizable:true,resizeMargin:10,onInit:function(){},onSelectStart:function(){},onSelectChange:function(){},onSelectEnd:function(){}},X));av.add(ab).css({visibility:""});if(X.show){N=true;ar();aa();av.add(ab).hide().fadeIn(X.fadeSpeed||0)}setTimeout(function(){X.onInit(s,G())},0)}var aw=function(w){var h=X.keys,aE,o,i=w.keyCode;aE=!isNaN(h.alt)&&(w.altKey||w.originalEvent.altKey)?h.alt:!isNaN(h.ctrl)&&w.ctrlKey?h.ctrl:!isNaN(h.shift)&&w.shiftKey?h.shift:!isNaN(h.arrows)?h.arrows:10;if(h.arrows=="resize"||(h.shift=="resize"&&w.shiftKey)||(h.ctrl=="resize"&&w.ctrlKey)||(h.alt=="resize"&&(w.altKey||w.originalEvent.altKey))){switch(i){case 37:aE=-aE;case 39:o=a(A,z);A=d(A,z);z=a(o+aE,A);r();break;case 38:aE=-aE;case 40:o=a(aD,aB);aD=d(aD,aB);aB=a(o+aE,aD);r(true);break;default:return}ay()}else{A=d(A,z);aD=d(aD,aB);switch(i){case 37:R(a(A-aE,n),aD);break;case 38:R(A,a(aD-aE,q));break;case 39:R(A+d(aE,Q-H(z)),aD);break;case 40:R(A,aD+d(aE,j-B(aB)));break;default:return}}return false};function k(h,o){for(var i in o){if(X[i]!==undefined){h.css(o[i],X[i])}}}function M(h){if(h.parent){(C=e(h.parent)).append(av.add(ab))}e.extend(X,h);ar();if(h.handles!=null){O.remove();O=e([]);ap=h.handles?h.handles=="corners"?4:8:0;while(ap--){O=O.add(f())}O.addClass(X.classPrefix+"-handle").css({position:"absolute",fontSize:0,zIndex:D+1||1});if(!parseInt(O.css("width"))>=0){O.width(5).height(5)}if(aj=X.borderWidth){O.css({borderWidth:aj,borderStyle:"solid"})}k(O,{borderColor1:"border-color",borderColor2:"background-color",borderOpacity:"opacity"})}ad=X.imageWidth/Q||1;ac=X.imageHeight/j||1;if(h.x1!=null){ah(h.x1,h.y1,h.x2,h.y2);h.show=!h.hide}if(h.keys){X.keys=e.extend({shift:1,ctrl:"resize"},h.keys)}ab.addClass(X.classPrefix+"-outer");ai.addClass(X.classPrefix+"-selection");for(ap=0;ap++<4;){e(K[ap-1]).addClass(X.classPrefix+"-border"+ap)}k(ai,{selectionColor:"background-color",selectionOpacity:"opacity"});k(K,{borderOpacity:"opacity",borderWidth:"border-width"});k(ab,{outerColor:"background-color",outerOpacity:"opacity"});if(aj=X.borderColor1){e(K[0]).css({borderStyle:"solid",borderColor:aj})}if(aj=X.borderColor2){e(K[1]).css({borderStyle:"dashed",borderColor:aj})}av.append(ai.add(K).add(V).add(O));if(e.browser.msie){if(aj=ab.css("filter").match(/opacity=(\d+)/)){ab.css("opacity",aj[1]/100)}if(aj=K.css("filter").match(/opacity=(\d+)/)){K.css("opacity",aj[1]/100)}}if(h.hide){ak(av.add(ab))}else{if(h.show&&Z){N=true;av.add(ab).fadeIn(X.fadeSpeed||0);u()}}Y=(au=(X.aspectRatio||"").split(/:/))[0]/au[1];az.add(ab).unbind("mousedown",m);if(X.disable||X.enable===false){av.unbind("mousemove",F).unbind("mousedown",t);e(window).unbind("resize",v)}else{if(X.enable||X.disable===false){if(X.resizable||X.movable){av.mousemove(F).mousedown(t)}e(window).resize(v)}if(!X.persistent){az.add(ab).mousedown(m)}}X.enable=X.disable=undefined}this.remove=function(){M({disable:true});av.add(ab).remove()};this.getOptions=function(){return X};this.setOptions=M;this.getSelection=G;this.setSelection=ah;this.cancelSelection=at;this.update=u;l=az;while(l.length){D=a(D,!isNaN(l.css("z-index"))?l.css("z-index"):D);if(l.css("position")=="fixed"){ag="fixed"}l=l.parent(":not(body)")}D=X.zIndex||D;if(e.browser.msie){az.attr("unselectable","on")}e.imgAreaSelect.keyPress=e.browser.msie||e.browser.safari?"keydown":"keypress";if(e.browser.opera){V=f().css({width:"100%",height:"100%",position:"absolute",zIndex:D+2||2})}av.add(ab).css({visibility:"hidden",position:ag,overflow:"hidden",zIndex:D||"0"});av.css({zIndex:D+2||2});ai.add(K).css({position:"absolute",fontSize:0});s.complete||s.readyState=="complete"||!az.is("img")?ax():az.one("load",ax);if(!Z&&e.browser.msie&&e.browser.version>=7){s.src=s.src}};e.fn.imgAreaSelect=function(g){g=g||{};this.each(function(){if(e(this).data("imgAreaSelect")){if(g.remove){e(this).data("imgAreaSelect").remove();e(this).removeData("imgAreaSelect")}else{e(this).data("imgAreaSelect").setOptions(g)}}else{if(!g.remove){if(g.enable===undefined&&g.disable===undefined){g.enable=true}e(this).data("imgAreaSelect",new e.imgAreaSelect(this,g))}}});if(g.instance){return e(this).data("imgAreaSelect")}return this}})(jQuery);
\ No newline at end of file
+/*
+ * imgAreaSelect jQuery plugin
+ * version 0.9.9
+ *
+ * Copyright (c) 2008-2011 Michal Wojciechowski (odyniec.net)
+ *
+ * Dual licensed under the MIT (MIT-LICENSE.txt)
+ * and GPL (GPL-LICENSE.txt) licenses.
+ *
+ * http://odyniec.net/projects/imgareaselect/
+ *
+ */
+
+(function($) {
+
+/*
+ * Math functions will be used extensively, so it's convenient to make a few
+ * shortcuts
+ */
+var abs = Math.abs,
+    max = Math.max,
+    min = Math.min,
+    round = Math.round;
+
+/**
+ * Create a new HTML div element
+ *
+ * @return A jQuery object representing the new element
+ */
+function div() {
+    return $('<div/>');
+}
+
+/**
+ * imgAreaSelect initialization
+ *
+ * @param img
+ *            A HTML image element to attach the plugin to
+ * @param options
+ *            An options object
+ */
+$.imgAreaSelect = function (img, options) {
+    var
+        /* jQuery object representing the image */
+        $img = $(img),
+
+        /* Has the image finished loading? */
+        imgLoaded,
+
+        /* Plugin elements */
+
+        /* Container box */
+        $box = div(),
+        /* Selection area */
+        $area = div(),
+        /* Border (four divs) */
+        $border = div().add(div()).add(div()).add(div()),
+        /* Outer area (four divs) */
+        $outer = div().add(div()).add(div()).add(div()),
+        /* Handles (empty by default, initialized in setOptions()) */
+        $handles = $([]),
+
+        /*
+         * Additional element to work around a cursor problem in Opera
+         * (explained later)
+         */
+        $areaOpera,
+
+        /* Image position (relative to viewport) */
+        left, top,
+
+        /* Image offset (as returned by .offset()) */
+        imgOfs = { left: 0, top: 0 },
+
+        /* Image dimensions (as returned by .width() and .height()) */
+        imgWidth, imgHeight,
+
+        /*
+         * jQuery object representing the parent element that the plugin
+         * elements are appended to
+         */
+        $parent,
+
+        /* Parent element offset (as returned by .offset()) */
+        parOfs = { left: 0, top: 0 },
+
+        /* Base z-index for plugin elements */
+        zIndex = 0,
+
+        /* Plugin elements position */
+        position = 'absolute',
+
+        /* X/Y coordinates of the starting point for move/resize operations */
+        startX, startY,
+
+        /* Horizontal and vertical scaling factors */
+        scaleX, scaleY,
+
+        /* Current resize mode ("nw", "se", etc.) */
+        resize,
+
+        /* Selection area constraints */
+        minWidth, minHeight, maxWidth, maxHeight,
+
+        /* Aspect ratio to maintain (floating point number) */
+        aspectRatio,
+
+        /* Are the plugin elements currently displayed? */
+        shown,
+
+        /* Current selection (relative to parent element) */
+        x1, y1, x2, y2,
+
+        /* Current selection (relative to scaled image) */
+        selection = { x1: 0, y1: 0, x2: 0, y2: 0, width: 0, height: 0 },
+
+        /* Document element */
+        docElem = document.documentElement,
+
+        /* Various helper variables used throughout the code */
+        $p, d, i, o, w, h, adjusted;
+
+    /*
+     * Translate selection coordinates (relative to scaled image) to viewport
+     * coordinates (relative to parent element)
+     */
+
+    /**
+     * Translate selection X to viewport X
+     *
+     * @param x
+     *            Selection X
+     * @return Viewport X
+     */
+    function viewX(x) {
+        return x + imgOfs.left - parOfs.left;
+    }
+
+    /**
+     * Translate selection Y to viewport Y
+     *
+     * @param y
+     *            Selection Y
+     * @return Viewport Y
+     */
+    function viewY(y) {
+        return y + imgOfs.top - parOfs.top;
+    }
+
+    /*
+     * Translate viewport coordinates to selection coordinates
+     */
+
+    /**
+     * Translate viewport X to selection X
+     *
+     * @param x
+     *            Viewport X
+     * @return Selection X
+     */
+    function selX(x) {
+        return x - imgOfs.left + parOfs.left;
+    }
+
+    /**
+     * Translate viewport Y to selection Y
+     *
+     * @param y
+     *            Viewport Y
+     * @return Selection Y
+     */
+    function selY(y) {
+        return y - imgOfs.top + parOfs.top;
+    }
+
+    /*
+     * Translate event coordinates (relative to document) to viewport
+     * coordinates
+     */
+
+    /**
+     * Get event X and translate it to viewport X
+     *
+     * @param event
+     *            The event object
+     * @return Viewport X
+     */
+    function evX(event) {
+        return event.pageX - parOfs.left;
+    }
+
+    /**
+     * Get event Y and translate it to viewport Y
+     *
+     * @param event
+     *            The event object
+     * @return Viewport Y
+     */
+    function evY(event) {
+        return event.pageY - parOfs.top;
+    }
+
+    /**
+     * Get the current selection
+     *
+     * @param noScale
+     *            If set to <code>true</code>, scaling is not applied to the
+     *            returned selection
+     * @return Selection object
+     */
+    function getSelection(noScale) {
+        var sx = noScale || scaleX, sy = noScale || scaleY;
+
+        return { x1: round(selection.x1 * sx),
+            y1: round(selection.y1 * sy),
+            x2: round(selection.x2 * sx),
+            y2: round(selection.y2 * sy),
+            width: round(selection.x2 * sx) - round(selection.x1 * sx),
+            height: round(selection.y2 * sy) - round(selection.y1 * sy) };
+    }
+
+    /**
+     * Set the current selection
+     *
+     * @param x1
+     *            X coordinate of the upper left corner of the selection area
+     * @param y1
+     *            Y coordinate of the upper left corner of the selection area
+     * @param x2
+     *            X coordinate of the lower right corner of the selection area
+     * @param y2
+     *            Y coordinate of the lower right corner of the selection area
+     * @param noScale
+     *            If set to <code>true</code>, scaling is not applied to the
+     *            new selection
+     */
+    function setSelection(x1, y1, x2, y2, noScale) {
+        var sx = noScale || scaleX, sy = noScale || scaleY;
+
+        selection = {
+            x1: round(x1 / sx || 0),
+            y1: round(y1 / sy || 0),
+            x2: round(x2 / sx || 0),
+            y2: round(y2 / sy || 0)
+        };
+
+        selection.width = selection.x2 - selection.x1;
+        selection.height = selection.y2 - selection.y1;
+    }
+
+    /**
+     * Recalculate image and parent offsets
+     */
+    function adjust() {
+        /*
+         * Do not adjust if image width is not a positive number. This might
+         * happen when imgAreaSelect is put on a parent element which is then
+         * hidden.
+         */
+        if (!$img.width())
+            return;
+
+        /*
+         * Get image offset. The .offset() method returns float values, so they
+         * need to be rounded.
+         */
+        imgOfs = { left: round($img.offset().left), top: round($img.offset().top) };
+
+        /* Get image dimensions */
+        imgWidth = $img.innerWidth();
+        imgHeight = $img.innerHeight();
+
+        imgOfs.top += ($img.outerHeight() - imgHeight) >> 1;
+        imgOfs.left += ($img.outerWidth() - imgWidth) >> 1;
+
+        /* Set minimum and maximum selection area dimensions */
+        minWidth = round(options.minWidth / scaleX) || 0;
+        minHeight = round(options.minHeight / scaleY) || 0;
+        maxWidth = round(min(options.maxWidth / scaleX || 1<<24, imgWidth));
+        maxHeight = round(min(options.maxHeight / scaleY || 1<<24, imgHeight));
+
+        /*
+         * Workaround for jQuery 1.3.2 incorrect offset calculation, originally
+         * observed in Safari 3. Firefox 2 is also affected.
+         */
+        if ($().jquery == '1.3.2' && position == 'fixed' &&
+            !docElem['getBoundingClientRect'])
+        {
+            imgOfs.top += max(document.body.scrollTop, docElem.scrollTop);
+            imgOfs.left += max(document.body.scrollLeft, docElem.scrollLeft);
+        }
+
+        /* Determine parent element offset */
+        parOfs = /absolute|relative/.test($parent.css('position')) ?
+            { left: round($parent.offset().left) - $parent.scrollLeft(),
+                top: round($parent.offset().top) - $parent.scrollTop() } :
+            position == 'fixed' ?
+                { left: $(document).scrollLeft(), top: $(document).scrollTop() } :
+                { left: 0, top: 0 };
+
+        left = viewX(0);
+        top = viewY(0);
+
+        /*
+         * Check if selection area is within image boundaries, adjust if
+         * necessary
+         */
+        if (selection.x2 > imgWidth || selection.y2 > imgHeight)
+            doResize();
+    }
+
+    /**
+     * Update plugin elements
+     *
+     * @param resetKeyPress
+     *            If set to <code>false</code>, this instance's keypress
+     *            event handler is not activated
+     */
+    function update(resetKeyPress) {
+        /* If plugin elements are hidden, do nothing */
+        if (!shown) return;
+
+        /*
+         * Set the position and size of the container box and the selection area
+         * inside it
+         */
+        $box.css({ left: viewX(selection.x1), top: viewY(selection.y1) })
+            .add($area).width(w = selection.width).height(h = selection.height);
+
+        /*
+         * Reset the position of selection area, borders, and handles (IE6/IE7
+         * position them incorrectly if we don't do this)
+         */
+        $area.add($border).add($handles).css({ left: 0, top: 0 });
+
+        /* Set border dimensions */
+        $border
+            .width(max(w - $border.outerWidth() + $border.innerWidth(), 0))
+            .height(max(h - $border.outerHeight() + $border.innerHeight(), 0));
+
+        /* Arrange the outer area elements */
+        $($outer[0]).css({ left: left, top: top,
+            width: selection.x1, height: imgHeight });
+        $($outer[1]).css({ left: left + selection.x1, top: top,
+            width: w, height: selection.y1 });
+        $($outer[2]).css({ left: left + selection.x2, top: top,
+            width: imgWidth - selection.x2, height: imgHeight });
+        $($outer[3]).css({ left: left + selection.x1, top: top + selection.y2,
+            width: w, height: imgHeight - selection.y2 });
+
+        w -= $handles.outerWidth();
+        h -= $handles.outerHeight();
+
+        /* Arrange handles */
+        switch ($handles.length) {
+        case 8:
+            $($handles[4]).css({ left: w >> 1 });
+            $($handles[5]).css({ left: w, top: h >> 1 });
+            $($handles[6]).css({ left: w >> 1, top: h });
+            $($handles[7]).css({ top: h >> 1 });
+        case 4:
+            $handles.slice(1,3).css({ left: w });
+            $handles.slice(2,4).css({ top: h });
+        }
+
+        if (resetKeyPress !== false) {
+            /*
+             * Need to reset the document keypress event handler -- unbind the
+             * current handler
+             */
+            if ($.imgAreaSelect.keyPress != docKeyPress)
+                $(document).unbind($.imgAreaSelect.keyPress,
+                    $.imgAreaSelect.onKeyPress);
+
+            if (options.keys)
+                /*
+                 * Set the document keypress event handler to this instance's
+                 * docKeyPress() function
+                 */
+                $(document)[$.imgAreaSelect.keyPress](
+                    $.imgAreaSelect.onKeyPress = docKeyPress);
+        }
+
+        /*
+         * Internet Explorer displays 1px-wide dashed borders incorrectly by
+         * filling the spaces between dashes with white. Toggling the margin
+         * property between 0 and "auto" fixes this in IE6 and IE7 (IE8 is still
+         * broken). This workaround is not perfect, as it requires setTimeout()
+         * and thus causes the border to flicker a bit, but I haven't found a
+         * better solution.
+         *
+         * Note: This only happens with CSS borders, set with the borderWidth,
+         * borderOpacity, borderColor1, and borderColor2 options (which are now
+         * deprecated). Borders created with GIF background images are fine.
+         */
+        if ($.browser.msie && $border.outerWidth() - $border.innerWidth() == 2) {
+            $border.css('margin', 0);
+            setTimeout(function () { $border.css('margin', 'auto'); }, 0);
+        }
+    }
+
+    /**
+     * Do the complete update sequence: recalculate offsets, update the
+     * elements, and set the correct values of x1, y1, x2, and y2.
+     *
+     * @param resetKeyPress
+     *            If set to <code>false</code>, this instance's keypress
+     *            event handler is not activated
+     */
+    function doUpdate(resetKeyPress) {
+        adjust();
+        update(resetKeyPress);
+        x1 = viewX(selection.x1); y1 = viewY(selection.y1);
+        x2 = viewX(selection.x2); y2 = viewY(selection.y2);
+    }
+
+    /**
+     * Hide or fade out an element (or multiple elements)
+     *
+     * @param $elem
+     *            A jQuery object containing the element(s) to hide/fade out
+     * @param fn
+     *            Callback function to be called when fadeOut() completes
+     */
+    function hide($elem, fn) {
+        options.fadeSpeed ? $elem.fadeOut(options.fadeSpeed, fn) : $elem.hide();
+    }
+
+    /**
+     * Selection area mousemove event handler
+     *
+     * @param event
+     *            The event object
+     */
+    function areaMouseMove(event) {
+        var x = selX(evX(event)) - selection.x1,
+            y = selY(evY(event)) - selection.y1;
+
+        if (!adjusted) {
+            adjust();
+            adjusted = true;
+
+            $box.one('mouseout', function () { adjusted = false; });
+        }
+
+        /* Clear the resize mode */
+        resize = '';
+
+        if (options.resizable) {
+            /*
+             * Check if the mouse pointer is over the resize margin area and set
+             * the resize mode accordingly
+             */
+            if (y <= options.resizeMargin)
+                resize = 'n';
+            else if (y >= selection.height - options.resizeMargin)
+                resize = 's';
+            if (x <= options.resizeMargin)
+                resize += 'w';
+            else if (x >= selection.width - options.resizeMargin)
+                resize += 'e';
+        }
+
+        $box.css('cursor', resize ? resize + '-resize' :
+            options.movable ? 'move' : '');
+        if ($areaOpera)
+            $areaOpera.toggle();
+    }
+
+    /**
+     * Document mouseup event handler
+     *
+     * @param event
+     *            The event object
+     */
+    function docMouseUp(event) {
+        /* Set back the default cursor */
+        $('body').css('cursor', '');
+        /*
+         * If autoHide is enabled, or if the selection has zero width/height,
+         * hide the selection and the outer area
+         */
+        if (options.autoHide || selection.width * selection.height == 0)
+            hide($box.add($outer), function () { $(this).hide(); });
+
+        $(document).unbind('mousemove', selectingMouseMove);
+        $box.mousemove(areaMouseMove);
+
+        options.onSelectEnd(img, getSelection());
+    }
+
+    /**
+     * Selection area mousedown event handler
+     *
+     * @param event
+     *            The event object
+     * @return false
+     */
+    function areaMouseDown(event) {
+        if (event.which != 1) return false;
+
+        adjust();
+
+        if (resize) {
+            /* Resize mode is in effect */
+            $('body').css('cursor', resize + '-resize');
+
+            x1 = viewX(selection[/w/.test(resize) ? 'x2' : 'x1']);
+            y1 = viewY(selection[/n/.test(resize) ? 'y2' : 'y1']);
+
+            $(document).mousemove(selectingMouseMove)
+                .one('mouseup', docMouseUp);
+            $box.unbind('mousemove', areaMouseMove);
+        }
+        else if (options.movable) {
+            startX = left + selection.x1 - evX(event);
+            startY = top + selection.y1 - evY(event);
+
+            $box.unbind('mousemove', areaMouseMove);
+
+            $(document).mousemove(movingMouseMove)
+                .one('mouseup', function () {
+                    options.onSelectEnd(img, getSelection());
+
+                    $(document).unbind('mousemove', movingMouseMove);
+                    $box.mousemove(areaMouseMove);
+                });
+        }
+        else
+            $img.mousedown(event);
+
+        return false;
+    }
+
+    /**
+     * Adjust the x2/y2 coordinates to maintain aspect ratio (if defined)
+     *
+     * @param xFirst
+     *            If set to <code>true</code>, calculate x2 first. Otherwise,
+     *            calculate y2 first.
+     */
+    function fixAspectRatio(xFirst) {
+        if (aspectRatio)
+            if (xFirst) {
+                x2 = max(left, min(left + imgWidth,
+                    x1 + abs(y2 - y1) * aspectRatio * (x2 > x1 || -1)));
+                y2 = round(max(top, min(top + imgHeight,
+                    y1 + abs(x2 - x1) / aspectRatio * (y2 > y1 || -1))));
+                x2 = round(x2);
+            }
+            else {
+                y2 = max(top, min(top + imgHeight,
+                    y1 + abs(x2 - x1) / aspectRatio * (y2 > y1 || -1)));
+                x2 = round(max(left, min(left + imgWidth,
+                    x1 + abs(y2 - y1) * aspectRatio * (x2 > x1 || -1))));
+                y2 = round(y2);
+            }
+    }
+
+    /**
+     * Resize the selection area respecting the minimum/maximum dimensions and
+     * aspect ratio
+     */
+    function doResize() {
+        /*
+         * Make sure the top left corner of the selection area stays within
+         * image boundaries (it might not if the image source was dynamically
+         * changed).
+         */
+        x1 = min(x1, left + imgWidth);
+        y1 = min(y1, top + imgHeight);
+
+        if (abs(x2 - x1) < minWidth) {
+            /* Selection width is smaller than minWidth */
+            x2 = x1 - minWidth * (x2 < x1 || -1);
+
+            if (x2 < left)
+                x1 = left + minWidth;
+            else if (x2 > left + imgWidth)
+                x1 = left + imgWidth - minWidth;
+        }
+
+        if (abs(y2 - y1) < minHeight) {
+            /* Selection height is smaller than minHeight */
+            y2 = y1 - minHeight * (y2 < y1 || -1);
+
+            if (y2 < top)
+                y1 = top + minHeight;
+            else if (y2 > top + imgHeight)
+                y1 = top + imgHeight - minHeight;
+        }
+
+        x2 = max(left, min(x2, left + imgWidth));
+        y2 = max(top, min(y2, top + imgHeight));
+
+        fixAspectRatio(abs(x2 - x1) < abs(y2 - y1) * aspectRatio);
+
+        if (abs(x2 - x1) > maxWidth) {
+            /* Selection width is greater than maxWidth */
+            x2 = x1 - maxWidth * (x2 < x1 || -1);
+            fixAspectRatio();
+        }
+
+        if (abs(y2 - y1) > maxHeight) {
+            /* Selection height is greater than maxHeight */
+            y2 = y1 - maxHeight * (y2 < y1 || -1);
+            fixAspectRatio(true);
+        }
+
+        selection = { x1: selX(min(x1, x2)), x2: selX(max(x1, x2)),
+            y1: selY(min(y1, y2)), y2: selY(max(y1, y2)),
+            width: abs(x2 - x1), height: abs(y2 - y1) };
+
+        update();
+
+        options.onSelectChange(img, getSelection());
+    }
+
+    /**
+     * Mousemove event handler triggered when the user is selecting an area
+     *
+     * @param event
+     *            The event object
+     * @return false
+     */
+    function selectingMouseMove(event) {
+        x2 = /w|e|^$/.test(resize) || aspectRatio ? evX(event) : viewX(selection.x2);
+        y2 = /n|s|^$/.test(resize) || aspectRatio ? evY(event) : viewY(selection.y2);
+
+        doResize();
+
+        return false;
+    }
+
+    /**
+     * Move the selection area
+     *
+     * @param newX1
+     *            New viewport X1
+     * @param newY1
+     *            New viewport Y1
+     */
+    function doMove(newX1, newY1) {
+        x2 = (x1 = newX1) + selection.width;
+        y2 = (y1 = newY1) + selection.height;
+
+        $.extend(selection, { x1: selX(x1), y1: selY(y1), x2: selX(x2),
+            y2: selY(y2) });
+
+        update();
+
+        options.onSelectChange(img, getSelection());
+    }
+
+    /**
+     * Mousemove event handler triggered when the selection area is being moved
+     *
+     * @param event
+     *            The event object
+     * @return false
+     */
+    function movingMouseMove(event) {
+        x1 = max(left, min(startX + evX(event), left + imgWidth - selection.width));
+        y1 = max(top, min(startY + evY(event), top + imgHeight - selection.height));
+
+        doMove(x1, y1);
+
+        event.preventDefault();
+        return false;
+    }
+
+    /**
+     * Start selection
+     */
+    function startSelection() {
+        $(document).unbind('mousemove', startSelection);
+        adjust();
+
+        x2 = x1;
+        y2 = y1;
+        doResize();
+
+        resize = '';
+
+        if (!$outer.is(':visible'))
+            /* Show the plugin elements */
+            $box.add($outer).hide().fadeIn(options.fadeSpeed||0);
+
+        shown = true;
+
+        $(document).unbind('mouseup', cancelSelection)
+            .mousemove(selectingMouseMove).one('mouseup', docMouseUp);
+        $box.unbind('mousemove', areaMouseMove);
+
+        options.onSelectStart(img, getSelection());
+    }
+
+    /**
+     * Cancel selection
+     */
+    function cancelSelection() {
+        $(document).unbind('mousemove', startSelection)
+            .unbind('mouseup', cancelSelection);
+        hide($box.add($outer));
+
+        setSelection(selX(x1), selY(y1), selX(x1), selY(y1));
+
+        /* If this is an API call, callback functions should not be triggered */
+        if (!(this instanceof $.imgAreaSelect)) {
+            options.onSelectChange(img, getSelection());
+            options.onSelectEnd(img, getSelection());
+        }
+    }
+
+    /**
+     * Image mousedown event handler
+     *
+     * @param event
+     *            The event object
+     * @return false
+     */
+    function imgMouseDown(event) {
+        /* Ignore the event if animation is in progress */
+        if (event.which != 1 || $outer.is(':animated')) return false;
+
+        adjust();
+        startX = x1 = evX(event);
+        startY = y1 = evY(event);
+
+        /* Selection will start when the mouse is moved */
+        $(document).mousemove(startSelection).mouseup(cancelSelection);
+
+        return false;
+    }
+
+    /**
+     * Window resize event handler
+     */
+    function windowResize() {
+        doUpdate(false);
+    }
+
+    /**
+     * Image load event handler. This is the final part of the initialization
+     * process.
+     */
+    function imgLoad() {
+        imgLoaded = true;
+
+        /* Set options */
+        setOptions(options = $.extend({
+            classPrefix: 'imgareaselect',
+            movable: true,
+            parent: 'body',
+            resizable: true,
+            resizeMargin: 10,
+            onInit: function () {},
+            onSelectStart: function () {},
+            onSelectChange: function () {},
+            onSelectEnd: function () {}
+        }, options));
+
+        $box.add($outer).css({ visibility: '' });
+
+        if (options.show) {
+            shown = true;
+            adjust();
+            update();
+            $box.add($outer).hide().fadeIn(options.fadeSpeed||0);
+        }
+
+        /*
+         * Call the onInit callback. The setTimeout() call is used to ensure
+         * that the plugin has been fully initialized and the object instance is
+         * available (so that it can be obtained in the callback).
+         */
+        setTimeout(function () { options.onInit(img, getSelection()); }, 0);
+    }
+
+    /**
+     * Document keypress event handler
+     *
+     * @param event
+     *            The event object
+     * @return false
+     */
+    var docKeyPress = function(event) {
+        var k = options.keys, d, t, key = event.keyCode;
+
+        d = !isNaN(k.alt) && (event.altKey || event.originalEvent.altKey) ? k.alt :
+            !isNaN(k.ctrl) && event.ctrlKey ? k.ctrl :
+            !isNaN(k.shift) && event.shiftKey ? k.shift :
+            !isNaN(k.arrows) ? k.arrows : 10;
+
+        if (k.arrows == 'resize' || (k.shift == 'resize' && event.shiftKey) ||
+            (k.ctrl == 'resize' && event.ctrlKey) ||
+            (k.alt == 'resize' && (event.altKey || event.originalEvent.altKey)))
+        {
+            /* Resize selection */
+
+            switch (key) {
+            case 37:
+                /* Left */
+                d = -d;
+            case 39:
+                /* Right */
+                t = max(x1, x2);
+                x1 = min(x1, x2);
+                x2 = max(t + d, x1);
+                fixAspectRatio();
+                break;
+            case 38:
+                /* Up */
+                d = -d;
+            case 40:
+                /* Down */
+                t = max(y1, y2);
+                y1 = min(y1, y2);
+                y2 = max(t + d, y1);
+                fixAspectRatio(true);
+                break;
+            default:
+                return;
+            }
+
+            doResize();
+        }
+        else {
+            /* Move selection */
+
+            x1 = min(x1, x2);
+            y1 = min(y1, y2);
+
+            switch (key) {
+            case 37:
+                /* Left */
+                doMove(max(x1 - d, left), y1);
+                break;
+            case 38:
+                /* Up */
+                doMove(x1, max(y1 - d, top));
+                break;
+            case 39:
+                /* Right */
+                doMove(x1 + min(d, imgWidth - selX(x2)), y1);
+                break;
+            case 40:
+                /* Down */
+                doMove(x1, y1 + min(d, imgHeight - selY(y2)));
+                break;
+            default:
+                return;
+            }
+        }
+
+        return false;
+    };
+
+    /**
+     * Apply style options to plugin element (or multiple elements)
+     *
+     * @param $elem
+     *            A jQuery object representing the element(s) to style
+     * @param props
+     *            An object that maps option names to corresponding CSS
+     *            properties
+     */
+    function styleOptions($elem, props) {
+        for (var option in props)
+            if (options[option] !== undefined)
+                $elem.css(props[option], options[option]);
+    }
+
+    /**
+     * Set plugin options
+     *
+     * @param newOptions
+     *            The new options object
+     */
+    function setOptions(newOptions) {
+        if (newOptions.parent)
+            ($parent = $(newOptions.parent)).append($box.add($outer));
+
+        /* Merge the new options with the existing ones */
+        $.extend(options, newOptions);
+
+        adjust();
+
+        if (newOptions.handles != null) {
+            /* Recreate selection area handles */
+            $handles.remove();
+            $handles = $([]);
+
+            i = newOptions.handles ? newOptions.handles == 'corners' ? 4 : 8 : 0;
+
+            while (i--)
+                $handles = $handles.add(div());
+
+            /* Add a class to handles and set the CSS properties */
+            $handles.addClass(options.classPrefix + '-handle').css({
+                position: 'absolute',
+                /*
+                 * The font-size property needs to be set to zero, otherwise
+                 * Internet Explorer makes the handles too large
+                 */
+                fontSize: 0,
+                zIndex: zIndex + 1 || 1
+            });
+
+            /*
+             * If handle width/height has not been set with CSS rules, set the
+             * default 5px
+             */
+            if (!parseInt($handles.css('width')) >= 0)
+                $handles.width(5).height(5);
+
+            /*
+             * If the borderWidth option is in use, add a solid border to
+             * handles
+             */
+            if (o = options.borderWidth)
+                $handles.css({ borderWidth: o, borderStyle: 'solid' });
+
+            /* Apply other style options */
+            styleOptions($handles, { borderColor1: 'border-color',
+                borderColor2: 'background-color',
+                borderOpacity: 'opacity' });
+        }
+
+        /* Calculate scale factors */
+        scaleX = options.imageWidth / imgWidth || 1;
+        scaleY = options.imageHeight / imgHeight || 1;
+
+        /* Set selection */
+        if (newOptions.x1 != null) {
+            setSelection(newOptions.x1, newOptions.y1, newOptions.x2,
+                newOptions.y2);
+            newOptions.show = !newOptions.hide;
+        }
+
+        if (newOptions.keys)
+            /* Enable keyboard support */
+            options.keys = $.extend({ shift: 1, ctrl: 'resize' },
+                newOptions.keys);
+
+        /* Add classes to plugin elements */
+        $outer.addClass(options.classPrefix + '-outer');
+        $area.addClass(options.classPrefix + '-selection');
+        for (i = 0; i++ < 4;)
+            $($border[i-1]).addClass(options.classPrefix + '-border' + i);
+
+        /* Apply style options */
+        styleOptions($area, { selectionColor: 'background-color',
+            selectionOpacity: 'opacity' });
+        styleOptions($border, { borderOpacity: 'opacity',
+            borderWidth: 'border-width' });
+        styleOptions($outer, { outerColor: 'background-color',
+            outerOpacity: 'opacity' });
+        if (o = options.borderColor1)
+            $($border[0]).css({ borderStyle: 'solid', borderColor: o });
+        if (o = options.borderColor2)
+            $($border[1]).css({ borderStyle: 'dashed', borderColor: o });
+
+        /* Append all the selection area elements to the container box */
+        $box.append($area.add($border).add($areaOpera).add($handles));
+
+        if ($.browser.msie) {
+            if (o = $outer.css('filter').match(/opacity=(\d+)/))
+                $outer.css('opacity', o[1]/100);
+            if (o = $border.css('filter').match(/opacity=(\d+)/))
+                $border.css('opacity', o[1]/100);
+        }
+
+        if (newOptions.hide)
+            hide($box.add($outer));
+        else if (newOptions.show && imgLoaded) {
+            shown = true;
+            $box.add($outer).fadeIn(options.fadeSpeed||0);
+            doUpdate();
+        }
+
+        /* Calculate the aspect ratio factor */
+        aspectRatio = (d = (options.aspectRatio || '').split(/:/))[0] / d[1];
+
+        $img.add($outer).unbind('mousedown', imgMouseDown);
+
+        if (options.disable || options.enable === false) {
+            /* Disable the plugin */
+            $box.unbind('mousemove', areaMouseMove).unbind('mousedown', areaMouseDown);
+            $(window).unbind('resize', windowResize);
+        }
+        else {
+            if (options.enable || options.disable === false) {
+                /* Enable the plugin */
+                if (options.resizable || options.movable)
+                    $box.mousemove(areaMouseMove).mousedown(areaMouseDown);
+
+                $(window).resize(windowResize);
+            }
+
+            if (!options.persistent)
+                $img.add($outer).mousedown(imgMouseDown);
+        }
+
+        options.enable = options.disable = undefined;
+    }
+
+    /**
+     * Remove plugin completely
+     */
+    this.remove = function () {
+        /*
+         * Call setOptions with { disable: true } to unbind the event handlers
+         */
+        setOptions({ disable: true });
+        $box.add($outer).remove();
+    };
+
+    /*
+     * Public API
+     */
+
+    /**
+     * Get current options
+     *
+     * @return An object containing the set of options currently in use
+     */
+    this.getOptions = function () { return options; };
+
+    /**
+     * Set plugin options
+     *
+     * @param newOptions
+     *            The new options object
+     */
+    this.setOptions = setOptions;
+
+    /**
+     * Get the current selection
+     *
+     * @param noScale
+     *            If set to <code>true</code>, scaling is not applied to the
+     *            returned selection
+     * @return Selection object
+     */
+    this.getSelection = getSelection;
+
+    /**
+     * Set the current selection
+     *
+     * @param x1
+     *            X coordinate of the upper left corner of the selection area
+     * @param y1
+     *            Y coordinate of the upper left corner of the selection area
+     * @param x2
+     *            X coordinate of the lower right corner of the selection area
+     * @param y2
+     *            Y coordinate of the lower right corner of the selection area
+     * @param noScale
+     *            If set to <code>true</code>, scaling is not applied to the
+     *            new selection
+     */
+    this.setSelection = setSelection;
+
+    /**
+     * Cancel selection
+     */
+    this.cancelSelection = cancelSelection;
+
+    /**
+     * Update plugin elements
+     *
+     * @param resetKeyPress
+     *            If set to <code>false</code>, this instance's keypress
+     *            event handler is not activated
+     */
+    this.update = doUpdate;
+
+    /*
+     * Traverse the image's parent elements (up to <body>) and find the
+     * highest z-index
+     */
+    $p = $img;
+
+    while ($p.length) {
+        zIndex = max(zIndex,
+            !isNaN($p.css('z-index')) ? $p.css('z-index') : zIndex);
+        /* Also check if any of the ancestor elements has fixed position */
+        if ($p.css('position') == 'fixed')
+            position = 'fixed';
+
+        $p = $p.parent(':not(body)');
+    }
+
+    /*
+     * If z-index is given as an option, it overrides the one found by the
+     * above loop
+     */
+    zIndex = options.zIndex || zIndex;
+
+    if ($.browser.msie)
+        $img.attr('unselectable', 'on');
+
+    /*
+     * In MSIE and WebKit, we need to use the keydown event instead of keypress
+     */
+    $.imgAreaSelect.keyPress = $.browser.msie ||
+        $.browser.safari ? 'keydown' : 'keypress';
+
+    /*
+     * There is a bug affecting the CSS cursor property in Opera (observed in
+     * versions up to 10.00) that prevents the cursor from being updated unless
+     * the mouse leaves and enters the element again. To trigger the mouseover
+     * event, we're adding an additional div to $box and we're going to toggle
+     * it when mouse moves inside the selection area.
+     */
+    if ($.browser.opera)
+        $areaOpera = div().css({ width: '100%', height: '100%',
+            position: 'absolute', zIndex: zIndex + 2 || 2 });
+
+    /*
+     * We initially set visibility to "hidden" as a workaround for a weird
+     * behaviour observed in Google Chrome 1.0.154.53 (on Windows XP). Normally
+     * we would just set display to "none", but, for some reason, if we do so
+     * then Chrome refuses to later display the element with .show() or
+     * .fadeIn().
+     */
+    $box.add($outer).css({ visibility: 'hidden', position: position,
+        overflow: 'hidden', zIndex: zIndex || '0' });
+    $box.css({ zIndex: zIndex + 2 || 2 });
+    $area.add($border).css({ position: 'absolute', fontSize: 0 });
+
+    /*
+     * If the image has been fully loaded, or if it is not really an image (eg.
+     * a div), call imgLoad() immediately; otherwise, bind it to be called once
+     * on image load event.
+     */
+    img.complete || img.readyState == 'complete' || !$img.is('img') ?
+        imgLoad() : $img.one('load', imgLoad);
+
+    /*
+     * MSIE 9.0 doesn't always fire the image load event -- resetting the src
+     * attribute seems to trigger it. The check is for version 7 and above to
+     * accommodate for MSIE 9 running in compatibility mode.
+     */
+   if (!imgLoaded && $.browser.msie && $.browser.version >= 7)
+        img.src = img.src;
+};
+
+/**
+ * Invoke imgAreaSelect on a jQuery object containing the image(s)
+ *
+ * @param options
+ *            Options object
+ * @return The jQuery object or a reference to imgAreaSelect instance (if the
+ *         <code>instance</code> option was specified)
+ */
+$.fn.imgAreaSelect = function (options) {
+    options = options || {};
+
+    this.each(function () {
+        /* Is there already an imgAreaSelect instance bound to this element? */
+        if ($(this).data('imgAreaSelect')) {
+            /* Yes there is -- is it supposed to be removed? */
+            if (options.remove) {
+                /* Remove the plugin */
+                $(this).data('imgAreaSelect').remove();
+                $(this).removeData('imgAreaSelect');
+            }
+            else
+                /* Reset options */
+                $(this).data('imgAreaSelect').setOptions(options);
+        }
+        else if (!options.remove) {
+            /* No exising instance -- create a new one */
+
+            /*
+             * If neither the "enable" nor the "disable" option is present, add
+             * "enable" as the default
+             */
+            if (options.enable === undefined && options.disable === undefined)
+                options.enable = true;
+
+            $(this).data('imgAreaSelect', new $.imgAreaSelect(this, options));
+        }
+    });
+
+    if (options.instance)
+        /*
+         * Return the imgAreaSelect instance bound to the first element in the
+         * set
+         */
+        return $(this).data('imgAreaSelect');
+
+    return this;
+};
+
+})(jQuery);
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-includes/js/imgareaselect/jquery.imgareaselect.min.js	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,1 @@
+(function(e){var b=Math.abs,a=Math.max,d=Math.min,c=Math.round;function f(){return e("<div/>")}e.imgAreaSelect=function(s,X){var az=e(s),Z,av=f(),ai=f(),K=f().add(f()).add(f()).add(f()),ab=f().add(f()).add(f()).add(f()),O=e([]),V,n,q,aC={left:0,top:0},Q,j,C,P={left:0,top:0},D=0,ag="absolute",T,S,ad,ac,L,E,U,W,am,Y,N,A,aD,z,aB,y={x1:0,y1:0,x2:0,y2:0,width:0,height:0},p=document.documentElement,l,au,ap,aj,af,aq,x;function J(h){return h+aC.left-P.left}function I(h){return h+aC.top-P.top}function H(h){return h-aC.left+P.left}function B(h){return h-aC.top+P.top}function ao(h){return h.pageX-P.left}function al(h){return h.pageY-P.top}function G(h){var o=h||ad,i=h||ac;return{x1:c(y.x1*o),y1:c(y.y1*i),x2:c(y.x2*o),y2:c(y.y2*i),width:c(y.x2*o)-c(y.x1*o),height:c(y.y2*i)-c(y.y1*i)}}function ah(i,w,h,o,aE){var aG=aE||ad,aF=aE||ac;y={x1:c(i/aG||0),y1:c(w/aF||0),x2:c(h/aG||0),y2:c(o/aF||0)};y.width=y.x2-y.x1;y.height=y.y2-y.y1}function ar(){if(!az.width()){return}aC={left:c(az.offset().left),top:c(az.offset().top)};Q=az.innerWidth();j=az.innerHeight();aC.top+=(az.outerHeight()-j)>>1;aC.left+=(az.outerWidth()-Q)>>1;E=c(X.minWidth/ad)||0;U=c(X.minHeight/ac)||0;W=c(d(X.maxWidth/ad||1<<24,Q));am=c(d(X.maxHeight/ac||1<<24,j));if(e().jquery=="1.3.2"&&ag=="fixed"&&!p.getBoundingClientRect){aC.top+=a(document.body.scrollTop,p.scrollTop);aC.left+=a(document.body.scrollLeft,p.scrollLeft)}P=/absolute|relative/.test(C.css("position"))?{left:c(C.offset().left)-C.scrollLeft(),top:c(C.offset().top)-C.scrollTop()}:ag=="fixed"?{left:e(document).scrollLeft(),top:e(document).scrollTop()}:{left:0,top:0};n=J(0);q=I(0);if(y.x2>Q||y.y2>j){ay()}}function aa(h){if(!N){return}av.css({left:J(y.x1),top:I(y.y1)}).add(ai).width(af=y.width).height(aq=y.height);ai.add(K).add(O).css({left:0,top:0});K.width(a(af-K.outerWidth()+K.innerWidth(),0)).height(a(aq-K.outerHeight()+K.innerHeight(),0));e(ab[0]).css({left:n,top:q,width:y.x1,height:j});e(ab[1]).css({left:n+y.x1,top:q,width:af,height:y.y1});e(ab[2]).css({left:n+y.x2,top:q,width:Q-y.x2,height:j});e(ab[3]).css({left:n+y.x1,top:q+y.y2,width:af,height:j-y.y2});af-=O.outerWidth();aq-=O.outerHeight();switch(O.length){case 8:e(O[4]).css({left:af>>1});e(O[5]).css({left:af,top:aq>>1});e(O[6]).css({left:af>>1,top:aq});e(O[7]).css({top:aq>>1});case 4:O.slice(1,3).css({left:af});O.slice(2,4).css({top:aq})}if(h!==false){if(e.imgAreaSelect.keyPress!=aw){e(document).unbind(e.imgAreaSelect.keyPress,e.imgAreaSelect.onKeyPress)}if(X.keys){e(document)[e.imgAreaSelect.keyPress](e.imgAreaSelect.onKeyPress=aw)}}if(e.browser.msie&&K.outerWidth()-K.innerWidth()==2){K.css("margin",0);setTimeout(function(){K.css("margin","auto")},0)}}function u(h){ar();aa(h);A=J(y.x1);aD=I(y.y1);z=J(y.x2);aB=I(y.y2)}function ak(h,i){X.fadeSpeed?h.fadeOut(X.fadeSpeed,i):h.hide()}function F(i){var h=H(ao(i))-y.x1,o=B(al(i))-y.y1;if(!x){ar();x=true;av.one("mouseout",function(){x=false})}L="";if(X.resizable){if(o<=X.resizeMargin){L="n"}else{if(o>=y.height-X.resizeMargin){L="s"}}if(h<=X.resizeMargin){L+="w"}else{if(h>=y.width-X.resizeMargin){L+="e"}}}av.css("cursor",L?L+"-resize":X.movable?"move":"");if(V){V.toggle()}}function an(h){e("body").css("cursor","");if(X.autoHide||y.width*y.height==0){ak(av.add(ab),function(){e(this).hide()})}e(document).unbind("mousemove",ae);av.mousemove(F);X.onSelectEnd(s,G())}function t(h){if(h.which!=1){return false}ar();if(L){e("body").css("cursor",L+"-resize");A=J(y[/w/.test(L)?"x2":"x1"]);aD=I(y[/n/.test(L)?"y2":"y1"]);e(document).mousemove(ae).one("mouseup",an);av.unbind("mousemove",F)}else{if(X.movable){T=n+y.x1-ao(h);S=q+y.y1-al(h);av.unbind("mousemove",F);e(document).mousemove(g).one("mouseup",function(){X.onSelectEnd(s,G());e(document).unbind("mousemove",g);av.mousemove(F)})}else{az.mousedown(h)}}return false}function r(h){if(Y){if(h){z=a(n,d(n+Q,A+b(aB-aD)*Y*(z>A||-1)));aB=c(a(q,d(q+j,aD+b(z-A)/Y*(aB>aD||-1))));z=c(z)}else{aB=a(q,d(q+j,aD+b(z-A)/Y*(aB>aD||-1)));z=c(a(n,d(n+Q,A+b(aB-aD)*Y*(z>A||-1))));aB=c(aB)}}}function ay(){A=d(A,n+Q);aD=d(aD,q+j);if(b(z-A)<E){z=A-E*(z<A||-1);if(z<n){A=n+E}else{if(z>n+Q){A=n+Q-E}}}if(b(aB-aD)<U){aB=aD-U*(aB<aD||-1);if(aB<q){aD=q+U}else{if(aB>q+j){aD=q+j-U}}}z=a(n,d(z,n+Q));aB=a(q,d(aB,q+j));r(b(z-A)<b(aB-aD)*Y);if(b(z-A)>W){z=A-W*(z<A||-1);r()}if(b(aB-aD)>am){aB=aD-am*(aB<aD||-1);r(true)}y={x1:H(d(A,z)),x2:H(a(A,z)),y1:B(d(aD,aB)),y2:B(a(aD,aB)),width:b(z-A),height:b(aB-aD)};aa();X.onSelectChange(s,G())}function ae(h){z=/w|e|^$/.test(L)||Y?ao(h):J(y.x2);aB=/n|s|^$/.test(L)||Y?al(h):I(y.y2);ay();return false}function R(h,i){z=(A=h)+y.width;aB=(aD=i)+y.height;e.extend(y,{x1:H(A),y1:B(aD),x2:H(z),y2:B(aB)});aa();X.onSelectChange(s,G())}function g(h){A=a(n,d(T+ao(h),n+Q-y.width));aD=a(q,d(S+al(h),q+j-y.height));R(A,aD);h.preventDefault();return false}function aA(){e(document).unbind("mousemove",aA);ar();z=A;aB=aD;ay();L="";if(!ab.is(":visible")){av.add(ab).hide().fadeIn(X.fadeSpeed||0)}N=true;e(document).unbind("mouseup",at).mousemove(ae).one("mouseup",an);av.unbind("mousemove",F);X.onSelectStart(s,G())}function at(){e(document).unbind("mousemove",aA).unbind("mouseup",at);ak(av.add(ab));ah(H(A),B(aD),H(A),B(aD));if(!(this instanceof e.imgAreaSelect)){X.onSelectChange(s,G());X.onSelectEnd(s,G())}}function m(h){if(h.which!=1||ab.is(":animated")){return false}ar();T=A=ao(h);S=aD=al(h);e(document).mousemove(aA).mouseup(at);return false}function v(){u(false)}function ax(){Z=true;M(X=e.extend({classPrefix:"imgareaselect",movable:true,parent:"body",resizable:true,resizeMargin:10,onInit:function(){},onSelectStart:function(){},onSelectChange:function(){},onSelectEnd:function(){}},X));av.add(ab).css({visibility:""});if(X.show){N=true;ar();aa();av.add(ab).hide().fadeIn(X.fadeSpeed||0)}setTimeout(function(){X.onInit(s,G())},0)}var aw=function(w){var h=X.keys,aE,o,i=w.keyCode;aE=!isNaN(h.alt)&&(w.altKey||w.originalEvent.altKey)?h.alt:!isNaN(h.ctrl)&&w.ctrlKey?h.ctrl:!isNaN(h.shift)&&w.shiftKey?h.shift:!isNaN(h.arrows)?h.arrows:10;if(h.arrows=="resize"||(h.shift=="resize"&&w.shiftKey)||(h.ctrl=="resize"&&w.ctrlKey)||(h.alt=="resize"&&(w.altKey||w.originalEvent.altKey))){switch(i){case 37:aE=-aE;case 39:o=a(A,z);A=d(A,z);z=a(o+aE,A);r();break;case 38:aE=-aE;case 40:o=a(aD,aB);aD=d(aD,aB);aB=a(o+aE,aD);r(true);break;default:return}ay()}else{A=d(A,z);aD=d(aD,aB);switch(i){case 37:R(a(A-aE,n),aD);break;case 38:R(A,a(aD-aE,q));break;case 39:R(A+d(aE,Q-H(z)),aD);break;case 40:R(A,aD+d(aE,j-B(aB)));break;default:return}}return false};function k(h,o){for(var i in o){if(X[i]!==undefined){h.css(o[i],X[i])}}}function M(h){if(h.parent){(C=e(h.parent)).append(av.add(ab))}e.extend(X,h);ar();if(h.handles!=null){O.remove();O=e([]);ap=h.handles?h.handles=="corners"?4:8:0;while(ap--){O=O.add(f())}O.addClass(X.classPrefix+"-handle").css({position:"absolute",fontSize:0,zIndex:D+1||1});if(!parseInt(O.css("width"))>=0){O.width(5).height(5)}if(aj=X.borderWidth){O.css({borderWidth:aj,borderStyle:"solid"})}k(O,{borderColor1:"border-color",borderColor2:"background-color",borderOpacity:"opacity"})}ad=X.imageWidth/Q||1;ac=X.imageHeight/j||1;if(h.x1!=null){ah(h.x1,h.y1,h.x2,h.y2);h.show=!h.hide}if(h.keys){X.keys=e.extend({shift:1,ctrl:"resize"},h.keys)}ab.addClass(X.classPrefix+"-outer");ai.addClass(X.classPrefix+"-selection");for(ap=0;ap++<4;){e(K[ap-1]).addClass(X.classPrefix+"-border"+ap)}k(ai,{selectionColor:"background-color",selectionOpacity:"opacity"});k(K,{borderOpacity:"opacity",borderWidth:"border-width"});k(ab,{outerColor:"background-color",outerOpacity:"opacity"});if(aj=X.borderColor1){e(K[0]).css({borderStyle:"solid",borderColor:aj})}if(aj=X.borderColor2){e(K[1]).css({borderStyle:"dashed",borderColor:aj})}av.append(ai.add(K).add(V).add(O));if(e.browser.msie){if(aj=ab.css("filter").match(/opacity=(\d+)/)){ab.css("opacity",aj[1]/100)}if(aj=K.css("filter").match(/opacity=(\d+)/)){K.css("opacity",aj[1]/100)}}if(h.hide){ak(av.add(ab))}else{if(h.show&&Z){N=true;av.add(ab).fadeIn(X.fadeSpeed||0);u()}}Y=(au=(X.aspectRatio||"").split(/:/))[0]/au[1];az.add(ab).unbind("mousedown",m);if(X.disable||X.enable===false){av.unbind("mousemove",F).unbind("mousedown",t);e(window).unbind("resize",v)}else{if(X.enable||X.disable===false){if(X.resizable||X.movable){av.mousemove(F).mousedown(t)}e(window).resize(v)}if(!X.persistent){az.add(ab).mousedown(m)}}X.enable=X.disable=undefined}this.remove=function(){M({disable:true});av.add(ab).remove()};this.getOptions=function(){return X};this.setOptions=M;this.getSelection=G;this.setSelection=ah;this.cancelSelection=at;this.update=u;l=az;while(l.length){D=a(D,!isNaN(l.css("z-index"))?l.css("z-index"):D);if(l.css("position")=="fixed"){ag="fixed"}l=l.parent(":not(body)")}D=X.zIndex||D;if(e.browser.msie){az.attr("unselectable","on")}e.imgAreaSelect.keyPress=e.browser.msie||e.browser.safari?"keydown":"keypress";if(e.browser.opera){V=f().css({width:"100%",height:"100%",position:"absolute",zIndex:D+2||2})}av.add(ab).css({visibility:"hidden",position:ag,overflow:"hidden",zIndex:D||"0"});av.css({zIndex:D+2||2});ai.add(K).css({position:"absolute",fontSize:0});s.complete||s.readyState=="complete"||!az.is("img")?ax():az.one("load",ax);if(!Z&&e.browser.msie&&e.browser.version>=7){s.src=s.src}};e.fn.imgAreaSelect=function(g){g=g||{};this.each(function(){if(e(this).data("imgAreaSelect")){if(g.remove){e(this).data("imgAreaSelect").remove();e(this).removeData("imgAreaSelect")}else{e(this).data("imgAreaSelect").setOptions(g)}}else{if(!g.remove){if(g.enable===undefined&&g.disable===undefined){g.enable=true}e(this).data("imgAreaSelect",new e.imgAreaSelect(this,g))}}});if(g.instance){return e(this).data("imgAreaSelect")}return this}})(jQuery);
\ No newline at end of file
Binary file web/wp-includes/js/jcrop/Jcrop.gif has changed
--- a/web/wp-includes/js/jcrop/jquery.Jcrop.css	Wed Dec 19 12:35:13 2012 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,35 +0,0 @@
-/* Fixes issue here http://code.google.com/p/jcrop/issues/detail?id=1 */
-.jcrop-holder { text-align: left; }
-
-.jcrop-vline, .jcrop-hline
-{
-	font-size: 0;
-	position: absolute;
-	background: white url('Jcrop.gif') top left repeat;
-}
-.jcrop-vline { height: 100%; width: 1px !important; }
-.jcrop-hline { width: 100%; height: 1px !important; }
-.jcrop-handle {
-	font-size: 1px;
-	width: 7px !important;
-	height: 7px !important;
-	border: 1px #eee solid;
-	background-color: #333;
-	*width: 9px;
-	*height: 9px;
-}
-
-.jcrop-tracker { width: 100%; height: 100%; }
-
-.custom .jcrop-vline,
-.custom .jcrop-hline
-{
-	background: yellow;
-}
-.custom .jcrop-handle
-{
-	border-color: black;
-	background-color: #C7BB00;
-	-moz-border-radius: 3px;
-	-webkit-border-radius: 3px;
-}
--- a/web/wp-includes/js/jcrop/jquery.Jcrop.dev.js	Wed Dec 19 12:35:13 2012 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1197 +0,0 @@
-/**
- * jquery.Jcrop.js v0.9.8
- * jQuery Image Cropping Plugin
- * @author Kelly Hallman <khallman@gmail.com>
- * Copyright (c) 2008-2009 Kelly Hallman - released under MIT License {{{
- *
- * Permission is hereby granted, free of charge, to any person
- * obtaining a copy of this software and associated documentation
- * files (the "Software"), to deal in the Software without
- * restriction, including without limitation the rights to use,
- * copy, modify, merge, publish, distribute, sublicense, and/or sell
- * copies of the Software, and to permit persons to whom the
- * Software is furnished to do so, subject to the following
- * conditions:
-
- * The above copyright notice and this permission notice shall be
- * included in all copies or substantial portions of the Software.
-
- * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
- * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
- * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
- * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
- * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
- * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
- * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
- * OTHER DEALINGS IN THE SOFTWARE.
-
- * }}}
- */
-
-(function($) {
-
-$.Jcrop = function(obj,opt)
-{
-	// Initialization {{{
-
-	// Sanitize some options {{{
-	var obj = obj, opt = opt;
-
-	if (typeof(obj) !== 'object') obj = $(obj)[0];
-	if (typeof(opt) !== 'object') opt = { };
-
-	// Some on-the-fly fixes for MSIE...sigh
-	if (!('trackDocument' in opt))
-	{
-		opt.trackDocument = $.browser.msie ? false : true;
-		if ($.browser.msie && $.browser.version.split('.')[0] == '8')
-			opt.trackDocument = true;
-	}
-
-	if (!('keySupport' in opt))
-			opt.keySupport = $.browser.msie ? false : true;
-		
-	// }}}
-	// Extend the default options {{{
-	var defaults = {
-
-		// Basic Settings
-		trackDocument:		false,
-		baseClass:			'jcrop',
-		addClass:			null,
-
-		// Styling Options
-		bgColor:			'black',
-		bgOpacity:			.6,
-		borderOpacity:		.4,
-		handleOpacity:		.5,
-
-		handlePad:			5,
-		handleSize:			9,
-		handleOffset:		5,
-		edgeMargin:			14,
-
-		aspectRatio:		0,
-		keySupport:			true,
-		cornerHandles:		true,
-		sideHandles:		true,
-		drawBorders:		true,
-		dragEdges:			true,
-
-		boxWidth:			0,
-		boxHeight:			0,
-
-		boundary:			8,
-		animationDelay:		20,
-		swingSpeed:			3,
-
-		allowSelect:		true,
-		allowMove:			true,
-		allowResize:		true,
-
-		minSelect:			[ 0, 0 ],
-		maxSize:			[ 0, 0 ],
-		minSize:			[ 0, 0 ],
-
-		// Callbacks / Event Handlers
-		onChange: function() { },
-		onSelect: function() { }
-
-	};
-	var options = defaults;
-	setOptions(opt);
-
-	// }}}
-	// Initialize some jQuery objects {{{
-
-	var $origimg = $(obj);
-	var $img = $origimg.clone().removeAttr('id').css({ position: 'absolute' });
-
-	$img.width($origimg.width());
-	$img.height($origimg.height());
-	$origimg.after($img).hide();
-
-	presize($img,options.boxWidth,options.boxHeight);
-
-	var boundx = $img.width(),
-		boundy = $img.height(),
-
-		$div = $('<div />')
-			.width(boundx).height(boundy)
-			.addClass(cssClass('holder'))
-			.css({
-				position: 'relative',
-				backgroundColor: options.bgColor
-			}).insertAfter($origimg).append($img);
-	;
-	
-	if (options.addClass) $div.addClass(options.addClass);
-	//$img.wrap($div);
-
-	var $img2 = $('<img />')/*{{{*/
-			.attr('src',$img.attr('src'))
-			.css('position','absolute')
-			.width(boundx).height(boundy)
-	;/*}}}*/
-	var $img_holder = $('<div />')/*{{{*/
-		.width(pct(100)).height(pct(100))
-		.css({
-			zIndex: 310,
-			position: 'absolute',
-			overflow: 'hidden'
-		})
-		.append($img2)
-	;/*}}}*/
-	var $hdl_holder = $('<div />')/*{{{*/
-		.width(pct(100)).height(pct(100))
-		.css('zIndex',320);
-	/*}}}*/
-	var $sel = $('<div />')/*{{{*/
-		.css({
-			position: 'absolute',
-			zIndex: 300
-		})
-		.insertBefore($img)
-		.append($img_holder,$hdl_holder)
-	;/*}}}*/
-
-	var bound = options.boundary;
-	var $trk = newTracker().width(boundx+(bound*2)).height(boundy+(bound*2))
-		.css({ position: 'absolute', top: px(-bound), left: px(-bound), zIndex: 290 })
-		.mousedown(newSelection);	
-	
-	/* }}} */
-	// Set more variables {{{
-
-	var xlimit, ylimit, xmin, ymin;
-	var xscale, yscale, enabled = true;
-	var docOffset = getPos($img),
-		// Internal states
-		btndown, lastcurs, dimmed, animating,
-		shift_down;
-
-	// }}}
-		
-
-		// }}}
-	// Internal Modules {{{
-
-	var Coords = function()/*{{{*/
-	{
-		var x1 = 0, y1 = 0, x2 = 0, y2 = 0, ox, oy;
-
-		function setPressed(pos)/*{{{*/
-		{
-			var pos = rebound(pos);
-			x2 = x1 = pos[0];
-			y2 = y1 = pos[1];
-		};
-		/*}}}*/
-		function setCurrent(pos)/*{{{*/
-		{
-			var pos = rebound(pos);
-			ox = pos[0] - x2;
-			oy = pos[1] - y2;
-			x2 = pos[0];
-			y2 = pos[1];
-		};
-		/*}}}*/
-		function getOffset()/*{{{*/
-		{
-			return [ ox, oy ];
-		};
-		/*}}}*/
-		function moveOffset(offset)/*{{{*/
-		{
-			var ox = offset[0], oy = offset[1];
-
-			if (0 > x1 + ox) ox -= ox + x1;
-			if (0 > y1 + oy) oy -= oy + y1;
-
-			if (boundy < y2 + oy) oy += boundy - (y2 + oy);
-			if (boundx < x2 + ox) ox += boundx - (x2 + ox);
-
-			x1 += ox;
-			x2 += ox;
-			y1 += oy;
-			y2 += oy;
-		};
-		/*}}}*/
-		function getCorner(ord)/*{{{*/
-		{
-			var c = getFixed();
-			switch(ord)
-			{
-				case 'ne': return [ c.x2, c.y ];
-				case 'nw': return [ c.x, c.y ];
-				case 'se': return [ c.x2, c.y2 ];
-				case 'sw': return [ c.x, c.y2 ];
-			}
-		};
-		/*}}}*/
-		function getFixed()/*{{{*/
-		{
-			if (!options.aspectRatio) return getRect();
-			// This function could use some optimization I think...
-			var aspect = options.aspectRatio,
-				min_x = options.minSize[0]/xscale, 
-				min_y = options.minSize[1]/yscale,
-				max_x = options.maxSize[0]/xscale, 
-				max_y = options.maxSize[1]/yscale,
-				rw = x2 - x1,
-				rh = y2 - y1,
-				rwa = Math.abs(rw),
-				rha = Math.abs(rh),
-				real_ratio = rwa / rha,
-				xx, yy
-			;
-			if (max_x == 0) { max_x = boundx * 10 }
-			if (max_y == 0) { max_y = boundy * 10 }
-			if (real_ratio < aspect)
-			{
-				yy = y2;
-				w = rha * aspect;
-				xx = rw < 0 ? x1 - w : w + x1;
-
-				if (xx < 0)
-				{
-					xx = 0;
-					h = Math.abs((xx - x1) / aspect);
-					yy = rh < 0 ? y1 - h: h + y1;
-				}
-				else if (xx > boundx)
-				{
-					xx = boundx;
-					h = Math.abs((xx - x1) / aspect);
-					yy = rh < 0 ? y1 - h : h + y1;
-				}
-			}
-			else
-			{
-				xx = x2;
-				h = rwa / aspect;
-				yy = rh < 0 ? y1 - h : y1 + h;
-				if (yy < 0)
-				{
-					yy = 0;
-					w = Math.abs((yy - y1) * aspect);
-					xx = rw < 0 ? x1 - w : w + x1;
-				}
-				else if (yy > boundy)
-				{
-					yy = boundy;
-					w = Math.abs(yy - y1) * aspect;
-					xx = rw < 0 ? x1 - w : w + x1;
-				}
-			}
-
-			// Magic %-)
-			if(xx > x1) { // right side
-			  if(xx - x1 < min_x) {
-				xx = x1 + min_x;
-			  } else if (xx - x1 > max_x) {
-				xx = x1 + max_x;
-			  }
-			  if(yy > y1) {
-				yy = y1 + (xx - x1)/aspect;
-			  } else {
-				yy = y1 - (xx - x1)/aspect;
-			  }
-			} else if (xx < x1) { // left side
-			  if(x1 - xx < min_x) {
-				xx = x1 - min_x
-			  } else if (x1 - xx > max_x) {
-				xx = x1 - max_x;
-			  }
-			  if(yy > y1) {
-				yy = y1 + (x1 - xx)/aspect;
-			  } else {
-				yy = y1 - (x1 - xx)/aspect;
-			  }
-			}
-
-			if(xx < 0) {
-				x1 -= xx;
-				xx = 0;
-			} else  if (xx > boundx) {
-				x1 -= xx - boundx;
-				xx = boundx;
-			}
-
-			if(yy < 0) {
-				y1 -= yy;
-				yy = 0;
-			} else  if (yy > boundy) {
-				y1 -= yy - boundy;
-				yy = boundy;
-			}
-
-			return last = makeObj(flipCoords(x1,y1,xx,yy));
-		};
-		/*}}}*/
-		function rebound(p)/*{{{*/
-		{
-			if (p[0] < 0) p[0] = 0;
-			if (p[1] < 0) p[1] = 0;
-
-			if (p[0] > boundx) p[0] = boundx;
-			if (p[1] > boundy) p[1] = boundy;
-
-			return [ p[0], p[1] ];
-		};
-		/*}}}*/
-		function flipCoords(x1,y1,x2,y2)/*{{{*/
-		{
-			var xa = x1, xb = x2, ya = y1, yb = y2;
-			if (x2 < x1)
-			{
-				xa = x2;
-				xb = x1;
-			}
-			if (y2 < y1)
-			{
-				ya = y2;
-				yb = y1;
-			}
-			return [ Math.round(xa), Math.round(ya), Math.round(xb), Math.round(yb) ];
-		};
-		/*}}}*/
-		function getRect()/*{{{*/
-		{
-			var xsize = x2 - x1;
-			var ysize = y2 - y1;
-
-			if (xlimit && (Math.abs(xsize) > xlimit))
-				x2 = (xsize > 0) ? (x1 + xlimit) : (x1 - xlimit);
-			if (ylimit && (Math.abs(ysize) > ylimit))
-				y2 = (ysize > 0) ? (y1 + ylimit) : (y1 - ylimit);
-
-			if (ymin && (Math.abs(ysize) < ymin))
-				y2 = (ysize > 0) ? (y1 + ymin) : (y1 - ymin);
-			if (xmin && (Math.abs(xsize) < xmin))
-				x2 = (xsize > 0) ? (x1 + xmin) : (x1 - xmin);
-
-			if (x1 < 0) { x2 -= x1; x1 -= x1; }
-			if (y1 < 0) { y2 -= y1; y1 -= y1; }
-			if (x2 < 0) { x1 -= x2; x2 -= x2; }
-			if (y2 < 0) { y1 -= y2; y2 -= y2; }
-			if (x2 > boundx) { var delta = x2 - boundx; x1 -= delta; x2 -= delta; }
-			if (y2 > boundy) { var delta = y2 - boundy; y1 -= delta; y2 -= delta; }
-			if (x1 > boundx) { var delta = x1 - boundy; y2 -= delta; y1 -= delta; }
-			if (y1 > boundy) { var delta = y1 - boundy; y2 -= delta; y1 -= delta; }
-
-			return makeObj(flipCoords(x1,y1,x2,y2));
-		};
-		/*}}}*/
-		function makeObj(a)/*{{{*/
-		{
-			return { x: a[0], y: a[1], x2: a[2], y2: a[3],
-				w: a[2] - a[0], h: a[3] - a[1] };
-		};
-		/*}}}*/
-
-		return {
-			flipCoords: flipCoords,
-			setPressed: setPressed,
-			setCurrent: setCurrent,
-			getOffset: getOffset,
-			moveOffset: moveOffset,
-			getCorner: getCorner,
-			getFixed: getFixed
-		};
-	}();
-
-	/*}}}*/
-	var Selection = function()/*{{{*/
-	{
-		var start, end, dragmode, awake, hdep = 370;
-		var borders = { };
-		var handle = { };
-		var seehandles = false;
-		var hhs = options.handleOffset;
-
-		/* Insert draggable elements {{{*/
-
-		// Insert border divs for outline
-		if (options.drawBorders) {
-			borders = {
-					top: insertBorder('hline')
-						.css('top',$.browser.msie?px(-1):px(0)),
-					bottom: insertBorder('hline'),
-					left: insertBorder('vline'),
-					right: insertBorder('vline')
-			};
-		}
-
-		// Insert handles on edges
-		if (options.dragEdges) {
-			handle.t = insertDragbar('n');
-			handle.b = insertDragbar('s');
-			handle.r = insertDragbar('e');
-			handle.l = insertDragbar('w');
-		}
-
-		// Insert side handles
-		options.sideHandles &&
-			createHandles(['n','s','e','w']);
-
-		// Insert corner handles
-		options.cornerHandles &&
-			createHandles(['sw','nw','ne','se']);
-
-		/*}}}*/
-		// Private Methods
-		function insertBorder(type)/*{{{*/
-		{
-			var jq = $('<div />')
-				.css({position: 'absolute', opacity: options.borderOpacity })
-				.addClass(cssClass(type));
-			$img_holder.append(jq);
-			return jq;
-		};
-		/*}}}*/
-		function dragDiv(ord,zi)/*{{{*/
-		{
-			var jq = $('<div />')
-				.mousedown(createDragger(ord))
-				.css({
-					cursor: ord+'-resize',
-					position: 'absolute',
-					zIndex: zi 
-				})
-			;
-			$hdl_holder.append(jq);
-			return jq;
-		};
-		/*}}}*/
-		function insertHandle(ord)/*{{{*/
-		{
-			return dragDiv(ord,hdep++)
-				.css({ top: px(-hhs+1), left: px(-hhs+1), opacity: options.handleOpacity })
-				.addClass(cssClass('handle'));
-		};
-		/*}}}*/
-		function insertDragbar(ord)/*{{{*/
-		{
-			var s = options.handleSize,
-				o = hhs,
-				h = s, w = s,
-				t = o, l = o;
-
-			switch(ord)
-			{
-				case 'n': case 's': w = pct(100); break;
-				case 'e': case 'w': h = pct(100); break;
-			}
-
-			return dragDiv(ord,hdep++).width(w).height(h)
-				.css({ top: px(-t+1), left: px(-l+1)});
-		};
-		/*}}}*/
-		function createHandles(li)/*{{{*/
-		{
-			for(i in li) handle[li[i]] = insertHandle(li[i]);
-		};
-		/*}}}*/
-		function moveHandles(c)/*{{{*/
-		{
-			var midvert  = Math.round((c.h / 2) - hhs),
-				midhoriz = Math.round((c.w / 2) - hhs),
-				north = west = -hhs+1,
-				east = c.w - hhs,
-				south = c.h - hhs,
-				x, y;
-
-			'e' in handle &&
-				handle.e.css({ top: px(midvert), left: px(east) }) &&
-				handle.w.css({ top: px(midvert) }) &&
-				handle.s.css({ top: px(south), left: px(midhoriz) }) &&
-				handle.n.css({ left: px(midhoriz) });
-
-			'ne' in handle &&
-				handle.ne.css({ left: px(east) }) &&
-				handle.se.css({ top: px(south), left: px(east) }) &&
-				handle.sw.css({ top: px(south) });
-
-			'b' in handle &&
-				handle.b.css({ top: px(south) }) &&
-				handle.r.css({ left: px(east) });
-		};
-		/*}}}*/
-		function moveto(x,y)/*{{{*/
-		{
-			$img2.css({ top: px(-y), left: px(-x) });
-			$sel.css({ top: px(y), left: px(x) });
-		};
-		/*}}}*/
-		function resize(w,h)/*{{{*/
-		{
-			$sel.width(w).height(h);
-		};
-		/*}}}*/
-		function refresh()/*{{{*/
-		{
-			var c = Coords.getFixed();
-
-			Coords.setPressed([c.x,c.y]);
-			Coords.setCurrent([c.x2,c.y2]);
-
-			updateVisible();
-		};
-		/*}}}*/
-
-		// Internal Methods
-		function updateVisible()/*{{{*/
-			{ if (awake) return update(); };
-		/*}}}*/
-		function update()/*{{{*/
-		{
-			var c = Coords.getFixed();
-
-			resize(c.w,c.h);
-			moveto(c.x,c.y);
-
-			options.drawBorders &&
-				borders['right'].css({ left: px(c.w-1) }) &&
-					borders['bottom'].css({ top: px(c.h-1) });
-
-			seehandles && moveHandles(c);
-			awake || show();
-
-			options.onChange(unscale(c));
-		};
-		/*}}}*/
-		function show()/*{{{*/
-		{
-			$sel.show();
-			$img.css('opacity',options.bgOpacity);
-			awake = true;
-		};
-		/*}}}*/
-		function release()/*{{{*/
-		{
-			disableHandles();
-			$sel.hide();
-			$img.css('opacity',1);
-			awake = false;
-		};
-		/*}}}*/
-		function showHandles()//{{{
-		{
-			if (seehandles)
-			{
-				moveHandles(Coords.getFixed());
-				$hdl_holder.show();
-			}
-		};
-		//}}}
-		function enableHandles()/*{{{*/
-		{ 
-			seehandles = true;
-			if (options.allowResize)
-			{
-				moveHandles(Coords.getFixed());
-				$hdl_holder.show();
-				return true;
-			}
-		};
-		/*}}}*/
-		function disableHandles()/*{{{*/
-		{
-			seehandles = false;
-			$hdl_holder.hide();
-		};
-		/*}}}*/
-		function animMode(v)/*{{{*/
-		{
-			(animating = v) ? disableHandles(): enableHandles();
-		};
-		/*}}}*/
-		function done()/*{{{*/
-		{
-			animMode(false);
-			refresh();
-		};
-		/*}}}*/
-
-		var $track = newTracker().mousedown(createDragger('move'))
-				.css({ cursor: 'move', position: 'absolute', zIndex: 360 })
-
-		$img_holder.append($track);
-		disableHandles();
-
-		return {
-			updateVisible: updateVisible,
-			update: update,
-			release: release,
-			refresh: refresh,
-			setCursor: function (cursor) { $track.css('cursor',cursor); },
-			enableHandles: enableHandles,
-			enableOnly: function() { seehandles = true; },
-			showHandles: showHandles,
-			disableHandles: disableHandles,
-			animMode: animMode,
-			done: done
-		};
-	}();
-	/*}}}*/
-	var Tracker = function()/*{{{*/
-	{
-		var onMove		= function() { },
-			onDone		= function() { },
-			trackDoc	= options.trackDocument;
-
-		if (!trackDoc)
-		{
-			$trk
-				.mousemove(trackMove)
-				.mouseup(trackUp)
-				.mouseout(trackUp)
-			;
-		}
-
-		function toFront()/*{{{*/
-		{
-			$trk.css({zIndex:450});
-			if (trackDoc)
-			{
-				$(document)
-					.mousemove(trackMove)
-					.mouseup(trackUp)
-				;
-			}
-		}
-		/*}}}*/
-		function toBack()/*{{{*/
-		{
-			$trk.css({zIndex:290});
-			if (trackDoc)
-			{
-				$(document)
-					.unbind('mousemove',trackMove)
-					.unbind('mouseup',trackUp)
-				;
-			}
-		}
-		/*}}}*/
-		function trackMove(e)/*{{{*/
-		{
-			onMove(mouseAbs(e));
-		};
-		/*}}}*/
-		function trackUp(e)/*{{{*/
-		{
-			e.preventDefault();
-			e.stopPropagation();
-
-			if (btndown)
-			{
-				btndown = false;
-
-				onDone(mouseAbs(e));
-				options.onSelect(unscale(Coords.getFixed()));
-				toBack();
-				onMove = function() { };
-				onDone = function() { };
-			}
-
-			return false;
-		};
-		/*}}}*/
-
-		function activateHandlers(move,done)/* {{{ */
-		{
-			btndown = true;
-			onMove = move;
-			onDone = done;
-			toFront();
-			return false;
-		};
-		/* }}} */
-
-		function setCursor(t) { $trk.css('cursor',t); };
-
-		$img.before($trk);
-		return {
-			activateHandlers: activateHandlers,
-			setCursor: setCursor
-		};
-	}();
-	/*}}}*/
-	var KeyManager = function()/*{{{*/
-	{
-		var $keymgr = $('<input type="radio" />')
-				.css({ position: 'absolute', left: '-30px' })
-				.keypress(parseKey)
-				.blur(onBlur),
-
-			$keywrap = $('<div />')
-				.css({
-					position: 'absolute',
-					overflow: 'hidden'
-				})
-				.append($keymgr)
-		;
-
-		function watchKeys()/*{{{*/
-		{
-			if (options.keySupport)
-			{
-				$keymgr.show();
-				$keymgr.focus();
-			}
-		};
-		/*}}}*/
-		function onBlur(e)/*{{{*/
-		{
-			$keymgr.hide();
-		};
-		/*}}}*/
-		function doNudge(e,x,y)/*{{{*/
-		{
-			if (options.allowMove) {
-				Coords.moveOffset([x,y]);
-				Selection.updateVisible();
-			};
-			e.preventDefault();
-			e.stopPropagation();
-		};
-		/*}}}*/
-		function parseKey(e)/*{{{*/
-		{
-			if (e.ctrlKey) return true;
-			shift_down = e.shiftKey ? true : false;
-			var nudge = shift_down ? 10 : 1;
-			switch(e.keyCode)
-			{
-				case 37: doNudge(e,-nudge,0); break;
-				case 39: doNudge(e,nudge,0); break;
-				case 38: doNudge(e,0,-nudge); break;
-				case 40: doNudge(e,0,nudge); break;
-
-				case 27: Selection.release(); break;
-
-				case 9: return true;
-			}
-
-			return nothing(e);
-		};
-		/*}}}*/
-		
-		if (options.keySupport) $keywrap.insertBefore($img);
-		return {
-			watchKeys: watchKeys
-		};
-	}();
-	/*}}}*/
-
-	// }}}
-	// Internal Methods {{{
-
-	function px(n) { return '' + parseInt(n) + 'px'; };
-	function pct(n) { return '' + parseInt(n) + '%'; };
-	function cssClass(cl) { return options.baseClass + '-' + cl; };
-	function getPos(obj)/*{{{*/
-	{
-		// Updated in v0.9.4 to use built-in dimensions plugin
-		var pos = $(obj).offset();
-		return [ pos.left, pos.top ];
-	};
-	/*}}}*/
-	function mouseAbs(e)/*{{{*/
-	{
-		return [ (e.pageX - docOffset[0]), (e.pageY - docOffset[1]) ];
-	};
-	/*}}}*/
-	function myCursor(type)/*{{{*/
-	{
-		if (type != lastcurs)
-		{
-			Tracker.setCursor(type);
-			//Handles.xsetCursor(type);
-			lastcurs = type;
-		}
-	};
-	/*}}}*/
-	function startDragMode(mode,pos)/*{{{*/
-	{
-		docOffset = getPos($img);
-		Tracker.setCursor(mode=='move'?mode:mode+'-resize');
-
-		if (mode == 'move')
-			return Tracker.activateHandlers(createMover(pos), doneSelect);
-
-		var fc = Coords.getFixed();
-		var opp = oppLockCorner(mode);
-		var opc = Coords.getCorner(oppLockCorner(opp));
-
-		Coords.setPressed(Coords.getCorner(opp));
-		Coords.setCurrent(opc);
-
-		Tracker.activateHandlers(dragmodeHandler(mode,fc),doneSelect);
-	};
-	/*}}}*/
-	function dragmodeHandler(mode,f)/*{{{*/
-	{
-		return function(pos) {
-			if (!options.aspectRatio) switch(mode)
-			{
-				case 'e': pos[1] = f.y2; break;
-				case 'w': pos[1] = f.y2; break;
-				case 'n': pos[0] = f.x2; break;
-				case 's': pos[0] = f.x2; break;
-			}
-			else switch(mode)
-			{
-				case 'e': pos[1] = f.y+1; break;
-				case 'w': pos[1] = f.y+1; break;
-				case 'n': pos[0] = f.x+1; break;
-				case 's': pos[0] = f.x+1; break;
-			}
-			Coords.setCurrent(pos);
-			Selection.update();
-		};
-	};
-	/*}}}*/
-	function createMover(pos)/*{{{*/
-	{
-		var lloc = pos;
-		KeyManager.watchKeys();
-
-		return function(pos)
-		{
-			Coords.moveOffset([pos[0] - lloc[0], pos[1] - lloc[1]]);
-			lloc = pos;
-			
-			Selection.update();
-		};
-	};
-	/*}}}*/
-	function oppLockCorner(ord)/*{{{*/
-	{
-		switch(ord)
-		{
-			case 'n': return 'sw';
-			case 's': return 'nw';
-			case 'e': return 'nw';
-			case 'w': return 'ne';
-			case 'ne': return 'sw';
-			case 'nw': return 'se';
-			case 'se': return 'nw';
-			case 'sw': return 'ne';
-		};
-	};
-	/*}}}*/
-	function createDragger(ord)/*{{{*/
-	{
-		return function(e) {
-			if (options.disabled) return false;
-			if ((ord == 'move') && !options.allowMove) return false;
-			btndown = true;
-			startDragMode(ord,mouseAbs(e));
-			e.stopPropagation();
-			e.preventDefault();
-			return false;
-		};
-	};
-	/*}}}*/
-	function presize($obj,w,h)/*{{{*/
-	{
-		var nw = $obj.width(), nh = $obj.height();
-		if ((nw > w) && w > 0)
-		{
-			nw = w;
-			nh = (w/$obj.width()) * $obj.height();
-		}
-		if ((nh > h) && h > 0)
-		{
-			nh = h;
-			nw = (h/$obj.height()) * $obj.width();
-		}
-		xscale = $obj.width() / nw;
-		yscale = $obj.height() / nh;
-		$obj.width(nw).height(nh);
-	};
-	/*}}}*/
-	function unscale(c)/*{{{*/
-	{
-		return {
-			x: parseInt(c.x * xscale), y: parseInt(c.y * yscale), 
-			x2: parseInt(c.x2 * xscale), y2: parseInt(c.y2 * yscale), 
-			w: parseInt(c.w * xscale), h: parseInt(c.h * yscale)
-		};
-	};
-	/*}}}*/
-	function doneSelect(pos)/*{{{*/
-	{
-		var c = Coords.getFixed();
-		if (c.w > options.minSelect[0] && c.h > options.minSelect[1])
-		{
-			Selection.enableHandles();
-			Selection.done();
-		}
-		else
-		{
-			Selection.release();
-		}
-		Tracker.setCursor( options.allowSelect?'crosshair':'default' );
-	};
-	/*}}}*/
-	function newSelection(e)/*{{{*/
-	{
-		if (options.disabled) return false;
-		if (!options.allowSelect) return false;
-		btndown = true;
-		docOffset = getPos($img);
-		Selection.disableHandles();
-		myCursor('crosshair');
-		var pos = mouseAbs(e);
-		Coords.setPressed(pos);
-		Tracker.activateHandlers(selectDrag,doneSelect);
-		KeyManager.watchKeys();
-		Selection.update();
-
-		e.stopPropagation();
-		e.preventDefault();
-		return false;
-	};
-	/*}}}*/
-	function selectDrag(pos)/*{{{*/
-	{
-		Coords.setCurrent(pos);
-		Selection.update();
-	};
-	/*}}}*/
-	function newTracker()
-	{
-		var trk = $('<div></div>').addClass(cssClass('tracker'));
-		$.browser.msie && trk.css({ opacity: 0, backgroundColor: 'white' });
-		return trk;
-	};
-
-	// }}}
-	// API methods {{{
-		
-	function animateTo(a)/*{{{*/
-	{
-		var x1 = a[0] / xscale,
-			y1 = a[1] / yscale,
-			x2 = a[2] / xscale,
-			y2 = a[3] / yscale;
-
-		if (animating) return;
-
-		var animto = Coords.flipCoords(x1,y1,x2,y2);
-		var c = Coords.getFixed();
-		var animat = initcr = [ c.x, c.y, c.x2, c.y2 ];
-		var interv = options.animationDelay;
-
-		var x = animat[0];
-		var y = animat[1];
-		var x2 = animat[2];
-		var y2 = animat[3];
-		var ix1 = animto[0] - initcr[0];
-		var iy1 = animto[1] - initcr[1];
-		var ix2 = animto[2] - initcr[2];
-		var iy2 = animto[3] - initcr[3];
-		var pcent = 0;
-		var velocity = options.swingSpeed;
-
-		Selection.animMode(true);
-
-		var animator = function()
-		{
-			return function()
-			{
-				pcent += (100 - pcent) / velocity;
-
-				animat[0] = x + ((pcent / 100) * ix1);
-				animat[1] = y + ((pcent / 100) * iy1);
-				animat[2] = x2 + ((pcent / 100) * ix2);
-				animat[3] = y2 + ((pcent / 100) * iy2);
-
-				if (pcent < 100) animateStart();
-					else Selection.done();
-
-				if (pcent >= 99.8) pcent = 100;
-
-				setSelectRaw(animat);
-			};
-		}();
-
-		function animateStart()
-			{ window.setTimeout(animator,interv); };
-
-		animateStart();
-	};
-	/*}}}*/
-	function setSelect(rect)//{{{
-	{
-		setSelectRaw([rect[0]/xscale,rect[1]/yscale,rect[2]/xscale,rect[3]/yscale]);
-	};
-	//}}}
-	function setSelectRaw(l) /*{{{*/
-	{
-		Coords.setPressed([l[0],l[1]]);
-		Coords.setCurrent([l[2],l[3]]);
-		Selection.update();
-	};
-	/*}}}*/
-	function setOptions(opt)/*{{{*/
-	{
-		if (typeof(opt) != 'object') opt = { };
-		options = $.extend(options,opt);
-
-		if (typeof(options.onChange)!=='function')
-			options.onChange = function() { };
-
-		if (typeof(options.onSelect)!=='function')
-			options.onSelect = function() { };
-
-	};
-	/*}}}*/
-	function tellSelect()/*{{{*/
-	{
-		return unscale(Coords.getFixed());
-	};
-	/*}}}*/
-	function tellScaled()/*{{{*/
-	{
-		return Coords.getFixed();
-	};
-	/*}}}*/
-	function setOptionsNew(opt)/*{{{*/
-	{
-		setOptions(opt);
-		interfaceUpdate();
-	};
-	/*}}}*/
-	function disableCrop()//{{{
-	{
-		options.disabled = true;
-		Selection.disableHandles();
-		Selection.setCursor('default');
-		Tracker.setCursor('default');
-	};
-	//}}}
-	function enableCrop()//{{{
-	{
-		options.disabled = false;
-		interfaceUpdate();
-	};
-	//}}}
-	function cancelCrop()//{{{
-	{
-		Selection.done();
-		Tracker.activateHandlers(null,null);
-	};
-	//}}}
-	function destroy()//{{{
-	{
-		$div.remove();
-		$origimg.show();
-	};
-	//}}}
-
-	function interfaceUpdate(alt)//{{{
-	// This method tweaks the interface based on options object.
-	// Called when options are changed and at end of initialization.
-	{
-		options.allowResize ?
-			alt?Selection.enableOnly():Selection.enableHandles():
-			Selection.disableHandles();
-
-		Tracker.setCursor( options.allowSelect? 'crosshair': 'default' );
-		Selection.setCursor( options.allowMove? 'move': 'default' );
-
-		$div.css('backgroundColor',options.bgColor);
-
-		if ('setSelect' in options) {
-			setSelect(opt.setSelect);
-			Selection.done();
-			delete(options.setSelect);
-		}
-
-		if ('trueSize' in options) {
-			xscale = options.trueSize[0] / boundx;
-			yscale = options.trueSize[1] / boundy;
-		}
-
-		xlimit = options.maxSize[0] || 0;
-		ylimit = options.maxSize[1] || 0;
-		xmin = options.minSize[0] || 0;
-		ymin = options.minSize[1] || 0;
-
-		if ('outerImage' in options)
-		{
-			$img.attr('src',options.outerImage);
-			delete(options.outerImage);
-		}
-
-		Selection.refresh();
-	};
-	//}}}
-
-	// }}}
-
-	$hdl_holder.hide();
-	interfaceUpdate(true);
-	
-	var api = {
-		animateTo: animateTo,
-		setSelect: setSelect,
-		setOptions: setOptionsNew,
-		tellSelect: tellSelect,
-		tellScaled: tellScaled,
-
-		disable: disableCrop,
-		enable: enableCrop,
-		cancel: cancelCrop,
-
-		focus: KeyManager.watchKeys,
-
-		getBounds: function() { return [ boundx * xscale, boundy * yscale ]; },
-		getWidgetSize: function() { return [ boundx, boundy ]; },
-
-		release: Selection.release,
-		destroy: destroy
-
-	};
-
-	$origimg.data('Jcrop',api);
-	return api;
-};
-
-$.fn.Jcrop = function(options)/*{{{*/
-{
-	function attachWhenDone(from)/*{{{*/
-	{
-		var loadsrc = options.useImg || from.src;
-		var img = new Image();
-		img.onload = function() { $.Jcrop(from,options); };
-		img.src = loadsrc;
-	};
-	/*}}}*/
-	if (typeof(options) !== 'object') options = { };
-
-	// Iterate over each object, attach Jcrop
-	this.each(function()
-	{
-		// If we've already attached to this object
-		if ($(this).data('Jcrop'))
-		{
-			// The API can be requested this way (undocumented)
-			if (options == 'api') return $(this).data('Jcrop');
-			// Otherwise, we just reset the options...
-			else $(this).data('Jcrop').setOptions(options);
-		}
-		// If we haven't been attached, preload and attach
-		else attachWhenDone(this);
-	});
-
-	// Return "this" so we're chainable a la jQuery plugin-style!
-	return this;
-};
-/*}}}*/
-
-})(jQuery);
--- a/web/wp-includes/js/jcrop/jquery.Jcrop.js	Wed Dec 19 12:35:13 2012 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-(function(a){a.Jcrop=function(d,A){var d=d,A=A;if(typeof(d)!=="object"){d=a(d)[0]}if(typeof(A)!=="object"){A={}}if(!("trackDocument" in A)){A.trackDocument=a.browser.msie?false:true;if(a.browser.msie&&a.browser.version.split(".")[0]=="8"){A.trackDocument=true}}if(!("keySupport" in A)){A.keySupport=a.browser.msie?false:true}var U={trackDocument:false,baseClass:"jcrop",addClass:null,bgColor:"black",bgOpacity:0.6,borderOpacity:0.4,handleOpacity:0.5,handlePad:5,handleSize:9,handleOffset:5,edgeMargin:14,aspectRatio:0,keySupport:true,cornerHandles:true,sideHandles:true,drawBorders:true,dragEdges:true,boxWidth:0,boxHeight:0,boundary:8,animationDelay:20,swingSpeed:3,allowSelect:true,allowMove:true,allowResize:true,minSelect:[0,0],maxSize:[0,0],minSize:[0,0],onChange:function(){},onSelect:function(){}};var H=U;z(A);var W=a(d);var al=W.clone().removeAttr("id").css({position:"absolute"});al.width(W.width());al.height(W.height());W.after(al).hide();T(al,H.boxWidth,H.boxHeight);var Q=al.width(),O=al.height(),Z=a("<div />").width(Q).height(O).addClass(C("holder")).css({position:"relative",backgroundColor:H.bgColor}).insertAfter(W).append(al);if(H.addClass){Z.addClass(H.addClass)}var I=a("<img />").attr("src",al.attr("src")).css("position","absolute").width(Q).height(O);var k=a("<div />").width(K(100)).height(K(100)).css({zIndex:310,position:"absolute",overflow:"hidden"}).append(I);var L=a("<div />").width(K(100)).height(K(100)).css("zIndex",320);var y=a("<div />").css({position:"absolute",zIndex:300}).insertBefore(al).append(k,L);var t=H.boundary;var b=ae().width(Q+(t*2)).height(O+(t*2)).css({position:"absolute",top:l(-t),left:l(-t),zIndex:290}).mousedown(ac);var x,ah,p,S;var M,e,n=true;var ad=D(al),r,an,am,B,ab;var aa=function(){var aq=0,aC=0,ap=0,aB=0,au,ar;function aw(aF){var aF=at(aF);ap=aq=aF[0];aB=aC=aF[1]}function av(aF){var aF=at(aF);au=aF[0]-ap;ar=aF[1]-aB;ap=aF[0];aB=aF[1]}function aE(){return[au,ar]}function ao(aH){var aG=aH[0],aF=aH[1];if(0>aq+aG){aG-=aG+aq}if(0>aC+aF){aF-=aF+aC}if(O<aB+aF){aF+=O-(aB+aF)}if(Q<ap+aG){aG+=Q-(ap+aG)}aq+=aG;ap+=aG;aC+=aF;aB+=aF}function ax(aF){var aG=aD();switch(aF){case"ne":return[aG.x2,aG.y];case"nw":return[aG.x,aG.y];case"se":return[aG.x2,aG.y2];case"sw":return[aG.x,aG.y2]}}function aD(){if(!H.aspectRatio){return aA()}var aH=H.aspectRatio,aO=H.minSize[0]/M,aN=H.minSize[1]/e,aG=H.maxSize[0]/M,aQ=H.maxSize[1]/e,aI=ap-aq,aP=aB-aC,aJ=Math.abs(aI),aK=Math.abs(aP),aL=aJ/aK,aF,aM;if(aG==0){aG=Q*10}if(aQ==0){aQ=O*10}if(aL<aH){aM=aB;w=aK*aH;aF=aI<0?aq-w:w+aq;if(aF<0){aF=0;h=Math.abs((aF-aq)/aH);aM=aP<0?aC-h:h+aC}else{if(aF>Q){aF=Q;h=Math.abs((aF-aq)/aH);aM=aP<0?aC-h:h+aC}}}else{aF=ap;h=aJ/aH;aM=aP<0?aC-h:aC+h;if(aM<0){aM=0;w=Math.abs((aM-aC)*aH);aF=aI<0?aq-w:w+aq}else{if(aM>O){aM=O;w=Math.abs(aM-aC)*aH;aF=aI<0?aq-w:w+aq}}}if(aF>aq){if(aF-aq<aO){aF=aq+aO}else{if(aF-aq>aG){aF=aq+aG}}if(aM>aC){aM=aC+(aF-aq)/aH}else{aM=aC-(aF-aq)/aH}}else{if(aF<aq){if(aq-aF<aO){aF=aq-aO}else{if(aq-aF>aG){aF=aq-aG}}if(aM>aC){aM=aC+(aq-aF)/aH}else{aM=aC-(aq-aF)/aH}}}if(aF<0){aq-=aF;aF=0}else{if(aF>Q){aq-=aF-Q;aF=Q}}if(aM<0){aC-=aM;aM=0}else{if(aM>O){aC-=aM-O;aM=O}}return last=az(ay(aq,aC,aF,aM))}function at(aF){if(aF[0]<0){aF[0]=0}if(aF[1]<0){aF[1]=0}if(aF[0]>Q){aF[0]=Q}if(aF[1]>O){aF[1]=O}return[aF[0],aF[1]]}function ay(aI,aK,aH,aJ){var aM=aI,aL=aH,aG=aK,aF=aJ;if(aH<aI){aM=aH;aL=aI}if(aJ<aK){aG=aJ;aF=aK}return[Math.round(aM),Math.round(aG),Math.round(aL),Math.round(aF)]}function aA(){var aG=ap-aq;var aF=aB-aC;if(x&&(Math.abs(aG)>x)){ap=(aG>0)?(aq+x):(aq-x)}if(ah&&(Math.abs(aF)>ah)){aB=(aF>0)?(aC+ah):(aC-ah)}if(S&&(Math.abs(aF)<S)){aB=(aF>0)?(aC+S):(aC-S)}if(p&&(Math.abs(aG)<p)){ap=(aG>0)?(aq+p):(aq-p)}if(aq<0){ap-=aq;aq-=aq}if(aC<0){aB-=aC;aC-=aC}if(ap<0){aq-=ap;ap-=ap}if(aB<0){aC-=aB;aB-=aB}if(ap>Q){var aH=ap-Q;aq-=aH;ap-=aH}if(aB>O){var aH=aB-O;aC-=aH;aB-=aH}if(aq>Q){var aH=aq-O;aB-=aH;aC-=aH}if(aC>O){var aH=aC-O;aB-=aH;aC-=aH}return az(ay(aq,aC,ap,aB))}function az(aF){return{x:aF[0],y:aF[1],x2:aF[2],y2:aF[3],w:aF[2]-aF[0],h:aF[3]-aF[1]}}return{flipCoords:ay,setPressed:aw,setCurrent:av,getOffset:aE,moveOffset:ao,getCorner:ax,getFixed:aD}}();var X=function(){var aw,ar,aC,aB,aK=370;var av={};var aO={};var aq=false;var aA=H.handleOffset;if(H.drawBorders){av={top:ax("hline").css("top",a.browser.msie?l(-1):l(0)),bottom:ax("hline"),left:ax("vline"),right:ax("vline")}}if(H.dragEdges){aO.t=aJ("n");aO.b=aJ("s");aO.r=aJ("e");aO.l=aJ("w")}H.sideHandles&&aF(["n","s","e","w"]);H.cornerHandles&&aF(["sw","nw","ne","se"]);function ax(aR){var aS=a("<div />").css({position:"absolute",opacity:H.borderOpacity}).addClass(C(aR));k.append(aS);return aS}function ap(aR,aS){var aT=a("<div />").mousedown(c(aR)).css({cursor:aR+"-resize",position:"absolute",zIndex:aS});L.append(aT);return aT}function aD(aR){return ap(aR,aK++).css({top:l(-aA+1),left:l(-aA+1),opacity:H.handleOpacity}).addClass(C("handle"))}function aJ(aT){var aW=H.handleSize,aX=aA,aV=aW,aS=aW,aU=aX,aR=aX;switch(aT){case"n":case"s":aS=K(100);break;case"e":case"w":aV=K(100);break}return ap(aT,aK++).width(aS).height(aV).css({top:l(-aU+1),left:l(-aR+1)})}function aF(aR){for(i in aR){aO[aR[i]]=aD(aR[i])}}function aH(aY){var aT=Math.round((aY.h/2)-aA),aS=Math.round((aY.w/2)-aA),aW=west=-aA+1,aV=aY.w-aA,aU=aY.h-aA,aR,aX;"e" in aO&&aO.e.css({top:l(aT),left:l(aV)})&&aO.w.css({top:l(aT)})&&aO.s.css({top:l(aU),left:l(aS)})&&aO.n.css({left:l(aS)});"ne" in aO&&aO.ne.css({left:l(aV)})&&aO.se.css({top:l(aU),left:l(aV)})&&aO.sw.css({top:l(aU)});"b" in aO&&aO.b.css({top:l(aU)})&&aO.r.css({left:l(aV)})}function az(aR,aS){I.css({top:l(-aS),left:l(-aR)});y.css({top:l(aS),left:l(aR)})}function aQ(aR,aS){y.width(aR).height(aS)}function at(){var aR=aa.getFixed();aa.setPressed([aR.x,aR.y]);aa.setCurrent([aR.x2,aR.y2]);aN()}function aN(){if(aB){return ay()}}function ay(){var aR=aa.getFixed();aQ(aR.w,aR.h);az(aR.x,aR.y);H.drawBorders&&av.right.css({left:l(aR.w-1)})&&av.bottom.css({top:l(aR.h-1)});aq&&aH(aR);aB||aP();H.onChange(Y(aR))}function aP(){y.show();al.css("opacity",H.bgOpacity);aB=true}function aL(){aM();y.hide();al.css("opacity",1);aB=false}function ao(){if(aq){aH(aa.getFixed());L.show()}}function aG(){aq=true;if(H.allowResize){aH(aa.getFixed());L.show();return true}}function aM(){aq=false;L.hide()}function aI(aR){(B=aR)?aM():aG()}function aE(){aI(false);at()}var au=ae().mousedown(c("move")).css({cursor:"move",position:"absolute",zIndex:360});k.append(au);aM();return{updateVisible:aN,update:ay,release:aL,refresh:at,setCursor:function(aR){au.css("cursor",aR)},enableHandles:aG,enableOnly:function(){aq=true},showHandles:ao,disableHandles:aM,animMode:aI,done:aE}}();var P=function(){var ap=function(){},ar=function(){},aq=H.trackDocument;if(!aq){b.mousemove(ao).mouseup(at).mouseout(at)}function ax(){b.css({zIndex:450});if(aq){a(document).mousemove(ao).mouseup(at)}}function aw(){b.css({zIndex:290});if(aq){a(document).unbind("mousemove",ao).unbind("mouseup",at)}}function ao(ay){ap(F(ay))}function at(ay){ay.preventDefault();ay.stopPropagation();if(r){r=false;ar(F(ay));H.onSelect(Y(aa.getFixed()));aw();ap=function(){};ar=function(){}}return false}function au(az,ay){r=true;ap=az;ar=ay;ax();return false}function av(ay){b.css("cursor",ay)}al.before(b);return{activateHandlers:au,setCursor:av}}();var ak=function(){var ar=a('<input type="radio" />').css({position:"absolute",left:"-30px"}).keypress(ao).blur(at),au=a("<div />").css({position:"absolute",overflow:"hidden"}).append(ar);function ap(){if(H.keySupport){ar.show();ar.focus()}}function at(av){ar.hide()}function aq(aw,av,ax){if(H.allowMove){aa.moveOffset([av,ax]);X.updateVisible()}aw.preventDefault();aw.stopPropagation()}function ao(aw){if(aw.ctrlKey){return true}ab=aw.shiftKey?true:false;var av=ab?10:1;switch(aw.keyCode){case 37:aq(aw,-av,0);break;case 39:aq(aw,av,0);break;case 38:aq(aw,0,-av);break;case 40:aq(aw,0,av);break;case 27:X.release();break;case 9:return true}return nothing(aw)}if(H.keySupport){au.insertBefore(al)}return{watchKeys:ap}}();function l(ao){return""+parseInt(ao)+"px"}function K(ao){return""+parseInt(ao)+"%"}function C(ao){return H.baseClass+"-"+ao}function D(ao){var ap=a(ao).offset();return[ap.left,ap.top]}function F(ao){return[(ao.pageX-ad[0]),(ao.pageY-ad[1])]}function E(ao){if(ao!=an){P.setCursor(ao);an=ao}}function f(aq,at){ad=D(al);P.setCursor(aq=="move"?aq:aq+"-resize");if(aq=="move"){return P.activateHandlers(R(at),o)}var ao=aa.getFixed();var ap=q(aq);var ar=aa.getCorner(q(ap));aa.setPressed(aa.getCorner(ap));aa.setCurrent(ar);P.activateHandlers(G(aq,ao),o)}function G(ap,ao){return function(aq){if(!H.aspectRatio){switch(ap){case"e":aq[1]=ao.y2;break;case"w":aq[1]=ao.y2;break;case"n":aq[0]=ao.x2;break;case"s":aq[0]=ao.x2;break}}else{switch(ap){case"e":aq[1]=ao.y+1;break;case"w":aq[1]=ao.y+1;break;case"n":aq[0]=ao.x+1;break;case"s":aq[0]=ao.x+1;break}}aa.setCurrent(aq);X.update()}}function R(ap){var ao=ap;ak.watchKeys();return function(aq){aa.moveOffset([aq[0]-ao[0],aq[1]-ao[1]]);ao=aq;X.update()}}function q(ao){switch(ao){case"n":return"sw";case"s":return"nw";case"e":return"nw";case"w":return"ne";case"ne":return"sw";case"nw":return"se";case"se":return"nw";case"sw":return"ne"}}function c(ao){return function(ap){if(H.disabled){return false}if((ao=="move")&&!H.allowMove){return false}r=true;f(ao,F(ap));ap.stopPropagation();ap.preventDefault();return false}}function T(at,ap,ar){var ao=at.width(),aq=at.height();if((ao>ap)&&ap>0){ao=ap;aq=(ap/at.width())*at.height()}if((aq>ar)&&ar>0){aq=ar;ao=(ar/at.height())*at.width()}M=at.width()/ao;e=at.height()/aq;at.width(ao).height(aq)}function Y(ao){return{x:parseInt(ao.x*M),y:parseInt(ao.y*e),x2:parseInt(ao.x2*M),y2:parseInt(ao.y2*e),w:parseInt(ao.w*M),h:parseInt(ao.h*e)}}function o(ap){var ao=aa.getFixed();if(ao.w>H.minSelect[0]&&ao.h>H.minSelect[1]){X.enableHandles();X.done()}else{X.release()}P.setCursor(H.allowSelect?"crosshair":"default")}function ac(ao){if(H.disabled){return false}if(!H.allowSelect){return false}r=true;ad=D(al);X.disableHandles();E("crosshair");var ap=F(ao);aa.setPressed(ap);P.activateHandlers(aj,o);ak.watchKeys();X.update();ao.stopPropagation();ao.preventDefault();return false}function aj(ao){aa.setCurrent(ao);X.update()}function ae(){var ao=a("<div></div>").addClass(C("tracker"));a.browser.msie&&ao.css({opacity:0,backgroundColor:"white"});return ao}function s(aG){var aB=aG[0]/M,ap=aG[1]/e,aA=aG[2]/M,ao=aG[3]/e;if(B){return}var az=aa.flipCoords(aB,ap,aA,ao);var aE=aa.getFixed();var ar=initcr=[aE.x,aE.y,aE.x2,aE.y2];var aq=H.animationDelay;var ax=ar[0];var aw=ar[1];var aA=ar[2];var ao=ar[3];var aD=az[0]-initcr[0];var au=az[1]-initcr[1];var aC=az[2]-initcr[2];var at=az[3]-initcr[3];var ay=0;var av=H.swingSpeed;X.animMode(true);var aF=function(){return function(){ay+=(100-ay)/av;ar[0]=ax+((ay/100)*aD);ar[1]=aw+((ay/100)*au);ar[2]=aA+((ay/100)*aC);ar[3]=ao+((ay/100)*at);if(ay<100){aH()}else{X.done()}if(ay>=99.8){ay=100}ai(ar)}}();function aH(){window.setTimeout(aF,aq)}aH()}function J(ao){ai([ao[0]/M,ao[1]/e,ao[2]/M,ao[3]/e])}function ai(ao){aa.setPressed([ao[0],ao[1]]);aa.setCurrent([ao[2],ao[3]]);X.update()}function z(ao){if(typeof(ao)!="object"){ao={}}H=a.extend(H,ao);if(typeof(H.onChange)!=="function"){H.onChange=function(){}}if(typeof(H.onSelect)!=="function"){H.onSelect=function(){}}}function j(){return Y(aa.getFixed())}function ag(){return aa.getFixed()}function u(ao){z(ao);N()}function v(){H.disabled=true;X.disableHandles();X.setCursor("default");P.setCursor("default")}function V(){H.disabled=false;N()}function m(){X.done();P.activateHandlers(null,null)}function af(){Z.remove();W.show()}function N(ao){H.allowResize?ao?X.enableOnly():X.enableHandles():X.disableHandles();P.setCursor(H.allowSelect?"crosshair":"default");X.setCursor(H.allowMove?"move":"default");Z.css("backgroundColor",H.bgColor);if("setSelect" in H){J(A.setSelect);X.done();delete (H.setSelect)}if("trueSize" in H){M=H.trueSize[0]/Q;e=H.trueSize[1]/O}x=H.maxSize[0]||0;ah=H.maxSize[1]||0;p=H.minSize[0]||0;S=H.minSize[1]||0;if("outerImage" in H){al.attr("src",H.outerImage);delete (H.outerImage)}X.refresh()}L.hide();N(true);var g={animateTo:s,setSelect:J,setOptions:u,tellSelect:j,tellScaled:ag,disable:v,enable:V,cancel:m,focus:ak.watchKeys,getBounds:function(){return[Q*M,O*e]},getWidgetSize:function(){return[Q,O]},release:X.release,destroy:af};W.data("Jcrop",g);return g};a.fn.Jcrop=function(c){function b(f){var e=c.useImg||f.src;var d=new Image();d.onload=function(){a.Jcrop(f,c)};d.src=e}if(typeof(c)!=="object"){c={}}this.each(function(){if(a(this).data("Jcrop")){if(c=="api"){return a(this).data("Jcrop")}else{a(this).data("Jcrop").setOptions(c)}}else{b(this)}});return this}})(jQuery);
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-includes/js/jcrop/jquery.Jcrop.min.css	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,28 @@
+/* jquery.Jcrop.min.css v0.9.10 (build:20120429) */
+.jcrop-holder{direction:ltr;text-align:left;}
+.jcrop-vline,.jcrop-hline{background:#FFF url(Jcrop.gif) top left repeat;font-size:0;position:absolute;}
+.jcrop-vline{height:100%;width:1px!important;}
+.jcrop-hline{height:1px!important;width:100%;}
+.jcrop-vline.right{right:0;}
+.jcrop-hline.bottom{bottom:0;}
+.jcrop-handle{background-color:#333;border:1px #eee solid;font-size:1px;}
+.jcrop-tracker{-webkit-tap-highlight-color:transparent;-webkit-touch-callout:none;-webkit-user-select:none;height:100%;width:100%;}
+.jcrop-handle.ord-n{left:50%;margin-left:-4px;margin-top:-4px;top:0;}
+.jcrop-handle.ord-s{bottom:0;left:50%;margin-bottom:-4px;margin-left:-4px;}
+.jcrop-handle.ord-e{margin-right:-4px;margin-top:-4px;right:0;top:50%;}
+.jcrop-handle.ord-w{left:0;margin-left:-4px;margin-top:-4px;top:50%;}
+.jcrop-handle.ord-nw{left:0;margin-left:-4px;margin-top:-4px;top:0;}
+.jcrop-handle.ord-ne{margin-right:-4px;margin-top:-4px;right:0;top:0;}
+.jcrop-handle.ord-se{bottom:0;margin-bottom:-4px;margin-right:-4px;right:0;}
+.jcrop-handle.ord-sw{bottom:0;left:0;margin-bottom:-4px;margin-left:-4px;}
+.jcrop-dragbar.ord-n,.jcrop-dragbar.ord-s{height:7px;width:100%;}
+.jcrop-dragbar.ord-e,.jcrop-dragbar.ord-w{height:100%;width:7px;}
+.jcrop-dragbar.ord-n{margin-top:-4px;}
+.jcrop-dragbar.ord-s{bottom:0;margin-bottom:-4px;}
+.jcrop-dragbar.ord-e{margin-right:-4px;right:0;}
+.jcrop-dragbar.ord-w{margin-left:-4px;}
+.jcrop-light .jcrop-vline,.jcrop-light .jcrop-hline{background:#FFF;filter:Alpha(opacity=70)!important;opacity:.70!important;}
+.jcrop-light .jcrop-handle{-moz-border-radius:3px;-webkit-border-radius:3px;background-color:#000;border-color:#FFF;border-radius:3px;}
+.jcrop-dark .jcrop-vline,.jcrop-dark .jcrop-hline{background:#000;filter:Alpha(opacity=70)!important;opacity:.7!important;}
+.jcrop-dark .jcrop-handle{-moz-border-radius:3px;-webkit-border-radius:3px;background-color:#FFF;border-color:#000;border-radius:3px;}
+.jcrop-holder img,img.jcrop-preview{max-width:none;}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-includes/js/jcrop/jquery.Jcrop.min.js	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,22 @@
+/**
+ * jquery.Jcrop.min.js v0.9.10 (build:20120429)
+ * jQuery Image Cropping Plugin - released under MIT License
+ * Copyright (c) 2008-2012 Tapmodo Interactive LLC
+ * https://github.com/tapmodo/Jcrop
+ */
+(function(a){a.Jcrop=function(b,c){function h(a){return a+"px"}function i(a){return d.baseClass+"-"+a}function j(){return a.fx.step.hasOwnProperty("backgroundColor")}function k(b){var c=a(b).offset();return[c.left,c.top]}function l(a){return[a.pageX-e[0],a.pageY-e[1]]}function m(b){typeof b!="object"&&(b={}),d=a.extend(d,b),a.each(["onChange","onSelect","onRelease","onDblClick"],function(a,b){typeof d[b]!="function"&&(d[b]=function(){})})}function n(a,b){e=k(E),bd.setCursor(a==="move"?a:a+"-resize");if(a==="move")return bd.activateHandlers(p(b),u);var c=ba.getFixed(),d=q(a),f=ba.getCorner(q(d));ba.setPressed(ba.getCorner(d)),ba.setCurrent(f),bd.activateHandlers(o(a,c),u)}function o(a,b){return function(c){if(!d.aspectRatio)switch(a){case"e":c[1]=b.y2;break;case"w":c[1]=b.y2;break;case"n":c[0]=b.x2;break;case"s":c[0]=b.x2}else switch(a){case"e":c[1]=b.y+1;break;case"w":c[1]=b.y+1;break;case"n":c[0]=b.x+1;break;case"s":c[0]=b.x+1}ba.setCurrent(c),bc.update()}}function p(a){var b=a;return be.watchKeys(),function(
+a){ba.moveOffset([a[0]-b[0],a[1]-b[1]]),b=a,bc.update()}}function q(a){switch(a){case"n":return"sw";case"s":return"nw";case"e":return"nw";case"w":return"ne";case"ne":return"sw";case"nw":return"se";case"se":return"nw";case"sw":return"ne"}}function r(a){return function(b){return d.disabled?!1:a==="move"&&!d.allowMove?!1:(e=k(E),X=!0,n(a,l(b)),b.stopPropagation(),b.preventDefault(),!1)}}function s(a,b,c){var d=a.width(),e=a.height();d>b&&b>0&&(d=b,e=b/a.width()*a.height()),e>c&&c>0&&(e=c,d=c/a.height()*a.width()),U=a.width()/d,V=a.height()/e,a.width(d).height(e)}function t(a){return{x:a.x*U,y:a.y*V,x2:a.x2*U,y2:a.y2*V,w:a.w*U,h:a.h*V}}function u(a){var b=ba.getFixed();b.w>d.minSelect[0]&&b.h>d.minSelect[1]?(bc.enableHandles(),bc.done()):bc.release(),bd.setCursor(d.allowSelect?"crosshair":"default")}function v(a){if(d.disabled)return!1;if(!d.allowSelect)return!1;X=!0,e=k(E),bc.disableHandles(),bd.setCursor("crosshair");var b=l(a);return ba.setPressed(b),bc.update(),bd.activateHandlers(w,u),be.watchKeys(),a.stopPropagation
+(),a.preventDefault(),!1}function w(a){ba.setCurrent(a),bc.update()}function z(){var b=a("<div></div>").addClass(i("tracker"));return a.browser.msie&&b.css({opacity:0,backgroundColor:"white"}),b}function bf(a){H.removeClass().addClass(i("holder")).addClass(a)}function bg(a,b){function t(){window.setTimeout(u,l)}var c=a[0]/U,e=a[1]/V,f=a[2]/U,g=a[3]/V;if(Y)return;var h=ba.flipCoords(c,e,f,g),i=ba.getFixed(),j=[i.x,i.y,i.x2,i.y2],k=j,l=d.animationDelay,m=h[0]-j[0],n=h[1]-j[1],o=h[2]-j[2],p=h[3]-j[3],q=0,r=d.swingSpeed;x=k[0],y=k[1],f=k[2],g=k[3],bc.animMode(!0);var s,u=function(){return function(){q+=(100-q)/r,k[0]=x+q/100*m,k[1]=y+q/100*n,k[2]=f+q/100*o,k[3]=g+q/100*p,q>=99.8&&(q=100),q<100?(bi(k),t()):(bc.done(),typeof b=="function"&&b.call(bt))}}();t()}function bh(a){bi([a[0]/U,a[1]/V,a[2]/U,a[3]/V]),d.onSelect.call(bt,t(ba.getFixed())),bc.enableHandles()}function bi(a){ba.setPressed([a[0],a[1]]),ba.setCurrent([a[2],a[3]]),bc.update()}function bj(){return t(ba.getFixed())}function bk(){return ba.getFixed()}function bl
+(a){m(a),bs()}function bm(){d.disabled=!0,bc.disableHandles(),bc.setCursor("default"),bd.setCursor("default")}function bn(){d.disabled=!1,bs()}function bo(){bc.done(),bd.activateHandlers(null,null)}function bp(){H.remove(),B.show(),a(b).removeData("Jcrop")}function bq(a,b){bc.release(),bm();var c=new Image;c.onload=function(){var e=c.width,f=c.height,g=d.boxWidth,h=d.boxHeight;E.width(e).height(f),E.attr("src",a),I.attr("src",a),s(E,g,h),F=E.width(),G=E.height(),I.width(F).height(G),N.width(F+M*2).height(G+M*2),H.width(F).height(G),bb.resize(F,G),bn(),typeof b=="function"&&b.call(bt)},c.src=a}function br(a,b,c){var e=b||d.bgColor;d.bgFade&&j()&&d.fadeTime&&!c?a.animate({backgroundColor:e},{queue:!1,duration:d.fadeTime}):a.css("backgroundColor",e)}function bs(a){d.allowResize?a?bc.enableOnly():bc.enableHandles():bc.disableHandles(),bd.setCursor(d.allowSelect?"crosshair":"default"),bc.setCursor(d.allowMove?"move":"default"),d.hasOwnProperty("trueSize")&&(U=d.trueSize[0]/F,V=d.trueSize[1]/G),d.hasOwnProperty("setSelect"
+)&&(bh(d.setSelect),bc.done(),delete d.setSelect),bb.refresh(),d.bgColor!=O&&(br(d.shade?bb.getShades():H,d.shade?d.shadeColor||d.bgColor:d.bgColor),O=d.bgColor),P!=d.bgOpacity&&(P=d.bgOpacity,d.shade?bb.refresh():bc.setBgOpacity(P)),Q=d.maxSize[0]||0,R=d.maxSize[1]||0,S=d.minSize[0]||0,T=d.minSize[1]||0,d.hasOwnProperty("outerImage")&&(E.attr("src",d.outerImage),delete d.outerImage),bc.refresh()}var d=a.extend({},a.Jcrop.defaults),e,f,g=!1;a.browser.msie&&a.browser.version.split(".")[0]==="6"&&(g=!0),typeof b!="object"&&(b=a(b)[0]),typeof c!="object"&&(c={}),m(c);var A={border:"none",visibility:"visible",margin:0,padding:0,position:"absolute",top:0,left:0},B=a(b),C=!0;if(b.tagName=="IMG"){if(B[0].width!=0&&B[0].height!=0)B.width(B[0].width),B.height(B[0].height);else{var D=new Image;D.src=B[0].src,B.width(D.width),B.height(D.height)}var E=B.clone().removeAttr("id").css(A).show();E.width(B.width()),E.height(B.height()),B.after(E).hide()}else E=B.css(A).show(),C=!1,d.shade===null&&(d.shade=!0);s(E,d.boxWidth,d.
+boxHeight);var F=E.width(),G=E.height(),H=a("<div />").width(F).height(G).addClass(i("holder")).css({position:"relative",backgroundColor:d.bgColor}).insertAfter(B).append(E);d.addClass&&H.addClass(d.addClass);var I=a("<div />"),J=a("<div />").width("100%").height("100%").css({zIndex:310,position:"absolute",overflow:"hidden"}),K=a("<div />").width("100%").height("100%").css("zIndex",320),L=a("<div />").css({position:"absolute",zIndex:600}).dblclick(function(){var a=ba.getFixed();d.onDblClick.call(bt,a)}).insertBefore(E).append(J,K);C&&(I=a("<img />").attr("src",E.attr("src")).css(A).width(F).height(G),J.append(I)),g&&L.css({overflowY:"hidden"});var M=d.boundary,N=z().width(F+M*2).height(G+M*2).css({position:"absolute",top:h(-M),left:h(-M),zIndex:290}).mousedown(v),O=d.bgColor,P=d.bgOpacity,Q,R,S,T,U,V,W=!0,X,Y,Z;e=k(E);var _=function(){function a(){var a={},b=["touchstart","touchmove","touchend"],c=document.createElement("div"),d;try{for(d=0;d<b.length;d++){var e=b[d];e="on"+e;var f=e in c;f||(c.setAttribute(e,"return;"
+),f=typeof c[e]=="function"),a[b[d]]=f}return a.touchstart&&a.touchend&&a.touchmove}catch(g){return!1}}function b(){return d.touchSupport===!0||d.touchSupport===!1?d.touchSupport:a()}return{createDragger:function(a){return function(b){return b.pageX=b.originalEvent.changedTouches[0].pageX,b.pageY=b.originalEvent.changedTouches[0].pageY,d.disabled?!1:a==="move"&&!d.allowMove?!1:(X=!0,n(a,l(b)),b.stopPropagation(),b.preventDefault(),!1)}},newSelection:function(a){return a.pageX=a.originalEvent.changedTouches[0].pageX,a.pageY=a.originalEvent.changedTouches[0].pageY,v(a)},isSupported:a,support:b()}}(),ba=function(){function h(d){d=n(d),c=a=d[0],e=b=d[1]}function i(a){a=n(a),f=a[0]-c,g=a[1]-e,c=a[0],e=a[1]}function j(){return[f,g]}function k(d){var f=d[0],g=d[1];0>a+f&&(f-=f+a),0>b+g&&(g-=g+b),G<e+g&&(g+=G-(e+g)),F<c+f&&(f+=F-(c+f)),a+=f,c+=f,b+=g,e+=g}function l(a){var b=m();switch(a){case"ne":return[b.x2,b.y];case"nw":return[b.x,b.y];case"se":return[b.x2,b.y2];case"sw":return[b.x,b.y2]}}function m(){if(!d.aspectRatio
+)return p();var f=d.aspectRatio,g=d.minSize[0]/U,h=d.maxSize[0]/U,i=d.maxSize[1]/V,j=c-a,k=e-b,l=Math.abs(j),m=Math.abs(k),n=l/m,r,s,t,u;return h===0&&(h=F*10),i===0&&(i=G*10),n<f?(s=e,t=m*f,r=j<0?a-t:t+a,r<0?(r=0,u=Math.abs((r-a)/f),s=k<0?b-u:u+b):r>F&&(r=F,u=Math.abs((r-a)/f),s=k<0?b-u:u+b)):(r=c,u=l/f,s=k<0?b-u:b+u,s<0?(s=0,t=Math.abs((s-b)*f),r=j<0?a-t:t+a):s>G&&(s=G,t=Math.abs(s-b)*f,r=j<0?a-t:t+a)),r>a?(r-a<g?r=a+g:r-a>h&&(r=a+h),s>b?s=b+(r-a)/f:s=b-(r-a)/f):r<a&&(a-r<g?r=a-g:a-r>h&&(r=a-h),s>b?s=b+(a-r)/f:s=b-(a-r)/f),r<0?(a-=r,r=0):r>F&&(a-=r-F,r=F),s<0?(b-=s,s=0):s>G&&(b-=s-G,s=G),q(o(a,b,r,s))}function n(a){return a[0]<0&&(a[0]=0),a[1]<0&&(a[1]=0),a[0]>F&&(a[0]=F),a[1]>G&&(a[1]=G),[a[0],a[1]]}function o(a,b,c,d){var e=a,f=c,g=b,h=d;return c<a&&(e=c,f=a),d<b&&(g=d,h=b),[e,g,f,h]}function p(){var d=c-a,f=e-b,g;return Q&&Math.abs(d)>Q&&(c=d>0?a+Q:a-Q),R&&Math.abs(f)>R&&(e=f>0?b+R:b-R),T/V&&Math.abs(f)<T/V&&(e=f>0?b+T/V:b-T/V),S/U&&Math.abs(d)<S/U&&(c=d>0?a+S/U:a-S/U),a<0&&(c-=a,a-=a),b<0&&(e-=b,b-=b),c<0&&
+(a-=c,c-=c),e<0&&(b-=e,e-=e),c>F&&(g=c-F,a-=g,c-=g),e>G&&(g=e-G,b-=g,e-=g),a>F&&(g=a-G,e-=g,b-=g),b>G&&(g=b-G,e-=g,b-=g),q(o(a,b,c,e))}function q(a){return{x:a[0],y:a[1],x2:a[2],y2:a[3],w:a[2]-a[0],h:a[3]-a[1]}}var a=0,b=0,c=0,e=0,f,g;return{flipCoords:o,setPressed:h,setCurrent:i,getOffset:j,moveOffset:k,getCorner:l,getFixed:m}}(),bb=function(){function f(a,b){e.left.css({height:h(b)}),e.right.css({height:h(b)})}function g(){return i(ba.getFixed())}function i(a){e.top.css({left:h(a.x),width:h(a.w),height:h(a.y)}),e.bottom.css({top:h(a.y2),left:h(a.x),width:h(a.w),height:h(G-a.y2)}),e.right.css({left:h(a.x2),width:h(F-a.x2)}),e.left.css({width:h(a.x)})}function j(){return a("<div />").css({position:"absolute",backgroundColor:d.shadeColor||d.bgColor}).appendTo(c)}function k(){b||(b=!0,c.insertBefore(E),g(),bc.setBgOpacity(1,0,1),I.hide(),l(d.shadeColor||d.bgColor,1),bc.isAwake()?n(d.bgOpacity,1):n(1,1))}function l(a,b){br(p(),a,b)}function m(){b&&(c.remove(),I.show(),b=!1,bc.isAwake()?bc.setBgOpacity(d.bgOpacity
+,1,1):(bc.setBgOpacity(1,1,1),bc.disableHandles()),br(H,0,1))}function n(a,e){b&&(d.bgFade&&!e?c.animate({opacity:1-a},{queue:!1,duration:d.fadeTime}):c.css({opacity:1-a}))}function o(){d.shade?k():m(),bc.isAwake()&&n(d.bgOpacity)}function p(){return c.children()}var b=!1,c=a("<div />").css({position:"absolute",zIndex:240,opacity:0}),e={top:j(),left:j().height(G),right:j().height(G),bottom:j()};return{update:g,updateRaw:i,getShades:p,setBgColor:l,enable:k,disable:m,resize:f,refresh:o,opacity:n}}(),bc=function(){function k(b){var c=a("<div />").css({position:"absolute",opacity:d.borderOpacity}).addClass(i(b));return J.append(c),c}function l(b,c){var d=a("<div />").mousedown(r(b)).css({cursor:b+"-resize",position:"absolute",zIndex:c}).addClass("ord-"+b);return _.support&&d.bind("touchstart.jcrop",_.createDragger(b)),K.append(d),d}function m(a){var b=d.handleSize;return l(a,c++).css({opacity:d.handleOpacity}).width(b).height(b).addClass(i("handle"))}function n(a){return l(a,c++).addClass("jcrop-dragbar")}function o
+(a){var b;for(b=0;b<a.length;b++)g[a[b]]=n(a[b])}function p(a){var b,c;for(c=0;c<a.length;c++){switch(a[c]){case"n":b="hline";break;case"s":b="hline bottom";break;case"e":b="vline right";break;case"w":b="vline"}e[a[c]]=k(b)}}function q(a){var b;for(b=0;b<a.length;b++)f[a[b]]=m(a[b])}function s(a,b){d.shade||I.css({top:h(-b),left:h(-a)}),L.css({top:h(b),left:h(a)})}function u(a,b){L.width(a).height(b)}function v(){var a=ba.getFixed();ba.setPressed([a.x,a.y]),ba.setCurrent([a.x2,a.y2]),w()}function w(a){if(b)return x(a)}function x(a){var c=ba.getFixed();u(c.w,c.h),s(c.x,c.y),d.shade&&bb.updateRaw(c),b||A(),a?d.onSelect.call(bt,t(c)):d.onChange.call(bt,t(c))}function y(a,c,e){if(!b&&!c)return;d.bgFade&&!e?E.animate({opacity:a},{queue:!1,duration:d.fadeTime}):E.css("opacity",a)}function A(){L.show(),d.shade?bb.opacity(P):y(P,!0),b=!0}function B(){F(),L.hide(),d.shade?bb.opacity(1):y(1),b=!1,d.onRelease.call(bt)}function C(){j&&K.show()}function D(){j=!0;if(d.allowResize)return K.show(),!0}function F(){j=!1,K.hide(
+)}function G(a){Y===a?F():D()}function H(){G(!1),v()}var b,c=370,e={},f={},g={},j=!1;d.dragEdges&&a.isArray(d.createDragbars)&&o(d.createDragbars),a.isArray(d.createHandles)&&q(d.createHandles),d.drawBorders&&a.isArray(d.createBorders)&&p(d.createBorders),a(document).bind("touchstart.jcrop-ios",function(b){a(b.currentTarget).hasClass("jcrop-tracker")&&b.stopPropagation()});var M=z().mousedown(r("move")).css({cursor:"move",position:"absolute",zIndex:360});return _.support&&M.bind("touchstart.jcrop",_.createDragger("move")),J.append(M),F(),{updateVisible:w,update:x,release:B,refresh:v,isAwake:function(){return b},setCursor:function(a){M.css("cursor",a)},enableHandles:D,enableOnly:function(){j=!0},showHandles:C,disableHandles:F,animMode:G,setBgOpacity:y,done:H}}(),bd=function(){function f(){N.css({zIndex:450}),_.support&&a(document).bind("touchmove.jcrop",k).bind("touchend.jcrop",m),e&&a(document).bind("mousemove.jcrop",h).bind("mouseup.jcrop",i)}function g(){N.css({zIndex:290}),a(document).unbind(".jcrop")}function h
+(a){return b(l(a)),!1}function i(a){return a.preventDefault(),a.stopPropagation(),X&&(X=!1,c(l(a)),bc.isAwake()&&d.onSelect.call(bt,t(ba.getFixed())),g(),b=function(){},c=function(){}),!1}function j(a,d){return X=!0,b=a,c=d,f(),!1}function k(a){return a.pageX=a.originalEvent.changedTouches[0].pageX,a.pageY=a.originalEvent.changedTouches[0].pageY,h(a)}function m(a){return a.pageX=a.originalEvent.changedTouches[0].pageX,a.pageY=a.originalEvent.changedTouches[0].pageY,i(a)}function n(a){N.css("cursor",a)}var b=function(){},c=function(){},e=d.trackDocument;return e||N.mousemove(h).mouseup(i).mouseout(i),E.before(N),{activateHandlers:j,setCursor:n}}(),be=function(){function e(){d.keySupport&&(b.show(),b.focus())}function f(a){b.hide()}function h(a,b,c){d.allowMove&&(ba.moveOffset([b,c]),bc.updateVisible(!0)),a.preventDefault(),a.stopPropagation()}function i(a){if(a.ctrlKey||a.metaKey)return!0;Z=a.shiftKey?!0:!1;var b=Z?10:1;switch(a.keyCode){case 37:h(a,-b,0);break;case 39:h(a,b,0);break;case 38:h(a,0,-b);break;case 40
+:h(a,0,b);break;case 27:d.allowSelect&&bc.release();break;case 9:return!0}return!1}var b=a('<input type="radio" />').css({position:"fixed",left:"-120px",width:"12px"}),c=a("<div />").css({position:"absolute",overflow:"hidden"}).append(b);return d.keySupport&&(b.keydown(i).blur(f),g||!d.fixedSupport?(b.css({position:"absolute",left:"-20px"}),c.append(b).insertBefore(E)):b.insertBefore(E)),{watchKeys:e}}();_.support&&N.bind("touchstart.jcrop",_.newSelection),K.hide(),bs(!0);var bt={setImage:bq,animateTo:bg,setSelect:bh,setOptions:bl,tellSelect:bj,tellScaled:bk,setClass:bf,disable:bm,enable:bn,cancel:bo,release:bc.release,destroy:bp,focus:be.watchKeys,getBounds:function(){return[F*U,G*V]},getWidgetSize:function(){return[F,G]},getScaleFactor:function(){return[U,V]},getOptions:function(){return d},ui:{holder:H,selection:L}};return a.browser.msie&&H.bind("selectstart",function(){return!1}),B.data("Jcrop",bt),bt},a.fn.Jcrop=function(b,c){var d;return this.each(function(){if(a(this).data("Jcrop")){if(b==="api")return a
+(this).data("Jcrop");a(this).data("Jcrop").setOptions(b)}else this.tagName=="IMG"?a.Jcrop.Loader(this,function(){a(this).css({display:"block",visibility:"hidden"}),d=a.Jcrop(this,b),a.isFunction(c)&&c.call(d)}):(a(this).css({display:"block",visibility:"hidden"}),d=a.Jcrop(this,b),a.isFunction(c)&&c.call(d))}),this},a.Jcrop.Loader=function(b,c,d){function g(){f.complete?(e.unbind(".jcloader"),a.isFunction(c)&&c.call(f)):window.setTimeout(g,50)}var e=a(b),f=e[0];e.bind("load.jcloader",g).bind("error.jcloader",function(b){e.unbind(".jcloader"),a.isFunction(d)&&d.call(f)}),f.complete&&a.isFunction(c)&&(e.unbind(".jcloader"),c.call(f))},a.Jcrop.defaults={allowSelect:!0,allowMove:!0,allowResize:!0,trackDocument:!0,baseClass:"jcrop",addClass:null,bgColor:"black",bgOpacity:.6,bgFade:!1,borderOpacity:.4,handleOpacity:.5,handleSize:7,aspectRatio:0,keySupport:!0,createHandles:["n","s","e","w","nw","ne","se","sw"],createDragbars:["n","s","e","w"],createBorders:["n","s","e","w"],drawBorders:!0,dragEdges:!0,fixedSupport:!0,
+touchSupport:null,shade:null,boxWidth:0,boxHeight:0,boundary:2,fadeTime:400,animationDelay:20,swingSpeed:3,minSelect:[0,0],maxSize:[0,0],minSize:[0,0],onChange:function(){},onSelect:function(){},onDblClick:function(){},onRelease:function(){}}})(jQuery);
\ No newline at end of file
--- a/web/wp-includes/js/jquery/jquery.color.dev.js	Wed Dec 19 12:35:13 2012 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,128 +0,0 @@
-/*
- * jQuery Color Animations
- * Copyright 2007 John Resig
- * Released under the MIT and GPL licenses.
- */
-
-(function(jQuery){
-
-    // We override the animation for all of these color styles
-    jQuery.each(['backgroundColor', 'borderBottomColor', 'borderLeftColor', 'borderRightColor', 'borderTopColor', 'color', 'outlineColor'], function(i,attr){
-        jQuery.fx.step[attr] = function(fx){
-            if ( fx.state == 0 ) {
-                fx.start = getColor( fx.elem, attr );
-                fx.end = getRGB( fx.end );
-            }
-
-            fx.elem.style[attr] = "rgb(" + [
-                Math.max(Math.min( parseInt((fx.pos * (fx.end[0] - fx.start[0])) + fx.start[0]), 255), 0),
-                Math.max(Math.min( parseInt((fx.pos * (fx.end[1] - fx.start[1])) + fx.start[1]), 255), 0),
-                Math.max(Math.min( parseInt((fx.pos * (fx.end[2] - fx.start[2])) + fx.start[2]), 255), 0)
-            ].join(",") + ")";
-        }
-    });
-
-    // Color Conversion functions from highlightFade
-    // By Blair Mitchelmore
-    // http://jquery.offput.ca/highlightFade/
-
-    // Parse strings looking for color tuples [255,255,255]
-    function getRGB(color) {
-        var result;
-
-        // Check if we're already dealing with an array of colors
-        if ( color && color.constructor == Array && color.length == 3 )
-            return color;
-
-        // Look for rgb(num,num,num)
-        if (result = /rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(color))
-            return [parseInt(result[1]), parseInt(result[2]), parseInt(result[3])];
-
-        // Look for rgb(num%,num%,num%)
-        if (result = /rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/.exec(color))
-            return [parseFloat(result[1])*2.55, parseFloat(result[2])*2.55, parseFloat(result[3])*2.55];
-
-        // Look for #a0b1c2
-        if (result = /#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(color))
-            return [parseInt(result[1],16), parseInt(result[2],16), parseInt(result[3],16)];
-
-        // Look for #fff
-        if (result = /#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(color))
-            return [parseInt(result[1]+result[1],16), parseInt(result[2]+result[2],16), parseInt(result[3]+result[3],16)];
-
-        // Look for rgba(0, 0, 0, 0) == transparent in Safari 3
-        if (result = /rgba\(0, 0, 0, 0\)/.exec(color))
-            return colors['transparent']
-
-        // Otherwise, we're most likely dealing with a named color
-        return colors[jQuery.trim(color).toLowerCase()];
-    }
-
-    function getColor(elem, attr) {
-        var color;
-
-        do {
-            color = jQuery.curCSS(elem, attr);
-
-            // Keep going until we find an element that has color, or we hit the body
-            if ( color != '' && color != 'transparent' || jQuery.nodeName(elem, "body") )
-                break;
-
-            attr = "backgroundColor";
-        } while ( elem = elem.parentNode );
-
-        return getRGB(color);
-    };
-
-    // Some named colors to work with
-    // From Interface by Stefan Petre
-    // http://interface.eyecon.ro/
-
-    var colors = {
-        aqua:[0,255,255],
-        azure:[240,255,255],
-        beige:[245,245,220],
-        black:[0,0,0],
-        blue:[0,0,255],
-        brown:[165,42,42],
-        cyan:[0,255,255],
-        darkblue:[0,0,139],
-        darkcyan:[0,139,139],
-        darkgrey:[169,169,169],
-        darkgreen:[0,100,0],
-        darkkhaki:[189,183,107],
-        darkmagenta:[139,0,139],
-        darkolivegreen:[85,107,47],
-        darkorange:[255,140,0],
-        darkorchid:[153,50,204],
-        darkred:[139,0,0],
-        darksalmon:[233,150,122],
-        darkviolet:[148,0,211],
-        fuchsia:[255,0,255],
-        gold:[255,215,0],
-        green:[0,128,0],
-        indigo:[75,0,130],
-        khaki:[240,230,140],
-        lightblue:[173,216,230],
-        lightcyan:[224,255,255],
-        lightgreen:[144,238,144],
-        lightgrey:[211,211,211],
-        lightpink:[255,182,193],
-        lightyellow:[255,255,224],
-        lime:[0,255,0],
-        magenta:[255,0,255],
-        maroon:[128,0,0],
-        navy:[0,0,128],
-        olive:[128,128,0],
-        orange:[255,165,0],
-        pink:[255,192,203],
-        purple:[128,0,128],
-        violet:[128,0,128],
-        red:[255,0,0],
-        silver:[192,192,192],
-        white:[255,255,255],
-        yellow:[255,255,0],
-        transparent: [255,255,255]
-    };
-
-})(jQuery);
--- a/web/wp-includes/js/jquery/jquery.color.js	Wed Dec 19 12:35:13 2012 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1 +0,0 @@
-(function(d){d.each(["backgroundColor","borderBottomColor","borderLeftColor","borderRightColor","borderTopColor","color","outlineColor"],function(f,e){d.fx.step[e]=function(g){if(g.state==0){g.start=c(g.elem,e);g.end=b(g.end)}g.elem.style[e]="rgb("+[Math.max(Math.min(parseInt((g.pos*(g.end[0]-g.start[0]))+g.start[0]),255),0),Math.max(Math.min(parseInt((g.pos*(g.end[1]-g.start[1]))+g.start[1]),255),0),Math.max(Math.min(parseInt((g.pos*(g.end[2]-g.start[2]))+g.start[2]),255),0)].join(",")+")"}});function b(f){var e;if(f&&f.constructor==Array&&f.length==3){return f}if(e=/rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(f)){return[parseInt(e[1]),parseInt(e[2]),parseInt(e[3])]}if(e=/rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/.exec(f)){return[parseFloat(e[1])*2.55,parseFloat(e[2])*2.55,parseFloat(e[3])*2.55]}if(e=/#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(f)){return[parseInt(e[1],16),parseInt(e[2],16),parseInt(e[3],16)]}if(e=/#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(f)){return[parseInt(e[1]+e[1],16),parseInt(e[2]+e[2],16),parseInt(e[3]+e[3],16)]}if(e=/rgba\(0, 0, 0, 0\)/.exec(f)){return a.transparent}return a[d.trim(f).toLowerCase()]}function c(g,e){var f;do{f=d.curCSS(g,e);if(f!=""&&f!="transparent"||d.nodeName(g,"body")){break}e="backgroundColor"}while(g=g.parentNode);return b(f)}var a={aqua:[0,255,255],azure:[240,255,255],beige:[245,245,220],black:[0,0,0],blue:[0,0,255],brown:[165,42,42],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgrey:[169,169,169],darkgreen:[0,100,0],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkviolet:[148,0,211],fuchsia:[255,0,255],gold:[255,215,0],green:[0,128,0],indigo:[75,0,130],khaki:[240,230,140],lightblue:[173,216,230],lightcyan:[224,255,255],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightyellow:[255,255,224],lime:[0,255,0],magenta:[255,0,255],maroon:[128,0,0],navy:[0,0,128],olive:[128,128,0],orange:[255,165,0],pink:[255,192,203],purple:[128,0,128],violet:[128,0,128],red:[255,0,0],silver:[192,192,192],white:[255,255,255],yellow:[255,255,0],transparent:[255,255,255]}})(jQuery);
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-includes/js/jquery/jquery.color.min.js	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,2 @@
+/*! jQuery Color v@2.1.0 with SVG Color Names http://github.com/jquery/jquery-color | jquery.org/license */
+(function(a,b){function m(a,b,c){var d=h[b.type]||{};return a==null?c||!b.def?null:b.def:(a=d.floor?~~a:parseFloat(a),isNaN(a)?b.def:d.mod?(a+d.mod)%d.mod:0>a?0:d.max<a?d.max:a)}function n(b){var c=f(),d=c._rgba=[];return b=b.toLowerCase(),l(e,function(a,e){var f,h=e.re.exec(b),i=h&&e.parse(h),j=e.space||"rgba";if(i)return f=c[j](i),c[g[j].cache]=f[g[j].cache],d=c._rgba=f._rgba,!1}),d.length?(d.join()==="0,0,0,0"&&a.extend(d,k.transparent),c):k[b]}function o(a,b,c){return c=(c+1)%1,c*6<1?a+(b-a)*c*6:c*2<1?b:c*3<2?a+(b-a)*(2/3-c)*6:a}var c="backgroundColor borderBottomColor borderLeftColor borderRightColor borderTopColor color columnRuleColor outlineColor textDecorationColor textEmphasisColor",d=/^([\-+])=\s*(\d+\.?\d*)/,e=[{re:/rgba?\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*(?:,\s*(\d+(?:\.\d+)?)\s*)?\)/,parse:function(a){return[a[1],a[2],a[3],a[4]]}},{re:/rgba?\(\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d+(?:\.\d+)?)\s*)?\)/,parse:function(a){return[a[1]*2.55,a[2]*2.55,a[3]*2.55,a[4]]}},{re:/#([a-f0-9]{2})([a-f0-9]{2})([a-f0-9]{2})/,parse:function(a){return[parseInt(a[1],16),parseInt(a[2],16),parseInt(a[3],16)]}},{re:/#([a-f0-9])([a-f0-9])([a-f0-9])/,parse:function(a){return[parseInt(a[1]+a[1],16),parseInt(a[2]+a[2],16),parseInt(a[3]+a[3],16)]}},{re:/hsla?\(\s*(\d+(?:\.\d+)?)\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d+(?:\.\d+)?)\s*)?\)/,space:"hsla",parse:function(a){return[a[1],a[2]/100,a[3]/100,a[4]]}}],f=a.Color=function(b,c,d,e){return new a.Color.fn.parse(b,c,d,e)},g={rgba:{props:{red:{idx:0,type:"byte"},green:{idx:1,type:"byte"},blue:{idx:2,type:"byte"}}},hsla:{props:{hue:{idx:0,type:"degrees"},saturation:{idx:1,type:"percent"},lightness:{idx:2,type:"percent"}}}},h={"byte":{floor:!0,max:255},percent:{max:1},degrees:{mod:360,floor:!0}},i=f.support={},j=a("<p>")[0],k,l=a.each;j.style.cssText="background-color:rgba(1,1,1,.5)",i.rgba=j.style.backgroundColor.indexOf("rgba")>-1,l(g,function(a,b){b.cache="_"+a,b.props.alpha={idx:3,type:"percent",def:1}}),f.fn=a.extend(f.prototype,{parse:function(c,d,e,h){if(c===b)return this._rgba=[null,null,null,null],this;if(c.jquery||c.nodeType)c=a(c).css(d),d=b;var i=this,j=a.type(c),o=this._rgba=[],p;d!==b&&(c=[c,d,e,h],j="array");if(j==="string")return this.parse(n(c)||k._default);if(j==="array")return l(g.rgba.props,function(a,b){o[b.idx]=m(c[b.idx],b)}),this;if(j==="object")return c instanceof f?l(g,function(a,b){c[b.cache]&&(i[b.cache]=c[b.cache].slice())}):l(g,function(b,d){var e=d.cache;l(d.props,function(a,b){if(!i[e]&&d.to){if(a==="alpha"||c[a]==null)return;i[e]=d.to(i._rgba)}i[e][b.idx]=m(c[a],b,!0)}),i[e]&&a.inArray(null,i[e].slice(0,3))<0&&(i[e][3]=1,d.from&&(i._rgba=d.from(i[e])))}),this},is:function(a){var b=f(a),c=!0,d=this;return l(g,function(a,e){var f,g=b[e.cache];return g&&(f=d[e.cache]||e.to&&e.to(d._rgba)||[],l(e.props,function(a,b){if(g[b.idx]!=null)return c=g[b.idx]===f[b.idx],c})),c}),c},_space:function(){var a=[],b=this;return l(g,function(c,d){b[d.cache]&&a.push(c)}),a.pop()},transition:function(a,b){var c=f(a),d=c._space(),e=g[d],i=this.alpha()===0?f("transparent"):this,j=i[e.cache]||e.to(i._rgba),k=j.slice();return c=c[e.cache],l(e.props,function(a,d){var e=d.idx,f=j[e],g=c[e],i=h[d.type]||{};if(g===null)return;f===null?k[e]=g:(i.mod&&(g-f>i.mod/2?f+=i.mod:f-g>i.mod/2&&(f-=i.mod)),k[e]=m((g-f)*b+f,d))}),this[d](k)},blend:function(b){if(this._rgba[3]===1)return this;var c=this._rgba.slice(),d=c.pop(),e=f(b)._rgba;return f(a.map(c,function(a,b){return(1-d)*e[b]+d*a}))},toRgbaString:function(){var b="rgba(",c=a.map(this._rgba,function(a,b){return a==null?b>2?1:0:a});return c[3]===1&&(c.pop(),b="rgb("),b+c.join()+")"},toHslaString:function(){var b="hsla(",c=a.map(this.hsla(),function(a,b){return a==null&&(a=b>2?1:0),b&&b<3&&(a=Math.round(a*100)+"%"),a});return c[3]===1&&(c.pop(),b="hsl("),b+c.join()+")"},toHexString:function(b){var c=this._rgba.slice(),d=c.pop();return b&&c.push(~~(d*255)),"#"+a.map(c,function(a,b){return a=(a||0).toString(16),a.length===1?"0"+a:a}).join("")},toString:function(){return this._rgba[3]===0?"transparent":this.toRgbaString()}}),f.fn.parse.prototype=f.fn,g.hsla.to=function(a){if(a[0]==null||a[1]==null||a[2]==null)return[null,null,null,a[3]];var b=a[0]/255,c=a[1]/255,d=a[2]/255,e=a[3],f=Math.max(b,c,d),g=Math.min(b,c,d),h=f-g,i=f+g,j=i*.5,k,l;return g===f?k=0:b===f?k=60*(c-d)/h+360:c===f?k=60*(d-b)/h+120:k=60*(b-c)/h+240,j===0||j===1?l=j:j<=.5?l=h/i:l=h/(2-i),[Math.round(k)%360,l,j,e==null?1:e]},g.hsla.from=function(a){if(a[0]==null||a[1]==null||a[2]==null)return[null,null,null,a[3]];var b=a[0]/360,c=a[1],d=a[2],e=a[3],f=d<=.5?d*(1+c):d+c-d*c,g=2*d-f,h,i,j;return[Math.round(o(g,f,b+1/3)*255),Math.round(o(g,f,b)*255),Math.round(o(g,f,b-1/3)*255),e]},l(g,function(c,e){var g=e.props,h=e.cache,i=e.to,j=e.from;f.fn[c]=function(c){i&&!this[h]&&(this[h]=i(this._rgba));if(c===b)return this[h].slice();var d,e=a.type(c),k=e==="array"||e==="object"?c:arguments,n=this[h].slice();return l(g,function(a,b){var c=k[e==="object"?a:b.idx];c==null&&(c=n[b.idx]),n[b.idx]=m(c,b)}),j?(d=f(j(n)),d[h]=n,d):f(n)},l(g,function(b,e){if(f.fn[b])return;f.fn[b]=function(f){var g=a.type(f),h=b==="alpha"?this._hsla?"hsla":"rgba":c,i=this[h](),j=i[e.idx],k;return g==="undefined"?j:(g==="function"&&(f=f.call(this,j),g=a.type(f)),f==null&&e.empty?this:(g==="string"&&(k=d.exec(f),k&&(f=j+parseFloat(k[2])*(k[1]==="+"?1:-1))),i[e.idx]=f,this[h](i)))}})}),f.hook=function(b){var c=b.split(" ");l(c,function(b,c){a.cssHooks[c]={set:function(b,d){var e,g,h="";if(a.type(d)!=="string"||(e=n(d))){d=f(e||d);if(!i.rgba&&d._rgba[3]!==1){g=c==="backgroundColor"?b.parentNode:b;while((h===""||h==="transparent")&&g&&g.style)try{h=a.css(g,"backgroundColor"),g=g.parentNode}catch(j){}d=d.blend(h&&h!=="transparent"?h:"_default")}d=d.toRgbaString()}try{b.style[c]=d}catch(d){}}},a.fx.step[c]=function(b){b.colorInit||(b.start=f(b.elem,c),b.end=f(b.end),b.colorInit=!0),a.cssHooks[c].set(b.elem,b.start.transition(b.end,b.pos))}})},f.hook(c),a.cssHooks.borderColor={expand:function(a){var b={};return l(["Top","Right","Bottom","Left"],function(c,d){b["border"+d+"Color"]=a}),b}},k=a.Color.names={aqua:"#00ffff",black:"#000000",blue:"#0000ff",fuchsia:"#ff00ff",gray:"#808080",green:"#008000",lime:"#00ff00",maroon:"#800000",navy:"#000080",olive:"#808000",purple:"#800080",red:"#ff0000",silver:"#c0c0c0",teal:"#008080",white:"#ffffff",yellow:"#ffff00",transparent:[null,null,null,0],_default:"#ffffff"}})(jQuery),jQuery.extend(jQuery.Color.names,{aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",blanchedalmond:"#ffebcd",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyan:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgreen:"#006400",darkgrey:"#a9a9a9",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkslategrey:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",gold:"#ffd700",goldenrod:"#daa520",greenyellow:"#adff2f",grey:"#808080",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",lavender:"#e6e6fa",lavenderblush:"#fff0f5",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrodyellow:"#fafad2",lightgray:"#d3d3d3",lightgreen:"#90ee90",lightgrey:"#d3d3d3",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#778899",lightslategrey:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",limegreen:"#32cd32",linen:"#faf0e6",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370db",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhite:"#ffdead",oldlace:"#fdf5e6",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#db7093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",slategrey:"#708090",snow:"#fffafa",springgreen:"#00ff7f",steelblue:"#4682b4",tan:"#d2b48c",thistle:"#d8bfd8",tomato:"#ff6347",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",whitesmoke:"#f5f5f5",yellowgreen:"#9acd32"});
\ No newline at end of file
--- a/web/wp-includes/js/jquery/jquery.form.dev.js	Wed Dec 19 12:35:13 2012 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,825 +0,0 @@
-/*!
- * jQuery Form Plugin
- * version: 2.73 (03-MAY-2011)
- * @requires jQuery v1.3.2 or later
- *
- * Examples and documentation at: http://malsup.com/jquery/form/
- * Dual licensed under the MIT and GPL licenses:
- *   http://www.opensource.org/licenses/mit-license.php
- *   http://www.gnu.org/licenses/gpl.html
- */
-;(function($) {
-
-/*
-	Usage Note:
-	-----------
-	Do not use both ajaxSubmit and ajaxForm on the same form.  These
-	functions are intended to be exclusive.  Use ajaxSubmit if you want
-	to bind your own submit handler to the form.  For example,
-
-	$(document).ready(function() {
-		$('#myForm').bind('submit', function(e) {
-			e.preventDefault(); // <-- important
-			$(this).ajaxSubmit({
-				target: '#output'
-			});
-		});
-	});
-
-	Use ajaxForm when you want the plugin to manage all the event binding
-	for you.  For example,
-
-	$(document).ready(function() {
-		$('#myForm').ajaxForm({
-			target: '#output'
-		});
-	});
-
-	When using ajaxForm, the ajaxSubmit function will be invoked for you
-	at the appropriate time.
-*/
-
-/**
- * ajaxSubmit() provides a mechanism for immediately submitting
- * an HTML form using AJAX.
- */
-$.fn.ajaxSubmit = function(options) {
-	// fast fail if nothing selected (http://dev.jquery.com/ticket/2752)
-	if (!this.length) {
-		log('ajaxSubmit: skipping submit process - no element selected');
-		return this;
-	}
-
-	if (typeof options == 'function') {
-		options = { success: options };
-	}
-
-	var action = this.attr('action');
-	var url = (typeof action === 'string') ? $.trim(action) : '';
-	if (url) {
-		// clean url (don't include hash vaue)
-		url = (url.match(/^([^#]+)/)||[])[1];
-	}
-	url = url || window.location.href || '';
-
-	options = $.extend(true, {
-		url:  url,
-		success: $.ajaxSettings.success,
-		type: this[0].getAttribute('method') || 'GET', // IE7 massage (see issue 57)
-		iframeSrc: /^https/i.test(window.location.href || '') ? 'javascript:false' : 'about:blank'
-	}, options);
-
-	// hook for manipulating the form data before it is extracted;
-	// convenient for use with rich editors like tinyMCE or FCKEditor
-	var veto = {};
-	this.trigger('form-pre-serialize', [this, options, veto]);
-	if (veto.veto) {
-		log('ajaxSubmit: submit vetoed via form-pre-serialize trigger');
-		return this;
-	}
-
-	// provide opportunity to alter form data before it is serialized
-	if (options.beforeSerialize && options.beforeSerialize(this, options) === false) {
-		log('ajaxSubmit: submit aborted via beforeSerialize callback');
-		return this;
-	}
-
-	var n,v,a = this.formToArray(options.semantic);
-	if (options.data) {
-		options.extraData = options.data;
-		for (n in options.data) {
-			if(options.data[n] instanceof Array) {
-				for (var k in options.data[n]) {
-					a.push( { name: n, value: options.data[n][k] } );
-				}
-			}
-			else {
-				v = options.data[n];
-				v = $.isFunction(v) ? v() : v; // if value is fn, invoke it
-				a.push( { name: n, value: v } );
-			}
-		}
-	}
-
-	// give pre-submit callback an opportunity to abort the submit
-	if (options.beforeSubmit && options.beforeSubmit(a, this, options) === false) {
-		log('ajaxSubmit: submit aborted via beforeSubmit callback');
-		return this;
-	}
-
-	// fire vetoable 'validate' event
-	this.trigger('form-submit-validate', [a, this, options, veto]);
-	if (veto.veto) {
-		log('ajaxSubmit: submit vetoed via form-submit-validate trigger');
-		return this;
-	}
-
-	var q = $.param(a);
-
-	if (options.type.toUpperCase() == 'GET') {
-		options.url += (options.url.indexOf('?') >= 0 ? '&' : '?') + q;
-		options.data = null;  // data is null for 'get'
-	}
-	else {
-		options.data = q; // data is the query string for 'post'
-	}
-
-	var $form = this, callbacks = [];
-	if (options.resetForm) {
-		callbacks.push(function() { $form.resetForm(); });
-	}
-	if (options.clearForm) {
-		callbacks.push(function() { $form.clearForm(); });
-	}
-
-	// perform a load on the target only if dataType is not provided
-	if (!options.dataType && options.target) {
-		var oldSuccess = options.success || function(){};
-		callbacks.push(function(data) {
-			var fn = options.replaceTarget ? 'replaceWith' : 'html';
-			$(options.target)[fn](data).each(oldSuccess, arguments);
-		});
-	}
-	else if (options.success) {
-		callbacks.push(options.success);
-	}
-
-	options.success = function(data, status, xhr) { // jQuery 1.4+ passes xhr as 3rd arg
-		var context = options.context || options;   // jQuery 1.4+ supports scope context
-		for (var i=0, max=callbacks.length; i < max; i++) {
-			callbacks[i].apply(context, [data, status, xhr || $form, $form]);
-		}
-	};
-
-	// are there files to upload?
-	var fileInputs = $('input:file', this).length > 0;
-	var mp = 'multipart/form-data';
-	var multipart = ($form.attr('enctype') == mp || $form.attr('encoding') == mp);
-
-	// options.iframe allows user to force iframe mode
-	// 06-NOV-09: now defaulting to iframe mode if file input is detected
-   if (options.iframe !== false && (fileInputs || options.iframe || multipart)) {
-	   // hack to fix Safari hang (thanks to Tim Molendijk for this)
-	   // see:  http://groups.google.com/group/jquery-dev/browse_thread/thread/36395b7ab510dd5d
-	   if (options.closeKeepAlive) {
-		   $.get(options.closeKeepAlive, fileUpload);
-		}
-	   else {
-		   fileUpload();
-		}
-   }
-   else {
-		$.ajax(options);
-   }
-
-	// fire 'notify' event
-	this.trigger('form-submit-notify', [this, options]);
-	return this;
-
-
-	// private function for handling file uploads (hat tip to YAHOO!)
-	function fileUpload() {
-		var form = $form[0];
-
-		if ($(':input[name=submit],:input[id=submit]', form).length) {
-			// if there is an input with a name or id of 'submit' then we won't be
-			// able to invoke the submit fn on the form (at least not x-browser)
-			alert('Error: Form elements must not have name or id of "submit".');
-			return;
-		}
-
-		var s = $.extend(true, {}, $.ajaxSettings, options);
-		s.context = s.context || s;
-		var id = 'jqFormIO' + (new Date().getTime()), fn = '_'+id;
-		var $io = $('<iframe id="' + id + '" name="' + id + '" src="'+ s.iframeSrc +'" />');
-		var io = $io[0];
-
-		$io.css({ position: 'absolute', top: '-1000px', left: '-1000px' });
-
-		var xhr = { // mock object
-			aborted: 0,
-			responseText: null,
-			responseXML: null,
-			status: 0,
-			statusText: 'n/a',
-			getAllResponseHeaders: function() {},
-			getResponseHeader: function() {},
-			setRequestHeader: function() {},
-			abort: function(status) {
-				var e = (status === 'timeout' ? 'timeout' : 'aborted');
-				log('aborting upload... ' + e);
-				this.aborted = 1;
-				$io.attr('src', s.iframeSrc); // abort op in progress
-				xhr.error = e;
-				s.error && s.error.call(s.context, xhr, e, e);
-				g && $.event.trigger("ajaxError", [xhr, s, e]);
-				s.complete && s.complete.call(s.context, xhr, e);
-			}
-		};
-
-		var g = s.global;
-		// trigger ajax global events so that activity/block indicators work like normal
-		if (g && ! $.active++) {
-			$.event.trigger("ajaxStart");
-		}
-		if (g) {
-			$.event.trigger("ajaxSend", [xhr, s]);
-		}
-
-		if (s.beforeSend && s.beforeSend.call(s.context, xhr, s) === false) {
-			if (s.global) {
-				$.active--;
-			}
-			return;
-		}
-		if (xhr.aborted) {
-			return;
-		}
-
-		var timedOut = 0, timeoutHandle;
-
-		// add submitting element to data if we know it
-		var sub = form.clk;
-		if (sub) {
-			var n = sub.name;
-			if (n && !sub.disabled) {
-				s.extraData = s.extraData || {};
-				s.extraData[n] = sub.value;
-				if (sub.type == "image") {
-					s.extraData[n+'.x'] = form.clk_x;
-					s.extraData[n+'.y'] = form.clk_y;
-				}
-			}
-		}
-
-		// take a breath so that pending repaints get some cpu time before the upload starts
-		function doSubmit() {
-			// make sure form attrs are set
-			var t = $form.attr('target'), a = $form.attr('action');
-
-			// update form attrs in IE friendly way
-			form.setAttribute('target',id);
-			if (form.getAttribute('method') != 'POST') {
-				form.setAttribute('method', 'POST');
-			}
-			if (form.getAttribute('action') != s.url) {
-				form.setAttribute('action', s.url);
-			}
-
-			// ie borks in some cases when setting encoding
-			if (! s.skipEncodingOverride) {
-				$form.attr({
-					encoding: 'multipart/form-data',
-					enctype:  'multipart/form-data'
-				});
-			}
-
-			// support timout
-			if (s.timeout) {
-				timeoutHandle = setTimeout(function() { timedOut = true; cb(true); }, s.timeout);
-			}
-
-			// add "extra" data to form if provided in options
-			var extraInputs = [];
-			try {
-				if (s.extraData) {
-					for (var n in s.extraData) {
-						extraInputs.push(
-							$('<input type="hidden" name="'+n+'" value="'+s.extraData[n]+'" />')
-								.appendTo(form)[0]);
-					}
-				}
-
-				// add iframe to doc and submit the form
-				$io.appendTo('body');
-                io.attachEvent ? io.attachEvent('onload', cb) : io.addEventListener('load', cb, false);
-				form.submit();
-			}
-			finally {
-				// reset attrs and remove "extra" input elements
-				form.setAttribute('action',a);
-				if(t) {
-					form.setAttribute('target', t);
-				} else {
-					$form.removeAttr('target');
-				}
-				$(extraInputs).remove();
-			}
-		}
-
-		if (s.forceSync) {
-			doSubmit();
-		}
-		else {
-			setTimeout(doSubmit, 10); // this lets dom updates render
-		}
-
-		var data, doc, domCheckCount = 50, callbackProcessed;
-
-		function cb(e) {
-			if (xhr.aborted || callbackProcessed) {
-				return;
-			}
-			if (e === true && xhr) {
-				xhr.abort('timeout');
-				return;
-			}
-
-			var doc = io.contentWindow ? io.contentWindow.document : io.contentDocument ? io.contentDocument : io.document;
-			if (!doc || doc.location.href == s.iframeSrc) {
-				// response not received yet
-				if (!timedOut)
-					return;
-			}
-            io.detachEvent ? io.detachEvent('onload', cb) : io.removeEventListener('load', cb, false);
-
-			var ok = true;
-			try {
-				if (timedOut) {
-					throw 'timeout';
-				}
-
-				var isXml = s.dataType == 'xml' || doc.XMLDocument || $.isXMLDoc(doc);
-				log('isXml='+isXml);
-				if (!isXml && window.opera && (doc.body == null || doc.body.innerHTML == '')) {
-					if (--domCheckCount) {
-						// in some browsers (Opera) the iframe DOM is not always traversable when
-						// the onload callback fires, so we loop a bit to accommodate
-						log('requeing onLoad callback, DOM not available');
-						setTimeout(cb, 250);
-						return;
-					}
-					// let this fall through because server response could be an empty document
-					//log('Could not access iframe DOM after mutiple tries.');
-					//throw 'DOMException: not available';
-				}
-
-				//log('response detected');
-				xhr.responseText = doc.body ? doc.body.innerHTML : doc.documentElement ? doc.documentElement.innerHTML : null;
-				xhr.responseXML = doc.XMLDocument ? doc.XMLDocument : doc;
-				if (isXml)
-					s.dataType = 'xml';
-				xhr.getResponseHeader = function(header){
-					var headers = {'content-type': s.dataType};
-					return headers[header];
-				};
-
-				var scr = /(json|script|text)/.test(s.dataType);
-				if (scr || s.textarea) {
-					// see if user embedded response in textarea
-					var ta = doc.getElementsByTagName('textarea')[0];
-					if (ta) {
-						xhr.responseText = ta.value;
-					}
-					else if (scr) {
-						// account for browsers injecting pre around json response
-						var pre = doc.getElementsByTagName('pre')[0];
-						var b = doc.getElementsByTagName('body')[0];
-						if (pre) {
-							xhr.responseText = pre.textContent;
-						}
-						else if (b) {
-							xhr.responseText = b.innerHTML;
-						}
-					}
-				}
-				else if (s.dataType == 'xml' && !xhr.responseXML && xhr.responseText != null) {
-					xhr.responseXML = toXml(xhr.responseText);
-				}
-
-				data = httpData(xhr, s.dataType, s);
-			}
-			catch(e){
-				log('error caught:',e);
-				ok = false;
-				xhr.error = e;
-				s.error && s.error.call(s.context, xhr, 'error', e);
-				g && $.event.trigger("ajaxError", [xhr, s, e]);
-			}
-
-			if (xhr.aborted) {
-				log('upload aborted');
-				ok = false;
-			}
-
-			// ordering of these callbacks/triggers is odd, but that's how $.ajax does it
-			if (ok) {
-				s.success && s.success.call(s.context, data, 'success', xhr);
-				g && $.event.trigger("ajaxSuccess", [xhr, s]);
-			}
-
-			g && $.event.trigger("ajaxComplete", [xhr, s]);
-
-			if (g && ! --$.active) {
-				$.event.trigger("ajaxStop");
-			}
-
-			s.complete && s.complete.call(s.context, xhr, ok ? 'success' : 'error');
-
-			callbackProcessed = true;
-			if (s.timeout)
-				clearTimeout(timeoutHandle);
-
-			// clean up
-			setTimeout(function() {
-				$io.removeData('form-plugin-onload');
-				$io.remove();
-				xhr.responseXML = null;
-			}, 100);
-		}
-
-		var toXml = $.parseXML || function(s, doc) { // use parseXML if available (jQuery 1.5+)
-			if (window.ActiveXObject) {
-				doc = new ActiveXObject('Microsoft.XMLDOM');
-				doc.async = 'false';
-				doc.loadXML(s);
-			}
-			else {
-				doc = (new DOMParser()).parseFromString(s, 'text/xml');
-			}
-			return (doc && doc.documentElement && doc.documentElement.nodeName != 'parsererror') ? doc : null;
-		};
-		var parseJSON = $.parseJSON || function(s) {
-			return window['eval']('(' + s + ')');
-		};
-
-		var httpData = function( xhr, type, s ) { // mostly lifted from jq1.4.4
-			var ct = xhr.getResponseHeader('content-type') || '',
-				xml = type === 'xml' || !type && ct.indexOf('xml') >= 0,
-				data = xml ? xhr.responseXML : xhr.responseText;
-
-			if (xml && data.documentElement.nodeName === 'parsererror') {
-				$.error && $.error('parsererror');
-			}
-			if (s && s.dataFilter) {
-				data = s.dataFilter(data, type);
-			}
-			if (typeof data === 'string') {
-				if (type === 'json' || !type && ct.indexOf('json') >= 0) {
-					data = parseJSON(data);
-				} else if (type === "script" || !type && ct.indexOf("javascript") >= 0) {
-					$.globalEval(data);
-				}
-			}
-			return data;
-		};
-	}
-};
-
-/**
- * ajaxForm() provides a mechanism for fully automating form submission.
- *
- * The advantages of using this method instead of ajaxSubmit() are:
- *
- * 1: This method will include coordinates for <input type="image" /> elements (if the element
- *	is used to submit the form).
- * 2. This method will include the submit element's name/value data (for the element that was
- *	used to submit the form).
- * 3. This method binds the submit() method to the form for you.
- *
- * The options argument for ajaxForm works exactly as it does for ajaxSubmit.  ajaxForm merely
- * passes the options argument along after properly binding events for submit elements and
- * the form itself.
- */
-$.fn.ajaxForm = function(options) {
-	// in jQuery 1.3+ we can fix mistakes with the ready state
-	if (this.length === 0) {
-		var o = { s: this.selector, c: this.context };
-		if (!$.isReady && o.s) {
-			log('DOM not ready, queuing ajaxForm');
-			$(function() {
-				$(o.s,o.c).ajaxForm(options);
-			});
-			return this;
-		}
-		// is your DOM ready?  http://docs.jquery.com/Tutorials:Introducing_$(document).ready()
-		log('terminating; zero elements found by selector' + ($.isReady ? '' : ' (DOM not ready)'));
-		return this;
-	}
-
-	return this.ajaxFormUnbind().bind('submit.form-plugin', function(e) {
-		if (!e.isDefaultPrevented()) { // if event has been canceled, don't proceed
-			e.preventDefault();
-			$(this).ajaxSubmit(options);
-		}
-	}).bind('click.form-plugin', function(e) {
-		var target = e.target;
-		var $el = $(target);
-		if (!($el.is(":submit,input:image"))) {
-			// is this a child element of the submit el?  (ex: a span within a button)
-			var t = $el.closest(':submit');
-			if (t.length == 0) {
-				return;
-			}
-			target = t[0];
-		}
-		var form = this;
-		form.clk = target;
-		if (target.type == 'image') {
-			if (e.offsetX != undefined) {
-				form.clk_x = e.offsetX;
-				form.clk_y = e.offsetY;
-			} else if (typeof $.fn.offset == 'function') { // try to use dimensions plugin
-				var offset = $el.offset();
-				form.clk_x = e.pageX - offset.left;
-				form.clk_y = e.pageY - offset.top;
-			} else {
-				form.clk_x = e.pageX - target.offsetLeft;
-				form.clk_y = e.pageY - target.offsetTop;
-			}
-		}
-		// clear form vars
-		setTimeout(function() { form.clk = form.clk_x = form.clk_y = null; }, 100);
-	});
-};
-
-// ajaxFormUnbind unbinds the event handlers that were bound by ajaxForm
-$.fn.ajaxFormUnbind = function() {
-	return this.unbind('submit.form-plugin click.form-plugin');
-};
-
-/**
- * formToArray() gathers form element data into an array of objects that can
- * be passed to any of the following ajax functions: $.get, $.post, or load.
- * Each object in the array has both a 'name' and 'value' property.  An example of
- * an array for a simple login form might be:
- *
- * [ { name: 'username', value: 'jresig' }, { name: 'password', value: 'secret' } ]
- *
- * It is this array that is passed to pre-submit callback functions provided to the
- * ajaxSubmit() and ajaxForm() methods.
- */
-$.fn.formToArray = function(semantic) {
-	var a = [];
-	if (this.length === 0) {
-		return a;
-	}
-
-	var form = this[0];
-	var els = semantic ? form.getElementsByTagName('*') : form.elements;
-	if (!els) {
-		return a;
-	}
-
-	var i,j,n,v,el,max,jmax;
-	for(i=0, max=els.length; i < max; i++) {
-		el = els[i];
-		n = el.name;
-		if (!n) {
-			continue;
-		}
-
-		if (semantic && form.clk && el.type == "image") {
-			// handle image inputs on the fly when semantic == true
-			if(!el.disabled && form.clk == el) {
-				a.push({name: n, value: $(el).val()});
-				a.push({name: n+'.x', value: form.clk_x}, {name: n+'.y', value: form.clk_y});
-			}
-			continue;
-		}
-
-		v = $.fieldValue(el, true);
-		if (v && v.constructor == Array) {
-			for(j=0, jmax=v.length; j < jmax; j++) {
-				a.push({name: n, value: v[j]});
-			}
-		}
-		else if (v !== null && typeof v != 'undefined') {
-			a.push({name: n, value: v});
-		}
-	}
-
-	if (!semantic && form.clk) {
-		// input type=='image' are not found in elements array! handle it here
-		var $input = $(form.clk), input = $input[0];
-		n = input.name;
-		if (n && !input.disabled && input.type == 'image') {
-			a.push({name: n, value: $input.val()});
-			a.push({name: n+'.x', value: form.clk_x}, {name: n+'.y', value: form.clk_y});
-		}
-	}
-	return a;
-};
-
-/**
- * Serializes form data into a 'submittable' string. This method will return a string
- * in the format: name1=value1&amp;name2=value2
- */
-$.fn.formSerialize = function(semantic) {
-	//hand off to jQuery.param for proper encoding
-	return $.param(this.formToArray(semantic));
-};
-
-/**
- * Serializes all field elements in the jQuery object into a query string.
- * This method will return a string in the format: name1=value1&amp;name2=value2
- */
-$.fn.fieldSerialize = function(successful) {
-	var a = [];
-	this.each(function() {
-		var n = this.name;
-		if (!n) {
-			return;
-		}
-		var v = $.fieldValue(this, successful);
-		if (v && v.constructor == Array) {
-			for (var i=0,max=v.length; i < max; i++) {
-				a.push({name: n, value: v[i]});
-			}
-		}
-		else if (v !== null && typeof v != 'undefined') {
-			a.push({name: this.name, value: v});
-		}
-	});
-	//hand off to jQuery.param for proper encoding
-	return $.param(a);
-};
-
-/**
- * Returns the value(s) of the element in the matched set.  For example, consider the following form:
- *
- *  <form><fieldset>
- *	  <input name="A" type="text" />
- *	  <input name="A" type="text" />
- *	  <input name="B" type="checkbox" value="B1" />
- *	  <input name="B" type="checkbox" value="B2"/>
- *	  <input name="C" type="radio" value="C1" />
- *	  <input name="C" type="radio" value="C2" />
- *  </fieldset></form>
- *
- *  var v = $(':text').fieldValue();
- *  // if no values are entered into the text inputs
- *  v == ['','']
- *  // if values entered into the text inputs are 'foo' and 'bar'
- *  v == ['foo','bar']
- *
- *  var v = $(':checkbox').fieldValue();
- *  // if neither checkbox is checked
- *  v === undefined
- *  // if both checkboxes are checked
- *  v == ['B1', 'B2']
- *
- *  var v = $(':radio').fieldValue();
- *  // if neither radio is checked
- *  v === undefined
- *  // if first radio is checked
- *  v == ['C1']
- *
- * The successful argument controls whether or not the field element must be 'successful'
- * (per http://www.w3.org/TR/html4/interact/forms.html#successful-controls).
- * The default value of the successful argument is true.  If this value is false the value(s)
- * for each element is returned.
- *
- * Note: This method *always* returns an array.  If no valid value can be determined the
- *	   array will be empty, otherwise it will contain one or more values.
- */
-$.fn.fieldValue = function(successful) {
-	for (var val=[], i=0, max=this.length; i < max; i++) {
-		var el = this[i];
-		var v = $.fieldValue(el, successful);
-		if (v === null || typeof v == 'undefined' || (v.constructor == Array && !v.length)) {
-			continue;
-		}
-		v.constructor == Array ? $.merge(val, v) : val.push(v);
-	}
-	return val;
-};
-
-/**
- * Returns the value of the field element.
- */
-$.fieldValue = function(el, successful) {
-	var n = el.name, t = el.type, tag = el.tagName.toLowerCase();
-	if (successful === undefined) {
-		successful = true;
-	}
-
-	if (successful && (!n || el.disabled || t == 'reset' || t == 'button' ||
-		(t == 'checkbox' || t == 'radio') && !el.checked ||
-		(t == 'submit' || t == 'image') && el.form && el.form.clk != el ||
-		tag == 'select' && el.selectedIndex == -1)) {
-			return null;
-	}
-
-	if (tag == 'select') {
-		var index = el.selectedIndex;
-		if (index < 0) {
-			return null;
-		}
-		var a = [], ops = el.options;
-		var one = (t == 'select-one');
-		var max = (one ? index+1 : ops.length);
-		for(var i=(one ? index : 0); i < max; i++) {
-			var op = ops[i];
-			if (op.selected) {
-				var v = op.value;
-				if (!v) { // extra pain for IE...
-					v = (op.attributes && op.attributes['value'] && !(op.attributes['value'].specified)) ? op.text : op.value;
-				}
-				if (one) {
-					return v;
-				}
-				a.push(v);
-			}
-		}
-		return a;
-	}
-	return $(el).val();
-};
-
-/**
- * Clears the form data.  Takes the following actions on the form's input fields:
- *  - input text fields will have their 'value' property set to the empty string
- *  - select elements will have their 'selectedIndex' property set to -1
- *  - checkbox and radio inputs will have their 'checked' property set to false
- *  - inputs of type submit, button, reset, and hidden will *not* be effected
- *  - button elements will *not* be effected
- */
-$.fn.clearForm = function() {
-	return this.each(function() {
-		$('input,select,textarea', this).clearFields();
-	});
-};
-
-/**
- * Clears the selected form elements.
- */
-$.fn.clearFields = $.fn.clearInputs = function() {
-	return this.each(function() {
-		var t = this.type, tag = this.tagName.toLowerCase();
-		if (t == 'text' || t == 'password' || tag == 'textarea') {
-			this.value = '';
-		}
-		else if (t == 'checkbox' || t == 'radio') {
-			this.checked = false;
-		}
-		else if (tag == 'select') {
-			this.selectedIndex = -1;
-		}
-	});
-};
-
-/**
- * Resets the form data.  Causes all form elements to be reset to their original value.
- */
-$.fn.resetForm = function() {
-	return this.each(function() {
-		// guard against an input with the name of 'reset'
-		// note that IE reports the reset function as an 'object'
-		if (typeof this.reset == 'function' || (typeof this.reset == 'object' && !this.reset.nodeType)) {
-			this.reset();
-		}
-	});
-};
-
-/**
- * Enables or disables any matching elements.
- */
-$.fn.enable = function(b) {
-	if (b === undefined) {
-		b = true;
-	}
-	return this.each(function() {
-		this.disabled = !b;
-	});
-};
-
-/**
- * Checks/unchecks any matching checkboxes or radio buttons and
- * selects/deselects and matching option elements.
- */
-$.fn.selected = function(select) {
-	if (select === undefined) {
-		select = true;
-	}
-	return this.each(function() {
-		var t = this.type;
-		if (t == 'checkbox' || t == 'radio') {
-			this.checked = select;
-		}
-		else if (this.tagName.toLowerCase() == 'option') {
-			var $sel = $(this).parent('select');
-			if (select && $sel[0] && $sel[0].type == 'select-one') {
-				// deselect all other options
-				$sel.find('option').selected(false);
-			}
-			this.selected = select;
-		}
-	});
-};
-
-// helper fn for console logging
-// set $.fn.ajaxSubmit.debug to true to enable debug logging
-function log() {
-	if ($.fn.ajaxSubmit.debug) {
-		var msg = '[jquery.form] ' + Array.prototype.join.call(arguments,'');
-		if (window.console && window.console.log) {
-			window.console.log(msg);
-		}
-		else if (window.opera && window.opera.postError) {
-			window.opera.postError(msg);
-		}
-	}
-};
-
-})(jQuery);
--- a/web/wp-includes/js/jquery/jquery.form.js	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/js/jquery/jquery.form.js	Wed Dec 19 17:46:52 2012 -0800
@@ -8,4 +8,818 @@
  *   http://www.opensource.org/licenses/mit-license.php
  *   http://www.gnu.org/licenses/gpl.html
  */
-(function(b){b.fn.ajaxSubmit=function(t){if(!this.length){a("ajaxSubmit: skipping submit process - no element selected");return this}if(typeof t=="function"){t={success:t}}var h=this.attr("action");var d=(typeof h==="string")?b.trim(h):"";if(d){d=(d.match(/^([^#]+)/)||[])[1]}d=d||window.location.href||"";t=b.extend(true,{url:d,success:b.ajaxSettings.success,type:this[0].getAttribute("method")||"GET",iframeSrc:/^https/i.test(window.location.href||"")?"javascript:false":"about:blank"},t);var u={};this.trigger("form-pre-serialize",[this,t,u]);if(u.veto){a("ajaxSubmit: submit vetoed via form-pre-serialize trigger");return this}if(t.beforeSerialize&&t.beforeSerialize(this,t)===false){a("ajaxSubmit: submit aborted via beforeSerialize callback");return this}var f,p,m=this.formToArray(t.semantic);if(t.data){t.extraData=t.data;for(f in t.data){if(t.data[f] instanceof Array){for(var i in t.data[f]){m.push({name:f,value:t.data[f][i]})}}else{p=t.data[f];p=b.isFunction(p)?p():p;m.push({name:f,value:p})}}}if(t.beforeSubmit&&t.beforeSubmit(m,this,t)===false){a("ajaxSubmit: submit aborted via beforeSubmit callback");return this}this.trigger("form-submit-validate",[m,this,t,u]);if(u.veto){a("ajaxSubmit: submit vetoed via form-submit-validate trigger");return this}var c=b.param(m);if(t.type.toUpperCase()=="GET"){t.url+=(t.url.indexOf("?")>=0?"&":"?")+c;t.data=null}else{t.data=c}var s=this,l=[];if(t.resetForm){l.push(function(){s.resetForm()})}if(t.clearForm){l.push(function(){s.clearForm()})}if(!t.dataType&&t.target){var r=t.success||function(){};l.push(function(n){var k=t.replaceTarget?"replaceWith":"html";b(t.target)[k](n).each(r,arguments)})}else{if(t.success){l.push(t.success)}}t.success=function(w,n,x){var v=t.context||t;for(var q=0,k=l.length;q<k;q++){l[q].apply(v,[w,n,x||s,s])}};var g=b("input:file",this).length>0;var e="multipart/form-data";var j=(s.attr("enctype")==e||s.attr("encoding")==e);if(t.iframe!==false&&(g||t.iframe||j)){if(t.closeKeepAlive){b.get(t.closeKeepAlive,o)}else{o()}}else{b.ajax(t)}this.trigger("form-submit-notify",[this,t]);return this;function o(){var v=s[0];if(b(":input[name=submit],:input[id=submit]",v).length){alert('Error: Form elements must not have name or id of "submit".');return}var D=b.extend(true,{},b.ajaxSettings,t);D.context=D.context||D;var G="jqFormIO"+(new Date().getTime()),A="_"+G;var x=b('<iframe id="'+G+'" name="'+G+'" src="'+D.iframeSrc+'" />');var B=x[0];x.css({position:"absolute",top:"-1000px",left:"-1000px"});var y={aborted:0,responseText:null,responseXML:null,status:0,statusText:"n/a",getAllResponseHeaders:function(){},getResponseHeader:function(){},setRequestHeader:function(){},abort:function(n){var O=(n==="timeout"?"timeout":"aborted");a("aborting upload... "+O);this.aborted=1;x.attr("src",D.iframeSrc);y.error=O;D.error&&D.error.call(D.context,y,O,O);K&&b.event.trigger("ajaxError",[y,D,O]);D.complete&&D.complete.call(D.context,y,O)}};var K=D.global;if(K&&!b.active++){b.event.trigger("ajaxStart")}if(K){b.event.trigger("ajaxSend",[y,D])}if(D.beforeSend&&D.beforeSend.call(D.context,y,D)===false){if(D.global){b.active--}return}if(y.aborted){return}var J=0,C;var z=v.clk;if(z){var H=z.name;if(H&&!z.disabled){D.extraData=D.extraData||{};D.extraData[H]=z.value;if(z.type=="image"){D.extraData[H+".x"]=v.clk_x;D.extraData[H+".y"]=v.clk_y}}}function I(){var Q=s.attr("target"),O=s.attr("action");v.setAttribute("target",G);if(v.getAttribute("method")!="POST"){v.setAttribute("method","POST")}if(v.getAttribute("action")!=D.url){v.setAttribute("action",D.url)}if(!D.skipEncodingOverride){s.attr({encoding:"multipart/form-data",enctype:"multipart/form-data"})}if(D.timeout){C=setTimeout(function(){J=true;F(true)},D.timeout)}var P=[];try{if(D.extraData){for(var R in D.extraData){P.push(b('<input type="hidden" name="'+R+'" value="'+D.extraData[R]+'" />').appendTo(v)[0])}}x.appendTo("body");B.attachEvent?B.attachEvent("onload",F):B.addEventListener("load",F,false);v.submit()}finally{v.setAttribute("action",O);if(Q){v.setAttribute("target",Q)}else{s.removeAttr("target")}b(P).remove()}}if(D.forceSync){I()}else{setTimeout(I,10)}var M,N,L=50,w;function F(T){if(y.aborted||w){return}if(T===true&&y){y.abort("timeout");return}var S=B.contentWindow?B.contentWindow.document:B.contentDocument?B.contentDocument:B.document;if(!S||S.location.href==D.iframeSrc){if(!J){return}}B.detachEvent?B.detachEvent("onload",F):B.removeEventListener("load",F,false);var P=true;try{if(J){throw"timeout"}var U=D.dataType=="xml"||S.XMLDocument||b.isXMLDoc(S);a("isXml="+U);if(!U&&window.opera&&(S.body==null||S.body.innerHTML=="")){if(--L){a("requeing onLoad callback, DOM not available");setTimeout(F,250);return}}y.responseText=S.body?S.body.innerHTML:S.documentElement?S.documentElement.innerHTML:null;y.responseXML=S.XMLDocument?S.XMLDocument:S;if(U){D.dataType="xml"}y.getResponseHeader=function(W){var V={"content-type":D.dataType};return V[W]};var R=/(json|script|text)/.test(D.dataType);if(R||D.textarea){var O=S.getElementsByTagName("textarea")[0];if(O){y.responseText=O.value}else{if(R){var Q=S.getElementsByTagName("pre")[0];var n=S.getElementsByTagName("body")[0];if(Q){y.responseText=Q.textContent}else{if(n){y.responseText=n.innerHTML}}}}}else{if(D.dataType=="xml"&&!y.responseXML&&y.responseText!=null){y.responseXML=E(y.responseText)}}M=k(y,D.dataType,D)}catch(T){a("error caught:",T);P=false;y.error=T;D.error&&D.error.call(D.context,y,"error",T);K&&b.event.trigger("ajaxError",[y,D,T])}if(y.aborted){a("upload aborted");P=false}if(P){D.success&&D.success.call(D.context,M,"success",y);K&&b.event.trigger("ajaxSuccess",[y,D])}K&&b.event.trigger("ajaxComplete",[y,D]);if(K&&!--b.active){b.event.trigger("ajaxStop")}D.complete&&D.complete.call(D.context,y,P?"success":"error");w=true;if(D.timeout){clearTimeout(C)}setTimeout(function(){x.removeData("form-plugin-onload");x.remove();y.responseXML=null},100)}var E=b.parseXML||function(n,O){if(window.ActiveXObject){O=new ActiveXObject("Microsoft.XMLDOM");O.async="false";O.loadXML(n)}else{O=(new DOMParser()).parseFromString(n,"text/xml")}return(O&&O.documentElement&&O.documentElement.nodeName!="parsererror")?O:null};var q=b.parseJSON||function(n){return window["eval"]("("+n+")")};var k=function(S,Q,P){var O=S.getResponseHeader("content-type")||"",n=Q==="xml"||!Q&&O.indexOf("xml")>=0,R=n?S.responseXML:S.responseText;if(n&&R.documentElement.nodeName==="parsererror"){b.error&&b.error("parsererror")}if(P&&P.dataFilter){R=P.dataFilter(R,Q)}if(typeof R==="string"){if(Q==="json"||!Q&&O.indexOf("json")>=0){R=q(R)}else{if(Q==="script"||!Q&&O.indexOf("javascript")>=0){b.globalEval(R)}}}return R}}};b.fn.ajaxForm=function(c){if(this.length===0){var d={s:this.selector,c:this.context};if(!b.isReady&&d.s){a("DOM not ready, queuing ajaxForm");b(function(){b(d.s,d.c).ajaxForm(c)});return this}a("terminating; zero elements found by selector"+(b.isReady?"":" (DOM not ready)"));return this}return this.ajaxFormUnbind().bind("submit.form-plugin",function(f){if(!f.isDefaultPrevented()){f.preventDefault();b(this).ajaxSubmit(c)}}).bind("click.form-plugin",function(j){var i=j.target;var g=b(i);if(!(g.is(":submit,input:image"))){var f=g.closest(":submit");if(f.length==0){return}i=f[0]}var h=this;h.clk=i;if(i.type=="image"){if(j.offsetX!=undefined){h.clk_x=j.offsetX;h.clk_y=j.offsetY}else{if(typeof b.fn.offset=="function"){var k=g.offset();h.clk_x=j.pageX-k.left;h.clk_y=j.pageY-k.top}else{h.clk_x=j.pageX-i.offsetLeft;h.clk_y=j.pageY-i.offsetTop}}}setTimeout(function(){h.clk=h.clk_x=h.clk_y=null},100)})};b.fn.ajaxFormUnbind=function(){return this.unbind("submit.form-plugin click.form-plugin")};b.fn.formToArray=function(q){var p=[];if(this.length===0){return p}var d=this[0];var g=q?d.getElementsByTagName("*"):d.elements;if(!g){return p}var k,h,f,r,e,m,c;for(k=0,m=g.length;k<m;k++){e=g[k];f=e.name;if(!f){continue}if(q&&d.clk&&e.type=="image"){if(!e.disabled&&d.clk==e){p.push({name:f,value:b(e).val()});p.push({name:f+".x",value:d.clk_x},{name:f+".y",value:d.clk_y})}continue}r=b.fieldValue(e,true);if(r&&r.constructor==Array){for(h=0,c=r.length;h<c;h++){p.push({name:f,value:r[h]})}}else{if(r!==null&&typeof r!="undefined"){p.push({name:f,value:r})}}}if(!q&&d.clk){var l=b(d.clk),o=l[0];f=o.name;if(f&&!o.disabled&&o.type=="image"){p.push({name:f,value:l.val()});p.push({name:f+".x",value:d.clk_x},{name:f+".y",value:d.clk_y})}}return p};b.fn.formSerialize=function(c){return b.param(this.formToArray(c))};b.fn.fieldSerialize=function(d){var c=[];this.each(function(){var h=this.name;if(!h){return}var f=b.fieldValue(this,d);if(f&&f.constructor==Array){for(var g=0,e=f.length;g<e;g++){c.push({name:h,value:f[g]})}}else{if(f!==null&&typeof f!="undefined"){c.push({name:this.name,value:f})}}});return b.param(c)};b.fn.fieldValue=function(h){for(var g=[],e=0,c=this.length;e<c;e++){var f=this[e];var d=b.fieldValue(f,h);if(d===null||typeof d=="undefined"||(d.constructor==Array&&!d.length)){continue}d.constructor==Array?b.merge(g,d):g.push(d)}return g};b.fieldValue=function(c,j){var e=c.name,p=c.type,q=c.tagName.toLowerCase();if(j===undefined){j=true}if(j&&(!e||c.disabled||p=="reset"||p=="button"||(p=="checkbox"||p=="radio")&&!c.checked||(p=="submit"||p=="image")&&c.form&&c.form.clk!=c||q=="select"&&c.selectedIndex==-1)){return null}if(q=="select"){var k=c.selectedIndex;if(k<0){return null}var m=[],d=c.options;var g=(p=="select-one");var l=(g?k+1:d.length);for(var f=(g?k:0);f<l;f++){var h=d[f];if(h.selected){var o=h.value;if(!o){o=(h.attributes&&h.attributes.value&&!(h.attributes.value.specified))?h.text:h.value}if(g){return o}m.push(o)}}return m}return b(c).val()};b.fn.clearForm=function(){return this.each(function(){b("input,select,textarea",this).clearFields()})};b.fn.clearFields=b.fn.clearInputs=function(){return this.each(function(){var d=this.type,c=this.tagName.toLowerCase();if(d=="text"||d=="password"||c=="textarea"){this.value=""}else{if(d=="checkbox"||d=="radio"){this.checked=false}else{if(c=="select"){this.selectedIndex=-1}}}})};b.fn.resetForm=function(){return this.each(function(){if(typeof this.reset=="function"||(typeof this.reset=="object"&&!this.reset.nodeType)){this.reset()}})};b.fn.enable=function(c){if(c===undefined){c=true}return this.each(function(){this.disabled=!c})};b.fn.selected=function(c){if(c===undefined){c=true}return this.each(function(){var d=this.type;if(d=="checkbox"||d=="radio"){this.checked=c}else{if(this.tagName.toLowerCase()=="option"){var e=b(this).parent("select");if(c&&e[0]&&e[0].type=="select-one"){e.find("option").selected(false)}this.selected=c}}})};function a(){if(b.fn.ajaxSubmit.debug){var c="[jquery.form] "+Array.prototype.join.call(arguments,"");if(window.console&&window.console.log){window.console.log(c)}else{if(window.opera&&window.opera.postError){window.opera.postError(c)}}}}})(jQuery);
\ No newline at end of file
+;(function($) {
+
+/*
+	Usage Note:
+	-----------
+	Do not use both ajaxSubmit and ajaxForm on the same form.  These
+	functions are intended to be exclusive.  Use ajaxSubmit if you want
+	to bind your own submit handler to the form.  For example,
+
+	$(document).ready(function() {
+		$('#myForm').bind('submit', function(e) {
+			e.preventDefault(); // <-- important
+			$(this).ajaxSubmit({
+				target: '#output'
+			});
+		});
+	});
+
+	Use ajaxForm when you want the plugin to manage all the event binding
+	for you.  For example,
+
+	$(document).ready(function() {
+		$('#myForm').ajaxForm({
+			target: '#output'
+		});
+	});
+
+	When using ajaxForm, the ajaxSubmit function will be invoked for you
+	at the appropriate time.
+*/
+
+/**
+ * ajaxSubmit() provides a mechanism for immediately submitting
+ * an HTML form using AJAX.
+ */
+$.fn.ajaxSubmit = function(options) {
+	// fast fail if nothing selected (http://dev.jquery.com/ticket/2752)
+	if (!this.length) {
+		log('ajaxSubmit: skipping submit process - no element selected');
+		return this;
+	}
+
+	if (typeof options == 'function') {
+		options = { success: options };
+	}
+
+	var action = this.attr('action');
+	var url = (typeof action === 'string') ? $.trim(action) : '';
+	if (url) {
+		// clean url (don't include hash vaue)
+		url = (url.match(/^([^#]+)/)||[])[1];
+	}
+	url = url || window.location.href || '';
+
+	options = $.extend(true, {
+		url:  url,
+		success: $.ajaxSettings.success,
+		type: this[0].getAttribute('method') || 'GET', // IE7 massage (see issue 57)
+		iframeSrc: /^https/i.test(window.location.href || '') ? 'javascript:false' : 'about:blank'
+	}, options);
+
+	// hook for manipulating the form data before it is extracted;
+	// convenient for use with rich editors like tinyMCE or FCKEditor
+	var veto = {};
+	this.trigger('form-pre-serialize', [this, options, veto]);
+	if (veto.veto) {
+		log('ajaxSubmit: submit vetoed via form-pre-serialize trigger');
+		return this;
+	}
+
+	// provide opportunity to alter form data before it is serialized
+	if (options.beforeSerialize && options.beforeSerialize(this, options) === false) {
+		log('ajaxSubmit: submit aborted via beforeSerialize callback');
+		return this;
+	}
+
+	var n,v,a = this.formToArray(options.semantic);
+	if (options.data) {
+		options.extraData = options.data;
+		for (n in options.data) {
+			if(options.data[n] instanceof Array) {
+				for (var k in options.data[n]) {
+					a.push( { name: n, value: options.data[n][k] } );
+				}
+			}
+			else {
+				v = options.data[n];
+				v = $.isFunction(v) ? v() : v; // if value is fn, invoke it
+				a.push( { name: n, value: v } );
+			}
+		}
+	}
+
+	// give pre-submit callback an opportunity to abort the submit
+	if (options.beforeSubmit && options.beforeSubmit(a, this, options) === false) {
+		log('ajaxSubmit: submit aborted via beforeSubmit callback');
+		return this;
+	}
+
+	// fire vetoable 'validate' event
+	this.trigger('form-submit-validate', [a, this, options, veto]);
+	if (veto.veto) {
+		log('ajaxSubmit: submit vetoed via form-submit-validate trigger');
+		return this;
+	}
+
+	var q = $.param(a);
+
+	if (options.type.toUpperCase() == 'GET') {
+		options.url += (options.url.indexOf('?') >= 0 ? '&' : '?') + q;
+		options.data = null;  // data is null for 'get'
+	}
+	else {
+		options.data = q; // data is the query string for 'post'
+	}
+
+	var $form = this, callbacks = [];
+	if (options.resetForm) {
+		callbacks.push(function() { $form.resetForm(); });
+	}
+	if (options.clearForm) {
+		callbacks.push(function() { $form.clearForm(); });
+	}
+
+	// perform a load on the target only if dataType is not provided
+	if (!options.dataType && options.target) {
+		var oldSuccess = options.success || function(){};
+		callbacks.push(function(data) {
+			var fn = options.replaceTarget ? 'replaceWith' : 'html';
+			$(options.target)[fn](data).each(oldSuccess, arguments);
+		});
+	}
+	else if (options.success) {
+		callbacks.push(options.success);
+	}
+
+	options.success = function(data, status, xhr) { // jQuery 1.4+ passes xhr as 3rd arg
+		var context = options.context || options;   // jQuery 1.4+ supports scope context
+		for (var i=0, max=callbacks.length; i < max; i++) {
+			callbacks[i].apply(context, [data, status, xhr || $form, $form]);
+		}
+	};
+
+	// are there files to upload?
+	var fileInputs = $('input:file', this).length > 0;
+	var mp = 'multipart/form-data';
+	var multipart = ($form.attr('enctype') == mp || $form.attr('encoding') == mp);
+
+	// options.iframe allows user to force iframe mode
+	// 06-NOV-09: now defaulting to iframe mode if file input is detected
+   if (options.iframe !== false && (fileInputs || options.iframe || multipart)) {
+	   // hack to fix Safari hang (thanks to Tim Molendijk for this)
+	   // see:  http://groups.google.com/group/jquery-dev/browse_thread/thread/36395b7ab510dd5d
+	   if (options.closeKeepAlive) {
+		   $.get(options.closeKeepAlive, fileUpload);
+		}
+	   else {
+		   fileUpload();
+		}
+   }
+   else {
+		$.ajax(options);
+   }
+
+	// fire 'notify' event
+	this.trigger('form-submit-notify', [this, options]);
+	return this;
+
+
+	// private function for handling file uploads (hat tip to YAHOO!)
+	function fileUpload() {
+		var form = $form[0];
+
+		if ($(':input[name=submit],:input[id=submit]', form).length) {
+			// if there is an input with a name or id of 'submit' then we won't be
+			// able to invoke the submit fn on the form (at least not x-browser)
+			alert('Error: Form elements must not have name or id of "submit".');
+			return;
+		}
+
+		var s = $.extend(true, {}, $.ajaxSettings, options);
+		s.context = s.context || s;
+		var id = 'jqFormIO' + (new Date().getTime()), fn = '_'+id;
+		var $io = $('<iframe id="' + id + '" name="' + id + '" src="'+ s.iframeSrc +'" />');
+		var io = $io[0];
+
+		$io.css({ position: 'absolute', top: '-1000px', left: '-1000px' });
+
+		var xhr = { // mock object
+			aborted: 0,
+			responseText: null,
+			responseXML: null,
+			status: 0,
+			statusText: 'n/a',
+			getAllResponseHeaders: function() {},
+			getResponseHeader: function() {},
+			setRequestHeader: function() {},
+			abort: function(status) {
+				var e = (status === 'timeout' ? 'timeout' : 'aborted');
+				log('aborting upload... ' + e);
+				this.aborted = 1;
+				$io.attr('src', s.iframeSrc); // abort op in progress
+				xhr.error = e;
+				s.error && s.error.call(s.context, xhr, e, e);
+				g && $.event.trigger("ajaxError", [xhr, s, e]);
+				s.complete && s.complete.call(s.context, xhr, e);
+			}
+		};
+
+		var g = s.global;
+		// trigger ajax global events so that activity/block indicators work like normal
+		if (g && ! $.active++) {
+			$.event.trigger("ajaxStart");
+		}
+		if (g) {
+			$.event.trigger("ajaxSend", [xhr, s]);
+		}
+
+		if (s.beforeSend && s.beforeSend.call(s.context, xhr, s) === false) {
+			if (s.global) {
+				$.active--;
+			}
+			return;
+		}
+		if (xhr.aborted) {
+			return;
+		}
+
+		var timedOut = 0, timeoutHandle;
+
+		// add submitting element to data if we know it
+		var sub = form.clk;
+		if (sub) {
+			var n = sub.name;
+			if (n && !sub.disabled) {
+				s.extraData = s.extraData || {};
+				s.extraData[n] = sub.value;
+				if (sub.type == "image") {
+					s.extraData[n+'.x'] = form.clk_x;
+					s.extraData[n+'.y'] = form.clk_y;
+				}
+			}
+		}
+
+		// take a breath so that pending repaints get some cpu time before the upload starts
+		function doSubmit() {
+			// make sure form attrs are set
+			var t = $form.attr('target'), a = $form.attr('action');
+
+			// update form attrs in IE friendly way
+			form.setAttribute('target',id);
+			if (form.getAttribute('method') != 'POST') {
+				form.setAttribute('method', 'POST');
+			}
+			if (form.getAttribute('action') != s.url) {
+				form.setAttribute('action', s.url);
+			}
+
+			// ie borks in some cases when setting encoding
+			if (! s.skipEncodingOverride) {
+				$form.attr({
+					encoding: 'multipart/form-data',
+					enctype:  'multipart/form-data'
+				});
+			}
+
+			// support timout
+			if (s.timeout) {
+				timeoutHandle = setTimeout(function() { timedOut = true; cb(true); }, s.timeout);
+			}
+
+			// add "extra" data to form if provided in options
+			var extraInputs = [];
+			try {
+				if (s.extraData) {
+					for (var n in s.extraData) {
+						extraInputs.push(
+							$('<input type="hidden" name="'+n+'" value="'+s.extraData[n]+'" />')
+								.appendTo(form)[0]);
+					}
+				}
+
+				// add iframe to doc and submit the form
+				$io.appendTo('body');
+                io.attachEvent ? io.attachEvent('onload', cb) : io.addEventListener('load', cb, false);
+				form.submit();
+			}
+			finally {
+				// reset attrs and remove "extra" input elements
+				form.setAttribute('action',a);
+				if(t) {
+					form.setAttribute('target', t);
+				} else {
+					$form.removeAttr('target');
+				}
+				$(extraInputs).remove();
+			}
+		}
+
+		if (s.forceSync) {
+			doSubmit();
+		}
+		else {
+			setTimeout(doSubmit, 10); // this lets dom updates render
+		}
+
+		var data, doc, domCheckCount = 50, callbackProcessed;
+
+		function cb(e) {
+			if (xhr.aborted || callbackProcessed) {
+				return;
+			}
+			if (e === true && xhr) {
+				xhr.abort('timeout');
+				return;
+			}
+
+			var doc = io.contentWindow ? io.contentWindow.document : io.contentDocument ? io.contentDocument : io.document;
+			if (!doc || doc.location.href == s.iframeSrc) {
+				// response not received yet
+				if (!timedOut)
+					return;
+			}
+            io.detachEvent ? io.detachEvent('onload', cb) : io.removeEventListener('load', cb, false);
+
+			var ok = true;
+			try {
+				if (timedOut) {
+					throw 'timeout';
+				}
+
+				var isXml = s.dataType == 'xml' || doc.XMLDocument || $.isXMLDoc(doc);
+				log('isXml='+isXml);
+				if (!isXml && window.opera && (doc.body == null || doc.body.innerHTML == '')) {
+					if (--domCheckCount) {
+						// in some browsers (Opera) the iframe DOM is not always traversable when
+						// the onload callback fires, so we loop a bit to accommodate
+						log('requeing onLoad callback, DOM not available');
+						setTimeout(cb, 250);
+						return;
+					}
+					// let this fall through because server response could be an empty document
+					//log('Could not access iframe DOM after mutiple tries.');
+					//throw 'DOMException: not available';
+				}
+
+				//log('response detected');
+				xhr.responseText = doc.body ? doc.body.innerHTML : doc.documentElement ? doc.documentElement.innerHTML : null;
+				xhr.responseXML = doc.XMLDocument ? doc.XMLDocument : doc;
+				if (isXml)
+					s.dataType = 'xml';
+				xhr.getResponseHeader = function(header){
+					var headers = {'content-type': s.dataType};
+					return headers[header];
+				};
+
+				var scr = /(json|script|text)/.test(s.dataType);
+				if (scr || s.textarea) {
+					// see if user embedded response in textarea
+					var ta = doc.getElementsByTagName('textarea')[0];
+					if (ta) {
+						xhr.responseText = ta.value;
+					}
+					else if (scr) {
+						// account for browsers injecting pre around json response
+						var pre = doc.getElementsByTagName('pre')[0];
+						var b = doc.getElementsByTagName('body')[0];
+						if (pre) {
+							xhr.responseText = pre.textContent;
+						}
+						else if (b) {
+							xhr.responseText = b.innerHTML;
+						}
+					}
+				}
+				else if (s.dataType == 'xml' && !xhr.responseXML && xhr.responseText != null) {
+					xhr.responseXML = toXml(xhr.responseText);
+				}
+
+				data = httpData(xhr, s.dataType, s);
+			}
+			catch(e){
+				log('error caught:',e);
+				ok = false;
+				xhr.error = e;
+				s.error && s.error.call(s.context, xhr, 'error', e);
+				g && $.event.trigger("ajaxError", [xhr, s, e]);
+			}
+
+			if (xhr.aborted) {
+				log('upload aborted');
+				ok = false;
+			}
+
+			// ordering of these callbacks/triggers is odd, but that's how $.ajax does it
+			if (ok) {
+				s.success && s.success.call(s.context, data, 'success', xhr);
+				g && $.event.trigger("ajaxSuccess", [xhr, s]);
+			}
+
+			g && $.event.trigger("ajaxComplete", [xhr, s]);
+
+			if (g && ! --$.active) {
+				$.event.trigger("ajaxStop");
+			}
+
+			s.complete && s.complete.call(s.context, xhr, ok ? 'success' : 'error');
+
+			callbackProcessed = true;
+			if (s.timeout)
+				clearTimeout(timeoutHandle);
+
+			// clean up
+			setTimeout(function() {
+				$io.removeData('form-plugin-onload');
+				$io.remove();
+				xhr.responseXML = null;
+			}, 100);
+		}
+
+		var toXml = $.parseXML || function(s, doc) { // use parseXML if available (jQuery 1.5+)
+			if (window.ActiveXObject) {
+				doc = new ActiveXObject('Microsoft.XMLDOM');
+				doc.async = 'false';
+				doc.loadXML(s);
+			}
+			else {
+				doc = (new DOMParser()).parseFromString(s, 'text/xml');
+			}
+			return (doc && doc.documentElement && doc.documentElement.nodeName != 'parsererror') ? doc : null;
+		};
+		var parseJSON = $.parseJSON || function(s) {
+			return window['eval']('(' + s + ')');
+		};
+
+		var httpData = function( xhr, type, s ) { // mostly lifted from jq1.4.4
+			var ct = xhr.getResponseHeader('content-type') || '',
+				xml = type === 'xml' || !type && ct.indexOf('xml') >= 0,
+				data = xml ? xhr.responseXML : xhr.responseText;
+
+			if (xml && data.documentElement.nodeName === 'parsererror') {
+				$.error && $.error('parsererror');
+			}
+			if (s && s.dataFilter) {
+				data = s.dataFilter(data, type);
+			}
+			if (typeof data === 'string') {
+				if (type === 'json' || !type && ct.indexOf('json') >= 0) {
+					data = parseJSON(data);
+				} else if (type === "script" || !type && ct.indexOf("javascript") >= 0) {
+					$.globalEval(data);
+				}
+			}
+			return data;
+		};
+	}
+};
+
+/**
+ * ajaxForm() provides a mechanism for fully automating form submission.
+ *
+ * The advantages of using this method instead of ajaxSubmit() are:
+ *
+ * 1: This method will include coordinates for <input type="image" /> elements (if the element
+ *	is used to submit the form).
+ * 2. This method will include the submit element's name/value data (for the element that was
+ *	used to submit the form).
+ * 3. This method binds the submit() method to the form for you.
+ *
+ * The options argument for ajaxForm works exactly as it does for ajaxSubmit.  ajaxForm merely
+ * passes the options argument along after properly binding events for submit elements and
+ * the form itself.
+ */
+$.fn.ajaxForm = function(options) {
+	// in jQuery 1.3+ we can fix mistakes with the ready state
+	if (this.length === 0) {
+		var o = { s: this.selector, c: this.context };
+		if (!$.isReady && o.s) {
+			log('DOM not ready, queuing ajaxForm');
+			$(function() {
+				$(o.s,o.c).ajaxForm(options);
+			});
+			return this;
+		}
+		// is your DOM ready?  http://docs.jquery.com/Tutorials:Introducing_$(document).ready()
+		log('terminating; zero elements found by selector' + ($.isReady ? '' : ' (DOM not ready)'));
+		return this;
+	}
+
+	return this.ajaxFormUnbind().bind('submit.form-plugin', function(e) {
+		if (!e.isDefaultPrevented()) { // if event has been canceled, don't proceed
+			e.preventDefault();
+			$(this).ajaxSubmit(options);
+		}
+	}).bind('click.form-plugin', function(e) {
+		var target = e.target;
+		var $el = $(target);
+		if (!($el.is(":submit,input:image"))) {
+			// is this a child element of the submit el?  (ex: a span within a button)
+			var t = $el.closest(':submit');
+			if (t.length == 0) {
+				return;
+			}
+			target = t[0];
+		}
+		var form = this;
+		form.clk = target;
+		if (target.type == 'image') {
+			if (e.offsetX != undefined) {
+				form.clk_x = e.offsetX;
+				form.clk_y = e.offsetY;
+			} else if (typeof $.fn.offset == 'function') { // try to use dimensions plugin
+				var offset = $el.offset();
+				form.clk_x = e.pageX - offset.left;
+				form.clk_y = e.pageY - offset.top;
+			} else {
+				form.clk_x = e.pageX - target.offsetLeft;
+				form.clk_y = e.pageY - target.offsetTop;
+			}
+		}
+		// clear form vars
+		setTimeout(function() { form.clk = form.clk_x = form.clk_y = null; }, 100);
+	});
+};
+
+// ajaxFormUnbind unbinds the event handlers that were bound by ajaxForm
+$.fn.ajaxFormUnbind = function() {
+	return this.unbind('submit.form-plugin click.form-plugin');
+};
+
+/**
+ * formToArray() gathers form element data into an array of objects that can
+ * be passed to any of the following ajax functions: $.get, $.post, or load.
+ * Each object in the array has both a 'name' and 'value' property.  An example of
+ * an array for a simple login form might be:
+ *
+ * [ { name: 'username', value: 'jresig' }, { name: 'password', value: 'secret' } ]
+ *
+ * It is this array that is passed to pre-submit callback functions provided to the
+ * ajaxSubmit() and ajaxForm() methods.
+ */
+$.fn.formToArray = function(semantic) {
+	var a = [];
+	if (this.length === 0) {
+		return a;
+	}
+
+	var form = this[0];
+	var els = semantic ? form.getElementsByTagName('*') : form.elements;
+	if (!els) {
+		return a;
+	}
+
+	var i,j,n,v,el,max,jmax;
+	for(i=0, max=els.length; i < max; i++) {
+		el = els[i];
+		n = el.name;
+		if (!n) {
+			continue;
+		}
+
+		if (semantic && form.clk && el.type == "image") {
+			// handle image inputs on the fly when semantic == true
+			if(!el.disabled && form.clk == el) {
+				a.push({name: n, value: $(el).val()});
+				a.push({name: n+'.x', value: form.clk_x}, {name: n+'.y', value: form.clk_y});
+			}
+			continue;
+		}
+
+		v = $.fieldValue(el, true);
+		if (v && v.constructor == Array) {
+			for(j=0, jmax=v.length; j < jmax; j++) {
+				a.push({name: n, value: v[j]});
+			}
+		}
+		else if (v !== null && typeof v != 'undefined') {
+			a.push({name: n, value: v});
+		}
+	}
+
+	if (!semantic && form.clk) {
+		// input type=='image' are not found in elements array! handle it here
+		var $input = $(form.clk), input = $input[0];
+		n = input.name;
+		if (n && !input.disabled && input.type == 'image') {
+			a.push({name: n, value: $input.val()});
+			a.push({name: n+'.x', value: form.clk_x}, {name: n+'.y', value: form.clk_y});
+		}
+	}
+	return a;
+};
+
+/**
+ * Serializes form data into a 'submittable' string. This method will return a string
+ * in the format: name1=value1&amp;name2=value2
+ */
+$.fn.formSerialize = function(semantic) {
+	//hand off to jQuery.param for proper encoding
+	return $.param(this.formToArray(semantic));
+};
+
+/**
+ * Serializes all field elements in the jQuery object into a query string.
+ * This method will return a string in the format: name1=value1&amp;name2=value2
+ */
+$.fn.fieldSerialize = function(successful) {
+	var a = [];
+	this.each(function() {
+		var n = this.name;
+		if (!n) {
+			return;
+		}
+		var v = $.fieldValue(this, successful);
+		if (v && v.constructor == Array) {
+			for (var i=0,max=v.length; i < max; i++) {
+				a.push({name: n, value: v[i]});
+			}
+		}
+		else if (v !== null && typeof v != 'undefined') {
+			a.push({name: this.name, value: v});
+		}
+	});
+	//hand off to jQuery.param for proper encoding
+	return $.param(a);
+};
+
+/**
+ * Returns the value(s) of the element in the matched set.  For example, consider the following form:
+ *
+ *  <form><fieldset>
+ *	  <input name="A" type="text" />
+ *	  <input name="A" type="text" />
+ *	  <input name="B" type="checkbox" value="B1" />
+ *	  <input name="B" type="checkbox" value="B2"/>
+ *	  <input name="C" type="radio" value="C1" />
+ *	  <input name="C" type="radio" value="C2" />
+ *  </fieldset></form>
+ *
+ *  var v = $(':text').fieldValue();
+ *  // if no values are entered into the text inputs
+ *  v == ['','']
+ *  // if values entered into the text inputs are 'foo' and 'bar'
+ *  v == ['foo','bar']
+ *
+ *  var v = $(':checkbox').fieldValue();
+ *  // if neither checkbox is checked
+ *  v === undefined
+ *  // if both checkboxes are checked
+ *  v == ['B1', 'B2']
+ *
+ *  var v = $(':radio').fieldValue();
+ *  // if neither radio is checked
+ *  v === undefined
+ *  // if first radio is checked
+ *  v == ['C1']
+ *
+ * The successful argument controls whether or not the field element must be 'successful'
+ * (per http://www.w3.org/TR/html4/interact/forms.html#successful-controls).
+ * The default value of the successful argument is true.  If this value is false the value(s)
+ * for each element is returned.
+ *
+ * Note: This method *always* returns an array.  If no valid value can be determined the
+ *	   array will be empty, otherwise it will contain one or more values.
+ */
+$.fn.fieldValue = function(successful) {
+	for (var val=[], i=0, max=this.length; i < max; i++) {
+		var el = this[i];
+		var v = $.fieldValue(el, successful);
+		if (v === null || typeof v == 'undefined' || (v.constructor == Array && !v.length)) {
+			continue;
+		}
+		v.constructor == Array ? $.merge(val, v) : val.push(v);
+	}
+	return val;
+};
+
+/**
+ * Returns the value of the field element.
+ */
+$.fieldValue = function(el, successful) {
+	var n = el.name, t = el.type, tag = el.tagName.toLowerCase();
+	if (successful === undefined) {
+		successful = true;
+	}
+
+	if (successful && (!n || el.disabled || t == 'reset' || t == 'button' ||
+		(t == 'checkbox' || t == 'radio') && !el.checked ||
+		(t == 'submit' || t == 'image') && el.form && el.form.clk != el ||
+		tag == 'select' && el.selectedIndex == -1)) {
+			return null;
+	}
+
+	if (tag == 'select') {
+		var index = el.selectedIndex;
+		if (index < 0) {
+			return null;
+		}
+		var a = [], ops = el.options;
+		var one = (t == 'select-one');
+		var max = (one ? index+1 : ops.length);
+		for(var i=(one ? index : 0); i < max; i++) {
+			var op = ops[i];
+			if (op.selected) {
+				var v = op.value;
+				if (!v) { // extra pain for IE...
+					v = (op.attributes && op.attributes['value'] && !(op.attributes['value'].specified)) ? op.text : op.value;
+				}
+				if (one) {
+					return v;
+				}
+				a.push(v);
+			}
+		}
+		return a;
+	}
+	return $(el).val();
+};
+
+/**
+ * Clears the form data.  Takes the following actions on the form's input fields:
+ *  - input text fields will have their 'value' property set to the empty string
+ *  - select elements will have their 'selectedIndex' property set to -1
+ *  - checkbox and radio inputs will have their 'checked' property set to false
+ *  - inputs of type submit, button, reset, and hidden will *not* be effected
+ *  - button elements will *not* be effected
+ */
+$.fn.clearForm = function() {
+	return this.each(function() {
+		$('input,select,textarea', this).clearFields();
+	});
+};
+
+/**
+ * Clears the selected form elements.
+ */
+$.fn.clearFields = $.fn.clearInputs = function() {
+	return this.each(function() {
+		var t = this.type, tag = this.tagName.toLowerCase();
+		if (t == 'text' || t == 'password' || tag == 'textarea') {
+			this.value = '';
+		}
+		else if (t == 'checkbox' || t == 'radio') {
+			this.checked = false;
+		}
+		else if (tag == 'select') {
+			this.selectedIndex = -1;
+		}
+	});
+};
+
+/**
+ * Resets the form data.  Causes all form elements to be reset to their original value.
+ */
+$.fn.resetForm = function() {
+	return this.each(function() {
+		// guard against an input with the name of 'reset'
+		// note that IE reports the reset function as an 'object'
+		if (typeof this.reset == 'function' || (typeof this.reset == 'object' && !this.reset.nodeType)) {
+			this.reset();
+		}
+	});
+};
+
+/**
+ * Enables or disables any matching elements.
+ */
+$.fn.enable = function(b) {
+	if (b === undefined) {
+		b = true;
+	}
+	return this.each(function() {
+		this.disabled = !b;
+	});
+};
+
+/**
+ * Checks/unchecks any matching checkboxes or radio buttons and
+ * selects/deselects and matching option elements.
+ */
+$.fn.selected = function(select) {
+	if (select === undefined) {
+		select = true;
+	}
+	return this.each(function() {
+		var t = this.type;
+		if (t == 'checkbox' || t == 'radio') {
+			this.checked = select;
+		}
+		else if (this.tagName.toLowerCase() == 'option') {
+			var $sel = $(this).parent('select');
+			if (select && $sel[0] && $sel[0].type == 'select-one') {
+				// deselect all other options
+				$sel.find('option').selected(false);
+			}
+			this.selected = select;
+		}
+	});
+};
+
+// helper fn for console logging
+// set $.fn.ajaxSubmit.debug to true to enable debug logging
+function log() {
+	if ($.fn.ajaxSubmit.debug) {
+		var msg = '[jquery.form] ' + Array.prototype.join.call(arguments,'');
+		if (window.console && window.console.log) {
+			window.console.log(msg);
+		}
+		else if (window.opera && window.opera.postError) {
+			window.opera.postError(msg);
+		}
+	}
+};
+
+})(jQuery);
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-includes/js/jquery/jquery.form.min.js	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,11 @@
+/*!
+ * jQuery Form Plugin
+ * version: 2.73 (03-MAY-2011)
+ * @requires jQuery v1.3.2 or later
+ *
+ * Examples and documentation at: http://malsup.com/jquery/form/
+ * Dual licensed under the MIT and GPL licenses:
+ *   http://www.opensource.org/licenses/mit-license.php
+ *   http://www.gnu.org/licenses/gpl.html
+ */
+(function(b){b.fn.ajaxSubmit=function(t){if(!this.length){a("ajaxSubmit: skipping submit process - no element selected");return this}if(typeof t=="function"){t={success:t}}var h=this.attr("action");var d=(typeof h==="string")?b.trim(h):"";if(d){d=(d.match(/^([^#]+)/)||[])[1]}d=d||window.location.href||"";t=b.extend(true,{url:d,success:b.ajaxSettings.success,type:this[0].getAttribute("method")||"GET",iframeSrc:/^https/i.test(window.location.href||"")?"javascript:false":"about:blank"},t);var u={};this.trigger("form-pre-serialize",[this,t,u]);if(u.veto){a("ajaxSubmit: submit vetoed via form-pre-serialize trigger");return this}if(t.beforeSerialize&&t.beforeSerialize(this,t)===false){a("ajaxSubmit: submit aborted via beforeSerialize callback");return this}var f,p,m=this.formToArray(t.semantic);if(t.data){t.extraData=t.data;for(f in t.data){if(t.data[f] instanceof Array){for(var i in t.data[f]){m.push({name:f,value:t.data[f][i]})}}else{p=t.data[f];p=b.isFunction(p)?p():p;m.push({name:f,value:p})}}}if(t.beforeSubmit&&t.beforeSubmit(m,this,t)===false){a("ajaxSubmit: submit aborted via beforeSubmit callback");return this}this.trigger("form-submit-validate",[m,this,t,u]);if(u.veto){a("ajaxSubmit: submit vetoed via form-submit-validate trigger");return this}var c=b.param(m);if(t.type.toUpperCase()=="GET"){t.url+=(t.url.indexOf("?")>=0?"&":"?")+c;t.data=null}else{t.data=c}var s=this,l=[];if(t.resetForm){l.push(function(){s.resetForm()})}if(t.clearForm){l.push(function(){s.clearForm()})}if(!t.dataType&&t.target){var r=t.success||function(){};l.push(function(n){var k=t.replaceTarget?"replaceWith":"html";b(t.target)[k](n).each(r,arguments)})}else{if(t.success){l.push(t.success)}}t.success=function(w,n,x){var v=t.context||t;for(var q=0,k=l.length;q<k;q++){l[q].apply(v,[w,n,x||s,s])}};var g=b("input:file",this).length>0;var e="multipart/form-data";var j=(s.attr("enctype")==e||s.attr("encoding")==e);if(t.iframe!==false&&(g||t.iframe||j)){if(t.closeKeepAlive){b.get(t.closeKeepAlive,o)}else{o()}}else{b.ajax(t)}this.trigger("form-submit-notify",[this,t]);return this;function o(){var v=s[0];if(b(":input[name=submit],:input[id=submit]",v).length){alert('Error: Form elements must not have name or id of "submit".');return}var D=b.extend(true,{},b.ajaxSettings,t);D.context=D.context||D;var G="jqFormIO"+(new Date().getTime()),A="_"+G;var x=b('<iframe id="'+G+'" name="'+G+'" src="'+D.iframeSrc+'" />');var B=x[0];x.css({position:"absolute",top:"-1000px",left:"-1000px"});var y={aborted:0,responseText:null,responseXML:null,status:0,statusText:"n/a",getAllResponseHeaders:function(){},getResponseHeader:function(){},setRequestHeader:function(){},abort:function(n){var O=(n==="timeout"?"timeout":"aborted");a("aborting upload... "+O);this.aborted=1;x.attr("src",D.iframeSrc);y.error=O;D.error&&D.error.call(D.context,y,O,O);K&&b.event.trigger("ajaxError",[y,D,O]);D.complete&&D.complete.call(D.context,y,O)}};var K=D.global;if(K&&!b.active++){b.event.trigger("ajaxStart")}if(K){b.event.trigger("ajaxSend",[y,D])}if(D.beforeSend&&D.beforeSend.call(D.context,y,D)===false){if(D.global){b.active--}return}if(y.aborted){return}var J=0,C;var z=v.clk;if(z){var H=z.name;if(H&&!z.disabled){D.extraData=D.extraData||{};D.extraData[H]=z.value;if(z.type=="image"){D.extraData[H+".x"]=v.clk_x;D.extraData[H+".y"]=v.clk_y}}}function I(){var Q=s.attr("target"),O=s.attr("action");v.setAttribute("target",G);if(v.getAttribute("method")!="POST"){v.setAttribute("method","POST")}if(v.getAttribute("action")!=D.url){v.setAttribute("action",D.url)}if(!D.skipEncodingOverride){s.attr({encoding:"multipart/form-data",enctype:"multipart/form-data"})}if(D.timeout){C=setTimeout(function(){J=true;F(true)},D.timeout)}var P=[];try{if(D.extraData){for(var R in D.extraData){P.push(b('<input type="hidden" name="'+R+'" value="'+D.extraData[R]+'" />').appendTo(v)[0])}}x.appendTo("body");B.attachEvent?B.attachEvent("onload",F):B.addEventListener("load",F,false);v.submit()}finally{v.setAttribute("action",O);if(Q){v.setAttribute("target",Q)}else{s.removeAttr("target")}b(P).remove()}}if(D.forceSync){I()}else{setTimeout(I,10)}var M,N,L=50,w;function F(T){if(y.aborted||w){return}if(T===true&&y){y.abort("timeout");return}var S=B.contentWindow?B.contentWindow.document:B.contentDocument?B.contentDocument:B.document;if(!S||S.location.href==D.iframeSrc){if(!J){return}}B.detachEvent?B.detachEvent("onload",F):B.removeEventListener("load",F,false);var P=true;try{if(J){throw"timeout"}var U=D.dataType=="xml"||S.XMLDocument||b.isXMLDoc(S);a("isXml="+U);if(!U&&window.opera&&(S.body==null||S.body.innerHTML=="")){if(--L){a("requeing onLoad callback, DOM not available");setTimeout(F,250);return}}y.responseText=S.body?S.body.innerHTML:S.documentElement?S.documentElement.innerHTML:null;y.responseXML=S.XMLDocument?S.XMLDocument:S;if(U){D.dataType="xml"}y.getResponseHeader=function(W){var V={"content-type":D.dataType};return V[W]};var R=/(json|script|text)/.test(D.dataType);if(R||D.textarea){var O=S.getElementsByTagName("textarea")[0];if(O){y.responseText=O.value}else{if(R){var Q=S.getElementsByTagName("pre")[0];var n=S.getElementsByTagName("body")[0];if(Q){y.responseText=Q.textContent}else{if(n){y.responseText=n.innerHTML}}}}}else{if(D.dataType=="xml"&&!y.responseXML&&y.responseText!=null){y.responseXML=E(y.responseText)}}M=k(y,D.dataType,D)}catch(T){a("error caught:",T);P=false;y.error=T;D.error&&D.error.call(D.context,y,"error",T);K&&b.event.trigger("ajaxError",[y,D,T])}if(y.aborted){a("upload aborted");P=false}if(P){D.success&&D.success.call(D.context,M,"success",y);K&&b.event.trigger("ajaxSuccess",[y,D])}K&&b.event.trigger("ajaxComplete",[y,D]);if(K&&!--b.active){b.event.trigger("ajaxStop")}D.complete&&D.complete.call(D.context,y,P?"success":"error");w=true;if(D.timeout){clearTimeout(C)}setTimeout(function(){x.removeData("form-plugin-onload");x.remove();y.responseXML=null},100)}var E=b.parseXML||function(n,O){if(window.ActiveXObject){O=new ActiveXObject("Microsoft.XMLDOM");O.async="false";O.loadXML(n)}else{O=(new DOMParser()).parseFromString(n,"text/xml")}return(O&&O.documentElement&&O.documentElement.nodeName!="parsererror")?O:null};var q=b.parseJSON||function(n){return window["eval"]("("+n+")")};var k=function(S,Q,P){var O=S.getResponseHeader("content-type")||"",n=Q==="xml"||!Q&&O.indexOf("xml")>=0,R=n?S.responseXML:S.responseText;if(n&&R.documentElement.nodeName==="parsererror"){b.error&&b.error("parsererror")}if(P&&P.dataFilter){R=P.dataFilter(R,Q)}if(typeof R==="string"){if(Q==="json"||!Q&&O.indexOf("json")>=0){R=q(R)}else{if(Q==="script"||!Q&&O.indexOf("javascript")>=0){b.globalEval(R)}}}return R}}};b.fn.ajaxForm=function(c){if(this.length===0){var d={s:this.selector,c:this.context};if(!b.isReady&&d.s){a("DOM not ready, queuing ajaxForm");b(function(){b(d.s,d.c).ajaxForm(c)});return this}a("terminating; zero elements found by selector"+(b.isReady?"":" (DOM not ready)"));return this}return this.ajaxFormUnbind().bind("submit.form-plugin",function(f){if(!f.isDefaultPrevented()){f.preventDefault();b(this).ajaxSubmit(c)}}).bind("click.form-plugin",function(j){var i=j.target;var g=b(i);if(!(g.is(":submit,input:image"))){var f=g.closest(":submit");if(f.length==0){return}i=f[0]}var h=this;h.clk=i;if(i.type=="image"){if(j.offsetX!=undefined){h.clk_x=j.offsetX;h.clk_y=j.offsetY}else{if(typeof b.fn.offset=="function"){var k=g.offset();h.clk_x=j.pageX-k.left;h.clk_y=j.pageY-k.top}else{h.clk_x=j.pageX-i.offsetLeft;h.clk_y=j.pageY-i.offsetTop}}}setTimeout(function(){h.clk=h.clk_x=h.clk_y=null},100)})};b.fn.ajaxFormUnbind=function(){return this.unbind("submit.form-plugin click.form-plugin")};b.fn.formToArray=function(q){var p=[];if(this.length===0){return p}var d=this[0];var g=q?d.getElementsByTagName("*"):d.elements;if(!g){return p}var k,h,f,r,e,m,c;for(k=0,m=g.length;k<m;k++){e=g[k];f=e.name;if(!f){continue}if(q&&d.clk&&e.type=="image"){if(!e.disabled&&d.clk==e){p.push({name:f,value:b(e).val()});p.push({name:f+".x",value:d.clk_x},{name:f+".y",value:d.clk_y})}continue}r=b.fieldValue(e,true);if(r&&r.constructor==Array){for(h=0,c=r.length;h<c;h++){p.push({name:f,value:r[h]})}}else{if(r!==null&&typeof r!="undefined"){p.push({name:f,value:r})}}}if(!q&&d.clk){var l=b(d.clk),o=l[0];f=o.name;if(f&&!o.disabled&&o.type=="image"){p.push({name:f,value:l.val()});p.push({name:f+".x",value:d.clk_x},{name:f+".y",value:d.clk_y})}}return p};b.fn.formSerialize=function(c){return b.param(this.formToArray(c))};b.fn.fieldSerialize=function(d){var c=[];this.each(function(){var h=this.name;if(!h){return}var f=b.fieldValue(this,d);if(f&&f.constructor==Array){for(var g=0,e=f.length;g<e;g++){c.push({name:h,value:f[g]})}}else{if(f!==null&&typeof f!="undefined"){c.push({name:this.name,value:f})}}});return b.param(c)};b.fn.fieldValue=function(h){for(var g=[],e=0,c=this.length;e<c;e++){var f=this[e];var d=b.fieldValue(f,h);if(d===null||typeof d=="undefined"||(d.constructor==Array&&!d.length)){continue}d.constructor==Array?b.merge(g,d):g.push(d)}return g};b.fieldValue=function(c,j){var e=c.name,p=c.type,q=c.tagName.toLowerCase();if(j===undefined){j=true}if(j&&(!e||c.disabled||p=="reset"||p=="button"||(p=="checkbox"||p=="radio")&&!c.checked||(p=="submit"||p=="image")&&c.form&&c.form.clk!=c||q=="select"&&c.selectedIndex==-1)){return null}if(q=="select"){var k=c.selectedIndex;if(k<0){return null}var m=[],d=c.options;var g=(p=="select-one");var l=(g?k+1:d.length);for(var f=(g?k:0);f<l;f++){var h=d[f];if(h.selected){var o=h.value;if(!o){o=(h.attributes&&h.attributes.value&&!(h.attributes.value.specified))?h.text:h.value}if(g){return o}m.push(o)}}return m}return b(c).val()};b.fn.clearForm=function(){return this.each(function(){b("input,select,textarea",this).clearFields()})};b.fn.clearFields=b.fn.clearInputs=function(){return this.each(function(){var d=this.type,c=this.tagName.toLowerCase();if(d=="text"||d=="password"||c=="textarea"){this.value=""}else{if(d=="checkbox"||d=="radio"){this.checked=false}else{if(c=="select"){this.selectedIndex=-1}}}})};b.fn.resetForm=function(){return this.each(function(){if(typeof this.reset=="function"||(typeof this.reset=="object"&&!this.reset.nodeType)){this.reset()}})};b.fn.enable=function(c){if(c===undefined){c=true}return this.each(function(){this.disabled=!c})};b.fn.selected=function(c){if(c===undefined){c=true}return this.each(function(){var d=this.type;if(d=="checkbox"||d=="radio"){this.checked=c}else{if(this.tagName.toLowerCase()=="option"){var e=b(this).parent("select");if(c&&e[0]&&e[0].type=="select-one"){e.find("option").selected(false)}this.selected=c}}})};function a(){if(b.fn.ajaxSubmit.debug){var c="[jquery.form] "+Array.prototype.join.call(arguments,"");if(window.console&&window.console.log){window.console.log(c)}else{if(window.opera&&window.opera.postError){window.opera.postError(c)}}}}})(jQuery);
\ No newline at end of file
--- a/web/wp-includes/js/jquery/jquery.hotkeys.dev.js	Wed Dec 19 12:35:13 2012 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,131 +0,0 @@
-/******************************************************************************************************************************
-
- * @ Original idea by by Binny V A, Original version: 2.00.A 
- * @ http://www.openjs.com/scripts/events/keyboard_shortcuts/
- * @ Original License : BSD
- 
- * @ jQuery Plugin by Tzury Bar Yochay 
-        mail: tzury.by@gmail.com
-        blog: evalinux.wordpress.com
-        face: facebook.com/profile.php?id=513676303
-        
-        (c) Copyrights 2007
-        
- * @ jQuery Plugin version Beta (0.0.2)
- * @ License: jQuery-License.
- 
-TODO:
-    add queue support (as in gmail) e.g. 'x' then 'y', etc.
-    add mouse + mouse wheel events.
-
-USAGE:
-    $.hotkeys.add('Ctrl+c', function(){ alert('copy anyone?');});
-    $.hotkeys.add('Ctrl+c', {target:'div#editor', type:'keyup', propagate: true},function(){ alert('copy anyone?');});>
-    $.hotkeys.remove('Ctrl+c'); 
-    $.hotkeys.remove('Ctrl+c', {target:'div#editor', type:'keypress'}); 
-    
-******************************************************************************************************************************/
-(function (jQuery){
-    this.version = '(beta)(0.0.3)';
-	this.all = {};
-    this.special_keys = {
-        27: 'esc', 9: 'tab', 32:'space', 13: 'return', 8:'backspace', 145: 'scroll', 20: 'capslock', 
-        144: 'numlock', 19:'pause', 45:'insert', 36:'home', 46:'del',35:'end', 33: 'pageup', 
-        34:'pagedown', 37:'left', 38:'up', 39:'right',40:'down', 112:'f1',113:'f2', 114:'f3', 
-        115:'f4', 116:'f5', 117:'f6', 118:'f7', 119:'f8', 120:'f9', 121:'f10', 122:'f11', 123:'f12'};
-        
-    this.shift_nums = { "`":"~", "1":"!", "2":"@", "3":"#", "4":"$", "5":"%", "6":"^", "7":"&", 
-        "8":"*", "9":"(", "0":")", "-":"_", "=":"+", ";":":", "'":"\"", ",":"<", 
-        ".":">",  "/":"?",  "\\":"|" };
-        
-    this.add = function(combi, options, callback) {
-        if (jQuery.isFunction(options)){
-            callback = options;
-            options = {};
-        }
-        var opt = {},
-            defaults = {type: 'keydown', propagate: false, disableInInput: false, target: jQuery('html')[0]},
-            that = this;
-        opt = jQuery.extend( opt , defaults, options || {} );
-        combi = combi.toLowerCase();        
-        
-        // inspect if keystroke matches
-        var inspector = function(event) {
-            // WP: not needed with newer jQuery
-            // event = jQuery.event.fix(event); // jQuery event normalization.
-            var element = event.target;
-            // @ TextNode -> nodeType == 3
-            // WP: not needed with newer jQuery
-            // element = (element.nodeType==3) ? element.parentNode : element;
-            
-            if(opt['disableInInput']) { // Disable shortcut keys in Input, Textarea fields
-                var target = jQuery(element);
-                if( target.is("input") || target.is("textarea")){
-                    return;
-                }
-            }
-            var code = event.which,
-                type = event.type,
-                character = String.fromCharCode(code).toLowerCase(),
-                special = that.special_keys[code],
-                shift = event.shiftKey,
-                ctrl = event.ctrlKey,
-                alt= event.altKey,
-                meta = event.metaKey,
-                propagate = true, // default behaivour
-                mapPoint = null;
-            
-            // in opera + safari, the event.target is unpredictable.
-            // for example: 'keydown' might be associated with HtmlBodyElement 
-            // or the element where you last clicked with your mouse.
-            // WP: needed for all browsers 
-            // if (jQuery.browser.opera || jQuery.browser.safari){
-                while (!that.all[element] && element.parentNode){
-                    element = element.parentNode;
-                }
-            // }
-            var cbMap = that.all[element].events[type].callbackMap;
-            if(!shift && !ctrl && !alt && !meta) { // No Modifiers
-                mapPoint = cbMap[special] ||  cbMap[character]
-			}
-            // deals with combinaitons (alt|ctrl|shift+anything)
-            else{
-                var modif = '';
-                if(alt) modif +='alt+';
-                if(ctrl) modif+= 'ctrl+';
-                if(shift) modif += 'shift+';
-                if(meta) modif += 'meta+';
-                // modifiers + special keys or modifiers + characters or modifiers + shift characters
-                mapPoint = cbMap[modif+special] || cbMap[modif+character] || cbMap[modif+that.shift_nums[character]]
-            }
-            if (mapPoint){
-                mapPoint.cb(event);
-                if(!mapPoint.propagate) {
-                    event.stopPropagation();
-                    event.preventDefault();
-                    return false;
-                }
-            }
-		};        
-        // first hook for this element
-        if (!this.all[opt.target]){
-            this.all[opt.target] = {events:{}};
-        }
-        if (!this.all[opt.target].events[opt.type]){
-            this.all[opt.target].events[opt.type] = {callbackMap: {}}
-            jQuery.event.add(opt.target, opt.type, inspector);
-        }        
-        this.all[opt.target].events[opt.type].callbackMap[combi] =  {cb: callback, propagate:opt.propagate};                
-        return jQuery;
-	};    
-    this.remove = function(exp, opt) {
-        opt = opt || {};
-        target = opt.target || jQuery('html')[0];
-        type = opt.type || 'keydown';
-		exp = exp.toLowerCase();        
-        delete this.all[target].events[type].callbackMap[exp]        
-        return jQuery;
-	};
-    jQuery.hotkeys = this;
-    return jQuery;    
-})(jQuery);
\ No newline at end of file
--- a/web/wp-includes/js/jquery/jquery.hotkeys.js	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/js/jquery/jquery.hotkeys.js	Wed Dec 19 17:46:52 2012 -0800
@@ -1,1 +1,131 @@
-(function(a){this.version="(beta)(0.0.3)";this.all={};this.special_keys={27:"esc",9:"tab",32:"space",13:"return",8:"backspace",145:"scroll",20:"capslock",144:"numlock",19:"pause",45:"insert",36:"home",46:"del",35:"end",33:"pageup",34:"pagedown",37:"left",38:"up",39:"right",40:"down",112:"f1",113:"f2",114:"f3",115:"f4",116:"f5",117:"f6",118:"f7",119:"f8",120:"f9",121:"f10",122:"f11",123:"f12"};this.shift_nums={"`":"~","1":"!","2":"@","3":"#","4":"$","5":"%","6":"^","7":"&","8":"*","9":"(","0":")","-":"_","=":"+",";":":","'":'"',",":"<",".":">","/":"?","\\":"|"};this.add=function(c,b,h){if(a.isFunction(b)){h=b;b={}}var d={},f={type:"keydown",propagate:false,disableInInput:false,target:a("html")[0]},e=this;d=a.extend(d,f,b||{});c=c.toLowerCase();var g=function(j){var o=j.target;if(d.disableInInput){var s=a(o);if(s.is("input")||s.is("textarea")){return}}var l=j.which,u=j.type,r=String.fromCharCode(l).toLowerCase(),t=e.special_keys[l],m=j.shiftKey,i=j.ctrlKey,p=j.altKey,w=j.metaKey,q=true,k=null;while(!e.all[o]&&o.parentNode){o=o.parentNode}var v=e.all[o].events[u].callbackMap;if(!m&&!i&&!p&&!w){k=v[t]||v[r]}else{var n="";if(p){n+="alt+"}if(i){n+="ctrl+"}if(m){n+="shift+"}if(w){n+="meta+"}k=v[n+t]||v[n+r]||v[n+e.shift_nums[r]]}if(k){k.cb(j);if(!k.propagate){j.stopPropagation();j.preventDefault();return false}}};if(!this.all[d.target]){this.all[d.target]={events:{}}}if(!this.all[d.target].events[d.type]){this.all[d.target].events[d.type]={callbackMap:{}};a.event.add(d.target,d.type,g)}this.all[d.target].events[d.type].callbackMap[c]={cb:h,propagate:d.propagate};return a};this.remove=function(c,b){b=b||{};target=b.target||a("html")[0];type=b.type||"keydown";c=c.toLowerCase();delete this.all[target].events[type].callbackMap[c];return a};a.hotkeys=this;return a})(jQuery);
\ No newline at end of file
+/******************************************************************************************************************************
+
+ * @ Original idea by by Binny V A, Original version: 2.00.A 
+ * @ http://www.openjs.com/scripts/events/keyboard_shortcuts/
+ * @ Original License : BSD
+ 
+ * @ jQuery Plugin by Tzury Bar Yochay 
+        mail: tzury.by@gmail.com
+        blog: evalinux.wordpress.com
+        face: facebook.com/profile.php?id=513676303
+        
+        (c) Copyrights 2007
+        
+ * @ jQuery Plugin version Beta (0.0.2)
+ * @ License: jQuery-License.
+ 
+TODO:
+    add queue support (as in gmail) e.g. 'x' then 'y', etc.
+    add mouse + mouse wheel events.
+
+USAGE:
+    $.hotkeys.add('Ctrl+c', function(){ alert('copy anyone?');});
+    $.hotkeys.add('Ctrl+c', {target:'div#editor', type:'keyup', propagate: true},function(){ alert('copy anyone?');});>
+    $.hotkeys.remove('Ctrl+c'); 
+    $.hotkeys.remove('Ctrl+c', {target:'div#editor', type:'keypress'}); 
+    
+******************************************************************************************************************************/
+(function (jQuery){
+    this.version = '(beta)(0.0.3)';
+	this.all = {};
+    this.special_keys = {
+        27: 'esc', 9: 'tab', 32:'space', 13: 'return', 8:'backspace', 145: 'scroll', 20: 'capslock', 
+        144: 'numlock', 19:'pause', 45:'insert', 36:'home', 46:'del',35:'end', 33: 'pageup', 
+        34:'pagedown', 37:'left', 38:'up', 39:'right',40:'down', 112:'f1',113:'f2', 114:'f3', 
+        115:'f4', 116:'f5', 117:'f6', 118:'f7', 119:'f8', 120:'f9', 121:'f10', 122:'f11', 123:'f12'};
+        
+    this.shift_nums = { "`":"~", "1":"!", "2":"@", "3":"#", "4":"$", "5":"%", "6":"^", "7":"&", 
+        "8":"*", "9":"(", "0":")", "-":"_", "=":"+", ";":":", "'":"\"", ",":"<", 
+        ".":">",  "/":"?",  "\\":"|" };
+        
+    this.add = function(combi, options, callback) {
+        if (jQuery.isFunction(options)){
+            callback = options;
+            options = {};
+        }
+        var opt = {},
+            defaults = {type: 'keydown', propagate: false, disableInInput: false, target: jQuery('html')[0]},
+            that = this;
+        opt = jQuery.extend( opt , defaults, options || {} );
+        combi = combi.toLowerCase();        
+        
+        // inspect if keystroke matches
+        var inspector = function(event) {
+            // WP: not needed with newer jQuery
+            // event = jQuery.event.fix(event); // jQuery event normalization.
+            var element = event.target;
+            // @ TextNode -> nodeType == 3
+            // WP: not needed with newer jQuery
+            // element = (element.nodeType==3) ? element.parentNode : element;
+            
+            if(opt['disableInInput']) { // Disable shortcut keys in Input, Textarea fields
+                var target = jQuery(element);
+                if( target.is("input") || target.is("textarea")){
+                    return;
+                }
+            }
+            var code = event.which,
+                type = event.type,
+                character = String.fromCharCode(code).toLowerCase(),
+                special = that.special_keys[code],
+                shift = event.shiftKey,
+                ctrl = event.ctrlKey,
+                alt= event.altKey,
+                meta = event.metaKey,
+                propagate = true, // default behaivour
+                mapPoint = null;
+            
+            // in opera + safari, the event.target is unpredictable.
+            // for example: 'keydown' might be associated with HtmlBodyElement 
+            // or the element where you last clicked with your mouse.
+            // WP: needed for all browsers 
+            // if (jQuery.browser.opera || jQuery.browser.safari){
+                while (!that.all[element] && element.parentNode){
+                    element = element.parentNode;
+                }
+            // }
+            var cbMap = that.all[element].events[type].callbackMap;
+            if(!shift && !ctrl && !alt && !meta) { // No Modifiers
+                mapPoint = cbMap[special] ||  cbMap[character]
+			}
+            // deals with combinaitons (alt|ctrl|shift+anything)
+            else{
+                var modif = '';
+                if(alt) modif +='alt+';
+                if(ctrl) modif+= 'ctrl+';
+                if(shift) modif += 'shift+';
+                if(meta) modif += 'meta+';
+                // modifiers + special keys or modifiers + characters or modifiers + shift characters
+                mapPoint = cbMap[modif+special] || cbMap[modif+character] || cbMap[modif+that.shift_nums[character]]
+            }
+            if (mapPoint){
+                mapPoint.cb(event);
+                if(!mapPoint.propagate) {
+                    event.stopPropagation();
+                    event.preventDefault();
+                    return false;
+                }
+            }
+		};        
+        // first hook for this element
+        if (!this.all[opt.target]){
+            this.all[opt.target] = {events:{}};
+        }
+        if (!this.all[opt.target].events[opt.type]){
+            this.all[opt.target].events[opt.type] = {callbackMap: {}}
+            jQuery.event.add(opt.target, opt.type, inspector);
+        }        
+        this.all[opt.target].events[opt.type].callbackMap[combi] =  {cb: callback, propagate:opt.propagate};                
+        return jQuery;
+	};    
+    this.remove = function(exp, opt) {
+        opt = opt || {};
+        target = opt.target || jQuery('html')[0];
+        type = opt.type || 'keydown';
+		exp = exp.toLowerCase();        
+        delete this.all[target].events[type].callbackMap[exp]        
+        return jQuery;
+	};
+    jQuery.hotkeys = this;
+    return jQuery;    
+})(jQuery);
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-includes/js/jquery/jquery.hotkeys.min.js	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,1 @@
+(function(a){this.version="(beta)(0.0.3)";this.all={};this.special_keys={27:"esc",9:"tab",32:"space",13:"return",8:"backspace",145:"scroll",20:"capslock",144:"numlock",19:"pause",45:"insert",36:"home",46:"del",35:"end",33:"pageup",34:"pagedown",37:"left",38:"up",39:"right",40:"down",112:"f1",113:"f2",114:"f3",115:"f4",116:"f5",117:"f6",118:"f7",119:"f8",120:"f9",121:"f10",122:"f11",123:"f12"};this.shift_nums={"`":"~","1":"!","2":"@","3":"#","4":"$","5":"%","6":"^","7":"&","8":"*","9":"(","0":")","-":"_","=":"+",";":":","'":'"',",":"<",".":">","/":"?","\\":"|"};this.add=function(c,b,h){if(a.isFunction(b)){h=b;b={}}var d={},f={type:"keydown",propagate:false,disableInInput:false,target:a("html")[0]},e=this;d=a.extend(d,f,b||{});c=c.toLowerCase();var g=function(j){var o=j.target;if(d.disableInInput){var s=a(o);if(s.is("input")||s.is("textarea")){return}}var l=j.which,u=j.type,r=String.fromCharCode(l).toLowerCase(),t=e.special_keys[l],m=j.shiftKey,i=j.ctrlKey,p=j.altKey,w=j.metaKey,q=true,k=null;while(!e.all[o]&&o.parentNode){o=o.parentNode}var v=e.all[o].events[u].callbackMap;if(!m&&!i&&!p&&!w){k=v[t]||v[r]}else{var n="";if(p){n+="alt+"}if(i){n+="ctrl+"}if(m){n+="shift+"}if(w){n+="meta+"}k=v[n+t]||v[n+r]||v[n+e.shift_nums[r]]}if(k){k.cb(j);if(!k.propagate){j.stopPropagation();j.preventDefault();return false}}};if(!this.all[d.target]){this.all[d.target]={events:{}}}if(!this.all[d.target].events[d.type]){this.all[d.target].events[d.type]={callbackMap:{}};a.event.add(d.target,d.type,g)}this.all[d.target].events[d.type].callbackMap[c]={cb:h,propagate:d.propagate};return a};this.remove=function(c,b){b=b||{};target=b.target||a("html")[0];type=b.type||"keydown";c=c.toLowerCase();delete this.all[target].events[type].callbackMap[c];return a};a.hotkeys=this;return a})(jQuery);
\ No newline at end of file
--- a/web/wp-includes/js/jquery/jquery.js	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/js/jquery/jquery.js	Wed Dec 19 17:46:52 2012 -0800
@@ -1,5 +1,3 @@
-/*! jQuery v1.7.2 jquery.com | jquery.org/license */
-(function(a,b){function cy(a){return f.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:!1}function cu(a){if(!cj[a]){var b=c.body,d=f("<"+a+">").appendTo(b),e=d.css("display");d.remove();if(e==="none"||e===""){ck||(ck=c.createElement("iframe"),ck.frameBorder=ck.width=ck.height=0),b.appendChild(ck);if(!cl||!ck.createElement)cl=(ck.contentWindow||ck.contentDocument).document,cl.write((f.support.boxModel?"<!doctype html>":"")+"<html><body>"),cl.close();d=cl.createElement(a),cl.body.appendChild(d),e=f.css(d,"display"),b.removeChild(ck)}cj[a]=e}return cj[a]}function ct(a,b){var c={};f.each(cp.concat.apply([],cp.slice(0,b)),function(){c[this]=a});return c}function cs(){cq=b}function cr(){setTimeout(cs,0);return cq=f.now()}function ci(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}function ch(){try{return new a.XMLHttpRequest}catch(b){}}function cb(a,c){a.dataFilter&&(c=a.dataFilter(c,a.dataType));var d=a.dataTypes,e={},g,h,i=d.length,j,k=d[0],l,m,n,o,p;for(g=1;g<i;g++){if(g===1)for(h in a.converters)typeof h=="string"&&(e[h.toLowerCase()]=a.converters[h]);l=k,k=d[g];if(k==="*")k=l;else if(l!=="*"&&l!==k){m=l+" "+k,n=e[m]||e["* "+k];if(!n){p=b;for(o in e){j=o.split(" ");if(j[0]===l||j[0]==="*"){p=e[j[1]+" "+k];if(p){o=e[o],o===!0?n=p:p===!0&&(n=o);break}}}}!n&&!p&&f.error("No conversion from "+m.replace(" "," to ")),n!==!0&&(c=n?n(c):p(o(c)))}}return c}function ca(a,c,d){var e=a.contents,f=a.dataTypes,g=a.responseFields,h,i,j,k;for(i in g)i in d&&(c[g[i]]=d[i]);while(f[0]==="*")f.shift(),h===b&&(h=a.mimeType||c.getResponseHeader("content-type"));if(h)for(i in e)if(e[i]&&e[i].test(h)){f.unshift(i);break}if(f[0]in d)j=f[0];else{for(i in d){if(!f[0]||a.converters[i+" "+f[0]]){j=i;break}k||(k=i)}j=j||k}if(j){j!==f[0]&&f.unshift(j);return d[j]}}function b_(a,b,c,d){if(f.isArray(b))f.each(b,function(b,e){c||bD.test(a)?d(a,e):b_(a+"["+(typeof e=="object"?b:"")+"]",e,c,d)});else if(!c&&f.type(b)==="object")for(var e in b)b_(a+"["+e+"]",b[e],c,d);else d(a,b)}function b$(a,c){var d,e,g=f.ajaxSettings.flatOptions||{};for(d in c)c[d]!==b&&((g[d]?a:e||(e={}))[d]=c[d]);e&&f.extend(!0,a,e)}function bZ(a,c,d,e,f,g){f=f||c.dataTypes[0],g=g||{},g[f]=!0;var h=a[f],i=0,j=h?h.length:0,k=a===bS,l;for(;i<j&&(k||!l);i++)l=h[i](c,d,e),typeof l=="string"&&(!k||g[l]?l=b:(c.dataTypes.unshift(l),l=bZ(a,c,d,e,l,g)));(k||!l)&&!g["*"]&&(l=bZ(a,c,d,e,"*",g));return l}function bY(a){return function(b,c){typeof b!="string"&&(c=b,b="*");if(f.isFunction(c)){var d=b.toLowerCase().split(bO),e=0,g=d.length,h,i,j;for(;e<g;e++)h=d[e],j=/^\+/.test(h),j&&(h=h.substr(1)||"*"),i=a[h]=a[h]||[],i[j?"unshift":"push"](c)}}}function bB(a,b,c){var d=b==="width"?a.offsetWidth:a.offsetHeight,e=b==="width"?1:0,g=4;if(d>0){if(c!=="border")for(;e<g;e+=2)c||(d-=parseFloat(f.css(a,"padding"+bx[e]))||0),c==="margin"?d+=parseFloat(f.css(a,c+bx[e]))||0:d-=parseFloat(f.css(a,"border"+bx[e]+"Width"))||0;return d+"px"}d=by(a,b);if(d<0||d==null)d=a.style[b];if(bt.test(d))return d;d=parseFloat(d)||0;if(c)for(;e<g;e+=2)d+=parseFloat(f.css(a,"padding"+bx[e]))||0,c!=="padding"&&(d+=parseFloat(f.css(a,"border"+bx[e]+"Width"))||0),c==="margin"&&(d+=parseFloat(f.css(a,c+bx[e]))||0);return d+"px"}function bo(a){var b=c.createElement("div");bh.appendChild(b),b.innerHTML=a.outerHTML;return b.firstChild}function bn(a){var b=(a.nodeName||"").toLowerCase();b==="input"?bm(a):b!=="script"&&typeof a.getElementsByTagName!="undefined"&&f.grep(a.getElementsByTagName("input"),bm)}function bm(a){if(a.type==="checkbox"||a.type==="radio")a.defaultChecked=a.checked}function bl(a){return typeof a.getElementsByTagName!="undefined"?a.getElementsByTagName("*"):typeof a.querySelectorAll!="undefined"?a.querySelectorAll("*"):[]}function bk(a,b){var c;b.nodeType===1&&(b.clearAttributes&&b.clearAttributes(),b.mergeAttributes&&b.mergeAttributes(a),c=b.nodeName.toLowerCase(),c==="object"?b.outerHTML=a.outerHTML:c!=="input"||a.type!=="checkbox"&&a.type!=="radio"?c==="option"?b.selected=a.defaultSelected:c==="input"||c==="textarea"?b.defaultValue=a.defaultValue:c==="script"&&b.text!==a.text&&(b.text=a.text):(a.checked&&(b.defaultChecked=b.checked=a.checked),b.value!==a.value&&(b.value=a.value)),b.removeAttribute(f.expando),b.removeAttribute("_submit_attached"),b.removeAttribute("_change_attached"))}function bj(a,b){if(b.nodeType===1&&!!f.hasData(a)){var c,d,e,g=f._data(a),h=f._data(b,g),i=g.events;if(i){delete h.handle,h.events={};for(c in i)for(d=0,e=i[c].length;d<e;d++)f.event.add(b,c,i[c][d])}h.data&&(h.data=f.extend({},h.data))}}function bi(a,b){return f.nodeName(a,"table")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function U(a){var b=V.split("|"),c=a.createDocumentFragment();if(c.createElement)while(b.length)c.createElement(b.pop());return c}function T(a,b,c){b=b||0;if(f.isFunction(b))return f.grep(a,function(a,d){var e=!!b.call(a,d,a);return e===c});if(b.nodeType)return f.grep(a,function(a,d){return a===b===c});if(typeof b=="string"){var d=f.grep(a,function(a){return a.nodeType===1});if(O.test(b))return f.filter(b,d,!c);b=f.filter(b,d)}return f.grep(a,function(a,d){return f.inArray(a,b)>=0===c})}function S(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function K(){return!0}function J(){return!1}function n(a,b,c){var d=b+"defer",e=b+"queue",g=b+"mark",h=f._data(a,d);h&&(c==="queue"||!f._data(a,e))&&(c==="mark"||!f._data(a,g))&&setTimeout(function(){!f._data(a,e)&&!f._data(a,g)&&(f.removeData(a,d,!0),h.fire())},0)}function m(a){for(var b in a){if(b==="data"&&f.isEmptyObject(a[b]))continue;if(b!=="toJSON")return!1}return!0}function l(a,c,d){if(d===b&&a.nodeType===1){var e="data-"+c.replace(k,"-$1").toLowerCase();d=a.getAttribute(e);if(typeof d=="string"){try{d=d==="true"?!0:d==="false"?!1:d==="null"?null:f.isNumeric(d)?+d:j.test(d)?f.parseJSON(d):d}catch(g){}f.data(a,c,d)}else d=b}return d}function h(a){var b=g[a]={},c,d;a=a.split(/\s+/);for(c=0,d=a.length;c<d;c++)b[a[c]]=!0;return b}var c=a.document,d=a.navigator,e=a.location,f=function(){function J(){if(!e.isReady){try{c.documentElement.doScroll("left")}catch(a){setTimeout(J,1);return}e.ready()}}var e=function(a,b){return new e.fn.init(a,b,h)},f=a.jQuery,g=a.$,h,i=/^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,j=/\S/,k=/^\s+/,l=/\s+$/,m=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,n=/^[\],:{}\s]*$/,o=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,p=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,q=/(?:^|:|,)(?:\s*\[)+/g,r=/(webkit)[ \/]([\w.]+)/,s=/(opera)(?:.*version)?[ \/]([\w.]+)/,t=/(msie) ([\w.]+)/,u=/(mozilla)(?:.*? rv:([\w.]+))?/,v=/-([a-z]|[0-9])/ig,w=/^-ms-/,x=function(a,b){return(b+"").toUpperCase()},y=d.userAgent,z,A,B,C=Object.prototype.toString,D=Object.prototype.hasOwnProperty,E=Array.prototype.push,F=Array.prototype.slice,G=String.prototype.trim,H=Array.prototype.indexOf,I={};e.fn=e.prototype={constructor:e,init:function(a,d,f){var g,h,j,k;if(!a)return this;if(a.nodeType){this.context=this[0]=a,this.length=1;return this}if(a==="body"&&!d&&c.body){this.context=c,this[0]=c.body,this.selector=a,this.length=1;return this}if(typeof a=="string"){a.charAt(0)!=="<"||a.charAt(a.length-1)!==">"||a.length<3?g=i.exec(a):g=[null,a,null];if(g&&(g[1]||!d)){if(g[1]){d=d instanceof e?d[0]:d,k=d?d.ownerDocument||d:c,j=m.exec(a),j?e.isPlainObject(d)?(a=[c.createElement(j[1])],e.fn.attr.call(a,d,!0)):a=[k.createElement(j[1])]:(j=e.buildFragment([g[1]],[k]),a=(j.cacheable?e.clone(j.fragment):j.fragment).childNodes);return e.merge(this,a)}h=c.getElementById(g[2]);if(h&&h.parentNode){if(h.id!==g[2])return f.find(a);this.length=1,this[0]=h}this.context=c,this.selector=a;return this}return!d||d.jquery?(d||f).find(a):this.constructor(d).find(a)}if(e.isFunction(a))return f.ready(a);a.selector!==b&&(this.selector=a.selector,this.context=a.context);return e.makeArray(a,this)},selector:"",jquery:"1.7.2",length:0,size:function(){return this.length},toArray:function(){return F.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:function(a,b,c){var d=this.constructor();e.isArray(a)?E.apply(d,a):e.merge(d,a),d.prevObject=this,d.context=this.context,b==="find"?d.selector=this.selector+(this.selector?" ":"")+c:b&&(d.selector=this.selector+"."+b+"("+c+")");return d},each:function(a,b){return e.each(this,a,b)},ready:function(a){e.bindReady(),A.add(a);return this},eq:function(a){a=+a;return a===-1?this.slice(a):this.slice(a,a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(F.apply(this,arguments),"slice",F.call(arguments).join(","))},map:function(a){return this.pushStack(e.map(this,function(b,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constructor(null)},push:E,sort:[].sort,splice:[].splice},e.fn.init.prototype=e.fn,e.extend=e.fn.extend=function(){var a,c,d,f,g,h,i=arguments[0]||{},j=1,k=arguments.length,l=!1;typeof i=="boolean"&&(l=i,i=arguments[1]||{},j=2),typeof i!="object"&&!e.isFunction(i)&&(i={}),k===j&&(i=this,--j);for(;j<k;j++)if((a=arguments[j])!=null)for(c in a){d=i[c],f=a[c];if(i===f)continue;l&&f&&(e.isPlainObject(f)||(g=e.isArray(f)))?(g?(g=!1,h=d&&e.isArray(d)?d:[]):h=d&&e.isPlainObject(d)?d:{},i[c]=e.extend(l,h,f)):f!==b&&(i[c]=f)}return i},e.extend({noConflict:function(b){a.$===e&&(a.$=g),b&&a.jQuery===e&&(a.jQuery=f);return e},isReady:!1,readyWait:1,holdReady:function(a){a?e.readyWait++:e.ready(!0)},ready:function(a){if(a===!0&&!--e.readyWait||a!==!0&&!e.isReady){if(!c.body)return setTimeout(e.ready,1);e.isReady=!0;if(a!==!0&&--e.readyWait>0)return;A.fireWith(c,[e]),e.fn.trigger&&e(c).trigger("ready").off("ready")}},bindReady:function(){if(!A){A=e.Callbacks("once memory");if(c.readyState==="complete")return setTimeout(e.ready,1);if(c.addEventListener)c.addEventListener("DOMContentLoaded",B,!1),a.addEventListener("load",e.ready,!1);else if(c.attachEvent){c.attachEvent("onreadystatechange",B),a.attachEvent("onload",e.ready);var b=!1;try{b=a.frameElement==null}catch(d){}c.documentElement.doScroll&&b&&J()}}},isFunction:function(a){return e.type(a)==="function"},isArray:Array.isArray||function(a){return e.type(a)==="array"},isWindow:function(a){return a!=null&&a==a.window},isNumeric:function(a){return!isNaN(parseFloat(a))&&isFinite(a)},type:function(a){return a==null?String(a):I[C.call(a)]||"object"},isPlainObject:function(a){if(!a||e.type(a)!=="object"||a.nodeType||e.isWindow(a))return!1;try{if(a.constructor&&!D.call(a,"constructor")&&!D.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}var d;for(d in a);return d===b||D.call(a,d)},isEmptyObject:function(a){for(var b in a)return!1;return!0},error:function(a){throw new Error(a)},parseJSON:function(b){if(typeof b!="string"||!b)return null;b=e.trim(b);if(a.JSON&&a.JSON.parse)return a.JSON.parse(b);if(n.test(b.replace(o,"@").replace(p,"]").replace(q,"")))return(new Function("return "+b))();e.error("Invalid JSON: "+b)},parseXML:function(c){if(typeof c!="string"||!c)return null;var d,f;try{a.DOMParser?(f=new DOMParser,d=f.parseFromString(c,"text/xml")):(d=new ActiveXObject("Microsoft.XMLDOM"),d.async="false",d.loadXML(c))}catch(g){d=b}(!d||!d.documentElement||d.getElementsByTagName("parsererror").length)&&e.error("Invalid XML: "+c);return d},noop:function(){},globalEval:function(b){b&&j.test(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(w,"ms-").replace(v,x)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,c,d){var f,g=0,h=a.length,i=h===b||e.isFunction(a);if(d){if(i){for(f in a)if(c.apply(a[f],d)===!1)break}else for(;g<h;)if(c.apply(a[g++],d)===!1)break}else if(i){for(f in a)if(c.call(a[f],f,a[f])===!1)break}else for(;g<h;)if(c.call(a[g],g,a[g++])===!1)break;return a},trim:G?function(a){return a==null?"":G.call(a)}:function(a){return a==null?"":(a+"").replace(k,"").replace(l,"")},makeArray:function(a,b){var c=b||[];if(a!=null){var d=e.type(a);a.length==null||d==="string"||d==="function"||d==="regexp"||e.isWindow(a)?E.call(c,a):e.merge(c,a)}return c},inArray:function(a,b,c){var d;if(b){if(H)return H.call(b,a,c);d=b.length,c=c?c<0?Math.max(0,d+c):c:0;for(;c<d;c++)if(c in b&&b[c]===a)return c}return-1},merge:function(a,c){var d=a.length,e=0;if(typeof c.length=="number")for(var f=c.length;e<f;e++)a[d++]=c[e];else while(c[e]!==b)a[d++]=c[e++];a.length=d;return a},grep:function(a,b,c){var d=[],e;c=!!c;for(var f=0,g=a.length;f<g;f++)e=!!b(a[f],f),c!==e&&d.push(a[f]);return d},map:function(a,c,d){var f,g,h=[],i=0,j=a.length,k=a instanceof e||j!==b&&typeof j=="number"&&(j>0&&a[0]&&a[j-1]||j===0||e.isArray(a));if(k)for(;i<j;i++)f=c(a[i],i,d),f!=null&&(h[h.length]=f);else for(g in a)f=c(a[g],g,d),f!=null&&(h[h.length]=f);return h.concat.apply([],h)},guid:1,proxy:function(a,c){if(typeof c=="string"){var d=a[c];c=a,a=d}if(!e.isFunction(a))return b;var f=F.call(arguments,2),g=function(){return a.apply(c,f.concat(F.call(arguments)))};g.guid=a.guid=a.guid||g.guid||e.guid++;return g},access:function(a,c,d,f,g,h,i){var j,k=d==null,l=0,m=a.length;if(d&&typeof d=="object"){for(l in d)e.access(a,c,l,d[l],1,h,f);g=1}else if(f!==b){j=i===b&&e.isFunction(f),k&&(j?(j=c,c=function(a,b,c){return j.call(e(a),c)}):(c.call(a,f),c=null));if(c)for(;l<m;l++)c(a[l],d,j?f.call(a[l],l,c(a[l],d)):f,i);g=1}return g?a:k?c.call(a):m?c(a[0],d):h},now:function(){return(new Date).getTime()},uaMatch:function(a){a=a.toLowerCase();var b=r.exec(a)||s.exec(a)||t.exec(a)||a.indexOf("compatible")<0&&u.exec(a)||[];return{browser:b[1]||"",version:b[2]||"0"}},sub:function(){function a(b,c){return new a.fn.init(b,c)}e.extend(!0,a,this),a.superclass=this,a.fn=a.prototype=this(),a.fn.constructor=a,a.sub=this.sub,a.fn.init=function(d,f){f&&f instanceof e&&!(f instanceof a)&&(f=a(f));return e.fn.init.call(this,d,f,b)},a.fn.init.prototype=a.fn;var b=a(c);return a},browser:{}}),e.each("Boolean Number String Function Array Date RegExp Object".split(" "),function(a,b){I["[object "+b+"]"]=b.toLowerCase()}),z=e.uaMatch(y),z.browser&&(e.browser[z.browser]=!0,e.browser.version=z.version),e.browser.webkit&&(e.browser.safari=!0),j.test(" ")&&(k=/^[\s\xA0]+/,l=/[\s\xA0]+$/),h=e(c),c.addEventListener?B=function(){c.removeEventListener("DOMContentLoaded",B,!1),e.ready()}:c.attachEvent&&(B=function(){c.readyState==="complete"&&(c.detachEvent("onreadystatechange",B),e.ready())});return e}(),g={};f.Callbacks=function(a){a=a?g[a]||h(a):{};var c=[],d=[],e,i,j,k,l,m,n=function(b){var d,e,g,h,i;for(d=0,e=b.length;d<e;d++)g=b[d],h=f.type(g),h==="array"?n(g):h==="function"&&(!a.unique||!p.has(g))&&c.push(g)},o=function(b,f){f=f||[],e=!a.memory||[b,f],i=!0,j=!0,m=k||0,k=0,l=c.length;for(;c&&m<l;m++)if(c[m].apply(b,f)===!1&&a.stopOnFalse){e=!0;break}j=!1,c&&(a.once?e===!0?p.disable():c=[]:d&&d.length&&(e=d.shift(),p.fireWith(e[0],e[1])))},p={add:function(){if(c){var a=c.length;n(arguments),j?l=c.length:e&&e!==!0&&(k=a,o(e[0],e[1]))}return this},remove:function(){if(c){var b=arguments,d=0,e=b.length;for(;d<e;d++)for(var f=0;f<c.length;f++)if(b[d]===c[f]){j&&f<=l&&(l--,f<=m&&m--),c.splice(f--,1);if(a.unique)break}}return this},has:function(a){if(c){var b=0,d=c.length;for(;b<d;b++)if(a===c[b])return!0}return!1},empty:function(){c=[];return this},disable:function(){c=d=e=b;return this},disabled:function(){return!c},lock:function(){d=b,(!e||e===!0)&&p.disable();return this},locked:function(){return!d},fireWith:function(b,c){d&&(j?a.once||d.push([b,c]):(!a.once||!e)&&o(b,c));return this},fire:function(){p.fireWith(this,arguments);return this},fired:function(){return!!i}};return p};var i=[].slice;f.extend({Deferred:function(a){var b=f.Callbacks("once memory"),c=f.Callbacks("once memory"),d=f.Callbacks("memory"),e="pending",g={resolve:b,reject:c,notify:d},h={done:b.add,fail:c.add,progress:d.add,state:function(){return e},isResolved:b.fired,isRejected:c.fired,then:function(a,b,c){i.done(a).fail(b).progress(c);return this},always:function(){i.done.apply(i,arguments).fail.apply(i,arguments);return this},pipe:function(a,b,c){return f.Deferred(function(d){f.each({done:[a,"resolve"],fail:[b,"reject"],progress:[c,"notify"]},function(a,b){var c=b[0],e=b[1],g;f.isFunction(c)?i[a](function(){g=c.apply(this,arguments),g&&f.isFunction(g.promise)?g.promise().then(d.resolve,d.reject,d.notify):d[e+"With"](this===i?d:this,[g])}):i[a](d[e])})}).promise()},promise:function(a){if(a==null)a=h;else for(var b in h)a[b]=h[b];return a}},i=h.promise({}),j;for(j in g)i[j]=g[j].fire,i[j+"With"]=g[j].fireWith;i.done(function(){e="resolved"},c.disable,d.lock).fail(function(){e="rejected"},b.disable,d.lock),a&&a.call(i,i);return i},when:function(a){function m(a){return function(b){e[a]=arguments.length>1?i.call(arguments,0):b,j.notifyWith(k,e)}}function l(a){return function(c){b[a]=arguments.length>1?i.call(arguments,0):c,--g||j.resolveWith(j,b)}}var b=i.call(arguments,0),c=0,d=b.length,e=Array(d),g=d,h=d,j=d<=1&&a&&f.isFunction(a.promise)?a:f.Deferred(),k=j.promise();if(d>1){for(;c<d;c++)b[c]&&b[c].promise&&f.isFunction(b[c].promise)?b[c].promise().then(l(c),j.reject,m(c)):--g;g||j.resolveWith(j,b)}else j!==a&&j.resolveWith(j,d?[a]:[]);return k}}),f.support=function(){var b,d,e,g,h,i,j,k,l,m,n,o,p=c.createElement("div"),q=c.documentElement;p.setAttribute("className","t"),p.innerHTML="   <link/><table></table><a href='/a' style='top:1px;float:left;opacity:.55;'>a</a><input type='checkbox'/>",d=p.getElementsByTagName("*"),e=p.getElementsByTagName("a")[0];if(!d||!d.length||!e)return{};g=c.createElement("select"),h=g.appendChild(c.createElement("option")),i=p.getElementsByTagName("input")[0],b={leadingWhitespace:p.firstChild.nodeType===3,tbody:!p.getElementsByTagName("tbody").length,htmlSerialize:!!p.getElementsByTagName("link").length,style:/top/.test(e.getAttribute("style")),hrefNormalized:e.getAttribute("href")==="/a",opacity:/^0.55/.test(e.style.opacity),cssFloat:!!e.style.cssFloat,checkOn:i.value==="on",optSelected:h.selected,getSetAttribute:p.className!=="t",enctype:!!c.createElement("form").enctype,html5Clone:c.createElement("nav").cloneNode(!0).outerHTML!=="<:nav></:nav>",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0,pixelMargin:!0},f.boxModel=b.boxModel=c.compatMode==="CSS1Compat",i.checked=!0,b.noCloneChecked=i.cloneNode(!0).checked,g.disabled=!0,b.optDisabled=!h.disabled;try{delete p.test}catch(r){b.deleteExpando=!1}!p.addEventListener&&p.attachEvent&&p.fireEvent&&(p.attachEvent("onclick",function(){b.noCloneEvent=!1}),p.cloneNode(!0).fireEvent("onclick")),i=c.createElement("input"),i.value="t",i.setAttribute("type","radio"),b.radioValue=i.value==="t",i.setAttribute("checked","checked"),i.setAttribute("name","t"),p.appendChild(i),j=c.createDocumentFragment(),j.appendChild(p.lastChild),b.checkClone=j.cloneNode(!0).cloneNode(!0).lastChild.checked,b.appendChecked=i.checked,j.removeChild(i),j.appendChild(p);if(p.attachEvent)for(n in{submit:1,change:1,focusin:1})m="on"+n,o=m in p,o||(p.setAttribute(m,"return;"),o=typeof p[m]=="function"),b[n+"Bubbles"]=o;j.removeChild(p),j=g=h=p=i=null,f(function(){var d,e,g,h,i,j,l,m,n,q,r,s,t,u=c.getElementsByTagName("body")[0];!u||(m=1,t="padding:0;margin:0;border:",r="position:absolute;top:0;left:0;width:1px;height:1px;",s=t+"0;visibility:hidden;",n="style='"+r+t+"5px solid #000;",q="<div "+n+"display:block;'><div style='"+t+"0;display:block;overflow:hidden;'></div></div>"+"<table "+n+"' cellpadding='0' cellspacing='0'>"+"<tr><td></td></tr></table>",d=c.createElement("div"),d.style.cssText=s+"width:0;height:0;position:static;top:0;margin-top:"+m+"px",u.insertBefore(d,u.firstChild),p=c.createElement("div"),d.appendChild(p),p.innerHTML="<table><tr><td style='"+t+"0;display:none'></td><td>t</td></tr></table>",k=p.getElementsByTagName("td"),o=k[0].offsetHeight===0,k[0].style.display="",k[1].style.display="none",b.reliableHiddenOffsets=o&&k[0].offsetHeight===0,a.getComputedStyle&&(p.innerHTML="",l=c.createElement("div"),l.style.width="0",l.style.marginRight="0",p.style.width="2px",p.appendChild(l),b.reliableMarginRight=(parseInt((a.getComputedStyle(l,null)||{marginRight:0}).marginRight,10)||0)===0),typeof p.style.zoom!="undefined"&&(p.innerHTML="",p.style.width=p.style.padding="1px",p.style.border=0,p.style.overflow="hidden",p.style.display="inline",p.style.zoom=1,b.inlineBlockNeedsLayout=p.offsetWidth===3,p.style.display="block",p.style.overflow="visible",p.innerHTML="<div style='width:5px;'></div>",b.shrinkWrapBlocks=p.offsetWidth!==3),p.style.cssText=r+s,p.innerHTML=q,e=p.firstChild,g=e.firstChild,i=e.nextSibling.firstChild.firstChild,j={doesNotAddBorder:g.offsetTop!==5,doesAddBorderForTableAndCells:i.offsetTop===5},g.style.position="fixed",g.style.top="20px",j.fixedPosition=g.offsetTop===20||g.offsetTop===15,g.style.position=g.style.top="",e.style.overflow="hidden",e.style.position="relative",j.subtractsBorderForOverflowNotVisible=g.offsetTop===-5,j.doesNotIncludeMarginInBodyOffset=u.offsetTop!==m,a.getComputedStyle&&(p.style.marginTop="1%",b.pixelMargin=(a.getComputedStyle(p,null)||{marginTop:0}).marginTop!=="1%"),typeof d.style.zoom!="undefined"&&(d.style.zoom=1),u.removeChild(d),l=p=d=null,f.extend(b,j))});return b}();var j=/^(?:\{.*\}|\[.*\])$/,k=/([A-Z])/g;f.extend({cache:{},uuid:0,expando:"jQuery"+(f.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(a){a=a.nodeType?f.cache[a[f.expando]]:a[f.expando];return!!a&&!m(a)},data:function(a,c,d,e){if(!!f.acceptData(a)){var g,h,i,j=f.expando,k=typeof c=="string",l=a.nodeType,m=l?f.cache:a,n=l?a[j]:a[j]&&j,o=c==="events";if((!n||!m[n]||!o&&!e&&!m[n].data)&&k&&d===b)return;n||(l?a[j]=n=++f.uuid:n=j),m[n]||(m[n]={},l||(m[n].toJSON=f.noop));if(typeof c=="object"||typeof c=="function")e?m[n]=f.extend(m[n],c):m[n].data=f.extend(m[n].data,c);g=h=m[n],e||(h.data||(h.data={}),h=h.data),d!==b&&(h[f.camelCase(c)]=d);if(o&&!h[c])return g.events;k?(i=h[c],i==null&&(i=h[f.camelCase(c)])):i=h;return i}},removeData:function(a,b,c){if(!!f.acceptData(a)){var d,e,g,h=f.expando,i=a.nodeType,j=i?f.cache:a,k=i?a[h]:h;if(!j[k])return;if(b){d=c?j[k]:j[k].data;if(d){f.isArray(b)||(b in d?b=[b]:(b=f.camelCase(b),b in d?b=[b]:b=b.split(" ")));for(e=0,g=b.length;e<g;e++)delete d[b[e]];if(!(c?m:f.isEmptyObject)(d))return}}if(!c){delete j[k].data;if(!m(j[k]))return}f.support.deleteExpando||!j.setInterval?delete j[k]:j[k]=null,i&&(f.support.deleteExpando?delete a[h]:a.removeAttribute?a.removeAttribute(h):a[h]=null)}},_data:function(a,b,c){return f.data(a,b,c,!0)},acceptData:function(a){if(a.nodeName){var b=f.noData[a.nodeName.toLowerCase()];if(b)return b!==!0&&a.getAttribute("classid")===b}return!0}}),f.fn.extend({data:function(a,c){var d,e,g,h,i,j=this[0],k=0,m=null;if(a===b){if(this.length){m=f.data(j);if(j.nodeType===1&&!f._data(j,"parsedAttrs")){g=j.attributes;for(i=g.length;k<i;k++)h=g[k].name,h.indexOf("data-")===0&&(h=f.camelCase(h.substring(5)),l(j,h,m[h]));f._data(j,"parsedAttrs",!0)}}return m}if(typeof a=="object")return this.each(function(){f.data(this,a)});d=a.split(".",2),d[1]=d[1]?"."+d[1]:"",e=d[1]+"!";return f.access(this,function(c){if(c===b){m=this.triggerHandler("getData"+e,[d[0]]),m===b&&j&&(m=f.data(j,a),m=l(j,a,m));return m===b&&d[1]?this.data(d[0]):m}d[1]=c,this.each(function(){var b=f(this);b.triggerHandler("setData"+e,d),f.data(this,a,c),b.triggerHandler("changeData"+e,d)})},null,c,arguments.length>1,null,!1)},removeData:function(a){return this.each(function(){f.removeData(this,a)})}}),f.extend({_mark:function(a,b){a&&(b=(b||"fx")+"mark",f._data(a,b,(f._data(a,b)||0)+1))},_unmark:function(a,b,c){a!==!0&&(c=b,b=a,a=!1);if(b){c=c||"fx";var d=c+"mark",e=a?0:(f._data(b,d)||1)-1;e?f._data(b,d,e):(f.removeData(b,d,!0),n(b,c,"mark"))}},queue:function(a,b,c){var d;if(a){b=(b||"fx")+"queue",d=f._data(a,b),c&&(!d||f.isArray(c)?d=f._data(a,b,f.makeArray(c)):d.push(c));return d||[]}},dequeue:function(a,b){b=b||"fx";var c=f.queue(a,b),d=c.shift(),e={};d==="inprogress"&&(d=c.shift()),d&&(b==="fx"&&c.unshift("inprogress"),f._data(a,b+".run",e),d.call(a,function(){f.dequeue(a,b)},e)),c.length||(f.removeData(a,b+"queue "+b+".run",!0),n(a,b,"queue"))}}),f.fn.extend({queue:function(a,c){var d=2;typeof a!="string"&&(c=a,a="fx",d--);if(arguments.length<d)return f.queue(this[0],a);return c===b?this:this.each(function(){var b=f.queue(this,a,c);a==="fx"&&b[0]!=="inprogress"&&f.dequeue(this,a)})},dequeue:function(a){return this.each(function(){f.dequeue(this,a)})},delay:function(a,b){a=f.fx?f.fx.speeds[a]||a:a,b=b||"fx";return this.queue(b,function(b,c){var d=setTimeout(b,a);c.stop=function(){clearTimeout(d)}})},clearQueue:function(a){return this.queue(a||"fx",[])},promise:function(a,c){function m(){--h||d.resolveWith(e,[e])}typeof a!="string"&&(c=a,a=b),a=a||"fx";var d=f.Deferred(),e=this,g=e.length,h=1,i=a+"defer",j=a+"queue",k=a+"mark",l;while(g--)if(l=f.data(e[g],i,b,!0)||(f.data(e[g],j,b,!0)||f.data(e[g],k,b,!0))&&f.data(e[g],i,f.Callbacks("once memory"),!0))h++,l.add(m);m();return d.promise(c)}});var o=/[\n\t\r]/g,p=/\s+/,q=/\r/g,r=/^(?:button|input)$/i,s=/^(?:button|input|object|select|textarea)$/i,t=/^a(?:rea)?$/i,u=/^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i,v=f.support.getSetAttribute,w,x,y;f.fn.extend({attr:function(a,b){return f.access(this,f.attr,a,b,arguments.length>1)},removeAttr:function(a){return this.each(function(){f.removeAttr(this,a)})},prop:function(a,b){return f.access(this,f.prop,a,b,arguments.length>1)},removeProp:function(a){a=f.propFix[a]||a;return this.each(function(){try{this[a]=b,delete this[a]}catch(c){}})},addClass:function(a){var b,c,d,e,g,h,i;if(f.isFunction(a))return this.each(function(b){f(this).addClass(a.call(this,b,this.className))});if(a&&typeof a=="string"){b=a.split(p);for(c=0,d=this.length;c<d;c++){e=this[c];if(e.nodeType===1)if(!e.className&&b.length===1)e.className=a;else{g=" "+e.className+" ";for(h=0,i=b.length;h<i;h++)~g.indexOf(" "+b[h]+" ")||(g+=b[h]+" ");e.className=f.trim(g)}}}return this},removeClass:function(a){var c,d,e,g,h,i,j;if(f.isFunction(a))return this.each(function(b){f(this).removeClass(a.call(this,b,this.className))});if(a&&typeof a=="string"||a===b){c=(a||"").split(p);for(d=0,e=this.length;d<e;d++){g=this[d];if(g.nodeType===1&&g.className)if(a){h=(" "+g.className+" ").replace(o," ");for(i=0,j=c.length;i<j;i++)h=h.replace(" "+c[i]+" "," ");g.className=f.trim(h)}else g.className=""}}return this},toggleClass:function(a,b){var c=typeof a,d=typeof b=="boolean";if(f.isFunction(a))return this.each(function(c){f(this).toggleClass(a.call(this,c,this.className,b),b)});return this.each(function(){if(c==="string"){var e,g=0,h=f(this),i=b,j=a.split(p);while(e=j[g++])i=d?i:!h.hasClass(e),h[i?"addClass":"removeClass"](e)}else if(c==="undefined"||c==="boolean")this.className&&f._data(this,"__className__",this.className),this.className=this.className||a===!1?"":f._data(this,"__className__")||""})},hasClass:function(a){var b=" "+a+" ",c=0,d=this.length;for(;c<d;c++)if(this[c].nodeType===1&&(" "+this[c].className+" ").replace(o," ").indexOf(b)>-1)return!0;return!1},val:function(a){var c,d,e,g=this[0];{if(!!arguments.length){e=f.isFunction(a);return this.each(function(d){var g=f(this),h;if(this.nodeType===1){e?h=a.call(this,d,g.val()):h=a,h==null?h="":typeof h=="number"?h+="":f.isArray(h)&&(h=f.map(h,function(a){return a==null?"":a+""})),c=f.valHooks[this.type]||f.valHooks[this.nodeName.toLowerCase()];if(!c||!("set"in c)||c.set(this,h,"value")===b)this.value=h}})}if(g){c=f.valHooks[g.type]||f.valHooks[g.nodeName.toLowerCase()];if(c&&"get"in c&&(d=c.get(g,"value"))!==b)return d;d=g.value;return typeof d=="string"?d.replace(q,""):d==null?"":d}}}}),f.extend({valHooks:{option:{get:function(a){var b=a.attributes.value;return!b||b.specified?a.value:a.text}},select:{get:function(a){var b,c,d,e,g=a.selectedIndex,h=[],i=a.options,j=a.type==="select-one";if(g<0)return null;c=j?g:0,d=j?g+1:i.length;for(;c<d;c++){e=i[c];if(e.selected&&(f.support.optDisabled?!e.disabled:e.getAttribute("disabled")===null)&&(!e.parentNode.disabled||!f.nodeName(e.parentNode,"optgroup"))){b=f(e).val();if(j)return b;h.push(b)}}if(j&&!h.length&&i.length)return f(i[g]).val();return h},set:function(a,b){var c=f.makeArray(b);f(a).find("option").each(function(){this.selected=f.inArray(f(this).val(),c)>=0}),c.length||(a.selectedIndex=-1);return c}}},attrFn:{val:!0,css:!0,html:!0,text:!0,data:!0,width:!0,height:!0,offset:!0},attr:function(a,c,d,e){var g,h,i,j=a.nodeType;if(!!a&&j!==3&&j!==8&&j!==2){if(e&&c in f.attrFn)return f(a)[c](d);if(typeof a.getAttribute=="undefined")return f.prop(a,c,d);i=j!==1||!f.isXMLDoc(a),i&&(c=c.toLowerCase(),h=f.attrHooks[c]||(u.test(c)?x:w));if(d!==b){if(d===null){f.removeAttr(a,c);return}if(h&&"set"in h&&i&&(g=h.set(a,d,c))!==b)return g;a.setAttribute(c,""+d);return d}if(h&&"get"in h&&i&&(g=h.get(a,c))!==null)return g;g=a.getAttribute(c);return g===null?b:g}},removeAttr:function(a,b){var c,d,e,g,h,i=0;if(b&&a.nodeType===1){d=b.toLowerCase().split(p),g=d.length;for(;i<g;i++)e=d[i],e&&(c=f.propFix[e]||e,h=u.test(e),h||f.attr(a,e,""),a.removeAttribute(v?e:c),h&&c in a&&(a[c]=!1))}},attrHooks:{type:{set:function(a,b){if(r.test(a.nodeName)&&a.parentNode)f.error("type property can't be changed");else if(!f.support.radioValue&&b==="radio"&&f.nodeName(a,"input")){var c=a.value;a.setAttribute("type",b),c&&(a.value=c);return b}}},value:{get:function(a,b){if(w&&f.nodeName(a,"button"))return w.get(a,b);return b in a?a.value:null},set:function(a,b,c){if(w&&f.nodeName(a,"button"))return w.set(a,b,c);a.value=b}}},propFix:{tabindex:"tabIndex",readonly:"readOnly","for":"htmlFor","class":"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},prop:function(a,c,d){var e,g,h,i=a.nodeType;if(!!a&&i!==3&&i!==8&&i!==2){h=i!==1||!f.isXMLDoc(a),h&&(c=f.propFix[c]||c,g=f.propHooks[c]);return d!==b?g&&"set"in g&&(e=g.set(a,d,c))!==b?e:a[c]=d:g&&"get"in g&&(e=g.get(a,c))!==null?e:a[c]}},propHooks:{tabIndex:{get:function(a){var c=a.getAttributeNode("tabindex");return c&&c.specified?parseInt(c.value,10):s.test(a.nodeName)||t.test(a.nodeName)&&a.href?0:b}}}}),f.attrHooks.tabindex=f.propHooks.tabIndex,x={get:function(a,c){var d,e=f.prop(a,c);return e===!0||typeof e!="boolean"&&(d=a.getAttributeNode(c))&&d.nodeValue!==!1?c.toLowerCase():b},set:function(a,b,c){var d;b===!1?f.removeAttr(a,c):(d=f.propFix[c]||c,d in a&&(a[d]=!0),a.setAttribute(c,c.toLowerCase()));return c}},v||(y={name:!0,id:!0,coords:!0},w=f.valHooks.button={get:function(a,c){var d;d=a.getAttributeNode(c);return d&&(y[c]?d.nodeValue!=="":d.specified)?d.nodeValue:b},set:function(a,b,d){var e=a.getAttributeNode(d);e||(e=c.createAttribute(d),a.setAttributeNode(e));return e.nodeValue=b+""}},f.attrHooks.tabindex.set=w.set,f.each(["width","height"],function(a,b){f.attrHooks[b]=f.extend(f.attrHooks[b],{set:function(a,c){if(c===""){a.setAttribute(b,"auto");return c}}})}),f.attrHooks.contenteditable={get:w.get,set:function(a,b,c){b===""&&(b="false"),w.set(a,b,c)}}),f.support.hrefNormalized||f.each(["href","src","width","height"],function(a,c){f.attrHooks[c]=f.extend(f.attrHooks[c],{get:function(a){var d=a.getAttribute(c,2);return d===null?b:d}})}),f.support.style||(f.attrHooks.style={get:function(a){return a.style.cssText.toLowerCase()||b},set:function(a,b){return a.style.cssText=""+b}}),f.support.optSelected||(f.propHooks.selected=f.extend(f.propHooks.selected,{get:function(a){var b=a.parentNode;b&&(b.selectedIndex,b.parentNode&&b.parentNode.selectedIndex);return null}})),f.support.enctype||(f.propFix.enctype="encoding"),f.support.checkOn||f.each(["radio","checkbox"],function(){f.valHooks[this]={get:function(a){return a.getAttribute("value")===null?"on":a.value}}}),f.each(["radio","checkbox"],function(){f.valHooks[this]=f.extend(f.valHooks[this],{set:function(a,b){if(f.isArray(b))return a.checked=f.inArray(f(a).val(),b)>=0}})});var z=/^(?:textarea|input|select)$/i,A=/^([^\.]*)?(?:\.(.+))?$/,B=/(?:^|\s)hover(\.\S+)?\b/,C=/^key/,D=/^(?:mouse|contextmenu)|click/,E=/^(?:focusinfocus|focusoutblur)$/,F=/^(\w*)(?:#([\w\-]+))?(?:\.([\w\-]+))?$/,G=function(
-a){var b=F.exec(a);b&&(b[1]=(b[1]||"").toLowerCase(),b[3]=b[3]&&new RegExp("(?:^|\\s)"+b[3]+"(?:\\s|$)"));return b},H=function(a,b){var c=a.attributes||{};return(!b[1]||a.nodeName.toLowerCase()===b[1])&&(!b[2]||(c.id||{}).value===b[2])&&(!b[3]||b[3].test((c["class"]||{}).value))},I=function(a){return f.event.special.hover?a:a.replace(B,"mouseenter$1 mouseleave$1")};f.event={add:function(a,c,d,e,g){var h,i,j,k,l,m,n,o,p,q,r,s;if(!(a.nodeType===3||a.nodeType===8||!c||!d||!(h=f._data(a)))){d.handler&&(p=d,d=p.handler,g=p.selector),d.guid||(d.guid=f.guid++),j=h.events,j||(h.events=j={}),i=h.handle,i||(h.handle=i=function(a){return typeof f!="undefined"&&(!a||f.event.triggered!==a.type)?f.event.dispatch.apply(i.elem,arguments):b},i.elem=a),c=f.trim(I(c)).split(" ");for(k=0;k<c.length;k++){l=A.exec(c[k])||[],m=l[1],n=(l[2]||"").split(".").sort(),s=f.event.special[m]||{},m=(g?s.delegateType:s.bindType)||m,s=f.event.special[m]||{},o=f.extend({type:m,origType:l[1],data:e,handler:d,guid:d.guid,selector:g,quick:g&&G(g),namespace:n.join(".")},p),r=j[m];if(!r){r=j[m]=[],r.delegateCount=0;if(!s.setup||s.setup.call(a,e,n,i)===!1)a.addEventListener?a.addEventListener(m,i,!1):a.attachEvent&&a.attachEvent("on"+m,i)}s.add&&(s.add.call(a,o),o.handler.guid||(o.handler.guid=d.guid)),g?r.splice(r.delegateCount++,0,o):r.push(o),f.event.global[m]=!0}a=null}},global:{},remove:function(a,b,c,d,e){var g=f.hasData(a)&&f._data(a),h,i,j,k,l,m,n,o,p,q,r,s;if(!!g&&!!(o=g.events)){b=f.trim(I(b||"")).split(" ");for(h=0;h<b.length;h++){i=A.exec(b[h])||[],j=k=i[1],l=i[2];if(!j){for(j in o)f.event.remove(a,j+b[h],c,d,!0);continue}p=f.event.special[j]||{},j=(d?p.delegateType:p.bindType)||j,r=o[j]||[],m=r.length,l=l?new RegExp("(^|\\.)"+l.split(".").sort().join("\\.(?:.*\\.)?")+"(\\.|$)"):null;for(n=0;n<r.length;n++)s=r[n],(e||k===s.origType)&&(!c||c.guid===s.guid)&&(!l||l.test(s.namespace))&&(!d||d===s.selector||d==="**"&&s.selector)&&(r.splice(n--,1),s.selector&&r.delegateCount--,p.remove&&p.remove.call(a,s));r.length===0&&m!==r.length&&((!p.teardown||p.teardown.call(a,l)===!1)&&f.removeEvent(a,j,g.handle),delete o[j])}f.isEmptyObject(o)&&(q=g.handle,q&&(q.elem=null),f.removeData(a,["events","handle"],!0))}},customEvent:{getData:!0,setData:!0,changeData:!0},trigger:function(c,d,e,g){if(!e||e.nodeType!==3&&e.nodeType!==8){var h=c.type||c,i=[],j,k,l,m,n,o,p,q,r,s;if(E.test(h+f.event.triggered))return;h.indexOf("!")>=0&&(h=h.slice(0,-1),k=!0),h.indexOf(".")>=0&&(i=h.split("."),h=i.shift(),i.sort());if((!e||f.event.customEvent[h])&&!f.event.global[h])return;c=typeof c=="object"?c[f.expando]?c:new f.Event(h,c):new f.Event(h),c.type=h,c.isTrigger=!0,c.exclusive=k,c.namespace=i.join("."),c.namespace_re=c.namespace?new RegExp("(^|\\.)"+i.join("\\.(?:.*\\.)?")+"(\\.|$)"):null,o=h.indexOf(":")<0?"on"+h:"";if(!e){j=f.cache;for(l in j)j[l].events&&j[l].events[h]&&f.event.trigger(c,d,j[l].handle.elem,!0);return}c.result=b,c.target||(c.target=e),d=d!=null?f.makeArray(d):[],d.unshift(c),p=f.event.special[h]||{};if(p.trigger&&p.trigger.apply(e,d)===!1)return;r=[[e,p.bindType||h]];if(!g&&!p.noBubble&&!f.isWindow(e)){s=p.delegateType||h,m=E.test(s+h)?e:e.parentNode,n=null;for(;m;m=m.parentNode)r.push([m,s]),n=m;n&&n===e.ownerDocument&&r.push([n.defaultView||n.parentWindow||a,s])}for(l=0;l<r.length&&!c.isPropagationStopped();l++)m=r[l][0],c.type=r[l][1],q=(f._data(m,"events")||{})[c.type]&&f._data(m,"handle"),q&&q.apply(m,d),q=o&&m[o],q&&f.acceptData(m)&&q.apply(m,d)===!1&&c.preventDefault();c.type=h,!g&&!c.isDefaultPrevented()&&(!p._default||p._default.apply(e.ownerDocument,d)===!1)&&(h!=="click"||!f.nodeName(e,"a"))&&f.acceptData(e)&&o&&e[h]&&(h!=="focus"&&h!=="blur"||c.target.offsetWidth!==0)&&!f.isWindow(e)&&(n=e[o],n&&(e[o]=null),f.event.triggered=h,e[h](),f.event.triggered=b,n&&(e[o]=n));return c.result}},dispatch:function(c){c=f.event.fix(c||a.event);var d=(f._data(this,"events")||{})[c.type]||[],e=d.delegateCount,g=[].slice.call(arguments,0),h=!c.exclusive&&!c.namespace,i=f.event.special[c.type]||{},j=[],k,l,m,n,o,p,q,r,s,t,u;g[0]=c,c.delegateTarget=this;if(!i.preDispatch||i.preDispatch.call(this,c)!==!1){if(e&&(!c.button||c.type!=="click")){n=f(this),n.context=this.ownerDocument||this;for(m=c.target;m!=this;m=m.parentNode||this)if(m.disabled!==!0){p={},r=[],n[0]=m;for(k=0;k<e;k++)s=d[k],t=s.selector,p[t]===b&&(p[t]=s.quick?H(m,s.quick):n.is(t)),p[t]&&r.push(s);r.length&&j.push({elem:m,matches:r})}}d.length>e&&j.push({elem:this,matches:d.slice(e)});for(k=0;k<j.length&&!c.isPropagationStopped();k++){q=j[k],c.currentTarget=q.elem;for(l=0;l<q.matches.length&&!c.isImmediatePropagationStopped();l++){s=q.matches[l];if(h||!c.namespace&&!s.namespace||c.namespace_re&&c.namespace_re.test(s.namespace))c.data=s.data,c.handleObj=s,o=((f.event.special[s.origType]||{}).handle||s.handler).apply(q.elem,g),o!==b&&(c.result=o,o===!1&&(c.preventDefault(),c.stopPropagation()))}}i.postDispatch&&i.postDispatch.call(this,c);return c.result}},props:"attrChange attrName relatedNode srcElement altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(a,b){a.which==null&&(a.which=b.charCode!=null?b.charCode:b.keyCode);return a}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(a,d){var e,f,g,h=d.button,i=d.fromElement;a.pageX==null&&d.clientX!=null&&(e=a.target.ownerDocument||c,f=e.documentElement,g=e.body,a.pageX=d.clientX+(f&&f.scrollLeft||g&&g.scrollLeft||0)-(f&&f.clientLeft||g&&g.clientLeft||0),a.pageY=d.clientY+(f&&f.scrollTop||g&&g.scrollTop||0)-(f&&f.clientTop||g&&g.clientTop||0)),!a.relatedTarget&&i&&(a.relatedTarget=i===a.target?d.toElement:i),!a.which&&h!==b&&(a.which=h&1?1:h&2?3:h&4?2:0);return a}},fix:function(a){if(a[f.expando])return a;var d,e,g=a,h=f.event.fixHooks[a.type]||{},i=h.props?this.props.concat(h.props):this.props;a=f.Event(g);for(d=i.length;d;)e=i[--d],a[e]=g[e];a.target||(a.target=g.srcElement||c),a.target.nodeType===3&&(a.target=a.target.parentNode),a.metaKey===b&&(a.metaKey=a.ctrlKey);return h.filter?h.filter(a,g):a},special:{ready:{setup:f.bindReady},load:{noBubble:!0},focus:{delegateType:"focusin"},blur:{delegateType:"focusout"},beforeunload:{setup:function(a,b,c){f.isWindow(this)&&(this.onbeforeunload=c)},teardown:function(a,b){this.onbeforeunload===b&&(this.onbeforeunload=null)}}},simulate:function(a,b,c,d){var e=f.extend(new f.Event,c,{type:a,isSimulated:!0,originalEvent:{}});d?f.event.trigger(e,null,b):f.event.dispatch.call(b,e),e.isDefaultPrevented()&&c.preventDefault()}},f.event.handle=f.event.dispatch,f.removeEvent=c.removeEventListener?function(a,b,c){a.removeEventListener&&a.removeEventListener(b,c,!1)}:function(a,b,c){a.detachEvent&&a.detachEvent("on"+b,c)},f.Event=function(a,b){if(!(this instanceof f.Event))return new f.Event(a,b);a&&a.type?(this.originalEvent=a,this.type=a.type,this.isDefaultPrevented=a.defaultPrevented||a.returnValue===!1||a.getPreventDefault&&a.getPreventDefault()?K:J):this.type=a,b&&f.extend(this,b),this.timeStamp=a&&a.timeStamp||f.now(),this[f.expando]=!0},f.Event.prototype={preventDefault:function(){this.isDefaultPrevented=K;var a=this.originalEvent;!a||(a.preventDefault?a.preventDefault():a.returnValue=!1)},stopPropagation:function(){this.isPropagationStopped=K;var a=this.originalEvent;!a||(a.stopPropagation&&a.stopPropagation(),a.cancelBubble=!0)},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=K,this.stopPropagation()},isDefaultPrevented:J,isPropagationStopped:J,isImmediatePropagationStopped:J},f.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(a,b){f.event.special[a]={delegateType:b,bindType:b,handle:function(a){var c=this,d=a.relatedTarget,e=a.handleObj,g=e.selector,h;if(!d||d!==c&&!f.contains(c,d))a.type=e.origType,h=e.handler.apply(this,arguments),a.type=b;return h}}}),f.support.submitBubbles||(f.event.special.submit={setup:function(){if(f.nodeName(this,"form"))return!1;f.event.add(this,"click._submit keypress._submit",function(a){var c=a.target,d=f.nodeName(c,"input")||f.nodeName(c,"button")?c.form:b;d&&!d._submit_attached&&(f.event.add(d,"submit._submit",function(a){a._submit_bubble=!0}),d._submit_attached=!0)})},postDispatch:function(a){a._submit_bubble&&(delete a._submit_bubble,this.parentNode&&!a.isTrigger&&f.event.simulate("submit",this.parentNode,a,!0))},teardown:function(){if(f.nodeName(this,"form"))return!1;f.event.remove(this,"._submit")}}),f.support.changeBubbles||(f.event.special.change={setup:function(){if(z.test(this.nodeName)){if(this.type==="checkbox"||this.type==="radio")f.event.add(this,"propertychange._change",function(a){a.originalEvent.propertyName==="checked"&&(this._just_changed=!0)}),f.event.add(this,"click._change",function(a){this._just_changed&&!a.isTrigger&&(this._just_changed=!1,f.event.simulate("change",this,a,!0))});return!1}f.event.add(this,"beforeactivate._change",function(a){var b=a.target;z.test(b.nodeName)&&!b._change_attached&&(f.event.add(b,"change._change",function(a){this.parentNode&&!a.isSimulated&&!a.isTrigger&&f.event.simulate("change",this.parentNode,a,!0)}),b._change_attached=!0)})},handle:function(a){var b=a.target;if(this!==b||a.isSimulated||a.isTrigger||b.type!=="radio"&&b.type!=="checkbox")return a.handleObj.handler.apply(this,arguments)},teardown:function(){f.event.remove(this,"._change");return z.test(this.nodeName)}}),f.support.focusinBubbles||f.each({focus:"focusin",blur:"focusout"},function(a,b){var d=0,e=function(a){f.event.simulate(b,a.target,f.event.fix(a),!0)};f.event.special[b]={setup:function(){d++===0&&c.addEventListener(a,e,!0)},teardown:function(){--d===0&&c.removeEventListener(a,e,!0)}}}),f.fn.extend({on:function(a,c,d,e,g){var h,i;if(typeof a=="object"){typeof c!="string"&&(d=d||c,c=b);for(i in a)this.on(i,c,d,a[i],g);return this}d==null&&e==null?(e=c,d=c=b):e==null&&(typeof c=="string"?(e=d,d=b):(e=d,d=c,c=b));if(e===!1)e=J;else if(!e)return this;g===1&&(h=e,e=function(a){f().off(a);return h.apply(this,arguments)},e.guid=h.guid||(h.guid=f.guid++));return this.each(function(){f.event.add(this,a,e,d,c)})},one:function(a,b,c,d){return this.on(a,b,c,d,1)},off:function(a,c,d){if(a&&a.preventDefault&&a.handleObj){var e=a.handleObj;f(a.delegateTarget).off(e.namespace?e.origType+"."+e.namespace:e.origType,e.selector,e.handler);return this}if(typeof a=="object"){for(var g in a)this.off(g,c,a[g]);return this}if(c===!1||typeof c=="function")d=c,c=b;d===!1&&(d=J);return this.each(function(){f.event.remove(this,a,d,c)})},bind:function(a,b,c){return this.on(a,null,b,c)},unbind:function(a,b){return this.off(a,null,b)},live:function(a,b,c){f(this.context).on(a,this.selector,b,c);return this},die:function(a,b){f(this.context).off(a,this.selector||"**",b);return this},delegate:function(a,b,c,d){return this.on(b,a,c,d)},undelegate:function(a,b,c){return arguments.length==1?this.off(a,"**"):this.off(b,a,c)},trigger:function(a,b){return this.each(function(){f.event.trigger(a,b,this)})},triggerHandler:function(a,b){if(this[0])return f.event.trigger(a,b,this[0],!0)},toggle:function(a){var b=arguments,c=a.guid||f.guid++,d=0,e=function(c){var e=(f._data(this,"lastToggle"+a.guid)||0)%d;f._data(this,"lastToggle"+a.guid,e+1),c.preventDefault();return b[e].apply(this,arguments)||!1};e.guid=c;while(d<b.length)b[d++].guid=c;return this.click(e)},hover:function(a,b){return this.mouseenter(a).mouseleave(b||a)}}),f.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(a,b){f.fn[b]=function(a,c){c==null&&(c=a,a=null);return arguments.length>0?this.on(b,null,a,c):this.trigger(b)},f.attrFn&&(f.attrFn[b]=!0),C.test(b)&&(f.event.fixHooks[b]=f.event.keyHooks),D.test(b)&&(f.event.fixHooks[b]=f.event.mouseHooks)}),function(){function x(a,b,c,e,f,g){for(var h=0,i=e.length;h<i;h++){var j=e[h];if(j){var k=!1;j=j[a];while(j){if(j[d]===c){k=e[j.sizset];break}if(j.nodeType===1){g||(j[d]=c,j.sizset=h);if(typeof b!="string"){if(j===b){k=!0;break}}else if(m.filter(b,[j]).length>0){k=j;break}}j=j[a]}e[h]=k}}}function w(a,b,c,e,f,g){for(var h=0,i=e.length;h<i;h++){var j=e[h];if(j){var k=!1;j=j[a];while(j){if(j[d]===c){k=e[j.sizset];break}j.nodeType===1&&!g&&(j[d]=c,j.sizset=h);if(j.nodeName.toLowerCase()===b){k=j;break}j=j[a]}e[h]=k}}}var a=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,d="sizcache"+(Math.random()+"").replace(".",""),e=0,g=Object.prototype.toString,h=!1,i=!0,j=/\\/g,k=/\r\n/g,l=/\W/;[0,0].sort(function(){i=!1;return 0});var m=function(b,d,e,f){e=e||[],d=d||c;var h=d;if(d.nodeType!==1&&d.nodeType!==9)return[];if(!b||typeof b!="string")return e;var i,j,k,l,n,q,r,t,u=!0,v=m.isXML(d),w=[],x=b;do{a.exec(""),i=a.exec(x);if(i){x=i[3],w.push(i[1]);if(i[2]){l=i[3];break}}}while(i);if(w.length>1&&p.exec(b))if(w.length===2&&o.relative[w[0]])j=y(w[0]+w[1],d,f);else{j=o.relative[w[0]]?[d]:m(w.shift(),d);while(w.length)b=w.shift(),o.relative[b]&&(b+=w.shift()),j=y(b,j,f)}else{!f&&w.length>1&&d.nodeType===9&&!v&&o.match.ID.test(w[0])&&!o.match.ID.test(w[w.length-1])&&(n=m.find(w.shift(),d,v),d=n.expr?m.filter(n.expr,n.set)[0]:n.set[0]);if(d){n=f?{expr:w.pop(),set:s(f)}:m.find(w.pop(),w.length===1&&(w[0]==="~"||w[0]==="+")&&d.parentNode?d.parentNode:d,v),j=n.expr?m.filter(n.expr,n.set):n.set,w.length>0?k=s(j):u=!1;while(w.length)q=w.pop(),r=q,o.relative[q]?r=w.pop():q="",r==null&&(r=d),o.relative[q](k,r,v)}else k=w=[]}k||(k=j),k||m.error(q||b);if(g.call(k)==="[object Array]")if(!u)e.push.apply(e,k);else if(d&&d.nodeType===1)for(t=0;k[t]!=null;t++)k[t]&&(k[t]===!0||k[t].nodeType===1&&m.contains(d,k[t]))&&e.push(j[t]);else for(t=0;k[t]!=null;t++)k[t]&&k[t].nodeType===1&&e.push(j[t]);else s(k,e);l&&(m(l,h,e,f),m.uniqueSort(e));return e};m.uniqueSort=function(a){if(u){h=i,a.sort(u);if(h)for(var b=1;b<a.length;b++)a[b]===a[b-1]&&a.splice(b--,1)}return a},m.matches=function(a,b){return m(a,null,null,b)},m.matchesSelector=function(a,b){return m(b,null,null,[a]).length>0},m.find=function(a,b,c){var d,e,f,g,h,i;if(!a)return[];for(e=0,f=o.order.length;e<f;e++){h=o.order[e];if(g=o.leftMatch[h].exec(a)){i=g[1],g.splice(1,1);if(i.substr(i.length-1)!=="\\"){g[1]=(g[1]||"").replace(j,""),d=o.find[h](g,b,c);if(d!=null){a=a.replace(o.match[h],"");break}}}}d||(d=typeof b.getElementsByTagName!="undefined"?b.getElementsByTagName("*"):[]);return{set:d,expr:a}},m.filter=function(a,c,d,e){var f,g,h,i,j,k,l,n,p,q=a,r=[],s=c,t=c&&c[0]&&m.isXML(c[0]);while(a&&c.length){for(h in o.filter)if((f=o.leftMatch[h].exec(a))!=null&&f[2]){k=o.filter[h],l=f[1],g=!1,f.splice(1,1);if(l.substr(l.length-1)==="\\")continue;s===r&&(r=[]);if(o.preFilter[h]){f=o.preFilter[h](f,s,d,r,e,t);if(!f)g=i=!0;else if(f===!0)continue}if(f)for(n=0;(j=s[n])!=null;n++)j&&(i=k(j,f,n,s),p=e^i,d&&i!=null?p?g=!0:s[n]=!1:p&&(r.push(j),g=!0));if(i!==b){d||(s=r),a=a.replace(o.match[h],"");if(!g)return[];break}}if(a===q)if(g==null)m.error(a);else break;q=a}return s},m.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)};var n=m.getText=function(a){var b,c,d=a.nodeType,e="";if(d){if(d===1||d===9||d===11){if(typeof a.textContent=="string")return a.textContent;if(typeof a.innerText=="string")return a.innerText.replace(k,"");for(a=a.firstChild;a;a=a.nextSibling)e+=n(a)}else if(d===3||d===4)return a.nodeValue}else for(b=0;c=a[b];b++)c.nodeType!==8&&(e+=n(c));return e},o=m.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,CLASS:/\.((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF\-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF\-]|\\.)+)\s*(?:(\S?=)\s*(?:(['"])(.*?)\3|(#?(?:[\w\u00c0-\uFFFF\-]|\\.)*)|)|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*\-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\(\s*(even|odd|(?:[+\-]?\d+|(?:[+\-]?\d*)?n\s*(?:[+\-]\s*\d+)?))\s*\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^\-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF\-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/},leftMatch:{},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(a){return a.getAttribute("href")},type:function(a){return a.getAttribute("type")}},relative:{"+":function(a,b){var c=typeof b=="string",d=c&&!l.test(b),e=c&&!d;d&&(b=b.toLowerCase());for(var f=0,g=a.length,h;f<g;f++)if(h=a[f]){while((h=h.previousSibling)&&h.nodeType!==1);a[f]=e||h&&h.nodeName.toLowerCase()===b?h||!1:h===b}e&&m.filter(b,a,!0)},">":function(a,b){var c,d=typeof b=="string",e=0,f=a.length;if(d&&!l.test(b)){b=b.toLowerCase();for(;e<f;e++){c=a[e];if(c){var g=c.parentNode;a[e]=g.nodeName.toLowerCase()===b?g:!1}}}else{for(;e<f;e++)c=a[e],c&&(a[e]=d?c.parentNode:c.parentNode===b);d&&m.filter(b,a,!0)}},"":function(a,b,c){var d,f=e++,g=x;typeof b=="string"&&!l.test(b)&&(b=b.toLowerCase(),d=b,g=w),g("parentNode",b,f,a,d,c)},"~":function(a,b,c){var d,f=e++,g=x;typeof b=="string"&&!l.test(b)&&(b=b.toLowerCase(),d=b,g=w),g("previousSibling",b,f,a,d,c)}},find:{ID:function(a,b,c){if(typeof b.getElementById!="undefined"&&!c){var d=b.getElementById(a[1]);return d&&d.parentNode?[d]:[]}},NAME:function(a,b){if(typeof b.getElementsByName!="undefined"){var c=[],d=b.getElementsByName(a[1]);for(var e=0,f=d.length;e<f;e++)d[e].getAttribute("name")===a[1]&&c.push(d[e]);return c.length===0?null:c}},TAG:function(a,b){if(typeof b.getElementsByTagName!="undefined")return b.getElementsByTagName(a[1])}},preFilter:{CLASS:function(a,b,c,d,e,f){a=" "+a[1].replace(j,"")+" ";if(f)return a;for(var g=0,h;(h=b[g])!=null;g++)h&&(e^(h.className&&(" "+h.className+" ").replace(/[\t\n\r]/g," ").indexOf(a)>=0)?c||d.push(h):c&&(b[g]=!1));return!1},ID:function(a){return a[1].replace(j,"")},TAG:function(a,b){return a[1].replace(j,"").toLowerCase()},CHILD:function(a){if(a[1]==="nth"){a[2]||m.error(a[0]),a[2]=a[2].replace(/^\+|\s*/g,"");var b=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(a[2]==="even"&&"2n"||a[2]==="odd"&&"2n+1"||!/\D/.test(a[2])&&"0n+"+a[2]||a[2]);a[2]=b[1]+(b[2]||1)-0,a[3]=b[3]-0}else a[2]&&m.error(a[0]);a[0]=e++;return a},ATTR:function(a,b,c,d,e,f){var g=a[1]=a[1].replace(j,"");!f&&o.attrMap[g]&&(a[1]=o.attrMap[g]),a[4]=(a[4]||a[5]||"").replace(j,""),a[2]==="~="&&(a[4]=" "+a[4]+" ");return a},PSEUDO:function(b,c,d,e,f){if(b[1]==="not")if((a.exec(b[3])||"").length>1||/^\w/.test(b[3]))b[3]=m(b[3],null,null,c);else{var g=m.filter(b[3],c,d,!0^f);d||e.push.apply(e,g);return!1}else if(o.match.POS.test(b[0])||o.match.CHILD.test(b[0]))return!0;return b},POS:function(a){a.unshift(!0);return a}},filters:{enabled:function(a){return a.disabled===!1&&a.type!=="hidden"},disabled:function(a){return a.disabled===!0},checked:function(a){return a.checked===!0},selected:function(a){a.parentNode&&a.parentNode.selectedIndex;return a.selected===!0},parent:function(a){return!!a.firstChild},empty:function(a){return!a.firstChild},has:function(a,b,c){return!!m(c[3],a).length},header:function(a){return/h\d/i.test(a.nodeName)},text:function(a){var b=a.getAttribute("type"),c=a.type;return a.nodeName.toLowerCase()==="input"&&"text"===c&&(b===c||b===null)},radio:function(a){return a.nodeName.toLowerCase()==="input"&&"radio"===a.type},checkbox:function(a){return a.nodeName.toLowerCase()==="input"&&"checkbox"===a.type},file:function(a){return a.nodeName.toLowerCase()==="input"&&"file"===a.type},password:function(a){return a.nodeName.toLowerCase()==="input"&&"password"===a.type},submit:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"submit"===a.type},image:function(a){return a.nodeName.toLowerCase()==="input"&&"image"===a.type},reset:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"reset"===a.type},button:function(a){var b=a.nodeName.toLowerCase();return b==="input"&&"button"===a.type||b==="button"},input:function(a){return/input|select|textarea|button/i.test(a.nodeName)},focus:function(a){return a===a.ownerDocument.activeElement}},setFilters:{first:function(a,b){return b===0},last:function(a,b,c,d){return b===d.length-1},even:function(a,b){return b%2===0},odd:function(a,b){return b%2===1},lt:function(a,b,c){return b<c[3]-0},gt:function(a,b,c){return b>c[3]-0},nth:function(a,b,c){return c[3]-0===b},eq:function(a,b,c){return c[3]-0===b}},filter:{PSEUDO:function(a,b,c,d){var e=b[1],f=o.filters[e];if(f)return f(a,c,b,d);if(e==="contains")return(a.textContent||a.innerText||n([a])||"").indexOf(b[3])>=0;if(e==="not"){var g=b[3];for(var h=0,i=g.length;h<i;h++)if(g[h]===a)return!1;return!0}m.error(e)},CHILD:function(a,b){var c,e,f,g,h,i,j,k=b[1],l=a;switch(k){case"only":case"first":while(l=l.previousSibling)if(l.nodeType===1)return!1;if(k==="first")return!0;l=a;case"last":while(l=l.nextSibling)if(l.nodeType===1)return!1;return!0;case"nth":c=b[2],e=b[3];if(c===1&&e===0)return!0;f=b[0],g=a.parentNode;if(g&&(g[d]!==f||!a.nodeIndex)){i=0;for(l=g.firstChild;l;l=l.nextSibling)l.nodeType===1&&(l.nodeIndex=++i);g[d]=f}j=a.nodeIndex-e;return c===0?j===0:j%c===0&&j/c>=0}},ID:function(a,b){return a.nodeType===1&&a.getAttribute("id")===b},TAG:function(a,b){return b==="*"&&a.nodeType===1||!!a.nodeName&&a.nodeName.toLowerCase()===b},CLASS:function(a,b){return(" "+(a.className||a.getAttribute("class"))+" ").indexOf(b)>-1},ATTR:function(a,b){var c=b[1],d=m.attr?m.attr(a,c):o.attrHandle[c]?o.attrHandle[c](a):a[c]!=null?a[c]:a.getAttribute(c),e=d+"",f=b[2],g=b[4];return d==null?f==="!=":!f&&m.attr?d!=null:f==="="?e===g:f==="*="?e.indexOf(g)>=0:f==="~="?(" "+e+" ").indexOf(g)>=0:g?f==="!="?e!==g:f==="^="?e.indexOf(g)===0:f==="$="?e.substr(e.length-g.length)===g:f==="|="?e===g||e.substr(0,g.length+1)===g+"-":!1:e&&d!==!1},POS:function(a,b,c,d){var e=b[2],f=o.setFilters[e];if(f)return f(a,c,b,d)}}},p=o.match.POS,q=function(a,b){return"\\"+(b-0+1)};for(var r in o.match)o.match[r]=new RegExp(o.match[r].source+/(?![^\[]*\])(?![^\(]*\))/.source),o.leftMatch[r]=new RegExp(/(^(?:.|\r|\n)*?)/.source+o.match[r].source.replace(/\\(\d+)/g,q));o.match.globalPOS=p;var s=function(a,b){a=Array.prototype.slice.call(a,0);if(b){b.push.apply(b,a);return b}return a};try{Array.prototype.slice.call(c.documentElement.childNodes,0)[0].nodeType}catch(t){s=function(a,b){var c=0,d=b||[];if(g.call(a)==="[object Array]")Array.prototype.push.apply(d,a);else if(typeof a.length=="number")for(var e=a.length;c<e;c++)d.push(a[c]);else for(;a[c];c++)d.push(a[c]);return d}}var u,v;c.documentElement.compareDocumentPosition?u=function(a,b){if(a===b){h=!0;return 0}if(!a.compareDocumentPosition||!b.compareDocumentPosition)return a.compareDocumentPosition?-1:1;return a.compareDocumentPosition(b)&4?-1:1}:(u=function(a,b){if(a===b){h=!0;return 0}if(a.sourceIndex&&b.sourceIndex)return a.sourceIndex-b.sourceIndex;var c,d,e=[],f=[],g=a.parentNode,i=b.parentNode,j=g;if(g===i)return v(a,b);if(!g)return-1;if(!i)return 1;while(j)e.unshift(j),j=j.parentNode;j=i;while(j)f.unshift(j),j=j.parentNode;c=e.length,d=f.length;for(var k=0;k<c&&k<d;k++)if(e[k]!==f[k])return v(e[k],f[k]);return k===c?v(a,f[k],-1):v(e[k],b,1)},v=function(a,b,c){if(a===b)return c;var d=a.nextSibling;while(d){if(d===b)return-1;d=d.nextSibling}return 1}),function(){var a=c.createElement("div"),d="script"+(new Date).getTime(),e=c.documentElement;a.innerHTML="<a name='"+d+"'/>",e.insertBefore(a,e.firstChild),c.getElementById(d)&&(o.find.ID=function(a,c,d){if(typeof c.getElementById!="undefined"&&!d){var e=c.getElementById(a[1]);return e?e.id===a[1]||typeof e.getAttributeNode!="undefined"&&e.getAttributeNode("id").nodeValue===a[1]?[e]:b:[]}},o.filter.ID=function(a,b){var c=typeof a.getAttributeNode!="undefined"&&a.getAttributeNode("id");return a.nodeType===1&&c&&c.nodeValue===b}),e.removeChild(a),e=a=null}(),function(){var a=c.createElement("div");a.appendChild(c.createComment("")),a.getElementsByTagName("*").length>0&&(o.find.TAG=function(a,b){var c=b.getElementsByTagName(a[1]);if(a[1]==="*"){var d=[];for(var e=0;c[e];e++)c[e].nodeType===1&&d.push(c[e]);c=d}return c}),a.innerHTML="<a href='#'></a>",a.firstChild&&typeof a.firstChild.getAttribute!="undefined"&&a.firstChild.getAttribute("href")!=="#"&&(o.attrHandle.href=function(a){return a.getAttribute("href",2)}),a=null}(),c.querySelectorAll&&function(){var a=m,b=c.createElement("div"),d="__sizzle__";b.innerHTML="<p class='TEST'></p>";if(!b.querySelectorAll||b.querySelectorAll(".TEST").length!==0){m=function(b,e,f,g){e=e||c;if(!g&&!m.isXML(e)){var h=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b);if(h&&(e.nodeType===1||e.nodeType===9)){if(h[1])return s(e.getElementsByTagName(b),f);if(h[2]&&o.find.CLASS&&e.getElementsByClassName)return s(e.getElementsByClassName(h[2]),f)}if(e.nodeType===9){if(b==="body"&&e.body)return s([e.body],f);if(h&&h[3]){var i=e.getElementById(h[3]);if(!i||!i.parentNode)return s([],f);if(i.id===h[3])return s([i],f)}try{return s(e.querySelectorAll(b),f)}catch(j){}}else if(e.nodeType===1&&e.nodeName.toLowerCase()!=="object"){var k=e,l=e.getAttribute("id"),n=l||d,p=e.parentNode,q=/^\s*[+~]/.test(b);l?n=n.replace(/'/g,"\\$&"):e.setAttribute("id",n),q&&p&&(e=e.parentNode);try{if(!q||p)return s(e.querySelectorAll("[id='"+n+"'] "+b),f)}catch(r){}finally{l||k.removeAttribute("id")}}}return a(b,e,f,g)};for(var e in a)m[e]=a[e];b=null}}(),function(){var a=c.documentElement,b=a.matchesSelector||a.mozMatchesSelector||a.webkitMatchesSelector||a.msMatchesSelector;if(b){var d=!b.call(c.createElement("div"),"div"),e=!1;try{b.call(c.documentElement,"[test!='']:sizzle")}catch(f){e=!0}m.matchesSelector=function(a,c){c=c.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!m.isXML(a))try{if(e||!o.match.PSEUDO.test(c)&&!/!=/.test(c)){var f=b.call(a,c);if(f||!d||a.document&&a.document.nodeType!==11)return f}}catch(g){}return m(c,null,null,[a]).length>0}}}(),function(){var a=c.createElement("div");a.innerHTML="<div class='test e'></div><div class='test'></div>";if(!!a.getElementsByClassName&&a.getElementsByClassName("e").length!==0){a.lastChild.className="e";if(a.getElementsByClassName("e").length===1)return;o.order.splice(1,0,"CLASS"),o.find.CLASS=function(a,b,c){if(typeof b.getElementsByClassName!="undefined"&&!c)return b.getElementsByClassName(a[1])},a=null}}(),c.documentElement.contains?m.contains=function(a,b){return a!==b&&(a.contains?a.contains(b):!0)}:c.documentElement.compareDocumentPosition?m.contains=function(a,b){return!!(a.compareDocumentPosition(b)&16)}:m.contains=function(){return!1},m.isXML=function(a){var b=(a?a.ownerDocument||a:0).documentElement;return b?b.nodeName!=="HTML":!1};var y=function(a,b,c){var d,e=[],f="",g=b.nodeType?[b]:b;while(d=o.match.PSEUDO.exec(a))f+=d[0],a=a.replace(o.match.PSEUDO,"");a=o.relative[a]?a+"*":a;for(var h=0,i=g.length;h<i;h++)m(a,g[h],e,c);return m.filter(f,e)};m.attr=f.attr,m.selectors.attrMap={},f.find=m,f.expr=m.selectors,f.expr[":"]=f.expr.filters,f.unique=m.uniqueSort,f.text=m.getText,f.isXMLDoc=m.isXML,f.contains=m.contains}();var L=/Until$/,M=/^(?:parents|prevUntil|prevAll)/,N=/,/,O=/^.[^:#\[\.,]*$/,P=Array.prototype.slice,Q=f.expr.match.globalPOS,R={children:!0,contents:!0,next:!0,prev:!0};f.fn.extend({find:function(a){var b=this,c,d;if(typeof a!="string")return f(a).filter(function(){for(c=0,d=b.length;c<d;c++)if(f.contains(b[c],this))return!0});var e=this.pushStack("","find",a),g,h,i;for(c=0,d=this.length;c<d;c++){g=e.length,f.find(a,this[c],e);if(c>0)for(h=g;h<e.length;h++)for(i=0;i<g;i++)if(e[i]===e[h]){e.splice(h--,1);break}}return e},has:function(a){var b=f(a);return this.filter(function(){for(var a=0,c=b.length;a<c;a++)if(f.contains(this,b[a]))return!0})},not:function(a){return this.pushStack(T(this,a,!1),"not",a)},filter:function(a){return this.pushStack(T(this,a,!0),"filter",a)},is:function(a){return!!a&&(typeof a=="string"?Q.test(a)?f(a,this.context).index(this[0])>=0:f.filter(a,this).length>0:this.filter(a).length>0)},closest:function(a,b){var c=[],d,e,g=this[0];if(f.isArray(a)){var h=1;while(g&&g.ownerDocument&&g!==b){for(d=0;d<a.length;d++)f(g).is(a[d])&&c.push({selector:a[d],elem:g,level:h});g=g.parentNode,h++}return c}var i=Q.test(a)||typeof a!="string"?f(a,b||this.context):0;for(d=0,e=this.length;d<e;d++){g=this[d];while(g){if(i?i.index(g)>-1:f.find.matchesSelector(g,a)){c.push(g);break}g=g.parentNode;if(!g||!g.ownerDocument||g===b||g.nodeType===11)break}}c=c.length>1?f.unique(c):c;return this.pushStack(c,"closest",a)},index:function(a){if(!a)return this[0]&&this[0].parentNode?this.prevAll().length:-1;if(typeof a=="string")return f.inArray(this[0],f(a));return f.inArray(a.jquery?a[0]:a,this)},add:function(a,b){var c=typeof a=="string"?f(a,b):f.makeArray(a&&a.nodeType?[a]:a),d=f.merge(this.get(),c);return this.pushStack(S(c[0])||S(d[0])?d:f.unique(d))},andSelf:function(){return this.add(this.prevObject)}}),f.each({parent:function(a){var b=a.parentNode;return b&&b.nodeType!==11?b:null},parents:function(a){return f.dir(a,"parentNode")},parentsUntil:function(a,b,c){return f.dir(a,"parentNode",c)},next:function(a){return f.nth(a,2,"nextSibling")},prev:function(a){return f.nth(a,2,"previousSibling")},nextAll:function(a){return f.dir(a,"nextSibling")},prevAll:function(a){return f.dir(a,"previousSibling")},nextUntil:function(a,b,c){return f.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return f.dir(a,"previousSibling",c)},siblings:function(a){return f.sibling((a.parentNode||{}).firstChild,a)},children:function(a){return f.sibling(a.firstChild)},contents:function(a){return f.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:f.makeArray(a.childNodes)}},function(a,b){f.fn[a]=function(c,d){var e=f.map(this,b,c);L.test(a)||(d=c),d&&typeof d=="string"&&(e=f.filter(d,e)),e=this.length>1&&!R[a]?f.unique(e):e,(this.length>1||N.test(d))&&M.test(a)&&(e=e.reverse());return this.pushStack(e,a,P.call(arguments).join(","))}}),f.extend({filter:function(a,b,c){c&&(a=":not("+a+")");return b.length===1?f.find.matchesSelector(b[0],a)?[b[0]]:[]:f.find.matches(a,b)},dir:function(a,c,d){var e=[],g=a[c];while(g&&g.nodeType!==9&&(d===b||g.nodeType!==1||!f(g).is(d)))g.nodeType===1&&e.push(g),g=g[c];return e},nth:function(a,b,c,d){b=b||1;var e=0;for(;a;a=a[c])if(a.nodeType===1&&++e===b)break;return a},sibling:function(a,b){var c=[];for(;a;a=a.nextSibling)a.nodeType===1&&a!==b&&c.push(a);return c}});var V="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",W=/ jQuery\d+="(?:\d+|null)"/g,X=/^\s+/,Y=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,Z=/<([\w:]+)/,$=/<tbody/i,_=/<|&#?\w+;/,ba=/<(?:script|style)/i,bb=/<(?:script|object|embed|option|style)/i,bc=new RegExp("<(?:"+V+")[\\s/>]","i"),bd=/checked\s*(?:[^=]|=\s*.checked.)/i,be=/\/(java|ecma)script/i,bf=/^\s*<!(?:\[CDATA\[|\-\-)/,bg={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],area:[1,"<map>","</map>"],_default:[0,"",""]},bh=U(c);bg.optgroup=bg.option,bg.tbody=bg.tfoot=bg.colgroup=bg.caption=bg.thead,bg.th=bg.td,f.support.htmlSerialize||(bg._default=[1,"div<div>","</div>"]),f.fn.extend({text:function(a){return f.access(this,function(a){return a===b?f.text(this):this.empty().append((this[0]&&this[0].ownerDocument||c).createTextNode(a))},null,a,arguments.length)},wrapAll:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapAll(a.call(this,b))});if(this[0]){var b=f(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&a.firstChild.nodeType===1)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapInner(a.call(this,b))});return this.each(function(){var b=f(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=f.isFunction(a);return this.each(function(c){f(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){f.nodeName(this,"body")||f(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)});if(arguments.length){var a=f
-.clean(arguments);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this.nextSibling)});if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,f.clean(arguments));return a}},remove:function(a,b){for(var c=0,d;(d=this[c])!=null;c++)if(!a||f.filter(a,[d]).length)!b&&d.nodeType===1&&(f.cleanData(d.getElementsByTagName("*")),f.cleanData([d])),d.parentNode&&d.parentNode.removeChild(d);return this},empty:function(){for(var a=0,b;(b=this[a])!=null;a++){b.nodeType===1&&f.cleanData(b.getElementsByTagName("*"));while(b.firstChild)b.removeChild(b.firstChild)}return this},clone:function(a,b){a=a==null?!1:a,b=b==null?a:b;return this.map(function(){return f.clone(this,a,b)})},html:function(a){return f.access(this,function(a){var c=this[0]||{},d=0,e=this.length;if(a===b)return c.nodeType===1?c.innerHTML.replace(W,""):null;if(typeof a=="string"&&!ba.test(a)&&(f.support.leadingWhitespace||!X.test(a))&&!bg[(Z.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Y,"<$1></$2>");try{for(;d<e;d++)c=this[d]||{},c.nodeType===1&&(f.cleanData(c.getElementsByTagName("*")),c.innerHTML=a);c=0}catch(g){}}c&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(a){if(this[0]&&this[0].parentNode){if(f.isFunction(a))return this.each(function(b){var c=f(this),d=c.html();c.replaceWith(a.call(this,b,d))});typeof a!="string"&&(a=f(a).detach());return this.each(function(){var b=this.nextSibling,c=this.parentNode;f(this).remove(),b?f(b).before(a):f(c).append(a)})}return this.length?this.pushStack(f(f.isFunction(a)?a():a),"replaceWith",a):this},detach:function(a){return this.remove(a,!0)},domManip:function(a,c,d){var e,g,h,i,j=a[0],k=[];if(!f.support.checkClone&&arguments.length===3&&typeof j=="string"&&bd.test(j))return this.each(function(){f(this).domManip(a,c,d,!0)});if(f.isFunction(j))return this.each(function(e){var g=f(this);a[0]=j.call(this,e,c?g.html():b),g.domManip(a,c,d)});if(this[0]){i=j&&j.parentNode,f.support.parentNode&&i&&i.nodeType===11&&i.childNodes.length===this.length?e={fragment:i}:e=f.buildFragment(a,this,k),h=e.fragment,h.childNodes.length===1?g=h=h.firstChild:g=h.firstChild;if(g){c=c&&f.nodeName(g,"tr");for(var l=0,m=this.length,n=m-1;l<m;l++)d.call(c?bi(this[l],g):this[l],e.cacheable||m>1&&l<n?f.clone(h,!0,!0):h)}k.length&&f.each(k,function(a,b){b.src?f.ajax({type:"GET",global:!1,url:b.src,async:!1,dataType:"script"}):f.globalEval((b.text||b.textContent||b.innerHTML||"").replace(bf,"/*$0*/")),b.parentNode&&b.parentNode.removeChild(b)})}return this}}),f.buildFragment=function(a,b,d){var e,g,h,i,j=a[0];b&&b[0]&&(i=b[0].ownerDocument||b[0]),i.createDocumentFragment||(i=c),a.length===1&&typeof j=="string"&&j.length<512&&i===c&&j.charAt(0)==="<"&&!bb.test(j)&&(f.support.checkClone||!bd.test(j))&&(f.support.html5Clone||!bc.test(j))&&(g=!0,h=f.fragments[j],h&&h!==1&&(e=h)),e||(e=i.createDocumentFragment(),f.clean(a,i,e,d)),g&&(f.fragments[j]=h?e:1);return{fragment:e,cacheable:g}},f.fragments={},f.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){f.fn[a]=function(c){var d=[],e=f(c),g=this.length===1&&this[0].parentNode;if(g&&g.nodeType===11&&g.childNodes.length===1&&e.length===1){e[b](this[0]);return this}for(var h=0,i=e.length;h<i;h++){var j=(h>0?this.clone(!0):this).get();f(e[h])[b](j),d=d.concat(j)}return this.pushStack(d,a,e.selector)}}),f.extend({clone:function(a,b,c){var d,e,g,h=f.support.html5Clone||f.isXMLDoc(a)||!bc.test("<"+a.nodeName+">")?a.cloneNode(!0):bo(a);if((!f.support.noCloneEvent||!f.support.noCloneChecked)&&(a.nodeType===1||a.nodeType===11)&&!f.isXMLDoc(a)){bk(a,h),d=bl(a),e=bl(h);for(g=0;d[g];++g)e[g]&&bk(d[g],e[g])}if(b){bj(a,h);if(c){d=bl(a),e=bl(h);for(g=0;d[g];++g)bj(d[g],e[g])}}d=e=null;return h},clean:function(a,b,d,e){var g,h,i,j=[];b=b||c,typeof b.createElement=="undefined"&&(b=b.ownerDocument||b[0]&&b[0].ownerDocument||c);for(var k=0,l;(l=a[k])!=null;k++){typeof l=="number"&&(l+="");if(!l)continue;if(typeof l=="string")if(!_.test(l))l=b.createTextNode(l);else{l=l.replace(Y,"<$1></$2>");var m=(Z.exec(l)||["",""])[1].toLowerCase(),n=bg[m]||bg._default,o=n[0],p=b.createElement("div"),q=bh.childNodes,r;b===c?bh.appendChild(p):U(b).appendChild(p),p.innerHTML=n[1]+l+n[2];while(o--)p=p.lastChild;if(!f.support.tbody){var s=$.test(l),t=m==="table"&&!s?p.firstChild&&p.firstChild.childNodes:n[1]==="<table>"&&!s?p.childNodes:[];for(i=t.length-1;i>=0;--i)f.nodeName(t[i],"tbody")&&!t[i].childNodes.length&&t[i].parentNode.removeChild(t[i])}!f.support.leadingWhitespace&&X.test(l)&&p.insertBefore(b.createTextNode(X.exec(l)[0]),p.firstChild),l=p.childNodes,p&&(p.parentNode.removeChild(p),q.length>0&&(r=q[q.length-1],r&&r.parentNode&&r.parentNode.removeChild(r)))}var u;if(!f.support.appendChecked)if(l[0]&&typeof (u=l.length)=="number")for(i=0;i<u;i++)bn(l[i]);else bn(l);l.nodeType?j.push(l):j=f.merge(j,l)}if(d){g=function(a){return!a.type||be.test(a.type)};for(k=0;j[k];k++){h=j[k];if(e&&f.nodeName(h,"script")&&(!h.type||be.test(h.type)))e.push(h.parentNode?h.parentNode.removeChild(h):h);else{if(h.nodeType===1){var v=f.grep(h.getElementsByTagName("script"),g);j.splice.apply(j,[k+1,0].concat(v))}d.appendChild(h)}}}return j},cleanData:function(a){var b,c,d=f.cache,e=f.event.special,g=f.support.deleteExpando;for(var h=0,i;(i=a[h])!=null;h++){if(i.nodeName&&f.noData[i.nodeName.toLowerCase()])continue;c=i[f.expando];if(c){b=d[c];if(b&&b.events){for(var j in b.events)e[j]?f.event.remove(i,j):f.removeEvent(i,j,b.handle);b.handle&&(b.handle.elem=null)}g?delete i[f.expando]:i.removeAttribute&&i.removeAttribute(f.expando),delete d[c]}}}});var bp=/alpha\([^)]*\)/i,bq=/opacity=([^)]*)/,br=/([A-Z]|^ms)/g,bs=/^[\-+]?(?:\d*\.)?\d+$/i,bt=/^-?(?:\d*\.)?\d+(?!px)[^\d\s]+$/i,bu=/^([\-+])=([\-+.\de]+)/,bv=/^margin/,bw={position:"absolute",visibility:"hidden",display:"block"},bx=["Top","Right","Bottom","Left"],by,bz,bA;f.fn.css=function(a,c){return f.access(this,function(a,c,d){return d!==b?f.style(a,c,d):f.css(a,c)},a,c,arguments.length>1)},f.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=by(a,"opacity");return c===""?"1":c}return a.style.opacity}}},cssNumber:{fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":f.support.cssFloat?"cssFloat":"styleFloat"},style:function(a,c,d,e){if(!!a&&a.nodeType!==3&&a.nodeType!==8&&!!a.style){var g,h,i=f.camelCase(c),j=a.style,k=f.cssHooks[i];c=f.cssProps[i]||i;if(d===b){if(k&&"get"in k&&(g=k.get(a,!1,e))!==b)return g;return j[c]}h=typeof d,h==="string"&&(g=bu.exec(d))&&(d=+(g[1]+1)*+g[2]+parseFloat(f.css(a,c)),h="number");if(d==null||h==="number"&&isNaN(d))return;h==="number"&&!f.cssNumber[i]&&(d+="px");if(!k||!("set"in k)||(d=k.set(a,d))!==b)try{j[c]=d}catch(l){}}},css:function(a,c,d){var e,g;c=f.camelCase(c),g=f.cssHooks[c],c=f.cssProps[c]||c,c==="cssFloat"&&(c="float");if(g&&"get"in g&&(e=g.get(a,!0,d))!==b)return e;if(by)return by(a,c)},swap:function(a,b,c){var d={},e,f;for(f in b)d[f]=a.style[f],a.style[f]=b[f];e=c.call(a);for(f in b)a.style[f]=d[f];return e}}),f.curCSS=f.css,c.defaultView&&c.defaultView.getComputedStyle&&(bz=function(a,b){var c,d,e,g,h=a.style;b=b.replace(br,"-$1").toLowerCase(),(d=a.ownerDocument.defaultView)&&(e=d.getComputedStyle(a,null))&&(c=e.getPropertyValue(b),c===""&&!f.contains(a.ownerDocument.documentElement,a)&&(c=f.style(a,b))),!f.support.pixelMargin&&e&&bv.test(b)&&bt.test(c)&&(g=h.width,h.width=c,c=e.width,h.width=g);return c}),c.documentElement.currentStyle&&(bA=function(a,b){var c,d,e,f=a.currentStyle&&a.currentStyle[b],g=a.style;f==null&&g&&(e=g[b])&&(f=e),bt.test(f)&&(c=g.left,d=a.runtimeStyle&&a.runtimeStyle.left,d&&(a.runtimeStyle.left=a.currentStyle.left),g.left=b==="fontSize"?"1em":f,f=g.pixelLeft+"px",g.left=c,d&&(a.runtimeStyle.left=d));return f===""?"auto":f}),by=bz||bA,f.each(["height","width"],function(a,b){f.cssHooks[b]={get:function(a,c,d){if(c)return a.offsetWidth!==0?bB(a,b,d):f.swap(a,bw,function(){return bB(a,b,d)})},set:function(a,b){return bs.test(b)?b+"px":b}}}),f.support.opacity||(f.cssHooks.opacity={get:function(a,b){return bq.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle,e=f.isNumeric(b)?"alpha(opacity="+b*100+")":"",g=d&&d.filter||c.filter||"";c.zoom=1;if(b>=1&&f.trim(g.replace(bp,""))===""){c.removeAttribute("filter");if(d&&!d.filter)return}c.filter=bp.test(g)?g.replace(bp,e):g+" "+e}}),f(function(){f.support.reliableMarginRight||(f.cssHooks.marginRight={get:function(a,b){return f.swap(a,{display:"inline-block"},function(){return b?by(a,"margin-right"):a.style.marginRight})}})}),f.expr&&f.expr.filters&&(f.expr.filters.hidden=function(a){var b=a.offsetWidth,c=a.offsetHeight;return b===0&&c===0||!f.support.reliableHiddenOffsets&&(a.style&&a.style.display||f.css(a,"display"))==="none"},f.expr.filters.visible=function(a){return!f.expr.filters.hidden(a)}),f.each({margin:"",padding:"",border:"Width"},function(a,b){f.cssHooks[a+b]={expand:function(c){var d,e=typeof c=="string"?c.split(" "):[c],f={};for(d=0;d<4;d++)f[a+bx[d]+b]=e[d]||e[d-2]||e[0];return f}}});var bC=/%20/g,bD=/\[\]$/,bE=/\r?\n/g,bF=/#.*$/,bG=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,bH=/^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,bI=/^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,bJ=/^(?:GET|HEAD)$/,bK=/^\/\//,bL=/\?/,bM=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,bN=/^(?:select|textarea)/i,bO=/\s+/,bP=/([?&])_=[^&]*/,bQ=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,bR=f.fn.load,bS={},bT={},bU,bV,bW=["*/"]+["*"];try{bU=e.href}catch(bX){bU=c.createElement("a"),bU.href="",bU=bU.href}bV=bQ.exec(bU.toLowerCase())||[],f.fn.extend({load:function(a,c,d){if(typeof a!="string"&&bR)return bR.apply(this,arguments);if(!this.length)return this;var e=a.indexOf(" ");if(e>=0){var g=a.slice(e,a.length);a=a.slice(0,e)}var h="GET";c&&(f.isFunction(c)?(d=c,c=b):typeof c=="object"&&(c=f.param(c,f.ajaxSettings.traditional),h="POST"));var i=this;f.ajax({url:a,type:h,dataType:"html",data:c,complete:function(a,b,c){c=a.responseText,a.isResolved()&&(a.done(function(a){c=a}),i.html(g?f("<div>").append(c.replace(bM,"")).find(g):c)),d&&i.each(d,[c,b,a])}});return this},serialize:function(){return f.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?f.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||bN.test(this.nodeName)||bH.test(this.type))}).map(function(a,b){var c=f(this).val();return c==null?null:f.isArray(c)?f.map(c,function(a,c){return{name:b.name,value:a.replace(bE,"\r\n")}}):{name:b.name,value:c.replace(bE,"\r\n")}}).get()}}),f.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){f.fn[b]=function(a){return this.on(b,a)}}),f.each(["get","post"],function(a,c){f[c]=function(a,d,e,g){f.isFunction(d)&&(g=g||e,e=d,d=b);return f.ajax({type:c,url:a,data:d,success:e,dataType:g})}}),f.extend({getScript:function(a,c){return f.get(a,b,c,"script")},getJSON:function(a,b,c){return f.get(a,b,c,"json")},ajaxSetup:function(a,b){b?b$(a,f.ajaxSettings):(b=a,a=f.ajaxSettings),b$(a,b);return a},ajaxSettings:{url:bU,isLocal:bI.test(bV[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded; charset=UTF-8",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":bW},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":a.String,"text html":!0,"text json":f.parseJSON,"text xml":f.parseXML},flatOptions:{context:!0,url:!0}},ajaxPrefilter:bY(bS),ajaxTransport:bY(bT),ajax:function(a,c){function w(a,c,l,m){if(s!==2){s=2,q&&clearTimeout(q),p=b,n=m||"",v.readyState=a>0?4:0;var o,r,u,w=c,x=l?ca(d,v,l):b,y,z;if(a>=200&&a<300||a===304){if(d.ifModified){if(y=v.getResponseHeader("Last-Modified"))f.lastModified[k]=y;if(z=v.getResponseHeader("Etag"))f.etag[k]=z}if(a===304)w="notmodified",o=!0;else try{r=cb(d,x),w="success",o=!0}catch(A){w="parsererror",u=A}}else{u=w;if(!w||a)w="error",a<0&&(a=0)}v.status=a,v.statusText=""+(c||w),o?h.resolveWith(e,[r,w,v]):h.rejectWith(e,[v,w,u]),v.statusCode(j),j=b,t&&g.trigger("ajax"+(o?"Success":"Error"),[v,d,o?r:u]),i.fireWith(e,[v,w]),t&&(g.trigger("ajaxComplete",[v,d]),--f.active||f.event.trigger("ajaxStop"))}}typeof a=="object"&&(c=a,a=b),c=c||{};var d=f.ajaxSetup({},c),e=d.context||d,g=e!==d&&(e.nodeType||e instanceof f)?f(e):f.event,h=f.Deferred(),i=f.Callbacks("once memory"),j=d.statusCode||{},k,l={},m={},n,o,p,q,r,s=0,t,u,v={readyState:0,setRequestHeader:function(a,b){if(!s){var c=a.toLowerCase();a=m[c]=m[c]||a,l[a]=b}return this},getAllResponseHeaders:function(){return s===2?n:null},getResponseHeader:function(a){var c;if(s===2){if(!o){o={};while(c=bG.exec(n))o[c[1].toLowerCase()]=c[2]}c=o[a.toLowerCase()]}return c===b?null:c},overrideMimeType:function(a){s||(d.mimeType=a);return this},abort:function(a){a=a||"abort",p&&p.abort(a),w(0,a);return this}};h.promise(v),v.success=v.done,v.error=v.fail,v.complete=i.add,v.statusCode=function(a){if(a){var b;if(s<2)for(b in a)j[b]=[j[b],a[b]];else b=a[v.status],v.then(b,b)}return this},d.url=((a||d.url)+"").replace(bF,"").replace(bK,bV[1]+"//"),d.dataTypes=f.trim(d.dataType||"*").toLowerCase().split(bO),d.crossDomain==null&&(r=bQ.exec(d.url.toLowerCase()),d.crossDomain=!(!r||r[1]==bV[1]&&r[2]==bV[2]&&(r[3]||(r[1]==="http:"?80:443))==(bV[3]||(bV[1]==="http:"?80:443)))),d.data&&d.processData&&typeof d.data!="string"&&(d.data=f.param(d.data,d.traditional)),bZ(bS,d,c,v);if(s===2)return!1;t=d.global,d.type=d.type.toUpperCase(),d.hasContent=!bJ.test(d.type),t&&f.active++===0&&f.event.trigger("ajaxStart");if(!d.hasContent){d.data&&(d.url+=(bL.test(d.url)?"&":"?")+d.data,delete d.data),k=d.url;if(d.cache===!1){var x=f.now(),y=d.url.replace(bP,"$1_="+x);d.url=y+(y===d.url?(bL.test(d.url)?"&":"?")+"_="+x:"")}}(d.data&&d.hasContent&&d.contentType!==!1||c.contentType)&&v.setRequestHeader("Content-Type",d.contentType),d.ifModified&&(k=k||d.url,f.lastModified[k]&&v.setRequestHeader("If-Modified-Since",f.lastModified[k]),f.etag[k]&&v.setRequestHeader("If-None-Match",f.etag[k])),v.setRequestHeader("Accept",d.dataTypes[0]&&d.accepts[d.dataTypes[0]]?d.accepts[d.dataTypes[0]]+(d.dataTypes[0]!=="*"?", "+bW+"; q=0.01":""):d.accepts["*"]);for(u in d.headers)v.setRequestHeader(u,d.headers[u]);if(d.beforeSend&&(d.beforeSend.call(e,v,d)===!1||s===2)){v.abort();return!1}for(u in{success:1,error:1,complete:1})v[u](d[u]);p=bZ(bT,d,c,v);if(!p)w(-1,"No Transport");else{v.readyState=1,t&&g.trigger("ajaxSend",[v,d]),d.async&&d.timeout>0&&(q=setTimeout(function(){v.abort("timeout")},d.timeout));try{s=1,p.send(l,w)}catch(z){if(s<2)w(-1,z);else throw z}}return v},param:function(a,c){var d=[],e=function(a,b){b=f.isFunction(b)?b():b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};c===b&&(c=f.ajaxSettings.traditional);if(f.isArray(a)||a.jquery&&!f.isPlainObject(a))f.each(a,function(){e(this.name,this.value)});else for(var g in a)b_(g,a[g],c,e);return d.join("&").replace(bC,"+")}}),f.extend({active:0,lastModified:{},etag:{}});var cc=f.now(),cd=/(\=)\?(&|$)|\?\?/i;f.ajaxSetup({jsonp:"callback",jsonpCallback:function(){return f.expando+"_"+cc++}}),f.ajaxPrefilter("json jsonp",function(b,c,d){var e=typeof b.data=="string"&&/^application\/x\-www\-form\-urlencoded/.test(b.contentType);if(b.dataTypes[0]==="jsonp"||b.jsonp!==!1&&(cd.test(b.url)||e&&cd.test(b.data))){var g,h=b.jsonpCallback=f.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,i=a[h],j=b.url,k=b.data,l="$1"+h+"$2";b.jsonp!==!1&&(j=j.replace(cd,l),b.url===j&&(e&&(k=k.replace(cd,l)),b.data===k&&(j+=(/\?/.test(j)?"&":"?")+b.jsonp+"="+h))),b.url=j,b.data=k,a[h]=function(a){g=[a]},d.always(function(){a[h]=i,g&&f.isFunction(i)&&a[h](g[0])}),b.converters["script json"]=function(){g||f.error(h+" was not called");return g[0]},b.dataTypes[0]="json";return"script"}}),f.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(a){f.globalEval(a);return a}}}),f.ajaxPrefilter("script",function(a){a.cache===b&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),f.ajaxTransport("script",function(a){if(a.crossDomain){var d,e=c.head||c.getElementsByTagName("head")[0]||c.documentElement;return{send:function(f,g){d=c.createElement("script"),d.async="async",a.scriptCharset&&(d.charset=a.scriptCharset),d.src=a.url,d.onload=d.onreadystatechange=function(a,c){if(c||!d.readyState||/loaded|complete/.test(d.readyState))d.onload=d.onreadystatechange=null,e&&d.parentNode&&e.removeChild(d),d=b,c||g(200,"success")},e.insertBefore(d,e.firstChild)},abort:function(){d&&d.onload(0,1)}}}});var ce=a.ActiveXObject?function(){for(var a in cg)cg[a](0,1)}:!1,cf=0,cg;f.ajaxSettings.xhr=a.ActiveXObject?function(){return!this.isLocal&&ch()||ci()}:ch,function(a){f.extend(f.support,{ajax:!!a,cors:!!a&&"withCredentials"in a})}(f.ajaxSettings.xhr()),f.support.ajax&&f.ajaxTransport(function(c){if(!c.crossDomain||f.support.cors){var d;return{send:function(e,g){var h=c.xhr(),i,j;c.username?h.open(c.type,c.url,c.async,c.username,c.password):h.open(c.type,c.url,c.async);if(c.xhrFields)for(j in c.xhrFields)h[j]=c.xhrFields[j];c.mimeType&&h.overrideMimeType&&h.overrideMimeType(c.mimeType),!c.crossDomain&&!e["X-Requested-With"]&&(e["X-Requested-With"]="XMLHttpRequest");try{for(j in e)h.setRequestHeader(j,e[j])}catch(k){}h.send(c.hasContent&&c.data||null),d=function(a,e){var j,k,l,m,n;try{if(d&&(e||h.readyState===4)){d=b,i&&(h.onreadystatechange=f.noop,ce&&delete cg[i]);if(e)h.readyState!==4&&h.abort();else{j=h.status,l=h.getAllResponseHeaders(),m={},n=h.responseXML,n&&n.documentElement&&(m.xml=n);try{m.text=h.responseText}catch(a){}try{k=h.statusText}catch(o){k=""}!j&&c.isLocal&&!c.crossDomain?j=m.text?200:404:j===1223&&(j=204)}}}catch(p){e||g(-1,p)}m&&g(j,k,m,l)},!c.async||h.readyState===4?d():(i=++cf,ce&&(cg||(cg={},f(a).unload(ce)),cg[i]=d),h.onreadystatechange=d)},abort:function(){d&&d(0,1)}}}});var cj={},ck,cl,cm=/^(?:toggle|show|hide)$/,cn=/^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,co,cp=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]],cq;f.fn.extend({show:function(a,b,c){var d,e;if(a||a===0)return this.animate(ct("show",3),a,b,c);for(var g=0,h=this.length;g<h;g++)d=this[g],d.style&&(e=d.style.display,!f._data(d,"olddisplay")&&e==="none"&&(e=d.style.display=""),(e===""&&f.css(d,"display")==="none"||!f.contains(d.ownerDocument.documentElement,d))&&f._data(d,"olddisplay",cu(d.nodeName)));for(g=0;g<h;g++){d=this[g];if(d.style){e=d.style.display;if(e===""||e==="none")d.style.display=f._data(d,"olddisplay")||""}}return this},hide:function(a,b,c){if(a||a===0)return this.animate(ct("hide",3),a,b,c);var d,e,g=0,h=this.length;for(;g<h;g++)d=this[g],d.style&&(e=f.css(d,"display"),e!=="none"&&!f._data(d,"olddisplay")&&f._data(d,"olddisplay",e));for(g=0;g<h;g++)this[g].style&&(this[g].style.display="none");return this},_toggle:f.fn.toggle,toggle:function(a,b,c){var d=typeof a=="boolean";f.isFunction(a)&&f.isFunction(b)?this._toggle.apply(this,arguments):a==null||d?this.each(function(){var b=d?a:f(this).is(":hidden");f(this)[b?"show":"hide"]()}):this.animate(ct("toggle",3),a,b,c);return this},fadeTo:function(a,b,c,d){return this.filter(":hidden").css("opacity",0).show().end().animate({opacity:b},a,c,d)},animate:function(a,b,c,d){function g(){e.queue===!1&&f._mark(this);var b=f.extend({},e),c=this.nodeType===1,d=c&&f(this).is(":hidden"),g,h,i,j,k,l,m,n,o,p,q;b.animatedProperties={};for(i in a){g=f.camelCase(i),i!==g&&(a[g]=a[i],delete a[i]);if((k=f.cssHooks[g])&&"expand"in k){l=k.expand(a[g]),delete a[g];for(i in l)i in a||(a[i]=l[i])}}for(g in a){h=a[g],f.isArray(h)?(b.animatedProperties[g]=h[1],h=a[g]=h[0]):b.animatedProperties[g]=b.specialEasing&&b.specialEasing[g]||b.easing||"swing";if(h==="hide"&&d||h==="show"&&!d)return b.complete.call(this);c&&(g==="height"||g==="width")&&(b.overflow=[this.style.overflow,this.style.overflowX,this.style.overflowY],f.css(this,"display")==="inline"&&f.css(this,"float")==="none"&&(!f.support.inlineBlockNeedsLayout||cu(this.nodeName)==="inline"?this.style.display="inline-block":this.style.zoom=1))}b.overflow!=null&&(this.style.overflow="hidden");for(i in a)j=new f.fx(this,b,i),h=a[i],cm.test(h)?(q=f._data(this,"toggle"+i)||(h==="toggle"?d?"show":"hide":0),q?(f._data(this,"toggle"+i,q==="show"?"hide":"show"),j[q]()):j[h]()):(m=cn.exec(h),n=j.cur(),m?(o=parseFloat(m[2]),p=m[3]||(f.cssNumber[i]?"":"px"),p!=="px"&&(f.style(this,i,(o||1)+p),n=(o||1)/j.cur()*n,f.style(this,i,n+p)),m[1]&&(o=(m[1]==="-="?-1:1)*o+n),j.custom(n,o,p)):j.custom(n,h,""));return!0}var e=f.speed(b,c,d);if(f.isEmptyObject(a))return this.each(e.complete,[!1]);a=f.extend({},a);return e.queue===!1?this.each(g):this.queue(e.queue,g)},stop:function(a,c,d){typeof a!="string"&&(d=c,c=a,a=b),c&&a!==!1&&this.queue(a||"fx",[]);return this.each(function(){function h(a,b,c){var e=b[c];f.removeData(a,c,!0),e.stop(d)}var b,c=!1,e=f.timers,g=f._data(this);d||f._unmark(!0,this);if(a==null)for(b in g)g[b]&&g[b].stop&&b.indexOf(".run")===b.length-4&&h(this,g,b);else g[b=a+".run"]&&g[b].stop&&h(this,g,b);for(b=e.length;b--;)e[b].elem===this&&(a==null||e[b].queue===a)&&(d?e[b](!0):e[b].saveState(),c=!0,e.splice(b,1));(!d||!c)&&f.dequeue(this,a)})}}),f.each({slideDown:ct("show",1),slideUp:ct("hide",1),slideToggle:ct("toggle",1),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(a,b){f.fn[a]=function(a,c,d){return this.animate(b,a,c,d)}}),f.extend({speed:function(a,b,c){var d=a&&typeof a=="object"?f.extend({},a):{complete:c||!c&&b||f.isFunction(a)&&a,duration:a,easing:c&&b||b&&!f.isFunction(b)&&b};d.duration=f.fx.off?0:typeof d.duration=="number"?d.duration:d.duration in f.fx.speeds?f.fx.speeds[d.duration]:f.fx.speeds._default;if(d.queue==null||d.queue===!0)d.queue="fx";d.old=d.complete,d.complete=function(a){f.isFunction(d.old)&&d.old.call(this),d.queue?f.dequeue(this,d.queue):a!==!1&&f._unmark(this)};return d},easing:{linear:function(a){return a},swing:function(a){return-Math.cos(a*Math.PI)/2+.5}},timers:[],fx:function(a,b,c){this.options=b,this.elem=a,this.prop=c,b.orig=b.orig||{}}}),f.fx.prototype={update:function(){this.options.step&&this.options.step.call(this.elem,this.now,this),(f.fx.step[this.prop]||f.fx.step._default)(this)},cur:function(){if(this.elem[this.prop]!=null&&(!this.elem.style||this.elem.style[this.prop]==null))return this.elem[this.prop];var a,b=f.css(this.elem,this.prop);return isNaN(a=parseFloat(b))?!b||b==="auto"?0:b:a},custom:function(a,c,d){function h(a){return e.step(a)}var e=this,g=f.fx;this.startTime=cq||cr(),this.end=c,this.now=this.start=a,this.pos=this.state=0,this.unit=d||this.unit||(f.cssNumber[this.prop]?"":"px"),h.queue=this.options.queue,h.elem=this.elem,h.saveState=function(){f._data(e.elem,"fxshow"+e.prop)===b&&(e.options.hide?f._data(e.elem,"fxshow"+e.prop,e.start):e.options.show&&f._data(e.elem,"fxshow"+e.prop,e.end))},h()&&f.timers.push(h)&&!co&&(co=setInterval(g.tick,g.interval))},show:function(){var a=f._data(this.elem,"fxshow"+this.prop);this.options.orig[this.prop]=a||f.style(this.elem,this.prop),this.options.show=!0,a!==b?this.custom(this.cur(),a):this.custom(this.prop==="width"||this.prop==="height"?1:0,this.cur()),f(this.elem).show()},hide:function(){this.options.orig[this.prop]=f._data(this.elem,"fxshow"+this.prop)||f.style(this.elem,this.prop),this.options.hide=!0,this.custom(this.cur(),0)},step:function(a){var b,c,d,e=cq||cr(),g=!0,h=this.elem,i=this.options;if(a||e>=i.duration+this.startTime){this.now=this.end,this.pos=this.state=1,this.update(),i.animatedProperties[this.prop]=!0;for(b in i.animatedProperties)i.animatedProperties[b]!==!0&&(g=!1);if(g){i.overflow!=null&&!f.support.shrinkWrapBlocks&&f.each(["","X","Y"],function(a,b){h.style["overflow"+b]=i.overflow[a]}),i.hide&&f(h).hide();if(i.hide||i.show)for(b in i.animatedProperties)f.style(h,b,i.orig[b]),f.removeData(h,"fxshow"+b,!0),f.removeData(h,"toggle"+b,!0);d=i.complete,d&&(i.complete=!1,d.call(h))}return!1}i.duration==Infinity?this.now=e:(c=e-this.startTime,this.state=c/i.duration,this.pos=f.easing[i.animatedProperties[this.prop]](this.state,c,0,1,i.duration),this.now=this.start+(this.end-this.start)*this.pos),this.update();return!0}},f.extend(f.fx,{tick:function(){var a,b=f.timers,c=0;for(;c<b.length;c++)a=b[c],!a()&&b[c]===a&&b.splice(c--,1);b.length||f.fx.stop()},interval:13,stop:function(){clearInterval(co),co=null},speeds:{slow:600,fast:200,_default:400},step:{opacity:function(a){f.style(a.elem,"opacity",a.now)},_default:function(a){a.elem.style&&a.elem.style[a.prop]!=null?a.elem.style[a.prop]=a.now+a.unit:a.elem[a.prop]=a.now}}}),f.each(cp.concat.apply([],cp),function(a,b){b.indexOf("margin")&&(f.fx.step[b]=function(a){f.style(a.elem,b,Math.max(0,a.now)+a.unit)})}),f.expr&&f.expr.filters&&(f.expr.filters.animated=function(a){return f.grep(f.timers,function(b){return a===b.elem}).length});var cv,cw=/^t(?:able|d|h)$/i,cx=/^(?:body|html)$/i;"getBoundingClientRect"in c.documentElement?cv=function(a,b,c,d){try{d=a.getBoundingClientRect()}catch(e){}if(!d||!f.contains(c,a))return d?{top:d.top,left:d.left}:{top:0,left:0};var g=b.body,h=cy(b),i=c.clientTop||g.clientTop||0,j=c.clientLeft||g.clientLeft||0,k=h.pageYOffset||f.support.boxModel&&c.scrollTop||g.scrollTop,l=h.pageXOffset||f.support.boxModel&&c.scrollLeft||g.scrollLeft,m=d.top+k-i,n=d.left+l-j;return{top:m,left:n}}:cv=function(a,b,c){var d,e=a.offsetParent,g=a,h=b.body,i=b.defaultView,j=i?i.getComputedStyle(a,null):a.currentStyle,k=a.offsetTop,l=a.offsetLeft;while((a=a.parentNode)&&a!==h&&a!==c){if(f.support.fixedPosition&&j.position==="fixed")break;d=i?i.getComputedStyle(a,null):a.currentStyle,k-=a.scrollTop,l-=a.scrollLeft,a===e&&(k+=a.offsetTop,l+=a.offsetLeft,f.support.doesNotAddBorder&&(!f.support.doesAddBorderForTableAndCells||!cw.test(a.nodeName))&&(k+=parseFloat(d.borderTopWidth)||0,l+=parseFloat(d.borderLeftWidth)||0),g=e,e=a.offsetParent),f.support.subtractsBorderForOverflowNotVisible&&d.overflow!=="visible"&&(k+=parseFloat(d.borderTopWidth)||0,l+=parseFloat(d.borderLeftWidth)||0),j=d}if(j.position==="relative"||j.position==="static")k+=h.offsetTop,l+=h.offsetLeft;f.support.fixedPosition&&j.position==="fixed"&&(k+=Math.max(c.scrollTop,h.scrollTop),l+=Math.max(c.scrollLeft,h.scrollLeft));return{top:k,left:l}},f.fn.offset=function(a){if(arguments.length)return a===b?this:this.each(function(b){f.offset.setOffset(this,a,b)});var c=this[0],d=c&&c.ownerDocument;if(!d)return null;if(c===d.body)return f.offset.bodyOffset(c);return cv(c,d,d.documentElement)},f.offset={bodyOffset:function(a){var b=a.offsetTop,c=a.offsetLeft;f.support.doesNotIncludeMarginInBodyOffset&&(b+=parseFloat(f.css(a,"marginTop"))||0,c+=parseFloat(f.css(a,"marginLeft"))||0);return{top:b,left:c}},setOffset:function(a,b,c){var d=f.css(a,"position");d==="static"&&(a.style.position="relative");var e=f(a),g=e.offset(),h=f.css(a,"top"),i=f.css(a,"left"),j=(d==="absolute"||d==="fixed")&&f.inArray("auto",[h,i])>-1,k={},l={},m,n;j?(l=e.position(),m=l.top,n=l.left):(m=parseFloat(h)||0,n=parseFloat(i)||0),f.isFunction(b)&&(b=b.call(a,c,g)),b.top!=null&&(k.top=b.top-g.top+m),b.left!=null&&(k.left=b.left-g.left+n),"using"in b?b.using.call(a,k):e.css(k)}},f.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),c=this.offset(),d=cx.test(b[0].nodeName)?{top:0,left:0}:b.offset();c.top-=parseFloat(f.css(a,"marginTop"))||0,c.left-=parseFloat(f.css(a,"marginLeft"))||0,d.top+=parseFloat(f.css(b[0],"borderTopWidth"))||0,d.left+=parseFloat(f.css(b[0],"borderLeftWidth"))||0;return{top:c.top-d.top,left:c.left-d.left}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||c.body;while(a&&!cx.test(a.nodeName)&&f.css(a,"position")==="static")a=a.offsetParent;return a})}}),f.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(a,c){var d=/Y/.test(c);f.fn[a]=function(e){return f.access(this,function(a,e,g){var h=cy(a);if(g===b)return h?c in h?h[c]:f.support.boxModel&&h.document.documentElement[e]||h.document.body[e]:a[e];h?h.scrollTo(d?f(h).scrollLeft():g,d?g:f(h).scrollTop()):a[e]=g},a,e,arguments.length,null)}}),f.each({Height:"height",Width:"width"},function(a,c){var d="client"+a,e="scroll"+a,g="offset"+a;f.fn["inner"+a]=function(){var a=this[0];return a?a.style?parseFloat(f.css(a,c,"padding")):this[c]():null},f.fn["outer"+a]=function(a){var b=this[0];return b?b.style?parseFloat(f.css(b,c,a?"margin":"border")):this[c]():null},f.fn[c]=function(a){return f.access(this,function(a,c,h){var i,j,k,l;if(f.isWindow(a)){i=a.document,j=i.documentElement[d];return f.support.boxModel&&j||i.body&&i.body[d]||j}if(a.nodeType===9){i=a.documentElement;if(i[d]>=i[e])return i[d];return Math.max(a.body[e],i[e],a.body[g],i[g])}if(h===b){k=f.css(a,c),l=parseFloat(k);return f.isNumeric(l)?l:k}f(a).css(c,h)},c,a,arguments.length,null)}}),a.jQuery=a.$=f,typeof define=="function"&&define.amd&&define.amd.jQuery&&define("jquery",[],function(){return f})})(window);
+/*! jQuery v1.8.3 jquery.com | jquery.org/license */
+(function(e,t){function _(e){var t=M[e]={};return v.each(e.split(y),function(e,n){t[n]=!0}),t}function H(e,n,r){if(r===t&&e.nodeType===1){var i="data-"+n.replace(P,"-$1").toLowerCase();r=e.getAttribute(i);if(typeof r=="string"){try{r=r==="true"?!0:r==="false"?!1:r==="null"?null:+r+""===r?+r:D.test(r)?v.parseJSON(r):r}catch(s){}v.data(e,n,r)}else r=t}return r}function B(e){var t;for(t in e){if(t==="data"&&v.isEmptyObject(e[t]))continue;if(t!=="toJSON")return!1}return!0}function et(){return!1}function tt(){return!0}function ut(e){return!e||!e.parentNode||e.parentNode.nodeType===11}function at(e,t){do e=e[t];while(e&&e.nodeType!==1);return e}function ft(e,t,n){t=t||0;if(v.isFunction(t))return v.grep(e,function(e,r){var i=!!t.call(e,r,e);return i===n});if(t.nodeType)return v.grep(e,function(e,r){return e===t===n});if(typeof t=="string"){var r=v.grep(e,function(e){return e.nodeType===1});if(it.test(t))return v.filter(t,r,!n);t=v.filter(t,r)}return v.grep(e,function(e,r){return v.inArray(e,t)>=0===n})}function lt(e){var t=ct.split("|"),n=e.createDocumentFragment();if(n.createElement)while(t.length)n.createElement(t.pop());return n}function Lt(e,t){return e.getElementsByTagName(t)[0]||e.appendChild(e.ownerDocument.createElement(t))}function At(e,t){if(t.nodeType!==1||!v.hasData(e))return;var n,r,i,s=v._data(e),o=v._data(t,s),u=s.events;if(u){delete o.handle,o.events={};for(n in u)for(r=0,i=u[n].length;r<i;r++)v.event.add(t,n,u[n][r])}o.data&&(o.data=v.extend({},o.data))}function Ot(e,t){var n;if(t.nodeType!==1)return;t.clearAttributes&&t.clearAttributes(),t.mergeAttributes&&t.mergeAttributes(e),n=t.nodeName.toLowerCase(),n==="object"?(t.parentNode&&(t.outerHTML=e.outerHTML),v.support.html5Clone&&e.innerHTML&&!v.trim(t.innerHTML)&&(t.innerHTML=e.innerHTML)):n==="input"&&Et.test(e.type)?(t.defaultChecked=t.checked=e.checked,t.value!==e.value&&(t.value=e.value)):n==="option"?t.selected=e.defaultSelected:n==="input"||n==="textarea"?t.defaultValue=e.defaultValue:n==="script"&&t.text!==e.text&&(t.text=e.text),t.removeAttribute(v.expando)}function Mt(e){return typeof e.getElementsByTagName!="undefined"?e.getElementsByTagName("*"):typeof e.querySelectorAll!="undefined"?e.querySelectorAll("*"):[]}function _t(e){Et.test(e.type)&&(e.defaultChecked=e.checked)}function Qt(e,t){if(t in e)return t;var n=t.charAt(0).toUpperCase()+t.slice(1),r=t,i=Jt.length;while(i--){t=Jt[i]+n;if(t in e)return t}return r}function Gt(e,t){return e=t||e,v.css(e,"display")==="none"||!v.contains(e.ownerDocument,e)}function Yt(e,t){var n,r,i=[],s=0,o=e.length;for(;s<o;s++){n=e[s];if(!n.style)continue;i[s]=v._data(n,"olddisplay"),t?(!i[s]&&n.style.display==="none"&&(n.style.display=""),n.style.display===""&&Gt(n)&&(i[s]=v._data(n,"olddisplay",nn(n.nodeName)))):(r=Dt(n,"display"),!i[s]&&r!=="none"&&v._data(n,"olddisplay",r))}for(s=0;s<o;s++){n=e[s];if(!n.style)continue;if(!t||n.style.display==="none"||n.style.display==="")n.style.display=t?i[s]||"":"none"}return e}function Zt(e,t,n){var r=Rt.exec(t);return r?Math.max(0,r[1]-(n||0))+(r[2]||"px"):t}function en(e,t,n,r){var i=n===(r?"border":"content")?4:t==="width"?1:0,s=0;for(;i<4;i+=2)n==="margin"&&(s+=v.css(e,n+$t[i],!0)),r?(n==="content"&&(s-=parseFloat(Dt(e,"padding"+$t[i]))||0),n!=="margin"&&(s-=parseFloat(Dt(e,"border"+$t[i]+"Width"))||0)):(s+=parseFloat(Dt(e,"padding"+$t[i]))||0,n!=="padding"&&(s+=parseFloat(Dt(e,"border"+$t[i]+"Width"))||0));return s}function tn(e,t,n){var r=t==="width"?e.offsetWidth:e.offsetHeight,i=!0,s=v.support.boxSizing&&v.css(e,"boxSizing")==="border-box";if(r<=0||r==null){r=Dt(e,t);if(r<0||r==null)r=e.style[t];if(Ut.test(r))return r;i=s&&(v.support.boxSizingReliable||r===e.style[t]),r=parseFloat(r)||0}return r+en(e,t,n||(s?"border":"content"),i)+"px"}function nn(e){if(Wt[e])return Wt[e];var t=v("<"+e+">").appendTo(i.body),n=t.css("display");t.remove();if(n==="none"||n===""){Pt=i.body.appendChild(Pt||v.extend(i.createElement("iframe"),{frameBorder:0,width:0,height:0}));if(!Ht||!Pt.createElement)Ht=(Pt.contentWindow||Pt.contentDocument).document,Ht.write("<!doctype html><html><body>"),Ht.close();t=Ht.body.appendChild(Ht.createElement(e)),n=Dt(t,"display"),i.body.removeChild(Pt)}return Wt[e]=n,n}function fn(e,t,n,r){var i;if(v.isArray(t))v.each(t,function(t,i){n||sn.test(e)?r(e,i):fn(e+"["+(typeof i=="object"?t:"")+"]",i,n,r)});else if(!n&&v.type(t)==="object")for(i in t)fn(e+"["+i+"]",t[i],n,r);else r(e,t)}function Cn(e){return function(t,n){typeof t!="string"&&(n=t,t="*");var r,i,s,o=t.toLowerCase().split(y),u=0,a=o.length;if(v.isFunction(n))for(;u<a;u++)r=o[u],s=/^\+/.test(r),s&&(r=r.substr(1)||"*"),i=e[r]=e[r]||[],i[s?"unshift":"push"](n)}}function kn(e,n,r,i,s,o){s=s||n.dataTypes[0],o=o||{},o[s]=!0;var u,a=e[s],f=0,l=a?a.length:0,c=e===Sn;for(;f<l&&(c||!u);f++)u=a[f](n,r,i),typeof u=="string"&&(!c||o[u]?u=t:(n.dataTypes.unshift(u),u=kn(e,n,r,i,u,o)));return(c||!u)&&!o["*"]&&(u=kn(e,n,r,i,"*",o)),u}function Ln(e,n){var r,i,s=v.ajaxSettings.flatOptions||{};for(r in n)n[r]!==t&&((s[r]?e:i||(i={}))[r]=n[r]);i&&v.extend(!0,e,i)}function An(e,n,r){var i,s,o,u,a=e.contents,f=e.dataTypes,l=e.responseFields;for(s in l)s in r&&(n[l[s]]=r[s]);while(f[0]==="*")f.shift(),i===t&&(i=e.mimeType||n.getResponseHeader("content-type"));if(i)for(s in a)if(a[s]&&a[s].test(i)){f.unshift(s);break}if(f[0]in r)o=f[0];else{for(s in r){if(!f[0]||e.converters[s+" "+f[0]]){o=s;break}u||(u=s)}o=o||u}if(o)return o!==f[0]&&f.unshift(o),r[o]}function On(e,t){var n,r,i,s,o=e.dataTypes.slice(),u=o[0],a={},f=0;e.dataFilter&&(t=e.dataFilter(t,e.dataType));if(o[1])for(n in e.converters)a[n.toLowerCase()]=e.converters[n];for(;i=o[++f];)if(i!=="*"){if(u!=="*"&&u!==i){n=a[u+" "+i]||a["* "+i];if(!n)for(r in a){s=r.split(" ");if(s[1]===i){n=a[u+" "+s[0]]||a["* "+s[0]];if(n){n===!0?n=a[r]:a[r]!==!0&&(i=s[0],o.splice(f--,0,i));break}}}if(n!==!0)if(n&&e["throws"])t=n(t);else try{t=n(t)}catch(l){return{state:"parsererror",error:n?l:"No conversion from "+u+" to "+i}}}u=i}return{state:"success",data:t}}function Fn(){try{return new e.XMLHttpRequest}catch(t){}}function In(){try{return new e.ActiveXObject("Microsoft.XMLHTTP")}catch(t){}}function $n(){return setTimeout(function(){qn=t},0),qn=v.now()}function Jn(e,t){v.each(t,function(t,n){var r=(Vn[t]||[]).concat(Vn["*"]),i=0,s=r.length;for(;i<s;i++)if(r[i].call(e,t,n))return})}function Kn(e,t,n){var r,i=0,s=0,o=Xn.length,u=v.Deferred().always(function(){delete a.elem}),a=function(){var t=qn||$n(),n=Math.max(0,f.startTime+f.duration-t),r=n/f.duration||0,i=1-r,s=0,o=f.tweens.length;for(;s<o;s++)f.tweens[s].run(i);return u.notifyWith(e,[f,i,n]),i<1&&o?n:(u.resolveWith(e,[f]),!1)},f=u.promise({elem:e,props:v.extend({},t),opts:v.extend(!0,{specialEasing:{}},n),originalProperties:t,originalOptions:n,startTime:qn||$n(),duration:n.duration,tweens:[],createTween:function(t,n,r){var i=v.Tween(e,f.opts,t,n,f.opts.specialEasing[t]||f.opts.easing);return f.tweens.push(i),i},stop:function(t){var n=0,r=t?f.tweens.length:0;for(;n<r;n++)f.tweens[n].run(1);return t?u.resolveWith(e,[f,t]):u.rejectWith(e,[f,t]),this}}),l=f.props;Qn(l,f.opts.specialEasing);for(;i<o;i++){r=Xn[i].call(f,e,l,f.opts);if(r)return r}return Jn(f,l),v.isFunction(f.opts.start)&&f.opts.start.call(e,f),v.fx.timer(v.extend(a,{anim:f,queue:f.opts.queue,elem:e})),f.progress(f.opts.progress).done(f.opts.done,f.opts.complete).fail(f.opts.fail).always(f.opts.always)}function Qn(e,t){var n,r,i,s,o;for(n in e){r=v.camelCase(n),i=t[r],s=e[n],v.isArray(s)&&(i=s[1],s=e[n]=s[0]),n!==r&&(e[r]=s,delete e[n]),o=v.cssHooks[r];if(o&&"expand"in o){s=o.expand(s),delete e[r];for(n in s)n in e||(e[n]=s[n],t[n]=i)}else t[r]=i}}function Gn(e,t,n){var r,i,s,o,u,a,f,l,c,h=this,p=e.style,d={},m=[],g=e.nodeType&&Gt(e);n.queue||(l=v._queueHooks(e,"fx"),l.unqueued==null&&(l.unqueued=0,c=l.empty.fire,l.empty.fire=function(){l.unqueued||c()}),l.unqueued++,h.always(function(){h.always(function(){l.unqueued--,v.queue(e,"fx").length||l.empty.fire()})})),e.nodeType===1&&("height"in t||"width"in t)&&(n.overflow=[p.overflow,p.overflowX,p.overflowY],v.css(e,"display")==="inline"&&v.css(e,"float")==="none"&&(!v.support.inlineBlockNeedsLayout||nn(e.nodeName)==="inline"?p.display="inline-block":p.zoom=1)),n.overflow&&(p.overflow="hidden",v.support.shrinkWrapBlocks||h.done(function(){p.overflow=n.overflow[0],p.overflowX=n.overflow[1],p.overflowY=n.overflow[2]}));for(r in t){s=t[r];if(Un.exec(s)){delete t[r],a=a||s==="toggle";if(s===(g?"hide":"show"))continue;m.push(r)}}o=m.length;if(o){u=v._data(e,"fxshow")||v._data(e,"fxshow",{}),"hidden"in u&&(g=u.hidden),a&&(u.hidden=!g),g?v(e).show():h.done(function(){v(e).hide()}),h.done(function(){var t;v.removeData(e,"fxshow",!0);for(t in d)v.style(e,t,d[t])});for(r=0;r<o;r++)i=m[r],f=h.createTween(i,g?u[i]:0),d[i]=u[i]||v.style(e,i),i in u||(u[i]=f.start,g&&(f.end=f.start,f.start=i==="width"||i==="height"?1:0))}}function Yn(e,t,n,r,i){return new Yn.prototype.init(e,t,n,r,i)}function Zn(e,t){var n,r={height:e},i=0;t=t?1:0;for(;i<4;i+=2-t)n=$t[i],r["margin"+n]=r["padding"+n]=e;return t&&(r.opacity=r.width=e),r}function tr(e){return v.isWindow(e)?e:e.nodeType===9?e.defaultView||e.parentWindow:!1}var n,r,i=e.document,s=e.location,o=e.navigator,u=e.jQuery,a=e.$,f=Array.prototype.push,l=Array.prototype.slice,c=Array.prototype.indexOf,h=Object.prototype.toString,p=Object.prototype.hasOwnProperty,d=String.prototype.trim,v=function(e,t){return new v.fn.init(e,t,n)},m=/[\-+]?(?:\d*\.|)\d+(?:[eE][\-+]?\d+|)/.source,g=/\S/,y=/\s+/,b=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,w=/^(?:[^#<]*(<[\w\W]+>)[^>]*$|#([\w\-]*)$)/,E=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,S=/^[\],:{}\s]*$/,x=/(?:^|:|,)(?:\s*\[)+/g,T=/\\(?:["\\\/bfnrt]|u[\da-fA-F]{4})/g,N=/"[^"\\\r\n]*"|true|false|null|-?(?:\d\d*\.|)\d+(?:[eE][\-+]?\d+|)/g,C=/^-ms-/,k=/-([\da-z])/gi,L=function(e,t){return(t+"").toUpperCase()},A=function(){i.addEventListener?(i.removeEventListener("DOMContentLoaded",A,!1),v.ready()):i.readyState==="complete"&&(i.detachEvent("onreadystatechange",A),v.ready())},O={};v.fn=v.prototype={constructor:v,init:function(e,n,r){var s,o,u,a;if(!e)return this;if(e.nodeType)return this.context=this[0]=e,this.length=1,this;if(typeof e=="string"){e.charAt(0)==="<"&&e.charAt(e.length-1)===">"&&e.length>=3?s=[null,e,null]:s=w.exec(e);if(s&&(s[1]||!n)){if(s[1])return n=n instanceof v?n[0]:n,a=n&&n.nodeType?n.ownerDocument||n:i,e=v.parseHTML(s[1],a,!0),E.test(s[1])&&v.isPlainObject(n)&&this.attr.call(e,n,!0),v.merge(this,e);o=i.getElementById(s[2]);if(o&&o.parentNode){if(o.id!==s[2])return r.find(e);this.length=1,this[0]=o}return this.context=i,this.selector=e,this}return!n||n.jquery?(n||r).find(e):this.constructor(n).find(e)}return v.isFunction(e)?r.ready(e):(e.selector!==t&&(this.selector=e.selector,this.context=e.context),v.makeArray(e,this))},selector:"",jquery:"1.8.3",length:0,size:function(){return this.length},toArray:function(){return l.call(this)},get:function(e){return e==null?this.toArray():e<0?this[this.length+e]:this[e]},pushStack:function(e,t,n){var r=v.merge(this.constructor(),e);return r.prevObject=this,r.context=this.context,t==="find"?r.selector=this.selector+(this.selector?" ":"")+n:t&&(r.selector=this.selector+"."+t+"("+n+")"),r},each:function(e,t){return v.each(this,e,t)},ready:function(e){return v.ready.promise().done(e),this},eq:function(e){return e=+e,e===-1?this.slice(e):this.slice(e,e+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(l.apply(this,arguments),"slice",l.call(arguments).join(","))},map:function(e){return this.pushStack(v.map(this,function(t,n){return e.call(t,n,t)}))},end:function(){return this.prevObject||this.constructor(null)},push:f,sort:[].sort,splice:[].splice},v.fn.init.prototype=v.fn,v.extend=v.fn.extend=function(){var e,n,r,i,s,o,u=arguments[0]||{},a=1,f=arguments.length,l=!1;typeof u=="boolean"&&(l=u,u=arguments[1]||{},a=2),typeof u!="object"&&!v.isFunction(u)&&(u={}),f===a&&(u=this,--a);for(;a<f;a++)if((e=arguments[a])!=null)for(n in e){r=u[n],i=e[n];if(u===i)continue;l&&i&&(v.isPlainObject(i)||(s=v.isArray(i)))?(s?(s=!1,o=r&&v.isArray(r)?r:[]):o=r&&v.isPlainObject(r)?r:{},u[n]=v.extend(l,o,i)):i!==t&&(u[n]=i)}return u},v.extend({noConflict:function(t){return e.$===v&&(e.$=a),t&&e.jQuery===v&&(e.jQuery=u),v},isReady:!1,readyWait:1,holdReady:function(e){e?v.readyWait++:v.ready(!0)},ready:function(e){if(e===!0?--v.readyWait:v.isReady)return;if(!i.body)return setTimeout(v.ready,1);v.isReady=!0;if(e!==!0&&--v.readyWait>0)return;r.resolveWith(i,[v]),v.fn.trigger&&v(i).trigger("ready").off("ready")},isFunction:function(e){return v.type(e)==="function"},isArray:Array.isArray||function(e){return v.type(e)==="array"},isWindow:function(e){return e!=null&&e==e.window},isNumeric:function(e){return!isNaN(parseFloat(e))&&isFinite(e)},type:function(e){return e==null?String(e):O[h.call(e)]||"object"},isPlainObject:function(e){if(!e||v.type(e)!=="object"||e.nodeType||v.isWindow(e))return!1;try{if(e.constructor&&!p.call(e,"constructor")&&!p.call(e.constructor.prototype,"isPrototypeOf"))return!1}catch(n){return!1}var r;for(r in e);return r===t||p.call(e,r)},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},error:function(e){throw new Error(e)},parseHTML:function(e,t,n){var r;return!e||typeof e!="string"?null:(typeof t=="boolean"&&(n=t,t=0),t=t||i,(r=E.exec(e))?[t.createElement(r[1])]:(r=v.buildFragment([e],t,n?null:[]),v.merge([],(r.cacheable?v.clone(r.fragment):r.fragment).childNodes)))},parseJSON:function(t){if(!t||typeof t!="string")return null;t=v.trim(t);if(e.JSON&&e.JSON.parse)return e.JSON.parse(t);if(S.test(t.replace(T,"@").replace(N,"]").replace(x,"")))return(new Function("return "+t))();v.error("Invalid JSON: "+t)},parseXML:function(n){var r,i;if(!n||typeof n!="string")return null;try{e.DOMParser?(i=new DOMParser,r=i.parseFromString(n,"text/xml")):(r=new ActiveXObject("Microsoft.XMLDOM"),r.async="false",r.loadXML(n))}catch(s){r=t}return(!r||!r.documentElement||r.getElementsByTagName("parsererror").length)&&v.error("Invalid XML: "+n),r},noop:function(){},globalEval:function(t){t&&g.test(t)&&(e.execScript||function(t){e.eval.call(e,t)})(t)},camelCase:function(e){return e.replace(C,"ms-").replace(k,L)},nodeName:function(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()},each:function(e,n,r){var i,s=0,o=e.length,u=o===t||v.isFunction(e);if(r){if(u){for(i in e)if(n.apply(e[i],r)===!1)break}else for(;s<o;)if(n.apply(e[s++],r)===!1)break}else if(u){for(i in e)if(n.call(e[i],i,e[i])===!1)break}else for(;s<o;)if(n.call(e[s],s,e[s++])===!1)break;return e},trim:d&&!d.call("\ufeff\u00a0")?function(e){return e==null?"":d.call(e)}:function(e){return e==null?"":(e+"").replace(b,"")},makeArray:function(e,t){var n,r=t||[];return e!=null&&(n=v.type(e),e.length==null||n==="string"||n==="function"||n==="regexp"||v.isWindow(e)?f.call(r,e):v.merge(r,e)),r},inArray:function(e,t,n){var r;if(t){if(c)return c.call(t,e,n);r=t.length,n=n?n<0?Math.max(0,r+n):n:0;for(;n<r;n++)if(n in t&&t[n]===e)return n}return-1},merge:function(e,n){var r=n.length,i=e.length,s=0;if(typeof r=="number")for(;s<r;s++)e[i++]=n[s];else while(n[s]!==t)e[i++]=n[s++];return e.length=i,e},grep:function(e,t,n){var r,i=[],s=0,o=e.length;n=!!n;for(;s<o;s++)r=!!t(e[s],s),n!==r&&i.push(e[s]);return i},map:function(e,n,r){var i,s,o=[],u=0,a=e.length,f=e instanceof v||a!==t&&typeof a=="number"&&(a>0&&e[0]&&e[a-1]||a===0||v.isArray(e));if(f)for(;u<a;u++)i=n(e[u],u,r),i!=null&&(o[o.length]=i);else for(s in e)i=n(e[s],s,r),i!=null&&(o[o.length]=i);return o.concat.apply([],o)},guid:1,proxy:function(e,n){var r,i,s;return typeof n=="string"&&(r=e[n],n=e,e=r),v.isFunction(e)?(i=l.call(arguments,2),s=function(){return e.apply(n,i.concat(l.call(arguments)))},s.guid=e.guid=e.guid||v.guid++,s):t},access:function(e,n,r,i,s,o,u){var a,f=r==null,l=0,c=e.length;if(r&&typeof r=="object"){for(l in r)v.access(e,n,l,r[l],1,o,i);s=1}else if(i!==t){a=u===t&&v.isFunction(i),f&&(a?(a=n,n=function(e,t,n){return a.call(v(e),n)}):(n.call(e,i),n=null));if(n)for(;l<c;l++)n(e[l],r,a?i.call(e[l],l,n(e[l],r)):i,u);s=1}return s?e:f?n.call(e):c?n(e[0],r):o},now:function(){return(new Date).getTime()}}),v.ready.promise=function(t){if(!r){r=v.Deferred();if(i.readyState==="complete")setTimeout(v.ready,1);else if(i.addEventListener)i.addEventListener("DOMContentLoaded",A,!1),e.addEventListener("load",v.ready,!1);else{i.attachEvent("onreadystatechange",A),e.attachEvent("onload",v.ready);var n=!1;try{n=e.frameElement==null&&i.documentElement}catch(s){}n&&n.doScroll&&function o(){if(!v.isReady){try{n.doScroll("left")}catch(e){return setTimeout(o,50)}v.ready()}}()}}return r.promise(t)},v.each("Boolean Number String Function Array Date RegExp Object".split(" "),function(e,t){O["[object "+t+"]"]=t.toLowerCase()}),n=v(i);var M={};v.Callbacks=function(e){e=typeof e=="string"?M[e]||_(e):v.extend({},e);var n,r,i,s,o,u,a=[],f=!e.once&&[],l=function(t){n=e.memory&&t,r=!0,u=s||0,s=0,o=a.length,i=!0;for(;a&&u<o;u++)if(a[u].apply(t[0],t[1])===!1&&e.stopOnFalse){n=!1;break}i=!1,a&&(f?f.length&&l(f.shift()):n?a=[]:c.disable())},c={add:function(){if(a){var t=a.length;(function r(t){v.each(t,function(t,n){var i=v.type(n);i==="function"?(!e.unique||!c.has(n))&&a.push(n):n&&n.length&&i!=="string"&&r(n)})})(arguments),i?o=a.length:n&&(s=t,l(n))}return this},remove:function(){return a&&v.each(arguments,function(e,t){var n;while((n=v.inArray(t,a,n))>-1)a.splice(n,1),i&&(n<=o&&o--,n<=u&&u--)}),this},has:function(e){return v.inArray(e,a)>-1},empty:function(){return a=[],this},disable:function(){return a=f=n=t,this},disabled:function(){return!a},lock:function(){return f=t,n||c.disable(),this},locked:function(){return!f},fireWith:function(e,t){return t=t||[],t=[e,t.slice?t.slice():t],a&&(!r||f)&&(i?f.push(t):l(t)),this},fire:function(){return c.fireWith(this,arguments),this},fired:function(){return!!r}};return c},v.extend({Deferred:function(e){var t=[["resolve","done",v.Callbacks("once memory"),"resolved"],["reject","fail",v.Callbacks("once memory"),"rejected"],["notify","progress",v.Callbacks("memory")]],n="pending",r={state:function(){return n},always:function(){return i.done(arguments).fail(arguments),this},then:function(){var e=arguments;return v.Deferred(function(n){v.each(t,function(t,r){var s=r[0],o=e[t];i[r[1]](v.isFunction(o)?function(){var e=o.apply(this,arguments);e&&v.isFunction(e.promise)?e.promise().done(n.resolve).fail(n.reject).progress(n.notify):n[s+"With"](this===i?n:this,[e])}:n[s])}),e=null}).promise()},promise:function(e){return e!=null?v.extend(e,r):r}},i={};return r.pipe=r.then,v.each(t,function(e,s){var o=s[2],u=s[3];r[s[1]]=o.add,u&&o.add(function(){n=u},t[e^1][2].disable,t[2][2].lock),i[s[0]]=o.fire,i[s[0]+"With"]=o.fireWith}),r.promise(i),e&&e.call(i,i),i},when:function(e){var t=0,n=l.call(arguments),r=n.length,i=r!==1||e&&v.isFunction(e.promise)?r:0,s=i===1?e:v.Deferred(),o=function(e,t,n){return function(r){t[e]=this,n[e]=arguments.length>1?l.call(arguments):r,n===u?s.notifyWith(t,n):--i||s.resolveWith(t,n)}},u,a,f;if(r>1){u=new Array(r),a=new Array(r),f=new Array(r);for(;t<r;t++)n[t]&&v.isFunction(n[t].promise)?n[t].promise().done(o(t,f,n)).fail(s.reject).progress(o(t,a,u)):--i}return i||s.resolveWith(f,n),s.promise()}}),v.support=function(){var t,n,r,s,o,u,a,f,l,c,h,p=i.createElement("div");p.setAttribute("className","t"),p.innerHTML="  <link/><table></table><a href='/a'>a</a><input type='checkbox'/>",n=p.getElementsByTagName("*"),r=p.getElementsByTagName("a")[0];if(!n||!r||!n.length)return{};s=i.createElement("select"),o=s.appendChild(i.createElement("option")),u=p.getElementsByTagName("input")[0],r.style.cssText="top:1px;float:left;opacity:.5",t={leadingWhitespace:p.firstChild.nodeType===3,tbody:!p.getElementsByTagName("tbody").length,htmlSerialize:!!p.getElementsByTagName("link").length,style:/top/.test(r.getAttribute("style")),hrefNormalized:r.getAttribute("href")==="/a",opacity:/^0.5/.test(r.style.opacity),cssFloat:!!r.style.cssFloat,checkOn:u.value==="on",optSelected:o.selected,getSetAttribute:p.className!=="t",enctype:!!i.createElement("form").enctype,html5Clone:i.createElement("nav").cloneNode(!0).outerHTML!=="<:nav></:nav>",boxModel:i.compatMode==="CSS1Compat",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0,boxSizingReliable:!0,pixelPosition:!1},u.checked=!0,t.noCloneChecked=u.cloneNode(!0).checked,s.disabled=!0,t.optDisabled=!o.disabled;try{delete p.test}catch(d){t.deleteExpando=!1}!p.addEventListener&&p.attachEvent&&p.fireEvent&&(p.attachEvent("onclick",h=function(){t.noCloneEvent=!1}),p.cloneNode(!0).fireEvent("onclick"),p.detachEvent("onclick",h)),u=i.createElement("input"),u.value="t",u.setAttribute("type","radio"),t.radioValue=u.value==="t",u.setAttribute("checked","checked"),u.setAttribute("name","t"),p.appendChild(u),a=i.createDocumentFragment(),a.appendChild(p.lastChild),t.checkClone=a.cloneNode(!0).cloneNode(!0).lastChild.checked,t.appendChecked=u.checked,a.removeChild(u),a.appendChild(p);if(p.attachEvent)for(l in{submit:!0,change:!0,focusin:!0})f="on"+l,c=f in p,c||(p.setAttribute(f,"return;"),c=typeof p[f]=="function"),t[l+"Bubbles"]=c;return v(function(){var n,r,s,o,u="padding:0;margin:0;border:0;display:block;overflow:hidden;",a=i.getElementsByTagName("body")[0];if(!a)return;n=i.createElement("div"),n.style.cssText="visibility:hidden;border:0;width:0;height:0;position:static;top:0;margin-top:1px",a.insertBefore(n,a.firstChild),r=i.createElement("div"),n.appendChild(r),r.innerHTML="<table><tr><td></td><td>t</td></tr></table>",s=r.getElementsByTagName("td"),s[0].style.cssText="padding:0;margin:0;border:0;display:none",c=s[0].offsetHeight===0,s[0].style.display="",s[1].style.display="none",t.reliableHiddenOffsets=c&&s[0].offsetHeight===0,r.innerHTML="",r.style.cssText="box-sizing:border-box;-moz-box-sizing:border-box;-webkit-box-sizing:border-box;padding:1px;border:1px;display:block;width:4px;margin-top:1%;position:absolute;top:1%;",t.boxSizing=r.offsetWidth===4,t.doesNotIncludeMarginInBodyOffset=a.offsetTop!==1,e.getComputedStyle&&(t.pixelPosition=(e.getComputedStyle(r,null)||{}).top!=="1%",t.boxSizingReliable=(e.getComputedStyle(r,null)||{width:"4px"}).width==="4px",o=i.createElement("div"),o.style.cssText=r.style.cssText=u,o.style.marginRight=o.style.width="0",r.style.width="1px",r.appendChild(o),t.reliableMarginRight=!parseFloat((e.getComputedStyle(o,null)||{}).marginRight)),typeof r.style.zoom!="undefined"&&(r.innerHTML="",r.style.cssText=u+"width:1px;padding:1px;display:inline;zoom:1",t.inlineBlockNeedsLayout=r.offsetWidth===3,r.style.display="block",r.style.overflow="visible",r.innerHTML="<div></div>",r.firstChild.style.width="5px",t.shrinkWrapBlocks=r.offsetWidth!==3,n.style.zoom=1),a.removeChild(n),n=r=s=o=null}),a.removeChild(p),n=r=s=o=u=a=p=null,t}();var D=/(?:\{[\s\S]*\}|\[[\s\S]*\])$/,P=/([A-Z])/g;v.extend({cache:{},deletedIds:[],uuid:0,expando:"jQuery"+(v.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(e){return e=e.nodeType?v.cache[e[v.expando]]:e[v.expando],!!e&&!B(e)},data:function(e,n,r,i){if(!v.acceptData(e))return;var s,o,u=v.expando,a=typeof n=="string",f=e.nodeType,l=f?v.cache:e,c=f?e[u]:e[u]&&u;if((!c||!l[c]||!i&&!l[c].data)&&a&&r===t)return;c||(f?e[u]=c=v.deletedIds.pop()||v.guid++:c=u),l[c]||(l[c]={},f||(l[c].toJSON=v.noop));if(typeof n=="object"||typeof n=="function")i?l[c]=v.extend(l[c],n):l[c].data=v.extend(l[c].data,n);return s=l[c],i||(s.data||(s.data={}),s=s.data),r!==t&&(s[v.camelCase(n)]=r),a?(o=s[n],o==null&&(o=s[v.camelCase(n)])):o=s,o},removeData:function(e,t,n){if(!v.acceptData(e))return;var r,i,s,o=e.nodeType,u=o?v.cache:e,a=o?e[v.expando]:v.expando;if(!u[a])return;if(t){r=n?u[a]:u[a].data;if(r){v.isArray(t)||(t in r?t=[t]:(t=v.camelCase(t),t in r?t=[t]:t=t.split(" ")));for(i=0,s=t.length;i<s;i++)delete r[t[i]];if(!(n?B:v.isEmptyObject)(r))return}}if(!n){delete u[a].data;if(!B(u[a]))return}o?v.cleanData([e],!0):v.support.deleteExpando||u!=u.window?delete u[a]:u[a]=null},_data:function(e,t,n){return v.data(e,t,n,!0)},acceptData:function(e){var t=e.nodeName&&v.noData[e.nodeName.toLowerCase()];return!t||t!==!0&&e.getAttribute("classid")===t}}),v.fn.extend({data:function(e,n){var r,i,s,o,u,a=this[0],f=0,l=null;if(e===t){if(this.length){l=v.data(a);if(a.nodeType===1&&!v._data(a,"parsedAttrs")){s=a.attributes;for(u=s.length;f<u;f++)o=s[f].name,o.indexOf("data-")||(o=v.camelCase(o.substring(5)),H(a,o,l[o]));v._data(a,"parsedAttrs",!0)}}return l}return typeof e=="object"?this.each(function(){v.data(this,e)}):(r=e.split(".",2),r[1]=r[1]?"."+r[1]:"",i=r[1]+"!",v.access(this,function(n){if(n===t)return l=this.triggerHandler("getData"+i,[r[0]]),l===t&&a&&(l=v.data(a,e),l=H(a,e,l)),l===t&&r[1]?this.data(r[0]):l;r[1]=n,this.each(function(){var t=v(this);t.triggerHandler("setData"+i,r),v.data(this,e,n),t.triggerHandler("changeData"+i,r)})},null,n,arguments.length>1,null,!1))},removeData:function(e){return this.each(function(){v.removeData(this,e)})}}),v.extend({queue:function(e,t,n){var r;if(e)return t=(t||"fx")+"queue",r=v._data(e,t),n&&(!r||v.isArray(n)?r=v._data(e,t,v.makeArray(n)):r.push(n)),r||[]},dequeue:function(e,t){t=t||"fx";var n=v.queue(e,t),r=n.length,i=n.shift(),s=v._queueHooks(e,t),o=function(){v.dequeue(e,t)};i==="inprogress"&&(i=n.shift(),r--),i&&(t==="fx"&&n.unshift("inprogress"),delete s.stop,i.call(e,o,s)),!r&&s&&s.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return v._data(e,n)||v._data(e,n,{empty:v.Callbacks("once memory").add(function(){v.removeData(e,t+"queue",!0),v.removeData(e,n,!0)})})}}),v.fn.extend({queue:function(e,n){var r=2;return typeof e!="string"&&(n=e,e="fx",r--),arguments.length<r?v.queue(this[0],e):n===t?this:this.each(function(){var t=v.queue(this,e,n);v._queueHooks(this,e),e==="fx"&&t[0]!=="inprogress"&&v.dequeue(this,e)})},dequeue:function(e){return this.each(function(){v.dequeue(this,e)})},delay:function(e,t){return e=v.fx?v.fx.speeds[e]||e:e,t=t||"fx",this.queue(t,function(t,n){var r=setTimeout(t,e);n.stop=function(){clearTimeout(r)}})},clearQueue:function(e){return this.queue(e||"fx",[])},promise:function(e,n){var r,i=1,s=v.Deferred(),o=this,u=this.length,a=function(){--i||s.resolveWith(o,[o])};typeof e!="string"&&(n=e,e=t),e=e||"fx";while(u--)r=v._data(o[u],e+"queueHooks"),r&&r.empty&&(i++,r.empty.add(a));return a(),s.promise(n)}});var j,F,I,q=/[\t\r\n]/g,R=/\r/g,U=/^(?:button|input)$/i,z=/^(?:button|input|object|select|textarea)$/i,W=/^a(?:rea|)$/i,X=/^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i,V=v.support.getSetAttribute;v.fn.extend({attr:function(e,t){return v.access(this,v.attr,e,t,arguments.length>1)},removeAttr:function(e){return this.each(function(){v.removeAttr(this,e)})},prop:function(e,t){return v.access(this,v.prop,e,t,arguments.length>1)},removeProp:function(e){return e=v.propFix[e]||e,this.each(function(){try{this[e]=t,delete this[e]}catch(n){}})},addClass:function(e){var t,n,r,i,s,o,u;if(v.isFunction(e))return this.each(function(t){v(this).addClass(e.call(this,t,this.className))});if(e&&typeof e=="string"){t=e.split(y);for(n=0,r=this.length;n<r;n++){i=this[n];if(i.nodeType===1)if(!i.className&&t.length===1)i.className=e;else{s=" "+i.className+" ";for(o=0,u=t.length;o<u;o++)s.indexOf(" "+t[o]+" ")<0&&(s+=t[o]+" ");i.className=v.trim(s)}}}return this},removeClass:function(e){var n,r,i,s,o,u,a;if(v.isFunction(e))return this.each(function(t){v(this).removeClass(e.call(this,t,this.className))});if(e&&typeof e=="string"||e===t){n=(e||"").split(y);for(u=0,a=this.length;u<a;u++){i=this[u];if(i.nodeType===1&&i.className){r=(" "+i.className+" ").replace(q," ");for(s=0,o=n.length;s<o;s++)while(r.indexOf(" "+n[s]+" ")>=0)r=r.replace(" "+n[s]+" "," ");i.className=e?v.trim(r):""}}}return this},toggleClass:function(e,t){var n=typeof e,r=typeof t=="boolean";return v.isFunction(e)?this.each(function(n){v(this).toggleClass(e.call(this,n,this.className,t),t)}):this.each(function(){if(n==="string"){var i,s=0,o=v(this),u=t,a=e.split(y);while(i=a[s++])u=r?u:!o.hasClass(i),o[u?"addClass":"removeClass"](i)}else if(n==="undefined"||n==="boolean")this.className&&v._data(this,"__className__",this.className),this.className=this.className||e===!1?"":v._data(this,"__className__")||""})},hasClass:function(e){var t=" "+e+" ",n=0,r=this.length;for(;n<r;n++)if(this[n].nodeType===1&&(" "+this[n].className+" ").replace(q," ").indexOf(t)>=0)return!0;return!1},val:function(e){var n,r,i,s=this[0];if(!arguments.length){if(s)return n=v.valHooks[s.type]||v.valHooks[s.nodeName.toLowerCase()],n&&"get"in n&&(r=n.get(s,"value"))!==t?r:(r=s.value,typeof r=="string"?r.replace(R,""):r==null?"":r);return}return i=v.isFunction(e),this.each(function(r){var s,o=v(this);if(this.nodeType!==1)return;i?s=e.call(this,r,o.val()):s=e,s==null?s="":typeof s=="number"?s+="":v.isArray(s)&&(s=v.map(s,function(e){return e==null?"":e+""})),n=v.valHooks[this.type]||v.valHooks[this.nodeName.toLowerCase()];if(!n||!("set"in n)||n.set(this,s,"value")===t)this.value=s})}}),v.extend({valHooks:{option:{get:function(e){var t=e.attributes.value;return!t||t.specified?e.value:e.text}},select:{get:function(e){var t,n,r=e.options,i=e.selectedIndex,s=e.type==="select-one"||i<0,o=s?null:[],u=s?i+1:r.length,a=i<0?u:s?i:0;for(;a<u;a++){n=r[a];if((n.selected||a===i)&&(v.support.optDisabled?!n.disabled:n.getAttribute("disabled")===null)&&(!n.parentNode.disabled||!v.nodeName(n.parentNode,"optgroup"))){t=v(n).val();if(s)return t;o.push(t)}}return o},set:function(e,t){var n=v.makeArray(t);return v(e).find("option").each(function(){this.selected=v.inArray(v(this).val(),n)>=0}),n.length||(e.selectedIndex=-1),n}}},attrFn:{},attr:function(e,n,r,i){var s,o,u,a=e.nodeType;if(!e||a===3||a===8||a===2)return;if(i&&v.isFunction(v.fn[n]))return v(e)[n](r);if(typeof e.getAttribute=="undefined")return v.prop(e,n,r);u=a!==1||!v.isXMLDoc(e),u&&(n=n.toLowerCase(),o=v.attrHooks[n]||(X.test(n)?F:j));if(r!==t){if(r===null){v.removeAttr(e,n);return}return o&&"set"in o&&u&&(s=o.set(e,r,n))!==t?s:(e.setAttribute(n,r+""),r)}return o&&"get"in o&&u&&(s=o.get(e,n))!==null?s:(s=e.getAttribute(n),s===null?t:s)},removeAttr:function(e,t){var n,r,i,s,o=0;if(t&&e.nodeType===1){r=t.split(y);for(;o<r.length;o++)i=r[o],i&&(n=v.propFix[i]||i,s=X.test(i),s||v.attr(e,i,""),e.removeAttribute(V?i:n),s&&n in e&&(e[n]=!1))}},attrHooks:{type:{set:function(e,t){if(U.test(e.nodeName)&&e.parentNode)v.error("type property can't be changed");else if(!v.support.radioValue&&t==="radio"&&v.nodeName(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}},value:{get:function(e,t){return j&&v.nodeName(e,"button")?j.get(e,t):t in e?e.value:null},set:function(e,t,n){if(j&&v.nodeName(e,"button"))return j.set(e,t,n);e.value=t}}},propFix:{tabindex:"tabIndex",readonly:"readOnly","for":"htmlFor","class":"className",maxlength:"maxLength",cellspacing:"cellSpacing",cellpadding:"cellPadding",rowspan:"rowSpan",colspan:"colSpan",usemap:"useMap",frameborder:"frameBorder",contenteditable:"contentEditable"},prop:function(e,n,r){var i,s,o,u=e.nodeType;if(!e||u===3||u===8||u===2)return;return o=u!==1||!v.isXMLDoc(e),o&&(n=v.propFix[n]||n,s=v.propHooks[n]),r!==t?s&&"set"in s&&(i=s.set(e,r,n))!==t?i:e[n]=r:s&&"get"in s&&(i=s.get(e,n))!==null?i:e[n]},propHooks:{tabIndex:{get:function(e){var n=e.getAttributeNode("tabindex");return n&&n.specified?parseInt(n.value,10):z.test(e.nodeName)||W.test(e.nodeName)&&e.href?0:t}}}}),F={get:function(e,n){var r,i=v.prop(e,n);return i===!0||typeof i!="boolean"&&(r=e.getAttributeNode(n))&&r.nodeValue!==!1?n.toLowerCase():t},set:function(e,t,n){var r;return t===!1?v.removeAttr(e,n):(r=v.propFix[n]||n,r in e&&(e[r]=!0),e.setAttribute(n,n.toLowerCase())),n}},V||(I={name:!0,id:!0,coords:!0},j=v.valHooks.button={get:function(e,n){var r;return r=e.getAttributeNode(n),r&&(I[n]?r.value!=="":r.specified)?r.value:t},set:function(e,t,n){var r=e.getAttributeNode(n);return r||(r=i.createAttribute(n),e.setAttributeNode(r)),r.value=t+""}},v.each(["width","height"],function(e,t){v.attrHooks[t]=v.extend(v.attrHooks[t],{set:function(e,n){if(n==="")return e.setAttribute(t,"auto"),n}})}),v.attrHooks.contenteditable={get:j.get,set:function(e,t,n){t===""&&(t="false"),j.set(e,t,n)}}),v.support.hrefNormalized||v.each(["href","src","width","height"],function(e,n){v.attrHooks[n]=v.extend(v.attrHooks[n],{get:function(e){var r=e.getAttribute(n,2);return r===null?t:r}})}),v.support.style||(v.attrHooks.style={get:function(e){return e.style.cssText.toLowerCase()||t},set:function(e,t){return e.style.cssText=t+""}}),v.support.optSelected||(v.propHooks.selected=v.extend(v.propHooks.selected,{get:function(e){var t=e.parentNode;return t&&(t.selectedIndex,t.parentNode&&t.parentNode.selectedIndex),null}})),v.support.enctype||(v.propFix.enctype="encoding"),v.support.checkOn||v.each(["radio","checkbox"],function(){v.valHooks[this]={get:function(e){return e.getAttribute("value")===null?"on":e.value}}}),v.each(["radio","checkbox"],function(){v.valHooks[this]=v.extend(v.valHooks[this],{set:function(e,t){if(v.isArray(t))return e.checked=v.inArray(v(e).val(),t)>=0}})});var $=/^(?:textarea|input|select)$/i,J=/^([^\.]*|)(?:\.(.+)|)$/,K=/(?:^|\s)hover(\.\S+|)\b/,Q=/^key/,G=/^(?:mouse|contextmenu)|click/,Y=/^(?:focusinfocus|focusoutblur)$/,Z=function(e){return v.event.special.hover?e:e.replace(K,"mouseenter$1 mouseleave$1")};v.event={add:function(e,n,r,i,s){var o,u,a,f,l,c,h,p,d,m,g;if(e.nodeType===3||e.nodeType===8||!n||!r||!(o=v._data(e)))return;r.handler&&(d=r,r=d.handler,s=d.selector),r.guid||(r.guid=v.guid++),a=o.events,a||(o.events=a={}),u=o.handle,u||(o.handle=u=function(e){return typeof v=="undefined"||!!e&&v.event.triggered===e.type?t:v.event.dispatch.apply(u.elem,arguments)},u.elem=e),n=v.trim(Z(n)).split(" ");for(f=0;f<n.length;f++){l=J.exec(n[f])||[],c=l[1],h=(l[2]||"").split(".").sort(),g=v.event.special[c]||{},c=(s?g.delegateType:g.bindType)||c,g=v.event.special[c]||{},p=v.extend({type:c,origType:l[1],data:i,handler:r,guid:r.guid,selector:s,needsContext:s&&v.expr.match.needsContext.test(s),namespace:h.join(".")},d),m=a[c];if(!m){m=a[c]=[],m.delegateCount=0;if(!g.setup||g.setup.call(e,i,h,u)===!1)e.addEventListener?e.addEventListener(c,u,!1):e.attachEvent&&e.attachEvent("on"+c,u)}g.add&&(g.add.call(e,p),p.handler.guid||(p.handler.guid=r.guid)),s?m.splice(m.delegateCount++,0,p):m.push(p),v.event.global[c]=!0}e=null},global:{},remove:function(e,t,n,r,i){var s,o,u,a,f,l,c,h,p,d,m,g=v.hasData(e)&&v._data(e);if(!g||!(h=g.events))return;t=v.trim(Z(t||"")).split(" ");for(s=0;s<t.length;s++){o=J.exec(t[s])||[],u=a=o[1],f=o[2];if(!u){for(u in h)v.event.remove(e,u+t[s],n,r,!0);continue}p=v.event.special[u]||{},u=(r?p.delegateType:p.bindType)||u,d=h[u]||[],l=d.length,f=f?new RegExp("(^|\\.)"+f.split(".").sort().join("\\.(?:.*\\.|)")+"(\\.|$)"):null;for(c=0;c<d.length;c++)m=d[c],(i||a===m.origType)&&(!n||n.guid===m.guid)&&(!f||f.test(m.namespace))&&(!r||r===m.selector||r==="**"&&m.selector)&&(d.splice(c--,1),m.selector&&d.delegateCount--,p.remove&&p.remove.call(e,m));d.length===0&&l!==d.length&&((!p.teardown||p.teardown.call(e,f,g.handle)===!1)&&v.removeEvent(e,u,g.handle),delete h[u])}v.isEmptyObject(h)&&(delete g.handle,v.removeData(e,"events",!0))},customEvent:{getData:!0,setData:!0,changeData:!0},trigger:function(n,r,s,o){if(!s||s.nodeType!==3&&s.nodeType!==8){var u,a,f,l,c,h,p,d,m,g,y=n.type||n,b=[];if(Y.test(y+v.event.triggered))return;y.indexOf("!")>=0&&(y=y.slice(0,-1),a=!0),y.indexOf(".")>=0&&(b=y.split("."),y=b.shift(),b.sort());if((!s||v.event.customEvent[y])&&!v.event.global[y])return;n=typeof n=="object"?n[v.expando]?n:new v.Event(y,n):new v.Event(y),n.type=y,n.isTrigger=!0,n.exclusive=a,n.namespace=b.join("."),n.namespace_re=n.namespace?new RegExp("(^|\\.)"+b.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,h=y.indexOf(":")<0?"on"+y:"";if(!s){u=v.cache;for(f in u)u[f].events&&u[f].events[y]&&v.event.trigger(n,r,u[f].handle.elem,!0);return}n.result=t,n.target||(n.target=s),r=r!=null?v.makeArray(r):[],r.unshift(n),p=v.event.special[y]||{};if(p.trigger&&p.trigger.apply(s,r)===!1)return;m=[[s,p.bindType||y]];if(!o&&!p.noBubble&&!v.isWindow(s)){g=p.delegateType||y,l=Y.test(g+y)?s:s.parentNode;for(c=s;l;l=l.parentNode)m.push([l,g]),c=l;c===(s.ownerDocument||i)&&m.push([c.defaultView||c.parentWindow||e,g])}for(f=0;f<m.length&&!n.isPropagationStopped();f++)l=m[f][0],n.type=m[f][1],d=(v._data(l,"events")||{})[n.type]&&v._data(l,"handle"),d&&d.apply(l,r),d=h&&l[h],d&&v.acceptData(l)&&d.apply&&d.apply(l,r)===!1&&n.preventDefault();return n.type=y,!o&&!n.isDefaultPrevented()&&(!p._default||p._default.apply(s.ownerDocument,r)===!1)&&(y!=="click"||!v.nodeName(s,"a"))&&v.acceptData(s)&&h&&s[y]&&(y!=="focus"&&y!=="blur"||n.target.offsetWidth!==0)&&!v.isWindow(s)&&(c=s[h],c&&(s[h]=null),v.event.triggered=y,s[y](),v.event.triggered=t,c&&(s[h]=c)),n.result}return},dispatch:function(n){n=v.event.fix(n||e.event);var r,i,s,o,u,a,f,c,h,p,d=(v._data(this,"events")||{})[n.type]||[],m=d.delegateCount,g=l.call(arguments),y=!n.exclusive&&!n.namespace,b=v.event.special[n.type]||{},w=[];g[0]=n,n.delegateTarget=this;if(b.preDispatch&&b.preDispatch.call(this,n)===!1)return;if(m&&(!n.button||n.type!=="click"))for(s=n.target;s!=this;s=s.parentNode||this)if(s.disabled!==!0||n.type!=="click"){u={},f=[];for(r=0;r<m;r++)c=d[r],h=c.selector,u[h]===t&&(u[h]=c.needsContext?v(h,this).index(s)>=0:v.find(h,this,null,[s]).length),u[h]&&f.push(c);f.length&&w.push({elem:s,matches:f})}d.length>m&&w.push({elem:this,matches:d.slice(m)});for(r=0;r<w.length&&!n.isPropagationStopped();r++){a=w[r],n.currentTarget=a.elem;for(i=0;i<a.matches.length&&!n.isImmediatePropagationStopped();i++){c=a.matches[i];if(y||!n.namespace&&!c.namespace||n.namespace_re&&n.namespace_re.test(c.namespace))n.data=c.data,n.handleObj=c,o=((v.event.special[c.origType]||{}).handle||c.handler).apply(a.elem,g),o!==t&&(n.result=o,o===!1&&(n.preventDefault(),n.stopPropagation()))}}return b.postDispatch&&b.postDispatch.call(this,n),n.result},props:"attrChange attrName relatedNode srcElement altKey bubbles cancelable ctrlKey currentTarget eventPhase metaKey relatedTarget shiftKey target timeStamp view which".split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(e,t){return e.which==null&&(e.which=t.charCode!=null?t.charCode:t.keyCode),e}},mouseHooks:{props:"button buttons clientX clientY fromElement offsetX offsetY pageX pageY screenX screenY toElement".split(" "),filter:function(e,n){var r,s,o,u=n.button,a=n.fromElement;return e.pageX==null&&n.clientX!=null&&(r=e.target.ownerDocument||i,s=r.documentElement,o=r.body,e.pageX=n.clientX+(s&&s.scrollLeft||o&&o.scrollLeft||0)-(s&&s.clientLeft||o&&o.clientLeft||0),e.pageY=n.clientY+(s&&s.scrollTop||o&&o.scrollTop||0)-(s&&s.clientTop||o&&o.clientTop||0)),!e.relatedTarget&&a&&(e.relatedTarget=a===e.target?n.toElement:a),!e.which&&u!==t&&(e.which=u&1?1:u&2?3:u&4?2:0),e}},fix:function(e){if(e[v.expando])return e;var t,n,r=e,s=v.event.fixHooks[e.type]||{},o=s.props?this.props.concat(s.props):this.props;e=v.Event(r);for(t=o.length;t;)n=o[--t],e[n]=r[n];return e.target||(e.target=r.srcElement||i),e.target.nodeType===3&&(e.target=e.target.parentNode),e.metaKey=!!e.metaKey,s.filter?s.filter(e,r):e},special:{load:{noBubble:!0},focus:{delegateType:"focusin"},blur:{delegateType:"focusout"},beforeunload:{setup:function(e,t,n){v.isWindow(this)&&(this.onbeforeunload=n)},teardown:function(e,t){this.onbeforeunload===t&&(this.onbeforeunload=null)}}},simulate:function(e,t,n,r){var i=v.extend(new v.Event,n,{type:e,isSimulated:!0,originalEvent:{}});r?v.event.trigger(i,null,t):v.event.dispatch.call(t,i),i.isDefaultPrevented()&&n.preventDefault()}},v.event.handle=v.event.dispatch,v.removeEvent=i.removeEventListener?function(e,t,n){e.removeEventListener&&e.removeEventListener(t,n,!1)}:function(e,t,n){var r="on"+t;e.detachEvent&&(typeof e[r]=="undefined"&&(e[r]=null),e.detachEvent(r,n))},v.Event=function(e,t){if(!(this instanceof v.Event))return new v.Event(e,t);e&&e.type?(this.originalEvent=e,this.type=e.type,this.isDefaultPrevented=e.defaultPrevented||e.returnValue===!1||e.getPreventDefault&&e.getPreventDefault()?tt:et):this.type=e,t&&v.extend(this,t),this.timeStamp=e&&e.timeStamp||v.now(),this[v.expando]=!0},v.Event.prototype={preventDefault:function(){this.isDefaultPrevented=tt;var e=this.originalEvent;if(!e)return;e.preventDefault?e.preventDefault():e.returnValue=!1},stopPropagation:function(){this.isPropagationStopped=tt;var e=this.originalEvent;if(!e)return;e.stopPropagation&&e.stopPropagation(),e.cancelBubble=!0},stopImmediatePropagation:function(){this.isImmediatePropagationStopped=tt,this.stopPropagation()},isDefaultPrevented:et,isPropagationStopped:et,isImmediatePropagationStopped:et},v.each({mouseenter:"mouseover",mouseleave:"mouseout"},function(e,t){v.event.special[e]={delegateType:t,bindType:t,handle:function(e){var n,r=this,i=e.relatedTarget,s=e.handleObj,o=s.selector;if(!i||i!==r&&!v.contains(r,i))e.type=s.origType,n=s.handler.apply(this,arguments),e.type=t;return n}}}),v.support.submitBubbles||(v.event.special.submit={setup:function(){if(v.nodeName(this,"form"))return!1;v.event.add(this,"click._submit keypress._submit",function(e){var n=e.target,r=v.nodeName(n,"input")||v.nodeName(n,"button")?n.form:t;r&&!v._data(r,"_submit_attached")&&(v.event.add(r,"submit._submit",function(e){e._submit_bubble=!0}),v._data(r,"_submit_attached",!0))})},postDispatch:function(e){e._submit_bubble&&(delete e._submit_bubble,this.parentNode&&!e.isTrigger&&v.event.simulate("submit",this.parentNode,e,!0))},teardown:function(){if(v.nodeName(this,"form"))return!1;v.event.remove(this,"._submit")}}),v.support.changeBubbles||(v.event.special.change={setup:function(){if($.test(this.nodeName)){if(this.type==="checkbox"||this.type==="radio")v.event.add(this,"propertychange._change",function(e){e.originalEvent.propertyName==="checked"&&(this._just_changed=!0)}),v.event.add(this,"click._change",function(e){this._just_changed&&!e.isTrigger&&(this._just_changed=!1),v.event.simulate("change",this,e,!0)});return!1}v.event.add(this,"beforeactivate._change",function(e){var t=e.target;$.test(t.nodeName)&&!v._data(t,"_change_attached")&&(v.event.add(t,"change._change",function(e){this.parentNode&&!e.isSimulated&&!e.isTrigger&&v.event.simulate("change",this.parentNode,e,!0)}),v._data(t,"_change_attached",!0))})},handle:function(e){var t=e.target;if(this!==t||e.isSimulated||e.isTrigger||t.type!=="radio"&&t.type!=="checkbox")return e.handleObj.handler.apply(this,arguments)},teardown:function(){return v.event.remove(this,"._change"),!$.test(this.nodeName)}}),v.support.focusinBubbles||v.each({focus:"focusin",blur:"focusout"},function(e,t){var n=0,r=function(e){v.event.simulate(t,e.target,v.event.fix(e),!0)};v.event.special[t]={setup:function(){n++===0&&i.addEventListener(e,r,!0)},teardown:function(){--n===0&&i.removeEventListener(e,r,!0)}}}),v.fn.extend({on:function(e,n,r,i,s){var o,u;if(typeof e=="object"){typeof n!="string"&&(r=r||n,n=t);for(u in e)this.on(u,n,r,e[u],s);return this}r==null&&i==null?(i=n,r=n=t):i==null&&(typeof n=="string"?(i=r,r=t):(i=r,r=n,n=t));if(i===!1)i=et;else if(!i)return this;return s===1&&(o=i,i=function(e){return v().off(e),o.apply(this,arguments)},i.guid=o.guid||(o.guid=v.guid++)),this.each(function(){v.event.add(this,e,i,r,n)})},one:function(e,t,n,r){return this.on(e,t,n,r,1)},off:function(e,n,r){var i,s;if(e&&e.preventDefault&&e.handleObj)return i=e.handleObj,v(e.delegateTarget).off(i.namespace?i.origType+"."+i.namespace:i.origType,i.selector,i.handler),this;if(typeof e=="object"){for(s in e)this.off(s,n,e[s]);return this}if(n===!1||typeof n=="function")r=n,n=t;return r===!1&&(r=et),this.each(function(){v.event.remove(this,e,r,n)})},bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},live:function(e,t,n){return v(this.context).on(e,this.selector,t,n),this},die:function(e,t){return v(this.context).off(e,this.selector||"**",t),this},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return arguments.length===1?this.off(e,"**"):this.off(t,e||"**",n)},trigger:function(e,t){return this.each(function(){v.event.trigger(e,t,this)})},triggerHandler:function(e,t){if(this[0])return v.event.trigger(e,t,this[0],!0)},toggle:function(e){var t=arguments,n=e.guid||v.guid++,r=0,i=function(n){var i=(v._data(this,"lastToggle"+e.guid)||0)%r;return v._data(this,"lastToggle"+e.guid,i+1),n.preventDefault(),t[i].apply(this,arguments)||!1};i.guid=n;while(r<t.length)t[r++].guid=n;return this.click(i)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),v.each("blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu".split(" "),function(e,t){v.fn[t]=function(e,n){return n==null&&(n=e,e=null),arguments.length>0?this.on(t,null,e,n):this.trigger(t)},Q.test(t)&&(v.event.fixHooks[t]=v.event.keyHooks),G.test(t)&&(v.event.fixHooks[t]=v.event.mouseHooks)}),function(e,t){function nt(e,t,n,r){n=n||[],t=t||g;var i,s,a,f,l=t.nodeType;if(!e||typeof e!="string")return n;if(l!==1&&l!==9)return[];a=o(t);if(!a&&!r)if(i=R.exec(e))if(f=i[1]){if(l===9){s=t.getElementById(f);if(!s||!s.parentNode)return n;if(s.id===f)return n.push(s),n}else if(t.ownerDocument&&(s=t.ownerDocument.getElementById(f))&&u(t,s)&&s.id===f)return n.push(s),n}else{if(i[2])return S.apply(n,x.call(t.getElementsByTagName(e),0)),n;if((f=i[3])&&Z&&t.getElementsByClassName)return S.apply(n,x.call(t.getElementsByClassName(f),0)),n}return vt(e.replace(j,"$1"),t,n,r,a)}function rt(e){return function(t){var n=t.nodeName.toLowerCase();return n==="input"&&t.type===e}}function it(e){return function(t){var n=t.nodeName.toLowerCase();return(n==="input"||n==="button")&&t.type===e}}function st(e){return N(function(t){return t=+t,N(function(n,r){var i,s=e([],n.length,t),o=s.length;while(o--)n[i=s[o]]&&(n[i]=!(r[i]=n[i]))})})}function ot(e,t,n){if(e===t)return n;var r=e.nextSibling;while(r){if(r===t)return-1;r=r.nextSibling}return 1}function ut(e,t){var n,r,s,o,u,a,f,l=L[d][e+" "];if(l)return t?0:l.slice(0);u=e,a=[],f=i.preFilter;while(u){if(!n||(r=F.exec(u)))r&&(u=u.slice(r[0].length)||u),a.push(s=[]);n=!1;if(r=I.exec(u))s.push(n=new m(r.shift())),u=u.slice(n.length),n.type=r[0].replace(j," ");for(o in i.filter)(r=J[o].exec(u))&&(!f[o]||(r=f[o](r)))&&(s.push(n=new m(r.shift())),u=u.slice(n.length),n.type=o,n.matches=r);if(!n)break}return t?u.length:u?nt.error(e):L(e,a).slice(0)}function at(e,t,r){var i=t.dir,s=r&&t.dir==="parentNode",o=w++;return t.first?function(t,n,r){while(t=t[i])if(s||t.nodeType===1)return e(t,n,r)}:function(t,r,u){if(!u){var a,f=b+" "+o+" ",l=f+n;while(t=t[i])if(s||t.nodeType===1){if((a=t[d])===l)return t.sizset;if(typeof a=="string"&&a.indexOf(f)===0){if(t.sizset)return t}else{t[d]=l;if(e(t,r,u))return t.sizset=!0,t;t.sizset=!1}}}else while(t=t[i])if(s||t.nodeType===1)if(e(t,r,u))return t}}function ft(e){return e.length>1?function(t,n,r){var i=e.length;while(i--)if(!e[i](t,n,r))return!1;return!0}:e[0]}function lt(e,t,n,r,i){var s,o=[],u=0,a=e.length,f=t!=null;for(;u<a;u++)if(s=e[u])if(!n||n(s,r,i))o.push(s),f&&t.push(u);return o}function ct(e,t,n,r,i,s){return r&&!r[d]&&(r=ct(r)),i&&!i[d]&&(i=ct(i,s)),N(function(s,o,u,a){var f,l,c,h=[],p=[],d=o.length,v=s||dt(t||"*",u.nodeType?[u]:u,[]),m=e&&(s||!t)?lt(v,h,e,u,a):v,g=n?i||(s?e:d||r)?[]:o:m;n&&n(m,g,u,a);if(r){f=lt(g,p),r(f,[],u,a),l=f.length;while(l--)if(c=f[l])g[p[l]]=!(m[p[l]]=c)}if(s){if(i||e){if(i){f=[],l=g.length;while(l--)(c=g[l])&&f.push(m[l]=c);i(null,g=[],f,a)}l=g.length;while(l--)(c=g[l])&&(f=i?T.call(s,c):h[l])>-1&&(s[f]=!(o[f]=c))}}else g=lt(g===o?g.splice(d,g.length):g),i?i(null,o,g,a):S.apply(o,g)})}function ht(e){var t,n,r,s=e.length,o=i.relative[e[0].type],u=o||i.relative[" "],a=o?1:0,f=at(function(e){return e===t},u,!0),l=at(function(e){return T.call(t,e)>-1},u,!0),h=[function(e,n,r){return!o&&(r||n!==c)||((t=n).nodeType?f(e,n,r):l(e,n,r))}];for(;a<s;a++)if(n=i.relative[e[a].type])h=[at(ft(h),n)];else{n=i.filter[e[a].type].apply(null,e[a].matches);if(n[d]){r=++a;for(;r<s;r++)if(i.relative[e[r].type])break;return ct(a>1&&ft(h),a>1&&e.slice(0,a-1).join("").replace(j,"$1"),n,a<r&&ht(e.slice(a,r)),r<s&&ht(e=e.slice(r)),r<s&&e.join(""))}h.push(n)}return ft(h)}function pt(e,t){var r=t.length>0,s=e.length>0,o=function(u,a,f,l,h){var p,d,v,m=[],y=0,w="0",x=u&&[],T=h!=null,N=c,C=u||s&&i.find.TAG("*",h&&a.parentNode||a),k=b+=N==null?1:Math.E;T&&(c=a!==g&&a,n=o.el);for(;(p=C[w])!=null;w++){if(s&&p){for(d=0;v=e[d];d++)if(v(p,a,f)){l.push(p);break}T&&(b=k,n=++o.el)}r&&((p=!v&&p)&&y--,u&&x.push(p))}y+=w;if(r&&w!==y){for(d=0;v=t[d];d++)v(x,m,a,f);if(u){if(y>0)while(w--)!x[w]&&!m[w]&&(m[w]=E.call(l));m=lt(m)}S.apply(l,m),T&&!u&&m.length>0&&y+t.length>1&&nt.uniqueSort(l)}return T&&(b=k,c=N),x};return o.el=0,r?N(o):o}function dt(e,t,n){var r=0,i=t.length;for(;r<i;r++)nt(e,t[r],n);return n}function vt(e,t,n,r,s){var o,u,f,l,c,h=ut(e),p=h.length;if(!r&&h.length===1){u=h[0]=h[0].slice(0);if(u.length>2&&(f=u[0]).type==="ID"&&t.nodeType===9&&!s&&i.relative[u[1].type]){t=i.find.ID(f.matches[0].replace($,""),t,s)[0];if(!t)return n;e=e.slice(u.shift().length)}for(o=J.POS.test(e)?-1:u.length-1;o>=0;o--){f=u[o];if(i.relative[l=f.type])break;if(c=i.find[l])if(r=c(f.matches[0].replace($,""),z.test(u[0].type)&&t.parentNode||t,s)){u.splice(o,1),e=r.length&&u.join("");if(!e)return S.apply(n,x.call(r,0)),n;break}}}return a(e,h)(r,t,s,n,z.test(e)),n}function mt(){}var n,r,i,s,o,u,a,f,l,c,h=!0,p="undefined",d=("sizcache"+Math.random()).replace(".",""),m=String,g=e.document,y=g.documentElement,b=0,w=0,E=[].pop,S=[].push,x=[].slice,T=[].indexOf||function(e){var t=0,n=this.length;for(;t<n;t++)if(this[t]===e)return t;return-1},N=function(e,t){return e[d]=t==null||t,e},C=function(){var e={},t=[];return N(function(n,r){return t.push(n)>i.cacheLength&&delete e[t.shift()],e[n+" "]=r},e)},k=C(),L=C(),A=C(),O="[\\x20\\t\\r\\n\\f]",M="(?:\\\\.|[-\\w]|[^\\x00-\\xa0])+",_=M.replace("w","w#"),D="([*^$|!~]?=)",P="\\["+O+"*("+M+")"+O+"*(?:"+D+O+"*(?:(['\"])((?:\\\\.|[^\\\\])*?)\\3|("+_+")|)|)"+O+"*\\]",H=":("+M+")(?:\\((?:(['\"])((?:\\\\.|[^\\\\])*?)\\2|([^()[\\]]*|(?:(?:"+P+")|[^:]|\\\\.)*|.*))\\)|)",B=":(even|odd|eq|gt|lt|nth|first|last)(?:\\("+O+"*((?:-\\d)?\\d*)"+O+"*\\)|)(?=[^-]|$)",j=new RegExp("^"+O+"+|((?:^|[^\\\\])(?:\\\\.)*)"+O+"+$","g"),F=new RegExp("^"+O+"*,"+O+"*"),I=new RegExp("^"+O+"*([\\x20\\t\\r\\n\\f>+~])"+O+"*"),q=new RegExp(H),R=/^(?:#([\w\-]+)|(\w+)|\.([\w\-]+))$/,U=/^:not/,z=/[\x20\t\r\n\f]*[+~]/,W=/:not\($/,X=/h\d/i,V=/input|select|textarea|button/i,$=/\\(?!\\)/g,J={ID:new RegExp("^#("+M+")"),CLASS:new RegExp("^\\.("+M+")"),NAME:new RegExp("^\\[name=['\"]?("+M+")['\"]?\\]"),TAG:new RegExp("^("+M.replace("w","w*")+")"),ATTR:new RegExp("^"+P),PSEUDO:new RegExp("^"+H),POS:new RegExp(B,"i"),CHILD:new RegExp("^:(only|nth|first|last)-child(?:\\("+O+"*(even|odd|(([+-]|)(\\d*)n|)"+O+"*(?:([+-]|)"+O+"*(\\d+)|))"+O+"*\\)|)","i"),needsContext:new RegExp("^"+O+"*[>+~]|"+B,"i")},K=function(e){var t=g.createElement("div");try{return e(t)}catch(n){return!1}finally{t=null}},Q=K(function(e){return e.appendChild(g.createComment("")),!e.getElementsByTagName("*").length}),G=K(function(e){return e.innerHTML="<a href='#'></a>",e.firstChild&&typeof e.firstChild.getAttribute!==p&&e.firstChild.getAttribute("href")==="#"}),Y=K(function(e){e.innerHTML="<select></select>";var t=typeof e.lastChild.getAttribute("multiple");return t!=="boolean"&&t!=="string"}),Z=K(function(e){return e.innerHTML="<div class='hidden e'></div><div class='hidden'></div>",!e.getElementsByClassName||!e.getElementsByClassName("e").length?!1:(e.lastChild.className="e",e.getElementsByClassName("e").length===2)}),et=K(function(e){e.id=d+0,e.innerHTML="<a name='"+d+"'></a><div name='"+d+"'></div>",y.insertBefore(e,y.firstChild);var t=g.getElementsByName&&g.getElementsByName(d).length===2+g.getElementsByName(d+0).length;return r=!g.getElementById(d),y.removeChild(e),t});try{x.call(y.childNodes,0)[0].nodeType}catch(tt){x=function(e){var t,n=[];for(;t=this[e];e++)n.push(t);return n}}nt.matches=function(e,t){return nt(e,null,null,t)},nt.matchesSelector=function(e,t){return nt(t,null,null,[e]).length>0},s=nt.getText=function(e){var t,n="",r=0,i=e.nodeType;if(i){if(i===1||i===9||i===11){if(typeof e.textContent=="string")return e.textContent;for(e=e.firstChild;e;e=e.nextSibling)n+=s(e)}else if(i===3||i===4)return e.nodeValue}else for(;t=e[r];r++)n+=s(t);return n},o=nt.isXML=function(e){var t=e&&(e.ownerDocument||e).documentElement;return t?t.nodeName!=="HTML":!1},u=nt.contains=y.contains?function(e,t){var n=e.nodeType===9?e.documentElement:e,r=t&&t.parentNode;return e===r||!!(r&&r.nodeType===1&&n.contains&&n.contains(r))}:y.compareDocumentPosition?function(e,t){return t&&!!(e.compareDocumentPosition(t)&16)}:function(e,t){while(t=t.parentNode)if(t===e)return!0;return!1},nt.attr=function(e,t){var n,r=o(e);return r||(t=t.toLowerCase()),(n=i.attrHandle[t])?n(e):r||Y?e.getAttribute(t):(n=e.getAttributeNode(t),n?typeof e[t]=="boolean"?e[t]?t:null:n.specified?n.value:null:null)},i=nt.selectors={cacheLength:50,createPseudo:N,match:J,attrHandle:G?{}:{href:function(e){return e.getAttribute("href",2)},type:function(e){return e.getAttribute("type")}},find:{ID:r?function(e,t,n){if(typeof t.getElementById!==p&&!n){var r=t.getElementById(e);return r&&r.parentNode?[r]:[]}}:function(e,n,r){if(typeof n.getElementById!==p&&!r){var i=n.getElementById(e);return i?i.id===e||typeof i.getAttributeNode!==p&&i.getAttributeNode("id").value===e?[i]:t:[]}},TAG:Q?function(e,t){if(typeof t.getElementsByTagName!==p)return t.getElementsByTagName(e)}:function(e,t){var n=t.getElementsByTagName(e);if(e==="*"){var r,i=[],s=0;for(;r=n[s];s++)r.nodeType===1&&i.push(r);return i}return n},NAME:et&&function(e,t){if(typeof t.getElementsByName!==p)return t.getElementsByName(name)},CLASS:Z&&function(e,t,n){if(typeof t.getElementsByClassName!==p&&!n)return t.getElementsByClassName(e)}},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace($,""),e[3]=(e[4]||e[5]||"").replace($,""),e[2]==="~="&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),e[1]==="nth"?(e[2]||nt.error(e[0]),e[3]=+(e[3]?e[4]+(e[5]||1):2*(e[2]==="even"||e[2]==="odd")),e[4]=+(e[6]+e[7]||e[2]==="odd")):e[2]&&nt.error(e[0]),e},PSEUDO:function(e){var t,n;if(J.CHILD.test(e[0]))return null;if(e[3])e[2]=e[3];else if(t=e[4])q.test(t)&&(n=ut(t,!0))&&(n=t.indexOf(")",t.length-n)-t.length)&&(t=t.slice(0,n),e[0]=e[0].slice(0,n)),e[2]=t;return e.slice(0,3)}},filter:{ID:r?function(e){return e=e.replace($,""),function(t){return t.getAttribute("id")===e}}:function(e){return e=e.replace($,""),function(t){var n=typeof t.getAttributeNode!==p&&t.getAttributeNode("id");return n&&n.value===e}},TAG:function(e){return e==="*"?function(){return!0}:(e=e.replace($,"").toLowerCase(),function(t){return t.nodeName&&t.nodeName.toLowerCase()===e})},CLASS:function(e){var t=k[d][e+" "];return t||(t=new RegExp("(^|"+O+")"+e+"("+O+"|$)"))&&k(e,function(e){return t.test(e.className||typeof e.getAttribute!==p&&e.getAttribute("class")||"")})},ATTR:function(e,t,n){return function(r,i){var s=nt.attr(r,e);return s==null?t==="!=":t?(s+="",t==="="?s===n:t==="!="?s!==n:t==="^="?n&&s.indexOf(n)===0:t==="*="?n&&s.indexOf(n)>-1:t==="$="?n&&s.substr(s.length-n.length)===n:t==="~="?(" "+s+" ").indexOf(n)>-1:t==="|="?s===n||s.substr(0,n.length+1)===n+"-":!1):!0}},CHILD:function(e,t,n,r){return e==="nth"?function(e){var t,i,s=e.parentNode;if(n===1&&r===0)return!0;if(s){i=0;for(t=s.firstChild;t;t=t.nextSibling)if(t.nodeType===1){i++;if(e===t)break}}return i-=r,i===n||i%n===0&&i/n>=0}:function(t){var n=t;switch(e){case"only":case"first":while(n=n.previousSibling)if(n.nodeType===1)return!1;if(e==="first")return!0;n=t;case"last":while(n=n.nextSibling)if(n.nodeType===1)return!1;return!0}}},PSEUDO:function(e,t){var n,r=i.pseudos[e]||i.setFilters[e.toLowerCase()]||nt.error("unsupported pseudo: "+e);return r[d]?r(t):r.length>1?(n=[e,e,"",t],i.setFilters.hasOwnProperty(e.toLowerCase())?N(function(e,n){var i,s=r(e,t),o=s.length;while(o--)i=T.call(e,s[o]),e[i]=!(n[i]=s[o])}):function(e){return r(e,0,n)}):r}},pseudos:{not:N(function(e){var t=[],n=[],r=a(e.replace(j,"$1"));return r[d]?N(function(e,t,n,i){var s,o=r(e,null,i,[]),u=e.length;while(u--)if(s=o[u])e[u]=!(t[u]=s)}):function(e,i,s){return t[0]=e,r(t,null,s,n),!n.pop()}}),has:N(function(e){return function(t){return nt(e,t).length>0}}),contains:N(function(e){return function(t){return(t.textContent||t.innerText||s(t)).indexOf(e)>-1}}),enabled:function(e){return e.disabled===!1},disabled:function(e){return e.disabled===!0},checked:function(e){var t=e.nodeName.toLowerCase();return t==="input"&&!!e.checked||t==="option"&&!!e.selected},selected:function(e){return e.parentNode&&e.parentNode.selectedIndex,e.selected===!0},parent:function(e){return!i.pseudos.empty(e)},empty:function(e){var t;e=e.firstChild;while(e){if(e.nodeName>"@"||(t=e.nodeType)===3||t===4)return!1;e=e.nextSibling}return!0},header:function(e){return X.test(e.nodeName)},text:function(e){var t,n;return e.nodeName.toLowerCase()==="input"&&(t=e.type)==="text"&&((n=e.getAttribute("type"))==null||n.toLowerCase()===t)},radio:rt("radio"),checkbox:rt("checkbox"),file:rt("file"),password:rt("password"),image:rt("image"),submit:it("submit"),reset:it("reset"),button:function(e){var t=e.nodeName.toLowerCase();return t==="input"&&e.type==="button"||t==="button"},input:function(e){return V.test(e.nodeName)},focus:function(e){var t=e.ownerDocument;return e===t.activeElement&&(!t.hasFocus||t.hasFocus())&&!!(e.type||e.href||~e.tabIndex)},active:function(e){return e===e.ownerDocument.activeElement},first:st(function(){return[0]}),last:st(function(e,t){return[t-1]}),eq:st(function(e,t,n){return[n<0?n+t:n]}),even:st(function(e,t){for(var n=0;n<t;n+=2)e.push(n);return e}),odd:st(function(e,t){for(var n=1;n<t;n+=2)e.push(n);return e}),lt:st(function(e,t,n){for(var r=n<0?n+t:n;--r>=0;)e.push(r);return e}),gt:st(function(e,t,n){for(var r=n<0?n+t:n;++r<t;)e.push(r);return e})}},f=y.compareDocumentPosition?function(e,t){return e===t?(l=!0,0):(!e.compareDocumentPosition||!t.compareDocumentPosition?e.compareDocumentPosition:e.compareDocumentPosition(t)&4)?-1:1}:function(e,t){if(e===t)return l=!0,0;if(e.sourceIndex&&t.sourceIndex)return e.sourceIndex-t.sourceIndex;var n,r,i=[],s=[],o=e.parentNode,u=t.parentNode,a=o;if(o===u)return ot(e,t);if(!o)return-1;if(!u)return 1;while(a)i.unshift(a),a=a.parentNode;a=u;while(a)s.unshift(a),a=a.parentNode;n=i.length,r=s.length;for(var f=0;f<n&&f<r;f++)if(i[f]!==s[f])return ot(i[f],s[f]);return f===n?ot(e,s[f],-1):ot(i[f],t,1)},[0,0].sort(f),h=!l,nt.uniqueSort=function(e){var t,n=[],r=1,i=0;l=h,e.sort(f);if(l){for(;t=e[r];r++)t===e[r-1]&&(i=n.push(r));while(i--)e.splice(n[i],1)}return e},nt.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)},a=nt.compile=function(e,t){var n,r=[],i=[],s=A[d][e+" "];if(!s){t||(t=ut(e)),n=t.length;while(n--)s=ht(t[n]),s[d]?r.push(s):i.push(s);s=A(e,pt(i,r))}return s},g.querySelectorAll&&function(){var e,t=vt,n=/'|\\/g,r=/\=[\x20\t\r\n\f]*([^'"\]]*)[\x20\t\r\n\f]*\]/g,i=[":focus"],s=[":active"],u=y.matchesSelector||y.mozMatchesSelector||y.webkitMatchesSelector||y.oMatchesSelector||y.msMatchesSelector;K(function(e){e.innerHTML="<select><option selected=''></option></select>",e.querySelectorAll("[selected]").length||i.push("\\["+O+"*(?:checked|disabled|ismap|multiple|readonly|selected|value)"),e.querySelectorAll(":checked").length||i.push(":checked")}),K(function(e){e.innerHTML="<p test=''></p>",e.querySelectorAll("[test^='']").length&&i.push("[*^$]="+O+"*(?:\"\"|'')"),e.innerHTML="<input type='hidden'/>",e.querySelectorAll(":enabled").length||i.push(":enabled",":disabled")}),i=new RegExp(i.join("|")),vt=function(e,r,s,o,u){if(!o&&!u&&!i.test(e)){var a,f,l=!0,c=d,h=r,p=r.nodeType===9&&e;if(r.nodeType===1&&r.nodeName.toLowerCase()!=="object"){a=ut(e),(l=r.getAttribute("id"))?c=l.replace(n,"\\$&"):r.setAttribute("id",c),c="[id='"+c+"'] ",f=a.length;while(f--)a[f]=c+a[f].join("");h=z.test(e)&&r.parentNode||r,p=a.join(",")}if(p)try{return S.apply(s,x.call(h.querySelectorAll(p),0)),s}catch(v){}finally{l||r.removeAttribute("id")}}return t(e,r,s,o,u)},u&&(K(function(t){e=u.call(t,"div");try{u.call(t,"[test!='']:sizzle"),s.push("!=",H)}catch(n){}}),s=new RegExp(s.join("|")),nt.matchesSelector=function(t,n){n=n.replace(r,"='$1']");if(!o(t)&&!s.test(n)&&!i.test(n))try{var a=u.call(t,n);if(a||e||t.document&&t.document.nodeType!==11)return a}catch(f){}return nt(n,null,null,[t]).length>0})}(),i.pseudos.nth=i.pseudos.eq,i.filters=mt.prototype=i.pseudos,i.setFilters=new mt,nt.attr=v.attr,v.find=nt,v.expr=nt.selectors,v.expr[":"]=v.expr.pseudos,v.unique=nt.uniqueSort,v.text=nt.getText,v.isXMLDoc=nt.isXML,v.contains=nt.contains}(e);var nt=/Until$/,rt=/^(?:parents|prev(?:Until|All))/,it=/^.[^:#\[\.,]*$/,st=v.expr.match.needsContext,ot={children:!0,contents:!0,next:!0,prev:!0};v.fn.extend({find:function(e){var t,n,r,i,s,o,u=this;if(typeof e!="string")return v(e).filter(function(){for(t=0,n=u.length;t<n;t++)if(v.contains(u[t],this))return!0});o=this.pushStack("","find",e);for(t=0,n=this.length;t<n;t++){r=o.length,v.find(e,this[t],o);if(t>0)for(i=r;i<o.length;i++)for(s=0;s<r;s++)if(o[s]===o[i]){o.splice(i--,1);break}}return o},has:function(e){var t,n=v(e,this),r=n.length;return this.filter(function(){for(t=0;t<r;t++)if(v.contains(this,n[t]))return!0})},not:function(e){return this.pushStack(ft(this,e,!1),"not",e)},filter:function(e){return this.pushStack(ft(this,e,!0),"filter",e)},is:function(e){return!!e&&(typeof e=="string"?st.test(e)?v(e,this.context).index(this[0])>=0:v.filter(e,this).length>0:this.filter(e).length>0)},closest:function(e,t){var n,r=0,i=this.length,s=[],o=st.test(e)||typeof e!="string"?v(e,t||this.context):0;for(;r<i;r++){n=this[r];while(n&&n.ownerDocument&&n!==t&&n.nodeType!==11){if(o?o.index(n)>-1:v.find.matchesSelector(n,e)){s.push(n);break}n=n.parentNode}}return s=s.length>1?v.unique(s):s,this.pushStack(s,"closest",e)},index:function(e){return e?typeof e=="string"?v.inArray(this[0],v(e)):v.inArray(e.jquery?e[0]:e,this):this[0]&&this[0].parentNode?this.prevAll().length:-1},add:function(e,t){var n=typeof e=="string"?v(e,t):v.makeArray(e&&e.nodeType?[e]:e),r=v.merge(this.get(),n);return this.pushStack(ut(n[0])||ut(r[0])?r:v.unique(r))},addBack:function(e){return this.add(e==null?this.prevObject:this.prevObject.filter(e))}}),v.fn.andSelf=v.fn.addBack,v.each({parent:function(e){var t=e.parentNode;return t&&t.nodeType!==11?t:null},parents:function(e){return v.dir(e,"parentNode")},parentsUntil:function(e,t,n){return v.dir(e,"parentNode",n)},next:function(e){return at(e,"nextSibling")},prev:function(e){return at(e,"previousSibling")},nextAll:function(e){return v.dir(e,"nextSibling")},prevAll:function(e){return v.dir(e,"previousSibling")},nextUntil:function(e,t,n){return v.dir(e,"nextSibling",n)},prevUntil:function(e,t,n){return v.dir(e,"previousSibling",n)},siblings:function(e){return v.sibling((e.parentNode||{}).firstChild,e)},children:function(e){return v.sibling(e.firstChild)},contents:function(e){return v.nodeName(e,"iframe")?e.contentDocument||e.contentWindow.document:v.merge([],e.childNodes)}},function(e,t){v.fn[e]=function(n,r){var i=v.map(this,t,n);return nt.test(e)||(r=n),r&&typeof r=="string"&&(i=v.filter(r,i)),i=this.length>1&&!ot[e]?v.unique(i):i,this.length>1&&rt.test(e)&&(i=i.reverse()),this.pushStack(i,e,l.call(arguments).join(","))}}),v.extend({filter:function(e,t,n){return n&&(e=":not("+e+")"),t.length===1?v.find.matchesSelector(t[0],e)?[t[0]]:[]:v.find.matches(e,t)},dir:function(e,n,r){var i=[],s=e[n];while(s&&s.nodeType!==9&&(r===t||s.nodeType!==1||!v(s).is(r)))s.nodeType===1&&i.push(s),s=s[n];return i},sibling:function(e,t){var n=[];for(;e;e=e.nextSibling)e.nodeType===1&&e!==t&&n.push(e);return n}});var ct="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",ht=/ jQuery\d+="(?:null|\d+)"/g,pt=/^\s+/,dt=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/gi,vt=/<([\w:]+)/,mt=/<tbody/i,gt=/<|&#?\w+;/,yt=/<(?:script|style|link)/i,bt=/<(?:script|object|embed|option|style)/i,wt=new RegExp("<(?:"+ct+")[\\s/>]","i"),Et=/^(?:checkbox|radio)$/,St=/checked\s*(?:[^=]|=\s*.checked.)/i,xt=/\/(java|ecma)script/i,Tt=/^\s*<!(?:\[CDATA\[|\-\-)|[\]\-]{2}>\s*$/g,Nt={option:[1,"<select multiple='multiple'>","</select>"],legend:[1,"<fieldset>","</fieldset>"],thead:[1,"<table>","</table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],col:[2,"<table><tbody></tbody><colgroup>","</colgroup></table>"],area:[1,"<map>","</map>"],_default:[0,"",""]},Ct=lt(i),kt=Ct.appendChild(i.createElement("div"));Nt.optgroup=Nt.option,Nt.tbody=Nt.tfoot=Nt.colgroup=Nt.caption=Nt.thead,Nt.th=Nt.td,v.support.htmlSerialize||(Nt._default=[1,"X<div>","</div>"]),v.fn.extend({text:function(e){return v.access(this,function(e){return e===t?v.text(this):this.empty().append((this[0]&&this[0].ownerDocument||i).createTextNode(e))},null,e,arguments.length)},wrapAll:function(e){if(v.isFunction(e))return this.each(function(t){v(this).wrapAll(e.call(this,t))});if(this[0]){var t=v(e,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&t.insertBefore(this[0]),t.map(function(){var e=this;while(e.firstChild&&e.firstChild.nodeType===1)e=e.firstChild;return e}).append(this)}return this},wrapInner:function(e){return v.isFunction(e)?this.each(function(t){v(this).wrapInner(e.call(this,t))}):this.each(function(){var t=v(this),n=t.contents();n.length?n.wrapAll(e):t.append(e)})},wrap:function(e){var t=v.isFunction(e);return this.each(function(n){v(this).wrapAll(t?e.call(this,n):e)})},unwrap:function(){return this.parent().each(function(){v.nodeName(this,"body")||v(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(e){(this.nodeType===1||this.nodeType===11)&&this.appendChild(e)})},prepend:function(){return this.domManip(arguments,!0,function(e){(this.nodeType===1||this.nodeType===11)&&this.insertBefore(e,this.firstChild)})},before:function(){if(!ut(this[0]))return this.domManip(arguments,!1,function(e){this.parentNode.insertBefore(e,this)});if(arguments.length){var e=v.clean(arguments);return this.pushStack(v.merge(e,this),"before",this.selector)}},after:function(){if(!ut(this[0]))return this.domManip(arguments,!1,function(e){this.parentNode.insertBefore(e,this.nextSibling)});if(arguments.length){var e=v.clean(arguments);return this.pushStack(v.merge(this,e),"after",this.selector)}},remove:function(e,t){var n,r=0;for(;(n=this[r])!=null;r++)if(!e||v.filter(e,[n]).length)!t&&n.nodeType===1&&(v.cleanData(n.getElementsByTagName("*")),v.cleanData([n])),n.parentNode&&n.parentNode.removeChild(n);return this},empty:function(){var e,t=0;for(;(e=this[t])!=null;t++){e.nodeType===1&&v.cleanData(e.getElementsByTagName("*"));while(e.firstChild)e.removeChild(e.firstChild)}return this},clone:function(e,t){return e=e==null?!1:e,t=t==null?e:t,this.map(function(){return v.clone(this,e,t)})},html:function(e){return v.access(this,function(e){var n=this[0]||{},r=0,i=this.length;if(e===t)return n.nodeType===1?n.innerHTML.replace(ht,""):t;if(typeof e=="string"&&!yt.test(e)&&(v.support.htmlSerialize||!wt.test(e))&&(v.support.leadingWhitespace||!pt.test(e))&&!Nt[(vt.exec(e)||["",""])[1].toLowerCase()]){e=e.replace(dt,"<$1></$2>");try{for(;r<i;r++)n=this[r]||{},n.nodeType===1&&(v.cleanData(n.getElementsByTagName("*")),n.innerHTML=e);n=0}catch(s){}}n&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(e){return ut(this[0])?this.length?this.pushStack(v(v.isFunction(e)?e():e),"replaceWith",e):this:v.isFunction(e)?this.each(function(t){var n=v(this),r=n.html();n.replaceWith(e.call(this,t,r))}):(typeof e!="string"&&(e=v(e).detach()),this.each(function(){var t=this.nextSibling,n=this.parentNode;v(this).remove(),t?v(t).before(e):v(n).append(e)}))},detach:function(e){return this.remove(e,!0)},domManip:function(e,n,r){e=[].concat.apply([],e);var i,s,o,u,a=0,f=e[0],l=[],c=this.length;if(!v.support.checkClone&&c>1&&typeof f=="string"&&St.test(f))return this.each(function(){v(this).domManip(e,n,r)});if(v.isFunction(f))return this.each(function(i){var s=v(this);e[0]=f.call(this,i,n?s.html():t),s.domManip(e,n,r)});if(this[0]){i=v.buildFragment(e,this,l),o=i.fragment,s=o.firstChild,o.childNodes.length===1&&(o=s);if(s){n=n&&v.nodeName(s,"tr");for(u=i.cacheable||c-1;a<c;a++)r.call(n&&v.nodeName(this[a],"table")?Lt(this[a],"tbody"):this[a],a===u?o:v.clone(o,!0,!0))}o=s=null,l.length&&v.each(l,function(e,t){t.src?v.ajax?v.ajax({url:t.src,type:"GET",dataType:"script",async:!1,global:!1,"throws":!0}):v.error("no ajax"):v.globalEval((t.text||t.textContent||t.innerHTML||"").replace(Tt,"")),t.parentNode&&t.parentNode.removeChild(t)})}return this}}),v.buildFragment=function(e,n,r){var s,o,u,a=e[0];return n=n||i,n=!n.nodeType&&n[0]||n,n=n.ownerDocument||n,e.length===1&&typeof a=="string"&&a.length<512&&n===i&&a.charAt(0)==="<"&&!bt.test(a)&&(v.support.checkClone||!St.test(a))&&(v.support.html5Clone||!wt.test(a))&&(o=!0,s=v.fragments[a],u=s!==t),s||(s=n.createDocumentFragment(),v.clean(e,n,s,r),o&&(v.fragments[a]=u&&s)),{fragment:s,cacheable:o}},v.fragments={},v.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,t){v.fn[e]=function(n){var r,i=0,s=[],o=v(n),u=o.length,a=this.length===1&&this[0].parentNode;if((a==null||a&&a.nodeType===11&&a.childNodes.length===1)&&u===1)return o[t](this[0]),this;for(;i<u;i++)r=(i>0?this.clone(!0):this).get(),v(o[i])[t](r),s=s.concat(r);return this.pushStack(s,e,o.selector)}}),v.extend({clone:function(e,t,n){var r,i,s,o;v.support.html5Clone||v.isXMLDoc(e)||!wt.test("<"+e.nodeName+">")?o=e.cloneNode(!0):(kt.innerHTML=e.outerHTML,kt.removeChild(o=kt.firstChild));if((!v.support.noCloneEvent||!v.support.noCloneChecked)&&(e.nodeType===1||e.nodeType===11)&&!v.isXMLDoc(e)){Ot(e,o),r=Mt(e),i=Mt(o);for(s=0;r[s];++s)i[s]&&Ot(r[s],i[s])}if(t){At(e,o);if(n){r=Mt(e),i=Mt(o);for(s=0;r[s];++s)At(r[s],i[s])}}return r=i=null,o},clean:function(e,t,n,r){var s,o,u,a,f,l,c,h,p,d,m,g,y=t===i&&Ct,b=[];if(!t||typeof t.createDocumentFragment=="undefined")t=i;for(s=0;(u=e[s])!=null;s++){typeof u=="number"&&(u+="");if(!u)continue;if(typeof u=="string")if(!gt.test(u))u=t.createTextNode(u);else{y=y||lt(t),c=t.createElement("div"),y.appendChild(c),u=u.replace(dt,"<$1></$2>"),a=(vt.exec(u)||["",""])[1].toLowerCase(),f=Nt[a]||Nt._default,l=f[0],c.innerHTML=f[1]+u+f[2];while(l--)c=c.lastChild;if(!v.support.tbody){h=mt.test(u),p=a==="table"&&!h?c.firstChild&&c.firstChild.childNodes:f[1]==="<table>"&&!h?c.childNodes:[];for(o=p.length-1;o>=0;--o)v.nodeName(p[o],"tbody")&&!p[o].childNodes.length&&p[o].parentNode.removeChild(p[o])}!v.support.leadingWhitespace&&pt.test(u)&&c.insertBefore(t.createTextNode(pt.exec(u)[0]),c.firstChild),u=c.childNodes,c.parentNode.removeChild(c)}u.nodeType?b.push(u):v.merge(b,u)}c&&(u=c=y=null);if(!v.support.appendChecked)for(s=0;(u=b[s])!=null;s++)v.nodeName(u,"input")?_t(u):typeof u.getElementsByTagName!="undefined"&&v.grep(u.getElementsByTagName("input"),_t);if(n){m=function(e){if(!e.type||xt.test(e.type))return r?r.push(e.parentNode?e.parentNode.removeChild(e):e):n.appendChild(e)};for(s=0;(u=b[s])!=null;s++)if(!v.nodeName(u,"script")||!m(u))n.appendChild(u),typeof u.getElementsByTagName!="undefined"&&(g=v.grep(v.merge([],u.getElementsByTagName("script")),m),b.splice.apply(b,[s+1,0].concat(g)),s+=g.length)}return b},cleanData:function(e,t){var n,r,i,s,o=0,u=v.expando,a=v.cache,f=v.support.deleteExpando,l=v.event.special;for(;(i=e[o])!=null;o++)if(t||v.acceptData(i)){r=i[u],n=r&&a[r];if(n){if(n.events)for(s in n.events)l[s]?v.event.remove(i,s):v.removeEvent(i,s,n.handle);a[r]&&(delete a[r],f?delete i[u]:i.removeAttribute?i.removeAttribute(u):i[u]=null,v.deletedIds.push(r))}}}}),function(){var e,t;v.uaMatch=function(e){e=e.toLowerCase();var t=/(chrome)[ \/]([\w.]+)/.exec(e)||/(webkit)[ \/]([\w.]+)/.exec(e)||/(opera)(?:.*version|)[ \/]([\w.]+)/.exec(e)||/(msie) ([\w.]+)/.exec(e)||e.indexOf("compatible")<0&&/(mozilla)(?:.*? rv:([\w.]+)|)/.exec(e)||[];return{browser:t[1]||"",version:t[2]||"0"}},e=v.uaMatch(o.userAgent),t={},e.browser&&(t[e.browser]=!0,t.version=e.version),t.chrome?t.webkit=!0:t.webkit&&(t.safari=!0),v.browser=t,v.sub=function(){function e(t,n){return new e.fn.init(t,n)}v.extend(!0,e,this),e.superclass=this,e.fn=e.prototype=this(),e.fn.constructor=e,e.sub=this.sub,e.fn.init=function(r,i){return i&&i instanceof v&&!(i instanceof e)&&(i=e(i)),v.fn.init.call(this,r,i,t)},e.fn.init.prototype=e.fn;var t=e(i);return e}}();var Dt,Pt,Ht,Bt=/alpha\([^)]*\)/i,jt=/opacity=([^)]*)/,Ft=/^(top|right|bottom|left)$/,It=/^(none|table(?!-c[ea]).+)/,qt=/^margin/,Rt=new RegExp("^("+m+")(.*)$","i"),Ut=new RegExp("^("+m+")(?!px)[a-z%]+$","i"),zt=new RegExp("^([-+])=("+m+")","i"),Wt={BODY:"block"},Xt={position:"absolute",visibility:"hidden",display:"block"},Vt={letterSpacing:0,fontWeight:400},$t=["Top","Right","Bottom","Left"],Jt=["Webkit","O","Moz","ms"],Kt=v.fn.toggle;v.fn.extend({css:function(e,n){return v.access(this,function(e,n,r){return r!==t?v.style(e,n,r):v.css(e,n)},e,n,arguments.length>1)},show:function(){return Yt(this,!0)},hide:function(){return Yt(this)},toggle:function(e,t){var n=typeof e=="boolean";return v.isFunction(e)&&v.isFunction(t)?Kt.apply(this,arguments):this.each(function(){(n?e:Gt(this))?v(this).show():v(this).hide()})}}),v.extend({cssHooks:{opacity:{get:function(e,t){if(t){var n=Dt(e,"opacity");return n===""?"1":n}}}},cssNumber:{fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":v.support.cssFloat?"cssFloat":"styleFloat"},style:function(e,n,r,i){if(!e||e.nodeType===3||e.nodeType===8||!e.style)return;var s,o,u,a=v.camelCase(n),f=e.style;n=v.cssProps[a]||(v.cssProps[a]=Qt(f,a)),u=v.cssHooks[n]||v.cssHooks[a];if(r===t)return u&&"get"in u&&(s=u.get(e,!1,i))!==t?s:f[n];o=typeof r,o==="string"&&(s=zt.exec(r))&&(r=(s[1]+1)*s[2]+parseFloat(v.css(e,n)),o="number");if(r==null||o==="number"&&isNaN(r))return;o==="number"&&!v.cssNumber[a]&&(r+="px");if(!u||!("set"in u)||(r=u.set(e,r,i))!==t)try{f[n]=r}catch(l){}},css:function(e,n,r,i){var s,o,u,a=v.camelCase(n);return n=v.cssProps[a]||(v.cssProps[a]=Qt(e.style,a)),u=v.cssHooks[n]||v.cssHooks[a],u&&"get"in u&&(s=u.get(e,!0,i)),s===t&&(s=Dt(e,n)),s==="normal"&&n in Vt&&(s=Vt[n]),r||i!==t?(o=parseFloat(s),r||v.isNumeric(o)?o||0:s):s},swap:function(e,t,n){var r,i,s={};for(i in t)s[i]=e.style[i],e.style[i]=t[i];r=n.call(e);for(i in t)e.style[i]=s[i];return r}}),e.getComputedStyle?Dt=function(t,n){var r,i,s,o,u=e.getComputedStyle(t,null),a=t.style;return u&&(r=u.getPropertyValue(n)||u[n],r===""&&!v.contains(t.ownerDocument,t)&&(r=v.style(t,n)),Ut.test(r)&&qt.test(n)&&(i=a.width,s=a.minWidth,o=a.maxWidth,a.minWidth=a.maxWidth=a.width=r,r=u.width,a.width=i,a.minWidth=s,a.maxWidth=o)),r}:i.documentElement.currentStyle&&(Dt=function(e,t){var n,r,i=e.currentStyle&&e.currentStyle[t],s=e.style;return i==null&&s&&s[t]&&(i=s[t]),Ut.test(i)&&!Ft.test(t)&&(n=s.left,r=e.runtimeStyle&&e.runtimeStyle.left,r&&(e.runtimeStyle.left=e.currentStyle.left),s.left=t==="fontSize"?"1em":i,i=s.pixelLeft+"px",s.left=n,r&&(e.runtimeStyle.left=r)),i===""?"auto":i}),v.each(["height","width"],function(e,t){v.cssHooks[t]={get:function(e,n,r){if(n)return e.offsetWidth===0&&It.test(Dt(e,"display"))?v.swap(e,Xt,function(){return tn(e,t,r)}):tn(e,t,r)},set:function(e,n,r){return Zt(e,n,r?en(e,t,r,v.support.boxSizing&&v.css(e,"boxSizing")==="border-box"):0)}}}),v.support.opacity||(v.cssHooks.opacity={get:function(e,t){return jt.test((t&&e.currentStyle?e.currentStyle.filter:e.style.filter)||"")?.01*parseFloat(RegExp.$1)+"":t?"1":""},set:function(e,t){var n=e.style,r=e.currentStyle,i=v.isNumeric(t)?"alpha(opacity="+t*100+")":"",s=r&&r.filter||n.filter||"";n.zoom=1;if(t>=1&&v.trim(s.replace(Bt,""))===""&&n.removeAttribute){n.removeAttribute("filter");if(r&&!r.filter)return}n.filter=Bt.test(s)?s.replace(Bt,i):s+" "+i}}),v(function(){v.support.reliableMarginRight||(v.cssHooks.marginRight={get:function(e,t){return v.swap(e,{display:"inline-block"},function(){if(t)return Dt(e,"marginRight")})}}),!v.support.pixelPosition&&v.fn.position&&v.each(["top","left"],function(e,t){v.cssHooks[t]={get:function(e,n){if(n){var r=Dt(e,t);return Ut.test(r)?v(e).position()[t]+"px":r}}}})}),v.expr&&v.expr.filters&&(v.expr.filters.hidden=function(e){return e.offsetWidth===0&&e.offsetHeight===0||!v.support.reliableHiddenOffsets&&(e.style&&e.style.display||Dt(e,"display"))==="none"},v.expr.filters.visible=function(e){return!v.expr.filters.hidden(e)}),v.each({margin:"",padding:"",border:"Width"},function(e,t){v.cssHooks[e+t]={expand:function(n){var r,i=typeof n=="string"?n.split(" "):[n],s={};for(r=0;r<4;r++)s[e+$t[r]+t]=i[r]||i[r-2]||i[0];return s}},qt.test(e)||(v.cssHooks[e+t].set=Zt)});var rn=/%20/g,sn=/\[\]$/,on=/\r?\n/g,un=/^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,an=/^(?:select|textarea)/i;v.fn.extend({serialize:function(){return v.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?v.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||an.test(this.nodeName)||un.test(this.type))}).map(function(e,t){var n=v(this).val();return n==null?null:v.isArray(n)?v.map(n,function(e,n){return{name:t.name,value:e.replace(on,"\r\n")}}):{name:t.name,value:n.replace(on,"\r\n")}}).get()}}),v.param=function(e,n){var r,i=[],s=function(e,t){t=v.isFunction(t)?t():t==null?"":t,i[i.length]=encodeURIComponent(e)+"="+encodeURIComponent(t)};n===t&&(n=v.ajaxSettings&&v.ajaxSettings.traditional);if(v.isArray(e)||e.jquery&&!v.isPlainObject(e))v.each(e,function(){s(this.name,this.value)});else for(r in e)fn(r,e[r],n,s);return i.join("&").replace(rn,"+")};var ln,cn,hn=/#.*$/,pn=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,dn=/^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,vn=/^(?:GET|HEAD)$/,mn=/^\/\//,gn=/\?/,yn=/<script\b[^<]*(?:(?!<\/script>)<[^<]*)*<\/script>/gi,bn=/([?&])_=[^&]*/,wn=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+)|)|)/,En=v.fn.load,Sn={},xn={},Tn=["*/"]+["*"];try{cn=s.href}catch(Nn){cn=i.createElement("a"),cn.href="",cn=cn.href}ln=wn.exec(cn.toLowerCase())||[],v.fn.load=function(e,n,r){if(typeof e!="string"&&En)return En.apply(this,arguments);if(!this.length)return this;var i,s,o,u=this,a=e.indexOf(" ");return a>=0&&(i=e.slice(a,e.length),e=e.slice(0,a)),v.isFunction(n)?(r=n,n=t):n&&typeof n=="object"&&(s="POST"),v.ajax({url:e,type:s,dataType:"html",data:n,complete:function(e,t){r&&u.each(r,o||[e.responseText,t,e])}}).done(function(e){o=arguments,u.html(i?v("<div>").append(e.replace(yn,"")).find(i):e)}),this},v.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(e,t){v.fn[t]=function(e){return this.on(t,e)}}),v.each(["get","post"],function(e,n){v[n]=function(e,r,i,s){return v.isFunction(r)&&(s=s||i,i=r,r=t),v.ajax({type:n,url:e,data:r,success:i,dataType:s})}}),v.extend({getScript:function(e,n){return v.get(e,t,n,"script")},getJSON:function(e,t,n){return v.get(e,t,n,"json")},ajaxSetup:function(e,t){return t?Ln(e,v.ajaxSettings):(t=e,e=v.ajaxSettings),Ln(e,t),e},ajaxSettings:{url:cn,isLocal:dn.test(ln[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded; charset=UTF-8",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":Tn},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":e.String,"text html":!0,"text json":v.parseJSON,"text xml":v.parseXML},flatOptions:{context:!0,url:!0}},ajaxPrefilter:Cn(Sn),ajaxTransport:Cn(xn),ajax:function(e,n){function T(e,n,s,a){var l,y,b,w,S,T=n;if(E===2)return;E=2,u&&clearTimeout(u),o=t,i=a||"",x.readyState=e>0?4:0,s&&(w=An(c,x,s));if(e>=200&&e<300||e===304)c.ifModified&&(S=x.getResponseHeader("Last-Modified"),S&&(v.lastModified[r]=S),S=x.getResponseHeader("Etag"),S&&(v.etag[r]=S)),e===304?(T="notmodified",l=!0):(l=On(c,w),T=l.state,y=l.data,b=l.error,l=!b);else{b=T;if(!T||e)T="error",e<0&&(e=0)}x.status=e,x.statusText=(n||T)+"",l?d.resolveWith(h,[y,T,x]):d.rejectWith(h,[x,T,b]),x.statusCode(g),g=t,f&&p.trigger("ajax"+(l?"Success":"Error"),[x,c,l?y:b]),m.fireWith(h,[x,T]),f&&(p.trigger("ajaxComplete",[x,c]),--v.active||v.event.trigger("ajaxStop"))}typeof e=="object"&&(n=e,e=t),n=n||{};var r,i,s,o,u,a,f,l,c=v.ajaxSetup({},n),h=c.context||c,p=h!==c&&(h.nodeType||h instanceof v)?v(h):v.event,d=v.Deferred(),m=v.Callbacks("once memory"),g=c.statusCode||{},b={},w={},E=0,S="canceled",x={readyState:0,setRequestHeader:function(e,t){if(!E){var n=e.toLowerCase();e=w[n]=w[n]||e,b[e]=t}return this},getAllResponseHeaders:function(){return E===2?i:null},getResponseHeader:function(e){var n;if(E===2){if(!s){s={};while(n=pn.exec(i))s[n[1].toLowerCase()]=n[2]}n=s[e.toLowerCase()]}return n===t?null:n},overrideMimeType:function(e){return E||(c.mimeType=e),this},abort:function(e){return e=e||S,o&&o.abort(e),T(0,e),this}};d.promise(x),x.success=x.done,x.error=x.fail,x.complete=m.add,x.statusCode=function(e){if(e){var t;if(E<2)for(t in e)g[t]=[g[t],e[t]];else t=e[x.status],x.always(t)}return this},c.url=((e||c.url)+"").replace(hn,"").replace(mn,ln[1]+"//"),c.dataTypes=v.trim(c.dataType||"*").toLowerCase().split(y),c.crossDomain==null&&(a=wn.exec(c.url.toLowerCase()),c.crossDomain=!(!a||a[1]===ln[1]&&a[2]===ln[2]&&(a[3]||(a[1]==="http:"?80:443))==(ln[3]||(ln[1]==="http:"?80:443)))),c.data&&c.processData&&typeof c.data!="string"&&(c.data=v.param(c.data,c.traditional)),kn(Sn,c,n,x);if(E===2)return x;f=c.global,c.type=c.type.toUpperCase(),c.hasContent=!vn.test(c.type),f&&v.active++===0&&v.event.trigger("ajaxStart");if(!c.hasContent){c.data&&(c.url+=(gn.test(c.url)?"&":"?")+c.data,delete c.data),r=c.url;if(c.cache===!1){var N=v.now(),C=c.url.replace(bn,"$1_="+N);c.url=C+(C===c.url?(gn.test(c.url)?"&":"?")+"_="+N:"")}}(c.data&&c.hasContent&&c.contentType!==!1||n.contentType)&&x.setRequestHeader("Content-Type",c.contentType),c.ifModified&&(r=r||c.url,v.lastModified[r]&&x.setRequestHeader("If-Modified-Since",v.lastModified[r]),v.etag[r]&&x.setRequestHeader("If-None-Match",v.etag[r])),x.setRequestHeader("Accept",c.dataTypes[0]&&c.accepts[c.dataTypes[0]]?c.accepts[c.dataTypes[0]]+(c.dataTypes[0]!=="*"?", "+Tn+"; q=0.01":""):c.accepts["*"]);for(l in c.headers)x.setRequestHeader(l,c.headers[l]);if(!c.beforeSend||c.beforeSend.call(h,x,c)!==!1&&E!==2){S="abort";for(l in{success:1,error:1,complete:1})x[l](c[l]);o=kn(xn,c,n,x);if(!o)T(-1,"No Transport");else{x.readyState=1,f&&p.trigger("ajaxSend",[x,c]),c.async&&c.timeout>0&&(u=setTimeout(function(){x.abort("timeout")},c.timeout));try{E=1,o.send(b,T)}catch(k){if(!(E<2))throw k;T(-1,k)}}return x}return x.abort()},active:0,lastModified:{},etag:{}});var Mn=[],_n=/\?/,Dn=/(=)\?(?=&|$)|\?\?/,Pn=v.now();v.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Mn.pop()||v.expando+"_"+Pn++;return this[e]=!0,e}}),v.ajaxPrefilter("json jsonp",function(n,r,i){var s,o,u,a=n.data,f=n.url,l=n.jsonp!==!1,c=l&&Dn.test(f),h=l&&!c&&typeof a=="string"&&!(n.contentType||"").indexOf("application/x-www-form-urlencoded")&&Dn.test(a);if(n.dataTypes[0]==="jsonp"||c||h)return s=n.jsonpCallback=v.isFunction(n.jsonpCallback)?n.jsonpCallback():n.jsonpCallback,o=e[s],c?n.url=f.replace(Dn,"$1"+s):h?n.data=a.replace(Dn,"$1"+s):l&&(n.url+=(_n.test(f)?"&":"?")+n.jsonp+"="+s),n.converters["script json"]=function(){return u||v.error(s+" was not called"),u[0]},n.dataTypes[0]="json",e[s]=function(){u=arguments},i.always(function(){e[s]=o,n[s]&&(n.jsonpCallback=r.jsonpCallback,Mn.push(s)),u&&v.isFunction(o)&&o(u[0]),u=o=t}),"script"}),v.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(e){return v.globalEval(e),e}}}),v.ajaxPrefilter("script",function(e){e.cache===t&&(e.cache=!1),e.crossDomain&&(e.type="GET",e.global=!1)}),v.ajaxTransport("script",function(e){if(e.crossDomain){var n,r=i.head||i.getElementsByTagName("head")[0]||i.documentElement;return{send:function(s,o){n=i.createElement("script"),n.async="async",e.scriptCharset&&(n.charset=e.scriptCharset),n.src=e.url,n.onload=n.onreadystatechange=function(e,i){if(i||!n.readyState||/loaded|complete/.test(n.readyState))n.onload=n.onreadystatechange=null,r&&n.parentNode&&r.removeChild(n),n=t,i||o(200,"success")},r.insertBefore(n,r.firstChild)},abort:function(){n&&n.onload(0,1)}}}});var Hn,Bn=e.ActiveXObject?function(){for(var e in Hn)Hn[e](0,1)}:!1,jn=0;v.ajaxSettings.xhr=e.ActiveXObject?function(){return!this.isLocal&&Fn()||In()}:Fn,function(e){v.extend(v.support,{ajax:!!e,cors:!!e&&"withCredentials"in e})}(v.ajaxSettings.xhr()),v.support.ajax&&v.ajaxTransport(function(n){if(!n.crossDomain||v.support.cors){var r;return{send:function(i,s){var o,u,a=n.xhr();n.username?a.open(n.type,n.url,n.async,n.username,n.password):a.open(n.type,n.url,n.async);if(n.xhrFields)for(u in n.xhrFields)a[u]=n.xhrFields[u];n.mimeType&&a.overrideMimeType&&a.overrideMimeType(n.mimeType),!n.crossDomain&&!i["X-Requested-With"]&&(i["X-Requested-With"]="XMLHttpRequest");try{for(u in i)a.setRequestHeader(u,i[u])}catch(f){}a.send(n.hasContent&&n.data||null),r=function(e,i){var u,f,l,c,h;try{if(r&&(i||a.readyState===4)){r=t,o&&(a.onreadystatechange=v.noop,Bn&&delete Hn[o]);if(i)a.readyState!==4&&a.abort();else{u=a.status,l=a.getAllResponseHeaders(),c={},h=a.responseXML,h&&h.documentElement&&(c.xml=h);try{c.text=a.responseText}catch(p){}try{f=a.statusText}catch(p){f=""}!u&&n.isLocal&&!n.crossDomain?u=c.text?200:404:u===1223&&(u=204)}}}catch(d){i||s(-1,d)}c&&s(u,f,c,l)},n.async?a.readyState===4?setTimeout(r,0):(o=++jn,Bn&&(Hn||(Hn={},v(e).unload(Bn)),Hn[o]=r),a.onreadystatechange=r):r()},abort:function(){r&&r(0,1)}}}});var qn,Rn,Un=/^(?:toggle|show|hide)$/,zn=new RegExp("^(?:([-+])=|)("+m+")([a-z%]*)$","i"),Wn=/queueHooks$/,Xn=[Gn],Vn={"*":[function(e,t){var n,r,i=this.createTween(e,t),s=zn.exec(t),o=i.cur(),u=+o||0,a=1,f=20;if(s){n=+s[2],r=s[3]||(v.cssNumber[e]?"":"px");if(r!=="px"&&u){u=v.css(i.elem,e,!0)||n||1;do a=a||".5",u/=a,v.style(i.elem,e,u+r);while(a!==(a=i.cur()/o)&&a!==1&&--f)}i.unit=r,i.start=u,i.end=s[1]?u+(s[1]+1)*n:n}return i}]};v.Animation=v.extend(Kn,{tweener:function(e,t){v.isFunction(e)?(t=e,e=["*"]):e=e.split(" ");var n,r=0,i=e.length;for(;r<i;r++)n=e[r],Vn[n]=Vn[n]||[],Vn[n].unshift(t)},prefilter:function(e,t){t?Xn.unshift(e):Xn.push(e)}}),v.Tween=Yn,Yn.prototype={constructor:Yn,init:function(e,t,n,r,i,s){this.elem=e,this.prop=n,this.easing=i||"swing",this.options=t,this.start=this.now=this.cur(),this.end=r,this.unit=s||(v.cssNumber[n]?"":"px")},cur:function(){var e=Yn.propHooks[this.prop];return e&&e.get?e.get(this):Yn.propHooks._default.get(this)},run:function(e){var t,n=Yn.propHooks[this.prop];return this.options.duration?this.pos=t=v.easing[this.easing](e,this.options.duration*e,0,1,this.options.duration):this.pos=t=e,this.now=(this.end-this.start)*t+this.start,this.options.step&&this.options.step.call(this.elem,this.now,this),n&&n.set?n.set(this):Yn.propHooks._default.set(this),this}},Yn.prototype.init.prototype=Yn.prototype,Yn.propHooks={_default:{get:function(e){var t;return e.elem[e.prop]==null||!!e.elem.style&&e.elem.style[e.prop]!=null?(t=v.css(e.elem,e.prop,!1,""),!t||t==="auto"?0:t):e.elem[e.prop]},set:function(e){v.fx.step[e.prop]?v.fx.step[e.prop](e):e.elem.style&&(e.elem.style[v.cssProps[e.prop]]!=null||v.cssHooks[e.prop])?v.style(e.elem,e.prop,e.now+e.unit):e.elem[e.prop]=e.now}}},Yn.propHooks.scrollTop=Yn.propHooks.scrollLeft={set:function(e){e.elem.nodeType&&e.elem.parentNode&&(e.elem[e.prop]=e.now)}},v.each(["toggle","show","hide"],function(e,t){var n=v.fn[t];v.fn[t]=function(r,i,s){return r==null||typeof r=="boolean"||!e&&v.isFunction(r)&&v.isFunction(i)?n.apply(this,arguments):this.animate(Zn(t,!0),r,i,s)}}),v.fn.extend({fadeTo:function(e,t,n,r){return this.filter(Gt).css("opacity",0).show().end().animate({opacity:t},e,n,r)},animate:function(e,t,n,r){var i=v.isEmptyObject(e),s=v.speed(t,n,r),o=function(){var t=Kn(this,v.extend({},e),s);i&&t.stop(!0)};return i||s.queue===!1?this.each(o):this.queue(s.queue,o)},stop:function(e,n,r){var i=function(e){var t=e.stop;delete e.stop,t(r)};return typeof e!="string"&&(r=n,n=e,e=t),n&&e!==!1&&this.queue(e||"fx",[]),this.each(function(){var t=!0,n=e!=null&&e+"queueHooks",s=v.timers,o=v._data(this);if(n)o[n]&&o[n].stop&&i(o[n]);else for(n in o)o[n]&&o[n].stop&&Wn.test(n)&&i(o[n]);for(n=s.length;n--;)s[n].elem===this&&(e==null||s[n].queue===e)&&(s[n].anim.stop(r),t=!1,s.splice(n,1));(t||!r)&&v.dequeue(this,e)})}}),v.each({slideDown:Zn("show"),slideUp:Zn("hide"),slideToggle:Zn("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(e,t){v.fn[e]=function(e,n,r){return this.animate(t,e,n,r)}}),v.speed=function(e,t,n){var r=e&&typeof e=="object"?v.extend({},e):{complete:n||!n&&t||v.isFunction(e)&&e,duration:e,easing:n&&t||t&&!v.isFunction(t)&&t};r.duration=v.fx.off?0:typeof r.duration=="number"?r.duration:r.duration in v.fx.speeds?v.fx.speeds[r.duration]:v.fx.speeds._default;if(r.queue==null||r.queue===!0)r.queue="fx";return r.old=r.complete,r.complete=function(){v.isFunction(r.old)&&r.old.call(this),r.queue&&v.dequeue(this,r.queue)},r},v.easing={linear:function(e){return e},swing:function(e){return.5-Math.cos(e*Math.PI)/2}},v.timers=[],v.fx=Yn.prototype.init,v.fx.tick=function(){var e,n=v.timers,r=0;qn=v.now();for(;r<n.length;r++)e=n[r],!e()&&n[r]===e&&n.splice(r--,1);n.length||v.fx.stop(),qn=t},v.fx.timer=function(e){e()&&v.timers.push(e)&&!Rn&&(Rn=setInterval(v.fx.tick,v.fx.interval))},v.fx.interval=13,v.fx.stop=function(){clearInterval(Rn),Rn=null},v.fx.speeds={slow:600,fast:200,_default:400},v.fx.step={},v.expr&&v.expr.filters&&(v.expr.filters.animated=function(e){return v.grep(v.timers,function(t){return e===t.elem}).length});var er=/^(?:body|html)$/i;v.fn.offset=function(e){if(arguments.length)return e===t?this:this.each(function(t){v.offset.setOffset(this,e,t)});var n,r,i,s,o,u,a,f={top:0,left:0},l=this[0],c=l&&l.ownerDocument;if(!c)return;return(r=c.body)===l?v.offset.bodyOffset(l):(n=c.documentElement,v.contains(n,l)?(typeof l.getBoundingClientRect!="undefined"&&(f=l.getBoundingClientRect()),i=tr(c),s=n.clientTop||r.clientTop||0,o=n.clientLeft||r.clientLeft||0,u=i.pageYOffset||n.scrollTop,a=i.pageXOffset||n.scrollLeft,{top:f.top+u-s,left:f.left+a-o}):f)},v.offset={bodyOffset:function(e){var t=e.offsetTop,n=e.offsetLeft;return v.support.doesNotIncludeMarginInBodyOffset&&(t+=parseFloat(v.css(e,"marginTop"))||0,n+=parseFloat(v.css(e,"marginLeft"))||0),{top:t,left:n}},setOffset:function(e,t,n){var r=v.css(e,"position");r==="static"&&(e.style.position="relative");var i=v(e),s=i.offset(),o=v.css(e,"top"),u=v.css(e,"left"),a=(r==="absolute"||r==="fixed")&&v.inArray("auto",[o,u])>-1,f={},l={},c,h;a?(l=i.position(),c=l.top,h=l.left):(c=parseFloat(o)||0,h=parseFloat(u)||0),v.isFunction(t)&&(t=t.call(e,n,s)),t.top!=null&&(f.top=t.top-s.top+c),t.left!=null&&(f.left=t.left-s.left+h),"using"in t?t.using.call(e,f):i.css(f)}},v.fn.extend({position:function(){if(!this[0])return;var e=this[0],t=this.offsetParent(),n=this.offset(),r=er.test(t[0].nodeName)?{top:0,left:0}:t.offset();return n.top-=parseFloat(v.css(e,"marginTop"))||0,n.left-=parseFloat(v.css(e,"marginLeft"))||0,r.top+=parseFloat(v.css(t[0],"borderTopWidth"))||0,r.left+=parseFloat(v.css(t[0],"borderLeftWidth"))||0,{top:n.top-r.top,left:n.left-r.left}},offsetParent:function(){return this.map(function(){var e=this.offsetParent||i.body;while(e&&!er.test(e.nodeName)&&v.css(e,"position")==="static")e=e.offsetParent;return e||i.body})}}),v.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(e,n){var r=/Y/.test(n);v.fn[e]=function(i){return v.access(this,function(e,i,s){var o=tr(e);if(s===t)return o?n in o?o[n]:o.document.documentElement[i]:e[i];o?o.scrollTo(r?v(o).scrollLeft():s,r?s:v(o).scrollTop()):e[i]=s},e,i,arguments.length,null)}}),v.each({Height:"height",Width:"width"},function(e,n){v.each({padding:"inner"+e,content:n,"":"outer"+e},function(r,i){v.fn[i]=function(i,s){var o=arguments.length&&(r||typeof i!="boolean"),u=r||(i===!0||s===!0?"margin":"border");return v.access(this,function(n,r,i){var s;return v.isWindow(n)?n.document.documentElement["client"+e]:n.nodeType===9?(s=n.documentElement,Math.max(n.body["scroll"+e],s["scroll"+e],n.body["offset"+e],s["offset"+e],s["client"+e])):i===t?v.css(n,r,i,u):v.style(n,r,i,u)},n,o?i:t,o,null)}})}),e.jQuery=e.$=v,typeof define=="function"&&define.amd&&define.amd.jQuery&&define("jquery",[],function(){return v})})(window);
 jQuery.noConflict();
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-includes/js/jquery/jquery.masonry.min.js	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,10 @@
+/**
+ * jQuery Masonry v2.1.05
+ * A dynamic layout plugin for jQuery
+ * The flip-side of CSS Floats
+ * http://masonry.desandro.com
+ *
+ * Licensed under the MIT license.
+ * Copyright 2012 David DeSandro
+ */
+(function(a,b,c){"use strict";var d=b.event,e;d.special.smartresize={setup:function(){b(this).bind("resize",d.special.smartresize.handler)},teardown:function(){b(this).unbind("resize",d.special.smartresize.handler)},handler:function(a,c){var d=this,f=arguments;a.type="smartresize",e&&clearTimeout(e),e=setTimeout(function(){b.event.handle.apply(d,f)},c==="execAsap"?0:100)}},b.fn.smartresize=function(a){return a?this.bind("smartresize",a):this.trigger("smartresize",["execAsap"])},b.Mason=function(a,c){this.element=b(c),this._create(a),this._init()},b.Mason.settings={isResizable:!0,isAnimated:!1,animationOptions:{queue:!1,duration:500},gutterWidth:0,isRTL:!1,isFitWidth:!1,containerStyle:{position:"relative"}},b.Mason.prototype={_filterFindBricks:function(a){var b=this.options.itemSelector;return b?a.filter(b).add(a.find(b)):a},_getBricks:function(a){var b=this._filterFindBricks(a).css({position:"absolute"}).addClass("masonry-brick");return b},_create:function(c){this.options=b.extend(!0,{},b.Mason.settings,c),this.styleQueue=[];var d=this.element[0].style;this.originalStyle={height:d.height||""};var e=this.options.containerStyle;for(var f in e)this.originalStyle[f]=d[f]||"";this.element.css(e),this.horizontalDirection=this.options.isRTL?"right":"left",this.offset={x:parseInt(this.element.css("padding-"+this.horizontalDirection),10),y:parseInt(this.element.css("padding-top"),10)},this.isFluid=this.options.columnWidth&&typeof this.options.columnWidth=="function";var g=this;setTimeout(function(){g.element.addClass("masonry")},0),this.options.isResizable&&b(a).bind("smartresize.masonry",function(){g.resize()}),this.reloadItems()},_init:function(a){this._getColumns(),this._reLayout(a)},option:function(a,c){b.isPlainObject(a)&&(this.options=b.extend(!0,this.options,a))},layout:function(a,b){for(var c=0,d=a.length;c<d;c++)this._placeBrick(a[c]);var e={};e.height=Math.max.apply(Math,this.colYs);if(this.options.isFitWidth){var f=0;c=this.cols;while(--c){if(this.colYs[c]!==0)break;f++}e.width=(this.cols-f)*this.columnWidth-this.options.gutterWidth}this.styleQueue.push({$el:this.element,style:e});var g=this.isLaidOut?this.options.isAnimated?"animate":"css":"css",h=this.options.animationOptions,i;for(c=0,d=this.styleQueue.length;c<d;c++)i=this.styleQueue[c],i.$el[g](i.style,h);this.styleQueue=[],b&&b.call(a),this.isLaidOut=!0},_getColumns:function(){var a=this.options.isFitWidth?this.element.parent():this.element,b=a.width();this.columnWidth=this.isFluid?this.options.columnWidth(b):this.options.columnWidth||this.$bricks.outerWidth(!0)||b,this.columnWidth+=this.options.gutterWidth,this.cols=Math.floor((b+this.options.gutterWidth)/this.columnWidth),this.cols=Math.max(this.cols,1)},_placeBrick:function(a){var c=b(a),d,e,f,g,h;d=Math.ceil(c.outerWidth(!0)/this.columnWidth),d=Math.min(d,this.cols);if(d===1)f=this.colYs;else{e=this.cols+1-d,f=[];for(h=0;h<e;h++)g=this.colYs.slice(h,h+d),f[h]=Math.max.apply(Math,g)}var i=Math.min.apply(Math,f),j=0;for(var k=0,l=f.length;k<l;k++)if(f[k]===i){j=k;break}var m={top:i+this.offset.y};m[this.horizontalDirection]=this.columnWidth*j+this.offset.x,this.styleQueue.push({$el:c,style:m});var n=i+c.outerHeight(!0),o=this.cols+1-l;for(k=0;k<o;k++)this.colYs[j+k]=n},resize:function(){var a=this.cols;this._getColumns(),(this.isFluid||this.cols!==a)&&this._reLayout()},_reLayout:function(a){var b=this.cols;this.colYs=[];while(b--)this.colYs.push(0);this.layout(this.$bricks,a)},reloadItems:function(){this.$bricks=this._getBricks(this.element.children())},reload:function(a){this.reloadItems(),this._init(a)},appended:function(a,b,c){if(b){this._filterFindBricks(a).css({top:this.element.height()});var d=this;setTimeout(function(){d._appended(a,c)},1)}else this._appended(a,c)},_appended:function(a,b){var c=this._getBricks(a);this.$bricks=this.$bricks.add(c),this.layout(c,b)},remove:function(a){this.$bricks=this.$bricks.not(a),a.remove()},destroy:function(){this.$bricks.removeClass("masonry-brick").each(function(){this.style.position="",this.style.top="",this.style.left=""});var c=this.element[0].style;for(var d in this.originalStyle)c[d]=this.originalStyle[d];this.element.unbind(".masonry").removeClass("masonry").removeData("masonry"),b(a).unbind(".masonry")}},b.fn.imagesLoaded=function(a){function h(){a.call(c,d)}function i(a){var c=a.target;c.src!==f&&b.inArray(c,g)===-1&&(g.push(c),--e<=0&&(setTimeout(h),d.unbind(".imagesLoaded",i)))}var c=this,d=c.find("img").add(c.filter("img")),e=d.length,f="data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///ywAAAAAAQABAAACAUwAOw==",g=[];return e||h(),d.bind("load.imagesLoaded error.imagesLoaded",i).each(function(){var a=this.src;this.src=f,this.src=a}),c};var f=function(b){a.console&&a.console.error(b)};b.fn.masonry=function(a){if(typeof a=="string"){var c=Array.prototype.slice.call(arguments,1);this.each(function(){var d=b.data(this,"masonry");if(!d){f("cannot call methods on masonry prior to initialization; attempted to call method '"+a+"'");return}if(!b.isFunction(d[a])||a.charAt(0)==="_"){f("no such method '"+a+"' for masonry instance");return}d[a].apply(d,c)})}else this.each(function(){var c=b.data(this,"masonry");c?(c.option(a||{}),c._init()):b.data(this,"masonry",new b.Mason(a,this))});return this}})(window,jQuery);
\ No newline at end of file
--- a/web/wp-includes/js/jquery/jquery.table-hotkeys.dev.js	Wed Dec 19 12:35:13 2012 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,99 +0,0 @@
-(function($){
-	$.fn.filter_visible = function(depth) {
-		depth = depth || 3;
-		var is_visible = function() {
-			var p = $(this), i;
-			for(i=0; i<depth-1; ++i) {
-				if (!p.is(':visible')) return false;
-				p = p.parent();
-			}
-			return true;
-		}
-		return this.filter(is_visible);
-	};
-	$.table_hotkeys = function(table, keys, opts) {
-		opts = $.extend($.table_hotkeys.defaults, opts);
-		var selected_class, destructive_class, set_current_row, adjacent_row_callback, get_adjacent_row, adjacent_row, prev_row, next_row, check, get_first_row, get_last_row, make_key_callback, first_row;
-		
-		selected_class = opts.class_prefix + opts.selected_suffix;
-		destructive_class = opts.class_prefix + opts.destructive_suffix
-		set_current_row = function (tr) {
-			if ($.table_hotkeys.current_row) $.table_hotkeys.current_row.removeClass(selected_class);
-			tr.addClass(selected_class);
-			tr[0].scrollIntoView(false);
-			$.table_hotkeys.current_row = tr;
-		};
-		adjacent_row_callback = function(which) {
-			if (!adjacent_row(which) && $.isFunction(opts[which+'_page_link_cb'])) {
-				opts[which+'_page_link_cb']();
-			}
-		};
-		get_adjacent_row = function(which) {
-			var first_row, method;
-			
-			if (!$.table_hotkeys.current_row) {
-				first_row = get_first_row();
-				$.table_hotkeys.current_row = first_row;
-				return first_row[0];
-			}
-			method = 'prev' == which? $.fn.prevAll : $.fn.nextAll;
-			return method.call($.table_hotkeys.current_row, opts.cycle_expr).filter_visible()[0];
-		};
-		adjacent_row = function(which) {
-			var adj = get_adjacent_row(which);
-			if (!adj) return false;
-			set_current_row($(adj));
-			return true;
-		};
-		prev_row = function() { return adjacent_row('prev'); };
-		next_row = function() { return adjacent_row('next'); };
-		check = function() {
-			$(opts.checkbox_expr, $.table_hotkeys.current_row).each(function() {
-				this.checked = !this.checked;
-			});
-		};
-		get_first_row = function() {
-			return $(opts.cycle_expr, table).filter_visible().eq(opts.start_row_index);
-		};
-		get_last_row = function() {
-			var rows = $(opts.cycle_expr, table).filter_visible();
-			return rows.eq(rows.length-1);
-		};
-		make_key_callback = function(expr) {
-			return function() {
-				if ( null == $.table_hotkeys.current_row ) return false;
-				var clickable = $(expr, $.table_hotkeys.current_row);
-				if (!clickable.length) return false;
-				if (clickable.is('.'+destructive_class)) next_row() || prev_row();
-				clickable.click();
-			}
-		};
-		first_row = get_first_row();
-		if (!first_row.length) return;
-		if (opts.highlight_first)
-			set_current_row(first_row);
-		else if (opts.highlight_last)
-			set_current_row(get_last_row());
-		$.hotkeys.add(opts.prev_key, opts.hotkeys_opts, function() {return adjacent_row_callback('prev')});
-		$.hotkeys.add(opts.next_key, opts.hotkeys_opts, function() {return adjacent_row_callback('next')});
-		$.hotkeys.add(opts.mark_key, opts.hotkeys_opts, check);
-		$.each(keys, function() {
-			var callback, key;
-			
-			if ($.isFunction(this[1])) {
-				callback = this[1];
-				key = this[0];
-				$.hotkeys.add(key, opts.hotkeys_opts, function(event) { return callback(event, $.table_hotkeys.current_row); });
-			} else {
-				key = this;
-				$.hotkeys.add(key, opts.hotkeys_opts, make_key_callback('.'+opts.class_prefix+key));
-			}
-		});
-
-	};
-	$.table_hotkeys.current_row = null;
-	$.table_hotkeys.defaults = {cycle_expr: 'tr', class_prefix: 'vim-', selected_suffix: 'current',
-		destructive_suffix: 'destructive', hotkeys_opts: {disableInInput: true, type: 'keypress'},
-		checkbox_expr: ':checkbox', next_key: 'j', prev_key: 'k', mark_key: 'x',
-		start_row_index: 2, highlight_first: false, highlight_last: false, next_page_link_cb: false, prev_page_link_cb: false};
-})(jQuery);
--- a/web/wp-includes/js/jquery/jquery.table-hotkeys.js	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/js/jquery/jquery.table-hotkeys.js	Wed Dec 19 17:46:52 2012 -0800
@@ -1,1 +1,99 @@
-(function(a){a.fn.filter_visible=function(c){c=c||3;var b=function(){var e=a(this),d;for(d=0;d<c-1;++d){if(!e.is(":visible")){return false}e=e.parent()}return true};return this.filter(b)};a.table_hotkeys=function(p,q,b){b=a.extend(a.table_hotkeys.defaults,b);var i,l,e,f,m,d,k,o,c,h,g,n,j;i=b.class_prefix+b.selected_suffix;l=b.class_prefix+b.destructive_suffix;e=function(r){if(a.table_hotkeys.current_row){a.table_hotkeys.current_row.removeClass(i)}r.addClass(i);r[0].scrollIntoView(false);a.table_hotkeys.current_row=r};f=function(r){if(!d(r)&&a.isFunction(b[r+"_page_link_cb"])){b[r+"_page_link_cb"]()}};m=function(s){var r,t;if(!a.table_hotkeys.current_row){r=h();a.table_hotkeys.current_row=r;return r[0]}t="prev"==s?a.fn.prevAll:a.fn.nextAll;return t.call(a.table_hotkeys.current_row,b.cycle_expr).filter_visible()[0]};d=function(s){var r=m(s);if(!r){return false}e(a(r));return true};k=function(){return d("prev")};o=function(){return d("next")};c=function(){a(b.checkbox_expr,a.table_hotkeys.current_row).each(function(){this.checked=!this.checked})};h=function(){return a(b.cycle_expr,p).filter_visible().eq(b.start_row_index)};g=function(){var r=a(b.cycle_expr,p).filter_visible();return r.eq(r.length-1)};n=function(r){return function(){if(null==a.table_hotkeys.current_row){return false}var s=a(r,a.table_hotkeys.current_row);if(!s.length){return false}if(s.is("."+l)){o()||k()}s.click()}};j=h();if(!j.length){return}if(b.highlight_first){e(j)}else{if(b.highlight_last){e(g())}}a.hotkeys.add(b.prev_key,b.hotkeys_opts,function(){return f("prev")});a.hotkeys.add(b.next_key,b.hotkeys_opts,function(){return f("next")});a.hotkeys.add(b.mark_key,b.hotkeys_opts,c);a.each(q,function(){var s,r;if(a.isFunction(this[1])){s=this[1];r=this[0];a.hotkeys.add(r,b.hotkeys_opts,function(t){return s(t,a.table_hotkeys.current_row)})}else{r=this;a.hotkeys.add(r,b.hotkeys_opts,n("."+b.class_prefix+r))}})};a.table_hotkeys.current_row=null;a.table_hotkeys.defaults={cycle_expr:"tr",class_prefix:"vim-",selected_suffix:"current",destructive_suffix:"destructive",hotkeys_opts:{disableInInput:true,type:"keypress"},checkbox_expr:":checkbox",next_key:"j",prev_key:"k",mark_key:"x",start_row_index:2,highlight_first:false,highlight_last:false,next_page_link_cb:false,prev_page_link_cb:false}})(jQuery);
\ No newline at end of file
+(function($){
+	$.fn.filter_visible = function(depth) {
+		depth = depth || 3;
+		var is_visible = function() {
+			var p = $(this), i;
+			for(i=0; i<depth-1; ++i) {
+				if (!p.is(':visible')) return false;
+				p = p.parent();
+			}
+			return true;
+		}
+		return this.filter(is_visible);
+	};
+	$.table_hotkeys = function(table, keys, opts) {
+		opts = $.extend($.table_hotkeys.defaults, opts);
+		var selected_class, destructive_class, set_current_row, adjacent_row_callback, get_adjacent_row, adjacent_row, prev_row, next_row, check, get_first_row, get_last_row, make_key_callback, first_row;
+		
+		selected_class = opts.class_prefix + opts.selected_suffix;
+		destructive_class = opts.class_prefix + opts.destructive_suffix
+		set_current_row = function (tr) {
+			if ($.table_hotkeys.current_row) $.table_hotkeys.current_row.removeClass(selected_class);
+			tr.addClass(selected_class);
+			tr[0].scrollIntoView(false);
+			$.table_hotkeys.current_row = tr;
+		};
+		adjacent_row_callback = function(which) {
+			if (!adjacent_row(which) && $.isFunction(opts[which+'_page_link_cb'])) {
+				opts[which+'_page_link_cb']();
+			}
+		};
+		get_adjacent_row = function(which) {
+			var first_row, method;
+			
+			if (!$.table_hotkeys.current_row) {
+				first_row = get_first_row();
+				$.table_hotkeys.current_row = first_row;
+				return first_row[0];
+			}
+			method = 'prev' == which? $.fn.prevAll : $.fn.nextAll;
+			return method.call($.table_hotkeys.current_row, opts.cycle_expr).filter_visible()[0];
+		};
+		adjacent_row = function(which) {
+			var adj = get_adjacent_row(which);
+			if (!adj) return false;
+			set_current_row($(adj));
+			return true;
+		};
+		prev_row = function() { return adjacent_row('prev'); };
+		next_row = function() { return adjacent_row('next'); };
+		check = function() {
+			$(opts.checkbox_expr, $.table_hotkeys.current_row).each(function() {
+				this.checked = !this.checked;
+			});
+		};
+		get_first_row = function() {
+			return $(opts.cycle_expr, table).filter_visible().eq(opts.start_row_index);
+		};
+		get_last_row = function() {
+			var rows = $(opts.cycle_expr, table).filter_visible();
+			return rows.eq(rows.length-1);
+		};
+		make_key_callback = function(expr) {
+			return function() {
+				if ( null == $.table_hotkeys.current_row ) return false;
+				var clickable = $(expr, $.table_hotkeys.current_row);
+				if (!clickable.length) return false;
+				if (clickable.is('.'+destructive_class)) next_row() || prev_row();
+				clickable.click();
+			}
+		};
+		first_row = get_first_row();
+		if (!first_row.length) return;
+		if (opts.highlight_first)
+			set_current_row(first_row);
+		else if (opts.highlight_last)
+			set_current_row(get_last_row());
+		$.hotkeys.add(opts.prev_key, opts.hotkeys_opts, function() {return adjacent_row_callback('prev')});
+		$.hotkeys.add(opts.next_key, opts.hotkeys_opts, function() {return adjacent_row_callback('next')});
+		$.hotkeys.add(opts.mark_key, opts.hotkeys_opts, check);
+		$.each(keys, function() {
+			var callback, key;
+			
+			if ($.isFunction(this[1])) {
+				callback = this[1];
+				key = this[0];
+				$.hotkeys.add(key, opts.hotkeys_opts, function(event) { return callback(event, $.table_hotkeys.current_row); });
+			} else {
+				key = this;
+				$.hotkeys.add(key, opts.hotkeys_opts, make_key_callback('.'+opts.class_prefix+key));
+			}
+		});
+
+	};
+	$.table_hotkeys.current_row = null;
+	$.table_hotkeys.defaults = {cycle_expr: 'tr', class_prefix: 'vim-', selected_suffix: 'current',
+		destructive_suffix: 'destructive', hotkeys_opts: {disableInInput: true, type: 'keypress'},
+		checkbox_expr: ':checkbox', next_key: 'j', prev_key: 'k', mark_key: 'x',
+		start_row_index: 2, highlight_first: false, highlight_last: false, next_page_link_cb: false, prev_page_link_cb: false};
+})(jQuery);
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-includes/js/jquery/jquery.table-hotkeys.min.js	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,1 @@
+(function(a){a.fn.filter_visible=function(c){c=c||3;var b=function(){var e=a(this),d;for(d=0;d<c-1;++d){if(!e.is(":visible")){return false}e=e.parent()}return true};return this.filter(b)};a.table_hotkeys=function(p,q,b){b=a.extend(a.table_hotkeys.defaults,b);var i,l,e,f,m,d,k,o,c,h,g,n,j;i=b.class_prefix+b.selected_suffix;l=b.class_prefix+b.destructive_suffix;e=function(r){if(a.table_hotkeys.current_row){a.table_hotkeys.current_row.removeClass(i)}r.addClass(i);r[0].scrollIntoView(false);a.table_hotkeys.current_row=r};f=function(r){if(!d(r)&&a.isFunction(b[r+"_page_link_cb"])){b[r+"_page_link_cb"]()}};m=function(s){var r,t;if(!a.table_hotkeys.current_row){r=h();a.table_hotkeys.current_row=r;return r[0]}t="prev"==s?a.fn.prevAll:a.fn.nextAll;return t.call(a.table_hotkeys.current_row,b.cycle_expr).filter_visible()[0]};d=function(s){var r=m(s);if(!r){return false}e(a(r));return true};k=function(){return d("prev")};o=function(){return d("next")};c=function(){a(b.checkbox_expr,a.table_hotkeys.current_row).each(function(){this.checked=!this.checked})};h=function(){return a(b.cycle_expr,p).filter_visible().eq(b.start_row_index)};g=function(){var r=a(b.cycle_expr,p).filter_visible();return r.eq(r.length-1)};n=function(r){return function(){if(null==a.table_hotkeys.current_row){return false}var s=a(r,a.table_hotkeys.current_row);if(!s.length){return false}if(s.is("."+l)){o()||k()}s.click()}};j=h();if(!j.length){return}if(b.highlight_first){e(j)}else{if(b.highlight_last){e(g())}}a.hotkeys.add(b.prev_key,b.hotkeys_opts,function(){return f("prev")});a.hotkeys.add(b.next_key,b.hotkeys_opts,function(){return f("next")});a.hotkeys.add(b.mark_key,b.hotkeys_opts,c);a.each(q,function(){var s,r;if(a.isFunction(this[1])){s=this[1];r=this[0];a.hotkeys.add(r,b.hotkeys_opts,function(t){return s(t,a.table_hotkeys.current_row)})}else{r=this;a.hotkeys.add(r,b.hotkeys_opts,n("."+b.class_prefix+r))}})};a.table_hotkeys.current_row=null;a.table_hotkeys.defaults={cycle_expr:"tr",class_prefix:"vim-",selected_suffix:"current",destructive_suffix:"destructive",hotkeys_opts:{disableInInput:true,type:"keypress"},checkbox_expr:":checkbox",next_key:"j",prev_key:"k",mark_key:"x",start_row_index:2,highlight_first:false,highlight_last:false,next_page_link_cb:false,prev_page_link_cb:false}})(jQuery);
\ No newline at end of file
--- a/web/wp-includes/js/jquery/suggest.dev.js	Wed Dec 19 12:35:13 2012 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,330 +0,0 @@
-/*
- *	jquery.suggest 1.1b - 2007-08-06
- * Patched by Mark Jaquith with Alexander Dick's "multiple items" patch to allow for auto-suggesting of more than one tag before submitting
- * See: http://www.vulgarisoip.com/2007/06/29/jquerysuggest-an-alternative-jquery-based-autocomplete-library/#comment-7228
- *
- *	Uses code and techniques from following libraries:
- *	1. http://www.dyve.net/jquery/?autocomplete
- *	2. http://dev.jquery.com/browser/trunk/plugins/interface/iautocompleter.js
- *
- *	All the new stuff written by Peter Vulgaris (www.vulgarisoip.com)
- *	Feel free to do whatever you want with this file
- *
- */
-
-(function($) {
-
-	$.suggest = function(input, options) {
-		var $input, $results, timeout, prevLength, cache, cacheSize;
-
-		$input = $(input).attr("autocomplete", "off");
-		$results = $(document.createElement("ul"));
-
-		timeout = false;		// hold timeout ID for suggestion results to appear
-		prevLength = 0;			// last recorded length of $input.val()
-		cache = [];				// cache MRU list
-		cacheSize = 0;			// size of cache in chars (bytes?)
-
-		$results.addClass(options.resultsClass).appendTo('body');
-
-
-		resetPosition();
-		$(window)
-			.load(resetPosition)		// just in case user is changing size of page while loading
-			.resize(resetPosition);
-
-		$input.blur(function() {
-			setTimeout(function() { $results.hide() }, 200);
-		});
-
-
-		// help IE users if possible
-		if ( $.browser.msie ) {
-			try {
-				$results.bgiframe();
-			} catch(e) { }
-		}
-
-		// I really hate browser detection, but I don't see any other way
-		if ($.browser.mozilla)
-			$input.keypress(processKey);	// onkeypress repeats arrow keys in Mozilla/Opera
-		else
-			$input.keydown(processKey);		// onkeydown repeats arrow keys in IE/Safari
-
-
-
-
-		function resetPosition() {
-			// requires jquery.dimension plugin
-			var offset = $input.offset();
-			$results.css({
-				top: (offset.top + input.offsetHeight) + 'px',
-				left: offset.left + 'px'
-			});
-		}
-
-
-		function processKey(e) {
-
-			// handling up/down/escape requires results to be visible
-			// handling enter/tab requires that AND a result to be selected
-			if ((/27$|38$|40$/.test(e.keyCode) && $results.is(':visible')) ||
-				(/^13$|^9$/.test(e.keyCode) && getCurrentResult())) {
-
-				if (e.preventDefault)
-					e.preventDefault();
-				if (e.stopPropagation)
-					e.stopPropagation();
-
-				e.cancelBubble = true;
-				e.returnValue = false;
-
-				switch(e.keyCode) {
-
-					case 38: // up
-						prevResult();
-						break;
-
-					case 40: // down
-						nextResult();
-						break;
-
-					case 9:  // tab
-					case 13: // return
-						selectCurrentResult();
-						break;
-
-					case 27: //	escape
-						$results.hide();
-						break;
-
-				}
-
-			} else if ($input.val().length != prevLength) {
-
-				if (timeout)
-					clearTimeout(timeout);
-				timeout = setTimeout(suggest, options.delay);
-				prevLength = $input.val().length;
-
-			}
-
-
-		}
-
-
-		function suggest() {
-
-			var q = $.trim($input.val()), multipleSepPos, items;
-
-			if ( options.multiple ) {
-				multipleSepPos = q.lastIndexOf(options.multipleSep);
-				if ( multipleSepPos != -1 ) {
-					q = $.trim(q.substr(multipleSepPos + options.multipleSep.length));
-				}
-			}
-			if (q.length >= options.minchars) {
-
-				cached = checkCache(q);
-
-				if (cached) {
-
-					displayItems(cached['items']);
-
-				} else {
-
-					$.get(options.source, {q: q}, function(txt) {
-
-						$results.hide();
-
-						items = parseTxt(txt, q);
-
-						displayItems(items);
-						addToCache(q, items, txt.length);
-
-					});
-
-				}
-
-			} else {
-
-				$results.hide();
-
-			}
-
-		}
-
-
-		function checkCache(q) {
-			var i;
-			for (i = 0; i < cache.length; i++)
-				if (cache[i]['q'] == q) {
-					cache.unshift(cache.splice(i, 1)[0]);
-					return cache[0];
-				}
-
-			return false;
-
-		}
-
-		function addToCache(q, items, size) {
-			var cached;
-			while (cache.length && (cacheSize + size > options.maxCacheSize)) {
-				cached = cache.pop();
-				cacheSize -= cached['size'];
-			}
-
-			cache.push({
-				q: q,
-				size: size,
-				items: items
-				});
-
-			cacheSize += size;
-
-		}
-
-		function displayItems(items) {
-			var html = '', i;
-			if (!items)
-				return;
-
-			if (!items.length) {
-				$results.hide();
-				return;
-			}
-
-			resetPosition(); // when the form moves after the page has loaded
-
-			for (i = 0; i < items.length; i++)
-				html += '<li>' + items[i] + '</li>';
-
-			$results.html(html).show();
-
-			$results
-				.children('li')
-				.mouseover(function() {
-					$results.children('li').removeClass(options.selectClass);
-					$(this).addClass(options.selectClass);
-				})
-				.click(function(e) {
-					e.preventDefault();
-					e.stopPropagation();
-					selectCurrentResult();
-				});
-
-		}
-
-		function parseTxt(txt, q) {
-
-			var items = [], tokens = txt.split(options.delimiter), i, token;
-
-			// parse returned data for non-empty items
-			for (i = 0; i < tokens.length; i++) {
-				token = $.trim(tokens[i]);
-				if (token) {
-					token = token.replace(
-						new RegExp(q, 'ig'),
-						function(q) { return '<span class="' + options.matchClass + '">' + q + '</span>' }
-						);
-					items[items.length] = token;
-				}
-			}
-
-			return items;
-		}
-
-		function getCurrentResult() {
-			var $currentResult;
-			if (!$results.is(':visible'))
-				return false;
-
-			$currentResult = $results.children('li.' + options.selectClass);
-
-			if (!$currentResult.length)
-				$currentResult = false;
-
-			return $currentResult;
-
-		}
-
-		function selectCurrentResult() {
-
-			$currentResult = getCurrentResult();
-
-			if ($currentResult) {
-				if ( options.multiple ) {
-					if ( $input.val().indexOf(options.multipleSep) != -1 ) {
-						$currentVal = $input.val().substr( 0, ( $input.val().lastIndexOf(options.multipleSep) + options.multipleSep.length ) );
-					} else {
-						$currentVal = "";
-					}
-					$input.val( $currentVal + $currentResult.text() + options.multipleSep);
-					$input.focus();
-				} else {
-					$input.val($currentResult.text());
-				}
-				$results.hide();
-
-				if (options.onSelect)
-					options.onSelect.apply($input[0]);
-
-			}
-
-		}
-
-		function nextResult() {
-
-			$currentResult = getCurrentResult();
-
-			if ($currentResult)
-				$currentResult
-					.removeClass(options.selectClass)
-					.next()
-						.addClass(options.selectClass);
-			else
-				$results.children('li:first-child').addClass(options.selectClass);
-
-		}
-
-		function prevResult() {
-			var $currentResult = getCurrentResult();
-
-			if ($currentResult)
-				$currentResult
-					.removeClass(options.selectClass)
-					.prev()
-						.addClass(options.selectClass);
-			else
-				$results.children('li:last-child').addClass(options.selectClass);
-
-		}
-	}
-
-	$.fn.suggest = function(source, options) {
-
-		if (!source)
-			return;
-
-		options = options || {};
-		options.multiple = options.multiple || false;
-		options.multipleSep = options.multipleSep || ", ";
-		options.source = source;
-		options.delay = options.delay || 100;
-		options.resultsClass = options.resultsClass || 'ac_results';
-		options.selectClass = options.selectClass || 'ac_over';
-		options.matchClass = options.matchClass || 'ac_match';
-		options.minchars = options.minchars || 2;
-		options.delimiter = options.delimiter || '\n';
-		options.onSelect = options.onSelect || false;
-		options.maxCacheSize = options.maxCacheSize || 65536;
-
-		this.each(function() {
-			new $.suggest(this, options);
-		});
-
-		return this;
-
-	};
-
-})(jQuery);
\ No newline at end of file
--- a/web/wp-includes/js/jquery/suggest.js	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/js/jquery/suggest.js	Wed Dec 19 17:46:52 2012 -0800
@@ -1,1 +1,330 @@
-(function(a){a.suggest=function(o,g){var c,f,n,d,q,p;c=a(o).attr("autocomplete","off");f=a(document.createElement("ul"));n=false;d=0;q=[];p=0;f.addClass(g.resultsClass).appendTo("body");j();a(window).load(j).resize(j);c.blur(function(){setTimeout(function(){f.hide()},200)});if(a.browser.msie){try{f.bgiframe()}catch(s){}}if(a.browser.mozilla){c.keypress(m)}else{c.keydown(m)}function j(){var e=c.offset();f.css({top:(e.top+o.offsetHeight)+"px",left:e.left+"px"})}function m(w){if((/27$|38$|40$/.test(w.keyCode)&&f.is(":visible"))||(/^13$|^9$/.test(w.keyCode)&&u())){if(w.preventDefault){w.preventDefault()}if(w.stopPropagation){w.stopPropagation()}w.cancelBubble=true;w.returnValue=false;switch(w.keyCode){case 38:k();break;case 40:t();break;case 9:case 13:r();break;case 27:f.hide();break}}else{if(c.val().length!=d){if(n){clearTimeout(n)}n=setTimeout(l,g.delay);d=c.val().length}}}function l(){var x=a.trim(c.val()),w,e;if(g.multiple){w=x.lastIndexOf(g.multipleSep);if(w!=-1){x=a.trim(x.substr(w+g.multipleSep.length))}}if(x.length>=g.minchars){cached=v(x);if(cached){i(cached.items)}else{a.get(g.source,{q:x},function(y){f.hide();e=b(y,x);i(e);h(x,e,y.length)})}}else{f.hide()}}function v(w){var e;for(e=0;e<q.length;e++){if(q[e]["q"]==w){q.unshift(q.splice(e,1)[0]);return q[0]}}return false}function h(y,e,w){var x;while(q.length&&(p+w>g.maxCacheSize)){x=q.pop();p-=x.size}q.push({q:y,size:w,items:e});p+=w}function i(e){var x="",w;if(!e){return}if(!e.length){f.hide();return}j();for(w=0;w<e.length;w++){x+="<li>"+e[w]+"</li>"}f.html(x).show();f.children("li").mouseover(function(){f.children("li").removeClass(g.selectClass);a(this).addClass(g.selectClass)}).click(function(y){y.preventDefault();y.stopPropagation();r()})}function b(e,z){var w=[],A=e.split(g.delimiter),y,x;for(y=0;y<A.length;y++){x=a.trim(A[y]);if(x){x=x.replace(new RegExp(z,"ig"),function(B){return'<span class="'+g.matchClass+'">'+B+"</span>"});w[w.length]=x}}return w}function u(){var e;if(!f.is(":visible")){return false}e=f.children("li."+g.selectClass);if(!e.length){e=false}return e}function r(){$currentResult=u();if($currentResult){if(g.multiple){if(c.val().indexOf(g.multipleSep)!=-1){$currentVal=c.val().substr(0,(c.val().lastIndexOf(g.multipleSep)+g.multipleSep.length))}else{$currentVal=""}c.val($currentVal+$currentResult.text()+g.multipleSep);c.focus()}else{c.val($currentResult.text())}f.hide();if(g.onSelect){g.onSelect.apply(c[0])}}}function t(){$currentResult=u();if($currentResult){$currentResult.removeClass(g.selectClass).next().addClass(g.selectClass)}else{f.children("li:first-child").addClass(g.selectClass)}}function k(){var e=u();if(e){e.removeClass(g.selectClass).prev().addClass(g.selectClass)}else{f.children("li:last-child").addClass(g.selectClass)}}};a.fn.suggest=function(c,b){if(!c){return}b=b||{};b.multiple=b.multiple||false;b.multipleSep=b.multipleSep||", ";b.source=c;b.delay=b.delay||100;b.resultsClass=b.resultsClass||"ac_results";b.selectClass=b.selectClass||"ac_over";b.matchClass=b.matchClass||"ac_match";b.minchars=b.minchars||2;b.delimiter=b.delimiter||"\n";b.onSelect=b.onSelect||false;b.maxCacheSize=b.maxCacheSize||65536;this.each(function(){new a.suggest(this,b)});return this}})(jQuery);
\ No newline at end of file
+/*
+ *	jquery.suggest 1.1b - 2007-08-06
+ * Patched by Mark Jaquith with Alexander Dick's "multiple items" patch to allow for auto-suggesting of more than one tag before submitting
+ * See: http://www.vulgarisoip.com/2007/06/29/jquerysuggest-an-alternative-jquery-based-autocomplete-library/#comment-7228
+ *
+ *	Uses code and techniques from following libraries:
+ *	1. http://www.dyve.net/jquery/?autocomplete
+ *	2. http://dev.jquery.com/browser/trunk/plugins/interface/iautocompleter.js
+ *
+ *	All the new stuff written by Peter Vulgaris (www.vulgarisoip.com)
+ *	Feel free to do whatever you want with this file
+ *
+ */
+
+(function($) {
+
+	$.suggest = function(input, options) {
+		var $input, $results, timeout, prevLength, cache, cacheSize;
+
+		$input = $(input).attr("autocomplete", "off");
+		$results = $(document.createElement("ul"));
+
+		timeout = false;		// hold timeout ID for suggestion results to appear
+		prevLength = 0;			// last recorded length of $input.val()
+		cache = [];				// cache MRU list
+		cacheSize = 0;			// size of cache in chars (bytes?)
+
+		$results.addClass(options.resultsClass).appendTo('body');
+
+
+		resetPosition();
+		$(window)
+			.load(resetPosition)		// just in case user is changing size of page while loading
+			.resize(resetPosition);
+
+		$input.blur(function() {
+			setTimeout(function() { $results.hide() }, 200);
+		});
+
+
+		// help IE users if possible
+		if ( $.browser.msie ) {
+			try {
+				$results.bgiframe();
+			} catch(e) { }
+		}
+
+		// I really hate browser detection, but I don't see any other way
+		if ($.browser.mozilla)
+			$input.keypress(processKey);	// onkeypress repeats arrow keys in Mozilla/Opera
+		else
+			$input.keydown(processKey);		// onkeydown repeats arrow keys in IE/Safari
+
+
+
+
+		function resetPosition() {
+			// requires jquery.dimension plugin
+			var offset = $input.offset();
+			$results.css({
+				top: (offset.top + input.offsetHeight) + 'px',
+				left: offset.left + 'px'
+			});
+		}
+
+
+		function processKey(e) {
+
+			// handling up/down/escape requires results to be visible
+			// handling enter/tab requires that AND a result to be selected
+			if ((/27$|38$|40$/.test(e.keyCode) && $results.is(':visible')) ||
+				(/^13$|^9$/.test(e.keyCode) && getCurrentResult())) {
+
+				if (e.preventDefault)
+					e.preventDefault();
+				if (e.stopPropagation)
+					e.stopPropagation();
+
+				e.cancelBubble = true;
+				e.returnValue = false;
+
+				switch(e.keyCode) {
+
+					case 38: // up
+						prevResult();
+						break;
+
+					case 40: // down
+						nextResult();
+						break;
+
+					case 9:  // tab
+					case 13: // return
+						selectCurrentResult();
+						break;
+
+					case 27: //	escape
+						$results.hide();
+						break;
+
+				}
+
+			} else if ($input.val().length != prevLength) {
+
+				if (timeout)
+					clearTimeout(timeout);
+				timeout = setTimeout(suggest, options.delay);
+				prevLength = $input.val().length;
+
+			}
+
+
+		}
+
+
+		function suggest() {
+
+			var q = $.trim($input.val()), multipleSepPos, items;
+
+			if ( options.multiple ) {
+				multipleSepPos = q.lastIndexOf(options.multipleSep);
+				if ( multipleSepPos != -1 ) {
+					q = $.trim(q.substr(multipleSepPos + options.multipleSep.length));
+				}
+			}
+			if (q.length >= options.minchars) {
+
+				cached = checkCache(q);
+
+				if (cached) {
+
+					displayItems(cached['items']);
+
+				} else {
+
+					$.get(options.source, {q: q}, function(txt) {
+
+						$results.hide();
+
+						items = parseTxt(txt, q);
+
+						displayItems(items);
+						addToCache(q, items, txt.length);
+
+					});
+
+				}
+
+			} else {
+
+				$results.hide();
+
+			}
+
+		}
+
+
+		function checkCache(q) {
+			var i;
+			for (i = 0; i < cache.length; i++)
+				if (cache[i]['q'] == q) {
+					cache.unshift(cache.splice(i, 1)[0]);
+					return cache[0];
+				}
+
+			return false;
+
+		}
+
+		function addToCache(q, items, size) {
+			var cached;
+			while (cache.length && (cacheSize + size > options.maxCacheSize)) {
+				cached = cache.pop();
+				cacheSize -= cached['size'];
+			}
+
+			cache.push({
+				q: q,
+				size: size,
+				items: items
+				});
+
+			cacheSize += size;
+
+		}
+
+		function displayItems(items) {
+			var html = '', i;
+			if (!items)
+				return;
+
+			if (!items.length) {
+				$results.hide();
+				return;
+			}
+
+			resetPosition(); // when the form moves after the page has loaded
+
+			for (i = 0; i < items.length; i++)
+				html += '<li>' + items[i] + '</li>';
+
+			$results.html(html).show();
+
+			$results
+				.children('li')
+				.mouseover(function() {
+					$results.children('li').removeClass(options.selectClass);
+					$(this).addClass(options.selectClass);
+				})
+				.click(function(e) {
+					e.preventDefault();
+					e.stopPropagation();
+					selectCurrentResult();
+				});
+
+		}
+
+		function parseTxt(txt, q) {
+
+			var items = [], tokens = txt.split(options.delimiter), i, token;
+
+			// parse returned data for non-empty items
+			for (i = 0; i < tokens.length; i++) {
+				token = $.trim(tokens[i]);
+				if (token) {
+					token = token.replace(
+						new RegExp(q, 'ig'),
+						function(q) { return '<span class="' + options.matchClass + '">' + q + '</span>' }
+						);
+					items[items.length] = token;
+				}
+			}
+
+			return items;
+		}
+
+		function getCurrentResult() {
+			var $currentResult;
+			if (!$results.is(':visible'))
+				return false;
+
+			$currentResult = $results.children('li.' + options.selectClass);
+
+			if (!$currentResult.length)
+				$currentResult = false;
+
+			return $currentResult;
+
+		}
+
+		function selectCurrentResult() {
+
+			$currentResult = getCurrentResult();
+
+			if ($currentResult) {
+				if ( options.multiple ) {
+					if ( $input.val().indexOf(options.multipleSep) != -1 ) {
+						$currentVal = $input.val().substr( 0, ( $input.val().lastIndexOf(options.multipleSep) + options.multipleSep.length ) );
+					} else {
+						$currentVal = "";
+					}
+					$input.val( $currentVal + $currentResult.text() + options.multipleSep);
+					$input.focus();
+				} else {
+					$input.val($currentResult.text());
+				}
+				$results.hide();
+
+				if (options.onSelect)
+					options.onSelect.apply($input[0]);
+
+			}
+
+		}
+
+		function nextResult() {
+
+			$currentResult = getCurrentResult();
+
+			if ($currentResult)
+				$currentResult
+					.removeClass(options.selectClass)
+					.next()
+						.addClass(options.selectClass);
+			else
+				$results.children('li:first-child').addClass(options.selectClass);
+
+		}
+
+		function prevResult() {
+			var $currentResult = getCurrentResult();
+
+			if ($currentResult)
+				$currentResult
+					.removeClass(options.selectClass)
+					.prev()
+						.addClass(options.selectClass);
+			else
+				$results.children('li:last-child').addClass(options.selectClass);
+
+		}
+	}
+
+	$.fn.suggest = function(source, options) {
+
+		if (!source)
+			return;
+
+		options = options || {};
+		options.multiple = options.multiple || false;
+		options.multipleSep = options.multipleSep || ", ";
+		options.source = source;
+		options.delay = options.delay || 100;
+		options.resultsClass = options.resultsClass || 'ac_results';
+		options.selectClass = options.selectClass || 'ac_over';
+		options.matchClass = options.matchClass || 'ac_match';
+		options.minchars = options.minchars || 2;
+		options.delimiter = options.delimiter || '\n';
+		options.onSelect = options.onSelect || false;
+		options.maxCacheSize = options.maxCacheSize || 65536;
+
+		this.each(function() {
+			new $.suggest(this, options);
+		});
+
+		return this;
+
+	};
+
+})(jQuery);
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-includes/js/jquery/suggest.min.js	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,1 @@
+(function(a){a.suggest=function(o,g){var c,f,n,d,q,p;c=a(o).attr("autocomplete","off");f=a(document.createElement("ul"));n=false;d=0;q=[];p=0;f.addClass(g.resultsClass).appendTo("body");j();a(window).load(j).resize(j);c.blur(function(){setTimeout(function(){f.hide()},200)});if(a.browser.msie){try{f.bgiframe()}catch(s){}}if(a.browser.mozilla){c.keypress(m)}else{c.keydown(m)}function j(){var e=c.offset();f.css({top:(e.top+o.offsetHeight)+"px",left:e.left+"px"})}function m(w){if((/27$|38$|40$/.test(w.keyCode)&&f.is(":visible"))||(/^13$|^9$/.test(w.keyCode)&&u())){if(w.preventDefault){w.preventDefault()}if(w.stopPropagation){w.stopPropagation()}w.cancelBubble=true;w.returnValue=false;switch(w.keyCode){case 38:k();break;case 40:t();break;case 9:case 13:r();break;case 27:f.hide();break}}else{if(c.val().length!=d){if(n){clearTimeout(n)}n=setTimeout(l,g.delay);d=c.val().length}}}function l(){var x=a.trim(c.val()),w,e;if(g.multiple){w=x.lastIndexOf(g.multipleSep);if(w!=-1){x=a.trim(x.substr(w+g.multipleSep.length))}}if(x.length>=g.minchars){cached=v(x);if(cached){i(cached.items)}else{a.get(g.source,{q:x},function(y){f.hide();e=b(y,x);i(e);h(x,e,y.length)})}}else{f.hide()}}function v(w){var e;for(e=0;e<q.length;e++){if(q[e]["q"]==w){q.unshift(q.splice(e,1)[0]);return q[0]}}return false}function h(y,e,w){var x;while(q.length&&(p+w>g.maxCacheSize)){x=q.pop();p-=x.size}q.push({q:y,size:w,items:e});p+=w}function i(e){var x="",w;if(!e){return}if(!e.length){f.hide();return}j();for(w=0;w<e.length;w++){x+="<li>"+e[w]+"</li>"}f.html(x).show();f.children("li").mouseover(function(){f.children("li").removeClass(g.selectClass);a(this).addClass(g.selectClass)}).click(function(y){y.preventDefault();y.stopPropagation();r()})}function b(e,z){var w=[],A=e.split(g.delimiter),y,x;for(y=0;y<A.length;y++){x=a.trim(A[y]);if(x){x=x.replace(new RegExp(z,"ig"),function(B){return'<span class="'+g.matchClass+'">'+B+"</span>"});w[w.length]=x}}return w}function u(){var e;if(!f.is(":visible")){return false}e=f.children("li."+g.selectClass);if(!e.length){e=false}return e}function r(){$currentResult=u();if($currentResult){if(g.multiple){if(c.val().indexOf(g.multipleSep)!=-1){$currentVal=c.val().substr(0,(c.val().lastIndexOf(g.multipleSep)+g.multipleSep.length))}else{$currentVal=""}c.val($currentVal+$currentResult.text()+g.multipleSep);c.focus()}else{c.val($currentResult.text())}f.hide();if(g.onSelect){g.onSelect.apply(c[0])}}}function t(){$currentResult=u();if($currentResult){$currentResult.removeClass(g.selectClass).next().addClass(g.selectClass)}else{f.children("li:first-child").addClass(g.selectClass)}}function k(){var e=u();if(e){e.removeClass(g.selectClass).prev().addClass(g.selectClass)}else{f.children("li:last-child").addClass(g.selectClass)}}};a.fn.suggest=function(c,b){if(!c){return}b=b||{};b.multiple=b.multiple||false;b.multipleSep=b.multipleSep||", ";b.source=c;b.delay=b.delay||100;b.resultsClass=b.resultsClass||"ac_results";b.selectClass=b.selectClass||"ac_over";b.matchClass=b.matchClass||"ac_match";b.minchars=b.minchars||2;b.delimiter=b.delimiter||"\n";b.onSelect=b.onSelect||false;b.maxCacheSize=b.maxCacheSize||65536;this.each(function(){new a.suggest(this,b)});return this}})(jQuery);
\ No newline at end of file
--- a/web/wp-includes/js/jquery/ui/jquery.effects.blind.min.js	Wed Dec 19 12:35:13 2012 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,5 +0,0 @@
-/*! jQuery UI - v1.8.20 - 2012-04-30
-* https://github.com/jquery/jquery-ui
-* Includes: jquery.effects.blind.js
-* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */
-(function(a,b){a.effects.blind=function(b){return this.queue(function(){var c=a(this),d=["position","top","bottom","left","right"],e=a.effects.setMode(c,b.options.mode||"hide"),f=b.options.direction||"vertical";a.effects.save(c,d),c.show();var g=a.effects.createWrapper(c).css({overflow:"hidden"}),h=f=="vertical"?"height":"width",i=f=="vertical"?g.height():g.width();e=="show"&&g.css(h,0);var j={};j[h]=e=="show"?i:0,g.animate(j,b.duration,b.options.easing,function(){e=="hide"&&c.hide(),a.effects.restore(c,d),a.effects.removeWrapper(c),b.callback&&b.callback.apply(c[0],arguments),c.dequeue()})})}})(jQuery);
\ No newline at end of file
--- a/web/wp-includes/js/jquery/ui/jquery.effects.bounce.min.js	Wed Dec 19 12:35:13 2012 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,5 +0,0 @@
-/*! jQuery UI - v1.8.20 - 2012-04-30
-* https://github.com/jquery/jquery-ui
-* Includes: jquery.effects.bounce.js
-* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */
-(function(a,b){a.effects.bounce=function(b){return this.queue(function(){var c=a(this),d=["position","top","bottom","left","right"],e=a.effects.setMode(c,b.options.mode||"effect"),f=b.options.direction||"up",g=b.options.distance||20,h=b.options.times||5,i=b.duration||250;/show|hide/.test(e)&&d.push("opacity"),a.effects.save(c,d),c.show(),a.effects.createWrapper(c);var j=f=="up"||f=="down"?"top":"left",k=f=="up"||f=="left"?"pos":"neg",g=b.options.distance||(j=="top"?c.outerHeight({margin:!0})/3:c.outerWidth({margin:!0})/3);e=="show"&&c.css("opacity",0).css(j,k=="pos"?-g:g),e=="hide"&&(g=g/(h*2)),e!="hide"&&h--;if(e=="show"){var l={opacity:1};l[j]=(k=="pos"?"+=":"-=")+g,c.animate(l,i/2,b.options.easing),g=g/2,h--}for(var m=0;m<h;m++){var n={},p={};n[j]=(k=="pos"?"-=":"+=")+g,p[j]=(k=="pos"?"+=":"-=")+g,c.animate(n,i/2,b.options.easing).animate(p,i/2,b.options.easing),g=e=="hide"?g*2:g/2}if(e=="hide"){var l={opacity:0};l[j]=(k=="pos"?"-=":"+=")+g,c.animate(l,i/2,b.options.easing,function(){c.hide(),a.effects.restore(c,d),a.effects.removeWrapper(c),b.callback&&b.callback.apply(this,arguments)})}else{var n={},p={};n[j]=(k=="pos"?"-=":"+=")+g,p[j]=(k=="pos"?"+=":"-=")+g,c.animate(n,i/2,b.options.easing).animate(p,i/2,b.options.easing,function(){a.effects.restore(c,d),a.effects.removeWrapper(c),b.callback&&b.callback.apply(this,arguments)})}c.queue("fx",function(){c.dequeue()}),c.dequeue()})}})(jQuery);
\ No newline at end of file
--- a/web/wp-includes/js/jquery/ui/jquery.effects.clip.min.js	Wed Dec 19 12:35:13 2012 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,5 +0,0 @@
-/*! jQuery UI - v1.8.20 - 2012-04-30
-* https://github.com/jquery/jquery-ui
-* Includes: jquery.effects.clip.js
-* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */
-(function(a,b){a.effects.clip=function(b){return this.queue(function(){var c=a(this),d=["position","top","bottom","left","right","height","width"],e=a.effects.setMode(c,b.options.mode||"hide"),f=b.options.direction||"vertical";a.effects.save(c,d),c.show();var g=a.effects.createWrapper(c).css({overflow:"hidden"}),h=c[0].tagName=="IMG"?g:c,i={size:f=="vertical"?"height":"width",position:f=="vertical"?"top":"left"},j=f=="vertical"?h.height():h.width();e=="show"&&(h.css(i.size,0),h.css(i.position,j/2));var k={};k[i.size]=e=="show"?j:0,k[i.position]=e=="show"?0:j/2,h.animate(k,{queue:!1,duration:b.duration,easing:b.options.easing,complete:function(){e=="hide"&&c.hide(),a.effects.restore(c,d),a.effects.removeWrapper(c),b.callback&&b.callback.apply(c[0],arguments),c.dequeue()}})})}})(jQuery);
\ No newline at end of file
--- a/web/wp-includes/js/jquery/ui/jquery.effects.core.min.js	Wed Dec 19 12:35:13 2012 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,5 +0,0 @@
-/*! jQuery UI - v1.8.20 - 2012-04-30
-* https://github.com/jquery/jquery-ui
-* Includes: jquery.effects.core.js
-* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */
-jQuery.effects||function(a,b){function c(b){var c;return b&&b.constructor==Array&&b.length==3?b:(c=/rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(b))?[parseInt(c[1],10),parseInt(c[2],10),parseInt(c[3],10)]:(c=/rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/.exec(b))?[parseFloat(c[1])*2.55,parseFloat(c[2])*2.55,parseFloat(c[3])*2.55]:(c=/#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(b))?[parseInt(c[1],16),parseInt(c[2],16),parseInt(c[3],16)]:(c=/#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(b))?[parseInt(c[1]+c[1],16),parseInt(c[2]+c[2],16),parseInt(c[3]+c[3],16)]:(c=/rgba\(0, 0, 0, 0\)/.exec(b))?e.transparent:e[a.trim(b).toLowerCase()]}function d(b,d){var e;do{e=a.curCSS(b,d);if(e!=""&&e!="transparent"||a.nodeName(b,"body"))break;d="backgroundColor"}while(b=b.parentNode);return c(e)}function h(){var a=document.defaultView?document.defaultView.getComputedStyle(this,null):this.currentStyle,b={},c,d;if(a&&a.length&&a[0]&&a[a[0]]){var e=a.length;while(e--)c=a[e],typeof a[c]=="string"&&(d=c.replace(/\-(\w)/g,function(a,b){return b.toUpperCase()}),b[d]=a[c])}else for(c in a)typeof a[c]=="string"&&(b[c]=a[c]);return b}function i(b){var c,d;for(c in b)d=b[c],(d==null||a.isFunction(d)||c in g||/scrollbar/.test(c)||!/color/i.test(c)&&isNaN(parseFloat(d)))&&delete b[c];return b}function j(a,b){var c={_:0},d;for(d in b)a[d]!=b[d]&&(c[d]=b[d]);return c}function k(b,c,d,e){typeof b=="object"&&(e=c,d=null,c=b,b=c.effect),a.isFunction(c)&&(e=c,d=null,c={});if(typeof c=="number"||a.fx.speeds[c])e=d,d=c,c={};return a.isFunction(d)&&(e=d,d=null),c=c||{},d=d||c.duration,d=a.fx.off?0:typeof d=="number"?d:d in a.fx.speeds?a.fx.speeds[d]:a.fx.speeds._default,e=e||c.complete,[b,c,d,e]}function l(b){return!b||typeof b=="number"||a.fx.speeds[b]?!0:typeof b=="string"&&!a.effects[b]?!0:!1}a.effects={},a.each(["backgroundColor","borderBottomColor","borderLeftColor","borderRightColor","borderTopColor","borderColor","color","outlineColor"],function(b,e){a.fx.step[e]=function(a){a.colorInit||(a.start=d(a.elem,e),a.end=c(a.end),a.colorInit=!0),a.elem.style[e]="rgb("+Math.max(Math.min(parseInt(a.pos*(a.end[0]-a.start[0])+a.start[0],10),255),0)+","+Math.max(Math.min(parseInt(a.pos*(a.end[1]-a.start[1])+a.start[1],10),255),0)+","+Math.max(Math.min(parseInt(a.pos*(a.end[2]-a.start[2])+a.start[2],10),255),0)+")"}});var e={aqua:[0,255,255],azure:[240,255,255],beige:[245,245,220],black:[0,0,0],blue:[0,0,255],brown:[165,42,42],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgrey:[169,169,169],darkgreen:[0,100,0],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkviolet:[148,0,211],fuchsia:[255,0,255],gold:[255,215,0],green:[0,128,0],indigo:[75,0,130],khaki:[240,230,140],lightblue:[173,216,230],lightcyan:[224,255,255],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightyellow:[255,255,224],lime:[0,255,0],magenta:[255,0,255],maroon:[128,0,0],navy:[0,0,128],olive:[128,128,0],orange:[255,165,0],pink:[255,192,203],purple:[128,0,128],violet:[128,0,128],red:[255,0,0],silver:[192,192,192],white:[255,255,255],yellow:[255,255,0],transparent:[255,255,255]},f=["add","remove","toggle"],g={border:1,borderBottom:1,borderColor:1,borderLeft:1,borderRight:1,borderTop:1,borderWidth:1,margin:1,padding:1};a.effects.animateClass=function(b,c,d,e){return a.isFunction(d)&&(e=d,d=null),this.queue(function(){var g=a(this),k=g.attr("style")||" ",l=i(h.call(this)),m,n=g.attr("class")||"";a.each(f,function(a,c){b[c]&&g[c+"Class"](b[c])}),m=i(h.call(this)),g.attr("class",n),g.animate(j(l,m),{queue:!1,duration:c,easing:d,complete:function(){a.each(f,function(a,c){b[c]&&g[c+"Class"](b[c])}),typeof g.attr("style")=="object"?(g.attr("style").cssText="",g.attr("style").cssText=k):g.attr("style",k),e&&e.apply(this,arguments),a.dequeue(this)}})})},a.fn.extend({_addClass:a.fn.addClass,addClass:function(b,c,d,e){return c?a.effects.animateClass.apply(this,[{add:b},c,d,e]):this._addClass(b)},_removeClass:a.fn.removeClass,removeClass:function(b,c,d,e){return c?a.effects.animateClass.apply(this,[{remove:b},c,d,e]):this._removeClass(b)},_toggleClass:a.fn.toggleClass,toggleClass:function(c,d,e,f,g){return typeof d=="boolean"||d===b?e?a.effects.animateClass.apply(this,[d?{add:c}:{remove:c},e,f,g]):this._toggleClass(c,d):a.effects.animateClass.apply(this,[{toggle:c},d,e,f])},switchClass:function(b,c,d,e,f){return a.effects.animateClass.apply(this,[{add:c,remove:b},d,e,f])}}),a.extend(a.effects,{version:"1.8.20",save:function(a,b){for(var c=0;c<b.length;c++)b[c]!==null&&a.data("ec.storage."+b[c],a[0].style[b[c]])},restore:function(a,b){for(var c=0;c<b.length;c++)b[c]!==null&&a.css(b[c],a.data("ec.storage."+b[c]))},setMode:function(a,b){return b=="toggle"&&(b=a.is(":hidden")?"show":"hide"),b},getBaseline:function(a,b){var c,d;switch(a[0]){case"top":c=0;break;case"middle":c=.5;break;case"bottom":c=1;break;default:c=a[0]/b.height}switch(a[1]){case"left":d=0;break;case"center":d=.5;break;case"right":d=1;break;default:d=a[1]/b.width}return{x:d,y:c}},createWrapper:function(b){if(b.parent().is(".ui-effects-wrapper"))return b.parent();var c={width:b.outerWidth(!0),height:b.outerHeight(!0),"float":b.css("float")},d=a("<div></div>").addClass("ui-effects-wrapper").css({fontSize:"100%",background:"transparent",border:"none",margin:0,padding:0}),e=document.activeElement;return b.wrap(d),(b[0]===e||a.contains(b[0],e))&&a(e).focus(),d=b.parent(),b.css("position")=="static"?(d.css({position:"relative"}),b.css({position:"relative"})):(a.extend(c,{position:b.css("position"),zIndex:b.css("z-index")}),a.each(["top","left","bottom","right"],function(a,d){c[d]=b.css(d),isNaN(parseInt(c[d],10))&&(c[d]="auto")}),b.css({position:"relative",top:0,left:0,right:"auto",bottom:"auto"})),d.css(c).show()},removeWrapper:function(b){var c,d=document.activeElement;return b.parent().is(".ui-effects-wrapper")?(c=b.parent().replaceWith(b),(b[0]===d||a.contains(b[0],d))&&a(d).focus(),c):b},setTransition:function(b,c,d,e){return e=e||{},a.each(c,function(a,c){var f=b.cssUnit(c);f[0]>0&&(e[c]=f[0]*d+f[1])}),e}}),a.fn.extend({effect:function(b,c,d,e){var f=k.apply(this,arguments),g={options:f[1],duration:f[2],callback:f[3]},h=g.options.mode,i=a.effects[b];return a.fx.off||!i?h?this[h](g.duration,g.callback):this.each(function(){g.callback&&g.callback.call(this)}):i.call(this,g)},_show:a.fn.show,show:function(a){if(l(a))return this._show.apply(this,arguments);var b=k.apply(this,arguments);return b[1].mode="show",this.effect.apply(this,b)},_hide:a.fn.hide,hide:function(a){if(l(a))return this._hide.apply(this,arguments);var b=k.apply(this,arguments);return b[1].mode="hide",this.effect.apply(this,b)},__toggle:a.fn.toggle,toggle:function(b){if(l(b)||typeof b=="boolean"||a.isFunction(b))return this.__toggle.apply(this,arguments);var c=k.apply(this,arguments);return c[1].mode="toggle",this.effect.apply(this,c)},cssUnit:function(b){var c=this.css(b),d=[];return a.each(["em","px","%","pt"],function(a,b){c.indexOf(b)>0&&(d=[parseFloat(c),b])}),d}}),a.easing.jswing=a.easing.swing,a.extend(a.easing,{def:"easeOutQuad",swing:function(b,c,d,e,f){return a.easing[a.easing.def](b,c,d,e,f)},easeInQuad:function(a,b,c,d,e){return d*(b/=e)*b+c},easeOutQuad:function(a,b,c,d,e){return-d*(b/=e)*(b-2)+c},easeInOutQuad:function(a,b,c,d,e){return(b/=e/2)<1?d/2*b*b+c:-d/2*(--b*(b-2)-1)+c},easeInCubic:function(a,b,c,d,e){return d*(b/=e)*b*b+c},easeOutCubic:function(a,b,c,d,e){return d*((b=b/e-1)*b*b+1)+c},easeInOutCubic:function(a,b,c,d,e){return(b/=e/2)<1?d/2*b*b*b+c:d/2*((b-=2)*b*b+2)+c},easeInQuart:function(a,b,c,d,e){return d*(b/=e)*b*b*b+c},easeOutQuart:function(a,b,c,d,e){return-d*((b=b/e-1)*b*b*b-1)+c},easeInOutQuart:function(a,b,c,d,e){return(b/=e/2)<1?d/2*b*b*b*b+c:-d/2*((b-=2)*b*b*b-2)+c},easeInQuint:function(a,b,c,d,e){return d*(b/=e)*b*b*b*b+c},easeOutQuint:function(a,b,c,d,e){return d*((b=b/e-1)*b*b*b*b+1)+c},easeInOutQuint:function(a,b,c,d,e){return(b/=e/2)<1?d/2*b*b*b*b*b+c:d/2*((b-=2)*b*b*b*b+2)+c},easeInSine:function(a,b,c,d,e){return-d*Math.cos(b/e*(Math.PI/2))+d+c},easeOutSine:function(a,b,c,d,e){return d*Math.sin(b/e*(Math.PI/2))+c},easeInOutSine:function(a,b,c,d,e){return-d/2*(Math.cos(Math.PI*b/e)-1)+c},easeInExpo:function(a,b,c,d,e){return b==0?c:d*Math.pow(2,10*(b/e-1))+c},easeOutExpo:function(a,b,c,d,e){return b==e?c+d:d*(-Math.pow(2,-10*b/e)+1)+c},easeInOutExpo:function(a,b,c,d,e){return b==0?c:b==e?c+d:(b/=e/2)<1?d/2*Math.pow(2,10*(b-1))+c:d/2*(-Math.pow(2,-10*--b)+2)+c},easeInCirc:function(a,b,c,d,e){return-d*(Math.sqrt(1-(b/=e)*b)-1)+c},easeOutCirc:function(a,b,c,d,e){return d*Math.sqrt(1-(b=b/e-1)*b)+c},easeInOutCirc:function(a,b,c,d,e){return(b/=e/2)<1?-d/2*(Math.sqrt(1-b*b)-1)+c:d/2*(Math.sqrt(1-(b-=2)*b)+1)+c},easeInElastic:function(a,b,c,d,e){var f=1.70158,g=0,h=d;if(b==0)return c;if((b/=e)==1)return c+d;g||(g=e*.3);if(h<Math.abs(d)){h=d;var f=g/4}else var f=g/(2*Math.PI)*Math.asin(d/h);return-(h*Math.pow(2,10*(b-=1))*Math.sin((b*e-f)*2*Math.PI/g))+c},easeOutElastic:function(a,b,c,d,e){var f=1.70158,g=0,h=d;if(b==0)return c;if((b/=e)==1)return c+d;g||(g=e*.3);if(h<Math.abs(d)){h=d;var f=g/4}else var f=g/(2*Math.PI)*Math.asin(d/h);return h*Math.pow(2,-10*b)*Math.sin((b*e-f)*2*Math.PI/g)+d+c},easeInOutElastic:function(a,b,c,d,e){var f=1.70158,g=0,h=d;if(b==0)return c;if((b/=e/2)==2)return c+d;g||(g=e*.3*1.5);if(h<Math.abs(d)){h=d;var f=g/4}else var f=g/(2*Math.PI)*Math.asin(d/h);return b<1?-0.5*h*Math.pow(2,10*(b-=1))*Math.sin((b*e-f)*2*Math.PI/g)+c:h*Math.pow(2,-10*(b-=1))*Math.sin((b*e-f)*2*Math.PI/g)*.5+d+c},easeInBack:function(a,c,d,e,f,g){return g==b&&(g=1.70158),e*(c/=f)*c*((g+1)*c-g)+d},easeOutBack:function(a,c,d,e,f,g){return g==b&&(g=1.70158),e*((c=c/f-1)*c*((g+1)*c+g)+1)+d},easeInOutBack:function(a,c,d,e,f,g){return g==b&&(g=1.70158),(c/=f/2)<1?e/2*c*c*(((g*=1.525)+1)*c-g)+d:e/2*((c-=2)*c*(((g*=1.525)+1)*c+g)+2)+d},easeInBounce:function(b,c,d,e,f){return e-a.easing.easeOutBounce(b,f-c,0,e,f)+d},easeOutBounce:function(a,b,c,d,e){return(b/=e)<1/2.75?d*7.5625*b*b+c:b<2/2.75?d*(7.5625*(b-=1.5/2.75)*b+.75)+c:b<2.5/2.75?d*(7.5625*(b-=2.25/2.75)*b+.9375)+c:d*(7.5625*(b-=2.625/2.75)*b+.984375)+c},easeInOutBounce:function(b,c,d,e,f){return c<f/2?a.easing.easeInBounce(b,c*2,0,e,f)*.5+d:a.easing.easeOutBounce(b,c*2-f,0,e,f)*.5+e*.5+d}})}(jQuery);
\ No newline at end of file
--- a/web/wp-includes/js/jquery/ui/jquery.effects.drop.min.js	Wed Dec 19 12:35:13 2012 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,5 +0,0 @@
-/*! jQuery UI - v1.8.20 - 2012-04-30
-* https://github.com/jquery/jquery-ui
-* Includes: jquery.effects.drop.js
-* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */
-(function(a,b){a.effects.drop=function(b){return this.queue(function(){var c=a(this),d=["position","top","bottom","left","right","opacity"],e=a.effects.setMode(c,b.options.mode||"hide"),f=b.options.direction||"left";a.effects.save(c,d),c.show(),a.effects.createWrapper(c);var g=f=="up"||f=="down"?"top":"left",h=f=="up"||f=="left"?"pos":"neg",i=b.options.distance||(g=="top"?c.outerHeight({margin:!0})/2:c.outerWidth({margin:!0})/2);e=="show"&&c.css("opacity",0).css(g,h=="pos"?-i:i);var j={opacity:e=="show"?1:0};j[g]=(e=="show"?h=="pos"?"+=":"-=":h=="pos"?"-=":"+=")+i,c.animate(j,{queue:!1,duration:b.duration,easing:b.options.easing,complete:function(){e=="hide"&&c.hide(),a.effects.restore(c,d),a.effects.removeWrapper(c),b.callback&&b.callback.apply(this,arguments),c.dequeue()}})})}})(jQuery);
\ No newline at end of file
--- a/web/wp-includes/js/jquery/ui/jquery.effects.explode.min.js	Wed Dec 19 12:35:13 2012 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,5 +0,0 @@
-/*! jQuery UI - v1.8.20 - 2012-04-30
-* https://github.com/jquery/jquery-ui
-* Includes: jquery.effects.explode.js
-* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */
-(function(a,b){a.effects.explode=function(b){return this.queue(function(){var c=b.options.pieces?Math.round(Math.sqrt(b.options.pieces)):3,d=b.options.pieces?Math.round(Math.sqrt(b.options.pieces)):3;b.options.mode=b.options.mode=="toggle"?a(this).is(":visible")?"hide":"show":b.options.mode;var e=a(this).show().css("visibility","hidden"),f=e.offset();f.top-=parseInt(e.css("marginTop"),10)||0,f.left-=parseInt(e.css("marginLeft"),10)||0;var g=e.outerWidth(!0),h=e.outerHeight(!0);for(var i=0;i<c;i++)for(var j=0;j<d;j++)e.clone().appendTo("body").wrap("<div></div>").css({position:"absolute",visibility:"visible",left:-j*(g/d),top:-i*(h/c)}).parent().addClass("ui-effects-explode").css({position:"absolute",overflow:"hidden",width:g/d,height:h/c,left:f.left+j*(g/d)+(b.options.mode=="show"?(j-Math.floor(d/2))*(g/d):0),top:f.top+i*(h/c)+(b.options.mode=="show"?(i-Math.floor(c/2))*(h/c):0),opacity:b.options.mode=="show"?0:1}).animate({left:f.left+j*(g/d)+(b.options.mode=="show"?0:(j-Math.floor(d/2))*(g/d)),top:f.top+i*(h/c)+(b.options.mode=="show"?0:(i-Math.floor(c/2))*(h/c)),opacity:b.options.mode=="show"?1:0},b.duration||500);setTimeout(function(){b.options.mode=="show"?e.css({visibility:"visible"}):e.css({visibility:"visible"}).hide(),b.callback&&b.callback.apply(e[0]),e.dequeue(),a("div.ui-effects-explode").remove()},b.duration||500)})}})(jQuery);
\ No newline at end of file
--- a/web/wp-includes/js/jquery/ui/jquery.effects.fade.min.js	Wed Dec 19 12:35:13 2012 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,5 +0,0 @@
-/*! jQuery UI - v1.8.20 - 2012-04-30
-* https://github.com/jquery/jquery-ui
-* Includes: jquery.effects.fade.js
-* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */
-(function(a,b){a.effects.fade=function(b){return this.queue(function(){var c=a(this),d=a.effects.setMode(c,b.options.mode||"hide");c.animate({opacity:d},{queue:!1,duration:b.duration,easing:b.options.easing,complete:function(){b.callback&&b.callback.apply(this,arguments),c.dequeue()}})})}})(jQuery);
\ No newline at end of file
--- a/web/wp-includes/js/jquery/ui/jquery.effects.fold.min.js	Wed Dec 19 12:35:13 2012 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,5 +0,0 @@
-/*! jQuery UI - v1.8.20 - 2012-04-30
-* https://github.com/jquery/jquery-ui
-* Includes: jquery.effects.fold.js
-* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */
-(function(a,b){a.effects.fold=function(b){return this.queue(function(){var c=a(this),d=["position","top","bottom","left","right"],e=a.effects.setMode(c,b.options.mode||"hide"),f=b.options.size||15,g=!!b.options.horizFirst,h=b.duration?b.duration/2:a.fx.speeds._default/2;a.effects.save(c,d),c.show();var i=a.effects.createWrapper(c).css({overflow:"hidden"}),j=e=="show"!=g,k=j?["width","height"]:["height","width"],l=j?[i.width(),i.height()]:[i.height(),i.width()],m=/([0-9]+)%/.exec(f);m&&(f=parseInt(m[1],10)/100*l[e=="hide"?0:1]),e=="show"&&i.css(g?{height:0,width:f}:{height:f,width:0});var n={},p={};n[k[0]]=e=="show"?l[0]:f,p[k[1]]=e=="show"?l[1]:0,i.animate(n,h,b.options.easing).animate(p,h,b.options.easing,function(){e=="hide"&&c.hide(),a.effects.restore(c,d),a.effects.removeWrapper(c),b.callback&&b.callback.apply(c[0],arguments),c.dequeue()})})}})(jQuery);
\ No newline at end of file
--- a/web/wp-includes/js/jquery/ui/jquery.effects.highlight.min.js	Wed Dec 19 12:35:13 2012 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,5 +0,0 @@
-/*! jQuery UI - v1.8.20 - 2012-04-30
-* https://github.com/jquery/jquery-ui
-* Includes: jquery.effects.highlight.js
-* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */
-(function(a,b){a.effects.highlight=function(b){return this.queue(function(){var c=a(this),d=["backgroundImage","backgroundColor","opacity"],e=a.effects.setMode(c,b.options.mode||"show"),f={backgroundColor:c.css("backgroundColor")};e=="hide"&&(f.opacity=0),a.effects.save(c,d),c.show().css({backgroundImage:"none",backgroundColor:b.options.color||"#ffff99"}).animate(f,{queue:!1,duration:b.duration,easing:b.options.easing,complete:function(){e=="hide"&&c.hide(),a.effects.restore(c,d),e=="show"&&!a.support.opacity&&this.style.removeAttribute("filter"),b.callback&&b.callback.apply(this,arguments),c.dequeue()}})})}})(jQuery);
\ No newline at end of file
--- a/web/wp-includes/js/jquery/ui/jquery.effects.pulsate.min.js	Wed Dec 19 12:35:13 2012 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,5 +0,0 @@
-/*! jQuery UI - v1.8.20 - 2012-04-30
-* https://github.com/jquery/jquery-ui
-* Includes: jquery.effects.pulsate.js
-* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */
-(function(a,b){a.effects.pulsate=function(b){return this.queue(function(){var c=a(this),d=a.effects.setMode(c,b.options.mode||"show"),e=(b.options.times||5)*2-1,f=b.duration?b.duration/2:a.fx.speeds._default/2,g=c.is(":visible"),h=0;g||(c.css("opacity",0).show(),h=1),(d=="hide"&&g||d=="show"&&!g)&&e--;for(var i=0;i<e;i++)c.animate({opacity:h},f,b.options.easing),h=(h+1)%2;c.animate({opacity:h},f,b.options.easing,function(){h==0&&c.hide(),b.callback&&b.callback.apply(this,arguments)}),c.queue("fx",function(){c.dequeue()}).dequeue()})}})(jQuery);
\ No newline at end of file
--- a/web/wp-includes/js/jquery/ui/jquery.effects.scale.min.js	Wed Dec 19 12:35:13 2012 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,5 +0,0 @@
-/*! jQuery UI - v1.8.20 - 2012-04-30
-* https://github.com/jquery/jquery-ui
-* Includes: jquery.effects.scale.js
-* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */
-(function(a,b){a.effects.puff=function(b){return this.queue(function(){var c=a(this),d=a.effects.setMode(c,b.options.mode||"hide"),e=parseInt(b.options.percent,10)||150,f=e/100,g={height:c.height(),width:c.width()};a.extend(b.options,{fade:!0,mode:d,percent:d=="hide"?e:100,from:d=="hide"?g:{height:g.height*f,width:g.width*f}}),c.effect("scale",b.options,b.duration,b.callback),c.dequeue()})},a.effects.scale=function(b){return this.queue(function(){var c=a(this),d=a.extend(!0,{},b.options),e=a.effects.setMode(c,b.options.mode||"effect"),f=parseInt(b.options.percent,10)||(parseInt(b.options.percent,10)==0?0:e=="hide"?0:100),g=b.options.direction||"both",h=b.options.origin;e!="effect"&&(d.origin=h||["middle","center"],d.restore=!0);var i={height:c.height(),width:c.width()};c.from=b.options.from||(e=="show"?{height:0,width:0}:i);var j={y:g!="horizontal"?f/100:1,x:g!="vertical"?f/100:1};c.to={height:i.height*j.y,width:i.width*j.x},b.options.fade&&(e=="show"&&(c.from.opacity=0,c.to.opacity=1),e=="hide"&&(c.from.opacity=1,c.to.opacity=0)),d.from=c.from,d.to=c.to,d.mode=e,c.effect("size",d,b.duration,b.callback),c.dequeue()})},a.effects.size=function(b){return this.queue(function(){var c=a(this),d=["position","top","bottom","left","right","width","height","overflow","opacity"],e=["position","top","bottom","left","right","overflow","opacity"],f=["width","height","overflow"],g=["fontSize"],h=["borderTopWidth","borderBottomWidth","paddingTop","paddingBottom"],i=["borderLeftWidth","borderRightWidth","paddingLeft","paddingRight"],j=a.effects.setMode(c,b.options.mode||"effect"),k=b.options.restore||!1,l=b.options.scale||"both",m=b.options.origin,n={height:c.height(),width:c.width()};c.from=b.options.from||n,c.to=b.options.to||n;if(m){var p=a.effects.getBaseline(m,n);c.from.top=(n.height-c.from.height)*p.y,c.from.left=(n.width-c.from.width)*p.x,c.to.top=(n.height-c.to.height)*p.y,c.to.left=(n.width-c.to.width)*p.x}var q={from:{y:c.from.height/n.height,x:c.from.width/n.width},to:{y:c.to.height/n.height,x:c.to.width/n.width}};if(l=="box"||l=="both")q.from.y!=q.to.y&&(d=d.concat(h),c.from=a.effects.setTransition(c,h,q.from.y,c.from),c.to=a.effects.setTransition(c,h,q.to.y,c.to)),q.from.x!=q.to.x&&(d=d.concat(i),c.from=a.effects.setTransition(c,i,q.from.x,c.from),c.to=a.effects.setTransition(c,i,q.to.x,c.to));(l=="content"||l=="both")&&q.from.y!=q.to.y&&(d=d.concat(g),c.from=a.effects.setTransition(c,g,q.from.y,c.from),c.to=a.effects.setTransition(c,g,q.to.y,c.to)),a.effects.save(c,k?d:e),c.show(),a.effects.createWrapper(c),c.css("overflow","hidden").css(c.from);if(l=="content"||l=="both")h=h.concat(["marginTop","marginBottom"]).concat(g),i=i.concat(["marginLeft","marginRight"]),f=d.concat(h).concat(i),c.find("*[width]").each(function(){var c=a(this);k&&a.effects.save(c,f);var d={height:c.height(),width:c.width()};c.from={height:d.height*q.from.y,width:d.width*q.from.x},c.to={height:d.height*q.to.y,width:d.width*q.to.x},q.from.y!=q.to.y&&(c.from=a.effects.setTransition(c,h,q.from.y,c.from),c.to=a.effects.setTransition(c,h,q.to.y,c.to)),q.from.x!=q.to.x&&(c.from=a.effects.setTransition(c,i,q.from.x,c.from),c.to=a.effects.setTransition(c,i,q.to.x,c.to)),c.css(c.from),c.animate(c.to,b.duration,b.options.easing,function(){k&&a.effects.restore(c,f)})});c.animate(c.to,{queue:!1,duration:b.duration,easing:b.options.easing,complete:function(){c.to.opacity===0&&c.css("opacity",c.from.opacity),j=="hide"&&c.hide(),a.effects.restore(c,k?d:e),a.effects.removeWrapper(c),b.callback&&b.callback.apply(this,arguments),c.dequeue()}})})}})(jQuery);
\ No newline at end of file
--- a/web/wp-includes/js/jquery/ui/jquery.effects.shake.min.js	Wed Dec 19 12:35:13 2012 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,5 +0,0 @@
-/*! jQuery UI - v1.8.20 - 2012-04-30
-* https://github.com/jquery/jquery-ui
-* Includes: jquery.effects.shake.js
-* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */
-(function(a,b){a.effects.shake=function(b){return this.queue(function(){var c=a(this),d=["position","top","bottom","left","right"],e=a.effects.setMode(c,b.options.mode||"effect"),f=b.options.direction||"left",g=b.options.distance||20,h=b.options.times||3,i=b.duration||b.options.duration||140;a.effects.save(c,d),c.show(),a.effects.createWrapper(c);var j=f=="up"||f=="down"?"top":"left",k=f=="up"||f=="left"?"pos":"neg",l={},m={},n={};l[j]=(k=="pos"?"-=":"+=")+g,m[j]=(k=="pos"?"+=":"-=")+g*2,n[j]=(k=="pos"?"-=":"+=")+g*2,c.animate(l,i,b.options.easing);for(var p=1;p<h;p++)c.animate(m,i,b.options.easing).animate(n,i,b.options.easing);c.animate(m,i,b.options.easing).animate(l,i/2,b.options.easing,function(){a.effects.restore(c,d),a.effects.removeWrapper(c),b.callback&&b.callback.apply(this,arguments)}),c.queue("fx",function(){c.dequeue()}),c.dequeue()})}})(jQuery);
\ No newline at end of file
--- a/web/wp-includes/js/jquery/ui/jquery.effects.slide.min.js	Wed Dec 19 12:35:13 2012 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,5 +0,0 @@
-/*! jQuery UI - v1.8.20 - 2012-04-30
-* https://github.com/jquery/jquery-ui
-* Includes: jquery.effects.slide.js
-* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */
-(function(a,b){a.effects.slide=function(b){return this.queue(function(){var c=a(this),d=["position","top","bottom","left","right"],e=a.effects.setMode(c,b.options.mode||"show"),f=b.options.direction||"left";a.effects.save(c,d),c.show(),a.effects.createWrapper(c).css({overflow:"hidden"});var g=f=="up"||f=="down"?"top":"left",h=f=="up"||f=="left"?"pos":"neg",i=b.options.distance||(g=="top"?c.outerHeight({margin:!0}):c.outerWidth({margin:!0}));e=="show"&&c.css(g,h=="pos"?isNaN(i)?"-"+i:-i:i);var j={};j[g]=(e=="show"?h=="pos"?"+=":"-=":h=="pos"?"-=":"+=")+i,c.animate(j,{queue:!1,duration:b.duration,easing:b.options.easing,complete:function(){e=="hide"&&c.hide(),a.effects.restore(c,d),a.effects.removeWrapper(c),b.callback&&b.callback.apply(this,arguments),c.dequeue()}})})}})(jQuery);
\ No newline at end of file
--- a/web/wp-includes/js/jquery/ui/jquery.effects.transfer.min.js	Wed Dec 19 12:35:13 2012 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,5 +0,0 @@
-/*! jQuery UI - v1.8.20 - 2012-04-30
-* https://github.com/jquery/jquery-ui
-* Includes: jquery.effects.transfer.js
-* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */
-(function(a,b){a.effects.transfer=function(b){return this.queue(function(){var c=a(this),d=a(b.options.to),e=d.offset(),f={top:e.top,left:e.left,height:d.innerHeight(),width:d.innerWidth()},g=c.offset(),h=a('<div class="ui-effects-transfer"></div>').appendTo(document.body).addClass(b.options.className).css({top:g.top,left:g.left,height:c.innerHeight(),width:c.innerWidth(),position:"absolute"}).animate(f,b.duration,b.options.easing,function(){h.remove(),b.callback&&b.callback.apply(c[0],arguments),c.dequeue()})})}})(jQuery);
\ No newline at end of file
--- a/web/wp-includes/js/jquery/ui/jquery.ui.accordion.min.js	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/js/jquery/ui/jquery.ui.accordion.min.js	Wed Dec 19 17:46:52 2012 -0800
@@ -1,5 +1,5 @@
-/*! jQuery UI - v1.8.20 - 2012-04-30
-* https://github.com/jquery/jquery-ui
+/*! jQuery UI - v1.9.2 - 2012-11-23
+* http://jqueryui.com
 * Includes: jquery.ui.accordion.js
-* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */
-(function(a,b){a.widget("ui.accordion",{options:{active:0,animated:"slide",autoHeight:!0,clearStyle:!1,collapsible:!1,event:"click",fillSpace:!1,header:"> li > :first-child,> :not(li):even",icons:{header:"ui-icon-triangle-1-e",headerSelected:"ui-icon-triangle-1-s"},navigation:!1,navigationFilter:function(){return this.href.toLowerCase()===location.href.toLowerCase()}},_create:function(){var b=this,c=b.options;b.running=0,b.element.addClass("ui-accordion ui-widget ui-helper-reset").children("li").addClass("ui-accordion-li-fix"),b.headers=b.element.find(c.header).addClass("ui-accordion-header ui-helper-reset ui-state-default ui-corner-all").bind("mouseenter.accordion",function(){if(c.disabled)return;a(this).addClass("ui-state-hover")}).bind("mouseleave.accordion",function(){if(c.disabled)return;a(this).removeClass("ui-state-hover")}).bind("focus.accordion",function(){if(c.disabled)return;a(this).addClass("ui-state-focus")}).bind("blur.accordion",function(){if(c.disabled)return;a(this).removeClass("ui-state-focus")}),b.headers.next().addClass("ui-accordion-content ui-helper-reset ui-widget-content ui-corner-bottom");if(c.navigation){var d=b.element.find("a").filter(c.navigationFilter).eq(0);if(d.length){var e=d.closest(".ui-accordion-header");e.length?b.active=e:b.active=d.closest(".ui-accordion-content").prev()}}b.active=b._findActive(b.active||c.active).addClass("ui-state-default ui-state-active").toggleClass("ui-corner-all").toggleClass("ui-corner-top"),b.active.next().addClass("ui-accordion-content-active"),b._createIcons(),b.resize(),b.element.attr("role","tablist"),b.headers.attr("role","tab").bind("keydown.accordion",function(a){return b._keydown(a)}).next().attr("role","tabpanel"),b.headers.not(b.active||"").attr({"aria-expanded":"false","aria-selected":"false",tabIndex:-1}).next().hide(),b.active.length?b.active.attr({"aria-expanded":"true","aria-selected":"true",tabIndex:0}):b.headers.eq(0).attr("tabIndex",0),a.browser.safari||b.headers.find("a").attr("tabIndex",-1),c.event&&b.headers.bind(c.event.split(" ").join(".accordion ")+".accordion",function(a){b._clickHandler.call(b,a,this),a.preventDefault()})},_createIcons:function(){var b=this.options;b.icons&&(a("<span></span>").addClass("ui-icon "+b.icons.header).prependTo(this.headers),this.active.children(".ui-icon").toggleClass(b.icons.header).toggleClass(b.icons.headerSelected),this.element.addClass("ui-accordion-icons"))},_destroyIcons:function(){this.headers.children(".ui-icon").remove(),this.element.removeClass("ui-accordion-icons")},destroy:function(){var b=this.options;this.element.removeClass("ui-accordion ui-widget ui-helper-reset").removeAttr("role"),this.headers.unbind(".accordion").removeClass("ui-accordion-header ui-accordion-disabled ui-helper-reset ui-state-default ui-corner-all ui-state-active ui-state-disabled ui-corner-top").removeAttr("role").removeAttr("aria-expanded").removeAttr("aria-selected").removeAttr("tabIndex"),this.headers.find("a").removeAttr("tabIndex"),this._destroyIcons();var c=this.headers.next().css("display","").removeAttr("role").removeClass("ui-helper-reset ui-widget-content ui-corner-bottom ui-accordion-content ui-accordion-content-active ui-accordion-disabled ui-state-disabled");return(b.autoHeight||b.fillHeight)&&c.css("height",""),a.Widget.prototype.destroy.call(this)},_setOption:function(b,c){a.Widget.prototype._setOption.apply(this,arguments),b=="active"&&this.activate(c),b=="icons"&&(this._destroyIcons(),c&&this._createIcons()),b=="disabled"&&this.headers.add(this.headers.next())[c?"addClass":"removeClass"]("ui-accordion-disabled ui-state-disabled")},_keydown:function(b){if(this.options.disabled||b.altKey||b.ctrlKey)return;var c=a.ui.keyCode,d=this.headers.length,e=this.headers.index(b.target),f=!1;switch(b.keyCode){case c.RIGHT:case c.DOWN:f=this.headers[(e+1)%d];break;case c.LEFT:case c.UP:f=this.headers[(e-1+d)%d];break;case c.SPACE:case c.ENTER:this._clickHandler({target:b.target},b.target),b.preventDefault()}return f?(a(b.target).attr("tabIndex",-1),a(f).attr("tabIndex",0),f.focus(),!1):!0},resize:function(){var b=this.options,c;if(b.fillSpace){if(a.browser.msie){var d=this.element.parent().css("overflow");this.element.parent().css("overflow","hidden")}c=this.element.parent().height(),a.browser.msie&&this.element.parent().css("overflow",d),this.headers.each(function(){c-=a(this).outerHeight(!0)}),this.headers.next().each(function(){a(this).height(Math.max(0,c-a(this).innerHeight()+a(this).height()))}).css("overflow","auto")}else b.autoHeight&&(c=0,this.headers.next().each(function(){c=Math.max(c,a(this).height("").height())}).height(c));return this},activate:function(a){this.options.active=a;var b=this._findActive(a)[0];return this._clickHandler({target:b},b),this},_findActive:function(b){return b?typeof b=="number"?this.headers.filter(":eq("+b+")"):this.headers.not(this.headers.not(b)):b===!1?a([]):this.headers.filter(":eq(0)")},_clickHandler:function(b,c){var d=this.options;if(d.disabled)return;if(!b.target){if(!d.collapsible)return;this.active.removeClass("ui-state-active ui-corner-top").addClass("ui-state-default ui-corner-all").children(".ui-icon").removeClass(d.icons.headerSelected).addClass(d.icons.header),this.active.next().addClass("ui-accordion-content-active");var e=this.active.next(),f={options:d,newHeader:a([]),oldHeader:d.active,newContent:a([]),oldContent:e},g=this.active=a([]);this._toggle(g,e,f);return}var h=a(b.currentTarget||c),i=h[0]===this.active[0];d.active=d.collapsible&&i?!1:this.headers.index(h);if(this.running||!d.collapsible&&i)return;var j=this.active,g=h.next(),e=this.active.next(),f={options:d,newHeader:i&&d.collapsible?a([]):h,oldHeader:this.active,newContent:i&&d.collapsible?a([]):g,oldContent:e},k=this.headers.index(this.active[0])>this.headers.index(h[0]);this.active=i?a([]):h,this._toggle(g,e,f,i,k),j.removeClass("ui-state-active ui-corner-top").addClass("ui-state-default ui-corner-all").children(".ui-icon").removeClass(d.icons.headerSelected).addClass(d.icons.header),i||(h.removeClass("ui-state-default ui-corner-all").addClass("ui-state-active ui-corner-top").children(".ui-icon").removeClass(d.icons.header).addClass(d.icons.headerSelected),h.next().addClass("ui-accordion-content-active"));return},_toggle:function(b,c,d,e,f){var g=this,h=g.options;g.toShow=b,g.toHide=c,g.data=d;var i=function(){if(!g)return;return g._completed.apply(g,arguments)};g._trigger("changestart",null,g.data),g.running=c.size()===0?b.size():c.size();if(h.animated){var j={};h.collapsible&&e?j={toShow:a([]),toHide:c,complete:i,down:f,autoHeight:h.autoHeight||h.fillSpace}:j={toShow:b,toHide:c,complete:i,down:f,autoHeight:h.autoHeight||h.fillSpace},h.proxied||(h.proxied=h.animated),h.proxiedDuration||(h.proxiedDuration=h.duration),h.animated=a.isFunction(h.proxied)?h.proxied(j):h.proxied,h.duration=a.isFunction(h.proxiedDuration)?h.proxiedDuration(j):h.proxiedDuration;var k=a.ui.accordion.animations,l=h.duration,m=h.animated;m&&!k[m]&&!a.easing[m]&&(m="slide"),k[m]||(k[m]=function(a){this.slide(a,{easing:m,duration:l||700})}),k[m](j)}else h.collapsible&&e?b.toggle():(c.hide(),b.show()),i(!0);c.prev().attr({"aria-expanded":"false","aria-selected":"false",tabIndex:-1}).blur(),b.prev().attr({"aria-expanded":"true","aria-selected":"true",tabIndex:0}).focus()},_completed:function(a){this.running=a?0:--this.running;if(this.running)return;this.options.clearStyle&&this.toShow.add(this.toHide).css({height:"",overflow:""}),this.toHide.removeClass("ui-accordion-content-active"),this.toHide.length&&(this.toHide.parent()[0].className=this.toHide.parent()[0].className),this._trigger("change",null,this.data)}}),a.extend(a.ui.accordion,{version:"1.8.20",animations:{slide:function(b,c){b=a.extend({easing:"swing",duration:300},b,c);if(!b.toHide.size()){b.toShow.animate({height:"show",paddingTop:"show",paddingBottom:"show"},b);return}if(!b.toShow.size()){b.toHide.animate({height:"hide",paddingTop:"hide",paddingBottom:"hide"},b);return}var d=b.toShow.css("overflow"),e=0,f={},g={},h=["height","paddingTop","paddingBottom"],i,j=b.toShow;i=j[0].style.width,j.width(j.parent().width()-parseFloat(j.css("paddingLeft"))-parseFloat(j.css("paddingRight"))-(parseFloat(j.css("borderLeftWidth"))||0)-(parseFloat(j.css("borderRightWidth"))||0)),a.each(h,function(c,d){g[d]="hide";var e=(""+a.css(b.toShow[0],d)).match(/^([\d+-.]+)(.*)$/);f[d]={value:e[1],unit:e[2]||"px"}}),b.toShow.css({height:0,overflow:"hidden"}).show(),b.toHide.filter(":hidden").each(b.complete).end().filter(":visible").animate(g,{step:function(a,c){c.prop=="height"&&(e=c.end-c.start===0?0:(c.now-c.start)/(c.end-c.start)),b.toShow[0].style[c.prop]=e*f[c.prop].value+f[c.prop].unit},duration:b.duration,easing:b.easing,complete:function(){b.autoHeight||b.toShow.css("height",""),b.toShow.css({width:i,overflow:d}),b.complete()}})},bounceslide:function(a){this.slide(a,{easing:a.down?"easeOutBounce":"swing",duration:a.down?1e3:200})}}})})(jQuery);
\ No newline at end of file
+* Copyright 2012 jQuery Foundation and other contributors; Licensed MIT */
+(function(e,t){var n=0,r={},i={};r.height=r.paddingTop=r.paddingBottom=r.borderTopWidth=r.borderBottomWidth="hide",i.height=i.paddingTop=i.paddingBottom=i.borderTopWidth=i.borderBottomWidth="show",e.widget("ui.accordion",{version:"1.9.2",options:{active:0,animate:{},collapsible:!1,event:"click",header:"> li > :first-child,> :not(li):even",heightStyle:"auto",icons:{activeHeader:"ui-icon-triangle-1-s",header:"ui-icon-triangle-1-e"},activate:null,beforeActivate:null},_create:function(){var t=this.accordionId="ui-accordion-"+(this.element.attr("id")||++n),r=this.options;this.prevShow=this.prevHide=e(),this.element.addClass("ui-accordion ui-widget ui-helper-reset"),this.headers=this.element.find(r.header).addClass("ui-accordion-header ui-helper-reset ui-state-default ui-corner-all"),this._hoverable(this.headers),this._focusable(this.headers),this.headers.next().addClass("ui-accordion-content ui-helper-reset ui-widget-content ui-corner-bottom").hide(),!r.collapsible&&(r.active===!1||r.active==null)&&(r.active=0),r.active<0&&(r.active+=this.headers.length),this.active=this._findActive(r.active).addClass("ui-accordion-header-active ui-state-active").toggleClass("ui-corner-all ui-corner-top"),this.active.next().addClass("ui-accordion-content-active").show(),this._createIcons(),this.refresh(),this.element.attr("role","tablist"),this.headers.attr("role","tab").each(function(n){var r=e(this),i=r.attr("id"),s=r.next(),o=s.attr("id");i||(i=t+"-header-"+n,r.attr("id",i)),o||(o=t+"-panel-"+n,s.attr("id",o)),r.attr("aria-controls",o),s.attr("aria-labelledby",i)}).next().attr("role","tabpanel"),this.headers.not(this.active).attr({"aria-selected":"false",tabIndex:-1}).next().attr({"aria-expanded":"false","aria-hidden":"true"}).hide(),this.active.length?this.active.attr({"aria-selected":"true",tabIndex:0}).next().attr({"aria-expanded":"true","aria-hidden":"false"}):this.headers.eq(0).attr("tabIndex",0),this._on(this.headers,{keydown:"_keydown"}),this._on(this.headers.next(),{keydown:"_panelKeyDown"}),this._setupEvents(r.event)},_getCreateEventData:function(){return{header:this.active,content:this.active.length?this.active.next():e()}},_createIcons:function(){var t=this.options.icons;t&&(e("<span>").addClass("ui-accordion-header-icon ui-icon "+t.header).prependTo(this.headers),this.active.children(".ui-accordion-header-icon").removeClass(t.header).addClass(t.activeHeader),this.headers.addClass("ui-accordion-icons"))},_destroyIcons:function(){this.headers.removeClass("ui-accordion-icons").children(".ui-accordion-header-icon").remove()},_destroy:function(){var e;this.element.removeClass("ui-accordion ui-widget ui-helper-reset").removeAttr("role"),this.headers.removeClass("ui-accordion-header ui-accordion-header-active ui-helper-reset ui-state-default ui-corner-all ui-state-active ui-state-disabled ui-corner-top").removeAttr("role").removeAttr("aria-selected").removeAttr("aria-controls").removeAttr("tabIndex").each(function(){/^ui-accordion/.test(this.id)&&this.removeAttribute("id")}),this._destroyIcons(),e=this.headers.next().css("display","").removeAttr("role").removeAttr("aria-expanded").removeAttr("aria-hidden").removeAttr("aria-labelledby").removeClass("ui-helper-reset ui-widget-content ui-corner-bottom ui-accordion-content ui-accordion-content-active ui-state-disabled").each(function(){/^ui-accordion/.test(this.id)&&this.removeAttribute("id")}),this.options.heightStyle!=="content"&&e.css("height","")},_setOption:function(e,t){if(e==="active"){this._activate(t);return}e==="event"&&(this.options.event&&this._off(this.headers,this.options.event),this._setupEvents(t)),this._super(e,t),e==="collapsible"&&!t&&this.options.active===!1&&this._activate(0),e==="icons"&&(this._destroyIcons(),t&&this._createIcons()),e==="disabled"&&this.headers.add(this.headers.next()).toggleClass("ui-state-disabled",!!t)},_keydown:function(t){if(t.altKey||t.ctrlKey)return;var n=e.ui.keyCode,r=this.headers.length,i=this.headers.index(t.target),s=!1;switch(t.keyCode){case n.RIGHT:case n.DOWN:s=this.headers[(i+1)%r];break;case n.LEFT:case n.UP:s=this.headers[(i-1+r)%r];break;case n.SPACE:case n.ENTER:this._eventHandler(t);break;case n.HOME:s=this.headers[0];break;case n.END:s=this.headers[r-1]}s&&(e(t.target).attr("tabIndex",-1),e(s).attr("tabIndex",0),s.focus(),t.preventDefault())},_panelKeyDown:function(t){t.keyCode===e.ui.keyCode.UP&&t.ctrlKey&&e(t.currentTarget).prev().focus()},refresh:function(){var t,n,r=this.options.heightStyle,i=this.element.parent();r==="fill"?(e.support.minHeight||(n=i.css("overflow"),i.css("overflow","hidden")),t=i.height(),this.element.siblings(":visible").each(function(){var n=e(this),r=n.css("position");if(r==="absolute"||r==="fixed")return;t-=n.outerHeight(!0)}),n&&i.css("overflow",n),this.headers.each(function(){t-=e(this).outerHeight(!0)}),this.headers.next().each(function(){e(this).height(Math.max(0,t-e(this).innerHeight()+e(this).height()))}).css("overflow","auto")):r==="auto"&&(t=0,this.headers.next().each(function(){t=Math.max(t,e(this).css("height","").height())}).height(t))},_activate:function(t){var n=this._findActive(t)[0];if(n===this.active[0])return;n=n||this.active[0],this._eventHandler({target:n,currentTarget:n,preventDefault:e.noop})},_findActive:function(t){return typeof t=="number"?this.headers.eq(t):e()},_setupEvents:function(t){var n={};if(!t)return;e.each(t.split(" "),function(e,t){n[t]="_eventHandler"}),this._on(this.headers,n)},_eventHandler:function(t){var n=this.options,r=this.active,i=e(t.currentTarget),s=i[0]===r[0],o=s&&n.collapsible,u=o?e():i.next(),a=r.next(),f={oldHeader:r,oldPanel:a,newHeader:o?e():i,newPanel:u};t.preventDefault();if(s&&!n.collapsible||this._trigger("beforeActivate",t,f)===!1)return;n.active=o?!1:this.headers.index(i),this.active=s?e():i,this._toggle(f),r.removeClass("ui-accordion-header-active ui-state-active"),n.icons&&r.children(".ui-accordion-header-icon").removeClass(n.icons.activeHeader).addClass(n.icons.header),s||(i.removeClass("ui-corner-all").addClass("ui-accordion-header-active ui-state-active ui-corner-top"),n.icons&&i.children(".ui-accordion-header-icon").removeClass(n.icons.header).addClass(n.icons.activeHeader),i.next().addClass("ui-accordion-content-active"))},_toggle:function(t){var n=t.newPanel,r=this.prevShow.length?this.prevShow:t.oldPanel;this.prevShow.add(this.prevHide).stop(!0,!0),this.prevShow=n,this.prevHide=r,this.options.animate?this._animate(n,r,t):(r.hide(),n.show(),this._toggleComplete(t)),r.attr({"aria-expanded":"false","aria-hidden":"true"}),r.prev().attr("aria-selected","false"),n.length&&r.length?r.prev().attr("tabIndex",-1):n.length&&this.headers.filter(function(){return e(this).attr("tabIndex")===0}).attr("tabIndex",-1),n.attr({"aria-expanded":"true","aria-hidden":"false"}).prev().attr({"aria-selected":"true",tabIndex:0})},_animate:function(e,t,n){var s,o,u,a=this,f=0,l=e.length&&(!t.length||e.index()<t.index()),c=this.options.animate||{},h=l&&c.down||c,p=function(){a._toggleComplete(n)};typeof h=="number"&&(u=h),typeof h=="string"&&(o=h),o=o||h.easing||c.easing,u=u||h.duration||c.duration;if(!t.length)return e.animate(i,u,o,p);if(!e.length)return t.animate(r,u,o,p);s=e.show().outerHeight(),t.animate(r,{duration:u,easing:o,step:function(e,t){t.now=Math.round(e)}}),e.hide().animate(i,{duration:u,easing:o,complete:p,step:function(e,n){n.now=Math.round(e),n.prop!=="height"?f+=n.now:a.options.heightStyle!=="content"&&(n.now=Math.round(s-t.outerHeight()-f),f=0)}})},_toggleComplete:function(e){var t=e.oldPanel;t.removeClass("ui-accordion-content-active").prev().removeClass("ui-corner-top").addClass("ui-corner-all"),t.length&&(t.parent()[0].className=t.parent()[0].className),this._trigger("activate",null,e)}}),e.uiBackCompat!==!1&&(function(e,t){e.extend(t.options,{navigation:!1,navigationFilter:function(){return this.href.toLowerCase()===location.href.toLowerCase()}});var n=t._create;t._create=function(){if(this.options.navigation){var t=this,r=this.element.find(this.options.header),i=r.next(),s=r.add(i).find("a").filter(this.options.navigationFilter)[0];s&&r.add(i).each(function(n){if(e.contains(this,s))return t.options.active=Math.floor(n/2),!1})}n.call(this)}}(jQuery,jQuery.ui.accordion.prototype),function(e,t){e.extend(t.options,{heightStyle:null,autoHeight:!0,clearStyle:!1,fillSpace:!1});var n=t._create,r=t._setOption;e.extend(t,{_create:function(){this.options.heightStyle=this.options.heightStyle||this._mergeHeightStyle(),n.call(this)},_setOption:function(e){if(e==="autoHeight"||e==="clearStyle"||e==="fillSpace")this.options.heightStyle=this._mergeHeightStyle();r.apply(this,arguments)},_mergeHeightStyle:function(){var e=this.options;if(e.fillSpace)return"fill";if(e.clearStyle)return"content";if(e.autoHeight)return"auto"}})}(jQuery,jQuery.ui.accordion.prototype),function(e,t){e.extend(t.options.icons,{activeHeader:null,headerSelected:"ui-icon-triangle-1-s"});var n=t._createIcons;t._createIcons=function(){this.options.icons&&(this.options.icons.activeHeader=this.options.icons.activeHeader||this.options.icons.headerSelected),n.call(this)}}(jQuery,jQuery.ui.accordion.prototype),function(e,t){t.activate=t._activate;var n=t._findActive;t._findActive=function(e){return e===-1&&(e=!1),e&&typeof e!="number"&&(e=this.headers.index(this.headers.filter(e)),e===-1&&(e=!1)),n.call(this,e)}}(jQuery,jQuery.ui.accordion.prototype),jQuery.ui.accordion.prototype.resize=jQuery.ui.accordion.prototype.refresh,function(e,t){e.extend(t.options,{change:null,changestart:null});var n=t._trigger;t._trigger=function(e,t,r){var i=n.apply(this,arguments);return i?(e==="beforeActivate"?i=n.call(this,"changestart",t,{oldHeader:r.oldHeader,oldContent:r.oldPanel,newHeader:r.newHeader,newContent:r.newPanel}):e==="activate"&&(i=n.call(this,"change",t,{oldHeader:r.oldHeader,oldContent:r.oldPanel,newHeader:r.newHeader,newContent:r.newPanel})),i):!1}}(jQuery,jQuery.ui.accordion.prototype),function(e,t){e.extend(t.options,{animate:null,animated:"slide"});var n=t._create;t._create=function(){var e=this.options;e.animate===null&&(e.animated?e.animated==="slide"?e.animate=300:e.animated==="bounceslide"?e.animate={duration:200,down:{easing:"easeOutBounce",duration:1e3}}:e.animate=e.animated:e.animate=!1),n.call(this)}}(jQuery,jQuery.ui.accordion.prototype))})(jQuery);
\ No newline at end of file
--- a/web/wp-includes/js/jquery/ui/jquery.ui.autocomplete.min.js	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/js/jquery/ui/jquery.ui.autocomplete.min.js	Wed Dec 19 17:46:52 2012 -0800
@@ -1,5 +1,5 @@
-/*! jQuery UI - v1.8.20 - 2012-04-30
-* https://github.com/jquery/jquery-ui
+/*! jQuery UI - v1.9.2 - 2012-11-23
+* http://jqueryui.com
 * Includes: jquery.ui.autocomplete.js
-* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */
-(function(a,b){var c=0;a.widget("ui.autocomplete",{options:{appendTo:"body",autoFocus:!1,delay:300,minLength:1,position:{my:"left top",at:"left bottom",collision:"none"},source:null},pending:0,_create:function(){var b=this,c=this.element[0].ownerDocument,d;this.isMultiLine=this.element.is("textarea"),this.element.addClass("ui-autocomplete-input").attr("autocomplete","off").attr({role:"textbox","aria-autocomplete":"list","aria-haspopup":"true"}).bind("keydown.autocomplete",function(c){if(b.options.disabled||b.element.propAttr("readOnly"))return;d=!1;var e=a.ui.keyCode;switch(c.keyCode){case e.PAGE_UP:b._move("previousPage",c);break;case e.PAGE_DOWN:b._move("nextPage",c);break;case e.UP:b._keyEvent("previous",c);break;case e.DOWN:b._keyEvent("next",c);break;case e.ENTER:case e.NUMPAD_ENTER:b.menu.active&&(d=!0,c.preventDefault());case e.TAB:if(!b.menu.active)return;b.menu.select(c);break;case e.ESCAPE:b.element.val(b.term),b.close(c);break;default:clearTimeout(b.searching),b.searching=setTimeout(function(){b.term!=b.element.val()&&(b.selectedItem=null,b.search(null,c))},b.options.delay)}}).bind("keypress.autocomplete",function(a){d&&(d=!1,a.preventDefault())}).bind("focus.autocomplete",function(){if(b.options.disabled)return;b.selectedItem=null,b.previous=b.element.val()}).bind("blur.autocomplete",function(a){if(b.options.disabled)return;clearTimeout(b.searching),b.closing=setTimeout(function(){b.close(a),b._change(a)},150)}),this._initSource(),this.menu=a("<ul></ul>").addClass("ui-autocomplete").appendTo(a(this.options.appendTo||"body",c)[0]).mousedown(function(c){var d=b.menu.element[0];a(c.target).closest(".ui-menu-item").length||setTimeout(function(){a(document).one("mousedown",function(c){c.target!==b.element[0]&&c.target!==d&&!a.ui.contains(d,c.target)&&b.close()})},1),setTimeout(function(){clearTimeout(b.closing)},13)}).menu({focus:function(a,c){var d=c.item.data("item.autocomplete");!1!==b._trigger("focus",a,{item:d})&&/^key/.test(a.originalEvent.type)&&b.element.val(d.value)},selected:function(a,d){var e=d.item.data("item.autocomplete"),f=b.previous;b.element[0]!==c.activeElement&&(b.element.focus(),b.previous=f,setTimeout(function(){b.previous=f,b.selectedItem=e},1)),!1!==b._trigger("select",a,{item:e})&&b.element.val(e.value),b.term=b.element.val(),b.close(a),b.selectedItem=e},blur:function(a,c){b.menu.element.is(":visible")&&b.element.val()!==b.term&&b.element.val(b.term)}}).zIndex(this.element.zIndex()+1).css({top:0,left:0}).hide().data("menu"),a.fn.bgiframe&&this.menu.element.bgiframe(),b.beforeunloadHandler=function(){b.element.removeAttr("autocomplete")},a(window).bind("beforeunload",b.beforeunloadHandler)},destroy:function(){this.element.removeClass("ui-autocomplete-input").removeAttr("autocomplete").removeAttr("role").removeAttr("aria-autocomplete").removeAttr("aria-haspopup"),this.menu.element.remove(),a(window).unbind("beforeunload",this.beforeunloadHandler),a.Widget.prototype.destroy.call(this)},_setOption:function(b,c){a.Widget.prototype._setOption.apply(this,arguments),b==="source"&&this._initSource(),b==="appendTo"&&this.menu.element.appendTo(a(c||"body",this.element[0].ownerDocument)[0]),b==="disabled"&&c&&this.xhr&&this.xhr.abort()},_initSource:function(){var b=this,c,d;a.isArray(this.options.source)?(c=this.options.source,this.source=function(b,d){d(a.ui.autocomplete.filter(c,b.term))}):typeof this.options.source=="string"?(d=this.options.source,this.source=function(c,e){b.xhr&&b.xhr.abort(),b.xhr=a.ajax({url:d,data:c,dataType:"json",success:function(a,b){e(a)},error:function(){e([])}})}):this.source=this.options.source},search:function(a,b){a=a!=null?a:this.element.val(),this.term=this.element.val();if(a.length<this.options.minLength)return this.close(b);clearTimeout(this.closing);if(this._trigger("search",b)===!1)return;return this._search(a)},_search:function(a){this.pending++,this.element.addClass("ui-autocomplete-loading"),this.source({term:a},this._response())},_response:function(){var a=this,b=++c;return function(d){b===c&&a.__response(d),a.pending--,a.pending||a.element.removeClass("ui-autocomplete-loading")}},__response:function(a){!this.options.disabled&&a&&a.length?(a=this._normalize(a),this._suggest(a),this._trigger("open")):this.close()},close:function(a){clearTimeout(this.closing),this.menu.element.is(":visible")&&(this.menu.element.hide(),this.menu.deactivate(),this._trigger("close",a))},_change:function(a){this.previous!==this.element.val()&&this._trigger("change",a,{item:this.selectedItem})},_normalize:function(b){return b.length&&b[0].label&&b[0].value?b:a.map(b,function(b){return typeof b=="string"?{label:b,value:b}:a.extend({label:b.label||b.value,value:b.value||b.label},b)})},_suggest:function(b){var c=this.menu.element.empty().zIndex(this.element.zIndex()+1);this._renderMenu(c,b),this.menu.deactivate(),this.menu.refresh(),c.show(),this._resizeMenu(),c.position(a.extend({of:this.element},this.options.position)),this.options.autoFocus&&this.menu.next(new a.Event("mouseover"))},_resizeMenu:function(){var a=this.menu.element;a.outerWidth(Math.max(a.width("").outerWidth()+1,this.element.outerWidth()))},_renderMenu:function(b,c){var d=this;a.each(c,function(a,c){d._renderItem(b,c)})},_renderItem:function(b,c){return a("<li></li>").data("item.autocomplete",c).append(a("<a></a>").text(c.label)).appendTo(b)},_move:function(a,b){if(!this.menu.element.is(":visible")){this.search(null,b);return}if(this.menu.first()&&/^previous/.test(a)||this.menu.last()&&/^next/.test(a)){this.element.val(this.term),this.menu.deactivate();return}this.menu[a](b)},widget:function(){return this.menu.element},_keyEvent:function(a,b){if(!this.isMultiLine||this.menu.element.is(":visible"))this._move(a,b),b.preventDefault()}}),a.extend(a.ui.autocomplete,{escapeRegex:function(a){return a.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&")},filter:function(b,c){var d=new RegExp(a.ui.autocomplete.escapeRegex(c),"i");return a.grep(b,function(a){return d.test(a.label||a.value||a)})}})})(jQuery),function(a){a.widget("ui.menu",{_create:function(){var b=this;this.element.addClass("ui-menu ui-widget ui-widget-content ui-corner-all").attr({role:"listbox","aria-activedescendant":"ui-active-menuitem"}).click(function(c){if(!a(c.target).closest(".ui-menu-item a").length)return;c.preventDefault(),b.select(c)}),this.refresh()},refresh:function(){var b=this,c=this.element.children("li:not(.ui-menu-item):has(a)").addClass("ui-menu-item").attr("role","menuitem");c.children("a").addClass("ui-corner-all").attr("tabindex",-1).mouseenter(function(c){b.activate(c,a(this).parent())}).mouseleave(function(){b.deactivate()})},activate:function(a,b){this.deactivate();if(this.hasScroll()){var c=b.offset().top-this.element.offset().top,d=this.element.scrollTop(),e=this.element.height();c<0?this.element.scrollTop(d+c):c>=e&&this.element.scrollTop(d+c-e+b.height())}this.active=b.eq(0).children("a").addClass("ui-state-hover").attr("id","ui-active-menuitem").end(),this._trigger("focus",a,{item:b})},deactivate:function(){if(!this.active)return;this.active.children("a").removeClass("ui-state-hover").removeAttr("id"),this._trigger("blur"),this.active=null},next:function(a){this.move("next",".ui-menu-item:first",a)},previous:function(a){this.move("prev",".ui-menu-item:last",a)},first:function(){return this.active&&!this.active.prevAll(".ui-menu-item").length},last:function(){return this.active&&!this.active.nextAll(".ui-menu-item").length},move:function(a,b,c){if(!this.active){this.activate(c,this.element.children(b));return}var d=this.active[a+"All"](".ui-menu-item").eq(0);d.length?this.activate(c,d):this.activate(c,this.element.children(b))},nextPage:function(b){if(this.hasScroll()){if(!this.active||this.last()){this.activate(b,this.element.children(".ui-menu-item:first"));return}var c=this.active.offset().top,d=this.element.height(),e=this.element.children(".ui-menu-item").filter(function(){var b=a(this).offset().top-c-d+a(this).height();return b<10&&b>-10});e.length||(e=this.element.children(".ui-menu-item:last")),this.activate(b,e)}else this.activate(b,this.element.children(".ui-menu-item").filter(!this.active||this.last()?":first":":last"))},previousPage:function(b){if(this.hasScroll()){if(!this.active||this.first()){this.activate(b,this.element.children(".ui-menu-item:last"));return}var c=this.active.offset().top,d=this.element.height(),e=this.element.children(".ui-menu-item").filter(function(){var b=a(this).offset().top-c+d-a(this).height();return b<10&&b>-10});e.length||(e=this.element.children(".ui-menu-item:first")),this.activate(b,e)}else this.activate(b,this.element.children(".ui-menu-item").filter(!this.active||this.first()?":last":":first"))},hasScroll:function(){return this.element.height()<this.element[a.fn.prop?"prop":"attr"]("scrollHeight")},select:function(a){this._trigger("selected",a,{item:this.active})}})}(jQuery);
\ No newline at end of file
+* Copyright 2012 jQuery Foundation and other contributors; Licensed MIT */
+(function(e,t){var n=0;e.widget("ui.autocomplete",{version:"1.9.2",defaultElement:"<input>",options:{appendTo:"body",autoFocus:!1,delay:300,minLength:1,position:{my:"left top",at:"left bottom",collision:"none"},source:null,change:null,close:null,focus:null,open:null,response:null,search:null,select:null},pending:0,_create:function(){var t,n,r;this.isMultiLine=this._isMultiLine(),this.valueMethod=this.element[this.element.is("input,textarea")?"val":"text"],this.isNewMenu=!0,this.element.addClass("ui-autocomplete-input").attr("autocomplete","off"),this._on(this.element,{keydown:function(i){if(this.element.prop("readOnly")){t=!0,r=!0,n=!0;return}t=!1,r=!1,n=!1;var s=e.ui.keyCode;switch(i.keyCode){case s.PAGE_UP:t=!0,this._move("previousPage",i);break;case s.PAGE_DOWN:t=!0,this._move("nextPage",i);break;case s.UP:t=!0,this._keyEvent("previous",i);break;case s.DOWN:t=!0,this._keyEvent("next",i);break;case s.ENTER:case s.NUMPAD_ENTER:this.menu.active&&(t=!0,i.preventDefault(),this.menu.select(i));break;case s.TAB:this.menu.active&&this.menu.select(i);break;case s.ESCAPE:this.menu.element.is(":visible")&&(this._value(this.term),this.close(i),i.preventDefault());break;default:n=!0,this._searchTimeout(i)}},keypress:function(r){if(t){t=!1,r.preventDefault();return}if(n)return;var i=e.ui.keyCode;switch(r.keyCode){case i.PAGE_UP:this._move("previousPage",r);break;case i.PAGE_DOWN:this._move("nextPage",r);break;case i.UP:this._keyEvent("previous",r);break;case i.DOWN:this._keyEvent("next",r)}},input:function(e){if(r){r=!1,e.preventDefault();return}this._searchTimeout(e)},focus:function(){this.selectedItem=null,this.previous=this._value()},blur:function(e){if(this.cancelBlur){delete this.cancelBlur;return}clearTimeout(this.searching),this.close(e),this._change(e)}}),this._initSource(),this.menu=e("<ul>").addClass("ui-autocomplete").appendTo(this.document.find(this.options.appendTo||"body")[0]).menu({input:e(),role:null}).zIndex(this.element.zIndex()+1).hide().data("menu"),this._on(this.menu.element,{mousedown:function(t){t.preventDefault(),this.cancelBlur=!0,this._delay(function(){delete this.cancelBlur});var n=this.menu.element[0];e(t.target).closest(".ui-menu-item").length||this._delay(function(){var t=this;this.document.one("mousedown",function(r){r.target!==t.element[0]&&r.target!==n&&!e.contains(n,r.target)&&t.close()})})},menufocus:function(t,n){if(this.isNewMenu){this.isNewMenu=!1;if(t.originalEvent&&/^mouse/.test(t.originalEvent.type)){this.menu.blur(),this.document.one("mousemove",function(){e(t.target).trigger(t.originalEvent)});return}}var r=n.item.data("ui-autocomplete-item")||n.item.data("item.autocomplete");!1!==this._trigger("focus",t,{item:r})?t.originalEvent&&/^key/.test(t.originalEvent.type)&&this._value(r.value):this.liveRegion.text(r.value)},menuselect:function(e,t){var n=t.item.data("ui-autocomplete-item")||t.item.data("item.autocomplete"),r=this.previous;this.element[0]!==this.document[0].activeElement&&(this.element.focus(),this.previous=r,this._delay(function(){this.previous=r,this.selectedItem=n})),!1!==this._trigger("select",e,{item:n})&&this._value(n.value),this.term=this._value(),this.close(e),this.selectedItem=n}}),this.liveRegion=e("<span>",{role:"status","aria-live":"polite"}).addClass("ui-helper-hidden-accessible").insertAfter(this.element),e.fn.bgiframe&&this.menu.element.bgiframe(),this._on(this.window,{beforeunload:function(){this.element.removeAttr("autocomplete")}})},_destroy:function(){clearTimeout(this.searching),this.element.removeClass("ui-autocomplete-input").removeAttr("autocomplete"),this.menu.element.remove(),this.liveRegion.remove()},_setOption:function(e,t){this._super(e,t),e==="source"&&this._initSource(),e==="appendTo"&&this.menu.element.appendTo(this.document.find(t||"body")[0]),e==="disabled"&&t&&this.xhr&&this.xhr.abort()},_isMultiLine:function(){return this.element.is("textarea")?!0:this.element.is("input")?!1:this.element.prop("isContentEditable")},_initSource:function(){var t,n,r=this;e.isArray(this.options.source)?(t=this.options.source,this.source=function(n,r){r(e.ui.autocomplete.filter(t,n.term))}):typeof this.options.source=="string"?(n=this.options.source,this.source=function(t,i){r.xhr&&r.xhr.abort(),r.xhr=e.ajax({url:n,data:t,dataType:"json",success:function(e){i(e)},error:function(){i([])}})}):this.source=this.options.source},_searchTimeout:function(e){clearTimeout(this.searching),this.searching=this._delay(function(){this.term!==this._value()&&(this.selectedItem=null,this.search(null,e))},this.options.delay)},search:function(e,t){e=e!=null?e:this._value(),this.term=this._value();if(e.length<this.options.minLength)return this.close(t);if(this._trigger("search",t)===!1)return;return this._search(e)},_search:function(e){this.pending++,this.element.addClass("ui-autocomplete-loading"),this.cancelSearch=!1,this.source({term:e},this._response())},_response:function(){var e=this,t=++n;return function(r){t===n&&e.__response(r),e.pending--,e.pending||e.element.removeClass("ui-autocomplete-loading")}},__response:function(e){e&&(e=this._normalize(e)),this._trigger("response",null,{content:e}),!this.options.disabled&&e&&e.length&&!this.cancelSearch?(this._suggest(e),this._trigger("open")):this._close()},close:function(e){this.cancelSearch=!0,this._close(e)},_close:function(e){this.menu.element.is(":visible")&&(this.menu.element.hide(),this.menu.blur(),this.isNewMenu=!0,this._trigger("close",e))},_change:function(e){this.previous!==this._value()&&this._trigger("change",e,{item:this.selectedItem})},_normalize:function(t){return t.length&&t[0].label&&t[0].value?t:e.map(t,function(t){return typeof t=="string"?{label:t,value:t}:e.extend({label:t.label||t.value,value:t.value||t.label},t)})},_suggest:function(t){var n=this.menu.element.empty().zIndex(this.element.zIndex()+1);this._renderMenu(n,t),this.menu.refresh(),n.show(),this._resizeMenu(),n.position(e.extend({of:this.element},this.options.position)),this.options.autoFocus&&this.menu.next()},_resizeMenu:function(){var e=this.menu.element;e.outerWidth(Math.max(e.width("").outerWidth()+1,this.element.outerWidth()))},_renderMenu:function(t,n){var r=this;e.each(n,function(e,n){r._renderItemData(t,n)})},_renderItemData:function(e,t){return this._renderItem(e,t).data("ui-autocomplete-item",t)},_renderItem:function(t,n){return e("<li>").append(e("<a>").text(n.label)).appendTo(t)},_move:function(e,t){if(!this.menu.element.is(":visible")){this.search(null,t);return}if(this.menu.isFirstItem()&&/^previous/.test(e)||this.menu.isLastItem()&&/^next/.test(e)){this._value(this.term),this.menu.blur();return}this.menu[e](t)},widget:function(){return this.menu.element},_value:function(){return this.valueMethod.apply(this.element,arguments)},_keyEvent:function(e,t){if(!this.isMultiLine||this.menu.element.is(":visible"))this._move(e,t),t.preventDefault()}}),e.extend(e.ui.autocomplete,{escapeRegex:function(e){return e.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")},filter:function(t,n){var r=new RegExp(e.ui.autocomplete.escapeRegex(n),"i");return e.grep(t,function(e){return r.test(e.label||e.value||e)})}}),e.widget("ui.autocomplete",e.ui.autocomplete,{options:{messages:{noResults:"No search results.",results:function(e){return e+(e>1?" results are":" result is")+" available, use up and down arrow keys to navigate."}}},__response:function(e){var t;this._superApply(arguments);if(this.options.disabled||this.cancelSearch)return;e&&e.length?t=this.options.messages.results(e.length):t=this.options.messages.noResults,this.liveRegion.text(t)}})})(jQuery);
\ No newline at end of file
--- a/web/wp-includes/js/jquery/ui/jquery.ui.button.min.js	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/js/jquery/ui/jquery.ui.button.min.js	Wed Dec 19 17:46:52 2012 -0800
@@ -1,5 +1,5 @@
-/*! jQuery UI - v1.8.20 - 2012-04-30
-* https://github.com/jquery/jquery-ui
+/*! jQuery UI - v1.9.2 - 2012-11-23
+* http://jqueryui.com
 * Includes: jquery.ui.button.js
-* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */
-(function(a,b){var c,d,e,f,g="ui-button ui-widget ui-state-default ui-corner-all",h="ui-state-hover ui-state-active ",i="ui-button-icons-only ui-button-icon-only ui-button-text-icons ui-button-text-icon-primary ui-button-text-icon-secondary ui-button-text-only",j=function(){var b=a(this).find(":ui-button");setTimeout(function(){b.button("refresh")},1)},k=function(b){var c=b.name,d=b.form,e=a([]);return c&&(d?e=a(d).find("[name='"+c+"']"):e=a("[name='"+c+"']",b.ownerDocument).filter(function(){return!this.form})),e};a.widget("ui.button",{options:{disabled:null,text:!0,label:null,icons:{primary:null,secondary:null}},_create:function(){this.element.closest("form").unbind("reset.button").bind("reset.button",j),typeof this.options.disabled!="boolean"?this.options.disabled=!!this.element.propAttr("disabled"):this.element.propAttr("disabled",this.options.disabled),this._determineButtonType(),this.hasTitle=!!this.buttonElement.attr("title");var b=this,h=this.options,i=this.type==="checkbox"||this.type==="radio",l="ui-state-hover"+(i?"":" ui-state-active"),m="ui-state-focus";h.label===null&&(h.label=this.buttonElement.html()),this.buttonElement.addClass(g).attr("role","button").bind("mouseenter.button",function(){if(h.disabled)return;a(this).addClass("ui-state-hover"),this===c&&a(this).addClass("ui-state-active")}).bind("mouseleave.button",function(){if(h.disabled)return;a(this).removeClass(l)}).bind("click.button",function(a){h.disabled&&(a.preventDefault(),a.stopImmediatePropagation())}),this.element.bind("focus.button",function(){b.buttonElement.addClass(m)}).bind("blur.button",function(){b.buttonElement.removeClass(m)}),i&&(this.element.bind("change.button",function(){if(f)return;b.refresh()}),this.buttonElement.bind("mousedown.button",function(a){if(h.disabled)return;f=!1,d=a.pageX,e=a.pageY}).bind("mouseup.button",function(a){if(h.disabled)return;if(d!==a.pageX||e!==a.pageY)f=!0})),this.type==="checkbox"?this.buttonElement.bind("click.button",function(){if(h.disabled||f)return!1;a(this).toggleClass("ui-state-active"),b.buttonElement.attr("aria-pressed",b.element[0].checked)}):this.type==="radio"?this.buttonElement.bind("click.button",function(){if(h.disabled||f)return!1;a(this).addClass("ui-state-active"),b.buttonElement.attr("aria-pressed","true");var c=b.element[0];k(c).not(c).map(function(){return a(this).button("widget")[0]}).removeClass("ui-state-active").attr("aria-pressed","false")}):(this.buttonElement.bind("mousedown.button",function(){if(h.disabled)return!1;a(this).addClass("ui-state-active"),c=this,a(document).one("mouseup",function(){c=null})}).bind("mouseup.button",function(){if(h.disabled)return!1;a(this).removeClass("ui-state-active")}).bind("keydown.button",function(b){if(h.disabled)return!1;(b.keyCode==a.ui.keyCode.SPACE||b.keyCode==a.ui.keyCode.ENTER)&&a(this).addClass("ui-state-active")}).bind("keyup.button",function(){a(this).removeClass("ui-state-active")}),this.buttonElement.is("a")&&this.buttonElement.keyup(function(b){b.keyCode===a.ui.keyCode.SPACE&&a(this).click()})),this._setOption("disabled",h.disabled),this._resetButton()},_determineButtonType:function(){this.element.is(":checkbox")?this.type="checkbox":this.element.is(":radio")?this.type="radio":this.element.is("input")?this.type="input":this.type="button";if(this.type==="checkbox"||this.type==="radio"){var a=this.element.parents().filter(":last"),b="label[for='"+this.element.attr("id")+"']";this.buttonElement=a.find(b),this.buttonElement.length||(a=a.length?a.siblings():this.element.siblings(),this.buttonElement=a.filter(b),this.buttonElement.length||(this.buttonElement=a.find(b))),this.element.addClass("ui-helper-hidden-accessible");var c=this.element.is(":checked");c&&this.buttonElement.addClass("ui-state-active"),this.buttonElement.attr("aria-pressed",c)}else this.buttonElement=this.element},widget:function(){return this.buttonElement},destroy:function(){this.element.removeClass("ui-helper-hidden-accessible"),this.buttonElement.removeClass(g+" "+h+" "+i).removeAttr("role").removeAttr("aria-pressed").html(this.buttonElement.find(".ui-button-text").html()),this.hasTitle||this.buttonElement.removeAttr("title"),a.Widget.prototype.destroy.call(this)},_setOption:function(b,c){a.Widget.prototype._setOption.apply(this,arguments);if(b==="disabled"){c?this.element.propAttr("disabled",!0):this.element.propAttr("disabled",!1);return}this._resetButton()},refresh:function(){var b=this.element.is(":disabled");b!==this.options.disabled&&this._setOption("disabled",b),this.type==="radio"?k(this.element[0]).each(function(){a(this).is(":checked")?a(this).button("widget").addClass("ui-state-active").attr("aria-pressed","true"):a(this).button("widget").removeClass("ui-state-active").attr("aria-pressed","false")}):this.type==="checkbox"&&(this.element.is(":checked")?this.buttonElement.addClass("ui-state-active").attr("aria-pressed","true"):this.buttonElement.removeClass("ui-state-active").attr("aria-pressed","false"))},_resetButton:function(){if(this.type==="input"){this.options.label&&this.element.val(this.options.label);return}var b=this.buttonElement.removeClass(i),c=a("<span></span>",this.element[0].ownerDocument).addClass("ui-button-text").html(this.options.label).appendTo(b.empty()).text(),d=this.options.icons,e=d.primary&&d.secondary,f=[];d.primary||d.secondary?(this.options.text&&f.push("ui-button-text-icon"+(e?"s":d.primary?"-primary":"-secondary")),d.primary&&b.prepend("<span class='ui-button-icon-primary ui-icon "+d.primary+"'></span>"),d.secondary&&b.append("<span class='ui-button-icon-secondary ui-icon "+d.secondary+"'></span>"),this.options.text||(f.push(e?"ui-button-icons-only":"ui-button-icon-only"),this.hasTitle||b.attr("title",c))):f.push("ui-button-text-only"),b.addClass(f.join(" "))}}),a.widget("ui.buttonset",{options:{items:":button, :submit, :reset, :checkbox, :radio, a, :data(button)"},_create:function(){this.element.addClass("ui-buttonset")},_init:function(){this.refresh()},_setOption:function(b,c){b==="disabled"&&this.buttons.button("option",b,c),a.Widget.prototype._setOption.apply(this,arguments)},refresh:function(){var b=this.element.css("direction")==="rtl";this.buttons=this.element.find(this.options.items).filter(":ui-button").button("refresh").end().not(":ui-button").button().end().map(function(){return a(this).button("widget")[0]}).removeClass("ui-corner-all ui-corner-left ui-corner-right").filter(":first").addClass(b?"ui-corner-right":"ui-corner-left").end().filter(":last").addClass(b?"ui-corner-left":"ui-corner-right").end().end()},destroy:function(){this.element.removeClass("ui-buttonset"),this.buttons.map(function(){return a(this).button("widget")[0]}).removeClass("ui-corner-left ui-corner-right").end().button("destroy"),a.Widget.prototype.destroy.call(this)}})})(jQuery);
\ No newline at end of file
+* Copyright 2012 jQuery Foundation and other contributors; Licensed MIT */
+(function(e,t){var n,r,i,s,o="ui-button ui-widget ui-state-default ui-corner-all",u="ui-state-hover ui-state-active ",a="ui-button-icons-only ui-button-icon-only ui-button-text-icons ui-button-text-icon-primary ui-button-text-icon-secondary ui-button-text-only",f=function(){var t=e(this).find(":ui-button");setTimeout(function(){t.button("refresh")},1)},l=function(t){var n=t.name,r=t.form,i=e([]);return n&&(r?i=e(r).find("[name='"+n+"']"):i=e("[name='"+n+"']",t.ownerDocument).filter(function(){return!this.form})),i};e.widget("ui.button",{version:"1.9.2",defaultElement:"<button>",options:{disabled:null,text:!0,label:null,icons:{primary:null,secondary:null}},_create:function(){this.element.closest("form").unbind("reset"+this.eventNamespace).bind("reset"+this.eventNamespace,f),typeof this.options.disabled!="boolean"?this.options.disabled=!!this.element.prop("disabled"):this.element.prop("disabled",this.options.disabled),this._determineButtonType(),this.hasTitle=!!this.buttonElement.attr("title");var t=this,u=this.options,a=this.type==="checkbox"||this.type==="radio",c=a?"":"ui-state-active",h="ui-state-focus";u.label===null&&(u.label=this.type==="input"?this.buttonElement.val():this.buttonElement.html()),this._hoverable(this.buttonElement),this.buttonElement.addClass(o).attr("role","button").bind("mouseenter"+this.eventNamespace,function(){if(u.disabled)return;this===n&&e(this).addClass("ui-state-active")}).bind("mouseleave"+this.eventNamespace,function(){if(u.disabled)return;e(this).removeClass(c)}).bind("click"+this.eventNamespace,function(e){u.disabled&&(e.preventDefault(),e.stopImmediatePropagation())}),this.element.bind("focus"+this.eventNamespace,function(){t.buttonElement.addClass(h)}).bind("blur"+this.eventNamespace,function(){t.buttonElement.removeClass(h)}),a&&(this.element.bind("change"+this.eventNamespace,function(){if(s)return;t.refresh()}),this.buttonElement.bind("mousedown"+this.eventNamespace,function(e){if(u.disabled)return;s=!1,r=e.pageX,i=e.pageY}).bind("mouseup"+this.eventNamespace,function(e){if(u.disabled)return;if(r!==e.pageX||i!==e.pageY)s=!0})),this.type==="checkbox"?this.buttonElement.bind("click"+this.eventNamespace,function(){if(u.disabled||s)return!1;e(this).toggleClass("ui-state-active"),t.buttonElement.attr("aria-pressed",t.element[0].checked)}):this.type==="radio"?this.buttonElement.bind("click"+this.eventNamespace,function(){if(u.disabled||s)return!1;e(this).addClass("ui-state-active"),t.buttonElement.attr("aria-pressed","true");var n=t.element[0];l(n).not(n).map(function(){return e(this).button("widget")[0]}).removeClass("ui-state-active").attr("aria-pressed","false")}):(this.buttonElement.bind("mousedown"+this.eventNamespace,function(){if(u.disabled)return!1;e(this).addClass("ui-state-active"),n=this,t.document.one("mouseup",function(){n=null})}).bind("mouseup"+this.eventNamespace,function(){if(u.disabled)return!1;e(this).removeClass("ui-state-active")}).bind("keydown"+this.eventNamespace,function(t){if(u.disabled)return!1;(t.keyCode===e.ui.keyCode.SPACE||t.keyCode===e.ui.keyCode.ENTER)&&e(this).addClass("ui-state-active")}).bind("keyup"+this.eventNamespace,function(){e(this).removeClass("ui-state-active")}),this.buttonElement.is("a")&&this.buttonElement.keyup(function(t){t.keyCode===e.ui.keyCode.SPACE&&e(this).click()})),this._setOption("disabled",u.disabled),this._resetButton()},_determineButtonType:function(){var e,t,n;this.element.is("[type=checkbox]")?this.type="checkbox":this.element.is("[type=radio]")?this.type="radio":this.element.is("input")?this.type="input":this.type="button",this.type==="checkbox"||this.type==="radio"?(e=this.element.parents().last(),t="label[for='"+this.element.attr("id")+"']",this.buttonElement=e.find(t),this.buttonElement.length||(e=e.length?e.siblings():this.element.siblings(),this.buttonElement=e.filter(t),this.buttonElement.length||(this.buttonElement=e.find(t))),this.element.addClass("ui-helper-hidden-accessible"),n=this.element.is(":checked"),n&&this.buttonElement.addClass("ui-state-active"),this.buttonElement.prop("aria-pressed",n)):this.buttonElement=this.element},widget:function(){return this.buttonElement},_destroy:function(){this.element.removeClass("ui-helper-hidden-accessible"),this.buttonElement.removeClass(o+" "+u+" "+a).removeAttr("role").removeAttr("aria-pressed").html(this.buttonElement.find(".ui-button-text").html()),this.hasTitle||this.buttonElement.removeAttr("title")},_setOption:function(e,t){this._super(e,t);if(e==="disabled"){t?this.element.prop("disabled",!0):this.element.prop("disabled",!1);return}this._resetButton()},refresh:function(){var t=this.element.is("input, button")?this.element.is(":disabled"):this.element.hasClass("ui-button-disabled");t!==this.options.disabled&&this._setOption("disabled",t),this.type==="radio"?l(this.element[0]).each(function(){e(this).is(":checked")?e(this).button("widget").addClass("ui-state-active").attr("aria-pressed","true"):e(this).button("widget").removeClass("ui-state-active").attr("aria-pressed","false")}):this.type==="checkbox"&&(this.element.is(":checked")?this.buttonElement.addClass("ui-state-active").attr("aria-pressed","true"):this.buttonElement.removeClass("ui-state-active").attr("aria-pressed","false"))},_resetButton:function(){if(this.type==="input"){this.options.label&&this.element.val(this.options.label);return}var t=this.buttonElement.removeClass(a),n=e("<span></span>",this.document[0]).addClass("ui-button-text").html(this.options.label).appendTo(t.empty()).text(),r=this.options.icons,i=r.primary&&r.secondary,s=[];r.primary||r.secondary?(this.options.text&&s.push("ui-button-text-icon"+(i?"s":r.primary?"-primary":"-secondary")),r.primary&&t.prepend("<span class='ui-button-icon-primary ui-icon "+r.primary+"'></span>"),r.secondary&&t.append("<span class='ui-button-icon-secondary ui-icon "+r.secondary+"'></span>"),this.options.text||(s.push(i?"ui-button-icons-only":"ui-button-icon-only"),this.hasTitle||t.attr("title",e.trim(n)))):s.push("ui-button-text-only"),t.addClass(s.join(" "))}}),e.widget("ui.buttonset",{version:"1.9.2",options:{items:"button, input[type=button], input[type=submit], input[type=reset], input[type=checkbox], input[type=radio], a, :data(button)"},_create:function(){this.element.addClass("ui-buttonset")},_init:function(){this.refresh()},_setOption:function(e,t){e==="disabled"&&this.buttons.button("option",e,t),this._super(e,t)},refresh:function(){var t=this.element.css("direction")==="rtl";this.buttons=this.element.find(this.options.items).filter(":ui-button").button("refresh").end().not(":ui-button").button().end().map(function(){return e(this).button("widget")[0]}).removeClass("ui-corner-all ui-corner-left ui-corner-right").filter(":first").addClass(t?"ui-corner-right":"ui-corner-left").end().filter(":last").addClass(t?"ui-corner-left":"ui-corner-right").end().end()},_destroy:function(){this.element.removeClass("ui-buttonset"),this.buttons.map(function(){return e(this).button("widget")[0]}).removeClass("ui-corner-left ui-corner-right").end().button("destroy")}})})(jQuery);
\ No newline at end of file
--- a/web/wp-includes/js/jquery/ui/jquery.ui.core.min.js	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/js/jquery/ui/jquery.ui.core.min.js	Wed Dec 19 17:46:52 2012 -0800
@@ -1,5 +1,5 @@
-/*! jQuery UI - v1.8.20 - 2012-04-30
-* https://github.com/jquery/jquery-ui
+/*! jQuery UI - v1.9.2 - 2012-11-23
+* http://jqueryui.com
 * Includes: jquery.ui.core.js
-* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */
-(function(a,b){function c(b,c){var e=b.nodeName.toLowerCase();if("area"===e){var f=b.parentNode,g=f.name,h;return!b.href||!g||f.nodeName.toLowerCase()!=="map"?!1:(h=a("img[usemap=#"+g+"]")[0],!!h&&d(h))}return(/input|select|textarea|button|object/.test(e)?!b.disabled:"a"==e?b.href||c:c)&&d(b)}function d(b){return!a(b).parents().andSelf().filter(function(){return a.curCSS(this,"visibility")==="hidden"||a.expr.filters.hidden(this)}).length}a.ui=a.ui||{};if(a.ui.version)return;a.extend(a.ui,{version:"1.8.20",keyCode:{ALT:18,BACKSPACE:8,CAPS_LOCK:20,COMMA:188,COMMAND:91,COMMAND_LEFT:91,COMMAND_RIGHT:93,CONTROL:17,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,INSERT:45,LEFT:37,MENU:93,NUMPAD_ADD:107,NUMPAD_DECIMAL:110,NUMPAD_DIVIDE:111,NUMPAD_ENTER:108,NUMPAD_MULTIPLY:106,NUMPAD_SUBTRACT:109,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SHIFT:16,SPACE:32,TAB:9,UP:38,WINDOWS:91}}),a.fn.extend({propAttr:a.fn.prop||a.fn.attr,_focus:a.fn.focus,focus:function(b,c){return typeof b=="number"?this.each(function(){var d=this;setTimeout(function(){a(d).focus(),c&&c.call(d)},b)}):this._focus.apply(this,arguments)},scrollParent:function(){var b;return a.browser.msie&&/(static|relative)/.test(this.css("position"))||/absolute/.test(this.css("position"))?b=this.parents().filter(function(){return/(relative|absolute|fixed)/.test(a.curCSS(this,"position",1))&&/(auto|scroll)/.test(a.curCSS(this,"overflow",1)+a.curCSS(this,"overflow-y",1)+a.curCSS(this,"overflow-x",1))}).eq(0):b=this.parents().filter(function(){return/(auto|scroll)/.test(a.curCSS(this,"overflow",1)+a.curCSS(this,"overflow-y",1)+a.curCSS(this,"overflow-x",1))}).eq(0),/fixed/.test(this.css("position"))||!b.length?a(document):b},zIndex:function(c){if(c!==b)return this.css("zIndex",c);if(this.length){var d=a(this[0]),e,f;while(d.length&&d[0]!==document){e=d.css("position");if(e==="absolute"||e==="relative"||e==="fixed"){f=parseInt(d.css("zIndex"),10);if(!isNaN(f)&&f!==0)return f}d=d.parent()}}return 0},disableSelection:function(){return this.bind((a.support.selectstart?"selectstart":"mousedown")+".ui-disableSelection",function(a){a.preventDefault()})},enableSelection:function(){return this.unbind(".ui-disableSelection")}}),a.each(["Width","Height"],function(c,d){function h(b,c,d,f){return a.each(e,function(){c-=parseFloat(a.curCSS(b,"padding"+this,!0))||0,d&&(c-=parseFloat(a.curCSS(b,"border"+this+"Width",!0))||0),f&&(c-=parseFloat(a.curCSS(b,"margin"+this,!0))||0)}),c}var e=d==="Width"?["Left","Right"]:["Top","Bottom"],f=d.toLowerCase(),g={innerWidth:a.fn.innerWidth,innerHeight:a.fn.innerHeight,outerWidth:a.fn.outerWidth,outerHeight:a.fn.outerHeight};a.fn["inner"+d]=function(c){return c===b?g["inner"+d].call(this):this.each(function(){a(this).css(f,h(this,c)+"px")})},a.fn["outer"+d]=function(b,c){return typeof b!="number"?g["outer"+d].call(this,b):this.each(function(){a(this).css(f,h(this,b,!0,c)+"px")})}}),a.extend(a.expr[":"],{data:function(b,c,d){return!!a.data(b,d[3])},focusable:function(b){return c(b,!isNaN(a.attr(b,"tabindex")))},tabbable:function(b){var d=a.attr(b,"tabindex"),e=isNaN(d);return(e||d>=0)&&c(b,!e)}}),a(function(){var b=document.body,c=b.appendChild(c=document.createElement("div"));c.offsetHeight,a.extend(c.style,{minHeight:"100px",height:"auto",padding:0,borderWidth:0}),a.support.minHeight=c.offsetHeight===100,a.support.selectstart="onselectstart"in c,b.removeChild(c).style.display="none"}),a.extend(a.ui,{plugin:{add:function(b,c,d){var e=a.ui[b].prototype;for(var f in d)e.plugins[f]=e.plugins[f]||[],e.plugins[f].push([c,d[f]])},call:function(a,b,c){var d=a.plugins[b];if(!d||!a.element[0].parentNode)return;for(var e=0;e<d.length;e++)a.options[d[e][0]]&&d[e][1].apply(a.element,c)}},contains:function(a,b){return document.compareDocumentPosition?a.compareDocumentPosition(b)&16:a!==b&&a.contains(b)},hasScroll:function(b,c){if(a(b).css("overflow")==="hidden")return!1;var d=c&&c==="left"?"scrollLeft":"scrollTop",e=!1;return b[d]>0?!0:(b[d]=1,e=b[d]>0,b[d]=0,e)},isOverAxis:function(a,b,c){return a>b&&a<b+c},isOver:function(b,c,d,e,f,g){return a.ui.isOverAxis(b,d,f)&&a.ui.isOverAxis(c,e,g)}})})(jQuery);
\ No newline at end of file
+* Copyright 2012 jQuery Foundation and other contributors; Licensed MIT */
+(function(e,t){function i(t,n){var r,i,o,u=t.nodeName.toLowerCase();return"area"===u?(r=t.parentNode,i=r.name,!t.href||!i||r.nodeName.toLowerCase()!=="map"?!1:(o=e("img[usemap=#"+i+"]")[0],!!o&&s(o))):(/input|select|textarea|button|object/.test(u)?!t.disabled:"a"===u?t.href||n:n)&&s(t)}function s(t){return e.expr.filters.visible(t)&&!e(t).parents().andSelf().filter(function(){return e.css(this,"visibility")==="hidden"}).length}var n=0,r=/^ui-id-\d+$/;e.ui=e.ui||{};if(e.ui.version)return;e.extend(e.ui,{version:"1.9.2",keyCode:{BACKSPACE:8,COMMA:188,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,LEFT:37,NUMPAD_ADD:107,NUMPAD_DECIMAL:110,NUMPAD_DIVIDE:111,NUMPAD_ENTER:108,NUMPAD_MULTIPLY:106,NUMPAD_SUBTRACT:109,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SPACE:32,TAB:9,UP:38}}),e.fn.extend({_focus:e.fn.focus,focus:function(t,n){return typeof t=="number"?this.each(function(){var r=this;setTimeout(function(){e(r).focus(),n&&n.call(r)},t)}):this._focus.apply(this,arguments)},scrollParent:function(){var t;return e.ui.ie&&/(static|relative)/.test(this.css("position"))||/absolute/.test(this.css("position"))?t=this.parents().filter(function(){return/(relative|absolute|fixed)/.test(e.css(this,"position"))&&/(auto|scroll)/.test(e.css(this,"overflow")+e.css(this,"overflow-y")+e.css(this,"overflow-x"))}).eq(0):t=this.parents().filter(function(){return/(auto|scroll)/.test(e.css(this,"overflow")+e.css(this,"overflow-y")+e.css(this,"overflow-x"))}).eq(0),/fixed/.test(this.css("position"))||!t.length?e(document):t},zIndex:function(n){if(n!==t)return this.css("zIndex",n);if(this.length){var r=e(this[0]),i,s;while(r.length&&r[0]!==document){i=r.css("position");if(i==="absolute"||i==="relative"||i==="fixed"){s=parseInt(r.css("zIndex"),10);if(!isNaN(s)&&s!==0)return s}r=r.parent()}}return 0},uniqueId:function(){return this.each(function(){this.id||(this.id="ui-id-"+ ++n)})},removeUniqueId:function(){return this.each(function(){r.test(this.id)&&e(this).removeAttr("id")})}}),e.extend(e.expr[":"],{data:e.expr.createPseudo?e.expr.createPseudo(function(t){return function(n){return!!e.data(n,t)}}):function(t,n,r){return!!e.data(t,r[3])},focusable:function(t){return i(t,!isNaN(e.attr(t,"tabindex")))},tabbable:function(t){var n=e.attr(t,"tabindex"),r=isNaN(n);return(r||n>=0)&&i(t,!r)}}),e(function(){var t=document.body,n=t.appendChild(n=document.createElement("div"));n.offsetHeight,e.extend(n.style,{minHeight:"100px",height:"auto",padding:0,borderWidth:0}),e.support.minHeight=n.offsetHeight===100,e.support.selectstart="onselectstart"in n,t.removeChild(n).style.display="none"}),e("<a>").outerWidth(1).jquery||e.each(["Width","Height"],function(n,r){function u(t,n,r,s){return e.each(i,function(){n-=parseFloat(e.css(t,"padding"+this))||0,r&&(n-=parseFloat(e.css(t,"border"+this+"Width"))||0),s&&(n-=parseFloat(e.css(t,"margin"+this))||0)}),n}var i=r==="Width"?["Left","Right"]:["Top","Bottom"],s=r.toLowerCase(),o={innerWidth:e.fn.innerWidth,innerHeight:e.fn.innerHeight,outerWidth:e.fn.outerWidth,outerHeight:e.fn.outerHeight};e.fn["inner"+r]=function(n){return n===t?o["inner"+r].call(this):this.each(function(){e(this).css(s,u(this,n)+"px")})},e.fn["outer"+r]=function(t,n){return typeof t!="number"?o["outer"+r].call(this,t):this.each(function(){e(this).css(s,u(this,t,!0,n)+"px")})}}),e("<a>").data("a-b","a").removeData("a-b").data("a-b")&&(e.fn.removeData=function(t){return function(n){return arguments.length?t.call(this,e.camelCase(n)):t.call(this)}}(e.fn.removeData)),function(){var t=/msie ([\w.]+)/.exec(navigator.userAgent.toLowerCase())||[];e.ui.ie=t.length?!0:!1,e.ui.ie6=parseFloat(t[1],10)===6}(),e.fn.extend({disableSelection:function(){return this.bind((e.support.selectstart?"selectstart":"mousedown")+".ui-disableSelection",function(e){e.preventDefault()})},enableSelection:function(){return this.unbind(".ui-disableSelection")}}),e.extend(e.ui,{plugin:{add:function(t,n,r){var i,s=e.ui[t].prototype;for(i in r)s.plugins[i]=s.plugins[i]||[],s.plugins[i].push([n,r[i]])},call:function(e,t,n){var r,i=e.plugins[t];if(!i||!e.element[0].parentNode||e.element[0].parentNode.nodeType===11)return;for(r=0;r<i.length;r++)e.options[i[r][0]]&&i[r][1].apply(e.element,n)}},contains:e.contains,hasScroll:function(t,n){if(e(t).css("overflow")==="hidden")return!1;var r=n&&n==="left"?"scrollLeft":"scrollTop",i=!1;return t[r]>0?!0:(t[r]=1,i=t[r]>0,t[r]=0,i)},isOverAxis:function(e,t,n){return e>t&&e<t+n},isOver:function(t,n,r,i,s,o){return e.ui.isOverAxis(t,r,s)&&e.ui.isOverAxis(n,i,o)}})})(jQuery);
\ No newline at end of file
--- a/web/wp-includes/js/jquery/ui/jquery.ui.datepicker.min.js	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/js/jquery/ui/jquery.ui.datepicker.min.js	Wed Dec 19 17:46:52 2012 -0800
@@ -1,5 +1,5 @@
-/*! jQuery UI - v1.8.20 - 2012-04-30
-* https://github.com/jquery/jquery-ui
+/*! jQuery UI - v1.9.2 - 2012-11-23
+* http://jqueryui.com
 * Includes: jquery.ui.datepicker.js
-* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */
-(function($,undefined){function Datepicker(){this.debug=!1,this._curInst=null,this._keyEvent=!1,this._disabledInputs=[],this._datepickerShowing=!1,this._inDialog=!1,this._mainDivId="ui-datepicker-div",this._inlineClass="ui-datepicker-inline",this._appendClass="ui-datepicker-append",this._triggerClass="ui-datepicker-trigger",this._dialogClass="ui-datepicker-dialog",this._disableClass="ui-datepicker-disabled",this._unselectableClass="ui-datepicker-unselectable",this._currentClass="ui-datepicker-current-day",this._dayOverClass="ui-datepicker-days-cell-over",this.regional=[],this.regional[""]={closeText:"Done",prevText:"Prev",nextText:"Next",currentText:"Today",monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayNamesShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],dayNamesMin:["Su","Mo","Tu","We","Th","Fr","Sa"],weekHeader:"Wk",dateFormat:"mm/dd/yy",firstDay:0,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""},this._defaults={showOn:"focus",showAnim:"fadeIn",showOptions:{},defaultDate:null,appendText:"",buttonText:"...",buttonImage:"",buttonImageOnly:!1,hideIfNoPrevNext:!1,navigationAsDateFormat:!1,gotoCurrent:!1,changeMonth:!1,changeYear:!1,yearRange:"c-10:c+10",showOtherMonths:!1,selectOtherMonths:!1,showWeek:!1,calculateWeek:this.iso8601Week,shortYearCutoff:"+10",minDate:null,maxDate:null,duration:"fast",beforeShowDay:null,beforeShow:null,onSelect:null,onChangeMonthYear:null,onClose:null,numberOfMonths:1,showCurrentAtPos:0,stepMonths:1,stepBigMonths:12,altField:"",altFormat:"",constrainInput:!0,showButtonPanel:!1,autoSize:!1,disabled:!1},$.extend(this._defaults,this.regional[""]),this.dpDiv=bindHover($('<div id="'+this._mainDivId+'" class="ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all"></div>'))}function bindHover(a){var b="button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a";return a.bind("mouseout",function(a){var c=$(a.target).closest(b);if(!c.length)return;c.removeClass("ui-state-hover ui-datepicker-prev-hover ui-datepicker-next-hover")}).bind("mouseover",function(c){var d=$(c.target).closest(b);if($.datepicker._isDisabledDatepicker(instActive.inline?a.parent()[0]:instActive.input[0])||!d.length)return;d.parents(".ui-datepicker-calendar").find("a").removeClass("ui-state-hover"),d.addClass("ui-state-hover"),d.hasClass("ui-datepicker-prev")&&d.addClass("ui-datepicker-prev-hover"),d.hasClass("ui-datepicker-next")&&d.addClass("ui-datepicker-next-hover")})}function extendRemove(a,b){$.extend(a,b);for(var c in b)if(b[c]==null||b[c]==undefined)a[c]=b[c];return a}function isArray(a){return a&&($.browser.safari&&typeof a=="object"&&a.length||a.constructor&&a.constructor.toString().match(/\Array\(\)/))}$.extend($.ui,{datepicker:{version:"1.8.20"}});var PROP_NAME="datepicker",dpuuid=(new Date).getTime(),instActive;$.extend(Datepicker.prototype,{markerClassName:"hasDatepicker",maxRows:4,log:function(){this.debug&&console.log.apply("",arguments)},_widgetDatepicker:function(){return this.dpDiv},setDefaults:function(a){return extendRemove(this._defaults,a||{}),this},_attachDatepicker:function(target,settings){var inlineSettings=null;for(var attrName in this._defaults){var attrValue=target.getAttribute("date:"+attrName);if(attrValue){inlineSettings=inlineSettings||{};try{inlineSettings[attrName]=eval(attrValue)}catch(err){inlineSettings[attrName]=attrValue}}}var nodeName=target.nodeName.toLowerCase(),inline=nodeName=="div"||nodeName=="span";target.id||(this.uuid+=1,target.id="dp"+this.uuid);var inst=this._newInst($(target),inline);inst.settings=$.extend({},settings||{},inlineSettings||{}),nodeName=="input"?this._connectDatepicker(target,inst):inline&&this._inlineDatepicker(target,inst)},_newInst:function(a,b){var c=a[0].id.replace(/([^A-Za-z0-9_-])/g,"\\\\$1");return{id:c,input:a,selectedDay:0,selectedMonth:0,selectedYear:0,drawMonth:0,drawYear:0,inline:b,dpDiv:b?bindHover($('<div class="'+this._inlineClass+' ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all"></div>')):this.dpDiv}},_connectDatepicker:function(a,b){var c=$(a);b.append=$([]),b.trigger=$([]);if(c.hasClass(this.markerClassName))return;this._attachments(c,b),c.addClass(this.markerClassName).keydown(this._doKeyDown).keypress(this._doKeyPress).keyup(this._doKeyUp).bind("setData.datepicker",function(a,c,d){b.settings[c]=d}).bind("getData.datepicker",function(a,c){return this._get(b,c)}),this._autoSize(b),$.data(a,PROP_NAME,b),b.settings.disabled&&this._disableDatepicker(a)},_attachments:function(a,b){var c=this._get(b,"appendText"),d=this._get(b,"isRTL");b.append&&b.append.remove(),c&&(b.append=$('<span class="'+this._appendClass+'">'+c+"</span>"),a[d?"before":"after"](b.append)),a.unbind("focus",this._showDatepicker),b.trigger&&b.trigger.remove();var e=this._get(b,"showOn");(e=="focus"||e=="both")&&a.focus(this._showDatepicker);if(e=="button"||e=="both"){var f=this._get(b,"buttonText"),g=this._get(b,"buttonImage");b.trigger=$(this._get(b,"buttonImageOnly")?$("<img/>").addClass(this._triggerClass).attr({src:g,alt:f,title:f}):$('<button type="button"></button>').addClass(this._triggerClass).html(g==""?f:$("<img/>").attr({src:g,alt:f,title:f}))),a[d?"before":"after"](b.trigger),b.trigger.click(function(){return $.datepicker._datepickerShowing&&$.datepicker._lastInput==a[0]?$.datepicker._hideDatepicker():$.datepicker._datepickerShowing&&$.datepicker._lastInput!=a[0]?($.datepicker._hideDatepicker(),$.datepicker._showDatepicker(a[0])):$.datepicker._showDatepicker(a[0]),!1})}},_autoSize:function(a){if(this._get(a,"autoSize")&&!a.inline){var b=new Date(2009,11,20),c=this._get(a,"dateFormat");if(c.match(/[DM]/)){var d=function(a){var b=0,c=0;for(var d=0;d<a.length;d++)a[d].length>b&&(b=a[d].length,c=d);return c};b.setMonth(d(this._get(a,c.match(/MM/)?"monthNames":"monthNamesShort"))),b.setDate(d(this._get(a,c.match(/DD/)?"dayNames":"dayNamesShort"))+20-b.getDay())}a.input.attr("size",this._formatDate(a,b).length)}},_inlineDatepicker:function(a,b){var c=$(a);if(c.hasClass(this.markerClassName))return;c.addClass(this.markerClassName).append(b.dpDiv).bind("setData.datepicker",function(a,c,d){b.settings[c]=d}).bind("getData.datepicker",function(a,c){return this._get(b,c)}),$.data(a,PROP_NAME,b),this._setDate(b,this._getDefaultDate(b),!0),this._updateDatepicker(b),this._updateAlternate(b),b.settings.disabled&&this._disableDatepicker(a),b.dpDiv.css("display","block")},_dialogDatepicker:function(a,b,c,d,e){var f=this._dialogInst;if(!f){this.uuid+=1;var g="dp"+this.uuid;this._dialogInput=$('<input type="text" id="'+g+'" style="position: absolute; top: -100px; width: 0px; z-index: -10;"/>'),this._dialogInput.keydown(this._doKeyDown),$("body").append(this._dialogInput),f=this._dialogInst=this._newInst(this._dialogInput,!1),f.settings={},$.data(this._dialogInput[0],PROP_NAME,f)}extendRemove(f.settings,d||{}),b=b&&b.constructor==Date?this._formatDate(f,b):b,this._dialogInput.val(b),this._pos=e?e.length?e:[e.pageX,e.pageY]:null;if(!this._pos){var h=document.documentElement.clientWidth,i=document.documentElement.clientHeight,j=document.documentElement.scrollLeft||document.body.scrollLeft,k=document.documentElement.scrollTop||document.body.scrollTop;this._pos=[h/2-100+j,i/2-150+k]}return this._dialogInput.css("left",this._pos[0]+20+"px").css("top",this._pos[1]+"px"),f.settings.onSelect=c,this._inDialog=!0,this.dpDiv.addClass(this._dialogClass),this._showDatepicker(this._dialogInput[0]),$.blockUI&&$.blockUI(this.dpDiv),$.data(this._dialogInput[0],PROP_NAME,f),this},_destroyDatepicker:function(a){var b=$(a),c=$.data(a,PROP_NAME);if(!b.hasClass(this.markerClassName))return;var d=a.nodeName.toLowerCase();$.removeData(a,PROP_NAME),d=="input"?(c.append.remove(),c.trigger.remove(),b.removeClass(this.markerClassName).unbind("focus",this._showDatepicker).unbind("keydown",this._doKeyDown).unbind("keypress",this._doKeyPress).unbind("keyup",this._doKeyUp)):(d=="div"||d=="span")&&b.removeClass(this.markerClassName).empty()},_enableDatepicker:function(a){var b=$(a),c=$.data(a,PROP_NAME);if(!b.hasClass(this.markerClassName))return;var d=a.nodeName.toLowerCase();if(d=="input")a.disabled=!1,c.trigger.filter("button").each(function(){this.disabled=!1}).end().filter("img").css({opacity:"1.0",cursor:""});else if(d=="div"||d=="span"){var e=b.children("."+this._inlineClass);e.children().removeClass("ui-state-disabled"),e.find("select.ui-datepicker-month, select.ui-datepicker-year").removeAttr("disabled")}this._disabledInputs=$.map(this._disabledInputs,function(b){return b==a?null:b})},_disableDatepicker:function(a){var b=$(a),c=$.data(a,PROP_NAME);if(!b.hasClass(this.markerClassName))return;var d=a.nodeName.toLowerCase();if(d=="input")a.disabled=!0,c.trigger.filter("button").each(function(){this.disabled=!0}).end().filter("img").css({opacity:"0.5",cursor:"default"});else if(d=="div"||d=="span"){var e=b.children("."+this._inlineClass);e.children().addClass("ui-state-disabled"),e.find("select.ui-datepicker-month, select.ui-datepicker-year").attr("disabled","disabled")}this._disabledInputs=$.map(this._disabledInputs,function(b){return b==a?null:b}),this._disabledInputs[this._disabledInputs.length]=a},_isDisabledDatepicker:function(a){if(!a)return!1;for(var b=0;b<this._disabledInputs.length;b++)if(this._disabledInputs[b]==a)return!0;return!1},_getInst:function(a){try{return $.data(a,PROP_NAME)}catch(b){throw"Missing instance data for this datepicker"}},_optionDatepicker:function(a,b,c){var d=this._getInst(a);if(arguments.length==2&&typeof b=="string")return b=="defaults"?$.extend({},$.datepicker._defaults):d?b=="all"?$.extend({},d.settings):this._get(d,b):null;var e=b||{};typeof b=="string"&&(e={},e[b]=c);if(d){this._curInst==d&&this._hideDatepicker();var f=this._getDateDatepicker(a,!0),g=this._getMinMaxDate(d,"min"),h=this._getMinMaxDate(d,"max");extendRemove(d.settings,e),g!==null&&e.dateFormat!==undefined&&e.minDate===undefined&&(d.settings.minDate=this._formatDate(d,g)),h!==null&&e.dateFormat!==undefined&&e.maxDate===undefined&&(d.settings.maxDate=this._formatDate(d,h)),this._attachments($(a),d),this._autoSize(d),this._setDate(d,f),this._updateAlternate(d),this._updateDatepicker(d)}},_changeDatepicker:function(a,b,c){this._optionDatepicker(a,b,c)},_refreshDatepicker:function(a){var b=this._getInst(a);b&&this._updateDatepicker(b)},_setDateDatepicker:function(a,b){var c=this._getInst(a);c&&(this._setDate(c,b),this._updateDatepicker(c),this._updateAlternate(c))},_getDateDatepicker:function(a,b){var c=this._getInst(a);return c&&!c.inline&&this._setDateFromField(c,b),c?this._getDate(c):null},_doKeyDown:function(a){var b=$.datepicker._getInst(a.target),c=!0,d=b.dpDiv.is(".ui-datepicker-rtl");b._keyEvent=!0;if($.datepicker._datepickerShowing)switch(a.keyCode){case 9:$.datepicker._hideDatepicker(),c=!1;break;case 13:var e=$("td."+$.datepicker._dayOverClass+":not(."+$.datepicker._currentClass+")",b.dpDiv);e[0]&&$.datepicker._selectDay(a.target,b.selectedMonth,b.selectedYear,e[0]);var f=$.datepicker._get(b,"onSelect");if(f){var g=$.datepicker._formatDate(b);f.apply(b.input?b.input[0]:null,[g,b])}else $.datepicker._hideDatepicker();return!1;case 27:$.datepicker._hideDatepicker();break;case 33:$.datepicker._adjustDate(a.target,a.ctrlKey?-$.datepicker._get(b,"stepBigMonths"):-$.datepicker._get(b,"stepMonths"),"M");break;case 34:$.datepicker._adjustDate(a.target,a.ctrlKey?+$.datepicker._get(b,"stepBigMonths"):+$.datepicker._get(b,"stepMonths"),"M");break;case 35:(a.ctrlKey||a.metaKey)&&$.datepicker._clearDate(a.target),c=a.ctrlKey||a.metaKey;break;case 36:(a.ctrlKey||a.metaKey)&&$.datepicker._gotoToday(a.target),c=a.ctrlKey||a.metaKey;break;case 37:(a.ctrlKey||a.metaKey)&&$.datepicker._adjustDate(a.target,d?1:-1,"D"),c=a.ctrlKey||a.metaKey,a.originalEvent.altKey&&$.datepicker._adjustDate(a.target,a.ctrlKey?-$.datepicker._get(b,"stepBigMonths"):-$.datepicker._get(b,"stepMonths"),"M");break;case 38:(a.ctrlKey||a.metaKey)&&$.datepicker._adjustDate(a.target,-7,"D"),c=a.ctrlKey||a.metaKey;break;case 39:(a.ctrlKey||a.metaKey)&&$.datepicker._adjustDate(a.target,d?-1:1,"D"),c=a.ctrlKey||a.metaKey,a.originalEvent.altKey&&$.datepicker._adjustDate(a.target,a.ctrlKey?+$.datepicker._get(b,"stepBigMonths"):+$.datepicker._get(b,"stepMonths"),"M");break;case 40:(a.ctrlKey||a.metaKey)&&$.datepicker._adjustDate(a.target,7,"D"),c=a.ctrlKey||a.metaKey;break;default:c=!1}else a.keyCode==36&&a.ctrlKey?$.datepicker._showDatepicker(this):c=!1;c&&(a.preventDefault(),a.stopPropagation())},_doKeyPress:function(a){var b=$.datepicker._getInst(a.target);if($.datepicker._get(b,"constrainInput")){var c=$.datepicker._possibleChars($.datepicker._get(b,"dateFormat")),d=String.fromCharCode(a.charCode==undefined?a.keyCode:a.charCode);return a.ctrlKey||a.metaKey||d<" "||!c||c.indexOf(d)>-1}},_doKeyUp:function(a){var b=$.datepicker._getInst(a.target);if(b.input.val()!=b.lastVal)try{var c=$.datepicker.parseDate($.datepicker._get(b,"dateFormat"),b.input?b.input.val():null,$.datepicker._getFormatConfig(b));c&&($.datepicker._setDateFromField(b),$.datepicker._updateAlternate(b),$.datepicker._updateDatepicker(b))}catch(d){$.datepicker.log(d)}return!0},_showDatepicker:function(a){a=a.target||a,a.nodeName.toLowerCase()!="input"&&(a=$("input",a.parentNode)[0]);if($.datepicker._isDisabledDatepicker(a)||$.datepicker._lastInput==a)return;var b=$.datepicker._getInst(a);$.datepicker._curInst&&$.datepicker._curInst!=b&&($.datepicker._curInst.dpDiv.stop(!0,!0),b&&$.datepicker._datepickerShowing&&$.datepicker._hideDatepicker($.datepicker._curInst.input[0]));var c=$.datepicker._get(b,"beforeShow"),d=c?c.apply(a,[a,b]):{};if(d===!1)return;extendRemove(b.settings,d),b.lastVal=null,$.datepicker._lastInput=a,$.datepicker._setDateFromField(b),$.datepicker._inDialog&&(a.value=""),$.datepicker._pos||($.datepicker._pos=$.datepicker._findPos(a),$.datepicker._pos[1]+=a.offsetHeight);var e=!1;$(a).parents().each(function(){return e|=$(this).css("position")=="fixed",!e}),e&&$.browser.opera&&($.datepicker._pos[0]-=document.documentElement.scrollLeft,$.datepicker._pos[1]-=document.documentElement.scrollTop);var f={left:$.datepicker._pos[0],top:$.datepicker._pos[1]};$.datepicker._pos=null,b.dpDiv.empty(),b.dpDiv.css({position:"absolute",display:"block",top:"-1000px"}),$.datepicker._updateDatepicker(b),f=$.datepicker._checkOffset(b,f,e),b.dpDiv.css({position:$.datepicker._inDialog&&$.blockUI?"static":e?"fixed":"absolute",display:"none",left:f.left+"px",top:f.top+"px"});if(!b.inline){var g=$.datepicker._get(b,"showAnim"),h=$.datepicker._get(b,"duration"),i=function(){var a=b.dpDiv.find("iframe.ui-datepicker-cover");if(!!a.length){var c=$.datepicker._getBorders(b.dpDiv);a.css({left:-c[0],top:-c[1],width:b.dpDiv.outerWidth(),height:b.dpDiv.outerHeight()})}};b.dpDiv.zIndex($(a).zIndex()+1),$.datepicker._datepickerShowing=!0,$.effects&&$.effects[g]?b.dpDiv.show(g,$.datepicker._get(b,"showOptions"),h,i):b.dpDiv[g||"show"](g?h:null,i),(!g||!h)&&i(),b.input.is(":visible")&&!b.input.is(":disabled")&&b.input.focus(),$.datepicker._curInst=b}},_updateDatepicker:function(a){var b=this;b.maxRows=4;var c=$.datepicker._getBorders(a.dpDiv);instActive=a,a.dpDiv.empty().append(this._generateHTML(a));var d=a.dpDiv.find("iframe.ui-datepicker-cover");!d.length||d.css({left:-c[0],top:-c[1],width:a.dpDiv.outerWidth(),height:a.dpDiv.outerHeight()}),a.dpDiv.find("."+this._dayOverClass+" a").mouseover();var e=this._getNumberOfMonths(a),f=e[1],g=17;a.dpDiv.removeClass("ui-datepicker-multi-2 ui-datepicker-multi-3 ui-datepicker-multi-4").width(""),f>1&&a.dpDiv.addClass("ui-datepicker-multi-"+f).css("width",g*f+"em"),a.dpDiv[(e[0]!=1||e[1]!=1?"add":"remove")+"Class"]("ui-datepicker-multi"),a.dpDiv[(this._get(a,"isRTL")?"add":"remove")+"Class"]("ui-datepicker-rtl"),a==$.datepicker._curInst&&$.datepicker._datepickerShowing&&a.input&&a.input.is(":visible")&&!a.input.is(":disabled")&&a.input[0]!=document.activeElement&&a.input.focus();if(a.yearshtml){var h=a.yearshtml;setTimeout(function(){h===a.yearshtml&&a.yearshtml&&a.dpDiv.find("select.ui-datepicker-year:first").replaceWith(a.yearshtml),h=a.yearshtml=null},0)}},_getBorders:function(a){var b=function(a){return{thin:1,medium:2,thick:3}[a]||a};return[parseFloat(b(a.css("border-left-width"))),parseFloat(b(a.css("border-top-width")))]},_checkOffset:function(a,b,c){var d=a.dpDiv.outerWidth(),e=a.dpDiv.outerHeight(),f=a.input?a.input.outerWidth():0,g=a.input?a.input.outerHeight():0,h=document.documentElement.clientWidth+$(document).scrollLeft(),i=document.documentElement.clientHeight+$(document).scrollTop();return b.left-=this._get(a,"isRTL")?d-f:0,b.left-=c&&b.left==a.input.offset().left?$(document).scrollLeft():0,b.top-=c&&b.top==a.input.offset().top+g?$(document).scrollTop():0,b.left-=Math.min(b.left,b.left+d>h&&h>d?Math.abs(b.left+d-h):0),b.top-=Math.min(b.top,b.top+e>i&&i>e?Math.abs(e+g):0),b},_findPos:function(a){var b=this._getInst(a),c=this._get(b,"isRTL");while(a&&(a.type=="hidden"||a.nodeType!=1||$.expr.filters.hidden(a)))a=a[c?"previousSibling":"nextSibling"];var d=$(a).offset();return[d.left,d.top]},_hideDatepicker:function(a){var b=this._curInst;if(!b||a&&b!=$.data(a,PROP_NAME))return;if(this._datepickerShowing){var c=this._get(b,"showAnim"),d=this._get(b,"duration"),e=function(){$.datepicker._tidyDialog(b)};$.effects&&$.effects[c]?b.dpDiv.hide(c,$.datepicker._get(b,"showOptions"),d,e):b.dpDiv[c=="slideDown"?"slideUp":c=="fadeIn"?"fadeOut":"hide"](c?d:null,e),c||e(),this._datepickerShowing=!1;var f=this._get(b,"onClose");f&&f.apply(b.input?b.input[0]:null,[b.input?b.input.val():"",b]),this._lastInput=null,this._inDialog&&(this._dialogInput.css({position:"absolute",left:"0",top:"-100px"}),$.blockUI&&($.unblockUI(),$("body").append(this.dpDiv))),this._inDialog=!1}},_tidyDialog:function(a){a.dpDiv.removeClass(this._dialogClass).unbind(".ui-datepicker-calendar")},_checkExternalClick:function(a){if(!$.datepicker._curInst)return;var b=$(a.target),c=$.datepicker._getInst(b[0]);(b[0].id!=$.datepicker._mainDivId&&b.parents("#"+$.datepicker._mainDivId).length==0&&!b.hasClass($.datepicker.markerClassName)&&!b.closest("."+$.datepicker._triggerClass).length&&$.datepicker._datepickerShowing&&(!$.datepicker._inDialog||!$.blockUI)||b.hasClass($.datepicker.markerClassName)&&$.datepicker._curInst!=c)&&$.datepicker._hideDatepicker()},_adjustDate:function(a,b,c){var d=$(a),e=this._getInst(d[0]);if(this._isDisabledDatepicker(d[0]))return;this._adjustInstDate(e,b+(c=="M"?this._get(e,"showCurrentAtPos"):0),c),this._updateDatepicker(e)},_gotoToday:function(a){var b=$(a),c=this._getInst(b[0]);if(this._get(c,"gotoCurrent")&&c.currentDay)c.selectedDay=c.currentDay,c.drawMonth=c.selectedMonth=c.currentMonth,c.drawYear=c.selectedYear=c.currentYear;else{var d=new Date;c.selectedDay=d.getDate(),c.drawMonth=c.selectedMonth=d.getMonth(),c.drawYear=c.selectedYear=d.getFullYear()}this._notifyChange(c),this._adjustDate(b)},_selectMonthYear:function(a,b,c){var d=$(a),e=this._getInst(d[0]);e["selected"+(c=="M"?"Month":"Year")]=e["draw"+(c=="M"?"Month":"Year")]=parseInt(b.options[b.selectedIndex].value,10),this._notifyChange(e),this._adjustDate(d)},_selectDay:function(a,b,c,d){var e=$(a);if($(d).hasClass(this._unselectableClass)||this._isDisabledDatepicker(e[0]))return;var f=this._getInst(e[0]);f.selectedDay=f.currentDay=$("a",d).html(),f.selectedMonth=f.currentMonth=b,f.selectedYear=f.currentYear=c,this._selectDate(a,this._formatDate(f,f.currentDay,f.currentMonth,f.currentYear))},_clearDate:function(a){var b=$(a),c=this._getInst(b[0]);this._selectDate(b,"")},_selectDate:function(a,b){var c=$(a),d=this._getInst(c[0]);b=b!=null?b:this._formatDate(d),d.input&&d.input.val(b),this._updateAlternate(d);var e=this._get(d,"onSelect");e?e.apply(d.input?d.input[0]:null,[b,d]):d.input&&d.input.trigger("change"),d.inline?this._updateDatepicker(d):(this._hideDatepicker(),this._lastInput=d.input[0],typeof d.input[0]!="object"&&d.input.focus(),this._lastInput=null)},_updateAlternate:function(a){var b=this._get(a,"altField");if(b){var c=this._get(a,"altFormat")||this._get(a,"dateFormat"),d=this._getDate(a),e=this.formatDate(c,d,this._getFormatConfig(a));$(b).each(function(){$(this).val(e)})}},noWeekends:function(a){var b=a.getDay();return[b>0&&b<6,""]},iso8601Week:function(a){var b=new Date(a.getTime());b.setDate(b.getDate()+4-(b.getDay()||7));var c=b.getTime();return b.setMonth(0),b.setDate(1),Math.floor(Math.round((c-b)/864e5)/7)+1},parseDate:function(a,b,c){if(a==null||b==null)throw"Invalid arguments";b=typeof b=="object"?b.toString():b+"";if(b=="")return null;var d=(c?c.shortYearCutoff:null)||this._defaults.shortYearCutoff;d=typeof d!="string"?d:(new Date).getFullYear()%100+parseInt(d,10);var e=(c?c.dayNamesShort:null)||this._defaults.dayNamesShort,f=(c?c.dayNames:null)||this._defaults.dayNames,g=(c?c.monthNamesShort:null)||this._defaults.monthNamesShort,h=(c?c.monthNames:null)||this._defaults.monthNames,i=-1,j=-1,k=-1,l=-1,m=!1,n=function(b){var c=s+1<a.length&&a.charAt(s+1)==b;return c&&s++,c},o=function(a){var c=n(a),d=a=="@"?14:a=="!"?20:a=="y"&&c?4:a=="o"?3:2,e=new RegExp("^\\d{1,"+d+"}"),f=b.substring(r).match(e);if(!f)throw"Missing number at position "+r;return r+=f[0].length,parseInt(f[0],10)},p=function(a,c,d){var e=$.map(n(a)?d:c,function(a,b){return[[b,a]]}).sort(function(a,b){return-(a[1].length-b[1].length)}),f=-1;$.each(e,function(a,c){var d=c[1];if(b.substr(r,d.length).toLowerCase()==d.toLowerCase())return f=c[0],r+=d.length,!1});if(f!=-1)return f+1;throw"Unknown name at position "+r},q=function(){if(b.charAt(r)!=a.charAt(s))throw"Unexpected literal at position "+r;r++},r=0;for(var s=0;s<a.length;s++)if(m)a.charAt(s)=="'"&&!n("'")?m=!1:q();else switch(a.charAt(s)){case"d":k=o("d");break;case"D":p("D",e,f);break;case"o":l=o("o");break;case"m":j=o("m");break;case"M":j=p("M",g,h);break;case"y":i=o("y");break;case"@":var t=new Date(o("@"));i=t.getFullYear(),j=t.getMonth()+1,k=t.getDate();break;case"!":var t=new Date((o("!")-this._ticksTo1970)/1e4);i=t.getFullYear(),j=t.getMonth()+1,k=t.getDate();break;case"'":n("'")?q():m=!0;break;default:q()}if(r<b.length)throw"Extra/unparsed characters found in date: "+b.substring(r);i==-1?i=(new Date).getFullYear():i<100&&(i+=(new Date).getFullYear()-(new Date).getFullYear()%100+(i<=d?0:-100));if(l>-1){j=1,k=l;do{var u=this._getDaysInMonth(i,j-1);if(k<=u)break;j++,k-=u}while(!0)}var t=this._daylightSavingAdjust(new Date(i,j-1,k));if(t.getFullYear()!=i||t.getMonth()+1!=j||t.getDate()!=k)throw"Invalid date";return t},ATOM:"yy-mm-dd",COOKIE:"D, dd M yy",ISO_8601:"yy-mm-dd",RFC_822:"D, d M y",RFC_850:"DD, dd-M-y",RFC_1036:"D, d M y",RFC_1123:"D, d M yy",RFC_2822:"D, d M yy",RSS:"D, d M y",TICKS:"!",TIMESTAMP:"@",W3C:"yy-mm-dd",_ticksTo1970:(718685+Math.floor(492.5)-Math.floor(19.7)+Math.floor(4.925))*24*60*60*1e7,formatDate:function(a,b,c){if(!b)return"";var d=(c?c.dayNamesShort:null)||this._defaults.dayNamesShort,e=(c?c.dayNames:null)||this._defaults.dayNames,f=(c?c.monthNamesShort:null)||this._defaults.monthNamesShort,g=(c?c.monthNames:null)||this._defaults.monthNames,h=function(b){var c=m+1<a.length&&a.charAt(m+1)==b;return c&&m++,c},i=function(a,b,c){var d=""+b;if(h(a))while(d.length<c)d="0"+d;return d},j=function(a,b,c,d){return h(a)?d[b]:c[b]},k="",l=!1;if(b)for(var m=0;m<a.length;m++)if(l)a.charAt(m)=="'"&&!h("'")?l=!1:k+=a.charAt(m);else switch(a.charAt(m)){case"d":k+=i("d",b.getDate(),2);break;case"D":k+=j("D",b.getDay(),d,e);break;case"o":k+=i("o",Math.round(((new Date(b.getFullYear(),b.getMonth(),b.getDate())).getTime()-(new Date(b.getFullYear(),0,0)).getTime())/864e5),3);break;case"m":k+=i("m",b.getMonth()+1,2);break;case"M":k+=j("M",b.getMonth(),f,g);break;case"y":k+=h("y")?b.getFullYear():(b.getYear()%100<10?"0":"")+b.getYear()%100;break;case"@":k+=b.getTime();break;case"!":k+=b.getTime()*1e4+this._ticksTo1970;break;case"'":h("'")?k+="'":l=!0;break;default:k+=a.charAt(m)}return k},_possibleChars:function(a){var b="",c=!1,d=function(b){var c=e+1<a.length&&a.charAt(e+1)==b;return c&&e++,c};for(var e=0;e<a.length;e++)if(c)a.charAt(e)=="'"&&!d("'")?c=!1:b+=a.charAt(e);else switch(a.charAt(e)){case"d":case"m":case"y":case"@":b+="0123456789";break;case"D":case"M":return null;case"'":d("'")?b+="'":c=!0;break;default:b+=a.charAt(e)}return b},_get:function(a,b){return a.settings[b]!==undefined?a.settings[b]:this._defaults[b]},_setDateFromField:function(a,b){if(a.input.val()==a.lastVal)return;var c=this._get(a,"dateFormat"),d=a.lastVal=a.input?a.input.val():null,e,f;e=f=this._getDefaultDate(a);var g=this._getFormatConfig(a);try{e=this.parseDate(c,d,g)||f}catch(h){this.log(h),d=b?"":d}a.selectedDay=e.getDate(),a.drawMonth=a.selectedMonth=e.getMonth(),a.drawYear=a.selectedYear=e.getFullYear(),a.currentDay=d?e.getDate():0,a.currentMonth=d?e.getMonth():0,a.currentYear=d?e.getFullYear():0,this._adjustInstDate(a)},_getDefaultDate:function(a){return this._restrictMinMax(a,this._determineDate(a,this._get(a,"defaultDate"),new Date))},_determineDate:function(a,b,c){var d=function(a){var b=new Date;return b.setDate(b.getDate()+a),b},e=function(b){try{return $.datepicker.parseDate($.datepicker._get(a,"dateFormat"),b,$.datepicker._getFormatConfig(a))}catch(c){}var d=(b.toLowerCase().match(/^c/)?$.datepicker._getDate(a):null)||new Date,e=d.getFullYear(),f=d.getMonth(),g=d.getDate(),h=/([+-]?[0-9]+)\s*(d|D|w|W|m|M|y|Y)?/g,i=h.exec(b);while(i){switch(i[2]||"d"){case"d":case"D":g+=parseInt(i[1],10);break;case"w":case"W":g+=parseInt(i[1],10)*7;break;case"m":case"M":f+=parseInt(i[1],10),g=Math.min(g,$.datepicker._getDaysInMonth(e,f));break;case"y":case"Y":e+=parseInt(i[1],10),g=Math.min(g,$.datepicker._getDaysInMonth(e,f))}i=h.exec(b)}return new Date(e,f,g)},f=b==null||b===""?c:typeof b=="string"?e(b):typeof b=="number"?isNaN(b)?c:d(b):new Date(b.getTime());return f=f&&f.toString()=="Invalid Date"?c:f,f&&(f.setHours(0),f.setMinutes(0),f.setSeconds(0),f.setMilliseconds(0)),this._daylightSavingAdjust(f)},_daylightSavingAdjust:function(a){return a?(a.setHours(a.getHours()>12?a.getHours()+2:0),a):null},_setDate:function(a,b,c){var d=!b,e=a.selectedMonth,f=a.selectedYear,g=this._restrictMinMax(a,this._determineDate(a,b,new Date));a.selectedDay=a.currentDay=g.getDate(),a.drawMonth=a.selectedMonth=a.currentMonth=g.getMonth(),a.drawYear=a.selectedYear=a.currentYear=g.getFullYear(),(e!=a.selectedMonth||f!=a.selectedYear)&&!c&&this._notifyChange(a),this._adjustInstDate(a),a.input&&a.input.val(d?"":this._formatDate(a))},_getDate:function(a){var b=!a.currentYear||a.input&&a.input.val()==""?null:this._daylightSavingAdjust(new Date(a.currentYear,a.currentMonth,a.currentDay));return b},_generateHTML:function(a){var b=new Date;b=this._daylightSavingAdjust(new Date(b.getFullYear(),b.getMonth(),b.getDate()));var c=this._get(a,"isRTL"),d=this._get(a,"showButtonPanel"),e=this._get(a,"hideIfNoPrevNext"),f=this._get(a,"navigationAsDateFormat"),g=this._getNumberOfMonths(a),h=this._get(a,"showCurrentAtPos"),i=this._get(a,"stepMonths"),j=g[0]!=1||g[1]!=1,k=this._daylightSavingAdjust(a.currentDay?new Date(a.currentYear,a.currentMonth,a.currentDay):new Date(9999,9,9)),l=this._getMinMaxDate(a,"min"),m=this._getMinMaxDate(a,"max"),n=a.drawMonth-h,o=a.drawYear;n<0&&(n+=12,o--);if(m){var p=this._daylightSavingAdjust(new Date(m.getFullYear(),m.getMonth()-g[0]*g[1]+1,m.getDate()));p=l&&p<l?l:p;while(this._daylightSavingAdjust(new Date(o,n,1))>p)n--,n<0&&(n=11,o--)}a.drawMonth=n,a.drawYear=o;var q=this._get(a,"prevText");q=f?this.formatDate(q,this._daylightSavingAdjust(new Date(o,n-i,1)),this._getFormatConfig(a)):q;var r=this._canAdjustMonth(a,-1,o,n)?'<a class="ui-datepicker-prev ui-corner-all" onclick="DP_jQuery_'+dpuuid+".datepicker._adjustDate('#"+a.id+"', -"+i+", 'M');\""+' title="'+q+'"><span class="ui-icon ui-icon-circle-triangle-'+(c?"e":"w")+'">'+q+"</span></a>":e?"":'<a class="ui-datepicker-prev ui-corner-all ui-state-disabled" title="'+q+'"><span class="ui-icon ui-icon-circle-triangle-'+(c?"e":"w")+'">'+q+"</span></a>",s=this._get(a,"nextText");s=f?this.formatDate(s,this._daylightSavingAdjust(new Date(o,n+i,1)),this._getFormatConfig(a)):s;var t=this._canAdjustMonth(a,1,o,n)?'<a class="ui-datepicker-next ui-corner-all" onclick="DP_jQuery_'+dpuuid+".datepicker._adjustDate('#"+a.id+"', +"+i+", 'M');\""+' title="'+s+'"><span class="ui-icon ui-icon-circle-triangle-'+(c?"w":"e")+'">'+s+"</span></a>":e?"":'<a class="ui-datepicker-next ui-corner-all ui-state-disabled" title="'+s+'"><span class="ui-icon ui-icon-circle-triangle-'+(c?"w":"e")+'">'+s+"</span></a>",u=this._get(a,"currentText"),v=this._get(a,"gotoCurrent")&&a.currentDay?k:b;u=f?this.formatDate(u,v,this._getFormatConfig(a)):u;var w=a.inline?"":'<button type="button" class="ui-datepicker-close ui-state-default ui-priority-primary ui-corner-all" onclick="DP_jQuery_'+dpuuid+'.datepicker._hideDatepicker();">'+this._get(a,"closeText")+"</button>",x=d?'<div class="ui-datepicker-buttonpane ui-widget-content">'+(c?w:"")+(this._isInRange(a,v)?'<button type="button" class="ui-datepicker-current ui-state-default ui-priority-secondary ui-corner-all" onclick="DP_jQuery_'+dpuuid+".datepicker._gotoToday('#"+a.id+"');\""+">"+u+"</button>":"")+(c?"":w)+"</div>":"",y=parseInt(this._get(a,"firstDay"),10);y=isNaN(y)?0:y;var z=this._get(a,"showWeek"),A=this._get(a,"dayNames"),B=this._get(a,"dayNamesShort"),C=this._get(a,"dayNamesMin"),D=this._get(a,"monthNames"),E=this._get(a,"monthNamesShort"),F=this._get(a,"beforeShowDay"),G=this._get(a,"showOtherMonths"),H=this._get(a,"selectOtherMonths"),I=this._get(a,"calculateWeek")||this.iso8601Week,J=this._getDefaultDate(a),K="";for(var L=0;L<g[0];L++){var M="";this.maxRows=4;for(var N=0;N<g[1];N++){var O=this._daylightSavingAdjust(new Date(o,n,a.selectedDay)),P=" ui-corner-all",Q="";if(j){Q+='<div class="ui-datepicker-group';if(g[1]>1)switch(N){case 0:Q+=" ui-datepicker-group-first",P=" ui-corner-"+(c?"right":"left");break;case g[1]-1:Q+=" ui-datepicker-group-last",P=" ui-corner-"+(c?"left":"right");break;default:Q+=" ui-datepicker-group-middle",P=""}Q+='">'}Q+='<div class="ui-datepicker-header ui-widget-header ui-helper-clearfix'+P+'">'+(/all|left/.test(P)&&L==0?c?t:r:"")+(/all|right/.test(P)&&L==0?c?r:t:"")+this._generateMonthYearHeader(a,n,o,l,m,L>0||N>0,D,E)+'</div><table class="ui-datepicker-calendar"><thead>'+"<tr>";var R=z?'<th class="ui-datepicker-week-col">'+this._get(a,"weekHeader")+"</th>":"";for(var S=0;S<7;S++){var T=(S+y)%7;R+="<th"+((S+y+6)%7>=5?' class="ui-datepicker-week-end"':"")+">"+'<span title="'+A[T]+'">'+C[T]+"</span></th>"}Q+=R+"</tr></thead><tbody>";var U=this._getDaysInMonth(o,n);o==a.selectedYear&&n==a.selectedMonth&&(a.selectedDay=Math.min(a.selectedDay,U));var V=(this._getFirstDayOfMonth(o,n)-y+7)%7,W=Math.ceil((V+U)/7),X=j?this.maxRows>W?this.maxRows:W:W;this.maxRows=X;var Y=this._daylightSavingAdjust(new Date(o,n,1-V));for(var Z=0;Z<X;Z++){Q+="<tr>";var _=z?'<td class="ui-datepicker-week-col">'+this._get(a,"calculateWeek")(Y)+"</td>":"";for(var S=0;S<7;S++){var ba=F?F.apply(a.input?a.input[0]:null,[Y]):[!0,""],bb=Y.getMonth()!=n,bc=bb&&!H||!ba[0]||l&&Y<l||m&&Y>m;_+='<td class="'+((S+y+6)%7>=5?" ui-datepicker-week-end":"")+(bb?" ui-datepicker-other-month":"")+(Y.getTime()==O.getTime()&&n==a.selectedMonth&&a._keyEvent||J.getTime()==Y.getTime()&&J.getTime()==O.getTime()?" "+this._dayOverClass:"")+(bc?" "+this._unselectableClass+" ui-state-disabled":"")+(bb&&!G?"":" "+ba[1]+(Y.getTime()==k.getTime()?" "+this._currentClass:"")+(Y.getTime()==b.getTime()?" ui-datepicker-today":""))+'"'+((!bb||G)&&ba[2]?' title="'+ba[2]+'"':"")+(bc?"":' onclick="DP_jQuery_'+dpuuid+".datepicker._selectDay('#"+a.id+"',"+Y.getMonth()+","+Y.getFullYear()+', this);return false;"')+">"+(bb&&!G?"&#xa0;":bc?'<span class="ui-state-default">'+Y.getDate()+"</span>":'<a class="ui-state-default'+(Y.getTime()==b.getTime()?" ui-state-highlight":"")+(Y.getTime()==k.getTime()?" ui-state-active":"")+(bb?" ui-priority-secondary":"")+'" href="#">'+Y.getDate()+"</a>")+"</td>",Y.setDate(Y.getDate()+1),Y=this._daylightSavingAdjust(Y)}Q+=_+"</tr>"}n++,n>11&&(n=0,o++),Q+="</tbody></table>"+(j?"</div>"+(g[0]>0&&N==g[1]-1?'<div class="ui-datepicker-row-break"></div>':""):""),M+=Q}K+=M}return K+=x+($.browser.msie&&parseInt($.browser.version,10)<7&&!a.inline?'<iframe src="javascript:false;" class="ui-datepicker-cover" frameborder="0"></iframe>':""),a._keyEvent=!1,K},_generateMonthYearHeader:function(a,b,c,d,e,f,g,h){var i=this._get(a,"changeMonth"),j=this._get(a,"changeYear"),k=this._get(a,"showMonthAfterYear"),l='<div class="ui-datepicker-title">',m="";if(f||!i)m+='<span class="ui-datepicker-month">'+g[b]+"</span>";else{var n=d&&d.getFullYear()==c,o=e&&e.getFullYear()==c;m+='<select class="ui-datepicker-month" onchange="DP_jQuery_'+dpuuid+".datepicker._selectMonthYear('#"+a.id+"', this, 'M');\" "+">";for(var p=0;p<12;p++)(!n||p>=d.getMonth())&&(!o||p<=e.getMonth())&&(m+='<option value="'+p+'"'+(p==b?' selected="selected"':"")+">"+h[p]+"</option>");m+="</select>"}k||(l+=m+(f||!i||!j?"&#xa0;":""));if(!a.yearshtml){a.yearshtml="";if(f||!j)l+='<span class="ui-datepicker-year">'+c+"</span>";else{var q=this._get(a,"yearRange").split(":"),r=(new Date).getFullYear(),s=function(a){var b=a.match(/c[+-].*/)?c+parseInt(a.substring(1),10):a.match(/[+-].*/)?r+parseInt(a,10):parseInt(a,10);return isNaN(b)?r:b},t=s(q[0]),u=Math.max(t,s(q[1]||""));t=d?Math.max(t,d.getFullYear()):t,u=e?Math.min(u,e.getFullYear()):u,a.yearshtml+='<select class="ui-datepicker-year" onchange="DP_jQuery_'+dpuuid+".datepicker._selectMonthYear('#"+a.id+"', this, 'Y');\" "+">";for(;t<=u;t++)a.yearshtml+='<option value="'+t+'"'+(t==c?' selected="selected"':"")+">"+t+"</option>";a.yearshtml+="</select>",l+=a.yearshtml,a.yearshtml=null}}return l+=this._get(a,"yearSuffix"),k&&(l+=(f||!i||!j?"&#xa0;":"")+m),l+="</div>",l},_adjustInstDate:function(a,b,c){var d=a.drawYear+(c=="Y"?b:0),e=a.drawMonth+(c=="M"?b:0),f=Math.min(a.selectedDay,this._getDaysInMonth(d,e))+(c=="D"?b:0),g=this._restrictMinMax(a,this._daylightSavingAdjust(new Date(d,e,f)));a.selectedDay=g.getDate(),a.drawMonth=a.selectedMonth=g.getMonth(),a.drawYear=a.selectedYear=g.getFullYear(),(c=="M"||c=="Y")&&this._notifyChange(a)},_restrictMinMax:function(a,b){var c=this._getMinMaxDate(a,"min"),d=this._getMinMaxDate(a,"max"),e=c&&b<c?c:b;return e=d&&e>d?d:e,e},_notifyChange:function(a){var b=this._get(a,"onChangeMonthYear");b&&b.apply(a.input?a.input[0]:null,[a.selectedYear,a.selectedMonth+1,a])},_getNumberOfMonths:function(a){var b=this._get(a,"numberOfMonths");return b==null?[1,1]:typeof b=="number"?[1,b]:b},_getMinMaxDate:function(a,b){return this._determineDate(a,this._get(a,b+"Date"),null)},_getDaysInMonth:function(a,b){return 32-this._daylightSavingAdjust(new Date(a,b,32)).getDate()},_getFirstDayOfMonth:function(a,b){return(new Date(a,b,1)).getDay()},_canAdjustMonth:function(a,b,c,d){var e=this._getNumberOfMonths(a),f=this._daylightSavingAdjust(new Date(c,d+(b<0?b:e[0]*e[1]),1));return b<0&&f.setDate(this._getDaysInMonth(f.getFullYear(),f.getMonth())),this._isInRange(a,f)},_isInRange:function(a,b){var c=this._getMinMaxDate(a,"min"),d=this._getMinMaxDate(a,"max");return(!c||b.getTime()>=c.getTime())&&(!d||b.getTime()<=d.getTime())},_getFormatConfig:function(a){var b=this._get(a,"shortYearCutoff");return b=typeof b!="string"?b:(new Date).getFullYear()%100+parseInt(b,10),{shortYearCutoff:b,dayNamesShort:this._get(a,"dayNamesShort"),dayNames:this._get(a,"dayNames"),monthNamesShort:this._get(a,"monthNamesShort"),monthNames:this._get(a,"monthNames")}},_formatDate:function(a,b,c,d){b||(a.currentDay=a.selectedDay,a.currentMonth=a.selectedMonth,a.currentYear=a.selectedYear);var e=b?typeof b=="object"?b:this._daylightSavingAdjust(new Date(d,c,b)):this._daylightSavingAdjust(new Date(a.currentYear,a.currentMonth,a.currentDay));return this.formatDate(this._get(a,"dateFormat"),e,this._getFormatConfig(a))}}),$.fn.datepicker=function(a){if(!this.length)return this;$.datepicker.initialized||($(document).mousedown($.datepicker._checkExternalClick).find("body").append($.datepicker.dpDiv),$.datepicker.initialized=!0);var b=Array.prototype.slice.call(arguments,1);return typeof a!="string"||a!="isDisabled"&&a!="getDate"&&a!="widget"?a=="option"&&arguments.length==2&&typeof arguments[1]=="string"?$.datepicker["_"+a+"Datepicker"].apply($.datepicker,[this[0]].concat(b)):this.each(function(){typeof a=="string"?$.datepicker["_"+a+"Datepicker"].apply($.datepicker,[this].concat(b)):$.datepicker._attachDatepicker(this,a)}):$.datepicker["_"+a+"Datepicker"].apply($.datepicker,[this[0]].concat(b))},$.datepicker=new Datepicker,$.datepicker.initialized=!1,$.datepicker.uuid=(new Date).getTime(),$.datepicker.version="1.8.20",window["DP_jQuery_"+dpuuid]=$})(jQuery);
\ No newline at end of file
+* Copyright 2012 jQuery Foundation and other contributors; Licensed MIT */
+(function($,undefined){function Datepicker(){this.debug=!1,this._curInst=null,this._keyEvent=!1,this._disabledInputs=[],this._datepickerShowing=!1,this._inDialog=!1,this._mainDivId="ui-datepicker-div",this._inlineClass="ui-datepicker-inline",this._appendClass="ui-datepicker-append",this._triggerClass="ui-datepicker-trigger",this._dialogClass="ui-datepicker-dialog",this._disableClass="ui-datepicker-disabled",this._unselectableClass="ui-datepicker-unselectable",this._currentClass="ui-datepicker-current-day",this._dayOverClass="ui-datepicker-days-cell-over",this.regional=[],this.regional[""]={closeText:"Done",prevText:"Prev",nextText:"Next",currentText:"Today",monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayNamesShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],dayNamesMin:["Su","Mo","Tu","We","Th","Fr","Sa"],weekHeader:"Wk",dateFormat:"mm/dd/yy",firstDay:0,isRTL:!1,showMonthAfterYear:!1,yearSuffix:""},this._defaults={showOn:"focus",showAnim:"fadeIn",showOptions:{},defaultDate:null,appendText:"",buttonText:"...",buttonImage:"",buttonImageOnly:!1,hideIfNoPrevNext:!1,navigationAsDateFormat:!1,gotoCurrent:!1,changeMonth:!1,changeYear:!1,yearRange:"c-10:c+10",showOtherMonths:!1,selectOtherMonths:!1,showWeek:!1,calculateWeek:this.iso8601Week,shortYearCutoff:"+10",minDate:null,maxDate:null,duration:"fast",beforeShowDay:null,beforeShow:null,onSelect:null,onChangeMonthYear:null,onClose:null,numberOfMonths:1,showCurrentAtPos:0,stepMonths:1,stepBigMonths:12,altField:"",altFormat:"",constrainInput:!0,showButtonPanel:!1,autoSize:!1,disabled:!1},$.extend(this._defaults,this.regional[""]),this.dpDiv=bindHover($('<div id="'+this._mainDivId+'" class="ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all"></div>'))}function bindHover(e){var t="button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a";return e.delegate(t,"mouseout",function(){$(this).removeClass("ui-state-hover"),this.className.indexOf("ui-datepicker-prev")!=-1&&$(this).removeClass("ui-datepicker-prev-hover"),this.className.indexOf("ui-datepicker-next")!=-1&&$(this).removeClass("ui-datepicker-next-hover")}).delegate(t,"mouseover",function(){$.datepicker._isDisabledDatepicker(instActive.inline?e.parent()[0]:instActive.input[0])||($(this).parents(".ui-datepicker-calendar").find("a").removeClass("ui-state-hover"),$(this).addClass("ui-state-hover"),this.className.indexOf("ui-datepicker-prev")!=-1&&$(this).addClass("ui-datepicker-prev-hover"),this.className.indexOf("ui-datepicker-next")!=-1&&$(this).addClass("ui-datepicker-next-hover"))})}function extendRemove(e,t){$.extend(e,t);for(var n in t)if(t[n]==null||t[n]==undefined)e[n]=t[n];return e}$.extend($.ui,{datepicker:{version:"1.9.2"}});var PROP_NAME="datepicker",dpuuid=(new Date).getTime(),instActive;$.extend(Datepicker.prototype,{markerClassName:"hasDatepicker",maxRows:4,log:function(){this.debug&&console.log.apply("",arguments)},_widgetDatepicker:function(){return this.dpDiv},setDefaults:function(e){return extendRemove(this._defaults,e||{}),this},_attachDatepicker:function(target,settings){var inlineSettings=null;for(var attrName in this._defaults){var attrValue=target.getAttribute("date:"+attrName);if(attrValue){inlineSettings=inlineSettings||{};try{inlineSettings[attrName]=eval(attrValue)}catch(err){inlineSettings[attrName]=attrValue}}}var nodeName=target.nodeName.toLowerCase(),inline=nodeName=="div"||nodeName=="span";target.id||(this.uuid+=1,target.id="dp"+this.uuid);var inst=this._newInst($(target),inline);inst.settings=$.extend({},settings||{},inlineSettings||{}),nodeName=="input"?this._connectDatepicker(target,inst):inline&&this._inlineDatepicker(target,inst)},_newInst:function(e,t){var n=e[0].id.replace(/([^A-Za-z0-9_-])/g,"\\\\$1");return{id:n,input:e,selectedDay:0,selectedMonth:0,selectedYear:0,drawMonth:0,drawYear:0,inline:t,dpDiv:t?bindHover($('<div class="'+this._inlineClass+' ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all"></div>')):this.dpDiv}},_connectDatepicker:function(e,t){var n=$(e);t.append=$([]),t.trigger=$([]);if(n.hasClass(this.markerClassName))return;this._attachments(n,t),n.addClass(this.markerClassName).keydown(this._doKeyDown).keypress(this._doKeyPress).keyup(this._doKeyUp).bind("setData.datepicker",function(e,n,r){t.settings[n]=r}).bind("getData.datepicker",function(e,n){return this._get(t,n)}),this._autoSize(t),$.data(e,PROP_NAME,t),t.settings.disabled&&this._disableDatepicker(e)},_attachments:function(e,t){var n=this._get(t,"appendText"),r=this._get(t,"isRTL");t.append&&t.append.remove(),n&&(t.append=$('<span class="'+this._appendClass+'">'+n+"</span>"),e[r?"before":"after"](t.append)),e.unbind("focus",this._showDatepicker),t.trigger&&t.trigger.remove();var i=this._get(t,"showOn");(i=="focus"||i=="both")&&e.focus(this._showDatepicker);if(i=="button"||i=="both"){var s=this._get(t,"buttonText"),o=this._get(t,"buttonImage");t.trigger=$(this._get(t,"buttonImageOnly")?$("<img/>").addClass(this._triggerClass).attr({src:o,alt:s,title:s}):$('<button type="button"></button>').addClass(this._triggerClass).html(o==""?s:$("<img/>").attr({src:o,alt:s,title:s}))),e[r?"before":"after"](t.trigger),t.trigger.click(function(){return $.datepicker._datepickerShowing&&$.datepicker._lastInput==e[0]?$.datepicker._hideDatepicker():$.datepicker._datepickerShowing&&$.datepicker._lastInput!=e[0]?($.datepicker._hideDatepicker(),$.datepicker._showDatepicker(e[0])):$.datepicker._showDatepicker(e[0]),!1})}},_autoSize:function(e){if(this._get(e,"autoSize")&&!e.inline){var t=new Date(2009,11,20),n=this._get(e,"dateFormat");if(n.match(/[DM]/)){var r=function(e){var t=0,n=0;for(var r=0;r<e.length;r++)e[r].length>t&&(t=e[r].length,n=r);return n};t.setMonth(r(this._get(e,n.match(/MM/)?"monthNames":"monthNamesShort"))),t.setDate(r(this._get(e,n.match(/DD/)?"dayNames":"dayNamesShort"))+20-t.getDay())}e.input.attr("size",this._formatDate(e,t).length)}},_inlineDatepicker:function(e,t){var n=$(e);if(n.hasClass(this.markerClassName))return;n.addClass(this.markerClassName).append(t.dpDiv).bind("setData.datepicker",function(e,n,r){t.settings[n]=r}).bind("getData.datepicker",function(e,n){return this._get(t,n)}),$.data(e,PROP_NAME,t),this._setDate(t,this._getDefaultDate(t),!0),this._updateDatepicker(t),this._updateAlternate(t),t.settings.disabled&&this._disableDatepicker(e),t.dpDiv.css("display","block")},_dialogDatepicker:function(e,t,n,r,i){var s=this._dialogInst;if(!s){this.uuid+=1;var o="dp"+this.uuid;this._dialogInput=$('<input type="text" id="'+o+'" style="position: absolute; top: -100px; width: 0px;"/>'),this._dialogInput.keydown(this._doKeyDown),$("body").append(this._dialogInput),s=this._dialogInst=this._newInst(this._dialogInput,!1),s.settings={},$.data(this._dialogInput[0],PROP_NAME,s)}extendRemove(s.settings,r||{}),t=t&&t.constructor==Date?this._formatDate(s,t):t,this._dialogInput.val(t),this._pos=i?i.length?i:[i.pageX,i.pageY]:null;if(!this._pos){var u=document.documentElement.clientWidth,a=document.documentElement.clientHeight,f=document.documentElement.scrollLeft||document.body.scrollLeft,l=document.documentElement.scrollTop||document.body.scrollTop;this._pos=[u/2-100+f,a/2-150+l]}return this._dialogInput.css("left",this._pos[0]+20+"px").css("top",this._pos[1]+"px"),s.settings.onSelect=n,this._inDialog=!0,this.dpDiv.addClass(this._dialogClass),this._showDatepicker(this._dialogInput[0]),$.blockUI&&$.blockUI(this.dpDiv),$.data(this._dialogInput[0],PROP_NAME,s),this},_destroyDatepicker:function(e){var t=$(e),n=$.data(e,PROP_NAME);if(!t.hasClass(this.markerClassName))return;var r=e.nodeName.toLowerCase();$.removeData(e,PROP_NAME),r=="input"?(n.append.remove(),n.trigger.remove(),t.removeClass(this.markerClassName).unbind("focus",this._showDatepicker).unbind("keydown",this._doKeyDown).unbind("keypress",this._doKeyPress).unbind("keyup",this._doKeyUp)):(r=="div"||r=="span")&&t.removeClass(this.markerClassName).empty()},_enableDatepicker:function(e){var t=$(e),n=$.data(e,PROP_NAME);if(!t.hasClass(this.markerClassName))return;var r=e.nodeName.toLowerCase();if(r=="input")e.disabled=!1,n.trigger.filter("button").each(function(){this.disabled=!1}).end().filter("img").css({opacity:"1.0",cursor:""});else if(r=="div"||r=="span"){var i=t.children("."+this._inlineClass);i.children().removeClass("ui-state-disabled"),i.find("select.ui-datepicker-month, select.ui-datepicker-year").prop("disabled",!1)}this._disabledInputs=$.map(this._disabledInputs,function(t){return t==e?null:t})},_disableDatepicker:function(e){var t=$(e),n=$.data(e,PROP_NAME);if(!t.hasClass(this.markerClassName))return;var r=e.nodeName.toLowerCase();if(r=="input")e.disabled=!0,n.trigger.filter("button").each(function(){this.disabled=!0}).end().filter("img").css({opacity:"0.5",cursor:"default"});else if(r=="div"||r=="span"){var i=t.children("."+this._inlineClass);i.children().addClass("ui-state-disabled"),i.find("select.ui-datepicker-month, select.ui-datepicker-year").prop("disabled",!0)}this._disabledInputs=$.map(this._disabledInputs,function(t){return t==e?null:t}),this._disabledInputs[this._disabledInputs.length]=e},_isDisabledDatepicker:function(e){if(!e)return!1;for(var t=0;t<this._disabledInputs.length;t++)if(this._disabledInputs[t]==e)return!0;return!1},_getInst:function(e){try{return $.data(e,PROP_NAME)}catch(t){throw"Missing instance data for this datepicker"}},_optionDatepicker:function(e,t,n){var r=this._getInst(e);if(arguments.length==2&&typeof t=="string")return t=="defaults"?$.extend({},$.datepicker._defaults):r?t=="all"?$.extend({},r.settings):this._get(r,t):null;var i=t||{};typeof t=="string"&&(i={},i[t]=n);if(r){this._curInst==r&&this._hideDatepicker();var s=this._getDateDatepicker(e,!0),o=this._getMinMaxDate(r,"min"),u=this._getMinMaxDate(r,"max");extendRemove(r.settings,i),o!==null&&i.dateFormat!==undefined&&i.minDate===undefined&&(r.settings.minDate=this._formatDate(r,o)),u!==null&&i.dateFormat!==undefined&&i.maxDate===undefined&&(r.settings.maxDate=this._formatDate(r,u)),this._attachments($(e),r),this._autoSize(r),this._setDate(r,s),this._updateAlternate(r),this._updateDatepicker(r)}},_changeDatepicker:function(e,t,n){this._optionDatepicker(e,t,n)},_refreshDatepicker:function(e){var t=this._getInst(e);t&&this._updateDatepicker(t)},_setDateDatepicker:function(e,t){var n=this._getInst(e);n&&(this._setDate(n,t),this._updateDatepicker(n),this._updateAlternate(n))},_getDateDatepicker:function(e,t){var n=this._getInst(e);return n&&!n.inline&&this._setDateFromField(n,t),n?this._getDate(n):null},_doKeyDown:function(e){var t=$.datepicker._getInst(e.target),n=!0,r=t.dpDiv.is(".ui-datepicker-rtl");t._keyEvent=!0;if($.datepicker._datepickerShowing)switch(e.keyCode){case 9:$.datepicker._hideDatepicker(),n=!1;break;case 13:var i=$("td."+$.datepicker._dayOverClass+":not(."+$.datepicker._currentClass+")",t.dpDiv);i[0]&&$.datepicker._selectDay(e.target,t.selectedMonth,t.selectedYear,i[0]);var s=$.datepicker._get(t,"onSelect");if(s){var o=$.datepicker._formatDate(t);s.apply(t.input?t.input[0]:null,[o,t])}else $.datepicker._hideDatepicker();return!1;case 27:$.datepicker._hideDatepicker();break;case 33:$.datepicker._adjustDate(e.target,e.ctrlKey?-$.datepicker._get(t,"stepBigMonths"):-$.datepicker._get(t,"stepMonths"),"M");break;case 34:$.datepicker._adjustDate(e.target,e.ctrlKey?+$.datepicker._get(t,"stepBigMonths"):+$.datepicker._get(t,"stepMonths"),"M");break;case 35:(e.ctrlKey||e.metaKey)&&$.datepicker._clearDate(e.target),n=e.ctrlKey||e.metaKey;break;case 36:(e.ctrlKey||e.metaKey)&&$.datepicker._gotoToday(e.target),n=e.ctrlKey||e.metaKey;break;case 37:(e.ctrlKey||e.metaKey)&&$.datepicker._adjustDate(e.target,r?1:-1,"D"),n=e.ctrlKey||e.metaKey,e.originalEvent.altKey&&$.datepicker._adjustDate(e.target,e.ctrlKey?-$.datepicker._get(t,"stepBigMonths"):-$.datepicker._get(t,"stepMonths"),"M");break;case 38:(e.ctrlKey||e.metaKey)&&$.datepicker._adjustDate(e.target,-7,"D"),n=e.ctrlKey||e.metaKey;break;case 39:(e.ctrlKey||e.metaKey)&&$.datepicker._adjustDate(e.target,r?-1:1,"D"),n=e.ctrlKey||e.metaKey,e.originalEvent.altKey&&$.datepicker._adjustDate(e.target,e.ctrlKey?+$.datepicker._get(t,"stepBigMonths"):+$.datepicker._get(t,"stepMonths"),"M");break;case 40:(e.ctrlKey||e.metaKey)&&$.datepicker._adjustDate(e.target,7,"D"),n=e.ctrlKey||e.metaKey;break;default:n=!1}else e.keyCode==36&&e.ctrlKey?$.datepicker._showDatepicker(this):n=!1;n&&(e.preventDefault(),e.stopPropagation())},_doKeyPress:function(e){var t=$.datepicker._getInst(e.target);if($.datepicker._get(t,"constrainInput")){var n=$.datepicker._possibleChars($.datepicker._get(t,"dateFormat")),r=String.fromCharCode(e.charCode==undefined?e.keyCode:e.charCode);return e.ctrlKey||e.metaKey||r<" "||!n||n.indexOf(r)>-1}},_doKeyUp:function(e){var t=$.datepicker._getInst(e.target);if(t.input.val()!=t.lastVal)try{var n=$.datepicker.parseDate($.datepicker._get(t,"dateFormat"),t.input?t.input.val():null,$.datepicker._getFormatConfig(t));n&&($.datepicker._setDateFromField(t),$.datepicker._updateAlternate(t),$.datepicker._updateDatepicker(t))}catch(r){$.datepicker.log(r)}return!0},_showDatepicker:function(e){e=e.target||e,e.nodeName.toLowerCase()!="input"&&(e=$("input",e.parentNode)[0]);if($.datepicker._isDisabledDatepicker(e)||$.datepicker._lastInput==e)return;var t=$.datepicker._getInst(e);$.datepicker._curInst&&$.datepicker._curInst!=t&&($.datepicker._curInst.dpDiv.stop(!0,!0),t&&$.datepicker._datepickerShowing&&$.datepicker._hideDatepicker($.datepicker._curInst.input[0]));var n=$.datepicker._get(t,"beforeShow"),r=n?n.apply(e,[e,t]):{};if(r===!1)return;extendRemove(t.settings,r),t.lastVal=null,$.datepicker._lastInput=e,$.datepicker._setDateFromField(t),$.datepicker._inDialog&&(e.value=""),$.datepicker._pos||($.datepicker._pos=$.datepicker._findPos(e),$.datepicker._pos[1]+=e.offsetHeight);var i=!1;$(e).parents().each(function(){return i|=$(this).css("position")=="fixed",!i});var s={left:$.datepicker._pos[0],top:$.datepicker._pos[1]};$.datepicker._pos=null,t.dpDiv.empty(),t.dpDiv.css({position:"absolute",display:"block",top:"-1000px"}),$.datepicker._updateDatepicker(t),s=$.datepicker._checkOffset(t,s,i),t.dpDiv.css({position:$.datepicker._inDialog&&$.blockUI?"static":i?"fixed":"absolute",display:"none",left:s.left+"px",top:s.top+"px"});if(!t.inline){var o=$.datepicker._get(t,"showAnim"),u=$.datepicker._get(t,"duration"),a=function(){var e=t.dpDiv.find("iframe.ui-datepicker-cover");if(!!e.length){var n=$.datepicker._getBorders(t.dpDiv);e.css({left:-n[0],top:-n[1],width:t.dpDiv.outerWidth(),height:t.dpDiv.outerHeight()})}};t.dpDiv.zIndex($(e).zIndex()+1),$.datepicker._datepickerShowing=!0,$.effects&&($.effects.effect[o]||$.effects[o])?t.dpDiv.show(o,$.datepicker._get(t,"showOptions"),u,a):t.dpDiv[o||"show"](o?u:null,a),(!o||!u)&&a(),t.input.is(":visible")&&!t.input.is(":disabled")&&t.input.focus(),$.datepicker._curInst=t}},_updateDatepicker:function(e){this.maxRows=4;var t=$.datepicker._getBorders(e.dpDiv);instActive=e,e.dpDiv.empty().append(this._generateHTML(e)),this._attachHandlers(e);var n=e.dpDiv.find("iframe.ui-datepicker-cover");!n.length||n.css({left:-t[0],top:-t[1],width:e.dpDiv.outerWidth(),height:e.dpDiv.outerHeight()}),e.dpDiv.find("."+this._dayOverClass+" a").mouseover();var r=this._getNumberOfMonths(e),i=r[1],s=17;e.dpDiv.removeClass("ui-datepicker-multi-2 ui-datepicker-multi-3 ui-datepicker-multi-4").width(""),i>1&&e.dpDiv.addClass("ui-datepicker-multi-"+i).css("width",s*i+"em"),e.dpDiv[(r[0]!=1||r[1]!=1?"add":"remove")+"Class"]("ui-datepicker-multi"),e.dpDiv[(this._get(e,"isRTL")?"add":"remove")+"Class"]("ui-datepicker-rtl"),e==$.datepicker._curInst&&$.datepicker._datepickerShowing&&e.input&&e.input.is(":visible")&&!e.input.is(":disabled")&&e.input[0]!=document.activeElement&&e.input.focus();if(e.yearshtml){var o=e.yearshtml;setTimeout(function(){o===e.yearshtml&&e.yearshtml&&e.dpDiv.find("select.ui-datepicker-year:first").replaceWith(e.yearshtml),o=e.yearshtml=null},0)}},_getBorders:function(e){var t=function(e){return{thin:1,medium:2,thick:3}[e]||e};return[parseFloat(t(e.css("border-left-width"))),parseFloat(t(e.css("border-top-width")))]},_checkOffset:function(e,t,n){var r=e.dpDiv.outerWidth(),i=e.dpDiv.outerHeight(),s=e.input?e.input.outerWidth():0,o=e.input?e.input.outerHeight():0,u=document.documentElement.clientWidth+(n?0:$(document).scrollLeft()),a=document.documentElement.clientHeight+(n?0:$(document).scrollTop());return t.left-=this._get(e,"isRTL")?r-s:0,t.left-=n&&t.left==e.input.offset().left?$(document).scrollLeft():0,t.top-=n&&t.top==e.input.offset().top+o?$(document).scrollTop():0,t.left-=Math.min(t.left,t.left+r>u&&u>r?Math.abs(t.left+r-u):0),t.top-=Math.min(t.top,t.top+i>a&&a>i?Math.abs(i+o):0),t},_findPos:function(e){var t=this._getInst(e),n=this._get(t,"isRTL");while(e&&(e.type=="hidden"||e.nodeType!=1||$.expr.filters.hidden(e)))e=e[n?"previousSibling":"nextSibling"];var r=$(e).offset();return[r.left,r.top]},_hideDatepicker:function(e){var t=this._curInst;if(!t||e&&t!=$.data(e,PROP_NAME))return;if(this._datepickerShowing){var n=this._get(t,"showAnim"),r=this._get(t,"duration"),i=function(){$.datepicker._tidyDialog(t)};$.effects&&($.effects.effect[n]||$.effects[n])?t.dpDiv.hide(n,$.datepicker._get(t,"showOptions"),r,i):t.dpDiv[n=="slideDown"?"slideUp":n=="fadeIn"?"fadeOut":"hide"](n?r:null,i),n||i(),this._datepickerShowing=!1;var s=this._get(t,"onClose");s&&s.apply(t.input?t.input[0]:null,[t.input?t.input.val():"",t]),this._lastInput=null,this._inDialog&&(this._dialogInput.css({position:"absolute",left:"0",top:"-100px"}),$.blockUI&&($.unblockUI(),$("body").append(this.dpDiv))),this._inDialog=!1}},_tidyDialog:function(e){e.dpDiv.removeClass(this._dialogClass).unbind(".ui-datepicker-calendar")},_checkExternalClick:function(e){if(!$.datepicker._curInst)return;var t=$(e.target),n=$.datepicker._getInst(t[0]);(t[0].id!=$.datepicker._mainDivId&&t.parents("#"+$.datepicker._mainDivId).length==0&&!t.hasClass($.datepicker.markerClassName)&&!t.closest("."+$.datepicker._triggerClass).length&&$.datepicker._datepickerShowing&&(!$.datepicker._inDialog||!$.blockUI)||t.hasClass($.datepicker.markerClassName)&&$.datepicker._curInst!=n)&&$.datepicker._hideDatepicker()},_adjustDate:function(e,t,n){var r=$(e),i=this._getInst(r[0]);if(this._isDisabledDatepicker(r[0]))return;this._adjustInstDate(i,t+(n=="M"?this._get(i,"showCurrentAtPos"):0),n),this._updateDatepicker(i)},_gotoToday:function(e){var t=$(e),n=this._getInst(t[0]);if(this._get(n,"gotoCurrent")&&n.currentDay)n.selectedDay=n.currentDay,n.drawMonth=n.selectedMonth=n.currentMonth,n.drawYear=n.selectedYear=n.currentYear;else{var r=new Date;n.selectedDay=r.getDate(),n.drawMonth=n.selectedMonth=r.getMonth(),n.drawYear=n.selectedYear=r.getFullYear()}this._notifyChange(n),this._adjustDate(t)},_selectMonthYear:function(e,t,n){var r=$(e),i=this._getInst(r[0]);i["selected"+(n=="M"?"Month":"Year")]=i["draw"+(n=="M"?"Month":"Year")]=parseInt(t.options[t.selectedIndex].value,10),this._notifyChange(i),this._adjustDate(r)},_selectDay:function(e,t,n,r){var i=$(e);if($(r).hasClass(this._unselectableClass)||this._isDisabledDatepicker(i[0]))return;var s=this._getInst(i[0]);s.selectedDay=s.currentDay=$("a",r).html(),s.selectedMonth=s.currentMonth=t,s.selectedYear=s.currentYear=n,this._selectDate(e,this._formatDate(s,s.currentDay,s.currentMonth,s.currentYear))},_clearDate:function(e){var t=$(e),n=this._getInst(t[0]);this._selectDate(t,"")},_selectDate:function(e,t){var n=$(e),r=this._getInst(n[0]);t=t!=null?t:this._formatDate(r),r.input&&r.input.val(t),this._updateAlternate(r);var i=this._get(r,"onSelect");i?i.apply(r.input?r.input[0]:null,[t,r]):r.input&&r.input.trigger("change"),r.inline?this._updateDatepicker(r):(this._hideDatepicker(),this._lastInput=r.input[0],typeof r.input[0]!="object"&&r.input.focus(),this._lastInput=null)},_updateAlternate:function(e){var t=this._get(e,"altField");if(t){var n=this._get(e,"altFormat")||this._get(e,"dateFormat"),r=this._getDate(e),i=this.formatDate(n,r,this._getFormatConfig(e));$(t).each(function(){$(this).val(i)})}},noWeekends:function(e){var t=e.getDay();return[t>0&&t<6,""]},iso8601Week:function(e){var t=new Date(e.getTime());t.setDate(t.getDate()+4-(t.getDay()||7));var n=t.getTime();return t.setMonth(0),t.setDate(1),Math.floor(Math.round((n-t)/864e5)/7)+1},parseDate:function(e,t,n){if(e==null||t==null)throw"Invalid arguments";t=typeof t=="object"?t.toString():t+"";if(t=="")return null;var r=(n?n.shortYearCutoff:null)||this._defaults.shortYearCutoff;r=typeof r!="string"?r:(new Date).getFullYear()%100+parseInt(r,10);var i=(n?n.dayNamesShort:null)||this._defaults.dayNamesShort,s=(n?n.dayNames:null)||this._defaults.dayNames,o=(n?n.monthNamesShort:null)||this._defaults.monthNamesShort,u=(n?n.monthNames:null)||this._defaults.monthNames,a=-1,f=-1,l=-1,c=-1,h=!1,p=function(t){var n=y+1<e.length&&e.charAt(y+1)==t;return n&&y++,n},d=function(e){var n=p(e),r=e=="@"?14:e=="!"?20:e=="y"&&n?4:e=="o"?3:2,i=new RegExp("^\\d{1,"+r+"}"),s=t.substring(g).match(i);if(!s)throw"Missing number at position "+g;return g+=s[0].length,parseInt(s[0],10)},v=function(e,n,r){var i=$.map(p(e)?r:n,function(e,t){return[[t,e]]}).sort(function(e,t){return-(e[1].length-t[1].length)}),s=-1;$.each(i,function(e,n){var r=n[1];if(t.substr(g,r.length).toLowerCase()==r.toLowerCase())return s=n[0],g+=r.length,!1});if(s!=-1)return s+1;throw"Unknown name at position "+g},m=function(){if(t.charAt(g)!=e.charAt(y))throw"Unexpected literal at position "+g;g++},g=0;for(var y=0;y<e.length;y++)if(h)e.charAt(y)=="'"&&!p("'")?h=!1:m();else switch(e.charAt(y)){case"d":l=d("d");break;case"D":v("D",i,s);break;case"o":c=d("o");break;case"m":f=d("m");break;case"M":f=v("M",o,u);break;case"y":a=d("y");break;case"@":var b=new Date(d("@"));a=b.getFullYear(),f=b.getMonth()+1,l=b.getDate();break;case"!":var b=new Date((d("!")-this._ticksTo1970)/1e4);a=b.getFullYear(),f=b.getMonth()+1,l=b.getDate();break;case"'":p("'")?m():h=!0;break;default:m()}if(g<t.length){var w=t.substr(g);if(!/^\s+/.test(w))throw"Extra/unparsed characters found in date: "+w}a==-1?a=(new Date).getFullYear():a<100&&(a+=(new Date).getFullYear()-(new Date).getFullYear()%100+(a<=r?0:-100));if(c>-1){f=1,l=c;do{var E=this._getDaysInMonth(a,f-1);if(l<=E)break;f++,l-=E}while(!0)}var b=this._daylightSavingAdjust(new Date(a,f-1,l));if(b.getFullYear()!=a||b.getMonth()+1!=f||b.getDate()!=l)throw"Invalid date";return b},ATOM:"yy-mm-dd",COOKIE:"D, dd M yy",ISO_8601:"yy-mm-dd",RFC_822:"D, d M y",RFC_850:"DD, dd-M-y",RFC_1036:"D, d M y",RFC_1123:"D, d M yy",RFC_2822:"D, d M yy",RSS:"D, d M y",TICKS:"!",TIMESTAMP:"@",W3C:"yy-mm-dd",_ticksTo1970:(718685+Math.floor(492.5)-Math.floor(19.7)+Math.floor(4.925))*24*60*60*1e7,formatDate:function(e,t,n){if(!t)return"";var r=(n?n.dayNamesShort:null)||this._defaults.dayNamesShort,i=(n?n.dayNames:null)||this._defaults.dayNames,s=(n?n.monthNamesShort:null)||this._defaults.monthNamesShort,o=(n?n.monthNames:null)||this._defaults.monthNames,u=function(t){var n=h+1<e.length&&e.charAt(h+1)==t;return n&&h++,n},a=function(e,t,n){var r=""+t;if(u(e))while(r.length<n)r="0"+r;return r},f=function(e,t,n,r){return u(e)?r[t]:n[t]},l="",c=!1;if(t)for(var h=0;h<e.length;h++)if(c)e.charAt(h)=="'"&&!u("'")?c=!1:l+=e.charAt(h);else switch(e.charAt(h)){case"d":l+=a("d",t.getDate(),2);break;case"D":l+=f("D",t.getDay(),r,i);break;case"o":l+=a("o",Math.round(((new Date(t.getFullYear(),t.getMonth(),t.getDate())).getTime()-(new Date(t.getFullYear(),0,0)).getTime())/864e5),3);break;case"m":l+=a("m",t.getMonth()+1,2);break;case"M":l+=f("M",t.getMonth(),s,o);break;case"y":l+=u("y")?t.getFullYear():(t.getYear()%100<10?"0":"")+t.getYear()%100;break;case"@":l+=t.getTime();break;case"!":l+=t.getTime()*1e4+this._ticksTo1970;break;case"'":u("'")?l+="'":c=!0;break;default:l+=e.charAt(h)}return l},_possibleChars:function(e){var t="",n=!1,r=function(t){var n=i+1<e.length&&e.charAt(i+1)==t;return n&&i++,n};for(var i=0;i<e.length;i++)if(n)e.charAt(i)=="'"&&!r("'")?n=!1:t+=e.charAt(i);else switch(e.charAt(i)){case"d":case"m":case"y":case"@":t+="0123456789";break;case"D":case"M":return null;case"'":r("'")?t+="'":n=!0;break;default:t+=e.charAt(i)}return t},_get:function(e,t){return e.settings[t]!==undefined?e.settings[t]:this._defaults[t]},_setDateFromField:function(e,t){if(e.input.val()==e.lastVal)return;var n=this._get(e,"dateFormat"),r=e.lastVal=e.input?e.input.val():null,i,s;i=s=this._getDefaultDate(e);var o=this._getFormatConfig(e);try{i=this.parseDate(n,r,o)||s}catch(u){this.log(u),r=t?"":r}e.selectedDay=i.getDate(),e.drawMonth=e.selectedMonth=i.getMonth(),e.drawYear=e.selectedYear=i.getFullYear(),e.currentDay=r?i.getDate():0,e.currentMonth=r?i.getMonth():0,e.currentYear=r?i.getFullYear():0,this._adjustInstDate(e)},_getDefaultDate:function(e){return this._restrictMinMax(e,this._determineDate(e,this._get(e,"defaultDate"),new Date))},_determineDate:function(e,t,n){var r=function(e){var t=new Date;return t.setDate(t.getDate()+e),t},i=function(t){try{return $.datepicker.parseDate($.datepicker._get(e,"dateFormat"),t,$.datepicker._getFormatConfig(e))}catch(n){}var r=(t.toLowerCase().match(/^c/)?$.datepicker._getDate(e):null)||new Date,i=r.getFullYear(),s=r.getMonth(),o=r.getDate(),u=/([+-]?[0-9]+)\s*(d|D|w|W|m|M|y|Y)?/g,a=u.exec(t);while(a){switch(a[2]||"d"){case"d":case"D":o+=parseInt(a[1],10);break;case"w":case"W":o+=parseInt(a[1],10)*7;break;case"m":case"M":s+=parseInt(a[1],10),o=Math.min(o,$.datepicker._getDaysInMonth(i,s));break;case"y":case"Y":i+=parseInt(a[1],10),o=Math.min(o,$.datepicker._getDaysInMonth(i,s))}a=u.exec(t)}return new Date(i,s,o)},s=t==null||t===""?n:typeof t=="string"?i(t):typeof t=="number"?isNaN(t)?n:r(t):new Date(t.getTime());return s=s&&s.toString()=="Invalid Date"?n:s,s&&(s.setHours(0),s.setMinutes(0),s.setSeconds(0),s.setMilliseconds(0)),this._daylightSavingAdjust(s)},_daylightSavingAdjust:function(e){return e?(e.setHours(e.getHours()>12?e.getHours()+2:0),e):null},_setDate:function(e,t,n){var r=!t,i=e.selectedMonth,s=e.selectedYear,o=this._restrictMinMax(e,this._determineDate(e,t,new Date));e.selectedDay=e.currentDay=o.getDate(),e.drawMonth=e.selectedMonth=e.currentMonth=o.getMonth(),e.drawYear=e.selectedYear=e.currentYear=o.getFullYear(),(i!=e.selectedMonth||s!=e.selectedYear)&&!n&&this._notifyChange(e),this._adjustInstDate(e),e.input&&e.input.val(r?"":this._formatDate(e))},_getDate:function(e){var t=!e.currentYear||e.input&&e.input.val()==""?null:this._daylightSavingAdjust(new Date(e.currentYear,e.currentMonth,e.currentDay));return t},_attachHandlers:function(e){var t=this._get(e,"stepMonths"),n="#"+e.id.replace(/\\\\/g,"\\");e.dpDiv.find("[data-handler]").map(function(){var e={prev:function(){window["DP_jQuery_"+dpuuid].datepicker._adjustDate(n,-t,"M")},next:function(){window["DP_jQuery_"+dpuuid].datepicker._adjustDate(n,+t,"M")},hide:function(){window["DP_jQuery_"+dpuuid].datepicker._hideDatepicker()},today:function(){window["DP_jQuery_"+dpuuid].datepicker._gotoToday(n)},selectDay:function(){return window["DP_jQuery_"+dpuuid].datepicker._selectDay(n,+this.getAttribute("data-month"),+this.getAttribute("data-year"),this),!1},selectMonth:function(){return window["DP_jQuery_"+dpuuid].datepicker._selectMonthYear(n,this,"M"),!1},selectYear:function(){return window["DP_jQuery_"+dpuuid].datepicker._selectMonthYear(n,this,"Y"),!1}};$(this).bind(this.getAttribute("data-event"),e[this.getAttribute("data-handler")])})},_generateHTML:function(e){var t=new Date;t=this._daylightSavingAdjust(new Date(t.getFullYear(),t.getMonth(),t.getDate()));var n=this._get(e,"isRTL"),r=this._get(e,"showButtonPanel"),i=this._get(e,"hideIfNoPrevNext"),s=this._get(e,"navigationAsDateFormat"),o=this._getNumberOfMonths(e),u=this._get(e,"showCurrentAtPos"),a=this._get(e,"stepMonths"),f=o[0]!=1||o[1]!=1,l=this._daylightSavingAdjust(e.currentDay?new Date(e.currentYear,e.currentMonth,e.currentDay):new Date(9999,9,9)),c=this._getMinMaxDate(e,"min"),h=this._getMinMaxDate(e,"max"),p=e.drawMonth-u,d=e.drawYear;p<0&&(p+=12,d--);if(h){var v=this._daylightSavingAdjust(new Date(h.getFullYear(),h.getMonth()-o[0]*o[1]+1,h.getDate()));v=c&&v<c?c:v;while(this._daylightSavingAdjust(new Date(d,p,1))>v)p--,p<0&&(p=11,d--)}e.drawMonth=p,e.drawYear=d;var m=this._get(e,"prevText");m=s?this.formatDate(m,this._daylightSavingAdjust(new Date(d,p-a,1)),this._getFormatConfig(e)):m;var g=this._canAdjustMonth(e,-1,d,p)?'<a class="ui-datepicker-prev ui-corner-all" data-handler="prev" data-event="click" title="'+m+'"><span class="ui-icon ui-icon-circle-triangle-'+(n?"e":"w")+'">'+m+"</span></a>":i?"":'<a class="ui-datepicker-prev ui-corner-all ui-state-disabled" title="'+m+'"><span class="ui-icon ui-icon-circle-triangle-'+(n?"e":"w")+'">'+m+"</span></a>",y=this._get(e,"nextText");y=s?this.formatDate(y,this._daylightSavingAdjust(new Date(d,p+a,1)),this._getFormatConfig(e)):y;var b=this._canAdjustMonth(e,1,d,p)?'<a class="ui-datepicker-next ui-corner-all" data-handler="next" data-event="click" title="'+y+'"><span class="ui-icon ui-icon-circle-triangle-'+(n?"w":"e")+'">'+y+"</span></a>":i?"":'<a class="ui-datepicker-next ui-corner-all ui-state-disabled" title="'+y+'"><span class="ui-icon ui-icon-circle-triangle-'+(n?"w":"e")+'">'+y+"</span></a>",w=this._get(e,"currentText"),E=this._get(e,"gotoCurrent")&&e.currentDay?l:t;w=s?this.formatDate(w,E,this._getFormatConfig(e)):w;var S=e.inline?"":'<button type="button" class="ui-datepicker-close ui-state-default ui-priority-primary ui-corner-all" data-handler="hide" data-event="click">'+this._get(e,"closeText")+"</button>",x=r?'<div class="ui-datepicker-buttonpane ui-widget-content">'+(n?S:"")+(this._isInRange(e,E)?'<button type="button" class="ui-datepicker-current ui-state-default ui-priority-secondary ui-corner-all" data-handler="today" data-event="click">'+w+"</button>":"")+(n?"":S)+"</div>":"",T=parseInt(this._get(e,"firstDay"),10);T=isNaN(T)?0:T;var N=this._get(e,"showWeek"),C=this._get(e,"dayNames"),k=this._get(e,"dayNamesShort"),L=this._get(e,"dayNamesMin"),A=this._get(e,"monthNames"),O=this._get(e,"monthNamesShort"),M=this._get(e,"beforeShowDay"),_=this._get(e,"showOtherMonths"),D=this._get(e,"selectOtherMonths"),P=this._get(e,"calculateWeek")||this.iso8601Week,H=this._getDefaultDate(e),B="";for(var j=0;j<o[0];j++){var F="";this.maxRows=4;for(var I=0;I<o[1];I++){var q=this._daylightSavingAdjust(new Date(d,p,e.selectedDay)),R=" ui-corner-all",U="";if(f){U+='<div class="ui-datepicker-group';if(o[1]>1)switch(I){case 0:U+=" ui-datepicker-group-first",R=" ui-corner-"+(n?"right":"left");break;case o[1]-1:U+=" ui-datepicker-group-last",R=" ui-corner-"+(n?"left":"right");break;default:U+=" ui-datepicker-group-middle",R=""}U+='">'}U+='<div class="ui-datepicker-header ui-widget-header ui-helper-clearfix'+R+'">'+(/all|left/.test(R)&&j==0?n?b:g:"")+(/all|right/.test(R)&&j==0?n?g:b:"")+this._generateMonthYearHeader(e,p,d,c,h,j>0||I>0,A,O)+'</div><table class="ui-datepicker-calendar"><thead>'+"<tr>";var z=N?'<th class="ui-datepicker-week-col">'+this._get(e,"weekHeader")+"</th>":"";for(var W=0;W<7;W++){var X=(W+T)%7;z+="<th"+((W+T+6)%7>=5?' class="ui-datepicker-week-end"':"")+">"+'<span title="'+C[X]+'">'+L[X]+"</span></th>"}U+=z+"</tr></thead><tbody>";var V=this._getDaysInMonth(d,p);d==e.selectedYear&&p==e.selectedMonth&&(e.selectedDay=Math.min(e.selectedDay,V));var J=(this._getFirstDayOfMonth(d,p)-T+7)%7,K=Math.ceil((J+V)/7),Q=f?this.maxRows>K?this.maxRows:K:K;this.maxRows=Q;var G=this._daylightSavingAdjust(new Date(d,p,1-J));for(var Y=0;Y<Q;Y++){U+="<tr>";var Z=N?'<td class="ui-datepicker-week-col">'+this._get(e,"calculateWeek")(G)+"</td>":"";for(var W=0;W<7;W++){var et=M?M.apply(e.input?e.input[0]:null,[G]):[!0,""],tt=G.getMonth()!=p,nt=tt&&!D||!et[0]||c&&G<c||h&&G>h;Z+='<td class="'+((W+T+6)%7>=5?" ui-datepicker-week-end":"")+(tt?" ui-datepicker-other-month":"")+(G.getTime()==q.getTime()&&p==e.selectedMonth&&e._keyEvent||H.getTime()==G.getTime()&&H.getTime()==q.getTime()?" "+this._dayOverClass:"")+(nt?" "+this._unselectableClass+" ui-state-disabled":"")+(tt&&!_?"":" "+et[1]+(G.getTime()==l.getTime()?" "+this._currentClass:"")+(G.getTime()==t.getTime()?" ui-datepicker-today":""))+'"'+((!tt||_)&&et[2]?' title="'+et[2]+'"':"")+(nt?"":' data-handler="selectDay" data-event="click" data-month="'+G.getMonth()+'" data-year="'+G.getFullYear()+'"')+">"+(tt&&!_?"&#xa0;":nt?'<span class="ui-state-default">'+G.getDate()+"</span>":'<a class="ui-state-default'+(G.getTime()==t.getTime()?" ui-state-highlight":"")+(G.getTime()==l.getTime()?" ui-state-active":"")+(tt?" ui-priority-secondary":"")+'" href="#">'+G.getDate()+"</a>")+"</td>",G.setDate(G.getDate()+1),G=this._daylightSavingAdjust(G)}U+=Z+"</tr>"}p++,p>11&&(p=0,d++),U+="</tbody></table>"+(f?"</div>"+(o[0]>0&&I==o[1]-1?'<div class="ui-datepicker-row-break"></div>':""):""),F+=U}B+=F}return B+=x+($.ui.ie6&&!e.inline?'<iframe src="javascript:false;" class="ui-datepicker-cover" frameborder="0"></iframe>':""),e._keyEvent=!1,B},_generateMonthYearHeader:function(e,t,n,r,i,s,o,u){var a=this._get(e,"changeMonth"),f=this._get(e,"changeYear"),l=this._get(e,"showMonthAfterYear"),c='<div class="ui-datepicker-title">',h="";if(s||!a)h+='<span class="ui-datepicker-month">'+o[t]+"</span>";else{var p=r&&r.getFullYear()==n,d=i&&i.getFullYear()==n;h+='<select class="ui-datepicker-month" data-handler="selectMonth" data-event="change">';for(var v=0;v<12;v++)(!p||v>=r.getMonth())&&(!d||v<=i.getMonth())&&(h+='<option value="'+v+'"'+(v==t?' selected="selected"':"")+">"+u[v]+"</option>");h+="</select>"}l||(c+=h+(s||!a||!f?"&#xa0;":""));if(!e.yearshtml){e.yearshtml="";if(s||!f)c+='<span class="ui-datepicker-year">'+n+"</span>";else{var m=this._get(e,"yearRange").split(":"),g=(new Date).getFullYear(),y=function(e){var t=e.match(/c[+-].*/)?n+parseInt(e.substring(1),10):e.match(/[+-].*/)?g+parseInt(e,10):parseInt(e,10);return isNaN(t)?g:t},b=y(m[0]),w=Math.max(b,y(m[1]||""));b=r?Math.max(b,r.getFullYear()):b,w=i?Math.min(w,i.getFullYear()):w,e.yearshtml+='<select class="ui-datepicker-year" data-handler="selectYear" data-event="change">';for(;b<=w;b++)e.yearshtml+='<option value="'+b+'"'+(b==n?' selected="selected"':"")+">"+b+"</option>";e.yearshtml+="</select>",c+=e.yearshtml,e.yearshtml=null}}return c+=this._get(e,"yearSuffix"),l&&(c+=(s||!a||!f?"&#xa0;":"")+h),c+="</div>",c},_adjustInstDate:function(e,t,n){var r=e.drawYear+(n=="Y"?t:0),i=e.drawMonth+(n=="M"?t:0),s=Math.min(e.selectedDay,this._getDaysInMonth(r,i))+(n=="D"?t:0),o=this._restrictMinMax(e,this._daylightSavingAdjust(new Date(r,i,s)));e.selectedDay=o.getDate(),e.drawMonth=e.selectedMonth=o.getMonth(),e.drawYear=e.selectedYear=o.getFullYear(),(n=="M"||n=="Y")&&this._notifyChange(e)},_restrictMinMax:function(e,t){var n=this._getMinMaxDate(e,"min"),r=this._getMinMaxDate(e,"max"),i=n&&t<n?n:t;return i=r&&i>r?r:i,i},_notifyChange:function(e){var t=this._get(e,"onChangeMonthYear");t&&t.apply(e.input?e.input[0]:null,[e.selectedYear,e.selectedMonth+1,e])},_getNumberOfMonths:function(e){var t=this._get(e,"numberOfMonths");return t==null?[1,1]:typeof t=="number"?[1,t]:t},_getMinMaxDate:function(e,t){return this._determineDate(e,this._get(e,t+"Date"),null)},_getDaysInMonth:function(e,t){return 32-this._daylightSavingAdjust(new Date(e,t,32)).getDate()},_getFirstDayOfMonth:function(e,t){return(new Date(e,t,1)).getDay()},_canAdjustMonth:function(e,t,n,r){var i=this._getNumberOfMonths(e),s=this._daylightSavingAdjust(new Date(n,r+(t<0?t:i[0]*i[1]),1));return t<0&&s.setDate(this._getDaysInMonth(s.getFullYear(),s.getMonth())),this._isInRange(e,s)},_isInRange:function(e,t){var n=this._getMinMaxDate(e,"min"),r=this._getMinMaxDate(e,"max");return(!n||t.getTime()>=n.getTime())&&(!r||t.getTime()<=r.getTime())},_getFormatConfig:function(e){var t=this._get(e,"shortYearCutoff");return t=typeof t!="string"?t:(new Date).getFullYear()%100+parseInt(t,10),{shortYearCutoff:t,dayNamesShort:this._get(e,"dayNamesShort"),dayNames:this._get(e,"dayNames"),monthNamesShort:this._get(e,"monthNamesShort"),monthNames:this._get(e,"monthNames")}},_formatDate:function(e,t,n,r){t||(e.currentDay=e.selectedDay,e.currentMonth=e.selectedMonth,e.currentYear=e.selectedYear);var i=t?typeof t=="object"?t:this._daylightSavingAdjust(new Date(r,n,t)):this._daylightSavingAdjust(new Date(e.currentYear,e.currentMonth,e.currentDay));return this.formatDate(this._get(e,"dateFormat"),i,this._getFormatConfig(e))}}),$.fn.datepicker=function(e){if(!this.length)return this;$.datepicker.initialized||($(document).mousedown($.datepicker._checkExternalClick).find(document.body).append($.datepicker.dpDiv),$.datepicker.initialized=!0);var t=Array.prototype.slice.call(arguments,1);return typeof e!="string"||e!="isDisabled"&&e!="getDate"&&e!="widget"?e=="option"&&arguments.length==2&&typeof arguments[1]=="string"?$.datepicker["_"+e+"Datepicker"].apply($.datepicker,[this[0]].concat(t)):this.each(function(){typeof e=="string"?$.datepicker["_"+e+"Datepicker"].apply($.datepicker,[this].concat(t)):$.datepicker._attachDatepicker(this,e)}):$.datepicker["_"+e+"Datepicker"].apply($.datepicker,[this[0]].concat(t))},$.datepicker=new Datepicker,$.datepicker.initialized=!1,$.datepicker.uuid=(new Date).getTime(),$.datepicker.version="1.9.2",window["DP_jQuery_"+dpuuid]=$})(jQuery);
\ No newline at end of file
--- a/web/wp-includes/js/jquery/ui/jquery.ui.dialog.min.js	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/js/jquery/ui/jquery.ui.dialog.min.js	Wed Dec 19 17:46:52 2012 -0800
@@ -1,5 +1,5 @@
-/*! jQuery UI - v1.8.20 - 2012-04-30
-* https://github.com/jquery/jquery-ui
+/*! jQuery UI - v1.9.2 - 2012-11-23
+* http://jqueryui.com
 * Includes: jquery.ui.dialog.js
-* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */
-(function(a,b){var c="ui-dialog ui-widget ui-widget-content ui-corner-all ",d={buttons:!0,height:!0,maxHeight:!0,maxWidth:!0,minHeight:!0,minWidth:!0,width:!0},e={maxHeight:!0,maxWidth:!0,minHeight:!0,minWidth:!0},f=a.attrFn||{val:!0,css:!0,html:!0,text:!0,data:!0,width:!0,height:!0,offset:!0,click:!0};a.widget("ui.dialog",{options:{autoOpen:!0,buttons:{},closeOnEscape:!0,closeText:"close",dialogClass:"",draggable:!0,hide:null,height:"auto",maxHeight:!1,maxWidth:!1,minHeight:150,minWidth:150,modal:!1,position:{my:"center",at:"center",collision:"fit",using:function(b){var c=a(this).css(b).offset().top;c<0&&a(this).css("top",b.top-c)}},resizable:!0,show:null,stack:!0,title:"",width:300,zIndex:1e3},_create:function(){this.originalTitle=this.element.attr("title"),typeof this.originalTitle!="string"&&(this.originalTitle=""),this.options.title=this.options.title||this.originalTitle;var b=this,d=b.options,e=d.title||"&#160;",f=a.ui.dialog.getTitleId(b.element),g=(b.uiDialog=a("<div></div>")).appendTo(document.body).hide().addClass(c+d.dialogClass).css({zIndex:d.zIndex}).attr("tabIndex",-1).css("outline",0).keydown(function(c){d.closeOnEscape&&!c.isDefaultPrevented()&&c.keyCode&&c.keyCode===a.ui.keyCode.ESCAPE&&(b.close(c),c.preventDefault())}).attr({role:"dialog","aria-labelledby":f}).mousedown(function(a){b.moveToTop(!1,a)}),h=b.element.show().removeAttr("title").addClass("ui-dialog-content ui-widget-content").appendTo(g),i=(b.uiDialogTitlebar=a("<div></div>")).addClass("ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix").prependTo(g),j=a('<a href="#"></a>').addClass("ui-dialog-titlebar-close ui-corner-all").attr("role","button").hover(function(){j.addClass("ui-state-hover")},function(){j.removeClass("ui-state-hover")}).focus(function(){j.addClass("ui-state-focus")}).blur(function(){j.removeClass("ui-state-focus")}).click(function(a){return b.close(a),!1}).appendTo(i),k=(b.uiDialogTitlebarCloseText=a("<span></span>")).addClass("ui-icon ui-icon-closethick").text(d.closeText).appendTo(j),l=a("<span></span>").addClass("ui-dialog-title").attr("id",f).html(e).prependTo(i);a.isFunction(d.beforeclose)&&!a.isFunction(d.beforeClose)&&(d.beforeClose=d.beforeclose),i.find("*").add(i).disableSelection(),d.draggable&&a.fn.draggable&&b._makeDraggable(),d.resizable&&a.fn.resizable&&b._makeResizable(),b._createButtons(d.buttons),b._isOpen=!1,a.fn.bgiframe&&g.bgiframe()},_init:function(){this.options.autoOpen&&this.open()},destroy:function(){var a=this;return a.overlay&&a.overlay.destroy(),a.uiDialog.hide(),a.element.unbind(".dialog").removeData("dialog").removeClass("ui-dialog-content ui-widget-content").hide().appendTo("body"),a.uiDialog.remove(),a.originalTitle&&a.element.attr("title",a.originalTitle),a},widget:function(){return this.uiDialog},close:function(b){var c=this,d,e;if(!1===c._trigger("beforeClose",b))return;return c.overlay&&c.overlay.destroy(),c.uiDialog.unbind("keypress.ui-dialog"),c._isOpen=!1,c.options.hide?c.uiDialog.hide(c.options.hide,function(){c._trigger("close",b)}):(c.uiDialog.hide(),c._trigger("close",b)),a.ui.dialog.overlay.resize(),c.options.modal&&(d=0,a(".ui-dialog").each(function(){this!==c.uiDialog[0]&&(e=a(this).css("z-index"),isNaN(e)||(d=Math.max(d,e)))}),a.ui.dialog.maxZ=d),c},isOpen:function(){return this._isOpen},moveToTop:function(b,c){var d=this,e=d.options,f;return e.modal&&!b||!e.stack&&!e.modal?d._trigger("focus",c):(e.zIndex>a.ui.dialog.maxZ&&(a.ui.dialog.maxZ=e.zIndex),d.overlay&&(a.ui.dialog.maxZ+=1,d.overlay.$el.css("z-index",a.ui.dialog.overlay.maxZ=a.ui.dialog.maxZ)),f={scrollTop:d.element.scrollTop(),scrollLeft:d.element.scrollLeft()},a.ui.dialog.maxZ+=1,d.uiDialog.css("z-index",a.ui.dialog.maxZ),d.element.attr(f),d._trigger("focus",c),d)},open:function(){if(this._isOpen)return;var b=this,c=b.options,d=b.uiDialog;return b.overlay=c.modal?new a.ui.dialog.overlay(b):null,b._size(),b._position(c.position),d.show(c.show),b.moveToTop(!0),c.modal&&d.bind("keydown.ui-dialog",function(b){if(b.keyCode!==a.ui.keyCode.TAB)return;var c=a(":tabbable",this),d=c.filter(":first"),e=c.filter(":last");if(b.target===e[0]&&!b.shiftKey)return d.focus(1),!1;if(b.target===d[0]&&b.shiftKey)return e.focus(1),!1}),a(b.element.find(":tabbable").get().concat(d.find(".ui-dialog-buttonpane :tabbable").get().concat(d.get()))).eq(0).focus(),b._isOpen=!0,b._trigger("open"),b},_createButtons:function(b){var c=this,d=!1,e=a("<div></div>").addClass("ui-dialog-buttonpane ui-widget-content ui-helper-clearfix"),g=a("<div></div>").addClass("ui-dialog-buttonset").appendTo(e);c.uiDialog.find(".ui-dialog-buttonpane").remove(),typeof b=="object"&&b!==null&&a.each(b,function(){return!(d=!0)}),d&&(a.each(b,function(b,d){d=a.isFunction(d)?{click:d,text:b}:d;var e=a('<button type="button"></button>').click(function(){d.click.apply(c.element[0],arguments)}).appendTo(g);a.each(d,function(a,b){if(a==="click")return;a in f?e[a](b):e.attr(a,b)}),a.fn.button&&e.button()}),e.appendTo(c.uiDialog))},_makeDraggable:function(){function f(a){return{position:a.position,offset:a.offset}}var b=this,c=b.options,d=a(document),e;b.uiDialog.draggable({cancel:".ui-dialog-content, .ui-dialog-titlebar-close",handle:".ui-dialog-titlebar",containment:"document",start:function(d,g){e=c.height==="auto"?"auto":a(this).height(),a(this).height(a(this).height()).addClass("ui-dialog-dragging"),b._trigger("dragStart",d,f(g))},drag:function(a,c){b._trigger("drag",a,f(c))},stop:function(g,h){c.position=[h.position.left-d.scrollLeft(),h.position.top-d.scrollTop()],a(this).removeClass("ui-dialog-dragging").height(e),b._trigger("dragStop",g,f(h)),a.ui.dialog.overlay.resize()}})},_makeResizable:function(c){function h(a){return{originalPosition:a.originalPosition,originalSize:a.originalSize,position:a.position,size:a.size}}c=c===b?this.options.resizable:c;var d=this,e=d.options,f=d.uiDialog.css("position"),g=typeof c=="string"?c:"n,e,s,w,se,sw,ne,nw";d.uiDialog.resizable({cancel:".ui-dialog-content",containment:"document",alsoResize:d.element,maxWidth:e.maxWidth,maxHeight:e.maxHeight,minWidth:e.minWidth,minHeight:d._minHeight(),handles:g,start:function(b,c){a(this).addClass("ui-dialog-resizing"),d._trigger("resizeStart",b,h(c))},resize:function(a,b){d._trigger("resize",a,h(b))},stop:function(b,c){a(this).removeClass("ui-dialog-resizing"),e.height=a(this).height(),e.width=a(this).width(),d._trigger("resizeStop",b,h(c)),a.ui.dialog.overlay.resize()}}).css("position",f).find(".ui-resizable-se").addClass("ui-icon ui-icon-grip-diagonal-se")},_minHeight:function(){var a=this.options;return a.height==="auto"?a.minHeight:Math.min(a.minHeight,a.height)},_position:function(b){var c=[],d=[0,0],e;if(b){if(typeof b=="string"||typeof b=="object"&&"0"in b)c=b.split?b.split(" "):[b[0],b[1]],c.length===1&&(c[1]=c[0]),a.each(["left","top"],function(a,b){+c[a]===c[a]&&(d[a]=c[a],c[a]=b)}),b={my:c.join(" "),at:c.join(" "),offset:d.join(" ")};b=a.extend({},a.ui.dialog.prototype.options.position,b)}else b=a.ui.dialog.prototype.options.position;e=this.uiDialog.is(":visible"),e||this.uiDialog.show(),this.uiDialog.css({top:0,left:0}).position(a.extend({of:window},b)),e||this.uiDialog.hide()},_setOptions:function(b){var c=this,f={},g=!1;a.each(b,function(a,b){c._setOption(a,b),a in d&&(g=!0),a in e&&(f[a]=b)}),g&&this._size(),this.uiDialog.is(":data(resizable)")&&this.uiDialog.resizable("option",f)},_setOption:function(b,d){var e=this,f=e.uiDialog;switch(b){case"beforeclose":b="beforeClose";break;case"buttons":e._createButtons(d);break;case"closeText":e.uiDialogTitlebarCloseText.text(""+d);break;case"dialogClass":f.removeClass(e.options.dialogClass).addClass(c+d);break;case"disabled":d?f.addClass("ui-dialog-disabled"):f.removeClass("ui-dialog-disabled");break;case"draggable":var g=f.is(":data(draggable)");g&&!d&&f.draggable("destroy"),!g&&d&&e._makeDraggable();break;case"position":e._position(d);break;case"resizable":var h=f.is(":data(resizable)");h&&!d&&f.resizable("destroy"),h&&typeof d=="string"&&f.resizable("option","handles",d),!h&&d!==!1&&e._makeResizable(d);break;case"title":a(".ui-dialog-title",e.uiDialogTitlebar).html(""+(d||"&#160;"))}a.Widget.prototype._setOption.apply(e,arguments)},_size:function(){var b=this.options,c,d,e=this.uiDialog.is(":visible");this.element.show().css({width:"auto",minHeight:0,height:0}),b.minWidth>b.width&&(b.width=b.minWidth),c=this.uiDialog.css({height:"auto",width:b.width}).height(),d=Math.max(0,b.minHeight-c);if(b.height==="auto")if(a.support.minHeight)this.element.css({minHeight:d,height:"auto"});else{this.uiDialog.show();var f=this.element.css("height","auto").height();e||this.uiDialog.hide(),this.element.height(Math.max(f,d))}else this.element.height(Math.max(b.height-c,0));this.uiDialog.is(":data(resizable)")&&this.uiDialog.resizable("option","minHeight",this._minHeight())}}),a.extend(a.ui.dialog,{version:"1.8.20",uuid:0,maxZ:0,getTitleId:function(a){var b=a.attr("id");return b||(this.uuid+=1,b=this.uuid),"ui-dialog-title-"+b},overlay:function(b){this.$el=a.ui.dialog.overlay.create(b)}}),a.extend(a.ui.dialog.overlay,{instances:[],oldInstances:[],maxZ:0,events:a.map("focus,mousedown,mouseup,keydown,keypress,click".split(","),function(a){return a+".dialog-overlay"}).join(" "),create:function(b){this.instances.length===0&&(setTimeout(function(){a.ui.dialog.overlay.instances.length&&a(document).bind(a.ui.dialog.overlay.events,function(b){if(a(b.target).zIndex()<a.ui.dialog.overlay.maxZ)return!1})},1),a(document).bind("keydown.dialog-overlay",function(c){b.options.closeOnEscape&&!c.isDefaultPrevented()&&c.keyCode&&c.keyCode===a.ui.keyCode.ESCAPE&&(b.close(c),c.preventDefault())}),a(window).bind("resize.dialog-overlay",a.ui.dialog.overlay.resize));var c=(this.oldInstances.pop()||a("<div></div>").addClass("ui-widget-overlay")).appendTo(document.body).css({width:this.width(),height:this.height()});return a.fn.bgiframe&&c.bgiframe(),this.instances.push(c),c},destroy:function(b){var c=a.inArray(b,this.instances);c!=-1&&this.oldInstances.push(this.instances.splice(c,1)[0]),this.instances.length===0&&a([document,window]).unbind(".dialog-overlay"),b.remove();var d=0;a.each(this.instances,function(){d=Math.max(d,this.css("z-index"))}),this.maxZ=d},height:function(){var b,c;return a.browser.msie&&a.browser.version<7?(b=Math.max(document.documentElement.scrollHeight,document.body.scrollHeight),c=Math.max(document.documentElement.offsetHeight,document.body.offsetHeight),b<c?a(window).height()+"px":b+"px"):a(document).height()+"px"},width:function(){var b,c;return a.browser.msie?(b=Math.max(document.documentElement.scrollWidth,document.body.scrollWidth),c=Math.max(document.documentElement.offsetWidth,document.body.offsetWidth),b<c?a(window).width()+"px":b+"px"):a(document).width()+"px"},resize:function(){var b=a([]);a.each(a.ui.dialog.overlay.instances,function(){b=b.add(this)}),b.css({width:0,height:0}).css({width:a.ui.dialog.overlay.width(),height:a.ui.dialog.overlay.height()})}}),a.extend(a.ui.dialog.overlay.prototype,{destroy:function(){a.ui.dialog.overlay.destroy(this.$el)}})})(jQuery);
\ No newline at end of file
+* Copyright 2012 jQuery Foundation and other contributors; Licensed MIT */
+(function(e,t){var n="ui-dialog ui-widget ui-widget-content ui-corner-all ",r={buttons:!0,height:!0,maxHeight:!0,maxWidth:!0,minHeight:!0,minWidth:!0,width:!0},i={maxHeight:!0,maxWidth:!0,minHeight:!0,minWidth:!0};e.widget("ui.dialog",{version:"1.9.2",options:{autoOpen:!0,buttons:{},closeOnEscape:!0,closeText:"close",dialogClass:"",draggable:!0,hide:null,height:"auto",maxHeight:!1,maxWidth:!1,minHeight:150,minWidth:150,modal:!1,position:{my:"center",at:"center",of:window,collision:"fit",using:function(t){var n=e(this).css(t).offset().top;n<0&&e(this).css("top",t.top-n)}},resizable:!0,show:null,stack:!0,title:"",width:300,zIndex:1e3},_create:function(){this.originalTitle=this.element.attr("title"),typeof this.originalTitle!="string"&&(this.originalTitle=""),this.oldPosition={parent:this.element.parent(),index:this.element.parent().children().index(this.element)},this.options.title=this.options.title||this.originalTitle;var t=this,r=this.options,i=r.title||"&#160;",s,o,u,a,f;s=(this.uiDialog=e("<div>")).addClass(n+r.dialogClass).css({display:"none",outline:0,zIndex:r.zIndex}).attr("tabIndex",-1).keydown(function(n){r.closeOnEscape&&!n.isDefaultPrevented()&&n.keyCode&&n.keyCode===e.ui.keyCode.ESCAPE&&(t.close(n),n.preventDefault())}).mousedown(function(e){t.moveToTop(!1,e)}).appendTo("body"),this.element.show().removeAttr("title").addClass("ui-dialog-content ui-widget-content").appendTo(s),o=(this.uiDialogTitlebar=e("<div>")).addClass("ui-dialog-titlebar  ui-widget-header  ui-corner-all  ui-helper-clearfix").bind("mousedown",function(){s.focus()}).prependTo(s),u=e("<a href='#'></a>").addClass("ui-dialog-titlebar-close  ui-corner-all").attr("role","button").click(function(e){e.preventDefault(),t.close(e)}).appendTo(o),(this.uiDialogTitlebarCloseText=e("<span>")).addClass("ui-icon ui-icon-closethick").text(r.closeText).appendTo(u),a=e("<span>").uniqueId().addClass("ui-dialog-title").html(i).prependTo(o),f=(this.uiDialogButtonPane=e("<div>")).addClass("ui-dialog-buttonpane ui-widget-content ui-helper-clearfix"),(this.uiButtonSet=e("<div>")).addClass("ui-dialog-buttonset").appendTo(f),s.attr({role:"dialog","aria-labelledby":a.attr("id")}),o.find("*").add(o).disableSelection(),this._hoverable(u),this._focusable(u),r.draggable&&e.fn.draggable&&this._makeDraggable(),r.resizable&&e.fn.resizable&&this._makeResizable(),this._createButtons(r.buttons),this._isOpen=!1,e.fn.bgiframe&&s.bgiframe(),this._on(s,{keydown:function(t){if(!r.modal||t.keyCode!==e.ui.keyCode.TAB)return;var n=e(":tabbable",s),i=n.filter(":first"),o=n.filter(":last");if(t.target===o[0]&&!t.shiftKey)return i.focus(1),!1;if(t.target===i[0]&&t.shiftKey)return o.focus(1),!1}})},_init:function(){this.options.autoOpen&&this.open()},_destroy:function(){var e,t=this.oldPosition;this.overlay&&this.overlay.destroy(),this.uiDialog.hide(),this.element.removeClass("ui-dialog-content ui-widget-content").hide().appendTo("body"),this.uiDialog.remove(),this.originalTitle&&this.element.attr("title",this.originalTitle),e=t.parent.children().eq(t.index),e.length&&e[0]!==this.element[0]?e.before(this.element):t.parent.append(this.element)},widget:function(){return this.uiDialog},close:function(t){var n=this,r,i;if(!this._isOpen)return;if(!1===this._trigger("beforeClose",t))return;return this._isOpen=!1,this.overlay&&this.overlay.destroy(),this.options.hide?this._hide(this.uiDialog,this.options.hide,function(){n._trigger("close",t)}):(this.uiDialog.hide(),this._trigger("close",t)),e.ui.dialog.overlay.resize(),this.options.modal&&(r=0,e(".ui-dialog").each(function(){this!==n.uiDialog[0]&&(i=e(this).css("z-index"),isNaN(i)||(r=Math.max(r,i)))}),e.ui.dialog.maxZ=r),this},isOpen:function(){return this._isOpen},moveToTop:function(t,n){var r=this.options,i;return r.modal&&!t||!r.stack&&!r.modal?this._trigger("focus",n):(r.zIndex>e.ui.dialog.maxZ&&(e.ui.dialog.maxZ=r.zIndex),this.overlay&&(e.ui.dialog.maxZ+=1,e.ui.dialog.overlay.maxZ=e.ui.dialog.maxZ,this.overlay.$el.css("z-index",e.ui.dialog.overlay.maxZ)),i={scrollTop:this.element.scrollTop(),scrollLeft:this.element.scrollLeft()},e.ui.dialog.maxZ+=1,this.uiDialog.css("z-index",e.ui.dialog.maxZ),this.element.attr(i),this._trigger("focus",n),this)},open:function(){if(this._isOpen)return;var t,n=this.options,r=this.uiDialog;return this._size(),this._position(n.position),r.show(n.show),this.overlay=n.modal?new e.ui.dialog.overlay(this):null,this.moveToTop(!0),t=this.element.find(":tabbable"),t.length||(t=this.uiDialogButtonPane.find(":tabbable"),t.length||(t=r)),t.eq(0).focus(),this._isOpen=!0,this._trigger("open"),this},_createButtons:function(t){var n=this,r=!1;this.uiDialogButtonPane.remove(),this.uiButtonSet.empty(),typeof t=="object"&&t!==null&&e.each(t,function(){return!(r=!0)}),r?(e.each(t,function(t,r){var i,s;r=e.isFunction(r)?{click:r,text:t}:r,r=e.extend({type:"button"},r),s=r.click,r.click=function(){s.apply(n.element[0],arguments)},i=e("<button></button>",r).appendTo(n.uiButtonSet),e.fn.button&&i.button()}),this.uiDialog.addClass("ui-dialog-buttons"),this.uiDialogButtonPane.appendTo(this.uiDialog)):this.uiDialog.removeClass("ui-dialog-buttons")},_makeDraggable:function(){function r(e){return{position:e.position,offset:e.offset}}var t=this,n=this.options;this.uiDialog.draggable({cancel:".ui-dialog-content, .ui-dialog-titlebar-close",handle:".ui-dialog-titlebar",containment:"document",start:function(n,i){e(this).addClass("ui-dialog-dragging"),t._trigger("dragStart",n,r(i))},drag:function(e,n){t._trigger("drag",e,r(n))},stop:function(i,s){n.position=[s.position.left-t.document.scrollLeft(),s.position.top-t.document.scrollTop()],e(this).removeClass("ui-dialog-dragging"),t._trigger("dragStop",i,r(s)),e.ui.dialog.overlay.resize()}})},_makeResizable:function(n){function u(e){return{originalPosition:e.originalPosition,originalSize:e.originalSize,position:e.position,size:e.size}}n=n===t?this.options.resizable:n;var r=this,i=this.options,s=this.uiDialog.css("position"),o=typeof n=="string"?n:"n,e,s,w,se,sw,ne,nw";this.uiDialog.resizable({cancel:".ui-dialog-content",containment:"document",alsoResize:this.element,maxWidth:i.maxWidth,maxHeight:i.maxHeight,minWidth:i.minWidth,minHeight:this._minHeight(),handles:o,start:function(t,n){e(this).addClass("ui-dialog-resizing"),r._trigger("resizeStart",t,u(n))},resize:function(e,t){r._trigger("resize",e,u(t))},stop:function(t,n){e(this).removeClass("ui-dialog-resizing"),i.height=e(this).height(),i.width=e(this).width(),r._trigger("resizeStop",t,u(n)),e.ui.dialog.overlay.resize()}}).css("position",s).find(".ui-resizable-se").addClass("ui-icon ui-icon-grip-diagonal-se")},_minHeight:function(){var e=this.options;return e.height==="auto"?e.minHeight:Math.min(e.minHeight,e.height)},_position:function(t){var n=[],r=[0,0],i;if(t){if(typeof t=="string"||typeof t=="object"&&"0"in t)n=t.split?t.split(" "):[t[0],t[1]],n.length===1&&(n[1]=n[0]),e.each(["left","top"],function(e,t){+n[e]===n[e]&&(r[e]=n[e],n[e]=t)}),t={my:n[0]+(r[0]<0?r[0]:"+"+r[0])+" "+n[1]+(r[1]<0?r[1]:"+"+r[1]),at:n.join(" ")};t=e.extend({},e.ui.dialog.prototype.options.position,t)}else t=e.ui.dialog.prototype.options.position;i=this.uiDialog.is(":visible"),i||this.uiDialog.show(),this.uiDialog.position(t),i||this.uiDialog.hide()},_setOptions:function(t){var n=this,s={},o=!1;e.each(t,function(e,t){n._setOption(e,t),e in r&&(o=!0),e in i&&(s[e]=t)}),o&&this._size(),this.uiDialog.is(":data(resizable)")&&this.uiDialog.resizable("option",s)},_setOption:function(t,r){var i,s,o=this.uiDialog;switch(t){case"buttons":this._createButtons(r);break;case"closeText":this.uiDialogTitlebarCloseText.text(""+r);break;case"dialogClass":o.removeClass(this.options.dialogClass).addClass(n+r);break;case"disabled":r?o.addClass("ui-dialog-disabled"):o.removeClass("ui-dialog-disabled");break;case"draggable":i=o.is(":data(draggable)"),i&&!r&&o.draggable("destroy"),!i&&r&&this._makeDraggable();break;case"position":this._position(r);break;case"resizable":s=o.is(":data(resizable)"),s&&!r&&o.resizable("destroy"),s&&typeof r=="string"&&o.resizable("option","handles",r),!s&&r!==!1&&this._makeResizable(r);break;case"title":e(".ui-dialog-title",this.uiDialogTitlebar).html(""+(r||"&#160;"))}this._super(t,r)},_size:function(){var t,n,r,i=this.options,s=this.uiDialog.is(":visible");this.element.show().css({width:"auto",minHeight:0,height:0}),i.minWidth>i.width&&(i.width=i.minWidth),t=this.uiDialog.css({height:"auto",width:i.width}).outerHeight(),n=Math.max(0,i.minHeight-t),i.height==="auto"?e.support.minHeight?this.element.css({minHeight:n,height:"auto"}):(this.uiDialog.show(),r=this.element.css("height","auto").height(),s||this.uiDialog.hide(),this.element.height(Math.max(r,n))):this.element.height(Math.max(i.height-t,0)),this.uiDialog.is(":data(resizable)")&&this.uiDialog.resizable("option","minHeight",this._minHeight())}}),e.extend(e.ui.dialog,{uuid:0,maxZ:0,getTitleId:function(e){var t=e.attr("id");return t||(this.uuid+=1,t=this.uuid),"ui-dialog-title-"+t},overlay:function(t){this.$el=e.ui.dialog.overlay.create(t)}}),e.extend(e.ui.dialog.overlay,{instances:[],oldInstances:[],maxZ:0,events:e.map("focus,mousedown,mouseup,keydown,keypress,click".split(","),function(e){return e+".dialog-overlay"}).join(" "),create:function(t){this.instances.length===0&&(setTimeout(function(){e.ui.dialog.overlay.instances.length&&e(document).bind(e.ui.dialog.overlay.events,function(t){if(e(t.target).zIndex()<e.ui.dialog.overlay.maxZ)return!1})},1),e(window).bind("resize.dialog-overlay",e.ui.dialog.overlay.resize));var n=this.oldInstances.pop()||e("<div>").addClass("ui-widget-overlay");return e(document).bind("keydown.dialog-overlay",function(r){var i=e.ui.dialog.overlay.instances;i.length!==0&&i[i.length-1]===n&&t.options.closeOnEscape&&!r.isDefaultPrevented()&&r.keyCode&&r.keyCode===e.ui.keyCode.ESCAPE&&(t.close(r),r.preventDefault())}),n.appendTo(document.body).css({width:this.width(),height:this.height()}),e.fn.bgiframe&&n.bgiframe(),this.instances.push(n),n},destroy:function(t){var n=e.inArray(t,this.instances),r=0;n!==-1&&this.oldInstances.push(this.instances.splice(n,1)[0]),this.instances.length===0&&e([document,window]).unbind(".dialog-overlay"),t.height(0).width(0).remove(),e.each(this.instances,function(){r=Math.max(r,this.css("z-index"))}),this.maxZ=r},height:function(){var t,n;return e.ui.ie?(t=Math.max(document.documentElement.scrollHeight,document.body.scrollHeight),n=Math.max(document.documentElement.offsetHeight,document.body.offsetHeight),t<n?e(window).height()+"px":t+"px"):e(document).height()+"px"},width:function(){var t,n;return e.ui.ie?(t=Math.max(document.documentElement.scrollWidth,document.body.scrollWidth),n=Math.max(document.documentElement.offsetWidth,document.body.offsetWidth),t<n?e(window).width()+"px":t+"px"):e(document).width()+"px"},resize:function(){var t=e([]);e.each(e.ui.dialog.overlay.instances,function(){t=t.add(this)}),t.css({width:0,height:0}).css({width:e.ui.dialog.overlay.width(),height:e.ui.dialog.overlay.height()})}}),e.extend(e.ui.dialog.overlay.prototype,{destroy:function(){e.ui.dialog.overlay.destroy(this.$el)}})})(jQuery);
\ No newline at end of file
--- a/web/wp-includes/js/jquery/ui/jquery.ui.draggable.min.js	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/js/jquery/ui/jquery.ui.draggable.min.js	Wed Dec 19 17:46:52 2012 -0800
@@ -1,5 +1,5 @@
-/*! jQuery UI - v1.8.20 - 2012-04-30
-* https://github.com/jquery/jquery-ui
+/*! jQuery UI - v1.9.2 - 2012-11-23
+* http://jqueryui.com
 * Includes: jquery.ui.draggable.js
-* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */
-(function(a,b){a.widget("ui.draggable",a.ui.mouse,{widgetEventPrefix:"drag",options:{addClasses:!0,appendTo:"parent",axis:!1,connectToSortable:!1,containment:!1,cursor:"auto",cursorAt:!1,grid:!1,handle:!1,helper:"original",iframeFix:!1,opacity:!1,refreshPositions:!1,revert:!1,revertDuration:500,scope:"default",scroll:!0,scrollSensitivity:20,scrollSpeed:20,snap:!1,snapMode:"both",snapTolerance:20,stack:!1,zIndex:!1},_create:function(){this.options.helper=="original"&&!/^(?:r|a|f)/.test(this.element.css("position"))&&(this.element[0].style.position="relative"),this.options.addClasses&&this.element.addClass("ui-draggable"),this.options.disabled&&this.element.addClass("ui-draggable-disabled"),this._mouseInit()},destroy:function(){if(!this.element.data("draggable"))return;return this.element.removeData("draggable").unbind(".draggable").removeClass("ui-draggable ui-draggable-dragging ui-draggable-disabled"),this._mouseDestroy(),this},_mouseCapture:function(b){var c=this.options;return this.helper||c.disabled||a(b.target).is(".ui-resizable-handle")?!1:(this.handle=this._getHandle(b),this.handle?(c.iframeFix&&a(c.iframeFix===!0?"iframe":c.iframeFix).each(function(){a('<div class="ui-draggable-iframeFix" style="background: #fff;"></div>').css({width:this.offsetWidth+"px",height:this.offsetHeight+"px",position:"absolute",opacity:"0.001",zIndex:1e3}).css(a(this).offset()).appendTo("body")}),!0):!1)},_mouseStart:function(b){var c=this.options;return this.helper=this._createHelper(b),this._cacheHelperProportions(),a.ui.ddmanager&&(a.ui.ddmanager.current=this),this._cacheMargins(),this.cssPosition=this.helper.css("position"),this.scrollParent=this.helper.scrollParent(),this.offset=this.positionAbs=this.element.offset(),this.offset={top:this.offset.top-this.margins.top,left:this.offset.left-this.margins.left},a.extend(this.offset,{click:{left:b.pageX-this.offset.left,top:b.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()}),this.originalPosition=this.position=this._generatePosition(b),this.originalPageX=b.pageX,this.originalPageY=b.pageY,c.cursorAt&&this._adjustOffsetFromHelper(c.cursorAt),c.containment&&this._setContainment(),this._trigger("start",b)===!1?(this._clear(),!1):(this._cacheHelperProportions(),a.ui.ddmanager&&!c.dropBehaviour&&a.ui.ddmanager.prepareOffsets(this,b),this.helper.addClass("ui-draggable-dragging"),this._mouseDrag(b,!0),a.ui.ddmanager&&a.ui.ddmanager.dragStart(this,b),!0)},_mouseDrag:function(b,c){this.position=this._generatePosition(b),this.positionAbs=this._convertPositionTo("absolute");if(!c){var d=this._uiHash();if(this._trigger("drag",b,d)===!1)return this._mouseUp({}),!1;this.position=d.position}if(!this.options.axis||this.options.axis!="y")this.helper[0].style.left=this.position.left+"px";if(!this.options.axis||this.options.axis!="x")this.helper[0].style.top=this.position.top+"px";return a.ui.ddmanager&&a.ui.ddmanager.drag(this,b),!1},_mouseStop:function(b){var c=!1;a.ui.ddmanager&&!this.options.dropBehaviour&&(c=a.ui.ddmanager.drop(this,b)),this.dropped&&(c=this.dropped,this.dropped=!1);var d=this.element[0],e=!1;while(d&&(d=d.parentNode))d==document&&(e=!0);if(!e&&this.options.helper==="original")return!1;if(this.options.revert=="invalid"&&!c||this.options.revert=="valid"&&c||this.options.revert===!0||a.isFunction(this.options.revert)&&this.options.revert.call(this.element,c)){var f=this;a(this.helper).animate(this.originalPosition,parseInt(this.options.revertDuration,10),function(){f._trigger("stop",b)!==!1&&f._clear()})}else this._trigger("stop",b)!==!1&&this._clear();return!1},_mouseUp:function(b){return this.options.iframeFix===!0&&a("div.ui-draggable-iframeFix").each(function(){this.parentNode.removeChild(this)}),a.ui.ddmanager&&a.ui.ddmanager.dragStop(this,b),a.ui.mouse.prototype._mouseUp.call(this,b)},cancel:function(){return this.helper.is(".ui-draggable-dragging")?this._mouseUp({}):this._clear(),this},_getHandle:function(b){var c=!this.options.handle||!a(this.options.handle,this.element).length?!0:!1;return a(this.options.handle,this.element).find("*").andSelf().each(function(){this==b.target&&(c=!0)}),c},_createHelper:function(b){var c=this.options,d=a.isFunction(c.helper)?a(c.helper.apply(this.element[0],[b])):c.helper=="clone"?this.element.clone().removeAttr("id"):this.element;return d.parents("body").length||d.appendTo(c.appendTo=="parent"?this.element[0].parentNode:c.appendTo),d[0]!=this.element[0]&&!/(fixed|absolute)/.test(d.css("position"))&&d.css("position","absolute"),d},_adjustOffsetFromHelper:function(b){typeof b=="string"&&(b=b.split(" ")),a.isArray(b)&&(b={left:+b[0],top:+b[1]||0}),"left"in b&&(this.offset.click.left=b.left+this.margins.left),"right"in b&&(this.offset.click.left=this.helperProportions.width-b.right+this.margins.left),"top"in b&&(this.offset.click.top=b.top+this.margins.top),"bottom"in b&&(this.offset.click.top=this.helperProportions.height-b.bottom+this.margins.top)},_getParentOffset:function(){this.offsetParent=this.helper.offsetParent();var b=this.offsetParent.offset();this.cssPosition=="absolute"&&this.scrollParent[0]!=document&&a.ui.contains(this.scrollParent[0],this.offsetParent[0])&&(b.left+=this.scrollParent.scrollLeft(),b.top+=this.scrollParent.scrollTop());if(this.offsetParent[0]==document.body||this.offsetParent[0].tagName&&this.offsetParent[0].tagName.toLowerCase()=="html"&&a.browser.msie)b={top:0,left:0};return{top:b.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:b.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if(this.cssPosition=="relative"){var a=this.element.position();return{top:a.top-(parseInt(this.helper.css("top"),10)||0)+this.scrollParent.scrollTop(),left:a.left-(parseInt(this.helper.css("left"),10)||0)+this.scrollParent.scrollLeft()}}return{top:0,left:0}},_cacheMargins:function(){this.margins={left:parseInt(this.element.css("marginLeft"),10)||0,top:parseInt(this.element.css("marginTop"),10)||0,right:parseInt(this.element.css("marginRight"),10)||0,bottom:parseInt(this.element.css("marginBottom"),10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var b=this.options;b.containment=="parent"&&(b.containment=this.helper[0].parentNode);if(b.containment=="document"||b.containment=="window")this.containment=[b.containment=="document"?0:a(window).scrollLeft()-this.offset.relative.left-this.offset.parent.left,b.containment=="document"?0:a(window).scrollTop()-this.offset.relative.top-this.offset.parent.top,(b.containment=="document"?0:a(window).scrollLeft())+a(b.containment=="document"?document:window).width()-this.helperProportions.width-this.margins.left,(b.containment=="document"?0:a(window).scrollTop())+(a(b.containment=="document"?document:window).height()||document.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top];if(!/^(document|window|parent)$/.test(b.containment)&&b.containment.constructor!=Array){var c=a(b.containment),d=c[0];if(!d)return;var e=c.offset(),f=a(d).css("overflow")!="hidden";this.containment=[(parseInt(a(d).css("borderLeftWidth"),10)||0)+(parseInt(a(d).css("paddingLeft"),10)||0),(parseInt(a(d).css("borderTopWidth"),10)||0)+(parseInt(a(d).css("paddingTop"),10)||0),(f?Math.max(d.scrollWidth,d.offsetWidth):d.offsetWidth)-(parseInt(a(d).css("borderLeftWidth"),10)||0)-(parseInt(a(d).css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left-this.margins.right,(f?Math.max(d.scrollHeight,d.offsetHeight):d.offsetHeight)-(parseInt(a(d).css("borderTopWidth"),10)||0)-(parseInt(a(d).css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top-this.margins.bottom],this.relative_container=c}else b.containment.constructor==Array&&(this.containment=b.containment)},_convertPositionTo:function(b,c){c||(c=this.position);var d=b=="absolute"?1:-1,e=this.options,f=this.cssPosition=="absolute"&&(this.scrollParent[0]==document||!a.ui.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,g=/(html|body)/i.test(f[0].tagName);return{top:c.top+this.offset.relative.top*d+this.offset.parent.top*d-(a.browser.safari&&a.browser.version<526&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollTop():g?0:f.scrollTop())*d),left:c.left+this.offset.relative.left*d+this.offset.parent.left*d-(a.browser.safari&&a.browser.version<526&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():g?0:f.scrollLeft())*d)}},_generatePosition:function(b){var c=this.options,d=this.cssPosition=="absolute"&&(this.scrollParent[0]==document||!a.ui.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,e=/(html|body)/i.test(d[0].tagName),f=b.pageX,g=b.pageY;if(this.originalPosition){var h;if(this.containment){if(this.relative_container){var i=this.relative_container.offset();h=[this.containment[0]+i.left,this.containment[1]+i.top,this.containment[2]+i.left,this.containment[3]+i.top]}else h=this.containment;b.pageX-this.offset.click.left<h[0]&&(f=h[0]+this.offset.click.left),b.pageY-this.offset.click.top<h[1]&&(g=h[1]+this.offset.click.top),b.pageX-this.offset.click.left>h[2]&&(f=h[2]+this.offset.click.left),b.pageY-this.offset.click.top>h[3]&&(g=h[3]+this.offset.click.top)}if(c.grid){var j=c.grid[1]?this.originalPageY+Math.round((g-this.originalPageY)/c.grid[1])*c.grid[1]:this.originalPageY;g=h?j-this.offset.click.top<h[1]||j-this.offset.click.top>h[3]?j-this.offset.click.top<h[1]?j+c.grid[1]:j-c.grid[1]:j:j;var k=c.grid[0]?this.originalPageX+Math.round((f-this.originalPageX)/c.grid[0])*c.grid[0]:this.originalPageX;f=h?k-this.offset.click.left<h[0]||k-this.offset.click.left>h[2]?k-this.offset.click.left<h[0]?k+c.grid[0]:k-c.grid[0]:k:k}}return{top:g-this.offset.click.top-this.offset.relative.top-this.offset.parent.top+(a.browser.safari&&a.browser.version<526&&this.cssPosition=="fixed"?0:this.cssPosition=="fixed"?-this.scrollParent.scrollTop():e?0:d.scrollTop()),left:f-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+(a.browser.safari&&a.browser.version<526&&this.cssPosition=="fixed"?0:this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():e?0:d.scrollLeft())}},_clear:function(){this.helper.removeClass("ui-draggable-dragging"),this.helper[0]!=this.element[0]&&!this.cancelHelperRemoval&&this.helper.remove(),this.helper=null,this.cancelHelperRemoval=!1},_trigger:function(b,c,d){return d=d||this._uiHash(),a.ui.plugin.call(this,b,[c,d]),b=="drag"&&(this.positionAbs=this._convertPositionTo("absolute")),a.Widget.prototype._trigger.call(this,b,c,d)},plugins:{},_uiHash:function(a){return{helper:this.helper,position:this.position,originalPosition:this.originalPosition,offset:this.positionAbs}}}),a.extend(a.ui.draggable,{version:"1.8.20"}),a.ui.plugin.add("draggable","connectToSortable",{start:function(b,c){var d=a(this).data("draggable"),e=d.options,f=a.extend({},c,{item:d.element});d.sortables=[],a(e.connectToSortable).each(function(){var c=a.data(this,"sortable");c&&!c.options.disabled&&(d.sortables.push({instance:c,shouldRevert:c.options.revert}),c.refreshPositions(),c._trigger("activate",b,f))})},stop:function(b,c){var d=a(this).data("draggable"),e=a.extend({},c,{item:d.element});a.each(d.sortables,function(){this.instance.isOver?(this.instance.isOver=0,d.cancelHelperRemoval=!0,this.instance.cancelHelperRemoval=!1,this.shouldRevert&&(this.instance.options.revert=!0),this.instance._mouseStop(b),this.instance.options.helper=this.instance.options._helper,d.options.helper=="original"&&this.instance.currentItem.css({top:"auto",left:"auto"})):(this.instance.cancelHelperRemoval=!1,this.instance._trigger("deactivate",b,e))})},drag:function(b,c){var d=a(this).data("draggable"),e=this,f=function(b){var c=this.offset.click.top,d=this.offset.click.left,e=this.positionAbs.top,f=this.positionAbs.left,g=b.height,h=b.width,i=b.top,j=b.left;return a.ui.isOver(e+c,f+d,i,j,g,h)};a.each(d.sortables,function(f){this.instance.positionAbs=d.positionAbs,this.instance.helperProportions=d.helperProportions,this.instance.offset.click=d.offset.click,this.instance._intersectsWith(this.instance.containerCache)?(this.instance.isOver||(this.instance.isOver=1,this.instance.currentItem=a(e).clone().removeAttr("id").appendTo(this.instance.element).data("sortable-item",!0),this.instance.options._helper=this.instance.options.helper,this.instance.options.helper=function(){return c.helper[0]},b.target=this.instance.currentItem[0],this.instance._mouseCapture(b,!0),this.instance._mouseStart(b,!0,!0),this.instance.offset.click.top=d.offset.click.top,this.instance.offset.click.left=d.offset.click.left,this.instance.offset.parent.left-=d.offset.parent.left-this.instance.offset.parent.left,this.instance.offset.parent.top-=d.offset.parent.top-this.instance.offset.parent.top,d._trigger("toSortable",b),d.dropped=this.instance.element,d.currentItem=d.element,this.instance.fromOutside=d),this.instance.currentItem&&this.instance._mouseDrag(b)):this.instance.isOver&&(this.instance.isOver=0,this.instance.cancelHelperRemoval=!0,this.instance.options.revert=!1,this.instance._trigger("out",b,this.instance._uiHash(this.instance)),this.instance._mouseStop(b,!0),this.instance.options.helper=this.instance.options._helper,this.instance.currentItem.remove(),this.instance.placeholder&&this.instance.placeholder.remove(),d._trigger("fromSortable",b),d.dropped=!1)})}}),a.ui.plugin.add("draggable","cursor",{start:function(b,c){var d=a("body"),e=a(this).data("draggable").options;d.css("cursor")&&(e._cursor=d.css("cursor")),d.css("cursor",e.cursor)},stop:function(b,c){var d=a(this).data("draggable").options;d._cursor&&a("body").css("cursor",d._cursor)}}),a.ui.plugin.add("draggable","opacity",{start:function(b,c){var d=a(c.helper),e=a(this).data("draggable").options;d.css("opacity")&&(e._opacity=d.css("opacity")),d.css("opacity",e.opacity)},stop:function(b,c){var d=a(this).data("draggable").options;d._opacity&&a(c.helper).css("opacity",d._opacity)}}),a.ui.plugin.add("draggable","scroll",{start:function(b,c){var d=a(this).data("draggable");d.scrollParent[0]!=document&&d.scrollParent[0].tagName!="HTML"&&(d.overflowOffset=d.scrollParent.offset())},drag:function(b,c){var d=a(this).data("draggable"),e=d.options,f=!1;if(d.scrollParent[0]!=document&&d.scrollParent[0].tagName!="HTML"){if(!e.axis||e.axis!="x")d.overflowOffset.top+d.scrollParent[0].offsetHeight-b.pageY<e.scrollSensitivity?d.scrollParent[0].scrollTop=f=d.scrollParent[0].scrollTop+e.scrollSpeed:b.pageY-d.overflowOffset.top<e.scrollSensitivity&&(d.scrollParent[0].scrollTop=f=d.scrollParent[0].scrollTop-e.scrollSpeed);if(!e.axis||e.axis!="y")d.overflowOffset.left+d.scrollParent[0].offsetWidth-b.pageX<e.scrollSensitivity?d.scrollParent[0].scrollLeft=f=d.scrollParent[0].scrollLeft+e.scrollSpeed:b.pageX-d.overflowOffset.left<e.scrollSensitivity&&(d.scrollParent[0].scrollLeft=f=d.scrollParent[0].scrollLeft-e.scrollSpeed)}else{if(!e.axis||e.axis!="x")b.pageY-a(document).scrollTop()<e.scrollSensitivity?f=a(document).scrollTop(a(document).scrollTop()-e.scrollSpeed):a(window).height()-(b.pageY-a(document).scrollTop())<e.scrollSensitivity&&(f=a(document).scrollTop(a(document).scrollTop()+e.scrollSpeed));if(!e.axis||e.axis!="y")b.pageX-a(document).scrollLeft()<e.scrollSensitivity?f=a(document).scrollLeft(a(document).scrollLeft()-e.scrollSpeed):a(window).width()-(b.pageX-a(document).scrollLeft())<e.scrollSensitivity&&(f=a(document).scrollLeft(a(document).scrollLeft()+e.scrollSpeed))}f!==!1&&a.ui.ddmanager&&!e.dropBehaviour&&a.ui.ddmanager.prepareOffsets(d,b)}}),a.ui.plugin.add("draggable","snap",{start:function(b,c){var d=a(this).data("draggable"),e=d.options;d.snapElements=[],a(e.snap.constructor!=String?e.snap.items||":data(draggable)":e.snap).each(function(){var b=a(this),c=b.offset();this!=d.element[0]&&d.snapElements.push({item:this,width:b.outerWidth(),height:b.outerHeight(),top:c.top,left:c.left})})},drag:function(b,c){var d=a(this).data("draggable"),e=d.options,f=e.snapTolerance,g=c.offset.left,h=g+d.helperProportions.width,i=c.offset.top,j=i+d.helperProportions.height;for(var k=d.snapElements.length-1;k>=0;k--){var l=d.snapElements[k].left,m=l+d.snapElements[k].width,n=d.snapElements[k].top,o=n+d.snapElements[k].height;if(!(l-f<g&&g<m+f&&n-f<i&&i<o+f||l-f<g&&g<m+f&&n-f<j&&j<o+f||l-f<h&&h<m+f&&n-f<i&&i<o+f||l-f<h&&h<m+f&&n-f<j&&j<o+f)){d.snapElements[k].snapping&&d.options.snap.release&&d.options.snap.release.call(d.element,b,a.extend(d._uiHash(),{snapItem:d.snapElements[k].item})),d.snapElements[k].snapping=!1;continue}if(e.snapMode!="inner"){var p=Math.abs(n-j)<=f,q=Math.abs(o-i)<=f,r=Math.abs(l-h)<=f,s=Math.abs(m-g)<=f;p&&(c.position.top=d._convertPositionTo("relative",{top:n-d.helperProportions.height,left:0}).top-d.margins.top),q&&(c.position.top=d._convertPositionTo("relative",{top:o,left:0}).top-d.margins.top),r&&(c.position.left=d._convertPositionTo("relative",{top:0,left:l-d.helperProportions.width}).left-d.margins.left),s&&(c.position.left=d._convertPositionTo("relative",{top:0,left:m}).left-d.margins.left)}var t=p||q||r||s;if(e.snapMode!="outer"){var p=Math.abs(n-i)<=f,q=Math.abs(o-j)<=f,r=Math.abs(l-g)<=f,s=Math.abs(m-h)<=f;p&&(c.position.top=d._convertPositionTo("relative",{top:n,left:0}).top-d.margins.top),q&&(c.position.top=d._convertPositionTo("relative",{top:o-d.helperProportions.height,left:0}).top-d.margins.top),r&&(c.position.left=d._convertPositionTo("relative",{top:0,left:l}).left-d.margins.left),s&&(c.position.left=d._convertPositionTo("relative",{top:0,left:m-d.helperProportions.width}).left-d.margins.left)}!d.snapElements[k].snapping&&(p||q||r||s||t)&&d.options.snap.snap&&d.options.snap.snap.call(d.element,b,a.extend(d._uiHash(),{snapItem:d.snapElements[k].item})),d.snapElements[k].snapping=p||q||r||s||t}}}),a.ui.plugin.add("draggable","stack",{start:function(b,c){var d=a(this).data("draggable").options,e=a.makeArray(a(d.stack)).sort(function(b,c){return(parseInt(a(b).css("zIndex"),10)||0)-(parseInt(a(c).css("zIndex"),10)||0)});if(!e.length)return;var f=parseInt(e[0].style.zIndex)||0;a(e).each(function(a){this.style.zIndex=f+a}),this[0].style.zIndex=f+e.length}}),a.ui.plugin.add("draggable","zIndex",{start:function(b,c){var d=a(c.helper),e=a(this).data("draggable").options;d.css("zIndex")&&(e._zIndex=d.css("zIndex")),d.css("zIndex",e.zIndex)},stop:function(b,c){var d=a(this).data("draggable").options;d._zIndex&&a(c.helper).css("zIndex",d._zIndex)}})})(jQuery);
\ No newline at end of file
+* Copyright 2012 jQuery Foundation and other contributors; Licensed MIT */
+(function(e,t){e.widget("ui.draggable",e.ui.mouse,{version:"1.9.2",widgetEventPrefix:"drag",options:{addClasses:!0,appendTo:"parent",axis:!1,connectToSortable:!1,containment:!1,cursor:"auto",cursorAt:!1,grid:!1,handle:!1,helper:"original",iframeFix:!1,opacity:!1,refreshPositions:!1,revert:!1,revertDuration:500,scope:"default",scroll:!0,scrollSensitivity:20,scrollSpeed:20,snap:!1,snapMode:"both",snapTolerance:20,stack:!1,zIndex:!1},_create:function(){this.options.helper=="original"&&!/^(?:r|a|f)/.test(this.element.css("position"))&&(this.element[0].style.position="relative"),this.options.addClasses&&this.element.addClass("ui-draggable"),this.options.disabled&&this.element.addClass("ui-draggable-disabled"),this._mouseInit()},_destroy:function(){this.element.removeClass("ui-draggable ui-draggable-dragging ui-draggable-disabled"),this._mouseDestroy()},_mouseCapture:function(t){var n=this.options;return this.helper||n.disabled||e(t.target).is(".ui-resizable-handle")?!1:(this.handle=this._getHandle(t),this.handle?(e(n.iframeFix===!0?"iframe":n.iframeFix).each(function(){e('<div class="ui-draggable-iframeFix" style="background: #fff;"></div>').css({width:this.offsetWidth+"px",height:this.offsetHeight+"px",position:"absolute",opacity:"0.001",zIndex:1e3}).css(e(this).offset()).appendTo("body")}),!0):!1)},_mouseStart:function(t){var n=this.options;return this.helper=this._createHelper(t),this.helper.addClass("ui-draggable-dragging"),this._cacheHelperProportions(),e.ui.ddmanager&&(e.ui.ddmanager.current=this),this._cacheMargins(),this.cssPosition=this.helper.css("position"),this.scrollParent=this.helper.scrollParent(),this.offset=this.positionAbs=this.element.offset(),this.offset={top:this.offset.top-this.margins.top,left:this.offset.left-this.margins.left},e.extend(this.offset,{click:{left:t.pageX-this.offset.left,top:t.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()}),this.originalPosition=this.position=this._generatePosition(t),this.originalPageX=t.pageX,this.originalPageY=t.pageY,n.cursorAt&&this._adjustOffsetFromHelper(n.cursorAt),n.containment&&this._setContainment(),this._trigger("start",t)===!1?(this._clear(),!1):(this._cacheHelperProportions(),e.ui.ddmanager&&!n.dropBehaviour&&e.ui.ddmanager.prepareOffsets(this,t),this._mouseDrag(t,!0),e.ui.ddmanager&&e.ui.ddmanager.dragStart(this,t),!0)},_mouseDrag:function(t,n){this.position=this._generatePosition(t),this.positionAbs=this._convertPositionTo("absolute");if(!n){var r=this._uiHash();if(this._trigger("drag",t,r)===!1)return this._mouseUp({}),!1;this.position=r.position}if(!this.options.axis||this.options.axis!="y")this.helper[0].style.left=this.position.left+"px";if(!this.options.axis||this.options.axis!="x")this.helper[0].style.top=this.position.top+"px";return e.ui.ddmanager&&e.ui.ddmanager.drag(this,t),!1},_mouseStop:function(t){var n=!1;e.ui.ddmanager&&!this.options.dropBehaviour&&(n=e.ui.ddmanager.drop(this,t)),this.dropped&&(n=this.dropped,this.dropped=!1);var r=this.element[0],i=!1;while(r&&(r=r.parentNode))r==document&&(i=!0);if(!i&&this.options.helper==="original")return!1;if(this.options.revert=="invalid"&&!n||this.options.revert=="valid"&&n||this.options.revert===!0||e.isFunction(this.options.revert)&&this.options.revert.call(this.element,n)){var s=this;e(this.helper).animate(this.originalPosition,parseInt(this.options.revertDuration,10),function(){s._trigger("stop",t)!==!1&&s._clear()})}else this._trigger("stop",t)!==!1&&this._clear();return!1},_mouseUp:function(t){return e("div.ui-draggable-iframeFix").each(function(){this.parentNode.removeChild(this)}),e.ui.ddmanager&&e.ui.ddmanager.dragStop(this,t),e.ui.mouse.prototype._mouseUp.call(this,t)},cancel:function(){return this.helper.is(".ui-draggable-dragging")?this._mouseUp({}):this._clear(),this},_getHandle:function(t){var n=!this.options.handle||!e(this.options.handle,this.element).length?!0:!1;return e(this.options.handle,this.element).find("*").andSelf().each(function(){this==t.target&&(n=!0)}),n},_createHelper:function(t){var n=this.options,r=e.isFunction(n.helper)?e(n.helper.apply(this.element[0],[t])):n.helper=="clone"?this.element.clone().removeAttr("id"):this.element;return r.parents("body").length||r.appendTo(n.appendTo=="parent"?this.element[0].parentNode:n.appendTo),r[0]!=this.element[0]&&!/(fixed|absolute)/.test(r.css("position"))&&r.css("position","absolute"),r},_adjustOffsetFromHelper:function(t){typeof t=="string"&&(t=t.split(" ")),e.isArray(t)&&(t={left:+t[0],top:+t[1]||0}),"left"in t&&(this.offset.click.left=t.left+this.margins.left),"right"in t&&(this.offset.click.left=this.helperProportions.width-t.right+this.margins.left),"top"in t&&(this.offset.click.top=t.top+this.margins.top),"bottom"in t&&(this.offset.click.top=this.helperProportions.height-t.bottom+this.margins.top)},_getParentOffset:function(){this.offsetParent=this.helper.offsetParent();var t=this.offsetParent.offset();this.cssPosition=="absolute"&&this.scrollParent[0]!=document&&e.contains(this.scrollParent[0],this.offsetParent[0])&&(t.left+=this.scrollParent.scrollLeft(),t.top+=this.scrollParent.scrollTop());if(this.offsetParent[0]==document.body||this.offsetParent[0].tagName&&this.offsetParent[0].tagName.toLowerCase()=="html"&&e.ui.ie)t={top:0,left:0};return{top:t.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:t.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if(this.cssPosition=="relative"){var e=this.element.position();return{top:e.top-(parseInt(this.helper.css("top"),10)||0)+this.scrollParent.scrollTop(),left:e.left-(parseInt(this.helper.css("left"),10)||0)+this.scrollParent.scrollLeft()}}return{top:0,left:0}},_cacheMargins:function(){this.margins={left:parseInt(this.element.css("marginLeft"),10)||0,top:parseInt(this.element.css("marginTop"),10)||0,right:parseInt(this.element.css("marginRight"),10)||0,bottom:parseInt(this.element.css("marginBottom"),10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var t=this.options;t.containment=="parent"&&(t.containment=this.helper[0].parentNode);if(t.containment=="document"||t.containment=="window")this.containment=[t.containment=="document"?0:e(window).scrollLeft()-this.offset.relative.left-this.offset.parent.left,t.containment=="document"?0:e(window).scrollTop()-this.offset.relative.top-this.offset.parent.top,(t.containment=="document"?0:e(window).scrollLeft())+e(t.containment=="document"?document:window).width()-this.helperProportions.width-this.margins.left,(t.containment=="document"?0:e(window).scrollTop())+(e(t.containment=="document"?document:window).height()||document.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top];if(!/^(document|window|parent)$/.test(t.containment)&&t.containment.constructor!=Array){var n=e(t.containment),r=n[0];if(!r)return;var i=n.offset(),s=e(r).css("overflow")!="hidden";this.containment=[(parseInt(e(r).css("borderLeftWidth"),10)||0)+(parseInt(e(r).css("paddingLeft"),10)||0),(parseInt(e(r).css("borderTopWidth"),10)||0)+(parseInt(e(r).css("paddingTop"),10)||0),(s?Math.max(r.scrollWidth,r.offsetWidth):r.offsetWidth)-(parseInt(e(r).css("borderLeftWidth"),10)||0)-(parseInt(e(r).css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left-this.margins.right,(s?Math.max(r.scrollHeight,r.offsetHeight):r.offsetHeight)-(parseInt(e(r).css("borderTopWidth"),10)||0)-(parseInt(e(r).css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top-this.margins.bottom],this.relative_container=n}else t.containment.constructor==Array&&(this.containment=t.containment)},_convertPositionTo:function(t,n){n||(n=this.position);var r=t=="absolute"?1:-1,i=this.options,s=this.cssPosition!="absolute"||this.scrollParent[0]!=document&&!!e.contains(this.scrollParent[0],this.offsetParent[0])?this.scrollParent:this.offsetParent,o=/(html|body)/i.test(s[0].tagName);return{top:n.top+this.offset.relative.top*r+this.offset.parent.top*r-(this.cssPosition=="fixed"?-this.scrollParent.scrollTop():o?0:s.scrollTop())*r,left:n.left+this.offset.relative.left*r+this.offset.parent.left*r-(this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():o?0:s.scrollLeft())*r}},_generatePosition:function(t){var n=this.options,r=this.cssPosition!="absolute"||this.scrollParent[0]!=document&&!!e.contains(this.scrollParent[0],this.offsetParent[0])?this.scrollParent:this.offsetParent,i=/(html|body)/i.test(r[0].tagName),s=t.pageX,o=t.pageY;if(this.originalPosition){var u;if(this.containment){if(this.relative_container){var a=this.relative_container.offset();u=[this.containment[0]+a.left,this.containment[1]+a.top,this.containment[2]+a.left,this.containment[3]+a.top]}else u=this.containment;t.pageX-this.offset.click.left<u[0]&&(s=u[0]+this.offset.click.left),t.pageY-this.offset.click.top<u[1]&&(o=u[1]+this.offset.click.top),t.pageX-this.offset.click.left>u[2]&&(s=u[2]+this.offset.click.left),t.pageY-this.offset.click.top>u[3]&&(o=u[3]+this.offset.click.top)}if(n.grid){var f=n.grid[1]?this.originalPageY+Math.round((o-this.originalPageY)/n.grid[1])*n.grid[1]:this.originalPageY;o=u?f-this.offset.click.top<u[1]||f-this.offset.click.top>u[3]?f-this.offset.click.top<u[1]?f+n.grid[1]:f-n.grid[1]:f:f;var l=n.grid[0]?this.originalPageX+Math.round((s-this.originalPageX)/n.grid[0])*n.grid[0]:this.originalPageX;s=u?l-this.offset.click.left<u[0]||l-this.offset.click.left>u[2]?l-this.offset.click.left<u[0]?l+n.grid[0]:l-n.grid[0]:l:l}}return{top:o-this.offset.click.top-this.offset.relative.top-this.offset.parent.top+(this.cssPosition=="fixed"?-this.scrollParent.scrollTop():i?0:r.scrollTop()),left:s-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+(this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():i?0:r.scrollLeft())}},_clear:function(){this.helper.removeClass("ui-draggable-dragging"),this.helper[0]!=this.element[0]&&!this.cancelHelperRemoval&&this.helper.remove(),this.helper=null,this.cancelHelperRemoval=!1},_trigger:function(t,n,r){return r=r||this._uiHash(),e.ui.plugin.call(this,t,[n,r]),t=="drag"&&(this.positionAbs=this._convertPositionTo("absolute")),e.Widget.prototype._trigger.call(this,t,n,r)},plugins:{},_uiHash:function(e){return{helper:this.helper,position:this.position,originalPosition:this.originalPosition,offset:this.positionAbs}}}),e.ui.plugin.add("draggable","connectToSortable",{start:function(t,n){var r=e(this).data("draggable"),i=r.options,s=e.extend({},n,{item:r.element});r.sortables=[],e(i.connectToSortable).each(function(){var n=e.data(this,"sortable");n&&!n.options.disabled&&(r.sortables.push({instance:n,shouldRevert:n.options.revert}),n.refreshPositions(),n._trigger("activate",t,s))})},stop:function(t,n){var r=e(this).data("draggable"),i=e.extend({},n,{item:r.element});e.each(r.sortables,function(){this.instance.isOver?(this.instance.isOver=0,r.cancelHelperRemoval=!0,this.instance.cancelHelperRemoval=!1,this.shouldRevert&&(this.instance.options.revert=!0),this.instance._mouseStop(t),this.instance.options.helper=this.instance.options._helper,r.options.helper=="original"&&this.instance.currentItem.css({top:"auto",left:"auto"})):(this.instance.cancelHelperRemoval=!1,this.instance._trigger("deactivate",t,i))})},drag:function(t,n){var r=e(this).data("draggable"),i=this,s=function(t){var n=this.offset.click.top,r=this.offset.click.left,i=this.positionAbs.top,s=this.positionAbs.left,o=t.height,u=t.width,a=t.top,f=t.left;return e.ui.isOver(i+n,s+r,a,f,o,u)};e.each(r.sortables,function(s){var o=!1,u=this;this.instance.positionAbs=r.positionAbs,this.instance.helperProportions=r.helperProportions,this.instance.offset.click=r.offset.click,this.instance._intersectsWith(this.instance.containerCache)&&(o=!0,e.each(r.sortables,function(){return this.instance.positionAbs=r.positionAbs,this.instance.helperProportions=r.helperProportions,this.instance.offset.click=r.offset.click,this!=u&&this.instance._intersectsWith(this.instance.containerCache)&&e.ui.contains(u.instance.element[0],this.instance.element[0])&&(o=!1),o})),o?(this.instance.isOver||(this.instance.isOver=1,this.instance.currentItem=e(i).clone().removeAttr("id").appendTo(this.instance.element).data("sortable-item",!0),this.instance.options._helper=this.instance.options.helper,this.instance.options.helper=function(){return n.helper[0]},t.target=this.instance.currentItem[0],this.instance._mouseCapture(t,!0),this.instance._mouseStart(t,!0,!0),this.instance.offset.click.top=r.offset.click.top,this.instance.offset.click.left=r.offset.click.left,this.instance.offset.parent.left-=r.offset.parent.left-this.instance.offset.parent.left,this.instance.offset.parent.top-=r.offset.parent.top-this.instance.offset.parent.top,r._trigger("toSortable",t),r.dropped=this.instance.element,r.currentItem=r.element,this.instance.fromOutside=r),this.instance.currentItem&&this.instance._mouseDrag(t)):this.instance.isOver&&(this.instance.isOver=0,this.instance.cancelHelperRemoval=!0,this.instance.options.revert=!1,this.instance._trigger("out",t,this.instance._uiHash(this.instance)),this.instance._mouseStop(t,!0),this.instance.options.helper=this.instance.options._helper,this.instance.currentItem.remove(),this.instance.placeholder&&this.instance.placeholder.remove(),r._trigger("fromSortable",t),r.dropped=!1)})}}),e.ui.plugin.add("draggable","cursor",{start:function(t,n){var r=e("body"),i=e(this).data("draggable").options;r.css("cursor")&&(i._cursor=r.css("cursor")),r.css("cursor",i.cursor)},stop:function(t,n){var r=e(this).data("draggable").options;r._cursor&&e("body").css("cursor",r._cursor)}}),e.ui.plugin.add("draggable","opacity",{start:function(t,n){var r=e(n.helper),i=e(this).data("draggable").options;r.css("opacity")&&(i._opacity=r.css("opacity")),r.css("opacity",i.opacity)},stop:function(t,n){var r=e(this).data("draggable").options;r._opacity&&e(n.helper).css("opacity",r._opacity)}}),e.ui.plugin.add("draggable","scroll",{start:function(t,n){var r=e(this).data("draggable");r.scrollParent[0]!=document&&r.scrollParent[0].tagName!="HTML"&&(r.overflowOffset=r.scrollParent.offset())},drag:function(t,n){var r=e(this).data("draggable"),i=r.options,s=!1;if(r.scrollParent[0]!=document&&r.scrollParent[0].tagName!="HTML"){if(!i.axis||i.axis!="x")r.overflowOffset.top+r.scrollParent[0].offsetHeight-t.pageY<i.scrollSensitivity?r.scrollParent[0].scrollTop=s=r.scrollParent[0].scrollTop+i.scrollSpeed:t.pageY-r.overflowOffset.top<i.scrollSensitivity&&(r.scrollParent[0].scrollTop=s=r.scrollParent[0].scrollTop-i.scrollSpeed);if(!i.axis||i.axis!="y")r.overflowOffset.left+r.scrollParent[0].offsetWidth-t.pageX<i.scrollSensitivity?r.scrollParent[0].scrollLeft=s=r.scrollParent[0].scrollLeft+i.scrollSpeed:t.pageX-r.overflowOffset.left<i.scrollSensitivity&&(r.scrollParent[0].scrollLeft=s=r.scrollParent[0].scrollLeft-i.scrollSpeed)}else{if(!i.axis||i.axis!="x")t.pageY-e(document).scrollTop()<i.scrollSensitivity?s=e(document).scrollTop(e(document).scrollTop()-i.scrollSpeed):e(window).height()-(t.pageY-e(document).scrollTop())<i.scrollSensitivity&&(s=e(document).scrollTop(e(document).scrollTop()+i.scrollSpeed));if(!i.axis||i.axis!="y")t.pageX-e(document).scrollLeft()<i.scrollSensitivity?s=e(document).scrollLeft(e(document).scrollLeft()-i.scrollSpeed):e(window).width()-(t.pageX-e(document).scrollLeft())<i.scrollSensitivity&&(s=e(document).scrollLeft(e(document).scrollLeft()+i.scrollSpeed))}s!==!1&&e.ui.ddmanager&&!i.dropBehaviour&&e.ui.ddmanager.prepareOffsets(r,t)}}),e.ui.plugin.add("draggable","snap",{start:function(t,n){var r=e(this).data("draggable"),i=r.options;r.snapElements=[],e(i.snap.constructor!=String?i.snap.items||":data(draggable)":i.snap).each(function(){var t=e(this),n=t.offset();this!=r.element[0]&&r.snapElements.push({item:this,width:t.outerWidth(),height:t.outerHeight(),top:n.top,left:n.left})})},drag:function(t,n){var r=e(this).data("draggable"),i=r.options,s=i.snapTolerance,o=n.offset.left,u=o+r.helperProportions.width,a=n.offset.top,f=a+r.helperProportions.height;for(var l=r.snapElements.length-1;l>=0;l--){var c=r.snapElements[l].left,h=c+r.snapElements[l].width,p=r.snapElements[l].top,d=p+r.snapElements[l].height;if(!(c-s<o&&o<h+s&&p-s<a&&a<d+s||c-s<o&&o<h+s&&p-s<f&&f<d+s||c-s<u&&u<h+s&&p-s<a&&a<d+s||c-s<u&&u<h+s&&p-s<f&&f<d+s)){r.snapElements[l].snapping&&r.options.snap.release&&r.options.snap.release.call(r.element,t,e.extend(r._uiHash(),{snapItem:r.snapElements[l].item})),r.snapElements[l].snapping=!1;continue}if(i.snapMode!="inner"){var v=Math.abs(p-f)<=s,m=Math.abs(d-a)<=s,g=Math.abs(c-u)<=s,y=Math.abs(h-o)<=s;v&&(n.position.top=r._convertPositionTo("relative",{top:p-r.helperProportions.height,left:0}).top-r.margins.top),m&&(n.position.top=r._convertPositionTo("relative",{top:d,left:0}).top-r.margins.top),g&&(n.position.left=r._convertPositionTo("relative",{top:0,left:c-r.helperProportions.width}).left-r.margins.left),y&&(n.position.left=r._convertPositionTo("relative",{top:0,left:h}).left-r.margins.left)}var b=v||m||g||y;if(i.snapMode!="outer"){var v=Math.abs(p-a)<=s,m=Math.abs(d-f)<=s,g=Math.abs(c-o)<=s,y=Math.abs(h-u)<=s;v&&(n.position.top=r._convertPositionTo("relative",{top:p,left:0}).top-r.margins.top),m&&(n.position.top=r._convertPositionTo("relative",{top:d-r.helperProportions.height,left:0}).top-r.margins.top),g&&(n.position.left=r._convertPositionTo("relative",{top:0,left:c}).left-r.margins.left),y&&(n.position.left=r._convertPositionTo("relative",{top:0,left:h-r.helperProportions.width}).left-r.margins.left)}!r.snapElements[l].snapping&&(v||m||g||y||b)&&r.options.snap.snap&&r.options.snap.snap.call(r.element,t,e.extend(r._uiHash(),{snapItem:r.snapElements[l].item})),r.snapElements[l].snapping=v||m||g||y||b}}}),e.ui.plugin.add("draggable","stack",{start:function(t,n){var r=e(this).data("draggable").options,i=e.makeArray(e(r.stack)).sort(function(t,n){return(parseInt(e(t).css("zIndex"),10)||0)-(parseInt(e(n).css("zIndex"),10)||0)});if(!i.length)return;var s=parseInt(i[0].style.zIndex)||0;e(i).each(function(e){this.style.zIndex=s+e}),this[0].style.zIndex=s+i.length}}),e.ui.plugin.add("draggable","zIndex",{start:function(t,n){var r=e(n.helper),i=e(this).data("draggable").options;r.css("zIndex")&&(i._zIndex=r.css("zIndex")),r.css("zIndex",i.zIndex)},stop:function(t,n){var r=e(this).data("draggable").options;r._zIndex&&e(n.helper).css("zIndex",r._zIndex)}})})(jQuery);
\ No newline at end of file
--- a/web/wp-includes/js/jquery/ui/jquery.ui.droppable.min.js	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/js/jquery/ui/jquery.ui.droppable.min.js	Wed Dec 19 17:46:52 2012 -0800
@@ -1,5 +1,5 @@
-/*! jQuery UI - v1.8.20 - 2012-04-30
-* https://github.com/jquery/jquery-ui
+/*! jQuery UI - v1.9.2 - 2012-11-23
+* http://jqueryui.com
 * Includes: jquery.ui.droppable.js
-* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */
-(function(a,b){a.widget("ui.droppable",{widgetEventPrefix:"drop",options:{accept:"*",activeClass:!1,addClasses:!0,greedy:!1,hoverClass:!1,scope:"default",tolerance:"intersect"},_create:function(){var b=this.options,c=b.accept;this.isover=0,this.isout=1,this.accept=a.isFunction(c)?c:function(a){return a.is(c)},this.proportions={width:this.element[0].offsetWidth,height:this.element[0].offsetHeight},a.ui.ddmanager.droppables[b.scope]=a.ui.ddmanager.droppables[b.scope]||[],a.ui.ddmanager.droppables[b.scope].push(this),b.addClasses&&this.element.addClass("ui-droppable")},destroy:function(){var b=a.ui.ddmanager.droppables[this.options.scope];for(var c=0;c<b.length;c++)b[c]==this&&b.splice(c,1);return this.element.removeClass("ui-droppable ui-droppable-disabled").removeData("droppable").unbind(".droppable"),this},_setOption:function(b,c){b=="accept"&&(this.accept=a.isFunction(c)?c:function(a){return a.is(c)}),a.Widget.prototype._setOption.apply(this,arguments)},_activate:function(b){var c=a.ui.ddmanager.current;this.options.activeClass&&this.element.addClass(this.options.activeClass),c&&this._trigger("activate",b,this.ui(c))},_deactivate:function(b){var c=a.ui.ddmanager.current;this.options.activeClass&&this.element.removeClass(this.options.activeClass),c&&this._trigger("deactivate",b,this.ui(c))},_over:function(b){var c=a.ui.ddmanager.current;if(!c||(c.currentItem||c.element)[0]==this.element[0])return;this.accept.call(this.element[0],c.currentItem||c.element)&&(this.options.hoverClass&&this.element.addClass(this.options.hoverClass),this._trigger("over",b,this.ui(c)))},_out:function(b){var c=a.ui.ddmanager.current;if(!c||(c.currentItem||c.element)[0]==this.element[0])return;this.accept.call(this.element[0],c.currentItem||c.element)&&(this.options.hoverClass&&this.element.removeClass(this.options.hoverClass),this._trigger("out",b,this.ui(c)))},_drop:function(b,c){var d=c||a.ui.ddmanager.current;if(!d||(d.currentItem||d.element)[0]==this.element[0])return!1;var e=!1;return this.element.find(":data(droppable)").not(".ui-draggable-dragging").each(function(){var b=a.data(this,"droppable");if(b.options.greedy&&!b.options.disabled&&b.options.scope==d.options.scope&&b.accept.call(b.element[0],d.currentItem||d.element)&&a.ui.intersect(d,a.extend(b,{offset:b.element.offset()}),b.options.tolerance))return e=!0,!1}),e?!1:this.accept.call(this.element[0],d.currentItem||d.element)?(this.options.activeClass&&this.element.removeClass(this.options.activeClass),this.options.hoverClass&&this.element.removeClass(this.options.hoverClass),this._trigger("drop",b,this.ui(d)),this.element):!1},ui:function(a){return{draggable:a.currentItem||a.element,helper:a.helper,position:a.position,offset:a.positionAbs}}}),a.extend(a.ui.droppable,{version:"1.8.20"}),a.ui.intersect=function(b,c,d){if(!c.offset)return!1;var e=(b.positionAbs||b.position.absolute).left,f=e+b.helperProportions.width,g=(b.positionAbs||b.position.absolute).top,h=g+b.helperProportions.height,i=c.offset.left,j=i+c.proportions.width,k=c.offset.top,l=k+c.proportions.height;switch(d){case"fit":return i<=e&&f<=j&&k<=g&&h<=l;case"intersect":return i<e+b.helperProportions.width/2&&f-b.helperProportions.width/2<j&&k<g+b.helperProportions.height/2&&h-b.helperProportions.height/2<l;case"pointer":var m=(b.positionAbs||b.position.absolute).left+(b.clickOffset||b.offset.click).left,n=(b.positionAbs||b.position.absolute).top+(b.clickOffset||b.offset.click).top,o=a.ui.isOver(n,m,k,i,c.proportions.height,c.proportions.width);return o;case"touch":return(g>=k&&g<=l||h>=k&&h<=l||g<k&&h>l)&&(e>=i&&e<=j||f>=i&&f<=j||e<i&&f>j);default:return!1}},a.ui.ddmanager={current:null,droppables:{"default":[]},prepareOffsets:function(b,c){var d=a.ui.ddmanager.droppables[b.options.scope]||[],e=c?c.type:null,f=(b.currentItem||b.element).find(":data(droppable)").andSelf();g:for(var h=0;h<d.length;h++){if(d[h].options.disabled||b&&!d[h].accept.call(d[h].element[0],b.currentItem||b.element))continue;for(var i=0;i<f.length;i++)if(f[i]==d[h].element[0]){d[h].proportions.height=0;continue g}d[h].visible=d[h].element.css("display")!="none";if(!d[h].visible)continue;e=="mousedown"&&d[h]._activate.call(d[h],c),d[h].offset=d[h].element.offset(),d[h].proportions={width:d[h].element[0].offsetWidth,height:d[h].element[0].offsetHeight}}},drop:function(b,c){var d=!1;return a.each(a.ui.ddmanager.droppables[b.options.scope]||[],function(){if(!this.options)return;!this.options.disabled&&this.visible&&a.ui.intersect(b,this,this.options.tolerance)&&(d=this._drop.call(this,c)||d),!this.options.disabled&&this.visible&&this.accept.call(this.element[0],b.currentItem||b.element)&&(this.isout=1,this.isover=0,this._deactivate.call(this,c))}),d},dragStart:function(b,c){b.element.parents(":not(body,html)").bind("scroll.droppable",function(){b.options.refreshPositions||a.ui.ddmanager.prepareOffsets(b,c)})},drag:function(b,c){b.options.refreshPositions&&a.ui.ddmanager.prepareOffsets(b,c),a.each(a.ui.ddmanager.droppables[b.options.scope]||[],function(){if(this.options.disabled||this.greedyChild||!this.visible)return;var d=a.ui.intersect(b,this,this.options.tolerance),e=!d&&this.isover==1?"isout":d&&this.isover==0?"isover":null;if(!e)return;var f;if(this.options.greedy){var g=this.element.parents(":data(droppable):eq(0)");g.length&&(f=a.data(g[0],"droppable"),f.greedyChild=e=="isover"?1:0)}f&&e=="isover"&&(f.isover=0,f.isout=1,f._out.call(f,c)),this[e]=1,this[e=="isout"?"isover":"isout"]=0,this[e=="isover"?"_over":"_out"].call(this,c),f&&e=="isout"&&(f.isout=0,f.isover=1,f._over.call(f,c))})},dragStop:function(b,c){b.element.parents(":not(body,html)").unbind("scroll.droppable"),b.options.refreshPositions||a.ui.ddmanager.prepareOffsets(b,c)}}})(jQuery);
\ No newline at end of file
+* Copyright 2012 jQuery Foundation and other contributors; Licensed MIT */
+(function(e,t){e.widget("ui.droppable",{version:"1.9.2",widgetEventPrefix:"drop",options:{accept:"*",activeClass:!1,addClasses:!0,greedy:!1,hoverClass:!1,scope:"default",tolerance:"intersect"},_create:function(){var t=this.options,n=t.accept;this.isover=0,this.isout=1,this.accept=e.isFunction(n)?n:function(e){return e.is(n)},this.proportions={width:this.element[0].offsetWidth,height:this.element[0].offsetHeight},e.ui.ddmanager.droppables[t.scope]=e.ui.ddmanager.droppables[t.scope]||[],e.ui.ddmanager.droppables[t.scope].push(this),t.addClasses&&this.element.addClass("ui-droppable")},_destroy:function(){var t=e.ui.ddmanager.droppables[this.options.scope];for(var n=0;n<t.length;n++)t[n]==this&&t.splice(n,1);this.element.removeClass("ui-droppable ui-droppable-disabled")},_setOption:function(t,n){t=="accept"&&(this.accept=e.isFunction(n)?n:function(e){return e.is(n)}),e.Widget.prototype._setOption.apply(this,arguments)},_activate:function(t){var n=e.ui.ddmanager.current;this.options.activeClass&&this.element.addClass(this.options.activeClass),n&&this._trigger("activate",t,this.ui(n))},_deactivate:function(t){var n=e.ui.ddmanager.current;this.options.activeClass&&this.element.removeClass(this.options.activeClass),n&&this._trigger("deactivate",t,this.ui(n))},_over:function(t){var n=e.ui.ddmanager.current;if(!n||(n.currentItem||n.element)[0]==this.element[0])return;this.accept.call(this.element[0],n.currentItem||n.element)&&(this.options.hoverClass&&this.element.addClass(this.options.hoverClass),this._trigger("over",t,this.ui(n)))},_out:function(t){var n=e.ui.ddmanager.current;if(!n||(n.currentItem||n.element)[0]==this.element[0])return;this.accept.call(this.element[0],n.currentItem||n.element)&&(this.options.hoverClass&&this.element.removeClass(this.options.hoverClass),this._trigger("out",t,this.ui(n)))},_drop:function(t,n){var r=n||e.ui.ddmanager.current;if(!r||(r.currentItem||r.element)[0]==this.element[0])return!1;var i=!1;return this.element.find(":data(droppable)").not(".ui-draggable-dragging").each(function(){var t=e.data(this,"droppable");if(t.options.greedy&&!t.options.disabled&&t.options.scope==r.options.scope&&t.accept.call(t.element[0],r.currentItem||r.element)&&e.ui.intersect(r,e.extend(t,{offset:t.element.offset()}),t.options.tolerance))return i=!0,!1}),i?!1:this.accept.call(this.element[0],r.currentItem||r.element)?(this.options.activeClass&&this.element.removeClass(this.options.activeClass),this.options.hoverClass&&this.element.removeClass(this.options.hoverClass),this._trigger("drop",t,this.ui(r)),this.element):!1},ui:function(e){return{draggable:e.currentItem||e.element,helper:e.helper,position:e.position,offset:e.positionAbs}}}),e.ui.intersect=function(t,n,r){if(!n.offset)return!1;var i=(t.positionAbs||t.position.absolute).left,s=i+t.helperProportions.width,o=(t.positionAbs||t.position.absolute).top,u=o+t.helperProportions.height,a=n.offset.left,f=a+n.proportions.width,l=n.offset.top,c=l+n.proportions.height;switch(r){case"fit":return a<=i&&s<=f&&l<=o&&u<=c;case"intersect":return a<i+t.helperProportions.width/2&&s-t.helperProportions.width/2<f&&l<o+t.helperProportions.height/2&&u-t.helperProportions.height/2<c;case"pointer":var h=(t.positionAbs||t.position.absolute).left+(t.clickOffset||t.offset.click).left,p=(t.positionAbs||t.position.absolute).top+(t.clickOffset||t.offset.click).top,d=e.ui.isOver(p,h,l,a,n.proportions.height,n.proportions.width);return d;case"touch":return(o>=l&&o<=c||u>=l&&u<=c||o<l&&u>c)&&(i>=a&&i<=f||s>=a&&s<=f||i<a&&s>f);default:return!1}},e.ui.ddmanager={current:null,droppables:{"default":[]},prepareOffsets:function(t,n){var r=e.ui.ddmanager.droppables[t.options.scope]||[],i=n?n.type:null,s=(t.currentItem||t.element).find(":data(droppable)").andSelf();e:for(var o=0;o<r.length;o++){if(r[o].options.disabled||t&&!r[o].accept.call(r[o].element[0],t.currentItem||t.element))continue;for(var u=0;u<s.length;u++)if(s[u]==r[o].element[0]){r[o].proportions.height=0;continue e}r[o].visible=r[o].element.css("display")!="none";if(!r[o].visible)continue;i=="mousedown"&&r[o]._activate.call(r[o],n),r[o].offset=r[o].element.offset(),r[o].proportions={width:r[o].element[0].offsetWidth,height:r[o].element[0].offsetHeight}}},drop:function(t,n){var r=!1;return e.each(e.ui.ddmanager.droppables[t.options.scope]||[],function(){if(!this.options)return;!this.options.disabled&&this.visible&&e.ui.intersect(t,this,this.options.tolerance)&&(r=this._drop.call(this,n)||r),!this.options.disabled&&this.visible&&this.accept.call(this.element[0],t.currentItem||t.element)&&(this.isout=1,this.isover=0,this._deactivate.call(this,n))}),r},dragStart:function(t,n){t.element.parentsUntil("body").bind("scroll.droppable",function(){t.options.refreshPositions||e.ui.ddmanager.prepareOffsets(t,n)})},drag:function(t,n){t.options.refreshPositions&&e.ui.ddmanager.prepareOffsets(t,n),e.each(e.ui.ddmanager.droppables[t.options.scope]||[],function(){if(this.options.disabled||this.greedyChild||!this.visible)return;var r=e.ui.intersect(t,this,this.options.tolerance),i=!r&&this.isover==1?"isout":r&&this.isover==0?"isover":null;if(!i)return;var s;if(this.options.greedy){var o=this.options.scope,u=this.element.parents(":data(droppable)").filter(function(){return e.data(this,"droppable").options.scope===o});u.length&&(s=e.data(u[0],"droppable"),s.greedyChild=i=="isover"?1:0)}s&&i=="isover"&&(s.isover=0,s.isout=1,s._out.call(s,n)),this[i]=1,this[i=="isout"?"isover":"isout"]=0,this[i=="isover"?"_over":"_out"].call(this,n),s&&i=="isout"&&(s.isout=0,s.isover=1,s._over.call(s,n))})},dragStop:function(t,n){t.element.parentsUntil("body").unbind("scroll.droppable"),t.options.refreshPositions||e.ui.ddmanager.prepareOffsets(t,n)}}})(jQuery);
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-includes/js/jquery/ui/jquery.ui.effect-blind.min.js	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,5 @@
+/*! jQuery UI - v1.9.2 - 2012-11-23
+* http://jqueryui.com
+* Includes: jquery.ui.effect-blind.js
+* Copyright 2012 jQuery Foundation and other contributors; Licensed MIT */
+(function(e,t){var n=/up|down|vertical/,r=/up|left|vertical|horizontal/;e.effects.effect.blind=function(t,i){var s=e(this),o=["position","top","bottom","left","right","height","width"],u=e.effects.setMode(s,t.mode||"hide"),a=t.direction||"up",f=n.test(a),l=f?"height":"width",c=f?"top":"left",h=r.test(a),p={},d=u==="show",v,m,g;s.parent().is(".ui-effects-wrapper")?e.effects.save(s.parent(),o):e.effects.save(s,o),s.show(),v=e.effects.createWrapper(s).css({overflow:"hidden"}),m=v[l](),g=parseFloat(v.css(c))||0,p[l]=d?m:0,h||(s.css(f?"bottom":"right",0).css(f?"top":"left","auto").css({position:"absolute"}),p[c]=d?g:m+g),d&&(v.css(l,0),h||v.css(c,g+m)),v.animate(p,{duration:t.duration,easing:t.easing,queue:!1,complete:function(){u==="hide"&&s.hide(),e.effects.restore(s,o),e.effects.removeWrapper(s),i()}})}})(jQuery);
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-includes/js/jquery/ui/jquery.ui.effect-bounce.min.js	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,5 @@
+/*! jQuery UI - v1.9.2 - 2012-11-23
+* http://jqueryui.com
+* Includes: jquery.ui.effect-bounce.js
+* Copyright 2012 jQuery Foundation and other contributors; Licensed MIT */
+(function(e,t){e.effects.effect.bounce=function(t,n){var r=e(this),i=["position","top","bottom","left","right","height","width"],s=e.effects.setMode(r,t.mode||"effect"),o=s==="hide",u=s==="show",a=t.direction||"up",f=t.distance,l=t.times||5,c=l*2+(u||o?1:0),h=t.duration/c,p=t.easing,d=a==="up"||a==="down"?"top":"left",v=a==="up"||a==="left",m,g,y,b=r.queue(),w=b.length;(u||o)&&i.push("opacity"),e.effects.save(r,i),r.show(),e.effects.createWrapper(r),f||(f=r[d==="top"?"outerHeight":"outerWidth"]()/3),u&&(y={opacity:1},y[d]=0,r.css("opacity",0).css(d,v?-f*2:f*2).animate(y,h,p)),o&&(f/=Math.pow(2,l-1)),y={},y[d]=0;for(m=0;m<l;m++)g={},g[d]=(v?"-=":"+=")+f,r.animate(g,h,p).animate(y,h,p),f=o?f*2:f/2;o&&(g={opacity:0},g[d]=(v?"-=":"+=")+f,r.animate(g,h,p)),r.queue(function(){o&&r.hide(),e.effects.restore(r,i),e.effects.removeWrapper(r),n()}),w>1&&b.splice.apply(b,[1,0].concat(b.splice(w,c+1))),r.dequeue()}})(jQuery);
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-includes/js/jquery/ui/jquery.ui.effect-clip.min.js	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,5 @@
+/*! jQuery UI - v1.9.2 - 2012-11-23
+* http://jqueryui.com
+* Includes: jquery.ui.effect-clip.js
+* Copyright 2012 jQuery Foundation and other contributors; Licensed MIT */
+(function(e,t){e.effects.effect.clip=function(t,n){var r=e(this),i=["position","top","bottom","left","right","height","width"],s=e.effects.setMode(r,t.mode||"hide"),o=s==="show",u=t.direction||"vertical",a=u==="vertical",f=a?"height":"width",l=a?"top":"left",c={},h,p,d;e.effects.save(r,i),r.show(),h=e.effects.createWrapper(r).css({overflow:"hidden"}),p=r[0].tagName==="IMG"?h:r,d=p[f](),o&&(p.css(f,0),p.css(l,d/2)),c[f]=o?d:0,c[l]=o?0:d/2,p.animate(c,{queue:!1,duration:t.duration,easing:t.easing,complete:function(){o||r.hide(),e.effects.restore(r,i),e.effects.removeWrapper(r),n()}})}})(jQuery);
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-includes/js/jquery/ui/jquery.ui.effect-drop.min.js	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,5 @@
+/*! jQuery UI - v1.9.2 - 2012-11-23
+* http://jqueryui.com
+* Includes: jquery.ui.effect-drop.js
+* Copyright 2012 jQuery Foundation and other contributors; Licensed MIT */
+(function(e,t){e.effects.effect.drop=function(t,n){var r=e(this),i=["position","top","bottom","left","right","opacity","height","width"],s=e.effects.setMode(r,t.mode||"hide"),o=s==="show",u=t.direction||"left",a=u==="up"||u==="down"?"top":"left",f=u==="up"||u==="left"?"pos":"neg",l={opacity:o?1:0},c;e.effects.save(r,i),r.show(),e.effects.createWrapper(r),c=t.distance||r[a==="top"?"outerHeight":"outerWidth"](!0)/2,o&&r.css("opacity",0).css(a,f==="pos"?-c:c),l[a]=(o?f==="pos"?"+=":"-=":f==="pos"?"-=":"+=")+c,r.animate(l,{queue:!1,duration:t.duration,easing:t.easing,complete:function(){s==="hide"&&r.hide(),e.effects.restore(r,i),e.effects.removeWrapper(r),n()}})}})(jQuery);
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-includes/js/jquery/ui/jquery.ui.effect-explode.min.js	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,5 @@
+/*! jQuery UI - v1.9.2 - 2012-11-23
+* http://jqueryui.com
+* Includes: jquery.ui.effect-explode.js
+* Copyright 2012 jQuery Foundation and other contributors; Licensed MIT */
+(function(e,t){e.effects.effect.explode=function(t,n){function y(){c.push(this),c.length===r*i&&b()}function b(){s.css({visibility:"visible"}),e(c).remove(),u||s.hide(),n()}var r=t.pieces?Math.round(Math.sqrt(t.pieces)):3,i=r,s=e(this),o=e.effects.setMode(s,t.mode||"hide"),u=o==="show",a=s.show().css("visibility","hidden").offset(),f=Math.ceil(s.outerWidth()/i),l=Math.ceil(s.outerHeight()/r),c=[],h,p,d,v,m,g;for(h=0;h<r;h++){v=a.top+h*l,g=h-(r-1)/2;for(p=0;p<i;p++)d=a.left+p*f,m=p-(i-1)/2,s.clone().appendTo("body").wrap("<div></div>").css({position:"absolute",visibility:"visible",left:-p*f,top:-h*l}).parent().addClass("ui-effects-explode").css({position:"absolute",overflow:"hidden",width:f,height:l,left:d+(u?m*f:0),top:v+(u?g*l:0),opacity:u?0:1}).animate({left:d+(u?0:m*f),top:v+(u?0:g*l),opacity:u?1:0},t.duration||500,t.easing,y)}}})(jQuery);
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-includes/js/jquery/ui/jquery.ui.effect-fade.min.js	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,5 @@
+/*! jQuery UI - v1.9.2 - 2012-11-23
+* http://jqueryui.com
+* Includes: jquery.ui.effect-fade.js
+* Copyright 2012 jQuery Foundation and other contributors; Licensed MIT */
+(function(e,t){e.effects.effect.fade=function(t,n){var r=e(this),i=e.effects.setMode(r,t.mode||"toggle");r.animate({opacity:i},{queue:!1,duration:t.duration,easing:t.easing,complete:n})}})(jQuery);
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-includes/js/jquery/ui/jquery.ui.effect-fold.min.js	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,5 @@
+/*! jQuery UI - v1.9.2 - 2012-11-23
+* http://jqueryui.com
+* Includes: jquery.ui.effect-fold.js
+* Copyright 2012 jQuery Foundation and other contributors; Licensed MIT */
+(function(e,t){e.effects.effect.fold=function(t,n){var r=e(this),i=["position","top","bottom","left","right","height","width"],s=e.effects.setMode(r,t.mode||"hide"),o=s==="show",u=s==="hide",a=t.size||15,f=/([0-9]+)%/.exec(a),l=!!t.horizFirst,c=o!==l,h=c?["width","height"]:["height","width"],p=t.duration/2,d,v,m={},g={};e.effects.save(r,i),r.show(),d=e.effects.createWrapper(r).css({overflow:"hidden"}),v=c?[d.width(),d.height()]:[d.height(),d.width()],f&&(a=parseInt(f[1],10)/100*v[u?0:1]),o&&d.css(l?{height:0,width:a}:{height:a,width:0}),m[h[0]]=o?v[0]:a,g[h[1]]=o?v[1]:0,d.animate(m,p,t.easing).animate(g,p,t.easing,function(){u&&r.hide(),e.effects.restore(r,i),e.effects.removeWrapper(r),n()})}})(jQuery);
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-includes/js/jquery/ui/jquery.ui.effect-highlight.min.js	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,5 @@
+/*! jQuery UI - v1.9.2 - 2012-11-23
+* http://jqueryui.com
+* Includes: jquery.ui.effect-highlight.js
+* Copyright 2012 jQuery Foundation and other contributors; Licensed MIT */
+(function(e,t){e.effects.effect.highlight=function(t,n){var r=e(this),i=["backgroundImage","backgroundColor","opacity"],s=e.effects.setMode(r,t.mode||"show"),o={backgroundColor:r.css("backgroundColor")};s==="hide"&&(o.opacity=0),e.effects.save(r,i),r.show().css({backgroundImage:"none",backgroundColor:t.color||"#ffff99"}).animate(o,{queue:!1,duration:t.duration,easing:t.easing,complete:function(){s==="hide"&&r.hide(),e.effects.restore(r,i),n()}})}})(jQuery);
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-includes/js/jquery/ui/jquery.ui.effect-pulsate.min.js	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,5 @@
+/*! jQuery UI - v1.9.2 - 2012-11-23
+* http://jqueryui.com
+* Includes: jquery.ui.effect-pulsate.js
+* Copyright 2012 jQuery Foundation and other contributors; Licensed MIT */
+(function(e,t){e.effects.effect.pulsate=function(t,n){var r=e(this),i=e.effects.setMode(r,t.mode||"show"),s=i==="show",o=i==="hide",u=s||i==="hide",a=(t.times||5)*2+(u?1:0),f=t.duration/a,l=0,c=r.queue(),h=c.length,p;if(s||!r.is(":visible"))r.css("opacity",0).show(),l=1;for(p=1;p<a;p++)r.animate({opacity:l},f,t.easing),l=1-l;r.animate({opacity:l},f,t.easing),r.queue(function(){o&&r.hide(),n()}),h>1&&c.splice.apply(c,[1,0].concat(c.splice(h,a+1))),r.dequeue()}})(jQuery);
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-includes/js/jquery/ui/jquery.ui.effect-scale.min.js	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,5 @@
+/*! jQuery UI - v1.9.2 - 2012-11-23
+* http://jqueryui.com
+* Includes: jquery.ui.effect-scale.js
+* Copyright 2012 jQuery Foundation and other contributors; Licensed MIT */
+(function(e,t){e.effects.effect.puff=function(t,n){var r=e(this),i=e.effects.setMode(r,t.mode||"hide"),s=i==="hide",o=parseInt(t.percent,10)||150,u=o/100,a={height:r.height(),width:r.width(),outerHeight:r.outerHeight(),outerWidth:r.outerWidth()};e.extend(t,{effect:"scale",queue:!1,fade:!0,mode:i,complete:n,percent:s?o:100,from:s?a:{height:a.height*u,width:a.width*u,outerHeight:a.outerHeight*u,outerWidth:a.outerWidth*u}}),r.effect(t)},e.effects.effect.scale=function(t,n){var r=e(this),i=e.extend(!0,{},t),s=e.effects.setMode(r,t.mode||"effect"),o=parseInt(t.percent,10)||(parseInt(t.percent,10)===0?0:s==="hide"?0:100),u=t.direction||"both",a=t.origin,f={height:r.height(),width:r.width(),outerHeight:r.outerHeight(),outerWidth:r.outerWidth()},l={y:u!=="horizontal"?o/100:1,x:u!=="vertical"?o/100:1};i.effect="size",i.queue=!1,i.complete=n,s!=="effect"&&(i.origin=a||["middle","center"],i.restore=!0),i.from=t.from||(s==="show"?{height:0,width:0,outerHeight:0,outerWidth:0}:f),i.to={height:f.height*l.y,width:f.width*l.x,outerHeight:f.outerHeight*l.y,outerWidth:f.outerWidth*l.x},i.fade&&(s==="show"&&(i.from.opacity=0,i.to.opacity=1),s==="hide"&&(i.from.opacity=1,i.to.opacity=0)),r.effect(i)},e.effects.effect.size=function(t,n){var r,i,s,o=e(this),u=["position","top","bottom","left","right","width","height","overflow","opacity"],a=["position","top","bottom","left","right","overflow","opacity"],f=["width","height","overflow"],l=["fontSize"],c=["borderTopWidth","borderBottomWidth","paddingTop","paddingBottom"],h=["borderLeftWidth","borderRightWidth","paddingLeft","paddingRight"],p=e.effects.setMode(o,t.mode||"effect"),d=t.restore||p!=="effect",v=t.scale||"both",m=t.origin||["middle","center"],g=o.css("position"),y=d?u:a,b={height:0,width:0,outerHeight:0,outerWidth:0};p==="show"&&o.show(),r={height:o.height(),width:o.width(),outerHeight:o.outerHeight(),outerWidth:o.outerWidth()},t.mode==="toggle"&&p==="show"?(o.from=t.to||b,o.to=t.from||r):(o.from=t.from||(p==="show"?b:r),o.to=t.to||(p==="hide"?b:r)),s={from:{y:o.from.height/r.height,x:o.from.width/r.width},to:{y:o.to.height/r.height,x:o.to.width/r.width}};if(v==="box"||v==="both")s.from.y!==s.to.y&&(y=y.concat(c),o.from=e.effects.setTransition(o,c,s.from.y,o.from),o.to=e.effects.setTransition(o,c,s.to.y,o.to)),s.from.x!==s.to.x&&(y=y.concat(h),o.from=e.effects.setTransition(o,h,s.from.x,o.from),o.to=e.effects.setTransition(o,h,s.to.x,o.to));(v==="content"||v==="both")&&s.from.y!==s.to.y&&(y=y.concat(l).concat(f),o.from=e.effects.setTransition(o,l,s.from.y,o.from),o.to=e.effects.setTransition(o,l,s.to.y,o.to)),e.effects.save(o,y),o.show(),e.effects.createWrapper(o),o.css("overflow","hidden").css(o.from),m&&(i=e.effects.getBaseline(m,r),o.from.top=(r.outerHeight-o.outerHeight())*i.y,o.from.left=(r.outerWidth-o.outerWidth())*i.x,o.to.top=(r.outerHeight-o.to.outerHeight)*i.y,o.to.left=(r.outerWidth-o.to.outerWidth)*i.x),o.css(o.from);if(v==="content"||v==="both")c=c.concat(["marginTop","marginBottom"]).concat(l),h=h.concat(["marginLeft","marginRight"]),f=u.concat(c).concat(h),o.find("*[width]").each(function(){var n=e(this),r={height:n.height(),width:n.width(),outerHeight:n.outerHeight(),outerWidth:n.outerWidth()};d&&e.effects.save(n,f),n.from={height:r.height*s.from.y,width:r.width*s.from.x,outerHeight:r.outerHeight*s.from.y,outerWidth:r.outerWidth*s.from.x},n.to={height:r.height*s.to.y,width:r.width*s.to.x,outerHeight:r.height*s.to.y,outerWidth:r.width*s.to.x},s.from.y!==s.to.y&&(n.from=e.effects.setTransition(n,c,s.from.y,n.from),n.to=e.effects.setTransition(n,c,s.to.y,n.to)),s.from.x!==s.to.x&&(n.from=e.effects.setTransition(n,h,s.from.x,n.from),n.to=e.effects.setTransition(n,h,s.to.x,n.to)),n.css(n.from),n.animate(n.to,t.duration,t.easing,function(){d&&e.effects.restore(n,f)})});o.animate(o.to,{queue:!1,duration:t.duration,easing:t.easing,complete:function(){o.to.opacity===0&&o.css("opacity",o.from.opacity),p==="hide"&&o.hide(),e.effects.restore(o,y),d||(g==="static"?o.css({position:"relative",top:o.to.top,left:o.to.left}):e.each(["top","left"],function(e,t){o.css(t,function(t,n){var r=parseInt(n,10),i=e?o.to.left:o.to.top;return n==="auto"?i+"px":r+i+"px"})})),e.effects.removeWrapper(o),n()}})}})(jQuery);
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-includes/js/jquery/ui/jquery.ui.effect-shake.min.js	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,5 @@
+/*! jQuery UI - v1.9.2 - 2012-11-23
+* http://jqueryui.com
+* Includes: jquery.ui.effect-shake.js
+* Copyright 2012 jQuery Foundation and other contributors; Licensed MIT */
+(function(e,t){e.effects.effect.shake=function(t,n){var r=e(this),i=["position","top","bottom","left","right","height","width"],s=e.effects.setMode(r,t.mode||"effect"),o=t.direction||"left",u=t.distance||20,a=t.times||3,f=a*2+1,l=Math.round(t.duration/f),c=o==="up"||o==="down"?"top":"left",h=o==="up"||o==="left",p={},d={},v={},m,g=r.queue(),y=g.length;e.effects.save(r,i),r.show(),e.effects.createWrapper(r),p[c]=(h?"-=":"+=")+u,d[c]=(h?"+=":"-=")+u*2,v[c]=(h?"-=":"+=")+u*2,r.animate(p,l,t.easing);for(m=1;m<a;m++)r.animate(d,l,t.easing).animate(v,l,t.easing);r.animate(d,l,t.easing).animate(p,l/2,t.easing).queue(function(){s==="hide"&&r.hide(),e.effects.restore(r,i),e.effects.removeWrapper(r),n()}),y>1&&g.splice.apply(g,[1,0].concat(g.splice(y,f+1))),r.dequeue()}})(jQuery);
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-includes/js/jquery/ui/jquery.ui.effect-slide.min.js	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,5 @@
+/*! jQuery UI - v1.9.2 - 2012-11-23
+* http://jqueryui.com
+* Includes: jquery.ui.effect-slide.js
+* Copyright 2012 jQuery Foundation and other contributors; Licensed MIT */
+(function(e,t){e.effects.effect.slide=function(t,n){var r=e(this),i=["position","top","bottom","left","right","width","height"],s=e.effects.setMode(r,t.mode||"show"),o=s==="show",u=t.direction||"left",a=u==="up"||u==="down"?"top":"left",f=u==="up"||u==="left",l,c={};e.effects.save(r,i),r.show(),l=t.distance||r[a==="top"?"outerHeight":"outerWidth"](!0),e.effects.createWrapper(r).css({overflow:"hidden"}),o&&r.css(a,f?isNaN(l)?"-"+l:-l:l),c[a]=(o?f?"+=":"-=":f?"-=":"+=")+l,r.animate(c,{queue:!1,duration:t.duration,easing:t.easing,complete:function(){s==="hide"&&r.hide(),e.effects.restore(r,i),e.effects.removeWrapper(r),n()}})}})(jQuery);
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-includes/js/jquery/ui/jquery.ui.effect-transfer.min.js	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,5 @@
+/*! jQuery UI - v1.9.2 - 2012-11-23
+* http://jqueryui.com
+* Includes: jquery.ui.effect-transfer.js
+* Copyright 2012 jQuery Foundation and other contributors; Licensed MIT */
+(function(e,t){e.effects.effect.transfer=function(t,n){var r=e(this),i=e(t.to),s=i.css("position")==="fixed",o=e("body"),u=s?o.scrollTop():0,a=s?o.scrollLeft():0,f=i.offset(),l={top:f.top-u,left:f.left-a,height:i.innerHeight(),width:i.innerWidth()},c=r.offset(),h=e('<div class="ui-effects-transfer"></div>').appendTo(document.body).addClass(t.className).css({top:c.top-u,left:c.left-a,height:r.innerHeight(),width:r.innerWidth(),position:s?"fixed":"absolute"}).animate(l,t.duration,t.easing,function(){h.remove(),n()})}})(jQuery);
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-includes/js/jquery/ui/jquery.ui.effect.min.js	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,5 @@
+/*! jQuery UI - v1.9.2 - 2012-11-23
+* http://jqueryui.com
+* Includes: jquery.ui.effect.js
+* Copyright 2012 jQuery Foundation and other contributors; Licensed MIT */
+jQuery.effects||function(e,t){var n=e.uiBackCompat!==!1,r="ui-effects-";e.effects={effect:{}},function(t,n){function p(e,t,n){var r=a[t.type]||{};return e==null?n||!t.def?null:t.def:(e=r.floor?~~e:parseFloat(e),isNaN(e)?t.def:r.mod?(e+r.mod)%r.mod:0>e?0:r.max<e?r.max:e)}function d(e){var n=o(),r=n._rgba=[];return e=e.toLowerCase(),h(s,function(t,i){var s,o=i.re.exec(e),a=o&&i.parse(o),f=i.space||"rgba";if(a)return s=n[f](a),n[u[f].cache]=s[u[f].cache],r=n._rgba=s._rgba,!1}),r.length?(r.join()==="0,0,0,0"&&t.extend(r,c.transparent),n):c[e]}function v(e,t,n){return n=(n+1)%1,n*6<1?e+(t-e)*n*6:n*2<1?t:n*3<2?e+(t-e)*(2/3-n)*6:e}var r="backgroundColor borderBottomColor borderLeftColor borderRightColor borderTopColor color columnRuleColor outlineColor textDecorationColor textEmphasisColor".split(" "),i=/^([\-+])=\s*(\d+\.?\d*)/,s=[{re:/rgba?\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*(?:,\s*(\d+(?:\.\d+)?)\s*)?\)/,parse:function(e){return[e[1],e[2],e[3],e[4]]}},{re:/rgba?\(\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d+(?:\.\d+)?)\s*)?\)/,parse:function(e){return[e[1]*2.55,e[2]*2.55,e[3]*2.55,e[4]]}},{re:/#([a-f0-9]{2})([a-f0-9]{2})([a-f0-9]{2})/,parse:function(e){return[parseInt(e[1],16),parseInt(e[2],16),parseInt(e[3],16)]}},{re:/#([a-f0-9])([a-f0-9])([a-f0-9])/,parse:function(e){return[parseInt(e[1]+e[1],16),parseInt(e[2]+e[2],16),parseInt(e[3]+e[3],16)]}},{re:/hsla?\(\s*(\d+(?:\.\d+)?)\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d+(?:\.\d+)?)\s*)?\)/,space:"hsla",parse:function(e){return[e[1],e[2]/100,e[3]/100,e[4]]}}],o=t.Color=function(e,n,r,i){return new t.Color.fn.parse(e,n,r,i)},u={rgba:{props:{red:{idx:0,type:"byte"},green:{idx:1,type:"byte"},blue:{idx:2,type:"byte"}}},hsla:{props:{hue:{idx:0,type:"degrees"},saturation:{idx:1,type:"percent"},lightness:{idx:2,type:"percent"}}}},a={"byte":{floor:!0,max:255},percent:{max:1},degrees:{mod:360,floor:!0}},f=o.support={},l=t("<p>")[0],c,h=t.each;l.style.cssText="background-color:rgba(1,1,1,.5)",f.rgba=l.style.backgroundColor.indexOf("rgba")>-1,h(u,function(e,t){t.cache="_"+e,t.props.alpha={idx:3,type:"percent",def:1}}),o.fn=t.extend(o.prototype,{parse:function(r,i,s,a){if(r===n)return this._rgba=[null,null,null,null],this;if(r.jquery||r.nodeType)r=t(r).css(i),i=n;var f=this,l=t.type(r),v=this._rgba=[];i!==n&&(r=[r,i,s,a],l="array");if(l==="string")return this.parse(d(r)||c._default);if(l==="array")return h(u.rgba.props,function(e,t){v[t.idx]=p(r[t.idx],t)}),this;if(l==="object")return r instanceof o?h(u,function(e,t){r[t.cache]&&(f[t.cache]=r[t.cache].slice())}):h(u,function(t,n){var i=n.cache;h(n.props,function(e,t){if(!f[i]&&n.to){if(e==="alpha"||r[e]==null)return;f[i]=n.to(f._rgba)}f[i][t.idx]=p(r[e],t,!0)}),f[i]&&e.inArray(null,f[i].slice(0,3))<0&&(f[i][3]=1,n.from&&(f._rgba=n.from(f[i])))}),this},is:function(e){var t=o(e),n=!0,r=this;return h(u,function(e,i){var s,o=t[i.cache];return o&&(s=r[i.cache]||i.to&&i.to(r._rgba)||[],h(i.props,function(e,t){if(o[t.idx]!=null)return n=o[t.idx]===s[t.idx],n})),n}),n},_space:function(){var e=[],t=this;return h(u,function(n,r){t[r.cache]&&e.push(n)}),e.pop()},transition:function(e,t){var n=o(e),r=n._space(),i=u[r],s=this.alpha()===0?o("transparent"):this,f=s[i.cache]||i.to(s._rgba),l=f.slice();return n=n[i.cache],h(i.props,function(e,r){var i=r.idx,s=f[i],o=n[i],u=a[r.type]||{};if(o===null)return;s===null?l[i]=o:(u.mod&&(o-s>u.mod/2?s+=u.mod:s-o>u.mod/2&&(s-=u.mod)),l[i]=p((o-s)*t+s,r))}),this[r](l)},blend:function(e){if(this._rgba[3]===1)return this;var n=this._rgba.slice(),r=n.pop(),i=o(e)._rgba;return o(t.map(n,function(e,t){return(1-r)*i[t]+r*e}))},toRgbaString:function(){var e="rgba(",n=t.map(this._rgba,function(e,t){return e==null?t>2?1:0:e});return n[3]===1&&(n.pop(),e="rgb("),e+n.join()+")"},toHslaString:function(){var e="hsla(",n=t.map(this.hsla(),function(e,t){return e==null&&(e=t>2?1:0),t&&t<3&&(e=Math.round(e*100)+"%"),e});return n[3]===1&&(n.pop(),e="hsl("),e+n.join()+")"},toHexString:function(e){var n=this._rgba.slice(),r=n.pop();return e&&n.push(~~(r*255)),"#"+t.map(n,function(e){return e=(e||0).toString(16),e.length===1?"0"+e:e}).join("")},toString:function(){return this._rgba[3]===0?"transparent":this.toRgbaString()}}),o.fn.parse.prototype=o.fn,u.hsla.to=function(e){if(e[0]==null||e[1]==null||e[2]==null)return[null,null,null,e[3]];var t=e[0]/255,n=e[1]/255,r=e[2]/255,i=e[3],s=Math.max(t,n,r),o=Math.min(t,n,r),u=s-o,a=s+o,f=a*.5,l,c;return o===s?l=0:t===s?l=60*(n-r)/u+360:n===s?l=60*(r-t)/u+120:l=60*(t-n)/u+240,f===0||f===1?c=f:f<=.5?c=u/a:c=u/(2-a),[Math.round(l)%360,c,f,i==null?1:i]},u.hsla.from=function(e){if(e[0]==null||e[1]==null||e[2]==null)return[null,null,null,e[3]];var t=e[0]/360,n=e[1],r=e[2],i=e[3],s=r<=.5?r*(1+n):r+n-r*n,o=2*r-s;return[Math.round(v(o,s,t+1/3)*255),Math.round(v(o,s,t)*255),Math.round(v(o,s,t-1/3)*255),i]},h(u,function(e,r){var s=r.props,u=r.cache,a=r.to,f=r.from;o.fn[e]=function(e){a&&!this[u]&&(this[u]=a(this._rgba));if(e===n)return this[u].slice();var r,i=t.type(e),l=i==="array"||i==="object"?e:arguments,c=this[u].slice();return h(s,function(e,t){var n=l[i==="object"?e:t.idx];n==null&&(n=c[t.idx]),c[t.idx]=p(n,t)}),f?(r=o(f(c)),r[u]=c,r):o(c)},h(s,function(n,r){if(o.fn[n])return;o.fn[n]=function(s){var o=t.type(s),u=n==="alpha"?this._hsla?"hsla":"rgba":e,a=this[u](),f=a[r.idx],l;return o==="undefined"?f:(o==="function"&&(s=s.call(this,f),o=t.type(s)),s==null&&r.empty?this:(o==="string"&&(l=i.exec(s),l&&(s=f+parseFloat(l[2])*(l[1]==="+"?1:-1))),a[r.idx]=s,this[u](a)))}})}),h(r,function(e,n){t.cssHooks[n]={set:function(e,r){var i,s,u="";if(t.type(r)!=="string"||(i=d(r))){r=o(i||r);if(!f.rgba&&r._rgba[3]!==1){s=n==="backgroundColor"?e.parentNode:e;while((u===""||u==="transparent")&&s&&s.style)try{u=t.css(s,"backgroundColor"),s=s.parentNode}catch(a){}r=r.blend(u&&u!=="transparent"?u:"_default")}r=r.toRgbaString()}try{e.style[n]=r}catch(l){}}},t.fx.step[n]=function(e){e.colorInit||(e.start=o(e.elem,n),e.end=o(e.end),e.colorInit=!0),t.cssHooks[n].set(e.elem,e.start.transition(e.end,e.pos))}}),t.cssHooks.borderColor={expand:function(e){var t={};return h(["Top","Right","Bottom","Left"],function(n,r){t["border"+r+"Color"]=e}),t}},c=t.Color.names={aqua:"#00ffff",black:"#000000",blue:"#0000ff",fuchsia:"#ff00ff",gray:"#808080",green:"#008000",lime:"#00ff00",maroon:"#800000",navy:"#000080",olive:"#808000",purple:"#800080",red:"#ff0000",silver:"#c0c0c0",teal:"#008080",white:"#ffffff",yellow:"#ffff00",transparent:[null,null,null,0],_default:"#ffffff"}}(jQuery),function(){function i(){var t=this.ownerDocument.defaultView?this.ownerDocument.defaultView.getComputedStyle(this,null):this.currentStyle,n={},r,i;if(t&&t.length&&t[0]&&t[t[0]]){i=t.length;while(i--)r=t[i],typeof t[r]=="string"&&(n[e.camelCase(r)]=t[r])}else for(r in t)typeof t[r]=="string"&&(n[r]=t[r]);return n}function s(t,n){var i={},s,o;for(s in n)o=n[s],t[s]!==o&&!r[s]&&(e.fx.step[s]||!isNaN(parseFloat(o)))&&(i[s]=o);return i}var n=["add","remove","toggle"],r={border:1,borderBottom:1,borderColor:1,borderLeft:1,borderRight:1,borderTop:1,borderWidth:1,margin:1,padding:1};e.each(["borderLeftStyle","borderRightStyle","borderBottomStyle","borderTopStyle"],function(t,n){e.fx.step[n]=function(e){if(e.end!=="none"&&!e.setAttr||e.pos===1&&!e.setAttr)jQuery.style(e.elem,n,e.end),e.setAttr=!0}}),e.effects.animateClass=function(t,r,o,u){var a=e.speed(r,o,u);return this.queue(function(){var r=e(this),o=r.attr("class")||"",u,f=a.children?r.find("*").andSelf():r;f=f.map(function(){var t=e(this);return{el:t,start:i.call(this)}}),u=function(){e.each(n,function(e,n){t[n]&&r[n+"Class"](t[n])})},u(),f=f.map(function(){return this.end=i.call(this.el[0]),this.diff=s(this.start,this.end),this}),r.attr("class",o),f=f.map(function(){var t=this,n=e.Deferred(),r=jQuery.extend({},a,{queue:!1,complete:function(){n.resolve(t)}});return this.el.animate(this.diff,r),n.promise()}),e.when.apply(e,f.get()).done(function(){u(),e.each(arguments,function(){var t=this.el;e.each(this.diff,function(e){t.css(e,"")})}),a.complete.call(r[0])})})},e.fn.extend({_addClass:e.fn.addClass,addClass:function(t,n,r,i){return n?e.effects.animateClass.call(this,{add:t},n,r,i):this._addClass(t)},_removeClass:e.fn.removeClass,removeClass:function(t,n,r,i){return n?e.effects.animateClass.call(this,{remove:t},n,r,i):this._removeClass(t)},_toggleClass:e.fn.toggleClass,toggleClass:function(n,r,i,s,o){return typeof r=="boolean"||r===t?i?e.effects.animateClass.call(this,r?{add:n}:{remove:n},i,s,o):this._toggleClass(n,r):e.effects.animateClass.call(this,{toggle:n},r,i,s)},switchClass:function(t,n,r,i,s){return e.effects.animateClass.call(this,{add:n,remove:t},r,i,s)}})}(),function(){function i(t,n,r,i){e.isPlainObject(t)&&(n=t,t=t.effect),t={effect:t},n==null&&(n={}),e.isFunction(n)&&(i=n,r=null,n={});if(typeof n=="number"||e.fx.speeds[n])i=r,r=n,n={};return e.isFunction(r)&&(i=r,r=null),n&&e.extend(t,n),r=r||n.duration,t.duration=e.fx.off?0:typeof r=="number"?r:r in e.fx.speeds?e.fx.speeds[r]:e.fx.speeds._default,t.complete=i||n.complete,t}function s(t){return!t||typeof t=="number"||e.fx.speeds[t]?!0:typeof t=="string"&&!e.effects.effect[t]?n&&e.effects[t]?!1:!0:!1}e.extend(e.effects,{version:"1.9.2",save:function(e,t){for(var n=0;n<t.length;n++)t[n]!==null&&e.data(r+t[n],e[0].style[t[n]])},restore:function(e,n){var i,s;for(s=0;s<n.length;s++)n[s]!==null&&(i=e.data(r+n[s]),i===t&&(i=""),e.css(n[s],i))},setMode:function(e,t){return t==="toggle"&&(t=e.is(":hidden")?"show":"hide"),t},getBaseline:function(e,t){var n,r;switch(e[0]){case"top":n=0;break;case"middle":n=.5;break;case"bottom":n=1;break;default:n=e[0]/t.height}switch(e[1]){case"left":r=0;break;case"center":r=.5;break;case"right":r=1;break;default:r=e[1]/t.width}return{x:r,y:n}},createWrapper:function(t){if(t.parent().is(".ui-effects-wrapper"))return t.parent();var n={width:t.outerWidth(!0),height:t.outerHeight(!0),"float":t.css("float")},r=e("<div></div>").addClass("ui-effects-wrapper").css({fontSize:"100%",background:"transparent",border:"none",margin:0,padding:0}),i={width:t.width(),height:t.height()},s=document.activeElement;try{s.id}catch(o){s=document.body}return t.wrap(r),(t[0]===s||e.contains(t[0],s))&&e(s).focus(),r=t.parent(),t.css("position")==="static"?(r.css({position:"relative"}),t.css({position:"relative"})):(e.extend(n,{position:t.css("position"),zIndex:t.css("z-index")}),e.each(["top","left","bottom","right"],function(e,r){n[r]=t.css(r),isNaN(parseInt(n[r],10))&&(n[r]="auto")}),t.css({position:"relative",top:0,left:0,right:"auto",bottom:"auto"})),t.css(i),r.css(n).show()},removeWrapper:function(t){var n=document.activeElement;return t.parent().is(".ui-effects-wrapper")&&(t.parent().replaceWith(t),(t[0]===n||e.contains(t[0],n))&&e(n).focus()),t},setTransition:function(t,n,r,i){return i=i||{},e.each(n,function(e,n){var s=t.cssUnit(n);s[0]>0&&(i[n]=s[0]*r+s[1])}),i}}),e.fn.extend({effect:function(){function a(n){function u(){e.isFunction(i)&&i.call(r[0]),e.isFunction(n)&&n()}var r=e(this),i=t.complete,s=t.mode;(r.is(":hidden")?s==="hide":s==="show")?u():o.call(r[0],t,u)}var t=i.apply(this,arguments),r=t.mode,s=t.queue,o=e.effects.effect[t.effect],u=!o&&n&&e.effects[t.effect];return e.fx.off||!o&&!u?r?this[r](t.duration,t.complete):this.each(function(){t.complete&&t.complete.call(this)}):o?s===!1?this.each(a):this.queue(s||"fx",a):u.call(this,{options:t,duration:t.duration,callback:t.complete,mode:t.mode})},_show:e.fn.show,show:function(e){if(s(e))return this._show.apply(this,arguments);var t=i.apply(this,arguments);return t.mode="show",this.effect.call(this,t)},_hide:e.fn.hide,hide:function(e){if(s(e))return this._hide.apply(this,arguments);var t=i.apply(this,arguments);return t.mode="hide",this.effect.call(this,t)},__toggle:e.fn.toggle,toggle:function(t){if(s(t)||typeof t=="boolean"||e.isFunction(t))return this.__toggle.apply(this,arguments);var n=i.apply(this,arguments);return n.mode="toggle",this.effect.call(this,n)},cssUnit:function(t){var n=this.css(t),r=[];return e.each(["em","px","%","pt"],function(e,t){n.indexOf(t)>0&&(r=[parseFloat(n),t])}),r}})}(),function(){var t={};e.each(["Quad","Cubic","Quart","Quint","Expo"],function(e,n){t[n]=function(t){return Math.pow(t,e+2)}}),e.extend(t,{Sine:function(e){return 1-Math.cos(e*Math.PI/2)},Circ:function(e){return 1-Math.sqrt(1-e*e)},Elastic:function(e){return e===0||e===1?e:-Math.pow(2,8*(e-1))*Math.sin(((e-1)*80-7.5)*Math.PI/15)},Back:function(e){return e*e*(3*e-2)},Bounce:function(e){var t,n=4;while(e<((t=Math.pow(2,--n))-1)/11);return 1/Math.pow(4,3-n)-7.5625*Math.pow((t*3-2)/22-e,2)}}),e.each(t,function(t,n){e.easing["easeIn"+t]=n,e.easing["easeOut"+t]=function(e){return 1-n(1-e)},e.easing["easeInOut"+t]=function(e){return e<.5?n(e*2)/2:1-n(e*-2+2)/2}})}()}(jQuery);
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-includes/js/jquery/ui/jquery.ui.menu.min.js	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,5 @@
+/*! jQuery UI - v1.9.2 - 2012-11-23
+* http://jqueryui.com
+* Includes: jquery.ui.menu.js
+* Copyright 2012 jQuery Foundation and other contributors; Licensed MIT */
+(function(e,t){var n=!1;e.widget("ui.menu",{version:"1.9.2",defaultElement:"<ul>",delay:300,options:{icons:{submenu:"ui-icon-carat-1-e"},menus:"ul",position:{my:"left top",at:"right top"},role:"menu",blur:null,focus:null,select:null},_create:function(){this.activeMenu=this.element,this.element.uniqueId().addClass("ui-menu ui-widget ui-widget-content ui-corner-all").toggleClass("ui-menu-icons",!!this.element.find(".ui-icon").length).attr({role:this.options.role,tabIndex:0}).bind("click"+this.eventNamespace,e.proxy(function(e){this.options.disabled&&e.preventDefault()},this)),this.options.disabled&&this.element.addClass("ui-state-disabled").attr("aria-disabled","true"),this._on({"mousedown .ui-menu-item > a":function(e){e.preventDefault()},"click .ui-state-disabled > a":function(e){e.preventDefault()},"click .ui-menu-item:has(a)":function(t){var r=e(t.target).closest(".ui-menu-item");!n&&r.not(".ui-state-disabled").length&&(n=!0,this.select(t),r.has(".ui-menu").length?this.expand(t):this.element.is(":focus")||(this.element.trigger("focus",[!0]),this.active&&this.active.parents(".ui-menu").length===1&&clearTimeout(this.timer)))},"mouseenter .ui-menu-item":function(t){var n=e(t.currentTarget);n.siblings().children(".ui-state-active").removeClass("ui-state-active"),this.focus(t,n)},mouseleave:"collapseAll","mouseleave .ui-menu":"collapseAll",focus:function(e,t){var n=this.active||this.element.children(".ui-menu-item").eq(0);t||this.focus(e,n)},blur:function(t){this._delay(function(){e.contains(this.element[0],this.document[0].activeElement)||this.collapseAll(t)})},keydown:"_keydown"}),this.refresh(),this._on(this.document,{click:function(t){e(t.target).closest(".ui-menu").length||this.collapseAll(t),n=!1}})},_destroy:function(){this.element.removeAttr("aria-activedescendant").find(".ui-menu").andSelf().removeClass("ui-menu ui-widget ui-widget-content ui-corner-all ui-menu-icons").removeAttr("role").removeAttr("tabIndex").removeAttr("aria-labelledby").removeAttr("aria-expanded").removeAttr("aria-hidden").removeAttr("aria-disabled").removeUniqueId().show(),this.element.find(".ui-menu-item").removeClass("ui-menu-item").removeAttr("role").removeAttr("aria-disabled").children("a").removeUniqueId().removeClass("ui-corner-all ui-state-hover").removeAttr("tabIndex").removeAttr("role").removeAttr("aria-haspopup").children().each(function(){var t=e(this);t.data("ui-menu-submenu-carat")&&t.remove()}),this.element.find(".ui-menu-divider").removeClass("ui-menu-divider ui-widget-content")},_keydown:function(t){function a(e){return e.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")}var n,r,i,s,o,u=!0;switch(t.keyCode){case e.ui.keyCode.PAGE_UP:this.previousPage(t);break;case e.ui.keyCode.PAGE_DOWN:this.nextPage(t);break;case e.ui.keyCode.HOME:this._move("first","first",t);break;case e.ui.keyCode.END:this._move("last","last",t);break;case e.ui.keyCode.UP:this.previous(t);break;case e.ui.keyCode.DOWN:this.next(t);break;case e.ui.keyCode.LEFT:this.collapse(t);break;case e.ui.keyCode.RIGHT:this.active&&!this.active.is(".ui-state-disabled")&&this.expand(t);break;case e.ui.keyCode.ENTER:case e.ui.keyCode.SPACE:this._activate(t);break;case e.ui.keyCode.ESCAPE:this.collapse(t);break;default:u=!1,r=this.previousFilter||"",i=String.fromCharCode(t.keyCode),s=!1,clearTimeout(this.filterTimer),i===r?s=!0:i=r+i,o=new RegExp("^"+a(i),"i"),n=this.activeMenu.children(".ui-menu-item").filter(function(){return o.test(e(this).children("a").text())}),n=s&&n.index(this.active.next())!==-1?this.active.nextAll(".ui-menu-item"):n,n.length||(i=String.fromCharCode(t.keyCode),o=new RegExp("^"+a(i),"i"),n=this.activeMenu.children(".ui-menu-item").filter(function(){return o.test(e(this).children("a").text())})),n.length?(this.focus(t,n),n.length>1?(this.previousFilter=i,this.filterTimer=this._delay(function(){delete this.previousFilter},1e3)):delete this.previousFilter):delete this.previousFilter}u&&t.preventDefault()},_activate:function(e){this.active.is(".ui-state-disabled")||(this.active.children("a[aria-haspopup='true']").length?this.expand(e):this.select(e))},refresh:function(){var t,n=this.options.icons.submenu,r=this.element.find(this.options.menus);r.filter(":not(.ui-menu)").addClass("ui-menu ui-widget ui-widget-content ui-corner-all").hide().attr({role:this.options.role,"aria-hidden":"true","aria-expanded":"false"}).each(function(){var t=e(this),r=t.prev("a"),i=e("<span>").addClass("ui-menu-icon ui-icon "+n).data("ui-menu-submenu-carat",!0);r.attr("aria-haspopup","true").prepend(i),t.attr("aria-labelledby",r.attr("id"))}),t=r.add(this.element),t.children(":not(.ui-menu-item):has(a)").addClass("ui-menu-item").attr("role","presentation").children("a").uniqueId().addClass("ui-corner-all").attr({tabIndex:-1,role:this._itemRole()}),t.children(":not(.ui-menu-item)").each(function(){var t=e(this);/[^\-—–\s]/.test(t.text())||t.addClass("ui-widget-content ui-menu-divider")}),t.children(".ui-state-disabled").attr("aria-disabled","true"),this.active&&!e.contains(this.element[0],this.active[0])&&this.blur()},_itemRole:function(){return{menu:"menuitem",listbox:"option"}[this.options.role]},focus:function(e,t){var n,r;this.blur(e,e&&e.type==="focus"),this._scrollIntoView(t),this.active=t.first(),r=this.active.children("a").addClass("ui-state-focus"),this.options.role&&this.element.attr("aria-activedescendant",r.attr("id")),this.active.parent().closest(".ui-menu-item").children("a:first").addClass("ui-state-active"),e&&e.type==="keydown"?this._close():this.timer=this._delay(function(){this._close()},this.delay),n=t.children(".ui-menu"),n.length&&/^mouse/.test(e.type)&&this._startOpening(n),this.activeMenu=t.parent(),this._trigger("focus",e,{item:t})},_scrollIntoView:function(t){var n,r,i,s,o,u;this._hasScroll()&&(n=parseFloat(e.css(this.activeMenu[0],"borderTopWidth"))||0,r=parseFloat(e.css(this.activeMenu[0],"paddingTop"))||0,i=t.offset().top-this.activeMenu.offset().top-n-r,s=this.activeMenu.scrollTop(),o=this.activeMenu.height(),u=t.height(),i<0?this.activeMenu.scrollTop(s+i):i+u>o&&this.activeMenu.scrollTop(s+i-o+u))},blur:function(e,t){t||clearTimeout(this.timer);if(!this.active)return;this.active.children("a").removeClass("ui-state-focus"),this.active=null,this._trigger("blur",e,{item:this.active})},_startOpening:function(e){clearTimeout(this.timer);if(e.attr("aria-hidden")!=="true")return;this.timer=this._delay(function(){this._close(),this._open(e)},this.delay)},_open:function(t){var n=e.extend({of:this.active},this.options.position);clearTimeout(this.timer),this.element.find(".ui-menu").not(t.parents(".ui-menu")).hide().attr("aria-hidden","true"),t.show().removeAttr("aria-hidden").attr("aria-expanded","true").position(n)},collapseAll:function(t,n){clearTimeout(this.timer),this.timer=this._delay(function(){var r=n?this.element:e(t&&t.target).closest(this.element.find(".ui-menu"));r.length||(r=this.element),this._close(r),this.blur(t),this.activeMenu=r},this.delay)},_close:function(e){e||(e=this.active?this.active.parent():this.element),e.find(".ui-menu").hide().attr("aria-hidden","true").attr("aria-expanded","false").end().find("a.ui-state-active").removeClass("ui-state-active")},collapse:function(e){var t=this.active&&this.active.parent().closest(".ui-menu-item",this.element);t&&t.length&&(this._close(),this.focus(e,t))},expand:function(e){var t=this.active&&this.active.children(".ui-menu ").children(".ui-menu-item").first();t&&t.length&&(this._open(t.parent()),this._delay(function(){this.focus(e,t)}))},next:function(e){this._move("next","first",e)},previous:function(e){this._move("prev","last",e)},isFirstItem:function(){return this.active&&!this.active.prevAll(".ui-menu-item").length},isLastItem:function(){return this.active&&!this.active.nextAll(".ui-menu-item").length},_move:function(e,t,n){var r;this.active&&(e==="first"||e==="last"?r=this.active[e==="first"?"prevAll":"nextAll"](".ui-menu-item").eq(-1):r=this.active[e+"All"](".ui-menu-item").eq(0));if(!r||!r.length||!this.active)r=this.activeMenu.children(".ui-menu-item")[t]();this.focus(n,r)},nextPage:function(t){var n,r,i;if(!this.active){this.next(t);return}if(this.isLastItem())return;this._hasScroll()?(r=this.active.offset().top,i=this.element.height(),this.active.nextAll(".ui-menu-item").each(function(){return n=e(this),n.offset().top-r-i<0}),this.focus(t,n)):this.focus(t,this.activeMenu.children(".ui-menu-item")[this.active?"last":"first"]())},previousPage:function(t){var n,r,i;if(!this.active){this.next(t);return}if(this.isFirstItem())return;this._hasScroll()?(r=this.active.offset().top,i=this.element.height(),this.active.prevAll(".ui-menu-item").each(function(){return n=e(this),n.offset().top-r+i>0}),this.focus(t,n)):this.focus(t,this.activeMenu.children(".ui-menu-item").first())},_hasScroll:function(){return this.element.outerHeight()<this.element.prop("scrollHeight")},select:function(t){this.active=this.active||e(t.target).closest(".ui-menu-item");var n={item:this.active};this.active.has(".ui-menu").length||this.collapseAll(t,!0),this._trigger("select",t,n)}})})(jQuery);
\ No newline at end of file
--- a/web/wp-includes/js/jquery/ui/jquery.ui.mouse.min.js	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/js/jquery/ui/jquery.ui.mouse.min.js	Wed Dec 19 17:46:52 2012 -0800
@@ -1,5 +1,5 @@
-/*! jQuery UI - v1.8.20 - 2012-04-30
-* https://github.com/jquery/jquery-ui
+/*! jQuery UI - v1.9.2 - 2012-11-23
+* http://jqueryui.com
 * Includes: jquery.ui.mouse.js
-* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */
-(function(a,b){var c=!1;a(document).mouseup(function(a){c=!1}),a.widget("ui.mouse",{options:{cancel:":input,option",distance:1,delay:0},_mouseInit:function(){var b=this;this.element.bind("mousedown."+this.widgetName,function(a){return b._mouseDown(a)}).bind("click."+this.widgetName,function(c){if(!0===a.data(c.target,b.widgetName+".preventClickEvent"))return a.removeData(c.target,b.widgetName+".preventClickEvent"),c.stopImmediatePropagation(),!1}),this.started=!1},_mouseDestroy:function(){this.element.unbind("."+this.widgetName),a(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate)},_mouseDown:function(b){if(c)return;this._mouseStarted&&this._mouseUp(b),this._mouseDownEvent=b;var d=this,e=b.which==1,f=typeof this.options.cancel=="string"&&b.target.nodeName?a(b.target).closest(this.options.cancel).length:!1;if(!e||f||!this._mouseCapture(b))return!0;this.mouseDelayMet=!this.options.delay,this.mouseDelayMet||(this._mouseDelayTimer=setTimeout(function(){d.mouseDelayMet=!0},this.options.delay));if(this._mouseDistanceMet(b)&&this._mouseDelayMet(b)){this._mouseStarted=this._mouseStart(b)!==!1;if(!this._mouseStarted)return b.preventDefault(),!0}return!0===a.data(b.target,this.widgetName+".preventClickEvent")&&a.removeData(b.target,this.widgetName+".preventClickEvent"),this._mouseMoveDelegate=function(a){return d._mouseMove(a)},this._mouseUpDelegate=function(a){return d._mouseUp(a)},a(document).bind("mousemove."+this.widgetName,this._mouseMoveDelegate).bind("mouseup."+this.widgetName,this._mouseUpDelegate),b.preventDefault(),c=!0,!0},_mouseMove:function(b){return!a.browser.msie||document.documentMode>=9||!!b.button?this._mouseStarted?(this._mouseDrag(b),b.preventDefault()):(this._mouseDistanceMet(b)&&this._mouseDelayMet(b)&&(this._mouseStarted=this._mouseStart(this._mouseDownEvent,b)!==!1,this._mouseStarted?this._mouseDrag(b):this._mouseUp(b)),!this._mouseStarted):this._mouseUp(b)},_mouseUp:function(b){return a(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate),this._mouseStarted&&(this._mouseStarted=!1,b.target==this._mouseDownEvent.target&&a.data(b.target,this.widgetName+".preventClickEvent",!0),this._mouseStop(b)),!1},_mouseDistanceMet:function(a){return Math.max(Math.abs(this._mouseDownEvent.pageX-a.pageX),Math.abs(this._mouseDownEvent.pageY-a.pageY))>=this.options.distance},_mouseDelayMet:function(a){return this.mouseDelayMet},_mouseStart:function(a){},_mouseDrag:function(a){},_mouseStop:function(a){},_mouseCapture:function(a){return!0}})})(jQuery);
\ No newline at end of file
+* Copyright 2012 jQuery Foundation and other contributors; Licensed MIT */
+(function(e,t){var n=!1;e(document).mouseup(function(e){n=!1}),e.widget("ui.mouse",{version:"1.9.2",options:{cancel:"input,textarea,button,select,option",distance:1,delay:0},_mouseInit:function(){var t=this;this.element.bind("mousedown."+this.widgetName,function(e){return t._mouseDown(e)}).bind("click."+this.widgetName,function(n){if(!0===e.data(n.target,t.widgetName+".preventClickEvent"))return e.removeData(n.target,t.widgetName+".preventClickEvent"),n.stopImmediatePropagation(),!1}),this.started=!1},_mouseDestroy:function(){this.element.unbind("."+this.widgetName),this._mouseMoveDelegate&&e(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate)},_mouseDown:function(t){if(n)return;this._mouseStarted&&this._mouseUp(t),this._mouseDownEvent=t;var r=this,i=t.which===1,s=typeof this.options.cancel=="string"&&t.target.nodeName?e(t.target).closest(this.options.cancel).length:!1;if(!i||s||!this._mouseCapture(t))return!0;this.mouseDelayMet=!this.options.delay,this.mouseDelayMet||(this._mouseDelayTimer=setTimeout(function(){r.mouseDelayMet=!0},this.options.delay));if(this._mouseDistanceMet(t)&&this._mouseDelayMet(t)){this._mouseStarted=this._mouseStart(t)!==!1;if(!this._mouseStarted)return t.preventDefault(),!0}return!0===e.data(t.target,this.widgetName+".preventClickEvent")&&e.removeData(t.target,this.widgetName+".preventClickEvent"),this._mouseMoveDelegate=function(e){return r._mouseMove(e)},this._mouseUpDelegate=function(e){return r._mouseUp(e)},e(document).bind("mousemove."+this.widgetName,this._mouseMoveDelegate).bind("mouseup."+this.widgetName,this._mouseUpDelegate),t.preventDefault(),n=!0,!0},_mouseMove:function(t){return!e.ui.ie||document.documentMode>=9||!!t.button?this._mouseStarted?(this._mouseDrag(t),t.preventDefault()):(this._mouseDistanceMet(t)&&this._mouseDelayMet(t)&&(this._mouseStarted=this._mouseStart(this._mouseDownEvent,t)!==!1,this._mouseStarted?this._mouseDrag(t):this._mouseUp(t)),!this._mouseStarted):this._mouseUp(t)},_mouseUp:function(t){return e(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate),this._mouseStarted&&(this._mouseStarted=!1,t.target===this._mouseDownEvent.target&&e.data(t.target,this.widgetName+".preventClickEvent",!0),this._mouseStop(t)),!1},_mouseDistanceMet:function(e){return Math.max(Math.abs(this._mouseDownEvent.pageX-e.pageX),Math.abs(this._mouseDownEvent.pageY-e.pageY))>=this.options.distance},_mouseDelayMet:function(e){return this.mouseDelayMet},_mouseStart:function(e){},_mouseDrag:function(e){},_mouseStop:function(e){},_mouseCapture:function(e){return!0}})})(jQuery);
\ No newline at end of file
--- a/web/wp-includes/js/jquery/ui/jquery.ui.position.min.js	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/js/jquery/ui/jquery.ui.position.min.js	Wed Dec 19 17:46:52 2012 -0800
@@ -1,5 +1,5 @@
-/*! jQuery UI - v1.8.20 - 2012-04-30
-* https://github.com/jquery/jquery-ui
+/*! jQuery UI - v1.9.2 - 2012-11-23
+* http://jqueryui.com
 * Includes: jquery.ui.position.js
-* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */
-(function(a,b){a.ui=a.ui||{};var c=/left|center|right/,d=/top|center|bottom/,e="center",f={},g=a.fn.position,h=a.fn.offset;a.fn.position=function(b){if(!b||!b.of)return g.apply(this,arguments);b=a.extend({},b);var h=a(b.of),i=h[0],j=(b.collision||"flip").split(" "),k=b.offset?b.offset.split(" "):[0,0],l,m,n;return i.nodeType===9?(l=h.width(),m=h.height(),n={top:0,left:0}):i.setTimeout?(l=h.width(),m=h.height(),n={top:h.scrollTop(),left:h.scrollLeft()}):i.preventDefault?(b.at="left top",l=m=0,n={top:b.of.pageY,left:b.of.pageX}):(l=h.outerWidth(),m=h.outerHeight(),n=h.offset()),a.each(["my","at"],function(){var a=(b[this]||"").split(" ");a.length===1&&(a=c.test(a[0])?a.concat([e]):d.test(a[0])?[e].concat(a):[e,e]),a[0]=c.test(a[0])?a[0]:e,a[1]=d.test(a[1])?a[1]:e,b[this]=a}),j.length===1&&(j[1]=j[0]),k[0]=parseInt(k[0],10)||0,k.length===1&&(k[1]=k[0]),k[1]=parseInt(k[1],10)||0,b.at[0]==="right"?n.left+=l:b.at[0]===e&&(n.left+=l/2),b.at[1]==="bottom"?n.top+=m:b.at[1]===e&&(n.top+=m/2),n.left+=k[0],n.top+=k[1],this.each(function(){var c=a(this),d=c.outerWidth(),g=c.outerHeight(),h=parseInt(a.curCSS(this,"marginLeft",!0))||0,i=parseInt(a.curCSS(this,"marginTop",!0))||0,o=d+h+(parseInt(a.curCSS(this,"marginRight",!0))||0),p=g+i+(parseInt(a.curCSS(this,"marginBottom",!0))||0),q=a.extend({},n),r;b.my[0]==="right"?q.left-=d:b.my[0]===e&&(q.left-=d/2),b.my[1]==="bottom"?q.top-=g:b.my[1]===e&&(q.top-=g/2),f.fractions||(q.left=Math.round(q.left),q.top=Math.round(q.top)),r={left:q.left-h,top:q.top-i},a.each(["left","top"],function(c,e){a.ui.position[j[c]]&&a.ui.position[j[c]][e](q,{targetWidth:l,targetHeight:m,elemWidth:d,elemHeight:g,collisionPosition:r,collisionWidth:o,collisionHeight:p,offset:k,my:b.my,at:b.at})}),a.fn.bgiframe&&c.bgiframe(),c.offset(a.extend(q,{using:b.using}))})},a.ui.position={fit:{left:function(b,c){var d=a(window),e=c.collisionPosition.left+c.collisionWidth-d.width()-d.scrollLeft();b.left=e>0?b.left-e:Math.max(b.left-c.collisionPosition.left,b.left)},top:function(b,c){var d=a(window),e=c.collisionPosition.top+c.collisionHeight-d.height()-d.scrollTop();b.top=e>0?b.top-e:Math.max(b.top-c.collisionPosition.top,b.top)}},flip:{left:function(b,c){if(c.at[0]===e)return;var d=a(window),f=c.collisionPosition.left+c.collisionWidth-d.width()-d.scrollLeft(),g=c.my[0]==="left"?-c.elemWidth:c.my[0]==="right"?c.elemWidth:0,h=c.at[0]==="left"?c.targetWidth:-c.targetWidth,i=-2*c.offset[0];b.left+=c.collisionPosition.left<0?g+h+i:f>0?g+h+i:0},top:function(b,c){if(c.at[1]===e)return;var d=a(window),f=c.collisionPosition.top+c.collisionHeight-d.height()-d.scrollTop(),g=c.my[1]==="top"?-c.elemHeight:c.my[1]==="bottom"?c.elemHeight:0,h=c.at[1]==="top"?c.targetHeight:-c.targetHeight,i=-2*c.offset[1];b.top+=c.collisionPosition.top<0?g+h+i:f>0?g+h+i:0}}},a.offset.setOffset||(a.offset.setOffset=function(b,c){/static/.test(a.curCSS(b,"position"))&&(b.style.position="relative");var d=a(b),e=d.offset(),f=parseInt(a.curCSS(b,"top",!0),10)||0,g=parseInt(a.curCSS(b,"left",!0),10)||0,h={top:c.top-e.top+f,left:c.left-e.left+g};"using"in c?c.using.call(b,h):d.css(h)},a.fn.offset=function(b){var c=this[0];return!c||!c.ownerDocument?null:b?this.each(function(){a.offset.setOffset(this,b)}):h.call(this)}),function(){var b=document.getElementsByTagName("body")[0],c=document.createElement("div"),d,e,g,h,i;d=document.createElement(b?"div":"body"),g={visibility:"hidden",width:0,height:0,border:0,margin:0,background:"none"},b&&a.extend(g,{position:"absolute",left:"-1000px",top:"-1000px"});for(var j in g)d.style[j]=g[j];d.appendChild(c),e=b||document.documentElement,e.insertBefore(d,e.firstChild),c.style.cssText="position: absolute; left: 10.7432222px; top: 10.432325px; height: 30px; width: 201px;",h=a(c).offset(function(a,b){return b}).offset(),d.innerHTML="",e.removeChild(d),i=h.top+h.left+(b?2e3:0),f.fractions=i>21&&i<22}()})(jQuery);
\ No newline at end of file
+* Copyright 2012 jQuery Foundation and other contributors; Licensed MIT */
+(function(e,t){function h(e,t,n){return[parseInt(e[0],10)*(l.test(e[0])?t/100:1),parseInt(e[1],10)*(l.test(e[1])?n/100:1)]}function p(t,n){return parseInt(e.css(t,n),10)||0}e.ui=e.ui||{};var n,r=Math.max,i=Math.abs,s=Math.round,o=/left|center|right/,u=/top|center|bottom/,a=/[\+\-]\d+%?/,f=/^\w+/,l=/%$/,c=e.fn.position;e.position={scrollbarWidth:function(){if(n!==t)return n;var r,i,s=e("<div style='display:block;width:50px;height:50px;overflow:hidden;'><div style='height:100px;width:auto;'></div></div>"),o=s.children()[0];return e("body").append(s),r=o.offsetWidth,s.css("overflow","scroll"),i=o.offsetWidth,r===i&&(i=s[0].clientWidth),s.remove(),n=r-i},getScrollInfo:function(t){var n=t.isWindow?"":t.element.css("overflow-x"),r=t.isWindow?"":t.element.css("overflow-y"),i=n==="scroll"||n==="auto"&&t.width<t.element[0].scrollWidth,s=r==="scroll"||r==="auto"&&t.height<t.element[0].scrollHeight;return{width:i?e.position.scrollbarWidth():0,height:s?e.position.scrollbarWidth():0}},getWithinInfo:function(t){var n=e(t||window),r=e.isWindow(n[0]);return{element:n,isWindow:r,offset:n.offset()||{left:0,top:0},scrollLeft:n.scrollLeft(),scrollTop:n.scrollTop(),width:r?n.width():n.outerWidth(),height:r?n.height():n.outerHeight()}}},e.fn.position=function(t){if(!t||!t.of)return c.apply(this,arguments);t=e.extend({},t);var n,l,d,v,m,g=e(t.of),y=e.position.getWithinInfo(t.within),b=e.position.getScrollInfo(y),w=g[0],E=(t.collision||"flip").split(" "),S={};return w.nodeType===9?(l=g.width(),d=g.height(),v={top:0,left:0}):e.isWindow(w)?(l=g.width(),d=g.height(),v={top:g.scrollTop(),left:g.scrollLeft()}):w.preventDefault?(t.at="left top",l=d=0,v={top:w.pageY,left:w.pageX}):(l=g.outerWidth(),d=g.outerHeight(),v=g.offset()),m=e.extend({},v),e.each(["my","at"],function(){var e=(t[this]||"").split(" "),n,r;e.length===1&&(e=o.test(e[0])?e.concat(["center"]):u.test(e[0])?["center"].concat(e):["center","center"]),e[0]=o.test(e[0])?e[0]:"center",e[1]=u.test(e[1])?e[1]:"center",n=a.exec(e[0]),r=a.exec(e[1]),S[this]=[n?n[0]:0,r?r[0]:0],t[this]=[f.exec(e[0])[0],f.exec(e[1])[0]]}),E.length===1&&(E[1]=E[0]),t.at[0]==="right"?m.left+=l:t.at[0]==="center"&&(m.left+=l/2),t.at[1]==="bottom"?m.top+=d:t.at[1]==="center"&&(m.top+=d/2),n=h(S.at,l,d),m.left+=n[0],m.top+=n[1],this.each(function(){var o,u,a=e(this),f=a.outerWidth(),c=a.outerHeight(),w=p(this,"marginLeft"),x=p(this,"marginTop"),T=f+w+p(this,"marginRight")+b.width,N=c+x+p(this,"marginBottom")+b.height,C=e.extend({},m),k=h(S.my,a.outerWidth(),a.outerHeight());t.my[0]==="right"?C.left-=f:t.my[0]==="center"&&(C.left-=f/2),t.my[1]==="bottom"?C.top-=c:t.my[1]==="center"&&(C.top-=c/2),C.left+=k[0],C.top+=k[1],e.support.offsetFractions||(C.left=s(C.left),C.top=s(C.top)),o={marginLeft:w,marginTop:x},e.each(["left","top"],function(r,i){e.ui.position[E[r]]&&e.ui.position[E[r]][i](C,{targetWidth:l,targetHeight:d,elemWidth:f,elemHeight:c,collisionPosition:o,collisionWidth:T,collisionHeight:N,offset:[n[0]+k[0],n[1]+k[1]],my:t.my,at:t.at,within:y,elem:a})}),e.fn.bgiframe&&a.bgiframe(),t.using&&(u=function(e){var n=v.left-C.left,s=n+l-f,o=v.top-C.top,u=o+d-c,h={target:{element:g,left:v.left,top:v.top,width:l,height:d},element:{element:a,left:C.left,top:C.top,width:f,height:c},horizontal:s<0?"left":n>0?"right":"center",vertical:u<0?"top":o>0?"bottom":"middle"};l<f&&i(n+s)<l&&(h.horizontal="center"),d<c&&i(o+u)<d&&(h.vertical="middle"),r(i(n),i(s))>r(i(o),i(u))?h.important="horizontal":h.important="vertical",t.using.call(this,e,h)}),a.offset(e.extend(C,{using:u}))})},e.ui.position={fit:{left:function(e,t){var n=t.within,i=n.isWindow?n.scrollLeft:n.offset.left,s=n.width,o=e.left-t.collisionPosition.marginLeft,u=i-o,a=o+t.collisionWidth-s-i,f;t.collisionWidth>s?u>0&&a<=0?(f=e.left+u+t.collisionWidth-s-i,e.left+=u-f):a>0&&u<=0?e.left=i:u>a?e.left=i+s-t.collisionWidth:e.left=i:u>0?e.left+=u:a>0?e.left-=a:e.left=r(e.left-o,e.left)},top:function(e,t){var n=t.within,i=n.isWindow?n.scrollTop:n.offset.top,s=t.within.height,o=e.top-t.collisionPosition.marginTop,u=i-o,a=o+t.collisionHeight-s-i,f;t.collisionHeight>s?u>0&&a<=0?(f=e.top+u+t.collisionHeight-s-i,e.top+=u-f):a>0&&u<=0?e.top=i:u>a?e.top=i+s-t.collisionHeight:e.top=i:u>0?e.top+=u:a>0?e.top-=a:e.top=r(e.top-o,e.top)}},flip:{left:function(e,t){var n=t.within,r=n.offset.left+n.scrollLeft,s=n.width,o=n.isWindow?n.scrollLeft:n.offset.left,u=e.left-t.collisionPosition.marginLeft,a=u-o,f=u+t.collisionWidth-s-o,l=t.my[0]==="left"?-t.elemWidth:t.my[0]==="right"?t.elemWidth:0,c=t.at[0]==="left"?t.targetWidth:t.at[0]==="right"?-t.targetWidth:0,h=-2*t.offset[0],p,d;if(a<0){p=e.left+l+c+h+t.collisionWidth-s-r;if(p<0||p<i(a))e.left+=l+c+h}else if(f>0){d=e.left-t.collisionPosition.marginLeft+l+c+h-o;if(d>0||i(d)<f)e.left+=l+c+h}},top:function(e,t){var n=t.within,r=n.offset.top+n.scrollTop,s=n.height,o=n.isWindow?n.scrollTop:n.offset.top,u=e.top-t.collisionPosition.marginTop,a=u-o,f=u+t.collisionHeight-s-o,l=t.my[1]==="top",c=l?-t.elemHeight:t.my[1]==="bottom"?t.elemHeight:0,h=t.at[1]==="top"?t.targetHeight:t.at[1]==="bottom"?-t.targetHeight:0,p=-2*t.offset[1],d,v;a<0?(v=e.top+c+h+p+t.collisionHeight-s-r,e.top+c+h+p>a&&(v<0||v<i(a))&&(e.top+=c+h+p)):f>0&&(d=e.top-t.collisionPosition.marginTop+c+h+p-o,e.top+c+h+p>f&&(d>0||i(d)<f)&&(e.top+=c+h+p))}},flipfit:{left:function(){e.ui.position.flip.left.apply(this,arguments),e.ui.position.fit.left.apply(this,arguments)},top:function(){e.ui.position.flip.top.apply(this,arguments),e.ui.position.fit.top.apply(this,arguments)}}},function(){var t,n,r,i,s,o=document.getElementsByTagName("body")[0],u=document.createElement("div");t=document.createElement(o?"div":"body"),r={visibility:"hidden",width:0,height:0,border:0,margin:0,background:"none"},o&&e.extend(r,{position:"absolute",left:"-1000px",top:"-1000px"});for(s in r)t.style[s]=r[s];t.appendChild(u),n=o||document.documentElement,n.insertBefore(t,n.firstChild),u.style.cssText="position: absolute; left: 10.7432222px;",i=e(u).offset().left,e.support.offsetFractions=i>10&&i<11,t.innerHTML="",n.removeChild(t)}(),e.uiBackCompat!==!1&&function(e){var n=e.fn.position;e.fn.position=function(r){if(!r||!r.offset)return n.call(this,r);var i=r.offset.split(" "),s=r.at.split(" ");return i.length===1&&(i[1]=i[0]),/^\d/.test(i[0])&&(i[0]="+"+i[0]),/^\d/.test(i[1])&&(i[1]="+"+i[1]),s.length===1&&(/left|center|right/.test(s[0])?s[1]="center":(s[1]=s[0],s[0]="center")),n.call(this,e.extend(r,{at:s[0]+i[0]+" "+s[1]+i[1],offset:t}))}}(jQuery)})(jQuery);
\ No newline at end of file
--- a/web/wp-includes/js/jquery/ui/jquery.ui.progressbar.min.js	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/js/jquery/ui/jquery.ui.progressbar.min.js	Wed Dec 19 17:46:52 2012 -0800
@@ -1,5 +1,5 @@
-/*! jQuery UI - v1.8.20 - 2012-04-30
-* https://github.com/jquery/jquery-ui
+/*! jQuery UI - v1.9.2 - 2012-11-23
+* http://jqueryui.com
 * Includes: jquery.ui.progressbar.js
-* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */
-(function(a,b){a.widget("ui.progressbar",{options:{value:0,max:100},min:0,_create:function(){this.element.addClass("ui-progressbar ui-widget ui-widget-content ui-corner-all").attr({role:"progressbar","aria-valuemin":this.min,"aria-valuemax":this.options.max,"aria-valuenow":this._value()}),this.valueDiv=a("<div class='ui-progressbar-value ui-widget-header ui-corner-left'></div>").appendTo(this.element),this.oldValue=this._value(),this._refreshValue()},destroy:function(){this.element.removeClass("ui-progressbar ui-widget ui-widget-content ui-corner-all").removeAttr("role").removeAttr("aria-valuemin").removeAttr("aria-valuemax").removeAttr("aria-valuenow"),this.valueDiv.remove(),a.Widget.prototype.destroy.apply(this,arguments)},value:function(a){return a===b?this._value():(this._setOption("value",a),this)},_setOption:function(b,c){b==="value"&&(this.options.value=c,this._refreshValue(),this._value()===this.options.max&&this._trigger("complete")),a.Widget.prototype._setOption.apply(this,arguments)},_value:function(){var a=this.options.value;return typeof a!="number"&&(a=0),Math.min(this.options.max,Math.max(this.min,a))},_percentage:function(){return 100*this._value()/this.options.max},_refreshValue:function(){var a=this.value(),b=this._percentage();this.oldValue!==a&&(this.oldValue=a,this._trigger("change")),this.valueDiv.toggle(a>this.min).toggleClass("ui-corner-right",a===this.options.max).width(b.toFixed(0)+"%"),this.element.attr("aria-valuenow",a)}}),a.extend(a.ui.progressbar,{version:"1.8.20"})})(jQuery);
\ No newline at end of file
+* Copyright 2012 jQuery Foundation and other contributors; Licensed MIT */
+(function(e,t){e.widget("ui.progressbar",{version:"1.9.2",options:{value:0,max:100},min:0,_create:function(){this.element.addClass("ui-progressbar ui-widget ui-widget-content ui-corner-all").attr({role:"progressbar","aria-valuemin":this.min,"aria-valuemax":this.options.max,"aria-valuenow":this._value()}),this.valueDiv=e("<div class='ui-progressbar-value ui-widget-header ui-corner-left'></div>").appendTo(this.element),this.oldValue=this._value(),this._refreshValue()},_destroy:function(){this.element.removeClass("ui-progressbar ui-widget ui-widget-content ui-corner-all").removeAttr("role").removeAttr("aria-valuemin").removeAttr("aria-valuemax").removeAttr("aria-valuenow"),this.valueDiv.remove()},value:function(e){return e===t?this._value():(this._setOption("value",e),this)},_setOption:function(e,t){e==="value"&&(this.options.value=t,this._refreshValue(),this._value()===this.options.max&&this._trigger("complete")),this._super(e,t)},_value:function(){var e=this.options.value;return typeof e!="number"&&(e=0),Math.min(this.options.max,Math.max(this.min,e))},_percentage:function(){return 100*this._value()/this.options.max},_refreshValue:function(){var e=this.value(),t=this._percentage();this.oldValue!==e&&(this.oldValue=e,this._trigger("change")),this.valueDiv.toggle(e>this.min).toggleClass("ui-corner-right",e===this.options.max).width(t.toFixed(0)+"%"),this.element.attr("aria-valuenow",e)}})})(jQuery);
\ No newline at end of file
--- a/web/wp-includes/js/jquery/ui/jquery.ui.resizable.min.js	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/js/jquery/ui/jquery.ui.resizable.min.js	Wed Dec 19 17:46:52 2012 -0800
@@ -1,5 +1,5 @@
-/*! jQuery UI - v1.8.20 - 2012-04-30
-* https://github.com/jquery/jquery-ui
+/*! jQuery UI - v1.9.2 - 2012-11-23
+* http://jqueryui.com
 * Includes: jquery.ui.resizable.js
-* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */
-(function(a,b){a.widget("ui.resizable",a.ui.mouse,{widgetEventPrefix:"resize",options:{alsoResize:!1,animate:!1,animateDuration:"slow",animateEasing:"swing",aspectRatio:!1,autoHide:!1,containment:!1,ghost:!1,grid:!1,handles:"e,s,se",helper:!1,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:1e3},_create:function(){var b=this,c=this.options;this.element.addClass("ui-resizable"),a.extend(this,{_aspectRatio:!!c.aspectRatio,aspectRatio:c.aspectRatio,originalElement:this.element,_proportionallyResizeElements:[],_helper:c.helper||c.ghost||c.animate?c.helper||"ui-resizable-helper":null}),this.element[0].nodeName.match(/canvas|textarea|input|select|button|img/i)&&(this.element.wrap(a('<div class="ui-wrapper" style="overflow: hidden;"></div>').css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")})),this.element=this.element.parent().data("resizable",this.element.data("resizable")),this.elementIsWrapper=!0,this.element.css({marginLeft:this.originalElement.css("marginLeft"),marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom")}),this.originalElement.css({marginLeft:0,marginTop:0,marginRight:0,marginBottom:0}),this.originalResizeStyle=this.originalElement.css("resize"),this.originalElement.css("resize","none"),this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"})),this.originalElement.css({margin:this.originalElement.css("margin")}),this._proportionallyResize()),this.handles=c.handles||(a(".ui-resizable-handle",this.element).length?{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"}:"e,s,se");if(this.handles.constructor==String){this.handles=="all"&&(this.handles="n,e,s,w,se,sw,ne,nw");var d=this.handles.split(",");this.handles={};for(var e=0;e<d.length;e++){var f=a.trim(d[e]),g="ui-resizable-"+f,h=a('<div class="ui-resizable-handle '+g+'"></div>');h.css({zIndex:c.zIndex}),"se"==f&&h.addClass("ui-icon ui-icon-gripsmall-diagonal-se"),this.handles[f]=".ui-resizable-"+f,this.element.append(h)}}this._renderAxis=function(b){b=b||this.element;for(var c in this.handles){this.handles[c].constructor==String&&(this.handles[c]=a(this.handles[c],this.element).show());if(this.elementIsWrapper&&this.originalElement[0].nodeName.match(/textarea|input|select|button/i)){var d=a(this.handles[c],this.element),e=0;e=/sw|ne|nw|se|n|s/.test(c)?d.outerHeight():d.outerWidth();var f=["padding",/ne|nw|n/.test(c)?"Top":/se|sw|s/.test(c)?"Bottom":/^e$/.test(c)?"Right":"Left"].join("");b.css(f,e),this._proportionallyResize()}if(!a(this.handles[c]).length)continue}},this._renderAxis(this.element),this._handles=a(".ui-resizable-handle",this.element).disableSelection(),this._handles.mouseover(function(){if(!b.resizing){if(this.className)var a=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i);b.axis=a&&a[1]?a[1]:"se"}}),c.autoHide&&(this._handles.hide(),a(this.element).addClass("ui-resizable-autohide").hover(function(){if(c.disabled)return;a(this).removeClass("ui-resizable-autohide"),b._handles.show()},function(){if(c.disabled)return;b.resizing||(a(this).addClass("ui-resizable-autohide"),b._handles.hide())})),this._mouseInit()},destroy:function(){this._mouseDestroy();var b=function(b){a(b).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing").removeData("resizable").unbind(".resizable").find(".ui-resizable-handle").remove()};if(this.elementIsWrapper){b(this.element);var c=this.element;c.after(this.originalElement.css({position:c.css("position"),width:c.outerWidth(),height:c.outerHeight(),top:c.css("top"),left:c.css("left")})).remove()}return this.originalElement.css("resize",this.originalResizeStyle),b(this.originalElement),this},_mouseCapture:function(b){var c=!1;for(var d in this.handles)a(this.handles[d])[0]==b.target&&(c=!0);return!this.options.disabled&&c},_mouseStart:function(b){var d=this.options,e=this.element.position(),f=this.element;this.resizing=!0,this.documentScroll={top:a(document).scrollTop(),left:a(document).scrollLeft()},(f.is(".ui-draggable")||/absolute/.test(f.css("position")))&&f.css({position:"absolute",top:e.top,left:e.left}),this._renderProxy();var g=c(this.helper.css("left")),h=c(this.helper.css("top"));d.containment&&(g+=a(d.containment).scrollLeft()||0,h+=a(d.containment).scrollTop()||0),this.offset=this.helper.offset(),this.position={left:g,top:h},this.size=this._helper?{width:f.outerWidth(),height:f.outerHeight()}:{width:f.width(),height:f.height()},this.originalSize=this._helper?{width:f.outerWidth(),height:f.outerHeight()}:{width:f.width(),height:f.height()},this.originalPosition={left:g,top:h},this.sizeDiff={width:f.outerWidth()-f.width(),height:f.outerHeight()-f.height()},this.originalMousePosition={left:b.pageX,top:b.pageY},this.aspectRatio=typeof d.aspectRatio=="number"?d.aspectRatio:this.originalSize.width/this.originalSize.height||1;var i=a(".ui-resizable-"+this.axis).css("cursor");return a("body").css("cursor",i=="auto"?this.axis+"-resize":i),f.addClass("ui-resizable-resizing"),this._propagate("start",b),!0},_mouseDrag:function(b){var c=this.helper,d=this.options,e={},f=this,g=this.originalMousePosition,h=this.axis,i=b.pageX-g.left||0,j=b.pageY-g.top||0,k=this._change[h];if(!k)return!1;var l=k.apply(this,[b,i,j]),m=a.browser.msie&&a.browser.version<7,n=this.sizeDiff;this._updateVirtualBoundaries(b.shiftKey);if(this._aspectRatio||b.shiftKey)l=this._updateRatio(l,b);return l=this._respectSize(l,b),this._propagate("resize",b),c.css({top:this.position.top+"px",left:this.position.left+"px",width:this.size.width+"px",height:this.size.height+"px"}),!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize(),this._updateCache(l),this._trigger("resize",b,this.ui()),!1},_mouseStop:function(b){this.resizing=!1;var c=this.options,d=this;if(this._helper){var e=this._proportionallyResizeElements,f=e.length&&/textarea/i.test(e[0].nodeName),g=f&&a.ui.hasScroll(e[0],"left")?0:d.sizeDiff.height,h=f?0:d.sizeDiff.width,i={width:d.helper.width()-h,height:d.helper.height()-g},j=parseInt(d.element.css("left"),10)+(d.position.left-d.originalPosition.left)||null,k=parseInt(d.element.css("top"),10)+(d.position.top-d.originalPosition.top)||null;c.animate||this.element.css(a.extend(i,{top:k,left:j})),d.helper.height(d.size.height),d.helper.width(d.size.width),this._helper&&!c.animate&&this._proportionallyResize()}return a("body").css("cursor","auto"),this.element.removeClass("ui-resizable-resizing"),this._propagate("stop",b),this._helper&&this.helper.remove(),!1},_updateVirtualBoundaries:function(a){var b=this.options,c,e,f,g,h;h={minWidth:d(b.minWidth)?b.minWidth:0,maxWidth:d(b.maxWidth)?b.maxWidth:Infinity,minHeight:d(b.minHeight)?b.minHeight:0,maxHeight:d(b.maxHeight)?b.maxHeight:Infinity};if(this._aspectRatio||a)c=h.minHeight*this.aspectRatio,f=h.minWidth/this.aspectRatio,e=h.maxHeight*this.aspectRatio,g=h.maxWidth/this.aspectRatio,c>h.minWidth&&(h.minWidth=c),f>h.minHeight&&(h.minHeight=f),e<h.maxWidth&&(h.maxWidth=e),g<h.maxHeight&&(h.maxHeight=g);this._vBoundaries=h},_updateCache:function(a){var b=this.options;this.offset=this.helper.offset(),d(a.left)&&(this.position.left=a.left),d(a.top)&&(this.position.top=a.top),d(a.height)&&(this.size.height=a.height),d(a.width)&&(this.size.width=a.width)},_updateRatio:function(a,b){var c=this.options,e=this.position,f=this.size,g=this.axis;return d(a.height)?a.width=a.height*this.aspectRatio:d(a.width)&&(a.height=a.width/this.aspectRatio),g=="sw"&&(a.left=e.left+(f.width-a.width),a.top=null),g=="nw"&&(a.top=e.top+(f.height-a.height),a.left=e.left+(f.width-a.width)),a},_respectSize:function(a,b){var c=this.helper,e=this._vBoundaries,f=this._aspectRatio||b.shiftKey,g=this.axis,h=d(a.width)&&e.maxWidth&&e.maxWidth<a.width,i=d(a.height)&&e.maxHeight&&e.maxHeight<a.height,j=d(a.width)&&e.minWidth&&e.minWidth>a.width,k=d(a.height)&&e.minHeight&&e.minHeight>a.height;j&&(a.width=e.minWidth),k&&(a.height=e.minHeight),h&&(a.width=e.maxWidth),i&&(a.height=e.maxHeight);var l=this.originalPosition.left+this.originalSize.width,m=this.position.top+this.size.height,n=/sw|nw|w/.test(g),o=/nw|ne|n/.test(g);j&&n&&(a.left=l-e.minWidth),h&&n&&(a.left=l-e.maxWidth),k&&o&&(a.top=m-e.minHeight),i&&o&&(a.top=m-e.maxHeight);var p=!a.width&&!a.height;return p&&!a.left&&a.top?a.top=null:p&&!a.top&&a.left&&(a.left=null),a},_proportionallyResize:function(){var b=this.options;if(!this._proportionallyResizeElements.length)return;var c=this.helper||this.element;for(var d=0;d<this._proportionallyResizeElements.length;d++){var e=this._proportionallyResizeElements[d];if(!this.borderDif){var f=[e.css("borderTopWidth"),e.css("borderRightWidth"),e.css("borderBottomWidth"),e.css("borderLeftWidth")],g=[e.css("paddingTop"),e.css("paddingRight"),e.css("paddingBottom"),e.css("paddingLeft")];this.borderDif=a.map(f,function(a,b){var c=parseInt(a,10)||0,d=parseInt(g[b],10)||0;return c+d})}if(!a.browser.msie||!a(c).is(":hidden")&&!a(c).parents(":hidden").length)e.css({height:c.height()-this.borderDif[0]-this.borderDif[2]||0,width:c.width()-this.borderDif[1]-this.borderDif[3]||0});else continue}},_renderProxy:function(){var b=this.element,c=this.options;this.elementOffset=b.offset();if(this._helper){this.helper=this.helper||a('<div style="overflow:hidden;"></div>');var d=a.browser.msie&&a.browser.version<7,e=d?1:0,f=d?2:-1;this.helper.addClass(this._helper).css({width:this.element.outerWidth()+f,height:this.element.outerHeight()+f,position:"absolute",left:this.elementOffset.left-e+"px",top:this.elementOffset.top-e+"px",zIndex:++c.zIndex}),this.helper.appendTo("body").disableSelection()}else this.helper=this.element},_change:{e:function(a,b,c){return{width:this.originalSize.width+b}},w:function(a,b,c){var d=this.options,e=this.originalSize,f=this.originalPosition;return{left:f.left+b,width:e.width-b}},n:function(a,b,c){var d=this.options,e=this.originalSize,f=this.originalPosition;return{top:f.top+c,height:e.height-c}},s:function(a,b,c){return{height:this.originalSize.height+c}},se:function(b,c,d){return a.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[b,c,d]))},sw:function(b,c,d){return a.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[b,c,d]))},ne:function(b,c,d){return a.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[b,c,d]))},nw:function(b,c,d){return a.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[b,c,d]))}},_propagate:function(b,c){a.ui.plugin.call(this,b,[c,this.ui()]),b!="resize"&&this._trigger(b,c,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}}),a.extend(a.ui.resizable,{version:"1.8.20"}),a.ui.plugin.add("resizable","alsoResize",{start:function(b,c){var d=a(this).data("resizable"),e=d.options,f=function(b){a(b).each(function(){var b=a(this);b.data("resizable-alsoresize",{width:parseInt(b.width(),10),height:parseInt(b.height(),10),left:parseInt(b.css("left"),10),top:parseInt(b.css("top"),10)})})};typeof e.alsoResize=="object"&&!e.alsoResize.parentNode?e.alsoResize.length?(e.alsoResize=e.alsoResize[0],f(e.alsoResize)):a.each(e.alsoResize,function(a){f(a)}):f(e.alsoResize)},resize:function(b,c){var d=a(this).data("resizable"),e=d.options,f=d.originalSize,g=d.originalPosition,h={height:d.size.height-f.height||0,width:d.size.width-f.width||0,top:d.position.top-g.top||0,left:d.position.left-g.left||0},i=function(b,d){a(b).each(function(){var b=a(this),e=a(this).data("resizable-alsoresize"),f={},g=d&&d.length?d:b.parents(c.originalElement[0]).length?["width","height"]:["width","height","top","left"];a.each(g,function(a,b){var c=(e[b]||0)+(h[b]||0);c&&c>=0&&(f[b]=c||null)}),b.css(f)})};typeof e.alsoResize=="object"&&!e.alsoResize.nodeType?a.each(e.alsoResize,function(a,b){i(a,b)}):i(e.alsoResize)},stop:function(b,c){a(this).removeData("resizable-alsoresize")}}),a.ui.plugin.add("resizable","animate",{stop:function(b,c){var d=a(this).data("resizable"),e=d.options,f=d._proportionallyResizeElements,g=f.length&&/textarea/i.test(f[0].nodeName),h=g&&a.ui.hasScroll(f[0],"left")?0:d.sizeDiff.height,i=g?0:d.sizeDiff.width,j={width:d.size.width-i,height:d.size.height-h},k=parseInt(d.element.css("left"),10)+(d.position.left-d.originalPosition.left)||null,l=parseInt(d.element.css("top"),10)+(d.position.top-d.originalPosition.top)||null;d.element.animate(a.extend(j,l&&k?{top:l,left:k}:{}),{duration:e.animateDuration,easing:e.animateEasing,step:function(){var c={width:parseInt(d.element.css("width"),10),height:parseInt(d.element.css("height"),10),top:parseInt(d.element.css("top"),10),left:parseInt(d.element.css("left"),10)};f&&f.length&&a(f[0]).css({width:c.width,height:c.height}),d._updateCache(c),d._propagate("resize",b)}})}}),a.ui.plugin.add("resizable","containment",{start:function(b,d){var e=a(this).data("resizable"),f=e.options,g=e.element,h=f.containment,i=h instanceof a?h.get(0):/parent/.test(h)?g.parent().get(0):h;if(!i)return;e.containerElement=a(i);if(/document/.test(h)||h==document)e.containerOffset={left:0,top:0},e.containerPosition={left:0,top:0},e.parentData={element:a(document),left:0,top:0,width:a(document).width(),height:a(document).height()||document.body.parentNode.scrollHeight};else{var j=a(i),k=[];a(["Top","Right","Left","Bottom"]).each(function(a,b){k[a]=c(j.css("padding"+b))}),e.containerOffset=j.offset(),e.containerPosition=j.position(),e.containerSize={height:j.innerHeight()-k[3],width:j.innerWidth()-k[1]};var l=e.containerOffset,m=e.containerSize.height,n=e.containerSize.width,o=a.ui.hasScroll(i,"left")?i.scrollWidth:n,p=a.ui.hasScroll(i)?i.scrollHeight:m;e.parentData={element:i,left:l.left,top:l.top,width:o,height:p}}},resize:function(b,c){var d=a(this).data("resizable"),e=d.options,f=d.containerSize,g=d.containerOffset,h=d.size,i=d.position,j=d._aspectRatio||b.shiftKey,k={top:0,left:0},l=d.containerElement;l[0]!=document&&/static/.test(l.css("position"))&&(k=g),i.left<(d._helper?g.left:0)&&(d.size.width=d.size.width+(d._helper?d.position.left-g.left:d.position.left-k.left),j&&(d.size.height=d.size.width/d.aspectRatio),d.position.left=e.helper?g.left:0),i.top<(d._helper?g.top:0)&&(d.size.height=d.size.height+(d._helper?d.position.top-g.top:d.position.top),j&&(d.size.width=d.size.height*d.aspectRatio),d.position.top=d._helper?g.top:0),d.offset.left=d.parentData.left+d.position.left,d.offset.top=d.parentData.top+d.position.top;var m=Math.abs((d._helper?d.offset.left-k.left:d.offset.left-k.left)+d.sizeDiff.width),n=Math.abs((d._helper?d.offset.top-k.top:d.offset.top-g.top)+d.sizeDiff.height),o=d.containerElement.get(0)==d.element.parent().get(0),p=/relative|absolute/.test(d.containerElement.css("position"));o&&p&&(m-=d.parentData.left),m+d.size.width>=d.parentData.width&&(d.size.width=d.parentData.width-m,j&&(d.size.height=d.size.width/d.aspectRatio)),n+d.size.height>=d.parentData.height&&(d.size.height=d.parentData.height-n,j&&(d.size.width=d.size.height*d.aspectRatio))},stop:function(b,c){var d=a(this).data("resizable"),e=d.options,f=d.position,g=d.containerOffset,h=d.containerPosition,i=d.containerElement,j=a(d.helper),k=j.offset(),l=j.outerWidth()-d.sizeDiff.width,m=j.outerHeight()-d.sizeDiff.height;d._helper&&!e.animate&&/relative/.test(i.css("position"))&&a(this).css({left:k.left-h.left-g.left,width:l,height:m}),d._helper&&!e.animate&&/static/.test(i.css("position"))&&a(this).css({left:k.left-h.left-g.left,width:l,height:m})}}),a.ui.plugin.add("resizable","ghost",{start:function(b,c){var d=a(this).data("resizable"),e=d.options,f=d.size;d.ghost=d.originalElement.clone(),d.ghost.css({opacity:.25,display:"block",position:"relative",height:f.height,width:f.width,margin:0,left:0,top:0}).addClass("ui-resizable-ghost").addClass(typeof e.ghost=="string"?e.ghost:""),d.ghost.appendTo(d.helper)},resize:function(b,c){var d=a(this).data("resizable"),e=d.options;d.ghost&&d.ghost.css({position:"relative",height:d.size.height,width:d.size.width})},stop:function(b,c){var d=a(this).data("resizable"),e=d.options;d.ghost&&d.helper&&d.helper.get(0).removeChild(d.ghost.get(0))}}),a.ui.plugin.add("resizable","grid",{resize:function(b,c){var d=a(this).data("resizable"),e=d.options,f=d.size,g=d.originalSize,h=d.originalPosition,i=d.axis,j=e._aspectRatio||b.shiftKey;e.grid=typeof e.grid=="number"?[e.grid,e.grid]:e.grid;var k=Math.round((f.width-g.width)/(e.grid[0]||1))*(e.grid[0]||1),l=Math.round((f.height-g.height)/(e.grid[1]||1))*(e.grid[1]||1);/^(se|s|e)$/.test(i)?(d.size.width=g.width+k,d.size.height=g.height+l):/^(ne)$/.test(i)?(d.size.width=g.width+k,d.size.height=g.height+l,d.position.top=h.top-l):/^(sw)$/.test(i)?(d.size.width=g.width+k,d.size.height=g.height+l,d.position.left=h.left-k):(d.size.width=g.width+k,d.size.height=g.height+l,d.position.top=h.top-l,d.position.left=h.left-k)}});var c=function(a){return parseInt(a,10)||0},d=function(a){return!isNaN(parseInt(a,10))}})(jQuery);
\ No newline at end of file
+* Copyright 2012 jQuery Foundation and other contributors; Licensed MIT */
+(function(e,t){e.widget("ui.resizable",e.ui.mouse,{version:"1.9.2",widgetEventPrefix:"resize",options:{alsoResize:!1,animate:!1,animateDuration:"slow",animateEasing:"swing",aspectRatio:!1,autoHide:!1,containment:!1,ghost:!1,grid:!1,handles:"e,s,se",helper:!1,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:1e3},_create:function(){var t=this,n=this.options;this.element.addClass("ui-resizable"),e.extend(this,{_aspectRatio:!!n.aspectRatio,aspectRatio:n.aspectRatio,originalElement:this.element,_proportionallyResizeElements:[],_helper:n.helper||n.ghost||n.animate?n.helper||"ui-resizable-helper":null}),this.element[0].nodeName.match(/canvas|textarea|input|select|button|img/i)&&(this.element.wrap(e('<div class="ui-wrapper" style="overflow: hidden;"></div>').css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")})),this.element=this.element.parent().data("resizable",this.element.data("resizable")),this.elementIsWrapper=!0,this.element.css({marginLeft:this.originalElement.css("marginLeft"),marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom")}),this.originalElement.css({marginLeft:0,marginTop:0,marginRight:0,marginBottom:0}),this.originalResizeStyle=this.originalElement.css("resize"),this.originalElement.css("resize","none"),this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"})),this.originalElement.css({margin:this.originalElement.css("margin")}),this._proportionallyResize()),this.handles=n.handles||(e(".ui-resizable-handle",this.element).length?{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"}:"e,s,se");if(this.handles.constructor==String){this.handles=="all"&&(this.handles="n,e,s,w,se,sw,ne,nw");var r=this.handles.split(",");this.handles={};for(var i=0;i<r.length;i++){var s=e.trim(r[i]),o="ui-resizable-"+s,u=e('<div class="ui-resizable-handle '+o+'"></div>');u.css({zIndex:n.zIndex}),"se"==s&&u.addClass("ui-icon ui-icon-gripsmall-diagonal-se"),this.handles[s]=".ui-resizable-"+s,this.element.append(u)}}this._renderAxis=function(t){t=t||this.element;for(var n in this.handles){this.handles[n].constructor==String&&(this.handles[n]=e(this.handles[n],this.element).show());if(this.elementIsWrapper&&this.originalElement[0].nodeName.match(/textarea|input|select|button/i)){var r=e(this.handles[n],this.element),i=0;i=/sw|ne|nw|se|n|s/.test(n)?r.outerHeight():r.outerWidth();var s=["padding",/ne|nw|n/.test(n)?"Top":/se|sw|s/.test(n)?"Bottom":/^e$/.test(n)?"Right":"Left"].join("");t.css(s,i),this._proportionallyResize()}if(!e(this.handles[n]).length)continue}},this._renderAxis(this.element),this._handles=e(".ui-resizable-handle",this.element).disableSelection(),this._handles.mouseover(function(){if(!t.resizing){if(this.className)var e=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i);t.axis=e&&e[1]?e[1]:"se"}}),n.autoHide&&(this._handles.hide(),e(this.element).addClass("ui-resizable-autohide").mouseenter(function(){if(n.disabled)return;e(this).removeClass("ui-resizable-autohide"),t._handles.show()}).mouseleave(function(){if(n.disabled)return;t.resizing||(e(this).addClass("ui-resizable-autohide"),t._handles.hide())})),this._mouseInit()},_destroy:function(){this._mouseDestroy();var t=function(t){e(t).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing").removeData("resizable").removeData("ui-resizable").unbind(".resizable").find(".ui-resizable-handle").remove()};if(this.elementIsWrapper){t(this.element);var n=this.element;this.originalElement.css({position:n.css("position"),width:n.outerWidth(),height:n.outerHeight(),top:n.css("top"),left:n.css("left")}).insertAfter(n),n.remove()}return this.originalElement.css("resize",this.originalResizeStyle),t(this.originalElement),this},_mouseCapture:function(t){var n=!1;for(var r in this.handles)e(this.handles[r])[0]==t.target&&(n=!0);return!this.options.disabled&&n},_mouseStart:function(t){var r=this.options,i=this.element.position(),s=this.element;this.resizing=!0,this.documentScroll={top:e(document).scrollTop(),left:e(document).scrollLeft()},(s.is(".ui-draggable")||/absolute/.test(s.css("position")))&&s.css({position:"absolute",top:i.top,left:i.left}),this._renderProxy();var o=n(this.helper.css("left")),u=n(this.helper.css("top"));r.containment&&(o+=e(r.containment).scrollLeft()||0,u+=e(r.containment).scrollTop()||0),this.offset=this.helper.offset(),this.position={left:o,top:u},this.size=this._helper?{width:s.outerWidth(),height:s.outerHeight()}:{width:s.width(),height:s.height()},this.originalSize=this._helper?{width:s.outerWidth(),height:s.outerHeight()}:{width:s.width(),height:s.height()},this.originalPosition={left:o,top:u},this.sizeDiff={width:s.outerWidth()-s.width(),height:s.outerHeight()-s.height()},this.originalMousePosition={left:t.pageX,top:t.pageY},this.aspectRatio=typeof r.aspectRatio=="number"?r.aspectRatio:this.originalSize.width/this.originalSize.height||1;var a=e(".ui-resizable-"+this.axis).css("cursor");return e("body").css("cursor",a=="auto"?this.axis+"-resize":a),s.addClass("ui-resizable-resizing"),this._propagate("start",t),!0},_mouseDrag:function(e){var t=this.helper,n=this.options,r={},i=this,s=this.originalMousePosition,o=this.axis,u=e.pageX-s.left||0,a=e.pageY-s.top||0,f=this._change[o];if(!f)return!1;var l=f.apply(this,[e,u,a]);this._updateVirtualBoundaries(e.shiftKey);if(this._aspectRatio||e.shiftKey)l=this._updateRatio(l,e);return l=this._respectSize(l,e),this._propagate("resize",e),t.css({top:this.position.top+"px",left:this.position.left+"px",width:this.size.width+"px",height:this.size.height+"px"}),!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize(),this._updateCache(l),this._trigger("resize",e,this.ui()),!1},_mouseStop:function(t){this.resizing=!1;var n=this.options,r=this;if(this._helper){var i=this._proportionallyResizeElements,s=i.length&&/textarea/i.test(i[0].nodeName),o=s&&e.ui.hasScroll(i[0],"left")?0:r.sizeDiff.height,u=s?0:r.sizeDiff.width,a={width:r.helper.width()-u,height:r.helper.height()-o},f=parseInt(r.element.css("left"),10)+(r.position.left-r.originalPosition.left)||null,l=parseInt(r.element.css("top"),10)+(r.position.top-r.originalPosition.top)||null;n.animate||this.element.css(e.extend(a,{top:l,left:f})),r.helper.height(r.size.height),r.helper.width(r.size.width),this._helper&&!n.animate&&this._proportionallyResize()}return e("body").css("cursor","auto"),this.element.removeClass("ui-resizable-resizing"),this._propagate("stop",t),this._helper&&this.helper.remove(),!1},_updateVirtualBoundaries:function(e){var t=this.options,n,i,s,o,u;u={minWidth:r(t.minWidth)?t.minWidth:0,maxWidth:r(t.maxWidth)?t.maxWidth:Infinity,minHeight:r(t.minHeight)?t.minHeight:0,maxHeight:r(t.maxHeight)?t.maxHeight:Infinity};if(this._aspectRatio||e)n=u.minHeight*this.aspectRatio,s=u.minWidth/this.aspectRatio,i=u.maxHeight*this.aspectRatio,o=u.maxWidth/this.aspectRatio,n>u.minWidth&&(u.minWidth=n),s>u.minHeight&&(u.minHeight=s),i<u.maxWidth&&(u.maxWidth=i),o<u.maxHeight&&(u.maxHeight=o);this._vBoundaries=u},_updateCache:function(e){var t=this.options;this.offset=this.helper.offset(),r(e.left)&&(this.position.left=e.left),r(e.top)&&(this.position.top=e.top),r(e.height)&&(this.size.height=e.height),r(e.width)&&(this.size.width=e.width)},_updateRatio:function(e,t){var n=this.options,i=this.position,s=this.size,o=this.axis;return r(e.height)?e.width=e.height*this.aspectRatio:r(e.width)&&(e.height=e.width/this.aspectRatio),o=="sw"&&(e.left=i.left+(s.width-e.width),e.top=null),o=="nw"&&(e.top=i.top+(s.height-e.height),e.left=i.left+(s.width-e.width)),e},_respectSize:function(e,t){var n=this.helper,i=this._vBoundaries,s=this._aspectRatio||t.shiftKey,o=this.axis,u=r(e.width)&&i.maxWidth&&i.maxWidth<e.width,a=r(e.height)&&i.maxHeight&&i.maxHeight<e.height,f=r(e.width)&&i.minWidth&&i.minWidth>e.width,l=r(e.height)&&i.minHeight&&i.minHeight>e.height;f&&(e.width=i.minWidth),l&&(e.height=i.minHeight),u&&(e.width=i.maxWidth),a&&(e.height=i.maxHeight);var c=this.originalPosition.left+this.originalSize.width,h=this.position.top+this.size.height,p=/sw|nw|w/.test(o),d=/nw|ne|n/.test(o);f&&p&&(e.left=c-i.minWidth),u&&p&&(e.left=c-i.maxWidth),l&&d&&(e.top=h-i.minHeight),a&&d&&(e.top=h-i.maxHeight);var v=!e.width&&!e.height;return v&&!e.left&&e.top?e.top=null:v&&!e.top&&e.left&&(e.left=null),e},_proportionallyResize:function(){var t=this.options;if(!this._proportionallyResizeElements.length)return;var n=this.helper||this.element;for(var r=0;r<this._proportionallyResizeElements.length;r++){var i=this._proportionallyResizeElements[r];if(!this.borderDif){var s=[i.css("borderTopWidth"),i.css("borderRightWidth"),i.css("borderBottomWidth"),i.css("borderLeftWidth")],o=[i.css("paddingTop"),i.css("paddingRight"),i.css("paddingBottom"),i.css("paddingLeft")];this.borderDif=e.map(s,function(e,t){var n=parseInt(e,10)||0,r=parseInt(o[t],10)||0;return n+r})}i.css({height:n.height()-this.borderDif[0]-this.borderDif[2]||0,width:n.width()-this.borderDif[1]-this.borderDif[3]||0})}},_renderProxy:function(){var t=this.element,n=this.options;this.elementOffset=t.offset();if(this._helper){this.helper=this.helper||e('<div style="overflow:hidden;"></div>');var r=e.ui.ie6?1:0,i=e.ui.ie6?2:-1;this.helper.addClass(this._helper).css({width:this.element.outerWidth()+i,height:this.element.outerHeight()+i,position:"absolute",left:this.elementOffset.left-r+"px",top:this.elementOffset.top-r+"px",zIndex:++n.zIndex}),this.helper.appendTo("body").disableSelection()}else this.helper=this.element},_change:{e:function(e,t,n){return{width:this.originalSize.width+t}},w:function(e,t,n){var r=this.options,i=this.originalSize,s=this.originalPosition;return{left:s.left+t,width:i.width-t}},n:function(e,t,n){var r=this.options,i=this.originalSize,s=this.originalPosition;return{top:s.top+n,height:i.height-n}},s:function(e,t,n){return{height:this.originalSize.height+n}},se:function(t,n,r){return e.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[t,n,r]))},sw:function(t,n,r){return e.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[t,n,r]))},ne:function(t,n,r){return e.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[t,n,r]))},nw:function(t,n,r){return e.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[t,n,r]))}},_propagate:function(t,n){e.ui.plugin.call(this,t,[n,this.ui()]),t!="resize"&&this._trigger(t,n,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}}),e.ui.plugin.add("resizable","alsoResize",{start:function(t,n){var r=e(this).data("resizable"),i=r.options,s=function(t){e(t).each(function(){var t=e(this);t.data("resizable-alsoresize",{width:parseInt(t.width(),10),height:parseInt(t.height(),10),left:parseInt(t.css("left"),10),top:parseInt(t.css("top"),10)})})};typeof i.alsoResize=="object"&&!i.alsoResize.parentNode?i.alsoResize.length?(i.alsoResize=i.alsoResize[0],s(i.alsoResize)):e.each(i.alsoResize,function(e){s(e)}):s(i.alsoResize)},resize:function(t,n){var r=e(this).data("resizable"),i=r.options,s=r.originalSize,o=r.originalPosition,u={height:r.size.height-s.height||0,width:r.size.width-s.width||0,top:r.position.top-o.top||0,left:r.position.left-o.left||0},a=function(t,r){e(t).each(function(){var t=e(this),i=e(this).data("resizable-alsoresize"),s={},o=r&&r.length?r:t.parents(n.originalElement[0]).length?["width","height"]:["width","height","top","left"];e.each(o,function(e,t){var n=(i[t]||0)+(u[t]||0);n&&n>=0&&(s[t]=n||null)}),t.css(s)})};typeof i.alsoResize=="object"&&!i.alsoResize.nodeType?e.each(i.alsoResize,function(e,t){a(e,t)}):a(i.alsoResize)},stop:function(t,n){e(this).removeData("resizable-alsoresize")}}),e.ui.plugin.add("resizable","animate",{stop:function(t,n){var r=e(this).data("resizable"),i=r.options,s=r._proportionallyResizeElements,o=s.length&&/textarea/i.test(s[0].nodeName),u=o&&e.ui.hasScroll(s[0],"left")?0:r.sizeDiff.height,a=o?0:r.sizeDiff.width,f={width:r.size.width-a,height:r.size.height-u},l=parseInt(r.element.css("left"),10)+(r.position.left-r.originalPosition.left)||null,c=parseInt(r.element.css("top"),10)+(r.position.top-r.originalPosition.top)||null;r.element.animate(e.extend(f,c&&l?{top:c,left:l}:{}),{duration:i.animateDuration,easing:i.animateEasing,step:function(){var n={width:parseInt(r.element.css("width"),10),height:parseInt(r.element.css("height"),10),top:parseInt(r.element.css("top"),10),left:parseInt(r.element.css("left"),10)};s&&s.length&&e(s[0]).css({width:n.width,height:n.height}),r._updateCache(n),r._propagate("resize",t)}})}}),e.ui.plugin.add("resizable","containment",{start:function(t,r){var i=e(this).data("resizable"),s=i.options,o=i.element,u=s.containment,a=u instanceof e?u.get(0):/parent/.test(u)?o.parent().get(0):u;if(!a)return;i.containerElement=e(a);if(/document/.test(u)||u==document)i.containerOffset={left:0,top:0},i.containerPosition={left:0,top:0},i.parentData={element:e(document),left:0,top:0,width:e(document).width(),height:e(document).height()||document.body.parentNode.scrollHeight};else{var f=e(a),l=[];e(["Top","Right","Left","Bottom"]).each(function(e,t){l[e]=n(f.css("padding"+t))}),i.containerOffset=f.offset(),i.containerPosition=f.position(),i.containerSize={height:f.innerHeight()-l[3],width:f.innerWidth()-l[1]};var c=i.containerOffset,h=i.containerSize.height,p=i.containerSize.width,d=e.ui.hasScroll(a,"left")?a.scrollWidth:p,v=e.ui.hasScroll(a)?a.scrollHeight:h;i.parentData={element:a,left:c.left,top:c.top,width:d,height:v}}},resize:function(t,n){var r=e(this).data("resizable"),i=r.options,s=r.containerSize,o=r.containerOffset,u=r.size,a=r.position,f=r._aspectRatio||t.shiftKey,l={top:0,left:0},c=r.containerElement;c[0]!=document&&/static/.test(c.css("position"))&&(l=o),a.left<(r._helper?o.left:0)&&(r.size.width=r.size.width+(r._helper?r.position.left-o.left:r.position.left-l.left),f&&(r.size.height=r.size.width/r.aspectRatio),r.position.left=i.helper?o.left:0),a.top<(r._helper?o.top:0)&&(r.size.height=r.size.height+(r._helper?r.position.top-o.top:r.position.top),f&&(r.size.width=r.size.height*r.aspectRatio),r.position.top=r._helper?o.top:0),r.offset.left=r.parentData.left+r.position.left,r.offset.top=r.parentData.top+r.position.top;var h=Math.abs((r._helper?r.offset.left-l.left:r.offset.left-l.left)+r.sizeDiff.width),p=Math.abs((r._helper?r.offset.top-l.top:r.offset.top-o.top)+r.sizeDiff.height),d=r.containerElement.get(0)==r.element.parent().get(0),v=/relative|absolute/.test(r.containerElement.css("position"));d&&v&&(h-=r.parentData.left),h+r.size.width>=r.parentData.width&&(r.size.width=r.parentData.width-h,f&&(r.size.height=r.size.width/r.aspectRatio)),p+r.size.height>=r.parentData.height&&(r.size.height=r.parentData.height-p,f&&(r.size.width=r.size.height*r.aspectRatio))},stop:function(t,n){var r=e(this).data("resizable"),i=r.options,s=r.position,o=r.containerOffset,u=r.containerPosition,a=r.containerElement,f=e(r.helper),l=f.offset(),c=f.outerWidth()-r.sizeDiff.width,h=f.outerHeight()-r.sizeDiff.height;r._helper&&!i.animate&&/relative/.test(a.css("position"))&&e(this).css({left:l.left-u.left-o.left,width:c,height:h}),r._helper&&!i.animate&&/static/.test(a.css("position"))&&e(this).css({left:l.left-u.left-o.left,width:c,height:h})}}),e.ui.plugin.add("resizable","ghost",{start:function(t,n){var r=e(this).data("resizable"),i=r.options,s=r.size;r.ghost=r.originalElement.clone(),r.ghost.css({opacity:.25,display:"block",position:"relative",height:s.height,width:s.width,margin:0,left:0,top:0}).addClass("ui-resizable-ghost").addClass(typeof i.ghost=="string"?i.ghost:""),r.ghost.appendTo(r.helper)},resize:function(t,n){var r=e(this).data("resizable"),i=r.options;r.ghost&&r.ghost.css({position:"relative",height:r.size.height,width:r.size.width})},stop:function(t,n){var r=e(this).data("resizable"),i=r.options;r.ghost&&r.helper&&r.helper.get(0).removeChild(r.ghost.get(0))}}),e.ui.plugin.add("resizable","grid",{resize:function(t,n){var r=e(this).data("resizable"),i=r.options,s=r.size,o=r.originalSize,u=r.originalPosition,a=r.axis,f=i._aspectRatio||t.shiftKey;i.grid=typeof i.grid=="number"?[i.grid,i.grid]:i.grid;var l=Math.round((s.width-o.width)/(i.grid[0]||1))*(i.grid[0]||1),c=Math.round((s.height-o.height)/(i.grid[1]||1))*(i.grid[1]||1);/^(se|s|e)$/.test(a)?(r.size.width=o.width+l,r.size.height=o.height+c):/^(ne)$/.test(a)?(r.size.width=o.width+l,r.size.height=o.height+c,r.position.top=u.top-c):/^(sw)$/.test(a)?(r.size.width=o.width+l,r.size.height=o.height+c,r.position.left=u.left-l):(r.size.width=o.width+l,r.size.height=o.height+c,r.position.top=u.top-c,r.position.left=u.left-l)}});var n=function(e){return parseInt(e,10)||0},r=function(e){return!isNaN(parseInt(e,10))}})(jQuery);
\ No newline at end of file
--- a/web/wp-includes/js/jquery/ui/jquery.ui.selectable.min.js	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/js/jquery/ui/jquery.ui.selectable.min.js	Wed Dec 19 17:46:52 2012 -0800
@@ -1,5 +1,5 @@
-/*! jQuery UI - v1.8.20 - 2012-04-30
-* https://github.com/jquery/jquery-ui
+/*! jQuery UI - v1.9.2 - 2012-11-23
+* http://jqueryui.com
 * Includes: jquery.ui.selectable.js
-* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */
-(function(a,b){a.widget("ui.selectable",a.ui.mouse,{options:{appendTo:"body",autoRefresh:!0,distance:0,filter:"*",tolerance:"touch"},_create:function(){var b=this;this.element.addClass("ui-selectable"),this.dragged=!1;var c;this.refresh=function(){c=a(b.options.filter,b.element[0]),c.addClass("ui-selectee"),c.each(function(){var b=a(this),c=b.offset();a.data(this,"selectable-item",{element:this,$element:b,left:c.left,top:c.top,right:c.left+b.outerWidth(),bottom:c.top+b.outerHeight(),startselected:!1,selected:b.hasClass("ui-selected"),selecting:b.hasClass("ui-selecting"),unselecting:b.hasClass("ui-unselecting")})})},this.refresh(),this.selectees=c.addClass("ui-selectee"),this._mouseInit(),this.helper=a("<div class='ui-selectable-helper'></div>")},destroy:function(){return this.selectees.removeClass("ui-selectee").removeData("selectable-item"),this.element.removeClass("ui-selectable ui-selectable-disabled").removeData("selectable").unbind(".selectable"),this._mouseDestroy(),this},_mouseStart:function(b){var c=this;this.opos=[b.pageX,b.pageY];if(this.options.disabled)return;var d=this.options;this.selectees=a(d.filter,this.element[0]),this._trigger("start",b),a(d.appendTo).append(this.helper),this.helper.css({left:b.clientX,top:b.clientY,width:0,height:0}),d.autoRefresh&&this.refresh(),this.selectees.filter(".ui-selected").each(function(){var d=a.data(this,"selectable-item");d.startselected=!0,!b.metaKey&&!b.ctrlKey&&(d.$element.removeClass("ui-selected"),d.selected=!1,d.$element.addClass("ui-unselecting"),d.unselecting=!0,c._trigger("unselecting",b,{unselecting:d.element}))}),a(b.target).parents().andSelf().each(function(){var d=a.data(this,"selectable-item");if(d){var e=!b.metaKey&&!b.ctrlKey||!d.$element.hasClass("ui-selected");return d.$element.removeClass(e?"ui-unselecting":"ui-selected").addClass(e?"ui-selecting":"ui-unselecting"),d.unselecting=!e,d.selecting=e,d.selected=e,e?c._trigger("selecting",b,{selecting:d.element}):c._trigger("unselecting",b,{unselecting:d.element}),!1}})},_mouseDrag:function(b){var c=this;this.dragged=!0;if(this.options.disabled)return;var d=this.options,e=this.opos[0],f=this.opos[1],g=b.pageX,h=b.pageY;if(e>g){var i=g;g=e,e=i}if(f>h){var i=h;h=f,f=i}return this.helper.css({left:e,top:f,width:g-e,height:h-f}),this.selectees.each(function(){var i=a.data(this,"selectable-item");if(!i||i.element==c.element[0])return;var j=!1;d.tolerance=="touch"?j=!(i.left>g||i.right<e||i.top>h||i.bottom<f):d.tolerance=="fit"&&(j=i.left>e&&i.right<g&&i.top>f&&i.bottom<h),j?(i.selected&&(i.$element.removeClass("ui-selected"),i.selected=!1),i.unselecting&&(i.$element.removeClass("ui-unselecting"),i.unselecting=!1),i.selecting||(i.$element.addClass("ui-selecting"),i.selecting=!0,c._trigger("selecting",b,{selecting:i.element}))):(i.selecting&&((b.metaKey||b.ctrlKey)&&i.startselected?(i.$element.removeClass("ui-selecting"),i.selecting=!1,i.$element.addClass("ui-selected"),i.selected=!0):(i.$element.removeClass("ui-selecting"),i.selecting=!1,i.startselected&&(i.$element.addClass("ui-unselecting"),i.unselecting=!0),c._trigger("unselecting",b,{unselecting:i.element}))),i.selected&&!b.metaKey&&!b.ctrlKey&&!i.startselected&&(i.$element.removeClass("ui-selected"),i.selected=!1,i.$element.addClass("ui-unselecting"),i.unselecting=!0,c._trigger("unselecting",b,{unselecting:i.element})))}),!1},_mouseStop:function(b){var c=this;this.dragged=!1;var d=this.options;return a(".ui-unselecting",this.element[0]).each(function(){var d=a.data(this,"selectable-item");d.$element.removeClass("ui-unselecting"),d.unselecting=!1,d.startselected=!1,c._trigger("unselected",b,{unselected:d.element})}),a(".ui-selecting",this.element[0]).each(function(){var d=a.data(this,"selectable-item");d.$element.removeClass("ui-selecting").addClass("ui-selected"),d.selecting=!1,d.selected=!0,d.startselected=!0,c._trigger("selected",b,{selected:d.element})}),this._trigger("stop",b),this.helper.remove(),!1}}),a.extend(a.ui.selectable,{version:"1.8.20"})})(jQuery);
\ No newline at end of file
+* Copyright 2012 jQuery Foundation and other contributors; Licensed MIT */
+(function(e,t){e.widget("ui.selectable",e.ui.mouse,{version:"1.9.2",options:{appendTo:"body",autoRefresh:!0,distance:0,filter:"*",tolerance:"touch"},_create:function(){var t=this;this.element.addClass("ui-selectable"),this.dragged=!1;var n;this.refresh=function(){n=e(t.options.filter,t.element[0]),n.addClass("ui-selectee"),n.each(function(){var t=e(this),n=t.offset();e.data(this,"selectable-item",{element:this,$element:t,left:n.left,top:n.top,right:n.left+t.outerWidth(),bottom:n.top+t.outerHeight(),startselected:!1,selected:t.hasClass("ui-selected"),selecting:t.hasClass("ui-selecting"),unselecting:t.hasClass("ui-unselecting")})})},this.refresh(),this.selectees=n.addClass("ui-selectee"),this._mouseInit(),this.helper=e("<div class='ui-selectable-helper'></div>")},_destroy:function(){this.selectees.removeClass("ui-selectee").removeData("selectable-item"),this.element.removeClass("ui-selectable ui-selectable-disabled"),this._mouseDestroy()},_mouseStart:function(t){var n=this;this.opos=[t.pageX,t.pageY];if(this.options.disabled)return;var r=this.options;this.selectees=e(r.filter,this.element[0]),this._trigger("start",t),e(r.appendTo).append(this.helper),this.helper.css({left:t.clientX,top:t.clientY,width:0,height:0}),r.autoRefresh&&this.refresh(),this.selectees.filter(".ui-selected").each(function(){var r=e.data(this,"selectable-item");r.startselected=!0,!t.metaKey&&!t.ctrlKey&&(r.$element.removeClass("ui-selected"),r.selected=!1,r.$element.addClass("ui-unselecting"),r.unselecting=!0,n._trigger("unselecting",t,{unselecting:r.element}))}),e(t.target).parents().andSelf().each(function(){var r=e.data(this,"selectable-item");if(r){var i=!t.metaKey&&!t.ctrlKey||!r.$element.hasClass("ui-selected");return r.$element.removeClass(i?"ui-unselecting":"ui-selected").addClass(i?"ui-selecting":"ui-unselecting"),r.unselecting=!i,r.selecting=i,r.selected=i,i?n._trigger("selecting",t,{selecting:r.element}):n._trigger("unselecting",t,{unselecting:r.element}),!1}})},_mouseDrag:function(t){var n=this;this.dragged=!0;if(this.options.disabled)return;var r=this.options,i=this.opos[0],s=this.opos[1],o=t.pageX,u=t.pageY;if(i>o){var a=o;o=i,i=a}if(s>u){var a=u;u=s,s=a}return this.helper.css({left:i,top:s,width:o-i,height:u-s}),this.selectees.each(function(){var a=e.data(this,"selectable-item");if(!a||a.element==n.element[0])return;var f=!1;r.tolerance=="touch"?f=!(a.left>o||a.right<i||a.top>u||a.bottom<s):r.tolerance=="fit"&&(f=a.left>i&&a.right<o&&a.top>s&&a.bottom<u),f?(a.selected&&(a.$element.removeClass("ui-selected"),a.selected=!1),a.unselecting&&(a.$element.removeClass("ui-unselecting"),a.unselecting=!1),a.selecting||(a.$element.addClass("ui-selecting"),a.selecting=!0,n._trigger("selecting",t,{selecting:a.element}))):(a.selecting&&((t.metaKey||t.ctrlKey)&&a.startselected?(a.$element.removeClass("ui-selecting"),a.selecting=!1,a.$element.addClass("ui-selected"),a.selected=!0):(a.$element.removeClass("ui-selecting"),a.selecting=!1,a.startselected&&(a.$element.addClass("ui-unselecting"),a.unselecting=!0),n._trigger("unselecting",t,{unselecting:a.element}))),a.selected&&!t.metaKey&&!t.ctrlKey&&!a.startselected&&(a.$element.removeClass("ui-selected"),a.selected=!1,a.$element.addClass("ui-unselecting"),a.unselecting=!0,n._trigger("unselecting",t,{unselecting:a.element})))}),!1},_mouseStop:function(t){var n=this;this.dragged=!1;var r=this.options;return e(".ui-unselecting",this.element[0]).each(function(){var r=e.data(this,"selectable-item");r.$element.removeClass("ui-unselecting"),r.unselecting=!1,r.startselected=!1,n._trigger("unselected",t,{unselected:r.element})}),e(".ui-selecting",this.element[0]).each(function(){var r=e.data(this,"selectable-item");r.$element.removeClass("ui-selecting").addClass("ui-selected"),r.selecting=!1,r.selected=!0,r.startselected=!0,n._trigger("selected",t,{selected:r.element})}),this._trigger("stop",t),this.helper.remove(),!1}})})(jQuery);
\ No newline at end of file
--- a/web/wp-includes/js/jquery/ui/jquery.ui.slider.min.js	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/js/jquery/ui/jquery.ui.slider.min.js	Wed Dec 19 17:46:52 2012 -0800
@@ -1,5 +1,5 @@
-/*! jQuery UI - v1.8.20 - 2012-04-30
-* https://github.com/jquery/jquery-ui
+/*! jQuery UI - v1.9.2 - 2012-11-23
+* http://jqueryui.com
 * Includes: jquery.ui.slider.js
-* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */
-(function(a,b){var c=5;a.widget("ui.slider",a.ui.mouse,{widgetEventPrefix:"slide",options:{animate:!1,distance:0,max:100,min:0,orientation:"horizontal",range:!1,step:1,value:0,values:null},_create:function(){var b=this,d=this.options,e=this.element.find(".ui-slider-handle").addClass("ui-state-default ui-corner-all"),f="<a class='ui-slider-handle ui-state-default ui-corner-all' href='#'></a>",g=d.values&&d.values.length||1,h=[];this._keySliding=!1,this._mouseSliding=!1,this._animateOff=!0,this._handleIndex=null,this._detectOrientation(),this._mouseInit(),this.element.addClass("ui-slider ui-slider-"+this.orientation+" ui-widget"+" ui-widget-content"+" ui-corner-all"+(d.disabled?" ui-slider-disabled ui-disabled":"")),this.range=a([]),d.range&&(d.range===!0&&(d.values||(d.values=[this._valueMin(),this._valueMin()]),d.values.length&&d.values.length!==2&&(d.values=[d.values[0],d.values[0]])),this.range=a("<div></div>").appendTo(this.element).addClass("ui-slider-range ui-widget-header"+(d.range==="min"||d.range==="max"?" ui-slider-range-"+d.range:"")));for(var i=e.length;i<g;i+=1)h.push(f);this.handles=e.add(a(h.join("")).appendTo(b.element)),this.handle=this.handles.eq(0),this.handles.add(this.range).filter("a").click(function(a){a.preventDefault()}).hover(function(){d.disabled||a(this).addClass("ui-state-hover")},function(){a(this).removeClass("ui-state-hover")}).focus(function(){d.disabled?a(this).blur():(a(".ui-slider .ui-state-focus").removeClass("ui-state-focus"),a(this).addClass("ui-state-focus"))}).blur(function(){a(this).removeClass("ui-state-focus")}),this.handles.each(function(b){a(this).data("index.ui-slider-handle",b)}),this.handles.keydown(function(d){var e=a(this).data("index.ui-slider-handle"),f,g,h,i;if(b.options.disabled)return;switch(d.keyCode){case a.ui.keyCode.HOME:case a.ui.keyCode.END:case a.ui.keyCode.PAGE_UP:case a.ui.keyCode.PAGE_DOWN:case a.ui.keyCode.UP:case a.ui.keyCode.RIGHT:case a.ui.keyCode.DOWN:case a.ui.keyCode.LEFT:d.preventDefault();if(!b._keySliding){b._keySliding=!0,a(this).addClass("ui-state-active"),f=b._start(d,e);if(f===!1)return}}i=b.options.step,b.options.values&&b.options.values.length?g=h=b.values(e):g=h=b.value();switch(d.keyCode){case a.ui.keyCode.HOME:h=b._valueMin();break;case a.ui.keyCode.END:h=b._valueMax();break;case a.ui.keyCode.PAGE_UP:h=b._trimAlignValue(g+(b._valueMax()-b._valueMin())/c);break;case a.ui.keyCode.PAGE_DOWN:h=b._trimAlignValue(g-(b._valueMax()-b._valueMin())/c);break;case a.ui.keyCode.UP:case a.ui.keyCode.RIGHT:if(g===b._valueMax())return;h=b._trimAlignValue(g+i);break;case a.ui.keyCode.DOWN:case a.ui.keyCode.LEFT:if(g===b._valueMin())return;h=b._trimAlignValue(g-i)}b._slide(d,e,h)}).keyup(function(c){var d=a(this).data("index.ui-slider-handle");b._keySliding&&(b._keySliding=!1,b._stop(c,d),b._change(c,d),a(this).removeClass("ui-state-active"))}),this._refreshValue(),this._animateOff=!1},destroy:function(){return this.handles.remove(),this.range.remove(),this.element.removeClass("ui-slider ui-slider-horizontal ui-slider-vertical ui-slider-disabled ui-widget ui-widget-content ui-corner-all").removeData("slider").unbind(".slider"),this._mouseDestroy(),this},_mouseCapture:function(b){var c=this.options,d,e,f,g,h,i,j,k,l;return c.disabled?!1:(this.elementSize={width:this.element.outerWidth(),height:this.element.outerHeight()},this.elementOffset=this.element.offset(),d={x:b.pageX,y:b.pageY},e=this._normValueFromMouse(d),f=this._valueMax()-this._valueMin()+1,h=this,this.handles.each(function(b){var c=Math.abs(e-h.values(b));f>c&&(f=c,g=a(this),i=b)}),c.range===!0&&this.values(1)===c.min&&(i+=1,g=a(this.handles[i])),j=this._start(b,i),j===!1?!1:(this._mouseSliding=!0,h._handleIndex=i,g.addClass("ui-state-active").focus(),k=g.offset(),l=!a(b.target).parents().andSelf().is(".ui-slider-handle"),this._clickOffset=l?{left:0,top:0}:{left:b.pageX-k.left-g.width()/2,top:b.pageY-k.top-g.height()/2-(parseInt(g.css("borderTopWidth"),10)||0)-(parseInt(g.css("borderBottomWidth"),10)||0)+(parseInt(g.css("marginTop"),10)||0)},this.handles.hasClass("ui-state-hover")||this._slide(b,i,e),this._animateOff=!0,!0))},_mouseStart:function(a){return!0},_mouseDrag:function(a){var b={x:a.pageX,y:a.pageY},c=this._normValueFromMouse(b);return this._slide(a,this._handleIndex,c),!1},_mouseStop:function(a){return this.handles.removeClass("ui-state-active"),this._mouseSliding=!1,this._stop(a,this._handleIndex),this._change(a,this._handleIndex),this._handleIndex=null,this._clickOffset=null,this._animateOff=!1,!1},_detectOrientation:function(){this.orientation=this.options.orientation==="vertical"?"vertical":"horizontal"},_normValueFromMouse:function(a){var b,c,d,e,f;return this.orientation==="horizontal"?(b=this.elementSize.width,c=a.x-this.elementOffset.left-(this._clickOffset?this._clickOffset.left:0)):(b=this.elementSize.height,c=a.y-this.elementOffset.top-(this._clickOffset?this._clickOffset.top:0)),d=c/b,d>1&&(d=1),d<0&&(d=0),this.orientation==="vertical"&&(d=1-d),e=this._valueMax()-this._valueMin(),f=this._valueMin()+d*e,this._trimAlignValue(f)},_start:function(a,b){var c={handle:this.handles[b],value:this.value()};return this.options.values&&this.options.values.length&&(c.value=this.values(b),c.values=this.values()),this._trigger("start",a,c)},_slide:function(a,b,c){var d,e,f;this.options.values&&this.options.values.length?(d=this.values(b?0:1),this.options.values.length===2&&this.options.range===!0&&(b===0&&c>d||b===1&&c<d)&&(c=d),c!==this.values(b)&&(e=this.values(),e[b]=c,f=this._trigger("slide",a,{handle:this.handles[b],value:c,values:e}),d=this.values(b?0:1),f!==!1&&this.values(b,c,!0))):c!==this.value()&&(f=this._trigger("slide",a,{handle:this.handles[b],value:c}),f!==!1&&this.value(c))},_stop:function(a,b){var c={handle:this.handles[b],value:this.value()};this.options.values&&this.options.values.length&&(c.value=this.values(b),c.values=this.values()),this._trigger("stop",a,c)},_change:function(a,b){if(!this._keySliding&&!this._mouseSliding){var c={handle:this.handles[b],value:this.value()};this.options.values&&this.options.values.length&&(c.value=this.values(b),c.values=this.values()),this._trigger("change",a,c)}},value:function(a){if(arguments.length){this.options.value=this._trimAlignValue(a),this._refreshValue(),this._change(null,0);return}return this._value()},values:function(b,c){var d,e,f;if(arguments.length>1){this.options.values[b]=this._trimAlignValue(c),this._refreshValue(),this._change(null,b);return}if(!arguments.length)return this._values();if(!a.isArray(arguments[0]))return this.options.values&&this.options.values.length?this._values(b):this.value();d=this.options.values,e=arguments[0];for(f=0;f<d.length;f+=1)d[f]=this._trimAlignValue(e[f]),this._change(null,f);this._refreshValue()},_setOption:function(b,c){var d,e=0;a.isArray(this.options.values)&&(e=this.options.values.length),a.Widget.prototype._setOption.apply(this,arguments);switch(b){case"disabled":c?(this.handles.filter(".ui-state-focus").blur(),this.handles.removeClass("ui-state-hover"),this.handles.propAttr("disabled",!0),this.element.addClass("ui-disabled")):(this.handles.propAttr("disabled",!1),this.element.removeClass("ui-disabled"));break;case"orientation":this._detectOrientation(),this.element.removeClass("ui-slider-horizontal ui-slider-vertical").addClass("ui-slider-"+this.orientation),this._refreshValue();break;case"value":this._animateOff=!0,this._refreshValue(),this._change(null,0),this._animateOff=!1;break;case"values":this._animateOff=!0,this._refreshValue();for(d=0;d<e;d+=1)this._change(null,d);this._animateOff=!1}},_value:function(){var a=this.options.value;return a=this._trimAlignValue(a),a},_values:function(a){var b,c,d;if(arguments.length)return b=this.options.values[a],b=this._trimAlignValue(b),b;c=this.options.values.slice();for(d=0;d<c.length;d+=1)c[d]=this._trimAlignValue(c[d]);return c},_trimAlignValue:function(a){if(a<=this._valueMin())return this._valueMin();if(a>=this._valueMax())return this._valueMax();var b=this.options.step>0?this.options.step:1,c=(a-this._valueMin())%b,d=a-c;return Math.abs(c)*2>=b&&(d+=c>0?b:-b),parseFloat(d.toFixed(5))},_valueMin:function(){return this.options.min},_valueMax:function(){return this.options.max},_refreshValue:function(){var b=this.options.range,c=this.options,d=this,e=this._animateOff?!1:c.animate,f,g={},h,i,j,k;this.options.values&&this.options.values.length?this.handles.each(function(b,i){f=(d.values(b)-d._valueMin())/(d._valueMax()-d._valueMin())*100,g[d.orientation==="horizontal"?"left":"bottom"]=f+"%",a(this).stop(1,1)[e?"animate":"css"](g,c.animate),d.options.range===!0&&(d.orientation==="horizontal"?(b===0&&d.range.stop(1,1)[e?"animate":"css"]({left:f+"%"},c.animate),b===1&&d.range[e?"animate":"css"]({width:f-h+"%"},{queue:!1,duration:c.animate})):(b===0&&d.range.stop(1,1)[e?"animate":"css"]({bottom:f+"%"},c.animate),b===1&&d.range[e?"animate":"css"]({height:f-h+"%"},{queue:!1,duration:c.animate}))),h=f}):(i=this.value(),j=this._valueMin(),k=this._valueMax(),f=k!==j?(i-j)/(k-j)*100:0,g[d.orientation==="horizontal"?"left":"bottom"]=f+"%",this.handle.stop(1,1)[e?"animate":"css"](g,c.animate),b==="min"&&this.orientation==="horizontal"&&this.range.stop(1,1)[e?"animate":"css"]({width:f+"%"},c.animate),b==="max"&&this.orientation==="horizontal"&&this.range[e?"animate":"css"]({width:100-f+"%"},{queue:!1,duration:c.animate}),b==="min"&&this.orientation==="vertical"&&this.range.stop(1,1)[e?"animate":"css"]({height:f+"%"},c.animate),b==="max"&&this.orientation==="vertical"&&this.range[e?"animate":"css"]({height:100-f+"%"},{queue:!1,duration:c.animate}))}}),a.extend(a.ui.slider,{version:"1.8.20"})})(jQuery);
\ No newline at end of file
+* Copyright 2012 jQuery Foundation and other contributors; Licensed MIT */
+(function(e,t){var n=5;e.widget("ui.slider",e.ui.mouse,{version:"1.9.2",widgetEventPrefix:"slide",options:{animate:!1,distance:0,max:100,min:0,orientation:"horizontal",range:!1,step:1,value:0,values:null},_create:function(){var t,r,i=this.options,s=this.element.find(".ui-slider-handle").addClass("ui-state-default ui-corner-all"),o="<a class='ui-slider-handle ui-state-default ui-corner-all' href='#'></a>",u=[];this._keySliding=!1,this._mouseSliding=!1,this._animateOff=!0,this._handleIndex=null,this._detectOrientation(),this._mouseInit(),this.element.addClass("ui-slider ui-slider-"+this.orientation+" ui-widget"+" ui-widget-content"+" ui-corner-all"+(i.disabled?" ui-slider-disabled ui-disabled":"")),this.range=e([]),i.range&&(i.range===!0&&(i.values||(i.values=[this._valueMin(),this._valueMin()]),i.values.length&&i.values.length!==2&&(i.values=[i.values[0],i.values[0]])),this.range=e("<div></div>").appendTo(this.element).addClass("ui-slider-range ui-widget-header"+(i.range==="min"||i.range==="max"?" ui-slider-range-"+i.range:""))),r=i.values&&i.values.length||1;for(t=s.length;t<r;t++)u.push(o);this.handles=s.add(e(u.join("")).appendTo(this.element)),this.handle=this.handles.eq(0),this.handles.add(this.range).filter("a").click(function(e){e.preventDefault()}).mouseenter(function(){i.disabled||e(this).addClass("ui-state-hover")}).mouseleave(function(){e(this).removeClass("ui-state-hover")}).focus(function(){i.disabled?e(this).blur():(e(".ui-slider .ui-state-focus").removeClass("ui-state-focus"),e(this).addClass("ui-state-focus"))}).blur(function(){e(this).removeClass("ui-state-focus")}),this.handles.each(function(t){e(this).data("ui-slider-handle-index",t)}),this._on(this.handles,{keydown:function(t){var r,i,s,o,u=e(t.target).data("ui-slider-handle-index");switch(t.keyCode){case e.ui.keyCode.HOME:case e.ui.keyCode.END:case e.ui.keyCode.PAGE_UP:case e.ui.keyCode.PAGE_DOWN:case e.ui.keyCode.UP:case e.ui.keyCode.RIGHT:case e.ui.keyCode.DOWN:case e.ui.keyCode.LEFT:t.preventDefault();if(!this._keySliding){this._keySliding=!0,e(t.target).addClass("ui-state-active"),r=this._start(t,u);if(r===!1)return}}o=this.options.step,this.options.values&&this.options.values.length?i=s=this.values(u):i=s=this.value();switch(t.keyCode){case e.ui.keyCode.HOME:s=this._valueMin();break;case e.ui.keyCode.END:s=this._valueMax();break;case e.ui.keyCode.PAGE_UP:s=this._trimAlignValue(i+(this._valueMax()-this._valueMin())/n);break;case e.ui.keyCode.PAGE_DOWN:s=this._trimAlignValue(i-(this._valueMax()-this._valueMin())/n);break;case e.ui.keyCode.UP:case e.ui.keyCode.RIGHT:if(i===this._valueMax())return;s=this._trimAlignValue(i+o);break;case e.ui.keyCode.DOWN:case e.ui.keyCode.LEFT:if(i===this._valueMin())return;s=this._trimAlignValue(i-o)}this._slide(t,u,s)},keyup:function(t){var n=e(t.target).data("ui-slider-handle-index");this._keySliding&&(this._keySliding=!1,this._stop(t,n),this._change(t,n),e(t.target).removeClass("ui-state-active"))}}),this._refreshValue(),this._animateOff=!1},_destroy:function(){this.handles.remove(),this.range.remove(),this.element.removeClass("ui-slider ui-slider-horizontal ui-slider-vertical ui-slider-disabled ui-widget ui-widget-content ui-corner-all"),this._mouseDestroy()},_mouseCapture:function(t){var n,r,i,s,o,u,a,f,l=this,c=this.options;return c.disabled?!1:(this.elementSize={width:this.element.outerWidth(),height:this.element.outerHeight()},this.elementOffset=this.element.offset(),n={x:t.pageX,y:t.pageY},r=this._normValueFromMouse(n),i=this._valueMax()-this._valueMin()+1,this.handles.each(function(t){var n=Math.abs(r-l.values(t));i>n&&(i=n,s=e(this),o=t)}),c.range===!0&&this.values(1)===c.min&&(o+=1,s=e(this.handles[o])),u=this._start(t,o),u===!1?!1:(this._mouseSliding=!0,this._handleIndex=o,s.addClass("ui-state-active").focus(),a=s.offset(),f=!e(t.target).parents().andSelf().is(".ui-slider-handle"),this._clickOffset=f?{left:0,top:0}:{left:t.pageX-a.left-s.width()/2,top:t.pageY-a.top-s.height()/2-(parseInt(s.css("borderTopWidth"),10)||0)-(parseInt(s.css("borderBottomWidth"),10)||0)+(parseInt(s.css("marginTop"),10)||0)},this.handles.hasClass("ui-state-hover")||this._slide(t,o,r),this._animateOff=!0,!0))},_mouseStart:function(){return!0},_mouseDrag:function(e){var t={x:e.pageX,y:e.pageY},n=this._normValueFromMouse(t);return this._slide(e,this._handleIndex,n),!1},_mouseStop:function(e){return this.handles.removeClass("ui-state-active"),this._mouseSliding=!1,this._stop(e,this._handleIndex),this._change(e,this._handleIndex),this._handleIndex=null,this._clickOffset=null,this._animateOff=!1,!1},_detectOrientation:function(){this.orientation=this.options.orientation==="vertical"?"vertical":"horizontal"},_normValueFromMouse:function(e){var t,n,r,i,s;return this.orientation==="horizontal"?(t=this.elementSize.width,n=e.x-this.elementOffset.left-(this._clickOffset?this._clickOffset.left:0)):(t=this.elementSize.height,n=e.y-this.elementOffset.top-(this._clickOffset?this._clickOffset.top:0)),r=n/t,r>1&&(r=1),r<0&&(r=0),this.orientation==="vertical"&&(r=1-r),i=this._valueMax()-this._valueMin(),s=this._valueMin()+r*i,this._trimAlignValue(s)},_start:function(e,t){var n={handle:this.handles[t],value:this.value()};return this.options.values&&this.options.values.length&&(n.value=this.values(t),n.values=this.values()),this._trigger("start",e,n)},_slide:function(e,t,n){var r,i,s;this.options.values&&this.options.values.length?(r=this.values(t?0:1),this.options.values.length===2&&this.options.range===!0&&(t===0&&n>r||t===1&&n<r)&&(n=r),n!==this.values(t)&&(i=this.values(),i[t]=n,s=this._trigger("slide",e,{handle:this.handles[t],value:n,values:i}),r=this.values(t?0:1),s!==!1&&this.values(t,n,!0))):n!==this.value()&&(s=this._trigger("slide",e,{handle:this.handles[t],value:n}),s!==!1&&this.value(n))},_stop:function(e,t){var n={handle:this.handles[t],value:this.value()};this.options.values&&this.options.values.length&&(n.value=this.values(t),n.values=this.values()),this._trigger("stop",e,n)},_change:function(e,t){if(!this._keySliding&&!this._mouseSliding){var n={handle:this.handles[t],value:this.value()};this.options.values&&this.options.values.length&&(n.value=this.values(t),n.values=this.values()),this._trigger("change",e,n)}},value:function(e){if(arguments.length){this.options.value=this._trimAlignValue(e),this._refreshValue(),this._change(null,0);return}return this._value()},values:function(t,n){var r,i,s;if(arguments.length>1){this.options.values[t]=this._trimAlignValue(n),this._refreshValue(),this._change(null,t);return}if(!arguments.length)return this._values();if(!e.isArray(arguments[0]))return this.options.values&&this.options.values.length?this._values(t):this.value();r=this.options.values,i=arguments[0];for(s=0;s<r.length;s+=1)r[s]=this._trimAlignValue(i[s]),this._change(null,s);this._refreshValue()},_setOption:function(t,n){var r,i=0;e.isArray(this.options.values)&&(i=this.options.values.length),e.Widget.prototype._setOption.apply(this,arguments);switch(t){case"disabled":n?(this.handles.filter(".ui-state-focus").blur(),this.handles.removeClass("ui-state-hover"),this.handles.prop("disabled",!0),this.element.addClass("ui-disabled")):(this.handles.prop("disabled",!1),this.element.removeClass("ui-disabled"));break;case"orientation":this._detectOrientation(),this.element.removeClass("ui-slider-horizontal ui-slider-vertical").addClass("ui-slider-"+this.orientation),this._refreshValue();break;case"value":this._animateOff=!0,this._refreshValue(),this._change(null,0),this._animateOff=!1;break;case"values":this._animateOff=!0,this._refreshValue();for(r=0;r<i;r+=1)this._change(null,r);this._animateOff=!1;break;case"min":case"max":this._animateOff=!0,this._refreshValue(),this._animateOff=!1}},_value:function(){var e=this.options.value;return e=this._trimAlignValue(e),e},_values:function(e){var t,n,r;if(arguments.length)return t=this.options.values[e],t=this._trimAlignValue(t),t;n=this.options.values.slice();for(r=0;r<n.length;r+=1)n[r]=this._trimAlignValue(n[r]);return n},_trimAlignValue:function(e){if(e<=this._valueMin())return this._valueMin();if(e>=this._valueMax())return this._valueMax();var t=this.options.step>0?this.options.step:1,n=(e-this._valueMin())%t,r=e-n;return Math.abs(n)*2>=t&&(r+=n>0?t:-t),parseFloat(r.toFixed(5))},_valueMin:function(){return this.options.min},_valueMax:function(){return this.options.max},_refreshValue:function(){var t,n,r,i,s,o=this.options.range,u=this.options,a=this,f=this._animateOff?!1:u.animate,l={};this.options.values&&this.options.values.length?this.handles.each(function(r){n=(a.values(r)-a._valueMin())/(a._valueMax()-a._valueMin())*100,l[a.orientation==="horizontal"?"left":"bottom"]=n+"%",e(this).stop(1,1)[f?"animate":"css"](l,u.animate),a.options.range===!0&&(a.orientation==="horizontal"?(r===0&&a.range.stop(1,1)[f?"animate":"css"]({left:n+"%"},u.animate),r===1&&a.range[f?"animate":"css"]({width:n-t+"%"},{queue:!1,duration:u.animate})):(r===0&&a.range.stop(1,1)[f?"animate":"css"]({bottom:n+"%"},u.animate),r===1&&a.range[f?"animate":"css"]({height:n-t+"%"},{queue:!1,duration:u.animate}))),t=n}):(r=this.value(),i=this._valueMin(),s=this._valueMax(),n=s!==i?(r-i)/(s-i)*100:0,l[this.orientation==="horizontal"?"left":"bottom"]=n+"%",this.handle.stop(1,1)[f?"animate":"css"](l,u.animate),o==="min"&&this.orientation==="horizontal"&&this.range.stop(1,1)[f?"animate":"css"]({width:n+"%"},u.animate),o==="max"&&this.orientation==="horizontal"&&this.range[f?"animate":"css"]({width:100-n+"%"},{queue:!1,duration:u.animate}),o==="min"&&this.orientation==="vertical"&&this.range.stop(1,1)[f?"animate":"css"]({height:n+"%"},u.animate),o==="max"&&this.orientation==="vertical"&&this.range[f?"animate":"css"]({height:100-n+"%"},{queue:!1,duration:u.animate}))}})})(jQuery);
\ No newline at end of file
--- a/web/wp-includes/js/jquery/ui/jquery.ui.sortable.min.js	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/js/jquery/ui/jquery.ui.sortable.min.js	Wed Dec 19 17:46:52 2012 -0800
@@ -1,5 +1,5 @@
-/*! jQuery UI - v1.8.20 - 2012-04-30
-* https://github.com/jquery/jquery-ui
+/*! jQuery UI - v1.9.2 - 2012-11-23
+* http://jqueryui.com
 * Includes: jquery.ui.sortable.js
-* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */
-(function(a,b){a.widget("ui.sortable",a.ui.mouse,{widgetEventPrefix:"sort",ready:!1,options:{appendTo:"parent",axis:!1,connectWith:!1,containment:!1,cursor:"auto",cursorAt:!1,dropOnEmpty:!0,forcePlaceholderSize:!1,forceHelperSize:!1,grid:!1,handle:!1,helper:"original",items:"> *",opacity:!1,placeholder:!1,revert:!1,scroll:!0,scrollSensitivity:20,scrollSpeed:20,scope:"default",tolerance:"intersect",zIndex:1e3},_create:function(){var a=this.options;this.containerCache={},this.element.addClass("ui-sortable"),this.refresh(),this.floating=this.items.length?a.axis==="x"||/left|right/.test(this.items[0].item.css("float"))||/inline|table-cell/.test(this.items[0].item.css("display")):!1,this.offset=this.element.offset(),this._mouseInit(),this.ready=!0},destroy:function(){a.Widget.prototype.destroy.call(this),this.element.removeClass("ui-sortable ui-sortable-disabled"),this._mouseDestroy();for(var b=this.items.length-1;b>=0;b--)this.items[b].item.removeData(this.widgetName+"-item");return this},_setOption:function(b,c){b==="disabled"?(this.options[b]=c,this.widget()[c?"addClass":"removeClass"]("ui-sortable-disabled")):a.Widget.prototype._setOption.apply(this,arguments)},_mouseCapture:function(b,c){var d=this;if(this.reverting)return!1;if(this.options.disabled||this.options.type=="static")return!1;this._refreshItems(b);var e=null,f=this,g=a(b.target).parents().each(function(){if(a.data(this,d.widgetName+"-item")==f)return e=a(this),!1});a.data(b.target,d.widgetName+"-item")==f&&(e=a(b.target));if(!e)return!1;if(this.options.handle&&!c){var h=!1;a(this.options.handle,e).find("*").andSelf().each(function(){this==b.target&&(h=!0)});if(!h)return!1}return this.currentItem=e,this._removeCurrentsFromItems(),!0},_mouseStart:function(b,c,d){var e=this.options,f=this;this.currentContainer=this,this.refreshPositions(),this.helper=this._createHelper(b),this._cacheHelperProportions(),this._cacheMargins(),this.scrollParent=this.helper.scrollParent(),this.offset=this.currentItem.offset(),this.offset={top:this.offset.top-this.margins.top,left:this.offset.left-this.margins.left},this.helper.css("position","absolute"),this.cssPosition=this.helper.css("position"),a.extend(this.offset,{click:{left:b.pageX-this.offset.left,top:b.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()}),this.originalPosition=this._generatePosition(b),this.originalPageX=b.pageX,this.originalPageY=b.pageY,e.cursorAt&&this._adjustOffsetFromHelper(e.cursorAt),this.domPosition={prev:this.currentItem.prev()[0],parent:this.currentItem.parent()[0]},this.helper[0]!=this.currentItem[0]&&this.currentItem.hide(),this._createPlaceholder(),e.containment&&this._setContainment(),e.cursor&&(a("body").css("cursor")&&(this._storedCursor=a("body").css("cursor")),a("body").css("cursor",e.cursor)),e.opacity&&(this.helper.css("opacity")&&(this._storedOpacity=this.helper.css("opacity")),this.helper.css("opacity",e.opacity)),e.zIndex&&(this.helper.css("zIndex")&&(this._storedZIndex=this.helper.css("zIndex")),this.helper.css("zIndex",e.zIndex)),this.scrollParent[0]!=document&&this.scrollParent[0].tagName!="HTML"&&(this.overflowOffset=this.scrollParent.offset()),this._trigger("start",b,this._uiHash()),this._preserveHelperProportions||this._cacheHelperProportions();if(!d)for(var g=this.containers.length-1;g>=0;g--)this.containers[g]._trigger("activate",b,f._uiHash(this));return a.ui.ddmanager&&(a.ui.ddmanager.current=this),a.ui.ddmanager&&!e.dropBehaviour&&a.ui.ddmanager.prepareOffsets(this,b),this.dragging=!0,this.helper.addClass("ui-sortable-helper"),this._mouseDrag(b),!0},_mouseDrag:function(b){this.position=this._generatePosition(b),this.positionAbs=this._convertPositionTo("absolute"),this.lastPositionAbs||(this.lastPositionAbs=this.positionAbs);if(this.options.scroll){var c=this.options,d=!1;this.scrollParent[0]!=document&&this.scrollParent[0].tagName!="HTML"?(this.overflowOffset.top+this.scrollParent[0].offsetHeight-b.pageY<c.scrollSensitivity?this.scrollParent[0].scrollTop=d=this.scrollParent[0].scrollTop+c.scrollSpeed:b.pageY-this.overflowOffset.top<c.scrollSensitivity&&(this.scrollParent[0].scrollTop=d=this.scrollParent[0].scrollTop-c.scrollSpeed),this.overflowOffset.left+this.scrollParent[0].offsetWidth-b.pageX<c.scrollSensitivity?this.scrollParent[0].scrollLeft=d=this.scrollParent[0].scrollLeft+c.scrollSpeed:b.pageX-this.overflowOffset.left<c.scrollSensitivity&&(this.scrollParent[0].scrollLeft=d=this.scrollParent[0].scrollLeft-c.scrollSpeed)):(b.pageY-a(document).scrollTop()<c.scrollSensitivity?d=a(document).scrollTop(a(document).scrollTop()-c.scrollSpeed):a(window).height()-(b.pageY-a(document).scrollTop())<c.scrollSensitivity&&(d=a(document).scrollTop(a(document).scrollTop()+c.scrollSpeed)),b.pageX-a(document).scrollLeft()<c.scrollSensitivity?d=a(document).scrollLeft(a(document).scrollLeft()-c.scrollSpeed):a(window).width()-(b.pageX-a(document).scrollLeft())<c.scrollSensitivity&&(d=a(document).scrollLeft(a(document).scrollLeft()+c.scrollSpeed))),d!==!1&&a.ui.ddmanager&&!c.dropBehaviour&&a.ui.ddmanager.prepareOffsets(this,b)}this.positionAbs=this._convertPositionTo("absolute");if(!this.options.axis||this.options.axis!="y")this.helper[0].style.left=this.position.left+"px";if(!this.options.axis||this.options.axis!="x")this.helper[0].style.top=this.position.top+"px";for(var e=this.items.length-1;e>=0;e--){var f=this.items[e],g=f.item[0],h=this._intersectsWithPointer(f);if(!h)continue;if(g!=this.currentItem[0]&&this.placeholder[h==1?"next":"prev"]()[0]!=g&&!a.ui.contains(this.placeholder[0],g)&&(this.options.type=="semi-dynamic"?!a.ui.contains(this.element[0],g):!0)){this.direction=h==1?"down":"up";if(this.options.tolerance=="pointer"||this._intersectsWithSides(f))this._rearrange(b,f);else break;this._trigger("change",b,this._uiHash());break}}return this._contactContainers(b),a.ui.ddmanager&&a.ui.ddmanager.drag(this,b),this._trigger("sort",b,this._uiHash()),this.lastPositionAbs=this.positionAbs,!1},_mouseStop:function(b,c){if(!b)return;a.ui.ddmanager&&!this.options.dropBehaviour&&a.ui.ddmanager.drop(this,b);if(this.options.revert){var d=this,e=d.placeholder.offset();d.reverting=!0,a(this.helper).animate({left:e.left-this.offset.parent.left-d.margins.left+(this.offsetParent[0]==document.body?0:this.offsetParent[0].scrollLeft),top:e.top-this.offset.parent.top-d.margins.top+(this.offsetParent[0]==document.body?0:this.offsetParent[0].scrollTop)},parseInt(this.options.revert,10)||500,function(){d._clear(b)})}else this._clear(b,c);return!1},cancel:function(){var b=this;if(this.dragging){this._mouseUp({target:null}),this.options.helper=="original"?this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper"):this.currentItem.show();for(var c=this.containers.length-1;c>=0;c--)this.containers[c]._trigger("deactivate",null,b._uiHash(this)),this.containers[c].containerCache.over&&(this.containers[c]._trigger("out",null,b._uiHash(this)),this.containers[c].containerCache.over=0)}return this.placeholder&&(this.placeholder[0].parentNode&&this.placeholder[0].parentNode.removeChild(this.placeholder[0]),this.options.helper!="original"&&this.helper&&this.helper[0].parentNode&&this.helper.remove(),a.extend(this,{helper:null,dragging:!1,reverting:!1,_noFinalSort:null}),this.domPosition.prev?a(this.domPosition.prev).after(this.currentItem):a(this.domPosition.parent).prepend(this.currentItem)),this},serialize:function(b){var c=this._getItemsAsjQuery(b&&b.connected),d=[];return b=b||{},a(c).each(function(){var c=(a(b.item||this).attr(b.attribute||"id")||"").match(b.expression||/(.+)[-=_](.+)/);c&&d.push((b.key||c[1]+"[]")+"="+(b.key&&b.expression?c[1]:c[2]))}),!d.length&&b.key&&d.push(b.key+"="),d.join("&")},toArray:function(b){var c=this._getItemsAsjQuery(b&&b.connected),d=[];return b=b||{},c.each(function(){d.push(a(b.item||this).attr(b.attribute||"id")||"")}),d},_intersectsWith:function(a){var b=this.positionAbs.left,c=b+this.helperProportions.width,d=this.positionAbs.top,e=d+this.helperProportions.height,f=a.left,g=f+a.width,h=a.top,i=h+a.height,j=this.offset.click.top,k=this.offset.click.left,l=d+j>h&&d+j<i&&b+k>f&&b+k<g;return this.options.tolerance=="pointer"||this.options.forcePointerForContainers||this.options.tolerance!="pointer"&&this.helperProportions[this.floating?"width":"height"]>a[this.floating?"width":"height"]?l:f<b+this.helperProportions.width/2&&c-this.helperProportions.width/2<g&&h<d+this.helperProportions.height/2&&e-this.helperProportions.height/2<i},_intersectsWithPointer:function(b){var c=this.options.axis==="x"||a.ui.isOverAxis(this.positionAbs.top+this.offset.click.top,b.top,b.height),d=this.options.axis==="y"||a.ui.isOverAxis(this.positionAbs.left+this.offset.click.left,b.left,b.width),e=c&&d,f=this._getDragVerticalDirection(),g=this._getDragHorizontalDirection();return e?this.floating?g&&g=="right"||f=="down"?2:1:f&&(f=="down"?2:1):!1},_intersectsWithSides:function(b){var c=a.ui.isOverAxis(this.positionAbs.top+this.offset.click.top,b.top+b.height/2,b.height),d=a.ui.isOverAxis(this.positionAbs.left+this.offset.click.left,b.left+b.width/2,b.width),e=this._getDragVerticalDirection(),f=this._getDragHorizontalDirection();return this.floating&&f?f=="right"&&d||f=="left"&&!d:e&&(e=="down"&&c||e=="up"&&!c)},_getDragVerticalDirection:function(){var a=this.positionAbs.top-this.lastPositionAbs.top;return a!=0&&(a>0?"down":"up")},_getDragHorizontalDirection:function(){var a=this.positionAbs.left-this.lastPositionAbs.left;return a!=0&&(a>0?"right":"left")},refresh:function(a){return this._refreshItems(a),this.refreshPositions(),this},_connectWith:function(){var a=this.options;return a.connectWith.constructor==String?[a.connectWith]:a.connectWith},_getItemsAsjQuery:function(b){var c=this,d=[],e=[],f=this._connectWith();if(f&&b)for(var g=f.length-1;g>=0;g--){var h=a(f[g]);for(var i=h.length-1;i>=0;i--){var j=a.data(h[i],this.widgetName);j&&j!=this&&!j.options.disabled&&e.push([a.isFunction(j.options.items)?j.options.items.call(j.element):a(j.options.items,j.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),j])}}e.push([a.isFunction(this.options.items)?this.options.items.call(this.element,null,{options:this.options,item:this.currentItem}):a(this.options.items,this.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),this]);for(var g=e.length-1;g>=0;g--)e[g][0].each(function(){d.push(this)});return a(d)},_removeCurrentsFromItems:function(){var a=this.currentItem.find(":data("+this.widgetName+"-item)");for(var b=0;b<this.items.length;b++)for(var c=0;c<a.length;c++)a[c]==this.items[b].item[0]&&this.items.splice(b,1)},_refreshItems:function(b){this.items=[],this.containers=[this];var c=this.items,d=this,e=[[a.isFunction(this.options.items)?this.options.items.call(this.element[0],b,{item:this.currentItem}):a(this.options.items,this.element),this]],f=this._connectWith();if(f&&this.ready)for(var g=f.length-1;g>=0;g--){var h=a(f[g]);for(var i=h.length-1;i>=0;i--){var j=a.data(h[i],this.widgetName);j&&j!=this&&!j.options.disabled&&(e.push([a.isFunction(j.options.items)?j.options.items.call(j.element[0],b,{item:this.currentItem}):a(j.options.items,j.element),j]),this.containers.push(j))}}for(var g=e.length-1;g>=0;g--){var k=e[g][1],l=e[g][0];for(var i=0,m=l.length;i<m;i++){var n=a(l[i]);n.data(this.widgetName+"-item",k),c.push({item:n,instance:k,width:0,height:0,left:0,top:0})}}},refreshPositions:function(b){this.offsetParent&&this.helper&&(this.offset.parent=this._getParentOffset());for(var c=this.items.length-1;c>=0;c--){var d=this.items[c];if(d.instance!=this.currentContainer&&this.currentContainer&&d.item[0]!=this.currentItem[0])continue;var e=this.options.toleranceElement?a(this.options.toleranceElement,d.item):d.item;b||(d.width=e.outerWidth(),d.height=e.outerHeight());var f=e.offset();d.left=f.left,d.top=f.top}if(this.options.custom&&this.options.custom.refreshContainers)this.options.custom.refreshContainers.call(this);else for(var c=this.containers.length-1;c>=0;c--){var f=this.containers[c].element.offset();this.containers[c].containerCache.left=f.left,this.containers[c].containerCache.top=f.top,this.containers[c].containerCache.width=this.containers[c].element.outerWidth(),this.containers[c].containerCache.height=this.containers[c].element.outerHeight()}return this},_createPlaceholder:function(b){var c=b||this,d=c.options;if(!d.placeholder||d.placeholder.constructor==String){var e=d.placeholder;d.placeholder={element:function(){var b=a(document.createElement(c.currentItem[0].nodeName)).addClass(e||c.currentItem[0].className+" ui-sortable-placeholder").removeClass("ui-sortable-helper")[0];return e||(b.style.visibility="hidden"),b},update:function(a,b){if(e&&!d.forcePlaceholderSize)return;b.height()||b.height(c.currentItem.innerHeight()-parseInt(c.currentItem.css("paddingTop")||0,10)-parseInt(c.currentItem.css("paddingBottom")||0,10)),b.width()||b.width(c.currentItem.innerWidth()-parseInt(c.currentItem.css("paddingLeft")||0,10)-parseInt(c.currentItem.css("paddingRight")||0,10))}}}c.placeholder=a(d.placeholder.element.call(c.element,c.currentItem)),c.currentItem.after(c.placeholder),d.placeholder.update(c,c.placeholder)},_contactContainers:function(b){var c=null,d=null;for(var e=this.containers.length-1;e>=0;e--){if(a.ui.contains(this.currentItem[0],this.containers[e].element[0]))continue;if(this._intersectsWith(this.containers[e].containerCache)){if(c&&a.ui.contains(this.containers[e].element[0],c.element[0]))continue;c=this.containers[e],d=e}else this.containers[e].containerCache.over&&(this.containers[e]._trigger("out",b,this._uiHash(this)),this.containers[e].containerCache.over=0)}if(!c)return;if(this.containers.length===1)this.containers[d]._trigger("over",b,this._uiHash(this)),this.containers[d].containerCache.over=1;else if(this.currentContainer!=this.containers[d]){var f=1e4,g=null,h=this.positionAbs[this.containers[d].floating?"left":"top"];for(var i=this.items.length-1;i>=0;i--){if(!a.ui.contains(this.containers[d].element[0],this.items[i].item[0]))continue;var j=this.items[i][this.containers[d].floating?"left":"top"];Math.abs(j-h)<f&&(f=Math.abs(j-h),g=this.items[i])}if(!g&&!this.options.dropOnEmpty)return;this.currentContainer=this.containers[d],g?this._rearrange(b,g,null,!0):this._rearrange(b,null,this.containers[d].element,!0),this._trigger("change",b,this._uiHash()),this.containers[d]._trigger("change",b,this._uiHash(this)),this.options.placeholder.update(this.currentContainer,this.placeholder),this.containers[d]._trigger("over",b,this._uiHash(this)),this.containers[d].containerCache.over=1}},_createHelper:function(b){var c=this.options,d=a.isFunction(c.helper)?a(c.helper.apply(this.element[0],[b,this.currentItem])):c.helper=="clone"?this.currentItem.clone():this.currentItem;return d.parents("body").length||a(c.appendTo!="parent"?c.appendTo:this.currentItem[0].parentNode)[0].appendChild(d[0]),d[0]==this.currentItem[0]&&(this._storedCSS={width:this.currentItem[0].style.width,height:this.currentItem[0].style.height,position:this.currentItem.css("position"),top:this.currentItem.css("top"),left:this.currentItem.css("left")}),(d[0].style.width==""||c.forceHelperSize)&&d.width(this.currentItem.width()),(d[0].style.height==""||c.forceHelperSize)&&d.height(this.currentItem.height()),d},_adjustOffsetFromHelper:function(b){typeof b=="string"&&(b=b.split(" ")),a.isArray(b)&&(b={left:+b[0],top:+b[1]||0}),"left"in b&&(this.offset.click.left=b.left+this.margins.left),"right"in b&&(this.offset.click.left=this.helperProportions.width-b.right+this.margins.left),"top"in b&&(this.offset.click.top=b.top+this.margins.top),"bottom"in b&&(this.offset.click.top=this.helperProportions.height-b.bottom+this.margins.top)},_getParentOffset:function(){this.offsetParent=this.helper.offsetParent();var b=this.offsetParent.offset();this.cssPosition=="absolute"&&this.scrollParent[0]!=document&&a.ui.contains(this.scrollParent[0],this.offsetParent[0])&&(b.left+=this.scrollParent.scrollLeft(),b.top+=this.scrollParent.scrollTop());if(this.offsetParent[0]==document.body||this.offsetParent[0].tagName&&this.offsetParent[0].tagName.toLowerCase()=="html"&&a.browser.msie)b={top:0,left:0};return{top:b.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:b.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if(this.cssPosition=="relative"){var a=this.currentItem.position();return{top:a.top-(parseInt(this.helper.css("top"),10)||0)+this.scrollParent.scrollTop(),left:a.left-(parseInt(this.helper.css("left"),10)||0)+this.scrollParent.scrollLeft()}}return{top:0,left:0}},_cacheMargins:function(){this.margins={left:parseInt(this.currentItem.css("marginLeft"),10)||0,top:parseInt(this.currentItem.css("marginTop"),10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var b=this.options;b.containment=="parent"&&(b.containment=this.helper[0].parentNode);if(b.containment=="document"||b.containment=="window")this.containment=[0-this.offset.relative.left-this.offset.parent.left,0-this.offset.relative.top-this.offset.parent.top,a(b.containment=="document"?document:window).width()-this.helperProportions.width-this.margins.left,(a(b.containment=="document"?document:window).height()||document.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top];if(!/^(document|window|parent)$/.test(b.containment)){var c=a(b.containment)[0],d=a(b.containment).offset(),e=a(c).css("overflow")!="hidden";this.containment=[d.left+(parseInt(a(c).css("borderLeftWidth"),10)||0)+(parseInt(a(c).css("paddingLeft"),10)||0)-this.margins.left,d.top+(parseInt(a(c).css("borderTopWidth"),10)||0)+(parseInt(a(c).css("paddingTop"),10)||0)-this.margins.top,d.left+(e?Math.max(c.scrollWidth,c.offsetWidth):c.offsetWidth)-(parseInt(a(c).css("borderLeftWidth"),10)||0)-(parseInt(a(c).css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left,d.top+(e?Math.max(c.scrollHeight,c.offsetHeight):c.offsetHeight)-(parseInt(a(c).css("borderTopWidth"),10)||0)-(parseInt(a(c).css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top]}},_convertPositionTo:function(b,c){c||(c=this.position);var d=b=="absolute"?1:-1,e=this.options,f=this.cssPosition=="absolute"&&(this.scrollParent[0]==document||!a.ui.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,g=/(html|body)/i.test(f[0].tagName);return{top:c.top+this.offset.relative.top*d+this.offset.parent.top*d-(a.browser.safari&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollTop():g?0:f.scrollTop())*d),left:c.left+this.offset.relative.left*d+this.offset.parent.left*d-(a.browser.safari&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():g?0:f.scrollLeft())*d)}},_generatePosition:function(b){var c=this.options,d=this.cssPosition=="absolute"&&(this.scrollParent[0]==document||!a.ui.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,e=/(html|body)/i.test(d[0].tagName);this.cssPosition=="relative"&&(this.scrollParent[0]==document||this.scrollParent[0]==this.offsetParent[0])&&(this.offset.relative=this._getRelativeOffset());var f=b.pageX,g=b.pageY;if(this.originalPosition){this.containment&&(b.pageX-this.offset.click.left<this.containment[0]&&(f=this.containment[0]+this.offset.click.left),b.pageY-this.offset.click.top<this.containment[1]&&(g=this.containment[1]+this.offset.click.top),b.pageX-this.offset.click.left>this.containment[2]&&(f=this.containment[2]+this.offset.click.left),b.pageY-this.offset.click.top>this.containment[3]&&(g=this.containment[3]+this.offset.click.top));if(c.grid){var h=this.originalPageY+Math.round((g-this.originalPageY)/c.grid[1])*c.grid[1];g=this.containment?h-this.offset.click.top<this.containment[1]||h-this.offset.click.top>this.containment[3]?h-this.offset.click.top<this.containment[1]?h+c.grid[1]:h-c.grid[1]:h:h;var i=this.originalPageX+Math.round((f-this.originalPageX)/c.grid[0])*c.grid[0];f=this.containment?i-this.offset.click.left<this.containment[0]||i-this.offset.click.left>this.containment[2]?i-this.offset.click.left<this.containment[0]?i+c.grid[0]:i-c.grid[0]:i:i}}return{top:g-this.offset.click.top-this.offset.relative.top-this.offset.parent.top+(a.browser.safari&&this.cssPosition=="fixed"?0:this.cssPosition=="fixed"?-this.scrollParent.scrollTop():e?0:d.scrollTop()),left:f-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+(a.browser.safari&&this.cssPosition=="fixed"?0:this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():e?0:d.scrollLeft())}},_rearrange:function(a,b,c,d){c?c[0].appendChild(this.placeholder[0]):b.item[0].parentNode.insertBefore(this.placeholder[0],this.direction=="down"?b.item[0]:b.item[0].nextSibling),this.counter=this.counter?++this.counter:1;var e=this,f=this.counter;window.setTimeout(function(){f==e.counter&&e.refreshPositions(!d)},0)},_clear:function(b,c){this.reverting=!1;var d=[],e=this;!this._noFinalSort&&this.currentItem.parent().length&&this.placeholder.before(this.currentItem),this._noFinalSort=null;if(this.helper[0]==this.currentItem[0]){for(var f in this._storedCSS)if(this._storedCSS[f]=="auto"||this._storedCSS[f]=="static")this._storedCSS[f]="";this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper")}else this.currentItem.show();this.fromOutside&&!c&&d.push(function(a){this._trigger("receive",a,this._uiHash(this.fromOutside))}),(this.fromOutside||this.domPosition.prev!=this.currentItem.prev().not(".ui-sortable-helper")[0]||this.domPosition.parent!=this.currentItem.parent()[0])&&!c&&d.push(function(a){this._trigger("update",a,this._uiHash())});if(!a.ui.contains(this.element[0],this.currentItem[0])){c||d.push(function(a){this._trigger("remove",a,this._uiHash())});for(var f=this.containers.length-1;f>=0;f--)a.ui.contains(this.containers[f].element[0],this.currentItem[0])&&!c&&(d.push(function(a){return function(b){a._trigger("receive",b,this._uiHash(this))}}.call(this,this.containers[f])),d.push(function(a){return function(b){a._trigger("update",b,this._uiHash(this))}}.call(this,this.containers[f])))}for(var f=this.containers.length-1;f>=0;f--)c||d.push(function(a){return function(b){a._trigger("deactivate",b,this._uiHash(this))}}.call(this,this.containers[f])),this.containers[f].containerCache.over&&(d.push(function(a){return function(b){a._trigger("out",b,this._uiHash(this))}}.call(this,this.containers[f])),this.containers[f].containerCache.over=0);this._storedCursor&&a("body").css("cursor",this._storedCursor),this._storedOpacity&&this.helper.css("opacity",this._storedOpacity),this._storedZIndex&&this.helper.css("zIndex",this._storedZIndex=="auto"?"":this._storedZIndex),this.dragging=!1;if(this.cancelHelperRemoval){if(!c){this._trigger("beforeStop",b,this._uiHash());for(var f=0;f<d.length;f++)d[f].call(this,b);this._trigger("stop",b,this._uiHash())}return!1}c||this._trigger("beforeStop",b,this._uiHash()),this.placeholder[0].parentNode.removeChild(this.placeholder[0]),this.helper[0]!=this.currentItem[0]&&this.helper.remove(),this.helper=null;if(!c){for(var f=0;f<d.length;f++)d[f].call(this,b);this._trigger("stop",b,this._uiHash())}return this.fromOutside=!1,!0},_trigger:function(){a.Widget.prototype._trigger.apply(this,arguments)===!1&&this.cancel()},_uiHash:function(b){var c=b||this;return{helper:c.helper,placeholder:c.placeholder||a([]),position:c.position,originalPosition:c.originalPosition,offset:c.positionAbs,item:c.currentItem,sender:b?b.element:null}}}),a.extend(a.ui.sortable,{version:"1.8.20"})})(jQuery);
\ No newline at end of file
+* Copyright 2012 jQuery Foundation and other contributors; Licensed MIT */
+(function(e,t){e.widget("ui.sortable",e.ui.mouse,{version:"1.9.2",widgetEventPrefix:"sort",ready:!1,options:{appendTo:"parent",axis:!1,connectWith:!1,containment:!1,cursor:"auto",cursorAt:!1,dropOnEmpty:!0,forcePlaceholderSize:!1,forceHelperSize:!1,grid:!1,handle:!1,helper:"original",items:"> *",opacity:!1,placeholder:!1,revert:!1,scroll:!0,scrollSensitivity:20,scrollSpeed:20,scope:"default",tolerance:"intersect",zIndex:1e3},_create:function(){var e=this.options;this.containerCache={},this.element.addClass("ui-sortable"),this.refresh(),this.floating=this.items.length?e.axis==="x"||/left|right/.test(this.items[0].item.css("float"))||/inline|table-cell/.test(this.items[0].item.css("display")):!1,this.offset=this.element.offset(),this._mouseInit(),this.ready=!0},_destroy:function(){this.element.removeClass("ui-sortable ui-sortable-disabled"),this._mouseDestroy();for(var e=this.items.length-1;e>=0;e--)this.items[e].item.removeData(this.widgetName+"-item");return this},_setOption:function(t,n){t==="disabled"?(this.options[t]=n,this.widget().toggleClass("ui-sortable-disabled",!!n)):e.Widget.prototype._setOption.apply(this,arguments)},_mouseCapture:function(t,n){var r=this;if(this.reverting)return!1;if(this.options.disabled||this.options.type=="static")return!1;this._refreshItems(t);var i=null,s=e(t.target).parents().each(function(){if(e.data(this,r.widgetName+"-item")==r)return i=e(this),!1});e.data(t.target,r.widgetName+"-item")==r&&(i=e(t.target));if(!i)return!1;if(this.options.handle&&!n){var o=!1;e(this.options.handle,i).find("*").andSelf().each(function(){this==t.target&&(o=!0)});if(!o)return!1}return this.currentItem=i,this._removeCurrentsFromItems(),!0},_mouseStart:function(t,n,r){var i=this.options;this.currentContainer=this,this.refreshPositions(),this.helper=this._createHelper(t),this._cacheHelperProportions(),this._cacheMargins(),this.scrollParent=this.helper.scrollParent(),this.offset=this.currentItem.offset(),this.offset={top:this.offset.top-this.margins.top,left:this.offset.left-this.margins.left},e.extend(this.offset,{click:{left:t.pageX-this.offset.left,top:t.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()}),this.helper.css("position","absolute"),this.cssPosition=this.helper.css("position"),this.originalPosition=this._generatePosition(t),this.originalPageX=t.pageX,this.originalPageY=t.pageY,i.cursorAt&&this._adjustOffsetFromHelper(i.cursorAt),this.domPosition={prev:this.currentItem.prev()[0],parent:this.currentItem.parent()[0]},this.helper[0]!=this.currentItem[0]&&this.currentItem.hide(),this._createPlaceholder(),i.containment&&this._setContainment(),i.cursor&&(e("body").css("cursor")&&(this._storedCursor=e("body").css("cursor")),e("body").css("cursor",i.cursor)),i.opacity&&(this.helper.css("opacity")&&(this._storedOpacity=this.helper.css("opacity")),this.helper.css("opacity",i.opacity)),i.zIndex&&(this.helper.css("zIndex")&&(this._storedZIndex=this.helper.css("zIndex")),this.helper.css("zIndex",i.zIndex)),this.scrollParent[0]!=document&&this.scrollParent[0].tagName!="HTML"&&(this.overflowOffset=this.scrollParent.offset()),this._trigger("start",t,this._uiHash()),this._preserveHelperProportions||this._cacheHelperProportions();if(!r)for(var s=this.containers.length-1;s>=0;s--)this.containers[s]._trigger("activate",t,this._uiHash(this));return e.ui.ddmanager&&(e.ui.ddmanager.current=this),e.ui.ddmanager&&!i.dropBehaviour&&e.ui.ddmanager.prepareOffsets(this,t),this.dragging=!0,this.helper.addClass("ui-sortable-helper"),this._mouseDrag(t),!0},_mouseDrag:function(t){this.position=this._generatePosition(t),this.positionAbs=this._convertPositionTo("absolute"),this.lastPositionAbs||(this.lastPositionAbs=this.positionAbs);if(this.options.scroll){var n=this.options,r=!1;this.scrollParent[0]!=document&&this.scrollParent[0].tagName!="HTML"?(this.overflowOffset.top+this.scrollParent[0].offsetHeight-t.pageY<n.scrollSensitivity?this.scrollParent[0].scrollTop=r=this.scrollParent[0].scrollTop+n.scrollSpeed:t.pageY-this.overflowOffset.top<n.scrollSensitivity&&(this.scrollParent[0].scrollTop=r=this.scrollParent[0].scrollTop-n.scrollSpeed),this.overflowOffset.left+this.scrollParent[0].offsetWidth-t.pageX<n.scrollSensitivity?this.scrollParent[0].scrollLeft=r=this.scrollParent[0].scrollLeft+n.scrollSpeed:t.pageX-this.overflowOffset.left<n.scrollSensitivity&&(this.scrollParent[0].scrollLeft=r=this.scrollParent[0].scrollLeft-n.scrollSpeed)):(t.pageY-e(document).scrollTop()<n.scrollSensitivity?r=e(document).scrollTop(e(document).scrollTop()-n.scrollSpeed):e(window).height()-(t.pageY-e(document).scrollTop())<n.scrollSensitivity&&(r=e(document).scrollTop(e(document).scrollTop()+n.scrollSpeed)),t.pageX-e(document).scrollLeft()<n.scrollSensitivity?r=e(document).scrollLeft(e(document).scrollLeft()-n.scrollSpeed):e(window).width()-(t.pageX-e(document).scrollLeft())<n.scrollSensitivity&&(r=e(document).scrollLeft(e(document).scrollLeft()+n.scrollSpeed))),r!==!1&&e.ui.ddmanager&&!n.dropBehaviour&&e.ui.ddmanager.prepareOffsets(this,t)}this.positionAbs=this._convertPositionTo("absolute");if(!this.options.axis||this.options.axis!="y")this.helper[0].style.left=this.position.left+"px";if(!this.options.axis||this.options.axis!="x")this.helper[0].style.top=this.position.top+"px";for(var i=this.items.length-1;i>=0;i--){var s=this.items[i],o=s.item[0],u=this._intersectsWithPointer(s);if(!u)continue;if(s.instance!==this.currentContainer)continue;if(o!=this.currentItem[0]&&this.placeholder[u==1?"next":"prev"]()[0]!=o&&!e.contains(this.placeholder[0],o)&&(this.options.type=="semi-dynamic"?!e.contains(this.element[0],o):!0)){this.direction=u==1?"down":"up";if(this.options.tolerance!="pointer"&&!this._intersectsWithSides(s))break;this._rearrange(t,s),this._trigger("change",t,this._uiHash());break}}return this._contactContainers(t),e.ui.ddmanager&&e.ui.ddmanager.drag(this,t),this._trigger("sort",t,this._uiHash()),this.lastPositionAbs=this.positionAbs,!1},_mouseStop:function(t,n){if(!t)return;e.ui.ddmanager&&!this.options.dropBehaviour&&e.ui.ddmanager.drop(this,t);if(this.options.revert){var r=this,i=this.placeholder.offset();this.reverting=!0,e(this.helper).animate({left:i.left-this.offset.parent.left-this.margins.left+(this.offsetParent[0]==document.body?0:this.offsetParent[0].scrollLeft),top:i.top-this.offset.parent.top-this.margins.top+(this.offsetParent[0]==document.body?0:this.offsetParent[0].scrollTop)},parseInt(this.options.revert,10)||500,function(){r._clear(t)})}else this._clear(t,n);return!1},cancel:function(){if(this.dragging){this._mouseUp({target:null}),this.options.helper=="original"?this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper"):this.currentItem.show();for(var t=this.containers.length-1;t>=0;t--)this.containers[t]._trigger("deactivate",null,this._uiHash(this)),this.containers[t].containerCache.over&&(this.containers[t]._trigger("out",null,this._uiHash(this)),this.containers[t].containerCache.over=0)}return this.placeholder&&(this.placeholder[0].parentNode&&this.placeholder[0].parentNode.removeChild(this.placeholder[0]),this.options.helper!="original"&&this.helper&&this.helper[0].parentNode&&this.helper.remove(),e.extend(this,{helper:null,dragging:!1,reverting:!1,_noFinalSort:null}),this.domPosition.prev?e(this.domPosition.prev).after(this.currentItem):e(this.domPosition.parent).prepend(this.currentItem)),this},serialize:function(t){var n=this._getItemsAsjQuery(t&&t.connected),r=[];return t=t||{},e(n).each(function(){var n=(e(t.item||this).attr(t.attribute||"id")||"").match(t.expression||/(.+)[-=_](.+)/);n&&r.push((t.key||n[1]+"[]")+"="+(t.key&&t.expression?n[1]:n[2]))}),!r.length&&t.key&&r.push(t.key+"="),r.join("&")},toArray:function(t){var n=this._getItemsAsjQuery(t&&t.connected),r=[];return t=t||{},n.each(function(){r.push(e(t.item||this).attr(t.attribute||"id")||"")}),r},_intersectsWith:function(e){var t=this.positionAbs.left,n=t+this.helperProportions.width,r=this.positionAbs.top,i=r+this.helperProportions.height,s=e.left,o=s+e.width,u=e.top,a=u+e.height,f=this.offset.click.top,l=this.offset.click.left,c=r+f>u&&r+f<a&&t+l>s&&t+l<o;return this.options.tolerance=="pointer"||this.options.forcePointerForContainers||this.options.tolerance!="pointer"&&this.helperProportions[this.floating?"width":"height"]>e[this.floating?"width":"height"]?c:s<t+this.helperProportions.width/2&&n-this.helperProportions.width/2<o&&u<r+this.helperProportions.height/2&&i-this.helperProportions.height/2<a},_intersectsWithPointer:function(t){var n=this.options.axis==="x"||e.ui.isOverAxis(this.positionAbs.top+this.offset.click.top,t.top,t.height),r=this.options.axis==="y"||e.ui.isOverAxis(this.positionAbs.left+this.offset.click.left,t.left,t.width),i=n&&r,s=this._getDragVerticalDirection(),o=this._getDragHorizontalDirection();return i?this.floating?o&&o=="right"||s=="down"?2:1:s&&(s=="down"?2:1):!1},_intersectsWithSides:function(t){var n=e.ui.isOverAxis(this.positionAbs.top+this.offset.click.top,t.top+t.height/2,t.height),r=e.ui.isOverAxis(this.positionAbs.left+this.offset.click.left,t.left+t.width/2,t.width),i=this._getDragVerticalDirection(),s=this._getDragHorizontalDirection();return this.floating&&s?s=="right"&&r||s=="left"&&!r:i&&(i=="down"&&n||i=="up"&&!n)},_getDragVerticalDirection:function(){var e=this.positionAbs.top-this.lastPositionAbs.top;return e!=0&&(e>0?"down":"up")},_getDragHorizontalDirection:function(){var e=this.positionAbs.left-this.lastPositionAbs.left;return e!=0&&(e>0?"right":"left")},refresh:function(e){return this._refreshItems(e),this.refreshPositions(),this},_connectWith:function(){var e=this.options;return e.connectWith.constructor==String?[e.connectWith]:e.connectWith},_getItemsAsjQuery:function(t){var n=[],r=[],i=this._connectWith();if(i&&t)for(var s=i.length-1;s>=0;s--){var o=e(i[s]);for(var u=o.length-1;u>=0;u--){var a=e.data(o[u],this.widgetName);a&&a!=this&&!a.options.disabled&&r.push([e.isFunction(a.options.items)?a.options.items.call(a.element):e(a.options.items,a.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),a])}}r.push([e.isFunction(this.options.items)?this.options.items.call(this.element,null,{options:this.options,item:this.currentItem}):e(this.options.items,this.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),this]);for(var s=r.length-1;s>=0;s--)r[s][0].each(function(){n.push(this)});return e(n)},_removeCurrentsFromItems:function(){var t=this.currentItem.find(":data("+this.widgetName+"-item)");this.items=e.grep(this.items,function(e){for(var n=0;n<t.length;n++)if(t[n]==e.item[0])return!1;return!0})},_refreshItems:function(t){this.items=[],this.containers=[this];var n=this.items,r=[[e.isFunction(this.options.items)?this.options.items.call(this.element[0],t,{item:this.currentItem}):e(this.options.items,this.element),this]],i=this._connectWith();if(i&&this.ready)for(var s=i.length-1;s>=0;s--){var o=e(i[s]);for(var u=o.length-1;u>=0;u--){var a=e.data(o[u],this.widgetName);a&&a!=this&&!a.options.disabled&&(r.push([e.isFunction(a.options.items)?a.options.items.call(a.element[0],t,{item:this.currentItem}):e(a.options.items,a.element),a]),this.containers.push(a))}}for(var s=r.length-1;s>=0;s--){var f=r[s][1],l=r[s][0];for(var u=0,c=l.length;u<c;u++){var h=e(l[u]);h.data(this.widgetName+"-item",f),n.push({item:h,instance:f,width:0,height:0,left:0,top:0})}}},refreshPositions:function(t){this.offsetParent&&this.helper&&(this.offset.parent=this._getParentOffset());for(var n=this.items.length-1;n>=0;n--){var r=this.items[n];if(r.instance!=this.currentContainer&&this.currentContainer&&r.item[0]!=this.currentItem[0])continue;var i=this.options.toleranceElement?e(this.options.toleranceElement,r.item):r.item;t||(r.width=i.outerWidth(),r.height=i.outerHeight());var s=i.offset();r.left=s.left,r.top=s.top}if(this.options.custom&&this.options.custom.refreshContainers)this.options.custom.refreshContainers.call(this);else for(var n=this.containers.length-1;n>=0;n--){var s=this.containers[n].element.offset();this.containers[n].containerCache.left=s.left,this.containers[n].containerCache.top=s.top,this.containers[n].containerCache.width=this.containers[n].element.outerWidth(),this.containers[n].containerCache.height=this.containers[n].element.outerHeight()}return this},_createPlaceholder:function(t){t=t||this;var n=t.options;if(!n.placeholder||n.placeholder.constructor==String){var r=n.placeholder;n.placeholder={element:function(){var n=e(document.createElement(t.currentItem[0].nodeName)).addClass(r||t.currentItem[0].className+" ui-sortable-placeholder").removeClass("ui-sortable-helper")[0];return r||(n.style.visibility="hidden"),n},update:function(e,i){if(r&&!n.forcePlaceholderSize)return;i.height()||i.height(t.currentItem.innerHeight()-parseInt(t.currentItem.css("paddingTop")||0,10)-parseInt(t.currentItem.css("paddingBottom")||0,10)),i.width()||i.width(t.currentItem.innerWidth()-parseInt(t.currentItem.css("paddingLeft")||0,10)-parseInt(t.currentItem.css("paddingRight")||0,10))}}}t.placeholder=e(n.placeholder.element.call(t.element,t.currentItem)),t.currentItem.after(t.placeholder),n.placeholder.update(t,t.placeholder)},_contactContainers:function(t){var n=null,r=null;for(var i=this.containers.length-1;i>=0;i--){if(e.contains(this.currentItem[0],this.containers[i].element[0]))continue;if(this._intersectsWith(this.containers[i].containerCache)){if(n&&e.contains(this.containers[i].element[0],n.element[0]))continue;n=this.containers[i],r=i}else this.containers[i].containerCache.over&&(this.containers[i]._trigger("out",t,this._uiHash(this)),this.containers[i].containerCache.over=0)}if(!n)return;if(this.containers.length===1)this.containers[r]._trigger("over",t,this._uiHash(this)),this.containers[r].containerCache.over=1;else{var s=1e4,o=null,u=this.containers[r].floating?"left":"top",a=this.containers[r].floating?"width":"height",f=this.positionAbs[u]+this.offset.click[u];for(var l=this.items.length-1;l>=0;l--){if(!e.contains(this.containers[r].element[0],this.items[l].item[0]))continue;if(this.items[l].item[0]==this.currentItem[0])continue;var c=this.items[l].item.offset()[u],h=!1;Math.abs(c-f)>Math.abs(c+this.items[l][a]-f)&&(h=!0,c+=this.items[l][a]),Math.abs(c-f)<s&&(s=Math.abs(c-f),o=this.items[l],this.direction=h?"up":"down")}if(!o&&!this.options.dropOnEmpty)return;this.currentContainer=this.containers[r],o?this._rearrange(t,o,null,!0):this._rearrange(t,null,this.containers[r].element,!0),this._trigger("change",t,this._uiHash()),this.containers[r]._trigger("change",t,this._uiHash(this)),this.options.placeholder.update(this.currentContainer,this.placeholder),this.containers[r]._trigger("over",t,this._uiHash(this)),this.containers[r].containerCache.over=1}},_createHelper:function(t){var n=this.options,r=e.isFunction(n.helper)?e(n.helper.apply(this.element[0],[t,this.currentItem])):n.helper=="clone"?this.currentItem.clone():this.currentItem;return r.parents("body").length||e(n.appendTo!="parent"?n.appendTo:this.currentItem[0].parentNode)[0].appendChild(r[0]),r[0]==this.currentItem[0]&&(this._storedCSS={width:this.currentItem[0].style.width,height:this.currentItem[0].style.height,position:this.currentItem.css("position"),top:this.currentItem.css("top"),left:this.currentItem.css("left")}),(r[0].style.width==""||n.forceHelperSize)&&r.width(this.currentItem.width()),(r[0].style.height==""||n.forceHelperSize)&&r.height(this.currentItem.height()),r},_adjustOffsetFromHelper:function(t){typeof t=="string"&&(t=t.split(" ")),e.isArray(t)&&(t={left:+t[0],top:+t[1]||0}),"left"in t&&(this.offset.click.left=t.left+this.margins.left),"right"in t&&(this.offset.click.left=this.helperProportions.width-t.right+this.margins.left),"top"in t&&(this.offset.click.top=t.top+this.margins.top),"bottom"in t&&(this.offset.click.top=this.helperProportions.height-t.bottom+this.margins.top)},_getParentOffset:function(){this.offsetParent=this.helper.offsetParent();var t=this.offsetParent.offset();this.cssPosition=="absolute"&&this.scrollParent[0]!=document&&e.contains(this.scrollParent[0],this.offsetParent[0])&&(t.left+=this.scrollParent.scrollLeft(),t.top+=this.scrollParent.scrollTop());if(this.offsetParent[0]==document.body||this.offsetParent[0].tagName&&this.offsetParent[0].tagName.toLowerCase()=="html"&&e.ui.ie)t={top:0,left:0};return{top:t.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:t.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if(this.cssPosition=="relative"){var e=this.currentItem.position();return{top:e.top-(parseInt(this.helper.css("top"),10)||0)+this.scrollParent.scrollTop(),left:e.left-(parseInt(this.helper.css("left"),10)||0)+this.scrollParent.scrollLeft()}}return{top:0,left:0}},_cacheMargins:function(){this.margins={left:parseInt(this.currentItem.css("marginLeft"),10)||0,top:parseInt(this.currentItem.css("marginTop"),10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var t=this.options;t.containment=="parent"&&(t.containment=this.helper[0].parentNode);if(t.containment=="document"||t.containment=="window")this.containment=[0-this.offset.relative.left-this.offset.parent.left,0-this.offset.relative.top-this.offset.parent.top,e(t.containment=="document"?document:window).width()-this.helperProportions.width-this.margins.left,(e(t.containment=="document"?document:window).height()||document.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top];if(!/^(document|window|parent)$/.test(t.containment)){var n=e(t.containment)[0],r=e(t.containment).offset(),i=e(n).css("overflow")!="hidden";this.containment=[r.left+(parseInt(e(n).css("borderLeftWidth"),10)||0)+(parseInt(e(n).css("paddingLeft"),10)||0)-this.margins.left,r.top+(parseInt(e(n).css("borderTopWidth"),10)||0)+(parseInt(e(n).css("paddingTop"),10)||0)-this.margins.top,r.left+(i?Math.max(n.scrollWidth,n.offsetWidth):n.offsetWidth)-(parseInt(e(n).css("borderLeftWidth"),10)||0)-(parseInt(e(n).css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left,r.top+(i?Math.max(n.scrollHeight,n.offsetHeight):n.offsetHeight)-(parseInt(e(n).css("borderTopWidth"),10)||0)-(parseInt(e(n).css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top]}},_convertPositionTo:function(t,n){n||(n=this.position);var r=t=="absolute"?1:-1,i=this.options,s=this.cssPosition!="absolute"||this.scrollParent[0]!=document&&!!e.contains(this.scrollParent[0],this.offsetParent[0])?this.scrollParent:this.offsetParent,o=/(html|body)/i.test(s[0].tagName);return{top:n.top+this.offset.relative.top*r+this.offset.parent.top*r-(this.cssPosition=="fixed"?-this.scrollParent.scrollTop():o?0:s.scrollTop())*r,left:n.left+this.offset.relative.left*r+this.offset.parent.left*r-(this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():o?0:s.scrollLeft())*r}},_generatePosition:function(t){var n=this.options,r=this.cssPosition!="absolute"||this.scrollParent[0]!=document&&!!e.contains(this.scrollParent[0],this.offsetParent[0])?this.scrollParent:this.offsetParent,i=/(html|body)/i.test(r[0].tagName);this.cssPosition=="relative"&&(this.scrollParent[0]==document||this.scrollParent[0]==this.offsetParent[0])&&(this.offset.relative=this._getRelativeOffset());var s=t.pageX,o=t.pageY;if(this.originalPosition){this.containment&&(t.pageX-this.offset.click.left<this.containment[0]&&(s=this.containment[0]+this.offset.click.left),t.pageY-this.offset.click.top<this.containment[1]&&(o=this.containment[1]+this.offset.click.top),t.pageX-this.offset.click.left>this.containment[2]&&(s=this.containment[2]+this.offset.click.left),t.pageY-this.offset.click.top>this.containment[3]&&(o=this.containment[3]+this.offset.click.top));if(n.grid){var u=this.originalPageY+Math.round((o-this.originalPageY)/n.grid[1])*n.grid[1];o=this.containment?u-this.offset.click.top<this.containment[1]||u-this.offset.click.top>this.containment[3]?u-this.offset.click.top<this.containment[1]?u+n.grid[1]:u-n.grid[1]:u:u;var a=this.originalPageX+Math.round((s-this.originalPageX)/n.grid[0])*n.grid[0];s=this.containment?a-this.offset.click.left<this.containment[0]||a-this.offset.click.left>this.containment[2]?a-this.offset.click.left<this.containment[0]?a+n.grid[0]:a-n.grid[0]:a:a}}return{top:o-this.offset.click.top-this.offset.relative.top-this.offset.parent.top+(this.cssPosition=="fixed"?-this.scrollParent.scrollTop():i?0:r.scrollTop()),left:s-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+(this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():i?0:r.scrollLeft())}},_rearrange:function(e,t,n,r){n?n[0].appendChild(this.placeholder[0]):t.item[0].parentNode.insertBefore(this.placeholder[0],this.direction=="down"?t.item[0]:t.item[0].nextSibling),this.counter=this.counter?++this.counter:1;var i=this.counter;this._delay(function(){i==this.counter&&this.refreshPositions(!r)})},_clear:function(t,n){this.reverting=!1;var r=[];!this._noFinalSort&&this.currentItem.parent().length&&this.placeholder.before(this.currentItem),this._noFinalSort=null;if(this.helper[0]==this.currentItem[0]){for(var i in this._storedCSS)if(this._storedCSS[i]=="auto"||this._storedCSS[i]=="static")this._storedCSS[i]="";this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper")}else this.currentItem.show();this.fromOutside&&!n&&r.push(function(e){this._trigger("receive",e,this._uiHash(this.fromOutside))}),(this.fromOutside||this.domPosition.prev!=this.currentItem.prev().not(".ui-sortable-helper")[0]||this.domPosition.parent!=this.currentItem.parent()[0])&&!n&&r.push(function(e){this._trigger("update",e,this._uiHash())}),this!==this.currentContainer&&(n||(r.push(function(e){this._trigger("remove",e,this._uiHash())}),r.push(function(e){return function(t){e._trigger("receive",t,this._uiHash(this))}}.call(this,this.currentContainer)),r.push(function(e){return function(t){e._trigger("update",t,this._uiHash(this))}}.call(this,this.currentContainer))));for(var i=this.containers.length-1;i>=0;i--)n||r.push(function(e){return function(t){e._trigger("deactivate",t,this._uiHash(this))}}.call(this,this.containers[i])),this.containers[i].containerCache.over&&(r.push(function(e){return function(t){e._trigger("out",t,this._uiHash(this))}}.call(this,this.containers[i])),this.containers[i].containerCache.over=0);this._storedCursor&&e("body").css("cursor",this._storedCursor),this._storedOpacity&&this.helper.css("opacity",this._storedOpacity),this._storedZIndex&&this.helper.css("zIndex",this._storedZIndex=="auto"?"":this._storedZIndex),this.dragging=!1;if(this.cancelHelperRemoval){if(!n){this._trigger("beforeStop",t,this._uiHash());for(var i=0;i<r.length;i++)r[i].call(this,t);this._trigger("stop",t,this._uiHash())}return this.fromOutside=!1,!1}n||this._trigger("beforeStop",t,this._uiHash()),this.placeholder[0].parentNode.removeChild(this.placeholder[0]),this.helper[0]!=this.currentItem[0]&&this.helper.remove(),this.helper=null;if(!n){for(var i=0;i<r.length;i++)r[i].call(this,t);this._trigger("stop",t,this._uiHash())}return this.fromOutside=!1,!0},_trigger:function(){e.Widget.prototype._trigger.apply(this,arguments)===!1&&this.cancel()},_uiHash:function(t){var n=t||this;return{helper:n.helper,placeholder:n.placeholder||e([]),position:n.position,originalPosition:n.originalPosition,offset:n.positionAbs,item:n.currentItem,sender:t?t.element:null}}})})(jQuery);
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-includes/js/jquery/ui/jquery.ui.spinner.min.js	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,5 @@
+/*! jQuery UI - v1.9.2 - 2012-11-23
+* http://jqueryui.com
+* Includes: jquery.ui.spinner.js
+* Copyright 2012 jQuery Foundation and other contributors; Licensed MIT */
+(function(e){function t(e){return function(){var t=this.element.val();e.apply(this,arguments),this._refresh(),t!==this.element.val()&&this._trigger("change")}}e.widget("ui.spinner",{version:"1.9.2",defaultElement:"<input>",widgetEventPrefix:"spin",options:{culture:null,icons:{down:"ui-icon-triangle-1-s",up:"ui-icon-triangle-1-n"},incremental:!0,max:null,min:null,numberFormat:null,page:10,step:1,change:null,spin:null,start:null,stop:null},_create:function(){this._setOption("max",this.options.max),this._setOption("min",this.options.min),this._setOption("step",this.options.step),this._value(this.element.val(),!0),this._draw(),this._on(this._events),this._refresh(),this._on(this.window,{beforeunload:function(){this.element.removeAttr("autocomplete")}})},_getCreateOptions:function(){var t={},n=this.element;return e.each(["min","max","step"],function(e,r){var i=n.attr(r);i!==undefined&&i.length&&(t[r]=i)}),t},_events:{keydown:function(e){this._start(e)&&this._keydown(e)&&e.preventDefault()},keyup:"_stop",focus:function(){this.previous=this.element.val()},blur:function(e){if(this.cancelBlur){delete this.cancelBlur;return}this._refresh(),this.previous!==this.element.val()&&this._trigger("change",e)},mousewheel:function(e,t){if(!t)return;if(!this.spinning&&!this._start(e))return!1;this._spin((t>0?1:-1)*this.options.step,e),clearTimeout(this.mousewheelTimer),this.mousewheelTimer=this._delay(function(){this.spinning&&this._stop(e)},100),e.preventDefault()},"mousedown .ui-spinner-button":function(t){function r(){var e=this.element[0]===this.document[0].activeElement;e||(this.element.focus(),this.previous=n,this._delay(function(){this.previous=n}))}var n;n=this.element[0]===this.document[0].activeElement?this.previous:this.element.val(),t.preventDefault(),r.call(this),this.cancelBlur=!0,this._delay(function(){delete this.cancelBlur,r.call(this)});if(this._start(t)===!1)return;this._repeat(null,e(t.currentTarget).hasClass("ui-spinner-up")?1:-1,t)},"mouseup .ui-spinner-button":"_stop","mouseenter .ui-spinner-button":function(t){if(!e(t.currentTarget).hasClass("ui-state-active"))return;if(this._start(t)===!1)return!1;this._repeat(null,e(t.currentTarget).hasClass("ui-spinner-up")?1:-1,t)},"mouseleave .ui-spinner-button":"_stop"},_draw:function(){var e=this.uiSpinner=this.element.addClass("ui-spinner-input").attr("autocomplete","off").wrap(this._uiSpinnerHtml()).parent().append(this._buttonHtml());this.element.attr("role","spinbutton"),this.buttons=e.find(".ui-spinner-button").attr("tabIndex",-1).button().removeClass("ui-corner-all"),this.buttons.height()>Math.ceil(e.height()*.5)&&e.height()>0&&e.height(e.height()),this.options.disabled&&this.disable()},_keydown:function(t){var n=this.options,r=e.ui.keyCode;switch(t.keyCode){case r.UP:return this._repeat(null,1,t),!0;case r.DOWN:return this._repeat(null,-1,t),!0;case r.PAGE_UP:return this._repeat(null,n.page,t),!0;case r.PAGE_DOWN:return this._repeat(null,-n.page,t),!0}return!1},_uiSpinnerHtml:function(){return"<span class='ui-spinner ui-widget ui-widget-content ui-corner-all'></span>"},_buttonHtml:function(){return"<a class='ui-spinner-button ui-spinner-up ui-corner-tr'><span class='ui-icon "+this.options.icons.up+"'>&#9650;</span>"+"</a>"+"<a class='ui-spinner-button ui-spinner-down ui-corner-br'>"+"<span class='ui-icon "+this.options.icons.down+"'>&#9660;</span>"+"</a>"},_start:function(e){return!this.spinning&&this._trigger("start",e)===!1?!1:(this.counter||(this.counter=1),this.spinning=!0,!0)},_repeat:function(e,t,n){e=e||500,clearTimeout(this.timer),this.timer=this._delay(function(){this._repeat(40,t,n)},e),this._spin(t*this.options.step,n)},_spin:function(e,t){var n=this.value()||0;this.counter||(this.counter=1),n=this._adjustValue(n+e*this._increment(this.counter));if(!this.spinning||this._trigger("spin",t,{value:n})!==!1)this._value(n),this.counter++},_increment:function(t){var n=this.options.incremental;return n?e.isFunction(n)?n(t):Math.floor(t*t*t/5e4-t*t/500+17*t/200+1):1},_precision:function(){var e=this._precisionOf(this.options.step);return this.options.min!==null&&(e=Math.max(e,this._precisionOf(this.options.min))),e},_precisionOf:function(e){var t=e.toString(),n=t.indexOf(".");return n===-1?0:t.length-n-1},_adjustValue:function(e){var t,n,r=this.options;return t=r.min!==null?r.min:0,n=e-t,n=Math.round(n/r.step)*r.step,e=t+n,e=parseFloat(e.toFixed(this._precision())),r.max!==null&&e>r.max?r.max:r.min!==null&&e<r.min?r.min:e},_stop:function(e){if(!this.spinning)return;clearTimeout(this.timer),clearTimeout(this.mousewheelTimer),this.counter=0,this.spinning=!1,this._trigger("stop",e)},_setOption:function(e,t){if(e==="culture"||e==="numberFormat"){var n=this._parse(this.element.val());this.options[e]=t,this.element.val(this._format(n));return}(e==="max"||e==="min"||e==="step")&&typeof t=="string"&&(t=this._parse(t)),this._super(e,t),e==="disabled"&&(t?(this.element.prop("disabled",!0),this.buttons.button("disable")):(this.element.prop("disabled",!1),this.buttons.button("enable")))},_setOptions:t(function(e){this._super(e),this._value(this.element.val())}),_parse:function(e){return typeof e=="string"&&e!==""&&(e=window.Globalize&&this.options.numberFormat?Globalize.parseFloat(e,10,this.options.culture):+e),e===""||isNaN(e)?null:e},_format:function(e){return e===""?"":window.Globalize&&this.options.numberFormat?Globalize.format(e,this.options.numberFormat,this.options.culture):e},_refresh:function(){this.element.attr({"aria-valuemin":this.options.min,"aria-valuemax":this.options.max,"aria-valuenow":this._parse(this.element.val())})},_value:function(e,t){var n;e!==""&&(n=this._parse(e),n!==null&&(t||(n=this._adjustValue(n)),e=this._format(n))),this.element.val(e),this._refresh()},_destroy:function(){this.element.removeClass("ui-spinner-input").prop("disabled",!1).removeAttr("autocomplete").removeAttr("role").removeAttr("aria-valuemin").removeAttr("aria-valuemax").removeAttr("aria-valuenow"),this.uiSpinner.replaceWith(this.element)},stepUp:t(function(e){this._stepUp(e)}),_stepUp:function(e){this._spin((e||1)*this.options.step)},stepDown:t(function(e){this._stepDown(e)}),_stepDown:function(e){this._spin((e||1)*-this.options.step)},pageUp:t(function(e){this._stepUp((e||1)*this.options.page)}),pageDown:t(function(e){this._stepDown((e||1)*this.options.page)}),value:function(e){if(!arguments.length)return this._parse(this.element.val());t(this._value).call(this,e)},widget:function(){return this.uiSpinner}})})(jQuery);
\ No newline at end of file
--- a/web/wp-includes/js/jquery/ui/jquery.ui.tabs.min.js	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/js/jquery/ui/jquery.ui.tabs.min.js	Wed Dec 19 17:46:52 2012 -0800
@@ -1,5 +1,5 @@
-/*! jQuery UI - v1.8.20 - 2012-04-30
-* https://github.com/jquery/jquery-ui
+/*! jQuery UI - v1.9.2 - 2012-11-23
+* http://jqueryui.com
 * Includes: jquery.ui.tabs.js
-* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */
-(function(a,b){function e(){return++c}function f(){return++d}var c=0,d=0;a.widget("ui.tabs",{options:{add:null,ajaxOptions:null,cache:!1,cookie:null,collapsible:!1,disable:null,disabled:[],enable:null,event:"click",fx:null,idPrefix:"ui-tabs-",load:null,panelTemplate:"<div></div>",remove:null,select:null,show:null,spinner:"<em>Loading&#8230;</em>",tabTemplate:"<li><a href='#{href}'><span>#{label}</span></a></li>"},_create:function(){this._tabify(!0)},_setOption:function(a,b){if(a=="selected"){if(this.options.collapsible&&b==this.options.selected)return;this.select(b)}else this.options[a]=b,this._tabify()},_tabId:function(a){return a.title&&a.title.replace(/\s/g,"_").replace(/[^\w\u00c0-\uFFFF-]/g,"")||this.options.idPrefix+e()},_sanitizeSelector:function(a){return a.replace(/:/g,"\\:")},_cookie:function(){var b=this.cookie||(this.cookie=this.options.cookie.name||"ui-tabs-"+f());return a.cookie.apply(null,[b].concat(a.makeArray(arguments)))},_ui:function(a,b){return{tab:a,panel:b,index:this.anchors.index(a)}},_cleanup:function(){this.lis.filter(".ui-state-processing").removeClass("ui-state-processing").find("span:data(label.tabs)").each(function(){var b=a(this);b.html(b.data("label.tabs")).removeData("label.tabs")})},_tabify:function(c){function m(b,c){b.css("display",""),!a.support.opacity&&c.opacity&&b[0].style.removeAttribute("filter")}var d=this,e=this.options,f=/^#.+/;this.list=this.element.find("ol,ul").eq(0),this.lis=a(" > li:has(a[href])",this.list),this.anchors=this.lis.map(function(){return a("a",this)[0]}),this.panels=a([]),this.anchors.each(function(b,c){var g=a(c).attr("href"),h=g.split("#")[0],i;h&&(h===location.toString().split("#")[0]||(i=a("base")[0])&&h===i.href)&&(g=c.hash,c.href=g);if(f.test(g))d.panels=d.panels.add(d.element.find(d._sanitizeSelector(g)));else if(g&&g!=="#"){a.data(c,"href.tabs",g),a.data(c,"load.tabs",g.replace(/#.*$/,""));var j=d._tabId(c);c.href="#"+j;var k=d.element.find("#"+j);k.length||(k=a(e.panelTemplate).attr("id",j).addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").insertAfter(d.panels[b-1]||d.list),k.data("destroy.tabs",!0)),d.panels=d.panels.add(k)}else e.disabled.push(b)}),c?(this.element.addClass("ui-tabs ui-widget ui-widget-content ui-corner-all"),this.list.addClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all"),this.lis.addClass("ui-state-default ui-corner-top"),this.panels.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom"),e.selected===b?(location.hash&&this.anchors.each(function(a,b){if(b.hash==location.hash)return e.selected=a,!1}),typeof e.selected!="number"&&e.cookie&&(e.selected=parseInt(d._cookie(),10)),typeof e.selected!="number"&&this.lis.filter(".ui-tabs-selected").length&&(e.selected=this.lis.index(this.lis.filter(".ui-tabs-selected"))),e.selected=e.selected||(this.lis.length?0:-1)):e.selected===null&&(e.selected=-1),e.selected=e.selected>=0&&this.anchors[e.selected]||e.selected<0?e.selected:0,e.disabled=a.unique(e.disabled.concat(a.map(this.lis.filter(".ui-state-disabled"),function(a,b){return d.lis.index(a)}))).sort(),a.inArray(e.selected,e.disabled)!=-1&&e.disabled.splice(a.inArray(e.selected,e.disabled),1),this.panels.addClass("ui-tabs-hide"),this.lis.removeClass("ui-tabs-selected ui-state-active"),e.selected>=0&&this.anchors.length&&(d.element.find(d._sanitizeSelector(d.anchors[e.selected].hash)).removeClass("ui-tabs-hide"),this.lis.eq(e.selected).addClass("ui-tabs-selected ui-state-active"),d.element.queue("tabs",function(){d._trigger("show",null,d._ui(d.anchors[e.selected],d.element.find(d._sanitizeSelector(d.anchors[e.selected].hash))[0]))}),this.load(e.selected)),a(window).bind("unload",function(){d.lis.add(d.anchors).unbind(".tabs"),d.lis=d.anchors=d.panels=null})):e.selected=this.lis.index(this.lis.filter(".ui-tabs-selected")),this.element[e.collapsible?"addClass":"removeClass"]("ui-tabs-collapsible"),e.cookie&&this._cookie(e.selected,e.cookie);for(var g=0,h;h=this.lis[g];g++)a(h)[a.inArray(g,e.disabled)!=-1&&!a(h).hasClass("ui-tabs-selected")?"addClass":"removeClass"]("ui-state-disabled");e.cache===!1&&this.anchors.removeData("cache.tabs"),this.lis.add(this.anchors).unbind(".tabs");if(e.event!=="mouseover"){var i=function(a,b){b.is(":not(.ui-state-disabled)")&&b.addClass("ui-state-"+a)},j=function(a,b){b.removeClass("ui-state-"+a)};this.lis.bind("mouseover.tabs",function(){i("hover",a(this))}),this.lis.bind("mouseout.tabs",function(){j("hover",a(this))}),this.anchors.bind("focus.tabs",function(){i("focus",a(this).closest("li"))}),this.anchors.bind("blur.tabs",function(){j("focus",a(this).closest("li"))})}var k,l;e.fx&&(a.isArray(e.fx)?(k=e.fx[0],l=e.fx[1]):k=l=e.fx);var n=l?function(b,c){a(b).closest("li").addClass("ui-tabs-selected ui-state-active"),c.hide().removeClass("ui-tabs-hide").animate(l,l.duration||"normal",function(){m(c,l),d._trigger("show",null,d._ui(b,c[0]))})}:function(b,c){a(b).closest("li").addClass("ui-tabs-selected ui-state-active"),c.removeClass("ui-tabs-hide"),d._trigger("show",null,d._ui(b,c[0]))},o=k?function(a,b){b.animate(k,k.duration||"normal",function(){d.lis.removeClass("ui-tabs-selected ui-state-active"),b.addClass("ui-tabs-hide"),m(b,k),d.element.dequeue("tabs")})}:function(a,b,c){d.lis.removeClass("ui-tabs-selected ui-state-active"),b.addClass("ui-tabs-hide"),d.element.dequeue("tabs")};this.anchors.bind(e.event+".tabs",function(){var b=this,c=a(b).closest("li"),f=d.panels.filter(":not(.ui-tabs-hide)"),g=d.element.find(d._sanitizeSelector(b.hash));if(c.hasClass("ui-tabs-selected")&&!e.collapsible||c.hasClass("ui-state-disabled")||c.hasClass("ui-state-processing")||d.panels.filter(":animated").length||d._trigger("select",null,d._ui(this,g[0]))===!1)return this.blur(),!1;e.selected=d.anchors.index(this),d.abort();if(e.collapsible){if(c.hasClass("ui-tabs-selected"))return e.selected=-1,e.cookie&&d._cookie(e.selected,e.cookie),d.element.queue("tabs",function(){o(b,f)}).dequeue("tabs"),this.blur(),!1;if(!f.length)return e.cookie&&d._cookie(e.selected,e.cookie),d.element.queue("tabs",function(){n(b,g)}),d.load(d.anchors.index(this)),this.blur(),!1}e.cookie&&d._cookie(e.selected,e.cookie);if(g.length)f.length&&d.element.queue("tabs",function(){o(b,f)}),d.element.queue("tabs",function(){n(b,g)}),d.load(d.anchors.index(this));else throw"jQuery UI Tabs: Mismatching fragment identifier.";a.browser.msie&&this.blur()}),this.anchors.bind("click.tabs",function(){return!1})},_getIndex:function(a){return typeof a=="string"&&(a=this.anchors.index(this.anchors.filter("[href$='"+a+"']"))),a},destroy:function(){var b=this.options;return this.abort(),this.element.unbind(".tabs").removeClass("ui-tabs ui-widget ui-widget-content ui-corner-all ui-tabs-collapsible").removeData("tabs"),this.list.removeClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all"),this.anchors.each(function(){var b=a.data(this,"href.tabs");b&&(this.href=b);var c=a(this).unbind(".tabs");a.each(["href","load","cache"],function(a,b){c.removeData(b+".tabs")})}),this.lis.unbind(".tabs").add(this.panels).each(function(){a.data(this,"destroy.tabs")?a(this).remove():a(this).removeClass(["ui-state-default","ui-corner-top","ui-tabs-selected","ui-state-active","ui-state-hover","ui-state-focus","ui-state-disabled","ui-tabs-panel","ui-widget-content","ui-corner-bottom","ui-tabs-hide"].join(" "))}),b.cookie&&this._cookie(null,b.cookie),this},add:function(c,d,e){e===b&&(e=this.anchors.length);var f=this,g=this.options,h=a(g.tabTemplate.replace(/#\{href\}/g,c).replace(/#\{label\}/g,d)),i=c.indexOf("#")?this._tabId(a("a",h)[0]):c.replace("#","");h.addClass("ui-state-default ui-corner-top").data("destroy.tabs",!0);var j=f.element.find("#"+i);return j.length||(j=a(g.panelTemplate).attr("id",i).data("destroy.tabs",!0)),j.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide"),e>=this.lis.length?(h.appendTo(this.list),j.appendTo(this.list[0].parentNode)):(h.insertBefore(this.lis[e]),j.insertBefore(this.panels[e])),g.disabled=a.map(g.disabled,function(a,b){return a>=e?++a:a}),this._tabify(),this.anchors.length==1&&(g.selected=0,h.addClass("ui-tabs-selected ui-state-active"),j.removeClass("ui-tabs-hide"),this.element.queue("tabs",function(){f._trigger("show",null,f._ui(f.anchors[0],f.panels[0]))}),this.load(0)),this._trigger("add",null,this._ui(this.anchors[e],this.panels[e])),this},remove:function(b){b=this._getIndex(b);var c=this.options,d=this.lis.eq(b).remove(),e=this.panels.eq(b).remove();return d.hasClass("ui-tabs-selected")&&this.anchors.length>1&&this.select(b+(b+1<this.anchors.length?1:-1)),c.disabled=a.map(a.grep(c.disabled,function(a,c){return a!=b}),function(a,c){return a>=b?--a:a}),this._tabify(),this._trigger("remove",null,this._ui(d.find("a")[0],e[0])),this},enable:function(b){b=this._getIndex(b);var c=this.options;if(a.inArray(b,c.disabled)==-1)return;return this.lis.eq(b).removeClass("ui-state-disabled"),c.disabled=a.grep(c.disabled,function(a,c){return a!=b}),this._trigger("enable",null,this._ui(this.anchors[b],this.panels[b])),this},disable:function(a){a=this._getIndex(a);var b=this,c=this.options;return a!=c.selected&&(this.lis.eq(a).addClass("ui-state-disabled"),c.disabled.push(a),c.disabled.sort(),this._trigger("disable",null,this._ui(this.anchors[a],this.panels[a]))),this},select:function(a){a=this._getIndex(a);if(a==-1)if(this.options.collapsible&&this.options.selected!=-1)a=this.options.selected;else return this;return this.anchors.eq(a).trigger(this.options.event+".tabs"),this},load:function(b){b=this._getIndex(b);var c=this,d=this.options,e=this.anchors.eq(b)[0],f=a.data(e,"load.tabs");this.abort();if(!f||this.element.queue("tabs").length!==0&&a.data(e,"cache.tabs")){this.element.dequeue("tabs");return}this.lis.eq(b).addClass("ui-state-processing");if(d.spinner){var g=a("span",e);g.data("label.tabs",g.html()).html(d.spinner)}return this.xhr=a.ajax(a.extend({},d.ajaxOptions,{url:f,success:function(f,g){c.element.find(c._sanitizeSelector(e.hash)).html(f),c._cleanup(),d.cache&&a.data(e,"cache.tabs",!0),c._trigger("load",null,c._ui(c.anchors[b],c.panels[b]));try{d.ajaxOptions.success(f,g)}catch(h){}},error:function(a,f,g){c._cleanup(),c._trigger("load",null,c._ui(c.anchors[b],c.panels[b]));try{d.ajaxOptions.error(a,f,b,e)}catch(g){}}})),c.element.dequeue("tabs"),this},abort:function(){return this.element.queue([]),this.panels.stop(!1,!0),this.element.queue("tabs",this.element.queue("tabs").splice(-2,2)),this.xhr&&(this.xhr.abort(),delete this.xhr),this._cleanup(),this},url:function(a,b){return this.anchors.eq(a).removeData("cache.tabs").data("load.tabs",b),this},length:function(){return this.anchors.length}}),a.extend(a.ui.tabs,{version:"1.8.20"}),a.extend(a.ui.tabs.prototype,{rotation:null,rotate:function(a,b){var c=this,d=this.options,e=c._rotate||(c._rotate=function(b){clearTimeout(c.rotation),c.rotation=setTimeout(function(){var a=d.selected;c.select(++a<c.anchors.length?a:0)},a),b&&b.stopPropagation()}),f=c._unrotate||(c._unrotate=b?function(a){e()}:function(a){a.clientX&&c.rotate(null)});return a?(this.element.bind("tabsshow",e),this.anchors.bind(d.event+".tabs",f),e()):(clearTimeout(c.rotation),this.element.unbind("tabsshow",e),this.anchors.unbind(d.event+".tabs",f),delete this._rotate,delete this._unrotate),this}})})(jQuery);
\ No newline at end of file
+* Copyright 2012 jQuery Foundation and other contributors; Licensed MIT */
+(function(e,t){function i(){return++n}function s(e){return e.hash.length>1&&e.href.replace(r,"")===location.href.replace(r,"").replace(/\s/g,"%20")}var n=0,r=/#.*$/;e.widget("ui.tabs",{version:"1.9.2",delay:300,options:{active:null,collapsible:!1,event:"click",heightStyle:"content",hide:null,show:null,activate:null,beforeActivate:null,beforeLoad:null,load:null},_create:function(){var t=this,n=this.options,r=n.active,i=location.hash.substring(1);this.running=!1,this.element.addClass("ui-tabs ui-widget ui-widget-content ui-corner-all").toggleClass("ui-tabs-collapsible",n.collapsible).delegate(".ui-tabs-nav > li","mousedown"+this.eventNamespace,function(t){e(this).is(".ui-state-disabled")&&t.preventDefault()}).delegate(".ui-tabs-anchor","focus"+this.eventNamespace,function(){e(this).closest("li").is(".ui-state-disabled")&&this.blur()}),this._processTabs();if(r===null){i&&this.tabs.each(function(t,n){if(e(n).attr("aria-controls")===i)return r=t,!1}),r===null&&(r=this.tabs.index(this.tabs.filter(".ui-tabs-active")));if(r===null||r===-1)r=this.tabs.length?0:!1}r!==!1&&(r=this.tabs.index(this.tabs.eq(r)),r===-1&&(r=n.collapsible?!1:0)),n.active=r,!n.collapsible&&n.active===!1&&this.anchors.length&&(n.active=0),e.isArray(n.disabled)&&(n.disabled=e.unique(n.disabled.concat(e.map(this.tabs.filter(".ui-state-disabled"),function(e){return t.tabs.index(e)}))).sort()),this.options.active!==!1&&this.anchors.length?this.active=this._findActive(this.options.active):this.active=e(),this._refresh(),this.active.length&&this.load(n.active)},_getCreateEventData:function(){return{tab:this.active,panel:this.active.length?this._getPanelForTab(this.active):e()}},_tabKeydown:function(t){var n=e(this.document[0].activeElement).closest("li"),r=this.tabs.index(n),i=!0;if(this._handlePageNav(t))return;switch(t.keyCode){case e.ui.keyCode.RIGHT:case e.ui.keyCode.DOWN:r++;break;case e.ui.keyCode.UP:case e.ui.keyCode.LEFT:i=!1,r--;break;case e.ui.keyCode.END:r=this.anchors.length-1;break;case e.ui.keyCode.HOME:r=0;break;case e.ui.keyCode.SPACE:t.preventDefault(),clearTimeout(this.activating),this._activate(r);return;case e.ui.keyCode.ENTER:t.preventDefault(),clearTimeout(this.activating),this._activate(r===this.options.active?!1:r);return;default:return}t.preventDefault(),clearTimeout(this.activating),r=this._focusNextTab(r,i),t.ctrlKey||(n.attr("aria-selected","false"),this.tabs.eq(r).attr("aria-selected","true"),this.activating=this._delay(function(){this.option("active",r)},this.delay))},_panelKeydown:function(t){if(this._handlePageNav(t))return;t.ctrlKey&&t.keyCode===e.ui.keyCode.UP&&(t.preventDefault(),this.active.focus())},_handlePageNav:function(t){if(t.altKey&&t.keyCode===e.ui.keyCode.PAGE_UP)return this._activate(this._focusNextTab(this.options.active-1,!1)),!0;if(t.altKey&&t.keyCode===e.ui.keyCode.PAGE_DOWN)return this._activate(this._focusNextTab(this.options.active+1,!0)),!0},_findNextTab:function(t,n){function i(){return t>r&&(t=0),t<0&&(t=r),t}var r=this.tabs.length-1;while(e.inArray(i(),this.options.disabled)!==-1)t=n?t+1:t-1;return t},_focusNextTab:function(e,t){return e=this._findNextTab(e,t),this.tabs.eq(e).focus(),e},_setOption:function(e,t){if(e==="active"){this._activate(t);return}if(e==="disabled"){this._setupDisabled(t);return}this._super(e,t),e==="collapsible"&&(this.element.toggleClass("ui-tabs-collapsible",t),!t&&this.options.active===!1&&this._activate(0)),e==="event"&&this._setupEvents(t),e==="heightStyle"&&this._setupHeightStyle(t)},_tabId:function(e){return e.attr("aria-controls")||"ui-tabs-"+i()},_sanitizeSelector:function(e){return e?e.replace(/[!"$%&'()*+,.\/:;<=>?@\[\]\^`{|}~]/g,"\\$&"):""},refresh:function(){var t=this.options,n=this.tablist.children(":has(a[href])");t.disabled=e.map(n.filter(".ui-state-disabled"),function(e){return n.index(e)}),this._processTabs(),t.active===!1||!this.anchors.length?(t.active=!1,this.active=e()):this.active.length&&!e.contains(this.tablist[0],this.active[0])?this.tabs.length===t.disabled.length?(t.active=!1,this.active=e()):this._activate(this._findNextTab(Math.max(0,t.active-1),!1)):t.active=this.tabs.index(this.active),this._refresh()},_refresh:function(){this._setupDisabled(this.options.disabled),this._setupEvents(this.options.event),this._setupHeightStyle(this.options.heightStyle),this.tabs.not(this.active).attr({"aria-selected":"false",tabIndex:-1}),this.panels.not(this._getPanelForTab(this.active)).hide().attr({"aria-expanded":"false","aria-hidden":"true"}),this.active.length?(this.active.addClass("ui-tabs-active ui-state-active").attr({"aria-selected":"true",tabIndex:0}),this._getPanelForTab(this.active).show().attr({"aria-expanded":"true","aria-hidden":"false"})):this.tabs.eq(0).attr("tabIndex",0)},_processTabs:function(){var t=this;this.tablist=this._getList().addClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all").attr("role","tablist"),this.tabs=this.tablist.find("> li:has(a[href])").addClass("ui-state-default ui-corner-top").attr({role:"tab",tabIndex:-1}),this.anchors=this.tabs.map(function(){return e("a",this)[0]}).addClass("ui-tabs-anchor").attr({role:"presentation",tabIndex:-1}),this.panels=e(),this.anchors.each(function(n,r){var i,o,u,a=e(r).uniqueId().attr("id"),f=e(r).closest("li"),l=f.attr("aria-controls");s(r)?(i=r.hash,o=t.element.find(t._sanitizeSelector(i))):(u=t._tabId(f),i="#"+u,o=t.element.find(i),o.length||(o=t._createPanel(u),o.insertAfter(t.panels[n-1]||t.tablist)),o.attr("aria-live","polite")),o.length&&(t.panels=t.panels.add(o)),l&&f.data("ui-tabs-aria-controls",l),f.attr({"aria-controls":i.substring(1),"aria-labelledby":a}),o.attr("aria-labelledby",a)}),this.panels.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").attr("role","tabpanel")},_getList:function(){return this.element.find("ol,ul").eq(0)},_createPanel:function(t){return e("<div>").attr("id",t).addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").data("ui-tabs-destroy",!0)},_setupDisabled:function(t){e.isArray(t)&&(t.length?t.length===this.anchors.length&&(t=!0):t=!1);for(var n=0,r;r=this.tabs[n];n++)t===!0||e.inArray(n,t)!==-1?e(r).addClass("ui-state-disabled").attr("aria-disabled","true"):e(r).removeClass("ui-state-disabled").removeAttr("aria-disabled");this.options.disabled=t},_setupEvents:function(t){var n={click:function(e){e.preventDefault()}};t&&e.each(t.split(" "),function(e,t){n[t]="_eventHandler"}),this._off(this.anchors.add(this.tabs).add(this.panels)),this._on(this.anchors,n),this._on(this.tabs,{keydown:"_tabKeydown"}),this._on(this.panels,{keydown:"_panelKeydown"}),this._focusable(this.tabs),this._hoverable(this.tabs)},_setupHeightStyle:function(t){var n,r,i=this.element.parent();t==="fill"?(e.support.minHeight||(r=i.css("overflow"),i.css("overflow","hidden")),n=i.height(),this.element.siblings(":visible").each(function(){var t=e(this),r=t.css("position");if(r==="absolute"||r==="fixed")return;n-=t.outerHeight(!0)}),r&&i.css("overflow",r),this.element.children().not(this.panels).each(function(){n-=e(this).outerHeight(!0)}),this.panels.each(function(){e(this).height(Math.max(0,n-e(this).innerHeight()+e(this).height()))}).css("overflow","auto")):t==="auto"&&(n=0,this.panels.each(function(){n=Math.max(n,e(this).height("").height())}).height(n))},_eventHandler:function(t){var n=this.options,r=this.active,i=e(t.currentTarget),s=i.closest("li"),o=s[0]===r[0],u=o&&n.collapsible,a=u?e():this._getPanelForTab(s),f=r.length?this._getPanelForTab(r):e(),l={oldTab:r,oldPanel:f,newTab:u?e():s,newPanel:a};t.preventDefault();if(s.hasClass("ui-state-disabled")||s.hasClass("ui-tabs-loading")||this.running||o&&!n.collapsible||this._trigger("beforeActivate",t,l)===!1)return;n.active=u?!1:this.tabs.index(s),this.active=o?e():s,this.xhr&&this.xhr.abort(),!f.length&&!a.length&&e.error("jQuery UI Tabs: Mismatching fragment identifier."),a.length&&this.load(this.tabs.index(s),t),this._toggle(t,l)},_toggle:function(t,n){function o(){r.running=!1,r._trigger("activate",t,n)}function u(){n.newTab.closest("li").addClass("ui-tabs-active ui-state-active"),i.length&&r.options.show?r._show(i,r.options.show,o):(i.show(),o())}var r=this,i=n.newPanel,s=n.oldPanel;this.running=!0,s.length&&this.options.hide?this._hide(s,this.options.hide,function(){n.oldTab.closest("li").removeClass("ui-tabs-active ui-state-active"),u()}):(n.oldTab.closest("li").removeClass("ui-tabs-active ui-state-active"),s.hide(),u()),s.attr({"aria-expanded":"false","aria-hidden":"true"}),n.oldTab.attr("aria-selected","false"),i.length&&s.length?n.oldTab.attr("tabIndex",-1):i.length&&this.tabs.filter(function(){return e(this).attr("tabIndex")===0}).attr("tabIndex",-1),i.attr({"aria-expanded":"true","aria-hidden":"false"}),n.newTab.attr({"aria-selected":"true",tabIndex:0})},_activate:function(t){var n,r=this._findActive(t);if(r[0]===this.active[0])return;r.length||(r=this.active),n=r.find(".ui-tabs-anchor")[0],this._eventHandler({target:n,currentTarget:n,preventDefault:e.noop})},_findActive:function(t){return t===!1?e():this.tabs.eq(t)},_getIndex:function(e){return typeof e=="string"&&(e=this.anchors.index(this.anchors.filter("[href$='"+e+"']"))),e},_destroy:function(){this.xhr&&this.xhr.abort(),this.element.removeClass("ui-tabs ui-widget ui-widget-content ui-corner-all ui-tabs-collapsible"),this.tablist.removeClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all").removeAttr("role"),this.anchors.removeClass("ui-tabs-anchor").removeAttr("role").removeAttr("tabIndex").removeData("href.tabs").removeData("load.tabs").removeUniqueId(),this.tabs.add(this.panels).each(function(){e.data(this,"ui-tabs-destroy")?e(this).remove():e(this).removeClass("ui-state-default ui-state-active ui-state-disabled ui-corner-top ui-corner-bottom ui-widget-content ui-tabs-active ui-tabs-panel").removeAttr("tabIndex").removeAttr("aria-live").removeAttr("aria-busy").removeAttr("aria-selected").removeAttr("aria-labelledby").removeAttr("aria-hidden").removeAttr("aria-expanded").removeAttr("role")}),this.tabs.each(function(){var t=e(this),n=t.data("ui-tabs-aria-controls");n?t.attr("aria-controls",n):t.removeAttr("aria-controls")}),this.panels.show(),this.options.heightStyle!=="content"&&this.panels.css("height","")},enable:function(n){var r=this.options.disabled;if(r===!1)return;n===t?r=!1:(n=this._getIndex(n),e.isArray(r)?r=e.map(r,function(e){return e!==n?e:null}):r=e.map(this.tabs,function(e,t){return t!==n?t:null})),this._setupDisabled(r)},disable:function(n){var r=this.options.disabled;if(r===!0)return;if(n===t)r=!0;else{n=this._getIndex(n);if(e.inArray(n,r)!==-1)return;e.isArray(r)?r=e.merge([n],r).sort():r=[n]}this._setupDisabled(r)},load:function(t,n){t=this._getIndex(t);var r=this,i=this.tabs.eq(t),o=i.find(".ui-tabs-anchor"),u=this._getPanelForTab(i),a={tab:i,panel:u};if(s(o[0]))return;this.xhr=e.ajax(this._ajaxSettings(o,n,a)),this.xhr&&this.xhr.statusText!=="canceled"&&(i.addClass("ui-tabs-loading"),u.attr("aria-busy","true"),this.xhr.success(function(e){setTimeout(function(){u.html(e),r._trigger("load",n,a)},1)}).complete(function(e,t){setTimeout(function(){t==="abort"&&r.panels.stop(!1,!0),i.removeClass("ui-tabs-loading"),u.removeAttr("aria-busy"),e===r.xhr&&delete r.xhr},1)}))},_ajaxSettings:function(t,n,r){var i=this;return{url:t.attr("href"),beforeSend:function(t,s){return i._trigger("beforeLoad",n,e.extend({jqXHR:t,ajaxSettings:s},r))}}},_getPanelForTab:function(t){var n=e(t).attr("aria-controls");return this.element.find(this._sanitizeSelector("#"+n))}}),e.uiBackCompat!==!1&&(e.ui.tabs.prototype._ui=function(e,t){return{tab:e,panel:t,index:this.anchors.index(e)}},e.widget("ui.tabs",e.ui.tabs,{url:function(e,t){this.anchors.eq(e).attr("href",t)}}),e.widget("ui.tabs",e.ui.tabs,{options:{ajaxOptions:null,cache:!1},_create:function(){this._super();var t=this;this._on({tabsbeforeload:function(n,r){if(e.data(r.tab[0],"cache.tabs")){n.preventDefault();return}r.jqXHR.success(function(){t.options.cache&&e.data(r.tab[0],"cache.tabs",!0)})}})},_ajaxSettings:function(t,n,r){var i=this.options.ajaxOptions;return e.extend({},i,{error:function(e,t){try{i.error(e,t,r.tab.closest("li").index(),r.tab[0])}catch(n){}}},this._superApply(arguments))},_setOption:function(e,t){e==="cache"&&t===!1&&this.anchors.removeData("cache.tabs"),this._super(e,t)},_destroy:function(){this.anchors.removeData("cache.tabs"),this._super()},url:function(e){this.anchors.eq(e).removeData("cache.tabs"),this._superApply(arguments)}}),e.widget("ui.tabs",e.ui.tabs,{abort:function(){this.xhr&&this.xhr.abort()}}),e.widget("ui.tabs",e.ui.tabs,{options:{spinner:"<em>Loading&#8230;</em>"},_create:function(){this._super(),this._on({tabsbeforeload:function(e,t){if(e.target!==this.element[0]||!this.options.spinner)return;var n=t.tab.find("span"),r=n.html();n.html(this.options.spinner),t.jqXHR.complete(function(){n.html(r)})}})}}),e.widget("ui.tabs",e.ui.tabs,{options:{enable:null,disable:null},enable:function(t){var n=this.options,r;if(t&&n.disabled===!0||e.isArray(n.disabled)&&e.inArray(t,n.disabled)!==-1)r=!0;this._superApply(arguments),r&&this._trigger("enable",null,this._ui(this.anchors[t],this.panels[t]))},disable:function(t){var n=this.options,r;if(t&&n.disabled===!1||e.isArray(n.disabled)&&e.inArray(t,n.disabled)===-1)r=!0;this._superApply(arguments),r&&this._trigger("disable",null,this._ui(this.anchors[t],this.panels[t]))}}),e.widget("ui.tabs",e.ui.tabs,{options:{add:null,remove:null,tabTemplate:"<li><a href='#{href}'><span>#{label}</span></a></li>"},add:function(n,r,i){i===t&&(i=this.anchors.length);var s,o,u=this.options,a=e(u.tabTemplate.replace(/#\{href\}/g,n).replace(/#\{label\}/g,r)),f=n.indexOf("#")?this._tabId(a):n.replace("#","");return a.addClass("ui-state-default ui-corner-top").data("ui-tabs-destroy",!0),a.attr("aria-controls",f),s=i>=this.tabs.length,o=this.element.find("#"+f),o.length||(o=this._createPanel(f),s?i>0?o.insertAfter(this.panels.eq(-1)):o.appendTo(this.element):o.insertBefore(this.panels[i])),o.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").hide(),s?a.appendTo(this.tablist):a.insertBefore(this.tabs[i]),u.disabled=e.map(u.disabled,function(e){return e>=i?++e:e}),this.refresh(),this.tabs.length===1&&u.active===!1&&this.option("active",0),this._trigger("add",null,this._ui(this.anchors[i],this.panels[i])),this},remove:function(t){t=this._getIndex(t);var n=this.options,r=this.tabs.eq(t).remove(),i=this._getPanelForTab(r).remove();return r.hasClass("ui-tabs-active")&&this.anchors.length>2&&this._activate(t+(t+1<this.anchors.length?1:-1)),n.disabled=e.map(e.grep(n.disabled,function(e){return e!==t}),function(e){return e>=t?--e:e}),this.refresh(),this._trigger("remove",null,this._ui(r.find("a")[0],i[0])),this}}),e.widget("ui.tabs",e.ui.tabs,{length:function(){return this.anchors.length}}),e.widget("ui.tabs",e.ui.tabs,{options:{idPrefix:"ui-tabs-"},_tabId:function(t){var n=t.is("li")?t.find("a[href]"):t;return n=n[0],e(n).closest("li").attr("aria-controls")||n.title&&n.title.replace(/\s/g,"_").replace(/[^\w\u00c0-\uFFFF\-]/g,"")||this.options.idPrefix+i()}}),e.widget("ui.tabs",e.ui.tabs,{options:{panelTemplate:"<div></div>"},_createPanel:function(t){return e(this.options.panelTemplate).attr("id",t).addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").data("ui-tabs-destroy",!0)}}),e.widget("ui.tabs",e.ui.tabs,{_create:function(){var e=this.options;e.active===null&&e.selected!==t&&(e.active=e.selected===-1?!1:e.selected),this._super(),e.selected=e.active,e.selected===!1&&(e.selected=-1)},_setOption:function(e,t){if(e!=="selected")return this._super(e,t);var n=this.options;this._super("active",t===-1?!1:t),n.selected=n.active,n.selected===!1&&(n.selected=-1)},_eventHandler:function(){this._superApply(arguments),this.options.selected=this.options.active,this.options.selected===!1&&(this.options.selected=-1)}}),e.widget("ui.tabs",e.ui.tabs,{options:{show:null,select:null},_create:function(){this._super(),this.options.active!==!1&&this._trigger("show",null,this._ui(this.active.find(".ui-tabs-anchor")[0],this._getPanelForTab(this.active)[0]))},_trigger:function(e,t,n){var r,i,s=this._superApply(arguments);return s?(e==="beforeActivate"?(r=n.newTab.length?n.newTab:n.oldTab,i=n.newPanel.length?n.newPanel:n.oldPanel,s=this._super("select",t,{tab:r.find(".ui-tabs-anchor")[0],panel:i[0],index:r.closest("li").index()})):e==="activate"&&n.newTab.length&&(s=this._super("show",t,{tab:n.newTab.find(".ui-tabs-anchor")[0],panel:n.newPanel[0],index:n.newTab.closest("li").index()})),s):!1}}),e.widget("ui.tabs",e.ui.tabs,{select:function(e){e=this._getIndex(e);if(e===-1){if(!this.options.collapsible||this.options.selected===-1)return;e=this.options.selected}this.anchors.eq(e).trigger(this.options.event+this.eventNamespace)}}),function(){var t=0;e.widget("ui.tabs",e.ui.tabs,{options:{cookie:null},_create:function(){var e=this.options,t;e.active==null&&e.cookie&&(t=parseInt(this._cookie(),10),t===-1&&(t=!1),e.active=t),this._super()},_cookie:function(n){var r=[this.cookie||(this.cookie=this.options.cookie.name||"ui-tabs-"+ ++t)];return arguments.length&&(r.push(n===!1?-1:n),r.push(this.options.cookie)),e.cookie.apply(null,r)},_refresh:function(){this._super(),this.options.cookie&&this._cookie(this.options.active,this.options.cookie)},_eventHandler:function(){this._superApply(arguments),this.options.cookie&&this._cookie(this.options.active,this.options.cookie)},_destroy:function(){this._super(),this.options.cookie&&this._cookie(null,this.options.cookie)}})}(),e.widget("ui.tabs",e.ui.tabs,{_trigger:function(t,n,r){var i=e.extend({},r);return t==="load"&&(i.panel=i.panel[0],i.tab=i.tab.find(".ui-tabs-anchor")[0]),this._super(t,n,i)}}),e.widget("ui.tabs",e.ui.tabs,{options:{fx:null},_getFx:function(){var t,n,r=this.options.fx;return r&&(e.isArray(r)?(t=r[0],n=r[1]):t=n=r),r?{show:n,hide:t}:null},_toggle:function(e,t){function o(){n.running=!1,n._trigger("activate",e,t)}function u(){t.newTab.closest("li").addClass("ui-tabs-active ui-state-active"),r.length&&s.show?r.animate(s.show,s.show.duration,function(){o()}):(r.show(),o())}var n=this,r=t.newPanel,i=t.oldPanel,s=this._getFx();if(!s)return this._super(e,t);n.running=!0,i.length&&s.hide?i.animate(s.hide,s.hide.duration,function(){t.oldTab.closest("li").removeClass("ui-tabs-active ui-state-active"),u()}):(t.oldTab.closest("li").removeClass("ui-tabs-active ui-state-active"),i.hide(),u())}}))})(jQuery);
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-includes/js/jquery/ui/jquery.ui.tooltip.min.js	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,5 @@
+/*! jQuery UI - v1.9.2 - 2012-11-23
+* http://jqueryui.com
+* Includes: jquery.ui.tooltip.js
+* Copyright 2012 jQuery Foundation and other contributors; Licensed MIT */
+(function(e){function n(t,n){var r=(t.attr("aria-describedby")||"").split(/\s+/);r.push(n),t.data("ui-tooltip-id",n).attr("aria-describedby",e.trim(r.join(" ")))}function r(t){var n=t.data("ui-tooltip-id"),r=(t.attr("aria-describedby")||"").split(/\s+/),i=e.inArray(n,r);i!==-1&&r.splice(i,1),t.removeData("ui-tooltip-id"),r=e.trim(r.join(" ")),r?t.attr("aria-describedby",r):t.removeAttr("aria-describedby")}var t=0;e.widget("ui.tooltip",{version:"1.9.2",options:{content:function(){return e(this).attr("title")},hide:!0,items:"[title]:not([disabled])",position:{my:"left top+15",at:"left bottom",collision:"flipfit flip"},show:!0,tooltipClass:null,track:!1,close:null,open:null},_create:function(){this._on({mouseover:"open",focusin:"open"}),this.tooltips={},this.parents={},this.options.disabled&&this._disable()},_setOption:function(t,n){var r=this;if(t==="disabled"){this[n?"_disable":"_enable"](),this.options[t]=n;return}this._super(t,n),t==="content"&&e.each(this.tooltips,function(e,t){r._updateContent(t)})},_disable:function(){var t=this;e.each(this.tooltips,function(n,r){var i=e.Event("blur");i.target=i.currentTarget=r[0],t.close(i,!0)}),this.element.find(this.options.items).andSelf().each(function(){var t=e(this);t.is("[title]")&&t.data("ui-tooltip-title",t.attr("title")).attr("title","")})},_enable:function(){this.element.find(this.options.items).andSelf().each(function(){var t=e(this);t.data("ui-tooltip-title")&&t.attr("title",t.data("ui-tooltip-title"))})},open:function(t){var n=this,r=e(t?t.target:this.element).closest(this.options.items);if(!r.length||r.data("ui-tooltip-id"))return;r.attr("title")&&r.data("ui-tooltip-title",r.attr("title")),r.data("ui-tooltip-open",!0),t&&t.type==="mouseover"&&r.parents().each(function(){var t=e(this),r;t.data("ui-tooltip-open")&&(r=e.Event("blur"),r.target=r.currentTarget=this,n.close(r,!0)),t.attr("title")&&(t.uniqueId(),n.parents[this.id]={element:this,title:t.attr("title")},t.attr("title",""))}),this._updateContent(r,t)},_updateContent:function(e,t){var n,r=this.options.content,i=this,s=t?t.type:null;if(typeof r=="string")return this._open(t,e,r);n=r.call(e[0],function(n){if(!e.data("ui-tooltip-open"))return;i._delay(function(){t&&(t.type=s),this._open(t,e,n)})}),n&&this._open(t,e,n)},_open:function(t,r,i){function f(e){a.of=e;if(s.is(":hidden"))return;s.position(a)}var s,o,u,a=e.extend({},this.options.position);if(!i)return;s=this._find(r);if(s.length){s.find(".ui-tooltip-content").html(i);return}r.is("[title]")&&(t&&t.type==="mouseover"?r.attr("title",""):r.removeAttr("title")),s=this._tooltip(r),n(r,s.attr("id")),s.find(".ui-tooltip-content").html(i),this.options.track&&t&&/^mouse/.test(t.type)?(this._on(this.document,{mousemove:f}),f(t)):s.position(e.extend({of:r},this.options.position)),s.hide(),this._show(s,this.options.show),this.options.show&&this.options.show.delay&&(u=setInterval(function(){s.is(":visible")&&(f(a.of),clearInterval(u))},e.fx.interval)),this._trigger("open",t,{tooltip:s}),o={keyup:function(t){if(t.keyCode===e.ui.keyCode.ESCAPE){var n=e.Event(t);n.currentTarget=r[0],this.close(n,!0)}},remove:function(){this._removeTooltip(s)}};if(!t||t.type==="mouseover")o.mouseleave="close";if(!t||t.type==="focusin")o.focusout="close";this._on(!0,r,o)},close:function(t){var n=this,i=e(t?t.currentTarget:this.element),s=this._find(i);if(this.closing)return;i.data("ui-tooltip-title")&&i.attr("title",i.data("ui-tooltip-title")),r(i),s.stop(!0),this._hide(s,this.options.hide,function(){n._removeTooltip(e(this))}),i.removeData("ui-tooltip-open"),this._off(i,"mouseleave focusout keyup"),i[0]!==this.element[0]&&this._off(i,"remove"),this._off(this.document,"mousemove"),t&&t.type==="mouseleave"&&e.each(this.parents,function(t,r){e(r.element).attr("title",r.title),delete n.parents[t]}),this.closing=!0,this._trigger("close",t,{tooltip:s}),this.closing=!1},_tooltip:function(n){var r="ui-tooltip-"+t++,i=e("<div>").attr({id:r,role:"tooltip"}).addClass("ui-tooltip ui-widget ui-corner-all ui-widget-content "+(this.options.tooltipClass||""));return e("<div>").addClass("ui-tooltip-content").appendTo(i),i.appendTo(this.document[0].body),e.fn.bgiframe&&i.bgiframe(),this.tooltips[r]=n,i},_find:function(t){var n=t.data("ui-tooltip-id");return n?e("#"+n):e()},_removeTooltip:function(e){e.remove(),delete this.tooltips[e.attr("id")]},_destroy:function(){var t=this;e.each(this.tooltips,function(n,r){var i=e.Event("blur");i.target=i.currentTarget=r[0],t.close(i,!0),e("#"+n).remove(),r.data("ui-tooltip-title")&&(r.attr("title",r.data("ui-tooltip-title")),r.removeData("ui-tooltip-title"))})}})})(jQuery);
\ No newline at end of file
--- a/web/wp-includes/js/jquery/ui/jquery.ui.widget.min.js	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/js/jquery/ui/jquery.ui.widget.min.js	Wed Dec 19 17:46:52 2012 -0800
@@ -1,5 +1,5 @@
-/*! jQuery UI - v1.8.20 - 2012-04-30
-* https://github.com/jquery/jquery-ui
+/*! jQuery UI - v1.9.2 - 2012-11-23
+* http://jqueryui.com
 * Includes: jquery.ui.widget.js
-* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */
-(function(a,b){if(a.cleanData){var c=a.cleanData;a.cleanData=function(b){for(var d=0,e;(e=b[d])!=null;d++)try{a(e).triggerHandler("remove")}catch(f){}c(b)}}else{var d=a.fn.remove;a.fn.remove=function(b,c){return this.each(function(){return c||(!b||a.filter(b,[this]).length)&&a("*",this).add([this]).each(function(){try{a(this).triggerHandler("remove")}catch(b){}}),d.call(a(this),b,c)})}}a.widget=function(b,c,d){var e=b.split(".")[0],f;b=b.split(".")[1],f=e+"-"+b,d||(d=c,c=a.Widget),a.expr[":"][f]=function(c){return!!a.data(c,b)},a[e]=a[e]||{},a[e][b]=function(a,b){arguments.length&&this._createWidget(a,b)};var g=new c;g.options=a.extend(!0,{},g.options),a[e][b].prototype=a.extend(!0,g,{namespace:e,widgetName:b,widgetEventPrefix:a[e][b].prototype.widgetEventPrefix||b,widgetBaseClass:f},d),a.widget.bridge(b,a[e][b])},a.widget.bridge=function(c,d){a.fn[c]=function(e){var f=typeof e=="string",g=Array.prototype.slice.call(arguments,1),h=this;return e=!f&&g.length?a.extend.apply(null,[!0,e].concat(g)):e,f&&e.charAt(0)==="_"?h:(f?this.each(function(){var d=a.data(this,c),f=d&&a.isFunction(d[e])?d[e].apply(d,g):d;if(f!==d&&f!==b)return h=f,!1}):this.each(function(){var b=a.data(this,c);b?b.option(e||{})._init():a.data(this,c,new d(e,this))}),h)}},a.Widget=function(a,b){arguments.length&&this._createWidget(a,b)},a.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",options:{disabled:!1},_createWidget:function(b,c){a.data(c,this.widgetName,this),this.element=a(c),this.options=a.extend(!0,{},this.options,this._getCreateOptions(),b);var d=this;this.element.bind("remove."+this.widgetName,function(){d.destroy()}),this._create(),this._trigger("create"),this._init()},_getCreateOptions:function(){return a.metadata&&a.metadata.get(this.element[0])[this.widgetName]},_create:function(){},_init:function(){},destroy:function(){this.element.unbind("."+this.widgetName).removeData(this.widgetName),this.widget().unbind("."+this.widgetName).removeAttr("aria-disabled").removeClass(this.widgetBaseClass+"-disabled "+"ui-state-disabled")},widget:function(){return this.element},option:function(c,d){var e=c;if(arguments.length===0)return a.extend({},this.options);if(typeof c=="string"){if(d===b)return this.options[c];e={},e[c]=d}return this._setOptions(e),this},_setOptions:function(b){var c=this;return a.each(b,function(a,b){c._setOption(a,b)}),this},_setOption:function(a,b){return this.options[a]=b,a==="disabled"&&this.widget()[b?"addClass":"removeClass"](this.widgetBaseClass+"-disabled"+" "+"ui-state-disabled").attr("aria-disabled",b),this},enable:function(){return this._setOption("disabled",!1)},disable:function(){return this._setOption("disabled",!0)},_trigger:function(b,c,d){var e,f,g=this.options[b];d=d||{},c=a.Event(c),c.type=(b===this.widgetEventPrefix?b:this.widgetEventPrefix+b).toLowerCase(),c.target=this.element[0],f=c.originalEvent;if(f)for(e in f)e in c||(c[e]=f[e]);return this.element.trigger(c,d),!(a.isFunction(g)&&g.call(this.element[0],c,d)===!1||c.isDefaultPrevented())}}})(jQuery);
\ No newline at end of file
+* Copyright 2012 jQuery Foundation and other contributors; Licensed MIT */
+(function(e,t){var n=0,r=Array.prototype.slice,i=e.cleanData;e.cleanData=function(t){for(var n=0,r;(r=t[n])!=null;n++)try{e(r).triggerHandler("remove")}catch(s){}i(t)},e.widget=function(t,n,r){var i,s,o,u,a=t.split(".")[0];t=t.split(".")[1],i=a+"-"+t,r||(r=n,n=e.Widget),e.expr[":"][i.toLowerCase()]=function(t){return!!e.data(t,i)},e[a]=e[a]||{},s=e[a][t],o=e[a][t]=function(e,t){if(!this._createWidget)return new o(e,t);arguments.length&&this._createWidget(e,t)},e.extend(o,s,{version:r.version,_proto:e.extend({},r),_childConstructors:[]}),u=new n,u.options=e.widget.extend({},u.options),e.each(r,function(t,i){e.isFunction(i)&&(r[t]=function(){var e=function(){return n.prototype[t].apply(this,arguments)},r=function(e){return n.prototype[t].apply(this,e)};return function(){var t=this._super,n=this._superApply,s;return this._super=e,this._superApply=r,s=i.apply(this,arguments),this._super=t,this._superApply=n,s}}())}),o.prototype=e.widget.extend(u,{widgetEventPrefix:s?u.widgetEventPrefix:t},r,{constructor:o,namespace:a,widgetName:t,widgetBaseClass:i,widgetFullName:i}),s?(e.each(s._childConstructors,function(t,n){var r=n.prototype;e.widget(r.namespace+"."+r.widgetName,o,n._proto)}),delete s._childConstructors):n._childConstructors.push(o),e.widget.bridge(t,o)},e.widget.extend=function(n){var i=r.call(arguments,1),s=0,o=i.length,u,a;for(;s<o;s++)for(u in i[s])a=i[s][u],i[s].hasOwnProperty(u)&&a!==t&&(e.isPlainObject(a)?n[u]=e.isPlainObject(n[u])?e.widget.extend({},n[u],a):e.widget.extend({},a):n[u]=a);return n},e.widget.bridge=function(n,i){var s=i.prototype.widgetFullName||n;e.fn[n]=function(o){var u=typeof o=="string",a=r.call(arguments,1),f=this;return o=!u&&a.length?e.widget.extend.apply(null,[o].concat(a)):o,u?this.each(function(){var r,i=e.data(this,s);if(!i)return e.error("cannot call methods on "+n+" prior to initialization; "+"attempted to call method '"+o+"'");if(!e.isFunction(i[o])||o.charAt(0)==="_")return e.error("no such method '"+o+"' for "+n+" widget instance");r=i[o].apply(i,a);if(r!==i&&r!==t)return f=r&&r.jquery?f.pushStack(r.get()):r,!1}):this.each(function(){var t=e.data(this,s);t?t.option(o||{})._init():e.data(this,s,new i(o,this))}),f}},e.Widget=function(){},e.Widget._childConstructors=[],e.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",defaultElement:"<div>",options:{disabled:!1,create:null},_createWidget:function(t,r){r=e(r||this.defaultElement||this)[0],this.element=e(r),this.uuid=n++,this.eventNamespace="."+this.widgetName+this.uuid,this.options=e.widget.extend({},this.options,this._getCreateOptions(),t),this.bindings=e(),this.hoverable=e(),this.focusable=e(),r!==this&&(e.data(r,this.widgetName,this),e.data(r,this.widgetFullName,this),this._on(!0,this.element,{remove:function(e){e.target===r&&this.destroy()}}),this.document=e(r.style?r.ownerDocument:r.document||r),this.window=e(this.document[0].defaultView||this.document[0].parentWindow)),this._create(),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:e.noop,_getCreateEventData:e.noop,_create:e.noop,_init:e.noop,destroy:function(){this._destroy(),this.element.unbind(this.eventNamespace).removeData(this.widgetName).removeData(this.widgetFullName).removeData(e.camelCase(this.widgetFullName)),this.widget().unbind(this.eventNamespace).removeAttr("aria-disabled").removeClass(this.widgetFullName+"-disabled "+"ui-state-disabled"),this.bindings.unbind(this.eventNamespace),this.hoverable.removeClass("ui-state-hover"),this.focusable.removeClass("ui-state-focus")},_destroy:e.noop,widget:function(){return this.element},option:function(n,r){var i=n,s,o,u;if(arguments.length===0)return e.widget.extend({},this.options);if(typeof n=="string"){i={},s=n.split("."),n=s.shift();if(s.length){o=i[n]=e.widget.extend({},this.options[n]);for(u=0;u<s.length-1;u++)o[s[u]]=o[s[u]]||{},o=o[s[u]];n=s.pop();if(r===t)return o[n]===t?null:o[n];o[n]=r}else{if(r===t)return this.options[n]===t?null:this.options[n];i[n]=r}}return this._setOptions(i),this},_setOptions:function(e){var t;for(t in e)this._setOption(t,e[t]);return this},_setOption:function(e,t){return this.options[e]=t,e==="disabled"&&(this.widget().toggleClass(this.widgetFullName+"-disabled ui-state-disabled",!!t).attr("aria-disabled",t),this.hoverable.removeClass("ui-state-hover"),this.focusable.removeClass("ui-state-focus")),this},enable:function(){return this._setOption("disabled",!1)},disable:function(){return this._setOption("disabled",!0)},_on:function(t,n,r){var i,s=this;typeof t!="boolean"&&(r=n,n=t,t=!1),r?(n=i=e(n),this.bindings=this.bindings.add(n)):(r=n,n=this.element,i=this.widget()),e.each(r,function(r,o){function u(){if(!t&&(s.options.disabled===!0||e(this).hasClass("ui-state-disabled")))return;return(typeof o=="string"?s[o]:o).apply(s,arguments)}typeof o!="string"&&(u.guid=o.guid=o.guid||u.guid||e.guid++);var a=r.match(/^(\w+)\s*(.*)$/),f=a[1]+s.eventNamespace,l=a[2];l?i.delegate(l,f,u):n.bind(f,u)})},_off:function(e,t){t=(t||"").split(" ").join(this.eventNamespace+" ")+this.eventNamespace,e.unbind(t).undelegate(t)},_delay:function(e,t){function n(){return(typeof e=="string"?r[e]:e).apply(r,arguments)}var r=this;return setTimeout(n,t||0)},_hoverable:function(t){this.hoverable=this.hoverable.add(t),this._on(t,{mouseenter:function(t){e(t.currentTarget).addClass("ui-state-hover")},mouseleave:function(t){e(t.currentTarget).removeClass("ui-state-hover")}})},_focusable:function(t){this.focusable=this.focusable.add(t),this._on(t,{focusin:function(t){e(t.currentTarget).addClass("ui-state-focus")},focusout:function(t){e(t.currentTarget).removeClass("ui-state-focus")}})},_trigger:function(t,n,r){var i,s,o=this.options[t];r=r||{},n=e.Event(n),n.type=(t===this.widgetEventPrefix?t:this.widgetEventPrefix+t).toLowerCase(),n.target=this.element[0],s=n.originalEvent;if(s)for(i in s)i in n||(n[i]=s[i]);return this.element.trigger(n,r),!(e.isFunction(o)&&o.apply(this.element[0],[n].concat(r))===!1||n.isDefaultPrevented())}},e.each({show:"fadeIn",hide:"fadeOut"},function(t,n){e.Widget.prototype["_"+t]=function(r,i,s){typeof i=="string"&&(i={effect:i});var o,u=i?i===!0||typeof i=="number"?n:i.effect||n:t;i=i||{},typeof i=="number"&&(i={duration:i}),o=!e.isEmptyObject(i),i.complete=s,i.delay&&r.delay(i.delay),o&&e.effects&&(e.effects.effect[u]||e.uiBackCompat!==!1&&e.effects[u])?r[t](i):u!==t&&r[u]?r[u](i.duration,i.easing,s):r.queue(function(n){e(this)[t](),s&&s.call(r[0]),n()})}}),e.uiBackCompat!==!1&&(e.Widget.prototype._getCreateOptions=function(){return e.metadata&&e.metadata.get(this.element[0])[this.widgetName]})})(jQuery);
\ No newline at end of file
--- a/web/wp-includes/js/json2.dev.js	Wed Dec 19 12:35:13 2012 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,480 +0,0 @@
-/*
-    http://www.JSON.org/json2.js
-    2011-02-23
-
-    Public Domain.
-
-    NO WARRANTY EXPRESSED OR IMPLIED. USE AT YOUR OWN RISK.
-
-    See http://www.JSON.org/js.html
-
-
-    This code should be minified before deployment.
-    See http://javascript.crockford.com/jsmin.html
-
-    USE YOUR OWN COPY. IT IS EXTREMELY UNWISE TO LOAD CODE FROM SERVERS YOU DO
-    NOT CONTROL.
-
-
-    This file creates a global JSON object containing two methods: stringify
-    and parse.
-
-        JSON.stringify(value, replacer, space)
-            value       any JavaScript value, usually an object or array.
-
-            replacer    an optional parameter that determines how object
-                        values are stringified for objects. It can be a
-                        function or an array of strings.
-
-            space       an optional parameter that specifies the indentation
-                        of nested structures. If it is omitted, the text will
-                        be packed without extra whitespace. If it is a number,
-                        it will specify the number of spaces to indent at each
-                        level. If it is a string (such as '\t' or '&nbsp;'),
-                        it contains the characters used to indent at each level.
-
-            This method produces a JSON text from a JavaScript value.
-
-            When an object value is found, if the object contains a toJSON
-            method, its toJSON method will be called and the result will be
-            stringified. A toJSON method does not serialize: it returns the
-            value represented by the name/value pair that should be serialized,
-            or undefined if nothing should be serialized. The toJSON method
-            will be passed the key associated with the value, and this will be
-            bound to the value
-
-            For example, this would serialize Dates as ISO strings.
-
-                Date.prototype.toJSON = function (key) {
-                    function f(n) {
-                        // Format integers to have at least two digits.
-                        return n < 10 ? '0' + n : n;
-                    }
-
-                    return this.getUTCFullYear()   + '-' +
-                         f(this.getUTCMonth() + 1) + '-' +
-                         f(this.getUTCDate())      + 'T' +
-                         f(this.getUTCHours())     + ':' +
-                         f(this.getUTCMinutes())   + ':' +
-                         f(this.getUTCSeconds())   + 'Z';
-                };
-
-            You can provide an optional replacer method. It will be passed the
-            key and value of each member, with this bound to the containing
-            object. The value that is returned from your method will be
-            serialized. If your method returns undefined, then the member will
-            be excluded from the serialization.
-
-            If the replacer parameter is an array of strings, then it will be
-            used to select the members to be serialized. It filters the results
-            such that only members with keys listed in the replacer array are
-            stringified.
-
-            Values that do not have JSON representations, such as undefined or
-            functions, will not be serialized. Such values in objects will be
-            dropped; in arrays they will be replaced with null. You can use
-            a replacer function to replace those with JSON values.
-            JSON.stringify(undefined) returns undefined.
-
-            The optional space parameter produces a stringification of the
-            value that is filled with line breaks and indentation to make it
-            easier to read.
-
-            If the space parameter is a non-empty string, then that string will
-            be used for indentation. If the space parameter is a number, then
-            the indentation will be that many spaces.
-
-            Example:
-
-            text = JSON.stringify(['e', {pluribus: 'unum'}]);
-            // text is '["e",{"pluribus":"unum"}]'
-
-
-            text = JSON.stringify(['e', {pluribus: 'unum'}], null, '\t');
-            // text is '[\n\t"e",\n\t{\n\t\t"pluribus": "unum"\n\t}\n]'
-
-            text = JSON.stringify([new Date()], function (key, value) {
-                return this[key] instanceof Date ?
-                    'Date(' + this[key] + ')' : value;
-            });
-            // text is '["Date(---current time---)"]'
-
-
-        JSON.parse(text, reviver)
-            This method parses a JSON text to produce an object or array.
-            It can throw a SyntaxError exception.
-
-            The optional reviver parameter is a function that can filter and
-            transform the results. It receives each of the keys and values,
-            and its return value is used instead of the original value.
-            If it returns what it received, then the structure is not modified.
-            If it returns undefined then the member is deleted.
-
-            Example:
-
-            // Parse the text. Values that look like ISO date strings will
-            // be converted to Date objects.
-
-            myData = JSON.parse(text, function (key, value) {
-                var a;
-                if (typeof value === 'string') {
-                    a =
-/^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2}(?:\.\d*)?)Z$/.exec(value);
-                    if (a) {
-                        return new Date(Date.UTC(+a[1], +a[2] - 1, +a[3], +a[4],
-                            +a[5], +a[6]));
-                    }
-                }
-                return value;
-            });
-
-            myData = JSON.parse('["Date(09/09/2001)"]', function (key, value) {
-                var d;
-                if (typeof value === 'string' &&
-                        value.slice(0, 5) === 'Date(' &&
-                        value.slice(-1) === ')') {
-                    d = new Date(value.slice(5, -1));
-                    if (d) {
-                        return d;
-                    }
-                }
-                return value;
-            });
-
-
-    This is a reference implementation. You are free to copy, modify, or
-    redistribute.
-*/
-
-/*jslint evil: true, strict: false, regexp: false */
-
-/*members "", "\b", "\t", "\n", "\f", "\r", "\"", JSON, "\\", apply,
-    call, charCodeAt, getUTCDate, getUTCFullYear, getUTCHours,
-    getUTCMinutes, getUTCMonth, getUTCSeconds, hasOwnProperty, join,
-    lastIndex, length, parse, prototype, push, replace, slice, stringify,
-    test, toJSON, toString, valueOf
-*/
-
-
-// Create a JSON object only if one does not already exist. We create the
-// methods in a closure to avoid creating global variables.
-
-var JSON;
-if (!JSON) {
-    JSON = {};
-}
-
-(function () {
-    "use strict";
-
-    function f(n) {
-        // Format integers to have at least two digits.
-        return n < 10 ? '0' + n : n;
-    }
-
-    if (typeof Date.prototype.toJSON !== 'function') {
-
-        Date.prototype.toJSON = function (key) {
-
-            return isFinite(this.valueOf()) ?
-                this.getUTCFullYear()     + '-' +
-                f(this.getUTCMonth() + 1) + '-' +
-                f(this.getUTCDate())      + 'T' +
-                f(this.getUTCHours())     + ':' +
-                f(this.getUTCMinutes())   + ':' +
-                f(this.getUTCSeconds())   + 'Z' : null;
-        };
-
-        String.prototype.toJSON      =
-            Number.prototype.toJSON  =
-            Boolean.prototype.toJSON = function (key) {
-                return this.valueOf();
-            };
-    }
-
-    var cx = /[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,
-        escapable = /[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,
-        gap,
-        indent,
-        meta = {    // table of character substitutions
-            '\b': '\\b',
-            '\t': '\\t',
-            '\n': '\\n',
-            '\f': '\\f',
-            '\r': '\\r',
-            '"' : '\\"',
-            '\\': '\\\\'
-        },
-        rep;
-
-
-    function quote(string) {
-
-// If the string contains no control characters, no quote characters, and no
-// backslash characters, then we can safely slap some quotes around it.
-// Otherwise we must also replace the offending characters with safe escape
-// sequences.
-
-        escapable.lastIndex = 0;
-        return escapable.test(string) ? '"' + string.replace(escapable, function (a) {
-            var c = meta[a];
-            return typeof c === 'string' ? c :
-                '\\u' + ('0000' + a.charCodeAt(0).toString(16)).slice(-4);
-        }) + '"' : '"' + string + '"';
-    }
-
-
-    function str(key, holder) {
-
-// Produce a string from holder[key].
-
-        var i,          // The loop counter.
-            k,          // The member key.
-            v,          // The member value.
-            length,
-            mind = gap,
-            partial,
-            value = holder[key];
-
-// If the value has a toJSON method, call it to obtain a replacement value.
-
-        if (value && typeof value === 'object' &&
-                typeof value.toJSON === 'function') {
-            value = value.toJSON(key);
-        }
-
-// If we were called with a replacer function, then call the replacer to
-// obtain a replacement value.
-
-        if (typeof rep === 'function') {
-            value = rep.call(holder, key, value);
-        }
-
-// What happens next depends on the value's type.
-
-        switch (typeof value) {
-        case 'string':
-            return quote(value);
-
-        case 'number':
-
-// JSON numbers must be finite. Encode non-finite numbers as null.
-
-            return isFinite(value) ? String(value) : 'null';
-
-        case 'boolean':
-        case 'null':
-
-// If the value is a boolean or null, convert it to a string. Note:
-// typeof null does not produce 'null'. The case is included here in
-// the remote chance that this gets fixed someday.
-
-            return String(value);
-
-// If the type is 'object', we might be dealing with an object or an array or
-// null.
-
-        case 'object':
-
-// Due to a specification blunder in ECMAScript, typeof null is 'object',
-// so watch out for that case.
-
-            if (!value) {
-                return 'null';
-            }
-
-// Make an array to hold the partial results of stringifying this object value.
-
-            gap += indent;
-            partial = [];
-
-// Is the value an array?
-
-            if (Object.prototype.toString.apply(value) === '[object Array]') {
-
-// The value is an array. Stringify every element. Use null as a placeholder
-// for non-JSON values.
-
-                length = value.length;
-                for (i = 0; i < length; i += 1) {
-                    partial[i] = str(i, value) || 'null';
-                }
-
-// Join all of the elements together, separated with commas, and wrap them in
-// brackets.
-
-                v = partial.length === 0 ? '[]' : gap ?
-                    '[\n' + gap + partial.join(',\n' + gap) + '\n' + mind + ']' :
-                    '[' + partial.join(',') + ']';
-                gap = mind;
-                return v;
-            }
-
-// If the replacer is an array, use it to select the members to be stringified.
-
-            if (rep && typeof rep === 'object') {
-                length = rep.length;
-                for (i = 0; i < length; i += 1) {
-                    if (typeof rep[i] === 'string') {
-                        k = rep[i];
-                        v = str(k, value);
-                        if (v) {
-                            partial.push(quote(k) + (gap ? ': ' : ':') + v);
-                        }
-                    }
-                }
-            } else {
-
-// Otherwise, iterate through all of the keys in the object.
-
-                for (k in value) {
-                    if (Object.prototype.hasOwnProperty.call(value, k)) {
-                        v = str(k, value);
-                        if (v) {
-                            partial.push(quote(k) + (gap ? ': ' : ':') + v);
-                        }
-                    }
-                }
-            }
-
-// Join all of the member texts together, separated with commas,
-// and wrap them in braces.
-
-            v = partial.length === 0 ? '{}' : gap ?
-                '{\n' + gap + partial.join(',\n' + gap) + '\n' + mind + '}' :
-                '{' + partial.join(',') + '}';
-            gap = mind;
-            return v;
-        }
-    }
-
-// If the JSON object does not yet have a stringify method, give it one.
-
-    if (typeof JSON.stringify !== 'function') {
-        JSON.stringify = function (value, replacer, space) {
-
-// The stringify method takes a value and an optional replacer, and an optional
-// space parameter, and returns a JSON text. The replacer can be a function
-// that can replace values, or an array of strings that will select the keys.
-// A default replacer method can be provided. Use of the space parameter can
-// produce text that is more easily readable.
-
-            var i;
-            gap = '';
-            indent = '';
-
-// If the space parameter is a number, make an indent string containing that
-// many spaces.
-
-            if (typeof space === 'number') {
-                for (i = 0; i < space; i += 1) {
-                    indent += ' ';
-                }
-
-// If the space parameter is a string, it will be used as the indent string.
-
-            } else if (typeof space === 'string') {
-                indent = space;
-            }
-
-// If there is a replacer, it must be a function or an array.
-// Otherwise, throw an error.
-
-            rep = replacer;
-            if (replacer && typeof replacer !== 'function' &&
-                    (typeof replacer !== 'object' ||
-                    typeof replacer.length !== 'number')) {
-                throw new Error('JSON.stringify');
-            }
-
-// Make a fake root object containing our value under the key of ''.
-// Return the result of stringifying the value.
-
-            return str('', {'': value});
-        };
-    }
-
-
-// If the JSON object does not yet have a parse method, give it one.
-
-    if (typeof JSON.parse !== 'function') {
-        JSON.parse = function (text, reviver) {
-
-// The parse method takes a text and an optional reviver function, and returns
-// a JavaScript value if the text is a valid JSON text.
-
-            var j;
-
-            function walk(holder, key) {
-
-// The walk method is used to recursively walk the resulting structure so
-// that modifications can be made.
-
-                var k, v, value = holder[key];
-                if (value && typeof value === 'object') {
-                    for (k in value) {
-                        if (Object.prototype.hasOwnProperty.call(value, k)) {
-                            v = walk(value, k);
-                            if (v !== undefined) {
-                                value[k] = v;
-                            } else {
-                                delete value[k];
-                            }
-                        }
-                    }
-                }
-                return reviver.call(holder, key, value);
-            }
-
-
-// Parsing happens in four stages. In the first stage, we replace certain
-// Unicode characters with escape sequences. JavaScript handles many characters
-// incorrectly, either silently deleting them, or treating them as line endings.
-
-            text = String(text);
-            cx.lastIndex = 0;
-            if (cx.test(text)) {
-                text = text.replace(cx, function (a) {
-                    return '\\u' +
-                        ('0000' + a.charCodeAt(0).toString(16)).slice(-4);
-                });
-            }
-
-// In the second stage, we run the text against regular expressions that look
-// for non-JSON patterns. We are especially concerned with '()' and 'new'
-// because they can cause invocation, and '=' because it can cause mutation.
-// But just to be safe, we want to reject all unexpected forms.
-
-// We split the second stage into 4 regexp operations in order to work around
-// crippling inefficiencies in IE's and Safari's regexp engines. First we
-// replace the JSON backslash pairs with '@' (a non-JSON character). Second, we
-// replace all simple value tokens with ']' characters. Third, we delete all
-// open brackets that follow a colon or comma or that begin the text. Finally,
-// we look to see that the remaining characters are only whitespace or ']' or
-// ',' or ':' or '{' or '}'. If that is so, then the text is safe for eval.
-
-            if (/^[\],:{}\s]*$/
-                    .test(text.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g, '@')
-                        .replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, ']')
-                        .replace(/(?:^|:|,)(?:\s*\[)+/g, ''))) {
-
-// In the third stage we use the eval function to compile the text into a
-// JavaScript structure. The '{' operator is subject to a syntactic ambiguity
-// in JavaScript: it can begin a block or an object literal. We wrap the text
-// in parens to eliminate the ambiguity.
-
-                j = eval('(' + text + ')');
-
-// In the optional fourth stage, we recursively walk the new structure, passing
-// each name/value pair to a reviver function for possible transformation.
-
-                return typeof reviver === 'function' ?
-                    walk({'': j}, '') : j;
-            }
-
-// If the text is not JSON parseable, then a SyntaxError is thrown.
-
-            throw new SyntaxError('JSON.parse');
-        };
-    }
-}());
--- a/web/wp-includes/js/json2.js	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/js/json2.js	Wed Dec 19 17:46:52 2012 -0800
@@ -1,1 +1,480 @@
-var JSON;if(!JSON){JSON={}}(function(){function f(n){return n<10?"0"+n:n}if(typeof Date.prototype.toJSON!=="function"){Date.prototype.toJSON=function(key){return isFinite(this.valueOf())?this.getUTCFullYear()+"-"+f(this.getUTCMonth()+1)+"-"+f(this.getUTCDate())+"T"+f(this.getUTCHours())+":"+f(this.getUTCMinutes())+":"+f(this.getUTCSeconds())+"Z":null};String.prototype.toJSON=Number.prototype.toJSON=Boolean.prototype.toJSON=function(key){return this.valueOf()}}var cx=/[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,escapable=/[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,gap,indent,meta={"\b":"\\b","\t":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"},rep;function quote(string){escapable.lastIndex=0;return escapable.test(string)?'"'+string.replace(escapable,function(a){var c=meta[a];return typeof c==="string"?c:"\\u"+("0000"+a.charCodeAt(0).toString(16)).slice(-4)})+'"':'"'+string+'"'}function str(key,holder){var i,k,v,length,mind=gap,partial,value=holder[key];if(value&&typeof value==="object"&&typeof value.toJSON==="function"){value=value.toJSON(key)}if(typeof rep==="function"){value=rep.call(holder,key,value)}switch(typeof value){case"string":return quote(value);case"number":return isFinite(value)?String(value):"null";case"boolean":case"null":return String(value);case"object":if(!value){return"null"}gap+=indent;partial=[];if(Object.prototype.toString.apply(value)==="[object Array]"){length=value.length;for(i=0;i<length;i+=1){partial[i]=str(i,value)||"null"}v=partial.length===0?"[]":gap?"[\n"+gap+partial.join(",\n"+gap)+"\n"+mind+"]":"["+partial.join(",")+"]";gap=mind;return v}if(rep&&typeof rep==="object"){length=rep.length;for(i=0;i<length;i+=1){if(typeof rep[i]==="string"){k=rep[i];v=str(k,value);if(v){partial.push(quote(k)+(gap?": ":":")+v)}}}}else{for(k in value){if(Object.prototype.hasOwnProperty.call(value,k)){v=str(k,value);if(v){partial.push(quote(k)+(gap?": ":":")+v)}}}}v=partial.length===0?"{}":gap?"{\n"+gap+partial.join(",\n"+gap)+"\n"+mind+"}":"{"+partial.join(",")+"}";gap=mind;return v}}if(typeof JSON.stringify!=="function"){JSON.stringify=function(value,replacer,space){var i;gap="";indent="";if(typeof space==="number"){for(i=0;i<space;i+=1){indent+=" "}}else{if(typeof space==="string"){indent=space}}rep=replacer;if(replacer&&typeof replacer!=="function"&&(typeof replacer!=="object"||typeof replacer.length!=="number")){throw new Error("JSON.stringify")}return str("",{"":value})}}if(typeof JSON.parse!=="function"){JSON.parse=function(text,reviver){var j;function walk(holder,key){var k,v,value=holder[key];if(value&&typeof value==="object"){for(k in value){if(Object.prototype.hasOwnProperty.call(value,k)){v=walk(value,k);if(v!==undefined){value[k]=v}else{delete value[k]}}}}return reviver.call(holder,key,value)}text=String(text);cx.lastIndex=0;if(cx.test(text)){text=text.replace(cx,function(a){return"\\u"+("0000"+a.charCodeAt(0).toString(16)).slice(-4)})}if(/^[\],:{}\s]*$/.test(text.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,"@").replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,"]").replace(/(?:^|:|,)(?:\s*\[)+/g,""))){j=eval("("+text+")");return typeof reviver==="function"?walk({"":j},""):j}throw new SyntaxError("JSON.parse")}}}());
\ No newline at end of file
+/*
+    http://www.JSON.org/json2.js
+    2011-02-23
+
+    Public Domain.
+
+    NO WARRANTY EXPRESSED OR IMPLIED. USE AT YOUR OWN RISK.
+
+    See http://www.JSON.org/js.html
+
+
+    This code should be minified before deployment.
+    See http://javascript.crockford.com/jsmin.html
+
+    USE YOUR OWN COPY. IT IS EXTREMELY UNWISE TO LOAD CODE FROM SERVERS YOU DO
+    NOT CONTROL.
+
+
+    This file creates a global JSON object containing two methods: stringify
+    and parse.
+
+        JSON.stringify(value, replacer, space)
+            value       any JavaScript value, usually an object or array.
+
+            replacer    an optional parameter that determines how object
+                        values are stringified for objects. It can be a
+                        function or an array of strings.
+
+            space       an optional parameter that specifies the indentation
+                        of nested structures. If it is omitted, the text will
+                        be packed without extra whitespace. If it is a number,
+                        it will specify the number of spaces to indent at each
+                        level. If it is a string (such as '\t' or '&nbsp;'),
+                        it contains the characters used to indent at each level.
+
+            This method produces a JSON text from a JavaScript value.
+
+            When an object value is found, if the object contains a toJSON
+            method, its toJSON method will be called and the result will be
+            stringified. A toJSON method does not serialize: it returns the
+            value represented by the name/value pair that should be serialized,
+            or undefined if nothing should be serialized. The toJSON method
+            will be passed the key associated with the value, and this will be
+            bound to the value
+
+            For example, this would serialize Dates as ISO strings.
+
+                Date.prototype.toJSON = function (key) {
+                    function f(n) {
+                        // Format integers to have at least two digits.
+                        return n < 10 ? '0' + n : n;
+                    }
+
+                    return this.getUTCFullYear()   + '-' +
+                         f(this.getUTCMonth() + 1) + '-' +
+                         f(this.getUTCDate())      + 'T' +
+                         f(this.getUTCHours())     + ':' +
+                         f(this.getUTCMinutes())   + ':' +
+                         f(this.getUTCSeconds())   + 'Z';
+                };
+
+            You can provide an optional replacer method. It will be passed the
+            key and value of each member, with this bound to the containing
+            object. The value that is returned from your method will be
+            serialized. If your method returns undefined, then the member will
+            be excluded from the serialization.
+
+            If the replacer parameter is an array of strings, then it will be
+            used to select the members to be serialized. It filters the results
+            such that only members with keys listed in the replacer array are
+            stringified.
+
+            Values that do not have JSON representations, such as undefined or
+            functions, will not be serialized. Such values in objects will be
+            dropped; in arrays they will be replaced with null. You can use
+            a replacer function to replace those with JSON values.
+            JSON.stringify(undefined) returns undefined.
+
+            The optional space parameter produces a stringification of the
+            value that is filled with line breaks and indentation to make it
+            easier to read.
+
+            If the space parameter is a non-empty string, then that string will
+            be used for indentation. If the space parameter is a number, then
+            the indentation will be that many spaces.
+
+            Example:
+
+            text = JSON.stringify(['e', {pluribus: 'unum'}]);
+            // text is '["e",{"pluribus":"unum"}]'
+
+
+            text = JSON.stringify(['e', {pluribus: 'unum'}], null, '\t');
+            // text is '[\n\t"e",\n\t{\n\t\t"pluribus": "unum"\n\t}\n]'
+
+            text = JSON.stringify([new Date()], function (key, value) {
+                return this[key] instanceof Date ?
+                    'Date(' + this[key] + ')' : value;
+            });
+            // text is '["Date(---current time---)"]'
+
+
+        JSON.parse(text, reviver)
+            This method parses a JSON text to produce an object or array.
+            It can throw a SyntaxError exception.
+
+            The optional reviver parameter is a function that can filter and
+            transform the results. It receives each of the keys and values,
+            and its return value is used instead of the original value.
+            If it returns what it received, then the structure is not modified.
+            If it returns undefined then the member is deleted.
+
+            Example:
+
+            // Parse the text. Values that look like ISO date strings will
+            // be converted to Date objects.
+
+            myData = JSON.parse(text, function (key, value) {
+                var a;
+                if (typeof value === 'string') {
+                    a =
+/^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2}(?:\.\d*)?)Z$/.exec(value);
+                    if (a) {
+                        return new Date(Date.UTC(+a[1], +a[2] - 1, +a[3], +a[4],
+                            +a[5], +a[6]));
+                    }
+                }
+                return value;
+            });
+
+            myData = JSON.parse('["Date(09/09/2001)"]', function (key, value) {
+                var d;
+                if (typeof value === 'string' &&
+                        value.slice(0, 5) === 'Date(' &&
+                        value.slice(-1) === ')') {
+                    d = new Date(value.slice(5, -1));
+                    if (d) {
+                        return d;
+                    }
+                }
+                return value;
+            });
+
+
+    This is a reference implementation. You are free to copy, modify, or
+    redistribute.
+*/
+
+/*jslint evil: true, strict: false, regexp: false */
+
+/*members "", "\b", "\t", "\n", "\f", "\r", "\"", JSON, "\\", apply,
+    call, charCodeAt, getUTCDate, getUTCFullYear, getUTCHours,
+    getUTCMinutes, getUTCMonth, getUTCSeconds, hasOwnProperty, join,
+    lastIndex, length, parse, prototype, push, replace, slice, stringify,
+    test, toJSON, toString, valueOf
+*/
+
+
+// Create a JSON object only if one does not already exist. We create the
+// methods in a closure to avoid creating global variables.
+
+var JSON;
+if (!JSON) {
+    JSON = {};
+}
+
+(function () {
+    "use strict";
+
+    function f(n) {
+        // Format integers to have at least two digits.
+        return n < 10 ? '0' + n : n;
+    }
+
+    if (typeof Date.prototype.toJSON !== 'function') {
+
+        Date.prototype.toJSON = function (key) {
+
+            return isFinite(this.valueOf()) ?
+                this.getUTCFullYear()     + '-' +
+                f(this.getUTCMonth() + 1) + '-' +
+                f(this.getUTCDate())      + 'T' +
+                f(this.getUTCHours())     + ':' +
+                f(this.getUTCMinutes())   + ':' +
+                f(this.getUTCSeconds())   + 'Z' : null;
+        };
+
+        String.prototype.toJSON      =
+            Number.prototype.toJSON  =
+            Boolean.prototype.toJSON = function (key) {
+                return this.valueOf();
+            };
+    }
+
+    var cx = /[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,
+        escapable = /[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,
+        gap,
+        indent,
+        meta = {    // table of character substitutions
+            '\b': '\\b',
+            '\t': '\\t',
+            '\n': '\\n',
+            '\f': '\\f',
+            '\r': '\\r',
+            '"' : '\\"',
+            '\\': '\\\\'
+        },
+        rep;
+
+
+    function quote(string) {
+
+// If the string contains no control characters, no quote characters, and no
+// backslash characters, then we can safely slap some quotes around it.
+// Otherwise we must also replace the offending characters with safe escape
+// sequences.
+
+        escapable.lastIndex = 0;
+        return escapable.test(string) ? '"' + string.replace(escapable, function (a) {
+            var c = meta[a];
+            return typeof c === 'string' ? c :
+                '\\u' + ('0000' + a.charCodeAt(0).toString(16)).slice(-4);
+        }) + '"' : '"' + string + '"';
+    }
+
+
+    function str(key, holder) {
+
+// Produce a string from holder[key].
+
+        var i,          // The loop counter.
+            k,          // The member key.
+            v,          // The member value.
+            length,
+            mind = gap,
+            partial,
+            value = holder[key];
+
+// If the value has a toJSON method, call it to obtain a replacement value.
+
+        if (value && typeof value === 'object' &&
+                typeof value.toJSON === 'function') {
+            value = value.toJSON(key);
+        }
+
+// If we were called with a replacer function, then call the replacer to
+// obtain a replacement value.
+
+        if (typeof rep === 'function') {
+            value = rep.call(holder, key, value);
+        }
+
+// What happens next depends on the value's type.
+
+        switch (typeof value) {
+        case 'string':
+            return quote(value);
+
+        case 'number':
+
+// JSON numbers must be finite. Encode non-finite numbers as null.
+
+            return isFinite(value) ? String(value) : 'null';
+
+        case 'boolean':
+        case 'null':
+
+// If the value is a boolean or null, convert it to a string. Note:
+// typeof null does not produce 'null'. The case is included here in
+// the remote chance that this gets fixed someday.
+
+            return String(value);
+
+// If the type is 'object', we might be dealing with an object or an array or
+// null.
+
+        case 'object':
+
+// Due to a specification blunder in ECMAScript, typeof null is 'object',
+// so watch out for that case.
+
+            if (!value) {
+                return 'null';
+            }
+
+// Make an array to hold the partial results of stringifying this object value.
+
+            gap += indent;
+            partial = [];
+
+// Is the value an array?
+
+            if (Object.prototype.toString.apply(value) === '[object Array]') {
+
+// The value is an array. Stringify every element. Use null as a placeholder
+// for non-JSON values.
+
+                length = value.length;
+                for (i = 0; i < length; i += 1) {
+                    partial[i] = str(i, value) || 'null';
+                }
+
+// Join all of the elements together, separated with commas, and wrap them in
+// brackets.
+
+                v = partial.length === 0 ? '[]' : gap ?
+                    '[\n' + gap + partial.join(',\n' + gap) + '\n' + mind + ']' :
+                    '[' + partial.join(',') + ']';
+                gap = mind;
+                return v;
+            }
+
+// If the replacer is an array, use it to select the members to be stringified.
+
+            if (rep && typeof rep === 'object') {
+                length = rep.length;
+                for (i = 0; i < length; i += 1) {
+                    if (typeof rep[i] === 'string') {
+                        k = rep[i];
+                        v = str(k, value);
+                        if (v) {
+                            partial.push(quote(k) + (gap ? ': ' : ':') + v);
+                        }
+                    }
+                }
+            } else {
+
+// Otherwise, iterate through all of the keys in the object.
+
+                for (k in value) {
+                    if (Object.prototype.hasOwnProperty.call(value, k)) {
+                        v = str(k, value);
+                        if (v) {
+                            partial.push(quote(k) + (gap ? ': ' : ':') + v);
+                        }
+                    }
+                }
+            }
+
+// Join all of the member texts together, separated with commas,
+// and wrap them in braces.
+
+            v = partial.length === 0 ? '{}' : gap ?
+                '{\n' + gap + partial.join(',\n' + gap) + '\n' + mind + '}' :
+                '{' + partial.join(',') + '}';
+            gap = mind;
+            return v;
+        }
+    }
+
+// If the JSON object does not yet have a stringify method, give it one.
+
+    if (typeof JSON.stringify !== 'function') {
+        JSON.stringify = function (value, replacer, space) {
+
+// The stringify method takes a value and an optional replacer, and an optional
+// space parameter, and returns a JSON text. The replacer can be a function
+// that can replace values, or an array of strings that will select the keys.
+// A default replacer method can be provided. Use of the space parameter can
+// produce text that is more easily readable.
+
+            var i;
+            gap = '';
+            indent = '';
+
+// If the space parameter is a number, make an indent string containing that
+// many spaces.
+
+            if (typeof space === 'number') {
+                for (i = 0; i < space; i += 1) {
+                    indent += ' ';
+                }
+
+// If the space parameter is a string, it will be used as the indent string.
+
+            } else if (typeof space === 'string') {
+                indent = space;
+            }
+
+// If there is a replacer, it must be a function or an array.
+// Otherwise, throw an error.
+
+            rep = replacer;
+            if (replacer && typeof replacer !== 'function' &&
+                    (typeof replacer !== 'object' ||
+                    typeof replacer.length !== 'number')) {
+                throw new Error('JSON.stringify');
+            }
+
+// Make a fake root object containing our value under the key of ''.
+// Return the result of stringifying the value.
+
+            return str('', {'': value});
+        };
+    }
+
+
+// If the JSON object does not yet have a parse method, give it one.
+
+    if (typeof JSON.parse !== 'function') {
+        JSON.parse = function (text, reviver) {
+
+// The parse method takes a text and an optional reviver function, and returns
+// a JavaScript value if the text is a valid JSON text.
+
+            var j;
+
+            function walk(holder, key) {
+
+// The walk method is used to recursively walk the resulting structure so
+// that modifications can be made.
+
+                var k, v, value = holder[key];
+                if (value && typeof value === 'object') {
+                    for (k in value) {
+                        if (Object.prototype.hasOwnProperty.call(value, k)) {
+                            v = walk(value, k);
+                            if (v !== undefined) {
+                                value[k] = v;
+                            } else {
+                                delete value[k];
+                            }
+                        }
+                    }
+                }
+                return reviver.call(holder, key, value);
+            }
+
+
+// Parsing happens in four stages. In the first stage, we replace certain
+// Unicode characters with escape sequences. JavaScript handles many characters
+// incorrectly, either silently deleting them, or treating them as line endings.
+
+            text = String(text);
+            cx.lastIndex = 0;
+            if (cx.test(text)) {
+                text = text.replace(cx, function (a) {
+                    return '\\u' +
+                        ('0000' + a.charCodeAt(0).toString(16)).slice(-4);
+                });
+            }
+
+// In the second stage, we run the text against regular expressions that look
+// for non-JSON patterns. We are especially concerned with '()' and 'new'
+// because they can cause invocation, and '=' because it can cause mutation.
+// But just to be safe, we want to reject all unexpected forms.
+
+// We split the second stage into 4 regexp operations in order to work around
+// crippling inefficiencies in IE's and Safari's regexp engines. First we
+// replace the JSON backslash pairs with '@' (a non-JSON character). Second, we
+// replace all simple value tokens with ']' characters. Third, we delete all
+// open brackets that follow a colon or comma or that begin the text. Finally,
+// we look to see that the remaining characters are only whitespace or ']' or
+// ',' or ':' or '{' or '}'. If that is so, then the text is safe for eval.
+
+            if (/^[\],:{}\s]*$/
+                    .test(text.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g, '@')
+                        .replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g, ']')
+                        .replace(/(?:^|:|,)(?:\s*\[)+/g, ''))) {
+
+// In the third stage we use the eval function to compile the text into a
+// JavaScript structure. The '{' operator is subject to a syntactic ambiguity
+// in JavaScript: it can begin a block or an object literal. We wrap the text
+// in parens to eliminate the ambiguity.
+
+                j = eval('(' + text + ')');
+
+// In the optional fourth stage, we recursively walk the new structure, passing
+// each name/value pair to a reviver function for possible transformation.
+
+                return typeof reviver === 'function' ?
+                    walk({'': j}, '') : j;
+            }
+
+// If the text is not JSON parseable, then a SyntaxError is thrown.
+
+            throw new SyntaxError('JSON.parse');
+        };
+    }
+}());
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-includes/js/json2.min.js	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,1 @@
+var JSON;if(!JSON){JSON={}}(function(){function f(n){return n<10?"0"+n:n}if(typeof Date.prototype.toJSON!=="function"){Date.prototype.toJSON=function(key){return isFinite(this.valueOf())?this.getUTCFullYear()+"-"+f(this.getUTCMonth()+1)+"-"+f(this.getUTCDate())+"T"+f(this.getUTCHours())+":"+f(this.getUTCMinutes())+":"+f(this.getUTCSeconds())+"Z":null};String.prototype.toJSON=Number.prototype.toJSON=Boolean.prototype.toJSON=function(key){return this.valueOf()}}var cx=/[\u0000\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,escapable=/[\\\"\x00-\x1f\x7f-\x9f\u00ad\u0600-\u0604\u070f\u17b4\u17b5\u200c-\u200f\u2028-\u202f\u2060-\u206f\ufeff\ufff0-\uffff]/g,gap,indent,meta={"\b":"\\b","\t":"\\t","\n":"\\n","\f":"\\f","\r":"\\r",'"':'\\"',"\\":"\\\\"},rep;function quote(string){escapable.lastIndex=0;return escapable.test(string)?'"'+string.replace(escapable,function(a){var c=meta[a];return typeof c==="string"?c:"\\u"+("0000"+a.charCodeAt(0).toString(16)).slice(-4)})+'"':'"'+string+'"'}function str(key,holder){var i,k,v,length,mind=gap,partial,value=holder[key];if(value&&typeof value==="object"&&typeof value.toJSON==="function"){value=value.toJSON(key)}if(typeof rep==="function"){value=rep.call(holder,key,value)}switch(typeof value){case"string":return quote(value);case"number":return isFinite(value)?String(value):"null";case"boolean":case"null":return String(value);case"object":if(!value){return"null"}gap+=indent;partial=[];if(Object.prototype.toString.apply(value)==="[object Array]"){length=value.length;for(i=0;i<length;i+=1){partial[i]=str(i,value)||"null"}v=partial.length===0?"[]":gap?"[\n"+gap+partial.join(",\n"+gap)+"\n"+mind+"]":"["+partial.join(",")+"]";gap=mind;return v}if(rep&&typeof rep==="object"){length=rep.length;for(i=0;i<length;i+=1){if(typeof rep[i]==="string"){k=rep[i];v=str(k,value);if(v){partial.push(quote(k)+(gap?": ":":")+v)}}}}else{for(k in value){if(Object.prototype.hasOwnProperty.call(value,k)){v=str(k,value);if(v){partial.push(quote(k)+(gap?": ":":")+v)}}}}v=partial.length===0?"{}":gap?"{\n"+gap+partial.join(",\n"+gap)+"\n"+mind+"}":"{"+partial.join(",")+"}";gap=mind;return v}}if(typeof JSON.stringify!=="function"){JSON.stringify=function(value,replacer,space){var i;gap="";indent="";if(typeof space==="number"){for(i=0;i<space;i+=1){indent+=" "}}else{if(typeof space==="string"){indent=space}}rep=replacer;if(replacer&&typeof replacer!=="function"&&(typeof replacer!=="object"||typeof replacer.length!=="number")){throw new Error("JSON.stringify")}return str("",{"":value})}}if(typeof JSON.parse!=="function"){JSON.parse=function(text,reviver){var j;function walk(holder,key){var k,v,value=holder[key];if(value&&typeof value==="object"){for(k in value){if(Object.prototype.hasOwnProperty.call(value,k)){v=walk(value,k);if(v!==undefined){value[k]=v}else{delete value[k]}}}}return reviver.call(holder,key,value)}text=String(text);cx.lastIndex=0;if(cx.test(text)){text=text.replace(cx,function(a){return"\\u"+("0000"+a.charCodeAt(0).toString(16)).slice(-4)})}if(/^[\],:{}\s]*$/.test(text.replace(/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,"@").replace(/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,"]").replace(/(?:^|:|,)(?:\s*\[)+/g,""))){j=eval("("+text+")");return typeof reviver==="function"?walk({"":j},""):j}throw new SyntaxError("JSON.parse")}}}());
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-includes/js/mce-view.js	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,349 @@
+// Ensure the global `wp` object exists.
+window.wp = window.wp || {};
+
+(function($){
+	var views = {},
+		instances = {};
+
+	// Create the `wp.mce` object if necessary.
+	wp.mce = wp.mce || {};
+
+	// wp.mce.view
+	// -----------
+	// A set of utilities that simplifies adding custom UI within a TinyMCE editor.
+	// At its core, it serves as a series of converters, transforming text to a
+	// custom UI, and back again.
+	wp.mce.view = {
+		// ### defaults
+		defaults: {
+			// The default properties used for objects with the `pattern` key in
+			// `wp.mce.view.add()`.
+			pattern: {
+				view: Backbone.View,
+				text: function( instance ) {
+					return instance.options.original;
+				},
+
+				toView: function( content ) {
+					if ( ! this.pattern )
+						return;
+
+					this.pattern.lastIndex = 0;
+					var match = this.pattern.exec( content );
+
+					if ( ! match )
+						return;
+
+					return {
+						index:   match.index,
+						content: match[0],
+						options: {
+							original: match[0],
+							results:  match
+						}
+					};
+				}
+			},
+
+			// The default properties used for objects with the `shortcode` key in
+			// `wp.mce.view.add()`.
+			shortcode: {
+				view: Backbone.View,
+				text: function( instance ) {
+					return instance.options.shortcode.string();
+				},
+
+				toView: function( content ) {
+					var match = wp.shortcode.next( this.shortcode, content );
+
+					if ( ! match )
+						return;
+
+					return {
+						index:   match.index,
+						content: match.content,
+						options: {
+							shortcode: match.shortcode
+						}
+					};
+				}
+			}
+		},
+
+		// ### add( id, options )
+		// Registers a new TinyMCE view.
+		//
+		// Accepts a unique `id` and an `options` object.
+		//
+		// `options` accepts the following properties:
+		//
+		// * `pattern` is the regular expression used to scan the content and
+		// detect matching views.
+		//
+		// * `view` is a `Backbone.View` constructor. If a plain object is
+		// provided, it will automatically extend the parent constructor
+		// (usually `Backbone.View`). Views are instantiated when the `pattern`
+		// is successfully matched. The instance's `options` object is provided
+		// with the `original` matched value, the match `results` including
+		// capture groups, and the `viewType`, which is the constructor's `id`.
+		//
+		// * `extend` an existing view by passing in its `id`. The current
+		// view will inherit all properties from the parent view, and if
+		// `view` is set to a plain object, it will extend the parent `view`
+		// constructor.
+		//
+		// * `text` is a method that accepts an instance of the `view`
+		// constructor and transforms it into a text representation.
+		add: function( id, options ) {
+			var parent, remove, base, properties;
+
+			// Fetch the parent view or the default options.
+			if ( options.extend )
+				parent = wp.mce.view.get( options.extend );
+			else if ( options.shortcode )
+				parent = wp.mce.view.defaults.shortcode;
+			else
+				parent = wp.mce.view.defaults.pattern;
+
+			// Extend the `options` object with the parent's properties.
+			_.defaults( options, parent );
+			options.id = id;
+
+			// Create properties used to enhance the view for use in TinyMCE.
+			properties = {
+				// Ensure the wrapper element and references to the view are
+				// removed. Otherwise, removed views could randomly restore.
+				remove: function() {
+					delete instances[ this.el.id ];
+					this.$el.parent().remove();
+
+					// Trigger the inherited `remove` method.
+					if ( remove )
+						remove.apply( this, arguments );
+
+					return this;
+				}
+			};
+
+			// If the `view` provided was an object, use the parent's
+			// `view` constructor as a base. If a `view` constructor
+			// was provided, treat that as the base.
+			if ( _.isFunction( options.view ) ) {
+				base = options.view;
+			} else {
+				base   = parent.view;
+				remove = options.view.remove;
+				_.defaults( properties, options.view );
+			}
+
+			// If there's a `remove` method on the `base` view that wasn't
+			// created by this method, inherit it.
+			if ( ! remove && ! base._mceview )
+				remove = base.prototype.remove;
+
+			// Automatically create the new `Backbone.View` constructor.
+			options.view = base.extend( properties, {
+				// Flag that the new view has been created by `wp.mce.view`.
+				_mceview: true
+			});
+
+			views[ id ] = options;
+		},
+
+		// ### get( id )
+		// Returns a TinyMCE view options object.
+		get: function( id ) {
+			return views[ id ];
+		},
+
+		// ### remove( id )
+		// Unregisters a TinyMCE view.
+		remove: function( id ) {
+			delete views[ id ];
+		},
+
+		// ### toViews( content )
+		// Scans a `content` string for each view's pattern, replacing any
+		// matches with wrapper elements, and creates a new view instance for
+		// every match.
+		//
+		// To render the views, call `wp.mce.view.render( scope )`.
+		toViews: function( content ) {
+			var pieces = [ { content: content } ],
+				current;
+
+			_.each( views, function( view, viewType ) {
+				current = pieces.slice();
+				pieces  = [];
+
+				_.each( current, function( piece ) {
+					var remaining = piece.content,
+						result;
+
+					// Ignore processed pieces, but retain their location.
+					if ( piece.processed ) {
+						pieces.push( piece );
+						return;
+					}
+
+					// Iterate through the string progressively matching views
+					// and slicing the string as we go.
+					while ( remaining && (result = view.toView( remaining )) ) {
+						// Any text before the match becomes an unprocessed piece.
+						if ( result.index )
+							pieces.push({ content: remaining.substring( 0, result.index ) });
+
+						// Add the processed piece for the match.
+						pieces.push({
+							content:   wp.mce.view.toView( viewType, result.options ),
+							processed: true
+						});
+
+						// Update the remaining content.
+						remaining = remaining.slice( result.index + result.content.length );
+					}
+
+					// There are no additional matches. If any content remains,
+					// add it as an unprocessed piece.
+					if ( remaining )
+						pieces.push({ content: remaining });
+				});
+			});
+
+			return _.pluck( pieces, 'content' ).join('');
+		},
+
+		toView: function( viewType, options ) {
+			var view = wp.mce.view.get( viewType ),
+				instance, id;
+
+			if ( ! view )
+				return '';
+
+			// Create a new view instance.
+			instance = new view.view( _.extend( options || {}, {
+				viewType: viewType
+			}) );
+
+			// Use the view's `id` if it already exists. Otherwise,
+			// create a new `id`.
+			id = instance.el.id = instance.el.id || _.uniqueId('__wpmce-');
+			instances[ id ] = instance;
+
+			// Create a dummy `$wrapper` property to allow `$wrapper` to be
+			// called in the view's `render` method without a conditional.
+			instance.$wrapper = $();
+
+			return wp.html.string({
+				// If the view is a span, wrap it in a span.
+				tag: 'span' === instance.tagName ? 'span' : 'div',
+
+				attrs: {
+					'class':           'wp-view-wrap wp-view-type-' + viewType,
+					'data-wp-view':    id,
+					'contenteditable': false
+				}
+			});
+		},
+
+		// ### render( scope )
+		// Renders any view instances inside a DOM node `scope`.
+		//
+		// View instances are detected by the presence of wrapper elements.
+		// To generate wrapper elements, pass your content through
+		// `wp.mce.view.toViews( content )`.
+		render: function( scope ) {
+			$( '.wp-view-wrap', scope ).each( function() {
+				var wrapper = $(this),
+					view = wp.mce.view.instance( this );
+
+				if ( ! view )
+					return;
+
+				// Link the real wrapper to the view.
+				view.$wrapper = wrapper;
+				// Render the view.
+				view.render();
+				// Detach the view element to ensure events are not unbound.
+				view.$el.detach();
+
+				// Empty the wrapper, attach the view element to the wrapper,
+				// and add an ending marker to the wrapper to help regexes
+				// scan the HTML string.
+				wrapper.empty().append( view.el ).append('<span data-wp-view-end class="wp-view-end"></span>');
+			});
+		},
+
+		// ### toText( content )
+		// Scans an HTML `content` string and replaces any view instances with
+		// their respective text representations.
+		toText: function( content ) {
+			return content.replace( /<(?:div|span)[^>]+data-wp-view="([^"]+)"[^>]*>.*?<span[^>]+data-wp-view-end[^>]*><\/span><\/(?:div|span)>/g, function( match, id ) {
+				var instance = instances[ id ],
+					view;
+
+				if ( instance )
+					view = wp.mce.view.get( instance.options.viewType );
+
+				return instance && view ? view.text( instance ) : '';
+			});
+		},
+
+		// ### Remove internal TinyMCE attributes.
+		removeInternalAttrs: function( attrs ) {
+			var result = {};
+			_.each( attrs, function( value, attr ) {
+				if ( -1 === attr.indexOf('data-mce') )
+					result[ attr ] = value;
+			});
+			return result;
+		},
+
+		// ### Parse an attribute string and removes internal TinyMCE attributes.
+		attrs: function( content ) {
+			return wp.mce.view.removeInternalAttrs( wp.html.attrs( content ) );
+		},
+
+		// ### instance( scope )
+		//
+		// Accepts a MCE view wrapper `node` (i.e. a node with the
+		// `wp-view-wrap` class).
+		instance: function( node ) {
+			var id = $( node ).data('wp-view');
+
+			if ( id )
+				return instances[ id ];
+		},
+
+		// ### Select a view.
+		//
+		// Accepts a MCE view wrapper `node` (i.e. a node with the
+		// `wp-view-wrap` class).
+		select: function( node ) {
+			var $node = $(node);
+
+			// Bail if node is already selected.
+			if ( $node.hasClass('selected') )
+				return;
+
+			$node.addClass('selected');
+			$( node.firstChild ).trigger('select');
+		},
+
+		// ### Deselect a view.
+		//
+		// Accepts a MCE view wrapper `node` (i.e. a node with the
+		// `wp-view-wrap` class).
+		deselect: function( node ) {
+			var $node = $(node);
+
+			// Bail if node is already selected.
+			if ( ! $node.hasClass('selected') )
+				return;
+
+			$node.removeClass('selected');
+			$( node.firstChild ).trigger('deselect');
+		}
+	};
+
+}(jQuery));
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-includes/js/mce-view.min.js	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,1 @@
+window.wp=window.wp||{};(function(b){var a={},c={};wp.mce=wp.mce||{};wp.mce.view={defaults:{pattern:{view:Backbone.View,text:function(d){return d.options.original},toView:function(e){if(!this.pattern){return}this.pattern.lastIndex=0;var d=this.pattern.exec(e);if(!d){return}return{index:d.index,content:d[0],options:{original:d[0],results:d}}}},shortcode:{view:Backbone.View,text:function(d){return d.options.shortcode.string()},toView:function(e){var d=wp.shortcode.next(this.shortcode,e);if(!d){return}return{index:d.index,content:d.content,options:{shortcode:d.shortcode}}}}},add:function(i,e){var g,d,h,f;if(e.extend){g=wp.mce.view.get(e.extend)}else{if(e.shortcode){g=wp.mce.view.defaults.shortcode}else{g=wp.mce.view.defaults.pattern}}_.defaults(e,g);e.id=i;f={remove:function(){delete c[this.el.id];this.$el.parent().remove();if(d){d.apply(this,arguments)}return this}};if(_.isFunction(e.view)){h=e.view}else{h=g.view;d=e.view.remove;_.defaults(f,e.view)}if(!d&&!h._mceview){d=h.prototype.remove}e.view=h.extend(f,{_mceview:true});a[i]=e},get:function(d){return a[d]},remove:function(d){delete a[d]},toViews:function(e){var d=[{content:e}],f;_.each(a,function(h,g){f=d.slice();d=[];_.each(f,function(k){var j=k.content,i;if(k.processed){d.push(k);return}while(j&&(i=h.toView(j))){if(i.index){d.push({content:j.substring(0,i.index)})}d.push({content:wp.mce.view.toView(g,i.options),processed:true});j=j.slice(i.index+i.content.length)}if(j){d.push({content:j})}})});return _.pluck(d,"content").join("")},toView:function(e,g){var f=wp.mce.view.get(e),d,h;if(!f){return""}d=new f.view(_.extend(g||{},{viewType:e}));h=d.el.id=d.el.id||_.uniqueId("__wpmce-");c[h]=d;d.$wrapper=b();return wp.html.string({tag:"span"===d.tagName?"span":"div",attrs:{"class":"wp-view-wrap wp-view-type-"+e,"data-wp-view":h,contenteditable:false}})},render:function(d){b(".wp-view-wrap",d).each(function(){var f=b(this),e=wp.mce.view.instance(this);if(!e){return}e.$wrapper=f;e.render();e.$el.detach();f.empty().append(e.el).append('<span data-wp-view-end class="wp-view-end"></span>')})},toText:function(d){return d.replace(/<(?:div|span)[^>]+data-wp-view="([^"]+)"[^>]*>.*?<span[^>]+data-wp-view-end[^>]*><\/span><\/(?:div|span)>/g,function(g,h){var e=c[h],f;if(e){f=wp.mce.view.get(e.options.viewType)}return e&&f?f.text(e):""})},removeInternalAttrs:function(e){var d={};_.each(e,function(g,f){if(-1===f.indexOf("data-mce")){d[f]=g}});return d},attrs:function(d){return wp.mce.view.removeInternalAttrs(wp.html.attrs(d))},instance:function(d){var e=b(d).data("wp-view");if(e){return c[e]}},select:function(e){var d=b(e);if(d.hasClass("selected")){return}d.addClass("selected");b(e.firstChild).trigger("select")},deselect:function(e){var d=b(e);if(!d.hasClass("selected")){return}d.removeClass("selected");b(e.firstChild).trigger("deselect")}}}(jQuery));
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-includes/js/media-editor.js	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,646 @@
+// WordPress, TinyMCE, and Media
+// -----------------------------
+(function($){
+	// Stores the editors' `wp.media.controller.Frame` instances.
+	var workflows = {};
+
+	wp.media.string = {
+		// Joins the `props` and `attachment` objects,
+		// outputting the proper object format based on the
+		// attachment's type.
+		props: function( props, attachment ) {
+			var link, linkUrl, size, sizes, fallbacks;
+
+			// Final fallbacks run after all processing has been completed.
+			fallbacks = function( props ) {
+				// Generate alt fallbacks and strip tags.
+				if ( 'image' === props.type && ! props.alt ) {
+					props.alt = props.caption || props.title || '';
+					props.alt = props.alt.replace( /<\/?[^>]+>/g, '' );
+				}
+
+				return props;
+			};
+
+			props = props ? _.clone( props ) : {};
+
+			if ( attachment && attachment.type )
+				props.type = attachment.type;
+
+			if ( 'image' === props.type ) {
+				props = _.defaults( props || {}, {
+					align:   getUserSetting( 'align', 'none' ),
+					size:    getUserSetting( 'imgsize', 'medium' ),
+					url:     '',
+					classes: []
+				});
+			}
+
+			// All attachment-specific settings follow.
+			if ( ! attachment )
+				return fallbacks( props );
+
+			props.title = props.title || attachment.title;
+
+			link = props.link || getUserSetting( 'urlbutton', 'post' );
+			if ( 'file' === link )
+				linkUrl = attachment.url;
+			else if ( 'post' === link )
+				linkUrl = attachment.link;
+			else if ( 'custom' === link )
+				linkUrl = props.linkUrl;
+			props.linkUrl = linkUrl || '';
+
+			// Format properties for images.
+			if ( 'image' === attachment.type ) {
+				props.classes.push( 'wp-image-' + attachment.id );
+
+				sizes = attachment.sizes;
+				size = sizes && sizes[ props.size ] ? sizes[ props.size ] : attachment;
+
+				_.extend( props, _.pick( attachment, 'align', 'caption', 'alt' ), {
+					width:     size.width,
+					height:    size.height,
+					src:       size.url,
+					captionId: 'attachment_' + attachment.id
+				});
+
+			// Format properties for non-images.
+			} else {
+				props.title = props.title || attachment.filename;
+				props.rel = props.rel || 'attachment wp-att-' + attachment.id;
+			}
+
+			return fallbacks( props );
+		},
+
+		link: function( props, attachment ) {
+			var options;
+
+			props = wp.media.string.props( props, attachment );
+
+			options = {
+				tag:     'a',
+				content: props.title,
+				attrs:   {
+					href: props.linkUrl
+				}
+			};
+
+			if ( props.rel )
+				options.attrs.rel = props.rel;
+
+			return wp.html.string( options );
+		},
+
+		image: function( props, attachment ) {
+			var img = {},
+				options, classes, shortcode, html;
+
+			props = wp.media.string.props( props, attachment );
+			classes = props.classes || [];
+
+			img.src = props.url;
+			_.extend( img, _.pick( props, 'width', 'height', 'alt' ) );
+
+			// Only assign the align class to the image if we're not printing
+			// a caption, since the alignment is sent to the shortcode.
+			if ( props.align && ! props.caption )
+				classes.push( 'align' + props.align );
+
+			if ( props.size )
+				classes.push( 'size-' + props.size );
+
+			img['class'] = _.compact( classes ).join(' ');
+
+			// Generate `img` tag options.
+			options = {
+				tag:    'img',
+				attrs:  img,
+				single: true
+			};
+
+			// Generate the `a` element options, if they exist.
+			if ( props.linkUrl ) {
+				options = {
+					tag:   'a',
+					attrs: {
+						href: props.linkUrl
+					},
+					content: options
+				};
+			}
+
+			html = wp.html.string( options );
+
+			// Generate the caption shortcode.
+			if ( props.caption ) {
+				shortcode = {};
+
+				if ( img.width )
+					shortcode.width = img.width;
+
+				if ( props.captionId )
+					shortcode.id = props.captionId;
+
+				if ( props.align )
+					shortcode.align = 'align' + props.align;
+
+				html = wp.shortcode.string({
+					tag:     'caption',
+					attrs:   shortcode,
+					content: html + ' ' + props.caption
+				});
+			}
+
+			return html;
+		}
+	};
+
+	wp.media.gallery = (function() {
+		var galleries = {};
+
+		return {
+			defaults: {
+				order:      'ASC',
+				id:         wp.media.view.settings.post.id,
+				itemtag:    'dl',
+				icontag:    'dt',
+				captiontag: 'dd',
+				columns:    3,
+				size:       'thumbnail',
+				orderby:    'menu_order ID'
+			},
+
+			attachments: function( shortcode ) {
+				var shortcodeString = shortcode.string(),
+					result = galleries[ shortcodeString ],
+					attrs, args, query, others;
+
+				delete galleries[ shortcodeString ];
+
+				if ( result )
+					return result;
+
+				// Fill the default shortcode attributes.
+				attrs = _.defaults( shortcode.attrs.named, wp.media.gallery.defaults );
+				args  = _.pick( attrs, 'orderby', 'order' );
+
+				args.type    = 'image';
+				args.perPage = -1;
+
+				// Mark the `orderby` override attribute.
+				if ( 'rand' === attrs.orderby )
+					attrs._orderbyRandom = true;
+
+				// Map the `orderby` attribute to the corresponding model property.
+				if ( ! attrs.orderby || /^menu_order(?: ID)?$/i.test( attrs.orderby ) )
+					args.orderby = 'menuOrder';
+
+				// Map the `ids` param to the correct query args.
+				if ( attrs.ids ) {
+					args.post__in = attrs.ids.split(',');
+					args.orderby  = 'post__in';
+				} else if ( attrs.include ) {
+					args.post__in = attrs.include.split(',');
+				}
+
+				if ( attrs.exclude )
+					args.post__not_in = attrs.exclude.split(',');
+
+				if ( ! args.post__in )
+					args.uploadedTo = attrs.id;
+
+				// Collect the attributes that were not included in `args`.
+				others = _.omit( attrs, 'id', 'ids', 'include', 'exclude', 'orderby', 'order' );
+
+				query = wp.media.query( args );
+				query.gallery = new Backbone.Model( others );
+				return query;
+			},
+
+			shortcode: function( attachments ) {
+				var props = attachments.props.toJSON(),
+					attrs = _.pick( props, 'orderby', 'order' ),
+					shortcode, clone;
+
+				if ( attachments.gallery )
+					_.extend( attrs, attachments.gallery.toJSON() );
+
+				// Convert all gallery shortcodes to use the `ids` property.
+				// Ignore `post__in` and `post__not_in`; the attachments in
+				// the collection will already reflect those properties.
+				attrs.ids = attachments.pluck('id');
+
+				// Copy the `uploadedTo` post ID.
+				if ( props.uploadedTo )
+					attrs.id = props.uploadedTo;
+
+				// Check if the gallery is randomly ordered.
+				if ( attrs._orderbyRandom )
+					attrs.orderby = 'rand';
+				delete attrs._orderbyRandom;
+
+				// If the `ids` attribute is set and `orderby` attribute
+				// is the default value, clear it for cleaner output.
+				if ( attrs.ids && 'post__in' === attrs.orderby )
+					delete attrs.orderby;
+
+				// Remove default attributes from the shortcode.
+				_.each( wp.media.gallery.defaults, function( value, key ) {
+					if ( value === attrs[ key ] )
+						delete attrs[ key ];
+				});
+
+				shortcode = new wp.shortcode({
+					tag:    'gallery',
+					attrs:  attrs,
+					type:   'single'
+				});
+
+				// Use a cloned version of the gallery.
+				clone = new wp.media.model.Attachments( attachments.models, {
+					props: props
+				});
+				clone.gallery = attachments.gallery;
+				galleries[ shortcode.string() ] = clone;
+
+				return shortcode;
+			},
+
+			edit: function( content ) {
+				var shortcode = wp.shortcode.next( 'gallery', content ),
+					defaultPostId = wp.media.gallery.defaults.id,
+					attachments, selection;
+
+				// Bail if we didn't match the shortcode or all of the content.
+				if ( ! shortcode || shortcode.content !== content )
+					return;
+
+				// Ignore the rest of the match object.
+				shortcode = shortcode.shortcode;
+
+				if ( _.isUndefined( shortcode.get('id') ) && ! _.isUndefined( defaultPostId ) )
+					shortcode.set( 'id', defaultPostId );
+
+				attachments = wp.media.gallery.attachments( shortcode );
+
+				selection = new wp.media.model.Selection( attachments.models, {
+					props:    attachments.props.toJSON(),
+					multiple: true
+				});
+
+				selection.gallery = attachments.gallery;
+
+				// Fetch the query's attachments, and then break ties from the
+				// query to allow for sorting.
+				selection.more().done( function() {
+					// Break ties with the query.
+					selection.props.set({ query: false });
+					selection.unmirror();
+					selection.props.unset('orderby');
+				});
+
+				// Destroy the previous gallery frame.
+				if ( this.frame )
+					this.frame.dispose();
+
+				// Store the current gallery frame.
+				this.frame = wp.media({
+					frame:     'post',
+					state:     'gallery-edit',
+					title:     wp.media.view.l10n.editGalleryTitle,
+					editing:   true,
+					multiple:  true,
+					selection: selection
+				}).open();
+
+				return this.frame;
+			}
+		};
+	}());
+
+	wp.media.featuredImage = {
+		get: function() {
+			return wp.media.view.settings.post.featuredImageId;
+		},
+
+		set: function( id ) {
+			var settings = wp.media.view.settings;
+
+			settings.post.featuredImageId = id;
+
+			wp.media.post( 'set-post-thumbnail', {
+				json:         true,
+				post_id:      settings.post.id,
+				thumbnail_id: settings.post.featuredImageId,
+				_wpnonce:     settings.post.nonce
+			}).done( function( html ) {
+				$( '.inside', '#postimagediv' ).html( html );
+			});
+		},
+
+		frame: function() {
+			if ( this._frame )
+				return this._frame;
+
+			this._frame = wp.media({
+				state: 'featured-image',
+				states: [ new wp.media.controller.FeaturedImage() ]
+			});
+
+			this._frame.on( 'toolbar:create:featured-image', function( toolbar ) {
+				this.createSelectToolbar( toolbar, {
+					text: wp.media.view.l10n.setFeaturedImage
+				});
+			}, this._frame );
+
+			this._frame.state('featured-image').on( 'select', this.select );
+			return this._frame;
+		},
+
+		select: function() {
+			var settings = wp.media.view.settings,
+				selection = this.get('selection').single();
+
+			if ( ! settings.post.featuredImageId )
+				return;
+
+			wp.media.featuredImage.set( selection ? selection.id : -1 );
+		},
+
+		init: function() {
+			// Open the content media manager to the 'featured image' tab when
+			// the post thumbnail is clicked.
+			$('#postimagediv').on( 'click', '#set-post-thumbnail', function( event ) {
+				event.preventDefault();
+				// Stop propagation to prevent thickbox from activating.
+				event.stopPropagation();
+
+				wp.media.featuredImage.frame().open();
+
+			// Update the featured image id when the 'remove' link is clicked.
+			}).on( 'click', '#remove-post-thumbnail', function() {
+				wp.media.view.settings.post.featuredImageId = -1;
+			});
+		}
+	};
+
+	$( wp.media.featuredImage.init );
+
+	wp.media.editor = {
+		insert: function( h ) {
+			var mce = typeof(tinymce) != 'undefined',
+				qt = typeof(QTags) != 'undefined',
+				wpActiveEditor = window.wpActiveEditor,
+				ed;
+
+			// Delegate to the global `send_to_editor` if it exists.
+			// This attempts to play nice with any themes/plugins that have
+			// overridden the insert functionality.
+			if ( window.send_to_editor )
+				return window.send_to_editor.apply( this, arguments );
+
+			if ( ! wpActiveEditor ) {
+				if ( mce && tinymce.activeEditor ) {
+					ed = tinymce.activeEditor;
+					wpActiveEditor = window.wpActiveEditor = ed.id;
+				} else if ( !qt ) {
+					return false;
+				}
+			} else if ( mce ) {
+				if ( tinymce.activeEditor && (tinymce.activeEditor.id == 'mce_fullscreen' || tinymce.activeEditor.id == 'wp_mce_fullscreen') )
+					ed = tinymce.activeEditor;
+				else
+					ed = tinymce.get(wpActiveEditor);
+			}
+
+			if ( ed && !ed.isHidden() ) {
+				// restore caret position on IE
+				if ( tinymce.isIE && ed.windowManager.insertimagebookmark )
+					ed.selection.moveToBookmark(ed.windowManager.insertimagebookmark);
+
+				if ( h.indexOf('[caption') !== -1 ) {
+					if ( ed.wpSetImgCaption )
+						h = ed.wpSetImgCaption(h);
+				} else if ( h.indexOf('[gallery') !== -1 ) {
+					if ( ed.plugins.wpgallery )
+						h = ed.plugins.wpgallery._do_gallery(h);
+				} else if ( h.indexOf('[embed') === 0 ) {
+					if ( ed.plugins.wordpress )
+						h = ed.plugins.wordpress._setEmbed(h);
+				}
+
+				ed.execCommand('mceInsertContent', false, h);
+			} else if ( qt ) {
+				QTags.insertContent(h);
+			} else {
+				document.getElementById(wpActiveEditor).value += h;
+			}
+
+			// If the old thickbox remove function exists, call it in case
+			// a theme/plugin overloaded it.
+			if ( window.tb_remove )
+				try { window.tb_remove(); } catch( e ) {}
+		},
+
+		add: function( id, options ) {
+			var workflow = this.get( id );
+
+			if ( workflow )
+				return workflow;
+
+			workflow = workflows[ id ] = wp.media( _.defaults( options || {}, {
+				frame:    'post',
+				state:    'insert',
+				title:    wp.media.view.l10n.addMedia,
+				multiple: true
+			} ) );
+
+			workflow.on( 'insert', function( selection ) {
+				var state = workflow.state();
+
+				selection = selection || state.get('selection');
+
+				if ( ! selection )
+					return;
+
+				$.when.apply( $, selection.map( function( attachment ) {
+					var display = state.display( attachment ).toJSON();
+					return this.send.attachment( display, attachment.toJSON() );
+				}, this ) ).done( function() {
+					wp.media.editor.insert( _.toArray( arguments ).join("\n\n") );
+				});
+			}, this );
+
+			workflow.state('gallery-edit').on( 'update', function( selection ) {
+				this.insert( wp.media.gallery.shortcode( selection ).string() );
+			}, this );
+
+			workflow.state('embed').on( 'select', function() {
+				var state = workflow.state(),
+					type = state.get('type'),
+					embed = state.props.toJSON();
+
+				embed.url = embed.url || '';
+
+				if ( 'link' === type ) {
+					_.defaults( embed, {
+						title:   embed.url,
+						linkUrl: embed.url
+					});
+
+					this.send.link( embed ).done( function( resp ) {
+						wp.media.editor.insert( resp );
+					});
+
+				} else if ( 'image' === type ) {
+					_.defaults( embed, {
+						title:   embed.url,
+						linkUrl: '',
+						align:   'none',
+						link:    'none'
+					});
+
+					if ( 'none' === embed.link )
+						embed.linkUrl = '';
+					else if ( 'file' === embed.link )
+						embed.linkUrl = embed.url;
+
+					this.insert( wp.media.string.image( embed ) );
+				}
+			}, this );
+
+			workflow.state('featured-image').on( 'select', wp.media.featuredImage.select );
+			workflow.setState( workflow.options.state );
+			return workflow;
+		},
+
+		id: function( id ) {
+			if ( id )
+				return id;
+
+			// If an empty `id` is provided, default to `wpActiveEditor`.
+			id = wpActiveEditor;
+
+			// If that doesn't work, fall back to `tinymce.activeEditor.id`.
+			if ( ! id && typeof tinymce !== 'undefined' && tinymce.activeEditor )
+				id = tinymce.activeEditor.id;
+
+			// Last but not least, fall back to the empty string.
+			id = id || '';
+			return id;
+		},
+
+		get: function( id ) {
+			id = this.id( id );
+			return workflows[ id ];
+		},
+
+		remove: function( id ) {
+			id = this.id( id );
+			delete workflows[ id ];
+		},
+
+		send: {
+			attachment: function( props, attachment ) {
+				var caption = attachment.caption,
+					options, html;
+
+				// If captions are disabled, clear the caption.
+				if ( ! wp.media.view.settings.captions )
+					delete attachment.caption;
+
+				props = wp.media.string.props( props, attachment );
+
+				options = {
+					id:           attachment.id,
+					post_content: attachment.description,
+					post_excerpt: caption
+				};
+
+				if ( props.linkUrl )
+					options.url = props.linkUrl;
+
+				if ( 'image' === attachment.type ) {
+					html = wp.media.string.image( props );
+
+					_.each({
+						align: 'align',
+						size:  'image-size',
+						alt:   'image_alt'
+					}, function( option, prop ) {
+						if ( props[ prop ] )
+							options[ option ] = props[ prop ];
+					});
+
+				} else {
+					html = wp.media.string.link( props );
+					options.post_title = props.title;
+				}
+
+				return wp.media.post( 'send-attachment-to-editor', {
+					nonce:      wp.media.view.settings.nonce.sendToEditor,
+					attachment: options,
+					html:       html,
+					post_id:    wp.media.view.settings.post.id
+				});
+			},
+
+			link: function( embed ) {
+				return wp.media.post( 'send-link-to-editor', {
+					nonce:   wp.media.view.settings.nonce.sendToEditor,
+					src:     embed.linkUrl,
+					title:   embed.title,
+					html:    wp.media.string.link( embed ),
+					post_id: wp.media.view.settings.post.id
+				});
+			}
+		},
+
+		open: function( id ) {
+			var workflow, editor;
+
+			id = this.id( id );
+
+			// Save a bookmark of the caret position in IE.
+			if ( typeof tinymce !== 'undefined' ) {
+				editor = tinymce.get( id );
+
+				if ( tinymce.isIE && editor && ! editor.isHidden() ) {
+					editor.focus();
+					editor.windowManager.insertimagebookmark = editor.selection.getBookmark();
+				}
+			}
+
+			workflow = this.get( id );
+
+			// Initialize the editor's workflow if we haven't yet.
+			if ( ! workflow )
+				workflow = this.add( id );
+
+			return workflow.open();
+		},
+
+		init: function() {
+			$(document.body).on( 'click', '.insert-media', function( event ) {
+				var $this = $(this),
+					editor = $this.data('editor');
+
+				event.preventDefault();
+
+				// Remove focus from the `.insert-media` button.
+				// Prevents Opera from showing the outline of the button
+				// above the modal.
+				//
+				// See: http://core.trac.wordpress.org/ticket/22445
+				$this.blur();
+
+				wp.media.editor.open( editor );
+			});
+		}
+	};
+
+	_.bindAll( wp.media.editor, 'open' );
+	$( wp.media.editor.init );
+}(jQuery));
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-includes/js/media-editor.min.js	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,1 @@
+(function(b){var a={};wp.media.string={props:function(f,i){var h,c,e,g,d;d=function(j){if("image"===j.type&&!j.alt){j.alt=j.caption||j.title||"";j.alt=j.alt.replace(/<\/?[^>]+>/g,"")}return j};f=f?_.clone(f):{};if(i&&i.type){f.type=i.type}if("image"===f.type){f=_.defaults(f||{},{align:getUserSetting("align","none"),size:getUserSetting("imgsize","medium"),url:"",classes:[]})}if(!i){return d(f)}f.title=f.title||i.title;h=f.link||getUserSetting("urlbutton","post");if("file"===h){c=i.url}else{if("post"===h){c=i.link}else{if("custom"===h){c=f.linkUrl}}}f.linkUrl=c||"";if("image"===i.type){f.classes.push("wp-image-"+i.id);g=i.sizes;e=g&&g[f.size]?g[f.size]:i;_.extend(f,_.pick(i,"align","caption","alt"),{width:e.width,height:e.height,src:e.url,captionId:"attachment_"+i.id})}else{f.title=f.title||i.filename;f.rel=f.rel||"attachment wp-att-"+i.id}return d(f)},link:function(d,e){var c;d=wp.media.string.props(d,e);c={tag:"a",content:d.title,attrs:{href:d.linkUrl}};if(d.rel){c.attrs.rel=d.rel}return wp.html.string(c)},image:function(g,i){var c={},d,f,h,e;g=wp.media.string.props(g,i);f=g.classes||[];c.src=g.url;_.extend(c,_.pick(g,"width","height","alt"));if(g.align&&!g.caption){f.push("align"+g.align)}if(g.size){f.push("size-"+g.size)}c["class"]=_.compact(f).join(" ");d={tag:"img",attrs:c,single:true};if(g.linkUrl){d={tag:"a",attrs:{href:g.linkUrl},content:d}}e=wp.html.string(d);if(g.caption){h={};if(c.width){h.width=c.width}if(g.captionId){h.id=g.captionId}if(g.align){h.align="align"+g.align}e=wp.shortcode.string({tag:"caption",attrs:h,content:e+" "+g.caption})}return e}};wp.media.gallery=(function(){var c={};return{defaults:{order:"ASC",id:wp.media.view.settings.post.id,itemtag:"dl",icontag:"dt",captiontag:"dd",columns:3,size:"thumbnail",orderby:"menu_order ID"},attachments:function(h){var j=h.string(),d=c[j],f,e,i,g;delete c[j];if(d){return d}f=_.defaults(h.attrs.named,wp.media.gallery.defaults);e=_.pick(f,"orderby","order");e.type="image";e.perPage=-1;if("rand"===f.orderby){f._orderbyRandom=true}if(!f.orderby||/^menu_order(?: ID)?$/i.test(f.orderby)){e.orderby="menuOrder"}if(f.ids){e.post__in=f.ids.split(",");e.orderby="post__in"}else{if(f.include){e.post__in=f.include.split(",")}}if(f.exclude){e.post__not_in=f.exclude.split(",")}if(!e.post__in){e.uploadedTo=f.id}g=_.omit(f,"id","ids","include","exclude","orderby","order");i=wp.media.query(e);i.gallery=new Backbone.Model(g);return i},shortcode:function(d){var f=d.props.toJSON(),e=_.pick(f,"orderby","order"),g,h;if(d.gallery){_.extend(e,d.gallery.toJSON())}e.ids=d.pluck("id");if(f.uploadedTo){e.id=f.uploadedTo}if(e._orderbyRandom){e.orderby="rand"}delete e._orderbyRandom;if(e.ids&&"post__in"===e.orderby){delete e.orderby}_.each(wp.media.gallery.defaults,function(j,i){if(j===e[i]){delete e[i]}});g=new wp.shortcode({tag:"gallery",attrs:e,type:"single"});h=new wp.media.model.Attachments(d.models,{props:f});h.gallery=d.gallery;c[g.string()]=h;return g},edit:function(g){var f=wp.shortcode.next("gallery",g),h=wp.media.gallery.defaults.id,d,e;if(!f||f.content!==g){return}f=f.shortcode;if(_.isUndefined(f.get("id"))&&!_.isUndefined(h)){f.set("id",h)}d=wp.media.gallery.attachments(f);e=new wp.media.model.Selection(d.models,{props:d.props.toJSON(),multiple:true});e.gallery=d.gallery;e.more().done(function(){e.props.set({query:false});e.unmirror();e.props.unset("orderby")});if(this.frame){this.frame.dispose()}this.frame=wp.media({frame:"post",state:"gallery-edit",title:wp.media.view.l10n.editGalleryTitle,editing:true,multiple:true,selection:e}).open();return this.frame}}}());wp.media.featuredImage={get:function(){return wp.media.view.settings.post.featuredImageId},set:function(d){var c=wp.media.view.settings;c.post.featuredImageId=d;wp.media.post("set-post-thumbnail",{json:true,post_id:c.post.id,thumbnail_id:c.post.featuredImageId,_wpnonce:c.post.nonce}).done(function(e){b(".inside","#postimagediv").html(e)})},frame:function(){if(this._frame){return this._frame}this._frame=wp.media({state:"featured-image",states:[new wp.media.controller.FeaturedImage()]});this._frame.on("toolbar:create:featured-image",function(c){this.createSelectToolbar(c,{text:wp.media.view.l10n.setFeaturedImage})},this._frame);this._frame.state("featured-image").on("select",this.select);return this._frame},select:function(){var d=wp.media.view.settings,c=this.get("selection").single();if(!d.post.featuredImageId){return}wp.media.featuredImage.set(c?c.id:-1)},init:function(){b("#postimagediv").on("click","#set-post-thumbnail",function(c){c.preventDefault();c.stopPropagation();wp.media.featuredImage.frame().open()}).on("click","#remove-post-thumbnail",function(){wp.media.view.settings.post.featuredImageId=-1})}};b(wp.media.featuredImage.init);wp.media.editor={insert:function(g){var d=typeof(tinymce)!="undefined",j=typeof(QTags)!="undefined",c=window.wpActiveEditor,f;if(window.send_to_editor){return window.send_to_editor.apply(this,arguments)}if(!c){if(d&&tinymce.activeEditor){f=tinymce.activeEditor;c=window.wpActiveEditor=f.id}else{if(!j){return false}}}else{if(d){if(tinymce.activeEditor&&(tinymce.activeEditor.id=="mce_fullscreen"||tinymce.activeEditor.id=="wp_mce_fullscreen")){f=tinymce.activeEditor}else{f=tinymce.get(c)}}}if(f&&!f.isHidden()){if(tinymce.isIE&&f.windowManager.insertimagebookmark){f.selection.moveToBookmark(f.windowManager.insertimagebookmark)}if(g.indexOf("[caption")!==-1){if(f.wpSetImgCaption){g=f.wpSetImgCaption(g)}}else{if(g.indexOf("[gallery")!==-1){if(f.plugins.wpgallery){g=f.plugins.wpgallery._do_gallery(g)}}else{if(g.indexOf("[embed")===0){if(f.plugins.wordpress){g=f.plugins.wordpress._setEmbed(g)}}}}f.execCommand("mceInsertContent",false,g)}else{if(j){QTags.insertContent(g)}else{document.getElementById(c).value+=g}}if(window.tb_remove){try{window.tb_remove()}catch(i){}}},add:function(e,c){var d=this.get(e);if(d){return d}d=a[e]=wp.media(_.defaults(c||{},{frame:"post",state:"insert",title:wp.media.view.l10n.addMedia,multiple:true}));d.on("insert",function(f){var g=d.state();f=f||g.get("selection");if(!f){return}b.when.apply(b,f.map(function(i){var h=g.display(i).toJSON();return this.send.attachment(h,i.toJSON())},this)).done(function(){wp.media.editor.insert(_.toArray(arguments).join("\n\n"))})},this);d.state("gallery-edit").on("update",function(f){this.insert(wp.media.gallery.shortcode(f).string())},this);d.state("embed").on("select",function(){var g=d.state(),f=g.get("type"),h=g.props.toJSON();h.url=h.url||"";if("link"===f){_.defaults(h,{title:h.url,linkUrl:h.url});this.send.link(h).done(function(i){wp.media.editor.insert(i)})}else{if("image"===f){_.defaults(h,{title:h.url,linkUrl:"",align:"none",link:"none"});if("none"===h.link){h.linkUrl=""}else{if("file"===h.link){h.linkUrl=h.url}}this.insert(wp.media.string.image(h))}}},this);d.state("featured-image").on("select",wp.media.featuredImage.select);d.setState(d.options.state);return d},id:function(c){if(c){return c}c=wpActiveEditor;if(!c&&typeof tinymce!=="undefined"&&tinymce.activeEditor){c=tinymce.activeEditor.id}c=c||"";return c},get:function(c){c=this.id(c);return a[c]},remove:function(c){c=this.id(c);delete a[c]},send:{attachment:function(f,g){var c=g.caption,d,e;if(!wp.media.view.settings.captions){delete g.caption}f=wp.media.string.props(f,g);d={id:g.id,post_content:g.description,post_excerpt:c};if(f.linkUrl){d.url=f.linkUrl}if("image"===g.type){e=wp.media.string.image(f);_.each({align:"align",size:"image-size",alt:"image_alt"},function(h,i){if(f[i]){d[h]=f[i]}})}else{e=wp.media.string.link(f);d.post_title=f.title}return wp.media.post("send-attachment-to-editor",{nonce:wp.media.view.settings.nonce.sendToEditor,attachment:d,html:e,post_id:wp.media.view.settings.post.id})},link:function(c){return wp.media.post("send-link-to-editor",{nonce:wp.media.view.settings.nonce.sendToEditor,src:c.linkUrl,title:c.title,html:wp.media.string.link(c),post_id:wp.media.view.settings.post.id})}},open:function(e){var d,c;e=this.id(e);if(typeof tinymce!=="undefined"){c=tinymce.get(e);if(tinymce.isIE&&c&&!c.isHidden()){c.focus();c.windowManager.insertimagebookmark=c.selection.getBookmark()}}d=this.get(e);if(!d){d=this.add(e)}return d.open()},init:function(){b(document.body).on("click",".insert-media",function(d){var e=b(this),c=e.data("editor");d.preventDefault();e.blur();wp.media.editor.open(c)})}};_.bindAll(wp.media.editor,"open");b(wp.media.editor.init)}(jQuery));
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-includes/js/media-models.js	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,908 @@
+window.wp = window.wp || {};
+
+(function($){
+	var Attachment, Attachments, Query, compare, l10n, media;
+
+	/**
+	 * wp.media( attributes )
+	 *
+	 * Handles the default media experience. Automatically creates
+	 * and opens a media frame, and returns the result.
+	 * Does nothing if the controllers do not exist.
+	 *
+	 * @param  {object} attributes The properties passed to the main media controller.
+	 * @return {object}            A media workflow.
+	 */
+	media = wp.media = function( attributes ) {
+		var MediaFrame = media.view.MediaFrame,
+			frame;
+
+		if ( ! MediaFrame )
+			return;
+
+		attributes = _.defaults( attributes || {}, {
+			frame: 'select'
+		});
+
+		if ( 'select' === attributes.frame && MediaFrame.Select )
+			frame = new MediaFrame.Select( attributes );
+		else if ( 'post' === attributes.frame && MediaFrame.Post )
+			frame = new MediaFrame.Post( attributes );
+
+		delete attributes.frame;
+
+		return frame;
+	};
+
+	_.extend( media, { model: {}, view: {}, controller: {}, frames: {} });
+
+	// Link any localized strings.
+	l10n = media.model.l10n = typeof _wpMediaModelsL10n === 'undefined' ? {} : _wpMediaModelsL10n;
+
+	// Link any settings.
+	media.model.settings = l10n.settings || {};
+	delete l10n.settings;
+
+	/**
+	 * ========================================================================
+	 * UTILITIES
+	 * ========================================================================
+	 */
+
+	/**
+	 * A basic comparator.
+	 *
+	 * @param  {mixed}  a  The primary parameter to compare.
+	 * @param  {mixed}  b  The primary parameter to compare.
+	 * @param  {string} ac The fallback parameter to compare, a's cid.
+	 * @param  {string} bc The fallback parameter to compare, b's cid.
+	 * @return {number}    -1: a should come before b.
+	 *                      0: a and b are of the same rank.
+	 *                      1: b should come before a.
+	 */
+	compare = function( a, b, ac, bc ) {
+		if ( _.isEqual( a, b ) )
+			return ac === bc ? 0 : (ac > bc ? -1 : 1);
+		else
+			return a > b ? -1 : 1;
+	};
+
+	_.extend( media, {
+		/**
+		 * media.template( id )
+		 *
+		 * Fetches a template by id.
+		 *
+		 * @param  {string} id   A string that corresponds to a DOM element with an id prefixed with "tmpl-".
+		 *                       For example, "attachment" maps to "tmpl-attachment".
+		 * @return {function}    A function that lazily-compiles the template requested.
+		 */
+		template: _.memoize( function( id ) {
+			var compiled,
+				options = {
+					evaluate:    /<#([\s\S]+?)#>/g,
+					interpolate: /\{\{\{([\s\S]+?)\}\}\}/g,
+					escape:      /\{\{([^\}]+?)\}\}(?!\})/g,
+					variable:    'data'
+				};
+
+			return function( data ) {
+				compiled = compiled || _.template( $( '#tmpl-' + id ).html(), null, options );
+				return compiled( data );
+			};
+		}),
+
+		/**
+		 * media.post( [action], [data] )
+		 *
+		 * Sends a POST request to WordPress.
+		 *
+		 * @param  {string} action The slug of the action to fire in WordPress.
+		 * @param  {object} data   The data to populate $_POST with.
+		 * @return {$.promise}     A jQuery promise that represents the request.
+		 */
+		post: function( action, data ) {
+			return media.ajax({
+				data: _.isObject( action ) ? action : _.extend( data || {}, { action: action })
+			});
+		},
+
+		/**
+		 * media.ajax( [action], [options] )
+		 *
+		 * Sends a POST request to WordPress.
+		 *
+		 * @param  {string} action  The slug of the action to fire in WordPress.
+		 * @param  {object} options The options passed to jQuery.ajax.
+		 * @return {$.promise}      A jQuery promise that represents the request.
+		 */
+		ajax: function( action, options ) {
+			if ( _.isObject( action ) ) {
+				options = action;
+			} else {
+				options = options || {};
+				options.data = _.extend( options.data || {}, { action: action });
+			}
+
+			options = _.defaults( options || {}, {
+				type:    'POST',
+				url:     media.model.settings.ajaxurl,
+				context: this
+			});
+
+			return $.Deferred( function( deferred ) {
+				// Transfer success/error callbacks.
+				if ( options.success )
+					deferred.done( options.success );
+				if ( options.error )
+					deferred.fail( options.error );
+
+				delete options.success;
+				delete options.error;
+
+				// Use with PHP's wp_send_json_success() and wp_send_json_error()
+				$.ajax( options ).done( function( response ) {
+					// Treat a response of `1` as successful for backwards
+					// compatibility with existing handlers.
+					if ( response === '1' || response === 1 )
+						response = { success: true };
+
+					if ( _.isObject( response ) && ! _.isUndefined( response.success ) )
+						deferred[ response.success ? 'resolveWith' : 'rejectWith' ]( this, [response.data] );
+					else
+						deferred.rejectWith( this, [response] );
+				}).fail( function() {
+					deferred.rejectWith( this, arguments );
+				});
+			}).promise();
+		},
+
+		// Scales a set of dimensions to fit within bounding dimensions.
+		fit: function( dimensions ) {
+			var width     = dimensions.width,
+				height    = dimensions.height,
+				maxWidth  = dimensions.maxWidth,
+				maxHeight = dimensions.maxHeight,
+				constraint;
+
+			// Compare ratios between the two values to determine which
+			// max to constrain by. If a max value doesn't exist, then the
+			// opposite side is the constraint.
+			if ( ! _.isUndefined( maxWidth ) && ! _.isUndefined( maxHeight ) ) {
+				constraint = ( width / height > maxWidth / maxHeight ) ? 'width' : 'height';
+			} else if ( _.isUndefined( maxHeight ) ) {
+				constraint = 'width';
+			} else if (  _.isUndefined( maxWidth ) && height > maxHeight ) {
+				constraint = 'height';
+			}
+
+			// If the value of the constrained side is larger than the max,
+			// then scale the values. Otherwise return the originals; they fit.
+			if ( 'width' === constraint && width > maxWidth ) {
+				return {
+					width : maxWidth,
+					height: Math.round( maxWidth * height / width )
+				};
+			} else if ( 'height' === constraint && height > maxHeight ) {
+				return {
+					width : Math.round( maxHeight * width / height ),
+					height: maxHeight
+				};
+			} else {
+				return {
+					width : width,
+					height: height
+				};
+			}
+		},
+
+		// Truncates a string by injecting an ellipsis into the middle.
+		// Useful for filenames.
+		truncate: function( string, length, replacement ) {
+			length = length || 30;
+			replacement = replacement || '&hellip;';
+
+			if ( string.length <= length )
+				return string;
+
+			return string.substr( 0, length / 2 ) + replacement + string.substr( -1 * length / 2 );
+		}
+	});
+
+
+	/**
+	 * ========================================================================
+	 * MODELS
+	 * ========================================================================
+	 */
+
+	 /**
+	  * wp.media.attachment
+	  */
+	 media.attachment = function( id ) {
+		return Attachment.get( id );
+	 };
+
+	/**
+	 * wp.media.model.Attachment
+	 */
+	Attachment = media.model.Attachment = Backbone.Model.extend({
+		sync: function( method, model, options ) {
+			// If the attachment does not yet have an `id`, return an instantly
+			// rejected promise. Otherwise, all of our requests will fail.
+			if ( _.isUndefined( this.id ) )
+				return $.Deferred().rejectWith( this ).promise();
+
+			// Overload the `read` request so Attachment.fetch() functions correctly.
+			if ( 'read' === method ) {
+				options = options || {};
+				options.context = this;
+				options.data = _.extend( options.data || {}, {
+					action: 'get-attachment',
+					id: this.id
+				});
+				return media.ajax( options );
+
+			// Overload the `update` request so properties can be saved.
+			} else if ( 'update' === method ) {
+				// If we do not have the necessary nonce, fail immeditately.
+				if ( ! this.get('nonces') || ! this.get('nonces').update )
+					return $.Deferred().rejectWith( this ).promise();
+
+				options = options || {};
+				options.context = this;
+
+				// Set the action and ID.
+				options.data = _.extend( options.data || {}, {
+					action:  'save-attachment',
+					id:      this.id,
+					nonce:   this.get('nonces').update,
+					post_id: media.model.settings.post.id
+				});
+
+				// Record the values of the changed attributes.
+				if ( options.changes ) {
+					_.each( options.changes, function( value, key ) {
+						options.changes[ key ] = this.get( key );
+					}, this );
+
+					options.data.changes = options.changes;
+					delete options.changes;
+				}
+
+				return media.ajax( options );
+
+			// Overload the `delete` request so attachments can be removed.
+			// This will permanently delete an attachment.
+			} else if ( 'delete' === method ) {
+				options = options || {};
+
+				if ( ! options.wait )
+					this.destroyed = true;
+
+				options.context = this;
+				options.data = _.extend( options.data || {}, {
+					action:   'delete-post',
+					id:       this.id,
+					_wpnonce: this.get('nonces')['delete']
+				});
+
+				return media.ajax( options ).done( function() {
+					this.destroyed = true;
+				}).fail( function() {
+					this.destroyed = false;
+				});
+			}
+		},
+
+		parse: function( resp, xhr ) {
+			if ( ! resp )
+				return resp;
+
+			// Convert date strings into Date objects.
+			resp.date = new Date( resp.date );
+			resp.modified = new Date( resp.modified );
+			return resp;
+		},
+
+		saveCompat: function( data, options ) {
+			var model = this;
+
+			// If we do not have the necessary nonce, fail immeditately.
+			if ( ! this.get('nonces') || ! this.get('nonces').update )
+				return $.Deferred().rejectWith( this ).promise();
+
+			return media.post( 'save-attachment-compat', _.defaults({
+				id:      this.id,
+				nonce:   this.get('nonces').update,
+				post_id: media.model.settings.post.id
+			}, data ) ).done( function( resp, status, xhr ) {
+				model.set( model.parse( resp, xhr ), options );
+			});
+		}
+	}, {
+		create: function( attrs ) {
+			return Attachments.all.push( attrs );
+		},
+
+		get: _.memoize( function( id, attachment ) {
+			return Attachments.all.push( attachment || { id: id } );
+		})
+	});
+
+	/**
+	 * wp.media.model.Attachments
+	 */
+	Attachments = media.model.Attachments = Backbone.Collection.extend({
+		model: Attachment,
+
+		initialize: function( models, options ) {
+			options = options || {};
+
+			this.props   = new Backbone.Model();
+			this.filters = options.filters || {};
+
+			// Bind default `change` events to the `props` model.
+			this.props.on( 'change', this._changeFilteredProps, this );
+
+			this.props.on( 'change:order',   this._changeOrder,   this );
+			this.props.on( 'change:orderby', this._changeOrderby, this );
+			this.props.on( 'change:query',   this._changeQuery,   this );
+
+			// Set the `props` model and fill the default property values.
+			this.props.set( _.defaults( options.props || {} ) );
+
+			// Observe another `Attachments` collection if one is provided.
+			if ( options.observe )
+				this.observe( options.observe );
+		},
+
+		// Automatically sort the collection when the order changes.
+		_changeOrder: function( model, order ) {
+			if ( this.comparator )
+				this.sort();
+		},
+
+		// Set the default comparator only when the `orderby` property is set.
+		_changeOrderby: function( model, orderby ) {
+			// If a different comparator is defined, bail.
+			if ( this.comparator && this.comparator !== Attachments.comparator )
+				return;
+
+			if ( orderby && 'post__in' !== orderby )
+				this.comparator = Attachments.comparator;
+			else
+				delete this.comparator;
+		},
+
+		// If the `query` property is set to true, query the server using
+		// the `props` values, and sync the results to this collection.
+		_changeQuery: function( model, query ) {
+			if ( query ) {
+				this.props.on( 'change', this._requery, this );
+				this._requery();
+			} else {
+				this.props.off( 'change', this._requery, this );
+			}
+		},
+
+		_changeFilteredProps: function( model, options ) {
+			// If this is a query, updating the collection will be handled by
+			// `this._requery()`.
+			if ( this.props.get('query') )
+				return;
+
+			var changed = _.chain( options.changes ).map( function( t, prop ) {
+				var filter = Attachments.filters[ prop ],
+					term = model.get( prop );
+
+				if ( ! filter )
+					return;
+
+				if ( term && ! this.filters[ prop ] )
+					this.filters[ prop ] = filter;
+				else if ( ! term && this.filters[ prop ] === filter )
+					delete this.filters[ prop ];
+				else
+					return;
+
+				// Record the change.
+				return true;
+			}, this ).any().value();
+
+			if ( ! changed )
+				return;
+
+			// If no `Attachments` model is provided to source the searches
+			// from, then automatically generate a source from the existing
+			// models.
+			if ( ! this._source )
+				this._source = new Attachments( this.models );
+
+			this.reset( this._source.filter( this.validator, this ) );
+		},
+
+		validateDestroyed: false,
+
+		validator: function( attachment ) {
+			if ( ! this.validateDestroyed && attachment.destroyed )
+				return false;
+			return _.all( this.filters, function( filter, key ) {
+				return !! filter.call( this, attachment );
+			}, this );
+		},
+
+		validate: function( attachment, options ) {
+			var valid = this.validator( attachment ),
+				hasAttachment = !! this.getByCid( attachment.cid );
+
+			if ( ! valid && hasAttachment )
+				this.remove( attachment, options );
+			else if ( valid && ! hasAttachment )
+				this.add( attachment, options );
+
+			return this;
+		},
+
+		validateAll: function( attachments, options ) {
+			options = options || {};
+
+			_.each( attachments.models, function( attachment ) {
+				this.validate( attachment, { silent: true });
+			}, this );
+
+			if ( ! options.silent )
+				this.trigger( 'reset', this, options );
+
+			return this;
+		},
+
+		observe: function( attachments ) {
+			this.observers = this.observers || [];
+			this.observers.push( attachments );
+
+			attachments.on( 'add change remove', this._validateHandler, this );
+			attachments.on( 'reset', this._validateAllHandler, this );
+
+			this.validateAll( attachments );
+			return this;
+		},
+
+		unobserve: function( attachments ) {
+			if ( attachments ) {
+				attachments.off( null, null, this );
+				this.observers = _.without( this.observers, attachments );
+
+			} else {
+				_.each( this.observers, function( attachments ) {
+					attachments.off( null, null, this );
+				}, this );
+				delete this.observers;
+			}
+
+			return this;
+		},
+
+		_validateHandler: function( attachment, attachments, options ) {
+			// If we're not mirroring this `attachments` collection,
+			// only retain the `silent` option.
+			options = attachments === this.mirroring ? options : {
+				silent: options && options.silent
+			};
+
+			return this.validate( attachment, options );
+		},
+
+		_validateAllHandler: function( attachments, options ) {
+			return this.validateAll( attachments, options );
+		},
+
+		mirror: function( attachments ) {
+			if ( this.mirroring && this.mirroring === attachments )
+				return this;
+
+			this.unmirror();
+			this.mirroring = attachments;
+
+			// Clear the collection silently. A `reset` event will be fired
+			// when `observe()` calls `validateAll()`.
+			this.reset( [], { silent: true } );
+			this.observe( attachments );
+
+			return this;
+		},
+
+		unmirror: function() {
+			if ( ! this.mirroring )
+				return;
+
+			this.unobserve( this.mirroring );
+			delete this.mirroring;
+		},
+
+		more: function( options ) {
+			var deferred = $.Deferred(),
+				mirroring = this.mirroring,
+				attachments = this;
+
+			if ( ! mirroring || ! mirroring.more )
+				return deferred.resolveWith( this ).promise();
+
+			// If we're mirroring another collection, forward `more` to
+			// the mirrored collection. Account for a race condition by
+			// checking if we're still mirroring that collection when
+			// the request resolves.
+			mirroring.more( options ).done( function() {
+				if ( this === attachments.mirroring )
+					deferred.resolveWith( this );
+			});
+
+			return deferred.promise();
+		},
+
+		hasMore: function() {
+			return this.mirroring ? this.mirroring.hasMore() : false;
+		},
+
+		parse: function( resp, xhr ) {
+			return _.map( resp, function( attrs ) {
+				var attachment = Attachment.get( attrs.id );
+				return attachment.set( attachment.parse( attrs, xhr ) );
+			});
+		},
+
+		_requery: function() {
+			if ( this.props.get('query') )
+				this.mirror( Query.get( this.props.toJSON() ) );
+		},
+
+		// If this collection is sorted by `menuOrder`, recalculates and saves
+		// the menu order to the database.
+		saveMenuOrder: function() {
+			if ( 'menuOrder' !== this.props.get('orderby') )
+				return;
+
+			// Removes any uploading attachments, updates each attachment's
+			// menu order, and returns an object with an { id: menuOrder }
+			// mapping to pass to the request.
+			var attachments = this.chain().filter( function( attachment ) {
+				return ! _.isUndefined( attachment.id );
+			}).map( function( attachment, index ) {
+				// Indices start at 1.
+				index = index + 1;
+				attachment.set( 'menuOrder', index );
+				return [ attachment.id, index ];
+			}).object().value();
+
+			if ( _.isEmpty( attachments ) )
+				return;
+
+			return media.post( 'save-attachment-order', {
+				nonce:       media.model.settings.post.nonce,
+				post_id:     media.model.settings.post.id,
+				attachments: attachments
+			});
+		}
+	}, {
+		comparator: function( a, b, options ) {
+			var key   = this.props.get('orderby'),
+				order = this.props.get('order') || 'DESC',
+				ac    = a.cid,
+				bc    = b.cid;
+
+			a = a.get( key );
+			b = b.get( key );
+
+			if ( 'date' === key || 'modified' === key ) {
+				a = a || new Date();
+				b = b || new Date();
+			}
+
+			// If `options.ties` is set, don't enforce the `cid` tiebreaker.
+			if ( options && options.ties )
+				ac = bc = null;
+
+			return ( 'DESC' === order ) ? compare( a, b, ac, bc ) : compare( b, a, bc, ac );
+		},
+
+		filters: {
+			// Note that this client-side searching is *not* equivalent
+			// to our server-side searching.
+			search: function( attachment ) {
+				if ( ! this.props.get('search') )
+					return true;
+
+				return _.any(['title','filename','description','caption','name'], function( key ) {
+					var value = attachment.get( key );
+					return value && -1 !== value.search( this.props.get('search') );
+				}, this );
+			},
+
+			type: function( attachment ) {
+				var type = this.props.get('type');
+				return ! type || -1 !== type.indexOf( attachment.get('type') );
+			},
+
+			uploadedTo: function( attachment ) {
+				var uploadedTo = this.props.get('uploadedTo');
+				if ( _.isUndefined( uploadedTo ) )
+					return true;
+
+				return uploadedTo === attachment.get('uploadedTo');
+			}
+		}
+	});
+
+	Attachments.all = new Attachments();
+
+	/**
+	 * wp.media.query
+	 */
+	media.query = function( props ) {
+		return new Attachments( null, {
+			props: _.extend( _.defaults( props || {}, { orderby: 'date' } ), { query: true } )
+		});
+	};
+
+	/**
+	 * wp.media.model.Query
+	 *
+	 * A set of attachments that corresponds to a set of consecutively paged
+	 * queries on the server.
+	 *
+	 * Note: Do NOT change this.args after the query has been initialized.
+	 *       Things will break.
+	 */
+	Query = media.model.Query = Attachments.extend({
+		initialize: function( models, options ) {
+			var allowed;
+
+			options = options || {};
+			Attachments.prototype.initialize.apply( this, arguments );
+
+			this.args     = options.args;
+			this._hasMore = true;
+			this.created  = new Date();
+
+			this.filters.order = function( attachment ) {
+				var orderby = this.props.get('orderby'),
+					order = this.props.get('order');
+
+				if ( ! this.comparator )
+					return true;
+
+				// We want any items that can be placed before the last
+				// item in the set. If we add any items after the last
+				// item, then we can't guarantee the set is complete.
+				if ( this.length ) {
+					return 1 !== this.comparator( attachment, this.last(), { ties: true });
+
+				// Handle the case where there are no items yet and
+				// we're sorting for recent items. In that case, we want
+				// changes that occurred after we created the query.
+				} else if ( 'DESC' === order && ( 'date' === orderby || 'modified' === orderby ) ) {
+					return attachment.get( orderby ) >= this.created;
+
+				// If we're sorting by menu order and we have no items,
+				// accept any items that have the default menu order (0).
+				} else if ( 'ASC' === order && 'menuOrder' === orderby ) {
+					return attachment.get( orderby ) === 0;
+				}
+
+				// Otherwise, we don't want any items yet.
+				return false;
+			};
+
+			// Observe the central `wp.Uploader.queue` collection to watch for
+			// new matches for the query.
+			//
+			// Only observe when a limited number of query args are set. There
+			// are no filters for other properties, so observing will result in
+			// false positives in those queries.
+			allowed = [ 's', 'order', 'orderby', 'posts_per_page', 'post_mime_type', 'post_parent' ];
+			if ( wp.Uploader && _( this.args ).chain().keys().difference( allowed ).isEmpty().value() )
+				this.observe( wp.Uploader.queue );
+		},
+
+		hasMore: function() {
+			return this._hasMore;
+		},
+
+		more: function( options ) {
+			var query = this;
+
+			if ( this._more && 'pending' === this._more.state() )
+				return this._more;
+
+			if ( ! this.hasMore() )
+				return $.Deferred().resolveWith( this ).promise();
+
+			options = options || {};
+			options.add = true;
+
+			return this._more = this.fetch( options ).done( function( resp ) {
+				if ( _.isEmpty( resp ) || -1 === this.args.posts_per_page || resp.length < this.args.posts_per_page )
+					query._hasMore = false;
+			});
+		},
+
+		sync: function( method, model, options ) {
+			var fallback;
+
+			// Overload the read method so Attachment.fetch() functions correctly.
+			if ( 'read' === method ) {
+				options = options || {};
+				options.context = this;
+				options.data = _.extend( options.data || {}, {
+					action:  'query-attachments',
+					post_id: media.model.settings.post.id
+				});
+
+				// Clone the args so manipulation is non-destructive.
+				args = _.clone( this.args );
+
+				// Determine which page to query.
+				if ( -1 !== args.posts_per_page )
+					args.paged = Math.floor( this.length / args.posts_per_page ) + 1;
+
+				options.data.query = args;
+				return media.ajax( options );
+
+			// Otherwise, fall back to Backbone.sync()
+			} else {
+				fallback = Attachments.prototype.sync ? Attachments.prototype : Backbone;
+				return fallback.sync.apply( this, arguments );
+			}
+		}
+	}, {
+		defaultProps: {
+			orderby: 'date',
+			order:   'DESC'
+		},
+
+		defaultArgs: {
+			posts_per_page: 40
+		},
+
+		orderby: {
+			allowed:  [ 'name', 'author', 'date', 'title', 'modified', 'uploadedTo', 'id', 'post__in', 'menuOrder' ],
+			valuemap: {
+				'id':         'ID',
+				'uploadedTo': 'parent',
+				'menuOrder':  'menu_order ID'
+			}
+		},
+
+		propmap: {
+			'search':    's',
+			'type':      'post_mime_type',
+			'perPage':   'posts_per_page',
+			'menuOrder': 'menu_order',
+			'uploadedTo': 'post_parent'
+		},
+
+		// Caches query objects so queries can be easily reused.
+		get: (function(){
+			var queries = [];
+
+			return function( props, options ) {
+				var args     = {},
+					orderby  = Query.orderby,
+					defaults = Query.defaultProps,
+					query;
+
+				// Remove the `query` property. This isn't linked to a query,
+				// this *is* the query.
+				delete props.query;
+
+				// Fill default args.
+				_.defaults( props, defaults );
+
+				// Normalize the order.
+				props.order = props.order.toUpperCase();
+				if ( 'DESC' !== props.order && 'ASC' !== props.order )
+					props.order = defaults.order.toUpperCase();
+
+				// Ensure we have a valid orderby value.
+				if ( ! _.contains( orderby.allowed, props.orderby ) )
+					props.orderby = defaults.orderby;
+
+				// Generate the query `args` object.
+				// Correct any differing property names.
+				_.each( props, function( value, prop ) {
+					if ( _.isNull( value ) )
+						return;
+
+					args[ Query.propmap[ prop ] || prop ] = value;
+				});
+
+				// Fill any other default query args.
+				_.defaults( args, Query.defaultArgs );
+
+				// `props.orderby` does not always map directly to `args.orderby`.
+				// Substitute exceptions specified in orderby.keymap.
+				args.orderby = orderby.valuemap[ props.orderby ] || props.orderby;
+
+				// Search the query cache for matches.
+				query = _.find( queries, function( query ) {
+					return _.isEqual( query.args, args );
+				});
+
+				// Otherwise, create a new query and add it to the cache.
+				if ( ! query ) {
+					query = new Query( [], _.extend( options || {}, {
+						props: props,
+						args:  args
+					} ) );
+					queries.push( query );
+				}
+
+				return query;
+			};
+		}())
+	});
+
+	/**
+	 * wp.media.model.Selection
+	 *
+	 * Used to manage a selection of attachments in the views.
+	 */
+	media.model.Selection = Attachments.extend({
+		initialize: function( models, options ) {
+			Attachments.prototype.initialize.apply( this, arguments );
+			this.multiple = options && options.multiple;
+
+			// Refresh the `single` model whenever the selection changes.
+			// Binds `single` instead of using the context argument to ensure
+			// it receives no parameters.
+			this.on( 'add remove reset', _.bind( this.single, this, false ) );
+		},
+
+		// Override the selection's add method.
+		// If the workflow does not support multiple
+		// selected attachments, reset the selection.
+		add: function( models, options ) {
+			if ( ! this.multiple )
+				this.remove( this.models );
+
+			return Attachments.prototype.add.call( this, models, options );
+		},
+
+		single: function( model ) {
+			var previous = this._single;
+
+			// If a `model` is provided, use it as the single model.
+			if ( model )
+				this._single = model;
+
+			// If the single model isn't in the selection, remove it.
+			if ( this._single && ! this.getByCid( this._single.cid ) )
+				delete this._single;
+
+			this._single = this._single || this.last();
+
+			// If single has changed, fire an event.
+			if ( this._single !== previous ) {
+				if ( previous ) {
+					previous.trigger( 'selection:unsingle', previous, this );
+
+					// If the model was already removed, trigger the collection
+					// event manually.
+					if ( ! this.getByCid( previous.cid ) )
+						this.trigger( 'selection:unsingle', previous, this );
+				}
+				if ( this._single )
+					this._single.trigger( 'selection:single', this._single, this );
+			}
+
+			// Return the single model, or the last model as a fallback.
+			return this._single;
+		}
+	});
+
+	// Clean up. Prevents mobile browsers caching
+	$(window).on('unload', function(){
+		window.wp = null;
+	});
+
+}(jQuery));
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-includes/js/media-models.min.js	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,1 @@
+window.wp=window.wp||{};(function(f){var d,c,a,e,b,g;g=wp.media=function(h){var i=g.view.MediaFrame,j;if(!i){return}h=_.defaults(h||{},{frame:"select"});if("select"===h.frame&&i.Select){j=new i.Select(h)}else{if("post"===h.frame&&i.Post){j=new i.Post(h)}}delete h.frame;return j};_.extend(g,{model:{},view:{},controller:{},frames:{}});b=g.model.l10n=typeof _wpMediaModelsL10n==="undefined"?{}:_wpMediaModelsL10n;g.model.settings=b.settings||{};delete b.settings;e=function(i,h,j,k){if(_.isEqual(i,h)){return j===k?0:(j>k?-1:1)}else{return i>h?-1:1}};_.extend(g,{template:_.memoize(function(j){var i,h={evaluate:/<#([\s\S]+?)#>/g,interpolate:/\{\{\{([\s\S]+?)\}\}\}/g,escape:/\{\{([^\}]+?)\}\}(?!\})/g,variable:"data"};return function(k){i=i||_.template(f("#tmpl-"+j).html(),null,h);return i(k)}}),post:function(i,h){return g.ajax({data:_.isObject(i)?i:_.extend(h||{},{action:i})})},ajax:function(i,h){if(_.isObject(i)){h=i}else{h=h||{};h.data=_.extend(h.data||{},{action:i})}h=_.defaults(h||{},{type:"POST",url:g.model.settings.ajaxurl,context:this});return f.Deferred(function(j){if(h.success){j.done(h.success)}if(h.error){j.fail(h.error)}delete h.success;delete h.error;f.ajax(h).done(function(k){if(k==="1"||k===1){k={success:true}}if(_.isObject(k)&&!_.isUndefined(k.success)){j[k.success?"resolveWith":"rejectWith"](this,[k.data])}else{j.rejectWith(this,[k])}}).fail(function(){j.rejectWith(this,arguments)})}).promise()},fit:function(l){var i=l.width,h=l.height,k=l.maxWidth,j=l.maxHeight,m;if(!_.isUndefined(k)&&!_.isUndefined(j)){m=(i/h>k/j)?"width":"height"}else{if(_.isUndefined(j)){m="width"}else{if(_.isUndefined(k)&&h>j){m="height"}}}if("width"===m&&i>k){return{width:k,height:Math.round(k*h/i)}}else{if("height"===m&&h>j){return{width:Math.round(j*i/h),height:j}}else{return{width:i,height:h}}}},truncate:function(h,j,i){j=j||30;i=i||"&hellip;";if(h.length<=j){return h}return h.substr(0,j/2)+i+h.substr(-1*j/2)}});g.attachment=function(h){return d.get(h)};d=g.model.Attachment=Backbone.Model.extend({sync:function(j,i,h){if(_.isUndefined(this.id)){return f.Deferred().rejectWith(this).promise()}if("read"===j){h=h||{};h.context=this;h.data=_.extend(h.data||{},{action:"get-attachment",id:this.id});return g.ajax(h)}else{if("update"===j){if(!this.get("nonces")||!this.get("nonces").update){return f.Deferred().rejectWith(this).promise()}h=h||{};h.context=this;h.data=_.extend(h.data||{},{action:"save-attachment",id:this.id,nonce:this.get("nonces").update,post_id:g.model.settings.post.id});if(h.changes){_.each(h.changes,function(l,k){h.changes[k]=this.get(k)},this);h.data.changes=h.changes;delete h.changes}return g.ajax(h)}else{if("delete"===j){h=h||{};if(!h.wait){this.destroyed=true}h.context=this;h.data=_.extend(h.data||{},{action:"delete-post",id:this.id,_wpnonce:this.get("nonces")["delete"]});return g.ajax(h).done(function(){this.destroyed=true}).fail(function(){this.destroyed=false})}}}},parse:function(i,h){if(!i){return i}i.date=new Date(i.date);i.modified=new Date(i.modified);return i},saveCompat:function(j,i){var h=this;if(!this.get("nonces")||!this.get("nonces").update){return f.Deferred().rejectWith(this).promise()}return g.post("save-attachment-compat",_.defaults({id:this.id,nonce:this.get("nonces").update,post_id:g.model.settings.post.id},j)).done(function(m,k,l){h.set(h.parse(m,l),i)})}},{create:function(h){return c.all.push(h)},get:_.memoize(function(i,h){return c.all.push(h||{id:i})})});c=g.model.Attachments=Backbone.Collection.extend({model:d,initialize:function(i,h){h=h||{};this.props=new Backbone.Model();this.filters=h.filters||{};this.props.on("change",this._changeFilteredProps,this);this.props.on("change:order",this._changeOrder,this);this.props.on("change:orderby",this._changeOrderby,this);this.props.on("change:query",this._changeQuery,this);this.props.set(_.defaults(h.props||{}));if(h.observe){this.observe(h.observe)}},_changeOrder:function(i,h){if(this.comparator){this.sort()}},_changeOrderby:function(h,i){if(this.comparator&&this.comparator!==c.comparator){return}if(i&&"post__in"!==i){this.comparator=c.comparator}else{delete this.comparator}},_changeQuery:function(h,i){if(i){this.props.on("change",this._requery,this);this._requery()}else{this.props.off("change",this._requery,this)}},_changeFilteredProps:function(i,h){if(this.props.get("query")){return}var j=_.chain(h.changes).map(function(l,n){var m=c.filters[n],k=i.get(n);if(!m){return}if(k&&!this.filters[n]){this.filters[n]=m}else{if(!k&&this.filters[n]===m){delete this.filters[n]}else{return}}return true},this).any().value();if(!j){return}if(!this._source){this._source=new c(this.models)}this.reset(this._source.filter(this.validator,this))},validateDestroyed:false,validator:function(h){if(!this.validateDestroyed&&h.destroyed){return false}return _.all(this.filters,function(j,i){return !!j.call(this,h)},this)},validate:function(k,i){var j=this.validator(k),h=!!this.getByCid(k.cid);if(!j&&h){this.remove(k,i)}else{if(j&&!h){this.add(k,i)}}return this},validateAll:function(h,i){i=i||{};_.each(h.models,function(j){this.validate(j,{silent:true})},this);if(!i.silent){this.trigger("reset",this,i)}return this},observe:function(h){this.observers=this.observers||[];this.observers.push(h);h.on("add change remove",this._validateHandler,this);h.on("reset",this._validateAllHandler,this);this.validateAll(h);return this},unobserve:function(h){if(h){h.off(null,null,this);this.observers=_.without(this.observers,h)}else{_.each(this.observers,function(i){i.off(null,null,this)},this);delete this.observers}return this},_validateHandler:function(j,h,i){i=h===this.mirroring?i:{silent:i&&i.silent};return this.validate(j,i)},_validateAllHandler:function(h,i){return this.validateAll(h,i)},mirror:function(h){if(this.mirroring&&this.mirroring===h){return this}this.unmirror();this.mirroring=h;this.reset([],{silent:true});this.observe(h);return this},unmirror:function(){if(!this.mirroring){return}this.unobserve(this.mirroring);delete this.mirroring},more:function(j){var i=f.Deferred(),k=this.mirroring,h=this;if(!k||!k.more){return i.resolveWith(this).promise()}k.more(j).done(function(){if(this===h.mirroring){i.resolveWith(this)}});return i.promise()},hasMore:function(){return this.mirroring?this.mirroring.hasMore():false},parse:function(i,h){return _.map(i,function(j){var k=d.get(j.id);return k.set(k.parse(j,h))})},_requery:function(){if(this.props.get("query")){this.mirror(a.get(this.props.toJSON()))}},saveMenuOrder:function(){if("menuOrder"!==this.props.get("orderby")){return}var h=this.chain().filter(function(i){return !_.isUndefined(i.id)}).map(function(j,i){i=i+1;j.set("menuOrder",i);return[j.id,i]}).object().value();if(_.isEmpty(h)){return}return g.post("save-attachment-order",{nonce:g.model.settings.post.nonce,post_id:g.model.settings.post.id,attachments:h})}},{comparator:function(j,i,k){var l=this.props.get("orderby"),h=this.props.get("order")||"DESC",m=j.cid,n=i.cid;j=j.get(l);i=i.get(l);if("date"===l||"modified"===l){j=j||new Date();i=i||new Date()}if(k&&k.ties){m=n=null}return("DESC"===h)?e(j,i,m,n):e(i,j,n,m)},filters:{search:function(h){if(!this.props.get("search")){return true}return _.any(["title","filename","description","caption","name"],function(i){var j=h.get(i);return j&&-1!==j.search(this.props.get("search"))},this)},type:function(i){var h=this.props.get("type");return !h||-1!==h.indexOf(i.get("type"))},uploadedTo:function(i){var h=this.props.get("uploadedTo");if(_.isUndefined(h)){return true}return h===i.get("uploadedTo")}}});c.all=new c();g.query=function(h){return new c(null,{props:_.extend(_.defaults(h||{},{orderby:"date"}),{query:true})})};a=g.model.Query=c.extend({initialize:function(j,h){var i;h=h||{};c.prototype.initialize.apply(this,arguments);this.args=h.args;this._hasMore=true;this.created=new Date();this.filters.order=function(m){var l=this.props.get("orderby"),k=this.props.get("order");if(!this.comparator){return true}if(this.length){return 1!==this.comparator(m,this.last(),{ties:true})}else{if("DESC"===k&&("date"===l||"modified"===l)){return m.get(l)>=this.created}else{if("ASC"===k&&"menuOrder"===l){return m.get(l)===0}}}return false};i=["s","order","orderby","posts_per_page","post_mime_type","post_parent"];if(wp.Uploader&&_(this.args).chain().keys().difference(i).isEmpty().value()){this.observe(wp.Uploader.queue)}},hasMore:function(){return this._hasMore},more:function(h){var i=this;if(this._more&&"pending"===this._more.state()){return this._more}if(!this.hasMore()){return f.Deferred().resolveWith(this).promise()}h=h||{};h.add=true;return this._more=this.fetch(h).done(function(j){if(_.isEmpty(j)||-1===this.args.posts_per_page||j.length<this.args.posts_per_page){i._hasMore=false}})},sync:function(k,i,h){var j;if("read"===k){h=h||{};h.context=this;h.data=_.extend(h.data||{},{action:"query-attachments",post_id:g.model.settings.post.id});args=_.clone(this.args);if(-1!==args.posts_per_page){args.paged=Math.floor(this.length/args.posts_per_page)+1}h.data.query=args;return g.ajax(h)}else{j=c.prototype.sync?c.prototype:Backbone;return j.sync.apply(this,arguments)}}},{defaultProps:{orderby:"date",order:"DESC"},defaultArgs:{posts_per_page:40},orderby:{allowed:["name","author","date","title","modified","uploadedTo","id","post__in","menuOrder"],valuemap:{id:"ID",uploadedTo:"parent",menuOrder:"menu_order ID"}},propmap:{search:"s",type:"post_mime_type",perPage:"posts_per_page",menuOrder:"menu_order",uploadedTo:"post_parent"},get:(function(){var h=[];return function(k,j){var i={},m=a.orderby,n=a.defaultProps,l;delete k.query;_.defaults(k,n);k.order=k.order.toUpperCase();if("DESC"!==k.order&&"ASC"!==k.order){k.order=n.order.toUpperCase()}if(!_.contains(m.allowed,k.orderby)){k.orderby=n.orderby}_.each(k,function(o,p){if(_.isNull(o)){return}i[a.propmap[p]||p]=o});_.defaults(i,a.defaultArgs);i.orderby=m.valuemap[k.orderby]||k.orderby;l=_.find(h,function(o){return _.isEqual(o.args,i)});if(!l){l=new a([],_.extend(j||{},{props:k,args:i}));h.push(l)}return l}}())});g.model.Selection=c.extend({initialize:function(i,h){c.prototype.initialize.apply(this,arguments);this.multiple=h&&h.multiple;this.on("add remove reset",_.bind(this.single,this,false))},add:function(i,h){if(!this.multiple){this.remove(this.models)}return c.prototype.add.call(this,i,h)},single:function(h){var i=this._single;if(h){this._single=h}if(this._single&&!this.getByCid(this._single.cid)){delete this._single}this._single=this._single||this.last();if(this._single!==i){if(i){i.trigger("selection:unsingle",i,this);if(!this.getByCid(i.cid)){this.trigger("selection:unsingle",i,this)}}if(this._single){this._single.trigger("selection:single",this._single,this)}}return this._single}});f(window).on("unload",function(){window.wp=null})}(jQuery));
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-includes/js/media-views.js	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,4289 @@
+(function($){
+	var media       = wp.media,
+		Attachment  = media.model.Attachment,
+		Attachments = media.model.Attachments,
+		Query       = media.model.Query,
+		l10n;
+
+	// Link any localized strings.
+	l10n = media.view.l10n = typeof _wpMediaViewsL10n === 'undefined' ? {} : _wpMediaViewsL10n;
+
+	// Link any settings.
+	media.view.settings = l10n.settings || {};
+	delete l10n.settings;
+
+	// Copy the `post` setting over to the model settings.
+	media.model.settings.post = media.view.settings.post;
+
+	// Check if the browser supports CSS 3.0 transitions
+	$.support.transition = (function(){
+		var style = document.documentElement.style,
+			transitions = {
+				WebkitTransition: 'webkitTransitionEnd',
+				MozTransition:    'transitionend',
+				OTransition:      'oTransitionEnd otransitionend',
+				transition:       'transitionend'
+			}, transition;
+
+		transition = _.find( _.keys( transitions ), function( transition ) {
+			return ! _.isUndefined( style[ transition ] );
+		});
+
+		return transition && {
+			end: transitions[ transition ]
+		};
+	}());
+
+	// Makes it easier to bind events using transitions.
+	media.transition = function( selector, sensitivity ) {
+		var deferred = $.Deferred();
+
+		sensitivity = sensitivity || 2000;
+
+		if ( $.support.transition ) {
+			if ( ! (selector instanceof $) )
+				selector = $( selector );
+
+			// Resolve the deferred when the first element finishes animating.
+			selector.first().one( $.support.transition.end, deferred.resolve );
+
+			// Just in case the event doesn't trigger, fire a callback.
+			_.delay( deferred.resolve, sensitivity );
+
+		// Otherwise, execute on the spot.
+		} else {
+			deferred.resolve();
+		}
+
+		return deferred.promise();
+	};
+
+	/**
+	 * ========================================================================
+	 * CONTROLLERS
+	 * ========================================================================
+	 */
+
+	/**
+	 * wp.media.controller.Region
+	 */
+	media.controller.Region = function( options ) {
+		_.extend( this, _.pick( options || {}, 'id', 'view', 'selector' ) );
+	};
+
+	// Use Backbone's self-propagating `extend` inheritance method.
+	media.controller.Region.extend = Backbone.Model.extend;
+
+	_.extend( media.controller.Region.prototype, {
+		mode: function( mode ) {
+			if ( ! mode )
+				return this._mode;
+
+			// Bail if we're trying to change to the current mode.
+			if ( mode === this._mode )
+				return this;
+
+			this.trigger('deactivate');
+			this._mode = mode;
+			this.render( mode );
+			this.trigger('activate');
+			return this;
+		},
+
+		render: function( mode ) {
+			// If no mode is provided, just re-render the current mode.
+			// If the provided mode isn't active, perform a full switch.
+			if ( mode && mode !== this._mode )
+				return this.mode( mode );
+
+			var set = { view: null },
+				view;
+
+			this.trigger( 'create', set );
+			view = set.view;
+			this.trigger( 'render', view );
+			if ( view )
+				this.set( view );
+			return this;
+		},
+
+		get: function() {
+			return this.view.views.first( this.selector );
+		},
+
+		set: function( views, options ) {
+			if ( options )
+				options.add = false;
+			return this.view.views.set( this.selector, views, options );
+		},
+
+		trigger: function( event ) {
+			var base;
+			if ( ! this._mode )
+				return;
+
+			var args = _.toArray( arguments );
+			base = this.id + ':' + event;
+
+			// Trigger `region:action:mode` event.
+			args[0] = base + ':' + this._mode;
+			this.view.trigger.apply( this.view, args );
+
+			// Trigger `region:action` event.
+			args[0] = base;
+			this.view.trigger.apply( this.view, args );
+			return this;
+		}
+	});
+
+	/**
+	 * wp.media.controller.StateMachine
+	 */
+	media.controller.StateMachine = function( states ) {
+		this.states = new Backbone.Collection( states );
+	};
+
+	// Use Backbone's self-propagating `extend` inheritance method.
+	media.controller.StateMachine.extend = Backbone.Model.extend;
+
+	// Add events to the `StateMachine`.
+	_.extend( media.controller.StateMachine.prototype, Backbone.Events, {
+
+		// Fetch a state.
+		//
+		// If no `id` is provided, returns the active state.
+		//
+		// Implicitly creates states.
+		state: function( id ) {
+			// Ensure that the `states` collection exists so the `StateMachine`
+			// can be used as a mixin.
+			this.states = this.states || new Backbone.Collection();
+
+			// Default to the active state.
+			id = id || this._state;
+
+			if ( id && ! this.states.get( id ) )
+				this.states.add({ id: id });
+			return this.states.get( id );
+		},
+
+		// Sets the active state.
+		setState: function( id ) {
+			var previous = this.state();
+
+			// Bail if we're trying to select the current state, if we haven't
+			// created the `states` collection, or are trying to select a state
+			// that does not exist.
+			if ( ( previous && id === previous.id ) || ! this.states || ! this.states.get( id ) )
+				return this;
+
+			if ( previous ) {
+				previous.trigger('deactivate');
+				this._lastState = previous.id;
+			}
+
+			this._state = id;
+			this.state().trigger('activate');
+
+			return this;
+		},
+
+		// Returns the previous active state.
+		//
+		// Call the `state()` method with no parameters to retrieve the current
+		// active state.
+		lastState: function() {
+			if ( this._lastState )
+				return this.state( this._lastState );
+		}
+	});
+
+	// Map methods from the `states` collection to the `StateMachine` itself.
+	_.each([ 'on', 'off', 'trigger' ], function( method ) {
+		media.controller.StateMachine.prototype[ method ] = function() {
+			// Ensure that the `states` collection exists so the `StateMachine`
+			// can be used as a mixin.
+			this.states = this.states || new Backbone.Collection();
+			// Forward the method to the `states` collection.
+			this.states[ method ].apply( this.states, arguments );
+			return this;
+		};
+	});
+
+
+	// wp.media.controller.State
+	// ---------------------------
+	media.controller.State = Backbone.Model.extend({
+		constructor: function() {
+			this.on( 'activate', this._preActivate, this );
+			this.on( 'activate', this.activate, this );
+			this.on( 'activate', this._postActivate, this );
+			this.on( 'deactivate', this._deactivate, this );
+			this.on( 'deactivate', this.deactivate, this );
+			this.on( 'reset', this.reset, this );
+			this.on( 'ready', this._ready, this );
+			this.on( 'ready', this.ready, this );
+
+			this.on( 'change:menu', this._updateMenu, this );
+
+			Backbone.Model.apply( this, arguments );
+		},
+
+		ready: function() {},
+		activate: function() {},
+		deactivate: function() {},
+		reset: function() {},
+
+		_ready: function() {
+			this._updateMenu();
+		},
+
+		_preActivate: function() {
+			this.active = true;
+		},
+
+		_postActivate: function() {
+			this.on( 'change:menu', this._menu, this );
+			this.on( 'change:titleMode', this._title, this );
+			this.on( 'change:content', this._content, this );
+			this.on( 'change:toolbar', this._toolbar, this );
+
+			this.frame.on( 'title:render:default', this._renderTitle, this );
+
+			this._title();
+			this._menu();
+			this._toolbar();
+			this._content();
+			this._router();
+		},
+
+
+		_deactivate: function() {
+			this.active = false;
+
+			this.frame.off( 'title:render:default', this._renderTitle, this );
+
+			this.off( 'change:menu', this._menu, this );
+			this.off( 'change:titleMode', this._title, this );
+			this.off( 'change:content', this._content, this );
+			this.off( 'change:toolbar', this._toolbar, this );
+		},
+
+		_title: function() {
+			this.frame.title.render( this.get('titleMode') || 'default' );
+		},
+
+		_renderTitle: function( view ) {
+			view.$el.text( this.get('title') || '' );
+		},
+
+		_router: function() {
+			var router = this.frame.router,
+				mode = this.get('router'),
+				view;
+
+			this.frame.$el.toggleClass( 'hide-router', ! mode );
+			if ( ! mode )
+				return;
+
+			this.frame.router.render( mode );
+
+			view = router.get();
+			if ( view && view.select )
+				view.select( this.frame.content.mode() );
+		},
+
+		_menu: function() {
+			var menu = this.frame.menu,
+				mode = this.get('menu'),
+				view;
+
+			if ( ! mode )
+				return;
+
+			menu.mode( mode );
+
+			view = menu.get();
+			if ( view && view.select )
+				view.select( this.id );
+		},
+
+		_updateMenu: function() {
+			var previous = this.previous('menu'),
+				menu = this.get('menu');
+
+			if ( previous )
+				this.frame.off( 'menu:render:' + previous, this._renderMenu, this );
+
+			if ( menu )
+				this.frame.on( 'menu:render:' + menu, this._renderMenu, this );
+		},
+
+		_renderMenu: function( view ) {
+			var menuItem = this.get('menuItem'),
+				title = this.get('title'),
+				priority = this.get('priority');
+
+			if ( ! menuItem && title ) {
+				menuItem = { text: title };
+
+				if ( priority )
+					menuItem.priority = priority;
+			}
+
+			if ( ! menuItem )
+				return;
+
+			view.set( this.id, menuItem );
+		}
+	});
+
+	_.each(['toolbar','content'], function( region ) {
+		media.controller.State.prototype[ '_' + region ] = function() {
+			var mode = this.get( region );
+			if ( mode )
+				this.frame[ region ].render( mode );
+		};
+	});
+
+	// wp.media.controller.Library
+	// ---------------------------
+	media.controller.Library = media.controller.State.extend({
+		defaults: {
+			id:         'library',
+			multiple:   false, // false, 'add', 'reset'
+			describe:   false,
+			toolbar:    'select',
+			sidebar:    'settings',
+			content:    'upload',
+			router:     'browse',
+			menu:       'default',
+			searchable: true,
+			filterable: false,
+			sortable:   true,
+			title:      l10n.mediaLibraryTitle,
+
+			// Uses a user setting to override the content mode.
+			contentUserSetting: true,
+
+			// Sync the selection from the last state when 'multiple' matches.
+			syncSelection: true
+		},
+
+		initialize: function() {
+			var selection = this.get('selection'),
+				props;
+
+			// If a library isn't provided, query all media items.
+			if ( ! this.get('library') )
+				this.set( 'library', media.query() );
+
+			// If a selection instance isn't provided, create one.
+			if ( ! (selection instanceof media.model.Selection) ) {
+				props = selection;
+
+				if ( ! props ) {
+					props = this.get('library').props.toJSON();
+					props = _.omit( props, 'orderby', 'query' );
+				}
+
+				// If the `selection` attribute is set to an object,
+				// it will use those values as the selection instance's
+				// `props` model. Otherwise, it will copy the library's
+				// `props` model.
+				this.set( 'selection', new media.model.Selection( null, {
+					multiple: this.get('multiple'),
+					props: props
+				}) );
+			}
+
+			if ( ! this.get('edge') )
+				this.set( 'edge', 120 );
+
+			if ( ! this.get('gutter') )
+				this.set( 'gutter', 8 );
+
+			this.resetDisplays();
+		},
+
+		activate: function() {
+			this.syncSelection();
+
+			wp.Uploader.queue.on( 'add', this.uploading, this );
+
+			this.get('selection').on( 'add remove reset', this.refreshContent, this );
+
+			this.on( 'insert', this._insertDisplaySettings, this );
+
+			if ( this.get('contentUserSetting') ) {
+				this.frame.on( 'content:activate', this.saveContentMode, this );
+				this.set( 'content', getUserSetting( 'libraryContent', this.get('content') ) );
+			}
+		},
+
+		deactivate: function() {
+			this.recordSelection();
+
+			this.frame.off( 'content:activate', this.saveContentMode, this );
+
+			// Unbind all event handlers that use this state as the context
+			// from the selection.
+			this.get('selection').off( null, null, this );
+
+			wp.Uploader.queue.off( null, null, this );
+		},
+
+		reset: function() {
+			this.get('selection').reset();
+			this.resetDisplays();
+			this.refreshContent();
+		},
+
+		resetDisplays: function() {
+			this._displays = [];
+			this._defaultDisplaySettings = {
+				align: getUserSetting( 'align', 'none' ),
+				size:  getUserSetting( 'imgsize', 'medium' ),
+				link:  getUserSetting( 'urlbutton', 'post' )
+			};
+		},
+
+		display: function( attachment ) {
+			var displays = this._displays;
+
+			if ( ! displays[ attachment.cid ] )
+				displays[ attachment.cid ] = new Backbone.Model( this._defaultDisplaySettings );
+
+			return displays[ attachment.cid ];
+		},
+
+		_insertDisplaySettings: function() {
+			var selection = this.get('selection'),
+				display;
+
+			// If inserting one image, set those display properties as the
+			// default user setting.
+			if ( selection.length !== 1 )
+				return;
+
+			display = this.display( selection.first() ).toJSON();
+
+			setUserSetting( 'align', display.align );
+			setUserSetting( 'imgsize', display.size );
+			setUserSetting( 'urlbutton', display.link );
+		},
+
+		syncSelection: function() {
+			var selection = this.get('selection'),
+				manager = this.frame._selection;
+
+			if ( ! this.get('syncSelection') || ! manager || ! selection )
+				return;
+
+			// If the selection supports multiple items, validate the stored
+			// attachments based on the new selection's conditions. Record
+			// the attachments that are not included; we'll maintain a
+			// reference to those. Other attachments are considered in flux.
+			if ( selection.multiple ) {
+				selection.reset( [], { silent: true });
+				selection.validateAll( manager.attachments );
+				manager.difference = _.difference( manager.attachments.models, selection.models );
+			}
+
+			// Sync the selection's single item with the master.
+			selection.single( manager.single );
+		},
+
+		recordSelection: function() {
+			var selection = this.get('selection'),
+				manager = this.frame._selection,
+				filtered;
+
+			if ( ! this.get('syncSelection') || ! manager || ! selection )
+				return;
+
+			// Record the currently active attachments, which is a combination
+			// of the selection's attachments and the set of selected
+			// attachments that this specific selection considered invalid.
+			// Reset the difference and record the single attachment.
+			if ( selection.multiple ) {
+				manager.attachments.reset( selection.toArray().concat( manager.difference ) );
+				manager.difference = [];
+			} else {
+				manager.attachments.add( selection.toArray() );
+			}
+
+			manager.single = selection._single;
+		},
+
+		refreshContent: function() {
+			var selection = this.get('selection'),
+				frame = this.frame,
+				router = frame.router.get(),
+				mode = frame.content.mode();
+
+			if ( this.active && ! selection.length && ! router.get( mode ) )
+				this.frame.content.render( this.get('content') );
+		},
+
+		uploading: function( attachment ) {
+			var content = this.frame.content;
+
+			// If the uploader was selected, navigate to the browser.
+			if ( 'upload' === content.mode() )
+				this.frame.content.mode('browse');
+
+			// If we're in a workflow that supports multiple attachments,
+			// automatically select any uploading attachments.
+			if ( this.get('multiple') )
+				this.get('selection').add( attachment );
+		},
+
+		saveContentMode: function() {
+			// Only track the browse router on library states.
+			if ( 'browse' !== this.get('router') )
+				return;
+
+			var mode = this.frame.content.mode(),
+				view = this.frame.router.get();
+
+			if ( view && view.get( mode ) )
+				setUserSetting( 'libraryContent', mode );
+		}
+	});
+
+	// wp.media.controller.GalleryEdit
+	// -------------------------------
+	media.controller.GalleryEdit = media.controller.Library.extend({
+		defaults: {
+			id:         'gallery-edit',
+			multiple:   false,
+			describe:   true,
+			edge:       199,
+			editing:    false,
+			sortable:   true,
+			searchable: false,
+			toolbar:    'gallery-edit',
+			content:    'browse',
+			title:      l10n.editGalleryTitle,
+			priority:   60,
+			dragInfo:   true,
+
+			// Don't sync the selection, as the Edit Gallery library
+			// *is* the selection.
+			syncSelection: false
+		},
+
+		initialize: function() {
+			// If we haven't been provided a `library`, create a `Selection`.
+			if ( ! this.get('library') )
+				this.set( 'library', new media.model.Selection() );
+
+			// The single `Attachment` view to be used in the `Attachments` view.
+			if ( ! this.get('AttachmentView') )
+				this.set( 'AttachmentView', media.view.Attachment.EditLibrary );
+			media.controller.Library.prototype.initialize.apply( this, arguments );
+		},
+
+		activate: function() {
+			var library = this.get('library');
+
+			// Limit the library to images only.
+			library.props.set( 'type', 'image' );
+
+			// Watch for uploaded attachments.
+			this.get('library').observe( wp.Uploader.queue );
+
+			this.frame.on( 'content:render:browse', this.gallerySettings, this );
+
+			media.controller.Library.prototype.activate.apply( this, arguments );
+		},
+
+		deactivate: function() {
+			// Stop watching for uploaded attachments.
+			this.get('library').unobserve( wp.Uploader.queue );
+
+			this.frame.off( 'content:render:browse', this.gallerySettings, this );
+
+			media.controller.Library.prototype.deactivate.apply( this, arguments );
+		},
+
+		gallerySettings: function( browser ) {
+			var library = this.get('library');
+
+			if ( ! library || ! browser )
+				return;
+
+			library.gallery = library.gallery || new Backbone.Model();
+
+			browser.sidebar.set({
+				gallery: new media.view.Settings.Gallery({
+					controller: this,
+					model:      library.gallery,
+					priority:   40
+				})
+			});
+
+			browser.toolbar.set( 'reverse', {
+				text:     l10n.reverseOrder,
+				priority: 80,
+
+				click: function() {
+					library.reset( library.toArray().reverse() );
+				}
+			});
+		}
+	});
+
+	// wp.media.controller.GalleryAdd
+	// ---------------------------------
+	media.controller.GalleryAdd = media.controller.Library.extend({
+		defaults: _.defaults({
+			id:           'gallery-library',
+			filterable:   'uploaded',
+			multiple:     'add',
+			menu:         'gallery',
+			toolbar:      'gallery-add',
+			title:        l10n.addToGalleryTitle,
+			priority:     100,
+
+			// Don't sync the selection, as the Edit Gallery library
+			// *is* the selection.
+			syncSelection: false
+		}, media.controller.Library.prototype.defaults ),
+
+		initialize: function() {
+			// If we haven't been provided a `library`, create a `Selection`.
+			if ( ! this.get('library') )
+				this.set( 'library', media.query({ type: 'image' }) );
+
+			media.controller.Library.prototype.initialize.apply( this, arguments );
+		},
+
+		activate: function() {
+			var library = this.get('library'),
+				edit    = this.frame.state('gallery-edit').get('library');
+
+			if ( this.editLibrary && this.editLibrary !== edit )
+				library.unobserve( this.editLibrary );
+
+			// Accepts attachments that exist in the original library and
+			// that do not exist in gallery's library.
+			library.validator = function( attachment ) {
+				return !! this.mirroring.getByCid( attachment.cid ) && ! edit.getByCid( attachment.cid ) && media.model.Selection.prototype.validator.apply( this, arguments );
+			};
+
+			library.observe( edit );
+			this.editLibrary = edit;
+
+			media.controller.Library.prototype.activate.apply( this, arguments );
+		}
+	});
+
+	// wp.media.controller.FeaturedImage
+	// ---------------------------------
+	media.controller.FeaturedImage = media.controller.Library.extend({
+		defaults: _.defaults({
+			id:         'featured-image',
+			filterable: 'uploaded',
+			multiple:   false,
+			toolbar:    'featured-image',
+			title:      l10n.setFeaturedImageTitle,
+			priority:   60,
+
+			syncSelection: false
+		}, media.controller.Library.prototype.defaults ),
+
+		initialize: function() {
+			var library, comparator;
+
+			// If we haven't been provided a `library`, create a `Selection`.
+			if ( ! this.get('library') )
+				this.set( 'library', media.query({ type: 'image' }) );
+
+			media.controller.Library.prototype.initialize.apply( this, arguments );
+
+			library    = this.get('library');
+			comparator = library.comparator;
+
+			// Overload the library's comparator to push items that are not in
+			// the mirrored query to the front of the aggregate collection.
+			library.comparator = function( a, b ) {
+				var aInQuery = !! this.mirroring.getByCid( a.cid ),
+					bInQuery = !! this.mirroring.getByCid( b.cid );
+
+				if ( ! aInQuery && bInQuery )
+					return -1;
+				else if ( aInQuery && ! bInQuery )
+					return 1;
+				else
+					return comparator.apply( this, arguments );
+			};
+
+			// Add all items in the selection to the library, so any featured
+			// images that are not initially loaded still appear.
+			library.observe( this.get('selection') );
+		},
+
+		activate: function() {
+			this.updateSelection();
+			this.frame.on( 'open', this.updateSelection, this );
+			media.controller.Library.prototype.activate.apply( this, arguments );
+		},
+
+		deactivate: function() {
+			this.frame.off( 'open', this.updateSelection, this );
+			media.controller.Library.prototype.deactivate.apply( this, arguments );
+		},
+
+		updateSelection: function() {
+			var selection = this.get('selection'),
+				id = media.view.settings.post.featuredImageId,
+				attachment;
+
+			if ( '' !== id && -1 !== id ) {
+				attachment = Attachment.get( id );
+				attachment.fetch();
+			}
+
+			selection.reset( attachment ? [ attachment ] : [] );
+		}
+	});
+
+
+	// wp.media.controller.Embed
+	// -------------------------
+	media.controller.Embed = media.controller.State.extend({
+		defaults: {
+			id:      'embed',
+			url:     '',
+			menu:    'default',
+			content: 'embed',
+			toolbar: 'main-embed',
+			type:    'link',
+
+			title:    l10n.insertFromUrlTitle,
+			priority: 120
+		},
+
+		// The amount of time used when debouncing the scan.
+		sensitivity: 200,
+
+		initialize: function() {
+			this.debouncedScan = _.debounce( _.bind( this.scan, this ), this.sensitivity );
+			this.props = new Backbone.Model({ url: '' });
+			this.props.on( 'change:url', this.debouncedScan, this );
+			this.props.on( 'change:url', this.refresh, this );
+			this.on( 'scan', this.scanImage, this );
+		},
+
+		scan: function() {
+			var scanners,
+				embed = this,
+				attributes = {
+					type: 'link',
+					scanners: []
+				};
+
+			// Scan is triggered with the list of `attributes` to set on the
+			// state, useful for the 'type' attribute and 'scanners' attribute,
+			// an array of promise objects for asynchronous scan operations.
+			if ( this.props.get('url') )
+				this.trigger( 'scan', attributes );
+
+			if ( attributes.scanners.length ) {
+				scanners = attributes.scanners = $.when.apply( $, attributes.scanners );
+				scanners.always( function() {
+					if ( embed.get('scanners') === scanners )
+						embed.set( 'loading', false );
+				});
+			} else {
+				attributes.scanners = null;
+			}
+
+			attributes.loading = !! attributes.scanners;
+			this.set( attributes );
+		},
+
+		scanImage: function( attributes ) {
+			var frame = this.frame,
+				state = this,
+				url = this.props.get('url'),
+				image = new Image(),
+				deferred = $.Deferred();
+
+			attributes.scanners.push( deferred.promise() );
+
+			// Try to load the image and find its width/height.
+			image.onload = function() {
+				deferred.resolve();
+
+				if ( state !== frame.state() || url !== state.props.get('url') )
+					return;
+
+				state.set({
+					type: 'image'
+				});
+
+				state.props.set({
+					width:  image.width,
+					height: image.height
+				});
+			};
+
+			image.onerror = deferred.reject;
+			image.src = url;
+		},
+
+		refresh: function() {
+			this.frame.toolbar.get().refresh();
+		},
+
+		reset: function() {
+			this.props.clear().set({ url: '' });
+
+			if ( this.active )
+				this.refresh();
+		}
+	});
+
+	/**
+	 * ========================================================================
+	 * VIEWS
+	 * ========================================================================
+	 */
+
+	// wp.media.Views
+	// -------------
+	//
+	// A subview manager.
+
+	media.Views = function( view, views ) {
+		this.view = view;
+		this._views = _.isArray( views ) ? { '': views } : views || {};
+	};
+
+	media.Views.extend = Backbone.Model.extend;
+
+	_.extend( media.Views.prototype, {
+		// ### Fetch all of the subviews
+		//
+		// Returns an array of all subviews.
+		all: function() {
+			return _.flatten( this._views );
+		},
+
+		// ### Get a selector's subviews
+		//
+		// Fetches all subviews that match a given `selector`.
+		//
+		// If no `selector` is provided, it will grab all subviews attached
+		// to the view's root.
+		get: function( selector ) {
+			selector = selector || '';
+			return this._views[ selector ];
+		},
+
+		// ### Get a selector's first subview
+		//
+		// Fetches the first subview that matches a given `selector`.
+		//
+		// If no `selector` is provided, it will grab the first subview
+		// attached to the view's root.
+		//
+		// Useful when a selector only has one subview at a time.
+		first: function( selector ) {
+			var views = this.get( selector );
+			return views && views.length ? views[0] : null;
+		},
+
+		// ### Register subview(s)
+		//
+		// Registers any number of `views` to a `selector`.
+		//
+		// When no `selector` is provided, the root selector (the empty string)
+		// is used. `views` accepts a `Backbone.View` instance or an array of
+		// `Backbone.View` instances.
+		//
+		// ---
+		//
+		// Accepts an `options` object, which has a significant effect on the
+		// resulting behavior.
+		//
+		// `options.silent` &ndash; *boolean, `false`*
+		// > If `options.silent` is true, no DOM modifications will be made.
+		//
+		// `options.add` &ndash; *boolean, `false`*
+		// > Use `Views.add()` as a shortcut for setting `options.add` to true.
+		//
+		// > By default, the provided `views` will replace
+		// any existing views associated with the selector. If `options.add`
+		// is true, the provided `views` will be added to the existing views.
+		//
+		// `options.at` &ndash; *integer, `undefined`*
+		// > When adding, to insert `views` at a specific index, use
+		// `options.at`. By default, `views` are added to the end of the array.
+		set: function( selector, views, options ) {
+			var existing, next;
+
+			if ( ! _.isString( selector ) ) {
+				options  = views;
+				views    = selector;
+				selector = '';
+			}
+
+			options  = options || {};
+			views    = _.isArray( views ) ? views : [ views ];
+			existing = this.get( selector );
+			next     = views;
+
+			if ( existing ) {
+				if ( options.add ) {
+					if ( _.isUndefined( options.at ) ) {
+						next = existing.concat( views );
+					} else {
+						next = existing;
+						next.splice.apply( next, [ options.at, 0 ].concat( views ) );
+					}
+				} else {
+					_.each( next, function( view ) {
+						view.__detach = true;
+					});
+
+					_.each( existing, function( view ) {
+						if ( view.__detach )
+							view.$el.detach();
+						else
+							view.dispose();
+					});
+
+					_.each( next, function( view ) {
+						delete view.__detach;
+					});
+				}
+			}
+
+			this._views[ selector ] = next;
+
+			_.each( views, function( subview ) {
+				var constructor = subview.Views || media.Views,
+					subviews = subview.views = subview.views || new constructor( subview );
+				subviews.parent   = this.view;
+				subviews.selector = selector;
+			}, this );
+
+			if ( ! options.silent )
+				this._attach( selector, views, _.extend({ ready: this._isReady() }, options ) );
+
+			return this;
+		},
+
+		// ### Add subview(s) to existing subviews
+		//
+		// An alias to `Views.set()`, which defaults `options.add` to true.
+		//
+		// Adds any number of `views` to a `selector`.
+		//
+		// When no `selector` is provided, the root selector (the empty string)
+		// is used. `views` accepts a `Backbone.View` instance or an array of
+		// `Backbone.View` instances.
+		//
+		// Use `Views.set()` when setting `options.add` to `false`.
+		//
+		// Accepts an `options` object. By default, provided `views` will be
+		// inserted at the end of the array of existing views. To insert
+		// `views` at a specific index, use `options.at`. If `options.silent`
+		// is true, no DOM modifications will be made.
+		//
+		// For more information on the `options` object, see `Views.set()`.
+		add: function( selector, views, options ) {
+			if ( ! _.isString( selector ) ) {
+				options  = views;
+				views    = selector;
+				selector = '';
+			}
+
+			return this.set( selector, views, _.extend({ add: true }, options ) );
+		},
+
+		// ### Stop tracking subviews
+		//
+		// Stops tracking `views` registered to a `selector`. If no `views` are
+		// set, then all of the `selector`'s subviews will be unregistered and
+		// disposed.
+		//
+		// Accepts an `options` object. If `options.silent` is set, `dispose`
+		// will *not* be triggered on the unregistered views.
+		unset: function( selector, views, options ) {
+			var existing;
+
+			if ( ! _.isString( selector ) ) {
+				options = views;
+				views = selector;
+				selector = '';
+			}
+
+			views = views || [];
+
+			if ( existing = this.get( selector ) ) {
+				views = _.isArray( views ) ? views : [ views ];
+				this._views[ selector ] = views.length ? _.difference( existing, views ) : [];
+			}
+
+			if ( ! options || ! options.silent )
+				_.invoke( views, 'dispose' );
+
+			return this;
+		},
+
+		// ### Detach all subviews
+		//
+		// Detaches all subviews from the DOM.
+		//
+		// Helps to preserve all subview events when re-rendering the master
+		// view. Used in conjunction with `Views.render()`.
+		detach: function() {
+			$( _.pluck( this.all(), 'el' ) ).detach();
+			return this;
+		},
+
+		// ### Render all subviews
+		//
+		// Renders all subviews. Used in conjunction with `Views.detach()`.
+		render: function() {
+			var options = {
+					ready: this._isReady()
+				};
+
+			_.each( this._views, function( views, selector ) {
+				this._attach( selector, views, options );
+			}, this );
+
+			this.rendered = true;
+			return this;
+		},
+
+		// ### Dispose all subviews
+		//
+		// Triggers the `dispose()` method on all subviews. Detaches the master
+		// view from its parent. Resets the internals of the views manager.
+		//
+		// Accepts an `options` object. If `options.silent` is set, `unset`
+		// will *not* be triggered on the master view's parent.
+		dispose: function( options ) {
+			if ( ! options || ! options.silent ) {
+				if ( this.parent && this.parent.views )
+					this.parent.views.unset( this.selector, this.view, { silent: true });
+				delete this.parent;
+				delete this.selector;
+			}
+
+			_.invoke( this.all(), 'dispose' );
+			this._views = [];
+			return this;
+		},
+
+		// ### Replace a selector's subviews
+		//
+		// By default, sets the `$target` selector's html to the subview `els`.
+		//
+		// Can be overridden in subclasses.
+		replace: function( $target, els ) {
+			$target.html( els );
+			return this;
+		},
+
+		// ### Insert subviews into a selector
+		//
+		// By default, appends the subview `els` to the end of the `$target`
+		// selector. If `options.at` is set, inserts the subview `els` at the
+		// provided index.
+		//
+		// Can be overridden in subclasses.
+		insert: function( $target, els, options ) {
+			var at = options && options.at,
+				$children;
+
+			if ( _.isNumber( at ) && ($children = $target.children()).length > at )
+				$children.eq( at ).before( els );
+			else
+				$target.append( els );
+
+			return this;
+		},
+
+		// ### Trigger the ready event
+		//
+		// **Only use this method if you know what you're doing.**
+		// For performance reasons, this method does not check if the view is
+		// actually attached to the DOM. It's taking your word for it.
+		//
+		// Fires the ready event on the current view and all attached subviews.
+		ready: function() {
+			this.view.trigger('ready');
+
+			// Find all attached subviews, and call ready on them.
+			_.chain( this.all() ).map( function( view ) {
+				return view.views;
+			}).flatten().where({ attached: true }).invoke('ready');
+		},
+
+		// #### Internal. Attaches a series of views to a selector.
+		//
+		// Checks to see if a matching selector exists, renders the views,
+		// performs the proper DOM operation, and then checks if the view is
+		// attached to the document.
+		_attach: function( selector, views, options ) {
+			var $selector = selector ? this.view.$( selector ) : this.view.$el,
+				managers;
+
+			// Check if we found a location to attach the views.
+			if ( ! $selector.length )
+				return this;
+
+			managers = _.chain( views ).pluck('views').flatten().value();
+
+			// Render the views if necessary.
+			_.each( managers, function( manager ) {
+				if ( manager.rendered )
+					return;
+
+				manager.view.render();
+				manager.rendered = true;
+			}, this );
+
+			// Insert or replace the views.
+			this[ options.add ? 'insert' : 'replace' ]( $selector, _.pluck( views, 'el' ), options );
+
+			// Set attached and trigger ready if the current view is already
+			// attached to the DOM.
+			_.each( managers, function( manager ) {
+				manager.attached = true;
+
+				if ( options.ready )
+					manager.ready();
+			}, this );
+
+			return this;
+		},
+
+		// #### Internal. Checks if the current view is in the DOM.
+		_isReady: function() {
+			var node = this.view.el;
+			while ( node ) {
+				if ( node === document.body )
+					return true;
+				node = node.parentNode;
+			}
+
+			return false;
+		}
+	});
+
+	// wp.media.View
+	// -------------
+	//
+	// The base view class.
+	media.View = Backbone.View.extend({
+		// The constructor for the `Views` manager.
+		Views: media.Views,
+
+		constructor: function( options ) {
+			this.views = new this.Views( this, this.views );
+			this.on( 'ready', this.ready, this );
+
+			if ( options && options.controller )
+				this.controller = options.controller;
+
+			Backbone.View.apply( this, arguments );
+		},
+
+		dispose: function() {
+			// Undelegating events, removing events from the model, and
+			// removing events from the controller mirror the code for
+			// `Backbone.View.dispose` in Backbone master.
+			this.undelegateEvents();
+
+			if ( this.model && this.model.off )
+				this.model.off( null, null, this );
+
+			if ( this.collection && this.collection.off )
+				this.collection.off( null, null, this );
+
+			// Unbind controller events.
+			if ( this.controller && this.controller.off )
+				this.controller.off( null, null, this );
+
+			// Recursively dispose child views.
+			if ( this.views )
+				this.views.dispose();
+
+			return this;
+		},
+
+		remove: function() {
+			this.dispose();
+			return Backbone.View.prototype.remove.apply( this, arguments );
+		},
+
+		render: function() {
+			var options;
+
+			if ( this.prepare )
+				options = this.prepare();
+
+			this.views.detach();
+
+			if ( this.template ) {
+				options = options || {};
+				this.trigger( 'prepare', options );
+				this.$el.html( this.template( options ) );
+			}
+
+			this.views.render();
+			return this;
+		},
+
+		prepare: function() {
+			return this.options;
+		},
+
+		ready: function() {}
+	});
+
+	/**
+	 * wp.media.view.Frame
+	 */
+	media.view.Frame = media.View.extend({
+		initialize: function() {
+			this._createRegions();
+			this._createStates();
+		},
+
+		_createRegions: function() {
+			// Clone the regions array.
+			this.regions = this.regions ? this.regions.slice() : [];
+
+			// Initialize regions.
+			_.each( this.regions, function( region ) {
+				this[ region ] = new media.controller.Region({
+					view:     this,
+					id:       region,
+					selector: '.media-frame-' + region
+				});
+			}, this );
+		},
+
+		_createStates: function() {
+			// Create the default `states` collection.
+			this.states = new Backbone.Collection( null, {
+				model: media.controller.State
+			});
+
+			// Ensure states have a reference to the frame.
+			this.states.on( 'add', function( model ) {
+				model.frame = this;
+				model.trigger('ready');
+			}, this );
+
+			if ( this.options.states )
+				this.states.add( this.options.states );
+		},
+
+		reset: function() {
+			this.states.invoke( 'trigger', 'reset' );
+			return this;
+		}
+	});
+
+	// Make the `Frame` a `StateMachine`.
+	_.extend( media.view.Frame.prototype, media.controller.StateMachine.prototype );
+
+	/**
+	 * wp.media.view.MediaFrame
+	 */
+	media.view.MediaFrame = media.view.Frame.extend({
+		className: 'media-frame',
+		template:  media.template('media-frame'),
+		regions:   ['menu','title','content','toolbar','router'],
+
+		initialize: function() {
+			media.view.Frame.prototype.initialize.apply( this, arguments );
+
+			_.defaults( this.options, {
+				title:    '',
+				modal:    true,
+				uploader: true
+			});
+
+			// Ensure core UI is enabled.
+			this.$el.addClass('wp-core-ui');
+
+			// Initialize modal container view.
+			if ( this.options.modal ) {
+				this.modal = new media.view.Modal({
+					controller: this,
+					title:      this.options.title
+				});
+
+				this.modal.content( this );
+			}
+
+			// Force the uploader off if the upload limit has been exceeded or
+			// if the browser isn't supported.
+			if ( wp.Uploader.limitExceeded || ! wp.Uploader.browser.supported )
+				this.options.uploader = false;
+
+			// Initialize window-wide uploader.
+			if ( this.options.uploader ) {
+				this.uploader = new media.view.UploaderWindow({
+					controller: this,
+					uploader: {
+						dropzone:  this.modal ? this.modal.$el : this.$el,
+						container: this.$el
+					}
+				});
+				this.views.set( '.media-frame-uploader', this.uploader );
+			}
+
+			this.on( 'attach', _.bind( this.views.ready, this.views ), this );
+
+			// Bind default title creation.
+			this.on( 'title:create:default', this.createTitle, this );
+			this.title.mode('default');
+
+			// Bind default menu.
+			this.on( 'menu:create:default', this.createMenu, this );
+		},
+
+		render: function() {
+			// Activate the default state if no active state exists.
+			if ( ! this.state() && this.options.state )
+				this.setState( this.options.state );
+
+			return media.view.Frame.prototype.render.apply( this, arguments );
+		},
+
+		createTitle: function( title ) {
+			title.view = new media.View({
+				controller: this,
+				tagName: 'h1'
+			});
+		},
+
+		createMenu: function( menu ) {
+			menu.view = new media.view.Menu({
+				controller: this
+			});
+		},
+
+		createToolbar: function( toolbar ) {
+			toolbar.view = new media.view.Toolbar({
+				controller: this
+			});
+		},
+
+		createRouter: function( router ) {
+			router.view = new media.view.Router({
+				controller: this
+			});
+		},
+
+		createIframeStates: function( options ) {
+			var settings = media.view.settings,
+				tabs = settings.tabs,
+				tabUrl = settings.tabUrl,
+				$postId;
+
+			if ( ! tabs || ! tabUrl )
+				return;
+
+			// Add the post ID to the tab URL if it exists.
+			$postId = $('#post_ID');
+			if ( $postId.length )
+				tabUrl += '&post_id=' + $postId.val();
+
+			// Generate the tab states.
+			_.each( tabs, function( title, id ) {
+				var frame = this.state( 'iframe:' + id ).set( _.defaults({
+					tab:     id,
+					src:     tabUrl + '&tab=' + id,
+					title:   title,
+					content: 'iframe',
+					menu:    'default'
+				}, options ) );
+			}, this );
+
+			this.on( 'content:create:iframe', this.iframeContent, this );
+			this.on( 'menu:render:default', this.iframeMenu, this );
+			this.on( 'open', this.hijackThickbox, this );
+			this.on( 'close', this.restoreThickbox, this );
+		},
+
+		iframeContent: function( content ) {
+			this.$el.addClass('hide-toolbar');
+			content.view = new media.view.Iframe({
+				controller: this
+			});
+		},
+
+		iframeMenu: function( view ) {
+			var views = {};
+
+			if ( ! view )
+				return;
+
+			_.each( media.view.settings.tabs, function( title, id ) {
+				views[ 'iframe:' + id ] = {
+					text: this.state( 'iframe:' + id ).get('title'),
+					priority: 200
+				};
+			}, this );
+
+			view.set( views );
+		},
+
+		hijackThickbox: function() {
+			var frame = this;
+
+			if ( ! window.tb_remove || this._tb_remove )
+				return;
+
+			this._tb_remove = window.tb_remove;
+			window.tb_remove = function() {
+				frame.close();
+				frame.reset();
+				frame.setState( frame.options.state );
+				frame._tb_remove.call( window );
+			};
+		},
+
+		restoreThickbox: function() {
+			if ( ! this._tb_remove )
+				return;
+
+			window.tb_remove = this._tb_remove;
+			delete this._tb_remove;
+		}
+	});
+
+	// Map some of the modal's methods to the frame.
+	_.each(['open','close','attach','detach','escape'], function( method ) {
+		media.view.MediaFrame.prototype[ method ] = function( view ) {
+			if ( this.modal )
+				this.modal[ method ].apply( this.modal, arguments );
+			return this;
+		};
+	});
+
+	/**
+	 * wp.media.view.MediaFrame.Select
+	 */
+	media.view.MediaFrame.Select = media.view.MediaFrame.extend({
+		initialize: function() {
+			media.view.MediaFrame.prototype.initialize.apply( this, arguments );
+
+			_.defaults( this.options, {
+				selection: [],
+				library:   {},
+				multiple:  false,
+				state:    'library'
+			});
+
+			this.createSelection();
+			this.createStates();
+			this.bindHandlers();
+		},
+
+		createSelection: function() {
+			var controller = this,
+				selection = this.options.selection;
+
+			if ( ! (selection instanceof media.model.Selection) ) {
+				this.options.selection = new media.model.Selection( selection, {
+					multiple: this.options.multiple
+				});
+			}
+
+			this._selection = {
+				attachments: new Attachments(),
+				difference: []
+			};
+		},
+
+		createStates: function() {
+			var options = this.options;
+
+			if ( this.options.states )
+				return;
+
+			// Add the default states.
+			this.states.add([
+				// Main states.
+				new media.controller.Library({
+					library:   media.query( options.library ),
+					multiple:  options.multiple,
+					title:     options.title,
+					priority:  20
+				})
+			]);
+		},
+
+		bindHandlers: function() {
+			this.on( 'router:create:browse', this.createRouter, this );
+			this.on( 'router:render:browse', this.browseRouter, this );
+			this.on( 'content:create:browse', this.browseContent, this );
+			this.on( 'content:render:upload', this.uploadContent, this );
+			this.on( 'toolbar:create:select', this.createSelectToolbar, this );
+		},
+
+		// Routers
+		browseRouter: function( view ) {
+			view.set({
+				upload: {
+					text:     l10n.uploadFilesTitle,
+					priority: 20
+				},
+				browse: {
+					text:     l10n.mediaLibraryTitle,
+					priority: 40
+				}
+			});
+		},
+
+		// Content
+		browseContent: function( content ) {
+			var state = this.state();
+
+			this.$el.removeClass('hide-toolbar');
+
+			// Browse our library of attachments.
+			content.view = new media.view.AttachmentsBrowser({
+				controller: this,
+				collection: state.get('library'),
+				selection:  state.get('selection'),
+				model:      state,
+				sortable:   state.get('sortable'),
+				search:     state.get('searchable'),
+				filters:    state.get('filterable'),
+				display:    state.get('displaySettings'),
+				dragInfo:   state.get('dragInfo'),
+
+				AttachmentView: state.get('AttachmentView')
+			});
+		},
+
+		uploadContent: function() {
+			this.$el.removeClass('hide-toolbar');
+			this.content.set( new media.view.UploaderInline({
+				controller: this
+			}) );
+		},
+
+		// Toolbars
+		createSelectToolbar: function( toolbar, options ) {
+			options = options || this.options.button || {};
+			options.controller = this;
+
+			toolbar.view = new media.view.Toolbar.Select( options );
+		}
+	});
+
+	/**
+	 * wp.media.view.MediaFrame.Post
+	 */
+	media.view.MediaFrame.Post = media.view.MediaFrame.Select.extend({
+		initialize: function() {
+			_.defaults( this.options, {
+				multiple:  true,
+				editing:   false,
+				state:    'insert'
+			});
+
+			media.view.MediaFrame.Select.prototype.initialize.apply( this, arguments );
+			this.createIframeStates();
+		},
+
+		createStates: function() {
+			var options = this.options;
+
+			// Add the default states.
+			this.states.add([
+				// Main states.
+				new media.controller.Library({
+					id:         'insert',
+					title:      l10n.insertMediaTitle,
+					priority:   20,
+					toolbar:    'main-insert',
+					filterable: 'all',
+					library:    media.query( options.library ),
+					multiple:   options.multiple ? 'reset' : false,
+					editable:   true,
+
+					// If the user isn't allowed to edit fields,
+					// can they still edit it locally?
+					allowLocalEdits: true,
+
+					// Show the attachment display settings.
+					displaySettings: true,
+					// Update user settings when users adjust the
+					// attachment display settings.
+					displayUserSettings: true
+				}),
+
+				new media.controller.Library({
+					id:         'gallery',
+					title:      l10n.createGalleryTitle,
+					priority:   40,
+					toolbar:    'main-gallery',
+					filterable: 'uploaded',
+					multiple:   'add',
+					editable:   false,
+
+					library:  media.query( _.defaults({
+						type: 'image'
+					}, options.library ) )
+				}),
+
+				// Embed states.
+				new media.controller.Embed(),
+
+				// Gallery states.
+				new media.controller.GalleryEdit({
+					library: options.selection,
+					editing: options.editing,
+					menu:    'gallery'
+				}),
+
+				new media.controller.GalleryAdd()
+			]);
+
+
+			if ( media.view.settings.post.featuredImageId ) {
+				this.states.add( new media.controller.FeaturedImage() );
+			}
+		},
+
+		bindHandlers: function() {
+			media.view.MediaFrame.Select.prototype.bindHandlers.apply( this, arguments );
+			this.on( 'menu:create:gallery', this.createMenu, this );
+			this.on( 'toolbar:create:main-insert', this.createToolbar, this );
+			this.on( 'toolbar:create:main-gallery', this.createToolbar, this );
+			this.on( 'toolbar:create:featured-image', this.featuredImageToolbar, this );
+			this.on( 'toolbar:create:main-embed', this.mainEmbedToolbar, this );
+
+			var handlers = {
+					menu: {
+						'default': 'mainMenu',
+						'gallery': 'galleryMenu'
+					},
+
+					content: {
+						'embed':          'embedContent',
+						'edit-selection': 'editSelectionContent'
+					},
+
+					toolbar: {
+						'main-insert':      'mainInsertToolbar',
+						'main-gallery':     'mainGalleryToolbar',
+						'gallery-edit':     'galleryEditToolbar',
+						'gallery-add':      'galleryAddToolbar'
+					}
+				};
+
+			_.each( handlers, function( regionHandlers, region ) {
+				_.each( regionHandlers, function( callback, handler ) {
+					this.on( region + ':render:' + handler, this[ callback ], this );
+				}, this );
+			}, this );
+		},
+
+		// Menus
+		mainMenu: function( view ) {
+			view.set({
+				'library-separator': new media.View({
+					className: 'separator',
+					priority: 100
+				})
+			});
+		},
+
+		galleryMenu: function( view ) {
+			var lastState = this.lastState(),
+				previous = lastState && lastState.id,
+				frame = this;
+
+			view.set({
+				cancel: {
+					text:     l10n.cancelGalleryTitle,
+					priority: 20,
+					click:    function() {
+						if ( previous )
+							frame.setState( previous );
+						else
+							frame.close();
+					}
+				},
+				separateCancel: new media.View({
+					className: 'separator',
+					priority: 40
+				})
+			});
+		},
+
+		// Content
+		embedContent: function() {
+			var view = new media.view.Embed({
+				controller: this,
+				model:      this.state()
+			}).render();
+
+			this.content.set( view );
+			view.url.focus();
+		},
+
+		editSelectionContent: function() {
+			var state = this.state(),
+				selection = state.get('selection'),
+				view;
+
+			view = new media.view.AttachmentsBrowser({
+				controller: this,
+				collection: selection,
+				selection:  selection,
+				model:      state,
+				sortable:   true,
+				search:     false,
+				dragInfo:   true,
+
+				AttachmentView: media.view.Attachment.EditSelection
+			}).render();
+
+			view.toolbar.set( 'backToLibrary', {
+				text:     l10n.returnToLibrary,
+				priority: -100,
+
+				click: function() {
+					this.controller.content.mode('browse');
+				}
+			});
+
+			// Browse our library of attachments.
+			this.content.set( view );
+		},
+
+		// Toolbars
+		selectionStatusToolbar: function( view ) {
+			var editable = this.state().get('editable');
+
+			view.set( 'selection', new media.view.Selection({
+				controller: this,
+				collection: this.state().get('selection'),
+				priority:   -40,
+
+				// If the selection is editable, pass the callback to
+				// switch the content mode.
+				editable: editable && function() {
+					this.controller.content.mode('edit-selection');
+				}
+			}).render() );
+		},
+
+		mainInsertToolbar: function( view ) {
+			var controller = this;
+
+			this.selectionStatusToolbar( view );
+
+			view.set( 'insert', {
+				style:    'primary',
+				priority: 80,
+				text:     l10n.insertIntoPost,
+				requires: { selection: true },
+
+				click: function() {
+					var state = controller.state(),
+						selection = state.get('selection');
+
+					controller.close();
+					state.trigger( 'insert', selection ).reset();
+				}
+			});
+		},
+
+		mainGalleryToolbar: function( view ) {
+			var controller = this;
+
+			this.selectionStatusToolbar( view );
+
+			view.set( 'gallery', {
+				style:    'primary',
+				text:     l10n.createNewGallery,
+				priority: 60,
+				requires: { selection: true },
+
+				click: function() {
+					var selection = controller.state().get('selection'),
+						edit = controller.state('gallery-edit'),
+						models = selection.where({ type: 'image' });
+
+					edit.set( 'library', new media.model.Selection( models, {
+						props:    selection.props.toJSON(),
+						multiple: true
+					}) );
+
+					this.controller.setState('gallery-edit');
+				}
+			});
+		},
+
+		featuredImageToolbar: function( toolbar ) {
+			this.createSelectToolbar( toolbar, {
+				text:  l10n.setFeaturedImage,
+				state: this.options.state || 'upload'
+			});
+		},
+
+		mainEmbedToolbar: function( toolbar ) {
+			toolbar.view = new media.view.Toolbar.Embed({
+				controller: this
+			});
+		},
+
+		galleryEditToolbar: function() {
+			var editing = this.state().get('editing');
+			this.toolbar.set( new media.view.Toolbar({
+				controller: this,
+				items: {
+					insert: {
+						style:    'primary',
+						text:     editing ? l10n.updateGallery : l10n.insertGallery,
+						priority: 80,
+						requires: { library: true },
+
+						click: function() {
+							var controller = this.controller,
+								state = controller.state();
+
+							controller.close();
+							state.trigger( 'update', state.get('library') );
+
+							controller.reset();
+							// @todo: Make the state activated dynamic (instead of hardcoded).
+							controller.setState('upload');
+						}
+					}
+				}
+			}) );
+		},
+
+		galleryAddToolbar: function() {
+			this.toolbar.set( new media.view.Toolbar({
+				controller: this,
+				items: {
+					insert: {
+						style:    'primary',
+						text:     l10n.addToGallery,
+						priority: 80,
+						requires: { selection: true },
+
+						click: function() {
+							var controller = this.controller,
+								state = controller.state(),
+								edit = controller.state('gallery-edit');
+
+							edit.get('library').add( state.get('selection').models );
+							state.trigger('reset');
+							controller.setState('gallery-edit');
+						}
+					}
+				}
+			}) );
+		}
+	});
+
+	/**
+	 * wp.media.view.Modal
+	 */
+	media.view.Modal = media.View.extend({
+		tagName:  'div',
+		template: media.template('media-modal'),
+
+		attributes: {
+			tabindex: 0
+		},
+
+		events: {
+			'click .media-modal-backdrop, .media-modal-close': 'escapeHandler',
+			'keydown': 'keydown'
+		},
+
+		initialize: function() {
+			_.defaults( this.options, {
+				container: document.body,
+				title:     '',
+				propagate: true,
+				freeze:    true
+			});
+		},
+
+		prepare: function() {
+			return {
+				title: this.options.title
+			};
+		},
+
+		attach: function() {
+			if ( this.views.attached )
+				return this;
+
+			if ( ! this.views.rendered )
+				this.render();
+
+			this.$el.appendTo( this.options.container );
+
+			// Manually mark the view as attached and trigger ready.
+			this.views.attached = true;
+			this.views.ready();
+
+			return this.propagate('attach');
+		},
+
+		detach: function() {
+			if ( this.$el.is(':visible') )
+				this.close();
+
+			this.$el.detach();
+			this.views.attached = false;
+			return this.propagate('detach');
+		},
+
+		open: function() {
+			var $el = this.$el,
+				options = this.options;
+
+			if ( $el.is(':visible') )
+				return this;
+
+			if ( ! this.views.attached )
+				this.attach();
+
+			// If the `freeze` option is set, record the window's scroll position.
+			if ( options.freeze ) {
+				this._freeze = {
+					scrollTop: $( window ).scrollTop()
+				};
+			}
+
+			$el.show().focus();
+			return this.propagate('open');
+		},
+
+		close: function( options ) {
+			var freeze = this._freeze;
+
+			if ( ! this.views.attached || ! this.$el.is(':visible') )
+				return this;
+
+			this.$el.hide();
+			this.propagate('close');
+
+			// If the `freeze` option is set, restore the container's scroll position.
+			if ( freeze ) {
+				$( window ).scrollTop( freeze.scrollTop );
+			}
+
+			if ( options && options.escape )
+				this.propagate('escape');
+
+			return this;
+		},
+
+		escape: function() {
+			return this.close({ escape: true });
+		},
+
+		escapeHandler: function( event ) {
+			event.preventDefault();
+			this.escape();
+		},
+
+		content: function( content ) {
+			this.views.set( '.media-modal-content', content );
+			return this;
+		},
+
+		// Triggers a modal event and if the `propagate` option is set,
+		// forwards events to the modal's controller.
+		propagate: function( id ) {
+			this.trigger( id );
+
+			if ( this.options.propagate )
+				this.controller.trigger( id );
+
+			return this;
+		},
+
+		keydown: function( event ) {
+			// Close the modal when escape is pressed.
+			if ( 27 === event.which ) {
+				event.preventDefault();
+				this.escape();
+				return;
+			}
+		}
+	});
+
+	// wp.media.view.FocusManager
+	// ----------------------------
+	media.view.FocusManager = media.View.extend({
+		events: {
+			keydown: 'recordTab',
+			focusin: 'updateIndex'
+		},
+
+		focus: function() {
+			if ( _.isUndefined( this.index ) )
+				return;
+
+			// Update our collection of `$tabbables`.
+			this.$tabbables = this.$(':tabbable');
+
+			// If tab is saved, focus it.
+			this.$tabbables.eq( this.index ).focus();
+		},
+
+		recordTab: function( event ) {
+			// Look for the tab key.
+			if ( 9 !== event.keyCode )
+				return;
+
+			// First try to update the index.
+			if ( _.isUndefined( this.index ) )
+				this.updateIndex( event );
+
+			// If we still don't have an index, bail.
+			if ( _.isUndefined( this.index ) )
+				return;
+
+			var index = this.index + ( event.shiftKey ? -1 : 1 );
+
+			if ( index >= 0 && index < this.$tabbables.length )
+				this.index = index;
+			else
+				delete this.index;
+		},
+
+		updateIndex: function( event ) {
+			this.$tabbables = this.$(':tabbable');
+
+			var index = this.$tabbables.index( event.target );
+
+			if ( -1 === index )
+				delete this.index;
+			else
+				this.index = index;
+		}
+	});
+
+	// wp.media.view.UploaderWindow
+	// ----------------------------
+	media.view.UploaderWindow = media.View.extend({
+		tagName:   'div',
+		className: 'uploader-window',
+		template:  media.template('uploader-window'),
+
+		initialize: function() {
+			var uploader;
+
+			this.$browser = $('<a href="#" class="browser" />').hide().appendTo('body');
+
+			uploader = this.options.uploader = _.defaults( this.options.uploader || {}, {
+				dropzone:  this.$el,
+				browser:   this.$browser,
+				params:    {}
+			});
+
+			// Ensure the dropzone is a jQuery collection.
+			if ( uploader.dropzone && ! (uploader.dropzone instanceof $) )
+				uploader.dropzone = $( uploader.dropzone );
+
+			this.controller.on( 'activate', this.refresh, this );
+		},
+
+		refresh: function() {
+			if ( this.uploader )
+				this.uploader.refresh();
+		},
+
+		ready: function() {
+			var postId = media.view.settings.post.id,
+				dropzone;
+
+			// If the uploader already exists, bail.
+			if ( this.uploader )
+				return;
+
+			if ( postId )
+				this.options.uploader.params.post_id = postId;
+
+			this.uploader = new wp.Uploader( this.options.uploader );
+
+			dropzone = this.uploader.dropzone;
+			dropzone.on( 'dropzone:enter', _.bind( this.show, this ) );
+			dropzone.on( 'dropzone:leave', _.bind( this.hide, this ) );
+		},
+
+		show: function() {
+			var $el = this.$el.show();
+
+			// Ensure that the animation is triggered by waiting until
+			// the transparent element is painted into the DOM.
+			_.defer( function() {
+				$el.css({ opacity: 1 });
+			});
+		},
+
+		hide: function() {
+			var $el = this.$el.css({ opacity: 0 });
+
+			media.transition( $el ).done( function() {
+				// Transition end events are subject to race conditions.
+				// Make sure that the value is set as intended.
+				if ( '0' === $el.css('opacity') )
+					$el.hide();
+			});
+		}
+	});
+
+	media.view.UploaderInline = media.View.extend({
+		tagName:   'div',
+		className: 'uploader-inline',
+		template:  media.template('uploader-inline'),
+
+		initialize: function() {
+			_.defaults( this.options, {
+				message: '',
+				status:  true
+			});
+
+			if ( ! this.options.$browser && this.controller.uploader )
+				this.options.$browser = this.controller.uploader.$browser;
+
+			if ( _.isUndefined( this.options.postId ) )
+				this.options.postId = media.view.settings.post.id;
+
+			if ( this.options.status ) {
+				this.views.set( '.upload-inline-status', new media.view.UploaderStatus({
+					controller: this.controller
+				}) );
+			}
+		},
+
+		dispose: function() {
+			if ( this.disposing )
+				return media.View.prototype.dispose.apply( this, arguments );
+
+			// Run remove on `dispose`, so we can be sure to refresh the
+			// uploader with a view-less DOM. Track whether we're disposing
+			// so we don't trigger an infinite loop.
+			this.disposing = true;
+			return this.remove();
+		},
+
+		remove: function() {
+			var result = media.View.prototype.remove.apply( this, arguments );
+
+			_.defer( _.bind( this.refresh, this ) );
+			return result;
+		},
+
+		refresh: function() {
+			var uploader = this.controller.uploader;
+
+			if ( uploader )
+				uploader.refresh();
+		},
+
+		ready: function() {
+			var $browser = this.options.$browser,
+				$placeholder;
+
+			if ( this.controller.uploader ) {
+				$placeholder = this.$('.browser');
+
+				// Check if we've already replaced the placeholder.
+				if ( $placeholder[0] === $browser[0] )
+					return;
+
+				$browser.detach().text( $placeholder.text() );
+				$browser[0].className = $placeholder[0].className;
+				$placeholder.replaceWith( $browser.show() );
+			}
+
+			this.refresh();
+			return this;
+		}
+	});
+
+	/**
+	 * wp.media.view.UploaderStatus
+	 */
+	media.view.UploaderStatus = media.View.extend({
+		className: 'media-uploader-status',
+		template:  media.template('uploader-status'),
+
+		events: {
+			'click .upload-dismiss-errors': 'dismiss'
+		},
+
+		initialize: function() {
+			this.queue = wp.Uploader.queue;
+			this.queue.on( 'add remove reset', this.visibility, this );
+			this.queue.on( 'add remove reset change:percent', this.progress, this );
+			this.queue.on( 'add remove reset change:uploading', this.info, this );
+
+			this.errors = wp.Uploader.errors;
+			this.errors.reset();
+			this.errors.on( 'add remove reset', this.visibility, this );
+			this.errors.on( 'add', this.error, this );
+		},
+
+		dispose: function() {
+			wp.Uploader.queue.off( null, null, this );
+			media.View.prototype.dispose.apply( this, arguments );
+			return this;
+		},
+
+		visibility: function() {
+			this.$el.toggleClass( 'uploading', !! this.queue.length );
+			this.$el.toggleClass( 'errors', !! this.errors.length );
+			this.$el.toggle( !! this.queue.length || !! this.errors.length );
+		},
+
+		ready: function() {
+			_.each({
+				'$bar':      '.media-progress-bar div',
+				'$index':    '.upload-index',
+				'$total':    '.upload-total',
+				'$filename': '.upload-filename'
+			}, function( selector, key ) {
+				this[ key ] = this.$( selector );
+			}, this );
+
+			this.visibility();
+			this.progress();
+			this.info();
+		},
+
+		progress: function() {
+			var queue = this.queue,
+				$bar = this.$bar,
+				memo = 0;
+
+			if ( ! $bar || ! queue.length )
+				return;
+
+			$bar.width( ( queue.reduce( function( memo, attachment ) {
+				if ( ! attachment.get('uploading') )
+					return memo + 100;
+
+				var percent = attachment.get('percent');
+				return memo + ( _.isNumber( percent ) ? percent : 100 );
+			}, 0 ) / queue.length ) + '%' );
+		},
+
+		info: function() {
+			var queue = this.queue,
+				index = 0, active;
+
+			if ( ! queue.length )
+				return;
+
+			active = this.queue.find( function( attachment, i ) {
+				index = i;
+				return attachment.get('uploading');
+			});
+
+			this.$index.text( index + 1 );
+			this.$total.text( queue.length );
+			this.$filename.html( active ? this.filename( active.get('filename') ) : '' );
+		},
+
+		filename: function( filename ) {
+			return media.truncate( _.escape( filename ), 24 );
+		},
+
+		error: function( error ) {
+			this.views.add( '.upload-errors', new media.view.UploaderStatusError({
+				filename: this.filename( error.get('file').name ),
+				message:  error.get('message')
+			}), { at: 0 });
+		},
+
+		dismiss: function( event ) {
+			var errors = this.views.get('.upload-errors');
+
+			event.preventDefault();
+
+			if ( errors )
+				_.invoke( errors, 'remove' );
+			wp.Uploader.errors.reset();
+		}
+	});
+
+	media.view.UploaderStatusError = media.View.extend({
+		className: 'upload-error',
+		template:  media.template('uploader-status-error')
+	});
+
+	/**
+	 * wp.media.view.Toolbar
+	 */
+	media.view.Toolbar = media.View.extend({
+		tagName:   'div',
+		className: 'media-toolbar',
+
+		initialize: function() {
+			var state = this.controller.state(),
+				selection = this.selection = state.get('selection'),
+				library = this.library = state.get('library');
+
+			this._views = {};
+
+			// The toolbar is composed of two `PriorityList` views.
+			this.primary   = new media.view.PriorityList();
+			this.secondary = new media.view.PriorityList();
+			this.primary.$el.addClass('media-toolbar-primary');
+			this.secondary.$el.addClass('media-toolbar-secondary');
+
+			this.views.set([ this.secondary, this.primary ]);
+
+			if ( this.options.items )
+				this.set( this.options.items, { silent: true });
+
+			if ( ! this.options.silent )
+				this.render();
+
+			if ( selection )
+				selection.on( 'add remove reset', this.refresh, this );
+			if ( library )
+				library.on( 'add remove reset', this.refresh, this );
+		},
+
+		dispose: function() {
+			if ( this.selection )
+				this.selection.off( null, null, this );
+			if ( this.library )
+				this.library.off( null, null, this );
+			return media.View.prototype.dispose.apply( this, arguments );
+		},
+
+		ready: function() {
+			this.refresh();
+		},
+
+		set: function( id, view, options ) {
+			var list;
+			options = options || {};
+
+			// Accept an object with an `id` : `view` mapping.
+			if ( _.isObject( id ) ) {
+				_.each( id, function( view, id ) {
+					this.set( id, view, { silent: true });
+				}, this );
+
+			} else {
+				if ( ! ( view instanceof Backbone.View ) ) {
+					view.classes = [ 'media-button-' + id ].concat( view.classes || [] );
+					view = new media.view.Button( view ).render();
+				}
+
+				view.controller = view.controller || this.controller;
+
+				this._views[ id ] = view;
+
+				list = view.options.priority < 0 ? 'secondary' : 'primary';
+				this[ list ].set( id, view, options );
+			}
+
+			if ( ! options.silent )
+				this.refresh();
+
+			return this;
+		},
+
+		get: function( id ) {
+			return this._views[ id ];
+		},
+
+		unset: function( id, options ) {
+			delete this._views[ id ];
+			this.primary.unset( id, options );
+			this.secondary.unset( id, options );
+
+			if ( ! options || ! options.silent )
+				this.refresh();
+			return this;
+		},
+
+		refresh: function() {
+			var state = this.controller.state(),
+				library = state.get('library'),
+				selection = state.get('selection');
+
+			_.each( this._views, function( button ) {
+				if ( ! button.model || ! button.options || ! button.options.requires )
+					return;
+
+				var requires = button.options.requires,
+					disabled = false;
+
+				if ( requires.selection && selection && ! selection.length )
+					disabled = true;
+				else if ( requires.library && library && ! library.length )
+					disabled = true;
+
+				button.model.set( 'disabled', disabled );
+			});
+		}
+	});
+
+	// wp.media.view.Toolbar.Select
+	// ----------------------------
+	media.view.Toolbar.Select = media.view.Toolbar.extend({
+		initialize: function() {
+			var options = this.options,
+				controller = options.controller,
+				selection = controller.state().get('selection');
+
+			_.bindAll( this, 'clickSelect' );
+
+			_.defaults( options, {
+				event: 'select',
+				state: false,
+				reset: true,
+				close: true,
+				text:  l10n.select,
+
+				// Does the button rely on the selection?
+				requires: {
+					selection: true
+				}
+			});
+
+			options.items = _.defaults( options.items || {}, {
+				select: {
+					style:    'primary',
+					text:     options.text,
+					priority: 80,
+					click:    this.clickSelect,
+					requires: options.requires
+				}
+			});
+
+			media.view.Toolbar.prototype.initialize.apply( this, arguments );
+		},
+
+		clickSelect: function() {
+			var options = this.options,
+				controller = this.controller;
+
+			if ( options.close )
+				controller.close();
+
+			if ( options.event )
+				controller.state().trigger( options.event );
+
+			if ( options.reset )
+				controller.reset();
+
+			if ( options.state )
+				controller.setState( options.state );
+		}
+	});
+
+	// wp.media.view.Toolbar.Embed
+	// ---------------------------
+	media.view.Toolbar.Embed = media.view.Toolbar.Select.extend({
+		initialize: function() {
+			_.defaults( this.options, {
+				text: l10n.insertIntoPost,
+				requires: false
+			});
+
+			media.view.Toolbar.Select.prototype.initialize.apply( this, arguments );
+		},
+
+		refresh: function() {
+			var url = this.controller.state().props.get('url');
+			this.get('select').model.set( 'disabled', ! url || url === 'http://' );
+
+			media.view.Toolbar.Select.prototype.refresh.apply( this, arguments );
+		}
+	});
+
+	/**
+	 * wp.media.view.Button
+	 */
+	media.view.Button = media.View.extend({
+		tagName:    'a',
+		className:  'media-button',
+		attributes: { href: '#' },
+
+		events: {
+			'click': 'click'
+		},
+
+		defaults: {
+			text:     '',
+			style:    '',
+			size:     'large',
+			disabled: false
+		},
+
+		initialize: function() {
+			// Create a model with the provided `defaults`.
+			this.model = new Backbone.Model( this.defaults );
+
+			// If any of the `options` have a key from `defaults`, apply its
+			// value to the `model` and remove it from the `options object.
+			_.each( this.defaults, function( def, key ) {
+				var value = this.options[ key ];
+				if ( _.isUndefined( value ) )
+					return;
+
+				this.model.set( key, value );
+				delete this.options[ key ];
+			}, this );
+
+			this.model.on( 'change', this.render, this );
+		},
+
+		render: function() {
+			var classes = [ 'button', this.className ],
+				model = this.model.toJSON();
+
+			if ( model.style )
+				classes.push( 'button-' + model.style );
+
+			if ( model.size )
+				classes.push( 'button-' + model.size );
+
+			classes = _.uniq( classes.concat( this.options.classes ) );
+			this.el.className = classes.join(' ');
+
+			this.$el.attr( 'disabled', model.disabled );
+			this.$el.text( this.model.get('text') );
+
+			return this;
+		},
+
+		click: function( event ) {
+			if ( '#' === this.attributes.href )
+				event.preventDefault();
+
+			if ( this.options.click && ! this.model.get('disabled') )
+				this.options.click.apply( this, arguments );
+		}
+	});
+
+	/**
+	 * wp.media.view.ButtonGroup
+	 */
+	media.view.ButtonGroup = media.View.extend({
+		tagName:   'div',
+		className: 'button-group button-large media-button-group',
+
+		initialize: function() {
+			this.buttons = _.map( this.options.buttons || [], function( button ) {
+				if ( button instanceof Backbone.View )
+					return button;
+				else
+					return new media.view.Button( button ).render();
+			});
+
+			delete this.options.buttons;
+
+			if ( this.options.classes )
+				this.$el.addClass( this.options.classes );
+		},
+
+		render: function() {
+			this.$el.html( $( _.pluck( this.buttons, 'el' ) ).detach() );
+			return this;
+		}
+	});
+
+	/**
+	 * wp.media.view.PriorityList
+	 */
+
+	media.view.PriorityList = media.View.extend({
+		tagName:   'div',
+
+		initialize: function() {
+			this._views = {};
+
+			this.set( _.extend( {}, this._views, this.options.views ), { silent: true });
+			delete this.options.views;
+
+			if ( ! this.options.silent )
+				this.render();
+		},
+
+		set: function( id, view, options ) {
+			var priority, views, index;
+
+			options = options || {};
+
+			// Accept an object with an `id` : `view` mapping.
+			if ( _.isObject( id ) ) {
+				_.each( id, function( view, id ) {
+					this.set( id, view );
+				}, this );
+				return this;
+			}
+
+			if ( ! (view instanceof Backbone.View) )
+				view = this.toView( view, id, options );
+
+			view.controller = view.controller || this.controller;
+
+			this.unset( id );
+
+			priority = view.options.priority || 10;
+			views = this.views.get() || [];
+
+			_.find( views, function( existing, i ) {
+				if ( existing.options.priority > priority ) {
+					index = i;
+					return true;
+				}
+			});
+
+			this._views[ id ] = view;
+			this.views.add( view, {
+				at: _.isNumber( index ) ? index : views.length || 0
+			});
+
+			return this;
+		},
+
+		get: function( id ) {
+			return this._views[ id ];
+		},
+
+		unset: function( id ) {
+			var view = this.get( id );
+
+			if ( view )
+				view.remove();
+
+			delete this._views[ id ];
+			return this;
+		},
+
+		toView: function( options ) {
+			return new media.View( options );
+		}
+	});
+
+	/**
+	 * wp.media.view.MenuItem
+	 */
+	media.view.MenuItem = media.View.extend({
+		tagName:   'a',
+		className: 'media-menu-item',
+
+		attributes: {
+			href: '#'
+		},
+
+		events: {
+			'click': '_click'
+		},
+
+		_click: function( event ) {
+			var clickOverride = this.options.click;
+
+			if ( event )
+				event.preventDefault();
+
+			if ( clickOverride )
+				clickOverride.call( this );
+			else
+				this.click();
+		},
+
+		click: function() {
+			var state = this.options.state;
+			if ( state )
+				this.controller.setState( state );
+		},
+
+		render: function() {
+			var options = this.options;
+
+			if ( options.text )
+				this.$el.text( options.text );
+			else if ( options.html )
+				this.$el.html( options.html );
+
+			return this;
+		}
+	});
+
+	/**
+	 * wp.media.view.Menu
+	 */
+	media.view.Menu = media.view.PriorityList.extend({
+		tagName:   'div',
+		className: 'media-menu',
+		property:  'state',
+		ItemView:  media.view.MenuItem,
+		region:    'menu',
+
+		toView: function( options, id ) {
+			options = options || {};
+			options[ this.property ] = options[ this.property ] || id;
+			return new this.ItemView( options ).render();
+		},
+
+		ready: function() {
+			media.view.PriorityList.prototype.ready.apply( this, arguments );
+			this.visibility();
+		},
+
+		set: function() {
+			media.view.PriorityList.prototype.set.apply( this, arguments );
+			this.visibility();
+		},
+
+		unset: function() {
+			media.view.PriorityList.prototype.unset.apply( this, arguments );
+			this.visibility();
+		},
+
+		visibility: function() {
+			var region = this.region,
+				view = this.controller[ region ].get(),
+				views = this.views.get(),
+				hide = ! views || views.length < 2;
+
+			if ( this === view )
+				this.controller.$el.toggleClass( 'hide-' + region, hide );
+		},
+
+		select: function( id ) {
+			var view = this.get( id );
+
+			if ( ! view )
+				return;
+
+			this.deselect();
+			view.$el.addClass('active');
+		},
+
+		deselect: function() {
+			this.$el.children().removeClass('active');
+		}
+	});
+
+	/**
+	 * wp.media.view.RouterItem
+	 */
+	media.view.RouterItem = media.view.MenuItem.extend({
+		click: function() {
+			var contentMode = this.options.contentMode;
+			if ( contentMode )
+				this.controller.content.mode( contentMode );
+		}
+	});
+
+	/**
+	 * wp.media.view.Router
+	 */
+	media.view.Router = media.view.Menu.extend({
+		tagName:   'div',
+		className: 'media-router',
+		property:  'contentMode',
+		ItemView:  media.view.RouterItem,
+		region:    'router',
+
+		initialize: function() {
+			this.controller.on( 'content:render', this.update, this );
+			media.view.Menu.prototype.initialize.apply( this, arguments );
+		},
+
+		update: function() {
+			var mode = this.controller.content.mode();
+			if ( mode )
+				this.select( mode );
+		}
+	});
+
+
+	/**
+	 * wp.media.view.Sidebar
+	 */
+	media.view.Sidebar = media.view.PriorityList.extend({
+		className: 'media-sidebar'
+	});
+
+	/**
+	 * wp.media.view.Attachment
+	 */
+	media.view.Attachment = media.View.extend({
+		tagName:   'li',
+		className: 'attachment',
+		template:  media.template('attachment'),
+
+		events: {
+			'click .attachment-preview':      'toggleSelectionHandler',
+			'change [data-setting]':          'updateSetting',
+			'change [data-setting] input':    'updateSetting',
+			'change [data-setting] select':   'updateSetting',
+			'change [data-setting] textarea': 'updateSetting',
+			'click .close':                   'removeFromLibrary',
+			'click .check':                   'removeFromSelection',
+			'click a':                        'preventDefault'
+		},
+
+		buttons: {},
+
+		initialize: function() {
+			var selection = this.options.selection;
+
+			this.model.on( 'change:sizes change:uploading change:caption change:title', this.render, this );
+			this.model.on( 'change:percent', this.progress, this );
+
+			// Update the selection.
+			this.model.on( 'add', this.select, this );
+			this.model.on( 'remove', this.deselect, this );
+			if ( selection )
+				selection.on( 'reset', this.updateSelect, this );
+
+			// Update the model's details view.
+			this.model.on( 'selection:single selection:unsingle', this.details, this );
+			this.details( this.model, this.controller.state().get('selection') );
+		},
+
+		dispose: function() {
+			var selection = this.options.selection;
+
+			// Make sure all settings are saved before removing the view.
+			this.updateAll();
+
+			if ( selection )
+				selection.off( null, null, this );
+
+			media.View.prototype.dispose.apply( this, arguments );
+			return this;
+		},
+
+		render: function() {
+			var options = _.defaults( this.model.toJSON(), {
+					orientation:   'landscape',
+					uploading:     false,
+					type:          '',
+					subtype:       '',
+					icon:          '',
+					filename:      '',
+					caption:       '',
+					title:         '',
+					dateFormatted: '',
+					width:         '',
+					height:        '',
+					compat:        false,
+					alt:           '',
+					description:   ''
+				});
+
+			options.buttons  = this.buttons;
+			options.describe = this.controller.state().get('describe');
+
+			if ( 'image' === options.type )
+				options.size = this.imageSize();
+
+			options.can = {};
+			if ( options.nonces ) {
+				options.can.remove = !! options.nonces['delete'];
+				options.can.save = !! options.nonces.update;
+			}
+
+			if ( this.controller.state().get('allowLocalEdits') )
+				options.allowLocalEdits = true;
+
+			this.views.detach();
+			this.$el.html( this.template( options ) );
+
+			this.$el.toggleClass( 'uploading', options.uploading );
+			if ( options.uploading )
+				this.$bar = this.$('.media-progress-bar div');
+			else
+				delete this.$bar;
+
+			// Check if the model is selected.
+			this.updateSelect();
+
+			// Update the save status.
+			this.updateSave();
+
+			this.views.render();
+
+			return this;
+		},
+
+		progress: function() {
+			if ( this.$bar && this.$bar.length )
+				this.$bar.width( this.model.get('percent') + '%' );
+		},
+
+		toggleSelectionHandler: function( event ) {
+			var method;
+
+			if ( event.shiftKey )
+				method = 'between';
+			else if ( event.ctrlKey || event.metaKey )
+				method = 'toggle';
+
+			this.toggleSelection({
+				method: method
+			});
+		},
+
+		toggleSelection: function( options ) {
+			var collection = this.collection,
+				selection = this.options.selection,
+				model = this.model,
+				method = options && options.method,
+				single, between, models, singleIndex, modelIndex;
+
+			if ( ! selection )
+				return;
+
+			single = selection.single();
+			method = _.isUndefined( method ) ? selection.multiple : method;
+
+			// If the `method` is set to `between`, select all models that
+			// exist between the current and the selected model.
+			if ( 'between' === method && single && selection.multiple ) {
+				// If the models are the same, short-circuit.
+				if ( single === model )
+					return;
+
+				singleIndex = collection.indexOf( single );
+				modelIndex  = collection.indexOf( this.model );
+
+				if ( singleIndex < modelIndex )
+					models = collection.models.slice( singleIndex, modelIndex + 1 );
+				else
+					models = collection.models.slice( modelIndex, singleIndex + 1 );
+
+				selection.add( models ).single( model );
+				return;
+
+			// If the `method` is set to `toggle`, just flip the selection
+			// status, regardless of whether the model is the single model.
+			} else if ( 'toggle' === method ) {
+				selection[ this.selected() ? 'remove' : 'add' ]( model ).single( model );
+				return;
+			}
+
+			if ( method !== 'add' )
+				method = 'reset';
+
+			if ( this.selected() ) {
+				// If the model is the single model, remove it.
+				// If it is not the same as the single model,
+				// it now becomes the single model.
+				selection[ single === model ? 'remove' : 'single' ]( model );
+			} else {
+				// If the model is not selected, run the `method` on the
+				// selection. By default, we `reset` the selection, but the
+				// `method` can be set to `add` the model to the selection.
+				selection[ method ]( model ).single( model );
+			}
+		},
+
+		updateSelect: function() {
+			this[ this.selected() ? 'select' : 'deselect' ]();
+		},
+
+		selected: function() {
+			var selection = this.options.selection;
+			if ( selection )
+				return !! selection.getByCid( this.model.cid );
+		},
+
+		select: function( model, collection ) {
+			var selection = this.options.selection;
+
+			// Check if a selection exists and if it's the collection provided.
+			// If they're not the same collection, bail; we're in another
+			// selection's event loop.
+			if ( ! selection || ( collection && collection !== selection ) )
+				return;
+
+			this.$el.addClass('selected');
+		},
+
+		deselect: function( model, collection ) {
+			var selection = this.options.selection;
+
+			// Check if a selection exists and if it's the collection provided.
+			// If they're not the same collection, bail; we're in another
+			// selection's event loop.
+			if ( ! selection || ( collection && collection !== selection ) )
+				return;
+
+			this.$el.removeClass('selected');
+		},
+
+		details: function( model, collection ) {
+			var selection = this.options.selection,
+				details;
+
+			if ( selection !== collection )
+				return;
+
+			details = selection.single();
+			this.$el.toggleClass( 'details', details === this.model );
+		},
+
+		preventDefault: function( event ) {
+			event.preventDefault();
+		},
+
+		imageSize: function( size ) {
+			var sizes = this.model.get('sizes');
+
+			size = size || 'medium';
+
+			// Use the provided image size if possible.
+			if ( sizes && sizes[ size ] ) {
+				return _.clone( sizes[ size ] );
+			} else {
+				return {
+					url:         this.model.get('url'),
+					width:       this.model.get('width'),
+					height:      this.model.get('height'),
+					orientation: this.model.get('orientation')
+				};
+			}
+		},
+
+		updateSetting: function( event ) {
+			var $setting = $( event.target ).closest('[data-setting]'),
+				setting, value;
+
+			if ( ! $setting.length )
+				return;
+
+			setting = $setting.data('setting');
+			value   = event.target.value;
+
+			if ( this.model.get( setting ) !== value )
+				this.save( setting, value );
+		},
+
+		// Pass all the arguments to the model's save method.
+		//
+		// Records the aggregate status of all save requests and updates the
+		// view's classes accordingly.
+		save: function() {
+			var view = this,
+				save = this._save = this._save || { status: 'ready' },
+				request = this.model.save.apply( this.model, arguments ),
+				requests = save.requests ? $.when( request, save.requests ) : request;
+
+			// If we're waiting to remove 'Saved.', stop.
+			if ( save.savedTimer )
+				clearTimeout( save.savedTimer );
+
+			this.updateSave('waiting');
+			save.requests = requests;
+			requests.always( function() {
+				// If we've performed another request since this one, bail.
+				if ( save.requests !== requests )
+					return;
+
+				view.updateSave( requests.state() === 'resolved' ? 'complete' : 'error' );
+				save.savedTimer = setTimeout( function() {
+					view.updateSave('ready');
+					delete save.savedTimer;
+				}, 2000 );
+			});
+
+		},
+
+		updateSave: function( status ) {
+			var save = this._save = this._save || { status: 'ready' };
+
+			if ( status && status !== save.status ) {
+				this.$el.removeClass( 'save-' + save.status );
+				save.status = status;
+			}
+
+			this.$el.addClass( 'save-' + save.status );
+			return this;
+		},
+
+		updateAll: function() {
+			var $settings = this.$('[data-setting]'),
+				model = this.model,
+				changed;
+
+			changed = _.chain( $settings ).map( function( el ) {
+				var $input = $('input, textarea, select, [value]', el ),
+					setting, value;
+
+				if ( ! $input.length )
+					return;
+
+				setting = $(el).data('setting');
+				value = $input.val();
+
+				// Record the value if it changed.
+				if ( model.get( setting ) !== value )
+					return [ setting, value ];
+			}).compact().object().value();
+
+			if ( ! _.isEmpty( changed ) )
+				model.save( changed );
+		},
+
+		removeFromLibrary: function( event ) {
+			// Stop propagation so the model isn't selected.
+			event.stopPropagation();
+
+			this.collection.remove( this.model );
+		},
+
+		removeFromSelection: function( event ) {
+			var selection = this.options.selection;
+			if ( ! selection )
+				return;
+
+			// Stop propagation so the model isn't selected.
+			event.stopPropagation();
+
+			selection.remove( this.model );
+		}
+	});
+
+	/**
+	 * wp.media.view.Attachment.Library
+	 */
+	media.view.Attachment.Library = media.view.Attachment.extend({
+		buttons: {
+			check: true
+		}
+	});
+
+	/**
+	 * wp.media.view.Attachment.EditLibrary
+	 */
+	media.view.Attachment.EditLibrary = media.view.Attachment.extend({
+		buttons: {
+			close: true
+		}
+	});
+
+	/**
+	 * wp.media.view.Attachments
+	 */
+	media.view.Attachments = media.View.extend({
+		tagName:   'ul',
+		className: 'attachments',
+
+		cssTemplate: media.template('attachments-css'),
+
+		events: {
+			'scroll': 'scroll'
+		},
+
+		initialize: function() {
+			this.el.id = _.uniqueId('__attachments-view-');
+
+			_.defaults( this.options, {
+				refreshSensitivity: 200,
+				refreshThreshold:   3,
+				AttachmentView:     media.view.Attachment,
+				sortable:           false,
+				resize:             true
+			});
+
+			this._viewsByCid = {};
+
+			this.collection.on( 'add', function( attachment, attachments, options ) {
+				this.views.add( this.createAttachmentView( attachment ), {
+					at: options.index
+				});
+			}, this );
+
+			this.collection.on( 'remove', function( attachment, attachments, options ) {
+				var view = this._viewsByCid[ attachment.cid ];
+				delete this._viewsByCid[ attachment.cid ];
+
+				if ( view )
+					view.remove();
+			}, this );
+
+			this.collection.on( 'reset', this.render, this );
+
+			// Throttle the scroll handler.
+			this.scroll = _.chain( this.scroll ).bind( this ).throttle( this.options.refreshSensitivity ).value();
+
+			this.initSortable();
+
+			_.bindAll( this, 'css' );
+			this.model.on( 'change:edge change:gutter', this.css, this );
+			this._resizeCss = _.debounce( _.bind( this.css, this ), this.refreshSensitivity );
+			if ( this.options.resize )
+				$(window).on( 'resize.attachments', this._resizeCss );
+			this.css();
+		},
+
+		dispose: function() {
+			this.collection.props.off( null, null, this );
+			$(window).off( 'resize.attachments', this._resizeCss );
+			media.View.prototype.dispose.apply( this, arguments );
+		},
+
+		css: function() {
+			var $css = $( '#' + this.el.id + '-css' );
+
+			if ( $css.length )
+				$css.remove();
+
+			media.view.Attachments.$head().append( this.cssTemplate({
+				id:     this.el.id,
+				edge:   this.edge(),
+				gutter: this.model.get('gutter')
+			}) );
+		},
+
+		edge: function() {
+			var edge = this.model.get('edge'),
+				gutter, width, columns;
+
+			if ( ! this.$el.is(':visible') )
+				return edge;
+
+			gutter  = this.model.get('gutter') * 2;
+			width   = this.$el.width() - gutter;
+			columns = Math.ceil( width / ( edge + gutter ) );
+			edge = Math.floor( ( width - ( columns * gutter ) ) / columns );
+			return edge;
+		},
+
+		initSortable: function() {
+			var collection = this.collection;
+
+			if ( ! this.options.sortable || ! $.fn.sortable )
+				return;
+
+			this.$el.sortable( _.extend({
+				// If the `collection` has a `comparator`, disable sorting.
+				disabled: !! collection.comparator,
+
+				// Prevent attachments from being dragged outside the bounding
+				// box of the list.
+				containment: this.$el,
+
+				// Change the position of the attachment as soon as the
+				// mouse pointer overlaps a thumbnail.
+				tolerance: 'pointer',
+
+				// Record the initial `index` of the dragged model.
+				start: function( event, ui ) {
+					ui.item.data('sortableIndexStart', ui.item.index());
+				},
+
+				// Update the model's index in the collection.
+				// Do so silently, as the view is already accurate.
+				update: function( event, ui ) {
+					var model = collection.at( ui.item.data('sortableIndexStart') ),
+						comparator = collection.comparator;
+
+					// Temporarily disable the comparator to prevent `add`
+					// from re-sorting.
+					delete collection.comparator;
+
+					// Silently shift the model to its new index.
+					collection.remove( model, {
+						silent: true
+					}).add( model, {
+						silent: true,
+						at:     ui.item.index()
+					});
+
+					// Restore the comparator.
+					collection.comparator = comparator;
+
+					// Fire the `reset` event to ensure other collections sync.
+					collection.trigger( 'reset', collection );
+
+					// If the collection is sorted by menu order,
+					// update the menu order.
+					collection.saveMenuOrder();
+				}
+			}, this.options.sortable ) );
+
+			// If the `orderby` property is changed on the `collection`,
+			// check to see if we have a `comparator`. If so, disable sorting.
+			collection.props.on( 'change:orderby', function() {
+				this.$el.sortable( 'option', 'disabled', !! collection.comparator );
+			}, this );
+
+			this.collection.props.on( 'change:orderby', this.refreshSortable, this );
+			this.refreshSortable();
+		},
+
+		refreshSortable: function() {
+			if ( ! this.options.sortable || ! $.fn.sortable )
+				return;
+
+			// If the `collection` has a `comparator`, disable sorting.
+			var collection = this.collection,
+				orderby = collection.props.get('orderby'),
+				enabled = 'menuOrder' === orderby || ! collection.comparator;
+
+			this.$el.sortable( 'option', 'disabled', ! enabled );
+		},
+
+		createAttachmentView: function( attachment ) {
+			var view = new this.options.AttachmentView({
+				controller: this.controller,
+				model:      attachment,
+				collection: this.collection,
+				selection:  this.options.selection
+			});
+
+			return this._viewsByCid[ attachment.cid ] = view;
+		},
+
+		prepare: function() {
+			// Create all of the Attachment views, and replace
+			// the list in a single DOM operation.
+			if ( this.collection.length ) {
+				this.views.set( this.collection.map( this.createAttachmentView, this ) );
+
+			// If there are no elements, clear the views and load some.
+			} else {
+				this.views.unset();
+				this.collection.more().done( this.scroll );
+			}
+		},
+
+		ready: function() {
+			// Trigger the scroll event to check if we're within the
+			// threshold to query for additional attachments.
+			this.scroll();
+		},
+
+		scroll: function( event ) {
+			// @todo: is this still necessary?
+			if ( ! this.$el.is(':visible') )
+				return;
+
+			if ( this.collection.hasMore() && this.el.scrollHeight < this.el.scrollTop + ( this.el.clientHeight * this.options.refreshThreshold ) ) {
+				this.collection.more().done( this.scroll );
+			}
+		}
+	}, {
+		$head: (function() {
+			var $head;
+			return function() {
+				return $head = $head || $('head');
+			};
+		}())
+	});
+
+	/**
+	 * wp.media.view.Search
+	 */
+	media.view.Search = media.View.extend({
+		tagName:   'input',
+		className: 'search',
+
+		attributes: {
+			type:        'search',
+			placeholder: l10n.search
+		},
+
+		events: {
+			'input':  'search',
+			'keyup':  'search',
+			'change': 'search',
+			'search': 'search'
+		},
+
+		render: function() {
+			this.el.value = this.model.escape('search');
+			return this;
+		},
+
+		search: function( event ) {
+			if ( event.target.value )
+				this.model.set( 'search', event.target.value );
+			else
+				this.model.unset('search');
+		}
+	});
+
+	/**
+	 * wp.media.view.AttachmentFilters
+	 */
+	media.view.AttachmentFilters = media.View.extend({
+		tagName:   'select',
+		className: 'attachment-filters',
+
+		events: {
+			change: 'change'
+		},
+
+		keys: [],
+
+		initialize: function() {
+			this.createFilters();
+			_.extend( this.filters, this.options.filters );
+
+			// Build `<option>` elements.
+			this.$el.html( _.chain( this.filters ).map( function( filter, value ) {
+				return {
+					el: this.make( 'option', { value: value }, filter.text ),
+					priority: filter.priority || 50
+				};
+			}, this ).sortBy('priority').pluck('el').value() );
+
+			this.model.on( 'change', this.select, this );
+			this.select();
+		},
+
+		createFilters: function() {
+			this.filters = {};
+		},
+
+		change: function( event ) {
+			var filter = this.filters[ this.el.value ];
+
+			if ( filter )
+				this.model.set( filter.props );
+		},
+
+		select: function() {
+			var model = this.model,
+				value = 'all',
+				props = model.toJSON();
+
+			_.find( this.filters, function( filter, id ) {
+				var equal = _.all( filter.props, function( prop, key ) {
+					return prop === ( _.isUndefined( props[ key ] ) ? null : props[ key ] );
+				});
+
+				if ( equal )
+					return value = id;
+			});
+
+			this.$el.val( value );
+		}
+	});
+
+	media.view.AttachmentFilters.Uploaded = media.view.AttachmentFilters.extend({
+		createFilters: function() {
+			var type = this.model.get('type'),
+				types = media.view.settings.mimeTypes,
+				text;
+
+			if ( types && type )
+				text = types[ type ];
+
+			this.filters = {
+				all: {
+					text:  text || l10n.allMediaItems,
+					props: {
+						uploadedTo: null,
+						orderby: 'date',
+						order:   'DESC'
+					},
+					priority: 10
+				},
+
+				uploaded: {
+					text:  l10n.uploadedToThisPost,
+					props: {
+						uploadedTo: media.view.settings.post.id,
+						orderby: 'menuOrder',
+						order:   'ASC'
+					},
+					priority: 20
+				}
+			};
+		}
+	});
+
+	media.view.AttachmentFilters.All = media.view.AttachmentFilters.extend({
+		createFilters: function() {
+			var filters = {};
+
+			_.each( media.view.settings.mimeTypes || {}, function( text, key ) {
+				filters[ key ] = {
+					text: text,
+					props: {
+						type:    key,
+						uploadedTo: null,
+						orderby: 'date',
+						order:   'DESC'
+					}
+				};
+			});
+
+			filters.all = {
+				text:  l10n.allMediaItems,
+				props: {
+					type:    null,
+					uploadedTo: null,
+					orderby: 'date',
+					order:   'DESC'
+				},
+				priority: 10
+			};
+
+			filters.uploaded = {
+				text:  l10n.uploadedToThisPost,
+				props: {
+					type:    null,
+					uploadedTo: media.view.settings.post.id,
+					orderby: 'menuOrder',
+					order:   'ASC'
+				},
+				priority: 20
+			};
+
+			this.filters = filters;
+		}
+	});
+
+
+
+	/**
+	 * wp.media.view.AttachmentsBrowser
+	 */
+	media.view.AttachmentsBrowser = media.View.extend({
+		tagName:   'div',
+		className: 'attachments-browser',
+
+		initialize: function() {
+			_.defaults( this.options, {
+				filters: false,
+				search:  true,
+				display: false,
+
+				AttachmentView: media.view.Attachment.Library
+			});
+
+			this.createToolbar();
+			this.updateContent();
+			this.createSidebar();
+
+			this.collection.on( 'add remove reset', this.updateContent, this );
+		},
+
+		dispose: function() {
+			this.options.selection.off( null, null, this );
+			media.View.prototype.dispose.apply( this, arguments );
+			return this;
+		},
+
+		createToolbar: function() {
+			var filters, FiltersConstructor;
+
+			this.toolbar = new media.view.Toolbar({
+				controller: this.controller
+			});
+
+			this.views.add( this.toolbar );
+
+			filters = this.options.filters;
+			if ( 'uploaded' === filters )
+				FiltersConstructor = media.view.AttachmentFilters.Uploaded;
+			else if ( 'all' === filters )
+				FiltersConstructor = media.view.AttachmentFilters.All;
+
+			if ( FiltersConstructor ) {
+				this.toolbar.set( 'filters', new FiltersConstructor({
+					controller: this.controller,
+					model:      this.collection.props,
+					priority:   -80
+				}).render() );
+			}
+
+			if ( this.options.search ) {
+				this.toolbar.set( 'search', new media.view.Search({
+					controller: this.controller,
+					model:      this.collection.props,
+					priority:   60
+				}).render() );
+			}
+
+			if ( this.options.dragInfo ) {
+				this.toolbar.set( 'dragInfo', new media.View({
+					el: $( '<div class="instructions">' + l10n.dragInfo + '</div>' )[0],
+					priority: -40
+				}) );
+			}
+		},
+
+		updateContent: function() {
+			var view = this;
+
+			if( ! this.attachments )
+				this.createAttachments();
+
+			if ( ! this.collection.length ) {
+				this.collection.more().done( function() {
+					if ( ! view.collection.length )
+						view.createUploader();
+				});
+			}
+		},
+
+		removeContent: function() {
+			_.each(['attachments','uploader'], function( key ) {
+				if ( this[ key ] ) {
+					this[ key ].remove();
+					delete this[ key ];
+				}
+			}, this );
+		},
+
+		createUploader: function() {
+			this.removeContent();
+
+			this.uploader = new media.view.UploaderInline({
+				controller: this.controller,
+				status:     false,
+				message:    l10n.noItemsFound
+			});
+
+			this.views.add( this.uploader );
+		},
+
+		createAttachments: function() {
+			this.removeContent();
+
+			this.attachments = new media.view.Attachments({
+				controller: this.controller,
+				collection: this.collection,
+				selection:  this.options.selection,
+				model:      this.model,
+				sortable:   this.options.sortable,
+
+				// The single `Attachment` view to be used in the `Attachments` view.
+				AttachmentView: this.options.AttachmentView
+			});
+
+			this.views.add( this.attachments );
+		},
+
+		createSidebar: function() {
+			var options = this.options,
+				selection = options.selection,
+				sidebar = this.sidebar = new media.view.Sidebar({
+					controller: this.controller
+				});
+
+			this.views.add( sidebar );
+
+			if ( this.controller.uploader ) {
+				sidebar.set( 'uploads', new media.view.UploaderStatus({
+					controller: this.controller,
+					priority:   40
+				}) );
+			}
+
+			selection.on( 'selection:single', this.createSingle, this );
+			selection.on( 'selection:unsingle', this.disposeSingle, this );
+
+			if ( selection.single() )
+				this.createSingle();
+		},
+
+		createSingle: function() {
+			var sidebar = this.sidebar,
+				single = this.options.selection.single(),
+				views = {};
+
+			sidebar.set( 'details', new media.view.Attachment.Details({
+				controller: this.controller,
+				model:      single,
+				priority:   80
+			}) );
+
+			sidebar.set( 'compat', new media.view.AttachmentCompat({
+				controller: this.controller,
+				model:      single,
+				priority:   120
+			}) );
+
+			if ( this.options.display ) {
+				sidebar.set( 'display', new media.view.Settings.AttachmentDisplay({
+					controller:   this.controller,
+					model:        this.model.display( single ),
+					attachment:   single,
+					priority:     160,
+					userSettings: this.model.get('displayUserSettings')
+				}) );
+			}
+		},
+
+		disposeSingle: function() {
+			var sidebar = this.sidebar;
+			sidebar.unset('details');
+			sidebar.unset('compat');
+			sidebar.unset('display');
+		}
+	});
+
+	/**
+	 * wp.media.view.Selection
+	 */
+	media.view.Selection = media.View.extend({
+		tagName:   'div',
+		className: 'media-selection',
+		template:  media.template('media-selection'),
+
+		events: {
+			'click .edit-selection':  'edit',
+			'click .clear-selection': 'clear'
+		},
+
+		initialize: function() {
+			_.defaults( this.options, {
+				editable:  false,
+				clearable: true
+			});
+
+			this.attachments = new media.view.Attachments.Selection({
+				controller: this.controller,
+				collection: this.collection,
+				selection:  this.collection,
+				model:      new Backbone.Model({
+					edge:   40,
+					gutter: 5
+				})
+			});
+
+			this.views.set( '.selection-view', this.attachments );
+			this.collection.on( 'add remove reset', this.refresh, this );
+			this.controller.on( 'content:activate', this.refresh, this );
+		},
+
+		ready: function() {
+			this.refresh();
+		},
+
+		refresh: function() {
+			// If the selection hasn't been rendered, bail.
+			if ( ! this.$el.children().length )
+				return;
+
+			var collection = this.collection,
+				editing = 'edit-selection' === this.controller.content.mode();
+
+			// If nothing is selected, display nothing.
+			this.$el.toggleClass( 'empty', ! collection.length );
+			this.$el.toggleClass( 'one', 1 === collection.length );
+			this.$el.toggleClass( 'editing', editing );
+
+			this.$('.count').text( l10n.selected.replace('%d', collection.length) );
+		},
+
+		edit: function( event ) {
+			event.preventDefault();
+			if ( this.options.editable )
+				this.options.editable.call( this, this.collection );
+		},
+
+		clear: function( event ) {
+			event.preventDefault();
+			this.collection.reset();
+		}
+	});
+
+
+	/**
+	 * wp.media.view.Attachment.Selection
+	 */
+	media.view.Attachment.Selection = media.view.Attachment.extend({
+		className: 'attachment selection',
+
+		// On click, just select the model, instead of removing the model from
+		// the selection.
+		toggleSelection: function() {
+			this.options.selection.single( this.model );
+		}
+	});
+
+	/**
+	 * wp.media.view.Attachments.Selection
+	 */
+	media.view.Attachments.Selection = media.view.Attachments.extend({
+		events: {},
+		initialize: function() {
+			_.defaults( this.options, {
+				sortable:   true,
+				resize:     false,
+
+				// The single `Attachment` view to be used in the `Attachments` view.
+				AttachmentView: media.view.Attachment.Selection
+			});
+			return media.view.Attachments.prototype.initialize.apply( this, arguments );
+		}
+	});
+
+	/**
+	 * wp.media.view.Attachments.EditSelection
+	 */
+	media.view.Attachment.EditSelection = media.view.Attachment.Selection.extend({
+		buttons: {
+			close: true
+		}
+	});
+
+
+	/**
+	 * wp.media.view.Settings
+	 */
+	media.view.Settings = media.View.extend({
+		events: {
+			'click button':    'updateHandler',
+			'change input':    'updateHandler',
+			'change select':   'updateHandler',
+			'change textarea': 'updateHandler'
+		},
+
+		initialize: function() {
+			this.model = this.model || new Backbone.Model();
+			this.model.on( 'change', this.updateChanges, this );
+		},
+
+		prepare: function() {
+			return _.defaults({
+				model: this.model.toJSON()
+			}, this.options );
+		},
+
+		render: function() {
+			media.View.prototype.render.apply( this, arguments );
+			// Select the correct values.
+			_( this.model.attributes ).chain().keys().each( this.update, this );
+			return this;
+		},
+
+		update: function( key ) {
+			var value = this.model.get( key ),
+				$setting = this.$('[data-setting="' + key + '"]'),
+				$buttons, $value;
+
+			// Bail if we didn't find a matching setting.
+			if ( ! $setting.length )
+				return;
+
+			// Attempt to determine how the setting is rendered and update
+			// the selected value.
+
+			// Handle dropdowns.
+			if ( $setting.is('select') ) {
+				$value = $setting.find('[value="' + value + '"]');
+
+				if ( $value.length ) {
+					$setting.find('option').prop( 'selected', false );
+					$value.prop( 'selected', true );
+				} else {
+					// If we can't find the desired value, record what *is* selected.
+					this.model.set( key, $setting.find(':selected').val() );
+				}
+
+
+			// Handle button groups.
+			} else if ( $setting.hasClass('button-group') ) {
+				$buttons = $setting.find('button').removeClass('active');
+				$buttons.filter( '[value="' + value + '"]' ).addClass('active');
+
+			// Handle text inputs and textareas.
+			} else if ( $setting.is('input[type="text"], textarea') ) {
+				if ( ! $setting.is(':focus') )
+					$setting.val( value );
+
+			// Handle checkboxes.
+			} else if ( $setting.is('input[type="checkbox"]') ) {
+				$setting.attr( 'checked', !! value );
+			}
+		},
+
+		updateHandler: function( event ) {
+			var $setting = $( event.target ).closest('[data-setting]'),
+				value = event.target.value,
+				userSetting;
+
+			event.preventDefault();
+
+			if ( ! $setting.length )
+				return;
+
+			// Use the correct value for checkboxes.
+			if ( $setting.is('input[type="checkbox"]') )
+				value = $setting[0].checked;
+
+			// Update the corresponding setting.
+			this.model.set( $setting.data('setting'), value );
+
+			// If the setting has a corresponding user setting,
+			// update that as well.
+			if ( userSetting = $setting.data('userSetting') )
+				setUserSetting( userSetting, value );
+		},
+
+		updateChanges: function( model, options ) {
+			if ( options.changes )
+				_( options.changes ).chain().keys().each( this.update, this );
+		}
+	});
+
+	/**
+	 * wp.media.view.Settings.AttachmentDisplay
+	 */
+	media.view.Settings.AttachmentDisplay = media.view.Settings.extend({
+		className: 'attachment-display-settings',
+		template:  media.template('attachment-display-settings'),
+
+		initialize: function() {
+			var attachment = this.options.attachment;
+
+			_.defaults( this.options, {
+				userSettings: false
+			});
+
+			media.view.Settings.prototype.initialize.apply( this, arguments );
+			this.model.on( 'change:link', this.updateLinkTo, this );
+
+			if ( attachment )
+				attachment.on( 'change:uploading', this.render, this );
+		},
+
+		dispose: function() {
+			var attachment = this.options.attachment;
+			if ( attachment )
+				attachment.off( null, null, this );
+
+			media.view.Settings.prototype.dispose.apply( this, arguments );
+		},
+
+		render: function() {
+			var attachment = this.options.attachment;
+			if ( attachment ) {
+				_.extend( this.options, {
+					sizes: attachment.get('sizes'),
+					type:  attachment.get('type')
+				});
+			}
+
+			media.view.Settings.prototype.render.call( this );
+			this.updateLinkTo();
+			return this;
+		},
+
+		updateLinkTo: function() {
+			var linkTo = this.model.get('link'),
+				$input = this.$('.link-to-custom'),
+				attachment = this.options.attachment;
+
+			if ( 'none' === linkTo || ( ! attachment && 'custom' !== linkTo ) ) {
+				$input.hide();
+				return;
+			}
+
+			if ( attachment ) {
+				if ( 'post' === linkTo ) {
+					$input.val( attachment.get('link') );
+				} else if ( 'file' === linkTo ) {
+					$input.val( attachment.get('url') );
+				} else if ( ! this.model.get('linkUrl') ) {
+					$input.val('http://');
+				}
+
+				$input.prop( 'readonly', 'custom' !== linkTo );
+			}
+
+			$input.show();
+
+			// If the input is visible, focus and select its contents.
+			if ( $input.is(':visible') )
+				$input.focus()[0].select();
+		}
+	});
+
+	/**
+	 * wp.media.view.Settings.Gallery
+	 */
+	media.view.Settings.Gallery = media.view.Settings.extend({
+		className: 'gallery-settings',
+		template:  media.template('gallery-settings')
+	});
+
+	/**
+	 * wp.media.view.Attachment.Details
+	 */
+	media.view.Attachment.Details = media.view.Attachment.extend({
+		tagName:   'div',
+		className: 'attachment-details',
+		template:  media.template('attachment-details'),
+
+		events: {
+			'change [data-setting]':          'updateSetting',
+			'change [data-setting] input':    'updateSetting',
+			'change [data-setting] select':   'updateSetting',
+			'change [data-setting] textarea': 'updateSetting',
+			'click .delete-attachment':       'deleteAttachment',
+			'click .edit-attachment':         'editAttachment',
+			'click .refresh-attachment':      'refreshAttachment'
+		},
+
+		initialize: function() {
+			this.focusManager = new media.view.FocusManager({
+				el: this.el
+			});
+
+			media.view.Attachment.prototype.initialize.apply( this, arguments );
+		},
+
+		render: function() {
+			media.view.Attachment.prototype.render.apply( this, arguments );
+			this.focusManager.focus();
+			return this;
+		},
+
+		deleteAttachment: function( event ) {
+			event.preventDefault();
+
+			if ( confirm( l10n.warnDelete ) )
+				this.model.destroy();
+		},
+
+		editAttachment: function( event ) {
+			this.$el.addClass('needs-refresh');
+		},
+
+		refreshAttachment: function( event ) {
+			this.$el.removeClass('needs-refresh');
+			event.preventDefault();
+			this.model.fetch();
+		}
+	});
+
+	/**
+	 * wp.media.view.AttachmentCompat
+	 */
+	media.view.AttachmentCompat = media.View.extend({
+		tagName:   'form',
+		className: 'compat-item',
+
+		events: {
+			'submit':          'preventDefault',
+			'change input':    'save',
+			'change select':   'save',
+			'change textarea': 'save'
+		},
+
+		initialize: function() {
+			this.focusManager = new media.view.FocusManager({
+				el: this.el
+			});
+
+			this.model.on( 'change:compat', this.render, this );
+		},
+
+		dispose: function() {
+			if ( this.$(':focus').length )
+				this.save();
+
+			return media.View.prototype.dispose.apply( this, arguments );
+		},
+
+		render: function() {
+			var compat = this.model.get('compat');
+			if ( ! compat || ! compat.item )
+				return;
+
+			this.views.detach();
+			this.$el.html( compat.item );
+			this.views.render();
+
+			this.focusManager.focus();
+			return this;
+		},
+
+		preventDefault: function( event ) {
+			event.preventDefault();
+		},
+
+		save: function( event ) {
+			var data = {};
+
+			if ( event )
+				event.preventDefault();
+
+			_.each( this.$el.serializeArray(), function( pair ) {
+				data[ pair.name ] = pair.value;
+			});
+
+			this.model.saveCompat( data );
+		}
+	});
+
+	/**
+	 * wp.media.view.Iframe
+	 */
+	media.view.Iframe = media.View.extend({
+		className: 'media-iframe',
+
+		render: function() {
+			this.views.detach();
+			this.$el.html( '<iframe src="' + this.controller.state().get('src') + '" />' );
+			this.views.render();
+			return this;
+		}
+	});
+
+	/**
+	 * wp.media.view.Embed
+	 */
+	media.view.Embed = media.View.extend({
+		className: 'media-embed',
+
+		initialize: function() {
+			this.url = new media.view.EmbedUrl({
+				controller: this.controller,
+				model:      this.model.props
+			}).render();
+
+			this.views.set([ this.url ]);
+			this.refresh();
+			this.model.on( 'change:type', this.refresh, this );
+			this.model.on( 'change:loading', this.loading, this );
+		},
+
+		settings: function( view ) {
+			if ( this._settings )
+				this._settings.remove();
+			this._settings = view;
+			this.views.add( view );
+		},
+
+		refresh: function() {
+			var type = this.model.get('type'),
+				constructor;
+
+			if ( 'image' === type )
+				constructor = media.view.EmbedImage;
+			else if ( 'link' === type )
+				constructor = media.view.EmbedLink;
+			else
+				return;
+
+			this.settings( new constructor({
+				controller: this.controller,
+				model:      this.model.props,
+				priority:   40
+			}) );
+		},
+
+		loading: function() {
+			this.$el.toggleClass( 'embed-loading', this.model.get('loading') );
+		}
+	});
+
+	/**
+	 * wp.media.view.EmbedUrl
+	 */
+	media.view.EmbedUrl = media.View.extend({
+		tagName:   'label',
+		className: 'embed-url',
+
+		events: {
+			'input':  'url',
+			'keyup':  'url',
+			'change': 'url'
+		},
+
+		initialize: function() {
+			this.input = this.make( 'input', {
+				type:  'text',
+				value: this.model.get('url') || ''
+			});
+
+			this.spinner = this.make( 'span', {
+				'class': 'spinner'
+			});
+
+			this.$input = $( this.input );
+			this.$el.append([ this.input, this.spinner ]);
+
+			this.model.on( 'change:url', this.render, this );
+		},
+
+		render: function() {
+			var $input = this.$input;
+
+			if ( $input.is(':focus') )
+				return;
+
+			this.input.value = this.model.get('url') || 'http://';
+			media.View.prototype.render.apply( this, arguments );
+			return this;
+		},
+
+		ready: function() {
+			this.focus();
+		},
+
+		url: function( event ) {
+			this.model.set( 'url', event.target.value );
+		},
+
+		focus: function() {
+			var $input = this.$input;
+			// If the input is visible, focus and select its contents.
+			if ( $input.is(':visible') )
+				$input.focus()[0].select();
+		}
+	});
+
+	/**
+	 * wp.media.view.EmbedLink
+	 */
+	media.view.EmbedLink = media.view.Settings.extend({
+		className: 'embed-link-settings',
+		template:  media.template('embed-link-settings')
+	});
+
+	/**
+	 * wp.media.view.EmbedImage
+	 */
+	media.view.EmbedImage =  media.view.Settings.AttachmentDisplay.extend({
+		className: 'embed-image-settings',
+		template:  media.template('embed-image-settings'),
+
+		initialize: function() {
+			media.view.Settings.AttachmentDisplay.prototype.initialize.apply( this, arguments );
+			this.model.on( 'change:url', this.updateImage, this );
+		},
+
+		updateImage: function() {
+			this.$('img').attr( 'src', this.model.get('url') );
+		}
+	});
+}(jQuery));
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-includes/js/media-views.min.js	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,1 @@
+(function(e){var f=wp.media,d=f.model.Attachment,c=f.model.Attachments,a=f.model.Query,b;b=f.view.l10n=typeof _wpMediaViewsL10n==="undefined"?{}:_wpMediaViewsL10n;f.view.settings=b.settings||{};delete b.settings;f.model.settings.post=f.view.settings.post;e.support.transition=(function(){var g=document.documentElement.style,h={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"},i;i=_.find(_.keys(h),function(j){return !_.isUndefined(g[j])});return i&&{end:h[i]}}());f.transition=function(g,h){var i=e.Deferred();h=h||2000;if(e.support.transition){if(!(g instanceof e)){g=e(g)}g.first().one(e.support.transition.end,i.resolve);_.delay(i.resolve,h)}else{i.resolve()}return i.promise()};f.controller.Region=function(g){_.extend(this,_.pick(g||{},"id","view","selector"))};f.controller.Region.extend=Backbone.Model.extend;_.extend(f.controller.Region.prototype,{mode:function(g){if(!g){return this._mode}if(g===this._mode){return this}this.trigger("deactivate");this._mode=g;this.render(g);this.trigger("activate");return this},render:function(h){if(h&&h!==this._mode){return this.mode(h)}var i={view:null},g;this.trigger("create",i);g=i.view;this.trigger("render",g);if(g){this.set(g)}return this},get:function(){return this.view.views.first(this.selector)},set:function(g,h){if(h){h.add=false}return this.view.views.set(this.selector,g,h)},trigger:function(h){var i;if(!this._mode){return}var g=_.toArray(arguments);i=this.id+":"+h;g[0]=i+":"+this._mode;this.view.trigger.apply(this.view,g);g[0]=i;this.view.trigger.apply(this.view,g);return this}});f.controller.StateMachine=function(g){this.states=new Backbone.Collection(g)};f.controller.StateMachine.extend=Backbone.Model.extend;_.extend(f.controller.StateMachine.prototype,Backbone.Events,{state:function(g){this.states=this.states||new Backbone.Collection();g=g||this._state;if(g&&!this.states.get(g)){this.states.add({id:g})}return this.states.get(g)},setState:function(h){var g=this.state();if((g&&h===g.id)||!this.states||!this.states.get(h)){return this}if(g){g.trigger("deactivate");this._lastState=g.id}this._state=h;this.state().trigger("activate");return this},lastState:function(){if(this._lastState){return this.state(this._lastState)}}});_.each(["on","off","trigger"],function(g){f.controller.StateMachine.prototype[g]=function(){this.states=this.states||new Backbone.Collection();this.states[g].apply(this.states,arguments);return this}});f.controller.State=Backbone.Model.extend({constructor:function(){this.on("activate",this._preActivate,this);this.on("activate",this.activate,this);this.on("activate",this._postActivate,this);this.on("deactivate",this._deactivate,this);this.on("deactivate",this.deactivate,this);this.on("reset",this.reset,this);this.on("ready",this._ready,this);this.on("ready",this.ready,this);this.on("change:menu",this._updateMenu,this);Backbone.Model.apply(this,arguments)},ready:function(){},activate:function(){},deactivate:function(){},reset:function(){},_ready:function(){this._updateMenu()},_preActivate:function(){this.active=true},_postActivate:function(){this.on("change:menu",this._menu,this);this.on("change:titleMode",this._title,this);this.on("change:content",this._content,this);this.on("change:toolbar",this._toolbar,this);this.frame.on("title:render:default",this._renderTitle,this);this._title();this._menu();this._toolbar();this._content();this._router()},_deactivate:function(){this.active=false;this.frame.off("title:render:default",this._renderTitle,this);this.off("change:menu",this._menu,this);this.off("change:titleMode",this._title,this);this.off("change:content",this._content,this);this.off("change:toolbar",this._toolbar,this)},_title:function(){this.frame.title.render(this.get("titleMode")||"default")},_renderTitle:function(g){g.$el.text(this.get("title")||"")},_router:function(){var h=this.frame.router,i=this.get("router"),g;this.frame.$el.toggleClass("hide-router",!i);if(!i){return}this.frame.router.render(i);g=h.get();if(g&&g.select){g.select(this.frame.content.mode())}},_menu:function(){var i=this.frame.menu,h=this.get("menu"),g;if(!h){return}i.mode(h);g=i.get();if(g&&g.select){g.select(this.id)}},_updateMenu:function(){var g=this.previous("menu"),h=this.get("menu");if(g){this.frame.off("menu:render:"+g,this._renderMenu,this)}if(h){this.frame.on("menu:render:"+h,this._renderMenu,this)}},_renderMenu:function(g){var i=this.get("menuItem"),j=this.get("title"),h=this.get("priority");if(!i&&j){i={text:j};if(h){i.priority=h}}if(!i){return}g.set(this.id,i)}});_.each(["toolbar","content"],function(g){f.controller.State.prototype["_"+g]=function(){var h=this.get(g);if(h){this.frame[g].render(h)}}});f.controller.Library=f.controller.State.extend({defaults:{id:"library",multiple:false,describe:false,toolbar:"select",sidebar:"settings",content:"upload",router:"browse",menu:"default",searchable:true,filterable:false,sortable:true,title:b.mediaLibraryTitle,contentUserSetting:true,syncSelection:true},initialize:function(){var h=this.get("selection"),g;if(!this.get("library")){this.set("library",f.query())}if(!(h instanceof f.model.Selection)){g=h;if(!g){g=this.get("library").props.toJSON();g=_.omit(g,"orderby","query")}this.set("selection",new f.model.Selection(null,{multiple:this.get("multiple"),props:g}))}if(!this.get("edge")){this.set("edge",120)}if(!this.get("gutter")){this.set("gutter",8)}this.resetDisplays()},activate:function(){this.syncSelection();wp.Uploader.queue.on("add",this.uploading,this);this.get("selection").on("add remove reset",this.refreshContent,this);this.on("insert",this._insertDisplaySettings,this);if(this.get("contentUserSetting")){this.frame.on("content:activate",this.saveContentMode,this);this.set("content",getUserSetting("libraryContent",this.get("content")))}},deactivate:function(){this.recordSelection();this.frame.off("content:activate",this.saveContentMode,this);this.get("selection").off(null,null,this);wp.Uploader.queue.off(null,null,this)},reset:function(){this.get("selection").reset();this.resetDisplays();this.refreshContent()},resetDisplays:function(){this._displays=[];this._defaultDisplaySettings={align:getUserSetting("align","none"),size:getUserSetting("imgsize","medium"),link:getUserSetting("urlbutton","post")}},display:function(h){var g=this._displays;if(!g[h.cid]){g[h.cid]=new Backbone.Model(this._defaultDisplaySettings)}return g[h.cid]},_insertDisplaySettings:function(){var g=this.get("selection"),h;if(g.length!==1){return}h=this.display(g.first()).toJSON();setUserSetting("align",h.align);setUserSetting("imgsize",h.size);setUserSetting("urlbutton",h.link)},syncSelection:function(){var h=this.get("selection"),g=this.frame._selection;if(!this.get("syncSelection")||!g||!h){return}if(h.multiple){h.reset([],{silent:true});h.validateAll(g.attachments);g.difference=_.difference(g.attachments.models,h.models)}h.single(g.single)},recordSelection:function(){var i=this.get("selection"),h=this.frame._selection,g;if(!this.get("syncSelection")||!h||!i){return}if(i.multiple){h.attachments.reset(i.toArray().concat(h.difference));h.difference=[]}else{h.attachments.add(i.toArray())}h.single=i._single},refreshContent:function(){var h=this.get("selection"),j=this.frame,g=j.router.get(),i=j.content.mode();if(this.active&&!h.length&&!g.get(i)){this.frame.content.render(this.get("content"))}},uploading:function(h){var g=this.frame.content;if("upload"===g.mode()){this.frame.content.mode("browse")}if(this.get("multiple")){this.get("selection").add(h)}},saveContentMode:function(){if("browse"!==this.get("router")){return}var h=this.frame.content.mode(),g=this.frame.router.get();if(g&&g.get(h)){setUserSetting("libraryContent",h)}}});f.controller.GalleryEdit=f.controller.Library.extend({defaults:{id:"gallery-edit",multiple:false,describe:true,edge:199,editing:false,sortable:true,searchable:false,toolbar:"gallery-edit",content:"browse",title:b.editGalleryTitle,priority:60,dragInfo:true,syncSelection:false},initialize:function(){if(!this.get("library")){this.set("library",new f.model.Selection())}if(!this.get("AttachmentView")){this.set("AttachmentView",f.view.Attachment.EditLibrary)}f.controller.Library.prototype.initialize.apply(this,arguments)},activate:function(){var g=this.get("library");g.props.set("type","image");this.get("library").observe(wp.Uploader.queue);this.frame.on("content:render:browse",this.gallerySettings,this);f.controller.Library.prototype.activate.apply(this,arguments)},deactivate:function(){this.get("library").unobserve(wp.Uploader.queue);this.frame.off("content:render:browse",this.gallerySettings,this);f.controller.Library.prototype.deactivate.apply(this,arguments)},gallerySettings:function(h){var g=this.get("library");if(!g||!h){return}g.gallery=g.gallery||new Backbone.Model();h.sidebar.set({gallery:new f.view.Settings.Gallery({controller:this,model:g.gallery,priority:40})});h.toolbar.set("reverse",{text:b.reverseOrder,priority:80,click:function(){g.reset(g.toArray().reverse())}})}});f.controller.GalleryAdd=f.controller.Library.extend({defaults:_.defaults({id:"gallery-library",filterable:"uploaded",multiple:"add",menu:"gallery",toolbar:"gallery-add",title:b.addToGalleryTitle,priority:100,syncSelection:false},f.controller.Library.prototype.defaults),initialize:function(){if(!this.get("library")){this.set("library",f.query({type:"image"}))}f.controller.Library.prototype.initialize.apply(this,arguments)},activate:function(){var g=this.get("library"),h=this.frame.state("gallery-edit").get("library");if(this.editLibrary&&this.editLibrary!==h){g.unobserve(this.editLibrary)}g.validator=function(i){return !!this.mirroring.getByCid(i.cid)&&!h.getByCid(i.cid)&&f.model.Selection.prototype.validator.apply(this,arguments)};g.observe(h);this.editLibrary=h;f.controller.Library.prototype.activate.apply(this,arguments)}});f.controller.FeaturedImage=f.controller.Library.extend({defaults:_.defaults({id:"featured-image",filterable:"uploaded",multiple:false,toolbar:"featured-image",title:b.setFeaturedImageTitle,priority:60,syncSelection:false},f.controller.Library.prototype.defaults),initialize:function(){var h,g;if(!this.get("library")){this.set("library",f.query({type:"image"}))}f.controller.Library.prototype.initialize.apply(this,arguments);h=this.get("library");g=h.comparator;h.comparator=function(j,i){var l=!!this.mirroring.getByCid(j.cid),k=!!this.mirroring.getByCid(i.cid);if(!l&&k){return -1}else{if(l&&!k){return 1}else{return g.apply(this,arguments)}}};h.observe(this.get("selection"))},activate:function(){this.updateSelection();this.frame.on("open",this.updateSelection,this);f.controller.Library.prototype.activate.apply(this,arguments)},deactivate:function(){this.frame.off("open",this.updateSelection,this);f.controller.Library.prototype.deactivate.apply(this,arguments)},updateSelection:function(){var g=this.get("selection"),i=f.view.settings.post.featuredImageId,h;if(""!==i&&-1!==i){h=d.get(i);h.fetch()}g.reset(h?[h]:[])}});f.controller.Embed=f.controller.State.extend({defaults:{id:"embed",url:"",menu:"default",content:"embed",toolbar:"main-embed",type:"link",title:b.insertFromUrlTitle,priority:120},sensitivity:200,initialize:function(){this.debouncedScan=_.debounce(_.bind(this.scan,this),this.sensitivity);this.props=new Backbone.Model({url:""});this.props.on("change:url",this.debouncedScan,this);this.props.on("change:url",this.refresh,this);this.on("scan",this.scanImage,this)},scan:function(){var h,i=this,g={type:"link",scanners:[]};if(this.props.get("url")){this.trigger("scan",g)}if(g.scanners.length){h=g.scanners=e.when.apply(e,g.scanners);h.always(function(){if(i.get("scanners")===h){i.set("loading",false)}})}else{g.scanners=null}g.loading=!!g.scanners;this.set(g)},scanImage:function(h){var l=this.frame,j=this,i=this.props.get("url"),k=new Image(),g=e.Deferred();h.scanners.push(g.promise());k.onload=function(){g.resolve();if(j!==l.state()||i!==j.props.get("url")){return}j.set({type:"image"});j.props.set({width:k.width,height:k.height})};k.onerror=g.reject;k.src=i},refresh:function(){this.frame.toolbar.get().refresh()},reset:function(){this.props.clear().set({url:""});if(this.active){this.refresh()}}});f.Views=function(h,g){this.view=h;this._views=_.isArray(g)?{"":g}:g||{}};f.Views.extend=Backbone.Model.extend;_.extend(f.Views.prototype,{all:function(){return _.flatten(this._views)},get:function(g){g=g||"";return this._views[g]},first:function(g){var h=this.get(g);return h&&h.length?h[0]:null},set:function(g,h,i){var k,j;if(!_.isString(g)){i=h;h=g;g=""}i=i||{};h=_.isArray(h)?h:[h];k=this.get(g);j=h;if(k){if(i.add){if(_.isUndefined(i.at)){j=k.concat(h)}else{j=k;j.splice.apply(j,[i.at,0].concat(h))}}else{_.each(j,function(l){l.__detach=true});_.each(k,function(l){if(l.__detach){l.$el.detach()}else{l.dispose()}});_.each(j,function(l){delete l.__detach})}}this._views[g]=j;_.each(h,function(n){var l=n.Views||f.Views,m=n.views=n.views||new l(n);m.parent=this.view;m.selector=g},this);if(!i.silent){this._attach(g,h,_.extend({ready:this._isReady()},i))}return this},add:function(g,h,i){if(!_.isString(g)){i=h;h=g;g=""}return this.set(g,h,_.extend({add:true},i))},unset:function(g,h,i){var j;if(!_.isString(g)){i=h;h=g;g=""}h=h||[];if(j=this.get(g)){h=_.isArray(h)?h:[h];this._views[g]=h.length?_.difference(j,h):[]}if(!i||!i.silent){_.invoke(h,"dispose")}return this},detach:function(){e(_.pluck(this.all(),"el")).detach();return this},render:function(){var g={ready:this._isReady()};_.each(this._views,function(i,h){this._attach(h,i,g)},this);this.rendered=true;return this},dispose:function(g){if(!g||!g.silent){if(this.parent&&this.parent.views){this.parent.views.unset(this.selector,this.view,{silent:true})}delete this.parent;delete this.selector}_.invoke(this.all(),"dispose");this._views=[];return this},replace:function(g,h){g.html(h);return this},insert:function(h,k,j){var g=j&&j.at,i;if(_.isNumber(g)&&(i=h.children()).length>g){i.eq(g).before(k)}else{h.append(k)}return this},ready:function(){this.view.trigger("ready");_.chain(this.all()).map(function(g){return g.views}).flatten().where({attached:true}).invoke("ready")},_attach:function(g,h,i){var k=g?this.view.$(g):this.view.$el,j;if(!k.length){return this}j=_.chain(h).pluck("views").flatten().value();_.each(j,function(l){if(l.rendered){return}l.view.render();l.rendered=true},this);this[i.add?"insert":"replace"](k,_.pluck(h,"el"),i);_.each(j,function(l){l.attached=true;if(i.ready){l.ready()}},this);return this},_isReady:function(){var g=this.view.el;while(g){if(g===document.body){return true}g=g.parentNode}return false}});f.View=Backbone.View.extend({Views:f.Views,constructor:function(g){this.views=new this.Views(this,this.views);this.on("ready",this.ready,this);if(g&&g.controller){this.controller=g.controller}Backbone.View.apply(this,arguments)},dispose:function(){this.undelegateEvents();if(this.model&&this.model.off){this.model.off(null,null,this)}if(this.collection&&this.collection.off){this.collection.off(null,null,this)}if(this.controller&&this.controller.off){this.controller.off(null,null,this)}if(this.views){this.views.dispose()}return this},remove:function(){this.dispose();return Backbone.View.prototype.remove.apply(this,arguments)},render:function(){var g;if(this.prepare){g=this.prepare()}this.views.detach();if(this.template){g=g||{};this.trigger("prepare",g);this.$el.html(this.template(g))}this.views.render();return this},prepare:function(){return this.options},ready:function(){}});f.view.Frame=f.View.extend({initialize:function(){this._createRegions();this._createStates()},_createRegions:function(){this.regions=this.regions?this.regions.slice():[];_.each(this.regions,function(g){this[g]=new f.controller.Region({view:this,id:g,selector:".media-frame-"+g})},this)},_createStates:function(){this.states=new Backbone.Collection(null,{model:f.controller.State});this.states.on("add",function(g){g.frame=this;g.trigger("ready")},this);if(this.options.states){this.states.add(this.options.states)}},reset:function(){this.states.invoke("trigger","reset");return this}});_.extend(f.view.Frame.prototype,f.controller.StateMachine.prototype);f.view.MediaFrame=f.view.Frame.extend({className:"media-frame",template:f.template("media-frame"),regions:["menu","title","content","toolbar","router"],initialize:function(){f.view.Frame.prototype.initialize.apply(this,arguments);_.defaults(this.options,{title:"",modal:true,uploader:true});this.$el.addClass("wp-core-ui");if(this.options.modal){this.modal=new f.view.Modal({controller:this,title:this.options.title});this.modal.content(this)}if(wp.Uploader.limitExceeded||!wp.Uploader.browser.supported){this.options.uploader=false}if(this.options.uploader){this.uploader=new f.view.UploaderWindow({controller:this,uploader:{dropzone:this.modal?this.modal.$el:this.$el,container:this.$el}});this.views.set(".media-frame-uploader",this.uploader)}this.on("attach",_.bind(this.views.ready,this.views),this);this.on("title:create:default",this.createTitle,this);this.title.mode("default");this.on("menu:create:default",this.createMenu,this)},render:function(){if(!this.state()&&this.options.state){this.setState(this.options.state)}return f.view.Frame.prototype.render.apply(this,arguments)},createTitle:function(g){g.view=new f.View({controller:this,tagName:"h1"})},createMenu:function(g){g.view=new f.view.Menu({controller:this})},createToolbar:function(g){g.view=new f.view.Toolbar({controller:this})},createRouter:function(g){g.view=new f.view.Router({controller:this})},createIframeStates:function(g){var j=f.view.settings,i=j.tabs,k=j.tabUrl,h;if(!i||!k){return}h=e("#post_ID");if(h.length){k+="&post_id="+h.val()}_.each(i,function(m,n){var l=this.state("iframe:"+n).set(_.defaults({tab:n,src:k+"&tab="+n,title:m,content:"iframe",menu:"default"},g))},this);this.on("content:create:iframe",this.iframeContent,this);this.on("menu:render:default",this.iframeMenu,this);this.on("open",this.hijackThickbox,this);this.on("close",this.restoreThickbox,this)},iframeContent:function(g){this.$el.addClass("hide-toolbar");g.view=new f.view.Iframe({controller:this})},iframeMenu:function(h){var g={};if(!h){return}_.each(f.view.settings.tabs,function(i,j){g["iframe:"+j]={text:this.state("iframe:"+j).get("title"),priority:200}},this);h.set(g)},hijackThickbox:function(){var g=this;if(!window.tb_remove||this._tb_remove){return}this._tb_remove=window.tb_remove;window.tb_remove=function(){g.close();g.reset();g.setState(g.options.state);g._tb_remove.call(window)}},restoreThickbox:function(){if(!this._tb_remove){return}window.tb_remove=this._tb_remove;delete this._tb_remove}});_.each(["open","close","attach","detach","escape"],function(g){f.view.MediaFrame.prototype[g]=function(h){if(this.modal){this.modal[g].apply(this.modal,arguments)}return this}});f.view.MediaFrame.Select=f.view.MediaFrame.extend({initialize:function(){f.view.MediaFrame.prototype.initialize.apply(this,arguments);_.defaults(this.options,{selection:[],library:{},multiple:false,state:"library"});this.createSelection();this.createStates();this.bindHandlers()},createSelection:function(){var g=this,h=this.options.selection;if(!(h instanceof f.model.Selection)){this.options.selection=new f.model.Selection(h,{multiple:this.options.multiple})}this._selection={attachments:new c(),difference:[]}},createStates:function(){var g=this.options;if(this.options.states){return}this.states.add([new f.controller.Library({library:f.query(g.library),multiple:g.multiple,title:g.title,priority:20})])},bindHandlers:function(){this.on("router:create:browse",this.createRouter,this);this.on("router:render:browse",this.browseRouter,this);this.on("content:create:browse",this.browseContent,this);this.on("content:render:upload",this.uploadContent,this);this.on("toolbar:create:select",this.createSelectToolbar,this)},browseRouter:function(g){g.set({upload:{text:b.uploadFilesTitle,priority:20},browse:{text:b.mediaLibraryTitle,priority:40}})},browseContent:function(g){var h=this.state();this.$el.removeClass("hide-toolbar");g.view=new f.view.AttachmentsBrowser({controller:this,collection:h.get("library"),selection:h.get("selection"),model:h,sortable:h.get("sortable"),search:h.get("searchable"),filters:h.get("filterable"),display:h.get("displaySettings"),dragInfo:h.get("dragInfo"),AttachmentView:h.get("AttachmentView")})},uploadContent:function(){this.$el.removeClass("hide-toolbar");this.content.set(new f.view.UploaderInline({controller:this}))},createSelectToolbar:function(h,g){g=g||this.options.button||{};g.controller=this;h.view=new f.view.Toolbar.Select(g)}});f.view.MediaFrame.Post=f.view.MediaFrame.Select.extend({initialize:function(){_.defaults(this.options,{multiple:true,editing:false,state:"insert"});f.view.MediaFrame.Select.prototype.initialize.apply(this,arguments);this.createIframeStates()},createStates:function(){var g=this.options;this.states.add([new f.controller.Library({id:"insert",title:b.insertMediaTitle,priority:20,toolbar:"main-insert",filterable:"all",library:f.query(g.library),multiple:g.multiple?"reset":false,editable:true,allowLocalEdits:true,displaySettings:true,displayUserSettings:true}),new f.controller.Library({id:"gallery",title:b.createGalleryTitle,priority:40,toolbar:"main-gallery",filterable:"uploaded",multiple:"add",editable:false,library:f.query(_.defaults({type:"image"},g.library))}),new f.controller.Embed(),new f.controller.GalleryEdit({library:g.selection,editing:g.editing,menu:"gallery"}),new f.controller.GalleryAdd()]);if(f.view.settings.post.featuredImageId){this.states.add(new f.controller.FeaturedImage())}},bindHandlers:function(){f.view.MediaFrame.Select.prototype.bindHandlers.apply(this,arguments);this.on("menu:create:gallery",this.createMenu,this);this.on("toolbar:create:main-insert",this.createToolbar,this);this.on("toolbar:create:main-gallery",this.createToolbar,this);this.on("toolbar:create:featured-image",this.featuredImageToolbar,this);this.on("toolbar:create:main-embed",this.mainEmbedToolbar,this);var g={menu:{"default":"mainMenu",gallery:"galleryMenu"},content:{embed:"embedContent","edit-selection":"editSelectionContent"},toolbar:{"main-insert":"mainInsertToolbar","main-gallery":"mainGalleryToolbar","gallery-edit":"galleryEditToolbar","gallery-add":"galleryAddToolbar"}};_.each(g,function(i,h){_.each(i,function(k,j){this.on(h+":render:"+j,this[k],this)},this)},this)},mainMenu:function(g){g.set({"library-separator":new f.View({className:"separator",priority:100})})},galleryMenu:function(g){var h=this.lastState(),i=h&&h.id,j=this;g.set({cancel:{text:b.cancelGalleryTitle,priority:20,click:function(){if(i){j.setState(i)}else{j.close()}}},separateCancel:new f.View({className:"separator",priority:40})})},embedContent:function(){var g=new f.view.Embed({controller:this,model:this.state()}).render();this.content.set(g);g.url.focus()},editSelectionContent:function(){var i=this.state(),h=i.get("selection"),g;g=new f.view.AttachmentsBrowser({controller:this,collection:h,selection:h,model:i,sortable:true,search:false,dragInfo:true,AttachmentView:f.view.Attachment.EditSelection}).render();g.toolbar.set("backToLibrary",{text:b.returnToLibrary,priority:-100,click:function(){this.controller.content.mode("browse")}});this.content.set(g)},selectionStatusToolbar:function(g){var h=this.state().get("editable");g.set("selection",new f.view.Selection({controller:this,collection:this.state().get("selection"),priority:-40,editable:h&&function(){this.controller.content.mode("edit-selection")}}).render())},mainInsertToolbar:function(h){var g=this;this.selectionStatusToolbar(h);h.set("insert",{style:"primary",priority:80,text:b.insertIntoPost,requires:{selection:true},click:function(){var j=g.state(),i=j.get("selection");g.close();j.trigger("insert",i).reset()}})},mainGalleryToolbar:function(h){var g=this;this.selectionStatusToolbar(h);h.set("gallery",{style:"primary",text:b.createNewGallery,priority:60,requires:{selection:true},click:function(){var i=g.state().get("selection"),j=g.state("gallery-edit"),k=i.where({type:"image"});j.set("library",new f.model.Selection(k,{props:i.props.toJSON(),multiple:true}));this.controller.setState("gallery-edit")}})},featuredImageToolbar:function(g){this.createSelectToolbar(g,{text:b.setFeaturedImage,state:this.options.state||"upload"})},mainEmbedToolbar:function(g){g.view=new f.view.Toolbar.Embed({controller:this})},galleryEditToolbar:function(){var g=this.state().get("editing");this.toolbar.set(new f.view.Toolbar({controller:this,items:{insert:{style:"primary",text:g?b.updateGallery:b.insertGallery,priority:80,requires:{library:true},click:function(){var h=this.controller,i=h.state();h.close();i.trigger("update",i.get("library"));h.reset();h.setState("upload")}}}}))},galleryAddToolbar:function(){this.toolbar.set(new f.view.Toolbar({controller:this,items:{insert:{style:"primary",text:b.addToGallery,priority:80,requires:{selection:true},click:function(){var g=this.controller,i=g.state(),h=g.state("gallery-edit");h.get("library").add(i.get("selection").models);i.trigger("reset");g.setState("gallery-edit")}}}}))}});f.view.Modal=f.View.extend({tagName:"div",template:f.template("media-modal"),attributes:{tabindex:0},events:{"click .media-modal-backdrop, .media-modal-close":"escapeHandler",keydown:"keydown"},initialize:function(){_.defaults(this.options,{container:document.body,title:"",propagate:true,freeze:true})},prepare:function(){return{title:this.options.title}},attach:function(){if(this.views.attached){return this}if(!this.views.rendered){this.render()}this.$el.appendTo(this.options.container);this.views.attached=true;this.views.ready();return this.propagate("attach")},detach:function(){if(this.$el.is(":visible")){this.close()}this.$el.detach();this.views.attached=false;return this.propagate("detach")},open:function(){var h=this.$el,g=this.options;if(h.is(":visible")){return this}if(!this.views.attached){this.attach()}if(g.freeze){this._freeze={scrollTop:e(window).scrollTop()}}h.show().focus();return this.propagate("open")},close:function(g){var h=this._freeze;if(!this.views.attached||!this.$el.is(":visible")){return this}this.$el.hide();this.propagate("close");if(h){e(window).scrollTop(h.scrollTop)}if(g&&g.escape){this.propagate("escape")}return this},escape:function(){return this.close({escape:true})},escapeHandler:function(g){g.preventDefault();this.escape()},content:function(g){this.views.set(".media-modal-content",g);return this},propagate:function(g){this.trigger(g);if(this.options.propagate){this.controller.trigger(g)}return this},keydown:function(g){if(27===g.which){g.preventDefault();this.escape();return}}});f.view.FocusManager=f.View.extend({events:{keydown:"recordTab",focusin:"updateIndex"},focus:function(){if(_.isUndefined(this.index)){return}this.$tabbables=this.$(":tabbable");this.$tabbables.eq(this.index).focus()},recordTab:function(h){if(9!==h.keyCode){return}if(_.isUndefined(this.index)){this.updateIndex(h)}if(_.isUndefined(this.index)){return}var g=this.index+(h.shiftKey?-1:1);if(g>=0&&g<this.$tabbables.length){this.index=g}else{delete this.index}},updateIndex:function(h){this.$tabbables=this.$(":tabbable");var g=this.$tabbables.index(h.target);if(-1===g){delete this.index}else{this.index=g}}});f.view.UploaderWindow=f.View.extend({tagName:"div",className:"uploader-window",template:f.template("uploader-window"),initialize:function(){var g;this.$browser=e('<a href="#" class="browser" />').hide().appendTo("body");g=this.options.uploader=_.defaults(this.options.uploader||{},{dropzone:this.$el,browser:this.$browser,params:{}});if(g.dropzone&&!(g.dropzone instanceof e)){g.dropzone=e(g.dropzone)}this.controller.on("activate",this.refresh,this)},refresh:function(){if(this.uploader){this.uploader.refresh()}},ready:function(){var h=f.view.settings.post.id,g;if(this.uploader){return}if(h){this.options.uploader.params.post_id=h}this.uploader=new wp.Uploader(this.options.uploader);g=this.uploader.dropzone;g.on("dropzone:enter",_.bind(this.show,this));g.on("dropzone:leave",_.bind(this.hide,this))},show:function(){var g=this.$el.show();_.defer(function(){g.css({opacity:1})})},hide:function(){var g=this.$el.css({opacity:0});f.transition(g).done(function(){if("0"===g.css("opacity")){g.hide()}})}});f.view.UploaderInline=f.View.extend({tagName:"div",className:"uploader-inline",template:f.template("uploader-inline"),initialize:function(){_.defaults(this.options,{message:"",status:true});if(!this.options.$browser&&this.controller.uploader){this.options.$browser=this.controller.uploader.$browser}if(_.isUndefined(this.options.postId)){this.options.postId=f.view.settings.post.id}if(this.options.status){this.views.set(".upload-inline-status",new f.view.UploaderStatus({controller:this.controller}))}},dispose:function(){if(this.disposing){return f.View.prototype.dispose.apply(this,arguments)}this.disposing=true;return this.remove()},remove:function(){var g=f.View.prototype.remove.apply(this,arguments);_.defer(_.bind(this.refresh,this));return g},refresh:function(){var g=this.controller.uploader;if(g){g.refresh()}},ready:function(){var g=this.options.$browser,h;if(this.controller.uploader){h=this.$(".browser");if(h[0]===g[0]){return}g.detach().text(h.text());g[0].className=h[0].className;h.replaceWith(g.show())}this.refresh();return this}});f.view.UploaderStatus=f.View.extend({className:"media-uploader-status",template:f.template("uploader-status"),events:{"click .upload-dismiss-errors":"dismiss"},initialize:function(){this.queue=wp.Uploader.queue;this.queue.on("add remove reset",this.visibility,this);this.queue.on("add remove reset change:percent",this.progress,this);this.queue.on("add remove reset change:uploading",this.info,this);this.errors=wp.Uploader.errors;this.errors.reset();this.errors.on("add remove reset",this.visibility,this);this.errors.on("add",this.error,this)},dispose:function(){wp.Uploader.queue.off(null,null,this);f.View.prototype.dispose.apply(this,arguments);return this},visibility:function(){this.$el.toggleClass("uploading",!!this.queue.length);this.$el.toggleClass("errors",!!this.errors.length);this.$el.toggle(!!this.queue.length||!!this.errors.length)},ready:function(){_.each({"$bar":".media-progress-bar div","$index":".upload-index","$total":".upload-total","$filename":".upload-filename"},function(g,h){this[h]=this.$(g)},this);this.visibility();this.progress();this.info()},progress:function(){var g=this.queue,i=this.$bar,h=0;if(!i||!g.length){return}i.width((g.reduce(function(j,l){if(!l.get("uploading")){return j+100}var k=l.get("percent");return j+(_.isNumber(k)?k:100)},0)/g.length)+"%")},info:function(){var g=this.queue,h=0,i;if(!g.length){return}i=this.queue.find(function(k,j){h=j;return k.get("uploading")});this.$index.text(h+1);this.$total.text(g.length);this.$filename.html(i?this.filename(i.get("filename")):"")},filename:function(g){return f.truncate(_.escape(g),24)},error:function(g){this.views.add(".upload-errors",new f.view.UploaderStatusError({filename:this.filename(g.get("file").name),message:g.get("message")}),{at:0})},dismiss:function(g){var h=this.views.get(".upload-errors");g.preventDefault();if(h){_.invoke(h,"remove")}wp.Uploader.errors.reset()}});f.view.UploaderStatusError=f.View.extend({className:"upload-error",template:f.template("uploader-status-error")});f.view.Toolbar=f.View.extend({tagName:"div",className:"media-toolbar",initialize:function(){var i=this.controller.state(),h=this.selection=i.get("selection"),g=this.library=i.get("library");this._views={};this.primary=new f.view.PriorityList();this.secondary=new f.view.PriorityList();this.primary.$el.addClass("media-toolbar-primary");this.secondary.$el.addClass("media-toolbar-secondary");this.views.set([this.secondary,this.primary]);if(this.options.items){this.set(this.options.items,{silent:true})}if(!this.options.silent){this.render()}if(h){h.on("add remove reset",this.refresh,this)}if(g){g.on("add remove reset",this.refresh,this)}},dispose:function(){if(this.selection){this.selection.off(null,null,this)}if(this.library){this.library.off(null,null,this)}return f.View.prototype.dispose.apply(this,arguments)},ready:function(){this.refresh()},set:function(j,g,h){var i;h=h||{};if(_.isObject(j)){_.each(j,function(k,l){this.set(l,k,{silent:true})},this)}else{if(!(g instanceof Backbone.View)){g.classes=["media-button-"+j].concat(g.classes||[]);g=new f.view.Button(g).render()}g.controller=g.controller||this.controller;this._views[j]=g;i=g.options.priority<0?"secondary":"primary";this[i].set(j,g,h)}if(!h.silent){this.refresh()}return this},get:function(g){return this._views[g]},unset:function(h,g){delete this._views[h];this.primary.unset(h,g);this.secondary.unset(h,g);if(!g||!g.silent){this.refresh()}return this},refresh:function(){var i=this.controller.state(),g=i.get("library"),h=i.get("selection");_.each(this._views,function(j){if(!j.model||!j.options||!j.options.requires){return}var l=j.options.requires,k=false;if(l.selection&&h&&!h.length){k=true}else{if(l.library&&g&&!g.length){k=true}}j.model.set("disabled",k)})}});f.view.Toolbar.Select=f.view.Toolbar.extend({initialize:function(){var h=this.options,g=h.controller,i=g.state().get("selection");_.bindAll(this,"clickSelect");_.defaults(h,{event:"select",state:false,reset:true,close:true,text:b.select,requires:{selection:true}});h.items=_.defaults(h.items||{},{select:{style:"primary",text:h.text,priority:80,click:this.clickSelect,requires:h.requires}});f.view.Toolbar.prototype.initialize.apply(this,arguments)},clickSelect:function(){var h=this.options,g=this.controller;if(h.close){g.close()}if(h.event){g.state().trigger(h.event)}if(h.reset){g.reset()}if(h.state){g.setState(h.state)}}});f.view.Toolbar.Embed=f.view.Toolbar.Select.extend({initialize:function(){_.defaults(this.options,{text:b.insertIntoPost,requires:false});f.view.Toolbar.Select.prototype.initialize.apply(this,arguments)},refresh:function(){var g=this.controller.state().props.get("url");this.get("select").model.set("disabled",!g||g==="http://");f.view.Toolbar.Select.prototype.refresh.apply(this,arguments)}});f.view.Button=f.View.extend({tagName:"a",className:"media-button",attributes:{href:"#"},events:{click:"click"},defaults:{text:"",style:"",size:"large",disabled:false},initialize:function(){this.model=new Backbone.Model(this.defaults);_.each(this.defaults,function(i,g){var h=this.options[g];if(_.isUndefined(h)){return}this.model.set(g,h);delete this.options[g]},this);this.model.on("change",this.render,this)},render:function(){var h=["button",this.className],g=this.model.toJSON();if(g.style){h.push("button-"+g.style)}if(g.size){h.push("button-"+g.size)}h=_.uniq(h.concat(this.options.classes));this.el.className=h.join(" ");this.$el.attr("disabled",g.disabled);this.$el.text(this.model.get("text"));return this},click:function(g){if("#"===this.attributes.href){g.preventDefault()}if(this.options.click&&!this.model.get("disabled")){this.options.click.apply(this,arguments)}}});f.view.ButtonGroup=f.View.extend({tagName:"div",className:"button-group button-large media-button-group",initialize:function(){this.buttons=_.map(this.options.buttons||[],function(g){if(g instanceof Backbone.View){return g}else{return new f.view.Button(g).render()}});delete this.options.buttons;if(this.options.classes){this.$el.addClass(this.options.classes)}},render:function(){this.$el.html(e(_.pluck(this.buttons,"el")).detach());return this}});f.view.PriorityList=f.View.extend({tagName:"div",initialize:function(){this._views={};this.set(_.extend({},this._views,this.options.views),{silent:true});delete this.options.views;if(!this.options.silent){this.render()}},set:function(l,h,j){var k,g,i;j=j||{};if(_.isObject(l)){_.each(l,function(m,n){this.set(n,m)},this);return this}if(!(h instanceof Backbone.View)){h=this.toView(h,l,j)}h.controller=h.controller||this.controller;this.unset(l);k=h.options.priority||10;g=this.views.get()||[];_.find(g,function(n,m){if(n.options.priority>k){i=m;return true}});this._views[l]=h;this.views.add(h,{at:_.isNumber(i)?i:g.length||0});return this},get:function(g){return this._views[g]},unset:function(h){var g=this.get(h);if(g){g.remove()}delete this._views[h];return this},toView:function(g){return new f.View(g)}});f.view.MenuItem=f.View.extend({tagName:"a",className:"media-menu-item",attributes:{href:"#"},events:{click:"_click"},_click:function(g){var h=this.options.click;if(g){g.preventDefault()}if(h){h.call(this)}else{this.click()}},click:function(){var g=this.options.state;if(g){this.controller.setState(g)}},render:function(){var g=this.options;if(g.text){this.$el.text(g.text)}else{if(g.html){this.$el.html(g.html)}}return this}});f.view.Menu=f.view.PriorityList.extend({tagName:"div",className:"media-menu",property:"state",ItemView:f.view.MenuItem,region:"menu",toView:function(g,h){g=g||{};g[this.property]=g[this.property]||h;return new this.ItemView(g).render()},ready:function(){f.view.PriorityList.prototype.ready.apply(this,arguments);this.visibility()},set:function(){f.view.PriorityList.prototype.set.apply(this,arguments);this.visibility()},unset:function(){f.view.PriorityList.prototype.unset.apply(this,arguments);this.visibility()},visibility:function(){var j=this.region,h=this.controller[j].get(),g=this.views.get(),i=!g||g.length<2;if(this===h){this.controller.$el.toggleClass("hide-"+j,i)}},select:function(h){var g=this.get(h);if(!g){return}this.deselect();g.$el.addClass("active")},deselect:function(){this.$el.children().removeClass("active")}});f.view.RouterItem=f.view.MenuItem.extend({click:function(){var g=this.options.contentMode;if(g){this.controller.content.mode(g)}}});f.view.Router=f.view.Menu.extend({tagName:"div",className:"media-router",property:"contentMode",ItemView:f.view.RouterItem,region:"router",initialize:function(){this.controller.on("content:render",this.update,this);f.view.Menu.prototype.initialize.apply(this,arguments)},update:function(){var g=this.controller.content.mode();if(g){this.select(g)}}});f.view.Sidebar=f.view.PriorityList.extend({className:"media-sidebar"});f.view.Attachment=f.View.extend({tagName:"li",className:"attachment",template:f.template("attachment"),events:{"click .attachment-preview":"toggleSelectionHandler","change [data-setting]":"updateSetting","change [data-setting] input":"updateSetting","change [data-setting] select":"updateSetting","change [data-setting] textarea":"updateSetting","click .close":"removeFromLibrary","click .check":"removeFromSelection","click a":"preventDefault"},buttons:{},initialize:function(){var g=this.options.selection;this.model.on("change:sizes change:uploading change:caption change:title",this.render,this);this.model.on("change:percent",this.progress,this);this.model.on("add",this.select,this);this.model.on("remove",this.deselect,this);if(g){g.on("reset",this.updateSelect,this)}this.model.on("selection:single selection:unsingle",this.details,this);this.details(this.model,this.controller.state().get("selection"))},dispose:function(){var g=this.options.selection;this.updateAll();if(g){g.off(null,null,this)}f.View.prototype.dispose.apply(this,arguments);return this},render:function(){var g=_.defaults(this.model.toJSON(),{orientation:"landscape",uploading:false,type:"",subtype:"",icon:"",filename:"",caption:"",title:"",dateFormatted:"",width:"",height:"",compat:false,alt:"",description:""});g.buttons=this.buttons;g.describe=this.controller.state().get("describe");if("image"===g.type){g.size=this.imageSize()}g.can={};if(g.nonces){g.can.remove=!!g.nonces["delete"];g.can.save=!!g.nonces.update}if(this.controller.state().get("allowLocalEdits")){g.allowLocalEdits=true}this.views.detach();this.$el.html(this.template(g));this.$el.toggleClass("uploading",g.uploading);if(g.uploading){this.$bar=this.$(".media-progress-bar div")}else{delete this.$bar}this.updateSelect();this.updateSave();this.views.render();return this},progress:function(){if(this.$bar&&this.$bar.length){this.$bar.width(this.model.get("percent")+"%")}},toggleSelectionHandler:function(g){var h;if(g.shiftKey){h="between"}else{if(g.ctrlKey||g.metaKey){h="toggle"}}this.toggleSelection({method:h})},toggleSelection:function(p){var k=this.collection,l=this.options.selection,j=this.model,g=p&&p.method,m,n,h,i,o;if(!l){return}m=l.single();g=_.isUndefined(g)?l.multiple:g;if("between"===g&&m&&l.multiple){if(m===j){return}i=k.indexOf(m);o=k.indexOf(this.model);if(i<o){h=k.models.slice(i,o+1)}else{h=k.models.slice(o,i+1)}l.add(h).single(j);return}else{if("toggle"===g){l[this.selected()?"remove":"add"](j).single(j);return}}if(g!=="add"){g="reset"}if(this.selected()){l[m===j?"remove":"single"](j)}else{l[g](j).single(j)}},updateSelect:function(){this[this.selected()?"select":"deselect"]()},selected:function(){var g=this.options.selection;if(g){return !!g.getByCid(this.model.cid)}},select:function(g,i){var h=this.options.selection;if(!h||(i&&i!==h)){return}this.$el.addClass("selected")},deselect:function(g,i){var h=this.options.selection;if(!h||(i&&i!==h)){return}this.$el.removeClass("selected")},details:function(g,j){var i=this.options.selection,h;if(i!==j){return}h=i.single();this.$el.toggleClass("details",h===this.model)},preventDefault:function(g){g.preventDefault()},imageSize:function(g){var h=this.model.get("sizes");g=g||"medium";if(h&&h[g]){return _.clone(h[g])}else{return{url:this.model.get("url"),width:this.model.get("width"),height:this.model.get("height"),orientation:this.model.get("orientation")}}},updateSetting:function(i){var g=e(i.target).closest("[data-setting]"),h,j;if(!g.length){return}h=g.data("setting");j=i.target.value;if(this.model.get(h)!==j){this.save(h,j)}},save:function(){var g=this,i=this._save=this._save||{status:"ready"},h=this.model.save.apply(this.model,arguments),j=i.requests?e.when(h,i.requests):h;if(i.savedTimer){clearTimeout(i.savedTimer)}this.updateSave("waiting");i.requests=j;j.always(function(){if(i.requests!==j){return}g.updateSave(j.state()==="resolved"?"complete":"error");i.savedTimer=setTimeout(function(){g.updateSave("ready");delete i.savedTimer},2000)})},updateSave:function(g){var h=this._save=this._save||{status:"ready"};if(g&&g!==h.status){this.$el.removeClass("save-"+h.status);h.status=g}this.$el.addClass("save-"+h.status);return this},updateAll:function(){var h=this.$("[data-setting]"),g=this.model,i;i=_.chain(h).map(function(k){var m=e("input, textarea, select, [value]",k),j,l;if(!m.length){return}j=e(k).data("setting");l=m.val();if(g.get(j)!==l){return[j,l]}}).compact().object().value();if(!_.isEmpty(i)){g.save(i)}},removeFromLibrary:function(g){g.stopPropagation();this.collection.remove(this.model)},removeFromSelection:function(h){var g=this.options.selection;if(!g){return}h.stopPropagation();g.remove(this.model)}});f.view.Attachment.Library=f.view.Attachment.extend({buttons:{check:true}});f.view.Attachment.EditLibrary=f.view.Attachment.extend({buttons:{close:true}});f.view.Attachments=f.View.extend({tagName:"ul",className:"attachments",cssTemplate:f.template("attachments-css"),events:{scroll:"scroll"},initialize:function(){this.el.id=_.uniqueId("__attachments-view-");_.defaults(this.options,{refreshSensitivity:200,refreshThreshold:3,AttachmentView:f.view.Attachment,sortable:false,resize:true});this._viewsByCid={};this.collection.on("add",function(i,g,h){this.views.add(this.createAttachmentView(i),{at:h.index})},this);this.collection.on("remove",function(j,g,i){var h=this._viewsByCid[j.cid];delete this._viewsByCid[j.cid];if(h){h.remove()}},this);this.collection.on("reset",this.render,this);this.scroll=_.chain(this.scroll).bind(this).throttle(this.options.refreshSensitivity).value();this.initSortable();_.bindAll(this,"css");this.model.on("change:edge change:gutter",this.css,this);this._resizeCss=_.debounce(_.bind(this.css,this),this.refreshSensitivity);if(this.options.resize){e(window).on("resize.attachments",this._resizeCss)}this.css()},dispose:function(){this.collection.props.off(null,null,this);e(window).off("resize.attachments",this._resizeCss);f.View.prototype.dispose.apply(this,arguments)},css:function(){var g=e("#"+this.el.id+"-css");if(g.length){g.remove()}f.view.Attachments.$head().append(this.cssTemplate({id:this.el.id,edge:this.edge(),gutter:this.model.get("gutter")}))},edge:function(){var i=this.model.get("edge"),j,h,g;if(!this.$el.is(":visible")){return i}j=this.model.get("gutter")*2;h=this.$el.width()-j;g=Math.ceil(h/(i+j));i=Math.floor((h-(g*j))/g);return i},initSortable:function(){var g=this.collection;if(!this.options.sortable||!e.fn.sortable){return}this.$el.sortable(_.extend({disabled:!!g.comparator,containment:this.$el,tolerance:"pointer",start:function(h,i){i.item.data("sortableIndexStart",i.item.index())},update:function(j,k){var i=g.at(k.item.data("sortableIndexStart")),h=g.comparator;delete g.comparator;g.remove(i,{silent:true}).add(i,{silent:true,at:k.item.index()});g.comparator=h;g.trigger("reset",g);g.saveMenuOrder()}},this.options.sortable));g.props.on("change:orderby",function(){this.$el.sortable("option","disabled",!!g.comparator)},this);this.collection.props.on("change:orderby",this.refreshSortable,this);this.refreshSortable()},refreshSortable:function(){if(!this.options.sortable||!e.fn.sortable){return}var i=this.collection,h=i.props.get("orderby"),g="menuOrder"===h||!i.comparator;this.$el.sortable("option","disabled",!g)},createAttachmentView:function(h){var g=new this.options.AttachmentView({controller:this.controller,model:h,collection:this.collection,selection:this.options.selection});return this._viewsByCid[h.cid]=g},prepare:function(){if(this.collection.length){this.views.set(this.collection.map(this.createAttachmentView,this))}else{this.views.unset();this.collection.more().done(this.scroll)}},ready:function(){this.scroll()},scroll:function(g){if(!this.$el.is(":visible")){return}if(this.collection.hasMore()&&this.el.scrollHeight<this.el.scrollTop+(this.el.clientHeight*this.options.refreshThreshold)){this.collection.more().done(this.scroll)}}},{$head:(function(){var g;return function(){return g=g||e("head")}}())});f.view.Search=f.View.extend({tagName:"input",className:"search",attributes:{type:"search",placeholder:b.search},events:{input:"search",keyup:"search",change:"search",search:"search"},render:function(){this.el.value=this.model.escape("search");return this},search:function(g){if(g.target.value){this.model.set("search",g.target.value)}else{this.model.unset("search")}}});f.view.AttachmentFilters=f.View.extend({tagName:"select",className:"attachment-filters",events:{change:"change"},keys:[],initialize:function(){this.createFilters();_.extend(this.filters,this.options.filters);this.$el.html(_.chain(this.filters).map(function(g,h){return{el:this.make("option",{value:h},g.text),priority:g.priority||50}},this).sortBy("priority").pluck("el").value());this.model.on("change",this.select,this);this.select()},createFilters:function(){this.filters={}},change:function(h){var g=this.filters[this.el.value];if(g){this.model.set(g.props)}},select:function(){var g=this.model,i="all",h=g.toJSON();_.find(this.filters,function(k,l){var j=_.all(k.props,function(n,m){return n===(_.isUndefined(h[m])?null:h[m])});if(j){return i=l}});this.$el.val(i)}});f.view.AttachmentFilters.Uploaded=f.view.AttachmentFilters.extend({createFilters:function(){var h=this.model.get("type"),g=f.view.settings.mimeTypes,i;if(g&&h){i=g[h]}this.filters={all:{text:i||b.allMediaItems,props:{uploadedTo:null,orderby:"date",order:"DESC"},priority:10},uploaded:{text:b.uploadedToThisPost,props:{uploadedTo:f.view.settings.post.id,orderby:"menuOrder",order:"ASC"},priority:20}}}});f.view.AttachmentFilters.All=f.view.AttachmentFilters.extend({createFilters:function(){var g={};_.each(f.view.settings.mimeTypes||{},function(i,h){g[h]={text:i,props:{type:h,uploadedTo:null,orderby:"date",order:"DESC"}}});g.all={text:b.allMediaItems,props:{type:null,uploadedTo:null,orderby:"date",order:"DESC"},priority:10};g.uploaded={text:b.uploadedToThisPost,props:{type:null,uploadedTo:f.view.settings.post.id,orderby:"menuOrder",order:"ASC"},priority:20};this.filters=g}});f.view.AttachmentsBrowser=f.View.extend({tagName:"div",className:"attachments-browser",initialize:function(){_.defaults(this.options,{filters:false,search:true,display:false,AttachmentView:f.view.Attachment.Library});this.createToolbar();this.updateContent();this.createSidebar();this.collection.on("add remove reset",this.updateContent,this)},dispose:function(){this.options.selection.off(null,null,this);f.View.prototype.dispose.apply(this,arguments);return this},createToolbar:function(){var h,g;this.toolbar=new f.view.Toolbar({controller:this.controller});this.views.add(this.toolbar);h=this.options.filters;if("uploaded"===h){g=f.view.AttachmentFilters.Uploaded}else{if("all"===h){g=f.view.AttachmentFilters.All}}if(g){this.toolbar.set("filters",new g({controller:this.controller,model:this.collection.props,priority:-80}).render())}if(this.options.search){this.toolbar.set("search",new f.view.Search({controller:this.controller,model:this.collection.props,priority:60}).render())}if(this.options.dragInfo){this.toolbar.set("dragInfo",new f.View({el:e('<div class="instructions">'+b.dragInfo+"</div>")[0],priority:-40}))}},updateContent:function(){var g=this;if(!this.attachments){this.createAttachments()}if(!this.collection.length){this.collection.more().done(function(){if(!g.collection.length){g.createUploader()}})}},removeContent:function(){_.each(["attachments","uploader"],function(g){if(this[g]){this[g].remove();delete this[g]}},this)},createUploader:function(){this.removeContent();this.uploader=new f.view.UploaderInline({controller:this.controller,status:false,message:b.noItemsFound});this.views.add(this.uploader)},createAttachments:function(){this.removeContent();this.attachments=new f.view.Attachments({controller:this.controller,collection:this.collection,selection:this.options.selection,model:this.model,sortable:this.options.sortable,AttachmentView:this.options.AttachmentView});this.views.add(this.attachments)},createSidebar:function(){var g=this.options,h=g.selection,i=this.sidebar=new f.view.Sidebar({controller:this.controller});this.views.add(i);if(this.controller.uploader){i.set("uploads",new f.view.UploaderStatus({controller:this.controller,priority:40}))}h.on("selection:single",this.createSingle,this);h.on("selection:unsingle",this.disposeSingle,this);if(h.single()){this.createSingle()}},createSingle:function(){var h=this.sidebar,i=this.options.selection.single(),g={};h.set("details",new f.view.Attachment.Details({controller:this.controller,model:i,priority:80}));h.set("compat",new f.view.AttachmentCompat({controller:this.controller,model:i,priority:120}));if(this.options.display){h.set("display",new f.view.Settings.AttachmentDisplay({controller:this.controller,model:this.model.display(i),attachment:i,priority:160,userSettings:this.model.get("displayUserSettings")}))}},disposeSingle:function(){var g=this.sidebar;g.unset("details");g.unset("compat");g.unset("display")}});f.view.Selection=f.View.extend({tagName:"div",className:"media-selection",template:f.template("media-selection"),events:{"click .edit-selection":"edit","click .clear-selection":"clear"},initialize:function(){_.defaults(this.options,{editable:false,clearable:true});this.attachments=new f.view.Attachments.Selection({controller:this.controller,collection:this.collection,selection:this.collection,model:new Backbone.Model({edge:40,gutter:5})});this.views.set(".selection-view",this.attachments);this.collection.on("add remove reset",this.refresh,this);this.controller.on("content:activate",this.refresh,this)},ready:function(){this.refresh()},refresh:function(){if(!this.$el.children().length){return}var h=this.collection,g="edit-selection"===this.controller.content.mode();this.$el.toggleClass("empty",!h.length);this.$el.toggleClass("one",1===h.length);this.$el.toggleClass("editing",g);this.$(".count").text(b.selected.replace("%d",h.length))},edit:function(g){g.preventDefault();if(this.options.editable){this.options.editable.call(this,this.collection)}},clear:function(g){g.preventDefault();this.collection.reset()}});f.view.Attachment.Selection=f.view.Attachment.extend({className:"attachment selection",toggleSelection:function(){this.options.selection.single(this.model)}});f.view.Attachments.Selection=f.view.Attachments.extend({events:{},initialize:function(){_.defaults(this.options,{sortable:true,resize:false,AttachmentView:f.view.Attachment.Selection});return f.view.Attachments.prototype.initialize.apply(this,arguments)}});f.view.Attachment.EditSelection=f.view.Attachment.Selection.extend({buttons:{close:true}});f.view.Settings=f.View.extend({events:{"click button":"updateHandler","change input":"updateHandler","change select":"updateHandler","change textarea":"updateHandler"},initialize:function(){this.model=this.model||new Backbone.Model();this.model.on("change",this.updateChanges,this)},prepare:function(){return _.defaults({model:this.model.toJSON()},this.options)},render:function(){f.View.prototype.render.apply(this,arguments);_(this.model.attributes).chain().keys().each(this.update,this);return this},update:function(j){var k=this.model.get(j),i=this.$('[data-setting="'+j+'"]'),g,h;if(!i.length){return}if(i.is("select")){h=i.find('[value="'+k+'"]');if(h.length){i.find("option").prop("selected",false);h.prop("selected",true)}else{this.model.set(j,i.find(":selected").val())}}else{if(i.hasClass("button-group")){g=i.find("button").removeClass("active");g.filter('[value="'+k+'"]').addClass("active")}else{if(i.is('input[type="text"], textarea')){if(!i.is(":focus")){i.val(k)}}else{if(i.is('input[type="checkbox"]')){i.attr("checked",!!k)}}}}},updateHandler:function(i){var h=e(i.target).closest("[data-setting]"),j=i.target.value,g;i.preventDefault();if(!h.length){return}if(h.is('input[type="checkbox"]')){j=h[0].checked}this.model.set(h.data("setting"),j);if(g=h.data("userSetting")){setUserSetting(g,j)}},updateChanges:function(h,g){if(g.changes){_(g.changes).chain().keys().each(this.update,this)}}});f.view.Settings.AttachmentDisplay=f.view.Settings.extend({className:"attachment-display-settings",template:f.template("attachment-display-settings"),initialize:function(){var g=this.options.attachment;_.defaults(this.options,{userSettings:false});f.view.Settings.prototype.initialize.apply(this,arguments);this.model.on("change:link",this.updateLinkTo,this);if(g){g.on("change:uploading",this.render,this)}},dispose:function(){var g=this.options.attachment;if(g){g.off(null,null,this)}f.view.Settings.prototype.dispose.apply(this,arguments)},render:function(){var g=this.options.attachment;if(g){_.extend(this.options,{sizes:g.get("sizes"),type:g.get("type")})}f.view.Settings.prototype.render.call(this);this.updateLinkTo();return this},updateLinkTo:function(){var h=this.model.get("link"),i=this.$(".link-to-custom"),g=this.options.attachment;if("none"===h||(!g&&"custom"!==h)){i.hide();return}if(g){if("post"===h){i.val(g.get("link"))}else{if("file"===h){i.val(g.get("url"))}else{if(!this.model.get("linkUrl")){i.val("http://")}}}i.prop("readonly","custom"!==h)}i.show();if(i.is(":visible")){i.focus()[0].select()}}});f.view.Settings.Gallery=f.view.Settings.extend({className:"gallery-settings",template:f.template("gallery-settings")});f.view.Attachment.Details=f.view.Attachment.extend({tagName:"div",className:"attachment-details",template:f.template("attachment-details"),events:{"change [data-setting]":"updateSetting","change [data-setting] input":"updateSetting","change [data-setting] select":"updateSetting","change [data-setting] textarea":"updateSetting","click .delete-attachment":"deleteAttachment","click .edit-attachment":"editAttachment","click .refresh-attachment":"refreshAttachment"},initialize:function(){this.focusManager=new f.view.FocusManager({el:this.el});f.view.Attachment.prototype.initialize.apply(this,arguments)},render:function(){f.view.Attachment.prototype.render.apply(this,arguments);this.focusManager.focus();return this},deleteAttachment:function(g){g.preventDefault();if(confirm(b.warnDelete)){this.model.destroy()}},editAttachment:function(g){this.$el.addClass("needs-refresh")},refreshAttachment:function(g){this.$el.removeClass("needs-refresh");g.preventDefault();this.model.fetch()}});f.view.AttachmentCompat=f.View.extend({tagName:"form",className:"compat-item",events:{submit:"preventDefault","change input":"save","change select":"save","change textarea":"save"},initialize:function(){this.focusManager=new f.view.FocusManager({el:this.el});this.model.on("change:compat",this.render,this)},dispose:function(){if(this.$(":focus").length){this.save()}return f.View.prototype.dispose.apply(this,arguments)},render:function(){var g=this.model.get("compat");if(!g||!g.item){return}this.views.detach();this.$el.html(g.item);this.views.render();this.focusManager.focus();return this},preventDefault:function(g){g.preventDefault()},save:function(g){var h={};if(g){g.preventDefault()}_.each(this.$el.serializeArray(),function(i){h[i.name]=i.value});this.model.saveCompat(h)}});f.view.Iframe=f.View.extend({className:"media-iframe",render:function(){this.views.detach();this.$el.html('<iframe src="'+this.controller.state().get("src")+'" />');this.views.render();return this}});f.view.Embed=f.View.extend({className:"media-embed",initialize:function(){this.url=new f.view.EmbedUrl({controller:this.controller,model:this.model.props}).render();this.views.set([this.url]);this.refresh();this.model.on("change:type",this.refresh,this);this.model.on("change:loading",this.loading,this)},settings:function(g){if(this._settings){this._settings.remove()}this._settings=g;this.views.add(g)},refresh:function(){var h=this.model.get("type"),g;if("image"===h){g=f.view.EmbedImage}else{if("link"===h){g=f.view.EmbedLink}else{return}}this.settings(new g({controller:this.controller,model:this.model.props,priority:40}))},loading:function(){this.$el.toggleClass("embed-loading",this.model.get("loading"))}});f.view.EmbedUrl=f.View.extend({tagName:"label",className:"embed-url",events:{input:"url",keyup:"url",change:"url"},initialize:function(){this.input=this.make("input",{type:"text",value:this.model.get("url")||""});this.spinner=this.make("span",{"class":"spinner"});this.$input=e(this.input);this.$el.append([this.input,this.spinner]);this.model.on("change:url",this.render,this)},render:function(){var g=this.$input;if(g.is(":focus")){return}this.input.value=this.model.get("url")||"http://";f.View.prototype.render.apply(this,arguments);return this},ready:function(){this.focus()},url:function(g){this.model.set("url",g.target.value)},focus:function(){var g=this.$input;if(g.is(":visible")){g.focus()[0].select()}}});f.view.EmbedLink=f.view.Settings.extend({className:"embed-link-settings",template:f.template("embed-link-settings")});f.view.EmbedImage=f.view.Settings.AttachmentDisplay.extend({className:"embed-image-settings",template:f.template("embed-image-settings"),initialize:function(){f.view.Settings.AttachmentDisplay.prototype.initialize.apply(this,arguments);this.model.on("change:url",this.updateImage,this)},updateImage:function(){this.$("img").attr("src",this.model.get("url"))}})}(jQuery));
\ No newline at end of file
--- a/web/wp-includes/js/plupload/handlers.dev.js	Wed Dec 19 12:35:13 2012 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,481 +0,0 @@
-var topWin = window.dialogArguments || opener || parent || top, uploader, uploader_init;
-
-function fileDialogStart() {
-	jQuery("#media-upload-error").empty();
-}
-
-// progress and success handlers for media multi uploads
-function fileQueued(fileObj) {
-	// Get rid of unused form
-	jQuery('.media-blank').remove();
-
-	var items = jQuery('#media-items').children(), postid = post_id || 0;
-
-	// Collapse a single item
-	if ( items.length == 1 ) {
-		items.removeClass('open').find('.slidetoggle').slideUp(200);
-	}
-	// Create a progress bar containing the filename
-	jQuery('#media-items').append('<div id="media-item-' + fileObj.id + '" class="media-item child-of-' + postid + '"><div class="progress"><div class="percent">0%</div><div class="bar"></div></div><div class="filename original"> ' + fileObj.name + '</div></div>');
-
-	// Disable submit
-	jQuery('#insert-gallery').prop('disabled', true);
-}
-
-function uploadStart() {
-	try {
-		if ( typeof topWin.tb_remove != 'undefined' )
-			topWin.jQuery('#TB_overlay').unbind('click', topWin.tb_remove);
-	} catch(e){}
-
-	return true;
-}
-
-function uploadProgress(up, file) {
-	var item = jQuery('#media-item-' + file.id);
-
-	jQuery('.bar', item).width( (200 * file.loaded) / file.size );
-	jQuery('.percent', item).html( file.percent + '%' );
-}
-
-// check to see if a large file failed to upload
-function fileUploading(up, file) {
-	var hundredmb = 100 * 1024 * 1024, max = parseInt(up.settings.max_file_size, 10);
-
-	if ( max > hundredmb && file.size > hundredmb ) {
-		setTimeout(function(){
-			var done;
-
-			if ( file.status < 3 && file.loaded == 0 ) { // not uploading
-				wpFileError(file, pluploadL10n.big_upload_failed.replace('%1$s', '<a class="uploader-html" href="#">').replace('%2$s', '</a>'));
-				up.stop(); // stops the whole queue
-				up.removeFile(file);
-				up.start(); // restart the queue
-			}
-		}, 10000); // wait for 10 sec. for the file to start uploading
-	}
-}
-
-function updateMediaForm() {
-	var items = jQuery('#media-items').children();
-
-	// Just one file, no need for collapsible part
-	if ( items.length == 1 ) {
-		items.addClass('open').find('.slidetoggle').show();
-		jQuery('.insert-gallery').hide();
-	} else if ( items.length > 1 ) {
-		items.removeClass('open');
-		// Only show Gallery button when there are at least two files.
-		jQuery('.insert-gallery').show();
-	}
-
-	// Only show Save buttons when there is at least one file.
-	if ( items.not('.media-blank').length > 0 )
-		jQuery('.savebutton').show();
-	else
-		jQuery('.savebutton').hide();
-}
-
-function uploadSuccess(fileObj, serverData) {
-	var item = jQuery('#media-item-' + fileObj.id);
-
-	// on success serverData should be numeric, fix bug in html4 runtime returning the serverData wrapped in a <pre> tag
-	serverData = serverData.replace(/^<pre>(\d+)<\/pre>$/, '$1');
-
-	// if async-upload returned an error message, place it in the media item div and return
-	if ( serverData.match(/media-upload-error|error-div/) ) {
-		item.html(serverData);
-		return;
-	} else {
-		jQuery('.percent', item).html( pluploadL10n.crunching );
-	}
-
-	prepareMediaItem(fileObj, serverData);
-	updateMediaForm();
-
-	// Increment the counter.
-	if ( post_id && item.hasClass('child-of-' + post_id) )
-		jQuery('#attachments-count').text(1 * jQuery('#attachments-count').text() + 1);
-}
-
-function setResize(arg) {
-	if ( arg ) {
-		if ( uploader.features.jpgresize )
-			uploader.settings['resize'] = { width: resize_width, height: resize_height, quality: 100 };
-		else
-			uploader.settings.multipart_params.image_resize = true;
-	} else {
-		delete(uploader.settings.resize);
-		delete(uploader.settings.multipart_params.image_resize);
-	}
-}
-
-function prepareMediaItem(fileObj, serverData) {
-	var f = ( typeof shortform == 'undefined' ) ? 1 : 2, item = jQuery('#media-item-' + fileObj.id);
-
-	try {
-		if ( typeof topWin.tb_remove != 'undefined' )
-			topWin.jQuery('#TB_overlay').click(topWin.tb_remove);
-	} catch(e){}
-
-	if ( isNaN(serverData) || !serverData ) { // Old style: Append the HTML returned by the server -- thumbnail and form inputs
-		item.append(serverData);
-		prepareMediaItemInit(fileObj);
-	} else { // New style: server data is just the attachment ID, fetch the thumbnail and form html from the server
-		item.load('async-upload.php', {attachment_id:serverData, fetch:f}, function(){prepareMediaItemInit(fileObj);updateMediaForm()});
-	}
-}
-
-function prepareMediaItemInit(fileObj) {
-	var item = jQuery('#media-item-' + fileObj.id);
-	// Clone the thumbnail as a "pinkynail" -- a tiny image to the left of the filename
-	jQuery('.thumbnail', item).clone().attr('class', 'pinkynail toggle').prependTo(item);
-
-	// Replace the original filename with the new (unique) one assigned during upload
-	jQuery('.filename.original', item).replaceWith( jQuery('.filename.new', item) );
-
-	// Bind AJAX to the new Delete button
-	jQuery('a.delete', item).click(function(){
-		// Tell the server to delete it. TODO: handle exceptions
-		jQuery.ajax({
-			url: ajaxurl,
-			type: 'post',
-			success: deleteSuccess,
-			error: deleteError,
-			id: fileObj.id,
-			data: {
-				id : this.id.replace(/[^0-9]/g, ''),
-				action : 'trash-post',
-				_ajax_nonce : this.href.replace(/^.*wpnonce=/,'')
-			}
-		});
-		return false;
-	});
-
-	// Bind AJAX to the new Undo button
-	jQuery('a.undo', item).click(function(){
-		// Tell the server to untrash it. TODO: handle exceptions
-		jQuery.ajax({
-			url: ajaxurl,
-			type: 'post',
-			id: fileObj.id,
-			data: {
-				id : this.id.replace(/[^0-9]/g,''),
-				action: 'untrash-post',
-				_ajax_nonce: this.href.replace(/^.*wpnonce=/,'')
-			},
-			success: function(data, textStatus){
-				var item = jQuery('#media-item-' + fileObj.id);
-
-				if ( type = jQuery('#type-of-' + fileObj.id).val() )
-					jQuery('#' + type + '-counter').text(jQuery('#' + type + '-counter').text()-0+1);
-
-				if ( post_id && item.hasClass('child-of-'+post_id) )
-					jQuery('#attachments-count').text(jQuery('#attachments-count').text()-0+1);
-
-				jQuery('.filename .trashnotice', item).remove();
-				jQuery('.filename .title', item).css('font-weight','normal');
-				jQuery('a.undo', item).addClass('hidden');
-				jQuery('.menu_order_input', item).show();
-				item.css( {backgroundColor:'#ceb'} ).animate( {backgroundColor: '#fff'}, { queue: false, duration: 500, complete: function(){ jQuery(this).css({backgroundColor:''}); } }).removeClass('undo');
-			}
-		});
-		return false;
-	});
-
-	// Open this item if it says to start open (e.g. to display an error)
-	jQuery('#media-item-' + fileObj.id + '.startopen').removeClass('startopen').addClass('open').find('slidetoggle').fadeIn();
-}
-
-// generic error message
-function wpQueueError(message) {
-	jQuery('#media-upload-error').show().html( '<div class="error"><p>' + message + '</p></div>' );
-}
-
-// file-specific error messages
-function wpFileError(fileObj, message) {
-	itemAjaxError(fileObj.id, message);
-}
-
-function itemAjaxError(id, message) {
-	var item = jQuery('#media-item-' + id), filename = item.find('.filename').text(), last_err = item.data('last-err');
-
-	if ( last_err == id ) // prevent firing an error for the same file twice
-		return;
-
-	item.html('<div class="error-div">'
-				+ '<a class="dismiss" href="#">' + pluploadL10n.dismiss + '</a>'
-				+ '<strong>' + pluploadL10n.error_uploading.replace('%s', jQuery.trim(filename)) + '</strong> '
-				+ message
-				+ '</div>').data('last-err', id);
-}
-
-function deleteSuccess(data, textStatus) {
-	if ( data == '-1' )
-		return itemAjaxError(this.id, 'You do not have permission. Has your session expired?');
-
-	if ( data == '0' )
-		return itemAjaxError(this.id, 'Could not be deleted. Has it been deleted already?');
-
-	var id = this.id, item = jQuery('#media-item-' + id);
-
-	// Decrement the counters.
-	if ( type = jQuery('#type-of-' + id).val() )
-		jQuery('#' + type + '-counter').text( jQuery('#' + type + '-counter').text() - 1 );
-
-	if ( post_id && item.hasClass('child-of-'+post_id) )
-		jQuery('#attachments-count').text( jQuery('#attachments-count').text() - 1 );
-
-	if ( jQuery('form.type-form #media-items').children().length == 1 && jQuery('.hidden', '#media-items').length > 0 ) {
-		jQuery('.toggle').toggle();
-		jQuery('.slidetoggle').slideUp(200).siblings().removeClass('hidden');
-	}
-
-	// Vanish it.
-	jQuery('.toggle', item).toggle();
-	jQuery('.slidetoggle', item).slideUp(200).siblings().removeClass('hidden');
-	item.css( {backgroundColor:'#faa'} ).animate( {backgroundColor:'#f4f4f4'}, {queue:false, duration:500} ).addClass('undo');
-
-	jQuery('.filename:empty', item).remove();
-	jQuery('.filename .title', item).css('font-weight','bold');
-	jQuery('.filename', item).append('<span class="trashnotice"> ' + pluploadL10n.deleted + ' </span>').siblings('a.toggle').hide();
-	jQuery('.filename', item).append( jQuery('a.undo', item).removeClass('hidden') );
-	jQuery('.menu_order_input', item).hide();
-
-	return;
-}
-
-function deleteError(X, textStatus, errorThrown) {
-	// TODO
-}
-
-function uploadComplete() {
-	jQuery('#insert-gallery').prop('disabled', false);
-}
-
-function switchUploader(s) {
-	if ( s ) {
-		deleteUserSetting('uploader');
-		jQuery('.media-upload-form').removeClass('html-uploader');
-
-		if ( typeof(uploader) == 'object' )
-			uploader.refresh();
-	} else {
-		setUserSetting('uploader', '1'); // 1 == html uploader
-		jQuery('.media-upload-form').addClass('html-uploader');
-	}
-}
-
-function dndHelper(s) {
-	var d = document.getElementById('dnd-helper');
-
-	if ( s ) {
-		d.style.display = 'block';
-	} else {
-		d.style.display = 'none';
-	}
-}
-
-function uploadError(fileObj, errorCode, message, uploader) {
-	var hundredmb = 100 * 1024 * 1024, max;
-
-	switch (errorCode) {
-		case plupload.FAILED:
-			wpFileError(fileObj, pluploadL10n.upload_failed);
-			break;
-		case plupload.FILE_EXTENSION_ERROR:
-			wpFileError(fileObj, pluploadL10n.invalid_filetype);
-			break;
-		case plupload.FILE_SIZE_ERROR:
-			uploadSizeError(uploader, fileObj);
-			break;
-		case plupload.IMAGE_FORMAT_ERROR:
-			wpFileError(fileObj, pluploadL10n.not_an_image);
-			break;
-		case plupload.IMAGE_MEMORY_ERROR:
-			wpFileError(fileObj, pluploadL10n.image_memory_exceeded);
-			break;
-		case plupload.IMAGE_DIMENSIONS_ERROR:
-			wpFileError(fileObj, pluploadL10n.image_dimensions_exceeded);
-			break;
-		case plupload.GENERIC_ERROR:
-			wpQueueError(pluploadL10n.upload_failed);
-			break;
-		case plupload.IO_ERROR:
-			max = parseInt(uploader.settings.max_file_size, 10);
-
-			if ( max > hundredmb && fileObj.size > hundredmb )
-				wpFileError(fileObj, pluploadL10n.big_upload_failed.replace('%1$s', '<a class="uploader-html" href="#">').replace('%2$s', '</a>'));
-			else
-				wpQueueError(pluploadL10n.io_error);
-			break;
-		case plupload.HTTP_ERROR:
-			wpQueueError(pluploadL10n.http_error);
-			break;
-		case plupload.INIT_ERROR:
-			jQuery('.media-upload-form').addClass('html-uploader');
-			break;
-		case plupload.SECURITY_ERROR:
-			wpQueueError(pluploadL10n.security_error);
-			break;
-/*		case plupload.UPLOAD_ERROR.UPLOAD_STOPPED:
-		case plupload.UPLOAD_ERROR.FILE_CANCELLED:
-			jQuery('#media-item-' + fileObj.id).remove();
-			break;*/
-		default:
-			wpFileError(fileObj, pluploadL10n.default_error);
-	}
-}
-
-function uploadSizeError( up, file, over100mb ) {
-	var message;
-
-	if ( over100mb )
-		message = pluploadL10n.big_upload_queued.replace('%s', file.name) + ' ' + pluploadL10n.big_upload_failed.replace('%1$s', '<a class="uploader-html" href="#">').replace('%2$s', '</a>');
-	else
-		message = pluploadL10n.file_exceeds_size_limit.replace('%s', file.name);
-
-	jQuery('#media-items').append('<div id="media-item-' + file.id + '" class="media-item error"><p>' + message + '</p></div>');
-	up.removeFile(file);
-}
-
-jQuery(document).ready(function($){
-	$('.media-upload-form').bind('click.uploader', function(e) {
-		var target = $(e.target), tr, c;
-
-		if ( target.is('input[type="radio"]') ) { // remember the last used image size and alignment
-			tr = target.closest('tr');
-
-			if ( tr.hasClass('align') )
-				setUserSetting('align', target.val());
-			else if ( tr.hasClass('image-size') )
-				setUserSetting('imgsize', target.val());
-
-		} else if ( target.is('button.button') ) { // remember the last used image link url
-			c = e.target.className || '';
-			c = c.match(/url([^ '"]+)/);
-
-			if ( c && c[1] ) {
-				setUserSetting('urlbutton', c[1]);
-				target.siblings('.urlfield').val( target.data('link-url') );
-			}
-		} else if ( target.is('a.dismiss') ) {
-			target.parents('.media-item').fadeOut(200, function(){
-				$(this).remove();
-			});
-		} else if ( target.is('.upload-flash-bypass a') || target.is('a.uploader-html') ) { // switch uploader to html4
-			$('#media-items, p.submit, span.big-file-warning').css('display', 'none');
-			switchUploader(0);
-			e.preventDefault();
-		} else if ( target.is('.upload-html-bypass a') ) { // switch uploader to multi-file
-			$('#media-items, p.submit, span.big-file-warning').css('display', '');
-			switchUploader(1);
-			e.preventDefault();
-		} else if ( target.is('a.describe-toggle-on') ) { // Show
-			target.parent().addClass('open');
-			target.siblings('.slidetoggle').fadeIn(250, function(){
-				var S = $(window).scrollTop(), H = $(window).height(), top = $(this).offset().top, h = $(this).height(), b, B;
-
-				if ( H && top && h ) {
-					b = top + h;
-					B = S + H;
-
-					if ( b > B ) {
-						if ( b - B < top - S )
-							window.scrollBy(0, (b - B) + 10);
-						else
-							window.scrollBy(0, top - S - 40);
-					}
-				}
-			});
-			e.preventDefault();
-		} else if ( target.is('a.describe-toggle-off') ) { // Hide
-			target.siblings('.slidetoggle').fadeOut(250, function(){
-				target.parent().removeClass('open');
-			});
-			e.preventDefault();
-		}
-	});
-
-	// init and set the uploader
-	uploader_init = function() {
-		uploader = new plupload.Uploader(wpUploaderInit);
-
-		$('#image_resize').bind('change', function() {
-			var arg = $(this).prop('checked');
-
-			setResize( arg );
-
-			if ( arg )
-				setUserSetting('upload_resize', '1');
-			else
-				deleteUserSetting('upload_resize');
-		});
-
-		uploader.bind('Init', function(up) {
-			var uploaddiv = $('#plupload-upload-ui');
-
-			setResize( getUserSetting('upload_resize', false) );
-
-			if ( up.features.dragdrop && ! $(document.body).hasClass('mobile') ) {
-				uploaddiv.addClass('drag-drop');
-				$('#drag-drop-area').bind('dragover.wp-uploader', function(){ // dragenter doesn't fire right :(
-					uploaddiv.addClass('drag-over');
-				}).bind('dragleave.wp-uploader, drop.wp-uploader', function(){
-					uploaddiv.removeClass('drag-over');
-				});
-			} else {
-				uploaddiv.removeClass('drag-drop');
-				$('#drag-drop-area').unbind('.wp-uploader');
-			}
-		});
-
-		uploader.init();
-
-		uploader.bind('FilesAdded', function(up, files) {
-			var hundredmb = 100 * 1024 * 1024, max = parseInt(up.settings.max_file_size, 10);
-
-			$('#media-upload-error').html('');
-			uploadStart();
-
-			plupload.each(files, function(file){
-				if ( max > hundredmb && file.size > hundredmb && up.runtime != 'html5' )
-					uploadSizeError( up, file, true );
-				else
-					fileQueued(file);
-			});
-
-			up.refresh();
-			up.start();
-		});
-
-		uploader.bind('BeforeUpload', function(up, file) {
-			// something
-		});
-
-		uploader.bind('UploadFile', function(up, file) {
-			fileUploading(up, file);
-		});
-
-		uploader.bind('UploadProgress', function(up, file) {
-			uploadProgress(up, file);
-		});
-
-		uploader.bind('Error', function(up, err) {
-			uploadError(err.file, err.code, err.message, up);
-			up.refresh();
-		});
-
-		uploader.bind('FileUploaded', function(up, file, response) {
-			uploadSuccess(file, response.response);
-		});
-
-		uploader.bind('UploadComplete', function(up, files) {
-			uploadComplete();
-		});
-	}
-
-	if ( typeof(wpUploaderInit) == 'object' )
-		uploader_init();
-
-});
--- a/web/wp-includes/js/plupload/handlers.js	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/js/plupload/handlers.js	Wed Dec 19 17:46:52 2012 -0800
@@ -1,1 +1,486 @@
-var topWin=window.dialogArguments||opener||parent||top,uploader,uploader_init;function fileDialogStart(){jQuery("#media-upload-error").empty()}function fileQueued(b){jQuery(".media-blank").remove();var a=jQuery("#media-items").children(),c=post_id||0;if(a.length==1){a.removeClass("open").find(".slidetoggle").slideUp(200)}jQuery("#media-items").append('<div id="media-item-'+b.id+'" class="media-item child-of-'+c+'"><div class="progress"><div class="percent">0%</div><div class="bar"></div></div><div class="filename original"> '+b.name+"</div></div>");jQuery("#insert-gallery").prop("disabled",true)}function uploadStart(){try{if(typeof topWin.tb_remove!="undefined"){topWin.jQuery("#TB_overlay").unbind("click",topWin.tb_remove)}}catch(a){}return true}function uploadProgress(a,b){var c=jQuery("#media-item-"+b.id);jQuery(".bar",c).width((200*b.loaded)/b.size);jQuery(".percent",c).html(b.percent+"%")}function fileUploading(c,d){var b=100*1024*1024,a=parseInt(c.settings.max_file_size,10);if(a>b&&d.size>b){setTimeout(function(){var e;if(d.status<3&&d.loaded==0){wpFileError(d,pluploadL10n.big_upload_failed.replace("%1$s",'<a class="uploader-html" href="#">').replace("%2$s","</a>"));c.stop();c.removeFile(d);c.start()}},10000)}}function updateMediaForm(){var a=jQuery("#media-items").children();if(a.length==1){a.addClass("open").find(".slidetoggle").show();jQuery(".insert-gallery").hide()}else{if(a.length>1){a.removeClass("open");jQuery(".insert-gallery").show()}}if(a.not(".media-blank").length>0){jQuery(".savebutton").show()}else{jQuery(".savebutton").hide()}}function uploadSuccess(c,a){var b=jQuery("#media-item-"+c.id);a=a.replace(/^<pre>(\d+)<\/pre>$/,"$1");if(a.match(/media-upload-error|error-div/)){b.html(a);return}else{jQuery(".percent",b).html(pluploadL10n.crunching)}prepareMediaItem(c,a);updateMediaForm();if(post_id&&b.hasClass("child-of-"+post_id)){jQuery("#attachments-count").text(1*jQuery("#attachments-count").text()+1)}}function setResize(a){if(a){if(uploader.features.jpgresize){uploader.settings.resize={width:resize_width,height:resize_height,quality:100}}else{uploader.settings.multipart_params.image_resize=true}}else{delete (uploader.settings.resize);delete (uploader.settings.multipart_params.image_resize)}}function prepareMediaItem(c,a){var d=(typeof shortform=="undefined")?1:2,b=jQuery("#media-item-"+c.id);try{if(typeof topWin.tb_remove!="undefined"){topWin.jQuery("#TB_overlay").click(topWin.tb_remove)}}catch(g){}if(isNaN(a)||!a){b.append(a);prepareMediaItemInit(c)}else{b.load("async-upload.php",{attachment_id:a,fetch:d},function(){prepareMediaItemInit(c);updateMediaForm()})}}function prepareMediaItemInit(b){var a=jQuery("#media-item-"+b.id);jQuery(".thumbnail",a).clone().attr("class","pinkynail toggle").prependTo(a);jQuery(".filename.original",a).replaceWith(jQuery(".filename.new",a));jQuery("a.delete",a).click(function(){jQuery.ajax({url:ajaxurl,type:"post",success:deleteSuccess,error:deleteError,id:b.id,data:{id:this.id.replace(/[^0-9]/g,""),action:"trash-post",_ajax_nonce:this.href.replace(/^.*wpnonce=/,"")}});return false});jQuery("a.undo",a).click(function(){jQuery.ajax({url:ajaxurl,type:"post",id:b.id,data:{id:this.id.replace(/[^0-9]/g,""),action:"untrash-post",_ajax_nonce:this.href.replace(/^.*wpnonce=/,"")},success:function(d,e){var c=jQuery("#media-item-"+b.id);if(type=jQuery("#type-of-"+b.id).val()){jQuery("#"+type+"-counter").text(jQuery("#"+type+"-counter").text()-0+1)}if(post_id&&c.hasClass("child-of-"+post_id)){jQuery("#attachments-count").text(jQuery("#attachments-count").text()-0+1)}jQuery(".filename .trashnotice",c).remove();jQuery(".filename .title",c).css("font-weight","normal");jQuery("a.undo",c).addClass("hidden");jQuery(".menu_order_input",c).show();c.css({backgroundColor:"#ceb"}).animate({backgroundColor:"#fff"},{queue:false,duration:500,complete:function(){jQuery(this).css({backgroundColor:""})}}).removeClass("undo")}});return false});jQuery("#media-item-"+b.id+".startopen").removeClass("startopen").addClass("open").find("slidetoggle").fadeIn()}function wpQueueError(a){jQuery("#media-upload-error").show().html('<div class="error"><p>'+a+"</p></div>")}function wpFileError(b,a){itemAjaxError(b.id,a)}function itemAjaxError(e,c){var b=jQuery("#media-item-"+e),a=b.find(".filename").text(),d=b.data("last-err");if(d==e){return}b.html('<div class="error-div"><a class="dismiss" href="#">'+pluploadL10n.dismiss+"</a><strong>"+pluploadL10n.error_uploading.replace("%s",jQuery.trim(a))+"</strong> "+c+"</div>").data("last-err",e)}function deleteSuccess(b,d){if(b=="-1"){return itemAjaxError(this.id,"You do not have permission. Has your session expired?")}if(b=="0"){return itemAjaxError(this.id,"Could not be deleted. Has it been deleted already?")}var c=this.id,a=jQuery("#media-item-"+c);if(type=jQuery("#type-of-"+c).val()){jQuery("#"+type+"-counter").text(jQuery("#"+type+"-counter").text()-1)}if(post_id&&a.hasClass("child-of-"+post_id)){jQuery("#attachments-count").text(jQuery("#attachments-count").text()-1)}if(jQuery("form.type-form #media-items").children().length==1&&jQuery(".hidden","#media-items").length>0){jQuery(".toggle").toggle();jQuery(".slidetoggle").slideUp(200).siblings().removeClass("hidden")}jQuery(".toggle",a).toggle();jQuery(".slidetoggle",a).slideUp(200).siblings().removeClass("hidden");a.css({backgroundColor:"#faa"}).animate({backgroundColor:"#f4f4f4"},{queue:false,duration:500}).addClass("undo");jQuery(".filename:empty",a).remove();jQuery(".filename .title",a).css("font-weight","bold");jQuery(".filename",a).append('<span class="trashnotice"> '+pluploadL10n.deleted+" </span>").siblings("a.toggle").hide();jQuery(".filename",a).append(jQuery("a.undo",a).removeClass("hidden"));jQuery(".menu_order_input",a).hide();return}function deleteError(c,b,a){}function uploadComplete(){jQuery("#insert-gallery").prop("disabled",false)}function switchUploader(a){if(a){deleteUserSetting("uploader");jQuery(".media-upload-form").removeClass("html-uploader");if(typeof(uploader)=="object"){uploader.refresh()}}else{setUserSetting("uploader","1");jQuery(".media-upload-form").addClass("html-uploader")}}function dndHelper(a){var b=document.getElementById("dnd-helper");if(a){b.style.display="block"}else{b.style.display="none"}}function uploadError(d,f,c,e){var b=100*1024*1024,a;switch(f){case plupload.FAILED:wpFileError(d,pluploadL10n.upload_failed);break;case plupload.FILE_EXTENSION_ERROR:wpFileError(d,pluploadL10n.invalid_filetype);break;case plupload.FILE_SIZE_ERROR:uploadSizeError(e,d);break;case plupload.IMAGE_FORMAT_ERROR:wpFileError(d,pluploadL10n.not_an_image);break;case plupload.IMAGE_MEMORY_ERROR:wpFileError(d,pluploadL10n.image_memory_exceeded);break;case plupload.IMAGE_DIMENSIONS_ERROR:wpFileError(d,pluploadL10n.image_dimensions_exceeded);break;case plupload.GENERIC_ERROR:wpQueueError(pluploadL10n.upload_failed);break;case plupload.IO_ERROR:a=parseInt(e.settings.max_file_size,10);if(a>b&&d.size>b){wpFileError(d,pluploadL10n.big_upload_failed.replace("%1$s",'<a class="uploader-html" href="#">').replace("%2$s","</a>"))}else{wpQueueError(pluploadL10n.io_error)}break;case plupload.HTTP_ERROR:wpQueueError(pluploadL10n.http_error);break;case plupload.INIT_ERROR:jQuery(".media-upload-form").addClass("html-uploader");break;case plupload.SECURITY_ERROR:wpQueueError(pluploadL10n.security_error);break;default:wpFileError(d,pluploadL10n.default_error)}}function uploadSizeError(a,b,d){var c;if(d){c=pluploadL10n.big_upload_queued.replace("%s",b.name)+" "+pluploadL10n.big_upload_failed.replace("%1$s",'<a class="uploader-html" href="#">').replace("%2$s","</a>")}else{c=pluploadL10n.file_exceeds_size_limit.replace("%s",b.name)}jQuery("#media-items").append('<div id="media-item-'+b.id+'" class="media-item error"><p>'+c+"</p></div>");a.removeFile(b)}jQuery(document).ready(function(a){a(".media-upload-form").bind("click.uploader",function(f){var d=a(f.target),b,g;if(d.is('input[type="radio"]')){b=d.closest("tr");if(b.hasClass("align")){setUserSetting("align",d.val())}else{if(b.hasClass("image-size")){setUserSetting("imgsize",d.val())}}}else{if(d.is("button.button")){g=f.target.className||"";g=g.match(/url([^ '"]+)/);if(g&&g[1]){setUserSetting("urlbutton",g[1]);d.siblings(".urlfield").val(d.data("link-url"))}}else{if(d.is("a.dismiss")){d.parents(".media-item").fadeOut(200,function(){a(this).remove()})}else{if(d.is(".upload-flash-bypass a")||d.is("a.uploader-html")){a("#media-items, p.submit, span.big-file-warning").css("display","none");switchUploader(0);f.preventDefault()}else{if(d.is(".upload-html-bypass a")){a("#media-items, p.submit, span.big-file-warning").css("display","");switchUploader(1);f.preventDefault()}else{if(d.is("a.describe-toggle-on")){d.parent().addClass("open");d.siblings(".slidetoggle").fadeIn(250,function(){var i=a(window).scrollTop(),e=a(window).height(),k=a(this).offset().top,j=a(this).height(),c,l;if(e&&k&&j){c=k+j;l=i+e;if(c>l){if(c-l<k-i){window.scrollBy(0,(c-l)+10)}else{window.scrollBy(0,k-i-40)}}}});f.preventDefault()}else{if(d.is("a.describe-toggle-off")){d.siblings(".slidetoggle").fadeOut(250,function(){d.parent().removeClass("open")});f.preventDefault()}}}}}}}});uploader_init=function(){uploader=new plupload.Uploader(wpUploaderInit);a("#image_resize").bind("change",function(){var b=a(this).prop("checked");setResize(b);if(b){setUserSetting("upload_resize","1")}else{deleteUserSetting("upload_resize")}});uploader.bind("Init",function(b){var c=a("#plupload-upload-ui");setResize(getUserSetting("upload_resize",false));if(b.features.dragdrop&&!a(document.body).hasClass("mobile")){c.addClass("drag-drop");a("#drag-drop-area").bind("dragover.wp-uploader",function(){c.addClass("drag-over")}).bind("dragleave.wp-uploader, drop.wp-uploader",function(){c.removeClass("drag-over")})}else{c.removeClass("drag-drop");a("#drag-drop-area").unbind(".wp-uploader")}});uploader.init();uploader.bind("FilesAdded",function(d,e){var c=100*1024*1024,b=parseInt(d.settings.max_file_size,10);a("#media-upload-error").html("");uploadStart();plupload.each(e,function(f){if(b>c&&f.size>c&&d.runtime!="html5"){uploadSizeError(d,f,true)}else{fileQueued(f)}});d.refresh();d.start()});uploader.bind("BeforeUpload",function(b,c){});uploader.bind("UploadFile",function(b,c){fileUploading(b,c)});uploader.bind("UploadProgress",function(b,c){uploadProgress(b,c)});uploader.bind("Error",function(b,c){uploadError(c.file,c.code,c.message,b);b.refresh()});uploader.bind("FileUploaded",function(b,d,c){uploadSuccess(d,c.response)});uploader.bind("UploadComplete",function(b,c){uploadComplete()})};if(typeof(wpUploaderInit)=="object"){uploader_init()}});
\ No newline at end of file
+var topWin = window.dialogArguments || opener || parent || top, uploader, uploader_init;
+
+function fileDialogStart() {
+	jQuery("#media-upload-error").empty();
+}
+
+// progress and success handlers for media multi uploads
+function fileQueued(fileObj) {
+	// Get rid of unused form
+	jQuery('.media-blank').remove();
+
+	var items = jQuery('#media-items').children(), postid = post_id || 0;
+
+	// Collapse a single item
+	if ( items.length == 1 ) {
+		items.removeClass('open').find('.slidetoggle').slideUp(200);
+	}
+	// Create a progress bar containing the filename
+	jQuery('#media-items').append('<div id="media-item-' + fileObj.id + '" class="media-item child-of-' + postid + '"><div class="progress"><div class="percent">0%</div><div class="bar"></div></div><div class="filename original"> ' + fileObj.name + '</div></div>');
+
+	// Disable submit
+	jQuery('#insert-gallery').prop('disabled', true);
+}
+
+function uploadStart() {
+	try {
+		if ( typeof topWin.tb_remove != 'undefined' )
+			topWin.jQuery('#TB_overlay').unbind('click', topWin.tb_remove);
+	} catch(e){}
+
+	return true;
+}
+
+function uploadProgress(up, file) {
+	var item = jQuery('#media-item-' + file.id);
+
+	jQuery('.bar', item).width( (200 * file.loaded) / file.size );
+	jQuery('.percent', item).html( file.percent + '%' );
+}
+
+// check to see if a large file failed to upload
+function fileUploading(up, file) {
+	var hundredmb = 100 * 1024 * 1024, max = parseInt(up.settings.max_file_size, 10);
+
+	if ( max > hundredmb && file.size > hundredmb ) {
+		setTimeout(function(){
+			var done;
+
+			if ( file.status < 3 && file.loaded == 0 ) { // not uploading
+				wpFileError(file, pluploadL10n.big_upload_failed.replace('%1$s', '<a class="uploader-html" href="#">').replace('%2$s', '</a>'));
+				up.stop(); // stops the whole queue
+				up.removeFile(file);
+				up.start(); // restart the queue
+			}
+		}, 10000); // wait for 10 sec. for the file to start uploading
+	}
+}
+
+function updateMediaForm() {
+	var items = jQuery('#media-items').children();
+
+	// Just one file, no need for collapsible part
+	if ( items.length == 1 ) {
+		items.addClass('open').find('.slidetoggle').show();
+		jQuery('.insert-gallery').hide();
+	} else if ( items.length > 1 ) {
+		items.removeClass('open');
+		// Only show Gallery button when there are at least two files.
+		jQuery('.insert-gallery').show();
+	}
+
+	// Only show Save buttons when there is at least one file.
+	if ( items.not('.media-blank').length > 0 )
+		jQuery('.savebutton').show();
+	else
+		jQuery('.savebutton').hide();
+}
+
+function uploadSuccess(fileObj, serverData) {
+	var item = jQuery('#media-item-' + fileObj.id);
+
+	// on success serverData should be numeric, fix bug in html4 runtime returning the serverData wrapped in a <pre> tag
+	serverData = serverData.replace(/^<pre>(\d+)<\/pre>$/, '$1');
+
+	// if async-upload returned an error message, place it in the media item div and return
+	if ( serverData.match(/media-upload-error|error-div/) ) {
+		item.html(serverData);
+		return;
+	} else {
+		jQuery('.percent', item).html( pluploadL10n.crunching );
+	}
+
+	prepareMediaItem(fileObj, serverData);
+	updateMediaForm();
+
+	// Increment the counter.
+	if ( post_id && item.hasClass('child-of-' + post_id) )
+		jQuery('#attachments-count').text(1 * jQuery('#attachments-count').text() + 1);
+}
+
+function setResize(arg) {
+	if ( arg ) {
+		if ( uploader.features.jpgresize )
+			uploader.settings['resize'] = { width: resize_width, height: resize_height, quality: 100 };
+		else
+			uploader.settings.multipart_params.image_resize = true;
+	} else {
+		delete(uploader.settings.resize);
+		delete(uploader.settings.multipart_params.image_resize);
+	}
+}
+
+function prepareMediaItem(fileObj, serverData) {
+	var f = ( typeof shortform == 'undefined' ) ? 1 : 2, item = jQuery('#media-item-' + fileObj.id);
+	if ( f == 2 && shortform > 2 )
+		f = shortform;
+
+	try {
+		if ( typeof topWin.tb_remove != 'undefined' )
+			topWin.jQuery('#TB_overlay').click(topWin.tb_remove);
+	} catch(e){}
+
+	if ( isNaN(serverData) || !serverData ) { // Old style: Append the HTML returned by the server -- thumbnail and form inputs
+		item.append(serverData);
+		prepareMediaItemInit(fileObj);
+	} else { // New style: server data is just the attachment ID, fetch the thumbnail and form html from the server
+		item.load('async-upload.php', {attachment_id:serverData, fetch:f}, function(){prepareMediaItemInit(fileObj);updateMediaForm()});
+	}
+}
+
+function prepareMediaItemInit(fileObj) {
+	var item = jQuery('#media-item-' + fileObj.id);
+	// Clone the thumbnail as a "pinkynail" -- a tiny image to the left of the filename
+	jQuery('.thumbnail', item).clone().attr('class', 'pinkynail toggle').prependTo(item);
+
+	// Replace the original filename with the new (unique) one assigned during upload
+	jQuery('.filename.original', item).replaceWith( jQuery('.filename.new', item) );
+
+	// Bind AJAX to the new Delete button
+	jQuery('a.delete', item).click(function(){
+		// Tell the server to delete it. TODO: handle exceptions
+		jQuery.ajax({
+			url: ajaxurl,
+			type: 'post',
+			success: deleteSuccess,
+			error: deleteError,
+			id: fileObj.id,
+			data: {
+				id : this.id.replace(/[^0-9]/g, ''),
+				action : 'trash-post',
+				_ajax_nonce : this.href.replace(/^.*wpnonce=/,'')
+			}
+		});
+		return false;
+	});
+
+	// Bind AJAX to the new Undo button
+	jQuery('a.undo', item).click(function(){
+		// Tell the server to untrash it. TODO: handle exceptions
+		jQuery.ajax({
+			url: ajaxurl,
+			type: 'post',
+			id: fileObj.id,
+			data: {
+				id : this.id.replace(/[^0-9]/g,''),
+				action: 'untrash-post',
+				_ajax_nonce: this.href.replace(/^.*wpnonce=/,'')
+			},
+			success: function(data, textStatus){
+				var item = jQuery('#media-item-' + fileObj.id);
+
+				if ( type = jQuery('#type-of-' + fileObj.id).val() )
+					jQuery('#' + type + '-counter').text(jQuery('#' + type + '-counter').text()-0+1);
+
+				if ( post_id && item.hasClass('child-of-'+post_id) )
+					jQuery('#attachments-count').text(jQuery('#attachments-count').text()-0+1);
+
+				jQuery('.filename .trashnotice', item).remove();
+				jQuery('.filename .title', item).css('font-weight','normal');
+				jQuery('a.undo', item).addClass('hidden');
+				jQuery('.menu_order_input', item).show();
+				item.css( {backgroundColor:'#ceb'} ).animate( {backgroundColor: '#fff'}, { queue: false, duration: 500, complete: function(){ jQuery(this).css({backgroundColor:''}); } }).removeClass('undo');
+			}
+		});
+		return false;
+	});
+
+	// Open this item if it says to start open (e.g. to display an error)
+	jQuery('#media-item-' + fileObj.id + '.startopen').removeClass('startopen').addClass('open').find('slidetoggle').fadeIn();
+}
+
+// generic error message
+function wpQueueError(message) {
+	jQuery('#media-upload-error').show().html( '<div class="error"><p>' + message + '</p></div>' );
+}
+
+// file-specific error messages
+function wpFileError(fileObj, message) {
+	itemAjaxError(fileObj.id, message);
+}
+
+function itemAjaxError(id, message) {
+	var item = jQuery('#media-item-' + id), filename = item.find('.filename').text(), last_err = item.data('last-err');
+
+	if ( last_err == id ) // prevent firing an error for the same file twice
+		return;
+
+	item.html('<div class="error-div">'
+				+ '<a class="dismiss" href="#">' + pluploadL10n.dismiss + '</a>'
+				+ '<strong>' + pluploadL10n.error_uploading.replace('%s', jQuery.trim(filename)) + '</strong> '
+				+ message
+				+ '</div>').data('last-err', id);
+}
+
+function deleteSuccess(data, textStatus) {
+	if ( data == '-1' )
+		return itemAjaxError(this.id, 'You do not have permission. Has your session expired?');
+
+	if ( data == '0' )
+		return itemAjaxError(this.id, 'Could not be deleted. Has it been deleted already?');
+
+	var id = this.id, item = jQuery('#media-item-' + id);
+
+	// Decrement the counters.
+	if ( type = jQuery('#type-of-' + id).val() )
+		jQuery('#' + type + '-counter').text( jQuery('#' + type + '-counter').text() - 1 );
+
+	if ( post_id && item.hasClass('child-of-'+post_id) )
+		jQuery('#attachments-count').text( jQuery('#attachments-count').text() - 1 );
+
+	if ( jQuery('form.type-form #media-items').children().length == 1 && jQuery('.hidden', '#media-items').length > 0 ) {
+		jQuery('.toggle').toggle();
+		jQuery('.slidetoggle').slideUp(200).siblings().removeClass('hidden');
+	}
+
+	// Vanish it.
+	jQuery('.toggle', item).toggle();
+	jQuery('.slidetoggle', item).slideUp(200).siblings().removeClass('hidden');
+	item.css( {backgroundColor:'#faa'} ).animate( {backgroundColor:'#f4f4f4'}, {queue:false, duration:500} ).addClass('undo');
+
+	jQuery('.filename:empty', item).remove();
+	jQuery('.filename .title', item).css('font-weight','bold');
+	jQuery('.filename', item).append('<span class="trashnotice"> ' + pluploadL10n.deleted + ' </span>').siblings('a.toggle').hide();
+	jQuery('.filename', item).append( jQuery('a.undo', item).removeClass('hidden') );
+	jQuery('.menu_order_input', item).hide();
+
+	return;
+}
+
+function deleteError(X, textStatus, errorThrown) {
+	// TODO
+}
+
+function uploadComplete() {
+	jQuery('#insert-gallery').prop('disabled', false);
+}
+
+function switchUploader(s) {
+	if ( s ) {
+		deleteUserSetting('uploader');
+		jQuery('.media-upload-form').removeClass('html-uploader');
+
+		if ( typeof(uploader) == 'object' )
+			uploader.refresh();
+	} else {
+		setUserSetting('uploader', '1'); // 1 == html uploader
+		jQuery('.media-upload-form').addClass('html-uploader');
+	}
+}
+
+function dndHelper(s) {
+	var d = document.getElementById('dnd-helper');
+
+	if ( s ) {
+		d.style.display = 'block';
+	} else {
+		d.style.display = 'none';
+	}
+}
+
+function uploadError(fileObj, errorCode, message, uploader) {
+	var hundredmb = 100 * 1024 * 1024, max;
+
+	switch (errorCode) {
+		case plupload.FAILED:
+			wpFileError(fileObj, pluploadL10n.upload_failed);
+			break;
+		case plupload.FILE_EXTENSION_ERROR:
+			wpFileError(fileObj, pluploadL10n.invalid_filetype);
+			break;
+		case plupload.FILE_SIZE_ERROR:
+			uploadSizeError(uploader, fileObj);
+			break;
+		case plupload.IMAGE_FORMAT_ERROR:
+			wpFileError(fileObj, pluploadL10n.not_an_image);
+			break;
+		case plupload.IMAGE_MEMORY_ERROR:
+			wpFileError(fileObj, pluploadL10n.image_memory_exceeded);
+			break;
+		case plupload.IMAGE_DIMENSIONS_ERROR:
+			wpFileError(fileObj, pluploadL10n.image_dimensions_exceeded);
+			break;
+		case plupload.GENERIC_ERROR:
+			wpQueueError(pluploadL10n.upload_failed);
+			break;
+		case plupload.IO_ERROR:
+			max = parseInt(uploader.settings.max_file_size, 10);
+
+			if ( max > hundredmb && fileObj.size > hundredmb )
+				wpFileError(fileObj, pluploadL10n.big_upload_failed.replace('%1$s', '<a class="uploader-html" href="#">').replace('%2$s', '</a>'));
+			else
+				wpQueueError(pluploadL10n.io_error);
+			break;
+		case plupload.HTTP_ERROR:
+			wpQueueError(pluploadL10n.http_error);
+			break;
+		case plupload.INIT_ERROR:
+			jQuery('.media-upload-form').addClass('html-uploader');
+			break;
+		case plupload.SECURITY_ERROR:
+			wpQueueError(pluploadL10n.security_error);
+			break;
+/*		case plupload.UPLOAD_ERROR.UPLOAD_STOPPED:
+		case plupload.UPLOAD_ERROR.FILE_CANCELLED:
+			jQuery('#media-item-' + fileObj.id).remove();
+			break;*/
+		default:
+			wpFileError(fileObj, pluploadL10n.default_error);
+	}
+}
+
+function uploadSizeError( up, file, over100mb ) {
+	var message;
+
+	if ( over100mb )
+		message = pluploadL10n.big_upload_queued.replace('%s', file.name) + ' ' + pluploadL10n.big_upload_failed.replace('%1$s', '<a class="uploader-html" href="#">').replace('%2$s', '</a>');
+	else
+		message = pluploadL10n.file_exceeds_size_limit.replace('%s', file.name);
+
+	jQuery('#media-items').append('<div id="media-item-' + file.id + '" class="media-item error"><p>' + message + '</p></div>');
+	up.removeFile(file);
+}
+
+jQuery(document).ready(function($){
+	$('.media-upload-form').bind('click.uploader', function(e) {
+		var target = $(e.target), tr, c;
+
+		if ( target.is('input[type="radio"]') ) { // remember the last used image size and alignment
+			tr = target.closest('tr');
+
+			if ( tr.hasClass('align') )
+				setUserSetting('align', target.val());
+			else if ( tr.hasClass('image-size') )
+				setUserSetting('imgsize', target.val());
+
+		} else if ( target.is('button.button') ) { // remember the last used image link url
+			c = e.target.className || '';
+			c = c.match(/url([^ '"]+)/);
+
+			if ( c && c[1] ) {
+				setUserSetting('urlbutton', c[1]);
+				target.siblings('.urlfield').val( target.data('link-url') );
+			}
+		} else if ( target.is('a.dismiss') ) {
+			target.parents('.media-item').fadeOut(200, function(){
+				$(this).remove();
+			});
+		} else if ( target.is('.upload-flash-bypass a') || target.is('a.uploader-html') ) { // switch uploader to html4
+			$('#media-items, p.submit, span.big-file-warning').css('display', 'none');
+			switchUploader(0);
+			e.preventDefault();
+		} else if ( target.is('.upload-html-bypass a') ) { // switch uploader to multi-file
+			$('#media-items, p.submit, span.big-file-warning').css('display', '');
+			switchUploader(1);
+			e.preventDefault();
+		} else if ( target.is('a.describe-toggle-on') ) { // Show
+			target.parent().addClass('open');
+			target.siblings('.slidetoggle').fadeIn(250, function(){
+				var S = $(window).scrollTop(), H = $(window).height(), top = $(this).offset().top, h = $(this).height(), b, B;
+
+				if ( H && top && h ) {
+					b = top + h;
+					B = S + H;
+
+					if ( b > B ) {
+						if ( b - B < top - S )
+							window.scrollBy(0, (b - B) + 10);
+						else
+							window.scrollBy(0, top - S - 40);
+					}
+				}
+			});
+			e.preventDefault();
+		} else if ( target.is('a.describe-toggle-off') ) { // Hide
+			target.siblings('.slidetoggle').fadeOut(250, function(){
+				target.parent().removeClass('open');
+			});
+			e.preventDefault();
+		}
+	});
+
+	// init and set the uploader
+	uploader_init = function() {
+		uploader = new plupload.Uploader(wpUploaderInit);
+
+		$('#image_resize').bind('change', function() {
+			var arg = $(this).prop('checked');
+
+			setResize( arg );
+
+			if ( arg )
+				setUserSetting('upload_resize', '1');
+			else
+				deleteUserSetting('upload_resize');
+		});
+
+		uploader.bind('Init', function(up) {
+			var uploaddiv = $('#plupload-upload-ui');
+
+			setResize( getUserSetting('upload_resize', false) );
+
+			if ( up.features.dragdrop && ! $(document.body).hasClass('mobile') ) {
+				uploaddiv.addClass('drag-drop');
+				$('#drag-drop-area').bind('dragover.wp-uploader', function(){ // dragenter doesn't fire right :(
+					uploaddiv.addClass('drag-over');
+				}).bind('dragleave.wp-uploader, drop.wp-uploader', function(){
+					uploaddiv.removeClass('drag-over');
+				});
+			} else {
+				uploaddiv.removeClass('drag-drop');
+				$('#drag-drop-area').unbind('.wp-uploader');
+			}
+
+			if ( up.runtime == 'html4' )
+				$('.upload-flash-bypass').hide();
+		});
+
+		uploader.init();
+
+		uploader.bind('FilesAdded', function(up, files) {
+			var hundredmb = 100 * 1024 * 1024, max = parseInt(up.settings.max_file_size, 10);
+
+			$('#media-upload-error').html('');
+			uploadStart();
+
+			plupload.each(files, function(file){
+				if ( max > hundredmb && file.size > hundredmb && up.runtime != 'html5' )
+					uploadSizeError( up, file, true );
+				else
+					fileQueued(file);
+			});
+
+			up.refresh();
+			up.start();
+		});
+
+		uploader.bind('BeforeUpload', function(up, file) {
+			// something
+		});
+
+		uploader.bind('UploadFile', function(up, file) {
+			fileUploading(up, file);
+		});
+
+		uploader.bind('UploadProgress', function(up, file) {
+			uploadProgress(up, file);
+		});
+
+		uploader.bind('Error', function(up, err) {
+			uploadError(err.file, err.code, err.message, up);
+			up.refresh();
+		});
+
+		uploader.bind('FileUploaded', function(up, file, response) {
+			uploadSuccess(file, response.response);
+		});
+
+		uploader.bind('UploadComplete', function(up, files) {
+			uploadComplete();
+		});
+	}
+
+	if ( typeof(wpUploaderInit) == 'object' )
+		uploader_init();
+
+});
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-includes/js/plupload/handlers.min.js	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,1 @@
+var topWin=window.dialogArguments||opener||parent||top,uploader,uploader_init;function fileDialogStart(){jQuery("#media-upload-error").empty()}function fileQueued(b){jQuery(".media-blank").remove();var a=jQuery("#media-items").children(),c=post_id||0;if(a.length==1){a.removeClass("open").find(".slidetoggle").slideUp(200)}jQuery("#media-items").append('<div id="media-item-'+b.id+'" class="media-item child-of-'+c+'"><div class="progress"><div class="percent">0%</div><div class="bar"></div></div><div class="filename original"> '+b.name+"</div></div>");jQuery("#insert-gallery").prop("disabled",true)}function uploadStart(){try{if(typeof topWin.tb_remove!="undefined"){topWin.jQuery("#TB_overlay").unbind("click",topWin.tb_remove)}}catch(a){}return true}function uploadProgress(a,b){var c=jQuery("#media-item-"+b.id);jQuery(".bar",c).width((200*b.loaded)/b.size);jQuery(".percent",c).html(b.percent+"%")}function fileUploading(c,d){var b=100*1024*1024,a=parseInt(c.settings.max_file_size,10);if(a>b&&d.size>b){setTimeout(function(){var e;if(d.status<3&&d.loaded==0){wpFileError(d,pluploadL10n.big_upload_failed.replace("%1$s",'<a class="uploader-html" href="#">').replace("%2$s","</a>"));c.stop();c.removeFile(d);c.start()}},10000)}}function updateMediaForm(){var a=jQuery("#media-items").children();if(a.length==1){a.addClass("open").find(".slidetoggle").show();jQuery(".insert-gallery").hide()}else{if(a.length>1){a.removeClass("open");jQuery(".insert-gallery").show()}}if(a.not(".media-blank").length>0){jQuery(".savebutton").show()}else{jQuery(".savebutton").hide()}}function uploadSuccess(c,a){var b=jQuery("#media-item-"+c.id);a=a.replace(/^<pre>(\d+)<\/pre>$/,"$1");if(a.match(/media-upload-error|error-div/)){b.html(a);return}else{jQuery(".percent",b).html(pluploadL10n.crunching)}prepareMediaItem(c,a);updateMediaForm();if(post_id&&b.hasClass("child-of-"+post_id)){jQuery("#attachments-count").text(1*jQuery("#attachments-count").text()+1)}}function setResize(a){if(a){if(uploader.features.jpgresize){uploader.settings.resize={width:resize_width,height:resize_height,quality:100}}else{uploader.settings.multipart_params.image_resize=true}}else{delete (uploader.settings.resize);delete (uploader.settings.multipart_params.image_resize)}}function prepareMediaItem(c,a){var d=(typeof shortform=="undefined")?1:2,b=jQuery("#media-item-"+c.id);if(d==2&&shortform>2){d=shortform}try{if(typeof topWin.tb_remove!="undefined"){topWin.jQuery("#TB_overlay").click(topWin.tb_remove)}}catch(g){}if(isNaN(a)||!a){b.append(a);prepareMediaItemInit(c)}else{b.load("async-upload.php",{attachment_id:a,fetch:d},function(){prepareMediaItemInit(c);updateMediaForm()})}}function prepareMediaItemInit(b){var a=jQuery("#media-item-"+b.id);jQuery(".thumbnail",a).clone().attr("class","pinkynail toggle").prependTo(a);jQuery(".filename.original",a).replaceWith(jQuery(".filename.new",a));jQuery("a.delete",a).click(function(){jQuery.ajax({url:ajaxurl,type:"post",success:deleteSuccess,error:deleteError,id:b.id,data:{id:this.id.replace(/[^0-9]/g,""),action:"trash-post",_ajax_nonce:this.href.replace(/^.*wpnonce=/,"")}});return false});jQuery("a.undo",a).click(function(){jQuery.ajax({url:ajaxurl,type:"post",id:b.id,data:{id:this.id.replace(/[^0-9]/g,""),action:"untrash-post",_ajax_nonce:this.href.replace(/^.*wpnonce=/,"")},success:function(d,e){var c=jQuery("#media-item-"+b.id);if(type=jQuery("#type-of-"+b.id).val()){jQuery("#"+type+"-counter").text(jQuery("#"+type+"-counter").text()-0+1)}if(post_id&&c.hasClass("child-of-"+post_id)){jQuery("#attachments-count").text(jQuery("#attachments-count").text()-0+1)}jQuery(".filename .trashnotice",c).remove();jQuery(".filename .title",c).css("font-weight","normal");jQuery("a.undo",c).addClass("hidden");jQuery(".menu_order_input",c).show();c.css({backgroundColor:"#ceb"}).animate({backgroundColor:"#fff"},{queue:false,duration:500,complete:function(){jQuery(this).css({backgroundColor:""})}}).removeClass("undo")}});return false});jQuery("#media-item-"+b.id+".startopen").removeClass("startopen").addClass("open").find("slidetoggle").fadeIn()}function wpQueueError(a){jQuery("#media-upload-error").show().html('<div class="error"><p>'+a+"</p></div>")}function wpFileError(b,a){itemAjaxError(b.id,a)}function itemAjaxError(e,c){var b=jQuery("#media-item-"+e),a=b.find(".filename").text(),d=b.data("last-err");if(d==e){return}b.html('<div class="error-div"><a class="dismiss" href="#">'+pluploadL10n.dismiss+"</a><strong>"+pluploadL10n.error_uploading.replace("%s",jQuery.trim(a))+"</strong> "+c+"</div>").data("last-err",e)}function deleteSuccess(b,d){if(b=="-1"){return itemAjaxError(this.id,"You do not have permission. Has your session expired?")}if(b=="0"){return itemAjaxError(this.id,"Could not be deleted. Has it been deleted already?")}var c=this.id,a=jQuery("#media-item-"+c);if(type=jQuery("#type-of-"+c).val()){jQuery("#"+type+"-counter").text(jQuery("#"+type+"-counter").text()-1)}if(post_id&&a.hasClass("child-of-"+post_id)){jQuery("#attachments-count").text(jQuery("#attachments-count").text()-1)}if(jQuery("form.type-form #media-items").children().length==1&&jQuery(".hidden","#media-items").length>0){jQuery(".toggle").toggle();jQuery(".slidetoggle").slideUp(200).siblings().removeClass("hidden")}jQuery(".toggle",a).toggle();jQuery(".slidetoggle",a).slideUp(200).siblings().removeClass("hidden");a.css({backgroundColor:"#faa"}).animate({backgroundColor:"#f4f4f4"},{queue:false,duration:500}).addClass("undo");jQuery(".filename:empty",a).remove();jQuery(".filename .title",a).css("font-weight","bold");jQuery(".filename",a).append('<span class="trashnotice"> '+pluploadL10n.deleted+" </span>").siblings("a.toggle").hide();jQuery(".filename",a).append(jQuery("a.undo",a).removeClass("hidden"));jQuery(".menu_order_input",a).hide();return}function deleteError(c,b,a){}function uploadComplete(){jQuery("#insert-gallery").prop("disabled",false)}function switchUploader(a){if(a){deleteUserSetting("uploader");jQuery(".media-upload-form").removeClass("html-uploader");if(typeof(uploader)=="object"){uploader.refresh()}}else{setUserSetting("uploader","1");jQuery(".media-upload-form").addClass("html-uploader")}}function dndHelper(a){var b=document.getElementById("dnd-helper");if(a){b.style.display="block"}else{b.style.display="none"}}function uploadError(d,f,c,e){var b=100*1024*1024,a;switch(f){case plupload.FAILED:wpFileError(d,pluploadL10n.upload_failed);break;case plupload.FILE_EXTENSION_ERROR:wpFileError(d,pluploadL10n.invalid_filetype);break;case plupload.FILE_SIZE_ERROR:uploadSizeError(e,d);break;case plupload.IMAGE_FORMAT_ERROR:wpFileError(d,pluploadL10n.not_an_image);break;case plupload.IMAGE_MEMORY_ERROR:wpFileError(d,pluploadL10n.image_memory_exceeded);break;case plupload.IMAGE_DIMENSIONS_ERROR:wpFileError(d,pluploadL10n.image_dimensions_exceeded);break;case plupload.GENERIC_ERROR:wpQueueError(pluploadL10n.upload_failed);break;case plupload.IO_ERROR:a=parseInt(e.settings.max_file_size,10);if(a>b&&d.size>b){wpFileError(d,pluploadL10n.big_upload_failed.replace("%1$s",'<a class="uploader-html" href="#">').replace("%2$s","</a>"))}else{wpQueueError(pluploadL10n.io_error)}break;case plupload.HTTP_ERROR:wpQueueError(pluploadL10n.http_error);break;case plupload.INIT_ERROR:jQuery(".media-upload-form").addClass("html-uploader");break;case plupload.SECURITY_ERROR:wpQueueError(pluploadL10n.security_error);break;default:wpFileError(d,pluploadL10n.default_error)}}function uploadSizeError(a,b,d){var c;if(d){c=pluploadL10n.big_upload_queued.replace("%s",b.name)+" "+pluploadL10n.big_upload_failed.replace("%1$s",'<a class="uploader-html" href="#">').replace("%2$s","</a>")}else{c=pluploadL10n.file_exceeds_size_limit.replace("%s",b.name)}jQuery("#media-items").append('<div id="media-item-'+b.id+'" class="media-item error"><p>'+c+"</p></div>");a.removeFile(b)}jQuery(document).ready(function(a){a(".media-upload-form").bind("click.uploader",function(f){var d=a(f.target),b,g;if(d.is('input[type="radio"]')){b=d.closest("tr");if(b.hasClass("align")){setUserSetting("align",d.val())}else{if(b.hasClass("image-size")){setUserSetting("imgsize",d.val())}}}else{if(d.is("button.button")){g=f.target.className||"";g=g.match(/url([^ '"]+)/);if(g&&g[1]){setUserSetting("urlbutton",g[1]);d.siblings(".urlfield").val(d.data("link-url"))}}else{if(d.is("a.dismiss")){d.parents(".media-item").fadeOut(200,function(){a(this).remove()})}else{if(d.is(".upload-flash-bypass a")||d.is("a.uploader-html")){a("#media-items, p.submit, span.big-file-warning").css("display","none");switchUploader(0);f.preventDefault()}else{if(d.is(".upload-html-bypass a")){a("#media-items, p.submit, span.big-file-warning").css("display","");switchUploader(1);f.preventDefault()}else{if(d.is("a.describe-toggle-on")){d.parent().addClass("open");d.siblings(".slidetoggle").fadeIn(250,function(){var i=a(window).scrollTop(),e=a(window).height(),k=a(this).offset().top,j=a(this).height(),c,l;if(e&&k&&j){c=k+j;l=i+e;if(c>l){if(c-l<k-i){window.scrollBy(0,(c-l)+10)}else{window.scrollBy(0,k-i-40)}}}});f.preventDefault()}else{if(d.is("a.describe-toggle-off")){d.siblings(".slidetoggle").fadeOut(250,function(){d.parent().removeClass("open")});f.preventDefault()}}}}}}}});uploader_init=function(){uploader=new plupload.Uploader(wpUploaderInit);a("#image_resize").bind("change",function(){var b=a(this).prop("checked");setResize(b);if(b){setUserSetting("upload_resize","1")}else{deleteUserSetting("upload_resize")}});uploader.bind("Init",function(b){var c=a("#plupload-upload-ui");setResize(getUserSetting("upload_resize",false));if(b.features.dragdrop&&!a(document.body).hasClass("mobile")){c.addClass("drag-drop");a("#drag-drop-area").bind("dragover.wp-uploader",function(){c.addClass("drag-over")}).bind("dragleave.wp-uploader, drop.wp-uploader",function(){c.removeClass("drag-over")})}else{c.removeClass("drag-drop");a("#drag-drop-area").unbind(".wp-uploader")}if(b.runtime=="html4"){a(".upload-flash-bypass").hide()}});uploader.init();uploader.bind("FilesAdded",function(d,e){var c=100*1024*1024,b=parseInt(d.settings.max_file_size,10);a("#media-upload-error").html("");uploadStart();plupload.each(e,function(f){if(b>c&&f.size>c&&d.runtime!="html5"){uploadSizeError(d,f,true)}else{fileQueued(f)}});d.refresh();d.start()});uploader.bind("BeforeUpload",function(b,c){});uploader.bind("UploadFile",function(b,c){fileUploading(b,c)});uploader.bind("UploadProgress",function(b,c){uploadProgress(b,c)});uploader.bind("Error",function(b,c){uploadError(c.file,c.code,c.message,b);b.refresh()});uploader.bind("FileUploaded",function(b,d,c){uploadSuccess(d,c.response)});uploader.bind("UploadComplete",function(b,c){uploadComplete()})};if(typeof(wpUploaderInit)=="object"){uploader_init()}});
\ No newline at end of file
--- a/web/wp-includes/js/plupload/wp-plupload.dev.js	Wed Dec 19 12:35:13 2012 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,230 +0,0 @@
-if ( typeof wp === 'undefined' )
-	var wp = {};
-
-(function( exports, $ ) {
-	var Uploader;
-
-	if ( typeof _wpPluploadSettings === 'undefined' )
-		return;
-
-	/*
-	 * An object that helps create a WordPress uploader using plupload.
-	 *
-	 * @param options - object - The options passed to the new plupload instance.
-	 *    Requires the following parameters:
-	 *    - container - The id of uploader container.
-	 *    - browser   - The id of button to trigger the file select.
-	 *    - dropzone  - The id of file drop target.
-	 *    - plupload  - An object of parameters to pass to the plupload instance.
-	 *    - params    - An object of parameters to pass to $_POST when uploading the file.
-	 *                  Extends this.plupload.multipart_params under the hood.
-	 *
-	 * @param attributes - object - Attributes and methods for this specific instance.
-	 */
-	Uploader = function( options ) {
-		var self = this,
-			elements = {
-				container: 'container',
-				browser:   'browse_button',
-				dropzone:  'drop_element'
-			},
-			key;
-
-		this.supports = {
-			upload: Uploader.browser.supported
-		};
-
-		this.supported = this.supports.upload;
-
-		if ( ! this.supported )
-			return;
-
-		// Use deep extend to ensure that multipart_params and other objects are cloned.
-		this.plupload = $.extend( true, { multipart_params: {} }, Uploader.defaults );
-		this.container = document.body; // Set default container.
-
-		// Extend the instance with options
-		//
-		// Use deep extend to allow options.plupload to override individual
-		// default plupload keys.
-		$.extend( true, this, options );
-
-		// Proxy all methods so this always refers to the current instance.
-		for ( key in this ) {
-			if ( $.isFunction( this[ key ] ) )
-				this[ key ] = $.proxy( this[ key ], this );
-		}
-
-		// Ensure all elements are jQuery elements and have id attributes
-		// Then set the proper plupload arguments to the ids.
-		for ( key in elements ) {
-			if ( ! this[ key ] )
-				continue;
-
-			this[ key ] = $( this[ key ] ).first();
-
-			if ( ! this[ key ].length ) {
-				delete this[ key ];
-				continue;
-			}
-
-			if ( ! this[ key ].prop('id') )
-				this[ key ].prop( 'id', '__wp-uploader-id-' + Uploader.uuid++ );
-			this.plupload[ elements[ key ] ] = this[ key ].prop('id');
-		}
-
-		// If the uploader has neither a browse button nor a dropzone, bail.
-		if ( ! ( this.browser && this.browser.length ) && ! ( this.dropzone && this.dropzone.length ) )
-			return;
-
-		this.uploader = new plupload.Uploader( this.plupload );
-		delete this.plupload;
-
-		// Set default params and remove this.params alias.
-		this.param( this.params || {} );
-		delete this.params;
-
-		this.uploader.init();
-
-		this.supports.dragdrop = this.uploader.features.dragdrop && ! Uploader.browser.mobile;
-
-		// Generate drag/drop helper classes.
-		(function( dropzone, supported ) {
-			var sensitivity = 50,
-				active;
-
-			if ( ! dropzone )
-				return;
-
-			dropzone.toggleClass( 'supports-drag-drop', !! supported );
-
-			if ( ! supported )
-				return dropzone.unbind('.wp-uploader');
-
-			// 'dragenter' doesn't fire correctly,
-			// simulate it with a limited 'dragover'
-			dropzone.bind( 'dragover.wp-uploader', function(){
-				if ( active )
-					return;
-
-				dropzone.addClass('drag-over');
-				active = true;
-			});
-
-			dropzone.bind('dragleave.wp-uploader, drop.wp-uploader', function(){
-				active = false;
-				dropzone.removeClass('drag-over');
-			});
-		}( this.dropzone, this.supports.dragdrop ));
-
-		if ( this.browser ) {
-			this.browser.on( 'mouseenter', this.refresh );
-		} else {
-			this.uploader.disableBrowse( true );
-			// If HTML5 mode, hide the auto-created file container.
-			$('#' + this.uploader.id + '_html5_container').hide();
-		}
-
-		this.uploader.bind( 'UploadProgress', this.progress );
-
-		this.uploader.bind( 'FileUploaded', function( up, file, response ) {
-			try {
-				response = JSON.parse( response.response );
-			} catch ( e ) {
-				return self.error( pluploadL10n.default_error, e );
-			}
-
-			if ( ! response || ! response.type || ! response.data )
-				return self.error( pluploadL10n.default_error );
-
-			if ( 'error' === response.type )
-				return self.error( response.data.message, response.data );
-
-			if ( 'success' === response.type )
-				return self.success( response.data );
-
-		});
-
-		this.uploader.bind( 'Error', function( up, error ) {
-			var message = pluploadL10n.default_error,
-				key;
-
-			// Check for plupload errors.
-			for ( key in Uploader.errorMap ) {
-				if ( error.code === plupload[ key ] ) {
-					message = Uploader.errorMap[ key ];
-					break;
-				}
-			}
-
-			self.error( message, error );
-			up.refresh();
-		});
-
-		this.uploader.bind( 'FilesAdded', function( up, files ) {
-			$.each( files, function() {
-				self.added( this );
-			});
-
-			up.refresh();
-			up.start();
-		});
-
-		this.init();
-	};
-
-	// Adds the 'defaults' and 'browser' properties.
-	$.extend( Uploader, _wpPluploadSettings );
-
-	Uploader.uuid = 0;
-
-	Uploader.errorMap = {
-		'FAILED':                 pluploadL10n.upload_failed,
-		'FILE_EXTENSION_ERROR':   pluploadL10n.invalid_filetype,
-		// 'FILE_SIZE_ERROR': '',
-		'IMAGE_FORMAT_ERROR':     pluploadL10n.not_an_image,
-		'IMAGE_MEMORY_ERROR':     pluploadL10n.image_memory_exceeded,
-		'IMAGE_DIMENSIONS_ERROR': pluploadL10n.image_dimensions_exceeded,
-		'GENERIC_ERROR':          pluploadL10n.upload_failed,
-		'IO_ERROR':               pluploadL10n.io_error,
-		'HTTP_ERROR':             pluploadL10n.http_error,
-		'SECURITY_ERROR':         pluploadL10n.security_error
-	};
-
-	$.extend( Uploader.prototype, {
-		/**
-		 * Acts as a shortcut to extending the uploader's multipart_params object.
-		 *
-		 * param( key )
-		 *    Returns the value of the key.
-		 *
-		 * param( key, value )
-		 *    Sets the value of a key.
-		 *
-		 * param( map )
-		 *    Sets values for a map of data.
-		 */
-		param: function( key, value ) {
-			if ( arguments.length === 1 && typeof key === 'string' )
-				return this.uploader.settings.multipart_params[ key ];
-
-			if ( arguments.length > 1 ) {
-				this.uploader.settings.multipart_params[ key ] = value;
-			} else {
-				$.extend( this.uploader.settings.multipart_params, key );
-			}
-		},
-
-		init:     function() {},
-		error:    function() {},
-		success:  function() {},
-		added:    function() {},
-		progress: function() {},
-		complete: function() {},
-		refresh:  function() {
-			this.uploader.refresh();
-		}
-	});
-
-	exports.Uploader = Uploader;
-})( wp, jQuery );
--- a/web/wp-includes/js/plupload/wp-plupload.js	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/js/plupload/wp-plupload.js	Wed Dec 19 17:46:52 2012 -0800
@@ -1,1 +1,343 @@
-if(typeof wp==="undefined"){var wp={}}(function(a,b){var c;if(typeof _wpPluploadSettings==="undefined"){return}c=function(e){var d=this,g={container:"container",browser:"browse_button",dropzone:"drop_element"},f;this.supports={upload:c.browser.supported};this.supported=this.supports.upload;if(!this.supported){return}this.plupload=b.extend(true,{multipart_params:{}},c.defaults);this.container=document.body;b.extend(true,this,e);for(f in this){if(b.isFunction(this[f])){this[f]=b.proxy(this[f],this)}}for(f in g){if(!this[f]){continue}this[f]=b(this[f]).first();if(!this[f].length){delete this[f];continue}if(!this[f].prop("id")){this[f].prop("id","__wp-uploader-id-"+c.uuid++)}this.plupload[g[f]]=this[f].prop("id")}if(!(this.browser&&this.browser.length)&&!(this.dropzone&&this.dropzone.length)){return}this.uploader=new plupload.Uploader(this.plupload);delete this.plupload;this.param(this.params||{});delete this.params;this.uploader.init();this.supports.dragdrop=this.uploader.features.dragdrop&&!c.browser.mobile;(function(j,h){var i=50,k;if(!j){return}j.toggleClass("supports-drag-drop",!!h);if(!h){return j.unbind(".wp-uploader")}j.bind("dragover.wp-uploader",function(){if(k){return}j.addClass("drag-over");k=true});j.bind("dragleave.wp-uploader, drop.wp-uploader",function(){k=false;j.removeClass("drag-over")})}(this.dropzone,this.supports.dragdrop));if(this.browser){this.browser.on("mouseenter",this.refresh)}else{this.uploader.disableBrowse(true);b("#"+this.uploader.id+"_html5_container").hide()}this.uploader.bind("UploadProgress",this.progress);this.uploader.bind("FileUploaded",function(h,j,i){try{i=JSON.parse(i.response)}catch(k){return d.error(pluploadL10n.default_error,k)}if(!i||!i.type||!i.data){return d.error(pluploadL10n.default_error)}if("error"===i.type){return d.error(i.data.message,i.data)}if("success"===i.type){return d.success(i.data)}});this.uploader.bind("Error",function(h,i){var k=pluploadL10n.default_error,j;for(j in c.errorMap){if(i.code===plupload[j]){k=c.errorMap[j];break}}d.error(k,i);h.refresh()});this.uploader.bind("FilesAdded",function(h,i){b.each(i,function(){d.added(this)});h.refresh();h.start()});this.init()};b.extend(c,_wpPluploadSettings);c.uuid=0;c.errorMap={FAILED:pluploadL10n.upload_failed,FILE_EXTENSION_ERROR:pluploadL10n.invalid_filetype,IMAGE_FORMAT_ERROR:pluploadL10n.not_an_image,IMAGE_MEMORY_ERROR:pluploadL10n.image_memory_exceeded,IMAGE_DIMENSIONS_ERROR:pluploadL10n.image_dimensions_exceeded,GENERIC_ERROR:pluploadL10n.upload_failed,IO_ERROR:pluploadL10n.io_error,HTTP_ERROR:pluploadL10n.http_error,SECURITY_ERROR:pluploadL10n.security_error};b.extend(c.prototype,{param:function(d,e){if(arguments.length===1&&typeof d==="string"){return this.uploader.settings.multipart_params[d]}if(arguments.length>1){this.uploader.settings.multipart_params[d]=e}else{b.extend(this.uploader.settings.multipart_params,d)}},init:function(){},error:function(){},success:function(){},added:function(){},progress:function(){},complete:function(){},refresh:function(){this.uploader.refresh()}});a.Uploader=c})(wp,jQuery);
\ No newline at end of file
+window.wp = window.wp || {};
+
+(function( exports, $ ) {
+	var Uploader;
+
+	if ( typeof _wpPluploadSettings === 'undefined' )
+		return;
+
+	/*
+	 * An object that helps create a WordPress uploader using plupload.
+	 *
+	 * @param options - object - The options passed to the new plupload instance.
+	 *    Accepts the following parameters:
+	 *    - container - The id of uploader container.
+	 *    - browser   - The id of button to trigger the file select.
+	 *    - dropzone  - The id of file drop target.
+	 *    - plupload  - An object of parameters to pass to the plupload instance.
+	 *    - params    - An object of parameters to pass to $_POST when uploading the file.
+	 *                  Extends this.plupload.multipart_params under the hood.
+	 *
+	 * @param attributes - object - Attributes and methods for this specific instance.
+	 */
+	Uploader = function( options ) {
+		var self = this,
+			elements = {
+				container: 'container',
+				browser:   'browse_button',
+				dropzone:  'drop_element'
+			},
+			key, error;
+
+		this.supports = {
+			upload: Uploader.browser.supported
+		};
+
+		this.supported = this.supports.upload;
+
+		if ( ! this.supported )
+			return;
+
+		// Use deep extend to ensure that multipart_params and other objects are cloned.
+		this.plupload = $.extend( true, { multipart_params: {} }, Uploader.defaults );
+		this.container = document.body; // Set default container.
+
+		// Extend the instance with options
+		//
+		// Use deep extend to allow options.plupload to override individual
+		// default plupload keys.
+		$.extend( true, this, options );
+
+		// Proxy all methods so this always refers to the current instance.
+		for ( key in this ) {
+			if ( $.isFunction( this[ key ] ) )
+				this[ key ] = $.proxy( this[ key ], this );
+		}
+
+		// Ensure all elements are jQuery elements and have id attributes
+		// Then set the proper plupload arguments to the ids.
+		for ( key in elements ) {
+			if ( ! this[ key ] )
+				continue;
+
+			this[ key ] = $( this[ key ] ).first();
+
+			if ( ! this[ key ].length ) {
+				delete this[ key ];
+				continue;
+			}
+
+			if ( ! this[ key ].prop('id') )
+				this[ key ].prop( 'id', '__wp-uploader-id-' + Uploader.uuid++ );
+			this.plupload[ elements[ key ] ] = this[ key ].prop('id');
+		}
+
+		// If the uploader has neither a browse button nor a dropzone, bail.
+		if ( ! ( this.browser && this.browser.length ) && ! ( this.dropzone && this.dropzone.length ) )
+			return;
+
+		this.uploader = new plupload.Uploader( this.plupload );
+		delete this.plupload;
+
+		// Set default params and remove this.params alias.
+		this.param( this.params || {} );
+		delete this.params;
+
+		error = function( message, data, file ) {
+			if ( file.attachment )
+				file.attachment.destroy();
+
+			Uploader.errors.unshift({
+				message: message || pluploadL10n.default_error,
+				data:    data,
+				file:    file
+			});
+
+			self.error( message, data, file );
+		};
+
+		this.uploader.init();
+
+		this.supports.dragdrop = this.uploader.features.dragdrop && ! Uploader.browser.mobile;
+
+		// Generate drag/drop helper classes.
+		(function( dropzone, supported ) {
+			var timer, active;
+
+			if ( ! dropzone )
+				return;
+
+			dropzone.toggleClass( 'supports-drag-drop', !! supported );
+
+			if ( ! supported )
+				return dropzone.unbind('.wp-uploader');
+
+			// 'dragenter' doesn't fire correctly,
+			// simulate it with a limited 'dragover'
+			dropzone.bind( 'dragover.wp-uploader', function(){
+				if ( timer )
+					clearTimeout( timer );
+
+				if ( active )
+					return;
+
+				dropzone.trigger('dropzone:enter').addClass('drag-over');
+				active = true;
+			});
+
+			dropzone.bind('dragleave.wp-uploader, drop.wp-uploader', function(){
+				// Using an instant timer prevents the drag-over class from
+				// being quickly removed and re-added when elements inside the
+				// dropzone are repositioned.
+				//
+				// See http://core.trac.wordpress.org/ticket/21705
+				timer = setTimeout( function() {
+					active = false;
+					dropzone.trigger('dropzone:leave').removeClass('drag-over');
+				}, 0 );
+			});
+		}( this.dropzone, this.supports.dragdrop ));
+
+		if ( this.browser ) {
+			this.browser.on( 'mouseenter', this.refresh );
+		} else {
+			this.uploader.disableBrowse( true );
+			// If HTML5 mode, hide the auto-created file container.
+			$('#' + this.uploader.id + '_html5_container').hide();
+		}
+
+		this.uploader.bind( 'FilesAdded', function( up, files ) {
+			_.each( files, function( file ) {
+				var attributes, image;
+
+				// Ignore failed uploads.
+				if ( plupload.FAILED === file.status )
+					return;
+
+				// Generate attributes for a new `Attachment` model.
+				attributes = _.extend({
+					file:      file,
+					uploading: true,
+					date:      new Date(),
+					filename:  file.name,
+					menuOrder: 0,
+					uploadedTo: wp.media.model.settings.post.id
+				}, _.pick( file, 'loaded', 'size', 'percent' ) );
+
+				// Handle early mime type scanning for images.
+				image = /(?:jpe?g|png|gif)$/i.exec( file.name );
+
+				// Did we find an image?
+				if ( image ) {
+					attributes.type = 'image';
+
+					// `jpeg`, `png` and `gif` are valid subtypes.
+					// `jpg` is not, so map it to `jpeg`.
+					attributes.subtype = ( 'jpg' === image[0] ) ? 'jpeg' : image[0];
+				}
+
+				// Create the `Attachment`.
+				file.attachment = wp.media.model.Attachment.create( attributes );
+
+				Uploader.queue.add( file.attachment );
+
+				self.added( file.attachment );
+			});
+
+			up.refresh();
+			up.start();
+		});
+
+		this.uploader.bind( 'UploadProgress', function( up, file ) {
+			file.attachment.set( _.pick( file, 'loaded', 'percent' ) );
+			self.progress( file.attachment );
+		});
+
+		this.uploader.bind( 'FileUploaded', function( up, file, response ) {
+			var complete;
+
+			try {
+				response = JSON.parse( response.response );
+			} catch ( e ) {
+				return error( pluploadL10n.default_error, e, file );
+			}
+
+			if ( ! _.isObject( response ) || _.isUndefined( response.success ) )
+				return error( pluploadL10n.default_error, null, file );
+			else if ( ! response.success )
+				return error( response.data && response.data.message, response.data, file );
+
+			_.each(['file','loaded','size','percent'], function( key ) {
+				file.attachment.unset( key );
+			});
+
+			file.attachment.set( _.extend( response.data, { uploading: false }) );
+			wp.media.model.Attachment.get( response.data.id, file.attachment );
+
+			complete = Uploader.queue.all( function( attachment ) {
+				return ! attachment.get('uploading');
+			});
+
+			if ( complete )
+				Uploader.queue.reset();
+
+			self.success( file.attachment );
+		});
+
+		this.uploader.bind( 'Error', function( up, pluploadError ) {
+			var message = pluploadL10n.default_error,
+				key;
+
+			// Check for plupload errors.
+			for ( key in Uploader.errorMap ) {
+				if ( pluploadError.code === plupload[ key ] ) {
+					message = Uploader.errorMap[ key ];
+					if ( _.isFunction( message ) )
+						message = message( pluploadError.file, pluploadError );
+					break;
+				}
+			}
+
+			error( message, pluploadError, pluploadError.file );
+			up.refresh();
+		});
+
+		this.init();
+	};
+
+	// Adds the 'defaults' and 'browser' properties.
+	$.extend( Uploader, _wpPluploadSettings );
+
+	Uploader.uuid = 0;
+
+	Uploader.errorMap = {
+		'FAILED':                 pluploadL10n.upload_failed,
+		'FILE_EXTENSION_ERROR':   pluploadL10n.invalid_filetype,
+		'IMAGE_FORMAT_ERROR':     pluploadL10n.not_an_image,
+		'IMAGE_MEMORY_ERROR':     pluploadL10n.image_memory_exceeded,
+		'IMAGE_DIMENSIONS_ERROR': pluploadL10n.image_dimensions_exceeded,
+		'GENERIC_ERROR':          pluploadL10n.upload_failed,
+		'IO_ERROR':               pluploadL10n.io_error,
+		'HTTP_ERROR':             pluploadL10n.http_error,
+		'SECURITY_ERROR':         pluploadL10n.security_error,
+
+		'FILE_SIZE_ERROR': function( file ) {
+			return pluploadL10n.file_exceeds_size_limit.replace('%s', file.name);
+		}
+	};
+
+	$.extend( Uploader.prototype, {
+		/**
+		 * Acts as a shortcut to extending the uploader's multipart_params object.
+		 *
+		 * param( key )
+		 *    Returns the value of the key.
+		 *
+		 * param( key, value )
+		 *    Sets the value of a key.
+		 *
+		 * param( map )
+		 *    Sets values for a map of data.
+		 */
+		param: function( key, value ) {
+			if ( arguments.length === 1 && typeof key === 'string' )
+				return this.uploader.settings.multipart_params[ key ];
+
+			if ( arguments.length > 1 ) {
+				this.uploader.settings.multipart_params[ key ] = value;
+			} else {
+				$.extend( this.uploader.settings.multipart_params, key );
+			}
+		},
+
+		init:     function() {},
+		error:    function() {},
+		success:  function() {},
+		added:    function() {},
+		progress: function() {},
+		complete: function() {},
+		refresh:  function() {
+			var node, attached, container, id;
+
+			if ( this.browser ) {
+				node = this.browser[0];
+
+				// Check if the browser node is in the DOM.
+				while ( node ) {
+					if ( node === document.body ) {
+						attached = true;
+						break;
+					}
+					node = node.parentNode;
+				}
+
+				// If the browser node is not attached to the DOM, use a
+				// temporary container to house it, as the browser button
+				// shims require the button to exist in the DOM at all times.
+				if ( ! attached ) {
+					id = 'wp-uploader-browser-' + this.uploader.id;
+
+					container = $( '#' + id );
+					if ( ! container.length ) {
+						container = $('<div class="wp-uploader-browser" />').css({
+							position: 'fixed',
+							top: '-1000px',
+							left: '-1000px',
+							height: 0,
+							width: 0
+						}).attr( 'id', 'wp-uploader-browser-' + this.uploader.id ).appendTo('body');
+					}
+
+					container.append( this.browser );
+				}
+			}
+
+			this.uploader.refresh();
+		}
+	});
+
+	Uploader.queue = new wp.media.model.Attachments( [], { query: false });
+	Uploader.errors = new Backbone.Collection();
+
+	exports.Uploader = Uploader;
+})( wp, jQuery );
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-includes/js/plupload/wp-plupload.min.js	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,1 @@
+window.wp=window.wp||{};(function(a,b){var c;if(typeof _wpPluploadSettings==="undefined"){return}c=function(f){var d=this,h={container:"container",browser:"browse_button",dropzone:"drop_element"},g,e;this.supports={upload:c.browser.supported};this.supported=this.supports.upload;if(!this.supported){return}this.plupload=b.extend(true,{multipart_params:{}},c.defaults);this.container=document.body;b.extend(true,this,f);for(g in this){if(b.isFunction(this[g])){this[g]=b.proxy(this[g],this)}}for(g in h){if(!this[g]){continue}this[g]=b(this[g]).first();if(!this[g].length){delete this[g];continue}if(!this[g].prop("id")){this[g].prop("id","__wp-uploader-id-"+c.uuid++)}this.plupload[h[g]]=this[g].prop("id")}if(!(this.browser&&this.browser.length)&&!(this.dropzone&&this.dropzone.length)){return}this.uploader=new plupload.Uploader(this.plupload);delete this.plupload;this.param(this.params||{});delete this.params;e=function(j,k,i){if(i.attachment){i.attachment.destroy()}c.errors.unshift({message:j||pluploadL10n.default_error,data:k,file:i});d.error(j,k,i)};this.uploader.init();this.supports.dragdrop=this.uploader.features.dragdrop&&!c.browser.mobile;(function(j,i){var l,k;if(!j){return}j.toggleClass("supports-drag-drop",!!i);if(!i){return j.unbind(".wp-uploader")}j.bind("dragover.wp-uploader",function(){if(l){clearTimeout(l)}if(k){return}j.trigger("dropzone:enter").addClass("drag-over");k=true});j.bind("dragleave.wp-uploader, drop.wp-uploader",function(){l=setTimeout(function(){k=false;j.trigger("dropzone:leave").removeClass("drag-over")},0)})}(this.dropzone,this.supports.dragdrop));if(this.browser){this.browser.on("mouseenter",this.refresh)}else{this.uploader.disableBrowse(true);b("#"+this.uploader.id+"_html5_container").hide()}this.uploader.bind("FilesAdded",function(i,j){_.each(j,function(l){var k,m;if(plupload.FAILED===l.status){return}k=_.extend({file:l,uploading:true,date:new Date(),filename:l.name,menuOrder:0,uploadedTo:wp.media.model.settings.post.id},_.pick(l,"loaded","size","percent"));m=/(?:jpe?g|png|gif)$/i.exec(l.name);if(m){k.type="image";k.subtype=("jpg"===m[0])?"jpeg":m[0]}l.attachment=wp.media.model.Attachment.create(k);c.queue.add(l.attachment);d.added(l.attachment)});i.refresh();i.start()});this.uploader.bind("UploadProgress",function(i,j){j.attachment.set(_.pick(j,"loaded","percent"));d.progress(j.attachment)});this.uploader.bind("FileUploaded",function(i,l,k){var j;try{k=JSON.parse(k.response)}catch(m){return e(pluploadL10n.default_error,m,l)}if(!_.isObject(k)||_.isUndefined(k.success)){return e(pluploadL10n.default_error,null,l)}else{if(!k.success){return e(k.data&&k.data.message,k.data,l)}}_.each(["file","loaded","size","percent"],function(n){l.attachment.unset(n)});l.attachment.set(_.extend(k.data,{uploading:false}));wp.media.model.Attachment.get(k.data.id,l.attachment);j=c.queue.all(function(n){return !n.get("uploading")});if(j){c.queue.reset()}d.success(l.attachment)});this.uploader.bind("Error",function(i,l){var k=pluploadL10n.default_error,j;for(j in c.errorMap){if(l.code===plupload[j]){k=c.errorMap[j];if(_.isFunction(k)){k=k(l.file,l)}break}}e(k,l,l.file);i.refresh()});this.init()};b.extend(c,_wpPluploadSettings);c.uuid=0;c.errorMap={FAILED:pluploadL10n.upload_failed,FILE_EXTENSION_ERROR:pluploadL10n.invalid_filetype,IMAGE_FORMAT_ERROR:pluploadL10n.not_an_image,IMAGE_MEMORY_ERROR:pluploadL10n.image_memory_exceeded,IMAGE_DIMENSIONS_ERROR:pluploadL10n.image_dimensions_exceeded,GENERIC_ERROR:pluploadL10n.upload_failed,IO_ERROR:pluploadL10n.io_error,HTTP_ERROR:pluploadL10n.http_error,SECURITY_ERROR:pluploadL10n.security_error,FILE_SIZE_ERROR:function(d){return pluploadL10n.file_exceeds_size_limit.replace("%s",d.name)}};b.extend(c.prototype,{param:function(d,e){if(arguments.length===1&&typeof d==="string"){return this.uploader.settings.multipart_params[d]}if(arguments.length>1){this.uploader.settings.multipart_params[d]=e}else{b.extend(this.uploader.settings.multipart_params,d)}},init:function(){},error:function(){},success:function(){},added:function(){},progress:function(){},complete:function(){},refresh:function(){var f,e,d,g;if(this.browser){f=this.browser[0];while(f){if(f===document.body){e=true;break}f=f.parentNode}if(!e){g="wp-uploader-browser-"+this.uploader.id;d=b("#"+g);if(!d.length){d=b('<div class="wp-uploader-browser" />').css({position:"fixed",top:"-1000px",left:"-1000px",height:0,width:0}).attr("id","wp-uploader-browser-"+this.uploader.id).appendTo("body")}d.append(this.browser)}}this.uploader.refresh()}});c.queue=new wp.media.model.Attachments([],{query:false});c.errors=new Backbone.Collection();a.Uploader=c})(wp,jQuery);
\ No newline at end of file
--- a/web/wp-includes/js/prototype.js	Wed Dec 19 12:35:13 2012 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,4874 +0,0 @@
-/*  Prototype JavaScript framework, version 1.6.1
- *  (c) 2005-2009 Sam Stephenson
- *
- *  Prototype is freely distributable under the terms of an MIT-style license.
- *  For details, see the Prototype web site: http://www.prototypejs.org/
- *
- *--------------------------------------------------------------------------*/
-
-var Prototype = {
-  Version: '1.6.1',
-
-  Browser: (function(){
-    var ua = navigator.userAgent;
-    var isOpera = Object.prototype.toString.call(window.opera) == '[object Opera]';
-    return {
-      IE:             !!window.attachEvent && !isOpera,
-      Opera:          isOpera,
-      WebKit:         ua.indexOf('AppleWebKit/') > -1,
-      Gecko:          ua.indexOf('Gecko') > -1 && ua.indexOf('KHTML') === -1,
-      MobileSafari:   /Apple.*Mobile.*Safari/.test(ua)
-    }
-  })(),
-
-  BrowserFeatures: {
-    XPath: !!document.evaluate,
-    SelectorsAPI: !!document.querySelector,
-    ElementExtensions: (function() {
-      var constructor = window.Element || window.HTMLElement;
-      return !!(constructor && constructor.prototype);
-    })(),
-    SpecificElementExtensions: (function() {
-      if (typeof window.HTMLDivElement !== 'undefined')
-        return true;
-
-      var div = document.createElement('div');
-      var form = document.createElement('form');
-      var isSupported = false;
-
-      if (div['__proto__'] && (div['__proto__'] !== form['__proto__'])) {
-        isSupported = true;
-      }
-
-      div = form = null;
-
-      return isSupported;
-    })()
-  },
-
-  ScriptFragment: '<script[^>]*>([\\S\\s]*?)<\/script>',
-  JSONFilter: /^\/\*-secure-([\s\S]*)\*\/\s*$/,
-
-  emptyFunction: function() { },
-  K: function(x) { return x }
-};
-
-if (Prototype.Browser.MobileSafari)
-  Prototype.BrowserFeatures.SpecificElementExtensions = false;
-
-
-var Abstract = { };
-
-
-var Try = {
-  these: function() {
-    var returnValue;
-
-    for (var i = 0, length = arguments.length; i < length; i++) {
-      var lambda = arguments[i];
-      try {
-        returnValue = lambda();
-        break;
-      } catch (e) { }
-    }
-
-    return returnValue;
-  }
-};
-
-/* Based on Alex Arnell's inheritance implementation. */
-
-var Class = (function() {
-  function subclass() {};
-  function create() {
-    var parent = null, properties = $A(arguments);
-    if (Object.isFunction(properties[0]))
-      parent = properties.shift();
-
-    function klass() {
-      this.initialize.apply(this, arguments);
-    }
-
-    Object.extend(klass, Class.Methods);
-    klass.superclass = parent;
-    klass.subclasses = [];
-
-    if (parent) {
-      subclass.prototype = parent.prototype;
-      klass.prototype = new subclass;
-      parent.subclasses.push(klass);
-    }
-
-    for (var i = 0; i < properties.length; i++)
-      klass.addMethods(properties[i]);
-
-    if (!klass.prototype.initialize)
-      klass.prototype.initialize = Prototype.emptyFunction;
-
-    klass.prototype.constructor = klass;
-    return klass;
-  }
-
-  function addMethods(source) {
-    var ancestor   = this.superclass && this.superclass.prototype;
-    var properties = Object.keys(source);
-
-    if (!Object.keys({ toString: true }).length) {
-      if (source.toString != Object.prototype.toString)
-        properties.push("toString");
-      if (source.valueOf != Object.prototype.valueOf)
-        properties.push("valueOf");
-    }
-
-    for (var i = 0, length = properties.length; i < length; i++) {
-      var property = properties[i], value = source[property];
-      if (ancestor && Object.isFunction(value) &&
-          value.argumentNames().first() == "$super") {
-        var method = value;
-        value = (function(m) {
-          return function() { return ancestor[m].apply(this, arguments); };
-        })(property).wrap(method);
-
-        value.valueOf = method.valueOf.bind(method);
-        value.toString = method.toString.bind(method);
-      }
-      this.prototype[property] = value;
-    }
-
-    return this;
-  }
-
-  return {
-    create: create,
-    Methods: {
-      addMethods: addMethods
-    }
-  };
-})();
-(function() {
-
-  var _toString = Object.prototype.toString;
-
-  function extend(destination, source) {
-    for (var property in source)
-      destination[property] = source[property];
-    return destination;
-  }
-
-  function inspect(object) {
-    try {
-      if (isUndefined(object)) return 'undefined';
-      if (object === null) return 'null';
-      return object.inspect ? object.inspect() : String(object);
-    } catch (e) {
-      if (e instanceof RangeError) return '...';
-      throw e;
-    }
-  }
-
-  function toJSON(object) {
-    var type = typeof object;
-    switch (type) {
-      case 'undefined':
-      case 'function':
-      case 'unknown': return;
-      case 'boolean': return object.toString();
-    }
-
-    if (object === null) return 'null';
-    if (object.toJSON) return object.toJSON();
-    if (isElement(object)) return;
-
-    var results = [];
-    for (var property in object) {
-      var value = toJSON(object[property]);
-      if (!isUndefined(value))
-        results.push(property.toJSON() + ': ' + value);
-    }
-
-    return '{' + results.join(', ') + '}';
-  }
-
-  function toQueryString(object) {
-    return $H(object).toQueryString();
-  }
-
-  function toHTML(object) {
-    return object && object.toHTML ? object.toHTML() : String.interpret(object);
-  }
-
-  function keys(object) {
-    var results = [];
-    for (var property in object)
-      results.push(property);
-    return results;
-  }
-
-  function values(object) {
-    var results = [];
-    for (var property in object)
-      results.push(object[property]);
-    return results;
-  }
-
-  function clone(object) {
-    return extend({ }, object);
-  }
-
-  function isElement(object) {
-    return !!(object && object.nodeType == 1);
-  }
-
-  function isArray(object) {
-    return _toString.call(object) == "[object Array]";
-  }
-
-
-  function isHash(object) {
-    return object instanceof Hash;
-  }
-
-  function isFunction(object) {
-    return typeof object === "function";
-  }
-
-  function isString(object) {
-    return _toString.call(object) == "[object String]";
-  }
-
-  function isNumber(object) {
-    return _toString.call(object) == "[object Number]";
-  }
-
-  function isUndefined(object) {
-    return typeof object === "undefined";
-  }
-
-  extend(Object, {
-    extend:        extend,
-    inspect:       inspect,
-    toJSON:        toJSON,
-    toQueryString: toQueryString,
-    toHTML:        toHTML,
-    keys:          keys,
-    values:        values,
-    clone:         clone,
-    isElement:     isElement,
-    isArray:       isArray,
-    isHash:        isHash,
-    isFunction:    isFunction,
-    isString:      isString,
-    isNumber:      isNumber,
-    isUndefined:   isUndefined
-  });
-})();
-Object.extend(Function.prototype, (function() {
-  var slice = Array.prototype.slice;
-
-  function update(array, args) {
-    var arrayLength = array.length, length = args.length;
-    while (length--) array[arrayLength + length] = args[length];
-    return array;
-  }
-
-  function merge(array, args) {
-    array = slice.call(array, 0);
-    return update(array, args);
-  }
-
-  function argumentNames() {
-    var names = this.toString().match(/^[\s\(]*function[^(]*\(([^)]*)\)/)[1]
-      .replace(/\/\/.*?[\r\n]|\/\*(?:.|[\r\n])*?\*\//g, '')
-      .replace(/\s+/g, '').split(',');
-    return names.length == 1 && !names[0] ? [] : names;
-  }
-
-  function bind(context) {
-    if (arguments.length < 2 && Object.isUndefined(arguments[0])) return this;
-    var __method = this, args = slice.call(arguments, 1);
-    return function() {
-      var a = merge(args, arguments);
-      return __method.apply(context, a);
-    }
-  }
-
-  function bindAsEventListener(context) {
-    var __method = this, args = slice.call(arguments, 1);
-    return function(event) {
-      var a = update([event || window.event], args);
-      return __method.apply(context, a);
-    }
-  }
-
-  function curry() {
-    if (!arguments.length) return this;
-    var __method = this, args = slice.call(arguments, 0);
-    return function() {
-      var a = merge(args, arguments);
-      return __method.apply(this, a);
-    }
-  }
-
-  function delay(timeout) {
-    var __method = this, args = slice.call(arguments, 1);
-    timeout = timeout * 1000
-    return window.setTimeout(function() {
-      return __method.apply(__method, args);
-    }, timeout);
-  }
-
-  function defer() {
-    var args = update([0.01], arguments);
-    return this.delay.apply(this, args);
-  }
-
-  function wrap(wrapper) {
-    var __method = this;
-    return function() {
-      var a = update([__method.bind(this)], arguments);
-      return wrapper.apply(this, a);
-    }
-  }
-
-  function methodize() {
-    if (this._methodized) return this._methodized;
-    var __method = this;
-    return this._methodized = function() {
-      var a = update([this], arguments);
-      return __method.apply(null, a);
-    };
-  }
-
-  return {
-    argumentNames:       argumentNames,
-    bind:                bind,
-    bindAsEventListener: bindAsEventListener,
-    curry:               curry,
-    delay:               delay,
-    defer:               defer,
-    wrap:                wrap,
-    methodize:           methodize
-  }
-})());
-
-
-Date.prototype.toJSON = function() {
-  return '"' + this.getUTCFullYear() + '-' +
-    (this.getUTCMonth() + 1).toPaddedString(2) + '-' +
-    this.getUTCDate().toPaddedString(2) + 'T' +
-    this.getUTCHours().toPaddedString(2) + ':' +
-    this.getUTCMinutes().toPaddedString(2) + ':' +
-    this.getUTCSeconds().toPaddedString(2) + 'Z"';
-};
-
-
-RegExp.prototype.match = RegExp.prototype.test;
-
-RegExp.escape = function(str) {
-  return String(str).replace(/([.*+?^=!:${}()|[\]\/\\])/g, '\\$1');
-};
-var PeriodicalExecuter = Class.create({
-  initialize: function(callback, frequency) {
-    this.callback = callback;
-    this.frequency = frequency;
-    this.currentlyExecuting = false;
-
-    this.registerCallback();
-  },
-
-  registerCallback: function() {
-    this.timer = setInterval(this.onTimerEvent.bind(this), this.frequency * 1000);
-  },
-
-  execute: function() {
-    this.callback(this);
-  },
-
-  stop: function() {
-    if (!this.timer) return;
-    clearInterval(this.timer);
-    this.timer = null;
-  },
-
-  onTimerEvent: function() {
-    if (!this.currentlyExecuting) {
-      try {
-        this.currentlyExecuting = true;
-        this.execute();
-        this.currentlyExecuting = false;
-      } catch(e) {
-        this.currentlyExecuting = false;
-        throw e;
-      }
-    }
-  }
-});
-Object.extend(String, {
-  interpret: function(value) {
-    return value == null ? '' : String(value);
-  },
-  specialChar: {
-    '\b': '\\b',
-    '\t': '\\t',
-    '\n': '\\n',
-    '\f': '\\f',
-    '\r': '\\r',
-    '\\': '\\\\'
-  }
-});
-
-Object.extend(String.prototype, (function() {
-
-  function prepareReplacement(replacement) {
-    if (Object.isFunction(replacement)) return replacement;
-    var template = new Template(replacement);
-    return function(match) { return template.evaluate(match) };
-  }
-
-  function gsub(pattern, replacement) {
-    var result = '', source = this, match;
-    replacement = prepareReplacement(replacement);
-
-    if (Object.isString(pattern))
-      pattern = RegExp.escape(pattern);
-
-    if (!(pattern.length || pattern.source)) {
-      replacement = replacement('');
-      return replacement + source.split('').join(replacement) + replacement;
-    }
-
-    while (source.length > 0) {
-      if (match = source.match(pattern)) {
-        result += source.slice(0, match.index);
-        result += String.interpret(replacement(match));
-        source  = source.slice(match.index + match[0].length);
-      } else {
-        result += source, source = '';
-      }
-    }
-    return result;
-  }
-
-  function sub(pattern, replacement, count) {
-    replacement = prepareReplacement(replacement);
-    count = Object.isUndefined(count) ? 1 : count;
-
-    return this.gsub(pattern, function(match) {
-      if (--count < 0) return match[0];
-      return replacement(match);
-    });
-  }
-
-  function scan(pattern, iterator) {
-    this.gsub(pattern, iterator);
-    return String(this);
-  }
-
-  function truncate(length, truncation) {
-    length = length || 30;
-    truncation = Object.isUndefined(truncation) ? '...' : truncation;
-    return this.length > length ?
-      this.slice(0, length - truncation.length) + truncation : String(this);
-  }
-
-  function strip() {
-    return this.replace(/^\s+/, '').replace(/\s+$/, '');
-  }
-
-  function stripTags() {
-    return this.replace(/<\w+(\s+("[^"]*"|'[^']*'|[^>])+)?>|<\/\w+>/gi, '');
-  }
-
-  function stripScripts() {
-    return this.replace(new RegExp(Prototype.ScriptFragment, 'img'), '');
-  }
-
-  function extractScripts() {
-    var matchAll = new RegExp(Prototype.ScriptFragment, 'img');
-    var matchOne = new RegExp(Prototype.ScriptFragment, 'im');
-    return (this.match(matchAll) || []).map(function(scriptTag) {
-      return (scriptTag.match(matchOne) || ['', ''])[1];
-    });
-  }
-
-  function evalScripts() {
-    return this.extractScripts().map(function(script) { return eval(script) });
-  }
-
-  function escapeHTML() {
-    return this.replace(/&/g,'&amp;').replace(/</g,'&lt;').replace(/>/g,'&gt;');
-  }
-
-  function unescapeHTML() {
-    return this.stripTags().replace(/&lt;/g,'<').replace(/&gt;/g,'>').replace(/&amp;/g,'&');
-  }
-
-
-  function toQueryParams(separator) {
-    var match = this.strip().match(/([^?#]*)(#.*)?$/);
-    if (!match) return { };
-
-    return match[1].split(separator || '&').inject({ }, function(hash, pair) {
-      if ((pair = pair.split('='))[0]) {
-        var key = decodeURIComponent(pair.shift());
-        var value = pair.length > 1 ? pair.join('=') : pair[0];
-        if (value != undefined) value = decodeURIComponent(value);
-
-        if (key in hash) {
-          if (!Object.isArray(hash[key])) hash[key] = [hash[key]];
-          hash[key].push(value);
-        }
-        else hash[key] = value;
-      }
-      return hash;
-    });
-  }
-
-  function toArray() {
-    return this.split('');
-  }
-
-  function succ() {
-    return this.slice(0, this.length - 1) +
-      String.fromCharCode(this.charCodeAt(this.length - 1) + 1);
-  }
-
-  function times(count) {
-    return count < 1 ? '' : new Array(count + 1).join(this);
-  }
-
-  function camelize() {
-    var parts = this.split('-'), len = parts.length;
-    if (len == 1) return parts[0];
-
-    var camelized = this.charAt(0) == '-'
-      ? parts[0].charAt(0).toUpperCase() + parts[0].substring(1)
-      : parts[0];
-
-    for (var i = 1; i < len; i++)
-      camelized += parts[i].charAt(0).toUpperCase() + parts[i].substring(1);
-
-    return camelized;
-  }
-
-  function capitalize() {
-    return this.charAt(0).toUpperCase() + this.substring(1).toLowerCase();
-  }
-
-  function underscore() {
-    return this.replace(/::/g, '/')
-               .replace(/([A-Z]+)([A-Z][a-z])/g, '$1_$2')
-               .replace(/([a-z\d])([A-Z])/g, '$1_$2')
-               .replace(/-/g, '_')
-               .toLowerCase();
-  }
-
-  function dasherize() {
-    return this.replace(/_/g, '-');
-  }
-
-  function inspect(useDoubleQuotes) {
-    var escapedString = this.replace(/[\x00-\x1f\\]/g, function(character) {
-      if (character in String.specialChar) {
-        return String.specialChar[character];
-      }
-      return '\\u00' + character.charCodeAt().toPaddedString(2, 16);
-    });
-    if (useDoubleQuotes) return '"' + escapedString.replace(/"/g, '\\"') + '"';
-    return "'" + escapedString.replace(/'/g, '\\\'') + "'";
-  }
-
-  function toJSON() {
-    return this.inspect(true);
-  }
-
-  function unfilterJSON(filter) {
-    return this.replace(filter || Prototype.JSONFilter, '$1');
-  }
-
-  function isJSON() {
-    var str = this;
-    if (str.blank()) return false;
-    str = this.replace(/\\./g, '@').replace(/"[^"\\\n\r]*"/g, '');
-    return (/^[,:{}\[\]0-9.\-+Eaeflnr-u \n\r\t]*$/).test(str);
-  }
-
-  function evalJSON(sanitize) {
-    var json = this.unfilterJSON();
-    try {
-      if (!sanitize || json.isJSON()) return eval('(' + json + ')');
-    } catch (e) { }
-    throw new SyntaxError('Badly formed JSON string: ' + this.inspect());
-  }
-
-  function include(pattern) {
-    return this.indexOf(pattern) > -1;
-  }
-
-  function startsWith(pattern) {
-    return this.indexOf(pattern) === 0;
-  }
-
-  function endsWith(pattern) {
-    var d = this.length - pattern.length;
-    return d >= 0 && this.lastIndexOf(pattern) === d;
-  }
-
-  function empty() {
-    return this == '';
-  }
-
-  function blank() {
-    return /^\s*$/.test(this);
-  }
-
-  function interpolate(object, pattern) {
-    return new Template(this, pattern).evaluate(object);
-  }
-
-  return {
-    gsub:           gsub,
-    sub:            sub,
-    scan:           scan,
-    truncate:       truncate,
-    strip:          String.prototype.trim ? String.prototype.trim : strip,
-    stripTags:      stripTags,
-    stripScripts:   stripScripts,
-    extractScripts: extractScripts,
-    evalScripts:    evalScripts,
-    escapeHTML:     escapeHTML,
-    unescapeHTML:   unescapeHTML,
-    toQueryParams:  toQueryParams,
-    parseQuery:     toQueryParams,
-    toArray:        toArray,
-    succ:           succ,
-    times:          times,
-    camelize:       camelize,
-    capitalize:     capitalize,
-    underscore:     underscore,
-    dasherize:      dasherize,
-    inspect:        inspect,
-    toJSON:         toJSON,
-    unfilterJSON:   unfilterJSON,
-    isJSON:         isJSON,
-    evalJSON:       evalJSON,
-    include:        include,
-    startsWith:     startsWith,
-    endsWith:       endsWith,
-    empty:          empty,
-    blank:          blank,
-    interpolate:    interpolate
-  };
-})());
-
-var Template = Class.create({
-  initialize: function(template, pattern) {
-    this.template = template.toString();
-    this.pattern = pattern || Template.Pattern;
-  },
-
-  evaluate: function(object) {
-    if (object && Object.isFunction(object.toTemplateReplacements))
-      object = object.toTemplateReplacements();
-
-    return this.template.gsub(this.pattern, function(match) {
-      if (object == null) return (match[1] + '');
-
-      var before = match[1] || '';
-      if (before == '\\') return match[2];
-
-      var ctx = object, expr = match[3];
-      var pattern = /^([^.[]+|\[((?:.*?[^\\])?)\])(\.|\[|$)/;
-      match = pattern.exec(expr);
-      if (match == null) return before;
-
-      while (match != null) {
-        var comp = match[1].startsWith('[') ? match[2].replace(/\\\\]/g, ']') : match[1];
-        ctx = ctx[comp];
-        if (null == ctx || '' == match[3]) break;
-        expr = expr.substring('[' == match[3] ? match[1].length : match[0].length);
-        match = pattern.exec(expr);
-      }
-
-      return before + String.interpret(ctx);
-    });
-  }
-});
-Template.Pattern = /(^|.|\r|\n)(#\{(.*?)\})/;
-
-var $break = { };
-
-var Enumerable = (function() {
-  function each(iterator, context) {
-    var index = 0;
-    try {
-      this._each(function(value) {
-        iterator.call(context, value, index++);
-      });
-    } catch (e) {
-      if (e != $break) throw e;
-    }
-    return this;
-  }
-
-  function eachSlice(number, iterator, context) {
-    var index = -number, slices = [], array = this.toArray();
-    if (number < 1) return array;
-    while ((index += number) < array.length)
-      slices.push(array.slice(index, index+number));
-    return slices.collect(iterator, context);
-  }
-
-  function all(iterator, context) {
-    iterator = iterator || Prototype.K;
-    var result = true;
-    this.each(function(value, index) {
-      result = result && !!iterator.call(context, value, index);
-      if (!result) throw $break;
-    });
-    return result;
-  }
-
-  function any(iterator, context) {
-    iterator = iterator || Prototype.K;
-    var result = false;
-    this.each(function(value, index) {
-      if (result = !!iterator.call(context, value, index))
-        throw $break;
-    });
-    return result;
-  }
-
-  function collect(iterator, context) {
-    iterator = iterator || Prototype.K;
-    var results = [];
-    this.each(function(value, index) {
-      results.push(iterator.call(context, value, index));
-    });
-    return results;
-  }
-
-  function detect(iterator, context) {
-    var result;
-    this.each(function(value, index) {
-      if (iterator.call(context, value, index)) {
-        result = value;
-        throw $break;
-      }
-    });
-    return result;
-  }
-
-  function findAll(iterator, context) {
-    var results = [];
-    this.each(function(value, index) {
-      if (iterator.call(context, value, index))
-        results.push(value);
-    });
-    return results;
-  }
-
-  function grep(filter, iterator, context) {
-    iterator = iterator || Prototype.K;
-    var results = [];
-
-    if (Object.isString(filter))
-      filter = new RegExp(RegExp.escape(filter));
-
-    this.each(function(value, index) {
-      if (filter.match(value))
-        results.push(iterator.call(context, value, index));
-    });
-    return results;
-  }
-
-  function include(object) {
-    if (Object.isFunction(this.indexOf))
-      if (this.indexOf(object) != -1) return true;
-
-    var found = false;
-    this.each(function(value) {
-      if (value == object) {
-        found = true;
-        throw $break;
-      }
-    });
-    return found;
-  }
-
-  function inGroupsOf(number, fillWith) {
-    fillWith = Object.isUndefined(fillWith) ? null : fillWith;
-    return this.eachSlice(number, function(slice) {
-      while(slice.length < number) slice.push(fillWith);
-      return slice;
-    });
-  }
-
-  function inject(memo, iterator, context) {
-    this.each(function(value, index) {
-      memo = iterator.call(context, memo, value, index);
-    });
-    return memo;
-  }
-
-  function invoke(method) {
-    var args = $A(arguments).slice(1);
-    return this.map(function(value) {
-      return value[method].apply(value, args);
-    });
-  }
-
-  function max(iterator, context) {
-    iterator = iterator || Prototype.K;
-    var result;
-    this.each(function(value, index) {
-      value = iterator.call(context, value, index);
-      if (result == null || value >= result)
-        result = value;
-    });
-    return result;
-  }
-
-  function min(iterator, context) {
-    iterator = iterator || Prototype.K;
-    var result;
-    this.each(function(value, index) {
-      value = iterator.call(context, value, index);
-      if (result == null || value < result)
-        result = value;
-    });
-    return result;
-  }
-
-  function partition(iterator, context) {
-    iterator = iterator || Prototype.K;
-    var trues = [], falses = [];
-    this.each(function(value, index) {
-      (iterator.call(context, value, index) ?
-        trues : falses).push(value);
-    });
-    return [trues, falses];
-  }
-
-  function pluck(property) {
-    var results = [];
-    this.each(function(value) {
-      results.push(value[property]);
-    });
-    return results;
-  }
-
-  function reject(iterator, context) {
-    var results = [];
-    this.each(function(value, index) {
-      if (!iterator.call(context, value, index))
-        results.push(value);
-    });
-    return results;
-  }
-
-  function sortBy(iterator, context) {
-    return this.map(function(value, index) {
-      return {
-        value: value,
-        criteria: iterator.call(context, value, index)
-      };
-    }).sort(function(left, right) {
-      var a = left.criteria, b = right.criteria;
-      return a < b ? -1 : a > b ? 1 : 0;
-    }).pluck('value');
-  }
-
-  function toArray() {
-    return this.map();
-  }
-
-  function zip() {
-    var iterator = Prototype.K, args = $A(arguments);
-    if (Object.isFunction(args.last()))
-      iterator = args.pop();
-
-    var collections = [this].concat(args).map($A);
-    return this.map(function(value, index) {
-      return iterator(collections.pluck(index));
-    });
-  }
-
-  function size() {
-    return this.toArray().length;
-  }
-
-  function inspect() {
-    return '#<Enumerable:' + this.toArray().inspect() + '>';
-  }
-
-
-
-
-
-
-
-
-
-  return {
-    each:       each,
-    eachSlice:  eachSlice,
-    all:        all,
-    every:      all,
-    any:        any,
-    some:       any,
-    collect:    collect,
-    map:        collect,
-    detect:     detect,
-    findAll:    findAll,
-    select:     findAll,
-    filter:     findAll,
-    grep:       grep,
-    include:    include,
-    member:     include,
-    inGroupsOf: inGroupsOf,
-    inject:     inject,
-    invoke:     invoke,
-    max:        max,
-    min:        min,
-    partition:  partition,
-    pluck:      pluck,
-    reject:     reject,
-    sortBy:     sortBy,
-    toArray:    toArray,
-    entries:    toArray,
-    zip:        zip,
-    size:       size,
-    inspect:    inspect,
-    find:       detect
-  };
-})();
-function $A(iterable) {
-  if (!iterable) return [];
-  if ('toArray' in Object(iterable)) return iterable.toArray();
-  var length = iterable.length || 0, results = new Array(length);
-  while (length--) results[length] = iterable[length];
-  return results;
-}
-
-function $w(string) {
-  if (!Object.isString(string)) return [];
-  string = string.strip();
-  return string ? string.split(/\s+/) : [];
-}
-
-Array.from = $A;
-
-
-(function() {
-  var arrayProto = Array.prototype,
-      slice = arrayProto.slice,
-      _each = arrayProto.forEach; // use native browser JS 1.6 implementation if available
-
-  function each(iterator) {
-    for (var i = 0, length = this.length; i < length; i++)
-      iterator(this[i]);
-  }
-  if (!_each) _each = each;
-
-  function clear() {
-    this.length = 0;
-    return this;
-  }
-
-  function first() {
-    return this[0];
-  }
-
-  function last() {
-    return this[this.length - 1];
-  }
-
-  function compact() {
-    return this.select(function(value) {
-      return value != null;
-    });
-  }
-
-  function flatten() {
-    return this.inject([], function(array, value) {
-      if (Object.isArray(value))
-        return array.concat(value.flatten());
-      array.push(value);
-      return array;
-    });
-  }
-
-  function without() {
-    var values = slice.call(arguments, 0);
-    return this.select(function(value) {
-      return !values.include(value);
-    });
-  }
-
-  function reverse(inline) {
-    return (inline !== false ? this : this.toArray())._reverse();
-  }
-
-  function uniq(sorted) {
-    return this.inject([], function(array, value, index) {
-      if (0 == index || (sorted ? array.last() != value : !array.include(value)))
-        array.push(value);
-      return array;
-    });
-  }
-
-  function intersect(array) {
-    return this.uniq().findAll(function(item) {
-      return array.detect(function(value) { return item === value });
-    });
-  }
-
-
-  function clone() {
-    return slice.call(this, 0);
-  }
-
-  function size() {
-    return this.length;
-  }
-
-  function inspect() {
-    return '[' + this.map(Object.inspect).join(', ') + ']';
-  }
-
-  function toJSON() {
-    var results = [];
-    this.each(function(object) {
-      var value = Object.toJSON(object);
-      if (!Object.isUndefined(value)) results.push(value);
-    });
-    return '[' + results.join(', ') + ']';
-  }
-
-  function indexOf(item, i) {
-    i || (i = 0);
-    var length = this.length;
-    if (i < 0) i = length + i;
-    for (; i < length; i++)
-      if (this[i] === item) return i;
-    return -1;
-  }
-
-  function lastIndexOf(item, i) {
-    i = isNaN(i) ? this.length : (i < 0 ? this.length + i : i) + 1;
-    var n = this.slice(0, i).reverse().indexOf(item);
-    return (n < 0) ? n : i - n - 1;
-  }
-
-  function concat() {
-    var array = slice.call(this, 0), item;
-    for (var i = 0, length = arguments.length; i < length; i++) {
-      item = arguments[i];
-      if (Object.isArray(item) && !('callee' in item)) {
-        for (var j = 0, arrayLength = item.length; j < arrayLength; j++)
-          array.push(item[j]);
-      } else {
-        array.push(item);
-      }
-    }
-    return array;
-  }
-
-  Object.extend(arrayProto, Enumerable);
-
-  if (!arrayProto._reverse)
-    arrayProto._reverse = arrayProto.reverse;
-
-  Object.extend(arrayProto, {
-    _each:     _each,
-    clear:     clear,
-    first:     first,
-    last:      last,
-    compact:   compact,
-    flatten:   flatten,
-    without:   without,
-    reverse:   reverse,
-    uniq:      uniq,
-    intersect: intersect,
-    clone:     clone,
-    toArray:   clone,
-    size:      size,
-    inspect:   inspect,
-    toJSON:    toJSON
-  });
-
-  var CONCAT_ARGUMENTS_BUGGY = (function() {
-    return [].concat(arguments)[0][0] !== 1;
-  })(1,2)
-
-  if (CONCAT_ARGUMENTS_BUGGY) arrayProto.concat = concat;
-
-  if (!arrayProto.indexOf) arrayProto.indexOf = indexOf;
-  if (!arrayProto.lastIndexOf) arrayProto.lastIndexOf = lastIndexOf;
-})();
-function $H(object) {
-  return new Hash(object);
-};
-
-var Hash = Class.create(Enumerable, (function() {
-  function initialize(object) {
-    this._object = Object.isHash(object) ? object.toObject() : Object.clone(object);
-  }
-
-  function _each(iterator) {
-    for (var key in this._object) {
-      var value = this._object[key], pair = [key, value];
-      pair.key = key;
-      pair.value = value;
-      iterator(pair);
-    }
-  }
-
-  function set(key, value) {
-    return this._object[key] = value;
-  }
-
-  function get(key) {
-    if (this._object[key] !== Object.prototype[key])
-      return this._object[key];
-  }
-
-  function unset(key) {
-    var value = this._object[key];
-    delete this._object[key];
-    return value;
-  }
-
-  function toObject() {
-    return Object.clone(this._object);
-  }
-
-  function keys() {
-    return this.pluck('key');
-  }
-
-  function values() {
-    return this.pluck('value');
-  }
-
-  function index(value) {
-    var match = this.detect(function(pair) {
-      return pair.value === value;
-    });
-    return match && match.key;
-  }
-
-  function merge(object) {
-    return this.clone().update(object);
-  }
-
-  function update(object) {
-    return new Hash(object).inject(this, function(result, pair) {
-      result.set(pair.key, pair.value);
-      return result;
-    });
-  }
-
-  function toQueryPair(key, value) {
-    if (Object.isUndefined(value)) return key;
-    return key + '=' + encodeURIComponent(String.interpret(value));
-  }
-
-  function toQueryString() {
-    return this.inject([], function(results, pair) {
-      var key = encodeURIComponent(pair.key), values = pair.value;
-
-      if (values && typeof values == 'object') {
-        if (Object.isArray(values))
-          return results.concat(values.map(toQueryPair.curry(key)));
-      } else results.push(toQueryPair(key, values));
-      return results;
-    }).join('&');
-  }
-
-  function inspect() {
-    return '#<Hash:{' + this.map(function(pair) {
-      return pair.map(Object.inspect).join(': ');
-    }).join(', ') + '}>';
-  }
-
-  function toJSON() {
-    return Object.toJSON(this.toObject());
-  }
-
-  function clone() {
-    return new Hash(this);
-  }
-
-  return {
-    initialize:             initialize,
-    _each:                  _each,
-    set:                    set,
-    get:                    get,
-    unset:                  unset,
-    toObject:               toObject,
-    toTemplateReplacements: toObject,
-    keys:                   keys,
-    values:                 values,
-    index:                  index,
-    merge:                  merge,
-    update:                 update,
-    toQueryString:          toQueryString,
-    inspect:                inspect,
-    toJSON:                 toJSON,
-    clone:                  clone
-  };
-})());
-
-Hash.from = $H;
-Object.extend(Number.prototype, (function() {
-  function toColorPart() {
-    return this.toPaddedString(2, 16);
-  }
-
-  function succ() {
-    return this + 1;
-  }
-
-  function times(iterator, context) {
-    $R(0, this, true).each(iterator, context);
-    return this;
-  }
-
-  function toPaddedString(length, radix) {
-    var string = this.toString(radix || 10);
-    return '0'.times(length - string.length) + string;
-  }
-
-  function toJSON() {
-    return isFinite(this) ? this.toString() : 'null';
-  }
-
-  function abs() {
-    return Math.abs(this);
-  }
-
-  function round() {
-    return Math.round(this);
-  }
-
-  function ceil() {
-    return Math.ceil(this);
-  }
-
-  function floor() {
-    return Math.floor(this);
-  }
-
-  return {
-    toColorPart:    toColorPart,
-    succ:           succ,
-    times:          times,
-    toPaddedString: toPaddedString,
-    toJSON:         toJSON,
-    abs:            abs,
-    round:          round,
-    ceil:           ceil,
-    floor:          floor
-  };
-})());
-
-function $R(start, end, exclusive) {
-  return new ObjectRange(start, end, exclusive);
-}
-
-var ObjectRange = Class.create(Enumerable, (function() {
-  function initialize(start, end, exclusive) {
-    this.start = start;
-    this.end = end;
-    this.exclusive = exclusive;
-  }
-
-  function _each(iterator) {
-    var value = this.start;
-    while (this.include(value)) {
-      iterator(value);
-      value = value.succ();
-    }
-  }
-
-  function include(value) {
-    if (value < this.start)
-      return false;
-    if (this.exclusive)
-      return value < this.end;
-    return value <= this.end;
-  }
-
-  return {
-    initialize: initialize,
-    _each:      _each,
-    include:    include
-  };
-})());
-
-
-
-var Ajax = {
-  getTransport: function() {
-    return Try.these(
-      function() {return new XMLHttpRequest()},
-      function() {return new ActiveXObject('Msxml2.XMLHTTP')},
-      function() {return new ActiveXObject('Microsoft.XMLHTTP')}
-    ) || false;
-  },
-
-  activeRequestCount: 0
-};
-
-Ajax.Responders = {
-  responders: [],
-
-  _each: function(iterator) {
-    this.responders._each(iterator);
-  },
-
-  register: function(responder) {
-    if (!this.include(responder))
-      this.responders.push(responder);
-  },
-
-  unregister: function(responder) {
-    this.responders = this.responders.without(responder);
-  },
-
-  dispatch: function(callback, request, transport, json) {
-    this.each(function(responder) {
-      if (Object.isFunction(responder[callback])) {
-        try {
-          responder[callback].apply(responder, [request, transport, json]);
-        } catch (e) { }
-      }
-    });
-  }
-};
-
-Object.extend(Ajax.Responders, Enumerable);
-
-Ajax.Responders.register({
-  onCreate:   function() { Ajax.activeRequestCount++ },
-  onComplete: function() { Ajax.activeRequestCount-- }
-});
-Ajax.Base = Class.create({
-  initialize: function(options) {
-    this.options = {
-      method:       'post',
-      asynchronous: true,
-      contentType:  'application/x-www-form-urlencoded',
-      encoding:     'UTF-8',
-      parameters:   '',
-      evalJSON:     true,
-      evalJS:       true
-    };
-    Object.extend(this.options, options || { });
-
-    this.options.method = this.options.method.toLowerCase();
-
-    if (Object.isString(this.options.parameters))
-      this.options.parameters = this.options.parameters.toQueryParams();
-    else if (Object.isHash(this.options.parameters))
-      this.options.parameters = this.options.parameters.toObject();
-  }
-});
-Ajax.Request = Class.create(Ajax.Base, {
-  _complete: false,
-
-  initialize: function($super, url, options) {
-    $super(options);
-    this.transport = Ajax.getTransport();
-    this.request(url);
-  },
-
-  request: function(url) {
-    this.url = url;
-    this.method = this.options.method;
-    var params = Object.clone(this.options.parameters);
-
-    if (!['get', 'post'].include(this.method)) {
-      params['_method'] = this.method;
-      this.method = 'post';
-    }
-
-    this.parameters = params;
-
-    if (params = Object.toQueryString(params)) {
-      if (this.method == 'get')
-        this.url += (this.url.include('?') ? '&' : '?') + params;
-      else if (/Konqueror|Safari|KHTML/.test(navigator.userAgent))
-        params += '&_=';
-    }
-
-    try {
-      var response = new Ajax.Response(this);
-      if (this.options.onCreate) this.options.onCreate(response);
-      Ajax.Responders.dispatch('onCreate', this, response);
-
-      this.transport.open(this.method.toUpperCase(), this.url,
-        this.options.asynchronous);
-
-      if (this.options.asynchronous) this.respondToReadyState.bind(this).defer(1);
-
-      this.transport.onreadystatechange = this.onStateChange.bind(this);
-      this.setRequestHeaders();
-
-      this.body = this.method == 'post' ? (this.options.postBody || params) : null;
-      this.transport.send(this.body);
-
-      /* Force Firefox to handle ready state 4 for synchronous requests */
-      if (!this.options.asynchronous && this.transport.overrideMimeType)
-        this.onStateChange();
-
-    }
-    catch (e) {
-      this.dispatchException(e);
-    }
-  },
-
-  onStateChange: function() {
-    var readyState = this.transport.readyState;
-    if (readyState > 1 && !((readyState == 4) && this._complete))
-      this.respondToReadyState(this.transport.readyState);
-  },
-
-  setRequestHeaders: function() {
-    var headers = {
-      'X-Requested-With': 'XMLHttpRequest',
-      'X-Prototype-Version': Prototype.Version,
-      'Accept': 'text/javascript, text/html, application/xml, text/xml, */*'
-    };
-
-    if (this.method == 'post') {
-      headers['Content-type'] = this.options.contentType +
-        (this.options.encoding ? '; charset=' + this.options.encoding : '');
-
-      /* Force "Connection: close" for older Mozilla browsers to work
-       * around a bug where XMLHttpRequest sends an incorrect
-       * Content-length header. See Mozilla Bugzilla #246651.
-       */
-      if (this.transport.overrideMimeType &&
-          (navigator.userAgent.match(/Gecko\/(\d{4})/) || [0,2005])[1] < 2005)
-            headers['Connection'] = 'close';
-    }
-
-    if (typeof this.options.requestHeaders == 'object') {
-      var extras = this.options.requestHeaders;
-
-      if (Object.isFunction(extras.push))
-        for (var i = 0, length = extras.length; i < length; i += 2)
-          headers[extras[i]] = extras[i+1];
-      else
-        $H(extras).each(function(pair) { headers[pair.key] = pair.value });
-    }
-
-    for (var name in headers)
-      this.transport.setRequestHeader(name, headers[name]);
-  },
-
-  success: function() {
-    var status = this.getStatus();
-    return !status || (status >= 200 && status < 300);
-  },
-
-  getStatus: function() {
-    try {
-      return this.transport.status || 0;
-    } catch (e) { return 0 }
-  },
-
-  respondToReadyState: function(readyState) {
-    var state = Ajax.Request.Events[readyState], response = new Ajax.Response(this);
-
-    if (state == 'Complete') {
-      try {
-        this._complete = true;
-        (this.options['on' + response.status]
-         || this.options['on' + (this.success() ? 'Success' : 'Failure')]
-         || Prototype.emptyFunction)(response, response.headerJSON);
-      } catch (e) {
-        this.dispatchException(e);
-      }
-
-      var contentType = response.getHeader('Content-type');
-      if (this.options.evalJS == 'force'
-          || (this.options.evalJS && this.isSameOrigin() && contentType
-          && contentType.match(/^\s*(text|application)\/(x-)?(java|ecma)script(;.*)?\s*$/i)))
-        this.evalResponse();
-    }
-
-    try {
-      (this.options['on' + state] || Prototype.emptyFunction)(response, response.headerJSON);
-      Ajax.Responders.dispatch('on' + state, this, response, response.headerJSON);
-    } catch (e) {
-      this.dispatchException(e);
-    }
-
-    if (state == 'Complete') {
-      this.transport.onreadystatechange = Prototype.emptyFunction;
-    }
-  },
-
-  isSameOrigin: function() {
-    var m = this.url.match(/^\s*https?:\/\/[^\/]*/);
-    return !m || (m[0] == '#{protocol}//#{domain}#{port}'.interpolate({
-      protocol: location.protocol,
-      domain: document.domain,
-      port: location.port ? ':' + location.port : ''
-    }));
-  },
-
-  getHeader: function(name) {
-    try {
-      return this.transport.getResponseHeader(name) || null;
-    } catch (e) { return null; }
-  },
-
-  evalResponse: function() {
-    try {
-      return eval((this.transport.responseText || '').unfilterJSON());
-    } catch (e) {
-      this.dispatchException(e);
-    }
-  },
-
-  dispatchException: function(exception) {
-    (this.options.onException || Prototype.emptyFunction)(this, exception);
-    Ajax.Responders.dispatch('onException', this, exception);
-  }
-});
-
-Ajax.Request.Events =
-  ['Uninitialized', 'Loading', 'Loaded', 'Interactive', 'Complete'];
-
-
-
-
-
-
-
-
-Ajax.Response = Class.create({
-  initialize: function(request){
-    this.request = request;
-    var transport  = this.transport  = request.transport,
-        readyState = this.readyState = transport.readyState;
-
-    if((readyState > 2 && !Prototype.Browser.IE) || readyState == 4) {
-      this.status       = this.getStatus();
-      this.statusText   = this.getStatusText();
-      this.responseText = String.interpret(transport.responseText);
-      this.headerJSON   = this._getHeaderJSON();
-    }
-
-    if(readyState == 4) {
-      var xml = transport.responseXML;
-      this.responseXML  = Object.isUndefined(xml) ? null : xml;
-      this.responseJSON = this._getResponseJSON();
-    }
-  },
-
-  status:      0,
-
-  statusText: '',
-
-  getStatus: Ajax.Request.prototype.getStatus,
-
-  getStatusText: function() {
-    try {
-      return this.transport.statusText || '';
-    } catch (e) { return '' }
-  },
-
-  getHeader: Ajax.Request.prototype.getHeader,
-
-  getAllHeaders: function() {
-    try {
-      return this.getAllResponseHeaders();
-    } catch (e) { return null }
-  },
-
-  getResponseHeader: function(name) {
-    return this.transport.getResponseHeader(name);
-  },
-
-  getAllResponseHeaders: function() {
-    return this.transport.getAllResponseHeaders();
-  },
-
-  _getHeaderJSON: function() {
-    var json = this.getHeader('X-JSON');
-    if (!json) return null;
-    json = decodeURIComponent(escape(json));
-    try {
-      return json.evalJSON(this.request.options.sanitizeJSON ||
-        !this.request.isSameOrigin());
-    } catch (e) {
-      this.request.dispatchException(e);
-    }
-  },
-
-  _getResponseJSON: function() {
-    var options = this.request.options;
-    if (!options.evalJSON || (options.evalJSON != 'force' &&
-      !(this.getHeader('Content-type') || '').include('application/json')) ||
-        this.responseText.blank())
-          return null;
-    try {
-      return this.responseText.evalJSON(options.sanitizeJSON ||
-        !this.request.isSameOrigin());
-    } catch (e) {
-      this.request.dispatchException(e);
-    }
-  }
-});
-
-Ajax.Updater = Class.create(Ajax.Request, {
-  initialize: function($super, container, url, options) {
-    this.container = {
-      success: (container.success || container),
-      failure: (container.failure || (container.success ? null : container))
-    };
-
-    options = Object.clone(options);
-    var onComplete = options.onComplete;
-    options.onComplete = (function(response, json) {
-      this.updateContent(response.responseText);
-      if (Object.isFunction(onComplete)) onComplete(response, json);
-    }).bind(this);
-
-    $super(url, options);
-  },
-
-  updateContent: function(responseText) {
-    var receiver = this.container[this.success() ? 'success' : 'failure'],
-        options = this.options;
-
-    if (!options.evalScripts) responseText = responseText.stripScripts();
-
-    if (receiver = $(receiver)) {
-      if (options.insertion) {
-        if (Object.isString(options.insertion)) {
-          var insertion = { }; insertion[options.insertion] = responseText;
-          receiver.insert(insertion);
-        }
-        else options.insertion(receiver, responseText);
-      }
-      else receiver.update(responseText);
-    }
-  }
-});
-
-Ajax.PeriodicalUpdater = Class.create(Ajax.Base, {
-  initialize: function($super, container, url, options) {
-    $super(options);
-    this.onComplete = this.options.onComplete;
-
-    this.frequency = (this.options.frequency || 2);
-    this.decay = (this.options.decay || 1);
-
-    this.updater = { };
-    this.container = container;
-    this.url = url;
-
-    this.start();
-  },
-
-  start: function() {
-    this.options.onComplete = this.updateComplete.bind(this);
-    this.onTimerEvent();
-  },
-
-  stop: function() {
-    this.updater.options.onComplete = undefined;
-    clearTimeout(this.timer);
-    (this.onComplete || Prototype.emptyFunction).apply(this, arguments);
-  },
-
-  updateComplete: function(response) {
-    if (this.options.decay) {
-      this.decay = (response.responseText == this.lastText ?
-        this.decay * this.options.decay : 1);
-
-      this.lastText = response.responseText;
-    }
-    this.timer = this.onTimerEvent.bind(this).delay(this.decay * this.frequency);
-  },
-
-  onTimerEvent: function() {
-    this.updater = new Ajax.Updater(this.container, this.url, this.options);
-  }
-});
-
-
-
-function $(element) {
-  if (arguments.length > 1) {
-    for (var i = 0, elements = [], length = arguments.length; i < length; i++)
-      elements.push($(arguments[i]));
-    return elements;
-  }
-  if (Object.isString(element))
-    element = document.getElementById(element);
-  return Element.extend(element);
-}
-
-if (Prototype.BrowserFeatures.XPath) {
-  document._getElementsByXPath = function(expression, parentElement) {
-    var results = [];
-    var query = document.evaluate(expression, $(parentElement) || document,
-      null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);
-    for (var i = 0, length = query.snapshotLength; i < length; i++)
-      results.push(Element.extend(query.snapshotItem(i)));
-    return results;
-  };
-}
-
-/*--------------------------------------------------------------------------*/
-
-if (!window.Node) var Node = { };
-
-if (!Node.ELEMENT_NODE) {
-  Object.extend(Node, {
-    ELEMENT_NODE: 1,
-    ATTRIBUTE_NODE: 2,
-    TEXT_NODE: 3,
-    CDATA_SECTION_NODE: 4,
-    ENTITY_REFERENCE_NODE: 5,
-    ENTITY_NODE: 6,
-    PROCESSING_INSTRUCTION_NODE: 7,
-    COMMENT_NODE: 8,
-    DOCUMENT_NODE: 9,
-    DOCUMENT_TYPE_NODE: 10,
-    DOCUMENT_FRAGMENT_NODE: 11,
-    NOTATION_NODE: 12
-  });
-}
-
-
-(function(global) {
-
-  var SETATTRIBUTE_IGNORES_NAME = (function(){
-    var elForm = document.createElement("form");
-    var elInput = document.createElement("input");
-    var root = document.documentElement;
-    elInput.setAttribute("name", "test");
-    elForm.appendChild(elInput);
-    root.appendChild(elForm);
-    var isBuggy = elForm.elements
-      ? (typeof elForm.elements.test == "undefined")
-      : null;
-    root.removeChild(elForm);
-    elForm = elInput = null;
-    return isBuggy;
-  })();
-
-  var element = global.Element;
-  global.Element = function(tagName, attributes) {
-    attributes = attributes || { };
-    tagName = tagName.toLowerCase();
-    var cache = Element.cache;
-    if (SETATTRIBUTE_IGNORES_NAME && attributes.name) {
-      tagName = '<' + tagName + ' name="' + attributes.name + '">';
-      delete attributes.name;
-      return Element.writeAttribute(document.createElement(tagName), attributes);
-    }
-    if (!cache[tagName]) cache[tagName] = Element.extend(document.createElement(tagName));
-    return Element.writeAttribute(cache[tagName].cloneNode(false), attributes);
-  };
-  Object.extend(global.Element, element || { });
-  if (element) global.Element.prototype = element.prototype;
-})(this);
-
-Element.cache = { };
-Element.idCounter = 1;
-
-Element.Methods = {
-  visible: function(element) {
-    return $(element).style.display != 'none';
-  },
-
-  toggle: function(element) {
-    element = $(element);
-    Element[Element.visible(element) ? 'hide' : 'show'](element);
-    return element;
-  },
-
-
-  hide: function(element) {
-    element = $(element);
-    element.style.display = 'none';
-    return element;
-  },
-
-  show: function(element) {
-    element = $(element);
-    element.style.display = '';
-    return element;
-  },
-
-  remove: function(element) {
-    element = $(element);
-    element.parentNode.removeChild(element);
-    return element;
-  },
-
-  update: (function(){
-
-    var SELECT_ELEMENT_INNERHTML_BUGGY = (function(){
-      var el = document.createElement("select"),
-          isBuggy = true;
-      el.innerHTML = "<option value=\"test\">test</option>";
-      if (el.options && el.options[0]) {
-        isBuggy = el.options[0].nodeName.toUpperCase() !== "OPTION";
-      }
-      el = null;
-      return isBuggy;
-    })();
-
-    var TABLE_ELEMENT_INNERHTML_BUGGY = (function(){
-      try {
-        var el = document.createElement("table");
-        if (el && el.tBodies) {
-          el.innerHTML = "<tbody><tr><td>test</td></tr></tbody>";
-          var isBuggy = typeof el.tBodies[0] == "undefined";
-          el = null;
-          return isBuggy;
-        }
-      } catch (e) {
-        return true;
-      }
-    })();
-
-    var SCRIPT_ELEMENT_REJECTS_TEXTNODE_APPENDING = (function () {
-      var s = document.createElement("script"),
-          isBuggy = false;
-      try {
-        s.appendChild(document.createTextNode(""));
-        isBuggy = !s.firstChild ||
-          s.firstChild && s.firstChild.nodeType !== 3;
-      } catch (e) {
-        isBuggy = true;
-      }
-      s = null;
-      return isBuggy;
-    })();
-
-    function update(element, content) {
-      element = $(element);
-
-      if (content && content.toElement)
-        content = content.toElement();
-
-      if (Object.isElement(content))
-        return element.update().insert(content);
-
-      content = Object.toHTML(content);
-
-      var tagName = element.tagName.toUpperCase();
-
-      if (tagName === 'SCRIPT' && SCRIPT_ELEMENT_REJECTS_TEXTNODE_APPENDING) {
-        element.text = content;
-        return element;
-      }
-
-      if (SELECT_ELEMENT_INNERHTML_BUGGY || TABLE_ELEMENT_INNERHTML_BUGGY) {
-        if (tagName in Element._insertionTranslations.tags) {
-          while (element.firstChild) {
-            element.removeChild(element.firstChild);
-          }
-          Element._getContentFromAnonymousElement(tagName, content.stripScripts())
-            .each(function(node) {
-              element.appendChild(node)
-            });
-        }
-        else {
-          element.innerHTML = content.stripScripts();
-        }
-      }
-      else {
-        element.innerHTML = content.stripScripts();
-      }
-
-      content.evalScripts.bind(content).defer();
-      return element;
-    }
-
-    return update;
-  })(),
-
-  replace: function(element, content) {
-    element = $(element);
-    if (content && content.toElement) content = content.toElement();
-    else if (!Object.isElement(content)) {
-      content = Object.toHTML(content);
-      var range = element.ownerDocument.createRange();
-      range.selectNode(element);
-      content.evalScripts.bind(content).defer();
-      content = range.createContextualFragment(content.stripScripts());
-    }
-    element.parentNode.replaceChild(content, element);
-    return element;
-  },
-
-  insert: function(element, insertions) {
-    element = $(element);
-
-    if (Object.isString(insertions) || Object.isNumber(insertions) ||
-        Object.isElement(insertions) || (insertions && (insertions.toElement || insertions.toHTML)))
-          insertions = {bottom:insertions};
-
-    var content, insert, tagName, childNodes;
-
-    for (var position in insertions) {
-      content  = insertions[position];
-      position = position.toLowerCase();
-      insert = Element._insertionTranslations[position];
-
-      if (content && content.toElement) content = content.toElement();
-      if (Object.isElement(content)) {
-        insert(element, content);
-        continue;
-      }
-
-      content = Object.toHTML(content);
-
-      tagName = ((position == 'before' || position == 'after')
-        ? element.parentNode : element).tagName.toUpperCase();
-
-      childNodes = Element._getContentFromAnonymousElement(tagName, content.stripScripts());
-
-      if (position == 'top' || position == 'after') childNodes.reverse();
-      childNodes.each(insert.curry(element));
-
-      content.evalScripts.bind(content).defer();
-    }
-
-    return element;
-  },
-
-  wrap: function(element, wrapper, attributes) {
-    element = $(element);
-    if (Object.isElement(wrapper))
-      $(wrapper).writeAttribute(attributes || { });
-    else if (Object.isString(wrapper)) wrapper = new Element(wrapper, attributes);
-    else wrapper = new Element('div', wrapper);
-    if (element.parentNode)
-      element.parentNode.replaceChild(wrapper, element);
-    wrapper.appendChild(element);
-    return wrapper;
-  },
-
-  inspect: function(element) {
-    element = $(element);
-    var result = '<' + element.tagName.toLowerCase();
-    $H({'id': 'id', 'className': 'class'}).each(function(pair) {
-      var property = pair.first(), attribute = pair.last();
-      var value = (element[property] || '').toString();
-      if (value) result += ' ' + attribute + '=' + value.inspect(true);
-    });
-    return result + '>';
-  },
-
-  recursivelyCollect: function(element, property) {
-    element = $(element);
-    var elements = [];
-    while (element = element[property])
-      if (element.nodeType == 1)
-        elements.push(Element.extend(element));
-    return elements;
-  },
-
-  ancestors: function(element) {
-    return Element.recursivelyCollect(element, 'parentNode');
-  },
-
-  descendants: function(element) {
-    return Element.select(element, "*");
-  },
-
-  firstDescendant: function(element) {
-    element = $(element).firstChild;
-    while (element && element.nodeType != 1) element = element.nextSibling;
-    return $(element);
-  },
-
-  immediateDescendants: function(element) {
-    if (!(element = $(element).firstChild)) return [];
-    while (element && element.nodeType != 1) element = element.nextSibling;
-    if (element) return [element].concat($(element).nextSiblings());
-    return [];
-  },
-
-  previousSiblings: function(element) {
-    return Element.recursivelyCollect(element, 'previousSibling');
-  },
-
-  nextSiblings: function(element) {
-    return Element.recursivelyCollect(element, 'nextSibling');
-  },
-
-  siblings: function(element) {
-    element = $(element);
-    return Element.previousSiblings(element).reverse()
-      .concat(Element.nextSiblings(element));
-  },
-
-  match: function(element, selector) {
-    if (Object.isString(selector))
-      selector = new Selector(selector);
-    return selector.match($(element));
-  },
-
-  up: function(element, expression, index) {
-    element = $(element);
-    if (arguments.length == 1) return $(element.parentNode);
-    var ancestors = Element.ancestors(element);
-    return Object.isNumber(expression) ? ancestors[expression] :
-      Selector.findElement(ancestors, expression, index);
-  },
-
-  down: function(element, expression, index) {
-    element = $(element);
-    if (arguments.length == 1) return Element.firstDescendant(element);
-    return Object.isNumber(expression) ? Element.descendants(element)[expression] :
-      Element.select(element, expression)[index || 0];
-  },
-
-  previous: function(element, expression, index) {
-    element = $(element);
-    if (arguments.length == 1) return $(Selector.handlers.previousElementSibling(element));
-    var previousSiblings = Element.previousSiblings(element);
-    return Object.isNumber(expression) ? previousSiblings[expression] :
-      Selector.findElement(previousSiblings, expression, index);
-  },
-
-  next: function(element, expression, index) {
-    element = $(element);
-    if (arguments.length == 1) return $(Selector.handlers.nextElementSibling(element));
-    var nextSiblings = Element.nextSiblings(element);
-    return Object.isNumber(expression) ? nextSiblings[expression] :
-      Selector.findElement(nextSiblings, expression, index);
-  },
-
-
-  select: function(element) {
-    var args = Array.prototype.slice.call(arguments, 1);
-    return Selector.findChildElements(element, args);
-  },
-
-  adjacent: function(element) {
-    var args = Array.prototype.slice.call(arguments, 1);
-    return Selector.findChildElements(element.parentNode, args).without(element);
-  },
-
-  identify: function(element) {
-    element = $(element);
-    var id = Element.readAttribute(element, 'id');
-    if (id) return id;
-    do { id = 'anonymous_element_' + Element.idCounter++ } while ($(id));
-    Element.writeAttribute(element, 'id', id);
-    return id;
-  },
-
-  readAttribute: function(element, name) {
-    element = $(element);
-    if (Prototype.Browser.IE) {
-      var t = Element._attributeTranslations.read;
-      if (t.values[name]) return t.values[name](element, name);
-      if (t.names[name]) name = t.names[name];
-      if (name.include(':')) {
-        return (!element.attributes || !element.attributes[name]) ? null :
-         element.attributes[name].value;
-      }
-    }
-    return element.getAttribute(name);
-  },
-
-  writeAttribute: function(element, name, value) {
-    element = $(element);
-    var attributes = { }, t = Element._attributeTranslations.write;
-
-    if (typeof name == 'object') attributes = name;
-    else attributes[name] = Object.isUndefined(value) ? true : value;
-
-    for (var attr in attributes) {
-      name = t.names[attr] || attr;
-      value = attributes[attr];
-      if (t.values[attr]) name = t.values[attr](element, value);
-      if (value === false || value === null)
-        element.removeAttribute(name);
-      else if (value === true)
-        element.setAttribute(name, name);
-      else element.setAttribute(name, value);
-    }
-    return element;
-  },
-
-  getHeight: function(element) {
-    return Element.getDimensions(element).height;
-  },
-
-  getWidth: function(element) {
-    return Element.getDimensions(element).width;
-  },
-
-  classNames: function(element) {
-    return new Element.ClassNames(element);
-  },
-
-  hasClassName: function(element, className) {
-    if (!(element = $(element))) return;
-    var elementClassName = element.className;
-    return (elementClassName.length > 0 && (elementClassName == className ||
-      new RegExp("(^|\\s)" + className + "(\\s|$)").test(elementClassName)));
-  },
-
-  addClassName: function(element, className) {
-    if (!(element = $(element))) return;
-    if (!Element.hasClassName(element, className))
-      element.className += (element.className ? ' ' : '') + className;
-    return element;
-  },
-
-  removeClassName: function(element, className) {
-    if (!(element = $(element))) return;
-    element.className = element.className.replace(
-      new RegExp("(^|\\s+)" + className + "(\\s+|$)"), ' ').strip();
-    return element;
-  },
-
-  toggleClassName: function(element, className) {
-    if (!(element = $(element))) return;
-    return Element[Element.hasClassName(element, className) ?
-      'removeClassName' : 'addClassName'](element, className);
-  },
-
-  cleanWhitespace: function(element) {
-    element = $(element);
-    var node = element.firstChild;
-    while (node) {
-      var nextNode = node.nextSibling;
-      if (node.nodeType == 3 && !/\S/.test(node.nodeValue))
-        element.removeChild(node);
-      node = nextNode;
-    }
-    return element;
-  },
-
-  empty: function(element) {
-    return $(element).innerHTML.blank();
-  },
-
-  descendantOf: function(element, ancestor) {
-    element = $(element), ancestor = $(ancestor);
-
-    if (element.compareDocumentPosition)
-      return (element.compareDocumentPosition(ancestor) & 8) === 8;
-
-    if (ancestor.contains)
-      return ancestor.contains(element) && ancestor !== element;
-
-    while (element = element.parentNode)
-      if (element == ancestor) return true;
-
-    return false;
-  },
-
-  scrollTo: function(element) {
-    element = $(element);
-    var pos = Element.cumulativeOffset(element);
-    window.scrollTo(pos[0], pos[1]);
-    return element;
-  },
-
-  getStyle: function(element, style) {
-    element = $(element);
-    style = style == 'float' ? 'cssFloat' : style.camelize();
-    var value = element.style[style];
-    if (!value || value == 'auto') {
-      var css = document.defaultView.getComputedStyle(element, null);
-      value = css ? css[style] : null;
-    }
-    if (style == 'opacity') return value ? parseFloat(value) : 1.0;
-    return value == 'auto' ? null : value;
-  },
-
-  getOpacity: function(element) {
-    return $(element).getStyle('opacity');
-  },
-
-  setStyle: function(element, styles) {
-    element = $(element);
-    var elementStyle = element.style, match;
-    if (Object.isString(styles)) {
-      element.style.cssText += ';' + styles;
-      return styles.include('opacity') ?
-        element.setOpacity(styles.match(/opacity:\s*(\d?\.?\d*)/)[1]) : element;
-    }
-    for (var property in styles)
-      if (property == 'opacity') element.setOpacity(styles[property]);
-      else
-        elementStyle[(property == 'float' || property == 'cssFloat') ?
-          (Object.isUndefined(elementStyle.styleFloat) ? 'cssFloat' : 'styleFloat') :
-            property] = styles[property];
-
-    return element;
-  },
-
-  setOpacity: function(element, value) {
-    element = $(element);
-    element.style.opacity = (value == 1 || value === '') ? '' :
-      (value < 0.00001) ? 0 : value;
-    return element;
-  },
-
-  getDimensions: function(element) {
-    element = $(element);
-    var display = Element.getStyle(element, 'display');
-    if (display != 'none' && display != null) // Safari bug
-      return {width: element.offsetWidth, height: element.offsetHeight};
-
-    var els = element.style;
-    var originalVisibility = els.visibility;
-    var originalPosition = els.position;
-    var originalDisplay = els.display;
-    els.visibility = 'hidden';
-    if (originalPosition != 'fixed') // Switching fixed to absolute causes issues in Safari
-      els.position = 'absolute';
-    els.display = 'block';
-    var originalWidth = element.clientWidth;
-    var originalHeight = element.clientHeight;
-    els.display = originalDisplay;
-    els.position = originalPosition;
-    els.visibility = originalVisibility;
-    return {width: originalWidth, height: originalHeight};
-  },
-
-  makePositioned: function(element) {
-    element = $(element);
-    var pos = Element.getStyle(element, 'position');
-    if (pos == 'static' || !pos) {
-      element._madePositioned = true;
-      element.style.position = 'relative';
-      if (Prototype.Browser.Opera) {
-        element.style.top = 0;
-        element.style.left = 0;
-      }
-    }
-    return element;
-  },
-
-  undoPositioned: function(element) {
-    element = $(element);
-    if (element._madePositioned) {
-      element._madePositioned = undefined;
-      element.style.position =
-        element.style.top =
-        element.style.left =
-        element.style.bottom =
-        element.style.right = '';
-    }
-    return element;
-  },
-
-  makeClipping: function(element) {
-    element = $(element);
-    if (element._overflow) return element;
-    element._overflow = Element.getStyle(element, 'overflow') || 'auto';
-    if (element._overflow !== 'hidden')
-      element.style.overflow = 'hidden';
-    return element;
-  },
-
-  undoClipping: function(element) {
-    element = $(element);
-    if (!element._overflow) return element;
-    element.style.overflow = element._overflow == 'auto' ? '' : element._overflow;
-    element._overflow = null;
-    return element;
-  },
-
-  cumulativeOffset: function(element) {
-    var valueT = 0, valueL = 0;
-    do {
-      valueT += element.offsetTop  || 0;
-      valueL += element.offsetLeft || 0;
-      element = element.offsetParent;
-    } while (element);
-    return Element._returnOffset(valueL, valueT);
-  },
-
-  positionedOffset: function(element) {
-    var valueT = 0, valueL = 0;
-    do {
-      valueT += element.offsetTop  || 0;
-      valueL += element.offsetLeft || 0;
-      element = element.offsetParent;
-      if (element) {
-        if (element.tagName.toUpperCase() == 'BODY') break;
-        var p = Element.getStyle(element, 'position');
-        if (p !== 'static') break;
-      }
-    } while (element);
-    return Element._returnOffset(valueL, valueT);
-  },
-
-  absolutize: function(element) {
-    element = $(element);
-    if (Element.getStyle(element, 'position') == 'absolute') return element;
-
-    var offsets = Element.positionedOffset(element);
-    var top     = offsets[1];
-    var left    = offsets[0];
-    var width   = element.clientWidth;
-    var height  = element.clientHeight;
-
-    element._originalLeft   = left - parseFloat(element.style.left  || 0);
-    element._originalTop    = top  - parseFloat(element.style.top || 0);
-    element._originalWidth  = element.style.width;
-    element._originalHeight = element.style.height;
-
-    element.style.position = 'absolute';
-    element.style.top    = top + 'px';
-    element.style.left   = left + 'px';
-    element.style.width  = width + 'px';
-    element.style.height = height + 'px';
-    return element;
-  },
-
-  relativize: function(element) {
-    element = $(element);
-    if (Element.getStyle(element, 'position') == 'relative') return element;
-
-    element.style.position = 'relative';
-    var top  = parseFloat(element.style.top  || 0) - (element._originalTop || 0);
-    var left = parseFloat(element.style.left || 0) - (element._originalLeft || 0);
-
-    element.style.top    = top + 'px';
-    element.style.left   = left + 'px';
-    element.style.height = element._originalHeight;
-    element.style.width  = element._originalWidth;
-    return element;
-  },
-
-  cumulativeScrollOffset: function(element) {
-    var valueT = 0, valueL = 0;
-    do {
-      valueT += element.scrollTop  || 0;
-      valueL += element.scrollLeft || 0;
-      element = element.parentNode;
-    } while (element);
-    return Element._returnOffset(valueL, valueT);
-  },
-
-  getOffsetParent: function(element) {
-    if (element.offsetParent) return $(element.offsetParent);
-    if (element == document.body) return $(element);
-
-    while ((element = element.parentNode) && element != document.body)
-      if (Element.getStyle(element, 'position') != 'static')
-        return $(element);
-
-    return $(document.body);
-  },
-
-  viewportOffset: function(forElement) {
-    var valueT = 0, valueL = 0;
-
-    var element = forElement;
-    do {
-      valueT += element.offsetTop  || 0;
-      valueL += element.offsetLeft || 0;
-
-      if (element.offsetParent == document.body &&
-        Element.getStyle(element, 'position') == 'absolute') break;
-
-    } while (element = element.offsetParent);
-
-    element = forElement;
-    do {
-      if (!Prototype.Browser.Opera || (element.tagName && (element.tagName.toUpperCase() == 'BODY'))) {
-        valueT -= element.scrollTop  || 0;
-        valueL -= element.scrollLeft || 0;
-      }
-    } while (element = element.parentNode);
-
-    return Element._returnOffset(valueL, valueT);
-  },
-
-  clonePosition: function(element, source) {
-    var options = Object.extend({
-      setLeft:    true,
-      setTop:     true,
-      setWidth:   true,
-      setHeight:  true,
-      offsetTop:  0,
-      offsetLeft: 0
-    }, arguments[2] || { });
-
-    source = $(source);
-    var p = Element.viewportOffset(source);
-
-    element = $(element);
-    var delta = [0, 0];
-    var parent = null;
-    if (Element.getStyle(element, 'position') == 'absolute') {
-      parent = Element.getOffsetParent(element);
-      delta = Element.viewportOffset(parent);
-    }
-
-    if (parent == document.body) {
-      delta[0] -= document.body.offsetLeft;
-      delta[1] -= document.body.offsetTop;
-    }
-
-    if (options.setLeft)   element.style.left  = (p[0] - delta[0] + options.offsetLeft) + 'px';
-    if (options.setTop)    element.style.top   = (p[1] - delta[1] + options.offsetTop) + 'px';
-    if (options.setWidth)  element.style.width = source.offsetWidth + 'px';
-    if (options.setHeight) element.style.height = source.offsetHeight + 'px';
-    return element;
-  }
-};
-
-Object.extend(Element.Methods, {
-  getElementsBySelector: Element.Methods.select,
-
-  childElements: Element.Methods.immediateDescendants
-});
-
-Element._attributeTranslations = {
-  write: {
-    names: {
-      className: 'class',
-      htmlFor:   'for'
-    },
-    values: { }
-  }
-};
-
-if (Prototype.Browser.Opera) {
-  Element.Methods.getStyle = Element.Methods.getStyle.wrap(
-    function(proceed, element, style) {
-      switch (style) {
-        case 'left': case 'top': case 'right': case 'bottom':
-          if (proceed(element, 'position') === 'static') return null;
-        case 'height': case 'width':
-          if (!Element.visible(element)) return null;
-
-          var dim = parseInt(proceed(element, style), 10);
-
-          if (dim !== element['offset' + style.capitalize()])
-            return dim + 'px';
-
-          var properties;
-          if (style === 'height') {
-            properties = ['border-top-width', 'padding-top',
-             'padding-bottom', 'border-bottom-width'];
-          }
-          else {
-            properties = ['border-left-width', 'padding-left',
-             'padding-right', 'border-right-width'];
-          }
-          return properties.inject(dim, function(memo, property) {
-            var val = proceed(element, property);
-            return val === null ? memo : memo - parseInt(val, 10);
-          }) + 'px';
-        default: return proceed(element, style);
-      }
-    }
-  );
-
-  Element.Methods.readAttribute = Element.Methods.readAttribute.wrap(
-    function(proceed, element, attribute) {
-      if (attribute === 'title') return element.title;
-      return proceed(element, attribute);
-    }
-  );
-}
-
-else if (Prototype.Browser.IE) {
-  Element.Methods.getOffsetParent = Element.Methods.getOffsetParent.wrap(
-    function(proceed, element) {
-      element = $(element);
-      try { element.offsetParent }
-      catch(e) { return $(document.body) }
-      var position = element.getStyle('position');
-      if (position !== 'static') return proceed(element);
-      element.setStyle({ position: 'relative' });
-      var value = proceed(element);
-      element.setStyle({ position: position });
-      return value;
-    }
-  );
-
-  $w('positionedOffset viewportOffset').each(function(method) {
-    Element.Methods[method] = Element.Methods[method].wrap(
-      function(proceed, element) {
-        element = $(element);
-        try { element.offsetParent }
-        catch(e) { return Element._returnOffset(0,0) }
-        var position = element.getStyle('position');
-        if (position !== 'static') return proceed(element);
-        var offsetParent = element.getOffsetParent();
-        if (offsetParent && offsetParent.getStyle('position') === 'fixed')
-          offsetParent.setStyle({ zoom: 1 });
-        element.setStyle({ position: 'relative' });
-        var value = proceed(element);
-        element.setStyle({ position: position });
-        return value;
-      }
-    );
-  });
-
-  Element.Methods.cumulativeOffset = Element.Methods.cumulativeOffset.wrap(
-    function(proceed, element) {
-      try { element.offsetParent }
-      catch(e) { return Element._returnOffset(0,0) }
-      return proceed(element);
-    }
-  );
-
-  Element.Methods.getStyle = function(element, style) {
-    element = $(element);
-    style = (style == 'float' || style == 'cssFloat') ? 'styleFloat' : style.camelize();
-    var value = element.style[style];
-    if (!value && element.currentStyle) value = element.currentStyle[style];
-
-    if (style == 'opacity') {
-      if (value = (element.getStyle('filter') || '').match(/alpha\(opacity=(.*)\)/))
-        if (value[1]) return parseFloat(value[1]) / 100;
-      return 1.0;
-    }
-
-    if (value == 'auto') {
-      if ((style == 'width' || style == 'height') && (element.getStyle('display') != 'none'))
-        return element['offset' + style.capitalize()] + 'px';
-      return null;
-    }
-    return value;
-  };
-
-  Element.Methods.setOpacity = function(element, value) {
-    function stripAlpha(filter){
-      return filter.replace(/alpha\([^\)]*\)/gi,'');
-    }
-    element = $(element);
-    var currentStyle = element.currentStyle;
-    if ((currentStyle && !currentStyle.hasLayout) ||
-      (!currentStyle && element.style.zoom == 'normal'))
-        element.style.zoom = 1;
-
-    var filter = element.getStyle('filter'), style = element.style;
-    if (value == 1 || value === '') {
-      (filter = stripAlpha(filter)) ?
-        style.filter = filter : style.removeAttribute('filter');
-      return element;
-    } else if (value < 0.00001) value = 0;
-    style.filter = stripAlpha(filter) +
-      'alpha(opacity=' + (value * 100) + ')';
-    return element;
-  };
-
-  Element._attributeTranslations = (function(){
-
-    var classProp = 'className';
-    var forProp = 'for';
-
-    var el = document.createElement('div');
-
-    el.setAttribute(classProp, 'x');
-
-    if (el.className !== 'x') {
-      el.setAttribute('class', 'x');
-      if (el.className === 'x') {
-        classProp = 'class';
-      }
-    }
-    el = null;
-
-    el = document.createElement('label');
-    el.setAttribute(forProp, 'x');
-    if (el.htmlFor !== 'x') {
-      el.setAttribute('htmlFor', 'x');
-      if (el.htmlFor === 'x') {
-        forProp = 'htmlFor';
-      }
-    }
-    el = null;
-
-    return {
-      read: {
-        names: {
-          'class':      classProp,
-          'className':  classProp,
-          'for':        forProp,
-          'htmlFor':    forProp
-        },
-        values: {
-          _getAttr: function(element, attribute) {
-            return element.getAttribute(attribute);
-          },
-          _getAttr2: function(element, attribute) {
-            return element.getAttribute(attribute, 2);
-          },
-          _getAttrNode: function(element, attribute) {
-            var node = element.getAttributeNode(attribute);
-            return node ? node.value : "";
-          },
-          _getEv: (function(){
-
-            var el = document.createElement('div');
-            el.onclick = Prototype.emptyFunction;
-            var value = el.getAttribute('onclick');
-            var f;
-
-            if (String(value).indexOf('{') > -1) {
-              f = function(element, attribute) {
-                attribute = element.getAttribute(attribute);
-                if (!attribute) return null;
-                attribute = attribute.toString();
-                attribute = attribute.split('{')[1];
-                attribute = attribute.split('}')[0];
-                return attribute.strip();
-              };
-            }
-            else if (value === '') {
-              f = function(element, attribute) {
-                attribute = element.getAttribute(attribute);
-                if (!attribute) return null;
-                return attribute.strip();
-              };
-            }
-            el = null;
-            return f;
-          })(),
-          _flag: function(element, attribute) {
-            return $(element).hasAttribute(attribute) ? attribute : null;
-          },
-          style: function(element) {
-            return element.style.cssText.toLowerCase();
-          },
-          title: function(element) {
-            return element.title;
-          }
-        }
-      }
-    }
-  })();
-
-  Element._attributeTranslations.write = {
-    names: Object.extend({
-      cellpadding: 'cellPadding',
-      cellspacing: 'cellSpacing'
-    }, Element._attributeTranslations.read.names),
-    values: {
-      checked: function(element, value) {
-        element.checked = !!value;
-      },
-
-      style: function(element, value) {
-        element.style.cssText = value ? value : '';
-      }
-    }
-  };
-
-  Element._attributeTranslations.has = {};
-
-  $w('colSpan rowSpan vAlign dateTime accessKey tabIndex ' +
-      'encType maxLength readOnly longDesc frameBorder').each(function(attr) {
-    Element._attributeTranslations.write.names[attr.toLowerCase()] = attr;
-    Element._attributeTranslations.has[attr.toLowerCase()] = attr;
-  });
-
-  (function(v) {
-    Object.extend(v, {
-      href:        v._getAttr2,
-      src:         v._getAttr2,
-      type:        v._getAttr,
-      action:      v._getAttrNode,
-      disabled:    v._flag,
-      checked:     v._flag,
-      readonly:    v._flag,
-      multiple:    v._flag,
-      onload:      v._getEv,
-      onunload:    v._getEv,
-      onclick:     v._getEv,
-      ondblclick:  v._getEv,
-      onmousedown: v._getEv,
-      onmouseup:   v._getEv,
-      onmouseover: v._getEv,
-      onmousemove: v._getEv,
-      onmouseout:  v._getEv,
-      onfocus:     v._getEv,
-      onblur:      v._getEv,
-      onkeypress:  v._getEv,
-      onkeydown:   v._getEv,
-      onkeyup:     v._getEv,
-      onsubmit:    v._getEv,
-      onreset:     v._getEv,
-      onselect:    v._getEv,
-      onchange:    v._getEv
-    });
-  })(Element._attributeTranslations.read.values);
-
-  if (Prototype.BrowserFeatures.ElementExtensions) {
-    (function() {
-      function _descendants(element) {
-        var nodes = element.getElementsByTagName('*'), results = [];
-        for (var i = 0, node; node = nodes[i]; i++)
-          if (node.tagName !== "!") // Filter out comment nodes.
-            results.push(node);
-        return results;
-      }
-
-      Element.Methods.down = function(element, expression, index) {
-        element = $(element);
-        if (arguments.length == 1) return element.firstDescendant();
-        return Object.isNumber(expression) ? _descendants(element)[expression] :
-          Element.select(element, expression)[index || 0];
-      }
-    })();
-  }
-
-}
-
-else if (Prototype.Browser.Gecko && /rv:1\.8\.0/.test(navigator.userAgent)) {
-  Element.Methods.setOpacity = function(element, value) {
-    element = $(element);
-    element.style.opacity = (value == 1) ? 0.999999 :
-      (value === '') ? '' : (value < 0.00001) ? 0 : value;
-    return element;
-  };
-}
-
-else if (Prototype.Browser.WebKit) {
-  Element.Methods.setOpacity = function(element, value) {
-    element = $(element);
-    element.style.opacity = (value == 1 || value === '') ? '' :
-      (value < 0.00001) ? 0 : value;
-
-    if (value == 1)
-      if(element.tagName.toUpperCase() == 'IMG' && element.width) {
-        element.width++; element.width--;
-      } else try {
-        var n = document.createTextNode(' ');
-        element.appendChild(n);
-        element.removeChild(n);
-      } catch (e) { }
-
-    return element;
-  };
-
-  Element.Methods.cumulativeOffset = function(element) {
-    var valueT = 0, valueL = 0;
-    do {
-      valueT += element.offsetTop  || 0;
-      valueL += element.offsetLeft || 0;
-      if (element.offsetParent == document.body)
-        if (Element.getStyle(element, 'position') == 'absolute') break;
-
-      element = element.offsetParent;
-    } while (element);
-
-    return Element._returnOffset(valueL, valueT);
-  };
-}
-
-if ('outerHTML' in document.documentElement) {
-  Element.Methods.replace = function(element, content) {
-    element = $(element);
-
-    if (content && content.toElement) content = content.toElement();
-    if (Object.isElement(content)) {
-      element.parentNode.replaceChild(content, element);
-      return element;
-    }
-
-    content = Object.toHTML(content);
-    var parent = element.parentNode, tagName = parent.tagName.toUpperCase();
-
-    if (Element._insertionTranslations.tags[tagName]) {
-      var nextSibling = element.next();
-      var fragments = Element._getContentFromAnonymousElement(tagName, content.stripScripts());
-      parent.removeChild(element);
-      if (nextSibling)
-        fragments.each(function(node) { parent.insertBefore(node, nextSibling) });
-      else
-        fragments.each(function(node) { parent.appendChild(node) });
-    }
-    else element.outerHTML = content.stripScripts();
-
-    content.evalScripts.bind(content).defer();
-    return element;
-  };
-}
-
-Element._returnOffset = function(l, t) {
-  var result = [l, t];
-  result.left = l;
-  result.top = t;
-  return result;
-};
-
-Element._getContentFromAnonymousElement = function(tagName, html) {
-  var div = new Element('div'), t = Element._insertionTranslations.tags[tagName];
-  if (t) {
-    div.innerHTML = t[0] + html + t[1];
-    t[2].times(function() { div = div.firstChild });
-  } else div.innerHTML = html;
-  return $A(div.childNodes);
-};
-
-Element._insertionTranslations = {
-  before: function(element, node) {
-    element.parentNode.insertBefore(node, element);
-  },
-  top: function(element, node) {
-    element.insertBefore(node, element.firstChild);
-  },
-  bottom: function(element, node) {
-    element.appendChild(node);
-  },
-  after: function(element, node) {
-    element.parentNode.insertBefore(node, element.nextSibling);
-  },
-  tags: {
-    TABLE:  ['<table>',                '</table>',                   1],
-    TBODY:  ['<table><tbody>',         '</tbody></table>',           2],
-    TR:     ['<table><tbody><tr>',     '</tr></tbody></table>',      3],
-    TD:     ['<table><tbody><tr><td>', '</td></tr></tbody></table>', 4],
-    SELECT: ['<select>',               '</select>',                  1]
-  }
-};
-
-(function() {
-  var tags = Element._insertionTranslations.tags;
-  Object.extend(tags, {
-    THEAD: tags.TBODY,
-    TFOOT: tags.TBODY,
-    TH:    tags.TD
-  });
-})();
-
-Element.Methods.Simulated = {
-  hasAttribute: function(element, attribute) {
-    attribute = Element._attributeTranslations.has[attribute] || attribute;
-    var node = $(element).getAttributeNode(attribute);
-    return !!(node && node.specified);
-  }
-};
-
-Element.Methods.ByTag = { };
-
-Object.extend(Element, Element.Methods);
-
-(function(div) {
-
-  if (!Prototype.BrowserFeatures.ElementExtensions && div['__proto__']) {
-    window.HTMLElement = { };
-    window.HTMLElement.prototype = div['__proto__'];
-    Prototype.BrowserFeatures.ElementExtensions = true;
-  }
-
-  div = null;
-
-})(document.createElement('div'))
-
-Element.extend = (function() {
-
-  function checkDeficiency(tagName) {
-    if (typeof window.Element != 'undefined') {
-      var proto = window.Element.prototype;
-      if (proto) {
-        var id = '_' + (Math.random()+'').slice(2);
-        var el = document.createElement(tagName);
-        proto[id] = 'x';
-        var isBuggy = (el[id] !== 'x');
-        delete proto[id];
-        el = null;
-        return isBuggy;
-      }
-    }
-    return false;
-  }
-
-  function extendElementWith(element, methods) {
-    for (var property in methods) {
-      var value = methods[property];
-      if (Object.isFunction(value) && !(property in element))
-        element[property] = value.methodize();
-    }
-  }
-
-  var HTMLOBJECTELEMENT_PROTOTYPE_BUGGY = checkDeficiency('object');
-
-  if (Prototype.BrowserFeatures.SpecificElementExtensions) {
-    if (HTMLOBJECTELEMENT_PROTOTYPE_BUGGY) {
-      return function(element) {
-        if (element && typeof element._extendedByPrototype == 'undefined') {
-          var t = element.tagName;
-          if (t && (/^(?:object|applet|embed)$/i.test(t))) {
-            extendElementWith(element, Element.Methods);
-            extendElementWith(element, Element.Methods.Simulated);
-            extendElementWith(element, Element.Methods.ByTag[t.toUpperCase()]);
-          }
-        }
-        return element;
-      }
-    }
-    return Prototype.K;
-  }
-
-  var Methods = { }, ByTag = Element.Methods.ByTag;
-
-  var extend = Object.extend(function(element) {
-    if (!element || typeof element._extendedByPrototype != 'undefined' ||
-        element.nodeType != 1 || element == window) return element;
-
-    var methods = Object.clone(Methods),
-        tagName = element.tagName.toUpperCase();
-
-    if (ByTag[tagName]) Object.extend(methods, ByTag[tagName]);
-
-    extendElementWith(element, methods);
-
-    element._extendedByPrototype = Prototype.emptyFunction;
-    return element;
-
-  }, {
-    refresh: function() {
-      if (!Prototype.BrowserFeatures.ElementExtensions) {
-        Object.extend(Methods, Element.Methods);
-        Object.extend(Methods, Element.Methods.Simulated);
-      }
-    }
-  });
-
-  extend.refresh();
-  return extend;
-})();
-
-Element.hasAttribute = function(element, attribute) {
-  if (element.hasAttribute) return element.hasAttribute(attribute);
-  return Element.Methods.Simulated.hasAttribute(element, attribute);
-};
-
-Element.addMethods = function(methods) {
-  var F = Prototype.BrowserFeatures, T = Element.Methods.ByTag;
-
-  if (!methods) {
-    Object.extend(Form, Form.Methods);
-    Object.extend(Form.Element, Form.Element.Methods);
-    Object.extend(Element.Methods.ByTag, {
-      "FORM":     Object.clone(Form.Methods),
-      "INPUT":    Object.clone(Form.Element.Methods),
-      "SELECT":   Object.clone(Form.Element.Methods),
-      "TEXTAREA": Object.clone(Form.Element.Methods)
-    });
-  }
-
-  if (arguments.length == 2) {
-    var tagName = methods;
-    methods = arguments[1];
-  }
-
-  if (!tagName) Object.extend(Element.Methods, methods || { });
-  else {
-    if (Object.isArray(tagName)) tagName.each(extend);
-    else extend(tagName);
-  }
-
-  function extend(tagName) {
-    tagName = tagName.toUpperCase();
-    if (!Element.Methods.ByTag[tagName])
-      Element.Methods.ByTag[tagName] = { };
-    Object.extend(Element.Methods.ByTag[tagName], methods);
-  }
-
-  function copy(methods, destination, onlyIfAbsent) {
-    onlyIfAbsent = onlyIfAbsent || false;
-    for (var property in methods) {
-      var value = methods[property];
-      if (!Object.isFunction(value)) continue;
-      if (!onlyIfAbsent || !(property in destination))
-        destination[property] = value.methodize();
-    }
-  }
-
-  function findDOMClass(tagName) {
-    var klass;
-    var trans = {
-      "OPTGROUP": "OptGroup", "TEXTAREA": "TextArea", "P": "Paragraph",
-      "FIELDSET": "FieldSet", "UL": "UList", "OL": "OList", "DL": "DList",
-      "DIR": "Directory", "H1": "Heading", "H2": "Heading", "H3": "Heading",
-      "H4": "Heading", "H5": "Heading", "H6": "Heading", "Q": "Quote",
-      "INS": "Mod", "DEL": "Mod", "A": "Anchor", "IMG": "Image", "CAPTION":
-      "TableCaption", "COL": "TableCol", "COLGROUP": "TableCol", "THEAD":
-      "TableSection", "TFOOT": "TableSection", "TBODY": "TableSection", "TR":
-      "TableRow", "TH": "TableCell", "TD": "TableCell", "FRAMESET":
-      "FrameSet", "IFRAME": "IFrame"
-    };
-    if (trans[tagName]) klass = 'HTML' + trans[tagName] + 'Element';
-    if (window[klass]) return window[klass];
-    klass = 'HTML' + tagName + 'Element';
-    if (window[klass]) return window[klass];
-    klass = 'HTML' + tagName.capitalize() + 'Element';
-    if (window[klass]) return window[klass];
-
-    var element = document.createElement(tagName);
-    var proto = element['__proto__'] || element.constructor.prototype;
-    element = null;
-    return proto;
-  }
-
-  var elementPrototype = window.HTMLElement ? HTMLElement.prototype :
-   Element.prototype;
-
-  if (F.ElementExtensions) {
-    copy(Element.Methods, elementPrototype);
-    copy(Element.Methods.Simulated, elementPrototype, true);
-  }
-
-  if (F.SpecificElementExtensions) {
-    for (var tag in Element.Methods.ByTag) {
-      var klass = findDOMClass(tag);
-      if (Object.isUndefined(klass)) continue;
-      copy(T[tag], klass.prototype);
-    }
-  }
-
-  Object.extend(Element, Element.Methods);
-  delete Element.ByTag;
-
-  if (Element.extend.refresh) Element.extend.refresh();
-  Element.cache = { };
-};
-
-
-document.viewport = {
-
-  getDimensions: function() {
-    return { width: this.getWidth(), height: this.getHeight() };
-  },
-
-  getScrollOffsets: function() {
-    return Element._returnOffset(
-      window.pageXOffset || document.documentElement.scrollLeft || document.body.scrollLeft,
-      window.pageYOffset || document.documentElement.scrollTop  || document.body.scrollTop);
-  }
-};
-
-(function(viewport) {
-  var B = Prototype.Browser, doc = document, element, property = {};
-
-  function getRootElement() {
-    if (B.WebKit && !doc.evaluate)
-      return document;
-
-    if (B.Opera && window.parseFloat(window.opera.version()) < 9.5)
-      return document.body;
-
-    return document.documentElement;
-  }
-
-  function define(D) {
-    if (!element) element = getRootElement();
-
-    property[D] = 'client' + D;
-
-    viewport['get' + D] = function() { return element[property[D]] };
-    return viewport['get' + D]();
-  }
-
-  viewport.getWidth  = define.curry('Width');
-
-  viewport.getHeight = define.curry('Height');
-})(document.viewport);
-
-
-Element.Storage = {
-  UID: 1
-};
-
-Element.addMethods({
-  getStorage: function(element) {
-    if (!(element = $(element))) return;
-
-    var uid;
-    if (element === window) {
-      uid = 0;
-    } else {
-      if (typeof element._prototypeUID === "undefined")
-        element._prototypeUID = [Element.Storage.UID++];
-      uid = element._prototypeUID[0];
-    }
-
-    if (!Element.Storage[uid])
-      Element.Storage[uid] = $H();
-
-    return Element.Storage[uid];
-  },
-
-  store: function(element, key, value) {
-    if (!(element = $(element))) return;
-
-    if (arguments.length === 2) {
-      Element.getStorage(element).update(key);
-    } else {
-      Element.getStorage(element).set(key, value);
-    }
-
-    return element;
-  },
-
-  retrieve: function(element, key, defaultValue) {
-    if (!(element = $(element))) return;
-    var hash = Element.getStorage(element), value = hash.get(key);
-
-    if (Object.isUndefined(value)) {
-      hash.set(key, defaultValue);
-      value = defaultValue;
-    }
-
-    return value;
-  },
-
-  clone: function(element, deep) {
-    if (!(element = $(element))) return;
-    var clone = element.cloneNode(deep);
-    clone._prototypeUID = void 0;
-    if (deep) {
-      var descendants = Element.select(clone, '*'),
-          i = descendants.length;
-      while (i--) {
-        descendants[i]._prototypeUID = void 0;
-      }
-    }
-    return Element.extend(clone);
-  }
-});
-/* Portions of the Selector class are derived from Jack Slocum's DomQuery,
- * part of YUI-Ext version 0.40, distributed under the terms of an MIT-style
- * license.  Please see http://www.yui-ext.com/ for more information. */
-
-var Selector = Class.create({
-  initialize: function(expression) {
-    this.expression = expression.strip();
-
-    if (this.shouldUseSelectorsAPI()) {
-      this.mode = 'selectorsAPI';
-    } else if (this.shouldUseXPath()) {
-      this.mode = 'xpath';
-      this.compileXPathMatcher();
-    } else {
-      this.mode = "normal";
-      this.compileMatcher();
-    }
-
-  },
-
-  shouldUseXPath: (function() {
-
-    var IS_DESCENDANT_SELECTOR_BUGGY = (function(){
-      var isBuggy = false;
-      if (document.evaluate && window.XPathResult) {
-        var el = document.createElement('div');
-        el.innerHTML = '<ul><li></li></ul><div><ul><li></li></ul></div>';
-
-        var xpath = ".//*[local-name()='ul' or local-name()='UL']" +
-          "//*[local-name()='li' or local-name()='LI']";
-
-        var result = document.evaluate(xpath, el, null,
-          XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null);
-
-        isBuggy = (result.snapshotLength !== 2);
-        el = null;
-      }
-      return isBuggy;
-    })();
-
-    return function() {
-      if (!Prototype.BrowserFeatures.XPath) return false;
-
-      var e = this.expression;
-
-      if (Prototype.Browser.WebKit &&
-       (e.include("-of-type") || e.include(":empty")))
-        return false;
-
-      if ((/(\[[\w-]*?:|:checked)/).test(e))
-        return false;
-
-      if (IS_DESCENDANT_SELECTOR_BUGGY) return false;
-
-      return true;
-    }
-
-  })(),
-
-  shouldUseSelectorsAPI: function() {
-    if (!Prototype.BrowserFeatures.SelectorsAPI) return false;
-
-    if (Selector.CASE_INSENSITIVE_CLASS_NAMES) return false;
-
-    if (!Selector._div) Selector._div = new Element('div');
-
-    try {
-      Selector._div.querySelector(this.expression);
-    } catch(e) {
-      return false;
-    }
-
-    return true;
-  },
-
-  compileMatcher: function() {
-    var e = this.expression, ps = Selector.patterns, h = Selector.handlers,
-        c = Selector.criteria, le, p, m, len = ps.length, name;
-
-    if (Selector._cache[e]) {
-      this.matcher = Selector._cache[e];
-      return;
-    }
-
-    this.matcher = ["this.matcher = function(root) {",
-                    "var r = root, h = Selector.handlers, c = false, n;"];
-
-    while (e && le != e && (/\S/).test(e)) {
-      le = e;
-      for (var i = 0; i<len; i++) {
-        p = ps[i].re;
-        name = ps[i].name;
-        if (m = e.match(p)) {
-          this.matcher.push(Object.isFunction(c[name]) ? c[name](m) :
-            new Template(c[name]).evaluate(m));
-          e = e.replace(m[0], '');
-          break;
-        }
-      }
-    }
-
-    this.matcher.push("return h.unique(n);\n}");
-    eval(this.matcher.join('\n'));
-    Selector._cache[this.expression] = this.matcher;
-  },
-
-  compileXPathMatcher: function() {
-    var e = this.expression, ps = Selector.patterns,
-        x = Selector.xpath, le, m, len = ps.length, name;
-
-    if (Selector._cache[e]) {
-      this.xpath = Selector._cache[e]; return;
-    }
-
-    this.matcher = ['.//*'];
-    while (e && le != e && (/\S/).test(e)) {
-      le = e;
-      for (var i = 0; i<len; i++) {
-        name = ps[i].name;
-        if (m = e.match(ps[i].re)) {
-          this.matcher.push(Object.isFunction(x[name]) ? x[name](m) :
-            new Template(x[name]).evaluate(m));
-          e = e.replace(m[0], '');
-          break;
-        }
-      }
-    }
-
-    this.xpath = this.matcher.join('');
-    Selector._cache[this.expression] = this.xpath;
-  },
-
-  findElements: function(root) {
-    root = root || document;
-    var e = this.expression, results;
-
-    switch (this.mode) {
-      case 'selectorsAPI':
-        if (root !== document) {
-          var oldId = root.id, id = $(root).identify();
-          id = id.replace(/([\.:])/g, "\\$1");
-          e = "#" + id + " " + e;
-        }
-
-        results = $A(root.querySelectorAll(e)).map(Element.extend);
-        root.id = oldId;
-
-        return results;
-      case 'xpath':
-        return document._getElementsByXPath(this.xpath, root);
-      default:
-       return this.matcher(root);
-    }
-  },
-
-  match: function(element) {
-    this.tokens = [];
-
-    var e = this.expression, ps = Selector.patterns, as = Selector.assertions;
-    var le, p, m, len = ps.length, name;
-
-    while (e && le !== e && (/\S/).test(e)) {
-      le = e;
-      for (var i = 0; i<len; i++) {
-        p = ps[i].re;
-        name = ps[i].name;
-        if (m = e.match(p)) {
-          if (as[name]) {
-            this.tokens.push([name, Object.clone(m)]);
-            e = e.replace(m[0], '');
-          } else {
-            return this.findElements(document).include(element);
-          }
-        }
-      }
-    }
-
-    var match = true, name, matches;
-    for (var i = 0, token; token = this.tokens[i]; i++) {
-      name = token[0], matches = token[1];
-      if (!Selector.assertions[name](element, matches)) {
-        match = false; break;
-      }
-    }
-
-    return match;
-  },
-
-  toString: function() {
-    return this.expression;
-  },
-
-  inspect: function() {
-    return "#<Selector:" + this.expression.inspect() + ">";
-  }
-});
-
-if (Prototype.BrowserFeatures.SelectorsAPI &&
- document.compatMode === 'BackCompat') {
-  Selector.CASE_INSENSITIVE_CLASS_NAMES = (function(){
-    var div = document.createElement('div'),
-     span = document.createElement('span');
-
-    div.id = "prototype_test_id";
-    span.className = 'Test';
-    div.appendChild(span);
-    var isIgnored = (div.querySelector('#prototype_test_id .test') !== null);
-    div = span = null;
-    return isIgnored;
-  })();
-}
-
-Object.extend(Selector, {
-  _cache: { },
-
-  xpath: {
-    descendant:   "//*",
-    child:        "/*",
-    adjacent:     "/following-sibling::*[1]",
-    laterSibling: '/following-sibling::*',
-    tagName:      function(m) {
-      if (m[1] == '*') return '';
-      return "[local-name()='" + m[1].toLowerCase() +
-             "' or local-name()='" + m[1].toUpperCase() + "']";
-    },
-    className:    "[contains(concat(' ', @class, ' '), ' #{1} ')]",
-    id:           "[@id='#{1}']",
-    attrPresence: function(m) {
-      m[1] = m[1].toLowerCase();
-      return new Template("[@#{1}]").evaluate(m);
-    },
-    attr: function(m) {
-      m[1] = m[1].toLowerCase();
-      m[3] = m[5] || m[6];
-      return new Template(Selector.xpath.operators[m[2]]).evaluate(m);
-    },
-    pseudo: function(m) {
-      var h = Selector.xpath.pseudos[m[1]];
-      if (!h) return '';
-      if (Object.isFunction(h)) return h(m);
-      return new Template(Selector.xpath.pseudos[m[1]]).evaluate(m);
-    },
-    operators: {
-      '=':  "[@#{1}='#{3}']",
-      '!=': "[@#{1}!='#{3}']",
-      '^=': "[starts-with(@#{1}, '#{3}')]",
-      '$=': "[substring(@#{1}, (string-length(@#{1}) - string-length('#{3}') + 1))='#{3}']",
-      '*=': "[contains(@#{1}, '#{3}')]",
-      '~=': "[contains(concat(' ', @#{1}, ' '), ' #{3} ')]",
-      '|=': "[contains(concat('-', @#{1}, '-'), '-#{3}-')]"
-    },
-    pseudos: {
-      'first-child': '[not(preceding-sibling::*)]',
-      'last-child':  '[not(following-sibling::*)]',
-      'only-child':  '[not(preceding-sibling::* or following-sibling::*)]',
-      'empty':       "[count(*) = 0 and (count(text()) = 0)]",
-      'checked':     "[@checked]",
-      'disabled':    "[(@disabled) and (@type!='hidden')]",
-      'enabled':     "[not(@disabled) and (@type!='hidden')]",
-      'not': function(m) {
-        var e = m[6], p = Selector.patterns,
-            x = Selector.xpath, le, v, len = p.length, name;
-
-        var exclusion = [];
-        while (e && le != e && (/\S/).test(e)) {
-          le = e;
-          for (var i = 0; i<len; i++) {
-            name = p[i].name
-            if (m = e.match(p[i].re)) {
-              v = Object.isFunction(x[name]) ? x[name](m) : new Template(x[name]).evaluate(m);
-              exclusion.push("(" + v.substring(1, v.length - 1) + ")");
-              e = e.replace(m[0], '');
-              break;
-            }
-          }
-        }
-        return "[not(" + exclusion.join(" and ") + ")]";
-      },
-      'nth-child':      function(m) {
-        return Selector.xpath.pseudos.nth("(count(./preceding-sibling::*) + 1) ", m);
-      },
-      'nth-last-child': function(m) {
-        return Selector.xpath.pseudos.nth("(count(./following-sibling::*) + 1) ", m);
-      },
-      'nth-of-type':    function(m) {
-        return Selector.xpath.pseudos.nth("position() ", m);
-      },
-      'nth-last-of-type': function(m) {
-        return Selector.xpath.pseudos.nth("(last() + 1 - position()) ", m);
-      },
-      'first-of-type':  function(m) {
-        m[6] = "1"; return Selector.xpath.pseudos['nth-of-type'](m);
-      },
-      'last-of-type':   function(m) {
-        m[6] = "1"; return Selector.xpath.pseudos['nth-last-of-type'](m);
-      },
-      'only-of-type':   function(m) {
-        var p = Selector.xpath.pseudos; return p['first-of-type'](m) + p['last-of-type'](m);
-      },
-      nth: function(fragment, m) {
-        var mm, formula = m[6], predicate;
-        if (formula == 'even') formula = '2n+0';
-        if (formula == 'odd')  formula = '2n+1';
-        if (mm = formula.match(/^(\d+)$/)) // digit only
-          return '[' + fragment + "= " + mm[1] + ']';
-        if (mm = formula.match(/^(-?\d*)?n(([+-])(\d+))?/)) { // an+b
-          if (mm[1] == "-") mm[1] = -1;
-          var a = mm[1] ? Number(mm[1]) : 1;
-          var b = mm[2] ? Number(mm[2]) : 0;
-          predicate = "[((#{fragment} - #{b}) mod #{a} = 0) and " +
-          "((#{fragment} - #{b}) div #{a} >= 0)]";
-          return new Template(predicate).evaluate({
-            fragment: fragment, a: a, b: b });
-        }
-      }
-    }
-  },
-
-  criteria: {
-    tagName:      'n = h.tagName(n, r, "#{1}", c);      c = false;',
-    className:    'n = h.className(n, r, "#{1}", c);    c = false;',
-    id:           'n = h.id(n, r, "#{1}", c);           c = false;',
-    attrPresence: 'n = h.attrPresence(n, r, "#{1}", c); c = false;',
-    attr: function(m) {
-      m[3] = (m[5] || m[6]);
-      return new Template('n = h.attr(n, r, "#{1}", "#{3}", "#{2}", c); c = false;').evaluate(m);
-    },
-    pseudo: function(m) {
-      if (m[6]) m[6] = m[6].replace(/"/g, '\\"');
-      return new Template('n = h.pseudo(n, "#{1}", "#{6}", r, c); c = false;').evaluate(m);
-    },
-    descendant:   'c = "descendant";',
-    child:        'c = "child";',
-    adjacent:     'c = "adjacent";',
-    laterSibling: 'c = "laterSibling";'
-  },
-
-  patterns: [
-    { name: 'laterSibling', re: /^\s*~\s*/ },
-    { name: 'child',        re: /^\s*>\s*/ },
-    { name: 'adjacent',     re: /^\s*\+\s*/ },
-    { name: 'descendant',   re: /^\s/ },
-
-    { name: 'tagName',      re: /^\s*(\*|[\w\-]+)(\b|$)?/ },
-    { name: 'id',           re: /^#([\w\-\*]+)(\b|$)/ },
-    { name: 'className',    re: /^\.([\w\-\*]+)(\b|$)/ },
-    { name: 'pseudo',       re: /^:((first|last|nth|nth-last|only)(-child|-of-type)|empty|checked|(en|dis)abled|not)(\((.*?)\))?(\b|$|(?=\s|[:+~>]))/ },
-    { name: 'attrPresence', re: /^\[((?:[\w-]+:)?[\w-]+)\]/ },
-    { name: 'attr',         re: /\[((?:[\w-]*:)?[\w-]+)\s*(?:([!^$*~|]?=)\s*((['"])([^\4]*?)\4|([^'"][^\]]*?)))?\]/ }
-  ],
-
-  assertions: {
-    tagName: function(element, matches) {
-      return matches[1].toUpperCase() == element.tagName.toUpperCase();
-    },
-
-    className: function(element, matches) {
-      return Element.hasClassName(element, matches[1]);
-    },
-
-    id: function(element, matches) {
-      return element.id === matches[1];
-    },
-
-    attrPresence: function(element, matches) {
-      return Element.hasAttribute(element, matches[1]);
-    },
-
-    attr: function(element, matches) {
-      var nodeValue = Element.readAttribute(element, matches[1]);
-      return nodeValue && Selector.operators[matches[2]](nodeValue, matches[5] || matches[6]);
-    }
-  },
-
-  handlers: {
-    concat: function(a, b) {
-      for (var i = 0, node; node = b[i]; i++)
-        a.push(node);
-      return a;
-    },
-
-    mark: function(nodes) {
-      var _true = Prototype.emptyFunction;
-      for (var i = 0, node; node = nodes[i]; i++)
-        node._countedByPrototype = _true;
-      return nodes;
-    },
-
-    unmark: (function(){
-
-      var PROPERTIES_ATTRIBUTES_MAP = (function(){
-        var el = document.createElement('div'),
-            isBuggy = false,
-            propName = '_countedByPrototype',
-            value = 'x'
-        el[propName] = value;
-        isBuggy = (el.getAttribute(propName) === value);
-        el = null;
-        return isBuggy;
-      })();
-
-      return PROPERTIES_ATTRIBUTES_MAP ?
-        function(nodes) {
-          for (var i = 0, node; node = nodes[i]; i++)
-            node.removeAttribute('_countedByPrototype');
-          return nodes;
-        } :
-        function(nodes) {
-          for (var i = 0, node; node = nodes[i]; i++)
-            node._countedByPrototype = void 0;
-          return nodes;
-        }
-    })(),
-
-    index: function(parentNode, reverse, ofType) {
-      parentNode._countedByPrototype = Prototype.emptyFunction;
-      if (reverse) {
-        for (var nodes = parentNode.childNodes, i = nodes.length - 1, j = 1; i >= 0; i--) {
-          var node = nodes[i];
-          if (node.nodeType == 1 && (!ofType || node._countedByPrototype)) node.nodeIndex = j++;
-        }
-      } else {
-        for (var i = 0, j = 1, nodes = parentNode.childNodes; node = nodes[i]; i++)
-          if (node.nodeType == 1 && (!ofType || node._countedByPrototype)) node.nodeIndex = j++;
-      }
-    },
-
-    unique: function(nodes) {
-      if (nodes.length == 0) return nodes;
-      var results = [], n;
-      for (var i = 0, l = nodes.length; i < l; i++)
-        if (typeof (n = nodes[i])._countedByPrototype == 'undefined') {
-          n._countedByPrototype = Prototype.emptyFunction;
-          results.push(Element.extend(n));
-        }
-      return Selector.handlers.unmark(results);
-    },
-
-    descendant: function(nodes) {
-      var h = Selector.handlers;
-      for (var i = 0, results = [], node; node = nodes[i]; i++)
-        h.concat(results, node.getElementsByTagName('*'));
-      return results;
-    },
-
-    child: function(nodes) {
-      var h = Selector.handlers;
-      for (var i = 0, results = [], node; node = nodes[i]; i++) {
-        for (var j = 0, child; child = node.childNodes[j]; j++)
-          if (child.nodeType == 1 && child.tagName != '!') results.push(child);
-      }
-      return results;
-    },
-
-    adjacent: function(nodes) {
-      for (var i = 0, results = [], node; node = nodes[i]; i++) {
-        var next = this.nextElementSibling(node);
-        if (next) results.push(next);
-      }
-      return results;
-    },
-
-    laterSibling: function(nodes) {
-      var h = Selector.handlers;
-      for (var i = 0, results = [], node; node = nodes[i]; i++)
-        h.concat(results, Element.nextSiblings(node));
-      return results;
-    },
-
-    nextElementSibling: function(node) {
-      while (node = node.nextSibling)
-        if (node.nodeType == 1) return node;
-      return null;
-    },
-
-    previousElementSibling: function(node) {
-      while (node = node.previousSibling)
-        if (node.nodeType == 1) return node;
-      return null;
-    },
-
-    tagName: function(nodes, root, tagName, combinator) {
-      var uTagName = tagName.toUpperCase();
-      var results = [], h = Selector.handlers;
-      if (nodes) {
-        if (combinator) {
-          if (combinator == "descendant") {
-            for (var i = 0, node; node = nodes[i]; i++)
-              h.concat(results, node.getElementsByTagName(tagName));
-            return results;
-          } else nodes = this[combinator](nodes);
-          if (tagName == "*") return nodes;
-        }
-        for (var i = 0, node; node = nodes[i]; i++)
-          if (node.tagName.toUpperCase() === uTagName) results.push(node);
-        return results;
-      } else return root.getElementsByTagName(tagName);
-    },
-
-    id: function(nodes, root, id, combinator) {
-      var targetNode = $(id), h = Selector.handlers;
-
-      if (root == document) {
-        if (!targetNode) return [];
-        if (!nodes) return [targetNode];
-      } else {
-        if (!root.sourceIndex || root.sourceIndex < 1) {
-          var nodes = root.getElementsByTagName('*');
-          for (var j = 0, node; node = nodes[j]; j++) {
-            if (node.id === id) return [node];
-          }
-        }
-      }
-
-      if (nodes) {
-        if (combinator) {
-          if (combinator == 'child') {
-            for (var i = 0, node; node = nodes[i]; i++)
-              if (targetNode.parentNode == node) return [targetNode];
-          } else if (combinator == 'descendant') {
-            for (var i = 0, node; node = nodes[i]; i++)
-              if (Element.descendantOf(targetNode, node)) return [targetNode];
-          } else if (combinator == 'adjacent') {
-            for (var i = 0, node; node = nodes[i]; i++)
-              if (Selector.handlers.previousElementSibling(targetNode) == node)
-                return [targetNode];
-          } else nodes = h[combinator](nodes);
-        }
-        for (var i = 0, node; node = nodes[i]; i++)
-          if (node == targetNode) return [targetNode];
-        return [];
-      }
-      return (targetNode && Element.descendantOf(targetNode, root)) ? [targetNode] : [];
-    },
-
-    className: function(nodes, root, className, combinator) {
-      if (nodes && combinator) nodes = this[combinator](nodes);
-      return Selector.handlers.byClassName(nodes, root, className);
-    },
-
-    byClassName: function(nodes, root, className) {
-      if (!nodes) nodes = Selector.handlers.descendant([root]);
-      var needle = ' ' + className + ' ';
-      for (var i = 0, results = [], node, nodeClassName; node = nodes[i]; i++) {
-        nodeClassName = node.className;
-        if (nodeClassName.length == 0) continue;
-        if (nodeClassName == className || (' ' + nodeClassName + ' ').include(needle))
-          results.push(node);
-      }
-      return results;
-    },
-
-    attrPresence: function(nodes, root, attr, combinator) {
-      if (!nodes) nodes = root.getElementsByTagName("*");
-      if (nodes && combinator) nodes = this[combinator](nodes);
-      var results = [];
-      for (var i = 0, node; node = nodes[i]; i++)
-        if (Element.hasAttribute(node, attr)) results.push(node);
-      return results;
-    },
-
-    attr: function(nodes, root, attr, value, operator, combinator) {
-      if (!nodes) nodes = root.getElementsByTagName("*");
-      if (nodes && combinator) nodes = this[combinator](nodes);
-      var handler = Selector.operators[operator], results = [];
-      for (var i = 0, node; node = nodes[i]; i++) {
-        var nodeValue = Element.readAttribute(node, attr);
-        if (nodeValue === null) continue;
-        if (handler(nodeValue, value)) results.push(node);
-      }
-      return results;
-    },
-
-    pseudo: function(nodes, name, value, root, combinator) {
-      if (nodes && combinator) nodes = this[combinator](nodes);
-      if (!nodes) nodes = root.getElementsByTagName("*");
-      return Selector.pseudos[name](nodes, value, root);
-    }
-  },
-
-  pseudos: {
-    'first-child': function(nodes, value, root) {
-      for (var i = 0, results = [], node; node = nodes[i]; i++) {
-        if (Selector.handlers.previousElementSibling(node)) continue;
-          results.push(node);
-      }
-      return results;
-    },
-    'last-child': function(nodes, value, root) {
-      for (var i = 0, results = [], node; node = nodes[i]; i++) {
-        if (Selector.handlers.nextElementSibling(node)) continue;
-          results.push(node);
-      }
-      return results;
-    },
-    'only-child': function(nodes, value, root) {
-      var h = Selector.handlers;
-      for (var i = 0, results = [], node; node = nodes[i]; i++)
-        if (!h.previousElementSibling(node) && !h.nextElementSibling(node))
-          results.push(node);
-      return results;
-    },
-    'nth-child':        function(nodes, formula, root) {
-      return Selector.pseudos.nth(nodes, formula, root);
-    },
-    'nth-last-child':   function(nodes, formula, root) {
-      return Selector.pseudos.nth(nodes, formula, root, true);
-    },
-    'nth-of-type':      function(nodes, formula, root) {
-      return Selector.pseudos.nth(nodes, formula, root, false, true);
-    },
-    'nth-last-of-type': function(nodes, formula, root) {
-      return Selector.pseudos.nth(nodes, formula, root, true, true);
-    },
-    'first-of-type':    function(nodes, formula, root) {
-      return Selector.pseudos.nth(nodes, "1", root, false, true);
-    },
-    'last-of-type':     function(nodes, formula, root) {
-      return Selector.pseudos.nth(nodes, "1", root, true, true);
-    },
-    'only-of-type':     function(nodes, formula, root) {
-      var p = Selector.pseudos;
-      return p['last-of-type'](p['first-of-type'](nodes, formula, root), formula, root);
-    },
-
-    getIndices: function(a, b, total) {
-      if (a == 0) return b > 0 ? [b] : [];
-      return $R(1, total).inject([], function(memo, i) {
-        if (0 == (i - b) % a && (i - b) / a >= 0) memo.push(i);
-        return memo;
-      });
-    },
-
-    nth: function(nodes, formula, root, reverse, ofType) {
-      if (nodes.length == 0) return [];
-      if (formula == 'even') formula = '2n+0';
-      if (formula == 'odd')  formula = '2n+1';
-      var h = Selector.handlers, results = [], indexed = [], m;
-      h.mark(nodes);
-      for (var i = 0, node; node = nodes[i]; i++) {
-        if (!node.parentNode._countedByPrototype) {
-          h.index(node.parentNode, reverse, ofType);
-          indexed.push(node.parentNode);
-        }
-      }
-      if (formula.match(/^\d+$/)) { // just a number
-        formula = Number(formula);
-        for (var i = 0, node; node = nodes[i]; i++)
-          if (node.nodeIndex == formula) results.push(node);
-      } else if (m = formula.match(/^(-?\d*)?n(([+-])(\d+))?/)) { // an+b
-        if (m[1] == "-") m[1] = -1;
-        var a = m[1] ? Number(m[1]) : 1;
-        var b = m[2] ? Number(m[2]) : 0;
-        var indices = Selector.pseudos.getIndices(a, b, nodes.length);
-        for (var i = 0, node, l = indices.length; node = nodes[i]; i++) {
-          for (var j = 0; j < l; j++)
-            if (node.nodeIndex == indices[j]) results.push(node);
-        }
-      }
-      h.unmark(nodes);
-      h.unmark(indexed);
-      return results;
-    },
-
-    'empty': function(nodes, value, root) {
-      for (var i = 0, results = [], node; node = nodes[i]; i++) {
-        if (node.tagName == '!' || node.firstChild) continue;
-        results.push(node);
-      }
-      return results;
-    },
-
-    'not': function(nodes, selector, root) {
-      var h = Selector.handlers, selectorType, m;
-      var exclusions = new Selector(selector).findElements(root);
-      h.mark(exclusions);
-      for (var i = 0, results = [], node; node = nodes[i]; i++)
-        if (!node._countedByPrototype) results.push(node);
-      h.unmark(exclusions);
-      return results;
-    },
-
-    'enabled': function(nodes, value, root) {
-      for (var i = 0, results = [], node; node = nodes[i]; i++)
-        if (!node.disabled && (!node.type || node.type !== 'hidden'))
-          results.push(node);
-      return results;
-    },
-
-    'disabled': function(nodes, value, root) {
-      for (var i = 0, results = [], node; node = nodes[i]; i++)
-        if (node.disabled) results.push(node);
-      return results;
-    },
-
-    'checked': function(nodes, value, root) {
-      for (var i = 0, results = [], node; node = nodes[i]; i++)
-        if (node.checked) results.push(node);
-      return results;
-    }
-  },
-
-  operators: {
-    '=':  function(nv, v) { return nv == v; },
-    '!=': function(nv, v) { return nv != v; },
-    '^=': function(nv, v) { return nv == v || nv && nv.startsWith(v); },
-    '$=': function(nv, v) { return nv == v || nv && nv.endsWith(v); },
-    '*=': function(nv, v) { return nv == v || nv && nv.include(v); },
-    '~=': function(nv, v) { return (' ' + nv + ' ').include(' ' + v + ' '); },
-    '|=': function(nv, v) { return ('-' + (nv || "").toUpperCase() +
-     '-').include('-' + (v || "").toUpperCase() + '-'); }
-  },
-
-  split: function(expression) {
-    var expressions = [];
-    expression.scan(/(([\w#:.~>+()\s-]+|\*|\[.*?\])+)\s*(,|$)/, function(m) {
-      expressions.push(m[1].strip());
-    });
-    return expressions;
-  },
-
-  matchElements: function(elements, expression) {
-    var matches = $$(expression), h = Selector.handlers;
-    h.mark(matches);
-    for (var i = 0, results = [], element; element = elements[i]; i++)
-      if (element._countedByPrototype) results.push(element);
-    h.unmark(matches);
-    return results;
-  },
-
-  findElement: function(elements, expression, index) {
-    if (Object.isNumber(expression)) {
-      index = expression; expression = false;
-    }
-    return Selector.matchElements(elements, expression || '*')[index || 0];
-  },
-
-  findChildElements: function(element, expressions) {
-    expressions = Selector.split(expressions.join(','));
-    var results = [], h = Selector.handlers;
-    for (var i = 0, l = expressions.length, selector; i < l; i++) {
-      selector = new Selector(expressions[i].strip());
-      h.concat(results, selector.findElements(element));
-    }
-    return (l > 1) ? h.unique(results) : results;
-  }
-});
-
-if (Prototype.Browser.IE) {
-  Object.extend(Selector.handlers, {
-    concat: function(a, b) {
-      for (var i = 0, node; node = b[i]; i++)
-        if (node.tagName !== "!") a.push(node);
-      return a;
-    }
-  });
-}
-
-function $$() {
-  return Selector.findChildElements(document, $A(arguments));
-}
-
-var Form = {
-  reset: function(form) {
-    form = $(form);
-    form.reset();
-    return form;
-  },
-
-  serializeElements: function(elements, options) {
-    if (typeof options != 'object') options = { hash: !!options };
-    else if (Object.isUndefined(options.hash)) options.hash = true;
-    var key, value, submitted = false, submit = options.submit;
-
-    var data = elements.inject({ }, function(result, element) {
-      if (!element.disabled && element.name) {
-        key = element.name; value = $(element).getValue();
-        if (value != null && element.type != 'file' && (element.type != 'submit' || (!submitted &&
-            submit !== false && (!submit || key == submit) && (submitted = true)))) {
-          if (key in result) {
-            if (!Object.isArray(result[key])) result[key] = [result[key]];
-            result[key].push(value);
-          }
-          else result[key] = value;
-        }
-      }
-      return result;
-    });
-
-    return options.hash ? data : Object.toQueryString(data);
-  }
-};
-
-Form.Methods = {
-  serialize: function(form, options) {
-    return Form.serializeElements(Form.getElements(form), options);
-  },
-
-  getElements: function(form) {
-    var elements = $(form).getElementsByTagName('*'),
-        element,
-        arr = [ ],
-        serializers = Form.Element.Serializers;
-    for (var i = 0; element = elements[i]; i++) {
-      arr.push(element);
-    }
-    return arr.inject([], function(elements, child) {
-      if (serializers[child.tagName.toLowerCase()])
-        elements.push(Element.extend(child));
-      return elements;
-    })
-  },
-
-  getInputs: function(form, typeName, name) {
-    form = $(form);
-    var inputs = form.getElementsByTagName('input');
-
-    if (!typeName && !name) return $A(inputs).map(Element.extend);
-
-    for (var i = 0, matchingInputs = [], length = inputs.length; i < length; i++) {
-      var input = inputs[i];
-      if ((typeName && input.type != typeName) || (name && input.name != name))
-        continue;
-      matchingInputs.push(Element.extend(input));
-    }
-
-    return matchingInputs;
-  },
-
-  disable: function(form) {
-    form = $(form);
-    Form.getElements(form).invoke('disable');
-    return form;
-  },
-
-  enable: function(form) {
-    form = $(form);
-    Form.getElements(form).invoke('enable');
-    return form;
-  },
-
-  findFirstElement: function(form) {
-    var elements = $(form).getElements().findAll(function(element) {
-      return 'hidden' != element.type && !element.disabled;
-    });
-    var firstByIndex = elements.findAll(function(element) {
-      return element.hasAttribute('tabIndex') && element.tabIndex >= 0;
-    }).sortBy(function(element) { return element.tabIndex }).first();
-
-    return firstByIndex ? firstByIndex : elements.find(function(element) {
-      return /^(?:input|select|textarea)$/i.test(element.tagName);
-    });
-  },
-
-  focusFirstElement: function(form) {
-    form = $(form);
-    form.findFirstElement().activate();
-    return form;
-  },
-
-  request: function(form, options) {
-    form = $(form), options = Object.clone(options || { });
-
-    var params = options.parameters, action = form.readAttribute('action') || '';
-    if (action.blank()) action = window.location.href;
-    options.parameters = form.serialize(true);
-
-    if (params) {
-      if (Object.isString(params)) params = params.toQueryParams();
-      Object.extend(options.parameters, params);
-    }
-
-    if (form.hasAttribute('method') && !options.method)
-      options.method = form.method;
-
-    return new Ajax.Request(action, options);
-  }
-};
-
-/*--------------------------------------------------------------------------*/
-
-
-Form.Element = {
-  focus: function(element) {
-    $(element).focus();
-    return element;
-  },
-
-  select: function(element) {
-    $(element).select();
-    return element;
-  }
-};
-
-Form.Element.Methods = {
-
-  serialize: function(element) {
-    element = $(element);
-    if (!element.disabled && element.name) {
-      var value = element.getValue();
-      if (value != undefined) {
-        var pair = { };
-        pair[element.name] = value;
-        return Object.toQueryString(pair);
-      }
-    }
-    return '';
-  },
-
-  getValue: function(element) {
-    element = $(element);
-    var method = element.tagName.toLowerCase();
-    return Form.Element.Serializers[method](element);
-  },
-
-  setValue: function(element, value) {
-    element = $(element);
-    var method = element.tagName.toLowerCase();
-    Form.Element.Serializers[method](element, value);
-    return element;
-  },
-
-  clear: function(element) {
-    $(element).value = '';
-    return element;
-  },
-
-  present: function(element) {
-    return $(element).value != '';
-  },
-
-  activate: function(element) {
-    element = $(element);
-    try {
-      element.focus();
-      if (element.select && (element.tagName.toLowerCase() != 'input' ||
-          !(/^(?:button|reset|submit)$/i.test(element.type))))
-        element.select();
-    } catch (e) { }
-    return element;
-  },
-
-  disable: function(element) {
-    element = $(element);
-    element.disabled = true;
-    return element;
-  },
-
-  enable: function(element) {
-    element = $(element);
-    element.disabled = false;
-    return element;
-  }
-};
-
-/*--------------------------------------------------------------------------*/
-
-var Field = Form.Element;
-
-var $F = Form.Element.Methods.getValue;
-
-/*--------------------------------------------------------------------------*/
-
-Form.Element.Serializers = {
-  input: function(element, value) {
-    switch (element.type.toLowerCase()) {
-      case 'checkbox':
-      case 'radio':
-        return Form.Element.Serializers.inputSelector(element, value);
-      default:
-        return Form.Element.Serializers.textarea(element, value);
-    }
-  },
-
-  inputSelector: function(element, value) {
-    if (Object.isUndefined(value)) return element.checked ? element.value : null;
-    else element.checked = !!value;
-  },
-
-  textarea: function(element, value) {
-    if (Object.isUndefined(value)) return element.value;
-    else element.value = value;
-  },
-
-  select: function(element, value) {
-    if (Object.isUndefined(value))
-      return this[element.type == 'select-one' ?
-        'selectOne' : 'selectMany'](element);
-    else {
-      var opt, currentValue, single = !Object.isArray(value);
-      for (var i = 0, length = element.length; i < length; i++) {
-        opt = element.options[i];
-        currentValue = this.optionValue(opt);
-        if (single) {
-          if (currentValue == value) {
-            opt.selected = true;
-            return;
-          }
-        }
-        else opt.selected = value.include(currentValue);
-      }
-    }
-  },
-
-  selectOne: function(element) {
-    var index = element.selectedIndex;
-    return index >= 0 ? this.optionValue(element.options[index]) : null;
-  },
-
-  selectMany: function(element) {
-    var values, length = element.length;
-    if (!length) return null;
-
-    for (var i = 0, values = []; i < length; i++) {
-      var opt = element.options[i];
-      if (opt.selected) values.push(this.optionValue(opt));
-    }
-    return values;
-  },
-
-  optionValue: function(opt) {
-    return Element.extend(opt).hasAttribute('value') ? opt.value : opt.text;
-  }
-};
-
-/*--------------------------------------------------------------------------*/
-
-
-Abstract.TimedObserver = Class.create(PeriodicalExecuter, {
-  initialize: function($super, element, frequency, callback) {
-    $super(callback, frequency);
-    this.element   = $(element);
-    this.lastValue = this.getValue();
-  },
-
-  execute: function() {
-    var value = this.getValue();
-    if (Object.isString(this.lastValue) && Object.isString(value) ?
-        this.lastValue != value : String(this.lastValue) != String(value)) {
-      this.callback(this.element, value);
-      this.lastValue = value;
-    }
-  }
-});
-
-Form.Element.Observer = Class.create(Abstract.TimedObserver, {
-  getValue: function() {
-    return Form.Element.getValue(this.element);
-  }
-});
-
-Form.Observer = Class.create(Abstract.TimedObserver, {
-  getValue: function() {
-    return Form.serialize(this.element);
-  }
-});
-
-/*--------------------------------------------------------------------------*/
-
-Abstract.EventObserver = Class.create({
-  initialize: function(element, callback) {
-    this.element  = $(element);
-    this.callback = callback;
-
-    this.lastValue = this.getValue();
-    if (this.element.tagName.toLowerCase() == 'form')
-      this.registerFormCallbacks();
-    else
-      this.registerCallback(this.element);
-  },
-
-  onElementEvent: function() {
-    var value = this.getValue();
-    if (this.lastValue != value) {
-      this.callback(this.element, value);
-      this.lastValue = value;
-    }
-  },
-
-  registerFormCallbacks: function() {
-    Form.getElements(this.element).each(this.registerCallback, this);
-  },
-
-  registerCallback: function(element) {
-    if (element.type) {
-      switch (element.type.toLowerCase()) {
-        case 'checkbox':
-        case 'radio':
-          Event.observe(element, 'click', this.onElementEvent.bind(this));
-          break;
-        default:
-          Event.observe(element, 'change', this.onElementEvent.bind(this));
-          break;
-      }
-    }
-  }
-});
-
-Form.Element.EventObserver = Class.create(Abstract.EventObserver, {
-  getValue: function() {
-    return Form.Element.getValue(this.element);
-  }
-});
-
-Form.EventObserver = Class.create(Abstract.EventObserver, {
-  getValue: function() {
-    return Form.serialize(this.element);
-  }
-});
-(function() {
-
-  var Event = {
-    KEY_BACKSPACE: 8,
-    KEY_TAB:       9,
-    KEY_RETURN:   13,
-    KEY_ESC:      27,
-    KEY_LEFT:     37,
-    KEY_UP:       38,
-    KEY_RIGHT:    39,
-    KEY_DOWN:     40,
-    KEY_DELETE:   46,
-    KEY_HOME:     36,
-    KEY_END:      35,
-    KEY_PAGEUP:   33,
-    KEY_PAGEDOWN: 34,
-    KEY_INSERT:   45,
-
-    cache: {}
-  };
-
-  var docEl = document.documentElement;
-  var MOUSEENTER_MOUSELEAVE_EVENTS_SUPPORTED = 'onmouseenter' in docEl
-    && 'onmouseleave' in docEl;
-
-  var _isButton;
-  if (Prototype.Browser.IE) {
-    var buttonMap = { 0: 1, 1: 4, 2: 2 };
-    _isButton = function(event, code) {
-      return event.button === buttonMap[code];
-    };
-  } else if (Prototype.Browser.WebKit) {
-    _isButton = function(event, code) {
-      switch (code) {
-        case 0: return event.which == 1 && !event.metaKey;
-        case 1: return event.which == 1 && event.metaKey;
-        default: return false;
-      }
-    };
-  } else {
-    _isButton = function(event, code) {
-      return event.which ? (event.which === code + 1) : (event.button === code);
-    };
-  }
-
-  function isLeftClick(event)   { return _isButton(event, 0) }
-
-  function isMiddleClick(event) { return _isButton(event, 1) }
-
-  function isRightClick(event)  { return _isButton(event, 2) }
-
-  function element(event) {
-    event = Event.extend(event);
-
-    var node = event.target, type = event.type,
-     currentTarget = event.currentTarget;
-
-    if (currentTarget && currentTarget.tagName) {
-      if (type === 'load' || type === 'error' ||
-        (type === 'click' && currentTarget.tagName.toLowerCase() === 'input'
-          && currentTarget.type === 'radio'))
-            node = currentTarget;
-    }
-
-    if (node.nodeType == Node.TEXT_NODE)
-      node = node.parentNode;
-
-    return Element.extend(node);
-  }
-
-  function findElement(event, expression) {
-    var element = Event.element(event);
-    if (!expression) return element;
-    var elements = [element].concat(element.ancestors());
-    return Selector.findElement(elements, expression, 0);
-  }
-
-  function pointer(event) {
-    return { x: pointerX(event), y: pointerY(event) };
-  }
-
-  function pointerX(event) {
-    var docElement = document.documentElement,
-     body = document.body || { scrollLeft: 0 };
-
-    return event.pageX || (event.clientX +
-      (docElement.scrollLeft || body.scrollLeft) -
-      (docElement.clientLeft || 0));
-  }
-
-  function pointerY(event) {
-    var docElement = document.documentElement,
-     body = document.body || { scrollTop: 0 };
-
-    return  event.pageY || (event.clientY +
-       (docElement.scrollTop || body.scrollTop) -
-       (docElement.clientTop || 0));
-  }
-
-
-  function stop(event) {
-    Event.extend(event);
-    event.preventDefault();
-    event.stopPropagation();
-
-    event.stopped = true;
-  }
-
-  Event.Methods = {
-    isLeftClick: isLeftClick,
-    isMiddleClick: isMiddleClick,
-    isRightClick: isRightClick,
-
-    element: element,
-    findElement: findElement,
-
-    pointer: pointer,
-    pointerX: pointerX,
-    pointerY: pointerY,
-
-    stop: stop
-  };
-
-
-  var methods = Object.keys(Event.Methods).inject({ }, function(m, name) {
-    m[name] = Event.Methods[name].methodize();
-    return m;
-  });
-
-  if (Prototype.Browser.IE) {
-    function _relatedTarget(event) {
-      var element;
-      switch (event.type) {
-        case 'mouseover': element = event.fromElement; break;
-        case 'mouseout':  element = event.toElement;   break;
-        default: return null;
-      }
-      return Element.extend(element);
-    }
-
-    Object.extend(methods, {
-      stopPropagation: function() { this.cancelBubble = true },
-      preventDefault:  function() { this.returnValue = false },
-      inspect: function() { return '[object Event]' }
-    });
-
-    Event.extend = function(event, element) {
-      if (!event) return false;
-      if (event._extendedByPrototype) return event;
-
-      event._extendedByPrototype = Prototype.emptyFunction;
-      var pointer = Event.pointer(event);
-
-      Object.extend(event, {
-        target: event.srcElement || element,
-        relatedTarget: _relatedTarget(event),
-        pageX:  pointer.x,
-        pageY:  pointer.y
-      });
-
-      return Object.extend(event, methods);
-    };
-  } else {
-    Event.prototype = window.Event.prototype || document.createEvent('HTMLEvents').__proto__;
-    Object.extend(Event.prototype, methods);
-    Event.extend = Prototype.K;
-  }
-
-  function _createResponder(element, eventName, handler) {
-    var registry = Element.retrieve(element, 'prototype_event_registry');
-
-    if (Object.isUndefined(registry)) {
-      CACHE.push(element);
-      registry = Element.retrieve(element, 'prototype_event_registry', $H());
-    }
-
-    var respondersForEvent = registry.get(eventName);
-    if (Object.isUndefined(respondersForEvent)) {
-      respondersForEvent = [];
-      registry.set(eventName, respondersForEvent);
-    }
-
-    if (respondersForEvent.pluck('handler').include(handler)) return false;
-
-    var responder;
-    if (eventName.include(":")) {
-      responder = function(event) {
-        if (Object.isUndefined(event.eventName))
-          return false;
-
-        if (event.eventName !== eventName)
-          return false;
-
-        Event.extend(event, element);
-        handler.call(element, event);
-      };
-    } else {
-      if (!MOUSEENTER_MOUSELEAVE_EVENTS_SUPPORTED &&
-       (eventName === "mouseenter" || eventName === "mouseleave")) {
-        if (eventName === "mouseenter" || eventName === "mouseleave") {
-          responder = function(event) {
-            Event.extend(event, element);
-
-            var parent = event.relatedTarget;
-            while (parent && parent !== element) {
-              try { parent = parent.parentNode; }
-              catch(e) { parent = element; }
-            }
-
-            if (parent === element) return;
-
-            handler.call(element, event);
-          };
-        }
-      } else {
-        responder = function(event) {
-          Event.extend(event, element);
-          handler.call(element, event);
-        };
-      }
-    }
-
-    responder.handler = handler;
-    respondersForEvent.push(responder);
-    return responder;
-  }
-
-  function _destroyCache() {
-    for (var i = 0, length = CACHE.length; i < length; i++) {
-      Event.stopObserving(CACHE[i]);
-      CACHE[i] = null;
-    }
-  }
-
-  var CACHE = [];
-
-  if (Prototype.Browser.IE)
-    window.attachEvent('onunload', _destroyCache);
-
-  if (Prototype.Browser.WebKit)
-    window.addEventListener('unload', Prototype.emptyFunction, false);
-
-
-  var _getDOMEventName = Prototype.K;
-
-  if (!MOUSEENTER_MOUSELEAVE_EVENTS_SUPPORTED) {
-    _getDOMEventName = function(eventName) {
-      var translations = { mouseenter: "mouseover", mouseleave: "mouseout" };
-      return eventName in translations ? translations[eventName] : eventName;
-    };
-  }
-
-  function observe(element, eventName, handler) {
-    element = $(element);
-
-    var responder = _createResponder(element, eventName, handler);
-
-    if (!responder) return element;
-
-    if (eventName.include(':')) {
-      if (element.addEventListener)
-        element.addEventListener("dataavailable", responder, false);
-      else {
-        element.attachEvent("ondataavailable", responder);
-        element.attachEvent("onfilterchange", responder);
-      }
-    } else {
-      var actualEventName = _getDOMEventName(eventName);
-
-      if (element.addEventListener)
-        element.addEventListener(actualEventName, responder, false);
-      else
-        element.attachEvent("on" + actualEventName, responder);
-    }
-
-    return element;
-  }
-
-  function stopObserving(element, eventName, handler) {
-    element = $(element);
-
-    var registry = Element.retrieve(element, 'prototype_event_registry');
-
-    if (Object.isUndefined(registry)) return element;
-
-    if (eventName && !handler) {
-      var responders = registry.get(eventName);
-
-      if (Object.isUndefined(responders)) return element;
-
-      responders.each( function(r) {
-        Element.stopObserving(element, eventName, r.handler);
-      });
-      return element;
-    } else if (!eventName) {
-      registry.each( function(pair) {
-        var eventName = pair.key, responders = pair.value;
-
-        responders.each( function(r) {
-          Element.stopObserving(element, eventName, r.handler);
-        });
-      });
-      return element;
-    }
-
-    var responders = registry.get(eventName);
-
-    if (!responders) return;
-
-    var responder = responders.find( function(r) { return r.handler === handler; });
-    if (!responder) return element;
-
-    var actualEventName = _getDOMEventName(eventName);
-
-    if (eventName.include(':')) {
-      if (element.removeEventListener)
-        element.removeEventListener("dataavailable", responder, false);
-      else {
-        element.detachEvent("ondataavailable", responder);
-        element.detachEvent("onfilterchange",  responder);
-      }
-    } else {
-      if (element.removeEventListener)
-        element.removeEventListener(actualEventName, responder, false);
-      else
-        element.detachEvent('on' + actualEventName, responder);
-    }
-
-    registry.set(eventName, responders.without(responder));
-
-    return element;
-  }
-
-  function fire(element, eventName, memo, bubble) {
-    element = $(element);
-
-    if (Object.isUndefined(bubble))
-      bubble = true;
-
-    if (element == document && document.createEvent && !element.dispatchEvent)
-      element = document.documentElement;
-
-    var event;
-    if (document.createEvent) {
-      event = document.createEvent('HTMLEvents');
-      event.initEvent('dataavailable', true, true);
-    } else {
-      event = document.createEventObject();
-      event.eventType = bubble ? 'ondataavailable' : 'onfilterchange';
-    }
-
-    event.eventName = eventName;
-    event.memo = memo || { };
-
-    if (document.createEvent)
-      element.dispatchEvent(event);
-    else
-      element.fireEvent(event.eventType, event);
-
-    return Event.extend(event);
-  }
-
-
-  Object.extend(Event, Event.Methods);
-
-  Object.extend(Event, {
-    fire:          fire,
-    observe:       observe,
-    stopObserving: stopObserving
-  });
-
-  Element.addMethods({
-    fire:          fire,
-
-    observe:       observe,
-
-    stopObserving: stopObserving
-  });
-
-  Object.extend(document, {
-    fire:          fire.methodize(),
-
-    observe:       observe.methodize(),
-
-    stopObserving: stopObserving.methodize(),
-
-    loaded:        false
-  });
-
-  if (window.Event) Object.extend(window.Event, Event);
-  else window.Event = Event;
-})();
-
-(function() {
-  /* Support for the DOMContentLoaded event is based on work by Dan Webb,
-     Matthias Miller, Dean Edwards, John Resig, and Diego Perini. */
-
-  var timer;
-
-  function fireContentLoadedEvent() {
-    if (document.loaded) return;
-    if (timer) window.clearTimeout(timer);
-    document.loaded = true;
-    document.fire('dom:loaded');
-  }
-
-  function checkReadyState() {
-    if (document.readyState === 'complete') {
-      document.stopObserving('readystatechange', checkReadyState);
-      fireContentLoadedEvent();
-    }
-  }
-
-  function pollDoScroll() {
-    try { document.documentElement.doScroll('left'); }
-    catch(e) {
-      timer = pollDoScroll.defer();
-      return;
-    }
-    fireContentLoadedEvent();
-  }
-
-  if (document.addEventListener) {
-    document.addEventListener('DOMContentLoaded', fireContentLoadedEvent, false);
-  } else {
-    document.observe('readystatechange', checkReadyState);
-    if (window == top)
-      timer = pollDoScroll.defer();
-  }
-
-  Event.observe(window, 'load', fireContentLoadedEvent);
-})();
-
-Element.addMethods();
-
-/*------------------------------- DEPRECATED -------------------------------*/
-
-Hash.toQueryString = Object.toQueryString;
-
-var Toggle = { display: Element.toggle };
-
-Element.Methods.childOf = Element.Methods.descendantOf;
-
-var Insertion = {
-  Before: function(element, content) {
-    return Element.insert(element, {before:content});
-  },
-
-  Top: function(element, content) {
-    return Element.insert(element, {top:content});
-  },
-
-  Bottom: function(element, content) {
-    return Element.insert(element, {bottom:content});
-  },
-
-  After: function(element, content) {
-    return Element.insert(element, {after:content});
-  }
-};
-
-var $continue = new Error('"throw $continue" is deprecated, use "return" instead');
-
-var Position = {
-  includeScrollOffsets: false,
-
-  prepare: function() {
-    this.deltaX =  window.pageXOffset
-                || document.documentElement.scrollLeft
-                || document.body.scrollLeft
-                || 0;
-    this.deltaY =  window.pageYOffset
-                || document.documentElement.scrollTop
-                || document.body.scrollTop
-                || 0;
-  },
-
-  within: function(element, x, y) {
-    if (this.includeScrollOffsets)
-      return this.withinIncludingScrolloffsets(element, x, y);
-    this.xcomp = x;
-    this.ycomp = y;
-    this.offset = Element.cumulativeOffset(element);
-
-    return (y >= this.offset[1] &&
-            y <  this.offset[1] + element.offsetHeight &&
-            x >= this.offset[0] &&
-            x <  this.offset[0] + element.offsetWidth);
-  },
-
-  withinIncludingScrolloffsets: function(element, x, y) {
-    var offsetcache = Element.cumulativeScrollOffset(element);
-
-    this.xcomp = x + offsetcache[0] - this.deltaX;
-    this.ycomp = y + offsetcache[1] - this.deltaY;
-    this.offset = Element.cumulativeOffset(element);
-
-    return (this.ycomp >= this.offset[1] &&
-            this.ycomp <  this.offset[1] + element.offsetHeight &&
-            this.xcomp >= this.offset[0] &&
-            this.xcomp <  this.offset[0] + element.offsetWidth);
-  },
-
-  overlap: function(mode, element) {
-    if (!mode) return 0;
-    if (mode == 'vertical')
-      return ((this.offset[1] + element.offsetHeight) - this.ycomp) /
-        element.offsetHeight;
-    if (mode == 'horizontal')
-      return ((this.offset[0] + element.offsetWidth) - this.xcomp) /
-        element.offsetWidth;
-  },
-
-
-  cumulativeOffset: Element.Methods.cumulativeOffset,
-
-  positionedOffset: Element.Methods.positionedOffset,
-
-  absolutize: function(element) {
-    Position.prepare();
-    return Element.absolutize(element);
-  },
-
-  relativize: function(element) {
-    Position.prepare();
-    return Element.relativize(element);
-  },
-
-  realOffset: Element.Methods.cumulativeScrollOffset,
-
-  offsetParent: Element.Methods.getOffsetParent,
-
-  page: Element.Methods.viewportOffset,
-
-  clone: function(source, target, options) {
-    options = options || { };
-    return Element.clonePosition(target, source, options);
-  }
-};
-
-/*--------------------------------------------------------------------------*/
-
-if (!document.getElementsByClassName) document.getElementsByClassName = function(instanceMethods){
-  function iter(name) {
-    return name.blank() ? null : "[contains(concat(' ', @class, ' '), ' " + name + " ')]";
-  }
-
-  instanceMethods.getElementsByClassName = Prototype.BrowserFeatures.XPath ?
-  function(element, className) {
-    className = className.toString().strip();
-    var cond = /\s/.test(className) ? $w(className).map(iter).join('') : iter(className);
-    return cond ? document._getElementsByXPath('.//*' + cond, element) : [];
-  } : function(element, className) {
-    className = className.toString().strip();
-    var elements = [], classNames = (/\s/.test(className) ? $w(className) : null);
-    if (!classNames && !className) return elements;
-
-    var nodes = $(element).getElementsByTagName('*');
-    className = ' ' + className + ' ';
-
-    for (var i = 0, child, cn; child = nodes[i]; i++) {
-      if (child.className && (cn = ' ' + child.className + ' ') && (cn.include(className) ||
-          (classNames && classNames.all(function(name) {
-            return !name.toString().blank() && cn.include(' ' + name + ' ');
-          }))))
-        elements.push(Element.extend(child));
-    }
-    return elements;
-  };
-
-  return function(className, parentElement) {
-    return $(parentElement || document.body).getElementsByClassName(className);
-  };
-}(Element.Methods);
-
-/*--------------------------------------------------------------------------*/
-
-Element.ClassNames = Class.create();
-Element.ClassNames.prototype = {
-  initialize: function(element) {
-    this.element = $(element);
-  },
-
-  _each: function(iterator) {
-    this.element.className.split(/\s+/).select(function(name) {
-      return name.length > 0;
-    })._each(iterator);
-  },
-
-  set: function(className) {
-    this.element.className = className;
-  },
-
-  add: function(classNameToAdd) {
-    if (this.include(classNameToAdd)) return;
-    this.set($A(this).concat(classNameToAdd).join(' '));
-  },
-
-  remove: function(classNameToRemove) {
-    if (!this.include(classNameToRemove)) return;
-    this.set($A(this).without(classNameToRemove).join(' '));
-  },
-
-  toString: function() {
-    return $A(this).join(' ');
-  }
-};
-
-Object.extend(Element.ClassNames.prototype, Enumerable);
-
-/*--------------------------------------------------------------------------*/
--- a/web/wp-includes/js/quicktags.dev.js	Wed Dec 19 12:35:13 2012 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,645 +0,0 @@
-/*
- * Quicktags
- *
- * This is the HTML editor in WordPress. It can be attached to any textarea and will
- * append a toolbar above it. This script is self-contained (does not require external libraries).
- *
- * Run quicktags(settings) to initialize it, where settings is an object containing up to 3 properties:
- * settings = {
- *   id : 'my_id',          the HTML ID of the textarea, required
- *   buttons: ''            Comma separated list of the names of the default buttons to show. Optional.
- *                          Current list of default button names: 'strong,em,link,block,del,ins,img,ul,ol,li,code,more,spell,close';
- * }
- *
- * The settings can also be a string quicktags_id.
- *
- * quicktags_id string The ID of the textarea that will be the editor canvas
- * buttons string Comma separated list of the default buttons names that will be shown in that instance.
- */
-
-// new edit toolbar used with permission
-// by Alex King
-// http://www.alexking.org/
-
-var QTags, edButtons = [], edCanvas,
-
-/**
- * Back-compat
- *
- * Define all former global functions so plugins that hack quicktags.js directly don't cause fatal errors.
- */
-edAddTag = function(){},
-edCheckOpenTags = function(){},
-edCloseAllTags = function(){},
-edInsertImage = function(){},
-edInsertLink = function(){},
-edInsertTag = function(){},
-edLink = function(){},
-edQuickLink = function(){},
-edRemoveTag = function(){},
-edShowButton = function(){},
-edShowLinks = function(){},
-edSpell = function(){},
-edToolbar = function(){};
-
-/**
- * Initialize new instance of the Quicktags editor
- */
-function quicktags(settings) {
-	return new QTags(settings);
-}
-
-/**
- * Inserts content at the caret in the active editor (textarea)
- *
- * Added for back compatibility
- * @see QTags.insertContent()
- */
-function edInsertContent(bah, txt) {
-	return QTags.insertContent(txt);
-}
-
-/**
- * Adds a button to all instances of the editor
- *
- * Added for back compatibility, use QTags.addButton() as it gives more flexibility like type of button, button placement, etc.
- * @see QTags.addButton()
- */
-function edButton(id, display, tagStart, tagEnd, access, open) {
-	return QTags.addButton( id, display, tagStart, tagEnd, access, '', -1 );
-}
-
-(function(){
-	// private stuff is prefixed with an underscore
-	var _domReady = function(func) {
-		var t, i,  DOMContentLoaded;
-
-		if ( typeof jQuery != 'undefined' ) {
-			jQuery(document).ready(func);
-		} else {
-			t = _domReady;
-			t.funcs = [];
-
-			t.ready = function() {
-				if ( ! t.isReady ) {
-					t.isReady = true;
-					for ( i = 0; i < t.funcs.length; i++ ) {
-						t.funcs[i]();
-					}
-				}
-			};
-
-			if ( t.isReady ) {
-				func();
-			} else {
-				t.funcs.push(func);
-			}
-
-			if ( ! t.eventAttached ) {
-				if ( document.addEventListener ) {
-					DOMContentLoaded = function(){document.removeEventListener('DOMContentLoaded', DOMContentLoaded, false);t.ready();};
-					document.addEventListener('DOMContentLoaded', DOMContentLoaded, false);
-					window.addEventListener('load', t.ready, false);
-				} else if ( document.attachEvent ) {
-					DOMContentLoaded = function(){if (document.readyState === 'complete'){ document.detachEvent('onreadystatechange', DOMContentLoaded);t.ready();}};
-					document.attachEvent('onreadystatechange', DOMContentLoaded);
-					window.attachEvent('onload', t.ready);
-
-					(function(){
-						try {
-							document.documentElement.doScroll("left");
-						} catch(e) {
-							setTimeout(arguments.callee, 50);
-							return;
-						}
-
-						t.ready();
-					})();
-				}
-
-				t.eventAttached = true;
-			}
-		}
-	},
-
-	_datetime = (function() {
-		var now = new Date(), zeroise;
-
-		zeroise = function(number) {
-			var str = number.toString();
-
-			if ( str.length < 2 )
-				str = "0" + str;
-
-			return str;
-		}
-
-		return now.getUTCFullYear() + '-' +
-			zeroise( now.getUTCMonth() + 1 ) + '-' +
-			zeroise( now.getUTCDate() ) + 'T' +
-			zeroise( now.getUTCHours() ) + ':' +
-			zeroise( now.getUTCMinutes() ) + ':' +
-			zeroise( now.getUTCSeconds() ) +
-			'+00:00';
-	})(),
-	qt;
-
-	qt = QTags = function(settings) {
-		if ( typeof(settings) == 'string' )
-			settings = {id: settings};
-		else if ( typeof(settings) != 'object' )
-			return false;
-
-		var t = this,
-			id = settings.id,
-			canvas = document.getElementById(id),
-			name = 'qt_' + id,
-			tb, onclick, toolbar_id;
-
-		if ( !id || !canvas )
-			return false;
-
-		t.name = name;
-		t.id = id;
-		t.canvas = canvas;
-		t.settings = settings;
-
-		if ( id == 'content' && typeof(adminpage) == 'string' && ( adminpage == 'post-new-php' || adminpage == 'post-php' ) ) {
-			// back compat hack :-(
-			edCanvas = canvas;
-			toolbar_id = 'ed_toolbar';
-		} else {
-			toolbar_id = name + '_toolbar';
-		}
-
-		tb = document.createElement('div');
-		tb.id = toolbar_id;
-		tb.className = 'quicktags-toolbar';
-
-		canvas.parentNode.insertBefore(tb, canvas);
-		t.toolbar = tb;
-
-		// listen for click events
-		onclick = function(e) {
-			e = e || window.event;
-			var target = e.target || e.srcElement, i;
-
-			// as long as it has the class ed_button, execute the callback
-			if ( / ed_button /.test(' ' + target.className + ' ') ) {
-				// we have to reassign canvas here
-				t.canvas = canvas = document.getElementById(id);
-				i = target.id.replace(name + '_', '');
-
-				if ( t.theButtons[i] )
-					t.theButtons[i].callback.call(t.theButtons[i], target, canvas, t);
-			}
-		};
-
-		if ( tb.addEventListener ) {
-			tb.addEventListener('click', onclick, false);
-		} else if ( tb.attachEvent ) {
-			tb.attachEvent('onclick', onclick);
-		}
-
-		t.getButton = function(id) {
-			return t.theButtons[id];
-		};
-
-		t.getButtonElement = function(id) {
-			return document.getElementById(name + '_' + id);
-		};
-
-		qt.instances[id] = t;
-
-		if ( !qt.instances[0] ) {
-			qt.instances[0] = qt.instances[id];
-			_domReady( function(){ qt._buttonsInit(); } );
-		}
-	};
-
-	qt.instances = {};
-
-	qt.getInstance = function(id) {
-		return qt.instances[id];
-	};
-
-	qt._buttonsInit = function() {
-		var t = this, canvas, name, settings, theButtons, html, inst, ed, id, i, use,
-			defaults = ',strong,em,link,block,del,ins,img,ul,ol,li,code,more,spell,close,';
-
-		for ( inst in t.instances ) {
-			if ( inst == 0 )
-				continue;
-
-			ed = t.instances[inst];
-			canvas = ed.canvas;
-			name = ed.name;
-			settings = ed.settings;
-			html = '';
-			theButtons = {};
-			use = '';
-
-			// set buttons
-			if ( settings.buttons )
-				use = ','+settings.buttons+',';
-
-			for ( i in edButtons ) {
-				if ( !edButtons[i] )
-					continue;
-
-				id = edButtons[i].id;
-				if ( use && defaults.indexOf(','+id+',') != -1 && use.indexOf(','+id+',') == -1 )
-					continue;
-
-				if ( !edButtons[i].instance || edButtons[i].instance == inst ) {
-					theButtons[id] = edButtons[i];
-
-					if ( edButtons[i].html )
-						html += edButtons[i].html(name + '_');
-				}
-			}
-
-			if ( use && use.indexOf(',fullscreen,') != -1 ) {
-				theButtons['fullscreen'] = new qt.FullscreenButton();
-				html += theButtons['fullscreen'].html(name + '_');
-			}
-
-
-			if ( 'rtl' == document.getElementsByTagName('html')[0].dir ) {
-				theButtons['textdirection'] = new qt.TextDirectionButton();
-				html += theButtons['textdirection'].html(name + '_');
-			}
-
-			ed.toolbar.innerHTML = html;
-			ed.theButtons = theButtons;
-		}
-		t.buttonsInitDone = true;
-	};
-
-	/**
-	 * Main API function for adding a button to Quicktags
-	 *
-	 * Adds qt.Button or qt.TagButton depending on the args. The first three args are always required.
-	 * To be able to add button(s) to Quicktags, your script should be enqueued as dependent
-	 * on "quicktags" and outputted in the footer. If you are echoing JS directly from PHP,
-	 * use add_action( 'admin_print_footer_scripts', 'output_my_js', 100 ) or add_action( 'wp_footer', 'output_my_js', 100 )
-	 *
-	 * Minimum required to add a button that calls an external function:
-	 *     QTags.addButton( 'my_id', 'my button', my_callback );
-	 *     function my_callback() { alert('yeah!'); }
-	 *
-	 * Minimum required to add a button that inserts a tag:
-	 *     QTags.addButton( 'my_id', 'my button', '<span>', '</span>' );
-	 *     QTags.addButton( 'my_id2', 'my button', '<br />' );
-	 *
-	 * @param id string required Button HTML ID
-	 * @param display string required Button's value="..."
-	 * @param arg1 string || function required Either a starting tag to be inserted like "<span>" or a callback that is executed when the button is clicked.
-	 * @param arg2 string optional Ending tag like "</span>"
-	 * @param access_key string optional Access key for the button.
-	 * @param title string optional Button's title="..."
-	 * @param priority int optional Number representing the desired position of the button in the toolbar. 1 - 9 = first, 11 - 19 = second, 21 - 29 = third, etc.
-	 * @param instance string optional Limit the button to a specifric instance of Quicktags, add to all instances if not present.
-	 * @return mixed null or the button object that is needed for back-compat.
-	 */
-	qt.addButton = function( id, display, arg1, arg2, access_key, title, priority, instance ) {
-		var btn;
-
-		if ( !id || !display )
-			return;
-
-		priority = priority || 0;
-		arg2 = arg2 || '';
-
-		if ( typeof(arg1) === 'function' ) {
-			btn = new qt.Button(id, display, access_key, title, instance);
-			btn.callback = arg1;
-		} else if ( typeof(arg1) === 'string' ) {
-			btn = new qt.TagButton(id, display, arg1, arg2, access_key, title, instance);
-		} else {
-			return;
-		}
-
-		if ( priority == -1 ) // back-compat
-			return btn;
-
-		if ( priority > 0 ) {
-			while ( typeof(edButtons[priority]) != 'undefined' ) {
-				priority++
-			}
-
-			edButtons[priority] = btn;
-		} else {
-			edButtons[edButtons.length] = btn;
-		}
-
-		if ( this.buttonsInitDone )
-			this._buttonsInit(); // add the button HTML to all instances toolbars if addButton() was called too late
-	};
-
-	qt.insertContent = function(content) {
-		var sel, startPos, endPos, scrollTop, text, canvas = document.getElementById(wpActiveEditor);
-
-		if ( !canvas )
-			return false;
-
-		if ( document.selection ) { //IE
-			canvas.focus();
-			sel = document.selection.createRange();
-			sel.text = content;
-			canvas.focus();
-		} else if ( canvas.selectionStart || canvas.selectionStart == '0' ) { // FF, WebKit, Opera
-			text = canvas.value;
-			startPos = canvas.selectionStart;
-			endPos = canvas.selectionEnd;
-			scrollTop = canvas.scrollTop;
-
-			canvas.value = text.substring(0, startPos) + content + text.substring(endPos, text.length);
-
-			canvas.focus();
-			canvas.selectionStart = startPos + content.length;
-			canvas.selectionEnd = startPos + content.length;
-			canvas.scrollTop = scrollTop;
-		} else {
-			canvas.value += content;
-			canvas.focus();
-		}
-		return true;
-	};
-
-	// a plain, dumb button
-	qt.Button = function(id, display, access, title, instance) {
-		var t = this;
-		t.id = id;
-		t.display = display;
-		t.access = access;
-		t.title = title || '';
-		t.instance = instance || '';
-	};
-	qt.Button.prototype.html = function(idPrefix) {
-		var access = this.access ? ' accesskey="' + this.access + '"' : '';
-		return '<input type="button" id="' + idPrefix + this.id + '"' + access + ' class="ed_button" title="' + this.title + '" value="' + this.display + '" />';
-	};
-	qt.Button.prototype.callback = function(){};
-
-	// a button that inserts HTML tag
-	qt.TagButton = function(id, display, tagStart, tagEnd, access, title, instance) {
-		var t = this;
-		qt.Button.call(t, id, display, access, title, instance);
-		t.tagStart = tagStart;
-		t.tagEnd = tagEnd;
-	};
-	qt.TagButton.prototype = new qt.Button();
-	qt.TagButton.prototype.openTag = function(e, ed) {
-		var t = this;
-
-		if ( ! ed.openTags ) {
-			ed.openTags = [];
-		}
-		if ( t.tagEnd ) {
-			ed.openTags.push(t.id);
-			e.value = '/' + e.value;
-		}
-	};
-	qt.TagButton.prototype.closeTag = function(e, ed) {
-		var t = this, i = t.isOpen(ed);
-
-		if ( i !== false ) {
-			ed.openTags.splice(i, 1);
-		}
-
-		e.value = t.display;
-	};
-	// whether a tag is open or not. Returns false if not open, or current open depth of the tag
-	qt.TagButton.prototype.isOpen = function (ed) {
-		var t = this, i = 0, ret = false;
-		if ( ed.openTags ) {
-			while ( ret === false && i < ed.openTags.length ) {
-				ret = ed.openTags[i] == t.id ? i : false;
-				i ++;
-			}
-		} else {
-			ret = false;
-		}
-		return ret;
-	};
-	qt.TagButton.prototype.callback = function(element, canvas, ed) {
-		var t = this, startPos, endPos, cursorPos, scrollTop, v = canvas.value, l, r, i, sel, endTag = v ? t.tagEnd : '';
-
-		if ( document.selection ) { // IE
-			canvas.focus();
-			sel = document.selection.createRange();
-			if ( sel.text.length > 0 ) {
-				if ( !t.tagEnd )
-					sel.text = sel.text + t.tagStart;
-				else
-					sel.text = t.tagStart + sel.text + endTag;
-			} else {
-				if ( !t.tagEnd ) {
-					sel.text = t.tagStart;
-				} else if ( t.isOpen(ed) === false ) {
-					sel.text = t.tagStart;
-					t.openTag(element, ed);
-				} else {
-					sel.text = endTag;
-					t.closeTag(element, ed);
-				}
-			}
-			canvas.focus();
-		} else if ( canvas.selectionStart || canvas.selectionStart == '0' ) { // FF, WebKit, Opera
-			startPos = canvas.selectionStart;
-			endPos = canvas.selectionEnd;
-			cursorPos = endPos;
-			scrollTop = canvas.scrollTop;
-			l = v.substring(0, startPos); // left of the selection
-			r = v.substring(endPos, v.length); // right of the selection
-			i = v.substring(startPos, endPos); // inside the selection
-			if ( startPos != endPos ) {
-				if ( !t.tagEnd ) {
-					canvas.value = l + i + t.tagStart + r; // insert self closing tags after the selection
-					cursorPos += t.tagStart.length;
-				} else {
-					canvas.value = l + t.tagStart + i + endTag + r;
-					cursorPos += t.tagStart.length + endTag.length;
-				}
-			} else {
-				if ( !t.tagEnd ) {
-					canvas.value = l + t.tagStart + r;
-					cursorPos = startPos + t.tagStart.length;
-				} else if ( t.isOpen(ed) === false ) {
-					canvas.value = l + t.tagStart + r;
-					t.openTag(element, ed);
-					cursorPos = startPos + t.tagStart.length;
-				} else {
-					canvas.value = l + endTag + r;
-					cursorPos = startPos + endTag.length;
-					t.closeTag(element, ed);
-				}
-			}
-
-			canvas.focus();
-			canvas.selectionStart = cursorPos;
-			canvas.selectionEnd = cursorPos;
-			canvas.scrollTop = scrollTop;
-		} else { // other browsers?
-			if ( !endTag ) {
-				canvas.value += t.tagStart;
-			} else if ( t.isOpen(ed) !== false ) {
-				canvas.value += t.tagStart;
-				t.openTag(element, ed);
-			} else {
-				canvas.value += endTag;
-				t.closeTag(element, ed);
-			}
-			canvas.focus();
-		}
-	};
-
-	// the spell button
-	qt.SpellButton = function() {
-		qt.Button.call(this, 'spell', quicktagsL10n.lookup, '', quicktagsL10n.dictionaryLookup);
-	};
-	qt.SpellButton.prototype = new qt.Button();
-	qt.SpellButton.prototype.callback = function(element, canvas, ed) {
-		var word = '', sel, startPos, endPos;
-
-		if ( document.selection ) {
-			canvas.focus();
-			sel = document.selection.createRange();
-			if ( sel.text.length > 0 ) {
-				word = sel.text;
-			}
-		} else if ( canvas.selectionStart || canvas.selectionStart == '0' ) {
-			startPos = canvas.selectionStart;
-			endPos = canvas.selectionEnd;
-			if ( startPos != endPos ) {
-				word = canvas.value.substring(startPos, endPos);
-			}
-		}
-
-		if ( word === '' ) {
-			word = prompt(quicktagsL10n.wordLookup, '');
-		}
-
-		if ( word !== null && /^\w[\w ]*$/.test(word)) {
-			window.open('http://www.answers.com/' + encodeURIComponent(word));
-		}
-	};
-
-	// the close tags button
-	qt.CloseButton = function() {
-		qt.Button.call(this, 'close', quicktagsL10n.closeTags, '', quicktagsL10n.closeAllOpenTags);
-	};
-
-	qt.CloseButton.prototype = new qt.Button();
-
-	qt._close = function(e, c, ed) {
-		var button, element, tbo = ed.openTags;
-
-		if ( tbo ) {
-			while ( tbo.length > 0 ) {
-				button = ed.getButton(tbo[tbo.length - 1]);
-				element = document.getElementById(ed.name + '_' + button.id);
-
-				if ( e )
-					button.callback.call(button, element, c, ed);
-				else
-					button.closeTag(element, ed);
-			}
-		}
-	};
-
-	qt.CloseButton.prototype.callback = qt._close;
-
-	qt.closeAllTags = function(editor_id) {
-		var ed = this.getInstance(editor_id);
-		qt._close('', ed.canvas, ed);
-	};
-
-	// the link button
-	qt.LinkButton = function() {
-		qt.TagButton.call(this, 'link', 'link', '', '</a>', 'a');
-	};
-	qt.LinkButton.prototype = new qt.TagButton();
-	qt.LinkButton.prototype.callback = function(e, c, ed, defaultValue) {
-		var URL, t = this;
-
-		if ( typeof(wpLink) != 'undefined' ) {
-			wpLink.open();
-			return;
-		}
-
-		if ( ! defaultValue )
-			defaultValue = 'http://';
-
-		if ( t.isOpen(ed) === false ) {
-			URL = prompt(quicktagsL10n.enterURL, defaultValue);
-			if ( URL ) {
-				t.tagStart = '<a href="' + URL + '">';
-				qt.TagButton.prototype.callback.call(t, e, c, ed);
-			}
-		} else {
-			qt.TagButton.prototype.callback.call(t, e, c, ed);
-		}
-	};
-
-	// the img button
-	qt.ImgButton = function() {
-		qt.TagButton.call(this, 'img', 'img', '', '', 'm');
-	};
-	qt.ImgButton.prototype = new qt.TagButton();
-	qt.ImgButton.prototype.callback = function(e, c, ed, defaultValue) {
-		if ( ! defaultValue ) {
-			defaultValue = 'http://';
-		}
-		var src = prompt(quicktagsL10n.enterImageURL, defaultValue), alt;
-		if ( src ) {
-			alt = prompt(quicktagsL10n.enterImageDescription, '');
-			this.tagStart = '<img src="' + src + '" alt="' + alt + '" />';
-			qt.TagButton.prototype.callback.call(this, e, c, ed);
-		}
-	};
-
-	qt.FullscreenButton = function() {
-		qt.Button.call(this, 'fullscreen', quicktagsL10n.fullscreen, 'f', quicktagsL10n.toggleFullscreen);
-	};
-	qt.FullscreenButton.prototype = new qt.Button();
-	qt.FullscreenButton.prototype.callback = function(e, c) {
-		if ( !c.id || typeof(fullscreen) == 'undefined' )
-			return;
-
-		fullscreen.on();
-	};
-
-	qt.TextDirectionButton = function() {
-		qt.Button.call(this, 'textdirection', quicktagsL10n.textdirection, '', quicktagsL10n.toggleTextdirection)
-	};
-	qt.TextDirectionButton.prototype = new qt.Button();
-	qt.TextDirectionButton.prototype.callback = function(e, c) {
-		var isRTL = ( 'rtl' == document.getElementsByTagName('html')[0].dir ),
-			currentDirection = c.style.direction;
-
-		if ( ! currentDirection )
-			currentDirection = ( isRTL ) ? 'rtl' : 'ltr';
-
-		c.style.direction = ( 'rtl' == currentDirection ) ? 'ltr' : 'rtl';
-		c.focus();
-	}
-
-	// ensure backward compatibility
-	edButtons[10] = new qt.TagButton('strong','b','<strong>','</strong>','b');
-	edButtons[20] = new qt.TagButton('em','i','<em>','</em>','i'),
-	edButtons[30] = new qt.LinkButton(), // special case
-	edButtons[40] = new qt.TagButton('block','b-quote','\n\n<blockquote>','</blockquote>\n\n','q'),
-	edButtons[50] = new qt.TagButton('del','del','<del datetime="' + _datetime + '">','</del>','d'),
-	edButtons[60] = new qt.TagButton('ins','ins','<ins datetime="' + _datetime + '">','</ins>','s'),
-	edButtons[70] = new qt.ImgButton(), // special case
-	edButtons[80] = new qt.TagButton('ul','ul','<ul>\n','</ul>\n\n','u'),
-	edButtons[90] = new qt.TagButton('ol','ol','<ol>\n','</ol>\n\n','o'),
-	edButtons[100] = new qt.TagButton('li','li','\t<li>','</li>\n','l'),
-	edButtons[110] = new qt.TagButton('code','code','<code>','</code>','c'),
-	edButtons[120] = new qt.TagButton('more','more','<!--more-->','','t'),
-	edButtons[130] = new qt.SpellButton(),
-	edButtons[140] = new qt.CloseButton()
-
-})();
--- a/web/wp-includes/js/quicktags.js	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/js/quicktags.js	Wed Dec 19 17:46:52 2012 -0800
@@ -1,1 +1,649 @@
-var QTags,edButtons=[],edCanvas,edAddTag=function(){},edCheckOpenTags=function(){},edCloseAllTags=function(){},edInsertImage=function(){},edInsertLink=function(){},edInsertTag=function(){},edLink=function(){},edQuickLink=function(){},edRemoveTag=function(){},edShowButton=function(){},edShowLinks=function(){},edSpell=function(){},edToolbar=function(){};function quicktags(a){return new QTags(a)}function edInsertContent(b,a){return QTags.insertContent(a)}function edButton(f,e,c,b,a,d){return QTags.addButton(f,e,c,b,a,"",-1)}(function(){var b=function(g){var f,e,d;if(typeof jQuery!="undefined"){jQuery(document).ready(g)}else{f=b;f.funcs=[];f.ready=function(){if(!f.isReady){f.isReady=true;for(e=0;e<f.funcs.length;e++){f.funcs[e]()}}};if(f.isReady){g()}else{f.funcs.push(g)}if(!f.eventAttached){if(document.addEventListener){d=function(){document.removeEventListener("DOMContentLoaded",d,false);f.ready()};document.addEventListener("DOMContentLoaded",d,false);window.addEventListener("load",f.ready,false)}else{if(document.attachEvent){d=function(){if(document.readyState==="complete"){document.detachEvent("onreadystatechange",d);f.ready()}};document.attachEvent("onreadystatechange",d);window.attachEvent("onload",f.ready);(function(){try{document.documentElement.doScroll("left")}catch(h){setTimeout(arguments.callee,50);return}f.ready()})()}}f.eventAttached=true}}},a=(function(){var d=new Date(),e;e=function(f){var g=f.toString();if(g.length<2){g="0"+g}return g};return d.getUTCFullYear()+"-"+e(d.getUTCMonth()+1)+"-"+e(d.getUTCDate())+"T"+e(d.getUTCHours())+":"+e(d.getUTCMinutes())+":"+e(d.getUTCSeconds())+"+00:00"})(),c;c=QTags=function(j){if(typeof(j)=="string"){j={id:j}}else{if(typeof(j)!="object"){return false}}var i=this,k=j.id,h=document.getElementById(k),g="qt_"+k,d,f,e;if(!k||!h){return false}i.name=g;i.id=k;i.canvas=h;i.settings=j;if(k=="content"&&typeof(adminpage)=="string"&&(adminpage=="post-new-php"||adminpage=="post-php")){edCanvas=h;e="ed_toolbar"}else{e=g+"_toolbar"}d=document.createElement("div");d.id=e;d.className="quicktags-toolbar";h.parentNode.insertBefore(d,h);i.toolbar=d;f=function(n){n=n||window.event;var m=n.target||n.srcElement,l;if(/ ed_button /.test(" "+m.className+" ")){i.canvas=h=document.getElementById(k);l=m.id.replace(g+"_","");if(i.theButtons[l]){i.theButtons[l].callback.call(i.theButtons[l],m,h,i)}}};if(d.addEventListener){d.addEventListener("click",f,false)}else{if(d.attachEvent){d.attachEvent("onclick",f)}}i.getButton=function(l){return i.theButtons[l]};i.getButtonElement=function(l){return document.getElementById(g+"_"+l)};c.instances[k]=i;if(!c.instances[0]){c.instances[0]=c.instances[k];b(function(){c._buttonsInit()})}};c.instances={};c.getInstance=function(d){return c.instances[d]};c._buttonsInit=function(){var p=this,g,e,h,o,m,l,n,f,k,d,j=",strong,em,link,block,del,ins,img,ul,ol,li,code,more,spell,close,";for(l in p.instances){if(l==0){continue}n=p.instances[l];g=n.canvas;e=n.name;h=n.settings;m="";o={};d="";if(h.buttons){d=","+h.buttons+","}for(k in edButtons){if(!edButtons[k]){continue}f=edButtons[k].id;if(d&&j.indexOf(","+f+",")!=-1&&d.indexOf(","+f+",")==-1){continue}if(!edButtons[k].instance||edButtons[k].instance==l){o[f]=edButtons[k];if(edButtons[k].html){m+=edButtons[k].html(e+"_")}}}if(d&&d.indexOf(",fullscreen,")!=-1){o.fullscreen=new c.FullscreenButton();m+=o.fullscreen.html(e+"_")}if("rtl"==document.getElementsByTagName("html")[0].dir){o.textdirection=new c.TextDirectionButton();m+=o.textdirection.html(e+"_")}n.toolbar.innerHTML=m;n.theButtons=o}p.buttonsInitDone=true};c.addButton=function(e,i,h,g,d,j,k,l){var f;if(!e||!i){return}k=k||0;g=g||"";if(typeof(h)==="function"){f=new c.Button(e,i,d,j,l);f.callback=h}else{if(typeof(h)==="string"){f=new c.TagButton(e,i,h,g,d,j,l)}else{return}}if(k==-1){return f}if(k>0){while(typeof(edButtons[k])!="undefined"){k++}edButtons[k]=f}else{edButtons[edButtons.length]=f}if(this.buttonsInitDone){this._buttonsInit()}};c.insertContent=function(g){var h,f,e,i,j,d=document.getElementById(wpActiveEditor);if(!d){return false}if(document.selection){d.focus();h=document.selection.createRange();h.text=g;d.focus()}else{if(d.selectionStart||d.selectionStart=="0"){j=d.value;f=d.selectionStart;e=d.selectionEnd;i=d.scrollTop;d.value=j.substring(0,f)+g+j.substring(e,j.length);d.focus();d.selectionStart=f+g.length;d.selectionEnd=f+g.length;d.scrollTop=i}else{d.value+=g;d.focus()}}return true};c.Button=function(i,g,e,h,d){var f=this;f.id=i;f.display=g;f.access=e;f.title=h||"";f.instance=d||""};c.Button.prototype.html=function(e){var d=this.access?' accesskey="'+this.access+'"':"";return'<input type="button" id="'+e+this.id+'"'+d+' class="ed_button" title="'+this.title+'" value="'+this.display+'" />'};c.Button.prototype.callback=function(){};c.TagButton=function(k,i,g,f,e,j,d){var h=this;c.Button.call(h,k,i,e,j,d);h.tagStart=g;h.tagEnd=f};c.TagButton.prototype=new c.Button();c.TagButton.prototype.openTag=function(g,d){var f=this;if(!d.openTags){d.openTags=[]}if(f.tagEnd){d.openTags.push(f.id);g.value="/"+g.value}};c.TagButton.prototype.closeTag=function(h,d){var g=this,f=g.isOpen(d);if(f!==false){d.openTags.splice(f,1)}h.value=g.display};c.TagButton.prototype.isOpen=function(d){var g=this,f=0,e=false;if(d.openTags){while(e===false&&f<d.openTags.length){e=d.openTags[f]==g.id?f:false;f++}}else{e=false}return e};c.TagButton.prototype.callback=function(o,h,p){var u=this,q,e,m,g,s=h.value,j,d,n,f,k=s?u.tagEnd:"";if(document.selection){h.focus();f=document.selection.createRange();if(f.text.length>0){if(!u.tagEnd){f.text=f.text+u.tagStart}else{f.text=u.tagStart+f.text+k}}else{if(!u.tagEnd){f.text=u.tagStart}else{if(u.isOpen(p)===false){f.text=u.tagStart;u.openTag(o,p)}else{f.text=k;u.closeTag(o,p)}}}h.focus()}else{if(h.selectionStart||h.selectionStart=="0"){q=h.selectionStart;e=h.selectionEnd;m=e;g=h.scrollTop;j=s.substring(0,q);d=s.substring(e,s.length);n=s.substring(q,e);if(q!=e){if(!u.tagEnd){h.value=j+n+u.tagStart+d;m+=u.tagStart.length}else{h.value=j+u.tagStart+n+k+d;m+=u.tagStart.length+k.length}}else{if(!u.tagEnd){h.value=j+u.tagStart+d;m=q+u.tagStart.length}else{if(u.isOpen(p)===false){h.value=j+u.tagStart+d;u.openTag(o,p);m=q+u.tagStart.length}else{h.value=j+k+d;m=q+k.length;u.closeTag(o,p)}}}h.focus();h.selectionStart=m;h.selectionEnd=m;h.scrollTop=g}else{if(!k){h.value+=u.tagStart}else{if(u.isOpen(p)!==false){h.value+=u.tagStart;u.openTag(o,p)}else{h.value+=k;u.closeTag(o,p)}}h.focus()}}};c.SpellButton=function(){c.Button.call(this,"spell",quicktagsL10n.lookup,"",quicktagsL10n.dictionaryLookup)};c.SpellButton.prototype=new c.Button();c.SpellButton.prototype.callback=function(h,g,d){var j="",i,f,e;if(document.selection){g.focus();i=document.selection.createRange();if(i.text.length>0){j=i.text}}else{if(g.selectionStart||g.selectionStart=="0"){f=g.selectionStart;e=g.selectionEnd;if(f!=e){j=g.value.substring(f,e)}}}if(j===""){j=prompt(quicktagsL10n.wordLookup,"")}if(j!==null&&/^\w[\w ]*$/.test(j)){window.open("http://www.answers.com/"+encodeURIComponent(j))}};c.CloseButton=function(){c.Button.call(this,"close",quicktagsL10n.closeTags,"",quicktagsL10n.closeAllOpenTags)};c.CloseButton.prototype=new c.Button();c._close=function(i,j,d){var g,f,h=d.openTags;if(h){while(h.length>0){g=d.getButton(h[h.length-1]);f=document.getElementById(d.name+"_"+g.id);if(i){g.callback.call(g,f,j,d)}else{g.closeTag(f,d)}}}};c.CloseButton.prototype.callback=c._close;c.closeAllTags=function(e){var d=this.getInstance(e);c._close("",d.canvas,d)};c.LinkButton=function(){c.TagButton.call(this,"link","link","","</a>","a")};c.LinkButton.prototype=new c.TagButton();c.LinkButton.prototype.callback=function(i,j,g,f){var d,h=this;if(typeof(wpLink)!="undefined"){wpLink.open();return}if(!f){f="http://"}if(h.isOpen(g)===false){d=prompt(quicktagsL10n.enterURL,f);if(d){h.tagStart='<a href="'+d+'">';c.TagButton.prototype.callback.call(h,i,j,g)}}else{c.TagButton.prototype.callback.call(h,i,j,g)}};c.ImgButton=function(){c.TagButton.call(this,"img","img","","","m")};c.ImgButton.prototype=new c.TagButton();c.ImgButton.prototype.callback=function(h,j,f,d){if(!d){d="http://"}var i=prompt(quicktagsL10n.enterImageURL,d),g;if(i){g=prompt(quicktagsL10n.enterImageDescription,"");this.tagStart='<img src="'+i+'" alt="'+g+'" />';c.TagButton.prototype.callback.call(this,h,j,f)}};c.FullscreenButton=function(){c.Button.call(this,"fullscreen",quicktagsL10n.fullscreen,"f",quicktagsL10n.toggleFullscreen)};c.FullscreenButton.prototype=new c.Button();c.FullscreenButton.prototype.callback=function(d,f){if(!f.id||typeof(fullscreen)=="undefined"){return}fullscreen.on()};c.TextDirectionButton=function(){c.Button.call(this,"textdirection",quicktagsL10n.textdirection,"",quicktagsL10n.toggleTextdirection)};c.TextDirectionButton.prototype=new c.Button();c.TextDirectionButton.prototype.callback=function(f,h){var d=("rtl"==document.getElementsByTagName("html")[0].dir),g=h.style.direction;if(!g){g=(d)?"rtl":"ltr"}h.style.direction=("rtl"==g)?"ltr":"rtl";h.focus()};edButtons[10]=new c.TagButton("strong","b","<strong>","</strong>","b");edButtons[20]=new c.TagButton("em","i","<em>","</em>","i"),edButtons[30]=new c.LinkButton(),edButtons[40]=new c.TagButton("block","b-quote","\n\n<blockquote>","</blockquote>\n\n","q"),edButtons[50]=new c.TagButton("del","del",'<del datetime="'+a+'">',"</del>","d"),edButtons[60]=new c.TagButton("ins","ins",'<ins datetime="'+a+'">',"</ins>","s"),edButtons[70]=new c.ImgButton(),edButtons[80]=new c.TagButton("ul","ul","<ul>\n","</ul>\n\n","u"),edButtons[90]=new c.TagButton("ol","ol","<ol>\n","</ol>\n\n","o"),edButtons[100]=new c.TagButton("li","li","\t<li>","</li>\n","l"),edButtons[110]=new c.TagButton("code","code","<code>","</code>","c"),edButtons[120]=new c.TagButton("more","more","<!--more-->","","t"),edButtons[130]=new c.SpellButton(),edButtons[140]=new c.CloseButton()})();
\ No newline at end of file
+/*
+ * Quicktags
+ *
+ * This is the HTML editor in WordPress. It can be attached to any textarea and will
+ * append a toolbar above it. This script is self-contained (does not require external libraries).
+ *
+ * Run quicktags(settings) to initialize it, where settings is an object containing up to 3 properties:
+ * settings = {
+ *   id : 'my_id',          the HTML ID of the textarea, required
+ *   buttons: ''            Comma separated list of the names of the default buttons to show. Optional.
+ *                          Current list of default button names: 'strong,em,link,block,del,ins,img,ul,ol,li,code,more,spell,close';
+ * }
+ *
+ * The settings can also be a string quicktags_id.
+ *
+ * quicktags_id string The ID of the textarea that will be the editor canvas
+ * buttons string Comma separated list of the default buttons names that will be shown in that instance.
+ */
+
+// new edit toolbar used with permission
+// by Alex King
+// http://www.alexking.org/
+
+var QTags, edButtons = [], edCanvas,
+
+/**
+ * Back-compat
+ *
+ * Define all former global functions so plugins that hack quicktags.js directly don't cause fatal errors.
+ */
+edAddTag = function(){},
+edCheckOpenTags = function(){},
+edCloseAllTags = function(){},
+edInsertImage = function(){},
+edInsertLink = function(){},
+edInsertTag = function(){},
+edLink = function(){},
+edQuickLink = function(){},
+edRemoveTag = function(){},
+edShowButton = function(){},
+edShowLinks = function(){},
+edSpell = function(){},
+edToolbar = function(){};
+
+/**
+ * Initialize new instance of the Quicktags editor
+ */
+function quicktags(settings) {
+	return new QTags(settings);
+}
+
+/**
+ * Inserts content at the caret in the active editor (textarea)
+ *
+ * Added for back compatibility
+ * @see QTags.insertContent()
+ */
+function edInsertContent(bah, txt) {
+	return QTags.insertContent(txt);
+}
+
+/**
+ * Adds a button to all instances of the editor
+ *
+ * Added for back compatibility, use QTags.addButton() as it gives more flexibility like type of button, button placement, etc.
+ * @see QTags.addButton()
+ */
+function edButton(id, display, tagStart, tagEnd, access, open) {
+	return QTags.addButton( id, display, tagStart, tagEnd, access, '', -1 );
+}
+
+(function(){
+	// private stuff is prefixed with an underscore
+	var _domReady = function(func) {
+		var t, i,  DOMContentLoaded;
+
+		if ( typeof jQuery != 'undefined' ) {
+			jQuery(document).ready(func);
+		} else {
+			t = _domReady;
+			t.funcs = [];
+
+			t.ready = function() {
+				if ( ! t.isReady ) {
+					t.isReady = true;
+					for ( i = 0; i < t.funcs.length; i++ ) {
+						t.funcs[i]();
+					}
+				}
+			};
+
+			if ( t.isReady ) {
+				func();
+			} else {
+				t.funcs.push(func);
+			}
+
+			if ( ! t.eventAttached ) {
+				if ( document.addEventListener ) {
+					DOMContentLoaded = function(){document.removeEventListener('DOMContentLoaded', DOMContentLoaded, false);t.ready();};
+					document.addEventListener('DOMContentLoaded', DOMContentLoaded, false);
+					window.addEventListener('load', t.ready, false);
+				} else if ( document.attachEvent ) {
+					DOMContentLoaded = function(){if (document.readyState === 'complete'){ document.detachEvent('onreadystatechange', DOMContentLoaded);t.ready();}};
+					document.attachEvent('onreadystatechange', DOMContentLoaded);
+					window.attachEvent('onload', t.ready);
+
+					(function(){
+						try {
+							document.documentElement.doScroll("left");
+						} catch(e) {
+							setTimeout(arguments.callee, 50);
+							return;
+						}
+
+						t.ready();
+					})();
+				}
+
+				t.eventAttached = true;
+			}
+		}
+	},
+
+	_datetime = (function() {
+		var now = new Date(), zeroise;
+
+		zeroise = function(number) {
+			var str = number.toString();
+
+			if ( str.length < 2 )
+				str = "0" + str;
+
+			return str;
+		}
+
+		return now.getUTCFullYear() + '-' +
+			zeroise( now.getUTCMonth() + 1 ) + '-' +
+			zeroise( now.getUTCDate() ) + 'T' +
+			zeroise( now.getUTCHours() ) + ':' +
+			zeroise( now.getUTCMinutes() ) + ':' +
+			zeroise( now.getUTCSeconds() ) +
+			'+00:00';
+	})(),
+	qt;
+
+	qt = QTags = function(settings) {
+		if ( typeof(settings) == 'string' )
+			settings = {id: settings};
+		else if ( typeof(settings) != 'object' )
+			return false;
+
+		var t = this,
+			id = settings.id,
+			canvas = document.getElementById(id),
+			name = 'qt_' + id,
+			tb, onclick, toolbar_id;
+
+		if ( !id || !canvas )
+			return false;
+
+		t.name = name;
+		t.id = id;
+		t.canvas = canvas;
+		t.settings = settings;
+
+		if ( id == 'content' && typeof(adminpage) == 'string' && ( adminpage == 'post-new-php' || adminpage == 'post-php' ) ) {
+			// back compat hack :-(
+			edCanvas = canvas;
+			toolbar_id = 'ed_toolbar';
+		} else {
+			toolbar_id = name + '_toolbar';
+		}
+
+		tb = document.createElement('div');
+		tb.id = toolbar_id;
+		tb.className = 'quicktags-toolbar';
+
+		canvas.parentNode.insertBefore(tb, canvas);
+		t.toolbar = tb;
+
+		// listen for click events
+		onclick = function(e) {
+			e = e || window.event;
+			var target = e.target || e.srcElement, visible = target.clientWidth || target.offsetWidth, i;
+
+			// don't call the callback on pressing the accesskey when the button is not visible
+			if ( !visible )
+				return;
+
+			// as long as it has the class ed_button, execute the callback
+			if ( / ed_button /.test(' ' + target.className + ' ') ) {
+				// we have to reassign canvas here
+				t.canvas = canvas = document.getElementById(id);
+				i = target.id.replace(name + '_', '');
+
+				if ( t.theButtons[i] )
+					t.theButtons[i].callback.call(t.theButtons[i], target, canvas, t);
+			}
+		};
+
+		if ( tb.addEventListener ) {
+			tb.addEventListener('click', onclick, false);
+		} else if ( tb.attachEvent ) {
+			tb.attachEvent('onclick', onclick);
+		}
+
+		t.getButton = function(id) {
+			return t.theButtons[id];
+		};
+
+		t.getButtonElement = function(id) {
+			return document.getElementById(name + '_' + id);
+		};
+
+		qt.instances[id] = t;
+
+		if ( !qt.instances[0] ) {
+			qt.instances[0] = qt.instances[id];
+			_domReady( function(){ qt._buttonsInit(); } );
+		}
+	};
+
+	qt.instances = {};
+
+	qt.getInstance = function(id) {
+		return qt.instances[id];
+	};
+
+	qt._buttonsInit = function() {
+		var t = this, canvas, name, settings, theButtons, html, inst, ed, id, i, use,
+			defaults = ',strong,em,link,block,del,ins,img,ul,ol,li,code,more,spell,close,';
+
+		for ( inst in t.instances ) {
+			if ( inst == 0 )
+				continue;
+
+			ed = t.instances[inst];
+			canvas = ed.canvas;
+			name = ed.name;
+			settings = ed.settings;
+			html = '';
+			theButtons = {};
+			use = '';
+
+			// set buttons
+			if ( settings.buttons )
+				use = ','+settings.buttons+',';
+
+			for ( i in edButtons ) {
+				if ( !edButtons[i] )
+					continue;
+
+				id = edButtons[i].id;
+				if ( use && defaults.indexOf(','+id+',') != -1 && use.indexOf(','+id+',') == -1 )
+					continue;
+
+				if ( !edButtons[i].instance || edButtons[i].instance == inst ) {
+					theButtons[id] = edButtons[i];
+
+					if ( edButtons[i].html )
+						html += edButtons[i].html(name + '_');
+				}
+			}
+
+			if ( use && use.indexOf(',fullscreen,') != -1 ) {
+				theButtons['fullscreen'] = new qt.FullscreenButton();
+				html += theButtons['fullscreen'].html(name + '_');
+			}
+
+
+			if ( 'rtl' == document.getElementsByTagName('html')[0].dir ) {
+				theButtons['textdirection'] = new qt.TextDirectionButton();
+				html += theButtons['textdirection'].html(name + '_');
+			}
+
+			ed.toolbar.innerHTML = html;
+			ed.theButtons = theButtons;
+		}
+		t.buttonsInitDone = true;
+	};
+
+	/**
+	 * Main API function for adding a button to Quicktags
+	 *
+	 * Adds qt.Button or qt.TagButton depending on the args. The first three args are always required.
+	 * To be able to add button(s) to Quicktags, your script should be enqueued as dependent
+	 * on "quicktags" and outputted in the footer. If you are echoing JS directly from PHP,
+	 * use add_action( 'admin_print_footer_scripts', 'output_my_js', 100 ) or add_action( 'wp_footer', 'output_my_js', 100 )
+	 *
+	 * Minimum required to add a button that calls an external function:
+	 *     QTags.addButton( 'my_id', 'my button', my_callback );
+	 *     function my_callback() { alert('yeah!'); }
+	 *
+	 * Minimum required to add a button that inserts a tag:
+	 *     QTags.addButton( 'my_id', 'my button', '<span>', '</span>' );
+	 *     QTags.addButton( 'my_id2', 'my button', '<br />' );
+	 *
+	 * @param id string required Button HTML ID
+	 * @param display string required Button's value="..."
+	 * @param arg1 string || function required Either a starting tag to be inserted like "<span>" or a callback that is executed when the button is clicked.
+	 * @param arg2 string optional Ending tag like "</span>"
+	 * @param access_key string optional Access key for the button.
+	 * @param title string optional Button's title="..."
+	 * @param priority int optional Number representing the desired position of the button in the toolbar. 1 - 9 = first, 11 - 19 = second, 21 - 29 = third, etc.
+	 * @param instance string optional Limit the button to a specifric instance of Quicktags, add to all instances if not present.
+	 * @return mixed null or the button object that is needed for back-compat.
+	 */
+	qt.addButton = function( id, display, arg1, arg2, access_key, title, priority, instance ) {
+		var btn;
+
+		if ( !id || !display )
+			return;
+
+		priority = priority || 0;
+		arg2 = arg2 || '';
+
+		if ( typeof(arg1) === 'function' ) {
+			btn = new qt.Button(id, display, access_key, title, instance);
+			btn.callback = arg1;
+		} else if ( typeof(arg1) === 'string' ) {
+			btn = new qt.TagButton(id, display, arg1, arg2, access_key, title, instance);
+		} else {
+			return;
+		}
+
+		if ( priority == -1 ) // back-compat
+			return btn;
+
+		if ( priority > 0 ) {
+			while ( typeof(edButtons[priority]) != 'undefined' ) {
+				priority++
+			}
+
+			edButtons[priority] = btn;
+		} else {
+			edButtons[edButtons.length] = btn;
+		}
+
+		if ( this.buttonsInitDone )
+			this._buttonsInit(); // add the button HTML to all instances toolbars if addButton() was called too late
+	};
+
+	qt.insertContent = function(content) {
+		var sel, startPos, endPos, scrollTop, text, canvas = document.getElementById(wpActiveEditor);
+
+		if ( !canvas )
+			return false;
+
+		if ( document.selection ) { //IE
+			canvas.focus();
+			sel = document.selection.createRange();
+			sel.text = content;
+			canvas.focus();
+		} else if ( canvas.selectionStart || canvas.selectionStart == '0' ) { // FF, WebKit, Opera
+			text = canvas.value;
+			startPos = canvas.selectionStart;
+			endPos = canvas.selectionEnd;
+			scrollTop = canvas.scrollTop;
+
+			canvas.value = text.substring(0, startPos) + content + text.substring(endPos, text.length);
+
+			canvas.focus();
+			canvas.selectionStart = startPos + content.length;
+			canvas.selectionEnd = startPos + content.length;
+			canvas.scrollTop = scrollTop;
+		} else {
+			canvas.value += content;
+			canvas.focus();
+		}
+		return true;
+	};
+
+	// a plain, dumb button
+	qt.Button = function(id, display, access, title, instance) {
+		var t = this;
+		t.id = id;
+		t.display = display;
+		t.access = access;
+		t.title = title || '';
+		t.instance = instance || '';
+	};
+	qt.Button.prototype.html = function(idPrefix) {
+		var access = this.access ? ' accesskey="' + this.access + '"' : '';
+		return '<input type="button" id="' + idPrefix + this.id + '"' + access + ' class="ed_button" title="' + this.title + '" value="' + this.display + '" />';
+	};
+	qt.Button.prototype.callback = function(){};
+
+	// a button that inserts HTML tag
+	qt.TagButton = function(id, display, tagStart, tagEnd, access, title, instance) {
+		var t = this;
+		qt.Button.call(t, id, display, access, title, instance);
+		t.tagStart = tagStart;
+		t.tagEnd = tagEnd;
+	};
+	qt.TagButton.prototype = new qt.Button();
+	qt.TagButton.prototype.openTag = function(e, ed) {
+		var t = this;
+
+		if ( ! ed.openTags ) {
+			ed.openTags = [];
+		}
+		if ( t.tagEnd ) {
+			ed.openTags.push(t.id);
+			e.value = '/' + e.value;
+		}
+	};
+	qt.TagButton.prototype.closeTag = function(e, ed) {
+		var t = this, i = t.isOpen(ed);
+
+		if ( i !== false ) {
+			ed.openTags.splice(i, 1);
+		}
+
+		e.value = t.display;
+	};
+	// whether a tag is open or not. Returns false if not open, or current open depth of the tag
+	qt.TagButton.prototype.isOpen = function (ed) {
+		var t = this, i = 0, ret = false;
+		if ( ed.openTags ) {
+			while ( ret === false && i < ed.openTags.length ) {
+				ret = ed.openTags[i] == t.id ? i : false;
+				i ++;
+			}
+		} else {
+			ret = false;
+		}
+		return ret;
+	};
+	qt.TagButton.prototype.callback = function(element, canvas, ed) {
+		var t = this, startPos, endPos, cursorPos, scrollTop, v = canvas.value, l, r, i, sel, endTag = v ? t.tagEnd : '';
+
+		if ( document.selection ) { // IE
+			canvas.focus();
+			sel = document.selection.createRange();
+			if ( sel.text.length > 0 ) {
+				if ( !t.tagEnd )
+					sel.text = sel.text + t.tagStart;
+				else
+					sel.text = t.tagStart + sel.text + endTag;
+			} else {
+				if ( !t.tagEnd ) {
+					sel.text = t.tagStart;
+				} else if ( t.isOpen(ed) === false ) {
+					sel.text = t.tagStart;
+					t.openTag(element, ed);
+				} else {
+					sel.text = endTag;
+					t.closeTag(element, ed);
+				}
+			}
+			canvas.focus();
+		} else if ( canvas.selectionStart || canvas.selectionStart == '0' ) { // FF, WebKit, Opera
+			startPos = canvas.selectionStart;
+			endPos = canvas.selectionEnd;
+			cursorPos = endPos;
+			scrollTop = canvas.scrollTop;
+			l = v.substring(0, startPos); // left of the selection
+			r = v.substring(endPos, v.length); // right of the selection
+			i = v.substring(startPos, endPos); // inside the selection
+			if ( startPos != endPos ) {
+				if ( !t.tagEnd ) {
+					canvas.value = l + i + t.tagStart + r; // insert self closing tags after the selection
+					cursorPos += t.tagStart.length;
+				} else {
+					canvas.value = l + t.tagStart + i + endTag + r;
+					cursorPos += t.tagStart.length + endTag.length;
+				}
+			} else {
+				if ( !t.tagEnd ) {
+					canvas.value = l + t.tagStart + r;
+					cursorPos = startPos + t.tagStart.length;
+				} else if ( t.isOpen(ed) === false ) {
+					canvas.value = l + t.tagStart + r;
+					t.openTag(element, ed);
+					cursorPos = startPos + t.tagStart.length;
+				} else {
+					canvas.value = l + endTag + r;
+					cursorPos = startPos + endTag.length;
+					t.closeTag(element, ed);
+				}
+			}
+
+			canvas.focus();
+			canvas.selectionStart = cursorPos;
+			canvas.selectionEnd = cursorPos;
+			canvas.scrollTop = scrollTop;
+		} else { // other browsers?
+			if ( !endTag ) {
+				canvas.value += t.tagStart;
+			} else if ( t.isOpen(ed) !== false ) {
+				canvas.value += t.tagStart;
+				t.openTag(element, ed);
+			} else {
+				canvas.value += endTag;
+				t.closeTag(element, ed);
+			}
+			canvas.focus();
+		}
+	};
+
+	// the spell button
+	qt.SpellButton = function() {
+		qt.Button.call(this, 'spell', quicktagsL10n.lookup, '', quicktagsL10n.dictionaryLookup);
+	};
+	qt.SpellButton.prototype = new qt.Button();
+	qt.SpellButton.prototype.callback = function(element, canvas, ed) {
+		var word = '', sel, startPos, endPos;
+
+		if ( document.selection ) {
+			canvas.focus();
+			sel = document.selection.createRange();
+			if ( sel.text.length > 0 ) {
+				word = sel.text;
+			}
+		} else if ( canvas.selectionStart || canvas.selectionStart == '0' ) {
+			startPos = canvas.selectionStart;
+			endPos = canvas.selectionEnd;
+			if ( startPos != endPos ) {
+				word = canvas.value.substring(startPos, endPos);
+			}
+		}
+
+		if ( word === '' ) {
+			word = prompt(quicktagsL10n.wordLookup, '');
+		}
+
+		if ( word !== null && /^\w[\w ]*$/.test(word)) {
+			window.open('http://www.answers.com/' + encodeURIComponent(word));
+		}
+	};
+
+	// the close tags button
+	qt.CloseButton = function() {
+		qt.Button.call(this, 'close', quicktagsL10n.closeTags, '', quicktagsL10n.closeAllOpenTags);
+	};
+
+	qt.CloseButton.prototype = new qt.Button();
+
+	qt._close = function(e, c, ed) {
+		var button, element, tbo = ed.openTags;
+
+		if ( tbo ) {
+			while ( tbo.length > 0 ) {
+				button = ed.getButton(tbo[tbo.length - 1]);
+				element = document.getElementById(ed.name + '_' + button.id);
+
+				if ( e )
+					button.callback.call(button, element, c, ed);
+				else
+					button.closeTag(element, ed);
+			}
+		}
+	};
+
+	qt.CloseButton.prototype.callback = qt._close;
+
+	qt.closeAllTags = function(editor_id) {
+		var ed = this.getInstance(editor_id);
+		qt._close('', ed.canvas, ed);
+	};
+
+	// the link button
+	qt.LinkButton = function() {
+		qt.TagButton.call(this, 'link', 'link', '', '</a>', 'a');
+	};
+	qt.LinkButton.prototype = new qt.TagButton();
+	qt.LinkButton.prototype.callback = function(e, c, ed, defaultValue) {
+		var URL, t = this;
+
+		if ( typeof(wpLink) != 'undefined' ) {
+			wpLink.open();
+			return;
+		}
+
+		if ( ! defaultValue )
+			defaultValue = 'http://';
+
+		if ( t.isOpen(ed) === false ) {
+			URL = prompt(quicktagsL10n.enterURL, defaultValue);
+			if ( URL ) {
+				t.tagStart = '<a href="' + URL + '">';
+				qt.TagButton.prototype.callback.call(t, e, c, ed);
+			}
+		} else {
+			qt.TagButton.prototype.callback.call(t, e, c, ed);
+		}
+	};
+
+	// the img button
+	qt.ImgButton = function() {
+		qt.TagButton.call(this, 'img', 'img', '', '', 'm');
+	};
+	qt.ImgButton.prototype = new qt.TagButton();
+	qt.ImgButton.prototype.callback = function(e, c, ed, defaultValue) {
+		if ( ! defaultValue ) {
+			defaultValue = 'http://';
+		}
+		var src = prompt(quicktagsL10n.enterImageURL, defaultValue), alt;
+		if ( src ) {
+			alt = prompt(quicktagsL10n.enterImageDescription, '');
+			this.tagStart = '<img src="' + src + '" alt="' + alt + '" />';
+			qt.TagButton.prototype.callback.call(this, e, c, ed);
+		}
+	};
+
+	qt.FullscreenButton = function() {
+		qt.Button.call(this, 'fullscreen', quicktagsL10n.fullscreen, 'f', quicktagsL10n.toggleFullscreen);
+	};
+	qt.FullscreenButton.prototype = new qt.Button();
+	qt.FullscreenButton.prototype.callback = function(e, c) {
+		if ( !c.id || typeof(fullscreen) == 'undefined' )
+			return;
+
+		fullscreen.on();
+	};
+
+	qt.TextDirectionButton = function() {
+		qt.Button.call(this, 'textdirection', quicktagsL10n.textdirection, '', quicktagsL10n.toggleTextdirection)
+	};
+	qt.TextDirectionButton.prototype = new qt.Button();
+	qt.TextDirectionButton.prototype.callback = function(e, c) {
+		var isRTL = ( 'rtl' == document.getElementsByTagName('html')[0].dir ),
+			currentDirection = c.style.direction;
+
+		if ( ! currentDirection )
+			currentDirection = ( isRTL ) ? 'rtl' : 'ltr';
+
+		c.style.direction = ( 'rtl' == currentDirection ) ? 'ltr' : 'rtl';
+		c.focus();
+	}
+
+	// ensure backward compatibility
+	edButtons[10] = new qt.TagButton('strong','b','<strong>','</strong>','b');
+	edButtons[20] = new qt.TagButton('em','i','<em>','</em>','i'),
+	edButtons[30] = new qt.LinkButton(), // special case
+	edButtons[40] = new qt.TagButton('block','b-quote','\n\n<blockquote>','</blockquote>\n\n','q'),
+	edButtons[50] = new qt.TagButton('del','del','<del datetime="' + _datetime + '">','</del>','d'),
+	edButtons[60] = new qt.TagButton('ins','ins','<ins datetime="' + _datetime + '">','</ins>','s'),
+	edButtons[70] = new qt.ImgButton(), // special case
+	edButtons[80] = new qt.TagButton('ul','ul','<ul>\n','</ul>\n\n','u'),
+	edButtons[90] = new qt.TagButton('ol','ol','<ol>\n','</ol>\n\n','o'),
+	edButtons[100] = new qt.TagButton('li','li','\t<li>','</li>\n','l'),
+	edButtons[110] = new qt.TagButton('code','code','<code>','</code>','c'),
+	edButtons[120] = new qt.TagButton('more','more','<!--more-->','','t'),
+	edButtons[130] = new qt.SpellButton(),
+	edButtons[140] = new qt.CloseButton()
+
+})();
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-includes/js/quicktags.min.js	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,1 @@
+var QTags,edButtons=[],edCanvas,edAddTag=function(){},edCheckOpenTags=function(){},edCloseAllTags=function(){},edInsertImage=function(){},edInsertLink=function(){},edInsertTag=function(){},edLink=function(){},edQuickLink=function(){},edRemoveTag=function(){},edShowButton=function(){},edShowLinks=function(){},edSpell=function(){},edToolbar=function(){};function quicktags(a){return new QTags(a)}function edInsertContent(b,a){return QTags.insertContent(a)}function edButton(f,e,c,b,a,d){return QTags.addButton(f,e,c,b,a,"",-1)}(function(){var b=function(g){var f,e,d;if(typeof jQuery!="undefined"){jQuery(document).ready(g)}else{f=b;f.funcs=[];f.ready=function(){if(!f.isReady){f.isReady=true;for(e=0;e<f.funcs.length;e++){f.funcs[e]()}}};if(f.isReady){g()}else{f.funcs.push(g)}if(!f.eventAttached){if(document.addEventListener){d=function(){document.removeEventListener("DOMContentLoaded",d,false);f.ready()};document.addEventListener("DOMContentLoaded",d,false);window.addEventListener("load",f.ready,false)}else{if(document.attachEvent){d=function(){if(document.readyState==="complete"){document.detachEvent("onreadystatechange",d);f.ready()}};document.attachEvent("onreadystatechange",d);window.attachEvent("onload",f.ready);(function(){try{document.documentElement.doScroll("left")}catch(h){setTimeout(arguments.callee,50);return}f.ready()})()}}f.eventAttached=true}}},a=(function(){var d=new Date(),e;e=function(f){var g=f.toString();if(g.length<2){g="0"+g}return g};return d.getUTCFullYear()+"-"+e(d.getUTCMonth()+1)+"-"+e(d.getUTCDate())+"T"+e(d.getUTCHours())+":"+e(d.getUTCMinutes())+":"+e(d.getUTCSeconds())+"+00:00"})(),c;c=QTags=function(j){if(typeof(j)=="string"){j={id:j}}else{if(typeof(j)!="object"){return false}}var i=this,k=j.id,h=document.getElementById(k),g="qt_"+k,d,f,e;if(!k||!h){return false}i.name=g;i.id=k;i.canvas=h;i.settings=j;if(k=="content"&&typeof(adminpage)=="string"&&(adminpage=="post-new-php"||adminpage=="post-php")){edCanvas=h;e="ed_toolbar"}else{e=g+"_toolbar"}d=document.createElement("div");d.id=e;d.className="quicktags-toolbar";h.parentNode.insertBefore(d,h);i.toolbar=d;f=function(n){n=n||window.event;var m=n.target||n.srcElement,o=m.clientWidth||m.offsetWidth,l;if(!o){return}if(/ ed_button /.test(" "+m.className+" ")){i.canvas=h=document.getElementById(k);l=m.id.replace(g+"_","");if(i.theButtons[l]){i.theButtons[l].callback.call(i.theButtons[l],m,h,i)}}};if(d.addEventListener){d.addEventListener("click",f,false)}else{if(d.attachEvent){d.attachEvent("onclick",f)}}i.getButton=function(l){return i.theButtons[l]};i.getButtonElement=function(l){return document.getElementById(g+"_"+l)};c.instances[k]=i;if(!c.instances[0]){c.instances[0]=c.instances[k];b(function(){c._buttonsInit()})}};c.instances={};c.getInstance=function(d){return c.instances[d]};c._buttonsInit=function(){var p=this,g,e,h,o,m,l,n,f,k,d,j=",strong,em,link,block,del,ins,img,ul,ol,li,code,more,spell,close,";for(l in p.instances){if(l==0){continue}n=p.instances[l];g=n.canvas;e=n.name;h=n.settings;m="";o={};d="";if(h.buttons){d=","+h.buttons+","}for(k in edButtons){if(!edButtons[k]){continue}f=edButtons[k].id;if(d&&j.indexOf(","+f+",")!=-1&&d.indexOf(","+f+",")==-1){continue}if(!edButtons[k].instance||edButtons[k].instance==l){o[f]=edButtons[k];if(edButtons[k].html){m+=edButtons[k].html(e+"_")}}}if(d&&d.indexOf(",fullscreen,")!=-1){o.fullscreen=new c.FullscreenButton();m+=o.fullscreen.html(e+"_")}if("rtl"==document.getElementsByTagName("html")[0].dir){o.textdirection=new c.TextDirectionButton();m+=o.textdirection.html(e+"_")}n.toolbar.innerHTML=m;n.theButtons=o}p.buttonsInitDone=true};c.addButton=function(e,i,h,g,d,j,k,l){var f;if(!e||!i){return}k=k||0;g=g||"";if(typeof(h)==="function"){f=new c.Button(e,i,d,j,l);f.callback=h}else{if(typeof(h)==="string"){f=new c.TagButton(e,i,h,g,d,j,l)}else{return}}if(k==-1){return f}if(k>0){while(typeof(edButtons[k])!="undefined"){k++}edButtons[k]=f}else{edButtons[edButtons.length]=f}if(this.buttonsInitDone){this._buttonsInit()}};c.insertContent=function(g){var h,f,e,i,j,d=document.getElementById(wpActiveEditor);if(!d){return false}if(document.selection){d.focus();h=document.selection.createRange();h.text=g;d.focus()}else{if(d.selectionStart||d.selectionStart=="0"){j=d.value;f=d.selectionStart;e=d.selectionEnd;i=d.scrollTop;d.value=j.substring(0,f)+g+j.substring(e,j.length);d.focus();d.selectionStart=f+g.length;d.selectionEnd=f+g.length;d.scrollTop=i}else{d.value+=g;d.focus()}}return true};c.Button=function(i,g,e,h,d){var f=this;f.id=i;f.display=g;f.access=e;f.title=h||"";f.instance=d||""};c.Button.prototype.html=function(e){var d=this.access?' accesskey="'+this.access+'"':"";return'<input type="button" id="'+e+this.id+'"'+d+' class="ed_button" title="'+this.title+'" value="'+this.display+'" />'};c.Button.prototype.callback=function(){};c.TagButton=function(k,i,g,f,e,j,d){var h=this;c.Button.call(h,k,i,e,j,d);h.tagStart=g;h.tagEnd=f};c.TagButton.prototype=new c.Button();c.TagButton.prototype.openTag=function(g,d){var f=this;if(!d.openTags){d.openTags=[]}if(f.tagEnd){d.openTags.push(f.id);g.value="/"+g.value}};c.TagButton.prototype.closeTag=function(h,d){var g=this,f=g.isOpen(d);if(f!==false){d.openTags.splice(f,1)}h.value=g.display};c.TagButton.prototype.isOpen=function(d){var g=this,f=0,e=false;if(d.openTags){while(e===false&&f<d.openTags.length){e=d.openTags[f]==g.id?f:false;f++}}else{e=false}return e};c.TagButton.prototype.callback=function(o,h,p){var u=this,q,e,m,g,s=h.value,j,d,n,f,k=s?u.tagEnd:"";if(document.selection){h.focus();f=document.selection.createRange();if(f.text.length>0){if(!u.tagEnd){f.text=f.text+u.tagStart}else{f.text=u.tagStart+f.text+k}}else{if(!u.tagEnd){f.text=u.tagStart}else{if(u.isOpen(p)===false){f.text=u.tagStart;u.openTag(o,p)}else{f.text=k;u.closeTag(o,p)}}}h.focus()}else{if(h.selectionStart||h.selectionStart=="0"){q=h.selectionStart;e=h.selectionEnd;m=e;g=h.scrollTop;j=s.substring(0,q);d=s.substring(e,s.length);n=s.substring(q,e);if(q!=e){if(!u.tagEnd){h.value=j+n+u.tagStart+d;m+=u.tagStart.length}else{h.value=j+u.tagStart+n+k+d;m+=u.tagStart.length+k.length}}else{if(!u.tagEnd){h.value=j+u.tagStart+d;m=q+u.tagStart.length}else{if(u.isOpen(p)===false){h.value=j+u.tagStart+d;u.openTag(o,p);m=q+u.tagStart.length}else{h.value=j+k+d;m=q+k.length;u.closeTag(o,p)}}}h.focus();h.selectionStart=m;h.selectionEnd=m;h.scrollTop=g}else{if(!k){h.value+=u.tagStart}else{if(u.isOpen(p)!==false){h.value+=u.tagStart;u.openTag(o,p)}else{h.value+=k;u.closeTag(o,p)}}h.focus()}}};c.SpellButton=function(){c.Button.call(this,"spell",quicktagsL10n.lookup,"",quicktagsL10n.dictionaryLookup)};c.SpellButton.prototype=new c.Button();c.SpellButton.prototype.callback=function(h,g,d){var j="",i,f,e;if(document.selection){g.focus();i=document.selection.createRange();if(i.text.length>0){j=i.text}}else{if(g.selectionStart||g.selectionStart=="0"){f=g.selectionStart;e=g.selectionEnd;if(f!=e){j=g.value.substring(f,e)}}}if(j===""){j=prompt(quicktagsL10n.wordLookup,"")}if(j!==null&&/^\w[\w ]*$/.test(j)){window.open("http://www.answers.com/"+encodeURIComponent(j))}};c.CloseButton=function(){c.Button.call(this,"close",quicktagsL10n.closeTags,"",quicktagsL10n.closeAllOpenTags)};c.CloseButton.prototype=new c.Button();c._close=function(i,j,d){var g,f,h=d.openTags;if(h){while(h.length>0){g=d.getButton(h[h.length-1]);f=document.getElementById(d.name+"_"+g.id);if(i){g.callback.call(g,f,j,d)}else{g.closeTag(f,d)}}}};c.CloseButton.prototype.callback=c._close;c.closeAllTags=function(e){var d=this.getInstance(e);c._close("",d.canvas,d)};c.LinkButton=function(){c.TagButton.call(this,"link","link","","</a>","a")};c.LinkButton.prototype=new c.TagButton();c.LinkButton.prototype.callback=function(i,j,g,f){var d,h=this;if(typeof(wpLink)!="undefined"){wpLink.open();return}if(!f){f="http://"}if(h.isOpen(g)===false){d=prompt(quicktagsL10n.enterURL,f);if(d){h.tagStart='<a href="'+d+'">';c.TagButton.prototype.callback.call(h,i,j,g)}}else{c.TagButton.prototype.callback.call(h,i,j,g)}};c.ImgButton=function(){c.TagButton.call(this,"img","img","","","m")};c.ImgButton.prototype=new c.TagButton();c.ImgButton.prototype.callback=function(h,j,f,d){if(!d){d="http://"}var i=prompt(quicktagsL10n.enterImageURL,d),g;if(i){g=prompt(quicktagsL10n.enterImageDescription,"");this.tagStart='<img src="'+i+'" alt="'+g+'" />';c.TagButton.prototype.callback.call(this,h,j,f)}};c.FullscreenButton=function(){c.Button.call(this,"fullscreen",quicktagsL10n.fullscreen,"f",quicktagsL10n.toggleFullscreen)};c.FullscreenButton.prototype=new c.Button();c.FullscreenButton.prototype.callback=function(d,f){if(!f.id||typeof(fullscreen)=="undefined"){return}fullscreen.on()};c.TextDirectionButton=function(){c.Button.call(this,"textdirection",quicktagsL10n.textdirection,"",quicktagsL10n.toggleTextdirection)};c.TextDirectionButton.prototype=new c.Button();c.TextDirectionButton.prototype.callback=function(f,h){var d=("rtl"==document.getElementsByTagName("html")[0].dir),g=h.style.direction;if(!g){g=(d)?"rtl":"ltr"}h.style.direction=("rtl"==g)?"ltr":"rtl";h.focus()};edButtons[10]=new c.TagButton("strong","b","<strong>","</strong>","b");edButtons[20]=new c.TagButton("em","i","<em>","</em>","i"),edButtons[30]=new c.LinkButton(),edButtons[40]=new c.TagButton("block","b-quote","\n\n<blockquote>","</blockquote>\n\n","q"),edButtons[50]=new c.TagButton("del","del",'<del datetime="'+a+'">',"</del>","d"),edButtons[60]=new c.TagButton("ins","ins",'<ins datetime="'+a+'">',"</ins>","s"),edButtons[70]=new c.ImgButton(),edButtons[80]=new c.TagButton("ul","ul","<ul>\n","</ul>\n\n","u"),edButtons[90]=new c.TagButton("ol","ol","<ol>\n","</ol>\n\n","o"),edButtons[100]=new c.TagButton("li","li","\t<li>","</li>\n","l"),edButtons[110]=new c.TagButton("code","code","<code>","</code>","c"),edButtons[120]=new c.TagButton("more","more","<!--more-->","","t"),edButtons[130]=new c.SpellButton(),edButtons[140]=new c.CloseButton()})();
\ No newline at end of file
--- a/web/wp-includes/js/scriptaculous/MIT-LICENSE	Wed Dec 19 12:35:13 2012 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,20 +0,0 @@
-Copyright (c) 2005-2009 Thomas Fuchs (http://script.aculo.us, http://mir.aculo.us)
-
-Permission is hereby granted, free of charge, to any person obtaining
-a copy of this software and associated documentation files (the
-"Software"), to deal in the Software without restriction, including
-without limitation the rights to use, copy, modify, merge, publish,
-distribute, sublicense, and/or sell copies of the Software, and to
-permit persons to whom the Software is furnished to do so, subject to
-the following conditions:
-
-The above copyright notice and this permission notice shall be
-included in all copies or substantial portions of the Software.
-
-THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
\ No newline at end of file
--- a/web/wp-includes/js/scriptaculous/builder.js	Wed Dec 19 12:35:13 2012 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,136 +0,0 @@
-// script.aculo.us builder.js v1.8.3, Thu Oct 08 11:23:33 +0200 2009
-
-// Copyright (c) 2005-2009 Thomas Fuchs (http://script.aculo.us, http://mir.aculo.us)
-//
-// script.aculo.us is freely distributable under the terms of an MIT-style license.
-// For details, see the script.aculo.us web site: http://script.aculo.us/
-
-var Builder = {
-  NODEMAP: {
-    AREA: 'map',
-    CAPTION: 'table',
-    COL: 'table',
-    COLGROUP: 'table',
-    LEGEND: 'fieldset',
-    OPTGROUP: 'select',
-    OPTION: 'select',
-    PARAM: 'object',
-    TBODY: 'table',
-    TD: 'table',
-    TFOOT: 'table',
-    TH: 'table',
-    THEAD: 'table',
-    TR: 'table'
-  },
-  // note: For Firefox < 1.5, OPTION and OPTGROUP tags are currently broken,
-  //       due to a Firefox bug
-  node: function(elementName) {
-    elementName = elementName.toUpperCase();
-
-    // try innerHTML approach
-    var parentTag = this.NODEMAP[elementName] || 'div';
-    var parentElement = document.createElement(parentTag);
-    try { // prevent IE "feature": http://dev.rubyonrails.org/ticket/2707
-      parentElement.innerHTML = "<" + elementName + "></" + elementName + ">";
-    } catch(e) {}
-    var element = parentElement.firstChild || null;
-
-    // see if browser added wrapping tags
-    if(element && (element.tagName.toUpperCase() != elementName))
-      element = element.getElementsByTagName(elementName)[0];
-
-    // fallback to createElement approach
-    if(!element) element = document.createElement(elementName);
-
-    // abort if nothing could be created
-    if(!element) return;
-
-    // attributes (or text)
-    if(arguments[1])
-      if(this._isStringOrNumber(arguments[1]) ||
-        (arguments[1] instanceof Array) ||
-        arguments[1].tagName) {
-          this._children(element, arguments[1]);
-        } else {
-          var attrs = this._attributes(arguments[1]);
-          if(attrs.length) {
-            try { // prevent IE "feature": http://dev.rubyonrails.org/ticket/2707
-              parentElement.innerHTML = "<" +elementName + " " +
-                attrs + "></" + elementName + ">";
-            } catch(e) {}
-            element = parentElement.firstChild || null;
-            // workaround firefox 1.0.X bug
-            if(!element) {
-              element = document.createElement(elementName);
-              for(attr in arguments[1])
-                element[attr == 'class' ? 'className' : attr] = arguments[1][attr];
-            }
-            if(element.tagName.toUpperCase() != elementName)
-              element = parentElement.getElementsByTagName(elementName)[0];
-          }
-        }
-
-    // text, or array of children
-    if(arguments[2])
-      this._children(element, arguments[2]);
-
-     return $(element);
-  },
-  _text: function(text) {
-     return document.createTextNode(text);
-  },
-
-  ATTR_MAP: {
-    'className': 'class',
-    'htmlFor': 'for'
-  },
-
-  _attributes: function(attributes) {
-    var attrs = [];
-    for(attribute in attributes)
-      attrs.push((attribute in this.ATTR_MAP ? this.ATTR_MAP[attribute] : attribute) +
-          '="' + attributes[attribute].toString().escapeHTML().gsub(/"/,'&quot;') + '"');
-    return attrs.join(" ");
-  },
-  _children: function(element, children) {
-    if(children.tagName) {
-      element.appendChild(children);
-      return;
-    }
-    if(typeof children=='object') { // array can hold nodes and text
-      children.flatten().each( function(e) {
-        if(typeof e=='object')
-          element.appendChild(e);
-        else
-          if(Builder._isStringOrNumber(e))
-            element.appendChild(Builder._text(e));
-      });
-    } else
-      if(Builder._isStringOrNumber(children))
-        element.appendChild(Builder._text(children));
-  },
-  _isStringOrNumber: function(param) {
-    return(typeof param=='string' || typeof param=='number');
-  },
-  build: function(html) {
-    var element = this.node('div');
-    $(element).update(html.strip());
-    return element.down();
-  },
-  dump: function(scope) {
-    if(typeof scope != 'object' && typeof scope != 'function') scope = window; //global scope
-
-    var tags = ("A ABBR ACRONYM ADDRESS APPLET AREA B BASE BASEFONT BDO BIG BLOCKQUOTE BODY " +
-      "BR BUTTON CAPTION CENTER CITE CODE COL COLGROUP DD DEL DFN DIR DIV DL DT EM FIELDSET " +
-      "FONT FORM FRAME FRAMESET H1 H2 H3 H4 H5 H6 HEAD HR HTML I IFRAME IMG INPUT INS ISINDEX "+
-      "KBD LABEL LEGEND LI LINK MAP MENU META NOFRAMES NOSCRIPT OBJECT OL OPTGROUP OPTION P "+
-      "PARAM PRE Q S SAMP SCRIPT SELECT SMALL SPAN STRIKE STRONG STYLE SUB SUP TABLE TBODY TD "+
-      "TEXTAREA TFOOT TH THEAD TITLE TR TT U UL VAR").split(/\s+/);
-
-    tags.each( function(tag){
-      scope[tag] = function() {
-        return Builder.node.apply(Builder, [tag].concat($A(arguments)));
-      };
-    });
-  }
-};
\ No newline at end of file
--- a/web/wp-includes/js/scriptaculous/controls.js	Wed Dec 19 12:35:13 2012 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,965 +0,0 @@
-// script.aculo.us controls.js v1.8.3, Thu Oct 08 11:23:33 +0200 2009
-
-// Copyright (c) 2005-2009 Thomas Fuchs (http://script.aculo.us, http://mir.aculo.us)
-//           (c) 2005-2009 Ivan Krstic (http://blogs.law.harvard.edu/ivan)
-//           (c) 2005-2009 Jon Tirsen (http://www.tirsen.com)
-// Contributors:
-//  Richard Livsey
-//  Rahul Bhargava
-//  Rob Wills
-//
-// script.aculo.us is freely distributable under the terms of an MIT-style license.
-// For details, see the script.aculo.us web site: http://script.aculo.us/
-
-// Autocompleter.Base handles all the autocompletion functionality
-// that's independent of the data source for autocompletion. This
-// includes drawing the autocompletion menu, observing keyboard
-// and mouse events, and similar.
-//
-// Specific autocompleters need to provide, at the very least,
-// a getUpdatedChoices function that will be invoked every time
-// the text inside the monitored textbox changes. This method
-// should get the text for which to provide autocompletion by
-// invoking this.getToken(), NOT by directly accessing
-// this.element.value. This is to allow incremental tokenized
-// autocompletion. Specific auto-completion logic (AJAX, etc)
-// belongs in getUpdatedChoices.
-//
-// Tokenized incremental autocompletion is enabled automatically
-// when an autocompleter is instantiated with the 'tokens' option
-// in the options parameter, e.g.:
-// new Ajax.Autocompleter('id','upd', '/url/', { tokens: ',' });
-// will incrementally autocomplete with a comma as the token.
-// Additionally, ',' in the above example can be replaced with
-// a token array, e.g. { tokens: [',', '\n'] } which
-// enables autocompletion on multiple tokens. This is most
-// useful when one of the tokens is \n (a newline), as it
-// allows smart autocompletion after linebreaks.
-
-if(typeof Effect == 'undefined')
-  throw("controls.js requires including script.aculo.us' effects.js library");
-
-var Autocompleter = { };
-Autocompleter.Base = Class.create({
-  baseInitialize: function(element, update, options) {
-    element          = $(element);
-    this.element     = element;
-    this.update      = $(update);
-    this.hasFocus    = false;
-    this.changed     = false;
-    this.active      = false;
-    this.index       = 0;
-    this.entryCount  = 0;
-    this.oldElementValue = this.element.value;
-
-    if(this.setOptions)
-      this.setOptions(options);
-    else
-      this.options = options || { };
-
-    this.options.paramName    = this.options.paramName || this.element.name;
-    this.options.tokens       = this.options.tokens || [];
-    this.options.frequency    = this.options.frequency || 0.4;
-    this.options.minChars     = this.options.minChars || 1;
-    this.options.onShow       = this.options.onShow ||
-      function(element, update){
-        if(!update.style.position || update.style.position=='absolute') {
-          update.style.position = 'absolute';
-          Position.clone(element, update, {
-            setHeight: false,
-            offsetTop: element.offsetHeight
-          });
-        }
-        Effect.Appear(update,{duration:0.15});
-      };
-    this.options.onHide = this.options.onHide ||
-      function(element, update){ new Effect.Fade(update,{duration:0.15}) };
-
-    if(typeof(this.options.tokens) == 'string')
-      this.options.tokens = new Array(this.options.tokens);
-    // Force carriage returns as token delimiters anyway
-    if (!this.options.tokens.include('\n'))
-      this.options.tokens.push('\n');
-
-    this.observer = null;
-
-    this.element.setAttribute('autocomplete','off');
-
-    Element.hide(this.update);
-
-    Event.observe(this.element, 'blur', this.onBlur.bindAsEventListener(this));
-    Event.observe(this.element, 'keydown', this.onKeyPress.bindAsEventListener(this));
-  },
-
-  show: function() {
-    if(Element.getStyle(this.update, 'display')=='none') this.options.onShow(this.element, this.update);
-    if(!this.iefix &&
-      (Prototype.Browser.IE) &&
-      (Element.getStyle(this.update, 'position')=='absolute')) {
-      new Insertion.After(this.update,
-       '<iframe id="' + this.update.id + '_iefix" '+
-       'style="display:none;position:absolute;filter:progid:DXImageTransform.Microsoft.Alpha(opacity=0);" ' +
-       'src="javascript:false;" frameborder="0" scrolling="no"></iframe>');
-      this.iefix = $(this.update.id+'_iefix');
-    }
-    if(this.iefix) setTimeout(this.fixIEOverlapping.bind(this), 50);
-  },
-
-  fixIEOverlapping: function() {
-    Position.clone(this.update, this.iefix, {setTop:(!this.update.style.height)});
-    this.iefix.style.zIndex = 1;
-    this.update.style.zIndex = 2;
-    Element.show(this.iefix);
-  },
-
-  hide: function() {
-    this.stopIndicator();
-    if(Element.getStyle(this.update, 'display')!='none') this.options.onHide(this.element, this.update);
-    if(this.iefix) Element.hide(this.iefix);
-  },
-
-  startIndicator: function() {
-    if(this.options.indicator) Element.show(this.options.indicator);
-  },
-
-  stopIndicator: function() {
-    if(this.options.indicator) Element.hide(this.options.indicator);
-  },
-
-  onKeyPress: function(event) {
-    if(this.active)
-      switch(event.keyCode) {
-       case Event.KEY_TAB:
-       case Event.KEY_RETURN:
-         this.selectEntry();
-         Event.stop(event);
-       case Event.KEY_ESC:
-         this.hide();
-         this.active = false;
-         Event.stop(event);
-         return;
-       case Event.KEY_LEFT:
-       case Event.KEY_RIGHT:
-         return;
-       case Event.KEY_UP:
-         this.markPrevious();
-         this.render();
-         Event.stop(event);
-         return;
-       case Event.KEY_DOWN:
-         this.markNext();
-         this.render();
-         Event.stop(event);
-         return;
-      }
-     else
-       if(event.keyCode==Event.KEY_TAB || event.keyCode==Event.KEY_RETURN ||
-         (Prototype.Browser.WebKit > 0 && event.keyCode == 0)) return;
-
-    this.changed = true;
-    this.hasFocus = true;
-
-    if(this.observer) clearTimeout(this.observer);
-      this.observer =
-        setTimeout(this.onObserverEvent.bind(this), this.options.frequency*1000);
-  },
-
-  activate: function() {
-    this.changed = false;
-    this.hasFocus = true;
-    this.getUpdatedChoices();
-  },
-
-  onHover: function(event) {
-    var element = Event.findElement(event, 'LI');
-    if(this.index != element.autocompleteIndex)
-    {
-        this.index = element.autocompleteIndex;
-        this.render();
-    }
-    Event.stop(event);
-  },
-
-  onClick: function(event) {
-    var element = Event.findElement(event, 'LI');
-    this.index = element.autocompleteIndex;
-    this.selectEntry();
-    this.hide();
-  },
-
-  onBlur: function(event) {
-    // needed to make click events working
-    setTimeout(this.hide.bind(this), 250);
-    this.hasFocus = false;
-    this.active = false;
-  },
-
-  render: function() {
-    if(this.entryCount > 0) {
-      for (var i = 0; i < this.entryCount; i++)
-        this.index==i ?
-          Element.addClassName(this.getEntry(i),"selected") :
-          Element.removeClassName(this.getEntry(i),"selected");
-      if(this.hasFocus) {
-        this.show();
-        this.active = true;
-      }
-    } else {
-      this.active = false;
-      this.hide();
-    }
-  },
-
-  markPrevious: function() {
-    if(this.index > 0) this.index--;
-      else this.index = this.entryCount-1;
-    this.getEntry(this.index).scrollIntoView(true);
-  },
-
-  markNext: function() {
-    if(this.index < this.entryCount-1) this.index++;
-      else this.index = 0;
-    this.getEntry(this.index).scrollIntoView(false);
-  },
-
-  getEntry: function(index) {
-    return this.update.firstChild.childNodes[index];
-  },
-
-  getCurrentEntry: function() {
-    return this.getEntry(this.index);
-  },
-
-  selectEntry: function() {
-    this.active = false;
-    this.updateElement(this.getCurrentEntry());
-  },
-
-  updateElement: function(selectedElement) {
-    if (this.options.updateElement) {
-      this.options.updateElement(selectedElement);
-      return;
-    }
-    var value = '';
-    if (this.options.select) {
-      var nodes = $(selectedElement).select('.' + this.options.select) || [];
-      if(nodes.length>0) value = Element.collectTextNodes(nodes[0], this.options.select);
-    } else
-      value = Element.collectTextNodesIgnoreClass(selectedElement, 'informal');
-
-    var bounds = this.getTokenBounds();
-    if (bounds[0] != -1) {
-      var newValue = this.element.value.substr(0, bounds[0]);
-      var whitespace = this.element.value.substr(bounds[0]).match(/^\s+/);
-      if (whitespace)
-        newValue += whitespace[0];
-      this.element.value = newValue + value + this.element.value.substr(bounds[1]);
-    } else {
-      this.element.value = value;
-    }
-    this.oldElementValue = this.element.value;
-    this.element.focus();
-
-    if (this.options.afterUpdateElement)
-      this.options.afterUpdateElement(this.element, selectedElement);
-  },
-
-  updateChoices: function(choices) {
-    if(!this.changed && this.hasFocus) {
-      this.update.innerHTML = choices;
-      Element.cleanWhitespace(this.update);
-      Element.cleanWhitespace(this.update.down());
-
-      if(this.update.firstChild && this.update.down().childNodes) {
-        this.entryCount =
-          this.update.down().childNodes.length;
-        for (var i = 0; i < this.entryCount; i++) {
-          var entry = this.getEntry(i);
-          entry.autocompleteIndex = i;
-          this.addObservers(entry);
-        }
-      } else {
-        this.entryCount = 0;
-      }
-
-      this.stopIndicator();
-      this.index = 0;
-
-      if(this.entryCount==1 && this.options.autoSelect) {
-        this.selectEntry();
-        this.hide();
-      } else {
-        this.render();
-      }
-    }
-  },
-
-  addObservers: function(element) {
-    Event.observe(element, "mouseover", this.onHover.bindAsEventListener(this));
-    Event.observe(element, "click", this.onClick.bindAsEventListener(this));
-  },
-
-  onObserverEvent: function() {
-    this.changed = false;
-    this.tokenBounds = null;
-    if(this.getToken().length>=this.options.minChars) {
-      this.getUpdatedChoices();
-    } else {
-      this.active = false;
-      this.hide();
-    }
-    this.oldElementValue = this.element.value;
-  },
-
-  getToken: function() {
-    var bounds = this.getTokenBounds();
-    return this.element.value.substring(bounds[0], bounds[1]).strip();
-  },
-
-  getTokenBounds: function() {
-    if (null != this.tokenBounds) return this.tokenBounds;
-    var value = this.element.value;
-    if (value.strip().empty()) return [-1, 0];
-    var diff = arguments.callee.getFirstDifferencePos(value, this.oldElementValue);
-    var offset = (diff == this.oldElementValue.length ? 1 : 0);
-    var prevTokenPos = -1, nextTokenPos = value.length;
-    var tp;
-    for (var index = 0, l = this.options.tokens.length; index < l; ++index) {
-      tp = value.lastIndexOf(this.options.tokens[index], diff + offset - 1);
-      if (tp > prevTokenPos) prevTokenPos = tp;
-      tp = value.indexOf(this.options.tokens[index], diff + offset);
-      if (-1 != tp && tp < nextTokenPos) nextTokenPos = tp;
-    }
-    return (this.tokenBounds = [prevTokenPos + 1, nextTokenPos]);
-  }
-});
-
-Autocompleter.Base.prototype.getTokenBounds.getFirstDifferencePos = function(newS, oldS) {
-  var boundary = Math.min(newS.length, oldS.length);
-  for (var index = 0; index < boundary; ++index)
-    if (newS[index] != oldS[index])
-      return index;
-  return boundary;
-};
-
-Ajax.Autocompleter = Class.create(Autocompleter.Base, {
-  initialize: function(element, update, url, options) {
-    this.baseInitialize(element, update, options);
-    this.options.asynchronous  = true;
-    this.options.onComplete    = this.onComplete.bind(this);
-    this.options.defaultParams = this.options.parameters || null;
-    this.url                   = url;
-  },
-
-  getUpdatedChoices: function() {
-    this.startIndicator();
-
-    var entry = encodeURIComponent(this.options.paramName) + '=' +
-      encodeURIComponent(this.getToken());
-
-    this.options.parameters = this.options.callback ?
-      this.options.callback(this.element, entry) : entry;
-
-    if(this.options.defaultParams)
-      this.options.parameters += '&' + this.options.defaultParams;
-
-    new Ajax.Request(this.url, this.options);
-  },
-
-  onComplete: function(request) {
-    this.updateChoices(request.responseText);
-  }
-});
-
-// The local array autocompleter. Used when you'd prefer to
-// inject an array of autocompletion options into the page, rather
-// than sending out Ajax queries, which can be quite slow sometimes.
-//
-// The constructor takes four parameters. The first two are, as usual,
-// the id of the monitored textbox, and id of the autocompletion menu.
-// The third is the array you want to autocomplete from, and the fourth
-// is the options block.
-//
-// Extra local autocompletion options:
-// - choices - How many autocompletion choices to offer
-//
-// - partialSearch - If false, the autocompleter will match entered
-//                    text only at the beginning of strings in the
-//                    autocomplete array. Defaults to true, which will
-//                    match text at the beginning of any *word* in the
-//                    strings in the autocomplete array. If you want to
-//                    search anywhere in the string, additionally set
-//                    the option fullSearch to true (default: off).
-//
-// - fullSsearch - Search anywhere in autocomplete array strings.
-//
-// - partialChars - How many characters to enter before triggering
-//                   a partial match (unlike minChars, which defines
-//                   how many characters are required to do any match
-//                   at all). Defaults to 2.
-//
-// - ignoreCase - Whether to ignore case when autocompleting.
-//                 Defaults to true.
-//
-// It's possible to pass in a custom function as the 'selector'
-// option, if you prefer to write your own autocompletion logic.
-// In that case, the other options above will not apply unless
-// you support them.
-
-Autocompleter.Local = Class.create(Autocompleter.Base, {
-  initialize: function(element, update, array, options) {
-    this.baseInitialize(element, update, options);
-    this.options.array = array;
-  },
-
-  getUpdatedChoices: function() {
-    this.updateChoices(this.options.selector(this));
-  },
-
-  setOptions: function(options) {
-    this.options = Object.extend({
-      choices: 10,
-      partialSearch: true,
-      partialChars: 2,
-      ignoreCase: true,
-      fullSearch: false,
-      selector: function(instance) {
-        var ret       = []; // Beginning matches
-        var partial   = []; // Inside matches
-        var entry     = instance.getToken();
-        var count     = 0;
-
-        for (var i = 0; i < instance.options.array.length &&
-          ret.length < instance.options.choices ; i++) {
-
-          var elem = instance.options.array[i];
-          var foundPos = instance.options.ignoreCase ?
-            elem.toLowerCase().indexOf(entry.toLowerCase()) :
-            elem.indexOf(entry);
-
-          while (foundPos != -1) {
-            if (foundPos == 0 && elem.length != entry.length) {
-              ret.push("<li><strong>" + elem.substr(0, entry.length) + "</strong>" +
-                elem.substr(entry.length) + "</li>");
-              break;
-            } else if (entry.length >= instance.options.partialChars &&
-              instance.options.partialSearch && foundPos != -1) {
-              if (instance.options.fullSearch || /\s/.test(elem.substr(foundPos-1,1))) {
-                partial.push("<li>" + elem.substr(0, foundPos) + "<strong>" +
-                  elem.substr(foundPos, entry.length) + "</strong>" + elem.substr(
-                  foundPos + entry.length) + "</li>");
-                break;
-              }
-            }
-
-            foundPos = instance.options.ignoreCase ?
-              elem.toLowerCase().indexOf(entry.toLowerCase(), foundPos + 1) :
-              elem.indexOf(entry, foundPos + 1);
-
-          }
-        }
-        if (partial.length)
-          ret = ret.concat(partial.slice(0, instance.options.choices - ret.length));
-        return "<ul>" + ret.join('') + "</ul>";
-      }
-    }, options || { });
-  }
-});
-
-// AJAX in-place editor and collection editor
-// Full rewrite by Christophe Porteneuve <tdd@tddsworld.com> (April 2007).
-
-// Use this if you notice weird scrolling problems on some browsers,
-// the DOM might be a bit confused when this gets called so do this
-// waits 1 ms (with setTimeout) until it does the activation
-Field.scrollFreeActivate = function(field) {
-  setTimeout(function() {
-    Field.activate(field);
-  }, 1);
-};
-
-Ajax.InPlaceEditor = Class.create({
-  initialize: function(element, url, options) {
-    this.url = url;
-    this.element = element = $(element);
-    this.prepareOptions();
-    this._controls = { };
-    arguments.callee.dealWithDeprecatedOptions(options); // DEPRECATION LAYER!!!
-    Object.extend(this.options, options || { });
-    if (!this.options.formId && this.element.id) {
-      this.options.formId = this.element.id + '-inplaceeditor';
-      if ($(this.options.formId))
-        this.options.formId = '';
-    }
-    if (this.options.externalControl)
-      this.options.externalControl = $(this.options.externalControl);
-    if (!this.options.externalControl)
-      this.options.externalControlOnly = false;
-    this._originalBackground = this.element.getStyle('background-color') || 'transparent';
-    this.element.title = this.options.clickToEditText;
-    this._boundCancelHandler = this.handleFormCancellation.bind(this);
-    this._boundComplete = (this.options.onComplete || Prototype.emptyFunction).bind(this);
-    this._boundFailureHandler = this.handleAJAXFailure.bind(this);
-    this._boundSubmitHandler = this.handleFormSubmission.bind(this);
-    this._boundWrapperHandler = this.wrapUp.bind(this);
-    this.registerListeners();
-  },
-  checkForEscapeOrReturn: function(e) {
-    if (!this._editing || e.ctrlKey || e.altKey || e.shiftKey) return;
-    if (Event.KEY_ESC == e.keyCode)
-      this.handleFormCancellation(e);
-    else if (Event.KEY_RETURN == e.keyCode)
-      this.handleFormSubmission(e);
-  },
-  createControl: function(mode, handler, extraClasses) {
-    var control = this.options[mode + 'Control'];
-    var text = this.options[mode + 'Text'];
-    if ('button' == control) {
-      var btn = document.createElement('input');
-      btn.type = 'submit';
-      btn.value = text;
-      btn.className = 'editor_' + mode + '_button';
-      if ('cancel' == mode)
-        btn.onclick = this._boundCancelHandler;
-      this._form.appendChild(btn);
-      this._controls[mode] = btn;
-    } else if ('link' == control) {
-      var link = document.createElement('a');
-      link.href = '#';
-      link.appendChild(document.createTextNode(text));
-      link.onclick = 'cancel' == mode ? this._boundCancelHandler : this._boundSubmitHandler;
-      link.className = 'editor_' + mode + '_link';
-      if (extraClasses)
-        link.className += ' ' + extraClasses;
-      this._form.appendChild(link);
-      this._controls[mode] = link;
-    }
-  },
-  createEditField: function() {
-    var text = (this.options.loadTextURL ? this.options.loadingText : this.getText());
-    var fld;
-    if (1 >= this.options.rows && !/\r|\n/.test(this.getText())) {
-      fld = document.createElement('input');
-      fld.type = 'text';
-      var size = this.options.size || this.options.cols || 0;
-      if (0 < size) fld.size = size;
-    } else {
-      fld = document.createElement('textarea');
-      fld.rows = (1 >= this.options.rows ? this.options.autoRows : this.options.rows);
-      fld.cols = this.options.cols || 40;
-    }
-    fld.name = this.options.paramName;
-    fld.value = text; // No HTML breaks conversion anymore
-    fld.className = 'editor_field';
-    if (this.options.submitOnBlur)
-      fld.onblur = this._boundSubmitHandler;
-    this._controls.editor = fld;
-    if (this.options.loadTextURL)
-      this.loadExternalText();
-    this._form.appendChild(this._controls.editor);
-  },
-  createForm: function() {
-    var ipe = this;
-    function addText(mode, condition) {
-      var text = ipe.options['text' + mode + 'Controls'];
-      if (!text || condition === false) return;
-      ipe._form.appendChild(document.createTextNode(text));
-    };
-    this._form = $(document.createElement('form'));
-    this._form.id = this.options.formId;
-    this._form.addClassName(this.options.formClassName);
-    this._form.onsubmit = this._boundSubmitHandler;
-    this.createEditField();
-    if ('textarea' == this._controls.editor.tagName.toLowerCase())
-      this._form.appendChild(document.createElement('br'));
-    if (this.options.onFormCustomization)
-      this.options.onFormCustomization(this, this._form);
-    addText('Before', this.options.okControl || this.options.cancelControl);
-    this.createControl('ok', this._boundSubmitHandler);
-    addText('Between', this.options.okControl && this.options.cancelControl);
-    this.createControl('cancel', this._boundCancelHandler, 'editor_cancel');
-    addText('After', this.options.okControl || this.options.cancelControl);
-  },
-  destroy: function() {
-    if (this._oldInnerHTML)
-      this.element.innerHTML = this._oldInnerHTML;
-    this.leaveEditMode();
-    this.unregisterListeners();
-  },
-  enterEditMode: function(e) {
-    if (this._saving || this._editing) return;
-    this._editing = true;
-    this.triggerCallback('onEnterEditMode');
-    if (this.options.externalControl)
-      this.options.externalControl.hide();
-    this.element.hide();
-    this.createForm();
-    this.element.parentNode.insertBefore(this._form, this.element);
-    if (!this.options.loadTextURL)
-      this.postProcessEditField();
-    if (e) Event.stop(e);
-  },
-  enterHover: function(e) {
-    if (this.options.hoverClassName)
-      this.element.addClassName(this.options.hoverClassName);
-    if (this._saving) return;
-    this.triggerCallback('onEnterHover');
-  },
-  getText: function() {
-    return this.element.innerHTML.unescapeHTML();
-  },
-  handleAJAXFailure: function(transport) {
-    this.triggerCallback('onFailure', transport);
-    if (this._oldInnerHTML) {
-      this.element.innerHTML = this._oldInnerHTML;
-      this._oldInnerHTML = null;
-    }
-  },
-  handleFormCancellation: function(e) {
-    this.wrapUp();
-    if (e) Event.stop(e);
-  },
-  handleFormSubmission: function(e) {
-    var form = this._form;
-    var value = $F(this._controls.editor);
-    this.prepareSubmission();
-    var params = this.options.callback(form, value) || '';
-    if (Object.isString(params))
-      params = params.toQueryParams();
-    params.editorId = this.element.id;
-    if (this.options.htmlResponse) {
-      var options = Object.extend({ evalScripts: true }, this.options.ajaxOptions);
-      Object.extend(options, {
-        parameters: params,
-        onComplete: this._boundWrapperHandler,
-        onFailure: this._boundFailureHandler
-      });
-      new Ajax.Updater({ success: this.element }, this.url, options);
-    } else {
-      var options = Object.extend({ method: 'get' }, this.options.ajaxOptions);
-      Object.extend(options, {
-        parameters: params,
-        onComplete: this._boundWrapperHandler,
-        onFailure: this._boundFailureHandler
-      });
-      new Ajax.Request(this.url, options);
-    }
-    if (e) Event.stop(e);
-  },
-  leaveEditMode: function() {
-    this.element.removeClassName(this.options.savingClassName);
-    this.removeForm();
-    this.leaveHover();
-    this.element.style.backgroundColor = this._originalBackground;
-    this.element.show();
-    if (this.options.externalControl)
-      this.options.externalControl.show();
-    this._saving = false;
-    this._editing = false;
-    this._oldInnerHTML = null;
-    this.triggerCallback('onLeaveEditMode');
-  },
-  leaveHover: function(e) {
-    if (this.options.hoverClassName)
-      this.element.removeClassName(this.options.hoverClassName);
-    if (this._saving) return;
-    this.triggerCallback('onLeaveHover');
-  },
-  loadExternalText: function() {
-    this._form.addClassName(this.options.loadingClassName);
-    this._controls.editor.disabled = true;
-    var options = Object.extend({ method: 'get' }, this.options.ajaxOptions);
-    Object.extend(options, {
-      parameters: 'editorId=' + encodeURIComponent(this.element.id),
-      onComplete: Prototype.emptyFunction,
-      onSuccess: function(transport) {
-        this._form.removeClassName(this.options.loadingClassName);
-        var text = transport.responseText;
-        if (this.options.stripLoadedTextTags)
-          text = text.stripTags();
-        this._controls.editor.value = text;
-        this._controls.editor.disabled = false;
-        this.postProcessEditField();
-      }.bind(this),
-      onFailure: this._boundFailureHandler
-    });
-    new Ajax.Request(this.options.loadTextURL, options);
-  },
-  postProcessEditField: function() {
-    var fpc = this.options.fieldPostCreation;
-    if (fpc)
-      $(this._controls.editor)['focus' == fpc ? 'focus' : 'activate']();
-  },
-  prepareOptions: function() {
-    this.options = Object.clone(Ajax.InPlaceEditor.DefaultOptions);
-    Object.extend(this.options, Ajax.InPlaceEditor.DefaultCallbacks);
-    [this._extraDefaultOptions].flatten().compact().each(function(defs) {
-      Object.extend(this.options, defs);
-    }.bind(this));
-  },
-  prepareSubmission: function() {
-    this._saving = true;
-    this.removeForm();
-    this.leaveHover();
-    this.showSaving();
-  },
-  registerListeners: function() {
-    this._listeners = { };
-    var listener;
-    $H(Ajax.InPlaceEditor.Listeners).each(function(pair) {
-      listener = this[pair.value].bind(this);
-      this._listeners[pair.key] = listener;
-      if (!this.options.externalControlOnly)
-        this.element.observe(pair.key, listener);
-      if (this.options.externalControl)
-        this.options.externalControl.observe(pair.key, listener);
-    }.bind(this));
-  },
-  removeForm: function() {
-    if (!this._form) return;
-    this._form.remove();
-    this._form = null;
-    this._controls = { };
-  },
-  showSaving: function() {
-    this._oldInnerHTML = this.element.innerHTML;
-    this.element.innerHTML = this.options.savingText;
-    this.element.addClassName(this.options.savingClassName);
-    this.element.style.backgroundColor = this._originalBackground;
-    this.element.show();
-  },
-  triggerCallback: function(cbName, arg) {
-    if ('function' == typeof this.options[cbName]) {
-      this.options[cbName](this, arg);
-    }
-  },
-  unregisterListeners: function() {
-    $H(this._listeners).each(function(pair) {
-      if (!this.options.externalControlOnly)
-        this.element.stopObserving(pair.key, pair.value);
-      if (this.options.externalControl)
-        this.options.externalControl.stopObserving(pair.key, pair.value);
-    }.bind(this));
-  },
-  wrapUp: function(transport) {
-    this.leaveEditMode();
-    // Can't use triggerCallback due to backward compatibility: requires
-    // binding + direct element
-    this._boundComplete(transport, this.element);
-  }
-});
-
-Object.extend(Ajax.InPlaceEditor.prototype, {
-  dispose: Ajax.InPlaceEditor.prototype.destroy
-});
-
-Ajax.InPlaceCollectionEditor = Class.create(Ajax.InPlaceEditor, {
-  initialize: function($super, element, url, options) {
-    this._extraDefaultOptions = Ajax.InPlaceCollectionEditor.DefaultOptions;
-    $super(element, url, options);
-  },
-
-  createEditField: function() {
-    var list = document.createElement('select');
-    list.name = this.options.paramName;
-    list.size = 1;
-    this._controls.editor = list;
-    this._collection = this.options.collection || [];
-    if (this.options.loadCollectionURL)
-      this.loadCollection();
-    else
-      this.checkForExternalText();
-    this._form.appendChild(this._controls.editor);
-  },
-
-  loadCollection: function() {
-    this._form.addClassName(this.options.loadingClassName);
-    this.showLoadingText(this.options.loadingCollectionText);
-    var options = Object.extend({ method: 'get' }, this.options.ajaxOptions);
-    Object.extend(options, {
-      parameters: 'editorId=' + encodeURIComponent(this.element.id),
-      onComplete: Prototype.emptyFunction,
-      onSuccess: function(transport) {
-        var js = transport.responseText.strip();
-        if (!/^\[.*\]$/.test(js)) // TODO: improve sanity check
-          throw('Server returned an invalid collection representation.');
-        this._collection = eval(js);
-        this.checkForExternalText();
-      }.bind(this),
-      onFailure: this.onFailure
-    });
-    new Ajax.Request(this.options.loadCollectionURL, options);
-  },
-
-  showLoadingText: function(text) {
-    this._controls.editor.disabled = true;
-    var tempOption = this._controls.editor.firstChild;
-    if (!tempOption) {
-      tempOption = document.createElement('option');
-      tempOption.value = '';
-      this._controls.editor.appendChild(tempOption);
-      tempOption.selected = true;
-    }
-    tempOption.update((text || '').stripScripts().stripTags());
-  },
-
-  checkForExternalText: function() {
-    this._text = this.getText();
-    if (this.options.loadTextURL)
-      this.loadExternalText();
-    else
-      this.buildOptionList();
-  },
-
-  loadExternalText: function() {
-    this.showLoadingText(this.options.loadingText);
-    var options = Object.extend({ method: 'get' }, this.options.ajaxOptions);
-    Object.extend(options, {
-      parameters: 'editorId=' + encodeURIComponent(this.element.id),
-      onComplete: Prototype.emptyFunction,
-      onSuccess: function(transport) {
-        this._text = transport.responseText.strip();
-        this.buildOptionList();
-      }.bind(this),
-      onFailure: this.onFailure
-    });
-    new Ajax.Request(this.options.loadTextURL, options);
-  },
-
-  buildOptionList: function() {
-    this._form.removeClassName(this.options.loadingClassName);
-    this._collection = this._collection.map(function(entry) {
-      return 2 === entry.length ? entry : [entry, entry].flatten();
-    });
-    var marker = ('value' in this.options) ? this.options.value : this._text;
-    var textFound = this._collection.any(function(entry) {
-      return entry[0] == marker;
-    }.bind(this));
-    this._controls.editor.update('');
-    var option;
-    this._collection.each(function(entry, index) {
-      option = document.createElement('option');
-      option.value = entry[0];
-      option.selected = textFound ? entry[0] == marker : 0 == index;
-      option.appendChild(document.createTextNode(entry[1]));
-      this._controls.editor.appendChild(option);
-    }.bind(this));
-    this._controls.editor.disabled = false;
-    Field.scrollFreeActivate(this._controls.editor);
-  }
-});
-
-//**** DEPRECATION LAYER FOR InPlace[Collection]Editor! ****
-//**** This only  exists for a while,  in order to  let ****
-//**** users adapt to  the new API.  Read up on the new ****
-//**** API and convert your code to it ASAP!            ****
-
-Ajax.InPlaceEditor.prototype.initialize.dealWithDeprecatedOptions = function(options) {
-  if (!options) return;
-  function fallback(name, expr) {
-    if (name in options || expr === undefined) return;
-    options[name] = expr;
-  };
-  fallback('cancelControl', (options.cancelLink ? 'link' : (options.cancelButton ? 'button' :
-    options.cancelLink == options.cancelButton == false ? false : undefined)));
-  fallback('okControl', (options.okLink ? 'link' : (options.okButton ? 'button' :
-    options.okLink == options.okButton == false ? false : undefined)));
-  fallback('highlightColor', options.highlightcolor);
-  fallback('highlightEndColor', options.highlightendcolor);
-};
-
-Object.extend(Ajax.InPlaceEditor, {
-  DefaultOptions: {
-    ajaxOptions: { },
-    autoRows: 3,                                // Use when multi-line w/ rows == 1
-    cancelControl: 'link',                      // 'link'|'button'|false
-    cancelText: 'cancel',
-    clickToEditText: 'Click to edit',
-    externalControl: null,                      // id|elt
-    externalControlOnly: false,
-    fieldPostCreation: 'activate',              // 'activate'|'focus'|false
-    formClassName: 'inplaceeditor-form',
-    formId: null,                               // id|elt
-    highlightColor: '#ffff99',
-    highlightEndColor: '#ffffff',
-    hoverClassName: '',
-    htmlResponse: true,
-    loadingClassName: 'inplaceeditor-loading',
-    loadingText: 'Loading...',
-    okControl: 'button',                        // 'link'|'button'|false
-    okText: 'ok',
-    paramName: 'value',
-    rows: 1,                                    // If 1 and multi-line, uses autoRows
-    savingClassName: 'inplaceeditor-saving',
-    savingText: 'Saving...',
-    size: 0,
-    stripLoadedTextTags: false,
-    submitOnBlur: false,
-    textAfterControls: '',
-    textBeforeControls: '',
-    textBetweenControls: ''
-  },
-  DefaultCallbacks: {
-    callback: function(form) {
-      return Form.serialize(form);
-    },
-    onComplete: function(transport, element) {
-      // For backward compatibility, this one is bound to the IPE, and passes
-      // the element directly.  It was too often customized, so we don't break it.
-      new Effect.Highlight(element, {
-        startcolor: this.options.highlightColor, keepBackgroundImage: true });
-    },
-    onEnterEditMode: null,
-    onEnterHover: function(ipe) {
-      ipe.element.style.backgroundColor = ipe.options.highlightColor;
-      if (ipe._effect)
-        ipe._effect.cancel();
-    },
-    onFailure: function(transport, ipe) {
-      alert('Error communication with the server: ' + transport.responseText.stripTags());
-    },
-    onFormCustomization: null, // Takes the IPE and its generated form, after editor, before controls.
-    onLeaveEditMode: null,
-    onLeaveHover: function(ipe) {
-      ipe._effect = new Effect.Highlight(ipe.element, {
-        startcolor: ipe.options.highlightColor, endcolor: ipe.options.highlightEndColor,
-        restorecolor: ipe._originalBackground, keepBackgroundImage: true
-      });
-    }
-  },
-  Listeners: {
-    click: 'enterEditMode',
-    keydown: 'checkForEscapeOrReturn',
-    mouseover: 'enterHover',
-    mouseout: 'leaveHover'
-  }
-});
-
-Ajax.InPlaceCollectionEditor.DefaultOptions = {
-  loadingCollectionText: 'Loading options...'
-};
-
-// Delayed observer, like Form.Element.Observer,
-// but waits for delay after last key input
-// Ideal for live-search fields
-
-Form.Element.DelayedObserver = Class.create({
-  initialize: function(element, delay, callback) {
-    this.delay     = delay || 0.5;
-    this.element   = $(element);
-    this.callback  = callback;
-    this.timer     = null;
-    this.lastValue = $F(this.element);
-    Event.observe(this.element,'keyup',this.delayedListener.bindAsEventListener(this));
-  },
-  delayedListener: function(event) {
-    if(this.lastValue == $F(this.element)) return;
-    if(this.timer) clearTimeout(this.timer);
-    this.timer = setTimeout(this.onTimerEvent.bind(this), this.delay * 1000);
-    this.lastValue = $F(this.element);
-  },
-  onTimerEvent: function() {
-    this.timer = null;
-    this.callback(this.element, $F(this.element));
-  }
-});
\ No newline at end of file
--- a/web/wp-includes/js/scriptaculous/dragdrop.js	Wed Dec 19 12:35:13 2012 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,974 +0,0 @@
-// script.aculo.us dragdrop.js v1.8.3, Thu Oct 08 11:23:33 +0200 2009
-
-// Copyright (c) 2005-2009 Thomas Fuchs (http://script.aculo.us, http://mir.aculo.us)
-//
-// script.aculo.us is freely distributable under the terms of an MIT-style license.
-// For details, see the script.aculo.us web site: http://script.aculo.us/
-
-if(Object.isUndefined(Effect))
-  throw("dragdrop.js requires including script.aculo.us' effects.js library");
-
-var Droppables = {
-  drops: [],
-
-  remove: function(element) {
-    this.drops = this.drops.reject(function(d) { return d.element==$(element) });
-  },
-
-  add: function(element) {
-    element = $(element);
-    var options = Object.extend({
-      greedy:     true,
-      hoverclass: null,
-      tree:       false
-    }, arguments[1] || { });
-
-    // cache containers
-    if(options.containment) {
-      options._containers = [];
-      var containment = options.containment;
-      if(Object.isArray(containment)) {
-        containment.each( function(c) { options._containers.push($(c)) });
-      } else {
-        options._containers.push($(containment));
-      }
-    }
-
-    if(options.accept) options.accept = [options.accept].flatten();
-
-    Element.makePositioned(element); // fix IE
-    options.element = element;
-
-    this.drops.push(options);
-  },
-
-  findDeepestChild: function(drops) {
-    deepest = drops[0];
-
-    for (i = 1; i < drops.length; ++i)
-      if (Element.isParent(drops[i].element, deepest.element))
-        deepest = drops[i];
-
-    return deepest;
-  },
-
-  isContained: function(element, drop) {
-    var containmentNode;
-    if(drop.tree) {
-      containmentNode = element.treeNode;
-    } else {
-      containmentNode = element.parentNode;
-    }
-    return drop._containers.detect(function(c) { return containmentNode == c });
-  },
-
-  isAffected: function(point, element, drop) {
-    return (
-      (drop.element!=element) &&
-      ((!drop._containers) ||
-        this.isContained(element, drop)) &&
-      ((!drop.accept) ||
-        (Element.classNames(element).detect(
-          function(v) { return drop.accept.include(v) } ) )) &&
-      Position.within(drop.element, point[0], point[1]) );
-  },
-
-  deactivate: function(drop) {
-    if(drop.hoverclass)
-      Element.removeClassName(drop.element, drop.hoverclass);
-    this.last_active = null;
-  },
-
-  activate: function(drop) {
-    if(drop.hoverclass)
-      Element.addClassName(drop.element, drop.hoverclass);
-    this.last_active = drop;
-  },
-
-  show: function(point, element) {
-    if(!this.drops.length) return;
-    var drop, affected = [];
-
-    this.drops.each( function(drop) {
-      if(Droppables.isAffected(point, element, drop))
-        affected.push(drop);
-    });
-
-    if(affected.length>0)
-      drop = Droppables.findDeepestChild(affected);
-
-    if(this.last_active && this.last_active != drop) this.deactivate(this.last_active);
-    if (drop) {
-      Position.within(drop.element, point[0], point[1]);
-      if(drop.onHover)
-        drop.onHover(element, drop.element, Position.overlap(drop.overlap, drop.element));
-
-      if (drop != this.last_active) Droppables.activate(drop);
-    }
-  },
-
-  fire: function(event, element) {
-    if(!this.last_active) return;
-    Position.prepare();
-
-    if (this.isAffected([Event.pointerX(event), Event.pointerY(event)], element, this.last_active))
-      if (this.last_active.onDrop) {
-        this.last_active.onDrop(element, this.last_active.element, event);
-        return true;
-      }
-  },
-
-  reset: function() {
-    if(this.last_active)
-      this.deactivate(this.last_active);
-  }
-};
-
-var Draggables = {
-  drags: [],
-  observers: [],
-
-  register: function(draggable) {
-    if(this.drags.length == 0) {
-      this.eventMouseUp   = this.endDrag.bindAsEventListener(this);
-      this.eventMouseMove = this.updateDrag.bindAsEventListener(this);
-      this.eventKeypress  = this.keyPress.bindAsEventListener(this);
-
-      Event.observe(document, "mouseup", this.eventMouseUp);
-      Event.observe(document, "mousemove", this.eventMouseMove);
-      Event.observe(document, "keypress", this.eventKeypress);
-    }
-    this.drags.push(draggable);
-  },
-
-  unregister: function(draggable) {
-    this.drags = this.drags.reject(function(d) { return d==draggable });
-    if(this.drags.length == 0) {
-      Event.stopObserving(document, "mouseup", this.eventMouseUp);
-      Event.stopObserving(document, "mousemove", this.eventMouseMove);
-      Event.stopObserving(document, "keypress", this.eventKeypress);
-    }
-  },
-
-  activate: function(draggable) {
-    if(draggable.options.delay) {
-      this._timeout = setTimeout(function() {
-        Draggables._timeout = null;
-        window.focus();
-        Draggables.activeDraggable = draggable;
-      }.bind(this), draggable.options.delay);
-    } else {
-      window.focus(); // allows keypress events if window isn't currently focused, fails for Safari
-      this.activeDraggable = draggable;
-    }
-  },
-
-  deactivate: function() {
-    this.activeDraggable = null;
-  },
-
-  updateDrag: function(event) {
-    if(!this.activeDraggable) return;
-    var pointer = [Event.pointerX(event), Event.pointerY(event)];
-    // Mozilla-based browsers fire successive mousemove events with
-    // the same coordinates, prevent needless redrawing (moz bug?)
-    if(this._lastPointer && (this._lastPointer.inspect() == pointer.inspect())) return;
-    this._lastPointer = pointer;
-
-    this.activeDraggable.updateDrag(event, pointer);
-  },
-
-  endDrag: function(event) {
-    if(this._timeout) {
-      clearTimeout(this._timeout);
-      this._timeout = null;
-    }
-    if(!this.activeDraggable) return;
-    this._lastPointer = null;
-    this.activeDraggable.endDrag(event);
-    this.activeDraggable = null;
-  },
-
-  keyPress: function(event) {
-    if(this.activeDraggable)
-      this.activeDraggable.keyPress(event);
-  },
-
-  addObserver: function(observer) {
-    this.observers.push(observer);
-    this._cacheObserverCallbacks();
-  },
-
-  removeObserver: function(element) {  // element instead of observer fixes mem leaks
-    this.observers = this.observers.reject( function(o) { return o.element==element });
-    this._cacheObserverCallbacks();
-  },
-
-  notify: function(eventName, draggable, event) {  // 'onStart', 'onEnd', 'onDrag'
-    if(this[eventName+'Count'] > 0)
-      this.observers.each( function(o) {
-        if(o[eventName]) o[eventName](eventName, draggable, event);
-      });
-    if(draggable.options[eventName]) draggable.options[eventName](draggable, event);
-  },
-
-  _cacheObserverCallbacks: function() {
-    ['onStart','onEnd','onDrag'].each( function(eventName) {
-      Draggables[eventName+'Count'] = Draggables.observers.select(
-        function(o) { return o[eventName]; }
-      ).length;
-    });
-  }
-};
-
-/*--------------------------------------------------------------------------*/
-
-var Draggable = Class.create({
-  initialize: function(element) {
-    var defaults = {
-      handle: false,
-      reverteffect: function(element, top_offset, left_offset) {
-        var dur = Math.sqrt(Math.abs(top_offset^2)+Math.abs(left_offset^2))*0.02;
-        new Effect.Move(element, { x: -left_offset, y: -top_offset, duration: dur,
-          queue: {scope:'_draggable', position:'end'}
-        });
-      },
-      endeffect: function(element) {
-        var toOpacity = Object.isNumber(element._opacity) ? element._opacity : 1.0;
-        new Effect.Opacity(element, {duration:0.2, from:0.7, to:toOpacity,
-          queue: {scope:'_draggable', position:'end'},
-          afterFinish: function(){
-            Draggable._dragging[element] = false
-          }
-        });
-      },
-      zindex: 1000,
-      revert: false,
-      quiet: false,
-      scroll: false,
-      scrollSensitivity: 20,
-      scrollSpeed: 15,
-      snap: false,  // false, or xy or [x,y] or function(x,y){ return [x,y] }
-      delay: 0
-    };
-
-    if(!arguments[1] || Object.isUndefined(arguments[1].endeffect))
-      Object.extend(defaults, {
-        starteffect: function(element) {
-          element._opacity = Element.getOpacity(element);
-          Draggable._dragging[element] = true;
-          new Effect.Opacity(element, {duration:0.2, from:element._opacity, to:0.7});
-        }
-      });
-
-    var options = Object.extend(defaults, arguments[1] || { });
-
-    this.element = $(element);
-
-    if(options.handle && Object.isString(options.handle))
-      this.handle = this.element.down('.'+options.handle, 0);
-
-    if(!this.handle) this.handle = $(options.handle);
-    if(!this.handle) this.handle = this.element;
-
-    if(options.scroll && !options.scroll.scrollTo && !options.scroll.outerHTML) {
-      options.scroll = $(options.scroll);
-      this._isScrollChild = Element.childOf(this.element, options.scroll);
-    }
-
-    Element.makePositioned(this.element); // fix IE
-
-    this.options  = options;
-    this.dragging = false;
-
-    this.eventMouseDown = this.initDrag.bindAsEventListener(this);
-    Event.observe(this.handle, "mousedown", this.eventMouseDown);
-
-    Draggables.register(this);
-  },
-
-  destroy: function() {
-    Event.stopObserving(this.handle, "mousedown", this.eventMouseDown);
-    Draggables.unregister(this);
-  },
-
-  currentDelta: function() {
-    return([
-      parseInt(Element.getStyle(this.element,'left') || '0'),
-      parseInt(Element.getStyle(this.element,'top') || '0')]);
-  },
-
-  initDrag: function(event) {
-    if(!Object.isUndefined(Draggable._dragging[this.element]) &&
-      Draggable._dragging[this.element]) return;
-    if(Event.isLeftClick(event)) {
-      // abort on form elements, fixes a Firefox issue
-      var src = Event.element(event);
-      if((tag_name = src.tagName.toUpperCase()) && (
-        tag_name=='INPUT' ||
-        tag_name=='SELECT' ||
-        tag_name=='OPTION' ||
-        tag_name=='BUTTON' ||
-        tag_name=='TEXTAREA')) return;
-
-      var pointer = [Event.pointerX(event), Event.pointerY(event)];
-      var pos     = this.element.cumulativeOffset();
-      this.offset = [0,1].map( function(i) { return (pointer[i] - pos[i]) });
-
-      Draggables.activate(this);
-      Event.stop(event);
-    }
-  },
-
-  startDrag: function(event) {
-    this.dragging = true;
-    if(!this.delta)
-      this.delta = this.currentDelta();
-
-    if(this.options.zindex) {
-      this.originalZ = parseInt(Element.getStyle(this.element,'z-index') || 0);
-      this.element.style.zIndex = this.options.zindex;
-    }
-
-    if(this.options.ghosting) {
-      this._clone = this.element.cloneNode(true);
-      this._originallyAbsolute = (this.element.getStyle('position') == 'absolute');
-      if (!this._originallyAbsolute)
-        Position.absolutize(this.element);
-      this.element.parentNode.insertBefore(this._clone, this.element);
-    }
-
-    if(this.options.scroll) {
-      if (this.options.scroll == window) {
-        var where = this._getWindowScroll(this.options.scroll);
-        this.originalScrollLeft = where.left;
-        this.originalScrollTop = where.top;
-      } else {
-        this.originalScrollLeft = this.options.scroll.scrollLeft;
-        this.originalScrollTop = this.options.scroll.scrollTop;
-      }
-    }
-
-    Draggables.notify('onStart', this, event);
-
-    if(this.options.starteffect) this.options.starteffect(this.element);
-  },
-
-  updateDrag: function(event, pointer) {
-    if(!this.dragging) this.startDrag(event);
-
-    if(!this.options.quiet){
-      Position.prepare();
-      Droppables.show(pointer, this.element);
-    }
-
-    Draggables.notify('onDrag', this, event);
-
-    this.draw(pointer);
-    if(this.options.change) this.options.change(this);
-
-    if(this.options.scroll) {
-      this.stopScrolling();
-
-      var p;
-      if (this.options.scroll == window) {
-        with(this._getWindowScroll(this.options.scroll)) { p = [ left, top, left+width, top+height ]; }
-      } else {
-        p = Position.page(this.options.scroll);
-        p[0] += this.options.scroll.scrollLeft + Position.deltaX;
-        p[1] += this.options.scroll.scrollTop + Position.deltaY;
-        p.push(p[0]+this.options.scroll.offsetWidth);
-        p.push(p[1]+this.options.scroll.offsetHeight);
-      }
-      var speed = [0,0];
-      if(pointer[0] < (p[0]+this.options.scrollSensitivity)) speed[0] = pointer[0]-(p[0]+this.options.scrollSensitivity);
-      if(pointer[1] < (p[1]+this.options.scrollSensitivity)) speed[1] = pointer[1]-(p[1]+this.options.scrollSensitivity);
-      if(pointer[0] > (p[2]-this.options.scrollSensitivity)) speed[0] = pointer[0]-(p[2]-this.options.scrollSensitivity);
-      if(pointer[1] > (p[3]-this.options.scrollSensitivity)) speed[1] = pointer[1]-(p[3]-this.options.scrollSensitivity);
-      this.startScrolling(speed);
-    }
-
-    // fix AppleWebKit rendering
-    if(Prototype.Browser.WebKit) window.scrollBy(0,0);
-
-    Event.stop(event);
-  },
-
-  finishDrag: function(event, success) {
-    this.dragging = false;
-
-    if(this.options.quiet){
-      Position.prepare();
-      var pointer = [Event.pointerX(event), Event.pointerY(event)];
-      Droppables.show(pointer, this.element);
-    }
-
-    if(this.options.ghosting) {
-      if (!this._originallyAbsolute)
-        Position.relativize(this.element);
-      delete this._originallyAbsolute;
-      Element.remove(this._clone);
-      this._clone = null;
-    }
-
-    var dropped = false;
-    if(success) {
-      dropped = Droppables.fire(event, this.element);
-      if (!dropped) dropped = false;
-    }
-    if(dropped && this.options.onDropped) this.options.onDropped(this.element);
-    Draggables.notify('onEnd', this, event);
-
-    var revert = this.options.revert;
-    if(revert && Object.isFunction(revert)) revert = revert(this.element);
-
-    var d = this.currentDelta();
-    if(revert && this.options.reverteffect) {
-      if (dropped == 0 || revert != 'failure')
-        this.options.reverteffect(this.element,
-          d[1]-this.delta[1], d[0]-this.delta[0]);
-    } else {
-      this.delta = d;
-    }
-
-    if(this.options.zindex)
-      this.element.style.zIndex = this.originalZ;
-
-    if(this.options.endeffect)
-      this.options.endeffect(this.element);
-
-    Draggables.deactivate(this);
-    Droppables.reset();
-  },
-
-  keyPress: function(event) {
-    if(event.keyCode!=Event.KEY_ESC) return;
-    this.finishDrag(event, false);
-    Event.stop(event);
-  },
-
-  endDrag: function(event) {
-    if(!this.dragging) return;
-    this.stopScrolling();
-    this.finishDrag(event, true);
-    Event.stop(event);
-  },
-
-  draw: function(point) {
-    var pos = this.element.cumulativeOffset();
-    if(this.options.ghosting) {
-      var r   = Position.realOffset(this.element);
-      pos[0] += r[0] - Position.deltaX; pos[1] += r[1] - Position.deltaY;
-    }
-
-    var d = this.currentDelta();
-    pos[0] -= d[0]; pos[1] -= d[1];
-
-    if(this.options.scroll && (this.options.scroll != window && this._isScrollChild)) {
-      pos[0] -= this.options.scroll.scrollLeft-this.originalScrollLeft;
-      pos[1] -= this.options.scroll.scrollTop-this.originalScrollTop;
-    }
-
-    var p = [0,1].map(function(i){
-      return (point[i]-pos[i]-this.offset[i])
-    }.bind(this));
-
-    if(this.options.snap) {
-      if(Object.isFunction(this.options.snap)) {
-        p = this.options.snap(p[0],p[1],this);
-      } else {
-      if(Object.isArray(this.options.snap)) {
-        p = p.map( function(v, i) {
-          return (v/this.options.snap[i]).round()*this.options.snap[i] }.bind(this));
-      } else {
-        p = p.map( function(v) {
-          return (v/this.options.snap).round()*this.options.snap }.bind(this));
-      }
-    }}
-
-    var style = this.element.style;
-    if((!this.options.constraint) || (this.options.constraint=='horizontal'))
-      style.left = p[0] + "px";
-    if((!this.options.constraint) || (this.options.constraint=='vertical'))
-      style.top  = p[1] + "px";
-
-    if(style.visibility=="hidden") style.visibility = ""; // fix gecko rendering
-  },
-
-  stopScrolling: function() {
-    if(this.scrollInterval) {
-      clearInterval(this.scrollInterval);
-      this.scrollInterval = null;
-      Draggables._lastScrollPointer = null;
-    }
-  },
-
-  startScrolling: function(speed) {
-    if(!(speed[0] || speed[1])) return;
-    this.scrollSpeed = [speed[0]*this.options.scrollSpeed,speed[1]*this.options.scrollSpeed];
-    this.lastScrolled = new Date();
-    this.scrollInterval = setInterval(this.scroll.bind(this), 10);
-  },
-
-  scroll: function() {
-    var current = new Date();
-    var delta = current - this.lastScrolled;
-    this.lastScrolled = current;
-    if(this.options.scroll == window) {
-      with (this._getWindowScroll(this.options.scroll)) {
-        if (this.scrollSpeed[0] || this.scrollSpeed[1]) {
-          var d = delta / 1000;
-          this.options.scroll.scrollTo( left + d*this.scrollSpeed[0], top + d*this.scrollSpeed[1] );
-        }
-      }
-    } else {
-      this.options.scroll.scrollLeft += this.scrollSpeed[0] * delta / 1000;
-      this.options.scroll.scrollTop  += this.scrollSpeed[1] * delta / 1000;
-    }
-
-    Position.prepare();
-    Droppables.show(Draggables._lastPointer, this.element);
-    Draggables.notify('onDrag', this);
-    if (this._isScrollChild) {
-      Draggables._lastScrollPointer = Draggables._lastScrollPointer || $A(Draggables._lastPointer);
-      Draggables._lastScrollPointer[0] += this.scrollSpeed[0] * delta / 1000;
-      Draggables._lastScrollPointer[1] += this.scrollSpeed[1] * delta / 1000;
-      if (Draggables._lastScrollPointer[0] < 0)
-        Draggables._lastScrollPointer[0] = 0;
-      if (Draggables._lastScrollPointer[1] < 0)
-        Draggables._lastScrollPointer[1] = 0;
-      this.draw(Draggables._lastScrollPointer);
-    }
-
-    if(this.options.change) this.options.change(this);
-  },
-
-  _getWindowScroll: function(w) {
-    var T, L, W, H;
-    with (w.document) {
-      if (w.document.documentElement && documentElement.scrollTop) {
-        T = documentElement.scrollTop;
-        L = documentElement.scrollLeft;
-      } else if (w.document.body) {
-        T = body.scrollTop;
-        L = body.scrollLeft;
-      }
-      if (w.innerWidth) {
-        W = w.innerWidth;
-        H = w.innerHeight;
-      } else if (w.document.documentElement && documentElement.clientWidth) {
-        W = documentElement.clientWidth;
-        H = documentElement.clientHeight;
-      } else {
-        W = body.offsetWidth;
-        H = body.offsetHeight;
-      }
-    }
-    return { top: T, left: L, width: W, height: H };
-  }
-});
-
-Draggable._dragging = { };
-
-/*--------------------------------------------------------------------------*/
-
-var SortableObserver = Class.create({
-  initialize: function(element, observer) {
-    this.element   = $(element);
-    this.observer  = observer;
-    this.lastValue = Sortable.serialize(this.element);
-  },
-
-  onStart: function() {
-    this.lastValue = Sortable.serialize(this.element);
-  },
-
-  onEnd: function() {
-    Sortable.unmark();
-    if(this.lastValue != Sortable.serialize(this.element))
-      this.observer(this.element)
-  }
-});
-
-var Sortable = {
-  SERIALIZE_RULE: /^[^_\-](?:[A-Za-z0-9\-\_]*)[_](.*)$/,
-
-  sortables: { },
-
-  _findRootElement: function(element) {
-    while (element.tagName.toUpperCase() != "BODY") {
-      if(element.id && Sortable.sortables[element.id]) return element;
-      element = element.parentNode;
-    }
-  },
-
-  options: function(element) {
-    element = Sortable._findRootElement($(element));
-    if(!element) return;
-    return Sortable.sortables[element.id];
-  },
-
-  destroy: function(element){
-    element = $(element);
-    var s = Sortable.sortables[element.id];
-
-    if(s) {
-      Draggables.removeObserver(s.element);
-      s.droppables.each(function(d){ Droppables.remove(d) });
-      s.draggables.invoke('destroy');
-
-      delete Sortable.sortables[s.element.id];
-    }
-  },
-
-  create: function(element) {
-    element = $(element);
-    var options = Object.extend({
-      element:     element,
-      tag:         'li',       // assumes li children, override with tag: 'tagname'
-      dropOnEmpty: false,
-      tree:        false,
-      treeTag:     'ul',
-      overlap:     'vertical', // one of 'vertical', 'horizontal'
-      constraint:  'vertical', // one of 'vertical', 'horizontal', false
-      containment: element,    // also takes array of elements (or id's); or false
-      handle:      false,      // or a CSS class
-      only:        false,
-      delay:       0,
-      hoverclass:  null,
-      ghosting:    false,
-      quiet:       false,
-      scroll:      false,
-      scrollSensitivity: 20,
-      scrollSpeed: 15,
-      format:      this.SERIALIZE_RULE,
-
-      // these take arrays of elements or ids and can be
-      // used for better initialization performance
-      elements:    false,
-      handles:     false,
-
-      onChange:    Prototype.emptyFunction,
-      onUpdate:    Prototype.emptyFunction
-    }, arguments[1] || { });
-
-    // clear any old sortable with same element
-    this.destroy(element);
-
-    // build options for the draggables
-    var options_for_draggable = {
-      revert:      true,
-      quiet:       options.quiet,
-      scroll:      options.scroll,
-      scrollSpeed: options.scrollSpeed,
-      scrollSensitivity: options.scrollSensitivity,
-      delay:       options.delay,
-      ghosting:    options.ghosting,
-      constraint:  options.constraint,
-      handle:      options.handle };
-
-    if(options.starteffect)
-      options_for_draggable.starteffect = options.starteffect;
-
-    if(options.reverteffect)
-      options_for_draggable.reverteffect = options.reverteffect;
-    else
-      if(options.ghosting) options_for_draggable.reverteffect = function(element) {
-        element.style.top  = 0;
-        element.style.left = 0;
-      };
-
-    if(options.endeffect)
-      options_for_draggable.endeffect = options.endeffect;
-
-    if(options.zindex)
-      options_for_draggable.zindex = options.zindex;
-
-    // build options for the droppables
-    var options_for_droppable = {
-      overlap:     options.overlap,
-      containment: options.containment,
-      tree:        options.tree,
-      hoverclass:  options.hoverclass,
-      onHover:     Sortable.onHover
-    };
-
-    var options_for_tree = {
-      onHover:      Sortable.onEmptyHover,
-      overlap:      options.overlap,
-      containment:  options.containment,
-      hoverclass:   options.hoverclass
-    };
-
-    // fix for gecko engine
-    Element.cleanWhitespace(element);
-
-    options.draggables = [];
-    options.droppables = [];
-
-    // drop on empty handling
-    if(options.dropOnEmpty || options.tree) {
-      Droppables.add(element, options_for_tree);
-      options.droppables.push(element);
-    }
-
-    (options.elements || this.findElements(element, options) || []).each( function(e,i) {
-      var handle = options.handles ? $(options.handles[i]) :
-        (options.handle ? $(e).select('.' + options.handle)[0] : e);
-      options.draggables.push(
-        new Draggable(e, Object.extend(options_for_draggable, { handle: handle })));
-      Droppables.add(e, options_for_droppable);
-      if(options.tree) e.treeNode = element;
-      options.droppables.push(e);
-    });
-
-    if(options.tree) {
-      (Sortable.findTreeElements(element, options) || []).each( function(e) {
-        Droppables.add(e, options_for_tree);
-        e.treeNode = element;
-        options.droppables.push(e);
-      });
-    }
-
-    // keep reference
-    this.sortables[element.identify()] = options;
-
-    // for onupdate
-    Draggables.addObserver(new SortableObserver(element, options.onUpdate));
-
-  },
-
-  // return all suitable-for-sortable elements in a guaranteed order
-  findElements: function(element, options) {
-    return Element.findChildren(
-      element, options.only, options.tree ? true : false, options.tag);
-  },
-
-  findTreeElements: function(element, options) {
-    return Element.findChildren(
-      element, options.only, options.tree ? true : false, options.treeTag);
-  },
-
-  onHover: function(element, dropon, overlap) {
-    if(Element.isParent(dropon, element)) return;
-
-    if(overlap > .33 && overlap < .66 && Sortable.options(dropon).tree) {
-      return;
-    } else if(overlap>0.5) {
-      Sortable.mark(dropon, 'before');
-      if(dropon.previousSibling != element) {
-        var oldParentNode = element.parentNode;
-        element.style.visibility = "hidden"; // fix gecko rendering
-        dropon.parentNode.insertBefore(element, dropon);
-        if(dropon.parentNode!=oldParentNode)
-          Sortable.options(oldParentNode).onChange(element);
-        Sortable.options(dropon.parentNode).onChange(element);
-      }
-    } else {
-      Sortable.mark(dropon, 'after');
-      var nextElement = dropon.nextSibling || null;
-      if(nextElement != element) {
-        var oldParentNode = element.parentNode;
-        element.style.visibility = "hidden"; // fix gecko rendering
-        dropon.parentNode.insertBefore(element, nextElement);
-        if(dropon.parentNode!=oldParentNode)
-          Sortable.options(oldParentNode).onChange(element);
-        Sortable.options(dropon.parentNode).onChange(element);
-      }
-    }
-  },
-
-  onEmptyHover: function(element, dropon, overlap) {
-    var oldParentNode = element.parentNode;
-    var droponOptions = Sortable.options(dropon);
-
-    if(!Element.isParent(dropon, element)) {
-      var index;
-
-      var children = Sortable.findElements(dropon, {tag: droponOptions.tag, only: droponOptions.only});
-      var child = null;
-
-      if(children) {
-        var offset = Element.offsetSize(dropon, droponOptions.overlap) * (1.0 - overlap);
-
-        for (index = 0; index < children.length; index += 1) {
-          if (offset - Element.offsetSize (children[index], droponOptions.overlap) >= 0) {
-            offset -= Element.offsetSize (children[index], droponOptions.overlap);
-          } else if (offset - (Element.offsetSize (children[index], droponOptions.overlap) / 2) >= 0) {
-            child = index + 1 < children.length ? children[index + 1] : null;
-            break;
-          } else {
-            child = children[index];
-            break;
-          }
-        }
-      }
-
-      dropon.insertBefore(element, child);
-
-      Sortable.options(oldParentNode).onChange(element);
-      droponOptions.onChange(element);
-    }
-  },
-
-  unmark: function() {
-    if(Sortable._marker) Sortable._marker.hide();
-  },
-
-  mark: function(dropon, position) {
-    // mark on ghosting only
-    var sortable = Sortable.options(dropon.parentNode);
-    if(sortable && !sortable.ghosting) return;
-
-    if(!Sortable._marker) {
-      Sortable._marker =
-        ($('dropmarker') || Element.extend(document.createElement('DIV'))).
-          hide().addClassName('dropmarker').setStyle({position:'absolute'});
-      document.getElementsByTagName("body").item(0).appendChild(Sortable._marker);
-    }
-    var offsets = dropon.cumulativeOffset();
-    Sortable._marker.setStyle({left: offsets[0]+'px', top: offsets[1] + 'px'});
-
-    if(position=='after')
-      if(sortable.overlap == 'horizontal')
-        Sortable._marker.setStyle({left: (offsets[0]+dropon.clientWidth) + 'px'});
-      else
-        Sortable._marker.setStyle({top: (offsets[1]+dropon.clientHeight) + 'px'});
-
-    Sortable._marker.show();
-  },
-
-  _tree: function(element, options, parent) {
-    var children = Sortable.findElements(element, options) || [];
-
-    for (var i = 0; i < children.length; ++i) {
-      var match = children[i].id.match(options.format);
-
-      if (!match) continue;
-
-      var child = {
-        id: encodeURIComponent(match ? match[1] : null),
-        element: element,
-        parent: parent,
-        children: [],
-        position: parent.children.length,
-        container: $(children[i]).down(options.treeTag)
-      };
-
-      /* Get the element containing the children and recurse over it */
-      if (child.container)
-        this._tree(child.container, options, child);
-
-      parent.children.push (child);
-    }
-
-    return parent;
-  },
-
-  tree: function(element) {
-    element = $(element);
-    var sortableOptions = this.options(element);
-    var options = Object.extend({
-      tag: sortableOptions.tag,
-      treeTag: sortableOptions.treeTag,
-      only: sortableOptions.only,
-      name: element.id,
-      format: sortableOptions.format
-    }, arguments[1] || { });
-
-    var root = {
-      id: null,
-      parent: null,
-      children: [],
-      container: element,
-      position: 0
-    };
-
-    return Sortable._tree(element, options, root);
-  },
-
-  /* Construct a [i] index for a particular node */
-  _constructIndex: function(node) {
-    var index = '';
-    do {
-      if (node.id) index = '[' + node.position + ']' + index;
-    } while ((node = node.parent) != null);
-    return index;
-  },
-
-  sequence: function(element) {
-    element = $(element);
-    var options = Object.extend(this.options(element), arguments[1] || { });
-
-    return $(this.findElements(element, options) || []).map( function(item) {
-      return item.id.match(options.format) ? item.id.match(options.format)[1] : '';
-    });
-  },
-
-  setSequence: function(element, new_sequence) {
-    element = $(element);
-    var options = Object.extend(this.options(element), arguments[2] || { });
-
-    var nodeMap = { };
-    this.findElements(element, options).each( function(n) {
-        if (n.id.match(options.format))
-            nodeMap[n.id.match(options.format)[1]] = [n, n.parentNode];
-        n.parentNode.removeChild(n);
-    });
-
-    new_sequence.each(function(ident) {
-      var n = nodeMap[ident];
-      if (n) {
-        n[1].appendChild(n[0]);
-        delete nodeMap[ident];
-      }
-    });
-  },
-
-  serialize: function(element) {
-    element = $(element);
-    var options = Object.extend(Sortable.options(element), arguments[1] || { });
-    var name = encodeURIComponent(
-      (arguments[1] && arguments[1].name) ? arguments[1].name : element.id);
-
-    if (options.tree) {
-      return Sortable.tree(element, arguments[1]).children.map( function (item) {
-        return [name + Sortable._constructIndex(item) + "[id]=" +
-                encodeURIComponent(item.id)].concat(item.children.map(arguments.callee));
-      }).flatten().join('&');
-    } else {
-      return Sortable.sequence(element, arguments[1]).map( function(item) {
-        return name + "[]=" + encodeURIComponent(item);
-      }).join('&');
-    }
-  }
-};
-
-// Returns true if child is contained within element
-Element.isParent = function(child, element) {
-  if (!child.parentNode || child == element) return false;
-  if (child.parentNode == element) return true;
-  return Element.isParent(child.parentNode, element);
-};
-
-Element.findChildren = function(element, only, recursive, tagName) {
-  if(!element.hasChildNodes()) return null;
-  tagName = tagName.toUpperCase();
-  if(only) only = [only].flatten();
-  var elements = [];
-  $A(element.childNodes).each( function(e) {
-    if(e.tagName && e.tagName.toUpperCase()==tagName &&
-      (!only || (Element.classNames(e).detect(function(v) { return only.include(v) }))))
-        elements.push(e);
-    if(recursive) {
-      var grandchildren = Element.findChildren(e, only, recursive, tagName);
-      if(grandchildren) elements.push(grandchildren);
-    }
-  });
-
-  return (elements.length>0 ? elements.flatten() : []);
-};
-
-Element.offsetSize = function (element, type) {
-  return element['offset' + ((type=='vertical' || type=='height') ? 'Height' : 'Width')];
-};
\ No newline at end of file
--- a/web/wp-includes/js/scriptaculous/effects.js	Wed Dec 19 12:35:13 2012 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,1123 +0,0 @@
-// script.aculo.us effects.js v1.8.3, Thu Oct 08 11:23:33 +0200 2009
-
-// Copyright (c) 2005-2009 Thomas Fuchs (http://script.aculo.us, http://mir.aculo.us)
-// Contributors:
-//  Justin Palmer (http://encytemedia.com/)
-//  Mark Pilgrim (http://diveintomark.org/)
-//  Martin Bialasinki
-//
-// script.aculo.us is freely distributable under the terms of an MIT-style license.
-// For details, see the script.aculo.us web site: http://script.aculo.us/
-
-// converts rgb() and #xxx to #xxxxxx format,
-// returns self (or first argument) if not convertable
-String.prototype.parseColor = function() {
-  var color = '#';
-  if (this.slice(0,4) == 'rgb(') {
-    var cols = this.slice(4,this.length-1).split(',');
-    var i=0; do { color += parseInt(cols[i]).toColorPart() } while (++i<3);
-  } else {
-    if (this.slice(0,1) == '#') {
-      if (this.length==4) for(var i=1;i<4;i++) color += (this.charAt(i) + this.charAt(i)).toLowerCase();
-      if (this.length==7) color = this.toLowerCase();
-    }
-  }
-  return (color.length==7 ? color : (arguments[0] || this));
-};
-
-/*--------------------------------------------------------------------------*/
-
-Element.collectTextNodes = function(element) {
-  return $A($(element).childNodes).collect( function(node) {
-    return (node.nodeType==3 ? node.nodeValue :
-      (node.hasChildNodes() ? Element.collectTextNodes(node) : ''));
-  }).flatten().join('');
-};
-
-Element.collectTextNodesIgnoreClass = function(element, className) {
-  return $A($(element).childNodes).collect( function(node) {
-    return (node.nodeType==3 ? node.nodeValue :
-      ((node.hasChildNodes() && !Element.hasClassName(node,className)) ?
-        Element.collectTextNodesIgnoreClass(node, className) : ''));
-  }).flatten().join('');
-};
-
-Element.setContentZoom = function(element, percent) {
-  element = $(element);
-  element.setStyle({fontSize: (percent/100) + 'em'});
-  if (Prototype.Browser.WebKit) window.scrollBy(0,0);
-  return element;
-};
-
-Element.getInlineOpacity = function(element){
-  return $(element).style.opacity || '';
-};
-
-Element.forceRerendering = function(element) {
-  try {
-    element = $(element);
-    var n = document.createTextNode(' ');
-    element.appendChild(n);
-    element.removeChild(n);
-  } catch(e) { }
-};
-
-/*--------------------------------------------------------------------------*/
-
-var Effect = {
-  _elementDoesNotExistError: {
-    name: 'ElementDoesNotExistError',
-    message: 'The specified DOM element does not exist, but is required for this effect to operate'
-  },
-  Transitions: {
-    linear: Prototype.K,
-    sinoidal: function(pos) {
-      return (-Math.cos(pos*Math.PI)/2) + .5;
-    },
-    reverse: function(pos) {
-      return 1-pos;
-    },
-    flicker: function(pos) {
-      var pos = ((-Math.cos(pos*Math.PI)/4) + .75) + Math.random()/4;
-      return pos > 1 ? 1 : pos;
-    },
-    wobble: function(pos) {
-      return (-Math.cos(pos*Math.PI*(9*pos))/2) + .5;
-    },
-    pulse: function(pos, pulses) {
-      return (-Math.cos((pos*((pulses||5)-.5)*2)*Math.PI)/2) + .5;
-    },
-    spring: function(pos) {
-      return 1 - (Math.cos(pos * 4.5 * Math.PI) * Math.exp(-pos * 6));
-    },
-    none: function(pos) {
-      return 0;
-    },
-    full: function(pos) {
-      return 1;
-    }
-  },
-  DefaultOptions: {
-    duration:   1.0,   // seconds
-    fps:        100,   // 100= assume 66fps max.
-    sync:       false, // true for combining
-    from:       0.0,
-    to:         1.0,
-    delay:      0.0,
-    queue:      'parallel'
-  },
-  tagifyText: function(element) {
-    var tagifyStyle = 'position:relative';
-    if (Prototype.Browser.IE) tagifyStyle += ';zoom:1';
-
-    element = $(element);
-    $A(element.childNodes).each( function(child) {
-      if (child.nodeType==3) {
-        child.nodeValue.toArray().each( function(character) {
-          element.insertBefore(
-            new Element('span', {style: tagifyStyle}).update(
-              character == ' ' ? String.fromCharCode(160) : character),
-              child);
-        });
-        Element.remove(child);
-      }
-    });
-  },
-  multiple: function(element, effect) {
-    var elements;
-    if (((typeof element == 'object') ||
-        Object.isFunction(element)) &&
-       (element.length))
-      elements = element;
-    else
-      elements = $(element).childNodes;
-
-    var options = Object.extend({
-      speed: 0.1,
-      delay: 0.0
-    }, arguments[2] || { });
-    var masterDelay = options.delay;
-
-    $A(elements).each( function(element, index) {
-      new effect(element, Object.extend(options, { delay: index * options.speed + masterDelay }));
-    });
-  },
-  PAIRS: {
-    'slide':  ['SlideDown','SlideUp'],
-    'blind':  ['BlindDown','BlindUp'],
-    'appear': ['Appear','Fade']
-  },
-  toggle: function(element, effect, options) {
-    element = $(element);
-    effect  = (effect || 'appear').toLowerCase();
-    
-    return Effect[ Effect.PAIRS[ effect ][ element.visible() ? 1 : 0 ] ](element, Object.extend({
-      queue: { position:'end', scope:(element.id || 'global'), limit: 1 }
-    }, options || {}));
-  }
-};
-
-Effect.DefaultOptions.transition = Effect.Transitions.sinoidal;
-
-/* ------------- core effects ------------- */
-
-Effect.ScopedQueue = Class.create(Enumerable, {
-  initialize: function() {
-    this.effects  = [];
-    this.interval = null;
-  },
-  _each: function(iterator) {
-    this.effects._each(iterator);
-  },
-  add: function(effect) {
-    var timestamp = new Date().getTime();
-
-    var position = Object.isString(effect.options.queue) ?
-      effect.options.queue : effect.options.queue.position;
-
-    switch(position) {
-      case 'front':
-        // move unstarted effects after this effect
-        this.effects.findAll(function(e){ return e.state=='idle' }).each( function(e) {
-            e.startOn  += effect.finishOn;
-            e.finishOn += effect.finishOn;
-          });
-        break;
-      case 'with-last':
-        timestamp = this.effects.pluck('startOn').max() || timestamp;
-        break;
-      case 'end':
-        // start effect after last queued effect has finished
-        timestamp = this.effects.pluck('finishOn').max() || timestamp;
-        break;
-    }
-
-    effect.startOn  += timestamp;
-    effect.finishOn += timestamp;
-
-    if (!effect.options.queue.limit || (this.effects.length < effect.options.queue.limit))
-      this.effects.push(effect);
-
-    if (!this.interval)
-      this.interval = setInterval(this.loop.bind(this), 15);
-  },
-  remove: function(effect) {
-    this.effects = this.effects.reject(function(e) { return e==effect });
-    if (this.effects.length == 0) {
-      clearInterval(this.interval);
-      this.interval = null;
-    }
-  },
-  loop: function() {
-    var timePos = new Date().getTime();
-    for(var i=0, len=this.effects.length;i<len;i++)
-      this.effects[i] && this.effects[i].loop(timePos);
-  }
-});
-
-Effect.Queues = {
-  instances: $H(),
-  get: function(queueName) {
-    if (!Object.isString(queueName)) return queueName;
-
-    return this.instances.get(queueName) ||
-      this.instances.set(queueName, new Effect.ScopedQueue());
-  }
-};
-Effect.Queue = Effect.Queues.get('global');
-
-Effect.Base = Class.create({
-  position: null,
-  start: function(options) {
-    if (options && options.transition === false) options.transition = Effect.Transitions.linear;
-    this.options      = Object.extend(Object.extend({ },Effect.DefaultOptions), options || { });
-    this.currentFrame = 0;
-    this.state        = 'idle';
-    this.startOn      = this.options.delay*1000;
-    this.finishOn     = this.startOn+(this.options.duration*1000);
-    this.fromToDelta  = this.options.to-this.options.from;
-    this.totalTime    = this.finishOn-this.startOn;
-    this.totalFrames  = this.options.fps*this.options.duration;
-
-    this.render = (function() {
-      function dispatch(effect, eventName) {
-        if (effect.options[eventName + 'Internal'])
-          effect.options[eventName + 'Internal'](effect);
-        if (effect.options[eventName])
-          effect.options[eventName](effect);
-      }
-
-      return function(pos) {
-        if (this.state === "idle") {
-          this.state = "running";
-          dispatch(this, 'beforeSetup');
-          if (this.setup) this.setup();
-          dispatch(this, 'afterSetup');
-        }
-        if (this.state === "running") {
-          pos = (this.options.transition(pos) * this.fromToDelta) + this.options.from;
-          this.position = pos;
-          dispatch(this, 'beforeUpdate');
-          if (this.update) this.update(pos);
-          dispatch(this, 'afterUpdate');
-        }
-      };
-    })();
-
-    this.event('beforeStart');
-    if (!this.options.sync)
-      Effect.Queues.get(Object.isString(this.options.queue) ?
-        'global' : this.options.queue.scope).add(this);
-  },
-  loop: function(timePos) {
-    if (timePos >= this.startOn) {
-      if (timePos >= this.finishOn) {
-        this.render(1.0);
-        this.cancel();
-        this.event('beforeFinish');
-        if (this.finish) this.finish();
-        this.event('afterFinish');
-        return;
-      }
-      var pos   = (timePos - this.startOn) / this.totalTime,
-          frame = (pos * this.totalFrames).round();
-      if (frame > this.currentFrame) {
-        this.render(pos);
-        this.currentFrame = frame;
-      }
-    }
-  },
-  cancel: function() {
-    if (!this.options.sync)
-      Effect.Queues.get(Object.isString(this.options.queue) ?
-        'global' : this.options.queue.scope).remove(this);
-    this.state = 'finished';
-  },
-  event: function(eventName) {
-    if (this.options[eventName + 'Internal']) this.options[eventName + 'Internal'](this);
-    if (this.options[eventName]) this.options[eventName](this);
-  },
-  inspect: function() {
-    var data = $H();
-    for(property in this)
-      if (!Object.isFunction(this[property])) data.set(property, this[property]);
-    return '#<Effect:' + data.inspect() + ',options:' + $H(this.options).inspect() + '>';
-  }
-});
-
-Effect.Parallel = Class.create(Effect.Base, {
-  initialize: function(effects) {
-    this.effects = effects || [];
-    this.start(arguments[1]);
-  },
-  update: function(position) {
-    this.effects.invoke('render', position);
-  },
-  finish: function(position) {
-    this.effects.each( function(effect) {
-      effect.render(1.0);
-      effect.cancel();
-      effect.event('beforeFinish');
-      if (effect.finish) effect.finish(position);
-      effect.event('afterFinish');
-    });
-  }
-});
-
-Effect.Tween = Class.create(Effect.Base, {
-  initialize: function(object, from, to) {
-    object = Object.isString(object) ? $(object) : object;
-    var args = $A(arguments), method = args.last(),
-      options = args.length == 5 ? args[3] : null;
-    this.method = Object.isFunction(method) ? method.bind(object) :
-      Object.isFunction(object[method]) ? object[method].bind(object) :
-      function(value) { object[method] = value };
-    this.start(Object.extend({ from: from, to: to }, options || { }));
-  },
-  update: function(position) {
-    this.method(position);
-  }
-});
-
-Effect.Event = Class.create(Effect.Base, {
-  initialize: function() {
-    this.start(Object.extend({ duration: 0 }, arguments[0] || { }));
-  },
-  update: Prototype.emptyFunction
-});
-
-Effect.Opacity = Class.create(Effect.Base, {
-  initialize: function(element) {
-    this.element = $(element);
-    if (!this.element) throw(Effect._elementDoesNotExistError);
-    // make this work on IE on elements without 'layout'
-    if (Prototype.Browser.IE && (!this.element.currentStyle.hasLayout))
-      this.element.setStyle({zoom: 1});
-    var options = Object.extend({
-      from: this.element.getOpacity() || 0.0,
-      to:   1.0
-    }, arguments[1] || { });
-    this.start(options);
-  },
-  update: function(position) {
-    this.element.setOpacity(position);
-  }
-});
-
-Effect.Move = Class.create(Effect.Base, {
-  initialize: function(element) {
-    this.element = $(element);
-    if (!this.element) throw(Effect._elementDoesNotExistError);
-    var options = Object.extend({
-      x:    0,
-      y:    0,
-      mode: 'relative'
-    }, arguments[1] || { });
-    this.start(options);
-  },
-  setup: function() {
-    this.element.makePositioned();
-    this.originalLeft = parseFloat(this.element.getStyle('left') || '0');
-    this.originalTop  = parseFloat(this.element.getStyle('top')  || '0');
-    if (this.options.mode == 'absolute') {
-      this.options.x = this.options.x - this.originalLeft;
-      this.options.y = this.options.y - this.originalTop;
-    }
-  },
-  update: function(position) {
-    this.element.setStyle({
-      left: (this.options.x  * position + this.originalLeft).round() + 'px',
-      top:  (this.options.y  * position + this.originalTop).round()  + 'px'
-    });
-  }
-});
-
-// for backwards compatibility
-Effect.MoveBy = function(element, toTop, toLeft) {
-  return new Effect.Move(element,
-    Object.extend({ x: toLeft, y: toTop }, arguments[3] || { }));
-};
-
-Effect.Scale = Class.create(Effect.Base, {
-  initialize: function(element, percent) {
-    this.element = $(element);
-    if (!this.element) throw(Effect._elementDoesNotExistError);
-    var options = Object.extend({
-      scaleX: true,
-      scaleY: true,
-      scaleContent: true,
-      scaleFromCenter: false,
-      scaleMode: 'box',        // 'box' or 'contents' or { } with provided values
-      scaleFrom: 100.0,
-      scaleTo:   percent
-    }, arguments[2] || { });
-    this.start(options);
-  },
-  setup: function() {
-    this.restoreAfterFinish = this.options.restoreAfterFinish || false;
-    this.elementPositioning = this.element.getStyle('position');
-
-    this.originalStyle = { };
-    ['top','left','width','height','fontSize'].each( function(k) {
-      this.originalStyle[k] = this.element.style[k];
-    }.bind(this));
-
-    this.originalTop  = this.element.offsetTop;
-    this.originalLeft = this.element.offsetLeft;
-
-    var fontSize = this.element.getStyle('font-size') || '100%';
-    ['em','px','%','pt'].each( function(fontSizeType) {
-      if (fontSize.indexOf(fontSizeType)>0) {
-        this.fontSize     = parseFloat(fontSize);
-        this.fontSizeType = fontSizeType;
-      }
-    }.bind(this));
-
-    this.factor = (this.options.scaleTo - this.options.scaleFrom)/100;
-
-    this.dims = null;
-    if (this.options.scaleMode=='box')
-      this.dims = [this.element.offsetHeight, this.element.offsetWidth];
-    if (/^content/.test(this.options.scaleMode))
-      this.dims = [this.element.scrollHeight, this.element.scrollWidth];
-    if (!this.dims)
-      this.dims = [this.options.scaleMode.originalHeight,
-                   this.options.scaleMode.originalWidth];
-  },
-  update: function(position) {
-    var currentScale = (this.options.scaleFrom/100.0) + (this.factor * position);
-    if (this.options.scaleContent && this.fontSize)
-      this.element.setStyle({fontSize: this.fontSize * currentScale + this.fontSizeType });
-    this.setDimensions(this.dims[0] * currentScale, this.dims[1] * currentScale);
-  },
-  finish: function(position) {
-    if (this.restoreAfterFinish) this.element.setStyle(this.originalStyle);
-  },
-  setDimensions: function(height, width) {
-    var d = { };
-    if (this.options.scaleX) d.width = width.round() + 'px';
-    if (this.options.scaleY) d.height = height.round() + 'px';
-    if (this.options.scaleFromCenter) {
-      var topd  = (height - this.dims[0])/2;
-      var leftd = (width  - this.dims[1])/2;
-      if (this.elementPositioning == 'absolute') {
-        if (this.options.scaleY) d.top = this.originalTop-topd + 'px';
-        if (this.options.scaleX) d.left = this.originalLeft-leftd + 'px';
-      } else {
-        if (this.options.scaleY) d.top = -topd + 'px';
-        if (this.options.scaleX) d.left = -leftd + 'px';
-      }
-    }
-    this.element.setStyle(d);
-  }
-});
-
-Effect.Highlight = Class.create(Effect.Base, {
-  initialize: function(element) {
-    this.element = $(element);
-    if (!this.element) throw(Effect._elementDoesNotExistError);
-    var options = Object.extend({ startcolor: '#ffff99' }, arguments[1] || { });
-    this.start(options);
-  },
-  setup: function() {
-    // Prevent executing on elements not in the layout flow
-    if (this.element.getStyle('display')=='none') { this.cancel(); return; }
-    // Disable background image during the effect
-    this.oldStyle = { };
-    if (!this.options.keepBackgroundImage) {
-      this.oldStyle.backgroundImage = this.element.getStyle('background-image');
-      this.element.setStyle({backgroundImage: 'none'});
-    }
-    if (!this.options.endcolor)
-      this.options.endcolor = this.element.getStyle('background-color').parseColor('#ffffff');
-    if (!this.options.restorecolor)
-      this.options.restorecolor = this.element.getStyle('background-color');
-    // init color calculations
-    this._base  = $R(0,2).map(function(i){ return parseInt(this.options.startcolor.slice(i*2+1,i*2+3),16) }.bind(this));
-    this._delta = $R(0,2).map(function(i){ return parseInt(this.options.endcolor.slice(i*2+1,i*2+3),16)-this._base[i] }.bind(this));
-  },
-  update: function(position) {
-    this.element.setStyle({backgroundColor: $R(0,2).inject('#',function(m,v,i){
-      return m+((this._base[i]+(this._delta[i]*position)).round().toColorPart()); }.bind(this)) });
-  },
-  finish: function() {
-    this.element.setStyle(Object.extend(this.oldStyle, {
-      backgroundColor: this.options.restorecolor
-    }));
-  }
-});
-
-Effect.ScrollTo = function(element) {
-  var options = arguments[1] || { },
-  scrollOffsets = document.viewport.getScrollOffsets(),
-  elementOffsets = $(element).cumulativeOffset();
-
-  if (options.offset) elementOffsets[1] += options.offset;
-
-  return new Effect.Tween(null,
-    scrollOffsets.top,
-    elementOffsets[1],
-    options,
-    function(p){ scrollTo(scrollOffsets.left, p.round()); }
-  );
-};
-
-/* ------------- combination effects ------------- */
-
-Effect.Fade = function(element) {
-  element = $(element);
-  var oldOpacity = element.getInlineOpacity();
-  var options = Object.extend({
-    from: element.getOpacity() || 1.0,
-    to:   0.0,
-    afterFinishInternal: function(effect) {
-      if (effect.options.to!=0) return;
-      effect.element.hide().setStyle({opacity: oldOpacity});
-    }
-  }, arguments[1] || { });
-  return new Effect.Opacity(element,options);
-};
-
-Effect.Appear = function(element) {
-  element = $(element);
-  var options = Object.extend({
-  from: (element.getStyle('display') == 'none' ? 0.0 : element.getOpacity() || 0.0),
-  to:   1.0,
-  // force Safari to render floated elements properly
-  afterFinishInternal: function(effect) {
-    effect.element.forceRerendering();
-  },
-  beforeSetup: function(effect) {
-    effect.element.setOpacity(effect.options.from).show();
-  }}, arguments[1] || { });
-  return new Effect.Opacity(element,options);
-};
-
-Effect.Puff = function(element) {
-  element = $(element);
-  var oldStyle = {
-    opacity: element.getInlineOpacity(),
-    position: element.getStyle('position'),
-    top:  element.style.top,
-    left: element.style.left,
-    width: element.style.width,
-    height: element.style.height
-  };
-  return new Effect.Parallel(
-   [ new Effect.Scale(element, 200,
-      { sync: true, scaleFromCenter: true, scaleContent: true, restoreAfterFinish: true }),
-     new Effect.Opacity(element, { sync: true, to: 0.0 } ) ],
-     Object.extend({ duration: 1.0,
-      beforeSetupInternal: function(effect) {
-        Position.absolutize(effect.effects[0].element);
-      },
-      afterFinishInternal: function(effect) {
-         effect.effects[0].element.hide().setStyle(oldStyle); }
-     }, arguments[1] || { })
-   );
-};
-
-Effect.BlindUp = function(element) {
-  element = $(element);
-  element.makeClipping();
-  return new Effect.Scale(element, 0,
-    Object.extend({ scaleContent: false,
-      scaleX: false,
-      restoreAfterFinish: true,
-      afterFinishInternal: function(effect) {
-        effect.element.hide().undoClipping();
-      }
-    }, arguments[1] || { })
-  );
-};
-
-Effect.BlindDown = function(element) {
-  element = $(element);
-  var elementDimensions = element.getDimensions();
-  return new Effect.Scale(element, 100, Object.extend({
-    scaleContent: false,
-    scaleX: false,
-    scaleFrom: 0,
-    scaleMode: {originalHeight: elementDimensions.height, originalWidth: elementDimensions.width},
-    restoreAfterFinish: true,
-    afterSetup: function(effect) {
-      effect.element.makeClipping().setStyle({height: '0px'}).show();
-    },
-    afterFinishInternal: function(effect) {
-      effect.element.undoClipping();
-    }
-  }, arguments[1] || { }));
-};
-
-Effect.SwitchOff = function(element) {
-  element = $(element);
-  var oldOpacity = element.getInlineOpacity();
-  return new Effect.Appear(element, Object.extend({
-    duration: 0.4,
-    from: 0,
-    transition: Effect.Transitions.flicker,
-    afterFinishInternal: function(effect) {
-      new Effect.Scale(effect.element, 1, {
-        duration: 0.3, scaleFromCenter: true,
-        scaleX: false, scaleContent: false, restoreAfterFinish: true,
-        beforeSetup: function(effect) {
-          effect.element.makePositioned().makeClipping();
-        },
-        afterFinishInternal: function(effect) {
-          effect.element.hide().undoClipping().undoPositioned().setStyle({opacity: oldOpacity});
-        }
-      });
-    }
-  }, arguments[1] || { }));
-};
-
-Effect.DropOut = function(element) {
-  element = $(element);
-  var oldStyle = {
-    top: element.getStyle('top'),
-    left: element.getStyle('left'),
-    opacity: element.getInlineOpacity() };
-  return new Effect.Parallel(
-    [ new Effect.Move(element, {x: 0, y: 100, sync: true }),
-      new Effect.Opacity(element, { sync: true, to: 0.0 }) ],
-    Object.extend(
-      { duration: 0.5,
-        beforeSetup: function(effect) {
-          effect.effects[0].element.makePositioned();
-        },
-        afterFinishInternal: function(effect) {
-          effect.effects[0].element.hide().undoPositioned().setStyle(oldStyle);
-        }
-      }, arguments[1] || { }));
-};
-
-Effect.Shake = function(element) {
-  element = $(element);
-  var options = Object.extend({
-    distance: 20,
-    duration: 0.5
-  }, arguments[1] || {});
-  var distance = parseFloat(options.distance);
-  var split = parseFloat(options.duration) / 10.0;
-  var oldStyle = {
-    top: element.getStyle('top'),
-    left: element.getStyle('left') };
-    return new Effect.Move(element,
-      { x:  distance, y: 0, duration: split, afterFinishInternal: function(effect) {
-    new Effect.Move(effect.element,
-      { x: -distance*2, y: 0, duration: split*2,  afterFinishInternal: function(effect) {
-    new Effect.Move(effect.element,
-      { x:  distance*2, y: 0, duration: split*2,  afterFinishInternal: function(effect) {
-    new Effect.Move(effect.element,
-      { x: -distance*2, y: 0, duration: split*2,  afterFinishInternal: function(effect) {
-    new Effect.Move(effect.element,
-      { x:  distance*2, y: 0, duration: split*2,  afterFinishInternal: function(effect) {
-    new Effect.Move(effect.element,
-      { x: -distance, y: 0, duration: split, afterFinishInternal: function(effect) {
-        effect.element.undoPositioned().setStyle(oldStyle);
-  }}); }}); }}); }}); }}); }});
-};
-
-Effect.SlideDown = function(element) {
-  element = $(element).cleanWhitespace();
-  // SlideDown need to have the content of the element wrapped in a container element with fixed height!
-  var oldInnerBottom = element.down().getStyle('bottom');
-  var elementDimensions = element.getDimensions();
-  return new Effect.Scale(element, 100, Object.extend({
-    scaleContent: false,
-    scaleX: false,
-    scaleFrom: window.opera ? 0 : 1,
-    scaleMode: {originalHeight: elementDimensions.height, originalWidth: elementDimensions.width},
-    restoreAfterFinish: true,
-    afterSetup: function(effect) {
-      effect.element.makePositioned();
-      effect.element.down().makePositioned();
-      if (window.opera) effect.element.setStyle({top: ''});
-      effect.element.makeClipping().setStyle({height: '0px'}).show();
-    },
-    afterUpdateInternal: function(effect) {
-      effect.element.down().setStyle({bottom:
-        (effect.dims[0] - effect.element.clientHeight) + 'px' });
-    },
-    afterFinishInternal: function(effect) {
-      effect.element.undoClipping().undoPositioned();
-      effect.element.down().undoPositioned().setStyle({bottom: oldInnerBottom}); }
-    }, arguments[1] || { })
-  );
-};
-
-Effect.SlideUp = function(element) {
-  element = $(element).cleanWhitespace();
-  var oldInnerBottom = element.down().getStyle('bottom');
-  var elementDimensions = element.getDimensions();
-  return new Effect.Scale(element, window.opera ? 0 : 1,
-   Object.extend({ scaleContent: false,
-    scaleX: false,
-    scaleMode: 'box',
-    scaleFrom: 100,
-    scaleMode: {originalHeight: elementDimensions.height, originalWidth: elementDimensions.width},
-    restoreAfterFinish: true,
-    afterSetup: function(effect) {
-      effect.element.makePositioned();
-      effect.element.down().makePositioned();
-      if (window.opera) effect.element.setStyle({top: ''});
-      effect.element.makeClipping().show();
-    },
-    afterUpdateInternal: function(effect) {
-      effect.element.down().setStyle({bottom:
-        (effect.dims[0] - effect.element.clientHeight) + 'px' });
-    },
-    afterFinishInternal: function(effect) {
-      effect.element.hide().undoClipping().undoPositioned();
-      effect.element.down().undoPositioned().setStyle({bottom: oldInnerBottom});
-    }
-   }, arguments[1] || { })
-  );
-};
-
-// Bug in opera makes the TD containing this element expand for a instance after finish
-Effect.Squish = function(element) {
-  return new Effect.Scale(element, window.opera ? 1 : 0, {
-    restoreAfterFinish: true,
-    beforeSetup: function(effect) {
-      effect.element.makeClipping();
-    },
-    afterFinishInternal: function(effect) {
-      effect.element.hide().undoClipping();
-    }
-  });
-};
-
-Effect.Grow = function(element) {
-  element = $(element);
-  var options = Object.extend({
-    direction: 'center',
-    moveTransition: Effect.Transitions.sinoidal,
-    scaleTransition: Effect.Transitions.sinoidal,
-    opacityTransition: Effect.Transitions.full
-  }, arguments[1] || { });
-  var oldStyle = {
-    top: element.style.top,
-    left: element.style.left,
-    height: element.style.height,
-    width: element.style.width,
-    opacity: element.getInlineOpacity() };
-
-  var dims = element.getDimensions();
-  var initialMoveX, initialMoveY;
-  var moveX, moveY;
-
-  switch (options.direction) {
-    case 'top-left':
-      initialMoveX = initialMoveY = moveX = moveY = 0;
-      break;
-    case 'top-right':
-      initialMoveX = dims.width;
-      initialMoveY = moveY = 0;
-      moveX = -dims.width;
-      break;
-    case 'bottom-left':
-      initialMoveX = moveX = 0;
-      initialMoveY = dims.height;
-      moveY = -dims.height;
-      break;
-    case 'bottom-right':
-      initialMoveX = dims.width;
-      initialMoveY = dims.height;
-      moveX = -dims.width;
-      moveY = -dims.height;
-      break;
-    case 'center':
-      initialMoveX = dims.width / 2;
-      initialMoveY = dims.height / 2;
-      moveX = -dims.width / 2;
-      moveY = -dims.height / 2;
-      break;
-  }
-
-  return new Effect.Move(element, {
-    x: initialMoveX,
-    y: initialMoveY,
-    duration: 0.01,
-    beforeSetup: function(effect) {
-      effect.element.hide().makeClipping().makePositioned();
-    },
-    afterFinishInternal: function(effect) {
-      new Effect.Parallel(
-        [ new Effect.Opacity(effect.element, { sync: true, to: 1.0, from: 0.0, transition: options.opacityTransition }),
-          new Effect.Move(effect.element, { x: moveX, y: moveY, sync: true, transition: options.moveTransition }),
-          new Effect.Scale(effect.element, 100, {
-            scaleMode: { originalHeight: dims.height, originalWidth: dims.width },
-            sync: true, scaleFrom: window.opera ? 1 : 0, transition: options.scaleTransition, restoreAfterFinish: true})
-        ], Object.extend({
-             beforeSetup: function(effect) {
-               effect.effects[0].element.setStyle({height: '0px'}).show();
-             },
-             afterFinishInternal: function(effect) {
-               effect.effects[0].element.undoClipping().undoPositioned().setStyle(oldStyle);
-             }
-           }, options)
-      );
-    }
-  });
-};
-
-Effect.Shrink = function(element) {
-  element = $(element);
-  var options = Object.extend({
-    direction: 'center',
-    moveTransition: Effect.Transitions.sinoidal,
-    scaleTransition: Effect.Transitions.sinoidal,
-    opacityTransition: Effect.Transitions.none
-  }, arguments[1] || { });
-  var oldStyle = {
-    top: element.style.top,
-    left: element.style.left,
-    height: element.style.height,
-    width: element.style.width,
-    opacity: element.getInlineOpacity() };
-
-  var dims = element.getDimensions();
-  var moveX, moveY;
-
-  switch (options.direction) {
-    case 'top-left':
-      moveX = moveY = 0;
-      break;
-    case 'top-right':
-      moveX = dims.width;
-      moveY = 0;
-      break;
-    case 'bottom-left':
-      moveX = 0;
-      moveY = dims.height;
-      break;
-    case 'bottom-right':
-      moveX = dims.width;
-      moveY = dims.height;
-      break;
-    case 'center':
-      moveX = dims.width / 2;
-      moveY = dims.height / 2;
-      break;
-  }
-
-  return new Effect.Parallel(
-    [ new Effect.Opacity(element, { sync: true, to: 0.0, from: 1.0, transition: options.opacityTransition }),
-      new Effect.Scale(element, window.opera ? 1 : 0, { sync: true, transition: options.scaleTransition, restoreAfterFinish: true}),
-      new Effect.Move(element, { x: moveX, y: moveY, sync: true, transition: options.moveTransition })
-    ], Object.extend({
-         beforeStartInternal: function(effect) {
-           effect.effects[0].element.makePositioned().makeClipping();
-         },
-         afterFinishInternal: function(effect) {
-           effect.effects[0].element.hide().undoClipping().undoPositioned().setStyle(oldStyle); }
-       }, options)
-  );
-};
-
-Effect.Pulsate = function(element) {
-  element = $(element);
-  var options    = arguments[1] || { },
-    oldOpacity = element.getInlineOpacity(),
-    transition = options.transition || Effect.Transitions.linear,
-    reverser   = function(pos){
-      return 1 - transition((-Math.cos((pos*(options.pulses||5)*2)*Math.PI)/2) + .5);
-    };
-
-  return new Effect.Opacity(element,
-    Object.extend(Object.extend({  duration: 2.0, from: 0,
-      afterFinishInternal: function(effect) { effect.element.setStyle({opacity: oldOpacity}); }
-    }, options), {transition: reverser}));
-};
-
-Effect.Fold = function(element) {
-  element = $(element);
-  var oldStyle = {
-    top: element.style.top,
-    left: element.style.left,
-    width: element.style.width,
-    height: element.style.height };
-  element.makeClipping();
-  return new Effect.Scale(element, 5, Object.extend({
-    scaleContent: false,
-    scaleX: false,
-    afterFinishInternal: function(effect) {
-    new Effect.Scale(element, 1, {
-      scaleContent: false,
-      scaleY: false,
-      afterFinishInternal: function(effect) {
-        effect.element.hide().undoClipping().setStyle(oldStyle);
-      } });
-  }}, arguments[1] || { }));
-};
-
-Effect.Morph = Class.create(Effect.Base, {
-  initialize: function(element) {
-    this.element = $(element);
-    if (!this.element) throw(Effect._elementDoesNotExistError);
-    var options = Object.extend({
-      style: { }
-    }, arguments[1] || { });
-
-    if (!Object.isString(options.style)) this.style = $H(options.style);
-    else {
-      if (options.style.include(':'))
-        this.style = options.style.parseStyle();
-      else {
-        this.element.addClassName(options.style);
-        this.style = $H(this.element.getStyles());
-        this.element.removeClassName(options.style);
-        var css = this.element.getStyles();
-        this.style = this.style.reject(function(style) {
-          return style.value == css[style.key];
-        });
-        options.afterFinishInternal = function(effect) {
-          effect.element.addClassName(effect.options.style);
-          effect.transforms.each(function(transform) {
-            effect.element.style[transform.style] = '';
-          });
-        };
-      }
-    }
-    this.start(options);
-  },
-
-  setup: function(){
-    function parseColor(color){
-      if (!color || ['rgba(0, 0, 0, 0)','transparent'].include(color)) color = '#ffffff';
-      color = color.parseColor();
-      return $R(0,2).map(function(i){
-        return parseInt( color.slice(i*2+1,i*2+3), 16 );
-      });
-    }
-    this.transforms = this.style.map(function(pair){
-      var property = pair[0], value = pair[1], unit = null;
-
-      if (value.parseColor('#zzzzzz') != '#zzzzzz') {
-        value = value.parseColor();
-        unit  = 'color';
-      } else if (property == 'opacity') {
-        value = parseFloat(value);
-        if (Prototype.Browser.IE && (!this.element.currentStyle.hasLayout))
-          this.element.setStyle({zoom: 1});
-      } else if (Element.CSS_LENGTH.test(value)) {
-          var components = value.match(/^([\+\-]?[0-9\.]+)(.*)$/);
-          value = parseFloat(components[1]);
-          unit = (components.length == 3) ? components[2] : null;
-      }
-
-      var originalValue = this.element.getStyle(property);
-      return {
-        style: property.camelize(),
-        originalValue: unit=='color' ? parseColor(originalValue) : parseFloat(originalValue || 0),
-        targetValue: unit=='color' ? parseColor(value) : value,
-        unit: unit
-      };
-    }.bind(this)).reject(function(transform){
-      return (
-        (transform.originalValue == transform.targetValue) ||
-        (
-          transform.unit != 'color' &&
-          (isNaN(transform.originalValue) || isNaN(transform.targetValue))
-        )
-      );
-    });
-  },
-  update: function(position) {
-    var style = { }, transform, i = this.transforms.length;
-    while(i--)
-      style[(transform = this.transforms[i]).style] =
-        transform.unit=='color' ? '#'+
-          (Math.round(transform.originalValue[0]+
-            (transform.targetValue[0]-transform.originalValue[0])*position)).toColorPart() +
-          (Math.round(transform.originalValue[1]+
-            (transform.targetValue[1]-transform.originalValue[1])*position)).toColorPart() +
-          (Math.round(transform.originalValue[2]+
-            (transform.targetValue[2]-transform.originalValue[2])*position)).toColorPart() :
-        (transform.originalValue +
-          (transform.targetValue - transform.originalValue) * position).toFixed(3) +
-            (transform.unit === null ? '' : transform.unit);
-    this.element.setStyle(style, true);
-  }
-});
-
-Effect.Transform = Class.create({
-  initialize: function(tracks){
-    this.tracks  = [];
-    this.options = arguments[1] || { };
-    this.addTracks(tracks);
-  },
-  addTracks: function(tracks){
-    tracks.each(function(track){
-      track = $H(track);
-      var data = track.values().first();
-      this.tracks.push($H({
-        ids:     track.keys().first(),
-        effect:  Effect.Morph,
-        options: { style: data }
-      }));
-    }.bind(this));
-    return this;
-  },
-  play: function(){
-    return new Effect.Parallel(
-      this.tracks.map(function(track){
-        var ids = track.get('ids'), effect = track.get('effect'), options = track.get('options');
-        var elements = [$(ids) || $$(ids)].flatten();
-        return elements.map(function(e){ return new effect(e, Object.extend({ sync:true }, options)) });
-      }).flatten(),
-      this.options
-    );
-  }
-});
-
-Element.CSS_PROPERTIES = $w(
-  'backgroundColor backgroundPosition borderBottomColor borderBottomStyle ' +
-  'borderBottomWidth borderLeftColor borderLeftStyle borderLeftWidth ' +
-  'borderRightColor borderRightStyle borderRightWidth borderSpacing ' +
-  'borderTopColor borderTopStyle borderTopWidth bottom clip color ' +
-  'fontSize fontWeight height left letterSpacing lineHeight ' +
-  'marginBottom marginLeft marginRight marginTop markerOffset maxHeight '+
-  'maxWidth minHeight minWidth opacity outlineColor outlineOffset ' +
-  'outlineWidth paddingBottom paddingLeft paddingRight paddingTop ' +
-  'right textIndent top width wordSpacing zIndex');
-
-Element.CSS_LENGTH = /^(([\+\-]?[0-9\.]+)(em|ex|px|in|cm|mm|pt|pc|\%))|0$/;
-
-String.__parseStyleElement = document.createElement('div');
-String.prototype.parseStyle = function(){
-  var style, styleRules = $H();
-  if (Prototype.Browser.WebKit)
-    style = new Element('div',{style:this}).style;
-  else {
-    String.__parseStyleElement.innerHTML = '<div style="' + this + '"></div>';
-    style = String.__parseStyleElement.childNodes[0].style;
-  }
-
-  Element.CSS_PROPERTIES.each(function(property){
-    if (style[property]) styleRules.set(property, style[property]);
-  });
-
-  if (Prototype.Browser.IE && this.include('opacity'))
-    styleRules.set('opacity', this.match(/opacity:\s*((?:0|1)?(?:\.\d*)?)/)[1]);
-
-  return styleRules;
-};
-
-if (document.defaultView && document.defaultView.getComputedStyle) {
-  Element.getStyles = function(element) {
-    var css = document.defaultView.getComputedStyle($(element), null);
-    return Element.CSS_PROPERTIES.inject({ }, function(styles, property) {
-      styles[property] = css[property];
-      return styles;
-    });
-  };
-} else {
-  Element.getStyles = function(element) {
-    element = $(element);
-    var css = element.currentStyle, styles;
-    styles = Element.CSS_PROPERTIES.inject({ }, function(results, property) {
-      results[property] = css[property];
-      return results;
-    });
-    if (!styles.opacity) styles.opacity = element.getOpacity();
-    return styles;
-  };
-}
-
-Effect.Methods = {
-  morph: function(element, style) {
-    element = $(element);
-    new Effect.Morph(element, Object.extend({ style: style }, arguments[2] || { }));
-    return element;
-  },
-  visualEffect: function(element, effect, options) {
-    element = $(element);
-    var s = effect.dasherize().camelize(), klass = s.charAt(0).toUpperCase() + s.substring(1);
-    new Effect[klass](element, options);
-    return element;
-  },
-  highlight: function(element, options) {
-    element = $(element);
-    new Effect.Highlight(element, options);
-    return element;
-  }
-};
-
-$w('fade appear grow shrink fold blindUp blindDown slideUp slideDown '+
-  'pulsate shake puff squish switchOff dropOut').each(
-  function(effect) {
-    Effect.Methods[effect] = function(element, options){
-      element = $(element);
-      Effect[effect.charAt(0).toUpperCase() + effect.substring(1)](element, options);
-      return element;
-    };
-  }
-);
-
-$w('getInlineOpacity forceRerendering setContentZoom collectTextNodes collectTextNodesIgnoreClass getStyles').each(
-  function(f) { Effect.Methods[f] = Element[f]; }
-);
-
-Element.addMethods(Effect.Methods);
\ No newline at end of file
--- a/web/wp-includes/js/scriptaculous/scriptaculous.js	Wed Dec 19 12:35:13 2012 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,68 +0,0 @@
-// script.aculo.us scriptaculous.js v1.8.3, Thu Oct 08 11:23:33 +0200 2009
-
-// Copyright (c) 2005-2009 Thomas Fuchs (http://script.aculo.us, http://mir.aculo.us)
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-//
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-// For details, see the script.aculo.us web site: http://script.aculo.us/
-
-var Scriptaculous = {
-  Version: '1.8.3',
-  require: function(libraryName) {
-    try{
-      // inserting via DOM fails in Safari 2.0, so brute force approach
-      document.write('<script type="text/javascript" src="'+libraryName+'"><\/script>');
-    } catch(e) {
-      // for xhtml+xml served content, fall back to DOM methods
-      var script = document.createElement('script');
-      script.type = 'text/javascript';
-      script.src = libraryName;
-      document.getElementsByTagName('head')[0].appendChild(script);
-    }
-  },
-  REQUIRED_PROTOTYPE: '1.6.0.3',
-  load: function() {
-    function convertVersionString(versionString) {
-      var v = versionString.replace(/_.*|\./g, '');
-      v = parseInt(v + '0'.times(4-v.length));
-      return versionString.indexOf('_') > -1 ? v-1 : v;
-    }
-
-    if((typeof Prototype=='undefined') ||
-       (typeof Element == 'undefined') ||
-       (typeof Element.Methods=='undefined') ||
-       (convertVersionString(Prototype.Version) <
-        convertVersionString(Scriptaculous.REQUIRED_PROTOTYPE)))
-       throw("script.aculo.us requires the Prototype JavaScript framework >= " +
-        Scriptaculous.REQUIRED_PROTOTYPE);
-
-    var js = /scriptaculous\.js(\?.*)?$/;
-    $$('head script[src]').findAll(function(s) {
-      return s.src.match(js);
-    }).each(function(s) {
-      var path = s.src.replace(js, ''),
-      includes = s.src.match(/\?.*load=([a-z,]*)/);
-      (includes ? includes[1] : 'builder,effects,dragdrop,controls,slider,sound').split(',').each(
-       function(include) { Scriptaculous.require(path+include+'.js') });
-    });
-  }
-};
-
-Scriptaculous.load();
\ No newline at end of file
--- a/web/wp-includes/js/scriptaculous/slider.js	Wed Dec 19 12:35:13 2012 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,275 +0,0 @@
-// script.aculo.us slider.js v1.8.3, Thu Oct 08 11:23:33 +0200 2009
-
-// Copyright (c) 2005-2009 Marty Haught, Thomas Fuchs
-//
-// script.aculo.us is freely distributable under the terms of an MIT-style license.
-// For details, see the script.aculo.us web site: http://script.aculo.us/
-
-if (!Control) var Control = { };
-
-// options:
-//  axis: 'vertical', or 'horizontal' (default)
-//
-// callbacks:
-//  onChange(value)
-//  onSlide(value)
-Control.Slider = Class.create({
-  initialize: function(handle, track, options) {
-    var slider = this;
-
-    if (Object.isArray(handle)) {
-      this.handles = handle.collect( function(e) { return $(e) });
-    } else {
-      this.handles = [$(handle)];
-    }
-
-    this.track   = $(track);
-    this.options = options || { };
-
-    this.axis      = this.options.axis || 'horizontal';
-    this.increment = this.options.increment || 1;
-    this.step      = parseInt(this.options.step || '1');
-    this.range     = this.options.range || $R(0,1);
-
-    this.value     = 0; // assure backwards compat
-    this.values    = this.handles.map( function() { return 0 });
-    this.spans     = this.options.spans ? this.options.spans.map(function(s){ return $(s) }) : false;
-    this.options.startSpan = $(this.options.startSpan || null);
-    this.options.endSpan   = $(this.options.endSpan || null);
-
-    this.restricted = this.options.restricted || false;
-
-    this.maximum   = this.options.maximum || this.range.end;
-    this.minimum   = this.options.minimum || this.range.start;
-
-    // Will be used to align the handle onto the track, if necessary
-    this.alignX = parseInt(this.options.alignX || '0');
-    this.alignY = parseInt(this.options.alignY || '0');
-
-    this.trackLength = this.maximumOffset() - this.minimumOffset();
-
-    this.handleLength = this.isVertical() ?
-      (this.handles[0].offsetHeight != 0 ?
-        this.handles[0].offsetHeight : this.handles[0].style.height.replace(/px$/,"")) :
-      (this.handles[0].offsetWidth != 0 ? this.handles[0].offsetWidth :
-        this.handles[0].style.width.replace(/px$/,""));
-
-    this.active   = false;
-    this.dragging = false;
-    this.disabled = false;
-
-    if (this.options.disabled) this.setDisabled();
-
-    // Allowed values array
-    this.allowedValues = this.options.values ? this.options.values.sortBy(Prototype.K) : false;
-    if (this.allowedValues) {
-      this.minimum = this.allowedValues.min();
-      this.maximum = this.allowedValues.max();
-    }
-
-    this.eventMouseDown = this.startDrag.bindAsEventListener(this);
-    this.eventMouseUp   = this.endDrag.bindAsEventListener(this);
-    this.eventMouseMove = this.update.bindAsEventListener(this);
-
-    // Initialize handles in reverse (make sure first handle is active)
-    this.handles.each( function(h,i) {
-      i = slider.handles.length-1-i;
-      slider.setValue(parseFloat(
-        (Object.isArray(slider.options.sliderValue) ?
-          slider.options.sliderValue[i] : slider.options.sliderValue) ||
-         slider.range.start), i);
-      h.makePositioned().observe("mousedown", slider.eventMouseDown);
-    });
-
-    this.track.observe("mousedown", this.eventMouseDown);
-    document.observe("mouseup", this.eventMouseUp);
-    document.observe("mousemove", this.eventMouseMove);
-
-    this.initialized = true;
-  },
-  dispose: function() {
-    var slider = this;
-    Event.stopObserving(this.track, "mousedown", this.eventMouseDown);
-    Event.stopObserving(document, "mouseup", this.eventMouseUp);
-    Event.stopObserving(document, "mousemove", this.eventMouseMove);
-    this.handles.each( function(h) {
-      Event.stopObserving(h, "mousedown", slider.eventMouseDown);
-    });
-  },
-  setDisabled: function(){
-    this.disabled = true;
-  },
-  setEnabled: function(){
-    this.disabled = false;
-  },
-  getNearestValue: function(value){
-    if (this.allowedValues){
-      if (value >= this.allowedValues.max()) return(this.allowedValues.max());
-      if (value <= this.allowedValues.min()) return(this.allowedValues.min());
-
-      var offset = Math.abs(this.allowedValues[0] - value);
-      var newValue = this.allowedValues[0];
-      this.allowedValues.each( function(v) {
-        var currentOffset = Math.abs(v - value);
-        if (currentOffset <= offset){
-          newValue = v;
-          offset = currentOffset;
-        }
-      });
-      return newValue;
-    }
-    if (value > this.range.end) return this.range.end;
-    if (value < this.range.start) return this.range.start;
-    return value;
-  },
-  setValue: function(sliderValue, handleIdx){
-    if (!this.active) {
-      this.activeHandleIdx = handleIdx || 0;
-      this.activeHandle    = this.handles[this.activeHandleIdx];
-      this.updateStyles();
-    }
-    handleIdx = handleIdx || this.activeHandleIdx || 0;
-    if (this.initialized && this.restricted) {
-      if ((handleIdx>0) && (sliderValue<this.values[handleIdx-1]))
-        sliderValue = this.values[handleIdx-1];
-      if ((handleIdx < (this.handles.length-1)) && (sliderValue>this.values[handleIdx+1]))
-        sliderValue = this.values[handleIdx+1];
-    }
-    sliderValue = this.getNearestValue(sliderValue);
-    this.values[handleIdx] = sliderValue;
-    this.value = this.values[0]; // assure backwards compat
-
-    this.handles[handleIdx].style[this.isVertical() ? 'top' : 'left'] =
-      this.translateToPx(sliderValue);
-
-    this.drawSpans();
-    if (!this.dragging || !this.event) this.updateFinished();
-  },
-  setValueBy: function(delta, handleIdx) {
-    this.setValue(this.values[handleIdx || this.activeHandleIdx || 0] + delta,
-      handleIdx || this.activeHandleIdx || 0);
-  },
-  translateToPx: function(value) {
-    return Math.round(
-      ((this.trackLength-this.handleLength)/(this.range.end-this.range.start)) *
-      (value - this.range.start)) + "px";
-  },
-  translateToValue: function(offset) {
-    return ((offset/(this.trackLength-this.handleLength) *
-      (this.range.end-this.range.start)) + this.range.start);
-  },
-  getRange: function(range) {
-    var v = this.values.sortBy(Prototype.K);
-    range = range || 0;
-    return $R(v[range],v[range+1]);
-  },
-  minimumOffset: function(){
-    return(this.isVertical() ? this.alignY : this.alignX);
-  },
-  maximumOffset: function(){
-    return(this.isVertical() ?
-      (this.track.offsetHeight != 0 ? this.track.offsetHeight :
-        this.track.style.height.replace(/px$/,"")) - this.alignY :
-      (this.track.offsetWidth != 0 ? this.track.offsetWidth :
-        this.track.style.width.replace(/px$/,"")) - this.alignX);
-  },
-  isVertical:  function(){
-    return (this.axis == 'vertical');
-  },
-  drawSpans: function() {
-    var slider = this;
-    if (this.spans)
-      $R(0, this.spans.length-1).each(function(r) { slider.setSpan(slider.spans[r], slider.getRange(r)) });
-    if (this.options.startSpan)
-      this.setSpan(this.options.startSpan,
-        $R(0, this.values.length>1 ? this.getRange(0).min() : this.value ));
-    if (this.options.endSpan)
-      this.setSpan(this.options.endSpan,
-        $R(this.values.length>1 ? this.getRange(this.spans.length-1).max() : this.value, this.maximum));
-  },
-  setSpan: function(span, range) {
-    if (this.isVertical()) {
-      span.style.top = this.translateToPx(range.start);
-      span.style.height = this.translateToPx(range.end - range.start + this.range.start);
-    } else {
-      span.style.left = this.translateToPx(range.start);
-      span.style.width = this.translateToPx(range.end - range.start + this.range.start);
-    }
-  },
-  updateStyles: function() {
-    this.handles.each( function(h){ Element.removeClassName(h, 'selected') });
-    Element.addClassName(this.activeHandle, 'selected');
-  },
-  startDrag: function(event) {
-    if (Event.isLeftClick(event)) {
-      if (!this.disabled){
-        this.active = true;
-
-        var handle = Event.element(event);
-        var pointer  = [Event.pointerX(event), Event.pointerY(event)];
-        var track = handle;
-        if (track==this.track) {
-          var offsets  = this.track.cumulativeOffset();
-          this.event = event;
-          this.setValue(this.translateToValue(
-           (this.isVertical() ? pointer[1]-offsets[1] : pointer[0]-offsets[0])-(this.handleLength/2)
-          ));
-          var offsets  = this.activeHandle.cumulativeOffset();
-          this.offsetX = (pointer[0] - offsets[0]);
-          this.offsetY = (pointer[1] - offsets[1]);
-        } else {
-          // find the handle (prevents issues with Safari)
-          while((this.handles.indexOf(handle) == -1) && handle.parentNode)
-            handle = handle.parentNode;
-
-          if (this.handles.indexOf(handle)!=-1) {
-            this.activeHandle    = handle;
-            this.activeHandleIdx = this.handles.indexOf(this.activeHandle);
-            this.updateStyles();
-
-            var offsets  = this.activeHandle.cumulativeOffset();
-            this.offsetX = (pointer[0] - offsets[0]);
-            this.offsetY = (pointer[1] - offsets[1]);
-          }
-        }
-      }
-      Event.stop(event);
-    }
-  },
-  update: function(event) {
-   if (this.active) {
-      if (!this.dragging) this.dragging = true;
-      this.draw(event);
-      if (Prototype.Browser.WebKit) window.scrollBy(0,0);
-      Event.stop(event);
-   }
-  },
-  draw: function(event) {
-    var pointer = [Event.pointerX(event), Event.pointerY(event)];
-    var offsets = this.track.cumulativeOffset();
-    pointer[0] -= this.offsetX + offsets[0];
-    pointer[1] -= this.offsetY + offsets[1];
-    this.event = event;
-    this.setValue(this.translateToValue( this.isVertical() ? pointer[1] : pointer[0] ));
-    if (this.initialized && this.options.onSlide)
-      this.options.onSlide(this.values.length>1 ? this.values : this.value, this);
-  },
-  endDrag: function(event) {
-    if (this.active && this.dragging) {
-      this.finishDrag(event, true);
-      Event.stop(event);
-    }
-    this.active = false;
-    this.dragging = false;
-  },
-  finishDrag: function(event, success) {
-    this.active = false;
-    this.dragging = false;
-    this.updateFinished();
-  },
-  updateFinished: function() {
-    if (this.initialized && this.options.onChange)
-      this.options.onChange(this.values.length>1 ? this.values : this.value, this);
-    this.event = null;
-  }
-});
\ No newline at end of file
--- a/web/wp-includes/js/scriptaculous/sound.js	Wed Dec 19 12:35:13 2012 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,59 +0,0 @@
-// script.aculo.us sound.js v1.8.3, Thu Oct 08 11:23:33 +0200 2009
-
-// Copyright (c) 2005-2009 Thomas Fuchs (http://script.aculo.us, http://mir.aculo.us)
-//
-// Based on code created by Jules Gravinese (http://www.webveteran.com/)
-//
-// script.aculo.us is freely distributable under the terms of an MIT-style license.
-// For details, see the script.aculo.us web site: http://script.aculo.us/
-
-Sound = {
-  tracks: {},
-  _enabled: true,
-  template:
-    new Template('<embed style="height:0" id="sound_#{track}_#{id}" src="#{url}" loop="false" autostart="true" hidden="true"/>'),
-  enable: function(){
-    Sound._enabled = true;
-  },
-  disable: function(){
-    Sound._enabled = false;
-  },
-  play: function(url){
-    if(!Sound._enabled) return;
-    var options = Object.extend({
-      track: 'global', url: url, replace: false
-    }, arguments[1] || {});
-
-    if(options.replace && this.tracks[options.track]) {
-      $R(0, this.tracks[options.track].id).each(function(id){
-        var sound = $('sound_'+options.track+'_'+id);
-        sound.Stop && sound.Stop();
-        sound.remove();
-      });
-      this.tracks[options.track] = null;
-    }
-
-    if(!this.tracks[options.track])
-      this.tracks[options.track] = { id: 0 };
-    else
-      this.tracks[options.track].id++;
-
-    options.id = this.tracks[options.track].id;
-    $$('body')[0].insert(
-      Prototype.Browser.IE ? new Element('bgsound',{
-        id: 'sound_'+options.track+'_'+options.id,
-        src: options.url, loop: 1, autostart: true
-      }) : Sound.template.evaluate(options));
-  }
-};
-
-if(Prototype.Browser.Gecko && navigator.userAgent.indexOf("Win") > 0){
-  if(navigator.plugins && $A(navigator.plugins).detect(function(p){ return p.name.indexOf('QuickTime') != -1 }))
-    Sound.template = new Template('<object id="sound_#{track}_#{id}" width="0" height="0" type="audio/mpeg" data="#{url}"/>');
-  else if(navigator.plugins && $A(navigator.plugins).detect(function(p){ return p.name.indexOf('Windows Media') != -1 }))
-    Sound.template = new Template('<object id="sound_#{track}_#{id}" type="application/x-mplayer2" data="#{url}"></object>');
-  else if(navigator.plugins && $A(navigator.plugins).detect(function(p){ return p.name.indexOf('RealPlayer') != -1 }))
-    Sound.template = new Template('<embed type="audio/x-pn-realaudio-plugin" style="height:0" id="sound_#{track}_#{id}" src="#{url}" loop="false" autostart="true" hidden="true"/>');
-  else
-    Sound.play = function(){};
-} 
\ No newline at end of file
--- a/web/wp-includes/js/scriptaculous/unittest.js	Wed Dec 19 12:35:13 2012 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,568 +0,0 @@
-// script.aculo.us unittest.js v1.8.3, Thu Oct 08 11:23:33 +0200 2009
-
-// Copyright (c) 2005-2009 Thomas Fuchs (http://script.aculo.us, http://mir.aculo.us)
-//           (c) 2005-2009 Jon Tirsen (http://www.tirsen.com)
-//           (c) 2005-2009 Michael Schuerig (http://www.schuerig.de/michael/)
-//
-// script.aculo.us is freely distributable under the terms of an MIT-style license.
-// For details, see the script.aculo.us web site: http://script.aculo.us/
-
-// experimental, Firefox-only
-Event.simulateMouse = function(element, eventName) {
-  var options = Object.extend({
-    pointerX: 0,
-    pointerY: 0,
-    buttons:  0,
-    ctrlKey:  false,
-    altKey:   false,
-    shiftKey: false,
-    metaKey:  false
-  }, arguments[2] || {});
-  var oEvent = document.createEvent("MouseEvents");
-  oEvent.initMouseEvent(eventName, true, true, document.defaultView, 
-    options.buttons, options.pointerX, options.pointerY, options.pointerX, options.pointerY, 
-    options.ctrlKey, options.altKey, options.shiftKey, options.metaKey, 0, $(element));
-  
-  if(this.mark) Element.remove(this.mark);
-  this.mark = document.createElement('div');
-  this.mark.appendChild(document.createTextNode(" "));
-  document.body.appendChild(this.mark);
-  this.mark.style.position = 'absolute';
-  this.mark.style.top = options.pointerY + "px";
-  this.mark.style.left = options.pointerX + "px";
-  this.mark.style.width = "5px";
-  this.mark.style.height = "5px;";
-  this.mark.style.borderTop = "1px solid red;";
-  this.mark.style.borderLeft = "1px solid red;";
-  
-  if(this.step)
-    alert('['+new Date().getTime().toString()+'] '+eventName+'/'+Test.Unit.inspect(options));
-  
-  $(element).dispatchEvent(oEvent);
-};
-
-// Note: Due to a fix in Firefox 1.0.5/6 that probably fixed "too much", this doesn't work in 1.0.6 or DP2.
-// You need to downgrade to 1.0.4 for now to get this working
-// See https://bugzilla.mozilla.org/show_bug.cgi?id=289940 for the fix that fixed too much
-Event.simulateKey = function(element, eventName) {
-  var options = Object.extend({
-    ctrlKey: false,
-    altKey: false,
-    shiftKey: false,
-    metaKey: false,
-    keyCode: 0,
-    charCode: 0
-  }, arguments[2] || {});
-
-  var oEvent = document.createEvent("KeyEvents");
-  oEvent.initKeyEvent(eventName, true, true, window, 
-    options.ctrlKey, options.altKey, options.shiftKey, options.metaKey,
-    options.keyCode, options.charCode );
-  $(element).dispatchEvent(oEvent);
-};
-
-Event.simulateKeys = function(element, command) {
-  for(var i=0; i<command.length; i++) {
-    Event.simulateKey(element,'keypress',{charCode:command.charCodeAt(i)});
-  }
-};
-
-var Test = {};
-Test.Unit = {};
-
-// security exception workaround
-Test.Unit.inspect = Object.inspect;
-
-Test.Unit.Logger = Class.create();
-Test.Unit.Logger.prototype = {
-  initialize: function(log) {
-    this.log = $(log);
-    if (this.log) {
-      this._createLogTable();
-    }
-  },
-  start: function(testName) {
-    if (!this.log) return;
-    this.testName = testName;
-    this.lastLogLine = document.createElement('tr');
-    this.statusCell = document.createElement('td');
-    this.nameCell = document.createElement('td');
-    this.nameCell.className = "nameCell";
-    this.nameCell.appendChild(document.createTextNode(testName));
-    this.messageCell = document.createElement('td');
-    this.lastLogLine.appendChild(this.statusCell);
-    this.lastLogLine.appendChild(this.nameCell);
-    this.lastLogLine.appendChild(this.messageCell);
-    this.loglines.appendChild(this.lastLogLine);
-  },
-  finish: function(status, summary) {
-    if (!this.log) return;
-    this.lastLogLine.className = status;
-    this.statusCell.innerHTML = status;
-    this.messageCell.innerHTML = this._toHTML(summary);
-    this.addLinksToResults();
-  },
-  message: function(message) {
-    if (!this.log) return;
-    this.messageCell.innerHTML = this._toHTML(message);
-  },
-  summary: function(summary) {
-    if (!this.log) return;
-    this.logsummary.innerHTML = this._toHTML(summary);
-  },
-  _createLogTable: function() {
-    this.log.innerHTML =
-    '<div id="logsummary"></div>' +
-    '<table id="logtable">' +
-    '<thead><tr><th>Status</th><th>Test</th><th>Message</th></tr></thead>' +
-    '<tbody id="loglines"></tbody>' +
-    '</table>';
-    this.logsummary = $('logsummary');
-    this.loglines = $('loglines');
-  },
-  _toHTML: function(txt) {
-    return txt.escapeHTML().replace(/\n/g,"<br/>");
-  },
-  addLinksToResults: function(){ 
-    $$("tr.failed .nameCell").each( function(td){ // todo: limit to children of this.log
-      td.title = "Run only this test";
-      Event.observe(td, 'click', function(){ window.location.search = "?tests=" + td.innerHTML;});
-    });
-    $$("tr.passed .nameCell").each( function(td){ // todo: limit to children of this.log
-      td.title = "Run all tests";
-      Event.observe(td, 'click', function(){ window.location.search = "";});
-    });
-  }
-};
-
-Test.Unit.Runner = Class.create();
-Test.Unit.Runner.prototype = {
-  initialize: function(testcases) {
-    this.options = Object.extend({
-      testLog: 'testlog'
-    }, arguments[1] || {});
-    this.options.resultsURL = this.parseResultsURLQueryParameter();
-    this.options.tests      = this.parseTestsQueryParameter();
-    if (this.options.testLog) {
-      this.options.testLog = $(this.options.testLog) || null;
-    }
-    if(this.options.tests) {
-      this.tests = [];
-      for(var i = 0; i < this.options.tests.length; i++) {
-        if(/^test/.test(this.options.tests[i])) {
-          this.tests.push(new Test.Unit.Testcase(this.options.tests[i], testcases[this.options.tests[i]], testcases["setup"], testcases["teardown"]));
-        }
-      }
-    } else {
-      if (this.options.test) {
-        this.tests = [new Test.Unit.Testcase(this.options.test, testcases[this.options.test], testcases["setup"], testcases["teardown"])];
-      } else {
-        this.tests = [];
-        for(var testcase in testcases) {
-          if(/^test/.test(testcase)) {
-            this.tests.push(
-               new Test.Unit.Testcase(
-                 this.options.context ? ' -> ' + this.options.titles[testcase] : testcase, 
-                 testcases[testcase], testcases["setup"], testcases["teardown"]
-               ));
-          }
-        }
-      }
-    }
-    this.currentTest = 0;
-    this.logger = new Test.Unit.Logger(this.options.testLog);
-    setTimeout(this.runTests.bind(this), 1000);
-  },
-  parseResultsURLQueryParameter: function() {
-    return window.location.search.parseQuery()["resultsURL"];
-  },
-  parseTestsQueryParameter: function(){
-    if (window.location.search.parseQuery()["tests"]){
-        return window.location.search.parseQuery()["tests"].split(',');
-    };
-  },
-  // Returns:
-  //  "ERROR" if there was an error,
-  //  "FAILURE" if there was a failure, or
-  //  "SUCCESS" if there was neither
-  getResult: function() {
-    var hasFailure = false;
-    for(var i=0;i<this.tests.length;i++) {
-      if (this.tests[i].errors > 0) {
-        return "ERROR";
-      }
-      if (this.tests[i].failures > 0) {
-        hasFailure = true;
-      }
-    }
-    if (hasFailure) {
-      return "FAILURE";
-    } else {
-      return "SUCCESS";
-    }
-  },
-  postResults: function() {
-    if (this.options.resultsURL) {
-      new Ajax.Request(this.options.resultsURL, 
-        { method: 'get', parameters: 'result=' + this.getResult(), asynchronous: false });
-    }
-  },
-  runTests: function() {
-    var test = this.tests[this.currentTest];
-    if (!test) {
-      // finished!
-      this.postResults();
-      this.logger.summary(this.summary());
-      return;
-    }
-    if(!test.isWaiting) {
-      this.logger.start(test.name);
-    }
-    test.run();
-    if(test.isWaiting) {
-      this.logger.message("Waiting for " + test.timeToWait + "ms");
-      setTimeout(this.runTests.bind(this), test.timeToWait || 1000);
-    } else {
-      this.logger.finish(test.status(), test.summary());
-      this.currentTest++;
-      // tail recursive, hopefully the browser will skip the stackframe
-      this.runTests();
-    }
-  },
-  summary: function() {
-    var assertions = 0;
-    var failures = 0;
-    var errors = 0;
-    var messages = [];
-    for(var i=0;i<this.tests.length;i++) {
-      assertions +=   this.tests[i].assertions;
-      failures   +=   this.tests[i].failures;
-      errors     +=   this.tests[i].errors;
-    }
-    return (
-      (this.options.context ? this.options.context + ': ': '') + 
-      this.tests.length + " tests, " + 
-      assertions + " assertions, " + 
-      failures   + " failures, " +
-      errors     + " errors");
-  }
-};
-
-Test.Unit.Assertions = Class.create();
-Test.Unit.Assertions.prototype = {
-  initialize: function() {
-    this.assertions = 0;
-    this.failures   = 0;
-    this.errors     = 0;
-    this.messages   = [];
-  },
-  summary: function() {
-    return (
-      this.assertions + " assertions, " + 
-      this.failures   + " failures, " +
-      this.errors     + " errors" + "\n" +
-      this.messages.join("\n"));
-  },
-  pass: function() {
-    this.assertions++;
-  },
-  fail: function(message) {
-    this.failures++;
-    this.messages.push("Failure: " + message);
-  },
-  info: function(message) {
-    this.messages.push("Info: " + message);
-  },
-  error: function(error) {
-    this.errors++;
-    this.messages.push(error.name + ": "+ error.message + "(" + Test.Unit.inspect(error) +")");
-  },
-  status: function() {
-    if (this.failures > 0) return 'failed';
-    if (this.errors > 0) return 'error';
-    return 'passed';
-  },
-  assert: function(expression) {
-    var message = arguments[1] || 'assert: got "' + Test.Unit.inspect(expression) + '"';
-    try { expression ? this.pass() : 
-      this.fail(message); }
-    catch(e) { this.error(e); }
-  },
-  assertEqual: function(expected, actual) {
-    var message = arguments[2] || "assertEqual";
-    try { (expected == actual) ? this.pass() :
-      this.fail(message + ': expected "' + Test.Unit.inspect(expected) + 
-        '", actual "' + Test.Unit.inspect(actual) + '"'); }
-    catch(e) { this.error(e); }
-  },
-  assertInspect: function(expected, actual) {
-    var message = arguments[2] || "assertInspect";
-    try { (expected == actual.inspect()) ? this.pass() :
-      this.fail(message + ': expected "' + Test.Unit.inspect(expected) + 
-        '", actual "' + Test.Unit.inspect(actual) + '"'); }
-    catch(e) { this.error(e); }
-  },
-  assertEnumEqual: function(expected, actual) {
-    var message = arguments[2] || "assertEnumEqual";
-    try { $A(expected).length == $A(actual).length && 
-      expected.zip(actual).all(function(pair) { return pair[0] == pair[1] }) ?
-        this.pass() : this.fail(message + ': expected ' + Test.Unit.inspect(expected) + 
-          ', actual ' + Test.Unit.inspect(actual)); }
-    catch(e) { this.error(e); }
-  },
-  assertNotEqual: function(expected, actual) {
-    var message = arguments[2] || "assertNotEqual";
-    try { (expected != actual) ? this.pass() : 
-      this.fail(message + ': got "' + Test.Unit.inspect(actual) + '"'); }
-    catch(e) { this.error(e); }
-  },
-  assertIdentical: function(expected, actual) { 
-    var message = arguments[2] || "assertIdentical"; 
-    try { (expected === actual) ? this.pass() : 
-      this.fail(message + ': expected "' + Test.Unit.inspect(expected) +  
-        '", actual "' + Test.Unit.inspect(actual) + '"'); } 
-    catch(e) { this.error(e); } 
-  },
-  assertNotIdentical: function(expected, actual) { 
-    var message = arguments[2] || "assertNotIdentical"; 
-    try { !(expected === actual) ? this.pass() : 
-      this.fail(message + ': expected "' + Test.Unit.inspect(expected) +  
-        '", actual "' + Test.Unit.inspect(actual) + '"'); } 
-    catch(e) { this.error(e); } 
-  },
-  assertNull: function(obj) {
-    var message = arguments[1] || 'assertNull';
-    try { (obj==null) ? this.pass() : 
-      this.fail(message + ': got "' + Test.Unit.inspect(obj) + '"'); }
-    catch(e) { this.error(e); }
-  },
-  assertMatch: function(expected, actual) {
-    var message = arguments[2] || 'assertMatch';
-    var regex = new RegExp(expected);
-    try { (regex.exec(actual)) ? this.pass() :
-      this.fail(message + ' : regex: "' +  Test.Unit.inspect(expected) + ' did not match: ' + Test.Unit.inspect(actual) + '"'); }
-    catch(e) { this.error(e); }
-  },
-  assertHidden: function(element) {
-    var message = arguments[1] || 'assertHidden';
-    this.assertEqual("none", element.style.display, message);
-  },
-  assertNotNull: function(object) {
-    var message = arguments[1] || 'assertNotNull';
-    this.assert(object != null, message);
-  },
-  assertType: function(expected, actual) {
-    var message = arguments[2] || 'assertType';
-    try { 
-      (actual.constructor == expected) ? this.pass() : 
-      this.fail(message + ': expected "' + Test.Unit.inspect(expected) +  
-        '", actual "' + (actual.constructor) + '"'); }
-    catch(e) { this.error(e); }
-  },
-  assertNotOfType: function(expected, actual) {
-    var message = arguments[2] || 'assertNotOfType';
-    try { 
-      (actual.constructor != expected) ? this.pass() : 
-      this.fail(message + ': expected "' + Test.Unit.inspect(expected) +  
-        '", actual "' + (actual.constructor) + '"'); }
-    catch(e) { this.error(e); }
-  },
-  assertInstanceOf: function(expected, actual) {
-    var message = arguments[2] || 'assertInstanceOf';
-    try { 
-      (actual instanceof expected) ? this.pass() : 
-      this.fail(message + ": object was not an instance of the expected type"); }
-    catch(e) { this.error(e); } 
-  },
-  assertNotInstanceOf: function(expected, actual) {
-    var message = arguments[2] || 'assertNotInstanceOf';
-    try { 
-      !(actual instanceof expected) ? this.pass() : 
-      this.fail(message + ": object was an instance of the not expected type"); }
-    catch(e) { this.error(e); } 
-  },
-  assertRespondsTo: function(method, obj) {
-    var message = arguments[2] || 'assertRespondsTo';
-    try {
-      (obj[method] && typeof obj[method] == 'function') ? this.pass() : 
-      this.fail(message + ": object doesn't respond to [" + method + "]"); }
-    catch(e) { this.error(e); }
-  },
-  assertReturnsTrue: function(method, obj) {
-    var message = arguments[2] || 'assertReturnsTrue';
-    try {
-      var m = obj[method];
-      if(!m) m = obj['is'+method.charAt(0).toUpperCase()+method.slice(1)];
-      m() ? this.pass() : 
-      this.fail(message + ": method returned false"); }
-    catch(e) { this.error(e); }
-  },
-  assertReturnsFalse: function(method, obj) {
-    var message = arguments[2] || 'assertReturnsFalse';
-    try {
-      var m = obj[method];
-      if(!m) m = obj['is'+method.charAt(0).toUpperCase()+method.slice(1)];
-      !m() ? this.pass() : 
-      this.fail(message + ": method returned true"); }
-    catch(e) { this.error(e); }
-  },
-  assertRaise: function(exceptionName, method) {
-    var message = arguments[2] || 'assertRaise';
-    try { 
-      method();
-      this.fail(message + ": exception expected but none was raised"); }
-    catch(e) {
-      ((exceptionName == null) || (e.name==exceptionName)) ? this.pass() : this.error(e); 
-    }
-  },
-  assertElementsMatch: function() {
-    var expressions = $A(arguments), elements = $A(expressions.shift());
-    if (elements.length != expressions.length) {
-      this.fail('assertElementsMatch: size mismatch: ' + elements.length + ' elements, ' + expressions.length + ' expressions');
-      return false;
-    }
-    elements.zip(expressions).all(function(pair, index) {
-      var element = $(pair.first()), expression = pair.last();
-      if (element.match(expression)) return true;
-      this.fail('assertElementsMatch: (in index ' + index + ') expected ' + expression.inspect() + ' but got ' + element.inspect());
-    }.bind(this)) && this.pass();
-  },
-  assertElementMatches: function(element, expression) {
-    this.assertElementsMatch([element], expression);
-  },
-  benchmark: function(operation, iterations) {
-    var startAt = new Date();
-    (iterations || 1).times(operation);
-    var timeTaken = ((new Date())-startAt);
-    this.info((arguments[2] || 'Operation') + ' finished ' + 
-       iterations + ' iterations in ' + (timeTaken/1000)+'s' );
-    return timeTaken;
-  },
-  _isVisible: function(element) {
-    element = $(element);
-    if(!element.parentNode) return true;
-    this.assertNotNull(element);
-    if(element.style && Element.getStyle(element, 'display') == 'none')
-      return false;
-    
-    return this._isVisible(element.parentNode);
-  },
-  assertNotVisible: function(element) {
-    this.assert(!this._isVisible(element), Test.Unit.inspect(element) + " was not hidden and didn't have a hidden parent either. " + ("" || arguments[1]));
-  },
-  assertVisible: function(element) {
-    this.assert(this._isVisible(element), Test.Unit.inspect(element) + " was not visible. " + ("" || arguments[1]));
-  },
-  benchmark: function(operation, iterations) {
-    var startAt = new Date();
-    (iterations || 1).times(operation);
-    var timeTaken = ((new Date())-startAt);
-    this.info((arguments[2] || 'Operation') + ' finished ' + 
-       iterations + ' iterations in ' + (timeTaken/1000)+'s' );
-    return timeTaken;
-  }
-};
-
-Test.Unit.Testcase = Class.create();
-Object.extend(Object.extend(Test.Unit.Testcase.prototype, Test.Unit.Assertions.prototype), {
-  initialize: function(name, test, setup, teardown) {
-    Test.Unit.Assertions.prototype.initialize.bind(this)();
-    this.name           = name;
-    
-    if(typeof test == 'string') {
-      test = test.gsub(/(\.should[^\(]+\()/,'#{0}this,');
-      test = test.gsub(/(\.should[^\(]+)\(this,\)/,'#{1}(this)');
-      this.test = function() {
-        eval('with(this){'+test+'}');
-      }
-    } else {
-      this.test = test || function() {};
-    }
-    
-    this.setup          = setup || function() {};
-    this.teardown       = teardown || function() {};
-    this.isWaiting      = false;
-    this.timeToWait     = 1000;
-  },
-  wait: function(time, nextPart) {
-    this.isWaiting = true;
-    this.test = nextPart;
-    this.timeToWait = time;
-  },
-  run: function() {
-    try {
-      try {
-        if (!this.isWaiting) this.setup.bind(this)();
-        this.isWaiting = false;
-        this.test.bind(this)();
-      } finally {
-        if(!this.isWaiting) {
-          this.teardown.bind(this)();
-        }
-      }
-    }
-    catch(e) { this.error(e); }
-  }
-});
-
-// *EXPERIMENTAL* BDD-style testing to please non-technical folk
-// This draws many ideas from RSpec http://rspec.rubyforge.org/
-
-Test.setupBDDExtensionMethods = function(){
-  var METHODMAP = {
-    shouldEqual:     'assertEqual',
-    shouldNotEqual:  'assertNotEqual',
-    shouldEqualEnum: 'assertEnumEqual',
-    shouldBeA:       'assertType',
-    shouldNotBeA:    'assertNotOfType',
-    shouldBeAn:      'assertType',
-    shouldNotBeAn:   'assertNotOfType',
-    shouldBeNull:    'assertNull',
-    shouldNotBeNull: 'assertNotNull',
-    
-    shouldBe:        'assertReturnsTrue',
-    shouldNotBe:     'assertReturnsFalse',
-    shouldRespondTo: 'assertRespondsTo'
-  };
-  var makeAssertion = function(assertion, args, object) { 
-   	this[assertion].apply(this,(args || []).concat([object]));
-  };
-  
-  Test.BDDMethods = {};   
-  $H(METHODMAP).each(function(pair) { 
-    Test.BDDMethods[pair.key] = function() { 
-       var args = $A(arguments); 
-       var scope = args.shift(); 
-       makeAssertion.apply(scope, [pair.value, args, this]); }; 
-  });
-  
-  [Array.prototype, String.prototype, Number.prototype, Boolean.prototype].each(
-    function(p){ Object.extend(p, Test.BDDMethods) }
-  );
-};
-
-Test.context = function(name, spec, log){
-  Test.setupBDDExtensionMethods();
-  
-  var compiledSpec = {};
-  var titles = {};
-  for(specName in spec) {
-    switch(specName){
-      case "setup":
-      case "teardown":
-        compiledSpec[specName] = spec[specName];
-        break;
-      default:
-        var testName = 'test'+specName.gsub(/\s+/,'-').camelize();
-        var body = spec[specName].toString().split('\n').slice(1);
-        if(/^\{/.test(body[0])) body = body.slice(1);
-        body.pop();
-        body = body.map(function(statement){ 
-          return statement.strip()
-        });
-        compiledSpec[testName] = body.join('\n');
-        titles[testName] = specName;
-    }
-  }
-  new Test.Unit.Runner(compiledSpec, { titles: titles, testLog: log || 'testlog', context: name });
-};
\ No newline at end of file
--- a/web/wp-includes/js/scriptaculous/wp-scriptaculous.js	Wed Dec 19 12:35:13 2012 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,73 +0,0 @@
-// script.aculo.us scriptaculous.js v1.8.3, Thu Oct 08 11:23:33 +0200 2009
-
-// Copyright (c) 2005-2009 Thomas Fuchs (http://script.aculo.us, http://mir.aculo.us)
-//
-// Permission is hereby granted, free of charge, to any person obtaining
-// a copy of this software and associated documentation files (the
-// "Software"), to deal in the Software without restriction, including
-// without limitation the rights to use, copy, modify, merge, publish,
-// distribute, sublicense, and/or sell copies of the Software, and to
-// permit persons to whom the Software is furnished to do so, subject to
-// the following conditions:
-//
-// The above copyright notice and this permission notice shall be
-// included in all copies or substantial portions of the Software.
-//
-// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
-// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
-// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
-// NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
-// LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
-// OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
-// WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
-//
-// For details, see the script.aculo.us web site: http://script.aculo.us/
-
-var Scriptaculous = {
-  Version: '1.8.3',
-  require: function(libraryName) {
-    try{
-      // inserting via DOM fails in Safari 2.0, so brute force approach
-      document.write('<script type="text/javascript" src="'+libraryName+'"><\/script>');
-    } catch(e) {
-      // for xhtml+xml served content, fall back to DOM methods
-      var script = document.createElement('script');
-      script.type = 'text/javascript';
-      script.src = libraryName;
-      document.getElementsByTagName('head')[0].appendChild(script);
-    }
-  },
-  REQUIRED_PROTOTYPE: '1.6.0.3',
-  load: function() {
-    function convertVersionString(versionString) {
-      var v = versionString.replace(/_.*|\./g, '');
-      v = parseInt(v + '0'.times(4-v.length));
-      return versionString.indexOf('_') > -1 ? v-1 : v;
-    }
-
-    if((typeof Prototype=='undefined') ||
-       (typeof Element == 'undefined') ||
-       (typeof Element.Methods=='undefined') ||
-       (convertVersionString(Prototype.Version) <
-        convertVersionString(Scriptaculous.REQUIRED_PROTOTYPE)))
-       throw("script.aculo.us requires the Prototype JavaScript framework >= " +
-        Scriptaculous.REQUIRED_PROTOTYPE);
-
-    var js = /scriptaculous\.js(\?.*)?$/;
-    $$('head script[src]').findAll(function(s) {
-      return s.src.match(js);
-    }).each(function(s) {
-		var path = s.src.replace(js, ''),
-		includes = s.src.match(/\?.*load=([a-z,]*)/);
-
-		// Modified for WordPress to work with enqueue_script
-		if ( includes ) {
-			includes[1].split(',').each( function(include) {
-				Scriptaculous.require(path+include+'.js')
-			});
-		}
-    });
-  }
-};
-
-Scriptaculous.load();
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-includes/js/shortcode.js	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,342 @@
+// Utility functions for parsing and handling shortcodes in Javascript.
+
+// Ensure the global `wp` object exists.
+window.wp = window.wp || {};
+
+(function(){
+	wp.shortcode = {
+		// ### Find the next matching shortcode
+		//
+		// Given a shortcode `tag`, a block of `text`, and an optional starting
+		// `index`, returns the next matching shortcode or `undefined`.
+		//
+		// Shortcodes are formatted as an object that contains the match
+		// `content`, the matching `index`, and the parsed `shortcode` object.
+		next: function( tag, text, index ) {
+			var re = wp.shortcode.regexp( tag ),
+				match, result;
+
+			re.lastIndex = index || 0;
+			match = re.exec( text );
+
+			if ( ! match )
+				return;
+
+			// If we matched an escaped shortcode, try again.
+			if ( match[1] === '[' && match[7] === ']' )
+				return wp.shortcode.next( tag, text, re.lastIndex );
+
+			result = {
+				index:     match.index,
+				content:   match[0],
+				shortcode: wp.shortcode.fromMatch( match )
+			};
+
+			// If we matched a leading `[`, strip it from the match
+			// and increment the index accordingly.
+			if ( match[1] ) {
+				result.match = result.match.slice( 1 );
+				result.index++;
+			}
+
+			// If we matched a trailing `]`, strip it from the match.
+			if ( match[7] )
+				result.match = result.match.slice( 0, -1 );
+
+			return result;
+		},
+
+		// ### Replace matching shortcodes in a block of text
+		//
+		// Accepts a shortcode `tag`, content `text` to scan, and a `callback`
+		// to process the shortcode matches and return a replacement string.
+		// Returns the `text` with all shortcodes replaced.
+		//
+		// Shortcode matches are objects that contain the shortcode `tag`,
+		// a shortcode `attrs` object, the `content` between shortcode tags,
+		// and a boolean flag to indicate if the match was a `single` tag.
+		replace: function( tag, text, callback ) {
+			return text.replace( wp.shortcode.regexp( tag ), function( match, left, tag, attrs, slash, content, closing, right, offset ) {
+				// If both extra brackets exist, the shortcode has been
+				// properly escaped.
+				if ( left === '[' && right === ']' )
+					return match;
+
+				// Create the match object and pass it through the callback.
+				var result = callback( wp.shortcode.fromMatch( arguments ) );
+
+				// Make sure to return any of the extra brackets if they
+				// weren't used to escape the shortcode.
+				return result ? left + result + right : match;
+			});
+		},
+
+		// ### Generate a string from shortcode parameters
+		//
+		// Creates a `wp.shortcode` instance and returns a string.
+		//
+		// Accepts the same `options` as the `wp.shortcode()` constructor,
+		// containing a `tag` string, a string or object of `attrs`, a boolean
+		// indicating whether to format the shortcode using a `single` tag, and a
+		// `content` string.
+		string: function( options ) {
+			return new wp.shortcode( options ).string();
+		},
+
+		// ### Generate a RegExp to identify a shortcode
+		//
+		// The base regex is functionally equivalent to the one found in
+		// `get_shortcode_regex()` in `wp-includes/shortcodes.php`.
+		//
+		// Capture groups:
+		//
+		// 1. An extra `[` to allow for escaping shortcodes with double `[[]]`
+		// 2. The shortcode name
+		// 3. The shortcode argument list
+		// 4. The self closing `/`
+		// 5. The content of a shortcode when it wraps some content.
+		// 6. The closing tag.
+		// 7. An extra `]` to allow for escaping shortcodes with double `[[]]`
+		regexp: _.memoize( function( tag ) {
+			return new RegExp( '\\[(\\[?)(' + tag + ')(?![\\w-])([^\\]\\/]*(?:\\/(?!\\])[^\\]\\/]*)*?)(?:(\\/)\\]|\\](?:([^\\[]*(?:\\[(?!\\/\\2\\])[^\\[]*)*)(\\[\\/\\2\\]))?)(\\]?)', 'g' );
+		}),
+
+
+		// ### Parse shortcode attributes
+		//
+		// Shortcodes accept many types of attributes. These can chiefly be
+		// divided into named and numeric attributes:
+		//
+		// Named attributes are assigned on a key/value basis, while numeric
+		// attributes are treated as an array.
+		//
+		// Named attributes can be formatted as either `name="value"`,
+		// `name='value'`, or `name=value`. Numeric attributes can be formatted
+		// as `"value"` or just `value`.
+		attrs: _.memoize( function( text ) {
+			var named   = {},
+				numeric = [],
+				pattern, match;
+
+			// This regular expression is reused from `shortcode_parse_atts()`
+			// in `wp-includes/shortcodes.php`.
+			//
+			// Capture groups:
+			//
+			// 1. An attribute name, that corresponds to...
+			// 2. a value in double quotes.
+			// 3. An attribute name, that corresponds to...
+			// 4. a value in single quotes.
+			// 5. An attribute name, that corresponds to...
+			// 6. an unquoted value.
+			// 7. A numeric attribute in double quotes.
+			// 8. An unquoted numeric attribute.
+			pattern = /(\w+)\s*=\s*"([^"]*)"(?:\s|$)|(\w+)\s*=\s*\'([^\']*)\'(?:\s|$)|(\w+)\s*=\s*([^\s\'"]+)(?:\s|$)|"([^"]*)"(?:\s|$)|(\S+)(?:\s|$)/g;
+
+			// Map zero-width spaces to actual spaces.
+			text = text.replace( /[\u00a0\u200b]/g, ' ' );
+
+			// Match and normalize attributes.
+			while ( (match = pattern.exec( text )) ) {
+				if ( match[1] ) {
+					named[ match[1].toLowerCase() ] = match[2];
+				} else if ( match[3] ) {
+					named[ match[3].toLowerCase() ] = match[4];
+				} else if ( match[5] ) {
+					named[ match[5].toLowerCase() ] = match[6];
+				} else if ( match[7] ) {
+					numeric.push( match[7] );
+				} else if ( match[8] ) {
+					numeric.push( match[8] );
+				}
+			}
+
+			return {
+				named:   named,
+				numeric: numeric
+			};
+		}),
+
+		// ### Generate a Shortcode Object from a RegExp match
+		// Accepts a `match` object from calling `regexp.exec()` on a `RegExp`
+		// generated by `wp.shortcode.regexp()`. `match` can also be set to the
+		// `arguments` from a callback passed to `regexp.replace()`.
+		fromMatch: function( match ) {
+			var type;
+
+			if ( match[4] )
+				type = 'self-closing';
+			else if ( match[6] )
+				type = 'closed';
+			else
+				type = 'single';
+
+			return new wp.shortcode({
+				tag:     match[2],
+				attrs:   match[3],
+				type:    type,
+				content: match[5]
+			});
+		}
+	};
+
+
+	// Shortcode Objects
+	// -----------------
+	//
+	// Shortcode objects are generated automatically when using the main
+	// `wp.shortcode` methods: `next()`, `replace()`, and `string()`.
+	//
+	// To access a raw representation of a shortcode, pass an `options` object,
+	// containing a `tag` string, a string or object of `attrs`, a string
+	// indicating the `type` of the shortcode ('single', 'self-closing', or
+	// 'closed'), and a `content` string.
+	wp.shortcode = _.extend( function( options ) {
+		_.extend( this, _.pick( options || {}, 'tag', 'attrs', 'type', 'content' ) );
+
+		var attrs = this.attrs;
+
+		// Ensure we have a correctly formatted `attrs` object.
+		this.attrs = {
+			named:   {},
+			numeric: []
+		};
+
+		if ( ! attrs )
+			return;
+
+		// Parse a string of attributes.
+		if ( _.isString( attrs ) ) {
+			this.attrs = wp.shortcode.attrs( attrs );
+
+		// Identify a correctly formatted `attrs` object.
+		} else if ( _.isEqual( _.keys( attrs ), [ 'named', 'numeric' ] ) ) {
+			this.attrs = attrs;
+
+		// Handle a flat object of attributes.
+		} else {
+			_.each( options.attrs, function( value, key ) {
+				this.set( key, value );
+			}, this );
+		}
+	}, wp.shortcode );
+
+	_.extend( wp.shortcode.prototype, {
+		// ### Get a shortcode attribute
+		//
+		// Automatically detects whether `attr` is named or numeric and routes
+		// it accordingly.
+		get: function( attr ) {
+			return this.attrs[ _.isNumber( attr ) ? 'numeric' : 'named' ][ attr ];
+		},
+
+		// ### Set a shortcode attribute
+		//
+		// Automatically detects whether `attr` is named or numeric and routes
+		// it accordingly.
+		set: function( attr, value ) {
+			this.attrs[ _.isNumber( attr ) ? 'numeric' : 'named' ][ attr ] = value;
+			return this;
+		},
+
+		// ### Transform the shortcode match into a string
+		string: function() {
+			var text    = '[' + this.tag;
+
+			_.each( this.attrs.numeric, function( value ) {
+				if ( /\s/.test( value ) )
+					text += ' "' + value + '"';
+				else
+					text += ' ' + value;
+			});
+
+			_.each( this.attrs.named, function( value, name ) {
+				text += ' ' + name + '="' + value + '"';
+			});
+
+			// If the tag is marked as `single` or `self-closing`, close the
+			// tag and ignore any additional content.
+			if ( 'single' === this.type )
+				return text + ']';
+			else if ( 'self-closing' === this.type )
+				return text + ' /]';
+
+			// Complete the opening tag.
+			text += ']';
+
+			if ( this.content )
+				text += this.content;
+
+			// Add the closing tag.
+			return text + '[/' + this.tag + ']';
+		}
+	});
+}());
+
+// HTML utility functions
+// ----------------------
+//
+// Experimental. These functions may change or be removed in the future.
+(function(){
+	wp.html = _.extend( wp.html || {}, {
+		// ### Parse HTML attributes.
+		//
+		// Converts `content` to a set of parsed HTML attributes.
+		// Utilizes `wp.shortcode.attrs( content )`, which is a valid superset of
+		// the HTML attribute specification. Reformats the attributes into an
+		// object that contains the `attrs` with `key:value` mapping, and a record
+		// of the attributes that were entered using `empty` attribute syntax (i.e.
+		// with no value).
+		attrs: function( content ) {
+			var result, attrs;
+
+			// If `content` ends in a slash, strip it.
+			if ( '/' === content[ content.length - 1 ] )
+				content = content.slice( 0, -1 );
+
+			result = wp.shortcode.attrs( content );
+			attrs  = result.named;
+
+			_.each( result.numeric, function( key ) {
+				if ( /\s/.test( key ) )
+					return;
+
+				attrs[ key ] = '';
+			});
+
+			return attrs;
+		},
+
+		// ### Convert an HTML-representation of an object to a string.
+		string: function( options ) {
+			var text = '<' + options.tag,
+				content = options.content || '';
+
+			_.each( options.attrs, function( value, attr ) {
+				text += ' ' + attr;
+
+				// Use empty attribute notation where possible.
+				if ( '' === value )
+					return;
+
+				// Convert boolean values to strings.
+				if ( _.isBoolean( value ) )
+					value = value ? 'true' : 'false';
+
+				text += '="' + value + '"';
+			});
+
+			// Return the result if it is a self-closing tag.
+			if ( options.single )
+				return text + ' />';
+
+			// Complete the opening tag.
+			text += '>';
+
+			// If `content` is an object, recursively call this function.
+			text += _.isObject( content ) ? wp.html.string( content ) : content;
+
+			return text + '</' + options.tag + '>';
+		}
+	});
+}());
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-includes/js/shortcode.min.js	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,1 @@
+window.wp=window.wp||{};(function(){wp.shortcode={next:function(b,f,d){var e=wp.shortcode.regexp(b),c,a;e.lastIndex=d||0;c=e.exec(f);if(!c){return}if(c[1]==="["&&c[7]==="]"){return wp.shortcode.next(b,f,e.lastIndex)}a={index:c.index,content:c[0],shortcode:wp.shortcode.fromMatch(c)};if(c[1]){a.match=a.match.slice(1);a.index++}if(c[7]){a.match=a.match.slice(0,-1)}return a},replace:function(a,b,c){return b.replace(wp.shortcode.regexp(a),function(h,d,m,k,g,i,e,j,f){if(d==="["&&j==="]"){return h}var l=c(wp.shortcode.fromMatch(arguments));return l?d+l+j:h})},string:function(a){return new wp.shortcode(a).string()},regexp:_.memoize(function(a){return new RegExp("\\[(\\[?)("+a+")(?![\\w-])([^\\]\\/]*(?:\\/(?!\\])[^\\]\\/]*)*?)(?:(\\/)\\]|\\](?:([^\\[]*(?:\\[(?!\\/\\2\\])[^\\[]*)*)(\\[\\/\\2\\]))?)(\\]?)","g")}),attrs:_.memoize(function(e){var a={},c=[],d,b;d=/(\w+)\s*=\s*"([^"]*)"(?:\s|$)|(\w+)\s*=\s*\'([^\']*)\'(?:\s|$)|(\w+)\s*=\s*([^\s\'"]+)(?:\s|$)|"([^"]*)"(?:\s|$)|(\S+)(?:\s|$)/g;e=e.replace(/[\u00a0\u200b]/g," ");while((b=d.exec(e))){if(b[1]){a[b[1].toLowerCase()]=b[2]}else{if(b[3]){a[b[3].toLowerCase()]=b[4]}else{if(b[5]){a[b[5].toLowerCase()]=b[6]}else{if(b[7]){c.push(b[7])}else{if(b[8]){c.push(b[8])}}}}}}return{named:a,numeric:c}}),fromMatch:function(a){var b;if(a[4]){b="self-closing"}else{if(a[6]){b="closed"}else{b="single"}}return new wp.shortcode({tag:a[2],attrs:a[3],type:b,content:a[5]})}};wp.shortcode=_.extend(function(b){_.extend(this,_.pick(b||{},"tag","attrs","type","content"));var a=this.attrs;this.attrs={named:{},numeric:[]};if(!a){return}if(_.isString(a)){this.attrs=wp.shortcode.attrs(a)}else{if(_.isEqual(_.keys(a),["named","numeric"])){this.attrs=a}else{_.each(b.attrs,function(d,c){this.set(c,d)},this)}}},wp.shortcode);_.extend(wp.shortcode.prototype,{get:function(a){return this.attrs[_.isNumber(a)?"numeric":"named"][a]},set:function(a,b){this.attrs[_.isNumber(a)?"numeric":"named"][a]=b;return this},string:function(){var a="["+this.tag;_.each(this.attrs.numeric,function(b){if(/\s/.test(b)){a+=' "'+b+'"'}else{a+=" "+b}});_.each(this.attrs.named,function(c,b){a+=" "+b+'="'+c+'"'});if("single"===this.type){return a+"]"}else{if("self-closing"===this.type){return a+" /]"}}a+="]";if(this.content){a+=this.content}return a+"[/"+this.tag+"]"}})}());(function(){wp.html=_.extend(wp.html||{},{attrs:function(c){var a,b;if("/"===c[c.length-1]){c=c.slice(0,-1)}a=wp.shortcode.attrs(c);b=a.named;_.each(a.numeric,function(d){if(/\s/.test(d)){return}b[d]=""});return b},string:function(a){var c="<"+a.tag,b=a.content||"";_.each(a.attrs,function(e,d){c+=" "+d;if(""===e){return}if(_.isBoolean(e)){e=e?"true":"false"}c+='="'+e+'"'});if(a.single){return c+" />"}c+=">";c+=_.isObject(b)?wp.html.string(b):b;return c+"</"+a.tag+">"}})}());
\ No newline at end of file
--- a/web/wp-includes/js/swfupload/handlers.dev.js	Wed Dec 19 12:35:13 2012 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,370 +0,0 @@
-var topWin = window.dialogArguments || opener || parent || top;
-
-function fileDialogStart() {
-	jQuery("#media-upload-error").empty();
-}
-
-// progress and success handlers for media multi uploads
-function fileQueued(fileObj) {
-	// Get rid of unused form
-	jQuery('.media-blank').remove();
-	// Collapse a single item
-	if ( jQuery('form.type-form #media-items').children().length == 1 && jQuery('.hidden', '#media-items').length > 0 ) {
-		jQuery('.describe-toggle-on').show();
-		jQuery('.describe-toggle-off').hide();
-		jQuery('.slidetoggle').slideUp(200).siblings().removeClass('hidden');
-	}
-	// Create a progress bar containing the filename
-	jQuery('#media-items').append('<div id="media-item-' + fileObj.id + '" class="media-item child-of-' + post_id + '"><div class="progress"><div class="bar"></div></div><div class="filename original"><span class="percent"></span> ' + fileObj.name + '</div></div>');
-	// Display the progress div
-	jQuery('.progress', '#media-item-' + fileObj.id).show();
-
-	// Disable submit and enable cancel
-	jQuery('#insert-gallery').prop('disabled', true);
-	jQuery('#cancel-upload').prop('disabled', false);
-}
-
-function uploadStart(fileObj) {
-	try {
-		if ( typeof topWin.tb_remove != 'undefined' )
-			topWin.jQuery('#TB_overlay').unbind('click', topWin.tb_remove); 
-	} catch(e){}
-
-	return true;
-}
-
-function uploadProgress(fileObj, bytesDone, bytesTotal) {
-	// Lengthen the progress bar
-	var w = jQuery('#media-items').width() - 2, item = jQuery('#media-item-' + fileObj.id);
-	jQuery('.bar', item).width( w * bytesDone / bytesTotal );
-	jQuery('.percent', item).html( Math.ceil(bytesDone / bytesTotal * 100) + '%' );
-
-	if ( bytesDone == bytesTotal )
-		jQuery('.bar', item).html('<strong class="crunching">' + swfuploadL10n.crunching + '</strong>');
-}
-
-function prepareMediaItem(fileObj, serverData) {
-	var f = ( typeof shortform == 'undefined' ) ? 1 : 2, item = jQuery('#media-item-' + fileObj.id);
-	// Move the progress bar to 100%
-	jQuery('.bar', item).remove();
-	jQuery('.progress', item).hide();
-
-	try {
-		if ( typeof topWin.tb_remove != 'undefined' )
-			topWin.jQuery('#TB_overlay').click(topWin.tb_remove);
-	} catch(e){}
-
-	// Old style: Append the HTML returned by the server -- thumbnail and form inputs
-	if ( isNaN(serverData) || !serverData ) {
-		item.append(serverData);
-		prepareMediaItemInit(fileObj);
-	}
-	// New style: server data is just the attachment ID, fetch the thumbnail and form html from the server
-	else {
-		item.load('async-upload.php', {attachment_id:serverData, fetch:f}, function(){prepareMediaItemInit(fileObj);updateMediaForm()});
-	}
-}
-
-function prepareMediaItemInit(fileObj) {
-	var item = jQuery('#media-item-' + fileObj.id);
-	// Clone the thumbnail as a "pinkynail" -- a tiny image to the left of the filename
-	jQuery('.thumbnail', item).clone().attr('class', 'pinkynail toggle').prependTo(item);
-
-	// Replace the original filename with the new (unique) one assigned during upload
-	jQuery('.filename.original', item).replaceWith( jQuery('.filename.new', item) );
-
-	// Also bind toggle to the links
-	jQuery('a.toggle', item).click(function(){
-		jQuery(this).siblings('.slidetoggle').slideToggle(350, function(){
-			var w = jQuery(window).height(), t = jQuery(this).offset().top, h = jQuery(this).height(), b;
-
-			if ( w && t && h ) {
-                b = t + h;
-
-                if ( b > w && (h + 48) < w )
-                    window.scrollBy(0, b - w + 13);
-                else if ( b > w )
-                    window.scrollTo(0, t - 36);
-            }
-		});
-		jQuery(this).siblings('.toggle').andSelf().toggle();
-		jQuery(this).siblings('a.toggle').focus();
-		return false;
-	});
-
-	// Bind AJAX to the new Delete button
-	jQuery('a.delete', item).click(function(){
-		// Tell the server to delete it. TODO: handle exceptions
-		jQuery.ajax({
-			url: ajaxurl,
-			type: 'post',
-			success: deleteSuccess,
-			error: deleteError,
-			id: fileObj.id,
-			data: {
-				id : this.id.replace(/[^0-9]/g, ''),
-				action : 'trash-post',
-				_ajax_nonce : this.href.replace(/^.*wpnonce=/,'')
-			}
-		});
-		return false;
-	});
-
-	// Bind AJAX to the new Undo button
-	jQuery('a.undo', item).click(function(){
-		// Tell the server to untrash it. TODO: handle exceptions
-		jQuery.ajax({
-			url: ajaxurl,
-			type: 'post',
-			id: fileObj.id,
-			data: {
-				id : this.id.replace(/[^0-9]/g,''),
-				action: 'untrash-post',
-				_ajax_nonce: this.href.replace(/^.*wpnonce=/,'')
-			},
-			success: function(data, textStatus){
-				var item = jQuery('#media-item-' + fileObj.id);
-
-				if ( type = jQuery('#type-of-' + fileObj.id).val() )
-					jQuery('#' + type + '-counter').text(jQuery('#' + type + '-counter').text()-0+1);
-				if ( item.hasClass('child-of-'+post_id) )
-					jQuery('#attachments-count').text(jQuery('#attachments-count').text()-0+1);
-
-				jQuery('.filename .trashnotice', item).remove();
-				jQuery('.filename .title', item).css('font-weight','normal');
-				jQuery('a.undo', item).addClass('hidden');
-				jQuery('a.describe-toggle-on, .menu_order_input', item).show();
-				item.css( {backgroundColor:'#ceb'} ).animate( {backgroundColor: '#fff'}, { queue: false, duration: 500, complete: function(){ jQuery(this).css({backgroundColor:''}); } }).removeClass('undo');
-			}
-		});
-		return false;
-	});
-
-	// Open this item if it says to start open (e.g. to display an error)
-	jQuery('#media-item-' + fileObj.id + '.startopen').removeClass('startopen').slideToggle(500).siblings('.toggle').toggle();
-}
-
-function itemAjaxError(id, html) {
-	var item = jQuery('#media-item-' + id);
-	var filename = jQuery('.filename', item).text();
-
-	item.html('<div class="error-div">'
-				+ '<a class="dismiss" href="#">' + swfuploadL10n.dismiss + '</a>'
-				+ '<strong>' + swfuploadL10n.error_uploading.replace('%s', filename) + '</strong><br />'
-				+ html
-				+ '</div>');
-	item.find('a.dismiss').click(function(){jQuery(this).parents('.media-item').slideUp(200, function(){jQuery(this).remove();})});
-}
-
-function deleteSuccess(data, textStatus) {
-	if ( data == '-1' )
-		return itemAjaxError(this.id, 'You do not have permission. Has your session expired?');
-	if ( data == '0' )
-		return itemAjaxError(this.id, 'Could not be deleted. Has it been deleted already?');
-
-	var id = this.id, item = jQuery('#media-item-' + id);
-
-	// Decrement the counters.
-	if ( type = jQuery('#type-of-' + id).val() )
-		jQuery('#' + type + '-counter').text( jQuery('#' + type + '-counter').text() - 1 );
-	if ( item.hasClass('child-of-'+post_id) )
-		jQuery('#attachments-count').text( jQuery('#attachments-count').text() - 1 );
-
-	if ( jQuery('form.type-form #media-items').children().length == 1 && jQuery('.hidden', '#media-items').length > 0 ) {
-		jQuery('.toggle').toggle();
-		jQuery('.slidetoggle').slideUp(200).siblings().removeClass('hidden');
-	}
-
-	// Vanish it.
-	jQuery('.toggle', item).toggle();
-	jQuery('.slidetoggle', item).slideUp(200).siblings().removeClass('hidden');
-	item.css( {backgroundColor:'#faa'} ).animate( {backgroundColor:'#f4f4f4'}, {queue:false, duration:500} ).addClass('undo');
-
-	jQuery('.filename:empty', item).remove();
-	jQuery('.filename .title', item).css('font-weight','bold');
-	jQuery('.filename', item).append('<span class="trashnotice"> ' + swfuploadL10n.deleted + ' </span>').siblings('a.toggle').hide();
-	jQuery('.filename', item).append( jQuery('a.undo', item).removeClass('hidden') );
-	jQuery('.menu_order_input', item).hide();
-
-	return;
-}
-
-function deleteError(X, textStatus, errorThrown) {
-	// TODO
-}
-
-function updateMediaForm() {
-	var one = jQuery('form.type-form #media-items').children(), items = jQuery('#media-items').children();
-
-	// Just one file, no need for collapsible part
-	if ( one.length == 1 ) {
-		jQuery('.slidetoggle', one).slideDown(500).siblings().addClass('hidden').filter('.toggle').toggle();
-	}
-
-	// Only show Save buttons when there is at least one file.
-	if ( items.not('.media-blank').length > 0 )
-		jQuery('.savebutton').show();
-	else
-		jQuery('.savebutton').hide();
-
-	// Only show Gallery button when there are at least two files.
-	if ( items.length > 1 )
-		jQuery('.insert-gallery').show();
-	else
-		jQuery('.insert-gallery').hide();
-}
-
-function uploadSuccess(fileObj, serverData) {
-	// if async-upload returned an error message, place it in the media item div and return
-	if ( serverData.match('media-upload-error') ) {
-		jQuery('#media-item-' + fileObj.id).html(serverData);
-		return;
-	}
-
-	prepareMediaItem(fileObj, serverData);
-	updateMediaForm();
-
-	// Increment the counter.
-	if ( jQuery('#media-item-' + fileObj.id).hasClass('child-of-' + post_id) )
-		jQuery('#attachments-count').text(1 * jQuery('#attachments-count').text() + 1);
-}
-
-function uploadComplete(fileObj) {
-	// If no more uploads queued, enable the submit button
-	if ( swfu.getStats().files_queued == 0 ) {
-		jQuery('#cancel-upload').prop('disabled', true);
-		jQuery('#insert-gallery').prop('disabled', false);
-	}
-}
-
-
-// wp-specific error handlers
-
-// generic message
-function wpQueueError(message) {
-	jQuery('#media-upload-error').show().text(message);
-}
-
-// file-specific message
-function wpFileError(fileObj, message) {
-	var item = jQuery('#media-item-' + fileObj.id);
-	var filename = jQuery('.filename', item).text();
-
-	item.html('<div class="error-div">'
-				+ '<a class="dismiss" href="#">' + swfuploadL10n.dismiss + '</a>'
-				+ '<strong>' + swfuploadL10n.error_uploading.replace('%s', filename) + '</strong><br />'
-				+ message
-				+ '</div>');
-	item.find('a.dismiss').click(function(){jQuery(this).parents('.media-item').slideUp(200, function(){jQuery(this).remove();})});
-}
-
-function fileQueueError(fileObj, error_code, message)  {
-	// Handle this error separately because we don't want to create a FileProgress element for it.
-	if ( error_code == SWFUpload.QUEUE_ERROR.QUEUE_LIMIT_EXCEEDED ) {
-		wpQueueError(swfuploadL10n.queue_limit_exceeded);
-	}
-	else if ( error_code == SWFUpload.QUEUE_ERROR.FILE_EXCEEDS_SIZE_LIMIT ) {
-		fileQueued(fileObj);
-		wpFileError(fileObj, swfuploadL10n.file_exceeds_size_limit);
-	}
-	else if ( error_code == SWFUpload.QUEUE_ERROR.ZERO_BYTE_FILE ) {
-		fileQueued(fileObj);
-		wpFileError(fileObj, swfuploadL10n.zero_byte_file);
-	}
-	else if ( error_code == SWFUpload.QUEUE_ERROR.INVALID_FILETYPE ) {
-		fileQueued(fileObj);
-		wpFileError(fileObj, swfuploadL10n.invalid_filetype);
-	}
-	else {
-		wpQueueError(swfuploadL10n.default_error);
-	}
-}
-
-function fileDialogComplete(num_files_queued) {
-	try {
-		if (num_files_queued > 0) {
-			this.startUpload();
-		}
-	} catch (ex) {
-		this.debug(ex);
-	}
-}
-
-function switchUploader(s) {
-	var f = document.getElementById(swfu.customSettings.swfupload_element_id), h = document.getElementById(swfu.customSettings.degraded_element_id);
-	if ( s ) {
-		f.style.display = 'block';
-		h.style.display = 'none';
-	} else {
-		f.style.display = 'none';
-		h.style.display = 'block';
-	}
-}
-
-function swfuploadPreLoad() {
-	if ( !uploaderMode ) {
-		switchUploader(1);
-	} else {
-		switchUploader(0);
-	}
-}
-
-function swfuploadLoadFailed() {
-	switchUploader(0);
-	jQuery('.upload-html-bypass').hide();
-}
-
-function uploadError(fileObj, errorCode, message) {
-
-	switch (errorCode) {
-		case SWFUpload.UPLOAD_ERROR.MISSING_UPLOAD_URL:
-			wpFileError(fileObj, swfuploadL10n.missing_upload_url);
-			break;
-		case SWFUpload.UPLOAD_ERROR.UPLOAD_LIMIT_EXCEEDED:
-			wpFileError(fileObj, swfuploadL10n.upload_limit_exceeded);
-			break;
-		case SWFUpload.UPLOAD_ERROR.HTTP_ERROR:
-			wpQueueError(swfuploadL10n.http_error);
-			break;
-		case SWFUpload.UPLOAD_ERROR.UPLOAD_FAILED:
-			wpQueueError(swfuploadL10n.upload_failed);
-			break;
-		case SWFUpload.UPLOAD_ERROR.IO_ERROR:
-			wpQueueError(swfuploadL10n.io_error);
-			break;
-		case SWFUpload.UPLOAD_ERROR.SECURITY_ERROR:
-			wpQueueError(swfuploadL10n.security_error);
-			break;
-		case SWFUpload.UPLOAD_ERROR.UPLOAD_STOPPED:
-		case SWFUpload.UPLOAD_ERROR.FILE_CANCELLED:
-			jQuery('#media-item-' + fileObj.id).remove();
-			break;
-		default:
-			wpFileError(fileObj, swfuploadL10n.default_error);
-	}
-}
-
-function cancelUpload() {
-	swfu.cancelQueue();
-}
-
-// remember the last used image size, alignment and url
-jQuery(document).ready(function($){
-	$('input[type="radio"]', '#media-items').live('click', function(){
-		var tr = $(this).closest('tr');
-
-		if ( $(tr).hasClass('align') )
-			setUserSetting('align', $(this).val());
-		else if ( $(tr).hasClass('image-size') )
-			setUserSetting('imgsize', $(this).val());
-	});
-
-	$('button.button', '#media-items').live('click', function(){
-		var c = this.className || '';
-		c = c.match(/url([^ '"]+)/);
-		if ( c && c[1] ) {
-			setUserSetting('urlbutton', c[1]);
-			$(this).siblings('.urlfield').val( $(this).attr('title') );
-		}
-	});
-});
--- a/web/wp-includes/js/swfupload/handlers.js	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/js/swfupload/handlers.js	Wed Dec 19 17:46:52 2012 -0800
@@ -1,1 +1,370 @@
-var topWin=window.dialogArguments||opener||parent||top;function fileDialogStart(){jQuery("#media-upload-error").empty()}function fileQueued(a){jQuery(".media-blank").remove();if(jQuery("form.type-form #media-items").children().length==1&&jQuery(".hidden","#media-items").length>0){jQuery(".describe-toggle-on").show();jQuery(".describe-toggle-off").hide();jQuery(".slidetoggle").slideUp(200).siblings().removeClass("hidden")}jQuery("#media-items").append('<div id="media-item-'+a.id+'" class="media-item child-of-'+post_id+'"><div class="progress"><div class="bar"></div></div><div class="filename original"><span class="percent"></span> '+a.name+"</div></div>");jQuery(".progress","#media-item-"+a.id).show();jQuery("#insert-gallery").prop("disabled",true);jQuery("#cancel-upload").prop("disabled",false)}function uploadStart(a){try{if(typeof topWin.tb_remove!="undefined"){topWin.jQuery("#TB_overlay").unbind("click",topWin.tb_remove)}}catch(b){}return true}function uploadProgress(e,b,d){var a=jQuery("#media-items").width()-2,c=jQuery("#media-item-"+e.id);jQuery(".bar",c).width(a*b/d);jQuery(".percent",c).html(Math.ceil(b/d*100)+"%");if(b==d){jQuery(".bar",c).html('<strong class="crunching">'+swfuploadL10n.crunching+"</strong>")}}function prepareMediaItem(c,a){var d=(typeof shortform=="undefined")?1:2,b=jQuery("#media-item-"+c.id);jQuery(".bar",b).remove();jQuery(".progress",b).hide();try{if(typeof topWin.tb_remove!="undefined"){topWin.jQuery("#TB_overlay").click(topWin.tb_remove)}}catch(g){}if(isNaN(a)||!a){b.append(a);prepareMediaItemInit(c)}else{b.load("async-upload.php",{attachment_id:a,fetch:d},function(){prepareMediaItemInit(c);updateMediaForm()})}}function prepareMediaItemInit(b){var a=jQuery("#media-item-"+b.id);jQuery(".thumbnail",a).clone().attr("class","pinkynail toggle").prependTo(a);jQuery(".filename.original",a).replaceWith(jQuery(".filename.new",a));jQuery("a.toggle",a).click(function(){jQuery(this).siblings(".slidetoggle").slideToggle(350,function(){var d=jQuery(window).height(),e=jQuery(this).offset().top,f=jQuery(this).height(),c;if(d&&e&&f){c=e+f;if(c>d&&(f+48)<d){window.scrollBy(0,c-d+13)}else{if(c>d){window.scrollTo(0,e-36)}}}});jQuery(this).siblings(".toggle").andSelf().toggle();jQuery(this).siblings("a.toggle").focus();return false});jQuery("a.delete",a).click(function(){jQuery.ajax({url:ajaxurl,type:"post",success:deleteSuccess,error:deleteError,id:b.id,data:{id:this.id.replace(/[^0-9]/g,""),action:"trash-post",_ajax_nonce:this.href.replace(/^.*wpnonce=/,"")}});return false});jQuery("a.undo",a).click(function(){jQuery.ajax({url:ajaxurl,type:"post",id:b.id,data:{id:this.id.replace(/[^0-9]/g,""),action:"untrash-post",_ajax_nonce:this.href.replace(/^.*wpnonce=/,"")},success:function(d,e){var c=jQuery("#media-item-"+b.id);if(type=jQuery("#type-of-"+b.id).val()){jQuery("#"+type+"-counter").text(jQuery("#"+type+"-counter").text()-0+1)}if(c.hasClass("child-of-"+post_id)){jQuery("#attachments-count").text(jQuery("#attachments-count").text()-0+1)}jQuery(".filename .trashnotice",c).remove();jQuery(".filename .title",c).css("font-weight","normal");jQuery("a.undo",c).addClass("hidden");jQuery("a.describe-toggle-on, .menu_order_input",c).show();c.css({backgroundColor:"#ceb"}).animate({backgroundColor:"#fff"},{queue:false,duration:500,complete:function(){jQuery(this).css({backgroundColor:""})}}).removeClass("undo")}});return false});jQuery("#media-item-"+b.id+".startopen").removeClass("startopen").slideToggle(500).siblings(".toggle").toggle()}function itemAjaxError(d,b){var c=jQuery("#media-item-"+d);var a=jQuery(".filename",c).text();c.html('<div class="error-div"><a class="dismiss" href="#">'+swfuploadL10n.dismiss+"</a><strong>"+swfuploadL10n.error_uploading.replace("%s",a)+"</strong><br />"+b+"</div>");c.find("a.dismiss").click(function(){jQuery(this).parents(".media-item").slideUp(200,function(){jQuery(this).remove()})})}function deleteSuccess(b,d){if(b=="-1"){return itemAjaxError(this.id,"You do not have permission. Has your session expired?")}if(b=="0"){return itemAjaxError(this.id,"Could not be deleted. Has it been deleted already?")}var c=this.id,a=jQuery("#media-item-"+c);if(type=jQuery("#type-of-"+c).val()){jQuery("#"+type+"-counter").text(jQuery("#"+type+"-counter").text()-1)}if(a.hasClass("child-of-"+post_id)){jQuery("#attachments-count").text(jQuery("#attachments-count").text()-1)}if(jQuery("form.type-form #media-items").children().length==1&&jQuery(".hidden","#media-items").length>0){jQuery(".toggle").toggle();jQuery(".slidetoggle").slideUp(200).siblings().removeClass("hidden")}jQuery(".toggle",a).toggle();jQuery(".slidetoggle",a).slideUp(200).siblings().removeClass("hidden");a.css({backgroundColor:"#faa"}).animate({backgroundColor:"#f4f4f4"},{queue:false,duration:500}).addClass("undo");jQuery(".filename:empty",a).remove();jQuery(".filename .title",a).css("font-weight","bold");jQuery(".filename",a).append('<span class="trashnotice"> '+swfuploadL10n.deleted+" </span>").siblings("a.toggle").hide();jQuery(".filename",a).append(jQuery("a.undo",a).removeClass("hidden"));jQuery(".menu_order_input",a).hide();return}function deleteError(c,b,a){}function updateMediaForm(){var b=jQuery("form.type-form #media-items").children(),a=jQuery("#media-items").children();if(b.length==1){jQuery(".slidetoggle",b).slideDown(500).siblings().addClass("hidden").filter(".toggle").toggle()}if(a.not(".media-blank").length>0){jQuery(".savebutton").show()}else{jQuery(".savebutton").hide()}if(a.length>1){jQuery(".insert-gallery").show()}else{jQuery(".insert-gallery").hide()}}function uploadSuccess(b,a){if(a.match("media-upload-error")){jQuery("#media-item-"+b.id).html(a);return}prepareMediaItem(b,a);updateMediaForm();if(jQuery("#media-item-"+b.id).hasClass("child-of-"+post_id)){jQuery("#attachments-count").text(1*jQuery("#attachments-count").text()+1)}}function uploadComplete(a){if(swfu.getStats().files_queued==0){jQuery("#cancel-upload").prop("disabled",true);jQuery("#insert-gallery").prop("disabled",false)}}function wpQueueError(a){jQuery("#media-upload-error").show().text(a)}function wpFileError(d,c){var b=jQuery("#media-item-"+d.id);var a=jQuery(".filename",b).text();b.html('<div class="error-div"><a class="dismiss" href="#">'+swfuploadL10n.dismiss+"</a><strong>"+swfuploadL10n.error_uploading.replace("%s",a)+"</strong><br />"+c+"</div>");b.find("a.dismiss").click(function(){jQuery(this).parents(".media-item").slideUp(200,function(){jQuery(this).remove()})})}function fileQueueError(c,a,b){if(a==SWFUpload.QUEUE_ERROR.QUEUE_LIMIT_EXCEEDED){wpQueueError(swfuploadL10n.queue_limit_exceeded)}else{if(a==SWFUpload.QUEUE_ERROR.FILE_EXCEEDS_SIZE_LIMIT){fileQueued(c);wpFileError(c,swfuploadL10n.file_exceeds_size_limit)}else{if(a==SWFUpload.QUEUE_ERROR.ZERO_BYTE_FILE){fileQueued(c);wpFileError(c,swfuploadL10n.zero_byte_file)}else{if(a==SWFUpload.QUEUE_ERROR.INVALID_FILETYPE){fileQueued(c);wpFileError(c,swfuploadL10n.invalid_filetype)}else{wpQueueError(swfuploadL10n.default_error)}}}}}function fileDialogComplete(b){try{if(b>0){this.startUpload()}}catch(a){this.debug(a)}}function switchUploader(b){var c=document.getElementById(swfu.customSettings.swfupload_element_id),a=document.getElementById(swfu.customSettings.degraded_element_id);if(b){c.style.display="block";a.style.display="none"}else{c.style.display="none";a.style.display="block"}}function swfuploadPreLoad(){if(!uploaderMode){switchUploader(1)}else{switchUploader(0)}}function swfuploadLoadFailed(){switchUploader(0);jQuery(".upload-html-bypass").hide()}function uploadError(b,c,a){switch(c){case SWFUpload.UPLOAD_ERROR.MISSING_UPLOAD_URL:wpFileError(b,swfuploadL10n.missing_upload_url);break;case SWFUpload.UPLOAD_ERROR.UPLOAD_LIMIT_EXCEEDED:wpFileError(b,swfuploadL10n.upload_limit_exceeded);break;case SWFUpload.UPLOAD_ERROR.HTTP_ERROR:wpQueueError(swfuploadL10n.http_error);break;case SWFUpload.UPLOAD_ERROR.UPLOAD_FAILED:wpQueueError(swfuploadL10n.upload_failed);break;case SWFUpload.UPLOAD_ERROR.IO_ERROR:wpQueueError(swfuploadL10n.io_error);break;case SWFUpload.UPLOAD_ERROR.SECURITY_ERROR:wpQueueError(swfuploadL10n.security_error);break;case SWFUpload.UPLOAD_ERROR.UPLOAD_STOPPED:case SWFUpload.UPLOAD_ERROR.FILE_CANCELLED:jQuery("#media-item-"+b.id).remove();break;default:wpFileError(b,swfuploadL10n.default_error)}}function cancelUpload(){swfu.cancelQueue()}jQuery(document).ready(function(a){a('input[type="radio"]',"#media-items").live("click",function(){var b=a(this).closest("tr");if(a(b).hasClass("align")){setUserSetting("align",a(this).val())}else{if(a(b).hasClass("image-size")){setUserSetting("imgsize",a(this).val())}}});a("button.button","#media-items").live("click",function(){var b=this.className||"";b=b.match(/url([^ '"]+)/);if(b&&b[1]){setUserSetting("urlbutton",b[1]);a(this).siblings(".urlfield").val(a(this).attr("title"))}})});
\ No newline at end of file
+var topWin = window.dialogArguments || opener || parent || top;
+
+function fileDialogStart() {
+	jQuery("#media-upload-error").empty();
+}
+
+// progress and success handlers for media multi uploads
+function fileQueued(fileObj) {
+	// Get rid of unused form
+	jQuery('.media-blank').remove();
+	// Collapse a single item
+	if ( jQuery('form.type-form #media-items').children().length == 1 && jQuery('.hidden', '#media-items').length > 0 ) {
+		jQuery('.describe-toggle-on').show();
+		jQuery('.describe-toggle-off').hide();
+		jQuery('.slidetoggle').slideUp(200).siblings().removeClass('hidden');
+	}
+	// Create a progress bar containing the filename
+	jQuery('#media-items').append('<div id="media-item-' + fileObj.id + '" class="media-item child-of-' + post_id + '"><div class="progress"><div class="bar"></div></div><div class="filename original"><span class="percent"></span> ' + fileObj.name + '</div></div>');
+	// Display the progress div
+	jQuery('.progress', '#media-item-' + fileObj.id).show();
+
+	// Disable submit and enable cancel
+	jQuery('#insert-gallery').prop('disabled', true);
+	jQuery('#cancel-upload').prop('disabled', false);
+}
+
+function uploadStart(fileObj) {
+	try {
+		if ( typeof topWin.tb_remove != 'undefined' )
+			topWin.jQuery('#TB_overlay').unbind('click', topWin.tb_remove); 
+	} catch(e){}
+
+	return true;
+}
+
+function uploadProgress(fileObj, bytesDone, bytesTotal) {
+	// Lengthen the progress bar
+	var w = jQuery('#media-items').width() - 2, item = jQuery('#media-item-' + fileObj.id);
+	jQuery('.bar', item).width( w * bytesDone / bytesTotal );
+	jQuery('.percent', item).html( Math.ceil(bytesDone / bytesTotal * 100) + '%' );
+
+	if ( bytesDone == bytesTotal )
+		jQuery('.bar', item).html('<strong class="crunching">' + swfuploadL10n.crunching + '</strong>');
+}
+
+function prepareMediaItem(fileObj, serverData) {
+	var f = ( typeof shortform == 'undefined' ) ? 1 : 2, item = jQuery('#media-item-' + fileObj.id);
+	// Move the progress bar to 100%
+	jQuery('.bar', item).remove();
+	jQuery('.progress', item).hide();
+
+	try {
+		if ( typeof topWin.tb_remove != 'undefined' )
+			topWin.jQuery('#TB_overlay').click(topWin.tb_remove);
+	} catch(e){}
+
+	// Old style: Append the HTML returned by the server -- thumbnail and form inputs
+	if ( isNaN(serverData) || !serverData ) {
+		item.append(serverData);
+		prepareMediaItemInit(fileObj);
+	}
+	// New style: server data is just the attachment ID, fetch the thumbnail and form html from the server
+	else {
+		item.load('async-upload.php', {attachment_id:serverData, fetch:f}, function(){prepareMediaItemInit(fileObj);updateMediaForm()});
+	}
+}
+
+function prepareMediaItemInit(fileObj) {
+	var item = jQuery('#media-item-' + fileObj.id);
+	// Clone the thumbnail as a "pinkynail" -- a tiny image to the left of the filename
+	jQuery('.thumbnail', item).clone().attr('class', 'pinkynail toggle').prependTo(item);
+
+	// Replace the original filename with the new (unique) one assigned during upload
+	jQuery('.filename.original', item).replaceWith( jQuery('.filename.new', item) );
+
+	// Also bind toggle to the links
+	jQuery('a.toggle', item).click(function(){
+		jQuery(this).siblings('.slidetoggle').slideToggle(350, function(){
+			var w = jQuery(window).height(), t = jQuery(this).offset().top, h = jQuery(this).height(), b;
+
+			if ( w && t && h ) {
+                b = t + h;
+
+                if ( b > w && (h + 48) < w )
+                    window.scrollBy(0, b - w + 13);
+                else if ( b > w )
+                    window.scrollTo(0, t - 36);
+            }
+		});
+		jQuery(this).siblings('.toggle').andSelf().toggle();
+		jQuery(this).siblings('a.toggle').focus();
+		return false;
+	});
+
+	// Bind AJAX to the new Delete button
+	jQuery('a.delete', item).click(function(){
+		// Tell the server to delete it. TODO: handle exceptions
+		jQuery.ajax({
+			url: ajaxurl,
+			type: 'post',
+			success: deleteSuccess,
+			error: deleteError,
+			id: fileObj.id,
+			data: {
+				id : this.id.replace(/[^0-9]/g, ''),
+				action : 'trash-post',
+				_ajax_nonce : this.href.replace(/^.*wpnonce=/,'')
+			}
+		});
+		return false;
+	});
+
+	// Bind AJAX to the new Undo button
+	jQuery('a.undo', item).click(function(){
+		// Tell the server to untrash it. TODO: handle exceptions
+		jQuery.ajax({
+			url: ajaxurl,
+			type: 'post',
+			id: fileObj.id,
+			data: {
+				id : this.id.replace(/[^0-9]/g,''),
+				action: 'untrash-post',
+				_ajax_nonce: this.href.replace(/^.*wpnonce=/,'')
+			},
+			success: function(data, textStatus){
+				var item = jQuery('#media-item-' + fileObj.id);
+
+				if ( type = jQuery('#type-of-' + fileObj.id).val() )
+					jQuery('#' + type + '-counter').text(jQuery('#' + type + '-counter').text()-0+1);
+				if ( item.hasClass('child-of-'+post_id) )
+					jQuery('#attachments-count').text(jQuery('#attachments-count').text()-0+1);
+
+				jQuery('.filename .trashnotice', item).remove();
+				jQuery('.filename .title', item).css('font-weight','normal');
+				jQuery('a.undo', item).addClass('hidden');
+				jQuery('a.describe-toggle-on, .menu_order_input', item).show();
+				item.css( {backgroundColor:'#ceb'} ).animate( {backgroundColor: '#fff'}, { queue: false, duration: 500, complete: function(){ jQuery(this).css({backgroundColor:''}); } }).removeClass('undo');
+			}
+		});
+		return false;
+	});
+
+	// Open this item if it says to start open (e.g. to display an error)
+	jQuery('#media-item-' + fileObj.id + '.startopen').removeClass('startopen').slideToggle(500).siblings('.toggle').toggle();
+}
+
+function itemAjaxError(id, html) {
+	var item = jQuery('#media-item-' + id);
+	var filename = jQuery('.filename', item).text();
+
+	item.html('<div class="error-div">'
+				+ '<a class="dismiss" href="#">' + swfuploadL10n.dismiss + '</a>'
+				+ '<strong>' + swfuploadL10n.error_uploading.replace('%s', filename) + '</strong><br />'
+				+ html
+				+ '</div>');
+	item.find('a.dismiss').click(function(){jQuery(this).parents('.media-item').slideUp(200, function(){jQuery(this).remove();})});
+}
+
+function deleteSuccess(data, textStatus) {
+	if ( data == '-1' )
+		return itemAjaxError(this.id, 'You do not have permission. Has your session expired?');
+	if ( data == '0' )
+		return itemAjaxError(this.id, 'Could not be deleted. Has it been deleted already?');
+
+	var id = this.id, item = jQuery('#media-item-' + id);
+
+	// Decrement the counters.
+	if ( type = jQuery('#type-of-' + id).val() )
+		jQuery('#' + type + '-counter').text( jQuery('#' + type + '-counter').text() - 1 );
+	if ( item.hasClass('child-of-'+post_id) )
+		jQuery('#attachments-count').text( jQuery('#attachments-count').text() - 1 );
+
+	if ( jQuery('form.type-form #media-items').children().length == 1 && jQuery('.hidden', '#media-items').length > 0 ) {
+		jQuery('.toggle').toggle();
+		jQuery('.slidetoggle').slideUp(200).siblings().removeClass('hidden');
+	}
+
+	// Vanish it.
+	jQuery('.toggle', item).toggle();
+	jQuery('.slidetoggle', item).slideUp(200).siblings().removeClass('hidden');
+	item.css( {backgroundColor:'#faa'} ).animate( {backgroundColor:'#f4f4f4'}, {queue:false, duration:500} ).addClass('undo');
+
+	jQuery('.filename:empty', item).remove();
+	jQuery('.filename .title', item).css('font-weight','bold');
+	jQuery('.filename', item).append('<span class="trashnotice"> ' + swfuploadL10n.deleted + ' </span>').siblings('a.toggle').hide();
+	jQuery('.filename', item).append( jQuery('a.undo', item).removeClass('hidden') );
+	jQuery('.menu_order_input', item).hide();
+
+	return;
+}
+
+function deleteError(X, textStatus, errorThrown) {
+	// TODO
+}
+
+function updateMediaForm() {
+	var one = jQuery('form.type-form #media-items').children(), items = jQuery('#media-items').children();
+
+	// Just one file, no need for collapsible part
+	if ( one.length == 1 ) {
+		jQuery('.slidetoggle', one).slideDown(500).siblings().addClass('hidden').filter('.toggle').toggle();
+	}
+
+	// Only show Save buttons when there is at least one file.
+	if ( items.not('.media-blank').length > 0 )
+		jQuery('.savebutton').show();
+	else
+		jQuery('.savebutton').hide();
+
+	// Only show Gallery button when there are at least two files.
+	if ( items.length > 1 )
+		jQuery('.insert-gallery').show();
+	else
+		jQuery('.insert-gallery').hide();
+}
+
+function uploadSuccess(fileObj, serverData) {
+	// if async-upload returned an error message, place it in the media item div and return
+	if ( serverData.match('media-upload-error') ) {
+		jQuery('#media-item-' + fileObj.id).html(serverData);
+		return;
+	}
+
+	prepareMediaItem(fileObj, serverData);
+	updateMediaForm();
+
+	// Increment the counter.
+	if ( jQuery('#media-item-' + fileObj.id).hasClass('child-of-' + post_id) )
+		jQuery('#attachments-count').text(1 * jQuery('#attachments-count').text() + 1);
+}
+
+function uploadComplete(fileObj) {
+	// If no more uploads queued, enable the submit button
+	if ( swfu.getStats().files_queued == 0 ) {
+		jQuery('#cancel-upload').prop('disabled', true);
+		jQuery('#insert-gallery').prop('disabled', false);
+	}
+}
+
+
+// wp-specific error handlers
+
+// generic message
+function wpQueueError(message) {
+	jQuery('#media-upload-error').show().text(message);
+}
+
+// file-specific message
+function wpFileError(fileObj, message) {
+	var item = jQuery('#media-item-' + fileObj.id);
+	var filename = jQuery('.filename', item).text();
+
+	item.html('<div class="error-div">'
+				+ '<a class="dismiss" href="#">' + swfuploadL10n.dismiss + '</a>'
+				+ '<strong>' + swfuploadL10n.error_uploading.replace('%s', filename) + '</strong><br />'
+				+ message
+				+ '</div>');
+	item.find('a.dismiss').click(function(){jQuery(this).parents('.media-item').slideUp(200, function(){jQuery(this).remove();})});
+}
+
+function fileQueueError(fileObj, error_code, message)  {
+	// Handle this error separately because we don't want to create a FileProgress element for it.
+	if ( error_code == SWFUpload.QUEUE_ERROR.QUEUE_LIMIT_EXCEEDED ) {
+		wpQueueError(swfuploadL10n.queue_limit_exceeded);
+	}
+	else if ( error_code == SWFUpload.QUEUE_ERROR.FILE_EXCEEDS_SIZE_LIMIT ) {
+		fileQueued(fileObj);
+		wpFileError(fileObj, swfuploadL10n.file_exceeds_size_limit);
+	}
+	else if ( error_code == SWFUpload.QUEUE_ERROR.ZERO_BYTE_FILE ) {
+		fileQueued(fileObj);
+		wpFileError(fileObj, swfuploadL10n.zero_byte_file);
+	}
+	else if ( error_code == SWFUpload.QUEUE_ERROR.INVALID_FILETYPE ) {
+		fileQueued(fileObj);
+		wpFileError(fileObj, swfuploadL10n.invalid_filetype);
+	}
+	else {
+		wpQueueError(swfuploadL10n.default_error);
+	}
+}
+
+function fileDialogComplete(num_files_queued) {
+	try {
+		if (num_files_queued > 0) {
+			this.startUpload();
+		}
+	} catch (ex) {
+		this.debug(ex);
+	}
+}
+
+function switchUploader(s) {
+	var f = document.getElementById(swfu.customSettings.swfupload_element_id), h = document.getElementById(swfu.customSettings.degraded_element_id);
+	if ( s ) {
+		f.style.display = 'block';
+		h.style.display = 'none';
+	} else {
+		f.style.display = 'none';
+		h.style.display = 'block';
+	}
+}
+
+function swfuploadPreLoad() {
+	if ( !uploaderMode ) {
+		switchUploader(1);
+	} else {
+		switchUploader(0);
+	}
+}
+
+function swfuploadLoadFailed() {
+	switchUploader(0);
+	jQuery('.upload-html-bypass').hide();
+}
+
+function uploadError(fileObj, errorCode, message) {
+
+	switch (errorCode) {
+		case SWFUpload.UPLOAD_ERROR.MISSING_UPLOAD_URL:
+			wpFileError(fileObj, swfuploadL10n.missing_upload_url);
+			break;
+		case SWFUpload.UPLOAD_ERROR.UPLOAD_LIMIT_EXCEEDED:
+			wpFileError(fileObj, swfuploadL10n.upload_limit_exceeded);
+			break;
+		case SWFUpload.UPLOAD_ERROR.HTTP_ERROR:
+			wpQueueError(swfuploadL10n.http_error);
+			break;
+		case SWFUpload.UPLOAD_ERROR.UPLOAD_FAILED:
+			wpQueueError(swfuploadL10n.upload_failed);
+			break;
+		case SWFUpload.UPLOAD_ERROR.IO_ERROR:
+			wpQueueError(swfuploadL10n.io_error);
+			break;
+		case SWFUpload.UPLOAD_ERROR.SECURITY_ERROR:
+			wpQueueError(swfuploadL10n.security_error);
+			break;
+		case SWFUpload.UPLOAD_ERROR.UPLOAD_STOPPED:
+		case SWFUpload.UPLOAD_ERROR.FILE_CANCELLED:
+			jQuery('#media-item-' + fileObj.id).remove();
+			break;
+		default:
+			wpFileError(fileObj, swfuploadL10n.default_error);
+	}
+}
+
+function cancelUpload() {
+	swfu.cancelQueue();
+}
+
+// remember the last used image size, alignment and url
+jQuery(document).ready(function($){
+	$('input[type="radio"]', '#media-items').live('click', function(){
+		var tr = $(this).closest('tr');
+
+		if ( $(tr).hasClass('align') )
+			setUserSetting('align', $(this).val());
+		else if ( $(tr).hasClass('image-size') )
+			setUserSetting('imgsize', $(this).val());
+	});
+
+	$('button.button', '#media-items').live('click', function(){
+		var c = this.className || '';
+		c = c.match(/url([^ '"]+)/);
+		if ( c && c[1] ) {
+			setUserSetting('urlbutton', c[1]);
+			$(this).siblings('.urlfield').val( $(this).attr('title') );
+		}
+	});
+});
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-includes/js/swfupload/handlers.min.js	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,1 @@
+var topWin=window.dialogArguments||opener||parent||top;function fileDialogStart(){jQuery("#media-upload-error").empty()}function fileQueued(a){jQuery(".media-blank").remove();if(jQuery("form.type-form #media-items").children().length==1&&jQuery(".hidden","#media-items").length>0){jQuery(".describe-toggle-on").show();jQuery(".describe-toggle-off").hide();jQuery(".slidetoggle").slideUp(200).siblings().removeClass("hidden")}jQuery("#media-items").append('<div id="media-item-'+a.id+'" class="media-item child-of-'+post_id+'"><div class="progress"><div class="bar"></div></div><div class="filename original"><span class="percent"></span> '+a.name+"</div></div>");jQuery(".progress","#media-item-"+a.id).show();jQuery("#insert-gallery").prop("disabled",true);jQuery("#cancel-upload").prop("disabled",false)}function uploadStart(a){try{if(typeof topWin.tb_remove!="undefined"){topWin.jQuery("#TB_overlay").unbind("click",topWin.tb_remove)}}catch(b){}return true}function uploadProgress(e,b,d){var a=jQuery("#media-items").width()-2,c=jQuery("#media-item-"+e.id);jQuery(".bar",c).width(a*b/d);jQuery(".percent",c).html(Math.ceil(b/d*100)+"%");if(b==d){jQuery(".bar",c).html('<strong class="crunching">'+swfuploadL10n.crunching+"</strong>")}}function prepareMediaItem(c,a){var d=(typeof shortform=="undefined")?1:2,b=jQuery("#media-item-"+c.id);jQuery(".bar",b).remove();jQuery(".progress",b).hide();try{if(typeof topWin.tb_remove!="undefined"){topWin.jQuery("#TB_overlay").click(topWin.tb_remove)}}catch(g){}if(isNaN(a)||!a){b.append(a);prepareMediaItemInit(c)}else{b.load("async-upload.php",{attachment_id:a,fetch:d},function(){prepareMediaItemInit(c);updateMediaForm()})}}function prepareMediaItemInit(b){var a=jQuery("#media-item-"+b.id);jQuery(".thumbnail",a).clone().attr("class","pinkynail toggle").prependTo(a);jQuery(".filename.original",a).replaceWith(jQuery(".filename.new",a));jQuery("a.toggle",a).click(function(){jQuery(this).siblings(".slidetoggle").slideToggle(350,function(){var d=jQuery(window).height(),e=jQuery(this).offset().top,f=jQuery(this).height(),c;if(d&&e&&f){c=e+f;if(c>d&&(f+48)<d){window.scrollBy(0,c-d+13)}else{if(c>d){window.scrollTo(0,e-36)}}}});jQuery(this).siblings(".toggle").andSelf().toggle();jQuery(this).siblings("a.toggle").focus();return false});jQuery("a.delete",a).click(function(){jQuery.ajax({url:ajaxurl,type:"post",success:deleteSuccess,error:deleteError,id:b.id,data:{id:this.id.replace(/[^0-9]/g,""),action:"trash-post",_ajax_nonce:this.href.replace(/^.*wpnonce=/,"")}});return false});jQuery("a.undo",a).click(function(){jQuery.ajax({url:ajaxurl,type:"post",id:b.id,data:{id:this.id.replace(/[^0-9]/g,""),action:"untrash-post",_ajax_nonce:this.href.replace(/^.*wpnonce=/,"")},success:function(d,e){var c=jQuery("#media-item-"+b.id);if(type=jQuery("#type-of-"+b.id).val()){jQuery("#"+type+"-counter").text(jQuery("#"+type+"-counter").text()-0+1)}if(c.hasClass("child-of-"+post_id)){jQuery("#attachments-count").text(jQuery("#attachments-count").text()-0+1)}jQuery(".filename .trashnotice",c).remove();jQuery(".filename .title",c).css("font-weight","normal");jQuery("a.undo",c).addClass("hidden");jQuery("a.describe-toggle-on, .menu_order_input",c).show();c.css({backgroundColor:"#ceb"}).animate({backgroundColor:"#fff"},{queue:false,duration:500,complete:function(){jQuery(this).css({backgroundColor:""})}}).removeClass("undo")}});return false});jQuery("#media-item-"+b.id+".startopen").removeClass("startopen").slideToggle(500).siblings(".toggle").toggle()}function itemAjaxError(d,b){var c=jQuery("#media-item-"+d);var a=jQuery(".filename",c).text();c.html('<div class="error-div"><a class="dismiss" href="#">'+swfuploadL10n.dismiss+"</a><strong>"+swfuploadL10n.error_uploading.replace("%s",a)+"</strong><br />"+b+"</div>");c.find("a.dismiss").click(function(){jQuery(this).parents(".media-item").slideUp(200,function(){jQuery(this).remove()})})}function deleteSuccess(b,d){if(b=="-1"){return itemAjaxError(this.id,"You do not have permission. Has your session expired?")}if(b=="0"){return itemAjaxError(this.id,"Could not be deleted. Has it been deleted already?")}var c=this.id,a=jQuery("#media-item-"+c);if(type=jQuery("#type-of-"+c).val()){jQuery("#"+type+"-counter").text(jQuery("#"+type+"-counter").text()-1)}if(a.hasClass("child-of-"+post_id)){jQuery("#attachments-count").text(jQuery("#attachments-count").text()-1)}if(jQuery("form.type-form #media-items").children().length==1&&jQuery(".hidden","#media-items").length>0){jQuery(".toggle").toggle();jQuery(".slidetoggle").slideUp(200).siblings().removeClass("hidden")}jQuery(".toggle",a).toggle();jQuery(".slidetoggle",a).slideUp(200).siblings().removeClass("hidden");a.css({backgroundColor:"#faa"}).animate({backgroundColor:"#f4f4f4"},{queue:false,duration:500}).addClass("undo");jQuery(".filename:empty",a).remove();jQuery(".filename .title",a).css("font-weight","bold");jQuery(".filename",a).append('<span class="trashnotice"> '+swfuploadL10n.deleted+" </span>").siblings("a.toggle").hide();jQuery(".filename",a).append(jQuery("a.undo",a).removeClass("hidden"));jQuery(".menu_order_input",a).hide();return}function deleteError(c,b,a){}function updateMediaForm(){var b=jQuery("form.type-form #media-items").children(),a=jQuery("#media-items").children();if(b.length==1){jQuery(".slidetoggle",b).slideDown(500).siblings().addClass("hidden").filter(".toggle").toggle()}if(a.not(".media-blank").length>0){jQuery(".savebutton").show()}else{jQuery(".savebutton").hide()}if(a.length>1){jQuery(".insert-gallery").show()}else{jQuery(".insert-gallery").hide()}}function uploadSuccess(b,a){if(a.match("media-upload-error")){jQuery("#media-item-"+b.id).html(a);return}prepareMediaItem(b,a);updateMediaForm();if(jQuery("#media-item-"+b.id).hasClass("child-of-"+post_id)){jQuery("#attachments-count").text(1*jQuery("#attachments-count").text()+1)}}function uploadComplete(a){if(swfu.getStats().files_queued==0){jQuery("#cancel-upload").prop("disabled",true);jQuery("#insert-gallery").prop("disabled",false)}}function wpQueueError(a){jQuery("#media-upload-error").show().text(a)}function wpFileError(d,c){var b=jQuery("#media-item-"+d.id);var a=jQuery(".filename",b).text();b.html('<div class="error-div"><a class="dismiss" href="#">'+swfuploadL10n.dismiss+"</a><strong>"+swfuploadL10n.error_uploading.replace("%s",a)+"</strong><br />"+c+"</div>");b.find("a.dismiss").click(function(){jQuery(this).parents(".media-item").slideUp(200,function(){jQuery(this).remove()})})}function fileQueueError(c,a,b){if(a==SWFUpload.QUEUE_ERROR.QUEUE_LIMIT_EXCEEDED){wpQueueError(swfuploadL10n.queue_limit_exceeded)}else{if(a==SWFUpload.QUEUE_ERROR.FILE_EXCEEDS_SIZE_LIMIT){fileQueued(c);wpFileError(c,swfuploadL10n.file_exceeds_size_limit)}else{if(a==SWFUpload.QUEUE_ERROR.ZERO_BYTE_FILE){fileQueued(c);wpFileError(c,swfuploadL10n.zero_byte_file)}else{if(a==SWFUpload.QUEUE_ERROR.INVALID_FILETYPE){fileQueued(c);wpFileError(c,swfuploadL10n.invalid_filetype)}else{wpQueueError(swfuploadL10n.default_error)}}}}}function fileDialogComplete(b){try{if(b>0){this.startUpload()}}catch(a){this.debug(a)}}function switchUploader(b){var c=document.getElementById(swfu.customSettings.swfupload_element_id),a=document.getElementById(swfu.customSettings.degraded_element_id);if(b){c.style.display="block";a.style.display="none"}else{c.style.display="none";a.style.display="block"}}function swfuploadPreLoad(){if(!uploaderMode){switchUploader(1)}else{switchUploader(0)}}function swfuploadLoadFailed(){switchUploader(0);jQuery(".upload-html-bypass").hide()}function uploadError(b,c,a){switch(c){case SWFUpload.UPLOAD_ERROR.MISSING_UPLOAD_URL:wpFileError(b,swfuploadL10n.missing_upload_url);break;case SWFUpload.UPLOAD_ERROR.UPLOAD_LIMIT_EXCEEDED:wpFileError(b,swfuploadL10n.upload_limit_exceeded);break;case SWFUpload.UPLOAD_ERROR.HTTP_ERROR:wpQueueError(swfuploadL10n.http_error);break;case SWFUpload.UPLOAD_ERROR.UPLOAD_FAILED:wpQueueError(swfuploadL10n.upload_failed);break;case SWFUpload.UPLOAD_ERROR.IO_ERROR:wpQueueError(swfuploadL10n.io_error);break;case SWFUpload.UPLOAD_ERROR.SECURITY_ERROR:wpQueueError(swfuploadL10n.security_error);break;case SWFUpload.UPLOAD_ERROR.UPLOAD_STOPPED:case SWFUpload.UPLOAD_ERROR.FILE_CANCELLED:jQuery("#media-item-"+b.id).remove();break;default:wpFileError(b,swfuploadL10n.default_error)}}function cancelUpload(){swfu.cancelQueue()}jQuery(document).ready(function(a){a('input[type="radio"]',"#media-items").live("click",function(){var b=a(this).closest("tr");if(a(b).hasClass("align")){setUserSetting("align",a(this).val())}else{if(a(b).hasClass("image-size")){setUserSetting("imgsize",a(this).val())}}});a("button.button","#media-items").live("click",function(){var b=this.className||"";b=b.match(/url([^ '"]+)/);if(b&&b[1]){setUserSetting("urlbutton",b[1]);a(this).siblings(".urlfield").val(a(this).attr("title"))}})});
\ No newline at end of file
Binary file web/wp-includes/js/thickbox/loadingAnimation.gif has changed
Binary file web/wp-includes/js/thickbox/macFFBgHack.png has changed
Binary file web/wp-includes/js/thickbox/tb-close-2x.png has changed
Binary file web/wp-includes/js/thickbox/tb-close.png has changed
--- a/web/wp-includes/js/thickbox/thickbox.css	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/js/thickbox/thickbox.css	Wed Dec 19 17:46:52 2012 -0800
@@ -3,12 +3,12 @@
 /* ---------->>> thickbox specific link and font settings <<<------------------------------------------------------*/
 /* ----------------------------------------------------------------------------------------------------------------*/
 #TB_window {
-	font: 12px "Lucida Grande", Verdana, Arial, sans-serif;
+	font: 12px sans-serif;
 	color: #333333;
 }
 
 #TB_secondLine {
-	font: 10px "Lucida Grande", Verdana, Arial, sans-serif;
+	font: 10px sans-serif;
 	color:#666666;
 }
 
@@ -160,3 +160,19 @@
 	margin-bottom:-1px;
 	_margin-bottom:1px;
 }
+
+.tb-close-icon {
+	background: url('tb-close.png') no-repeat;
+	height: 15px;
+	width: 15px;
+}
+
+@media print,
+  (-o-min-device-pixel-ratio: 5/4),
+  (-webkit-min-device-pixel-ratio: 1.25),
+  (min-resolution: 120dpi) {
+	.tb-close-icon {
+		background: url('tb-close-2x.png') no-repeat;
+		background-size: 15px;
+	}
+}
\ No newline at end of file
--- a/web/wp-includes/js/thickbox/thickbox.js	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/js/thickbox/thickbox.js	Wed Dec 19 17:46:52 2012 -0800
@@ -8,9 +8,6 @@
 if ( typeof tb_pathToImage != 'string' ) {
 	var tb_pathToImage = thickboxL10n.loadingAnimation;
 }
-if ( typeof tb_closeImage != 'string' ) {
-	var tb_closeImage = thickboxL10n.closeImage;
-}
 
 /*!!!!!!!!!!!!!!!!! edit below this line at your own risk !!!!!!!!!!!!!!!!!!!!!!!*/
 
@@ -59,7 +56,7 @@
 		}
 
 		if(caption===null){caption="";}
-		jQuery("body").append("<div id='TB_load'><img src='"+imgLoader.src+"' /></div>");//add loader to the page
+		jQuery("body").append("<div id='TB_load'><img src='"+imgLoader.src+"' width='208' /></div>");//add loader to the page
 		jQuery('#TB_load').show();//show loader
 
 		var baseURL;
@@ -132,7 +129,7 @@
 
 			TB_WIDTH = imageWidth + 30;
 			TB_HEIGHT = imageHeight + 60;
-			jQuery("#TB_window").append("<a href='' id='TB_ImageOff' title='"+thickboxL10n.close+"'><img id='TB_Image' src='"+url+"' width='"+imageWidth+"' height='"+imageHeight+"' alt='"+caption+"'/></a>" + "<div id='TB_caption'>"+caption+"<div id='TB_secondLine'>" + TB_imageCount + TB_PrevHTML + TB_NextHTML + "</div></div><div id='TB_closeWindow'><a href='#' id='TB_closeWindowButton' title='"+thickboxL10n.close+"'><img src='" + tb_closeImage + "' /></a></div>");
+			jQuery("#TB_window").append("<a href='' id='TB_ImageOff' title='"+thickboxL10n.close+"'><img id='TB_Image' src='"+url+"' width='"+imageWidth+"' height='"+imageHeight+"' alt='"+caption+"'/></a>" + "<div id='TB_caption'>"+caption+"<div id='TB_secondLine'>" + TB_imageCount + TB_PrevHTML + TB_NextHTML + "</div></div><div id='TB_closeWindow'><a href='#' id='TB_closeWindowButton' title='"+thickboxL10n.close+"'><div class='tb-close-icon'></div></a></div>");
 
 			jQuery("#TB_closeWindowButton").click(tb_remove);
 
@@ -200,7 +197,7 @@
 					urlNoQuery = url.split('TB_');
 					jQuery("#TB_iframeContent").remove();
 					if(params['modal'] != "true"){//iframe no modal
-						jQuery("#TB_window").append("<div id='TB_title'><div id='TB_ajaxWindowTitle'>"+caption+"</div><div id='TB_closeAjaxWindow'><a href='#' id='TB_closeWindowButton' title='"+thickboxL10n.close+"'><img src='" + tb_closeImage + "' /></a></div></div><iframe frameborder='0' hspace='0' src='"+urlNoQuery[0]+"' id='TB_iframeContent' name='TB_iframeContent"+Math.round(Math.random()*1000)+"' onload='tb_showIframe()' style='width:"+(ajaxContentW + 29)+"px;height:"+(ajaxContentH + 17)+"px;' >"+thickboxL10n.noiframes+"</iframe>");
+						jQuery("#TB_window").append("<div id='TB_title'><div id='TB_ajaxWindowTitle'>"+caption+"</div><div id='TB_closeAjaxWindow'><a href='#' id='TB_closeWindowButton' title='"+thickboxL10n.close+"'><div class='tb-close-icon'></div></a></div></div><iframe frameborder='0' hspace='0' src='"+urlNoQuery[0]+"' id='TB_iframeContent' name='TB_iframeContent"+Math.round(Math.random()*1000)+"' onload='tb_showIframe()' style='width:"+(ajaxContentW + 29)+"px;height:"+(ajaxContentH + 17)+"px;' >"+thickboxL10n.noiframes+"</iframe>");
 					}else{//iframe modal
 					jQuery("#TB_overlay").unbind();
 						jQuery("#TB_window").append("<iframe frameborder='0' hspace='0' src='"+urlNoQuery[0]+"' id='TB_iframeContent' name='TB_iframeContent"+Math.round(Math.random()*1000)+"' onload='tb_showIframe()' style='width:"+(ajaxContentW + 29)+"px;height:"+(ajaxContentH + 17)+"px;'>"+thickboxL10n.noiframes+"</iframe>");
@@ -208,7 +205,7 @@
 			}else{// not an iframe, ajax
 					if(jQuery("#TB_window").css("visibility") != "visible"){
 						if(params['modal'] != "true"){//ajax no modal
-						jQuery("#TB_window").append("<div id='TB_title'><div id='TB_ajaxWindowTitle'>"+caption+"</div><div id='TB_closeAjaxWindow'><a href='#' id='TB_closeWindowButton'><img src='" + tb_closeImage + "' /></a></div></div><div id='TB_ajaxContent' style='width:"+ajaxContentW+"px;height:"+ajaxContentH+"px'></div>");
+						jQuery("#TB_window").append("<div id='TB_title'><div id='TB_ajaxWindowTitle'>"+caption+"</div><div id='TB_closeAjaxWindow'><a href='#' id='TB_closeWindowButton'><div class='tb-close-icon'></div></a></div></div><div id='TB_ajaxContent' style='width:"+ajaxContentW+"px;height:"+ajaxContentH+"px'></div>");
 						}else{//ajax modal
 						jQuery("#TB_overlay").unbind();
 						jQuery("#TB_window").append("<div id='TB_ajaxContent' class='TB_modal' style='width:"+ajaxContentW+"px;height:"+ajaxContentH+"px;'></div>");
--- a/web/wp-includes/js/tinymce/langs/wp-langs-en.js	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/js/tinymce/langs/wp-langs-en.js	Wed Dec 19 17:46:52 2012 -0800
@@ -106,7 +106,7 @@
 download:"ieSpell not detected. Do you want to install it now?"
 },
 advhr:{
-advhr_desc:"Horizontale rule"
+advhr_desc:"Horizontal rule"
 },
 emotions:{
 emotions_desc:"Emotions"
@@ -278,7 +278,7 @@
 clipboard_msg:"Copy/Cut/Paste is not available in Mozilla and Firefox.",
 path:"Path",
 newdocument:"Are you sure you want to clear all contents?",
-toolbar_focus:"Jump to tool buttons - Alt + Q, Jump to editor - Alt-Z, Jump to element path - Alt-X",
+toolbar_focus:"Jump to tool buttons - Alt+Q, Jump to editor - Alt-Z, Jump to element path - Alt-X",
 more_colors:"More colors",
 shortcuts_desc:"Accessibility Help",
 help_shortcut:" Press ALT F10 for toolbar. Press ALT 0 for help.",
@@ -400,7 +400,7 @@
 rate:"Rate",
 uimode:"UI Mode",
 flash_options:"Flash options",
-qt_options:"Quicktime options",
+qt_options:"QuickTime options",
 wmp_options:"Windows media player options",
 rmp_options:"Real media player options",
 shockwave_options:"Shockwave options",
@@ -463,7 +463,8 @@
 add_video:"Add Video",
 add_audio:"Add Audio",
 editgallery:"Edit Gallery",
-delgallery:"Delete Gallery"
+delgallery:"Delete Gallery",
+wp_fullscreen_desc:"Distraction Free Writing mode (Alt + Shift + W)"
 });
 
 tinyMCE.addI18n("en.wpeditimage",{
@@ -499,5 +500,5 @@
 s130:"130%",
 img_title:"Title",
 caption:"Caption",
-alt:"Alternate Text"
+alt:"Alternative Text"
 });
--- a/web/wp-includes/js/tinymce/langs/wp-langs.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/js/tinymce/langs/wp-langs.php	Wed Dec 19 17:46:52 2012 -0800
@@ -3,14 +3,14 @@
 if ( ! defined( 'ABSPATH' ) )
 	exit;
 
+if ( ! class_exists( '_WP_Editors' ) )
+	require( ABSPATH . WPINC . '/class-wp-editor.php' );
+
 // deprecated, not used
 function mce_escape($text) {
 	return esc_js($text);
 }
 
-if ( ! class_exists( '_WP_Editors' ) )
-	require( ABSPATH . WPINC . '/class-wp-editor.php' );
-
 function wp_mce_translation() {
 
 	$default = array(
@@ -132,7 +132,7 @@
 		),
 
 		'advhr' => array(
-			'advhr_desc' => __('Horizontale rule')
+			'advhr_desc' => __('Horizontal rule')
 		),
 
 		'emotions' => array(
@@ -446,7 +446,7 @@
 		'rate' => __('Rate'),
 		'uimode' => __('UI Mode'),
 		'flash_options' => __('Flash options'),
-		'qt_options' => __('Quicktime options'),
+		'qt_options' => __('QuickTime options'),
 		'wmp_options' => __('Windows media player options'),
 		'rmp_options' => __('Real media player options'),
 		'shockwave_options' => __('Shockwave options'),
@@ -509,7 +509,8 @@
 		'add_video' => __('Add Video'),
 		'add_audio' => __('Add Audio'),
 		'editgallery' => __('Edit Gallery'),
-		'delgallery' => __('Delete Gallery')
+		'delgallery' => __('Delete Gallery'),
+		'wp_fullscreen_desc' => __('Distraction Free Writing mode (Alt + Shift + W)')
 	);
 
 	$wpeditimage = array(
@@ -545,7 +546,7 @@
 		's130' => __('130%'),
 		'img_title' => __('Title'),
 		'caption' => __('Caption'),
-		'alt' => __('Alternate Text')
+		'alt' => __('Alternative Text')
 	);
 
 	$locale = _WP_Editors::$mce_locale;
--- a/web/wp-includes/js/tinymce/plugins/directionality/editor_plugin.js	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/js/tinymce/plugins/directionality/editor_plugin.js	Wed Dec 19 17:46:52 2012 -0800
@@ -1,1 +1,1 @@
-(function(){tinymce.create("tinymce.plugins.Directionality",{init:function(a,b){var c=this;c.editor=a;a.addCommand("mceDirectionLTR",function(){var d=a.dom.getParent(a.selection.getNode(),a.dom.isBlock);if(d){if(a.dom.getAttrib(d,"dir")!="ltr"){a.dom.setAttrib(d,"dir","ltr")}else{a.dom.setAttrib(d,"dir","")}}a.nodeChanged()});a.addCommand("mceDirectionRTL",function(){var d=a.dom.getParent(a.selection.getNode(),a.dom.isBlock);if(d){if(a.dom.getAttrib(d,"dir")!="rtl"){a.dom.setAttrib(d,"dir","rtl")}else{a.dom.setAttrib(d,"dir","")}}a.nodeChanged()});a.addButton("ltr",{title:"directionality.ltr_desc",cmd:"mceDirectionLTR"});a.addButton("rtl",{title:"directionality.rtl_desc",cmd:"mceDirectionRTL"});a.onNodeChange.add(c._nodeChange,c)},getInfo:function(){return{longname:"Directionality",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/directionality",version:tinymce.majorVersion+"."+tinymce.minorVersion}},_nodeChange:function(b,a,e){var d=b.dom,c;e=d.getParent(e,d.isBlock);if(!e){a.setDisabled("ltr",1);a.setDisabled("rtl",1);return}c=d.getAttrib(e,"dir");a.setActive("ltr",c=="ltr");a.setDisabled("ltr",0);a.setActive("rtl",c=="rtl");a.setDisabled("rtl",0)}});tinymce.PluginManager.add("directionality",tinymce.plugins.Directionality)})();
\ No newline at end of file
+(function(){tinymce.create("tinymce.plugins.Directionality",{init:function(b,c){var d=this;d.editor=b;function a(e){var h=b.dom,g,f=b.selection.getSelectedBlocks();if(f.length){g=h.getAttrib(f[0],"dir");tinymce.each(f,function(i){if(!h.getParent(i.parentNode,"*[dir='"+e+"']",h.getRoot())){if(g!=e){h.setAttrib(i,"dir",e)}else{h.setAttrib(i,"dir",null)}}});b.nodeChanged()}}b.addCommand("mceDirectionLTR",function(){a("ltr")});b.addCommand("mceDirectionRTL",function(){a("rtl")});b.addButton("ltr",{title:"directionality.ltr_desc",cmd:"mceDirectionLTR"});b.addButton("rtl",{title:"directionality.rtl_desc",cmd:"mceDirectionRTL"});b.onNodeChange.add(d._nodeChange,d)},getInfo:function(){return{longname:"Directionality",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/directionality",version:tinymce.majorVersion+"."+tinymce.minorVersion}},_nodeChange:function(b,a,e){var d=b.dom,c;e=d.getParent(e,d.isBlock);if(!e){a.setDisabled("ltr",1);a.setDisabled("rtl",1);return}c=d.getAttrib(e,"dir");a.setActive("ltr",c=="ltr");a.setDisabled("ltr",0);a.setActive("rtl",c=="rtl");a.setDisabled("rtl",0)}});tinymce.PluginManager.add("directionality",tinymce.plugins.Directionality)})();
\ No newline at end of file
--- a/web/wp-includes/js/tinymce/plugins/directionality/editor_plugin_src.js	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/js/tinymce/plugins/directionality/editor_plugin_src.js	Wed Dec 19 17:46:52 2012 -0800
@@ -15,30 +15,33 @@
 
 			t.editor = ed;
 
-			ed.addCommand('mceDirectionLTR', function() {
-				var e = ed.dom.getParent(ed.selection.getNode(), ed.dom.isBlock);
+			function setDir(dir) {
+				var dom = ed.dom, curDir, blocks = ed.selection.getSelectedBlocks();
+
+				if (blocks.length) {
+					curDir = dom.getAttrib(blocks[0], "dir");
 
-				if (e) {
-					if (ed.dom.getAttrib(e, "dir") != "ltr")
-						ed.dom.setAttrib(e, "dir", "ltr");
-					else
-						ed.dom.setAttrib(e, "dir", "");
+					tinymce.each(blocks, function(block) {
+						// Add dir to block if the parent block doesn't already have that dir
+						if (!dom.getParent(block.parentNode, "*[dir='" + dir + "']", dom.getRoot())) {
+							if (curDir != dir) {
+								dom.setAttrib(block, "dir", dir);
+							} else {
+								dom.setAttrib(block, "dir", null);
+							}
+						}
+					});
+
+					ed.nodeChanged();
 				}
+			}
 
-				ed.nodeChanged();
+			ed.addCommand('mceDirectionLTR', function() {
+				setDir("ltr");
 			});
 
 			ed.addCommand('mceDirectionRTL', function() {
-				var e = ed.dom.getParent(ed.selection.getNode(), ed.dom.isBlock);
-
-				if (e) {
-					if (ed.dom.getAttrib(e, "dir") != "rtl")
-						ed.dom.setAttrib(e, "dir", "rtl");
-					else
-						ed.dom.setAttrib(e, "dir", "");
-				}
-
-				ed.nodeChanged();
+				setDir("rtl");
 			});
 
 			ed.addButton('ltr', {title : 'directionality.ltr_desc', cmd : 'mceDirectionLTR'});
--- a/web/wp-includes/js/tinymce/plugins/fullscreen/editor_plugin.js	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/js/tinymce/plugins/fullscreen/editor_plugin.js	Wed Dec 19 17:46:52 2012 -0800
@@ -1,1 +1,1 @@
-(function(){var a=tinymce.DOM;tinymce.create("tinymce.plugins.FullScreenPlugin",{init:function(d,e){var f=this,g={},c,b;f.editor=d;d.addCommand("mceFullScreen",function(){var i,j=a.doc.documentElement;if(d.getParam("fullscreen_is_enabled")){if(d.getParam("fullscreen_new_window")){closeFullscreen()}else{a.win.setTimeout(function(){tinymce.dom.Event.remove(a.win,"resize",f.resizeFunc);tinyMCE.get(d.getParam("fullscreen_editor_id")).setContent(d.getContent());tinyMCE.remove(d);a.remove("mce_fullscreen_container");j.style.overflow=d.getParam("fullscreen_html_overflow");a.setStyle(a.doc.body,"overflow",d.getParam("fullscreen_overflow"));a.win.scrollTo(d.getParam("fullscreen_scrollx"),d.getParam("fullscreen_scrolly"));tinyMCE.settings=tinyMCE.oldSettings},10)}return}if(d.getParam("fullscreen_new_window")){i=a.win.open(e+"/fullscreen.htm","mceFullScreenPopup","fullscreen=yes,menubar=no,toolbar=no,scrollbars=no,resizable=yes,left=0,top=0,width="+screen.availWidth+",height="+screen.availHeight);try{i.resizeTo(screen.availWidth,screen.availHeight)}catch(h){}}else{tinyMCE.oldSettings=tinyMCE.settings;g.fullscreen_overflow=a.getStyle(a.doc.body,"overflow",1)||"auto";g.fullscreen_html_overflow=a.getStyle(j,"overflow",1);c=a.getViewPort();g.fullscreen_scrollx=c.x;g.fullscreen_scrolly=c.y;if(tinymce.isOpera&&g.fullscreen_overflow=="visible"){g.fullscreen_overflow="auto"}if(tinymce.isIE&&g.fullscreen_overflow=="scroll"){g.fullscreen_overflow="auto"}if(tinymce.isIE&&(g.fullscreen_html_overflow=="visible"||g.fullscreen_html_overflow=="scroll")){g.fullscreen_html_overflow="auto"}if(g.fullscreen_overflow=="0px"){g.fullscreen_overflow=""}a.setStyle(a.doc.body,"overflow","hidden");j.style.overflow="hidden";c=a.getViewPort();a.win.scrollTo(0,0);if(tinymce.isIE){c.h-=1}if(tinymce.isIE6){b="absolute;top:"+c.y}else{b="fixed;top:0"}n=a.add(a.doc.body,"div",{id:"mce_fullscreen_container",style:"position:"+b+";left:0;width:"+c.w+"px;height:"+c.h+"px;z-index:200000;"});a.add(n,"div",{id:"mce_fullscreen"});tinymce.each(d.settings,function(k,l){g[l]=k});g.id="mce_fullscreen";g.width=n.clientWidth;g.height=n.clientHeight-15;g.fullscreen_is_enabled=true;g.fullscreen_editor_id=d.id;g.theme_advanced_resizing=false;g.save_onsavecallback=function(){d.setContent(tinyMCE.get(g.id).getContent());d.execCommand("mceSave")};tinymce.each(d.getParam("fullscreen_settings"),function(m,l){g[l]=m});if(g.theme_advanced_toolbar_location==="external"){g.theme_advanced_toolbar_location="top"}f.fullscreenEditor=new tinymce.Editor("mce_fullscreen",g);f.fullscreenEditor.onInit.add(function(){f.fullscreenEditor.setContent(d.getContent());f.fullscreenEditor.focus()});f.fullscreenEditor.render();f.fullscreenElement=new tinymce.dom.Element("mce_fullscreen_container");f.fullscreenElement.update();f.resizeFunc=tinymce.dom.Event.add(a.win,"resize",function(){var o=tinymce.DOM.getViewPort(),l=f.fullscreenEditor,k,m;k=l.dom.getSize(l.getContainer().firstChild);m=l.dom.getSize(l.getContainer().getElementsByTagName("iframe")[0]);l.theme.resizeTo(o.w-k.w+m.w,o.h-k.h+m.h)})}});d.addButton("fullscreen",{title:"fullscreen.desc",cmd:"mceFullScreen"});d.onNodeChange.add(function(i,h){h.setActive("fullscreen",i.getParam("fullscreen_is_enabled"))})},getInfo:function(){return{longname:"Fullscreen",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/fullscreen",version:tinymce.majorVersion+"."+tinymce.minorVersion}}});tinymce.PluginManager.add("fullscreen",tinymce.plugins.FullScreenPlugin)})();
\ No newline at end of file
+(function(){var a=tinymce.DOM;tinymce.create("tinymce.plugins.FullScreenPlugin",{init:function(d,e){var f=this,g={},c,b;f.editor=d;d.addCommand("mceFullScreen",function(){var i,j=a.doc.documentElement;if(d.getParam("fullscreen_is_enabled")){if(d.getParam("fullscreen_new_window")){closeFullscreen()}else{a.win.setTimeout(function(){tinymce.dom.Event.remove(a.win,"resize",f.resizeFunc);tinyMCE.get(d.getParam("fullscreen_editor_id")).setContent(d.getContent());tinyMCE.remove(d);a.remove("mce_fullscreen_container");j.style.overflow=d.getParam("fullscreen_html_overflow");a.setStyle(a.doc.body,"overflow",d.getParam("fullscreen_overflow"));a.win.scrollTo(d.getParam("fullscreen_scrollx"),d.getParam("fullscreen_scrolly"));tinyMCE.settings=tinyMCE.oldSettings},10)}return}if(d.getParam("fullscreen_new_window")){i=a.win.open(e+"/fullscreen.htm","mceFullScreenPopup","fullscreen=yes,menubar=no,toolbar=no,scrollbars=no,resizable=yes,left=0,top=0,width="+screen.availWidth+",height="+screen.availHeight);try{i.resizeTo(screen.availWidth,screen.availHeight)}catch(h){}}else{tinyMCE.oldSettings=tinyMCE.settings;g.fullscreen_overflow=a.getStyle(a.doc.body,"overflow",1)||"auto";g.fullscreen_html_overflow=a.getStyle(j,"overflow",1);c=a.getViewPort();g.fullscreen_scrollx=c.x;g.fullscreen_scrolly=c.y;if(tinymce.isOpera&&g.fullscreen_overflow=="visible"){g.fullscreen_overflow="auto"}if(tinymce.isIE&&g.fullscreen_overflow=="scroll"){g.fullscreen_overflow="auto"}if(tinymce.isIE&&(g.fullscreen_html_overflow=="visible"||g.fullscreen_html_overflow=="scroll")){g.fullscreen_html_overflow="auto"}if(g.fullscreen_overflow=="0px"){g.fullscreen_overflow=""}a.setStyle(a.doc.body,"overflow","hidden");j.style.overflow="hidden";c=a.getViewPort();a.win.scrollTo(0,0);if(tinymce.isIE){c.h-=1}if(tinymce.isIE6||document.compatMode=="BackCompat"){b="absolute;top:"+c.y}else{b="fixed;top:0"}n=a.add(a.doc.body,"div",{id:"mce_fullscreen_container",style:"position:"+b+";left:0;width:"+c.w+"px;height:"+c.h+"px;z-index:200000;"});a.add(n,"div",{id:"mce_fullscreen"});tinymce.each(d.settings,function(k,l){g[l]=k});g.id="mce_fullscreen";g.width=n.clientWidth;g.height=n.clientHeight-15;g.fullscreen_is_enabled=true;g.fullscreen_editor_id=d.id;g.theme_advanced_resizing=false;g.save_onsavecallback=function(){d.setContent(tinyMCE.get(g.id).getContent());d.execCommand("mceSave")};tinymce.each(d.getParam("fullscreen_settings"),function(m,l){g[l]=m});if(g.theme_advanced_toolbar_location==="external"){g.theme_advanced_toolbar_location="top"}f.fullscreenEditor=new tinymce.Editor("mce_fullscreen",g);f.fullscreenEditor.onInit.add(function(){f.fullscreenEditor.setContent(d.getContent());f.fullscreenEditor.focus()});f.fullscreenEditor.render();f.fullscreenElement=new tinymce.dom.Element("mce_fullscreen_container");f.fullscreenElement.update();f.resizeFunc=tinymce.dom.Event.add(a.win,"resize",function(){var o=tinymce.DOM.getViewPort(),l=f.fullscreenEditor,k,m;k=l.dom.getSize(l.getContainer().getElementsByTagName("table")[0]);m=l.dom.getSize(l.getContainer().getElementsByTagName("iframe")[0]);l.theme.resizeTo(o.w-k.w+m.w,o.h-k.h+m.h)})}});d.addButton("fullscreen",{title:"fullscreen.desc",cmd:"mceFullScreen"});d.onNodeChange.add(function(i,h){h.setActive("fullscreen",i.getParam("fullscreen_is_enabled"))})},getInfo:function(){return{longname:"Fullscreen",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/fullscreen",version:tinymce.majorVersion+"."+tinymce.minorVersion}}});tinymce.PluginManager.add("fullscreen",tinymce.plugins.FullScreenPlugin)})();
\ No newline at end of file
--- a/web/wp-includes/js/tinymce/plugins/fullscreen/editor_plugin_src.js	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/js/tinymce/plugins/fullscreen/editor_plugin_src.js	Wed Dec 19 17:46:52 2012 -0800
@@ -65,7 +65,7 @@
 
 					// Fixes an IE bug where the scrollbars doesn't reappear
 					if (tinymce.isIE && (s.fullscreen_html_overflow == 'visible' || s.fullscreen_html_overflow == 'scroll'))
-						s.fullscreen_html_overflow = 'auto'; 
+						s.fullscreen_html_overflow = 'auto';
 
 					if (s.fullscreen_overflow == '0px')
 						s.fullscreen_overflow = '';
@@ -79,13 +79,13 @@
 						vp.h -= 1;
 
 					// Use fixed position if it exists
-					if (tinymce.isIE6)
+					if (tinymce.isIE6 || document.compatMode == 'BackCompat')
 						posCss = 'absolute;top:' + vp.y;
 					else
 						posCss = 'fixed;top:0';
 
 					n = DOM.add(DOM.doc.body, 'div', {
-						id : 'mce_fullscreen_container', 
+						id : 'mce_fullscreen_container',
 						style : 'position:' + posCss + ';left:0;width:' + vp.w + 'px;height:' + vp.h + 'px;z-index:200000;'});
 					DOM.add(n, 'div', {id : 'mce_fullscreen'});
 
@@ -127,7 +127,7 @@
 						var vp = tinymce.DOM.getViewPort(), fed = t.fullscreenEditor, outerSize, innerSize;
 
 						// Get outer/inner size to get a delta size that can be used to calc the new iframe size
-						outerSize = fed.dom.getSize(fed.getContainer().firstChild);
+						outerSize = fed.dom.getSize(fed.getContainer().getElementsByTagName('table')[0]);
 						innerSize = fed.dom.getSize(fed.getContainer().getElementsByTagName('iframe')[0]);
 
 						fed.theme.resizeTo(vp.w - outerSize.w + innerSize.w, vp.h - outerSize.h + innerSize.h);
@@ -156,4 +156,4 @@
 
 	// Register plugin
 	tinymce.PluginManager.add('fullscreen', tinymce.plugins.FullScreenPlugin);
-})();
\ No newline at end of file
+})();
--- a/web/wp-includes/js/tinymce/plugins/fullscreen/fullscreen.htm	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/js/tinymce/plugins/fullscreen/fullscreen.htm	Wed Dec 19 17:46:52 2012 -0800
@@ -3,7 +3,7 @@
 <head>
 	<title></title>
 	<meta http-equiv="X-UA-Compatible" content="IE=edge" />
-	<script type="text/javascript" src="../../tiny_mce.js?ver=349-20120314"></script>
+	<script type="text/javascript" src="../../tiny_mce.js?ver=358-20121205"></script>
 	<script type="text/javascript">
 		function patchCallback(settings, key) {
 			if (settings[key])
Binary file web/wp-includes/js/tinymce/plugins/inlinepopups/skins/clearlooks2/img/alert.gif has changed
Binary file web/wp-includes/js/tinymce/plugins/inlinepopups/skins/clearlooks2/img/button.gif has changed
Binary file web/wp-includes/js/tinymce/plugins/inlinepopups/skins/clearlooks2/img/confirm.gif has changed
Binary file web/wp-includes/js/tinymce/plugins/inlinepopups/skins/clearlooks2/img/corners.gif has changed
Binary file web/wp-includes/js/tinymce/plugins/inlinepopups/skins/clearlooks2/img/drag.gif has changed
Binary file web/wp-includes/js/tinymce/plugins/inlinepopups/skins/clearlooks2/img/vertical.gif has changed
--- a/web/wp-includes/js/tinymce/plugins/inlinepopups/template.htm	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/js/tinymce/plugins/inlinepopups/template.htm	Wed Dec 19 17:46:52 2012 -0800
@@ -2,7 +2,7 @@
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 <title>Template for dialogs</title>
-<link rel="stylesheet" type="text/css" href="skins/clearlooks2/window.css?ver=349-20120314" />
+<link rel="stylesheet" type="text/css" href="skins/clearlooks2/window.css?ver=358-20121205" />
 </head>
 <body>
 
--- a/web/wp-includes/js/tinymce/plugins/media/editor_plugin.js	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/js/tinymce/plugins/media/editor_plugin.js	Wed Dec 19 17:46:52 2012 -0800
@@ -1,1 +1,1 @@
-(function(){var d=tinymce.explode("id,name,width,height,style,align,class,hspace,vspace,bgcolor,type"),h=tinymce.makeMap(d.join(",")),b=tinymce.html.Node,f,a,g=tinymce.util.JSON,e;f=[["Flash","d27cdb6e-ae6d-11cf-96b8-444553540000","application/x-shockwave-flash","http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"],["ShockWave","166b1bca-3f9c-11cf-8075-444553540000","application/x-director","http://download.macromedia.com/pub/shockwave/cabs/director/sw.cab#version=8,5,1,0"],["WindowsMedia","6bf52a52-394a-11d3-b153-00c04f79faa6,22d6f312-b0f6-11d0-94ab-0080c74c7e95,05589fa1-c356-11ce-bf01-00aa0055595a","application/x-mplayer2","http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=5,1,52,701"],["QuickTime","02bf25d5-8c17-4b23-bc80-d3488abddc6b","video/quicktime","http://www.apple.com/qtactivex/qtplugin.cab#version=6,0,2,0"],["RealMedia","cfcdaa03-8be4-11cf-b84b-0020afbbccfa","audio/x-pn-realaudio-plugin","http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"],["Java","8ad9c840-044e-11d1-b3e9-00805f499d93","application/x-java-applet","http://java.sun.com/products/plugin/autodl/jinstall-1_5_0-windows-i586.cab#Version=1,5,0,0"],["Silverlight","dfeaf541-f3e1-4c24-acac-99c30715084a","application/x-silverlight-2"],["Iframe"],["Video"],["EmbeddedAudio"],["Audio"]];function c(m){var l,j,k;if(m&&!m.splice){j=[];for(k=0;true;k++){if(m[k]){j[k]=m[k]}else{break}}return j}return m}tinymce.create("tinymce.plugins.MediaPlugin",{init:function(n,j){var r=this,l={},m,p,q,k;function o(i){return i&&i.nodeName==="IMG"&&n.dom.hasClass(i,"mceItemMedia")}r.editor=n;r.url=j;a="";for(m=0;m<f.length;m++){k=f[m][0];q={name:k,clsids:tinymce.explode(f[m][1]||""),mimes:tinymce.explode(f[m][2]||""),codebase:f[m][3]};for(p=0;p<q.clsids.length;p++){l["clsid:"+q.clsids[p]]=q}for(p=0;p<q.mimes.length;p++){l[q.mimes[p]]=q}l["mceItem"+k]=q;l[k.toLowerCase()]=q;a+=(a?"|":"")+k}tinymce.each(n.getParam("media_types","video=mp4,m4v,ogv,webm;silverlight=xap;flash=swf,flv;shockwave=dcr;quicktime=mov,qt,mpg,mpeg;shockwave=dcr;windowsmedia=avi,wmv,wm,asf,asx,wmx,wvx;realmedia=rm,ra,ram;java=jar;audio=mp3,ogg").split(";"),function(v){var s,u,t;v=v.split(/=/);u=tinymce.explode(v[1].toLowerCase());for(s=0;s<u.length;s++){t=l[v[0].toLowerCase()];if(t){l[u[s]]=t}}});a=new RegExp("write("+a+")\\(([^)]+)\\)");r.lookup=l;n.onPreInit.add(function(){n.schema.addValidElements("object[id|style|width|height|classid|codebase|*],param[name|value],embed[id|style|width|height|type|src|*],video[*],audio[*],source[*]");n.parser.addNodeFilter("object,embed,video,audio,script,iframe",function(s){var t=s.length;while(t--){r.objectToImg(s[t])}});n.serializer.addNodeFilter("img",function(s,u,t){var v=s.length,w;while(v--){w=s[v];if((w.attr("class")||"").indexOf("mceItemMedia")!==-1){r.imgToObject(w,t)}}})});n.onInit.add(function(){if(n.theme&&n.theme.onResolveName){n.theme.onResolveName.add(function(i,s){if(s.name==="img"&&n.dom.hasClass(s.node,"mceItemMedia")){s.name="media"}})}if(n&&n.plugins.contextmenu){n.plugins.contextmenu.onContextMenu.add(function(s,t,i){if(i.nodeName==="IMG"&&i.className.indexOf("mceItemMedia")!==-1){t.add({title:"media.edit",icon:"media",cmd:"mceMedia"})}})}});n.addCommand("mceMedia",function(){var s,i;i=n.selection.getNode();if(o(i)){s=n.dom.getAttrib(i,"data-mce-json");if(s){s=g.parse(s);tinymce.each(d,function(t){var u=n.dom.getAttrib(i,t);if(u){s[t]=u}});s.type=r.getType(i.className).name.toLowerCase()}}if(!s){s={type:"flash",video:{sources:[]},params:{}}}n.windowManager.open({file:j+"/media.htm",width:430+parseInt(n.getLang("media.delta_width",0)),height:500+parseInt(n.getLang("media.delta_height",0)),inline:1},{plugin_url:j,data:s})});n.addButton("media",{title:"media.desc",cmd:"mceMedia"});n.onNodeChange.add(function(s,i,t){i.setActive("media",o(t))})},convertUrl:function(k,n){var j=this,m=j.editor,l=m.settings,o=l.url_converter,i=l.url_converter_scope||j;if(!k){return k}if(n){return m.documentBaseURI.toAbsolute(k)}return o.call(i,k,"src","object")},getInfo:function(){return{longname:"Media",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/media",version:tinymce.majorVersion+"."+tinymce.minorVersion}},dataToImg:function(m,k){var r=this,o=r.editor,p=o.documentBaseURI,j,q,n,l;m.params.src=r.convertUrl(m.params.src,k);q=m.video.attrs;if(q){q.src=r.convertUrl(q.src,k)}if(q){q.poster=r.convertUrl(q.poster,k)}j=c(m.video.sources);if(j){for(l=0;l<j.length;l++){j[l].src=r.convertUrl(j[l].src,k)}}n=r.editor.dom.create("img",{id:m.id,style:m.style,align:m.align,hspace:m.hspace,vspace:m.vspace,src:r.editor.theme.url+"/img/trans.gif","class":"mceItemMedia mceItem"+r.getType(m.type).name,"data-mce-json":g.serialize(m,"'")});n.width=m.width||(m.type=="audio"?"300":"320");n.height=m.height||(m.type=="audio"?"32":"240");return n},dataToHtml:function(i,j){return this.editor.serializer.serialize(this.dataToImg(i,j),{forced_root_block:"",force_absolute:j})},htmlToData:function(k){var j,i,l;l={type:"flash",video:{sources:[]},params:{}};j=this.editor.parser.parse(k);i=j.getAll("img")[0];if(i){l=g.parse(i.attr("data-mce-json"));l.type=this.getType(i.attr("class")).name.toLowerCase();tinymce.each(d,function(m){var n=i.attr(m);if(n){l[m]=n}})}return l},getType:function(m){var k,j,l;j=tinymce.explode(m," ");for(k=0;k<j.length;k++){l=this.lookup[j[k]];if(l){return l}}},imgToObject:function(z,o){var u=this,p=u.editor,C,H,j,t,I,y,G,w,k,E,s,q,A,D,m,x,l,B,F;function r(i,n){var M,L,N,K,J;J=p.getParam("flash_video_player_url",u.convertUrl(u.url+"/moxieplayer.swf"));if(J){M=p.documentBaseURI;G.params.src=J;if(p.getParam("flash_video_player_absvideourl",true)){i=M.toAbsolute(i||"",true);n=M.toAbsolute(n||"",true)}N="";L=p.getParam("flash_video_player_flashvars",{url:"$url",poster:"$poster"});tinymce.each(L,function(P,O){P=P.replace(/\$url/,i||"");P=P.replace(/\$poster/,n||"");if(P.length>0){N+=(N?"&":"")+O+"="+escape(P)}});if(N.length){G.params.flashvars=N}K=p.getParam("flash_video_player_params",{allowfullscreen:true,allowscriptaccess:true});tinymce.each(K,function(P,O){G.params[O]=""+P})}}G=z.attr("data-mce-json");if(!G){return}G=g.parse(G);q=this.getType(z.attr("class"));B=z.attr("data-mce-style");if(!B){B=z.attr("style");if(B){B=p.dom.serializeStyle(p.dom.parseStyle(B,"img"))}}if(q.name==="Iframe"){x=new b("iframe",1);tinymce.each(d,function(i){var n=z.attr(i);if(i=="class"&&n){n=n.replace(/mceItem.+ ?/g,"")}if(n&&n.length>0){x.attr(i,n)}});for(I in G.params){x.attr(I,G.params[I])}x.attr({style:B,src:G.params.src});z.replace(x);return}if(this.editor.settings.media_use_script){x=new b("script",1).attr("type","text/javascript");y=new b("#text",3);y.value="write"+q.name+"("+g.serialize(tinymce.extend(G.params,{width:z.attr("width"),height:z.attr("height")}))+");";x.append(y);z.replace(x);return}if(q.name==="Video"&&G.video.sources[0]){C=new b("video",1).attr(tinymce.extend({id:z.attr("id"),width:z.attr("width"),height:z.attr("height"),style:B},G.video.attrs));if(G.video.attrs){l=G.video.attrs.poster}k=G.video.sources=c(G.video.sources);for(A=0;A<k.length;A++){if(/\.mp4$/.test(k[A].src)){m=k[A].src}}if(!k[0].type){C.attr("src",k[0].src);k.splice(0,1)}for(A=0;A<k.length;A++){w=new b("source",1).attr(k[A]);w.shortEnded=true;C.append(w)}if(m){r(m,l);q=u.getType("flash")}else{G.params.src=""}}if(q.name==="Audio"&&G.video.sources[0]){F=new b("audio",1).attr(tinymce.extend({id:z.attr("id"),width:z.attr("width"),height:z.attr("height"),style:B},G.video.attrs));if(G.video.attrs){l=G.video.attrs.poster}k=G.video.sources=c(G.video.sources);if(!k[0].type){F.attr("src",k[0].src);k.splice(0,1)}for(A=0;A<k.length;A++){w=new b("source",1).attr(k[A]);w.shortEnded=true;F.append(w)}G.params.src=""}if(q.name==="EmbeddedAudio"){j=new b("embed",1);j.shortEnded=true;j.attr({id:z.attr("id"),width:z.attr("width"),height:z.attr("height"),style:B,type:z.attr("type")});for(I in G.params){j.attr(I,G.params[I])}tinymce.each(d,function(i){if(G[i]&&i!="type"){j.attr(i,G[i])}});G.params.src=""}if(G.params.src){if(/\.flv$/i.test(G.params.src)){r(G.params.src,"")}if(o&&o.force_absolute){G.params.src=p.documentBaseURI.toAbsolute(G.params.src)}H=new b("object",1).attr({id:z.attr("id"),width:z.attr("width"),height:z.attr("height"),style:B});tinymce.each(d,function(i){var n=G[i];if(i=="class"&&n){n=n.replace(/mceItem.+ ?/g,"")}if(n&&i!="type"){H.attr(i,n)}});for(I in G.params){s=new b("param",1);s.shortEnded=true;y=G.params[I];if(I==="src"&&q.name==="WindowsMedia"){I="url"}s.attr({name:I,value:y});H.append(s)}if(this.editor.getParam("media_strict",true)){H.attr({data:G.params.src,type:q.mimes[0]})}else{H.attr({classid:"clsid:"+q.clsids[0],codebase:q.codebase});j=new b("embed",1);j.shortEnded=true;j.attr({id:z.attr("id"),width:z.attr("width"),height:z.attr("height"),style:B,type:q.mimes[0]});for(I in G.params){j.attr(I,G.params[I])}tinymce.each(d,function(i){if(G[i]&&i!="type"){j.attr(i,G[i])}});H.append(j)}if(G.object_html){y=new b("#text",3);y.raw=true;y.value=G.object_html;H.append(y)}if(C){C.append(H)}}if(C){if(G.video_html){y=new b("#text",3);y.raw=true;y.value=G.video_html;C.append(y)}}if(F){if(G.video_html){y=new b("#text",3);y.raw=true;y.value=G.video_html;F.append(y)}}var v=C||F||H||j;if(v){z.replace(v)}else{z.remove()}},objectToImg:function(C){var L,k,F,s,M,N,y,A,x,G,E,t,q,I,B,l,K,o,H=this.lookup,m,z,v=this.editor.settings.url_converter,n=this.editor.settings.url_converter_scope,w,r,D,j;function u(i){return new tinymce.html.Serializer({inner:true,validate:false}).serialize(i)}function J(O,i){return H[(O.attr(i)||"").toLowerCase()]}function p(O){var i=O.replace(/^.*\.([^.]+)$/,"$1");return H[i.toLowerCase()||""]}if(!C.parent){return}if(C.name==="script"){if(C.firstChild){m=a.exec(C.firstChild.value)}if(!m){return}o=m[1];K={video:{},params:g.parse(m[2])};A=K.params.width;x=K.params.height}K=K||{video:{},params:{}};M=new b("img",1);M.attr({src:this.editor.theme.url+"/img/trans.gif"});N=C.name;if(N==="video"||N=="audio"){F=C;L=C.getAll("object")[0];k=C.getAll("embed")[0];A=F.attr("width");x=F.attr("height");y=F.attr("id");K.video={attrs:{},sources:[]};z=K.video.attrs;for(N in F.attributes.map){z[N]=F.attributes.map[N]}B=C.attr("src");if(B){K.video.sources.push({src:v.call(n,B,"src",C.name)})}l=F.getAll("source");for(E=0;E<l.length;E++){B=l[E].remove();K.video.sources.push({src:v.call(n,B.attr("src"),"src","source"),type:B.attr("type"),media:B.attr("media")})}if(z.poster){z.poster=v.call(n,z.poster,"poster",C.name)}}if(C.name==="object"){L=C;k=C.getAll("embed")[0]}if(C.name==="embed"){k=C}if(C.name==="iframe"){s=C;o="Iframe"}if(L){A=A||L.attr("width");x=x||L.attr("height");G=G||L.attr("style");y=y||L.attr("id");w=w||L.attr("hspace");r=r||L.attr("vspace");D=D||L.attr("align");j=j||L.attr("bgcolor");K.name=L.attr("name");I=L.getAll("param");for(E=0;E<I.length;E++){q=I[E];N=q.remove().attr("name");if(!h[N]){K.params[N]=q.attr("value")}}K.params.src=K.params.src||L.attr("data")}if(k){A=A||k.attr("width");x=x||k.attr("height");G=G||k.attr("style");y=y||k.attr("id");w=w||k.attr("hspace");r=r||k.attr("vspace");D=D||k.attr("align");j=j||k.attr("bgcolor");for(N in k.attributes.map){if(!h[N]&&!K.params[N]){K.params[N]=k.attributes.map[N]}}}if(s){A=s.attr("width");x=s.attr("height");G=G||s.attr("style");y=s.attr("id");w=s.attr("hspace");r=s.attr("vspace");D=s.attr("align");j=s.attr("bgcolor");tinymce.each(d,function(i){M.attr(i,s.attr(i))});for(N in s.attributes.map){if(!h[N]&&!K.params[N]){K.params[N]=s.attributes.map[N]}}}if(K.params.movie){K.params.src=K.params.src||K.params.movie;delete K.params.movie}if(K.params.src){K.params.src=v.call(n,K.params.src,"src","object")}if(F){if(C.name==="video"){o=H.video.name}else{if(C.name==="audio"){o=H.audio.name}}}if(L&&!o){o=(J(L,"clsid")||J(L,"classid")||J(L,"type")||{}).name}if(k&&!o){o=(J(k,"type")||p(K.params.src)||{}).name}if(k&&o=="EmbeddedAudio"){K.params.type=k.attr("type")}C.replace(M);if(k){k.remove()}if(L){t=u(L.remove());if(t){K.object_html=t}}if(F){t=u(F.remove());if(t){K.video_html=t}}K.hspace=w;K.vspace=r;K.align=D;K.bgcolor=j;M.attr({id:y,"class":"mceItemMedia mceItem"+(o||"Flash"),style:G,width:A||(C.name=="audio"?"300":"320"),height:x||(C.name=="audio"?"32":"240"),hspace:w,vspace:r,align:D,bgcolor:j,"data-mce-json":g.serialize(K,"'")})}});tinymce.PluginManager.add("media",tinymce.plugins.MediaPlugin)})();
\ No newline at end of file
+(function(){var b=tinymce.explode("id,name,width,height,style,align,class,hspace,vspace,bgcolor,type"),a=tinymce.makeMap(b.join(",")),f=tinymce.html.Node,d,i,h=tinymce.util.JSON,g;d=[["Flash","d27cdb6e-ae6d-11cf-96b8-444553540000","application/x-shockwave-flash","http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"],["ShockWave","166b1bca-3f9c-11cf-8075-444553540000","application/x-director","http://download.macromedia.com/pub/shockwave/cabs/director/sw.cab#version=8,5,1,0"],["WindowsMedia","6bf52a52-394a-11d3-b153-00c04f79faa6,22d6f312-b0f6-11d0-94ab-0080c74c7e95,05589fa1-c356-11ce-bf01-00aa0055595a","application/x-mplayer2","http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=5,1,52,701"],["QuickTime","02bf25d5-8c17-4b23-bc80-d3488abddc6b","video/quicktime","http://www.apple.com/qtactivex/qtplugin.cab#version=6,0,2,0"],["RealMedia","cfcdaa03-8be4-11cf-b84b-0020afbbccfa","audio/x-pn-realaudio-plugin","http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"],["Java","8ad9c840-044e-11d1-b3e9-00805f499d93","application/x-java-applet","http://java.sun.com/products/plugin/autodl/jinstall-1_5_0-windows-i586.cab#Version=1,5,0,0"],["Silverlight","dfeaf541-f3e1-4c24-acac-99c30715084a","application/x-silverlight-2"],["Iframe"],["Video"],["EmbeddedAudio"],["Audio"]];function e(j){return typeof(j)=="string"?j.replace(/[^0-9%]/g,""):j}function c(m){var l,j,k;if(m&&!m.splice){j=[];for(k=0;true;k++){if(m[k]){j[k]=m[k]}else{break}}return j}return m}tinymce.create("tinymce.plugins.MediaPlugin",{init:function(n,j){var r=this,l={},m,p,q,k;function o(s){return s&&s.nodeName==="IMG"&&n.dom.hasClass(s,"mceItemMedia")}r.editor=n;r.url=j;i="";for(m=0;m<d.length;m++){k=d[m][0];q={name:k,clsids:tinymce.explode(d[m][1]||""),mimes:tinymce.explode(d[m][2]||""),codebase:d[m][3]};for(p=0;p<q.clsids.length;p++){l["clsid:"+q.clsids[p]]=q}for(p=0;p<q.mimes.length;p++){l[q.mimes[p]]=q}l["mceItem"+k]=q;l[k.toLowerCase()]=q;i+=(i?"|":"")+k}tinymce.each(n.getParam("media_types","video=mp4,m4v,ogv,webm;silverlight=xap;flash=swf,flv;shockwave=dcr;quicktime=mov,qt,mpg,mpeg;shockwave=dcr;windowsmedia=avi,wmv,wm,asf,asx,wmx,wvx;realmedia=rm,ra,ram;java=jar;audio=mp3,ogg").split(";"),function(v){var s,u,t;v=v.split(/=/);u=tinymce.explode(v[1].toLowerCase());for(s=0;s<u.length;s++){t=l[v[0].toLowerCase()];if(t){l[u[s]]=t}}});i=new RegExp("write("+i+")\\(([^)]+)\\)");r.lookup=l;n.onPreInit.add(function(){n.schema.addValidElements("object[id|style|width|height|classid|codebase|*],param[name|value],embed[id|style|width|height|type|src|*],video[*],audio[*],source[*]");n.parser.addNodeFilter("object,embed,video,audio,script,iframe",function(s){var t=s.length;while(t--){r.objectToImg(s[t])}});n.serializer.addNodeFilter("img",function(s,u,t){var v=s.length,w;while(v--){w=s[v];if((w.attr("class")||"").indexOf("mceItemMedia")!==-1){r.imgToObject(w,t)}}})});n.onInit.add(function(){if(n.theme&&n.theme.onResolveName){n.theme.onResolveName.add(function(s,t){if(t.name==="img"&&n.dom.hasClass(t.node,"mceItemMedia")){t.name="media"}})}if(n&&n.plugins.contextmenu){n.plugins.contextmenu.onContextMenu.add(function(t,u,s){if(s.nodeName==="IMG"&&s.className.indexOf("mceItemMedia")!==-1){u.add({title:"media.edit",icon:"media",cmd:"mceMedia"})}})}});n.addCommand("mceMedia",function(){var t,s;s=n.selection.getNode();if(o(s)){t=n.dom.getAttrib(s,"data-mce-json");if(t){t=h.parse(t);tinymce.each(b,function(u){var v=n.dom.getAttrib(s,u);if(v){t[u]=v}});t.type=r.getType(s.className).name.toLowerCase()}}if(!t){t={type:"flash",video:{sources:[]},params:{}}}n.windowManager.open({file:j+"/media.htm",width:430+parseInt(n.getLang("media.delta_width",0)),height:500+parseInt(n.getLang("media.delta_height",0)),inline:1},{plugin_url:j,data:t})});n.addButton("media",{title:"media.desc",cmd:"mceMedia"});n.onNodeChange.add(function(t,s,u){s.setActive("media",o(u))})},convertUrl:function(l,o){var k=this,n=k.editor,m=n.settings,p=m.url_converter,j=m.url_converter_scope||k;if(!l){return l}if(o){return n.documentBaseURI.toAbsolute(l)}return p.call(j,l,"src","object")},getInfo:function(){return{longname:"Media",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/media",version:tinymce.majorVersion+"."+tinymce.minorVersion}},dataToImg:function(m,k){var r=this,o=r.editor,p=o.documentBaseURI,j,q,n,l;m.params.src=r.convertUrl(m.params.src,k);q=m.video.attrs;if(q){q.src=r.convertUrl(q.src,k)}if(q){q.poster=r.convertUrl(q.poster,k)}j=c(m.video.sources);if(j){for(l=0;l<j.length;l++){j[l].src=r.convertUrl(j[l].src,k)}}n=r.editor.dom.create("img",{id:m.id,style:m.style,align:m.align,hspace:m.hspace,vspace:m.vspace,src:r.editor.theme.url+"/img/trans.gif","class":"mceItemMedia mceItem"+r.getType(m.type).name,"data-mce-json":h.serialize(m,"'")});n.width=m.width=e(m.width||(m.type=="audio"?"300":"320"));n.height=m.height=e(m.height||(m.type=="audio"?"32":"240"));return n},dataToHtml:function(j,k){return this.editor.serializer.serialize(this.dataToImg(j,k),{forced_root_block:"",force_absolute:k})},htmlToData:function(l){var k,j,m;m={type:"flash",video:{sources:[]},params:{}};k=this.editor.parser.parse(l);j=k.getAll("img")[0];if(j){m=h.parse(j.attr("data-mce-json"));m.type=this.getType(j.attr("class")).name.toLowerCase();tinymce.each(b,function(n){var o=j.attr(n);if(o){m[n]=o}})}return m},getType:function(m){var k,j,l;j=tinymce.explode(m," ");for(k=0;k<j.length;k++){l=this.lookup[j[k]];if(l){return l}}},imgToObject:function(z,o){var u=this,p=u.editor,C,H,j,t,I,y,G,w,k,E,s,q,A,D,m,x,l,B,F;function r(n,J){var N,M,O,L,K;K=p.getParam("flash_video_player_url",u.convertUrl(u.url+"/moxieplayer.swf"));if(K){N=p.documentBaseURI;G.params.src=K;if(p.getParam("flash_video_player_absvideourl",true)){n=N.toAbsolute(n||"",true);J=N.toAbsolute(J||"",true)}O="";M=p.getParam("flash_video_player_flashvars",{url:"$url",poster:"$poster"});tinymce.each(M,function(Q,P){Q=Q.replace(/\$url/,n||"");Q=Q.replace(/\$poster/,J||"");if(Q.length>0){O+=(O?"&":"")+P+"="+escape(Q)}});if(O.length){G.params.flashvars=O}L=p.getParam("flash_video_player_params",{allowfullscreen:true,allowscriptaccess:true});tinymce.each(L,function(Q,P){G.params[P]=""+Q})}}G=z.attr("data-mce-json");if(!G){return}G=h.parse(G);q=this.getType(z.attr("class"));B=z.attr("data-mce-style");if(!B){B=z.attr("style");if(B){B=p.dom.serializeStyle(p.dom.parseStyle(B,"img"))}}G.width=z.attr("width")||G.width;G.height=z.attr("height")||G.height;if(q.name==="Iframe"){x=new f("iframe",1);tinymce.each(b,function(n){var J=z.attr(n);if(n=="class"&&J){J=J.replace(/mceItem.+ ?/g,"")}if(J&&J.length>0){x.attr(n,J)}});for(I in G.params){x.attr(I,G.params[I])}x.attr({style:B,src:G.params.src});z.replace(x);return}if(this.editor.settings.media_use_script){x=new f("script",1).attr("type","text/javascript");y=new f("#text",3);y.value="write"+q.name+"("+h.serialize(tinymce.extend(G.params,{width:z.attr("width"),height:z.attr("height")}))+");";x.append(y);z.replace(x);return}if(q.name==="Video"&&G.video.sources[0]){C=new f("video",1).attr(tinymce.extend({id:z.attr("id"),width:e(z.attr("width")),height:e(z.attr("height")),style:B},G.video.attrs));if(G.video.attrs){l=G.video.attrs.poster}k=G.video.sources=c(G.video.sources);for(A=0;A<k.length;A++){if(/\.mp4$/.test(k[A].src)){m=k[A].src}}if(!k[0].type){C.attr("src",k[0].src);k.splice(0,1)}for(A=0;A<k.length;A++){w=new f("source",1).attr(k[A]);w.shortEnded=true;C.append(w)}if(m){r(m,l);q=u.getType("flash")}else{G.params.src=""}}if(q.name==="Audio"&&G.video.sources[0]){F=new f("audio",1).attr(tinymce.extend({id:z.attr("id"),width:e(z.attr("width")),height:e(z.attr("height")),style:B},G.video.attrs));if(G.video.attrs){l=G.video.attrs.poster}k=G.video.sources=c(G.video.sources);if(!k[0].type){F.attr("src",k[0].src);k.splice(0,1)}for(A=0;A<k.length;A++){w=new f("source",1).attr(k[A]);w.shortEnded=true;F.append(w)}G.params.src=""}if(q.name==="EmbeddedAudio"){j=new f("embed",1);j.shortEnded=true;j.attr({id:z.attr("id"),width:e(z.attr("width")),height:e(z.attr("height")),style:B,type:z.attr("type")});for(I in G.params){j.attr(I,G.params[I])}tinymce.each(b,function(n){if(G[n]&&n!="type"){j.attr(n,G[n])}});G.params.src=""}if(G.params.src){if(/\.flv$/i.test(G.params.src)){r(G.params.src,"")}if(o&&o.force_absolute){G.params.src=p.documentBaseURI.toAbsolute(G.params.src)}H=new f("object",1).attr({id:z.attr("id"),width:e(z.attr("width")),height:e(z.attr("height")),style:B});tinymce.each(b,function(n){var J=G[n];if(n=="class"&&J){J=J.replace(/mceItem.+ ?/g,"")}if(J&&n!="type"){H.attr(n,J)}});for(I in G.params){s=new f("param",1);s.shortEnded=true;y=G.params[I];if(I==="src"&&q.name==="WindowsMedia"){I="url"}s.attr({name:I,value:y});H.append(s)}if(this.editor.getParam("media_strict",true)){H.attr({data:G.params.src,type:q.mimes[0]})}else{H.attr({classid:"clsid:"+q.clsids[0],codebase:q.codebase});j=new f("embed",1);j.shortEnded=true;j.attr({id:z.attr("id"),width:e(z.attr("width")),height:e(z.attr("height")),style:B,type:q.mimes[0]});for(I in G.params){j.attr(I,G.params[I])}tinymce.each(b,function(n){if(G[n]&&n!="type"){j.attr(n,G[n])}});H.append(j)}if(G.object_html){y=new f("#text",3);y.raw=true;y.value=G.object_html;H.append(y)}if(C){C.append(H)}}if(C){if(G.video_html){y=new f("#text",3);y.raw=true;y.value=G.video_html;C.append(y)}}if(F){if(G.video_html){y=new f("#text",3);y.raw=true;y.value=G.video_html;F.append(y)}}var v=C||F||H||j;if(v){z.replace(v)}else{z.remove()}},objectToImg:function(C){var L,k,F,s,M,N,y,A,x,G,E,t,q,I,B,l,K,o,H=this.lookup,m,z,v=this.editor.settings.url_converter,n=this.editor.settings.url_converter_scope,w,r,D,j;function u(O){return new tinymce.html.Serializer({inner:true,validate:false}).serialize(O)}function J(P,O){return H[(P.attr(O)||"").toLowerCase()]}function p(P){var O=P.replace(/^.*\.([^.]+)$/,"$1");return H[O.toLowerCase()||""]}if(!C.parent){return}if(C.name==="script"){if(C.firstChild){m=i.exec(C.firstChild.value)}if(!m){return}o=m[1];K={video:{},params:h.parse(m[2])};A=K.params.width;x=K.params.height}K=K||{video:{},params:{}};M=new f("img",1);M.attr({src:this.editor.theme.url+"/img/trans.gif"});N=C.name;if(N==="video"||N=="audio"){F=C;L=C.getAll("object")[0];k=C.getAll("embed")[0];A=F.attr("width");x=F.attr("height");y=F.attr("id");K.video={attrs:{},sources:[]};z=K.video.attrs;for(N in F.attributes.map){z[N]=F.attributes.map[N]}B=C.attr("src");if(B){K.video.sources.push({src:v.call(n,B,"src",C.name)})}l=F.getAll("source");for(E=0;E<l.length;E++){B=l[E].remove();K.video.sources.push({src:v.call(n,B.attr("src"),"src","source"),type:B.attr("type"),media:B.attr("media")})}if(z.poster){z.poster=v.call(n,z.poster,"poster",C.name)}}if(C.name==="object"){L=C;k=C.getAll("embed")[0]}if(C.name==="embed"){k=C}if(C.name==="iframe"){s=C;o="Iframe"}if(L){A=A||L.attr("width");x=x||L.attr("height");G=G||L.attr("style");y=y||L.attr("id");w=w||L.attr("hspace");r=r||L.attr("vspace");D=D||L.attr("align");j=j||L.attr("bgcolor");K.name=L.attr("name");I=L.getAll("param");for(E=0;E<I.length;E++){q=I[E];N=q.remove().attr("name");if(!a[N]){K.params[N]=q.attr("value")}}K.params.src=K.params.src||L.attr("data")}if(k){A=A||k.attr("width");x=x||k.attr("height");G=G||k.attr("style");y=y||k.attr("id");w=w||k.attr("hspace");r=r||k.attr("vspace");D=D||k.attr("align");j=j||k.attr("bgcolor");for(N in k.attributes.map){if(!a[N]&&!K.params[N]){K.params[N]=k.attributes.map[N]}}}if(s){A=e(s.attr("width"));x=e(s.attr("height"));G=G||s.attr("style");y=s.attr("id");w=s.attr("hspace");r=s.attr("vspace");D=s.attr("align");j=s.attr("bgcolor");tinymce.each(b,function(O){M.attr(O,s.attr(O))});for(N in s.attributes.map){if(!a[N]&&!K.params[N]){K.params[N]=s.attributes.map[N]}}}if(K.params.movie){K.params.src=K.params.src||K.params.movie;delete K.params.movie}if(K.params.src){K.params.src=v.call(n,K.params.src,"src","object")}if(F){if(C.name==="video"){o=H.video.name}else{if(C.name==="audio"){o=H.audio.name}}}if(L&&!o){o=(J(L,"clsid")||J(L,"classid")||J(L,"type")||{}).name}if(k&&!o){o=(J(k,"type")||p(K.params.src)||{}).name}if(k&&o=="EmbeddedAudio"){K.params.type=k.attr("type")}C.replace(M);if(k){k.remove()}if(L){t=u(L.remove());if(t){K.object_html=t}}if(F){t=u(F.remove());if(t){K.video_html=t}}K.hspace=w;K.vspace=r;K.align=D;K.bgcolor=j;M.attr({id:y,"class":"mceItemMedia mceItem"+(o||"Flash"),style:G,width:A||(C.name=="audio"?"300":"320"),height:x||(C.name=="audio"?"32":"240"),hspace:w,vspace:r,align:D,bgcolor:j,"data-mce-json":h.serialize(K,"'")})}});tinymce.PluginManager.add("media",tinymce.plugins.MediaPlugin)})();
\ No newline at end of file
--- a/web/wp-includes/js/tinymce/plugins/media/editor_plugin_src.js	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/js/tinymce/plugins/media/editor_plugin_src.js	Wed Dec 19 17:46:52 2012 -0800
@@ -28,6 +28,10 @@
 		["Audio"]
 	];
 
+	function normalizeSize(size) {
+		return typeof(size) == "string" ? size.replace(/[^0-9%]/g, '') : size;
+	}
+
 	function toArray(obj) {
 		var undef, out, i;
 
@@ -258,8 +262,8 @@
 				'data-mce-json' : JSON.serialize(data, "'")
 			});
 
-			img.width = data.width || (data.type == 'audio' ? "300" : "320");
-			img.height = data.height || (data.type == 'audio' ? "32" : "240");
+			img.width = data.width = normalizeSize(data.width || (data.type == 'audio' ? "300" : "320"));
+			img.height = data.height = normalizeSize(data.height || (data.type == 'audio' ? "32" : "240"));
 
 			return img;
 		},
@@ -378,7 +382,7 @@
 			data = JSON.parse(data);
 			typeItem = this.getType(node.attr('class'));
 
-			style = node.attr('data-mce-style')
+			style = node.attr('data-mce-style');
 			if (!style) {
 				style = node.attr('style');
 
@@ -386,6 +390,10 @@
 					style = editor.dom.serializeStyle(editor.dom.parseStyle(style, 'img'));
 			}
 
+			// Use node width/height to override the data width/height when the placeholder is resized
+			data.width = node.attr('width') || data.width;
+			data.height = node.attr('height') || data.height;
+
 			// Handle iframe
 			if (typeItem.name === 'Iframe') {
 				replacement = new Node('iframe', 1);
@@ -434,8 +442,8 @@
 				// Create new object element
 				video = new Node('video', 1).attr(tinymce.extend({
 					id : node.attr('id'),
-					width: node.attr('width'),
-					height: node.attr('height'),
+					width: normalizeSize(node.attr('width')),
+					height: normalizeSize(node.attr('height')),
 					style : style
 				}, data.video.attrs));
 
@@ -473,8 +481,8 @@
 				// Create new object element
 				audio = new Node('audio', 1).attr(tinymce.extend({
 					id : node.attr('id'),
-					width: node.attr('width'),
-					height: node.attr('height'),
+					width: normalizeSize(node.attr('width')),
+					height: normalizeSize(node.attr('height')),
 					style : style
 				}, data.video.attrs));
 
@@ -502,8 +510,8 @@
 				embed.shortEnded = true;
 				embed.attr({
 					id: node.attr('id'),
-					width: node.attr('width'),
-					height: node.attr('height'),
+					width: normalizeSize(node.attr('width')),
+					height: normalizeSize(node.attr('height')),
 					style : style,
 					type: node.attr('type')
 				});
@@ -531,8 +539,8 @@
 				// Create new object element
 				object = new Node('object', 1).attr({
 					id : node.attr('id'),
-					width: node.attr('width'),
-					height: node.attr('height'),
+					width: normalizeSize(node.attr('width')),
+					height: normalizeSize(node.attr('height')),
 					style : style
 				});
 
@@ -576,8 +584,8 @@
 					embed.shortEnded = true;
 					embed.attr({
 						id: node.attr('id'),
-						width: node.attr('width'),
-						height: node.attr('height'),
+						width: normalizeSize(node.attr('width')),
+						height: normalizeSize(node.attr('height')),
 						style : style,
 						type: typeItem.mimes[0]
 					});
@@ -793,8 +801,8 @@
 
 			if (iframe) {
 				// Get width/height
-				width = iframe.attr('width');
-				height = iframe.attr('height');
+				width = normalizeSize(iframe.attr('width'));
+				height = normalizeSize(iframe.attr('height'));
 				style = style || iframe.attr('style');
 				id = iframe.attr('id');
 				hspace = iframe.attr('hspace');
--- a/web/wp-includes/js/tinymce/plugins/media/js/media.js	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/js/tinymce/plugins/media/js/media.js	Wed Dec 19 17:46:52 2012 -0800
@@ -78,7 +78,7 @@
 			get('video_altsource2_filebrowser').innerHTML = getBrowserHTML('video_filebrowser_altsource2','video_altsource2','media','media');
 			get('audio_altsource1_filebrowser').innerHTML = getBrowserHTML('audio_filebrowser_altsource1','audio_altsource1','media','media');
 			get('audio_altsource2_filebrowser').innerHTML = getBrowserHTML('audio_filebrowser_altsource2','audio_altsource2','media','media');
-			get('video_poster_filebrowser').innerHTML = getBrowserHTML('filebrowser_poster','video_poster','media','image');
+			get('video_poster_filebrowser').innerHTML = getBrowserHTML('filebrowser_poster','video_poster','image','media');
 
 			html = self.getMediaListHTML('medialist', 'src', 'media', 'media');
 			if (html == "")
@@ -295,34 +295,77 @@
 			} else {
 				src = getVal("src");
 
-				// YouTube *NEW*
-				if (src.match(/youtu.be\/[a-z1-9.-_]+/)) {
+				// YouTube Embed
+				if (src.match(/youtube\.com\/embed\/\w+/)) {
 					data.width = 425;
 					data.height = 350;
 					data.params.frameborder = '0';
 					data.type = 'iframe';
-					src = 'http://www.youtube.com/embed/' + src.match(/youtu.be\/([a-z1-9.-_]+)/)[1];
+					setVal('src', src);
+					setVal('media_type', data.type);
+				} else {
+					// YouTube *NEW*
+					if (src.match(/youtu\.be\/[a-z1-9.-_]+/)) {
+						data.width = 425;
+						data.height = 350;
+						data.params.frameborder = '0';
+						data.type = 'iframe';
+						src = 'http://www.youtube.com/embed/' + src.match(/youtu.be\/([a-z1-9.-_]+)/)[1];
+						setVal('src', src);
+						setVal('media_type', data.type);
+					}
+
+					// YouTube
+					if (src.match(/youtube\.com(.+)v=([^&]+)/)) {
+						data.width = 425;
+						data.height = 350;
+						data.params.frameborder = '0';
+						data.type = 'iframe';
+						src = 'http://www.youtube.com/embed/' + src.match(/v=([^&]+)/)[1];
+						setVal('src', src);
+						setVal('media_type', data.type);
+					}
+				}
+
+				// Google video
+				if (src.match(/video\.google\.com(.+)docid=([^&]+)/)) {
+					data.width = 425;
+					data.height = 326;
+					data.type = 'flash';
+					src = 'http://video.google.com/googleplayer.swf?docId=' + src.match(/docid=([^&]+)/)[1] + '&hl=en';
 					setVal('src', src);
 					setVal('media_type', data.type);
 				}
-
-				// YouTube
-				if (src.match(/youtube.com(.+)v=([^&]+)/)) {
+				
+				// Vimeo
+				if (src.match(/vimeo\.com\/([0-9]+)/)) {
 					data.width = 425;
 					data.height = 350;
 					data.params.frameborder = '0';
 					data.type = 'iframe';
-					src = 'http://www.youtube.com/embed/' + src.match(/v=([^&]+)/)[1];
+					src = 'http://player.vimeo.com/video/' + src.match(/vimeo.com\/([0-9]+)/)[1];
 					setVal('src', src);
 					setVal('media_type', data.type);
 				}
-
-				// Google video
-				if (src.match(/video.google.com(.+)docid=([^&]+)/)) {
+            
+				// stream.cz
+				if (src.match(/stream\.cz\/((?!object).)*\/([0-9]+)/)) {
 					data.width = 425;
-					data.height = 326;
-					data.type = 'flash';
-					src = 'http://video.google.com/googleplayer.swf?docId=' + src.match(/docid=([^&]+)/)[1] + '&hl=en';
+					data.height = 350;
+					data.params.frameborder = '0';
+					data.type = 'iframe';
+					src = 'http://www.stream.cz/object/' + src.match(/stream.cz\/[^/]+\/([0-9]+)/)[1];
+					setVal('src', src);
+					setVal('media_type', data.type);
+				}
+				
+				// Google maps
+				if (src.match(/maps\.google\.([a-z]{2,3})\/maps\/(.+)msid=(.+)/)) {
+					data.width = 425;
+					data.height = 350;
+					data.params.frameborder = '0';
+					data.type = 'iframe';
+					src = 'http://maps.google.com/maps/ms?msid=' + src.match(/msid=(.+)/)[1] + "&output=embed";
 					setVal('src', src);
 					setVal('media_type', data.type);
 				}
--- a/web/wp-includes/js/tinymce/plugins/media/media.htm	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/js/tinymce/plugins/media/media.htm	Wed Dec 19 17:46:52 2012 -0800
@@ -2,13 +2,13 @@
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 	<title>{#media_dlg.title}</title>
-	<script type="text/javascript" src="../../tiny_mce_popup.js?ver=349-20120314"></script>
-	<script type="text/javascript" src="js/media.js?ver=349-20120314"></script>
-	<script type="text/javascript" src="../../utils/mctabs.js?ver=349-20120314"></script>
-	<script type="text/javascript" src="../../utils/validate.js?ver=349-20120314"></script>
-	<script type="text/javascript" src="../../utils/form_utils.js?ver=349-20120314"></script>
-	<script type="text/javascript" src="../../utils/editable_selects.js?ver=349-20120314"></script>
-	<link href="css/media.css?ver=349-20120314" rel="stylesheet" type="text/css" />
+	<script type="text/javascript" src="../../tiny_mce_popup.js?ver=358-20121205"></script>
+	<script type="text/javascript" src="js/media.js?ver=358-20121205"></script>
+	<script type="text/javascript" src="../../utils/mctabs.js?ver=358-20121205"></script>
+	<script type="text/javascript" src="../../utils/validate.js?ver=358-20121205"></script>
+	<script type="text/javascript" src="../../utils/form_utils.js?ver=358-20121205"></script>
+	<script type="text/javascript" src="../../utils/editable_selects.js?ver=358-20121205"></script>
+	<link href="css/media.css?ver=358-20121205" rel="stylesheet" type="text/css" />
 </head>
 <body style="display: none" role="application">
 <form onsubmit="Media.insert();return false;" action="#">
--- a/web/wp-includes/js/tinymce/plugins/paste/editor_plugin.js	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/js/tinymce/plugins/paste/editor_plugin.js	Wed Dec 19 17:46:52 2012 -0800
@@ -1,1 +1,1 @@
-(function(){var c=tinymce.each,a={paste_auto_cleanup_on_paste:true,paste_enable_default_filters:true,paste_block_drop:false,paste_retain_style_properties:"none",paste_strip_class_attributes:"mso",paste_remove_spans:false,paste_remove_styles:false,paste_remove_styles_if_webkit:true,paste_convert_middot_lists:true,paste_convert_headers_to_strong:false,paste_dialog_width:"450",paste_dialog_height:"400",paste_text_use_dialog:false,paste_text_sticky:false,paste_text_sticky_default:false,paste_text_notifyalways:false,paste_text_linebreaktype:"combined",paste_text_replacements:[[/\u2026/g,"..."],[/[\x93\x94\u201c\u201d]/g,'"'],[/[\x60\x91\x92\u2018\u2019]/g,"'"]]};function b(d,e){return d.getParam(e,a[e])}tinymce.create("tinymce.plugins.PastePlugin",{init:function(d,e){var f=this;f.editor=d;f.url=e;f.onPreProcess=new tinymce.util.Dispatcher(f);f.onPostProcess=new tinymce.util.Dispatcher(f);f.onPreProcess.add(f._preProcess);f.onPostProcess.add(f._postProcess);f.onPreProcess.add(function(i,j){d.execCallback("paste_preprocess",i,j)});f.onPostProcess.add(function(i,j){d.execCallback("paste_postprocess",i,j)});d.onKeyDown.addToTop(function(i,j){if(((tinymce.isMac?j.metaKey:j.ctrlKey)&&j.keyCode==86)||(j.shiftKey&&j.keyCode==45)){return false}});d.pasteAsPlainText=b(d,"paste_text_sticky_default");function h(l,j){var k=d.dom,i;f.onPreProcess.dispatch(f,l);l.node=k.create("div",0,l.content);if(tinymce.isGecko){i=d.selection.getRng(true);if(i.startContainer==i.endContainer&&i.startContainer.nodeType==3){if(l.node.childNodes.length===1&&/^(p|h[1-6]|pre)$/i.test(l.node.firstChild.nodeName)&&l.content.indexOf("__MCE_ITEM__")===-1){k.remove(l.node.firstChild,true)}}}f.onPostProcess.dispatch(f,l);l.content=d.serializer.serialize(l.node,{getInner:1,forced_root_block:""});if((!j)&&(d.pasteAsPlainText)){f._insertPlainText(l.content);if(!b(d,"paste_text_sticky")){d.pasteAsPlainText=false;d.controlManager.setActive("pastetext",false)}}else{f._insert(l.content)}}d.addCommand("mceInsertClipboardContent",function(i,j){h(j,true)});if(!b(d,"paste_text_use_dialog")){d.addCommand("mcePasteText",function(j,i){var k=tinymce.util.Cookie;d.pasteAsPlainText=!d.pasteAsPlainText;d.controlManager.setActive("pastetext",d.pasteAsPlainText);if((d.pasteAsPlainText)&&(!k.get("tinymcePasteText"))){if(b(d,"paste_text_sticky")){d.windowManager.alert(d.translate("paste.plaintext_mode_sticky"))}else{d.windowManager.alert(d.translate("paste.plaintext_mode"))}if(!b(d,"paste_text_notifyalways")){k.set("tinymcePasteText","1",new Date(new Date().getFullYear()+1,12,31))}}})}d.addButton("pastetext",{title:"paste.paste_text_desc",cmd:"mcePasteText"});d.addButton("selectall",{title:"paste.selectall_desc",cmd:"selectall"});function g(s){var l,p,j,t,k=d.selection,o=d.dom,q=d.getBody(),i,r;if(s.clipboardData||o.doc.dataTransfer){r=(s.clipboardData||o.doc.dataTransfer).getData("Text");if(d.pasteAsPlainText){s.preventDefault();h({content:o.encode(r).replace(/\r?\n/g,"<br />")});return}}if(o.get("_mcePaste")){return}l=o.add(q,"div",{id:"_mcePaste","class":"mcePaste","data-mce-bogus":"1"},"\uFEFF\uFEFF");if(q!=d.getDoc().body){i=o.getPos(d.selection.getStart(),q).y}else{i=q.scrollTop+o.getViewPort(d.getWin()).y}o.setStyles(l,{position:"absolute",left:tinymce.isGecko?-40:0,top:i-25,width:1,height:1,overflow:"hidden"});if(tinymce.isIE){t=k.getRng();j=o.doc.body.createTextRange();j.moveToElementText(l);j.execCommand("Paste");o.remove(l);if(l.innerHTML==="\uFEFF\uFEFF"){d.execCommand("mcePasteWord");s.preventDefault();return}k.setRng(t);k.setContent("");setTimeout(function(){h({content:l.innerHTML})},0);return tinymce.dom.Event.cancel(s)}else{function m(n){n.preventDefault()}o.bind(d.getDoc(),"mousedown",m);o.bind(d.getDoc(),"keydown",m);p=d.selection.getRng();l=l.firstChild;j=d.getDoc().createRange();j.setStart(l,0);j.setEnd(l,2);k.setRng(j);window.setTimeout(function(){var u="",n;if(!o.select("div.mcePaste > div.mcePaste").length){n=o.select("div.mcePaste");c(n,function(w){var v=w.firstChild;if(v&&v.nodeName=="DIV"&&v.style.marginTop&&v.style.backgroundColor){o.remove(v,1)}c(o.select("span.Apple-style-span",w),function(x){o.remove(x,1)});c(o.select("br[data-mce-bogus]",w),function(x){o.remove(x)});if(w.parentNode.className!="mcePaste"){u+=w.innerHTML}})}else{u="<p>"+o.encode(r).replace(/\r?\n\r?\n/g,"</p><p>").replace(/\r?\n/g,"<br />")+"</p>"}c(o.select("div.mcePaste"),function(v){o.remove(v)});if(p){k.setRng(p)}h({content:u});o.unbind(d.getDoc(),"mousedown",m);o.unbind(d.getDoc(),"keydown",m)},0)}}if(b(d,"paste_auto_cleanup_on_paste")){if(tinymce.isOpera||/Firefox\/2/.test(navigator.userAgent)){d.onKeyDown.addToTop(function(i,j){if(((tinymce.isMac?j.metaKey:j.ctrlKey)&&j.keyCode==86)||(j.shiftKey&&j.keyCode==45)){g(j)}})}else{d.onPaste.addToTop(function(i,j){return g(j)})}}d.onInit.add(function(){d.controlManager.setActive("pastetext",d.pasteAsPlainText);if(b(d,"paste_block_drop")){d.dom.bind(d.getBody(),["dragend","dragover","draggesture","dragdrop","drop","drag"],function(i){i.preventDefault();i.stopPropagation();return false})}});f._legacySupport()},getInfo:function(){return{longname:"Paste text/word",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/paste",version:tinymce.majorVersion+"."+tinymce.minorVersion}},_preProcess:function(g,e){var k=this.editor,j=e.content,p=tinymce.grep,n=tinymce.explode,f=tinymce.trim,l,i;function d(h){c(h,function(o){if(o.constructor==RegExp){j=j.replace(o,"")}else{j=j.replace(o[0],o[1])}})}if(k.settings.paste_enable_default_filters==false){return}if(tinymce.isIE&&document.documentMode>=9){d([[/(?:<br>&nbsp;[\s\r\n]+|<br>)*(<\/?(h[1-6r]|p|div|address|pre|form|table|tbody|thead|tfoot|th|tr|td|li|ol|ul|caption|blockquote|center|dl|dt|dd|dir|fieldset)[^>]*>)(?:<br>&nbsp;[\s\r\n]+|<br>)*/g,"$1"]]);d([[/<br><br>/g,"<BR><BR>"],[/<br>/g," "],[/<BR><BR>/g,"<br>"]])}if(/class="?Mso|style="[^"]*\bmso-|w:WordDocument/i.test(j)||e.wordContent){e.wordContent=true;d([/^\s*(&nbsp;)+/gi,/(&nbsp;|<br[^>]*>)+\s*$/gi]);if(b(k,"paste_convert_headers_to_strong")){j=j.replace(/<p [^>]*class="?MsoHeading"?[^>]*>(.*?)<\/p>/gi,"<p><strong>$1</strong></p>")}if(b(k,"paste_convert_middot_lists")){d([[/<!--\[if !supportLists\]-->/gi,"$&__MCE_ITEM__"],[/(<span[^>]+(?:mso-list:|:\s*symbol)[^>]+>)/gi,"$1__MCE_ITEM__"],[/(<p[^>]+(?:MsoListParagraph)[^>]+>)/gi,"$1__MCE_ITEM__"]])}d([/<!--[\s\S]+?-->/gi,/<(!|script[^>]*>.*?<\/script(?=[>\s])|\/?(\?xml(:\w+)?|img|meta|link|style|\w:\w+)(?=[\s\/>]))[^>]*>/gi,[/<(\/?)s>/gi,"<$1strike>"],[/&nbsp;/gi,"\u00a0"]]);do{l=j.length;j=j.replace(/(<[a-z][^>]*\s)(?:id|name|language|type|on\w+|\w+:\w+)=(?:"[^"]*"|\w+)\s?/gi,"$1")}while(l!=j.length);if(b(k,"paste_retain_style_properties").replace(/^none$/i,"").length==0){j=j.replace(/<\/?span[^>]*>/gi,"")}else{d([[/<span\s+style\s*=\s*"\s*mso-spacerun\s*:\s*yes\s*;?\s*"\s*>([\s\u00a0]*)<\/span>/gi,function(o,h){return(h.length>0)?h.replace(/./," ").slice(Math.floor(h.length/2)).split("").join("\u00a0"):""}],[/(<[a-z][^>]*)\sstyle="([^"]*)"/gi,function(t,h,r){var u=[],o=0,q=n(f(r).replace(/&quot;/gi,"'"),";");c(q,function(s){var w,y,z=n(s,":");function x(A){return A+((A!=="0")&&(/\d$/.test(A)))?"px":""}if(z.length==2){w=z[0].toLowerCase();y=z[1].toLowerCase();switch(w){case"mso-padding-alt":case"mso-padding-top-alt":case"mso-padding-right-alt":case"mso-padding-bottom-alt":case"mso-padding-left-alt":case"mso-margin-alt":case"mso-margin-top-alt":case"mso-margin-right-alt":case"mso-margin-bottom-alt":case"mso-margin-left-alt":case"mso-table-layout-alt":case"mso-height":case"mso-width":case"mso-vertical-align-alt":u[o++]=w.replace(/^mso-|-alt$/g,"")+":"+x(y);return;case"horiz-align":u[o++]="text-align:"+y;return;case"vert-align":u[o++]="vertical-align:"+y;return;case"font-color":case"mso-foreground":u[o++]="color:"+y;return;case"mso-background":case"mso-highlight":u[o++]="background:"+y;return;case"mso-default-height":u[o++]="min-height:"+x(y);return;case"mso-default-width":u[o++]="min-width:"+x(y);return;case"mso-padding-between-alt":u[o++]="border-collapse:separate;border-spacing:"+x(y);return;case"text-line-through":if((y=="single")||(y=="double")){u[o++]="text-decoration:line-through"}return;case"mso-zero-height":if(y=="yes"){u[o++]="display:none"}return}if(/^(mso|column|font-emph|lang|layout|line-break|list-image|nav|panose|punct|row|ruby|sep|size|src|tab-|table-border|text-(?!align|decor|indent|trans)|top-bar|version|vnd|word-break)/.test(w)){return}u[o++]=w+":"+z[1]}});if(o>0){return h+' style="'+u.join(";")+'"'}else{return h}}]])}}if(b(k,"paste_convert_headers_to_strong")){d([[/<h[1-6][^>]*>/gi,"<p><strong>"],[/<\/h[1-6][^>]*>/gi,"</strong></p>"]])}d([[/Version:[\d.]+\nStartHTML:\d+\nEndHTML:\d+\nStartFragment:\d+\nEndFragment:\d+/gi,""]]);i=b(k,"paste_strip_class_attributes");if(i!=="none"){function m(q,o){if(i==="all"){return""}var h=p(n(o.replace(/^(["'])(.*)\1$/,"$2")," "),function(r){return(/^(?!mso)/i.test(r))});return h.length?' class="'+h.join(" ")+'"':""}j=j.replace(/ class="([^"]+)"/gi,m);j=j.replace(/ class=([\-\w]+)/gi,m)}if(b(k,"paste_remove_spans")){j=j.replace(/<\/?span[^>]*>/gi,"")}e.content=j},_postProcess:function(g,i){var f=this,e=f.editor,h=e.dom,d;if(e.settings.paste_enable_default_filters==false){return}if(i.wordContent){c(h.select("a",i.node),function(j){if(!j.href||j.href.indexOf("#_Toc")!=-1){h.remove(j,1)}});if(b(e,"paste_convert_middot_lists")){f._convertLists(g,i)}d=b(e,"paste_retain_style_properties");if((tinymce.is(d,"string"))&&(d!=="all")&&(d!=="*")){d=tinymce.explode(d.replace(/^none$/i,""));c(h.select("*",i.node),function(m){var n={},k=0,l,o,j;if(d){for(l=0;l<d.length;l++){o=d[l];j=h.getStyle(m,o);if(j){n[o]=j;k++}}}h.setAttrib(m,"style","");if(d&&k>0){h.setStyles(m,n)}else{if(m.nodeName=="SPAN"&&!m.className){h.remove(m,true)}}})}}if(b(e,"paste_remove_styles")||(b(e,"paste_remove_styles_if_webkit")&&tinymce.isWebKit)){c(h.select("*[style]",i.node),function(j){j.removeAttribute("style");j.removeAttribute("data-mce-style")})}else{if(tinymce.isWebKit){c(h.select("*",i.node),function(j){j.removeAttribute("data-mce-style")})}}},_convertLists:function(g,e){var i=g.editor.dom,h,l,d=-1,f,m=[],k,j;c(i.select("p",e.node),function(t){var q,u="",s,r,n,o;for(q=t.firstChild;q&&q.nodeType==3;q=q.nextSibling){u+=q.nodeValue}u=t.innerHTML.replace(/<\/?\w+[^>]*>/gi,"").replace(/&nbsp;/g,"\u00a0");if(/^(__MCE_ITEM__)+[\u2022\u00b7\u00a7\u00d8o\u25CF]\s*\u00a0*/.test(u)){s="ul"}if(/^__MCE_ITEM__\s*\w+\.\s*\u00a0+/.test(u)){s="ol"}if(s){f=parseFloat(t.style.marginLeft||0);if(f>d){m.push(f)}if(!h||s!=k){h=i.create(s);i.insertAfter(h,t)}else{if(f>d){h=l.appendChild(i.create(s))}else{if(f<d){n=tinymce.inArray(m,f);o=i.getParents(h.parentNode,s);h=o[o.length-1-n]||h}}}c(i.select("span",t),function(v){var p=v.innerHTML.replace(/<\/?\w+[^>]*>/gi,"");if(s=="ul"&&/^__MCE_ITEM__[\u2022\u00b7\u00a7\u00d8o\u25CF]/.test(p)){i.remove(v)}else{if(/^__MCE_ITEM__[\s\S]*\w+\.(&nbsp;|\u00a0)*\s*/.test(p)){i.remove(v)}}});r=t.innerHTML;if(s=="ul"){r=t.innerHTML.replace(/__MCE_ITEM__/g,"").replace(/^[\u2022\u00b7\u00a7\u00d8o\u25CF]\s*(&nbsp;|\u00a0)+\s*/,"")}else{r=t.innerHTML.replace(/__MCE_ITEM__/g,"").replace(/^\s*\w+\.(&nbsp;|\u00a0)+\s*/,"")}l=h.appendChild(i.create("li",0,r));i.remove(t);d=f;k=s}else{h=d=0}});j=e.node.innerHTML;if(j.indexOf("__MCE_ITEM__")!=-1){e.node.innerHTML=j.replace(/__MCE_ITEM__/g,"")}},_insert:function(f,d){var e=this.editor,g=e.selection.getRng();if(!e.selection.isCollapsed()&&g.startContainer!=g.endContainer){e.getDoc().execCommand("Delete",false,null)}e.execCommand("mceInsertContent",false,f,{skip_undo:d})},_insertPlainText:function(g){var d=this.editor,e=b(d,"paste_text_linebreaktype"),i=b(d,"paste_text_replacements"),f=tinymce.is;function h(j){c(j,function(k){if(k.constructor==RegExp){g=g.replace(k,"")}else{g=g.replace(k[0],k[1])}})}if((typeof(g)==="string")&&(g.length>0)){if(/<(?:p|br|h[1-6]|ul|ol|dl|table|t[rdh]|div|blockquote|fieldset|pre|address|center)[^>]*>/i.test(g)){h([/[\n\r]+/g])}else{h([/\r+/g])}h([[/<\/(?:p|h[1-6]|ul|ol|dl|table|div|blockquote|fieldset|pre|address|center)>/gi,"\n\n"],[/<br[^>]*>|<\/tr>/gi,"\n"],[/<\/t[dh]>\s*<t[dh][^>]*>/gi,"\t"],/<[a-z!\/?][^>]*>/gi,[/&nbsp;/gi," "],[/(?:(?!\n)\s)*(\n+)(?:(?!\n)\s)*/gi,"$1"],[/\n{3,}/g,"\n\n"]]);g=d.dom.decode(tinymce.html.Entities.encodeRaw(g));if(f(i,"array")){h(i)}else{if(f(i,"string")){h(new RegExp(i,"gi"))}}if(e=="none"){h([[/\n+/g," "]])}else{if(e=="br"){h([[/\n/g,"<br />"]])}else{if(e=="p"){h([[/\n+/g,"</p><p>"],[/^(.*<\/p>)(<p>)$/,"<p>$1"]])}else{h([[/\n\n/g,"</p><p>"],[/^(.*<\/p>)(<p>)$/,"<p>$1"],[/\n/g,"<br />"]])}}}d.execCommand("mceInsertContent",false,g)}},_legacySupport:function(){var e=this,d=e.editor;d.addCommand("mcePasteWord",function(){d.windowManager.open({file:e.url+"/pasteword.htm",width:parseInt(b(d,"paste_dialog_width")),height:parseInt(b(d,"paste_dialog_height")),inline:1})});if(b(d,"paste_text_use_dialog")){d.addCommand("mcePasteText",function(){d.windowManager.open({file:e.url+"/pastetext.htm",width:parseInt(b(d,"paste_dialog_width")),height:parseInt(b(d,"paste_dialog_height")),inline:1})})}d.addButton("pasteword",{title:"paste.paste_word_desc",cmd:"mcePasteWord"})}});tinymce.PluginManager.add("paste",tinymce.plugins.PastePlugin)})();
\ No newline at end of file
+(function(){var c=tinymce.each,a={paste_auto_cleanup_on_paste:true,paste_enable_default_filters:true,paste_block_drop:false,paste_retain_style_properties:"none",paste_strip_class_attributes:"mso",paste_remove_spans:false,paste_remove_styles:false,paste_remove_styles_if_webkit:true,paste_convert_middot_lists:true,paste_convert_headers_to_strong:false,paste_dialog_width:"450",paste_dialog_height:"400",paste_max_consecutive_linebreaks:2,paste_text_use_dialog:false,paste_text_sticky:false,paste_text_sticky_default:false,paste_text_notifyalways:false,paste_text_linebreaktype:"combined",paste_text_replacements:[[/\u2026/g,"..."],[/[\x93\x94\u201c\u201d]/g,'"'],[/[\x60\x91\x92\u2018\u2019]/g,"'"]]};function b(d,e){return d.getParam(e,a[e])}tinymce.create("tinymce.plugins.PastePlugin",{init:function(d,e){var f=this;f.editor=d;f.url=e;f.onPreProcess=new tinymce.util.Dispatcher(f);f.onPostProcess=new tinymce.util.Dispatcher(f);f.onPreProcess.add(f._preProcess);f.onPostProcess.add(f._postProcess);f.onPreProcess.add(function(i,j){d.execCallback("paste_preprocess",i,j)});f.onPostProcess.add(function(i,j){d.execCallback("paste_postprocess",i,j)});d.onKeyDown.addToTop(function(i,j){if(((tinymce.isMac?j.metaKey:j.ctrlKey)&&j.keyCode==86)||(j.shiftKey&&j.keyCode==45)){return false}});d.pasteAsPlainText=b(d,"paste_text_sticky_default");function h(l,j){var k=d.dom,i;f.onPreProcess.dispatch(f,l);l.node=k.create("div",0,l.content);if(tinymce.isGecko){i=d.selection.getRng(true);if(i.startContainer==i.endContainer&&i.startContainer.nodeType==3){if(l.node.childNodes.length===1&&/^(p|h[1-6]|pre)$/i.test(l.node.firstChild.nodeName)&&l.content.indexOf("__MCE_ITEM__")===-1){k.remove(l.node.firstChild,true)}}}f.onPostProcess.dispatch(f,l);l.content=d.serializer.serialize(l.node,{getInner:1,forced_root_block:""});if((!j)&&(d.pasteAsPlainText)){f._insertPlainText(l.content);if(!b(d,"paste_text_sticky")){d.pasteAsPlainText=false;d.controlManager.setActive("pastetext",false)}}else{f._insert(l.content)}}d.addCommand("mceInsertClipboardContent",function(i,j){h(j,true)});if(!b(d,"paste_text_use_dialog")){d.addCommand("mcePasteText",function(j,i){var k=tinymce.util.Cookie;d.pasteAsPlainText=!d.pasteAsPlainText;d.controlManager.setActive("pastetext",d.pasteAsPlainText);if((d.pasteAsPlainText)&&(!k.get("tinymcePasteText"))){if(b(d,"paste_text_sticky")){d.windowManager.alert(d.translate("paste.plaintext_mode_sticky"))}else{d.windowManager.alert(d.translate("paste.plaintext_mode"))}if(!b(d,"paste_text_notifyalways")){k.set("tinymcePasteText","1",new Date(new Date().getFullYear()+1,12,31))}}})}d.addButton("pastetext",{title:"paste.paste_text_desc",cmd:"mcePasteText"});d.addButton("selectall",{title:"paste.selectall_desc",cmd:"selectall"});function g(s){var l,p,j,t,k=d.selection,o=d.dom,q=d.getBody(),i,r;if(s.clipboardData||o.doc.dataTransfer){r=(s.clipboardData||o.doc.dataTransfer).getData("Text");if(d.pasteAsPlainText){s.preventDefault();h({content:o.encode(r).replace(/\r?\n/g,"<br />")});return}}if(o.get("_mcePaste")){return}l=o.add(q,"div",{id:"_mcePaste","class":"mcePaste","data-mce-bogus":"1"},"\uFEFF\uFEFF");if(q!=d.getDoc().body){i=o.getPos(d.selection.getStart(),q).y}else{i=q.scrollTop+o.getViewPort(d.getWin()).y}o.setStyles(l,{position:"absolute",left:tinymce.isGecko?-40:0,top:i-25,width:1,height:1,overflow:"hidden"});if(tinymce.isIE){t=k.getRng();j=o.doc.body.createTextRange();j.moveToElementText(l);j.execCommand("Paste");o.remove(l);if(l.innerHTML==="\uFEFF\uFEFF"){d.execCommand("mcePasteWord");s.preventDefault();return}k.setRng(t);k.setContent("");setTimeout(function(){h({content:l.innerHTML})},0);return tinymce.dom.Event.cancel(s)}else{function m(n){n.preventDefault()}o.bind(d.getDoc(),"mousedown",m);o.bind(d.getDoc(),"keydown",m);p=d.selection.getRng();l=l.firstChild;j=d.getDoc().createRange();j.setStart(l,0);j.setEnd(l,2);k.setRng(j);window.setTimeout(function(){var u="",n;if(!o.select("div.mcePaste > div.mcePaste").length){n=o.select("div.mcePaste");c(n,function(w){var v=w.firstChild;if(v&&v.nodeName=="DIV"&&v.style.marginTop&&v.style.backgroundColor){o.remove(v,1)}c(o.select("span.Apple-style-span",w),function(x){o.remove(x,1)});c(o.select("br[data-mce-bogus]",w),function(x){o.remove(x)});if(w.parentNode.className!="mcePaste"){u+=w.innerHTML}})}else{u="<p>"+o.encode(r).replace(/\r?\n\r?\n/g,"</p><p>").replace(/\r?\n/g,"<br />")+"</p>"}c(o.select("div.mcePaste"),function(v){o.remove(v)});if(p){k.setRng(p)}h({content:u});o.unbind(d.getDoc(),"mousedown",m);o.unbind(d.getDoc(),"keydown",m)},0)}}if(b(d,"paste_auto_cleanup_on_paste")){if(tinymce.isOpera||/Firefox\/2/.test(navigator.userAgent)){d.onKeyDown.addToTop(function(i,j){if(((tinymce.isMac?j.metaKey:j.ctrlKey)&&j.keyCode==86)||(j.shiftKey&&j.keyCode==45)){g(j)}})}else{d.onPaste.addToTop(function(i,j){return g(j)})}}d.onInit.add(function(){d.controlManager.setActive("pastetext",d.pasteAsPlainText);if(b(d,"paste_block_drop")){d.dom.bind(d.getBody(),["dragend","dragover","draggesture","dragdrop","drop","drag"],function(i){i.preventDefault();i.stopPropagation();return false})}});f._legacySupport()},getInfo:function(){return{longname:"Paste text/word",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/paste",version:tinymce.majorVersion+"."+tinymce.minorVersion}},_preProcess:function(g,e){var k=this.editor,j=e.content,p=tinymce.grep,n=tinymce.explode,f=tinymce.trim,l,i;function d(h){c(h,function(o){if(o.constructor==RegExp){j=j.replace(o,"")}else{j=j.replace(o[0],o[1])}})}if(k.settings.paste_enable_default_filters==false){return}if(tinymce.isIE&&document.documentMode>=9&&/<(h[1-6r]|p|div|address|pre|form|table|tbody|thead|tfoot|th|tr|td|li|ol|ul|caption|blockquote|center|dl|dt|dd|dir|fieldset)/.test(e.content)){d([[/(?:<br>&nbsp;[\s\r\n]+|<br>)*(<\/?(h[1-6r]|p|div|address|pre|form|table|tbody|thead|tfoot|th|tr|td|li|ol|ul|caption|blockquote|center|dl|dt|dd|dir|fieldset)[^>]*>)(?:<br>&nbsp;[\s\r\n]+|<br>)*/g,"$1"]]);d([[/<br><br>/g,"<BR><BR>"],[/<br>/g," "],[/<BR><BR>/g,"<br>"]])}if(/class="?Mso|style="[^"]*\bmso-|w:WordDocument/i.test(j)||e.wordContent){e.wordContent=true;d([/^\s*(&nbsp;)+/gi,/(&nbsp;|<br[^>]*>)+\s*$/gi]);if(b(k,"paste_convert_headers_to_strong")){j=j.replace(/<p [^>]*class="?MsoHeading"?[^>]*>(.*?)<\/p>/gi,"<p><strong>$1</strong></p>")}if(b(k,"paste_convert_middot_lists")){d([[/<!--\[if !supportLists\]-->/gi,"$&__MCE_ITEM__"],[/(<span[^>]+(?:mso-list:|:\s*symbol)[^>]+>)/gi,"$1__MCE_ITEM__"],[/(<p[^>]+(?:MsoListParagraph)[^>]+>)/gi,"$1__MCE_ITEM__"]])}d([/<!--[\s\S]+?-->/gi,/<(!|script[^>]*>.*?<\/script(?=[>\s])|\/?(\?xml(:\w+)?|img|meta|link|style|\w:\w+)(?=[\s\/>]))[^>]*>/gi,[/<(\/?)s>/gi,"<$1strike>"],[/&nbsp;/gi,"\u00a0"]]);do{l=j.length;j=j.replace(/(<[a-z][^>]*\s)(?:id|name|language|type|on\w+|\w+:\w+)=(?:"[^"]*"|\w+)\s?/gi,"$1")}while(l!=j.length);if(b(k,"paste_retain_style_properties").replace(/^none$/i,"").length==0){j=j.replace(/<\/?span[^>]*>/gi,"")}else{d([[/<span\s+style\s*=\s*"\s*mso-spacerun\s*:\s*yes\s*;?\s*"\s*>([\s\u00a0]*)<\/span>/gi,function(o,h){return(h.length>0)?h.replace(/./," ").slice(Math.floor(h.length/2)).split("").join("\u00a0"):""}],[/(<[a-z][^>]*)\sstyle="([^"]*)"/gi,function(t,h,r){var u=[],o=0,q=n(f(r).replace(/&quot;/gi,"'"),";");c(q,function(s){var w,y,z=n(s,":");function x(A){return A+((A!=="0")&&(/\d$/.test(A)))?"px":""}if(z.length==2){w=z[0].toLowerCase();y=z[1].toLowerCase();switch(w){case"mso-padding-alt":case"mso-padding-top-alt":case"mso-padding-right-alt":case"mso-padding-bottom-alt":case"mso-padding-left-alt":case"mso-margin-alt":case"mso-margin-top-alt":case"mso-margin-right-alt":case"mso-margin-bottom-alt":case"mso-margin-left-alt":case"mso-table-layout-alt":case"mso-height":case"mso-width":case"mso-vertical-align-alt":u[o++]=w.replace(/^mso-|-alt$/g,"")+":"+x(y);return;case"horiz-align":u[o++]="text-align:"+y;return;case"vert-align":u[o++]="vertical-align:"+y;return;case"font-color":case"mso-foreground":u[o++]="color:"+y;return;case"mso-background":case"mso-highlight":u[o++]="background:"+y;return;case"mso-default-height":u[o++]="min-height:"+x(y);return;case"mso-default-width":u[o++]="min-width:"+x(y);return;case"mso-padding-between-alt":u[o++]="border-collapse:separate;border-spacing:"+x(y);return;case"text-line-through":if((y=="single")||(y=="double")){u[o++]="text-decoration:line-through"}return;case"mso-zero-height":if(y=="yes"){u[o++]="display:none"}return}if(/^(mso|column|font-emph|lang|layout|line-break|list-image|nav|panose|punct|row|ruby|sep|size|src|tab-|table-border|text-(?!align|decor|indent|trans)|top-bar|version|vnd|word-break)/.test(w)){return}u[o++]=w+":"+z[1]}});if(o>0){return h+' style="'+u.join(";")+'"'}else{return h}}]])}}if(b(k,"paste_convert_headers_to_strong")){d([[/<h[1-6][^>]*>/gi,"<p><strong>"],[/<\/h[1-6][^>]*>/gi,"</strong></p>"]])}d([[/Version:[\d.]+\nStartHTML:\d+\nEndHTML:\d+\nStartFragment:\d+\nEndFragment:\d+/gi,""]]);i=b(k,"paste_strip_class_attributes");if(i!=="none"){function m(q,o){if(i==="all"){return""}var h=p(n(o.replace(/^(["'])(.*)\1$/,"$2")," "),function(r){return(/^(?!mso)/i.test(r))});return h.length?' class="'+h.join(" ")+'"':""}j=j.replace(/ class="([^"]+)"/gi,m);j=j.replace(/ class=([\-\w]+)/gi,m)}if(b(k,"paste_remove_spans")){j=j.replace(/<\/?span[^>]*>/gi,"")}e.content=j},_postProcess:function(g,i){var f=this,e=f.editor,h=e.dom,d;if(e.settings.paste_enable_default_filters==false){return}if(i.wordContent){c(h.select("a",i.node),function(j){if(!j.href||j.href.indexOf("#_Toc")!=-1){h.remove(j,1)}});if(b(e,"paste_convert_middot_lists")){f._convertLists(g,i)}d=b(e,"paste_retain_style_properties");if((tinymce.is(d,"string"))&&(d!=="all")&&(d!=="*")){d=tinymce.explode(d.replace(/^none$/i,""));c(h.select("*",i.node),function(m){var n={},k=0,l,o,j;if(d){for(l=0;l<d.length;l++){o=d[l];j=h.getStyle(m,o);if(j){n[o]=j;k++}}}h.setAttrib(m,"style","");if(d&&k>0){h.setStyles(m,n)}else{if(m.nodeName=="SPAN"&&!m.className){h.remove(m,true)}}})}}if(b(e,"paste_remove_styles")||(b(e,"paste_remove_styles_if_webkit")&&tinymce.isWebKit)){c(h.select("*[style]",i.node),function(j){j.removeAttribute("style");j.removeAttribute("data-mce-style")})}else{if(tinymce.isWebKit){c(h.select("*",i.node),function(j){j.removeAttribute("data-mce-style")})}}},_convertLists:function(g,e){var i=g.editor.dom,h,l,d=-1,f,m=[],k,j;c(i.select("p",e.node),function(t){var q,u="",s,r,n,o;for(q=t.firstChild;q&&q.nodeType==3;q=q.nextSibling){u+=q.nodeValue}u=t.innerHTML.replace(/<\/?\w+[^>]*>/gi,"").replace(/&nbsp;/g,"\u00a0");if(/^(__MCE_ITEM__)+[\u2022\u00b7\u00a7\u00d8o\u25CF]\s*\u00a0*/.test(u)){s="ul"}if(/^__MCE_ITEM__\s*\w+\.\s*\u00a0+/.test(u)){s="ol"}if(s){f=parseFloat(t.style.marginLeft||0);if(f>d){m.push(f)}if(!h||s!=k){h=i.create(s);i.insertAfter(h,t)}else{if(f>d){h=l.appendChild(i.create(s))}else{if(f<d){n=tinymce.inArray(m,f);o=i.getParents(h.parentNode,s);h=o[o.length-1-n]||h}}}c(i.select("span",t),function(v){var p=v.innerHTML.replace(/<\/?\w+[^>]*>/gi,"");if(s=="ul"&&/^__MCE_ITEM__[\u2022\u00b7\u00a7\u00d8o\u25CF]/.test(p)){i.remove(v)}else{if(/^__MCE_ITEM__[\s\S]*\w+\.(&nbsp;|\u00a0)*\s*/.test(p)){i.remove(v)}}});r=t.innerHTML;if(s=="ul"){r=t.innerHTML.replace(/__MCE_ITEM__/g,"").replace(/^[\u2022\u00b7\u00a7\u00d8o\u25CF]\s*(&nbsp;|\u00a0)+\s*/,"")}else{r=t.innerHTML.replace(/__MCE_ITEM__/g,"").replace(/^\s*\w+\.(&nbsp;|\u00a0)+\s*/,"")}l=h.appendChild(i.create("li",0,r));i.remove(t);d=f;k=s}else{h=d=0}});j=e.node.innerHTML;if(j.indexOf("__MCE_ITEM__")!=-1){e.node.innerHTML=j.replace(/__MCE_ITEM__/g,"")}},_insert:function(f,d){var e=this.editor,g=e.selection.getRng();if(!e.selection.isCollapsed()&&g.startContainer!=g.endContainer){e.getDoc().execCommand("Delete",false,null)}e.execCommand("mceInsertContent",false,f,{skip_undo:d})},_insertPlainText:function(j){var h=this.editor,f=b(h,"paste_text_linebreaktype"),k=b(h,"paste_text_replacements"),g=tinymce.is;function e(m){c(m,function(n){if(n.constructor==RegExp){j=j.replace(n,"")}else{j=j.replace(n[0],n[1])}})}if((typeof(j)==="string")&&(j.length>0)){if(/<(?:p|br|h[1-6]|ul|ol|dl|table|t[rdh]|div|blockquote|fieldset|pre|address|center)[^>]*>/i.test(j)){e([/[\n\r]+/g])}else{e([/\r+/g])}e([[/<\/(?:p|h[1-6]|ul|ol|dl|table|div|blockquote|fieldset|pre|address|center)>/gi,"\n\n"],[/<br[^>]*>|<\/tr>/gi,"\n"],[/<\/t[dh]>\s*<t[dh][^>]*>/gi,"\t"],/<[a-z!\/?][^>]*>/gi,[/&nbsp;/gi," "],[/(?:(?!\n)\s)*(\n+)(?:(?!\n)\s)*/gi,"$1"]]);var d=Number(b(h,"paste_max_consecutive_linebreaks"));if(d>-1){var l=new RegExp("\n{"+(d+1)+",}","g");var i="";while(i.length<d){i+="\n"}e([[l,i]])}j=h.dom.decode(tinymce.html.Entities.encodeRaw(j));if(g(k,"array")){e(k)}else{if(g(k,"string")){e(new RegExp(k,"gi"))}}if(f=="none"){e([[/\n+/g," "]])}else{if(f=="br"){e([[/\n/g,"<br />"]])}else{if(f=="p"){e([[/\n+/g,"</p><p>"],[/^(.*<\/p>)(<p>)$/,"<p>$1"]])}else{e([[/\n\n/g,"</p><p>"],[/^(.*<\/p>)(<p>)$/,"<p>$1"],[/\n/g,"<br />"]])}}}h.execCommand("mceInsertContent",false,j)}},_legacySupport:function(){var e=this,d=e.editor;d.addCommand("mcePasteWord",function(){d.windowManager.open({file:e.url+"/pasteword.htm",width:parseInt(b(d,"paste_dialog_width")),height:parseInt(b(d,"paste_dialog_height")),inline:1})});if(b(d,"paste_text_use_dialog")){d.addCommand("mcePasteText",function(){d.windowManager.open({file:e.url+"/pastetext.htm",width:parseInt(b(d,"paste_dialog_width")),height:parseInt(b(d,"paste_dialog_height")),inline:1})})}d.addButton("pasteword",{title:"paste.paste_word_desc",cmd:"mcePasteWord"})}});tinymce.PluginManager.add("paste",tinymce.plugins.PastePlugin)})();
\ No newline at end of file
--- a/web/wp-includes/js/tinymce/plugins/paste/editor_plugin_src.js	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/js/tinymce/plugins/paste/editor_plugin_src.js	Wed Dec 19 17:46:52 2012 -0800
@@ -23,6 +23,7 @@
 			paste_convert_headers_to_strong : false,
 			paste_dialog_width : "450",
 			paste_dialog_height : "400",
+			paste_max_consecutive_linebreaks: 2,
 			paste_text_use_dialog : false,
 			paste_text_sticky : false,
 			paste_text_sticky_default : false,
@@ -359,7 +360,7 @@
 			}
 
 			// IE9 adds BRs before/after block elements when contents is pasted from word or for example another browser
-			if (tinymce.isIE && document.documentMode >= 9) {
+			if (tinymce.isIE && document.documentMode >= 9 && /<(h[1-6r]|p|div|address|pre|form|table|tbody|thead|tfoot|th|tr|td|li|ol|ul|caption|blockquote|center|dl|dt|dd|dir|fieldset)/.test(o.content)) {
 				// IE9 adds BRs before/after block elements when contents is pasted from word or for example another browser
 				process([[/(?:<br>&nbsp;[\s\r\n]+|<br>)*(<\/?(h[1-6r]|p|div|address|pre|form|table|tbody|thead|tfoot|th|tr|td|li|ol|ul|caption|blockquote|center|dl|dt|dd|dir|fieldset)[^>]*>)(?:<br>&nbsp;[\s\r\n]+|<br>)*/g, '$1']]);
 
@@ -790,10 +791,23 @@
 					[/<\/t[dh]>\s*<t[dh][^>]*>/gi, "\t"],		// Table cells get tabs betweem them
 					/<[a-z!\/?][^>]*>/gi,						// Delete all remaining tags
 					[/&nbsp;/gi, " "],							// Convert non-break spaces to regular spaces (remember, *plain text*)
-					[/(?:(?!\n)\s)*(\n+)(?:(?!\n)\s)*/gi, "$1"],// Cool little RegExp deletes whitespace around linebreak chars.
-					[/\n{3,}/g, "\n\n"]							// Max. 2 consecutive linebreaks
+					[/(?:(?!\n)\s)*(\n+)(?:(?!\n)\s)*/gi, "$1"] // Cool little RegExp deletes whitespace around linebreak chars.
 				]);
 
+				var maxLinebreaks = Number(getParam(ed, "paste_max_consecutive_linebreaks"));
+				if (maxLinebreaks > -1) {
+					var maxLinebreaksRegex = new RegExp("\n{" + (maxLinebreaks + 1) + ",}", "g");
+					var linebreakReplacement = "";
+
+					while (linebreakReplacement.length < maxLinebreaks) {
+						linebreakReplacement += "\n";
+					}
+
+					process([
+						[maxLinebreaksRegex, linebreakReplacement] // Limit max consecutive linebreaks
+					]);
+				}
+
 				content = ed.dom.decode(tinymce.html.Entities.encodeRaw(content));
 
 				// Perform default or custom replacements
--- a/web/wp-includes/js/tinymce/plugins/paste/pastetext.htm	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/js/tinymce/plugins/paste/pastetext.htm	Wed Dec 19 17:46:52 2012 -0800
@@ -1,8 +1,8 @@
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 	<title>{#paste.paste_text_desc}</title>
-	<script type="text/javascript" src="../../tiny_mce_popup.js?ver=349-20120314"></script>
-	<script type="text/javascript" src="js/pastetext.js?ver=349-20120314"></script>
+	<script type="text/javascript" src="../../tiny_mce_popup.js?ver=358-20121205"></script>
+	<script type="text/javascript" src="js/pastetext.js?ver=358-20121205"></script>
 </head>
 <body onresize="PasteTextDialog.resize();" style="display:none; overflow:hidden;">
 	<form name="source" onsubmit="return PasteTextDialog.insert();" action="#">
@@ -19,13 +19,8 @@
 		<textarea id="content" name="content" rows="15" cols="100" style="width: 100%; height: 100%; font-family: 'Courier New',Courier,mono; font-size: 12px;" dir="ltr" wrap="soft" class="mceFocus"></textarea>
 
 		<div class="mceActionPanel">
-			<div style="float: left">
-				<input type="button" name="cancel" value="{#cancel}" onclick="tinyMCEPopup.close();" id="cancel" />
-			</div>
-
-			<div style="float: right">
-				<input type="submit" name="insert" value="{#insert}" id="insert" />
-			</div>
+			<input type="submit" name="insert" value="{#insert}" id="insert" />
+			<input type="button" name="cancel" value="{#cancel}" onclick="tinyMCEPopup.close();" id="cancel" />
 		</div>
 	</form>
 </body> 
--- a/web/wp-includes/js/tinymce/plugins/paste/pasteword.htm	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/js/tinymce/plugins/paste/pasteword.htm	Wed Dec 19 17:46:52 2012 -0800
@@ -1,8 +1,8 @@
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 	<title>{#paste.paste_word_desc}</title>
-	<script type="text/javascript" src="../../tiny_mce_popup.js?ver=349-20120314"></script>
-	<script type="text/javascript" src="js/pasteword.js?ver=349-20120314"></script>
+	<script type="text/javascript" src="../../tiny_mce_popup.js?ver=358-20121205"></script>
+	<script type="text/javascript" src="js/pasteword.js?ver=358-20121205"></script>
 </head>
 <body onresize="PasteWordDialog.resize();" style="display:none; overflow:hidden;">
 	<form name="source" onsubmit="return PasteWordDialog.insert();" action="#">
@@ -13,13 +13,8 @@
 		<div id="iframecontainer"></div>
 
 		<div class="mceActionPanel">
-			<div style="float: left">
-				<input type="button" id="cancel" name="cancel" value="{#cancel}" onclick="tinyMCEPopup.close();" />
-			</div>
-
-			<div style="float: right">
-				<input type="submit" id="insert" name="insert" value="{#insert}" />
-			</div>
+			<input type="submit" id="insert" name="insert" value="{#insert}" />
+			<input type="button" id="cancel" name="cancel" value="{#cancel}" onclick="tinyMCEPopup.close();" />
 		</div>
 	</form>
 </body>
--- a/web/wp-includes/js/tinymce/plugins/spellchecker/classes/GoogleSpell.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/js/tinymce/plugins/spellchecker/classes/GoogleSpell.php	Wed Dec 19 17:46:52 2012 -0800
@@ -50,7 +50,9 @@
 		return $osug;
 	}
 
-	function &_getMatches($lang, $str) {
+	protected function &_getMatches($lang, $str) {
+		$lang = preg_replace('/[^a-z\-]/i', '', $lang);
+		$str = preg_replace('/[\x00-\x1F\x7F]/', '', $str);
 		$server = "www.google.com";
 		$port = 443;
 		$path = "/tbproxy/spell?lang=" . $lang . "&hl=en";
@@ -105,7 +107,7 @@
 		return $matches;
 	}
 
-	function _unhtmlentities($string) {
+	protected function _unhtmlentities($string) {
 		$string = preg_replace('~&#x([0-9a-f]+);~ei', 'chr(hexdec("\\1"))', $string);
 		$string = preg_replace('~&#([0-9]+);~e', 'chr(\\1)', $string);
 
--- a/web/wp-includes/js/tinymce/plugins/spellchecker/editor_plugin.js	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/js/tinymce/plugins/spellchecker/editor_plugin.js	Wed Dec 19 17:46:52 2012 -0800
@@ -1,1 +1,1 @@
-(function(){var a=tinymce.util.JSONRequest,c=tinymce.each,b=tinymce.DOM;tinymce.create("tinymce.plugins.SpellcheckerPlugin",{getInfo:function(){return{longname:"Spellchecker",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/spellchecker",version:tinymce.majorVersion+"."+tinymce.minorVersion}},init:function(e,f){var g=this,d;g.url=f;g.editor=e;g.rpcUrl=e.getParam("spellchecker_rpc_url","{backend}");if(g.rpcUrl=="{backend}"){if(tinymce.isIE){return}g.hasSupport=true;e.onContextMenu.addToTop(function(h,i){if(g.active){return false}})}e.addCommand("mceSpellCheck",function(){if(g.rpcUrl=="{backend}"){g.editor.getBody().spellcheck=g.active=!g.active;return}if(!g.active){e.setProgressState(1);g._sendRPC("checkWords",[g.selectedLang,g._getWords()],function(h){if(h.length>0){g.active=1;g._markWords(h);e.setProgressState(0);e.nodeChanged()}else{e.setProgressState(0);if(e.getParam("spellchecker_report_no_misspellings",true)){e.windowManager.alert("spellchecker.no_mpell")}}})}else{g._done()}});if(e.settings.content_css!==false){e.contentCSS.push(f+"/css/content.css")}e.onClick.add(g._showMenu,g);e.onContextMenu.add(g._showMenu,g);e.onBeforeGetContent.add(function(){if(g.active){g._removeWords()}});e.onNodeChange.add(function(i,h){h.setActive("spellchecker",g.active)});e.onSetContent.add(function(){g._done()});e.onBeforeGetContent.add(function(){g._done()});e.onBeforeExecCommand.add(function(h,i){if(i=="mceFullScreen"){g._done()}});g.languages={};c(e.getParam("spellchecker_languages","+English=en,Danish=da,Dutch=nl,Finnish=fi,French=fr,German=de,Italian=it,Polish=pl,Portuguese=pt,Spanish=es,Swedish=sv","hash"),function(i,h){if(h.indexOf("+")===0){h=h.substring(1);g.selectedLang=i}g.languages[h]=i})},createControl:function(h,d){var f=this,g,e=f.editor;if(h=="spellchecker"){if(f.rpcUrl=="{backend}"){if(f.hasSupport){g=d.createButton(h,{title:"spellchecker.desc",cmd:"mceSpellCheck",scope:f})}return g}g=d.createSplitButton(h,{title:"spellchecker.desc",cmd:"mceSpellCheck",scope:f});g.onRenderMenu.add(function(j,i){i.add({title:"spellchecker.langs","class":"mceMenuItemTitle"}).setDisabled(1);c(f.languages,function(n,m){var p={icon:1},l;p.onclick=function(){if(n==f.selectedLang){return}l.setSelected(1);f.selectedItem.setSelected(0);f.selectedItem=l;f.selectedLang=n};p.title=m;l=i.add(p);l.setSelected(n==f.selectedLang);if(n==f.selectedLang){f.selectedItem=l}})});return g}},_walk:function(i,g){var h=this.editor.getDoc(),e;if(h.createTreeWalker){e=h.createTreeWalker(i,NodeFilter.SHOW_TEXT,null,false);while((i=e.nextNode())!=null){g.call(this,i)}}else{tinymce.walk(i,g,"childNodes")}},_getSeparators:function(){var e="",d,f=this.editor.getParam("spellchecker_word_separator_chars",'\\s!"#$%&()*+,-./:;<=>?@[]^_{|}§©«®±¶·¸»¼½¾¿×÷¤\u201d\u201c');for(d=0;d<f.length;d++){e+="\\"+f.charAt(d)}return e},_getWords:function(){var e=this.editor,g=[],d="",f={},h=[];this._walk(e.getBody(),function(i){if(i.nodeType==3){d+=i.nodeValue+" "}});if(e.getParam("spellchecker_word_pattern")){h=d.match("("+e.getParam("spellchecker_word_pattern")+")","gi")}else{d=d.replace(new RegExp("([0-9]|["+this._getSeparators()+"])","g")," ");d=tinymce.trim(d.replace(/(\s+)/g," "));h=d.split(" ")}c(h,function(i){if(!f[i]){g.push(i);f[i]=1}});return g},_removeWords:function(e){var f=this.editor,h=f.dom,g=f.selection,d=g.getBookmark();c(h.select("span").reverse(),function(i){if(i&&(h.hasClass(i,"mceItemHiddenSpellWord")||h.hasClass(i,"mceItemHidden"))){if(!e||h.decode(i.innerHTML)==e){h.remove(i,1)}}});g.moveToBookmark(d)},_markWords:function(l){var g=this.editor,f=g.dom,j=g.getDoc(),h=g.selection,i=h.getBookmark(),d=[],k=l.join("|"),m=this._getSeparators(),e=new RegExp("(^|["+m+"])("+k+")(?=["+m+"]|$)","g");this._walk(g.getBody(),function(o){if(o.nodeType==3){d.push(o)}});c(d,function(t){var r,q,o,s,p=t.nodeValue;if(e.test(p)){p=f.encode(p);q=f.create("span",{"class":"mceItemHidden"});if(tinymce.isIE){p=p.replace(e,"$1<mcespell>$2</mcespell>");while((s=p.indexOf("<mcespell>"))!=-1){o=p.substring(0,s);if(o.length){r=j.createTextNode(f.decode(o));q.appendChild(r)}p=p.substring(s+10);s=p.indexOf("</mcespell>");o=p.substring(0,s);p=p.substring(s+11);q.appendChild(f.create("span",{"class":"mceItemHiddenSpellWord"},o))}if(p.length){r=j.createTextNode(f.decode(p));q.appendChild(r)}}else{q.innerHTML=p.replace(e,'$1<span class="mceItemHiddenSpellWord">$2</span>')}f.replace(q,t)}});h.moveToBookmark(i)},_showMenu:function(h,j){var i=this,h=i.editor,d=i._menu,l,k=h.dom,g=k.getViewPort(h.getWin()),f=j.target;j=0;if(!d){d=h.controlManager.createDropMenu("spellcheckermenu",{"class":"mceNoIcons"});i._menu=d}if(k.hasClass(f,"mceItemHiddenSpellWord")){d.removeAll();d.add({title:"spellchecker.wait","class":"mceMenuItemTitle"}).setDisabled(1);i._sendRPC("getSuggestions",[i.selectedLang,k.decode(f.innerHTML)],function(m){var e;d.removeAll();if(m.length>0){d.add({title:"spellchecker.sug","class":"mceMenuItemTitle"}).setDisabled(1);c(m,function(n){d.add({title:n,onclick:function(){k.replace(h.getDoc().createTextNode(n),f);i._checkDone()}})});d.addSeparator()}else{d.add({title:"spellchecker.no_sug","class":"mceMenuItemTitle"}).setDisabled(1)}if(h.getParam("show_ignore_words",true)){e=i.editor.getParam("spellchecker_enable_ignore_rpc","");d.add({title:"spellchecker.ignore_word",onclick:function(){var n=f.innerHTML;k.remove(f,1);i._checkDone();if(e){h.setProgressState(1);i._sendRPC("ignoreWord",[i.selectedLang,n],function(o){h.setProgressState(0)})}}});d.add({title:"spellchecker.ignore_words",onclick:function(){var n=f.innerHTML;i._removeWords(k.decode(n));i._checkDone();if(e){h.setProgressState(1);i._sendRPC("ignoreWords",[i.selectedLang,n],function(o){h.setProgressState(0)})}}})}if(i.editor.getParam("spellchecker_enable_learn_rpc")){d.add({title:"spellchecker.learn_word",onclick:function(){var n=f.innerHTML;k.remove(f,1);i._checkDone();h.setProgressState(1);i._sendRPC("learnWord",[i.selectedLang,n],function(o){h.setProgressState(0)})}})}d.update()});l=b.getPos(h.getContentAreaContainer());d.settings.offset_x=l.x;d.settings.offset_y=l.y;h.selection.select(f);l=k.getPos(f);d.showMenu(l.x,l.y+f.offsetHeight-g.y);return tinymce.dom.Event.cancel(j)}else{d.hideMenu()}},_checkDone:function(){var e=this,d=e.editor,g=d.dom,f;c(g.select("span"),function(h){if(h&&g.hasClass(h,"mceItemHiddenSpellWord")){f=true;return false}});if(!f){e._done()}},_done:function(){var d=this,e=d.active;if(d.active){d.active=0;d._removeWords();if(d._menu){d._menu.hideMenu()}if(e){d.editor.nodeChanged()}}},_sendRPC:function(e,g,d){var f=this;a.sendRPC({url:f.rpcUrl,method:e,params:g,success:d,error:function(i,h){f.editor.setProgressState(0);f.editor.windowManager.alert(i.errstr||("Error response: "+h.responseText))}})}});tinymce.PluginManager.add("spellchecker",tinymce.plugins.SpellcheckerPlugin)})();
\ No newline at end of file
+(function(){var a=tinymce.util.JSONRequest,c=tinymce.each,b=tinymce.DOM;tinymce.create("tinymce.plugins.SpellcheckerPlugin",{getInfo:function(){return{longname:"Spellchecker",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/spellchecker",version:tinymce.majorVersion+"."+tinymce.minorVersion}},init:function(e,f){var g=this,d;g.url=f;g.editor=e;g.rpcUrl=e.getParam("spellchecker_rpc_url","{backend}");if(g.rpcUrl=="{backend}"){if(tinymce.isIE){return}g.hasSupport=true;e.onContextMenu.addToTop(function(h,i){if(g.active){return false}})}e.addCommand("mceSpellCheck",function(){if(g.rpcUrl=="{backend}"){g.editor.getBody().spellcheck=g.active=!g.active;return}if(!g.active){e.setProgressState(1);g._sendRPC("checkWords",[g.selectedLang,g._getWords()],function(h){if(h.length>0){g.active=1;g._markWords(h);e.setProgressState(0);e.nodeChanged()}else{e.setProgressState(0);if(e.getParam("spellchecker_report_no_misspellings",true)){e.windowManager.alert("spellchecker.no_mpell")}}})}else{g._done()}});if(e.settings.content_css!==false){e.contentCSS.push(f+"/css/content.css")}e.onClick.add(g._showMenu,g);e.onContextMenu.add(g._showMenu,g);e.onBeforeGetContent.add(function(){if(g.active){g._removeWords()}});e.onNodeChange.add(function(i,h){h.setActive("spellchecker",g.active)});e.onSetContent.add(function(){g._done()});e.onBeforeGetContent.add(function(){g._done()});e.onBeforeExecCommand.add(function(h,i){if(i=="mceFullScreen"){g._done()}});g.languages={};c(e.getParam("spellchecker_languages","+English=en,Danish=da,Dutch=nl,Finnish=fi,French=fr,German=de,Italian=it,Polish=pl,Portuguese=pt,Spanish=es,Swedish=sv","hash"),function(i,h){if(h.indexOf("+")===0){h=h.substring(1);g.selectedLang=i}g.languages[h]=i})},createControl:function(h,d){var f=this,g,e=f.editor;if(h=="spellchecker"){if(f.rpcUrl=="{backend}"){if(f.hasSupport){g=d.createButton(h,{title:"spellchecker.desc",cmd:"mceSpellCheck",scope:f})}return g}g=d.createSplitButton(h,{title:"spellchecker.desc",cmd:"mceSpellCheck",scope:f});g.onRenderMenu.add(function(j,i){i.add({title:"spellchecker.langs","class":"mceMenuItemTitle"}).setDisabled(1);c(f.languages,function(n,m){var p={icon:1},l;p.onclick=function(){if(n==f.selectedLang){return}l.setSelected(1);f.selectedItem.setSelected(0);f.selectedItem=l;f.selectedLang=n};p.title=m;l=i.add(p);l.setSelected(n==f.selectedLang);if(n==f.selectedLang){f.selectedItem=l}})});return g}},_walk:function(i,g){var h=this.editor.getDoc(),e;if(h.createTreeWalker){e=h.createTreeWalker(i,NodeFilter.SHOW_TEXT,null,false);while((i=e.nextNode())!=null){g.call(this,i)}}else{tinymce.walk(i,g,"childNodes")}},_getSeparators:function(){var e="",d,f=this.editor.getParam("spellchecker_word_separator_chars",'\\s!"#$%&()*+,-./:;<=>?@[]^_{|}§©«®±¶·¸»¼½¾¿×÷¤\u201d\u201c');for(d=0;d<f.length;d++){e+="\\"+f.charAt(d)}return e},_getWords:function(){var e=this.editor,g=[],d="",f={},h=[];this._walk(e.getBody(),function(i){if(i.nodeType==3){d+=i.nodeValue+" "}});if(e.getParam("spellchecker_word_pattern")){h=d.match("("+e.getParam("spellchecker_word_pattern")+")","gi")}else{d=d.replace(new RegExp("([0-9]|["+this._getSeparators()+"])","g")," ");d=tinymce.trim(d.replace(/(\s+)/g," "));h=d.split(" ")}c(h,function(i){if(!f[i]){g.push(i);f[i]=1}});return g},_removeWords:function(d){var e=this.editor,h=e.dom,g=e.selection,f=g.getRng(true);c(h.select("span").reverse(),function(i){if(i&&(h.hasClass(i,"mceItemHiddenSpellWord")||h.hasClass(i,"mceItemHidden"))){if(!d||h.decode(i.innerHTML)==d){h.remove(i,1)}}});g.setRng(f)},_markWords:function(l){var h=this.editor,g=h.dom,j=h.getDoc(),i=h.selection,d=i.getRng(true),e=[],k=l.join("|"),m=this._getSeparators(),f=new RegExp("(^|["+m+"])("+k+")(?=["+m+"]|$)","g");this._walk(h.getBody(),function(o){if(o.nodeType==3){e.push(o)}});c(e,function(t){var r,q,o,s,p=t.nodeValue;if(f.test(p)){p=g.encode(p);q=g.create("span",{"class":"mceItemHidden"});if(tinymce.isIE){p=p.replace(f,"$1<mcespell>$2</mcespell>");while((s=p.indexOf("<mcespell>"))!=-1){o=p.substring(0,s);if(o.length){r=j.createTextNode(g.decode(o));q.appendChild(r)}p=p.substring(s+10);s=p.indexOf("</mcespell>");o=p.substring(0,s);p=p.substring(s+11);q.appendChild(g.create("span",{"class":"mceItemHiddenSpellWord"},o))}if(p.length){r=j.createTextNode(g.decode(p));q.appendChild(r)}}else{q.innerHTML=p.replace(f,'$1<span class="mceItemHiddenSpellWord">$2</span>')}g.replace(q,t)}});i.setRng(d)},_showMenu:function(h,j){var i=this,h=i.editor,d=i._menu,l,k=h.dom,g=k.getViewPort(h.getWin()),f=j.target;j=0;if(!d){d=h.controlManager.createDropMenu("spellcheckermenu",{"class":"mceNoIcons"});i._menu=d}if(k.hasClass(f,"mceItemHiddenSpellWord")){d.removeAll();d.add({title:"spellchecker.wait","class":"mceMenuItemTitle"}).setDisabled(1);i._sendRPC("getSuggestions",[i.selectedLang,k.decode(f.innerHTML)],function(m){var e;d.removeAll();if(m.length>0){d.add({title:"spellchecker.sug","class":"mceMenuItemTitle"}).setDisabled(1);c(m,function(n){d.add({title:n,onclick:function(){k.replace(h.getDoc().createTextNode(n),f);i._checkDone()}})});d.addSeparator()}else{d.add({title:"spellchecker.no_sug","class":"mceMenuItemTitle"}).setDisabled(1)}if(h.getParam("show_ignore_words",true)){e=i.editor.getParam("spellchecker_enable_ignore_rpc","");d.add({title:"spellchecker.ignore_word",onclick:function(){var n=f.innerHTML;k.remove(f,1);i._checkDone();if(e){h.setProgressState(1);i._sendRPC("ignoreWord",[i.selectedLang,n],function(o){h.setProgressState(0)})}}});d.add({title:"spellchecker.ignore_words",onclick:function(){var n=f.innerHTML;i._removeWords(k.decode(n));i._checkDone();if(e){h.setProgressState(1);i._sendRPC("ignoreWords",[i.selectedLang,n],function(o){h.setProgressState(0)})}}})}if(i.editor.getParam("spellchecker_enable_learn_rpc")){d.add({title:"spellchecker.learn_word",onclick:function(){var n=f.innerHTML;k.remove(f,1);i._checkDone();h.setProgressState(1);i._sendRPC("learnWord",[i.selectedLang,n],function(o){h.setProgressState(0)})}})}d.update()});l=b.getPos(h.getContentAreaContainer());d.settings.offset_x=l.x;d.settings.offset_y=l.y;h.selection.select(f);l=k.getPos(f);d.showMenu(l.x,l.y+f.offsetHeight-g.y);return tinymce.dom.Event.cancel(j)}else{d.hideMenu()}},_checkDone:function(){var e=this,d=e.editor,g=d.dom,f;c(g.select("span"),function(h){if(h&&g.hasClass(h,"mceItemHiddenSpellWord")){f=true;return false}});if(!f){e._done()}},_done:function(){var d=this,e=d.active;if(d.active){d.active=0;d._removeWords();if(d._menu){d._menu.hideMenu()}if(e){d.editor.nodeChanged()}}},_sendRPC:function(e,g,d){var f=this;a.sendRPC({url:f.rpcUrl,method:e,params:g,success:d,error:function(i,h){f.editor.setProgressState(0);f.editor.windowManager.alert(i.errstr||("Error response: "+h.responseText))}})}});tinymce.PluginManager.add("spellchecker",tinymce.plugins.SpellcheckerPlugin)})();
\ No newline at end of file
--- a/web/wp-includes/js/tinymce/plugins/spellchecker/editor_plugin_src.js	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/js/tinymce/plugins/spellchecker/editor_plugin_src.js	Wed Dec 19 17:46:52 2012 -0800
@@ -208,7 +208,7 @@
 		},
 
 		_removeWords : function(w) {
-			var ed = this.editor, dom = ed.dom, se = ed.selection, b = se.getBookmark();
+			var ed = this.editor, dom = ed.dom, se = ed.selection, r = se.getRng(true);
 
 			each(dom.select('span').reverse(), function(n) {
 				if (n && (dom.hasClass(n, 'mceItemHiddenSpellWord') || dom.hasClass(n, 'mceItemHidden'))) {
@@ -217,11 +217,11 @@
 				}
 			});
 
-			se.moveToBookmark(b);
+			se.setRng(r);
 		},
 
 		_markWords : function(wl) {
-			var ed = this.editor, dom = ed.dom, doc = ed.getDoc(), se = ed.selection, b = se.getBookmark(), nl = [],
+			var ed = this.editor, dom = ed.dom, doc = ed.getDoc(), se = ed.selection, r = se.getRng(true), nl = [],
 				w = wl.join('|'), re = this._getSeparators(), rx = new RegExp('(^|[' + re + '])(' + w + ')(?=[' + re + ']|$)', 'g');
 
 			// Collect all text nodes
@@ -279,7 +279,7 @@
 				}
 			});
 
-			se.moveToBookmark(b);
+			se.setRng(r);
 		},
 
 		_showMenu : function(ed, e) {
--- a/web/wp-includes/js/tinymce/plugins/tabfocus/editor_plugin.js	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/js/tinymce/plugins/tabfocus/editor_plugin.js	Wed Dec 19 17:46:52 2012 -0800
@@ -1,1 +1,1 @@
-(function(){var c=tinymce.DOM,a=tinymce.dom.Event,d=tinymce.each,b=tinymce.explode;tinymce.create("tinymce.plugins.TabFocusPlugin",{init:function(f,g){function e(i,j){if(j.keyCode===9){return a.cancel(j)}}function h(l,p){var j,m,o,n,k;function q(t){n=c.select(":input:enabled,*[tabindex]");function s(v){return v.nodeName==="BODY"||(v.type!="hidden"&&!(v.style.display=="none")&&!(v.style.visibility=="hidden")&&s(v.parentNode))}function i(v){return v.attributes.tabIndex.specified||v.nodeName=="INPUT"||v.nodeName=="TEXTAREA"}function u(){return tinymce.isIE6||tinymce.isIE7}function r(v){return((!u()||i(v)))&&v.getAttribute("tabindex")!="-1"&&s(v)}d(n,function(w,v){if(w.id==l.id){j=v;return false}});if(t>0){for(m=j+1;m<n.length;m++){if(r(n[m])){return n[m]}}}else{for(m=j-1;m>=0;m--){if(r(n[m])){return n[m]}}}return null}if(p.keyCode===9){k=b(l.getParam("tab_focus",l.getParam("tabfocus_elements",":prev,:next")));if(k.length==1){k[1]=k[0];k[0]=":prev"}if(p.shiftKey){if(k[0]==":prev"){n=q(-1)}else{n=c.get(k[0])}}else{if(k[1]==":next"){n=q(1)}else{n=c.get(k[1])}}if(n){if(n.id&&(l=tinymce.get(n.id||n.name))){l.focus()}else{window.setTimeout(function(){if(!tinymce.isWebKit){window.focus()}n.focus()},10)}return a.cancel(p)}}}f.onKeyUp.add(e);if(tinymce.isGecko){f.onKeyPress.add(h);f.onKeyDown.add(e)}else{f.onKeyDown.add(h)}},getInfo:function(){return{longname:"Tabfocus",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/tabfocus",version:tinymce.majorVersion+"."+tinymce.minorVersion}}});tinymce.PluginManager.add("tabfocus",tinymce.plugins.TabFocusPlugin)})();
\ No newline at end of file
+(function(){var c=tinymce.DOM,a=tinymce.dom.Event,d=tinymce.each,b=tinymce.explode;tinymce.create("tinymce.plugins.TabFocusPlugin",{init:function(f,g){function e(i,j){if(j.keyCode===9){return a.cancel(j)}}function h(l,p){var j,m,o,n,k;function q(t){n=c.select(":input:enabled,*[tabindex]:not(iframe)");function s(v){return v.nodeName==="BODY"||(v.type!="hidden"&&!(v.style.display=="none")&&!(v.style.visibility=="hidden")&&s(v.parentNode))}function i(v){return v.attributes.tabIndex.specified||v.nodeName=="INPUT"||v.nodeName=="TEXTAREA"}function u(){return tinymce.isIE6||tinymce.isIE7}function r(v){return((!u()||i(v)))&&v.getAttribute("tabindex")!="-1"&&s(v)}d(n,function(w,v){if(w.id==l.id){j=v;return false}});if(t>0){for(m=j+1;m<n.length;m++){if(r(n[m])){return n[m]}}}else{for(m=j-1;m>=0;m--){if(r(n[m])){return n[m]}}}return null}if(p.keyCode===9){k=b(l.getParam("tab_focus",l.getParam("tabfocus_elements",":prev,:next")));if(k.length==1){k[1]=k[0];k[0]=":prev"}if(p.shiftKey){if(k[0]==":prev"){n=q(-1)}else{n=c.get(k[0])}}else{if(k[1]==":next"){n=q(1)}else{n=c.get(k[1])}}if(n){if(n.id&&(l=tinymce.get(n.id||n.name))){l.focus()}else{window.setTimeout(function(){if(!tinymce.isWebKit){window.focus()}n.focus()},10)}return a.cancel(p)}}}f.onKeyUp.add(e);if(tinymce.isGecko){f.onKeyPress.add(h);f.onKeyDown.add(e)}else{f.onKeyDown.add(h)}},getInfo:function(){return{longname:"Tabfocus",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/tabfocus",version:tinymce.majorVersion+"."+tinymce.minorVersion}}});tinymce.PluginManager.add("tabfocus",tinymce.plugins.TabFocusPlugin)})();
\ No newline at end of file
--- a/web/wp-includes/js/tinymce/plugins/tabfocus/editor_plugin_src.js	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/js/tinymce/plugins/tabfocus/editor_plugin_src.js	Wed Dec 19 17:46:52 2012 -0800
@@ -22,7 +22,7 @@
 				var x, i, f, el, v;
 
 				function find(d) {
-					el = DOM.select(':input:enabled,*[tabindex]');
+					el = DOM.select(':input:enabled,*[tabindex]:not(iframe)');
 
 					function canSelectRecursive(e) {
 						return e.nodeName==="BODY" || (e.type != 'hidden' &&
--- a/web/wp-includes/js/tinymce/plugins/wordpress/editor_plugin.js	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/js/tinymce/plugins/wordpress/editor_plugin.js	Wed Dec 19 17:46:52 2012 -0800
@@ -1,1 +1,1 @@
-(function(){var a=tinymce.DOM;tinymce.create("tinymce.plugins.WordPress",{mceTout:0,init:function(c,d){var e=this,h=c.getParam("wordpress_adv_toolbar","toolbar2"),g=0,f,b,i;f='<img src="'+d+'/img/trans.gif" class="mceWPmore mceItemNoResize" title="'+c.getLang("wordpress.wp_more_alt")+'" />';b='<img src="'+d+'/img/trans.gif" class="mceWPnextpage mceItemNoResize" title="'+c.getLang("wordpress.wp_page_alt")+'" />';if(getUserSetting("hidetb","0")=="1"){c.settings.wordpress_adv_hidden=0}c.onPostRender.add(function(){var j=c.controlManager.get(h);if(c.getParam("wordpress_adv_hidden",1)&&j){a.hide(j.id);e._resizeIframe(c,h,28)}});c.addCommand("WP_More",function(){c.execCommand("mceInsertContent",0,f)});c.addCommand("WP_Page",function(){c.execCommand("mceInsertContent",0,b)});c.addCommand("WP_Help",function(){c.windowManager.open({url:tinymce.baseURL+"/wp-mce-help.php",width:450,height:420,inline:1})});c.addCommand("WP_Adv",function(){var j=c.controlManager,k=j.get(h).id;if("undefined"==k){return}if(a.isHidden(k)){j.setActive("wp_adv",1);a.show(k);e._resizeIframe(c,h,-28);c.settings.wordpress_adv_hidden=0;setUserSetting("hidetb","1")}else{j.setActive("wp_adv",0);a.hide(k);e._resizeIframe(c,h,28);c.settings.wordpress_adv_hidden=1;setUserSetting("hidetb","0")}});c.addCommand("WP_Medialib",function(){var k=c.getParam("wp_fullscreen_editor_id")||c.getParam("fullscreen_editor_id")||c.id,j=tinymce.DOM.select("#wp-"+k+"-media-buttons a.thickbox");if(j&&j[0]){j=j[0]}else{return}tb_show("",j.href);tinymce.DOM.setStyle(["TB_overlay","TB_window","TB_load"],"z-index","999999")});c.addButton("wp_more",{title:"wordpress.wp_more_desc",cmd:"WP_More"});c.addButton("wp_page",{title:"wordpress.wp_page_desc",image:d+"/img/page.gif",cmd:"WP_Page"});c.addButton("wp_help",{title:"wordpress.wp_help_desc",cmd:"WP_Help"});c.addButton("wp_adv",{title:"wordpress.wp_adv_desc",cmd:"WP_Adv"});c.addButton("add_media",{title:"wordpress.add_media",image:d+"/img/image.gif",cmd:"WP_Medialib"});c.onBeforeExecCommand.add(function(q,p,t,m,k){var w=tinymce.DOM,l,j,s,v,u,r;if("mceFullScreen"==p){if("mce_fullscreen"!=q.id&&w.select("a.thickbox").length){q.settings.theme_advanced_buttons1+=",|,add_media"}}if("JustifyLeft"==p||"JustifyRight"==p||"JustifyCenter"==p){l=q.selection.getNode();if(l.nodeName=="IMG"){r=p.substr(7).toLowerCase();u="align"+r;j=q.dom.getParent(l,"dl.wp-caption");s=q.dom.getParent(l,"div.mceTemp");if(j&&s){v=q.dom.hasClass(j,u)?"alignnone":u;j.className=j.className.replace(/align[^ '"]+\s?/g,"");q.dom.addClass(j,v);if(v=="aligncenter"){q.dom.addClass(s,"mceIEcenter")}else{q.dom.removeClass(s,"mceIEcenter")}k.terminate=true;q.execCommand("mceRepaint")}else{if(q.dom.hasClass(l,u)){q.dom.addClass(l,"alignnone")}else{q.dom.removeClass(l,"alignnone")}}}}});c.onInit.add(function(l){var k=l.getParam("body_class",""),j=l.getBody();if(k){k=k.split(" ")}else{k=[]}if(l.getParam("directionality","")=="rtl"){k.push("rtl")}if(tinymce.isIE9){k.push("ie9")}else{if(tinymce.isIE8){k.push("ie8")}else{if(tinymce.isIE7){k.push("ie7")}}}if(l.id!="wp_mce_fullscreen"&&l.id!="mce_fullscreen"){k.push("wp-editor")}else{if(l.id=="mce_fullscreen"){k.push("mce-fullscreen")}}tinymce.each(k,function(m){if(m){l.dom.addClass(j,m)}});l.onNodeChange.add(function(n,m,p){var o;if(p.nodeName=="IMG"){o=n.dom.getParent(p,"dl.wp-caption")}else{if(p.nodeName=="DIV"&&n.dom.hasClass(p,"mceTemp")){o=p.firstChild;if(!n.dom.hasClass(o,"wp-caption")){o=false}}}if(o){if(n.dom.hasClass(o,"alignleft")){m.setActive("justifyleft",1)}else{if(n.dom.hasClass(o,"alignright")){m.setActive("justifyright",1)}else{if(n.dom.hasClass(o,"aligncenter")){m.setActive("justifycenter",1)}}}}});l.onBeforeSetContent.add(function(m,n){if(n.content){n.content=n.content.replace(/<p>\s*<(p|div|ul|ol|dl|table|blockquote|h[1-6]|fieldset|pre|address)( [^>]*)?>/gi,"<$1$2>");n.content=n.content.replace(/<\/(p|div|ul|ol|dl|table|blockquote|h[1-6]|fieldset|pre|address)>\s*<\/p>/gi,"</$1>")}})});if("undefined"!=typeof(jQuery)){c.onKeyUp.add(function(l,m){var j=m.keyCode||m.charCode;if(j==g){return}if(13==j||8==g||46==g){jQuery(document).triggerHandler("wpcountwords",[l.getContent({format:"raw"})])}g=j})}c.onSaveContent.addToTop(function(j,k){k.content=k.content.replace(/<p>(<br ?\/?>|\u00a0|\uFEFF)?<\/p>/g,"<p>&nbsp;</p>")});c.onSaveContent.add(function(j,k){if(j.getParam("wpautop",true)&&typeof(switchEditors)=="object"){if(j.isHidden()){k.content=k.element.value}else{k.content=switchEditors.pre_wpautop(k.content)}}});e._handleMoreBreak(c,d);c.addShortcut("alt+shift+c",c.getLang("justifycenter_desc"),"JustifyCenter");c.addShortcut("alt+shift+r",c.getLang("justifyright_desc"),"JustifyRight");c.addShortcut("alt+shift+l",c.getLang("justifyleft_desc"),"JustifyLeft");c.addShortcut("alt+shift+j",c.getLang("justifyfull_desc"),"JustifyFull");c.addShortcut("alt+shift+q",c.getLang("blockquote_desc"),"mceBlockQuote");c.addShortcut("alt+shift+u",c.getLang("bullist_desc"),"InsertUnorderedList");c.addShortcut("alt+shift+o",c.getLang("numlist_desc"),"InsertOrderedList");c.addShortcut("alt+shift+d",c.getLang("striketrough_desc"),"Strikethrough");c.addShortcut("alt+shift+n",c.getLang("spellchecker.desc"),"mceSpellCheck");c.addShortcut("alt+shift+a",c.getLang("link_desc"),"mceLink");c.addShortcut("alt+shift+s",c.getLang("unlink_desc"),"unlink");c.addShortcut("alt+shift+m",c.getLang("image_desc"),"WP_Medialib");c.addShortcut("alt+shift+g",c.getLang("fullscreen.desc"),"mceFullScreen");c.addShortcut("alt+shift+z",c.getLang("wp_adv_desc"),"WP_Adv");c.addShortcut("alt+shift+h",c.getLang("help_desc"),"WP_Help");c.addShortcut("alt+shift+t",c.getLang("wp_more_desc"),"WP_More");c.addShortcut("alt+shift+p",c.getLang("wp_page_desc"),"WP_Page");c.addShortcut("ctrl+s",c.getLang("save_desc"),function(){if("function"==typeof autosave){autosave()}});if(tinymce.isWebKit){c.addShortcut("alt+shift+b",c.getLang("bold_desc"),"Bold");c.addShortcut("alt+shift+i",c.getLang("italic_desc"),"Italic")}c.onInit.add(function(j){tinymce.dom.Event.add(j.getWin(),"scroll",function(k){j.plugins.wordpress._hideButtons()});tinymce.dom.Event.add(j.getBody(),"dragstart",function(k){j.plugins.wordpress._hideButtons()})});c.onBeforeExecCommand.add(function(j,l,k,m){j.plugins.wordpress._hideButtons()});c.onSaveContent.add(function(j,k){j.plugins.wordpress._hideButtons()});c.onMouseDown.add(function(j,k){if(k.target.nodeName!="IMG"){j.plugins.wordpress._hideButtons()}});i=function(j){var k;if(j.target.id=="mceModalBlocker"||j.target.className=="ui-widget-overlay"){for(k in c.windowManager.windows){c.windowManager.close(null,k)}}};tinymce.dom.Event.remove(document.body,"click",i);tinymce.dom.Event.add(document.body,"click",i)},getInfo:function(){return{longname:"WordPress Plugin",author:"WordPress",authorurl:"http://wordpress.org",infourl:"http://wordpress.org",version:"3.0"}},_setEmbed:function(b){return b.replace(/\[embed\]([\s\S]+?)\[\/embed\][\s\u00a0]*/g,function(d,c){return'<img width="300" height="200" src="'+tinymce.baseURL+'/plugins/wordpress/img/trans.gif" class="wp-oembed mceItemNoResize" alt="'+c+'" title="'+c+'" />'})},_getEmbed:function(b){return b.replace(/<img[^>]+>/g,function(c){if(c.indexOf('class="wp-oembed')!=-1){var d=c.match(/alt="([^\"]+)"/);if(d[1]){c="[embed]"+d[1]+"[/embed]"}}return c})},_showButtons:function(f,d){var g=tinyMCE.activeEditor,i,h,b,j=tinymce.DOM,e,c;b=g.dom.getViewPort(g.getWin());i=j.getPos(g.getContentAreaContainer());h=g.dom.getPos(f);e=Math.max(h.x-b.x,0)+i.x;c=Math.max(h.y-b.y,0)+i.y;j.setStyles(d,{top:c+5+"px",left:e+5+"px",display:"block"});if(this.mceTout){clearTimeout(this.mceTout)}this.mceTout=setTimeout(function(){g.plugins.wordpress._hideButtons()},5000)},_hideButtons:function(){if(!this.mceTout){return}if(document.getElementById("wp_editbtns")){tinymce.DOM.hide("wp_editbtns")}if(document.getElementById("wp_gallerybtns")){tinymce.DOM.hide("wp_gallerybtns")}clearTimeout(this.mceTout);this.mceTout=0},_resizeIframe:function(c,e,b){var d=c.getContentAreaContainer().firstChild;a.setStyle(d,"height",d.clientHeight+b);c.theme.deltaHeight+=b},_handleMoreBreak:function(c,d){var e,b;e='<img src="'+d+'/img/trans.gif" alt="$1" class="mceWPmore mceItemNoResize" title="'+c.getLang("wordpress.wp_more_alt")+'" />';b='<img src="'+d+'/img/trans.gif" class="mceWPnextpage mceItemNoResize" title="'+c.getLang("wordpress.wp_page_alt")+'" />';c.onPostRender.add(function(){if(c.theme.onResolveName){c.theme.onResolveName.add(function(f,g){if(g.node.nodeName=="IMG"){if(c.dom.hasClass(g.node,"mceWPmore")){g.name="wpmore"}if(c.dom.hasClass(g.node,"mceWPnextpage")){g.name="wppage"}}})}});c.onBeforeSetContent.add(function(f,g){if(g.content){g.content=g.content.replace(/<!--more(.*?)-->/g,e);g.content=g.content.replace(/<!--nextpage-->/g,b)}});c.onPostProcess.add(function(f,g){if(g.get){g.content=g.content.replace(/<img[^>]+>/g,function(i){if(i.indexOf('class="mceWPmore')!==-1){var h,j=(h=i.match(/alt="(.*?)"/))?h[1]:"";i="<!--more"+j+"-->"}if(i.indexOf('class="mceWPnextpage')!==-1){i="<!--nextpage-->"}return i})}});c.onNodeChange.add(function(g,f,h){f.setActive("wp_page",h.nodeName==="IMG"&&g.dom.hasClass(h,"mceWPnextpage"));f.setActive("wp_more",h.nodeName==="IMG"&&g.dom.hasClass(h,"mceWPmore"))})}});tinymce.PluginManager.add("wordpress",tinymce.plugins.WordPress)})();
\ No newline at end of file
+(function(){var a=tinymce.DOM;tinymce.create("tinymce.plugins.WordPress",{init:function(f,c){var j=this,e=f.getParam("wordpress_adv_toolbar","toolbar2"),i=0,d,b,h,g;d='<img src="'+c+'/img/trans.gif" class="mceWPmore mceItemNoResize" title="'+f.getLang("wordpress.wp_more_alt")+'" />';b='<img src="'+c+'/img/trans.gif" class="mceWPnextpage mceItemNoResize" title="'+f.getLang("wordpress.wp_page_alt")+'" />';if(getUserSetting("hidetb","0")=="1"){f.settings.wordpress_adv_hidden=0}f.onPostRender.add(function(){var k=f.controlManager.get(e);if(f.getParam("wordpress_adv_hidden",1)&&k){a.hide(k.id);j._resizeIframe(f,e,28)}});f.addCommand("WP_More",function(){f.execCommand("mceInsertContent",0,d)});f.addCommand("WP_Page",function(){f.execCommand("mceInsertContent",0,b)});f.addCommand("WP_Help",function(){f.windowManager.open({url:tinymce.baseURL+"/wp-mce-help.php",width:450,height:420,inline:1})});f.addCommand("WP_Adv",function(){var k=f.controlManager,l=k.get(e).id;if("undefined"==l){return}if(a.isHidden(l)){k.setActive("wp_adv",1);a.show(l);j._resizeIframe(f,e,-28);f.settings.wordpress_adv_hidden=0;setUserSetting("hidetb","1")}else{k.setActive("wp_adv",0);a.hide(l);j._resizeIframe(f,e,28);f.settings.wordpress_adv_hidden=1;setUserSetting("hidetb","0")}});f.addCommand("WP_Medialib",function(){if(typeof wp!=="undefined"&&wp.media&&wp.media.editor){wp.media.editor.open(f.id)}});f.addButton("wp_more",{title:"wordpress.wp_more_desc",cmd:"WP_More"});f.addButton("wp_page",{title:"wordpress.wp_page_desc",image:c+"/img/page.gif",cmd:"WP_Page"});f.addButton("wp_help",{title:"wordpress.wp_help_desc",cmd:"WP_Help"});f.addButton("wp_adv",{title:"wordpress.wp_adv_desc",cmd:"WP_Adv"});f.addButton("add_media",{title:"wordpress.add_media",image:c+"/img/image.gif",cmd:"WP_Medialib"});f.onBeforeExecCommand.add(function(r,q,u,p,l){var x=tinymce.DOM,m,k,t,w,v,s;if("mceFullScreen"==q){if("mce_fullscreen"!=r.id&&x.select("a.thickbox").length){r.settings.theme_advanced_buttons1+=",|,add_media"}}if("JustifyLeft"==q||"JustifyRight"==q||"JustifyCenter"==q){m=r.selection.getNode();if(m.nodeName=="IMG"){s=q.substr(7).toLowerCase();v="align"+s;k=r.dom.getParent(m,"dl.wp-caption");t=r.dom.getParent(m,"div.mceTemp");if(k&&t){w=r.dom.hasClass(k,v)?"alignnone":v;k.className=k.className.replace(/align[^ '"]+\s?/g,"");r.dom.addClass(k,w);if(w=="aligncenter"){r.dom.addClass(t,"mceIEcenter")}else{r.dom.removeClass(t,"mceIEcenter")}l.terminate=true;r.execCommand("mceRepaint")}else{if(r.dom.hasClass(m,v)){r.dom.addClass(m,"alignnone")}else{r.dom.removeClass(m,"alignnone")}}}}});f.onInit.add(function(m){var l=m.getParam("body_class",""),k=m.getBody();if(l){l=l.split(" ")}else{l=[]}if(m.getParam("directionality","")=="rtl"){l.push("rtl")}if(tinymce.isIE9){l.push("ie9")}else{if(tinymce.isIE8){l.push("ie8")}else{if(tinymce.isIE7){l.push("ie7")}}}if(m.id!="wp_mce_fullscreen"&&m.id!="mce_fullscreen"){l.push("wp-editor")}else{if(m.id=="mce_fullscreen"){l.push("mce-fullscreen")}}tinymce.each(l,function(n){if(n){m.dom.addClass(k,n)}});m.onNodeChange.add(function(o,n,q){var p;if(q.nodeName=="IMG"){p=o.dom.getParent(q,"dl.wp-caption")}else{if(q.nodeName=="DIV"&&o.dom.hasClass(q,"mceTemp")){p=q.firstChild;if(!o.dom.hasClass(p,"wp-caption")){p=false}}}if(p){if(o.dom.hasClass(p,"alignleft")){n.setActive("justifyleft",1)}else{if(o.dom.hasClass(p,"alignright")){n.setActive("justifyright",1)}else{if(o.dom.hasClass(p,"aligncenter")){n.setActive("justifycenter",1)}}}}});m.onBeforeSetContent.add(function(n,p){if(p.content){p.content=p.content.replace(/<p>\s*<(p|div|ul|ol|dl|table|blockquote|h[1-6]|fieldset|pre|address)( [^>]*)?>/gi,"<$1$2>");p.content=p.content.replace(/<\/(p|div|ul|ol|dl|table|blockquote|h[1-6]|fieldset|pre|address)>\s*<\/p>/gi,"</$1>")}})});if("undefined"!=typeof(jQuery)){f.onKeyUp.add(function(m,n){var l=n.keyCode||n.charCode;if(l==i){return}if(13==l||8==i||46==i){jQuery(document).triggerHandler("wpcountwords",[m.getContent({format:"raw"})])}i=l})}f.onSaveContent.addToTop(function(k,l){l.content=l.content.replace(/<p>(<br ?\/?>|\u00a0|\uFEFF)?<\/p>/g,"<p>&nbsp;</p>")});f.onSaveContent.add(function(k,l){if(k.getParam("wpautop",true)&&typeof(switchEditors)=="object"){if(k.isHidden()){l.content=l.element.value}else{l.content=switchEditors.pre_wpautop(l.content)}}});j._handleMoreBreak(f,c);g="alt+shift";f.addShortcut(g+"+c","justifycenter_desc","JustifyCenter");f.addShortcut(g+"+r","justifyright_desc","JustifyRight");f.addShortcut(g+"+l","justifyleft_desc","JustifyLeft");f.addShortcut(g+"+j","justifyfull_desc","JustifyFull");f.addShortcut(g+"+q","blockquote_desc","mceBlockQuote");f.addShortcut(g+"+u","bullist_desc","InsertUnorderedList");f.addShortcut(g+"+o","numlist_desc","InsertOrderedList");f.addShortcut(g+"+n","spellchecker.desc","mceSpellCheck");f.addShortcut(g+"+a","link_desc","WP_Link");f.addShortcut(g+"+s","unlink_desc","unlink");f.addShortcut(g+"+m","image_desc","WP_Medialib");f.addShortcut(g+"+z","wordpress.wp_adv_desc","WP_Adv");f.addShortcut(g+"+t","wordpress.wp_more_desc","WP_More");f.addShortcut(g+"+d","striketrough_desc","Strikethrough");f.addShortcut(g+"+h","help_desc","WP_Help");f.addShortcut(g+"+p","wordpress.wp_page_desc","WP_Page");f.addShortcut("ctrl+s","save_desc",function(){if("function"==typeof autosave){autosave()}});if(/\bwpfullscreen\b/.test(f.settings.plugins)){f.addShortcut(g+"+w","wordpress.wp_fullscreen_desc","wpFullScreen")}else{if(/\bfullscreen\b/.test(f.settings.plugins)){f.addShortcut(g+"+g","fullscreen.desc","mceFullScreen")}}f.onInit.add(function(k){tinymce.dom.Event.add(k.getWin(),"scroll",function(l){k.plugins.wordpress._hideButtons()});tinymce.dom.Event.add(k.getBody(),"dragstart",function(l){k.plugins.wordpress._hideButtons()})});f.onBeforeExecCommand.add(function(k,m,l,n){k.plugins.wordpress._hideButtons()});f.onSaveContent.add(function(k,l){k.plugins.wordpress._hideButtons()});f.onMouseDown.add(function(k,l){if(l.target.nodeName!="IMG"){k.plugins.wordpress._hideButtons()}});f.onKeyDown.add(function(k,l){if(l.which==tinymce.VK.DELETE||l.which==tinymce.VK.BACKSPACE){k.plugins.wordpress._hideButtons()}});h=function(k){var l;if(k.target.id=="mceModalBlocker"||k.target.className=="ui-widget-overlay"){for(l in f.windowManager.windows){f.windowManager.close(null,l)}}};tinymce.dom.Event.remove(document.body,"click",h);tinymce.dom.Event.add(document.body,"click",h)},getInfo:function(){return{longname:"WordPress Plugin",author:"WordPress",authorurl:"http://wordpress.org",infourl:"http://wordpress.org",version:"3.0"}},_setEmbed:function(b){return b.replace(/\[embed\]([\s\S]+?)\[\/embed\][\s\u00a0]*/g,function(d,c){return'<img width="300" height="200" src="'+tinymce.baseURL+'/plugins/wordpress/img/trans.gif" class="wp-oembed mceItemNoResize" alt="'+c+'" title="'+c+'" />'})},_getEmbed:function(b){return b.replace(/<img[^>]+>/g,function(c){if(c.indexOf('class="wp-oembed')!=-1){var d=c.match(/alt="([^\"]+)"/);if(d[1]){c="[embed]"+d[1]+"[/embed]"}}return c})},_showButtons:function(f,d){var g=tinyMCE.activeEditor,i,h,b,j=tinymce.DOM,e,c;b=g.dom.getViewPort(g.getWin());i=j.getPos(g.getContentAreaContainer());h=g.dom.getPos(f);e=Math.max(h.x-b.x,0)+i.x;c=Math.max(h.y-b.y,0)+i.y;j.setStyles(d,{top:c+5+"px",left:e+5+"px",display:"block"})},_hideButtons:function(){var b=tinymce.DOM;b.hide(b.select("#wp_editbtns, #wp_gallerybtns"))},_resizeIframe:function(c,e,b){var d=c.getContentAreaContainer().firstChild;a.setStyle(d,"height",d.clientHeight+b);c.theme.deltaHeight+=b},_handleMoreBreak:function(c,d){var e,b;e='<img src="'+d+'/img/trans.gif" alt="$1" class="mceWPmore mceItemNoResize" title="'+c.getLang("wordpress.wp_more_alt")+'" />';b='<img src="'+d+'/img/trans.gif" class="mceWPnextpage mceItemNoResize" title="'+c.getLang("wordpress.wp_page_alt")+'" />';c.onPostRender.add(function(){if(c.theme.onResolveName){c.theme.onResolveName.add(function(f,g){if(g.node.nodeName=="IMG"){if(c.dom.hasClass(g.node,"mceWPmore")){g.name="wpmore"}if(c.dom.hasClass(g.node,"mceWPnextpage")){g.name="wppage"}}})}});c.onBeforeSetContent.add(function(f,g){if(g.content){g.content=g.content.replace(/<!--more(.*?)-->/g,e);g.content=g.content.replace(/<!--nextpage-->/g,b)}});c.onPostProcess.add(function(f,g){if(g.get){g.content=g.content.replace(/<img[^>]+>/g,function(i){if(i.indexOf('class="mceWPmore')!==-1){var h,j=(h=i.match(/alt="(.*?)"/))?h[1]:"";i="<!--more"+j+"-->"}if(i.indexOf('class="mceWPnextpage')!==-1){i="<!--nextpage-->"}return i})}});c.onNodeChange.add(function(g,f,h){f.setActive("wp_page",h.nodeName==="IMG"&&g.dom.hasClass(h,"mceWPnextpage"));f.setActive("wp_more",h.nodeName==="IMG"&&g.dom.hasClass(h,"mceWPmore"))})}});tinymce.PluginManager.add("wordpress",tinymce.plugins.WordPress)})();
\ No newline at end of file
--- a/web/wp-includes/js/tinymce/plugins/wordpress/editor_plugin_src.js	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/js/tinymce/plugins/wordpress/editor_plugin_src.js	Wed Dec 19 17:46:52 2012 -0800
@@ -6,10 +6,8 @@
 	var DOM = tinymce.DOM;
 
 	tinymce.create('tinymce.plugins.WordPress', {
-		mceTout : 0,
-
 		init : function(ed, url) {
-			var t = this, tbId = ed.getParam('wordpress_adv_toolbar', 'toolbar2'), last = 0, moreHTML, nextpageHTML, closeOnClick;
+			var t = this, tbId = ed.getParam('wordpress_adv_toolbar', 'toolbar2'), last = 0, moreHTML, nextpageHTML, closeOnClick, mod_key;
 			moreHTML = '<img src="' + url + '/img/trans.gif" class="mceWPmore mceItemNoResize" title="'+ed.getLang('wordpress.wp_more_alt')+'" />';
 			nextpageHTML = '<img src="' + url + '/img/trans.gif" class="mceWPnextpage mceItemNoResize" title="'+ed.getLang('wordpress.wp_page_alt')+'" />';
 
@@ -65,16 +63,8 @@
 			});
 
 			ed.addCommand('WP_Medialib', function() {
-				var id = ed.getParam('wp_fullscreen_editor_id') || ed.getParam('fullscreen_editor_id') || ed.id,
-					link = tinymce.DOM.select('#wp-' + id + '-media-buttons a.thickbox');
-
-				if ( link && link[0] )
-					link = link[0];
-				else
-					return;
-
-				tb_show('', link.href);
-				tinymce.DOM.setStyle( ['TB_overlay','TB_window','TB_load'], 'z-index', '999999' );
+				if ( typeof wp !== 'undefined' && wp.media && wp.media.editor )
+					wp.media.editor.open( ed.id );
 			});
 
 			// Register buttons
@@ -250,30 +240,35 @@
 			t._handleMoreBreak(ed, url);
 
 			// Add custom shortcuts
-			ed.addShortcut('alt+shift+c', ed.getLang('justifycenter_desc'), 'JustifyCenter');
-			ed.addShortcut('alt+shift+r', ed.getLang('justifyright_desc'), 'JustifyRight');
-			ed.addShortcut('alt+shift+l', ed.getLang('justifyleft_desc'), 'JustifyLeft');
-			ed.addShortcut('alt+shift+j', ed.getLang('justifyfull_desc'), 'JustifyFull');
-			ed.addShortcut('alt+shift+q', ed.getLang('blockquote_desc'), 'mceBlockQuote');
-			ed.addShortcut('alt+shift+u', ed.getLang('bullist_desc'), 'InsertUnorderedList');
-			ed.addShortcut('alt+shift+o', ed.getLang('numlist_desc'), 'InsertOrderedList');
-			ed.addShortcut('alt+shift+d', ed.getLang('striketrough_desc'), 'Strikethrough');
-			ed.addShortcut('alt+shift+n', ed.getLang('spellchecker.desc'), 'mceSpellCheck');
-			ed.addShortcut('alt+shift+a', ed.getLang('link_desc'), 'mceLink');
-			ed.addShortcut('alt+shift+s', ed.getLang('unlink_desc'), 'unlink');
-			ed.addShortcut('alt+shift+m', ed.getLang('image_desc'), 'WP_Medialib');
-			ed.addShortcut('alt+shift+g', ed.getLang('fullscreen.desc'), 'mceFullScreen');
-			ed.addShortcut('alt+shift+z', ed.getLang('wp_adv_desc'), 'WP_Adv');
-			ed.addShortcut('alt+shift+h', ed.getLang('help_desc'), 'WP_Help');
-			ed.addShortcut('alt+shift+t', ed.getLang('wp_more_desc'), 'WP_More');
-			ed.addShortcut('alt+shift+p', ed.getLang('wp_page_desc'), 'WP_Page');
-			ed.addShortcut('ctrl+s', ed.getLang('save_desc'), function(){if('function'==typeof autosave)autosave();});
+			mod_key = 'alt+shift';
+
+		//	if ( tinymce.isGecko ) // disable for mow, too many shortcuts conflicts
+		//		mod_key = 'ctrl+alt';
 
-			if ( tinymce.isWebKit ) {
-				ed.addShortcut('alt+shift+b', ed.getLang('bold_desc'), 'Bold');
-				ed.addShortcut('alt+shift+i', ed.getLang('italic_desc'), 'Italic');
-			}
+			ed.addShortcut(mod_key + '+c', 'justifycenter_desc', 'JustifyCenter');
+			ed.addShortcut(mod_key + '+r', 'justifyright_desc', 'JustifyRight');
+			ed.addShortcut(mod_key + '+l', 'justifyleft_desc', 'JustifyLeft');
+			ed.addShortcut(mod_key + '+j', 'justifyfull_desc', 'JustifyFull');
+			ed.addShortcut(mod_key + '+q', 'blockquote_desc', 'mceBlockQuote');
+			ed.addShortcut(mod_key + '+u', 'bullist_desc', 'InsertUnorderedList');
+			ed.addShortcut(mod_key + '+o', 'numlist_desc', 'InsertOrderedList');
+			ed.addShortcut(mod_key + '+n', 'spellchecker.desc', 'mceSpellCheck');
+			ed.addShortcut(mod_key + '+a', 'link_desc', 'WP_Link');
+			ed.addShortcut(mod_key + '+s', 'unlink_desc', 'unlink');
+			ed.addShortcut(mod_key + '+m', 'image_desc', 'WP_Medialib');
+			ed.addShortcut(mod_key + '+z', 'wordpress.wp_adv_desc', 'WP_Adv');
+			ed.addShortcut(mod_key + '+t', 'wordpress.wp_more_desc', 'WP_More');
+			ed.addShortcut(mod_key + '+d', 'striketrough_desc', 'Strikethrough');
+			ed.addShortcut(mod_key + '+h', 'help_desc', 'WP_Help');
+			ed.addShortcut(mod_key + '+p', 'wordpress.wp_page_desc', 'WP_Page');
+			ed.addShortcut('ctrl+s', 'save_desc', function(){if('function'==typeof autosave)autosave();});
 
+			if ( /\bwpfullscreen\b/.test(ed.settings.plugins) )
+				ed.addShortcut(mod_key + '+w', 'wordpress.wp_fullscreen_desc', 'wpFullScreen');
+			else if ( /\bfullscreen\b/.test(ed.settings.plugins) )
+				ed.addShortcut(mod_key + '+g', 'fullscreen.desc', 'mceFullScreen');
+
+			// popup buttons for images and the gallery
 			ed.onInit.add(function(ed) {
 				tinymce.dom.Event.add(ed.getWin(), 'scroll', function(e) {
 					ed.plugins.wordpress._hideButtons();
@@ -296,6 +291,11 @@
 					ed.plugins.wordpress._hideButtons();
 			});
 
+			ed.onKeyDown.add(function(ed, e){
+				if ( e.which == tinymce.VK.DELETE || e.which == tinymce.VK.BACKSPACE )
+					ed.plugins.wordpress._hideButtons();
+			});
+
 			closeOnClick = function(e){
 				var id;
 
@@ -354,25 +354,11 @@
 				'left' : X+5+'px',
 				'display' : 'block'
 			});
-
-			if ( this.mceTout )
-				clearTimeout(this.mceTout);
-
-			this.mceTout = setTimeout( function(){ed.plugins.wordpress._hideButtons();}, 5000 );
 		},
 
 		_hideButtons : function() {
-			if ( !this.mceTout )
-				return;
-
-			if ( document.getElementById('wp_editbtns') )
-				tinymce.DOM.hide('wp_editbtns');
-
-			if ( document.getElementById('wp_gallerybtns') )
-				tinymce.DOM.hide('wp_gallerybtns');
-
-			clearTimeout(this.mceTout);
-			this.mceTout = 0;
+			var DOM = tinymce.DOM;
+			DOM.hide( DOM.select('#wp_editbtns, #wp_gallerybtns') );
 		},
 
 		// Resizes the iframe by a relative height value
Binary file web/wp-includes/js/tinymce/plugins/wordpress/img/image.gif has changed
Binary file web/wp-includes/js/tinymce/plugins/wordpress/img/video.gif has changed
--- a/web/wp-includes/js/tinymce/plugins/wpdialogs/js/popup.dev.js	Wed Dec 19 12:35:13 2012 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,432 +0,0 @@
-/**
- * popup.js
- *
- * An altered version of tinyMCEPopup to work in the same window as tinymce.
- *
- * ------------------------------------------------------------------
- *
- * Copyright 2009, Moxiecode Systems AB
- * Released under LGPL License.
- *
- * License: http://tinymce.moxiecode.com/license
- * Contributing: http://tinymce.moxiecode.com/contributing
- */
-
-// Some global instances
-
-/**
- * TinyMCE popup/dialog helper class. This gives you easy access to the
- * parent editor instance and a bunch of other things. It's higly recommended
- * that you load this script into your dialogs.
- *
- * @static
- * @class tinyMCEPopup
- */
-var tinyMCEPopup = {
-	/**
-	 * Initializes the popup this will be called automatically.
-	 *
-	 * @method init
-	 */
-	init : function() {
-		var t = this, w, ti;
-
-		// Find window & API
-		w = t.getWin();
-		tinymce = w.tinymce;
-		tinyMCE = w.tinyMCE;
-		t.editor = tinymce.EditorManager.activeEditor;
-		t.params = t.editor.windowManager.params;
-		t.features = t.editor.windowManager.features;
-		t.dom = tinymce.dom;
-
-		// Setup on init listeners
-		t.listeners = [];
-		t.onInit = {
-			add : function(f, s) {
-				t.listeners.push({func : f, scope : s});
-			}
-		};
-
-		t.isWindow = false;
-		t.id = t.features.id;
-		t.editor.windowManager.onOpen.dispatch(t.editor.windowManager, window);
-	},
-
-	/**
-	 * Returns the reference to the parent window that opened the dialog.
-	 *
-	 * @method getWin
-	 * @return {Window} Reference to the parent window that opened the dialog.
-	 */
-	getWin : function() {
-		return window;
-	},
-
-	/**
-	 * Returns a window argument/parameter by name.
-	 *
-	 * @method getWindowArg
-	 * @param {String} n Name of the window argument to retrieve.
-	 * @param {String} dv Optional default value to return.
-	 * @return {String} Argument value or default value if it wasn't found.
-	 */
-	getWindowArg : function(n, dv) {
-		var v = this.params[n];
-
-		return tinymce.is(v) ? v : dv;
-	},
-
-	/**
-	 * Returns a editor parameter/config option value.
-	 *
-	 * @method getParam
-	 * @param {String} n Name of the editor config option to retrieve.
-	 * @param {String} dv Optional default value to return.
-	 * @return {String} Parameter value or default value if it wasn't found.
-	 */
-	getParam : function(n, dv) {
-		return this.editor.getParam(n, dv);
-	},
-
-	/**
-	 * Returns a language item by key.
-	 *
-	 * @method getLang
-	 * @param {String} n Language item like mydialog.something.
-	 * @param {String} dv Optional default value to return.
-	 * @return {String} Language value for the item like "my string" or the default value if it wasn't found.
-	 */
-	getLang : function(n, dv) {
-		return this.editor.getLang(n, dv);
-	},
-
-	/**
-	 * Executed a command on editor that opened the dialog/popup.
-	 *
-	 * @method execCommand
-	 * @param {String} cmd Command to execute.
-	 * @param {Boolean} ui Optional boolean value if the UI for the command should be presented or not.
-	 * @param {Object} val Optional value to pass with the comman like an URL.
-	 * @param {Object} a Optional arguments object.
-	 */
-	execCommand : function(cmd, ui, val, a) {
-		a = a || {};
-		a.skip_focus = 1;
-
-		this.restoreSelection();
-		return this.editor.execCommand(cmd, ui, val, a);
-	},
-
-	/**
-	 * Resizes the dialog to the inner size of the window. This is needed since various browsers
-	 * have different border sizes on windows.
-	 *
-	 * @method resizeToInnerSize
-	 */
-	resizeToInnerSize : function() {
-		var t = this;
-
-		// Detach it to workaround a Chrome specific bug
-		// https://sourceforge.net/tracker/?func=detail&atid=635682&aid=2926339&group_id=103281
-		setTimeout(function() {
-			var vp = t.dom.getViewPort(window);
-
-			t.editor.windowManager.resizeBy(
-				t.getWindowArg('mce_width') - vp.w,
-				t.getWindowArg('mce_height') - vp.h,
-				t.id || window
-			);
-		}, 0);
-	},
-
-	/**
-	 * Will executed the specified string when the page has been loaded. This function
-	 * was added for compatibility with the 2.x branch.
-	 *
-	 * @method executeOnLoad
-	 * @param {String} s String to evalutate on init.
-	 */
-	executeOnLoad : function(s) {
-		this.onInit.add(function() {
-			eval(s);
-		});
-	},
-
-	/**
-	 * Stores the current editor selection for later restoration. This can be useful since some browsers
-	 * looses it's selection if a control element is selected/focused inside the dialogs.
-	 *
-	 * @method storeSelection
-	 */
-	storeSelection : function() {
-		this.editor.windowManager.bookmark = tinyMCEPopup.editor.selection.getBookmark(1);
-	},
-
-	/**
-	 * Restores any stored selection. This can be useful since some browsers
-	 * looses it's selection if a control element is selected/focused inside the dialogs.
-	 *
-	 * @method restoreSelection
-	 */
-	restoreSelection : function() {
-		var t = tinyMCEPopup;
-
-		if (!t.isWindow && tinymce.isIE)
-			t.editor.selection.moveToBookmark(t.editor.windowManager.bookmark);
-	},
-
-	/**
-	 * Loads a specific dialog language pack. If you pass in plugin_url as a arugment
-	 * when you open the window it will load the <plugin url>/langs/<code>_dlg.js lang pack file.
-	 *
-	 * @method requireLangPack
-	 */
-	requireLangPack : function() {
-		var t = this, u = t.getWindowArg('plugin_url') || t.getWindowArg('theme_url');
-
-		if (u && t.editor.settings.language && t.features.translate_i18n !== false) {
-			u += '/langs/' + t.editor.settings.language + '_dlg.js';
-
-			if (!tinymce.ScriptLoader.isDone(u)) {
-				document.write('<script type="text/javascript" src="' + tinymce._addVer(u) + '"></script>');
-				tinymce.ScriptLoader.markDone(u);
-			}
-		}
-	},
-
-	/**
-	 * Executes a color picker on the specified element id. When the user
-	 * then selects a color it will be set as the value of the specified element.
-	 *
-	 * @method pickColor
-	 * @param {DOMEvent} e DOM event object.
-	 * @param {string} element_id Element id to be filled with the color value from the picker.
-	 */
-	pickColor : function(e, element_id) {
-		this.execCommand('mceColorPicker', true, {
-			color : document.getElementById(element_id).value,
-			func : function(c) {
-				document.getElementById(element_id).value = c;
-
-				try {
-					document.getElementById(element_id).onchange();
-				} catch (ex) {
-					// Try fire event, ignore errors
-				}
-			}
-		});
-	},
-
-	/**
-	 * Opens a filebrowser/imagebrowser this will set the output value from
-	 * the browser as a value on the specified element.
-	 *
-	 * @method openBrowser
-	 * @param {string} element_id Id of the element to set value in.
-	 * @param {string} type Type of browser to open image/file/flash.
-	 * @param {string} option Option name to get the file_broswer_callback function name from.
-	 */
-	openBrowser : function(element_id, type, option) {
-		tinyMCEPopup.restoreSelection();
-		this.editor.execCallback('file_browser_callback', element_id, document.getElementById(element_id).value, type, window);
-	},
-
-	/**
-	 * Creates a confirm dialog. Please don't use the blocking behavior of this
-	 * native version use the callback method instead then it can be extended.
-	 *
-	 * @method confirm
-	 * @param {String} t Title for the new confirm dialog.
-	 * @param {function} cb Callback function to be executed after the user has selected ok or cancel.
-	 * @param {Object} s Optional scope to execute the callback in.
-	 */
-	confirm : function(t, cb, s) {
-		this.editor.windowManager.confirm(t, cb, s, window);
-	},
-
-	/**
-	 * Creates a alert dialog. Please don't use the blocking behavior of this
-	 * native version use the callback method instead then it can be extended.
-	 *
-	 * @method alert
-	 * @param {String} t Title for the new alert dialog.
-	 * @param {function} cb Callback function to be executed after the user has selected ok.
-	 * @param {Object} s Optional scope to execute the callback in.
-	 */
-	alert : function(tx, cb, s) {
-		this.editor.windowManager.alert(tx, cb, s, window);
-	},
-
-	/**
-	 * Closes the current window.
-	 *
-	 * @method close
-	 */
-	close : function() {
-		var t = this;
-
-		// To avoid domain relaxing issue in Opera
-		function close() {
-			t.editor.windowManager.close(window);
-			t.editor = null;
-		};
-
-		if (tinymce.isOpera)
-			t.getWin().setTimeout(close, 0);
-		else
-			close();
-	},
-
-	// Internal functions
-
-	_restoreSelection : function() {
-		var e = window.event.srcElement;
-
-		if (e.nodeName == 'INPUT' && (e.type == 'submit' || e.type == 'button'))
-			tinyMCEPopup.restoreSelection();
-	},
-
-/*	_restoreSelection : function() {
-		var e = window.event.srcElement;
-
-		// If user focus a non text input or textarea
-		if ((e.nodeName != 'INPUT' && e.nodeName != 'TEXTAREA') || e.type != 'text')
-			tinyMCEPopup.restoreSelection();
-	},*/
-
-	_onDOMLoaded : function() {
-		var t = tinyMCEPopup, ti = document.title, bm, h, nv;
-
-		if (t.domLoaded)
-			return;
-
-		t.domLoaded = 1;
-
-		tinyMCEPopup.init();
-
-		// Translate page
-		if (t.features.translate_i18n !== false) {
-			h = document.body.innerHTML;
-
-			// Replace a=x with a="x" in IE
-			if (tinymce.isIE)
-				h = h.replace(/ (value|title|alt)=([^"][^\s>]+)/gi, ' $1="$2"')
-
-			document.dir = t.editor.getParam('directionality','');
-
-			if ((nv = t.editor.translate(h)) && nv != h)
-				document.body.innerHTML = nv;
-
-			if ((nv = t.editor.translate(ti)) && nv != ti)
-				document.title = ti = nv;
-		}
-
-		document.body.style.display = '';
-
-		// Restore selection in IE when focus is placed on a non textarea or input element of the type text
-		if (tinymce.isIE) {
-			document.attachEvent('onmouseup', tinyMCEPopup._restoreSelection);
-
-			// Add base target element for it since it would fail with modal dialogs
-			t.dom.add(t.dom.select('head')[0], 'base', {target : '_self'});
-		}
-
-		t.restoreSelection();
-
-		// Set inline title
-		if (!t.isWindow)
-			t.editor.windowManager.setTitle(window, ti);
-		else
-			window.focus();
-
-		if (!tinymce.isIE && !t.isWindow) {
-			tinymce.dom.Event._add(document, 'focus', function() {
-				t.editor.windowManager.focus(t.id);
-			});
-		}
-
-		// Patch for accessibility
-		tinymce.each(t.dom.select('select'), function(e) {
-			e.onkeydown = tinyMCEPopup._accessHandler;
-		});
-
-		// Call onInit
-		// Init must be called before focus so the selection won't get lost by the focus call
-		tinymce.each(t.listeners, function(o) {
-			o.func.call(o.scope, t.editor);
-		});
-
-		// Move focus to window
-		if (t.getWindowArg('mce_auto_focus', true)) {
-			window.focus();
-
-			// Focus element with mceFocus class
-			tinymce.each(document.forms, function(f) {
-				tinymce.each(f.elements, function(e) {
-					if (t.dom.hasClass(e, 'mceFocus') && !e.disabled) {
-						e.focus();
-						return false; // Break loop
-					}
-				});
-			});
-		}
-
-		document.onkeyup = tinyMCEPopup._closeWinKeyHandler;
-	},
-
-	_accessHandler : function(e) {
-		e = e || window.event;
-
-		if (e.keyCode == 13 || e.keyCode == 32) {
-			e = e.target || e.srcElement;
-
-			if (e.onchange)
-				e.onchange();
-
-			return tinymce.dom.Event.cancel(e);
-		}
-	},
-
-	_closeWinKeyHandler : function(e) {
-		e = e || window.event;
-
-		if (e.keyCode == 27)
-			tinyMCEPopup.close();
-	},
-
-	_wait : function() {
-		// Use IE method
-		if (document.attachEvent) {
-			document.attachEvent("onreadystatechange", function() {
-				if (document.readyState === "complete") {
-					document.detachEvent("onreadystatechange", arguments.callee);
-					tinyMCEPopup._onDOMLoaded();
-				}
-			});
-
-			if (document.documentElement.doScroll && window == window.top) {
-				(function() {
-					if (tinyMCEPopup.domLoaded)
-						return;
-
-					try {
-						// If IE is used, use the trick by Diego Perini
-						// http://javascript.nwbox.com/IEContentLoaded/
-						document.documentElement.doScroll("left");
-					} catch (ex) {
-						setTimeout(arguments.callee, 0);
-						return;
-					}
-
-					tinyMCEPopup._onDOMLoaded();
-				})();
-			}
-
-			document.attachEvent('onload', tinyMCEPopup._onDOMLoaded);
-		} else if (document.addEventListener) {
-			window.addEventListener('DOMContentLoaded', tinyMCEPopup._onDOMLoaded, false);
-			window.addEventListener('load', tinyMCEPopup._onDOMLoaded, false);
-		}
-	}
-};
--- a/web/wp-includes/js/tinymce/plugins/wpdialogs/js/popup.js	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/js/tinymce/plugins/wpdialogs/js/popup.js	Wed Dec 19 17:46:52 2012 -0800
@@ -1,1 +1,432 @@
-var tinyMCEPopup={init:function(){var b=this,a,c;a=b.getWin();tinymce=a.tinymce;tinyMCE=a.tinyMCE;b.editor=tinymce.EditorManager.activeEditor;b.params=b.editor.windowManager.params;b.features=b.editor.windowManager.features;b.dom=tinymce.dom;b.listeners=[];b.onInit={add:function(e,d){b.listeners.push({func:e,scope:d})}};b.isWindow=false;b.id=b.features.id;b.editor.windowManager.onOpen.dispatch(b.editor.windowManager,window)},getWin:function(){return window},getWindowArg:function(c,b){var a=this.params[c];return tinymce.is(a)?a:b},getParam:function(b,a){return this.editor.getParam(b,a)},getLang:function(b,a){return this.editor.getLang(b,a)},execCommand:function(d,c,e,b){b=b||{};b.skip_focus=1;this.restoreSelection();return this.editor.execCommand(d,c,e,b)},resizeToInnerSize:function(){var a=this;setTimeout(function(){var b=a.dom.getViewPort(window);a.editor.windowManager.resizeBy(a.getWindowArg("mce_width")-b.w,a.getWindowArg("mce_height")-b.h,a.id||window)},0)},executeOnLoad:function(s){this.onInit.add(function(){eval(s)})},storeSelection:function(){this.editor.windowManager.bookmark=tinyMCEPopup.editor.selection.getBookmark(1)},restoreSelection:function(){var a=tinyMCEPopup;if(!a.isWindow&&tinymce.isIE){a.editor.selection.moveToBookmark(a.editor.windowManager.bookmark)}},requireLangPack:function(){var b=this,a=b.getWindowArg("plugin_url")||b.getWindowArg("theme_url");if(a&&b.editor.settings.language&&b.features.translate_i18n!==false){a+="/langs/"+b.editor.settings.language+"_dlg.js";if(!tinymce.ScriptLoader.isDone(a)){document.write('<script type="text/javascript" src="'+tinymce._addVer(a)+'"><\/script>');tinymce.ScriptLoader.markDone(a)}}},pickColor:function(b,a){this.execCommand("mceColorPicker",true,{color:document.getElementById(a).value,func:function(e){document.getElementById(a).value=e;try{document.getElementById(a).onchange()}catch(d){}}})},openBrowser:function(a,c,b){tinyMCEPopup.restoreSelection();this.editor.execCallback("file_browser_callback",a,document.getElementById(a).value,c,window)},confirm:function(b,a,c){this.editor.windowManager.confirm(b,a,c,window)},alert:function(b,a,c){this.editor.windowManager.alert(b,a,c,window)},close:function(){var a=this;function b(){a.editor.windowManager.close(window);a.editor=null}if(tinymce.isOpera){a.getWin().setTimeout(b,0)}else{b()}},_restoreSelection:function(){var a=window.event.srcElement;if(a.nodeName=="INPUT"&&(a.type=="submit"||a.type=="button")){tinyMCEPopup.restoreSelection()}},_onDOMLoaded:function(){var b=tinyMCEPopup,d=document.title,e,c,a;if(b.domLoaded){return}b.domLoaded=1;tinyMCEPopup.init();if(b.features.translate_i18n!==false){c=document.body.innerHTML;if(tinymce.isIE){c=c.replace(/ (value|title|alt)=([^"][^\s>]+)/gi,' $1="$2"')}document.dir=b.editor.getParam("directionality","");if((a=b.editor.translate(c))&&a!=c){document.body.innerHTML=a}if((a=b.editor.translate(d))&&a!=d){document.title=d=a}}document.body.style.display="";if(tinymce.isIE){document.attachEvent("onmouseup",tinyMCEPopup._restoreSelection);b.dom.add(b.dom.select("head")[0],"base",{target:"_self"})}b.restoreSelection();if(!b.isWindow){b.editor.windowManager.setTitle(window,d)}else{window.focus()}if(!tinymce.isIE&&!b.isWindow){tinymce.dom.Event._add(document,"focus",function(){b.editor.windowManager.focus(b.id)})}tinymce.each(b.dom.select("select"),function(f){f.onkeydown=tinyMCEPopup._accessHandler});tinymce.each(b.listeners,function(f){f.func.call(f.scope,b.editor)});if(b.getWindowArg("mce_auto_focus",true)){window.focus();tinymce.each(document.forms,function(g){tinymce.each(g.elements,function(f){if(b.dom.hasClass(f,"mceFocus")&&!f.disabled){f.focus();return false}})})}document.onkeyup=tinyMCEPopup._closeWinKeyHandler},_accessHandler:function(a){a=a||window.event;if(a.keyCode==13||a.keyCode==32){a=a.target||a.srcElement;if(a.onchange){a.onchange()}return tinymce.dom.Event.cancel(a)}},_closeWinKeyHandler:function(a){a=a||window.event;if(a.keyCode==27){tinyMCEPopup.close()}},_wait:function(){if(document.attachEvent){document.attachEvent("onreadystatechange",function(){if(document.readyState==="complete"){document.detachEvent("onreadystatechange",arguments.callee);tinyMCEPopup._onDOMLoaded()}});if(document.documentElement.doScroll&&window==window.top){(function(){if(tinyMCEPopup.domLoaded){return}try{document.documentElement.doScroll("left")}catch(a){setTimeout(arguments.callee,0);return}tinyMCEPopup._onDOMLoaded()})()}document.attachEvent("onload",tinyMCEPopup._onDOMLoaded)}else{if(document.addEventListener){window.addEventListener("DOMContentLoaded",tinyMCEPopup._onDOMLoaded,false);window.addEventListener("load",tinyMCEPopup._onDOMLoaded,false)}}}};
\ No newline at end of file
+/**
+ * popup.js
+ *
+ * An altered version of tinyMCEPopup to work in the same window as tinymce.
+ *
+ * ------------------------------------------------------------------
+ *
+ * Copyright 2009, Moxiecode Systems AB
+ * Released under LGPL License.
+ *
+ * License: http://tinymce.moxiecode.com/license
+ * Contributing: http://tinymce.moxiecode.com/contributing
+ */
+
+// Some global instances
+
+/**
+ * TinyMCE popup/dialog helper class. This gives you easy access to the
+ * parent editor instance and a bunch of other things. It's higly recommended
+ * that you load this script into your dialogs.
+ *
+ * @static
+ * @class tinyMCEPopup
+ */
+var tinyMCEPopup = {
+	/**
+	 * Initializes the popup this will be called automatically.
+	 *
+	 * @method init
+	 */
+	init : function() {
+		var t = this, w, ti;
+
+		// Find window & API
+		w = t.getWin();
+		tinymce = w.tinymce;
+		tinyMCE = w.tinyMCE;
+		t.editor = tinymce.EditorManager.activeEditor;
+		t.params = t.editor.windowManager.params;
+		t.features = t.editor.windowManager.features;
+		t.dom = tinymce.dom;
+
+		// Setup on init listeners
+		t.listeners = [];
+		t.onInit = {
+			add : function(f, s) {
+				t.listeners.push({func : f, scope : s});
+			}
+		};
+
+		t.isWindow = false;
+		t.id = t.features.id;
+		t.editor.windowManager.onOpen.dispatch(t.editor.windowManager, window);
+	},
+
+	/**
+	 * Returns the reference to the parent window that opened the dialog.
+	 *
+	 * @method getWin
+	 * @return {Window} Reference to the parent window that opened the dialog.
+	 */
+	getWin : function() {
+		return window;
+	},
+
+	/**
+	 * Returns a window argument/parameter by name.
+	 *
+	 * @method getWindowArg
+	 * @param {String} n Name of the window argument to retrieve.
+	 * @param {String} dv Optional default value to return.
+	 * @return {String} Argument value or default value if it wasn't found.
+	 */
+	getWindowArg : function(n, dv) {
+		var v = this.params[n];
+
+		return tinymce.is(v) ? v : dv;
+	},
+
+	/**
+	 * Returns a editor parameter/config option value.
+	 *
+	 * @method getParam
+	 * @param {String} n Name of the editor config option to retrieve.
+	 * @param {String} dv Optional default value to return.
+	 * @return {String} Parameter value or default value if it wasn't found.
+	 */
+	getParam : function(n, dv) {
+		return this.editor.getParam(n, dv);
+	},
+
+	/**
+	 * Returns a language item by key.
+	 *
+	 * @method getLang
+	 * @param {String} n Language item like mydialog.something.
+	 * @param {String} dv Optional default value to return.
+	 * @return {String} Language value for the item like "my string" or the default value if it wasn't found.
+	 */
+	getLang : function(n, dv) {
+		return this.editor.getLang(n, dv);
+	},
+
+	/**
+	 * Executed a command on editor that opened the dialog/popup.
+	 *
+	 * @method execCommand
+	 * @param {String} cmd Command to execute.
+	 * @param {Boolean} ui Optional boolean value if the UI for the command should be presented or not.
+	 * @param {Object} val Optional value to pass with the comman like an URL.
+	 * @param {Object} a Optional arguments object.
+	 */
+	execCommand : function(cmd, ui, val, a) {
+		a = a || {};
+		a.skip_focus = 1;
+
+		this.restoreSelection();
+		return this.editor.execCommand(cmd, ui, val, a);
+	},
+
+	/**
+	 * Resizes the dialog to the inner size of the window. This is needed since various browsers
+	 * have different border sizes on windows.
+	 *
+	 * @method resizeToInnerSize
+	 */
+	resizeToInnerSize : function() {
+		var t = this;
+
+		// Detach it to workaround a Chrome specific bug
+		// https://sourceforge.net/tracker/?func=detail&atid=635682&aid=2926339&group_id=103281
+		setTimeout(function() {
+			var vp = t.dom.getViewPort(window);
+
+			t.editor.windowManager.resizeBy(
+				t.getWindowArg('mce_width') - vp.w,
+				t.getWindowArg('mce_height') - vp.h,
+				t.id || window
+			);
+		}, 0);
+	},
+
+	/**
+	 * Will executed the specified string when the page has been loaded. This function
+	 * was added for compatibility with the 2.x branch.
+	 *
+	 * @method executeOnLoad
+	 * @param {String} s String to evalutate on init.
+	 */
+	executeOnLoad : function(s) {
+		this.onInit.add(function() {
+			eval(s);
+		});
+	},
+
+	/**
+	 * Stores the current editor selection for later restoration. This can be useful since some browsers
+	 * looses it's selection if a control element is selected/focused inside the dialogs.
+	 *
+	 * @method storeSelection
+	 */
+	storeSelection : function() {
+		this.editor.windowManager.bookmark = tinyMCEPopup.editor.selection.getBookmark(1);
+	},
+
+	/**
+	 * Restores any stored selection. This can be useful since some browsers
+	 * looses it's selection if a control element is selected/focused inside the dialogs.
+	 *
+	 * @method restoreSelection
+	 */
+	restoreSelection : function() {
+		var t = tinyMCEPopup;
+
+		if (!t.isWindow && tinymce.isIE)
+			t.editor.selection.moveToBookmark(t.editor.windowManager.bookmark);
+	},
+
+	/**
+	 * Loads a specific dialog language pack. If you pass in plugin_url as a arugment
+	 * when you open the window it will load the <plugin url>/langs/<code>_dlg.js lang pack file.
+	 *
+	 * @method requireLangPack
+	 */
+	requireLangPack : function() {
+		var t = this, u = t.getWindowArg('plugin_url') || t.getWindowArg('theme_url');
+
+		if (u && t.editor.settings.language && t.features.translate_i18n !== false) {
+			u += '/langs/' + t.editor.settings.language + '_dlg.js';
+
+			if (!tinymce.ScriptLoader.isDone(u)) {
+				document.write('<script type="text/javascript" src="' + tinymce._addVer(u) + '"></script>');
+				tinymce.ScriptLoader.markDone(u);
+			}
+		}
+	},
+
+	/**
+	 * Executes a color picker on the specified element id. When the user
+	 * then selects a color it will be set as the value of the specified element.
+	 *
+	 * @method pickColor
+	 * @param {DOMEvent} e DOM event object.
+	 * @param {string} element_id Element id to be filled with the color value from the picker.
+	 */
+	pickColor : function(e, element_id) {
+		this.execCommand('mceColorPicker', true, {
+			color : document.getElementById(element_id).value,
+			func : function(c) {
+				document.getElementById(element_id).value = c;
+
+				try {
+					document.getElementById(element_id).onchange();
+				} catch (ex) {
+					// Try fire event, ignore errors
+				}
+			}
+		});
+	},
+
+	/**
+	 * Opens a filebrowser/imagebrowser this will set the output value from
+	 * the browser as a value on the specified element.
+	 *
+	 * @method openBrowser
+	 * @param {string} element_id Id of the element to set value in.
+	 * @param {string} type Type of browser to open image/file/flash.
+	 * @param {string} option Option name to get the file_broswer_callback function name from.
+	 */
+	openBrowser : function(element_id, type, option) {
+		tinyMCEPopup.restoreSelection();
+		this.editor.execCallback('file_browser_callback', element_id, document.getElementById(element_id).value, type, window);
+	},
+
+	/**
+	 * Creates a confirm dialog. Please don't use the blocking behavior of this
+	 * native version use the callback method instead then it can be extended.
+	 *
+	 * @method confirm
+	 * @param {String} t Title for the new confirm dialog.
+	 * @param {function} cb Callback function to be executed after the user has selected ok or cancel.
+	 * @param {Object} s Optional scope to execute the callback in.
+	 */
+	confirm : function(t, cb, s) {
+		this.editor.windowManager.confirm(t, cb, s, window);
+	},
+
+	/**
+	 * Creates a alert dialog. Please don't use the blocking behavior of this
+	 * native version use the callback method instead then it can be extended.
+	 *
+	 * @method alert
+	 * @param {String} t Title for the new alert dialog.
+	 * @param {function} cb Callback function to be executed after the user has selected ok.
+	 * @param {Object} s Optional scope to execute the callback in.
+	 */
+	alert : function(tx, cb, s) {
+		this.editor.windowManager.alert(tx, cb, s, window);
+	},
+
+	/**
+	 * Closes the current window.
+	 *
+	 * @method close
+	 */
+	close : function() {
+		var t = this;
+
+		// To avoid domain relaxing issue in Opera
+		function close() {
+			t.editor.windowManager.close(window);
+			t.editor = null;
+		};
+
+		if (tinymce.isOpera)
+			t.getWin().setTimeout(close, 0);
+		else
+			close();
+	},
+
+	// Internal functions
+
+	_restoreSelection : function() {
+		var e = window.event.srcElement;
+
+		if (e.nodeName == 'INPUT' && (e.type == 'submit' || e.type == 'button'))
+			tinyMCEPopup.restoreSelection();
+	},
+
+/*	_restoreSelection : function() {
+		var e = window.event.srcElement;
+
+		// If user focus a non text input or textarea
+		if ((e.nodeName != 'INPUT' && e.nodeName != 'TEXTAREA') || e.type != 'text')
+			tinyMCEPopup.restoreSelection();
+	},*/
+
+	_onDOMLoaded : function() {
+		var t = tinyMCEPopup, ti = document.title, bm, h, nv;
+
+		if (t.domLoaded)
+			return;
+
+		t.domLoaded = 1;
+
+		tinyMCEPopup.init();
+
+		// Translate page
+		if (t.features.translate_i18n !== false) {
+			h = document.body.innerHTML;
+
+			// Replace a=x with a="x" in IE
+			if (tinymce.isIE)
+				h = h.replace(/ (value|title|alt)=([^"][^\s>]+)/gi, ' $1="$2"')
+
+			document.dir = t.editor.getParam('directionality','');
+
+			if ((nv = t.editor.translate(h)) && nv != h)
+				document.body.innerHTML = nv;
+
+			if ((nv = t.editor.translate(ti)) && nv != ti)
+				document.title = ti = nv;
+		}
+
+		document.body.style.display = '';
+
+		// Restore selection in IE when focus is placed on a non textarea or input element of the type text
+		if (tinymce.isIE) {
+			document.attachEvent('onmouseup', tinyMCEPopup._restoreSelection);
+
+			// Add base target element for it since it would fail with modal dialogs
+			t.dom.add(t.dom.select('head')[0], 'base', {target : '_self'});
+		}
+
+		t.restoreSelection();
+
+		// Set inline title
+		if (!t.isWindow)
+			t.editor.windowManager.setTitle(window, ti);
+		else
+			window.focus();
+
+		if (!tinymce.isIE && !t.isWindow) {
+			tinymce.dom.Event._add(document, 'focus', function() {
+				t.editor.windowManager.focus(t.id);
+			});
+		}
+
+		// Patch for accessibility
+		tinymce.each(t.dom.select('select'), function(e) {
+			e.onkeydown = tinyMCEPopup._accessHandler;
+		});
+
+		// Call onInit
+		// Init must be called before focus so the selection won't get lost by the focus call
+		tinymce.each(t.listeners, function(o) {
+			o.func.call(o.scope, t.editor);
+		});
+
+		// Move focus to window
+		if (t.getWindowArg('mce_auto_focus', true)) {
+			window.focus();
+
+			// Focus element with mceFocus class
+			tinymce.each(document.forms, function(f) {
+				tinymce.each(f.elements, function(e) {
+					if (t.dom.hasClass(e, 'mceFocus') && !e.disabled) {
+						e.focus();
+						return false; // Break loop
+					}
+				});
+			});
+		}
+
+		document.onkeyup = tinyMCEPopup._closeWinKeyHandler;
+	},
+
+	_accessHandler : function(e) {
+		e = e || window.event;
+
+		if (e.keyCode == 13 || e.keyCode == 32) {
+			e = e.target || e.srcElement;
+
+			if (e.onchange)
+				e.onchange();
+
+			return tinymce.dom.Event.cancel(e);
+		}
+	},
+
+	_closeWinKeyHandler : function(e) {
+		e = e || window.event;
+
+		if (e.keyCode == 27)
+			tinyMCEPopup.close();
+	},
+
+	_wait : function() {
+		// Use IE method
+		if (document.attachEvent) {
+			document.attachEvent("onreadystatechange", function() {
+				if (document.readyState === "complete") {
+					document.detachEvent("onreadystatechange", arguments.callee);
+					tinyMCEPopup._onDOMLoaded();
+				}
+			});
+
+			if (document.documentElement.doScroll && window == window.top) {
+				(function() {
+					if (tinyMCEPopup.domLoaded)
+						return;
+
+					try {
+						// If IE is used, use the trick by Diego Perini
+						// http://javascript.nwbox.com/IEContentLoaded/
+						document.documentElement.doScroll("left");
+					} catch (ex) {
+						setTimeout(arguments.callee, 0);
+						return;
+					}
+
+					tinyMCEPopup._onDOMLoaded();
+				})();
+			}
+
+			document.attachEvent('onload', tinyMCEPopup._onDOMLoaded);
+		} else if (document.addEventListener) {
+			window.addEventListener('DOMContentLoaded', tinyMCEPopup._onDOMLoaded, false);
+			window.addEventListener('load', tinyMCEPopup._onDOMLoaded, false);
+		}
+	}
+};
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-includes/js/tinymce/plugins/wpdialogs/js/popup.min.js	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,1 @@
+var tinyMCEPopup={init:function(){var b=this,a,c;a=b.getWin();tinymce=a.tinymce;tinyMCE=a.tinyMCE;b.editor=tinymce.EditorManager.activeEditor;b.params=b.editor.windowManager.params;b.features=b.editor.windowManager.features;b.dom=tinymce.dom;b.listeners=[];b.onInit={add:function(e,d){b.listeners.push({func:e,scope:d})}};b.isWindow=false;b.id=b.features.id;b.editor.windowManager.onOpen.dispatch(b.editor.windowManager,window)},getWin:function(){return window},getWindowArg:function(c,b){var a=this.params[c];return tinymce.is(a)?a:b},getParam:function(b,a){return this.editor.getParam(b,a)},getLang:function(b,a){return this.editor.getLang(b,a)},execCommand:function(d,c,e,b){b=b||{};b.skip_focus=1;this.restoreSelection();return this.editor.execCommand(d,c,e,b)},resizeToInnerSize:function(){var a=this;setTimeout(function(){var b=a.dom.getViewPort(window);a.editor.windowManager.resizeBy(a.getWindowArg("mce_width")-b.w,a.getWindowArg("mce_height")-b.h,a.id||window)},0)},executeOnLoad:function(s){this.onInit.add(function(){eval(s)})},storeSelection:function(){this.editor.windowManager.bookmark=tinyMCEPopup.editor.selection.getBookmark(1)},restoreSelection:function(){var a=tinyMCEPopup;if(!a.isWindow&&tinymce.isIE){a.editor.selection.moveToBookmark(a.editor.windowManager.bookmark)}},requireLangPack:function(){var b=this,a=b.getWindowArg("plugin_url")||b.getWindowArg("theme_url");if(a&&b.editor.settings.language&&b.features.translate_i18n!==false){a+="/langs/"+b.editor.settings.language+"_dlg.js";if(!tinymce.ScriptLoader.isDone(a)){document.write('<script type="text/javascript" src="'+tinymce._addVer(a)+'"><\/script>');tinymce.ScriptLoader.markDone(a)}}},pickColor:function(b,a){this.execCommand("mceColorPicker",true,{color:document.getElementById(a).value,func:function(e){document.getElementById(a).value=e;try{document.getElementById(a).onchange()}catch(d){}}})},openBrowser:function(a,c,b){tinyMCEPopup.restoreSelection();this.editor.execCallback("file_browser_callback",a,document.getElementById(a).value,c,window)},confirm:function(b,a,c){this.editor.windowManager.confirm(b,a,c,window)},alert:function(b,a,c){this.editor.windowManager.alert(b,a,c,window)},close:function(){var a=this;function b(){a.editor.windowManager.close(window);a.editor=null}if(tinymce.isOpera){a.getWin().setTimeout(b,0)}else{b()}},_restoreSelection:function(){var a=window.event.srcElement;if(a.nodeName=="INPUT"&&(a.type=="submit"||a.type=="button")){tinyMCEPopup.restoreSelection()}},_onDOMLoaded:function(){var b=tinyMCEPopup,d=document.title,e,c,a;if(b.domLoaded){return}b.domLoaded=1;tinyMCEPopup.init();if(b.features.translate_i18n!==false){c=document.body.innerHTML;if(tinymce.isIE){c=c.replace(/ (value|title|alt)=([^"][^\s>]+)/gi,' $1="$2"')}document.dir=b.editor.getParam("directionality","");if((a=b.editor.translate(c))&&a!=c){document.body.innerHTML=a}if((a=b.editor.translate(d))&&a!=d){document.title=d=a}}document.body.style.display="";if(tinymce.isIE){document.attachEvent("onmouseup",tinyMCEPopup._restoreSelection);b.dom.add(b.dom.select("head")[0],"base",{target:"_self"})}b.restoreSelection();if(!b.isWindow){b.editor.windowManager.setTitle(window,d)}else{window.focus()}if(!tinymce.isIE&&!b.isWindow){tinymce.dom.Event._add(document,"focus",function(){b.editor.windowManager.focus(b.id)})}tinymce.each(b.dom.select("select"),function(f){f.onkeydown=tinyMCEPopup._accessHandler});tinymce.each(b.listeners,function(f){f.func.call(f.scope,b.editor)});if(b.getWindowArg("mce_auto_focus",true)){window.focus();tinymce.each(document.forms,function(g){tinymce.each(g.elements,function(f){if(b.dom.hasClass(f,"mceFocus")&&!f.disabled){f.focus();return false}})})}document.onkeyup=tinyMCEPopup._closeWinKeyHandler},_accessHandler:function(a){a=a||window.event;if(a.keyCode==13||a.keyCode==32){a=a.target||a.srcElement;if(a.onchange){a.onchange()}return tinymce.dom.Event.cancel(a)}},_closeWinKeyHandler:function(a){a=a||window.event;if(a.keyCode==27){tinyMCEPopup.close()}},_wait:function(){if(document.attachEvent){document.attachEvent("onreadystatechange",function(){if(document.readyState==="complete"){document.detachEvent("onreadystatechange",arguments.callee);tinyMCEPopup._onDOMLoaded()}});if(document.documentElement.doScroll&&window==window.top){(function(){if(tinyMCEPopup.domLoaded){return}try{document.documentElement.doScroll("left")}catch(a){setTimeout(arguments.callee,0);return}tinyMCEPopup._onDOMLoaded()})()}document.attachEvent("onload",tinyMCEPopup._onDOMLoaded)}else{if(document.addEventListener){window.addEventListener("DOMContentLoaded",tinyMCEPopup._onDOMLoaded,false);window.addEventListener("load",tinyMCEPopup._onDOMLoaded,false)}}}};
\ No newline at end of file
--- a/web/wp-includes/js/tinymce/plugins/wpdialogs/js/wpdialog.dev.js	Wed Dec 19 12:35:13 2012 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,28 +0,0 @@
-(function($){
-	$.ui.dialog.prototype.options.closeOnEscape = false;
-	$.widget("wp.wpdialog", $.ui.dialog, {
-		options: {
-			closeOnEscape: false
-		},
-
-		open: function() {
-			var ed;
-
-			// Initialize tinyMCEPopup if it exists and is the editor is active.
-			if ( tinyMCEPopup && typeof tinyMCE != 'undefined' && ( ed = tinyMCE.activeEditor ) && !ed.isHidden() ) {
-				tinyMCEPopup.init();
-			}
-
-			// Add beforeOpen event.
-			if ( this._isOpen || false === this._trigger('beforeOpen') ) {
-				return;
-			}
-
-			// Open the dialog.
-			$.ui.dialog.prototype.open.apply( this, arguments );
-			// WebKit leaves focus in the TinyMCE editor unless we shift focus.
-			this.element.focus();
-			this._trigger('refresh');
-		}
-	});
-})(jQuery);
--- a/web/wp-includes/js/tinymce/plugins/wpdialogs/js/wpdialog.js	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/js/tinymce/plugins/wpdialogs/js/wpdialog.js	Wed Dec 19 17:46:52 2012 -0800
@@ -1,1 +1,28 @@
-(function(a){a.ui.dialog.prototype.options.closeOnEscape=false;a.widget("wp.wpdialog",a.ui.dialog,{options:{closeOnEscape:false},open:function(){var b;if(tinyMCEPopup&&typeof tinyMCE!="undefined"&&(b=tinyMCE.activeEditor)&&!b.isHidden()){tinyMCEPopup.init()}if(this._isOpen||false===this._trigger("beforeOpen")){return}a.ui.dialog.prototype.open.apply(this,arguments);this.element.focus();this._trigger("refresh")}})})(jQuery);
\ No newline at end of file
+(function($){
+	$.ui.dialog.prototype.options.closeOnEscape = false;
+	$.widget('wp.wpdialog', $.ui.dialog, {
+		// Work around a bug in jQuery UI 1.9.1.
+		// http://bugs.jqueryui.com/ticket/8805
+		widgetEventPrefix: 'wpdialog',
+
+		open: function() {
+			var ed;
+
+			// Initialize tinyMCEPopup if it exists and the editor is active.
+			if ( tinyMCEPopup && typeof tinyMCE != 'undefined' && ( ed = tinyMCE.activeEditor ) && !ed.isHidden() ) {
+				tinyMCEPopup.init();
+			}
+
+			// Add beforeOpen event.
+			if ( this.isOpen() || false === this._trigger('beforeOpen') ) {
+				return;
+			}
+
+			// Open the dialog.
+			this._super();
+			// WebKit leaves focus in the TinyMCE editor unless we shift focus.
+			this.element.focus();
+			this._trigger('refresh');
+		}
+	});
+})(jQuery);
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-includes/js/tinymce/plugins/wpdialogs/js/wpdialog.min.js	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,1 @@
+(function(a){a.ui.dialog.prototype.options.closeOnEscape=false;a.widget("wp.wpdialog",a.ui.dialog,{widgetEventPrefix:"wpdialog",open:function(){var b;if(tinyMCEPopup&&typeof tinyMCE!="undefined"&&(b=tinyMCE.activeEditor)&&!b.isHidden()){tinyMCEPopup.init()}if(this.isOpen()||false===this._trigger("beforeOpen")){return}this._super();this.element.focus();this._trigger("refresh")}})})(jQuery);
\ No newline at end of file
--- a/web/wp-includes/js/tinymce/plugins/wpeditimage/css/editimage.css	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/js/tinymce/plugins/wpeditimage/css/editimage.css	Wed Dec 19 17:46:52 2012 -0800
@@ -5,25 +5,10 @@
 	padding: 0;
 }
 
-.submit input,
-.button,
-.button-primary,
-.button-secondary,
-.button-highlighted {
-	font-family: "Lucida Grande", "Lucida Sans Unicode", Tahoma, Verdana, sans-serif;
-	text-decoration: none;
-	font-size: 11px !important;
-	line-height: 16px;
-	padding: 2px 8px;
-	cursor: pointer;
-	border-width: 1px;
-	border-style: solid;
-	-webkit-border-radius: 11px;
-	border-radius: 11px;
-	-moz-box-sizing: content-box;
-	-webkit-box-sizing: content-box;
-	-khtml-box-sizing: content-box;
-	box-sizing: content-box;
+body {
+	font-family: sans-serif;
+	font-size: 12px;
+	line-height: 1.4em;
 }
 
 a.button {
@@ -33,7 +18,7 @@
 textarea,
 input,
 select {
-	font: 13px Verdana, Arial, Helvetica, sans-serif;
+	font: inherit;
 	margin: 1px;
 	padding: 3px;
 }
@@ -44,10 +29,6 @@
 	font-style: italic;
 }
 
-body, td {
-	font: 13px "Lucida Grande", "Lucida Sans Unicode", Tahoma, Verdana, sans-serif;
-}
-
 abbr.required {
 	color: #FF0000;
 	text-align: left;
@@ -311,6 +292,7 @@
 	padding: 0 0 0 28px;
 	margin: 0 1em 0 0;
 }
+
 .image-align-none-label {
 	background: url(../../../../../../wp-admin/images/align-none.png) no-repeat center left;
 }
@@ -400,8 +382,9 @@
 }
 
 .rtl .show-align,
+.rtl #img_size,
 .rtl .alignright,
-.rtl #img_size {
+.rtl #img_demo.alignleft {
 	float: left;
 }
 
@@ -412,7 +395,8 @@
 .rtl #img_prop label,
 .rtl #img_prop input,
 .rtl #img_size_div,
-.rtl .alignleft {
+.rtl .alignleft,
+.rtl #img_demo.alignright {
 	float: right;
 }
 
@@ -429,3 +413,31 @@
 .rtl #img_size_title {
 	text-align: left;
 }
+
+/**
+ * Retina display 2x icons
+ */
+@media print,
+  (-o-min-device-pixel-ratio: 5/4),
+  (-webkit-min-device-pixel-ratio: 1.25),
+  (min-resolution: 120dpi) {
+	.image-align-none-label {
+		background: url(../../../../../../wp-admin/images/align-none-2x.png) no-repeat center left;
+		background-size: auto 15px;
+	}
+
+	.image-align-left-label {
+		background: url(../../../../../../wp-admin/images/align-left-2x.png) no-repeat center left;
+		background-size: auto 15px;
+	}
+
+	.image-align-center-label {
+		background: url(../../../../../../wp-admin/images/align-center-2x.png) no-repeat center left;
+		background-size: auto 15px;
+	}
+
+	.image-align-right-label {
+		background: url(../../../../../../wp-admin/images/align-right-2x.png) no-repeat center left;
+		background-size: auto 15px;
+	}
+}
--- a/web/wp-includes/js/tinymce/plugins/wpeditimage/editimage.html	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/js/tinymce/plugins/wpeditimage/editimage.html	Wed Dec 19 17:46:52 2012 -0800
@@ -4,13 +4,14 @@
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
 <title></title>
 
-<link rel="stylesheet" href="css/editimage.css?ver=349-20679" type="text/css" media="all" />
-<script type="text/javascript" src="js/editimage.js?ver=349-20679"></script>
-<script type="text/javascript" src="../../utils/form_utils.js?ver=349-20592"></script>
+<link rel="stylesheet" href="css/editimage.css?ver=358-20121205" type="text/css" media="all" />
+<link rel="stylesheet" href="../../../../css/buttons.css?ver=358-20121205" type="text/css" media="all" />
+<script type="text/javascript" src="js/editimage.min.js?ver=358-20121205"></script>
+<script type="text/javascript" src="../../utils/form_utils.js?ver=358-20121205"></script>
 <base target="_self" />
 </head>
 
-<body id="media-upload" style="display:none;">
+<body id="media-upload" class="wp-core-ui" style="display:none;">
 <script type="text/javascript">
 if ( 'rtl' == tinyMCEPopup.editor.getParam('directionality','') )
 	document.body.className += ' rtl';
--- a/web/wp-includes/js/tinymce/plugins/wpeditimage/editor_plugin.js	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/js/tinymce/plugins/wpeditimage/editor_plugin.js	Wed Dec 19 17:46:52 2012 -0800
@@ -1,1 +1,1 @@
-(function(){tinymce.create("tinymce.plugins.wpEditImage",{url:"",editor:{},init:function(a,c){var d=this,b={};d.url=c;d.editor=a;d._createButtons();a.addCommand("WP_EditImage",function(){var i=a.selection.getNode(),g,h,e,f=a.dom.getAttrib(i,"class");if(f.indexOf("mceItem")!=-1||f.indexOf("wpGallery")!=-1||i.nodeName!="IMG"){return}g=tinymce.DOM.getViewPort();h=680<(g.h-70)?680:g.h-70;e=650<g.w?650:g.w;a.windowManager.open({file:c+"/editimage.html",width:e+"px",height:h+"px",inline:true})});a.onInit.add(function(e){e.dom.events.add(e.getBody(),"dragstart",function(g){var f;if(g.target.nodeName=="IMG"&&(f=e.dom.getParent(g.target,"div.mceTemp"))){e.selection.select(f)}})});a.onMouseUp.add(function(f,g){if(tinymce.isWebKit||tinymce.isOpera){return}if(b.x&&(g.clientX!=b.x||g.clientY!=b.y)){var h=f.selection.getNode();if("IMG"==h.nodeName){window.setTimeout(function(){var e=f.dom.getParent(h,"dl.wp-caption"),i;if(h.width!=b.img_w||h.height!=b.img_h){h.className=h.className.replace(/size-[^ "']+/,"")}if(e){i=f.dom.getAttrib(h,"width")||h.width;i=parseInt(i,10);f.dom.setStyle(e,"width",10+i);f.execCommand("mceRepaint")}},100)}}b={}});a.onMouseDown.add(function(f,h){var g=h.target;if(g.nodeName!="IMG"){if(g.firstChild&&g.firstChild.nodeName=="IMG"&&g.childNodes.length==1){g=g.firstChild}else{return}}if(f.dom.getAttrib(g,"class").indexOf("mceItem")==-1){b={x:h.clientX,y:h.clientY,img_w:g.clientWidth,img_h:g.clientHeight};f.plugins.wordpress._showButtons(g,"wp_editbtns")}});a.onKeyPress.add(function(f,j){var k,g,i,h;if(j.keyCode==13){k=f.selection.getNode();g=f.dom.getParent(k,"dl.wp-caption");if(g){i=f.dom.getParent(g,"div.mceTemp")}if(i){h=f.dom.create("p",{},"<br>");f.dom.insertAfter(h,i);f.selection.select(h.firstChild);if(tinymce.isIE){f.selection.setContent("")}else{f.selection.setContent('<br _moz_dirty="">');f.selection.setCursorLocation(h,0)}f.dom.events.cancel(j);return false}}});a.onBeforeSetContent.add(function(e,f){f.content=e.wpSetImgCaption(f.content)});a.onPostProcess.add(function(e,f){if(f.get){f.content=e.wpGetImgCaption(f.content)}});a.wpSetImgCaption=function(e){return d._do_shcode(e)};a.wpGetImgCaption=function(e){return d._get_shcode(e)}},_do_shcode:function(a){return a.replace(/(?:<p>)?\[(?:wp_)?caption([^\]]+)\]([\s\S]+?)\[\/(?:wp_)?caption\](?:<\/p>)?/g,function(j,i,h){var d,m,k,l,f,g,e=tinymce.trim;d=i.match(/id=['"]([^'"]*)['"] ?/);if(d){i=i.replace(d[0],"")}m=i.match(/align=['"]([^'"]*)['"] ?/);if(m){i=i.replace(m[0],"")}k=i.match(/width=['"]([0-9]*)['"] ?/);if(k){i=i.replace(k[0],"")}h=e(h);g=h.match(/((?:<a [^>]+>)?<img [^>]+>(?:<\/a>)?)([\s\S]*)/i);if(g&&g[2]){l=e(g[2]);g=e(g[1])}else{l=e(i).replace(/caption=['"]/,"").replace(/['"]$/,"");g=h}d=(d&&d[1])?d[1]:"";m=(m&&m[1])?m[1]:"alignnone";k=(k&&k[1])?k[1]:"";if(!k||!l){return h}f="mceTemp";if(m=="aligncenter"){f+=" mceIEcenter"}return'<div class="'+f+'"><dl id="'+d+'" class="wp-caption '+m+'" style="width: '+(10+parseInt(k))+'px"><dt class="wp-caption-dt">'+g+'</dt><dd class="wp-caption-dd">'+l+"</dd></dl></div>"})},_get_shcode:function(a){return a.replace(/<div (?:id="attachment_|class="mceTemp)[^>]*>([\s\S]+?)<\/div>/g,function(d,c){var e=c.replace(/<dl ([^>]+)>\s*<dt [^>]+>([\s\S]+?)<\/dt>\s*<dd [^>]+>([\s\S]*?)<\/dd>\s*<\/dl>/gi,function(i,f,l,j){var k,h,g;g=l.match(/width="([0-9]*)"/);g=(g&&g[1])?g[1]:"";if(!g||!j){return l}k=f.match(/id="([^"]*)"/);k=(k&&k[1])?k[1]:"";h=f.match(/class="([^"]*)"/);h=(h&&h[1])?h[1]:"";h=h.match(/align[a-z]+/)||"alignnone";j=j.replace(/\r\n|\r/g,"\n").replace(/<[a-zA-Z0-9]+( [^<>]+)?>/g,function(b){return b.replace(/[\r\n\t]+/," ")});j=j.replace(/\s*\n\s*/g,"<br />");return'[caption id="'+k+'" align="'+h+'" width="'+g+'"]'+l+" "+j+"[/caption]"});if(e.indexOf("[caption")!==0){e=c.replace(/[\s\S]*?((?:<a [^>]+>)?<img [^>]+>(?:<\/a>)?)(<p>[\s\S]*<\/p>)?[\s\S]*/gi,"<p>$1</p>$2")}return e})},_createButtons:function(){var b=this,a=tinyMCE.activeEditor,d=tinymce.DOM,e,c;d.remove("wp_editbtns");d.add(document.body,"div",{id:"wp_editbtns",style:"display:none;"});e=d.add("wp_editbtns","img",{src:b.url+"/img/image.png",id:"wp_editimgbtn",width:"24",height:"24",title:a.getLang("wpeditimage.edit_img")});tinymce.dom.Event.add(e,"mousedown",function(g){var f=tinyMCE.activeEditor;f.windowManager.bookmark=f.selection.getBookmark("simple");f.execCommand("WP_EditImage")});c=d.add("wp_editbtns","img",{src:b.url+"/img/delete.png",id:"wp_delimgbtn",width:"24",height:"24",title:a.getLang("wpeditimage.del_img")});tinymce.dom.Event.add(c,"mousedown",function(i){var f=tinyMCE.activeEditor,g=f.selection.getNode(),h;if(g.nodeName=="IMG"&&f.dom.getAttrib(g,"class").indexOf("mceItem")==-1){if((h=f.dom.getParent(g,"div"))&&f.dom.hasClass(h,"mceTemp")){f.dom.remove(h)}else{if((h=f.dom.getParent(g,"A"))&&h.childNodes.length==1){f.dom.remove(h)}else{f.dom.remove(g)}}f.execCommand("mceRepaint");return false}})},getInfo:function(){return{longname:"Edit Image",author:"WordPress",authorurl:"http://wordpress.org",infourl:"",version:"1.0"}}});tinymce.PluginManager.add("wpeditimage",tinymce.plugins.wpEditImage)})();
\ No newline at end of file
+(function(){tinymce.create("tinymce.plugins.wpEditImage",{url:"",editor:{},init:function(a,c){var d=this,b={};d.url=c;d.editor=a;d._createButtons();a.addCommand("WP_EditImage",d._editImage);a.onInit.add(function(e){e.dom.events.add(e.getBody(),"mousedown",function(g){var f;if(g.target.nodeName=="IMG"&&(f=e.dom.getParent(g.target,"div.mceTemp"))){if(tinymce.isGecko){e.selection.select(f)}else{if(tinymce.isWebKit){e.dom.events.prevent(g)}}}});e.dom.events.add(e.getBody(),"keydown",function(j){var k,f,i,h,g;if(j.keyCode==13){k=e.selection.getNode();f=e.dom.getParent(k,"dl.wp-caption");if(f){i=e.dom.getParent(f,"div.mceTemp")}if(i){e.dom.events.cancel(j);h=e.dom.create("p",{},"\uFEFF");e.dom.insertAfter(h,i);e.selection.setCursorLocation(h,0);return false}}});if("ontouchstart" in window){e.dom.events.add(e.getBody(),"touchstart",function(f){d._showButtons(f)})}});a.onMouseUp.add(function(f,g){if(tinymce.isWebKit||tinymce.isOpera){return}if(b.x&&(g.clientX!=b.x||g.clientY!=b.y)){var h=f.selection.getNode();if("IMG"==h.nodeName){window.setTimeout(function(){var e=f.dom.getParent(h,"dl.wp-caption"),i;if(h.width!=b.img_w||h.height!=b.img_h){h.className=h.className.replace(/size-[^ "']+/,"")}if(e){i=f.dom.getAttrib(h,"width")||h.width;i=parseInt(i,10);f.dom.setStyle(e,"width",10+i);f.execCommand("mceRepaint")}},100)}}b={}});a.onMouseDown.add(function(f,g){d._showButtons(g)});a.onBeforeSetContent.add(function(e,f){f.content=e.wpSetImgCaption(f.content)});a.onPostProcess.add(function(e,f){if(f.get){f.content=e.wpGetImgCaption(f.content)}});a.wpSetImgCaption=function(e){return d._do_shcode(e)};a.wpGetImgCaption=function(e){return d._get_shcode(e)};a.onBeforeExecCommand.add(function(e,h,g,j){var f,i;if(h=="mceInsertContent"){f=e.dom.getParent(e.selection.getNode(),"div.mceTemp");if(!f){return}i=e.dom.create("p");e.dom.insertAfter(i,f);e.selection.setCursorLocation(i,0)}})},_do_shcode:function(a){return a.replace(/(?:<p>)?\[(?:wp_)?caption([^\]]+)\]([\s\S]+?)\[\/(?:wp_)?caption\](?:<\/p>)?/g,function(j,i,h){var d,m,k,l,f,g,e=tinymce.trim;d=i.match(/id=['"]([^'"]*)['"] ?/);if(d){i=i.replace(d[0],"")}m=i.match(/align=['"]([^'"]*)['"] ?/);if(m){i=i.replace(m[0],"")}k=i.match(/width=['"]([0-9]*)['"] ?/);if(k){i=i.replace(k[0],"")}h=e(h);g=h.match(/((?:<a [^>]+>)?<img [^>]+>(?:<\/a>)?)([\s\S]*)/i);if(g&&g[2]){l=e(g[2]);g=e(g[1])}else{l=e(i).replace(/caption=['"]/,"").replace(/['"]$/,"");g=h}d=(d&&d[1])?d[1]:"";m=(m&&m[1])?m[1]:"alignnone";k=(k&&k[1])?k[1]:"";if(!k||!l){return h}f="mceTemp";if(m=="aligncenter"){f+=" mceIEcenter"}return'<div class="'+f+'"><dl id="'+d+'" class="wp-caption '+m+'" style="width: '+(10+parseInt(k))+'px"><dt class="wp-caption-dt">'+g+'</dt><dd class="wp-caption-dd">'+l+"</dd></dl></div>"})},_get_shcode:function(a){return a.replace(/<div (?:id="attachment_|class="mceTemp)[^>]*>([\s\S]+?)<\/div>/g,function(d,c){var e=c.replace(/<dl ([^>]+)>\s*<dt [^>]+>([\s\S]+?)<\/dt>\s*<dd [^>]+>([\s\S]*?)<\/dd>\s*<\/dl>/gi,function(i,f,l,j){var k,h,g;g=l.match(/width="([0-9]*)"/);g=(g&&g[1])?g[1]:"";if(!g||!j){return l}k=f.match(/id="([^"]*)"/);k=(k&&k[1])?k[1]:"";h=f.match(/class="([^"]*)"/);h=(h&&h[1])?h[1]:"";h=h.match(/align[a-z]+/)||"alignnone";j=j.replace(/\r\n|\r/g,"\n").replace(/<[a-zA-Z0-9]+( [^<>]+)?>/g,function(b){return b.replace(/[\r\n\t]+/," ")});j=j.replace(/\s*\n\s*/g,"<br />");return'[caption id="'+k+'" align="'+h+'" width="'+g+'"]'+l+" "+j+"[/caption]"});if(e.indexOf("[caption")!==0){e=c.replace(/[\s\S]*?((?:<a [^>]+>)?<img [^>]+>(?:<\/a>)?)(<p>[\s\S]*<\/p>)?[\s\S]*/gi,"<p>$1</p>$2")}return e})},_createButtons:function(){var b=this,a=tinymce.activeEditor,d=tinymce.DOM,e,c,f;if(d.get("wp_editbtns")){return}f=(window.devicePixelRatio&&window.devicePixelRatio>1)||(window.matchMedia&&window.matchMedia("(min-resolution:130dpi)").matches);d.add(document.body,"div",{id:"wp_editbtns",style:"display:none;"});e=d.add("wp_editbtns","img",{src:f?b.url+"/img/image-2x.png":b.url+"/img/image.png",id:"wp_editimgbtn",width:"24",height:"24",title:a.getLang("wpeditimage.edit_img")});tinymce.dom.Event.add(e,"mousedown",function(g){b._editImage();a.plugins.wordpress._hideButtons()});c=d.add("wp_editbtns","img",{src:f?b.url+"/img/delete-2x.png":b.url+"/img/delete.png",id:"wp_delimgbtn",width:"24",height:"24",title:a.getLang("wpeditimage.del_img")});tinymce.dom.Event.add(c,"mousedown",function(j){var g=tinymce.activeEditor,i=g.selection.getNode(),h;if(i.nodeName=="IMG"&&g.dom.getAttrib(i,"class").indexOf("mceItem")==-1){if((h=g.dom.getParent(i,"div"))&&g.dom.hasClass(h,"mceTemp")){g.dom.remove(h)}else{if(i.parentNode.nodeName=="A"&&i.parentNode.childNodes.length==1){i=i.parentNode}if(i.parentNode.nodeName=="P"&&i.parentNode.childNodes.length==1){i=i.parentNode}g.dom.remove(i)}g.execCommand("mceRepaint");return false}g.plugins.wordpress._hideButtons()})},_editImage:function(){var d=tinymce.activeEditor,e=this.url,g=d.selection.getNode(),c,f,a,b=g.className;if(b.indexOf("mceItem")!=-1||b.indexOf("wpGallery")!=-1||g.nodeName!="IMG"){return}c=tinymce.DOM.getViewPort();f=680<(c.h-70)?680:c.h-70;a=650<c.w?650:c.w;d.windowManager.open({file:e+"/editimage.html",width:a+"px",height:f+"px",inline:true})},_showButtons:function(c){var a=this.editor,b=c.target;if(b.nodeName!="IMG"){if(b.firstChild&&b.firstChild.nodeName=="IMG"&&b.childNodes.length==1){b=b.firstChild}else{a.plugins.wordpress._hideButtons();return}}if(a.dom.getAttrib(b,"class").indexOf("mceItem")==-1){mouse={x:c.clientX,y:c.clientY,img_w:b.clientWidth,img_h:b.clientHeight};if(c.type=="touchstart"){a.selection.select(b);a.dom.events.cancel(c)}a.plugins.wordpress._hideButtons();a.plugins.wordpress._showButtons(b,"wp_editbtns")}},getInfo:function(){return{longname:"Edit Image",author:"WordPress",authorurl:"http://wordpress.org",infourl:"",version:"1.0"}}});tinymce.PluginManager.add("wpeditimage",tinymce.plugins.wpEditImage)})();
\ No newline at end of file
--- a/web/wp-includes/js/tinymce/plugins/wpeditimage/editor_plugin_src.js	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/js/tinymce/plugins/wpeditimage/editor_plugin_src.js	Wed Dec 19 17:46:52 2012 -0800
@@ -11,36 +11,50 @@
 			t.editor = ed;
 			t._createButtons();
 
-			// Register the command so that it can be invoked by using tinyMCE.activeEditor.execCommand('...');
-			ed.addCommand('WP_EditImage', function() {
-				var el = ed.selection.getNode(), vp, H, W, cls = ed.dom.getAttrib(el, 'class');
-
-				if ( cls.indexOf('mceItem') != -1 || cls.indexOf('wpGallery') != -1 || el.nodeName != 'IMG' )
-					return;
-
-				vp = tinymce.DOM.getViewPort();
-				H = 680 < (vp.h - 70) ? 680 : vp.h - 70;
-				W = 650 < vp.w ? 650 : vp.w;
-
-				ed.windowManager.open({
-					file: url + '/editimage.html',
-					width: W+'px',
-					height: H+'px',
-					inline: true
-				});
-			});
+			ed.addCommand('WP_EditImage', t._editImage);
 
 			ed.onInit.add(function(ed) {
-				ed.dom.events.add(ed.getBody(), 'dragstart', function(e) {
+				ed.dom.events.add(ed.getBody(), 'mousedown', function(e) {
 					var parent;
 
 					if ( e.target.nodeName == 'IMG' && ( parent = ed.dom.getParent(e.target, 'div.mceTemp') ) ) {
-						ed.selection.select(parent);
+						if ( tinymce.isGecko )
+							ed.selection.select(parent);
+						else if ( tinymce.isWebKit )
+							ed.dom.events.prevent(e);
 					}
 				});
+
+				// when pressing Return inside a caption move the caret to a new parapraph under it
+				ed.dom.events.add(ed.getBody(), 'keydown', function(e) {
+					var n, DL, DIV, P, content;
+
+					if ( e.keyCode == 13 ) {
+						n = ed.selection.getNode();
+						DL = ed.dom.getParent(n, 'dl.wp-caption');
+
+						if ( DL )
+							DIV = ed.dom.getParent(DL, 'div.mceTemp');
+
+						if ( DIV ) {
+							ed.dom.events.cancel(e);
+							P = ed.dom.create('p', {}, '\uFEFF');
+							ed.dom.insertAfter( P, DIV );
+							ed.selection.setCursorLocation(P, 0);
+							return false;
+						}
+					}
+				});
+
+				// iOS6 doesn't show the buttons properly on click, show them on 'touchstart'
+				if ( 'ontouchstart' in window ) {
+					ed.dom.events.add(ed.getBody(), 'touchstart', function(e){
+						t._showButtons(e);
+					});
+				}
 			});
 
-			// resize the caption <dl> when the image is soft-resized by the user (only possible in Firefox and IE)
+			// resize the caption <dl> when the image is soft-resized by the user
 			ed.onMouseUp.add(function(ed, e) {
 				if ( tinymce.isWebKit || tinymce.isOpera )
 					return;
@@ -68,55 +82,8 @@
 			});
 
 			// show editimage buttons
-			ed.onMouseDown.add(function(ed, e) {
-				var target = e.target;
-
-				if ( target.nodeName != 'IMG' ) {
-					if ( target.firstChild && target.firstChild.nodeName == 'IMG' && target.childNodes.length == 1 )
-						target = target.firstChild;
-					else
-						return;
-				}
-
-				if ( ed.dom.getAttrib(target, 'class').indexOf('mceItem') == -1 ) {
-					mouse = {
-						x: e.clientX,
-						y: e.clientY,
-						img_w: target.clientWidth,
-						img_h: target.clientHeight
-					};
-
-					ed.plugins.wordpress._showButtons(target, 'wp_editbtns');
-				}
-			});
-
-			// when pressing Return inside a caption move the caret to a new parapraph under it
-			ed.onKeyPress.add(function(ed, e) {
-				var n, DL, DIV, P;
-
-				if ( e.keyCode == 13 ) {
-					n = ed.selection.getNode();
-					DL = ed.dom.getParent(n, 'dl.wp-caption');
-
-					if ( DL )
-						DIV = ed.dom.getParent(DL, 'div.mceTemp');
-
-					if ( DIV ) {
-						P = ed.dom.create('p', {}, '<br>');
-						ed.dom.insertAfter( P, DIV );
-						ed.selection.select(P.firstChild);
-
-						if ( tinymce.isIE ) {
-							ed.selection.setContent('');
-						} else {
-							ed.selection.setContent('<br _moz_dirty="">');
-							ed.selection.setCursorLocation(P, 0);
-						}
-
-						ed.dom.events.cancel(e);
-						return false;
-					}
-				}
+			ed.onMouseDown.add(function(ed, e){
+				t._showButtons(e);
 			});
 
 			ed.onBeforeSetContent.add(function(ed, o) {
@@ -135,6 +102,23 @@
 			ed.wpGetImgCaption = function(content) {
 				return t._get_shcode(content);
 			};
+
+			// When inserting content, if the caret is inside a caption create new paragraph under
+			// and move the caret there
+			ed.onBeforeExecCommand.add(function(ed, cmd, ui, val) {
+				var node, p;
+
+				if ( cmd == 'mceInsertContent' ) {
+					node = ed.dom.getParent(ed.selection.getNode(), 'div.mceTemp');
+
+					if ( !node )
+						return;
+
+					p = ed.dom.create('p');
+					ed.dom.insertAfter( p, node );
+					ed.selection.setCursorLocation(p, 0);
+				}
+			});
 		},
 
 		_do_shcode : function(content) {
@@ -221,9 +205,13 @@
 		},
 
 		_createButtons : function() {
-			var t = this, ed = tinyMCE.activeEditor, DOM = tinymce.DOM, editButton, dellButton;
+			var t = this, ed = tinymce.activeEditor, DOM = tinymce.DOM, editButton, dellButton, isRetina;
 
-			DOM.remove('wp_editbtns');
+			if ( DOM.get('wp_editbtns') )
+				return;
+
+			isRetina = ( window.devicePixelRatio && window.devicePixelRatio > 1 ) || // WebKit, Opera
+				( window.matchMedia && window.matchMedia('(min-resolution:130dpi)').matches ); // Firefox, IE10, Opera
 
 			DOM.add(document.body, 'div', {
 				id : 'wp_editbtns',
@@ -231,7 +219,7 @@
 			});
 
 			editButton = DOM.add('wp_editbtns', 'img', {
-				src : t.url+'/img/image.png',
+				src : isRetina ? t.url+'/img/image-2x.png' : t.url+'/img/image.png',
 				id : 'wp_editimgbtn',
 				width : '24',
 				height : '24',
@@ -239,13 +227,12 @@
 			});
 
 			tinymce.dom.Event.add(editButton, 'mousedown', function(e) {
-				var ed = tinyMCE.activeEditor;
-				ed.windowManager.bookmark = ed.selection.getBookmark('simple');
-				ed.execCommand("WP_EditImage");
+				t._editImage();
+				ed.plugins.wordpress._hideButtons();
 			});
 
 			dellButton = DOM.add('wp_editbtns', 'img', {
-				src : t.url+'/img/delete.png',
+				src : isRetina ? t.url+'/img/delete-2x.png' : t.url+'/img/delete.png',
 				id : 'wp_delimgbtn',
 				width : '24',
 				height : '24',
@@ -253,21 +240,75 @@
 			});
 
 			tinymce.dom.Event.add(dellButton, 'mousedown', function(e) {
-				var ed = tinyMCE.activeEditor, el = ed.selection.getNode(), p;
+				var ed = tinymce.activeEditor, el = ed.selection.getNode(), parent;
 
 				if ( el.nodeName == 'IMG' && ed.dom.getAttrib(el, 'class').indexOf('mceItem') == -1 ) {
-					if ( (p = ed.dom.getParent(el, 'div')) && ed.dom.hasClass(p, 'mceTemp') )
-						ed.dom.remove(p);
-					else if ( (p = ed.dom.getParent(el, 'A')) && p.childNodes.length == 1 )
-						ed.dom.remove(p);
-					else
+					if ( (parent = ed.dom.getParent(el, 'div')) && ed.dom.hasClass(parent, 'mceTemp') ) {
+						ed.dom.remove(parent);
+					} else {
+						if ( el.parentNode.nodeName == 'A' && el.parentNode.childNodes.length == 1 )
+							el = el.parentNode;
+
+						if ( el.parentNode.nodeName == 'P' && el.parentNode.childNodes.length == 1 )
+							el = el.parentNode;
+
 						ed.dom.remove(el);
+					}
 
 					ed.execCommand('mceRepaint');
 					return false;
 				}
+				ed.plugins.wordpress._hideButtons();
 			});
 		},
+		
+		_editImage : function() {
+			var ed = tinymce.activeEditor, url = this.url, el = ed.selection.getNode(), vp, H, W, cls = el.className;
+
+			if ( cls.indexOf('mceItem') != -1 || cls.indexOf('wpGallery') != -1 || el.nodeName != 'IMG' )
+				return;
+
+			vp = tinymce.DOM.getViewPort();
+			H = 680 < (vp.h - 70) ? 680 : vp.h - 70;
+			W = 650 < vp.w ? 650 : vp.w;
+
+			ed.windowManager.open({
+				file: url + '/editimage.html',
+				width: W+'px',
+				height: H+'px',
+				inline: true
+			});
+		},
+
+		_showButtons : function(e) {
+			var ed = this.editor, target = e.target;
+
+			if ( target.nodeName != 'IMG' ) {
+				if ( target.firstChild && target.firstChild.nodeName == 'IMG' && target.childNodes.length == 1 ) {
+					target = target.firstChild;
+				} else {
+					ed.plugins.wordpress._hideButtons();
+					return;
+				}
+			}
+
+			if ( ed.dom.getAttrib(target, 'class').indexOf('mceItem') == -1 ) {
+				mouse = {
+					x: e.clientX,
+					y: e.clientY,
+					img_w: target.clientWidth,
+					img_h: target.clientHeight
+				};
+
+				if ( e.type == 'touchstart' ) {
+					ed.selection.select(target);
+					ed.dom.events.cancel(e);
+				}
+
+				ed.plugins.wordpress._hideButtons();
+				ed.plugins.wordpress._showButtons(target, 'wp_editbtns');
+			}
+		},
 
 		getInfo : function() {
 			return {
Binary file web/wp-includes/js/tinymce/plugins/wpeditimage/img/delete-2x.png has changed
Binary file web/wp-includes/js/tinymce/plugins/wpeditimage/img/delete.png has changed
Binary file web/wp-includes/js/tinymce/plugins/wpeditimage/img/image-2x.png has changed
Binary file web/wp-includes/js/tinymce/plugins/wpeditimage/img/image.png has changed
--- a/web/wp-includes/js/tinymce/plugins/wpeditimage/js/editimage.dev.js	Wed Dec 19 12:35:13 2012 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,613 +0,0 @@
-
-var tinymce = null, tinyMCEPopup, tinyMCE, wpImage;
-
-tinyMCEPopup = {
-	init: function() {
-		var t = this, w, ti;
-
-		// Find window & API
-		w = t.getWin();
-		tinymce = w.tinymce;
-		tinyMCE = w.tinyMCE;
-		t.editor = tinymce.EditorManager.activeEditor;
-		t.params = t.editor.windowManager.params;
-		t.features = t.editor.windowManager.features;
-
-		// Setup local DOM
-		t.dom = t.editor.windowManager.createInstance('tinymce.dom.DOMUtils', document);
-		t.editor.windowManager.onOpen.dispatch(t.editor.windowManager, window);
-	},
-
-	getWin : function() {
-		return (!window.frameElement && window.dialogArguments) || opener || parent || top;
-	},
-
-	getParam : function(n, dv) {
-		return this.editor.getParam(n, dv);
-	},
-
-	close : function() {
-		var t = this;
-
-		// To avoid domain relaxing issue in Opera
-		function close() {
-			t.editor.windowManager.close(window);
-			tinymce = tinyMCE = t.editor = t.params = t.dom = t.dom.doc = null; // Cleanup
-		};
-
-		if (tinymce.isOpera)
-			t.getWin().setTimeout(close, 0);
-		else
-			close();
-	},
-
-	execCommand : function(cmd, ui, val, a) {
-		a = a || {};
-		a.skip_focus = 1;
-
-		this.restoreSelection();
-		return this.editor.execCommand(cmd, ui, val, a);
-	},
-
-	storeSelection : function() {
-		this.editor.windowManager.bookmark = tinyMCEPopup.editor.selection.getBookmark(1);
-	},
-
-	restoreSelection : function() {
-		var t = tinyMCEPopup;
-
-		if ( tinymce.isIE )
-			t.editor.selection.moveToBookmark(t.editor.windowManager.bookmark);
-	}
-}
-tinyMCEPopup.init();
-
-wpImage = {
-	preInit : function() {
-		// import colors stylesheet from parent
-		var ed = tinyMCEPopup.editor, win = tinyMCEPopup.getWin(), styles = win.document.styleSheets, url, i;
-
-		for ( i = 0; i < styles.length; i++ ) {
-			url = styles.item(i).href;
-			if ( url && url.indexOf('colors') != -1 ) {
-				document.getElementsByTagName('head')[0].appendChild( ed.dom.create('link', {rel:'stylesheet', href: url}) );
-				break;
-			}
-		}
-	},
-
-	I : function(e) {
-		return document.getElementById(e);
-	},
-
-	current : '',
-	link : '',
-	link_rel : '',
-	target_value : '',
-	current_size_sel : 's100',
-	width : '',
-	height : '',
-	align : '',
-	img_alt : '',
-
-	setTabs : function(tab) {
-		var t = this;
-
-		if ( 'current' == tab.className ) return false;
-		t.I('div_advanced').style.display = ( 'tab_advanced' == tab.id ) ? 'block' : 'none';
-		t.I('div_basic').style.display = ( 'tab_basic' == tab.id ) ? 'block' : 'none';
-		t.I('tab_basic').className = t.I('tab_advanced').className = '';
-		tab.className = 'current';
-		return false;
-	},
-
-	img_seturl : function(u) {
-		var t = this, rel = t.I('link_rel').value;
-
-		if ( 'current' == u ) {
-			t.I('link_href').value = t.current;
-			t.I('link_rel').value = t.link_rel;
-		} else {
-			t.I('link_href').value = t.link;
-			if ( rel ) {
-				rel = rel.replace( /attachment|wp-att-[0-9]+/gi, '' );
-				t.I('link_rel').value = tinymce.trim(rel);
-			}
-		}
-	},
-
-	imgAlignCls : function(v) {
-		var t = this, cls = t.I('img_classes').value;
-
-		t.I('img_demo').className = t.align = v;
-
-		cls = cls.replace( /align[^ "']+/gi, '' );
-		cls += (' ' + v);
-		cls = cls.replace( /\s+/g, ' ' ).replace( /^\s/, '' );
-
-		if ( 'aligncenter' == v ) {
-			t.I('hspace').value = '';
-			t.updateStyle('hspace');
-		}
-
-		t.I('img_classes').value = cls;
-	},
-
-	showSize : function(el) {
-		var t = this, demo = t.I('img_demo'), w = t.width, h = t.height, id = el.id || 's100', size;
-
-		size = parseInt(id.substring(1)) / 200;
-		demo.width = Math.round(w * size);
-		demo.height = Math.round(h * size);
-
-		t.showSizeClear();
-		el.style.borderColor = '#A3A3A3';
-		el.style.backgroundColor = '#E5E5E5';
-	},
-
-	showSizeSet : function() {
-		var t = this, s130, s120, s110;
-
-		if ( (t.width * 1.3) > parseInt(t.preloadImg.width) ) {
-			s130 = t.I('s130'), s120 = t.I('s120'), s110 = t.I('s110');
-
-			s130.onclick = s120.onclick = s110.onclick = null;
-			s130.onmouseover = s120.onmouseover = s110.onmouseover = null;
-			s130.style.color = s120.style.color = s110.style.color = '#aaa';
-		}
-	},
-
-	showSizeRem : function() {
-		var t = this, demo = t.I('img_demo'), f = document.forms[0];
-
-		demo.width = Math.round(f.width.value * 0.5);
-		demo.height = Math.round(f.height.value * 0.5);
-		t.showSizeClear();
-		t.I(t.current_size_sel).style.borderColor = '#A3A3A3';
-		t.I(t.current_size_sel).style.backgroundColor = '#E5E5E5';
-
-		return false;
-	},
-
-	showSizeClear : function() {
-		var divs = this.I('img_size').getElementsByTagName('div'), i;
-
-		for ( i = 0; i < divs.length; i++ ) {
-			divs[i].style.borderColor = '#f1f1f1';
-			divs[i].style.backgroundColor = '#f1f1f1';
-		}
-	},
-
-	imgEditSize : function(el) {
-		var t = this, f = document.forms[0], W, H, w, h, id;
-
-		if ( ! t.preloadImg || ! t.preloadImg.width || ! t.preloadImg.height )
-			return;
-		
-		W = parseInt(t.preloadImg.width), H = parseInt(t.preloadImg.height), w = t.width || W, h = t.height || H, id = el.id || 's100';
-
-		size = parseInt(id.substring(1)) / 100;
-
-		w = Math.round(w * size);
-		h = Math.round(h * size);
-
-		f.width.value = Math.min(W, w);
-		f.height.value = Math.min(H, h);
-
-		t.current_size_sel = id;
-		t.demoSetSize();
-	},
-
-	demoSetSize : function(img) {
-		var demo = this.I('img_demo'), f = document.forms[0];
-
-		demo.width = f.width.value ? Math.round(f.width.value * 0.5) : '';
-		demo.height = f.height.value ? Math.round(f.height.value * 0.5) : '';
-	},
-
-	demoSetStyle : function() {
-		var f = document.forms[0], demo = this.I('img_demo'), dom = tinyMCEPopup.editor.dom;
-
-		if (demo) {
-			dom.setAttrib(demo, 'style', f.img_style.value);
-			dom.setStyle(demo, 'width', '');
-			dom.setStyle(demo, 'height', '');
-		}
-	},
-
-	origSize : function() {
-		var t = this, f = document.forms[0], el = t.I('s100');
-
-		f.width.value = t.width = t.preloadImg.width;
-		f.height.value = t.height = t.preloadImg.height;
-		t.showSizeSet();
-		t.demoSetSize();
-		t.showSize(el);
-	},
-
-	init : function() {
-		var ed = tinyMCEPopup.editor, h;
-
-		h = document.body.innerHTML;
-		document.body.innerHTML = ed.translate(h);
-		window.setTimeout( function(){wpImage.setup();}, 500 );
-	},
-
-	setup : function() {
-		var t = this, c, el, link, fname, f = document.forms[0], ed = tinyMCEPopup.editor,
-			d = t.I('img_demo'), dom = tinyMCEPopup.dom, DL, DD, caption = '', dlc, pa;
-
-		document.dir = tinyMCEPopup.editor.getParam('directionality','');
-
-		if ( tinyMCEPopup.editor.getParam('wpeditimage_disable_captions', false) )
-			t.I('cap_field').style.display = 'none';
-
-		tinyMCEPopup.restoreSelection();
-		el = ed.selection.getNode();
-		if (el.nodeName != 'IMG')
-			return;
-
-		f.img_src.value = d.src = link = ed.dom.getAttrib(el, 'src');
-		ed.dom.setStyle(el, 'float', '');
-		t.getImageData();
-		c = ed.dom.getAttrib(el, 'class');
-
-		if ( DL = dom.getParent(el, 'dl') ) {
-			dlc = ed.dom.getAttrib(DL, 'class');
-			dlc = dlc.match(/align[^ "']+/i);
-			if ( dlc && ! dom.hasClass(el, dlc) ) {
-				c += ' '+dlc;
-				tinymce.trim(c);
-			}
-
-			DD = ed.dom.select('dd.wp-caption-dd', DL);
-			if ( DD && DD[0] )
-				caption = ed.serializer.serialize(DD[0]).replace(/^<p>/, '').replace(/<\/p>$/, '');
-		}
-
-		f.img_cap_text.value = caption;
-		f.img_title.value = ed.dom.getAttrib(el, 'title');
-		f.img_alt.value = ed.dom.getAttrib(el, 'alt');
-		f.border.value = ed.dom.getAttrib(el, 'border');
-		f.vspace.value = ed.dom.getAttrib(el, 'vspace');
-		f.hspace.value = ed.dom.getAttrib(el, 'hspace');
-		f.align.value = ed.dom.getAttrib(el, 'align');
-		f.width.value = t.width = ed.dom.getAttrib(el, 'width');
-		f.height.value = t.height = ed.dom.getAttrib(el, 'height');
-		f.img_classes.value = c;
-		f.img_style.value = ed.dom.getAttrib(el, 'style');
-
-		// Move attribs to styles
-		if ( dom.getAttrib(el, 'hspace') )
-			t.updateStyle('hspace');
-
-		if ( dom.getAttrib(el, 'border') )
-			t.updateStyle('border');
-
-		if ( dom.getAttrib(el, 'vspace') )
-			t.updateStyle('vspace');
-
-		if ( pa = ed.dom.getParent(el, 'A') ) {
-			f.link_href.value = t.current = ed.dom.getAttrib(pa, 'href');
-			f.link_title.value = ed.dom.getAttrib(pa, 'title');
-			f.link_rel.value = t.link_rel = ed.dom.getAttrib(pa, 'rel');
-			f.link_style.value = ed.dom.getAttrib(pa, 'style');
-			t.target_value = ed.dom.getAttrib(pa, 'target');
-			f.link_classes.value = ed.dom.getAttrib(pa, 'class');
-		}
-
-		f.link_target.checked = ( t.target_value && t.target_value == '_blank' ) ? 'checked' : '';
-
-		fname = link.substring( link.lastIndexOf('/') );
-		fname = fname.replace(/-[0-9]{2,4}x[0-9]{2,4}/, '' );
-		t.link = link.substring( 0, link.lastIndexOf('/') ) + fname;
-
-		if ( c.indexOf('alignleft') != -1 ) {
-			t.I('alignleft').checked = "checked";
-			d.className = t.align = "alignleft";
-		} else if ( c.indexOf('aligncenter') != -1 ) {
-			t.I('aligncenter').checked = "checked";
-			d.className = t.align = "aligncenter";
-		} else if ( c.indexOf('alignright') != -1 ) {
-			t.I('alignright').checked = "checked";
-			d.className = t.align = "alignright";
-		} else if ( c.indexOf('alignnone') != -1 ) {
-			t.I('alignnone').checked = "checked";
-			d.className = t.align = "alignnone";
-		}
-
-		if ( t.width && t.preloadImg.width )
-			t.showSizeSet();
-		
-		document.body.style.display = '';
-	},
-
-	remove : function() {
-		var ed = tinyMCEPopup.editor, p, el;
-
-		tinyMCEPopup.restoreSelection();
-		el = ed.selection.getNode();
-		if (el.nodeName != 'IMG') return;
-
-		if ( (p = ed.dom.getParent(el, 'div')) && ed.dom.hasClass(p, 'mceTemp') )
-			ed.dom.remove(p);
-		else if ( (p = ed.dom.getParent(el, 'A')) && p.childNodes.length == 1 )
-			ed.dom.remove(p);
-		else ed.dom.remove(el);
-
-		ed.execCommand('mceRepaint');
-		tinyMCEPopup.close();
-		return;
-	},
-
-	update : function() {
-		var t = this, f = document.forms[0], ed = tinyMCEPopup.editor, el, b, fixSafari = null,
-			DL, P, A, DIV, do_caption = null, img_class = f.img_classes.value, html,
-			id, cap_id = '', cap, DT, DD, cap_width, div_cls, lnk = '', pa, aa, caption;
-
-		tinyMCEPopup.restoreSelection();
-		el = ed.selection.getNode();
-
-		if (el.nodeName != 'IMG') return;
-		if (f.img_src.value === '') {
-			t.remove();
-			return;
-		}
-
-		if ( f.img_cap_text.value != '' && f.width.value != '' ) {
-			do_caption = 1;
-			img_class = img_class.replace( /align[^ "']+\s?/gi, '' );
-		}
-
-		A = ed.dom.getParent(el, 'a');
-		P = ed.dom.getParent(el, 'p');
-		DL = ed.dom.getParent(el, 'dl');
-		DIV = ed.dom.getParent(el, 'div');
-
-		tinyMCEPopup.execCommand("mceBeginUndoLevel");
-
-		if ( f.width.value != el.width || f.height.value != el.height )
-			img_class = img_class.replace(/size-[^ "']+/, '');
-
-		ed.dom.setAttribs(el, {
-			src : f.img_src.value,
-			title : f.img_title.value,
-			alt : f.img_alt.value,
-			width : f.width.value,
-			height : f.height.value,
-			style : f.img_style.value,
-			'class' : img_class
-		});
-
-		if ( f.link_href.value ) {
-			// Create new anchor elements
-			if ( A == null ) {
-				if ( ! f.link_href.value.match(/https?:\/\//i) )
-					f.link_href.value = tinyMCEPopup.editor.documentBaseURI.toAbsolute(f.link_href.value);
-
-				ed.getDoc().execCommand("unlink", false, null);
-				tinyMCEPopup.execCommand("mceInsertLink", false, "#mce_temp_url#", {skip_undo : 1});
-
-				tinymce.each(ed.dom.select("a"), function(n) {
-					if ( ed.dom.getAttrib(n, 'href') == '#mce_temp_url#' ) {
-
-						ed.dom.setAttribs(n, {
-							href : f.link_href.value,
-							title : f.link_title.value,
-							rel : f.link_rel.value,
-							target : (f.link_target.checked == true) ? '_blank' : '',
-							'class' : f.link_classes.value,
-							style : f.link_style.value
-						});
-					}
-				});
-			} else {
-				ed.dom.setAttribs(A, {
-					href : f.link_href.value,
-					title : f.link_title.value,
-					rel : f.link_rel.value,
-					target : (f.link_target.checked == true) ? '_blank' : '',
-					'class' : f.link_classes.value,
-					style : f.link_style.value
-				});
-			}
-		}
-
-		if ( do_caption ) {
-			cap_width = 10 + parseInt(f.width.value);
-			div_cls = (t.align == 'aligncenter') ? 'mceTemp mceIEcenter' : 'mceTemp';
-			caption = f.img_cap_text.value;
-
-			caption = caption.replace(/\r\n|\r/g, '\n').replace(/<[a-zA-Z0-9]+( [^<>]+)?>/g, function(a){
-				return a.replace(/[\r\n\t]+/, ' ');
-			});
-
-			caption = caption.replace(/\s*\n\s*/g, '<br />');
-
-			if ( DL ) {
-				ed.dom.setAttribs(DL, {
-					'class' : 'wp-caption '+t.align,
-					style : 'width: '+cap_width+'px;'
-				});
-
-				if ( DIV )
-					ed.dom.setAttrib(DIV, 'class', div_cls);
-
-				if ( (DT = ed.dom.getParent(el, 'dt')) && (DD = DT.nextSibling) && ed.dom.hasClass(DD, 'wp-caption-dd') )
-					ed.dom.setHTML(DD, caption);
-
-			} else {
-				if ( (id = f.img_classes.value.match( /wp-image-([0-9]{1,6})/ )) && id[1] )
-					cap_id = 'attachment_'+id[1];
-
-				if ( f.link_href.value && (lnk = ed.dom.getParent(el, 'a')) ) {
-					if ( lnk.childNodes.length == 1 ) {
-						html = ed.dom.getOuterHTML(lnk);
-					} else {
-						html = ed.dom.getOuterHTML(lnk);
-						html = html.match(/<a [^>]+>/i);
-						html = html+ed.dom.getOuterHTML(el)+'</a>';
-					}
-				} else {
-					html = ed.dom.getOuterHTML(el);
-				}
-
-				html = '<dl id="'+cap_id+'" class="wp-caption '+t.align+'" style="width: '+cap_width+
-				'px"><dt class="wp-caption-dt">'+html+'</dt><dd class="wp-caption-dd">'+caption+'</dd></dl>';
-
-				cap = ed.dom.create('div', {'class': div_cls}, html);
-
-				if ( P ) {
-					P.parentNode.insertBefore(cap, P);
-					if ( P.childNodes.length == 1 )
-						ed.dom.remove(P);
-					else if ( lnk && lnk.childNodes.length == 1 )
-						ed.dom.remove(lnk);
-					else ed.dom.remove(el);
-				} else if ( pa = ed.dom.getParent(el, 'TD,TH,LI') ) {
-					pa.appendChild(cap);
-					if ( lnk && lnk.childNodes.length == 1 )
-						ed.dom.remove(lnk);
-					else ed.dom.remove(el);
-				}
-			}
-
-		} else {
-			if ( DL && DIV ) {
-				if ( f.link_href.value && (aa = ed.dom.getParent(el, 'a')) ) html = ed.dom.getOuterHTML(aa);
-				else html = ed.dom.getOuterHTML(el);
-
-				P = ed.dom.create('p', {}, html);
-				DIV.parentNode.insertBefore(P, DIV);
-				ed.dom.remove(DIV);
-			}
-		}
-
-		if ( f.img_classes.value.indexOf('aligncenter') != -1 ) {
-			if ( P && ( ! P.style || P.style.textAlign != 'center' ) )
-				ed.dom.setStyle(P, 'textAlign', 'center');
-		} else {
-			if ( P && P.style && P.style.textAlign == 'center' )
-				ed.dom.setStyle(P, 'textAlign', '');
-		}
-
-		if ( ! f.link_href.value && A ) {
-			b = ed.selection.getBookmark();
-			ed.dom.remove(A, 1);
-			ed.selection.moveToBookmark(b);
-		}
-
-		tinyMCEPopup.execCommand("mceEndUndoLevel");
-		ed.execCommand('mceRepaint');
-		tinyMCEPopup.close();
-	},
-
-	updateStyle : function(ty) {
-		var dom = tinyMCEPopup.dom, v, f = document.forms[0], img = dom.create('img', {style : f.img_style.value});
-
-		if (tinyMCEPopup.editor.settings.inline_styles) {
-			// Handle align
-			if (ty == 'align') {
-				dom.setStyle(img, 'float', '');
-				dom.setStyle(img, 'vertical-align', '');
-
-				v = f.align.value;
-				if (v) {
-					if (v == 'left' || v == 'right')
-						dom.setStyle(img, 'float', v);
-					else
-						img.style.verticalAlign = v;
-				}
-			}
-
-			// Handle border
-			if (ty == 'border') {
-				dom.setStyle(img, 'border', '');
-
-				v = f.border.value;
-				if (v || v == '0') {
-					if (v == '0')
-						img.style.border = '0';
-					else
-						img.style.border = v + 'px solid black';
-				}
-			}
-
-			// Handle hspace
-			if (ty == 'hspace') {
-				dom.setStyle(img, 'marginLeft', '');
-				dom.setStyle(img, 'marginRight', '');
-
-				v = f.hspace.value;
-				if (v) {
-					img.style.marginLeft = v + 'px';
-					img.style.marginRight = v + 'px';
-				}
-			}
-
-			// Handle vspace
-			if (ty == 'vspace') {
-				dom.setStyle(img, 'marginTop', '');
-				dom.setStyle(img, 'marginBottom', '');
-
-				v = f.vspace.value;
-				if (v) {
-					img.style.marginTop = v + 'px';
-					img.style.marginBottom = v + 'px';
-				}
-			}
-
-			// Merge
-			f.img_style.value = dom.serializeStyle(dom.parseStyle(img.style.cssText));
-			this.demoSetStyle();
-		}
-	},
-
-	checkVal : function(f) {
-
-		if ( f.value == '' ) {
-	//		if ( f.id == 'width' ) f.value = this.width || this.preloadImg.width;
-	//		if ( f.id == 'height' ) f.value = this.height || this.preloadImg.height;
-			if ( f.id == 'img_src' ) f.value = this.I('img_demo').src || this.preloadImg.src;
-		}
-	},
-
-	resetImageData : function() {
-		var f = document.forms[0];
-
-		f.width.value = f.height.value = '';
-	},
-
-	updateImageData : function() {
-		var f = document.forms[0], t = wpImage, w = f.width.value, h = f.height.value;
-
-		if ( !w && h )
-			w = f.width.value = t.width = Math.round( t.preloadImg.width / (t.preloadImg.height / h) );
-		else if ( w && !h )
-			h = f.height.value = t.height = Math.round( t.preloadImg.height / (t.preloadImg.width / w) );
-
-		if ( !w )
-			f.width.value = t.width = t.preloadImg.width;
-
-		if ( !h )
-			f.height.value = t.height = t.preloadImg.height;
-
-		t.showSizeSet();
-		t.demoSetSize();
-		if ( f.img_style.value )
-			t.demoSetStyle();
-	},
-
-	getImageData : function() {
-		var t = wpImage, f = document.forms[0];
-
-		t.preloadImg = new Image();
-		t.preloadImg.onload = t.updateImageData;
-		t.preloadImg.onerror = t.resetImageData;
-		t.preloadImg.src = tinyMCEPopup.editor.documentBaseURI.toAbsolute(f.img_src.value);
-	}
-};
-
-window.onload = function(){wpImage.init();}
-wpImage.preInit();
-
--- a/web/wp-includes/js/tinymce/plugins/wpeditimage/js/editimage.js	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/js/tinymce/plugins/wpeditimage/js/editimage.js	Wed Dec 19 17:46:52 2012 -0800
@@ -1,1 +1,613 @@
-var tinymce=null,tinyMCEPopup,tinyMCE,wpImage;tinyMCEPopup={init:function(){var b=this,a,c;a=b.getWin();tinymce=a.tinymce;tinyMCE=a.tinyMCE;b.editor=tinymce.EditorManager.activeEditor;b.params=b.editor.windowManager.params;b.features=b.editor.windowManager.features;b.dom=b.editor.windowManager.createInstance("tinymce.dom.DOMUtils",document);b.editor.windowManager.onOpen.dispatch(b.editor.windowManager,window)},getWin:function(){return(!window.frameElement&&window.dialogArguments)||opener||parent||top},getParam:function(b,a){return this.editor.getParam(b,a)},close:function(){var a=this;function b(){a.editor.windowManager.close(window);tinymce=tinyMCE=a.editor=a.params=a.dom=a.dom.doc=null}if(tinymce.isOpera){a.getWin().setTimeout(b,0)}else{b()}},execCommand:function(d,c,e,b){b=b||{};b.skip_focus=1;this.restoreSelection();return this.editor.execCommand(d,c,e,b)},storeSelection:function(){this.editor.windowManager.bookmark=tinyMCEPopup.editor.selection.getBookmark(1)},restoreSelection:function(){var a=tinyMCEPopup;if(tinymce.isIE){a.editor.selection.moveToBookmark(a.editor.windowManager.bookmark)}}};tinyMCEPopup.init();wpImage={preInit:function(){var a=tinyMCEPopup.editor,e=tinyMCEPopup.getWin(),d=e.document.styleSheets,b,c;for(c=0;c<d.length;c++){b=d.item(c).href;if(b&&b.indexOf("colors")!=-1){document.getElementsByTagName("head")[0].appendChild(a.dom.create("link",{rel:"stylesheet",href:b}));break}}},I:function(a){return document.getElementById(a)},current:"",link:"",link_rel:"",target_value:"",current_size_sel:"s100",width:"",height:"",align:"",img_alt:"",setTabs:function(b){var a=this;if("current"==b.className){return false}a.I("div_advanced").style.display=("tab_advanced"==b.id)?"block":"none";a.I("div_basic").style.display=("tab_basic"==b.id)?"block":"none";a.I("tab_basic").className=a.I("tab_advanced").className="";b.className="current";return false},img_seturl:function(b){var c=this,a=c.I("link_rel").value;if("current"==b){c.I("link_href").value=c.current;c.I("link_rel").value=c.link_rel}else{c.I("link_href").value=c.link;if(a){a=a.replace(/attachment|wp-att-[0-9]+/gi,"");c.I("link_rel").value=tinymce.trim(a)}}},imgAlignCls:function(b){var c=this,a=c.I("img_classes").value;c.I("img_demo").className=c.align=b;a=a.replace(/align[^ "']+/gi,"");a+=(" "+b);a=a.replace(/\s+/g," ").replace(/^\s/,"");if("aligncenter"==b){c.I("hspace").value="";c.updateStyle("hspace")}c.I("img_classes").value=a},showSize:function(e){var c=this,f=c.I("img_demo"),a=c.width,d=c.height,g=e.id||"s100",b;b=parseInt(g.substring(1))/200;f.width=Math.round(a*b);f.height=Math.round(d*b);c.showSizeClear();e.style.borderColor="#A3A3A3";e.style.backgroundColor="#E5E5E5"},showSizeSet:function(){var b=this,d,c,a;if((b.width*1.3)>parseInt(b.preloadImg.width)){d=b.I("s130"),c=b.I("s120"),a=b.I("s110");d.onclick=c.onclick=a.onclick=null;d.onmouseover=c.onmouseover=a.onmouseover=null;d.style.color=c.style.color=a.style.color="#aaa"}},showSizeRem:function(){var a=this,c=a.I("img_demo"),b=document.forms[0];c.width=Math.round(b.width.value*0.5);c.height=Math.round(b.height.value*0.5);a.showSizeClear();a.I(a.current_size_sel).style.borderColor="#A3A3A3";a.I(a.current_size_sel).style.backgroundColor="#E5E5E5";return false},showSizeClear:function(){var b=this.I("img_size").getElementsByTagName("div"),a;for(a=0;a<b.length;a++){b[a].style.borderColor="#f1f1f1";b[a].style.backgroundColor="#f1f1f1"}},imgEditSize:function(g){var d=this,i=document.forms[0],a,c,b,e,j;if(!d.preloadImg||!d.preloadImg.width||!d.preloadImg.height){return}a=parseInt(d.preloadImg.width),c=parseInt(d.preloadImg.height),b=d.width||a,e=d.height||c,j=g.id||"s100";size=parseInt(j.substring(1))/100;b=Math.round(b*size);e=Math.round(e*size);i.width.value=Math.min(a,b);i.height.value=Math.min(c,e);d.current_size_sel=j;d.demoSetSize()},demoSetSize:function(a){var c=this.I("img_demo"),b=document.forms[0];c.width=b.width.value?Math.round(b.width.value*0.5):"";c.height=b.height.value?Math.round(b.height.value*0.5):""},demoSetStyle:function(){var b=document.forms[0],a=this.I("img_demo"),c=tinyMCEPopup.editor.dom;if(a){c.setAttrib(a,"style",b.img_style.value);c.setStyle(a,"width","");c.setStyle(a,"height","")}},origSize:function(){var a=this,c=document.forms[0],b=a.I("s100");c.width.value=a.width=a.preloadImg.width;c.height.value=a.height=a.preloadImg.height;a.showSizeSet();a.demoSetSize();a.showSize(b)},init:function(){var a=tinyMCEPopup.editor,b;b=document.body.innerHTML;document.body.innerHTML=a.translate(b);window.setTimeout(function(){wpImage.setup()},500)},setup:function(){var q=this,l,b,m,e,j=document.forms[0],i=tinyMCEPopup.editor,k=q.I("img_demo"),h=tinyMCEPopup.dom,a,g,p="",o,n;document.dir=tinyMCEPopup.editor.getParam("directionality","");if(tinyMCEPopup.editor.getParam("wpeditimage_disable_captions",false)){q.I("cap_field").style.display="none"}tinyMCEPopup.restoreSelection();b=i.selection.getNode();if(b.nodeName!="IMG"){return}j.img_src.value=k.src=m=i.dom.getAttrib(b,"src");i.dom.setStyle(b,"float","");q.getImageData();l=i.dom.getAttrib(b,"class");if(a=h.getParent(b,"dl")){o=i.dom.getAttrib(a,"class");o=o.match(/align[^ "']+/i);if(o&&!h.hasClass(b,o)){l+=" "+o;tinymce.trim(l)}g=i.dom.select("dd.wp-caption-dd",a);if(g&&g[0]){p=i.serializer.serialize(g[0]).replace(/^<p>/,"").replace(/<\/p>$/,"")}}j.img_cap_text.value=p;j.img_title.value=i.dom.getAttrib(b,"title");j.img_alt.value=i.dom.getAttrib(b,"alt");j.border.value=i.dom.getAttrib(b,"border");j.vspace.value=i.dom.getAttrib(b,"vspace");j.hspace.value=i.dom.getAttrib(b,"hspace");j.align.value=i.dom.getAttrib(b,"align");j.width.value=q.width=i.dom.getAttrib(b,"width");j.height.value=q.height=i.dom.getAttrib(b,"height");j.img_classes.value=l;j.img_style.value=i.dom.getAttrib(b,"style");if(h.getAttrib(b,"hspace")){q.updateStyle("hspace")}if(h.getAttrib(b,"border")){q.updateStyle("border")}if(h.getAttrib(b,"vspace")){q.updateStyle("vspace")}if(n=i.dom.getParent(b,"A")){j.link_href.value=q.current=i.dom.getAttrib(n,"href");j.link_title.value=i.dom.getAttrib(n,"title");j.link_rel.value=q.link_rel=i.dom.getAttrib(n,"rel");j.link_style.value=i.dom.getAttrib(n,"style");q.target_value=i.dom.getAttrib(n,"target");j.link_classes.value=i.dom.getAttrib(n,"class")}j.link_target.checked=(q.target_value&&q.target_value=="_blank")?"checked":"";e=m.substring(m.lastIndexOf("/"));e=e.replace(/-[0-9]{2,4}x[0-9]{2,4}/,"");q.link=m.substring(0,m.lastIndexOf("/"))+e;if(l.indexOf("alignleft")!=-1){q.I("alignleft").checked="checked";k.className=q.align="alignleft"}else{if(l.indexOf("aligncenter")!=-1){q.I("aligncenter").checked="checked";k.className=q.align="aligncenter"}else{if(l.indexOf("alignright")!=-1){q.I("alignright").checked="checked";k.className=q.align="alignright"}else{if(l.indexOf("alignnone")!=-1){q.I("alignnone").checked="checked";k.className=q.align="alignnone"}}}}if(q.width&&q.preloadImg.width){q.showSizeSet()}document.body.style.display=""},remove:function(){var a=tinyMCEPopup.editor,c,b;tinyMCEPopup.restoreSelection();b=a.selection.getNode();if(b.nodeName!="IMG"){return}if((c=a.dom.getParent(b,"div"))&&a.dom.hasClass(c,"mceTemp")){a.dom.remove(c)}else{if((c=a.dom.getParent(b,"A"))&&c.childNodes.length==1){a.dom.remove(c)}else{a.dom.remove(b)}}a.execCommand("mceRepaint");tinyMCEPopup.close();return},update:function(){var m=this,v=document.forms[0],g=tinyMCEPopup.editor,e,y,d=null,n,h,p,r,o=null,k=v.img_classes.value,l,q,u="",j,i,s,a,B,x="",c,z,w;tinyMCEPopup.restoreSelection();e=g.selection.getNode();if(e.nodeName!="IMG"){return}if(v.img_src.value===""){m.remove();return}if(v.img_cap_text.value!=""&&v.width.value!=""){o=1;k=k.replace(/align[^ "']+\s?/gi,"")}p=g.dom.getParent(e,"a");h=g.dom.getParent(e,"p");n=g.dom.getParent(e,"dl");r=g.dom.getParent(e,"div");tinyMCEPopup.execCommand("mceBeginUndoLevel");if(v.width.value!=e.width||v.height.value!=e.height){k=k.replace(/size-[^ "']+/,"")}g.dom.setAttribs(e,{src:v.img_src.value,title:v.img_title.value,alt:v.img_alt.value,width:v.width.value,height:v.height.value,style:v.img_style.value,"class":k});if(v.link_href.value){if(p==null){if(!v.link_href.value.match(/https?:\/\//i)){v.link_href.value=tinyMCEPopup.editor.documentBaseURI.toAbsolute(v.link_href.value)}g.getDoc().execCommand("unlink",false,null);tinyMCEPopup.execCommand("mceInsertLink",false,"#mce_temp_url#",{skip_undo:1});tinymce.each(g.dom.select("a"),function(b){if(g.dom.getAttrib(b,"href")=="#mce_temp_url#"){g.dom.setAttribs(b,{href:v.link_href.value,title:v.link_title.value,rel:v.link_rel.value,target:(v.link_target.checked==true)?"_blank":"","class":v.link_classes.value,style:v.link_style.value})}})}else{g.dom.setAttribs(p,{href:v.link_href.value,title:v.link_title.value,rel:v.link_rel.value,target:(v.link_target.checked==true)?"_blank":"","class":v.link_classes.value,style:v.link_style.value})}}if(o){a=10+parseInt(v.width.value);B=(m.align=="aligncenter")?"mceTemp mceIEcenter":"mceTemp";w=v.img_cap_text.value;w=w.replace(/\r\n|\r/g,"\n").replace(/<[a-zA-Z0-9]+( [^<>]+)?>/g,function(b){return b.replace(/[\r\n\t]+/," ")});w=w.replace(/\s*\n\s*/g,"<br />");if(n){g.dom.setAttribs(n,{"class":"wp-caption "+m.align,style:"width: "+a+"px;"});if(r){g.dom.setAttrib(r,"class",B)}if((i=g.dom.getParent(e,"dt"))&&(s=i.nextSibling)&&g.dom.hasClass(s,"wp-caption-dd")){g.dom.setHTML(s,w)}}else{if((q=v.img_classes.value.match(/wp-image-([0-9]{1,6})/))&&q[1]){u="attachment_"+q[1]}if(v.link_href.value&&(x=g.dom.getParent(e,"a"))){if(x.childNodes.length==1){l=g.dom.getOuterHTML(x)}else{l=g.dom.getOuterHTML(x);l=l.match(/<a [^>]+>/i);l=l+g.dom.getOuterHTML(e)+"</a>"}}else{l=g.dom.getOuterHTML(e)}l='<dl id="'+u+'" class="wp-caption '+m.align+'" style="width: '+a+'px"><dt class="wp-caption-dt">'+l+'</dt><dd class="wp-caption-dd">'+w+"</dd></dl>";j=g.dom.create("div",{"class":B},l);if(h){h.parentNode.insertBefore(j,h);if(h.childNodes.length==1){g.dom.remove(h)}else{if(x&&x.childNodes.length==1){g.dom.remove(x)}else{g.dom.remove(e)}}}else{if(c=g.dom.getParent(e,"TD,TH,LI")){c.appendChild(j);if(x&&x.childNodes.length==1){g.dom.remove(x)}else{g.dom.remove(e)}}}}}else{if(n&&r){if(v.link_href.value&&(z=g.dom.getParent(e,"a"))){l=g.dom.getOuterHTML(z)}else{l=g.dom.getOuterHTML(e)}h=g.dom.create("p",{},l);r.parentNode.insertBefore(h,r);g.dom.remove(r)}}if(v.img_classes.value.indexOf("aligncenter")!=-1){if(h&&(!h.style||h.style.textAlign!="center")){g.dom.setStyle(h,"textAlign","center")}}else{if(h&&h.style&&h.style.textAlign=="center"){g.dom.setStyle(h,"textAlign","")}}if(!v.link_href.value&&p){y=g.selection.getBookmark();g.dom.remove(p,1);g.selection.moveToBookmark(y)}tinyMCEPopup.execCommand("mceEndUndoLevel");g.execCommand("mceRepaint");tinyMCEPopup.close()},updateStyle:function(a){var e=tinyMCEPopup.dom,c,d=document.forms[0],b=e.create("img",{style:d.img_style.value});if(tinyMCEPopup.editor.settings.inline_styles){if(a=="align"){e.setStyle(b,"float","");e.setStyle(b,"vertical-align","");c=d.align.value;if(c){if(c=="left"||c=="right"){e.setStyle(b,"float",c)}else{b.style.verticalAlign=c}}}if(a=="border"){e.setStyle(b,"border","");c=d.border.value;if(c||c=="0"){if(c=="0"){b.style.border="0"}else{b.style.border=c+"px solid black"}}}if(a=="hspace"){e.setStyle(b,"marginLeft","");e.setStyle(b,"marginRight","");c=d.hspace.value;if(c){b.style.marginLeft=c+"px";b.style.marginRight=c+"px"}}if(a=="vspace"){e.setStyle(b,"marginTop","");e.setStyle(b,"marginBottom","");c=d.vspace.value;if(c){b.style.marginTop=c+"px";b.style.marginBottom=c+"px"}}d.img_style.value=e.serializeStyle(e.parseStyle(b.style.cssText));this.demoSetStyle()}},checkVal:function(a){if(a.value==""){if(a.id=="img_src"){a.value=this.I("img_demo").src||this.preloadImg.src}}},resetImageData:function(){var a=document.forms[0];a.width.value=a.height.value=""},updateImageData:function(){var d=document.forms[0],b=wpImage,a=d.width.value,c=d.height.value;if(!a&&c){a=d.width.value=b.width=Math.round(b.preloadImg.width/(b.preloadImg.height/c))}else{if(a&&!c){c=d.height.value=b.height=Math.round(b.preloadImg.height/(b.preloadImg.width/a))}}if(!a){d.width.value=b.width=b.preloadImg.width}if(!c){d.height.value=b.height=b.preloadImg.height}b.showSizeSet();b.demoSetSize();if(d.img_style.value){b.demoSetStyle()}},getImageData:function(){var a=wpImage,b=document.forms[0];a.preloadImg=new Image();a.preloadImg.onload=a.updateImageData;a.preloadImg.onerror=a.resetImageData;a.preloadImg.src=tinyMCEPopup.editor.documentBaseURI.toAbsolute(b.img_src.value)}};window.onload=function(){wpImage.init()};wpImage.preInit();
\ No newline at end of file
+
+var tinymce = null, tinyMCEPopup, tinyMCE, wpImage;
+
+tinyMCEPopup = {
+	init: function() {
+		var t = this, w, ti;
+
+		// Find window & API
+		w = t.getWin();
+		tinymce = w.tinymce;
+		tinyMCE = w.tinyMCE;
+		t.editor = tinymce.EditorManager.activeEditor;
+		t.params = t.editor.windowManager.params;
+		t.features = t.editor.windowManager.features;
+
+		// Setup local DOM
+		t.dom = t.editor.windowManager.createInstance('tinymce.dom.DOMUtils', document);
+		t.editor.windowManager.onOpen.dispatch(t.editor.windowManager, window);
+	},
+
+	getWin : function() {
+		return (!window.frameElement && window.dialogArguments) || opener || parent || top;
+	},
+
+	getParam : function(n, dv) {
+		return this.editor.getParam(n, dv);
+	},
+
+	close : function() {
+		var t = this;
+
+		// To avoid domain relaxing issue in Opera
+		function close() {
+			t.editor.windowManager.close(window);
+			tinymce = tinyMCE = t.editor = t.params = t.dom = t.dom.doc = null; // Cleanup
+		};
+
+		if (tinymce.isOpera)
+			t.getWin().setTimeout(close, 0);
+		else
+			close();
+	},
+
+	execCommand : function(cmd, ui, val, a) {
+		a = a || {};
+		a.skip_focus = 1;
+
+		this.restoreSelection();
+		return this.editor.execCommand(cmd, ui, val, a);
+	},
+
+	storeSelection : function() {
+		this.editor.windowManager.bookmark = tinyMCEPopup.editor.selection.getBookmark(1);
+	},
+
+	restoreSelection : function() {
+		var t = tinyMCEPopup;
+
+		if ( tinymce.isIE )
+			t.editor.selection.moveToBookmark(t.editor.windowManager.bookmark);
+	}
+}
+tinyMCEPopup.init();
+
+wpImage = {
+	preInit : function() {
+		// import colors stylesheet from parent
+		var ed = tinyMCEPopup.editor, win = tinyMCEPopup.getWin(), styles = win.document.styleSheets, url, i;
+
+		for ( i = 0; i < styles.length; i++ ) {
+			url = styles.item(i).href;
+			if ( url && url.indexOf('colors') != -1 ) {
+				document.getElementsByTagName('head')[0].appendChild( ed.dom.create('link', {rel:'stylesheet', href: url}) );
+				break;
+			}
+		}
+	},
+
+	I : function(e) {
+		return document.getElementById(e);
+	},
+
+	current : '',
+	link : '',
+	link_rel : '',
+	target_value : '',
+	current_size_sel : 's100',
+	width : '',
+	height : '',
+	align : '',
+	img_alt : '',
+
+	setTabs : function(tab) {
+		var t = this;
+
+		if ( 'current' == tab.className ) return false;
+		t.I('div_advanced').style.display = ( 'tab_advanced' == tab.id ) ? 'block' : 'none';
+		t.I('div_basic').style.display = ( 'tab_basic' == tab.id ) ? 'block' : 'none';
+		t.I('tab_basic').className = t.I('tab_advanced').className = '';
+		tab.className = 'current';
+		return false;
+	},
+
+	img_seturl : function(u) {
+		var t = this, rel = t.I('link_rel').value;
+
+		if ( 'current' == u ) {
+			t.I('link_href').value = t.current;
+			t.I('link_rel').value = t.link_rel;
+		} else {
+			t.I('link_href').value = t.link;
+			if ( rel ) {
+				rel = rel.replace( /attachment|wp-att-[0-9]+/gi, '' );
+				t.I('link_rel').value = tinymce.trim(rel);
+			}
+		}
+	},
+
+	imgAlignCls : function(v) {
+		var t = this, cls = t.I('img_classes').value;
+
+		t.I('img_demo').className = t.align = v;
+
+		cls = cls.replace( /align[^ "']+/gi, '' );
+		cls += (' ' + v);
+		cls = cls.replace( /\s+/g, ' ' ).replace( /^\s/, '' );
+
+		if ( 'aligncenter' == v ) {
+			t.I('hspace').value = '';
+			t.updateStyle('hspace');
+		}
+
+		t.I('img_classes').value = cls;
+	},
+
+	showSize : function(el) {
+		var t = this, demo = t.I('img_demo'), w = t.width, h = t.height, id = el.id || 's100', size;
+
+		size = parseInt(id.substring(1)) / 200;
+		demo.width = Math.round(w * size);
+		demo.height = Math.round(h * size);
+
+		t.showSizeClear();
+		el.style.borderColor = '#A3A3A3';
+		el.style.backgroundColor = '#E5E5E5';
+	},
+
+	showSizeSet : function() {
+		var t = this, s130, s120, s110;
+
+		if ( (t.width * 1.3) > parseInt(t.preloadImg.width) ) {
+			s130 = t.I('s130'), s120 = t.I('s120'), s110 = t.I('s110');
+
+			s130.onclick = s120.onclick = s110.onclick = null;
+			s130.onmouseover = s120.onmouseover = s110.onmouseover = null;
+			s130.style.color = s120.style.color = s110.style.color = '#aaa';
+		}
+	},
+
+	showSizeRem : function() {
+		var t = this, demo = t.I('img_demo'), f = document.forms[0];
+
+		demo.width = Math.round(f.width.value * 0.5);
+		demo.height = Math.round(f.height.value * 0.5);
+		t.showSizeClear();
+		t.I(t.current_size_sel).style.borderColor = '#A3A3A3';
+		t.I(t.current_size_sel).style.backgroundColor = '#E5E5E5';
+
+		return false;
+	},
+
+	showSizeClear : function() {
+		var divs = this.I('img_size').getElementsByTagName('div'), i;
+
+		for ( i = 0; i < divs.length; i++ ) {
+			divs[i].style.borderColor = '#f1f1f1';
+			divs[i].style.backgroundColor = '#f1f1f1';
+		}
+	},
+
+	imgEditSize : function(el) {
+		var t = this, f = document.forms[0], W, H, w, h, id;
+
+		if ( ! t.preloadImg || ! t.preloadImg.width || ! t.preloadImg.height )
+			return;
+		
+		W = parseInt(t.preloadImg.width), H = parseInt(t.preloadImg.height), w = t.width || W, h = t.height || H, id = el.id || 's100';
+
+		size = parseInt(id.substring(1)) / 100;
+
+		w = Math.round(w * size);
+		h = Math.round(h * size);
+
+		f.width.value = Math.min(W, w);
+		f.height.value = Math.min(H, h);
+
+		t.current_size_sel = id;
+		t.demoSetSize();
+	},
+
+	demoSetSize : function(img) {
+		var demo = this.I('img_demo'), f = document.forms[0];
+
+		demo.width = f.width.value ? Math.round(f.width.value * 0.5) : '';
+		demo.height = f.height.value ? Math.round(f.height.value * 0.5) : '';
+	},
+
+	demoSetStyle : function() {
+		var f = document.forms[0], demo = this.I('img_demo'), dom = tinyMCEPopup.editor.dom;
+
+		if (demo) {
+			dom.setAttrib(demo, 'style', f.img_style.value);
+			dom.setStyle(demo, 'width', '');
+			dom.setStyle(demo, 'height', '');
+		}
+	},
+
+	origSize : function() {
+		var t = this, f = document.forms[0], el = t.I('s100');
+
+		f.width.value = t.width = t.preloadImg.width;
+		f.height.value = t.height = t.preloadImg.height;
+		t.showSizeSet();
+		t.demoSetSize();
+		t.showSize(el);
+	},
+
+	init : function() {
+		var ed = tinyMCEPopup.editor, h;
+
+		h = document.body.innerHTML;
+		document.body.innerHTML = ed.translate(h);
+		window.setTimeout( function(){wpImage.setup();}, 500 );
+	},
+
+	setup : function() {
+		var t = this, c, el, link, fname, f = document.forms[0], ed = tinyMCEPopup.editor,
+			d = t.I('img_demo'), dom = tinyMCEPopup.dom, DL, DD, caption = '', dlc, pa;
+
+		document.dir = tinyMCEPopup.editor.getParam('directionality','');
+
+		if ( tinyMCEPopup.editor.getParam('wpeditimage_disable_captions', false) )
+			t.I('cap_field').style.display = 'none';
+
+		tinyMCEPopup.restoreSelection();
+		el = ed.selection.getNode();
+		if (el.nodeName != 'IMG')
+			return;
+
+		f.img_src.value = d.src = link = ed.dom.getAttrib(el, 'src');
+		ed.dom.setStyle(el, 'float', '');
+		t.getImageData();
+		c = ed.dom.getAttrib(el, 'class');
+
+		if ( DL = dom.getParent(el, 'dl') ) {
+			dlc = ed.dom.getAttrib(DL, 'class');
+			dlc = dlc.match(/align[^ "']+/i);
+			if ( dlc && ! dom.hasClass(el, dlc) ) {
+				c += ' '+dlc;
+				tinymce.trim(c);
+			}
+
+			DD = ed.dom.select('dd.wp-caption-dd', DL);
+			if ( DD && DD[0] )
+				caption = ed.serializer.serialize(DD[0]).replace(/^<p>/, '').replace(/<\/p>$/, '');
+		}
+
+		f.img_cap_text.value = caption;
+		f.img_title.value = ed.dom.getAttrib(el, 'title');
+		f.img_alt.value = ed.dom.getAttrib(el, 'alt');
+		f.border.value = ed.dom.getAttrib(el, 'border');
+		f.vspace.value = ed.dom.getAttrib(el, 'vspace');
+		f.hspace.value = ed.dom.getAttrib(el, 'hspace');
+		f.align.value = ed.dom.getAttrib(el, 'align');
+		f.width.value = t.width = ed.dom.getAttrib(el, 'width');
+		f.height.value = t.height = ed.dom.getAttrib(el, 'height');
+		f.img_classes.value = c;
+		f.img_style.value = ed.dom.getAttrib(el, 'style');
+
+		// Move attribs to styles
+		if ( dom.getAttrib(el, 'hspace') )
+			t.updateStyle('hspace');
+
+		if ( dom.getAttrib(el, 'border') )
+			t.updateStyle('border');
+
+		if ( dom.getAttrib(el, 'vspace') )
+			t.updateStyle('vspace');
+
+		if ( pa = ed.dom.getParent(el, 'A') ) {
+			f.link_href.value = t.current = ed.dom.getAttrib(pa, 'href');
+			f.link_title.value = ed.dom.getAttrib(pa, 'title');
+			f.link_rel.value = t.link_rel = ed.dom.getAttrib(pa, 'rel');
+			f.link_style.value = ed.dom.getAttrib(pa, 'style');
+			t.target_value = ed.dom.getAttrib(pa, 'target');
+			f.link_classes.value = ed.dom.getAttrib(pa, 'class');
+		}
+
+		f.link_target.checked = ( t.target_value && t.target_value == '_blank' ) ? 'checked' : '';
+
+		fname = link.substring( link.lastIndexOf('/') );
+		fname = fname.replace(/-[0-9]{2,4}x[0-9]{2,4}/, '' );
+		t.link = link.substring( 0, link.lastIndexOf('/') ) + fname;
+
+		if ( c.indexOf('alignleft') != -1 ) {
+			t.I('alignleft').checked = "checked";
+			d.className = t.align = "alignleft";
+		} else if ( c.indexOf('aligncenter') != -1 ) {
+			t.I('aligncenter').checked = "checked";
+			d.className = t.align = "aligncenter";
+		} else if ( c.indexOf('alignright') != -1 ) {
+			t.I('alignright').checked = "checked";
+			d.className = t.align = "alignright";
+		} else if ( c.indexOf('alignnone') != -1 ) {
+			t.I('alignnone').checked = "checked";
+			d.className = t.align = "alignnone";
+		}
+
+		if ( t.width && t.preloadImg.width )
+			t.showSizeSet();
+		
+		document.body.style.display = '';
+	},
+
+	remove : function() {
+		var ed = tinyMCEPopup.editor, p, el;
+
+		tinyMCEPopup.restoreSelection();
+		el = ed.selection.getNode();
+		if (el.nodeName != 'IMG') return;
+
+		if ( (p = ed.dom.getParent(el, 'div')) && ed.dom.hasClass(p, 'mceTemp') )
+			ed.dom.remove(p);
+		else if ( (p = ed.dom.getParent(el, 'A')) && p.childNodes.length == 1 )
+			ed.dom.remove(p);
+		else ed.dom.remove(el);
+
+		ed.execCommand('mceRepaint');
+		tinyMCEPopup.close();
+		return;
+	},
+
+	update : function() {
+		var t = this, f = document.forms[0], ed = tinyMCEPopup.editor, el, b, fixSafari = null,
+			DL, P, A, DIV, do_caption = null, img_class = f.img_classes.value, html,
+			id, cap_id = '', cap, DT, DD, cap_width, div_cls, lnk = '', pa, aa, caption;
+
+		tinyMCEPopup.restoreSelection();
+		el = ed.selection.getNode();
+
+		if (el.nodeName != 'IMG') return;
+		if (f.img_src.value === '') {
+			t.remove();
+			return;
+		}
+
+		if ( f.img_cap_text.value != '' && f.width.value != '' ) {
+			do_caption = 1;
+			img_class = img_class.replace( /align[^ "']+\s?/gi, '' );
+		}
+
+		A = ed.dom.getParent(el, 'a');
+		P = ed.dom.getParent(el, 'p');
+		DL = ed.dom.getParent(el, 'dl');
+		DIV = ed.dom.getParent(el, 'div');
+
+		tinyMCEPopup.execCommand("mceBeginUndoLevel");
+
+		if ( f.width.value != el.width || f.height.value != el.height )
+			img_class = img_class.replace(/size-[^ "']+/, '');
+
+		ed.dom.setAttribs(el, {
+			src : f.img_src.value,
+			title : f.img_title.value,
+			alt : f.img_alt.value,
+			width : f.width.value,
+			height : f.height.value,
+			style : f.img_style.value,
+			'class' : img_class
+		});
+
+		if ( f.link_href.value ) {
+			// Create new anchor elements
+			if ( A == null ) {
+				if ( ! f.link_href.value.match(/https?:\/\//i) )
+					f.link_href.value = tinyMCEPopup.editor.documentBaseURI.toAbsolute(f.link_href.value);
+
+				ed.getDoc().execCommand("unlink", false, null);
+				tinyMCEPopup.execCommand("mceInsertLink", false, "#mce_temp_url#", {skip_undo : 1});
+
+				tinymce.each(ed.dom.select("a"), function(n) {
+					if ( ed.dom.getAttrib(n, 'href') == '#mce_temp_url#' ) {
+
+						ed.dom.setAttribs(n, {
+							href : f.link_href.value,
+							title : f.link_title.value,
+							rel : f.link_rel.value,
+							target : (f.link_target.checked == true) ? '_blank' : '',
+							'class' : f.link_classes.value,
+							style : f.link_style.value
+						});
+					}
+				});
+			} else {
+				ed.dom.setAttribs(A, {
+					href : f.link_href.value,
+					title : f.link_title.value,
+					rel : f.link_rel.value,
+					target : (f.link_target.checked == true) ? '_blank' : '',
+					'class' : f.link_classes.value,
+					style : f.link_style.value
+				});
+			}
+		}
+
+		if ( do_caption ) {
+			cap_width = 10 + parseInt(f.width.value);
+			div_cls = (t.align == 'aligncenter') ? 'mceTemp mceIEcenter' : 'mceTemp';
+			caption = f.img_cap_text.value;
+
+			caption = caption.replace(/\r\n|\r/g, '\n').replace(/<[a-zA-Z0-9]+( [^<>]+)?>/g, function(a){
+				return a.replace(/[\r\n\t]+/, ' ');
+			});
+
+			caption = caption.replace(/\s*\n\s*/g, '<br />');
+
+			if ( DL ) {
+				ed.dom.setAttribs(DL, {
+					'class' : 'wp-caption '+t.align,
+					style : 'width: '+cap_width+'px;'
+				});
+
+				if ( DIV )
+					ed.dom.setAttrib(DIV, 'class', div_cls);
+
+				if ( (DT = ed.dom.getParent(el, 'dt')) && (DD = DT.nextSibling) && ed.dom.hasClass(DD, 'wp-caption-dd') )
+					ed.dom.setHTML(DD, caption);
+
+			} else {
+				if ( (id = f.img_classes.value.match( /wp-image-([0-9]{1,6})/ )) && id[1] )
+					cap_id = 'attachment_'+id[1];
+
+				if ( f.link_href.value && (lnk = ed.dom.getParent(el, 'a')) ) {
+					if ( lnk.childNodes.length == 1 ) {
+						html = ed.dom.getOuterHTML(lnk);
+					} else {
+						html = ed.dom.getOuterHTML(lnk);
+						html = html.match(/<a [^>]+>/i);
+						html = html+ed.dom.getOuterHTML(el)+'</a>';
+					}
+				} else {
+					html = ed.dom.getOuterHTML(el);
+				}
+
+				html = '<dl id="'+cap_id+'" class="wp-caption '+t.align+'" style="width: '+cap_width+
+				'px"><dt class="wp-caption-dt">'+html+'</dt><dd class="wp-caption-dd">'+caption+'</dd></dl>';
+
+				cap = ed.dom.create('div', {'class': div_cls}, html);
+
+				if ( P ) {
+					P.parentNode.insertBefore(cap, P);
+					if ( P.childNodes.length == 1 )
+						ed.dom.remove(P);
+					else if ( lnk && lnk.childNodes.length == 1 )
+						ed.dom.remove(lnk);
+					else ed.dom.remove(el);
+				} else if ( pa = ed.dom.getParent(el, 'TD,TH,LI') ) {
+					pa.appendChild(cap);
+					if ( lnk && lnk.childNodes.length == 1 )
+						ed.dom.remove(lnk);
+					else ed.dom.remove(el);
+				}
+			}
+
+		} else {
+			if ( DL && DIV ) {
+				if ( f.link_href.value && (aa = ed.dom.getParent(el, 'a')) ) html = ed.dom.getOuterHTML(aa);
+				else html = ed.dom.getOuterHTML(el);
+
+				P = ed.dom.create('p', {}, html);
+				DIV.parentNode.insertBefore(P, DIV);
+				ed.dom.remove(DIV);
+			}
+		}
+
+		if ( f.img_classes.value.indexOf('aligncenter') != -1 ) {
+			if ( P && ( ! P.style || P.style.textAlign != 'center' ) )
+				ed.dom.setStyle(P, 'textAlign', 'center');
+		} else {
+			if ( P && P.style && P.style.textAlign == 'center' )
+				ed.dom.setStyle(P, 'textAlign', '');
+		}
+
+		if ( ! f.link_href.value && A ) {
+			b = ed.selection.getBookmark();
+			ed.dom.remove(A, 1);
+			ed.selection.moveToBookmark(b);
+		}
+
+		tinyMCEPopup.execCommand("mceEndUndoLevel");
+		ed.execCommand('mceRepaint');
+		tinyMCEPopup.close();
+	},
+
+	updateStyle : function(ty) {
+		var dom = tinyMCEPopup.dom, v, f = document.forms[0], img = dom.create('img', {style : f.img_style.value});
+
+		if (tinyMCEPopup.editor.settings.inline_styles) {
+			// Handle align
+			if (ty == 'align') {
+				dom.setStyle(img, 'float', '');
+				dom.setStyle(img, 'vertical-align', '');
+
+				v = f.align.value;
+				if (v) {
+					if (v == 'left' || v == 'right')
+						dom.setStyle(img, 'float', v);
+					else
+						img.style.verticalAlign = v;
+				}
+			}
+
+			// Handle border
+			if (ty == 'border') {
+				dom.setStyle(img, 'border', '');
+
+				v = f.border.value;
+				if (v || v == '0') {
+					if (v == '0')
+						img.style.border = '0';
+					else
+						img.style.border = v + 'px solid black';
+				}
+			}
+
+			// Handle hspace
+			if (ty == 'hspace') {
+				dom.setStyle(img, 'marginLeft', '');
+				dom.setStyle(img, 'marginRight', '');
+
+				v = f.hspace.value;
+				if (v) {
+					img.style.marginLeft = v + 'px';
+					img.style.marginRight = v + 'px';
+				}
+			}
+
+			// Handle vspace
+			if (ty == 'vspace') {
+				dom.setStyle(img, 'marginTop', '');
+				dom.setStyle(img, 'marginBottom', '');
+
+				v = f.vspace.value;
+				if (v) {
+					img.style.marginTop = v + 'px';
+					img.style.marginBottom = v + 'px';
+				}
+			}
+
+			// Merge
+			f.img_style.value = dom.serializeStyle(dom.parseStyle(img.style.cssText));
+			this.demoSetStyle();
+		}
+	},
+
+	checkVal : function(f) {
+
+		if ( f.value == '' ) {
+	//		if ( f.id == 'width' ) f.value = this.width || this.preloadImg.width;
+	//		if ( f.id == 'height' ) f.value = this.height || this.preloadImg.height;
+			if ( f.id == 'img_src' ) f.value = this.I('img_demo').src || this.preloadImg.src;
+		}
+	},
+
+	resetImageData : function() {
+		var f = document.forms[0];
+
+		f.width.value = f.height.value = '';
+	},
+
+	updateImageData : function() {
+		var f = document.forms[0], t = wpImage, w = f.width.value, h = f.height.value;
+
+		if ( !w && h )
+			w = f.width.value = t.width = Math.round( t.preloadImg.width / (t.preloadImg.height / h) );
+		else if ( w && !h )
+			h = f.height.value = t.height = Math.round( t.preloadImg.height / (t.preloadImg.width / w) );
+
+		if ( !w )
+			f.width.value = t.width = t.preloadImg.width;
+
+		if ( !h )
+			f.height.value = t.height = t.preloadImg.height;
+
+		t.showSizeSet();
+		t.demoSetSize();
+		if ( f.img_style.value )
+			t.demoSetStyle();
+	},
+
+	getImageData : function() {
+		var t = wpImage, f = document.forms[0];
+
+		t.preloadImg = new Image();
+		t.preloadImg.onload = t.updateImageData;
+		t.preloadImg.onerror = t.resetImageData;
+		t.preloadImg.src = tinyMCEPopup.editor.documentBaseURI.toAbsolute(f.img_src.value);
+	}
+};
+
+window.onload = function(){wpImage.init();}
+wpImage.preInit();
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-includes/js/tinymce/plugins/wpeditimage/js/editimage.min.js	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,1 @@
+var tinymce=null,tinyMCEPopup,tinyMCE,wpImage;tinyMCEPopup={init:function(){var b=this,a,c;a=b.getWin();tinymce=a.tinymce;tinyMCE=a.tinyMCE;b.editor=tinymce.EditorManager.activeEditor;b.params=b.editor.windowManager.params;b.features=b.editor.windowManager.features;b.dom=b.editor.windowManager.createInstance("tinymce.dom.DOMUtils",document);b.editor.windowManager.onOpen.dispatch(b.editor.windowManager,window)},getWin:function(){return(!window.frameElement&&window.dialogArguments)||opener||parent||top},getParam:function(b,a){return this.editor.getParam(b,a)},close:function(){var a=this;function b(){a.editor.windowManager.close(window);tinymce=tinyMCE=a.editor=a.params=a.dom=a.dom.doc=null}if(tinymce.isOpera){a.getWin().setTimeout(b,0)}else{b()}},execCommand:function(d,c,e,b){b=b||{};b.skip_focus=1;this.restoreSelection();return this.editor.execCommand(d,c,e,b)},storeSelection:function(){this.editor.windowManager.bookmark=tinyMCEPopup.editor.selection.getBookmark(1)},restoreSelection:function(){var a=tinyMCEPopup;if(tinymce.isIE){a.editor.selection.moveToBookmark(a.editor.windowManager.bookmark)}}};tinyMCEPopup.init();wpImage={preInit:function(){var a=tinyMCEPopup.editor,e=tinyMCEPopup.getWin(),d=e.document.styleSheets,b,c;for(c=0;c<d.length;c++){b=d.item(c).href;if(b&&b.indexOf("colors")!=-1){document.getElementsByTagName("head")[0].appendChild(a.dom.create("link",{rel:"stylesheet",href:b}));break}}},I:function(a){return document.getElementById(a)},current:"",link:"",link_rel:"",target_value:"",current_size_sel:"s100",width:"",height:"",align:"",img_alt:"",setTabs:function(b){var a=this;if("current"==b.className){return false}a.I("div_advanced").style.display=("tab_advanced"==b.id)?"block":"none";a.I("div_basic").style.display=("tab_basic"==b.id)?"block":"none";a.I("tab_basic").className=a.I("tab_advanced").className="";b.className="current";return false},img_seturl:function(b){var c=this,a=c.I("link_rel").value;if("current"==b){c.I("link_href").value=c.current;c.I("link_rel").value=c.link_rel}else{c.I("link_href").value=c.link;if(a){a=a.replace(/attachment|wp-att-[0-9]+/gi,"");c.I("link_rel").value=tinymce.trim(a)}}},imgAlignCls:function(b){var c=this,a=c.I("img_classes").value;c.I("img_demo").className=c.align=b;a=a.replace(/align[^ "']+/gi,"");a+=(" "+b);a=a.replace(/\s+/g," ").replace(/^\s/,"");if("aligncenter"==b){c.I("hspace").value="";c.updateStyle("hspace")}c.I("img_classes").value=a},showSize:function(e){var c=this,f=c.I("img_demo"),a=c.width,d=c.height,g=e.id||"s100",b;b=parseInt(g.substring(1))/200;f.width=Math.round(a*b);f.height=Math.round(d*b);c.showSizeClear();e.style.borderColor="#A3A3A3";e.style.backgroundColor="#E5E5E5"},showSizeSet:function(){var b=this,d,c,a;if((b.width*1.3)>parseInt(b.preloadImg.width)){d=b.I("s130"),c=b.I("s120"),a=b.I("s110");d.onclick=c.onclick=a.onclick=null;d.onmouseover=c.onmouseover=a.onmouseover=null;d.style.color=c.style.color=a.style.color="#aaa"}},showSizeRem:function(){var a=this,c=a.I("img_demo"),b=document.forms[0];c.width=Math.round(b.width.value*0.5);c.height=Math.round(b.height.value*0.5);a.showSizeClear();a.I(a.current_size_sel).style.borderColor="#A3A3A3";a.I(a.current_size_sel).style.backgroundColor="#E5E5E5";return false},showSizeClear:function(){var b=this.I("img_size").getElementsByTagName("div"),a;for(a=0;a<b.length;a++){b[a].style.borderColor="#f1f1f1";b[a].style.backgroundColor="#f1f1f1"}},imgEditSize:function(g){var d=this,i=document.forms[0],a,c,b,e,j;if(!d.preloadImg||!d.preloadImg.width||!d.preloadImg.height){return}a=parseInt(d.preloadImg.width),c=parseInt(d.preloadImg.height),b=d.width||a,e=d.height||c,j=g.id||"s100";size=parseInt(j.substring(1))/100;b=Math.round(b*size);e=Math.round(e*size);i.width.value=Math.min(a,b);i.height.value=Math.min(c,e);d.current_size_sel=j;d.demoSetSize()},demoSetSize:function(a){var c=this.I("img_demo"),b=document.forms[0];c.width=b.width.value?Math.round(b.width.value*0.5):"";c.height=b.height.value?Math.round(b.height.value*0.5):""},demoSetStyle:function(){var b=document.forms[0],a=this.I("img_demo"),c=tinyMCEPopup.editor.dom;if(a){c.setAttrib(a,"style",b.img_style.value);c.setStyle(a,"width","");c.setStyle(a,"height","")}},origSize:function(){var a=this,c=document.forms[0],b=a.I("s100");c.width.value=a.width=a.preloadImg.width;c.height.value=a.height=a.preloadImg.height;a.showSizeSet();a.demoSetSize();a.showSize(b)},init:function(){var a=tinyMCEPopup.editor,b;b=document.body.innerHTML;document.body.innerHTML=a.translate(b);window.setTimeout(function(){wpImage.setup()},500)},setup:function(){var q=this,l,b,m,e,j=document.forms[0],i=tinyMCEPopup.editor,k=q.I("img_demo"),h=tinyMCEPopup.dom,a,g,p="",o,n;document.dir=tinyMCEPopup.editor.getParam("directionality","");if(tinyMCEPopup.editor.getParam("wpeditimage_disable_captions",false)){q.I("cap_field").style.display="none"}tinyMCEPopup.restoreSelection();b=i.selection.getNode();if(b.nodeName!="IMG"){return}j.img_src.value=k.src=m=i.dom.getAttrib(b,"src");i.dom.setStyle(b,"float","");q.getImageData();l=i.dom.getAttrib(b,"class");if(a=h.getParent(b,"dl")){o=i.dom.getAttrib(a,"class");o=o.match(/align[^ "']+/i);if(o&&!h.hasClass(b,o)){l+=" "+o;tinymce.trim(l)}g=i.dom.select("dd.wp-caption-dd",a);if(g&&g[0]){p=i.serializer.serialize(g[0]).replace(/^<p>/,"").replace(/<\/p>$/,"")}}j.img_cap_text.value=p;j.img_title.value=i.dom.getAttrib(b,"title");j.img_alt.value=i.dom.getAttrib(b,"alt");j.border.value=i.dom.getAttrib(b,"border");j.vspace.value=i.dom.getAttrib(b,"vspace");j.hspace.value=i.dom.getAttrib(b,"hspace");j.align.value=i.dom.getAttrib(b,"align");j.width.value=q.width=i.dom.getAttrib(b,"width");j.height.value=q.height=i.dom.getAttrib(b,"height");j.img_classes.value=l;j.img_style.value=i.dom.getAttrib(b,"style");if(h.getAttrib(b,"hspace")){q.updateStyle("hspace")}if(h.getAttrib(b,"border")){q.updateStyle("border")}if(h.getAttrib(b,"vspace")){q.updateStyle("vspace")}if(n=i.dom.getParent(b,"A")){j.link_href.value=q.current=i.dom.getAttrib(n,"href");j.link_title.value=i.dom.getAttrib(n,"title");j.link_rel.value=q.link_rel=i.dom.getAttrib(n,"rel");j.link_style.value=i.dom.getAttrib(n,"style");q.target_value=i.dom.getAttrib(n,"target");j.link_classes.value=i.dom.getAttrib(n,"class")}j.link_target.checked=(q.target_value&&q.target_value=="_blank")?"checked":"";e=m.substring(m.lastIndexOf("/"));e=e.replace(/-[0-9]{2,4}x[0-9]{2,4}/,"");q.link=m.substring(0,m.lastIndexOf("/"))+e;if(l.indexOf("alignleft")!=-1){q.I("alignleft").checked="checked";k.className=q.align="alignleft"}else{if(l.indexOf("aligncenter")!=-1){q.I("aligncenter").checked="checked";k.className=q.align="aligncenter"}else{if(l.indexOf("alignright")!=-1){q.I("alignright").checked="checked";k.className=q.align="alignright"}else{if(l.indexOf("alignnone")!=-1){q.I("alignnone").checked="checked";k.className=q.align="alignnone"}}}}if(q.width&&q.preloadImg.width){q.showSizeSet()}document.body.style.display=""},remove:function(){var a=tinyMCEPopup.editor,c,b;tinyMCEPopup.restoreSelection();b=a.selection.getNode();if(b.nodeName!="IMG"){return}if((c=a.dom.getParent(b,"div"))&&a.dom.hasClass(c,"mceTemp")){a.dom.remove(c)}else{if((c=a.dom.getParent(b,"A"))&&c.childNodes.length==1){a.dom.remove(c)}else{a.dom.remove(b)}}a.execCommand("mceRepaint");tinyMCEPopup.close();return},update:function(){var m=this,v=document.forms[0],g=tinyMCEPopup.editor,e,y,d=null,n,h,p,r,o=null,k=v.img_classes.value,l,q,u="",j,i,s,a,B,x="",c,z,w;tinyMCEPopup.restoreSelection();e=g.selection.getNode();if(e.nodeName!="IMG"){return}if(v.img_src.value===""){m.remove();return}if(v.img_cap_text.value!=""&&v.width.value!=""){o=1;k=k.replace(/align[^ "']+\s?/gi,"")}p=g.dom.getParent(e,"a");h=g.dom.getParent(e,"p");n=g.dom.getParent(e,"dl");r=g.dom.getParent(e,"div");tinyMCEPopup.execCommand("mceBeginUndoLevel");if(v.width.value!=e.width||v.height.value!=e.height){k=k.replace(/size-[^ "']+/,"")}g.dom.setAttribs(e,{src:v.img_src.value,title:v.img_title.value,alt:v.img_alt.value,width:v.width.value,height:v.height.value,style:v.img_style.value,"class":k});if(v.link_href.value){if(p==null){if(!v.link_href.value.match(/https?:\/\//i)){v.link_href.value=tinyMCEPopup.editor.documentBaseURI.toAbsolute(v.link_href.value)}g.getDoc().execCommand("unlink",false,null);tinyMCEPopup.execCommand("mceInsertLink",false,"#mce_temp_url#",{skip_undo:1});tinymce.each(g.dom.select("a"),function(b){if(g.dom.getAttrib(b,"href")=="#mce_temp_url#"){g.dom.setAttribs(b,{href:v.link_href.value,title:v.link_title.value,rel:v.link_rel.value,target:(v.link_target.checked==true)?"_blank":"","class":v.link_classes.value,style:v.link_style.value})}})}else{g.dom.setAttribs(p,{href:v.link_href.value,title:v.link_title.value,rel:v.link_rel.value,target:(v.link_target.checked==true)?"_blank":"","class":v.link_classes.value,style:v.link_style.value})}}if(o){a=10+parseInt(v.width.value);B=(m.align=="aligncenter")?"mceTemp mceIEcenter":"mceTemp";w=v.img_cap_text.value;w=w.replace(/\r\n|\r/g,"\n").replace(/<[a-zA-Z0-9]+( [^<>]+)?>/g,function(b){return b.replace(/[\r\n\t]+/," ")});w=w.replace(/\s*\n\s*/g,"<br />");if(n){g.dom.setAttribs(n,{"class":"wp-caption "+m.align,style:"width: "+a+"px;"});if(r){g.dom.setAttrib(r,"class",B)}if((i=g.dom.getParent(e,"dt"))&&(s=i.nextSibling)&&g.dom.hasClass(s,"wp-caption-dd")){g.dom.setHTML(s,w)}}else{if((q=v.img_classes.value.match(/wp-image-([0-9]{1,6})/))&&q[1]){u="attachment_"+q[1]}if(v.link_href.value&&(x=g.dom.getParent(e,"a"))){if(x.childNodes.length==1){l=g.dom.getOuterHTML(x)}else{l=g.dom.getOuterHTML(x);l=l.match(/<a [^>]+>/i);l=l+g.dom.getOuterHTML(e)+"</a>"}}else{l=g.dom.getOuterHTML(e)}l='<dl id="'+u+'" class="wp-caption '+m.align+'" style="width: '+a+'px"><dt class="wp-caption-dt">'+l+'</dt><dd class="wp-caption-dd">'+w+"</dd></dl>";j=g.dom.create("div",{"class":B},l);if(h){h.parentNode.insertBefore(j,h);if(h.childNodes.length==1){g.dom.remove(h)}else{if(x&&x.childNodes.length==1){g.dom.remove(x)}else{g.dom.remove(e)}}}else{if(c=g.dom.getParent(e,"TD,TH,LI")){c.appendChild(j);if(x&&x.childNodes.length==1){g.dom.remove(x)}else{g.dom.remove(e)}}}}}else{if(n&&r){if(v.link_href.value&&(z=g.dom.getParent(e,"a"))){l=g.dom.getOuterHTML(z)}else{l=g.dom.getOuterHTML(e)}h=g.dom.create("p",{},l);r.parentNode.insertBefore(h,r);g.dom.remove(r)}}if(v.img_classes.value.indexOf("aligncenter")!=-1){if(h&&(!h.style||h.style.textAlign!="center")){g.dom.setStyle(h,"textAlign","center")}}else{if(h&&h.style&&h.style.textAlign=="center"){g.dom.setStyle(h,"textAlign","")}}if(!v.link_href.value&&p){y=g.selection.getBookmark();g.dom.remove(p,1);g.selection.moveToBookmark(y)}tinyMCEPopup.execCommand("mceEndUndoLevel");g.execCommand("mceRepaint");tinyMCEPopup.close()},updateStyle:function(a){var e=tinyMCEPopup.dom,c,d=document.forms[0],b=e.create("img",{style:d.img_style.value});if(tinyMCEPopup.editor.settings.inline_styles){if(a=="align"){e.setStyle(b,"float","");e.setStyle(b,"vertical-align","");c=d.align.value;if(c){if(c=="left"||c=="right"){e.setStyle(b,"float",c)}else{b.style.verticalAlign=c}}}if(a=="border"){e.setStyle(b,"border","");c=d.border.value;if(c||c=="0"){if(c=="0"){b.style.border="0"}else{b.style.border=c+"px solid black"}}}if(a=="hspace"){e.setStyle(b,"marginLeft","");e.setStyle(b,"marginRight","");c=d.hspace.value;if(c){b.style.marginLeft=c+"px";b.style.marginRight=c+"px"}}if(a=="vspace"){e.setStyle(b,"marginTop","");e.setStyle(b,"marginBottom","");c=d.vspace.value;if(c){b.style.marginTop=c+"px";b.style.marginBottom=c+"px"}}d.img_style.value=e.serializeStyle(e.parseStyle(b.style.cssText));this.demoSetStyle()}},checkVal:function(a){if(a.value==""){if(a.id=="img_src"){a.value=this.I("img_demo").src||this.preloadImg.src}}},resetImageData:function(){var a=document.forms[0];a.width.value=a.height.value=""},updateImageData:function(){var d=document.forms[0],b=wpImage,a=d.width.value,c=d.height.value;if(!a&&c){a=d.width.value=b.width=Math.round(b.preloadImg.width/(b.preloadImg.height/c))}else{if(a&&!c){c=d.height.value=b.height=Math.round(b.preloadImg.height/(b.preloadImg.width/a))}}if(!a){d.width.value=b.width=b.preloadImg.width}if(!c){d.height.value=b.height=b.preloadImg.height}b.showSizeSet();b.demoSetSize();if(d.img_style.value){b.demoSetStyle()}},getImageData:function(){var a=wpImage,b=document.forms[0];a.preloadImg=new Image();a.preloadImg.onload=a.updateImageData;a.preloadImg.onerror=a.resetImageData;a.preloadImg.src=tinyMCEPopup.editor.documentBaseURI.toAbsolute(b.img_src.value)}};window.onload=function(){wpImage.init()};wpImage.preInit();
\ No newline at end of file
--- a/web/wp-includes/js/tinymce/plugins/wpfullscreen/css/wp-fullscreen.css	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/js/tinymce/plugins/wpfullscreen/css/wp-fullscreen.css	Wed Dec 19 17:46:52 2012 -0800
@@ -1,13 +1,13 @@
-/*
-Distraction Free Writing mode TinyMCE Styles
-*/
-
-html,
-body {
-	background: transparent;
-	width: auto !important;
-	max-width: none !important;
-	margin: 0 !important;
-	padding: 0 !important;
-	min-height: 0 !important;
-}
+/*
+Distraction Free Writing mode TinyMCE Styles
+*/
+
+html,
+body {
+	background: transparent;
+	width: auto !important;
+	max-width: none !important;
+	margin: 0 !important;
+	padding: 0 !important;
+	min-height: 0 !important;
+}
--- a/web/wp-includes/js/tinymce/plugins/wpfullscreen/editor_plugin.js	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/js/tinymce/plugins/wpfullscreen/editor_plugin.js	Wed Dec 19 17:46:52 2012 -0800
@@ -1,1 +1,1 @@
-(function(){tinymce.create("tinymce.plugins.wpFullscreenPlugin",{init:function(a,c){var d=this,g=0,e={},f=tinymce.DOM;a.addCommand("wpFullScreenClose",function(){if(a.getParam("wp_fullscreen_is_enabled")){f.win.setTimeout(function(){tinyMCE.remove(a);f.remove("wp_mce_fullscreen_parent");tinyMCE.settings=tinyMCE.oldSettings},10)}});a.addCommand("wpFullScreenSave",function(){var h=tinyMCE.get("wp_mce_fullscreen"),i;h.focus();i=tinyMCE.get(h.getParam("wp_fullscreen_editor_id"));i.setContent(h.getContent({format:"raw"}),{format:"raw"})});a.addCommand("wpFullScreenInit",function(){var j,h,i;a=tinyMCE.activeEditor;j=a.getDoc();h=j.body;tinyMCE.oldSettings=tinyMCE.settings;tinymce.each(a.settings,function(k,l){e[l]=k});e.id="wp_mce_fullscreen";e.wp_fullscreen_is_enabled=true;e.wp_fullscreen_editor_id=a.id;e.theme_advanced_resizing=false;e.theme_advanced_statusbar_location="none";e.content_css=e.content_css?e.content_css+","+e.wp_fullscreen_content_css:e.wp_fullscreen_content_css;e.height=tinymce.isIE?h.scrollHeight:h.offsetHeight;tinymce.each(a.getParam("wp_fullscreen_settings"),function(m,l){e[l]=m});i=new tinymce.Editor("wp_mce_fullscreen",e);i.onInit.add(function(k){var m=tinymce.DOM,l=m.select("a.mceButton",m.get("wp-fullscreen-buttons"));if(!a.isHidden()){k.setContent(a.getContent())}else{k.setContent(switchEditors.wpautop(k.getElement().value))}setTimeout(function(){k.onNodeChange.add(function(o,n,p){tinymce.each(l,function(s){var r,q;if(r=m.get("wp_mce_fullscreen_"+s.id.substr(6))){q=r.className;if(q){s.className=q}}})})},1000);k.dom.addClass(k.getBody(),"wp-fullscreen-editor");k.focus()});i.render();if("undefined"!=fullscreen){i.dom.bind(i.dom.doc,"mousemove",function(k){fullscreen.bounder("showToolbar","hideToolbar",2000,k)})}});if("undefined"!=fullscreen){a.addButton("wp_fullscreen",{title:"fullscreen.desc",onclick:function(){fullscreen.on()}})}if(a.getParam("fullscreen_is_enabled")||!a.getParam("wp_fullscreen_is_enabled")){return}function b(){var j=a.getDoc(),i=tinymce.DOM,k,h;if(tinymce.isWebKit){h=j.body.offsetHeight}else{h=j.body.scrollHeight}k=(h>300)?h:300;if(g!=k){i.setStyle(i.get(a.id+"_ifr"),"height",k+"px");g=k;a.getWin().scrollTo(0,0)}}a.onInit.add(function(i,h){i.onChange.add(b);i.onSetContent.add(b);i.onPaste.add(b);i.onKeyUp.add(b);i.onPostRender.add(b);i.getBody().style.overflowY="hidden"});if(a.getParam("autoresize_on_init",true)){a.onLoadContent.add(function(i,h){setTimeout(function(){b()},1200)})}a.addCommand("wpAutoResize",b)},getInfo:function(){return{longname:"WP Fullscreen",author:"WordPress",authorurl:"http://wordpress.org",infourl:"",version:"1.0"}}});tinymce.PluginManager.add("wpfullscreen",tinymce.plugins.wpFullscreenPlugin)})();
\ No newline at end of file
+(function(){tinymce.create("tinymce.plugins.wpFullscreenPlugin",{resize_timeout:false,init:function(a,c){var d=this,g=0,e={},f=tinymce.DOM;a.addCommand("wpFullScreenClose",function(){if(a.getParam("wp_fullscreen_is_enabled")){f.win.setTimeout(function(){tinyMCE.remove(a);f.remove("wp_mce_fullscreen_parent");tinyMCE.settings=tinyMCE.oldSettings},10)}});a.addCommand("wpFullScreenSave",function(){var h=tinyMCE.get("wp_mce_fullscreen"),i;h.focus();i=tinyMCE.get(h.getParam("wp_fullscreen_editor_id"));i.setContent(h.getContent({format:"raw"}),{format:"raw"})});a.addCommand("wpFullScreenInit",function(){var j,h,i;a=tinyMCE.activeEditor;j=a.getDoc();h=j.body;tinyMCE.oldSettings=tinyMCE.settings;tinymce.each(a.settings,function(k,l){e[l]=k});e.id="wp_mce_fullscreen";e.wp_fullscreen_is_enabled=true;e.wp_fullscreen_editor_id=a.id;e.theme_advanced_resizing=false;e.theme_advanced_statusbar_location="none";e.content_css=e.content_css?e.content_css+","+e.wp_fullscreen_content_css:e.wp_fullscreen_content_css;e.height=tinymce.isIE?h.scrollHeight:h.offsetHeight;tinymce.each(a.getParam("wp_fullscreen_settings"),function(m,l){e[l]=m});i=new tinymce.Editor("wp_mce_fullscreen",e);i.onInit.add(function(k){var m=tinymce.DOM,l=m.select("a.mceButton",m.get("wp-fullscreen-buttons"));if(!a.isHidden()){k.setContent(a.getContent())}else{k.setContent(switchEditors.wpautop(k.getElement().value))}setTimeout(function(){k.onNodeChange.add(function(o,n,p){tinymce.each(l,function(s){var r,q;if(r=m.get("wp_mce_fullscreen_"+s.id.substr(6))){q=r.className;if(q){s.className=q}}})})},1000);k.dom.addClass(k.getBody(),"wp-fullscreen-editor");k.focus()});i.render();if("undefined"!=fullscreen){i.dom.bind(i.dom.doc,"mousemove",function(k){fullscreen.bounder("showToolbar","hideToolbar",2000,k)})}});a.addCommand("wpFullScreen",function(){if(typeof(fullscreen)=="undefined"){return}if("wp_mce_fullscreen"==a.id){fullscreen.off()}else{fullscreen.on()}});a.addButton("wp_fullscreen",{title:"wordpress.wp_fullscreen_desc",cmd:"wpFullScreen"});if(a.getParam("fullscreen_is_enabled")||!a.getParam("wp_fullscreen_is_enabled")){return}function b(j,l){var k=tinymce.DOM,i=a.getBody(),n=k.get(a.id+"_ifr"),h,m=a.dom.win.scrollY;if(d.resize_timeout){return}d.resize_timeout=true;setTimeout(function(){d.resize_timeout=false},500);h=i.scrollHeight>300?i.scrollHeight:300;if(h!=n.scrollHeight){k.setStyle(n,"height",h+"px");a.getWin().scrollTo(0,0)}if(l&&l.type=="paste"&&tinymce.isWebKit){setTimeout(function(){a.dom.win.scrollTo(0,m)},40)}}a.onInit.add(function(i,h){i.onChange.add(b);i.onSetContent.add(b);i.onPaste.add(b);i.onKeyUp.add(b);i.onPostRender.add(b);i.getBody().style.overflowY="hidden"});if(a.getParam("autoresize_on_init",true)){a.onLoadContent.add(function(i,h){setTimeout(function(){b()},1200)})}a.addCommand("wpAutoResize",b)},getInfo:function(){return{longname:"WP Fullscreen",author:"WordPress",authorurl:"http://wordpress.org",infourl:"",version:"1.0"}}});tinymce.PluginManager.add("wpfullscreen",tinymce.plugins.wpFullscreenPlugin)})();
\ No newline at end of file
--- a/web/wp-includes/js/tinymce/plugins/wpfullscreen/editor_plugin_src.js	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/js/tinymce/plugins/wpfullscreen/editor_plugin_src.js	Wed Dec 19 17:46:52 2012 -0800
@@ -6,6 +6,7 @@
 
 (function() {
 	tinymce.create('tinymce.plugins.wpFullscreenPlugin', {
+		resize_timeout: false,
 
 		init : function(ed, url) {
 			var t = this, oldHeight = 0, s = {}, DOM = tinymce.DOM;
@@ -93,13 +94,21 @@
 				}
 			});
 
+			ed.addCommand('wpFullScreen', function() {
+				if ( typeof(fullscreen) == 'undefined' )
+					return;
+
+				if ( 'wp_mce_fullscreen' == ed.id )
+					fullscreen.off();
+				else
+					fullscreen.on();
+			});
+
 			// Register buttons
-			if ( 'undefined' != fullscreen ) {
-				ed.addButton('wp_fullscreen', {
-					title : 'fullscreen.desc',
-					onclick : function(){ fullscreen.on(); }
-				});
-			}
+			ed.addButton('wp_fullscreen', {
+				title : 'wordpress.wp_fullscreen_desc',
+				cmd : 'wpFullScreen'
+			});
 
 			// END fullscreen
 //----------------------------------------------------------------
@@ -111,23 +120,30 @@
 			/**
 			 * This method gets executed each time the editor needs to resize.
 			 */
-			function resize() {
-				var d = ed.getDoc(), DOM = tinymce.DOM, resizeHeight, myHeight;
+			function resize(editor, e) {
+				var DOM = tinymce.DOM, body = ed.getBody(), ifr = DOM.get(ed.id + '_ifr'), height, y = ed.dom.win.scrollY;
+
+				if ( t.resize_timeout )
+					return;
 
-				// Get height differently depending on the browser used
-				if ( tinymce.isWebKit )
-					myHeight = d.body.offsetHeight;
-				else
-					myHeight = d.body.scrollHeight;
+				// sometimes several events are fired few ms apart, trottle down resizing a little
+				t.resize_timeout = true;
+				setTimeout(function(){
+					t.resize_timeout = false;
+				}, 500);
 
-				// Don't make it smaller than 300px
-				resizeHeight = (myHeight > 300) ? myHeight : 300;
+				height = body.scrollHeight > 300 ? body.scrollHeight : 300;
 
-				// Resize content element
-				if ( oldHeight != resizeHeight ) {
-					DOM.setStyle(DOM.get(ed.id + '_ifr'), 'height', resizeHeight + 'px');
-					oldHeight = resizeHeight;
-					ed.getWin().scrollTo(0,0);
+				if ( height != ifr.scrollHeight ) {
+					DOM.setStyle(ifr, 'height', height + 'px');
+					ed.getWin().scrollTo(0, 0); // iframe window object, make sure there's no scrolling
+				}
+
+				// WebKit scrolls to top on paste...
+				if ( e && e.type == 'paste' && tinymce.isWebKit ) {
+					setTimeout(function(){
+						ed.dom.win.scrollTo(0, y);
+					}, 40);
 				}
 			};
 
@@ -142,7 +158,7 @@
 				ed.getBody().style.overflowY = "hidden";
 			});
 
-			if (ed.getParam('autoresize_on_init', true)) {
+			if ( ed.getParam('autoresize_on_init', true) ) {
 				ed.onLoadContent.add(function(ed, l) {
 					// Because the content area resizes when its content CSS loads,
 					// and we can't easily add a listener to its onload event,
--- a/web/wp-includes/js/tinymce/plugins/wpgallery/editor_plugin.js	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/js/tinymce/plugins/wpgallery/editor_plugin.js	Wed Dec 19 17:46:52 2012 -0800
@@ -1,1 +1,1 @@
-(function(){tinymce.create("tinymce.plugins.wpGallery",{init:function(a,b){var c=this;c.url=b;c._createButtons();a.addCommand("WP_Gallery",function(){var h=a.selection.getNode(),f,e=tinymce.DOM.getViewPort(),g=e.h-80,d=(640<e.w)?640:e.w;if(h.nodeName!="IMG"){return}if(a.dom.getAttrib(h,"class").indexOf("wpGallery")==-1){return}f=tinymce.DOM.get("post_ID").value;tb_show("",tinymce.documentBaseURL+"media-upload.php?post_id="+f+"&tab=gallery&TB_iframe=true&width="+d+"&height="+g);tinymce.DOM.setStyle(["TB_overlay","TB_window","TB_load"],"z-index","999999")});a.onMouseDown.add(function(d,f){if(f.target.nodeName=="IMG"&&d.dom.hasClass(f.target,"wpGallery")){d.plugins.wordpress._showButtons(f.target,"wp_gallerybtns")}});a.onBeforeSetContent.add(function(d,e){e.content=c._do_gallery(e.content)});a.onPostProcess.add(function(d,e){if(e.get){e.content=c._get_gallery(e.content)}})},_do_gallery:function(a){return a.replace(/\[gallery([^\]]*)\]/g,function(d,c){return'<img src="'+tinymce.baseURL+'/plugins/wpgallery/img/t.gif" class="wpGallery mceItem" title="gallery'+tinymce.DOM.encode(c)+'" />'})},_get_gallery:function(b){function a(c,d){d=new RegExp(d+'="([^"]+)"',"g").exec(c);return d?tinymce.DOM.decode(d[1]):""}return b.replace(/(?:<p[^>]*>)*(<img[^>]+>)(?:<\/p>)*/g,function(e,d){var c=a(d,"class");if(c.indexOf("wpGallery")!=-1){return"<p>["+tinymce.trim(a(d,"title"))+"]</p>"}return e})},_createButtons:function(){var b=this,a=tinyMCE.activeEditor,d=tinymce.DOM,e,c;d.remove("wp_gallerybtns");d.add(document.body,"div",{id:"wp_gallerybtns",style:"display:none;"});e=d.add("wp_gallerybtns","img",{src:b.url+"/img/edit.png",id:"wp_editgallery",width:"24",height:"24",title:a.getLang("wordpress.editgallery")});tinymce.dom.Event.add(e,"mousedown",function(g){var f=tinyMCE.activeEditor;f.windowManager.bookmark=f.selection.getBookmark("simple");f.execCommand("WP_Gallery")});c=d.add("wp_gallerybtns","img",{src:b.url+"/img/delete.png",id:"wp_delgallery",width:"24",height:"24",title:a.getLang("wordpress.delgallery")});tinymce.dom.Event.add(c,"mousedown",function(h){var f=tinyMCE.activeEditor,g=f.selection.getNode();if(g.nodeName=="IMG"&&f.dom.hasClass(g,"wpGallery")){f.dom.remove(g);f.execCommand("mceRepaint");return false}})},getInfo:function(){return{longname:"Gallery Settings",author:"WordPress",authorurl:"http://wordpress.org",infourl:"",version:"1.0"}}});tinymce.PluginManager.add("wpgallery",tinymce.plugins.wpGallery)})();
\ No newline at end of file
+(function(){tinymce.create("tinymce.plugins.wpGallery",{init:function(a,b){var c=this;c.url=b;c.editor=a;c._createButtons();a.addCommand("WP_Gallery",function(){if(tinymce.isIE){a.selection.moveToBookmark(a.wpGalleryBookmark)}var e=a.selection.getNode(),d=wp.media.gallery,f;if(typeof wp==="undefined"||!wp.media||!wp.media.gallery){return}if(e.nodeName!="IMG"||a.dom.getAttrib(e,"class").indexOf("wpGallery")==-1){return}f=d.edit("["+a.dom.getAttrib(e,"title")+"]");f.state("gallery-edit").on("update",function(g){var h=d.shortcode(g).string().slice(1,-1);a.dom.setAttrib(e,"title",h)})});a.onInit.add(function(d){if("ontouchstart" in window){d.dom.events.add(d.getBody(),"touchstart",function(g){var f=g.target;if(f.nodeName=="IMG"&&d.dom.hasClass(f,"wpGallery")){d.selection.select(f);d.dom.events.cancel(g);d.plugins.wordpress._hideButtons();d.plugins.wordpress._showButtons(f,"wp_gallerybtns")}})}});a.onMouseDown.add(function(d,f){if(f.target.nodeName=="IMG"&&d.dom.hasClass(f.target,"wpGallery")){d.plugins.wordpress._hideButtons();d.plugins.wordpress._showButtons(f.target,"wp_gallerybtns")}});a.onBeforeSetContent.add(function(d,e){e.content=c._do_gallery(e.content)});a.onPostProcess.add(function(d,e){if(e.get){e.content=c._get_gallery(e.content)}})},_do_gallery:function(a){return a.replace(/\[gallery([^\]]*)\]/g,function(d,c){return'<img src="'+tinymce.baseURL+'/plugins/wpgallery/img/t.gif" class="wpGallery mceItem" title="gallery'+tinymce.DOM.encode(c)+'" />'})},_get_gallery:function(b){function a(c,d){d=new RegExp(d+'="([^"]+)"',"g").exec(c);return d?tinymce.DOM.decode(d[1]):""}return b.replace(/(?:<p[^>]*>)*(<img[^>]+>)(?:<\/p>)*/g,function(e,d){var c=a(d,"class");if(c.indexOf("wpGallery")!=-1){return"<p>["+tinymce.trim(a(d,"title"))+"]</p>"}return e})},_createButtons:function(){var b=this,a=tinymce.activeEditor,d=tinymce.DOM,e,c,f;if(d.get("wp_gallerybtns")){return}f=(window.devicePixelRatio&&window.devicePixelRatio>1)||(window.matchMedia&&window.matchMedia("(min-resolution:130dpi)").matches);d.add(document.body,"div",{id:"wp_gallerybtns",style:"display:none;"});e=d.add("wp_gallerybtns","img",{src:f?b.url+"/img/edit-2x.png":b.url+"/img/edit.png",id:"wp_editgallery",width:"24",height:"24",title:a.getLang("wordpress.editgallery")});tinymce.dom.Event.add(e,"mousedown",function(h){var g=tinymce.activeEditor;g.wpGalleryBookmark=g.selection.getBookmark("simple");g.execCommand("WP_Gallery");g.plugins.wordpress._hideButtons()});c=d.add("wp_gallerybtns","img",{src:f?b.url+"/img/delete-2x.png":b.url+"/img/delete.png",id:"wp_delgallery",width:"24",height:"24",title:a.getLang("wordpress.delgallery")});tinymce.dom.Event.add(c,"mousedown",function(i){var g=tinymce.activeEditor,h=g.selection.getNode();if(h.nodeName=="IMG"&&g.dom.hasClass(h,"wpGallery")){g.dom.remove(h);g.execCommand("mceRepaint");g.dom.events.cancel(i)}g.plugins.wordpress._hideButtons()})},getInfo:function(){return{longname:"Gallery Settings",author:"WordPress",authorurl:"http://wordpress.org",infourl:"",version:"1.0"}}});tinymce.PluginManager.add("wpgallery",tinymce.plugins.wpGallery)})();
\ No newline at end of file
--- a/web/wp-includes/js/tinymce/plugins/wpgallery/editor_plugin_src.js	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/js/tinymce/plugins/wpgallery/editor_plugin_src.js	Wed Dec 19 17:46:52 2012 -0800
@@ -6,25 +6,55 @@
 			var t = this;
 
 			t.url = url;
+			t.editor = ed;
 			t._createButtons();
 
 			// Register the command so that it can be invoked by using tinyMCE.activeEditor.execCommand('...');
 			ed.addCommand('WP_Gallery', function() {
-				var el = ed.selection.getNode(), post_id, vp = tinymce.DOM.getViewPort(),
-					H = vp.h - 80, W = ( 640 < vp.w ) ? 640 : vp.w;
+				if ( tinymce.isIE )
+					ed.selection.moveToBookmark( ed.wpGalleryBookmark );
+
+				var el = ed.selection.getNode(),
+					gallery = wp.media.gallery,
+					frame;
+
+				// Check if the `wp.media.gallery` API exists.
+				if ( typeof wp === 'undefined' || ! wp.media || ! wp.media.gallery )
+					return;
+
+				// Make sure we've selected a gallery node.
+				if ( el.nodeName != 'IMG' || ed.dom.getAttrib(el, 'class').indexOf('wpGallery') == -1 )
+					return;
+
+				frame = gallery.edit( '[' + ed.dom.getAttrib( el, 'title' ) + ']' );
 
-				if ( el.nodeName != 'IMG' ) return;
-				if ( ed.dom.getAttrib(el, 'class').indexOf('wpGallery') == -1 )	return;
+				frame.state('gallery-edit').on( 'update', function( selection ) {
+					var shortcode = gallery.shortcode( selection ).string().slice( 1, -1 );
+					ed.dom.setAttrib( el, 'title', shortcode );
+				});
+			});
 
-				post_id = tinymce.DOM.get('post_ID').value;
-				tb_show('', tinymce.documentBaseURL + 'media-upload.php?post_id='+post_id+'&tab=gallery&TB_iframe=true&width='+W+'&height='+H);
+			ed.onInit.add(function(ed) {
+				// iOS6 doesn't show the buttons properly on click, show them on 'touchstart'
+				if ( 'ontouchstart' in window ) {
+					ed.dom.events.add(ed.getBody(), 'touchstart', function(e){
+						var target = e.target;
 
-				tinymce.DOM.setStyle( ['TB_overlay','TB_window','TB_load'], 'z-index', '999999' );
+						if ( target.nodeName == 'IMG' && ed.dom.hasClass(target, 'wpGallery') ) {
+							ed.selection.select(target);
+							ed.dom.events.cancel(e);
+							ed.plugins.wordpress._hideButtons();
+							ed.plugins.wordpress._showButtons(target, 'wp_gallerybtns');
+						}
+					});
+				}
 			});
 
 			ed.onMouseDown.add(function(ed, e) {
-				if ( e.target.nodeName == 'IMG' && ed.dom.hasClass(e.target, 'wpGallery') )
+				if ( e.target.nodeName == 'IMG' && ed.dom.hasClass(e.target, 'wpGallery') ) {
+					ed.plugins.wordpress._hideButtons();
 					ed.plugins.wordpress._showButtons(e.target, 'wp_gallerybtns');
+				}
 			});
 
 			ed.onBeforeSetContent.add(function(ed, o) {
@@ -61,9 +91,13 @@
 		},
 
 		_createButtons : function() {
-			var t = this, ed = tinyMCE.activeEditor, DOM = tinymce.DOM, editButton, dellButton;
+			var t = this, ed = tinymce.activeEditor, DOM = tinymce.DOM, editButton, dellButton, isRetina;
 
-			DOM.remove('wp_gallerybtns');
+			if ( DOM.get('wp_gallerybtns') )
+				return;
+
+			isRetina = ( window.devicePixelRatio && window.devicePixelRatio > 1 ) || // WebKit, Opera
+				( window.matchMedia && window.matchMedia('(min-resolution:130dpi)').matches ); // Firefox, IE10, Opera
 
 			DOM.add(document.body, 'div', {
 				id : 'wp_gallerybtns',
@@ -71,7 +105,7 @@
 			});
 
 			editButton = DOM.add('wp_gallerybtns', 'img', {
-				src : t.url+'/img/edit.png',
+				src : isRetina ? t.url+'/img/edit-2x.png' : t.url+'/img/edit.png',
 				id : 'wp_editgallery',
 				width : '24',
 				height : '24',
@@ -79,13 +113,14 @@
 			});
 
 			tinymce.dom.Event.add(editButton, 'mousedown', function(e) {
-				var ed = tinyMCE.activeEditor;
-				ed.windowManager.bookmark = ed.selection.getBookmark('simple');
+				var ed = tinymce.activeEditor;
+				ed.wpGalleryBookmark = ed.selection.getBookmark('simple');
 				ed.execCommand("WP_Gallery");
+				ed.plugins.wordpress._hideButtons();
 			});
 
 			dellButton = DOM.add('wp_gallerybtns', 'img', {
-				src : t.url+'/img/delete.png',
+				src : isRetina ? t.url+'/img/delete-2x.png' : t.url+'/img/delete.png',
 				id : 'wp_delgallery',
 				width : '24',
 				height : '24',
@@ -93,14 +128,16 @@
 			});
 
 			tinymce.dom.Event.add(dellButton, 'mousedown', function(e) {
-				var ed = tinyMCE.activeEditor, el = ed.selection.getNode();
+				var ed = tinymce.activeEditor, el = ed.selection.getNode();
 
 				if ( el.nodeName == 'IMG' && ed.dom.hasClass(el, 'wpGallery') ) {
 					ed.dom.remove(el);
 
 					ed.execCommand('mceRepaint');
-					return false;
+					ed.dom.events.cancel(e);
 				}
+
+				ed.plugins.wordpress._hideButtons();
 			});
 		},
 
Binary file web/wp-includes/js/tinymce/plugins/wpgallery/img/delete-2x.png has changed
Binary file web/wp-includes/js/tinymce/plugins/wpgallery/img/delete.png has changed
Binary file web/wp-includes/js/tinymce/plugins/wpgallery/img/edit-2x.png has changed
Binary file web/wp-includes/js/tinymce/plugins/wpgallery/img/edit.png has changed
--- a/web/wp-includes/js/tinymce/plugins/wplink/editor_plugin.js	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/js/tinymce/plugins/wplink/editor_plugin.js	Wed Dec 19 17:46:52 2012 -0800
@@ -1,1 +1,1 @@
-(function(){tinymce.create("tinymce.plugins.wpLink",{init:function(a,b){var c=true;a.addCommand("WP_Link",function(){if(c){return}a.windowManager.open({id:"wp-link",width:480,height:"auto",wpDialog:true,title:a.getLang("advlink.link_desc")},{plugin_url:b})});a.addButton("link",{title:a.getLang("advanced.link_desc"),cmd:"WP_Link"});a.addShortcut("alt+shift+a",a.getLang("advanced.link_desc"),"WP_Link");a.onNodeChange.add(function(e,d,g,f){c=f&&g.nodeName!="A"})},getInfo:function(){return{longname:"WordPress Link Dialog",author:"WordPress",authorurl:"http://wordpress.org",infourl:"",version:"1.0"}}});tinymce.PluginManager.add("wplink",tinymce.plugins.wpLink)})();
\ No newline at end of file
+(function(){tinymce.create("tinymce.plugins.wpLink",{init:function(a,b){var c=true;a.addCommand("WP_Link",function(){if(c){return}a.windowManager.open({id:"wp-link",width:480,height:"auto",wpDialog:true,title:a.getLang("advlink.link_desc")},{plugin_url:b})});a.addButton("link",{title:"advanced.link_desc",cmd:"WP_Link"});a.onNodeChange.add(function(e,d,g,f){c=f&&g.nodeName!="A"})},getInfo:function(){return{longname:"WordPress Link Dialog",author:"WordPress",authorurl:"http://wordpress.org",infourl:"",version:"1.0"}}});tinymce.PluginManager.add("wplink",tinymce.plugins.wpLink)})();
\ No newline at end of file
--- a/web/wp-includes/js/tinymce/plugins/wplink/editor_plugin_src.js	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/js/tinymce/plugins/wplink/editor_plugin_src.js	Wed Dec 19 17:46:52 2012 -0800
@@ -28,12 +28,10 @@
 
 			// Register example button
 			ed.addButton('link', {
-				title : ed.getLang('advanced.link_desc'),
+				title : 'advanced.link_desc',
 				cmd : 'WP_Link'
 			});
 
-			ed.addShortcut('alt+shift+a', ed.getLang('advanced.link_desc'), 'WP_Link');
-
 			ed.onNodeChange.add(function(ed, cm, n, co) {
 				disabled = co && n.nodeName != 'A';
 			});
@@ -57,4 +55,5 @@
 
 	// Register plugin
 	tinymce.PluginManager.add('wplink', tinymce.plugins.wpLink);
-})();
\ No newline at end of file
+})();
+
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-includes/js/tinymce/plugins/wpview/editor_plugin.js	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,1 @@
+(function(){var c=tinymce.VK,a=tinymce.dom.TreeWalker,b;tinymce.create("tinymce.plugins.wpView",{init:function(f,e){var d=this;if(typeof wp==="undefined"||!wp.mce){return}f.onPreInit.add(function(g){g.schema.addValidElements("div[*],span[*]")});f.onBeforeSetContent.add(function(g,h){if(!h.content){return}h.content=wp.mce.view.toViews(h.content)});f.onSetContent.add(function(g,h){wp.mce.view.render(g.getDoc())});f.onInit.add(function(g){g.selection.onBeforeSetContent.add(function(i,l){var h=d.getParentView(i.getNode()),k,j;if(!h){return}if(!h.nextSibling||d.isView(h.nextSibling)){j=g.getDoc().createTextNode("");g.dom.insertAfter(j,h)}else{k=new a(h.nextSibling,h.nextSibling);j=k.next()}i.select(j);i.collapse(true)});g.selection.onSetContent.add(function(h,j){if(!j.context){return}var i=h.getNode();if(!i.innerHTML){return}i.innerHTML=wp.mce.view.toViews(i.innerHTML);wp.mce.view.render(i)})});f.onPostProcess.add(function(g,h){if((!h.get&&!h.save)||!h.content){return}h.content=wp.mce.view.toText(h.content)});f.onNodeChange.addToTop(function(i,g,j,l,k){var h=d.getParentView(j);if(h){d.select(h);return false}else{d.deselect()}});f.onKeyDown.addToTop(function(i,j){var k=j.keyCode,h,g;if(!b){return}h=d.getParentView(i.selection.getNode());if(h!==b){d.deselect();return}if(k===c.DELETE||k===c.BACKSPACE){if((g=wp.mce.view.instance(b))){g.remove();d.deselect()}}if(j.metaKey||j.ctrlKey||(k>=112&&k<=123)){return}j.preventDefault()})},getParentView:function(d){while(d){if(this.isView(d)){return d}d=d.parentNode}},isView:function(d){return(/(?:^|\s)wp-view-wrap(?:\s|$)/).test(d.className)},select:function(d){if(d===b){return}this.deselect();b=d;wp.mce.view.select(b)},deselect:function(){if(b){wp.mce.view.deselect(b)}b=null},getInfo:function(){return{longname:"WordPress Views",author:"WordPress",authorurl:"http://wordpress.org",infourl:"http://wordpress.org",version:"1.0"}}});tinymce.PluginManager.add("wpview",tinymce.plugins.wpView)})();
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-includes/js/tinymce/plugins/wpview/editor_plugin_src.js	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,188 @@
+/**
+ * WordPress View plugin.
+ */
+
+(function() {
+	var VK = tinymce.VK,
+		TreeWalker = tinymce.dom.TreeWalker,
+		selected;
+
+	tinymce.create('tinymce.plugins.wpView', {
+		init : function( editor, url ) {
+			var wpView = this;
+
+			// Check if the `wp.mce` API exists.
+			if ( typeof wp === 'undefined' || ! wp.mce )
+				return;
+
+			editor.onPreInit.add( function( editor ) {
+				// Add elements so we can set `contenteditable` to false.
+				editor.schema.addValidElements('div[*],span[*]');
+			});
+
+			// When the editor's content changes, scan the new content for
+			// matching view patterns, and transform the matches into
+			// view wrappers. Since the editor's DOM is outdated at this point,
+			// we'll wait to render the views.
+			editor.onBeforeSetContent.add( function( editor, o ) {
+				if ( ! o.content )
+					return;
+
+				o.content = wp.mce.view.toViews( o.content );
+			});
+
+			// When the editor's content has been updated and the DOM has been
+			// processed, render the views in the document.
+			editor.onSetContent.add( function( editor, o ) {
+				wp.mce.view.render( editor.getDoc() );
+			});
+
+			editor.onInit.add( function( editor ) {
+
+				// When a view is selected, ensure content that is being pasted
+				// or inserted is added to a text node (instead of the view).
+				editor.selection.onBeforeSetContent.add( function( selection, o ) {
+					var view = wpView.getParentView( selection.getNode() ),
+						walker, target;
+
+					// If the selection is not within a view, bail.
+					if ( ! view )
+						return;
+
+					// If there are no additional nodes or the next node is a
+					// view, create a text node after the current view.
+					if ( ! view.nextSibling || wpView.isView( view.nextSibling ) ) {
+						target = editor.getDoc().createTextNode('');
+						editor.dom.insertAfter( target, view );
+
+					// Otherwise, find the next text node.
+					} else {
+						walker = new TreeWalker( view.nextSibling, view.nextSibling );
+						target = walker.next();
+					}
+
+					// Select the `target` text node.
+					selection.select( target );
+					selection.collapse( true );
+				});
+
+				// When the selection's content changes, scan any new content
+				// for matching views and immediately render them.
+				//
+				// Runs on paste and on inserting nodes/html.
+				editor.selection.onSetContent.add( function( selection, o ) {
+					if ( ! o.context )
+						return;
+
+					var node = selection.getNode();
+
+					if ( ! node.innerHTML )
+						return;
+
+					node.innerHTML = wp.mce.view.toViews( node.innerHTML );
+					wp.mce.view.render( node );
+				});
+			});
+
+			// When the editor's contents are being accessed as a string,
+			// transform any views back to their text representations.
+			editor.onPostProcess.add( function( editor, o ) {
+				if ( ( ! o.get && ! o.save ) || ! o.content )
+					return;
+
+				o.content = wp.mce.view.toText( o.content );
+			});
+
+			// Triggers when the selection is changed.
+			// Add the event handler to the top of the stack.
+			editor.onNodeChange.addToTop( function( editor, controlManager, node, collapsed, o ) {
+				var view = wpView.getParentView( node );
+
+				// Update the selected view.
+				if ( view ) {
+					wpView.select( view );
+
+					// Prevent the selection from propagating to other plugins.
+					return false;
+
+				// If we've clicked off of the selected view, deselect it.
+				} else {
+					wpView.deselect();
+				}
+			});
+
+			editor.onKeyDown.addToTop( function( editor, event ) {
+				var keyCode = event.keyCode,
+					view, instance;
+
+				// If a view isn't selected, let the event go on its merry way.
+				if ( ! selected )
+					return;
+
+				// If the caret is not within the selected view, deselect the
+				// view and bail.
+				view = wpView.getParentView( editor.selection.getNode() );
+				if ( view !== selected ) {
+					wpView.deselect();
+					return;
+				}
+
+				// If delete or backspace is pressed, delete the view.
+				if ( keyCode === VK.DELETE || keyCode === VK.BACKSPACE ) {
+					if ( (instance = wp.mce.view.instance( selected )) ) {
+						instance.remove();
+						wpView.deselect();
+					}
+				}
+
+				// Let keypresses that involve the command or control keys through.
+				// Also, let any of the F# keys through.
+				if ( event.metaKey || event.ctrlKey || ( keyCode >= 112 && keyCode <= 123 ) )
+					return;
+
+				event.preventDefault();
+			});
+		},
+
+		getParentView : function( node ) {
+			while ( node ) {
+				if ( this.isView( node ) )
+					return node;
+
+				node = node.parentNode;
+			}
+		},
+
+		isView : function( node ) {
+			return (/(?:^|\s)wp-view-wrap(?:\s|$)/).test( node.className );
+		},
+
+		select : function( view ) {
+			if ( view === selected )
+				return;
+
+			this.deselect();
+			selected = view;
+			wp.mce.view.select( selected );
+		},
+
+		deselect : function() {
+			if ( selected )
+				wp.mce.view.deselect( selected );
+			selected = null;
+		},
+
+		getInfo : function() {
+			return {
+				longname  : 'WordPress Views',
+				author    : 'WordPress',
+				authorurl : 'http://wordpress.org',
+				infourl   : 'http://wordpress.org',
+				version   : '1.0'
+			};
+		}
+	});
+
+	// Register plugin
+	tinymce.PluginManager.add( 'wpview', tinymce.plugins.wpView );
+})();
\ No newline at end of file
--- a/web/wp-includes/js/tinymce/themes/advanced/about.htm	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/js/tinymce/themes/advanced/about.htm	Wed Dec 19 17:46:52 2012 -0800
@@ -2,9 +2,9 @@
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 	<title>{#advanced_dlg.about_title}</title>
-	<script type="text/javascript" src="../../tiny_mce_popup.js?ver=349-20120314"></script>
-	<script type="text/javascript" src="../../utils/mctabs.js?ver=349-20120314"></script>
-	<script type="text/javascript" src="js/about.js?ver=349-20120314"></script>
+	<script type="text/javascript" src="../../tiny_mce_popup.js?ver=358-20121205"></script>
+	<script type="text/javascript" src="../../utils/mctabs.js?ver=358-20121205"></script>
+	<script type="text/javascript" src="js/about.js?ver=358-20121205"></script>
 </head>
 <body id="about" style="display: none">
 		<div class="tabs">
--- a/web/wp-includes/js/tinymce/themes/advanced/anchor.htm	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/js/tinymce/themes/advanced/anchor.htm	Wed Dec 19 17:46:52 2012 -0800
@@ -2,8 +2,8 @@
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 	<title>{#advanced_dlg.anchor_title}</title>
-	<script type="text/javascript" src="../../tiny_mce_popup.js?ver=349-20120314"></script>
-	<script type="text/javascript" src="js/anchor.js?ver=349-20120314"></script>
+	<script type="text/javascript" src="../../tiny_mce_popup.js?ver=358-20121205"></script>
+	<script type="text/javascript" src="js/anchor.js?ver=358-20121205"></script>
 </head>
 <body style="display: none" role="application" aria-labelledby="app_title">
 <form onsubmit="AnchorDialog.update();return false;" action="#">
@@ -18,13 +18,8 @@
 	</table>
 
 	<div class="mceActionPanel">
-		<div style="float: left">
-			<input type="button" id="cancel" name="cancel" value="{#cancel}" onclick="tinyMCEPopup.close();" />
-		</div>
-
-		<div style="float: right">
-			<input type="submit" id="insert" name="insert" value="{#update}" />
-		</div>
+		<input type="submit" id="insert" name="insert" value="{#update}" />
+		<input type="button" id="cancel" name="cancel" value="{#cancel}" onclick="tinyMCEPopup.close();" />
 	</div>
 </form>
 </body>
--- a/web/wp-includes/js/tinymce/themes/advanced/charmap.htm	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/js/tinymce/themes/advanced/charmap.htm	Wed Dec 19 17:46:52 2012 -0800
@@ -2,8 +2,8 @@
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 	<title>{#advanced_dlg.charmap_title}</title>
-	<script type="text/javascript" src="../../tiny_mce_popup.js?ver=349-20120314"></script>
-	<script type="text/javascript" src="js/charmap.js?ver=349-20120314"></script>
+	<script type="text/javascript" src="../../tiny_mce_popup.js?ver=358-20121205"></script>
+	<script type="text/javascript" src="js/charmap.js?ver=358-20121205"></script>
 </head>
 <body id="charmap" style="display:none" role="application">
 <table align="center" border="0" cellspacing="0" cellpadding="2" role="presentation">
--- a/web/wp-includes/js/tinymce/themes/advanced/color_picker.htm	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/js/tinymce/themes/advanced/color_picker.htm	Wed Dec 19 17:46:52 2012 -0800
@@ -2,9 +2,9 @@
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 	<title>{#advanced_dlg.colorpicker_title}</title>
-	<script type="text/javascript" src="../../tiny_mce_popup.js?ver=349-20120314"></script>
-	<script type="text/javascript" src="../../utils/mctabs.js?ver=349-20120314"></script>
-	<script type="text/javascript" src="js/color_picker.js?ver=349-20120314"></script>
+	<script type="text/javascript" src="../../tiny_mce_popup.js?ver=358-20121205"></script>
+	<script type="text/javascript" src="../../utils/mctabs.js?ver=358-20121205"></script>
+	<script type="text/javascript" src="js/color_picker.js?ver=358-20121205"></script>
 </head>
 <body id="colorpicker" style="display: none" role="application" aria-labelledby="app_label">
 	<span class="mceVoiceLabel" id="app_label" style="display:none;">{#advanced_dlg.colorpicker_title}</span>
@@ -61,15 +61,9 @@
 	</div>
 
 	<div class="mceActionPanel">
-		<div style="float: left">
-			<input type="submit" id="insert" name="insert" value="{#apply}" />
-		</div>
-
-		<div id="preview"></div>
-
-		<div id="previewblock">
-			<label for="color">{#advanced_dlg.colorpicker_color}</label> <input id="color" type="text" size="8" class="text mceFocus" aria-required="true" />
-		</div>
+		<input type="submit" id="insert" name="insert" value="{#apply}" />
+		<input type="button" id="cancel" name="cancel" value="{#cancel}" onclick="tinyMCEPopup.close();"/>
+		<div id="preview_wrapper"><div id="previewblock"><label for="color">{#advanced_dlg.colorpicker_color}</label> <input id="color" type="text" size="8" class="text mceFocus" aria-required="true" /></div><span id="preview"></span></div>
 	</div>
 </form>
 </body>
--- a/web/wp-includes/js/tinymce/themes/advanced/editor_template.js	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/js/tinymce/themes/advanced/editor_template.js	Wed Dec 19 17:46:52 2012 -0800
@@ -1,1 +1,1 @@
-(function(e){var d=e.DOM,b=e.dom.Event,h=e.extend,f=e.each,a=e.util.Cookie,g,c=e.explode;e.ThemeManager.requireLangPack("advanced");e.create("tinymce.themes.AdvancedTheme",{sizes:[8,10,12,14,18,24,36],controls:{bold:["bold_desc","Bold"],italic:["italic_desc","Italic"],underline:["underline_desc","Underline"],strikethrough:["striketrough_desc","Strikethrough"],justifyleft:["justifyleft_desc","JustifyLeft"],justifycenter:["justifycenter_desc","JustifyCenter"],justifyright:["justifyright_desc","JustifyRight"],justifyfull:["justifyfull_desc","JustifyFull"],bullist:["bullist_desc","InsertUnorderedList"],numlist:["numlist_desc","InsertOrderedList"],outdent:["outdent_desc","Outdent"],indent:["indent_desc","Indent"],cut:["cut_desc","Cut"],copy:["copy_desc","Copy"],paste:["paste_desc","Paste"],undo:["undo_desc","Undo"],redo:["redo_desc","Redo"],link:["link_desc","mceLink"],unlink:["unlink_desc","unlink"],image:["image_desc","mceImage"],cleanup:["cleanup_desc","mceCleanup"],help:["help_desc","mceHelp"],code:["code_desc","mceCodeEditor"],hr:["hr_desc","InsertHorizontalRule"],removeformat:["removeformat_desc","RemoveFormat"],sub:["sub_desc","subscript"],sup:["sup_desc","superscript"],forecolor:["forecolor_desc","ForeColor"],forecolorpicker:["forecolor_desc","mceForeColor"],backcolor:["backcolor_desc","HiliteColor"],backcolorpicker:["backcolor_desc","mceBackColor"],charmap:["charmap_desc","mceCharMap"],visualaid:["visualaid_desc","mceToggleVisualAid"],anchor:["anchor_desc","mceInsertAnchor"],newdocument:["newdocument_desc","mceNewDocument"],blockquote:["blockquote_desc","mceBlockQuote"]},stateControls:["bold","italic","underline","strikethrough","bullist","numlist","justifyleft","justifycenter","justifyright","justifyfull","sub","sup","blockquote"],init:function(j,k){var l=this,m,i,n;l.editor=j;l.url=k;l.onResolveName=new e.util.Dispatcher(this);j.forcedHighContrastMode=j.settings.detect_highcontrast&&l._isHighContrast();j.settings.skin=j.forcedHighContrastMode?"highcontrast":j.settings.skin;l.settings=m=h({theme_advanced_path:true,theme_advanced_toolbar_location:"bottom",theme_advanced_buttons1:"bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull,|,styleselect,formatselect",theme_advanced_buttons2:"bullist,numlist,|,outdent,indent,|,undo,redo,|,link,unlink,anchor,image,cleanup,help,code",theme_advanced_buttons3:"hr,removeformat,visualaid,|,sub,sup,|,charmap",theme_advanced_blockformats:"p,address,pre,h1,h2,h3,h4,h5,h6",theme_advanced_toolbar_align:"center",theme_advanced_fonts:"Andale Mono=andale mono,times;Arial=arial,helvetica,sans-serif;Arial Black=arial black,avant garde;Book Antiqua=book antiqua,palatino;Comic Sans MS=comic sans ms,sans-serif;Courier New=courier new,courier;Georgia=georgia,palatino;Helvetica=helvetica;Impact=impact,chicago;Symbol=symbol;Tahoma=tahoma,arial,helvetica,sans-serif;Terminal=terminal,monaco;Times New Roman=times new roman,times;Trebuchet MS=trebuchet ms,geneva;Verdana=verdana,geneva;Webdings=webdings;Wingdings=wingdings,zapf dingbats",theme_advanced_more_colors:1,theme_advanced_row_height:23,theme_advanced_resize_horizontal:1,theme_advanced_resizing_use_cookie:1,theme_advanced_font_sizes:"1,2,3,4,5,6,7",theme_advanced_font_selector:"span",theme_advanced_show_current_color:0,readonly:j.settings.readonly},j.settings);if(!m.font_size_style_values){m.font_size_style_values="8pt,10pt,12pt,14pt,18pt,24pt,36pt"}if(e.is(m.theme_advanced_font_sizes,"string")){m.font_size_style_values=e.explode(m.font_size_style_values);m.font_size_classes=e.explode(m.font_size_classes||"");n={};j.settings.theme_advanced_font_sizes=m.theme_advanced_font_sizes;f(j.getParam("theme_advanced_font_sizes","","hash"),function(q,p){var o;if(p==q&&q>=1&&q<=7){p=q+" ("+l.sizes[q-1]+"pt)";o=m.font_size_classes[q-1];q=m.font_size_style_values[q-1]||(l.sizes[q-1]+"pt")}if(/^\s*\./.test(q)){o=q.replace(/\./g,"")}n[p]=o?{"class":o}:{fontSize:q}});m.theme_advanced_font_sizes=n}if((i=m.theme_advanced_path_location)&&i!="none"){m.theme_advanced_statusbar_location=m.theme_advanced_path_location}if(m.theme_advanced_statusbar_location=="none"){m.theme_advanced_statusbar_location=0}if(j.settings.content_css!==false){j.contentCSS.push(j.baseURI.toAbsolute(k+"/skins/"+j.settings.skin+"/content.css"))}j.onInit.add(function(){if(!j.settings.readonly){j.onNodeChange.add(l._nodeChanged,l);j.onKeyUp.add(l._updateUndoStatus,l);j.onMouseUp.add(l._updateUndoStatus,l);j.dom.bind(j.dom.getRoot(),"dragend",function(){l._updateUndoStatus(j)})}});j.onSetProgressState.add(function(q,o,r){var s,t=q.id,p;if(o){l.progressTimer=setTimeout(function(){s=q.getContainer();s=s.insertBefore(d.create("DIV",{style:"position:relative"}),s.firstChild);p=d.get(q.id+"_tbl");d.add(s,"div",{id:t+"_blocker","class":"mceBlocker",style:{width:p.clientWidth+2,height:p.clientHeight+2}});d.add(s,"div",{id:t+"_progress","class":"mceProgress",style:{left:p.clientWidth/2,top:p.clientHeight/2}})},r||0)}else{d.remove(t+"_blocker");d.remove(t+"_progress");clearTimeout(l.progressTimer)}});d.loadCSS(m.editor_css?j.documentBaseURI.toAbsolute(m.editor_css):k+"/skins/"+j.settings.skin+"/ui.css");if(m.skin_variant){d.loadCSS(k+"/skins/"+j.settings.skin+"/ui_"+m.skin_variant+".css")}},_isHighContrast:function(){var i,j=d.add(d.getRoot(),"div",{style:"background-color: rgb(171,239,86);"});i=(d.getStyle(j,"background-color",true)+"").toLowerCase().replace(/ /g,"");d.remove(j);return i!="rgb(171,239,86)"&&i!="#abef56"},createControl:function(l,i){var j,k;if(k=i.createControl(l)){return k}switch(l){case"styleselect":return this._createStyleSelect();case"formatselect":return this._createBlockFormats();case"fontselect":return this._createFontSelect();case"fontsizeselect":return this._createFontSizeSelect();case"forecolor":return this._createForeColorMenu();case"backcolor":return this._createBackColorMenu()}if((j=this.controls[l])){return i.createButton(l,{title:"advanced."+j[0],cmd:j[1],ui:j[2],value:j[3]})}},execCommand:function(k,j,l){var i=this["_"+k];if(i){i.call(this,j,l);return true}return false},_importClasses:function(k){var i=this.editor,j=i.controlManager.get("styleselect");if(j.getLength()==0){f(i.dom.getClasses(),function(n,l){var m="style_"+l;i.formatter.register(m,{inline:"span",attributes:{"class":n["class"]},selector:"*"});j.add(n["class"],m)})}},_createStyleSelect:function(m){var k=this,i=k.editor,j=i.controlManager,l;l=j.createListBox("styleselect",{title:"advanced.style_select",onselect:function(o){var p,n=[];f(l.items,function(q){n.push(q.value)});i.focus();i.undoManager.add();p=i.formatter.matchAll(n);if(!o||p[0]==o){if(p[0]){i.formatter.remove(p[0])}}else{i.formatter.apply(o)}i.undoManager.add();i.nodeChanged();return false}});i.onInit.add(function(){var o=0,n=i.getParam("style_formats");if(n){f(n,function(p){var q,r=0;f(p,function(){r++});if(r>1){q=p.name=p.name||"style_"+(o++);i.formatter.register(q,p);l.add(p.title,q)}else{l.add(p.title)}})}else{f(i.getParam("theme_advanced_styles","","hash"),function(r,q){var p;if(r){p="style_"+(o++);i.formatter.register(p,{inline:"span",classes:r,selector:"*"});l.add(k.editor.translate(q),p)}})}});if(l.getLength()==0){l.onPostRender.add(function(o,p){if(!l.NativeListBox){b.add(p.id+"_text","focus",k._importClasses,k);b.add(p.id+"_text","mousedown",k._importClasses,k);b.add(p.id+"_open","focus",k._importClasses,k);b.add(p.id+"_open","mousedown",k._importClasses,k)}else{b.add(p.id,"focus",k._importClasses,k)}})}return l},_createFontSelect:function(){var k,j=this,i=j.editor;k=i.controlManager.createListBox("fontselect",{title:"advanced.fontdefault",onselect:function(l){var m=k.items[k.selectedIndex];if(!l&&m){i.execCommand("FontName",false,m.value);return}i.execCommand("FontName",false,l);k.select(function(n){return l==n});if(m&&m.value==l){k.select(null)}return false}});if(k){f(i.getParam("theme_advanced_fonts",j.settings.theme_advanced_fonts,"hash"),function(m,l){k.add(i.translate(l),m,{style:m.indexOf("dings")==-1?"font-family:"+m:""})})}return k},_createFontSizeSelect:function(){var m=this,k=m.editor,n,l=0,j=[];n=k.controlManager.createListBox("fontsizeselect",{title:"advanced.font_size",onselect:function(i){var o=n.items[n.selectedIndex];if(!i&&o){o=o.value;if(o["class"]){k.formatter.toggle("fontsize_class",{value:o["class"]});k.undoManager.add();k.nodeChanged()}else{k.execCommand("FontSize",false,o.fontSize)}return}if(i["class"]){k.focus();k.undoManager.add();k.formatter.toggle("fontsize_class",{value:i["class"]});k.undoManager.add();k.nodeChanged()}else{k.execCommand("FontSize",false,i.fontSize)}n.select(function(p){return i==p});if(o&&(o.value.fontSize==i.fontSize||o.value["class"]&&o.value["class"]==i["class"])){n.select(null)}return false}});if(n){f(m.settings.theme_advanced_font_sizes,function(o,i){var p=o.fontSize;if(p>=1&&p<=7){p=m.sizes[parseInt(p)-1]+"pt"}n.add(i,o,{style:"font-size:"+p,"class":"mceFontSize"+(l++)+(" "+(o["class"]||""))})})}return n},_createBlockFormats:function(){var k,i={p:"advanced.paragraph",address:"advanced.address",pre:"advanced.pre",h1:"advanced.h1",h2:"advanced.h2",h3:"advanced.h3",h4:"advanced.h4",h5:"advanced.h5",h6:"advanced.h6",div:"advanced.div",blockquote:"advanced.blockquote",code:"advanced.code",dt:"advanced.dt",dd:"advanced.dd",samp:"advanced.samp"},j=this;k=j.editor.controlManager.createListBox("formatselect",{title:"advanced.block",onselect:function(l){j.editor.execCommand("FormatBlock",false,l);return false}});if(k){f(j.editor.getParam("theme_advanced_blockformats",j.settings.theme_advanced_blockformats,"hash"),function(m,l){k.add(j.editor.translate(l!=m?l:i[m]),m,{"class":"mce_formatPreview mce_"+m})})}return k},_createForeColorMenu:function(){var m,j=this,k=j.settings,l={},i;if(k.theme_advanced_more_colors){l.more_colors_func=function(){j._mceColorPicker(0,{color:m.value,func:function(n){m.setColor(n)}})}}if(i=k.theme_advanced_text_colors){l.colors=i}if(k.theme_advanced_default_foreground_color){l.default_color=k.theme_advanced_default_foreground_color}l.title="advanced.forecolor_desc";l.cmd="ForeColor";l.scope=this;m=j.editor.controlManager.createColorSplitButton("forecolor",l);return m},_createBackColorMenu:function(){var m,j=this,k=j.settings,l={},i;if(k.theme_advanced_more_colors){l.more_colors_func=function(){j._mceColorPicker(0,{color:m.value,func:function(n){m.setColor(n)}})}}if(i=k.theme_advanced_background_colors){l.colors=i}if(k.theme_advanced_default_background_color){l.default_color=k.theme_advanced_default_background_color}l.title="advanced.backcolor_desc";l.cmd="HiliteColor";l.scope=this;m=j.editor.controlManager.createColorSplitButton("backcolor",l);return m},renderUI:function(k){var m,l,q,v=this,r=v.editor,w=v.settings,u,j,i;if(r.settings){r.settings.aria_label=w.aria_label+r.getLang("advanced.help_shortcut")}m=j=d.create("span",{role:"application","aria-labelledby":r.id+"_voice",id:r.id+"_parent","class":"mceEditor "+r.settings.skin+"Skin"+(w.skin_variant?" "+r.settings.skin+"Skin"+v._ufirst(w.skin_variant):"")});d.add(m,"span",{"class":"mceVoiceLabel",style:"display:none;",id:r.id+"_voice"},w.aria_label);if(!d.boxModel){m=d.add(m,"div",{"class":"mceOldBoxModel"})}m=u=d.add(m,"table",{role:"presentation",id:r.id+"_tbl","class":"mceLayout",cellSpacing:0,cellPadding:0});m=q=d.add(m,"tbody");switch((w.theme_advanced_layout_manager||"").toLowerCase()){case"rowlayout":l=v._rowLayout(w,q,k);break;case"customlayout":l=r.execCallback("theme_advanced_custom_layout",w,q,k,j);break;default:l=v._simpleLayout(w,q,k,j)}m=k.targetNode;i=u.rows;d.addClass(i[0],"mceFirst");d.addClass(i[i.length-1],"mceLast");f(d.select("tr",q),function(o){d.addClass(o.firstChild,"mceFirst");d.addClass(o.childNodes[o.childNodes.length-1],"mceLast")});if(d.get(w.theme_advanced_toolbar_container)){d.get(w.theme_advanced_toolbar_container).appendChild(j)}else{d.insertAfter(j,m)}b.add(r.id+"_path_row","click",function(n){n=n.target;if(n.nodeName=="A"){v._sel(n.className.replace(/^.*mcePath_([0-9]+).*$/,"$1"));return b.cancel(n)}});if(!r.getParam("accessibility_focus")){b.add(d.add(j,"a",{href:"#"},"<!-- IE -->"),"focus",function(){tinyMCE.get(r.id).focus()})}if(w.theme_advanced_toolbar_location=="external"){k.deltaHeight=0}v.deltaHeight=k.deltaHeight;k.targetNode=null;r.onKeyDown.add(function(p,n){var s=121,o=122;if(n.altKey){if(n.keyCode===s){if(e.isWebKit){window.focus()}v.toolbarGroup.focus();return b.cancel(n)}else{if(n.keyCode===o){d.get(p.id+"_path_row").focus();return b.cancel(n)}}}});r.addShortcut("alt+0","","mceShortcuts",v);return{iframeContainer:l,editorContainer:r.id+"_parent",sizeContainer:u,deltaHeight:k.deltaHeight}},getInfo:function(){return{longname:"Advanced theme",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",version:e.majorVersion+"."+e.minorVersion}},resizeBy:function(i,j){var k=d.get(this.editor.id+"_ifr");this.resizeTo(k.clientWidth+i,k.clientHeight+j)},resizeTo:function(i,m,k){var j=this.editor,l=this.settings,n=d.get(j.id+"_tbl"),o=d.get(j.id+"_ifr");i=Math.max(l.theme_advanced_resizing_min_width||100,i);m=Math.max(l.theme_advanced_resizing_min_height||100,m);i=Math.min(l.theme_advanced_resizing_max_width||65535,i);m=Math.min(l.theme_advanced_resizing_max_height||65535,m);d.setStyle(n,"height","");d.setStyle(o,"height",m);if(l.theme_advanced_resize_horizontal){d.setStyle(n,"width","");d.setStyle(o,"width",i);if(i<n.clientWidth){i=n.clientWidth;d.setStyle(o,"width",n.clientWidth)}}if(k&&l.theme_advanced_resizing_use_cookie){a.setHash("TinyMCE_"+j.id+"_size",{cw:i,ch:m})}},destroy:function(){var i=this.editor.id;b.clear(i+"_resize");b.clear(i+"_path_row");b.clear(i+"_external_close")},_simpleLayout:function(y,r,k,i){var x=this,u=x.editor,v=y.theme_advanced_toolbar_location,m=y.theme_advanced_statusbar_location,l,j,q,w;if(y.readonly){l=d.add(r,"tr");l=j=d.add(l,"td",{"class":"mceIframeContainer"});return j}if(v=="top"){x._addToolbars(r,k)}if(v=="external"){l=w=d.create("div",{style:"position:relative"});l=d.add(l,"div",{id:u.id+"_external","class":"mceExternalToolbar"});d.add(l,"a",{id:u.id+"_external_close",href:"javascript:;","class":"mceExternalClose"});l=d.add(l,"table",{id:u.id+"_tblext",cellSpacing:0,cellPadding:0});q=d.add(l,"tbody");if(i.firstChild.className=="mceOldBoxModel"){i.firstChild.appendChild(w)}else{i.insertBefore(w,i.firstChild)}x._addToolbars(q,k);u.onMouseUp.add(function(){var o=d.get(u.id+"_external");d.show(o);d.hide(g);var n=b.add(u.id+"_external_close","click",function(){d.hide(u.id+"_external");b.remove(u.id+"_external_close","click",n)});d.show(o);d.setStyle(o,"top",0-d.getRect(u.id+"_tblext").h-1);d.hide(o);d.show(o);o.style.filter="";g=u.id+"_external";o=null})}if(m=="top"){x._addStatusBar(r,k)}if(!y.theme_advanced_toolbar_container){l=d.add(r,"tr");l=j=d.add(l,"td",{"class":"mceIframeContainer"})}if(v=="bottom"){x._addToolbars(r,k)}if(m=="bottom"){x._addStatusBar(r,k)}return j},_rowLayout:function(w,m,k){var v=this,p=v.editor,u,x,i=p.controlManager,l,j,r,q;u=w.theme_advanced_containers_default_class||"";x=w.theme_advanced_containers_default_align||"center";f(c(w.theme_advanced_containers||""),function(s,o){var n=w["theme_advanced_container_"+s]||"";switch(s.toLowerCase()){case"mceeditor":l=d.add(m,"tr");l=j=d.add(l,"td",{"class":"mceIframeContainer"});break;case"mceelementpath":v._addStatusBar(m,k);break;default:q=(w["theme_advanced_container_"+s+"_align"]||x).toLowerCase();q="mce"+v._ufirst(q);l=d.add(d.add(m,"tr"),"td",{"class":"mceToolbar "+(w["theme_advanced_container_"+s+"_class"]||u)+" "+q||x});r=i.createToolbar("toolbar"+o);v._addControls(n,r);d.setHTML(l,r.renderHTML());k.deltaHeight-=w.theme_advanced_row_height}});return j},_addControls:function(j,i){var k=this,l=k.settings,m,n=k.editor.controlManager;if(l.theme_advanced_disable&&!k._disabled){m={};f(c(l.theme_advanced_disable),function(o){m[o]=1});k._disabled=m}else{m=k._disabled}f(c(j),function(p){var o;if(m&&m[p]){return}if(p=="tablecontrols"){f(["table","|","row_props","cell_props","|","row_before","row_after","delete_row","|","col_before","col_after","delete_col","|","split_cells","merge_cells"],function(q){q=k.createControl(q,n);if(q){i.add(q)}});return}o=k.createControl(p,n);if(o){i.add(o)}})},_addToolbars:function(x,k){var A=this,p,m,r=A.editor,B=A.settings,z,j=r.controlManager,u,l,q=[],y,w;w=j.createToolbarGroup("toolbargroup",{name:r.getLang("advanced.toolbar"),tab_focus_toolbar:r.getParam("theme_advanced_tab_focus_toolbar")});A.toolbarGroup=w;y=B.theme_advanced_toolbar_align.toLowerCase();y="mce"+A._ufirst(y);l=d.add(d.add(x,"tr",{role:"presentation"}),"td",{"class":"mceToolbar "+y,role:"presentation"});for(p=1;(z=B["theme_advanced_buttons"+p]);p++){m=j.createToolbar("toolbar"+p,{"class":"mceToolbarRow"+p});if(B["theme_advanced_buttons"+p+"_add"]){z+=","+B["theme_advanced_buttons"+p+"_add"]}if(B["theme_advanced_buttons"+p+"_add_before"]){z=B["theme_advanced_buttons"+p+"_add_before"]+","+z}A._addControls(z,m);w.add(m);k.deltaHeight-=B.theme_advanced_row_height}q.push(w.renderHTML());q.push(d.createHTML("a",{href:"#",accesskey:"z",title:r.getLang("advanced.toolbar_focus"),onfocus:"tinyMCE.getInstanceById('"+r.id+"').focus();"},"<!-- IE -->"));d.setHTML(l,q.join(""))},_addStatusBar:function(m,j){var k,v=this,p=v.editor,w=v.settings,i,q,u,l;k=d.add(m,"tr");k=l=d.add(k,"td",{"class":"mceStatusbar"});k=d.add(k,"div",{id:p.id+"_path_row",role:"group","aria-labelledby":p.id+"_path_voice"});if(w.theme_advanced_path){d.add(k,"span",{id:p.id+"_path_voice"},p.translate("advanced.path"));d.add(k,"span",{},": ")}else{d.add(k,"span",{},"&#160;")}if(w.theme_advanced_resizing){d.add(l,"a",{id:p.id+"_resize",href:"javascript:;",onclick:"return false;","class":"mceResize",tabIndex:"-1"});if(w.theme_advanced_resizing_use_cookie){p.onPostRender.add(function(){var n=a.getHash("TinyMCE_"+p.id+"_size"),r=d.get(p.id+"_tbl");if(!n){return}v.resizeTo(n.cw,n.ch)})}p.onPostRender.add(function(){b.add(p.id+"_resize","click",function(n){n.preventDefault()});b.add(p.id+"_resize","mousedown",function(D){var t,r,s,o,C,z,A,F,n,E,x;function y(G){G.preventDefault();n=A+(G.screenX-C);E=F+(G.screenY-z);v.resizeTo(n,E)}function B(G){b.remove(d.doc,"mousemove",t);b.remove(p.getDoc(),"mousemove",r);b.remove(d.doc,"mouseup",s);b.remove(p.getDoc(),"mouseup",o);n=A+(G.screenX-C);E=F+(G.screenY-z);v.resizeTo(n,E,true)}D.preventDefault();C=D.screenX;z=D.screenY;x=d.get(v.editor.id+"_ifr");A=n=x.clientWidth;F=E=x.clientHeight;t=b.add(d.doc,"mousemove",y);r=b.add(p.getDoc(),"mousemove",y);s=b.add(d.doc,"mouseup",B);o=b.add(p.getDoc(),"mouseup",B)})})}j.deltaHeight-=21;k=m=null},_updateUndoStatus:function(j){var i=j.controlManager,k=j.undoManager;i.setDisabled("undo",!k.hasUndo()&&!k.typing);i.setDisabled("redo",!k.hasRedo())},_nodeChanged:function(m,r,D,q,E){var y=this,C,F=0,x,G,z=y.settings,w,k,u,B,l,j,i;e.each(y.stateControls,function(n){r.setActive(n,m.queryCommandState(y.controls[n][1]))});function o(p){var s,n=E.parents,t=p;if(typeof(p)=="string"){t=function(v){return v.nodeName==p}}for(s=0;s<n.length;s++){if(t(n[s])){return n[s]}}}r.setActive("visualaid",m.hasVisual);y._updateUndoStatus(m);r.setDisabled("outdent",!m.queryCommandState("Outdent"));C=o("A");if(G=r.get("link")){if(!C||!C.name){G.setDisabled(!C&&q);G.setActive(!!C)}}if(G=r.get("unlink")){G.setDisabled(!C&&q);G.setActive(!!C&&!C.name)}if(G=r.get("anchor")){G.setActive(!q&&!!C&&C.name)}C=o("IMG");if(G=r.get("image")){G.setActive(!q&&!!C&&D.className.indexOf("mceItem")==-1)}if(G=r.get("styleselect")){y._importClasses();j=[];f(G.items,function(n){j.push(n.value)});i=m.formatter.matchAll(j);G.select(i[0])}if(G=r.get("formatselect")){C=o(d.isBlock);if(C){G.select(C.nodeName.toLowerCase())}}o(function(p){if(p.nodeName==="SPAN"){if(!w&&p.className){w=p.className}}if(m.dom.is(p,z.theme_advanced_font_selector)){if(!k&&p.style.fontSize){k=p.style.fontSize}if(!u&&p.style.fontFamily){u=p.style.fontFamily.replace(/[\"\']+/g,"").replace(/^([^,]+).*/,"$1").toLowerCase()}if(!B&&p.style.color){B=p.style.color}if(!l&&p.style.backgroundColor){l=p.style.backgroundColor}}return false});if(G=r.get("fontselect")){G.select(function(n){return n.replace(/^([^,]+).*/,"$1").toLowerCase()==u})}if(G=r.get("fontsizeselect")){if(z.theme_advanced_runtime_fontsize&&!k&&!w){k=m.dom.getStyle(D,"fontSize",true)}G.select(function(n){if(n.fontSize&&n.fontSize===k){return true}if(n["class"]&&n["class"]===w){return true}})}if(z.theme_advanced_show_current_color){function A(p,n){if(G=r.get(p)){if(!n){n=G.settings.default_color}if(n!==G.value){G.displayColor(n)}}}A("forecolor",B);A("backcolor",l)}if(z.theme_advanced_show_current_color){function A(p,n){if(G=r.get(p)){if(!n){n=G.settings.default_color}if(n!==G.value){G.displayColor(n)}}}A("forecolor",B);A("backcolor",l)}if(z.theme_advanced_path&&z.theme_advanced_statusbar_location){C=d.get(m.id+"_path")||d.add(m.id+"_path_row","span",{id:m.id+"_path"});if(y.statusKeyboardNavigation){y.statusKeyboardNavigation.destroy();y.statusKeyboardNavigation=null}d.setHTML(C,"");o(function(H){var p=H.nodeName.toLowerCase(),s,v,t="";if(H.nodeType!=1||p==="br"||H.getAttribute("data-mce-bogus")||d.hasClass(H,"mceItemHidden")||d.hasClass(H,"mceItemRemoved")){return}if(e.isIE&&H.scopeName!=="HTML"){p=H.scopeName+":"+p}p=p.replace(/mce\:/g,"");switch(p){case"b":p="strong";break;case"i":p="em";break;case"img":if(x=d.getAttrib(H,"src")){t+="src: "+x+" "}break;case"a":if(x=d.getAttrib(H,"name")){t+="name: "+x+" ";p+="#"+x}if(x=d.getAttrib(H,"href")){t+="href: "+x+" "}break;case"font":if(x=d.getAttrib(H,"face")){t+="font: "+x+" "}if(x=d.getAttrib(H,"size")){t+="size: "+x+" "}if(x=d.getAttrib(H,"color")){t+="color: "+x+" "}break;case"span":if(x=d.getAttrib(H,"style")){t+="style: "+x+" "}break}if(x=d.getAttrib(H,"id")){t+="id: "+x+" "}if(x=H.className){x=x.replace(/\b\s*(webkit|mce|Apple-)\w+\s*\b/g,"");if(x){t+="class: "+x+" ";if(d.isBlock(H)||p=="img"||p=="span"){p+="."+x}}}p=p.replace(/(html:)/g,"");p={name:p,node:H,title:t};y.onResolveName.dispatch(y,p);t=p.title;p=p.name;v=d.create("a",{href:"javascript:;",role:"button",onmousedown:"return false;",title:t,"class":"mcePath_"+(F++)},p);if(C.hasChildNodes()){C.insertBefore(d.create("span",{"aria-hidden":"true"},"\u00a0\u00bb "),C.firstChild);C.insertBefore(v,C.firstChild)}else{C.appendChild(v)}},m.getBody());if(d.select("a",C).length>0){y.statusKeyboardNavigation=new e.ui.KeyboardNavigation({root:m.id+"_path_row",items:d.select("a",C),excludeFromTabOrder:true,onCancel:function(){m.focus()}},d)}}},_sel:function(i){this.editor.execCommand("mceSelectNodeDepth",false,i)},_mceInsertAnchor:function(k,j){var i=this.editor;i.windowManager.open({url:this.url+"/anchor.htm",width:320+parseInt(i.getLang("advanced.anchor_delta_width",0)),height:90+parseInt(i.getLang("advanced.anchor_delta_height",0)),inline:true},{theme_url:this.url})},_mceCharMap:function(){var i=this.editor;i.windowManager.open({url:this.url+"/charmap.htm",width:550+parseInt(i.getLang("advanced.charmap_delta_width",0)),height:265+parseInt(i.getLang("advanced.charmap_delta_height",0)),inline:true},{theme_url:this.url})},_mceHelp:function(){var i=this.editor;i.windowManager.open({url:this.url+"/about.htm",width:480,height:380,inline:true},{theme_url:this.url})},_mceShortcuts:function(){var i=this.editor;i.windowManager.open({url:this.url+"/shortcuts.htm",width:480,height:380,inline:true},{theme_url:this.url})},_mceColorPicker:function(k,j){var i=this.editor;j=j||{};i.windowManager.open({url:this.url+"/color_picker.htm",width:375+parseInt(i.getLang("advanced.colorpicker_delta_width",0)),height:250+parseInt(i.getLang("advanced.colorpicker_delta_height",0)),close_previous:false,inline:true},{input_color:j.color,func:j.func,theme_url:this.url})},_mceCodeEditor:function(j,k){var i=this.editor;i.windowManager.open({url:this.url+"/source_editor.htm",width:parseInt(i.getParam("theme_advanced_source_editor_width",720)),height:parseInt(i.getParam("theme_advanced_source_editor_height",580)),inline:true,resizable:true,maximizable:true},{theme_url:this.url})},_mceImage:function(j,k){var i=this.editor;if(i.dom.getAttrib(i.selection.getNode(),"class").indexOf("mceItem")!=-1){return}i.windowManager.open({url:this.url+"/image.htm",width:355+parseInt(i.getLang("advanced.image_delta_width",0)),height:275+parseInt(i.getLang("advanced.image_delta_height",0)),inline:true},{theme_url:this.url})},_mceLink:function(j,k){var i=this.editor;i.windowManager.open({url:this.url+"/link.htm",width:310+parseInt(i.getLang("advanced.link_delta_width",0)),height:200+parseInt(i.getLang("advanced.link_delta_height",0)),inline:true},{theme_url:this.url})},_mceNewDocument:function(){var i=this.editor;i.windowManager.confirm("advanced.newdocument",function(j){if(j){i.execCommand("mceSetContent",false,"")}})},_mceForeColor:function(){var i=this;this._mceColorPicker(0,{color:i.fgColor,func:function(j){i.fgColor=j;i.editor.execCommand("ForeColor",false,j)}})},_mceBackColor:function(){var i=this;this._mceColorPicker(0,{color:i.bgColor,func:function(j){i.bgColor=j;i.editor.execCommand("HiliteColor",false,j)}})},_ufirst:function(i){return i.substring(0,1).toUpperCase()+i.substring(1)}});e.ThemeManager.add("advanced",e.themes.AdvancedTheme)}(tinymce));
\ No newline at end of file
+(function(h){var i=h.DOM,g=h.dom.Event,c=h.extend,f=h.each,a=h.util.Cookie,e,d=h.explode;function b(p,m){var k,l,o=p.dom,j="",n,r;previewStyles=p.settings.preview_styles;if(previewStyles===false){return""}if(!previewStyles){previewStyles="font-family font-size font-weight text-decoration text-transform color background-color"}function q(s){return s.replace(/%(\w+)/g,"")}k=m.block||m.inline||"span";l=o.create(k);f(m.styles,function(t,s){t=q(t);if(t){o.setStyle(l,s,t)}});f(m.attributes,function(t,s){t=q(t);if(t){o.setAttrib(l,s,t)}});f(m.classes,function(s){s=q(s);if(!o.hasClass(l,s)){o.addClass(l,s)}});o.setStyles(l,{position:"absolute",left:-65535});p.getBody().appendChild(l);n=o.getStyle(p.getBody(),"fontSize",true);n=/px$/.test(n)?parseInt(n,10):0;f(previewStyles.split(" "),function(s){var t=o.getStyle(l,s,true);if(s=="background-color"&&/transparent|rgba\s*\([^)]+,\s*0\)/.test(t)){t=o.getStyle(p.getBody(),s,true);if(o.toHex(t).toLowerCase()=="#ffffff"){return}}if(s=="font-size"){if(/em|%$/.test(t)){if(n===0){return}t=parseFloat(t,10)/(/%$/.test(t)?100:1);t=(t*n)+"px"}}j+=s+":"+t+";"});o.remove(l);return j}h.ThemeManager.requireLangPack("advanced");h.create("tinymce.themes.AdvancedTheme",{sizes:[8,10,12,14,18,24,36],controls:{bold:["bold_desc","Bold"],italic:["italic_desc","Italic"],underline:["underline_desc","Underline"],strikethrough:["striketrough_desc","Strikethrough"],justifyleft:["justifyleft_desc","JustifyLeft"],justifycenter:["justifycenter_desc","JustifyCenter"],justifyright:["justifyright_desc","JustifyRight"],justifyfull:["justifyfull_desc","JustifyFull"],bullist:["bullist_desc","InsertUnorderedList"],numlist:["numlist_desc","InsertOrderedList"],outdent:["outdent_desc","Outdent"],indent:["indent_desc","Indent"],cut:["cut_desc","Cut"],copy:["copy_desc","Copy"],paste:["paste_desc","Paste"],undo:["undo_desc","Undo"],redo:["redo_desc","Redo"],link:["link_desc","mceLink"],unlink:["unlink_desc","unlink"],image:["image_desc","mceImage"],cleanup:["cleanup_desc","mceCleanup"],help:["help_desc","mceHelp"],code:["code_desc","mceCodeEditor"],hr:["hr_desc","InsertHorizontalRule"],removeformat:["removeformat_desc","RemoveFormat"],sub:["sub_desc","subscript"],sup:["sup_desc","superscript"],forecolor:["forecolor_desc","ForeColor"],forecolorpicker:["forecolor_desc","mceForeColor"],backcolor:["backcolor_desc","HiliteColor"],backcolorpicker:["backcolor_desc","mceBackColor"],charmap:["charmap_desc","mceCharMap"],visualaid:["visualaid_desc","mceToggleVisualAid"],anchor:["anchor_desc","mceInsertAnchor"],newdocument:["newdocument_desc","mceNewDocument"],blockquote:["blockquote_desc","mceBlockQuote"]},stateControls:["bold","italic","underline","strikethrough","bullist","numlist","justifyleft","justifycenter","justifyright","justifyfull","sub","sup","blockquote"],init:function(k,l){var m=this,n,j,p;m.editor=k;m.url=l;m.onResolveName=new h.util.Dispatcher(this);n=k.settings;k.forcedHighContrastMode=k.settings.detect_highcontrast&&m._isHighContrast();k.settings.skin=k.forcedHighContrastMode?"highcontrast":k.settings.skin;if(!n.theme_advanced_buttons1){n=c({theme_advanced_buttons1:"bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull,|,styleselect,formatselect",theme_advanced_buttons2:"bullist,numlist,|,outdent,indent,|,undo,redo,|,link,unlink,anchor,image,cleanup,help,code",theme_advanced_buttons3:"hr,removeformat,visualaid,|,sub,sup,|,charmap"},n)}m.settings=n=c({theme_advanced_path:true,theme_advanced_toolbar_location:"top",theme_advanced_blockformats:"p,address,pre,h1,h2,h3,h4,h5,h6",theme_advanced_toolbar_align:"left",theme_advanced_statusbar_location:"bottom",theme_advanced_fonts:"Andale Mono=andale mono,times;Arial=arial,helvetica,sans-serif;Arial Black=arial black,avant garde;Book Antiqua=book antiqua,palatino;Comic Sans MS=comic sans ms,sans-serif;Courier New=courier new,courier;Georgia=georgia,palatino;Helvetica=helvetica;Impact=impact,chicago;Symbol=symbol;Tahoma=tahoma,arial,helvetica,sans-serif;Terminal=terminal,monaco;Times New Roman=times new roman,times;Trebuchet MS=trebuchet ms,geneva;Verdana=verdana,geneva;Webdings=webdings;Wingdings=wingdings,zapf dingbats",theme_advanced_more_colors:1,theme_advanced_row_height:23,theme_advanced_resize_horizontal:1,theme_advanced_resizing_use_cookie:1,theme_advanced_font_sizes:"1,2,3,4,5,6,7",theme_advanced_font_selector:"span",theme_advanced_show_current_color:0,readonly:k.settings.readonly},n);if(!n.font_size_style_values){n.font_size_style_values="8pt,10pt,12pt,14pt,18pt,24pt,36pt"}if(h.is(n.theme_advanced_font_sizes,"string")){n.font_size_style_values=h.explode(n.font_size_style_values);n.font_size_classes=h.explode(n.font_size_classes||"");p={};k.settings.theme_advanced_font_sizes=n.theme_advanced_font_sizes;f(k.getParam("theme_advanced_font_sizes","","hash"),function(r,q){var o;if(q==r&&r>=1&&r<=7){q=r+" ("+m.sizes[r-1]+"pt)";o=n.font_size_classes[r-1];r=n.font_size_style_values[r-1]||(m.sizes[r-1]+"pt")}if(/^\s*\./.test(r)){o=r.replace(/\./g,"")}p[q]=o?{"class":o}:{fontSize:r}});n.theme_advanced_font_sizes=p}if((j=n.theme_advanced_path_location)&&j!="none"){n.theme_advanced_statusbar_location=n.theme_advanced_path_location}if(n.theme_advanced_statusbar_location=="none"){n.theme_advanced_statusbar_location=0}if(k.settings.content_css!==false){k.contentCSS.push(k.baseURI.toAbsolute(l+"/skins/"+k.settings.skin+"/content.css"))}k.onInit.add(function(){if(!k.settings.readonly){k.onNodeChange.add(m._nodeChanged,m);k.onKeyUp.add(m._updateUndoStatus,m);k.onMouseUp.add(m._updateUndoStatus,m);k.dom.bind(k.dom.getRoot(),"dragend",function(){m._updateUndoStatus(k)})}});k.onSetProgressState.add(function(r,o,s){var t,u=r.id,q;if(o){m.progressTimer=setTimeout(function(){t=r.getContainer();t=t.insertBefore(i.create("DIV",{style:"position:relative"}),t.firstChild);q=i.get(r.id+"_tbl");i.add(t,"div",{id:u+"_blocker","class":"mceBlocker",style:{width:q.clientWidth+2,height:q.clientHeight+2}});i.add(t,"div",{id:u+"_progress","class":"mceProgress",style:{left:q.clientWidth/2,top:q.clientHeight/2}})},s||0)}else{i.remove(u+"_blocker");i.remove(u+"_progress");clearTimeout(m.progressTimer)}});i.loadCSS(n.editor_css?k.documentBaseURI.toAbsolute(n.editor_css):l+"/skins/"+k.settings.skin+"/ui.css");if(n.skin_variant){i.loadCSS(l+"/skins/"+k.settings.skin+"/ui_"+n.skin_variant+".css")}},_isHighContrast:function(){var j,k=i.add(i.getRoot(),"div",{style:"background-color: rgb(171,239,86);"});j=(i.getStyle(k,"background-color",true)+"").toLowerCase().replace(/ /g,"");i.remove(k);return j!="rgb(171,239,86)"&&j!="#abef56"},createControl:function(m,j){var k,l;if(l=j.createControl(m)){return l}switch(m){case"styleselect":return this._createStyleSelect();case"formatselect":return this._createBlockFormats();case"fontselect":return this._createFontSelect();case"fontsizeselect":return this._createFontSizeSelect();case"forecolor":return this._createForeColorMenu();case"backcolor":return this._createBackColorMenu()}if((k=this.controls[m])){return j.createButton(m,{title:"advanced."+k[0],cmd:k[1],ui:k[2],value:k[3]})}},execCommand:function(l,k,m){var j=this["_"+l];if(j){j.call(this,k,m);return true}return false},_importClasses:function(l){var j=this.editor,k=j.controlManager.get("styleselect");if(k.getLength()==0){f(j.dom.getClasses(),function(q,m){var p="style_"+m,n;n={inline:"span",attributes:{"class":q["class"]},selector:"*"};j.formatter.register(p,n);k.add(q["class"],p,{style:function(){return b(j,n)}})})}},_createStyleSelect:function(o){var l=this,j=l.editor,k=j.controlManager,m;m=k.createListBox("styleselect",{title:"advanced.style_select",onselect:function(q){var r,n=[],p;f(m.items,function(s){n.push(s.value)});j.focus();j.undoManager.add();r=j.formatter.matchAll(n);h.each(r,function(s){if(!q||s==q){if(s){j.formatter.remove(s)}p=true}});if(!p){j.formatter.apply(q)}j.undoManager.add();j.nodeChanged();return false}});j.onPreInit.add(function(){var p=0,n=j.getParam("style_formats");if(n){f(n,function(q){var r,s=0;f(q,function(){s++});if(s>1){r=q.name=q.name||"style_"+(p++);j.formatter.register(r,q);m.add(q.title,r,{style:function(){return b(j,q)}})}else{m.add(q.title)}})}else{f(j.getParam("theme_advanced_styles","","hash"),function(t,s){var r,q;if(t){r="style_"+(p++);q={inline:"span",classes:t,selector:"*"};j.formatter.register(r,q);m.add(l.editor.translate(s),r,{style:function(){return b(j,q)}})}})}});if(m.getLength()==0){m.onPostRender.add(function(p,q){if(!m.NativeListBox){g.add(q.id+"_text","focus",l._importClasses,l);g.add(q.id+"_text","mousedown",l._importClasses,l);g.add(q.id+"_open","focus",l._importClasses,l);g.add(q.id+"_open","mousedown",l._importClasses,l)}else{g.add(q.id,"focus",l._importClasses,l)}})}return m},_createFontSelect:function(){var l,k=this,j=k.editor;l=j.controlManager.createListBox("fontselect",{title:"advanced.fontdefault",onselect:function(m){var n=l.items[l.selectedIndex];if(!m&&n){j.execCommand("FontName",false,n.value);return}j.execCommand("FontName",false,m);l.select(function(o){return m==o});if(n&&n.value==m){l.select(null)}return false}});if(l){f(j.getParam("theme_advanced_fonts",k.settings.theme_advanced_fonts,"hash"),function(n,m){l.add(j.translate(m),n,{style:n.indexOf("dings")==-1?"font-family:"+n:""})})}return l},_createFontSizeSelect:function(){var m=this,k=m.editor,n,l=0,j=[];n=k.controlManager.createListBox("fontsizeselect",{title:"advanced.font_size",onselect:function(o){var p=n.items[n.selectedIndex];if(!o&&p){p=p.value;if(p["class"]){k.formatter.toggle("fontsize_class",{value:p["class"]});k.undoManager.add();k.nodeChanged()}else{k.execCommand("FontSize",false,p.fontSize)}return}if(o["class"]){k.focus();k.undoManager.add();k.formatter.toggle("fontsize_class",{value:o["class"]});k.undoManager.add();k.nodeChanged()}else{k.execCommand("FontSize",false,o.fontSize)}n.select(function(q){return o==q});if(p&&(p.value.fontSize==o.fontSize||p.value["class"]&&p.value["class"]==o["class"])){n.select(null)}return false}});if(n){f(m.settings.theme_advanced_font_sizes,function(p,o){var q=p.fontSize;if(q>=1&&q<=7){q=m.sizes[parseInt(q)-1]+"pt"}n.add(o,p,{style:"font-size:"+q,"class":"mceFontSize"+(l++)+(" "+(p["class"]||""))})})}return n},_createBlockFormats:function(){var l,j={p:"advanced.paragraph",address:"advanced.address",pre:"advanced.pre",h1:"advanced.h1",h2:"advanced.h2",h3:"advanced.h3",h4:"advanced.h4",h5:"advanced.h5",h6:"advanced.h6",div:"advanced.div",blockquote:"advanced.blockquote",code:"advanced.code",dt:"advanced.dt",dd:"advanced.dd",samp:"advanced.samp"},k=this;l=k.editor.controlManager.createListBox("formatselect",{title:"advanced.block",onselect:function(m){k.editor.execCommand("FormatBlock",false,m);return false}});if(l){f(k.editor.getParam("theme_advanced_blockformats",k.settings.theme_advanced_blockformats,"hash"),function(n,m){l.add(k.editor.translate(m!=n?m:j[n]),n,{"class":"mce_formatPreview mce_"+n,style:function(){return b(k.editor,{block:n})}})})}return l},_createForeColorMenu:function(){var n,k=this,l=k.settings,m={},j;if(l.theme_advanced_more_colors){m.more_colors_func=function(){k._mceColorPicker(0,{color:n.value,func:function(o){n.setColor(o)}})}}if(j=l.theme_advanced_text_colors){m.colors=j}if(l.theme_advanced_default_foreground_color){m.default_color=l.theme_advanced_default_foreground_color}m.title="advanced.forecolor_desc";m.cmd="ForeColor";m.scope=this;n=k.editor.controlManager.createColorSplitButton("forecolor",m);return n},_createBackColorMenu:function(){var n,k=this,l=k.settings,m={},j;if(l.theme_advanced_more_colors){m.more_colors_func=function(){k._mceColorPicker(0,{color:n.value,func:function(o){n.setColor(o)}})}}if(j=l.theme_advanced_background_colors){m.colors=j}if(l.theme_advanced_default_background_color){m.default_color=l.theme_advanced_default_background_color}m.title="advanced.backcolor_desc";m.cmd="HiliteColor";m.scope=this;n=k.editor.controlManager.createColorSplitButton("backcolor",m);return n},renderUI:function(l){var q,m,r,w=this,u=w.editor,x=w.settings,v,k,j;if(u.settings){u.settings.aria_label=x.aria_label+u.getLang("advanced.help_shortcut")}q=k=i.create("span",{role:"application","aria-labelledby":u.id+"_voice",id:u.id+"_parent","class":"mceEditor "+u.settings.skin+"Skin"+(x.skin_variant?" "+u.settings.skin+"Skin"+w._ufirst(x.skin_variant):"")+(u.settings.directionality=="rtl"?" mceRtl":"")});i.add(q,"span",{"class":"mceVoiceLabel",style:"display:none;",id:u.id+"_voice"},x.aria_label);if(!i.boxModel){q=i.add(q,"div",{"class":"mceOldBoxModel"})}q=v=i.add(q,"table",{role:"presentation",id:u.id+"_tbl","class":"mceLayout",cellSpacing:0,cellPadding:0});q=r=i.add(q,"tbody");switch((x.theme_advanced_layout_manager||"").toLowerCase()){case"rowlayout":m=w._rowLayout(x,r,l);break;case"customlayout":m=u.execCallback("theme_advanced_custom_layout",x,r,l,k);break;default:m=w._simpleLayout(x,r,l,k)}q=l.targetNode;j=v.rows;i.addClass(j[0],"mceFirst");i.addClass(j[j.length-1],"mceLast");f(i.select("tr",r),function(o){i.addClass(o.firstChild,"mceFirst");i.addClass(o.childNodes[o.childNodes.length-1],"mceLast")});if(i.get(x.theme_advanced_toolbar_container)){i.get(x.theme_advanced_toolbar_container).appendChild(k)}else{i.insertAfter(k,q)}g.add(u.id+"_path_row","click",function(n){n=n.target;if(n.nodeName=="A"){w._sel(n.className.replace(/^.*mcePath_([0-9]+).*$/,"$1"));return false}});if(!u.getParam("accessibility_focus")){g.add(i.add(k,"a",{href:"#"},"<!-- IE -->"),"focus",function(){tinyMCE.get(u.id).focus()})}if(x.theme_advanced_toolbar_location=="external"){l.deltaHeight=0}w.deltaHeight=l.deltaHeight;l.targetNode=null;u.onKeyDown.add(function(p,n){var s=121,o=122;if(n.altKey){if(n.keyCode===s){if(h.isWebKit){window.focus()}w.toolbarGroup.focus();return g.cancel(n)}else{if(n.keyCode===o){i.get(p.id+"_path_row").focus();return g.cancel(n)}}}});u.addShortcut("alt+0","","mceShortcuts",w);return{iframeContainer:m,editorContainer:u.id+"_parent",sizeContainer:v,deltaHeight:l.deltaHeight}},getInfo:function(){return{longname:"Advanced theme",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",version:h.majorVersion+"."+h.minorVersion}},resizeBy:function(j,k){var l=i.get(this.editor.id+"_ifr");this.resizeTo(l.clientWidth+j,l.clientHeight+k)},resizeTo:function(j,n,l){var k=this.editor,m=this.settings,o=i.get(k.id+"_tbl"),p=i.get(k.id+"_ifr");j=Math.max(m.theme_advanced_resizing_min_width||100,j);n=Math.max(m.theme_advanced_resizing_min_height||100,n);j=Math.min(m.theme_advanced_resizing_max_width||65535,j);n=Math.min(m.theme_advanced_resizing_max_height||65535,n);i.setStyle(o,"height","");i.setStyle(p,"height",n);if(m.theme_advanced_resize_horizontal){i.setStyle(o,"width","");i.setStyle(p,"width",j);if(j<o.clientWidth){j=o.clientWidth;i.setStyle(p,"width",o.clientWidth)}}if(l&&m.theme_advanced_resizing_use_cookie){a.setHash("TinyMCE_"+k.id+"_size",{cw:j,ch:n})}},destroy:function(){var j=this.editor.id;g.clear(j+"_resize");g.clear(j+"_path_row");g.clear(j+"_external_close")},_simpleLayout:function(z,u,l,j){var y=this,v=y.editor,w=z.theme_advanced_toolbar_location,q=z.theme_advanced_statusbar_location,m,k,r,x;if(z.readonly){m=i.add(u,"tr");m=k=i.add(m,"td",{"class":"mceIframeContainer"});return k}if(w=="top"){y._addToolbars(u,l)}if(w=="external"){m=x=i.create("div",{style:"position:relative"});m=i.add(m,"div",{id:v.id+"_external","class":"mceExternalToolbar"});i.add(m,"a",{id:v.id+"_external_close",href:"javascript:;","class":"mceExternalClose"});m=i.add(m,"table",{id:v.id+"_tblext",cellSpacing:0,cellPadding:0});r=i.add(m,"tbody");if(j.firstChild.className=="mceOldBoxModel"){j.firstChild.appendChild(x)}else{j.insertBefore(x,j.firstChild)}y._addToolbars(r,l);v.onMouseUp.add(function(){var o=i.get(v.id+"_external");i.show(o);i.hide(e);var n=g.add(v.id+"_external_close","click",function(){i.hide(v.id+"_external");g.remove(v.id+"_external_close","click",n);return false});i.show(o);i.setStyle(o,"top",0-i.getRect(v.id+"_tblext").h-1);i.hide(o);i.show(o);o.style.filter="";e=v.id+"_external";o=null})}if(q=="top"){y._addStatusBar(u,l)}if(!z.theme_advanced_toolbar_container){m=i.add(u,"tr");m=k=i.add(m,"td",{"class":"mceIframeContainer"})}if(w=="bottom"){y._addToolbars(u,l)}if(q=="bottom"){y._addStatusBar(u,l)}return k},_rowLayout:function(x,p,l){var w=this,q=w.editor,v,y,j=q.controlManager,m,k,u,r;v=x.theme_advanced_containers_default_class||"";y=x.theme_advanced_containers_default_align||"center";f(d(x.theme_advanced_containers||""),function(s,o){var n=x["theme_advanced_container_"+s]||"";switch(s.toLowerCase()){case"mceeditor":m=i.add(p,"tr");m=k=i.add(m,"td",{"class":"mceIframeContainer"});break;case"mceelementpath":w._addStatusBar(p,l);break;default:r=(x["theme_advanced_container_"+s+"_align"]||y).toLowerCase();r="mce"+w._ufirst(r);m=i.add(i.add(p,"tr"),"td",{"class":"mceToolbar "+(x["theme_advanced_container_"+s+"_class"]||v)+" "+r||y});u=j.createToolbar("toolbar"+o);w._addControls(n,u);i.setHTML(m,u.renderHTML());l.deltaHeight-=x.theme_advanced_row_height}});return k},_addControls:function(k,j){var l=this,m=l.settings,n,o=l.editor.controlManager;if(m.theme_advanced_disable&&!l._disabled){n={};f(d(m.theme_advanced_disable),function(p){n[p]=1});l._disabled=n}else{n=l._disabled}f(d(k),function(q){var p;if(n&&n[q]){return}if(q=="tablecontrols"){f(["table","|","row_props","cell_props","|","row_before","row_after","delete_row","|","col_before","col_after","delete_col","|","split_cells","merge_cells"],function(r){r=l.createControl(r,o);if(r){j.add(r)}});return}p=l.createControl(q,o);if(p){j.add(p)}})},_addToolbars:function(y,k){var B=this,q,p,u=B.editor,C=B.settings,A,j=u.controlManager,w,l,r=[],z,x,m=false;x=j.createToolbarGroup("toolbargroup",{name:u.getLang("advanced.toolbar"),tab_focus_toolbar:u.getParam("theme_advanced_tab_focus_toolbar")});B.toolbarGroup=x;z=C.theme_advanced_toolbar_align.toLowerCase();z="mce"+B._ufirst(z);l=i.add(i.add(y,"tr",{role:"presentation"}),"td",{"class":"mceToolbar "+z,role:"toolbar"});for(q=1;(A=C["theme_advanced_buttons"+q]);q++){m=true;p=j.createToolbar("toolbar"+q,{"class":"mceToolbarRow"+q});if(C["theme_advanced_buttons"+q+"_add"]){A+=","+C["theme_advanced_buttons"+q+"_add"]}if(C["theme_advanced_buttons"+q+"_add_before"]){A=C["theme_advanced_buttons"+q+"_add_before"]+","+A}B._addControls(A,p);x.add(p);k.deltaHeight-=C.theme_advanced_row_height}if(!m){k.deltaHeight-=C.theme_advanced_row_height}r.push(x.renderHTML());r.push(i.createHTML("a",{href:"#",accesskey:"z",title:u.getLang("advanced.toolbar_focus"),onfocus:"tinyMCE.getInstanceById('"+u.id+"').focus();"},"<!-- IE -->"));i.setHTML(l,r.join(""))},_addStatusBar:function(p,k){var l,w=this,q=w.editor,x=w.settings,j,u,v,m;l=i.add(p,"tr");l=m=i.add(l,"td",{"class":"mceStatusbar"});l=i.add(l,"div",{id:q.id+"_path_row",role:"group","aria-labelledby":q.id+"_path_voice"});if(x.theme_advanced_path){i.add(l,"span",{id:q.id+"_path_voice"},q.translate("advanced.path"));i.add(l,"span",{},": ")}else{i.add(l,"span",{},"&#160;")}if(x.theme_advanced_resizing){i.add(m,"a",{id:q.id+"_resize",href:"javascript:;",onclick:"return false;","class":"mceResize",tabIndex:"-1"});if(x.theme_advanced_resizing_use_cookie){q.onPostRender.add(function(){var n=a.getHash("TinyMCE_"+q.id+"_size"),r=i.get(q.id+"_tbl");if(!n){return}w.resizeTo(n.cw,n.ch)})}q.onPostRender.add(function(){g.add(q.id+"_resize","click",function(n){n.preventDefault()});g.add(q.id+"_resize","mousedown",function(E){var t,r,s,o,D,A,B,G,n,F,y;function z(H){H.preventDefault();n=B+(H.screenX-D);F=G+(H.screenY-A);w.resizeTo(n,F)}function C(H){g.remove(i.doc,"mousemove",t);g.remove(q.getDoc(),"mousemove",r);g.remove(i.doc,"mouseup",s);g.remove(q.getDoc(),"mouseup",o);n=B+(H.screenX-D);F=G+(H.screenY-A);w.resizeTo(n,F,true);q.nodeChanged()}E.preventDefault();D=E.screenX;A=E.screenY;y=i.get(w.editor.id+"_ifr");B=n=y.clientWidth;G=F=y.clientHeight;t=g.add(i.doc,"mousemove",z);r=g.add(q.getDoc(),"mousemove",z);s=g.add(i.doc,"mouseup",C);o=g.add(q.getDoc(),"mouseup",C)})})}k.deltaHeight-=21;l=p=null},_updateUndoStatus:function(k){var j=k.controlManager,l=k.undoManager;j.setDisabled("undo",!l.hasUndo()&&!l.typing);j.setDisabled("redo",!l.hasRedo())},_nodeChanged:function(o,u,E,r,F){var z=this,D,G=0,y,H,A=z.settings,x,l,w,C,m,k,j;h.each(z.stateControls,function(n){u.setActive(n,o.queryCommandState(z.controls[n][1]))});function q(p){var s,n=F.parents,t=p;if(typeof(p)=="string"){t=function(v){return v.nodeName==p}}for(s=0;s<n.length;s++){if(t(n[s])){return n[s]}}}u.setActive("visualaid",o.hasVisual);z._updateUndoStatus(o);u.setDisabled("outdent",!o.queryCommandState("Outdent"));D=q("A");if(H=u.get("link")){H.setDisabled((!D&&r)||(D&&!D.href));H.setActive(!!D&&(!D.name&&!D.id))}if(H=u.get("unlink")){H.setDisabled(!D&&r);H.setActive(!!D&&!D.name&&!D.id)}if(H=u.get("anchor")){H.setActive(!r&&!!D&&(D.name||(D.id&&!D.href)))}D=q("IMG");if(H=u.get("image")){H.setActive(!r&&!!D&&E.className.indexOf("mceItem")==-1)}if(H=u.get("styleselect")){z._importClasses();k=[];f(H.items,function(n){k.push(n.value)});j=o.formatter.matchAll(k);H.select(j[0]);h.each(j,function(p,n){if(n>0){H.mark(p)}})}if(H=u.get("formatselect")){D=q(o.dom.isBlock);if(D){H.select(D.nodeName.toLowerCase())}}q(function(p){if(p.nodeName==="SPAN"){if(!x&&p.className){x=p.className}}if(o.dom.is(p,A.theme_advanced_font_selector)){if(!l&&p.style.fontSize){l=p.style.fontSize}if(!w&&p.style.fontFamily){w=p.style.fontFamily.replace(/[\"\']+/g,"").replace(/^([^,]+).*/,"$1").toLowerCase()}if(!C&&p.style.color){C=p.style.color}if(!m&&p.style.backgroundColor){m=p.style.backgroundColor}}return false});if(H=u.get("fontselect")){H.select(function(n){return n.replace(/^([^,]+).*/,"$1").toLowerCase()==w})}if(H=u.get("fontsizeselect")){if(A.theme_advanced_runtime_fontsize&&!l&&!x){l=o.dom.getStyle(E,"fontSize",true)}H.select(function(n){if(n.fontSize&&n.fontSize===l){return true}if(n["class"]&&n["class"]===x){return true}})}if(A.theme_advanced_show_current_color){function B(p,n){if(H=u.get(p)){if(!n){n=H.settings.default_color}if(n!==H.value){H.displayColor(n)}}}B("forecolor",C);B("backcolor",m)}if(A.theme_advanced_show_current_color){function B(p,n){if(H=u.get(p)){if(!n){n=H.settings.default_color}if(n!==H.value){H.displayColor(n)}}}B("forecolor",C);B("backcolor",m)}if(A.theme_advanced_path&&A.theme_advanced_statusbar_location){D=i.get(o.id+"_path")||i.add(o.id+"_path_row","span",{id:o.id+"_path"});if(z.statusKeyboardNavigation){z.statusKeyboardNavigation.destroy();z.statusKeyboardNavigation=null}i.setHTML(D,"");q(function(I){var p=I.nodeName.toLowerCase(),s,v,t="";if(I.nodeType!=1||p==="br"||I.getAttribute("data-mce-bogus")||i.hasClass(I,"mceItemHidden")||i.hasClass(I,"mceItemRemoved")){return}if(h.isIE&&I.scopeName!=="HTML"&&I.scopeName){p=I.scopeName+":"+p}p=p.replace(/mce\:/g,"");switch(p){case"b":p="strong";break;case"i":p="em";break;case"img":if(y=i.getAttrib(I,"src")){t+="src: "+y+" "}break;case"a":if(y=i.getAttrib(I,"name")){t+="name: "+y+" ";p+="#"+y}if(y=i.getAttrib(I,"href")){t+="href: "+y+" "}break;case"font":if(y=i.getAttrib(I,"face")){t+="font: "+y+" "}if(y=i.getAttrib(I,"size")){t+="size: "+y+" "}if(y=i.getAttrib(I,"color")){t+="color: "+y+" "}break;case"span":if(y=i.getAttrib(I,"style")){t+="style: "+y+" "}break}if(y=i.getAttrib(I,"id")){t+="id: "+y+" "}if(y=I.className){y=y.replace(/\b\s*(webkit|mce|Apple-)\w+\s*\b/g,"");if(y){t+="class: "+y+" ";if(o.dom.isBlock(I)||p=="img"||p=="span"){p+="."+y}}}p=p.replace(/(html:)/g,"");p={name:p,node:I,title:t};z.onResolveName.dispatch(z,p);t=p.title;p=p.name;v=i.create("a",{href:"javascript:;",role:"button",onmousedown:"return false;",title:t,"class":"mcePath_"+(G++)},p);if(D.hasChildNodes()){D.insertBefore(i.create("span",{"aria-hidden":"true"},"\u00a0\u00bb "),D.firstChild);D.insertBefore(v,D.firstChild)}else{D.appendChild(v)}},o.getBody());if(i.select("a",D).length>0){z.statusKeyboardNavigation=new h.ui.KeyboardNavigation({root:o.id+"_path_row",items:i.select("a",D),excludeFromTabOrder:true,onCancel:function(){o.focus()}},i)}}},_sel:function(j){this.editor.execCommand("mceSelectNodeDepth",false,j)},_mceInsertAnchor:function(l,k){var j=this.editor;j.windowManager.open({url:this.url+"/anchor.htm",width:320+parseInt(j.getLang("advanced.anchor_delta_width",0)),height:90+parseInt(j.getLang("advanced.anchor_delta_height",0)),inline:true},{theme_url:this.url})},_mceCharMap:function(){var j=this.editor;j.windowManager.open({url:this.url+"/charmap.htm",width:550+parseInt(j.getLang("advanced.charmap_delta_width",0)),height:265+parseInt(j.getLang("advanced.charmap_delta_height",0)),inline:true},{theme_url:this.url})},_mceHelp:function(){var j=this.editor;j.windowManager.open({url:this.url+"/about.htm",width:480,height:380,inline:true},{theme_url:this.url})},_mceShortcuts:function(){var j=this.editor;j.windowManager.open({url:this.url+"/shortcuts.htm",width:480,height:380,inline:true},{theme_url:this.url})},_mceColorPicker:function(l,k){var j=this.editor;k=k||{};j.windowManager.open({url:this.url+"/color_picker.htm",width:375+parseInt(j.getLang("advanced.colorpicker_delta_width",0)),height:250+parseInt(j.getLang("advanced.colorpicker_delta_height",0)),close_previous:false,inline:true},{input_color:k.color,func:k.func,theme_url:this.url})},_mceCodeEditor:function(k,l){var j=this.editor;j.windowManager.open({url:this.url+"/source_editor.htm",width:parseInt(j.getParam("theme_advanced_source_editor_width",720)),height:parseInt(j.getParam("theme_advanced_source_editor_height",580)),inline:true,resizable:true,maximizable:true},{theme_url:this.url})},_mceImage:function(k,l){var j=this.editor;if(j.dom.getAttrib(j.selection.getNode(),"class","").indexOf("mceItem")!=-1){return}j.windowManager.open({url:this.url+"/image.htm",width:355+parseInt(j.getLang("advanced.image_delta_width",0)),height:275+parseInt(j.getLang("advanced.image_delta_height",0)),inline:true},{theme_url:this.url})},_mceLink:function(k,l){var j=this.editor;j.windowManager.open({url:this.url+"/link.htm",width:310+parseInt(j.getLang("advanced.link_delta_width",0)),height:200+parseInt(j.getLang("advanced.link_delta_height",0)),inline:true},{theme_url:this.url})},_mceNewDocument:function(){var j=this.editor;j.windowManager.confirm("advanced.newdocument",function(k){if(k){j.execCommand("mceSetContent",false,"")}})},_mceForeColor:function(){var j=this;this._mceColorPicker(0,{color:j.fgColor,func:function(k){j.fgColor=k;j.editor.execCommand("ForeColor",false,k)}})},_mceBackColor:function(){var j=this;this._mceColorPicker(0,{color:j.bgColor,func:function(k){j.bgColor=k;j.editor.execCommand("HiliteColor",false,k)}})},_ufirst:function(j){return j.substring(0,1).toUpperCase()+j.substring(1)}});h.ThemeManager.add("advanced",h.themes.AdvancedTheme)}(tinymce));
\ No newline at end of file
--- a/web/wp-includes/js/tinymce/themes/advanced/editor_template_src.js	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/js/tinymce/themes/advanced/editor_template_src.js	Wed Dec 19 17:46:52 2012 -0800
@@ -11,6 +11,95 @@
 (function(tinymce) {
 	var DOM = tinymce.DOM, Event = tinymce.dom.Event, extend = tinymce.extend, each = tinymce.each, Cookie = tinymce.util.Cookie, lastExtID, explode = tinymce.explode;
 
+	// Generates a preview for a format
+	function getPreviewCss(ed, fmt) {
+		var name, previewElm, dom = ed.dom, previewCss = '', parentFontSize, previewStylesName;
+
+		previewStyles = ed.settings.preview_styles;
+
+		// No preview forced
+		if (previewStyles === false)
+			return '';
+
+		// Default preview
+		if (!previewStyles)
+			previewStyles = 'font-family font-size font-weight text-decoration text-transform color background-color';
+
+		// Removes any variables since these can't be previewed
+		function removeVars(val) {
+			return val.replace(/%(\w+)/g, '');
+		};
+
+		// Create block/inline element to use for preview
+		name = fmt.block || fmt.inline || 'span';
+		previewElm = dom.create(name);
+
+		// Add format styles to preview element
+		each(fmt.styles, function(value, name) {
+			value = removeVars(value);
+
+			if (value)
+				dom.setStyle(previewElm, name, value);
+		});
+
+		// Add attributes to preview element
+		each(fmt.attributes, function(value, name) {
+			value = removeVars(value);
+
+			if (value)
+				dom.setAttrib(previewElm, name, value);
+		});
+
+		// Add classes to preview element
+		each(fmt.classes, function(value) {
+			value = removeVars(value);
+
+			if (!dom.hasClass(previewElm, value))
+				dom.addClass(previewElm, value);
+		});
+
+		// Add the previewElm outside the visual area
+		dom.setStyles(previewElm, {position: 'absolute', left: -0xFFFF});
+		ed.getBody().appendChild(previewElm);
+
+		// Get parent container font size so we can compute px values out of em/% for older IE:s
+		parentFontSize = dom.getStyle(ed.getBody(), 'fontSize', true);
+		parentFontSize = /px$/.test(parentFontSize) ? parseInt(parentFontSize, 10) : 0;
+
+		each(previewStyles.split(' '), function(name) {
+			var value = dom.getStyle(previewElm, name, true);
+
+			// If background is transparent then check if the body has a background color we can use
+			if (name == 'background-color' && /transparent|rgba\s*\([^)]+,\s*0\)/.test(value)) {
+				value = dom.getStyle(ed.getBody(), name, true);
+
+				// Ignore white since it's the default color, not the nicest fix
+				if (dom.toHex(value).toLowerCase() == '#ffffff') {
+					return;
+				}
+			}
+
+			// Old IE won't calculate the font size so we need to do that manually
+			if (name == 'font-size') {
+				if (/em|%$/.test(value)) {
+					if (parentFontSize === 0) {
+						return;
+					}
+
+					// Convert font size from em/% to px
+					value = parseFloat(value, 10) / (/%$/.test(value) ? 100 : 1);
+					value = (value * parentFontSize) + 'px';
+				}
+			}
+
+			previewCss += name + ':' + value + ';';
+		});
+
+		dom.remove(previewElm);
+
+		return previewCss;
+	};
+
 	// Tell it to load theme specific language pack(s)
 	tinymce.ThemeManager.requireLangPack('advanced');
 
@@ -61,23 +150,31 @@
 
 		init : function(ed, url) {
 			var t = this, s, v, o;
-	
+
 			t.editor = ed;
 			t.url = url;
 			t.onResolveName = new tinymce.util.Dispatcher(this);
+			s = ed.settings;
 
 			ed.forcedHighContrastMode = ed.settings.detect_highcontrast && t._isHighContrast();
 			ed.settings.skin = ed.forcedHighContrastMode ? 'highcontrast' : ed.settings.skin;
 
+			// Setup default buttons
+			if (!s.theme_advanced_buttons1) {
+				s = extend({
+					theme_advanced_buttons1 : "bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull,|,styleselect,formatselect",
+					theme_advanced_buttons2 : "bullist,numlist,|,outdent,indent,|,undo,redo,|,link,unlink,anchor,image,cleanup,help,code",
+					theme_advanced_buttons3 : "hr,removeformat,visualaid,|,sub,sup,|,charmap"
+				}, s);
+			}
+
 			// Default settings
 			t.settings = s = extend({
 				theme_advanced_path : true,
-				theme_advanced_toolbar_location : 'bottom',
-				theme_advanced_buttons1 : "bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull,|,styleselect,formatselect",
-				theme_advanced_buttons2 : "bullist,numlist,|,outdent,indent,|,undo,redo,|,link,unlink,anchor,image,cleanup,help,code",
-				theme_advanced_buttons3 : "hr,removeformat,visualaid,|,sub,sup,|,charmap",
+				theme_advanced_toolbar_location : 'top',
 				theme_advanced_blockformats : "p,address,pre,h1,h2,h3,h4,h5,h6",
-				theme_advanced_toolbar_align : "center",
+				theme_advanced_toolbar_align : "left",
+				theme_advanced_statusbar_location : "bottom",
 				theme_advanced_fonts : "Andale Mono=andale mono,times;Arial=arial,helvetica,sans-serif;Arial Black=arial black,avant garde;Book Antiqua=book antiqua,palatino;Comic Sans MS=comic sans ms,sans-serif;Courier New=courier new,courier;Georgia=georgia,palatino;Helvetica=helvetica;Impact=impact,chicago;Symbol=symbol;Tahoma=tahoma,arial,helvetica,sans-serif;Terminal=terminal,monaco;Times New Roman=times new roman,times;Trebuchet MS=trebuchet ms,geneva;Verdana=verdana,geneva;Webdings=webdings;Wingdings=wingdings,zapf dingbats",
 				theme_advanced_more_colors : 1,
 				theme_advanced_row_height : 23,
@@ -87,7 +184,7 @@
 				theme_advanced_font_selector : "span",
 				theme_advanced_show_current_color: 0,
 				readonly : ed.settings.readonly
-			}, ed.settings);
+			}, s);
 
 			// Setup default font_size_style_values
 			if (!s.font_size_style_values)
@@ -219,15 +316,21 @@
 
 			if (ctrl.getLength() == 0) {
 				each(ed.dom.getClasses(), function(o, idx) {
-					var name = 'style_' + idx;
+					var name = 'style_' + idx, fmt;
 
-					ed.formatter.register(name, {
+					fmt = {
 						inline : 'span',
 						attributes : {'class' : o['class']},
 						selector : '*'
-					});
+					};
+
+					ed.formatter.register(name, fmt);
 
-					ctrl.add(o['class'], name);
+					ctrl.add(o['class'], name, {
+						style: function() {
+							return getPreviewCss(ed, fmt);
+						}
+					});
 				});
 			}
 		},
@@ -239,7 +342,7 @@
 			ctrl = ctrlMan.createListBox('styleselect', {
 				title : 'advanced.style_select',
 				onselect : function(name) {
-					var matches, formatNames = [];
+					var matches, formatNames = [], removedFormat;
 
 					each(ctrl.items, function(item) {
 						formatNames.push(item.value);
@@ -248,12 +351,18 @@
 					ed.focus();
 					ed.undoManager.add();
 
-					// Toggle off the current format
+					// Toggle off the current format(s)
 					matches = ed.formatter.matchAll(formatNames);
-					if (!name || matches[0] == name) {
-						if (matches[0]) 
-							ed.formatter.remove(matches[0]);
-					} else
+					tinymce.each(matches, function(match) {
+						if (!name || match == name) {
+							if (match)
+								ed.formatter.remove(match);
+
+							removedFormat = true;
+						}
+					});
+
+					if (!removedFormat)
 						ed.formatter.apply(name);
 
 					ed.undoManager.add();
@@ -264,7 +373,7 @@
 			});
 
 			// Handle specified format
-			ed.onInit.add(function() {
+			ed.onPreInit.add(function() {
 				var counter = 0, formats = ed.getParam('style_formats');
 
 				if (formats) {
@@ -276,24 +385,32 @@
 						if (keys > 1) {
 							name = fmt.name = fmt.name || 'style_' + (counter++);
 							ed.formatter.register(name, fmt);
-							ctrl.add(fmt.title, name);
+							ctrl.add(fmt.title, name, {
+								style: function() {
+									return getPreviewCss(ed, fmt);
+								}
+							});
 						} else
 							ctrl.add(fmt.title);
 					});
 				} else {
 					each(ed.getParam('theme_advanced_styles', '', 'hash'), function(val, key) {
-						var name;
+						var name, fmt;
 
 						if (val) {
 							name = 'style_' + (counter++);
-
-							ed.formatter.register(name, {
+							fmt = {
 								inline : 'span',
 								classes : val,
 								selector : '*'
-							});
+							};
 
-							ctrl.add(t.editor.translate(key), name);
+							ed.formatter.register(name, fmt);
+							ctrl.add(t.editor.translate(key), name, {
+								style: function() {
+									return getPreviewCss(ed, fmt);
+								}
+							});
 						}
 					});
 				}
@@ -433,7 +550,9 @@
 
 			if (c) {
 				each(t.editor.getParam('theme_advanced_blockformats', t.settings.theme_advanced_blockformats, 'hash'), function(v, k) {
-					c.add(t.editor.translate(k != v ? k : fmts[v]), v, {'class' : 'mce_formatPreview mce_' + v});
+					c.add(t.editor.translate(k != v ? k : fmts[v]), v, {'class' : 'mce_formatPreview mce_' + v, style: function() {
+						return getPreviewCss(t.editor, {block: v});
+					}});
 				});
 			}
 
@@ -507,7 +626,7 @@
 
 			// TODO: ACC Should have an aria-describedby attribute which is user-configurable to describe what this field is actually for.
 			// Maybe actually inherit it from the original textara?
-			n = p = DOM.create('span', {role : 'application', 'aria-labelledby' : ed.id + '_voice', id : ed.id + '_parent', 'class' : 'mceEditor ' + ed.settings.skin + 'Skin' + (s.skin_variant ? ' ' + ed.settings.skin + 'Skin' + t._ufirst(s.skin_variant) : '')});
+			n = p = DOM.create('span', {role : 'application', 'aria-labelledby' : ed.id + '_voice', id : ed.id + '_parent', 'class' : 'mceEditor ' + ed.settings.skin + 'Skin' + (s.skin_variant ? ' ' + ed.settings.skin + 'Skin' + t._ufirst(s.skin_variant) : '') + (ed.settings.directionality == "rtl" ? ' mceRtl' : '')});
 			DOM.add(n, 'span', {'class': 'mceVoiceLabel', 'style': 'display:none;', id: ed.id + '_voice'}, s.aria_label);
 
 			if (!DOM.boxModel)
@@ -552,15 +671,14 @@
 
 				if (e.nodeName == 'A') {
 					t._sel(e.className.replace(/^.*mcePath_([0-9]+).*$/, '$1'));
-
-					return Event.cancel(e);
+					return false;
 				}
 			});
 /*
 			if (DOM.get(ed.id + '_path_row')) {
 				Event.add(ed.id + '_tbl', 'mouseover', function(e) {
 					var re;
-	
+
 					e = e.target;
 
 					if (e.nodeName == 'SPAN' && DOM.hasClass(e.parentNode, 'mceButton')) {
@@ -713,6 +831,7 @@
 					var f = Event.add(ed.id + '_external_close', 'click', function() {
 						DOM.hide(ed.id + '_external');
 						Event.remove(ed.id + '_external_close', 'click', f);
+						return false;
 					});
 
 					DOM.show(e);
@@ -825,7 +944,7 @@
 		},
 
 		_addToolbars : function(c, o) {
-			var t = this, i, tb, ed = t.editor, s = t.settings, v, cf = ed.controlManager, di, n, h = [], a, toolbarGroup;
+			var t = this, i, tb, ed = t.editor, s = t.settings, v, cf = ed.controlManager, di, n, h = [], a, toolbarGroup, toolbarsExist = false;
 
 			toolbarGroup = cf.createToolbarGroup('toolbargroup', {
 				'name': ed.getLang('advanced.toolbar'),
@@ -837,10 +956,11 @@
 			a = s.theme_advanced_toolbar_align.toLowerCase();
 			a = 'mce' + t._ufirst(a);
 
-			n = DOM.add(DOM.add(c, 'tr', {role: 'presentation'}), 'td', {'class' : 'mceToolbar ' + a, "role":"presentation"});
+			n = DOM.add(DOM.add(c, 'tr', {role: 'presentation'}), 'td', {'class' : 'mceToolbar ' + a, "role":"toolbar"});
 
 			// Create toolbar and add the controls
 			for (i=1; (v = s['theme_advanced_buttons' + i]); i++) {
+				toolbarsExist = true;
 				tb = cf.createToolbar("toolbar" + i, {'class' : 'mceToolbarRow' + i});
 
 				if (s['theme_advanced_buttons' + i + '_add'])
@@ -854,6 +974,9 @@
 
 				o.deltaHeight -= s.theme_advanced_row_height;
 			}
+			// Handle case when there are no toolbar buttons and ensure editor height is adjusted accordingly
+			if (!toolbarsExist)
+				o.deltaHeight -= s.theme_advanced_row_height;
 			h.push(toolbarGroup.renderHTML());
 			h.push(DOM.createHTML('a', {href : '#', accesskey : 'z', title : ed.getLang("advanced.toolbar_focus"), onfocus : 'tinyMCE.getInstanceById(\'' + ed.id + '\').focus();'}, '<!-- IE -->'));
 			DOM.setHTML(n, h.join(''));
@@ -863,7 +986,7 @@
 			var n, t = this, ed = t.editor, s = t.settings, r, mf, me, td;
 
 			n = DOM.add(tb, 'tr');
-			n = td = DOM.add(n, 'td', {'class' : 'mceStatusbar'}); 
+			n = td = DOM.add(n, 'td', {'class' : 'mceStatusbar'});
 			n = DOM.add(n, 'div', {id : ed.id + '_path_row', 'role': 'group', 'aria-labelledby': ed.id + '_path_voice'});
 			if (s.theme_advanced_path) {
 				DOM.add(n, 'span', {id: ed.id + '_path_voice'}, ed.translate('advanced.path'));
@@ -871,7 +994,7 @@
 			} else {
 				DOM.add(n, 'span', {}, '&#160;');
 			}
-			
+
 
 			if (s.theme_advanced_resizing) {
 				DOM.add(td, 'a', {id : ed.id + '_resize', href : 'javascript:;', onclick : "return false;", 'class' : 'mceResize', tabIndex:"-1"});
@@ -916,6 +1039,8 @@
 							width = startWidth + (e.screenX - startX);
 							height = startHeight + (e.screenY - startY);
 							t.resizeTo(width, height, true);
+
+							ed.nodeChanged();
 						};
 
 						e.preventDefault();
@@ -975,19 +1100,17 @@
 
 			p = getParent('A');
 			if (c = cm.get('link')) {
-				if (!p || !p.name) {
-					c.setDisabled(!p && co);
-					c.setActive(!!p);
-				}
+				c.setDisabled((!p && co) || (p && !p.href));
+				c.setActive(!!p && (!p.name && !p.id));
 			}
 
 			if (c = cm.get('unlink')) {
 				c.setDisabled(!p && co);
-				c.setActive(!!p && !p.name);
+				c.setActive(!!p && !p.name && !p.id);
 			}
 
 			if (c = cm.get('anchor')) {
-				c.setActive(!co && !!p && p.name);
+				c.setActive(!co && !!p && (p.name || (p.id && !p.href)));
 			}
 
 			p = getParent('IMG');
@@ -1004,10 +1127,15 @@
 
 				matches = ed.formatter.matchAll(formatNames);
 				c.select(matches[0]);
+				tinymce.each(matches, function(match, index) {
+					if (index > 0) {
+						c.mark(match);
+					}
+				});
 			}
 
 			if (c = cm.get('formatselect')) {
-				p = getParent(DOM.isBlock);
+				p = getParent(ed.dom.isBlock);
 
 				if (p)
 					c.select(p.nodeName.toLowerCase());
@@ -1026,7 +1154,7 @@
 
 					if (!fn && n.style.fontFamily)
 						fn = n.style.fontFamily.replace(/[\"\']+/g, '').replace(/^([^,]+).*/, '$1').toLowerCase();
-					
+
 					if (!fc && n.style.color)
 						fc = n.style.color;
 
@@ -1057,7 +1185,7 @@
 						return true;
 				});
 			}
-			
+
 			if (s.theme_advanced_show_current_color) {
 				function updateColor(controlId, color) {
 					if (c = cm.get(controlId)) {
@@ -1105,7 +1233,7 @@
 						return;
 
 					// Handle prefix
-					if (tinymce.isIE && n.scopeName !== 'HTML')
+					if (tinymce.isIE && n.scopeName !== 'HTML' && n.scopeName)
 						na = n.scopeName + ':' + na;
 
 					// Remove internal prefix
@@ -1161,12 +1289,12 @@
 						ti += 'id: ' + v + ' ';
 
 					if (v = n.className) {
-						v = v.replace(/\b\s*(webkit|mce|Apple-)\w+\s*\b/g, '')
+						v = v.replace(/\b\s*(webkit|mce|Apple-)\w+\s*\b/g, '');
 
 						if (v) {
 							ti += 'class: ' + v + ' ';
 
-							if (DOM.isBlock(n) || na == 'img' || na == 'span')
+							if (ed.dom.isBlock(n) || na == 'img' || na == 'span')
 								na += '.' + v;
 						}
 					}
@@ -1294,7 +1422,7 @@
 			var ed = this.editor;
 
 			// Internal image object like a flash placeholder
-			if (ed.dom.getAttrib(ed.selection.getNode(), 'class').indexOf('mceItem') != -1)
+			if (ed.dom.getAttrib(ed.selection.getNode(), 'class', '').indexOf('mceItem') != -1)
 				return;
 
 			ed.windowManager.open({
--- a/web/wp-includes/js/tinymce/themes/advanced/image.htm	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/js/tinymce/themes/advanced/image.htm	Wed Dec 19 17:46:52 2012 -0800
@@ -2,10 +2,10 @@
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 	<title>{#advanced_dlg.image_title}</title>
-	<script type="text/javascript" src="../../tiny_mce_popup.js?ver=349-20120314"></script>
-	<script type="text/javascript" src="../../utils/mctabs.js?ver=349-20120314"></script>
-	<script type="text/javascript" src="../../utils/form_utils.js?ver=349-20120314"></script>
-	<script type="text/javascript" src="js/image.js?ver=349-20120314"></script>
+	<script type="text/javascript" src="../../tiny_mce_popup.js?ver=358-20121205"></script>
+	<script type="text/javascript" src="../../utils/mctabs.js?ver=358-20121205"></script>
+	<script type="text/javascript" src="../../utils/form_utils.js?ver=358-20121205"></script>
+	<script type="text/javascript" src="js/image.js?ver=358-20121205"></script>
 </head>
 <body id="image" style="display: none">
 <form onsubmit="ImageDialog.update();return false;" action="#">
@@ -72,13 +72,8 @@
 	</div>
 
 	<div class="mceActionPanel">
-		<div style="float: left">
-			<input type="button" id="cancel" name="cancel" value="{#cancel}" onclick="tinyMCEPopup.close();" />
-		</div>
-
-		<div style="float: right">
-			<input type="submit" id="insert" name="insert" value="{#insert}" />
-		</div>
+		<input type="submit" id="insert" name="insert" value="{#insert}" />
+		<input type="button" id="cancel" name="cancel" value="{#cancel}" onclick="tinyMCEPopup.close();" />
 	</div>
 </form>
 </body>
Binary file web/wp-includes/js/tinymce/themes/advanced/img/gotmoxie.png has changed
Binary file web/wp-includes/js/tinymce/themes/advanced/img/icons.gif has changed
--- a/web/wp-includes/js/tinymce/themes/advanced/js/anchor.js	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/js/tinymce/themes/advanced/js/anchor.js	Wed Dec 19 17:46:52 2012 -0800
@@ -6,7 +6,7 @@
 
 		this.editor = ed;
 		elm = ed.dom.getParent(ed.selection.getNode(), 'A');
-		v = ed.dom.getAttrib(elm, 'name');
+		v = ed.dom.getAttrib(elm, 'name') || ed.dom.getAttrib(elm, 'id');
 
 		if (v) {
 			this.action = 'update';
@@ -17,7 +17,7 @@
 	},
 
 	update : function() {
-		var ed = this.editor, elm, name = document.forms[0].anchorName.value;
+		var ed = this.editor, elm, name = document.forms[0].anchorName.value, attribName;
 
 		if (!name || !/^[a-z][a-z0-9\-\_:\.]*$/i.test(name)) {
 			tinyMCEPopup.alert('advanced_dlg.anchor_invalid');
@@ -29,12 +29,25 @@
 		if (this.action != 'update')
 			ed.selection.collapse(1);
 
+		var aRule = ed.schema.getElementRule('a');
+		if (!aRule || aRule.attributes.name) {
+			attribName = 'name';
+		} else {
+			attribName = 'id';
+		}
+
 		elm = ed.dom.getParent(ed.selection.getNode(), 'A');
 		if (elm) {
-			elm.setAttribute('name', name);
-			elm.name = name;
-		} else
-			ed.execCommand('mceInsertContent', 0, ed.dom.createHTML('a', {name : name, 'class' : 'mceItemAnchor'}, ''));
+			elm.setAttribute(attribName, name);
+			elm[attribName] = name;
+			ed.undoManager.add();
+		} else {
+			// create with zero-sized nbsp so that in Webkit where anchor is on last line by itself caret cannot be placed after it
+			var attrs =  {'class' : 'mceItemAnchor'};
+			attrs[attribName] = name;
+			ed.execCommand('mceInsertContent', 0, ed.dom.createHTML('a', attrs, '\uFEFF'));
+			ed.nodeChanged();
+		}
 
 		tinyMCEPopup.close();
 	}
--- a/web/wp-includes/js/tinymce/themes/advanced/js/color_picker.js	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/js/tinymce/themes/advanced/js/color_picker.js	Wed Dec 19 17:46:52 2012 -0800
@@ -77,7 +77,7 @@
 		if (col)
 			updateLight(col.r, col.g, col.b);
 	}
-	
+
 	for (key in named) {
 		value = named[key];
 		namedLookup[value.replace(/\s+/, '').toLowerCase()] = key.replace(/#/, '').toLowerCase();
@@ -93,40 +93,56 @@
 		return value.length > 1 ? value : '0' + value; // Padd with leading zero
 	};
 
-	color = color.replace(/[\s#]+/g, '').toLowerCase();
+	color = tinymce.trim(color);
+	color = color.replace(/^[#]/, '').toLowerCase();  // remove leading '#'
 	color = namedLookup[color] || color;
-	matches = /^rgb\((\d{1,3}),(\d{1,3}),(\d{1,3})\)|([a-f0-9]{2})([a-f0-9]{2})([a-f0-9]{2})|([a-f0-9])([a-f0-9])([a-f0-9])$/.exec(color);
+
+	matches = /^rgb\((\d{1,3}),(\d{1,3}),(\d{1,3})\)$/.exec(color);
 
 	if (matches) {
-		if (matches[1]) {
-			red = toInt(matches[1]);
-			green = toInt(matches[2]);
-			blue = toInt(matches[3]);
-		} else if (matches[4]) {
-			red = toInt(matches[4], 16);
-			green = toInt(matches[5], 16);
-			blue = toInt(matches[6], 16);
-		} else if (matches[7]) {
-			red = toInt(matches[7] + matches[7], 16);
-			green = toInt(matches[8] + matches[8], 16);
-			blue = toInt(matches[9] + matches[9], 16);
+		red   = toInt(matches[1]);
+		green = toInt(matches[2]);
+		blue  = toInt(matches[3]);
+	} else {
+		matches = /^([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})$/.exec(color);
+
+		if (matches) {
+			red   = toInt(matches[1], 16);
+			green = toInt(matches[2], 16);
+			blue  = toInt(matches[3], 16);
+		} else {
+			matches = /^([0-9a-f])([0-9a-f])([0-9a-f])$/.exec(color);
+
+			if (matches) {
+				red   = toInt(matches[1] + matches[1], 16);
+				green = toInt(matches[2] + matches[2], 16);
+				blue  = toInt(matches[3] + matches[3], 16);
+			} else {
+				return '';
+			}
 		}
-
-		return '#' + hex(red) + hex(green) + hex(blue);
 	}
 
-	return '';
+	return '#' + hex(red) + hex(green) + hex(blue);
 }
 
 function insertAction() {
 	var color = document.getElementById("color").value, f = tinyMCEPopup.getWindowArg('func');
 
-	tinyMCEPopup.restoreSelection();
+	var hexColor = toHexColor(color);
 
-	if (f)
-		f(toHexColor(color));
+	if (hexColor === '') {
+		var text = tinyMCEPopup.editor.getLang('advanced_dlg.invalid_color_value');
+		tinyMCEPopup.alert(text + ': ' + color);
+	}
+	else {
+		tinyMCEPopup.restoreSelection();
 
-	tinyMCEPopup.close();
+		if (f)
+			f(hexColor);
+
+		tinyMCEPopup.close();
+	}
 }
 
 function showColor(color, name) {
--- a/web/wp-includes/js/tinymce/themes/advanced/js/image.js	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/js/tinymce/themes/advanced/js/image.js	Wed Dec 19 17:46:52 2012 -0800
@@ -104,10 +104,12 @@
 	},
 
 	updateStyle : function() {
-		var dom = tinyMCEPopup.dom, st, v, f = document.forms[0];
+		var dom = tinyMCEPopup.dom, st = {}, v, f = document.forms[0];
 
 		if (tinyMCEPopup.editor.settings.inline_styles) {
-			st = tinyMCEPopup.dom.parseStyle(this.styleVal);
+			tinymce.each(tinyMCEPopup.dom.parseStyle(this.styleVal), function(value, key) {
+				st[key] = value;
+			});
 
 			// Handle align
 			v = getSelectValue(f, 'align');
--- a/web/wp-includes/js/tinymce/themes/advanced/js/link.js	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/js/tinymce/themes/advanced/js/link.js	Wed Dec 19 17:46:52 2012 -0800
@@ -68,10 +68,16 @@
 		} else {
 			ed.dom.setAttribs(e, {
 				href : href,
-				title : f.linktitle.value,
-				target : f.target_list ? getSelectValue(f, "target_list") : null,
-				'class' : f.class_list ? getSelectValue(f, "class_list") : null
+				title : f.linktitle.value
 			});
+	
+			if (f.target_list) {
+				ed.dom.setAttrib(e, 'target', getSelectValue(f, "target_list"));
+			}
+
+			if (f.class_list) {
+				ed.dom.setAttrib(e, 'class', getSelectValue(f, "class_list"));
+			}
 		}
 
 		// Don't move caret if selection was image
--- a/web/wp-includes/js/tinymce/themes/advanced/js/source_editor.js	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/js/tinymce/themes/advanced/js/source_editor.js	Wed Dec 19 17:46:52 2012 -0800
@@ -16,7 +16,7 @@
 	document.getElementById('htmlSource').value = tinyMCEPopup.editor.getContent({source_view : true});
 
 	if (tinyMCEPopup.editor.getParam("theme_advanced_source_editor_wrap", true)) {
-		setWrap('soft');
+		turnWrapOn();
 		document.getElementById('wraped').checked = true;
 	}
 
@@ -37,11 +37,33 @@
 	}
 }
 
-function toggleWordWrap(elm) {
-	if (elm.checked)
+function setWhiteSpaceCss(value) {
+	var el = document.getElementById('htmlSource');
+	tinymce.DOM.setStyle(el, 'white-space', value);
+}
+
+function turnWrapOff() {
+	if (tinymce.isWebKit) {
+		setWhiteSpaceCss('pre');
+	} else {
+		setWrap('off');
+	}
+}
+
+function turnWrapOn() {
+	if (tinymce.isWebKit) {
+		setWhiteSpaceCss('pre-wrap');
+	} else {
 		setWrap('soft');
-	else
-		setWrap('off');
+	}
+}
+
+function toggleWordWrap(elm) {
+	if (elm.checked) {
+		turnWrapOn();
+	} else {
+		turnWrapOff();
+	}
 }
 
 function resizeInputs() {
--- a/web/wp-includes/js/tinymce/themes/advanced/link.htm	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/js/tinymce/themes/advanced/link.htm	Wed Dec 19 17:46:52 2012 -0800
@@ -2,11 +2,11 @@
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 	<title>{#advanced_dlg.link_title}</title>
-	<script type="text/javascript" src="../../tiny_mce_popup.js?ver=349-20120314"></script>
-	<script type="text/javascript" src="../../utils/mctabs.js?ver=349-20120314"></script>
-	<script type="text/javascript" src="../../utils/form_utils.js?ver=349-20120314"></script>
-	<script type="text/javascript" src="../../utils/validate.js?ver=349-20120314"></script>
-	<script type="text/javascript" src="js/link.js?ver=349-20120314"></script>
+	<script type="text/javascript" src="../../tiny_mce_popup.js?ver=358-20121205"></script>
+	<script type="text/javascript" src="../../utils/mctabs.js?ver=358-20121205"></script>
+	<script type="text/javascript" src="../../utils/form_utils.js?ver=358-20121205"></script>
+	<script type="text/javascript" src="../../utils/validate.js?ver=358-20121205"></script>
+	<script type="text/javascript" src="js/link.js?ver=358-20121205"></script>
 </head>
 <body id="link" style="display: none">
 <form onsubmit="LinkDialog.update();return false;" action="#">
@@ -49,13 +49,8 @@
 	</div>
 
 	<div class="mceActionPanel">
-		<div style="float: left">
-			<input type="button" id="cancel" name="cancel" value="{#cancel}" onclick="tinyMCEPopup.close();" />
-		</div>
-
-		<div style="float: right">
-			<input type="submit" id="insert" name="insert" value="{#insert}" />
-		</div>
+		<input type="submit" id="insert" name="insert" value="{#insert}" />
+		<input type="button" id="cancel" name="cancel" value="{#cancel}" onclick="tinyMCEPopup.close();" />
 	</div>
 </form>
 </body>
--- a/web/wp-includes/js/tinymce/themes/advanced/shortcuts.htm	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/js/tinymce/themes/advanced/shortcuts.htm	Wed Dec 19 17:46:52 2012 -0800
@@ -2,7 +2,7 @@
 <html xmlns="http://www.w3.org/1999/xhtml">
 	<head>
 		<title>{#advanced_dlg.accessibility_help}</title>
-		<script type="text/javascript" src="../../tiny_mce_popup.js?ver=349-20120314"></script>
+		<script type="text/javascript" src="../../tiny_mce_popup.js?ver=358-20121205"></script>
 		<script type="text/javascript">tinyMCEPopup.requireLangPack();</script>
 	</head>
 	<body id="content">
--- a/web/wp-includes/js/tinymce/themes/advanced/skins/default/dialog.css	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/js/tinymce/themes/advanced/skins/default/dialog.css	Wed Dec 19 17:46:52 2012 -0800
@@ -105,11 +105,12 @@
 #plugintable, #about #plugintable td {border:1px solid #919B9C;}
 #plugintable {width:96%; margin-top:10px;}
 #pluginscontainer {height:290px; overflow:auto;}
-#colorpicker #preview {float:right; width:50px; height:14px;line-height:1px; border:1px solid black; margin-left:5px;}
+#colorpicker #preview {display:inline-block; padding-left:40px; height:14px; border:1px solid black; margin-left:5px; margin-right: 5px}
+#colorpicker #previewblock {position: relative; top: -3px; padding-left:5px; padding-top: 0px; display:inline}
+#colorpicker #preview_wrapper { text-align:center; padding-top:4px; white-space: nowrap}
 #colorpicker #colors {float:left; border:1px solid gray; cursor:crosshair;}
 #colorpicker #light {border:1px solid gray; margin-left:5px; float:left;width:15px; height:150px; cursor:crosshair;}
 #colorpicker #light div {overflow:hidden;}
-#colorpicker #previewblock {float:right; padding-left:10px; height:20px;}
 #colorpicker .panel_wrapper div.current {height:175px;}
 #colorpicker #namedcolors {width:150px;}
 #colorpicker #namedcolors a {display:block; float:left; width:10px; height:10px; margin:1px 1px 0 0; overflow:hidden;}
--- a/web/wp-includes/js/tinymce/themes/advanced/skins/default/ui.css	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/js/tinymce/themes/advanced/skins/default/ui.css	Wed Dec 19 17:46:52 2012 -0800
@@ -83,7 +83,7 @@
 .defaultSkin .mce_forecolor span.mceAction, .defaultSkin .mce_backcolor span.mceAction {overflow:hidden; height:16px}
 
 /* Menu */
-.defaultSkin .mceMenu {position:absolute; left:0; top:0; z-index:1000; border:1px solid #D4D0C8}
+.defaultSkin .mceMenu {position:absolute; left:0; top:0; z-index:1000; border:1px solid #D4D0C8; direction:ltr}
 .defaultSkin .mceNoIcons span.mceIcon {width:0;}
 .defaultSkin .mceNoIcons a .mceText {padding-left:10px}
 .defaultSkin .mceMenu table {background:#FFF}
@@ -109,6 +109,10 @@
 .defaultSkin .mceBlocker {position:absolute; left:0; top:0; z-index:1000; opacity:0.5; -ms-filter:'alpha(opacity=50)'; filter:alpha(opacity=50); background:#FFF}
 .defaultSkin .mceProgress {position:absolute; left:0; top:0; z-index:1001; background:url(img/progress.gif) no-repeat; width:32px; height:32px; margin:-16px 0 0 -16px}
 
+/* Rtl */
+.mceRtl .mceListBox .mceText {text-align: right; padding: 0 4px 0 0}
+.mceRtl .mceMenuItem .mceText {text-align: right}
+
 /* Formats */
 .defaultSkin .mce_formatPreview a {font-size:10px}
 .defaultSkin .mce_p span.mceText {}
@@ -212,3 +216,4 @@
 .defaultSkin span.mce_pagebreak {background-position:0 -40px}
 .defaultSkin span.mce_restoredraft {background-position:-20px -40px}
 .defaultSkin span.mce_spellchecker {background-position:-540px -20px}
+.defaultSkin span.mce_visualblocks {background-position: -40px -40px}
--- a/web/wp-includes/js/tinymce/themes/advanced/skins/highcontrast/dialog.css	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/js/tinymce/themes/advanced/skins/highcontrast/dialog.css	Wed Dec 19 17:46:52 2012 -0800
@@ -94,11 +94,12 @@
 #plugintable, #about #plugintable td {border:1px solid #919B9C;}
 #plugintable {width:96%; margin-top:10px;}
 #pluginscontainer {height:290px; overflow:auto;}
-#colorpicker #preview {float:right; width:50px; height:14px;line-height:1px; border:1px solid black; margin-left:5px;}
+#colorpicker #preview {display:inline-block; padding-left:40px; height:14px; border:1px solid black; margin-left:5px; margin-right: 5px}
+#colorpicker #previewblock {position: relative; top: -3px; padding-left:5px; padding-top: 0px; display:inline}
+#colorpicker #preview_wrapper { text-align:center; padding-top:4px; white-space: nowrap}
 #colorpicker #colors {float:left; border:1px solid gray; cursor:crosshair;}
 #colorpicker #light {border:1px solid gray; margin-left:5px; float:left;width:15px; height:150px; cursor:crosshair;}
 #colorpicker #light div {overflow:hidden;}
-#colorpicker #previewblock {float:right; padding-left:10px; height:20px;}
 #colorpicker .panel_wrapper div.current {height:175px;}
 #colorpicker #namedcolors {width:150px;}
 #colorpicker #namedcolors a {display:block; float:left; width:10px; height:10px; margin:1px 1px 0 0; overflow:hidden;}
--- a/web/wp-includes/js/tinymce/themes/advanced/skins/highcontrast/ui.css	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/js/tinymce/themes/advanced/skins/highcontrast/ui.css	Wed Dec 19 17:46:52 2012 -0800
@@ -58,7 +58,7 @@
 
 /* Menu */
 .highcontrastSkin .mceNoIcons span.mceIcon {width:0;}
-.highcontrastSkin .mceMenu {position:absolute; left:0; top:0; z-index:1000; border:1px solid; }
+.highcontrastSkin .mceMenu {position:absolute; left:0; top:0; z-index:1000; border:1px solid; direction:ltr}
 .highcontrastSkin .mceMenu table {background:white; color: black}
 .highcontrastSkin .mceNoIcons a .mceText {padding-left:10px}
 .highcontrastSkin .mceMenu a, .highcontrastSkin .mceMenu span, .highcontrastSkin .mceMenu {display:block;background:white; color: black}
@@ -90,6 +90,10 @@
 .highcontrastSkin .mceBlocker {position:absolute; left:0; top:0; z-index:1000; opacity:0.5; -ms-filter:'alpha(opacity=30)'; filter:alpha(opacity=50); background:#FFF}
 .highcontrastSkin .mceProgress {position:absolute; left:0; top:0; z-index:1001; background:url(../default/img/progress.gif) no-repeat; width:32px; height:32px; margin:-16px 0 0 -16px}
 
+/* Rtl */
+.mceRtl .mceListBox .mceText {text-align: right; padding: 0 4px 0 0}
+.mceRtl .mceMenuItem .mceText {text-align: right}
+
 /* Formats */
 .highcontrastSkin .mce_p span.mceText {}
 .highcontrastSkin .mce_address span.mceText {font-style:italic}
--- a/web/wp-includes/js/tinymce/themes/advanced/skins/o2k7/dialog.css	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/js/tinymce/themes/advanced/skins/o2k7/dialog.css	Wed Dec 19 17:46:52 2012 -0800
@@ -105,11 +105,12 @@
 #plugintable, #about #plugintable td {border:1px solid #919B9C;}
 #plugintable {width:96%; margin-top:10px;}
 #pluginscontainer {height:290px; overflow:auto;}
-#colorpicker #preview {float:right; width:50px; height:14px;line-height:1px; border:1px solid black; margin-left:5px;}
+#colorpicker #preview {display:inline-block; padding-left:40px; height:14px; border:1px solid black; margin-left:5px; margin-right: 5px}
+#colorpicker #previewblock {position: relative; top: -3px; padding-left:5px; padding-top: 0px; display:inline}
+#colorpicker #preview_wrapper { text-align:center; padding-top:4px; white-space: nowrap}
 #colorpicker #colors {float:left; border:1px solid gray; cursor:crosshair;}
 #colorpicker #light {border:1px solid gray; margin-left:5px; float:left;width:15px; height:150px; cursor:crosshair;}
 #colorpicker #light div {overflow:hidden;}
-#colorpicker #previewblock {float:right; padding-left:10px; height:20px;}
 #colorpicker .panel_wrapper div.current {height:175px;}
 #colorpicker #namedcolors {width:150px;}
 #colorpicker #namedcolors a {display:block; float:left; width:10px; height:10px; margin:1px 1px 0 0; overflow:hidden;}
--- a/web/wp-includes/js/tinymce/themes/advanced/skins/o2k7/ui.css	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/js/tinymce/themes/advanced/skins/o2k7/ui.css	Wed Dec 19 17:46:52 2012 -0800
@@ -86,7 +86,7 @@
 .o2k7Skin .mce_forecolor span.mceAction, .o2k7Skin .mce_backcolor span.mceAction {height:15px;overflow:hidden}
 
 /* Menu */
-.o2k7Skin .mceMenu {position:absolute; left:0; top:0; z-index:1000; border:1px solid #ABC6DD}
+.o2k7Skin .mceMenu {position:absolute; left:0; top:0; z-index:1000; border:1px solid #ABC6DD; direction:ltr}
 .o2k7Skin .mceNoIcons span.mceIcon {width:0;}
 .o2k7Skin .mceNoIcons a .mceText {padding-left:10px}
 .o2k7Skin .mceMenu table {background:#FFF}
@@ -112,6 +112,10 @@
 .o2k7Skin .mceBlocker {position:absolute; left:0; top:0; z-index:1000; opacity:0.5; -ms-filter:'alpha(opacity=30)'; filter:alpha(opacity=50); background:#FFF}
 .o2k7Skin .mceProgress {position:absolute; left:0; top:0; z-index:1001; background:url(../default/img/progress.gif) no-repeat; width:32px; height:32px; margin:-16px 0 0 -16px}
 
+/* Rtl */
+.mceRtl .mceListBox .mceText {text-align: right; padding: 0 4px 0 0}
+.mceRtl .mceMenuItem .mceText {text-align: right}
+
 /* Formats */
 .o2k7Skin .mce_formatPreview a {font-size:10px}
 .o2k7Skin .mce_p span.mceText {}
@@ -215,3 +219,4 @@
 .o2k7Skin span.mce_pagebreak {background-position:0 -40px}
 .o2k7Skin span.mce_restoredraft {background-position:-20px -40px}
 .o2k7Skin span.mce_spellchecker {background-position:-540px -20px}
+.o2k7Skin span.mce_visualblocks {background-position: -40px -40px}
--- a/web/wp-includes/js/tinymce/themes/advanced/skins/wp_theme/content.css	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/js/tinymce/themes/advanced/skins/wp_theme/content.css	Wed Dec 19 17:46:52 2012 -0800
@@ -43,7 +43,6 @@
 	line-height: 19px;
 	color: #333;
 	margin: 10px;
-	min-height: 100%;
 }
 
 br[data-mce-bogus] {
@@ -141,4 +140,3 @@
 	width: 300px;
 	height: 250px;
 }
-
--- a/web/wp-includes/js/tinymce/themes/advanced/skins/wp_theme/dialog.css	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/js/tinymce/themes/advanced/skins/wp_theme/dialog.css	Wed Dec 19 17:46:52 2012 -0800
@@ -14,6 +14,7 @@
 .nowrap {white-space: nowrap}
 
 /* Forms */
+form {margin: 0;}
 fieldset {margin:0; padding:4px; border:1px solid #dfdfdf; font-family:Verdana, Arial; font-size:10px;}
 legend {color:#2B6FB6; font-weight:bold;}
 label.msg {display:none;}
@@ -27,7 +28,12 @@
 .input_noborder {border:0;}
 
 /* Buttons */
-#insert, #cancel, #apply, .mceActionPanel .button, input.mceButton, .updateButton {
+#insert,
+#cancel,
+#apply,
+.mceActionPanel .button,
+input.mceButton,
+.updateButton {
 	border: 1px solid #bbb; 
 	margin:0; 
 	padding:0 0 1px;
@@ -39,19 +45,29 @@
 	cursor:pointer;
 	-webkit-border-radius: 3px;
 	border-radius: 3px;
-	background-color: #eee; /* Fallback */
-	background-image: -ms-linear-gradient(bottom, #ddd, #fff); /* IE10 */
-	background-image: -moz-linear-gradient(bottom, #ddd, #fff); /* Firefox */
-	background-image: -o-linear-gradient(bottom, #ddd, #fff); /* Opera */
-	background-image: -webkit-gradient(linear, left bottom, left top, from(#ddd), to(#fff)); /* old Webkit */
-	background-image: -webkit-linear-gradient(bottom, #ddd, #fff); /* new Webkit */
-	background-image: linear-gradient(bottom, #ddd, #fff); /* proposed W3C Markup */
+	background-color: #eee;
+	background-image: -webkit-gradient(linear, left bottom, left top, from(#ddd), to(#fff));
+	background-image: -webkit-linear-gradient(bottom, #ddd, #fff);
+	background-image: -moz-linear-gradient(bottom, #ddd, #fff);
+	background-image: -o-linear-gradient(bottom, #ddd, #fff);
+	background-image: linear-gradient(to top, #ddd, #fff);
 }
-#insert:hover, #cancel:hover, input.mceButton:hover, .updateButton:hover,
-#insert:focus, #cancel:focus, input.mceButton:focus, .updateButton:focus {
+
+#insert:hover,
+#cancel:hover,
+input.mceButton:hover,
+.updateButton:hover,
+#insert:focus,
+#cancel:focus,
+input.mceButton:focus,
+.updateButton:focus {
 	border: 1px solid #555;
 }
 
+.mceActionPanel #insert {
+	float: right;
+}
+
 /* Browse */
 a.browse span {display:block; width:20px; height:18px; background:url(../../img/icons.gif) -860px 0; border:1px solid #FFF; margin-left:1px;}
 .mceOldBoxModel a.browse span {width:22px; height:20px;}
@@ -62,6 +78,7 @@
 .mceOldBoxModel a.pickcolor span {width:21px; height:17px;}
 a.pickcolor:hover span {background-color:#B2BBD0;}
 a.pickcolor, a.browse {text-decoration:none}
+div.iframecontainer {background: #fff;}
 
 /* Charmap */
 table.charmap {border:1px solid #AAA; text-align:center}
@@ -109,11 +126,13 @@
 #plugintable, #about #plugintable td {border:1px solid #919B9C;}
 #plugintable {width:96%; margin-top:10px;}
 #pluginscontainer {height:290px; overflow:auto;}
-#colorpicker #preview {float:right; width:50px; height:14px;line-height:1px; border:1px solid black; margin-left:5px;}
+#colorpicker #preview {display:inline-block; padding-left:40px; height:14px; border:1px solid black; margin-left:5px; margin-right: 5px}
+#colorpicker #previewblock {position: relative; top: -3px; padding-left:5px; padding-top: 0px; display:inline}
+#colorpicker #preview_wrapper {text-align:center; padding-top:4px; white-space: nowrap; float: right;}
+#colorpicker #insert, #colorpicker #cancel {width: 90px}
 #colorpicker #colors {float:left; border:1px solid gray; cursor:crosshair;}
 #colorpicker #light {border:1px solid gray; margin-left:5px; float:left;width:15px; height:150px; cursor:crosshair;}
 #colorpicker #light div {overflow:hidden;}
-#colorpicker #previewblock {float:right; padding-left:10px; height:20px;}
 #colorpicker .panel_wrapper div.current {height:175px;}
 #colorpicker #namedcolors {width:150px;}
 #colorpicker #namedcolors a {display:block; float:left; width:10px; height:10px; margin:1px 1px 0 0; overflow:hidden;}
Binary file web/wp-includes/js/tinymce/themes/advanced/skins/wp_theme/img/embedded.png has changed
Binary file web/wp-includes/js/tinymce/themes/advanced/skins/wp_theme/img/gallery.png has changed
Binary file web/wp-includes/js/tinymce/themes/advanced/skins/wp_theme/img/page_bug.gif has changed
Binary file web/wp-includes/js/tinymce/themes/advanced/skins/wp_theme/img/tabs.gif has changed
--- a/web/wp-includes/js/tinymce/themes/advanced/skins/wp_theme/ui.css	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/js/tinymce/themes/advanced/skins/wp_theme/ui.css	Wed Dec 19 17:46:52 2012 -0800
@@ -1,2 +1,380 @@
-/* not used, included for back-compat, see wp-includes/css/editor-buttons.css */
-@import url("../../../../../../css/editor-buttons.css?ver=20111114");
+/* Reset */
+.wp_themeSkin table, .wp_themeSkin tbody, .wp_themeSkin a, .wp_themeSkin img, .wp_themeSkin tr, .wp_themeSkin div, .wp_themeSkin td, .wp_themeSkin iframe, .wp_themeSkin span, .wp_themeSkin *, .wp_themeSkin .mceText {
+border:0; margin:0; padding:0; white-space:nowrap; text-decoration:none; font-weight:normal; cursor:default; vertical-align:baseline; width:auto; border-collapse:separate;
+}
+.wp_themeSkin a:hover, .wp_themeSkin a:link, .wp_themeSkin a:visited, .wp_themeSkin a:active {text-decoration:none; font-weight:normal; cursor:default;}
+.wp_themeSkin table td {vertical-align:middle}
+
+/* Containers */
+.wp_themeSkin table {}
+.wp_themeSkin iframe {display:block;}
+.wp_themeSkin .mceToolbar {padding: 2px;}
+
+/* External */
+.wp_themeSkin .mceExternalToolbar {position:absolute; border-bottom:0; display:none}
+.wp_themeSkin .mceExternalToolbar td.mceToolbar {padding-right:13px;}
+.wp_themeSkin .mceExternalClose {position:absolute; top:3px; right:3px; width:7px; height:7px; background:url(../../img/icons.gif) -820px 0}
+
+/* Layout */
+.wp_themeSkin table.mceToolbar, .wp_themeSkin tr.mceFirst .mceToolbar tr td, .wp_themeSkin tr.mceLast .mceToolbar tr td {border:0; margin:0; padding:0}
+.wp_themeSkin table.mceLayout {border:0;}
+.wp_themeSkin .mceIframeContainer {}
+.wp_themeSkin .mceStatusbar {
+	display: block;
+	font-family: 'MS Sans Serif',sans-serif,Verdana,Arial;
+	font-size: 9pt;
+	line-height: 16px;
+	overflow: visible;
+	height: 20px;
+	border-top-width: 1px;
+	border-top-style: solid;
+}
+.wp_themeSkin .mceStatusbar div {float:left; padding:2px;}
+.wp_themeSkin .mceStatusbar a.mceResize {
+	display: block;
+	float: right;
+	background: url(../../img/icons.gif) -800px 0;
+	width: 20px;
+	height: 20px;
+	cursor: se-resize
+}
+.wp_themeSkin .mceStatusbar a:hover {text-decoration:underline}
+.wp_themeSkin table.mceToolbar {margin: 0 2px 2px;}
+.wp_themeSkin #content_toolbar1 {margin-top: 2px;}
+.wp_themeSkin .mceToolbar .mceToolbarEndListBox span {display:none}
+.wp_themeSkin span.mceIcon, .wp_themeSkin img.mceIcon {display:block; width:20px; height:20px}
+.wp_themeSkin .mceIcon {background:url(../../img/icons.gif) no-repeat 20px 20px}
+
+/* Button */
+.wp_themeSkin .mceButton {
+	display:block; 
+	width: 20px; 
+	height: 20px; 
+	cursor: default; 
+	padding: 1px 2px; 
+	margin: 1px; 
+	background-image: url(img/butt2.png);
+	background-position: left top;
+	background-repeat: repeat-x;
+	-moz-border-radius: 3px;
+	-webkit-border-radius: 3px;
+	-khtml-border-radius: 3px;
+	border-radius: 3px;
+}
+.wp_themeSkin a.mceButton span, .wp_themeSkin a.mceButton img {}
+.wp_themeSkin .mceOldBoxModel a.mceButton span, .wp_themeSkin .mceOldBoxModel a.mceButton img {margin:0 0 0 1px}
+.wp_themeSkin a.mceButtonEnabled:hover {
+	background-position:0 -10px;
+}
+.wp_themeSkin a.mceButtonActive, .wp_themeSkin a.mceButtonSelected {
+	background-image: inherit;
+}
+.wp_themeSkin .mceButtonDisabled .mceIcon {opacity:0.3; filter:alpha(opacity=30);}
+.wp_themeSkin .mceButtonDisabled {}
+
+/* Separator */
+.wp_themeSkin .mceSeparator { 
+	height: 24px; 
+	width: 1px;
+	display: block;
+	background: transparent;
+	overflow: hidden; 
+	margin: 0 2px; 
+}
+
+/* ListBox */
+.wp_themeSkin .mceListBox, .wp_themeSkin .mceListBox a {display:block}
+.wp_themeSkin .mceListBox .mceText {
+	padding: 1px 2px 1px 5px;
+	text-align:left; 
+	text-decoration: none !important;
+	width:70px;  
+	background-image: url(img/butt2.png);
+	background-position: left top;
+	background-repeat: repeat-x;
+	font-family: Tahoma,Verdana,Arial,Helvetica; 
+	font-size: 11px; 
+	height: 20px; 
+	line-height: 20px; 
+	overflow: hidden;
+}
+.wp_themeSkin .mceListBox {
+	margin: 1px;
+	direction: ltr;
+}
+.wp_themeSkin .mceListBox .mceOpen {
+	width: 14px;
+	height: 20px; 
+	border-collapse: separate;
+	background-image: url(img/butt2.png);
+	background-position: left top;
+	background-repeat: repeat-x;
+	padding: 1px;
+	border-left: 0 none !important;
+}
+.wp_themeSkin .mceListBox .mceOpen span {
+	display: block;
+	width:14px;
+	height:20px;
+	background-image: url(img/down_arrow.gif);
+	background-position: 2px 1px;
+	background-repeat: no-repeat;
+}
+.wp_themeSkin table.mceListBoxEnabled:hover .mceText, 
+.wp_themeSkin .mceListBoxHover .mceText, 
+.wp_themeSkin .mceListBoxSelected .mceText,
+.wp_themeSkin table.mceListBoxEnabled:hover .mceOpen, 
+.wp_themeSkin .mceListBoxHover .mceOpen, 
+.wp_themeSkin .mceListBoxSelected .mceOpen {
+	background-image: none;
+}
+.wp_themeSkin .mceListBoxDisabled .mceText {color:gray}
+.wp_themeSkin .mceListBoxMenu {overflow:auto; overflow-x:hidden}
+.wp_themeSkin .mceOldBoxModel .mceListBox .mceText {height:22px}
+.wp_themeSkin select.mceListBox {font-family:Tahoma,Verdana,Arial,Helvetica; font-size:12px;}
+
+/* SplitButton */
+.wp_themeSkin .mceSplitButton a, .wp_themeSkin .mceSplitButton span {display:block; height:20px}
+.wp_themeSkin .mceSplitButton { 
+	display:block;
+	margin: 1px;
+	direction: ltr;
+}
+.wp_themeSkin table.mceSplitButton td {
+	padding: 2px;
+	background-image: url(img/butt2.png);
+	background-position: left top;
+	background-repeat: repeat-x;
+}
+.wp_themeSkin .mceSplitButton a.mceAction {
+	height:20px;
+	width:20px;
+	padding: 1px 2px;
+}
+.wp_themeSkin .mceSplitButton span.mceAction {
+	background: url(../../img/icons.gif) 20px 20px;
+	width:20px; 
+}
+.wp_themeSkin .mceSplitButton a.mceOpen {
+	width:10px;
+	height:20px;
+	background-image: url(img/down_arrow.gif);
+	background-position: 1px 2px;
+	background-repeat: no-repeat;
+	padding: 1px;
+	border-left: 0 none !important;
+}
+.wp_themeSkin .mceSplitButton span.mceOpen {display:none}
+.wp_themeSkin .mceSplitButtonDisabled .mceAction {
+	opacity:0.3; filter:alpha(opacity=30);
+}
+.wp_themeSkin .mceListBox a.mceText, .wp_themeSkin .mceSplitButton a.mceAction {
+	-moz-border-radius-bottomleft: 3px;
+	-webkit-border-bottom-left-radius: 3px;
+	-khtml-border-bottom-left-radius: 3px;
+	border-bottom-left-radius: 3px;
+	-moz-border-radius-topleft: 3px;
+	-webkit-border-top-left-radius: 3px;
+	-khtml-border-top-left-radius: 3px;
+	border-top-left-radius: 3px;
+}
+.wp_themeSkin .mceSplitButton a.mceOpen, .wp_themeSkin .mceListBox a.mceOpen {
+	-moz-border-radius-bottomright: 3px;
+	-webkit-border-bottom-right-radius: 3px;
+	-khtml-border-bottom-right-radius: 3px;
+	border-bottom-right-radius: 3px;
+	-moz-border-radius-topright: 3px;
+	-webkit-border-top-right-radius: 3px;
+	-khtml-border-top-right-radius: 3px;
+	border-top-right-radius: 3px;
+}
+
+/* ColorSplitButton */
+.wp_themeSkin div.mceColorSplitMenu table {}
+.wp_themeSkin .mceColorSplitMenu td {padding:2px}
+.wp_themeSkin .mceColorSplitMenu a {display:block; width:9px; height:9px; overflow:hidden;}
+.wp_themeSkin .mceColorSplitMenu td.mceMoreColors {padding:1px 3px 1px 1px}
+.wp_themeSkin .mceColorSplitMenu a.mceMoreColors {width:100%; height:auto; text-align:center; font-family:Tahoma,Verdana,Arial,Helvetica; font-size:11px; line-height:20px;}
+.wp_themeSkin .mceColorSplitMenu a.mceMoreColors:hover {}
+.wp_themeSkin a.mceMoreColors:hover {}
+.wp_themeSkin .mceColorPreview {margin: -4px 0 0 2px; width:16px; height:4px; overflow:hidden}
+
+/* Menu */
+.wp_themeSkin .mceMenu {position:absolute; left:0; top:0; z-index:1000;}
+.wp_themeSkin .mceNoIcons span.mceIcon {width:0;}
+.wp_themeSkin .mceNoIcons a .mceText {padding-left:10px}
+.wp_themeSkin .mceMenu table {}
+.wp_themeSkin .mceMenu a, .wp_themeSkin .mceMenu span, .wp_themeSkin .mceMenu {display:block}
+.wp_themeSkin .mceMenu td {height:20px;overflow:hidden;}
+.wp_themeSkin .mceMenu a {
+	position:relative;
+	padding:3px 0 4px 0;
+	text-decoration: none !important;
+}
+.wp_themeSkin .mceMenu .mceText {
+	position:relative; 
+	display:block; 
+	font-family:Tahoma,Verdana,Arial,Helvetica; 
+	cursor:default; 
+	margin:0; 
+	padding:0 25px;
+}
+.wp_themeSkin .mceMenu span.mceText, .wp_themeSkin .mceMenu .mcePreview {font-size:11px}
+.wp_themeSkin .mceMenu pre.mceText {font-family:Monospace}
+.wp_themeSkin .mceMenu .mceIcon {position:absolute; top:0; left:0; width:22px;}
+.wp_themeSkin .mceMenu .mceMenuItemEnabled a:hover, 
+.wp_themeSkin .mceMenu .mceMenuItemActive {}
+.wp_themeSkin td.mceMenuItemSeparator {height:1px}
+.wp_themeSkin .mceMenuItemTitle a {
+	border-top: 0;
+	border-right: 0;
+	border-left: 0;
+	border-bottom-style: solid;
+	border-bottom-width: 1px;
+	text-decoration: none !important;
+}
+.wp_themeSkin .mceMenuItemTitle span.mceText {font-weight:bold; padding-left:4px}
+.wp_themeSkin .mceMenuItemDisabled .mceText {}
+.wp_themeSkin .mceMenuItemSelected .mceIcon {background:url(../default/img/menu_check.gif)}
+.wp_themeSkin .mceNoIcons .mceMenuItemSelected a {background:url(../default/img/menu_arrow.gif) no-repeat -6px center}
+.wp_themeSkin .mceMenu span.mceMenuLine {display:none}
+.wp_themeSkin .mceMenuItemSub a {background:url(../default/img/menu_arrow.gif) no-repeat top right;}
+
+/* Progress,Resize */
+.wp_themeSkin .mceBlocker {position:absolute; left:0; top:0; z-index:1000; opacity:0.5; filter:alpha(opacity=50); background:#FFF}
+.wp_themeSkin .mceProgress {position:absolute; left:0; top:0; z-index:1001; background:url(../default/img/progress.gif) no-repeat; width:32px; height:32px; margin:-16px 0 0 -16px}
+.wp_themeSkin .mcePlaceHolder {border:1px dotted gray}
+
+/* Formats */
+.wp_themeSkin .mce_formatPreview a {font-size:10px}
+.wp_themeSkin .mce_p span.mceText {}
+.wp_themeSkin .mce_address span.mceText {font-style:italic}
+.wp_themeSkin .mce_pre span.mceText {font-family:monospace}
+.wp_themeSkin .mce_h1 span.mceText {font-weight:bolder; font-size: 2em}
+.wp_themeSkin .mce_h2 span.mceText {font-weight:bolder; font-size: 1.5em}
+.wp_themeSkin .mce_h3 span.mceText {font-weight:bolder; font-size: 1.17em}
+.wp_themeSkin .mce_h4 span.mceText {font-weight:bolder; font-size: 1em}
+.wp_themeSkin .mce_h5 span.mceText {font-weight:bolder; font-size: .83em}
+.wp_themeSkin .mce_h6 span.mceText {font-weight:bolder; font-size: .75em}
+
+/* Theme */
+.wp_themeSkin span.mce_bold {background-position:0 0}
+.wp_themeSkin span.mce_italic {background-position:-60px 0}
+.wp_themeSkin span.mce_underline {background-position:-140px 0}
+.wp_themeSkin span.mce_strikethrough {background-position:-120px 0}
+.wp_themeSkin span.mce_undo {background-position:-160px 0}
+.wp_themeSkin span.mce_redo {background-position:-100px 0}
+.wp_themeSkin span.mce_cleanup {background-position:-40px 0}
+.wp_themeSkin span.mce_bullist {background-position:-20px 0}
+.wp_themeSkin span.mce_numlist {background-position:-80px 0}
+.wp_themeSkin span.mce_justifyleft {background-position:-460px 0}
+.wp_themeSkin span.mce_justifyright {background-position:-480px 0}
+.wp_themeSkin span.mce_justifycenter {background-position:-420px 0}
+.wp_themeSkin span.mce_justifyfull {background-position:-440px 0}
+.wp_themeSkin span.mce_anchor {background-position:-200px 0}
+.wp_themeSkin span.mce_indent {background-position:-400px 0}
+.wp_themeSkin span.mce_outdent {background-position:-540px 0}
+.wp_themeSkin span.mce_link {background-position:-500px 0}
+.wp_themeSkin span.mce_unlink {background-position:-640px 0}
+.wp_themeSkin span.mce_sub {background-position:-600px 0}
+.wp_themeSkin span.mce_sup {background-position:-620px 0}
+.wp_themeSkin span.mce_removeformat {background-position:-580px 0}
+.wp_themeSkin span.mce_newdocument {background-position:-520px 0}
+.wp_themeSkin span.mce_image {background-position:-380px 0}
+.wp_themeSkin span.mce_help {background-position:-340px 0}
+.wp_themeSkin span.mce_code {background-position:-260px 0}
+.wp_themeSkin span.mce_hr {background-position:-360px 0}
+.wp_themeSkin span.mce_visualaid {background-position:-660px 0}
+.wp_themeSkin span.mce_charmap {background-position:-240px 0}
+.wp_themeSkin span.mce_paste {background-position:-560px 0}
+.wp_themeSkin span.mce_copy {background-position:-700px 0}
+.wp_themeSkin span.mce_cut {background-position:-680px 0}
+.wp_themeSkin span.mce_blockquote {background-position:-220px 0}
+.wp_themeSkin .mce_forecolor span.mceAction {background-position:-720px 0}
+.wp_themeSkin .mce_backcolor span.mceAction {background-position:-760px 0}
+.wp_themeSkin .mce_forecolorpicker {background-position:-720px 0}
+.wp_themeSkin .mce_backcolorpicker {background-position:-760px 0}
+
+/* Plugins */
+.wp_themeSkin span.mce_advhr {background-position:-0px -20px}
+.wp_themeSkin span.mce_ltr {background-position:-20px -20px}
+.wp_themeSkin span.mce_rtl {background-position:-40px -20px}
+.wp_themeSkin span.mce_emotions {background-position:-60px -20px}
+.wp_themeSkin span.mce_fullpage {background-position:-80px -20px}
+.wp_themeSkin span.mce_fullscreen {background-position:-100px -20px}
+.wp_themeSkin span.mce_iespell {background-position:-120px -20px}
+.wp_themeSkin span.mce_insertdate {background-position:-140px -20px}
+.wp_themeSkin span.mce_inserttime {background-position:-160px -20px}
+.wp_themeSkin span.mce_absolute {background-position:-180px -20px}
+.wp_themeSkin span.mce_backward {background-position:-200px -20px}
+.wp_themeSkin span.mce_forward {background-position:-220px -20px}
+.wp_themeSkin span.mce_insert_layer {background-position:-240px -20px}
+.wp_themeSkin span.mce_insertlayer {background-position:-260px -20px}
+.wp_themeSkin span.mce_movebackward {background-position:-280px -20px}
+.wp_themeSkin span.mce_moveforward {background-position:-300px -20px}
+.wp_themeSkin span.mce_media {background-position:-320px -20px}
+.wp_themeSkin span.mce_nonbreaking {background-position:-340px -20px}
+.wp_themeSkin span.mce_pastetext {background-position:-360px -20px}
+.wp_themeSkin span.mce_pasteword {background-position:-380px -20px}
+.wp_themeSkin span.mce_selectall {background-position:-400px -20px}
+.wp_themeSkin span.mce_preview {background-position:-420px -20px}
+.wp_themeSkin span.mce_print {background-position:-440px -20px}
+.wp_themeSkin span.mce_cancel {background-position:-460px -20px}
+.wp_themeSkin span.mce_save {background-position:-480px -20px}
+.wp_themeSkin span.mce_replace {background-position:-500px -20px}
+.wp_themeSkin span.mce_search {background-position:-520px -20px}
+.wp_themeSkin span.mce_styleprops {background-position:-560px -20px}
+.wp_themeSkin span.mce_table {background-position:-580px -20px}
+.wp_themeSkin span.mce_cell_props {background-position:-600px -20px}
+.wp_themeSkin span.mce_delete_table {background-position:-620px -20px}
+.wp_themeSkin span.mce_delete_col {background-position:-640px -20px}
+.wp_themeSkin span.mce_delete_row {background-position:-660px -20px}
+.wp_themeSkin span.mce_col_after {background-position:-680px -20px}
+.wp_themeSkin span.mce_col_before {background-position:-700px -20px}
+.wp_themeSkin span.mce_row_after {background-position:-720px -20px}
+.wp_themeSkin span.mce_row_before {background-position:-740px -20px}
+.wp_themeSkin span.mce_merge_cells {background-position:-760px -20px}
+.wp_themeSkin span.mce_table_props {background-position:-980px -20px}
+.wp_themeSkin span.mce_row_props {background-position:-780px -20px}
+.wp_themeSkin span.mce_split_cells {background-position:-800px -20px}
+.wp_themeSkin span.mce_template {background-position:-820px -20px}
+.wp_themeSkin span.mce_visualchars {background-position:-840px -20px}
+.wp_themeSkin span.mce_abbr {background-position:-860px -20px}
+.wp_themeSkin span.mce_acronym {background-position:-880px -20px}
+.wp_themeSkin span.mce_attribs {background-position:-900px -20px}
+.wp_themeSkin span.mce_cite {background-position:-920px -20px}
+.wp_themeSkin span.mce_del {background-position:-940px -20px}
+.wp_themeSkin span.mce_ins {background-position:-960px -20px}
+.wp_themeSkin span.mce_pagebreak {background-position:0 -40px}
+.wp_themeSkin .mce_spellchecker span.mceAction {background-position:-540px -20px}
+
+/* border */
+.wp_themeSkin .mceExternalToolbar, 
+.wp_themeSkin .mceButton, 
+.wp_themeSkin a.mceButtonEnabled:hover, 
+.wp_themeSkin a.mceButtonActive, 
+.wp_themeSkin a.mceButtonSelected, 
+.wp_themeSkin .mceListBox .mceText, 
+.wp_themeSkin .mceListBox .mceOpen, 
+.wp_themeSkin table.mceListBoxEnabled:hover .mceText, 
+.wp_themeSkin .mceListBoxHover .mceText, 
+.wp_themeSkin .mceListBoxSelected .mceText, 
+.wp_themeSkin table.mceListBoxEnabled:hover .mceOpen, 
+.wp_themeSkin .mceListBoxHover .mceOpen, 
+.wp_themeSkin .mceListBoxSelected .mceOpen, 
+.wp_themeSkin select.mceListBox, 
+.wp_themeSkin .mceSplitButton a.mceAction, 
+.wp_themeSkin .mceSplitButton a.mceOpen,
+.wp_themeSkin .mceSplitButton a.mceOpen:hover, 
+.wp_themeSkin .mceSplitButtonSelected a.mceOpen, 
+.wp_themeSkin table.mceSplitButtonEnabled:hover a.mceAction, 
+.wp_themeSkin .mceSplitButton a.mceAction:hover, 
+.wp_themeSkin div.mceColorSplitMenu table, 
+.wp_themeSkin .mceColorSplitMenu a, 
+.wp_themeSkin .mceColorSplitMenu a.mceMoreColors, 
+.wp_themeSkin .mceColorSplitMenu a.mceMoreColors:hover, 
+.wp_themeSkin a.mceMoreColors:hover, 
+.wp_themeSkin .mceMenu {
+	border-style: solid; 
+	border-width: 1px;
+}
--- a/web/wp-includes/js/tinymce/themes/advanced/source_editor.htm	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/js/tinymce/themes/advanced/source_editor.htm	Wed Dec 19 17:46:52 2012 -0800
@@ -1,10 +1,10 @@
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
 	<title>{#advanced_dlg.code_title}</title>
-	<script type="text/javascript" src="../../tiny_mce_popup.js?ver=349-20120314"></script>
-	<script type="text/javascript" src="js/source_editor.js?ver=349-20120314"></script>
+	<script type="text/javascript" src="../../tiny_mce_popup.js?ver=358-20121205"></script>
+	<script type="text/javascript" src="js/source_editor.js?ver=358-20121205"></script>
 </head>
-<body onresize="resizeInputs();" style="display:none; overflow:hidden;">
+<body onresize="resizeInputs();" style="display:none; overflow:hidden;" spellcheck="false">
 	<form name="source" onsubmit="saveContent();return false;" action="#">
 		<div style="float: left" class="title"><label for="htmlSource">{#advanced_dlg.code_title}</label></div>
 
@@ -17,13 +17,8 @@
 		<textarea name="htmlSource" id="htmlSource" rows="15" cols="100" style="width: 100%; height: 100%; font-family: 'Courier New',Courier,monospace; font-size: 12px;" dir="ltr" wrap="off" class="mceFocus"></textarea>
 
 		<div class="mceActionPanel">
-			<div style="float: left">
-				<input type="button" role="button" name="cancel" value="{#cancel}" onclick="tinyMCEPopup.close();" id="cancel" />
-			</div>
-
-			<div style="float: right">
-				<input type="submit" role="button" name="insert" value="{#update}" id="insert" />
-			</div>
+			<input type="submit" role="button" name="insert" value="{#update}" id="insert" />
+			<input type="button" role="button" name="cancel" value="{#cancel}" onclick="tinyMCEPopup.close();" id="cancel" />
 		</div>
 	</form>
 </body>
--- a/web/wp-includes/js/tinymce/tiny_mce.js	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/js/tinymce/tiny_mce.js	Wed Dec 19 17:46:52 2012 -0800
@@ -1,1 +1,1 @@
-(function(d){var a=/^\s*|\s*$/g,e,c="B".replace(/A(.)|B/,"$1")==="$1";var b={majorVersion:"3",minorVersion:"4.9",releaseDate:"2012-02-23",_init:function(){var s=this,q=document,o=navigator,g=o.userAgent,m,f,l,k,j,r;s.isOpera=d.opera&&opera.buildNumber;s.isWebKit=/WebKit/.test(g);s.isIE=!s.isWebKit&&!s.isOpera&&(/MSIE/gi).test(g)&&(/Explorer/gi).test(o.appName);s.isIE6=s.isIE&&/MSIE [56]/.test(g);s.isIE7=s.isIE&&/MSIE [7]/.test(g);s.isIE8=s.isIE&&/MSIE [8]/.test(g);s.isIE9=s.isIE&&/MSIE [9]/.test(g);s.isGecko=!s.isWebKit&&/Gecko/.test(g);s.isMac=g.indexOf("Mac")!=-1;s.isAir=/adobeair/i.test(g);s.isIDevice=/(iPad|iPhone)/.test(g);s.isIOS5=s.isIDevice&&g.match(/AppleWebKit\/(\d*)/)[1]>=534;if(d.tinyMCEPreInit){s.suffix=tinyMCEPreInit.suffix;s.baseURL=tinyMCEPreInit.base;s.query=tinyMCEPreInit.query;return}s.suffix="";f=q.getElementsByTagName("base");for(m=0;m<f.length;m++){if(r=f[m].href){if(/^https?:\/\/[^\/]+$/.test(r)){r+="/"}k=r?r.match(/.*\//)[0]:""}}function h(i){if(i.src&&/tiny_mce(|_gzip|_jquery|_prototype|_full)(_dev|_src)?.js/.test(i.src)){if(/_(src|dev)\.js/g.test(i.src)){s.suffix="_src"}if((j=i.src.indexOf("?"))!=-1){s.query=i.src.substring(j+1)}s.baseURL=i.src.substring(0,i.src.lastIndexOf("/"));if(k&&s.baseURL.indexOf("://")==-1&&s.baseURL.indexOf("/")!==0){s.baseURL=k+s.baseURL}return s.baseURL}return null}f=q.getElementsByTagName("script");for(m=0;m<f.length;m++){if(h(f[m])){return}}l=q.getElementsByTagName("head")[0];if(l){f=l.getElementsByTagName("script");for(m=0;m<f.length;m++){if(h(f[m])){return}}}return},is:function(g,f){if(!f){return g!==e}if(f=="array"&&(g.hasOwnProperty&&g instanceof Array)){return true}return typeof(g)==f},makeMap:function(f,j,h){var g;f=f||[];j=j||",";if(typeof(f)=="string"){f=f.split(j)}h=h||{};g=f.length;while(g--){h[f[g]]={}}return h},each:function(i,f,h){var j,g;if(!i){return 0}h=h||i;if(i.length!==e){for(j=0,g=i.length;j<g;j++){if(f.call(h,i[j],j,i)===false){return 0}}}else{for(j in i){if(i.hasOwnProperty(j)){if(f.call(h,i[j],j,i)===false){return 0}}}}return 1},map:function(g,h){var i=[];b.each(g,function(f){i.push(h(f))});return i},grep:function(g,h){var i=[];b.each(g,function(f){if(!h||h(f)){i.push(f)}});return i},inArray:function(g,h){var j,f;if(g){for(j=0,f=g.length;j<f;j++){if(g[j]===h){return j}}}return -1},extend:function(k,j){var h,g,f=arguments;for(h=1,g=f.length;h<g;h++){j=f[h];b.each(j,function(i,l){if(i!==e){k[l]=i}})}return k},trim:function(f){return(f?""+f:"").replace(a,"")},create:function(o,f,j){var n=this,g,i,k,l,h,m=0;o=/^((static) )?([\w.]+)(:([\w.]+))?/.exec(o);k=o[3].match(/(^|\.)(\w+)$/i)[2];i=n.createNS(o[3].replace(/\.\w+$/,""),j);if(i[k]){return}if(o[2]=="static"){i[k]=f;if(this.onCreate){this.onCreate(o[2],o[3],i[k])}return}if(!f[k]){f[k]=function(){};m=1}i[k]=f[k];n.extend(i[k].prototype,f);if(o[5]){g=n.resolve(o[5]).prototype;l=o[5].match(/\.(\w+)$/i)[1];h=i[k];if(m){i[k]=function(){return g[l].apply(this,arguments)}}else{i[k]=function(){this.parent=g[l];return h.apply(this,arguments)}}i[k].prototype[k]=i[k];n.each(g,function(p,q){i[k].prototype[q]=g[q]});n.each(f,function(p,q){if(g[q]){i[k].prototype[q]=function(){this.parent=g[q];return p.apply(this,arguments)}}else{if(q!=k){i[k].prototype[q]=p}}})}n.each(f["static"],function(p,q){i[k][q]=p});if(this.onCreate){this.onCreate(o[2],o[3],i[k].prototype)}},walk:function(i,h,j,g){g=g||this;if(i){if(j){i=i[j]}b.each(i,function(k,f){if(h.call(g,k,f,j)===false){return false}b.walk(k,h,j,g)})}},createNS:function(j,h){var g,f;h=h||d;j=j.split(".");for(g=0;g<j.length;g++){f=j[g];if(!h[f]){h[f]={}}h=h[f]}return h},resolve:function(j,h){var g,f;h=h||d;j=j.split(".");for(g=0,f=j.length;g<f;g++){h=h[j[g]];if(!h){break}}return h},addUnload:function(j,i){var h=this;j={func:j,scope:i||this};if(!h.unloads){function g(){var f=h.unloads,l,m;if(f){for(m in f){l=f[m];if(l&&l.func){l.func.call(l.scope,1)}}if(d.detachEvent){d.detachEvent("onbeforeunload",k);d.detachEvent("onunload",g)}else{if(d.removeEventListener){d.removeEventListener("unload",g,false)}}h.unloads=l=f=w=g=0;if(d.CollectGarbage){CollectGarbage()}}}function k(){var l=document;if(l.readyState=="interactive"){function f(){l.detachEvent("onstop",f);if(g){g()}l=0}if(l){l.attachEvent("onstop",f)}d.setTimeout(function(){if(l){l.detachEvent("onstop",f)}},0)}}if(d.attachEvent){d.attachEvent("onunload",g);d.attachEvent("onbeforeunload",k)}else{if(d.addEventListener){d.addEventListener("unload",g,false)}}h.unloads=[j]}else{h.unloads.push(j)}return j},removeUnload:function(i){var g=this.unloads,h=null;b.each(g,function(j,f){if(j&&j.func==i){g.splice(f,1);h=i;return false}});return h},explode:function(f,g){return f?b.map(f.split(g||","),b.trim):f},_addVer:function(g){var f;if(!this.query){return g}f=(g.indexOf("?")==-1?"?":"&")+this.query;if(g.indexOf("#")==-1){return g+f}return g.replace("#",f+"#")},_replace:function(h,f,g){if(c){return g.replace(h,function(){var l=f,j=arguments,k;for(k=0;k<j.length-2;k++){if(j[k]===e){l=l.replace(new RegExp("\\$"+k,"g"),"")}else{l=l.replace(new RegExp("\\$"+k,"g"),j[k])}}return l})}return g.replace(h,f)}};b._init();d.tinymce=d.tinyMCE=b})(window);tinymce.create("tinymce.util.Dispatcher",{scope:null,listeners:null,Dispatcher:function(a){this.scope=a||this;this.listeners=[]},add:function(a,b){this.listeners.push({cb:a,scope:b||this.scope});return a},addToTop:function(a,b){this.listeners.unshift({cb:a,scope:b||this.scope});return a},remove:function(a){var b=this.listeners,c=null;tinymce.each(b,function(e,d){if(a==e.cb){c=a;b.splice(d,1);return false}});return c},dispatch:function(){var f,d=arguments,e,b=this.listeners,g;for(e=0;e<b.length;e++){g=b[e];f=g.cb.apply(g.scope,d.length>0?d:[g.scope]);if(f===false){break}}return f}});(function(){var a=tinymce.each;tinymce.create("tinymce.util.URI",{URI:function(e,g){var f=this,i,d,c,h;e=tinymce.trim(e);g=f.settings=g||{};if(/^([\w\-]+):([^\/]{2})/i.test(e)||/^\s*#/.test(e)){f.source=e;return}if(e.indexOf("/")===0&&e.indexOf("//")!==0){e=(g.base_uri?g.base_uri.protocol||"http":"http")+"://mce_host"+e}if(!/^[\w-]*:?\/\//.test(e)){h=g.base_uri?g.base_uri.path:new tinymce.util.URI(location.href).directory;e=((g.base_uri&&g.base_uri.protocol)||"http")+"://mce_host"+f.toAbsPath(h,e)}e=e.replace(/@@/g,"(mce_at)");e=/^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/)?((?:(([^:@\/]*):?([^:@\/]*))?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/.exec(e);a(["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"],function(b,j){var k=e[j];if(k){k=k.replace(/\(mce_at\)/g,"@@")}f[b]=k});if(c=g.base_uri){if(!f.protocol){f.protocol=c.protocol}if(!f.userInfo){f.userInfo=c.userInfo}if(!f.port&&f.host=="mce_host"){f.port=c.port}if(!f.host||f.host=="mce_host"){f.host=c.host}f.source=""}},setPath:function(c){var b=this;c=/^(.*?)\/?(\w+)?$/.exec(c);b.path=c[0];b.directory=c[1];b.file=c[2];b.source="";b.getURI()},toRelative:function(b){var c=this,d;if(b==="./"){return b}b=new tinymce.util.URI(b,{base_uri:c});if((b.host!="mce_host"&&c.host!=b.host&&b.host)||c.port!=b.port||c.protocol!=b.protocol){return b.getURI()}d=c.toRelPath(c.path,b.path);if(b.query){d+="?"+b.query}if(b.anchor){d+="#"+b.anchor}return d},toAbsolute:function(b,c){var b=new tinymce.util.URI(b,{base_uri:this});return b.getURI(this.host==b.host&&this.protocol==b.protocol?c:0)},toRelPath:function(g,h){var c,f=0,d="",e,b;g=g.substring(0,g.lastIndexOf("/"));g=g.split("/");c=h.split("/");if(g.length>=c.length){for(e=0,b=g.length;e<b;e++){if(e>=c.length||g[e]!=c[e]){f=e+1;break}}}if(g.length<c.length){for(e=0,b=c.length;e<b;e++){if(e>=g.length||g[e]!=c[e]){f=e+1;break}}}if(f==1){return h}for(e=0,b=g.length-(f-1);e<b;e++){d+="../"}for(e=f-1,b=c.length;e<b;e++){if(e!=f-1){d+="/"+c[e]}else{d+=c[e]}}return d},toAbsPath:function(e,f){var c,b=0,h=[],d,g;d=/\/$/.test(f)?"/":"";e=e.split("/");f=f.split("/");a(e,function(i){if(i){h.push(i)}});e=h;for(c=f.length-1,h=[];c>=0;c--){if(f[c].length==0||f[c]=="."){continue}if(f[c]==".."){b++;continue}if(b>0){b--;continue}h.push(f[c])}c=e.length-b;if(c<=0){g=h.reverse().join("/")}else{g=e.slice(0,c).join("/")+"/"+h.reverse().join("/")}if(g.indexOf("/")!==0){g="/"+g}if(d&&g.lastIndexOf("/")!==g.length-1){g+=d}return g},getURI:function(d){var c,b=this;if(!b.source||d){c="";if(!d){if(b.protocol){c+=b.protocol+"://"}if(b.userInfo){c+=b.userInfo+"@"}if(b.host){c+=b.host}if(b.port){c+=":"+b.port}}if(b.path){c+=b.path}if(b.query){c+="?"+b.query}if(b.anchor){c+="#"+b.anchor}b.source=c}return b.source}})})();(function(){var a=tinymce.each;tinymce.create("static tinymce.util.Cookie",{getHash:function(d){var b=this.get(d),c;if(b){a(b.split("&"),function(e){e=e.split("=");c=c||{};c[unescape(e[0])]=unescape(e[1])})}return c},setHash:function(j,b,g,f,i,c){var h="";a(b,function(e,d){h+=(!h?"":"&")+escape(d)+"="+escape(e)});this.set(j,h,g,f,i,c)},get:function(i){var h=document.cookie,g,f=i+"=",d;if(!h){return}d=h.indexOf("; "+f);if(d==-1){d=h.indexOf(f);if(d!=0){return null}}else{d+=2}g=h.indexOf(";",d);if(g==-1){g=h.length}return unescape(h.substring(d+f.length,g))},set:function(i,b,g,f,h,c){document.cookie=i+"="+escape(b)+((g)?"; expires="+g.toGMTString():"")+((f)?"; path="+escape(f):"")+((h)?"; domain="+h:"")+((c)?"; secure":"")},remove:function(e,b){var c=new Date();c.setTime(c.getTime()-1000);this.set(e,"",c,b,c)}})})();(function(){function serialize(o,quote){var i,v,t;quote=quote||'"';if(o==null){return"null"}t=typeof o;if(t=="string"){v="\bb\tt\nn\ff\rr\"\"''\\\\";return quote+o.replace(/([\u0080-\uFFFF\x00-\x1f\"\'\\])/g,function(a,b){if(quote==='"'&&a==="'"){return a}i=v.indexOf(b);if(i+1){return"\\"+v.charAt(i+1)}a=b.charCodeAt().toString(16);return"\\u"+"0000".substring(a.length)+a})+quote}if(t=="object"){if(o.hasOwnProperty&&o instanceof Array){for(i=0,v="[";i<o.length;i++){v+=(i>0?",":"")+serialize(o[i],quote)}return v+"]"}v="{";for(i in o){if(o.hasOwnProperty(i)){v+=typeof o[i]!="function"?(v.length>1?","+quote:quote)+i+quote+":"+serialize(o[i],quote):""}}return v+"}"}return""+o}tinymce.util.JSON={serialize:serialize,parse:function(s){try{return eval("("+s+")")}catch(ex){}}}})();tinymce.create("static tinymce.util.XHR",{send:function(g){var a,e,b=window,h=0;g.scope=g.scope||this;g.success_scope=g.success_scope||g.scope;g.error_scope=g.error_scope||g.scope;g.async=g.async===false?false:true;g.data=g.data||"";function d(i){a=0;try{a=new ActiveXObject(i)}catch(c){}return a}a=b.XMLHttpRequest?new XMLHttpRequest():d("Microsoft.XMLHTTP")||d("Msxml2.XMLHTTP");if(a){if(a.overrideMimeType){a.overrideMimeType(g.content_type)}a.open(g.type||(g.data?"POST":"GET"),g.url,g.async);if(g.content_type){a.setRequestHeader("Content-Type",g.content_type)}a.setRequestHeader("X-Requested-With","XMLHttpRequest");a.send(g.data);function f(){if(!g.async||a.readyState==4||h++>10000){if(g.success&&h<10000&&a.status==200){g.success.call(g.success_scope,""+a.responseText,a,g)}else{if(g.error){g.error.call(g.error_scope,h>10000?"TIMED_OUT":"GENERAL",a,g)}}a=null}else{b.setTimeout(f,10)}}if(!g.async){return f()}e=b.setTimeout(f,10)}}});(function(){var c=tinymce.extend,b=tinymce.util.JSON,a=tinymce.util.XHR;tinymce.create("tinymce.util.JSONRequest",{JSONRequest:function(d){this.settings=c({},d);this.count=0},send:function(f){var e=f.error,d=f.success;f=c(this.settings,f);f.success=function(h,g){h=b.parse(h);if(typeof(h)=="undefined"){h={error:"JSON Parse error."}}if(h.error){e.call(f.error_scope||f.scope,h.error,g)}else{d.call(f.success_scope||f.scope,h.result)}};f.error=function(h,g){if(e){e.call(f.error_scope||f.scope,h,g)}};f.data=b.serialize({id:f.id||"c"+(this.count++),method:f.method,params:f.params});f.content_type="application/json";a.send(f)},"static":{sendRPC:function(d){return new tinymce.util.JSONRequest().send(d)}}})}());(function(a){a.VK={DELETE:46,BACKSPACE:8,ENTER:13,TAB:9,SPACEBAR:32,UP:38,DOWN:40,modifierPressed:function(b){return b.shiftKey||b.ctrlKey||b.altKey}}})(tinymce);(function(l){var j=l.VK,k=j.BACKSPACE,h=j.DELETE;function c(n){var p=n.dom,o=n.selection;n.onKeyDown.add(function(r,v){var q,x,t,u,s;s=v.keyCode==h;if((s||v.keyCode==k)&&!j.modifierPressed(v)){v.preventDefault();q=o.getRng();x=p.getParent(q.startContainer,p.isBlock);if(s){x=p.getNext(x,p.isBlock)}if(x){t=x.firstChild;while(t&&t.nodeType==3&&t.nodeValue.length==0){t=t.nextSibling}if(t&&t.nodeName==="SPAN"){u=t.cloneNode(false)}}r.getDoc().execCommand(s?"ForwardDelete":"Delete",false,null);x=p.getParent(q.startContainer,p.isBlock);l.each(p.select("span.Apple-style-span,font.Apple-style-span",x),function(y){var z=o.getBookmark();if(u){p.replace(u.cloneNode(false),y,true)}else{p.remove(y,true)}o.moveToBookmark(z)})}})}function d(n){function o(r){var q=n.dom.create("body");var s=r.cloneContents();q.appendChild(s);return n.selection.serializer.serialize(q,{format:"html"})}function p(q){var s=o(q);var t=n.dom.createRng();t.selectNode(n.getBody());var r=o(t);return s===r}n.onKeyDown.addToTop(function(r,t){var s=t.keyCode;if(s==h||s==k){var q=r.selection.getRng(true);if(!q.collapsed&&p(q)){r.setContent("",{format:"raw"});r.nodeChanged();t.preventDefault()}}})}function b(n){n.dom.bind(n.getDoc(),"focusin",function(){n.selection.setRng(n.selection.getRng())})}function e(n){n.onKeyDown.add(function(o,r){if(r.keyCode===k){if(o.selection.isCollapsed()&&o.selection.getRng(true).startOffset===0){var q=o.selection.getNode();var p=q.previousSibling;if(p&&p.nodeName&&p.nodeName.toLowerCase()==="hr"){o.dom.remove(p);l.dom.Event.cancel(r)}}}})}function g(n){if(!Range.prototype.getClientRects){n.onMouseDown.add(function(p,q){if(q.target.nodeName==="HTML"){var o=p.getBody();o.blur();setTimeout(function(){o.focus()},0)}})}}function f(n){n.onClick.add(function(o,p){p=p.target;if(/^(IMG|HR)$/.test(p.nodeName)){o.selection.getSel().setBaseAndExtent(p,0,p,1)}if(p.nodeName=="A"&&o.dom.hasClass(p,"mceItemAnchor")){o.selection.select(p)}o.nodeChanged()})}function i(n){n.onKeyDown.add(function(o,p){function q(r){var s=r.selection.getNode();var t="h1,h2,h3,h4,h5,h6";return r.dom.is(s,t)||r.dom.getParent(s,t)!==null}if(p.keyCode===j.ENTER&&!j.modifierPressed(p)&&q(o)){setTimeout(function(){var r=o.selection.getNode();if(o.dom.is(r,"p")){o.dom.setAttrib(r,"style",null);o.execCommand("mceCleanup")}},0)}})}function m(n){var p,o;n.dom.bind(n.getDoc(),"selectionchange",function(){if(o){clearTimeout(o);o=0}o=window.setTimeout(function(){var q=n.selection.getRng();if(!p||!l.dom.RangeUtils.compareRanges(q,p)){n.nodeChanged();p=q}},50)})}function a(n){document.body.setAttribute("role","application")}l.create("tinymce.util.Quirks",{Quirks:function(n){if(l.isWebKit){c(n);d(n);b(n);f(n);if(l.isIDevice){m(n)}}if(l.isIE){e(n);d(n);a(n);i(n)}if(l.isGecko){e(n);g(n)}}})})(tinymce);(function(j){var a,g,d,k=/[&<>\"\u007E-\uD7FF\uE000-\uFFEF]|[\uD800-\uDBFF][\uDC00-\uDFFF]/g,b=/[<>&\u007E-\uD7FF\uE000-\uFFEF]|[\uD800-\uDBFF][\uDC00-\uDFFF]/g,f=/[<>&\"\']/g,c=/&(#x|#)?([\w]+);/g,i={128:"\u20AC",130:"\u201A",131:"\u0192",132:"\u201E",133:"\u2026",134:"\u2020",135:"\u2021",136:"\u02C6",137:"\u2030",138:"\u0160",139:"\u2039",140:"\u0152",142:"\u017D",145:"\u2018",146:"\u2019",147:"\u201C",148:"\u201D",149:"\u2022",150:"\u2013",151:"\u2014",152:"\u02DC",153:"\u2122",154:"\u0161",155:"\u203A",156:"\u0153",158:"\u017E",159:"\u0178"};g={'"':"&quot;","'":"&#39;","<":"&lt;",">":"&gt;","&":"&amp;"};d={"&lt;":"<","&gt;":">","&amp;":"&","&quot;":'"',"&apos;":"'"};function h(l){var m;m=document.createElement("div");m.innerHTML=l;return m.textContent||m.innerText||l}function e(m,p){var n,o,l,q={};if(m){m=m.split(",");p=p||10;for(n=0;n<m.length;n+=2){o=String.fromCharCode(parseInt(m[n],p));if(!g[o]){l="&"+m[n+1]+";";q[o]=l;q[l]=o}}return q}}a=e("50,nbsp,51,iexcl,52,cent,53,pound,54,curren,55,yen,56,brvbar,57,sect,58,uml,59,copy,5a,ordf,5b,laquo,5c,not,5d,shy,5e,reg,5f,macr,5g,deg,5h,plusmn,5i,sup2,5j,sup3,5k,acute,5l,micro,5m,para,5n,middot,5o,cedil,5p,sup1,5q,ordm,5r,raquo,5s,frac14,5t,frac12,5u,frac34,5v,iquest,60,Agrave,61,Aacute,62,Acirc,63,Atilde,64,Auml,65,Aring,66,AElig,67,Ccedil,68,Egrave,69,Eacute,6a,Ecirc,6b,Euml,6c,Igrave,6d,Iacute,6e,Icirc,6f,Iuml,6g,ETH,6h,Ntilde,6i,Ograve,6j,Oacute,6k,Ocirc,6l,Otilde,6m,Ouml,6n,times,6o,Oslash,6p,Ugrave,6q,Uacute,6r,Ucirc,6s,Uuml,6t,Yacute,6u,THORN,6v,szlig,70,agrave,71,aacute,72,acirc,73,atilde,74,auml,75,aring,76,aelig,77,ccedil,78,egrave,79,eacute,7a,ecirc,7b,euml,7c,igrave,7d,iacute,7e,icirc,7f,iuml,7g,eth,7h,ntilde,7i,ograve,7j,oacute,7k,ocirc,7l,otilde,7m,ouml,7n,divide,7o,oslash,7p,ugrave,7q,uacute,7r,ucirc,7s,uuml,7t,yacute,7u,thorn,7v,yuml,ci,fnof,sh,Alpha,si,Beta,sj,Gamma,sk,Delta,sl,Epsilon,sm,Zeta,sn,Eta,so,Theta,sp,Iota,sq,Kappa,sr,Lambda,ss,Mu,st,Nu,su,Xi,sv,Omicron,t0,Pi,t1,Rho,t3,Sigma,t4,Tau,t5,Upsilon,t6,Phi,t7,Chi,t8,Psi,t9,Omega,th,alpha,ti,beta,tj,gamma,tk,delta,tl,epsilon,tm,zeta,tn,eta,to,theta,tp,iota,tq,kappa,tr,lambda,ts,mu,tt,nu,tu,xi,tv,omicron,u0,pi,u1,rho,u2,sigmaf,u3,sigma,u4,tau,u5,upsilon,u6,phi,u7,chi,u8,psi,u9,omega,uh,thetasym,ui,upsih,um,piv,812,bull,816,hellip,81i,prime,81j,Prime,81u,oline,824,frasl,88o,weierp,88h,image,88s,real,892,trade,89l,alefsym,8cg,larr,8ch,uarr,8ci,rarr,8cj,darr,8ck,harr,8dl,crarr,8eg,lArr,8eh,uArr,8ei,rArr,8ej,dArr,8ek,hArr,8g0,forall,8g2,part,8g3,exist,8g5,empty,8g7,nabla,8g8,isin,8g9,notin,8gb,ni,8gf,prod,8gh,sum,8gi,minus,8gn,lowast,8gq,radic,8gt,prop,8gu,infin,8h0,ang,8h7,and,8h8,or,8h9,cap,8ha,cup,8hb,int,8hk,there4,8hs,sim,8i5,cong,8i8,asymp,8j0,ne,8j1,equiv,8j4,le,8j5,ge,8k2,sub,8k3,sup,8k4,nsub,8k6,sube,8k7,supe,8kl,oplus,8kn,otimes,8l5,perp,8m5,sdot,8o8,lceil,8o9,rceil,8oa,lfloor,8ob,rfloor,8p9,lang,8pa,rang,9ea,loz,9j0,spades,9j3,clubs,9j5,hearts,9j6,diams,ai,OElig,aj,oelig,b0,Scaron,b1,scaron,bo,Yuml,m6,circ,ms,tilde,802,ensp,803,emsp,809,thinsp,80c,zwnj,80d,zwj,80e,lrm,80f,rlm,80j,ndash,80k,mdash,80o,lsquo,80p,rsquo,80q,sbquo,80s,ldquo,80t,rdquo,80u,bdquo,810,dagger,811,Dagger,81g,permil,81p,lsaquo,81q,rsaquo,85c,euro",32);j.html=j.html||{};j.html.Entities={encodeRaw:function(m,l){return m.replace(l?k:b,function(n){return g[n]||n})},encodeAllRaw:function(l){return(""+l).replace(f,function(m){return g[m]||m})},encodeNumeric:function(m,l){return m.replace(l?k:b,function(n){if(n.length>1){return"&#"+(((n.charCodeAt(0)-55296)*1024)+(n.charCodeAt(1)-56320)+65536)+";"}return g[n]||"&#"+n.charCodeAt(0)+";"})},encodeNamed:function(n,l,m){m=m||a;return n.replace(l?k:b,function(o){return g[o]||m[o]||o})},getEncodeFunc:function(l,o){var p=j.html.Entities;o=e(o)||a;function m(r,q){return r.replace(q?k:b,function(s){return g[s]||o[s]||"&#"+s.charCodeAt(0)+";"||s})}function n(r,q){return p.encodeNamed(r,q,o)}l=j.makeMap(l.replace(/\+/g,","));if(l.named&&l.numeric){return m}if(l.named){if(o){return n}return p.encodeNamed}if(l.numeric){return p.encodeNumeric}return p.encodeRaw},decode:function(l){return l.replace(c,function(n,m,o){if(m){o=parseInt(o,m.length===2?16:10);if(o>65535){o-=65536;return String.fromCharCode(55296+(o>>10),56320+(o&1023))}else{return i[o]||String.fromCharCode(o)}}return d[n]||a[n]||h(n)})}}})(tinymce);tinymce.html.Styles=function(d,f){var k=/rgb\s*\(\s*([0-9]+)\s*,\s*([0-9]+)\s*,\s*([0-9]+)\s*\)/gi,h=/(?:url(?:(?:\(\s*\"([^\"]+)\"\s*\))|(?:\(\s*\'([^\']+)\'\s*\))|(?:\(\s*([^)\s]+)\s*\))))|(?:\'([^\']+)\')|(?:\"([^\"]+)\")/gi,b=/\s*([^:]+):\s*([^;]+);?/g,l=/\s+$/,m=/rgb/,e,g,a={},j;d=d||{};j="\\\" \\' \\; \\: ; : \uFEFF".split(" ");for(g=0;g<j.length;g++){a[j[g]]="\uFEFF"+g;a["\uFEFF"+g]=j[g]}function c(n,q,p,i){function o(r){r=parseInt(r).toString(16);return r.length>1?r:"0"+r}return"#"+o(q)+o(p)+o(i)}return{toHex:function(i){return i.replace(k,c)},parse:function(r){var y={},p,n,v,q,u=d.url_converter,x=d.url_converter_scope||this;function o(C,F){var E,B,A,D;E=y[C+"-top"+F];if(!E){return}B=y[C+"-right"+F];if(E!=B){return}A=y[C+"-bottom"+F];if(B!=A){return}D=y[C+"-left"+F];if(A!=D){return}y[C+F]=D;delete y[C+"-top"+F];delete y[C+"-right"+F];delete y[C+"-bottom"+F];delete y[C+"-left"+F]}function t(B){var C=y[B],A;if(!C||C.indexOf(" ")<0){return}C=C.split(" ");A=C.length;while(A--){if(C[A]!==C[0]){return false}}y[B]=C[0];return true}function z(C,B,A,D){if(!t(B)){return}if(!t(A)){return}if(!t(D)){return}y[C]=y[B]+" "+y[A]+" "+y[D];delete y[B];delete y[A];delete y[D]}function s(A){q=true;return a[A]}function i(B,A){if(q){B=B.replace(/\uFEFF[0-9]/g,function(C){return a[C]})}if(!A){B=B.replace(/\\([\'\";:])/g,"$1")}return B}if(r){r=r.replace(/\\[\"\';:\uFEFF]/g,s).replace(/\"[^\"]+\"|\'[^\']+\'/g,function(A){return A.replace(/[;:]/g,s)});while(p=b.exec(r)){n=p[1].replace(l,"").toLowerCase();v=p[2].replace(l,"");if(n&&v.length>0){if(n==="font-weight"&&v==="700"){v="bold"}else{if(n==="color"||n==="background-color"){v=v.toLowerCase()}}v=v.replace(k,c);v=v.replace(h,function(B,A,E,D,F,C){F=F||C;if(F){F=i(F);return"'"+F.replace(/\'/g,"\\'")+"'"}A=i(A||E||D);if(u){A=u.call(x,A,"style")}return"url('"+A.replace(/\'/g,"\\'")+"')"});y[n]=q?i(v,true):v}b.lastIndex=p.index+p[0].length}o("border","");o("border","-width");o("border","-color");o("border","-style");o("padding","");o("margin","");z("border","border-width","border-style","border-color");if(y.border==="medium none"){delete y.border}}return y},serialize:function(p,r){var o="",n,q;function i(t){var x,u,s,v;x=f.styles[t];if(x){for(u=0,s=x.length;u<s;u++){t=x[u];v=p[t];if(v!==e&&v.length>0){o+=(o.length>0?" ":"")+t+": "+v+";"}}}}if(r&&f&&f.styles){i("*");i(r)}else{for(n in p){q=p[n];if(q!==e&&q.length>0){o+=(o.length>0?" ":"")+n+": "+q+";"}}}return o}}};(function(m){var h={},j,l,g,f,c={},b,e,d=m.makeMap,k=m.each;function i(o,n){return o.split(n||",")}function a(r,q){var o,p={};function n(s){return s.replace(/[A-Z]+/g,function(t){return n(r[t])})}for(o in r){if(r.hasOwnProperty(o)){r[o]=n(r[o])}}n(q).replace(/#/g,"#text").replace(/(\w+)\[([^\]]+)\]\[([^\]]*)\]/g,function(v,t,s,u){s=i(s,"|");p[t]={attributes:d(s),attributesOrder:s,children:d(u,"|",{"#comment":{}})}});return p}l="h1,h2,h3,h4,h5,h6,hr,p,div,address,pre,form,table,tbody,thead,tfoot,th,tr,td,li,ol,ul,caption,blockquote,center,dl,dt,dd,dir,fieldset,noscript,menu,isindex,samp,header,footer,article,section,hgroup,aside,audio,canvas,figcaption,figure,nav,output,video";l=d(l,",",d(l.toUpperCase()));h=a({Z:"H|K|N|O|P",Y:"X|form|R|Q",ZG:"E|span|width|align|char|charoff|valign",X:"p|T|div|U|W|isindex|fieldset|table",ZF:"E|align|char|charoff|valign",W:"pre|hr|blockquote|address|center|noframes",ZE:"abbr|axis|headers|scope|rowspan|colspan|align|char|charoff|valign|nowrap|bgcolor|width|height",ZD:"[E][S]",U:"ul|ol|dl|menu|dir",ZC:"p|Y|div|U|W|table|br|span|bdo|object|applet|img|map|K|N|Q",T:"h1|h2|h3|h4|h5|h6",ZB:"X|S|Q",S:"R|P",ZA:"a|G|J|M|O|P",R:"a|H|K|N|O",Q:"noscript|P",P:"ins|del|script",O:"input|select|textarea|label|button",N:"M|L",M:"em|strong|dfn|code|q|samp|kbd|var|cite|abbr|acronym",L:"sub|sup",K:"J|I",J:"tt|i|b|u|s|strike",I:"big|small|font|basefont",H:"G|F",G:"br|span|bdo",F:"object|applet|img|map|iframe",E:"A|B|C",D:"accesskey|tabindex|onfocus|onblur",C:"onclick|ondblclick|onmousedown|onmouseup|onmouseover|onmousemove|onmouseout|onkeypress|onkeydown|onkeyup",B:"lang|xml:lang|dir",A:"id|class|style|title"},"script[id|charset|type|language|src|defer|xml:space][]style[B|id|type|media|title|xml:space][]object[E|declare|classid|codebase|data|type|codetype|archive|standby|width|height|usemap|name|tabindex|align|border|hspace|vspace][#|param|Y]param[id|name|value|valuetype|type][]p[E|align][#|S]a[E|D|charset|type|name|href|hreflang|rel|rev|shape|coords|target][#|Z]br[A|clear][]span[E][#|S]bdo[A|C|B][#|S]applet[A|codebase|archive|code|object|alt|name|width|height|align|hspace|vspace][#|param|Y]h1[E|align][#|S]img[E|src|alt|name|longdesc|width|height|usemap|ismap|align|border|hspace|vspace][]map[B|C|A|name][X|form|Q|area]h2[E|align][#|S]iframe[A|longdesc|name|src|frameborder|marginwidth|marginheight|scrolling|align|width|height][#|Y]h3[E|align][#|S]tt[E][#|S]i[E][#|S]b[E][#|S]u[E][#|S]s[E][#|S]strike[E][#|S]big[E][#|S]small[E][#|S]font[A|B|size|color|face][#|S]basefont[id|size|color|face][]em[E][#|S]strong[E][#|S]dfn[E][#|S]code[E][#|S]q[E|cite][#|S]samp[E][#|S]kbd[E][#|S]var[E][#|S]cite[E][#|S]abbr[E][#|S]acronym[E][#|S]sub[E][#|S]sup[E][#|S]input[E|D|type|name|value|checked|disabled|readonly|size|maxlength|src|alt|usemap|onselect|onchange|accept|align][]select[E|name|size|multiple|disabled|tabindex|onfocus|onblur|onchange][optgroup|option]optgroup[E|disabled|label][option]option[E|selected|disabled|label|value][]textarea[E|D|name|rows|cols|disabled|readonly|onselect|onchange][]label[E|for|accesskey|onfocus|onblur][#|S]button[E|D|name|value|type|disabled][#|p|T|div|U|W|table|G|object|applet|img|map|K|N|Q]h4[E|align][#|S]ins[E|cite|datetime][#|Y]h5[E|align][#|S]del[E|cite|datetime][#|Y]h6[E|align][#|S]div[E|align][#|Y]ul[E|type|compact][li]li[E|type|value][#|Y]ol[E|type|compact|start][li]dl[E|compact][dt|dd]dt[E][#|S]dd[E][#|Y]menu[E|compact][li]dir[E|compact][li]pre[E|width|xml:space][#|ZA]hr[E|align|noshade|size|width][]blockquote[E|cite][#|Y]address[E][#|S|p]center[E][#|Y]noframes[E][#|Y]isindex[A|B|prompt][]fieldset[E][#|legend|Y]legend[E|accesskey|align][#|S]table[E|summary|width|border|frame|rules|cellspacing|cellpadding|align|bgcolor][caption|col|colgroup|thead|tfoot|tbody|tr]caption[E|align][#|S]col[ZG][]colgroup[ZG][col]thead[ZF][tr]tr[ZF|bgcolor][th|td]th[E|ZE][#|Y]form[E|action|method|name|enctype|onsubmit|onreset|accept|accept-charset|target][#|X|R|Q]noscript[E][#|Y]td[E|ZE][#|Y]tfoot[ZF][tr]tbody[ZF][tr]area[E|D|shape|coords|href|nohref|alt|target][]base[id|href|target][]body[E|onload|onunload|background|bgcolor|text|link|vlink|alink][#|Y]");j=d("checked,compact,declare,defer,disabled,ismap,multiple,nohref,noresize,noshade,nowrap,readonly,selected,autoplay,loop,controls");g=d("area,base,basefont,br,col,frame,hr,img,input,isindex,link,meta,param,embed,source");f=m.extend(d("td,th,iframe,video,audio,object"),g);b=d("pre,script,style,textarea");e=d("colgroup,dd,dt,li,options,p,td,tfoot,th,thead,tr");m.html.Schema=function(r){var A=this,n={},o={},y=[],q,p;r=r||{};if(r.verify_html===false){r.valid_elements="*[*]"}if(r.valid_styles){q={};k(r.valid_styles,function(C,B){q[B]=m.explode(C)})}p=r.whitespace_elements?d(r.whitespace_elements):b;function z(B){return new RegExp("^"+B.replace(/([?+*])/g,".$1")+"$")}function t(I){var H,D,W,S,X,C,F,R,U,N,V,Z,L,G,T,B,P,E,Y,aa,M,Q,K=/^([#+-])?([^\[\/]+)(?:\/([^\[]+))?(?:\[([^\]]+)\])?$/,O=/^([!\-])?(\w+::\w+|[^=:<]+)?(?:([=:<])(.*))?$/,J=/[*?+]/;if(I){I=i(I);if(n["@"]){P=n["@"].attributes;E=n["@"].attributesOrder}for(H=0,D=I.length;H<D;H++){C=K.exec(I[H]);if(C){T=C[1];N=C[2];B=C[3];U=C[4];L={};G=[];F={attributes:L,attributesOrder:G};if(T==="#"){F.paddEmpty=true}if(T==="-"){F.removeEmpty=true}if(P){for(aa in P){L[aa]=P[aa]}G.push.apply(G,E)}if(U){U=i(U,"|");for(W=0,S=U.length;W<S;W++){C=O.exec(U[W]);if(C){R={};Z=C[1];V=C[2].replace(/::/g,":");T=C[3];Q=C[4];if(Z==="!"){F.attributesRequired=F.attributesRequired||[];F.attributesRequired.push(V);R.required=true}if(Z==="-"){delete L[V];G.splice(m.inArray(G,V),1);continue}if(T){if(T==="="){F.attributesDefault=F.attributesDefault||[];F.attributesDefault.push({name:V,value:Q});R.defaultValue=Q}if(T===":"){F.attributesForced=F.attributesForced||[];F.attributesForced.push({name:V,value:Q});R.forcedValue=Q}if(T==="<"){R.validValues=d(Q,"?")}}if(J.test(V)){F.attributePatterns=F.attributePatterns||[];R.pattern=z(V);F.attributePatterns.push(R)}else{if(!L[V]){G.push(V)}L[V]=R}}}}if(!P&&N=="@"){P=L;E=G}if(B){F.outputName=N;n[B]=F}if(J.test(N)){F.pattern=z(N);y.push(F)}else{n[N]=F}}}}}function v(B){n={};y=[];t(B);k(h,function(D,C){o[C]=D.children})}function s(C){var B=/^(~)?(.+)$/;if(C){k(i(C),function(G){var E=B.exec(G),F=E[1]==="~",H=F?"span":"div",D=E[2];o[D]=o[H];c[D]=H;if(!F){l[D]={}}k(o,function(I,J){if(I[H]){I[D]=I[H]}})})}}function u(C){var B=/^([+\-]?)(\w+)\[([^\]]+)\]$/;if(C){k(i(C),function(G){var F=B.exec(G),D,E;if(F){E=F[1];if(E){D=o[F[2]]}else{D=o[F[2]]={"#comment":{}}}D=o[F[2]];k(i(F[3],"|"),function(H){if(E==="-"){delete D[H]}else{D[H]={}}})}})}}function x(B){var D=n[B],C;if(D){return D}C=y.length;while(C--){D=y[C];if(D.pattern.test(B)){return D}}}if(!r.valid_elements){k(h,function(C,B){n[B]={attributes:C.attributes,attributesOrder:C.attributesOrder};o[B]=C.children});k(i("strong/b,em/i"),function(B){B=i(B,"/");n[B[1]].outputName=B[0]});n.img.attributesDefault=[{name:"alt",value:""}];k(i("ol,ul,sub,sup,blockquote,span,font,a,table,tbody,tr"),function(B){n[B].removeEmpty=true});k(i("p,h1,h2,h3,h4,h5,h6,th,td,pre,div,address,caption"),function(B){n[B].paddEmpty=true})}else{v(r.valid_elements)}s(r.custom_elements);u(r.valid_children);t(r.extended_valid_elements);u("+ol[ul|ol],+ul[ul|ol]");if(!x("span")){t("span[!data-mce-type|*]")}if(r.invalid_elements){m.each(m.explode(r.invalid_elements),function(B){if(n[B]){delete n[B]}})}A.children=o;A.styles=q;A.getBoolAttrs=function(){return j};A.getBlockElements=function(){return l};A.getShortEndedElements=function(){return g};A.getSelfClosingElements=function(){return e};A.getNonEmptyElements=function(){return f};A.getWhiteSpaceElements=function(){return p};A.isValidChild=function(B,D){var C=o[B];return !!(C&&C[D])};A.getElementRule=x;A.getCustomElements=function(){return c};A.addValidElements=t;A.setValidElements=v;A.addCustomElements=s;A.addValidChildren=u};m.html.Schema.boolAttrMap=j;m.html.Schema.blockElementsMap=l})(tinymce);(function(a){a.html.SaxParser=function(c,e){var b=this,d=function(){};c=c||{};b.schema=e=e||new a.html.Schema();if(c.fix_self_closing!==false){c.fix_self_closing=true}a.each("comment cdata text start end pi doctype".split(" "),function(f){if(f){b[f]=c[f]||d}});b.parse=function(D){var n=this,g,F=0,H,A,z=[],M,P,B,q,y,r,L,G,N,u,m,k,s,Q,o,O,E,R,K,f,I,l,C,J,h,v=0,j=a.html.Entities.decode,x,p;function t(S){var U,T;U=z.length;while(U--){if(z[U].name===S){break}}if(U>=0){for(T=z.length-1;T>=U;T--){S=z[T];if(S.valid){n.end(S.name)}}z.length=U}}l=new RegExp("<(?:(?:!--([\\w\\W]*?)-->)|(?:!\\[CDATA\\[([\\w\\W]*?)\\]\\]>)|(?:!DOCTYPE([\\w\\W]*?)>)|(?:\\?([^\\s\\/<>]+) ?([\\w\\W]*?)[?/]>)|(?:\\/([^>]+)>)|(?:([^\\s\\/<>]+)((?:\\s+[^\"'>]+(?:(?:\"[^\"]*\")|(?:'[^']*')|[^>]*))*|\\/)>))","g");C=/([\w:\-]+)(?:\s*=\s*(?:(?:\"((?:\\.|[^\"])*)\")|(?:\'((?:\\.|[^\'])*)\')|([^>\s]+)))?/g;J={script:/<\/script[^>]*>/gi,style:/<\/style[^>]*>/gi,noscript:/<\/noscript[^>]*>/gi};L=e.getShortEndedElements();I=e.getSelfClosingElements();G=e.getBoolAttrs();u=c.validate;r=c.remove_internals;x=c.fix_self_closing;p=a.isIE;o=/^:/;while(g=l.exec(D)){if(F<g.index){n.text(j(D.substr(F,g.index-F)))}if(H=g[6]){H=H.toLowerCase();if(p&&o.test(H)){H=H.substr(1)}t(H)}else{if(H=g[7]){H=H.toLowerCase();if(p&&o.test(H)){H=H.substr(1)}N=H in L;if(x&&I[H]&&z.length>0&&z[z.length-1].name===H){t(H)}if(!u||(m=e.getElementRule(H))){k=true;if(u){O=m.attributes;E=m.attributePatterns}if(Q=g[8]){y=Q.indexOf("data-mce-type")!==-1;if(y&&r){k=false}M=[];M.map={};Q.replace(C,function(T,S,X,W,V){var Y,U;S=S.toLowerCase();X=S in G?S:j(X||W||V||"");if(u&&!y&&S.indexOf("data-")!==0){Y=O[S];if(!Y&&E){U=E.length;while(U--){Y=E[U];if(Y.pattern.test(S)){break}}if(U===-1){Y=null}}if(!Y){return}if(Y.validValues&&!(X in Y.validValues)){return}}M.map[S]=X;M.push({name:S,value:X})})}else{M=[];M.map={}}if(u&&!y){R=m.attributesRequired;K=m.attributesDefault;f=m.attributesForced;if(f){P=f.length;while(P--){s=f[P];q=s.name;h=s.value;if(h==="{$uid}"){h="mce_"+v++}M.map[q]=h;M.push({name:q,value:h})}}if(K){P=K.length;while(P--){s=K[P];q=s.name;if(!(q in M.map)){h=s.value;if(h==="{$uid}"){h="mce_"+v++}M.map[q]=h;M.push({name:q,value:h})}}}if(R){P=R.length;while(P--){if(R[P] in M.map){break}}if(P===-1){k=false}}if(M.map["data-mce-bogus"]){k=false}}if(k){n.start(H,M,N)}}else{k=false}if(A=J[H]){A.lastIndex=F=g.index+g[0].length;if(g=A.exec(D)){if(k){B=D.substr(F,g.index-F)}F=g.index+g[0].length}else{B=D.substr(F);F=D.length}if(k&&B.length>0){n.text(B,true)}if(k){n.end(H)}l.lastIndex=F;continue}if(!N){if(!Q||Q.indexOf("/")!=Q.length-1){z.push({name:H,valid:k})}else{if(k){n.end(H)}}}}else{if(H=g[1]){n.comment(H)}else{if(H=g[2]){n.cdata(H)}else{if(H=g[3]){n.doctype(H)}else{if(H=g[4]){n.pi(H,g[5])}}}}}}F=g.index+g[0].length}if(F<D.length){n.text(j(D.substr(F)))}for(P=z.length-1;P>=0;P--){H=z[P];if(H.valid){n.end(H.name)}}}}})(tinymce);(function(d){var c=/^[ \t\r\n]*$/,e={"#text":3,"#comment":8,"#cdata":4,"#pi":7,"#doctype":10,"#document-fragment":11};function a(k,l,j){var i,h,f=j?"lastChild":"firstChild",g=j?"prev":"next";if(k[f]){return k[f]}if(k!==l){i=k[g];if(i){return i}for(h=k.parent;h&&h!==l;h=h.parent){i=h[g];if(i){return i}}}}function b(f,g){this.name=f;this.type=g;if(g===1){this.attributes=[];this.attributes.map={}}}d.extend(b.prototype,{replace:function(g){var f=this;if(g.parent){g.remove()}f.insert(g,f);f.remove();return f},attr:function(h,l){var f=this,g,j,k;if(typeof h!=="string"){for(j in h){f.attr(j,h[j])}return f}if(g=f.attributes){if(l!==k){if(l===null){if(h in g.map){delete g.map[h];j=g.length;while(j--){if(g[j].name===h){g=g.splice(j,1);return f}}}return f}if(h in g.map){j=g.length;while(j--){if(g[j].name===h){g[j].value=l;break}}}else{g.push({name:h,value:l})}g.map[h]=l;return f}else{return g.map[h]}}},clone:function(){var g=this,n=new b(g.name,g.type),h,f,m,j,k;if(m=g.attributes){k=[];k.map={};for(h=0,f=m.length;h<f;h++){j=m[h];if(j.name!=="id"){k[k.length]={name:j.name,value:j.value};k.map[j.name]=j.value}}n.attributes=k}n.value=g.value;n.shortEnded=g.shortEnded;return n},wrap:function(g){var f=this;f.parent.insert(g,f);g.append(f);return f},unwrap:function(){var f=this,h,g;for(h=f.firstChild;h;){g=h.next;f.insert(h,f,true);h=g}f.remove()},remove:function(){var f=this,h=f.parent,g=f.next,i=f.prev;if(h){if(h.firstChild===f){h.firstChild=g;if(g){g.prev=null}}else{i.next=g}if(h.lastChild===f){h.lastChild=i;if(i){i.next=null}}else{g.prev=i}f.parent=f.next=f.prev=null}return f},append:function(h){var f=this,g;if(h.parent){h.remove()}g=f.lastChild;if(g){g.next=h;h.prev=g;f.lastChild=h}else{f.lastChild=f.firstChild=h}h.parent=f;return h},insert:function(h,f,i){var g;if(h.parent){h.remove()}g=f.parent||this;if(i){if(f===g.firstChild){g.firstChild=h}else{f.prev.next=h}h.prev=f.prev;h.next=f;f.prev=h}else{if(f===g.lastChild){g.lastChild=h}else{f.next.prev=h}h.next=f.next;h.prev=f;f.next=h}h.parent=g;return h},getAll:function(g){var f=this,h,i=[];for(h=f.firstChild;h;h=a(h,f)){if(h.name===g){i.push(h)}}return i},empty:function(){var g=this,f,h,j;if(g.firstChild){f=[];for(j=g.firstChild;j;j=a(j,g)){f.push(j)}h=f.length;while(h--){j=f[h];j.parent=j.firstChild=j.lastChild=j.next=j.prev=null}}g.firstChild=g.lastChild=null;return g},isEmpty:function(k){var f=this,j=f.firstChild,h,g;if(j){do{if(j.type===1){if(j.attributes.map["data-mce-bogus"]){continue}if(k[j.name]){return false}h=j.attributes.length;while(h--){g=j.attributes[h].name;if(g==="name"||g.indexOf("data-")===0){return false}}}if(j.type===8){return false}if((j.type===3&&!c.test(j.value))){return false}}while(j=a(j,f))}return true},walk:function(f){return a(this,null,f)}});d.extend(b,{create:function(g,f){var i,h;i=new b(g,e[g]||1);if(f){for(h in f){i.attr(h,f[h])}}return i}});d.html.Node=b})(tinymce);(function(b){var a=b.html.Node;b.html.DomParser=function(g,h){var f=this,e={},d=[],i={},c={};g=g||{};g.validate="validate" in g?g.validate:true;g.root_name=g.root_name||"body";f.schema=h=h||new b.html.Schema();function j(m){var o,p,x,v,z,n,q,l,t,u,k,s,y,r;s=b.makeMap("tr,td,th,tbody,thead,tfoot,table");k=h.getNonEmptyElements();for(o=0;o<m.length;o++){p=m[o];if(!p.parent){continue}v=[p];for(x=p.parent;x&&!h.isValidChild(x.name,p.name)&&!s[x.name];x=x.parent){v.push(x)}if(x&&v.length>1){v.reverse();z=n=f.filterNode(v[0].clone());for(t=0;t<v.length-1;t++){if(h.isValidChild(n.name,v[t].name)){q=f.filterNode(v[t].clone());n.append(q)}else{q=n}for(l=v[t].firstChild;l&&l!=v[t+1];){r=l.next;q.append(l);l=r}n=q}if(!z.isEmpty(k)){x.insert(z,v[0],true);x.insert(p,z)}else{x.insert(p,v[0],true)}x=v[0];if(x.isEmpty(k)||x.firstChild===x.lastChild&&x.firstChild.name==="br"){x.empty().remove()}}else{if(p.parent){if(p.name==="li"){y=p.prev;if(y&&(y.name==="ul"||y.name==="ul")){y.append(p);continue}y=p.next;if(y&&(y.name==="ul"||y.name==="ul")){y.insert(p,y.firstChild,true);continue}p.wrap(f.filterNode(new a("ul",1)));continue}if(h.isValidChild(p.parent.name,"div")&&h.isValidChild("div",p.name)){p.wrap(f.filterNode(new a("div",1)))}else{if(p.name==="style"||p.name==="script"){p.empty().remove()}else{p.unwrap()}}}}}}f.filterNode=function(m){var l,k,n;if(k in e){n=i[k];if(n){n.push(m)}else{i[k]=[m]}}l=d.length;while(l--){k=d[l].name;if(k in m.attributes.map){n=c[k];if(n){n.push(m)}else{c[k]=[m]}}}return m};f.addNodeFilter=function(k,l){b.each(b.explode(k),function(m){var n=e[m];if(!n){e[m]=n=[]}n.push(l)})};f.addAttributeFilter=function(k,l){b.each(b.explode(k),function(m){var n;for(n=0;n<d.length;n++){if(d[n].name===m){d[n].callbacks.push(l);return}}d.push({name:m,callbacks:[l]})})};f.parse=function(v,m){var n,H,A,z,C,B,x,r,E,K,y,o,D,J=[],t,k,s,p,u,q;m=m||{};i={};c={};o=b.extend(b.makeMap("script,style,head,html,body,title,meta,param"),h.getBlockElements());u=h.getNonEmptyElements();p=h.children;y=g.validate;q="forced_root_block" in m?m.forced_root_block:g.forced_root_block;s=h.getWhiteSpaceElements();D=/^[ \t\r\n]+/;t=/[ \t\r\n]+$/;k=/[ \t\r\n]+/g;function F(){var L=H.firstChild,l,M;while(L){l=L.next;if(L.type==3||(L.type==1&&L.name!=="p"&&!o[L.name]&&!L.attr("data-mce-type"))){if(!M){M=I(q,1);H.insert(M,L);M.append(L)}else{M.append(L)}}else{M=null}L=l}}function I(l,L){var M=new a(l,L),N;if(l in e){N=i[l];if(N){N.push(M)}else{i[l]=[M]}}return M}function G(M){var N,l,L;for(N=M.prev;N&&N.type===3;){l=N.value.replace(t,"");if(l.length>0){N.value=l;N=N.prev}else{L=N.prev;N.remove();N=L}}}n=new b.html.SaxParser({validate:y,fix_self_closing:!y,cdata:function(l){A.append(I("#cdata",4)).value=l},text:function(M,l){var L;if(!s[A.name]){M=M.replace(k," ");if(A.lastChild&&o[A.lastChild.name]){M=M.replace(D,"")}}if(M.length!==0){L=I("#text",3);L.raw=!!l;A.append(L).value=M}},comment:function(l){A.append(I("#comment",8)).value=l},pi:function(l,L){A.append(I(l,7)).value=L;G(A)},doctype:function(L){var l;l=A.append(I("#doctype",10));l.value=L;G(A)},start:function(l,T,M){var R,O,N,L,P,U,S,Q;N=y?h.getElementRule(l):{};if(N){R=I(N.outputName||l,1);R.attributes=T;R.shortEnded=M;A.append(R);Q=p[A.name];if(Q&&p[R.name]&&!Q[R.name]){J.push(R)}O=d.length;while(O--){P=d[O].name;if(P in T.map){E=c[P];if(E){E.push(R)}else{c[P]=[R]}}}if(o[l]){G(R)}if(!M){A=R}}},end:function(l){var P,M,O,L,N;M=y?h.getElementRule(l):{};if(M){if(o[l]){if(!s[A.name]){for(P=A.firstChild;P&&P.type===3;){O=P.value.replace(D,"");if(O.length>0){P.value=O;P=P.next}else{L=P.next;P.remove();P=L}}for(P=A.lastChild;P&&P.type===3;){O=P.value.replace(t,"");if(O.length>0){P.value=O;P=P.prev}else{L=P.prev;P.remove();P=L}}}P=A.prev;if(P&&P.type===3){O=P.value.replace(D,"");if(O.length>0){P.value=O}else{P.remove()}}}if(M.removeEmpty||M.paddEmpty){if(A.isEmpty(u)){if(M.paddEmpty){A.empty().append(new a("#text","3")).value="\u00a0"}else{if(!A.attributes.map.name){N=A.parent;A.empty().remove();A=N;return}}}}A=A.parent}}},h);H=A=new a(m.context||g.root_name,11);n.parse(v);if(y&&J.length){if(!m.context){j(J)}else{m.invalid=true}}if(q&&H.name=="body"){F()}if(!m.invalid){for(K in i){E=e[K];z=i[K];x=z.length;while(x--){if(!z[x].parent){z.splice(x,1)}}for(C=0,B=E.length;C<B;C++){E[C](z,K,m)}}for(C=0,B=d.length;C<B;C++){E=d[C];if(E.name in c){z=c[E.name];x=z.length;while(x--){if(!z[x].parent){z.splice(x,1)}}for(x=0,r=E.callbacks.length;x<r;x++){E.callbacks[x](z,E.name,m)}}}}return H};if(g.remove_trailing_brs){f.addNodeFilter("br",function(n,m){var r,q=n.length,o,u=h.getBlockElements(),k=h.getNonEmptyElements(),s,p,t;u.body=1;for(r=0;r<q;r++){o=n[r];s=o.parent;if(u[o.parent.name]&&o===s.lastChild){p=o.prev;while(p){t=p.name;if(t!=="span"||p.attr("data-mce-type")!=="bookmark"){if(t!=="br"){break}if(t==="br"){o=null;break}}p=p.prev}if(o){o.remove();if(s.isEmpty(k)){elementRule=h.getElementRule(s.name);if(elementRule){if(elementRule.removeEmpty){s.remove()}else{if(elementRule.paddEmpty){s.empty().append(new b.html.Node("#text",3)).value="\u00a0"}}}}}}}})}}})(tinymce);tinymce.html.Writer=function(e){var c=[],a,b,d,f,g;e=e||{};a=e.indent;b=tinymce.makeMap(e.indent_before||"");d=tinymce.makeMap(e.indent_after||"");f=tinymce.html.Entities.getEncodeFunc(e.entity_encoding||"raw",e.entities);g=e.element_format=="html";return{start:function(m,k,p){var n,j,h,o;if(a&&b[m]&&c.length>0){o=c[c.length-1];if(o.length>0&&o!=="\n"){c.push("\n")}}c.push("<",m);if(k){for(n=0,j=k.length;n<j;n++){h=k[n];c.push(" ",h.name,'="',f(h.value,true),'"')}}if(!p||g){c[c.length]=">"}else{c[c.length]=" />"}if(p&&a&&d[m]&&c.length>0){o=c[c.length-1];if(o.length>0&&o!=="\n"){c.push("\n")}}},end:function(h){var i;c.push("</",h,">");if(a&&d[h]&&c.length>0){i=c[c.length-1];if(i.length>0&&i!=="\n"){c.push("\n")}}},text:function(i,h){if(i.length>0){c[c.length]=h?i:f(i)}},cdata:function(h){c.push("<![CDATA[",h,"]]>")},comment:function(h){c.push("<!--",h,"-->")},pi:function(h,i){if(i){c.push("<?",h," ",i,"?>")}else{c.push("<?",h,"?>")}if(a){c.push("\n")}},doctype:function(h){c.push("<!DOCTYPE",h,">",a?"\n":"")},reset:function(){c.length=0},getContent:function(){return c.join("").replace(/\n$/,"")}}};(function(a){a.html.Serializer=function(c,d){var b=this,e=new a.html.Writer(c);c=c||{};c.validate="validate" in c?c.validate:true;b.schema=d=d||new a.html.Schema();b.writer=e;b.serialize=function(h){var g,i;i=c.validate;g={3:function(k,j){e.text(k.value,k.raw)},8:function(j){e.comment(j.value)},7:function(j){e.pi(j.name,j.value)},10:function(j){e.doctype(j.value)},4:function(j){e.cdata(j.value)},11:function(j){if((j=j.firstChild)){do{f(j)}while(j=j.next)}}};e.reset();function f(k){var t=g[k.type],j,o,s,r,p,u,n,m,q;if(!t){j=k.name;o=k.shortEnded;s=k.attributes;if(i&&s&&s.length>1){u=[];u.map={};q=d.getElementRule(k.name);for(n=0,m=q.attributesOrder.length;n<m;n++){r=q.attributesOrder[n];if(r in s.map){p=s.map[r];u.map[r]=p;u.push({name:r,value:p})}}for(n=0,m=s.length;n<m;n++){r=s[n].name;if(!(r in u.map)){p=s.map[r];u.map[r]=p;u.push({name:r,value:p})}}s=u}e.start(k.name,s,o);if(!o){if((k=k.firstChild)){do{f(k)}while(k=k.next)}e.end(j)}}else{t(k)}}if(h.type==1&&!c.inner){f(h)}else{g[11](h)}return e.getContent()}}})(tinymce);(function(h){var f=h.each,e=h.is,d=h.isWebKit,b=h.isIE,c=h.html.Entities,a=/^([a-z0-9],?)+$/i,g=h.html.Schema.blockElementsMap,i=/^[ \t\r\n]*$/;h.create("tinymce.dom.DOMUtils",{doc:null,root:null,files:null,pixelStyles:/^(top|left|bottom|right|width|height|borderWidth)$/,props:{"for":"htmlFor","class":"className",className:"className",checked:"checked",disabled:"disabled",maxlength:"maxLength",readonly:"readOnly",selected:"selected",value:"value",id:"id",name:"name",type:"type"},DOMUtils:function(o,m){var l=this,j,k;l.doc=o;l.win=window;l.files={};l.cssFlicker=false;l.counter=0;l.stdMode=!h.isIE||o.documentMode>=8;l.boxModel=!h.isIE||o.compatMode=="CSS1Compat"||l.stdMode;l.hasOuterHTML="outerHTML" in o.createElement("a");l.settings=m=h.extend({keep_values:false,hex_colors:1},m);l.schema=m.schema;l.styles=new h.html.Styles({url_converter:m.url_converter,url_converter_scope:m.url_converter_scope},m.schema);if(h.isIE6){try{o.execCommand("BackgroundImageCache",false,true)}catch(n){l.cssFlicker=true}}if(b&&m.schema){("abbr article aside audio canvas details figcaption figure footer header hgroup mark menu meter nav output progress section summary time video").replace(/\w+/g,function(p){o.createElement(p)});for(k in m.schema.getCustomElements()){o.createElement(k)}}h.addUnload(l.destroy,l)},getRoot:function(){var j=this,k=j.settings;return(k&&j.get(k.root_element))||j.doc.body},getViewPort:function(k){var l,j;k=!k?this.win:k;l=k.document;j=this.boxModel?l.documentElement:l.body;return{x:k.pageXOffset||j.scrollLeft,y:k.pageYOffset||j.scrollTop,w:k.innerWidth||j.clientWidth,h:k.innerHeight||j.clientHeight}},getRect:function(m){var l,j=this,k;m=j.get(m);l=j.getPos(m);k=j.getSize(m);return{x:l.x,y:l.y,w:k.w,h:k.h}},getSize:function(m){var k=this,j,l;m=k.get(m);j=k.getStyle(m,"width");l=k.getStyle(m,"height");if(j.indexOf("px")===-1){j=0}if(l.indexOf("px")===-1){l=0}return{w:parseInt(j)||m.offsetWidth||m.clientWidth,h:parseInt(l)||m.offsetHeight||m.clientHeight}},getParent:function(l,k,j){return this.getParents(l,k,j,false)},getParents:function(u,p,l,s){var k=this,j,m=k.settings,q=[];u=k.get(u);s=s===undefined;if(m.strict_root){l=l||k.getRoot()}if(e(p,"string")){j=p;if(p==="*"){p=function(o){return o.nodeType==1}}else{p=function(o){return k.is(o,j)}}}while(u){if(u==l||!u.nodeType||u.nodeType===9){break}if(!p||p(u)){if(s){q.push(u)}else{return u}}u=u.parentNode}return s?q:null},get:function(j){var k;if(j&&this.doc&&typeof(j)=="string"){k=j;j=this.doc.getElementById(j);if(j&&j.id!==k){return this.doc.getElementsByName(k)[1]}}return j},getNext:function(k,j){return this._findSib(k,j,"nextSibling")},getPrev:function(k,j){return this._findSib(k,j,"previousSibling")},select:function(l,k){var j=this;return h.dom.Sizzle(l,j.get(k)||j.get(j.settings.root_element)||j.doc,[])},is:function(l,j){var k;if(l.length===undefined){if(j==="*"){return l.nodeType==1}if(a.test(j)){j=j.toLowerCase().split(/,/);l=l.nodeName.toLowerCase();for(k=j.length-1;k>=0;k--){if(j[k]==l){return true}}return false}}return h.dom.Sizzle.matches(j,l.nodeType?[l]:l).length>0},add:function(m,q,j,l,o){var k=this;return this.run(m,function(s){var r,n;r=e(q,"string")?k.doc.createElement(q):q;k.setAttribs(r,j);if(l){if(l.nodeType){r.appendChild(l)}else{k.setHTML(r,l)}}return !o?s.appendChild(r):r})},create:function(l,j,k){return this.add(this.doc.createElement(l),l,j,k,1)},createHTML:function(r,j,p){var q="",m=this,l;q+="<"+r;for(l in j){if(j.hasOwnProperty(l)){q+=" "+l+'="'+m.encode(j[l])+'"'}}if(typeof(p)!="undefined"){return q+">"+p+"</"+r+">"}return q+" />"},remove:function(j,k){return this.run(j,function(m){var n,l=m.parentNode;if(!l){return null}if(k){while(n=m.firstChild){if(!h.isIE||n.nodeType!==3||n.nodeValue){l.insertBefore(n,m)}else{m.removeChild(n)}}}return l.removeChild(m)})},setStyle:function(m,j,k){var l=this;return l.run(m,function(p){var o,n;o=p.style;j=j.replace(/-(\D)/g,function(r,q){return q.toUpperCase()});if(l.pixelStyles.test(j)&&(h.is(k,"number")||/^[\-0-9\.]+$/.test(k))){k+="px"}switch(j){case"opacity":if(b){o.filter=k===""?"":"alpha(opacity="+(k*100)+")";if(!m.currentStyle||!m.currentStyle.hasLayout){o.display="inline-block"}}o[j]=o["-moz-opacity"]=o["-khtml-opacity"]=k||"";break;case"float":b?o.styleFloat=k:o.cssFloat=k;break;default:o[j]=k||""}if(l.settings.update_styles){l.setAttrib(p,"data-mce-style")}})},getStyle:function(m,j,l){m=this.get(m);if(!m){return}if(this.doc.defaultView&&l){j=j.replace(/[A-Z]/g,function(n){return"-"+n});try{return this.doc.defaultView.getComputedStyle(m,null).getPropertyValue(j)}catch(k){return null}}j=j.replace(/-(\D)/g,function(o,n){return n.toUpperCase()});if(j=="float"){j=b?"styleFloat":"cssFloat"}if(m.currentStyle&&l){return m.currentStyle[j]}return m.style?m.style[j]:undefined},setStyles:function(m,n){var k=this,l=k.settings,j;j=l.update_styles;l.update_styles=0;f(n,function(o,p){k.setStyle(m,p,o)});l.update_styles=j;if(l.update_styles){k.setAttrib(m,l.cssText)}},removeAllAttribs:function(j){return this.run(j,function(m){var l,k=m.attributes;for(l=k.length-1;l>=0;l--){m.removeAttributeNode(k.item(l))}})},setAttrib:function(l,m,j){var k=this;if(!l||!m){return}if(k.settings.strict){m=m.toLowerCase()}return this.run(l,function(q){var p=k.settings;var n=q.getAttribute(m);if(j!==null){switch(m){case"style":if(!e(j,"string")){f(j,function(r,s){k.setStyle(q,s,r)});return}if(p.keep_values){if(j&&!k._isRes(j)){q.setAttribute("data-mce-style",j,2)}else{q.removeAttribute("data-mce-style",2)}}q.style.cssText=j;break;case"class":q.className=j||"";break;case"src":case"href":if(p.keep_values){if(p.url_converter){j=p.url_converter.call(p.url_converter_scope||k,j,m,q)}k.setAttrib(q,"data-mce-"+m,j,2)}break;case"shape":q.setAttribute("data-mce-style",j);break}}if(e(j)&&j!==null&&j.length!==0){q.setAttribute(m,""+j,2)}else{q.removeAttribute(m,2)}if(tinyMCE.activeEditor&&n!=j){var o=tinyMCE.activeEditor;o.onSetAttrib.dispatch(o,q,m,j)}})},setAttribs:function(k,l){var j=this;return this.run(k,function(m){f(l,function(o,p){j.setAttrib(m,p,o)})})},getAttrib:function(o,p,l){var j,k=this,m;o=k.get(o);if(!o||o.nodeType!==1){return l===m?false:l}if(!e(l)){l=""}if(/^(src|href|style|coords|shape)$/.test(p)){j=o.getAttribute("data-mce-"+p);if(j){return j}}if(b&&k.props[p]){j=o[k.props[p]];j=j&&j.nodeValue?j.nodeValue:j}if(!j){j=o.getAttribute(p,2)}if(/^(checked|compact|declare|defer|disabled|ismap|multiple|nohref|noshade|nowrap|readonly|selected)$/.test(p)){if(o[k.props[p]]===true&&j===""){return p}return j?p:""}if(o.nodeName==="FORM"&&o.getAttributeNode(p)){return o.getAttributeNode(p).nodeValue}if(p==="style"){j=j||o.style.cssText;if(j){j=k.serializeStyle(k.parseStyle(j),o.nodeName);if(k.settings.keep_values&&!k._isRes(j)){o.setAttribute("data-mce-style",j)}}}if(d&&p==="class"&&j){j=j.replace(/(apple|webkit)\-[a-z\-]+/gi,"")}if(b){switch(p){case"rowspan":case"colspan":if(j===1){j=""}break;case"size":if(j==="+0"||j===20||j===0){j=""}break;case"width":case"height":case"vspace":case"checked":case"disabled":case"readonly":if(j===0){j=""}break;case"hspace":if(j===-1){j=""}break;case"maxlength":case"tabindex":if(j===32768||j===2147483647||j==="32768"){j=""}break;case"multiple":case"compact":case"noshade":case"nowrap":if(j===65535){return p}return l;case"shape":j=j.toLowerCase();break;default:if(p.indexOf("on")===0&&j){j=h._replace(/^function\s+\w+\(\)\s+\{\s+(.*)\s+\}$/,"$1",""+j)}}}return(j!==m&&j!==null&&j!=="")?""+j:l},getPos:function(s,m){var k=this,j=0,q=0,o,p=k.doc,l;s=k.get(s);m=m||p.body;if(s){if(s.getBoundingClientRect){s=s.getBoundingClientRect();o=k.boxModel?p.documentElement:p.body;j=s.left+(p.documentElement.scrollLeft||p.body.scrollLeft)-o.clientTop;q=s.top+(p.documentElement.scrollTop||p.body.scrollTop)-o.clientLeft;return{x:j,y:q}}l=s;while(l&&l!=m&&l.nodeType){j+=l.offsetLeft||0;q+=l.offsetTop||0;l=l.offsetParent}l=s.parentNode;while(l&&l!=m&&l.nodeType){j-=l.scrollLeft||0;q-=l.scrollTop||0;l=l.parentNode}}return{x:j,y:q}},parseStyle:function(j){return this.styles.parse(j)},serializeStyle:function(k,j){return this.styles.serialize(k,j)},loadCSS:function(j){var l=this,m=l.doc,k;if(!j){j=""}k=l.select("head")[0];f(j.split(","),function(n){var o;if(l.files[n]){return}l.files[n]=true;o=l.create("link",{rel:"stylesheet",href:h._addVer(n)});if(b&&m.documentMode&&m.recalc){o.onload=function(){if(m.recalc){m.recalc()}o.onload=null}}k.appendChild(o)})},addClass:function(j,k){return this.run(j,function(l){var m;if(!k){return 0}if(this.hasClass(l,k)){return l.className}m=this.removeClass(l,k);return l.className=(m!=""?(m+" "):"")+k})},removeClass:function(l,m){var j=this,k;return j.run(l,function(o){var n;if(j.hasClass(o,m)){if(!k){k=new RegExp("(^|\\s+)"+m+"(\\s+|$)","g")}n=o.className.replace(k," ");n=h.trim(n!=" "?n:"");o.className=n;if(!n){o.removeAttribute("class");o.removeAttribute("className")}return n}return o.className})},hasClass:function(k,j){k=this.get(k);if(!k||!j){return false}return(" "+k.className+" ").indexOf(" "+j+" ")!==-1},show:function(j){return this.setStyle(j,"display","block")},hide:function(j){return this.setStyle(j,"display","none")},isHidden:function(j){j=this.get(j);return !j||j.style.display=="none"||this.getStyle(j,"display")=="none"},uniqueId:function(j){return(!j?"mce_":j)+(this.counter++)},setHTML:function(l,k){var j=this;return j.run(l,function(n){if(b){while(n.firstChild){n.removeChild(n.firstChild)}try{n.innerHTML="<br />"+k;n.removeChild(n.firstChild)}catch(m){n=j.create("div");n.innerHTML="<br />"+k;f(n.childNodes,function(p,o){if(o){n.appendChild(p)}})}}else{n.innerHTML=k}return k})},getOuterHTML:function(l){var k,j=this;l=j.get(l);if(!l){return null}if(l.nodeType===1&&j.hasOuterHTML){return l.outerHTML}k=(l.ownerDocument||j.doc).createElement("body");k.appendChild(l.cloneNode(true));return k.innerHTML},setOuterHTML:function(m,k,n){var j=this;function l(p,o,r){var s,q;q=r.createElement("body");q.innerHTML=o;s=q.lastChild;while(s){j.insertAfter(s.cloneNode(true),p);s=s.previousSibling}j.remove(p)}return this.run(m,function(p){p=j.get(p);if(p.nodeType==1){n=n||p.ownerDocument||j.doc;if(b){try{if(b&&p.nodeType==1){p.outerHTML=k}else{l(p,k,n)}}catch(o){l(p,k,n)}}else{l(p,k,n)}}})},decode:c.decode,encode:c.encodeAllRaw,insertAfter:function(j,k){k=this.get(k);return this.run(j,function(m){var l,n;l=k.parentNode;n=k.nextSibling;if(n){l.insertBefore(m,n)}else{l.appendChild(m)}return m})},isBlock:function(k){var j=k.nodeType;if(j){return !!(j===1&&g[k.nodeName])}return !!g[k]},replace:function(p,m,j){var l=this;if(e(m,"array")){p=p.cloneNode(true)}return l.run(m,function(k){if(j){f(h.grep(k.childNodes),function(n){p.appendChild(n)})}return k.parentNode.replaceChild(p,k)})},rename:function(m,j){var l=this,k;if(m.nodeName!=j.toUpperCase()){k=l.create(j);f(l.getAttribs(m),function(n){l.setAttrib(k,n.nodeName,l.getAttrib(m,n.nodeName))});l.replace(k,m,1)}return k||m},findCommonAncestor:function(l,j){var m=l,k;while(m){k=j;while(k&&m!=k){k=k.parentNode}if(m==k){break}m=m.parentNode}if(!m&&l.ownerDocument){return l.ownerDocument.documentElement}return m},toHex:function(j){var l=/^\s*rgb\s*?\(\s*?([0-9]+)\s*?,\s*?([0-9]+)\s*?,\s*?([0-9]+)\s*?\)\s*$/i.exec(j);function k(m){m=parseInt(m).toString(16);return m.length>1?m:"0"+m}if(l){j="#"+k(l[1])+k(l[2])+k(l[3]);return j}return j},getClasses:function(){var n=this,j=[],m,o={},p=n.settings.class_filter,l;if(n.classes){return n.classes}function q(r){f(r.imports,function(s){q(s)});f(r.cssRules||r.rules,function(s){switch(s.type||1){case 1:if(s.selectorText){f(s.selectorText.split(","),function(t){t=t.replace(/^\s*|\s*$|^\s\./g,"");if(/\.mce/.test(t)||!/\.[\w\-]+$/.test(t)){return}l=t;t=h._replace(/.*\.([a-z0-9_\-]+).*/i,"$1",t);if(p&&!(t=p(t,l))){return}if(!o[t]){j.push({"class":t});o[t]=1}})}break;case 3:q(s.styleSheet);break}})}try{f(n.doc.styleSheets,q)}catch(k){}if(j.length>0){n.classes=j}return j},run:function(m,l,k){var j=this,n;if(j.doc&&typeof(m)==="string"){m=j.get(m)}if(!m){return false}k=k||this;if(!m.nodeType&&(m.length||m.length===0)){n=[];f(m,function(p,o){if(p){if(typeof(p)=="string"){p=j.doc.getElementById(p)}n.push(l.call(k,p,o))}});return n}return l.call(k,m)},getAttribs:function(k){var j;k=this.get(k);if(!k){return[]}if(b){j=[];if(k.nodeName=="OBJECT"){return k.attributes}if(k.nodeName==="OPTION"&&this.getAttrib(k,"selected")){j.push({specified:1,nodeName:"selected"})}k.cloneNode(false).outerHTML.replace(/<\/?[\w:\-]+ ?|=[\"][^\"]+\"|=\'[^\']+\'|=[\w\-]+|>/gi,"").replace(/[\w:\-]+/gi,function(l){j.push({specified:1,nodeName:l})});return j}return k.attributes},isEmpty:function(m,k){var r=this,o,n,q,j,l,p;m=m.firstChild;if(m){j=new h.dom.TreeWalker(m);k=k||r.schema?r.schema.getNonEmptyElements():null;do{q=m.nodeType;if(q===1){if(m.getAttribute("data-mce-bogus")){continue}l=m.nodeName.toLowerCase();if(k&&k[l]){p=m.parentNode;if(l==="br"&&r.isBlock(p)&&p.firstChild===m&&p.lastChild===m){continue}return false}n=r.getAttribs(m);o=m.attributes.length;while(o--){l=m.attributes[o].nodeName;if(l==="name"||l==="data-mce-bookmark"){return false}}}if(q==8){return false}if((q===3&&!i.test(m.nodeValue))){return false}}while(m=j.next())}return true},destroy:function(k){var j=this;if(j.events){j.events.destroy()}j.win=j.doc=j.root=j.events=null;if(!k){h.removeUnload(j.destroy)}},createRng:function(){var j=this.doc;return j.createRange?j.createRange():new h.dom.Range(this)},nodeIndex:function(n,o){var j=0,l,m,k;if(n){for(l=n.nodeType,n=n.previousSibling,m=n;n;n=n.previousSibling){k=n.nodeType;if(o&&k==3){if(k==l||!n.nodeValue.length){continue}}j++;l=k}}return j},split:function(n,m,q){var s=this,j=s.createRng(),o,l,p;function k(x){var u,t=x.childNodes,v=x.nodeType;function y(B){var A=B.previousSibling&&B.previousSibling.nodeName=="SPAN";var z=B.nextSibling&&B.nextSibling.nodeName=="SPAN";return A&&z}if(v==1&&x.getAttribute("data-mce-type")=="bookmark"){return}for(u=t.length-1;u>=0;u--){k(t[u])}if(v!=9){if(v==3&&x.nodeValue.length>0){var r=h.trim(x.nodeValue).length;if(!s.isBlock(x.parentNode)||r>0||r==0&&y(x)){return}}else{if(v==1){t=x.childNodes;if(t.length==1&&t[0]&&t[0].nodeType==1&&t[0].getAttribute("data-mce-type")=="bookmark"){x.parentNode.insertBefore(t[0],x)}if(t.length||/^(br|hr|input|img)$/i.test(x.nodeName)){return}}}s.remove(x)}return x}if(n&&m){j.setStart(n.parentNode,s.nodeIndex(n));j.setEnd(m.parentNode,s.nodeIndex(m));o=j.extractContents();j=s.createRng();j.setStart(m.parentNode,s.nodeIndex(m)+1);j.setEnd(n.parentNode,s.nodeIndex(n)+1);l=j.extractContents();p=n.parentNode;p.insertBefore(k(o),n);if(q){p.replaceChild(q,m)}else{p.insertBefore(m,n)}p.insertBefore(k(l),n);s.remove(n);return q||m}},bind:function(n,j,m,l){var k=this;if(!k.events){k.events=new h.dom.EventUtils()}return k.events.add(n,j,m,l||this)},unbind:function(m,j,l){var k=this;if(!k.events){k.events=new h.dom.EventUtils()}return k.events.remove(m,j,l)},_findSib:function(m,j,k){var l=this,n=j;if(m){if(e(n,"string")){n=function(o){return l.is(o,j)}}for(m=m[k];m;m=m[k]){if(n(m)){return m}}}return null},_isRes:function(j){return/^(top|left|bottom|right|width|height)/i.test(j)||/;\s*(top|left|bottom|right|width|height)/i.test(j)}});h.DOM=new h.dom.DOMUtils(document,{process_html:0})})(tinymce);(function(a){function b(c){var N=this,e=c.doc,S=0,E=1,j=2,D=true,R=false,U="startOffset",h="startContainer",P="endContainer",z="endOffset",k=tinymce.extend,n=c.nodeIndex;k(N,{startContainer:e,startOffset:0,endContainer:e,endOffset:0,collapsed:D,commonAncestorContainer:e,START_TO_START:0,START_TO_END:1,END_TO_END:2,END_TO_START:3,setStart:q,setEnd:s,setStartBefore:g,setStartAfter:I,setEndBefore:J,setEndAfter:u,collapse:A,selectNode:x,selectNodeContents:F,compareBoundaryPoints:v,deleteContents:p,extractContents:H,cloneContents:d,insertNode:C,surroundContents:M,cloneRange:K});function q(V,t){B(D,V,t)}function s(V,t){B(R,V,t)}function g(t){q(t.parentNode,n(t))}function I(t){q(t.parentNode,n(t)+1)}function J(t){s(t.parentNode,n(t))}function u(t){s(t.parentNode,n(t)+1)}function A(t){if(t){N[P]=N[h];N[z]=N[U]}else{N[h]=N[P];N[U]=N[z]}N.collapsed=D}function x(t){g(t);u(t)}function F(t){q(t,0);s(t,t.nodeType===1?t.childNodes.length:t.nodeValue.length)}function v(Y,t){var ab=N[h],W=N[U],aa=N[P],V=N[z],Z=t.startContainer,ad=t.startOffset,X=t.endContainer,ac=t.endOffset;if(Y===0){return G(ab,W,Z,ad)}if(Y===1){return G(aa,V,Z,ad)}if(Y===2){return G(aa,V,X,ac)}if(Y===3){return G(ab,W,X,ac)}}function p(){m(j)}function H(){return m(S)}function d(){return m(E)}function C(Y){var V=this[h],t=this[U],X,W;if((V.nodeType===3||V.nodeType===4)&&V.nodeValue){if(!t){V.parentNode.insertBefore(Y,V)}else{if(t>=V.nodeValue.length){c.insertAfter(Y,V)}else{X=V.splitText(t);V.parentNode.insertBefore(Y,X)}}}else{if(V.childNodes.length>0){W=V.childNodes[t]}if(W){V.insertBefore(Y,W)}else{V.appendChild(Y)}}}function M(V){var t=N.extractContents();N.insertNode(V);V.appendChild(t);N.selectNode(V)}function K(){return k(new b(c),{startContainer:N[h],startOffset:N[U],endContainer:N[P],endOffset:N[z],collapsed:N.collapsed,commonAncestorContainer:N.commonAncestorContainer})}function O(t,V){var W;if(t.nodeType==3){return t}if(V<0){return t}W=t.firstChild;while(W&&V>0){--V;W=W.nextSibling}if(W){return W}return t}function l(){return(N[h]==N[P]&&N[U]==N[z])}function G(X,Z,V,Y){var aa,W,t,ab,ad,ac;if(X==V){if(Z==Y){return 0}if(Z<Y){return -1}return 1}aa=V;while(aa&&aa.parentNode!=X){aa=aa.parentNode}if(aa){W=0;t=X.firstChild;while(t!=aa&&W<Z){W++;t=t.nextSibling}if(Z<=W){return -1}return 1}aa=X;while(aa&&aa.parentNode!=V){aa=aa.parentNode}if(aa){W=0;t=V.firstChild;while(t!=aa&&W<Y){W++;t=t.nextSibling}if(W<Y){return -1}return 1}ab=c.findCommonAncestor(X,V);ad=X;while(ad&&ad.parentNode!=ab){ad=ad.parentNode}if(!ad){ad=ab}ac=V;while(ac&&ac.parentNode!=ab){ac=ac.parentNode}if(!ac){ac=ab}if(ad==ac){return 0}t=ab.firstChild;while(t){if(t==ad){return -1}if(t==ac){return 1}t=t.nextSibling}}function B(V,Y,X){var t,W;if(V){N[h]=Y;N[U]=X}else{N[P]=Y;N[z]=X}t=N[P];while(t.parentNode){t=t.parentNode}W=N[h];while(W.parentNode){W=W.parentNode}if(W==t){if(G(N[h],N[U],N[P],N[z])>0){N.collapse(V)}}else{N.collapse(V)}N.collapsed=l();N.commonAncestorContainer=c.findCommonAncestor(N[h],N[P])}function m(ab){var aa,X=0,ad=0,V,Z,W,Y,t,ac;if(N[h]==N[P]){return f(ab)}for(aa=N[P],V=aa.parentNode;V;aa=V,V=V.parentNode){if(V==N[h]){return r(aa,ab)}++X}for(aa=N[h],V=aa.parentNode;V;aa=V,V=V.parentNode){if(V==N[P]){return T(aa,ab)}++ad}Z=ad-X;W=N[h];while(Z>0){W=W.parentNode;Z--}Y=N[P];while(Z<0){Y=Y.parentNode;Z++}for(t=W.parentNode,ac=Y.parentNode;t!=ac;t=t.parentNode,ac=ac.parentNode){W=t;Y=ac}return o(W,Y,ab)}function f(Z){var ab,Y,X,aa,t,W,V;if(Z!=j){ab=e.createDocumentFragment()}if(N[U]==N[z]){return ab}if(N[h].nodeType==3){Y=N[h].nodeValue;X=Y.substring(N[U],N[z]);if(Z!=E){N[h].deleteData(N[U],N[z]-N[U]);N.collapse(D)}if(Z==j){return}ab.appendChild(e.createTextNode(X));return ab}aa=O(N[h],N[U]);t=N[z]-N[U];while(t>0){W=aa.nextSibling;V=y(aa,Z);if(ab){ab.appendChild(V)}--t;aa=W}if(Z!=E){N.collapse(D)}return ab}function r(ab,Y){var aa,Z,V,t,X,W;if(Y!=j){aa=e.createDocumentFragment()}Z=i(ab,Y);if(aa){aa.appendChild(Z)}V=n(ab);t=V-N[U];if(t<=0){if(Y!=E){N.setEndBefore(ab);N.collapse(R)}return aa}Z=ab.previousSibling;while(t>0){X=Z.previousSibling;W=y(Z,Y);if(aa){aa.insertBefore(W,aa.firstChild)}--t;Z=X}if(Y!=E){N.setEndBefore(ab);N.collapse(R)}return aa}function T(Z,Y){var ab,V,aa,t,X,W;if(Y!=j){ab=e.createDocumentFragment()}aa=Q(Z,Y);if(ab){ab.appendChild(aa)}V=n(Z);++V;t=N[z]-V;aa=Z.nextSibling;while(t>0){X=aa.nextSibling;W=y(aa,Y);if(ab){ab.appendChild(W)}--t;aa=X}if(Y!=E){N.setStartAfter(Z);N.collapse(D)}return ab}function o(Z,t,ac){var W,ae,Y,aa,ab,V,ad,X;if(ac!=j){ae=e.createDocumentFragment()}W=Q(Z,ac);if(ae){ae.appendChild(W)}Y=Z.parentNode;aa=n(Z);ab=n(t);++aa;V=ab-aa;ad=Z.nextSibling;while(V>0){X=ad.nextSibling;W=y(ad,ac);if(ae){ae.appendChild(W)}ad=X;--V}W=i(t,ac);if(ae){ae.appendChild(W)}if(ac!=E){N.setStartAfter(Z);N.collapse(D)}return ae}function i(aa,ab){var W=O(N[P],N[z]-1),ac,Z,Y,t,V,X=W!=N[P];if(W==aa){return L(W,X,R,ab)}ac=W.parentNode;Z=L(ac,R,R,ab);while(ac){while(W){Y=W.previousSibling;t=L(W,X,R,ab);if(ab!=j){Z.insertBefore(t,Z.firstChild)}X=D;W=Y}if(ac==aa){return Z}W=ac.previousSibling;ac=ac.parentNode;V=L(ac,R,R,ab);if(ab!=j){V.appendChild(Z)}Z=V}}function Q(aa,ab){var X=O(N[h],N[U]),Y=X!=N[h],ac,Z,W,t,V;if(X==aa){return L(X,Y,D,ab)}ac=X.parentNode;Z=L(ac,R,D,ab);while(ac){while(X){W=X.nextSibling;t=L(X,Y,D,ab);if(ab!=j){Z.appendChild(t)}Y=D;X=W}if(ac==aa){return Z}X=ac.nextSibling;ac=ac.parentNode;V=L(ac,R,D,ab);if(ab!=j){V.appendChild(Z)}Z=V}}function L(t,Y,ab,ac){var X,W,Z,V,aa;if(Y){return y(t,ac)}if(t.nodeType==3){X=t.nodeValue;if(ab){V=N[U];W=X.substring(V);Z=X.substring(0,V)}else{V=N[z];W=X.substring(0,V);Z=X.substring(V)}if(ac!=E){t.nodeValue=Z}if(ac==j){return}aa=t.cloneNode(R);aa.nodeValue=W;return aa}if(ac==j){return}return t.cloneNode(R)}function y(V,t){if(t!=j){return t==E?V.cloneNode(D):V}V.parentNode.removeChild(V)}}a.Range=b})(tinymce.dom);(function(){function a(d){var b=this,h=d.dom,c=true,f=false;function e(i,j){var k,t=0,q,n,m,l,o,r,p=-1,s;k=i.duplicate();k.collapse(j);s=k.parentElement();if(s.ownerDocument!==d.dom.doc){return}while(s.contentEditable==="false"){s=s.parentNode}if(!s.hasChildNodes()){return{node:s,inside:1}}m=s.children;q=m.length-1;while(t<=q){r=Math.floor((t+q)/2);l=m[r];k.moveToElementText(l);p=k.compareEndPoints(j?"StartToStart":"EndToEnd",i);if(p>0){q=r-1}else{if(p<0){t=r+1}else{return{node:l}}}}if(p<0){if(!l){k.moveToElementText(s);k.collapse(true);l=s;n=true}else{k.collapse(false)}k.setEndPoint(j?"EndToStart":"EndToEnd",i);if(k.compareEndPoints(j?"StartToStart":"StartToEnd",i)>0){k=i.duplicate();k.collapse(j);o=-1;while(s==k.parentElement()){if(k.move("character",-1)==0){break}o++}}o=o||k.text.replace("\r\n"," ").length}else{k.collapse(true);k.setEndPoint(j?"StartToStart":"StartToEnd",i);o=k.text.replace("\r\n"," ").length}return{node:l,position:p,offset:o,inside:n}}function g(){var i=d.getRng(),r=h.createRng(),l,k,p,q,m,j;l=i.item?i.item(0):i.parentElement();if(l.ownerDocument!=h.doc){return r}k=d.isCollapsed();if(i.item){r.setStart(l.parentNode,h.nodeIndex(l));r.setEnd(r.startContainer,r.startOffset+1);return r}function o(A){var u=e(i,A),s,y,z=0,x,v,t;s=u.node;y=u.offset;if(u.inside&&!s.hasChildNodes()){r[A?"setStart":"setEnd"](s,0);return}if(y===v){r[A?"setStartBefore":"setEndAfter"](s);return}if(u.position<0){x=u.inside?s.firstChild:s.nextSibling;if(!x){r[A?"setStartAfter":"setEndAfter"](s);return}if(!y){if(x.nodeType==3){r[A?"setStart":"setEnd"](x,0)}else{r[A?"setStartBefore":"setEndBefore"](x)}return}while(x){t=x.nodeValue;z+=t.length;if(z>=y){s=x;z-=y;z=t.length-z;break}x=x.nextSibling}}else{x=s.previousSibling;if(!x){return r[A?"setStartBefore":"setEndBefore"](s)}if(!y){if(s.nodeType==3){r[A?"setStart":"setEnd"](x,s.nodeValue.length)}else{r[A?"setStartAfter":"setEndAfter"](x)}return}while(x){z+=x.nodeValue.length;if(z>=y){s=x;z-=y;break}x=x.previousSibling}}r[A?"setStart":"setEnd"](s,z)}try{o(true);if(!k){o()}}catch(n){if(n.number==-2147024809){m=b.getBookmark(2);p=i.duplicate();p.collapse(true);l=p.parentElement();if(!k){p=i.duplicate();p.collapse(false);q=p.parentElement();q.innerHTML=q.innerHTML}l.innerHTML=l.innerHTML;b.moveToBookmark(m);i=d.getRng();o(true);if(!k){o()}}else{throw n}}return r}this.getBookmark=function(m){var j=d.getRng(),o,i,l={};function n(u){var u,t,p,s,r,q=[];t=u.parentNode;p=h.getRoot().parentNode;while(t!=p&&t.nodeType!==9){s=t.children;r=s.length;while(r--){if(u===s[r]){q.push(r);break}}u=t;t=t.parentNode}return q}function k(q){var p;p=e(j,q);if(p){return{position:p.position,offset:p.offset,indexes:n(p.node),inside:p.inside}}}if(m===2){if(!j.item){l.start=k(true);if(!d.isCollapsed()){l.end=k()}}else{l.start={ctrl:true,indexes:n(j.item(0))}}}return l};this.moveToBookmark=function(k){var j,i=h.doc.body;function m(o){var r,q,n,p;r=h.getRoot();for(q=o.length-1;q>=0;q--){p=r.children;n=o[q];if(n<=p.length-1){r=p[n]}}return r}function l(r){var n=k[r?"start":"end"],q,p,o;if(n){q=n.position>0;p=i.createTextRange();p.moveToElementText(m(n.indexes));offset=n.offset;if(offset!==o){p.collapse(n.inside||q);p.moveStart("character",q?-offset:offset)}else{p.collapse(r)}j.setEndPoint(r?"StartToStart":"EndToStart",p);if(r){j.collapse(true)}}}if(k.start){if(k.start.ctrl){j=i.createControlRange();j.addElement(m(k.start.indexes));j.select()}else{j=i.createTextRange();l(true);l();j.select()}}};this.addRange=function(i){var n,l,k,p,s,q,r=d.dom.doc,m=r.body;function j(z){var u,y,t,x,v;t=h.create("a");u=z?k:s;y=z?p:q;x=n.duplicate();if(u==r||u==r.documentElement){u=m;y=0}if(u.nodeType==3){u.parentNode.insertBefore(t,u);x.moveToElementText(t);x.moveStart("character",y);h.remove(t);n.setEndPoint(z?"StartToStart":"EndToEnd",x)}else{v=u.childNodes;if(v.length){if(y>=v.length){h.insertAfter(t,v[v.length-1])}else{u.insertBefore(t,v[y])}x.moveToElementText(t)}else{t=r.createTextNode("\uFEFF");u.appendChild(t);x.moveToElementText(t.parentNode);x.collapse(c)}n.setEndPoint(z?"StartToStart":"EndToEnd",x);h.remove(t)}}k=i.startContainer;p=i.startOffset;s=i.endContainer;q=i.endOffset;n=m.createTextRange();if(k==s&&k.nodeType==1&&p==q-1){if(p==q-1){try{l=m.createControlRange();l.addElement(k.childNodes[p]);l.select();return}catch(o){}}}j(true);j();n.select()};this.getRangeAt=g}tinymce.dom.TridentSelection=a})();(function(){var p=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,j=0,d=Object.prototype.toString,o=false,i=true;[0,0].sort(function(){i=false;return 0});var b=function(v,e,z,A){z=z||[];e=e||document;var C=e;if(e.nodeType!==1&&e.nodeType!==9){return[]}if(!v||typeof v!=="string"){return z}var x=[],s,E,H,r,u=true,t=b.isXML(e),B=v,D,G,F,y;do{p.exec("");s=p.exec(B);if(s){B=s[3];x.push(s[1]);if(s[2]){r=s[3];break}}}while(s);if(x.length>1&&k.exec(v)){if(x.length===2&&f.relative[x[0]]){E=h(x[0]+x[1],e)}else{E=f.relative[x[0]]?[e]:b(x.shift(),e);while(x.length){v=x.shift();if(f.relative[v]){v+=x.shift()}E=h(v,E)}}}else{if(!A&&x.length>1&&e.nodeType===9&&!t&&f.match.ID.test(x[0])&&!f.match.ID.test(x[x.length-1])){D=b.find(x.shift(),e,t);e=D.expr?b.filter(D.expr,D.set)[0]:D.set[0]}if(e){D=A?{expr:x.pop(),set:a(A)}:b.find(x.pop(),x.length===1&&(x[0]==="~"||x[0]==="+")&&e.parentNode?e.parentNode:e,t);E=D.expr?b.filter(D.expr,D.set):D.set;if(x.length>0){H=a(E)}else{u=false}while(x.length){G=x.pop();F=G;if(!f.relative[G]){G=""}else{F=x.pop()}if(F==null){F=e}f.relative[G](H,F,t)}}else{H=x=[]}}if(!H){H=E}if(!H){b.error(G||v)}if(d.call(H)==="[object Array]"){if(!u){z.push.apply(z,H)}else{if(e&&e.nodeType===1){for(y=0;H[y]!=null;y++){if(H[y]&&(H[y]===true||H[y].nodeType===1&&b.contains(e,H[y]))){z.push(E[y])}}}else{for(y=0;H[y]!=null;y++){if(H[y]&&H[y].nodeType===1){z.push(E[y])}}}}}else{a(H,z)}if(r){b(r,C,z,A);b.uniqueSort(z)}return z};b.uniqueSort=function(r){if(c){o=i;r.sort(c);if(o){for(var e=1;e<r.length;e++){if(r[e]===r[e-1]){r.splice(e--,1)}}}}return r};b.matches=function(e,r){return b(e,null,null,r)};b.find=function(y,e,z){var x;if(!y){return[]}for(var t=0,s=f.order.length;t<s;t++){var v=f.order[t],u;if((u=f.leftMatch[v].exec(y))){var r=u[1];u.splice(1,1);if(r.substr(r.length-1)!=="\\"){u[1]=(u[1]||"").replace(/\\/g,"");x=f.find[v](u,e,z);if(x!=null){y=y.replace(f.match[v],"");break}}}}if(!x){x=e.getElementsByTagName("*")}return{set:x,expr:y}};b.filter=function(C,B,F,u){var s=C,H=[],z=B,x,e,y=B&&B[0]&&b.isXML(B[0]);while(C&&B.length){for(var A in f.filter){if((x=f.leftMatch[A].exec(C))!=null&&x[2]){var r=f.filter[A],G,E,t=x[1];e=false;x.splice(1,1);if(t.substr(t.length-1)==="\\"){continue}if(z===H){H=[]}if(f.preFilter[A]){x=f.preFilter[A](x,z,F,H,u,y);if(!x){e=G=true}else{if(x===true){continue}}}if(x){for(var v=0;(E=z[v])!=null;v++){if(E){G=r(E,x,v,z);var D=u^!!G;if(F&&G!=null){if(D){e=true}else{z[v]=false}}else{if(D){H.push(E);e=true}}}}}if(G!==undefined){if(!F){z=H}C=C.replace(f.match[A],"");if(!e){return[]}break}}}if(C===s){if(e==null){b.error(C)}else{break}}s=C}return z};b.error=function(e){throw"Syntax error, unrecognized expression: "+e};var f=b.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,CLASS:/\.((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF\-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF\-]|\\.)+)\s*(?:(\S?=)\s*(['"]*)(.*?)\3|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*\-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\((even|odd|[\dn+\-]*)\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^\-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF\-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/},leftMatch:{},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(e){return e.getAttribute("href")}},relative:{"+":function(x,r){var t=typeof r==="string",v=t&&!/\W/.test(r),y=t&&!v;if(v){r=r.toLowerCase()}for(var s=0,e=x.length,u;s<e;s++){if((u=x[s])){while((u=u.previousSibling)&&u.nodeType!==1){}x[s]=y||u&&u.nodeName.toLowerCase()===r?u||false:u===r}}if(y){b.filter(r,x,true)}},">":function(x,r){var u=typeof r==="string",v,s=0,e=x.length;if(u&&!/\W/.test(r)){r=r.toLowerCase();for(;s<e;s++){v=x[s];if(v){var t=v.parentNode;x[s]=t.nodeName.toLowerCase()===r?t:false}}}else{for(;s<e;s++){v=x[s];if(v){x[s]=u?v.parentNode:v.parentNode===r}}if(u){b.filter(r,x,true)}}},"":function(t,r,v){var s=j++,e=q,u;if(typeof r==="string"&&!/\W/.test(r)){r=r.toLowerCase();u=r;e=n}e("parentNode",r,s,t,u,v)},"~":function(t,r,v){var s=j++,e=q,u;if(typeof r==="string"&&!/\W/.test(r)){r=r.toLowerCase();u=r;e=n}e("previousSibling",r,s,t,u,v)}},find:{ID:function(r,s,t){if(typeof s.getElementById!=="undefined"&&!t){var e=s.getElementById(r[1]);return e?[e]:[]}},NAME:function(s,v){if(typeof v.getElementsByName!=="undefined"){var r=[],u=v.getElementsByName(s[1]);for(var t=0,e=u.length;t<e;t++){if(u[t].getAttribute("name")===s[1]){r.push(u[t])}}return r.length===0?null:r}},TAG:function(e,r){return r.getElementsByTagName(e[1])}},preFilter:{CLASS:function(t,r,s,e,x,y){t=" "+t[1].replace(/\\/g,"")+" ";if(y){return t}for(var u=0,v;(v=r[u])!=null;u++){if(v){if(x^(v.className&&(" "+v.className+" ").replace(/[\t\n]/g," ").indexOf(t)>=0)){if(!s){e.push(v)}}else{if(s){r[u]=false}}}}return false},ID:function(e){return e[1].replace(/\\/g,"")},TAG:function(r,e){return r[1].toLowerCase()},CHILD:function(e){if(e[1]==="nth"){var r=/(-?)(\d*)n((?:\+|-)?\d*)/.exec(e[2]==="even"&&"2n"||e[2]==="odd"&&"2n+1"||!/\D/.test(e[2])&&"0n+"+e[2]||e[2]);e[2]=(r[1]+(r[2]||1))-0;e[3]=r[3]-0}e[0]=j++;return e},ATTR:function(u,r,s,e,v,x){var t=u[1].replace(/\\/g,"");if(!x&&f.attrMap[t]){u[1]=f.attrMap[t]}if(u[2]==="~="){u[4]=" "+u[4]+" "}return u},PSEUDO:function(u,r,s,e,v){if(u[1]==="not"){if((p.exec(u[3])||"").length>1||/^\w/.test(u[3])){u[3]=b(u[3],null,null,r)}else{var t=b.filter(u[3],r,s,true^v);if(!s){e.push.apply(e,t)}return false}}else{if(f.match.POS.test(u[0])||f.match.CHILD.test(u[0])){return true}}return u},POS:function(e){e.unshift(true);return e}},filters:{enabled:function(e){return e.disabled===false&&e.type!=="hidden"},disabled:function(e){return e.disabled===true},checked:function(e){return e.checked===true},selected:function(e){e.parentNode.selectedIndex;return e.selected===true},parent:function(e){return !!e.firstChild},empty:function(e){return !e.firstChild},has:function(s,r,e){return !!b(e[3],s).length},header:function(e){return(/h\d/i).test(e.nodeName)},text:function(e){return"text"===e.type},radio:function(e){return"radio"===e.type},checkbox:function(e){return"checkbox"===e.type},file:function(e){return"file"===e.type},password:function(e){return"password"===e.type},submit:function(e){return"submit"===e.type},image:function(e){return"image"===e.type},reset:function(e){return"reset"===e.type},button:function(e){return"button"===e.type||e.nodeName.toLowerCase()==="button"},input:function(e){return(/input|select|textarea|button/i).test(e.nodeName)}},setFilters:{first:function(r,e){return e===0},last:function(s,r,e,t){return r===t.length-1},even:function(r,e){return e%2===0},odd:function(r,e){return e%2===1},lt:function(s,r,e){return r<e[3]-0},gt:function(s,r,e){return r>e[3]-0},nth:function(s,r,e){return e[3]-0===r},eq:function(s,r,e){return e[3]-0===r}},filter:{PSEUDO:function(s,y,x,z){var e=y[1],r=f.filters[e];if(r){return r(s,x,y,z)}else{if(e==="contains"){return(s.textContent||s.innerText||b.getText([s])||"").indexOf(y[3])>=0}else{if(e==="not"){var t=y[3];for(var v=0,u=t.length;v<u;v++){if(t[v]===s){return false}}return true}else{b.error("Syntax error, unrecognized expression: "+e)}}}},CHILD:function(e,t){var x=t[1],r=e;switch(x){case"only":case"first":while((r=r.previousSibling)){if(r.nodeType===1){return false}}if(x==="first"){return true}r=e;case"last":while((r=r.nextSibling)){if(r.nodeType===1){return false}}return true;case"nth":var s=t[2],A=t[3];if(s===1&&A===0){return true}var v=t[0],z=e.parentNode;if(z&&(z.sizcache!==v||!e.nodeIndex)){var u=0;for(r=z.firstChild;r;r=r.nextSibling){if(r.nodeType===1){r.nodeIndex=++u}}z.sizcache=v}var y=e.nodeIndex-A;if(s===0){return y===0}else{return(y%s===0&&y/s>=0)}}},ID:function(r,e){return r.nodeType===1&&r.getAttribute("id")===e},TAG:function(r,e){return(e==="*"&&r.nodeType===1)||r.nodeName.toLowerCase()===e},CLASS:function(r,e){return(" "+(r.className||r.getAttribute("class"))+" ").indexOf(e)>-1},ATTR:function(v,t){var s=t[1],e=f.attrHandle[s]?f.attrHandle[s](v):v[s]!=null?v[s]:v.getAttribute(s),x=e+"",u=t[2],r=t[4];return e==null?u==="!=":u==="="?x===r:u==="*="?x.indexOf(r)>=0:u==="~="?(" "+x+" ").indexOf(r)>=0:!r?x&&e!==false:u==="!="?x!==r:u==="^="?x.indexOf(r)===0:u==="$="?x.substr(x.length-r.length)===r:u==="|="?x===r||x.substr(0,r.length+1)===r+"-":false},POS:function(u,r,s,v){var e=r[2],t=f.setFilters[e];if(t){return t(u,s,r,v)}}}};var k=f.match.POS,g=function(r,e){return"\\"+(e-0+1)};for(var m in f.match){f.match[m]=new RegExp(f.match[m].source+(/(?![^\[]*\])(?![^\(]*\))/.source));f.leftMatch[m]=new RegExp(/(^(?:.|\r|\n)*?)/.source+f.match[m].source.replace(/\\(\d+)/g,g))}var a=function(r,e){r=Array.prototype.slice.call(r,0);if(e){e.push.apply(e,r);return e}return r};try{Array.prototype.slice.call(document.documentElement.childNodes,0)[0].nodeType}catch(l){a=function(u,t){var r=t||[],s=0;if(d.call(u)==="[object Array]"){Array.prototype.push.apply(r,u)}else{if(typeof u.length==="number"){for(var e=u.length;s<e;s++){r.push(u[s])}}else{for(;u[s];s++){r.push(u[s])}}}return r}}var c;if(document.documentElement.compareDocumentPosition){c=function(r,e){if(!r.compareDocumentPosition||!e.compareDocumentPosition){if(r==e){o=true}return r.compareDocumentPosition?-1:1}var s=r.compareDocumentPosition(e)&4?-1:r===e?0:1;if(s===0){o=true}return s}}else{if("sourceIndex" in document.documentElement){c=function(r,e){if(!r.sourceIndex||!e.sourceIndex){if(r==e){o=true}return r.sourceIndex?-1:1}var s=r.sourceIndex-e.sourceIndex;if(s===0){o=true}return s}}else{if(document.createRange){c=function(t,r){if(!t.ownerDocument||!r.ownerDocument){if(t==r){o=true}return t.ownerDocument?-1:1}var s=t.ownerDocument.createRange(),e=r.ownerDocument.createRange();s.setStart(t,0);s.setEnd(t,0);e.setStart(r,0);e.setEnd(r,0);var u=s.compareBoundaryPoints(Range.START_TO_END,e);if(u===0){o=true}return u}}}}b.getText=function(e){var r="",t;for(var s=0;e[s];s++){t=e[s];if(t.nodeType===3||t.nodeType===4){r+=t.nodeValue}else{if(t.nodeType!==8){r+=b.getText(t.childNodes)}}}return r};(function(){var r=document.createElement("div"),s="script"+(new Date()).getTime();r.innerHTML="<a name='"+s+"'/>";var e=document.documentElement;e.insertBefore(r,e.firstChild);if(document.getElementById(s)){f.find.ID=function(u,v,x){if(typeof v.getElementById!=="undefined"&&!x){var t=v.getElementById(u[1]);return t?t.id===u[1]||typeof t.getAttributeNode!=="undefined"&&t.getAttributeNode("id").nodeValue===u[1]?[t]:undefined:[]}};f.filter.ID=function(v,t){var u=typeof v.getAttributeNode!=="undefined"&&v.getAttributeNode("id");return v.nodeType===1&&u&&u.nodeValue===t}}e.removeChild(r);e=r=null})();(function(){var e=document.createElement("div");e.appendChild(document.createComment(""));if(e.getElementsByTagName("*").length>0){f.find.TAG=function(r,v){var u=v.getElementsByTagName(r[1]);if(r[1]==="*"){var t=[];for(var s=0;u[s];s++){if(u[s].nodeType===1){t.push(u[s])}}u=t}return u}}e.innerHTML="<a href='#'></a>";if(e.firstChild&&typeof e.firstChild.getAttribute!=="undefined"&&e.firstChild.getAttribute("href")!=="#"){f.attrHandle.href=function(r){return r.getAttribute("href",2)}}e=null})();if(document.querySelectorAll){(function(){var e=b,s=document.createElement("div");s.innerHTML="<p class='TEST'></p>";if(s.querySelectorAll&&s.querySelectorAll(".TEST").length===0){return}b=function(x,v,t,u){v=v||document;if(!u&&v.nodeType===9&&!b.isXML(v)){try{return a(v.querySelectorAll(x),t)}catch(y){}}return e(x,v,t,u)};for(var r in e){b[r]=e[r]}s=null})()}(function(){var e=document.createElement("div");e.innerHTML="<div class='test e'></div><div class='test'></div>";if(!e.getElementsByClassName||e.getElementsByClassName("e").length===0){return}e.lastChild.className="e";if(e.getElementsByClassName("e").length===1){return}f.order.splice(1,0,"CLASS");f.find.CLASS=function(r,s,t){if(typeof s.getElementsByClassName!=="undefined"&&!t){return s.getElementsByClassName(r[1])}};e=null})();function n(r,x,v,A,y,z){for(var t=0,s=A.length;t<s;t++){var e=A[t];if(e){e=e[r];var u=false;while(e){if(e.sizcache===v){u=A[e.sizset];break}if(e.nodeType===1&&!z){e.sizcache=v;e.sizset=t}if(e.nodeName.toLowerCase()===x){u=e;break}e=e[r]}A[t]=u}}}function q(r,x,v,A,y,z){for(var t=0,s=A.length;t<s;t++){var e=A[t];if(e){e=e[r];var u=false;while(e){if(e.sizcache===v){u=A[e.sizset];break}if(e.nodeType===1){if(!z){e.sizcache=v;e.sizset=t}if(typeof x!=="string"){if(e===x){u=true;break}}else{if(b.filter(x,[e]).length>0){u=e;break}}}e=e[r]}A[t]=u}}}b.contains=document.compareDocumentPosition?function(r,e){return !!(r.compareDocumentPosition(e)&16)}:function(r,e){return r!==e&&(r.contains?r.contains(e):true)};b.isXML=function(e){var r=(e?e.ownerDocument||e:0).documentElement;return r?r.nodeName!=="HTML":false};var h=function(e,y){var t=[],u="",v,s=y.nodeType?[y]:y;while((v=f.match.PSEUDO.exec(e))){u+=v[0];e=e.replace(f.match.PSEUDO,"")}e=f.relative[e]?e+"*":e;for(var x=0,r=s.length;x<r;x++){b(e,s[x],t)}return b.filter(u,t)};window.tinymce.dom.Sizzle=b})();(function(d){var f=d.each,c=d.DOM,b=d.isIE,e=d.isWebKit,a;d.create("tinymce.dom.EventUtils",{EventUtils:function(){this.inits=[];this.events=[]},add:function(m,p,l,j){var g,h=this,i=h.events,k;if(p instanceof Array){k=[];f(p,function(o){k.push(h.add(m,o,l,j))});return k}if(m&&m.hasOwnProperty&&m instanceof Array){k=[];f(m,function(n){n=c.get(n);k.push(h.add(n,p,l,j))});return k}m=c.get(m);if(!m){return}g=function(n){if(h.disabled){return}n=n||window.event;if(n&&b){if(!n.target){n.target=n.srcElement}d.extend(n,h._stoppers)}if(!j){return l(n)}return l.call(j,n)};if(p=="unload"){d.unloads.unshift({func:g});return g}if(p=="init"){if(h.domLoaded){g()}else{h.inits.push(g)}return g}i.push({obj:m,name:p,func:l,cfunc:g,scope:j});h._add(m,p,g);return l},remove:function(l,m,k){var h=this,g=h.events,i=false,j;if(l&&l.hasOwnProperty&&l instanceof Array){j=[];f(l,function(n){n=c.get(n);j.push(h.remove(n,m,k))});return j}l=c.get(l);f(g,function(o,n){if(o.obj==l&&o.name==m&&(!k||(o.func==k||o.cfunc==k))){g.splice(n,1);h._remove(l,m,o.cfunc);i=true;return false}});return i},clear:function(l){var j=this,g=j.events,h,k;if(l){l=c.get(l);for(h=g.length-1;h>=0;h--){k=g[h];if(k.obj===l){j._remove(k.obj,k.name,k.cfunc);k.obj=k.cfunc=null;g.splice(h,1)}}}},cancel:function(g){if(!g){return false}this.stop(g);return this.prevent(g)},stop:function(g){if(g.stopPropagation){g.stopPropagation()}else{g.cancelBubble=true}return false},prevent:function(g){if(g.preventDefault){g.preventDefault()}else{g.returnValue=false}return false},destroy:function(){var g=this;f(g.events,function(j,h){g._remove(j.obj,j.name,j.cfunc);j.obj=j.cfunc=null});g.events=[];g=null},_add:function(h,i,g){if(h.attachEvent){h.attachEvent("on"+i,g)}else{if(h.addEventListener){h.addEventListener(i,g,false)}else{h["on"+i]=g}}},_remove:function(i,j,h){if(i){try{if(i.detachEvent){i.detachEvent("on"+j,h)}else{if(i.removeEventListener){i.removeEventListener(j,h,false)}else{i["on"+j]=null}}}catch(g){}}},_pageInit:function(h){var g=this;if(g.domLoaded){return}g.domLoaded=true;f(g.inits,function(i){i()});g.inits=[]},_wait:function(i){var g=this,h=i.document;if(i.tinyMCE_GZ&&tinyMCE_GZ.loaded){g.domLoaded=1;return}if(h.readyState==="complete"){g._pageInit(i);return}if(h.attachEvent){h.attachEvent("onreadystatechange",function(){if(h.readyState==="complete"){h.detachEvent("onreadystatechange",arguments.callee);g._pageInit(i)}});if(h.documentElement.doScroll&&i==i.top){(function(){if(g.domLoaded){return}try{h.documentElement.doScroll("left")}catch(j){setTimeout(arguments.callee,0);return}g._pageInit(i)})()}}else{if(h.addEventListener){g._add(i,"DOMContentLoaded",function(){g._pageInit(i)})}}g._add(i,"load",function(){g._pageInit(i)})},_stoppers:{preventDefault:function(){this.returnValue=false},stopPropagation:function(){this.cancelBubble=true}}});a=d.dom.Event=new d.dom.EventUtils();a._wait(window);d.addUnload(function(){a.destroy()})})(tinymce);(function(a){a.dom.Element=function(f,d){var b=this,e,c;b.settings=d=d||{};b.id=f;b.dom=e=d.dom||a.DOM;if(!a.isIE){c=e.get(b.id)}a.each(("getPos,getRect,getParent,add,setStyle,getStyle,setStyles,setAttrib,setAttribs,getAttrib,addClass,removeClass,hasClass,getOuterHTML,setOuterHTML,remove,show,hide,isHidden,setHTML,get").split(/,/),function(g){b[g]=function(){var h=[f],j;for(j=0;j<arguments.length;j++){h.push(arguments[j])}h=e[g].apply(e,h);b.update(g);return h}});a.extend(b,{on:function(i,h,g){return a.dom.Event.add(b.id,i,h,g)},getXY:function(){return{x:parseInt(b.getStyle("left")),y:parseInt(b.getStyle("top"))}},getSize:function(){var g=e.get(b.id);return{w:parseInt(b.getStyle("width")||g.clientWidth),h:parseInt(b.getStyle("height")||g.clientHeight)}},moveTo:function(g,h){b.setStyles({left:g,top:h})},moveBy:function(g,i){var h=b.getXY();b.moveTo(h.x+g,h.y+i)},resizeTo:function(g,i){b.setStyles({width:g,height:i})},resizeBy:function(g,j){var i=b.getSize();b.resizeTo(i.w+g,i.h+j)},update:function(h){var g;if(a.isIE6&&d.blocker){h=h||"";if(h.indexOf("get")===0||h.indexOf("has")===0||h.indexOf("is")===0){return}if(h=="remove"){e.remove(b.blocker);return}if(!b.blocker){b.blocker=e.uniqueId();g=e.add(d.container||e.getRoot(),"iframe",{id:b.blocker,style:"position:absolute;",frameBorder:0,src:'javascript:""'});e.setStyle(g,"opacity",0)}else{g=e.get(b.blocker)}e.setStyles(g,{left:b.getStyle("left",1),top:b.getStyle("top",1),width:b.getStyle("width",1),height:b.getStyle("height",1),display:b.getStyle("display",1),zIndex:parseInt(b.getStyle("zIndex",1)||0)-1})}}})}})(tinymce);(function(c){function e(f){return f.replace(/[\n\r]+/g,"")}var b=c.is,a=c.isIE,d=c.each;c.create("tinymce.dom.Selection",{Selection:function(i,h,g){var f=this;f.dom=i;f.win=h;f.serializer=g;d(["onBeforeSetContent","onBeforeGetContent","onSetContent","onGetContent"],function(j){f[j]=new c.util.Dispatcher(f)});if(!f.win.getSelection){f.tridentSel=new c.dom.TridentSelection(f)}if(c.isIE&&i.boxModel){this._fixIESelection()}c.addUnload(f.destroy,f)},setCursorLocation:function(h,i){var f=this;var g=f.dom.createRng();g.setStart(h,i);g.setEnd(h,i);f.setRng(g);f.collapse(false)},getContent:function(g){var f=this,h=f.getRng(),l=f.dom.create("body"),j=f.getSel(),i,k,m;g=g||{};i=k="";g.get=true;g.format=g.format||"html";g.forced_root_block="";f.onBeforeGetContent.dispatch(f,g);if(g.format=="text"){return f.isCollapsed()?"":(h.text||(j.toString?j.toString():""))}if(h.cloneContents){m=h.cloneContents();if(m){l.appendChild(m)}}else{if(b(h.item)||b(h.htmlText)){l.innerHTML="<br>"+(h.item?h.item(0).outerHTML:h.htmlText);l.removeChild(l.firstChild)}else{l.innerHTML=h.toString()}}if(/^\s/.test(l.innerHTML)){i=" "}if(/\s+$/.test(l.innerHTML)){k=" "}g.getInner=true;g.content=f.isCollapsed()?"":i+f.serializer.serialize(l,g)+k;f.onGetContent.dispatch(f,g);return g.content},setContent:function(g,i){var n=this,f=n.getRng(),j,k=n.win.document,m,l;i=i||{format:"html"};i.set=true;g=i.content=g;if(!i.no_events){n.onBeforeSetContent.dispatch(n,i)}g=i.content;if(f.insertNode){g+='<span id="__caret">_</span>';if(f.startContainer==k&&f.endContainer==k){k.body.innerHTML=g}else{f.deleteContents();if(k.body.childNodes.length==0){k.body.innerHTML=g}else{if(f.createContextualFragment){f.insertNode(f.createContextualFragment(g))}else{m=k.createDocumentFragment();l=k.createElement("div");m.appendChild(l);l.outerHTML=g;f.insertNode(m)}}}j=n.dom.get("__caret");f=k.createRange();f.setStartBefore(j);f.setEndBefore(j);n.setRng(f);n.dom.remove("__caret");try{n.setRng(f)}catch(h){}}else{if(f.item){k.execCommand("Delete",false,null);f=n.getRng()}if(/^\s+/.test(g)){f.pasteHTML('<span id="__mce_tmp">_</span>'+g);n.dom.remove("__mce_tmp")}else{f.pasteHTML(g)}}if(!i.no_events){n.onSetContent.dispatch(n,i)}},getStart:function(){var g=this.getRng(),h,f,j,i;if(g.duplicate||g.item){if(g.item){return g.item(0)}j=g.duplicate();j.collapse(1);h=j.parentElement();f=i=g.parentElement();while(i=i.parentNode){if(i==h){h=f;break}}return h}else{h=g.startContainer;if(h.nodeType==1&&h.hasChildNodes()){h=h.childNodes[Math.min(h.childNodes.length-1,g.startOffset)]}if(h&&h.nodeType==3){return h.parentNode}return h}},getEnd:function(){var g=this,h=g.getRng(),i,f;if(h.duplicate||h.item){if(h.item){return h.item(0)}h=h.duplicate();h.collapse(0);i=h.parentElement();if(i&&i.nodeName=="BODY"){return i.lastChild||i}return i}else{i=h.endContainer;f=h.endOffset;if(i.nodeType==1&&i.hasChildNodes()){i=i.childNodes[f>0?f-1:f]}if(i&&i.nodeType==3){return i.parentNode}return i}},getBookmark:function(r,s){var v=this,m=v.dom,g,j,i,n,h,o,p,l="\uFEFF",u;function f(x,y){var t=0;d(m.select(x),function(A,z){if(A==y){t=z}});return t}if(r==2){function k(){var x=v.getRng(true),t=m.getRoot(),y={};function z(C,H){var B=C[H?"startContainer":"endContainer"],G=C[H?"startOffset":"endOffset"],A=[],D,F,E=0;if(B.nodeType==3){if(s){for(D=B.previousSibling;D&&D.nodeType==3;D=D.previousSibling){G+=D.nodeValue.length}}A.push(G)}else{F=B.childNodes;if(G>=F.length&&F.length){E=1;G=Math.max(0,F.length-1)}A.push(v.dom.nodeIndex(F[G],s)+E)}for(;B&&B!=t;B=B.parentNode){A.push(v.dom.nodeIndex(B,s))}return A}y.start=z(x,true);if(!v.isCollapsed()){y.end=z(x)}return y}if(v.tridentSel){return v.tridentSel.getBookmark(r)}return k()}if(r){return{rng:v.getRng()}}g=v.getRng();i=m.uniqueId();n=tinyMCE.activeEditor.selection.isCollapsed();u="overflow:hidden;line-height:0px";if(g.duplicate||g.item){if(!g.item){j=g.duplicate();try{g.collapse();g.pasteHTML('<span data-mce-type="bookmark" id="'+i+'_start" style="'+u+'">'+l+"</span>");if(!n){j.collapse(false);g.moveToElementText(j.parentElement());if(g.compareEndPoints("StartToEnd",j)==0){j.move("character",-1)}j.pasteHTML('<span data-mce-type="bookmark" id="'+i+'_end" style="'+u+'">'+l+"</span>")}}catch(q){return null}}else{o=g.item(0);h=o.nodeName;return{name:h,index:f(h,o)}}}else{o=v.getNode();h=o.nodeName;if(h=="IMG"){return{name:h,index:f(h,o)}}j=g.cloneRange();if(!n){j.collapse(false);j.insertNode(m.create("span",{"data-mce-type":"bookmark",id:i+"_end",style:u},l))}g.collapse(true);g.insertNode(m.create("span",{"data-mce-type":"bookmark",id:i+"_start",style:u},l))}v.moveToBookmark({id:i,keep:1});return{id:i}},moveToBookmark:function(n){var r=this,l=r.dom,i,h,f,q,j,s,o,p;if(n){if(n.start){f=l.createRng();q=l.getRoot();function g(z){var t=n[z?"start":"end"],v,x,y,u;if(t){y=t[0];for(x=q,v=t.length-1;v>=1;v--){u=x.childNodes;if(t[v]>u.length-1){return}x=u[t[v]]}if(x.nodeType===3){y=Math.min(t[0],x.nodeValue.length)}if(x.nodeType===1){y=Math.min(t[0],x.childNodes.length)}if(z){f.setStart(x,y)}else{f.setEnd(x,y)}}return true}if(r.tridentSel){return r.tridentSel.moveToBookmark(n)}if(g(true)&&g()){r.setRng(f)}}else{if(n.id){function k(A){var u=l.get(n.id+"_"+A),z,t,x,y,v=n.keep;if(u){z=u.parentNode;if(A=="start"){if(!v){t=l.nodeIndex(u)}else{z=u.firstChild;t=1}j=s=z;o=p=t}else{if(!v){t=l.nodeIndex(u)}else{z=u.firstChild;t=1}s=z;p=t}if(!v){y=u.previousSibling;x=u.nextSibling;d(c.grep(u.childNodes),function(B){if(B.nodeType==3){B.nodeValue=B.nodeValue.replace(/\uFEFF/g,"")}});while(u=l.get(n.id+"_"+A)){l.remove(u,1)}if(y&&x&&y.nodeType==x.nodeType&&y.nodeType==3&&!c.isOpera){t=y.nodeValue.length;y.appendData(x.nodeValue);l.remove(x);if(A=="start"){j=s=y;o=p=t}else{s=y;p=t}}}}}function m(t){if(l.isBlock(t)&&!t.innerHTML){t.innerHTML=!a?'<br data-mce-bogus="1" />':" "}return t}k("start");k("end");if(j){f=l.createRng();f.setStart(m(j),o);f.setEnd(m(s),p);r.setRng(f)}}else{if(n.name){r.select(l.select(n.name)[n.index])}else{if(n.rng){r.setRng(n.rng)}}}}}},select:function(k,j){var i=this,l=i.dom,g=l.createRng(),f;if(k){f=l.nodeIndex(k);g.setStart(k.parentNode,f);g.setEnd(k.parentNode,f+1);if(j){function h(m,o){var n=new c.dom.TreeWalker(m,m);do{if(m.nodeType==3&&c.trim(m.nodeValue).length!=0){if(o){g.setStart(m,0)}else{g.setEnd(m,m.nodeValue.length)}return}if(m.nodeName=="BR"){if(o){g.setStartBefore(m)}else{g.setEndBefore(m)}return}}while(m=(o?n.next():n.prev()))}h(k,1);h(k)}i.setRng(g)}return k},isCollapsed:function(){var f=this,h=f.getRng(),g=f.getSel();if(!h||h.item){return false}if(h.compareEndPoints){return h.compareEndPoints("StartToEnd",h)===0}return !g||h.collapsed},collapse:function(f){var h=this,g=h.getRng(),i;if(g.item){i=g.item(0);g=h.win.document.body.createTextRange();g.moveToElementText(i)}g.collapse(!!f);h.setRng(g)},getSel:function(){var g=this,f=this.win;return f.getSelection?f.getSelection():f.document.selection},getRng:function(l){var g=this,h,i,k,j=g.win.document;if(l&&g.tridentSel){return g.tridentSel.getRangeAt(0)}try{if(h=g.getSel()){i=h.rangeCount>0?h.getRangeAt(0):(h.createRange?h.createRange():j.createRange())}}catch(f){}if(c.isIE&&i&&i.setStart&&j.selection.createRange().item){k=j.selection.createRange().item(0);i=j.createRange();i.setStartBefore(k);i.setEndAfter(k)}if(!i){i=j.createRange?j.createRange():j.body.createTextRange()}if(g.selectedRange&&g.explicitRange){if(i.compareBoundaryPoints(i.START_TO_START,g.selectedRange)===0&&i.compareBoundaryPoints(i.END_TO_END,g.selectedRange)===0){i=g.explicitRange}else{g.selectedRange=null;g.explicitRange=null}}return i},setRng:function(i){var h,g=this;if(!g.tridentSel){h=g.getSel();if(h){g.explicitRange=i;try{h.removeAllRanges()}catch(f){}h.addRange(i);g.selectedRange=h.rangeCount>0?h.getRangeAt(0):null}}else{if(i.cloneRange){g.tridentSel.addRange(i);return}try{i.select()}catch(f){}}},setNode:function(g){var f=this;f.setContent(f.dom.getOuterHTML(g));return g},getNode:function(){var h=this,g=h.getRng(),i=h.getSel(),l,k=g.startContainer,f=g.endContainer;if(!g){return h.dom.getRoot()}if(g.setStart){l=g.commonAncestorContainer;if(!g.collapsed){if(g.startContainer==g.endContainer){if(g.endOffset-g.startOffset<2){if(g.startContainer.hasChildNodes()){l=g.startContainer.childNodes[g.startOffset]}}}if(k.nodeType===3&&f.nodeType===3){function j(p,m){var o=p;while(p&&p.nodeType===3&&p.length===0){p=m?p.nextSibling:p.previousSibling}return p||o}if(k.length===g.startOffset){k=j(k.nextSibling,true)}else{k=k.parentNode}if(g.endOffset===0){f=j(f.previousSibling,false)}else{f=f.parentNode}if(k&&k===f){return k}}}if(l&&l.nodeType==3){return l.parentNode}return l}return g.item?g.item(0):g.parentElement()},getSelectedBlocks:function(o,g){var m=this,j=m.dom,l,k,h,i=[];l=j.getParent(o||m.getStart(),j.isBlock);k=j.getParent(g||m.getEnd(),j.isBlock);if(l){i.push(l)}if(l&&k&&l!=k){h=l;var f=new c.dom.TreeWalker(l,j.getRoot());while((h=f.next())&&h!=k){if(j.isBlock(h)){i.push(h)}}}if(k&&l!=k){i.push(k)}return i},normalize:function(){var g=this,f,i;if(c.isIE){return}function h(p){var k,o,n,m=g.dom,j=m.getRoot(),l;k=f[(p?"start":"end")+"Container"];o=f[(p?"start":"end")+"Offset"];if(k.nodeType===9){k=k.body;o=0}if(k===j){if(k.hasChildNodes()){k=k.childNodes[Math.min(!p&&o>0?o-1:o,k.childNodes.length-1)];o=0;if(k.hasChildNodes()){l=k;n=new c.dom.TreeWalker(k,j);do{if(l.nodeType===3){o=p?0:l.nodeValue.length-1;k=l;i=true;break}if(/^(BR|IMG)$/.test(l.nodeName)){o=m.nodeIndex(l);k=l.parentNode;if(l.nodeName=="IMG"&&!p){o++}i=true;break}}while(l=(p?n.next():n.prev()))}}}if(i){f["set"+(p?"Start":"End")](k,o)}}f=g.getRng();h(true);if(!f.collapsed){h()}if(i){g.setRng(f)}},destroy:function(g){var f=this;f.win=null;if(!g){c.removeUnload(f.destroy)}},_fixIESelection:function(){var g=this.dom,m=g.doc,h=m.body,j,n,f;m.documentElement.unselectable=true;function i(o,r){var p=h.createTextRange();try{p.moveToPoint(o,r)}catch(q){p=null}return p}function l(p){var o;if(p.button){o=i(p.x,p.y);if(o){if(o.compareEndPoints("StartToStart",n)>0){o.setEndPoint("StartToStart",n)}else{o.setEndPoint("EndToEnd",n)}o.select()}}else{k()}}function k(){var o=m.selection.createRange();if(n&&!o.item&&o.compareEndPoints("StartToEnd",o)===0){n.select()}g.unbind(m,"mouseup",k);g.unbind(m,"mousemove",l);n=j=0}g.bind(m,["mousedown","contextmenu"],function(o){if(o.target.nodeName==="HTML"){if(j){k()}f=m.documentElement;if(f.scrollHeight>f.clientHeight){return}j=1;n=i(o.x,o.y);if(n){g.bind(m,"mouseup",k);g.bind(m,"mousemove",l);g.win.focus();n.select()}}})}})})(tinymce);(function(a){a.dom.Serializer=function(e,i,f){var h,b,d=a.isIE,g=a.each,c;if(!e.apply_source_formatting){e.indent=false}i=i||a.DOM;f=f||new a.html.Schema(e);e.entity_encoding=e.entity_encoding||"named";e.remove_trailing_brs="remove_trailing_brs" in e?e.remove_trailing_brs:true;h=new a.util.Dispatcher(self);b=new a.util.Dispatcher(self);c=new a.html.DomParser(e,f);c.addAttributeFilter("src,href,style",function(k,j){var o=k.length,l,q,n="data-mce-"+j,p=e.url_converter,r=e.url_converter_scope,m;while(o--){l=k[o];q=l.attributes.map[n];if(q!==m){l.attr(j,q.length>0?q:null);l.attr(n,null)}else{q=l.attributes.map[j];if(j==="style"){q=i.serializeStyle(i.parseStyle(q),l.name)}else{if(p){q=p.call(r,q,j,l.name)}}l.attr(j,q.length>0?q:null)}}});c.addAttributeFilter("class",function(j,k){var l=j.length,m,n;while(l--){m=j[l];n=m.attr("class").replace(/\s*mce(Item\w+|Selected)\s*/g,"");m.attr("class",n.length>0?n:null)}});c.addAttributeFilter("data-mce-type",function(j,l,k){var m=j.length,n;while(m--){n=j[m];if(n.attributes.map["data-mce-type"]==="bookmark"&&!k.cleanup){n.remove()}}});c.addNodeFilter("script,style",function(k,l){var m=k.length,n,o;function j(p){return p.replace(/(<!--\[CDATA\[|\]\]-->)/g,"\n").replace(/^[\r\n]*|[\r\n]*$/g,"").replace(/^\s*((<!--)?(\s*\/\/)?\s*<!\[CDATA\[|(<!--\s*)?\/\*\s*<!\[CDATA\[\s*\*\/|(\/\/)?\s*<!--|\/\*\s*<!--\s*\*\/)\s*[\r\n]*/gi,"").replace(/\s*(\/\*\s*\]\]>\s*\*\/(-->)?|\s*\/\/\s*\]\]>(-->)?|\/\/\s*(-->)?|\]\]>|\/\*\s*-->\s*\*\/|\s*-->\s*)\s*$/g,"")}while(m--){n=k[m];o=n.firstChild?n.firstChild.value:"";if(l==="script"){n.attr("type",(n.attr("type")||"text/javascript").replace(/^mce\-/,""));if(o.length>0){n.firstChild.value="// <![CDATA[\n"+j(o)+"\n// ]]>"}}else{if(o.length>0){n.firstChild.value="<!--\n"+j(o)+"\n-->"}}}});c.addNodeFilter("#comment",function(j,k){var l=j.length,m;while(l--){m=j[l];if(m.value.indexOf("[CDATA[")===0){m.name="#cdata";m.type=4;m.value=m.value.replace(/^\[CDATA\[|\]\]$/g,"")}else{if(m.value.indexOf("mce:protected ")===0){m.name="#text";m.type=3;m.raw=true;m.value=unescape(m.value).substr(14)}}}});c.addNodeFilter("xml:namespace,input",function(j,k){var l=j.length,m;while(l--){m=j[l];if(m.type===7){m.remove()}else{if(m.type===1){if(k==="input"&&!("type" in m.attributes.map)){m.attr("type","text")}}}}});if(e.fix_list_elements){c.addNodeFilter("ul,ol",function(k,l){var m=k.length,n,j;while(m--){n=k[m];j=n.parent;if(j.name==="ul"||j.name==="ol"){if(n.prev&&n.prev.name==="li"){n.prev.append(n)}}}})}c.addAttributeFilter("data-mce-src,data-mce-href,data-mce-style",function(j,k){var l=j.length;while(l--){j[l].attr(k,null)}});return{schema:f,addNodeFilter:c.addNodeFilter,addAttributeFilter:c.addAttributeFilter,onPreProcess:h,onPostProcess:b,serialize:function(o,m){var l,p,k,j,n;if(d&&i.select("script,style,select,map").length>0){n=o.innerHTML;o=o.cloneNode(false);i.setHTML(o,n)}else{o=o.cloneNode(true)}l=o.ownerDocument.implementation;if(l.createHTMLDocument){p=l.createHTMLDocument("");g(o.nodeName=="BODY"?o.childNodes:[o],function(q){p.body.appendChild(p.importNode(q,true))});if(o.nodeName!="BODY"){o=p.body.firstChild}else{o=p.body}k=i.doc;i.doc=p}m=m||{};m.format=m.format||"html";if(!m.no_events){m.node=o;h.dispatch(self,m)}j=new a.html.Serializer(e,f);m.content=j.serialize(c.parse(m.getInner?o.innerHTML:a.trim(i.getOuterHTML(o),m),m));if(!m.cleanup){m.content=m.content.replace(/\uFEFF|\u200B/g,"")}if(!m.no_events){b.dispatch(self,m)}if(k){i.doc=k}m.node=null;return m.content},addRules:function(j){f.addValidElements(j)},setRules:function(j){f.setValidElements(j)}}}})(tinymce);(function(a){a.dom.ScriptLoader=function(h){var c=0,k=1,i=2,l={},j=[],f={},d=[],g=0,e;function b(m,v){var x=this,q=a.DOM,s,o,r,n;function p(){q.remove(n);if(s){s.onreadystatechange=s.onload=s=null}v()}function u(){if(typeof(console)!=="undefined"&&console.log){console.log("Failed to load: "+m)}}n=q.uniqueId();if(a.isIE6){o=new a.util.URI(m);r=location;if(o.host==r.hostname&&o.port==r.port&&(o.protocol+":")==r.protocol&&o.protocol.toLowerCase()!="file"){a.util.XHR.send({url:a._addVer(o.getURI()),success:function(y){var t=q.create("script",{type:"text/javascript"});t.text=y;document.getElementsByTagName("head")[0].appendChild(t);q.remove(t);p()},error:u});return}}s=q.create("script",{id:n,type:"text/javascript",src:a._addVer(m)});if(!a.isIE){s.onload=p}s.onerror=u;if(!a.isOpera){s.onreadystatechange=function(){var t=s.readyState;if(t=="complete"||t=="loaded"){p()}}}(document.getElementsByTagName("head")[0]||document.body).appendChild(s)}this.isDone=function(m){return l[m]==i};this.markDone=function(m){l[m]=i};this.add=this.load=function(m,q,n){var o,p=l[m];if(p==e){j.push(m);l[m]=c}if(q){if(!f[m]){f[m]=[]}f[m].push({func:q,scope:n||this})}};this.loadQueue=function(n,m){this.loadScripts(j,n,m)};this.loadScripts=function(m,q,p){var o;function n(r){a.each(f[r],function(s){s.func.call(s.scope)});f[r]=e}d.push({func:q,scope:p||this});o=function(){var r=a.grep(m);m.length=0;a.each(r,function(s){if(l[s]==i){n(s);return}if(l[s]!=k){l[s]=k;g++;b(s,function(){l[s]=i;g--;n(s);o()})}});if(!g){a.each(d,function(s){s.func.call(s.scope)});d.length=0}};o()}};a.ScriptLoader=new a.dom.ScriptLoader()})(tinymce);tinymce.dom.TreeWalker=function(a,c){var b=a;function d(i,f,e,j){var h,g;if(i){if(!j&&i[f]){return i[f]}if(i!=c){h=i[e];if(h){return h}for(g=i.parentNode;g&&g!=c;g=g.parentNode){h=g[e];if(h){return h}}}}}this.current=function(){return b};this.next=function(e){return(b=d(b,"firstChild","nextSibling",e))};this.prev=function(e){return(b=d(b,"lastChild","previousSibling",e))}};(function(a){a.dom.RangeUtils=function(c){var b="\uFEFF";this.walk=function(d,s){var i=d.startContainer,l=d.startOffset,t=d.endContainer,m=d.endOffset,j,g,o,h,r,q,e;e=c.select("td.mceSelected,th.mceSelected");if(e.length>0){a.each(e,function(u){s([u])});return}function f(u){var v;v=u[0];if(v.nodeType===3&&v===i&&l>=v.nodeValue.length){u.splice(0,1)}v=u[u.length-1];if(m===0&&u.length>0&&v===t&&v.nodeType===3){u.splice(u.length-1,1)}return u}function p(x,v,u){var y=[];for(;x&&x!=u;x=x[v]){y.push(x)}return y}function n(v,u){do{if(v.parentNode==u){return v}v=v.parentNode}while(v)}function k(x,v,y){var u=y?"nextSibling":"previousSibling";for(h=x,r=h.parentNode;h&&h!=v;h=r){r=h.parentNode;q=p(h==x?h:h[u],u);if(q.length){if(!y){q.reverse()}s(f(q))}}}if(i.nodeType==1&&i.hasChildNodes()){i=i.childNodes[l]}if(t.nodeType==1&&t.hasChildNodes()){t=t.childNodes[Math.min(m-1,t.childNodes.length-1)]}if(i==t){return s(f([i]))}j=c.findCommonAncestor(i,t);for(h=i;h;h=h.parentNode){if(h===t){return k(i,j,true)}if(h===j){break}}for(h=t;h;h=h.parentNode){if(h===i){return k(t,j)}if(h===j){break}}g=n(i,j)||i;o=n(t,j)||t;k(i,g,true);q=p(g==i?g:g.nextSibling,"nextSibling",o==t?o.nextSibling:o);if(q.length){s(f(q))}k(t,o)};this.split=function(e){var h=e.startContainer,d=e.startOffset,i=e.endContainer,g=e.endOffset;function f(j,k){return j.splitText(k)}if(h==i&&h.nodeType==3){if(d>0&&d<h.nodeValue.length){i=f(h,d);h=i.previousSibling;if(g>d){g=g-d;h=i=f(i,g).previousSibling;g=i.nodeValue.length;d=0}else{g=0}}}else{if(h.nodeType==3&&d>0&&d<h.nodeValue.length){h=f(h,d);d=0}if(i.nodeType==3&&g>0&&g<i.nodeValue.length){i=f(i,g).previousSibling;g=i.nodeValue.length}}return{startContainer:h,startOffset:d,endContainer:i,endOffset:g}}};a.dom.RangeUtils.compareRanges=function(c,b){if(c&&b){if(c.item||c.duplicate){if(c.item&&b.item&&c.item(0)===b.item(0)){return true}if(c.isEqual&&b.isEqual&&b.isEqual(c)){return true}}else{return c.startContainer==b.startContainer&&c.startOffset==b.startOffset}}return false}})(tinymce);(function(b){var a=b.dom.Event,c=b.each;b.create("tinymce.ui.KeyboardNavigation",{KeyboardNavigation:function(e,f){var p=this,m=e.root,l=e.items,n=e.enableUpDown,i=e.enableLeftRight||!e.enableUpDown,k=e.excludeFromTabOrder,j,h,o,d,g;f=f||b.DOM;j=function(q){g=q.target.id};h=function(q){f.setAttrib(q.target.id,"tabindex","-1")};d=function(q){var r=f.get(g);f.setAttrib(r,"tabindex","0");r.focus()};p.focus=function(){f.get(g).focus()};p.destroy=function(){c(l,function(q){f.unbind(f.get(q.id),"focus",j);f.unbind(f.get(q.id),"blur",h)});f.unbind(f.get(m),"focus",d);f.unbind(f.get(m),"keydown",o);l=f=m=p.focus=j=h=o=d=null;p.destroy=function(){}};p.moveFocus=function(u,r){var q=-1,t=p.controls,s;if(!g){return}c(l,function(x,v){if(x.id===g){q=v;return false}});q+=u;if(q<0){q=l.length-1}else{if(q>=l.length){q=0}}s=l[q];f.setAttrib(g,"tabindex","-1");f.setAttrib(s.id,"tabindex","0");f.get(s.id).focus();if(e.actOnFocus){e.onAction(s.id)}if(r){a.cancel(r)}};o=function(y){var u=37,t=39,x=38,z=40,q=27,s=14,r=13,v=32;switch(y.keyCode){case u:if(i){p.moveFocus(-1)}break;case t:if(i){p.moveFocus(1)}break;case x:if(n){p.moveFocus(-1)}break;case z:if(n){p.moveFocus(1)}break;case q:if(e.onCancel){e.onCancel();a.cancel(y)}break;case s:case r:case v:if(e.onAction){e.onAction(g);a.cancel(y)}break}};c(l,function(s,q){var r;if(!s.id){s.id=f.uniqueId("_mce_item_")}if(k){f.bind(s.id,"blur",h);r="-1"}else{r=(q===0?"0":"-1")}f.setAttrib(s.id,"tabindex",r);f.bind(f.get(s.id),"focus",j)});if(l[0]){g=l[0].id}f.setAttrib(m,"tabindex","-1");f.bind(f.get(m),"focus",d);f.bind(f.get(m),"keydown",o)}})})(tinymce);(function(c){var b=c.DOM,a=c.is;c.create("tinymce.ui.Control",{Control:function(f,e,d){this.id=f;this.settings=e=e||{};this.rendered=false;this.onRender=new c.util.Dispatcher(this);this.classPrefix="";this.scope=e.scope||this;this.disabled=0;this.active=0;this.editor=d},setAriaProperty:function(f,e){var d=b.get(this.id+"_aria")||b.get(this.id);if(d){b.setAttrib(d,"aria-"+f,!!e)}},focus:function(){b.get(this.id).focus()},setDisabled:function(d){if(d!=this.disabled){this.setAriaProperty("disabled",d);this.setState("Disabled",d);this.setState("Enabled",!d);this.disabled=d}},isDisabled:function(){return this.disabled},setActive:function(d){if(d!=this.active){this.setState("Active",d);this.active=d;this.setAriaProperty("pressed",d)}},isActive:function(){return this.active},setState:function(f,d){var e=b.get(this.id);f=this.classPrefix+f;if(d){b.addClass(e,f)}else{b.removeClass(e,f)}},isRendered:function(){return this.rendered},renderHTML:function(){},renderTo:function(d){b.setHTML(d,this.renderHTML())},postRender:function(){var e=this,d;if(a(e.disabled)){d=e.disabled;e.disabled=-1;e.setDisabled(d)}if(a(e.active)){d=e.active;e.active=-1;e.setActive(d)}},remove:function(){b.remove(this.id);this.destroy()},destroy:function(){c.dom.Event.clear(this.id)}})})(tinymce);tinymce.create("tinymce.ui.Container:tinymce.ui.Control",{Container:function(c,b,a){this.parent(c,b,a);this.controls=[];this.lookup={}},add:function(a){this.lookup[a.id]=a;this.controls.push(a);return a},get:function(a){return this.lookup[a]}});tinymce.create("tinymce.ui.Separator:tinymce.ui.Control",{Separator:function(b,a){this.parent(b,a);this.classPrefix="mceSeparator";this.setDisabled(true)},renderHTML:function(){return tinymce.DOM.createHTML("span",{"class":this.classPrefix,role:"separator","aria-orientation":"vertical",tabindex:"-1"})}});(function(d){var c=d.is,b=d.DOM,e=d.each,a=d.walk;d.create("tinymce.ui.MenuItem:tinymce.ui.Control",{MenuItem:function(g,f){this.parent(g,f);this.classPrefix="mceMenuItem"},setSelected:function(f){this.setState("Selected",f);this.setAriaProperty("checked",!!f);this.selected=f},isSelected:function(){return this.selected},postRender:function(){var f=this;f.parent();if(c(f.selected)){f.setSelected(f.selected)}}})})(tinymce);(function(d){var c=d.is,b=d.DOM,e=d.each,a=d.walk;d.create("tinymce.ui.Menu:tinymce.ui.MenuItem",{Menu:function(h,g){var f=this;f.parent(h,g);f.items={};f.collapsed=false;f.menuCount=0;f.onAddItem=new d.util.Dispatcher(this)},expand:function(g){var f=this;if(g){a(f,function(h){if(h.expand){h.expand()}},"items",f)}f.collapsed=false},collapse:function(g){var f=this;if(g){a(f,function(h){if(h.collapse){h.collapse()}},"items",f)}f.collapsed=true},isCollapsed:function(){return this.collapsed},add:function(f){if(!f.settings){f=new d.ui.MenuItem(f.id||b.uniqueId(),f)}this.onAddItem.dispatch(this,f);return this.items[f.id]=f},addSeparator:function(){return this.add({separator:true})},addMenu:function(f){if(!f.collapse){f=this.createMenu(f)}this.menuCount++;return this.add(f)},hasMenus:function(){return this.menuCount!==0},remove:function(f){delete this.items[f.id]},removeAll:function(){var f=this;a(f,function(g){if(g.removeAll){g.removeAll()}else{g.remove()}g.destroy()},"items",f);f.items={}},createMenu:function(g){var f=new d.ui.Menu(g.id||b.uniqueId(),g);f.onAddItem.add(this.onAddItem.dispatch,this.onAddItem);return f}})})(tinymce);(function(e){var d=e.is,c=e.DOM,f=e.each,a=e.dom.Event,b=e.dom.Element;e.create("tinymce.ui.DropMenu:tinymce.ui.Menu",{DropMenu:function(h,g){g=g||{};g.container=g.container||c.doc.body;g.offset_x=g.offset_x||0;g.offset_y=g.offset_y||0;g.vp_offset_x=g.vp_offset_x||0;g.vp_offset_y=g.vp_offset_y||0;if(d(g.icons)&&!g.icons){g["class"]+=" mceNoIcons"}this.parent(h,g);this.onShowMenu=new e.util.Dispatcher(this);this.onHideMenu=new e.util.Dispatcher(this);this.classPrefix="mceMenu"},createMenu:function(j){var h=this,i=h.settings,g;j.container=j.container||i.container;j.parent=h;j.constrain=j.constrain||i.constrain;j["class"]=j["class"]||i["class"];j.vp_offset_x=j.vp_offset_x||i.vp_offset_x;j.vp_offset_y=j.vp_offset_y||i.vp_offset_y;j.keyboard_focus=i.keyboard_focus;g=new e.ui.DropMenu(j.id||c.uniqueId(),j);g.onAddItem.add(h.onAddItem.dispatch,h.onAddItem);return g},focus:function(){var g=this;if(g.keyboardNav){g.keyboardNav.focus()}},update:function(){var i=this,j=i.settings,g=c.get("menu_"+i.id+"_tbl"),l=c.get("menu_"+i.id+"_co"),h,k;h=j.max_width?Math.min(g.clientWidth,j.max_width):g.clientWidth;k=j.max_height?Math.min(g.clientHeight,j.max_height):g.clientHeight;if(!c.boxModel){i.element.setStyles({width:h+2,height:k+2})}else{i.element.setStyles({width:h,height:k})}if(j.max_width){c.setStyle(l,"width",h)}if(j.max_height){c.setStyle(l,"height",k);if(g.clientHeight<j.max_height){c.setStyle(l,"overflow","hidden")}}},showMenu:function(p,n,r){var z=this,A=z.settings,o,g=c.getViewPort(),u,l,v,q,i=2,k,j,m=z.classPrefix;z.collapse(1);if(z.isMenuVisible){return}if(!z.rendered){o=c.add(z.settings.container,z.renderNode());f(z.items,function(h){h.postRender()});z.element=new b("menu_"+z.id,{blocker:1,container:A.container})}else{o=c.get("menu_"+z.id)}if(!e.isOpera){c.setStyles(o,{left:-65535,top:-65535})}c.show(o);z.update();p+=A.offset_x||0;n+=A.offset_y||0;g.w-=4;g.h-=4;if(A.constrain){u=o.clientWidth-i;l=o.clientHeight-i;v=g.x+g.w;q=g.y+g.h;if((p+A.vp_offset_x+u)>v){p=r?r-u:Math.max(0,(v-A.vp_offset_x)-u)}if((n+A.vp_offset_y+l)>q){n=Math.max(0,(q-A.vp_offset_y)-l)}}c.setStyles(o,{left:p,top:n});z.element.update();z.isMenuVisible=1;z.mouseClickFunc=a.add(o,"click",function(s){var h;s=s.target;if(s&&(s=c.getParent(s,"tr"))&&!c.hasClass(s,m+"ItemSub")){h=z.items[s.id];if(h.isDisabled()){return}k=z;while(k){if(k.hideMenu){k.hideMenu()}k=k.settings.parent}if(h.settings.onclick){h.settings.onclick(s)}return a.cancel(s)}});if(z.hasMenus()){z.mouseOverFunc=a.add(o,"mouseover",function(x){var h,t,s;x=x.target;if(x&&(x=c.getParent(x,"tr"))){h=z.items[x.id];if(z.lastMenu){z.lastMenu.collapse(1)}if(h.isDisabled()){return}if(x&&c.hasClass(x,m+"ItemSub")){t=c.getRect(x);h.showMenu((t.x+t.w-i),t.y-i,t.x);z.lastMenu=h;c.addClass(c.get(h.id).firstChild,m+"ItemActive")}}})}a.add(o,"keydown",z._keyHandler,z);z.onShowMenu.dispatch(z);if(A.keyboard_focus){z._setupKeyboardNav()}},hideMenu:function(j){var g=this,i=c.get("menu_"+g.id),h;if(!g.isMenuVisible){return}if(g.keyboardNav){g.keyboardNav.destroy()}a.remove(i,"mouseover",g.mouseOverFunc);a.remove(i,"click",g.mouseClickFunc);a.remove(i,"keydown",g._keyHandler);c.hide(i);g.isMenuVisible=0;if(!j){g.collapse(1)}if(g.element){g.element.hide()}if(h=c.get(g.id)){c.removeClass(h.firstChild,g.classPrefix+"ItemActive")}g.onHideMenu.dispatch(g)},add:function(i){var g=this,h;i=g.parent(i);if(g.isRendered&&(h=c.get("menu_"+g.id))){g._add(c.select("tbody",h)[0],i)}return i},collapse:function(g){this.parent(g);this.hideMenu(1)},remove:function(g){c.remove(g.id);this.destroy();return this.parent(g)},destroy:function(){var g=this,h=c.get("menu_"+g.id);if(g.keyboardNav){g.keyboardNav.destroy()}a.remove(h,"mouseover",g.mouseOverFunc);a.remove(c.select("a",h),"focus",g.mouseOverFunc);a.remove(h,"click",g.mouseClickFunc);a.remove(h,"keydown",g._keyHandler);if(g.element){g.element.remove()}c.remove(h)},renderNode:function(){var i=this,j=i.settings,l,h,k,g;g=c.create("div",{role:"listbox",id:"menu_"+i.id,"class":j["class"],style:"position:absolute;left:0;top:0;z-index:200000;outline:0"});if(i.settings.parent){c.setAttrib(g,"aria-parent","menu_"+i.settings.parent.id)}k=c.add(g,"div",{role:"presentation",id:"menu_"+i.id+"_co","class":i.classPrefix+(j["class"]?" "+j["class"]:"")});i.element=new b("menu_"+i.id,{blocker:1,container:j.container});if(j.menu_line){c.add(k,"span",{"class":i.classPrefix+"Line"})}l=c.add(k,"table",{role:"presentation",id:"menu_"+i.id+"_tbl",border:0,cellPadding:0,cellSpacing:0});h=c.add(l,"tbody");f(i.items,function(m){i._add(h,m)});i.rendered=true;return g},_setupKeyboardNav:function(){var i,h,g=this;i=c.get("menu_"+g.id);h=c.select("a[role=option]","menu_"+g.id);h.splice(0,0,i);g.keyboardNav=new e.ui.KeyboardNavigation({root:"menu_"+g.id,items:h,onCancel:function(){g.hideMenu()},enableUpDown:true});i.focus()},_keyHandler:function(g){var h=this,i;switch(g.keyCode){case 37:if(h.settings.parent){h.hideMenu();h.settings.parent.focus();a.cancel(g)}break;case 39:if(h.mouseOverFunc){h.mouseOverFunc(g)}break}},_add:function(j,h){var i,q=h.settings,p,l,k,m=this.classPrefix,g;if(q.separator){l=c.add(j,"tr",{id:h.id,"class":m+"ItemSeparator"});c.add(l,"td",{"class":m+"ItemSeparator"});if(i=l.previousSibling){c.addClass(i,"mceLast")}return}i=l=c.add(j,"tr",{id:h.id,"class":m+"Item "+m+"ItemEnabled"});i=k=c.add(i,q.titleItem?"th":"td");i=p=c.add(i,"a",{id:h.id+"_aria",role:q.titleItem?"presentation":"option",href:"javascript:;",onclick:"return false;",onmousedown:"return false;"});if(q.parent){c.setAttrib(p,"aria-haspopup","true");c.setAttrib(p,"aria-owns","menu_"+h.id)}c.addClass(k,q["class"]);g=c.add(i,"span",{"class":"mceIcon"+(q.icon?" mce_"+q.icon:"")});if(q.icon_src){c.add(g,"img",{src:q.icon_src})}i=c.add(i,q.element||"span",{"class":"mceText",title:h.settings.title},h.settings.title);if(h.settings.style){c.setAttrib(i,"style",h.settings.style)}if(j.childNodes.length==1){c.addClass(l,"mceFirst")}if((i=l.previousSibling)&&c.hasClass(i,m+"ItemSeparator")){c.addClass(l,"mceFirst")}if(h.collapse){c.addClass(l,m+"ItemSub")}if(i=l.previousSibling){c.removeClass(i,"mceLast")}c.addClass(l,"mceLast")}})})(tinymce);(function(b){var a=b.DOM;b.create("tinymce.ui.Button:tinymce.ui.Control",{Button:function(e,d,c){this.parent(e,d,c);this.classPrefix="mceButton"},renderHTML:function(){var f=this.classPrefix,e=this.settings,d,c;c=a.encode(e.label||"");d='<a role="button" id="'+this.id+'" href="javascript:;" class="'+f+" "+f+"Enabled "+e["class"]+(c?" "+f+"Labeled":"")+'" onmousedown="return false;" onclick="return false;" aria-labelledby="'+this.id+'_voice" title="'+a.encode(e.title)+'">';if(e.image&&!(this.editor&&this.editor.forcedHighContrastMode)){d+='<img class="mceIcon" src="'+e.image+'" alt="'+a.encode(e.title)+'" />'+c}else{d+='<span class="mceIcon '+e["class"]+'"></span>'+(c?'<span class="'+f+'Label">'+c+"</span>":"")}d+='<span class="mceVoiceLabel mceIconOnly" style="display: none;" id="'+this.id+'_voice">'+e.title+"</span>";d+="</a>";return d},postRender:function(){var d=this,e=d.settings,c;if(b.isIE&&d.editor){b.dom.Event.add(d.id,"mousedown",function(f){var g=d.editor.selection.getNode().nodeName;c=g==="IMG"?d.editor.selection.getBookmark():null})}b.dom.Event.add(d.id,"click",function(f){if(!d.isDisabled()){if(b.isIE&&d.editor&&c!==null){d.editor.selection.moveToBookmark(c)}return e.onclick.call(e.scope,f)}});b.dom.Event.add(d.id,"keyup",function(f){if(!d.isDisabled()&&f.keyCode==b.VK.SPACEBAR){return e.onclick.call(e.scope,f)}})}})})(tinymce);(function(d){var c=d.DOM,b=d.dom.Event,e=d.each,a=d.util.Dispatcher;d.create("tinymce.ui.ListBox:tinymce.ui.Control",{ListBox:function(i,h,f){var g=this;g.parent(i,h,f);g.items=[];g.onChange=new a(g);g.onPostRender=new a(g);g.onAdd=new a(g);g.onRenderMenu=new d.util.Dispatcher(this);g.classPrefix="mceListBox"},select:function(h){var g=this,j,i;if(h==undefined){return g.selectByIndex(-1)}if(h&&typeof(h)=="function"){i=h}else{i=function(f){return f==h}}if(h!=g.selectedValue){e(g.items,function(k,f){if(i(k.value)){j=1;g.selectByIndex(f);return false}});if(!j){g.selectByIndex(-1)}}},selectByIndex:function(f){var h=this,i,j,g;if(f!=h.selectedIndex){i=c.get(h.id+"_text");g=c.get(h.id+"_voiceDesc");j=h.items[f];if(j){h.selectedValue=j.value;h.selectedIndex=f;c.setHTML(i,c.encode(j.title));c.setHTML(g,h.settings.title+" - "+j.title);c.removeClass(i,"mceTitle");c.setAttrib(h.id,"aria-valuenow",j.title)}else{c.setHTML(i,c.encode(h.settings.title));c.setHTML(g,c.encode(h.settings.title));c.addClass(i,"mceTitle");h.selectedValue=h.selectedIndex=null;c.setAttrib(h.id,"aria-valuenow",h.settings.title)}i=0}},add:function(i,f,h){var g=this;h=h||{};h=d.extend(h,{title:i,value:f});g.items.push(h);g.onAdd.dispatch(g,h)},getLength:function(){return this.items.length},renderHTML:function(){var i="",f=this,g=f.settings,j=f.classPrefix;i='<span role="listbox" aria-haspopup="true" aria-labelledby="'+f.id+'_voiceDesc" aria-describedby="'+f.id+'_voiceDesc"><table role="presentation" tabindex="0" id="'+f.id+'" cellpadding="0" cellspacing="0" class="'+j+" "+j+"Enabled"+(g["class"]?(" "+g["class"]):"")+'"><tbody><tr>';i+="<td>"+c.createHTML("span",{id:f.id+"_voiceDesc","class":"voiceLabel",style:"display:none;"},f.settings.title);i+=c.createHTML("a",{id:f.id+"_text",tabindex:-1,href:"javascript:;","class":"mceText",onclick:"return false;",onmousedown:"return false;"},c.encode(f.settings.title))+"</td>";i+="<td>"+c.createHTML("a",{id:f.id+"_open",tabindex:-1,href:"javascript:;","class":"mceOpen",onclick:"return false;",onmousedown:"return false;"},'<span><span style="display:none;" class="mceIconOnly" aria-hidden="true">\u25BC</span></span>')+"</td>";i+="</tr></tbody></table></span>";return i},showMenu:function(){var g=this,i,h=c.get(this.id),f;if(g.isDisabled()||g.items.length==0){return}if(g.menu&&g.menu.isMenuVisible){return g.hideMenu()}if(!g.isMenuRendered){g.renderMenu();g.isMenuRendered=true}i=c.getPos(h);f=g.menu;f.settings.offset_x=i.x;f.settings.offset_y=i.y;f.settings.keyboard_focus=!d.isOpera;if(g.oldID){f.items[g.oldID].setSelected(0)}e(g.items,function(j){if(j.value===g.selectedValue){f.items[j.id].setSelected(1);g.oldID=j.id}});f.showMenu(0,h.clientHeight);b.add(c.doc,"mousedown",g.hideMenu,g);c.addClass(g.id,g.classPrefix+"Selected")},hideMenu:function(g){var f=this;if(f.menu&&f.menu.isMenuVisible){c.removeClass(f.id,f.classPrefix+"Selected");if(g&&g.type=="mousedown"&&(g.target.id==f.id+"_text"||g.target.id==f.id+"_open")){return}if(!g||!c.getParent(g.target,".mceMenu")){c.removeClass(f.id,f.classPrefix+"Selected");b.remove(c.doc,"mousedown",f.hideMenu,f);f.menu.hideMenu()}}},renderMenu:function(){var g=this,f;f=g.settings.control_manager.createDropMenu(g.id+"_menu",{menu_line:1,"class":g.classPrefix+"Menu mceNoIcons",max_width:150,max_height:150});f.onHideMenu.add(function(){g.hideMenu();g.focus()});f.add({title:g.settings.title,"class":"mceMenuItemTitle",onclick:function(){if(g.settings.onselect("")!==false){g.select("")}}});e(g.items,function(h){if(h.value===undefined){f.add({title:h.title,role:"option","class":"mceMenuItemTitle",onclick:function(){if(g.settings.onselect("")!==false){g.select("")}}})}else{h.id=c.uniqueId();h.role="option";h.onclick=function(){if(g.settings.onselect(h.value)!==false){g.select(h.value)}};f.add(h)}});g.onRenderMenu.dispatch(g,f);g.menu=f},postRender:function(){var f=this,g=f.classPrefix;b.add(f.id,"click",f.showMenu,f);b.add(f.id,"keydown",function(h){if(h.keyCode==32){f.showMenu(h);b.cancel(h)}});b.add(f.id,"focus",function(){if(!f._focused){f.keyDownHandler=b.add(f.id,"keydown",function(h){if(h.keyCode==40){f.showMenu();b.cancel(h)}});f.keyPressHandler=b.add(f.id,"keypress",function(i){var h;if(i.keyCode==13){h=f.selectedValue;f.selectedValue=null;b.cancel(i);f.settings.onselect(h)}})}f._focused=1});b.add(f.id,"blur",function(){b.remove(f.id,"keydown",f.keyDownHandler);b.remove(f.id,"keypress",f.keyPressHandler);f._focused=0});if(d.isIE6||!c.boxModel){b.add(f.id,"mouseover",function(){if(!c.hasClass(f.id,g+"Disabled")){c.addClass(f.id,g+"Hover")}});b.add(f.id,"mouseout",function(){if(!c.hasClass(f.id,g+"Disabled")){c.removeClass(f.id,g+"Hover")}})}f.onPostRender.dispatch(f,c.get(f.id))},destroy:function(){this.parent();b.clear(this.id+"_text");b.clear(this.id+"_open")}})})(tinymce);(function(d){var c=d.DOM,b=d.dom.Event,e=d.each,a=d.util.Dispatcher;d.create("tinymce.ui.NativeListBox:tinymce.ui.ListBox",{NativeListBox:function(g,f){this.parent(g,f);this.classPrefix="mceNativeListBox"},setDisabled:function(f){c.get(this.id).disabled=f;this.setAriaProperty("disabled",f)},isDisabled:function(){return c.get(this.id).disabled},select:function(h){var g=this,j,i;if(h==undefined){return g.selectByIndex(-1)}if(h&&typeof(h)=="function"){i=h}else{i=function(f){return f==h}}if(h!=g.selectedValue){e(g.items,function(k,f){if(i(k.value)){j=1;g.selectByIndex(f);return false}});if(!j){g.selectByIndex(-1)}}},selectByIndex:function(f){c.get(this.id).selectedIndex=f+1;this.selectedValue=this.items[f]?this.items[f].value:null},add:function(j,g,f){var i,h=this;f=f||{};f.value=g;if(h.isRendered()){c.add(c.get(this.id),"option",f,j)}i={title:j,value:g,attribs:f};h.items.push(i);h.onAdd.dispatch(h,i)},getLength:function(){return this.items.length},renderHTML:function(){var g,f=this;g=c.createHTML("option",{value:""},"-- "+f.settings.title+" --");e(f.items,function(h){g+=c.createHTML("option",{value:h.value},h.title)});g=c.createHTML("select",{id:f.id,"class":"mceNativeListBox","aria-labelledby":f.id+"_aria"},g);g+=c.createHTML("span",{id:f.id+"_aria",style:"display: none"},f.settings.title);return g},postRender:function(){var g=this,h,i=true;g.rendered=true;function f(k){var j=g.items[k.target.selectedIndex-1];if(j&&(j=j.value)){g.onChange.dispatch(g,j);if(g.settings.onselect){g.settings.onselect(j)}}}b.add(g.id,"change",f);b.add(g.id,"keydown",function(k){var j;b.remove(g.id,"change",h);i=false;j=b.add(g.id,"blur",function(){if(i){return}i=true;b.add(g.id,"change",f);b.remove(g.id,"blur",j)});if(d.isWebKit&&(k.keyCode==37||k.keyCode==39)){return b.prevent(k)}if(k.keyCode==13||k.keyCode==32){f(k);return b.cancel(k)}});g.onPostRender.dispatch(g,c.get(g.id))}})})(tinymce);(function(c){var b=c.DOM,a=c.dom.Event,d=c.each;c.create("tinymce.ui.MenuButton:tinymce.ui.Button",{MenuButton:function(g,f,e){this.parent(g,f,e);this.onRenderMenu=new c.util.Dispatcher(this);f.menu_container=f.menu_container||b.doc.body},showMenu:function(){var g=this,j,i,h=b.get(g.id),f;if(g.isDisabled()){return}if(!g.isMenuRendered){g.renderMenu();g.isMenuRendered=true}if(g.isMenuVisible){return g.hideMenu()}j=b.getPos(g.settings.menu_container);i=b.getPos(h);f=g.menu;f.settings.offset_x=i.x;f.settings.offset_y=i.y;f.settings.vp_offset_x=i.x;f.settings.vp_offset_y=i.y;f.settings.keyboard_focus=g._focused;f.showMenu(0,h.clientHeight);a.add(b.doc,"mousedown",g.hideMenu,g);g.setState("Selected",1);g.isMenuVisible=1},renderMenu:function(){var f=this,e;e=f.settings.control_manager.createDropMenu(f.id+"_menu",{menu_line:1,"class":this.classPrefix+"Menu",icons:f.settings.icons});e.onHideMenu.add(function(){f.hideMenu();f.focus()});f.onRenderMenu.dispatch(f,e);f.menu=e},hideMenu:function(g){var f=this;if(g&&g.type=="mousedown"&&b.getParent(g.target,function(h){return h.id===f.id||h.id===f.id+"_open"})){return}if(!g||!b.getParent(g.target,".mceMenu")){f.setState("Selected",0);a.remove(b.doc,"mousedown",f.hideMenu,f);if(f.menu){f.menu.hideMenu()}}f.isMenuVisible=0},postRender:function(){var e=this,f=e.settings;a.add(e.id,"click",function(){if(!e.isDisabled()){if(f.onclick){f.onclick(e.value)}e.showMenu()}})}})})(tinymce);(function(c){var b=c.DOM,a=c.dom.Event,d=c.each;c.create("tinymce.ui.SplitButton:tinymce.ui.MenuButton",{SplitButton:function(g,f,e){this.parent(g,f,e);this.classPrefix="mceSplitButton"},renderHTML:function(){var i,f=this,g=f.settings,e;i="<tbody><tr>";if(g.image){e=b.createHTML("img ",{src:g.image,role:"presentation","class":"mceAction "+g["class"]})}else{e=b.createHTML("span",{"class":"mceAction "+g["class"]},"")}e+=b.createHTML("span",{"class":"mceVoiceLabel mceIconOnly",id:f.id+"_voice",style:"display:none;"},g.title);i+="<td >"+b.createHTML("a",{role:"button",id:f.id+"_action",tabindex:"-1",href:"javascript:;","class":"mceAction "+g["class"],onclick:"return false;",onmousedown:"return false;",title:g.title},e)+"</td>";e=b.createHTML("span",{"class":"mceOpen "+g["class"]},'<span style="display:none;" class="mceIconOnly" aria-hidden="true">\u25BC</span>');i+="<td >"+b.createHTML("a",{role:"button",id:f.id+"_open",tabindex:"-1",href:"javascript:;","class":"mceOpen "+g["class"],onclick:"return false;",onmousedown:"return false;",title:g.title},e)+"</td>";i+="</tr></tbody>";i=b.createHTML("table",{role:"presentation","class":"mceSplitButton mceSplitButtonEnabled "+g["class"],cellpadding:"0",cellspacing:"0",title:g.title},i);return b.createHTML("div",{id:f.id,role:"button",tabindex:"0","aria-labelledby":f.id+"_voice","aria-haspopup":"true"},i)},postRender:function(){var e=this,g=e.settings,f;if(g.onclick){f=function(h){if(!e.isDisabled()){g.onclick(e.value);a.cancel(h)}};a.add(e.id+"_action","click",f);a.add(e.id,["click","keydown"],function(h){var k=32,m=14,i=13,j=38,l=40;if((h.keyCode===32||h.keyCode===13||h.keyCode===14)&&!h.altKey&&!h.ctrlKey&&!h.metaKey){f();a.cancel(h)}else{if(h.type==="click"||h.keyCode===l){e.showMenu();a.cancel(h)}}})}a.add(e.id+"_open","click",function(h){e.showMenu();a.cancel(h)});a.add([e.id,e.id+"_open"],"focus",function(){e._focused=1});a.add([e.id,e.id+"_open"],"blur",function(){e._focused=0});if(c.isIE6||!b.boxModel){a.add(e.id,"mouseover",function(){if(!b.hasClass(e.id,"mceSplitButtonDisabled")){b.addClass(e.id,"mceSplitButtonHover")}});a.add(e.id,"mouseout",function(){if(!b.hasClass(e.id,"mceSplitButtonDisabled")){b.removeClass(e.id,"mceSplitButtonHover")}})}},destroy:function(){this.parent();a.clear(this.id+"_action");a.clear(this.id+"_open");a.clear(this.id)}})})(tinymce);(function(d){var c=d.DOM,a=d.dom.Event,b=d.is,e=d.each;d.create("tinymce.ui.ColorSplitButton:tinymce.ui.SplitButton",{ColorSplitButton:function(i,h,f){var g=this;g.parent(i,h,f);g.settings=h=d.extend({colors:"000000,993300,333300,003300,003366,000080,333399,333333,800000,FF6600,808000,008000,008080,0000FF,666699,808080,FF0000,FF9900,99CC00,339966,33CCCC,3366FF,800080,999999,FF00FF,FFCC00,FFFF00,00FF00,00FFFF,00CCFF,993366,C0C0C0,FF99CC,FFCC99,FFFF99,CCFFCC,CCFFFF,99CCFF,CC99FF,FFFFFF",grid_width:8,default_color:"#888888"},g.settings);g.onShowMenu=new d.util.Dispatcher(g);g.onHideMenu=new d.util.Dispatcher(g);g.value=h.default_color},showMenu:function(){var f=this,g,j,i,h;if(f.isDisabled()){return}if(!f.isMenuRendered){f.renderMenu();f.isMenuRendered=true}if(f.isMenuVisible){return f.hideMenu()}i=c.get(f.id);c.show(f.id+"_menu");c.addClass(i,"mceSplitButtonSelected");h=c.getPos(i);c.setStyles(f.id+"_menu",{left:h.x,top:h.y+i.clientHeight,zIndex:200000});i=0;a.add(c.doc,"mousedown",f.hideMenu,f);f.onShowMenu.dispatch(f);if(f._focused){f._keyHandler=a.add(f.id+"_menu","keydown",function(k){if(k.keyCode==27){f.hideMenu()}});c.select("a",f.id+"_menu")[0].focus()}f.isMenuVisible=1},hideMenu:function(g){var f=this;if(f.isMenuVisible){if(g&&g.type=="mousedown"&&c.getParent(g.target,function(h){return h.id===f.id+"_open"})){return}if(!g||!c.getParent(g.target,".mceSplitButtonMenu")){c.removeClass(f.id,"mceSplitButtonSelected");a.remove(c.doc,"mousedown",f.hideMenu,f);a.remove(f.id+"_menu","keydown",f._keyHandler);c.hide(f.id+"_menu")}f.isMenuVisible=0;f.onHideMenu.dispatch()}},renderMenu:function(){var p=this,h,k=0,q=p.settings,g,j,l,o,f;o=c.add(q.menu_container,"div",{role:"listbox",id:p.id+"_menu","class":q.menu_class+" "+q["class"],style:"position:absolute;left:0;top:-1000px;"});h=c.add(o,"div",{"class":q["class"]+" mceSplitButtonMenu"});c.add(h,"span",{"class":"mceMenuLine"});g=c.add(h,"table",{role:"presentation","class":"mceColorSplitMenu"});j=c.add(g,"tbody");k=0;e(b(q.colors,"array")?q.colors:q.colors.split(","),function(m){m=m.replace(/^#/,"");if(!k--){l=c.add(j,"tr");k=q.grid_width-1}g=c.add(l,"td");var i={href:"javascript:;",style:{backgroundColor:"#"+m},title:p.editor.getLang("colors."+m,m),"data-mce-color":"#"+m};if(!d.isIE){i.role="option"}g=c.add(g,"a",i);if(p.editor.forcedHighContrastMode){g=c.add(g,"canvas",{width:16,height:16,"aria-hidden":"true"});if(g.getContext&&(f=g.getContext("2d"))){f.fillStyle="#"+m;f.fillRect(0,0,16,16)}else{c.remove(g)}}});if(q.more_colors_func){g=c.add(j,"tr");g=c.add(g,"td",{colspan:q.grid_width,"class":"mceMoreColors"});g=c.add(g,"a",{role:"option",id:p.id+"_more",href:"javascript:;",onclick:"return false;","class":"mceMoreColors"},q.more_colors_title);a.add(g,"click",function(i){q.more_colors_func.call(q.more_colors_scope||this);return a.cancel(i)})}c.addClass(h,"mceColorSplitMenu");new d.ui.KeyboardNavigation({root:p.id+"_menu",items:c.select("a",p.id+"_menu"),onCancel:function(){p.hideMenu();p.focus()}});a.add(p.id+"_menu","mousedown",function(i){return a.cancel(i)});a.add(p.id+"_menu","click",function(i){var m;i=c.getParent(i.target,"a",j);if(i&&i.nodeName.toLowerCase()=="a"&&(m=i.getAttribute("data-mce-color"))){p.setColor(m)}return a.cancel(i)});return o},setColor:function(f){this.displayColor(f);this.hideMenu();this.settings.onselect(f)},displayColor:function(g){var f=this;c.setStyle(f.id+"_preview","backgroundColor",g);f.value=g},postRender:function(){var f=this,g=f.id;f.parent();c.add(g+"_action","div",{id:g+"_preview","class":"mceColorPreview"});c.setStyle(f.id+"_preview","backgroundColor",f.value)},destroy:function(){this.parent();a.clear(this.id+"_menu");a.clear(this.id+"_more");c.remove(this.id+"_menu")}})})(tinymce);(function(b){var d=b.DOM,c=b.each,a=b.dom.Event;b.create("tinymce.ui.ToolbarGroup:tinymce.ui.Container",{renderHTML:function(){var f=this,i=[],e=f.controls,j=b.each,g=f.settings;i.push('<div id="'+f.id+'" role="group" aria-labelledby="'+f.id+'_voice">');i.push("<span role='application'>");i.push('<span id="'+f.id+'_voice" class="mceVoiceLabel" style="display:none;">'+d.encode(g.name)+"</span>");j(e,function(h){i.push(h.renderHTML())});i.push("</span>");i.push("</div>");return i.join("")},focus:function(){var e=this;d.get(e.id).focus()},postRender:function(){var f=this,e=[];c(f.controls,function(g){c(g.controls,function(h){if(h.id){e.push(h)}})});f.keyNav=new b.ui.KeyboardNavigation({root:f.id,items:e,onCancel:function(){if(b.isWebKit){d.get(f.editor.id+"_ifr").focus()}f.editor.focus()},excludeFromTabOrder:!f.settings.tab_focus_toolbar})},destroy:function(){var e=this;e.parent();e.keyNav.destroy();a.clear(e.id)}})})(tinymce);(function(a){var c=a.DOM,b=a.each;a.create("tinymce.ui.Toolbar:tinymce.ui.Container",{renderHTML:function(){var m=this,f="",j,k,n=m.settings,e,d,g,l;l=m.controls;for(e=0;e<l.length;e++){k=l[e];d=l[e-1];g=l[e+1];if(e===0){j="mceToolbarStart";if(k.Button){j+=" mceToolbarStartButton"}else{if(k.SplitButton){j+=" mceToolbarStartSplitButton"}else{if(k.ListBox){j+=" mceToolbarStartListBox"}}}f+=c.createHTML("td",{"class":j},c.createHTML("span",null,"<!-- IE -->"))}if(d&&k.ListBox){if(d.Button||d.SplitButton){f+=c.createHTML("td",{"class":"mceToolbarEnd"},c.createHTML("span",null,"<!-- IE -->"))}}if(c.stdMode){f+='<td style="position: relative">'+k.renderHTML()+"</td>"}else{f+="<td>"+k.renderHTML()+"</td>"}if(g&&k.ListBox){if(g.Button||g.SplitButton){f+=c.createHTML("td",{"class":"mceToolbarStart"},c.createHTML("span",null,"<!-- IE -->"))}}}j="mceToolbarEnd";if(k.Button){j+=" mceToolbarEndButton"}else{if(k.SplitButton){j+=" mceToolbarEndSplitButton"}else{if(k.ListBox){j+=" mceToolbarEndListBox"}}}f+=c.createHTML("td",{"class":j},c.createHTML("span",null,"<!-- IE -->"));return c.createHTML("table",{id:m.id,"class":"mceToolbar"+(n["class"]?" "+n["class"]:""),cellpadding:"0",cellspacing:"0",align:m.settings.align||"",role:"presentation",tabindex:"-1"},"<tbody><tr>"+f+"</tr></tbody>")}})})(tinymce);(function(b){var a=b.util.Dispatcher,c=b.each;b.create("tinymce.AddOnManager",{AddOnManager:function(){var d=this;d.items=[];d.urls={};d.lookup={};d.onAdd=new a(d)},get:function(d){if(this.lookup[d]){return this.lookup[d].instance}else{return undefined}},dependencies:function(e){var d;if(this.lookup[e]){d=this.lookup[e].dependencies}return d||[]},requireLangPack:function(e){var d=b.settings;if(d&&d.language&&d.language_load!==false){b.ScriptLoader.add(this.urls[e]+"/langs/"+d.language+".js")}},add:function(f,e,d){this.items.push(e);this.lookup[f]={instance:e,dependencies:d};this.onAdd.dispatch(this,f,e);return e},createUrl:function(d,e){if(typeof e==="object"){return e}else{return{prefix:d.prefix,resource:e,suffix:d.suffix}}},addComponents:function(f,d){var e=this.urls[f];b.each(d,function(g){b.ScriptLoader.add(e+"/"+g)})},load:function(j,f,d,h){var g=this,e=f;function i(){var k=g.dependencies(j);b.each(k,function(m){var l=g.createUrl(f,m);g.load(l.resource,l,undefined,undefined)});if(d){if(h){d.call(h)}else{d.call(b.ScriptLoader)}}}if(g.urls[j]){return}if(typeof f==="object"){e=f.prefix+f.resource+f.suffix}if(e.indexOf("/")!=0&&e.indexOf("://")==-1){e=b.baseURL+"/"+e}g.urls[j]=e.substring(0,e.lastIndexOf("/"));if(g.lookup[j]){i()}else{b.ScriptLoader.add(e,i,h)}}});b.PluginManager=new b.AddOnManager();b.ThemeManager=new b.AddOnManager()}(tinymce));(function(j){var g=j.each,d=j.extend,k=j.DOM,i=j.dom.Event,f=j.ThemeManager,b=j.PluginManager,e=j.explode,h=j.util.Dispatcher,a,c=0;j.documentBaseURL=window.location.href.replace(/[\?#].*$/,"").replace(/[\/\\][^\/]+$/,"");if(!/[\/\\]$/.test(j.documentBaseURL)){j.documentBaseURL+="/"}j.baseURL=new j.util.URI(j.documentBaseURL).toAbsolute(j.baseURL);j.baseURI=new j.util.URI(j.baseURL);j.onBeforeUnload=new h(j);i.add(window,"beforeunload",function(l){j.onBeforeUnload.dispatch(j,l)});j.onAddEditor=new h(j);j.onRemoveEditor=new h(j);j.EditorManager=d(j,{editors:[],i18n:{},activeEditor:null,init:function(q){var n=this,p,l=j.ScriptLoader,u,o=[],m;function r(x,y,t){var v=x[y];if(!v){return}if(j.is(v,"string")){t=v.replace(/\.\w+$/,"");t=t?j.resolve(t):0;v=j.resolve(v)}return v.apply(t||this,Array.prototype.slice.call(arguments,2))}q=d({theme:"simple",language:"en"},q);n.settings=q;i.add(document,"init",function(){var s,v;r(q,"onpageload");switch(q.mode){case"exact":s=q.elements||"";if(s.length>0){g(e(s),function(x){if(k.get(x)){m=new j.Editor(x,q);o.push(m);m.render(1)}else{g(document.forms,function(y){g(y.elements,function(z){if(z.name===x){x="mce_editor_"+c++;k.setAttrib(z,"id",x);m=new j.Editor(x,q);o.push(m);m.render(1)}})})}})}break;case"textareas":case"specific_textareas":function t(y,x){return x.constructor===RegExp?x.test(y.className):k.hasClass(y,x)}g(k.select("textarea"),function(x){if(q.editor_deselector&&t(x,q.editor_deselector)){return}if(!q.editor_selector||t(x,q.editor_selector)){u=k.get(x.name);if(!x.id&&!u){x.id=x.name}if(!x.id||n.get(x.id)){x.id=k.uniqueId()}m=new j.Editor(x.id,q);o.push(m);m.render(1)}});break}if(q.oninit){s=v=0;g(o,function(x){v++;if(!x.initialized){x.onInit.add(function(){s++;if(s==v){r(q,"oninit")}})}else{s++}if(s==v){r(q,"oninit")}})}})},get:function(l){if(l===a){return this.editors}return this.editors[l]},getInstanceById:function(l){return this.get(l)},add:function(m){var l=this,n=l.editors;n[m.id]=m;n.push(m);l._setActive(m);l.onAddEditor.dispatch(l,m);return m},remove:function(n){var m=this,l,o=m.editors;if(!o[n.id]){return null}delete o[n.id];for(l=0;l<o.length;l++){if(o[l]==n){o.splice(l,1);break}}if(m.activeEditor==n){m._setActive(o[0])}n.destroy();m.onRemoveEditor.dispatch(m,n);return n},execCommand:function(r,p,o){var q=this,n=q.get(o),l;switch(r){case"mceFocus":n.focus();return true;case"mceAddEditor":case"mceAddControl":if(!q.get(o)){new j.Editor(o,q.settings).render()}return true;case"mceAddFrameControl":l=o.window;l.tinyMCE=tinyMCE;l.tinymce=j;j.DOM.doc=l.document;j.DOM.win=l;n=new j.Editor(o.element_id,o);n.render();if(j.isIE){function m(){n.destroy();l.detachEvent("onunload",m);l=l.tinyMCE=l.tinymce=null}l.attachEvent("onunload",m)}o.page_window=null;return true;case"mceRemoveEditor":case"mceRemoveControl":if(n){n.remove()}return true;case"mceToggleEditor":if(!n){q.execCommand("mceAddControl",0,o);return true}if(n.isHidden()){n.show()}else{n.hide()}return true}if(q.activeEditor){return q.activeEditor.execCommand(r,p,o)}return false},execInstanceCommand:function(p,o,n,m){var l=this.get(p);if(l){return l.execCommand(o,n,m)}return false},triggerSave:function(){g(this.editors,function(l){l.save()})},addI18n:function(n,q){var l,m=this.i18n;if(!j.is(n,"string")){g(n,function(r,p){g(r,function(t,s){g(t,function(v,u){if(s==="common"){m[p+"."+u]=v}else{m[p+"."+s+"."+u]=v}})})})}else{g(q,function(r,p){m[n+"."+p]=r})}},_setActive:function(l){this.selectedInstance=this.activeEditor=l}})})(tinymce);(function(n){var o=n.DOM,k=n.dom.Event,f=n.extend,l=n.util.Dispatcher,i=n.each,a=n.isGecko,b=n.isIE,e=n.isWebKit,d=n.is,h=n.ThemeManager,c=n.PluginManager,p=n.inArray,m=n.grep,g=n.explode,j=n.VK;n.create("tinymce.Editor",{Editor:function(u,r){var q=this;q.id=q.editorId=u;q.execCommands={};q.queryStateCommands={};q.queryValueCommands={};q.isNotDirty=false;q.plugins={};i(["onPreInit","onBeforeRenderUI","onPostRender","onLoad","onInit","onRemove","onActivate","onDeactivate","onClick","onEvent","onMouseUp","onMouseDown","onDblClick","onKeyDown","onKeyUp","onKeyPress","onContextMenu","onSubmit","onReset","onPaste","onPreProcess","onPostProcess","onBeforeSetContent","onBeforeGetContent","onSetContent","onGetContent","onLoadContent","onSaveContent","onNodeChange","onChange","onBeforeExecCommand","onExecCommand","onUndo","onRedo","onVisualAid","onSetProgressState","onSetAttrib"],function(s){q[s]=new l(q)});q.settings=r=f({id:u,language:"en",docs_language:"en",theme:"simple",skin:"default",delta_width:0,delta_height:0,popup_css:"",plugins:"",document_base_url:n.documentBaseURL,add_form_submit_trigger:1,submit_patch:1,add_unload_trigger:1,convert_urls:1,relative_urls:1,remove_script_host:1,table_inline_editing:0,object_resizing:1,cleanup:1,accessibility_focus:1,custom_shortcuts:1,custom_undo_redo_keyboard_shortcuts:1,custom_undo_redo_restore_selection:1,custom_undo_redo:1,doctype:n.isIE6?'<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">':"<!DOCTYPE>",visual_table_class:"mceItemTable",visual:1,font_size_style_values:"xx-small,x-small,small,medium,large,x-large,xx-large",font_size_legacy_values:"xx-small,small,medium,large,x-large,xx-large,300%",apply_source_formatting:1,directionality:"ltr",forced_root_block:"p",hidden_input:1,padd_empty_editor:1,render_ui:1,init_theme:1,force_p_newlines:1,indentation:"30px",keep_styles:1,fix_table_elements:1,inline_styles:1,convert_fonts_to_spans:true,indent:"simple",indent_before:"p,h1,h2,h3,h4,h5,h6,blockquote,div,title,style,pre,script,td,ul,li,area,table,thead,tfoot,tbody,tr",indent_after:"p,h1,h2,h3,h4,h5,h6,blockquote,div,title,style,pre,script,td,ul,li,area,table,thead,tfoot,tbody,tr",validate:true,entity_encoding:"named",url_converter:q.convertURL,url_converter_scope:q,ie7_compat:true},r);q.documentBaseURI=new n.util.URI(r.document_base_url||n.documentBaseURL,{base_uri:tinyMCE.baseURI});q.baseURI=n.baseURI;q.contentCSS=[];q.execCallback("setup",q)},render:function(u){var v=this,x=v.settings,y=v.id,q=n.ScriptLoader;if(!k.domLoaded){k.add(document,"init",function(){v.render()});return}tinyMCE.settings=x;if(!v.getElement()){return}if(n.isIDevice&&!n.isIOS5){return}if(!/TEXTAREA|INPUT/i.test(v.getElement().nodeName)&&x.hidden_input&&o.getParent(y,"form")){o.insertAfter(o.create("input",{type:"hidden",name:y}),y)}if(n.WindowManager){v.windowManager=new n.WindowManager(v)}if(x.encoding=="xml"){v.onGetContent.add(function(s,t){if(t.save){t.content=o.encode(t.content)}})}if(x.add_form_submit_trigger){v.onSubmit.addToTop(function(){if(v.initialized){v.save();v.isNotDirty=1}})}if(x.add_unload_trigger){v._beforeUnload=tinyMCE.onBeforeUnload.add(function(){if(v.initialized&&!v.destroyed&&!v.isHidden()){v.save({format:"raw",no_events:true})}})}n.addUnload(v.destroy,v);if(x.submit_patch){v.onBeforeRenderUI.add(function(){var s=v.getElement().form;if(!s){return}if(s._mceOldSubmit){return}if(!s.submit.nodeType&&!s.submit.length){v.formElement=s;s._mceOldSubmit=s.submit;s.submit=function(){n.triggerSave();v.isNotDirty=1;return v.formElement._mceOldSubmit(v.formElement)}}s=null})}function r(){if(x.language&&x.language_load!==false){q.add(n.baseURL+"/langs/"+x.language+".js")}if(x.theme&&x.theme.charAt(0)!="-"&&!h.urls[x.theme]){h.load(x.theme,"themes/"+x.theme+"/editor_template"+n.suffix+".js")}i(g(x.plugins),function(t){if(t&&!c.urls[t]){if(t.charAt(0)=="-"){t=t.substr(1,t.length);var s=c.dependencies(t);i(s,function(A){var z={prefix:"plugins/",resource:A,suffix:"/editor_plugin"+n.suffix+".js"};var A=c.createUrl(z,A);c.load(A.resource,A)})}else{if(t=="safari"){return}c.load(t,{prefix:"plugins/",resource:t,suffix:"/editor_plugin"+n.suffix+".js"})}}});q.loadQueue(function(){if(!v.removed){v.init()}})}r()},init:function(){var v,I=this,J=I.settings,F,B,E=I.getElement(),r,q,G,z,D,H,A,x=[];n.add(I);J.aria_label=J.aria_label||o.getAttrib(E,"aria-label",I.getLang("aria.rich_text_area"));if(J.theme){J.theme=J.theme.replace(/-/,"");r=h.get(J.theme);I.theme=new r();if(I.theme.init&&J.init_theme){I.theme.init(I,h.urls[J.theme]||n.documentBaseURL.replace(/\/$/,""))}}function C(K){var L=c.get(K),t=c.urls[K]||n.documentBaseURL.replace(/\/$/,""),s;if(L&&n.inArray(x,K)===-1){i(c.dependencies(K),function(u){C(u)});s=new L(I,t);I.plugins[K]=s;if(s.init){s.init(I,t);x.push(K)}}}i(g(J.plugins.replace(/\-/g,"")),C);if(J.popup_css!==false){if(J.popup_css){J.popup_css=I.documentBaseURI.toAbsolute(J.popup_css)}else{J.popup_css=I.baseURI.toAbsolute("themes/"+J.theme+"/skins/"+J.skin+"/dialog.css")}}if(J.popup_css_add){J.popup_css+=","+I.documentBaseURI.toAbsolute(J.popup_css_add)}I.controlManager=new n.ControlManager(I);if(J.custom_undo_redo){I.onBeforeExecCommand.add(function(t,K,u,L,s){if(K!="Undo"&&K!="Redo"&&K!="mceRepaint"&&(!s||!s.skip_undo)){I.undoManager.beforeChange()}});I.onExecCommand.add(function(t,K,u,L,s){if(K!="Undo"&&K!="Redo"&&K!="mceRepaint"&&(!s||!s.skip_undo)){I.undoManager.add()}})}I.onExecCommand.add(function(s,t){if(!/^(FontName|FontSize)$/.test(t)){I.nodeChanged()}});if(a){function y(s,t){if(!t||!t.initial){I.execCommand("mceRepaint")}}I.onUndo.add(y);I.onRedo.add(y);I.onSetContent.add(y)}I.onBeforeRenderUI.dispatch(I,I.controlManager);if(J.render_ui){F=J.width||E.style.width||E.offsetWidth;B=J.height||E.style.height||E.offsetHeight;I.orgDisplay=E.style.display;H=/^[0-9\.]+(|px)$/i;if(H.test(""+F)){F=Math.max(parseInt(F)+(r.deltaWidth||0),100)}if(H.test(""+B)){B=Math.max(parseInt(B)+(r.deltaHeight||0),100)}r=I.theme.renderUI({targetNode:E,width:F,height:B,deltaWidth:J.delta_width,deltaHeight:J.delta_height});I.editorContainer=r.editorContainer}if(document.domain&&location.hostname!=document.domain){n.relaxedDomain=document.domain}o.setStyles(r.sizeContainer||r.editorContainer,{width:F,height:B});if(J.content_css){n.each(g(J.content_css),function(s){I.contentCSS.push(I.documentBaseURI.toAbsolute(s))})}B=(r.iframeHeight||B)+(typeof(B)=="number"?(r.deltaHeight||0):"");if(B<100){B=100}I.iframeHTML=J.doctype+'<html><head xmlns="http://www.w3.org/1999/xhtml">';if(J.document_base_url!=n.documentBaseURL){I.iframeHTML+='<base href="'+I.documentBaseURI.getURI()+'" />'}if(J.ie7_compat){I.iframeHTML+='<meta http-equiv="X-UA-Compatible" content="IE=7" />'}else{I.iframeHTML+='<meta http-equiv="X-UA-Compatible" content="IE=edge" />'}I.iframeHTML+='<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />';for(A=0;A<I.contentCSS.length;A++){I.iframeHTML+='<link type="text/css" rel="stylesheet" href="'+I.contentCSS[A]+'" />'}I.contentCSS=[];z=J.body_id||"tinymce";if(z.indexOf("=")!=-1){z=I.getParam("body_id","","hash");z=z[I.id]||z}D=J.body_class||"";if(D.indexOf("=")!=-1){D=I.getParam("body_class","","hash");D=D[I.id]||""}I.iframeHTML+='</head><body id="'+z+'" class="mceContentBody '+D+'" onload="window.parent.tinyMCE.get(\''+I.id+"').onLoad.dispatch();\"><br></body></html>";if(n.relaxedDomain&&(b||(n.isOpera&&parseFloat(opera.version())<11))){G='javascript:(function(){document.open();document.domain="'+document.domain+'";var ed = window.parent.tinyMCE.get("'+I.id+'");document.write(ed.iframeHTML);document.close();ed.setupIframe();})()'}v=o.add(r.iframeContainer,"iframe",{id:I.id+"_ifr",src:G||'javascript:""',frameBorder:"0",allowTransparency:"true",title:J.aria_label,style:{width:"100%",height:B,display:"block"}});I.contentAreaContainer=r.iframeContainer;o.get(r.editorContainer).style.display=I.orgDisplay;o.get(I.id).style.display="none";o.setAttrib(I.id,"aria-hidden",true);if(!n.relaxedDomain||!G){I.setupIframe()}E=v=r=null},setupIframe:function(){var r=this,x=r.settings,y=o.get(r.id),z=r.getDoc(),v,q;if(!b||!n.relaxedDomain){z.open();z.write(r.iframeHTML);z.close();if(n.relaxedDomain){z.domain=n.relaxedDomain}}q=r.getBody();q.disabled=true;if(!x.readonly){q.contentEditable=true}q.disabled=false;r.schema=new n.html.Schema(x);r.dom=new n.dom.DOMUtils(r.getDoc(),{keep_values:true,url_converter:r.convertURL,url_converter_scope:r,hex_colors:x.force_hex_style_colors,class_filter:x.class_filter,update_styles:1,fix_ie_paragraphs:1,schema:r.schema});r.parser=new n.html.DomParser(x,r.schema);if(!r.settings.allow_html_in_named_anchor){r.parser.addAttributeFilter("name",function(s,t){var B=s.length,D,A,C,E;while(B--){E=s[B];if(E.name==="a"&&E.firstChild){C=E.parent;D=E.lastChild;do{A=D.prev;C.insert(D,E);D=A}while(D)}}})}r.parser.addAttributeFilter("src,href,style",function(s,t){var A=s.length,C,E=r.dom,D,B;while(A--){C=s[A];D=C.attr(t);B="data-mce-"+t;if(!C.attributes.map[B]){if(t==="style"){C.attr(B,E.serializeStyle(E.parseStyle(D),C.name))}else{C.attr(B,r.convertURL(D,t,C.name))}}}});r.parser.addNodeFilter("script",function(s,t){var A=s.length,B;while(A--){B=s[A];B.attr("type","mce-"+(B.attr("type")||"text/javascript"))}});r.parser.addNodeFilter("#cdata",function(s,t){var A=s.length,B;while(A--){B=s[A];B.type=8;B.name="#comment";B.value="[CDATA["+B.value+"]]"}});r.parser.addNodeFilter("p,h1,h2,h3,h4,h5,h6,div",function(t,A){var B=t.length,C,s=r.schema.getNonEmptyElements();while(B--){C=t[B];if(C.isEmpty(s)){C.empty().append(new n.html.Node("br",1)).shortEnded=true}}});r.serializer=new n.dom.Serializer(x,r.dom,r.schema);r.selection=new n.dom.Selection(r.dom,r.getWin(),r.serializer);r.formatter=new n.Formatter(this);r.formatter.register({alignleft:[{selector:"p,h1,h2,h3,h4,h5,h6,td,th,div,ul,ol,li",styles:{textAlign:"left"}},{selector:"img,table",collapsed:false,styles:{"float":"left"}}],aligncenter:[{selector:"p,h1,h2,h3,h4,h5,h6,td,th,div,ul,ol,li",styles:{textAlign:"center"}},{selector:"img",collapsed:false,styles:{display:"block",marginLeft:"auto",marginRight:"auto"}},{selector:"table",collapsed:false,styles:{marginLeft:"auto",marginRight:"auto"}}],alignright:[{selector:"p,h1,h2,h3,h4,h5,h6,td,th,div,ul,ol,li",styles:{textAlign:"right"}},{selector:"img,table",collapsed:false,styles:{"float":"right"}}],alignfull:[{selector:"p,h1,h2,h3,h4,h5,h6,td,th,div,ul,ol,li",styles:{textAlign:"justify"}}],bold:[{inline:"strong",remove:"all"},{inline:"span",styles:{fontWeight:"bold"}},{inline:"b",remove:"all"}],italic:[{inline:"em",remove:"all"},{inline:"span",styles:{fontStyle:"italic"}},{inline:"i",remove:"all"}],underline:[{inline:"span",styles:{textDecoration:"underline"},exact:true},{inline:"u",remove:"all"}],strikethrough:[{inline:"span",styles:{textDecoration:"line-through"},exact:true},{inline:"strike",remove:"all"}],forecolor:{inline:"span",styles:{color:"%value"},wrap_links:false},hilitecolor:{inline:"span",styles:{backgroundColor:"%value"},wrap_links:false},fontname:{inline:"span",styles:{fontFamily:"%value"}},fontsize:{inline:"span",styles:{fontSize:"%value"}},fontsize_class:{inline:"span",attributes:{"class":"%value"}},blockquote:{block:"blockquote",wrapper:1,remove:"all"},subscript:{inline:"sub"},superscript:{inline:"sup"},link:{inline:"a",selector:"a",remove:"all",split:true,deep:true,onmatch:function(s){return true},onformat:function(A,s,t){i(t,function(C,B){r.dom.setAttrib(A,B,C)})}},removeformat:[{selector:"b,strong,em,i,font,u,strike",remove:"all",split:true,expand:false,block_expand:true,deep:true},{selector:"span",attributes:["style","class"],remove:"empty",split:true,expand:false,deep:true},{selector:"*",attributes:["style","class"],split:false,expand:false,deep:true}]});i("p h1 h2 h3 h4 h5 h6 div address pre div code dt dd samp".split(/\s/),function(s){r.formatter.register(s,{block:s,remove:"all"})});r.formatter.register(r.settings.formats);r.undoManager=new n.UndoManager(r);r.undoManager.onAdd.add(function(t,s){if(t.hasUndo()){return r.onChange.dispatch(r,s,t)}});r.undoManager.onUndo.add(function(t,s){return r.onUndo.dispatch(r,s,t)});r.undoManager.onRedo.add(function(t,s){return r.onRedo.dispatch(r,s,t)});r.forceBlocks=new n.ForceBlocks(r,{forced_root_block:x.forced_root_block});r.editorCommands=new n.EditorCommands(r);r.serializer.onPreProcess.add(function(s,t){return r.onPreProcess.dispatch(r,t,s)});r.serializer.onPostProcess.add(function(s,t){return r.onPostProcess.dispatch(r,t,s)});r.onPreInit.dispatch(r);if(!x.gecko_spellcheck){r.getBody().spellcheck=0}if(!x.readonly){r._addEvents()}r.controlManager.onPostRender.dispatch(r,r.controlManager);r.onPostRender.dispatch(r);r.quirks=new n.util.Quirks(this);if(x.directionality){r.getBody().dir=x.directionality}if(x.nowrap){r.getBody().style.whiteSpace="nowrap"}if(x.handle_node_change_callback){r.onNodeChange.add(function(t,s,A){r.execCallback("handle_node_change_callback",r.id,A,-1,-1,true,r.selection.isCollapsed())})}if(x.save_callback){r.onSaveContent.add(function(s,A){var t=r.execCallback("save_callback",r.id,A.content,r.getBody());if(t){A.content=t}})}if(x.onchange_callback){r.onChange.add(function(t,s){r.execCallback("onchange_callback",r,s)})}if(x.protect){r.onBeforeSetContent.add(function(s,t){if(x.protect){i(x.protect,function(A){t.content=t.content.replace(A,function(B){return"<!--mce:protected "+escape(B)+"-->"})})}})}if(x.convert_newlines_to_brs){r.onBeforeSetContent.add(function(s,t){if(t.initial){t.content=t.content.replace(/\r?\n/g,"<br />")}})}if(x.preformatted){r.onPostProcess.add(function(s,t){t.content=t.content.replace(/^\s*<pre.*?>/,"");t.content=t.content.replace(/<\/pre>\s*$/,"");if(t.set){t.content='<pre class="mceItemHidden">'+t.content+"</pre>"}})}if(x.verify_css_classes){r.serializer.attribValueFilter=function(C,A){var B,t;if(C=="class"){if(!r.classesRE){t=r.dom.getClasses();if(t.length>0){B="";i(t,function(s){B+=(B?"|":"")+s["class"]});r.classesRE=new RegExp("("+B+")","gi")}}return !r.classesRE||/(\bmceItem\w+\b|\bmceTemp\w+\b)/g.test(A)||r.classesRE.test(A)?A:""}return A}}if(x.cleanup_callback){r.onBeforeSetContent.add(function(s,t){t.content=r.execCallback("cleanup_callback","insert_to_editor",t.content,t)});r.onPreProcess.add(function(s,t){if(t.set){r.execCallback("cleanup_callback","insert_to_editor_dom",t.node,t)}if(t.get){r.execCallback("cleanup_callback","get_from_editor_dom",t.node,t)}});r.onPostProcess.add(function(s,t){if(t.set){t.content=r.execCallback("cleanup_callback","insert_to_editor",t.content,t)}if(t.get){t.content=r.execCallback("cleanup_callback","get_from_editor",t.content,t)}})}if(x.save_callback){r.onGetContent.add(function(s,t){if(t.save){t.content=r.execCallback("save_callback",r.id,t.content,r.getBody())}})}if(x.handle_event_callback){r.onEvent.add(function(s,t,A){if(r.execCallback("handle_event_callback",t,s,A)===false){k.cancel(t)}})}r.onSetContent.add(function(){r.addVisual(r.getBody())});if(x.padd_empty_editor){r.onPostProcess.add(function(s,t){t.content=t.content.replace(/^(<p[^>]*>(&nbsp;|&#160;|\s|\u00a0|)<\/p>[\r\n]*|<br \/>[\r\n]*)$/,"")})}if(a){function u(s,t){i(s.dom.select("a"),function(B){var A=B.parentNode;if(s.dom.isBlock(A)&&A.lastChild===B){s.dom.add(A,"br",{"data-mce-bogus":1})}})}r.onExecCommand.add(function(s,t){if(t==="CreateLink"){u(s)}});r.onSetContent.add(r.selection.onSetContent.add(u))}r.load({initial:true,format:"html"});r.startContent=r.getContent({format:"raw"});r.undoManager.add();r.initialized=true;r.onInit.dispatch(r);r.execCallback("setupcontent_callback",r.id,r.getBody(),r.getDoc());r.execCallback("init_instance_callback",r);r.focus(true);r.nodeChanged({initial:1});i(r.contentCSS,function(s){r.dom.loadCSS(s)});if(x.auto_focus){setTimeout(function(){var s=n.get(x.auto_focus);s.selection.select(s.getBody(),1);s.selection.collapse(1);s.getBody().focus();s.getWin().focus()},100)}y=null},focus:function(v){var z,r=this,u=r.selection,y=r.settings.content_editable,s,q,x=r.getDoc();if(!v){s=u.getRng();if(s.item){q=s.item(0)}r._refreshContentEditable();if(!y){r.getWin().focus()}if(n.isGecko){r.getBody().focus()}if(q&&q.ownerDocument==x){s=x.body.createControlRange();s.addElement(q);s.select()}}if(n.activeEditor!=r){if((z=n.activeEditor)!=null){z.onDeactivate.dispatch(z,r)}r.onActivate.dispatch(r,z)}n._setActive(r)},execCallback:function(v){var q=this,u=q.settings[v],r;if(!u){return}if(q.callbackLookup&&(r=q.callbackLookup[v])){u=r.func;r=r.scope}if(d(u,"string")){r=u.replace(/\.\w+$/,"");r=r?n.resolve(r):0;u=n.resolve(u);q.callbackLookup=q.callbackLookup||{};q.callbackLookup[v]={func:u,scope:r}}return u.apply(r||q,Array.prototype.slice.call(arguments,1))},translate:function(q){var t=this.settings.language||"en",r=n.i18n;if(!q){return""}return r[t+"."+q]||q.replace(/{\#([^}]+)\}/g,function(u,s){return r[t+"."+s]||"{#"+s+"}"})},getLang:function(r,q){return n.i18n[(this.settings.language||"en")+"."+r]||(d(q)?q:"{#"+r+"}")},getParam:function(x,s,q){var t=n.trim,r=d(this.settings[x])?this.settings[x]:s,u;if(q==="hash"){u={};if(d(r,"string")){i(r.indexOf("=")>0?r.split(/[;,](?![^=;,]*(?:[;,]|$))/):r.split(","),function(y){y=y.split("=");if(y.length>1){u[t(y[0])]=t(y[1])}else{u[t(y[0])]=t(y)}})}else{u=r}return u}return r},nodeChanged:function(u){var q=this,r=q.selection,v=r.getStart()||q.getBody();if(q.initialized){u=u||{};v=b&&v.ownerDocument!=q.getDoc()?q.getBody():v;u.parents=[];q.dom.getParent(v,function(s){if(s.nodeName=="BODY"){return true}u.parents.push(s)});q.onNodeChange.dispatch(q,u?u.controlManager||q.controlManager:q.controlManager,v,r.isCollapsed(),u)}},addButton:function(u,r){var q=this;q.buttons=q.buttons||{};q.buttons[u]=r},addCommand:function(q,s,r){this.execCommands[q]={func:s,scope:r||this}},addQueryStateHandler:function(q,s,r){this.queryStateCommands[q]={func:s,scope:r||this}},addQueryValueHandler:function(q,s,r){this.queryValueCommands[q]={func:s,scope:r||this}},addShortcut:function(s,v,q,u){var r=this,x;if(!r.settings.custom_shortcuts){return false}r.shortcuts=r.shortcuts||{};if(d(q,"string")){x=q;q=function(){r.execCommand(x,false,null)}}if(d(q,"object")){x=q;q=function(){r.execCommand(x[0],x[1],x[2])}}i(g(s),function(t){var y={func:q,scope:u||this,desc:v,alt:false,ctrl:false,shift:false};i(g(t,"+"),function(z){switch(z){case"alt":case"ctrl":case"shift":y[z]=true;break;default:y.charCode=z.charCodeAt(0);y.keyCode=z.toUpperCase().charCodeAt(0)}});r.shortcuts[(y.ctrl?"ctrl":"")+","+(y.alt?"alt":"")+","+(y.shift?"shift":"")+","+y.keyCode]=y});return true},execCommand:function(y,x,A,q){var u=this,v=0,z,r;if(!/^(mceAddUndoLevel|mceEndUndoLevel|mceBeginUndoLevel|mceRepaint|SelectAll)$/.test(y)&&(!q||!q.skip_focus)){u.focus()}q=f({},q);u.onBeforeExecCommand.dispatch(u,y,x,A,q);if(q.terminate){return false}if(u.execCallback("execcommand_callback",u.id,u.selection.getNode(),y,x,A)){u.onExecCommand.dispatch(u,y,x,A,q);return true}if(z=u.execCommands[y]){r=z.func.call(z.scope,x,A);if(r!==true){u.onExecCommand.dispatch(u,y,x,A,q);return r}}i(u.plugins,function(s){if(s.execCommand&&s.execCommand(y,x,A)){u.onExecCommand.dispatch(u,y,x,A,q);v=1;return false}});if(v){return true}if(u.theme&&u.theme.execCommand&&u.theme.execCommand(y,x,A)){u.onExecCommand.dispatch(u,y,x,A,q);return true}if(u.editorCommands.execCommand(y,x,A)){u.onExecCommand.dispatch(u,y,x,A,q);return true}u.getDoc().execCommand(y,x,A);u.onExecCommand.dispatch(u,y,x,A,q)},queryCommandState:function(v){var r=this,x,u;if(r._isHidden()){return}if(x=r.queryStateCommands[v]){u=x.func.call(x.scope);if(u!==true){return u}}x=r.editorCommands.queryCommandState(v);if(x!==-1){return x}try{return this.getDoc().queryCommandState(v)}catch(q){}},queryCommandValue:function(x){var r=this,v,u;if(r._isHidden()){return}if(v=r.queryValueCommands[x]){u=v.func.call(v.scope);if(u!==true){return u}}v=r.editorCommands.queryCommandValue(x);if(d(v)){return v}try{return this.getDoc().queryCommandValue(x)}catch(q){}},show:function(){var q=this;o.show(q.getContainer());o.hide(q.id);q.load()},hide:function(){var q=this,r=q.getDoc();if(b&&r){r.execCommand("SelectAll")}q.save();o.hide(q.getContainer());o.setStyle(q.id,"display",q.orgDisplay)},isHidden:function(){return !o.isHidden(this.id)},setProgressState:function(q,r,s){this.onSetProgressState.dispatch(this,q,r,s);return q},load:function(u){var q=this,s=q.getElement(),r;if(s){u=u||{};u.load=true;r=q.setContent(d(s.value)?s.value:s.innerHTML,u);u.element=s;if(!u.no_events){q.onLoadContent.dispatch(q,u)}u.element=s=null;return r}},save:function(v){var q=this,u=q.getElement(),r,s;if(!u||!q.initialized){return}v=v||{};v.save=true;if(!v.no_events){q.undoManager.typing=false;q.undoManager.add()}v.element=u;r=v.content=q.getContent(v);if(!v.no_events){q.onSaveContent.dispatch(q,v)}r=v.content;if(!/TEXTAREA|INPUT/i.test(u.nodeName)){u.innerHTML=r;if(s=o.getParent(q.id,"form")){i(s.elements,function(t){if(t.name==q.id){t.value=r;return false}})}}else{u.value=r}v.element=u=null;return r},setContent:function(v,t){var s=this,r,q=s.getBody(),u;t=t||{};t.format=t.format||"html";t.set=true;t.content=v;if(!t.no_events){s.onBeforeSetContent.dispatch(s,t)}v=t.content;if(!n.isIE&&(v.length===0||/^\s+$/.test(v))){u=s.settings.forced_root_block;if(u){v="<"+u+'><br data-mce-bogus="1"></'+u+">"}else{v='<br data-mce-bogus="1">'}q.innerHTML=v;s.selection.select(q,true);s.selection.collapse(true);return}if(t.format!=="raw"){v=new n.html.Serializer({},s.schema).serialize(s.parser.parse(v))}t.content=n.trim(v);s.dom.setHTML(q,t.content);if(!t.no_events){s.onSetContent.dispatch(s,t)}s.selection.normalize();return t.content},getContent:function(r){var q=this,s;r=r||{};r.format=r.format||"html";r.get=true;if(!r.no_events){q.onBeforeGetContent.dispatch(q,r)}if(r.format=="raw"){s=q.getBody().innerHTML}else{s=q.serializer.serialize(q.getBody(),r)}r.content=n.trim(s);if(!r.no_events){q.onGetContent.dispatch(q,r)}return r.content},isDirty:function(){var q=this;return n.trim(q.startContent)!=n.trim(q.getContent({format:"raw",no_events:1}))&&!q.isNotDirty},getContainer:function(){var q=this;if(!q.container){q.container=o.get(q.editorContainer||q.id+"_parent")}return q.container},getContentAreaContainer:function(){return this.contentAreaContainer},getElement:function(){return o.get(this.settings.content_element||this.id)},getWin:function(){var q=this,r;if(!q.contentWindow){r=o.get(q.id+"_ifr");if(r){q.contentWindow=r.contentWindow}}return q.contentWindow},getDoc:function(){var r=this,q;if(!r.contentDocument){q=r.getWin();if(q){r.contentDocument=q.document}}return r.contentDocument},getBody:function(){return this.bodyElement||this.getDoc().body},convertURL:function(q,y,x){var r=this,v=r.settings;if(v.urlconverter_callback){return r.execCallback("urlconverter_callback",q,x,true,y)}if(!v.convert_urls||(x&&x.nodeName=="LINK")||q.indexOf("file:")===0){return q}if(v.relative_urls){return r.documentBaseURI.toRelative(q)}q=r.documentBaseURI.toAbsolute(q,v.remove_script_host);return q},addVisual:function(u){var q=this,r=q.settings;u=u||q.getBody();if(!d(q.hasVisual)){q.hasVisual=r.visual}i(q.dom.select("table,a",u),function(t){var s;switch(t.nodeName){case"TABLE":s=q.dom.getAttrib(t,"border");if(!s||s=="0"){if(q.hasVisual){q.dom.addClass(t,r.visual_table_class)}else{q.dom.removeClass(t,r.visual_table_class)}}return;case"A":s=q.dom.getAttrib(t,"name");if(s){if(q.hasVisual){q.dom.addClass(t,"mceItemAnchor")}else{q.dom.removeClass(t,"mceItemAnchor")}}return}});q.onVisualAid.dispatch(q,u,q.hasVisual)},remove:function(){var q=this,r=q.getContainer();q.removed=1;q.hide();q.execCallback("remove_instance_callback",q);q.onRemove.dispatch(q);q.onExecCommand.listeners=[];n.remove(q);o.remove(r)},destroy:function(r){var q=this;if(q.destroyed){return}if(!r){n.removeUnload(q.destroy);tinyMCE.onBeforeUnload.remove(q._beforeUnload);if(q.theme&&q.theme.destroy){q.theme.destroy()}q.controlManager.destroy();q.selection.destroy();q.dom.destroy();if(!q.settings.content_editable){k.clear(q.getWin());k.clear(q.getDoc())}k.clear(q.getBody());k.clear(q.formElement)}if(q.formElement){q.formElement.submit=q.formElement._mceOldSubmit;q.formElement._mceOldSubmit=null}q.contentAreaContainer=q.formElement=q.container=q.settings.content_element=q.bodyElement=q.contentDocument=q.contentWindow=null;if(q.selection){q.selection=q.selection.win=q.selection.dom=q.selection.dom.doc=null}q.destroyed=1},_addEvents:function(){var D=this,u,E=D.settings,r=D.dom,y={mouseup:"onMouseUp",mousedown:"onMouseDown",click:"onClick",keyup:"onKeyUp",keydown:"onKeyDown",keypress:"onKeyPress",submit:"onSubmit",reset:"onReset",contextmenu:"onContextMenu",dblclick:"onDblClick",paste:"onPaste"};function q(t,F){var s=t.type;if(D.removed){return}if(D.onEvent.dispatch(D,t,F)!==false){D[y[t.fakeType||t.type]].dispatch(D,t,F)}}i(y,function(t,s){switch(s){case"contextmenu":r.bind(D.getDoc(),s,q);break;case"paste":r.bind(D.getBody(),s,function(F){q(F)});break;case"submit":case"reset":r.bind(D.getElement().form||o.getParent(D.id,"form"),s,q);break;default:r.bind(E.content_editable?D.getBody():D.getDoc(),s,q)}});r.bind(E.content_editable?D.getBody():(a?D.getDoc():D.getWin()),"focus",function(s){D.focus(true)});if(n.isGecko){r.bind(D.getDoc(),"DOMNodeInserted",function(t){var s;t=t.target;if(t.nodeType===1&&t.nodeName==="IMG"&&(s=t.getAttribute("data-mce-src"))){t.src=D.documentBaseURI.toAbsolute(s)}})}if(a){function v(){var G=this,I=G.getDoc(),H=G.settings;if(a&&!H.readonly){G._refreshContentEditable();try{I.execCommand("styleWithCSS",0,false)}catch(F){if(!G._isHidden()){try{I.execCommand("useCSS",0,true)}catch(F){}}}if(!H.table_inline_editing){try{I.execCommand("enableInlineTableEditing",false,false)}catch(F){}}if(!H.object_resizing){try{I.execCommand("enableObjectResizing",false,false)}catch(F){}}}}D.onBeforeExecCommand.add(v);D.onMouseDown.add(v)}D.onMouseUp.add(D.nodeChanged);D.onKeyUp.add(function(s,t){var F=t.keyCode;if((F>=33&&F<=36)||(F>=37&&F<=40)||F==13||F==45||F==46||F==8||(n.isMac&&(F==91||F==93))||t.ctrlKey){D.nodeChanged()}});D.onKeyDown.add(function(t,F){if(F.keyCode!=j.BACKSPACE){return}var s=t.selection.getRng();if(!s.collapsed){return}var H=s.startContainer;var G=s.startOffset;while(H&&H.nodeType&&H.nodeType!=1&&H.parentNode){H=H.parentNode}if(H&&H.parentNode&&H.parentNode.tagName==="BLOCKQUOTE"&&H.parentNode.firstChild==H&&G==0){t.formatter.toggle("blockquote",null,H.parentNode);s.setStart(H,0);s.setEnd(H,0);t.selection.setRng(s);t.selection.collapse(false)}});D.onReset.add(function(){D.setContent(D.startContent,{format:"raw"})});if(E.custom_shortcuts){if(E.custom_undo_redo_keyboard_shortcuts){D.addShortcut("ctrl+z",D.getLang("undo_desc"),"Undo");D.addShortcut("ctrl+y",D.getLang("redo_desc"),"Redo")}D.addShortcut("ctrl+b",D.getLang("bold_desc"),"Bold");D.addShortcut("ctrl+i",D.getLang("italic_desc"),"Italic");D.addShortcut("ctrl+u",D.getLang("underline_desc"),"Underline");for(u=1;u<=6;u++){D.addShortcut("ctrl+"+u,"",["FormatBlock",false,"h"+u])}D.addShortcut("ctrl+7","",["FormatBlock",false,"p"]);D.addShortcut("ctrl+8","",["FormatBlock",false,"div"]);D.addShortcut("ctrl+9","",["FormatBlock",false,"address"]);function x(t){var s=null;if(!t.altKey&&!t.ctrlKey&&!t.metaKey){return s}i(D.shortcuts,function(F){if(n.isMac&&F.ctrl!=t.metaKey){return}else{if(!n.isMac&&F.ctrl!=t.ctrlKey){return}}if(F.alt!=t.altKey){return}if(F.shift!=t.shiftKey){return}if(t.keyCode==F.keyCode||(t.charCode&&t.charCode==F.charCode)){s=F;return false}});return s}D.onKeyUp.add(function(s,t){var F=x(t);if(F){return k.cancel(t)}});D.onKeyPress.add(function(s,t){var F=x(t);if(F){return k.cancel(t)}});D.onKeyDown.add(function(s,t){var F=x(t);if(F){F.func.call(F.scope);return k.cancel(t)}})}if(n.isIE){r.bind(D.getDoc(),"controlselect",function(F){var t=D.resizeInfo,s;F=F.target;if(F.nodeName!=="IMG"){return}if(t){r.unbind(t.node,t.ev,t.cb)}if(!r.hasClass(F,"mceItemNoResize")){ev="resizeend";s=r.bind(F,ev,function(H){var G;H=H.target;if(G=r.getStyle(H,"width")){r.setAttrib(H,"width",G.replace(/[^0-9%]+/g,""));r.setStyle(H,"width","")}if(G=r.getStyle(H,"height")){r.setAttrib(H,"height",G.replace(/[^0-9%]+/g,""));r.setStyle(H,"height","")}})}else{ev="resizestart";s=r.bind(F,"resizestart",k.cancel,k)}t=D.resizeInfo={node:F,ev:ev,cb:s}})}if(n.isOpera){D.onClick.add(function(s,t){k.prevent(t)})}if(E.custom_undo_redo){function A(){D.undoManager.typing=false;D.undoManager.add()}var z=n.isGecko?"blur":"focusout";r.bind(D.getDoc(),z,function(s){if(!D.removed&&D.undoManager.typing){A()}});D.dom.bind(D.dom.getRoot(),"dragend",function(s){A()});D.onKeyUp.add(function(s,F){var t=F.keyCode;if((t>=33&&t<=36)||(t>=37&&t<=40)||t==13||t==45||F.ctrlKey){A()}});D.onKeyDown.add(function(s,G){var F=G.keyCode,t;if(F==8){t=D.getDoc().selection;if(t&&t.createRange&&t.createRange().item){D.undoManager.beforeChange();s.dom.remove(t.createRange().item(0));A();return k.cancel(G)}}if((F>=33&&F<=36)||(F>=37&&F<=40)||F==13||F==45){if(n.isIE&&F==13){D.undoManager.beforeChange()}if(D.undoManager.typing){A()}return}if((F<16||F>20)&&F!=224&&F!=91&&!D.undoManager.typing){D.undoManager.beforeChange();D.undoManager.typing=true;D.undoManager.add()}});D.onMouseDown.add(function(){if(D.undoManager.typing){A()}})}if(n.isGecko){function C(){var s=D.dom.getAttribs(D.selection.getStart().cloneNode(false));return function(){var t=D.selection.getStart();if(t!==D.getBody()){D.dom.setAttrib(t,"style",null);i(s,function(F){t.setAttributeNode(F.cloneNode(true))})}}}function B(){var t=D.selection;return !t.isCollapsed()&&t.getStart()!=t.getEnd()}D.onKeyPress.add(function(s,F){var t;if((F.keyCode==8||F.keyCode==46)&&B()){t=C();D.getDoc().execCommand("delete",false,null);t();return k.cancel(F)}});D.dom.bind(D.getDoc(),"cut",function(t){var s;if(B()){s=C();D.onKeyUp.addToTop(k.cancel,k);setTimeout(function(){s();D.onKeyUp.remove(k.cancel,k)},0)}})}},_refreshContentEditable:function(){var r=this,q,s;if(r._isHidden()){q=r.getBody();s=q.parentNode;s.removeChild(q);s.appendChild(q);q.focus()}},_isHidden:function(){var q;if(!a){return 0}q=this.selection.getSel();return(!q||!q.rangeCount||q.rangeCount==0)}})})(tinymce);(function(c){var d=c.each,e,a=true,b=false;c.EditorCommands=function(n){var m=n.dom,p=n.selection,j={state:{},exec:{},value:{}},k=n.settings,q=n.formatter,o;function r(z,y,x){var v;z=z.toLowerCase();if(v=j.exec[z]){v(z,y,x);return a}return b}function l(x){var v;x=x.toLowerCase();if(v=j.state[x]){return v(x)}return -1}function h(x){var v;x=x.toLowerCase();if(v=j.value[x]){return v(x)}return b}function u(v,x){x=x||"exec";d(v,function(z,y){d(y.toLowerCase().split(","),function(A){j[x][A]=z})})}c.extend(this,{execCommand:r,queryCommandState:l,queryCommandValue:h,addCommands:u});function f(y,x,v){if(x===e){x=b}if(v===e){v=null}return n.getDoc().execCommand(y,x,v)}function t(v){return q.match(v)}function s(v,x){q.toggle(v,x?{value:x}:e)}function i(v){o=p.getBookmark(v)}function g(){p.moveToBookmark(o)}u({"mceResetDesignMode,mceBeginUndoLevel":function(){},"mceEndUndoLevel,mceAddUndoLevel":function(){n.undoManager.add()},"Cut,Copy,Paste":function(z){var y=n.getDoc(),v;try{f(z)}catch(x){v=a}if(v||!y.queryCommandSupported(z)){if(c.isGecko){n.windowManager.confirm(n.getLang("clipboard_msg"),function(A){if(A){open("http://www.mozilla.org/editor/midasdemo/securityprefs.html","_blank")}})}else{n.windowManager.alert(n.getLang("clipboard_no_support"))}}},unlink:function(v){if(p.isCollapsed()){p.select(p.getNode())}f(v);p.collapse(b)},"JustifyLeft,JustifyCenter,JustifyRight,JustifyFull":function(v){var x=v.substring(7);d("left,center,right,full".split(","),function(y){if(x!=y){q.remove("align"+y)}});s("align"+x);r("mceRepaint")},"InsertUnorderedList,InsertOrderedList":function(y){var v,x;f(y);v=m.getParent(p.getNode(),"ol,ul");if(v){x=v.parentNode;if(/^(H[1-6]|P|ADDRESS|PRE)$/.test(x.nodeName)){i();m.split(x,v);g()}}},"Bold,Italic,Underline,Strikethrough,Superscript,Subscript":function(v){s(v)},"ForeColor,HiliteColor,FontName":function(y,x,v){s(y,v)},FontSize:function(z,y,x){var v,A;if(x>=1&&x<=7){A=c.explode(k.font_size_style_values);v=c.explode(k.font_size_classes);if(v){x=v[x-1]||x}else{x=A[x-1]||x}}s(z,x)},RemoveFormat:function(v){q.remove(v)},mceBlockQuote:function(v){s("blockquote")},FormatBlock:function(y,x,v){return s(v||"p")},mceCleanup:function(){var v=p.getBookmark();n.setContent(n.getContent({cleanup:a}),{cleanup:a});p.moveToBookmark(v)},mceRemoveNode:function(z,y,x){var v=x||p.getNode();if(v!=n.getBody()){i();n.dom.remove(v,a);g()}},mceSelectNodeDepth:function(z,y,x){var v=0;m.getParent(p.getNode(),function(A){if(A.nodeType==1&&v++==x){p.select(A);return b}},n.getBody())},mceSelectNode:function(y,x,v){p.select(v)},mceInsertContent:function(B,I,K){var y,J,E,z,F,G,D,C,L,x,A,M,v,H;y=n.parser;J=new c.html.Serializer({},n.schema);v='<span id="mce_marker" data-mce-type="bookmark">\uFEFF</span>';G={content:K,format:"html"};p.onBeforeSetContent.dispatch(p,G);K=G.content;if(K.indexOf("{$caret}")==-1){K+="{$caret}"}K=K.replace(/\{\$caret\}/,v);if(!p.isCollapsed()){n.getDoc().execCommand("Delete",false,null)}E=p.getNode();G={context:E.nodeName.toLowerCase()};F=y.parse(K,G);A=F.lastChild;if(A.attr("id")=="mce_marker"){D=A;for(A=A.prev;A;A=A.walk(true)){if(A.type==3||!m.isBlock(A.name)){A.parent.insert(D,A,A.name==="br");break}}}if(!G.invalid){K=J.serialize(F);A=E.firstChild;M=E.lastChild;if(!A||(A===M&&A.nodeName==="BR")){m.setHTML(E,K)}else{p.setContent(K)}}else{p.setContent(v);E=n.selection.getNode();z=n.getBody();if(E.nodeType==9){E=A=z}else{A=E}while(A!==z){E=A;A=A.parentNode}K=E==z?z.innerHTML:m.getOuterHTML(E);K=J.serialize(y.parse(K.replace(/<span (id="mce_marker"|id=mce_marker).+?<\/span>/i,function(){return J.serialize(F)})));if(E==z){m.setHTML(z,K)}else{m.setOuterHTML(E,K)}}D=m.get("mce_marker");C=m.getRect(D);L=m.getViewPort(n.getWin());if((C.y+C.h>L.y+L.h||C.y<L.y)||(C.x>L.x+L.w||C.x<L.x)){H=c.isIE?n.getDoc().documentElement:n.getBody();H.scrollLeft=C.x;H.scrollTop=C.y-L.h+25}x=m.createRng();A=D.previousSibling;if(A&&A.nodeType==3){x.setStart(A,A.nodeValue.length)}else{x.setStartBefore(D);x.setEndBefore(D)}m.remove(D);p.setRng(x);p.onSetContent.dispatch(p,G);n.addVisual()},mceInsertRawHTML:function(y,x,v){p.setContent("tiny_mce_marker");n.setContent(n.getContent().replace(/tiny_mce_marker/g,function(){return v}))},mceSetContent:function(y,x,v){n.setContent(v)},"Indent,Outdent":function(z){var x,v,y;x=k.indentation;v=/[a-z%]+$/i.exec(x);x=parseInt(x);if(!l("InsertUnorderedList")&&!l("InsertOrderedList")){d(p.getSelectedBlocks(),function(A){if(z=="outdent"){y=Math.max(0,parseInt(A.style.paddingLeft||0)-x);m.setStyle(A,"paddingLeft",y?y+v:"")}else{m.setStyle(A,"paddingLeft",(parseInt(A.style.paddingLeft||0)+x)+v)}})}else{f(z)}},mceRepaint:function(){var x;if(c.isGecko){try{i(a);if(p.getSel()){p.getSel().selectAllChildren(n.getBody())}p.collapse(a);g()}catch(v){}}},mceToggleFormat:function(y,x,v){q.toggle(v)},InsertHorizontalRule:function(){n.execCommand("mceInsertContent",false,"<hr />")},mceToggleVisualAid:function(){n.hasVisual=!n.hasVisual;n.addVisual()},mceReplaceContent:function(y,x,v){n.execCommand("mceInsertContent",false,v.replace(/\{\$selection\}/g,p.getContent({format:"text"})))},mceInsertLink:function(z,y,x){var v;if(typeof(x)=="string"){x={href:x}}v=m.getParent(p.getNode(),"a");x.href=x.href.replace(" ","%20");if(!v||!x.href){q.remove("link")}if(x.href){q.apply("link",x,v)}},selectAll:function(){var x=m.getRoot(),v=m.createRng();v.setStart(x,0);v.setEnd(x,x.childNodes.length);n.selection.setRng(v)}});u({"JustifyLeft,JustifyCenter,JustifyRight,JustifyFull":function(z){var x="align"+z.substring(7);var v=p.isCollapsed()?[p.getNode()]:p.getSelectedBlocks();var y=c.map(v,function(A){return !!q.matchNode(A,x)});return c.inArray(y,a)!==-1},"Bold,Italic,Underline,Strikethrough,Superscript,Subscript":function(v){return t(v)},mceBlockQuote:function(){return t("blockquote")},Outdent:function(){var v;if(k.inline_styles){if((v=m.getParent(p.getStart(),m.isBlock))&&parseInt(v.style.paddingLeft)>0){return a}if((v=m.getParent(p.getEnd(),m.isBlock))&&parseInt(v.style.paddingLeft)>0){return a}}return l("InsertUnorderedList")||l("InsertOrderedList")||(!k.inline_styles&&!!m.getParent(p.getNode(),"BLOCKQUOTE"))},"InsertUnorderedList,InsertOrderedList":function(v){return m.getParent(p.getNode(),v=="insertunorderedlist"?"UL":"OL")}},"state");u({"FontSize,FontName":function(y){var x=0,v;if(v=m.getParent(p.getNode(),"span")){if(y=="fontsize"){x=v.style.fontSize}else{x=v.style.fontFamily.replace(/, /g,",").replace(/[\'\"]/g,"").toLowerCase()}}return x}},"value");if(k.custom_undo_redo){u({Undo:function(){n.undoManager.undo()},Redo:function(){n.undoManager.redo()}})}}})(tinymce);(function(b){var a=b.util.Dispatcher;b.UndoManager=function(f){var d,e=0,h=[],c;function g(){return b.trim(f.getContent({format:"raw",no_events:1}))}return d={typing:false,onAdd:new a(d),onUndo:new a(d),onRedo:new a(d),beforeChange:function(){c=f.selection.getBookmark(2,true)},add:function(m){var j,k=f.settings,l;m=m||{};m.content=g();l=h[e];if(l&&l.content==m.content){return null}if(h[e]){h[e].beforeBookmark=c}if(k.custom_undo_redo_levels){if(h.length>k.custom_undo_redo_levels){for(j=0;j<h.length-1;j++){h[j]=h[j+1]}h.length--;e=h.length}}m.bookmark=f.selection.getBookmark(2,true);if(e<h.length-1){h.length=e+1}h.push(m);e=h.length-1;d.onAdd.dispatch(d,m);f.isNotDirty=0;return m},undo:function(){var k,j;if(d.typing){d.add();d.typing=false}if(e>0){k=h[--e];f.setContent(k.content,{format:"raw"});f.selection.moveToBookmark(k.beforeBookmark);d.onUndo.dispatch(d,k)}return k},redo:function(){var i;if(e<h.length-1){i=h[++e];f.setContent(i.content,{format:"raw"});f.selection.moveToBookmark(i.bookmark);d.onRedo.dispatch(d,i)}return i},clear:function(){h=[];e=0;d.typing=false},hasUndo:function(){return e>0||this.typing},hasRedo:function(){return e<h.length-1&&!this.typing}}}})(tinymce);(function(l){var j=l.dom.Event,c=l.isIE,a=l.isGecko,b=l.isOpera,i=l.each,h=l.extend,d=true,g=false;function k(o){var p,n,m;do{if(/^(SPAN|STRONG|B|EM|I|FONT|STRIKE|U)$/.test(o.nodeName)){if(p){n=o.cloneNode(false);n.appendChild(p);p=n}else{p=m=o.cloneNode(false)}p.removeAttribute("id")}}while(o=o.parentNode);if(p){return{wrapper:p,inner:m}}}function f(n,o){var m=o.ownerDocument.createRange();m.setStart(n.endContainer,n.endOffset);m.setEndAfter(o);return m.cloneContents().textContent.length==0}function e(o,q,m){var n,p;if(q.isEmpty(m)){n=q.getParent(m,"ul,ol");if(!q.getParent(n.parentNode,"ul,ol")){q.split(n,m);p=q.create("p",0,'<br data-mce-bogus="1" />');q.replace(p,m);o.select(p,1)}return g}return d}l.create("tinymce.ForceBlocks",{ForceBlocks:function(m){var n=this,o=m.settings,p;n.editor=m;n.dom=m.dom;p=(o.forced_root_block||"p").toLowerCase();o.element=p.toUpperCase();m.onPreInit.add(n.setup,n)},setup:function(){var n=this,m=n.editor,p=m.settings,u=m.dom,o=m.selection,q=m.schema.getBlockElements();if(p.forced_root_block){function v(){var y=o.getStart(),t=m.getBody(),s,z,D,F,E,x,A,B=-16777215;if(!y||y.nodeType!==1){return}while(y!=t){if(q[y.nodeName]){return}y=y.parentNode}s=o.getRng();if(s.setStart){z=s.startContainer;D=s.startOffset;F=s.endContainer;E=s.endOffset}else{if(s.item){s=m.getDoc().body.createTextRange();s.moveToElementText(s.item(0))}tmpRng=s.duplicate();tmpRng.collapse(true);D=tmpRng.move("character",B)*-1;if(!tmpRng.collapsed){tmpRng=s.duplicate();tmpRng.collapse(false);E=(tmpRng.move("character",B)*-1)-D}}for(y=t.firstChild;y;y){if(y.nodeType===3||(y.nodeType==1&&!q[y.nodeName])){if(!x){x=u.create(p.forced_root_block);y.parentNode.insertBefore(x,y)}A=y;y=y.nextSibling;x.appendChild(A)}else{x=null;y=y.nextSibling}}if(s.setStart){s.setStart(z,D);s.setEnd(F,E);o.setRng(s)}else{try{s=m.getDoc().body.createTextRange();s.moveToElementText(t);s.collapse(true);s.moveStart("character",D);if(E>0){s.moveEnd("character",E)}s.select()}catch(C){}}m.nodeChanged()}m.onKeyUp.add(v);m.onClick.add(v)}if(p.force_br_newlines){if(c){m.onKeyPress.add(function(s,t){var x;if(t.keyCode==13&&o.getNode().nodeName!="LI"){o.setContent('<br id="__" /> ',{format:"raw"});x=u.get("__");x.removeAttribute("id");o.select(x);o.collapse();return j.cancel(t)}})}}if(p.force_p_newlines){if(!c){m.onKeyPress.add(function(s,t){if(t.keyCode==13&&!t.shiftKey&&!n.insertPara(t)){j.cancel(t)}})}else{l.addUnload(function(){n._previousFormats=0});m.onKeyPress.add(function(s,t){n._previousFormats=0;if(t.keyCode==13&&!t.shiftKey&&s.selection.isCollapsed()&&p.keep_styles){n._previousFormats=k(s.selection.getStart())}});m.onKeyUp.add(function(t,y){if(y.keyCode==13&&!y.shiftKey){var x=t.selection.getStart(),s=n._previousFormats;if(!x.hasChildNodes()&&s){x=u.getParent(x,u.isBlock);if(x&&x.nodeName!="LI"){x.innerHTML="";if(n._previousFormats){x.appendChild(s.wrapper);s.inner.innerHTML="\uFEFF"}else{x.innerHTML="\uFEFF"}o.select(x,1);o.collapse(true);t.getDoc().execCommand("Delete",false,null);n._previousFormats=0}}}})}if(a){m.onKeyDown.add(function(s,t){if((t.keyCode==8||t.keyCode==46)&&!t.shiftKey){n.backspaceDelete(t,t.keyCode==8)}})}}if(l.isWebKit){function r(t){var s=o.getRng(),x,A=u.create("div",null," "),z,y=u.getViewPort(t.getWin()).h;s.insertNode(x=u.create("br"));s.setStartAfter(x);s.setEndAfter(x);o.setRng(s);if(o.getSel().focusNode==x.previousSibling){o.select(u.insertAfter(u.doc.createTextNode("\u00a0"),x));o.collapse(d)}u.insertAfter(A,x);z=u.getPos(A).y;u.remove(A);if(z>y){t.getWin().scrollTo(0,z)}}m.onKeyPress.add(function(s,t){if(t.keyCode==13&&(t.shiftKey||(p.force_br_newlines&&!u.getParent(o.getNode(),"h1,h2,h3,h4,h5,h6,ol,ul")))){r(s);j.cancel(t)}})}if(c){if(p.element!="P"){m.onKeyPress.add(function(s,t){n.lastElm=o.getNode().nodeName});m.onKeyUp.add(function(t,x){var z,y=o.getNode(),s=t.getBody();if(s.childNodes.length===1&&y.nodeName=="P"){y=u.rename(y,p.element);o.select(y);o.collapse();t.nodeChanged()}else{if(x.keyCode==13&&!x.shiftKey&&n.lastElm!="P"){z=u.getParent(y,"p");if(z){u.rename(z,p.element);t.nodeChanged()}}}})}}},getParentBlock:function(o){var m=this.dom;return m.getParent(o,m.isBlock)},insertPara:function(Q){var E=this,v=E.editor,M=v.dom,R=v.getDoc(),V=v.settings,F=v.selection.getSel(),G=F.getRangeAt(0),U=R.body;var J,K,H,O,N,q,o,u,z,m,C,T,p,x,I,L=M.getViewPort(v.getWin()),B,D,A;v.undoManager.beforeChange();J=R.createRange();J.setStart(F.anchorNode,F.anchorOffset);J.collapse(d);K=R.createRange();K.setStart(F.focusNode,F.focusOffset);K.collapse(d);H=J.compareBoundaryPoints(J.START_TO_END,K)<0;O=H?F.anchorNode:F.focusNode;N=H?F.anchorOffset:F.focusOffset;q=H?F.focusNode:F.anchorNode;o=H?F.focusOffset:F.anchorOffset;if(O===q&&/^(TD|TH)$/.test(O.nodeName)){if(O.firstChild.nodeName=="BR"){M.remove(O.firstChild)}if(O.childNodes.length==0){v.dom.add(O,V.element,null,"<br />");T=v.dom.add(O,V.element,null,"<br />")}else{I=O.innerHTML;O.innerHTML="";v.dom.add(O,V.element,null,I);T=v.dom.add(O,V.element,null,"<br />")}G=R.createRange();G.selectNodeContents(T);G.collapse(1);v.selection.setRng(G);return g}if(O==U&&q==U&&U.firstChild&&v.dom.isBlock(U.firstChild)){O=q=O.firstChild;N=o=0;J=R.createRange();J.setStart(O,0);K=R.createRange();K.setStart(q,0)}if(!R.body.hasChildNodes()){R.body.appendChild(M.create("br"))}O=O.nodeName=="HTML"?R.body:O;O=O.nodeName=="BODY"?O.firstChild:O;q=q.nodeName=="HTML"?R.body:q;q=q.nodeName=="BODY"?q.firstChild:q;u=E.getParentBlock(O);z=E.getParentBlock(q);m=u?u.nodeName:V.element;if(I=E.dom.getParent(u,"li,pre")){if(I.nodeName=="LI"){return e(v.selection,E.dom,I)}return d}if(u&&(u.nodeName=="CAPTION"||/absolute|relative|fixed/gi.test(M.getStyle(u,"position",1)))){m=V.element;u=null}if(z&&(z.nodeName=="CAPTION"||/absolute|relative|fixed/gi.test(M.getStyle(u,"position",1)))){m=V.element;z=null}if(/(TD|TABLE|TH|CAPTION)/.test(m)||(u&&m=="DIV"&&/left|right/gi.test(M.getStyle(u,"float",1)))){m=V.element;u=z=null}C=(u&&u.nodeName==m)?u.cloneNode(0):v.dom.create(m);T=(z&&z.nodeName==m)?z.cloneNode(0):v.dom.create(m);T.removeAttribute("id");if(/^(H[1-6])$/.test(m)&&f(G,u)){T=v.dom.create(V.element)}I=p=O;do{if(I==U||I.nodeType==9||E.dom.isBlock(I)||/(TD|TABLE|TH|CAPTION)/.test(I.nodeName)){break}p=I}while((I=I.previousSibling?I.previousSibling:I.parentNode));I=x=q;do{if(I==U||I.nodeType==9||E.dom.isBlock(I)||/(TD|TABLE|TH|CAPTION)/.test(I.nodeName)){break}x=I}while((I=I.nextSibling?I.nextSibling:I.parentNode));if(p.nodeName==m){J.setStart(p,0)}else{J.setStartBefore(p)}J.setEnd(O,N);C.appendChild(J.cloneContents()||R.createTextNode(""));try{K.setEndAfter(x)}catch(P){}K.setStart(q,o);T.appendChild(K.cloneContents()||R.createTextNode(""));G=R.createRange();if(!p.previousSibling&&p.parentNode.nodeName==m){G.setStartBefore(p.parentNode)}else{if(J.startContainer.nodeName==m&&J.startOffset==0){G.setStartBefore(J.startContainer)}else{G.setStart(J.startContainer,J.startOffset)}}if(!x.nextSibling&&x.parentNode.nodeName==m){G.setEndAfter(x.parentNode)}else{G.setEnd(K.endContainer,K.endOffset)}G.deleteContents();if(b){v.getWin().scrollTo(0,L.y)}if(C.firstChild&&C.firstChild.nodeName==m){C.innerHTML=C.firstChild.innerHTML}if(T.firstChild&&T.firstChild.nodeName==m){T.innerHTML=T.firstChild.innerHTML}function S(y,s){var r=[],X,W,t;y.innerHTML="";if(V.keep_styles){W=s;do{if(/^(SPAN|STRONG|B|EM|I|FONT|STRIKE|U)$/.test(W.nodeName)){X=W.cloneNode(g);M.setAttrib(X,"id","");r.push(X)}}while(W=W.parentNode)}if(r.length>0){for(t=r.length-1,X=y;t>=0;t--){X=X.appendChild(r[t])}r[0].innerHTML=b?"\u00a0":"<br />";return r[0]}else{y.innerHTML=b?"\u00a0":"<br />"}}if(M.isEmpty(C)){S(C,O)}if(M.isEmpty(T)){A=S(T,q)}if(b&&parseFloat(opera.version())<9.5){G.insertNode(C);G.insertNode(T)}else{G.insertNode(T);G.insertNode(C)}T.normalize();C.normalize();v.selection.select(T,true);v.selection.collapse(true);B=v.dom.getPos(T).y;if(B<L.y||B+25>L.y+L.h){v.getWin().scrollTo(0,B<L.y?B:B-L.h+25)}v.undoManager.add();return g},backspaceDelete:function(u,B){var C=this,s=C.editor,y=s.getBody(),q=s.dom,p,v=s.selection,o=v.getRng(),x=o.startContainer,p,z,A,m;if(!B&&o.collapsed&&x.nodeType==1&&o.startOffset==x.childNodes.length){m=new l.dom.TreeWalker(x.lastChild,x);for(p=x.lastChild;p;p=m.prev()){if(p.nodeType==3){o.setStart(p,p.nodeValue.length);o.collapse(true);v.setRng(o);return}}}if(x&&s.dom.isBlock(x)&&!/^(TD|TH)$/.test(x.nodeName)&&B){if(x.childNodes.length==0||(x.childNodes.length==1&&x.firstChild.nodeName=="BR")){p=x;while((p=p.previousSibling)&&!s.dom.isBlock(p)){}if(p){if(x!=y.firstChild){z=s.dom.doc.createTreeWalker(p,NodeFilter.SHOW_TEXT,null,g);while(A=z.nextNode()){p=A}o=s.getDoc().createRange();o.setStart(p,p.nodeValue?p.nodeValue.length:0);o.setEnd(p,p.nodeValue?p.nodeValue.length:0);v.setRng(o);s.dom.remove(x)}return j.cancel(u)}}}}})})(tinymce);(function(c){var b=c.DOM,a=c.dom.Event,d=c.each,e=c.extend;c.create("tinymce.ControlManager",{ControlManager:function(f,j){var h=this,g;j=j||{};h.editor=f;h.controls={};h.onAdd=new c.util.Dispatcher(h);h.onPostRender=new c.util.Dispatcher(h);h.prefix=j.prefix||f.id+"_";h._cls={};h.onPostRender.add(function(){d(h.controls,function(i){i.postRender()})})},get:function(f){return this.controls[this.prefix+f]||this.controls[f]},setActive:function(h,f){var g=null;if(g=this.get(h)){g.setActive(f)}return g},setDisabled:function(h,f){var g=null;if(g=this.get(h)){g.setDisabled(f)}return g},add:function(g){var f=this;if(g){f.controls[g.id]=g;f.onAdd.dispatch(g,f)}return g},createControl:function(i){var h,g=this,f=g.editor;d(f.plugins,function(j){if(j.createControl){h=j.createControl(i,g);if(h){return false}}});switch(i){case"|":case"separator":return g.createSeparator()}if(!h&&f.buttons&&(h=f.buttons[i])){return g.createButton(i,h)}return g.add(h)},createDropMenu:function(f,n,h){var m=this,i=m.editor,j,g,k,l;n=e({"class":"mceDropDown",constrain:i.settings.constrain_menus},n);n["class"]=n["class"]+" "+i.getParam("skin")+"Skin";if(k=i.getParam("skin_variant")){n["class"]+=" "+i.getParam("skin")+"Skin"+k.substring(0,1).toUpperCase()+k.substring(1)}f=m.prefix+f;l=h||m._cls.dropmenu||c.ui.DropMenu;j=m.controls[f]=new l(f,n);j.onAddItem.add(function(r,q){var p=q.settings;p.title=i.getLang(p.title,p.title);if(!p.onclick){p.onclick=function(o){if(p.cmd){i.execCommand(p.cmd,p.ui||false,p.value)}}}});i.onRemove.add(function(){j.destroy()});if(c.isIE){j.onShowMenu.add(function(){i.focus();g=i.selection.getBookmark(1)});j.onHideMenu.add(function(){if(g){i.selection.moveToBookmark(g);g=0}})}return m.add(j)},createListBox:function(f,n,h){var l=this,j=l.editor,i,k,m;if(l.get(f)){return null}n.title=j.translate(n.title);n.scope=n.scope||j;if(!n.onselect){n.onselect=function(o){j.execCommand(n.cmd,n.ui||false,o||n.value)}}n=e({title:n.title,"class":"mce_"+f,scope:n.scope,control_manager:l},n);f=l.prefix+f;function g(o){return o.settings.use_accessible_selects&&!c.isGecko}if(j.settings.use_native_selects||g(j)){k=new c.ui.NativeListBox(f,n)}else{m=h||l._cls.listbox||c.ui.ListBox;k=new m(f,n,j)}l.controls[f]=k;if(c.isWebKit){k.onPostRender.add(function(p,o){a.add(o,"mousedown",function(){j.bookmark=j.selection.getBookmark(1)});a.add(o,"focus",function(){j.selection.moveToBookmark(j.bookmark);j.bookmark=null})})}if(k.hideMenu){j.onMouseDown.add(k.hideMenu,k)}return l.add(k)},createButton:function(m,i,l){var h=this,g=h.editor,j,k,f;if(h.get(m)){return null}i.title=g.translate(i.title);i.label=g.translate(i.label);i.scope=i.scope||g;if(!i.onclick&&!i.menu_button){i.onclick=function(){g.execCommand(i.cmd,i.ui||false,i.value)}}i=e({title:i.title,"class":"mce_"+m,unavailable_prefix:g.getLang("unavailable",""),scope:i.scope,control_manager:h},i);m=h.prefix+m;if(i.menu_button){f=l||h._cls.menubutton||c.ui.MenuButton;k=new f(m,i,g);g.onMouseDown.add(k.hideMenu,k)}else{f=h._cls.button||c.ui.Button;k=new f(m,i,g)}return h.add(k)},createMenuButton:function(h,f,g){f=f||{};f.menu_button=1;return this.createButton(h,f,g)},createSplitButton:function(m,i,l){var h=this,g=h.editor,j,k,f;if(h.get(m)){return null}i.title=g.translate(i.title);i.scope=i.scope||g;if(!i.onclick){i.onclick=function(n){g.execCommand(i.cmd,i.ui||false,n||i.value)}}if(!i.onselect){i.onselect=function(n){g.execCommand(i.cmd,i.ui||false,n||i.value)}}i=e({title:i.title,"class":"mce_"+m,scope:i.scope,control_manager:h},i);m=h.prefix+m;f=l||h._cls.splitbutton||c.ui.SplitButton;k=h.add(new f(m,i,g));g.onMouseDown.add(k.hideMenu,k);return k},createColorSplitButton:function(f,n,h){var l=this,j=l.editor,i,k,m,g;if(l.get(f)){return null}n.title=j.translate(n.title);n.scope=n.scope||j;if(!n.onclick){n.onclick=function(o){if(c.isIE){g=j.selection.getBookmark(1)}j.execCommand(n.cmd,n.ui||false,o||n.value)}}if(!n.onselect){n.onselect=function(o){j.execCommand(n.cmd,n.ui||false,o||n.value)}}n=e({title:n.title,"class":"mce_"+f,menu_class:j.getParam("skin")+"Skin",scope:n.scope,more_colors_title:j.getLang("more_colors")},n);f=l.prefix+f;m=h||l._cls.colorsplitbutton||c.ui.ColorSplitButton;k=new m(f,n,j);j.onMouseDown.add(k.hideMenu,k);j.onRemove.add(function(){k.destroy()});if(c.isIE){k.onShowMenu.add(function(){j.focus();g=j.selection.getBookmark(1)});k.onHideMenu.add(function(){if(g){j.selection.moveToBookmark(g);g=0}})}return l.add(k)},createToolbar:function(k,h,j){var i,g=this,f;k=g.prefix+k;f=j||g._cls.toolbar||c.ui.Toolbar;i=new f(k,h,g.editor);if(g.get(k)){return null}return g.add(i)},createToolbarGroup:function(k,h,j){var i,g=this,f;k=g.prefix+k;f=j||this._cls.toolbarGroup||c.ui.ToolbarGroup;i=new f(k,h,g.editor);if(g.get(k)){return null}return g.add(i)},createSeparator:function(g){var f=g||this._cls.separator||c.ui.Separator;return new f()},setControlType:function(g,f){return this._cls[g.toLowerCase()]=f},destroy:function(){d(this.controls,function(f){f.destroy()});this.controls=null}})})(tinymce);(function(d){var a=d.util.Dispatcher,e=d.each,c=d.isIE,b=d.isOpera;d.create("tinymce.WindowManager",{WindowManager:function(f){var g=this;g.editor=f;g.onOpen=new a(g);g.onClose=new a(g);g.params={};g.features={}},open:function(z,h){var v=this,k="",n,m,i=v.editor.settings.dialog_type=="modal",q,o,j,g=d.DOM.getViewPort(),r;z=z||{};h=h||{};o=b?g.w:screen.width;j=b?g.h:screen.height;z.name=z.name||"mc_"+new Date().getTime();z.width=parseInt(z.width||320);z.height=parseInt(z.height||240);z.resizable=true;z.left=z.left||parseInt(o/2)-(z.width/2);z.top=z.top||parseInt(j/2)-(z.height/2);h.inline=false;h.mce_width=z.width;h.mce_height=z.height;h.mce_auto_focus=z.auto_focus;if(i){if(c){z.center=true;z.help=false;z.dialogWidth=z.width+"px";z.dialogHeight=z.height+"px";z.scroll=z.scrollbars||false}}e(z,function(p,f){if(d.is(p,"boolean")){p=p?"yes":"no"}if(!/^(name|url)$/.test(f)){if(c&&i){k+=(k?";":"")+f+":"+p}else{k+=(k?",":"")+f+"="+p}}});v.features=z;v.params=h;v.onOpen.dispatch(v,z,h);r=z.url||z.file;r=d._addVer(r);try{if(c&&i){q=1;window.showModalDialog(r,window,k)}else{q=window.open(r,z.name,k)}}catch(l){}if(!q){alert(v.editor.getLang("popup_blocked"))}},close:function(f){f.close();this.onClose.dispatch(this)},createInstance:function(i,h,g,m,l,k){var j=d.resolve(i);return new j(h,g,m,l,k)},confirm:function(h,f,i,g){g=g||window;f.call(i||this,g.confirm(this._decode(this.editor.getLang(h,h))))},alert:function(h,f,j,g){var i=this;g=g||window;g.alert(i._decode(i.editor.getLang(h,h)));if(f){f.call(j||i)}},resizeBy:function(f,g,h){h.resizeBy(f,g)},_decode:function(f){return d.DOM.decode(f).replace(/\\n/g,"\n")}})}(tinymce));(function(a){a.Formatter=function(V){var M={},P=a.each,c=V.dom,q=V.selection,t=a.dom.TreeWalker,K=new a.dom.RangeUtils(c),d=V.schema.isValidChild,F=c.isBlock,l=V.settings.forced_root_block,s=c.nodeIndex,E="\uFEFF",e=/^(src|href|style)$/,S=false,B=true,p;function z(W){return W instanceof Array}function m(X,W){return c.getParents(X,W,c.getRoot())}function b(W){return W.nodeType===1&&W.id==="_mce_caret"}function R(W){return W?M[W]:M}function k(W,X){if(W){if(typeof(W)!=="string"){P(W,function(Z,Y){k(Y,Z)})}else{X=X.length?X:[X];P(X,function(Y){if(Y.deep===p){Y.deep=!Y.selector}if(Y.split===p){Y.split=!Y.selector||Y.inline}if(Y.remove===p&&Y.selector&&!Y.inline){Y.remove="none"}if(Y.selector&&Y.inline){Y.mixed=true;Y.block_expand=true}if(typeof(Y.classes)==="string"){Y.classes=Y.classes.split(/\s+/)}});M[W]=X}}}var i=function(X){var W;V.dom.getParent(X,function(Y){W=V.dom.getStyle(Y,"text-decoration");return W&&W!=="none"});return W};var I=function(W){var X;if(W.nodeType===1&&W.parentNode&&W.parentNode.nodeType===1){X=i(W.parentNode);if(V.dom.getStyle(W,"color")&&X){V.dom.setStyle(W,"text-decoration",X)}else{if(V.dom.getStyle(W,"textdecoration")===X){V.dom.setStyle(W,"text-decoration",null)}}}};function T(Z,ag,ab){var ac=R(Z),ah=ac[0],af,X,ae,ad=q.isCollapsed();function W(al,ak){ak=ak||ah;if(al){if(ak.onformat){ak.onformat(al,ak,ag,ab)}P(ak.styles,function(an,am){c.setStyle(al,am,r(an,ag))});P(ak.attributes,function(an,am){c.setAttrib(al,am,r(an,ag))});P(ak.classes,function(am){am=r(am,ag);if(!c.hasClass(al,am)){c.addClass(al,am)}})}}function aa(){function am(at,aq){var ar=new t(aq);for(ab=ar.current();ab;ab=ar.prev()){if(ab.childNodes.length>1||ab==at){return ab}}}var al=V.selection.getRng();var ap=al.startContainer;var ak=al.endContainer;if(ap!=ak&&al.endOffset==0){var ao=am(ap,ak);var an=ao.nodeType==3?ao.length:ao.childNodes.length;al.setEnd(ao,an)}return al}function Y(an,at,aq,ap,al){var ak=[],am=-1,ar,av=-1,ao=-1,au;P(an.childNodes,function(ax,aw){if(ax.nodeName==="UL"||ax.nodeName==="OL"){am=aw;ar=ax;return false}});P(an.childNodes,function(ax,aw){if(ax.nodeName==="SPAN"&&c.getAttrib(ax,"data-mce-type")=="bookmark"){if(ax.id==at.id+"_start"){av=aw}else{if(ax.id==at.id+"_end"){ao=aw}}}});if(am<=0||(av<am&&ao>am)){P(a.grep(an.childNodes),al);return 0}else{au=aq.cloneNode(S);P(a.grep(an.childNodes),function(ax,aw){if((av<am&&aw<am)||(av>am&&aw>am)){ak.push(ax);ax.parentNode.removeChild(ax)}});if(av<am){an.insertBefore(au,ar)}else{if(av>am){an.insertBefore(au,ar.nextSibling)}}ap.push(au);P(ak,function(aw){au.appendChild(aw)});return au}}function ai(al,an,ap){var ak=[],ao,am;ao=ah.inline||ah.block;am=c.create(ao);W(am);K.walk(al,function(aq){var ar;function at(au){var ax=au.nodeName.toLowerCase(),aw=au.parentNode.nodeName.toLowerCase(),av;if(g(ax,"br")){ar=0;if(ah.block){c.remove(au)}return}if(ah.wrapper&&x(au,Z,ag)){ar=0;return}if(ah.block&&!ah.wrapper&&G(ax)){au=c.rename(au,ao);W(au);ak.push(au);ar=0;return}if(ah.selector){P(ac,function(ay){if("collapsed" in ay&&ay.collapsed!==ad){return}if(c.is(au,ay.selector)&&!b(au)){W(au,ay);av=true}});if(!ah.inline||av){ar=0;return}}if(d(ao,ax)&&d(aw,ao)&&!(!ap&&au.nodeType===3&&au.nodeValue.length===1&&au.nodeValue.charCodeAt(0)===65279)&&!b(au)){if(!ar){ar=am.cloneNode(S);au.parentNode.insertBefore(ar,au);ak.push(ar)}ar.appendChild(au)}else{if(ax=="li"&&an){ar=Y(au,an,am,ak,at)}else{ar=0;P(a.grep(au.childNodes),at);ar=0}}}P(aq,at)});if(ah.wrap_links===false){P(ak,function(aq){function ar(aw){var av,au,at;if(aw.nodeName==="A"){au=am.cloneNode(S);ak.push(au);at=a.grep(aw.childNodes);for(av=0;av<at.length;av++){au.appendChild(at[av])}aw.appendChild(au)}P(a.grep(aw.childNodes),ar)}ar(aq)})}P(ak,function(at){var aq;function au(aw){var av=0;P(aw.childNodes,function(ax){if(!f(ax)&&!H(ax)){av++}});return av}function ar(av){var ax,aw;P(av.childNodes,function(ay){if(ay.nodeType==1&&!H(ay)&&!b(ay)){ax=ay;return S}});if(ax&&h(ax,ah)){aw=ax.cloneNode(S);W(aw);c.replace(aw,av,B);c.remove(ax,1)}return aw||av}aq=au(at);if((ak.length>1||!F(at))&&aq===0){c.remove(at,1);return}if(ah.inline||ah.wrapper){if(!ah.exact&&aq===1){at=ar(at)}P(ac,function(av){P(c.select(av.inline,at),function(ax){var aw;if(av.wrap_links===false){aw=ax.parentNode;do{if(aw.nodeName==="A"){return}}while(aw=aw.parentNode)}U(av,ag,ax,av.exact?ax:null)})});if(x(at.parentNode,Z,ag)){c.remove(at,1);at=0;return B}if(ah.merge_with_parents){c.getParent(at.parentNode,function(av){if(x(av,Z,ag)){c.remove(at,1);at=0;return B}})}if(at&&ah.merge_siblings!==false){at=u(C(at),at);at=u(at,C(at,B))}}})}if(ah){if(ab){if(ab.nodeType){X=c.createRng();X.setStartBefore(ab);X.setEndAfter(ab);ai(o(X,ac),null,true)}else{ai(ab,null,true)}}else{if(!ad||!ah.inline||c.select("td.mceSelected,th.mceSelected").length){var aj=V.selection.getNode();V.selection.setRng(aa());af=q.getBookmark();ai(o(q.getRng(B),ac),af);if(ah.styles&&(ah.styles.color||ah.styles.textDecoration)){a.walk(aj,I,"childNodes");I(aj)}q.moveToBookmark(af);N(q.getRng(B));V.nodeChanged()}else{Q("apply",Z,ag)}}}}function A(Y,ag,aa){var ab=R(Y),ai=ab[0],af,ae,X;function Z(an){var am,al,ak;am=a.grep(an.childNodes);for(al=0,ak=ab.length;al<ak;al++){if(U(ab[al],ag,an,an)){break}}if(ai.deep){for(al=0,ak=am.length;al<ak;al++){Z(am[al])}}}function ac(ak){var al;P(m(ak.parentNode).reverse(),function(am){var an;if(!al&&am.id!="_start"&&am.id!="_end"){an=x(am,Y,ag);if(an&&an.split!==false){al=am}}});return al}function W(an,ak,ap,at){var au,ar,aq,am,ao,al;if(an){al=an.parentNode;for(au=ak.parentNode;au&&au!=al;au=au.parentNode){ar=au.cloneNode(S);for(ao=0;ao<ab.length;ao++){if(U(ab[ao],ag,ar,ar)){ar=0;break}}if(ar){if(aq){ar.appendChild(aq)}if(!am){am=ar}aq=ar}}if(at&&(!ai.mixed||!F(an))){ak=c.split(an,ak)}if(aq){ap.parentNode.insertBefore(aq,ap);am.appendChild(ap)}}return ak}function ah(ak){return W(ac(ak),ak,ak,true)}function ad(am){var al=c.get(am?"_start":"_end"),ak=al[am?"firstChild":"lastChild"];if(H(ak)){ak=ak[am?"firstChild":"lastChild"]}c.remove(al,true);return ak}function aj(ak){var al,am;ak=o(ak,ab,B);if(ai.split){al=J(ak,B);am=J(ak);if(al!=am){al=O(al,"span",{id:"_start","data-mce-type":"bookmark"});am=O(am,"span",{id:"_end","data-mce-type":"bookmark"});ah(al);ah(am);al=ad(B);am=ad()}else{al=am=ah(al)}ak.startContainer=al.parentNode;ak.startOffset=s(al);ak.endContainer=am.parentNode;ak.endOffset=s(am)+1}K.walk(ak,function(an){P(an,function(ao){Z(ao);if(ao.nodeType===1&&V.dom.getStyle(ao,"text-decoration")==="underline"&&ao.parentNode&&i(ao.parentNode)==="underline"){U({deep:false,exact:true,inline:"span",styles:{textDecoration:"underline"}},null,ao)}})})}if(aa){if(aa.nodeType){X=c.createRng();X.setStartBefore(aa);X.setEndAfter(aa);aj(X)}else{aj(aa)}return}if(!q.isCollapsed()||!ai.inline||c.select("td.mceSelected,th.mceSelected").length){af=q.getBookmark();aj(q.getRng(B));q.moveToBookmark(af);if(ai.inline&&j(Y,ag,q.getStart())){N(q.getRng(true))}V.nodeChanged()}else{Q("remove",Y,ag)}if(a.isWebKit){V.execCommand("mceCleanup")}}function D(X,Z,Y){var W=R(X);if(j(X,Z,Y)&&(!("toggle" in W[0])||W[0]["toggle"])){A(X,Z,Y)}else{T(X,Z,Y)}}function x(X,W,ac,aa){var Y=R(W),ad,ab,Z;function ae(ai,ak,al){var ah,aj,af=ak[al],ag;if(ak.onmatch){return ak.onmatch(ai,ak,al)}if(af){if(af.length===p){for(ah in af){if(af.hasOwnProperty(ah)){if(al==="attributes"){aj=c.getAttrib(ai,ah)}else{aj=L(ai,ah)}if(aa&&!aj&&!ak.exact){return}if((!aa||ak.exact)&&!g(aj,r(af[ah],ac))){return}}}}else{for(ag=0;ag<af.length;ag++){if(al==="attributes"?c.getAttrib(ai,af[ag]):L(ai,af[ag])){return ak}}}}return ak}if(Y&&X){for(ab=0;ab<Y.length;ab++){ad=Y[ab];if(h(X,ad)&&ae(X,ad,"attributes")&&ae(X,ad,"styles")){if(Z=ad.classes){for(ab=0;ab<Z.length;ab++){if(!c.hasClass(X,Z[ab])){return}}}return ad}}}}function j(Y,aa,Z){var X;function W(ab){ab=c.getParent(ab,function(ac){return !!x(ac,Y,aa,true)});return x(ab,Y,aa)}if(Z){return W(Z)}Z=q.getNode();if(W(Z)){return B}X=q.getStart();if(X!=Z){if(W(X)){return B}}return S}function v(ad,ac){var aa,ab=[],Z={},Y,X,W;aa=q.getStart();c.getParent(aa,function(ag){var af,ae;for(af=0;af<ad.length;af++){ae=ad[af];if(!Z[ae]&&x(ag,ae,ac)){Z[ae]=true;ab.push(ae)}}});return ab}function y(aa){var ac=R(aa),Z,Y,ab,X,W;if(ac){Z=q.getStart();Y=m(Z);for(X=ac.length-1;X>=0;X--){W=ac[X].selector;if(!W){return B}for(ab=Y.length-1;ab>=0;ab--){if(c.is(Y[ab],W)){return B}}}}return S}a.extend(this,{get:R,register:k,apply:T,remove:A,toggle:D,match:j,matchAll:v,matchNode:x,canApply:y});function h(W,X){if(g(W,X.inline)){return B}if(g(W,X.block)){return B}if(X.selector){return c.is(W,X.selector)}}function g(X,W){X=X||"";W=W||"";X=""+(X.nodeName||X);W=""+(W.nodeName||W);return X.toLowerCase()==W.toLowerCase()}function L(X,W){var Y=c.getStyle(X,W);if(W=="color"||W=="backgroundColor"){Y=c.toHex(Y)}if(W=="fontWeight"&&Y==700){Y="bold"}return""+Y}function r(W,X){if(typeof(W)!="string"){W=W(X)}else{if(X){W=W.replace(/%(\w+)/g,function(Z,Y){return X[Y]||Z})}}return W}function f(W){return W&&W.nodeType===3&&/^([\t \r\n]+|)$/.test(W.nodeValue)}function O(Y,X,W){var Z=c.create(X,W);Y.parentNode.insertBefore(Z,Y);Z.appendChild(Y);return Z}function o(W,ai,Z){var Y=W.startContainer,ad=W.startOffset,al=W.endContainer,af=W.endOffset,ak,ah,ac,ag;function aj(ar){var am,ap,aq,ao,an;am=ap=ar?Y:al;an=ar?"previousSibling":"nextSibling";root=c.getRoot();if(am.nodeType==3&&!f(am)){if(ar?ad>0:af<am.nodeValue.length){return am}}for(;;){if(!ai[0].block_expand&&F(ap)){return ap}for(ao=ap[an];ao;ao=ao[an]){if(!H(ao)&&!f(ao)){return ap}}if(ap.parentNode==root){am=ap;break}ap=ap.parentNode}return am}function ab(am,an){if(an===p){an=am.nodeType===3?am.length:am.childNodes.length}while(am&&am.hasChildNodes()){am=am.childNodes[an];if(am){an=am.nodeType===3?am.length:am.childNodes.length}}return{node:am,offset:an}}if(Y.nodeType==1&&Y.hasChildNodes()){ah=Y.childNodes.length-1;Y=Y.childNodes[ad>ah?ah:ad];if(Y.nodeType==3){ad=0}}if(al.nodeType==1&&al.hasChildNodes()){ah=al.childNodes.length-1;al=al.childNodes[af>ah?ah:af-1];if(al.nodeType==3){af=al.nodeValue.length}}if(H(Y.parentNode)||H(Y)){Y=H(Y)?Y:Y.parentNode;Y=Y.nextSibling||Y;if(Y.nodeType==3){ad=0}}if(H(al.parentNode)||H(al)){al=H(al)?al:al.parentNode;al=al.previousSibling||al;if(al.nodeType==3){af=al.length}}if(ai[0].inline){if(W.collapsed){function ae(an,ar,au){var aq,ao,at,am;function ap(aw,ay){var az,av,ax=aw.nodeValue;if(typeof(ay)=="undefined"){ay=au?ax.length:0}if(au){az=ax.lastIndexOf(" ",ay);av=ax.lastIndexOf("\u00a0",ay);az=az>av?az:av;if(az!==-1&&!Z){az++}}else{az=ax.indexOf(" ",ay);av=ax.indexOf("\u00a0",ay);az=az!==-1&&(av===-1||az<av)?az:av}return az}if(an.nodeType===3){at=ap(an,ar);if(at!==-1){return{container:an,offset:at}}am=an}aq=new t(an,c.getParent(an,F)||V.getBody());while(ao=aq[au?"prev":"next"]()){if(ao.nodeType===3){am=ao;at=ap(ao);if(at!==-1){return{container:ao,offset:at}}}else{if(F(ao)){break}}}if(am){if(au){ar=0}else{ar=am.length}return{container:am,offset:ar}}}ag=ae(Y,ad,true);if(ag){Y=ag.container;ad=ag.offset}ag=ae(al,af);if(ag){al=ag.container;af=ag.offset}}ac=ab(al,af);if(ac.node){while(ac.node&&ac.offset===0&&ac.node.previousSibling){ac=ab(ac.node.previousSibling)}if(ac.node&&ac.offset>0&&ac.node.nodeType===3&&ac.node.nodeValue.charAt(ac.offset-1)===" "){if(ac.offset>1){al=ac.node;al.splitText(ac.offset-1)}else{if(ac.node.previousSibling){}}}}}if(ai[0].inline||ai[0].block_expand){if(!ai[0].inline||(Y.nodeType!=3||ad===0)){Y=aj(true)}if(!ai[0].inline||(al.nodeType!=3||af===al.nodeValue.length)){al=aj()}}if(ai[0].selector&&ai[0].expand!==S&&!ai[0].inline){function aa(an,am){var ao,ap,ar,aq;if(an.nodeType==3&&an.nodeValue.length==0&&an[am]){an=an[am]}ao=m(an);for(ap=0;ap<ao.length;ap++){for(ar=0;ar<ai.length;ar++){aq=ai[ar];if("collapsed" in aq&&aq.collapsed!==W.collapsed){continue}if(c.is(ao[ap],aq.selector)){return ao[ap]}}}return an}Y=aa(Y,"previousSibling");al=aa(al,"nextSibling")}if(ai[0].block||ai[0].selector){function X(an,am,ap){var ao;if(!ai[0].wrapper){ao=c.getParent(an,ai[0].block)}if(!ao){ao=c.getParent(an.nodeType==3?an.parentNode:an,F)}if(ao&&ai[0].wrapper){ao=m(ao,"ul,ol").reverse()[0]||ao}if(!ao){ao=an;while(ao[am]&&!F(ao[am])){ao=ao[am];if(g(ao,"br")){break}}}return ao||an}Y=X(Y,"previousSibling");al=X(al,"nextSibling");if(ai[0].block){if(!F(Y)){Y=aj(true)}if(!F(al)){al=aj()}}}if(Y.nodeType==1){ad=s(Y);Y=Y.parentNode}if(al.nodeType==1){af=s(al)+1;al=al.parentNode}return{startContainer:Y,startOffset:ad,endContainer:al,endOffset:af}}function U(ac,ab,Z,W){var Y,X,aa;if(!h(Z,ac)){return S}if(ac.remove!="all"){P(ac.styles,function(ae,ad){ae=r(ae,ab);if(typeof(ad)==="number"){ad=ae;W=0}if(!W||g(L(W,ad),ae)){c.setStyle(Z,ad,"")}aa=1});if(aa&&c.getAttrib(Z,"style")==""){Z.removeAttribute("style");Z.removeAttribute("data-mce-style")}P(ac.attributes,function(af,ad){var ae;af=r(af,ab);if(typeof(ad)==="number"){ad=af;W=0}if(!W||g(c.getAttrib(W,ad),af)){if(ad=="class"){af=c.getAttrib(Z,ad);if(af){ae="";P(af.split(/\s+/),function(ag){if(/mce\w+/.test(ag)){ae+=(ae?" ":"")+ag}});if(ae){c.setAttrib(Z,ad,ae);return}}}if(ad=="class"){Z.removeAttribute("className")}if(e.test(ad)){Z.removeAttribute("data-mce-"+ad)}Z.removeAttribute(ad)}});P(ac.classes,function(ad){ad=r(ad,ab);if(!W||c.hasClass(W,ad)){c.removeClass(Z,ad)}});X=c.getAttribs(Z);for(Y=0;Y<X.length;Y++){if(X[Y].nodeName.indexOf("_")!==0){return S}}}if(ac.remove!="none"){n(Z,ac);return B}}function n(Y,Z){var W=Y.parentNode,X;if(Z.block){if(!l){function aa(ac,ab,ad){ac=C(ac,ab,ad);return !ac||(ac.nodeName=="BR"||F(ac))}if(F(Y)&&!F(W)){if(!aa(Y,S)&&!aa(Y.firstChild,B,1)){Y.insertBefore(c.create("br"),Y.firstChild)}if(!aa(Y,B)&&!aa(Y.lastChild,S,1)){Y.appendChild(c.create("br"))}}}else{if(W==c.getRoot()){if(!Z.list_block||!g(Y,Z.list_block)){P(a.grep(Y.childNodes),function(ab){if(d(l,ab.nodeName.toLowerCase())){if(!X){X=O(ab,l)}else{X.appendChild(ab)}}else{X=0}})}}}}if(Z.selector&&Z.inline&&!g(Z.inline,Y)){return}c.remove(Y,1)}function C(X,W,Y){if(X){W=W?"nextSibling":"previousSibling";for(X=Y?X:X[W];X;X=X[W]){if(X.nodeType==1||!f(X)){return X}}}}function H(W){return W&&W.nodeType==1&&W.getAttribute("data-mce-type")=="bookmark"}function u(aa,Z){var W,Y,X;function ac(af,ae){if(af.nodeName!=ae.nodeName){return S}function ad(ah){var ai={};P(c.getAttribs(ah),function(aj){var ak=aj.nodeName.toLowerCase();if(ak.indexOf("_")!==0&&ak!=="style"){ai[ak]=c.getAttrib(ah,ak)}});return ai}function ag(ak,aj){var ai,ah;for(ah in ak){if(ak.hasOwnProperty(ah)){ai=aj[ah];if(ai===p){return S}if(ak[ah]!=ai){return S}delete aj[ah]}}for(ah in aj){if(aj.hasOwnProperty(ah)){return S}}return B}if(!ag(ad(af),ad(ae))){return S}if(!ag(c.parseStyle(c.getAttrib(af,"style")),c.parseStyle(c.getAttrib(ae,"style")))){return S}return B}if(aa&&Z){function ab(ae,ad){for(Y=ae;Y;Y=Y[ad]){if(Y.nodeType==3&&Y.nodeValue.length!==0){return ae}if(Y.nodeType==1&&!H(Y)){return Y}}return ae}aa=ab(aa,"previousSibling");Z=ab(Z,"nextSibling");if(ac(aa,Z)){for(Y=aa.nextSibling;Y&&Y!=Z;){X=Y;Y=Y.nextSibling;aa.appendChild(X)}c.remove(Z);P(a.grep(Z.childNodes),function(ad){aa.appendChild(ad)});return aa}}return Z}function G(W){return/^(h[1-6]|p|div|pre|address|dl|dt|dd)$/.test(W)}function J(X,ab){var W,aa,Y,Z;W=X[ab?"startContainer":"endContainer"];aa=X[ab?"startOffset":"endOffset"];if(W.nodeType==1){Y=W.childNodes.length-1;if(!ab&&aa){aa--}W=W.childNodes[aa>Y?Y:aa]}if(W.nodeType===3&&ab&&aa>=W.nodeValue.length){W=new t(W,V.getBody()).next()||W}if(W.nodeType===3&&!ab&&aa==0){W=new t(W,V.getBody()).prev()||W}return W}function Q(af,W,ad){var ai,ag="_mce_caret",X=V.settings.caret_debug;ai=a.isGecko?"\u200B":E;function Y(ak){var aj=c.create("span",{id:ag,"data-mce-bogus":true,style:X?"color:red":""});if(ak){aj.appendChild(V.getDoc().createTextNode(ai))}return aj}function ae(ak,aj){while(ak){if((ak.nodeType===3&&ak.nodeValue!==ai)||ak.childNodes.length>1){return false}if(aj&&ak.nodeType===1){aj.push(ak)}ak=ak.firstChild}return true}function ab(aj){while(aj){if(aj.id===ag){return aj}aj=aj.parentNode}}function aa(aj){var ak;if(aj){ak=new t(aj,aj);for(aj=ak.current();aj;aj=ak.next()){if(aj.nodeType===3){return aj}}}}function Z(al,ak){var am,aj;if(!al){al=ab(q.getStart());if(!al){while(al=c.get(ag)){Z(al,false)}}}else{aj=q.getRng(true);if(ae(al)){if(ak!==false){aj.setStartBefore(al);aj.setEndBefore(al)}c.remove(al)}else{am=aa(al);if(am.nodeValue.charAt(0)===E){am=am.deleteData(0,1)}c.remove(al,1)}q.setRng(aj)}}function ac(){var al,aj,ap,ao,am,ak,an;al=q.getRng(true);ao=al.startOffset;ak=al.startContainer;an=ak.nodeValue;aj=ab(q.getStart());if(aj){ap=aa(aj)}if(an&&ao>0&&ao<an.length&&/\w/.test(an.charAt(ao))&&/\w/.test(an.charAt(ao-1))){am=q.getBookmark();al.collapse(true);al=o(al,R(W));al=K.split(al);T(W,ad,al);q.moveToBookmark(am)}else{if(!aj||ap.nodeValue!==ai){aj=Y(true);ap=aj.firstChild;al.insertNode(aj);ao=1;T(W,ad,aj)}else{T(W,ad,aj)}q.setCursorLocation(ap,ao)}}function ah(){var aj=q.getRng(true),ak,am,ap,ao,al,at,ar=[],an,aq;ak=aj.startContainer;am=aj.startOffset;al=ak;if(ak.nodeType==3){if(am!=ak.nodeValue.length||ak.nodeValue===ai){ao=true}al=al.parentNode}while(al){if(x(al,W,ad)){at=al;break}if(al.nextSibling){ao=true}ar.push(al);al=al.parentNode}if(!at){return}if(ao){ap=q.getBookmark();aj.collapse(true);aj=o(aj,R(W),true);aj=K.split(aj);A(W,ad,aj);q.moveToBookmark(ap)}else{aq=Y();al=aq;for(an=ar.length-1;an>=0;an--){al.appendChild(ar[an].cloneNode(false));al=al.firstChild}al.appendChild(c.doc.createTextNode(ai));al=al.firstChild;c.insertAfter(aq,at);q.setCursorLocation(al,1)}}if(!self._hasCaretEvents){V.onBeforeGetContent.addToTop(function(){var aj=[],ak;if(ae(ab(q.getStart()),aj)){ak=aj.length;while(ak--){c.setAttrib(aj[ak],"data-mce-bogus","1")}}});a.each("onMouseUp onKeyUp".split(" "),function(aj){V[aj].addToTop(function(){Z()})});V.onKeyDown.addToTop(function(aj,al){var ak=al.keyCode;if(ak==8||ak==37||ak==39){Z(ab(q.getStart()))}});self._hasCaretEvents=true}if(af=="apply"){ac()}else{ah()}}function N(X){var W=X.startContainer,ac=X.startOffset,ab,aa,Y,Z;if(W.nodeType==3&&ac>=W.nodeValue.length-1){W=W.parentNode;ac=s(W)+1}if(W.nodeType==1){Y=W.childNodes;W=Y[Math.min(ac,Y.length-1)];ab=new t(W);if(ac>Y.length-1){ab.next()}for(aa=ab.current();aa;aa=ab.next()){if(aa.nodeType==3&&!f(aa)){Z=c.create("a",null,E);aa.parentNode.insertBefore(Z,aa);X.setStart(aa,0);q.setRng(X);c.remove(Z);return}}}}}})(tinymce);tinymce.onAddEditor.add(function(e,a){var d,h,g,c=a.settings;if(c.inline_styles){h=e.explode(c.font_size_legacy_values);function b(j,i){e.each(i,function(l,k){if(l){g.setStyle(j,k,l)}});g.rename(j,"span")}d={font:function(j,i){b(i,{backgroundColor:i.style.backgroundColor,color:i.color,fontFamily:i.face,fontSize:h[parseInt(i.size)-1]})},u:function(j,i){b(i,{textDecoration:"underline"})},strike:function(j,i){b(i,{textDecoration:"line-through"})}};function f(i,j){g=i.dom;if(c.convert_fonts_to_spans){e.each(g.select("font,u,strike",j.node),function(k){d[k.nodeName.toLowerCase()](a.dom,k)})}}a.onPreProcess.add(f);a.onSetContent.add(f);a.onInit.add(function(){a.selection.onSetContent.add(f)})}});
+(function(e){var a=/^\s*|\s*$/g,b,d="B".replace(/A(.)|B/,"$1")==="$1";var c={majorVersion:"3",minorVersion:"5.8",releaseDate:"2012-11-20",_init:function(){var s=this,q=document,o=navigator,g=o.userAgent,m,f,l,k,j,r;s.isOpera=e.opera&&opera.buildNumber;s.isWebKit=/WebKit/.test(g);s.isIE=!s.isWebKit&&!s.isOpera&&(/MSIE/gi).test(g)&&(/Explorer/gi).test(o.appName);s.isIE6=s.isIE&&/MSIE [56]/.test(g);s.isIE7=s.isIE&&/MSIE [7]/.test(g);s.isIE8=s.isIE&&/MSIE [8]/.test(g);s.isIE9=s.isIE&&/MSIE [9]/.test(g);s.isGecko=!s.isWebKit&&/Gecko/.test(g);s.isMac=g.indexOf("Mac")!=-1;s.isAir=/adobeair/i.test(g);s.isIDevice=/(iPad|iPhone)/.test(g);s.isIOS5=s.isIDevice&&g.match(/AppleWebKit\/(\d*)/)[1]>=534;if(e.tinyMCEPreInit){s.suffix=tinyMCEPreInit.suffix;s.baseURL=tinyMCEPreInit.base;s.query=tinyMCEPreInit.query;return}s.suffix="";f=q.getElementsByTagName("base");for(m=0;m<f.length;m++){r=f[m].href;if(r){if(/^https?:\/\/[^\/]+$/.test(r)){r+="/"}k=r?r.match(/.*\//)[0]:""}}function h(i){if(i.src&&/tiny_mce(|_gzip|_jquery|_prototype|_full)(_dev|_src)?.js/.test(i.src)){if(/_(src|dev)\.js/g.test(i.src)){s.suffix="_src"}if((j=i.src.indexOf("?"))!=-1){s.query=i.src.substring(j+1)}s.baseURL=i.src.substring(0,i.src.lastIndexOf("/"));if(k&&s.baseURL.indexOf("://")==-1&&s.baseURL.indexOf("/")!==0){s.baseURL=k+s.baseURL}return s.baseURL}return null}f=q.getElementsByTagName("script");for(m=0;m<f.length;m++){if(h(f[m])){return}}l=q.getElementsByTagName("head")[0];if(l){f=l.getElementsByTagName("script");for(m=0;m<f.length;m++){if(h(f[m])){return}}}return},is:function(g,f){if(!f){return g!==b}if(f=="array"&&c.isArray(g)){return true}return typeof(g)==f},isArray:Array.isArray||function(f){return Object.prototype.toString.call(f)==="[object Array]"},makeMap:function(f,j,h){var g;f=f||[];j=j||",";if(typeof(f)=="string"){f=f.split(j)}h=h||{};g=f.length;while(g--){h[f[g]]={}}return h},each:function(i,f,h){var j,g;if(!i){return 0}h=h||i;if(i.length!==b){for(j=0,g=i.length;j<g;j++){if(f.call(h,i[j],j,i)===false){return 0}}}else{for(j in i){if(i.hasOwnProperty(j)){if(f.call(h,i[j],j,i)===false){return 0}}}}return 1},map:function(g,h){var i=[];c.each(g,function(f){i.push(h(f))});return i},grep:function(g,h){var i=[];c.each(g,function(f){if(!h||h(f)){i.push(f)}});return i},inArray:function(g,h){var j,f;if(g){for(j=0,f=g.length;j<f;j++){if(g[j]===h){return j}}}return -1},extend:function(n,k){var j,f,h,g=arguments,m;for(j=1,f=g.length;j<f;j++){k=g[j];for(h in k){if(k.hasOwnProperty(h)){m=k[h];if(m!==b){n[h]=m}}}}return n},trim:function(f){return(f?""+f:"").replace(a,"")},create:function(o,f,j){var n=this,g,i,k,l,h,m=0;o=/^((static) )?([\w.]+)(:([\w.]+))?/.exec(o);k=o[3].match(/(^|\.)(\w+)$/i)[2];i=n.createNS(o[3].replace(/\.\w+$/,""),j);if(i[k]){return}if(o[2]=="static"){i[k]=f;if(this.onCreate){this.onCreate(o[2],o[3],i[k])}return}if(!f[k]){f[k]=function(){};m=1}i[k]=f[k];n.extend(i[k].prototype,f);if(o[5]){g=n.resolve(o[5]).prototype;l=o[5].match(/\.(\w+)$/i)[1];h=i[k];if(m){i[k]=function(){return g[l].apply(this,arguments)}}else{i[k]=function(){this.parent=g[l];return h.apply(this,arguments)}}i[k].prototype[k]=i[k];n.each(g,function(p,q){i[k].prototype[q]=g[q]});n.each(f,function(p,q){if(g[q]){i[k].prototype[q]=function(){this.parent=g[q];return p.apply(this,arguments)}}else{if(q!=k){i[k].prototype[q]=p}}})}n.each(f["static"],function(p,q){i[k][q]=p});if(this.onCreate){this.onCreate(o[2],o[3],i[k].prototype)}},walk:function(i,h,j,g){g=g||this;if(i){if(j){i=i[j]}c.each(i,function(k,f){if(h.call(g,k,f,j)===false){return false}c.walk(k,h,j,g)})}},createNS:function(j,h){var g,f;h=h||e;j=j.split(".");for(g=0;g<j.length;g++){f=j[g];if(!h[f]){h[f]={}}h=h[f]}return h},resolve:function(j,h){var g,f;h=h||e;j=j.split(".");for(g=0,f=j.length;g<f;g++){h=h[j[g]];if(!h){break}}return h},addUnload:function(j,i){var h=this,g;g=function(){var f=h.unloads,l,m;if(f){for(m in f){l=f[m];if(l&&l.func){l.func.call(l.scope,1)}}if(e.detachEvent){e.detachEvent("onbeforeunload",k);e.detachEvent("onunload",g)}else{if(e.removeEventListener){e.removeEventListener("unload",g,false)}}h.unloads=l=f=w=g=0;if(e.CollectGarbage){CollectGarbage()}}};function k(){var l=document;function f(){l.detachEvent("onstop",f);if(g){g()}l=0}if(l.readyState=="interactive"){if(l){l.attachEvent("onstop",f)}e.setTimeout(function(){if(l){l.detachEvent("onstop",f)}},0)}}j={func:j,scope:i||this};if(!h.unloads){if(e.attachEvent){e.attachEvent("onunload",g);e.attachEvent("onbeforeunload",k)}else{if(e.addEventListener){e.addEventListener("unload",g,false)}}h.unloads=[j]}else{h.unloads.push(j)}return j},removeUnload:function(i){var g=this.unloads,h=null;c.each(g,function(j,f){if(j&&j.func==i){g.splice(f,1);h=i;return false}});return h},explode:function(f,g){if(!f||c.is(f,"array")){return f}return c.map(f.split(g||","),c.trim)},_addVer:function(g){var f;if(!this.query){return g}f=(g.indexOf("?")==-1?"?":"&")+this.query;if(g.indexOf("#")==-1){return g+f}return g.replace("#",f+"#")},_replace:function(h,f,g){if(d){return g.replace(h,function(){var l=f,j=arguments,k;for(k=0;k<j.length-2;k++){if(j[k]===b){l=l.replace(new RegExp("\\$"+k,"g"),"")}else{l=l.replace(new RegExp("\\$"+k,"g"),j[k])}}return l})}return g.replace(h,f)}};c._init();e.tinymce=e.tinyMCE=c})(window);tinymce.create("tinymce.util.Dispatcher",{scope:null,listeners:null,inDispatch:false,Dispatcher:function(a){this.scope=a||this;this.listeners=[]},add:function(b,a){this.listeners.push({cb:b,scope:a||this.scope});return b},addToTop:function(d,b){var a=this,c={cb:d,scope:b||a.scope};if(a.inDispatch){a.listeners=[c].concat(a.listeners)}else{a.listeners.unshift(c)}return d},remove:function(c){var b=this.listeners,a=null;tinymce.each(b,function(e,d){if(c==e.cb){a=e;b.splice(d,1);return false}});return a},dispatch:function(){var a=this,e,b=arguments,c,d=a.listeners,f;a.inDispatch=true;for(c=0;c<d.length;c++){f=d[c];e=f.cb.apply(f.scope,b.length>0?b:[f.scope]);if(e===false){break}}a.inDispatch=false;return e}});(function(){var a=tinymce.each;tinymce.create("tinymce.util.URI",{URI:function(e,g){var f=this,i,d,c,h;e=tinymce.trim(e);g=f.settings=g||{};if(/^([\w\-]+):([^\/]{2})/i.test(e)||/^\s*#/.test(e)){f.source=e;return}if(e.indexOf("/")===0&&e.indexOf("//")!==0){e=(g.base_uri?g.base_uri.protocol||"http":"http")+"://mce_host"+e}if(!/^[\w\-]*:?\/\//.test(e)){h=g.base_uri?g.base_uri.path:new tinymce.util.URI(location.href).directory;e=((g.base_uri&&g.base_uri.protocol)||"http")+"://mce_host"+f.toAbsPath(h,e)}e=e.replace(/@@/g,"(mce_at)");e=/^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/)?((?:(([^:@\/]*):?([^:@\/]*))?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/.exec(e);a(["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"],function(b,j){var k=e[j];if(k){k=k.replace(/\(mce_at\)/g,"@@")}f[b]=k});c=g.base_uri;if(c){if(!f.protocol){f.protocol=c.protocol}if(!f.userInfo){f.userInfo=c.userInfo}if(!f.port&&f.host==="mce_host"){f.port=c.port}if(!f.host||f.host==="mce_host"){f.host=c.host}f.source=""}},setPath:function(c){var b=this;c=/^(.*?)\/?(\w+)?$/.exec(c);b.path=c[0];b.directory=c[1];b.file=c[2];b.source="";b.getURI()},toRelative:function(b){var d=this,f;if(b==="./"){return b}b=new tinymce.util.URI(b,{base_uri:d});if((b.host!="mce_host"&&d.host!=b.host&&b.host)||d.port!=b.port||d.protocol!=b.protocol){return b.getURI()}var c=d.getURI(),e=b.getURI();if(c==e||(c.charAt(c.length-1)=="/"&&c.substr(0,c.length-1)==e)){return c}f=d.toRelPath(d.path,b.path);if(b.query){f+="?"+b.query}if(b.anchor){f+="#"+b.anchor}return f},toAbsolute:function(b,c){b=new tinymce.util.URI(b,{base_uri:this});return b.getURI(this.host==b.host&&this.protocol==b.protocol?c:0)},toRelPath:function(g,h){var c,f=0,d="",e,b;g=g.substring(0,g.lastIndexOf("/"));g=g.split("/");c=h.split("/");if(g.length>=c.length){for(e=0,b=g.length;e<b;e++){if(e>=c.length||g[e]!=c[e]){f=e+1;break}}}if(g.length<c.length){for(e=0,b=c.length;e<b;e++){if(e>=g.length||g[e]!=c[e]){f=e+1;break}}}if(f===1){return h}for(e=0,b=g.length-(f-1);e<b;e++){d+="../"}for(e=f-1,b=c.length;e<b;e++){if(e!=f-1){d+="/"+c[e]}else{d+=c[e]}}return d},toAbsPath:function(e,f){var c,b=0,h=[],d,g;d=/\/$/.test(f)?"/":"";e=e.split("/");f=f.split("/");a(e,function(i){if(i){h.push(i)}});e=h;for(c=f.length-1,h=[];c>=0;c--){if(f[c].length===0||f[c]==="."){continue}if(f[c]===".."){b++;continue}if(b>0){b--;continue}h.push(f[c])}c=e.length-b;if(c<=0){g=h.reverse().join("/")}else{g=e.slice(0,c).join("/")+"/"+h.reverse().join("/")}if(g.indexOf("/")!==0){g="/"+g}if(d&&g.lastIndexOf("/")!==g.length-1){g+=d}return g},getURI:function(d){var c,b=this;if(!b.source||d){c="";if(!d){if(b.protocol){c+=b.protocol+"://"}if(b.userInfo){c+=b.userInfo+"@"}if(b.host){c+=b.host}if(b.port){c+=":"+b.port}}if(b.path){c+=b.path}if(b.query){c+="?"+b.query}if(b.anchor){c+="#"+b.anchor}b.source=c}return b.source}})})();(function(){var a=tinymce.each;tinymce.create("static tinymce.util.Cookie",{getHash:function(d){var b=this.get(d),c;if(b){a(b.split("&"),function(e){e=e.split("=");c=c||{};c[unescape(e[0])]=unescape(e[1])})}return c},setHash:function(j,b,g,f,i,c){var h="";a(b,function(e,d){h+=(!h?"":"&")+escape(d)+"="+escape(e)});this.set(j,h,g,f,i,c)},get:function(i){var h=document.cookie,g,f=i+"=",d;if(!h){return}d=h.indexOf("; "+f);if(d==-1){d=h.indexOf(f);if(d!==0){return null}}else{d+=2}g=h.indexOf(";",d);if(g==-1){g=h.length}return unescape(h.substring(d+f.length,g))},set:function(i,b,g,f,h,c){document.cookie=i+"="+escape(b)+((g)?"; expires="+g.toGMTString():"")+((f)?"; path="+escape(f):"")+((h)?"; domain="+h:"")+((c)?"; secure":"")},remove:function(c,e,d){var b=new Date();b.setTime(b.getTime()-1000);this.set(c,"",b,e,d)}})})();(function(){function serialize(o,quote){var i,v,t,name;quote=quote||'"';if(o==null){return"null"}t=typeof o;if(t=="string"){v="\bb\tt\nn\ff\rr\"\"''\\\\";return quote+o.replace(/([\u0080-\uFFFF\x00-\x1f\"\'\\])/g,function(a,b){if(quote==='"'&&a==="'"){return a}i=v.indexOf(b);if(i+1){return"\\"+v.charAt(i+1)}a=b.charCodeAt().toString(16);return"\\u"+"0000".substring(a.length)+a})+quote}if(t=="object"){if(o.hasOwnProperty&&Object.prototype.toString.call(o)==="[object Array]"){for(i=0,v="[";i<o.length;i++){v+=(i>0?",":"")+serialize(o[i],quote)}return v+"]"}v="{";for(name in o){if(o.hasOwnProperty(name)){v+=typeof o[name]!="function"?(v.length>1?","+quote:quote)+name+quote+":"+serialize(o[name],quote):""}}return v+"}"}return""+o}tinymce.util.JSON={serialize:serialize,parse:function(s){try{return eval("("+s+")")}catch(ex){}}}})();tinymce.create("static tinymce.util.XHR",{send:function(g){var a,e,b=window,h=0;function f(){if(!g.async||a.readyState==4||h++>10000){if(g.success&&h<10000&&a.status==200){g.success.call(g.success_scope,""+a.responseText,a,g)}else{if(g.error){g.error.call(g.error_scope,h>10000?"TIMED_OUT":"GENERAL",a,g)}}a=null}else{b.setTimeout(f,10)}}g.scope=g.scope||this;g.success_scope=g.success_scope||g.scope;g.error_scope=g.error_scope||g.scope;g.async=g.async===false?false:true;g.data=g.data||"";function d(i){a=0;try{a=new ActiveXObject(i)}catch(c){}return a}a=b.XMLHttpRequest?new XMLHttpRequest():d("Microsoft.XMLHTTP")||d("Msxml2.XMLHTTP");if(a){if(a.overrideMimeType){a.overrideMimeType(g.content_type)}a.open(g.type||(g.data?"POST":"GET"),g.url,g.async);if(g.content_type){a.setRequestHeader("Content-Type",g.content_type)}a.setRequestHeader("X-Requested-With","XMLHttpRequest");a.send(g.data);if(!g.async){return f()}e=b.setTimeout(f,10)}}});(function(){var c=tinymce.extend,b=tinymce.util.JSON,a=tinymce.util.XHR;tinymce.create("tinymce.util.JSONRequest",{JSONRequest:function(d){this.settings=c({},d);this.count=0},send:function(f){var e=f.error,d=f.success;f=c(this.settings,f);f.success=function(h,g){h=b.parse(h);if(typeof(h)=="undefined"){h={error:"JSON Parse error."}}if(h.error){e.call(f.error_scope||f.scope,h.error,g)}else{d.call(f.success_scope||f.scope,h.result)}};f.error=function(h,g){if(e){e.call(f.error_scope||f.scope,h,g)}};f.data=b.serialize({id:f.id||"c"+(this.count++),method:f.method,params:f.params});f.content_type="application/json";a.send(f)},"static":{sendRPC:function(d){return new tinymce.util.JSONRequest().send(d)}}})}());(function(a){a.VK={BACKSPACE:8,DELETE:46,DOWN:40,ENTER:13,LEFT:37,RIGHT:39,SPACEBAR:32,TAB:9,UP:38,modifierPressed:function(b){return b.shiftKey||b.ctrlKey||b.altKey},metaKeyPressed:function(b){return a.isMac?b.metaKey:b.ctrlKey&&!b.altKey}}})(tinymce);tinymce.util.Quirks=function(a){var j=tinymce.VK,f=j.BACKSPACE,k=j.DELETE,e=a.dom,l=a.selection,H=a.settings,v=a.parser,o=a.serializer,E=tinymce.each;function A(N,M){try{a.getDoc().execCommand(N,false,M)}catch(L){}}function n(){var L=a.getDoc().documentMode;return L?L:6}function z(L){return L.isDefaultPrevented()}function J(){function L(O){var M,Q,N,P;M=l.getRng();Q=e.getParent(M.startContainer,e.isBlock);if(O){Q=e.getNext(Q,e.isBlock)}if(Q){N=Q.firstChild;while(N&&N.nodeType==3&&N.nodeValue.length===0){N=N.nextSibling}if(N&&N.nodeName==="SPAN"){P=N.cloneNode(false)}}E(e.select("span",Q),function(R){R.setAttribute("data-mce-mark","1")});a.getDoc().execCommand(O?"ForwardDelete":"Delete",false,null);Q=e.getParent(M.startContainer,e.isBlock);E(e.select("span",Q),function(R){var S=l.getBookmark();if(P){e.replace(P.cloneNode(false),R,true)}else{if(!R.getAttribute("data-mce-mark")){e.remove(R,true)}else{R.removeAttribute("data-mce-mark")}}l.moveToBookmark(S)})}a.onKeyDown.add(function(M,O){var N;N=O.keyCode==k;if(!z(O)&&(N||O.keyCode==f)&&!j.modifierPressed(O)){O.preventDefault();L(N)}});a.addCommand("Delete",function(){L()})}function q(){function L(O){var N=e.create("body");var P=O.cloneContents();N.appendChild(P);return l.serializer.serialize(N,{format:"html"})}function M(N){var P=L(N);var Q=e.createRng();Q.selectNode(a.getBody());var O=L(Q);return P===O}a.onKeyDown.add(function(O,Q){var P=Q.keyCode,N;if(!z(Q)&&(P==k||P==f)){N=O.selection.isCollapsed();if(N&&!e.isEmpty(O.getBody())){return}if(tinymce.isIE&&!N){return}if(!N&&!M(O.selection.getRng())){return}O.setContent("");O.selection.setCursorLocation(O.getBody(),0);O.nodeChanged()}})}function I(){a.onKeyDown.add(function(L,M){if(!z(M)&&M.keyCode==65&&j.metaKeyPressed(M)){M.preventDefault();L.execCommand("SelectAll")}})}function K(){if(!a.settings.content_editable){e.bind(a.getDoc(),"focusin",function(L){l.setRng(l.getRng())});e.bind(a.getDoc(),"mousedown",function(L){if(L.target==a.getDoc().documentElement){a.getWin().focus();l.setRng(l.getRng())}})}}function B(){a.onKeyDown.add(function(L,O){if(!z(O)&&O.keyCode===f){if(l.isCollapsed()&&l.getRng(true).startOffset===0){var N=l.getNode();var M=N.previousSibling;if(M&&M.nodeName&&M.nodeName.toLowerCase()==="hr"){e.remove(M);tinymce.dom.Event.cancel(O)}}}})}function y(){if(!Range.prototype.getClientRects){a.onMouseDown.add(function(M,N){if(!z(N)&&N.target.nodeName==="HTML"){var L=M.getBody();L.blur();setTimeout(function(){L.focus()},0)}})}}function h(){a.onClick.add(function(L,M){M=M.target;if(/^(IMG|HR)$/.test(M.nodeName)){l.getSel().setBaseAndExtent(M,0,M,1)}if(M.nodeName=="A"&&e.hasClass(M,"mceItemAnchor")){l.select(M)}L.nodeChanged()})}function c(){function M(){var O=e.getAttribs(l.getStart().cloneNode(false));return function(){var P=l.getStart();if(P!==a.getBody()){e.setAttrib(P,"style",null);E(O,function(Q){P.setAttributeNode(Q.cloneNode(true))})}}}function L(){return !l.isCollapsed()&&e.getParent(l.getStart(),e.isBlock)!=e.getParent(l.getEnd(),e.isBlock)}function N(O,P){P.preventDefault();return false}a.onKeyPress.add(function(O,Q){var P;if(!z(Q)&&(Q.keyCode==8||Q.keyCode==46)&&L()){P=M();O.getDoc().execCommand("delete",false,null);P();Q.preventDefault();return false}});e.bind(a.getDoc(),"cut",function(P){var O;if(!z(P)&&L()){O=M();a.onKeyUp.addToTop(N);setTimeout(function(){O();a.onKeyUp.remove(N)},0)}})}function b(){var M,L;e.bind(a.getDoc(),"selectionchange",function(){if(L){clearTimeout(L);L=0}L=window.setTimeout(function(){var N=l.getRng();if(!M||!tinymce.dom.RangeUtils.compareRanges(N,M)){a.nodeChanged();M=N}},50)})}function x(){document.body.setAttribute("role","application")}function t(){a.onKeyDown.add(function(L,N){if(!z(N)&&N.keyCode===f){if(l.isCollapsed()&&l.getRng(true).startOffset===0){var M=l.getNode().previousSibling;if(M&&M.nodeName&&M.nodeName.toLowerCase()==="table"){return tinymce.dom.Event.cancel(N)}}}})}function C(){if(n()>7){return}A("RespectVisibilityInDesign",true);a.contentStyles.push(".mceHideBrInPre pre br {display: none}");e.addClass(a.getBody(),"mceHideBrInPre");v.addNodeFilter("pre",function(L,N){var O=L.length,Q,M,R,P;while(O--){Q=L[O].getAll("br");M=Q.length;while(M--){R=Q[M];P=R.prev;if(P&&P.type===3&&P.value.charAt(P.value-1)!="\n"){P.value+="\n"}else{R.parent.insert(new tinymce.html.Node("#text",3),R,true).value="\n"}}}});o.addNodeFilter("pre",function(L,N){var O=L.length,Q,M,R,P;while(O--){Q=L[O].getAll("br");M=Q.length;while(M--){R=Q[M];P=R.prev;if(P&&P.type==3){P.value=P.value.replace(/\r?\n$/,"")}}}})}function g(){e.bind(a.getBody(),"mouseup",function(N){var M,L=l.getNode();if(L.nodeName=="IMG"){if(M=e.getStyle(L,"width")){e.setAttrib(L,"width",M.replace(/[^0-9%]+/g,""));e.setStyle(L,"width","")}if(M=e.getStyle(L,"height")){e.setAttrib(L,"height",M.replace(/[^0-9%]+/g,""));e.setStyle(L,"height","")}}})}function d(){a.onKeyDown.add(function(R,S){var Q,L,M,O,P,T,N;Q=S.keyCode==k;if(!z(S)&&(Q||S.keyCode==f)&&!j.modifierPressed(S)){L=l.getRng();M=L.startContainer;O=L.startOffset;N=L.collapsed;if(M.nodeType==3&&M.nodeValue.length>0&&((O===0&&!N)||(N&&O===(Q?0:1)))){nonEmptyElements=R.schema.getNonEmptyElements();S.preventDefault();P=e.create("br",{id:"__tmp"});M.parentNode.insertBefore(P,M);R.getDoc().execCommand(Q?"ForwardDelete":"Delete",false,null);M=l.getRng().startContainer;T=M.previousSibling;if(T&&T.nodeType==1&&!e.isBlock(T)&&e.isEmpty(T)&&!nonEmptyElements[T.nodeName.toLowerCase()]){e.remove(T)}e.remove("__tmp")}}})}function G(){a.onKeyDown.add(function(P,Q){var N,M,R,L,O;if(z(Q)||Q.keyCode!=j.BACKSPACE){return}N=l.getRng();M=N.startContainer;R=N.startOffset;L=e.getRoot();O=M;if(!N.collapsed||R!==0){return}while(O&&O.parentNode&&O.parentNode.firstChild==O&&O.parentNode!=L){O=O.parentNode}if(O.tagName==="BLOCKQUOTE"){P.formatter.toggle("blockquote",null,O);N=e.createRng();N.setStart(M,0);N.setEnd(M,0);l.setRng(N)}})}function F(){function L(){a._refreshContentEditable();A("StyleWithCSS",false);A("enableInlineTableEditing",false);if(!H.object_resizing){A("enableObjectResizing",false)}}if(!H.readonly){a.onBeforeExecCommand.add(L);a.onMouseDown.add(L)}}function s(){function L(M,N){E(e.select("a"),function(Q){var O=Q.parentNode,P=e.getRoot();if(O.lastChild===Q){while(O&&!e.isBlock(O)){if(O.parentNode.lastChild!==O||O===P){return}O=O.parentNode}e.add(O,"br",{"data-mce-bogus":1})}})}a.onExecCommand.add(function(M,N){if(N==="CreateLink"){L(M)}});a.onSetContent.add(l.onSetContent.add(L))}function m(){if(H.forced_root_block){a.onInit.add(function(){A("DefaultParagraphSeparator",H.forced_root_block)})}}function p(){function L(N,M){if(!N||!M.initial){a.execCommand("mceRepaint")}}a.onUndo.add(L);a.onRedo.add(L);a.onSetContent.add(L)}function i(){a.onKeyDown.add(function(M,N){var L;if(!z(N)&&N.keyCode==f){L=M.getDoc().selection.createRange();if(L&&L.item){N.preventDefault();M.undoManager.beforeChange();e.remove(L.item(0));M.undoManager.add()}}})}function r(){var L;if(n()>=10){L="";E("p div h1 h2 h3 h4 h5 h6".split(" "),function(M,N){L+=(N>0?",":"")+M+":empty"});a.contentStyles.push(L+"{padding-right: 1px !important}")}}function u(){var N,M,ad,L,Y,ab,Z,ac,O,P,aa,W,V,X=document,T=a.getDoc();if(!H.object_resizing||H.webkit_fake_resize===false){return}A("enableObjectResizing",false);aa={n:[0.5,0,0,-1],e:[1,0.5,1,0],s:[0.5,1,0,1],w:[0,0.5,-1,0],nw:[0,0,-1,-1],ne:[1,0,1,-1],se:[1,1,1,1],sw:[0,1,-1,1]};function R(ah){var ag,af;ag=ah.screenX-ab;af=ah.screenY-Z;W=ag*Y[2]+ac;V=af*Y[3]+O;W=W<5?5:W;V=V<5?5:V;if(j.modifierPressed(ah)||(ad.nodeName=="IMG"&&Y[2]*Y[3]!==0)){W=Math.round(V/P);V=Math.round(W*P)}e.setStyles(L,{width:W,height:V});if(Y[2]<0&&L.clientWidth<=W){e.setStyle(L,"left",N+(ac-W))}if(Y[3]<0&&L.clientHeight<=V){e.setStyle(L,"top",M+(O-V))}}function ae(){function af(ag,ah){if(ah){if(ad.style[ag]||!a.schema.isValid(ad.nodeName.toLowerCase(),ag)){e.setStyle(ad,ag,ah)}else{e.setAttrib(ad,ag,ah)}}}af("width",W);af("height",V);e.unbind(T,"mousemove",R);e.unbind(T,"mouseup",ae);if(X!=T){e.unbind(X,"mousemove",R);e.unbind(X,"mouseup",ae)}e.remove(L);Q(ad)}function Q(ai){var ag,ah,af;S();ag=e.getPos(ai);N=ag.x;M=ag.y;ah=ai.offsetWidth;af=ai.offsetHeight;if(ad!=ai){ad=ai;W=V=0}E(aa,function(al,aj){var ak;ak=e.get("mceResizeHandle"+aj);if(!ak){ak=e.add(T.documentElement,"div",{id:"mceResizeHandle"+aj,"class":"mceResizeHandle",style:"cursor:"+aj+"-resize; margin:0; padding:0"});e.bind(ak,"mousedown",function(am){am.preventDefault();ae();ab=am.screenX;Z=am.screenY;ac=ad.clientWidth;O=ad.clientHeight;P=O/ac;Y=al;L=ad.cloneNode(true);e.addClass(L,"mceClonedResizable");e.setStyles(L,{left:N,top:M,margin:0});T.documentElement.appendChild(L);e.bind(T,"mousemove",R);e.bind(T,"mouseup",ae);if(X!=T){e.bind(X,"mousemove",R);e.bind(X,"mouseup",ae)}})}else{e.show(ak)}e.setStyles(ak,{left:(ah*al[0]+N)-(ak.offsetWidth/2),top:(af*al[1]+M)-(ak.offsetHeight/2)})});if(!tinymce.isOpera&&ad.nodeName=="IMG"){ad.setAttribute("data-mce-selected","1")}}function S(){if(ad){ad.removeAttribute("data-mce-selected")}for(var af in aa){e.hide("mceResizeHandle"+af)}}a.contentStyles.push(".mceResizeHandle {position: absolute;border: 1px solid black;background: #FFF;width: 5px;height: 5px;z-index: 10000}.mceResizeHandle:hover {background: #000}img[data-mce-selected] {outline: 1px solid black}img.mceClonedResizable, table.mceClonedResizable {position: absolute;outline: 1px dashed black;opacity: .5;z-index: 10000}");function U(){var af=e.getParent(l.getNode(),"table,img");E(e.select("img[data-mce-selected]"),function(ag){ag.removeAttribute("data-mce-selected")});if(af){Q(af)}else{S()}}a.onNodeChange.add(U);e.bind(T,"selectionchange",U);a.serializer.addAttributeFilter("data-mce-selected",function(af,ag){var ah=af.length;while(ah--){af[ah].attr(ag,null)}})}function D(){if(n()<9){v.addNodeFilter("noscript",function(L){var M=L.length,N,O;while(M--){N=L[M];O=N.firstChild;if(O){N.attr("data-mce-innertext",O.value)}}});o.addNodeFilter("noscript",function(L){var M=L.length,N,P,O;while(M--){N=L[M];P=L[M].firstChild;if(P){P.value=tinymce.html.Entities.decode(P.value)}else{O=N.attributes.map["data-mce-innertext"];if(O){N.attr("data-mce-innertext",null);P=new tinymce.html.Node("#text",3);P.value=O;P.raw=true;N.append(P)}}}})}}t();G();q();if(tinymce.isWebKit){d();J();K();h();m();if(tinymce.isIDevice){b()}else{u();I()}}if(tinymce.isIE){B();x();C();g();i();r();D()}if(tinymce.isGecko){B();y();c();F();s();p()}if(tinymce.isOpera){u()}};(function(j){var a,g,d,k=/[&<>\"\u007E-\uD7FF\uE000-\uFFEF]|[\uD800-\uDBFF][\uDC00-\uDFFF]/g,b=/[<>&\u007E-\uD7FF\uE000-\uFFEF]|[\uD800-\uDBFF][\uDC00-\uDFFF]/g,f=/[<>&\"\']/g,c=/&(#x|#)?([\w]+);/g,i={128:"\u20AC",130:"\u201A",131:"\u0192",132:"\u201E",133:"\u2026",134:"\u2020",135:"\u2021",136:"\u02C6",137:"\u2030",138:"\u0160",139:"\u2039",140:"\u0152",142:"\u017D",145:"\u2018",146:"\u2019",147:"\u201C",148:"\u201D",149:"\u2022",150:"\u2013",151:"\u2014",152:"\u02DC",153:"\u2122",154:"\u0161",155:"\u203A",156:"\u0153",158:"\u017E",159:"\u0178"};g={'"':"&quot;","'":"&#39;","<":"&lt;",">":"&gt;","&":"&amp;"};d={"&lt;":"<","&gt;":">","&amp;":"&","&quot;":'"',"&apos;":"'"};function h(l){var m;m=document.createElement("div");m.innerHTML=l;return m.textContent||m.innerText||l}function e(m,p){var n,o,l,q={};if(m){m=m.split(",");p=p||10;for(n=0;n<m.length;n+=2){o=String.fromCharCode(parseInt(m[n],p));if(!g[o]){l="&"+m[n+1]+";";q[o]=l;q[l]=o}}return q}}a=e("50,nbsp,51,iexcl,52,cent,53,pound,54,curren,55,yen,56,brvbar,57,sect,58,uml,59,copy,5a,ordf,5b,laquo,5c,not,5d,shy,5e,reg,5f,macr,5g,deg,5h,plusmn,5i,sup2,5j,sup3,5k,acute,5l,micro,5m,para,5n,middot,5o,cedil,5p,sup1,5q,ordm,5r,raquo,5s,frac14,5t,frac12,5u,frac34,5v,iquest,60,Agrave,61,Aacute,62,Acirc,63,Atilde,64,Auml,65,Aring,66,AElig,67,Ccedil,68,Egrave,69,Eacute,6a,Ecirc,6b,Euml,6c,Igrave,6d,Iacute,6e,Icirc,6f,Iuml,6g,ETH,6h,Ntilde,6i,Ograve,6j,Oacute,6k,Ocirc,6l,Otilde,6m,Ouml,6n,times,6o,Oslash,6p,Ugrave,6q,Uacute,6r,Ucirc,6s,Uuml,6t,Yacute,6u,THORN,6v,szlig,70,agrave,71,aacute,72,acirc,73,atilde,74,auml,75,aring,76,aelig,77,ccedil,78,egrave,79,eacute,7a,ecirc,7b,euml,7c,igrave,7d,iacute,7e,icirc,7f,iuml,7g,eth,7h,ntilde,7i,ograve,7j,oacute,7k,ocirc,7l,otilde,7m,ouml,7n,divide,7o,oslash,7p,ugrave,7q,uacute,7r,ucirc,7s,uuml,7t,yacute,7u,thorn,7v,yuml,ci,fnof,sh,Alpha,si,Beta,sj,Gamma,sk,Delta,sl,Epsilon,sm,Zeta,sn,Eta,so,Theta,sp,Iota,sq,Kappa,sr,Lambda,ss,Mu,st,Nu,su,Xi,sv,Omicron,t0,Pi,t1,Rho,t3,Sigma,t4,Tau,t5,Upsilon,t6,Phi,t7,Chi,t8,Psi,t9,Omega,th,alpha,ti,beta,tj,gamma,tk,delta,tl,epsilon,tm,zeta,tn,eta,to,theta,tp,iota,tq,kappa,tr,lambda,ts,mu,tt,nu,tu,xi,tv,omicron,u0,pi,u1,rho,u2,sigmaf,u3,sigma,u4,tau,u5,upsilon,u6,phi,u7,chi,u8,psi,u9,omega,uh,thetasym,ui,upsih,um,piv,812,bull,816,hellip,81i,prime,81j,Prime,81u,oline,824,frasl,88o,weierp,88h,image,88s,real,892,trade,89l,alefsym,8cg,larr,8ch,uarr,8ci,rarr,8cj,darr,8ck,harr,8dl,crarr,8eg,lArr,8eh,uArr,8ei,rArr,8ej,dArr,8ek,hArr,8g0,forall,8g2,part,8g3,exist,8g5,empty,8g7,nabla,8g8,isin,8g9,notin,8gb,ni,8gf,prod,8gh,sum,8gi,minus,8gn,lowast,8gq,radic,8gt,prop,8gu,infin,8h0,ang,8h7,and,8h8,or,8h9,cap,8ha,cup,8hb,int,8hk,there4,8hs,sim,8i5,cong,8i8,asymp,8j0,ne,8j1,equiv,8j4,le,8j5,ge,8k2,sub,8k3,sup,8k4,nsub,8k6,sube,8k7,supe,8kl,oplus,8kn,otimes,8l5,perp,8m5,sdot,8o8,lceil,8o9,rceil,8oa,lfloor,8ob,rfloor,8p9,lang,8pa,rang,9ea,loz,9j0,spades,9j3,clubs,9j5,hearts,9j6,diams,ai,OElig,aj,oelig,b0,Scaron,b1,scaron,bo,Yuml,m6,circ,ms,tilde,802,ensp,803,emsp,809,thinsp,80c,zwnj,80d,zwj,80e,lrm,80f,rlm,80j,ndash,80k,mdash,80o,lsquo,80p,rsquo,80q,sbquo,80s,ldquo,80t,rdquo,80u,bdquo,810,dagger,811,Dagger,81g,permil,81p,lsaquo,81q,rsaquo,85c,euro",32);j.html=j.html||{};j.html.Entities={encodeRaw:function(m,l){return m.replace(l?k:b,function(n){return g[n]||n})},encodeAllRaw:function(l){return(""+l).replace(f,function(m){return g[m]||m})},encodeNumeric:function(m,l){return m.replace(l?k:b,function(n){if(n.length>1){return"&#"+(((n.charCodeAt(0)-55296)*1024)+(n.charCodeAt(1)-56320)+65536)+";"}return g[n]||"&#"+n.charCodeAt(0)+";"})},encodeNamed:function(n,l,m){m=m||a;return n.replace(l?k:b,function(o){return g[o]||m[o]||o})},getEncodeFunc:function(l,o){var p=j.html.Entities;o=e(o)||a;function m(r,q){return r.replace(q?k:b,function(s){return g[s]||o[s]||"&#"+s.charCodeAt(0)+";"||s})}function n(r,q){return p.encodeNamed(r,q,o)}l=j.makeMap(l.replace(/\+/g,","));if(l.named&&l.numeric){return m}if(l.named){if(o){return n}return p.encodeNamed}if(l.numeric){return p.encodeNumeric}return p.encodeRaw},decode:function(l){return l.replace(c,function(n,m,o){if(m){o=parseInt(o,m.length===2?16:10);if(o>65535){o-=65536;return String.fromCharCode(55296+(o>>10),56320+(o&1023))}else{return i[o]||String.fromCharCode(o)}}return d[n]||a[n]||h(n)})}}})(tinymce);tinymce.html.Styles=function(d,f){var k=/rgb\s*\(\s*([0-9]+)\s*,\s*([0-9]+)\s*,\s*([0-9]+)\s*\)/gi,h=/(?:url(?:(?:\(\s*\"([^\"]+)\"\s*\))|(?:\(\s*\'([^\']+)\'\s*\))|(?:\(\s*([^)\s]+)\s*\))))|(?:\'([^\']+)\')|(?:\"([^\"]+)\")/gi,b=/\s*([^:]+):\s*([^;]+);?/g,l=/\s+$/,m=/rgb/,e,g,a={},j;d=d||{};j="\\\" \\' \\; \\: ; : \uFEFF".split(" ");for(g=0;g<j.length;g++){a[j[g]]="\uFEFF"+g;a["\uFEFF"+g]=j[g]}function c(n,q,p,i){function o(r){r=parseInt(r).toString(16);return r.length>1?r:"0"+r}return"#"+o(q)+o(p)+o(i)}return{toHex:function(i){return i.replace(k,c)},parse:function(s){var z={},q,n,x,r,v=d.url_converter,y=d.url_converter_scope||this;function p(D,G){var F,C,B,E;F=z[D+"-top"+G];if(!F){return}C=z[D+"-right"+G];if(F!=C){return}B=z[D+"-bottom"+G];if(C!=B){return}E=z[D+"-left"+G];if(B!=E){return}z[D+G]=E;delete z[D+"-top"+G];delete z[D+"-right"+G];delete z[D+"-bottom"+G];delete z[D+"-left"+G]}function u(C){var D=z[C],B;if(!D||D.indexOf(" ")<0){return}D=D.split(" ");B=D.length;while(B--){if(D[B]!==D[0]){return false}}z[C]=D[0];return true}function A(D,C,B,E){if(!u(C)){return}if(!u(B)){return}if(!u(E)){return}z[D]=z[C]+" "+z[B]+" "+z[E];delete z[C];delete z[B];delete z[E]}function t(B){r=true;return a[B]}function i(C,B){if(r){C=C.replace(/\uFEFF[0-9]/g,function(D){return a[D]})}if(!B){C=C.replace(/\\([\'\";:])/g,"$1")}return C}function o(C,B,F,E,G,D){G=G||D;if(G){G=i(G);return"'"+G.replace(/\'/g,"\\'")+"'"}B=i(B||F||E);if(v){B=v.call(y,B,"style")}return"url('"+B.replace(/\'/g,"\\'")+"')"}if(s){s=s.replace(/\\[\"\';:\uFEFF]/g,t).replace(/\"[^\"]+\"|\'[^\']+\'/g,function(B){return B.replace(/[;:]/g,t)});while(q=b.exec(s)){n=q[1].replace(l,"").toLowerCase();x=q[2].replace(l,"");if(n&&x.length>0){if(n==="font-weight"&&x==="700"){x="bold"}else{if(n==="color"||n==="background-color"){x=x.toLowerCase()}}x=x.replace(k,c);x=x.replace(h,o);z[n]=r?i(x,true):x}b.lastIndex=q.index+q[0].length}p("border","");p("border","-width");p("border","-color");p("border","-style");p("padding","");p("margin","");A("border","border-width","border-style","border-color");if(z.border==="medium none"){delete z.border}}return z},serialize:function(p,r){var o="",n,q;function i(t){var x,u,s,v;x=f.styles[t];if(x){for(u=0,s=x.length;u<s;u++){t=x[u];v=p[t];if(v!==e&&v.length>0){o+=(o.length>0?" ":"")+t+": "+v+";"}}}}if(r&&f&&f.styles){i("*");i(r)}else{for(n in p){q=p[n];if(q!==e&&q.length>0){o+=(o.length>0?" ":"")+n+": "+q+";"}}}return o}}};(function(f){var a={},e=f.makeMap,g=f.each;function d(j,i){return j.split(i||",")}function h(m,l){var j,k={};function i(n){return n.replace(/[A-Z]+/g,function(o){return i(m[o])})}for(j in m){if(m.hasOwnProperty(j)){m[j]=i(m[j])}}i(l).replace(/#/g,"#text").replace(/(\w+)\[([^\]]+)\]\[([^\]]*)\]/g,function(q,o,n,p){n=d(n,"|");k[o]={attributes:e(n),attributesOrder:n,children:e(p,"|",{"#comment":{}})}});return k}function b(){var i=a.html5;if(!i){i=a.html5=h({A:"id|accesskey|class|dir|draggable|item|hidden|itemprop|role|spellcheck|style|subject|title|onclick|ondblclick|onmousedown|onmouseup|onmouseover|onmousemove|onmouseout|onkeypress|onkeydown|onkeyup",B:"#|a|abbr|area|audio|b|bdo|br|button|canvas|cite|code|command|datalist|del|dfn|em|embed|i|iframe|img|input|ins|kbd|keygen|label|link|map|mark|meta|meter|noscript|object|output|progress|q|ruby|samp|script|select|small|span|strong|sub|sup|svg|textarea|time|var|video|wbr",C:"#|a|abbr|area|address|article|aside|audio|b|bdo|blockquote|br|button|canvas|cite|code|command|datalist|del|details|dfn|dialog|div|dl|em|embed|fieldset|figure|footer|form|h1|h2|h3|h4|h5|h6|header|hgroup|hr|i|iframe|img|input|ins|kbd|keygen|label|link|map|mark|menu|meta|meter|nav|noscript|ol|object|output|p|pre|progress|q|ruby|samp|script|section|select|small|span|strong|style|sub|sup|svg|table|textarea|time|ul|var|video"},"html[A|manifest][body|head]head[A][base|command|link|meta|noscript|script|style|title]title[A][#]base[A|href|target][]link[A|href|rel|media|type|sizes][]meta[A|http-equiv|name|content|charset][]style[A|type|media|scoped][#]script[A|charset|type|src|defer|async][#]noscript[A][C]body[A][C]section[A][C]nav[A][C]article[A][C]aside[A][C]h1[A][B]h2[A][B]h3[A][B]h4[A][B]h5[A][B]h6[A][B]hgroup[A][h1|h2|h3|h4|h5|h6]header[A][C]footer[A][C]address[A][C]p[A][B]br[A][]pre[A][B]dialog[A][dd|dt]blockquote[A|cite][C]ol[A|start|reversed][li]ul[A][li]li[A|value][C]dl[A][dd|dt]dt[A][B]dd[A][C]a[A|href|target|ping|rel|media|type][B]em[A][B]strong[A][B]small[A][B]cite[A][B]q[A|cite][B]dfn[A][B]abbr[A][B]code[A][B]var[A][B]samp[A][B]kbd[A][B]sub[A][B]sup[A][B]i[A][B]b[A][B]mark[A][B]progress[A|value|max][B]meter[A|value|min|max|low|high|optimum][B]time[A|datetime][B]ruby[A][B|rt|rp]rt[A][B]rp[A][B]bdo[A][B]span[A][B]ins[A|cite|datetime][B]del[A|cite|datetime][B]figure[A][C|legend|figcaption]figcaption[A][C]img[A|alt|src|height|width|usemap|ismap][]iframe[A|name|src|height|width|sandbox|seamless][]embed[A|src|height|width|type][]object[A|data|type|height|width|usemap|name|form|classid][param]param[A|name|value][]details[A|open][C|legend]command[A|type|label|icon|disabled|checked|radiogroup][]menu[A|type|label][C|li]legend[A][C|B]div[A][C]source[A|src|type|media][]audio[A|src|autobuffer|autoplay|loop|controls][source]video[A|src|autobuffer|autoplay|loop|controls|width|height|poster][source]hr[A][]form[A|accept-charset|action|autocomplete|enctype|method|name|novalidate|target][C]fieldset[A|disabled|form|name][C|legend]label[A|form|for][B]input[A|type|accept|alt|autocomplete|autofocus|checked|disabled|form|formaction|formenctype|formmethod|formnovalidate|formtarget|height|list|max|maxlength|min|multiple|pattern|placeholder|readonly|required|size|src|step|width|files|value|name][]button[A|autofocus|disabled|form|formaction|formenctype|formmethod|formnovalidate|formtarget|name|value|type][B]select[A|autofocus|disabled|form|multiple|name|size][option|optgroup]datalist[A][B|option]optgroup[A|disabled|label][option]option[A|disabled|selected|label|value][]textarea[A|autofocus|disabled|form|maxlength|name|placeholder|readonly|required|rows|cols|wrap][]keygen[A|autofocus|challenge|disabled|form|keytype|name][]output[A|for|form|name][B]canvas[A|width|height][]map[A|name][B|C]area[A|shape|coords|href|alt|target|media|rel|ping|type][]mathml[A][]svg[A][]table[A|border][caption|colgroup|thead|tfoot|tbody|tr]caption[A][C]colgroup[A|span][col]col[A|span][]thead[A][tr]tfoot[A][tr]tbody[A][tr]tr[A][th|td]th[A|headers|rowspan|colspan|scope][B]td[A|headers|rowspan|colspan][C]wbr[A][]")}return i}function c(){var i=a.html4;if(!i){i=a.html4=h({Z:"H|K|N|O|P",Y:"X|form|R|Q",ZG:"E|span|width|align|char|charoff|valign",X:"p|T|div|U|W|isindex|fieldset|table",ZF:"E|align|char|charoff|valign",W:"pre|hr|blockquote|address|center|noframes",ZE:"abbr|axis|headers|scope|rowspan|colspan|align|char|charoff|valign|nowrap|bgcolor|width|height",ZD:"[E][S]",U:"ul|ol|dl|menu|dir",ZC:"p|Y|div|U|W|table|br|span|bdo|object|applet|img|map|K|N|Q",T:"h1|h2|h3|h4|h5|h6",ZB:"X|S|Q",S:"R|P",ZA:"a|G|J|M|O|P",R:"a|H|K|N|O",Q:"noscript|P",P:"ins|del|script",O:"input|select|textarea|label|button",N:"M|L",M:"em|strong|dfn|code|q|samp|kbd|var|cite|abbr|acronym",L:"sub|sup",K:"J|I",J:"tt|i|b|u|s|strike",I:"big|small|font|basefont",H:"G|F",G:"br|span|bdo",F:"object|applet|img|map|iframe",E:"A|B|C",D:"accesskey|tabindex|onfocus|onblur",C:"onclick|ondblclick|onmousedown|onmouseup|onmouseover|onmousemove|onmouseout|onkeypress|onkeydown|onkeyup",B:"lang|xml:lang|dir",A:"id|class|style|title"},"script[id|charset|type|language|src|defer|xml:space][]style[B|id|type|media|title|xml:space][]object[E|declare|classid|codebase|data|type|codetype|archive|standby|width|height|usemap|name|tabindex|align|border|hspace|vspace][#|param|Y]param[id|name|value|valuetype|type][]p[E|align][#|S]a[E|D|charset|type|name|href|hreflang|rel|rev|shape|coords|target][#|Z]br[A|clear][]span[E][#|S]bdo[A|C|B][#|S]applet[A|codebase|archive|code|object|alt|name|width|height|align|hspace|vspace][#|param|Y]h1[E|align][#|S]img[E|src|alt|name|longdesc|width|height|usemap|ismap|align|border|hspace|vspace][]map[B|C|A|name][X|form|Q|area]h2[E|align][#|S]iframe[A|longdesc|name|src|frameborder|marginwidth|marginheight|scrolling|align|width|height][#|Y]h3[E|align][#|S]tt[E][#|S]i[E][#|S]b[E][#|S]u[E][#|S]s[E][#|S]strike[E][#|S]big[E][#|S]small[E][#|S]font[A|B|size|color|face][#|S]basefont[id|size|color|face][]em[E][#|S]strong[E][#|S]dfn[E][#|S]code[E][#|S]q[E|cite][#|S]samp[E][#|S]kbd[E][#|S]var[E][#|S]cite[E][#|S]abbr[E][#|S]acronym[E][#|S]sub[E][#|S]sup[E][#|S]input[E|D|type|name|value|checked|disabled|readonly|size|maxlength|src|alt|usemap|onselect|onchange|accept|align][]select[E|name|size|multiple|disabled|tabindex|onfocus|onblur|onchange][optgroup|option]optgroup[E|disabled|label][option]option[E|selected|disabled|label|value][]textarea[E|D|name|rows|cols|disabled|readonly|onselect|onchange][]label[E|for|accesskey|onfocus|onblur][#|S]button[E|D|name|value|type|disabled][#|p|T|div|U|W|table|G|object|applet|img|map|K|N|Q]h4[E|align][#|S]ins[E|cite|datetime][#|Y]h5[E|align][#|S]del[E|cite|datetime][#|Y]h6[E|align][#|S]div[E|align][#|Y]ul[E|type|compact][li]li[E|type|value][#|Y]ol[E|type|compact|start][li]dl[E|compact][dt|dd]dt[E][#|S]dd[E][#|Y]menu[E|compact][li]dir[E|compact][li]pre[E|width|xml:space][#|ZA]hr[E|align|noshade|size|width][]blockquote[E|cite][#|Y]address[E][#|S|p]center[E][#|Y]noframes[E][#|Y]isindex[A|B|prompt][]fieldset[E][#|legend|Y]legend[E|accesskey|align][#|S]table[E|summary|width|border|frame|rules|cellspacing|cellpadding|align|bgcolor][caption|col|colgroup|thead|tfoot|tbody|tr]caption[E|align][#|S]col[ZG][]colgroup[ZG][col]thead[ZF][tr]tr[ZF|bgcolor][th|td]th[E|ZE][#|Y]form[E|action|method|name|enctype|onsubmit|onreset|accept|accept-charset|target][#|X|R|Q]noscript[E][#|Y]td[E|ZE][#|Y]tfoot[ZF][tr]tbody[ZF][tr]area[E|D|shape|coords|href|nohref|alt|target][]base[id|href|target][]body[E|onload|onunload|background|bgcolor|text|link|vlink|alink][#|Y]")}return i}f.html.Schema=function(A){var u=this,s={},k={},j=[],D,y;var o,q,z,r,v,n,p={};function m(F,E,H){var G=A[F];if(!G){G=a[F];if(!G){G=e(E," ",e(E.toUpperCase()," "));G=f.extend(G,H);a[F]=G}}else{G=e(G,",",e(G.toUpperCase()," "))}return G}A=A||{};y=A.schema=="html5"?b():c();if(A.verify_html===false){A.valid_elements="*[*]"}if(A.valid_styles){D={};g(A.valid_styles,function(F,E){D[E]=f.explode(F)})}o=m("whitespace_elements","pre script noscript style textarea");q=m("self_closing_elements","colgroup dd dt li option p td tfoot th thead tr");z=m("short_ended_elements","area base basefont br col frame hr img input isindex link meta param embed source wbr");r=m("boolean_attributes","checked compact declare defer disabled ismap multiple nohref noresize noshade nowrap readonly selected autoplay loop controls");n=m("non_empty_elements","td th iframe video audio object",z);textBlockElementsMap=m("text_block_elements","h1 h2 h3 h4 h5 h6 p div address pre form blockquote center dir fieldset header footer article section hgroup aside nav figure");v=m("block_elements","hr table tbody thead tfoot th tr td li ol ul caption dl dt dd noscript menu isindex samp option datalist select optgroup",textBlockElementsMap);function i(E){return new RegExp("^"+E.replace(/([?+*])/g,".$1")+"$")}function C(L){var K,G,Z,V,aa,F,I,U,X,Q,Y,ac,O,J,W,E,S,H,ab,ad,P,T,N=/^([#+\-])?([^\[\/]+)(?:\/([^\[]+))?(?:\[([^\]]+)\])?$/,R=/^([!\-])?(\w+::\w+|[^=:<]+)?(?:([=:<])(.*))?$/,M=/[*?+]/;if(L){L=d(L);if(s["@"]){S=s["@"].attributes;H=s["@"].attributesOrder}for(K=0,G=L.length;K<G;K++){F=N.exec(L[K]);if(F){W=F[1];Q=F[2];E=F[3];X=F[4];O={};J=[];I={attributes:O,attributesOrder:J};if(W==="#"){I.paddEmpty=true}if(W==="-"){I.removeEmpty=true}if(S){for(ad in S){O[ad]=S[ad]}J.push.apply(J,H)}if(X){X=d(X,"|");for(Z=0,V=X.length;Z<V;Z++){F=R.exec(X[Z]);if(F){U={};ac=F[1];Y=F[2].replace(/::/g,":");W=F[3];T=F[4];if(ac==="!"){I.attributesRequired=I.attributesRequired||[];I.attributesRequired.push(Y);U.required=true}if(ac==="-"){delete O[Y];J.splice(f.inArray(J,Y),1);continue}if(W){if(W==="="){I.attributesDefault=I.attributesDefault||[];I.attributesDefault.push({name:Y,value:T});U.defaultValue=T}if(W===":"){I.attributesForced=I.attributesForced||[];I.attributesForced.push({name:Y,value:T});U.forcedValue=T}if(W==="<"){U.validValues=e(T,"?")}}if(M.test(Y)){I.attributePatterns=I.attributePatterns||[];U.pattern=i(Y);I.attributePatterns.push(U)}else{if(!O[Y]){J.push(Y)}O[Y]=U}}}}if(!S&&Q=="@"){S=O;H=J}if(E){I.outputName=Q;s[E]=I}if(M.test(Q)){I.pattern=i(Q);j.push(I)}else{s[Q]=I}}}}}function t(E){s={};j=[];C(E);g(y,function(G,F){k[F]=G.children})}function l(F){var E=/^(~)?(.+)$/;if(F){g(d(F),function(J){var H=E.exec(J),I=H[1]==="~",K=I?"span":"div",G=H[2];k[G]=k[K];p[G]=K;if(!I){v[G.toUpperCase()]={};v[G]={}}if(!s[G]){s[G]=s[K]}g(k,function(L,M){if(L[K]){L[G]=L[K]}})})}}function x(F){var E=/^([+\-]?)(\w+)\[([^\]]+)\]$/;if(F){g(d(F),function(J){var I=E.exec(J),G,H;if(I){H=I[1];if(H){G=k[I[2]]}else{G=k[I[2]]={"#comment":{}}}G=k[I[2]];g(d(I[3],"|"),function(K){if(H==="-"){delete G[K]}else{G[K]={}}})}})}}function B(E){var G=s[E],F;if(G){return G}F=j.length;while(F--){G=j[F];if(G.pattern.test(E)){return G}}}if(!A.valid_elements){g(y,function(F,E){s[E]={attributes:F.attributes,attributesOrder:F.attributesOrder};k[E]=F.children});if(A.schema!="html5"){g(d("strong/b,em/i"),function(E){E=d(E,"/");s[E[1]].outputName=E[0]})}s.img.attributesDefault=[{name:"alt",value:""}];g(d("ol,ul,sub,sup,blockquote,span,font,a,table,tbody,tr,strong,em,b,i"),function(E){if(s[E]){s[E].removeEmpty=true}});g(d("p,h1,h2,h3,h4,h5,h6,th,td,pre,div,address,caption"),function(E){s[E].paddEmpty=true})}else{t(A.valid_elements)}l(A.custom_elements);x(A.valid_children);C(A.extended_valid_elements);x("+ol[ul|ol],+ul[ul|ol]");if(A.invalid_elements){f.each(f.explode(A.invalid_elements),function(E){if(s[E]){delete s[E]}})}if(!B("span")){C("span[!data-mce-type|*]")}u.children=k;u.styles=D;u.getBoolAttrs=function(){return r};u.getBlockElements=function(){return v};u.getTextBlockElements=function(){return textBlockElementsMap};u.getShortEndedElements=function(){return z};u.getSelfClosingElements=function(){return q};u.getNonEmptyElements=function(){return n};u.getWhiteSpaceElements=function(){return o};u.isValidChild=function(E,G){var F=k[E];return !!(F&&F[G])};u.isValid=function(F,E){var H,G,I=B(F);if(I){if(E){if(I.attributes[E]){return true}H=I.attributePatterns;if(H){G=H.length;while(G--){if(H[G].pattern.test(F)){return true}}}}else{return true}}return false};u.getElementRule=B;u.getCustomElements=function(){return p};u.addValidElements=C;u.setValidElements=t;u.addCustomElements=l;u.addValidChildren=x;u.elements=s}})(tinymce);(function(a){a.html.SaxParser=function(c,e){var b=this,d=function(){};c=c||{};b.schema=e=e||new a.html.Schema();if(c.fix_self_closing!==false){c.fix_self_closing=true}a.each("comment cdata text start end pi doctype".split(" "),function(f){if(f){b[f]=c[f]||d}});b.parse=function(E){var n=this,g,G=0,I,B,A=[],N,Q,C,r,z,s,M,H,O,v,m,k,t,R,o,P,F,S,L,f,J,l,D,K,h,x=0,j=a.html.Entities.decode,y,q;function u(T){var V,U;V=A.length;while(V--){if(A[V].name===T){break}}if(V>=0){for(U=A.length-1;U>=V;U--){T=A[U];if(T.valid){n.end(T.name)}}A.length=V}}function p(U,T,Y,X,W){var Z,V;T=T.toLowerCase();Y=T in H?T:j(Y||X||W||"");if(v&&!z&&T.indexOf("data-")!==0){Z=P[T];if(!Z&&F){V=F.length;while(V--){Z=F[V];if(Z.pattern.test(T)){break}}if(V===-1){Z=null}}if(!Z){return}if(Z.validValues&&!(Y in Z.validValues)){return}}N.map[T]=Y;N.push({name:T,value:Y})}l=new RegExp("<(?:(?:!--([\\w\\W]*?)-->)|(?:!\\[CDATA\\[([\\w\\W]*?)\\]\\]>)|(?:!DOCTYPE([\\w\\W]*?)>)|(?:\\?([^\\s\\/<>]+) ?([\\w\\W]*?)[?/]>)|(?:\\/([^>]+)>)|(?:([A-Za-z0-9\\-\\:\\.]+)((?:\\s+[^\"'>]+(?:(?:\"[^\"]*\")|(?:'[^']*')|[^>]*))*|\\/|\\s+)>))","g");D=/([\w:\-]+)(?:\s*=\s*(?:(?:\"((?:[^\"])*)\")|(?:\'((?:[^\'])*)\')|([^>\s]+)))?/g;K={script:/<\/script[^>]*>/gi,style:/<\/style[^>]*>/gi,noscript:/<\/noscript[^>]*>/gi};M=e.getShortEndedElements();J=c.self_closing_elements||e.getSelfClosingElements();H=e.getBoolAttrs();v=c.validate;s=c.remove_internals;y=c.fix_self_closing;q=a.isIE;o=/^:/;while(g=l.exec(E)){if(G<g.index){n.text(j(E.substr(G,g.index-G)))}if(I=g[6]){I=I.toLowerCase();if(q&&o.test(I)){I=I.substr(1)}u(I)}else{if(I=g[7]){I=I.toLowerCase();if(q&&o.test(I)){I=I.substr(1)}O=I in M;if(y&&J[I]&&A.length>0&&A[A.length-1].name===I){u(I)}if(!v||(m=e.getElementRule(I))){k=true;if(v){P=m.attributes;F=m.attributePatterns}if(R=g[8]){z=R.indexOf("data-mce-type")!==-1;if(z&&s){k=false}N=[];N.map={};R.replace(D,p)}else{N=[];N.map={}}if(v&&!z){S=m.attributesRequired;L=m.attributesDefault;f=m.attributesForced;if(f){Q=f.length;while(Q--){t=f[Q];r=t.name;h=t.value;if(h==="{$uid}"){h="mce_"+x++}N.map[r]=h;N.push({name:r,value:h})}}if(L){Q=L.length;while(Q--){t=L[Q];r=t.name;if(!(r in N.map)){h=t.value;if(h==="{$uid}"){h="mce_"+x++}N.map[r]=h;N.push({name:r,value:h})}}}if(S){Q=S.length;while(Q--){if(S[Q] in N.map){break}}if(Q===-1){k=false}}if(N.map["data-mce-bogus"]){k=false}}if(k){n.start(I,N,O)}}else{k=false}if(B=K[I]){B.lastIndex=G=g.index+g[0].length;if(g=B.exec(E)){if(k){C=E.substr(G,g.index-G)}G=g.index+g[0].length}else{C=E.substr(G);G=E.length}if(k&&C.length>0){n.text(C,true)}if(k){n.end(I)}l.lastIndex=G;continue}if(!O){if(!R||R.indexOf("/")!=R.length-1){A.push({name:I,valid:k})}else{if(k){n.end(I)}}}}else{if(I=g[1]){n.comment(I)}else{if(I=g[2]){n.cdata(I)}else{if(I=g[3]){n.doctype(I)}else{if(I=g[4]){n.pi(I,g[5])}}}}}}G=g.index+g[0].length}if(G<E.length){n.text(j(E.substr(G)))}for(Q=A.length-1;Q>=0;Q--){I=A[Q];if(I.valid){n.end(I.name)}}}}})(tinymce);(function(d){var c=/^[ \t\r\n]*$/,e={"#text":3,"#comment":8,"#cdata":4,"#pi":7,"#doctype":10,"#document-fragment":11};function a(k,l,j){var i,h,f=j?"lastChild":"firstChild",g=j?"prev":"next";if(k[f]){return k[f]}if(k!==l){i=k[g];if(i){return i}for(h=k.parent;h&&h!==l;h=h.parent){i=h[g];if(i){return i}}}}function b(f,g){this.name=f;this.type=g;if(g===1){this.attributes=[];this.attributes.map={}}}d.extend(b.prototype,{replace:function(g){var f=this;if(g.parent){g.remove()}f.insert(g,f);f.remove();return f},attr:function(h,l){var f=this,g,j,k;if(typeof h!=="string"){for(j in h){f.attr(j,h[j])}return f}if(g=f.attributes){if(l!==k){if(l===null){if(h in g.map){delete g.map[h];j=g.length;while(j--){if(g[j].name===h){g=g.splice(j,1);return f}}}return f}if(h in g.map){j=g.length;while(j--){if(g[j].name===h){g[j].value=l;break}}}else{g.push({name:h,value:l})}g.map[h]=l;return f}else{return g.map[h]}}},clone:function(){var g=this,n=new b(g.name,g.type),h,f,m,j,k;if(m=g.attributes){k=[];k.map={};for(h=0,f=m.length;h<f;h++){j=m[h];if(j.name!=="id"){k[k.length]={name:j.name,value:j.value};k.map[j.name]=j.value}}n.attributes=k}n.value=g.value;n.shortEnded=g.shortEnded;return n},wrap:function(g){var f=this;f.parent.insert(g,f);g.append(f);return f},unwrap:function(){var f=this,h,g;for(h=f.firstChild;h;){g=h.next;f.insert(h,f,true);h=g}f.remove()},remove:function(){var f=this,h=f.parent,g=f.next,i=f.prev;if(h){if(h.firstChild===f){h.firstChild=g;if(g){g.prev=null}}else{i.next=g}if(h.lastChild===f){h.lastChild=i;if(i){i.next=null}}else{g.prev=i}f.parent=f.next=f.prev=null}return f},append:function(h){var f=this,g;if(h.parent){h.remove()}g=f.lastChild;if(g){g.next=h;h.prev=g;f.lastChild=h}else{f.lastChild=f.firstChild=h}h.parent=f;return h},insert:function(h,f,i){var g;if(h.parent){h.remove()}g=f.parent||this;if(i){if(f===g.firstChild){g.firstChild=h}else{f.prev.next=h}h.prev=f.prev;h.next=f;f.prev=h}else{if(f===g.lastChild){g.lastChild=h}else{f.next.prev=h}h.next=f.next;h.prev=f;f.next=h}h.parent=g;return h},getAll:function(g){var f=this,h,i=[];for(h=f.firstChild;h;h=a(h,f)){if(h.name===g){i.push(h)}}return i},empty:function(){var g=this,f,h,j;if(g.firstChild){f=[];for(j=g.firstChild;j;j=a(j,g)){f.push(j)}h=f.length;while(h--){j=f[h];j.parent=j.firstChild=j.lastChild=j.next=j.prev=null}}g.firstChild=g.lastChild=null;return g},isEmpty:function(k){var f=this,j=f.firstChild,h,g;if(j){do{if(j.type===1){if(j.attributes.map["data-mce-bogus"]){continue}if(k[j.name]){return false}h=j.attributes.length;while(h--){g=j.attributes[h].name;if(g==="name"||g.indexOf("data-mce-")===0){return false}}}if(j.type===8){return false}if((j.type===3&&!c.test(j.value))){return false}}while(j=a(j,f))}return true},walk:function(f){return a(this,null,f)}});d.extend(b,{create:function(g,f){var i,h;i=new b(g,e[g]||1);if(f){for(h in f){i.attr(h,f[h])}}return i}});d.html.Node=b})(tinymce);(function(b){var a=b.html.Node;b.html.DomParser=function(g,h){var f=this,e={},d=[],i={},c={};g=g||{};g.validate="validate" in g?g.validate:true;g.root_name=g.root_name||"body";f.schema=h=h||new b.html.Schema();function j(n){var p,q,y,x,A,o,r,l,u,v,k,t,m,z,s;t=b.makeMap("tr,td,th,tbody,thead,tfoot,table");k=h.getNonEmptyElements();m=h.getTextBlockElements();for(p=0;p<n.length;p++){q=n[p];if(!q.parent||q.fixed){continue}if(m[q.name]&&q.parent.name=="li"){z=q.next;while(z){if(m[z.name]){z.name="li";z.fixed=true;q.parent.insert(z,q.parent)}else{break}z=z.next}q.unwrap(q);continue}x=[q];for(y=q.parent;y&&!h.isValidChild(y.name,q.name)&&!t[y.name];y=y.parent){x.push(y)}if(y&&x.length>1){x.reverse();A=o=f.filterNode(x[0].clone());for(u=0;u<x.length-1;u++){if(h.isValidChild(o.name,x[u].name)){r=f.filterNode(x[u].clone());o.append(r)}else{r=o}for(l=x[u].firstChild;l&&l!=x[u+1];){s=l.next;r.append(l);l=s}o=r}if(!A.isEmpty(k)){y.insert(A,x[0],true);y.insert(q,A)}else{y.insert(q,x[0],true)}y=x[0];if(y.isEmpty(k)||y.firstChild===y.lastChild&&y.firstChild.name==="br"){y.empty().remove()}}else{if(q.parent){if(q.name==="li"){z=q.prev;if(z&&(z.name==="ul"||z.name==="ul")){z.append(q);continue}z=q.next;if(z&&(z.name==="ul"||z.name==="ul")){z.insert(q,z.firstChild,true);continue}q.wrap(f.filterNode(new a("ul",1)));continue}if(h.isValidChild(q.parent.name,"div")&&h.isValidChild("div",q.name)){q.wrap(f.filterNode(new a("div",1)))}else{if(q.name==="style"||q.name==="script"){q.empty().remove()}else{q.unwrap()}}}}}}f.filterNode=function(m){var l,k,n;if(k in e){n=i[k];if(n){n.push(m)}else{i[k]=[m]}}l=d.length;while(l--){k=d[l].name;if(k in m.attributes.map){n=c[k];if(n){n.push(m)}else{c[k]=[m]}}}return m};f.addNodeFilter=function(k,l){b.each(b.explode(k),function(m){var n=e[m];if(!n){e[m]=n=[]}n.push(l)})};f.addAttributeFilter=function(k,l){b.each(b.explode(k),function(m){var n;for(n=0;n<d.length;n++){if(d[n].name===m){d[n].callbacks.push(l);return}}d.push({name:m,callbacks:[l]})})};f.parse=function(v,m){var n,J,B,A,D,C,x,r,F,N,z,o,E,M=[],L,t,k,y,s,p,u,q;m=m||{};i={};c={};o=b.extend(b.makeMap("script,style,head,html,body,title,meta,param"),h.getBlockElements());u=h.getNonEmptyElements();p=h.children;z=g.validate;q="forced_root_block" in m?m.forced_root_block:g.forced_root_block;s=h.getWhiteSpaceElements();E=/^[ \t\r\n]+/;t=/[ \t\r\n]+$/;k=/[ \t\r\n]+/g;y=/^[ \t\r\n]+$/;function G(){var O=J.firstChild,l,P;while(O){l=O.next;if(O.type==3||(O.type==1&&O.name!=="p"&&!o[O.name]&&!O.attr("data-mce-type"))){if(!P){P=K(q,1);J.insert(P,O);P.append(O)}else{P.append(O)}}else{P=null}O=l}}function K(l,O){var P=new a(l,O),Q;if(l in e){Q=i[l];if(Q){Q.push(P)}else{i[l]=[P]}}return P}function I(P){var Q,l,O;for(Q=P.prev;Q&&Q.type===3;){l=Q.value.replace(t,"");if(l.length>0){Q.value=l;Q=Q.prev}else{O=Q.prev;Q.remove();Q=O}}}function H(O){var P,l={};for(P in O){if(P!=="li"&&P!="p"){l[P]=O[P]}}return l}n=new b.html.SaxParser({validate:z,self_closing_elements:H(h.getSelfClosingElements()),cdata:function(l){B.append(K("#cdata",4)).value=l},text:function(P,l){var O;if(!L){P=P.replace(k," ");if(B.lastChild&&o[B.lastChild.name]){P=P.replace(E,"")}}if(P.length!==0){O=K("#text",3);O.raw=!!l;B.append(O).value=P}},comment:function(l){B.append(K("#comment",8)).value=l},pi:function(l,O){B.append(K(l,7)).value=O;I(B)},doctype:function(O){var l;l=B.append(K("#doctype",10));l.value=O;I(B)},start:function(l,W,P){var U,R,Q,O,S,X,V,T;Q=z?h.getElementRule(l):{};if(Q){U=K(Q.outputName||l,1);U.attributes=W;U.shortEnded=P;B.append(U);T=p[B.name];if(T&&p[U.name]&&!T[U.name]){M.push(U)}R=d.length;while(R--){S=d[R].name;if(S in W.map){F=c[S];if(F){F.push(U)}else{c[S]=[U]}}}if(o[l]){I(U)}if(!P){B=U}if(!L&&s[l]){L=true}}},end:function(l){var S,P,R,O,Q;P=z?h.getElementRule(l):{};if(P){if(o[l]){if(!L){S=B.firstChild;if(S&&S.type===3){R=S.value.replace(E,"");if(R.length>0){S.value=R;S=S.next}else{O=S.next;S.remove();S=O}while(S&&S.type===3){R=S.value;O=S.next;if(R.length===0||y.test(R)){S.remove();S=O}S=O}}S=B.lastChild;if(S&&S.type===3){R=S.value.replace(t,"");if(R.length>0){S.value=R;S=S.prev}else{O=S.prev;S.remove();S=O}while(S&&S.type===3){R=S.value;O=S.prev;if(R.length===0||y.test(R)){S.remove();S=O}S=O}}}}if(L&&s[l]){L=false}if(P.removeEmpty||P.paddEmpty){if(B.isEmpty(u)){if(P.paddEmpty){B.empty().append(new a("#text","3")).value="\u00a0"}else{if(!B.attributes.map.name&&!B.attributes.map.id){Q=B.parent;B.empty().remove();B=Q;return}}}}B=B.parent}}},h);J=B=new a(m.context||g.root_name,11);n.parse(v);if(z&&M.length){if(!m.context){j(M)}else{m.invalid=true}}if(q&&J.name=="body"){G()}if(!m.invalid){for(N in i){F=e[N];A=i[N];x=A.length;while(x--){if(!A[x].parent){A.splice(x,1)}}for(D=0,C=F.length;D<C;D++){F[D](A,N,m)}}for(D=0,C=d.length;D<C;D++){F=d[D];if(F.name in c){A=c[F.name];x=A.length;while(x--){if(!A[x].parent){A.splice(x,1)}}for(x=0,r=F.callbacks.length;x<r;x++){F.callbacks[x](A,F.name,m)}}}}return J};if(g.remove_trailing_brs){f.addNodeFilter("br",function(n,m){var r,q=n.length,o,v=b.extend({},h.getBlockElements()),k=h.getNonEmptyElements(),t,s,p,u;v.body=1;for(r=0;r<q;r++){o=n[r];t=o.parent;if(v[o.parent.name]&&o===t.lastChild){p=o.prev;while(p){u=p.name;if(u!=="span"||p.attr("data-mce-type")!=="bookmark"){if(u!=="br"){break}if(u==="br"){o=null;break}}p=p.prev}if(o){o.remove();if(t.isEmpty(k)){elementRule=h.getElementRule(t.name);if(elementRule){if(elementRule.removeEmpty){t.remove()}else{if(elementRule.paddEmpty){t.empty().append(new b.html.Node("#text",3)).value="\u00a0"}}}}}}else{s=o;while(t.firstChild===s&&t.lastChild===s){s=t;if(v[t.name]){break}t=t.parent}if(s===t){textNode=new b.html.Node("#text",3);textNode.value="\u00a0";o.replace(textNode)}}}})}if(!g.allow_html_in_named_anchor){f.addAttributeFilter("id,name",function(k,l){var n=k.length,p,m,o,q;while(n--){q=k[n];if(q.name==="a"&&q.firstChild&&!q.attr("href")){o=q.parent;p=q.lastChild;do{m=p.prev;o.insert(p,q);p=m}while(p)}}})}}})(tinymce);tinymce.html.Writer=function(e){var c=[],a,b,d,f,g;e=e||{};a=e.indent;b=tinymce.makeMap(e.indent_before||"");d=tinymce.makeMap(e.indent_after||"");f=tinymce.html.Entities.getEncodeFunc(e.entity_encoding||"raw",e.entities);g=e.element_format=="html";return{start:function(m,k,p){var n,j,h,o;if(a&&b[m]&&c.length>0){o=c[c.length-1];if(o.length>0&&o!=="\n"){c.push("\n")}}c.push("<",m);if(k){for(n=0,j=k.length;n<j;n++){h=k[n];c.push(" ",h.name,'="',f(h.value,true),'"')}}if(!p||g){c[c.length]=">"}else{c[c.length]=" />"}if(p&&a&&d[m]&&c.length>0){o=c[c.length-1];if(o.length>0&&o!=="\n"){c.push("\n")}}},end:function(h){var i;c.push("</",h,">");if(a&&d[h]&&c.length>0){i=c[c.length-1];if(i.length>0&&i!=="\n"){c.push("\n")}}},text:function(i,h){if(i.length>0){c[c.length]=h?i:f(i)}},cdata:function(h){c.push("<![CDATA[",h,"]]>")},comment:function(h){c.push("<!--",h,"-->")},pi:function(h,i){if(i){c.push("<?",h," ",i,"?>")}else{c.push("<?",h,"?>")}if(a){c.push("\n")}},doctype:function(h){c.push("<!DOCTYPE",h,">",a?"\n":"")},reset:function(){c.length=0},getContent:function(){return c.join("").replace(/\n$/,"")}}};(function(a){a.html.Serializer=function(c,d){var b=this,e=new a.html.Writer(c);c=c||{};c.validate="validate" in c?c.validate:true;b.schema=d=d||new a.html.Schema();b.writer=e;b.serialize=function(h){var g,i;i=c.validate;g={3:function(k,j){e.text(k.value,k.raw)},8:function(j){e.comment(j.value)},7:function(j){e.pi(j.name,j.value)},10:function(j){e.doctype(j.value)},4:function(j){e.cdata(j.value)},11:function(j){if((j=j.firstChild)){do{f(j)}while(j=j.next)}}};e.reset();function f(k){var t=g[k.type],j,o,s,r,p,u,n,m,q;if(!t){j=k.name;o=k.shortEnded;s=k.attributes;if(i&&s&&s.length>1){u=[];u.map={};q=d.getElementRule(k.name);for(n=0,m=q.attributesOrder.length;n<m;n++){r=q.attributesOrder[n];if(r in s.map){p=s.map[r];u.map[r]=p;u.push({name:r,value:p})}}for(n=0,m=s.length;n<m;n++){r=s[n].name;if(!(r in u.map)){p=s.map[r];u.map[r]=p;u.push({name:r,value:p})}}s=u}e.start(k.name,s,o);if(!o){if((k=k.firstChild)){do{f(k)}while(k=k.next)}e.end(j)}}else{t(k)}}if(h.type==1&&!c.inner){f(h)}else{g[11](h)}return e.getContent()}}})(tinymce);tinymce.dom={};(function(b,h){var g=!!document.addEventListener;function c(k,j,l,i){if(k.addEventListener){k.addEventListener(j,l,i||false)}else{if(k.attachEvent){k.attachEvent("on"+j,l)}}}function e(k,j,l,i){if(k.removeEventListener){k.removeEventListener(j,l,i||false)}else{if(k.detachEvent){k.detachEvent("on"+j,l)}}}function a(n,l){var i,k=l||{};function j(){return false}function m(){return true}for(i in n){if(i!=="layerX"&&i!=="layerY"){k[i]=n[i]}}if(!k.target){k.target=k.srcElement||document}k.preventDefault=function(){k.isDefaultPrevented=m;if(n){if(n.preventDefault){n.preventDefault()}else{n.returnValue=false}}};k.stopPropagation=function(){k.isPropagationStopped=m;if(n){if(n.stopPropagation){n.stopPropagation()}else{n.cancelBubble=true}}};k.stopImmediatePropagation=function(){k.isImmediatePropagationStopped=m;k.stopPropagation()};if(!k.isDefaultPrevented){k.isDefaultPrevented=j;k.isPropagationStopped=j;k.isImmediatePropagationStopped=j}return k}function d(m,n,l){var k=m.document,j={type:"ready"};function i(){if(!l.domLoaded){l.domLoaded=true;n(j)}}if(k.readyState=="complete"){i();return}if(g){c(m,"DOMContentLoaded",i)}else{c(k,"readystatechange",function(){if(k.readyState==="complete"){e(k,"readystatechange",arguments.callee);i()}});if(k.documentElement.doScroll&&m===m.top){(function(){try{k.documentElement.doScroll("left")}catch(o){setTimeout(arguments.callee,0);return}i()})()}}c(m,"load",i)}function f(k){var q=this,p={},i,o,n,m,l;m="onmouseenter" in document.documentElement;n="onfocusin" in document.documentElement;l={mouseenter:"mouseover",mouseleave:"mouseout"};i=1;q.domLoaded=false;q.events=p;function j(t,x){var s,u,r,v;s=p[x][t.type];if(s){for(u=0,r=s.length;u<r;u++){v=s[u];if(v&&v.func.call(v.scope,t)===false){t.preventDefault()}if(t.isImmediatePropagationStopped()){return}}}}q.bind=function(x,A,D,E){var s,t,u,r,B,z,C,v=window;function y(F){j(a(F||v.event),s)}if(!x||x.nodeType===3||x.nodeType===8){return}if(!x[h]){s=i++;x[h]=s;p[s]={}}else{s=x[h];if(!p[s]){p[s]={}}}E=E||x;A=A.split(" ");u=A.length;while(u--){r=A[u];z=y;B=C=false;if(r==="DOMContentLoaded"){r="ready"}if((q.domLoaded||x.readyState=="complete")&&r==="ready"){q.domLoaded=true;D.call(E,a({type:r}));continue}if(!m){B=l[r];if(B){z=function(F){var H,G;H=F.currentTarget;G=F.relatedTarget;if(G&&H.contains){G=H.contains(G)}else{while(G&&G!==H){G=G.parentNode}}if(!G){F=a(F||v.event);F.type=F.type==="mouseout"?"mouseleave":"mouseenter";F.target=H;j(F,s)}}}}if(!n&&(r==="focusin"||r==="focusout")){C=true;B=r==="focusin"?"focus":"blur";z=function(F){F=a(F||v.event);F.type=F.type==="focus"?"focusin":"focusout";j(F,s)}}t=p[s][r];if(!t){p[s][r]=t=[{func:D,scope:E}];t.fakeName=B;t.capture=C;t.nativeHandler=z;if(!g){t.proxyHandler=k(s)}if(r==="ready"){d(x,z,q)}else{c(x,B||r,g?z:t.proxyHandler,C)}}else{t.push({func:D,scope:E})}}x=t=0;return D};q.unbind=function(x,z,A){var s,u,v,B,r,t;if(!x||x.nodeType===3||x.nodeType===8){return q}s=x[h];if(s){t=p[s];if(z){z=z.split(" ");v=z.length;while(v--){r=z[v];u=t[r];if(u){if(A){B=u.length;while(B--){if(u[B].func===A){u.splice(B,1)}}}if(!A||u.length===0){delete t[r];e(x,u.fakeName||r,g?u.nativeHandler:u.proxyHandler,u.capture)}}}}else{for(r in t){u=t[r];e(x,u.fakeName||r,g?u.nativeHandler:u.proxyHandler,u.capture)}t={}}for(r in t){return q}delete p[s];try{delete x[h]}catch(y){x[h]=null}}return q};q.fire=function(u,s,r){var v,t;if(!u||u.nodeType===3||u.nodeType===8){return q}t=a(null,r);t.type=s;do{v=u[h];if(v){j(t,v)}u=u.parentNode||u.ownerDocument||u.defaultView||u.parentWindow}while(u&&!t.isPropagationStopped());return q};q.clean=function(u){var s,r,t=q.unbind;if(!u||u.nodeType===3||u.nodeType===8){return q}if(u[h]){t(u)}if(!u.getElementsByTagName){u=u.document}if(u&&u.getElementsByTagName){t(u);r=u.getElementsByTagName("*");s=r.length;while(s--){u=r[s];if(u[h]){t(u)}}}return q};q.callNativeHandler=function(s,r){if(p){p[s][r.type].nativeHandler(r)}};q.destory=function(){p={}};q.add=function(v,s,u,t){if(typeof(v)==="string"){v=document.getElementById(v)}if(v&&v instanceof Array){var r=v.length;while(r--){q.add(v[r],s,u,t)}return}if(s==="init"){s="ready"}return q.bind(v,s instanceof Array?s.join(" "):s,u,t)};q.remove=function(v,s,u,t){if(!v){return q}if(typeof(v)==="string"){v=document.getElementById(v)}if(v instanceof Array){var r=v.length;while(r--){q.remove(v[r],s,u,t)}return q}return q.unbind(v,s instanceof Array?s.join(" "):s,u)};q.clear=function(r){if(typeof(r)==="string"){r=document.getElementById(r)}return q.clean(r)};q.cancel=function(r){if(r){q.prevent(r);q.stop(r)}return false};q.prevent=function(r){if(!r.preventDefault){r=a(r)}r.preventDefault();return false};q.stop=function(r){if(!r.stopPropagation){r=a(r)}r.stopPropagation();return false}}b.EventUtils=f;b.Event=new f(function(i){return function(j){tinymce.dom.Event.callNativeHandler(i,j)}});b.Event.bind(window,"ready",function(){});b=0})(tinymce.dom,"data-mce-expando");tinymce.dom.TreeWalker=function(a,c){var b=a;function d(i,f,e,j){var h,g;if(i){if(!j&&i[f]){return i[f]}if(i!=c){h=i[e];if(h){return h}for(g=i.parentNode;g&&g!=c;g=g.parentNode){h=g[e];if(h){return h}}}}}this.current=function(){return b};this.next=function(e){return(b=d(b,"firstChild","nextSibling",e))};this.prev=function(e){return(b=d(b,"lastChild","previousSibling",e))}};(function(e){var g=e.each,d=e.is,f=e.isWebKit,b=e.isIE,h=e.html.Entities,c=/^([a-z0-9],?)+$/i,a=/^[ \t\r\n]*$/;e.create("tinymce.dom.DOMUtils",{doc:null,root:null,files:null,pixelStyles:/^(top|left|bottom|right|width|height|borderWidth)$/,props:{"for":"htmlFor","class":"className",className:"className",checked:"checked",disabled:"disabled",maxlength:"maxLength",readonly:"readOnly",selected:"selected",value:"value",id:"id",name:"name",type:"type"},DOMUtils:function(o,l){var k=this,i,j,n;k.doc=o;k.win=window;k.files={};k.cssFlicker=false;k.counter=0;k.stdMode=!e.isIE||o.documentMode>=8;k.boxModel=!e.isIE||o.compatMode=="CSS1Compat"||k.stdMode;k.hasOuterHTML="outerHTML" in o.createElement("a");k.settings=l=e.extend({keep_values:false,hex_colors:1},l);k.schema=l.schema;k.styles=new e.html.Styles({url_converter:l.url_converter,url_converter_scope:l.url_converter_scope},l.schema);if(e.isIE6){try{o.execCommand("BackgroundImageCache",false,true)}catch(m){k.cssFlicker=true}}k.fixDoc(o);k.events=l.ownEvents?new e.dom.EventUtils(l.proxy):e.dom.Event;e.addUnload(k.destroy,k);n=l.schema?l.schema.getBlockElements():{};k.isBlock=function(q){if(!q){return false}var p=q.nodeType;if(p){return !!(p===1&&n[q.nodeName])}return !!n[q]}},fixDoc:function(k){var j=this.settings,i;if(b&&j.schema){("abbr article aside audio canvas details figcaption figure footer header hgroup mark menu meter nav output progress section summary time video").replace(/\w+/g,function(l){k.createElement(l)});for(i in j.schema.getCustomElements()){k.createElement(i)}}},clone:function(k,i){var j=this,m,l;if(!b||k.nodeType!==1||i){return k.cloneNode(i)}l=j.doc;if(!i){m=l.createElement(k.nodeName);g(j.getAttribs(k),function(n){j.setAttrib(m,n.nodeName,j.getAttrib(k,n.nodeName))});return m}return m.firstChild},getRoot:function(){var i=this,j=i.settings;return(j&&i.get(j.root_element))||i.doc.body},getViewPort:function(j){var k,i;j=!j?this.win:j;k=j.document;i=this.boxModel?k.documentElement:k.body;return{x:j.pageXOffset||i.scrollLeft,y:j.pageYOffset||i.scrollTop,w:j.innerWidth||i.clientWidth,h:j.innerHeight||i.clientHeight}},getRect:function(l){var k,i=this,j;l=i.get(l);k=i.getPos(l);j=i.getSize(l);return{x:k.x,y:k.y,w:j.w,h:j.h}},getSize:function(l){var j=this,i,k;l=j.get(l);i=j.getStyle(l,"width");k=j.getStyle(l,"height");if(i.indexOf("px")===-1){i=0}if(k.indexOf("px")===-1){k=0}return{w:parseInt(i,10)||l.offsetWidth||l.clientWidth,h:parseInt(k,10)||l.offsetHeight||l.clientHeight}},getParent:function(k,j,i){return this.getParents(k,j,i,false)},getParents:function(s,m,k,q){var j=this,i,l=j.settings,p=[];s=j.get(s);q=q===undefined;if(l.strict_root){k=k||j.getRoot()}if(d(m,"string")){i=m;if(m==="*"){m=function(o){return o.nodeType==1}}else{m=function(o){return j.is(o,i)}}}while(s){if(s==k||!s.nodeType||s.nodeType===9){break}if(!m||m(s)){if(q){p.push(s)}else{return s}}s=s.parentNode}return q?p:null},get:function(i){var j;if(i&&this.doc&&typeof(i)=="string"){j=i;i=this.doc.getElementById(i);if(i&&i.id!==j){return this.doc.getElementsByName(j)[1]}}return i},getNext:function(j,i){return this._findSib(j,i,"nextSibling")},getPrev:function(j,i){return this._findSib(j,i,"previousSibling")},select:function(k,j){var i=this;return e.dom.Sizzle(k,i.get(j)||i.get(i.settings.root_element)||i.doc,[])},is:function(l,j){var k;if(l.length===undefined){if(j==="*"){return l.nodeType==1}if(c.test(j)){j=j.toLowerCase().split(/,/);l=l.nodeName.toLowerCase();for(k=j.length-1;k>=0;k--){if(j[k]==l){return true}}return false}}return e.dom.Sizzle.matches(j,l.nodeType?[l]:l).length>0},add:function(l,o,i,k,m){var j=this;return this.run(l,function(r){var q,n;q=d(o,"string")?j.doc.createElement(o):o;j.setAttribs(q,i);if(k){if(k.nodeType){q.appendChild(k)}else{j.setHTML(q,k)}}return !m?r.appendChild(q):q})},create:function(k,i,j){return this.add(this.doc.createElement(k),k,i,j,1)},createHTML:function(q,i,m){var p="",l=this,j;p+="<"+q;for(j in i){if(i.hasOwnProperty(j)){p+=" "+j+'="'+l.encode(i[j])+'"'}}if(typeof(m)!="undefined"){return p+">"+m+"</"+q+">"}return p+" />"},remove:function(i,j){return this.run(i,function(l){var m,k=l.parentNode;if(!k){return null}if(j){while(m=l.firstChild){if(!e.isIE||m.nodeType!==3||m.nodeValue){k.insertBefore(m,l)}else{l.removeChild(m)}}}return k.removeChild(l)})},setStyle:function(l,i,j){var k=this;return k.run(l,function(o){var n,m;n=o.style;i=i.replace(/-(\D)/g,function(q,p){return p.toUpperCase()});if(k.pixelStyles.test(i)&&(e.is(j,"number")||/^[\-0-9\.]+$/.test(j))){j+="px"}switch(i){case"opacity":if(b){n.filter=j===""?"":"alpha(opacity="+(j*100)+")";if(!l.currentStyle||!l.currentStyle.hasLayout){n.display="inline-block"}}n[i]=n["-moz-opacity"]=n["-khtml-opacity"]=j||"";break;case"float":b?n.styleFloat=j:n.cssFloat=j;break;default:n[i]=j||""}if(k.settings.update_styles){k.setAttrib(o,"data-mce-style")}})},getStyle:function(l,i,k){l=this.get(l);if(!l){return}if(this.doc.defaultView&&k){i=i.replace(/[A-Z]/g,function(m){return"-"+m});try{return this.doc.defaultView.getComputedStyle(l,null).getPropertyValue(i)}catch(j){return null}}i=i.replace(/-(\D)/g,function(n,m){return m.toUpperCase()});if(i=="float"){i=b?"styleFloat":"cssFloat"}if(l.currentStyle&&k){return l.currentStyle[i]}return l.style?l.style[i]:undefined},setStyles:function(l,m){var j=this,k=j.settings,i;i=k.update_styles;k.update_styles=0;g(m,function(o,p){j.setStyle(l,p,o)});k.update_styles=i;if(k.update_styles){j.setAttrib(l,k.cssText)}},removeAllAttribs:function(i){return this.run(i,function(l){var k,j=l.attributes;for(k=j.length-1;k>=0;k--){l.removeAttributeNode(j.item(k))}})},setAttrib:function(k,l,i){var j=this;if(!k||!l){return}if(j.settings.strict){l=l.toLowerCase()}return this.run(k,function(p){var o=j.settings;var m=p.getAttribute(l);if(i!==null){switch(l){case"style":if(!d(i,"string")){g(i,function(q,r){j.setStyle(p,r,q)});return}if(o.keep_values){if(i&&!j._isRes(i)){p.setAttribute("data-mce-style",i,2)}else{p.removeAttribute("data-mce-style",2)}}p.style.cssText=i;break;case"class":p.className=i||"";break;case"src":case"href":if(o.keep_values){if(o.url_converter){i=o.url_converter.call(o.url_converter_scope||j,i,l,p)}j.setAttrib(p,"data-mce-"+l,i,2)}break;case"shape":p.setAttribute("data-mce-style",i);break}}if(d(i)&&i!==null&&i.length!==0){p.setAttribute(l,""+i,2)}else{p.removeAttribute(l,2)}if(tinyMCE.activeEditor&&m!=i){var n=tinyMCE.activeEditor;n.onSetAttrib.dispatch(n,p,l,i)}})},setAttribs:function(j,k){var i=this;return this.run(j,function(l){g(k,function(m,o){i.setAttrib(l,o,m)})})},getAttrib:function(m,o,k){var i,j=this,l;m=j.get(m);if(!m||m.nodeType!==1){return k===l?false:k}if(!d(k)){k=""}if(/^(src|href|style|coords|shape)$/.test(o)){i=m.getAttribute("data-mce-"+o);if(i){return i}}if(b&&j.props[o]){i=m[j.props[o]];i=i&&i.nodeValue?i.nodeValue:i}if(!i){i=m.getAttribute(o,2)}if(/^(checked|compact|declare|defer|disabled|ismap|multiple|nohref|noshade|nowrap|readonly|selected)$/.test(o)){if(m[j.props[o]]===true&&i===""){return o}return i?o:""}if(m.nodeName==="FORM"&&m.getAttributeNode(o)){return m.getAttributeNode(o).nodeValue}if(o==="style"){i=i||m.style.cssText;if(i){i=j.serializeStyle(j.parseStyle(i),m.nodeName);if(j.settings.keep_values&&!j._isRes(i)){m.setAttribute("data-mce-style",i)}}}if(f&&o==="class"&&i){i=i.replace(/(apple|webkit)\-[a-z\-]+/gi,"")}if(b){switch(o){case"rowspan":case"colspan":if(i===1){i=""}break;case"size":if(i==="+0"||i===20||i===0){i=""}break;case"width":case"height":case"vspace":case"checked":case"disabled":case"readonly":if(i===0){i=""}break;case"hspace":if(i===-1){i=""}break;case"maxlength":case"tabindex":if(i===32768||i===2147483647||i==="32768"){i=""}break;case"multiple":case"compact":case"noshade":case"nowrap":if(i===65535){return o}return k;case"shape":i=i.toLowerCase();break;default:if(o.indexOf("on")===0&&i){i=e._replace(/^function\s+\w+\(\)\s+\{\s+(.*)\s+\}$/,"$1",""+i)}}}return(i!==l&&i!==null&&i!=="")?""+i:k},getPos:function(q,l){var j=this,i=0,p=0,m,o=j.doc,k;q=j.get(q);l=l||o.body;if(q){if(q.getBoundingClientRect){q=q.getBoundingClientRect();m=j.boxModel?o.documentElement:o.body;i=q.left+(o.documentElement.scrollLeft||o.body.scrollLeft)-m.clientTop;p=q.top+(o.documentElement.scrollTop||o.body.scrollTop)-m.clientLeft;return{x:i,y:p}}k=q;while(k&&k!=l&&k.nodeType){i+=k.offsetLeft||0;p+=k.offsetTop||0;k=k.offsetParent}k=q.parentNode;while(k&&k!=l&&k.nodeType){i-=k.scrollLeft||0;p-=k.scrollTop||0;k=k.parentNode}}return{x:i,y:p}},parseStyle:function(i){return this.styles.parse(i)},serializeStyle:function(j,i){return this.styles.serialize(j,i)},addStyle:function(j){var k=this.doc,i;styleElm=k.getElementById("mceDefaultStyles");if(!styleElm){styleElm=k.createElement("style"),styleElm.id="mceDefaultStyles";styleElm.type="text/css";i=k.getElementsByTagName("head")[0];if(i.firstChild){i.insertBefore(styleElm,i.firstChild)}else{i.appendChild(styleElm)}}if(styleElm.styleSheet){styleElm.styleSheet.cssText+=j}else{styleElm.appendChild(k.createTextNode(j))}},loadCSS:function(i){var k=this,l=k.doc,j;if(!i){i=""}j=l.getElementsByTagName("head")[0];g(i.split(","),function(m){var n;if(k.files[m]){return}k.files[m]=true;n=k.create("link",{rel:"stylesheet",href:e._addVer(m)});if(b&&l.documentMode&&l.recalc){n.onload=function(){if(l.recalc){l.recalc()}n.onload=null}}j.appendChild(n)})},addClass:function(i,j){return this.run(i,function(k){var l;if(!j){return 0}if(this.hasClass(k,j)){return k.className}l=this.removeClass(k,j);return k.className=(l!=""?(l+" "):"")+j})},removeClass:function(k,l){var i=this,j;return i.run(k,function(n){var m;if(i.hasClass(n,l)){if(!j){j=new RegExp("(^|\\s+)"+l+"(\\s+|$)","g")}m=n.className.replace(j," ");m=e.trim(m!=" "?m:"");n.className=m;if(!m){n.removeAttribute("class");n.removeAttribute("className")}return m}return n.className})},hasClass:function(j,i){j=this.get(j);if(!j||!i){return false}return(" "+j.className+" ").indexOf(" "+i+" ")!==-1},show:function(i){return this.setStyle(i,"display","block")},hide:function(i){return this.setStyle(i,"display","none")},isHidden:function(i){i=this.get(i);return !i||i.style.display=="none"||this.getStyle(i,"display")=="none"},uniqueId:function(i){return(!i?"mce_":i)+(this.counter++)},setHTML:function(k,j){var i=this;return i.run(k,function(m){if(b){while(m.firstChild){m.removeChild(m.firstChild)}try{m.innerHTML="<br />"+j;m.removeChild(m.firstChild)}catch(l){var n=i.create("div");n.innerHTML="<br />"+j;g(e.grep(n.childNodes),function(p,o){if(o&&m.canHaveHTML){m.appendChild(p)}})}}else{m.innerHTML=j}return j})},getOuterHTML:function(k){var j,i=this;k=i.get(k);if(!k){return null}if(k.nodeType===1&&i.hasOuterHTML){return k.outerHTML}j=(k.ownerDocument||i.doc).createElement("body");j.appendChild(k.cloneNode(true));return j.innerHTML},setOuterHTML:function(l,j,m){var i=this;function k(p,o,r){var s,q;q=r.createElement("body");q.innerHTML=o;s=q.lastChild;while(s){i.insertAfter(s.cloneNode(true),p);s=s.previousSibling}i.remove(p)}return this.run(l,function(o){o=i.get(o);if(o.nodeType==1){m=m||o.ownerDocument||i.doc;if(b){try{if(b&&o.nodeType==1){o.outerHTML=j}else{k(o,j,m)}}catch(n){k(o,j,m)}}else{k(o,j,m)}}})},decode:h.decode,encode:h.encodeAllRaw,insertAfter:function(i,j){j=this.get(j);return this.run(i,function(l){var k,m;k=j.parentNode;m=j.nextSibling;if(m){k.insertBefore(l,m)}else{k.appendChild(l)}return l})},replace:function(m,l,i){var j=this;if(d(l,"array")){m=m.cloneNode(true)}return j.run(l,function(k){if(i){g(e.grep(k.childNodes),function(n){m.appendChild(n)})}return k.parentNode.replaceChild(m,k)})},rename:function(l,i){var k=this,j;if(l.nodeName!=i.toUpperCase()){j=k.create(i);g(k.getAttribs(l),function(m){k.setAttrib(j,m.nodeName,k.getAttrib(l,m.nodeName))});k.replace(j,l,1)}return j||l},findCommonAncestor:function(k,i){var l=k,j;while(l){j=i;while(j&&l!=j){j=j.parentNode}if(l==j){break}l=l.parentNode}if(!l&&k.ownerDocument){return k.ownerDocument.documentElement}return l},toHex:function(i){var k=/^\s*rgb\s*?\(\s*?([0-9]+)\s*?,\s*?([0-9]+)\s*?,\s*?([0-9]+)\s*?\)\s*$/i.exec(i);function j(l){l=parseInt(l,10).toString(16);return l.length>1?l:"0"+l}if(k){i="#"+j(k[1])+j(k[2])+j(k[3]);return i}return i},getClasses:function(){var n=this,j=[],m,o={},p=n.settings.class_filter,l;if(n.classes){return n.classes}function q(i){g(i.imports,function(s){q(s)});g(i.cssRules||i.rules,function(s){switch(s.type||1){case 1:if(s.selectorText){g(s.selectorText.split(","),function(r){r=r.replace(/^\s*|\s*$|^\s\./g,"");if(/\.mce/.test(r)||!/\.[\w\-]+$/.test(r)){return}l=r;r=e._replace(/.*\.([a-z0-9_\-]+).*/i,"$1",r);if(p&&!(r=p(r,l))){return}if(!o[r]){j.push({"class":r});o[r]=1}})}break;case 3:q(s.styleSheet);break}})}try{g(n.doc.styleSheets,q)}catch(k){}if(j.length>0){n.classes=j}return j},run:function(l,k,j){var i=this,m;if(i.doc&&typeof(l)==="string"){l=i.get(l)}if(!l){return false}j=j||this;if(!l.nodeType&&(l.length||l.length===0)){m=[];g(l,function(o,n){if(o){if(typeof(o)=="string"){o=i.doc.getElementById(o)}m.push(k.call(j,o,n))}});return m}return k.call(j,l)},getAttribs:function(j){var i;j=this.get(j);if(!j){return[]}if(b){i=[];if(j.nodeName=="OBJECT"){return j.attributes}if(j.nodeName==="OPTION"&&this.getAttrib(j,"selected")){i.push({specified:1,nodeName:"selected"})}j.cloneNode(false).outerHTML.replace(/<\/?[\w:\-]+ ?|=[\"][^\"]+\"|=\'[^\']+\'|=[\w\-]+|>/gi,"").replace(/[\w:\-]+/gi,function(k){i.push({specified:1,nodeName:k})});return i}return j.attributes},isEmpty:function(m,k){var r=this,o,n,q,j,l,p=0;m=m.firstChild;if(m){j=new e.dom.TreeWalker(m,m.parentNode);k=k||r.schema?r.schema.getNonEmptyElements():null;do{q=m.nodeType;if(q===1){if(m.getAttribute("data-mce-bogus")){continue}l=m.nodeName.toLowerCase();if(k&&k[l]){if(l==="br"){p++;continue}return false}n=r.getAttribs(m);o=m.attributes.length;while(o--){l=m.attributes[o].nodeName;if(l==="name"||l==="data-mce-bookmark"){return false}}}if(q==8){return false}if((q===3&&!a.test(m.nodeValue))){return false}}while(m=j.next())}return p<=1},destroy:function(j){var i=this;i.win=i.doc=i.root=i.events=i.frag=null;if(!j){e.removeUnload(i.destroy)}},createRng:function(){var i=this.doc;return i.createRange?i.createRange():new e.dom.Range(this)},nodeIndex:function(m,n){var i=0,k,l,j;if(m){for(k=m.nodeType,m=m.previousSibling,l=m;m;m=m.previousSibling){j=m.nodeType;if(n&&j==3){if(j==k||!m.nodeValue.length){continue}}i++;k=j}}return i},split:function(m,l,p){var q=this,i=q.createRng(),n,k,o;function j(v){var t,s=v.childNodes,u=v.nodeType;function x(A){var z=A.previousSibling&&A.previousSibling.nodeName=="SPAN";var y=A.nextSibling&&A.nextSibling.nodeName=="SPAN";return z&&y}if(u==1&&v.getAttribute("data-mce-type")=="bookmark"){return}for(t=s.length-1;t>=0;t--){j(s[t])}if(u!=9){if(u==3&&v.nodeValue.length>0){var r=e.trim(v.nodeValue).length;if(!q.isBlock(v.parentNode)||r>0||r===0&&x(v)){return}}else{if(u==1){s=v.childNodes;if(s.length==1&&s[0]&&s[0].nodeType==1&&s[0].getAttribute("data-mce-type")=="bookmark"){v.parentNode.insertBefore(s[0],v)}if(s.length||/^(br|hr|input|img)$/i.test(v.nodeName)){return}}}q.remove(v)}return v}if(m&&l){i.setStart(m.parentNode,q.nodeIndex(m));i.setEnd(l.parentNode,q.nodeIndex(l));n=i.extractContents();i=q.createRng();i.setStart(l.parentNode,q.nodeIndex(l)+1);i.setEnd(m.parentNode,q.nodeIndex(m)+1);k=i.extractContents();o=m.parentNode;o.insertBefore(j(n),m);if(p){o.replaceChild(p,l)}else{o.insertBefore(l,m)}o.insertBefore(j(k),m);q.remove(m);return p||l}},bind:function(l,i,k,j){return this.events.add(l,i,k,j||this)},unbind:function(k,i,j){return this.events.remove(k,i,j)},fire:function(k,j,i){return this.events.fire(k,j,i)},getContentEditable:function(j){var i;if(j.nodeType!=1){return null}i=j.getAttribute("data-mce-contenteditable");if(i&&i!=="inherit"){return i}return j.contentEditable!=="inherit"?j.contentEditable:null},_findSib:function(l,i,j){var k=this,m=i;if(l){if(d(m,"string")){m=function(n){return k.is(n,i)}}for(l=l[j];l;l=l[j]){if(m(l)){return l}}}return null},_isRes:function(i){return/^(top|left|bottom|right|width|height)/i.test(i)||/;\s*(top|left|bottom|right|width|height)/i.test(i)}});e.DOM=new e.dom.DOMUtils(document,{process_html:0})})(tinymce);(function(a){function b(c){var O=this,e=c.doc,U=0,F=1,j=2,E=true,S=false,W="startOffset",h="startContainer",Q="endContainer",A="endOffset",k=tinymce.extend,n=c.nodeIndex;k(O,{startContainer:e,startOffset:0,endContainer:e,endOffset:0,collapsed:E,commonAncestorContainer:e,START_TO_START:0,START_TO_END:1,END_TO_END:2,END_TO_START:3,setStart:q,setEnd:s,setStartBefore:g,setStartAfter:J,setEndBefore:K,setEndAfter:u,collapse:B,selectNode:y,selectNodeContents:G,compareBoundaryPoints:v,deleteContents:p,extractContents:I,cloneContents:d,insertNode:D,surroundContents:N,cloneRange:L,toStringIE:T});function x(){return e.createDocumentFragment()}function q(X,t){C(E,X,t)}function s(X,t){C(S,X,t)}function g(t){q(t.parentNode,n(t))}function J(t){q(t.parentNode,n(t)+1)}function K(t){s(t.parentNode,n(t))}function u(t){s(t.parentNode,n(t)+1)}function B(t){if(t){O[Q]=O[h];O[A]=O[W]}else{O[h]=O[Q];O[W]=O[A]}O.collapsed=E}function y(t){g(t);u(t)}function G(t){q(t,0);s(t,t.nodeType===1?t.childNodes.length:t.nodeValue.length)}function v(aa,t){var ad=O[h],Y=O[W],ac=O[Q],X=O[A],ab=t.startContainer,af=t.startOffset,Z=t.endContainer,ae=t.endOffset;if(aa===0){return H(ad,Y,ab,af)}if(aa===1){return H(ac,X,ab,af)}if(aa===2){return H(ac,X,Z,ae)}if(aa===3){return H(ad,Y,Z,ae)}}function p(){l(j)}function I(){return l(U)}function d(){return l(F)}function D(aa){var X=this[h],t=this[W],Z,Y;if((X.nodeType===3||X.nodeType===4)&&X.nodeValue){if(!t){X.parentNode.insertBefore(aa,X)}else{if(t>=X.nodeValue.length){c.insertAfter(aa,X)}else{Z=X.splitText(t);X.parentNode.insertBefore(aa,Z)}}}else{if(X.childNodes.length>0){Y=X.childNodes[t]}if(Y){X.insertBefore(aa,Y)}else{X.appendChild(aa)}}}function N(X){var t=O.extractContents();O.insertNode(X);X.appendChild(t);O.selectNode(X)}function L(){return k(new b(c),{startContainer:O[h],startOffset:O[W],endContainer:O[Q],endOffset:O[A],collapsed:O.collapsed,commonAncestorContainer:O.commonAncestorContainer})}function P(t,X){var Y;if(t.nodeType==3){return t}if(X<0){return t}Y=t.firstChild;while(Y&&X>0){--X;Y=Y.nextSibling}if(Y){return Y}return t}function m(){return(O[h]==O[Q]&&O[W]==O[A])}function H(Z,ab,X,aa){var ac,Y,t,ad,af,ae;if(Z==X){if(ab==aa){return 0}if(ab<aa){return -1}return 1}ac=X;while(ac&&ac.parentNode!=Z){ac=ac.parentNode}if(ac){Y=0;t=Z.firstChild;while(t!=ac&&Y<ab){Y++;t=t.nextSibling}if(ab<=Y){return -1}return 1}ac=Z;while(ac&&ac.parentNode!=X){ac=ac.parentNode}if(ac){Y=0;t=X.firstChild;while(t!=ac&&Y<aa){Y++;t=t.nextSibling}if(Y<aa){return -1}return 1}ad=c.findCommonAncestor(Z,X);af=Z;while(af&&af.parentNode!=ad){af=af.parentNode}if(!af){af=ad}ae=X;while(ae&&ae.parentNode!=ad){ae=ae.parentNode}if(!ae){ae=ad}if(af==ae){return 0}t=ad.firstChild;while(t){if(t==af){return -1}if(t==ae){return 1}t=t.nextSibling}}function C(X,aa,Z){var t,Y;if(X){O[h]=aa;O[W]=Z}else{O[Q]=aa;O[A]=Z}t=O[Q];while(t.parentNode){t=t.parentNode}Y=O[h];while(Y.parentNode){Y=Y.parentNode}if(Y==t){if(H(O[h],O[W],O[Q],O[A])>0){O.collapse(X)}}else{O.collapse(X)}O.collapsed=m();O.commonAncestorContainer=c.findCommonAncestor(O[h],O[Q])}function l(ad){var ac,Z=0,af=0,X,ab,Y,aa,t,ae;if(O[h]==O[Q]){return f(ad)}for(ac=O[Q],X=ac.parentNode;X;ac=X,X=X.parentNode){if(X==O[h]){return r(ac,ad)}++Z}for(ac=O[h],X=ac.parentNode;X;ac=X,X=X.parentNode){if(X==O[Q]){return V(ac,ad)}++af}ab=af-Z;Y=O[h];while(ab>0){Y=Y.parentNode;ab--}aa=O[Q];while(ab<0){aa=aa.parentNode;ab++}for(t=Y.parentNode,ae=aa.parentNode;t!=ae;t=t.parentNode,ae=ae.parentNode){Y=t;aa=ae}return o(Y,aa,ad)}function f(ac){var ae,af,t,Y,Z,ad,aa,X,ab;if(ac!=j){ae=x()}if(O[W]==O[A]){return ae}if(O[h].nodeType==3){af=O[h].nodeValue;t=af.substring(O[W],O[A]);if(ac!=F){Y=O[h];X=O[W];ab=O[A]-O[W];if(X===0&&ab>=Y.nodeValue.length-1){Y.parentNode.removeChild(Y)}else{Y.deleteData(X,ab)}O.collapse(E)}if(ac==j){return}if(t.length>0){ae.appendChild(e.createTextNode(t))}return ae}Y=P(O[h],O[W]);Z=O[A]-O[W];while(Y&&Z>0){ad=Y.nextSibling;aa=z(Y,ac);if(ae){ae.appendChild(aa)}--Z;Y=ad}if(ac!=F){O.collapse(E)}return ae}function r(ad,aa){var ac,ab,X,t,Z,Y;if(aa!=j){ac=x()}ab=i(ad,aa);if(ac){ac.appendChild(ab)}X=n(ad);t=X-O[W];if(t<=0){if(aa!=F){O.setEndBefore(ad);O.collapse(S)}return ac}ab=ad.previousSibling;while(t>0){Z=ab.previousSibling;Y=z(ab,aa);if(ac){ac.insertBefore(Y,ac.firstChild)}--t;ab=Z}if(aa!=F){O.setEndBefore(ad);O.collapse(S)}return ac}function V(ab,aa){var ad,X,ac,t,Z,Y;if(aa!=j){ad=x()}ac=R(ab,aa);if(ad){ad.appendChild(ac)}X=n(ab);++X;t=O[A]-X;ac=ab.nextSibling;while(ac&&t>0){Z=ac.nextSibling;Y=z(ac,aa);if(ad){ad.appendChild(Y)}--t;ac=Z}if(aa!=F){O.setStartAfter(ab);O.collapse(E)}return ad}function o(ab,t,ae){var Y,ag,aa,ac,ad,X,af,Z;if(ae!=j){ag=x()}Y=R(ab,ae);if(ag){ag.appendChild(Y)}aa=ab.parentNode;ac=n(ab);ad=n(t);++ac;X=ad-ac;af=ab.nextSibling;while(X>0){Z=af.nextSibling;Y=z(af,ae);if(ag){ag.appendChild(Y)}af=Z;--X}Y=i(t,ae);if(ag){ag.appendChild(Y)}if(ae!=F){O.setStartAfter(ab);O.collapse(E)}return ag}function i(ac,ad){var Y=P(O[Q],O[A]-1),ae,ab,aa,t,X,Z=Y!=O[Q];if(Y==ac){return M(Y,Z,S,ad)}ae=Y.parentNode;ab=M(ae,S,S,ad);while(ae){while(Y){aa=Y.previousSibling;t=M(Y,Z,S,ad);if(ad!=j){ab.insertBefore(t,ab.firstChild)}Z=E;Y=aa}if(ae==ac){return ab}Y=ae.previousSibling;ae=ae.parentNode;X=M(ae,S,S,ad);if(ad!=j){X.appendChild(ab)}ab=X}}function R(ac,ad){var Z=P(O[h],O[W]),aa=Z!=O[h],ae,ab,Y,t,X;if(Z==ac){return M(Z,aa,E,ad)}ae=Z.parentNode;ab=M(ae,S,E,ad);while(ae){while(Z){Y=Z.nextSibling;t=M(Z,aa,E,ad);if(ad!=j){ab.appendChild(t)}aa=E;Z=Y}if(ae==ac){return ab}Z=ae.nextSibling;ae=ae.parentNode;X=M(ae,S,E,ad);if(ad!=j){X.appendChild(ab)}ab=X}}function M(t,aa,ad,ae){var Z,Y,ab,X,ac;if(aa){return z(t,ae)}if(t.nodeType==3){Z=t.nodeValue;if(ad){X=O[W];Y=Z.substring(X);ab=Z.substring(0,X)}else{X=O[A];Y=Z.substring(0,X);ab=Z.substring(X)}if(ae!=F){t.nodeValue=ab}if(ae==j){return}ac=c.clone(t,S);ac.nodeValue=Y;return ac}if(ae==j){return}return c.clone(t,S)}function z(X,t){if(t!=j){return t==F?c.clone(X,E):X}X.parentNode.removeChild(X)}function T(){return c.create("body",null,d()).outerText}return O}a.Range=b;b.prototype.toString=function(){return this.toStringIE()}})(tinymce.dom);(function(){function a(d){var b=this,h=d.dom,c=true,f=false;function e(i,j){var k,t=0,q,n,m,l,o,r,p=-1,s;k=i.duplicate();k.collapse(j);s=k.parentElement();if(s.ownerDocument!==d.dom.doc){return}while(s.contentEditable==="false"){s=s.parentNode}if(!s.hasChildNodes()){return{node:s,inside:1}}m=s.children;q=m.length-1;while(t<=q){r=Math.floor((t+q)/2);l=m[r];k.moveToElementText(l);p=k.compareEndPoints(j?"StartToStart":"EndToEnd",i);if(p>0){q=r-1}else{if(p<0){t=r+1}else{return{node:l}}}}if(p<0){if(!l){k.moveToElementText(s);k.collapse(true);l=s;n=true}else{k.collapse(false)}o=0;while(k.compareEndPoints(j?"StartToStart":"StartToEnd",i)!==0){if(k.move("character",1)===0||s!=k.parentElement()){break}o++}}else{k.collapse(true);o=0;while(k.compareEndPoints(j?"StartToStart":"StartToEnd",i)!==0){if(k.move("character",-1)===0||s!=k.parentElement()){break}o++}}return{node:l,position:p,offset:o,inside:n}}function g(){var i=d.getRng(),r=h.createRng(),l,k,p,q,m,j;l=i.item?i.item(0):i.parentElement();if(l.ownerDocument!=h.doc){return r}k=d.isCollapsed();if(i.item){r.setStart(l.parentNode,h.nodeIndex(l));r.setEnd(r.startContainer,r.startOffset+1);return r}function o(A){var u=e(i,A),s,y,z=0,x,v,t;s=u.node;y=u.offset;if(u.inside&&!s.hasChildNodes()){r[A?"setStart":"setEnd"](s,0);return}if(y===v){r[A?"setStartBefore":"setEndAfter"](s);return}if(u.position<0){x=u.inside?s.firstChild:s.nextSibling;if(!x){r[A?"setStartAfter":"setEndAfter"](s);return}if(!y){if(x.nodeType==3){r[A?"setStart":"setEnd"](x,0)}else{r[A?"setStartBefore":"setEndBefore"](x)}return}while(x){t=x.nodeValue;z+=t.length;if(z>=y){s=x;z-=y;z=t.length-z;break}x=x.nextSibling}}else{x=s.previousSibling;if(!x){return r[A?"setStartBefore":"setEndBefore"](s)}if(!y){if(s.nodeType==3){r[A?"setStart":"setEnd"](x,s.nodeValue.length)}else{r[A?"setStartAfter":"setEndAfter"](x)}return}while(x){z+=x.nodeValue.length;if(z>=y){s=x;z-=y;break}x=x.previousSibling}}r[A?"setStart":"setEnd"](s,z)}try{o(true);if(!k){o()}}catch(n){if(n.number==-2147024809){m=b.getBookmark(2);p=i.duplicate();p.collapse(true);l=p.parentElement();if(!k){p=i.duplicate();p.collapse(false);q=p.parentElement();q.innerHTML=q.innerHTML}l.innerHTML=l.innerHTML;b.moveToBookmark(m);i=d.getRng();o(true);if(!k){o()}}else{throw n}}return r}this.getBookmark=function(m){var j=d.getRng(),o,i,l={};function n(u){var t,p,s,r,q=[];t=u.parentNode;p=h.getRoot().parentNode;while(t!=p&&t.nodeType!==9){s=t.children;r=s.length;while(r--){if(u===s[r]){q.push(r);break}}u=t;t=t.parentNode}return q}function k(q){var p;p=e(j,q);if(p){return{position:p.position,offset:p.offset,indexes:n(p.node),inside:p.inside}}}if(m===2){if(!j.item){l.start=k(true);if(!d.isCollapsed()){l.end=k()}}else{l.start={ctrl:true,indexes:n(j.item(0))}}}return l};this.moveToBookmark=function(k){var j,i=h.doc.body;function m(o){var r,q,n,p;r=h.getRoot();for(q=o.length-1;q>=0;q--){p=r.children;n=o[q];if(n<=p.length-1){r=p[n]}}return r}function l(r){var n=k[r?"start":"end"],q,p,o;if(n){q=n.position>0;p=i.createTextRange();p.moveToElementText(m(n.indexes));offset=n.offset;if(offset!==o){p.collapse(n.inside||q);p.moveStart("character",q?-offset:offset)}else{p.collapse(r)}j.setEndPoint(r?"StartToStart":"EndToStart",p);if(r){j.collapse(true)}}}if(k.start){if(k.start.ctrl){j=i.createControlRange();j.addElement(m(k.start.indexes));j.select()}else{j=i.createTextRange();l(true);l();j.select()}}};this.addRange=function(i){var n,l,k,p,v,q,t,s=d.dom.doc,m=s.body,r,u;function j(C){var y,B,x,A,z;x=h.create("a");y=C?k:v;B=C?p:q;A=n.duplicate();if(y==s||y==s.documentElement){y=m;B=0}if(y.nodeType==3){y.parentNode.insertBefore(x,y);A.moveToElementText(x);A.moveStart("character",B);h.remove(x);n.setEndPoint(C?"StartToStart":"EndToEnd",A)}else{z=y.childNodes;if(z.length){if(B>=z.length){h.insertAfter(x,z[z.length-1])}else{y.insertBefore(x,z[B])}A.moveToElementText(x)}else{if(y.canHaveHTML){y.innerHTML="<span>\uFEFF</span>";x=y.firstChild;A.moveToElementText(x);A.collapse(f)}}n.setEndPoint(C?"StartToStart":"EndToEnd",A);h.remove(x)}}k=i.startContainer;p=i.startOffset;v=i.endContainer;q=i.endOffset;n=m.createTextRange();if(k==v&&k.nodeType==1){if(p==q&&!k.hasChildNodes()){if(k.canHaveHTML){t=k.previousSibling;if(t&&!t.hasChildNodes()&&h.isBlock(t)){t.innerHTML="\uFEFF"}else{t=null}k.innerHTML="<span>\uFEFF</span><span>\uFEFF</span>";n.moveToElementText(k.lastChild);n.select();h.doc.selection.clear();k.innerHTML="";if(t){t.innerHTML=""}return}else{p=h.nodeIndex(k);k=k.parentNode}}if(p==q-1){try{u=k.childNodes[p];l=m.createControlRange();l.addElement(u);l.select();r=d.getRng();if(r.item&&u===r.item(0)){return}}catch(o){}}}j(true);j();n.select()};this.getRangeAt=g}tinymce.dom.TridentSelection=a})();(function(){var n=/((?:\((?:\([^()]+\)|[^()]+)+\)|\[(?:\[[^\[\]]*\]|['"][^'"]*['"]|[^\[\]'"]+)+\]|\\.|[^ >+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,i="sizcache",o=0,r=Object.prototype.toString,h=false,g=true,q=/\\/g,u=/\r\n/g,x=/\W/;[0,0].sort(function(){g=false;return 0});var d=function(C,e,F,G){F=F||[];e=e||document;var I=e;if(e.nodeType!==1&&e.nodeType!==9){return[]}if(!C||typeof C!=="string"){return F}var z,K,N,y,J,M,L,E,B=true,A=d.isXML(e),D=[],H=C;do{n.exec("");z=n.exec(H);if(z){H=z[3];D.push(z[1]);if(z[2]){y=z[3];break}}}while(z);if(D.length>1&&j.exec(C)){if(D.length===2&&k.relative[D[0]]){K=s(D[0]+D[1],e,G)}else{K=k.relative[D[0]]?[e]:d(D.shift(),e);while(D.length){C=D.shift();if(k.relative[C]){C+=D.shift()}K=s(C,K,G)}}}else{if(!G&&D.length>1&&e.nodeType===9&&!A&&k.match.ID.test(D[0])&&!k.match.ID.test(D[D.length-1])){J=d.find(D.shift(),e,A);e=J.expr?d.filter(J.expr,J.set)[0]:J.set[0]}if(e){J=G?{expr:D.pop(),set:l(G)}:d.find(D.pop(),D.length===1&&(D[0]==="~"||D[0]==="+")&&e.parentNode?e.parentNode:e,A);K=J.expr?d.filter(J.expr,J.set):J.set;if(D.length>0){N=l(K)}else{B=false}while(D.length){M=D.pop();L=M;if(!k.relative[M]){M=""}else{L=D.pop()}if(L==null){L=e}k.relative[M](N,L,A)}}else{N=D=[]}}if(!N){N=K}if(!N){d.error(M||C)}if(r.call(N)==="[object Array]"){if(!B){F.push.apply(F,N)}else{if(e&&e.nodeType===1){for(E=0;N[E]!=null;E++){if(N[E]&&(N[E]===true||N[E].nodeType===1&&d.contains(e,N[E]))){F.push(K[E])}}}else{for(E=0;N[E]!=null;E++){if(N[E]&&N[E].nodeType===1){F.push(K[E])}}}}}else{l(N,F)}if(y){d(y,I,F,G);d.uniqueSort(F)}return F};d.uniqueSort=function(y){if(p){h=g;y.sort(p);if(h){for(var e=1;e<y.length;e++){if(y[e]===y[e-1]){y.splice(e--,1)}}}}return y};d.matches=function(e,y){return d(e,null,null,y)};d.matchesSelector=function(e,y){return d(y,null,null,[e]).length>0};d.find=function(E,e,F){var D,z,B,A,C,y;if(!E){return[]}for(z=0,B=k.order.length;z<B;z++){C=k.order[z];if((A=k.leftMatch[C].exec(E))){y=A[1];A.splice(1,1);if(y.substr(y.length-1)!=="\\"){A[1]=(A[1]||"").replace(q,"");D=k.find[C](A,e,F);if(D!=null){E=E.replace(k.match[C],"");break}}}}if(!D){D=typeof e.getElementsByTagName!=="undefined"?e.getElementsByTagName("*"):[]}return{set:D,expr:E}};d.filter=function(I,H,L,B){var D,e,G,N,K,y,A,C,J,z=I,M=[],F=H,E=H&&H[0]&&d.isXML(H[0]);while(I&&H.length){for(G in k.filter){if((D=k.leftMatch[G].exec(I))!=null&&D[2]){y=k.filter[G];A=D[1];e=false;D.splice(1,1);if(A.substr(A.length-1)==="\\"){continue}if(F===M){M=[]}if(k.preFilter[G]){D=k.preFilter[G](D,F,L,M,B,E);if(!D){e=N=true}else{if(D===true){continue}}}if(D){for(C=0;(K=F[C])!=null;C++){if(K){N=y(K,D,C,F);J=B^N;if(L&&N!=null){if(J){e=true}else{F[C]=false}}else{if(J){M.push(K);e=true}}}}}if(N!==undefined){if(!L){F=M}I=I.replace(k.match[G],"");if(!e){return[]}break}}}if(I===z){if(e==null){d.error(I)}else{break}}z=I}return F};d.error=function(e){throw new Error("Syntax error, unrecognized expression: "+e)};var b=d.getText=function(B){var z,A,e=B.nodeType,y="";if(e){if(e===1||e===9||e===11){if(typeof B.textContent==="string"){return B.textContent}else{if(typeof B.innerText==="string"){return B.innerText.replace(u,"")}else{for(B=B.firstChild;B;B=B.nextSibling){y+=b(B)}}}}else{if(e===3||e===4){return B.nodeValue}}}else{for(z=0;(A=B[z]);z++){if(A.nodeType!==8){y+=b(A)}}}return y};var k=d.selectors={order:["ID","NAME","TAG"],match:{ID:/#((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,CLASS:/\.((?:[\w\u00c0-\uFFFF\-]|\\.)+)/,NAME:/\[name=['"]*((?:[\w\u00c0-\uFFFF\-]|\\.)+)['"]*\]/,ATTR:/\[\s*((?:[\w\u00c0-\uFFFF\-]|\\.)+)\s*(?:(\S?=)\s*(?:(['"])(.*?)\3|(#?(?:[\w\u00c0-\uFFFF\-]|\\.)*)|)|)\s*\]/,TAG:/^((?:[\w\u00c0-\uFFFF\*\-]|\\.)+)/,CHILD:/:(only|nth|last|first)-child(?:\(\s*(even|odd|(?:[+\-]?\d+|(?:[+\-]?\d*)?n\s*(?:[+\-]\s*\d+)?))\s*\))?/,POS:/:(nth|eq|gt|lt|first|last|even|odd)(?:\((\d*)\))?(?=[^\-]|$)/,PSEUDO:/:((?:[\w\u00c0-\uFFFF\-]|\\.)+)(?:\((['"]?)((?:\([^\)]+\)|[^\(\)]*)+)\2\))?/},leftMatch:{},attrMap:{"class":"className","for":"htmlFor"},attrHandle:{href:function(e){return e.getAttribute("href")},type:function(e){return e.getAttribute("type")}},relative:{"+":function(D,y){var A=typeof y==="string",C=A&&!x.test(y),E=A&&!C;if(C){y=y.toLowerCase()}for(var z=0,e=D.length,B;z<e;z++){if((B=D[z])){while((B=B.previousSibling)&&B.nodeType!==1){}D[z]=E||B&&B.nodeName.toLowerCase()===y?B||false:B===y}}if(E){d.filter(y,D,true)}},">":function(D,y){var C,B=typeof y==="string",z=0,e=D.length;if(B&&!x.test(y)){y=y.toLowerCase();for(;z<e;z++){C=D[z];if(C){var A=C.parentNode;D[z]=A.nodeName.toLowerCase()===y?A:false}}}else{for(;z<e;z++){C=D[z];if(C){D[z]=B?C.parentNode:C.parentNode===y}}if(B){d.filter(y,D,true)}}},"":function(A,y,C){var B,z=o++,e=t;if(typeof y==="string"&&!x.test(y)){y=y.toLowerCase();B=y;e=a}e("parentNode",y,z,A,B,C)},"~":function(A,y,C){var B,z=o++,e=t;if(typeof y==="string"&&!x.test(y)){y=y.toLowerCase();B=y;e=a}e("previousSibling",y,z,A,B,C)}},find:{ID:function(y,z,A){if(typeof z.getElementById!=="undefined"&&!A){var e=z.getElementById(y[1]);return e&&e.parentNode?[e]:[]}},NAME:function(z,C){if(typeof C.getElementsByName!=="undefined"){var y=[],B=C.getElementsByName(z[1]);for(var A=0,e=B.length;A<e;A++){if(B[A].getAttribute("name")===z[1]){y.push(B[A])}}return y.length===0?null:y}},TAG:function(e,y){if(typeof y.getElementsByTagName!=="undefined"){return y.getElementsByTagName(e[1])}}},preFilter:{CLASS:function(A,y,z,e,D,E){A=" "+A[1].replace(q,"")+" ";if(E){return A}for(var B=0,C;(C=y[B])!=null;B++){if(C){if(D^(C.className&&(" "+C.className+" ").replace(/[\t\n\r]/g," ").indexOf(A)>=0)){if(!z){e.push(C)}}else{if(z){y[B]=false}}}}return false},ID:function(e){return e[1].replace(q,"")},TAG:function(y,e){return y[1].replace(q,"").toLowerCase()},CHILD:function(e){if(e[1]==="nth"){if(!e[2]){d.error(e[0])}e[2]=e[2].replace(/^\+|\s*/g,"");var y=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(e[2]==="even"&&"2n"||e[2]==="odd"&&"2n+1"||!/\D/.test(e[2])&&"0n+"+e[2]||e[2]);e[2]=(y[1]+(y[2]||1))-0;e[3]=y[3]-0}else{if(e[2]){d.error(e[0])}}e[0]=o++;return e},ATTR:function(B,y,z,e,C,D){var A=B[1]=B[1].replace(q,"");if(!D&&k.attrMap[A]){B[1]=k.attrMap[A]}B[4]=(B[4]||B[5]||"").replace(q,"");if(B[2]==="~="){B[4]=" "+B[4]+" "}return B},PSEUDO:function(B,y,z,e,C){if(B[1]==="not"){if((n.exec(B[3])||"").length>1||/^\w/.test(B[3])){B[3]=d(B[3],null,null,y)}else{var A=d.filter(B[3],y,z,true^C);if(!z){e.push.apply(e,A)}return false}}else{if(k.match.POS.test(B[0])||k.match.CHILD.test(B[0])){return true}}return B},POS:function(e){e.unshift(true);return e}},filters:{enabled:function(e){return e.disabled===false&&e.type!=="hidden"},disabled:function(e){return e.disabled===true},checked:function(e){return e.checked===true},selected:function(e){if(e.parentNode){e.parentNode.selectedIndex}return e.selected===true},parent:function(e){return !!e.firstChild},empty:function(e){return !e.firstChild},has:function(z,y,e){return !!d(e[3],z).length},header:function(e){return(/h\d/i).test(e.nodeName)},text:function(z){var e=z.getAttribute("type"),y=z.type;return z.nodeName.toLowerCase()==="input"&&"text"===y&&(e===y||e===null)},radio:function(e){return e.nodeName.toLowerCase()==="input"&&"radio"===e.type},checkbox:function(e){return e.nodeName.toLowerCase()==="input"&&"checkbox"===e.type},file:function(e){return e.nodeName.toLowerCase()==="input"&&"file"===e.type},password:function(e){return e.nodeName.toLowerCase()==="input"&&"password"===e.type},submit:function(y){var e=y.nodeName.toLowerCase();return(e==="input"||e==="button")&&"submit"===y.type},image:function(e){return e.nodeName.toLowerCase()==="input"&&"image"===e.type},reset:function(y){var e=y.nodeName.toLowerCase();return(e==="input"||e==="button")&&"reset"===y.type},button:function(y){var e=y.nodeName.toLowerCase();return e==="input"&&"button"===y.type||e==="button"},input:function(e){return(/input|select|textarea|button/i).test(e.nodeName)},focus:function(e){return e===e.ownerDocument.activeElement}},setFilters:{first:function(y,e){return e===0},last:function(z,y,e,A){return y===A.length-1},even:function(y,e){return e%2===0},odd:function(y,e){return e%2===1},lt:function(z,y,e){return y<e[3]-0},gt:function(z,y,e){return y>e[3]-0},nth:function(z,y,e){return e[3]-0===y},eq:function(z,y,e){return e[3]-0===y}},filter:{PSEUDO:function(z,E,D,F){var e=E[1],y=k.filters[e];if(y){return y(z,D,E,F)}else{if(e==="contains"){return(z.textContent||z.innerText||b([z])||"").indexOf(E[3])>=0}else{if(e==="not"){var A=E[3];for(var C=0,B=A.length;C<B;C++){if(A[C]===z){return false}}return true}else{d.error(e)}}}},CHILD:function(z,B){var A,H,D,G,e,C,F,E=B[1],y=z;switch(E){case"only":case"first":while((y=y.previousSibling)){if(y.nodeType===1){return false}}if(E==="first"){return true}y=z;case"last":while((y=y.nextSibling)){if(y.nodeType===1){return false}}return true;case"nth":A=B[2];H=B[3];if(A===1&&H===0){return true}D=B[0];G=z.parentNode;if(G&&(G[i]!==D||!z.nodeIndex)){C=0;for(y=G.firstChild;y;y=y.nextSibling){if(y.nodeType===1){y.nodeIndex=++C}}G[i]=D}F=z.nodeIndex-H;if(A===0){return F===0}else{return(F%A===0&&F/A>=0)}}},ID:function(y,e){return y.nodeType===1&&y.getAttribute("id")===e},TAG:function(y,e){return(e==="*"&&y.nodeType===1)||!!y.nodeName&&y.nodeName.toLowerCase()===e},CLASS:function(y,e){return(" "+(y.className||y.getAttribute("class"))+" ").indexOf(e)>-1},ATTR:function(C,A){var z=A[1],e=d.attr?d.attr(C,z):k.attrHandle[z]?k.attrHandle[z](C):C[z]!=null?C[z]:C.getAttribute(z),D=e+"",B=A[2],y=A[4];return e==null?B==="!=":!B&&d.attr?e!=null:B==="="?D===y:B==="*="?D.indexOf(y)>=0:B==="~="?(" "+D+" ").indexOf(y)>=0:!y?D&&e!==false:B==="!="?D!==y:B==="^="?D.indexOf(y)===0:B==="$="?D.substr(D.length-y.length)===y:B==="|="?D===y||D.substr(0,y.length+1)===y+"-":false},POS:function(B,y,z,C){var e=y[2],A=k.setFilters[e];if(A){return A(B,z,y,C)}}}};var j=k.match.POS,c=function(y,e){return"\\"+(e-0+1)};for(var f in k.match){k.match[f]=new RegExp(k.match[f].source+(/(?![^\[]*\])(?![^\(]*\))/.source));k.leftMatch[f]=new RegExp(/(^(?:.|\r|\n)*?)/.source+k.match[f].source.replace(/\\(\d+)/g,c))}k.match.globalPOS=j;var l=function(y,e){y=Array.prototype.slice.call(y,0);if(e){e.push.apply(e,y);return e}return y};try{Array.prototype.slice.call(document.documentElement.childNodes,0)[0].nodeType}catch(v){l=function(B,A){var z=0,y=A||[];if(r.call(B)==="[object Array]"){Array.prototype.push.apply(y,B)}else{if(typeof B.length==="number"){for(var e=B.length;z<e;z++){y.push(B[z])}}else{for(;B[z];z++){y.push(B[z])}}}return y}}var p,m;if(document.documentElement.compareDocumentPosition){p=function(y,e){if(y===e){h=true;return 0}if(!y.compareDocumentPosition||!e.compareDocumentPosition){return y.compareDocumentPosition?-1:1}return y.compareDocumentPosition(e)&4?-1:1}}else{p=function(F,E){if(F===E){h=true;return 0}else{if(F.sourceIndex&&E.sourceIndex){return F.sourceIndex-E.sourceIndex}}var C,y,z=[],e=[],B=F.parentNode,D=E.parentNode,G=B;if(B===D){return m(F,E)}else{if(!B){return -1}else{if(!D){return 1}}}while(G){z.unshift(G);G=G.parentNode}G=D;while(G){e.unshift(G);G=G.parentNode}C=z.length;y=e.length;for(var A=0;A<C&&A<y;A++){if(z[A]!==e[A]){return m(z[A],e[A])}}return A===C?m(F,e[A],-1):m(z[A],E,1)};m=function(y,e,z){if(y===e){return z}var A=y.nextSibling;while(A){if(A===e){return -1}A=A.nextSibling}return 1}}(function(){var y=document.createElement("div"),z="script"+(new Date()).getTime(),e=document.documentElement;y.innerHTML="<a name='"+z+"'/>";e.insertBefore(y,e.firstChild);if(document.getElementById(z)){k.find.ID=function(B,C,D){if(typeof C.getElementById!=="undefined"&&!D){var A=C.getElementById(B[1]);return A?A.id===B[1]||typeof A.getAttributeNode!=="undefined"&&A.getAttributeNode("id").nodeValue===B[1]?[A]:undefined:[]}};k.filter.ID=function(C,A){var B=typeof C.getAttributeNode!=="undefined"&&C.getAttributeNode("id");return C.nodeType===1&&B&&B.nodeValue===A}}e.removeChild(y);e=y=null})();(function(){var e=document.createElement("div");e.appendChild(document.createComment(""));if(e.getElementsByTagName("*").length>0){k.find.TAG=function(y,C){var B=C.getElementsByTagName(y[1]);if(y[1]==="*"){var A=[];for(var z=0;B[z];z++){if(B[z].nodeType===1){A.push(B[z])}}B=A}return B}}e.innerHTML="<a href='#'></a>";if(e.firstChild&&typeof e.firstChild.getAttribute!=="undefined"&&e.firstChild.getAttribute("href")!=="#"){k.attrHandle.href=function(y){return y.getAttribute("href",2)}}e=null})();if(document.querySelectorAll){(function(){var e=d,A=document.createElement("div"),z="__sizzle__";A.innerHTML="<p class='TEST'></p>";if(A.querySelectorAll&&A.querySelectorAll(".TEST").length===0){return}d=function(L,C,G,K){C=C||document;if(!K&&!d.isXML(C)){var J=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(L);if(J&&(C.nodeType===1||C.nodeType===9)){if(J[1]){return l(C.getElementsByTagName(L),G)}else{if(J[2]&&k.find.CLASS&&C.getElementsByClassName){return l(C.getElementsByClassName(J[2]),G)}}}if(C.nodeType===9){if(L==="body"&&C.body){return l([C.body],G)}else{if(J&&J[3]){var F=C.getElementById(J[3]);if(F&&F.parentNode){if(F.id===J[3]){return l([F],G)}}else{return l([],G)}}}try{return l(C.querySelectorAll(L),G)}catch(H){}}else{if(C.nodeType===1&&C.nodeName.toLowerCase()!=="object"){var D=C,E=C.getAttribute("id"),B=E||z,N=C.parentNode,M=/^\s*[+~]/.test(L);if(!E){C.setAttribute("id",B)}else{B=B.replace(/'/g,"\\$&")}if(M&&N){C=C.parentNode}try{if(!M||N){return l(C.querySelectorAll("[id='"+B+"'] "+L),G)}}catch(I){}finally{if(!E){D.removeAttribute("id")}}}}}return e(L,C,G,K)};for(var y in e){d[y]=e[y]}A=null})()}(function(){var e=document.documentElement,z=e.matchesSelector||e.mozMatchesSelector||e.webkitMatchesSelector||e.msMatchesSelector;if(z){var B=!z.call(document.createElement("div"),"div"),y=false;try{z.call(document.documentElement,"[test!='']:sizzle")}catch(A){y=true}d.matchesSelector=function(D,F){F=F.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!d.isXML(D)){try{if(y||!k.match.PSEUDO.test(F)&&!/!=/.test(F)){var C=z.call(D,F);if(C||!B||D.document&&D.document.nodeType!==11){return C}}}catch(E){}}return d(F,null,null,[D]).length>0}}})();(function(){var e=document.createElement("div");e.innerHTML="<div class='test e'></div><div class='test'></div>";if(!e.getElementsByClassName||e.getElementsByClassName("e").length===0){return}e.lastChild.className="e";if(e.getElementsByClassName("e").length===1){return}k.order.splice(1,0,"CLASS");k.find.CLASS=function(y,z,A){if(typeof z.getElementsByClassName!=="undefined"&&!A){return z.getElementsByClassName(y[1])}};e=null})();function a(y,D,C,G,E,F){for(var A=0,z=G.length;A<z;A++){var e=G[A];if(e){var B=false;e=e[y];while(e){if(e[i]===C){B=G[e.sizset];break}if(e.nodeType===1&&!F){e[i]=C;e.sizset=A}if(e.nodeName.toLowerCase()===D){B=e;break}e=e[y]}G[A]=B}}}function t(y,D,C,G,E,F){for(var A=0,z=G.length;A<z;A++){var e=G[A];if(e){var B=false;e=e[y];while(e){if(e[i]===C){B=G[e.sizset];break}if(e.nodeType===1){if(!F){e[i]=C;e.sizset=A}if(typeof D!=="string"){if(e===D){B=true;break}}else{if(d.filter(D,[e]).length>0){B=e;break}}}e=e[y]}G[A]=B}}}if(document.documentElement.contains){d.contains=function(y,e){return y!==e&&(y.contains?y.contains(e):true)}}else{if(document.documentElement.compareDocumentPosition){d.contains=function(y,e){return !!(y.compareDocumentPosition(e)&16)}}else{d.contains=function(){return false}}}d.isXML=function(e){var y=(e?e.ownerDocument||e:0).documentElement;return y?y.nodeName!=="HTML":false};var s=function(z,e,D){var C,E=[],B="",F=e.nodeType?[e]:e;while((C=k.match.PSEUDO.exec(z))){B+=C[0];z=z.replace(k.match.PSEUDO,"")}z=k.relative[z]?z+"*":z;for(var A=0,y=F.length;A<y;A++){d(z,F[A],E,D)}return d.filter(B,E)};window.tinymce.dom.Sizzle=d})();(function(a){a.dom.Element=function(f,d){var b=this,e,c;b.settings=d=d||{};b.id=f;b.dom=e=d.dom||a.DOM;if(!a.isIE){c=e.get(b.id)}a.each(("getPos,getRect,getParent,add,setStyle,getStyle,setStyles,setAttrib,setAttribs,getAttrib,addClass,removeClass,hasClass,getOuterHTML,setOuterHTML,remove,show,hide,isHidden,setHTML,get").split(/,/),function(g){b[g]=function(){var h=[f],j;for(j=0;j<arguments.length;j++){h.push(arguments[j])}h=e[g].apply(e,h);b.update(g);return h}});a.extend(b,{on:function(i,h,g){return a.dom.Event.add(b.id,i,h,g)},getXY:function(){return{x:parseInt(b.getStyle("left")),y:parseInt(b.getStyle("top"))}},getSize:function(){var g=e.get(b.id);return{w:parseInt(b.getStyle("width")||g.clientWidth),h:parseInt(b.getStyle("height")||g.clientHeight)}},moveTo:function(g,h){b.setStyles({left:g,top:h})},moveBy:function(g,i){var h=b.getXY();b.moveTo(h.x+g,h.y+i)},resizeTo:function(g,i){b.setStyles({width:g,height:i})},resizeBy:function(g,j){var i=b.getSize();b.resizeTo(i.w+g,i.h+j)},update:function(h){var g;if(a.isIE6&&d.blocker){h=h||"";if(h.indexOf("get")===0||h.indexOf("has")===0||h.indexOf("is")===0){return}if(h=="remove"){e.remove(b.blocker);return}if(!b.blocker){b.blocker=e.uniqueId();g=e.add(d.container||e.getRoot(),"iframe",{id:b.blocker,style:"position:absolute;",frameBorder:0,src:'javascript:""'});e.setStyle(g,"opacity",0)}else{g=e.get(b.blocker)}e.setStyles(g,{left:b.getStyle("left",1),top:b.getStyle("top",1),width:b.getStyle("width",1),height:b.getStyle("height",1),display:b.getStyle("display",1),zIndex:parseInt(b.getStyle("zIndex",1)||0)-1})}}})}})(tinymce);(function(d){function f(g){return g.replace(/[\n\r]+/g,"")}var c=d.is,b=d.isIE,e=d.each,a=d.dom.TreeWalker;d.create("tinymce.dom.Selection",{Selection:function(k,j,i,h){var g=this;g.dom=k;g.win=j;g.serializer=i;g.editor=h;e(["onBeforeSetContent","onBeforeGetContent","onSetContent","onGetContent"],function(l){g[l]=new d.util.Dispatcher(g)});if(!g.win.getSelection){g.tridentSel=new d.dom.TridentSelection(g)}if(d.isIE&&k.boxModel){this._fixIESelection()}d.addUnload(g.destroy,g)},setCursorLocation:function(i,j){var g=this;var h=g.dom.createRng();h.setStart(i,j);h.setEnd(i,j);g.setRng(h);g.collapse(false)},getContent:function(h){var g=this,i=g.getRng(),m=g.dom.create("body"),k=g.getSel(),j,l,o;h=h||{};j=l="";h.get=true;h.format=h.format||"html";h.forced_root_block="";g.onBeforeGetContent.dispatch(g,h);if(h.format=="text"){return g.isCollapsed()?"":(i.text||(k.toString?k.toString():""))}if(i.cloneContents){o=i.cloneContents();if(o){m.appendChild(o)}}else{if(c(i.item)||c(i.htmlText)){m.innerHTML="<br>"+(i.item?i.item(0).outerHTML:i.htmlText);m.removeChild(m.firstChild)}else{m.innerHTML=i.toString()}}if(/^\s/.test(m.innerHTML)){j=" "}if(/\s+$/.test(m.innerHTML)){l=" "}h.getInner=true;h.content=g.isCollapsed()?"":j+g.serializer.serialize(m,h)+l;g.onGetContent.dispatch(g,h);return h.content},setContent:function(h,j){var o=this,g=o.getRng(),k,l=o.win.document,n,m;j=j||{format:"html"};j.set=true;h=j.content=h;if(!j.no_events){o.onBeforeSetContent.dispatch(o,j)}h=j.content;if(g.insertNode){h+='<span id="__caret">_</span>';if(g.startContainer==l&&g.endContainer==l){l.body.innerHTML=h}else{g.deleteContents();if(l.body.childNodes.length===0){l.body.innerHTML=h}else{if(g.createContextualFragment){g.insertNode(g.createContextualFragment(h))}else{n=l.createDocumentFragment();m=l.createElement("div");n.appendChild(m);m.outerHTML=h;g.insertNode(n)}}}k=o.dom.get("__caret");g=l.createRange();g.setStartBefore(k);g.setEndBefore(k);o.setRng(g);o.dom.remove("__caret");try{o.setRng(g)}catch(i){}}else{if(g.item){l.execCommand("Delete",false,null);g=o.getRng()}if(/^\s+/.test(h)){g.pasteHTML('<span id="__mce_tmp">_</span>'+h);o.dom.remove("__mce_tmp")}else{g.pasteHTML(h)}}if(!j.no_events){o.onSetContent.dispatch(o,j)}},getStart:function(){var i=this,h=i.getRng(),j,g,l,k;if(h.duplicate||h.item){if(h.item){return h.item(0)}l=h.duplicate();l.collapse(1);j=l.parentElement();if(j.ownerDocument!==i.dom.doc){j=i.dom.getRoot()}g=k=h.parentElement();while(k=k.parentNode){if(k==j){j=g;break}}return j}else{j=h.startContainer;if(j.nodeType==1&&j.hasChildNodes()){j=j.childNodes[Math.min(j.childNodes.length-1,h.startOffset)]}if(j&&j.nodeType==3){return j.parentNode}return j}},getEnd:function(){var h=this,g=h.getRng(),j,i;if(g.duplicate||g.item){if(g.item){return g.item(0)}g=g.duplicate();g.collapse(0);j=g.parentElement();if(j.ownerDocument!==h.dom.doc){j=h.dom.getRoot()}if(j&&j.nodeName=="BODY"){return j.lastChild||j}return j}else{j=g.endContainer;i=g.endOffset;if(j.nodeType==1&&j.hasChildNodes()){j=j.childNodes[i>0?i-1:i]}if(j&&j.nodeType==3){return j.parentNode}return j}},getBookmark:function(s,v){var y=this,n=y.dom,h,k,j,o,i,p,q,m="\uFEFF",x;function g(z,A){var t=0;e(n.select(z),function(C,B){if(C==A){t=B}});return t}function u(t){function z(E){var A,D,C,B=E?"start":"end";A=t[B+"Container"];D=t[B+"Offset"];if(A.nodeType==1&&A.nodeName=="TR"){C=A.childNodes;A=C[Math.min(E?D:D-1,C.length-1)];if(A){D=E?0:A.childNodes.length;t["set"+(E?"Start":"End")](A,D)}}}z(true);z();return t}function l(){var z=y.getRng(true),t=n.getRoot(),A={};function B(E,J){var D=E[J?"startContainer":"endContainer"],I=E[J?"startOffset":"endOffset"],C=[],F,H,G=0;if(D.nodeType==3){if(v){for(F=D.previousSibling;F&&F.nodeType==3;F=F.previousSibling){I+=F.nodeValue.length}}C.push(I)}else{H=D.childNodes;if(I>=H.length&&H.length){G=1;I=Math.max(0,H.length-1)}C.push(y.dom.nodeIndex(H[I],v)+G)}for(;D&&D!=t;D=D.parentNode){C.push(y.dom.nodeIndex(D,v))}return C}A.start=B(z,true);if(!y.isCollapsed()){A.end=B(z)}return A}if(s==2){if(y.tridentSel){return y.tridentSel.getBookmark(s)}return l()}if(s){return{rng:y.getRng()}}h=y.getRng();j=n.uniqueId();o=tinyMCE.activeEditor.selection.isCollapsed();x="overflow:hidden;line-height:0px";if(h.duplicate||h.item){if(!h.item){k=h.duplicate();try{h.collapse();h.pasteHTML('<span data-mce-type="bookmark" id="'+j+'_start" style="'+x+'">'+m+"</span>");if(!o){k.collapse(false);h.moveToElementText(k.parentElement());if(h.compareEndPoints("StartToEnd",k)===0){k.move("character",-1)}k.pasteHTML('<span data-mce-type="bookmark" id="'+j+'_end" style="'+x+'">'+m+"</span>")}}catch(r){return null}}else{p=h.item(0);i=p.nodeName;return{name:i,index:g(i,p)}}}else{p=y.getNode();i=p.nodeName;if(i=="IMG"){return{name:i,index:g(i,p)}}k=u(h.cloneRange());if(!o){k.collapse(false);k.insertNode(n.create("span",{"data-mce-type":"bookmark",id:j+"_end",style:x},m))}h=u(h);h.collapse(true);h.insertNode(n.create("span",{"data-mce-type":"bookmark",id:j+"_start",style:x},m))}y.moveToBookmark({id:j,keep:1});return{id:j}},moveToBookmark:function(o){var s=this,m=s.dom,j,i,g,r,k,u,p,q;function h(A){var t=o[A?"start":"end"],x,y,z,v;if(t){z=t[0];for(y=r,x=t.length-1;x>=1;x--){v=y.childNodes;if(t[x]>v.length-1){return}y=v[t[x]]}if(y.nodeType===3){z=Math.min(t[0],y.nodeValue.length)}if(y.nodeType===1){z=Math.min(t[0],y.childNodes.length)}if(A){g.setStart(y,z)}else{g.setEnd(y,z)}}return true}function l(B){var v=m.get(o.id+"_"+B),A,t,y,z,x=o.keep;if(v){A=v.parentNode;if(B=="start"){if(!x){t=m.nodeIndex(v)}else{A=v.firstChild;t=1}k=u=A;p=q=t}else{if(!x){t=m.nodeIndex(v)}else{A=v.firstChild;t=1}u=A;q=t}if(!x){z=v.previousSibling;y=v.nextSibling;e(d.grep(v.childNodes),function(C){if(C.nodeType==3){C.nodeValue=C.nodeValue.replace(/\uFEFF/g,"")}});while(v=m.get(o.id+"_"+B)){m.remove(v,1)}if(z&&y&&z.nodeType==y.nodeType&&z.nodeType==3&&!d.isOpera){t=z.nodeValue.length;z.appendData(y.nodeValue);m.remove(y);if(B=="start"){k=u=z;p=q=t}else{u=z;q=t}}}}}function n(t){if(m.isBlock(t)&&!t.innerHTML&&!b){t.innerHTML='<br data-mce-bogus="1" />'}return t}if(o){if(o.start){g=m.createRng();r=m.getRoot();if(s.tridentSel){return s.tridentSel.moveToBookmark(o)}if(h(true)&&h()){s.setRng(g)}}else{if(o.id){l("start");l("end");if(k){g=m.createRng();g.setStart(n(k),p);g.setEnd(n(u),q);s.setRng(g)}}else{if(o.name){s.select(m.select(o.name)[o.index])}else{if(o.rng){s.setRng(o.rng)}}}}}},select:function(l,k){var j=this,m=j.dom,h=m.createRng(),g;function i(n,p){var o=new a(n,n);do{if(n.nodeType==3&&d.trim(n.nodeValue).length!==0){if(p){h.setStart(n,0)}else{h.setEnd(n,n.nodeValue.length)}return}if(n.nodeName=="BR"){if(p){h.setStartBefore(n)}else{h.setEndBefore(n)}return}}while(n=(p?o.next():o.prev()))}if(l){g=m.nodeIndex(l);h.setStart(l.parentNode,g);h.setEnd(l.parentNode,g+1);if(k){i(l,1);i(l)}j.setRng(h)}return l},isCollapsed:function(){var g=this,i=g.getRng(),h=g.getSel();if(!i||i.item){return false}if(i.compareEndPoints){return i.compareEndPoints("StartToEnd",i)===0}return !h||i.collapsed},collapse:function(g){var i=this,h=i.getRng(),j;if(h.item){j=h.item(0);h=i.win.document.body.createTextRange();h.moveToElementText(j)}h.collapse(!!g);i.setRng(h)},getSel:function(){var h=this,g=this.win;return g.getSelection?g.getSelection():g.document.selection},getRng:function(m){var h=this,j,g,l,k=h.win.document;if(m&&h.tridentSel){return h.tridentSel.getRangeAt(0)}try{if(j=h.getSel()){g=j.rangeCount>0?j.getRangeAt(0):(j.createRange?j.createRange():k.createRange())}}catch(i){}if(d.isIE&&g&&g.setStart&&k.selection.createRange().item){l=k.selection.createRange().item(0);g=k.createRange();g.setStartBefore(l);g.setEndAfter(l)}if(!g){g=k.createRange?k.createRange():k.body.createTextRange()}if(g.setStart&&g.startContainer.nodeType===9&&g.collapsed){l=h.dom.getRoot();g.setStart(l,0);g.setEnd(l,0)}if(h.selectedRange&&h.explicitRange){if(g.compareBoundaryPoints(g.START_TO_START,h.selectedRange)===0&&g.compareBoundaryPoints(g.END_TO_END,h.selectedRange)===0){g=h.explicitRange}else{h.selectedRange=null;h.explicitRange=null}}return g},setRng:function(k,g){var j,i=this;if(!i.tridentSel){j=i.getSel();if(j){i.explicitRange=k;try{j.removeAllRanges()}catch(h){}j.addRange(k);if(g===false&&j.extend){j.collapse(k.endContainer,k.endOffset);j.extend(k.startContainer,k.startOffset)}i.selectedRange=j.rangeCount>0?j.getRangeAt(0):null}}else{if(k.cloneRange){try{i.tridentSel.addRange(k);return}catch(h){}}try{k.select()}catch(h){}}},setNode:function(h){var g=this;g.setContent(g.dom.getOuterHTML(h));return h},getNode:function(){var i=this,h=i.getRng(),j=i.getSel(),m,l=h.startContainer,g=h.endContainer;function k(q,o){var p=q;while(q&&q.nodeType===3&&q.length===0){q=o?q.nextSibling:q.previousSibling}return q||p}if(!h){return i.dom.getRoot()}if(h.setStart){m=h.commonAncestorContainer;if(!h.collapsed){if(h.startContainer==h.endContainer){if(h.endOffset-h.startOffset<2){if(h.startContainer.hasChildNodes()){m=h.startContainer.childNodes[h.startOffset]}}}if(l.nodeType===3&&g.nodeType===3){if(l.length===h.startOffset){l=k(l.nextSibling,true)}else{l=l.parentNode}if(h.endOffset===0){g=k(g.previousSibling,false)}else{g=g.parentNode}if(l&&l===g){return l}}}if(m&&m.nodeType==3){return m.parentNode}return m}return h.item?h.item(0):h.parentElement()},getSelectedBlocks:function(p,h){var o=this,k=o.dom,m,l,i,j=[];m=k.getParent(p||o.getStart(),k.isBlock);l=k.getParent(h||o.getEnd(),k.isBlock);if(m){j.push(m)}if(m&&l&&m!=l){i=m;var g=new a(m,k.getRoot());while((i=g.next())&&i!=l){if(k.isBlock(i)){j.push(i)}}}if(l&&m!=l){j.push(l)}return j},isForward:function(){var i=this.dom,g=this.getSel(),j,h;if(!g||g.anchorNode==null||g.focusNode==null){return true}j=i.createRng();j.setStart(g.anchorNode,g.anchorOffset);j.collapse(true);h=i.createRng();h.setStart(g.focusNode,g.focusOffset);h.collapse(true);return j.compareBoundaryPoints(j.START_TO_START,h)<=0},normalize:function(){var h=this,g,m,l,j,i;function k(p){var o,r,n,s=h.dom,u=s.getRoot(),q,t,v;function y(z,A){var B=new a(z,s.getParent(z.parentNode,s.isBlock)||u);while(z=B[A?"prev":"next"]()){if(z.nodeName==="BR"){return true}}}function x(B,z){var C,A;z=z||o;C=new a(z,s.getParent(z.parentNode,s.isBlock)||u);while(q=C[B?"prev":"next"]()){if(q.nodeType===3&&q.nodeValue.length>0){o=q;r=B?q.nodeValue.length:0;m=true;return}if(s.isBlock(q)||t[q.nodeName.toLowerCase()]){return}A=q}if(l&&A){o=A;m=true;r=0}}o=g[(p?"start":"end")+"Container"];r=g[(p?"start":"end")+"Offset"];t=s.schema.getNonEmptyElements();if(o.nodeType===9){o=s.getRoot();r=0}if(o===u){if(p){q=o.childNodes[r>0?r-1:0];if(q){v=q.nodeName.toLowerCase();if(t[q.nodeName]||q.nodeName=="TABLE"){return}}}if(o.hasChildNodes()){o=o.childNodes[Math.min(!p&&r>0?r-1:r,o.childNodes.length-1)];r=0;if(o.hasChildNodes()&&!/TABLE/.test(o.nodeName)){q=o;n=new a(o,u);do{if(q.nodeType===3&&q.nodeValue.length>0){r=p?0:q.nodeValue.length;o=q;m=true;break}if(t[q.nodeName.toLowerCase()]){r=s.nodeIndex(q);o=q.parentNode;if(q.nodeName=="IMG"&&!p){r++}m=true;break}}while(q=(p?n.next():n.prev()))}}}if(l){if(o.nodeType===3&&r===0){x(true)}if(o.nodeType===1){q=o.childNodes[r];if(q&&q.nodeName==="BR"&&!y(q)&&!y(q,true)){x(true,o.childNodes[r])}}}if(p&&!l&&o.nodeType===3&&r===o.nodeValue.length){x(false)}if(m){g["set"+(p?"Start":"End")](o,r)}}if(d.isIE){return}g=h.getRng();l=g.collapsed;k(true);if(!l){k()}if(m){if(l){g.collapse(true)}h.setRng(g,h.isForward())}},selectorChanged:function(g,j){var h=this,i;if(!h.selectorChangedData){h.selectorChangedData={};i={};h.editor.onNodeChange.addToTop(function(l,k,o){var p=h.dom,m=p.getParents(o,null,p.getRoot()),n={};e(h.selectorChangedData,function(r,q){e(m,function(s){if(p.is(s,q)){if(!i[q]){e(r,function(t){t(true,{node:s,selector:q,parents:m})});i[q]=r}n[q]=r;return false}})});e(i,function(r,q){if(!n[q]){delete i[q];e(r,function(s){s(false,{node:o,selector:q,parents:m})})}})})}if(!h.selectorChangedData[g]){h.selectorChangedData[g]=[]}h.selectorChangedData[g].push(j);return h},scrollIntoView:function(k){var j,h,g=this,i=g.dom;h=i.getViewPort(g.editor.getWin());j=i.getPos(k).y;if(j<h.y||j+25>h.y+h.h){g.editor.getWin().scrollTo(0,j<h.y?j:j-h.h+25)}},destroy:function(h){var g=this;g.win=null;if(!h){d.removeUnload(g.destroy)}},_fixIESelection:function(){var h=this.dom,n=h.doc,i=n.body,k,o,g;function j(p,s){var q=i.createTextRange();try{q.moveToPoint(p,s)}catch(r){q=null}return q}function m(q){var p;if(q.button){p=j(q.x,q.y);if(p){if(p.compareEndPoints("StartToStart",o)>0){p.setEndPoint("StartToStart",o)}else{p.setEndPoint("EndToEnd",o)}p.select()}}else{l()}}function l(){var p=n.selection.createRange();if(o&&!p.item&&p.compareEndPoints("StartToEnd",p)===0){o.select()}h.unbind(n,"mouseup",l);h.unbind(n,"mousemove",m);o=k=0}n.documentElement.unselectable=true;h.bind(n,["mousedown","contextmenu"],function(p){if(p.target.nodeName==="HTML"){if(k){l()}g=n.documentElement;if(g.scrollHeight>g.clientHeight){return}k=1;o=j(p.x,p.y);if(o){h.bind(n,"mouseup",l);h.bind(n,"mousemove",m);h.win.focus();o.select()}}})}})})(tinymce);(function(a){a.dom.Serializer=function(e,i,f){var h,b,d=a.isIE,g=a.each,c;if(!e.apply_source_formatting){e.indent=false}i=i||a.DOM;f=f||new a.html.Schema(e);e.entity_encoding=e.entity_encoding||"named";e.remove_trailing_brs="remove_trailing_brs" in e?e.remove_trailing_brs:true;h=new a.util.Dispatcher(self);b=new a.util.Dispatcher(self);c=new a.html.DomParser(e,f);c.addAttributeFilter("src,href,style",function(k,j){var o=k.length,l,q,n="data-mce-"+j,p=e.url_converter,r=e.url_converter_scope,m;while(o--){l=k[o];q=l.attributes.map[n];if(q!==m){l.attr(j,q.length>0?q:null);l.attr(n,null)}else{q=l.attributes.map[j];if(j==="style"){q=i.serializeStyle(i.parseStyle(q),l.name)}else{if(p){q=p.call(r,q,j,l.name)}}l.attr(j,q.length>0?q:null)}}});c.addAttributeFilter("class",function(j,k){var l=j.length,m,n;while(l--){m=j[l];n=m.attr("class").replace(/(?:^|\s)mce(Item\w+|Selected)(?!\S)/g,"");m.attr("class",n.length>0?n:null)}});c.addAttributeFilter("data-mce-type",function(j,l,k){var m=j.length,n;while(m--){n=j[m];if(n.attributes.map["data-mce-type"]==="bookmark"&&!k.cleanup){n.remove()}}});c.addAttributeFilter("data-mce-expando",function(j,l,k){var m=j.length;while(m--){j[m].attr(l,null)}});c.addNodeFilter("noscript",function(j){var k=j.length,l;while(k--){l=j[k].firstChild;if(l){l.value=a.html.Entities.decode(l.value)}}});c.addNodeFilter("script,style",function(k,l){var m=k.length,n,o;function j(p){return p.replace(/(<!--\[CDATA\[|\]\]-->)/g,"\n").replace(/^[\r\n]*|[\r\n]*$/g,"").replace(/^\s*((<!--)?(\s*\/\/)?\s*<!\[CDATA\[|(<!--\s*)?\/\*\s*<!\[CDATA\[\s*\*\/|(\/\/)?\s*<!--|\/\*\s*<!--\s*\*\/)\s*[\r\n]*/gi,"").replace(/\s*(\/\*\s*\]\]>\s*\*\/(-->)?|\s*\/\/\s*\]\]>(-->)?|\/\/\s*(-->)?|\]\]>|\/\*\s*-->\s*\*\/|\s*-->\s*)\s*$/g,"")}while(m--){n=k[m];o=n.firstChild?n.firstChild.value:"";if(l==="script"){n.attr("type",(n.attr("type")||"text/javascript").replace(/^mce\-/,""));if(o.length>0){n.firstChild.value="// <![CDATA[\n"+j(o)+"\n// ]]>"}}else{if(o.length>0){n.firstChild.value="<!--\n"+j(o)+"\n-->"}}}});c.addNodeFilter("#comment",function(j,k){var l=j.length,m;while(l--){m=j[l];if(m.value.indexOf("[CDATA[")===0){m.name="#cdata";m.type=4;m.value=m.value.replace(/^\[CDATA\[|\]\]$/g,"")}else{if(m.value.indexOf("mce:protected ")===0){m.name="#text";m.type=3;m.raw=true;m.value=unescape(m.value).substr(14)}}}});c.addNodeFilter("xml:namespace,input",function(j,k){var l=j.length,m;while(l--){m=j[l];if(m.type===7){m.remove()}else{if(m.type===1){if(k==="input"&&!("type" in m.attributes.map)){m.attr("type","text")}}}}});if(e.fix_list_elements){c.addNodeFilter("ul,ol",function(k,l){var m=k.length,n,j;while(m--){n=k[m];j=n.parent;if(j.name==="ul"||j.name==="ol"){if(n.prev&&n.prev.name==="li"){n.prev.append(n)}}}})}c.addAttributeFilter("data-mce-src,data-mce-href,data-mce-style",function(j,k){var l=j.length;while(l--){j[l].attr(k,null)}});return{schema:f,addNodeFilter:c.addNodeFilter,addAttributeFilter:c.addAttributeFilter,onPreProcess:h,onPostProcess:b,serialize:function(o,m){var l,p,k,j,n;if(d&&i.select("script,style,select,map").length>0){n=o.innerHTML;o=o.cloneNode(false);i.setHTML(o,n)}else{o=o.cloneNode(true)}l=o.ownerDocument.implementation;if(l.createHTMLDocument){p=l.createHTMLDocument("");g(o.nodeName=="BODY"?o.childNodes:[o],function(q){p.body.appendChild(p.importNode(q,true))});if(o.nodeName!="BODY"){o=p.body.firstChild}else{o=p.body}k=i.doc;i.doc=p}m=m||{};m.format=m.format||"html";if(!m.no_events){m.node=o;h.dispatch(self,m)}j=new a.html.Serializer(e,f);m.content=j.serialize(c.parse(a.trim(m.getInner?o.innerHTML:i.getOuterHTML(o)),m));if(!m.cleanup){m.content=m.content.replace(/\uFEFF/g,"")}if(!m.no_events){b.dispatch(self,m)}if(k){i.doc=k}m.node=null;return m.content},addRules:function(j){f.addValidElements(j)},setRules:function(j){f.setValidElements(j)}}}})(tinymce);(function(a){a.dom.ScriptLoader=function(h){var c=0,k=1,i=2,l={},j=[],e={},d=[],g=0,f;function b(m,v){var x=this,q=a.DOM,s,o,r,n;function p(){q.remove(n);if(s){s.onreadystatechange=s.onload=s=null}v()}function u(){if(typeof(console)!=="undefined"&&console.log){console.log("Failed to load: "+m)}}n=q.uniqueId();if(a.isIE6){o=new a.util.URI(m);r=location;if(o.host==r.hostname&&o.port==r.port&&(o.protocol+":")==r.protocol&&o.protocol.toLowerCase()!="file"){a.util.XHR.send({url:a._addVer(o.getURI()),success:function(y){var t=q.create("script",{type:"text/javascript"});t.text=y;document.getElementsByTagName("head")[0].appendChild(t);q.remove(t);p()},error:u});return}}s=document.createElement("script");s.id=n;s.type="text/javascript";s.src=a._addVer(m);if(!a.isIE){s.onload=p}s.onerror=u;if(!a.isOpera){s.onreadystatechange=function(){var t=s.readyState;if(t=="complete"||t=="loaded"){p()}}}(document.getElementsByTagName("head")[0]||document.body).appendChild(s)}this.isDone=function(m){return l[m]==i};this.markDone=function(m){l[m]=i};this.add=this.load=function(m,q,n){var o,p=l[m];if(p==f){j.push(m);l[m]=c}if(q){if(!e[m]){e[m]=[]}e[m].push({func:q,scope:n||this})}};this.loadQueue=function(n,m){this.loadScripts(j,n,m)};this.loadScripts=function(m,q,p){var o;function n(r){a.each(e[r],function(s){s.func.call(s.scope)});e[r]=f}d.push({func:q,scope:p||this});o=function(){var r=a.grep(m);m.length=0;a.each(r,function(s){if(l[s]==i){n(s);return}if(l[s]!=k){l[s]=k;g++;b(s,function(){l[s]=i;g--;n(s);o()})}});if(!g){a.each(d,function(s){s.func.call(s.scope)});d.length=0}};o()}};a.ScriptLoader=new a.dom.ScriptLoader()})(tinymce);(function(a){a.dom.RangeUtils=function(c){var b="\uFEFF";this.walk=function(d,s){var i=d.startContainer,l=d.startOffset,t=d.endContainer,m=d.endOffset,j,g,o,h,r,q,e;e=c.select("td.mceSelected,th.mceSelected");if(e.length>0){a.each(e,function(u){s([u])});return}function f(u){var v;v=u[0];if(v.nodeType===3&&v===i&&l>=v.nodeValue.length){u.splice(0,1)}v=u[u.length-1];if(m===0&&u.length>0&&v===t&&v.nodeType===3){u.splice(u.length-1,1)}return u}function p(x,v,u){var y=[];for(;x&&x!=u;x=x[v]){y.push(x)}return y}function n(v,u){do{if(v.parentNode==u){return v}v=v.parentNode}while(v)}function k(x,v,y){var u=y?"nextSibling":"previousSibling";for(h=x,r=h.parentNode;h&&h!=v;h=r){r=h.parentNode;q=p(h==x?h:h[u],u);if(q.length){if(!y){q.reverse()}s(f(q))}}}if(i.nodeType==1&&i.hasChildNodes()){i=i.childNodes[l]}if(t.nodeType==1&&t.hasChildNodes()){t=t.childNodes[Math.min(m-1,t.childNodes.length-1)]}if(i==t){return s(f([i]))}j=c.findCommonAncestor(i,t);for(h=i;h;h=h.parentNode){if(h===t){return k(i,j,true)}if(h===j){break}}for(h=t;h;h=h.parentNode){if(h===i){return k(t,j)}if(h===j){break}}g=n(i,j)||i;o=n(t,j)||t;k(i,g,true);q=p(g==i?g:g.nextSibling,"nextSibling",o==t?o.nextSibling:o);if(q.length){s(f(q))}k(t,o)};this.split=function(e){var h=e.startContainer,d=e.startOffset,i=e.endContainer,g=e.endOffset;function f(j,k){return j.splitText(k)}if(h==i&&h.nodeType==3){if(d>0&&d<h.nodeValue.length){i=f(h,d);h=i.previousSibling;if(g>d){g=g-d;h=i=f(i,g).previousSibling;g=i.nodeValue.length;d=0}else{g=0}}}else{if(h.nodeType==3&&d>0&&d<h.nodeValue.length){h=f(h,d);d=0}if(i.nodeType==3&&g>0&&g<i.nodeValue.length){i=f(i,g).previousSibling;g=i.nodeValue.length}}return{startContainer:h,startOffset:d,endContainer:i,endOffset:g}}};a.dom.RangeUtils.compareRanges=function(c,b){if(c&&b){if(c.item||c.duplicate){if(c.item&&b.item&&c.item(0)===b.item(0)){return true}if(c.isEqual&&b.isEqual&&b.isEqual(c)){return true}}else{return c.startContainer==b.startContainer&&c.startOffset==b.startOffset}}return false}})(tinymce);(function(b){var a=b.dom.Event,c=b.each;b.create("tinymce.ui.KeyboardNavigation",{KeyboardNavigation:function(e,f){var q=this,n=e.root,m=e.items,o=e.enableUpDown,i=e.enableLeftRight||!e.enableUpDown,l=e.excludeFromTabOrder,k,h,p,d,g;f=f||b.DOM;k=function(r){g=r.target.id};h=function(r){f.setAttrib(r.target.id,"tabindex","-1")};d=function(r){var s=f.get(g);f.setAttrib(s,"tabindex","0");s.focus()};q.focus=function(){f.get(g).focus()};q.destroy=function(){c(m,function(s){var t=f.get(s.id);f.unbind(t,"focus",k);f.unbind(t,"blur",h)});var r=f.get(n);f.unbind(r,"focus",d);f.unbind(r,"keydown",p);m=f=n=q.focus=k=h=p=d=null;q.destroy=function(){}};q.moveFocus=function(v,s){var r=-1,u=q.controls,t;if(!g){return}c(m,function(y,x){if(y.id===g){r=x;return false}});r+=v;if(r<0){r=m.length-1}else{if(r>=m.length){r=0}}t=m[r];f.setAttrib(g,"tabindex","-1");f.setAttrib(t.id,"tabindex","0");f.get(t.id).focus();if(e.actOnFocus){e.onAction(t.id)}if(s){a.cancel(s)}};p=function(z){var v=37,u=39,y=38,A=40,r=27,t=14,s=13,x=32;switch(z.keyCode){case v:if(i){q.moveFocus(-1)}break;case u:if(i){q.moveFocus(1)}break;case y:if(o){q.moveFocus(-1)}break;case A:if(o){q.moveFocus(1)}break;case r:if(e.onCancel){e.onCancel();a.cancel(z)}break;case t:case s:case x:if(e.onAction){e.onAction(g);a.cancel(z)}break}};c(m,function(t,r){var s,u;if(!t.id){t.id=f.uniqueId("_mce_item_")}u=f.get(t.id);if(l){f.bind(u,"blur",h);s="-1"}else{s=(r===0?"0":"-1")}u.setAttribute("tabindex",s);f.bind(u,"focus",k)});if(m[0]){g=m[0].id}f.setAttrib(n,"tabindex","-1");var j=f.get(n);f.bind(j,"focus",d);f.bind(j,"keydown",p)}})})(tinymce);(function(c){var b=c.DOM,a=c.is;c.create("tinymce.ui.Control",{Control:function(f,e,d){this.id=f;this.settings=e=e||{};this.rendered=false;this.onRender=new c.util.Dispatcher(this);this.classPrefix="";this.scope=e.scope||this;this.disabled=0;this.active=0;this.editor=d},setAriaProperty:function(f,e){var d=b.get(this.id+"_aria")||b.get(this.id);if(d){b.setAttrib(d,"aria-"+f,!!e)}},focus:function(){b.get(this.id).focus()},setDisabled:function(d){if(d!=this.disabled){this.setAriaProperty("disabled",d);this.setState("Disabled",d);this.setState("Enabled",!d);this.disabled=d}},isDisabled:function(){return this.disabled},setActive:function(d){if(d!=this.active){this.setState("Active",d);this.active=d;this.setAriaProperty("pressed",d)}},isActive:function(){return this.active},setState:function(f,d){var e=b.get(this.id);f=this.classPrefix+f;if(d){b.addClass(e,f)}else{b.removeClass(e,f)}},isRendered:function(){return this.rendered},renderHTML:function(){},renderTo:function(d){b.setHTML(d,this.renderHTML())},postRender:function(){var e=this,d;if(a(e.disabled)){d=e.disabled;e.disabled=-1;e.setDisabled(d)}if(a(e.active)){d=e.active;e.active=-1;e.setActive(d)}},remove:function(){b.remove(this.id);this.destroy()},destroy:function(){c.dom.Event.clear(this.id)}})})(tinymce);tinymce.create("tinymce.ui.Container:tinymce.ui.Control",{Container:function(c,b,a){this.parent(c,b,a);this.controls=[];this.lookup={}},add:function(a){this.lookup[a.id]=a;this.controls.push(a);return a},get:function(a){return this.lookup[a]}});tinymce.create("tinymce.ui.Separator:tinymce.ui.Control",{Separator:function(b,a){this.parent(b,a);this.classPrefix="mceSeparator";this.setDisabled(true)},renderHTML:function(){return tinymce.DOM.createHTML("span",{"class":this.classPrefix,role:"separator","aria-orientation":"vertical",tabindex:"-1"})}});(function(d){var c=d.is,b=d.DOM,e=d.each,a=d.walk;d.create("tinymce.ui.MenuItem:tinymce.ui.Control",{MenuItem:function(g,f){this.parent(g,f);this.classPrefix="mceMenuItem"},setSelected:function(f){this.setState("Selected",f);this.setAriaProperty("checked",!!f);this.selected=f},isSelected:function(){return this.selected},postRender:function(){var f=this;f.parent();if(c(f.selected)){f.setSelected(f.selected)}}})})(tinymce);(function(d){var c=d.is,b=d.DOM,e=d.each,a=d.walk;d.create("tinymce.ui.Menu:tinymce.ui.MenuItem",{Menu:function(h,g){var f=this;f.parent(h,g);f.items={};f.collapsed=false;f.menuCount=0;f.onAddItem=new d.util.Dispatcher(this)},expand:function(g){var f=this;if(g){a(f,function(h){if(h.expand){h.expand()}},"items",f)}f.collapsed=false},collapse:function(g){var f=this;if(g){a(f,function(h){if(h.collapse){h.collapse()}},"items",f)}f.collapsed=true},isCollapsed:function(){return this.collapsed},add:function(f){if(!f.settings){f=new d.ui.MenuItem(f.id||b.uniqueId(),f)}this.onAddItem.dispatch(this,f);return this.items[f.id]=f},addSeparator:function(){return this.add({separator:true})},addMenu:function(f){if(!f.collapse){f=this.createMenu(f)}this.menuCount++;return this.add(f)},hasMenus:function(){return this.menuCount!==0},remove:function(f){delete this.items[f.id]},removeAll:function(){var f=this;a(f,function(g){if(g.removeAll){g.removeAll()}else{g.remove()}g.destroy()},"items",f);f.items={}},createMenu:function(g){var f=new d.ui.Menu(g.id||b.uniqueId(),g);f.onAddItem.add(this.onAddItem.dispatch,this.onAddItem);return f}})})(tinymce);(function(e){var d=e.is,c=e.DOM,f=e.each,a=e.dom.Event,b=e.dom.Element;e.create("tinymce.ui.DropMenu:tinymce.ui.Menu",{DropMenu:function(h,g){g=g||{};g.container=g.container||c.doc.body;g.offset_x=g.offset_x||0;g.offset_y=g.offset_y||0;g.vp_offset_x=g.vp_offset_x||0;g.vp_offset_y=g.vp_offset_y||0;if(d(g.icons)&&!g.icons){g["class"]+=" mceNoIcons"}this.parent(h,g);this.onShowMenu=new e.util.Dispatcher(this);this.onHideMenu=new e.util.Dispatcher(this);this.classPrefix="mceMenu"},createMenu:function(j){var h=this,i=h.settings,g;j.container=j.container||i.container;j.parent=h;j.constrain=j.constrain||i.constrain;j["class"]=j["class"]||i["class"];j.vp_offset_x=j.vp_offset_x||i.vp_offset_x;j.vp_offset_y=j.vp_offset_y||i.vp_offset_y;j.keyboard_focus=i.keyboard_focus;g=new e.ui.DropMenu(j.id||c.uniqueId(),j);g.onAddItem.add(h.onAddItem.dispatch,h.onAddItem);return g},focus:function(){var g=this;if(g.keyboardNav){g.keyboardNav.focus()}},update:function(){var i=this,j=i.settings,g=c.get("menu_"+i.id+"_tbl"),l=c.get("menu_"+i.id+"_co"),h,k;h=j.max_width?Math.min(g.offsetWidth,j.max_width):g.offsetWidth;k=j.max_height?Math.min(g.offsetHeight,j.max_height):g.offsetHeight;if(!c.boxModel){i.element.setStyles({width:h+2,height:k+2})}else{i.element.setStyles({width:h,height:k})}if(j.max_width){c.setStyle(l,"width",h)}if(j.max_height){c.setStyle(l,"height",k);if(g.clientHeight<j.max_height){c.setStyle(l,"overflow","hidden")}}},showMenu:function(p,n,r){var z=this,A=z.settings,o,g=c.getViewPort(),u,l,v,q,i=2,k,j,m=z.classPrefix;z.collapse(1);if(z.isMenuVisible){return}if(!z.rendered){o=c.add(z.settings.container,z.renderNode());f(z.items,function(h){h.postRender()});z.element=new b("menu_"+z.id,{blocker:1,container:A.container})}else{o=c.get("menu_"+z.id)}if(!e.isOpera){c.setStyles(o,{left:-65535,top:-65535})}c.show(o);z.update();p+=A.offset_x||0;n+=A.offset_y||0;g.w-=4;g.h-=4;if(A.constrain){u=o.clientWidth-i;l=o.clientHeight-i;v=g.x+g.w;q=g.y+g.h;if((p+A.vp_offset_x+u)>v){p=r?r-u:Math.max(0,(v-A.vp_offset_x)-u)}if((n+A.vp_offset_y+l)>q){n=Math.max(0,(q-A.vp_offset_y)-l)}}c.setStyles(o,{left:p,top:n});z.element.update();z.isMenuVisible=1;z.mouseClickFunc=a.add(o,"click",function(s){var h;s=s.target;if(s&&(s=c.getParent(s,"tr"))&&!c.hasClass(s,m+"ItemSub")){h=z.items[s.id];if(h.isDisabled()){return}k=z;while(k){if(k.hideMenu){k.hideMenu()}k=k.settings.parent}if(h.settings.onclick){h.settings.onclick(s)}return false}});if(z.hasMenus()){z.mouseOverFunc=a.add(o,"mouseover",function(x){var h,t,s;x=x.target;if(x&&(x=c.getParent(x,"tr"))){h=z.items[x.id];if(z.lastMenu){z.lastMenu.collapse(1)}if(h.isDisabled()){return}if(x&&c.hasClass(x,m+"ItemSub")){t=c.getRect(x);h.showMenu((t.x+t.w-i),t.y-i,t.x);z.lastMenu=h;c.addClass(c.get(h.id).firstChild,m+"ItemActive")}}})}a.add(o,"keydown",z._keyHandler,z);z.onShowMenu.dispatch(z);if(A.keyboard_focus){z._setupKeyboardNav()}},hideMenu:function(j){var g=this,i=c.get("menu_"+g.id),h;if(!g.isMenuVisible){return}if(g.keyboardNav){g.keyboardNav.destroy()}a.remove(i,"mouseover",g.mouseOverFunc);a.remove(i,"click",g.mouseClickFunc);a.remove(i,"keydown",g._keyHandler);c.hide(i);g.isMenuVisible=0;if(!j){g.collapse(1)}if(g.element){g.element.hide()}if(h=c.get(g.id)){c.removeClass(h.firstChild,g.classPrefix+"ItemActive")}g.onHideMenu.dispatch(g)},add:function(i){var g=this,h;i=g.parent(i);if(g.isRendered&&(h=c.get("menu_"+g.id))){g._add(c.select("tbody",h)[0],i)}return i},collapse:function(g){this.parent(g);this.hideMenu(1)},remove:function(g){c.remove(g.id);this.destroy();return this.parent(g)},destroy:function(){var g=this,h=c.get("menu_"+g.id);if(g.keyboardNav){g.keyboardNav.destroy()}a.remove(h,"mouseover",g.mouseOverFunc);a.remove(c.select("a",h),"focus",g.mouseOverFunc);a.remove(h,"click",g.mouseClickFunc);a.remove(h,"keydown",g._keyHandler);if(g.element){g.element.remove()}c.remove(h)},renderNode:function(){var i=this,j=i.settings,l,h,k,g;g=c.create("div",{role:"listbox",id:"menu_"+i.id,"class":j["class"],style:"position:absolute;left:0;top:0;z-index:200000;outline:0"});if(i.settings.parent){c.setAttrib(g,"aria-parent","menu_"+i.settings.parent.id)}k=c.add(g,"div",{role:"presentation",id:"menu_"+i.id+"_co","class":i.classPrefix+(j["class"]?" "+j["class"]:"")});i.element=new b("menu_"+i.id,{blocker:1,container:j.container});if(j.menu_line){c.add(k,"span",{"class":i.classPrefix+"Line"})}l=c.add(k,"table",{role:"presentation",id:"menu_"+i.id+"_tbl",border:0,cellPadding:0,cellSpacing:0});h=c.add(l,"tbody");f(i.items,function(m){i._add(h,m)});i.rendered=true;return g},_setupKeyboardNav:function(){var i,h,g=this;i=c.get("menu_"+g.id);h=c.select("a[role=option]","menu_"+g.id);h.splice(0,0,i);g.keyboardNav=new e.ui.KeyboardNavigation({root:"menu_"+g.id,items:h,onCancel:function(){g.hideMenu()},enableUpDown:true});i.focus()},_keyHandler:function(g){var h=this,i;switch(g.keyCode){case 37:if(h.settings.parent){h.hideMenu();h.settings.parent.focus();a.cancel(g)}break;case 39:if(h.mouseOverFunc){h.mouseOverFunc(g)}break}},_add:function(j,h){var i,q=h.settings,p,l,k,m=this.classPrefix,g;if(q.separator){l=c.add(j,"tr",{id:h.id,"class":m+"ItemSeparator"});c.add(l,"td",{"class":m+"ItemSeparator"});if(i=l.previousSibling){c.addClass(i,"mceLast")}return}i=l=c.add(j,"tr",{id:h.id,"class":m+"Item "+m+"ItemEnabled"});i=k=c.add(i,q.titleItem?"th":"td");i=p=c.add(i,"a",{id:h.id+"_aria",role:q.titleItem?"presentation":"option",href:"javascript:;",onclick:"return false;",onmousedown:"return false;"});if(q.parent){c.setAttrib(p,"aria-haspopup","true");c.setAttrib(p,"aria-owns","menu_"+h.id)}c.addClass(k,q["class"]);g=c.add(i,"span",{"class":"mceIcon"+(q.icon?" mce_"+q.icon:"")});if(q.icon_src){c.add(g,"img",{src:q.icon_src})}i=c.add(i,q.element||"span",{"class":"mceText",title:h.settings.title},h.settings.title);if(h.settings.style){if(typeof h.settings.style=="function"){h.settings.style=h.settings.style()}c.setAttrib(i,"style",h.settings.style)}if(j.childNodes.length==1){c.addClass(l,"mceFirst")}if((i=l.previousSibling)&&c.hasClass(i,m+"ItemSeparator")){c.addClass(l,"mceFirst")}if(h.collapse){c.addClass(l,m+"ItemSub")}if(i=l.previousSibling){c.removeClass(i,"mceLast")}c.addClass(l,"mceLast")}})})(tinymce);(function(b){var a=b.DOM;b.create("tinymce.ui.Button:tinymce.ui.Control",{Button:function(e,d,c){this.parent(e,d,c);this.classPrefix="mceButton"},renderHTML:function(){var f=this.classPrefix,e=this.settings,d,c;c=a.encode(e.label||"");d='<a role="button" id="'+this.id+'" href="javascript:;" class="'+f+" "+f+"Enabled "+e["class"]+(c?" "+f+"Labeled":"")+'" onmousedown="return false;" onclick="return false;" aria-labelledby="'+this.id+'_voice" title="'+a.encode(e.title)+'">';if(e.image&&!(this.editor&&this.editor.forcedHighContrastMode)){d+='<span class="mceIcon '+e["class"]+'"><img class="mceIcon" src="'+e.image+'" alt="'+a.encode(e.title)+'" /></span>'+(c?'<span class="'+f+'Label">'+c+"</span>":"")}else{d+='<span class="mceIcon '+e["class"]+'"></span>'+(c?'<span class="'+f+'Label">'+c+"</span>":"")}d+='<span class="mceVoiceLabel mceIconOnly" style="display: none;" id="'+this.id+'_voice">'+e.title+"</span>";d+="</a>";return d},postRender:function(){var d=this,e=d.settings,c;if(b.isIE&&d.editor){b.dom.Event.add(d.id,"mousedown",function(f){var g=d.editor.selection.getNode().nodeName;c=g==="IMG"?d.editor.selection.getBookmark():null})}b.dom.Event.add(d.id,"click",function(f){if(!d.isDisabled()){if(b.isIE&&d.editor&&c!==null){d.editor.selection.moveToBookmark(c)}return e.onclick.call(e.scope,f)}});b.dom.Event.add(d.id,"keyup",function(f){if(!d.isDisabled()&&f.keyCode==b.VK.SPACEBAR){return e.onclick.call(e.scope,f)}})}})})(tinymce);(function(e){var d=e.DOM,b=e.dom.Event,f=e.each,a=e.util.Dispatcher,c;e.create("tinymce.ui.ListBox:tinymce.ui.Control",{ListBox:function(j,i,g){var h=this;h.parent(j,i,g);h.items=[];h.onChange=new a(h);h.onPostRender=new a(h);h.onAdd=new a(h);h.onRenderMenu=new e.util.Dispatcher(this);h.classPrefix="mceListBox";h.marked={}},select:function(h){var g=this,j,i;g.marked={};if(h==c){return g.selectByIndex(-1)}if(h&&typeof(h)=="function"){i=h}else{i=function(k){return k==h}}if(h!=g.selectedValue){f(g.items,function(l,k){if(i(l.value)){j=1;g.selectByIndex(k);return false}});if(!j){g.selectByIndex(-1)}}},selectByIndex:function(g){var i=this,j,k,h;i.marked={};if(g!=i.selectedIndex){j=d.get(i.id+"_text");h=d.get(i.id+"_voiceDesc");k=i.items[g];if(k){i.selectedValue=k.value;i.selectedIndex=g;d.setHTML(j,d.encode(k.title));d.setHTML(h,i.settings.title+" - "+k.title);d.removeClass(j,"mceTitle");d.setAttrib(i.id,"aria-valuenow",k.title)}else{d.setHTML(j,d.encode(i.settings.title));d.setHTML(h,d.encode(i.settings.title));d.addClass(j,"mceTitle");i.selectedValue=i.selectedIndex=null;d.setAttrib(i.id,"aria-valuenow",i.settings.title)}j=0}},mark:function(g){this.marked[g]=true},add:function(j,g,i){var h=this;i=i||{};i=e.extend(i,{title:j,value:g});h.items.push(i);h.onAdd.dispatch(h,i)},getLength:function(){return this.items.length},renderHTML:function(){var j="",g=this,i=g.settings,k=g.classPrefix;j='<span role="listbox" aria-haspopup="true" aria-labelledby="'+g.id+'_voiceDesc" aria-describedby="'+g.id+'_voiceDesc"><table role="presentation" tabindex="0" id="'+g.id+'" cellpadding="0" cellspacing="0" class="'+k+" "+k+"Enabled"+(i["class"]?(" "+i["class"]):"")+'"><tbody><tr>';j+="<td>"+d.createHTML("span",{id:g.id+"_voiceDesc","class":"voiceLabel",style:"display:none;"},g.settings.title);j+=d.createHTML("a",{id:g.id+"_text",tabindex:-1,href:"javascript:;","class":"mceText",onclick:"return false;",onmousedown:"return false;"},d.encode(g.settings.title))+"</td>";j+="<td>"+d.createHTML("a",{id:g.id+"_open",tabindex:-1,href:"javascript:;","class":"mceOpen",onclick:"return false;",onmousedown:"return false;"},'<span><span style="display:none;" class="mceIconOnly" aria-hidden="true">\u25BC</span></span>')+"</td>";j+="</tr></tbody></table></span>";return j},showMenu:function(){var h=this,j,i=d.get(this.id),g;if(h.isDisabled()||h.items.length===0){return}if(h.menu&&h.menu.isMenuVisible){return h.hideMenu()}if(!h.isMenuRendered){h.renderMenu();h.isMenuRendered=true}j=d.getPos(i);g=h.menu;g.settings.offset_x=j.x;g.settings.offset_y=j.y;g.settings.keyboard_focus=!e.isOpera;f(h.items,function(k){if(g.items[k.id]){g.items[k.id].setSelected(0)}});f(h.items,function(k){if(g.items[k.id]&&h.marked[k.value]){g.items[k.id].setSelected(1)}if(k.value===h.selectedValue){g.items[k.id].setSelected(1)}});g.showMenu(0,i.clientHeight);b.add(d.doc,"mousedown",h.hideMenu,h);d.addClass(h.id,h.classPrefix+"Selected")},hideMenu:function(h){var g=this;if(g.menu&&g.menu.isMenuVisible){d.removeClass(g.id,g.classPrefix+"Selected");if(h&&h.type=="mousedown"&&(h.target.id==g.id+"_text"||h.target.id==g.id+"_open")){return}if(!h||!d.getParent(h.target,".mceMenu")){d.removeClass(g.id,g.classPrefix+"Selected");b.remove(d.doc,"mousedown",g.hideMenu,g);g.menu.hideMenu()}}},renderMenu:function(){var h=this,g;g=h.settings.control_manager.createDropMenu(h.id+"_menu",{menu_line:1,"class":h.classPrefix+"Menu mceNoIcons",max_width:250,max_height:150});g.onHideMenu.add(function(){h.hideMenu();h.focus()});g.add({title:h.settings.title,"class":"mceMenuItemTitle",onclick:function(){if(h.settings.onselect("")!==false){h.select("")}}});f(h.items,function(i){if(i.value===c){g.add({title:i.title,role:"option","class":"mceMenuItemTitle",onclick:function(){if(h.settings.onselect("")!==false){h.select("")}}})}else{i.id=d.uniqueId();i.role="option";i.onclick=function(){if(h.settings.onselect(i.value)!==false){h.select(i.value)}};g.add(i)}});h.onRenderMenu.dispatch(h,g);h.menu=g},postRender:function(){var g=this,h=g.classPrefix;b.add(g.id,"click",g.showMenu,g);b.add(g.id,"keydown",function(i){if(i.keyCode==32){g.showMenu(i);b.cancel(i)}});b.add(g.id,"focus",function(){if(!g._focused){g.keyDownHandler=b.add(g.id,"keydown",function(i){if(i.keyCode==40){g.showMenu();b.cancel(i)}});g.keyPressHandler=b.add(g.id,"keypress",function(j){var i;if(j.keyCode==13){i=g.selectedValue;g.selectedValue=null;b.cancel(j);g.settings.onselect(i)}})}g._focused=1});b.add(g.id,"blur",function(){b.remove(g.id,"keydown",g.keyDownHandler);b.remove(g.id,"keypress",g.keyPressHandler);g._focused=0});if(e.isIE6||!d.boxModel){b.add(g.id,"mouseover",function(){if(!d.hasClass(g.id,h+"Disabled")){d.addClass(g.id,h+"Hover")}});b.add(g.id,"mouseout",function(){if(!d.hasClass(g.id,h+"Disabled")){d.removeClass(g.id,h+"Hover")}})}g.onPostRender.dispatch(g,d.get(g.id))},destroy:function(){this.parent();b.clear(this.id+"_text");b.clear(this.id+"_open")}})})(tinymce);(function(e){var d=e.DOM,b=e.dom.Event,f=e.each,a=e.util.Dispatcher,c;e.create("tinymce.ui.NativeListBox:tinymce.ui.ListBox",{NativeListBox:function(h,g){this.parent(h,g);this.classPrefix="mceNativeListBox"},setDisabled:function(g){d.get(this.id).disabled=g;this.setAriaProperty("disabled",g)},isDisabled:function(){return d.get(this.id).disabled},select:function(h){var g=this,j,i;if(h==c){return g.selectByIndex(-1)}if(h&&typeof(h)=="function"){i=h}else{i=function(k){return k==h}}if(h!=g.selectedValue){f(g.items,function(l,k){if(i(l.value)){j=1;g.selectByIndex(k);return false}});if(!j){g.selectByIndex(-1)}}},selectByIndex:function(g){d.get(this.id).selectedIndex=g+1;this.selectedValue=this.items[g]?this.items[g].value:null},add:function(k,h,g){var j,i=this;g=g||{};g.value=h;if(i.isRendered()){d.add(d.get(this.id),"option",g,k)}j={title:k,value:h,attribs:g};i.items.push(j);i.onAdd.dispatch(i,j)},getLength:function(){return this.items.length},renderHTML:function(){var i,g=this;i=d.createHTML("option",{value:""},"-- "+g.settings.title+" --");f(g.items,function(h){i+=d.createHTML("option",{value:h.value},h.title)});i=d.createHTML("select",{id:g.id,"class":"mceNativeListBox","aria-labelledby":g.id+"_aria"},i);i+=d.createHTML("span",{id:g.id+"_aria",style:"display: none"},g.settings.title);return i},postRender:function(){var h=this,i,j=true;h.rendered=true;function g(l){var k=h.items[l.target.selectedIndex-1];if(k&&(k=k.value)){h.onChange.dispatch(h,k);if(h.settings.onselect){h.settings.onselect(k)}}}b.add(h.id,"change",g);b.add(h.id,"keydown",function(l){var k;b.remove(h.id,"change",i);j=false;k=b.add(h.id,"blur",function(){if(j){return}j=true;b.add(h.id,"change",g);b.remove(h.id,"blur",k)});if(e.isWebKit&&(l.keyCode==37||l.keyCode==39)){return b.prevent(l)}if(l.keyCode==13||l.keyCode==32){g(l);return b.cancel(l)}});h.onPostRender.dispatch(h,d.get(h.id))}})})(tinymce);(function(c){var b=c.DOM,a=c.dom.Event,d=c.each;c.create("tinymce.ui.MenuButton:tinymce.ui.Button",{MenuButton:function(g,f,e){this.parent(g,f,e);this.onRenderMenu=new c.util.Dispatcher(this);f.menu_container=f.menu_container||b.doc.body},showMenu:function(){var g=this,j,i,h=b.get(g.id),f;if(g.isDisabled()){return}if(!g.isMenuRendered){g.renderMenu();g.isMenuRendered=true}if(g.isMenuVisible){return g.hideMenu()}j=b.getPos(g.settings.menu_container);i=b.getPos(h);f=g.menu;f.settings.offset_x=i.x;f.settings.offset_y=i.y;f.settings.vp_offset_x=i.x;f.settings.vp_offset_y=i.y;f.settings.keyboard_focus=g._focused;f.showMenu(0,h.firstChild.clientHeight);a.add(b.doc,"mousedown",g.hideMenu,g);g.setState("Selected",1);g.isMenuVisible=1},renderMenu:function(){var f=this,e;e=f.settings.control_manager.createDropMenu(f.id+"_menu",{menu_line:1,"class":this.classPrefix+"Menu",icons:f.settings.icons});e.onHideMenu.add(function(){f.hideMenu();f.focus()});f.onRenderMenu.dispatch(f,e);f.menu=e},hideMenu:function(g){var f=this;if(g&&g.type=="mousedown"&&b.getParent(g.target,function(h){return h.id===f.id||h.id===f.id+"_open"})){return}if(!g||!b.getParent(g.target,".mceMenu")){f.setState("Selected",0);a.remove(b.doc,"mousedown",f.hideMenu,f);if(f.menu){f.menu.hideMenu()}}f.isMenuVisible=0},postRender:function(){var e=this,f=e.settings;a.add(e.id,"click",function(){if(!e.isDisabled()){if(f.onclick){f.onclick(e.value)}e.showMenu()}})}})})(tinymce);(function(c){var b=c.DOM,a=c.dom.Event,d=c.each;c.create("tinymce.ui.SplitButton:tinymce.ui.MenuButton",{SplitButton:function(g,f,e){this.parent(g,f,e);this.classPrefix="mceSplitButton"},renderHTML:function(){var i,f=this,g=f.settings,e;i="<tbody><tr>";if(g.image){e=b.createHTML("img ",{src:g.image,role:"presentation","class":"mceAction "+g["class"]})}else{e=b.createHTML("span",{"class":"mceAction "+g["class"]},"")}e+=b.createHTML("span",{"class":"mceVoiceLabel mceIconOnly",id:f.id+"_voice",style:"display:none;"},g.title);i+="<td >"+b.createHTML("a",{role:"button",id:f.id+"_action",tabindex:"-1",href:"javascript:;","class":"mceAction "+g["class"],onclick:"return false;",onmousedown:"return false;",title:g.title},e)+"</td>";e=b.createHTML("span",{"class":"mceOpen "+g["class"]},'<span style="display:none;" class="mceIconOnly" aria-hidden="true">\u25BC</span>');i+="<td >"+b.createHTML("a",{role:"button",id:f.id+"_open",tabindex:"-1",href:"javascript:;","class":"mceOpen "+g["class"],onclick:"return false;",onmousedown:"return false;",title:g.title},e)+"</td>";i+="</tr></tbody>";i=b.createHTML("table",{role:"presentation","class":"mceSplitButton mceSplitButtonEnabled "+g["class"],cellpadding:"0",cellspacing:"0",title:g.title},i);return b.createHTML("div",{id:f.id,role:"button",tabindex:"0","aria-labelledby":f.id+"_voice","aria-haspopup":"true"},i)},postRender:function(){var e=this,g=e.settings,f;if(g.onclick){f=function(h){if(!e.isDisabled()){g.onclick(e.value);a.cancel(h)}};a.add(e.id+"_action","click",f);a.add(e.id,["click","keydown"],function(h){var k=32,m=14,i=13,j=38,l=40;if((h.keyCode===32||h.keyCode===13||h.keyCode===14)&&!h.altKey&&!h.ctrlKey&&!h.metaKey){f();a.cancel(h)}else{if(h.type==="click"||h.keyCode===l){e.showMenu();a.cancel(h)}}})}a.add(e.id+"_open","click",function(h){e.showMenu();a.cancel(h)});a.add([e.id,e.id+"_open"],"focus",function(){e._focused=1});a.add([e.id,e.id+"_open"],"blur",function(){e._focused=0});if(c.isIE6||!b.boxModel){a.add(e.id,"mouseover",function(){if(!b.hasClass(e.id,"mceSplitButtonDisabled")){b.addClass(e.id,"mceSplitButtonHover")}});a.add(e.id,"mouseout",function(){if(!b.hasClass(e.id,"mceSplitButtonDisabled")){b.removeClass(e.id,"mceSplitButtonHover")}})}},destroy:function(){this.parent();a.clear(this.id+"_action");a.clear(this.id+"_open");a.clear(this.id)}})})(tinymce);(function(d){var c=d.DOM,a=d.dom.Event,b=d.is,e=d.each;d.create("tinymce.ui.ColorSplitButton:tinymce.ui.SplitButton",{ColorSplitButton:function(i,h,f){var g=this;g.parent(i,h,f);g.settings=h=d.extend({colors:"000000,993300,333300,003300,003366,000080,333399,333333,800000,FF6600,808000,008000,008080,0000FF,666699,808080,FF0000,FF9900,99CC00,339966,33CCCC,3366FF,800080,999999,FF00FF,FFCC00,FFFF00,00FF00,00FFFF,00CCFF,993366,C0C0C0,FF99CC,FFCC99,FFFF99,CCFFCC,CCFFFF,99CCFF,CC99FF,FFFFFF",grid_width:8,default_color:"#888888"},g.settings);g.onShowMenu=new d.util.Dispatcher(g);g.onHideMenu=new d.util.Dispatcher(g);g.value=h.default_color},showMenu:function(){var f=this,g,j,i,h;if(f.isDisabled()){return}if(!f.isMenuRendered){f.renderMenu();f.isMenuRendered=true}if(f.isMenuVisible){return f.hideMenu()}i=c.get(f.id);c.show(f.id+"_menu");c.addClass(i,"mceSplitButtonSelected");h=c.getPos(i);c.setStyles(f.id+"_menu",{left:h.x,top:h.y+i.firstChild.clientHeight,zIndex:200000});i=0;a.add(c.doc,"mousedown",f.hideMenu,f);f.onShowMenu.dispatch(f);if(f._focused){f._keyHandler=a.add(f.id+"_menu","keydown",function(k){if(k.keyCode==27){f.hideMenu()}});c.select("a",f.id+"_menu")[0].focus()}f.keyboardNav=new d.ui.KeyboardNavigation({root:f.id+"_menu",items:c.select("a",f.id+"_menu"),onCancel:function(){f.hideMenu();f.focus()}});f.keyboardNav.focus();f.isMenuVisible=1},hideMenu:function(g){var f=this;if(f.isMenuVisible){if(g&&g.type=="mousedown"&&c.getParent(g.target,function(h){return h.id===f.id+"_open"})){return}if(!g||!c.getParent(g.target,".mceSplitButtonMenu")){c.removeClass(f.id,"mceSplitButtonSelected");a.remove(c.doc,"mousedown",f.hideMenu,f);a.remove(f.id+"_menu","keydown",f._keyHandler);c.hide(f.id+"_menu")}f.isMenuVisible=0;f.onHideMenu.dispatch();f.keyboardNav.destroy()}},renderMenu:function(){var p=this,h,k=0,q=p.settings,g,j,l,o,f;o=c.add(q.menu_container,"div",{role:"listbox",id:p.id+"_menu","class":q.menu_class+" "+q["class"],style:"position:absolute;left:0;top:-1000px;"});h=c.add(o,"div",{"class":q["class"]+" mceSplitButtonMenu"});c.add(h,"span",{"class":"mceMenuLine"});g=c.add(h,"table",{role:"presentation","class":"mceColorSplitMenu"});j=c.add(g,"tbody");k=0;e(b(q.colors,"array")?q.colors:q.colors.split(","),function(m){m=m.replace(/^#/,"");if(!k--){l=c.add(j,"tr");k=q.grid_width-1}g=c.add(l,"td");var i={href:"javascript:;",style:{backgroundColor:"#"+m},title:p.editor.getLang("colors."+m,m),"data-mce-color":"#"+m};if(!d.isIE){i.role="option"}g=c.add(g,"a",i);if(p.editor.forcedHighContrastMode){g=c.add(g,"canvas",{width:16,height:16,"aria-hidden":"true"});if(g.getContext&&(f=g.getContext("2d"))){f.fillStyle="#"+m;f.fillRect(0,0,16,16)}else{c.remove(g)}}});if(q.more_colors_func){g=c.add(j,"tr");g=c.add(g,"td",{colspan:q.grid_width,"class":"mceMoreColors"});g=c.add(g,"a",{role:"option",id:p.id+"_more",href:"javascript:;",onclick:"return false;","class":"mceMoreColors"},q.more_colors_title);a.add(g,"click",function(i){q.more_colors_func.call(q.more_colors_scope||this);return a.cancel(i)})}c.addClass(h,"mceColorSplitMenu");a.add(p.id+"_menu","mousedown",function(i){return a.cancel(i)});a.add(p.id+"_menu","click",function(i){var m;i=c.getParent(i.target,"a",j);if(i&&i.nodeName.toLowerCase()=="a"&&(m=i.getAttribute("data-mce-color"))){p.setColor(m)}return false});return o},setColor:function(f){this.displayColor(f);this.hideMenu();this.settings.onselect(f)},displayColor:function(g){var f=this;c.setStyle(f.id+"_preview","backgroundColor",g);f.value=g},postRender:function(){var f=this,g=f.id;f.parent();c.add(g+"_action","div",{id:g+"_preview","class":"mceColorPreview"});c.setStyle(f.id+"_preview","backgroundColor",f.value)},destroy:function(){var f=this;f.parent();a.clear(f.id+"_menu");a.clear(f.id+"_more");c.remove(f.id+"_menu");if(f.keyboardNav){f.keyboardNav.destroy()}}})})(tinymce);(function(b){var d=b.DOM,c=b.each,a=b.dom.Event;b.create("tinymce.ui.ToolbarGroup:tinymce.ui.Container",{renderHTML:function(){var f=this,i=[],e=f.controls,j=b.each,g=f.settings;i.push('<div id="'+f.id+'" role="group" aria-labelledby="'+f.id+'_voice">');i.push("<span role='application'>");i.push('<span id="'+f.id+'_voice" class="mceVoiceLabel" style="display:none;">'+d.encode(g.name)+"</span>");j(e,function(h){i.push(h.renderHTML())});i.push("</span>");i.push("</div>");return i.join("")},focus:function(){var e=this;d.get(e.id).focus()},postRender:function(){var f=this,e=[];c(f.controls,function(g){c(g.controls,function(h){if(h.id){e.push(h)}})});f.keyNav=new b.ui.KeyboardNavigation({root:f.id,items:e,onCancel:function(){if(b.isWebKit){d.get(f.editor.id+"_ifr").focus()}f.editor.focus()},excludeFromTabOrder:!f.settings.tab_focus_toolbar})},destroy:function(){var e=this;e.parent();e.keyNav.destroy();a.clear(e.id)}})})(tinymce);(function(a){var c=a.DOM,b=a.each;a.create("tinymce.ui.Toolbar:tinymce.ui.Container",{renderHTML:function(){var m=this,f="",j,k,n=m.settings,e,d,g,l;l=m.controls;for(e=0;e<l.length;e++){k=l[e];d=l[e-1];g=l[e+1];if(e===0){j="mceToolbarStart";if(k.Button){j+=" mceToolbarStartButton"}else{if(k.SplitButton){j+=" mceToolbarStartSplitButton"}else{if(k.ListBox){j+=" mceToolbarStartListBox"}}}f+=c.createHTML("td",{"class":j},c.createHTML("span",null,"<!-- IE -->"))}if(d&&k.ListBox){if(d.Button||d.SplitButton){f+=c.createHTML("td",{"class":"mceToolbarEnd"},c.createHTML("span",null,"<!-- IE -->"))}}if(c.stdMode){f+='<td style="position: relative">'+k.renderHTML()+"</td>"}else{f+="<td>"+k.renderHTML()+"</td>"}if(g&&k.ListBox){if(g.Button||g.SplitButton){f+=c.createHTML("td",{"class":"mceToolbarStart"},c.createHTML("span",null,"<!-- IE -->"))}}}j="mceToolbarEnd";if(k.Button){j+=" mceToolbarEndButton"}else{if(k.SplitButton){j+=" mceToolbarEndSplitButton"}else{if(k.ListBox){j+=" mceToolbarEndListBox"}}}f+=c.createHTML("td",{"class":j},c.createHTML("span",null,"<!-- IE -->"));return c.createHTML("table",{id:m.id,"class":"mceToolbar"+(n["class"]?" "+n["class"]:""),cellpadding:"0",cellspacing:"0",align:m.settings.align||"",role:"presentation",tabindex:"-1"},"<tbody><tr>"+f+"</tr></tbody>")}})})(tinymce);(function(b){var a=b.util.Dispatcher,c=b.each;b.create("tinymce.AddOnManager",{AddOnManager:function(){var d=this;d.items=[];d.urls={};d.lookup={};d.onAdd=new a(d)},get:function(d){if(this.lookup[d]){return this.lookup[d].instance}else{return undefined}},dependencies:function(e){var d;if(this.lookup[e]){d=this.lookup[e].dependencies}return d||[]},requireLangPack:function(e){var d=b.settings;if(d&&d.language&&d.language_load!==false){b.ScriptLoader.add(this.urls[e]+"/langs/"+d.language+".js")}},add:function(f,e,d){this.items.push(e);this.lookup[f]={instance:e,dependencies:d};this.onAdd.dispatch(this,f,e);return e},createUrl:function(d,e){if(typeof e==="object"){return e}else{return{prefix:d.prefix,resource:e,suffix:d.suffix}}},addComponents:function(f,d){var e=this.urls[f];b.each(d,function(g){b.ScriptLoader.add(e+"/"+g)})},load:function(j,f,d,h){var g=this,e=f;function i(){var k=g.dependencies(j);b.each(k,function(m){var l=g.createUrl(f,m);g.load(l.resource,l,undefined,undefined)});if(d){if(h){d.call(h)}else{d.call(b.ScriptLoader)}}}if(g.urls[j]){return}if(typeof f==="object"){e=f.prefix+f.resource+f.suffix}if(e.indexOf("/")!==0&&e.indexOf("://")==-1){e=b.baseURL+"/"+e}g.urls[j]=e.substring(0,e.lastIndexOf("/"));if(g.lookup[j]){i()}else{b.ScriptLoader.add(e,i,h)}}});b.PluginManager=new b.AddOnManager();b.ThemeManager=new b.AddOnManager()}(tinymce));(function(j){var g=j.each,d=j.extend,k=j.DOM,i=j.dom.Event,f=j.ThemeManager,b=j.PluginManager,e=j.explode,h=j.util.Dispatcher,a,c=0;j.documentBaseURL=window.location.href.replace(/[\?#].*$/,"").replace(/[\/\\][^\/]+$/,"");if(!/[\/\\]$/.test(j.documentBaseURL)){j.documentBaseURL+="/"}j.baseURL=new j.util.URI(j.documentBaseURL).toAbsolute(j.baseURL);j.baseURI=new j.util.URI(j.baseURL);j.onBeforeUnload=new h(j);i.add(window,"beforeunload",function(l){j.onBeforeUnload.dispatch(j,l)});j.onAddEditor=new h(j);j.onRemoveEditor=new h(j);j.EditorManager=d(j,{editors:[],i18n:{},activeEditor:null,init:function(x){var v=this,o,n=j.ScriptLoader,u,l=[],r;function q(t){var s=t.id;if(!s){s=t.name;if(s&&!k.get(s)){s=t.name}else{s=k.uniqueId()}t.setAttribute("id",s)}return s}function m(z,A,t){var y=z[A];if(!y){return}if(j.is(y,"string")){t=y.replace(/\.\w+$/,"");t=t?j.resolve(t):0;y=j.resolve(y)}return y.apply(t||this,Array.prototype.slice.call(arguments,2))}function p(t,s){return s.constructor===RegExp?s.test(t.className):k.hasClass(t,s)}v.settings=x;i.bind(window,"ready",function(){var s,t;m(x,"onpageload");switch(x.mode){case"exact":s=x.elements||"";if(s.length>0){g(e(s),function(y){if(k.get(y)){r=new j.Editor(y,x);l.push(r);r.render(1)}else{g(document.forms,function(z){g(z.elements,function(A){if(A.name===y){y="mce_editor_"+c++;k.setAttrib(A,"id",y);r=new j.Editor(y,x);l.push(r);r.render(1)}})})}})}break;case"textareas":case"specific_textareas":g(k.select("textarea"),function(y){if(x.editor_deselector&&p(y,x.editor_deselector)){return}if(!x.editor_selector||p(y,x.editor_selector)){r=new j.Editor(q(y),x);l.push(r);r.render(1)}});break;default:if(x.types){g(x.types,function(y){g(k.select(y.selector),function(A){var z=new j.Editor(q(A),j.extend({},x,y));l.push(z);z.render(1)})})}else{if(x.selector){g(k.select(x.selector),function(z){var y=new j.Editor(q(z),x);l.push(y);y.render(1)})}}}if(x.oninit){s=t=0;g(l,function(y){t++;if(!y.initialized){y.onInit.add(function(){s++;if(s==t){m(x,"oninit")}})}else{s++}if(s==t){m(x,"oninit")}})}})},get:function(l){if(l===a){return this.editors}if(!this.editors.hasOwnProperty(l)){return a}return this.editors[l]},getInstanceById:function(l){return this.get(l)},add:function(m){var l=this,n=l.editors;n[m.id]=m;n.push(m);l._setActive(m);l.onAddEditor.dispatch(l,m);return m},remove:function(n){var m=this,l,o=m.editors;if(!o[n.id]){return null}delete o[n.id];for(l=0;l<o.length;l++){if(o[l]==n){o.splice(l,1);break}}if(m.activeEditor==n){m._setActive(o[0])}n.destroy();m.onRemoveEditor.dispatch(m,n);return n},execCommand:function(r,p,o){var q=this,n=q.get(o),l;function m(){n.destroy();l.detachEvent("onunload",m);l=l.tinyMCE=l.tinymce=null}switch(r){case"mceFocus":n.focus();return true;case"mceAddEditor":case"mceAddControl":if(!q.get(o)){new j.Editor(o,q.settings).render()}return true;case"mceAddFrameControl":l=o.window;l.tinyMCE=tinyMCE;l.tinymce=j;j.DOM.doc=l.document;j.DOM.win=l;n=new j.Editor(o.element_id,o);n.render();if(j.isIE){l.attachEvent("onunload",m)}o.page_window=null;return true;case"mceRemoveEditor":case"mceRemoveControl":if(n){n.remove()}return true;case"mceToggleEditor":if(!n){q.execCommand("mceAddControl",0,o);return true}if(n.isHidden()){n.show()}else{n.hide()}return true}if(q.activeEditor){return q.activeEditor.execCommand(r,p,o)}return false},execInstanceCommand:function(p,o,n,m){var l=this.get(p);if(l){return l.execCommand(o,n,m)}return false},triggerSave:function(){g(this.editors,function(l){l.save()})},addI18n:function(n,q){var l,m=this.i18n;if(!j.is(n,"string")){g(n,function(r,p){g(r,function(t,s){g(t,function(v,u){if(s==="common"){m[p+"."+u]=v}else{m[p+"."+s+"."+u]=v}})})})}else{g(q,function(r,p){m[n+"."+p]=r})}},_setActive:function(l){this.selectedInstance=this.activeEditor=l}})})(tinymce);(function(k){var l=k.DOM,j=k.dom.Event,f=k.extend,i=k.each,a=k.isGecko,b=k.isIE,e=k.isWebKit,d=k.is,h=k.ThemeManager,c=k.PluginManager,g=k.explode;k.create("tinymce.Editor",{Editor:function(p,o){var m=this,n=true;m.settings=o=f({id:p,language:"en",theme:"advanced",skin:"default",delta_width:0,delta_height:0,popup_css:"",plugins:"",document_base_url:k.documentBaseURL,add_form_submit_trigger:n,submit_patch:n,add_unload_trigger:n,convert_urls:n,relative_urls:n,remove_script_host:n,table_inline_editing:false,object_resizing:n,accessibility_focus:n,doctype:k.isIE6?'<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">':"<!DOCTYPE>",visual:n,font_size_style_values:"xx-small,x-small,small,medium,large,x-large,xx-large",font_size_legacy_values:"xx-small,small,medium,large,x-large,xx-large,300%",apply_source_formatting:n,directionality:"ltr",forced_root_block:"p",hidden_input:n,padd_empty_editor:n,render_ui:n,indentation:"30px",fix_table_elements:n,inline_styles:n,convert_fonts_to_spans:n,indent:"simple",indent_before:"p,h1,h2,h3,h4,h5,h6,blockquote,div,title,style,pre,script,td,ul,li,area,table,thead,tfoot,tbody,tr,section,article,hgroup,aside,figure,option,optgroup,datalist",indent_after:"p,h1,h2,h3,h4,h5,h6,blockquote,div,title,style,pre,script,td,ul,li,area,table,thead,tfoot,tbody,tr,section,article,hgroup,aside,figure,option,optgroup,datalist",validate:n,entity_encoding:"named",url_converter:m.convertURL,url_converter_scope:m,ie7_compat:n},o);m.id=m.editorId=p;m.isNotDirty=false;m.plugins={};m.documentBaseURI=new k.util.URI(o.document_base_url||k.documentBaseURL,{base_uri:tinyMCE.baseURI});m.baseURI=k.baseURI;m.contentCSS=[];m.contentStyles=[];m.setupEvents();m.execCommands={};m.queryStateCommands={};m.queryValueCommands={};m.execCallback("setup",m)},render:function(o){var p=this,q=p.settings,r=p.id,m=k.ScriptLoader;if(!j.domLoaded){j.add(window,"ready",function(){p.render()});return}tinyMCE.settings=q;if(!p.getElement()){return}if(k.isIDevice&&!k.isIOS5){return}if(!/TEXTAREA|INPUT/i.test(p.getElement().nodeName)&&q.hidden_input&&l.getParent(r,"form")){l.insertAfter(l.create("input",{type:"hidden",name:r}),r)}if(!q.content_editable){p.orgVisibility=p.getElement().style.visibility;p.getElement().style.visibility="hidden"}if(k.WindowManager){p.windowManager=new k.WindowManager(p)}if(q.encoding=="xml"){p.onGetContent.add(function(s,t){if(t.save){t.content=l.encode(t.content)}})}if(q.add_form_submit_trigger){p.onSubmit.addToTop(function(){if(p.initialized){p.save();p.isNotDirty=1}})}if(q.add_unload_trigger){p._beforeUnload=tinyMCE.onBeforeUnload.add(function(){if(p.initialized&&!p.destroyed&&!p.isHidden()){p.save({format:"raw",no_events:true})}})}k.addUnload(p.destroy,p);if(q.submit_patch){p.onBeforeRenderUI.add(function(){var s=p.getElement().form;if(!s){return}if(s._mceOldSubmit){return}if(!s.submit.nodeType&&!s.submit.length){p.formElement=s;s._mceOldSubmit=s.submit;s.submit=function(){k.triggerSave();p.isNotDirty=1;return p.formElement._mceOldSubmit(p.formElement)}}s=null})}function n(){if(q.language&&q.language_load!==false){m.add(k.baseURL+"/langs/"+q.language+".js")}if(q.theme&&typeof q.theme!="function"&&q.theme.charAt(0)!="-"&&!h.urls[q.theme]){h.load(q.theme,"themes/"+q.theme+"/editor_template"+k.suffix+".js")}i(g(q.plugins),function(t){if(t&&!c.urls[t]){if(t.charAt(0)=="-"){t=t.substr(1,t.length);var s=c.dependencies(t);i(s,function(v){var u={prefix:"plugins/",resource:v,suffix:"/editor_plugin"+k.suffix+".js"};v=c.createUrl(u,v);c.load(v.resource,v)})}else{if(t=="safari"){return}c.load(t,{prefix:"plugins/",resource:t,suffix:"/editor_plugin"+k.suffix+".js"})}}});m.loadQueue(function(){if(!p.removed){p.init()}})}n()},init:function(){var q,G=this,H=G.settings,D,y,z,C=G.getElement(),p,m,E,v,B,F,x,r=[];k.add(G);H.aria_label=H.aria_label||l.getAttrib(C,"aria-label",G.getLang("aria.rich_text_area"));if(H.theme){if(typeof H.theme!="function"){H.theme=H.theme.replace(/-/,"");p=h.get(H.theme);G.theme=new p();if(G.theme.init){G.theme.init(G,h.urls[H.theme]||k.documentBaseURL.replace(/\/$/,""))}}else{G.theme=H.theme}}function A(s){var t=c.get(s),o=c.urls[s]||k.documentBaseURL.replace(/\/$/,""),n;if(t&&k.inArray(r,s)===-1){i(c.dependencies(s),function(u){A(u)});n=new t(G,o);G.plugins[s]=n;if(n.init){n.init(G,o);r.push(s)}}}i(g(H.plugins.replace(/\-/g,"")),A);if(H.popup_css!==false){if(H.popup_css){H.popup_css=G.documentBaseURI.toAbsolute(H.popup_css)}else{H.popup_css=G.baseURI.toAbsolute("themes/"+H.theme+"/skins/"+H.skin+"/dialog.css")}}if(H.popup_css_add){H.popup_css+=","+G.documentBaseURI.toAbsolute(H.popup_css_add)}G.controlManager=new k.ControlManager(G);G.onBeforeRenderUI.dispatch(G,G.controlManager);if(H.render_ui&&G.theme){G.orgDisplay=C.style.display;if(typeof H.theme!="function"){D=H.width||C.style.width||C.offsetWidth;y=H.height||C.style.height||C.offsetHeight;z=H.min_height||100;F=/^[0-9\.]+(|px)$/i;if(F.test(""+D)){D=Math.max(parseInt(D,10)+(p.deltaWidth||0),100)}if(F.test(""+y)){y=Math.max(parseInt(y,10)+(p.deltaHeight||0),z)}p=G.theme.renderUI({targetNode:C,width:D,height:y,deltaWidth:H.delta_width,deltaHeight:H.delta_height});l.setStyles(p.sizeContainer||p.editorContainer,{width:D,height:y});y=(p.iframeHeight||y)+(typeof(y)=="number"?(p.deltaHeight||0):"");if(y<z){y=z}}else{p=H.theme(G,C);if(p.editorContainer.nodeType){p.editorContainer=p.editorContainer.id=p.editorContainer.id||G.id+"_parent"}if(p.iframeContainer.nodeType){p.iframeContainer=p.iframeContainer.id=p.iframeContainer.id||G.id+"_iframecontainer"}y=p.iframeHeight||C.offsetHeight;if(b){G.onInit.add(function(n){n.dom.bind(n.getBody(),"beforedeactivate keydown",function(){n.lastIERng=n.selection.getRng()})})}}G.editorContainer=p.editorContainer}if(H.content_css){i(g(H.content_css),function(n){G.contentCSS.push(G.documentBaseURI.toAbsolute(n))})}if(H.content_style){G.contentStyles.push(H.content_style)}if(H.content_editable){C=q=p=null;return G.initContentBody()}if(document.domain&&location.hostname!=document.domain){k.relaxedDomain=document.domain}G.iframeHTML=H.doctype+'<html><head xmlns="http://www.w3.org/1999/xhtml">';if(H.document_base_url!=k.documentBaseURL){G.iframeHTML+='<base href="'+G.documentBaseURI.getURI()+'" />'}if(k.isIE8){if(H.ie7_compat){G.iframeHTML+='<meta http-equiv="X-UA-Compatible" content="IE=7" />'}else{G.iframeHTML+='<meta http-equiv="X-UA-Compatible" content="IE=edge" />'}}G.iframeHTML+='<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />';for(x=0;x<G.contentCSS.length;x++){G.iframeHTML+='<link type="text/css" rel="stylesheet" href="'+G.contentCSS[x]+'" />'}G.contentCSS=[];v=H.body_id||"tinymce";if(v.indexOf("=")!=-1){v=G.getParam("body_id","","hash");v=v[G.id]||v}B=H.body_class||"";if(B.indexOf("=")!=-1){B=G.getParam("body_class","","hash");B=B[G.id]||""}G.iframeHTML+='</head><body id="'+v+'" class="mceContentBody '+B+'" onload="window.parent.tinyMCE.get(\''+G.id+"').onLoad.dispatch();\"><br></body></html>";if(k.relaxedDomain&&(b||(k.isOpera&&parseFloat(opera.version())<11))){E='javascript:(function(){document.open();document.domain="'+document.domain+'";var ed = window.parent.tinyMCE.get("'+G.id+'");document.write(ed.iframeHTML);document.close();ed.initContentBody();})()'}q=l.add(p.iframeContainer,"iframe",{id:G.id+"_ifr",src:E||'javascript:""',frameBorder:"0",allowTransparency:"true",title:H.aria_label,style:{width:"100%",height:y,display:"block"}});G.contentAreaContainer=p.iframeContainer;if(p.editorContainer){l.get(p.editorContainer).style.display=G.orgDisplay}C.style.visibility=G.orgVisibility;l.get(G.id).style.display="none";l.setAttrib(G.id,"aria-hidden",true);if(!k.relaxedDomain||!E){G.initContentBody()}C=q=p=null},initContentBody:function(){var n=this,p=n.settings,q=l.get(n.id),r=n.getDoc(),o,m,s;if((!b||!k.relaxedDomain)&&!p.content_editable){r.open();r.write(n.iframeHTML);r.close();if(k.relaxedDomain){r.domain=k.relaxedDomain}}if(p.content_editable){l.addClass(q,"mceContentBody");n.contentDocument=r=p.content_document||document;n.contentWindow=p.content_window||window;n.bodyElement=q;p.content_document=p.content_window=null}m=n.getBody();m.disabled=true;if(!p.readonly){m.contentEditable=n.getParam("content_editable_state",true)}m.disabled=false;n.schema=new k.html.Schema(p);n.dom=new k.dom.DOMUtils(r,{keep_values:true,url_converter:n.convertURL,url_converter_scope:n,hex_colors:p.force_hex_style_colors,class_filter:p.class_filter,update_styles:true,root_element:p.content_editable?n.id:null,schema:n.schema});n.parser=new k.html.DomParser(p,n.schema);n.parser.addAttributeFilter("src,href,style",function(t,u){var v=t.length,y,A=n.dom,z,x;while(v--){y=t[v];z=y.attr(u);x="data-mce-"+u;if(!y.attributes.map[x]){if(u==="style"){y.attr(x,A.serializeStyle(A.parseStyle(z),y.name))}else{y.attr(x,n.convertURL(z,u,y.name))}}}});n.parser.addNodeFilter("script",function(t,u){var v=t.length,x;while(v--){x=t[v];x.attr("type","mce-"+(x.attr("type")||"text/javascript"))}});n.parser.addNodeFilter("#cdata",function(t,u){var v=t.length,x;while(v--){x=t[v];x.type=8;x.name="#comment";x.value="[CDATA["+x.value+"]]"}});n.parser.addNodeFilter("p,h1,h2,h3,h4,h5,h6,div",function(u,v){var x=u.length,y,t=n.schema.getNonEmptyElements();while(x--){y=u[x];if(y.isEmpty(t)){y.empty().append(new k.html.Node("br",1)).shortEnded=true}}});n.serializer=new k.dom.Serializer(p,n.dom,n.schema);n.selection=new k.dom.Selection(n.dom,n.getWin(),n.serializer,n);n.formatter=new k.Formatter(n);n.undoManager=new k.UndoManager(n);n.forceBlocks=new k.ForceBlocks(n);n.enterKey=new k.EnterKey(n);n.editorCommands=new k.EditorCommands(n);n.onExecCommand.add(function(t,u){if(!/^(FontName|FontSize)$/.test(u)){n.nodeChanged()}});n.serializer.onPreProcess.add(function(t,u){return n.onPreProcess.dispatch(n,u,t)});n.serializer.onPostProcess.add(function(t,u){return n.onPostProcess.dispatch(n,u,t)});n.onPreInit.dispatch(n);if(!p.browser_spellcheck&&!p.gecko_spellcheck){r.body.spellcheck=false}if(!p.readonly){n.bindNativeEvents()}n.controlManager.onPostRender.dispatch(n,n.controlManager);n.onPostRender.dispatch(n);n.quirks=k.util.Quirks(n);if(p.directionality){m.dir=p.directionality}if(p.nowrap){m.style.whiteSpace="nowrap"}if(p.protect){n.onBeforeSetContent.add(function(t,u){i(p.protect,function(v){u.content=u.content.replace(v,function(x){return"<!--mce:protected "+escape(x)+"-->"})})})}n.onSetContent.add(function(){n.addVisual(n.getBody())});if(p.padd_empty_editor){n.onPostProcess.add(function(t,u){u.content=u.content.replace(/^(<p[^>]*>(&nbsp;|&#160;|\s|\u00a0|)<\/p>[\r\n]*|<br \/>[\r\n]*)$/,"")})}n.load({initial:true,format:"html"});n.startContent=n.getContent({format:"raw"});n.initialized=true;n.onInit.dispatch(n);n.execCallback("setupcontent_callback",n.id,m,r);n.execCallback("init_instance_callback",n);n.focus(true);n.nodeChanged({initial:true});if(n.contentStyles.length>0){s="";i(n.contentStyles,function(t){s+=t+"\r\n"});n.dom.addStyle(s)}i(n.contentCSS,function(t){n.dom.loadCSS(t)});if(p.auto_focus){setTimeout(function(){var t=k.get(p.auto_focus);t.selection.select(t.getBody(),1);t.selection.collapse(1);t.getBody().focus();t.getWin().focus()},100)}q=r=m=null},focus:function(p){var o,u=this,t=u.selection,q=u.settings.content_editable,n,r,s=u.getDoc(),m;if(!p){if(u.lastIERng){t.setRng(u.lastIERng)}n=t.getRng();if(n.item){r=n.item(0)}u._refreshContentEditable();if(!q){u.getWin().focus()}if(k.isGecko||q){m=u.getBody();if(m.setActive){m.setActive()}else{m.focus()}if(q){t.normalize()}}if(r&&r.ownerDocument==s){n=s.body.createControlRange();n.addElement(r);n.select()}}if(k.activeEditor!=u){if((o=k.activeEditor)!=null){o.onDeactivate.dispatch(o,u)}u.onActivate.dispatch(u,o)}k._setActive(u)},execCallback:function(q){var m=this,p=m.settings[q],o;if(!p){return}if(m.callbackLookup&&(o=m.callbackLookup[q])){p=o.func;o=o.scope}if(d(p,"string")){o=p.replace(/\.\w+$/,"");o=o?k.resolve(o):0;p=k.resolve(p);m.callbackLookup=m.callbackLookup||{};m.callbackLookup[q]={func:p,scope:o}}return p.apply(o||m,Array.prototype.slice.call(arguments,1))},translate:function(m){var o=this.settings.language||"en",n=k.i18n;if(!m){return""}return n[o+"."+m]||m.replace(/\{\#([^\}]+)\}/g,function(q,p){return n[o+"."+p]||"{#"+p+"}"})},getLang:function(o,m){return k.i18n[(this.settings.language||"en")+"."+o]||(d(m)?m:"{#"+o+"}")},getParam:function(t,q,m){var r=k.trim,p=d(this.settings[t])?this.settings[t]:q,s;if(m==="hash"){s={};if(d(p,"string")){i(p.indexOf("=")>0?p.split(/[;,](?![^=;,]*(?:[;,]|$))/):p.split(","),function(n){n=n.split("=");if(n.length>1){s[r(n[0])]=r(n[1])}else{s[r(n[0])]=r(n)}})}else{s=p}return s}return p},nodeChanged:function(q){var m=this,n=m.selection,p;if(m.initialized){q=q||{};p=n.getStart()||m.getBody();p=b&&p.ownerDocument!=m.getDoc()?m.getBody():p;q.parents=[];m.dom.getParent(p,function(o){if(o.nodeName=="BODY"){return true}q.parents.push(o)});m.onNodeChange.dispatch(m,q?q.controlManager||m.controlManager:m.controlManager,p,n.isCollapsed(),q)}},addButton:function(n,o){var m=this;m.buttons=m.buttons||{};m.buttons[n]=o},addCommand:function(m,o,n){this.execCommands[m]={func:o,scope:n||this}},addQueryStateHandler:function(m,o,n){this.queryStateCommands[m]={func:o,scope:n||this}},addQueryValueHandler:function(m,o,n){this.queryValueCommands[m]={func:o,scope:n||this}},addShortcut:function(o,q,m,p){var n=this,r;if(n.settings.custom_shortcuts===false){return false}n.shortcuts=n.shortcuts||{};if(d(m,"string")){r=m;m=function(){n.execCommand(r,false,null)}}if(d(m,"object")){r=m;m=function(){n.execCommand(r[0],r[1],r[2])}}i(g(o),function(s){var t={func:m,scope:p||this,desc:n.translate(q),alt:false,ctrl:false,shift:false};i(g(s,"+"),function(u){switch(u){case"alt":case"ctrl":case"shift":t[u]=true;break;default:t.charCode=u.charCodeAt(0);t.keyCode=u.toUpperCase().charCodeAt(0)}});n.shortcuts[(t.ctrl?"ctrl":"")+","+(t.alt?"alt":"")+","+(t.shift?"shift":"")+","+t.keyCode]=t});return true},execCommand:function(u,r,x,m){var p=this,q=0,v,n;if(!/^(mceAddUndoLevel|mceEndUndoLevel|mceBeginUndoLevel|mceRepaint|SelectAll)$/.test(u)&&(!m||!m.skip_focus)){p.focus()}m=f({},m);p.onBeforeExecCommand.dispatch(p,u,r,x,m);if(m.terminate){return false}if(p.execCallback("execcommand_callback",p.id,p.selection.getNode(),u,r,x)){p.onExecCommand.dispatch(p,u,r,x,m);return true}if(v=p.execCommands[u]){n=v.func.call(v.scope,r,x);if(n!==true){p.onExecCommand.dispatch(p,u,r,x,m);return n}}i(p.plugins,function(o){if(o.execCommand&&o.execCommand(u,r,x)){p.onExecCommand.dispatch(p,u,r,x,m);q=1;return false}});if(q){return true}if(p.theme&&p.theme.execCommand&&p.theme.execCommand(u,r,x)){p.onExecCommand.dispatch(p,u,r,x,m);return true}if(p.editorCommands.execCommand(u,r,x)){p.onExecCommand.dispatch(p,u,r,x,m);return true}p.getDoc().execCommand(u,r,x);p.onExecCommand.dispatch(p,u,r,x,m)},queryCommandState:function(q){var n=this,r,p;if(n._isHidden()){return}if(r=n.queryStateCommands[q]){p=r.func.call(r.scope);if(p!==true){return p}}r=n.editorCommands.queryCommandState(q);if(r!==-1){return r}try{return this.getDoc().queryCommandState(q)}catch(m){}},queryCommandValue:function(r){var n=this,q,p;if(n._isHidden()){return}if(q=n.queryValueCommands[r]){p=q.func.call(q.scope);if(p!==true){return p}}q=n.editorCommands.queryCommandValue(r);if(d(q)){return q}try{return this.getDoc().queryCommandValue(r)}catch(m){}},show:function(){var m=this;l.show(m.getContainer());l.hide(m.id);m.load()},hide:function(){var m=this,n=m.getDoc();if(b&&n){n.execCommand("SelectAll")}m.save();l.hide(m.getContainer());l.setStyle(m.id,"display",m.orgDisplay)},isHidden:function(){return !l.isHidden(this.id)},setProgressState:function(m,n,p){this.onSetProgressState.dispatch(this,m,n,p);return m},load:function(q){var m=this,p=m.getElement(),n;if(p){q=q||{};q.load=true;n=m.setContent(d(p.value)?p.value:p.innerHTML,q);q.element=p;if(!q.no_events){m.onLoadContent.dispatch(m,q)}q.element=p=null;return n}},save:function(r){var m=this,q=m.getElement(),n,p;if(!q||!m.initialized){return}r=r||{};r.save=true;r.element=q;n=r.content=m.getContent(r);if(!r.no_events){m.onSaveContent.dispatch(m,r)}n=r.content;if(!/TEXTAREA|INPUT/i.test(q.nodeName)){q.innerHTML=n;if(p=l.getParent(m.id,"form")){i(p.elements,function(o){if(o.name==m.id){o.value=n;return false}})}}else{q.value=n}r.element=q=null;return n},setContent:function(r,p){var o=this,n,m=o.getBody(),q;p=p||{};p.format=p.format||"html";p.set=true;p.content=r;if(!p.no_events){o.onBeforeSetContent.dispatch(o,p)}r=p.content;if(!k.isIE&&(r.length===0||/^\s+$/.test(r))){q=o.settings.forced_root_block;if(q){r="<"+q+'><br data-mce-bogus="1"></'+q+">"}else{r='<br data-mce-bogus="1">'}m.innerHTML=r;o.selection.select(m,true);o.selection.collapse(true);return}if(p.format!=="raw"){r=new k.html.Serializer({},o.schema).serialize(o.parser.parse(r))}p.content=k.trim(r);o.dom.setHTML(m,p.content);if(!p.no_events){o.onSetContent.dispatch(o,p)}if(!o.settings.content_editable||document.activeElement===o.getBody()){o.selection.normalize()}return p.content},getContent:function(o){var n=this,p,m=n.getBody();o=o||{};o.format=o.format||"html";o.get=true;o.getInner=true;if(!o.no_events){n.onBeforeGetContent.dispatch(n,o)}if(o.format=="raw"){p=m.innerHTML}else{if(o.format=="text"){p=m.innerText||m.textContent}else{p=n.serializer.serialize(m,o)}}if(o.format!="text"){o.content=k.trim(p)}else{o.content=p}if(!o.no_events){n.onGetContent.dispatch(n,o)}return o.content},isDirty:function(){var m=this;return k.trim(m.startContent)!=k.trim(m.getContent({format:"raw",no_events:1}))&&!m.isNotDirty},getContainer:function(){var m=this;if(!m.container){m.container=l.get(m.editorContainer||m.id+"_parent")}return m.container},getContentAreaContainer:function(){return this.contentAreaContainer},getElement:function(){return l.get(this.settings.content_element||this.id)},getWin:function(){var m=this,n;if(!m.contentWindow){n=l.get(m.id+"_ifr");if(n){m.contentWindow=n.contentWindow}}return m.contentWindow},getDoc:function(){var m=this,n;if(!m.contentDocument){n=m.getWin();if(n){m.contentDocument=n.document}}return m.contentDocument},getBody:function(){return this.bodyElement||this.getDoc().body},convertURL:function(o,n,q){var m=this,p=m.settings;if(p.urlconverter_callback){return m.execCallback("urlconverter_callback",o,q,true,n)}if(!p.convert_urls||(q&&q.nodeName=="LINK")||o.indexOf("file:")===0){return o}if(p.relative_urls){return m.documentBaseURI.toRelative(o)}o=m.documentBaseURI.toAbsolute(o,p.remove_script_host);return o},addVisual:function(q){var n=this,o=n.settings,p=n.dom,m;q=q||n.getBody();if(!d(n.hasVisual)){n.hasVisual=o.visual}i(p.select("table,a",q),function(s){var r;switch(s.nodeName){case"TABLE":m=o.visual_table_class||"mceItemTable";r=p.getAttrib(s,"border");if(!r||r=="0"){if(n.hasVisual){p.addClass(s,m)}else{p.removeClass(s,m)}}return;case"A":if(!p.getAttrib(s,"href",false)){r=p.getAttrib(s,"name")||s.id;m="mceItemAnchor";if(r){if(n.hasVisual){p.addClass(s,m)}else{p.removeClass(s,m)}}}return}});n.onVisualAid.dispatch(n,q,n.hasVisual)},remove:function(){var m=this,o=m.getContainer(),n=m.getDoc();if(!m.removed){m.removed=1;if(b&&n){n.execCommand("SelectAll")}m.save();l.setStyle(m.id,"display",m.orgDisplay);if(!m.settings.content_editable){j.unbind(m.getWin());j.unbind(m.getDoc())}j.unbind(m.getBody());j.clear(o);m.execCallback("remove_instance_callback",m);m.onRemove.dispatch(m);m.onExecCommand.listeners=[];k.remove(m);l.remove(o)}},destroy:function(n){var m=this;if(m.destroyed){return}if(a){j.unbind(m.getDoc());j.unbind(m.getWin());j.unbind(m.getBody())}if(!n){k.removeUnload(m.destroy);tinyMCE.onBeforeUnload.remove(m._beforeUnload);if(m.theme&&m.theme.destroy){m.theme.destroy()}m.controlManager.destroy();m.selection.destroy();m.dom.destroy()}if(m.formElement){m.formElement.submit=m.formElement._mceOldSubmit;m.formElement._mceOldSubmit=null}m.contentAreaContainer=m.formElement=m.container=m.settings.content_element=m.bodyElement=m.contentDocument=m.contentWindow=null;if(m.selection){m.selection=m.selection.win=m.selection.dom=m.selection.dom.doc=null}m.destroyed=1},_refreshContentEditable:function(){var n=this,m,o;if(n._isHidden()){m=n.getBody();o=m.parentNode;o.removeChild(m);o.appendChild(m);m.focus()}},_isHidden:function(){var m;if(!a){return 0}m=this.selection.getSel();return(!m||!m.rangeCount||m.rangeCount===0)}})})(tinymce);(function(a){var b=a.each;a.Editor.prototype.setupEvents=function(){var c=this,d=c.settings;b(["onPreInit","onBeforeRenderUI","onPostRender","onLoad","onInit","onRemove","onActivate","onDeactivate","onClick","onEvent","onMouseUp","onMouseDown","onDblClick","onKeyDown","onKeyUp","onKeyPress","onContextMenu","onSubmit","onReset","onPaste","onPreProcess","onPostProcess","onBeforeSetContent","onBeforeGetContent","onSetContent","onGetContent","onLoadContent","onSaveContent","onNodeChange","onChange","onBeforeExecCommand","onExecCommand","onUndo","onRedo","onVisualAid","onSetProgressState","onSetAttrib"],function(e){c[e]=new a.util.Dispatcher(c)});if(d.cleanup_callback){c.onBeforeSetContent.add(function(e,f){f.content=e.execCallback("cleanup_callback","insert_to_editor",f.content,f)});c.onPreProcess.add(function(e,f){if(f.set){e.execCallback("cleanup_callback","insert_to_editor_dom",f.node,f)}if(f.get){e.execCallback("cleanup_callback","get_from_editor_dom",f.node,f)}});c.onPostProcess.add(function(e,f){if(f.set){f.content=e.execCallback("cleanup_callback","insert_to_editor",f.content,f)}if(f.get){f.content=e.execCallback("cleanup_callback","get_from_editor",f.content,f)}})}if(d.save_callback){c.onGetContent.add(function(e,f){if(f.save){f.content=e.execCallback("save_callback",e.id,f.content,e.getBody())}})}if(d.handle_event_callback){c.onEvent.add(function(f,g,h){if(c.execCallback("handle_event_callback",g,f,h)===false){g.preventDefault();g.stopPropagation()}})}if(d.handle_node_change_callback){c.onNodeChange.add(function(f,e,g){f.execCallback("handle_node_change_callback",f.id,g,-1,-1,true,f.selection.isCollapsed())})}if(d.save_callback){c.onSaveContent.add(function(e,g){var f=e.execCallback("save_callback",e.id,g.content,e.getBody());if(f){g.content=f}})}if(d.onchange_callback){c.onChange.add(function(f,e){f.execCallback("onchange_callback",f,e)})}};a.Editor.prototype.bindNativeEvents=function(){var l=this,f,d=l.settings,e=l.dom,h;h={mouseup:"onMouseUp",mousedown:"onMouseDown",click:"onClick",keyup:"onKeyUp",keydown:"onKeyDown",keypress:"onKeyPress",submit:"onSubmit",reset:"onReset",contextmenu:"onContextMenu",dblclick:"onDblClick",paste:"onPaste"};function c(i,m){var n=i.type;if(l.removed){return}if(l.onEvent.dispatch(l,i,m)!==false){l[h[i.fakeType||i.type]].dispatch(l,i,m)}}function j(i){l.focus(true)}function k(i,m){if(m.keyCode!=65||!a.VK.metaKeyPressed(m)){l.selection.normalize()}l.nodeChanged()}b(h,function(m,n){var i=d.content_editable?l.getBody():l.getDoc();switch(n){case"contextmenu":e.bind(i,n,c);break;case"paste":e.bind(l.getBody(),n,c);break;case"submit":case"reset":e.bind(l.getElement().form||a.DOM.getParent(l.id,"form"),n,c);break;default:e.bind(i,n,c)}});e.bind(d.content_editable?l.getBody():(a.isGecko?l.getDoc():l.getWin()),"focus",function(i){l.focus(true)});if(d.content_editable&&a.isOpera){e.bind(l.getBody(),"click",j);e.bind(l.getBody(),"keydown",j)}l.onMouseUp.add(k);l.onKeyUp.add(function(i,n){var m=n.keyCode;if((m>=33&&m<=36)||(m>=37&&m<=40)||m==13||m==45||m==46||m==8||(a.isMac&&(m==91||m==93))||n.ctrlKey){k(i,n)}});l.onReset.add(function(){l.setContent(l.startContent,{format:"raw"})});function g(m,i){if(m.altKey||m.ctrlKey||m.metaKey){b(l.shortcuts,function(n){var o=a.isMac?m.metaKey:m.ctrlKey;if(n.ctrl!=o||n.alt!=m.altKey||n.shift!=m.shiftKey){return}if(m.keyCode==n.keyCode||(m.charCode&&m.charCode==n.charCode)){m.preventDefault();if(i){n.func.call(n.scope)}return true}})}}l.onKeyUp.add(function(i,m){g(m)});l.onKeyPress.add(function(i,m){g(m)});l.onKeyDown.add(function(i,m){g(m,true)});if(a.isOpera){l.onClick.add(function(i,m){m.preventDefault()})}}})(tinymce);(function(d){var e=d.each,b,a=true,c=false;d.EditorCommands=function(n){var m=n.dom,p=n.selection,j={state:{},exec:{},value:{}},k=n.settings,q=n.formatter,o;function r(z,y,x){var v;z=z.toLowerCase();if(v=j.exec[z]){v(z,y,x);return a}return c}function l(x){var v;x=x.toLowerCase();if(v=j.state[x]){return v(x)}return -1}function h(x){var v;x=x.toLowerCase();if(v=j.value[x]){return v(x)}return c}function u(v,x){x=x||"exec";e(v,function(z,y){e(y.toLowerCase().split(","),function(A){j[x][A]=z})})}d.extend(this,{execCommand:r,queryCommandState:l,queryCommandValue:h,addCommands:u});function f(y,x,v){if(x===b){x=c}if(v===b){v=null}return n.getDoc().execCommand(y,x,v)}function t(v){return q.match(v)}function s(v,x){q.toggle(v,x?{value:x}:b)}function i(v){o=p.getBookmark(v)}function g(){p.moveToBookmark(o)}u({"mceResetDesignMode,mceBeginUndoLevel":function(){},"mceEndUndoLevel,mceAddUndoLevel":function(){n.undoManager.add()},"Cut,Copy,Paste":function(z){var y=n.getDoc(),v;try{f(z)}catch(x){v=a}if(v||!y.queryCommandSupported(z)){if(d.isGecko){n.windowManager.confirm(n.getLang("clipboard_msg"),function(A){if(A){open("http://www.mozilla.org/editor/midasdemo/securityprefs.html","_blank")}})}else{n.windowManager.alert(n.getLang("clipboard_no_support"))}}},unlink:function(v){if(p.isCollapsed()){p.select(p.getNode())}f(v);p.collapse(c)},"JustifyLeft,JustifyCenter,JustifyRight,JustifyFull":function(v){var x=v.substring(7);e("left,center,right,full".split(","),function(y){if(x!=y){q.remove("align"+y)}});s("align"+x);r("mceRepaint")},"InsertUnorderedList,InsertOrderedList":function(y){var v,x;f(y);v=m.getParent(p.getNode(),"ol,ul");if(v){x=v.parentNode;if(/^(H[1-6]|P|ADDRESS|PRE)$/.test(x.nodeName)){i();m.split(x,v);g()}}},"Bold,Italic,Underline,Strikethrough,Superscript,Subscript":function(v){s(v)},"ForeColor,HiliteColor,FontName":function(y,x,v){s(y,v)},FontSize:function(z,y,x){var v,A;if(x>=1&&x<=7){A=d.explode(k.font_size_style_values);v=d.explode(k.font_size_classes);if(v){x=v[x-1]||x}else{x=A[x-1]||x}}s(z,x)},RemoveFormat:function(v){q.remove(v)},mceBlockQuote:function(v){s("blockquote")},FormatBlock:function(y,x,v){return s(v||"p")},mceCleanup:function(){var v=p.getBookmark();n.setContent(n.getContent({cleanup:a}),{cleanup:a});p.moveToBookmark(v)},mceRemoveNode:function(z,y,x){var v=x||p.getNode();if(v!=n.getBody()){i();n.dom.remove(v,a);g()}},mceSelectNodeDepth:function(z,y,x){var v=0;m.getParent(p.getNode(),function(A){if(A.nodeType==1&&v++==x){p.select(A);return c}},n.getBody())},mceSelectNode:function(y,x,v){p.select(v)},mceInsertContent:function(B,I,K){var y,J,E,z,F,G,D,C,L,x,A,M,v,H;y=n.parser;J=new d.html.Serializer({},n.schema);v='<span id="mce_marker" data-mce-type="bookmark">\uFEFF</span>';G={content:K,format:"html"};p.onBeforeSetContent.dispatch(p,G);K=G.content;if(K.indexOf("{$caret}")==-1){K+="{$caret}"}K=K.replace(/\{\$caret\}/,v);if(!p.isCollapsed()){n.getDoc().execCommand("Delete",false,null)}E=p.getNode();G={context:E.nodeName.toLowerCase()};F=y.parse(K,G);A=F.lastChild;if(A.attr("id")=="mce_marker"){D=A;for(A=A.prev;A;A=A.walk(true)){if(A.type==3||!m.isBlock(A.name)){A.parent.insert(D,A,A.name==="br");break}}}if(!G.invalid){K=J.serialize(F);A=E.firstChild;M=E.lastChild;if(!A||(A===M&&A.nodeName==="BR")){m.setHTML(E,K)}else{p.setContent(K)}}else{p.setContent(v);E=p.getNode();z=n.getBody();if(E.nodeType==9){E=A=z}else{A=E}while(A!==z){E=A;A=A.parentNode}K=E==z?z.innerHTML:m.getOuterHTML(E);K=J.serialize(y.parse(K.replace(/<span (id="mce_marker"|id=mce_marker).+?<\/span>/i,function(){return J.serialize(F)})));if(E==z){m.setHTML(z,K)}else{m.setOuterHTML(E,K)}}D=m.get("mce_marker");C=m.getRect(D);L=m.getViewPort(n.getWin());if((C.y+C.h>L.y+L.h||C.y<L.y)||(C.x>L.x+L.w||C.x<L.x)){H=d.isIE?n.getDoc().documentElement:n.getBody();H.scrollLeft=C.x;H.scrollTop=C.y-L.h+25}x=m.createRng();A=D.previousSibling;if(A&&A.nodeType==3){x.setStart(A,A.nodeValue.length)}else{x.setStartBefore(D);x.setEndBefore(D)}m.remove(D);p.setRng(x);p.onSetContent.dispatch(p,G);n.addVisual()},mceInsertRawHTML:function(y,x,v){p.setContent("tiny_mce_marker");n.setContent(n.getContent().replace(/tiny_mce_marker/g,function(){return v}))},mceToggleFormat:function(y,x,v){s(v)},mceSetContent:function(y,x,v){n.setContent(v)},"Indent,Outdent":function(z){var x,v,y;x=k.indentation;v=/[a-z%]+$/i.exec(x);x=parseInt(x);if(!l("InsertUnorderedList")&&!l("InsertOrderedList")){if(!k.forced_root_block&&!m.getParent(p.getNode(),m.isBlock)){q.apply("div")}e(p.getSelectedBlocks(),function(A){if(z=="outdent"){y=Math.max(0,parseInt(A.style.paddingLeft||0)-x);m.setStyle(A,"paddingLeft",y?y+v:"")}else{m.setStyle(A,"paddingLeft",(parseInt(A.style.paddingLeft||0)+x)+v)}})}else{f(z)}},mceRepaint:function(){var x;if(d.isGecko){try{i(a);if(p.getSel()){p.getSel().selectAllChildren(n.getBody())}p.collapse(a);g()}catch(v){}}},mceToggleFormat:function(y,x,v){q.toggle(v)},InsertHorizontalRule:function(){n.execCommand("mceInsertContent",false,"<hr />")},mceToggleVisualAid:function(){n.hasVisual=!n.hasVisual;n.addVisual()},mceReplaceContent:function(y,x,v){n.execCommand("mceInsertContent",false,v.replace(/\{\$selection\}/g,p.getContent({format:"text"})))},mceInsertLink:function(z,y,x){var v;if(typeof(x)=="string"){x={href:x}}v=m.getParent(p.getNode(),"a");x.href=x.href.replace(" ","%20");if(!v||!x.href){q.remove("link")}if(x.href){q.apply("link",x,v)}},selectAll:function(){var x=m.getRoot(),v=m.createRng();if(p.getRng().setStart){v.setStart(x,0);v.setEnd(x,x.childNodes.length);p.setRng(v)}else{f("SelectAll")}}});u({"JustifyLeft,JustifyCenter,JustifyRight,JustifyFull":function(z){var x="align"+z.substring(7);var v=p.isCollapsed()?[m.getParent(p.getNode(),m.isBlock)]:p.getSelectedBlocks();var y=d.map(v,function(A){return !!q.matchNode(A,x)});return d.inArray(y,a)!==-1},"Bold,Italic,Underline,Strikethrough,Superscript,Subscript":function(v){return t(v)},mceBlockQuote:function(){return t("blockquote")},Outdent:function(){var v;if(k.inline_styles){if((v=m.getParent(p.getStart(),m.isBlock))&&parseInt(v.style.paddingLeft)>0){return a}if((v=m.getParent(p.getEnd(),m.isBlock))&&parseInt(v.style.paddingLeft)>0){return a}}return l("InsertUnorderedList")||l("InsertOrderedList")||(!k.inline_styles&&!!m.getParent(p.getNode(),"BLOCKQUOTE"))},"InsertUnorderedList,InsertOrderedList":function(x){var v=m.getParent(p.getNode(),"ul,ol");return v&&(x==="insertunorderedlist"&&v.tagName==="UL"||x==="insertorderedlist"&&v.tagName==="OL")}},"state");u({"FontSize,FontName":function(y){var x=0,v;if(v=m.getParent(p.getNode(),"span")){if(y=="fontsize"){x=v.style.fontSize}else{x=v.style.fontFamily.replace(/, /g,",").replace(/[\'\"]/g,"").toLowerCase()}}return x}},"value");u({Undo:function(){n.undoManager.undo()},Redo:function(){n.undoManager.redo()}})}})(tinymce);(function(b){var a=b.util.Dispatcher;b.UndoManager=function(h){var l,i=0,e=[],g,k,j,f;function c(){return b.trim(h.getContent({format:"raw",no_events:1}).replace(/<span[^>]+data-mce-bogus[^>]+>[\u200B\uFEFF]+<\/span>/g,""))}function d(){l.typing=false;l.add()}onBeforeAdd=new a(l);k=new a(l);j=new a(l);f=new a(l);k.add(function(m,n){if(m.hasUndo()){return h.onChange.dispatch(h,n,m)}});j.add(function(m,n){return h.onUndo.dispatch(h,n,m)});f.add(function(m,n){return h.onRedo.dispatch(h,n,m)});h.onInit.add(function(){l.add()});h.onBeforeExecCommand.add(function(m,p,o,q,n){if(p!="Undo"&&p!="Redo"&&p!="mceRepaint"&&(!n||!n.skip_undo)){l.beforeChange()}});h.onExecCommand.add(function(m,p,o,q,n){if(p!="Undo"&&p!="Redo"&&p!="mceRepaint"&&(!n||!n.skip_undo)){l.add()}});h.onSaveContent.add(d);h.dom.bind(h.dom.getRoot(),"dragend",d);h.dom.bind(h.getBody(),"focusout",function(m){if(!h.removed&&l.typing){d()}});h.onKeyUp.add(function(m,o){var n=o.keyCode;if((n>=33&&n<=36)||(n>=37&&n<=40)||n==45||n==13||o.ctrlKey){d()}});h.onKeyDown.add(function(m,o){var n=o.keyCode;if((n>=33&&n<=36)||(n>=37&&n<=40)||n==45){if(l.typing){d()}return}if((n<16||n>20)&&n!=224&&n!=91&&!l.typing){l.beforeChange();l.typing=true;l.add()}});h.onMouseDown.add(function(m,n){if(l.typing){d()}});h.addShortcut("ctrl+z","undo_desc","Undo");h.addShortcut("ctrl+y","redo_desc","Redo");l={data:e,typing:false,onBeforeAdd:onBeforeAdd,onAdd:k,onUndo:j,onRedo:f,beforeChange:function(){g=h.selection.getBookmark(2,true)},add:function(p){var m,n=h.settings,o;p=p||{};p.content=c();l.onBeforeAdd.dispatch(l,p);o=e[i];if(o&&o.content==p.content){return null}if(e[i]){e[i].beforeBookmark=g}if(n.custom_undo_redo_levels){if(e.length>n.custom_undo_redo_levels){for(m=0;m<e.length-1;m++){e[m]=e[m+1]}e.length--;i=e.length}}p.bookmark=h.selection.getBookmark(2,true);if(i<e.length-1){e.length=i+1}e.push(p);i=e.length-1;l.onAdd.dispatch(l,p);h.isNotDirty=0;return p},undo:function(){var n,m;if(l.typing){l.add();l.typing=false}if(i>0){n=e[--i];h.setContent(n.content,{format:"raw"});h.selection.moveToBookmark(n.beforeBookmark);l.onUndo.dispatch(l,n)}return n},redo:function(){var m;if(i<e.length-1){m=e[++i];h.setContent(m.content,{format:"raw"});h.selection.moveToBookmark(m.bookmark);l.onRedo.dispatch(l,m)}return m},clear:function(){e=[];i=0;l.typing=false},hasUndo:function(){return i>0||this.typing},hasRedo:function(){return i<e.length-1&&!this.typing}};return l}})(tinymce);tinymce.ForceBlocks=function(c){var b=c.settings,e=c.dom,a=c.selection,d=c.schema.getBlockElements();function f(){var j=a.getStart(),h=c.getBody(),g,k,o,s,q,i,l,m=-16777215,p,r;if(!j||j.nodeType!==1||!b.forced_root_block){return}while(j&&j!=h){if(d[j.nodeName]){return}j=j.parentNode}g=a.getRng();if(g.setStart){k=g.startContainer;o=g.startOffset;s=g.endContainer;q=g.endOffset}else{if(g.item){j=g.item(0);g=c.getDoc().body.createTextRange();g.moveToElementText(j)}r=g.parentElement().ownerDocument===c.getDoc();tmpRng=g.duplicate();tmpRng.collapse(true);o=tmpRng.move("character",m)*-1;if(!tmpRng.collapsed){tmpRng=g.duplicate();tmpRng.collapse(false);q=(tmpRng.move("character",m)*-1)-o}}j=h.firstChild;while(j){if(j.nodeType===3||(j.nodeType==1&&!d[j.nodeName])){if(j.nodeType===3&&j.nodeValue.length==0){l=j;j=j.nextSibling;e.remove(l);continue}if(!i){i=e.create(b.forced_root_block);j.parentNode.insertBefore(i,j);p=true}l=j;j=j.nextSibling;i.appendChild(l)}else{i=null;j=j.nextSibling}}if(p){if(g.setStart){g.setStart(k,o);g.setEnd(s,q);a.setRng(g)}else{if(r){try{g=c.getDoc().body.createTextRange();g.moveToElementText(h);g.collapse(true);g.moveStart("character",o);if(q>0){g.moveEnd("character",q)}g.select()}catch(n){}}}c.nodeChanged()}}if(b.forced_root_block){c.onKeyUp.add(f);c.onNodeChange.add(f)}};(function(c){var b=c.DOM,a=c.dom.Event,d=c.each,e=c.extend;c.create("tinymce.ControlManager",{ControlManager:function(f,j){var h=this,g;j=j||{};h.editor=f;h.controls={};h.onAdd=new c.util.Dispatcher(h);h.onPostRender=new c.util.Dispatcher(h);h.prefix=j.prefix||f.id+"_";h._cls={};h.onPostRender.add(function(){d(h.controls,function(i){i.postRender()})})},get:function(f){return this.controls[this.prefix+f]||this.controls[f]},setActive:function(h,f){var g=null;if(g=this.get(h)){g.setActive(f)}return g},setDisabled:function(h,f){var g=null;if(g=this.get(h)){g.setDisabled(f)}return g},add:function(g){var f=this;if(g){f.controls[g.id]=g;f.onAdd.dispatch(g,f)}return g},createControl:function(j){var o,k,g,h=this,m=h.editor,n,f;if(!h.controlFactories){h.controlFactories=[];d(m.plugins,function(i){if(i.createControl){h.controlFactories.push(i)}})}n=h.controlFactories;for(k=0,g=n.length;k<g;k++){o=n[k].createControl(j,h);if(o){return h.add(o)}}if(j==="|"||j==="separator"){return h.createSeparator()}if(m.buttons&&(o=m.buttons[j])){return h.createButton(j,o)}return h.add(o)},createDropMenu:function(f,n,h){var m=this,i=m.editor,j,g,k,l;n=e({"class":"mceDropDown",constrain:i.settings.constrain_menus},n);n["class"]=n["class"]+" "+i.getParam("skin")+"Skin";if(k=i.getParam("skin_variant")){n["class"]+=" "+i.getParam("skin")+"Skin"+k.substring(0,1).toUpperCase()+k.substring(1)}n["class"]+=i.settings.directionality=="rtl"?" mceRtl":"";f=m.prefix+f;l=h||m._cls.dropmenu||c.ui.DropMenu;j=m.controls[f]=new l(f,n);j.onAddItem.add(function(r,q){var p=q.settings;p.title=i.getLang(p.title,p.title);if(!p.onclick){p.onclick=function(o){if(p.cmd){i.execCommand(p.cmd,p.ui||false,p.value)}}}});i.onRemove.add(function(){j.destroy()});if(c.isIE){j.onShowMenu.add(function(){i.focus();g=i.selection.getBookmark(1)});j.onHideMenu.add(function(){if(g){i.selection.moveToBookmark(g);g=0}})}return m.add(j)},createListBox:function(f,n,h){var l=this,j=l.editor,i,k,m;if(l.get(f)){return null}n.title=j.translate(n.title);n.scope=n.scope||j;if(!n.onselect){n.onselect=function(o){j.execCommand(n.cmd,n.ui||false,o||n.value)}}n=e({title:n.title,"class":"mce_"+f,scope:n.scope,control_manager:l},n);f=l.prefix+f;function g(o){return o.settings.use_accessible_selects&&!c.isGecko}if(j.settings.use_native_selects||g(j)){k=new c.ui.NativeListBox(f,n)}else{m=h||l._cls.listbox||c.ui.ListBox;k=new m(f,n,j)}l.controls[f]=k;if(c.isWebKit){k.onPostRender.add(function(p,o){a.add(o,"mousedown",function(){j.bookmark=j.selection.getBookmark(1)});a.add(o,"focus",function(){j.selection.moveToBookmark(j.bookmark);j.bookmark=null})})}if(k.hideMenu){j.onMouseDown.add(k.hideMenu,k)}return l.add(k)},createButton:function(m,i,l){var h=this,g=h.editor,j,k,f;if(h.get(m)){return null}i.title=g.translate(i.title);i.label=g.translate(i.label);i.scope=i.scope||g;if(!i.onclick&&!i.menu_button){i.onclick=function(){g.execCommand(i.cmd,i.ui||false,i.value)}}i=e({title:i.title,"class":"mce_"+m,unavailable_prefix:g.getLang("unavailable",""),scope:i.scope,control_manager:h},i);m=h.prefix+m;if(i.menu_button){f=l||h._cls.menubutton||c.ui.MenuButton;k=new f(m,i,g);g.onMouseDown.add(k.hideMenu,k)}else{f=h._cls.button||c.ui.Button;k=new f(m,i,g)}return h.add(k)},createMenuButton:function(h,f,g){f=f||{};f.menu_button=1;return this.createButton(h,f,g)},createSplitButton:function(m,i,l){var h=this,g=h.editor,j,k,f;if(h.get(m)){return null}i.title=g.translate(i.title);i.scope=i.scope||g;if(!i.onclick){i.onclick=function(n){g.execCommand(i.cmd,i.ui||false,n||i.value)}}if(!i.onselect){i.onselect=function(n){g.execCommand(i.cmd,i.ui||false,n||i.value)}}i=e({title:i.title,"class":"mce_"+m,scope:i.scope,control_manager:h},i);m=h.prefix+m;f=l||h._cls.splitbutton||c.ui.SplitButton;k=h.add(new f(m,i,g));g.onMouseDown.add(k.hideMenu,k);return k},createColorSplitButton:function(f,n,h){var l=this,j=l.editor,i,k,m,g;if(l.get(f)){return null}n.title=j.translate(n.title);n.scope=n.scope||j;if(!n.onclick){n.onclick=function(o){if(c.isIE){g=j.selection.getBookmark(1)}j.execCommand(n.cmd,n.ui||false,o||n.value)}}if(!n.onselect){n.onselect=function(o){j.execCommand(n.cmd,n.ui||false,o||n.value)}}n=e({title:n.title,"class":"mce_"+f,menu_class:j.getParam("skin")+"Skin",scope:n.scope,more_colors_title:j.getLang("more_colors")},n);f=l.prefix+f;m=h||l._cls.colorsplitbutton||c.ui.ColorSplitButton;k=new m(f,n,j);j.onMouseDown.add(k.hideMenu,k);j.onRemove.add(function(){k.destroy()});if(c.isIE){k.onShowMenu.add(function(){j.focus();g=j.selection.getBookmark(1)});k.onHideMenu.add(function(){if(g){j.selection.moveToBookmark(g);g=0}})}return l.add(k)},createToolbar:function(k,h,j){var i,g=this,f;k=g.prefix+k;f=j||g._cls.toolbar||c.ui.Toolbar;i=new f(k,h,g.editor);if(g.get(k)){return null}return g.add(i)},createToolbarGroup:function(k,h,j){var i,g=this,f;k=g.prefix+k;f=j||this._cls.toolbarGroup||c.ui.ToolbarGroup;i=new f(k,h,g.editor);if(g.get(k)){return null}return g.add(i)},createSeparator:function(g){var f=g||this._cls.separator||c.ui.Separator;return new f()},setControlType:function(g,f){return this._cls[g.toLowerCase()]=f},destroy:function(){d(this.controls,function(f){f.destroy()});this.controls=null}})})(tinymce);(function(d){var a=d.util.Dispatcher,e=d.each,c=d.isIE,b=d.isOpera;d.create("tinymce.WindowManager",{WindowManager:function(f){var g=this;g.editor=f;g.onOpen=new a(g);g.onClose=new a(g);g.params={};g.features={}},open:function(z,h){var v=this,k="",n,m,i=v.editor.settings.dialog_type=="modal",q,o,j,g=d.DOM.getViewPort(),r;z=z||{};h=h||{};o=b?g.w:screen.width;j=b?g.h:screen.height;z.name=z.name||"mc_"+new Date().getTime();z.width=parseInt(z.width||320);z.height=parseInt(z.height||240);z.resizable=true;z.left=z.left||parseInt(o/2)-(z.width/2);z.top=z.top||parseInt(j/2)-(z.height/2);h.inline=false;h.mce_width=z.width;h.mce_height=z.height;h.mce_auto_focus=z.auto_focus;if(i){if(c){z.center=true;z.help=false;z.dialogWidth=z.width+"px";z.dialogHeight=z.height+"px";z.scroll=z.scrollbars||false}}e(z,function(p,f){if(d.is(p,"boolean")){p=p?"yes":"no"}if(!/^(name|url)$/.test(f)){if(c&&i){k+=(k?";":"")+f+":"+p}else{k+=(k?",":"")+f+"="+p}}});v.features=z;v.params=h;v.onOpen.dispatch(v,z,h);r=z.url||z.file;r=d._addVer(r);try{if(c&&i){q=1;window.showModalDialog(r,window,k)}else{q=window.open(r,z.name,k)}}catch(l){}if(!q){alert(v.editor.getLang("popup_blocked"))}},close:function(f){f.close();this.onClose.dispatch(this)},createInstance:function(i,h,g,m,l,k){var j=d.resolve(i);return new j(h,g,m,l,k)},confirm:function(h,f,i,g){g=g||window;f.call(i||this,g.confirm(this._decode(this.editor.getLang(h,h))))},alert:function(h,f,j,g){var i=this;g=g||window;g.alert(i._decode(i.editor.getLang(h,h)));if(f){f.call(j||i)}},resizeBy:function(f,g,h){h.resizeBy(f,g)},_decode:function(f){return d.DOM.decode(f).replace(/\\n/g,"\n")}})}(tinymce));(function(a){a.Formatter=function(aa){var Q={},T=a.each,c=aa.dom,r=aa.selection,t=a.dom.TreeWalker,N=new a.dom.RangeUtils(c),d=aa.schema.isValidChild,A=a.isArray,H=c.isBlock,m=aa.settings.forced_root_block,s=c.nodeIndex,G="\uFEFF",e=/^(src|href|style)$/,X=false,C=true,P,D,x=c.getContentEditable;function I(ab){return !!aa.schema.getTextBlocks()[ab.toLowerCase()]}function n(ac,ab){return c.getParents(ac,ab,c.getRoot())}function b(ab){return ab.nodeType===1&&ab.id==="_mce_caret"}function j(){l({alignleft:[{selector:"figure,p,h1,h2,h3,h4,h5,h6,td,th,div,ul,ol,li",styles:{textAlign:"left"},defaultBlock:"div"},{selector:"img,table",collapsed:false,styles:{"float":"left"}}],aligncenter:[{selector:"figure,p,h1,h2,h3,h4,h5,h6,td,th,div,ul,ol,li",styles:{textAlign:"center"},defaultBlock:"div"},{selector:"img",collapsed:false,styles:{display:"block",marginLeft:"auto",marginRight:"auto"}},{selector:"table",collapsed:false,styles:{marginLeft:"auto",marginRight:"auto"}}],alignright:[{selector:"figure,p,h1,h2,h3,h4,h5,h6,td,th,div,ul,ol,li",styles:{textAlign:"right"},defaultBlock:"div"},{selector:"img,table",collapsed:false,styles:{"float":"right"}}],alignfull:[{selector:"figure,p,h1,h2,h3,h4,h5,h6,td,th,div,ul,ol,li",styles:{textAlign:"justify"},defaultBlock:"div"}],bold:[{inline:"strong",remove:"all"},{inline:"span",styles:{fontWeight:"bold"}},{inline:"b",remove:"all"}],italic:[{inline:"em",remove:"all"},{inline:"span",styles:{fontStyle:"italic"}},{inline:"i",remove:"all"}],underline:[{inline:"span",styles:{textDecoration:"underline"},exact:true},{inline:"u",remove:"all"}],strikethrough:[{inline:"span",styles:{textDecoration:"line-through"},exact:true},{inline:"strike",remove:"all"}],forecolor:{inline:"span",styles:{color:"%value"},wrap_links:false},hilitecolor:{inline:"span",styles:{backgroundColor:"%value"},wrap_links:false},fontname:{inline:"span",styles:{fontFamily:"%value"}},fontsize:{inline:"span",styles:{fontSize:"%value"}},fontsize_class:{inline:"span",attributes:{"class":"%value"}},blockquote:{block:"blockquote",wrapper:1,remove:"all"},subscript:{inline:"sub"},superscript:{inline:"sup"},link:{inline:"a",selector:"a",remove:"all",split:true,deep:true,onmatch:function(ab){return true},onformat:function(ad,ab,ac){T(ac,function(af,ae){c.setAttrib(ad,ae,af)})}},removeformat:[{selector:"b,strong,em,i,font,u,strike",remove:"all",split:true,expand:false,block_expand:true,deep:true},{selector:"span",attributes:["style","class"],remove:"empty",split:true,expand:false,deep:true},{selector:"*",attributes:["style","class"],split:false,expand:false,deep:true}]});T("p h1 h2 h3 h4 h5 h6 div address pre div code dt dd samp".split(/\s/),function(ab){l(ab,{block:ab,remove:"all"})});l(aa.settings.formats)}function W(){aa.addShortcut("ctrl+b","bold_desc","Bold");aa.addShortcut("ctrl+i","italic_desc","Italic");aa.addShortcut("ctrl+u","underline_desc","Underline");for(var ab=1;ab<=6;ab++){aa.addShortcut("ctrl+"+ab,"",["FormatBlock",false,"h"+ab])}aa.addShortcut("ctrl+7","",["FormatBlock",false,"p"]);aa.addShortcut("ctrl+8","",["FormatBlock",false,"div"]);aa.addShortcut("ctrl+9","",["FormatBlock",false,"address"])}function V(ab){return ab?Q[ab]:Q}function l(ab,ac){if(ab){if(typeof(ab)!=="string"){T(ab,function(ae,ad){l(ad,ae)})}else{ac=ac.length?ac:[ac];T(ac,function(ad){if(ad.deep===D){ad.deep=!ad.selector}if(ad.split===D){ad.split=!ad.selector||ad.inline}if(ad.remove===D&&ad.selector&&!ad.inline){ad.remove="none"}if(ad.selector&&ad.inline){ad.mixed=true;ad.block_expand=true}if(typeof(ad.classes)==="string"){ad.classes=ad.classes.split(/\s+/)}});Q[ab]=ac}}}var i=function(ac){var ab;aa.dom.getParent(ac,function(ad){ab=aa.dom.getStyle(ad,"text-decoration");return ab&&ab!=="none"});return ab};var L=function(ab){var ac;if(ab.nodeType===1&&ab.parentNode&&ab.parentNode.nodeType===1){ac=i(ab.parentNode);if(aa.dom.getStyle(ab,"color")&&ac){aa.dom.setStyle(ab,"text-decoration",ac)}else{if(aa.dom.getStyle(ab,"textdecoration")===ac){aa.dom.setStyle(ab,"text-decoration",null)}}}};function Y(ae,al,ag){var ah=V(ae),am=ah[0],ak,ac,aj,ai=r.isCollapsed();function ab(aq,ap){ap=ap||am;if(aq){if(ap.onformat){ap.onformat(aq,ap,al,ag)}T(ap.styles,function(at,ar){c.setStyle(aq,ar,q(at,al))});T(ap.attributes,function(at,ar){c.setAttrib(aq,ar,q(at,al))});T(ap.classes,function(ar){ar=q(ar,al);if(!c.hasClass(aq,ar)){c.addClass(aq,ar)}})}}function af(){function ar(ay,aw){var ax=new t(aw);for(ag=ax.current();ag;ag=ax.prev()){if(ag.childNodes.length>1||ag==ay||ag.tagName=="BR"){return ag}}}var aq=aa.selection.getRng();var av=aq.startContainer;var ap=aq.endContainer;if(av!=ap&&aq.endOffset===0){var au=ar(av,ap);var at=au.nodeType==3?au.length:au.childNodes.length;aq.setEnd(au,at)}return aq}function ad(at,ay,aw,av,aq){var ap=[],ar=-1,ax,aA=-1,au=-1,az;T(at.childNodes,function(aC,aB){if(aC.nodeName==="UL"||aC.nodeName==="OL"){ar=aB;ax=aC;return false}});T(at.childNodes,function(aC,aB){if(aC.nodeName==="SPAN"&&c.getAttrib(aC,"data-mce-type")=="bookmark"){if(aC.id==ay.id+"_start"){aA=aB}else{if(aC.id==ay.id+"_end"){au=aB}}}});if(ar<=0||(aA<ar&&au>ar)){T(a.grep(at.childNodes),aq);return 0}else{az=c.clone(aw,X);T(a.grep(at.childNodes),function(aC,aB){if((aA<ar&&aB<ar)||(aA>ar&&aB>ar)){ap.push(aC);aC.parentNode.removeChild(aC)}});if(aA<ar){at.insertBefore(az,ax)}else{if(aA>ar){at.insertBefore(az,ax.nextSibling)}}av.push(az);T(ap,function(aB){az.appendChild(aB)});return az}}function an(aq,at,aw){var ap=[],av,ar,au=true;av=am.inline||am.block;ar=c.create(av);ab(ar);N.walk(aq,function(ax){var ay;function az(aA){var aF,aD,aB,aC,aE;aE=au;aF=aA.nodeName.toLowerCase();aD=aA.parentNode.nodeName.toLowerCase();if(aA.nodeType===1&&x(aA)){aE=au;au=x(aA)==="true";aC=true}if(g(aF,"br")){ay=0;if(am.block){c.remove(aA)}return}if(am.wrapper&&y(aA,ae,al)){ay=0;return}if(au&&!aC&&am.block&&!am.wrapper&&I(aF)){aA=c.rename(aA,av);ab(aA);ap.push(aA);ay=0;return}if(am.selector){T(ah,function(aG){if("collapsed" in aG&&aG.collapsed!==ai){return}if(c.is(aA,aG.selector)&&!b(aA)){ab(aA,aG);aB=true}});if(!am.inline||aB){ay=0;return}}if(au&&!aC&&d(av,aF)&&d(aD,av)&&!(!aw&&aA.nodeType===3&&aA.nodeValue.length===1&&aA.nodeValue.charCodeAt(0)===65279)&&!b(aA)){if(!ay){ay=c.clone(ar,X);aA.parentNode.insertBefore(ay,aA);ap.push(ay)}ay.appendChild(aA)}else{if(aF=="li"&&at){ay=ad(aA,at,ar,ap,az)}else{ay=0;T(a.grep(aA.childNodes),az);if(aC){au=aE}ay=0}}}T(ax,az)});if(am.wrap_links===false){T(ap,function(ax){function ay(aC){var aB,aA,az;if(aC.nodeName==="A"){aA=c.clone(ar,X);ap.push(aA);az=a.grep(aC.childNodes);for(aB=0;aB<az.length;aB++){aA.appendChild(az[aB])}aC.appendChild(aA)}T(a.grep(aC.childNodes),ay)}ay(ax)})}T(ap,function(az){var ax;function aA(aC){var aB=0;T(aC.childNodes,function(aD){if(!f(aD)&&!K(aD)){aB++}});return aB}function ay(aB){var aD,aC;T(aB.childNodes,function(aE){if(aE.nodeType==1&&!K(aE)&&!b(aE)){aD=aE;return X}});if(aD&&h(aD,am)){aC=c.clone(aD,X);ab(aC);c.replace(aC,aB,C);c.remove(aD,1)}return aC||aB}ax=aA(az);if((ap.length>1||!H(az))&&ax===0){c.remove(az,1);return}if(am.inline||am.wrapper){if(!am.exact&&ax===1){az=ay(az)}T(ah,function(aB){T(c.select(aB.inline,az),function(aD){var aC;if(aB.wrap_links===false){aC=aD.parentNode;do{if(aC.nodeName==="A"){return}}while(aC=aC.parentNode)}Z(aB,al,aD,aB.exact?aD:null)})});if(y(az.parentNode,ae,al)){c.remove(az,1);az=0;return C}if(am.merge_with_parents){c.getParent(az.parentNode,function(aB){if(y(aB,ae,al)){c.remove(az,1);az=0;return C}})}if(az&&am.merge_siblings!==false){az=u(E(az),az);az=u(az,E(az,C))}}})}if(am){if(ag){if(ag.nodeType){ac=c.createRng();ac.setStartBefore(ag);ac.setEndAfter(ag);an(p(ac,ah),null,true)}else{an(ag,null,true)}}else{if(!ai||!am.inline||c.select("td.mceSelected,th.mceSelected").length){var ao=aa.selection.getNode();if(!m&&ah[0].defaultBlock&&!c.getParent(ao,c.isBlock)){Y(ah[0].defaultBlock)}aa.selection.setRng(af());ak=r.getBookmark();an(p(r.getRng(C),ah),ak);if(am.styles&&(am.styles.color||am.styles.textDecoration)){a.walk(ao,L,"childNodes");L(ao)}r.moveToBookmark(ak);R(r.getRng(C));aa.nodeChanged()}else{U("apply",ae,al)}}}}function B(ad,am,af){var ag=V(ad),ao=ag[0],ak,aj,ac,al=true;function ae(av){var au,at,ar,aq,ax,aw;if(av.nodeType===3){return}if(av.nodeType===1&&x(av)){ax=al;al=x(av)==="true";aw=true}au=a.grep(av.childNodes);if(al&&!aw){for(at=0,ar=ag.length;at<ar;at++){if(Z(ag[at],am,av,av)){break}}}if(ao.deep){if(au.length){for(at=0,ar=au.length;at<ar;at++){ae(au[at])}if(aw){al=ax}}}}function ah(aq){var ar;T(n(aq.parentNode).reverse(),function(at){var au;if(!ar&&at.id!="_start"&&at.id!="_end"){au=y(at,ad,am);if(au&&au.split!==false){ar=at}}});return ar}function ab(au,aq,aw,az){var aA,ay,ax,at,av,ar;if(au){ar=au.parentNode;for(aA=aq.parentNode;aA&&aA!=ar;aA=aA.parentNode){ay=c.clone(aA,X);for(av=0;av<ag.length;av++){if(Z(ag[av],am,ay,ay)){ay=0;break}}if(ay){if(ax){ay.appendChild(ax)}if(!at){at=ay}ax=ay}}if(az&&(!ao.mixed||!H(au))){aq=c.split(au,aq)}if(ax){aw.parentNode.insertBefore(ax,aw);at.appendChild(aw)}}return aq}function an(aq){return ab(ah(aq),aq,aq,true)}function ai(at){var ar=c.get(at?"_start":"_end"),aq=ar[at?"firstChild":"lastChild"];if(K(aq)){aq=aq[at?"firstChild":"lastChild"]}c.remove(ar,true);return aq}function ap(aq){var at,au,ar;aq=p(aq,ag,C);if(ao.split){at=M(aq,C);au=M(aq);if(at!=au){if(/^(TR|TD)$/.test(at.nodeName)&&at.firstChild){at=(at.nodeName=="TD"?at.firstChild:at.firstChild.firstChild)||at}at=S(at,"span",{id:"_start","data-mce-type":"bookmark"});au=S(au,"span",{id:"_end","data-mce-type":"bookmark"});an(at);an(au);at=ai(C);au=ai()}else{at=au=an(at)}aq.startContainer=at.parentNode;aq.startOffset=s(at);aq.endContainer=au.parentNode;aq.endOffset=s(au)+1}N.walk(aq,function(av){T(av,function(aw){ae(aw);if(aw.nodeType===1&&aa.dom.getStyle(aw,"text-decoration")==="underline"&&aw.parentNode&&i(aw.parentNode)==="underline"){Z({deep:false,exact:true,inline:"span",styles:{textDecoration:"underline"}},null,aw)}})})}if(af){if(af.nodeType){ac=c.createRng();ac.setStartBefore(af);ac.setEndAfter(af);ap(ac)}else{ap(af)}return}if(!r.isCollapsed()||!ao.inline||c.select("td.mceSelected,th.mceSelected").length){ak=r.getBookmark();ap(r.getRng(C));r.moveToBookmark(ak);if(ao.inline&&k(ad,am,r.getStart())){R(r.getRng(true))}aa.nodeChanged()}else{U("remove",ad,am)}}function F(ac,ae,ad){var ab=V(ac);if(k(ac,ae,ad)&&(!("toggle" in ab[0])||ab[0].toggle)){B(ac,ae,ad)}else{Y(ac,ae,ad)}}function y(ac,ab,ah,af){var ad=V(ab),ai,ag,ae;function aj(an,ap,aq){var am,ao,ak=ap[aq],al;if(ap.onmatch){return ap.onmatch(an,ap,aq)}if(ak){if(ak.length===D){for(am in ak){if(ak.hasOwnProperty(am)){if(aq==="attributes"){ao=c.getAttrib(an,am)}else{ao=O(an,am)}if(af&&!ao&&!ap.exact){return}if((!af||ap.exact)&&!g(ao,q(ak[am],ah))){return}}}}else{for(al=0;al<ak.length;al++){if(aq==="attributes"?c.getAttrib(an,ak[al]):O(an,ak[al])){return ap}}}}return ap}if(ad&&ac){for(ag=0;ag<ad.length;ag++){ai=ad[ag];if(h(ac,ai)&&aj(ac,ai,"attributes")&&aj(ac,ai,"styles")){if(ae=ai.classes){for(ag=0;ag<ae.length;ag++){if(!c.hasClass(ac,ae[ag])){return}}}return ai}}}}function k(ad,af,ae){var ac;function ab(ag){ag=c.getParent(ag,function(ah){return !!y(ah,ad,af,true)});return y(ag,ad,af)}if(ae){return ab(ae)}ae=r.getNode();if(ab(ae)){return C}ac=r.getStart();if(ac!=ae){if(ab(ac)){return C}}return X}function v(ai,ah){var af,ag=[],ae={},ad,ac,ab;af=r.getStart();c.getParent(af,function(al){var ak,aj;for(ak=0;ak<ai.length;ak++){aj=ai[ak];if(!ae[aj]&&y(al,aj,ah)){ae[aj]=true;ag.push(aj)}}},c.getRoot());return ag}function z(af){var ah=V(af),ae,ad,ag,ac,ab;if(ah){ae=r.getStart();ad=n(ae);for(ac=ah.length-1;ac>=0;ac--){ab=ah[ac].selector;if(!ab){return C}for(ag=ad.length-1;ag>=0;ag--){if(c.is(ad[ag],ab)){return C}}}}return X}function J(ab,ae,ac){var ad;if(!P){P={};ad={};aa.onNodeChange.addToTop(function(ag,af,ai){var ah=n(ai),aj={};T(P,function(ak,al){T(ah,function(am){if(y(am,al,{},ak.similar)){if(!ad[al]){T(ak,function(an){an(true,{node:am,format:al,parents:ah})});ad[al]=ak}aj[al]=ak;return false}})});T(ad,function(ak,al){if(!aj[al]){delete ad[al];T(ak,function(am){am(false,{node:ai,format:al,parents:ah})})}})})}T(ab.split(","),function(af){if(!P[af]){P[af]=[];P[af].similar=ac}P[af].push(ae)});return this}a.extend(this,{get:V,register:l,apply:Y,remove:B,toggle:F,match:k,matchAll:v,matchNode:y,canApply:z,formatChanged:J});j();W();function h(ab,ac){if(g(ab,ac.inline)){return C}if(g(ab,ac.block)){return C}if(ac.selector){return c.is(ab,ac.selector)}}function g(ac,ab){ac=ac||"";ab=ab||"";ac=""+(ac.nodeName||ac);ab=""+(ab.nodeName||ab);return ac.toLowerCase()==ab.toLowerCase()}function O(ac,ab){var ad=c.getStyle(ac,ab);if(ab=="color"||ab=="backgroundColor"){ad=c.toHex(ad)}if(ab=="fontWeight"&&ad==700){ad="bold"}return""+ad}function q(ab,ac){if(typeof(ab)!="string"){ab=ab(ac)}else{if(ac){ab=ab.replace(/%(\w+)/g,function(ae,ad){return ac[ad]||ae})}}return ab}function f(ab){return ab&&ab.nodeType===3&&/^([\t \r\n]+|)$/.test(ab.nodeValue)}function S(ad,ac,ab){var ae=c.create(ac,ab);ad.parentNode.insertBefore(ae,ad);ae.appendChild(ad);return ae}function p(ab,am,ae){var ap,an,ah,al,ad=ab.startContainer,ai=ab.startOffset,ar=ab.endContainer,ak=ab.endOffset;function ao(aA){var au,ax,az,aw,av,at;au=ax=aA?ad:ar;av=aA?"previousSibling":"nextSibling";at=c.getRoot();function ay(aB){return aB.nodeName=="BR"&&aB.getAttribute("data-mce-bogus")&&!aB.nextSibling}if(au.nodeType==3&&!f(au)){if(aA?ai>0:ak<au.nodeValue.length){return au}}for(;;){if(!am[0].block_expand&&H(ax)){return ax}for(aw=ax[av];aw;aw=aw[av]){if(!K(aw)&&!f(aw)&&!ay(aw)){return ax}}if(ax.parentNode==at){au=ax;break}ax=ax.parentNode}return au}function ag(at,au){if(au===D){au=at.nodeType===3?at.length:at.childNodes.length}while(at&&at.hasChildNodes()){at=at.childNodes[au];if(at){au=at.nodeType===3?at.length:at.childNodes.length}}return{node:at,offset:au}}if(ad.nodeType==1&&ad.hasChildNodes()){an=ad.childNodes.length-1;ad=ad.childNodes[ai>an?an:ai];if(ad.nodeType==3){ai=0}}if(ar.nodeType==1&&ar.hasChildNodes()){an=ar.childNodes.length-1;ar=ar.childNodes[ak>an?an:ak-1];if(ar.nodeType==3){ak=ar.nodeValue.length}}function aq(au){var at=au;while(at){if(at.nodeType===1&&x(at)){return x(at)==="false"?at:au}at=at.parentNode}return au}function aj(au,ay,aA){var ax,av,az,at;function aw(aC,aE){var aF,aB,aD=aC.nodeValue;if(typeof(aE)=="undefined"){aE=aA?aD.length:0}if(aA){aF=aD.lastIndexOf(" ",aE);aB=aD.lastIndexOf("\u00a0",aE);aF=aF>aB?aF:aB;if(aF!==-1&&!ae){aF++}}else{aF=aD.indexOf(" ",aE);aB=aD.indexOf("\u00a0",aE);aF=aF!==-1&&(aB===-1||aF<aB)?aF:aB}return aF}if(au.nodeType===3){az=aw(au,ay);if(az!==-1){return{container:au,offset:az}}at=au}ax=new t(au,c.getParent(au,H)||aa.getBody());while(av=ax[aA?"prev":"next"]()){if(av.nodeType===3){at=av;az=aw(av);if(az!==-1){return{container:av,offset:az}}}else{if(H(av)){break}}}if(at){if(aA){ay=0}else{ay=at.length}return{container:at,offset:ay}}}function af(au,at){var av,aw,ay,ax;if(au.nodeType==3&&au.nodeValue.length===0&&au[at]){au=au[at]}av=n(au);for(aw=0;aw<av.length;aw++){for(ay=0;ay<am.length;ay++){ax=am[ay];if("collapsed" in ax&&ax.collapsed!==ab.collapsed){continue}if(c.is(av[aw],ax.selector)){return av[aw]}}}return au}function ac(au,at,aw){var av;if(!am[0].wrapper){av=c.getParent(au,am[0].block)}if(!av){av=c.getParent(au.nodeType==3?au.parentNode:au,I)}if(av&&am[0].wrapper){av=n(av,"ul,ol").reverse()[0]||av}if(!av){av=au;while(av[at]&&!H(av[at])){av=av[at];if(g(av,"br")){break}}}return av||au}ad=aq(ad);ar=aq(ar);if(K(ad.parentNode)||K(ad)){ad=K(ad)?ad:ad.parentNode;ad=ad.nextSibling||ad;if(ad.nodeType==3){ai=0}}if(K(ar.parentNode)||K(ar)){ar=K(ar)?ar:ar.parentNode;ar=ar.previousSibling||ar;if(ar.nodeType==3){ak=ar.length}}if(am[0].inline){if(ab.collapsed){al=aj(ad,ai,true);if(al){ad=al.container;ai=al.offset}al=aj(ar,ak);if(al){ar=al.container;ak=al.offset}}ah=ag(ar,ak);if(ah.node){while(ah.node&&ah.offset===0&&ah.node.previousSibling){ah=ag(ah.node.previousSibling)}if(ah.node&&ah.offset>0&&ah.node.nodeType===3&&ah.node.nodeValue.charAt(ah.offset-1)===" "){if(ah.offset>1){ar=ah.node;ar.splitText(ah.offset-1)}}}}if(am[0].inline||am[0].block_expand){if(!am[0].inline||(ad.nodeType!=3||ai===0)){ad=ao(true)}if(!am[0].inline||(ar.nodeType!=3||ak===ar.nodeValue.length)){ar=ao()}}if(am[0].selector&&am[0].expand!==X&&!am[0].inline){ad=af(ad,"previousSibling");ar=af(ar,"nextSibling")}if(am[0].block||am[0].selector){ad=ac(ad,"previousSibling");ar=ac(ar,"nextSibling");if(am[0].block){if(!H(ad)){ad=ao(true)}if(!H(ar)){ar=ao()}}}if(ad.nodeType==1){ai=s(ad);ad=ad.parentNode}if(ar.nodeType==1){ak=s(ar)+1;ar=ar.parentNode}return{startContainer:ad,startOffset:ai,endContainer:ar,endOffset:ak}}function Z(ah,ag,ae,ab){var ad,ac,af;if(!h(ae,ah)){return X}if(ah.remove!="all"){T(ah.styles,function(aj,ai){aj=q(aj,ag);if(typeof(ai)==="number"){ai=aj;ab=0}if(!ab||g(O(ab,ai),aj)){c.setStyle(ae,ai,"")}af=1});if(af&&c.getAttrib(ae,"style")==""){ae.removeAttribute("style");ae.removeAttribute("data-mce-style")}T(ah.attributes,function(ak,ai){var aj;ak=q(ak,ag);if(typeof(ai)==="number"){ai=ak;ab=0}if(!ab||g(c.getAttrib(ab,ai),ak)){if(ai=="class"){ak=c.getAttrib(ae,ai);if(ak){aj="";T(ak.split(/\s+/),function(al){if(/mce\w+/.test(al)){aj+=(aj?" ":"")+al}});if(aj){c.setAttrib(ae,ai,aj);return}}}if(ai=="class"){ae.removeAttribute("className")}if(e.test(ai)){ae.removeAttribute("data-mce-"+ai)}ae.removeAttribute(ai)}});T(ah.classes,function(ai){ai=q(ai,ag);if(!ab||c.hasClass(ab,ai)){c.removeClass(ae,ai)}});ac=c.getAttribs(ae);for(ad=0;ad<ac.length;ad++){if(ac[ad].nodeName.indexOf("_")!==0){return X}}}if(ah.remove!="none"){o(ae,ah);return C}}function o(ad,ae){var ab=ad.parentNode,ac;function af(ah,ag,ai){ah=E(ah,ag,ai);return !ah||(ah.nodeName=="BR"||H(ah))}if(ae.block){if(!m){if(H(ad)&&!H(ab)){if(!af(ad,X)&&!af(ad.firstChild,C,1)){ad.insertBefore(c.create("br"),ad.firstChild)}if(!af(ad,C)&&!af(ad.lastChild,X,1)){ad.appendChild(c.create("br"))}}}else{if(ab==c.getRoot()){if(!ae.list_block||!g(ad,ae.list_block)){T(a.grep(ad.childNodes),function(ag){if(d(m,ag.nodeName.toLowerCase())){if(!ac){ac=S(ag,m)}else{ac.appendChild(ag)}}else{ac=0}})}}}}if(ae.selector&&ae.inline&&!g(ae.inline,ad)){return}c.remove(ad,1)}function E(ac,ab,ad){if(ac){ab=ab?"nextSibling":"previousSibling";for(ac=ad?ac:ac[ab];ac;ac=ac[ab]){if(ac.nodeType==1||!f(ac)){return ac}}}}function K(ab){return ab&&ab.nodeType==1&&ab.getAttribute("data-mce-type")=="bookmark"}function u(af,ae){var ab,ad,ac;function ah(ak,aj){if(ak.nodeName!=aj.nodeName){return X}function ai(am){var an={};T(c.getAttribs(am),function(ao){var ap=ao.nodeName.toLowerCase();if(ap.indexOf("_")!==0&&ap!=="style"){an[ap]=c.getAttrib(am,ap)}});return an}function al(ap,ao){var an,am;for(am in ap){if(ap.hasOwnProperty(am)){an=ao[am];if(an===D){return X}if(ap[am]!=an){return X}delete ao[am]}}for(am in ao){if(ao.hasOwnProperty(am)){return X}}return C}if(!al(ai(ak),ai(aj))){return X}if(!al(c.parseStyle(c.getAttrib(ak,"style")),c.parseStyle(c.getAttrib(aj,"style")))){return X}return C}function ag(aj,ai){for(ad=aj;ad;ad=ad[ai]){if(ad.nodeType==3&&ad.nodeValue.length!==0){return aj}if(ad.nodeType==1&&!K(ad)){return ad}}return aj}if(af&&ae){af=ag(af,"previousSibling");ae=ag(ae,"nextSibling");if(ah(af,ae)){for(ad=af.nextSibling;ad&&ad!=ae;){ac=ad;ad=ad.nextSibling;af.appendChild(ac)}c.remove(ae);T(a.grep(ae.childNodes),function(ai){af.appendChild(ai)});return af}}return ae}function I(ab){return/^(h[1-6]|p|div|pre|address|dl|dt|dd)$/.test(ab)}function M(ac,ag){var ab,af,ad,ae;ab=ac[ag?"startContainer":"endContainer"];af=ac[ag?"startOffset":"endOffset"];if(ab.nodeType==1){ad=ab.childNodes.length-1;if(!ag&&af){af--}ab=ab.childNodes[af>ad?ad:af]}if(ab.nodeType===3&&ag&&af>=ab.nodeValue.length){ab=new t(ab,aa.getBody()).next()||ab}if(ab.nodeType===3&&!ag&&af===0){ab=new t(ab,aa.getBody()).prev()||ab}return ab}function U(ak,ab,ai){var al="_mce_caret",ac=aa.settings.caret_debug;function ad(ap){var ao=c.create("span",{id:al,"data-mce-bogus":true,style:ac?"color:red":""});if(ap){ao.appendChild(aa.getDoc().createTextNode(G))}return ao}function aj(ap,ao){while(ap){if((ap.nodeType===3&&ap.nodeValue!==G)||ap.childNodes.length>1){return false}if(ao&&ap.nodeType===1){ao.push(ap)}ap=ap.firstChild}return true}function ag(ao){while(ao){if(ao.id===al){return ao}ao=ao.parentNode}}function af(ao){var ap;if(ao){ap=new t(ao,ao);for(ao=ap.current();ao;ao=ap.next()){if(ao.nodeType===3){return ao}}}}function ae(aq,ap){var ar,ao;if(!aq){aq=ag(r.getStart());if(!aq){while(aq=c.get(al)){ae(aq,false)}}}else{ao=r.getRng(true);if(aj(aq)){if(ap!==false){ao.setStartBefore(aq);ao.setEndBefore(aq)}c.remove(aq)}else{ar=af(aq);if(ar.nodeValue.charAt(0)===G){ar=ar.deleteData(0,1)}c.remove(aq,1)}r.setRng(ao)}}function ah(){var aq,ao,av,au,ar,ap,at;aq=r.getRng(true);au=aq.startOffset;ap=aq.startContainer;at=ap.nodeValue;ao=ag(r.getStart());if(ao){av=af(ao)}if(at&&au>0&&au<at.length&&/\w/.test(at.charAt(au))&&/\w/.test(at.charAt(au-1))){ar=r.getBookmark();aq.collapse(true);aq=p(aq,V(ab));aq=N.split(aq);Y(ab,ai,aq);r.moveToBookmark(ar)}else{if(!ao||av.nodeValue!==G){ao=ad(true);av=ao.firstChild;aq.insertNode(ao);au=1;Y(ab,ai,ao)}else{Y(ab,ai,ao)}r.setCursorLocation(av,au)}}function am(){var ao=r.getRng(true),ap,ar,av,au,aq,ay,ax=[],at,aw;ap=ao.startContainer;ar=ao.startOffset;aq=ap;if(ap.nodeType==3){if(ar!=ap.nodeValue.length||ap.nodeValue===G){au=true}aq=aq.parentNode}while(aq){if(y(aq,ab,ai)){ay=aq;break}if(aq.nextSibling){au=true}ax.push(aq);aq=aq.parentNode}if(!ay){return}if(au){av=r.getBookmark();ao.collapse(true);ao=p(ao,V(ab),true);ao=N.split(ao);B(ab,ai,ao);r.moveToBookmark(av)}else{aw=ad();aq=aw;for(at=ax.length-1;at>=0;at--){aq.appendChild(c.clone(ax[at],false));aq=aq.firstChild}aq.appendChild(c.doc.createTextNode(G));aq=aq.firstChild;c.insertAfter(aw,ay);r.setCursorLocation(aq,1)}}function an(){var ap,ao,aq;ao=ag(r.getStart());if(ao&&!c.isEmpty(ao)){a.walk(ao,function(ar){if(ar.nodeType==1&&ar.id!==al&&!c.isEmpty(ar)){c.setAttrib(ar,"data-mce-bogus",null)}},"childNodes")}}if(!self._hasCaretEvents){aa.onBeforeGetContent.addToTop(function(){var ao=[],ap;if(aj(ag(r.getStart()),ao)){ap=ao.length;while(ap--){c.setAttrib(ao[ap],"data-mce-bogus","1")}}});a.each("onMouseUp onKeyUp".split(" "),function(ao){aa[ao].addToTop(function(){ae();an()})});aa.onKeyDown.addToTop(function(ao,aq){var ap=aq.keyCode;if(ap==8||ap==37||ap==39){ae(ag(r.getStart()))}an()});r.onSetContent.add(an);self._hasCaretEvents=true}if(ak=="apply"){ah()}else{am()}}function R(ac){var ab=ac.startContainer,ai=ac.startOffset,ae,ah,ag,ad,af;if(ab.nodeType==3&&ai>=ab.nodeValue.length){ai=s(ab);ab=ab.parentNode;ae=true}if(ab.nodeType==1){ad=ab.childNodes;ab=ad[Math.min(ai,ad.length-1)];ah=new t(ab,c.getParent(ab,c.isBlock));if(ai>ad.length-1||ae){ah.next()}for(ag=ah.current();ag;ag=ah.next()){if(ag.nodeType==3&&!f(ag)){af=c.create("a",null,G);ag.parentNode.insertBefore(af,ag);ac.setStart(ag,0);r.setRng(ac);c.remove(af);return}}}}}})(tinymce);tinymce.onAddEditor.add(function(e,a){var d,h,g,c=a.settings;function b(j,i){e.each(i,function(l,k){if(l){g.setStyle(j,k,l)}});g.rename(j,"span")}function f(i,j){g=i.dom;if(c.convert_fonts_to_spans){e.each(g.select("font,u,strike",j.node),function(k){d[k.nodeName.toLowerCase()](a.dom,k)})}}if(c.inline_styles){h=e.explode(c.font_size_legacy_values);d={font:function(j,i){b(i,{backgroundColor:i.style.backgroundColor,color:i.color,fontFamily:i.face,fontSize:h[parseInt(i.size,10)-1]})},u:function(j,i){b(i,{textDecoration:"underline"})},strike:function(j,i){b(i,{textDecoration:"line-through"})}};a.onPreProcess.add(f);a.onSetContent.add(f);a.onInit.add(function(){a.selection.onSetContent.add(f)})}});(function(b){var a=b.dom.TreeWalker;b.EnterKey=function(f){var i=f.dom,e=f.selection,d=f.settings,h=f.undoManager,c=f.schema.getNonEmptyElements();function g(A){var v=e.getRng(true),G,j,z,u,p,M,B,o,k,n,t,J,x,C;function E(N){return N&&i.isBlock(N)&&!/^(TD|TH|CAPTION|FORM)$/.test(N.nodeName)&&!/^(fixed|absolute)/i.test(N.style.position)&&i.getContentEditable(N)!=="true"}function F(O){var N;if(b.isIE&&i.isBlock(O)){N=e.getRng();O.appendChild(i.create("span",null,"\u00a0"));e.select(O);O.lastChild.outerHTML="";e.setRng(N)}}function y(P){var O=P,Q=[],N;while(O=O.firstChild){if(i.isBlock(O)){return}if(O.nodeType==1&&!c[O.nodeName.toLowerCase()]){Q.push(O)}}N=Q.length;while(N--){O=Q[N];if(!O.hasChildNodes()||(O.firstChild==O.lastChild&&O.firstChild.nodeValue==="")){i.remove(O)}else{if(O.nodeName=="A"&&(O.innerText||O.textContent)===" "){i.remove(O)}}}}function m(O){var T,R,N,U,S,Q=O,P;N=i.createRng();if(O.hasChildNodes()){T=new a(O,O);while(R=T.current()){if(R.nodeType==3){N.setStart(R,0);N.setEnd(R,0);break}if(c[R.nodeName.toLowerCase()]){N.setStartBefore(R);N.setEndBefore(R);break}Q=R;R=T.next()}if(!R){N.setStart(Q,0);N.setEnd(Q,0)}}else{if(O.nodeName=="BR"){if(O.nextSibling&&i.isBlock(O.nextSibling)){if(!M||M<9){P=i.create("br");O.parentNode.insertBefore(P,O)}N.setStartBefore(O);N.setEndBefore(O)}else{N.setStartAfter(O);N.setEndAfter(O)}}else{N.setStart(O,0);N.setEnd(O,0)}}e.setRng(N);i.remove(P);S=i.getViewPort(f.getWin());U=i.getPos(O).y;if(U<S.y||U+25>S.y+S.h){f.getWin().scrollTo(0,U<S.y?U:U-S.h+25)}}function r(O){var P=z,R,Q,N;R=O||t=="TABLE"?i.create(O||x):p.cloneNode(false);N=R;if(d.keep_styles!==false){do{if(/^(SPAN|STRONG|B|EM|I|FONT|STRIKE|U)$/.test(P.nodeName)){if(P.id=="_mce_caret"){continue}Q=P.cloneNode(false);i.setAttrib(Q,"id","");if(R.hasChildNodes()){Q.appendChild(R.firstChild);R.appendChild(Q)}else{N=Q;R.appendChild(Q)}}}while(P=P.parentNode)}if(!b.isIE){N.innerHTML='<br data-mce-bogus="1">'}return R}function q(Q){var P,O,N;if(z.nodeType==3&&(Q?u>0:u<z.nodeValue.length)){return false}if(z.parentNode==p&&C&&!Q){return true}if(Q&&z.nodeType==1&&z==p.firstChild){return true}if(z.nodeName==="TABLE"||(z.previousSibling&&z.previousSibling.nodeName=="TABLE")){return(C&&!Q)||(!C&&Q)}P=new a(z,p);if(z.nodeType==3){if(Q&&u==0){P.prev()}else{if(!Q&&u==z.nodeValue.length){P.next()}}}while(O=P.current()){if(O.nodeType===1){if(!O.getAttribute("data-mce-bogus")){N=O.nodeName.toLowerCase();if(c[N]&&N!=="br"){return false}}}else{if(O.nodeType===3&&!/^[ \t\r\n]*$/.test(O.nodeValue)){return false}}if(Q){P.prev()}else{P.next()}}return true}function l(N,T){var U,S,P,R,Q,O=x||"P";S=i.getParent(N,i.isBlock);if(!S||!E(S)){S=S||j;if(!S.hasChildNodes()){U=i.create(O);S.appendChild(U);v.setStart(U,0);v.setEnd(U,0);return U}R=N;while(R.parentNode!=S){R=R.parentNode}while(R&&!i.isBlock(R)){P=R;R=R.previousSibling}if(P){U=i.create(O);P.parentNode.insertBefore(U,P);R=P;while(R&&!i.isBlock(R)){Q=R.nextSibling;U.appendChild(R);R=Q}v.setStart(N,T);v.setEnd(N,T)}}return N}function H(){function N(P){var O=n[P?"firstChild":"lastChild"];while(O){if(O.nodeType==1){break}O=O[P?"nextSibling":"previousSibling"]}return O===p}o=x?r(x):i.create("BR");if(N(true)&&N()){i.replace(o,n)}else{if(N(true)){n.parentNode.insertBefore(o,n)}else{if(N()){i.insertAfter(o,n);F(o)}else{G=v.cloneRange();G.setStartAfter(p);G.setEndAfter(n);k=G.extractContents();i.insertAfter(k,n);i.insertAfter(o,n)}}}i.remove(p);m(o);h.add()}function D(){var O=new a(z,p),N;while(N=O.current()){if(N.nodeName=="BR"){return true}N=O.next()}}function L(){var P,O,N;if(z&&z.nodeType==3&&u>=z.nodeValue.length){if(!b.isIE&&!D()){P=i.create("br");v.insertNode(P);v.setStartAfter(P);v.setEndAfter(P);O=true}}P=i.create("br");v.insertNode(P);if(b.isIE&&t=="PRE"&&(!M||M<8)){P.parentNode.insertBefore(i.doc.createTextNode("\r"),P)}N=i.create("span",{},"&nbsp;");P.parentNode.insertBefore(N,P);e.scrollIntoView(N);i.remove(N);if(!O){v.setStartAfter(P);v.setEndAfter(P)}else{v.setStartBefore(P);v.setEndBefore(P)}e.setRng(v);h.add()}function s(N){do{if(N.nodeType===3){N.nodeValue=N.nodeValue.replace(/^[\r\n]+/,"")}N=N.firstChild}while(N)}function K(P){var N=i.getRoot(),O,Q;O=P;while(O!==N&&i.getContentEditable(O)!=="false"){if(i.getContentEditable(O)==="true"){Q=O}O=O.parentNode}return O!==N?Q:N}function I(O){var N;if(!b.isIE){O.normalize();N=O.lastChild;if(!N||(/^(left|right)$/gi.test(i.getStyle(N,"float",true)))){i.add(O,"br")}}}if(!v.collapsed){f.execCommand("Delete");return}if(A.isDefaultPrevented()){return}z=v.startContainer;u=v.startOffset;x=(d.force_p_newlines?"p":"")||d.forced_root_block;x=x?x.toUpperCase():"";M=i.doc.documentMode;B=A.shiftKey;if(z.nodeType==1&&z.hasChildNodes()){C=u>z.childNodes.length-1;z=z.childNodes[Math.min(u,z.childNodes.length-1)]||z;if(C&&z.nodeType==3){u=z.nodeValue.length}else{u=0}}j=K(z);if(!j){return}h.beforeChange();if(!i.isBlock(j)&&j!=i.getRoot()){if(!x||B){L()}return}if((x&&!B)||(!x&&B)){z=l(z,u)}p=i.getParent(z,i.isBlock);n=p?i.getParent(p.parentNode,i.isBlock):null;t=p?p.nodeName.toUpperCase():"";J=n?n.nodeName.toUpperCase():"";if(J=="LI"&&!A.ctrlKey){p=n;t=J}if(t=="LI"){if(!x&&B){L();return}if(i.isEmpty(p)){if(/^(UL|OL|LI)$/.test(n.parentNode.nodeName)){return false}H();return}}if(t=="PRE"&&d.br_in_pre!==false){if(!B){L();return}}else{if((!x&&!B&&t!="LI")||(x&&B)){L();return}}x=x||"P";if(q()){if(/^(H[1-6]|PRE)$/.test(t)&&J!="HGROUP"){o=r(x)}else{o=r()}if(d.end_container_on_empty_block&&E(n)&&i.isEmpty(p)){o=i.split(n,p)}else{i.insertAfter(o,p)}m(o)}else{if(q(true)){o=p.parentNode.insertBefore(r(),p);F(o)}else{G=v.cloneRange();G.setEndAfter(p);k=G.extractContents();s(k);o=k.firstChild;i.insertAfter(k,p);y(o);I(p);m(o)}}i.setAttrib(o,"id","");h.add()}f.onKeyDown.add(function(k,j){if(j.keyCode==13){if(g(j)!==false){j.preventDefault()}}})}})(tinymce);
\ No newline at end of file
--- a/web/wp-includes/js/tinymce/tiny_mce_popup.js	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/js/tinymce/tiny_mce_popup.js	Wed Dec 19 17:46:52 2012 -0800
@@ -2,4 +2,4 @@
 // Uncomment and change this document.domain value if you are loading the script cross subdomains
 // document.domain = 'moxiecode.com';
 
-var tinymce=null,tinyMCEPopup,tinyMCE;tinyMCEPopup={init:function(){var b=this,a,c;a=b.getWin();tinymce=a.tinymce;tinyMCE=a.tinyMCE;b.editor=tinymce.EditorManager.activeEditor;b.params=b.editor.windowManager.params;b.features=b.editor.windowManager.features;b.dom=b.editor.windowManager.createInstance("tinymce.dom.DOMUtils",document);if(b.features.popup_css!==false){b.dom.loadCSS(b.features.popup_css||b.editor.settings.popup_css)}b.listeners=[];b.onInit={add:function(e,d){b.listeners.push({func:e,scope:d})}};b.isWindow=!b.getWindowArg("mce_inline");b.id=b.getWindowArg("mce_window_id");b.editor.windowManager.onOpen.dispatch(b.editor.windowManager,window)},getWin:function(){return(!window.frameElement&&window.dialogArguments)||opener||parent||top},getWindowArg:function(c,b){var a=this.params[c];return tinymce.is(a)?a:b},getParam:function(b,a){return this.editor.getParam(b,a)},getLang:function(b,a){return this.editor.getLang(b,a)},execCommand:function(d,c,e,b){b=b||{};b.skip_focus=1;this.restoreSelection();return this.editor.execCommand(d,c,e,b)},resizeToInnerSize:function(){var a=this;setTimeout(function(){var b=a.dom.getViewPort(window);a.editor.windowManager.resizeBy(a.getWindowArg("mce_width")-b.w,a.getWindowArg("mce_height")-b.h,a.id||window)},10)},executeOnLoad:function(s){this.onInit.add(function(){eval(s)})},storeSelection:function(){this.editor.windowManager.bookmark=tinyMCEPopup.editor.selection.getBookmark(1)},restoreSelection:function(){var a=tinyMCEPopup;if(!a.isWindow&&tinymce.isIE){a.editor.selection.moveToBookmark(a.editor.windowManager.bookmark)}},requireLangPack:function(){var b=this,a=b.getWindowArg("plugin_url")||b.getWindowArg("theme_url");if(a&&b.editor.settings.language&&b.features.translate_i18n!==false&&b.editor.settings.language_load!==false){a+="/langs/"+b.editor.settings.language+"_dlg.js";if(!tinymce.ScriptLoader.isDone(a)){document.write('<script type="text/javascript" src="'+tinymce._addVer(a)+'"><\/script>');tinymce.ScriptLoader.markDone(a)}}},pickColor:function(b,a){this.execCommand("mceColorPicker",true,{color:document.getElementById(a).value,func:function(e){document.getElementById(a).value=e;try{document.getElementById(a).onchange()}catch(d){}}})},openBrowser:function(a,c,b){tinyMCEPopup.restoreSelection();this.editor.execCallback("file_browser_callback",a,document.getElementById(a).value,c,window)},confirm:function(b,a,c){this.editor.windowManager.confirm(b,a,c,window)},alert:function(b,a,c){this.editor.windowManager.alert(b,a,c,window)},close:function(){var a=this;function b(){a.editor.windowManager.close(window);tinymce=tinyMCE=a.editor=a.params=a.dom=a.dom.doc=null}if(tinymce.isOpera){a.getWin().setTimeout(b,0)}else{b()}},_restoreSelection:function(){var a=window.event.srcElement;if(a.nodeName=="INPUT"&&(a.type=="submit"||a.type=="button")){tinyMCEPopup.restoreSelection()}},_onDOMLoaded:function(){var b=tinyMCEPopup,d=document.title,e,c,a;if(b.domLoaded){return}b.domLoaded=1;if(b.features.translate_i18n!==false){c=document.body.innerHTML;if(tinymce.isIE){c=c.replace(/ (value|title|alt)=([^"][^\s>]+)/gi,' $1="$2"')}document.dir=b.editor.getParam("directionality","");if((a=b.editor.translate(c))&&a!=c){document.body.innerHTML=a}if((a=b.editor.translate(d))&&a!=d){document.title=d=a}}if(!b.editor.getParam("browser_preferred_colors",false)||!b.isWindow){b.dom.addClass(document.body,"forceColors")}document.body.style.display="";if(tinymce.isIE){document.attachEvent("onmouseup",tinyMCEPopup._restoreSelection);b.dom.add(b.dom.select("head")[0],"base",{target:"_self"})}b.restoreSelection();b.resizeToInnerSize();if(!b.isWindow){b.editor.windowManager.setTitle(window,d)}else{window.focus()}if(!tinymce.isIE&&!b.isWindow){tinymce.dom.Event._add(document,"focus",function(){b.editor.windowManager.focus(b.id)})}tinymce.each(b.dom.select("select"),function(f){f.onkeydown=tinyMCEPopup._accessHandler});tinymce.each(b.listeners,function(f){f.func.call(f.scope,b.editor)});if(b.getWindowArg("mce_auto_focus",true)){window.focus();tinymce.each(document.forms,function(g){tinymce.each(g.elements,function(f){if(b.dom.hasClass(f,"mceFocus")&&!f.disabled){f.focus();return false}})})}document.onkeyup=tinyMCEPopup._closeWinKeyHandler},_accessHandler:function(a){a=a||window.event;if(a.keyCode==13||a.keyCode==32){a=a.target||a.srcElement;if(a.onchange){a.onchange()}return tinymce.dom.Event.cancel(a)}},_closeWinKeyHandler:function(a){a=a||window.event;if(a.keyCode==27){tinyMCEPopup.close()}},_wait:function(){if(document.attachEvent){document.attachEvent("onreadystatechange",function(){if(document.readyState==="complete"){document.detachEvent("onreadystatechange",arguments.callee);tinyMCEPopup._onDOMLoaded()}});if(document.documentElement.doScroll&&window==window.top){(function(){if(tinyMCEPopup.domLoaded){return}try{document.documentElement.doScroll("left")}catch(a){setTimeout(arguments.callee,0);return}tinyMCEPopup._onDOMLoaded()})()}document.attachEvent("onload",tinyMCEPopup._onDOMLoaded)}else{if(document.addEventListener){window.addEventListener("DOMContentLoaded",tinyMCEPopup._onDOMLoaded,false);window.addEventListener("load",tinyMCEPopup._onDOMLoaded,false)}}}};tinyMCEPopup.init();tinyMCEPopup._wait();
\ No newline at end of file
+var tinymce=null,tinyMCEPopup,tinyMCE;tinyMCEPopup={init:function(){var b=this,a,c;a=b.getWin();tinymce=a.tinymce;tinyMCE=a.tinyMCE;b.editor=tinymce.EditorManager.activeEditor;b.params=b.editor.windowManager.params;b.features=b.editor.windowManager.features;b.dom=b.editor.windowManager.createInstance("tinymce.dom.DOMUtils",document,{ownEvents:true,proxy:tinyMCEPopup._eventProxy});b.dom.bind(window,"ready",b._onDOMLoaded,b);if(b.features.popup_css!==false){b.dom.loadCSS(b.features.popup_css||b.editor.settings.popup_css)}b.listeners=[];b.onInit={add:function(e,d){b.listeners.push({func:e,scope:d})}};b.isWindow=!b.getWindowArg("mce_inline");b.id=b.getWindowArg("mce_window_id");b.editor.windowManager.onOpen.dispatch(b.editor.windowManager,window)},getWin:function(){return(!window.frameElement&&window.dialogArguments)||opener||parent||top},getWindowArg:function(c,b){var a=this.params[c];return tinymce.is(a)?a:b},getParam:function(b,a){return this.editor.getParam(b,a)},getLang:function(b,a){return this.editor.getLang(b,a)},execCommand:function(d,c,e,b){b=b||{};b.skip_focus=1;this.restoreSelection();return this.editor.execCommand(d,c,e,b)},resizeToInnerSize:function(){var a=this;setTimeout(function(){var b=a.dom.getViewPort(window);a.editor.windowManager.resizeBy(a.getWindowArg("mce_width")-b.w,a.getWindowArg("mce_height")-b.h,a.id||window)},10)},executeOnLoad:function(s){this.onInit.add(function(){eval(s)})},storeSelection:function(){this.editor.windowManager.bookmark=tinyMCEPopup.editor.selection.getBookmark(1)},restoreSelection:function(){var a=tinyMCEPopup;if(!a.isWindow&&tinymce.isIE){a.editor.selection.moveToBookmark(a.editor.windowManager.bookmark)}},requireLangPack:function(){var b=this,a=b.getWindowArg("plugin_url")||b.getWindowArg("theme_url");if(a&&b.editor.settings.language&&b.features.translate_i18n!==false&&b.editor.settings.language_load!==false){a+="/langs/"+b.editor.settings.language+"_dlg.js";if(!tinymce.ScriptLoader.isDone(a)){document.write('<script type="text/javascript" src="'+tinymce._addVer(a)+'"><\/script>');tinymce.ScriptLoader.markDone(a)}}},pickColor:function(b,a){this.execCommand("mceColorPicker",true,{color:document.getElementById(a).value,func:function(e){document.getElementById(a).value=e;try{document.getElementById(a).onchange()}catch(d){}}})},openBrowser:function(a,c,b){tinyMCEPopup.restoreSelection();this.editor.execCallback("file_browser_callback",a,document.getElementById(a).value,c,window)},confirm:function(b,a,c){this.editor.windowManager.confirm(b,a,c,window)},alert:function(b,a,c){this.editor.windowManager.alert(b,a,c,window)},close:function(){var a=this;function b(){a.editor.windowManager.close(window);tinymce=tinyMCE=a.editor=a.params=a.dom=a.dom.doc=null}if(tinymce.isOpera){a.getWin().setTimeout(b,0)}else{b()}},_restoreSelection:function(){var a=window.event.srcElement;if(a.nodeName=="INPUT"&&(a.type=="submit"||a.type=="button")){tinyMCEPopup.restoreSelection()}},_onDOMLoaded:function(){var b=tinyMCEPopup,d=document.title,e,c,a;if(b.features.translate_i18n!==false){c=document.body.innerHTML;if(tinymce.isIE){c=c.replace(/ (value|title|alt)=([^"][^\s>]+)/gi,' $1="$2"')}document.dir=b.editor.getParam("directionality","");if((a=b.editor.translate(c))&&a!=c){document.body.innerHTML=a}if((a=b.editor.translate(d))&&a!=d){document.title=d=a}}if(!b.editor.getParam("browser_preferred_colors",false)||!b.isWindow){b.dom.addClass(document.body,"forceColors")}document.body.style.display="";if(tinymce.isIE){document.attachEvent("onmouseup",tinyMCEPopup._restoreSelection);b.dom.add(b.dom.select("head")[0],"base",{target:"_self"})}b.restoreSelection();b.resizeToInnerSize();if(!b.isWindow){b.editor.windowManager.setTitle(window,d)}else{window.focus()}if(!tinymce.isIE&&!b.isWindow){b.dom.bind(document,"focus",function(){b.editor.windowManager.focus(b.id)})}tinymce.each(b.dom.select("select"),function(f){f.onkeydown=tinyMCEPopup._accessHandler});tinymce.each(b.listeners,function(f){f.func.call(f.scope,b.editor)});if(b.getWindowArg("mce_auto_focus",true)){window.focus();tinymce.each(document.forms,function(g){tinymce.each(g.elements,function(f){if(b.dom.hasClass(f,"mceFocus")&&!f.disabled){f.focus();return false}})})}document.onkeyup=tinyMCEPopup._closeWinKeyHandler},_accessHandler:function(a){a=a||window.event;if(a.keyCode==13||a.keyCode==32){var b=a.target||a.srcElement;if(b.onchange){b.onchange()}return tinymce.dom.Event.cancel(a)}},_closeWinKeyHandler:function(a){a=a||window.event;if(a.keyCode==27){tinyMCEPopup.close()}},_eventProxy:function(a){return function(b){tinyMCEPopup.dom.events.callNativeHandler(a,b)}}};tinyMCEPopup.init();
\ No newline at end of file
--- a/web/wp-includes/js/tinymce/wp-mce-help.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/js/tinymce/wp-mce-help.php	Wed Dec 19 17:46:52 2012 -0800
@@ -13,8 +13,8 @@
 <html xmlns="http://www.w3.org/1999/xhtml" <?php language_attributes(); ?>>
 <head>
 <meta http-equiv="Content-Type" content="<?php bloginfo('html_type'); ?>; charset=<?php echo get_option('blog_charset'); ?>" />
-<title><?php _e('Rich Editor Help') ?></title>
-<script type="text/javascript" src="tiny_mce_popup.js?ver=342"></script>
+<title><?php _e('Rich Editor Help'); ?></title>
+<script type="text/javascript" src="tiny_mce_popup.js?ver=358-20121205"></script>
 <?php
 wp_admin_css( 'wp-admin', true );
 ?>
@@ -111,6 +111,8 @@
 	}
 	.keys {
 		margin-bottom: 15px;
+		width: 100%;
+		border: 0 none;
 	}
 	.keys p {
 		display: inline-block;
@@ -130,20 +132,10 @@
 	#buttoncontainer a, #buttoncontainer a:hover {
 		border-bottom: 0px;
 	}
-
-	.mac,
-	.macos .win {
+	.macos .win,
+	.windows .mac {
 		display: none;
 	}
-
-	.macos span.mac {
-		display: inline;
-	}
-
-	.macwebkit tr.mac {
-		display: table-row;
-	}
-
 </style>
 <?php if ( is_rtl() ) : ?>
 <style type="text/css">
@@ -159,11 +151,107 @@
 	td b { font-family: Tahoma, "Times New Roman", Times, serif }
 </style>
 <?php endif; ?>
+</head>
+<body class="windows wp-core-ui">
+<script type="text/javascript">
+if ( tinymce.isMac )
+	document.body.className = document.body.className.replace(/windows/, 'macos');
+</script>
+
+<ul id="tabs">
+	<li><a id="tab1" href="javascript:flipTab(1)" title="<?php esc_attr_e('Basics of Rich Editing'); ?>" accesskey="1" class="current"><?php _e('Basics'); ?></a></li>
+	<li><a id="tab2" href="javascript:flipTab(2)" title="<?php esc_attr_e('Advanced use of the Rich Editor'); ?>" accesskey="2"><?php _e('Advanced'); ?></a></li>
+	<li><a id="tab3" href="javascript:flipTab(3)" title="<?php esc_attr_e('Hotkeys'); ?>" accesskey="3"><?php _e('Hotkeys'); ?></a></li>
+	<li><a id="tab4" href="javascript:flipTab(4)" title="<?php esc_attr_e('About the software'); ?>" accesskey="4"><?php _e('About'); ?></a></li>
+</ul>
+
+<div id="flipper" class="wrap">
+
+<div id="content1">
+	<h2><?php _e('Rich Editing Basics'); ?></h2>
+	<p><?php _e('<em>Rich editing</em>, also called WYSIWYG for What You See Is What You Get, means your text is formatted as you type. The rich editor creates HTML code behind the scenes while you concentrate on writing. Font styles, links and images all appear approximately as they will on the internet.'); ?></p>
+	<p><?php _e('WordPress includes a rich HTML editor that works well in all major web browsers used today. However editing HTML is not the same as typing text. Each web page has two major components: the structure, which is the actual HTML code and is produced by the editor as you type, and the display, that is applied to it by the currently selected WordPress theme and is defined in style.css. WordPress is producing valid XHTML 1.0 which means that inserting multiple line breaks (BR tags) after a paragraph would not produce white space on the web page. The BR tags will be removed as invalid by the internal HTML correcting functions.'); ?></p>
+	<p><?php _e('While using the editor, most basic keyboard shortcuts work like in any other text editor. For example: Shift+Enter inserts line break, Ctrl+C = copy, Ctrl+X = cut, Ctrl+Z = undo, Ctrl+Y = redo, Ctrl+A = select all, etc. (on Mac use the Command key instead of Ctrl). See the Hotkeys tab for all available keyboard shortcuts.'); ?></p>
+    <p><?php _e('If you do not like the way the rich editor works, you may turn it off from Your Profile submenu, under Users in the admin menu.'); ?></p>
+</div>
+
+<div id="content2" class="hidden">
+	<h2><?php _e('Advanced Rich Editing'); ?></h2>
+	<h3><?php _e('Images and Attachments'); ?></h3>
+	<p><?php _e('There is a button in the editor toolbar for inserting images that are already hosted somewhere on the internet. If you have a URL for an image, click this button and enter the URL in the box which appears.'); ?></p>
+	<p><?php _e('If you need to upload an image or another media file from your computer, you can use the Media Library button above the editor. The media library will attempt to create a thumbnail-sized copy from each uploaded image. To insert your image into the post, first click on the thumbnail to reveal a menu of options. When you have selected the options you like, click "Insert into Post" and your image or file will appear in the post you are editing.'); ?></p>
+	<h3><?php _e('HTML in the Rich Editor'); ?></h3>
+	<p><?php _e('Any HTML entered directly into the rich editor will show up as text when the post is viewed. What you see is what you get. When you want to include HTML elements that cannot be generated with the toolbar buttons, you must enter it by hand in the Text editor. Examples are tables and &lt;code&gt;. To do this, click the Text tab and edit the code, then switch back to Visual mode. If the code is valid and understood by the editor, you should see it rendered immediately.'); ?></p>
+	<h3><?php _e('Pasting in the Rich Editor'); ?></h3>
+	<p><?php _e('When pasting content from another web page the results can be inconsistent and depend on your browser and on the web page you are pasting from. The editor tries to correct any invalid HTML code that was pasted, but for best results try using the Text tab or one of the paste buttons that are on the second row. Alternatively try pasting paragraph by paragraph. In most browsers to select one paragraph at a time, triple-click on it.'); ?></p>
+	<p><?php _e('Pasting content from another application, like Word or Excel, is best done with the Paste from Word button on the second row, or in Text mode.'); ?></p>
+</div>
+
+<div id="content3" class="hidden">
+	<h2><?php _e('Writing at Full Speed'); ?></h2>
+    <p><?php _e('Rather than reaching for your mouse to click on the toolbar, use these access keys. Windows and Linux use Ctrl + letter. Macintosh uses Command + letter.'); ?></p>
+
+	<table class="keys">
+		<tr class="top"><th class="key center"><?php _e('Letter'); ?></th><th class="left"><?php _e('Action'); ?></th><th class="key center"><?php _e('Letter'); ?></th><th class="left"><?php _e('Action'); ?></th></tr>
+		<tr><th>c</th><td><?php _e('Copy'); ?></td><th>v</th><td><?php _e('Paste'); ?></td></tr>
+		<tr><th>a</th><td><?php _e('Select all'); ?></td><th>x</th><td><?php _e('Cut'); ?></td></tr>
+		<tr><th>z</th><td><?php _e('Undo'); ?></td><th>y</th><td><?php _e('Redo'); ?></td></tr>
+
+		<tr><th>b</th><td><?php _e('Bold'); ?></td><th>i</th><td><?php _e('Italic'); ?></td></tr>
+		<tr><th>u</th><td><?php _e('Underline'); ?></td><th>1</th><td><?php _e('Heading 1'); ?></td></tr>
+		<tr><th>2</th><td><?php _e('Heading 2'); ?></td><th>3</th><td><?php _e('Heading 3'); ?></td></tr>
+		<tr><th>4</th><td><?php _e('Heading 4'); ?></td><th>5</th><td><?php _e('Heading 5'); ?></td></tr>
+		<tr><th>6</th><td><?php _e('Heading 6'); ?></td><th>9</th><td><?php _e('Address'); ?></td></tr>
+	</table>
+
+	<p><?php _e('The following shortcuts use different access keys: Alt + Shift + letter.'); ?></p>
+	<table class="keys">
+		<tr class="top"><th class="key center"><?php _e('Letter'); ?></th><th class="left"><?php _e('Action'); ?></th><th class="key center"><?php _e('Letter'); ?></th><th class="left"><?php _e('Action'); ?></th></tr>
+		<tr><th>n</th><td><?php _e('Check Spelling'); ?></td><th>l</th><td><?php _e('Align Left'); ?></td></tr>
+		<tr><th>j</th><td><?php _e('Justify Text'); ?></td><th>c</th><td><?php _e('Align Center'); ?></td></tr>
+		<tr><th>d</th><td><span style="text-decoration: line-through;"><?php _e('Strikethrough'); ?></span></td><th>r</th><td><?php _e('Align Right'); ?></td></tr>
+		<tr><th>u</th><td><strong>&bull;</strong> <?php _e('List'); ?></td><th>a</th><td><?php _e('Insert link'); ?></td></tr>
+		<tr><th>o</th><td>1. <?php _e('List'); ?></td><th>s</th><td><?php _e('Remove link'); ?></td></tr>
+		<tr><th>q</th><td><?php _e('Quote'); ?></td><th>m</th><td><?php _e('Insert Image'); ?></td></tr>
+		<tr><th>w</th><td><?php _e('Distraction Free Writing mode'); ?></td><th>t</th><td><?php _e('Insert More Tag'); ?></td></tr>
+		<tr><th>p</th><td><?php _e('Insert Page Break tag'); ?></td><th>h</th><td><?php _e('Help'); ?></td></tr>
+	</table>
+
+	<p style="padding: 15px 10px 10px;"><?php _e('Editor width in Distraction Free Writing mode:'); ?></p>
+	<table class="keys">
+		<tr><th><span class="win">Alt +</span><span class="mac">Ctrl +</span></th><td><?php _e('Wider'); ?></td>
+			<th><span class="win">Alt -</span><span class="mac">Ctrl -</span></th><td><?php _e('Narrower'); ?></td></tr>
+		<tr><th><span class="win">Alt 0</span><span class="mac">Ctrl 0</span></th><td><?php _e('Default width'); ?></td><th></th><td></td></tr>
+	</table>
+</div>
+
+<div id="content4" class="hidden">
+	<h2><?php _e('About TinyMCE'); ?></h2>
+
+    <p><?php _e('Version:'); ?> <span id="version"></span> (<span id="date"></span>)</p>
+	<p><?php printf(__('TinyMCE is a platform independent web based Javascript HTML WYSIWYG editor released as Open Source under %sLGPL</a>	by Moxiecode Systems AB. It has the ability to convert HTML TEXTAREA fields or other HTML elements to editor instances.'), '<a href="'.home_url('/wp-includes/js/tinymce/license.txt').'" target="_blank" title="'.esc_attr__('GNU Library General Public License').'">'); ?></p>
+	<p><?php _e('Copyright &copy; 2003-2011, <a href="http://www.moxiecode.com" target="_blank">Moxiecode Systems AB</a>, All rights reserved.'); ?></p>
+	<p><?php _e('For more information about this software visit the <a href="http://tinymce.com" target="_blank">TinyMCE website</a>.'); ?></p>
+
+	<div id="buttoncontainer">
+		<a href="http://www.moxiecode.com" target="_blank"><img src="themes/advanced/img/gotmoxie.png" alt="<?php esc_attr_e('Got Moxie?'); ?>" style="border: 0" /></a>
+	</div>
+
+</div>
+</div>
+
+<div class="mceActionPanel">
+	<div style="margin: 8px auto; text-align: center;padding-bottom: 10px;">
+		<input type="button" id="cancel" name="cancel" value="<?php esc_attr_e('Close'); ?>" title="<?php esc_attr_e('Close'); ?>" onclick="tinyMCEPopup.close();" />
+	</div>
+</div>
 <script type="text/javascript">
 	function d(id) { return document.getElementById(id); }
 
 	function flipTab(n) {
-		for (i=1;i<=4;i++) {
+		var i, c, t;
+
+		for ( i = 1; i <= 4; i++ ) {
 			c = d('content'+i.toString());
 			t = d('tab'+i.toString());
 			if ( n == i ) {
@@ -179,114 +267,15 @@
     tinyMCEPopup.onInit.add(function() {
         var win = tinyMCEPopup.getWin();
 
-		document.getElementById('version').innerHTML = tinymce.majorVersion + "." + tinymce.minorVersion;
-        document.getElementById('date').innerHTML = tinymce.releaseDate;
+		d('version').innerHTML = tinymce.majorVersion + "." + tinymce.minorVersion;
+        d('date').innerHTML = tinymce.releaseDate;
 
 		if ( win.fullscreen && win.fullscreen.settings.visible ) {
 			d('content1').className = 'hidden';
 			d('tabs').className = 'hidden';
 			d('content3').className = 'dfw';
 		}
-
-		if ( tinymce.isMac )
-			document.body.className = 'macos';
-
-		if ( tinymce.isMac && tinymce.isWebKit )
-			document.body.className = 'macos macwebkit';
-
     });
 </script>
-</head>
-<body>
-
-<ul id="tabs">
-	<li><a id="tab1" href="javascript:flipTab(1)" title="<?php esc_attr_e('Basics of Rich Editing') ?>" accesskey="1" tabindex="1" class="current"><?php _e('Basics') ?></a></li>
-	<li><a id="tab2" href="javascript:flipTab(2)" title="<?php esc_attr_e('Advanced use of the Rich Editor') ?>" accesskey="2" tabindex="2"><?php _e('Advanced') ?></a></li>
-	<li><a id="tab3" href="javascript:flipTab(3)" title="<?php esc_attr_e('Hotkeys') ?>" accesskey="3" tabindex="3"><?php _e('Hotkeys') ?></a></li>
-	<li><a id="tab4" href="javascript:flipTab(4)" title="<?php esc_attr_e('About the software') ?>" accesskey="4" tabindex="4"><?php _e('About') ?></a></li>
-</ul>
-
-<div id="flipper" class="wrap">
-
-<div id="content1">
-	<h2><?php _e('Rich Editing Basics') ?></h2>
-	<p><?php _e('<em>Rich editing</em>, also called WYSIWYG for What You See Is What You Get, means your text is formatted as you type. The rich editor creates HTML code behind the scenes while you concentrate on writing. Font styles, links and images all appear approximately as they will on the internet.') ?></p>
-	<p><?php _e('WordPress includes a rich HTML editor that works well in all major web browsers used today. However editing HTML is not the same as typing text. Each web page has two major components: the structure, which is the actual HTML code and is produced by the editor as you type, and the display, that is applied to it by the currently selected WordPress theme and is defined in style.css. WordPress is producing valid XHTML 1.0 which means that inserting multiple line breaks (BR tags) after a paragraph would not produce white space on the web page. The BR tags will be removed as invalid by the internal HTML correcting functions.') ?></p>
-	<p><?php _e('While using the editor, most basic keyboard shortcuts work like in any other text editor. For example: Shift+Enter inserts line break, Ctrl+C = copy, Ctrl+X = cut, Ctrl+Z = undo, Ctrl+Y = redo, Ctrl+A = select all, etc. (on Mac use the Command key instead of Ctrl). See the Hotkeys tab for all available keyboard shortcuts.') ?></p>
-    <p><?php _e('If you do not like the way the rich editor works, you may turn it off from Your Profile submenu, under Users in the admin menu.') ?></p>
-</div>
-
-<div id="content2" class="hidden">
-	<h2><?php _e('Advanced Rich Editing') ?></h2>
-	<h3><?php _e('Images and Attachments') ?></h3>
-	<p><?php _e('There is a button in the editor toolbar for inserting images that are already hosted somewhere on the internet. If you have a URL for an image, click this button and enter the URL in the box which appears.') ?></p>
-	<p><?php _e('If you need to upload an image or another media file from your computer, you can use the Media Library buttons above the editor. The media library will attempt to create a thumbnail-sized copy from each uploaded image. To insert your image into the post, first click on the thumbnail to reveal a menu of options. When you have selected the options you like, click "Send to Editor" and your image or file will appear in the post you are editing. If you are inserting a movie, there are additional options in the "Media" dialog that can be opened from the second toolbar row.') ?></p>
-	<h3><?php _e('HTML in the Rich Editor') ?></h3>
-	<p><?php _e('Any HTML entered directly into the rich editor will show up as text when the post is viewed. What you see is what you get. When you want to include HTML elements that cannot be generated with the toolbar buttons, you must enter it by hand in the HTML editor. Examples are tables and &lt;code&gt;. To do this, click the HTML tab and edit the code, then switch back to Visual mode. If the code is valid and understood by the editor, you should see it rendered immediately.') ?></p>
-	<h3><?php _e('Pasting in the Rich Editor') ?></h3>
-	<p><?php _e('When pasting content from another web page the results can be inconsistent and depend on your browser and on the web page you are pasting from. The editor tries to correct any invalid HTML code that was pasted, but for best results try using the HTML tab or one of the paste buttons that are on the second row. Alternatively try pasting paragraph by paragraph. In most browsers to select one paragraph at a time, triple-click on it.') ?></p>
-	<p><?php _e('Pasting content from another application, like Word or Excel, is best done with the Paste from Word button on the second row, or in HTML mode.') ?></p>
-</div>
-
-<div id="content3" class="hidden">
-	<h2><?php _e('Writing at Full Speed') ?></h2>
-    <p><?php _e('Rather than reaching for your mouse to click on the toolbar, use these access keys. Windows and Linux use Ctrl + letter. Macintosh uses Command + letter.') ?></p>
-
-	<table class="keys" width="100%" style="border: 0 none;">
-		<tr class="top"><th class="key center"><?php _e('Letter') ?></th><th class="left"><?php _e('Action') ?></th><th class="key center"><?php _e('Letter') ?></th><th class="left"><?php _e('Action') ?></th></tr>
-		<tr><th>c</th><td><?php _e('Copy') ?></td><th>v</th><td><?php _e('Paste') ?></td></tr>
-		<tr><th>a</th><td><?php _e('Select all') ?></td><th>x</th><td><?php _e('Cut') ?></td></tr>
-		<tr><th>z</th><td><?php _e('Undo') ?></td><th>y</th><td><?php _e('Redo') ?></td></tr>
-
-		<tr class="win"><th>b</th><td><?php _e('Bold') ?></td><th>i</th><td><?php _e('Italic') ?></td></tr>
-		<tr class="win"><th>u</th><td><?php _e('Underline') ?></td><th>1</th><td><?php _e('Heading 1') ?></td></tr>
-		<tr class="win"><th>2</th><td><?php _e('Heading 2') ?></td><th>3</th><td><?php _e('Heading 3') ?></td></tr>
-		<tr class="win"><th>4</th><td><?php _e('Heading 4') ?></td><th>5</th><td><?php _e('Heading 5') ?></td></tr>
-		<tr class="win"><th>6</th><td><?php _e('Heading 6') ?></td><th>9</th><td><?php _e('Address') ?></td></tr>
-	</table>
-
-	<p><?php _e('The following shortcuts use different access keys: Alt + Shift + letter.') ?></p>
-	<table class="keys" width="100%" style="border: 0 none;">
-		<tr class="top"><th class="key center"><?php _e('Letter') ?></th><th class="left"><?php _e('Action') ?></th><th class="key center"><?php _e('Letter') ?></th><th class="left"><?php _e('Action') ?></th></tr>
-		<tr class="mac"><th>b</th><td><?php _e('Bold') ?></td><th>i</th><td><?php _e('Italic') ?></td></tr>
-
-		<tr><th>n</th><td><?php _e('Check Spelling') ?></td><th>l</th><td><?php _e('Align Left') ?></td></tr>
-		<tr><th>j</th><td><?php _e('Justify Text') ?></td><th>c</th><td><?php _e('Align Center') ?></td></tr>
-		<tr><th>d</th><td><span style="text-decoration: line-through;"><?php _e('Strikethrough') ?></span></td><th>r</th><td><?php _e('Align Right') ?></td></tr>
-		<tr><th>u</th><td><strong>&bull;</strong> <?php _e('List') ?></td><th>a</th><td><?php _e('Insert link') ?></td></tr>
-		<tr><th>o</th><td>1. <?php _e('List') ?></td><th>s</th><td><?php _e('Remove link') ?></td></tr>
-		<tr><th>q</th><td><?php _e('Quote') ?></td><th>m</th><td><?php _e('Insert Image') ?></td></tr>
-		<tr><th>g</th><td><?php _e('Full Screen') ?></td><th>t</th><td><?php _e('Insert More Tag') ?></td></tr>
-		<tr><th>p</th><td><?php _e('Insert Page Break tag') ?></td><th>h</th><td><?php _e('Help') ?></td></tr>
-		<tr><th>e</th><td colspan="3"><?php _e('Switch to HTML mode') ?></td></tr>
-
-		<tr><th colspan="4" style="font-weight: normal;padding: 15px 10px 10px;"><?php _e('Editor width in Distraction-free writing mode:'); ?></th></tr>
-		<tr><th><span class="win">Alt +</span><span class="mac">Ctrl +</span></th><td><?php _e('Wider') ?></td>
-			<th><span class="win">Alt -</span><span class="mac">Ctrl -</span></th><td><?php _e('Narrower') ?></td></tr>
-		<tr><th><span class="win">Alt 0</span><span class="mac">Ctrl 0</span></th><td><?php _e('Default width') ?></td><th></th><td></td></tr>
-	</table>
-</div>
-
-<div id="content4" class="hidden">
-	<h2><?php _e('About TinyMCE'); ?></h2>
-
-    <p><?php _e('Version:'); ?> <span id="version"></span> (<span id="date"></span>)</p>
-	<p><?php printf(__('TinyMCE is a platform independent web based Javascript HTML WYSIWYG editor released as Open Source under %sLGPL</a>	by Moxiecode Systems AB. It has the ability to convert HTML TEXTAREA fields or other HTML elements to editor instances.'), '<a href="'.home_url('/wp-includes/js/tinymce/license.txt').'" target="_blank" title="'.esc_attr__('GNU Library General Public Licence').'">') ?></p>
-	<p><?php _e('Copyright &copy; 2003-2011, <a href="http://www.moxiecode.com" target="_blank">Moxiecode Systems AB</a>, All rights reserved.') ?></p>
-	<p><?php _e('For more information about this software visit the <a href="http://tinymce.moxiecode.com" target="_blank">TinyMCE website</a>.') ?></p>
-
-	<div id="buttoncontainer">
-		<a href="http://www.moxiecode.com" target="_blank"><img src="themes/advanced/img/gotmoxie.png" alt="<?php esc_attr_e('Got Moxie?') ?>" style="border: 0" /></a>
-	</div>
-
-</div>
-</div>
-
-<div class="mceActionPanel">
-	<div style="margin: 8px auto; text-align: center;padding-bottom: 10px;">
-		<input type="button" id="cancel" name="cancel" value="<?php esc_attr_e('Close'); ?>" title="<?php esc_attr_e('Close'); ?>" onclick="tinyMCEPopup.close();" />
-	</div>
-</div>
-
 </body>
 </html>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-includes/js/tinymce/wp-tinymce-schema.js	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,940 @@
+/**
+ * TinyMCE Schema.js
+ *
+ * Duck-punched by WordPress core to support a sane schema superset.
+ *
+ * Copyright, Moxiecode Systems AB
+ * Released under LGPL License.
+ *
+ * License: http://www.tinymce.com/license
+ * Contributing: http://www.tinymce.com/contributing
+ */
+
+(function(tinymce) {
+	var mapCache = {}, makeMap = tinymce.makeMap, each = tinymce.each;
+
+	function split(str, delim) {
+		return str.split(delim || ',');
+	};
+
+	/**
+	 * Unpacks the specified lookup and string data it will also parse it into an object
+	 * map with sub object for it's children. This will later also include the attributes.
+	 */
+	function unpack(lookup, data) {
+		var key, elements = {};
+
+		function replace(value) {
+			return value.replace(/[A-Z]+/g, function(key) {
+				return replace(lookup[key]);
+			});
+		};
+
+		// Unpack lookup
+		for (key in lookup) {
+			if (lookup.hasOwnProperty(key))
+				lookup[key] = replace(lookup[key]);
+		}
+
+		// Unpack and parse data into object map
+		replace(data).replace(/#/g, '#text').replace(/(\w+)\[([^\]]+)\]\[([^\]]*)\]/g, function(str, name, attributes, children) {
+			attributes = split(attributes, '|');
+
+			elements[name] = {
+				attributes : makeMap(attributes),
+				attributesOrder : attributes,
+				children : makeMap(children, '|', {'#comment' : {}})
+			}
+		});
+
+		return elements;
+	};
+
+	/**
+	 * Returns the HTML5 schema and caches it in the mapCache.
+	 */
+	function getHTML5() {
+		var html5 = mapCache.html5;
+
+		if (!html5) {
+			html5 = mapCache.html5 = unpack({
+					A : 'accesskey|class|contextmenu|dir|draggable|dropzone|hidden|id|inert|itemid|itemprop|itemref|itemscope|itemtype|lang|spellcheck|style|tabindex|title|translate|item|role|subject|onclick|ondblclick|onmousedown|onmouseup|onmouseover|onmousemove|onmouseout|onkeypress|onkeydown|onkeyup',
+					B : '#|a|abbr|area|audio|b|bdi|bdo|br|button|canvas|cite|code|command|data|datalist|del|dfn|em|embed|i|iframe|img|input|ins|kbd|keygen|label|link|map|mark|math|meta|meter|noscript|object|output|progress|q|ruby|s|samp|script|select|small|span|strong|sub|sup|svg|textarea|time|u|var|video|wbr',
+					C : '#|a|abbr|area|address|article|aside|audio|b|bdi|bdo|blockquote|br|button|canvas|cite|code|command|data|datalist|del|details|dfn|dialog|div|dl|em|embed|fieldset|figure|footer|form|h1|h2|h3|h4|h5|h6|header|hgroup|hr|i|iframe|img|input|ins|kbd|keygen|label|link|map|mark|math|menu|meta|meter|nav|noscript|ol|object|output|p|pre|progress|q|ruby|s|samp|script|section|select|small|span|strong|style|sub|sup|svg|table|textarea|time|u|ul|var|video|wbr'
+				}, 'html[A|manifest][body|head]' +
+					'head[A][base|command|link|meta|noscript|script|style|title]' +
+					'title[A][#]' +
+					'base[A|href|target][]' +
+					'link[A|href|rel|media|type|sizes|crossorigin|hreflang][]' +
+					'meta[A|http-equiv|name|content|charset][]' +
+					'style[A|type|media|scoped][#]' +
+					'script[A|charset|type|src|defer|async|crossorigin][#]' +
+					'noscript[A][C]' +
+					'body[A|onafterprint|onbeforeprint|onbeforeunload|onblur|onerror|onfocus|onfullscreenchange|onfullscreenerror|onhashchange|onload|onmessage|onoffline|ononline|onpagehide|onpageshow|onpopstate|onresize|onscroll|onstorage|onunload][C]' +
+					'section[A][C]' +
+					'nav[A][C]' +
+					'article[A][C]' +
+					'aside[A][C]' +
+					'h1[A][B]' +
+					'h2[A][B]' +
+					'h3[A][B]' +
+					'h4[A][B]' +
+					'h5[A][B]' +
+					'h6[A][B]' +
+					'hgroup[A][h1|h2|h3|h4|h5|h6]' +
+					'header[A][C]' +
+					'footer[A][C]' +
+					'address[A][C]' +
+					'p[A][B]' +
+					'br[A][]' +
+					'pre[A][B]' +
+					'dialog[A|open][C|dd|dt]' +
+					'blockquote[A|cite][C]' +
+					'ol[A|start|reversed][li]' +
+					'ul[A][li]' +
+					'li[A|value][C]' +
+					'dl[A][dd|dt]' +
+					'dt[A][C|B]' +
+					'dd[A][C]' +
+					'a[A|href|target|download|ping|rel|media|type][C|B]' +
+					'em[A][B]' +
+					'strong[A][B]' +
+					'small[A][B]' +
+					's[A][B]' +
+					'cite[A][B]' +
+					'q[A|cite][B]' +
+					'dfn[A][B]' +
+					'abbr[A][B]' +
+					'code[A][B]' +
+					'var[A][B]' +
+					'samp[A][B]' +
+					'kbd[A][B]' +
+					'sub[A][B]' +
+					'sup[A][B]' +
+					'i[A][B]' +
+					'b[A][B]' +
+					'u[A][B]' +
+					'mark[A][B]' +
+					'progress[A|value|max][B]' +
+					'meter[A|value|min|max|low|high|optimum][B]' +
+					'time[A|datetime][B]' +
+					'ruby[A][B|rt|rp]' +
+					'rt[A][B]' +
+					'rp[A][B]' +
+					'bdi[A][B]' +
+					'bdo[A][B]' +
+					'span[A][B]' +
+					'ins[A|cite|datetime][C|B]' +
+					'del[A|cite|datetime][C|B]' +
+					'figure[A][C|legend|figcaption]' +
+					'figcaption[A][C]' +
+					'img[A|alt|src|srcset|crossorigin|usemap|ismap|width|height][]' +
+					'iframe[A|name|src|srcdoc|height|width|sandbox|seamless|allowfullscreen][C|B]' +
+					'embed[A|src|height|width|type][]' +
+					'object[A|data|type|typemustmatch|name|usemap|form|width|height][C|B|param]' +
+					'param[A|name|value][]' +
+					'summary[A][B]' +
+					'details[A|open][C|legend|summary]' +
+					'command[A|type|label|icon|disabled|checked|radiogroup|command][]' +
+					'menu[A|type|label][C|li]' +
+					'legend[A][C|B]' +
+					'div[A][C]' +
+					'source[A|src|type|media][]' +
+					'track[A|kind|src|srclang|label|default][]' +
+					'audio[A|src|autobuffer|autoplay|loop|controls|crossorigin|preload|mediagroup|muted][C|source|track]' +
+					'video[A|src|autobuffer|autoplay|loop|controls|width|height|poster|crossorigin|preload|mediagroup|muted][C|source|track]' +
+					'hr[A][]' +
+					'form[A|accept-charset|action|autocomplete|enctype|method|name|novalidate|target][C]' +
+					'fieldset[A|disabled|form|name][C|legend]' +
+					'label[A|form|for][B]' +
+					'input[A|type|accept|alt|autocomplete|autofocus|checked|dirname|disabled|form|formaction|formenctype|formmethod|formnovalidate|formtarget|height|inputmode|list|max|maxlength|min|multiple|name|pattern|placeholder|readonly|required|size|src|step|value|width|files][]' +
+					'button[A|autofocus|disabled|form|formaction|formenctype|formmethod|formnovalidate|formtarget|name|type|value][B]' +
+					'select[A|autofocus|disabled|form|multiple|name|required|size][option|optgroup]' +
+					'data[A|value][B]' +
+					'datalist[A][B|option]' +
+					'optgroup[A|disabled|label][option]' +
+					'option[A|disabled|selected|label|value][#]' +
+					'textarea[A|autocomplete|autofocus|cols|dirname|disabled|form|inputmode|maxlength|name|placeholder|readonly|required|rows|wrap][#]' +
+					'keygen[A|autofocus|challenge|disabled|form|keytype|name][]' +
+					'output[A|for|form|name][B]' +
+					'canvas[A|width|height][a|button|input]' +
+					'map[A|name][C|B]' +
+					'area[A|alt|coords|shape|href|target|download|ping|rel|media|hreflang|type][]' +
+					'math[A][]' +
+					'svg[A][]' +
+					'table[A][caption|colgroup|thead|tfoot|tbody|tr]' +
+					'caption[A][C]' +
+					'colgroup[A|span][col]' +
+					'col[A|span][]' +
+					'thead[A][tr]' +
+					'tfoot[A][tr]' +
+					'tbody[A][tr]' +
+					'tr[A][th|td]' +
+					'th[A|headers|rowspan|colspan|scope][C]' +
+					'td[A|headers|rowspan|colspan][C]' +
+					'wbr[A][]'
+			);
+		}
+
+		return html5;
+	};
+
+	/**
+	 * Returns the HTML4 schema and caches it in the mapCache.
+	 */
+	function getHTML4() {
+		var html4 = mapCache.html4;
+
+		if (!html4) {
+			// This is the XHTML 1.0 transitional elements with it's attributes and children packed to reduce it's size
+			html4 = mapCache.html4 = unpack({
+				Z : 'H|K|N|O|P',
+				Y : 'X|form|R|Q',
+				ZG : 'E|span|width|align|char|charoff|valign',
+				X : 'p|T|div|U|W|isindex|fieldset|table',
+				ZF : 'E|align|char|charoff|valign',
+				W : 'pre|hr|blockquote|address|center|noframes',
+				ZE : 'abbr|axis|headers|scope|rowspan|colspan|align|char|charoff|valign|nowrap|bgcolor|width|height',
+				ZD : '[E][S]',
+				U : 'ul|ol|dl|menu|dir',
+				ZC : 'p|Y|div|U|W|table|br|span|bdo|object|applet|img|map|K|N|Q',
+				T : 'h1|h2|h3|h4|h5|h6',
+				ZB : 'X|S|Q',
+				S : 'R|P',
+				ZA : 'a|G|J|M|O|P',
+				R : 'a|H|K|N|O',
+				Q : 'noscript|P',
+				P : 'ins|del|script',
+				O : 'input|select|textarea|label|button',
+				N : 'M|L',
+				M : 'em|strong|dfn|code|q|samp|kbd|var|cite|abbr|acronym',
+				L : 'sub|sup',
+				K : 'J|I',
+				J : 'tt|i|b|u|s|strike',
+				I : 'big|small|font|basefont',
+				H : 'G|F',
+				G : 'br|span|bdo',
+				F : 'object|applet|img|map|iframe',
+				E : 'A|B|C',
+				D : 'accesskey|tabindex|onfocus|onblur',
+				C : 'onclick|ondblclick|onmousedown|onmouseup|onmouseover|onmousemove|onmouseout|onkeypress|onkeydown|onkeyup',
+				B : 'lang|xml:lang|dir',
+				A : 'id|class|style|title'
+			}, 'script[id|charset|type|language|src|defer|xml:space][]' +
+				'style[B|id|type|media|title|xml:space][]' +
+				'object[E|declare|classid|codebase|data|type|codetype|archive|standby|width|height|usemap|name|tabindex|align|border|hspace|vspace][#|param|Y]' +
+				'param[id|name|value|valuetype|type][]' +
+				'p[E|align][#|S]' +
+				'a[E|D|charset|type|name|href|hreflang|rel|rev|shape|coords|target][#|Z]' +
+				'br[A|clear][]' +
+				'span[E][#|S]' +
+				'bdo[A|C|B][#|S]' +
+				'applet[A|codebase|archive|code|object|alt|name|width|height|align|hspace|vspace][#|param|Y]' +
+				'h1[E|align][#|S]' +
+				'img[E|src|alt|name|longdesc|width|height|usemap|ismap|align|border|hspace|vspace][]' +
+				'map[B|C|A|name][X|form|Q|area]' +
+				'h2[E|align][#|S]' +
+				'iframe[A|longdesc|name|src|frameborder|marginwidth|marginheight|scrolling|align|width|height][#|Y]' +
+				'h3[E|align][#|S]' +
+				'tt[E][#|S]' +
+				'i[E][#|S]' +
+				'b[E][#|S]' +
+				'u[E][#|S]' +
+				's[E][#|S]' +
+				'strike[E][#|S]' +
+				'big[E][#|S]' +
+				'small[E][#|S]' +
+				'font[A|B|size|color|face][#|S]' +
+				'basefont[id|size|color|face][]' +
+				'em[E][#|S]' +
+				'strong[E][#|S]' +
+				'dfn[E][#|S]' +
+				'code[E][#|S]' +
+				'q[E|cite][#|S]' +
+				'samp[E][#|S]' +
+				'kbd[E][#|S]' +
+				'var[E][#|S]' +
+				'cite[E][#|S]' +
+				'abbr[E][#|S]' +
+				'acronym[E][#|S]' +
+				'sub[E][#|S]' +
+				'sup[E][#|S]' +
+				'input[E|D|type|name|value|checked|disabled|readonly|size|maxlength|src|alt|usemap|onselect|onchange|accept|align][]' +
+				'select[E|name|size|multiple|disabled|tabindex|onfocus|onblur|onchange][optgroup|option]' +
+				'optgroup[E|disabled|label][option]' +
+				'option[E|selected|disabled|label|value][]' +
+				'textarea[E|D|name|rows|cols|disabled|readonly|onselect|onchange][]' +
+				'label[E|for|accesskey|onfocus|onblur][#|S]' +
+				'button[E|D|name|value|type|disabled][#|p|T|div|U|W|table|G|object|applet|img|map|K|N|Q]' +
+				'h4[E|align][#|S]' +
+				'ins[E|cite|datetime][#|Y]' +
+				'h5[E|align][#|S]' +
+				'del[E|cite|datetime][#|Y]' +
+				'h6[E|align][#|S]' +
+				'div[E|align][#|Y]' +
+				'ul[E|type|compact][li]' +
+				'li[E|type|value][#|Y]' +
+				'ol[E|type|compact|start][li]' +
+				'dl[E|compact][dt|dd]' +
+				'dt[E][#|S]' +
+				'dd[E][#|Y]' +
+				'menu[E|compact][li]' +
+				'dir[E|compact][li]' +
+				'pre[E|width|xml:space][#|ZA]' +
+				'hr[E|align|noshade|size|width][]' +
+				'blockquote[E|cite][#|Y]' +
+				'address[E][#|S|p]' +
+				'center[E][#|Y]' +
+				'noframes[E][#|Y]' +
+				'isindex[A|B|prompt][]' +
+				'fieldset[E][#|legend|Y]' +
+				'legend[E|accesskey|align][#|S]' +
+				'table[E|summary|width|border|frame|rules|cellspacing|cellpadding|align|bgcolor][caption|col|colgroup|thead|tfoot|tbody|tr]' +
+				'caption[E|align][#|S]' +
+				'col[ZG][]' +
+				'colgroup[ZG][col]' +
+				'thead[ZF][tr]' +
+				'tr[ZF|bgcolor][th|td]' +
+				'th[E|ZE][#|Y]' +
+				'form[E|action|method|name|enctype|onsubmit|onreset|accept|accept-charset|target][#|X|R|Q]' +
+				'noscript[E][#|Y]' +
+				'td[E|ZE][#|Y]' +
+				'tfoot[ZF][tr]' +
+				'tbody[ZF][tr]' +
+				'area[E|D|shape|coords|href|nohref|alt|target][]' +
+				'base[id|href|target][]' +
+				'body[E|onload|onunload|background|bgcolor|text|link|vlink|alink][#|Y]'
+			);
+		}
+
+		return html4;
+	};
+
+	/**
+	 * WordPress Core
+	 *
+	 * Returns a schema that is the result of a deep merge between the HTML5
+	 * and HTML4 schemas.
+	 */
+	function getSaneSchema() {
+		var cachedMapCache = mapCache,
+			html5, html4;
+
+		if ( mapCache.sane )
+			return mapCache.sane;
+
+		// Bust the mapCache so we're not dealing with the other schema objects.
+		mapCache = {};
+		html5 = getHTML5();
+		html4 = getHTML4();
+		mapCache = cachedMapCache;
+
+		each( html4, function( html4settings, tag ) {
+			var html5settings = html5[ tag ],
+				difference = [];
+
+			// Merge tags missing in HTML5 mode.
+			if ( ! html5settings ) {
+				html5[ tag ] = html4settings;
+				return;
+			}
+
+			// Merge attributes missing from this HTML5 tag.
+			each( html4settings.attributes, function( attribute, key ) {
+				if ( ! html5settings.attributes[ key ] )
+					html5settings.attributes[ key ] = attribute;
+			});
+
+			// Merge any missing attributes into the attributes order.
+			each( html4settings.attributesOrder, function( key ) {
+				if ( -1 === tinymce.inArray( html5settings.attributesOrder, key ) )
+					difference.push( key );
+			});
+
+			html5settings.attributesOrder = html5settings.attributesOrder.concat( difference );
+
+			// Merge children missing from this HTML5 tag.
+			each( html4settings.children, function( child, key ) {
+				if ( ! html5settings.children[ key ] )
+					html5settings.children[ key ] = child;
+			});
+		});
+
+		return mapCache.sane = html5;
+	}
+
+	/**
+	 * Schema validator class.
+	 *
+	 * @class tinymce.html.Schema
+	 * @example
+	 *  if (tinymce.activeEditor.schema.isValidChild('p', 'span'))
+	 *    alert('span is valid child of p.');
+	 *
+	 *  if (tinymce.activeEditor.schema.getElementRule('p'))
+	 *    alert('P is a valid element.');
+	 *
+	 * @class tinymce.html.Schema
+	 * @version 3.4
+	 */
+
+	/**
+	 * Constructs a new Schema instance.
+	 *
+	 * @constructor
+	 * @method Schema
+	 * @param {Object} settings Name/value settings object.
+	 */
+	tinymce.html.Schema = function(settings) {
+		var self = this, elements = {}, children = {}, patternElements = [], validStyles, schemaItems;
+		var whiteSpaceElementsMap, selfClosingElementsMap, shortEndedElementsMap, boolAttrMap, blockElementsMap, nonEmptyElementsMap, customElementsMap = {};
+
+		// Creates an lookup table map object for the specified option or the default value
+		function createLookupTable(option, default_value, extend) {
+			var value = settings[option];
+
+			if (!value) {
+				// Get cached default map or make it if needed
+				value = mapCache[option];
+
+				if (!value) {
+					value = makeMap(default_value, ' ', makeMap(default_value.toUpperCase(), ' '));
+					value = tinymce.extend(value, extend);
+
+					mapCache[option] = value;
+				}
+			} else {
+				// Create custom map
+				value = makeMap(value, ',', makeMap(value.toUpperCase(), ' '));
+			}
+
+			return value;
+		};
+
+		settings = settings || {};
+
+		/**
+		 * WordPress core uses a sane schema in place of the default "HTML5" schema.
+		 */
+		schemaItems = settings.schema == "html5" ? getSaneSchema() : getHTML4();
+
+		// Allow all elements and attributes if verify_html is set to false
+		if (settings.verify_html === false)
+			settings.valid_elements = '*[*]';
+
+		// Build styles list
+		if (settings.valid_styles) {
+			validStyles = {};
+
+			// Convert styles into a rule list
+			each(settings.valid_styles, function(value, key) {
+				validStyles[key] = tinymce.explode(value);
+			});
+		}
+
+		// Setup map objects
+		whiteSpaceElementsMap = createLookupTable('whitespace_elements', 'pre script noscript style textarea');
+		selfClosingElementsMap = createLookupTable('self_closing_elements', 'colgroup dd dt li option p td tfoot th thead tr');
+		shortEndedElementsMap = createLookupTable('short_ended_elements', 'area base basefont br col frame hr img input isindex link meta param embed source wbr');
+		boolAttrMap = createLookupTable('boolean_attributes', 'checked compact declare defer disabled ismap multiple nohref noresize noshade nowrap readonly selected autoplay loop controls');
+		nonEmptyElementsMap = createLookupTable('non_empty_elements', 'td th iframe video audio object', shortEndedElementsMap);
+		textBlockElementsMap = createLookupTable('text_block_elements', 'h1 h2 h3 h4 h5 h6 p div address pre form ' +
+						'blockquote center dir fieldset header footer article section hgroup aside nav figure');
+		blockElementsMap = createLookupTable('block_elements', 'hr table tbody thead tfoot ' +
+						'th tr td li ol ul caption dl dt dd noscript menu isindex samp option datalist select optgroup', textBlockElementsMap);
+
+		// Converts a wildcard expression string to a regexp for example *a will become /.*a/.
+		function patternToRegExp(str) {
+			return new RegExp('^' + str.replace(/([?+*])/g, '.$1') + '$');
+		};
+
+		// Parses the specified valid_elements string and adds to the current rules
+		// This function is a bit hard to read since it's heavily optimized for speed
+		function addValidElements(valid_elements) {
+			var ei, el, ai, al, yl, matches, element, attr, attrData, elementName, attrName, attrType, attributes, attributesOrder,
+				prefix, outputName, globalAttributes, globalAttributesOrder, transElement, key, childKey, value,
+				elementRuleRegExp = /^([#+\-])?([^\[\/]+)(?:\/([^\[]+))?(?:\[([^\]]+)\])?$/,
+				attrRuleRegExp = /^([!\-])?(\w+::\w+|[^=:<]+)?(?:([=:<])(.*))?$/,
+				hasPatternsRegExp = /[*?+]/;
+
+			if (valid_elements) {
+				// Split valid elements into an array with rules
+				valid_elements = split(valid_elements);
+
+				if (elements['@']) {
+					globalAttributes = elements['@'].attributes;
+					globalAttributesOrder = elements['@'].attributesOrder;
+				}
+
+				// Loop all rules
+				for (ei = 0, el = valid_elements.length; ei < el; ei++) {
+					// Parse element rule
+					matches = elementRuleRegExp.exec(valid_elements[ei]);
+					if (matches) {
+						// Setup local names for matches
+						prefix = matches[1];
+						elementName = matches[2];
+						outputName = matches[3];
+						attrData = matches[4];
+
+						// Create new attributes and attributesOrder
+						attributes = {};
+						attributesOrder = [];
+
+						// Create the new element
+						element = {
+							attributes : attributes,
+							attributesOrder : attributesOrder
+						};
+
+						// Padd empty elements prefix
+						if (prefix === '#')
+							element.paddEmpty = true;
+
+						// Remove empty elements prefix
+						if (prefix === '-')
+							element.removeEmpty = true;
+
+						// Copy attributes from global rule into current rule
+						if (globalAttributes) {
+							for (key in globalAttributes)
+								attributes[key] = globalAttributes[key];
+
+							attributesOrder.push.apply(attributesOrder, globalAttributesOrder);
+						}
+
+						// Attributes defined
+						if (attrData) {
+							attrData = split(attrData, '|');
+							for (ai = 0, al = attrData.length; ai < al; ai++) {
+								matches = attrRuleRegExp.exec(attrData[ai]);
+								if (matches) {
+									attr = {};
+									attrType = matches[1];
+									attrName = matches[2].replace(/::/g, ':');
+									prefix = matches[3];
+									value = matches[4];
+
+									// Required
+									if (attrType === '!') {
+										element.attributesRequired = element.attributesRequired || [];
+										element.attributesRequired.push(attrName);
+										attr.required = true;
+									}
+
+									// Denied from global
+									if (attrType === '-') {
+										delete attributes[attrName];
+										attributesOrder.splice(tinymce.inArray(attributesOrder, attrName), 1);
+										continue;
+									}
+
+									// Default value
+									if (prefix) {
+										// Default value
+										if (prefix === '=') {
+											element.attributesDefault = element.attributesDefault || [];
+											element.attributesDefault.push({name: attrName, value: value});
+											attr.defaultValue = value;
+										}
+
+										// Forced value
+										if (prefix === ':') {
+											element.attributesForced = element.attributesForced || [];
+											element.attributesForced.push({name: attrName, value: value});
+											attr.forcedValue = value;
+										}
+
+										// Required values
+										if (prefix === '<')
+											attr.validValues = makeMap(value, '?');
+									}
+
+									// Check for attribute patterns
+									if (hasPatternsRegExp.test(attrName)) {
+										element.attributePatterns = element.attributePatterns || [];
+										attr.pattern = patternToRegExp(attrName);
+										element.attributePatterns.push(attr);
+									} else {
+										// Add attribute to order list if it doesn't already exist
+										if (!attributes[attrName])
+											attributesOrder.push(attrName);
+
+										attributes[attrName] = attr;
+									}
+								}
+							}
+						}
+
+						// Global rule, store away these for later usage
+						if (!globalAttributes && elementName == '@') {
+							globalAttributes = attributes;
+							globalAttributesOrder = attributesOrder;
+						}
+
+						// Handle substitute elements such as b/strong
+						if (outputName) {
+							element.outputName = elementName;
+							elements[outputName] = element;
+						}
+
+						// Add pattern or exact element
+						if (hasPatternsRegExp.test(elementName)) {
+							element.pattern = patternToRegExp(elementName);
+							patternElements.push(element);
+						} else
+							elements[elementName] = element;
+					}
+				}
+			}
+		};
+
+		function setValidElements(valid_elements) {
+			elements = {};
+			patternElements = [];
+
+			addValidElements(valid_elements);
+
+			each(schemaItems, function(element, name) {
+				children[name] = element.children;
+			});
+		};
+
+		// Adds custom non HTML elements to the schema
+		function addCustomElements(custom_elements) {
+			var customElementRegExp = /^(~)?(.+)$/;
+
+			if (custom_elements) {
+				each(split(custom_elements), function(rule) {
+					var matches = customElementRegExp.exec(rule),
+						inline = matches[1] === '~',
+						cloneName = inline ? 'span' : 'div',
+						name = matches[2];
+
+					children[name] = children[cloneName];
+					customElementsMap[name] = cloneName;
+
+					// If it's not marked as inline then add it to valid block elements
+					if (!inline) {
+						blockElementsMap[name.toUpperCase()] = {};
+						blockElementsMap[name] = {};
+					}
+
+					// Add elements clone if needed
+					if (!elements[name]) {
+						elements[name] = elements[cloneName];
+					}
+
+					// Add custom elements at span/div positions
+					each(children, function(element, child) {
+						if (element[cloneName])
+							element[name] = element[cloneName];
+					});
+				});
+			}
+		};
+
+		// Adds valid children to the schema object
+		function addValidChildren(valid_children) {
+			var childRuleRegExp = /^([+\-]?)(\w+)\[([^\]]+)\]$/;
+
+			if (valid_children) {
+				each(split(valid_children), function(rule) {
+					var matches = childRuleRegExp.exec(rule), parent, prefix;
+
+					if (matches) {
+						prefix = matches[1];
+
+						// Add/remove items from default
+						if (prefix)
+							parent = children[matches[2]];
+						else
+							parent = children[matches[2]] = {'#comment' : {}};
+
+						parent = children[matches[2]];
+
+						each(split(matches[3], '|'), function(child) {
+							if (prefix === '-')
+								delete parent[child];
+							else
+								parent[child] = {};
+						});
+					}
+				});
+			}
+		};
+
+		function getElementRule(name) {
+			var element = elements[name], i;
+
+			// Exact match found
+			if (element)
+				return element;
+
+			// No exact match then try the patterns
+			i = patternElements.length;
+			while (i--) {
+				element = patternElements[i];
+
+				if (element.pattern.test(name))
+					return element;
+			}
+		};
+
+		if (!settings.valid_elements) {
+			// No valid elements defined then clone the elements from the schema spec
+			each(schemaItems, function(element, name) {
+				elements[name] = {
+					attributes : element.attributes,
+					attributesOrder : element.attributesOrder
+				};
+
+				children[name] = element.children;
+			});
+
+			// Switch these on HTML4
+			if (settings.schema != "html5") {
+				each(split('strong/b,em/i'), function(item) {
+					item = split(item, '/');
+					elements[item[1]].outputName = item[0];
+				});
+			}
+
+			// Add default alt attribute for images
+			elements.img.attributesDefault = [{name: 'alt', value: ''}];
+
+			// Remove these if they are empty by default
+			each(split('ol,ul,sub,sup,blockquote,span,font,a,table,tbody,tr,strong,em,b,i'), function(name) {
+				if (elements[name]) {
+					elements[name].removeEmpty = true;
+				}
+			});
+
+			// Padd these by default
+			each(split('p,h1,h2,h3,h4,h5,h6,th,td,pre,div,address,caption'), function(name) {
+				elements[name].paddEmpty = true;
+			});
+		} else
+			setValidElements(settings.valid_elements);
+
+		addCustomElements(settings.custom_elements);
+		addValidChildren(settings.valid_children);
+		addValidElements(settings.extended_valid_elements);
+
+		// Todo: Remove this when we fix list handling to be valid
+		addValidChildren('+ol[ul|ol],+ul[ul|ol]');
+
+		// Delete invalid elements
+		if (settings.invalid_elements) {
+			tinymce.each(tinymce.explode(settings.invalid_elements), function(item) {
+				if (elements[item])
+					delete elements[item];
+			});
+		}
+
+		// If the user didn't allow span only allow internal spans
+		if (!getElementRule('span'))
+			addValidElements('span[!data-mce-type|*]');
+
+		/**
+		 * Name/value map object with valid parents and children to those parents.
+		 *
+		 * @example
+		 * children = {
+		 *    div:{p:{}, h1:{}}
+		 * };
+		 * @field children
+		 * @type {Object}
+		 */
+		self.children = children;
+
+		/**
+		 * Name/value map object with valid styles for each element.
+		 *
+		 * @field styles
+		 * @type {Object}
+		 */
+		self.styles = validStyles;
+
+		/**
+		 * Returns a map with boolean attributes.
+		 *
+		 * @method getBoolAttrs
+		 * @return {Object} Name/value lookup map for boolean attributes.
+		 */
+		self.getBoolAttrs = function() {
+			return boolAttrMap;
+		};
+
+		/**
+		 * Returns a map with block elements.
+		 *
+		 * @method getBlockElements
+		 * @return {Object} Name/value lookup map for block elements.
+		 */
+		self.getBlockElements = function() {
+			return blockElementsMap;
+		};
+
+		/**
+		 * Returns a map with text block elements. Such as: p,h1-h6,div,address
+		 *
+		 * @method getTextBlockElements
+		 * @return {Object} Name/value lookup map for block elements.
+		 */
+		self.getTextBlockElements = function() {
+			return textBlockElementsMap;
+		};
+
+		/**
+		 * Returns a map with short ended elements such as BR or IMG.
+		 *
+		 * @method getShortEndedElements
+		 * @return {Object} Name/value lookup map for short ended elements.
+		 */
+		self.getShortEndedElements = function() {
+			return shortEndedElementsMap;
+		};
+
+		/**
+		 * Returns a map with self closing tags such as <li>.
+		 *
+		 * @method getSelfClosingElements
+		 * @return {Object} Name/value lookup map for self closing tags elements.
+		 */
+		self.getSelfClosingElements = function() {
+			return selfClosingElementsMap;
+		};
+
+		/**
+		 * Returns a map with elements that should be treated as contents regardless if it has text
+		 * content in them or not such as TD, VIDEO or IMG.
+		 *
+		 * @method getNonEmptyElements
+		 * @return {Object} Name/value lookup map for non empty elements.
+		 */
+		self.getNonEmptyElements = function() {
+			return nonEmptyElementsMap;
+		};
+
+		/**
+		 * Returns a map with elements where white space is to be preserved like PRE or SCRIPT.
+		 *
+		 * @method getWhiteSpaceElements
+		 * @return {Object} Name/value lookup map for white space elements.
+		 */
+		self.getWhiteSpaceElements = function() {
+			return whiteSpaceElementsMap;
+		};
+
+		/**
+		 * Returns true/false if the specified element and it's child is valid or not
+		 * according to the schema.
+		 *
+		 * @method isValidChild
+		 * @param {String} name Element name to check for.
+		 * @param {String} child Element child to verify.
+		 * @return {Boolean} True/false if the element is a valid child of the specified parent.
+		 */
+		self.isValidChild = function(name, child) {
+			var parent = children[name];
+
+			return !!(parent && parent[child]);
+		};
+
+		/**
+		 * Returns true/false if the specified element name and optional attribute is
+		 * valid according to the schema.
+		 *
+		 * @method isValid
+		 * @param {String} name Name of element to check.
+		 * @param {String} attr Optional attribute name to check for.
+		 * @return {Boolean} True/false if the element and attribute is valid.
+		 */
+		self.isValid = function(name, attr) {
+			var attrPatterns, i, rule = getElementRule(name);
+
+			// Check if it's a valid element
+			if (rule) {
+				if (attr) {
+					// Check if attribute name exists
+					if (rule.attributes[attr]) {
+						return true;
+					}
+
+					// Check if attribute matches a regexp pattern
+					attrPatterns = rule.attributePatterns;
+					if (attrPatterns) {
+						i = attrPatterns.length;
+						while (i--) {
+							if (attrPatterns[i].pattern.test(name)) {
+								return true;
+							}
+						}
+					}
+				} else {
+					return true;
+				}
+			}
+
+			// No match
+			return false;
+		};
+
+		/**
+		 * Returns true/false if the specified element is valid or not
+		 * according to the schema.
+		 *
+		 * @method getElementRule
+		 * @param {String} name Element name to check for.
+		 * @return {Object} Element object or undefined if the element isn't valid.
+		 */
+		self.getElementRule = getElementRule;
+
+		/**
+		 * Returns an map object of all custom elements.
+		 *
+		 * @method getCustomElements
+		 * @return {Object} Name/value map object of all custom elements.
+		 */
+		self.getCustomElements = function() {
+			return customElementsMap;
+		};
+
+		/**
+		 * Parses a valid elements string and adds it to the schema. The valid elements format is for example "element[attr=default|otherattr]".
+		 * Existing rules will be replaced with the ones specified, so this extends the schema.
+		 *
+		 * @method addValidElements
+		 * @param {String} valid_elements String in the valid elements format to be parsed.
+		 */
+		self.addValidElements = addValidElements;
+
+		/**
+		 * Parses a valid elements string and sets it to the schema. The valid elements format is for example "element[attr=default|otherattr]".
+		 * Existing rules will be replaced with the ones specified, so this extends the schema.
+		 *
+		 * @method setValidElements
+		 * @param {String} valid_elements String in the valid elements format to be parsed.
+		 */
+		self.setValidElements = setValidElements;
+
+		/**
+		 * Adds custom non HTML elements to the schema.
+		 *
+		 * @method addCustomElements
+		 * @param {String} custom_elements Comma separated list of custom elements to add.
+		 */
+		self.addCustomElements = addCustomElements;
+
+		/**
+		 * Parses a valid children string and adds them to the schema structure. The valid children format is for example: "element[child1|child2]".
+		 *
+		 * @method addValidChildren
+		 * @param {String} valid_children Valid children elements string to parse
+		 */
+		self.addValidChildren = addValidChildren;
+
+		self.elements = elements;
+	};
+})(tinymce);
Binary file web/wp-includes/js/tinymce/wp-tinymce.js.gz has changed
--- a/web/wp-includes/js/tinymce/wp-tinymce.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/js/tinymce/wp-tinymce.php	Wed Dec 19 17:46:52 2012 -0800
@@ -19,7 +19,7 @@
 	return @file_get_contents($path);
 }
 
-$expires_offset = 31536000;
+$expires_offset = 31536000; // 1 year
 
 header('Content-Type: application/x-javascript; charset=UTF-8');
 header('Vary: Accept-Encoding'); // Handle proxies
@@ -33,5 +33,6 @@
 	echo $file;
 } else {
 	echo get_file($basepath . '/tiny_mce.js');
+	echo get_file($basepath . '/wp-tinymce-schema.js');
 }
 exit;
--- a/web/wp-includes/js/tw-sack.dev.js	Wed Dec 19 12:35:13 2012 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,193 +0,0 @@
-/* Simple AJAX Code-Kit (SACK) v1.6.1 */
-/* ©2005 Gregory Wild-Smith */
-/* www.twilightuniverse.com */
-/* Software licenced under a modified X11 licence,
-   see documentation or authors website for more details */
-
-function sack(file) {
-	this.xmlhttp = null;
-
-	this.resetData = function() {
-		this.method = "POST";
-  		this.queryStringSeparator = "?";
-		this.argumentSeparator = "&";
-		this.URLString = "";
-		this.encodeURIString = true;
-  		this.execute = false;
-  		this.element = null;
-		this.elementObj = null;
-		this.requestFile = file;
-		this.vars = new Object();
-		this.responseStatus = new Array(2);
-  	};
-
-	this.resetFunctions = function() {
-  		this.onLoading = function() { };
-  		this.onLoaded = function() { };
-  		this.onInteractive = function() { };
-  		this.onCompletion = function() { };
-  		this.onError = function() { };
-		this.onFail = function() { };
-	};
-
-	this.reset = function() {
-		this.resetFunctions();
-		this.resetData();
-	};
-
-	this.createAJAX = function() {
-		try {
-			this.xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
-		} catch (e1) {
-			try {
-				this.xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
-			} catch (e2) {
-				this.xmlhttp = null;
-			}
-		}
-
-		if (! this.xmlhttp) {
-			if (typeof XMLHttpRequest != "undefined") {
-				this.xmlhttp = new XMLHttpRequest();
-			} else {
-				this.failed = true;
-			}
-		}
-	};
-
-	this.setVar = function(name, value){
-		this.vars[name] = Array(value, false);
-	};
-
-	this.encVar = function(name, value, returnvars) {
-		if (true == returnvars) {
-			return Array(encodeURIComponent(name), encodeURIComponent(value));
-		} else {
-			this.vars[encodeURIComponent(name)] = Array(encodeURIComponent(value), true);
-		}
-	}
-
-	this.processURLString = function(string, encode) {
-		encoded = encodeURIComponent(this.argumentSeparator);
-		regexp = new RegExp(this.argumentSeparator + "|" + encoded);
-		varArray = string.split(regexp);
-		for (i = 0; i < varArray.length; i++){
-			urlVars = varArray[i].split("=");
-			if (true == encode){
-				this.encVar(urlVars[0], urlVars[1]);
-			} else {
-				this.setVar(urlVars[0], urlVars[1]);
-			}
-		}
-	}
-
-	this.createURLString = function(urlstring) {
-		if (this.encodeURIString && this.URLString.length) {
-			this.processURLString(this.URLString, true);
-		}
-
-		if (urlstring) {
-			if (this.URLString.length) {
-				this.URLString += this.argumentSeparator + urlstring;
-			} else {
-				this.URLString = urlstring;
-			}
-		}
-
-		// prevents caching of URLString
-		this.setVar("rndval", new Date().getTime());
-
-		urlstringtemp = new Array();
-		for (key in this.vars) {
-			if (false == this.vars[key][1] && true == this.encodeURIString) {
-				encoded = this.encVar(key, this.vars[key][0], true);
-				delete this.vars[key];
-				this.vars[encoded[0]] = Array(encoded[1], true);
-				key = encoded[0];
-			}
-
-			urlstringtemp[urlstringtemp.length] = key + "=" + this.vars[key][0];
-		}
-		if (urlstring){
-			this.URLString += this.argumentSeparator + urlstringtemp.join(this.argumentSeparator);
-		} else {
-			this.URLString += urlstringtemp.join(this.argumentSeparator);
-		}
-	}
-
-	this.runResponse = function() {
-		eval(this.response);
-	}
-
-	this.runAJAX = function(urlstring) {
-		if (this.failed) {
-			this.onFail();
-		} else {
-			this.createURLString(urlstring);
-			if (this.element) {
-				this.elementObj = document.getElementById(this.element);
-			}
-			if (this.xmlhttp) {
-				var self = this;
-				if (this.method == "GET") {
-					totalurlstring = this.requestFile + this.queryStringSeparator + this.URLString;
-					this.xmlhttp.open(this.method, totalurlstring, true);
-				} else {
-					this.xmlhttp.open(this.method, this.requestFile, true);
-					try {
-						this.xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded")
-					} catch (e) { }
-				}
-
-				this.xmlhttp.onreadystatechange = function() {
-					switch (self.xmlhttp.readyState) {
-						case 1:
-							self.onLoading();
-							break;
-						case 2:
-							self.onLoaded();
-							break;
-						case 3:
-							self.onInteractive();
-							break;
-						case 4:
-							self.response = self.xmlhttp.responseText;
-							self.responseXML = self.xmlhttp.responseXML;
-							self.responseStatus[0] = self.xmlhttp.status;
-							self.responseStatus[1] = self.xmlhttp.statusText;
-
-							if (self.execute) {
-								self.runResponse();
-							}
-
-							if (self.elementObj) {
-								elemNodeName = self.elementObj.nodeName;
-								elemNodeName.toLowerCase();
-								if (elemNodeName == "input"
-								|| elemNodeName == "select"
-								|| elemNodeName == "option"
-								|| elemNodeName == "textarea") {
-									self.elementObj.value = self.response;
-								} else {
-									self.elementObj.innerHTML = self.response;
-								}
-							}
-							if (self.responseStatus[0] == "200") {
-								self.onCompletion();
-							} else {
-								self.onError();
-							}
-
-							self.URLString = "";
-							break;
-					}
-				};
-
-				this.xmlhttp.send(this.URLString);
-			}
-		}
-	};
-
-	this.reset();
-	this.createAJAX();
-}
--- a/web/wp-includes/js/tw-sack.js	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/js/tw-sack.js	Wed Dec 19 17:46:52 2012 -0800
@@ -1,1 +1,193 @@
-function sack(file){this.xmlhttp=null;this.resetData=function(){this.method="POST";this.queryStringSeparator="?";this.argumentSeparator="&";this.URLString="";this.encodeURIString=true;this.execute=false;this.element=null;this.elementObj=null;this.requestFile=file;this.vars=new Object();this.responseStatus=new Array(2)};this.resetFunctions=function(){this.onLoading=function(){};this.onLoaded=function(){};this.onInteractive=function(){};this.onCompletion=function(){};this.onError=function(){};this.onFail=function(){}};this.reset=function(){this.resetFunctions();this.resetData()};this.createAJAX=function(){try{this.xmlhttp=new ActiveXObject("Msxml2.XMLHTTP")}catch(e1){try{this.xmlhttp=new ActiveXObject("Microsoft.XMLHTTP")}catch(e2){this.xmlhttp=null}}if(!this.xmlhttp){if(typeof XMLHttpRequest!="undefined"){this.xmlhttp=new XMLHttpRequest()}else{this.failed=true}}};this.setVar=function(name,value){this.vars[name]=Array(value,false)};this.encVar=function(name,value,returnvars){if(true==returnvars){return Array(encodeURIComponent(name),encodeURIComponent(value))}else{this.vars[encodeURIComponent(name)]=Array(encodeURIComponent(value),true)}};this.processURLString=function(string,encode){encoded=encodeURIComponent(this.argumentSeparator);regexp=new RegExp(this.argumentSeparator+"|"+encoded);varArray=string.split(regexp);for(i=0;i<varArray.length;i++){urlVars=varArray[i].split("=");if(true==encode){this.encVar(urlVars[0],urlVars[1])}else{this.setVar(urlVars[0],urlVars[1])}}};this.createURLString=function(urlstring){if(this.encodeURIString&&this.URLString.length){this.processURLString(this.URLString,true)}if(urlstring){if(this.URLString.length){this.URLString+=this.argumentSeparator+urlstring}else{this.URLString=urlstring}}this.setVar("rndval",new Date().getTime());urlstringtemp=new Array();for(key in this.vars){if(false==this.vars[key][1]&&true==this.encodeURIString){encoded=this.encVar(key,this.vars[key][0],true);delete this.vars[key];this.vars[encoded[0]]=Array(encoded[1],true);key=encoded[0]}urlstringtemp[urlstringtemp.length]=key+"="+this.vars[key][0]}if(urlstring){this.URLString+=this.argumentSeparator+urlstringtemp.join(this.argumentSeparator)}else{this.URLString+=urlstringtemp.join(this.argumentSeparator)}};this.runResponse=function(){eval(this.response)};this.runAJAX=function(urlstring){if(this.failed){this.onFail()}else{this.createURLString(urlstring);if(this.element){this.elementObj=document.getElementById(this.element)}if(this.xmlhttp){var self=this;if(this.method=="GET"){totalurlstring=this.requestFile+this.queryStringSeparator+this.URLString;this.xmlhttp.open(this.method,totalurlstring,true)}else{this.xmlhttp.open(this.method,this.requestFile,true);try{this.xmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded")}catch(e){}}this.xmlhttp.onreadystatechange=function(){switch(self.xmlhttp.readyState){case 1:self.onLoading();break;case 2:self.onLoaded();break;case 3:self.onInteractive();break;case 4:self.response=self.xmlhttp.responseText;self.responseXML=self.xmlhttp.responseXML;self.responseStatus[0]=self.xmlhttp.status;self.responseStatus[1]=self.xmlhttp.statusText;if(self.execute){self.runResponse()}if(self.elementObj){elemNodeName=self.elementObj.nodeName;elemNodeName.toLowerCase();if(elemNodeName=="input"||elemNodeName=="select"||elemNodeName=="option"||elemNodeName=="textarea"){self.elementObj.value=self.response}else{self.elementObj.innerHTML=self.response}}if(self.responseStatus[0]=="200"){self.onCompletion()}else{self.onError()}self.URLString="";break}};this.xmlhttp.send(this.URLString)}}};this.reset();this.createAJAX()};
\ No newline at end of file
+/* Simple AJAX Code-Kit (SACK) v1.6.1 */
+/* ©2005 Gregory Wild-Smith */
+/* www.twilightuniverse.com */
+/* Software licenced under a modified X11 licence,
+   see documentation or authors website for more details */
+
+function sack(file) {
+	this.xmlhttp = null;
+
+	this.resetData = function() {
+		this.method = "POST";
+  		this.queryStringSeparator = "?";
+		this.argumentSeparator = "&";
+		this.URLString = "";
+		this.encodeURIString = true;
+  		this.execute = false;
+  		this.element = null;
+		this.elementObj = null;
+		this.requestFile = file;
+		this.vars = new Object();
+		this.responseStatus = new Array(2);
+  	};
+
+	this.resetFunctions = function() {
+  		this.onLoading = function() { };
+  		this.onLoaded = function() { };
+  		this.onInteractive = function() { };
+  		this.onCompletion = function() { };
+  		this.onError = function() { };
+		this.onFail = function() { };
+	};
+
+	this.reset = function() {
+		this.resetFunctions();
+		this.resetData();
+	};
+
+	this.createAJAX = function() {
+		try {
+			this.xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
+		} catch (e1) {
+			try {
+				this.xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
+			} catch (e2) {
+				this.xmlhttp = null;
+			}
+		}
+
+		if (! this.xmlhttp) {
+			if (typeof XMLHttpRequest != "undefined") {
+				this.xmlhttp = new XMLHttpRequest();
+			} else {
+				this.failed = true;
+			}
+		}
+	};
+
+	this.setVar = function(name, value){
+		this.vars[name] = Array(value, false);
+	};
+
+	this.encVar = function(name, value, returnvars) {
+		if (true == returnvars) {
+			return Array(encodeURIComponent(name), encodeURIComponent(value));
+		} else {
+			this.vars[encodeURIComponent(name)] = Array(encodeURIComponent(value), true);
+		}
+	}
+
+	this.processURLString = function(string, encode) {
+		encoded = encodeURIComponent(this.argumentSeparator);
+		regexp = new RegExp(this.argumentSeparator + "|" + encoded);
+		varArray = string.split(regexp);
+		for (i = 0; i < varArray.length; i++){
+			urlVars = varArray[i].split("=");
+			if (true == encode){
+				this.encVar(urlVars[0], urlVars[1]);
+			} else {
+				this.setVar(urlVars[0], urlVars[1]);
+			}
+		}
+	}
+
+	this.createURLString = function(urlstring) {
+		if (this.encodeURIString && this.URLString.length) {
+			this.processURLString(this.URLString, true);
+		}
+
+		if (urlstring) {
+			if (this.URLString.length) {
+				this.URLString += this.argumentSeparator + urlstring;
+			} else {
+				this.URLString = urlstring;
+			}
+		}
+
+		// prevents caching of URLString
+		this.setVar("rndval", new Date().getTime());
+
+		urlstringtemp = new Array();
+		for (key in this.vars) {
+			if (false == this.vars[key][1] && true == this.encodeURIString) {
+				encoded = this.encVar(key, this.vars[key][0], true);
+				delete this.vars[key];
+				this.vars[encoded[0]] = Array(encoded[1], true);
+				key = encoded[0];
+			}
+
+			urlstringtemp[urlstringtemp.length] = key + "=" + this.vars[key][0];
+		}
+		if (urlstring){
+			this.URLString += this.argumentSeparator + urlstringtemp.join(this.argumentSeparator);
+		} else {
+			this.URLString += urlstringtemp.join(this.argumentSeparator);
+		}
+	}
+
+	this.runResponse = function() {
+		eval(this.response);
+	}
+
+	this.runAJAX = function(urlstring) {
+		if (this.failed) {
+			this.onFail();
+		} else {
+			this.createURLString(urlstring);
+			if (this.element) {
+				this.elementObj = document.getElementById(this.element);
+			}
+			if (this.xmlhttp) {
+				var self = this;
+				if (this.method == "GET") {
+					totalurlstring = this.requestFile + this.queryStringSeparator + this.URLString;
+					this.xmlhttp.open(this.method, totalurlstring, true);
+				} else {
+					this.xmlhttp.open(this.method, this.requestFile, true);
+					try {
+						this.xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded")
+					} catch (e) { }
+				}
+
+				this.xmlhttp.onreadystatechange = function() {
+					switch (self.xmlhttp.readyState) {
+						case 1:
+							self.onLoading();
+							break;
+						case 2:
+							self.onLoaded();
+							break;
+						case 3:
+							self.onInteractive();
+							break;
+						case 4:
+							self.response = self.xmlhttp.responseText;
+							self.responseXML = self.xmlhttp.responseXML;
+							self.responseStatus[0] = self.xmlhttp.status;
+							self.responseStatus[1] = self.xmlhttp.statusText;
+
+							if (self.execute) {
+								self.runResponse();
+							}
+
+							if (self.elementObj) {
+								elemNodeName = self.elementObj.nodeName;
+								elemNodeName.toLowerCase();
+								if (elemNodeName == "input"
+								|| elemNodeName == "select"
+								|| elemNodeName == "option"
+								|| elemNodeName == "textarea") {
+									self.elementObj.value = self.response;
+								} else {
+									self.elementObj.innerHTML = self.response;
+								}
+							}
+							if (self.responseStatus[0] == "200") {
+								self.onCompletion();
+							} else {
+								self.onError();
+							}
+
+							self.URLString = "";
+							break;
+					}
+				};
+
+				this.xmlhttp.send(this.URLString);
+			}
+		}
+	};
+
+	this.reset();
+	this.createAJAX();
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-includes/js/tw-sack.min.js	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,1 @@
+function sack(file){this.xmlhttp=null;this.resetData=function(){this.method="POST";this.queryStringSeparator="?";this.argumentSeparator="&";this.URLString="";this.encodeURIString=true;this.execute=false;this.element=null;this.elementObj=null;this.requestFile=file;this.vars=new Object();this.responseStatus=new Array(2)};this.resetFunctions=function(){this.onLoading=function(){};this.onLoaded=function(){};this.onInteractive=function(){};this.onCompletion=function(){};this.onError=function(){};this.onFail=function(){}};this.reset=function(){this.resetFunctions();this.resetData()};this.createAJAX=function(){try{this.xmlhttp=new ActiveXObject("Msxml2.XMLHTTP")}catch(e1){try{this.xmlhttp=new ActiveXObject("Microsoft.XMLHTTP")}catch(e2){this.xmlhttp=null}}if(!this.xmlhttp){if(typeof XMLHttpRequest!="undefined"){this.xmlhttp=new XMLHttpRequest()}else{this.failed=true}}};this.setVar=function(name,value){this.vars[name]=Array(value,false)};this.encVar=function(name,value,returnvars){if(true==returnvars){return Array(encodeURIComponent(name),encodeURIComponent(value))}else{this.vars[encodeURIComponent(name)]=Array(encodeURIComponent(value),true)}};this.processURLString=function(string,encode){encoded=encodeURIComponent(this.argumentSeparator);regexp=new RegExp(this.argumentSeparator+"|"+encoded);varArray=string.split(regexp);for(i=0;i<varArray.length;i++){urlVars=varArray[i].split("=");if(true==encode){this.encVar(urlVars[0],urlVars[1])}else{this.setVar(urlVars[0],urlVars[1])}}};this.createURLString=function(urlstring){if(this.encodeURIString&&this.URLString.length){this.processURLString(this.URLString,true)}if(urlstring){if(this.URLString.length){this.URLString+=this.argumentSeparator+urlstring}else{this.URLString=urlstring}}this.setVar("rndval",new Date().getTime());urlstringtemp=new Array();for(key in this.vars){if(false==this.vars[key][1]&&true==this.encodeURIString){encoded=this.encVar(key,this.vars[key][0],true);delete this.vars[key];this.vars[encoded[0]]=Array(encoded[1],true);key=encoded[0]}urlstringtemp[urlstringtemp.length]=key+"="+this.vars[key][0]}if(urlstring){this.URLString+=this.argumentSeparator+urlstringtemp.join(this.argumentSeparator)}else{this.URLString+=urlstringtemp.join(this.argumentSeparator)}};this.runResponse=function(){eval(this.response)};this.runAJAX=function(urlstring){if(this.failed){this.onFail()}else{this.createURLString(urlstring);if(this.element){this.elementObj=document.getElementById(this.element)}if(this.xmlhttp){var self=this;if(this.method=="GET"){totalurlstring=this.requestFile+this.queryStringSeparator+this.URLString;this.xmlhttp.open(this.method,totalurlstring,true)}else{this.xmlhttp.open(this.method,this.requestFile,true);try{this.xmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded")}catch(e){}}this.xmlhttp.onreadystatechange=function(){switch(self.xmlhttp.readyState){case 1:self.onLoading();break;case 2:self.onLoaded();break;case 3:self.onInteractive();break;case 4:self.response=self.xmlhttp.responseText;self.responseXML=self.xmlhttp.responseXML;self.responseStatus[0]=self.xmlhttp.status;self.responseStatus[1]=self.xmlhttp.statusText;if(self.execute){self.runResponse()}if(self.elementObj){elemNodeName=self.elementObj.nodeName;elemNodeName.toLowerCase();if(elemNodeName=="input"||elemNodeName=="select"||elemNodeName=="option"||elemNodeName=="textarea"){self.elementObj.value=self.response}else{self.elementObj.innerHTML=self.response}}if(self.responseStatus[0]=="200"){self.onCompletion()}else{self.onError()}self.URLString="";break}};this.xmlhttp.send(this.URLString)}}};this.reset();this.createAJAX()};
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-includes/js/underscore.min.js	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,5 @@
+//     Underscore.js 1.4.1
+//     http://underscorejs.org
+//     (c) 2009-2012 Jeremy Ashkenas, DocumentCloud Inc.
+//     Underscore may be freely distributed under the MIT license.
+(function(){var e=this,t=e._,n={},r=Array.prototype,i=Object.prototype,s=Function.prototype,o=r.push,u=r.slice,a=r.concat,f=r.unshift,l=i.toString,c=i.hasOwnProperty,h=r.forEach,p=r.map,d=r.reduce,v=r.reduceRight,m=r.filter,g=r.every,y=r.some,b=r.indexOf,w=r.lastIndexOf,E=Array.isArray,S=Object.keys,x=s.bind,T=function(e){if(e instanceof T)return e;if(!(this instanceof T))return new T(e);this._wrapped=e};typeof exports!="undefined"?(typeof module!="undefined"&&module.exports&&(exports=module.exports=T),exports._=T):e._=T,T.VERSION="1.4.1";var N=T.each=T.forEach=function(e,t,r){if(h&&e.forEach===h)e.forEach(t,r);else if(e.length===+e.length){for(var i=0,s=e.length;i<s;i++)if(t.call(r,e[i],i,e)===n)return}else for(var o in e)if(T.has(e,o)&&t.call(r,e[o],o,e)===n)return};T.map=T.collect=function(e,t,n){var r=[];return p&&e.map===p?e.map(t,n):(N(e,function(e,i,s){r[r.length]=t.call(n,e,i,s)}),r)},T.reduce=T.foldl=T.inject=function(e,t,n,r){var i=arguments.length>2;if(d&&e.reduce===d)return r&&(t=T.bind(t,r)),i?e.reduce(t,n):e.reduce(t);N(e,function(e,s,o){i?n=t.call(r,n,e,s,o):(n=e,i=!0)});if(!i)throw new TypeError("Reduce of empty array with no initial value");return n},T.reduceRight=T.foldr=function(e,t,n,r){var i=arguments.length>2;if(v&&e.reduceRight===v)return r&&(t=T.bind(t,r)),arguments.length>2?e.reduceRight(t,n):e.reduceRight(t);var s=e.length;if(s!==+s){var o=T.keys(e);s=o.length}N(e,function(u,a,f){a=o?o[--s]:--s,i?n=t.call(r,n,e[a],a,f):(n=e[a],i=!0)});if(!i)throw new TypeError("Reduce of empty array with no initial value");return n},T.find=T.detect=function(e,t,n){var r;return C(e,function(e,i,s){if(t.call(n,e,i,s))return r=e,!0}),r},T.filter=T.select=function(e,t,n){var r=[];return m&&e.filter===m?e.filter(t,n):(N(e,function(e,i,s){t.call(n,e,i,s)&&(r[r.length]=e)}),r)},T.reject=function(e,t,n){var r=[];return N(e,function(e,i,s){t.call(n,e,i,s)||(r[r.length]=e)}),r},T.every=T.all=function(e,t,r){t||(t=T.identity);var i=!0;return g&&e.every===g?e.every(t,r):(N(e,function(e,s,o){if(!(i=i&&t.call(r,e,s,o)))return n}),!!i)};var C=T.some=T.any=function(e,t,r){t||(t=T.identity);var i=!1;return y&&e.some===y?e.some(t,r):(N(e,function(e,s,o){if(i||(i=t.call(r,e,s,o)))return n}),!!i)};T.contains=T.include=function(e,t){var n=!1;return b&&e.indexOf===b?e.indexOf(t)!=-1:(n=C(e,function(e){return e===t}),n)},T.invoke=function(e,t){var n=u.call(arguments,2);return T.map(e,function(e){return(T.isFunction(t)?t:e[t]).apply(e,n)})},T.pluck=function(e,t){return T.map(e,function(e){return e[t]})},T.where=function(e,t){return T.isEmpty(t)?[]:T.filter(e,function(e){for(var n in t)if(t[n]!==e[n])return!1;return!0})},T.max=function(e,t,n){if(!t&&T.isArray(e)&&e[0]===+e[0]&&e.length<65535)return Math.max.apply(Math,e);if(!t&&T.isEmpty(e))return-Infinity;var r={computed:-Infinity};return N(e,function(e,i,s){var o=t?t.call(n,e,i,s):e;o>=r.computed&&(r={value:e,computed:o})}),r.value},T.min=function(e,t,n){if(!t&&T.isArray(e)&&e[0]===+e[0]&&e.length<65535)return Math.min.apply(Math,e);if(!t&&T.isEmpty(e))return Infinity;var r={computed:Infinity};return N(e,function(e,i,s){var o=t?t.call(n,e,i,s):e;o<r.computed&&(r={value:e,computed:o})}),r.value},T.shuffle=function(e){var t,n=0,r=[];return N(e,function(e){t=T.random(n++),r[n-1]=r[t],r[t]=e}),r};var k=function(e){return T.isFunction(e)?e:function(t){return t[e]}};T.sortBy=function(e,t,n){var r=k(t);return T.pluck(T.map(e,function(e,t,i){return{value:e,index:t,criteria:r.call(n,e,t,i)}}).sort(function(e,t){var n=e.criteria,r=t.criteria;if(n!==r){if(n>r||n===void 0)return 1;if(n<r||r===void 0)return-1}return e.index<t.index?-1:1}),"value")};var L=function(e,t,n,r){var i={},s=k(t);return N(e,function(t,o){var u=s.call(n,t,o,e);r(i,u,t)}),i};T.groupBy=function(e,t,n){return L(e,t,n,function(e,t,n){(T.has(e,t)?e[t]:e[t]=[]).push(n)})},T.countBy=function(e,t,n){return L(e,t,n,function(e,t,n){T.has(e,t)||(e[t]=0),e[t]++})},T.sortedIndex=function(e,t,n,r){n=n==null?T.identity:k(n);var i=n.call(r,t),s=0,o=e.length;while(s<o){var u=s+o>>>1;n.call(r,e[u])<i?s=u+1:o=u}return s},T.toArray=function(e){return e?e.length===+e.length?u.call(e):T.values(e):[]},T.size=function(e){return e.length===+e.length?e.length:T.keys(e).length},T.first=T.head=T.take=function(e,t,n){return t!=null&&!n?u.call(e,0,t):e[0]},T.initial=function(e,t,n){return u.call(e,0,e.length-(t==null||n?1:t))},T.last=function(e,t,n){return t!=null&&!n?u.call(e,Math.max(e.length-t,0)):e[e.length-1]},T.rest=T.tail=T.drop=function(e,t,n){return u.call(e,t==null||n?1:t)},T.compact=function(e){return T.filter(e,function(e){return!!e})};var A=function(e,t,n){return N(e,function(e){T.isArray(e)?t?o.apply(n,e):A(e,t,n):n.push(e)}),n};T.flatten=function(e,t){return A(e,t,[])},T.without=function(e){return T.difference(e,u.call(arguments,1))},T.uniq=T.unique=function(e,t,n,r){var i=n?T.map(e,n,r):e,s=[],o=[];return N(i,function(n,r){if(t?!r||o[o.length-1]!==n:!T.contains(o,n))o.push(n),s.push(e[r])}),s},T.union=function(){return T.uniq(a.apply(r,arguments))},T.intersection=function(e){var t=u.call(arguments,1);return T.filter(T.uniq(e),function(e){return T.every(t,function(t){return T.indexOf(t,e)>=0})})},T.difference=function(e){var t=a.apply(r,u.call(arguments,1));return T.filter(e,function(e){return!T.contains(t,e)})},T.zip=function(){var e=u.call(arguments),t=T.max(T.pluck(e,"length")),n=new Array(t);for(var r=0;r<t;r++)n[r]=T.pluck(e,""+r);return n},T.object=function(e,t){var n={};for(var r=0,i=e.length;r<i;r++)t?n[e[r]]=t[r]:n[e[r][0]]=e[r][1];return n},T.indexOf=function(e,t,n){var r=0,i=e.length;if(n){if(typeof n!="number")return r=T.sortedIndex(e,t),e[r]===t?r:-1;r=n<0?Math.max(0,i+n):n}if(b&&e.indexOf===b)return e.indexOf(t,n);for(;r<i;r++)if(e[r]===t)return r;return-1},T.lastIndexOf=function(e,t,n){var r=n!=null;if(w&&e.lastIndexOf===w)return r?e.lastIndexOf(t,n):e.lastIndexOf(t);var i=r?n:e.length;while(i--)if(e[i]===t)return i;return-1},T.range=function(e,t,n){arguments.length<=1&&(t=e||0,e=0),n=arguments[2]||1;var r=Math.max(Math.ceil((t-e)/n),0),i=0,s=new Array(r);while(i<r)s[i++]=e,e+=n;return s};var O=function(){};T.bind=function(t,n){var r,i;if(t.bind===x&&x)return x.apply(t,u.call(arguments,1));if(!T.isFunction(t))throw new TypeError;return i=u.call(arguments,2),r=function(){if(this instanceof r){O.prototype=t.prototype;var e=new O,s=t.apply(e,i.concat(u.call(arguments)));return Object(s)===s?s:e}return t.apply(n,i.concat(u.call(arguments)))}},T.bindAll=function(e){var t=u.call(arguments,1);return t.length==0&&(t=T.functions(e)),N(t,function(t){e[t]=T.bind(e[t],e)}),e},T.memoize=function(e,t){var n={};return t||(t=T.identity),function(){var r=t.apply(this,arguments);return T.has(n,r)?n[r]:n[r]=e.apply(this,arguments)}},T.delay=function(e,t){var n=u.call(arguments,2);return setTimeout(function(){return e.apply(null,n)},t)},T.defer=function(e){return T.delay.apply(T,[e,1].concat(u.call(arguments,1)))},T.throttle=function(e,t){var n,r,i,s,o,u,a=T.debounce(function(){o=s=!1},t);return function(){n=this,r=arguments;var f=function(){i=null,o&&(u=e.apply(n,r)),a()};return i||(i=setTimeout(f,t)),s?o=!0:(s=!0,u=e.apply(n,r)),a(),u}},T.debounce=function(e,t,n){var r,i;return function(){var s=this,o=arguments,u=function(){r=null,n||(i=e.apply(s,o))},a=n&&!r;return clearTimeout(r),r=setTimeout(u,t),a&&(i=e.apply(s,o)),i}},T.once=function(e){var t=!1,n;return function(){return t?n:(t=!0,n=e.apply(this,arguments),e=null,n)}},T.wrap=function(e,t){return function(){var n=[e];return o.apply(n,arguments),t.apply(this,n)}},T.compose=function(){var e=arguments;return function(){var t=arguments;for(var n=e.length-1;n>=0;n--)t=[e[n].apply(this,t)];return t[0]}},T.after=function(e,t){return e<=0?t():function(){if(--e<1)return t.apply(this,arguments)}},T.keys=S||function(e){if(e!==Object(e))throw new TypeError("Invalid object");var t=[];for(var n in e)T.has(e,n)&&(t[t.length]=n);return t},T.values=function(e){var t=[];for(var n in e)T.has(e,n)&&t.push(e[n]);return t},T.pairs=function(e){var t=[];for(var n in e)T.has(e,n)&&t.push([n,e[n]]);return t},T.invert=function(e){var t={};for(var n in e)T.has(e,n)&&(t[e[n]]=n);return t},T.functions=T.methods=function(e){var t=[];for(var n in e)T.isFunction(e[n])&&t.push(n);return t.sort()},T.extend=function(e){return N(u.call(arguments,1),function(t){for(var n in t)e[n]=t[n]}),e},T.pick=function(e){var t={},n=a.apply(r,u.call(arguments,1));return N(n,function(n){n in e&&(t[n]=e[n])}),t},T.omit=function(e){var t={},n=a.apply(r,u.call(arguments,1));for(var i in e)T.contains(n,i)||(t[i]=e[i]);return t},T.defaults=function(e){return N(u.call(arguments,1),function(t){for(var n in t)e[n]==null&&(e[n]=t[n])}),e},T.clone=function(e){return T.isObject(e)?T.isArray(e)?e.slice():T.extend({},e):e},T.tap=function(e,t){return t(e),e};var M=function(e,t,n,r){if(e===t)return e!==0||1/e==1/t;if(e==null||t==null)return e===t;e instanceof T&&(e=e._wrapped),t instanceof T&&(t=t._wrapped);var i=l.call(e);if(i!=l.call(t))return!1;switch(i){case"[object String]":return e==String(t);case"[object Number]":return e!=+e?t!=+t:e==0?1/e==1/t:e==+t;case"[object Date]":case"[object Boolean]":return+e==+t;case"[object RegExp]":return e.source==t.source&&e.global==t.global&&e.multiline==t.multiline&&e.ignoreCase==t.ignoreCase}if(typeof e!="object"||typeof t!="object")return!1;var s=n.length;while(s--)if(n[s]==e)return r[s]==t;n.push(e),r.push(t);var o=0,u=!0;if(i=="[object Array]"){o=e.length,u=o==t.length;if(u)while(o--)if(!(u=M(e[o],t[o],n,r)))break}else{var a=e.constructor,f=t.constructor;if(a!==f&&!(T.isFunction(a)&&a instanceof a&&T.isFunction(f)&&f instanceof f))return!1;for(var c in e)if(T.has(e,c)){o++;if(!(u=T.has(t,c)&&M(e[c],t[c],n,r)))break}if(u){for(c in t)if(T.has(t,c)&&!(o--))break;u=!o}}return n.pop(),r.pop(),u};T.isEqual=function(e,t){return M(e,t,[],[])},T.isEmpty=function(e){if(e==null)return!0;if(T.isArray(e)||T.isString(e))return e.length===0;for(var t in e)if(T.has(e,t))return!1;return!0},T.isElement=function(e){return!!e&&e.nodeType===1},T.isArray=E||function(e){return l.call(e)=="[object Array]"},T.isObject=function(e){return e===Object(e)},N(["Arguments","Function","String","Number","Date","RegExp"],function(e){T["is"+e]=function(t){return l.call(t)=="[object "+e+"]"}}),T.isArguments(arguments)||(T.isArguments=function(e){return!!e&&!!T.has(e,"callee")}),typeof /./!="function"&&(T.isFunction=function(e){return typeof e=="function"}),T.isFinite=function(e){return T.isNumber(e)&&isFinite(e)},T.isNaN=function(e){return T.isNumber(e)&&e!=+e},T.isBoolean=function(e){return e===!0||e===!1||l.call(e)=="[object Boolean]"},T.isNull=function(e){return e===null},T.isUndefined=function(e){return e===void 0},T.has=function(e,t){return c.call(e,t)},T.noConflict=function(){return e._=t,this},T.identity=function(e){return e},T.times=function(e,t,n){for(var r=0;r<e;r++)t.call(n,r)},T.random=function(e,t){return t==null&&(t=e,e=0),e+(0|Math.random()*(t-e+1))};var _={escape:{"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#x27;","/":"&#x2F;"}};_.unescape=T.invert(_.escape);var D={escape:new RegExp("["+T.keys(_.escape).join("")+"]","g"),unescape:new RegExp("("+T.keys(_.unescape).join("|")+")","g")};T.each(["escape","unescape"],function(e){T[e]=function(t){return t==null?"":(""+t).replace(D[e],function(t){return _[e][t]})}}),T.result=function(e,t){if(e==null)return null;var n=e[t];return T.isFunction(n)?n.call(e):n},T.mixin=function(e){N(T.functions(e),function(t){var n=T[t]=e[t];T.prototype[t]=function(){var e=[this._wrapped];return o.apply(e,arguments),F.call(this,n.apply(T,e))}})};var P=0;T.uniqueId=function(e){var t=P++;return e?e+t:t},T.templateSettings={evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g,escape:/<%-([\s\S]+?)%>/g};var H=/(.)^/,B={"'":"'","\\":"\\","\r":"r","\n":"n","	":"t","\u2028":"u2028","\u2029":"u2029"},j=/\\|'|\r|\n|\t|\u2028|\u2029/g;T.template=function(e,t,n){n=T.defaults({},n,T.templateSettings);var r=new RegExp([(n.escape||H).source,(n.interpolate||H).source,(n.evaluate||H).source].join("|")+"|$","g"),i=0,s="__p+='";e.replace(r,function(t,n,r,o,u){s+=e.slice(i,u).replace(j,function(e){return"\\"+B[e]}),s+=n?"'+\n((__t=("+n+"))==null?'':_.escape(__t))+\n'":r?"'+\n((__t=("+r+"))==null?'':__t)+\n'":o?"';\n"+o+"\n__p+='":"",i=u+t.length}),s+="';\n",n.variable||(s="with(obj||{}){\n"+s+"}\n"),s="var __t,__p='',__j=Array.prototype.join,print=function(){__p+=__j.call(arguments,'');};\n"+s+"return __p;\n";try{var o=new Function(n.variable||"obj","_",s)}catch(u){throw u.source=s,u}if(t)return o(t,T);var a=function(e){return o.call(this,e,T)};return a.source="function("+(n.variable||"obj")+"){\n"+s+"}",a},T.chain=function(e){return T(e).chain()};var F=function(e){return this._chain?T(e).chain():e};T.mixin(T),N(["pop","push","reverse","shift","sort","splice","unshift"],function(e){var t=r[e];T.prototype[e]=function(){var n=this._wrapped;return t.apply(n,arguments),(e=="shift"||e=="splice")&&n.length===0&&delete n[0],F.call(this,n)}}),N(["concat","join","slice"],function(e){var t=r[e];T.prototype[e]=function(){return F.call(this,t.apply(this._wrapped,arguments))}}),T.extend(T.prototype,{chain:function(){return this._chain=!0,this},value:function(){return this._wrapped}})}).call(this);
\ No newline at end of file
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-includes/js/utils.js	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,171 @@
+// utility functions
+
+var wpCookies = {
+// The following functions are from Cookie.js class in TinyMCE, Moxiecode, used under LGPL.
+
+	each : function(obj, cb, scope) {
+		var n, l;
+
+		if ( !obj )
+			return 0;
+
+		scope = scope || obj;
+
+		if ( typeof(obj.length) != 'undefined' ) {
+			for ( n = 0, l = obj.length; n < l; n++ ) {
+				if ( cb.call(scope, obj[n], n, obj) === false )
+					return 0;
+			}
+		} else {
+			for ( n in obj ) {
+				if ( obj.hasOwnProperty(n) ) {
+					if ( cb.call(scope, obj[n], n, obj) === false ) {
+						return 0;
+					}
+				}
+			}
+		}
+		return 1;
+	},
+
+	/**
+	 * Get a multi-values cookie.
+	 * Returns a JS object with the name: 'value' pairs.
+	 */
+	getHash : function(name) {
+		var all = this.get(name), ret;
+
+		if ( all ) {
+			this.each( all.split('&'), function(pair) {
+				pair = pair.split('=');
+				ret = ret || {};
+				ret[pair[0]] = pair[1];
+			});
+		}
+		return ret;
+	},
+
+	/**
+	 * Set a multi-values cookie.
+	 *
+	 * 'values_obj' is the JS object that is stored. It is encoded as URI in wpCookies.set().
+	 */
+	setHash : function(name, values_obj, expires, path, domain, secure) {
+		var str = '';
+
+		this.each(values_obj, function(val, key) {
+			str += (!str ? '' : '&') + key + '=' + val;
+		});
+
+		this.set(name, str, expires, path, domain, secure);
+	},
+
+	/**
+	 * Get a cookie.
+	 */
+	get : function(name) {
+		var cookie = document.cookie, e, p = name + "=", b;
+
+		if ( !cookie )
+			return;
+
+		b = cookie.indexOf("; " + p);
+
+		if ( b == -1 ) {
+			b = cookie.indexOf(p);
+
+			if ( b != 0 )
+				return null;
+
+		} else {
+			b += 2;
+		}
+
+		e = cookie.indexOf(";", b);
+
+		if ( e == -1 )
+			e = cookie.length;
+
+		return decodeURIComponent( cookie.substring(b + p.length, e) );
+	},
+
+	/**
+	 * Set a cookie.
+	 *
+	 * The 'expires' arg can be either a JS Date() object set to the expiration date (back-compat)
+	 * or the number of seconds until expiration
+	 */
+	set : function(name, value, expires, path, domain, secure) {
+		var d = new Date();
+
+		if ( typeof(expires) == 'object' && expires.toGMTString ) {
+			expires = expires.toGMTString();
+		} else if ( parseInt(expires, 10) ) {
+			d.setTime( d.getTime() + ( parseInt(expires, 10) * 1000 ) ); // time must be in miliseconds
+			expires = d.toGMTString();
+		} else {
+			expires = '';
+		}
+
+		document.cookie = name + "=" + encodeURIComponent(value) +
+			((expires) ? "; expires=" + expires : "") +
+			((path) ? "; path=" + path : "") +
+			((domain) ? "; domain=" + domain : "") +
+			((secure) ? "; secure" : "");
+	},
+
+	/**
+	 * Remove a cookie.
+	 *
+	 * This is done by setting it to an empty value and setting the expiration time in the past.
+	 */
+	remove : function(name, path) {
+		this.set(name, '', -1000, path);
+	}
+};
+
+// Returns the value as string. Second arg or empty string is returned when value is not set.
+function getUserSetting( name, def ) {
+	var obj = getAllUserSettings();
+
+	if ( obj.hasOwnProperty(name) )
+		return obj[name];
+
+	if ( typeof def != 'undefined' )
+		return def;
+
+	return '';
+}
+
+// Both name and value must be only ASCII letters, numbers or underscore
+// and the shorter, the better (cookies can store maximum 4KB). Not suitable to store text.
+function setUserSetting( name, value, _del ) {
+	if ( 'object' !== typeof userSettings )
+		return false;
+
+	var cookie = 'wp-settings-' + userSettings.uid, all = wpCookies.getHash(cookie) || {}, path = userSettings.url,
+	n = name.toString().replace(/[^A-Za-z0-9_]/, ''), v = value.toString().replace(/[^A-Za-z0-9_]/, '');
+
+	if ( _del ) {
+		delete all[n];
+	} else {
+		all[n] = v;
+	}
+
+	wpCookies.setHash(cookie, all, 31536000, path);
+	wpCookies.set('wp-settings-time-'+userSettings.uid, userSettings.time, 31536000, path);
+
+	return name;
+}
+
+function deleteUserSetting( name ) {
+	return setUserSetting( name, '', 1 );
+}
+
+// Returns all settings as js object.
+function getAllUserSettings() {
+	if ( 'object' !== typeof userSettings )
+		return {};
+
+	return wpCookies.getHash('wp-settings-' + userSettings.uid) || {};
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-includes/js/utils.min.js	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,1 @@
+var wpCookies={each:function(d,a,c){var e,b;if(!d){return 0}c=c||d;if(typeof(d.length)!="undefined"){for(e=0,b=d.length;e<b;e++){if(a.call(c,d[e],e,d)===false){return 0}}}else{for(e in d){if(d.hasOwnProperty(e)){if(a.call(c,d[e],e,d)===false){return 0}}}}return 1},getHash:function(b){var c=this.get(b),a;if(c){this.each(c.split("&"),function(d){d=d.split("=");a=a||{};a[d[0]]=d[1]})}return a},setHash:function(b,c,a,f,d,e){var g="";this.each(c,function(i,h){g+=(!g?"":"&")+h+"="+i});this.set(b,g,a,f,d,e)},get:function(c){var d=document.cookie,g,f=c+"=",a;if(!d){return}a=d.indexOf("; "+f);if(a==-1){a=d.indexOf(f);if(a!=0){return null}}else{a+=2}g=d.indexOf(";",a);if(g==-1){g=d.length}return decodeURIComponent(d.substring(a+f.length,g))},set:function(b,e,a,g,c,f){var h=new Date();if(typeof(a)=="object"&&a.toGMTString){a=a.toGMTString()}else{if(parseInt(a,10)){h.setTime(h.getTime()+(parseInt(a,10)*1000));a=h.toGMTString()}else{a=""}}document.cookie=b+"="+encodeURIComponent(e)+((a)?"; expires="+a:"")+((g)?"; path="+g:"")+((c)?"; domain="+c:"")+((f)?"; secure":"")},remove:function(a,b){this.set(a,"",-1000,b)}};function getUserSetting(a,b){var c=getAllUserSettings();if(c.hasOwnProperty(a)){return c[a]}if(typeof b!="undefined"){return b}return""}function setUserSetting(c,f,b){if("object"!==typeof userSettings){return false}var d="wp-settings-"+userSettings.uid,e=wpCookies.getHash(d)||{},g=userSettings.url,h=c.toString().replace(/[^A-Za-z0-9_]/,""),a=f.toString().replace(/[^A-Za-z0-9_]/,"");if(b){delete e[h]}else{e[h]=a}wpCookies.setHash(d,e,31536000,g);wpCookies.set("wp-settings-time-"+userSettings.uid,userSettings.time,31536000,g);return c}function deleteUserSetting(a){return setUserSetting(a,"",1)}function getAllUserSettings(){if("object"!==typeof userSettings){return{}}return wpCookies.getHash("wp-settings-"+userSettings.uid)||{}};
\ No newline at end of file
--- a/web/wp-includes/js/wp-ajax-response.dev.js	Wed Dec 19 12:35:13 2012 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,64 +0,0 @@
-var wpAjax = jQuery.extend( {
-	unserialize: function( s ) {
-		var r = {}, q, pp, i, p;
-		if ( !s ) { return r; }
-		q = s.split('?'); if ( q[1] ) { s = q[1]; }
-		pp = s.split('&');
-		for ( i in pp ) {
-			if ( jQuery.isFunction(pp.hasOwnProperty) && !pp.hasOwnProperty(i) ) { continue; }
-			p = pp[i].split('=');
-			r[p[0]] = p[1];
-		}
-		return r;
-	},
-	parseAjaxResponse: function( x, r, e ) { // 1 = good, 0 = strange (bad data?), -1 = you lack permission
-		var parsed = {}, re = jQuery('#' + r).html(''), err = '';
-
-		if ( x && typeof x == 'object' && x.getElementsByTagName('wp_ajax') ) {
-			parsed.responses = [];
-			parsed.errors = false;
-			jQuery('response', x).each( function() {
-				var th = jQuery(this), child = jQuery(this.firstChild), response;
-				response = { action: th.attr('action'), what: child.get(0).nodeName, id: child.attr('id'), oldId: child.attr('old_id'), position: child.attr('position') };
-				response.data = jQuery( 'response_data', child ).text();
-				response.supplemental = {};
-				if ( !jQuery( 'supplemental', child ).children().each( function() {
-					response.supplemental[this.nodeName] = jQuery(this).text();
-				} ).size() ) { response.supplemental = false }
-				response.errors = [];
-				if ( !jQuery('wp_error', child).each( function() {
-					var code = jQuery(this).attr('code'), anError, errorData, formField;
-					anError = { code: code, message: this.firstChild.nodeValue, data: false };
-					errorData = jQuery('wp_error_data[code="' + code + '"]', x);
-					if ( errorData ) { anError.data = errorData.get(); }
-					formField = jQuery( 'form-field', errorData ).text();
-					if ( formField ) { code = formField; }
-					if ( e ) { wpAjax.invalidateForm( jQuery('#' + e + ' :input[name="' + code + '"]' ).parents('.form-field:first') ); }
-					err += '<p>' + anError.message + '</p>';
-					response.errors.push( anError );
-					parsed.errors = true;
-				} ).size() ) { response.errors = false; }
-				parsed.responses.push( response );
-			} );
-			if ( err.length ) { re.html( '<div class="error">' + err + '</div>' ); }
-			return parsed;
-		}
-		if ( isNaN(x) ) { return !re.html('<div class="error"><p>' + x + '</p></div>'); }
-		x = parseInt(x,10);
-		if ( -1 == x ) { return !re.html('<div class="error"><p>' + wpAjax.noPerm + '</p></div>'); }
-		else if ( 0 === x ) { return !re.html('<div class="error"><p>' + wpAjax.broken  + '</p></div>'); }
-		return true;
-	},
-	invalidateForm: function ( selector ) {
-		return jQuery( selector ).addClass( 'form-invalid' ).find('input:visible').change( function() { jQuery(this).closest('.form-invalid').removeClass( 'form-invalid' ); } );
-	},
-	validateForm: function( selector ) {
-		selector = jQuery( selector );
-		return !wpAjax.invalidateForm( selector.find('.form-required').filter( function() { return jQuery('input:visible', this).val() == ''; } ) ).size();
-	}
-}, wpAjax || { noPerm: 'You do not have permission to do that.', broken: 'An unidentified error has occurred.' } );
-
-// Basic form validation
-jQuery(document).ready( function($){
-	$('form.validate').submit( function() { return wpAjax.validateForm( $(this) ); } );
-});
--- a/web/wp-includes/js/wp-ajax-response.js	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/js/wp-ajax-response.js	Wed Dec 19 17:46:52 2012 -0800
@@ -1,1 +1,64 @@
-var wpAjax=jQuery.extend({unserialize:function(c){var d={},e,a,b,f;if(!c){return d}e=c.split("?");if(e[1]){c=e[1]}a=c.split("&");for(b in a){if(jQuery.isFunction(a.hasOwnProperty)&&!a.hasOwnProperty(b)){continue}f=a[b].split("=");d[f[0]]=f[1]}return d},parseAjaxResponse:function(a,f,g){var b={},c=jQuery("#"+f).html(""),d="";if(a&&typeof a=="object"&&a.getElementsByTagName("wp_ajax")){b.responses=[];b.errors=false;jQuery("response",a).each(function(){var h=jQuery(this),i=jQuery(this.firstChild),e;e={action:h.attr("action"),what:i.get(0).nodeName,id:i.attr("id"),oldId:i.attr("old_id"),position:i.attr("position")};e.data=jQuery("response_data",i).text();e.supplemental={};if(!jQuery("supplemental",i).children().each(function(){e.supplemental[this.nodeName]=jQuery(this).text()}).size()){e.supplemental=false}e.errors=[];if(!jQuery("wp_error",i).each(function(){var j=jQuery(this).attr("code"),m,l,k;m={code:j,message:this.firstChild.nodeValue,data:false};l=jQuery('wp_error_data[code="'+j+'"]',a);if(l){m.data=l.get()}k=jQuery("form-field",l).text();if(k){j=k}if(g){wpAjax.invalidateForm(jQuery("#"+g+' :input[name="'+j+'"]').parents(".form-field:first"))}d+="<p>"+m.message+"</p>";e.errors.push(m);b.errors=true}).size()){e.errors=false}b.responses.push(e)});if(d.length){c.html('<div class="error">'+d+"</div>")}return b}if(isNaN(a)){return !c.html('<div class="error"><p>'+a+"</p></div>")}a=parseInt(a,10);if(-1==a){return !c.html('<div class="error"><p>'+wpAjax.noPerm+"</p></div>")}else{if(0===a){return !c.html('<div class="error"><p>'+wpAjax.broken+"</p></div>")}}return true},invalidateForm:function(a){return jQuery(a).addClass("form-invalid").find("input:visible").change(function(){jQuery(this).closest(".form-invalid").removeClass("form-invalid")})},validateForm:function(a){a=jQuery(a);return !wpAjax.invalidateForm(a.find(".form-required").filter(function(){return jQuery("input:visible",this).val()==""})).size()}},wpAjax||{noPerm:"You do not have permission to do that.",broken:"An unidentified error has occurred."});jQuery(document).ready(function(a){a("form.validate").submit(function(){return wpAjax.validateForm(a(this))})});
\ No newline at end of file
+var wpAjax = jQuery.extend( {
+	unserialize: function( s ) {
+		var r = {}, q, pp, i, p;
+		if ( !s ) { return r; }
+		q = s.split('?'); if ( q[1] ) { s = q[1]; }
+		pp = s.split('&');
+		for ( i in pp ) {
+			if ( jQuery.isFunction(pp.hasOwnProperty) && !pp.hasOwnProperty(i) ) { continue; }
+			p = pp[i].split('=');
+			r[p[0]] = p[1];
+		}
+		return r;
+	},
+	parseAjaxResponse: function( x, r, e ) { // 1 = good, 0 = strange (bad data?), -1 = you lack permission
+		var parsed = {}, re = jQuery('#' + r).html(''), err = '';
+
+		if ( x && typeof x == 'object' && x.getElementsByTagName('wp_ajax') ) {
+			parsed.responses = [];
+			parsed.errors = false;
+			jQuery('response', x).each( function() {
+				var th = jQuery(this), child = jQuery(this.firstChild), response;
+				response = { action: th.attr('action'), what: child.get(0).nodeName, id: child.attr('id'), oldId: child.attr('old_id'), position: child.attr('position') };
+				response.data = jQuery( 'response_data', child ).text();
+				response.supplemental = {};
+				if ( !jQuery( 'supplemental', child ).children().each( function() {
+					response.supplemental[this.nodeName] = jQuery(this).text();
+				} ).size() ) { response.supplemental = false }
+				response.errors = [];
+				if ( !jQuery('wp_error', child).each( function() {
+					var code = jQuery(this).attr('code'), anError, errorData, formField;
+					anError = { code: code, message: this.firstChild.nodeValue, data: false };
+					errorData = jQuery('wp_error_data[code="' + code + '"]', x);
+					if ( errorData ) { anError.data = errorData.get(); }
+					formField = jQuery( 'form-field', errorData ).text();
+					if ( formField ) { code = formField; }
+					if ( e ) { wpAjax.invalidateForm( jQuery('#' + e + ' :input[name="' + code + '"]' ).parents('.form-field:first') ); }
+					err += '<p>' + anError.message + '</p>';
+					response.errors.push( anError );
+					parsed.errors = true;
+				} ).size() ) { response.errors = false; }
+				parsed.responses.push( response );
+			} );
+			if ( err.length ) { re.html( '<div class="error">' + err + '</div>' ); }
+			return parsed;
+		}
+		if ( isNaN(x) ) { return !re.html('<div class="error"><p>' + x + '</p></div>'); }
+		x = parseInt(x,10);
+		if ( -1 == x ) { return !re.html('<div class="error"><p>' + wpAjax.noPerm + '</p></div>'); }
+		else if ( 0 === x ) { return !re.html('<div class="error"><p>' + wpAjax.broken  + '</p></div>'); }
+		return true;
+	},
+	invalidateForm: function ( selector ) {
+		return jQuery( selector ).addClass( 'form-invalid' ).find('input:visible').change( function() { jQuery(this).closest('.form-invalid').removeClass( 'form-invalid' ); } );
+	},
+	validateForm: function( selector ) {
+		selector = jQuery( selector );
+		return !wpAjax.invalidateForm( selector.find('.form-required').filter( function() { return jQuery('input:visible', this).val() == ''; } ) ).size();
+	}
+}, wpAjax || { noPerm: 'You do not have permission to do that.', broken: 'An unidentified error has occurred.' } );
+
+// Basic form validation
+jQuery(document).ready( function($){
+	$('form.validate').submit( function() { return wpAjax.validateForm( $(this) ); } );
+});
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-includes/js/wp-ajax-response.min.js	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,1 @@
+var wpAjax=jQuery.extend({unserialize:function(c){var d={},e,a,b,f;if(!c){return d}e=c.split("?");if(e[1]){c=e[1]}a=c.split("&");for(b in a){if(jQuery.isFunction(a.hasOwnProperty)&&!a.hasOwnProperty(b)){continue}f=a[b].split("=");d[f[0]]=f[1]}return d},parseAjaxResponse:function(a,f,g){var b={},c=jQuery("#"+f).html(""),d="";if(a&&typeof a=="object"&&a.getElementsByTagName("wp_ajax")){b.responses=[];b.errors=false;jQuery("response",a).each(function(){var h=jQuery(this),i=jQuery(this.firstChild),e;e={action:h.attr("action"),what:i.get(0).nodeName,id:i.attr("id"),oldId:i.attr("old_id"),position:i.attr("position")};e.data=jQuery("response_data",i).text();e.supplemental={};if(!jQuery("supplemental",i).children().each(function(){e.supplemental[this.nodeName]=jQuery(this).text()}).size()){e.supplemental=false}e.errors=[];if(!jQuery("wp_error",i).each(function(){var j=jQuery(this).attr("code"),m,l,k;m={code:j,message:this.firstChild.nodeValue,data:false};l=jQuery('wp_error_data[code="'+j+'"]',a);if(l){m.data=l.get()}k=jQuery("form-field",l).text();if(k){j=k}if(g){wpAjax.invalidateForm(jQuery("#"+g+' :input[name="'+j+'"]').parents(".form-field:first"))}d+="<p>"+m.message+"</p>";e.errors.push(m);b.errors=true}).size()){e.errors=false}b.responses.push(e)});if(d.length){c.html('<div class="error">'+d+"</div>")}return b}if(isNaN(a)){return !c.html('<div class="error"><p>'+a+"</p></div>")}a=parseInt(a,10);if(-1==a){return !c.html('<div class="error"><p>'+wpAjax.noPerm+"</p></div>")}else{if(0===a){return !c.html('<div class="error"><p>'+wpAjax.broken+"</p></div>")}}return true},invalidateForm:function(a){return jQuery(a).addClass("form-invalid").find("input:visible").change(function(){jQuery(this).closest(".form-invalid").removeClass("form-invalid")})},validateForm:function(a){a=jQuery(a);return !wpAjax.invalidateForm(a.find(".form-required").filter(function(){return jQuery("input:visible",this).val()==""})).size()}},wpAjax||{noPerm:"You do not have permission to do that.",broken:"An unidentified error has occurred."});jQuery(document).ready(function(a){a("form.validate").submit(function(){return wpAjax.validateForm(a(this))})});
\ No newline at end of file
--- a/web/wp-includes/js/wp-list-revisions.dev.js	Wed Dec 19 12:35:13 2012 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,24 +0,0 @@
-(function(w) {
-	var init = function() {
-		var pr = document.getElementById('post-revisions'),
-		inputs = pr ? pr.getElementsByTagName('input') : [];
-		pr.onclick = function() {
-			var i, checkCount = 0, side;
-			for ( i = 0; i < inputs.length; i++ ) {
-				checkCount += inputs[i].checked ? 1 : 0;
-				side = inputs[i].getAttribute('name');
-				if ( ! inputs[i].checked &&
-				( 'left' == side && 1 > checkCount || 'right' == side && 1 < checkCount && ( ! inputs[i-1] || ! inputs[i-1].checked ) ) &&
-				! ( inputs[i+1] && inputs[i+1].checked && 'right' == inputs[i+1].getAttribute('name') ) )
-					inputs[i].style.visibility = 'hidden';
-				else if ( 'left' == side || 'right' == side )
-					inputs[i].style.visibility = 'visible';
-			}
-		}
-		pr.onclick();
-	}
-	if ( w && w.addEventListener )
-		w.addEventListener('load', init, false);
-	else if ( w && w.attachEvent )
-		w.attachEvent('onload', init);
-})(window);
--- a/web/wp-includes/js/wp-list-revisions.js	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/js/wp-list-revisions.js	Wed Dec 19 17:46:52 2012 -0800
@@ -1,1 +1,24 @@
-(function(a){var b=function(){var d=document.getElementById("post-revisions"),c=d?d.getElementsByTagName("input"):[];d.onclick=function(){var g,f=0,e;for(g=0;g<c.length;g++){f+=c[g].checked?1:0;e=c[g].getAttribute("name");if(!c[g].checked&&("left"==e&&1>f||"right"==e&&1<f&&(!c[g-1]||!c[g-1].checked))&&!(c[g+1]&&c[g+1].checked&&"right"==c[g+1].getAttribute("name"))){c[g].style.visibility="hidden"}else{if("left"==e||"right"==e){c[g].style.visibility="visible"}}}};d.onclick()};if(a&&a.addEventListener){a.addEventListener("load",b,false)}else{if(a&&a.attachEvent){a.attachEvent("onload",b)}}})(window);
\ No newline at end of file
+(function(w) {
+	var init = function() {
+		var pr = document.getElementById('post-revisions'),
+		inputs = pr ? pr.getElementsByTagName('input') : [];
+		pr.onclick = function() {
+			var i, checkCount = 0, side;
+			for ( i = 0; i < inputs.length; i++ ) {
+				checkCount += inputs[i].checked ? 1 : 0;
+				side = inputs[i].getAttribute('name');
+				if ( ! inputs[i].checked &&
+				( 'left' == side && 1 > checkCount || 'right' == side && 1 < checkCount && ( ! inputs[i-1] || ! inputs[i-1].checked ) ) &&
+				! ( inputs[i+1] && inputs[i+1].checked && 'right' == inputs[i+1].getAttribute('name') ) )
+					inputs[i].style.visibility = 'hidden';
+				else if ( 'left' == side || 'right' == side )
+					inputs[i].style.visibility = 'visible';
+			}
+		}
+		pr.onclick();
+	}
+	if ( w && w.addEventListener )
+		w.addEventListener('load', init, false);
+	else if ( w && w.attachEvent )
+		w.attachEvent('onload', init);
+})(window);
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-includes/js/wp-list-revisions.min.js	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,1 @@
+(function(a){var b=function(){var d=document.getElementById("post-revisions"),c=d?d.getElementsByTagName("input"):[];d.onclick=function(){var g,f=0,e;for(g=0;g<c.length;g++){f+=c[g].checked?1:0;e=c[g].getAttribute("name");if(!c[g].checked&&("left"==e&&1>f||"right"==e&&1<f&&(!c[g-1]||!c[g-1].checked))&&!(c[g+1]&&c[g+1].checked&&"right"==c[g+1].getAttribute("name"))){c[g].style.visibility="hidden"}else{if("left"==e||"right"==e){c[g].style.visibility="visible"}}}};d.onclick()};if(a&&a.addEventListener){a.addEventListener("load",b,false)}else{if(a&&a.attachEvent){a.attachEvent("onload",b)}}})(window);
\ No newline at end of file
--- a/web/wp-includes/js/wp-lists.dev.js	Wed Dec 19 12:35:13 2012 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,464 +0,0 @@
-(function($) {
-var fs = {add:'ajaxAdd',del:'ajaxDel',dim:'ajaxDim',process:'process',recolor:'recolor'}, wpList;
-
-wpList = {
-	settings: {
-		url: ajaxurl, type: 'POST',
-		response: 'ajax-response',
-
-		what: '',
-		alt: 'alternate', altOffset: 0,
-		addColor: null, delColor: null, dimAddColor: null, dimDelColor: null,
-
-		confirm: null,
-		addBefore: null, addAfter: null,
-		delBefore: null, delAfter: null,
-		dimBefore: null, dimAfter: null
-	},
-
-	nonce: function(e,s) {
-		var url = wpAjax.unserialize(e.attr('href'));
-		return s.nonce || url._ajax_nonce || $('#' + s.element + ' input[name="_ajax_nonce"]').val() || url._wpnonce || $('#' + s.element + ' input[name="_wpnonce"]').val() || 0;
-	},
-
-	parseClass: function(e,t) {
-		var c = [], cl;
-
-		try {
-			cl = $(e).attr('class') || '';
-			cl = cl.match(new RegExp(t+':[\\S]+'));
-
-			if ( cl )
-				c = cl[0].split(':');
-		} catch(r) {}
-
-		return c;
-	},
-
-	pre: function(e,s,a) {
-		var bg, r;
-
-		s = $.extend( {}, this.wpList.settings, {
-			element: null,
-			nonce: 0,
-			target: e.get(0)
-		}, s || {} );
-
-		if ( $.isFunction( s.confirm ) ) {
-			if ( 'add' != a ) {
-				bg = $('#' + s.element).css('backgroundColor');
-				$('#' + s.element).css('backgroundColor', '#FF9966');
-			}
-			r = s.confirm.call(this, e, s, a, bg);
-
-			if ( 'add' != a )
-				$('#' + s.element).css('backgroundColor', bg );
-
-			if ( !r )
-				return false;
-		}
-
-		return s;
-	},
-
-	ajaxAdd: function( e, s ) {
-		e = $(e);
-		s = s || {};
-		var list = this, cls = wpList.parseClass(e,'add'), es, valid, formData, res, rres;
-
-		s = wpList.pre.call( list, e, s, 'add' );
-
-		s.element = cls[2] || e.attr( 'id' ) || s.element || null;
-
-		if ( cls[3] )
-			s.addColor = '#' + cls[3];
-		else
-			s.addColor = s.addColor || '#FFFF33';
-
-		if ( !s )
-			return false;
-
-		if ( !e.is('[id="' + s.what + '-add-submit"]') )
-			return !wpList.add.call( list, e, s );
-
-		if ( !s.element )
-			return true;
-
-		s.action = 'add-' + s.what;
-
-		s.nonce = wpList.nonce(e,s);
-
-		es = $('#' + s.element + ' :input').not('[name="_ajax_nonce"], [name="_wpnonce"], [name="action"]');
-		valid = wpAjax.validateForm( '#' + s.element );
-
-		if ( !valid )
-			return false;
-
-		s.data = $.param( $.extend( { _ajax_nonce: s.nonce, action: s.action }, wpAjax.unserialize( cls[4] || '' ) ) );
-		formData = $.isFunction(es.fieldSerialize) ? es.fieldSerialize() : es.serialize();
-
-		if ( formData )
-			s.data += '&' + formData;
-
-		if ( $.isFunction(s.addBefore) ) {
-			s = s.addBefore( s );
-			if ( !s )
-				return true;
-		}
-
-		if ( !s.data.match(/_ajax_nonce=[a-f0-9]+/) )
-			return true;
-
-		s.success = function(r) {
-			res = wpAjax.parseAjaxResponse(r, s.response, s.element);
-
-			rres = r;
-
-			if ( !res || res.errors )
-				return false;
-
-			if ( true === res )
-				return true;
-
-			jQuery.each( res.responses, function() {
-				wpList.add.call( list, this.data, $.extend( {}, s, { // this.firstChild.nodevalue
-					pos: this.position || 0,
-					id: this.id || 0,
-					oldId: this.oldId || null
-				} ) );
-			} );
-
-			list.wpList.recolor();
-			$(list).trigger( 'wpListAddEnd', [ s, list.wpList ] );
-			wpList.clear.call(list,'#' + s.element);
-		};
-
-		s.complete = function(x, st) {
-			if ( $.isFunction(s.addAfter) ) {
-				var _s = $.extend( { xml: x, status: st, parsed: res }, s );
-				s.addAfter( rres, _s );
-			}
-		};
-
-		$.ajax( s );
-		return false;
-	},
-
-	ajaxDel: function( e, s ) {
-		e = $(e);
-		s = s || {};
-		var list = this, cls = wpList.parseClass(e,'delete'), element, res, rres;
-
-		s = wpList.pre.call( list, e, s, 'delete' );
-
-		s.element = cls[2] || s.element || null;
-
-		if ( cls[3] )
-			s.delColor = '#' + cls[3];
-		else
-			s.delColor = s.delColor || '#faa';
-
-		if ( !s || !s.element )
-			return false;
-
-		s.action = 'delete-' + s.what;
-
-		s.nonce = wpList.nonce(e,s);
-
-		s.data = $.extend(
-			{ action: s.action, id: s.element.split('-').pop(), _ajax_nonce: s.nonce },
-			wpAjax.unserialize( cls[4] || '' )
-		);
-
-		if ( $.isFunction(s.delBefore) ) {
-			s = s.delBefore( s, list );
-			if ( !s )
-				return true;
-		}
-
-		if ( !s.data._ajax_nonce )
-			return true;
-
-		element = $('#' + s.element);
-
-		if ( 'none' != s.delColor ) {
-			element.css( 'backgroundColor', s.delColor ).fadeOut( 350, function(){
-				list.wpList.recolor();
-				$(list).trigger( 'wpListDelEnd', [ s, list.wpList ] );
-			});
-		} else {
-			list.wpList.recolor();
-			$(list).trigger( 'wpListDelEnd', [ s, list.wpList ] );
-		}
-
-		s.success = function(r) {
-			res = wpAjax.parseAjaxResponse(r, s.response, s.element);
-			rres = r;
-
-			if ( !res || res.errors ) {
-				element.stop().stop().css( 'backgroundColor', '#faa' ).show().queue( function() { list.wpList.recolor(); $(this).dequeue(); } );
-				return false;
-			}
-		};
-
-		s.complete = function(x, st) {
-			if ( $.isFunction(s.delAfter) ) {
-				element.queue( function() {
-					var _s = $.extend( { xml: x, status: st, parsed: res }, s );
-					s.delAfter( rres, _s );
-				}).dequeue();
-			}
-		}
-
-		$.ajax( s );
-		return false;
-	},
-
-	ajaxDim: function( e, s ) {
-		if ( $(e).parent().css('display') == 'none' ) // Prevent hidden links from being clicked by hotkeys
-			return false;
-
-		e = $(e);
-		s = s || {};
-
-		var list = this, cls = wpList.parseClass(e,'dim'), element, isClass, color, dimColor, res, rres;
-
-		s = wpList.pre.call( list, e, s, 'dim' );
-
-		s.element = cls[2] || s.element || null;
-		s.dimClass =  cls[3] || s.dimClass || null;
-
-		if ( cls[4] )
-			s.dimAddColor = '#' + cls[4];
-		else
-			s.dimAddColor = s.dimAddColor || '#FFFF33';
-
-		if ( cls[5] )
-			s.dimDelColor = '#' + cls[5];
-		else
-			s.dimDelColor = s.dimDelColor || '#FF3333';
-
-		if ( !s || !s.element || !s.dimClass )
-			return true;
-
-		s.action = 'dim-' + s.what;
-
-		s.nonce = wpList.nonce(e,s);
-
-		s.data = $.extend(
-			{ action: s.action, id: s.element.split('-').pop(), dimClass: s.dimClass, _ajax_nonce : s.nonce },
-			wpAjax.unserialize( cls[6] || '' )
-		);
-
-		if ( $.isFunction(s.dimBefore) ) {
-			s = s.dimBefore( s );
-			if ( !s )
-				return true;
-		}
-
-		element = $('#' + s.element);
-		isClass = element.toggleClass(s.dimClass).is('.' + s.dimClass);
-		color = wpList.getColor( element );
-		element.toggleClass( s.dimClass );
-		dimColor = isClass ? s.dimAddColor : s.dimDelColor;
-
-		if ( 'none' != dimColor ) {
-			element
-				.animate( { backgroundColor: dimColor }, 'fast' )
-				.queue( function() { element.toggleClass(s.dimClass); $(this).dequeue(); } )
-				.animate( { backgroundColor: color }, { complete: function() {
-						$(this).css( 'backgroundColor', '' );
-						$(list).trigger( 'wpListDimEnd', [ s, list.wpList ] );
-					}
-				});
-		} else {
-			$(list).trigger( 'wpListDimEnd', [ s, list.wpList ] );
-		}
-
-		if ( !s.data._ajax_nonce )
-			return true;
-
-		s.success = function(r) {
-			res = wpAjax.parseAjaxResponse(r, s.response, s.element);
-			rres = r;
-
-			if ( !res || res.errors ) {
-				element.stop().stop().css( 'backgroundColor', '#FF3333' )[isClass?'removeClass':'addClass'](s.dimClass).show().queue( function() { list.wpList.recolor(); $(this).dequeue(); } );
-				return false;
-			}
-		};
-
-		s.complete = function(x, st) {
-			if ( $.isFunction(s.dimAfter) ) {
-				element.queue( function() {
-					var _s = $.extend( { xml: x, status: st, parsed: res }, s );
-					s.dimAfter( rres, _s );
-				}).dequeue();
-			}
-		};
-
-		$.ajax( s );
-		return false;
-	},
-
-	getColor: function( el ) {
-		var color = jQuery(el).css('backgroundColor');
-
-		return color || '#ffffff';
-	},
-
-	add: function( e, s ) {
-		e = $(e);
-
-		var list = $(this), old = false, _s = { pos: 0, id: 0, oldId: null }, ba, ref, color;
-
-		if ( 'string' == typeof s )
-			s = { what: s };
-
-		s = $.extend(_s, this.wpList.settings, s);
-
-		if ( !e.size() || !s.what )
-			return false;
-
-		if ( s.oldId )
-			old = $('#' + s.what + '-' + s.oldId);
-
-		if ( s.id && ( s.id != s.oldId || !old || !old.size() ) )
-			$('#' + s.what + '-' + s.id).remove();
-
-		if ( old && old.size() ) {
-			old.before(e);
-			old.remove();
-		} else if ( isNaN(s.pos) ) {
-			ba = 'after';
-
-			if ( '-' == s.pos.substr(0,1) ) {
-				s.pos = s.pos.substr(1);
-				ba = 'before';
-			}
-
-			ref = list.find( '#' + s.pos );
-
-			if ( 1 === ref.size() )
-				ref[ba](e);
-			else
-				list.append(e);
-
-		} else if ( 'comment' != s.what || 0 === $('#' + s.element).length ) {
-			if ( s.pos < 0 ) {
-				list.prepend(e);
-			} else {
-				list.append(e);
-			}
-		}
-
-		if ( s.alt ) {
-			if ( ( list.children(':visible').index( e[0] ) + s.altOffset ) % 2 ) { e.removeClass( s.alt ); }
-			else { e.addClass( s.alt ); }
-		}
-
-		if ( 'none' != s.addColor ) {
-			color = wpList.getColor( e );
-			e.css( 'backgroundColor', s.addColor ).animate( { backgroundColor: color }, { complete: function() { $(this).css( 'backgroundColor', '' ); } } );
-		}
-		list.each( function() { this.wpList.process( e ); } );
-		return e;
-	},
-
-	clear: function(e) {
-		var list = this, t, tag;
-
-		e = $(e);
-
-		if ( list.wpList && e.parents( '#' + list.id ).size() )
-			return;
-
-		e.find(':input').each( function() {
-			if ( $(this).parents('.form-no-clear').size() )
-				return;
-
-			t = this.type.toLowerCase();
-			tag = this.tagName.toLowerCase();
-
-			if ( 'text' == t || 'password' == t || 'textarea' == tag )
-				this.value = '';
-			else if ( 'checkbox' == t || 'radio' == t )
-				this.checked = false;
-			else if ( 'select' == tag )
-				this.selectedIndex = null;
-		});
-	},
-
-	process: function(el) {
-		var list = this,
-			$el = $(el || document);
-
-		$el.delegate( 'form[class^="add:' + list.id + ':"]', 'submit', function(){
-			return list.wpList.add(this);
-		});
-
-		$el.delegate( 'a[class^="add:' + list.id + ':"], input[class^="add:' + list.id + ':"]', 'click', function(){
-			return list.wpList.add(this);
-		});
-
-		$el.delegate( '[class^="delete:' + list.id + ':"]', 'click', function(){
-			return list.wpList.del(this);
-		});
-
-		$el.delegate( '[class^="dim:' + list.id + ':"]', 'click', function(){
-			return list.wpList.dim(this);
-		});
-	},
-
-	recolor: function() {
-		var list = this, items, eo;
-
-		if ( !list.wpList.settings.alt )
-			return;
-
-		items = $('.list-item:visible', list);
-
-		if ( !items.size() )
-			items = $(list).children(':visible');
-
-		eo = [':even',':odd'];
-
-		if ( list.wpList.settings.altOffset % 2 )
-			eo.reverse();
-
-		items.filter(eo[0]).addClass(list.wpList.settings.alt).end().filter(eo[1]).removeClass(list.wpList.settings.alt);
-	},
-
-	init: function() {
-		var lists = this;
-
-		lists.wpList.process = function(a) {
-			lists.each( function() {
-				this.wpList.process(a);
-			} );
-		};
-
-		lists.wpList.recolor = function() {
-			lists.each( function() {
-				this.wpList.recolor();
-			} );
-		};
-	}
-};
-
-$.fn.wpList = function( settings ) {
-	this.each( function() {
-		var _this = this;
-
-		this.wpList = { settings: $.extend( {}, wpList.settings, { what: wpList.parseClass(this,'list')[1] || '' }, settings ) };
-		$.each( fs, function(i,f) { _this.wpList[i] = function( e, s ) { return wpList[f].call( _this, e, s ); }; } );
-	} );
-
-	wpList.init.call(this);
-
-	this.wpList.process();
-
-	return this;
-};
-
-})(jQuery);
--- a/web/wp-includes/js/wp-lists.js	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/js/wp-lists.js	Wed Dec 19 17:46:52 2012 -0800
@@ -1,1 +1,464 @@
-(function(b){var a={add:"ajaxAdd",del:"ajaxDel",dim:"ajaxDim",process:"process",recolor:"recolor"},c;c={settings:{url:ajaxurl,type:"POST",response:"ajax-response",what:"",alt:"alternate",altOffset:0,addColor:null,delColor:null,dimAddColor:null,dimDelColor:null,confirm:null,addBefore:null,addAfter:null,delBefore:null,delAfter:null,dimBefore:null,dimAfter:null},nonce:function(g,f){var d=wpAjax.unserialize(g.attr("href"));return f.nonce||d._ajax_nonce||b("#"+f.element+' input[name="_ajax_nonce"]').val()||d._wpnonce||b("#"+f.element+' input[name="_wpnonce"]').val()||0},parseClass:function(h,f){var i=[],d;try{d=b(h).attr("class")||"";d=d.match(new RegExp(f+":[\\S]+"));if(d){i=d[0].split(":")}}catch(g){}return i},pre:function(i,g,d){var f,h;g=b.extend({},this.wpList.settings,{element:null,nonce:0,target:i.get(0)},g||{});if(b.isFunction(g.confirm)){if("add"!=d){f=b("#"+g.element).css("backgroundColor");b("#"+g.element).css("backgroundColor","#FF9966")}h=g.confirm.call(this,i,g,d,f);if("add"!=d){b("#"+g.element).css("backgroundColor",f)}if(!h){return false}}return g},ajaxAdd:function(g,m){g=b(g);m=m||{};var h=this,l=c.parseClass(g,"add"),j,d,f,i,k;m=c.pre.call(h,g,m,"add");m.element=l[2]||g.attr("id")||m.element||null;if(l[3]){m.addColor="#"+l[3]}else{m.addColor=m.addColor||"#FFFF33"}if(!m){return false}if(!g.is('[id="'+m.what+'-add-submit"]')){return !c.add.call(h,g,m)}if(!m.element){return true}m.action="add-"+m.what;m.nonce=c.nonce(g,m);j=b("#"+m.element+" :input").not('[name="_ajax_nonce"], [name="_wpnonce"], [name="action"]');d=wpAjax.validateForm("#"+m.element);if(!d){return false}m.data=b.param(b.extend({_ajax_nonce:m.nonce,action:m.action},wpAjax.unserialize(l[4]||"")));f=b.isFunction(j.fieldSerialize)?j.fieldSerialize():j.serialize();if(f){m.data+="&"+f}if(b.isFunction(m.addBefore)){m=m.addBefore(m);if(!m){return true}}if(!m.data.match(/_ajax_nonce=[a-f0-9]+/)){return true}m.success=function(e){i=wpAjax.parseAjaxResponse(e,m.response,m.element);k=e;if(!i||i.errors){return false}if(true===i){return true}jQuery.each(i.responses,function(){c.add.call(h,this.data,b.extend({},m,{pos:this.position||0,id:this.id||0,oldId:this.oldId||null}))});h.wpList.recolor();b(h).trigger("wpListAddEnd",[m,h.wpList]);c.clear.call(h,"#"+m.element)};m.complete=function(e,n){if(b.isFunction(m.addAfter)){var o=b.extend({xml:e,status:n,parsed:i},m);m.addAfter(k,o)}};b.ajax(m);return false},ajaxDel:function(k,i){k=b(k);i=i||{};var j=this,d=c.parseClass(k,"delete"),h,g,f;i=c.pre.call(j,k,i,"delete");i.element=d[2]||i.element||null;if(d[3]){i.delColor="#"+d[3]}else{i.delColor=i.delColor||"#faa"}if(!i||!i.element){return false}i.action="delete-"+i.what;i.nonce=c.nonce(k,i);i.data=b.extend({action:i.action,id:i.element.split("-").pop(),_ajax_nonce:i.nonce},wpAjax.unserialize(d[4]||""));if(b.isFunction(i.delBefore)){i=i.delBefore(i,j);if(!i){return true}}if(!i.data._ajax_nonce){return true}h=b("#"+i.element);if("none"!=i.delColor){h.css("backgroundColor",i.delColor).fadeOut(350,function(){j.wpList.recolor();b(j).trigger("wpListDelEnd",[i,j.wpList])})}else{j.wpList.recolor();b(j).trigger("wpListDelEnd",[i,j.wpList])}i.success=function(e){g=wpAjax.parseAjaxResponse(e,i.response,i.element);f=e;if(!g||g.errors){h.stop().stop().css("backgroundColor","#faa").show().queue(function(){j.wpList.recolor();b(this).dequeue()});return false}};i.complete=function(e,l){if(b.isFunction(i.delAfter)){h.queue(function(){var m=b.extend({xml:e,status:l,parsed:g},i);i.delAfter(f,m)}).dequeue()}};b.ajax(i);return false},ajaxDim:function(h,n){if(b(h).parent().css("display")=="none"){return false}h=b(h);n=n||{};var i=this,m=c.parseClass(h,"dim"),g,d,f,k,j,l;n=c.pre.call(i,h,n,"dim");n.element=m[2]||n.element||null;n.dimClass=m[3]||n.dimClass||null;if(m[4]){n.dimAddColor="#"+m[4]}else{n.dimAddColor=n.dimAddColor||"#FFFF33"}if(m[5]){n.dimDelColor="#"+m[5]}else{n.dimDelColor=n.dimDelColor||"#FF3333"}if(!n||!n.element||!n.dimClass){return true}n.action="dim-"+n.what;n.nonce=c.nonce(h,n);n.data=b.extend({action:n.action,id:n.element.split("-").pop(),dimClass:n.dimClass,_ajax_nonce:n.nonce},wpAjax.unserialize(m[6]||""));if(b.isFunction(n.dimBefore)){n=n.dimBefore(n);if(!n){return true}}g=b("#"+n.element);d=g.toggleClass(n.dimClass).is("."+n.dimClass);f=c.getColor(g);g.toggleClass(n.dimClass);k=d?n.dimAddColor:n.dimDelColor;if("none"!=k){g.animate({backgroundColor:k},"fast").queue(function(){g.toggleClass(n.dimClass);b(this).dequeue()}).animate({backgroundColor:f},{complete:function(){b(this).css("backgroundColor","");b(i).trigger("wpListDimEnd",[n,i.wpList])}})}else{b(i).trigger("wpListDimEnd",[n,i.wpList])}if(!n.data._ajax_nonce){return true}n.success=function(e){j=wpAjax.parseAjaxResponse(e,n.response,n.element);l=e;if(!j||j.errors){g.stop().stop().css("backgroundColor","#FF3333")[d?"removeClass":"addClass"](n.dimClass).show().queue(function(){i.wpList.recolor();b(this).dequeue()});return false}};n.complete=function(e,o){if(b.isFunction(n.dimAfter)){g.queue(function(){var p=b.extend({xml:e,status:o,parsed:j},n);n.dimAfter(l,p)}).dequeue()}};b.ajax(n);return false},getColor:function(e){var d=jQuery(e).css("backgroundColor");return d||"#ffffff"},add:function(k,g){k=b(k);var i=b(this),d=false,j={pos:0,id:0,oldId:null},l,h,f;if("string"==typeof g){g={what:g}}g=b.extend(j,this.wpList.settings,g);if(!k.size()||!g.what){return false}if(g.oldId){d=b("#"+g.what+"-"+g.oldId)}if(g.id&&(g.id!=g.oldId||!d||!d.size())){b("#"+g.what+"-"+g.id).remove()}if(d&&d.size()){d.before(k);d.remove()}else{if(isNaN(g.pos)){l="after";if("-"==g.pos.substr(0,1)){g.pos=g.pos.substr(1);l="before"}h=i.find("#"+g.pos);if(1===h.size()){h[l](k)}else{i.append(k)}}else{if("comment"!=g.what||0===b("#"+g.element).length){if(g.pos<0){i.prepend(k)}else{i.append(k)}}}}if(g.alt){if((i.children(":visible").index(k[0])+g.altOffset)%2){k.removeClass(g.alt)}else{k.addClass(g.alt)}}if("none"!=g.addColor){f=c.getColor(k);k.css("backgroundColor",g.addColor).animate({backgroundColor:f},{complete:function(){b(this).css("backgroundColor","")}})}i.each(function(){this.wpList.process(k)});return k},clear:function(h){var g=this,f,d;h=b(h);if(g.wpList&&h.parents("#"+g.id).size()){return}h.find(":input").each(function(){if(b(this).parents(".form-no-clear").size()){return}f=this.type.toLowerCase();d=this.tagName.toLowerCase();if("text"==f||"password"==f||"textarea"==d){this.value=""}else{if("checkbox"==f||"radio"==f){this.checked=false}else{if("select"==d){this.selectedIndex=null}}}})},process:function(e){var f=this,d=b(e||document);d.delegate('form[class^="add:'+f.id+':"]',"submit",function(){return f.wpList.add(this)});d.delegate('a[class^="add:'+f.id+':"], input[class^="add:'+f.id+':"]',"click",function(){return f.wpList.add(this)});d.delegate('[class^="delete:'+f.id+':"]',"click",function(){return f.wpList.del(this)});d.delegate('[class^="dim:'+f.id+':"]',"click",function(){return f.wpList.dim(this)})},recolor:function(){var f=this,e,d;if(!f.wpList.settings.alt){return}e=b(".list-item:visible",f);if(!e.size()){e=b(f).children(":visible")}d=[":even",":odd"];if(f.wpList.settings.altOffset%2){d.reverse()}e.filter(d[0]).addClass(f.wpList.settings.alt).end().filter(d[1]).removeClass(f.wpList.settings.alt)},init:function(){var d=this;d.wpList.process=function(e){d.each(function(){this.wpList.process(e)})};d.wpList.recolor=function(){d.each(function(){this.wpList.recolor()})}}};b.fn.wpList=function(d){this.each(function(){var e=this;this.wpList={settings:b.extend({},c.settings,{what:c.parseClass(this,"list")[1]||""},d)};b.each(a,function(g,h){e.wpList[g]=function(i,f){return c[h].call(e,i,f)}})});c.init.call(this);this.wpList.process();return this}})(jQuery);
\ No newline at end of file
+(function($) {
+var fs = {add:'ajaxAdd',del:'ajaxDel',dim:'ajaxDim',process:'process',recolor:'recolor'}, wpList;
+
+wpList = {
+	settings: {
+		url: ajaxurl, type: 'POST',
+		response: 'ajax-response',
+
+		what: '',
+		alt: 'alternate', altOffset: 0,
+		addColor: null, delColor: null, dimAddColor: null, dimDelColor: null,
+
+		confirm: null,
+		addBefore: null, addAfter: null,
+		delBefore: null, delAfter: null,
+		dimBefore: null, dimAfter: null
+	},
+
+	nonce: function(e,s) {
+		var url = wpAjax.unserialize(e.attr('href'));
+		return s.nonce || url._ajax_nonce || $('#' + s.element + ' input[name="_ajax_nonce"]').val() || url._wpnonce || $('#' + s.element + ' input[name="_wpnonce"]').val() || 0;
+	},
+
+	parseData: function(e,t) {
+		var d = [], wpListsData;
+
+		try {
+			wpListsData = $(e).attr('data-wp-lists') || '';
+			wpListsData = wpListsData.match(new RegExp(t+':[\\S]+'));
+
+			if ( wpListsData )
+				d = wpListsData[0].split(':');
+		} catch(r) {}
+
+		return d;
+	},
+
+	pre: function(e,s,a) {
+		var bg, r;
+
+		s = $.extend( {}, this.wpList.settings, {
+			element: null,
+			nonce: 0,
+			target: e.get(0)
+		}, s || {} );
+
+		if ( $.isFunction( s.confirm ) ) {
+			if ( 'add' != a ) {
+				bg = $('#' + s.element).css('backgroundColor');
+				$('#' + s.element).css('backgroundColor', '#FF9966');
+			}
+			r = s.confirm.call(this, e, s, a, bg);
+
+			if ( 'add' != a )
+				$('#' + s.element).css('backgroundColor', bg );
+
+			if ( !r )
+				return false;
+		}
+
+		return s;
+	},
+
+	ajaxAdd: function( e, s ) {
+		e = $(e);
+		s = s || {};
+		var list = this, data = wpList.parseData(e,'add'), es, valid, formData, res, rres;
+
+		s = wpList.pre.call( list, e, s, 'add' );
+
+		s.element = data[2] || e.attr( 'id' ) || s.element || null;
+
+		if ( data[3] )
+			s.addColor = '#' + data[3];
+		else
+			s.addColor = s.addColor || '#FFFF33';
+
+		if ( !s )
+			return false;
+
+		if ( !e.is('[id="' + s.element + '-submit"]') )
+			return !wpList.add.call( list, e, s );
+
+		if ( !s.element )
+			return true;
+
+		s.action = 'add-' + s.what;
+
+		s.nonce = wpList.nonce(e,s);
+
+		es = $('#' + s.element + ' :input').not('[name="_ajax_nonce"], [name="_wpnonce"], [name="action"]');
+		valid = wpAjax.validateForm( '#' + s.element );
+
+		if ( !valid )
+			return false;
+
+		s.data = $.param( $.extend( { _ajax_nonce: s.nonce, action: s.action }, wpAjax.unserialize( data[4] || '' ) ) );
+		formData = $.isFunction(es.fieldSerialize) ? es.fieldSerialize() : es.serialize();
+
+		if ( formData )
+			s.data += '&' + formData;
+
+		if ( $.isFunction(s.addBefore) ) {
+			s = s.addBefore( s );
+			if ( !s )
+				return true;
+		}
+
+		if ( !s.data.match(/_ajax_nonce=[a-f0-9]+/) )
+			return true;
+
+		s.success = function(r) {
+			res = wpAjax.parseAjaxResponse(r, s.response, s.element);
+
+			rres = r;
+
+			if ( !res || res.errors )
+				return false;
+
+			if ( true === res )
+				return true;
+
+			jQuery.each( res.responses, function() {
+				wpList.add.call( list, this.data, $.extend( {}, s, { // this.firstChild.nodevalue
+					pos: this.position || 0,
+					id: this.id || 0,
+					oldId: this.oldId || null
+				} ) );
+			} );
+
+			list.wpList.recolor();
+			$(list).trigger( 'wpListAddEnd', [ s, list.wpList ] );
+			wpList.clear.call(list,'#' + s.element);
+		};
+
+		s.complete = function(x, st) {
+			if ( $.isFunction(s.addAfter) ) {
+				var _s = $.extend( { xml: x, status: st, parsed: res }, s );
+				s.addAfter( rres, _s );
+			}
+		};
+
+		$.ajax( s );
+		return false;
+	},
+
+	ajaxDel: function( e, s ) {
+		e = $(e);
+		s = s || {};
+		var list = this, data = wpList.parseData(e,'delete'), element, res, rres;
+
+		s = wpList.pre.call( list, e, s, 'delete' );
+
+		s.element = data[2] || s.element || null;
+
+		if ( data[3] )
+			s.delColor = '#' + data[3];
+		else
+			s.delColor = s.delColor || '#faa';
+
+		if ( !s || !s.element )
+			return false;
+
+		s.action = 'delete-' + s.what;
+
+		s.nonce = wpList.nonce(e,s);
+
+		s.data = $.extend(
+			{ action: s.action, id: s.element.split('-').pop(), _ajax_nonce: s.nonce },
+			wpAjax.unserialize( data[4] || '' )
+		);
+
+		if ( $.isFunction(s.delBefore) ) {
+			s = s.delBefore( s, list );
+			if ( !s )
+				return true;
+		}
+
+		if ( !s.data._ajax_nonce )
+			return true;
+
+		element = $('#' + s.element);
+
+		if ( 'none' != s.delColor ) {
+			element.css( 'backgroundColor', s.delColor ).fadeOut( 350, function(){
+				list.wpList.recolor();
+				$(list).trigger( 'wpListDelEnd', [ s, list.wpList ] );
+			});
+		} else {
+			list.wpList.recolor();
+			$(list).trigger( 'wpListDelEnd', [ s, list.wpList ] );
+		}
+
+		s.success = function(r) {
+			res = wpAjax.parseAjaxResponse(r, s.response, s.element);
+			rres = r;
+
+			if ( !res || res.errors ) {
+				element.stop().stop().css( 'backgroundColor', '#faa' ).show().queue( function() { list.wpList.recolor(); $(this).dequeue(); } );
+				return false;
+			}
+		};
+
+		s.complete = function(x, st) {
+			if ( $.isFunction(s.delAfter) ) {
+				element.queue( function() {
+					var _s = $.extend( { xml: x, status: st, parsed: res }, s );
+					s.delAfter( rres, _s );
+				}).dequeue();
+			}
+		}
+
+		$.ajax( s );
+		return false;
+	},
+
+	ajaxDim: function( e, s ) {
+		if ( $(e).parent().css('display') == 'none' ) // Prevent hidden links from being clicked by hotkeys
+			return false;
+
+		e = $(e);
+		s = s || {};
+
+		var list = this, data = wpList.parseData(e,'dim'), element, isClass, color, dimColor, res, rres;
+
+		s = wpList.pre.call( list, e, s, 'dim' );
+
+		s.element = data[2] || s.element || null;
+		s.dimClass =  data[3] || s.dimClass || null;
+
+		if ( data[4] )
+			s.dimAddColor = '#' + data[4];
+		else
+			s.dimAddColor = s.dimAddColor || '#FFFF33';
+
+		if ( data[5] )
+			s.dimDelColor = '#' + data[5];
+		else
+			s.dimDelColor = s.dimDelColor || '#FF3333';
+
+		if ( !s || !s.element || !s.dimClass )
+			return true;
+
+		s.action = 'dim-' + s.what;
+
+		s.nonce = wpList.nonce(e,s);
+
+		s.data = $.extend(
+			{ action: s.action, id: s.element.split('-').pop(), dimClass: s.dimClass, _ajax_nonce : s.nonce },
+			wpAjax.unserialize( data[6] || '' )
+		);
+
+		if ( $.isFunction(s.dimBefore) ) {
+			s = s.dimBefore( s );
+			if ( !s )
+				return true;
+		}
+
+		element = $('#' + s.element);
+		isClass = element.toggleClass(s.dimClass).is('.' + s.dimClass);
+		color = wpList.getColor( element );
+		element.toggleClass( s.dimClass );
+		dimColor = isClass ? s.dimAddColor : s.dimDelColor;
+
+		if ( 'none' != dimColor ) {
+			element
+				.animate( { backgroundColor: dimColor }, 'fast' )
+				.queue( function() { element.toggleClass(s.dimClass); $(this).dequeue(); } )
+				.animate( { backgroundColor: color }, { complete: function() {
+						$(this).css( 'backgroundColor', '' );
+						$(list).trigger( 'wpListDimEnd', [ s, list.wpList ] );
+					}
+				});
+		} else {
+			$(list).trigger( 'wpListDimEnd', [ s, list.wpList ] );
+		}
+
+		if ( !s.data._ajax_nonce )
+			return true;
+
+		s.success = function(r) {
+			res = wpAjax.parseAjaxResponse(r, s.response, s.element);
+			rres = r;
+
+			if ( !res || res.errors ) {
+				element.stop().stop().css( 'backgroundColor', '#FF3333' )[isClass?'removeClass':'addClass'](s.dimClass).show().queue( function() { list.wpList.recolor(); $(this).dequeue(); } );
+				return false;
+			}
+		};
+
+		s.complete = function(x, st) {
+			if ( $.isFunction(s.dimAfter) ) {
+				element.queue( function() {
+					var _s = $.extend( { xml: x, status: st, parsed: res }, s );
+					s.dimAfter( rres, _s );
+				}).dequeue();
+			}
+		};
+
+		$.ajax( s );
+		return false;
+	},
+
+	getColor: function( el ) {
+		var color = jQuery(el).css('backgroundColor');
+
+		return color || '#ffffff';
+	},
+
+	add: function( e, s ) {
+		e = $(e);
+
+		var list = $(this), old = false, _s = { pos: 0, id: 0, oldId: null }, ba, ref, color;
+
+		if ( 'string' == typeof s )
+			s = { what: s };
+
+		s = $.extend(_s, this.wpList.settings, s);
+
+		if ( !e.size() || !s.what )
+			return false;
+
+		if ( s.oldId )
+			old = $('#' + s.what + '-' + s.oldId);
+
+		if ( s.id && ( s.id != s.oldId || !old || !old.size() ) )
+			$('#' + s.what + '-' + s.id).remove();
+
+		if ( old && old.size() ) {
+			old.before(e);
+			old.remove();
+		} else if ( isNaN(s.pos) ) {
+			ba = 'after';
+
+			if ( '-' == s.pos.substr(0,1) ) {
+				s.pos = s.pos.substr(1);
+				ba = 'before';
+			}
+
+			ref = list.find( '#' + s.pos );
+
+			if ( 1 === ref.size() )
+				ref[ba](e);
+			else
+				list.append(e);
+
+		} else if ( 'comment' != s.what || 0 === $('#' + s.element).length ) {
+			if ( s.pos < 0 ) {
+				list.prepend(e);
+			} else {
+				list.append(e);
+			}
+		}
+
+		if ( s.alt ) {
+			if ( ( list.children(':visible').index( e[0] ) + s.altOffset ) % 2 ) { e.removeClass( s.alt ); }
+			else { e.addClass( s.alt ); }
+		}
+
+		if ( 'none' != s.addColor ) {
+			color = wpList.getColor( e );
+			e.css( 'backgroundColor', s.addColor ).animate( { backgroundColor: color }, { complete: function() { $(this).css( 'backgroundColor', '' ); } } );
+		}
+		list.each( function() { this.wpList.process( e ); } );
+		return e;
+	},
+
+	clear: function(e) {
+		var list = this, t, tag;
+
+		e = $(e);
+
+		if ( list.wpList && e.parents( '#' + list.id ).size() )
+			return;
+
+		e.find(':input').each( function() {
+			if ( $(this).parents('.form-no-clear').size() )
+				return;
+
+			t = this.type.toLowerCase();
+			tag = this.tagName.toLowerCase();
+
+			if ( 'text' == t || 'password' == t || 'textarea' == tag )
+				this.value = '';
+			else if ( 'checkbox' == t || 'radio' == t )
+				this.checked = false;
+			else if ( 'select' == tag )
+				this.selectedIndex = null;
+		});
+	},
+
+	process: function(el) {
+		var list = this,
+			$el = $(el || document);
+
+		$el.delegate( 'form[data-wp-lists^="add:' + list.id + ':"]', 'submit', function(){
+			return list.wpList.add(this);
+		});
+
+		$el.delegate( 'a[data-wp-lists^="add:' + list.id + ':"], input[data-wp-lists^="add:' + list.id + ':"]', 'click', function(){
+			return list.wpList.add(this);
+		});
+
+		$el.delegate( '[data-wp-lists^="delete:' + list.id + ':"]', 'click', function(){
+			return list.wpList.del(this);
+		});
+
+		$el.delegate( '[data-wp-lists^="dim:' + list.id + ':"]', 'click', function(){
+			return list.wpList.dim(this);
+		});
+	},
+
+	recolor: function() {
+		var list = this, items, eo;
+
+		if ( !list.wpList.settings.alt )
+			return;
+
+		items = $('.list-item:visible', list);
+
+		if ( !items.size() )
+			items = $(list).children(':visible');
+
+		eo = [':even',':odd'];
+
+		if ( list.wpList.settings.altOffset % 2 )
+			eo.reverse();
+
+		items.filter(eo[0]).addClass(list.wpList.settings.alt).end().filter(eo[1]).removeClass(list.wpList.settings.alt);
+	},
+
+	init: function() {
+		var lists = this;
+
+		lists.wpList.process = function(a) {
+			lists.each( function() {
+				this.wpList.process(a);
+			} );
+		};
+
+		lists.wpList.recolor = function() {
+			lists.each( function() {
+				this.wpList.recolor();
+			} );
+		};
+	}
+};
+
+$.fn.wpList = function( settings ) {
+	this.each( function() {
+		var _this = this;
+
+		this.wpList = { settings: $.extend( {}, wpList.settings, { what: wpList.parseData(this,'list')[1] || '' }, settings ) };
+		$.each( fs, function(i,f) { _this.wpList[i] = function( e, s ) { return wpList[f].call( _this, e, s ); }; } );
+	} );
+
+	wpList.init.call(this);
+
+	this.wpList.process();
+
+	return this;
+};
+
+})(jQuery);
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-includes/js/wp-lists.min.js	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,1 @@
+(function(b){var a={add:"ajaxAdd",del:"ajaxDel",dim:"ajaxDim",process:"process",recolor:"recolor"},c;c={settings:{url:ajaxurl,type:"POST",response:"ajax-response",what:"",alt:"alternate",altOffset:0,addColor:null,delColor:null,dimAddColor:null,dimDelColor:null,confirm:null,addBefore:null,addAfter:null,delBefore:null,delAfter:null,dimBefore:null,dimAfter:null},nonce:function(g,f){var d=wpAjax.unserialize(g.attr("href"));return f.nonce||d._ajax_nonce||b("#"+f.element+' input[name="_ajax_nonce"]').val()||d._wpnonce||b("#"+f.element+' input[name="_wpnonce"]').val()||0},parseData:function(i,g){var j=[],f;try{f=b(i).attr("data-wp-lists")||"";f=f.match(new RegExp(g+":[\\S]+"));if(f){j=f[0].split(":")}}catch(h){}return j},pre:function(i,g,d){var f,h;g=b.extend({},this.wpList.settings,{element:null,nonce:0,target:i.get(0)},g||{});if(b.isFunction(g.confirm)){if("add"!=d){f=b("#"+g.element).css("backgroundColor");b("#"+g.element).css("backgroundColor","#FF9966")}h=g.confirm.call(this,i,g,d,f);if("add"!=d){b("#"+g.element).css("backgroundColor",f)}if(!h){return false}}return g},ajaxAdd:function(h,m){h=b(h);m=m||{};var i=this,g=c.parseData(h,"add"),k,d,f,j,l;m=c.pre.call(i,h,m,"add");m.element=g[2]||h.attr("id")||m.element||null;if(g[3]){m.addColor="#"+g[3]}else{m.addColor=m.addColor||"#FFFF33"}if(!m){return false}if(!h.is('[id="'+m.element+'-submit"]')){return !c.add.call(i,h,m)}if(!m.element){return true}m.action="add-"+m.what;m.nonce=c.nonce(h,m);k=b("#"+m.element+" :input").not('[name="_ajax_nonce"], [name="_wpnonce"], [name="action"]');d=wpAjax.validateForm("#"+m.element);if(!d){return false}m.data=b.param(b.extend({_ajax_nonce:m.nonce,action:m.action},wpAjax.unserialize(g[4]||"")));f=b.isFunction(k.fieldSerialize)?k.fieldSerialize():k.serialize();if(f){m.data+="&"+f}if(b.isFunction(m.addBefore)){m=m.addBefore(m);if(!m){return true}}if(!m.data.match(/_ajax_nonce=[a-f0-9]+/)){return true}m.success=function(e){j=wpAjax.parseAjaxResponse(e,m.response,m.element);l=e;if(!j||j.errors){return false}if(true===j){return true}jQuery.each(j.responses,function(){c.add.call(i,this.data,b.extend({},m,{pos:this.position||0,id:this.id||0,oldId:this.oldId||null}))});i.wpList.recolor();b(i).trigger("wpListAddEnd",[m,i.wpList]);c.clear.call(i,"#"+m.element)};m.complete=function(e,n){if(b.isFunction(m.addAfter)){var o=b.extend({xml:e,status:n,parsed:j},m);m.addAfter(l,o)}};b.ajax(m);return false},ajaxDel:function(k,h){k=b(k);h=h||{};var j=this,i=c.parseData(k,"delete"),g,f,d;h=c.pre.call(j,k,h,"delete");h.element=i[2]||h.element||null;if(i[3]){h.delColor="#"+i[3]}else{h.delColor=h.delColor||"#faa"}if(!h||!h.element){return false}h.action="delete-"+h.what;h.nonce=c.nonce(k,h);h.data=b.extend({action:h.action,id:h.element.split("-").pop(),_ajax_nonce:h.nonce},wpAjax.unserialize(i[4]||""));if(b.isFunction(h.delBefore)){h=h.delBefore(h,j);if(!h){return true}}if(!h.data._ajax_nonce){return true}g=b("#"+h.element);if("none"!=h.delColor){g.css("backgroundColor",h.delColor).fadeOut(350,function(){j.wpList.recolor();b(j).trigger("wpListDelEnd",[h,j.wpList])})}else{j.wpList.recolor();b(j).trigger("wpListDelEnd",[h,j.wpList])}h.success=function(e){f=wpAjax.parseAjaxResponse(e,h.response,h.element);d=e;if(!f||f.errors){g.stop().stop().css("backgroundColor","#faa").show().queue(function(){j.wpList.recolor();b(this).dequeue()});return false}};h.complete=function(e,l){if(b.isFunction(h.delAfter)){g.queue(function(){var m=b.extend({xml:e,status:l,parsed:f},h);h.delAfter(d,m)}).dequeue()}};b.ajax(h);return false},ajaxDim:function(i,n){if(b(i).parent().css("display")=="none"){return false}i=b(i);n=n||{};var j=this,g=c.parseData(i,"dim"),h,d,f,l,k,m;n=c.pre.call(j,i,n,"dim");n.element=g[2]||n.element||null;n.dimClass=g[3]||n.dimClass||null;if(g[4]){n.dimAddColor="#"+g[4]}else{n.dimAddColor=n.dimAddColor||"#FFFF33"}if(g[5]){n.dimDelColor="#"+g[5]}else{n.dimDelColor=n.dimDelColor||"#FF3333"}if(!n||!n.element||!n.dimClass){return true}n.action="dim-"+n.what;n.nonce=c.nonce(i,n);n.data=b.extend({action:n.action,id:n.element.split("-").pop(),dimClass:n.dimClass,_ajax_nonce:n.nonce},wpAjax.unserialize(g[6]||""));if(b.isFunction(n.dimBefore)){n=n.dimBefore(n);if(!n){return true}}h=b("#"+n.element);d=h.toggleClass(n.dimClass).is("."+n.dimClass);f=c.getColor(h);h.toggleClass(n.dimClass);l=d?n.dimAddColor:n.dimDelColor;if("none"!=l){h.animate({backgroundColor:l},"fast").queue(function(){h.toggleClass(n.dimClass);b(this).dequeue()}).animate({backgroundColor:f},{complete:function(){b(this).css("backgroundColor","");b(j).trigger("wpListDimEnd",[n,j.wpList])}})}else{b(j).trigger("wpListDimEnd",[n,j.wpList])}if(!n.data._ajax_nonce){return true}n.success=function(e){k=wpAjax.parseAjaxResponse(e,n.response,n.element);m=e;if(!k||k.errors){h.stop().stop().css("backgroundColor","#FF3333")[d?"removeClass":"addClass"](n.dimClass).show().queue(function(){j.wpList.recolor();b(this).dequeue()});return false}};n.complete=function(e,o){if(b.isFunction(n.dimAfter)){h.queue(function(){var p=b.extend({xml:e,status:o,parsed:k},n);n.dimAfter(m,p)}).dequeue()}};b.ajax(n);return false},getColor:function(e){var d=jQuery(e).css("backgroundColor");return d||"#ffffff"},add:function(k,g){k=b(k);var i=b(this),d=false,j={pos:0,id:0,oldId:null},l,h,f;if("string"==typeof g){g={what:g}}g=b.extend(j,this.wpList.settings,g);if(!k.size()||!g.what){return false}if(g.oldId){d=b("#"+g.what+"-"+g.oldId)}if(g.id&&(g.id!=g.oldId||!d||!d.size())){b("#"+g.what+"-"+g.id).remove()}if(d&&d.size()){d.before(k);d.remove()}else{if(isNaN(g.pos)){l="after";if("-"==g.pos.substr(0,1)){g.pos=g.pos.substr(1);l="before"}h=i.find("#"+g.pos);if(1===h.size()){h[l](k)}else{i.append(k)}}else{if("comment"!=g.what||0===b("#"+g.element).length){if(g.pos<0){i.prepend(k)}else{i.append(k)}}}}if(g.alt){if((i.children(":visible").index(k[0])+g.altOffset)%2){k.removeClass(g.alt)}else{k.addClass(g.alt)}}if("none"!=g.addColor){f=c.getColor(k);k.css("backgroundColor",g.addColor).animate({backgroundColor:f},{complete:function(){b(this).css("backgroundColor","")}})}i.each(function(){this.wpList.process(k)});return k},clear:function(h){var g=this,f,d;h=b(h);if(g.wpList&&h.parents("#"+g.id).size()){return}h.find(":input").each(function(){if(b(this).parents(".form-no-clear").size()){return}f=this.type.toLowerCase();d=this.tagName.toLowerCase();if("text"==f||"password"==f||"textarea"==d){this.value=""}else{if("checkbox"==f||"radio"==f){this.checked=false}else{if("select"==d){this.selectedIndex=null}}}})},process:function(e){var f=this,d=b(e||document);d.delegate('form[data-wp-lists^="add:'+f.id+':"]',"submit",function(){return f.wpList.add(this)});d.delegate('a[data-wp-lists^="add:'+f.id+':"], input[data-wp-lists^="add:'+f.id+':"]',"click",function(){return f.wpList.add(this)});d.delegate('[data-wp-lists^="delete:'+f.id+':"]',"click",function(){return f.wpList.del(this)});d.delegate('[data-wp-lists^="dim:'+f.id+':"]',"click",function(){return f.wpList.dim(this)})},recolor:function(){var f=this,e,d;if(!f.wpList.settings.alt){return}e=b(".list-item:visible",f);if(!e.size()){e=b(f).children(":visible")}d=[":even",":odd"];if(f.wpList.settings.altOffset%2){d.reverse()}e.filter(d[0]).addClass(f.wpList.settings.alt).end().filter(d[1]).removeClass(f.wpList.settings.alt)},init:function(){var d=this;d.wpList.process=function(e){d.each(function(){this.wpList.process(e)})};d.wpList.recolor=function(){d.each(function(){this.wpList.recolor()})}}};b.fn.wpList=function(d){this.each(function(){var e=this;this.wpList={settings:b.extend({},c.settings,{what:c.parseData(this,"list")[1]||""},d)};b.each(a,function(g,h){e.wpList[g]=function(i,f){return c[h].call(e,i,f)}})});c.init.call(this);this.wpList.process();return this}})(jQuery);
\ No newline at end of file
--- a/web/wp-includes/js/wp-pointer.dev.js	Wed Dec 19 12:35:13 2012 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,281 +0,0 @@
-/**
- * Pointer jQuery widget.
- */
-(function($){
-	var identifier = 0,
-		zindex = 9999;
-
-	$.widget("wp.pointer", {
-		options: {
-			pointerClass: 'wp-pointer',
-			pointerWidth: 320,
-			content: function( respond, event, t ) {
-				return $(this).text();
-			},
-			buttons: function( event, t ) {
-				var close  = ( wpPointerL10n ) ? wpPointerL10n.dismiss : 'Dismiss',
-					button = $('<a class="close" href="#">' + close + '</a>');
-
-				return button.bind( 'click.pointer', function(e) {
-					e.preventDefault();
-					t.element.pointer('close');
-				});
-			},
-			position: 'top',
-			show: function( event, t ) {
-				t.pointer.show();
-				t.opened();
-			},
-			hide: function( event, t ) {
-				t.pointer.hide();
-				t.closed();
-			},
-			document: document
-		},
-
-		_create: function() {
-			var positioning,
-				family;
-
-			this.content = $('<div class="wp-pointer-content"></div>');
-			this.arrow   = $('<div class="wp-pointer-arrow"><div class="wp-pointer-arrow-inner"></div></div>');
-
-			family = this.element.parents().add( this.element );
-			positioning = 'absolute';
-
-			if ( family.filter(function(){ return 'fixed' === $(this).css('position'); }).length )
-				positioning = 'fixed';
-
-			this.pointer = $('<div />')
-				.append( this.content )
-				.append( this.arrow )
-				.attr('id', 'wp-pointer-' + identifier++)
-				.addClass( this.options.pointerClass )
-				.css({'position': positioning, 'width': this.options.pointerWidth+'px', 'display': 'none'})
-				.appendTo( this.options.document.body );
-		},
-
-		_setOption: function( key, value ) {
-			var o   = this.options,
-				tip = this.pointer;
-
-			// Handle document transfer
-			if ( key === "document" && value !== o.document ) {
-				tip.detach().appendTo( value.body );
-
-			// Handle class change
-			} else if ( key === "pointerClass" ) {
-				tip.removeClass( o.pointerClass ).addClass( value );
-			}
-
-			// Call super method.
-			$.Widget.prototype._setOption.apply( this, arguments );
-
-			// Reposition automatically
-			if ( key === "position" ) {
-				this.reposition();
-
-			// Update content automatically if pointer is open
-			} else if ( key === "content" && this.active ) {
-				this.update();
-			}
-		},
-
-		destroy: function() {
-			this.pointer.remove();
-			$.Widget.prototype.destroy.call( this );
-		},
-
-		widget: function() {
-			return this.pointer;
-		},
-
-		update: function( event ) {
-			var self = this,
-				o    = this.options,
-				dfd  = $.Deferred(),
-				content;
-
-			if ( o.disabled )
-				return;
-
-			dfd.done( function( content ) {
-				self._update( event, content );
-			})
-
-			// Either o.content is a string...
-			if ( typeof o.content === 'string' ) {
-				content = o.content;
-
-			// ...or o.content is a callback.
-			} else {
-				content = o.content.call( this.element[0], dfd.resolve, event, this._handoff() );
-			}
-
-			// If content is set, then complete the update.
-			if ( content )
-				dfd.resolve( content );
-
-			return dfd.promise();
-		},
-
-		/**
-		 * Update is separated into two functions to allow events to defer
-		 * updating the pointer (e.g. fetch content with ajax, etc).
-		 */
-		_update: function( event, content ) {
-			var buttons,
-				o = this.options;
-
-			if ( ! content )
-				return;
-
-			this.pointer.stop(); // Kill any animations on the pointer.
-			this.content.html( content );
-
-			buttons = o.buttons.call( this.element[0], event, this._handoff() );
-			if ( buttons ) {
-				buttons.wrap('<div class="wp-pointer-buttons" />').parent().appendTo( this.content );
-			}
-
-			this.reposition();
-		},
-
-		reposition: function() {
-			var position;
-
-			if ( this.options.disabled )
-				return;
-
-			position = this._processPosition( this.options.position );
-
-			// Reposition pointer.
-			this.pointer.css({
-				top: 0,
-				left: 0,
-				zIndex: zindex++ // Increment the z-index so that it shows above other opened pointers.
-			}).show().position($.extend({
-				of: this.element,
-				collision: 'fit none'
-			}, position )); // the object comes before this.options.position so the user can override position.of.
-
-			this.repoint();
-		},
-
-		repoint: function() {
-			var o = this.options,
-				edge;
-
-			if ( o.disabled )
-				return;
-
-			edge = ( typeof o.position == 'string' ) ? o.position : o.position.edge;
-
-			// Remove arrow classes.
-			this.pointer[0].className = this.pointer[0].className.replace( /wp-pointer-[^\s'"]*/, '' );
-
-			// Add arrow class.
-			this.pointer.addClass( 'wp-pointer-' + edge );
-		},
-
-		_processPosition: function( position ) {
-			var opposite = {
-					top: 'bottom',
-					bottom: 'top',
-					left: 'right',
-					right: 'left'
-				},
-				result;
-
-			// If the position object is a string, it is shorthand for position.edge.
-			if ( typeof position == 'string' ) {
-				result = {
-					edge: position + ''
-				};
-			} else {
-				result = $.extend( {}, position );
-			}
-
-			if ( ! result.edge )
-				return result;
-
-			if ( result.edge == 'top' || result.edge == 'bottom' ) {
-				result.align = result.align || 'left';
-
-				result.at = result.at || result.align + ' ' + opposite[ result.edge ];
-				result.my = result.my || result.align + ' ' + result.edge;
-			} else {
-				result.align = result.align || 'top';
-
-				result.at = result.at || opposite[ result.edge ] + ' ' + result.align;
-				result.my = result.my || result.edge + ' ' + result.align;
-			}
-
-			return result;
-		},
-
-		open: function( event ) {
-			var self = this,
-				o    = this.options;
-
-			if ( this.active || o.disabled || this.element.is(':hidden') )
-				return;
-
-			this.update().done( function() {
-				self._open( event );
-			});
-		},
-
-		_open: function( event ) {
-			var self = this,
-				o    = this.options;
-
-			if ( this.active || o.disabled || this.element.is(':hidden') )
-				return;
-
-			this.active = true;
-
-			this._trigger( "open", event, this._handoff() );
-
-			this._trigger( "show", event, this._handoff({
-				opened: function() {
-					self._trigger( "opened", event, self._handoff() );
-				}
-			}));
-		},
-
-		close: function( event ) {
-			if ( !this.active || this.options.disabled )
-				return;
-
-			var self = this;
-			this.active = false;
-
-			this._trigger( "close", event, this._handoff() );
-			this._trigger( "hide", event, this._handoff({
-				closed: function() {
-					self._trigger( "closed", event, self._handoff() );
-				}
-			}));
-		},
-
-		sendToTop: function( event ) {
-			if ( this.active )
-				this.pointer.css( 'z-index', zindex++ );
-		},
-
-		toggle: function( event ) {
-			if ( this.pointer.is(':hidden') )
-				this.open( event );
-			else
-				this.close( event );
-		},
-
-		_handoff: function( extend ) {
-			return $.extend({
-				pointer: this.pointer,
-				element: this.element
-			}, extend);
-		}
-	});
-})(jQuery);
--- a/web/wp-includes/js/wp-pointer.js	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/js/wp-pointer.js	Wed Dec 19 17:46:52 2012 -0800
@@ -1,1 +1,281 @@
-(function(c){var a=0,b=9999;c.widget("wp.pointer",{options:{pointerClass:"wp-pointer",pointerWidth:320,content:function(f,e,d){return c(this).text()},buttons:function(f,e){var g=(wpPointerL10n)?wpPointerL10n.dismiss:"Dismiss",d=c('<a class="close" href="#">'+g+"</a>");return d.bind("click.pointer",function(h){h.preventDefault();e.element.pointer("close")})},position:"top",show:function(e,d){d.pointer.show();d.opened()},hide:function(e,d){d.pointer.hide();d.closed()},document:document},_create:function(){var e,d;this.content=c('<div class="wp-pointer-content"></div>');this.arrow=c('<div class="wp-pointer-arrow"><div class="wp-pointer-arrow-inner"></div></div>');d=this.element.parents().add(this.element);e="absolute";if(d.filter(function(){return"fixed"===c(this).css("position")}).length){e="fixed"}this.pointer=c("<div />").append(this.content).append(this.arrow).attr("id","wp-pointer-"+a++).addClass(this.options.pointerClass).css({position:e,width:this.options.pointerWidth+"px",display:"none"}).appendTo(this.options.document.body)},_setOption:function(d,f){var g=this.options,e=this.pointer;if(d==="document"&&f!==g.document){e.detach().appendTo(f.body)}else{if(d==="pointerClass"){e.removeClass(g.pointerClass).addClass(f)}}c.Widget.prototype._setOption.apply(this,arguments);if(d==="position"){this.reposition()}else{if(d==="content"&&this.active){this.update()}}},destroy:function(){this.pointer.remove();c.Widget.prototype.destroy.call(this)},widget:function(){return this.pointer},update:function(g){var e=this,h=this.options,d=c.Deferred(),f;if(h.disabled){return}d.done(function(i){e._update(g,i)});if(typeof h.content==="string"){f=h.content}else{f=h.content.call(this.element[0],d.resolve,g,this._handoff())}if(f){d.resolve(f)}return d.promise()},_update:function(f,e){var d,g=this.options;if(!e){return}this.pointer.stop();this.content.html(e);d=g.buttons.call(this.element[0],f,this._handoff());if(d){d.wrap('<div class="wp-pointer-buttons" />').parent().appendTo(this.content)}this.reposition()},reposition:function(){var d;if(this.options.disabled){return}d=this._processPosition(this.options.position);this.pointer.css({top:0,left:0,zIndex:b++}).show().position(c.extend({of:this.element,collision:"fit none"},d));this.repoint()},repoint:function(){var e=this.options,d;if(e.disabled){return}d=(typeof e.position=="string")?e.position:e.position.edge;this.pointer[0].className=this.pointer[0].className.replace(/wp-pointer-[^\s'"]*/,"");this.pointer.addClass("wp-pointer-"+d)},_processPosition:function(e){var f={top:"bottom",bottom:"top",left:"right",right:"left"},d;if(typeof e=="string"){d={edge:e+""}}else{d=c.extend({},e)}if(!d.edge){return d}if(d.edge=="top"||d.edge=="bottom"){d.align=d.align||"left";d.at=d.at||d.align+" "+f[d.edge];d.my=d.my||d.align+" "+d.edge}else{d.align=d.align||"top";d.at=d.at||f[d.edge]+" "+d.align;d.my=d.my||d.edge+" "+d.align}return d},open:function(e){var d=this,f=this.options;if(this.active||f.disabled||this.element.is(":hidden")){return}this.update().done(function(){d._open(e)})},_open:function(e){var d=this,f=this.options;if(this.active||f.disabled||this.element.is(":hidden")){return}this.active=true;this._trigger("open",e,this._handoff());this._trigger("show",e,this._handoff({opened:function(){d._trigger("opened",e,d._handoff())}}))},close:function(e){if(!this.active||this.options.disabled){return}var d=this;this.active=false;this._trigger("close",e,this._handoff());this._trigger("hide",e,this._handoff({closed:function(){d._trigger("closed",e,d._handoff())}}))},sendToTop:function(d){if(this.active){this.pointer.css("z-index",b++)}},toggle:function(d){if(this.pointer.is(":hidden")){this.open(d)}else{this.close(d)}},_handoff:function(d){return c.extend({pointer:this.pointer,element:this.element},d)}})})(jQuery);
\ No newline at end of file
+/**
+ * Pointer jQuery widget.
+ */
+(function($){
+	var identifier = 0,
+		zindex = 9999;
+
+	$.widget("wp.pointer", {
+		options: {
+			pointerClass: 'wp-pointer',
+			pointerWidth: 320,
+			content: function( respond, event, t ) {
+				return $(this).text();
+			},
+			buttons: function( event, t ) {
+				var close  = ( wpPointerL10n ) ? wpPointerL10n.dismiss : 'Dismiss',
+					button = $('<a class="close" href="#">' + close + '</a>');
+
+				return button.bind( 'click.pointer', function(e) {
+					e.preventDefault();
+					t.element.pointer('close');
+				});
+			},
+			position: 'top',
+			show: function( event, t ) {
+				t.pointer.show();
+				t.opened();
+			},
+			hide: function( event, t ) {
+				t.pointer.hide();
+				t.closed();
+			},
+			document: document
+		},
+
+		_create: function() {
+			var positioning,
+				family;
+
+			this.content = $('<div class="wp-pointer-content"></div>');
+			this.arrow   = $('<div class="wp-pointer-arrow"><div class="wp-pointer-arrow-inner"></div></div>');
+
+			family = this.element.parents().add( this.element );
+			positioning = 'absolute';
+
+			if ( family.filter(function(){ return 'fixed' === $(this).css('position'); }).length )
+				positioning = 'fixed';
+
+			this.pointer = $('<div />')
+				.append( this.content )
+				.append( this.arrow )
+				.attr('id', 'wp-pointer-' + identifier++)
+				.addClass( this.options.pointerClass )
+				.css({'position': positioning, 'width': this.options.pointerWidth+'px', 'display': 'none'})
+				.appendTo( this.options.document.body );
+		},
+
+		_setOption: function( key, value ) {
+			var o   = this.options,
+				tip = this.pointer;
+
+			// Handle document transfer
+			if ( key === "document" && value !== o.document ) {
+				tip.detach().appendTo( value.body );
+
+			// Handle class change
+			} else if ( key === "pointerClass" ) {
+				tip.removeClass( o.pointerClass ).addClass( value );
+			}
+
+			// Call super method.
+			$.Widget.prototype._setOption.apply( this, arguments );
+
+			// Reposition automatically
+			if ( key === "position" ) {
+				this.reposition();
+
+			// Update content automatically if pointer is open
+			} else if ( key === "content" && this.active ) {
+				this.update();
+			}
+		},
+
+		destroy: function() {
+			this.pointer.remove();
+			$.Widget.prototype.destroy.call( this );
+		},
+
+		widget: function() {
+			return this.pointer;
+		},
+
+		update: function( event ) {
+			var self = this,
+				o    = this.options,
+				dfd  = $.Deferred(),
+				content;
+
+			if ( o.disabled )
+				return;
+
+			dfd.done( function( content ) {
+				self._update( event, content );
+			})
+
+			// Either o.content is a string...
+			if ( typeof o.content === 'string' ) {
+				content = o.content;
+
+			// ...or o.content is a callback.
+			} else {
+				content = o.content.call( this.element[0], dfd.resolve, event, this._handoff() );
+			}
+
+			// If content is set, then complete the update.
+			if ( content )
+				dfd.resolve( content );
+
+			return dfd.promise();
+		},
+
+		/**
+		 * Update is separated into two functions to allow events to defer
+		 * updating the pointer (e.g. fetch content with ajax, etc).
+		 */
+		_update: function( event, content ) {
+			var buttons,
+				o = this.options;
+
+			if ( ! content )
+				return;
+
+			this.pointer.stop(); // Kill any animations on the pointer.
+			this.content.html( content );
+
+			buttons = o.buttons.call( this.element[0], event, this._handoff() );
+			if ( buttons ) {
+				buttons.wrap('<div class="wp-pointer-buttons" />').parent().appendTo( this.content );
+			}
+
+			this.reposition();
+		},
+
+		reposition: function() {
+			var position;
+
+			if ( this.options.disabled )
+				return;
+
+			position = this._processPosition( this.options.position );
+
+			// Reposition pointer.
+			this.pointer.css({
+				top: 0,
+				left: 0,
+				zIndex: zindex++ // Increment the z-index so that it shows above other opened pointers.
+			}).show().position($.extend({
+				of: this.element,
+				collision: 'fit none'
+			}, position )); // the object comes before this.options.position so the user can override position.of.
+
+			this.repoint();
+		},
+
+		repoint: function() {
+			var o = this.options,
+				edge;
+
+			if ( o.disabled )
+				return;
+
+			edge = ( typeof o.position == 'string' ) ? o.position : o.position.edge;
+
+			// Remove arrow classes.
+			this.pointer[0].className = this.pointer[0].className.replace( /wp-pointer-[^\s'"]*/, '' );
+
+			// Add arrow class.
+			this.pointer.addClass( 'wp-pointer-' + edge );
+		},
+
+		_processPosition: function( position ) {
+			var opposite = {
+					top: 'bottom',
+					bottom: 'top',
+					left: 'right',
+					right: 'left'
+				},
+				result;
+
+			// If the position object is a string, it is shorthand for position.edge.
+			if ( typeof position == 'string' ) {
+				result = {
+					edge: position + ''
+				};
+			} else {
+				result = $.extend( {}, position );
+			}
+
+			if ( ! result.edge )
+				return result;
+
+			if ( result.edge == 'top' || result.edge == 'bottom' ) {
+				result.align = result.align || 'left';
+
+				result.at = result.at || result.align + ' ' + opposite[ result.edge ];
+				result.my = result.my || result.align + ' ' + result.edge;
+			} else {
+				result.align = result.align || 'top';
+
+				result.at = result.at || opposite[ result.edge ] + ' ' + result.align;
+				result.my = result.my || result.edge + ' ' + result.align;
+			}
+
+			return result;
+		},
+
+		open: function( event ) {
+			var self = this,
+				o    = this.options;
+
+			if ( this.active || o.disabled || this.element.is(':hidden') )
+				return;
+
+			this.update().done( function() {
+				self._open( event );
+			});
+		},
+
+		_open: function( event ) {
+			var self = this,
+				o    = this.options;
+
+			if ( this.active || o.disabled || this.element.is(':hidden') )
+				return;
+
+			this.active = true;
+
+			this._trigger( "open", event, this._handoff() );
+
+			this._trigger( "show", event, this._handoff({
+				opened: function() {
+					self._trigger( "opened", event, self._handoff() );
+				}
+			}));
+		},
+
+		close: function( event ) {
+			if ( !this.active || this.options.disabled )
+				return;
+
+			var self = this;
+			this.active = false;
+
+			this._trigger( "close", event, this._handoff() );
+			this._trigger( "hide", event, this._handoff({
+				closed: function() {
+					self._trigger( "closed", event, self._handoff() );
+				}
+			}));
+		},
+
+		sendToTop: function( event ) {
+			if ( this.active )
+				this.pointer.css( 'z-index', zindex++ );
+		},
+
+		toggle: function( event ) {
+			if ( this.pointer.is(':hidden') )
+				this.open( event );
+			else
+				this.close( event );
+		},
+
+		_handoff: function( extend ) {
+			return $.extend({
+				pointer: this.pointer,
+				element: this.element
+			}, extend);
+		}
+	});
+})(jQuery);
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-includes/js/wp-pointer.min.js	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,1 @@
+(function(c){var a=0,b=9999;c.widget("wp.pointer",{options:{pointerClass:"wp-pointer",pointerWidth:320,content:function(f,e,d){return c(this).text()},buttons:function(f,e){var g=(wpPointerL10n)?wpPointerL10n.dismiss:"Dismiss",d=c('<a class="close" href="#">'+g+"</a>");return d.bind("click.pointer",function(h){h.preventDefault();e.element.pointer("close")})},position:"top",show:function(e,d){d.pointer.show();d.opened()},hide:function(e,d){d.pointer.hide();d.closed()},document:document},_create:function(){var e,d;this.content=c('<div class="wp-pointer-content"></div>');this.arrow=c('<div class="wp-pointer-arrow"><div class="wp-pointer-arrow-inner"></div></div>');d=this.element.parents().add(this.element);e="absolute";if(d.filter(function(){return"fixed"===c(this).css("position")}).length){e="fixed"}this.pointer=c("<div />").append(this.content).append(this.arrow).attr("id","wp-pointer-"+a++).addClass(this.options.pointerClass).css({position:e,width:this.options.pointerWidth+"px",display:"none"}).appendTo(this.options.document.body)},_setOption:function(d,f){var g=this.options,e=this.pointer;if(d==="document"&&f!==g.document){e.detach().appendTo(f.body)}else{if(d==="pointerClass"){e.removeClass(g.pointerClass).addClass(f)}}c.Widget.prototype._setOption.apply(this,arguments);if(d==="position"){this.reposition()}else{if(d==="content"&&this.active){this.update()}}},destroy:function(){this.pointer.remove();c.Widget.prototype.destroy.call(this)},widget:function(){return this.pointer},update:function(g){var e=this,h=this.options,d=c.Deferred(),f;if(h.disabled){return}d.done(function(i){e._update(g,i)});if(typeof h.content==="string"){f=h.content}else{f=h.content.call(this.element[0],d.resolve,g,this._handoff())}if(f){d.resolve(f)}return d.promise()},_update:function(f,e){var d,g=this.options;if(!e){return}this.pointer.stop();this.content.html(e);d=g.buttons.call(this.element[0],f,this._handoff());if(d){d.wrap('<div class="wp-pointer-buttons" />').parent().appendTo(this.content)}this.reposition()},reposition:function(){var d;if(this.options.disabled){return}d=this._processPosition(this.options.position);this.pointer.css({top:0,left:0,zIndex:b++}).show().position(c.extend({of:this.element,collision:"fit none"},d));this.repoint()},repoint:function(){var e=this.options,d;if(e.disabled){return}d=(typeof e.position=="string")?e.position:e.position.edge;this.pointer[0].className=this.pointer[0].className.replace(/wp-pointer-[^\s'"]*/,"");this.pointer.addClass("wp-pointer-"+d)},_processPosition:function(e){var f={top:"bottom",bottom:"top",left:"right",right:"left"},d;if(typeof e=="string"){d={edge:e+""}}else{d=c.extend({},e)}if(!d.edge){return d}if(d.edge=="top"||d.edge=="bottom"){d.align=d.align||"left";d.at=d.at||d.align+" "+f[d.edge];d.my=d.my||d.align+" "+d.edge}else{d.align=d.align||"top";d.at=d.at||f[d.edge]+" "+d.align;d.my=d.my||d.edge+" "+d.align}return d},open:function(e){var d=this,f=this.options;if(this.active||f.disabled||this.element.is(":hidden")){return}this.update().done(function(){d._open(e)})},_open:function(e){var d=this,f=this.options;if(this.active||f.disabled||this.element.is(":hidden")){return}this.active=true;this._trigger("open",e,this._handoff());this._trigger("show",e,this._handoff({opened:function(){d._trigger("opened",e,d._handoff())}}))},close:function(e){if(!this.active||this.options.disabled){return}var d=this;this.active=false;this._trigger("close",e,this._handoff());this._trigger("hide",e,this._handoff({closed:function(){d._trigger("closed",e,d._handoff())}}))},sendToTop:function(d){if(this.active){this.pointer.css("z-index",b++)}},toggle:function(d){if(this.pointer.is(":hidden")){this.open(d)}else{this.close(d)}},_handoff:function(d){return c.extend({pointer:this.pointer,element:this.element},d)}})})(jQuery);
\ No newline at end of file
--- a/web/wp-includes/js/wplink.dev.js	Wed Dec 19 12:35:13 2012 -0800
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,593 +0,0 @@
-var wpLink;
-
-(function($){
-	var inputs = {}, rivers = {}, ed, River, Query;
-
-	wpLink = {
-		timeToTriggerRiver: 150,
-		minRiverAJAXDuration: 200,
-		riverBottomThreshold: 5,
-		keySensitivity: 100,
-		lastSearch: '',
-		textarea: '',
-
-		init : function() {
-			inputs.dialog = $('#wp-link');
-			inputs.submit = $('#wp-link-submit');
-			// URL
-			inputs.url = $('#url-field');
-			inputs.nonce = $('#_ajax_linking_nonce');
-			// Secondary options
-			inputs.title = $('#link-title-field');
-			// Advanced Options
-			inputs.openInNewTab = $('#link-target-checkbox');
-			inputs.search = $('#search-field');
-			// Build Rivers
-			rivers.search = new River( $('#search-results') );
-			rivers.recent = new River( $('#most-recent-results') );
-			rivers.elements = $('.query-results', inputs.dialog);
-
-			// Bind event handlers
-			inputs.dialog.keydown( wpLink.keydown );
-			inputs.dialog.keyup( wpLink.keyup );
-			inputs.submit.click( function(e){
-				e.preventDefault();
-				wpLink.update();
-			});
-			$('#wp-link-cancel').click( function(e){
-				e.preventDefault();
-				wpLink.close();
-			});
-			$('#internal-toggle').click( wpLink.toggleInternalLinking );
-
-			rivers.elements.bind('river-select', wpLink.updateFields );
-
-			inputs.search.keyup( wpLink.searchInternalLinks );
-
-			inputs.dialog.bind('wpdialogrefresh', wpLink.refresh);
-			inputs.dialog.bind('wpdialogbeforeopen', wpLink.beforeOpen);
-			inputs.dialog.bind('wpdialogclose', wpLink.onClose);
-		},
-
-		beforeOpen : function() {
-			wpLink.range = null;
-
-			if ( ! wpLink.isMCE() && document.selection ) {
-				wpLink.textarea.focus();
-				wpLink.range = document.selection.createRange();
-			}
-		},
-
-		open : function() {
-			if ( !wpActiveEditor )
-				return;
-
-			this.textarea = $('#'+wpActiveEditor).get(0);
-
-			// Initialize the dialog if necessary (html mode).
-			if ( ! inputs.dialog.data('wpdialog') ) {
-				inputs.dialog.wpdialog({
-					title: wpLinkL10n.title,
-					width: 480,
-					height: 'auto',
-					modal: true,
-					dialogClass: 'wp-dialog',
-					zIndex: 300000
-				});
-			}
-
-			inputs.dialog.wpdialog('open');
-		},
-
-		isMCE : function() {
-			return tinyMCEPopup && ( ed = tinyMCEPopup.editor ) && ! ed.isHidden();
-		},
-
-		refresh : function() {
-			// Refresh rivers (clear links, check visibility)
-			rivers.search.refresh();
-			rivers.recent.refresh();
-
-			if ( wpLink.isMCE() )
-				wpLink.mceRefresh();
-			else
-				wpLink.setDefaultValues();
-
-			// Focus the URL field and highlight its contents.
-			//     If this is moved above the selection changes,
-			//     IE will show a flashing cursor over the dialog.
-			inputs.url.focus()[0].select();
-			// Load the most recent results if this is the first time opening the panel.
-			if ( ! rivers.recent.ul.children().length )
-				rivers.recent.ajax();
-		},
-
-		mceRefresh : function() {
-			var e;
-			ed = tinyMCEPopup.editor;
-
-			tinyMCEPopup.restoreSelection();
-
-			// If link exists, select proper values.
-			if ( e = ed.dom.getParent(ed.selection.getNode(), 'A') ) {
-				// Set URL and description.
-				inputs.url.val( ed.dom.getAttrib(e, 'href') );
-				inputs.title.val( ed.dom.getAttrib(e, 'title') );
-				// Set open in new tab.
-				if ( "_blank" == ed.dom.getAttrib(e, 'target') )
-					inputs.openInNewTab.prop('checked', true);
-				// Update save prompt.
-				inputs.submit.val( wpLinkL10n.update );
-
-			// If there's no link, set the default values.
-			} else {
-				wpLink.setDefaultValues();
-			}
-
-			tinyMCEPopup.storeSelection();
-		},
-
-		close : function() {
-			if ( wpLink.isMCE() )
-				tinyMCEPopup.close();
-			else
-				inputs.dialog.wpdialog('close');
-		},
-
-		onClose: function() {
-			if ( ! wpLink.isMCE() ) {
-				wpLink.textarea.focus();
-				if ( wpLink.range ) {
-					wpLink.range.moveToBookmark( wpLink.range.getBookmark() );
-					wpLink.range.select();
-				}
-			}
-		},
-
-		getAttrs : function() {
-			return {
-				href : inputs.url.val(),
-				title : inputs.title.val(),
-				target : inputs.openInNewTab.prop('checked') ? '_blank' : ''
-			};
-		},
-
-		update : function() {
-			if ( wpLink.isMCE() )
-				wpLink.mceUpdate();
-			else
-				wpLink.htmlUpdate();
-		},
-
-		htmlUpdate : function() {
-			var attrs, html, begin, end, cursor,
-				textarea = wpLink.textarea;
-
-			if ( ! textarea )
-				return;
-
-			attrs = wpLink.getAttrs();
-
-			// If there's no href, return.
-			if ( ! attrs.href || attrs.href == 'http://' )
-				return;
-
-			// Build HTML
-			html = '<a href="' + attrs.href + '"';
-
-			if ( attrs.title )
-				html += ' title="' + attrs.title + '"';
-			if ( attrs.target )
-				html += ' target="' + attrs.target + '"';
-
-			html += '>';
-
-			// Insert HTML
-			if ( document.selection && wpLink.range ) {
-				// IE
-				// Note: If no text is selected, IE will not place the cursor
-				//       inside the closing tag.
-				textarea.focus();
-				wpLink.range.text = html + wpLink.range.text + '</a>';
-				wpLink.range.moveToBookmark( wpLink.range.getBookmark() );
-				wpLink.range.select();
-
-				wpLink.range = null;
-			} else if ( typeof textarea.selectionStart !== 'undefined' ) {
-				// W3C
-				begin       = textarea.selectionStart;
-				end         = textarea.selectionEnd;
-				selection   = textarea.value.substring( begin, end );
-				html        = html + selection + '</a>';
-				cursor      = begin + html.length;
-
-				// If no next is selected, place the cursor inside the closing tag.
-				if ( begin == end )
-					cursor -= '</a>'.length;
-
-				textarea.value = textarea.value.substring( 0, begin )
-				               + html
-				               + textarea.value.substring( end, textarea.value.length );
-
-				// Update cursor position
-				textarea.selectionStart = textarea.selectionEnd = cursor;
-			}
-
-			wpLink.close();
-			textarea.focus();
-		},
-
-		mceUpdate : function() {
-			var ed = tinyMCEPopup.editor,
-				attrs = wpLink.getAttrs(),
-				e, b;
-
-			tinyMCEPopup.restoreSelection();
-			e = ed.dom.getParent(ed.selection.getNode(), 'A');
-
-			// If the values are empty, unlink and return
-			if ( ! attrs.href || attrs.href == 'http://' ) {
-				if ( e ) {
-					tinyMCEPopup.execCommand("mceBeginUndoLevel");
-					b = ed.selection.getBookmark();
-					ed.dom.remove(e, 1);
-					ed.selection.moveToBookmark(b);
-					tinyMCEPopup.execCommand("mceEndUndoLevel");
-					wpLink.close();
-				}
-				return;
-			}
-
-			tinyMCEPopup.execCommand("mceBeginUndoLevel");
-
-			if (e == null) {
-				ed.getDoc().execCommand("unlink", false, null);
-				tinyMCEPopup.execCommand("mceInsertLink", false, "#mce_temp_url#", {skip_undo : 1});
-
-				tinymce.each(ed.dom.select("a"), function(n) {
-					if (ed.dom.getAttrib(n, 'href') == '#mce_temp_url#') {
-						e = n;
-						ed.dom.setAttribs(e, attrs);
-					}
-				});
-
-				// Sometimes WebKit lets a user create a link where
-				// they shouldn't be able to. In this case, CreateLink
-				// injects "#mce_temp_url#" into their content. Fix it.
-				if ( $(e).text() == '#mce_temp_url#' ) {
-					ed.dom.remove(e);
-					e = null;
-				}
-			} else {
-				ed.dom.setAttribs(e, attrs);
-			}
-
-			// Don't move caret if selection was image
-			if ( e && (e.childNodes.length != 1 || e.firstChild.nodeName != 'IMG') ) {
-				ed.focus();
-				ed.selection.select(e);
-				ed.selection.collapse(0);
-				tinyMCEPopup.storeSelection();
-			}
-
-			tinyMCEPopup.execCommand("mceEndUndoLevel");
-			wpLink.close();
-		},
-
-		updateFields : function( e, li, originalEvent ) {
-			inputs.url.val( li.children('.item-permalink').val() );
-			inputs.title.val( li.hasClass('no-title') ? '' : li.children('.item-title').text() );
-			if ( originalEvent && originalEvent.type == "click" )
-				inputs.url.focus();
-		},
-		setDefaultValues : function() {
-			// Set URL and description to defaults.
-			// Leave the new tab setting as-is.
-			inputs.url.val('http://');
-			inputs.title.val('');
-
-			// Update save prompt.
-			inputs.submit.val( wpLinkL10n.save );
-		},
-
-		searchInternalLinks : function() {
-			var t = $(this), waiting,
-				search = t.val();
-
-			if ( search.length > 2 ) {
-				rivers.recent.hide();
-				rivers.search.show();
-
-				// Don't search if the keypress didn't change the title.
-				if ( wpLink.lastSearch == search )
-					return;
-
-				wpLink.lastSearch = search;
-				waiting = t.siblings('img.waiting').show();
-
-				rivers.search.change( search );
-				rivers.search.ajax( function(){ waiting.hide(); });
-			} else {
-				rivers.search.hide();
-				rivers.recent.show();
-			}
-		},
-
-		next : function() {
-			rivers.search.next();
-			rivers.recent.next();
-		},
-		prev : function() {
-			rivers.search.prev();
-			rivers.recent.prev();
-		},
-
-		keydown : function( event ) {
-			var fn, key = $.ui.keyCode;
-
-			switch( event.which ) {
-				case key.UP:
-					fn = 'prev';
-				case key.DOWN:
-					fn = fn || 'next';
-					clearInterval( wpLink.keyInterval );
-					wpLink[ fn ]();
-					wpLink.keyInterval = setInterval( wpLink[ fn ], wpLink.keySensitivity );
-					break;
-				default:
-					return;
-			}
-			event.preventDefault();
-		},
-		keyup: function( event ) {
-			var key = $.ui.keyCode;
-
-			switch( event.which ) {
-				case key.ESCAPE:
-					event.stopImmediatePropagation();
-					if ( ! $(document).triggerHandler( 'wp_CloseOnEscape', [{ event: event, what: 'wplink', cb: wpLink.close }] ) )
-						wpLink.close();
-
-					return false;
-					break;
-				case key.UP:
-				case key.DOWN:
-					clearInterval( wpLink.keyInterval );
-					break;
-				default:
-					return;
-			}
-			event.preventDefault();
-		},
-
-		delayedCallback : function( func, delay ) {
-			var timeoutTriggered, funcTriggered, funcArgs, funcContext;
-
-			if ( ! delay )
-				return func;
-
-			setTimeout( function() {
-				if ( funcTriggered )
-					return func.apply( funcContext, funcArgs );
-				// Otherwise, wait.
-				timeoutTriggered = true;
-			}, delay);
-
-			return function() {
-				if ( timeoutTriggered )
-					return func.apply( this, arguments );
-				// Otherwise, wait.
-				funcArgs = arguments;
-				funcContext = this;
-				funcTriggered = true;
-			};
-		},
-
-		toggleInternalLinking : function( event ) {
-			var panel = $('#search-panel'),
-				widget = inputs.dialog.wpdialog('widget'),
-				// We're about to toggle visibility; it's currently the opposite
-				visible = !panel.is(':visible'),
-				win = $(window);
-
-			$(this).toggleClass('toggle-arrow-active', visible);
-
-			inputs.dialog.height('auto');
-			panel.slideToggle( 300, function() {
-				setUserSetting('wplink', visible ? '1' : '0');
-				inputs[ visible ? 'search' : 'url' ].focus();
-
-				// Move the box if the box is now expanded, was opened in a collapsed state,
-				// and if it needs to be moved. (Judged by bottom not being positive or
-				// bottom being smaller than top.)
-				var scroll = win.scrollTop(),
-					top = widget.offset().top,
-					bottom = top + widget.outerHeight(),
-					diff = bottom - win.height();
-
-				if ( diff > scroll ) {
-					widget.animate({'top': diff < top ?  top - diff : scroll }, 200);
-				}
-			});
-			event.preventDefault();
-		}
-	}
-
-	River = function( element, search ) {
-		var self = this;
-		this.element = element;
-		this.ul = element.children('ul');
-		this.waiting = element.find('.river-waiting');
-
-		this.change( search );
-		this.refresh();
-
-		element.scroll( function(){ self.maybeLoad(); });
-		element.delegate('li', 'click', function(e){ self.select( $(this), e ); });
-	};
-
-	$.extend( River.prototype, {
-		refresh: function() {
-			this.deselect();
-			this.visible = this.element.is(':visible');
-		},
-		show: function() {
-			if ( ! this.visible ) {
-				this.deselect();
-				this.element.show();
-				this.visible = true;
-			}
-		},
-		hide: function() {
-			this.element.hide();
-			this.visible = false;
-		},
-		// Selects a list item and triggers the river-select event.
-		select: function( li, event ) {
-			var liHeight, elHeight, liTop, elTop;
-
-			if ( li.hasClass('unselectable') || li == this.selected )
-				return;
-
-			this.deselect();
-			this.selected = li.addClass('selected');
-			// Make sure the element is visible
-			liHeight = li.outerHeight();
-			elHeight = this.element.height();
-			liTop = li.position().top;
-			elTop = this.element.scrollTop();
-
-			if ( liTop < 0 ) // Make first visible element
-				this.element.scrollTop( elTop + liTop );
-			else if ( liTop + liHeight > elHeight ) // Make last visible element
-				this.element.scrollTop( elTop + liTop - elHeight + liHeight );
-
-			// Trigger the river-select event
-			this.element.trigger('river-select', [ li, event, this ]);
-		},
-		deselect: function() {
-			if ( this.selected )
-				this.selected.removeClass('selected');
-			this.selected = false;
-		},
-		prev: function() {
-			if ( ! this.visible )
-				return;
-
-			var to;
-			if ( this.selected ) {
-				to = this.selected.prev('li');
-				if ( to.length )
-					this.select( to );
-			}
-		},
-		next: function() {
-			if ( ! this.visible )
-				return;
-
-			var to = this.selected ? this.selected.next('li') : $('li:not(.unselectable):first', this.element);
-			if ( to.length )
-				this.select( to );
-		},
-		ajax: function( callback ) {
-			var self = this,
-				delay = this.query.page == 1 ? 0 : wpLink.minRiverAJAXDuration,
-				response = wpLink.delayedCallback( function( results, params ) {
-					self.process( results, params );
-					if ( callback )
-						callback( results, params );
-				}, delay );
-
-			this.query.ajax( response );
-		},
-		change: function( search ) {
-			if ( this.query && this._search == search )
-				return;
-
-			this._search = search;
-			this.query = new Query( search );
-			this.element.scrollTop(0);
-		},
-		process: function( results, params ) {
-			var list = '', alt = true, classes = '',
-				firstPage = params.page == 1;
-
-			if ( !results ) {
-				if ( firstPage ) {
-					list += '<li class="unselectable"><span class="item-title"><em>'
-					+ wpLinkL10n.noMatchesFound
-					+ '</em></span></li>';
-				}
-			} else {
-				$.each( results, function() {
-					classes = alt ? 'alternate' : '';
-					classes += this['title'] ? '' : ' no-title';
-					list += classes ? '<li class="' + classes + '">' : '<li>';
-					list += '<input type="hidden" class="item-permalink" value="' + this['permalink'] + '" />';
-					list += '<span class="item-title">';
-					list += this['title'] ? this['title'] : wpLinkL10n.noTitle;
-					list += '</span><span class="item-info">' + this['info'] + '</span></li>';
-					alt = ! alt;
-				});
-			}
-
-			this.ul[ firstPage ? 'html' : 'append' ]( list );
-		},
-		maybeLoad: function() {
-			var self = this,
-				el = this.element,
-				bottom = el.scrollTop() + el.height();
-
-			if ( ! this.query.ready() || bottom < this.ul.height() - wpLink.riverBottomThreshold )
-				return;
-
-			setTimeout(function() {
-				var newTop = el.scrollTop(),
-					newBottom = newTop + el.height();
-
-				if ( ! self.query.ready() || newBottom < self.ul.height() - wpLink.riverBottomThreshold )
-					return;
-
-				self.waiting.show();
-				el.scrollTop( newTop + self.waiting.outerHeight() );
-
-				self.ajax( function() { self.waiting.hide(); });
-			}, wpLink.timeToTriggerRiver );
-		}
-	});
-
-	Query = function( search ) {
-		this.page = 1;
-		this.allLoaded = false;
-		this.querying = false;
-		this.search = search;
-	};
-
-	$.extend( Query.prototype, {
-		ready: function() {
-			return !( this.querying || this.allLoaded );
-		},
-		ajax: function( callback ) {
-			var self = this,
-				query = {
-					action : 'wp-link-ajax',
-					page : this.page,
-					'_ajax_linking_nonce' : inputs.nonce.val()
-				};
-
-			if ( this.search )
-				query.search = this.search;
-
-			this.querying = true;
-
-			$.post( ajaxurl, query, function(r) {
-				self.page++;
-				self.querying = false;
-				self.allLoaded = !r;
-				callback( r, query );
-			}, "json" );
-		}
-	});
-
-	$(document).ready( wpLink.init );
-})(jQuery);
--- a/web/wp-includes/js/wplink.js	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/js/wplink.js	Wed Dec 19 17:46:52 2012 -0800
@@ -1,1 +1,593 @@
-var wpLink;(function(f){var b={},e={},d,a,c;wpLink={timeToTriggerRiver:150,minRiverAJAXDuration:200,riverBottomThreshold:5,keySensitivity:100,lastSearch:"",textarea:"",init:function(){b.dialog=f("#wp-link");b.submit=f("#wp-link-submit");b.url=f("#url-field");b.nonce=f("#_ajax_linking_nonce");b.title=f("#link-title-field");b.openInNewTab=f("#link-target-checkbox");b.search=f("#search-field");e.search=new a(f("#search-results"));e.recent=new a(f("#most-recent-results"));e.elements=f(".query-results",b.dialog);b.dialog.keydown(wpLink.keydown);b.dialog.keyup(wpLink.keyup);b.submit.click(function(g){g.preventDefault();wpLink.update()});f("#wp-link-cancel").click(function(g){g.preventDefault();wpLink.close()});f("#internal-toggle").click(wpLink.toggleInternalLinking);e.elements.bind("river-select",wpLink.updateFields);b.search.keyup(wpLink.searchInternalLinks);b.dialog.bind("wpdialogrefresh",wpLink.refresh);b.dialog.bind("wpdialogbeforeopen",wpLink.beforeOpen);b.dialog.bind("wpdialogclose",wpLink.onClose)},beforeOpen:function(){wpLink.range=null;if(!wpLink.isMCE()&&document.selection){wpLink.textarea.focus();wpLink.range=document.selection.createRange()}},open:function(){if(!wpActiveEditor){return}this.textarea=f("#"+wpActiveEditor).get(0);if(!b.dialog.data("wpdialog")){b.dialog.wpdialog({title:wpLinkL10n.title,width:480,height:"auto",modal:true,dialogClass:"wp-dialog",zIndex:300000})}b.dialog.wpdialog("open")},isMCE:function(){return tinyMCEPopup&&(d=tinyMCEPopup.editor)&&!d.isHidden()},refresh:function(){e.search.refresh();e.recent.refresh();if(wpLink.isMCE()){wpLink.mceRefresh()}else{wpLink.setDefaultValues()}b.url.focus()[0].select();if(!e.recent.ul.children().length){e.recent.ajax()}},mceRefresh:function(){var g;d=tinyMCEPopup.editor;tinyMCEPopup.restoreSelection();if(g=d.dom.getParent(d.selection.getNode(),"A")){b.url.val(d.dom.getAttrib(g,"href"));b.title.val(d.dom.getAttrib(g,"title"));if("_blank"==d.dom.getAttrib(g,"target")){b.openInNewTab.prop("checked",true)}b.submit.val(wpLinkL10n.update)}else{wpLink.setDefaultValues()}tinyMCEPopup.storeSelection()},close:function(){if(wpLink.isMCE()){tinyMCEPopup.close()}else{b.dialog.wpdialog("close")}},onClose:function(){if(!wpLink.isMCE()){wpLink.textarea.focus();if(wpLink.range){wpLink.range.moveToBookmark(wpLink.range.getBookmark());wpLink.range.select()}}},getAttrs:function(){return{href:b.url.val(),title:b.title.val(),target:b.openInNewTab.prop("checked")?"_blank":""}},update:function(){if(wpLink.isMCE()){wpLink.mceUpdate()}else{wpLink.htmlUpdate()}},htmlUpdate:function(){var i,j,k,h,l,g=wpLink.textarea;if(!g){return}i=wpLink.getAttrs();if(!i.href||i.href=="http://"){return}j='<a href="'+i.href+'"';if(i.title){j+=' title="'+i.title+'"'}if(i.target){j+=' target="'+i.target+'"'}j+=">";if(document.selection&&wpLink.range){g.focus();wpLink.range.text=j+wpLink.range.text+"</a>";wpLink.range.moveToBookmark(wpLink.range.getBookmark());wpLink.range.select();wpLink.range=null}else{if(typeof g.selectionStart!=="undefined"){k=g.selectionStart;h=g.selectionEnd;selection=g.value.substring(k,h);j=j+selection+"</a>";l=k+j.length;if(k==h){l-="</a>".length}g.value=g.value.substring(0,k)+j+g.value.substring(h,g.value.length);g.selectionStart=g.selectionEnd=l}}wpLink.close();g.focus()},mceUpdate:function(){var h=tinyMCEPopup.editor,i=wpLink.getAttrs(),j,g;tinyMCEPopup.restoreSelection();j=h.dom.getParent(h.selection.getNode(),"A");if(!i.href||i.href=="http://"){if(j){tinyMCEPopup.execCommand("mceBeginUndoLevel");g=h.selection.getBookmark();h.dom.remove(j,1);h.selection.moveToBookmark(g);tinyMCEPopup.execCommand("mceEndUndoLevel");wpLink.close()}return}tinyMCEPopup.execCommand("mceBeginUndoLevel");if(j==null){h.getDoc().execCommand("unlink",false,null);tinyMCEPopup.execCommand("mceInsertLink",false,"#mce_temp_url#",{skip_undo:1});tinymce.each(h.dom.select("a"),function(k){if(h.dom.getAttrib(k,"href")=="#mce_temp_url#"){j=k;h.dom.setAttribs(j,i)}});if(f(j).text()=="#mce_temp_url#"){h.dom.remove(j);j=null}}else{h.dom.setAttribs(j,i)}if(j&&(j.childNodes.length!=1||j.firstChild.nodeName!="IMG")){h.focus();h.selection.select(j);h.selection.collapse(0);tinyMCEPopup.storeSelection()}tinyMCEPopup.execCommand("mceEndUndoLevel");wpLink.close()},updateFields:function(i,h,g){b.url.val(h.children(".item-permalink").val());b.title.val(h.hasClass("no-title")?"":h.children(".item-title").text());if(g&&g.type=="click"){b.url.focus()}},setDefaultValues:function(){b.url.val("http://");b.title.val("");b.submit.val(wpLinkL10n.save)},searchInternalLinks:function(){var h=f(this),i,g=h.val();if(g.length>2){e.recent.hide();e.search.show();if(wpLink.lastSearch==g){return}wpLink.lastSearch=g;i=h.siblings("img.waiting").show();e.search.change(g);e.search.ajax(function(){i.hide()})}else{e.search.hide();e.recent.show()}},next:function(){e.search.next();e.recent.next()},prev:function(){e.search.prev();e.recent.prev()},keydown:function(i){var h,g=f.ui.keyCode;switch(i.which){case g.UP:h="prev";case g.DOWN:h=h||"next";clearInterval(wpLink.keyInterval);wpLink[h]();wpLink.keyInterval=setInterval(wpLink[h],wpLink.keySensitivity);break;default:return}i.preventDefault()},keyup:function(h){var g=f.ui.keyCode;switch(h.which){case g.ESCAPE:h.stopImmediatePropagation();if(!f(document).triggerHandler("wp_CloseOnEscape",[{event:h,what:"wplink",cb:wpLink.close}])){wpLink.close()}return false;break;case g.UP:case g.DOWN:clearInterval(wpLink.keyInterval);break;default:return}h.preventDefault()},delayedCallback:function(i,g){var l,k,j,h;if(!g){return i}setTimeout(function(){if(k){return i.apply(h,j)}l=true},g);return function(){if(l){return i.apply(this,arguments)}j=arguments;h=this;k=true}},toggleInternalLinking:function(h){var g=f("#search-panel"),i=b.dialog.wpdialog("widget"),k=!g.is(":visible"),j=f(window);f(this).toggleClass("toggle-arrow-active",k);b.dialog.height("auto");g.slideToggle(300,function(){setUserSetting("wplink",k?"1":"0");b[k?"search":"url"].focus();var l=j.scrollTop(),o=i.offset().top,m=o+i.outerHeight(),n=m-j.height();if(n>l){i.animate({top:n<o?o-n:l},200)}});h.preventDefault()}};a=function(i,h){var g=this;this.element=i;this.ul=i.children("ul");this.waiting=i.find(".river-waiting");this.change(h);this.refresh();i.scroll(function(){g.maybeLoad()});i.delegate("li","click",function(j){g.select(f(this),j)})};f.extend(a.prototype,{refresh:function(){this.deselect();this.visible=this.element.is(":visible")},show:function(){if(!this.visible){this.deselect();this.element.show();this.visible=true}},hide:function(){this.element.hide();this.visible=false},select:function(h,k){var j,i,l,g;if(h.hasClass("unselectable")||h==this.selected){return}this.deselect();this.selected=h.addClass("selected");j=h.outerHeight();i=this.element.height();l=h.position().top;g=this.element.scrollTop();if(l<0){this.element.scrollTop(g+l)}else{if(l+j>i){this.element.scrollTop(g+l-i+j)}}this.element.trigger("river-select",[h,k,this])},deselect:function(){if(this.selected){this.selected.removeClass("selected")}this.selected=false},prev:function(){if(!this.visible){return}var g;if(this.selected){g=this.selected.prev("li");if(g.length){this.select(g)}}},next:function(){if(!this.visible){return}var g=this.selected?this.selected.next("li"):f("li:not(.unselectable):first",this.element);if(g.length){this.select(g)}},ajax:function(j){var h=this,i=this.query.page==1?0:wpLink.minRiverAJAXDuration,g=wpLink.delayedCallback(function(k,l){h.process(k,l);if(j){j(k,l)}},i);this.query.ajax(g)},change:function(g){if(this.query&&this._search==g){return}this._search=g;this.query=new c(g);this.element.scrollTop(0)},process:function(h,l){var i="",j=true,g="",k=l.page==1;if(!h){if(k){i+='<li class="unselectable"><span class="item-title"><em>'+wpLinkL10n.noMatchesFound+"</em></span></li>"}}else{f.each(h,function(){g=j?"alternate":"";g+=this["title"]?"":" no-title";i+=g?'<li class="'+g+'">':"<li>";i+='<input type="hidden" class="item-permalink" value="'+this["permalink"]+'" />';i+='<span class="item-title">';i+=this["title"]?this["title"]:wpLinkL10n.noTitle;i+='</span><span class="item-info">'+this["info"]+"</span></li>";j=!j})}this.ul[k?"html":"append"](i)},maybeLoad:function(){var h=this,i=this.element,g=i.scrollTop()+i.height();if(!this.query.ready()||g<this.ul.height()-wpLink.riverBottomThreshold){return}setTimeout(function(){var j=i.scrollTop(),k=j+i.height();if(!h.query.ready()||k<h.ul.height()-wpLink.riverBottomThreshold){return}h.waiting.show();i.scrollTop(j+h.waiting.outerHeight());h.ajax(function(){h.waiting.hide()})},wpLink.timeToTriggerRiver)}});c=function(g){this.page=1;this.allLoaded=false;this.querying=false;this.search=g};f.extend(c.prototype,{ready:function(){return !(this.querying||this.allLoaded)},ajax:function(i){var g=this,h={action:"wp-link-ajax",page:this.page,_ajax_linking_nonce:b.nonce.val()};if(this.search){h.search=this.search}this.querying=true;f.post(ajaxurl,h,function(j){g.page++;g.querying=false;g.allLoaded=!j;i(j,h)},"json")}});f(document).ready(wpLink.init)})(jQuery);
\ No newline at end of file
+var wpLink;
+
+(function($){
+	var inputs = {}, rivers = {}, ed, River, Query;
+
+	wpLink = {
+		timeToTriggerRiver: 150,
+		minRiverAJAXDuration: 200,
+		riverBottomThreshold: 5,
+		keySensitivity: 100,
+		lastSearch: '',
+		textarea: '',
+
+		init : function() {
+			inputs.dialog = $('#wp-link');
+			inputs.submit = $('#wp-link-submit');
+			// URL
+			inputs.url = $('#url-field');
+			inputs.nonce = $('#_ajax_linking_nonce');
+			// Secondary options
+			inputs.title = $('#link-title-field');
+			// Advanced Options
+			inputs.openInNewTab = $('#link-target-checkbox');
+			inputs.search = $('#search-field');
+			// Build Rivers
+			rivers.search = new River( $('#search-results') );
+			rivers.recent = new River( $('#most-recent-results') );
+			rivers.elements = $('.query-results', inputs.dialog);
+
+			// Bind event handlers
+			inputs.dialog.keydown( wpLink.keydown );
+			inputs.dialog.keyup( wpLink.keyup );
+			inputs.submit.click( function(e){
+				e.preventDefault();
+				wpLink.update();
+			});
+			$('#wp-link-cancel').click( function(e){
+				e.preventDefault();
+				wpLink.close();
+			});
+			$('#internal-toggle').click( wpLink.toggleInternalLinking );
+
+			rivers.elements.bind('river-select', wpLink.updateFields );
+
+			inputs.search.keyup( wpLink.searchInternalLinks );
+
+			inputs.dialog.bind('wpdialogrefresh', wpLink.refresh);
+			inputs.dialog.bind('wpdialogbeforeopen', wpLink.beforeOpen);
+			inputs.dialog.bind('wpdialogclose', wpLink.onClose);
+		},
+
+		beforeOpen : function() {
+			wpLink.range = null;
+
+			if ( ! wpLink.isMCE() && document.selection ) {
+				wpLink.textarea.focus();
+				wpLink.range = document.selection.createRange();
+			}
+		},
+
+		open : function() {
+			if ( !wpActiveEditor )
+				return;
+
+			this.textarea = $('#'+wpActiveEditor).get(0);
+
+			// Initialize the dialog if necessary (html mode).
+			if ( ! inputs.dialog.data('wpdialog') ) {
+				inputs.dialog.wpdialog({
+					title: wpLinkL10n.title,
+					width: 480,
+					height: 'auto',
+					modal: true,
+					dialogClass: 'wp-dialog',
+					zIndex: 300000
+				});
+			}
+
+			inputs.dialog.wpdialog('open');
+		},
+
+		isMCE : function() {
+			return tinyMCEPopup && ( ed = tinyMCEPopup.editor ) && ! ed.isHidden();
+		},
+
+		refresh : function() {
+			// Refresh rivers (clear links, check visibility)
+			rivers.search.refresh();
+			rivers.recent.refresh();
+
+			if ( wpLink.isMCE() )
+				wpLink.mceRefresh();
+			else
+				wpLink.setDefaultValues();
+
+			// Focus the URL field and highlight its contents.
+			//     If this is moved above the selection changes,
+			//     IE will show a flashing cursor over the dialog.
+			inputs.url.focus()[0].select();
+			// Load the most recent results if this is the first time opening the panel.
+			if ( ! rivers.recent.ul.children().length )
+				rivers.recent.ajax();
+		},
+
+		mceRefresh : function() {
+			var e;
+			ed = tinyMCEPopup.editor;
+
+			tinyMCEPopup.restoreSelection();
+
+			// If link exists, select proper values.
+			if ( e = ed.dom.getParent(ed.selection.getNode(), 'A') ) {
+				// Set URL and description.
+				inputs.url.val( ed.dom.getAttrib(e, 'href') );
+				inputs.title.val( ed.dom.getAttrib(e, 'title') );
+				// Set open in new tab.
+				if ( "_blank" == ed.dom.getAttrib(e, 'target') )
+					inputs.openInNewTab.prop('checked', true);
+				// Update save prompt.
+				inputs.submit.val( wpLinkL10n.update );
+
+			// If there's no link, set the default values.
+			} else {
+				wpLink.setDefaultValues();
+			}
+
+			tinyMCEPopup.storeSelection();
+		},
+
+		close : function() {
+			if ( wpLink.isMCE() )
+				tinyMCEPopup.close();
+			else
+				inputs.dialog.wpdialog('close');
+		},
+
+		onClose: function() {
+			if ( ! wpLink.isMCE() ) {
+				wpLink.textarea.focus();
+				if ( wpLink.range ) {
+					wpLink.range.moveToBookmark( wpLink.range.getBookmark() );
+					wpLink.range.select();
+				}
+			}
+		},
+
+		getAttrs : function() {
+			return {
+				href : inputs.url.val(),
+				title : inputs.title.val(),
+				target : inputs.openInNewTab.prop('checked') ? '_blank' : ''
+			};
+		},
+
+		update : function() {
+			if ( wpLink.isMCE() )
+				wpLink.mceUpdate();
+			else
+				wpLink.htmlUpdate();
+		},
+
+		htmlUpdate : function() {
+			var attrs, html, begin, end, cursor,
+				textarea = wpLink.textarea;
+
+			if ( ! textarea )
+				return;
+
+			attrs = wpLink.getAttrs();
+
+			// If there's no href, return.
+			if ( ! attrs.href || attrs.href == 'http://' )
+				return;
+
+			// Build HTML
+			html = '<a href="' + attrs.href + '"';
+
+			if ( attrs.title )
+				html += ' title="' + attrs.title + '"';
+			if ( attrs.target )
+				html += ' target="' + attrs.target + '"';
+
+			html += '>';
+
+			// Insert HTML
+			if ( document.selection && wpLink.range ) {
+				// IE
+				// Note: If no text is selected, IE will not place the cursor
+				//       inside the closing tag.
+				textarea.focus();
+				wpLink.range.text = html + wpLink.range.text + '</a>';
+				wpLink.range.moveToBookmark( wpLink.range.getBookmark() );
+				wpLink.range.select();
+
+				wpLink.range = null;
+			} else if ( typeof textarea.selectionStart !== 'undefined' ) {
+				// W3C
+				begin       = textarea.selectionStart;
+				end         = textarea.selectionEnd;
+				selection   = textarea.value.substring( begin, end );
+				html        = html + selection + '</a>';
+				cursor      = begin + html.length;
+
+				// If no next is selected, place the cursor inside the closing tag.
+				if ( begin == end )
+					cursor -= '</a>'.length;
+
+				textarea.value = textarea.value.substring( 0, begin )
+				               + html
+				               + textarea.value.substring( end, textarea.value.length );
+
+				// Update cursor position
+				textarea.selectionStart = textarea.selectionEnd = cursor;
+			}
+
+			wpLink.close();
+			textarea.focus();
+		},
+
+		mceUpdate : function() {
+			var ed = tinyMCEPopup.editor,
+				attrs = wpLink.getAttrs(),
+				e, b;
+
+			tinyMCEPopup.restoreSelection();
+			e = ed.dom.getParent(ed.selection.getNode(), 'A');
+
+			// If the values are empty, unlink and return
+			if ( ! attrs.href || attrs.href == 'http://' ) {
+				if ( e ) {
+					tinyMCEPopup.execCommand("mceBeginUndoLevel");
+					b = ed.selection.getBookmark();
+					ed.dom.remove(e, 1);
+					ed.selection.moveToBookmark(b);
+					tinyMCEPopup.execCommand("mceEndUndoLevel");
+					wpLink.close();
+				}
+				return;
+			}
+
+			tinyMCEPopup.execCommand("mceBeginUndoLevel");
+
+			if (e == null) {
+				ed.getDoc().execCommand("unlink", false, null);
+				tinyMCEPopup.execCommand("mceInsertLink", false, "#mce_temp_url#", {skip_undo : 1});
+
+				tinymce.each(ed.dom.select("a"), function(n) {
+					if (ed.dom.getAttrib(n, 'href') == '#mce_temp_url#') {
+						e = n;
+						ed.dom.setAttribs(e, attrs);
+					}
+				});
+
+				// Sometimes WebKit lets a user create a link where
+				// they shouldn't be able to. In this case, CreateLink
+				// injects "#mce_temp_url#" into their content. Fix it.
+				if ( $(e).text() == '#mce_temp_url#' ) {
+					ed.dom.remove(e);
+					e = null;
+				}
+			} else {
+				ed.dom.setAttribs(e, attrs);
+			}
+
+			// Don't move caret if selection was image
+			if ( e && (e.childNodes.length != 1 || e.firstChild.nodeName != 'IMG') ) {
+				ed.focus();
+				ed.selection.select(e);
+				ed.selection.collapse(0);
+				tinyMCEPopup.storeSelection();
+			}
+
+			tinyMCEPopup.execCommand("mceEndUndoLevel");
+			wpLink.close();
+		},
+
+		updateFields : function( e, li, originalEvent ) {
+			inputs.url.val( li.children('.item-permalink').val() );
+			inputs.title.val( li.hasClass('no-title') ? '' : li.children('.item-title').text() );
+			if ( originalEvent && originalEvent.type == "click" )
+				inputs.url.focus();
+		},
+		setDefaultValues : function() {
+			// Set URL and description to defaults.
+			// Leave the new tab setting as-is.
+			inputs.url.val('http://');
+			inputs.title.val('');
+
+			// Update save prompt.
+			inputs.submit.val( wpLinkL10n.save );
+		},
+
+		searchInternalLinks : function() {
+			var t = $(this), waiting,
+				search = t.val();
+
+			if ( search.length > 2 ) {
+				rivers.recent.hide();
+				rivers.search.show();
+
+				// Don't search if the keypress didn't change the title.
+				if ( wpLink.lastSearch == search )
+					return;
+
+				wpLink.lastSearch = search;
+				waiting = t.parent().find('.spinner').show();
+
+				rivers.search.change( search );
+				rivers.search.ajax( function(){ waiting.hide(); });
+			} else {
+				rivers.search.hide();
+				rivers.recent.show();
+			}
+		},
+
+		next : function() {
+			rivers.search.next();
+			rivers.recent.next();
+		},
+		prev : function() {
+			rivers.search.prev();
+			rivers.recent.prev();
+		},
+
+		keydown : function( event ) {
+			var fn, key = $.ui.keyCode;
+
+			switch( event.which ) {
+				case key.UP:
+					fn = 'prev';
+				case key.DOWN:
+					fn = fn || 'next';
+					clearInterval( wpLink.keyInterval );
+					wpLink[ fn ]();
+					wpLink.keyInterval = setInterval( wpLink[ fn ], wpLink.keySensitivity );
+					break;
+				default:
+					return;
+			}
+			event.preventDefault();
+		},
+		keyup: function( event ) {
+			var key = $.ui.keyCode;
+
+			switch( event.which ) {
+				case key.ESCAPE:
+					event.stopImmediatePropagation();
+					if ( ! $(document).triggerHandler( 'wp_CloseOnEscape', [{ event: event, what: 'wplink', cb: wpLink.close }] ) )
+						wpLink.close();
+
+					return false;
+					break;
+				case key.UP:
+				case key.DOWN:
+					clearInterval( wpLink.keyInterval );
+					break;
+				default:
+					return;
+			}
+			event.preventDefault();
+		},
+
+		delayedCallback : function( func, delay ) {
+			var timeoutTriggered, funcTriggered, funcArgs, funcContext;
+
+			if ( ! delay )
+				return func;
+
+			setTimeout( function() {
+				if ( funcTriggered )
+					return func.apply( funcContext, funcArgs );
+				// Otherwise, wait.
+				timeoutTriggered = true;
+			}, delay);
+
+			return function() {
+				if ( timeoutTriggered )
+					return func.apply( this, arguments );
+				// Otherwise, wait.
+				funcArgs = arguments;
+				funcContext = this;
+				funcTriggered = true;
+			};
+		},
+
+		toggleInternalLinking : function( event ) {
+			var panel = $('#search-panel'),
+				widget = inputs.dialog.wpdialog('widget'),
+				// We're about to toggle visibility; it's currently the opposite
+				visible = !panel.is(':visible'),
+				win = $(window);
+
+			$(this).toggleClass('toggle-arrow-active', visible);
+
+			inputs.dialog.height('auto');
+			panel.slideToggle( 300, function() {
+				setUserSetting('wplink', visible ? '1' : '0');
+				inputs[ visible ? 'search' : 'url' ].focus();
+
+				// Move the box if the box is now expanded, was opened in a collapsed state,
+				// and if it needs to be moved. (Judged by bottom not being positive or
+				// bottom being smaller than top.)
+				var scroll = win.scrollTop(),
+					top = widget.offset().top,
+					bottom = top + widget.outerHeight(),
+					diff = bottom - win.height();
+
+				if ( diff > scroll ) {
+					widget.animate({'top': diff < top ?  top - diff : scroll }, 200);
+				}
+			});
+			event.preventDefault();
+		}
+	}
+
+	River = function( element, search ) {
+		var self = this;
+		this.element = element;
+		this.ul = element.children('ul');
+		this.waiting = element.find('.river-waiting');
+
+		this.change( search );
+		this.refresh();
+
+		element.scroll( function(){ self.maybeLoad(); });
+		element.delegate('li', 'click', function(e){ self.select( $(this), e ); });
+	};
+
+	$.extend( River.prototype, {
+		refresh: function() {
+			this.deselect();
+			this.visible = this.element.is(':visible');
+		},
+		show: function() {
+			if ( ! this.visible ) {
+				this.deselect();
+				this.element.show();
+				this.visible = true;
+			}
+		},
+		hide: function() {
+			this.element.hide();
+			this.visible = false;
+		},
+		// Selects a list item and triggers the river-select event.
+		select: function( li, event ) {
+			var liHeight, elHeight, liTop, elTop;
+
+			if ( li.hasClass('unselectable') || li == this.selected )
+				return;
+
+			this.deselect();
+			this.selected = li.addClass('selected');
+			// Make sure the element is visible
+			liHeight = li.outerHeight();
+			elHeight = this.element.height();
+			liTop = li.position().top;
+			elTop = this.element.scrollTop();
+
+			if ( liTop < 0 ) // Make first visible element
+				this.element.scrollTop( elTop + liTop );
+			else if ( liTop + liHeight > elHeight ) // Make last visible element
+				this.element.scrollTop( elTop + liTop - elHeight + liHeight );
+
+			// Trigger the river-select event
+			this.element.trigger('river-select', [ li, event, this ]);
+		},
+		deselect: function() {
+			if ( this.selected )
+				this.selected.removeClass('selected');
+			this.selected = false;
+		},
+		prev: function() {
+			if ( ! this.visible )
+				return;
+
+			var to;
+			if ( this.selected ) {
+				to = this.selected.prev('li');
+				if ( to.length )
+					this.select( to );
+			}
+		},
+		next: function() {
+			if ( ! this.visible )
+				return;
+
+			var to = this.selected ? this.selected.next('li') : $('li:not(.unselectable):first', this.element);
+			if ( to.length )
+				this.select( to );
+		},
+		ajax: function( callback ) {
+			var self = this,
+				delay = this.query.page == 1 ? 0 : wpLink.minRiverAJAXDuration,
+				response = wpLink.delayedCallback( function( results, params ) {
+					self.process( results, params );
+					if ( callback )
+						callback( results, params );
+				}, delay );
+
+			this.query.ajax( response );
+		},
+		change: function( search ) {
+			if ( this.query && this._search == search )
+				return;
+
+			this._search = search;
+			this.query = new Query( search );
+			this.element.scrollTop(0);
+		},
+		process: function( results, params ) {
+			var list = '', alt = true, classes = '',
+				firstPage = params.page == 1;
+
+			if ( !results ) {
+				if ( firstPage ) {
+					list += '<li class="unselectable"><span class="item-title"><em>'
+					+ wpLinkL10n.noMatchesFound
+					+ '</em></span></li>';
+				}
+			} else {
+				$.each( results, function() {
+					classes = alt ? 'alternate' : '';
+					classes += this['title'] ? '' : ' no-title';
+					list += classes ? '<li class="' + classes + '">' : '<li>';
+					list += '<input type="hidden" class="item-permalink" value="' + this['permalink'] + '" />';
+					list += '<span class="item-title">';
+					list += this['title'] ? this['title'] : wpLinkL10n.noTitle;
+					list += '</span><span class="item-info">' + this['info'] + '</span></li>';
+					alt = ! alt;
+				});
+			}
+
+			this.ul[ firstPage ? 'html' : 'append' ]( list );
+		},
+		maybeLoad: function() {
+			var self = this,
+				el = this.element,
+				bottom = el.scrollTop() + el.height();
+
+			if ( ! this.query.ready() || bottom < this.ul.height() - wpLink.riverBottomThreshold )
+				return;
+
+			setTimeout(function() {
+				var newTop = el.scrollTop(),
+					newBottom = newTop + el.height();
+
+				if ( ! self.query.ready() || newBottom < self.ul.height() - wpLink.riverBottomThreshold )
+					return;
+
+				self.waiting.show();
+				el.scrollTop( newTop + self.waiting.outerHeight() );
+
+				self.ajax( function() { self.waiting.hide(); });
+			}, wpLink.timeToTriggerRiver );
+		}
+	});
+
+	Query = function( search ) {
+		this.page = 1;
+		this.allLoaded = false;
+		this.querying = false;
+		this.search = search;
+	};
+
+	$.extend( Query.prototype, {
+		ready: function() {
+			return !( this.querying || this.allLoaded );
+		},
+		ajax: function( callback ) {
+			var self = this,
+				query = {
+					action : 'wp-link-ajax',
+					page : this.page,
+					'_ajax_linking_nonce' : inputs.nonce.val()
+				};
+
+			if ( this.search )
+				query.search = this.search;
+
+			this.querying = true;
+
+			$.post( ajaxurl, query, function(r) {
+				self.page++;
+				self.querying = false;
+				self.allLoaded = !r;
+				callback( r, query );
+			}, "json" );
+		}
+	});
+
+	$(document).ready( wpLink.init );
+})(jQuery);
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-includes/js/wplink.min.js	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,1 @@
+var wpLink;(function(f){var b={},e={},d,a,c;wpLink={timeToTriggerRiver:150,minRiverAJAXDuration:200,riverBottomThreshold:5,keySensitivity:100,lastSearch:"",textarea:"",init:function(){b.dialog=f("#wp-link");b.submit=f("#wp-link-submit");b.url=f("#url-field");b.nonce=f("#_ajax_linking_nonce");b.title=f("#link-title-field");b.openInNewTab=f("#link-target-checkbox");b.search=f("#search-field");e.search=new a(f("#search-results"));e.recent=new a(f("#most-recent-results"));e.elements=f(".query-results",b.dialog);b.dialog.keydown(wpLink.keydown);b.dialog.keyup(wpLink.keyup);b.submit.click(function(g){g.preventDefault();wpLink.update()});f("#wp-link-cancel").click(function(g){g.preventDefault();wpLink.close()});f("#internal-toggle").click(wpLink.toggleInternalLinking);e.elements.bind("river-select",wpLink.updateFields);b.search.keyup(wpLink.searchInternalLinks);b.dialog.bind("wpdialogrefresh",wpLink.refresh);b.dialog.bind("wpdialogbeforeopen",wpLink.beforeOpen);b.dialog.bind("wpdialogclose",wpLink.onClose)},beforeOpen:function(){wpLink.range=null;if(!wpLink.isMCE()&&document.selection){wpLink.textarea.focus();wpLink.range=document.selection.createRange()}},open:function(){if(!wpActiveEditor){return}this.textarea=f("#"+wpActiveEditor).get(0);if(!b.dialog.data("wpdialog")){b.dialog.wpdialog({title:wpLinkL10n.title,width:480,height:"auto",modal:true,dialogClass:"wp-dialog",zIndex:300000})}b.dialog.wpdialog("open")},isMCE:function(){return tinyMCEPopup&&(d=tinyMCEPopup.editor)&&!d.isHidden()},refresh:function(){e.search.refresh();e.recent.refresh();if(wpLink.isMCE()){wpLink.mceRefresh()}else{wpLink.setDefaultValues()}b.url.focus()[0].select();if(!e.recent.ul.children().length){e.recent.ajax()}},mceRefresh:function(){var g;d=tinyMCEPopup.editor;tinyMCEPopup.restoreSelection();if(g=d.dom.getParent(d.selection.getNode(),"A")){b.url.val(d.dom.getAttrib(g,"href"));b.title.val(d.dom.getAttrib(g,"title"));if("_blank"==d.dom.getAttrib(g,"target")){b.openInNewTab.prop("checked",true)}b.submit.val(wpLinkL10n.update)}else{wpLink.setDefaultValues()}tinyMCEPopup.storeSelection()},close:function(){if(wpLink.isMCE()){tinyMCEPopup.close()}else{b.dialog.wpdialog("close")}},onClose:function(){if(!wpLink.isMCE()){wpLink.textarea.focus();if(wpLink.range){wpLink.range.moveToBookmark(wpLink.range.getBookmark());wpLink.range.select()}}},getAttrs:function(){return{href:b.url.val(),title:b.title.val(),target:b.openInNewTab.prop("checked")?"_blank":""}},update:function(){if(wpLink.isMCE()){wpLink.mceUpdate()}else{wpLink.htmlUpdate()}},htmlUpdate:function(){var i,j,k,h,l,g=wpLink.textarea;if(!g){return}i=wpLink.getAttrs();if(!i.href||i.href=="http://"){return}j='<a href="'+i.href+'"';if(i.title){j+=' title="'+i.title+'"'}if(i.target){j+=' target="'+i.target+'"'}j+=">";if(document.selection&&wpLink.range){g.focus();wpLink.range.text=j+wpLink.range.text+"</a>";wpLink.range.moveToBookmark(wpLink.range.getBookmark());wpLink.range.select();wpLink.range=null}else{if(typeof g.selectionStart!=="undefined"){k=g.selectionStart;h=g.selectionEnd;selection=g.value.substring(k,h);j=j+selection+"</a>";l=k+j.length;if(k==h){l-="</a>".length}g.value=g.value.substring(0,k)+j+g.value.substring(h,g.value.length);g.selectionStart=g.selectionEnd=l}}wpLink.close();g.focus()},mceUpdate:function(){var h=tinyMCEPopup.editor,i=wpLink.getAttrs(),j,g;tinyMCEPopup.restoreSelection();j=h.dom.getParent(h.selection.getNode(),"A");if(!i.href||i.href=="http://"){if(j){tinyMCEPopup.execCommand("mceBeginUndoLevel");g=h.selection.getBookmark();h.dom.remove(j,1);h.selection.moveToBookmark(g);tinyMCEPopup.execCommand("mceEndUndoLevel");wpLink.close()}return}tinyMCEPopup.execCommand("mceBeginUndoLevel");if(j==null){h.getDoc().execCommand("unlink",false,null);tinyMCEPopup.execCommand("mceInsertLink",false,"#mce_temp_url#",{skip_undo:1});tinymce.each(h.dom.select("a"),function(k){if(h.dom.getAttrib(k,"href")=="#mce_temp_url#"){j=k;h.dom.setAttribs(j,i)}});if(f(j).text()=="#mce_temp_url#"){h.dom.remove(j);j=null}}else{h.dom.setAttribs(j,i)}if(j&&(j.childNodes.length!=1||j.firstChild.nodeName!="IMG")){h.focus();h.selection.select(j);h.selection.collapse(0);tinyMCEPopup.storeSelection()}tinyMCEPopup.execCommand("mceEndUndoLevel");wpLink.close()},updateFields:function(i,h,g){b.url.val(h.children(".item-permalink").val());b.title.val(h.hasClass("no-title")?"":h.children(".item-title").text());if(g&&g.type=="click"){b.url.focus()}},setDefaultValues:function(){b.url.val("http://");b.title.val("");b.submit.val(wpLinkL10n.save)},searchInternalLinks:function(){var h=f(this),i,g=h.val();if(g.length>2){e.recent.hide();e.search.show();if(wpLink.lastSearch==g){return}wpLink.lastSearch=g;i=h.parent().find(".spinner").show();e.search.change(g);e.search.ajax(function(){i.hide()})}else{e.search.hide();e.recent.show()}},next:function(){e.search.next();e.recent.next()},prev:function(){e.search.prev();e.recent.prev()},keydown:function(i){var h,g=f.ui.keyCode;switch(i.which){case g.UP:h="prev";case g.DOWN:h=h||"next";clearInterval(wpLink.keyInterval);wpLink[h]();wpLink.keyInterval=setInterval(wpLink[h],wpLink.keySensitivity);break;default:return}i.preventDefault()},keyup:function(h){var g=f.ui.keyCode;switch(h.which){case g.ESCAPE:h.stopImmediatePropagation();if(!f(document).triggerHandler("wp_CloseOnEscape",[{event:h,what:"wplink",cb:wpLink.close}])){wpLink.close()}return false;break;case g.UP:case g.DOWN:clearInterval(wpLink.keyInterval);break;default:return}h.preventDefault()},delayedCallback:function(i,g){var l,k,j,h;if(!g){return i}setTimeout(function(){if(k){return i.apply(h,j)}l=true},g);return function(){if(l){return i.apply(this,arguments)}j=arguments;h=this;k=true}},toggleInternalLinking:function(h){var g=f("#search-panel"),i=b.dialog.wpdialog("widget"),k=!g.is(":visible"),j=f(window);f(this).toggleClass("toggle-arrow-active",k);b.dialog.height("auto");g.slideToggle(300,function(){setUserSetting("wplink",k?"1":"0");b[k?"search":"url"].focus();var l=j.scrollTop(),o=i.offset().top,m=o+i.outerHeight(),n=m-j.height();if(n>l){i.animate({top:n<o?o-n:l},200)}});h.preventDefault()}};a=function(i,h){var g=this;this.element=i;this.ul=i.children("ul");this.waiting=i.find(".river-waiting");this.change(h);this.refresh();i.scroll(function(){g.maybeLoad()});i.delegate("li","click",function(j){g.select(f(this),j)})};f.extend(a.prototype,{refresh:function(){this.deselect();this.visible=this.element.is(":visible")},show:function(){if(!this.visible){this.deselect();this.element.show();this.visible=true}},hide:function(){this.element.hide();this.visible=false},select:function(h,k){var j,i,l,g;if(h.hasClass("unselectable")||h==this.selected){return}this.deselect();this.selected=h.addClass("selected");j=h.outerHeight();i=this.element.height();l=h.position().top;g=this.element.scrollTop();if(l<0){this.element.scrollTop(g+l)}else{if(l+j>i){this.element.scrollTop(g+l-i+j)}}this.element.trigger("river-select",[h,k,this])},deselect:function(){if(this.selected){this.selected.removeClass("selected")}this.selected=false},prev:function(){if(!this.visible){return}var g;if(this.selected){g=this.selected.prev("li");if(g.length){this.select(g)}}},next:function(){if(!this.visible){return}var g=this.selected?this.selected.next("li"):f("li:not(.unselectable):first",this.element);if(g.length){this.select(g)}},ajax:function(j){var h=this,i=this.query.page==1?0:wpLink.minRiverAJAXDuration,g=wpLink.delayedCallback(function(k,l){h.process(k,l);if(j){j(k,l)}},i);this.query.ajax(g)},change:function(g){if(this.query&&this._search==g){return}this._search=g;this.query=new c(g);this.element.scrollTop(0)},process:function(h,l){var i="",j=true,g="",k=l.page==1;if(!h){if(k){i+='<li class="unselectable"><span class="item-title"><em>'+wpLinkL10n.noMatchesFound+"</em></span></li>"}}else{f.each(h,function(){g=j?"alternate":"";g+=this["title"]?"":" no-title";i+=g?'<li class="'+g+'">':"<li>";i+='<input type="hidden" class="item-permalink" value="'+this["permalink"]+'" />';i+='<span class="item-title">';i+=this["title"]?this["title"]:wpLinkL10n.noTitle;i+='</span><span class="item-info">'+this["info"]+"</span></li>";j=!j})}this.ul[k?"html":"append"](i)},maybeLoad:function(){var h=this,i=this.element,g=i.scrollTop()+i.height();if(!this.query.ready()||g<this.ul.height()-wpLink.riverBottomThreshold){return}setTimeout(function(){var j=i.scrollTop(),k=j+i.height();if(!h.query.ready()||k<h.ul.height()-wpLink.riverBottomThreshold){return}h.waiting.show();i.scrollTop(j+h.waiting.outerHeight());h.ajax(function(){h.waiting.hide()})},wpLink.timeToTriggerRiver)}});c=function(g){this.page=1;this.allLoaded=false;this.querying=false;this.search=g};f.extend(c.prototype,{ready:function(){return !(this.querying||this.allLoaded)},ajax:function(i){var g=this,h={action:"wp-link-ajax",page:this.page,_ajax_linking_nonce:b.nonce.val()};if(this.search){h.search=this.search}this.querying=true;f.post(ajaxurl,h,function(j){g.page++;g.querying=false;g.allLoaded=!j;i(j,h)},"json")}});f(document).ready(wpLink.init)})(jQuery);
\ No newline at end of file
--- a/web/wp-includes/kses.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/kses.php	Wed Dec 19 17:46:52 2012 -0800
@@ -34,6 +34,11 @@
 /**
  * You can override this in a plugin.
  *
+ * The wp_kses_allowed_html filter is more powerful and supplies context.
+ * CUSTOM_TAGS is not recommended and should be considered deprecated.
+ *
+ * @see wp_kses_allowed_html()
+ *
  * @since 1.2.0
  */
 if ( ! defined( 'CUSTOM_TAGS' ) )
@@ -51,50 +56,42 @@
 	$allowedposttags = array(
 		'address' => array(),
 		'a' => array(
-			'class' => true,
 			'href' => true,
-			'id' => true,
-			'title' => true,
 			'rel' => true,
 			'rev' => true,
 			'name' => true,
 			'target' => true,
 		),
-		'abbr' => array(
-			'class' => true,
-			'title' => true,
-		),
-		'acronym' => array(
-			'title' => true,
+		'abbr' => array(),
+		'acronym' => array(),
+		'area' => array(
+			'alt' => true,
+			'coords' => true,
+			'href' => true,
+			'nohref' => true,
+			'shape' => true,
+			'target' => true,
 		),
 		'article' => array(
 			'align' => true,
-			'class' => true,
 			'dir' => true,
 			'lang' => true,
-			'style' => true,
 			'xml:lang' => true,
 		),
 		'aside' => array(
 			'align' => true,
-			'class' => true,
 			'dir' => true,
 			'lang' => true,
-			'style' => true,
 			'xml:lang' => true,
 		),
 		'b' => array(),
 		'big' => array(),
 		'blockquote' => array(
-			'id' => true,
 			'cite' => true,
-			'class' => true,
 			'lang' => true,
 			'xml:lang' => true,
 		),
-		'br' => array (
-			'class' => true,
-		),
+		'br' => array(),
 		'button' => array(
 			'disabled' => true,
 			'name' => true,
@@ -103,24 +100,18 @@
 		),
 		'caption' => array(
 			'align' => true,
-			'class' => true,
 		),
-		'cite' => array (
-			'class' => true,
+		'cite' => array(
 			'dir' => true,
 			'lang' => true,
-			'title' => true,
 		),
-		'code' => array (
-			'style' => true,
-		),
+		'code' => array(),
 		'col' => array(
 			'align' => true,
 			'char' => true,
 			'charoff' => true,
 			'span' => true,
 			'dir' => true,
-			'style' => true,
 			'valign' => true,
 			'width' => true,
 		),
@@ -130,19 +121,15 @@
 		'dd' => array(),
 		'details' => array(
 			'align' => true,
-			'class' => true,
 			'dir' => true,
 			'lang' => true,
 			'open' => true,
-			'style' => true,
 			'xml:lang' => true,
 		),
 		'div' => array(
 			'align' => true,
-			'class' => true,
 			'dir' => true,
 			'lang' => true,
-			'style' => true,
 			'xml:lang' => true,
 		),
 		'dl' => array(),
@@ -151,18 +138,14 @@
 		'fieldset' => array(),
 		'figure' => array(
 			'align' => true,
-			'class' => true,
 			'dir' => true,
 			'lang' => true,
-			'style' => true,
 			'xml:lang' => true,
 		),
 		'figcaption' => array(
 			'align' => true,
-			'class' => true,
 			'dir' => true,
 			'lang' => true,
-			'style' => true,
 			'xml:lang' => true,
 		),
 		'font' => array(
@@ -172,10 +155,8 @@
 		),
 		'footer' => array(
 			'align' => true,
-			'class' => true,
 			'dir' => true,
 			'lang' => true,
-			'style' => true,
 			'xml:lang' => true,
 		),
 		'form' => array(
@@ -189,59 +170,36 @@
 		),
 		'h1' => array(
 			'align' => true,
-			'class' => true,
-			'id'    => true,
-			'style' => true,
 		),
-		'h2' => array (
+		'h2' => array(
 			'align' => true,
-			'class' => true,
-			'id'    => true,
-			'style' => true,
 		),
-		'h3' => array (
+		'h3' => array(
 			'align' => true,
-			'class' => true,
-			'id'    => true,
-			'style' => true,
 		),
-		'h4' => array (
-			'align' => true,
-			'class' => true,
-			'id'    => true,
-			'style' => true,
-		),
-		'h5' => array (
+		'h4' => array(
 			'align' => true,
-			'class' => true,
-			'id'    => true,
-			'style' => true,
 		),
-		'h6' => array (
+		'h5' => array(
 			'align' => true,
-			'class' => true,
-			'id'    => true,
-			'style' => true,
+		),
+		'h6' => array(
+			'align' => true,
 		),
 		'header' => array(
 			'align' => true,
-			'class' => true,
 			'dir' => true,
 			'lang' => true,
-			'style' => true,
 			'xml:lang' => true,
 		),
 		'hgroup' => array(
 			'align' => true,
-			'class' => true,
 			'dir' => true,
 			'lang' => true,
-			'style' => true,
 			'xml:lang' => true,
 		),
-		'hr' => array (
+		'hr' => array(
 			'align' => true,
-			'class' => true,
 			'noshade' => true,
 			'size' => true,
 			'width' => true,
@@ -251,13 +209,12 @@
 			'alt' => true,
 			'align' => true,
 			'border' => true,
-			'class' => true,
 			'height' => true,
 			'hspace' => true,
 			'longdesc' => true,
 			'vspace' => true,
 			'src' => true,
-			'style' => true,
+			'usemap' => true,
 			'width' => true,
 		),
 		'ins' => array(
@@ -271,65 +228,54 @@
 		'legend' => array(
 			'align' => true,
 		),
-		'li' => array (
+		'li' => array(
 			'align' => true,
-			'class' => true,
 		),
-		'menu' => array (
-			'class' => true,
-			'style' => true,
+		'map' => array(
+			'name' => true,
+		),
+		'menu' => array(
 			'type' => true,
 		),
 		'nav' => array(
 			'align' => true,
-			'class' => true,
 			'dir' => true,
 			'lang' => true,
-			'style' => true,
 			'xml:lang' => true,
 		),
 		'p' => array(
-			'class' => true,
 			'align' => true,
 			'dir' => true,
 			'lang' => true,
-			'style' => true,
 			'xml:lang' => true,
 		),
 		'pre' => array(
-			'style' => true,
 			'width' => true,
 		),
 		'q' => array(
 			'cite' => true,
 		),
 		's' => array(),
-		'span' => array (
-			'class' => true,
+		'span' => array(
 			'dir' => true,
 			'align' => true,
 			'lang' => true,
-			'style' => true,
-			'title' => true,
 			'xml:lang' => true,
 		),
 		'section' => array(
 			'align' => true,
-			'class' => true,
 			'dir' => true,
 			'lang' => true,
-			'style' => true,
 			'xml:lang' => true,
 		),
+		'small' => array(),
 		'strike' => array(),
 		'strong' => array(),
 		'sub' => array(),
 		'summary' => array(
 			'align' => true,
-			'class' => true,
 			'dir' => true,
 			'lang' => true,
-			'style' => true,
 			'xml:lang' => true,
 		),
 		'sup' => array(),
@@ -339,11 +285,8 @@
 			'border' => true,
 			'cellpadding' => true,
 			'cellspacing' => true,
-			'class' => true,
 			'dir' => true,
-			'id' => true,
 			'rules' => true,
-			'style' => true,
 			'summary' => true,
 			'width' => true,
 		),
@@ -360,7 +303,6 @@
 			'bgcolor' => true,
 			'char' => true,
 			'charoff' => true,
-			'class' => true,
 			'colspan' => true,
 			'dir' => true,
 			'headers' => true,
@@ -368,7 +310,6 @@
 			'nowrap' => true,
 			'rowspan' => true,
 			'scope' => true,
-			'style' => true,
 			'valign' => true,
 			'width' => true,
 		),
@@ -382,7 +323,6 @@
 		'tfoot' => array(
 			'align' => true,
 			'char' => true,
-			'class' => true,
 			'charoff' => true,
 			'valign' => true,
 		),
@@ -393,7 +333,6 @@
 			'bgcolor' => true,
 			'char' => true,
 			'charoff' => true,
-			'class' => true,
 			'colspan' => true,
 			'headers' => true,
 			'height' => true,
@@ -407,7 +346,6 @@
 			'align' => true,
 			'char' => true,
 			'charoff' => true,
-			'class' => true,
 			'valign' => true,
 		),
 		'title' => array(),
@@ -416,21 +354,15 @@
 			'bgcolor' => true,
 			'char' => true,
 			'charoff' => true,
-			'class' => true,
-			'style' => true,
 			'valign' => true,
 		),
 		'tt' => array(),
 		'u' => array(),
-		'ul' => array (
-			'class' => true,
-			'style' => true,
+		'ul' => array(
 			'type' => true,
 		),
-		'ol' => array (
-			'class' => true,
+		'ol' => array(
 			'start' => true,
-			'style' => true,
 			'type' => true,
 		),
 		'var' => array(),
@@ -457,29 +389,18 @@
 		'blockquote' => array(
 			'cite' => true,
 		),
-		//	'br' => array(),
 		'cite' => array(),
 		'code' => array(),
 		'del' => array(
 			'datetime' => true,
 		),
-		//	'dd' => array(),
-		//	'dl' => array(),
-		//	'dt' => array(),
-		'em' => array (), 'i' => array (),
-		//	'ins' => array('datetime' => array(), 'cite' => array()),
-		//	'li' => array(),
-		//	'ol' => array(),
-		//	'p' => array(),
+		'em' => array(),
+		'i' => array(),
 		'q' => array(
 			'cite' => true,
 		),
 		'strike' => array(),
 		'strong' => array(),
-		//	'sub' => array(),
-		//	'sup' => array(),
-		//	'u' => array(),
-		//	'ul' => array(),
 	);
 
 	$allowedentitynames = array(
@@ -525,6 +446,11 @@
 		'sdot',    'lceil',  'rceil',   'lfloor', 'rfloor', 'lang',
 		'rang',    'loz',    'spades',  'clubs',  'hearts', 'diams',
 	);
+
+	$allowedposttags = array_map( '_wp_add_global_attributes', $allowedposttags );
+} else {
+	$allowedtags = wp_kses_array_lc( $allowedtags );
+	$allowedposttags = wp_kses_array_lc( $allowedposttags );
 }
 
 /**
@@ -547,15 +473,51 @@
  * @param array $allowed_protocols Optional. Allowed protocol in links.
  * @return string Filtered content with only allowed HTML elements
  */
-function wp_kses($string, $allowed_html, $allowed_protocols = array ()) {
+function wp_kses( $string, $allowed_html, $allowed_protocols = array() ) {
 	if ( empty( $allowed_protocols ) )
 		$allowed_protocols = wp_allowed_protocols();
 	$string = wp_kses_no_null($string);
 	$string = wp_kses_js_entities($string);
 	$string = wp_kses_normalize_entities($string);
-	$allowed_html_fixed = wp_kses_array_lc($allowed_html);
-	$string = wp_kses_hook($string, $allowed_html_fixed, $allowed_protocols); // WP changed the order of these funcs and added args to wp_kses_hook
-	return wp_kses_split($string, $allowed_html_fixed, $allowed_protocols);
+	$string = wp_kses_hook($string, $allowed_html, $allowed_protocols); // WP changed the order of these funcs and added args to wp_kses_hook
+	return wp_kses_split($string, $allowed_html, $allowed_protocols);
+}
+
+/**
+ * Return a list of allowed tags and attributes for a given context.
+ *
+ * @since 3.5.0
+ *
+ * @param string $context The context for which to retrieve tags. Allowed values are
+ *  post | strip | data | entities or the name of a field filter such as pre_user_description.
+ * @return array List of allowed tags and their allowed attributes.
+ */
+function wp_kses_allowed_html( $context = '' ) {
+	global $allowedposttags, $allowedtags, $allowedentitynames;
+
+	if ( is_array( $context ) )
+		return apply_filters( 'wp_kses_allowed_html', $context, 'explicit' );
+
+	switch ( $context ) {
+		case 'post':
+			return apply_filters( 'wp_kses_allowed_html', $allowedposttags, $context );
+			break;
+		case 'user_description':
+		case 'pre_user_description':
+			$tags = $allowedtags;
+			$tags['a']['rel'] = true;
+			return apply_filters( 'wp_kses_allowed_html', $tags, $context );
+			break;
+		case 'strip':
+			return apply_filters( 'wp_kses_allowed_html', array(), $context );
+			break;
+		case 'entities':
+			return apply_filters( 'wp_kses_allowed_html', $allowedentitynames, $context);
+			break;
+		case 'data':
+		default:
+			return apply_filters( 'wp_kses_allowed_html', $allowedtags, $context );
+	}
 }
 
 /**
@@ -571,7 +533,7 @@
  * @param array $allowed_protocols Allowed protocol in links
  * @return string Filtered content through 'pre_kses' hook
  */
-function wp_kses_hook($string, $allowed_html, $allowed_protocols) {
+function wp_kses_hook( $string, $allowed_html, $allowed_protocols ) {
 	$string = apply_filters('pre_kses', $string, $allowed_html, $allowed_protocols);
 	return $string;
 }
@@ -599,7 +561,7 @@
  * @param array $allowed_protocols Allowed protocols to keep
  * @return string Content with fixed HTML tags
  */
-function wp_kses_split($string, $allowed_html, $allowed_protocols) {
+function wp_kses_split( $string, $allowed_html, $allowed_protocols ) {
 	global $pass_allowed_html, $pass_allowed_protocols;
 	$pass_allowed_html = $allowed_html;
 	$pass_allowed_protocols = $allowed_protocols;
@@ -667,6 +629,9 @@
 	$elem = $matches[2];
 	$attrlist = $matches[3];
 
+	if ( ! is_array( $allowed_html ) )
+		$allowed_html = wp_kses_allowed_html( $allowed_html );
+
 	if ( ! isset($allowed_html[strtolower($elem)]) )
 		return '';
 	# They are using a not allowed HTML element
@@ -698,6 +663,9 @@
 function wp_kses_attr($element, $attr, $allowed_html, $allowed_protocols) {
 	# Is there a closing XHTML slash at the end of the attributes?
 
+	if ( ! is_array( $allowed_html ) )
+		$allowed_html = wp_kses_allowed_html( $allowed_html );
+
 	$xhtml_slash = '';
 	if (preg_match('%\s*/\s*$%', $attr))
 		$xhtml_slash = ' /';
@@ -776,7 +744,7 @@
  * @return array List of attributes after parsing
  */
 function wp_kses_hair($attr, $allowed_protocols) {
-	$attrarr = array ();
+	$attrarr = array();
 	$mode = 0;
 	$attrname = '';
 	$uris = array('xmlns', 'profile', 'href', 'src', 'cite', 'classid', 'codebase', 'data', 'usemap', 'longdesc', 'action');
@@ -1285,9 +1253,8 @@
  * @param string $data Content to filter, expected to be escaped with slashes
  * @return string Filtered content
  */
-function wp_filter_kses($data) {
-	global $allowedtags;
-	return addslashes( wp_kses(stripslashes( $data ), $allowedtags) );
+function wp_filter_kses( $data ) {
+	return addslashes( wp_kses( stripslashes( $data ), current_filter() ) );
 }
 
 /**
@@ -1299,9 +1266,8 @@
  * @param string $data Content to filter, expected to not be escaped
  * @return string Filtered content
  */
-function wp_kses_data($data) {
-	global $allowedtags;
-	return wp_kses( $data , $allowedtags );
+function wp_kses_data( $data ) {
+	return wp_kses( $data , current_filter() );
 }
 
 /**
@@ -1311,14 +1277,12 @@
  * data from forms.
  *
  * @since 2.0.0
- * @uses $allowedposttags
  *
  * @param string $data Post content to filter, expected to be escaped with slashes
  * @return string Filtered post content with allowed HTML tags and attributes intact.
  */
 function wp_filter_post_kses($data) {
-	global $allowedposttags;
-	return addslashes ( wp_kses(stripslashes( $data ), $allowedposttags) );
+	return addslashes ( wp_kses( stripslashes( $data ), 'post' ) );
 }
 
 /**
@@ -1328,14 +1292,12 @@
  * data from forms.
  *
  * @since 2.9.0
- * @uses $allowedposttags
  *
  * @param string $data Post content to filter
  * @return string Filtered post content with allowed HTML tags and attributes intact.
  */
 function wp_kses_post($data) {
-	global $allowedposttags;
-	return wp_kses( $data , $allowedposttags );
+	return wp_kses( $data , 'post' );
 }
 
 /**
@@ -1346,8 +1308,8 @@
  * @param string $data Content to strip all HTML from
  * @return string Filtered content without any HTML
  */
-function wp_filter_nohtml_kses($data) {
-	return addslashes ( wp_kses(stripslashes( $data ), array()) );
+function wp_filter_nohtml_kses( $data ) {
+	return addslashes ( wp_kses( stripslashes( $data ), 'strip' ) );
 }
 
 /**
@@ -1483,3 +1445,29 @@
 
 	return $css;
 }
+
+/**
+ * Helper function to add global attributes to a tag in the allowed html list.
+ *
+ * @since 3.5.0
+ * @access private
+ *
+ * @param array $value An array of attributes.
+ * @return array The array of attributes with global attributes added.
+ */
+function _wp_add_global_attributes( $value ) {
+	$global_attributes = array(
+		'class' => true,
+		'id' => true,
+		'style' => true,
+		'title' => true,
+	);
+
+	if ( true === $value )
+		$value = array();
+
+	if ( is_array( $value ) )
+		return array_merge( $value, $global_attributes );
+
+	return $value;
+}
--- a/web/wp-includes/l10n.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/l10n.php	Wed Dec 19 17:46:52 2012 -0800
@@ -65,7 +65,7 @@
  * @return string Translated text
  */
 function translate( $text, $domain = 'default' ) {
-	$translations = &get_translations_for_domain( $domain );
+	$translations = get_translations_for_domain( $domain );
 	return apply_filters( 'gettext', $translations->translate( $text ), $text, $domain );
 }
 
@@ -78,7 +78,7 @@
 }
 
 function translate_with_gettext_context( $text, $context, $domain = 'default' ) {
-	$translations = &get_translations_for_domain( $domain );
+	$translations = get_translations_for_domain( $domain );
 	return apply_filters( 'gettext_with_context', $translations->translate( $text, $context ), $text, $context, $domain );
 }
 
@@ -236,7 +236,7 @@
  * @return string Either $single or $plural translated text
  */
 function _n( $single, $plural, $number, $domain = 'default' ) {
-	$translations = &get_translations_for_domain( $domain );
+	$translations = get_translations_for_domain( $domain );
 	$translation = $translations->translate_plural( $single, $plural, $number );
 	return apply_filters( 'ngettext', $translation, $single, $plural, $number, $domain );
 }
@@ -249,7 +249,7 @@
  *
  */
 function _nx($single, $plural, $number, $context, $domain = 'default') {
-	$translations = &get_translations_for_domain( $domain );
+	$translations = get_translations_for_domain( $domain );
 	$translation = $translations->translate_plural( $single, $plural, $number, $context );
 	return apply_filters( 'ngettext_with_context', $translation, $single, $plural, $number, $context, $domain );
 }
@@ -332,7 +332,6 @@
 		return true;
 	}
 
-	//print( $domain."  ". $mofile."<br>");
 	do_action( 'load_textdomain', $domain, $mofile );
 
 	$mofile = apply_filters( 'load_textdomain_mofile', $mofile, $domain );
@@ -460,9 +459,16 @@
 function load_theme_textdomain( $domain, $path = false ) {
 	$locale = apply_filters( 'theme_locale', get_locale(), $domain );
 
-	$path = ( empty( $path ) ) ? get_template_directory() : $path;
+	if ( ! $path )
+		$path = get_template_directory();
 
-	$mofile = "$path/$locale.mo";
+	// Load the textdomain from the Theme provided location, or theme directory first
+	$mofile = "{$path}/{$locale}.mo";
+	if ( $loaded = load_textdomain($domain, $mofile) )
+		return $loaded;
+
+	// Else, load textdomain from the Language directory
+	$mofile = WP_LANG_DIR . "/themes/{$domain}-{$locale}.mo";
 	return load_textdomain($domain, $mofile);
 }
 
@@ -479,12 +485,9 @@
  * @param string $domain Unique identifier for retrieving translated strings
  */
 function load_child_theme_textdomain( $domain, $path = false ) {
-	$locale = apply_filters( 'theme_locale', get_locale(), $domain );
-
-	$path = ( empty( $path ) ) ? get_stylesheet_directory() : $path;
-
-	$mofile = "$path/$locale.mo";
-	return load_textdomain($domain, $mofile);
+	if ( ! $path )
+		$path = get_stylesheet_directory();
+	return load_theme_textdomain( $domain, $path );
 }
 
 /**
@@ -494,7 +497,7 @@
  * @param string $domain
  * @return object A Translation instance
  */
-function &get_translations_for_domain( $domain ) {
+function get_translations_for_domain( $domain ) {
 	global $l10n;
 	if ( !isset( $l10n[$domain] ) ) {
 		$l10n[$domain] = new NOOP_Translations;
--- a/web/wp-includes/link-template.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/link-template.php	Wed Dec 19 17:46:52 2012 -0800
@@ -54,11 +54,11 @@
  *
  * @param string $mode Permalink mode can be either 'title', 'id', or default, which is 'id'.
  */
-function permalink_anchor($mode = 'id') {
-	global $post;
-	switch ( strtolower($mode) ) {
+function permalink_anchor( $mode = 'id' ) {
+	$post = get_post();
+	switch ( strtolower( $mode ) ) {
 		case 'title':
-			$title = sanitize_title($post->post_title) . '-' . $post->ID;
+			$title = sanitize_title( $post->post_title ) . '-' . $post->ID;
 			echo '<a id="'.$title.'"></a>';
 			break;
 		case 'id':
@@ -77,7 +77,7 @@
  * @param bool $leavename Optional, defaults to false. Whether to keep post name or page name.
  * @return string
  */
-function get_permalink($id = 0, $leavename = false) {
+function get_permalink( $id = 0, $leavename = false ) {
 	$rewritecode = array(
 		'%year%',
 		'%monthnum%',
@@ -96,7 +96,7 @@
 		$post = $id;
 		$sample = true;
 	} else {
-		$post = &get_post($id);
+		$post = get_post($id);
 		$sample = false;
 	}
 
@@ -106,7 +106,7 @@
 	if ( $post->post_type == 'page' )
 		return get_page_link($post->ID, $leavename, $sample);
 	elseif ( $post->post_type == 'attachment' )
-		return get_attachment_link($post->ID);
+		return get_attachment_link( $post->ID, $leavename );
 	elseif ( in_array($post->post_type, get_post_types( array('_builtin' => false) ) ) )
 		return get_post_permalink($post->ID, $leavename, $sample);
 
@@ -122,8 +122,10 @@
 			$cats = get_the_category($post->ID);
 			if ( $cats ) {
 				usort($cats, '_usort_terms_by_ID'); // order by ID
-				$category = $cats[0]->slug;
-				if ( $parent = $cats[0]->parent )
+				$category_object = apply_filters( 'post_link_category', $cats[0], $cats, $post );
+				$category_object = get_term( $category_object, 'category' );
+				$category = $category_object->slug;
+				if ( $parent = $category_object->parent )
 					$category = get_category_parents($parent, false, '/', true) . $category;
 			}
 			// show default category in permalinks, without
@@ -176,7 +178,7 @@
 function get_post_permalink( $id = 0, $leavename = false, $sample = false ) {
 	global $wp_rewrite;
 
-	$post = &get_post($id);
+	$post = get_post($id);
 
 	if ( is_wp_error( $post ) )
 		return $post;
@@ -230,24 +232,20 @@
  *
  * @since 1.5.0
  *
- * @param int $id Optional. Post ID.
+ * @param mixed $post Optional. Post ID or object.
  * @param bool $leavename Optional, defaults to false. Whether to keep page name.
  * @param bool $sample Optional, defaults to false. Is it a sample permalink.
  * @return string
  */
-function get_page_link( $id = false, $leavename = false, $sample = false ) {
-	global $post;
+function get_page_link( $post = false, $leavename = false, $sample = false ) {
+	$post = get_post( $post );
 
-	$id = (int) $id;
-	if ( !$id )
-		$id = (int) $post->ID;
-
-	if ( 'page' == get_option('show_on_front') && $id == get_option('page_on_front') )
+	if ( 'page' == get_option( 'show_on_front' ) && $post->ID == get_option( 'page_on_front' ) )
 		$link = home_url('/');
 	else
-		$link = _get_page_link( $id , $leavename, $sample );
+		$link = _get_page_link( $post, $leavename, $sample );
 
-	return apply_filters('page_link', $link, $id, $sample);
+	return apply_filters( 'page_link', $link, $post->ID, $sample );
 }
 
 /**
@@ -258,18 +256,15 @@
  * @since 2.1.0
  * @access private
  *
- * @param int $id Optional. Post ID.
+ * @param mixed $post Optional. Post ID or object.
  * @param bool $leavename Optional. Leave name.
  * @param bool $sample Optional. Sample permalink.
  * @return string
  */
-function _get_page_link( $id = false, $leavename = false, $sample = false ) {
-	global $post, $wp_rewrite;
+function _get_page_link( $post = false, $leavename = false, $sample = false ) {
+	global $wp_rewrite;
 
-	if ( !$id )
-		$id = (int) $post->ID;
-	else
-		$post = &get_post($id);
+	$post = get_post( $post );
 
 	$draft_or_pending = in_array( $post->post_status, array( 'draft', 'pending', 'auto-draft' ) );
 
@@ -277,16 +272,16 @@
 
 	if ( !empty($link) && ( ( isset($post->post_status) && !$draft_or_pending ) || $sample ) ) {
 		if ( ! $leavename ) {
-			$link = str_replace('%pagename%', get_page_uri($id), $link);
+			$link = str_replace('%pagename%', get_page_uri( $post ), $link);
 		}
 
 		$link = home_url($link);
 		$link = user_trailingslashit($link, 'page');
 	} else {
-		$link = home_url("?page_id=$id");
+		$link = home_url( '?page_id=' . $post->ID );
 	}
 
-	return apply_filters( '_get_page_link', $link, $id );
+	return apply_filters( '_get_page_link', $link, $post->ID );
 }
 
 /**
@@ -296,38 +291,40 @@
  *
  * @since 2.0.0
  *
- * @param int $id Optional. Post ID.
+ * @param mixed $post Optional. Post ID or object.
+ * @param bool $leavename Optional. Leave name.
  * @return string
  */
-function get_attachment_link($id = false) {
-	global $post, $wp_rewrite;
+function get_attachment_link( $post = null, $leavename = false ) {
+	global $wp_rewrite;
 
 	$link = false;
 
-	if ( ! $id)
-		$id = (int) $post->ID;
+	$post = get_post( $post );
 
-	$object = get_post($id);
-	if ( $wp_rewrite->using_permalinks() && ($object->post_parent > 0) && ($object->post_parent != $id) ) {
-		$parent = get_post($object->post_parent);
+	if ( $wp_rewrite->using_permalinks() && ( $post->post_parent > 0 ) && ( $post->post_parent != $post->ID ) ) {
+		$parent = get_post($post->post_parent);
 		if ( 'page' == $parent->post_type )
-			$parentlink = _get_page_link( $object->post_parent ); // Ignores page_on_front
+			$parentlink = _get_page_link( $post->post_parent ); // Ignores page_on_front
 		else
-			$parentlink = get_permalink( $object->post_parent );
+			$parentlink = get_permalink( $post->post_parent );
 
-		if ( is_numeric($object->post_name) || false !== strpos(get_option('permalink_structure'), '%category%') )
-			$name = 'attachment/' . $object->post_name; // <permalink>/<int>/ is paged so we use the explicit attachment marker
+		if ( is_numeric($post->post_name) || false !== strpos(get_option('permalink_structure'), '%category%') )
+			$name = 'attachment/' . $post->post_name; // <permalink>/<int>/ is paged so we use the explicit attachment marker
 		else
-			$name = $object->post_name;
+			$name = $post->post_name;
 
 		if ( strpos($parentlink, '?') === false )
-			$link = user_trailingslashit( trailingslashit($parentlink) . $name );
+			$link = user_trailingslashit( trailingslashit($parentlink) . '%postname%' );
+
+		if ( ! $leavename )
+			$link = str_replace( '%postname%', $name, $link );
 	}
 
 	if ( ! $link )
-		$link = home_url( "/?attachment_id=$id" );
+		$link = home_url( '/?attachment_id=' . $post->ID );
 
-	return apply_filters('attachment_link', $link, $id);
+	return apply_filters( 'attachment_link', $link, $post->ID );
 }
 
 /**
@@ -487,9 +484,9 @@
 	} else {
 		$type = get_post_field('post_type', $post_id);
 		if ( 'page' == $type )
-			$url = home_url("?feed=$feed&amp;page_id=$post_id");
+			$url = add_query_arg( array( 'feed' => $feed, 'page_id' => $post_id ), home_url( '/' ) );
 		else
-			$url = home_url("?feed=$feed&amp;p=$post_id");
+			$url = add_query_arg( array( 'feed' => $feed, 'p' => $post_id ), home_url( '/' ) );
 	}
 
 	return apply_filters('post_comments_feed_link', $url);
@@ -512,7 +509,7 @@
  * @return string Link to the comment feed for the current post.
 */
 function post_comments_feed_link( $link_text = '', $post_id = '', $feed = '' ) {
-	$url = get_post_comments_feed_link($post_id, $feed);
+	$url = esc_url( get_post_comments_feed_link( $post_id, $feed ) );
 	if ( empty($link_text) )
 		$link_text = __('Comments Feed');
 
@@ -624,7 +621,7 @@
 	if ( 'category' == $taxonomy )
 		$link = apply_filters( 'category_feed_link', $link, $feed );
 	elseif ( 'post_tag' == $taxonomy )
-		$link = apply_filters( 'category_feed_link', $link, $feed );
+		$link = apply_filters( 'tag_feed_link', $link, $feed );
 	else
 		$link = apply_filters( 'taxonomy_feed_link', $link, $feed, $taxonomy );
 
@@ -896,7 +893,7 @@
  * @return string
  */
 function get_edit_post_link( $id = 0, $context = 'display' ) {
-	if ( !$post = &get_post( $id ) )
+	if ( ! $post = get_post( $id ) )
 		return;
 
 	if ( 'display' == $context )
@@ -925,7 +922,7 @@
  * @param int $id Optional. Post ID.
  */
 function edit_post_link( $link = null, $before = '', $after = '', $id = 0 ) {
-	if ( !$post = &get_post( $id ) )
+	if ( !$post = get_post( $id ) )
 		return;
 
 	if ( !$url = get_edit_post_link( $post->ID ) )
@@ -955,7 +952,7 @@
 	if ( ! empty( $deprecated ) )
 		_deprecated_argument( __FUNCTION__, '3.0' );
 
-	if ( !$post = &get_post( $id ) )
+	if ( !$post = get_post( $id ) )
 		return;
 
 	$post_type_object = get_post_type_object( $post->post_type );
@@ -969,7 +966,7 @@
 
 	$delete_link = add_query_arg( 'action', $action, admin_url( sprintf( $post_type_object->_edit_link, $post->ID ) ) );
 
-	return apply_filters( 'get_delete_post_link', wp_nonce_url( $delete_link, "$action-{$post->post_type}_{$post->ID}" ), $post->ID, $force_delete );
+	return apply_filters( 'get_delete_post_link', wp_nonce_url( $delete_link, "$action-post_{$post->ID}" ), $post->ID, $force_delete );
 }
 
 /**
@@ -981,7 +978,7 @@
  * @return string
  */
 function get_edit_comment_link( $comment_id = 0 ) {
-	$comment = &get_comment( $comment_id );
+	$comment = get_comment( $comment_id );
 
 	if ( !current_user_can( 'edit_comment', $comment->comment_ID ) )
 		return;
@@ -1054,6 +1051,34 @@
 	echo $before . apply_filters( 'edit_bookmark_link', $link, $bookmark->link_id ) . $after;
 }
 
+/**
+ * Retrieve edit user link
+ *
+ * @since 3.5.0
+ *
+ * @param int $user_id Optional. User ID. Defaults to the current user.
+ * @return string URL to edit user page or empty string.
+ */
+function get_edit_user_link( $user_id = null ) {
+	if ( ! $user_id )
+		$user_id = get_current_user_id();
+
+	if ( empty( $user_id ) || ! current_user_can( 'edit_user', $user_id ) )
+		return '';
+
+	$user = get_userdata( $user_id );
+
+	if ( ! $user )
+		return '';
+
+	if ( get_current_user_id() == $user->ID )
+		$link = get_edit_profile_url( $user->ID );
+	else
+		$link = add_query_arg( 'user_id', $user->ID, self_admin_url( 'user-edit.php' ) );
+
+	return apply_filters( 'get_edit_user_link', $link, $user->ID );
+}
+
 // Navigation links
 
 /**
@@ -1095,9 +1120,9 @@
  * @return mixed Post object if successful. Null if global $post is not set. Empty string if no corresponding post exists.
  */
 function get_adjacent_post( $in_same_cat = false, $excluded_categories = '', $previous = true ) {
-	global $post, $wpdb;
+	global $wpdb;
 
-	if ( empty( $post ) )
+	if ( ! $post = get_post() )
 		return null;
 
 	$current_post_date = $post->post_date;
@@ -1108,7 +1133,11 @@
 		$join = " INNER JOIN $wpdb->term_relationships AS tr ON p.ID = tr.object_id INNER JOIN $wpdb->term_taxonomy tt ON tr.term_taxonomy_id = tt.term_taxonomy_id";
 
 		if ( $in_same_cat ) {
+			if ( ! is_object_in_taxonomy( $post->post_type, 'category' ) )
+				return '';
 			$cat_array = wp_get_object_terms($post->ID, 'category', array('fields' => 'ids'));
+			if ( ! $cat_array || is_wp_error( $cat_array ) )
+				return '';
 			$join .= " AND tt.taxonomy = 'category' AND tt.term_id IN (" . implode(',', $cat_array) . ")";
 		}
 
@@ -1145,17 +1174,24 @@
 	$where = apply_filters( "get_{$adjacent}_post_where", $wpdb->prepare("WHERE p.post_date $op %s AND p.post_type = %s AND p.post_status = 'publish' $posts_in_ex_cats_sql", $current_post_date, $post->post_type), $in_same_cat, $excluded_categories );
 	$sort  = apply_filters( "get_{$adjacent}_post_sort", "ORDER BY p.post_date $order LIMIT 1" );
 
-	$query = "SELECT p.* FROM $wpdb->posts AS p $join $where $sort";
+	$query = "SELECT p.id FROM $wpdb->posts AS p $join $where $sort";
 	$query_key = 'adjacent_post_' . md5($query);
 	$result = wp_cache_get($query_key, 'counts');
-	if ( false !== $result )
+	if ( false !== $result ) {
+		if ( $result )
+			$result = get_post( $result );
 		return $result;
+	}
 
-	$result = $wpdb->get_row("SELECT p.* FROM $wpdb->posts AS p $join $where $sort");
+	$result = $wpdb->get_var( $query );
 	if ( null === $result )
 		$result = '';
 
 	wp_cache_set($query_key, $result, 'counts');
+
+	if ( $result )
+		$result = get_post( $result );
+
 	return $result;
 }
 
@@ -1173,20 +1209,22 @@
  * @return string
  */
 function get_adjacent_post_rel_link($title = '%title', $in_same_cat = false, $excluded_categories = '', $previous = true) {
-	if ( $previous && is_attachment() && is_object( $GLOBALS['post'] ) )
-		$post = & get_post($GLOBALS['post']->post_parent);
+	if ( $previous && is_attachment() && $post = get_post() )
+		$post = get_post( $post->post_parent );
 	else
-		$post = get_adjacent_post($in_same_cat,$excluded_categories,$previous);
+		$post = get_adjacent_post( $in_same_cat, $excluded_categories, $previous );
 
 	if ( empty($post) )
 		return;
 
 	if ( empty($post->post_title) )
-		$post->post_title = $previous ? __('Previous Post') : __('Next Post');
+		$post_title = $previous ? __('Previous Post') : __('Next Post');
+	else
+		$post_title = $post->post_title;
 
 	$date = mysql2date(get_option('date_format'), $post->post_date);
 
-	$title = str_replace('%title', $post->post_title, $title);
+	$title = str_replace('%title', $post_title, $title);
 	$title = str_replace('%date', $date, $title);
 	$title = apply_filters('the_title', $title, $post->ID);
 
@@ -1265,9 +1303,8 @@
  * @return object
  */
 function get_boundary_post( $in_same_cat = false, $excluded_categories = '', $start = true ) {
-	global $post;
-
-	if ( empty($post) || ! is_single() || is_attachment() )
+	$post = get_post();
+	if ( ! $post || ! is_single() || is_attachment() )
 		return null;
 
 	$cat_array = array();
@@ -1337,33 +1374,35 @@
  * @param array|string $excluded_categories Optional. Array or comma-separated list of excluded category IDs.
  * @param bool $previous Optional, default is true. Whether to display link to previous or next post.
  */
-function adjacent_post_link($format, $link, $in_same_cat = false, $excluded_categories = '', $previous = true) {
+function adjacent_post_link( $format, $link, $in_same_cat = false, $excluded_categories = '', $previous = true ) {
 	if ( $previous && is_attachment() )
-		$post = & get_post($GLOBALS['post']->post_parent);
+		$post = get_post( get_post()->post_parent );
 	else
-		$post = get_adjacent_post($in_same_cat, $excluded_categories, $previous);
+		$post = get_adjacent_post( $in_same_cat, $excluded_categories, $previous );
 
-	if ( !$post )
-		return;
-
-	$title = $post->post_title;
+	if ( ! $post ) {
+		$output = '';
+	} else {
+		$title = $post->post_title;
 
-	if ( empty($post->post_title) )
-		$title = $previous ? __('Previous Post') : __('Next Post');
+		if ( empty( $post->post_title ) )
+			$title = $previous ? __( 'Previous Post' ) : __( 'Next Post' );
 
-	$title = apply_filters('the_title', $title, $post->ID);
-	$date = mysql2date(get_option('date_format'), $post->post_date);
-	$rel = $previous ? 'prev' : 'next';
+		$title = apply_filters( 'the_title', $title, $post->ID );
+		$date = mysql2date( get_option( 'date_format' ), $post->post_date );
+		$rel = $previous ? 'prev' : 'next';
 
-	$string = '<a href="'.get_permalink($post).'" rel="'.$rel.'">';
-	$link = str_replace('%title', $title, $link);
-	$link = str_replace('%date', $date, $link);
-	$link = $string . $link . '</a>';
+		$string = '<a href="' . get_permalink( $post ) . '" rel="'.$rel.'">';
+		$inlink = str_replace( '%title', $title, $link );
+		$inlink = str_replace( '%date', $date, $inlink );
+		$inlink = $string . $inlink . '</a>';
 
-	$format = str_replace('%link', $link, $format);
+		$output = str_replace( '%link', $inlink, $format );
+	}
 
 	$adjacent = $previous ? 'previous' : 'next';
-	echo apply_filters( "{$adjacent}_post_link", $format, $link );
+
+	echo apply_filters( "{$adjacent}_post_link", $output, $format, $link, $post );
 }
 
 /**
@@ -1385,9 +1424,9 @@
 
 	$home_root = parse_url(home_url());
 	$home_root = ( isset($home_root['path']) ) ? $home_root['path'] : '';
-	$home_root = preg_quote( trailingslashit( $home_root ), '|' );
+	$home_root = preg_quote( $home_root, '|' );
 
-	$request = preg_replace('|^'. $home_root . '|', '', $request);
+	$request = preg_replace('|^'. $home_root . '|i', '', $request);
 	$request = preg_replace('|^/+|', '', $request);
 
 	if ( !$wp_rewrite->using_permalinks() || is_admin() ) {
@@ -1410,7 +1449,7 @@
 		}
 
 		$request = preg_replace( "|$wp_rewrite->pagination_base/\d+/?$|", '', $request);
-		$request = preg_replace( '|^index\.php|', '', $request);
+		$request = preg_replace( '|^index\.php|i', '', $request);
 		$request = ltrim($request, '/');
 
 		$base = trailingslashit( get_bloginfo( 'url' ) );
@@ -1646,11 +1685,11 @@
  * @return string
  */
 function get_comments_pagenum_link( $pagenum = 1, $max_page = 0 ) {
-	global $post, $wp_rewrite;
+	global $wp_rewrite;
 
 	$pagenum = (int) $pagenum;
 
-	$result = get_permalink( $post->ID );
+	$result = get_permalink();
 
 	if ( 'newest' == get_option('default_comments_page') ) {
 		if ( $pagenum != $max_page ) {
@@ -1842,7 +1881,7 @@
  * @return string Home url link with optional path appended.
 */
 function home_url( $path = '', $scheme = null ) {
-	return get_home_url(null, $path, $scheme);
+	return get_home_url( null, $path, $scheme );
 }
 
 /**
@@ -1863,20 +1902,24 @@
 function get_home_url( $blog_id = null, $path = '', $scheme = null ) {
 	$orig_scheme = $scheme;
 
-	if ( !in_array( $scheme, array( 'http', 'https', 'relative' ) ) )
-		$scheme = is_ssl() && !is_admin() ? 'https' : 'http';
-
-	if ( empty( $blog_id ) || !is_multisite() )
+	if ( empty( $blog_id ) || !is_multisite() ) {
+		$url = get_option( 'home' );
+	} else {
+		switch_to_blog( $blog_id );
 		$url = get_option( 'home' );
-	else
-		$url = get_blog_option( $blog_id, 'home' );
+		restore_current_blog();
+	}
 
-	if ( 'relative' == $scheme )
-		$url = preg_replace( '#^.+://[^/]*#', '', $url );
-	elseif ( 'http' != $scheme )
-		$url = str_replace( 'http://', "$scheme://", $url );
+	if ( ! in_array( $scheme, array( 'http', 'https', 'relative' ) ) ) {
+		if ( is_ssl() && ! is_admin() )
+			$scheme = 'https';
+		else
+			$scheme = parse_url( $url, PHP_URL_SCHEME );
+	}
 
-	if ( !empty( $path ) && is_string( $path ) && strpos( $path, '..' ) === false )
+	$url = set_url_scheme( $url, $scheme );
+
+	if ( ! empty( $path ) && is_string( $path ) && strpos( $path, '..' ) === false )
 		$url .= '/' . ltrim( $path, '/' );
 
 	return apply_filters( 'home_url', $url, $path, $orig_scheme, $blog_id );
@@ -1895,11 +1938,11 @@
  * @uses get_site_url()
  *
  * @param string $path Optional. Path relative to the site url.
- * @param string $scheme Optional. Scheme to give the site url context. Currently 'http', 'https', 'login', 'login_post', 'admin', or 'relative'.
+ * @param string $scheme Optional. Scheme to give the site url context. See set_url_scheme().
  * @return string Site url link with optional path appended.
 */
 function site_url( $path = '', $scheme = null ) {
-	return get_site_url(null, $path, $scheme);
+	return get_site_url( null, $path, $scheme );
 }
 
 /**
@@ -1918,33 +1961,20 @@
  * @return string Site url link with optional path appended.
 */
 function get_site_url( $blog_id = null, $path = '', $scheme = null ) {
-	// should the list of allowed schemes be maintained elsewhere?
-	$orig_scheme = $scheme;
-	if ( !in_array( $scheme, array( 'http', 'https', 'relative' ) ) ) {
-		if ( ( 'login_post' == $scheme || 'rpc' == $scheme ) && ( force_ssl_login() || force_ssl_admin() ) )
-			$scheme = 'https';
-		elseif ( ( 'login' == $scheme ) && force_ssl_admin() )
-			$scheme = 'https';
-		elseif ( ( 'admin' == $scheme ) && force_ssl_admin() )
-			$scheme = 'https';
-		else
-			$scheme = ( is_ssl() ? 'https' : 'http' );
+	if ( empty( $blog_id ) || !is_multisite() ) {
+		$url = get_option( 'siteurl' );
+	} else {
+		switch_to_blog( $blog_id );
+		$url = get_option( 'siteurl' );
+		restore_current_blog();
 	}
 
-	if ( empty( $blog_id ) || !is_multisite() )
-		$url = get_option( 'siteurl' );
-	else
-		$url = get_blog_option( $blog_id, 'siteurl' );
+	$url = set_url_scheme( $url, $scheme );
 
-	if ( 'relative' == $scheme )
-		$url = preg_replace( '#^.+://[^/]*#', '', $url );
-	elseif ( 'http' != $scheme )
-		$url = str_replace( 'http://', "{$scheme}://", $url );
-
-	if ( !empty( $path ) && is_string( $path ) && strpos( $path, '..' ) === false )
+	if ( ! empty( $path ) && is_string( $path ) && strpos( $path, '..' ) === false )
 		$url .= '/' . ltrim( $path, '/' );
 
-	return apply_filters( 'site_url', $url, $path, $orig_scheme, $blog_id );
+	return apply_filters( 'site_url', $url, $path, $scheme, $blog_id );
 }
 
 /**
@@ -1958,7 +1988,7 @@
  * @return string Admin url link with optional path appended.
 */
 function admin_url( $path = '', $scheme = 'admin' ) {
-	return get_admin_url(null, $path, $scheme);
+	return get_admin_url( null, $path, $scheme );
 }
 
 /**
@@ -1975,10 +2005,10 @@
 function get_admin_url( $blog_id = null, $path = '', $scheme = 'admin' ) {
 	$url = get_site_url($blog_id, 'wp-admin/', $scheme);
 
-	if ( !empty($path) && is_string($path) && strpos($path, '..') === false )
-		$url .= ltrim($path, '/');
+	if ( !empty( $path ) && is_string( $path ) && strpos( $path, '..' ) === false )
+		$url .= ltrim( $path, '/' );
 
-	return apply_filters('admin_url', $url, $path, $blog_id);
+	return apply_filters( 'admin_url', $url, $path, $blog_id );
 }
 
 /**
@@ -2009,9 +2039,7 @@
  * @return string Content url link with optional path appended.
 */
 function content_url($path = '') {
-	$url = WP_CONTENT_URL;
-	if ( 0 === strpos($url, 'http') && is_ssl() )
-		$url = str_replace( 'http://', 'https://', $url );
+	$url = set_url_scheme( WP_CONTENT_URL );
 
 	if ( !empty($path) && is_string($path) && strpos($path, '..') === false )
 		$url .= '/' . ltrim($path, '/');
@@ -2043,8 +2071,8 @@
 	else
 		$url = WP_PLUGIN_URL;
 
-	if ( 0 === strpos($url, 'http') && is_ssl() )
-		$url = str_replace( 'http://', 'https://', $url );
+
+	$url = set_url_scheme( $url );
 
 	if ( !empty($plugin) && is_string($plugin) ) {
 		$folder = dirname(plugin_basename($plugin));
@@ -2069,36 +2097,24 @@
  * @since 3.0.0
  *
  * @param string $path Optional. Path relative to the site url.
- * @param string $scheme Optional. Scheme to give the site url context. Currently 'http', 'https', 'login', 'login_post', 'admin', or 'relative'.
+ * @param string $scheme Optional. Scheme to give the site url context. See set_url_scheme().
  * @return string Site url link with optional path appended.
 */
 function network_site_url( $path = '', $scheme = null ) {
 	global $current_site;
 
-	if ( !is_multisite() )
+	if ( ! is_multisite() )
 		return site_url($path, $scheme);
 
-	$orig_scheme = $scheme;
-	if ( !in_array( $scheme, array( 'http', 'https', 'relative' ) ) ) {
-		if ( ( 'login_post' == $scheme || 'rpc' == $scheme ) && ( force_ssl_login() || force_ssl_admin() ) )
-			$scheme = 'https';
-		elseif ( ('login' == $scheme) && ( force_ssl_admin() ) )
-			$scheme = 'https';
-		elseif ( ('admin' == $scheme) && force_ssl_admin() )
-			$scheme = 'https';
-		else
-			$scheme = ( is_ssl() ? 'https' : 'http' );
-	}
-
 	if ( 'relative' == $scheme )
 		$url = $current_site->path;
 	else
-		$url = $scheme . '://' . $current_site->domain . $current_site->path;
+		$url = set_url_scheme( 'http://' . $current_site->domain . $current_site->path, $scheme );
 
-	if ( !empty($path) && is_string($path) && strpos($path, '..') === false )
-		$url .= ltrim($path, '/');
+	if ( ! empty( $path ) && is_string( $path ) && strpos( $path, '..' ) === false )
+		$url .= ltrim( $path, '/' );
 
-	return apply_filters('network_site_url', $url, $path, $orig_scheme);
+	return apply_filters( 'network_site_url', $url, $path, $scheme );
 }
 
 /**
@@ -2118,20 +2134,20 @@
 function network_home_url( $path = '', $scheme = null ) {
 	global $current_site;
 
-	if ( !is_multisite() )
+	if ( ! is_multisite() )
 		return home_url($path, $scheme);
 
 	$orig_scheme = $scheme;
 
-	if ( !in_array( $scheme, array( 'http', 'https', 'relative' ) ) )
-		$scheme = is_ssl() && !is_admin() ? 'https' : 'http';
+	if ( ! in_array( $scheme, array( 'http', 'https', 'relative' ) ) )
+		$scheme = is_ssl() && ! is_admin() ? 'https' : 'http';
 
 	if ( 'relative' == $scheme )
 		$url = $current_site->path;
 	else
-		$url = $scheme . '://' . $current_site->domain . $current_site->path;
+		$url = set_url_scheme( 'http://' . $current_site->domain . $current_site->path, $scheme );
 
-	if ( !empty( $path ) && is_string( $path ) && strpos( $path, '..' ) === false )
+	if ( ! empty( $path ) && is_string( $path ) && strpos( $path, '..' ) === false )
 		$url .= ltrim( $path, '/' );
 
 	return apply_filters( 'network_home_url', $url, $path, $orig_scheme);
@@ -2302,6 +2318,10 @@
 		return;
 
 	$link = get_permalink( $id );
+
+	if ( $page = get_query_var('cpage') )
+		$link = get_comments_pagenum_link( $page );
+
 	echo "<link rel='canonical' href='$link' />\n";
 }
 
@@ -2401,7 +2421,7 @@
  * @param string $after Optional HTML to display after the link.
  */
 function the_shortlink( $text = '', $title = '', $before = '', $after = '' ) {
-	global $post;
+	$post = get_post();
 
 	if ( empty( $text ) )
 		$text = __('This is the short link.');
--- a/web/wp-includes/load.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/load.php	Wed Dec 19 17:46:52 2012 -0800
@@ -356,7 +356,7 @@
 		dead_db();
 
 	$wpdb->field_types = array( 'post_author' => '%d', 'post_parent' => '%d', 'menu_order' => '%d', 'term_id' => '%d', 'term_group' => '%d', 'term_taxonomy_id' => '%d',
-		'parent' => '%d', 'count' => '%d','object_id' => '%d', 'term_order' => '%d', 'ID' => '%d', 'commment_ID' => '%d', 'comment_post_ID' => '%d', 'comment_parent' => '%d',
+		'parent' => '%d', 'count' => '%d','object_id' => '%d', 'term_order' => '%d', 'ID' => '%d', 'comment_ID' => '%d', 'comment_post_ID' => '%d', 'comment_parent' => '%d',
 		'user_id' => '%d', 'link_id' => '%d', 'link_owner' => '%d', 'link_rating' => '%d', 'option_id' => '%d', 'blog_id' => '%d', 'meta_id' => '%d', 'post_id' => '%d',
 		'user_status' => '%d', 'umeta_id' => '%d', 'comment_karma' => '%d', 'comment_count' => '%d',
 		// multisite:
@@ -381,7 +381,7 @@
  * @since 3.0.0
  */
 function wp_start_object_cache() {
-	global $_wp_using_ext_object_cache;
+	global $_wp_using_ext_object_cache, $blog_id;
 
 	$first_init = false;
  	if ( ! function_exists( 'wp_cache_init' ) ) {
@@ -403,13 +403,13 @@
 	// If cache supports reset, reset instead of init if already initialized.
 	// Reset signals to the cache that global IDs have changed and it may need to update keys
 	// and cleanup caches.
-	if ( !$first_init && function_exists('wp_cache_reset') )
-		wp_cache_reset();
+	if ( ! $first_init && function_exists( 'wp_cache_switch_to_blog' ) )
+		wp_cache_switch_to_blog( $blog_id );
 	else
 		wp_cache_init();
 
 	if ( function_exists( 'wp_cache_add_global_groups' ) ) {
-		wp_cache_add_global_groups( array( 'users', 'userlogins', 'usermeta', 'user_meta', 'site-transient', 'site-options', 'site-lookup', 'blog-lookup', 'blog-details', 'rss', 'global-posts' ) );
+		wp_cache_add_global_groups( array( 'users', 'userlogins', 'usermeta', 'user_meta', 'site-transient', 'site-options', 'site-lookup', 'blog-lookup', 'blog-details', 'rss', 'global-posts', 'blog-id-cache' ) );
 		wp_cache_add_non_persistent_groups( array( 'comment', 'counts', 'plugins' ) );
 	}
 }
@@ -583,8 +583,11 @@
  * @return bool True if inside WordPress administration pages.
  */
 function is_admin() {
-	if ( defined( 'WP_ADMIN' ) )
+	if ( isset( $GLOBALS['current_screen'] ) )
+		return $GLOBALS['current_screen']->in_admin();
+	elseif ( defined( 'WP_ADMIN' ) )
 		return WP_ADMIN;
+
 	return false;
 }
 
@@ -599,8 +602,11 @@
  * @return bool True if inside WordPress network administration pages.
  */
 function is_blog_admin() {
-	if ( defined( 'WP_BLOG_ADMIN' ) )
+	if ( isset( $GLOBALS['current_screen'] ) )
+		return $GLOBALS['current_screen']->in_admin( 'site' );
+	elseif ( defined( 'WP_BLOG_ADMIN' ) )
 		return WP_BLOG_ADMIN;
+
 	return false;
 }
 
@@ -615,8 +621,11 @@
  * @return bool True if inside WordPress network administration pages.
  */
 function is_network_admin() {
-	if ( defined( 'WP_NETWORK_ADMIN' ) )
+	if ( isset( $GLOBALS['current_screen'] ) )
+		return $GLOBALS['current_screen']->in_admin( 'network' );
+	elseif ( defined( 'WP_NETWORK_ADMIN' ) )
 		return WP_NETWORK_ADMIN;
+
 	return false;
 }
 
@@ -631,8 +640,11 @@
  * @return bool True if inside WordPress user administration pages.
  */
 function is_user_admin() {
-	if ( defined( 'WP_USER_ADMIN' ) )
+	if ( isset( $GLOBALS['current_screen'] ) )
+		return $GLOBALS['current_screen']->in_admin( 'user' );
+	elseif ( defined( 'WP_USER_ADMIN' ) )
 		return WP_USER_ADMIN;
+
 	return false;
 }
 
@@ -654,6 +666,18 @@
 }
 
 /**
+ * Retrieve the current blog id
+ *
+ * @since 3.1.0
+ *
+ * @return int Blog id
+ */
+function get_current_blog_id() {
+	global $blog_id;
+	return absint($blog_id);
+}
+
+/**
  * Attempts an early load of translations.
  *
  * Used for errors encountered during the initial loading process, before the locale has been
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/web/wp-includes/media-template.php	Wed Dec 19 17:46:52 2012 -0800
@@ -0,0 +1,467 @@
+<?php
+/**
+ * WordPress media templates.
+ *
+ * @package WordPress
+ * @subpackage Media
+ * @since 3.5.0
+ */
+
+/**
+ * Prints the templates used in the media manager.
+ *
+ * @since 3.5.0
+ */
+function wp_print_media_templates() {
+	global $is_IE;
+	$class = 'media-modal wp-core-ui';
+	if ( $is_IE && strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE 7') !== false )
+		$class .= ' ie7';
+	?>
+	<script type="text/html" id="tmpl-media-frame">
+		<div class="media-frame-menu"></div>
+		<div class="media-frame-title"></div>
+		<div class="media-frame-router"></div>
+		<div class="media-frame-content"></div>
+		<div class="media-frame-toolbar"></div>
+		<div class="media-frame-uploader"></div>
+	</script>
+
+	<script type="text/html" id="tmpl-media-modal">
+		<div class="<?php echo $class; ?>">
+			<a class="media-modal-close" href="#" title="<?php esc_attr_e('Close'); ?>"><span class="media-modal-icon"></span></a>
+			<div class="media-modal-content"></div>
+		</div>
+		<div class="media-modal-backdrop"></div>
+	</script>
+
+	<script type="text/html" id="tmpl-uploader-window">
+		<div class="uploader-window-content">
+			<h3><?php _e( 'Drop files to upload' ); ?></h3>
+		</div>
+	</script>
+
+	<script type="text/html" id="tmpl-uploader-inline">
+		<# var messageClass = data.message ? 'has-upload-message' : 'no-upload-message'; #>
+		<div class="uploader-inline-content {{ messageClass }}">
+		<# if ( data.message ) { #>
+			<h3 class="upload-message">{{ data.message }}</h3>
+		<# } #>
+		<?php if ( ! _device_can_upload() ) : ?>
+			<h3 class="upload-instructions"><?php _e('The web browser on your device cannot be used to upload files. You may be able to use the <a href="http://wordpress.org/extend/mobile/">native app for your device</a> instead.'); ?></h3>
+		<?php elseif ( is_multisite() && ! is_upload_space_available() ) : ?>
+			<h3 class="upload-instructions"><?php _e( 'Upload Limit Exceeded' ); ?></h3>
+			<?php do_action( 'upload_ui_over_quota' ); ?>
+
+		<?php else : ?>
+			<div class="upload-ui">
+				<h3 class="upload-instructions drop-instructions"><?php _e( 'Drop files anywhere to upload' ); ?></h3>
+				<a href="#" class="browser button button-hero"><?php _e( 'Select Files' ); ?></a>
+			</div>
+
+			<div class="upload-inline-status"></div>
+
+			<div class="post-upload-ui">
+				<?php
+				do_action( 'pre-upload-ui' );
+				do_action( 'pre-plupload-upload-ui' );
+
+				if ( 10 === remove_action( 'post-plupload-upload-ui', 'media_upload_flash_bypass' ) ) {
+					do_action( 'post-plupload-upload-ui' );
+					add_action( 'post-plupload-upload-ui', 'media_upload_flash_bypass' );
+				} else {
+					do_action( 'post-plupload-upload-ui' );
+				}
+
+				$upload_size_unit = $max_upload_size = wp_max_upload_size();
+				$byte_sizes = array( 'KB', 'MB', 'GB' );
+
+				for ( $u = -1; $upload_size_unit > 1024 && $u < count( $byte_sizes ) - 1; $u++ ) {
+					$upload_size_unit /= 1024;
+				}
+
+				if ( $u < 0 ) {
+					$upload_size_unit = 0;
+					$u = 0;
+				} else {
+					$upload_size_unit = (int) $upload_size_unit;
+				}
+
+				?>
+
+				<p class="max-upload-size"><?php
+					printf( __( 'Maximum upload file size: %d%s.' ), esc_html($upload_size_unit), esc_html($byte_sizes[$u]) );
+				?></p>
+
+				<?php if ( ( $GLOBALS['is_IE'] || $GLOBALS['is_opera']) && $max_upload_size > 100 * 1024 * 1024 ) :
+					$browser_uploader = admin_url( 'media-new.php?browser-uploader&post_id=' ) . '{{ data.postId }}';
+					?>
+					<p class="big-file-warning"><?php printf( __( 'Your browser has some limitations uploading large files with the multi-file uploader. Please use the <a href="%1$s" target="%2$s">browser uploader</a> for files over 100MB.' ),
+						$browser_uploader, '_blank' ); ?></p>
+				<?php endif; ?>
+
+				<?php do_action( 'post-upload-ui' ); ?>
+			</div>
+		<?php endif; ?>
+		</div>
+	</script>
+
+	<script type="text/html" id="tmpl-uploader-status">
+		<h3><?php _e( 'Uploading' ); ?></h3>
+		<a class="upload-dismiss-errors" href="#"><?php _e('Dismiss Errors'); ?></a>
+
+		<div class="media-progress-bar"><div></div></div>
+		<div class="upload-details">
+			<span class="upload-count">
+				<span class="upload-index"></span> / <span class="upload-total"></span>
+			</span>
+			<span class="upload-detail-separator">&ndash;</span>
+			<span class="upload-filename"></span>
+		</div>
+		<div class="upload-errors"></div>
+	</script>
+
+	<script type="text/html" id="tmpl-uploader-status-error">
+		<span class="upload-error-label"><?php _e('Error'); ?></span>
+		<span class="upload-error-filename">{{{ data.filename }}}</span>
+		<span class="upload-error-message">{{ data.message }}</span>
+	</script>
+
+	<script type="text/html" id="tmpl-attachment">
+		<div class="attachment-preview type-{{ data.type }} subtype-{{ data.subtype }} {{ data.orientation }}">
+			<# if ( data.uploading ) { #>
+				<div class="media-progress-bar"><div></div></div>
+			<# } else if ( 'image' === data.type ) { #>
+				<div class="thumbnail">
+					<div class="centered">
+						<img src="{{ data.size.url }}" draggable="false" />
+					</div>
+				</div>
+			<# } else { #>
+				<img src="{{ data.icon }}" class="icon" draggable="false" />
+				<div class="filename">
+					<div>{{ data.filename }}</div>
+				</div>
+			<# } #>
+
+			<# if ( data.buttons.close ) { #>
+				<a class="close media-modal-icon" href="#" title="<?php _e('Remove'); ?>"></a>
+			<# } #>
+
+			<# if ( data.buttons.check ) { #>
+				<a class="check" href="#" title="<?php _e('Deselect'); ?>"><div class="media-modal-icon"></div></a>
+			<# } #>
+		</div>
+		<#
+		var maybeReadOnly = data.can.save || data.allowLocalEdits ? '' : 'readonly';
+		if ( data.describe ) { #>
+			<# if ( 'image' === data.type ) { #>
+				<input type="text" value="{{ data.caption }}" class="describe" data-setting="caption"
+					placeholder="<?php esc_attr_e('Caption this image&hellip;'); ?>" {{ maybeReadOnly }} />
+			<# } else { #>
+				<input type="text" value="{{ data.title }}" class="describe" data-setting="title"
+					<# if ( 'video' === data.type ) { #>
+						placeholder="<?php esc_attr_e('Describe this video&hellip;'); ?>"
+					<# } else if ( 'audio' === data.type ) { #>
+						placeholder="<?php esc_attr_e('Describe this audio file&hellip;'); ?>"
+					<# } else { #>
+						placeholder="<?php esc_attr_e('Describe this media file&hellip;'); ?>"
+					<# } #> {{ maybeReadOnly }} />
+			<# } #>
+		<# } #>
+	</script>
+
+	<script type="text/html" id="tmpl-attachment-details">
+		<h3>
+			<?php _e('Attachment Details'); ?>
+
+			<span class="settings-save-status">
+				<span class="spinner"></span>
+				<span class="saved"><?php esc_html_e('Saved.'); ?></span>
+			</span>
+		</h3>
+		<div class="attachment-info">
+			<div class="thumbnail">
+				<# if ( data.uploading ) { #>
+					<div class="media-progress-bar"><div></div></div>
+				<# } else if ( 'image' === data.type ) { #>
+					<img src="{{ data.size.url }}" draggable="false" />
+				<# } else { #>
+					<img src="{{ data.icon }}" class="icon" draggable="false" />
+				<# } #>
+			</div>
+			<div class="details">
+				<div class="filename">{{ data.filename }}</div>
+				<div class="uploaded">{{ data.dateFormatted }}</div>
+
+				<# if ( 'image' === data.type && ! data.uploading ) { #>
+					<# if ( data.width && data.height ) { #>
+						<div class="dimensions">{{ data.width }} &times; {{ data.height }}</div>
+					<# } #>
+
+					<# if ( data.can.save ) { #>
+						<a class="edit-attachment" href="{{ data.editLink }}&amp;image-editor" target="_blank"><?php _e( 'Edit Image' ); ?></a>
+						<a class="refresh-attachment" href="#"><?php _e( 'Refresh' ); ?></a>
+					<# } #>
+				<# } #>
+
+				<# if ( ! data.uploading && data.can.remove ) { #>
+					<a class="delete-attachment" href="#"><?php _e( 'Delete Permanently' ); ?></a>
+				<# } #>
+
+				<div class="compat-meta">
+					<# if ( data.compat && data.compat.meta ) { #>
+						{{{ data.compat.meta }}}
+					<# } #>
+				</div>
+			</div>
+		</div>
+
+		<# var maybeReadOnly = data.can.save || data.allowLocalEdits ? '' : 'readonly'; #>
+			<label class="setting" data-setting="title">
+				<span><?php _e('Title'); ?></span>
+				<input type="text" value="{{ data.title }}" {{ maybeReadOnly }} />
+			</label>
+			<label class="setting" data-setting="caption">
+				<span><?php _e('Caption'); ?></span>
+				<textarea {{ maybeReadOnly }}>{{ data.caption }}</textarea>
+			</label>
+		<# if ( 'image' === data.type ) { #>
+			<label class="setting" data-setting="alt">
+				<span><?php _e('Alt Text'); ?></span>
+				<input type="text" value="{{ data.alt }}" {{ maybeReadOnly }} />
+			</label>
+		<# } #>
+			<label class="setting" data-setting="description">
+				<span><?php _e('Description'); ?></span>
+				<textarea {{ maybeReadOnly }}>{{ data.description }}</textarea>
+			</label>
+	</script>
+
+	<script type="text/html" id="tmpl-media-selection">
+		<div class="selection-info">
+			<span class="count"></span>
+			<# if ( data.editable ) { #>
+				<a class="edit-selection" href="#"><?php _e('Edit'); ?></a>
+			<# } #>
+			<# if ( data.clearable ) { #>
+				<a class="clear-selection" href="#"><?php _e('Clear'); ?></a>
+			<# } #>
+		</div>
+		<div class="selection-view"></div>
+	</script>
+
+	<script type="text/html" id="tmpl-attachment-display-settings">
+		<h3><?php _e('Attachment Display Settings'); ?></h3>
+
+		<# if ( 'image' === data.type ) { #>
+			<label class="setting">
+				<span><?php _e('Alignment'); ?></span>
+				<select class="alignment"
+					data-setting="align"
+					<# if ( data.userSettings ) { #>
+						data-user-setting="align"
+					<# } #>>
+
+					<option value="left">
+						<?php esc_attr_e('Left'); ?>
+					</option>
+					<option value="center">
+						<?php esc_attr_e('Center'); ?>
+					</option>
+					<option value="right">
+						<?php esc_attr_e('Right'); ?>
+					</option>
+					<option value="none" selected>
+						<?php esc_attr_e('None'); ?>
+					</option>
+				</select>
+			</label>
+		<# } #>
+
+		<div class="setting">
+			<label>
+				<span><?php _e('Link To'); ?></span>
+				<select class="link-to"
+					data-setting="link"
+					<# if ( data.userSettings ) { #>
+						data-user-setting="urlbutton"
+					<# } #>>
+
+					<option value="custom">
+						<?php esc_attr_e('Custom URL'); ?>
+					</option>
+					<option value="post" selected>
+						<?php esc_attr_e('Attachment Page'); ?>
+					</option>
+					<option value="file">
+						<?php esc_attr_e('Media File'); ?>
+					</option>
+					<option value="none">
+						<?php esc_attr_e('None'); ?>
+					</option>
+				</select>
+			</label>
+			<input type="text" class="link-to-custom" data-setting="linkUrl" />
+		</div>
+
+		<# if ( 'undefined' !== typeof data.sizes ) { #>
+			<label class="setting">
+				<span><?php _e('Size'); ?></span>
+				<select class="size" name="size"
+					data-setting="size"
+					<# if ( data.userSettings ) { #>
+						data-user-setting="imgsize"
+					<# } #>>
+					<?php
+
+					$sizes = apply_filters( 'image_size_names_choose', array(
+						'thumbnail' => __('Thumbnail'),
+						'medium'    => __('Medium'),
+						'large'     => __('Large'),
+						'full'      => __('Full Size'),
+					) );
+
+					foreach ( $sizes as $value => $name ) : ?>
+						<#
+						var size = data.sizes['<?php echo esc_js( $value ); ?>'];
+						if ( size ) { #>
+							<option value="<?php echo esc_attr( $value ); ?>" <?php selected( $value, 'full' ); ?>>
+								<?php echo esc_html( $name ); ?> &ndash; {{ size.width }} &times; {{ size.height }}
+							</option>
+						<# } #>
+					<?php endforeach; ?>
+				</select>
+			</label>
+		<# } #>
+	</script>
+
+	<script type="text/html" id="tmpl-gallery-settings">
+		<h3><?php _e('Gallery Settings'); ?></h3>
+
+		<label class="setting">
+			<span><?php _e('Link To'); ?></span>
+			<select class="link-to"
+				data-setting="link"
+				<# if ( data.userSettings ) { #>
+					data-user-setting="urlbutton"
+				<# } #>>
+
+				<option value="post" selected>
+					<?php esc_attr_e('Attachment Page'); ?>
+				</option>
+				<option value="file">
+					<?php esc_attr_e('Media File'); ?>
+				</option>
+			</select>
+		</label>
+
+		<label class="setting">
+			<span><?php _e('Columns'); ?></span>
+			<select class="columns" name="columns"
+				data-setting="columns">
+				<?php for ( $i = 1; $i <= 9; $i++ ) : ?>
+					<option value="<?php echo esc_attr( $i ); ?>" <?php selected( $i, 3 ); ?>>
+						<?php echo esc_html( $i ); ?>
+					</option>
+				<?php endfor; ?>
+			</select>
+		</label>
+
+		<label class="setting">
+			<span><?php _e( 'Random Order' ); ?></span>
+			<input type="checkbox" data-setting="_orderbyRandom" />
+		</label>
+	</script>
+
+	<script type="text/html" id="tmpl-embed-link-settings">
+		<label class="setting">
+			<span><?php _e('Title'); ?></span>
+			<input type="text" class="alignment" data-setting="title" />
+		</label>
+	</script>
+
+	<script type="text/html" id="tmpl-embed-image-settings">
+		<div class="thumbnail">
+			<img src="{{ data.model.url }}" draggable="false" />
+		</div>
+
+		<?php if ( ! apply_filters( 'disable_captions', '' ) ) : ?>
+			<label class="setting caption">
+				<span><?php _e('Caption'); ?></span>
+				<textarea data-setting="caption" />
+			</label>
+		<?php endif; ?>
+
+		<label class="setting alt-text">
+			<span><?php _e('Alt Text'); ?></span>
+			<input type="text" data-setting="alt" />
+		</label>
+
+		<div class="setting align">
+			<span><?php _e('Align'); ?></span>
+			<div class="button-group button-large" data-setting="align">
+				<button class="button" value="left">
+					<?php esc_attr_e('Left'); ?>
+				</button>
+				<button class="button" value="center">
+					<?php esc_attr_e('Center'); ?>
+				</button>
+				<button class="button" value="right">
+					<?php esc_attr_e('Right'); ?>
+				</button>
+				<button class="button active" value="none">
+					<?php esc_attr_e('None'); ?>
+				</button>
+			</div>
+		</div>
+
+		<div class="setting link-to">
+			<span><?php _e('Link To'); ?></span>
+			<div class="button-group button-large" data-setting="link">
+				<button class="button" value="file">
+					<?php esc_attr_e('Image URL'); ?>
+				</button>
+				<button class="button" value="custom">
+					<?php esc_attr_e('Custom URL'); ?>
+				</button>
+				<button class="button active" value="none">
+					<?php esc_attr_e('None'); ?>
+				</button>
+			</div>
+			<input type="text" class="link-to-custom" data-setting="linkUrl" />
+		</div>
+	</script>
+
+	<script type="text/html" id="tmpl-attachments-css">
+		<style type="text/css" id="{{ data.id }}-css">
+			#{{ data.id }} {
+				padding: 0 {{ data.gutter }}px;
+			}
+
+			#{{ data.id }} .attachment {
+				margin: {{ data.gutter }}px;
+				width: {{ data.edge }}px;
+			}
+
+			#{{ data.id }} .attachment-preview,
+			#{{ data.id }} .attachment-preview .thumbnail {
+				width: {{ data.edge }}px;
+				height: {{ data.edge }}px;
+			}
+
+			#{{ data.id }} .portrait .thumbnail img {
+				max-width: {{ data.edge }}px;
+				height: auto;
+			}
+
+			#{{ data.id }} .landscape .thumbnail img {
+				width: auto;
+				max-height: {{ data.edge }}px;
+			}
+		</style>
+	</script>
+	<?php
+
+	do_action( 'print_media_templates' );
+}
--- a/web/wp-includes/media.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/media.php	Wed Dec 19 17:46:52 2012 -0800
@@ -3,6 +3,7 @@
  * WordPress API for media display.
  *
  * @package WordPress
+ * @subpackage Media
  */
 
 /**
@@ -29,11 +30,15 @@
  * @param int $width Width of the image
  * @param int $height Height of the image
  * @param string|array $size Size of what the result image should be.
+ * @param context Could be 'display' (like in a theme) or 'edit' (like inserting into an editor)
  * @return array Width and height of what the result image should resize to.
  */
-function image_constrain_size_for_editor($width, $height, $size = 'medium') {
+function image_constrain_size_for_editor($width, $height, $size = 'medium', $context = null ) {
 	global $content_width, $_wp_additional_image_sizes;
 
+	if ( ! $context )
+		$context = is_admin() ? 'edit' : 'display';
+
 	if ( is_array($size) ) {
 		$max_width = $size[0];
 		$max_height = $size[1];
@@ -64,7 +69,7 @@
 	} elseif ( isset( $_wp_additional_image_sizes ) && count( $_wp_additional_image_sizes ) && in_array( $size, array_keys( $_wp_additional_image_sizes ) ) ) {
 		$max_width = intval( $_wp_additional_image_sizes[$size]['width'] );
 		$max_height = intval( $_wp_additional_image_sizes[$size]['height'] );
-		if ( intval($content_width) > 0 && is_admin() ) // Only in admin. Assume that theme authors know what they're doing.
+		if ( intval($content_width) > 0 && 'edit' == $context ) // Only in admin. Assume that theme authors know what they're doing.
 			$max_width = min( intval($content_width), $max_width );
 	}
 	// $size == 'full' has no constraint
@@ -73,7 +78,7 @@
 		$max_height = $height;
 	}
 
-	list( $max_width, $max_height ) = apply_filters( 'editor_max_image_size', array( $max_width, $max_height ), $size );
+	list( $max_width, $max_height ) = apply_filters( 'editor_max_image_size', array( $max_width, $max_height ), $size, $context );
 
 	return wp_constrain_dimensions( $width, $height, $max_width, $max_height );
 }
@@ -225,10 +230,12 @@
 	list( $img_src, $width, $height ) = image_downsize($id, $size);
 	$hwstring = image_hwstring($width, $height);
 
+	$title = $title ? 'title="' . esc_attr( $title ) . '" ' : '';
+
 	$class = 'align' . esc_attr($align) .' size-' . esc_attr($size) . ' wp-image-' . $id;
 	$class = apply_filters('get_image_tag_class', $class, $id, $align, $size);
 
-	$html = '<img src="' . esc_attr($img_src) . '" alt="' . esc_attr($alt) . '" title="' . esc_attr($title).'" '.$hwstring.'class="'.$class.'" />';
+	$html = '<img src="' . esc_attr($img_src) . '" alt="' . esc_attr($alt) . '" ' . $title . $hwstring . 'class="' . $class . '" />';
 
 	$html = apply_filters( 'get_image_tag', $html, $id, $alt, $title, $align, $size );
 
@@ -236,34 +243,6 @@
 }
 
 /**
- * Load an image from a string, if PHP supports it.
- *
- * @since 2.1.0
- *
- * @param string $file Filename of the image to load.
- * @return resource The resulting image resource on success, Error string on failure.
- */
-function wp_load_image( $file ) {
-	if ( is_numeric( $file ) )
-		$file = get_attached_file( $file );
-
-	if ( ! file_exists( $file ) )
-		return sprintf(__('File &#8220;%s&#8221; doesn&#8217;t exist?'), $file);
-
-	if ( ! function_exists('imagecreatefromstring') )
-		return __('The GD image library is not installed.');
-
-	// Set artificially high because GD uses uncompressed images in memory
-	@ini_set( 'memory_limit', apply_filters( 'image_memory_limit', WP_MAX_MEMORY_LIMIT ) );
-	$image = imagecreatefromstring( file_get_contents( $file ) );
-
-	if ( !is_resource( $image ) )
-		return sprintf(__('File &#8220;%s&#8221; is not an image.'), $file);
-
-	return $image;
-}
-
-/**
  * Calculates the new dimensions for a downsampled image.
  *
  * If either width or height are empty, no constraint is applied on
@@ -320,7 +299,7 @@
 }
 
 /**
- * Retrieve calculated resized dimensions for use in imagecopyresampled().
+ * Retrieve calculated resized dimensions for use in WP_Image_Editor.
  *
  * Calculate dimensions and coordinates for a resized image that fits within a
  * specified width and height. If $crop is true, the largest matching central
@@ -393,92 +372,6 @@
 }
 
 /**
- * Scale down an image to fit a particular size and save a new copy of the image.
- *
- * The PNG transparency will be preserved using the function, as well as the
- * image type. If the file going in is PNG, then the resized image is going to
- * be PNG. The only supported image types are PNG, GIF, and JPEG.
- *
- * Some functionality requires API to exist, so some PHP version may lose out
- * support. This is not the fault of WordPress (where functionality is
- * downgraded, not actual defects), but of your PHP version.
- *
- * @since 2.5.0
- *
- * @param string $file Image file path.
- * @param int $max_w Maximum width to resize to.
- * @param int $max_h Maximum height to resize to.
- * @param bool $crop Optional. Whether to crop image or resize.
- * @param string $suffix Optional. File suffix.
- * @param string $dest_path Optional. New image file path.
- * @param int $jpeg_quality Optional, default is 90. Image quality percentage.
- * @return mixed WP_Error on failure. String with new destination path.
- */
-function image_resize( $file, $max_w, $max_h, $crop = false, $suffix = null, $dest_path = null, $jpeg_quality = 90 ) {
-
-	$image = wp_load_image( $file );
-	if ( !is_resource( $image ) )
-		return new WP_Error( 'error_loading_image', $image, $file );
-
-	$size = @getimagesize( $file );
-	if ( !$size )
-		return new WP_Error('invalid_image', __('Could not read image size'), $file);
-	list($orig_w, $orig_h, $orig_type) = $size;
-
-	$dims = image_resize_dimensions($orig_w, $orig_h, $max_w, $max_h, $crop);
-	if ( !$dims )
-		return new WP_Error( 'error_getting_dimensions', __('Could not calculate resized image dimensions') );
-	list($dst_x, $dst_y, $src_x, $src_y, $dst_w, $dst_h, $src_w, $src_h) = $dims;
-
-	$newimage = wp_imagecreatetruecolor( $dst_w, $dst_h );
-
-	imagecopyresampled( $newimage, $image, $dst_x, $dst_y, $src_x, $src_y, $dst_w, $dst_h, $src_w, $src_h);
-
-	// convert from full colors to index colors, like original PNG.
-	if ( IMAGETYPE_PNG == $orig_type && function_exists('imageistruecolor') && !imageistruecolor( $image ) )
-		imagetruecolortopalette( $newimage, false, imagecolorstotal( $image ) );
-
-	// we don't need the original in memory anymore
-	imagedestroy( $image );
-
-	// $suffix will be appended to the destination filename, just before the extension
-	if ( !$suffix )
-		$suffix = "{$dst_w}x{$dst_h}";
-
-	$info = pathinfo($file);
-	$dir = $info['dirname'];
-	$ext = $info['extension'];
-	$name = wp_basename($file, ".$ext");
-
-	if ( !is_null($dest_path) and $_dest_path = realpath($dest_path) )
-		$dir = $_dest_path;
-	$destfilename = "{$dir}/{$name}-{$suffix}.{$ext}";
-
-	if ( IMAGETYPE_GIF == $orig_type ) {
-		if ( !imagegif( $newimage, $destfilename ) )
-			return new WP_Error('resize_path_invalid', __( 'Resize path invalid' ));
-	} elseif ( IMAGETYPE_PNG == $orig_type ) {
-		if ( !imagepng( $newimage, $destfilename ) )
-			return new WP_Error('resize_path_invalid', __( 'Resize path invalid' ));
-	} else {
-		// all other formats are converted to jpg
-		if ( 'jpg' != $ext && 'jpeg' != $ext )
-			$destfilename = "{$dir}/{$name}-{$suffix}.jpg";
-		if ( !imagejpeg( $newimage, $destfilename, apply_filters( 'jpeg_quality', $jpeg_quality, 'image_resize' ) ) )
-			return new WP_Error('resize_path_invalid', __( 'Resize path invalid' ));
-	}
-
-	imagedestroy( $newimage );
-
-	// Set correct file permissions
-	$stat = stat( dirname( $destfilename ));
-	$perms = $stat['mode'] & 0000666; //same permissions as parent folder, strip off the executable bits
-	@ chmod( $destfilename, $perms );
-
-	return $destfilename;
-}
-
-/**
  * Resize an image to make a thumbnail or intermediate size.
  *
  * The returned array has the file size, the image width, and image height. The
@@ -493,16 +386,18 @@
  * @param bool $crop Optional, default is false. Whether to crop image to specified height and width or resize.
  * @return bool|array False, if no image was created. Metadata array on success.
  */
-function image_make_intermediate_size($file, $width, $height, $crop=false) {
+function image_make_intermediate_size( $file, $width, $height, $crop = false ) {
 	if ( $width || $height ) {
-		$resized_file = image_resize($file, $width, $height, $crop);
-		if ( !is_wp_error($resized_file) && $resized_file && $info = getimagesize($resized_file) ) {
-			$resized_file = apply_filters('image_make_intermediate_size', $resized_file);
-			return array(
-				'file' => wp_basename( $resized_file ),
-				'width' => $info[0],
-				'height' => $info[1],
-			);
+		$editor = wp_get_image_editor( $file );
+
+		if ( is_wp_error( $editor ) || is_wp_error( $editor->resize( $width, $height, $crop ) ) )
+			return false;
+
+		$resized_file = $editor->save();
+
+		if ( ! is_wp_error( $resized_file ) && $resized_file ) {
+			unset( $resized_file['path'] );
+			return $resized_file;
 		}
 	}
 	return false;
@@ -655,12 +550,11 @@
 		$hwstring = image_hwstring($width, $height);
 		if ( is_array($size) )
 			$size = join('x', $size);
-		$attachment =& get_post($attachment_id);
+		$attachment = get_post($attachment_id);
 		$default_attr = array(
 			'src'	=> $src,
 			'class'	=> "attachment-$size",
 			'alt'	=> trim(strip_tags( get_post_meta($attachment_id, '_wp_attachment_image_alt', true) )), // Use Alt field first
-			'title'	=> trim(strip_tags( $attachment->post_title )),
 		);
 		if ( empty($default_attr['alt']) )
 			$default_attr['alt'] = trim(strip_tags( $attachment->post_excerpt )); // If not, Use the Caption
@@ -775,11 +669,18 @@
  * @return string HTML content to display gallery.
  */
 function gallery_shortcode($attr) {
-	global $post;
+	$post = get_post();
 
 	static $instance = 0;
 	$instance++;
 
+	if ( ! empty( $attr['ids'] ) ) {
+		// 'ids' is explicitly ordered, unless you specify otherwise.
+		if ( empty( $attr['orderby'] ) )
+			$attr['orderby'] = 'post__in';
+		$attr['include'] = $attr['ids'];
+	}
+
 	// Allow plugins/themes to override the default gallery template.
 	$output = apply_filters('post_gallery', '', $attr);
 	if ( $output != '' )
@@ -810,7 +711,6 @@
 		$orderby = 'none';
 
 	if ( !empty($include) ) {
-		$include = preg_replace( '/[^0-9,]+/', '', $include );
 		$_attachments = get_posts( array('include' => $include, 'post_status' => 'inherit', 'post_type' => 'attachment', 'post_mime_type' => 'image', 'order' => $order, 'orderby' => $orderby) );
 
 		$attachments = array();
@@ -818,7 +718,6 @@
 			$attachments[$val->ID] = $_attachments[$key];
 		}
 	} elseif ( !empty($exclude) ) {
-		$exclude = preg_replace( '/[^0-9,]+/', '', $exclude );
 		$attachments = get_children( array('post_parent' => $id, 'exclude' => $exclude, 'post_status' => 'inherit', 'post_type' => 'attachment', 'post_mime_type' => 'image', 'order' => $order, 'orderby' => $orderby) );
 	} else {
 		$attachments = get_children( array('post_parent' => $id, 'post_status' => 'inherit', 'post_type' => 'attachment', 'post_mime_type' => 'image', 'order' => $order, 'orderby' => $orderby) );
@@ -928,9 +827,8 @@
  * @param bool $prev Optional. Default is true to display previous link, false for next.
  */
 function adjacent_image_link($prev = true, $size = 'thumbnail', $text = false) {
-	global $post;
-	$post = get_post($post);
-	$attachments = array_values(get_children( array('post_parent' => $post->post_parent, 'post_status' => 'inherit', 'post_type' => 'attachment', 'post_mime_type' => 'image', 'order' => 'ASC', 'orderby' => 'menu_order ID') ));
+	$post = get_post();
+	$attachments = array_values( get_children( array( 'post_parent' => $post->post_parent, 'post_status' => 'inherit', 'post_type' => 'attachment', 'post_mime_type' => 'image', 'order' => 'ASC', 'orderby' => 'menu_order ID' ) ) );
 
 	foreach ( $attachments as $k => $attachment )
 		if ( $attachment->ID == $post->ID )
@@ -938,8 +836,14 @@
 
 	$k = $prev ? $k - 1 : $k + 1;
 
-	if ( isset($attachments[$k]) )
-		echo wp_get_attachment_link($attachments[$k]->ID, $size, true, false, $text);
+	$output = $attachment_id = null;
+	if ( isset( $attachments[ $k ] ) ) {
+		$attachment_id = $attachments[ $k ]->ID;
+		$output = wp_get_attachment_link( $attachment_id, $size, true, false, $text );
+	}
+
+	$adjacent = $prev ? 'previous' : 'next';
+	echo apply_filters( "{$adjacent}_image_link", $output, $attachment_id, $size, $text );
 }
 
 /**
@@ -982,38 +886,37 @@
 }
 
 /**
- * Check if the installed version of GD supports particular image type
+ * Return all of the taxonomy names that are registered for attachments.
+ *
+ * Handles mime-type-specific taxonomies such as attachment:image and attachment:video.
  *
- * @since 2.9.0
+ * @since 3.5.0
+ * @see get_attachment_taxonomies()
+ * @uses get_taxonomies()
  *
- * @param string $mime_type
- * @return bool
+ * @param string $output The type of output to return, either taxonomy 'names' or 'objects'. 'names' is the default.
+ * @return array The names of all taxonomy of $object_type.
  */
-function gd_edit_image_support($mime_type) {
-	if ( function_exists('imagetypes') ) {
-		switch( $mime_type ) {
-			case 'image/jpeg':
-				return (imagetypes() & IMG_JPG) != 0;
-			case 'image/png':
-				return (imagetypes() & IMG_PNG) != 0;
-			case 'image/gif':
-				return (imagetypes() & IMG_GIF) != 0;
-		}
-	} else {
-		switch( $mime_type ) {
-			case 'image/jpeg':
-				return function_exists('imagecreatefromjpeg');
-			case 'image/png':
-				return function_exists('imagecreatefrompng');
-			case 'image/gif':
-				return function_exists('imagecreatefromgif');
+function get_taxonomies_for_attachments( $output = 'names' ) {
+	$taxonomies = array();
+	foreach ( get_taxonomies( array(), 'objects' ) as $taxonomy ) {
+		foreach ( $taxonomy->object_type as $object_type ) {
+			if ( 'attachment' == $object_type || 0 === strpos( $object_type, 'attachment:' ) ) {
+				if ( 'names' == $output )
+					$taxonomies[] = $taxonomy->name;
+				else
+					$taxonomies[ $taxonomy->name ] = $taxonomy;
+				break;
+			}
 		}
 	}
-	return false;
+
+	return $taxonomies;
 }
 
 /**
  * Create new GD image resource with transparency support
+ * @TODO: Deprecate if possible.
  *
  * @since 2.9.0
  *
@@ -1031,285 +934,6 @@
 }
 
 /**
- * API for easily embedding rich media such as videos and images into content.
- *
- * @package WordPress
- * @subpackage Embed
- * @since 2.9.0
- */
-class WP_Embed {
-	var $handlers = array();
-	var $post_ID;
-	var $usecache = true;
-	var $linkifunknown = true;
-
-	/**
-	 * Constructor
-	 */
-	function __construct() {
-		// Hack to get the [embed] shortcode to run before wpautop()
-		add_filter( 'the_content', array(&$this, 'run_shortcode'), 8 );
-
-		// Shortcode placeholder for strip_shortcodes()
-		add_shortcode( 'embed', '__return_false' );
-
-		// Attempts to embed all URLs in a post
-		if ( get_option('embed_autourls') )
-			add_filter( 'the_content', array(&$this, 'autoembed'), 8 );
-
-		// After a post is saved, invalidate the oEmbed cache
-		add_action( 'save_post', array(&$this, 'delete_oembed_caches') );
-
-		// After a post is saved, cache oEmbed items via AJAX
-		add_action( 'edit_form_advanced', array(&$this, 'maybe_run_ajax_cache') );
-	}
-
-	/**
-	 * Process the [embed] shortcode.
-	 *
-	 * Since the [embed] shortcode needs to be run earlier than other shortcodes,
-	 * this function removes all existing shortcodes, registers the [embed] shortcode,
-	 * calls {@link do_shortcode()}, and then re-registers the old shortcodes.
-	 *
-	 * @uses $shortcode_tags
-	 * @uses remove_all_shortcodes()
-	 * @uses add_shortcode()
-	 * @uses do_shortcode()
-	 *
-	 * @param string $content Content to parse
-	 * @return string Content with shortcode parsed
-	 */
-	function run_shortcode( $content ) {
-		global $shortcode_tags;
-
-		// Back up current registered shortcodes and clear them all out
-		$orig_shortcode_tags = $shortcode_tags;
-		remove_all_shortcodes();
-
-		add_shortcode( 'embed', array(&$this, 'shortcode') );
-
-		// Do the shortcode (only the [embed] one is registered)
-		$content = do_shortcode( $content );
-
-		// Put the original shortcodes back
-		$shortcode_tags = $orig_shortcode_tags;
-
-		return $content;
-	}
-
-	/**
-	 * If a post/page was saved, then output JavaScript to make
-	 * an AJAX request that will call WP_Embed::cache_oembed().
-	 */
-	function maybe_run_ajax_cache() {
-		global $post_ID;
-
-		if ( empty($post_ID) || empty($_GET['message']) || 1 != $_GET['message'] )
-			return;
-
-?>
-<script type="text/javascript">
-/* <![CDATA[ */
-	jQuery(document).ready(function($){
-		$.get("<?php echo admin_url( 'admin-ajax.php?action=oembed-cache&post=' . $post_ID, 'relative' ); ?>");
-	});
-/* ]]> */
-</script>
-<?php
-	}
-
-	/**
-	 * Register an embed handler. Do not use this function directly, use {@link wp_embed_register_handler()} instead.
-	 * This function should probably also only be used for sites that do not support oEmbed.
-	 *
-	 * @param string $id An internal ID/name for the handler. Needs to be unique.
-	 * @param string $regex The regex that will be used to see if this handler should be used for a URL.
-	 * @param callback $callback The callback function that will be called if the regex is matched.
-	 * @param int $priority Optional. Used to specify the order in which the registered handlers will be tested (default: 10). Lower numbers correspond with earlier testing, and handlers with the same priority are tested in the order in which they were added to the action.
-	 */
-	function register_handler( $id, $regex, $callback, $priority = 10 ) {
-		$this->handlers[$priority][$id] = array(
-			'regex'    => $regex,
-			'callback' => $callback,
-		);
-	}
-
-	/**
-	 * Unregister a previously registered embed handler. Do not use this function directly, use {@link wp_embed_unregister_handler()} instead.
-	 *
-	 * @param string $id The handler ID that should be removed.
-	 * @param int $priority Optional. The priority of the handler to be removed (default: 10).
-	 */
-	function unregister_handler( $id, $priority = 10 ) {
-		if ( isset($this->handlers[$priority][$id]) )
-			unset($this->handlers[$priority][$id]);
-	}
-
-	/**
-	 * The {@link do_shortcode()} callback function.
-	 *
-	 * Attempts to convert a URL into embed HTML. Starts by checking the URL against the regex of the registered embed handlers.
-	 * If none of the regex matches and it's enabled, then the URL will be given to the {@link WP_oEmbed} class.
-	 *
-	 * @uses wp_oembed_get()
-	 * @uses wp_parse_args()
-	 * @uses wp_embed_defaults()
-	 * @uses WP_Embed::maybe_make_link()
-	 * @uses get_option()
-	 * @uses current_user_can()
-	 * @uses wp_cache_get()
-	 * @uses wp_cache_set()
-	 * @uses get_post_meta()
-	 * @uses update_post_meta()
-	 *
-	 * @param array $attr Shortcode attributes.
-	 * @param string $url The URL attempting to be embedded.
-	 * @return string The embed HTML on success, otherwise the original URL.
-	 */
-	function shortcode( $attr, $url = '' ) {
-		global $post;
-
-		if ( empty($url) )
-			return '';
-
-		$rawattr = $attr;
-		$attr = wp_parse_args( $attr, wp_embed_defaults() );
-
-		// kses converts & into &amp; and we need to undo this
-		// See http://core.trac.wordpress.org/ticket/11311
-		$url = str_replace( '&amp;', '&', $url );
-
-		// Look for known internal handlers
-		ksort( $this->handlers );
-		foreach ( $this->handlers as $priority => $handlers ) {
-			foreach ( $handlers as $id => $handler ) {
-				if ( preg_match( $handler['regex'], $url, $matches ) && is_callable( $handler['callback'] ) ) {
-					if ( false !== $return = call_user_func( $handler['callback'], $matches, $attr, $url, $rawattr ) )
-						return apply_filters( 'embed_handler_html', $return, $url, $attr );
-				}
-			}
-		}
-
-		$post_ID = ( !empty($post->ID) ) ? $post->ID : null;
-		if ( !empty($this->post_ID) ) // Potentially set by WP_Embed::cache_oembed()
-			$post_ID = $this->post_ID;
-
-		// Unknown URL format. Let oEmbed have a go.
-		if ( $post_ID ) {
-
-			// Check for a cached result (stored in the post meta)
-			$cachekey = '_oembed_' . md5( $url . serialize( $attr ) );
-			if ( $this->usecache ) {
-				$cache = get_post_meta( $post_ID, $cachekey, true );
-
-				// Failures are cached
-				if ( '{{unknown}}' === $cache )
-					return $this->maybe_make_link( $url );
-
-				if ( !empty($cache) )
-					return apply_filters( 'embed_oembed_html', $cache, $url, $attr, $post_ID );
-			}
-
-			// Use oEmbed to get the HTML
-			$attr['discover'] = ( apply_filters('embed_oembed_discover', false) && author_can( $post_ID, 'unfiltered_html' ) );
-			$html = wp_oembed_get( $url, $attr );
-
-			// Cache the result
-			$cache = ( $html ) ? $html : '{{unknown}}';
-			update_post_meta( $post_ID, $cachekey, $cache );
-
-			// If there was a result, return it
-			if ( $html )
-				return apply_filters( 'embed_oembed_html', $html, $url, $attr, $post_ID );
-		}
-
-		// Still unknown
-		return $this->maybe_make_link( $url );
-	}
-
-	/**
-	 * Delete all oEmbed caches.
-	 *
-	 * @param int $post_ID Post ID to delete the caches for.
-	 */
-	function delete_oembed_caches( $post_ID ) {
-		$post_metas = get_post_custom_keys( $post_ID );
-		if ( empty($post_metas) )
-			return;
-
-		foreach( $post_metas as $post_meta_key ) {
-			if ( '_oembed_' == substr( $post_meta_key, 0, 8 ) )
-				delete_post_meta( $post_ID, $post_meta_key );
-		}
-	}
-
-	/**
-	 * Triggers a caching of all oEmbed results.
-	 *
-	 * @param int $post_ID Post ID to do the caching for.
-	 */
-	function cache_oembed( $post_ID ) {
-		$post = get_post( $post_ID );
-
-		if ( empty($post->ID) || !in_array( $post->post_type, apply_filters( 'embed_cache_oembed_types', array( 'post', 'page' ) ) ) )
-			return;
-
-		// Trigger a caching
-		if ( !empty($post->post_content) ) {
-			$this->post_ID = $post->ID;
-			$this->usecache = false;
-
-			$content = $this->run_shortcode( $post->post_content );
-			if ( get_option('embed_autourls') )
-				$this->autoembed( $content );
-
-			$this->usecache = true;
-		}
-	}
-
-	/**
-	 * Passes any unlinked URLs that are on their own line to {@link WP_Embed::shortcode()} for potential embedding.
-	 *
-	 * @uses WP_Embed::autoembed_callback()
-	 *
-	 * @param string $content The content to be searched.
-	 * @return string Potentially modified $content.
-	 */
-	function autoembed( $content ) {
-		return preg_replace_callback( '|^\s*(https?://[^\s"]+)\s*$|im', array(&$this, 'autoembed_callback'), $content );
-	}
-
-	/**
-	 * Callback function for {@link WP_Embed::autoembed()}.
-	 *
-	 * @uses WP_Embed::shortcode()
-	 *
-	 * @param array $match A regex match array.
-	 * @return string The embed HTML on success, otherwise the original URL.
-	 */
-	function autoembed_callback( $match ) {
-		$oldval = $this->linkifunknown;
-		$this->linkifunknown = false;
-		$return = $this->shortcode( array(), $match[1] );
-		$this->linkifunknown = $oldval;
-
-		return "\n$return\n";
-	}
-
-	/**
-	 * Conditionally makes a hyperlink based on an internal class variable.
-	 *
-	 * @param string $url URL to potentially be linked.
-	 * @return string Linked URL or the original URL.
-	 */
-	function maybe_make_link( $url ) {
-		$output = ( $this->linkifunknown ) ? '<a href="' . esc_attr($url) . '">' . esc_html($url) . '</a>' : $url;
-		return apply_filters( 'embed_maybe_make_link', $output, $url );
-	}
-}
-$GLOBALS['wp_embed'] = new WP_Embed();
-
-/**
  * Register an embed handler. This function should probably only be used for sites that do not support oEmbed.
  *
  * @since 2.9.0
@@ -1334,31 +958,27 @@
 /**
  * Create default array of embed parameters.
  *
+ * The width defaults to the content width as specified by the theme. If the
+ * theme does not specify a content width, then 500px is used.
+ *
+ * The default height is 1.5 times the width, or 1000px, whichever is smaller.
+ *
+ * The 'embed_defaults' filter can be used to adjust either of these values.
+ *
  * @since 2.9.0
  *
  * @return array Default embed parameters.
  */
 function wp_embed_defaults() {
-	if ( !empty($GLOBALS['content_width']) )
-		$theme_width = (int) $GLOBALS['content_width'];
-
-	$width = get_option('embed_size_w');
+	if ( ! empty( $GLOBALS['content_width'] ) )
+		$width = (int) $GLOBALS['content_width'];
 
-	if ( empty($width) && !empty($theme_width) )
-		$width = $theme_width;
-
-	if ( empty($width) )
+	if ( empty( $width ) )
 		$width = 500;
 
-	$height = get_option('embed_size_h');
-
-	if ( empty($height) )
-		$height = 700;
+	$height = min( ceil( $width * 1.5 ), 1000 );
 
-	return apply_filters( 'embed_defaults', array(
-		'width'  => $width,
-		'height' => $height,
-	) );
+	return apply_filters( 'embed_defaults', compact( 'width', 'height' ) );
 }
 
 /**
@@ -1420,6 +1040,29 @@
 }
 
 /**
+ * Removes an oEmbed provider.
+ *
+ * @since 3.5
+ * @see WP_oEmbed
+ *
+ * @uses _wp_oembed_get_object()
+ *
+ * @param string $format The URL format for the oEmbed provider to remove.
+ */
+function wp_oembed_remove_provider( $format ) {
+	require_once( ABSPATH . WPINC . '/class-oembed.php' );
+
+	$oembed = _wp_oembed_get_object();
+
+	if ( isset( $oembed->providers[ $format ] ) ) {
+		unset( $oembed->providers[ $format ] );
+		return true;
+	}
+
+	return false;
+}
+
+/**
  * Determines if default embed handlers should be loaded.
  *
  * Checks to make sure that the embeds library hasn't already been loaded. If
@@ -1458,6 +1101,145 @@
 }
 
 /**
+ * {@internal Missing Short Description}}
+ *
+ * @since 2.3.0
+ *
+ * @param unknown_type $size
+ * @return unknown
+ */
+function wp_convert_hr_to_bytes( $size ) {
+	$size  = strtolower( $size );
+	$bytes = (int) $size;
+	if ( strpos( $size, 'k' ) !== false )
+		$bytes = intval( $size ) * 1024;
+	elseif ( strpos( $size, 'm' ) !== false )
+		$bytes = intval($size) * 1024 * 1024;
+	elseif ( strpos( $size, 'g' ) !== false )
+		$bytes = intval( $size ) * 1024 * 1024 * 1024;
+	return $bytes;
+}
+
+/**
+ * {@internal Missing Short Description}}
+ *
+ * @since 2.3.0
+ *
+ * @param unknown_type $bytes
+ * @return unknown
+ */
+function wp_convert_bytes_to_hr( $bytes ) {
+	$units = array( 0 => 'B', 1 => 'kB', 2 => 'MB', 3 => 'GB' );
+	$log   = log( $bytes, 1024 );
+	$power = (int) $log;
+	$size  = pow( 1024, $log - $power );
+	return $size . $units[$power];
+}
+
+/**
+ * {@internal Missing Short Description}}
+ *
+ * @since 2.5.0
+ *
+ * @return unknown
+ */
+function wp_max_upload_size() {
+	$u_bytes = wp_convert_hr_to_bytes( ini_get( 'upload_max_filesize' ) );
+	$p_bytes = wp_convert_hr_to_bytes( ini_get( 'post_max_size' ) );
+	$bytes   = apply_filters( 'upload_size_limit', min( $u_bytes, $p_bytes ), $u_bytes, $p_bytes );
+	return $bytes;
+}
+
+/**
+ * Returns a WP_Image_Editor instance and loads file into it.
+ *
+ * @since 3.5.0
+ * @access public
+ *
+ * @param string $path Path to file to load
+ * @param array $args Additional data. Accepts { 'mime_type'=>string, 'methods'=>{string, string, ...} }
+ * @return WP_Image_Editor|WP_Error
+ */
+function wp_get_image_editor( $path, $args = array() ) {
+	$args['path'] = $path;
+
+	if ( ! isset( $args['mime_type'] ) ) {
+		$file_info  = wp_check_filetype( $args['path'] );
+
+		// If $file_info['type'] is false, then we let the editor attempt to
+		// figure out the file type, rather than forcing a failure based on extension.
+		if ( isset( $file_info ) && $file_info['type'] )
+			$args['mime_type'] = $file_info['type'];
+	}
+
+	$implementation = _wp_image_editor_choose( $args );
+
+	if ( $implementation ) {
+		$editor = new $implementation( $path );
+		$loaded = $editor->load();
+
+		if ( is_wp_error( $loaded ) )
+			return $loaded;
+
+		return $editor;
+	}
+
+	return new WP_Error( 'image_no_editor', __('No editor could be selected.') );
+}
+
+/**
+ * Tests whether there is an editor that supports a given mime type or methods.
+ *
+ * @since 3.5.0
+ * @access public
+ *
+ * @param string|array $args Array of requirements.  Accepts { 'mime_type'=>string, 'methods'=>{string, string, ...} }
+ * @return boolean true if an eligible editor is found; false otherwise
+ */
+function wp_image_editor_supports( $args = array() ) {
+	return (bool) _wp_image_editor_choose( $args );
+}
+
+/**
+ * Tests which editors are capable of supporting the request.
+ *
+ * @since 3.5.0
+ * @access private
+ *
+ * @param array $args Additional data. Accepts { 'mime_type'=>string, 'methods'=>{string, string, ...} }
+ * @return string|bool Class name for the first editor that claims to support the request. False if no editor claims to support the request.
+ */
+function _wp_image_editor_choose( $args = array() ) {
+	require_once ABSPATH . WPINC . '/class-wp-image-editor.php';
+	require_once ABSPATH . WPINC . '/class-wp-image-editor-gd.php';
+	require_once ABSPATH . WPINC . '/class-wp-image-editor-imagick.php';
+
+	$implementations = apply_filters( 'wp_image_editors',
+		array( 'WP_Image_Editor_Imagick', 'WP_Image_Editor_GD' ) );
+
+	foreach ( $implementations as $implementation ) {
+		if ( ! call_user_func( array( $implementation, 'test' ), $args ) )
+			continue;
+
+		if ( isset( $args['mime_type'] ) &&
+			! call_user_func(
+				array( $implementation, 'supports_mime_type' ),
+				$args['mime_type'] ) ) {
+			continue;
+		}
+
+		if ( isset( $args['methods'] ) &&
+			 array_diff( $args['methods'], get_class_methods( $implementation ) ) ) {
+			continue;
+		}
+
+		return $implementation;
+	}
+
+	return false;
+}
+
+/**
  * Prints default plupload arguments.
  *
  * @since 3.4.0
@@ -1465,6 +1247,10 @@
 function wp_plupload_default_settings() {
 	global $wp_scripts;
 
+	$data = $wp_scripts->get_data( 'wp-plupload', 'data' );
+	if ( $data && false !== strpos( $data, '_wpPluploadSettings' ) )
+		return;
+
 	$max_upload_size = wp_max_upload_size();
 
 	$defaults = array(
@@ -1472,7 +1258,7 @@
 		'file_data_name'      => 'async-upload', // key passed to $_FILE.
 		'multiple_queues'     => true,
 		'max_file_size'       => $max_upload_size . 'b',
-		'url'                 => admin_url( 'admin-ajax.php', 'relative' ),
+		'url'                 => admin_url( 'async-upload.php', 'relative' ),
 		'flash_swf_url'       => includes_url( 'js/plupload/plupload.flash.swf' ),
 		'silverlight_xap_url' => includes_url( 'js/plupload/plupload.silverlight.xap' ),
 		'filters'             => array( array( 'title' => __( 'Allowed Files' ), 'extensions' => '*') ),
@@ -1480,6 +1266,11 @@
 		'urlstream_upload'    => true,
 	);
 
+	// Multi-file uploading doesn't currently work in iOS Safari,
+	// single-file allows the built-in camera to be used as source for images
+	if ( wp_is_mobile() )
+		$defaults['multi_selection'] = false;
+
 	$defaults = apply_filters( 'plupload_default_settings', $defaults );
 
 	$params = array(
@@ -1496,14 +1287,258 @@
 			'mobile'    => wp_is_mobile(),
 			'supported' => _device_can_upload(),
 		),
+		'limitExceeded' => is_multisite() && ! is_upload_space_available()
 	);
 
 	$script = 'var _wpPluploadSettings = ' . json_encode( $settings ) . ';';
 
-	$data = $wp_scripts->get_data( 'wp-plupload', 'data' );
 	if ( $data )
 		$script = "$data\n$script";
 
 	$wp_scripts->add_data( 'wp-plupload', 'data', $script );
 }
 add_action( 'customize_controls_enqueue_scripts', 'wp_plupload_default_settings' );
+
+/**
+ * Prepares an attachment post object for JS, where it is expected
+ * to be JSON-encoded and fit into an Attachment model.
+ *
+ * @since 3.5.0
+ *
+ * @param mixed $attachment Attachment ID or object.
+ * @return array Array of attachment details.
+ */
+function wp_prepare_attachment_for_js( $attachment ) {
+	if ( ! $attachment = get_post( $attachment ) )
+		return;
+
+	if ( 'attachment' != $attachment->post_type )
+		return;
+
+	$meta = wp_get_attachment_metadata( $attachment->ID );
+	if ( false !== strpos( $attachment->post_mime_type, '/' ) )
+		list( $type, $subtype ) = explode( '/', $attachment->post_mime_type );
+	else
+		list( $type, $subtype ) = array( $attachment->post_mime_type, '' );
+
+	$attachment_url = wp_get_attachment_url( $attachment->ID );
+
+	$response = array(
+		'id'          => $attachment->ID,
+		'title'       => $attachment->post_title,
+		'filename'    => basename( $attachment->guid ),
+		'url'         => $attachment_url,
+		'link'        => get_attachment_link( $attachment->ID ),
+		'alt'         => get_post_meta( $attachment->ID, '_wp_attachment_image_alt', true ),
+		'author'      => $attachment->post_author,
+		'description' => $attachment->post_content,
+		'caption'     => $attachment->post_excerpt,
+		'name'        => $attachment->post_name,
+		'status'      => $attachment->post_status,
+		'uploadedTo'  => $attachment->post_parent,
+		'date'        => strtotime( $attachment->post_date_gmt ) * 1000,
+		'modified'    => strtotime( $attachment->post_modified_gmt ) * 1000,
+		'menuOrder'   => $attachment->menu_order,
+		'mime'        => $attachment->post_mime_type,
+		'type'        => $type,
+		'subtype'     => $subtype,
+		'icon'        => wp_mime_type_icon( $attachment->ID ),
+		'dateFormatted' => mysql2date( get_option('date_format'), $attachment->post_date ),
+		'nonces'      => array(
+			'update' => false,
+			'delete' => false,
+		),
+		'editLink'   => false,
+	);
+
+	if ( current_user_can( 'edit_post', $attachment->ID ) ) {
+		$response['nonces']['update'] = wp_create_nonce( 'update-post_' . $attachment->ID );
+		$response['editLink'] = get_edit_post_link( $attachment->ID, 'raw' );
+	}
+
+	if ( current_user_can( 'delete_post', $attachment->ID ) )
+		$response['nonces']['delete'] = wp_create_nonce( 'delete-post_' . $attachment->ID );
+
+	if ( $meta && 'image' === $type ) {
+		$sizes = array();
+		$possible_sizes = apply_filters( 'image_size_names_choose', array(
+			'thumbnail' => __('Thumbnail'),
+			'medium'    => __('Medium'),
+			'large'     => __('Large'),
+			'full'      => __('Full Size'),
+		) );
+		unset( $possible_sizes['full'] );
+
+		// Loop through all potential sizes that may be chosen. Try to do this with some efficiency.
+		// First: run the image_downsize filter. If it returns something, we can use its data.
+		// If the filter does not return something, then image_downsize() is just an expensive
+		// way to check the image metadata, which we do second.
+		foreach ( $possible_sizes as $size => $label ) {
+			if ( $downsize = apply_filters( 'image_downsize', false, $attachment->ID, $size ) ) {
+				if ( ! $downsize[3] )
+					continue;
+				$sizes[ $size ] = array(
+					'height'      => $downsize[2],
+					'width'       => $downsize[1],
+					'url'         => $downsize[0],
+					'orientation' => $downsize[2] > $downsize[1] ? 'portrait' : 'landscape',
+				);
+			} elseif ( isset( $meta['sizes'][ $size ] ) ) {
+				if ( ! isset( $base_url ) )
+					$base_url = str_replace( wp_basename( $attachment_url ), '', $attachment_url );
+
+				// Nothing from the filter, so consult image metadata if we have it.
+				$size_meta = $meta['sizes'][ $size ];
+
+				// We have the actual image size, but might need to further constrain it if content_width is narrower.
+				// This is not necessary for thumbnails and medium size.
+				if ( 'thumbnail' == $size || 'medium' == $size ) {
+					$width = $size_meta['width'];
+					$height = $size_meta['height'];
+				} else {
+					list( $width, $height ) = image_constrain_size_for_editor( $size_meta['width'], $size_meta['height'], $size, 'edit' );
+				}
+
+				$sizes[ $size ] = array(
+					'height'      => $height,
+					'width'       => $width,
+					'url'         => $base_url . $size_meta['file'],
+					'orientation' => $height > $width ? 'portrait' : 'landscape',
+				);
+			}
+		}
+
+		$sizes['full'] = array(
+			'height'      => $meta['height'],
+			'width'       => $meta['width'],
+			'url'         => $attachment_url,
+			'orientation' => $meta['height'] > $meta['width'] ? 'portrait' : 'landscape',
+		);
+
+		$response = array_merge( $response, array( 'sizes' => $sizes ), $sizes['full'] );
+	}
+
+	if ( function_exists('get_compat_media_markup') )
+		$response['compat'] = get_compat_media_markup( $attachment->ID, array( 'in_modal' => true ) );
+
+	return apply_filters( 'wp_prepare_attachment_for_js', $response, $attachment, $meta );
+}
+
+/**
+ * Enqueues all scripts, styles, settings, and templates necessary to use
+ * all media JS APIs.
+ *
+ * @since 3.5.0
+ */
+function wp_enqueue_media( $args = array() ) {
+	$defaults = array(
+		'post' => null,
+	);
+	$args = wp_parse_args( $args, $defaults );
+
+	// We're going to pass the old thickbox media tabs to `media_upload_tabs`
+	// to ensure plugins will work. We will then unset those tabs.
+	$tabs = array(
+		// handler action suffix => tab label
+		'type'     => '',
+		'type_url' => '',
+		'gallery'  => '',
+		'library'  => '',
+	);
+
+	$tabs = apply_filters( 'media_upload_tabs', $tabs );
+	unset( $tabs['type'], $tabs['type_url'], $tabs['gallery'], $tabs['library'] );
+
+	$settings = array(
+		'tabs'      => $tabs,
+		'tabUrl'    => add_query_arg( array( 'chromeless' => true ), admin_url('media-upload.php') ),
+		'mimeTypes' => wp_list_pluck( get_post_mime_types(), 0 ),
+		'captions'  => ! apply_filters( 'disable_captions', '' ),
+		'nonce'     => array(
+			'sendToEditor' => wp_create_nonce( 'media-send-to-editor' ),
+		),
+		'post'    => array(
+			'id' => 0,
+		),
+	);
+
+	$post = null;
+	if ( isset( $args['post'] ) ) {
+		$post = get_post( $args['post'] );
+		$settings['post'] = array(
+			'id' => $post->ID,
+			'nonce' => wp_create_nonce( 'update-post_' . $post->ID ),
+		);
+
+		if ( current_theme_supports( 'post-thumbnails', $post->post_type ) && post_type_supports( $post->post_type, 'thumbnail' ) ) {
+			$featured_image_id = get_post_meta( $post->ID, '_thumbnail_id', true );
+			$settings['post']['featuredImageId'] = $featured_image_id ? $featured_image_id : -1;
+		}
+	}
+
+	$hier = $post && is_post_type_hierarchical( $post->post_type );
+
+	$strings = array(
+		// Generic
+		'url'         => __( 'URL' ),
+		'addMedia'    => __( 'Add Media' ),
+		'search'      => __( 'Search' ),
+		'select'      => __( 'Select' ),
+		'cancel'      => __( 'Cancel' ),
+		/* translators: This is a would-be plural string used in the media manager.
+		   If there is not a word you can use in your language to avoid issues with the
+		   lack of plural support here, turn it into "selected: %d" then translate it.
+		 */
+		'selected'    => __( '%d selected' ),
+		'dragInfo'    => __( 'Drag and drop to reorder images.' ),
+
+		// Upload
+		'uploadFilesTitle'  => __( 'Upload Files' ),
+		'uploadImagesTitle' => __( 'Upload Images' ),
+
+		// Library
+		'mediaLibraryTitle'  => __( 'Media Library' ),
+		'insertMediaTitle'   => __( 'Insert Media' ),
+		'createNewGallery'   => __( 'Create a new gallery' ),
+		'returnToLibrary'    => __( '&#8592; Return to library' ),
+		'allMediaItems'      => __( 'All media items' ),
+		'noItemsFound'       => __( 'No items found.' ),
+		'insertIntoPost'     => $hier ? __( 'Insert into page' ) : __( 'Insert into post' ),
+		'uploadedToThisPost' => $hier ? __( 'Uploaded to this page' ) : __( 'Uploaded to this post' ),
+		'warnDelete' =>      __( "You are about to permanently delete this item.\n  'Cancel' to stop, 'OK' to delete." ),
+
+		// From URL
+		'insertFromUrlTitle' => __( 'Insert from URL' ),
+
+		// Featured Images
+		'setFeaturedImageTitle' => __( 'Set Featured Image' ),
+		'setFeaturedImage'    => __( 'Set featured image' ),
+
+		// Gallery
+		'createGalleryTitle' => __( 'Create Gallery' ),
+		'editGalleryTitle'   => __( 'Edit Gallery' ),
+		'cancelGalleryTitle' => __( '&#8592; Cancel Gallery' ),
+		'insertGallery'      => __( 'Insert gallery' ),
+		'updateGallery'      => __( 'Update gallery' ),
+		'addToGallery'       => __( 'Add to gallery' ),
+		'addToGalleryTitle'  => __( 'Add to Gallery' ),
+		'reverseOrder'       => __( 'Reverse order' ),
+	);
+
+	$settings = apply_filters( 'media_view_settings', $settings, $post );
+	$strings  = apply_filters( 'media_view_strings',  $strings,  $post );
+
+	$strings['settings'] = $settings;
+
+	wp_localize_script( 'media-views', '_wpMediaViewsL10n', $strings );
+
+	wp_enqueue_script( 'media-editor' );
+	wp_enqueue_style( 'media-views' );
+	wp_plupload_default_settings();
+
+	require_once ABSPATH . WPINC . '/media-template.php';
+	add_action( 'admin_footer', 'wp_print_media_templates' );
+	add_action( 'wp_footer', 'wp_print_media_templates' );
+
+	do_action( 'wp_enqueue_media' );
+}
--- a/web/wp-includes/meta.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/meta.php	Wed Dec 19 17:46:52 2012 -0800
@@ -123,9 +123,6 @@
 	if ( null !== $check )
 		return (bool) $check;
 
-	if ( ! $meta_id = $wpdb->get_var( $wpdb->prepare( "SELECT $id_column FROM $table WHERE meta_key = %s AND $column = %d", $meta_key, $object_id ) ) )
-		return add_metadata($meta_type, $object_id, $meta_key, $passed_value);
-
 	// Compare existing value to new value if no prev value given and the key exists only once.
 	if ( empty($prev_value) ) {
 		$old_value = get_metadata($meta_type, $object_id, $meta_key);
@@ -135,6 +132,9 @@
 		}
 	}
 
+	if ( ! $meta_id = $wpdb->get_var( $wpdb->prepare( "SELECT $id_column FROM $table WHERE meta_key = %s AND $column = %d", $meta_key, $object_id ) ) )
+		return add_metadata($meta_type, $object_id, $meta_key, $passed_value);
+
 	$_meta_value = $meta_value;
 	$meta_value = maybe_serialize( $meta_value );
 
@@ -711,7 +711,30 @@
 		$join = array();
 		$where = array();
 
-		foreach ( $this->queries as $k => $q ) {
+		$key_only_queries = array();
+		$queries = array();
+
+		// Split out the meta_key only queries (we can only do this for OR)
+		if ( 'OR' == $this->relation ) {
+			foreach ( $this->queries as $k => $q ) {
+				if ( ! isset( $q['value'] ) && ! empty( $q['key'] ) )
+					$key_only_queries[$k] = $q;
+				else
+					$queries[$k] = $q;
+			}
+		} else {
+			$queries = $this->queries;
+		}
+
+		// Specify all the meta_key only queries in one go
+		if ( $key_only_queries ) {
+			$join[]  = "INNER JOIN $meta_table ON $primary_table.$primary_id_column = $meta_table.$meta_id_column";
+
+			foreach ( $key_only_queries as $key => $q )
+				$where["key-only-$key"] = $wpdb->prepare( "$meta_table.meta_key = %s", trim( $q['key'] ) );
+		}
+
+		foreach ( $queries as $k => $q ) {
 			$meta_key = isset( $q['key'] ) ? trim( $q['key'] ) : '';
 			$meta_type = isset( $q['type'] ) ? strtoupper( $q['type'] ) : 'CHAR';
 
@@ -720,10 +743,35 @@
 			elseif ( ! in_array( $meta_type, array( 'BINARY', 'CHAR', 'DATE', 'DATETIME', 'DECIMAL', 'SIGNED', 'TIME', 'UNSIGNED' ) ) )
 				$meta_type = 'CHAR';
 
+			$meta_value = isset( $q['value'] ) ? $q['value'] : null;
+
+			if ( isset( $q['compare'] ) )
+				$meta_compare = strtoupper( $q['compare'] );
+			else
+				$meta_compare = is_array( $meta_value ) ? 'IN' : '=';
+
+			if ( ! in_array( $meta_compare, array(
+				'=', '!=', '>', '>=', '<', '<=',
+				'LIKE', 'NOT LIKE',
+				'IN', 'NOT IN',
+				'BETWEEN', 'NOT BETWEEN',
+				'NOT EXISTS'
+			) ) )
+				$meta_compare = '=';
+
 			$i = count( $join );
 			$alias = $i ? 'mt' . $i : $meta_table;
 
-			// Set JOIN
+			if ( 'NOT EXISTS' == $meta_compare ) {
+				$join[$i]  = "LEFT JOIN $meta_table";
+				$join[$i] .= $i ? " AS $alias" : '';
+				$join[$i] .= " ON ($primary_table.$primary_id_column = $alias.$meta_id_column AND $alias.meta_key = '$meta_key')";
+
+				$where[$k] = ' ' . $alias . '.' . $meta_id_column . ' IS NULL';
+
+				continue;
+			}
+
 			$join[$i]  = "INNER JOIN $meta_table";
 			$join[$i] .= $i ? " AS $alias" : '';
 			$join[$i] .= " ON ($primary_table.$primary_id_column = $alias.$meta_id_column)";
@@ -732,21 +780,12 @@
 			if ( !empty( $meta_key ) )
 				$where[$k] = $wpdb->prepare( "$alias.meta_key = %s", $meta_key );
 
-			if ( !isset( $q['value'] ) ) {
+			if ( is_null( $meta_value ) ) {
 				if ( empty( $where[$k] ) )
 					unset( $join[$i] );
 				continue;
 			}
 
-			$meta_value = $q['value'];
-
-			$meta_compare = is_array( $meta_value ) ? 'IN' : '=';
-			if ( isset( $q['compare'] ) )
-				$meta_compare = strtoupper( $q['compare'] );
-
-			if ( ! in_array( $meta_compare, array( '=', '!=', '>', '>=', '<', '<=', 'LIKE', 'NOT LIKE', 'IN', 'NOT IN', 'BETWEEN', 'NOT BETWEEN' ) ) )
-				$meta_compare = '=';
-
 			if ( in_array( $meta_compare, array( 'IN', 'NOT IN', 'BETWEEN', 'NOT BETWEEN' ) ) ) {
 				if ( ! is_array( $meta_value ) )
 					$meta_value = preg_split( '/[,\s]+/', $meta_value );
--- a/web/wp-includes/ms-blogs.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/ms-blogs.php	Wed Dec 19 17:46:52 2012 -0800
@@ -84,28 +84,32 @@
 }
 
 /**
- * Given a blog's (subdomain or directory) name, retrieve it's id.
+ * Given a blog's (subdomain or directory) slug, retrieve it's id.
  *
  * @since MU
  *
- * @param string $name
+ * @param string $slug
  * @return int A blog id
  */
-function get_id_from_blogname( $name ) {
+function get_id_from_blogname( $slug ) {
 	global $wpdb, $current_site;
-	$blog_id = wp_cache_get( 'get_id_from_blogname_' . $name, 'blog-details' );
+
+	$slug = trim( $slug, '/' );
+
+	$blog_id = wp_cache_get( 'get_id_from_blogname_' . $slug, 'blog-details' );
 	if ( $blog_id )
 		return $blog_id;
 
 	if ( is_subdomain_install() ) {
-		$domain = $name . '.' . $current_site->domain;
+		$domain = $slug . '.' . $current_site->domain;
 		$path = $current_site->path;
 	} else {
 		$domain = $current_site->domain;
-		$path = $current_site->path . $name . '/';
+		$path = $current_site->path . $slug . '/';
 	}
+
 	$blog_id = $wpdb->get_var( $wpdb->prepare("SELECT blog_id FROM {$wpdb->blogs} WHERE domain = %s AND path = %s", $domain, $path) );
-	wp_cache_set( 'get_id_from_blogname_' . $name, $blog_id, 'blog-details' );
+	wp_cache_set( 'get_id_from_blogname_' . $slug, $blog_id, 'blog-details' );
 	return $blog_id;
 }
 
@@ -114,11 +118,11 @@
  *
  * @since MU
  *
- * @param int|string|array $fields A blog ID, a blog name, or an array of fields to query against.
+ * @param int|string|array $fields A blog ID, a blog slug, or an array of fields to query against. Optional. If not specified the current blog ID is used.
  * @param bool $get_all Whether to retrieve all details or only the details in the blogs table. Default is true.
  * @return object Blog details.
  */
-function get_blog_details( $fields, $get_all = true ) {
+function get_blog_details( $fields = null, $get_all = true ) {
 	global $wpdb;
 
 	if ( is_array($fields ) ) {
@@ -162,7 +166,9 @@
 			return false;
 		}
 	} else {
-		if ( !is_numeric( $fields ) )
+		if ( ! $fields )
+			$blog_id = get_current_blog_id();
+		elseif ( ! is_numeric( $fields ) )
 			$blog_id = get_id_from_blogname( $fields );
 		else
 			$blog_id = $fields;
@@ -222,9 +228,11 @@
 		return $details;
 	}
 
-	$details->blogname		= get_blog_option( $blog_id, 'blogname' );
-	$details->siteurl		= get_blog_option( $blog_id, 'siteurl' );
-	$details->post_count	= get_blog_option( $blog_id, 'post_count' );
+	switch_to_blog( $blog_id );
+	$details->blogname		= get_option( 'blogname' );
+	$details->siteurl		= get_option( 'siteurl' );
+	$details->post_count	= get_option( 'post_count' );
+	restore_current_blog();
 
 	$details = apply_filters( 'blog_details', $details );
 
@@ -247,11 +255,7 @@
 	$blog_id = (int) $blog_id;
 	$details = get_blog_details( $blog_id, false );
 
-	wp_cache_delete( $blog_id , 'blog-details' );
-	wp_cache_delete( $blog_id . 'short' , 'blog-details' );
-	wp_cache_delete( md5( $details->domain . $details->path )  , 'blog-lookup' );
-	wp_cache_delete( 'current_blog_' . $details->domain, 'site-options' );
-	wp_cache_delete( 'current_blog_' . $details->domain . $details->path, 'site-options' );
+	clean_blog_cache( $details );
 
 	do_action( 'refresh_blog_details', $blog_id );
 }
@@ -288,18 +292,48 @@
 	foreach ( array_intersect( array_keys( $details ), $fields ) as $field )
 		$update_details[$field] = $details[$field];
 
-	$wpdb->update( $wpdb->blogs, $update_details, array('blog_id' => $blog_id) );
+	$result = $wpdb->update( $wpdb->blogs, $update_details, array('blog_id' => $blog_id) );
+
+	if ( false === $result )
+		return false;
 
 	// If spam status changed, issue actions.
 	if ( $details[ 'spam' ] != $current_details[ 'spam' ] ) {
 		if ( $details[ 'spam' ] == 1 )
-			do_action( "make_spam_blog", $blog_id );
+			do_action( 'make_spam_blog', $blog_id );
 		else
-			do_action( "make_ham_blog", $blog_id );
+			do_action( 'make_ham_blog', $blog_id );
+	}
+
+	// If mature status changed, issue actions.
+	if ( $details[ 'mature' ] != $current_details[ 'mature' ] ) {
+		if ( $details[ 'mature' ] == 1 )
+			do_action( 'mature_blog', $blog_id );
+		else
+			do_action( 'unmature_blog', $blog_id );
 	}
 
-	if ( isset($details[ 'public' ]) )
-		update_blog_option( $blog_id, 'blog_public', $details[ 'public' ] );
+	// If archived status changed, issue actions.
+	if ( $details[ 'archived' ] != $current_details[ 'archived' ] ) {
+		if ( $details[ 'archived' ] == 1 )
+			do_action( 'archive_blog', $blog_id );
+		else
+			do_action( 'unarchive_blog', $blog_id );
+	}
+
+	// If deleted status changed, issue actions.
+	if ( $details[ 'deleted' ] != $current_details[ 'deleted' ] ) {
+		if ( $details[ 'deleted' ] == 1 )
+			do_action( 'make_delete_blog', $blog_id );
+		else
+			do_action( 'make_undelete_blog', $blog_id );
+	}
+
+	if ( isset( $details[ 'public' ] ) ) {
+		switch_to_blog( $blog_id );
+		update_option( 'blog_public', $details[ 'public' ] );
+		restore_current_blog();
+	}
 
 	refresh_blog_details($blog_id);
 
@@ -307,114 +341,115 @@
 }
 
 /**
- * Retrieve option value based on setting name and blog_id.
+ * Clean the blog cache
+ *
+ * @since 3.5.0
+ *
+ * @param stdClass $blog The blog details as returned from get_blog_details()
+ */
+function clean_blog_cache( $blog ) {
+	$blog_id = $blog->blog_id;
+	$domain_path_key = md5( $blog->domain . $blog->path );
+
+	wp_cache_delete( $blog_id , 'blog-details' );
+	wp_cache_delete( $blog_id . 'short' , 'blog-details' );
+	wp_cache_delete(  $domain_path_key, 'blog-lookup' );
+	wp_cache_delete( 'current_blog_' . $blog->domain, 'site-options' );
+	wp_cache_delete( 'current_blog_' . $blog->domain . $blog->path, 'site-options' );
+	wp_cache_delete( 'get_id_from_blogname_' . trim( $blog->path, '/' ), 'blog-details' );
+	wp_cache_delete( $domain_path_key, 'blog-id-cache' );
+}
+
+/**
+ * Retrieve option value for a given blog id based on name of option.
  *
  * If the option does not exist or does not have a value, then the return value
  * will be false. This is useful to check whether you need to install an option
  * and is commonly used during installation of plugin options and to test
  * whether upgrading is required.
  *
- * There is a filter called 'blog_option_$option' with the $option being
- * replaced with the option name. The filter takes two parameters. $value and
- * $blog_id. It returns $value.
- * The 'option_$option' filter in get_option() is not called.
+ * If the option was serialized then it will be unserialized when it is returned.
  *
  * @since MU
- * @uses apply_filters() Calls 'blog_option_$optionname' with the option name value.
  *
- * @param int $blog_id Optional. Blog ID, can be null to refer to the current blog.
- * @param string $setting Name of option to retrieve. Should already be SQL-escaped.
- * @param string $default (optional) Default value returned if option not found.
+ * @param int $id A blog ID. Can be null to refer to the current blog.
+ * @param string $option Name of option to retrieve. Expected to not be SQL-escaped.
+ * @param mixed $default Optional. Default value to return if the option does not exist.
  * @return mixed Value set for the option.
  */
-function get_blog_option( $blog_id, $setting, $default = false ) {
-	global $wpdb;
+function get_blog_option( $id, $option, $default = false ) {
+	$id = (int) $id;
 
-	if ( null === $blog_id )
-		$blog_id = $wpdb->blogid;
+	if ( empty( $id ) )
+		$id = get_current_blog_id();
 
-	$key = $blog_id . '-' . $setting . '-blog_option';
-	$value = wp_cache_get( $key, 'site-options' );
-	if ( $value == null ) {
-		if ( $blog_id == $wpdb->blogid ) {
-			$value = get_option( $setting, $default );
-			$notoptions = wp_cache_get( 'notoptions', 'options' );
-			if ( isset( $notoptions[$setting] ) ) {
-				wp_cache_set( $key, 'noop', 'site-options' );
-				$value = $default;
-			} elseif ( $value == false ) {
-				wp_cache_set( $key, 'falsevalue', 'site-options' );
-			} else {
-				wp_cache_set( $key, $value, 'site-options' );
-			}
-			return apply_filters( 'blog_option_' . $setting, $value, $blog_id );
-		} else {
-			$blog_prefix = $wpdb->get_blog_prefix( $blog_id );
-			$row = $wpdb->get_row( $wpdb->prepare( "SELECT * FROM {$blog_prefix}options WHERE option_name = %s", $setting ) );
-			if ( is_object( $row ) ) { // Has to be get_row instead of get_var because of funkiness with 0, false, null values
-				$value = $row->option_value;
-				if ( $value == false )
-					wp_cache_set( $key, 'falsevalue', 'site-options' );
-				else
-					wp_cache_set( $key, $value, 'site-options' );
-			} else { // option does not exist, so we must cache its non-existence
-				wp_cache_set( $key, 'noop', 'site-options' );
-				$value = $default;
-			}
-		}
-	} elseif ( $value == 'noop' ) {
-		$value = $default;
-	} elseif ( $value == 'falsevalue' ) {
-		$value = false;
-	}
-	// If home is not set use siteurl.
-	if ( 'home' == $setting && '' == $value )
-		return get_blog_option( $blog_id, 'siteurl' );
+	if ( get_current_blog_id() == $id )
+		return get_option( $option, $default );
 
-	if ( 'siteurl' == $setting || 'home' == $setting || 'category_base' == $setting )
-		$value = untrailingslashit( $value );
+	switch_to_blog( $id );
+	$value = get_option( $option, $default );
+	restore_current_blog();
 
-	return apply_filters( 'blog_option_' . $setting, maybe_unserialize( $value ), $blog_id );
+	return apply_filters( 'blog_option_' . $option, $value, $id );
 }
 
 /**
- * Add an option for a particular blog.
+ * Add a new option for a given blog id.
+ *
+ * You do not need to serialize values. If the value needs to be serialized, then
+ * it will be serialized before it is inserted into the database. Remember,
+ * resources can not be serialized or added as an option.
+ *
+ * You can create options without values and then update the values later.
+ * Existing options will not be updated and checks are performed to ensure that you
+ * aren't adding a protected WordPress option. Care should be taken to not name
+ * options the same as the ones which are protected.
  *
  * @since MU
  *
- * @param int $id The blog id
- * @param string $key The option key
- * @param mixed $value The option value
- * @return bool True on success, false on failure.
+ * @param int $id A blog ID. Can be null to refer to the current blog.
+ * @param string $option Name of option to add. Expected to not be SQL-escaped.
+ * @param mixed $value Optional. Option value, can be anything. Expected to not be SQL-escaped.
+ * @return bool False if option was not added and true if option was added.
  */
-function add_blog_option( $id, $key, $value ) {
+function add_blog_option( $id, $option, $value ) {
 	$id = (int) $id;
 
-	switch_to_blog($id);
-	$return = add_option( $key, $value );
+	if ( empty( $id ) )
+		$id = get_current_blog_id();
+
+	if ( get_current_blog_id() == $id )
+		return add_option( $option, $value );
+
+	switch_to_blog( $id );
+	$return = add_option( $option, $value );
 	restore_current_blog();
-	if ( $return )
-		wp_cache_set( $id . '-' . $key . '-blog_option', $value, 'site-options' );
+
 	return $return;
 }
 
 /**
- * Delete an option for a particular blog.
+ * Removes option by name for a given blog id. Prevents removal of protected WordPress options.
  *
  * @since MU
  *
- * @param int $id The blog id
- * @param string $key The option key
- * @return bool True on success, false on failure.
+ * @param int $id A blog ID. Can be null to refer to the current blog.
+ * @param string $option Name of option to remove. Expected to not be SQL-escaped.
+ * @return bool True, if option is successfully deleted. False on failure.
  */
-function delete_blog_option( $id, $key ) {
+function delete_blog_option( $id, $option ) {
 	$id = (int) $id;
 
-	switch_to_blog($id);
-	$return = delete_option( $key );
+	if ( empty( $id ) )
+		$id = get_current_blog_id();
+
+	if ( get_current_blog_id() == $id )
+		return delete_option( $option );
+
+	switch_to_blog( $id );
+	$return = delete_option( $option );
 	restore_current_blog();
-	if ( $return )
-		wp_cache_set( $id . '-' . $key . '-blog_option', '', 'site-options' );
+
 	return $return;
 }
 
@@ -424,24 +459,25 @@
  * @since MU
  *
  * @param int $id The blog id
- * @param string $key The option key
+ * @param string $option The option key
  * @param mixed $value The option value
  * @return bool True on success, false on failrue.
  */
-function update_blog_option( $id, $key, $value, $deprecated = null ) {
+function update_blog_option( $id, $option, $value, $deprecated = null ) {
 	$id = (int) $id;
 
 	if ( null !== $deprecated  )
 		_deprecated_argument( __FUNCTION__, '3.1' );
 
-	switch_to_blog($id);
-	$return = update_option( $key, $value );
+	if ( get_current_blog_id() == $id )
+		return update_option( $option, $value );
+
+	switch_to_blog( $id );
+	$return = update_option( $option, $value );
 	restore_current_blog();
 
 	refresh_blog_details( $id );
 
-	if ( $return )
-		wp_cache_set( $id . '-' . $key . '-blog_option', $value, 'site-options');
 	return $return;
 }
 
@@ -459,68 +495,61 @@
  * @since MU
  *
  * @param int $new_blog The id of the blog you want to switch to. Default: current blog
- * @param bool $validate Whether to check if $new_blog exists before proceeding
- * @return bool	True on success, False if the validation failed
+ * @param bool $deprecated Deprecated argument
+ * @return bool True on success, false if the validation failed
  */
-function switch_to_blog( $new_blog, $validate = false ) {
-	global $wpdb, $table_prefix, $blog_id, $switched, $switched_stack, $wp_roles, $wp_object_cache;
+function switch_to_blog( $new_blog, $deprecated = null ) {
+	global $wpdb, $wp_roles;
 
-	if ( empty($new_blog) )
-		$new_blog = $blog_id;
+	if ( empty( $new_blog ) )
+		$new_blog = $GLOBALS['blog_id'];
 
-	if ( $validate && ! get_blog_details( $new_blog ) )
-		return false;
-
-	if ( empty($switched_stack) )
-		$switched_stack = array();
-
-	$switched_stack[] = $blog_id;
+	$GLOBALS['_wp_switched_stack'][] = $GLOBALS['blog_id'];
 
 	/* If we're switching to the same blog id that we're on,
 	* set the right vars, do the associated actions, but skip
 	* the extra unnecessary work */
-	if ( $blog_id == $new_blog ) {
-		do_action( 'switch_blog', $blog_id, $blog_id );
-		$switched = true;
+	if ( $new_blog == $GLOBALS['blog_id'] ) {
+		do_action( 'switch_blog', $new_blog, $new_blog );
+		$GLOBALS['switched'] = true;
 		return true;
 	}
 
-	$wpdb->set_blog_id($new_blog);
-	$table_prefix = $wpdb->prefix;
-	$prev_blog_id = $blog_id;
-	$blog_id = $new_blog;
+	$wpdb->set_blog_id( $new_blog );
+	$GLOBALS['table_prefix'] = $wpdb->prefix;
+	$prev_blog_id = $GLOBALS['blog_id'];
+	$GLOBALS['blog_id'] = $new_blog;
+
+	if ( function_exists( 'wp_cache_switch_to_blog' ) ) {
+		wp_cache_switch_to_blog( $new_blog );
+	} else {
+		global $wp_object_cache;
 
-	if ( is_object( $wp_roles ) ) {
-		$wpdb->suppress_errors();
-		if ( method_exists( $wp_roles ,'_init' ) )
-			$wp_roles->_init();
-		elseif ( method_exists( $wp_roles, '__construct' ) )
-			$wp_roles->__construct();
-		$wpdb->suppress_errors( false );
+		if ( is_object( $wp_object_cache ) && isset( $wp_object_cache->global_groups ) )
+			$global_groups = $wp_object_cache->global_groups;
+		else
+			$global_groups = false;
+
+		wp_cache_init();
+
+		if ( function_exists( 'wp_cache_add_global_groups' ) ) {
+			if ( is_array( $global_groups ) )
+				wp_cache_add_global_groups( $global_groups );
+			else
+				wp_cache_add_global_groups( array( 'users', 'userlogins', 'usermeta', 'user_meta', 'site-transient', 'site-options', 'site-lookup', 'blog-lookup', 'blog-details', 'rss', 'global-posts', ' blog-id-cache' ) );
+			wp_cache_add_non_persistent_groups( array( 'comment', 'counts', 'plugins' ) );
+		}
 	}
 
-	if ( did_action('init') ) {
+	if ( did_action( 'init' ) ) {
+		$wp_roles->reinit();
 		$current_user = wp_get_current_user();
-		if ( is_object( $current_user ) )
-			$current_user->for_blog( $blog_id );
+		$current_user->for_blog( $new_blog );
 	}
 
-	if ( is_object( $wp_object_cache ) && isset( $wp_object_cache->global_groups ) )
-		$global_groups = $wp_object_cache->global_groups;
-	else
-		$global_groups = false;
+	do_action( 'switch_blog', $new_blog, $prev_blog_id );
+	$GLOBALS['switched'] = true;
 
-	wp_cache_init();
-	if ( function_exists('wp_cache_add_global_groups') ) {
-		if ( is_array( $global_groups ) )
-			wp_cache_add_global_groups( $global_groups );
-		else
-			wp_cache_add_global_groups( array( 'users', 'userlogins', 'usermeta', 'user_meta', 'site-transient', 'site-options', 'site-lookup', 'blog-lookup', 'blog-details', 'rss', 'global-posts' ) );
-		wp_cache_add_non_persistent_groups(array( 'comment', 'counts', 'plugins' ));
-	}
-
-	do_action('switch_blog', $blog_id, $prev_blog_id);
-	$switched = true;
 	return true;
 }
 
@@ -530,64 +559,72 @@
  * @see switch_to_blog()
  * @since MU
  *
- * @return bool True on success, False if we're already on the current blog
+ * @return bool True on success, false if we're already on the current blog
  */
 function restore_current_blog() {
-	global $table_prefix, $wpdb, $blog_id, $switched, $switched_stack, $wp_roles, $wp_object_cache;
+	global $wpdb, $wp_roles;
 
-	if ( !$switched )
+	if ( empty( $GLOBALS['_wp_switched_stack'] ) )
 		return false;
 
-	if ( !is_array( $switched_stack ) )
-		return false;
+	$blog = array_pop( $GLOBALS['_wp_switched_stack'] );
 
-	$blog = array_pop( $switched_stack );
-	if ( $blog_id == $blog ) {
+	if ( $GLOBALS['blog_id'] == $blog ) {
 		do_action( 'switch_blog', $blog, $blog );
-		/* If we still have items in the switched stack, consider ourselves still 'switched' */
-		$switched = ( is_array( $switched_stack ) && count( $switched_stack ) > 0 );
+		// If we still have items in the switched stack, consider ourselves still 'switched'
+		$GLOBALS['switched'] = ! empty( $GLOBALS['_wp_switched_stack'] );
 		return true;
 	}
 
-	$wpdb->set_blog_id($blog);
-	$prev_blog_id = $blog_id;
-	$blog_id = $blog;
-	$table_prefix = $wpdb->prefix;
+	$wpdb->set_blog_id( $blog );
+	$prev_blog_id = $GLOBALS['blog_id'];
+	$GLOBALS['blog_id'] = $blog;
+	$GLOBALS['table_prefix'] = $wpdb->prefix;
+
+	if ( function_exists( 'wp_cache_switch_to_blog' ) ) {
+		wp_cache_switch_to_blog( $blog );
+	} else {
+		global $wp_object_cache;
 
-	if ( is_object( $wp_roles ) ) {
-		$wpdb->suppress_errors();
-		if ( method_exists( $wp_roles ,'_init' ) )
-			$wp_roles->_init();
-		elseif ( method_exists( $wp_roles, '__construct' ) )
-			$wp_roles->__construct();
-		$wpdb->suppress_errors( false );
-	}
+		if ( is_object( $wp_object_cache ) && isset( $wp_object_cache->global_groups ) )
+			$global_groups = $wp_object_cache->global_groups;
+		else
+			$global_groups = false;
+
+		wp_cache_init();
 
-	if ( did_action('init') ) {
-		$current_user = wp_get_current_user();
-		if ( is_object( $current_user ) )
-			$current_user->for_blog( $blog_id );
+		if ( function_exists( 'wp_cache_add_global_groups' ) ) {
+			if ( is_array( $global_groups ) )
+				wp_cache_add_global_groups( $global_groups );
+			else
+				wp_cache_add_global_groups( array( 'users', 'userlogins', 'usermeta', 'user_meta', 'site-transient', 'site-options', 'site-lookup', 'blog-lookup', 'blog-details', 'rss', 'global-posts', ' blog-id-cache' ) );
+			wp_cache_add_non_persistent_groups( array( 'comment', 'counts', 'plugins' ) );
+		}
 	}
 
-	if ( is_object( $wp_object_cache ) && isset( $wp_object_cache->global_groups ) )
-		$global_groups = $wp_object_cache->global_groups;
-	else
-		$global_groups = false;
-
-	wp_cache_init();
-	if ( function_exists('wp_cache_add_global_groups') ) {
-		if ( is_array( $global_groups ) )
-			wp_cache_add_global_groups( $global_groups );
-		else
-			wp_cache_add_global_groups( array( 'users', 'userlogins', 'usermeta', 'user_meta', 'site-transient', 'site-options', 'site-lookup', 'blog-lookup', 'blog-details', 'rss', 'global-posts' ) );
-		wp_cache_add_non_persistent_groups(array( 'comment', 'counts', 'plugins' ));
+	if ( did_action( 'init' ) ) {
+		$wp_roles->reinit();
+		$current_user = wp_get_current_user();
+		$current_user->for_blog( $blog );
 	}
 
-	do_action('switch_blog', $blog_id, $prev_blog_id);
+	do_action( 'switch_blog', $blog, $prev_blog_id );
+
+	// If we still have items in the switched stack, consider ourselves still 'switched'
+	$GLOBALS['switched'] = ! empty( $GLOBALS['_wp_switched_stack'] );
+
+	return true;
+}
 
-	/* If we still have items in the switched stack, consider ourselves still 'switched' */
-	$switched = ( is_array( $switched_stack ) && count( $switched_stack ) > 0 );
-	return true;
+/**
+ * Determines if switch_to_blog() is in effect
+ *
+ * @since 3.5.0
+ *
+ * @return bool True if switched, false otherwise.
+ */
+function ms_is_switched() {
+	return ! empty( $GLOBALS['_wp_switched_stack'] );
 }
 
 /**
@@ -632,12 +669,15 @@
 	if ( null !== $deprecated  )
 		_deprecated_argument( __FUNCTION__, '3.1' );
 
-	if ( !in_array( $pref, array( 'site_id', 'domain', 'path', 'registered', 'last_updated', 'public', 'archived', 'mature', 'spam', 'deleted', 'lang_id') ) )
+	if ( ! in_array( $pref, array( 'site_id', 'domain', 'path', 'registered', 'last_updated', 'public', 'archived', 'mature', 'spam', 'deleted', 'lang_id') ) )
 		return $value;
 
-	$wpdb->update( $wpdb->blogs, array($pref => $value, 'last_updated' => current_time('mysql', true)), array('blog_id' => $blog_id) );
+	$result = $wpdb->update( $wpdb->blogs, array($pref => $value, 'last_updated' => current_time('mysql', true)), array('blog_id' => $blog_id) );
 
-	refresh_blog_details($blog_id);
+	if ( false === $result )
+		return false;
+
+	refresh_blog_details( $blog_id );
 
 	if ( 'spam' == $pref )
 		( $value == 1 ) ? do_action( 'make_spam_blog', $blog_id ) :	do_action( 'make_ham_blog', $blog_id );
@@ -645,8 +685,8 @@
 		( $value == 1 ) ? do_action( 'mature_blog', $blog_id ) : do_action( 'unmature_blog', $blog_id );
 	elseif ( 'archived' == $pref )
 		( $value == 1 ) ? do_action( 'archive_blog', $blog_id ) : do_action( 'unarchive_blog', $blog_id );
-	elseif ( 'archived' == $pref )
-		( $value == 1 ) ? do_action( 'archive_blog', $blog_id ) : do_action( 'unarchive_blog', $blog_id );
+	elseif ( 'deleted' == $pref )
+		( $value == 1 ) ? do_action( 'make_delete_blog', $blog_id ) : do_action( 'make_undelete_blog', $blog_id );
 
 	return $value;
 }
--- a/web/wp-includes/ms-default-constants.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/ms-default-constants.php	Wed Dec 19 17:46:52 2012 -0800
@@ -10,21 +10,31 @@
 /**
  * Defines Multisite upload constants.
  *
+ * Exists for backward compatibility with legacy file-serving through
+ * wp-includes/ms-files.php (wp-content/blogs.php in MU).
+ *
  * @since 3.0.0
  */
-function ms_upload_constants(  ) {
+function ms_upload_constants() {
 	global $wpdb;
 
-	/** @since 3.0.0 */
+	// This filter is attached in ms-default-filters.php but that file is not included during SHORTINIT.
+	add_filter( 'default_site_option_ms_files_rewriting', '__return_true' );
+
+	if ( ! get_site_option( 'ms_files_rewriting' ) )
+		return;
+
 	// Base uploads dir relative to ABSPATH
 	if ( !defined( 'UPLOADBLOGSDIR' ) )
 		define( 'UPLOADBLOGSDIR', 'wp-content/blogs.dir' );
 
-	/** @since 3.0.0 */
-	if ( !defined( 'UPLOADS' ) ) {
+	// Note, the main site in a post-MU network uses wp-content/uploads.
+	// This is handled in wp_upload_dir() by ignoring UPLOADS for this case.
+	if ( ! defined( 'UPLOADS' ) ) {
+		define( 'UPLOADS', UPLOADBLOGSDIR . "/{$wpdb->blogid}/files/" );
+
 		// Uploads dir relative to ABSPATH
-		define( 'UPLOADS', UPLOADBLOGSDIR . "/{$wpdb->blogid}/files/" );
-		if ( 'wp-content/blogs.dir' == UPLOADBLOGSDIR )
+		if ( 'wp-content/blogs.dir' == UPLOADBLOGSDIR && ! defined( 'BLOGUPLOADDIR' ) )
 			define( 'BLOGUPLOADDIR', WP_CONTENT_DIR . "/blogs.dir/{$wpdb->blogid}/files/" );
 	}
 }
@@ -53,7 +63,7 @@
 	 * @since 2.6.0
 	 */
 	if ( !defined( 'ADMIN_COOKIE_PATH' ) ) {
-		if( !is_subdomain_install() ) {
+		if ( ! is_subdomain_install() || trim( parse_url( get_option( 'siteurl' ), PHP_URL_PATH ), '/' ) ) {
 			define( 'ADMIN_COOKIE_PATH', SITECOOKIEPATH );
 		} else {
 			define( 'ADMIN_COOKIE_PATH', SITECOOKIEPATH . 'wp-admin' );
@@ -74,9 +84,12 @@
 /**
  * Defines Multisite file constants.
  *
+ * Exists for backward compatibility with legacy file-serving through
+ * wp-includes/ms-files.php (wp-content/blogs.php in MU).
+ *
  * @since 3.0.0
  */
-function ms_file_constants(  ) {
+function ms_file_constants() {
 	/**
 	 * Optional support for X-Sendfile header
 	 * @since 3.0.0
--- a/web/wp-includes/ms-default-filters.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/ms-default-filters.php	Wed Dec 19 17:46:52 2012 -0800
@@ -45,6 +45,7 @@
 add_filter( 'import_upload_size_limit', 'fix_import_form_size' );
 add_filter( 'upload_mimes', 'check_upload_mimes' );
 add_filter( 'upload_size_limit', 'upload_size_limit_filter' );
+add_action( 'upload_ui_over_quota', 'multisite_over_quota_message' );
 
 // Mail
 add_action( 'phpmailer_init', 'fix_phpmailer_messageid' );
@@ -60,3 +61,6 @@
 // WP_HOME and WP_SITEURL should not have any effect in MS
 remove_filter( 'option_siteurl', '_config_wp_siteurl' );
 remove_filter( 'option_home',    '_config_wp_home'    );
+
+// If the network upgrade hasn't run yet, assume ms-files.php rewriting is used.
+add_filter( 'default_site_option_ms_files_rewriting', '__return_true' );
\ No newline at end of file
--- a/web/wp-includes/ms-functions.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/ms-functions.php	Wed Dec 19 17:46:52 2012 -0800
@@ -152,17 +152,12 @@
  *
  * @param int $blog_id ID of the blog.
  * @param int $post_id ID of the post you're looking for.
- * @return object The post.
+ * @return WP_Post|null WP_Post on success or null on failure
  */
 function get_blog_post( $blog_id, $post_id ) {
-	global $wpdb;
-
-	$key = $blog_id . '-' . $post_id;
-	$post = wp_cache_get( $key, 'global-posts' );
-	if ( $post == false ) {
-		$post = $wpdb->get_row( $wpdb->prepare( 'SELECT * FROM ' . $wpdb->get_blog_prefix( $blog_id ) . 'posts WHERE ID = %d', $post_id ) );
-		wp_cache_add( $key, $post, 'global-posts' );
-	}
+	switch_to_blog( $blog_id );
+	$post = get_post( $post_id );
+	restore_current_blog();
 
 	return $post;
 }
@@ -183,11 +178,11 @@
 function add_user_to_blog( $blog_id, $user_id, $role ) {
 	switch_to_blog($blog_id);
 
-	$user = new WP_User($user_id);
+	$user = get_userdata( $user_id );
 
-	if ( ! $user->exists() ) {
+	if ( ! $user ) {
 		restore_current_blog();
-		return new WP_Error('user_does_not_exist', __('That user does not exist.'));
+		return new WP_Error( 'user_does_not_exist', __( 'The requested user does not exist.' ) );
 	}
 
 	if ( !get_user_meta($user_id, 'primary_blog', true) ) {
@@ -246,8 +241,8 @@
 	}
 
 	// wp_revoke_user($user_id);
-	$user = new WP_User($user_id);
-	if ( ! $user->exists() ) {
+	$user = get_userdata( $user_id );
+	if ( ! $user ) {
 		restore_current_blog();
 		return new WP_Error('user_does_not_exist', __('That user does not exist.'));
 	}
@@ -313,19 +308,15 @@
  *
  * @since MU 1.0
  *
- * @param int $_blog_id ID of the source blog.
+ * @param int $blog_id ID of the source blog.
  * @param int $post_id ID of the desired post.
  * @return string The post's permalink
  */
-function get_blog_permalink( $_blog_id, $post_id ) {
-	$key = "{$_blog_id}-{$post_id}-blog_permalink";
-	$link = wp_cache_get( $key, 'site-options' );
-	if ( $link == false ) {
-		switch_to_blog( $_blog_id );
-		$link = get_permalink( $post_id );
-		restore_current_blog();
-		wp_cache_add( $key, $link, 'site-options', 360 );
-	}
+function get_blog_permalink( $blog_id, $post_id ) {
+	switch_to_blog( $blog_id );
+	$link = get_permalink( $post_id );
+	restore_current_blog();
+
 	return $link;
 }
 
@@ -341,27 +332,27 @@
  *
  * @param string $domain
  * @param string $path Optional. Not required for subdomain installations.
- * @return int
+ * @return int 0 if no blog found, otherwise the ID of the matching blog
  */
 function get_blog_id_from_url( $domain, $path = '/' ) {
 	global $wpdb;
 
-	$domain = strtolower( $wpdb->escape( $domain ) );
-	$path = strtolower( $wpdb->escape( $path ) );
+	$domain = strtolower( $domain );
+	$path = strtolower( $path );
 	$id = wp_cache_get( md5( $domain . $path ), 'blog-id-cache' );
 
-	if ( $id == -1 ) { // blog does not exist
+	if ( $id == -1 ) // blog does not exist
 		return 0;
-	} elseif ( $id ) {
-		return (int)$id;
+	elseif ( $id )
+		return (int) $id;
+
+	$id = $wpdb->get_var( $wpdb->prepare( "SELECT blog_id FROM $wpdb->blogs WHERE domain = %s and path = %s /* get_blog_id_from_url */", $domain, $path ) );
+
+	if ( ! $id ) {
+		wp_cache_set( md5( $domain . $path ), -1, 'blog-id-cache' );
+		return 0;
 	}
 
-	$id = $wpdb->get_var( "SELECT blog_id FROM $wpdb->blogs WHERE domain = '$domain' and path = '$path' /* get_blog_id_from_url */" );
-
-	if ( !$id ) {
-		wp_cache_set( md5( $domain . $path ), -1, 'blog-id-cache' );
-		return false;
-	}
 	wp_cache_set( md5( $domain . $path ), $id, 'blog-id-cache' );
 
 	return $id;
@@ -384,25 +375,32 @@
  */
 function is_email_address_unsafe( $user_email ) {
 	$banned_names = get_site_option( 'banned_email_domains' );
-	if ($banned_names && !is_array( $banned_names ))
-		$banned_names = explode( "\n", $banned_names);
+	if ( $banned_names && ! is_array( $banned_names ) )
+		$banned_names = explode( "\n", $banned_names );
+
+	$is_email_address_unsafe = false;
 
-	if ( is_array( $banned_names ) && empty( $banned_names ) == false ) {
-		$email_domain = strtolower( substr( $user_email, 1 + strpos( $user_email, '@' ) ) );
-		foreach ( (array) $banned_names as $banned_domain ) {
-			if ( $banned_domain == '' )
+	if ( $banned_names && is_array( $banned_names ) ) {
+		list( $email_local_part, $email_domain ) = explode( '@', $user_email );
+
+		foreach ( $banned_names as $banned_domain ) {
+			if ( ! $banned_domain )
 				continue;
-			if (
-				strstr( $email_domain, $banned_domain ) ||
-				(
-					strstr( $banned_domain, '/' ) &&
-					preg_match( $banned_domain, $email_domain )
-				)
-			)
-			return true;
+
+			if ( $email_domain == $banned_domain ) {
+				$is_email_address_unsafe = true;
+				break;
+			}
+
+			$dotted_domain = ".$banned_domain";
+			if ( $dotted_domain === substr( $user_email, -strlen( $dotted_domain ) ) ) {
+				$is_email_address_unsafe = true;
+				break;
+			}
 		}
 	}
-	return false;
+
+	return apply_filters( 'is_email_address_unsafe', $is_email_address_unsafe, $user_email );
 }
 
 /**
@@ -471,7 +469,7 @@
 		$errors->add('user_name', __('Sorry, usernames must have letters too!'));
 
 	if ( !is_email( $user_email ) )
-		$errors->add('user_email', __( 'Please enter a correct email address.' ) );
+		$errors->add('user_email', __( 'Please enter a valid email address.' ) );
 
 	$limited_email_domains = get_site_option( 'limited_email_domains' );
 	if ( is_array( $limited_email_domains ) && empty( $limited_email_domains ) == false ) {
@@ -482,11 +480,11 @@
 
 	// Check if the username has been used already.
 	if ( username_exists($user_name) )
-		$errors->add('user_name', __('Sorry, that username already exists!'));
+		$errors->add( 'user_name', __( 'Sorry, that username already exists!' ) );
 
 	// Check if the email address has been used already.
 	if ( email_exists($user_email) )
-		$errors->add('user_email', __('Sorry, that email address is already used!'));
+		$errors->add( 'user_email', __( 'Sorry, that email address is already used!' ) );
 
 	// Has someone already signed up for this username?
 	$signup = $wpdb->get_row( $wpdb->prepare("SELECT * FROM $wpdb->signups WHERE user_login = %s", $user_name) );
@@ -495,7 +493,7 @@
 		$now = current_time( 'timestamp', true );
 		$diff = $now - $registered_at;
 		// If registered more than two days ago, cancel registration and let this signup go through.
-		if ( $diff > 172800 )
+		if ( $diff > 2 * DAY_IN_SECONDS )
 			$wpdb->delete( $wpdb->signups, array( 'user_login' => $user_name ) );
 		else
 			$errors->add('user_name', __('That username is currently reserved but may be available in a couple of days.'));
@@ -508,7 +506,7 @@
 	if ( $signup != null ) {
 		$diff = current_time( 'timestamp', true ) - mysql2date('U', $signup->registered);
 		// If registered more than two days ago, cancel registration and let this signup go through.
-		if ( $diff > 172800 )
+		if ( $diff > 2 * DAY_IN_SECONDS )
 			$wpdb->delete( $wpdb->signups, array( 'user_email' => $user_email ) );
 		else
 			$errors->add('user_email', __('That email address has already been used. Please check your inbox for an activation email. It will become available in a couple of days if you do nothing.'));
@@ -542,7 +540,9 @@
  * @return array Contains the new site data and error messages.
  */
 function wpmu_validate_blog_signup($blogname, $blog_title, $user = '') {
-	global $wpdb, $domain, $base, $current_site;
+	global $wpdb, $domain, $current_site;
+
+	$base = $current_site->path;
 
 	$blog_title = strip_tags( $blog_title );
 	$blog_title = substr( $blog_title, 0, 50 );
@@ -562,7 +562,7 @@
 		$errors->add('blogname', __( 'Please enter a site name.' ) );
 
 	if ( preg_match( '/[^a-z0-9]+/', $blogname ) )
-		$errors->add('blogname', __( 'Only lowercase letters and numbers allowed.' ) );
+		$errors->add('blogname', __( 'Only lowercase letters (a-z) and numbers are allowed.' ) );
 
 	if ( in_array( $blogname, $illegal_names ) == true )
 		$errors->add('blogname',  __( 'That name is not allowed.' ) );
@@ -598,8 +598,8 @@
 		$mydomain = "$domain";
 		$path = $base.$blogname.'/';
 	}
-	if ( domain_exists($mydomain, $path) )
-		$errors->add('blogname', __('Sorry, that site already exists!'));
+	if ( domain_exists($mydomain, $path, $current_site->id) )
+		$errors->add( 'blogname', __( 'Sorry, that site already exists!' ) );
 
 	if ( username_exists( $blogname ) ) {
 		if ( is_object( $user ) == false || ( is_object($user) && ( $user->user_login != $blogname ) ) )
@@ -611,13 +611,13 @@
 	if ( ! empty($signup) ) {
 		$diff = current_time( 'timestamp', true ) - mysql2date('U', $signup->registered);
 		// If registered more than two days ago, cancel registration and let this signup go through.
-		if ( $diff > 172800 )
+		if ( $diff > 2 * DAY_IN_SECONDS )
 			$wpdb->delete( $wpdb->signups, array( 'domain' => $mydomain , 'path' => $path ) );
 		else
 			$errors->add('blogname', __('That site is currently reserved but may be available in a couple days.'));
 	}
 
-	$result = array('domain' => $mydomain, 'path' => $path, 'blogname' => $blogname, 'blog_title' => $blog_title, 'errors' => $errors);
+	$result = array('domain' => $mydomain, 'path' => $path, 'blogname' => $blogname, 'blog_title' => $blog_title, 'user' => $user, 'errors' => $errors);
 	return apply_filters('wpmu_validate_blog_signup', $result);
 }
 
@@ -790,7 +790,7 @@
 	$message_headers = "From: \"{$from_name}\" <{$admin_email}>\n" . "Content-Type: text/plain; charset=\"" . get_option('blog_charset') . "\"\n";
 	$message = sprintf(
 		apply_filters( 'wpmu_signup_user_notification_email',
-			__( "To activate your user, please click the following link:\n\n%s\n\nAfter you activate, you will receive *another email* with your login.\n\n" ),
+			__( "To activate your user, please click the following link:\n\n%s\n\nAfter you activate, you will receive *another email* with your login." ),
 			$user, $user_email, $key, $meta
 		),
 		site_url( "wp-activate.php?key=$key" )
@@ -965,7 +965,7 @@
 
 	// Check if the domain has been used already. We should return an error message.
 	if ( domain_exists($domain, $path, $site_id) )
-		return new WP_Error('blog_taken', __('Site already exists.'));
+		return new WP_Error( 'blog_taken', __( 'Sorry, that site already exists!' ) );
 
 	if ( !defined('WP_INSTALLING') )
 		define( 'WP_INSTALLING', true );
@@ -1024,11 +1024,11 @@
 	$siteurl = site_url();
 	restore_current_blog();
 
-	$msg = sprintf( __( 'New Site: %1s
-URL: %2s
-Remote IP: %3s
+	$msg = sprintf( __( 'New Site: %1$s
+URL: %2$s
+Remote IP: %3$s
 
-Disable these notifications: %4s' ), $blogname, $siteurl, $_SERVER['REMOTE_ADDR'], $options_site_url);
+Disable these notifications: %4$s' ), $blogname, $siteurl, $_SERVER['REMOTE_ADDR'], $options_site_url);
 	$msg = apply_filters( 'newblog_notify_siteadmin', $msg );
 
 	wp_mail( $email, sprintf( __( 'New Site Registration: %s' ), $siteurl ), $msg );
@@ -1056,13 +1056,13 @@
 	if ( is_email($email) == false )
 		return false;
 
-	$user = new WP_User($user_id);
+	$user = get_userdata( $user_id );
 
 	$options_site_url = esc_url(network_admin_url('settings.php'));
-	$msg = sprintf(__('New User: %1s
-Remote IP: %2s
+	$msg = sprintf(__('New User: %1$s
+Remote IP: %2$s
 
-Disable these notifications: %3s'), $user->user_login, $_SERVER['REMOTE_ADDR'], $options_site_url);
+Disable these notifications: %3$s'), $user->user_login, $_SERVER['REMOTE_ADDR'], $options_site_url);
 
 	$msg = apply_filters( 'newuser_notify_siteadmin', $msg, $user );
 	wp_mail( $email, sprintf(__('New User Registration: %s'), $user->user_login), $msg );
@@ -1084,7 +1084,8 @@
  */
 function domain_exists($domain, $path, $site_id = 1) {
 	global $wpdb;
-	return $wpdb->get_var( $wpdb->prepare("SELECT blog_id FROM $wpdb->blogs WHERE domain = %s AND path = %s AND site_id = %d", $domain, $path, $site_id) );
+	$result = $wpdb->get_var( $wpdb->prepare("SELECT blog_id FROM $wpdb->blogs WHERE domain = %s AND path = %s AND site_id = %d", $domain, $path, $site_id) );
+	return apply_filters( 'domain_exists', $result, $domain, $path, $site_id );
 }
 
 /**
@@ -1129,20 +1130,19 @@
  * @param string $blog_title The title of the new site.
  */
 function install_blog($blog_id, $blog_title = '') {
-	global $wpdb, $table_prefix, $wp_roles;
-	$wpdb->suppress_errors();
+	global $wpdb, $wp_roles, $current_site;
 
 	// Cast for security
 	$blog_id = (int) $blog_id;
 
 	require_once( ABSPATH . 'wp-admin/includes/upgrade.php' );
 
-	if ( $wpdb->get_results("SELECT ID FROM $wpdb->posts") )
-		die(__('<h1>Already Installed</h1><p>You appear to have already installed WordPress. To reinstall please clear your old database tables first.</p>') . '</body></html>');
+	$wpdb->suppress_errors();
+	if ( $wpdb->get_results( "DESCRIBE {$wpdb->posts}" ) )
+		die( '<h1>' . __( 'Already Installed' ) . '</h1><p>' . __( 'You appear to have already installed WordPress. To reinstall please clear your old database tables first.' ) . '</p></body></html>' );
+	$wpdb->suppress_errors( false );
 
-	$wpdb->suppress_errors(false);
-
-	$url = get_blogaddress_by_id($blog_id);
+	$url = get_blogaddress_by_id( $blog_id );
 
 	// Set everything up
 	make_db_current_silent( 'blog' );
@@ -1150,21 +1150,23 @@
 	populate_roles();
 	$wp_roles->_init();
 
-	// fix url.
-	update_option('siteurl', $url);
-	update_option('home', $url);
-	update_option('fileupload_url', $url . "files" );
-	update_option('upload_path', UPLOADBLOGSDIR . "/$blog_id/files");
-	update_option('blogname', stripslashes( $blog_title ) );
-	update_option('admin_email', '');
-	$wpdb->update( $wpdb->options, array('option_value' => ''), array('option_name' => 'admin_email') );
+	$url = untrailingslashit( $url );
+
+	update_option( 'siteurl', $url );
+	update_option( 'home', $url );
+
+	if ( get_site_option( 'ms_files_rewriting' ) )
+		update_option( 'upload_path', UPLOADBLOGSDIR . "/$blog_id/files" );
+	else
+		update_option( 'upload_path', get_blog_option( $current_site->blog_id, 'upload_path' ) );
+
+	update_option( 'blogname', stripslashes( $blog_title ) );
+	update_option( 'admin_email', '' );
 
 	// remove all perms
-	$wpdb->delete( $wpdb->usermeta, array( 'meta_key' => $table_prefix.'user_level' ) );
-
-	$wpdb->delete( $wpdb->usermeta, array( 'meta_key' => $table_prefix.'capabilities' ) );
-
-	$wpdb->suppress_errors( false );
+	$table_prefix = $wpdb->get_blog_prefix();
+	delete_metadata( 'user', 0, $table_prefix . 'user_level',   null, true ); // delete all
+	delete_metadata( 'user', 0, $table_prefix . 'capabilities', null, true ); // delete all
 }
 
 /**
@@ -1232,7 +1234,7 @@
 --The Team @ SITE_NAME' ) );
 
 	$url = get_blogaddress_by_id($blog_id);
-	$user = new WP_User($user_id);
+	$user = get_userdata( $user_id );
 
 	$welcome_email = str_replace( 'SITE_NAME', $current_site->site_name, $welcome_email );
 	$welcome_email = str_replace( 'BLOG_TITLE', $title, $welcome_email );
@@ -1281,7 +1283,7 @@
 
 	$welcome_email = get_site_option( 'welcome_user_email' );
 
-	$user = new WP_User($user_id);
+	$user = get_userdata( $user_id );
 
 	$welcome_email = apply_filters( 'update_welcome_user_email', $welcome_email, $user_id, $password, $meta);
 	$welcome_email = str_replace( 'SITE_NAME', $current_site->site_name, $welcome_email );
@@ -1416,7 +1418,7 @@
 
 	$dirsize[ $directory ][ 'size' ] = recurse_dirsize( $directory );
 
-	set_transient( 'dirsize_cache', $dirsize, 3600 );
+	set_transient( 'dirsize_cache', $dirsize, HOUR_IN_SECONDS );
 	return $dirsize[ $directory ][ 'size' ];
 }
 
@@ -1458,34 +1460,6 @@
 }
 
 /**
- * Check whether a blog has used its allotted upload space.
- *
- * @since MU
- * @uses get_dirsize()
- *
- * @param bool $echo Optional. If $echo is set and the quota is exceeded, a warning message is echoed. Default is true.
- * @return int
- */
-function upload_is_user_over_quota( $echo = true ) {
-	if ( get_site_option( 'upload_space_check_disabled' ) )
-		return false;
-
-	$spaceAllowed = get_space_allowed();
-	if ( empty( $spaceAllowed ) || !is_numeric( $spaceAllowed ) )
-		$spaceAllowed = 10;	// Default space allowed is 10 MB
-
-	$size = get_dirsize( BLOGUPLOADDIR ) / 1024 / 1024;
-
-	if ( ($spaceAllowed-$size) < 0 ) {
-		if ( $echo )
-			_e( 'Sorry, you have used your space allocation. Please delete some files to upload more files.' ); // No space left
-		return true;
-	} else {
-		return false;
-	}
-}
-
-/**
  * Check an array of MIME types against a whitelist.
  *
  * WordPress ships with a set of allowed upload filetypes,
@@ -1535,34 +1509,11 @@
  */
 function wpmu_log_new_registrations( $blog_id, $user_id ) {
 	global $wpdb;
-	$user = new WP_User( (int) $user_id );
+	$user = get_userdata( (int) $user_id );
 	$wpdb->insert( $wpdb->registration_log, array('email' => $user->user_email, 'IP' => preg_replace( '/[^0-9., ]/', '',$_SERVER['REMOTE_ADDR'] ), 'blog_id' => $blog_id, 'date_registered' => current_time('mysql')) );
 }
 
 /**
- * Get the remaining upload space for this blog.
- *
- * @since MU
- * @uses upload_is_user_over_quota()
- * @uses get_space_allowed()
- * @uses get_dirsize()
- *
- * @param int $size
- * @return int
- */
-function fix_import_form_size( $size ) {
-	if ( upload_is_user_over_quota( false ) == true )
-		return 0;
-
-	$spaceAllowed = 1024 * 1024 * get_space_allowed();
-	$dirsize = get_dirsize( BLOGUPLOADDIR );
-	if ( $size > $spaceAllowed - $dirsize )
-		return $spaceAllowed - $dirsize; // remaining space
-	else
-		return $size; // default
-}
-
-/**
  * Maintains a canonical list of terms by syncing terms created for each blog with the global terms table.
  *
  * @since 3.0.0
@@ -1652,7 +1603,7 @@
  * @return mixed If the upload is under the size limit, $upload is returned. Otherwise returns an error message.
  */
 function upload_is_file_too_big( $upload ) {
-	if ( is_array( $upload ) == false || defined( 'WP_IMPORTING' ) )
+	if ( is_array( $upload ) == false || defined( 'WP_IMPORTING' ) || get_site_option( 'upload_space_check_disabled' ) )
 		return $upload;
 
 	if ( strlen( $upload['bits'] )  > ( 1024 * get_site_option( 'fileupload_maxk', 1500 ) ) )
@@ -1687,7 +1638,7 @@
 		return $result;
 
 	if ( wp_create_nonce('signup_form_' . $_POST[ 'signup_form_id' ]) != $_POST['_signup_form'] )
-		wp_die( __('Please try again!') );
+		wp_die( __( 'Please try again.' ) );
 
 	return $result;
 }
@@ -1734,7 +1685,7 @@
 	if ( empty( $details ) || is_wp_error( add_existing_user_to_blog( $details ) ) )
 		wp_die( sprintf(__('An error occurred adding you to this site. Back to the <a href="%s">homepage</a>.'), home_url() ) );
 
-	wp_die( sprintf(__('You have been added to this site. Please visit the <a href="%s">homepage</a> or <a href="%s">log in</a> using your username and password.'), home_url(), admin_url() ), __('Success') );
+	wp_die( sprintf( __( 'You have been added to this site. Please visit the <a href="%s">homepage</a> or <a href="%s">log in</a> using your username and password.' ), home_url(), admin_url() ), __( 'WordPress &rsaquo; Success' ) );
 }
 
 /**
@@ -1801,7 +1752,7 @@
 	} else {
 		$user_id = get_user_id_from_string( $username );
 	}
-	$u = new WP_User( $user_id );
+	$u = get_userdata( $user_id );
 
 	return ( isset( $u->spam ) && $u->spam == 1 );
 }
@@ -1934,21 +1885,21 @@
 }
 
 /**
- * Formats an String URL to use HTTPS if HTTP is found.
+ * Formats a URL to use https.
+ *
  * Useful as a filter.
  *
  * @since 2.8.5
- **/
+ *
+ * @param string URL
+ * @return string URL with https as the scheme
+ */
 function filter_SSL( $url ) {
-	if ( !is_string( $url ) )
-		return get_bloginfo( 'url' ); //return home blog url with proper scheme
+	if ( ! is_string( $url ) )
+		return get_bloginfo( 'url' ); // Return home blog url with proper scheme
 
-	$arrURL = parse_url( $url );
-
-	if ( force_ssl_content() && is_ssl() ) {
-		if ( 'http' === $arrURL['scheme'] )
-			$url = str_replace( $arrURL['scheme'], 'https', $url );
-	}
+	if ( force_ssl_content() && is_ssl() )
+		$url = set_url_scheme( $url, 'https' );
 
 	return $url;
 }
@@ -1977,6 +1928,89 @@
 	$count = $wpdb->get_var( $wpdb->prepare("SELECT COUNT(blog_id) as c FROM $wpdb->blogs WHERE site_id = %d AND spam = '0' AND deleted = '0' and archived = '0'", $wpdb->siteid) );
 	update_site_option( 'blog_count', $count );
 
-	$count = $wpdb->get_var( $wpdb->prepare("SELECT COUNT(ID) as c FROM $wpdb->users WHERE spam = '0' AND deleted = '0'") );
+	$count = $wpdb->get_var( "SELECT COUNT(ID) as c FROM $wpdb->users WHERE spam = '0' AND deleted = '0'" );
 	update_site_option( 'user_count', $count );
 }
+
+/**
+ * Returns the space used by the current blog.
+ *
+ * @since 3.5.0
+ *
+ * @return int Used space in megabytes
+ */
+function get_space_used() {
+	// Allow for an alternative way of tracking storage space used
+	$space_used = apply_filters( 'pre_get_space_used', false );
+	if ( false === $space_used ) {
+		$upload_dir = wp_upload_dir();
+		$space_used = get_dirsize( $upload_dir['basedir'] ) / 1024 / 1024;
+	}
+
+	return $space_used;
+}
+
+/**
+ * Returns the upload quota for the current blog.
+ *
+ * @since MU
+ *
+ * @return int Quota in megabytes
+ */
+function get_space_allowed() {
+	$space_allowed = get_option( 'blog_upload_space' );
+
+	if ( ! is_numeric( $space_allowed ) )
+		$space_allowed = get_site_option( 'blog_upload_space' );
+
+	if ( empty( $space_allowed ) || ! is_numeric( $space_allowed ) )
+		$space_allowed = 50;
+
+	return $space_allowed;
+}
+
+/**
+ * Determines if there is any upload space left in the current blog's quota.
+ *
+ * @since 3.0.0
+ *
+ * @return int of upload space available in bytes
+ */
+function get_upload_space_available() {
+	$space_allowed = get_space_allowed() * 1024 * 1024;
+	if ( get_site_option( 'upload_space_check_disabled' ) )
+		return $space_allowed;
+
+	$space_used = get_space_used() * 1024 * 1024;
+
+	if ( ( $space_allowed - $space_used ) <= 0 )
+		return 0;
+
+	return $space_allowed - $space_used;
+}
+
+/**
+ * Determines if there is any upload space left in the current blog's quota.
+ *
+ * @since 3.0.0
+ * @return bool True if space is available, false otherwise.
+ */
+function is_upload_space_available() {
+	if ( get_site_option( 'upload_space_check_disabled' ) )
+		return true;
+
+	return (bool) get_upload_space_available();
+}
+
+/**
+ * @since 3.0.0
+ *
+ * @return int of upload size limit in bytes
+ */
+function upload_size_limit_filter( $size ) {
+	$fileupload_maxk = 1024 * get_site_option( 'fileupload_maxk', 1500 );
+	if ( get_site_option( 'upload_space_check_disabled' ) )
+		return min( $size, $fileupload_maxk );
+
+	return min( $size, $fileupload_maxk, get_upload_space_available() );
+}
\ No newline at end of file
--- a/web/wp-includes/ms-load.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/ms-load.php	Wed Dec 19 17:46:52 2012 -0800
@@ -69,7 +69,9 @@
  * @return bool|string Returns true on success, or drop-in file to include.
  */
 function ms_site_check() {
-	global $wpdb, $current_blog;
+	global $wpdb;
+
+	$blog = get_blog_details();
 
 	// Allow short-circuiting
 	$check = apply_filters('ms_site_check', null);
@@ -80,21 +82,21 @@
 	if ( is_super_admin() )
 		return true;
 
-	if ( '1' == $current_blog->deleted ) {
+	if ( '1' == $blog->deleted ) {
 		if ( file_exists( WP_CONTENT_DIR . '/blog-deleted.php' ) )
 			return WP_CONTENT_DIR . '/blog-deleted.php';
 		else
 			wp_die( __( 'This user has elected to delete their account and the content is no longer available.' ), '', array( 'response' => 410 ) );
 	}
 
-	if ( '2' == $current_blog->deleted ) {
+	if ( '2' == $blog->deleted ) {
 		if ( file_exists( WP_CONTENT_DIR . '/blog-inactive.php' ) )
 			return WP_CONTENT_DIR . '/blog-inactive.php';
 		else
 			wp_die( sprintf( __( 'This site has not been activated yet. If you are having problems activating your site, please contact <a href="mailto:%1$s">%1$s</a>.' ), str_replace( '@', ' AT ', get_site_option( 'admin_email', "support@{$current_site->domain}" ) ) ) );
 	}
 
-	if ( $current_blog->archived == '1' || $current_blog->spam == '1' ) {
+	if ( $blog->archived == '1' || $blog->spam == '1' ) {
 		if ( file_exists( WP_CONTENT_DIR . '/blog-suspended.php' ) )
 			return WP_CONTENT_DIR . '/blog-suspended.php';
 		else
@@ -232,7 +234,7 @@
 
 	wp_load_translations_early();
 
-	$title = __( 'Error establishing database connection' );
+	$title = __( 'Error establishing a database connection' );
 	$msg  = '<h1>' . $title . '</h1>';
 	if ( ! is_admin() )
 		die( $msg );
--- a/web/wp-includes/ms-settings.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/ms-settings.php	Wed Dec 19 17:46:52 2012 -0800
@@ -126,6 +126,8 @@
 $wpdb->set_prefix( $table_prefix, false ); // $table_prefix can be set in sunrise.php
 $wpdb->set_blog_id( $current_blog->blog_id, $current_blog->site_id );
 $table_prefix = $wpdb->get_blog_prefix();
+$_wp_switched_stack = array();
+$switched = false;
 
 // need to init cache again after blog_id is set
 wp_start_object_cache();
--- a/web/wp-includes/nav-menu-template.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/nav-menu-template.php	Wed Dec 19 17:46:52 2012 -0800
@@ -65,7 +65,6 @@
 	 * @param object $args
 	 */
 	function start_el( &$output, $item, $depth = 0, $args = array(), $id = 0 ) {
-		global $wp_query;
 		$indent = ( $depth ) ? str_repeat( "\t", $depth ) : '';
 
 		$class_names = $value = '';
@@ -156,7 +155,7 @@
 	if ( ! $menu && !$args->theme_location ) {
 		$menus = wp_get_nav_menus();
 		foreach ( $menus as $menu_maybe ) {
-			if ( $menu_items = wp_get_nav_menu_items($menu_maybe->term_id) ) {
+			if ( $menu_items = wp_get_nav_menu_items( $menu_maybe->term_id, array( 'update_post_term_cache' => false ) ) ) {
 				$menu = $menu_maybe;
 				break;
 			}
@@ -165,15 +164,21 @@
 
 	// If the menu exists, get its items.
 	if ( $menu && ! is_wp_error($menu) && !isset($menu_items) )
-		$menu_items = wp_get_nav_menu_items( $menu->term_id );
+		$menu_items = wp_get_nav_menu_items( $menu->term_id, array( 'update_post_term_cache' => false ) );
 
-	// If no menu was found or if the menu has no items and no location was requested, call the fallback_cb if it exists
+	/*
+	 * If no menu was found:
+	 *  - Fallback (if one was specified), or bail.
+	 *
+	 * If no menu items were found:
+	 *  - Fallback, but only if no theme location was specified.
+	 *  - Otherwise, bail.
+	 */
 	if ( ( !$menu || is_wp_error($menu) || ( isset($menu_items) && empty($menu_items) && !$args->theme_location ) )
 		&& $args->fallback_cb && is_callable( $args->fallback_cb ) )
 			return call_user_func( $args->fallback_cb, (array) $args );
 
-	// If no fallback function was specified and the menu doesn't exists, bail.
-	if ( !$menu || is_wp_error($menu) )
+	if ( !$menu || is_wp_error( $menu ) || empty( $menu_items ) )
 		return false;
 
 	$nav_menu = $items = '';
@@ -287,8 +292,6 @@
 				}
 			}
 		}
-	} elseif ( ! empty( $queried_object->post_type ) && is_post_type_hierarchical( $queried_object->post_type ) ) {
-		_get_post_ancestors( $queried_object );
 	} elseif ( ! empty( $queried_object->taxonomy ) && is_taxonomy_hierarchical( $queried_object->taxonomy ) ) {
 		$term_hierarchy = _get_term_hierarchy( $queried_object->taxonomy );
 		$term_to_ancestor = array();
@@ -334,7 +337,7 @@
 			(
 				( ! empty( $home_page_id ) && 'post_type' == $menu_item->type && $wp_query->is_home && $home_page_id == $menu_item->object_id ) ||
 				( 'post_type' == $menu_item->type && $wp_query->is_singular ) ||
-				( 'taxonomy' == $menu_item->type && ( $wp_query->is_category || $wp_query->is_tag || $wp_query->is_tax ) )
+				( 'taxonomy' == $menu_item->type && ( $wp_query->is_category || $wp_query->is_tag || $wp_query->is_tax ) && $queried_object->taxonomy == $menu_item->object )
 			)
 		) {
 			$classes[] = 'current-menu-item';
@@ -361,7 +364,7 @@
 		// if the menu item corresponds to the currently-requested URL
 		} elseif ( 'custom' == $menu_item->object ) {
 			$_root_relative_current = untrailingslashit( $_SERVER['REQUEST_URI'] );
-			$current_url = ( is_ssl() ? 'https://' : 'http://' ) . $_SERVER['HTTP_HOST'] . $_root_relative_current;
+			$current_url = set_url_scheme( 'http://' . $_SERVER['HTTP_HOST'] . $_root_relative_current );
 			$raw_item_url = strpos( $menu_item->url, '#' ) ? substr( $menu_item->url, 0, strpos( $menu_item->url, '#' ) ) : $menu_item->url;
 			$item_url = untrailingslashit( $raw_item_url );
 			$_indexless_current = untrailingslashit( preg_replace( '/index.php$/', '', $current_url ) );
@@ -472,7 +475,7 @@
 	$walker = ( empty($r->walker) ) ? new Walker_Nav_Menu : $r->walker;
 	$args = array( $items, $depth, $r );
 
-	return call_user_func_array( array(&$walker, 'walk'), $args );
+	return call_user_func_array( array($walker, 'walk'), $args );
 }
 
 /**
--- a/web/wp-includes/nav-menu.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/nav-menu.php	Wed Dec 19 17:46:52 2012 -0800
@@ -279,10 +279,6 @@
 	if ( ( ! $menu && 0 !== $menu_id ) || is_wp_error( $menu ) )
 		return $menu;
 
-	$menu_items = 0 == $menu_id ? array() : (array) wp_get_nav_menu_items( $menu_id, array( 'post_status' => 'publish,draft' ) );
-
-	$count = count( $menu_items );
-
 	$defaults = array(
 		'menu-item-db-id' => $menu_item_db_id,
 		'menu-item-object-id' => 0,
@@ -305,8 +301,9 @@
 	if ( 0 == $menu_id ) {
 		$args['menu-item-position'] = 1;
 	} elseif ( 0 == (int) $args['menu-item-position'] ) {
+		$menu_items = 0 == $menu_id ? array() : (array) wp_get_nav_menu_items( $menu_id, array( 'post_status' => 'publish,draft' ) );
 		$last_item = array_pop( $menu_items );
-		$args['menu-item-position'] = ( $last_item && isset( $last_item->menu_order ) ) ? 1 + $last_item->menu_order : $count;
+		$args['menu-item-position'] = ( $last_item && isset( $last_item->menu_order ) ) ? 1 + $last_item->menu_order : count( $menu_items );
 	}
 
 	$original_parent = 0 < $menu_item_db_id ? get_post_field( 'post_parent', $menu_item_db_id ) : 0;
@@ -350,20 +347,19 @@
 		'post_type' => 'nav_menu_item',
 	);
 
-	if ( 0 != $menu_id )
+	$update = 0 != $menu_item_db_id;
+
+	// Only set the menu term if it isn't set to avoid unnecessary wp_get_object_terms()
+	if ( $menu_id && ( ! $update || ! is_object_in_term( $menu_item_db_id, 'nav_menu', (int) $menu->term_id ) ) )
 		$post['tax_input'] = array( 'nav_menu' => array( intval( $menu->term_id ) ) );
 
 	// New menu item. Default is draft status
-	if ( 0 == $menu_item_db_id ) {
+	if ( ! $update ) {
 		$post['ID'] = 0;
 		$post['post_status'] = 'publish' == $args['menu-item-status'] ? 'publish' : 'draft';
 		$menu_item_db_id = wp_insert_post( $post );
-
-	// Update existing menu item. Default is publish status
-	} else {
-		$post['ID'] = $menu_item_db_id;
-		$post['post_status'] = 'draft' == $args['menu-item-status'] ? 'draft' : 'publish';
-		wp_update_post( $post );
+		if ( ! $menu_item_db_id	|| is_wp_error( $menu_item_db_id ) )
+			return $menu_item_db_id;
 	}
 
 	if ( 'custom' == $args['menu-item-type'] ) {
@@ -371,14 +367,11 @@
 		$args['menu-item-object'] = 'custom';
 	}
 
-	if ( ! $menu_item_db_id || is_wp_error( $menu_item_db_id ) )
-		return $menu_item_db_id;
-
 	$menu_item_db_id = (int) $menu_item_db_id;
 
 	update_post_meta( $menu_item_db_id, '_menu_item_type', sanitize_key($args['menu-item-type']) );
-	update_post_meta( $menu_item_db_id, '_menu_item_menu_item_parent', (int) $args['menu-item-parent-id'] );
-	update_post_meta( $menu_item_db_id, '_menu_item_object_id', (int) $args['menu-item-object-id'] );
+	update_post_meta( $menu_item_db_id, '_menu_item_menu_item_parent', strval( (int) $args['menu-item-parent-id'] ) );
+	update_post_meta( $menu_item_db_id, '_menu_item_object_id', strval( (int) $args['menu-item-object-id'] ) );
 	update_post_meta( $menu_item_db_id, '_menu_item_object', sanitize_key($args['menu-item-object']) );
 	update_post_meta( $menu_item_db_id, '_menu_item_target', sanitize_key($args['menu-item-target']) );
 
@@ -389,10 +382,17 @@
 	update_post_meta( $menu_item_db_id, '_menu_item_url', esc_url_raw($args['menu-item-url']) );
 
 	if ( 0 == $menu_id )
-		update_post_meta( $menu_item_db_id, '_menu_item_orphaned', time() );
-	else
+		update_post_meta( $menu_item_db_id, '_menu_item_orphaned', (string) time() );
+	elseif ( get_post_meta( $menu_item_db_id, '_menu_item_orphaned' ) )
 		delete_post_meta( $menu_item_db_id, '_menu_item_orphaned' );
 
+	// Update existing menu item. Default is publish status
+	if ( $update ) {
+		$post['ID'] = $menu_item_db_id;
+		$post['post_status'] = 'draft' == $args['menu-item-status'] ? 'draft' : 'publish';
+		wp_update_post( $post );
+	}
+
 	do_action('wp_update_nav_menu_item', $menu_id, $menu_item_db_id, $args );
 
 	return $menu_item_db_id;
@@ -483,8 +483,7 @@
 		return $items;
 
 	$defaults = array( 'order' => 'ASC', 'orderby' => 'menu_order', 'post_type' => 'nav_menu_item',
-		'post_status' => 'publish', 'output' => ARRAY_A, 'output_key' => 'menu_order', 'nopaging' => true,
-		'update_post_term_cache' => false );
+		'post_status' => 'publish', 'output' => ARRAY_A, 'output_key' => 'menu_order', 'nopaging' => true );
 	$args = wp_parse_args( $args, $defaults );
 	if ( count( $items ) > 1 )
 		$args['include'] = implode( ',', $items );
--- a/web/wp-includes/option.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/option.php	Wed Dec 19 17:46:52 2012 -0800
@@ -32,15 +32,15 @@
 function get_option( $option, $default = false ) {
 	global $wpdb;
 
+	$option = trim( $option );
+	if ( empty( $option ) )
+		return false;
+
 	// Allow plugins to short-circuit options.
 	$pre = apply_filters( 'pre_option_' . $option, false );
 	if ( false !== $pre )
 		return $pre;
 
-	$option = trim($option);
-	if ( empty($option) )
-		return false;
-
 	if ( defined( 'WP_SETUP_CONFIG' ) )
 		return false;
 
@@ -174,7 +174,7 @@
 	if ( empty($site_id) )
 		$site_id = $wpdb->siteid;
 
-	$core_options = array('site_name', 'siteurl', 'active_sitewide_plugins', '_site_transient_timeout_theme_roots', '_site_transient_theme_roots', 'site_admins', 'can_compress_scripts', 'global_terms_enabled' );
+	$core_options = array('site_name', 'siteurl', 'active_sitewide_plugins', '_site_transient_timeout_theme_roots', '_site_transient_theme_roots', 'site_admins', 'can_compress_scripts', 'global_terms_enabled', 'ms_files_rewriting' );
 
 	$core_options_in = "'" . implode("', '", $core_options) . "'";
 	$options = $wpdb->get_results( $wpdb->prepare("SELECT meta_key, meta_value FROM $wpdb->sitemeta WHERE meta_key IN ($core_options_in) AND site_id = %d", $site_id) );
@@ -540,6 +540,11 @@
 	if ( ! $user = wp_get_current_user() )
 		return;
 
+	if ( is_super_admin( $user->ID ) &&
+		! in_array( get_current_blog_id(), array_keys( get_blogs_of_user( $user->ID ) ) )
+		)
+		return;
+
 	$settings = get_user_option( 'user-settings', $user->ID );
 
 	if ( isset( $_COOKIE['wp-settings-' . $user->ID] ) ) {
@@ -560,8 +565,8 @@
 		}
 	}
 
-	setcookie( 'wp-settings-' . $user->ID, $settings, time() + 31536000, SITECOOKIEPATH );
-	setcookie( 'wp-settings-time-' . $user->ID, time(), time() + 31536000, SITECOOKIEPATH );
+	setcookie( 'wp-settings-' . $user->ID, $settings, time() + YEAR_IN_SECONDS, SITECOOKIEPATH );
+	setcookie( 'wp-settings-time-' . $user->ID, time(), time() + YEAR_IN_SECONDS, SITECOOKIEPATH );
 	$_COOKIE['wp-settings-' . $user->ID] = $settings;
 }
 
@@ -697,6 +702,11 @@
 	if ( ! $user = wp_get_current_user() )
 		return false;
 
+	if ( is_super_admin( $user->ID ) &&
+		! in_array( get_current_blog_id(), array_keys( get_blogs_of_user( $user->ID ) ) )
+		)
+		return;
+
 	$_updated_user_settings = $all;
 	$settings = '';
 	foreach ( $all as $k => $v ) {
@@ -724,7 +734,7 @@
 		return;
 
 	update_user_option( $user->ID, 'user-settings', '', false );
-	setcookie('wp-settings-' . $user->ID, ' ', time() - 31536000, SITECOOKIEPATH);
+	setcookie('wp-settings-' . $user->ID, ' ', time() - YEAR_IN_SECONDS, SITECOOKIEPATH);
 }
 
 /**
--- a/web/wp-includes/pluggable-deprecated.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/pluggable-deprecated.php	Wed Dec 19 17:46:52 2012 -0800
@@ -168,3 +168,25 @@
 else :
 	_deprecated_function( 'wp_login', '2.5', 'wp_signon()' );
 endif;
+
+/**
+ * WordPress AtomPub API implementation.
+ *
+ * Originally stored in wp-app.php, and later wp-includes/class-wp-atom-server.php.
+ * It is kept here in case a plugin directly referred to the class.
+ *
+ * @since 2.2.0
+ * @deprecated 3.5.0
+ * @link http://wordpress.org/extend/plugins/atom-publishing-protocol/
+ */
+if ( ! class_exists( 'wp_atom_server' ) ) {
+	class wp_atom_server {
+		public function __call( $name, $arguments ) {
+			_deprecated_function( __CLASS__ . '::' . $name, '3.5', 'the Atom Publishing Platform plugin' );
+		}
+
+		public static function __callStatic( $name, $arguments ) {
+			_deprecated_function( __CLASS__ . '::' . $name, '3.5', 'the Atom Publishing Platform plugin' );
+		}
+	}
+}
\ No newline at end of file
--- a/web/wp-includes/pluggable.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/pluggable.php	Wed Dec 19 17:46:52 2012 -0800
@@ -529,7 +529,7 @@
 
 	// Allow a grace period for POST and AJAX requests
 	if ( defined('DOING_AJAX') || 'POST' == $_SERVER['REQUEST_METHOD'] )
-		$expired += 3600;
+		$expired += HOUR_IN_SECONDS;
 
 	// Quick check to see if an honest cookie has expired
 	if ( $expired < time() ) {
@@ -694,24 +694,24 @@
 function wp_clear_auth_cookie() {
 	do_action('clear_auth_cookie');
 
-	setcookie(AUTH_COOKIE, ' ', time() - 31536000, ADMIN_COOKIE_PATH, COOKIE_DOMAIN);
-	setcookie(SECURE_AUTH_COOKIE, ' ', time() - 31536000, ADMIN_COOKIE_PATH, COOKIE_DOMAIN);
-	setcookie(AUTH_COOKIE, ' ', time() - 31536000, PLUGINS_COOKIE_PATH, COOKIE_DOMAIN);
-	setcookie(SECURE_AUTH_COOKIE, ' ', time() - 31536000, PLUGINS_COOKIE_PATH, COOKIE_DOMAIN);
-	setcookie(LOGGED_IN_COOKIE, ' ', time() - 31536000, COOKIEPATH, COOKIE_DOMAIN);
-	setcookie(LOGGED_IN_COOKIE, ' ', time() - 31536000, SITECOOKIEPATH, COOKIE_DOMAIN);
+	setcookie( AUTH_COOKIE,        ' ', time() - YEAR_IN_SECONDS, ADMIN_COOKIE_PATH,   COOKIE_DOMAIN );
+	setcookie( SECURE_AUTH_COOKIE, ' ', time() - YEAR_IN_SECONDS, ADMIN_COOKIE_PATH,   COOKIE_DOMAIN );
+	setcookie( AUTH_COOKIE,        ' ', time() - YEAR_IN_SECONDS, PLUGINS_COOKIE_PATH, COOKIE_DOMAIN );
+	setcookie( SECURE_AUTH_COOKIE, ' ', time() - YEAR_IN_SECONDS, PLUGINS_COOKIE_PATH, COOKIE_DOMAIN );
+	setcookie( LOGGED_IN_COOKIE,   ' ', time() - YEAR_IN_SECONDS, COOKIEPATH,          COOKIE_DOMAIN );
+	setcookie( LOGGED_IN_COOKIE,   ' ', time() - YEAR_IN_SECONDS, SITECOOKIEPATH,      COOKIE_DOMAIN );
 
 	// Old cookies
-	setcookie(AUTH_COOKIE, ' ', time() - 31536000, COOKIEPATH, COOKIE_DOMAIN);
-	setcookie(AUTH_COOKIE, ' ', time() - 31536000, SITECOOKIEPATH, COOKIE_DOMAIN);
-	setcookie(SECURE_AUTH_COOKIE, ' ', time() - 31536000, COOKIEPATH, COOKIE_DOMAIN);
-	setcookie(SECURE_AUTH_COOKIE, ' ', time() - 31536000, SITECOOKIEPATH, COOKIE_DOMAIN);
+	setcookie( AUTH_COOKIE,        ' ', time() - YEAR_IN_SECONDS, COOKIEPATH,     COOKIE_DOMAIN );
+	setcookie( AUTH_COOKIE,        ' ', time() - YEAR_IN_SECONDS, SITECOOKIEPATH, COOKIE_DOMAIN );
+	setcookie( SECURE_AUTH_COOKIE, ' ', time() - YEAR_IN_SECONDS, COOKIEPATH,     COOKIE_DOMAIN );
+	setcookie( SECURE_AUTH_COOKIE, ' ', time() - YEAR_IN_SECONDS, SITECOOKIEPATH, COOKIE_DOMAIN );
 
 	// Even older cookies
-	setcookie(USER_COOKIE, ' ', time() - 31536000, COOKIEPATH, COOKIE_DOMAIN);
-	setcookie(PASS_COOKIE, ' ', time() - 31536000, COOKIEPATH, COOKIE_DOMAIN);
-	setcookie(USER_COOKIE, ' ', time() - 31536000, SITECOOKIEPATH, COOKIE_DOMAIN);
-	setcookie(PASS_COOKIE, ' ', time() - 31536000, SITECOOKIEPATH, COOKIE_DOMAIN);
+	setcookie( USER_COOKIE, ' ', time() - YEAR_IN_SECONDS, COOKIEPATH,     COOKIE_DOMAIN );
+	setcookie( PASS_COOKIE, ' ', time() - YEAR_IN_SECONDS, COOKIEPATH,     COOKIE_DOMAIN );
+	setcookie( USER_COOKIE, ' ', time() - YEAR_IN_SECONDS, SITECOOKIEPATH, COOKIE_DOMAIN );
+	setcookie( PASS_COOKIE, ' ', time() - YEAR_IN_SECONDS, SITECOOKIEPATH, COOKIE_DOMAIN );
 }
 endif;
 
@@ -748,11 +748,11 @@
 
 	// If https is required and request is http, redirect
 	if ( $secure && !is_ssl() && false !== strpos($_SERVER['REQUEST_URI'], 'wp-admin') ) {
-		if ( 0 === strpos($_SERVER['REQUEST_URI'], 'http') ) {
-			wp_redirect(preg_replace('|^http://|', 'https://', $_SERVER['REQUEST_URI']));
+		if ( 0 === strpos( $_SERVER['REQUEST_URI'], 'http' ) ) {
+			wp_redirect( set_url_scheme( $_SERVER['REQUEST_URI'], 'https' ) );
 			exit();
 		} else {
-			wp_redirect('https://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']);
+			wp_redirect( 'https://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'] );
 			exit();
 		}
 	}
@@ -767,11 +767,11 @@
 
 		// If the user wants ssl but the session is not ssl, redirect.
 		if ( !$secure && get_user_option('use_ssl', $user_id) && false !== strpos($_SERVER['REQUEST_URI'], 'wp-admin') ) {
-			if ( 0 === strpos($_SERVER['REQUEST_URI'], 'http') ) {
-				wp_redirect(preg_replace('|^http://|', 'https://', $_SERVER['REQUEST_URI']));
+			if ( 0 === strpos( $_SERVER['REQUEST_URI'], 'http' ) ) {
+				wp_redirect( set_url_scheme( $_SERVER['REQUEST_URI'], 'https' ) );
 				exit();
 			} else {
-				wp_redirect('https://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']);
+				wp_redirect( 'https://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'] );
 				exit();
 			}
 		}
@@ -782,12 +782,7 @@
 	// The cookie is no good so force login
 	nocache_headers();
 
-	if ( is_ssl() )
-		$proto = 'https://';
-	else
-		$proto = 'http://';
-
-	$redirect = ( strpos($_SERVER['REQUEST_URI'], '/options.php') && wp_get_referer() ) ? wp_get_referer() : $proto . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
+	$redirect = ( strpos( $_SERVER['REQUEST_URI'], '/options.php' ) && wp_get_referer() ) ? wp_get_referer() : set_url_scheme( 'http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'] );
 
 	$login_url = wp_login_url($redirect, true);
 
@@ -1195,7 +1190,7 @@
  * @param string $plaintext_pass Optional. The user's plaintext password
  */
 function wp_new_user_notification($user_id, $plaintext_pass = '') {
-	$user = new WP_User($user_id);
+	$user = get_userdata( $user_id );
 
 	$user_login = stripslashes($user->user_login);
 	$user_email = stripslashes($user->user_email);
@@ -1234,7 +1229,7 @@
  * @return int
  */
 function wp_nonce_tick() {
-	$nonce_life = apply_filters('nonce_life', 86400);
+	$nonce_life = apply_filters( 'nonce_life', DAY_IN_SECONDS );
 
 	return ceil(time() / ( $nonce_life / 2 ));
 }
@@ -1256,6 +1251,8 @@
 function wp_verify_nonce($nonce, $action = -1) {
 	$user = wp_get_current_user();
 	$uid = (int) $user->ID;
+	if ( ! $uid )
+		$uid = apply_filters( 'nonce_user_logged_out', $uid, $action );
 
 	$i = wp_nonce_tick();
 
@@ -1282,6 +1279,8 @@
 function wp_create_nonce($action = -1) {
 	$user = wp_get_current_user();
 	$uid = (int) $user->ID;
+	if ( ! $uid )
+		$uid = apply_filters( 'nonce_user_logged_out', $uid, $action );
 
 	$i = wp_nonce_tick();
 
@@ -1501,13 +1500,13 @@
 endif;
 
 if ( !function_exists('wp_rand') ) :
- /**
+/**
  * Generates a random number
  *
  * @since 2.6.2
  *
- * @param int $min Lower limit for the generated number (optional, default is 0)
- * @param int $max Upper limit for the generated number (optional, default is 4294967295)
+ * @param int $min Lower limit for the generated number
+ * @param int $max Upper limit for the generated number
  * @return int A random number between min and max
  */
 function wp_rand( $min = 0, $max = 0 ) {
@@ -1536,10 +1535,12 @@
 
 	$value = abs(hexdec($value));
 
+	// Some misconfigured 32bit environments (Entropy PHP, for example) truncate integers larger than PHP_INT_MAX to PHP_INT_MAX rather than overflowing them to floats.
+	$max_random_number = 3000000000 === 2147483647 ? (float) "4294967295" : 4294967295; // 4294967295 = 0xffffffff
+
 	// Reduce the value to be within the min - max range
-	// 4294967295 = 0xffffffff = max random number
 	if ( $max != 0 )
-		$value = $min + (($max - $min + 1) * ($value / (4294967295 + 1)));
+		$value = $min + ( $max - $min + 1 ) * $value / ( $max_random_number + 1 );
 
 	return abs(intval($value));
 }
@@ -1577,7 +1578,7 @@
  * @param int|string|object $id_or_email A user ID,  email address, or comment object
  * @param int $size Size of the avatar image
  * @param string $default URL to a default image to use if no avatar is available
- * @param string $alt Alternate text to use in image tag. Defaults to blank
+ * @param string $alt Alternative text to use in image tag. Defaults to blank
  * @return string <img> tag for the user's avatar
 */
 function get_avatar( $id_or_email, $size = '96', $default = '', $alt = false ) {
@@ -1639,7 +1640,7 @@
 	if ( 'mystery' == $default )
 		$default = "$host/avatar/ad516503a11cd5ca435acc9bb6523536?s={$size}"; // ad516503a11cd5ca435acc9bb6523536 == md5('unknown@gravatar.com')
 	elseif ( 'blank' == $default )
-		$default = includes_url('images/blank.gif');
+		$default = $email ? 'blank' : includes_url( 'images/blank.gif' );
 	elseif ( !empty($email) && 'gravatar_default' == $default )
 		$default = '';
 	elseif ( 'gravatar_default' == $default )
--- a/web/wp-includes/plugin.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/plugin.php	Wed Dec 19 17:46:52 2012 -0800
@@ -80,8 +80,11 @@
  * @global array $wp_filter Stores all of the filters
  *
  * @param string $tag The name of the filter hook.
- * @param callback $function_to_check optional. If specified, return the priority of that function on this hook or false if not attached.
- * @return int|boolean Optionally returns the priority on that hook for the specified function.
+ * @param callback $function_to_check optional.
+ * @return mixed If $function_to_check is omitted, returns boolean for whether the hook has anything registered.
+ * 	When checking a specific function, the priority of that hook is returned, or false if the function is not attached.
+ * 	When using the $function_to_check argument, this function may return a non-boolean value that evaluates to false
+ * 	(e.g.) 0, so use the === operator for testing the return value.
  */
 function has_filter($tag, $function_to_check = false) {
 	global $wp_filter;
@@ -254,7 +257,7 @@
  * @param int $accepted_args optional. The number of arguments the function accepts (default: 1).
  * @return boolean Whether the function existed before it was removed.
  */
-function remove_filter($tag, $function_to_remove, $priority = 10, $accepted_args = 1) {
+function remove_filter( $tag, $function_to_remove, $priority = 10 ) {
 	$function_to_remove = _wp_filter_build_unique_id($tag, $function_to_remove, $priority);
 
 	$r = isset($GLOBALS['wp_filter'][$tag][$priority][$function_to_remove]);
@@ -497,8 +500,11 @@
  * @see has_filter() has_action() is an alias of has_filter().
  *
  * @param string $tag The name of the action hook.
- * @param callback $function_to_check optional. If specified, return the priority of that function on this hook or false if not attached.
- * @return int|boolean Optionally returns the priority on that hook for the specified function.
+ * @param callback $function_to_check optional.
+ * @return mixed If $function_to_check is omitted, returns boolean for whether the hook has anything registered.
+ * 	When checking a specific function, the priority of that hook is returned, or false if the function is not attached.
+ * 	When using the $function_to_check argument, this function may return a non-boolean value that evaluates to false
+ * 	(e.g.) 0, so use the === operator for testing the return value.
  */
 function has_action($tag, $function_to_check = false) {
 	return has_filter($tag, $function_to_check);
@@ -518,11 +524,10 @@
  * @param string $tag The action hook to which the function to be removed is hooked.
  * @param callback $function_to_remove The name of the function which should be removed.
  * @param int $priority optional The priority of the function (default: 10).
- * @param int $accepted_args optional. The number of arguments the function accepts (default: 1).
  * @return boolean Whether the function is removed.
  */
-function remove_action($tag, $function_to_remove, $priority = 10, $accepted_args = 1) {
-	return remove_filter($tag, $function_to_remove, $priority, $accepted_args);
+function remove_action( $tag, $function_to_remove, $priority = 10 ) {
+	return remove_filter( $tag, $function_to_remove, $priority );
 }
 
 /**
--- a/web/wp-includes/pomo/entry.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/pomo/entry.php	Wed Dec 19 17:46:52 2012 -0800
@@ -2,7 +2,7 @@
 /**
  * Contains Translation_Entry class
  *
- * @version $Id: entry.php 621 2011-06-13 12:21:50Z nbachiyski $
+ * @version $Id: entry.php 718 2012-10-31 00:32:02Z nbachiyski $
  * @package pomo
  * @subpackage entry
  */
@@ -65,14 +65,14 @@
 		// prepend context and EOT, like in MO files
 		return is_null($this->context)? $this->singular : $this->context.chr(4).$this->singular;
 	}
-	
+
 	function merge_with(&$other) {
 		$this->flags = array_unique( array_merge( $this->flags, $other->flags ) );
 		$this->references = array_unique( array_merge( $this->references, $other->references ) );
 		if ( $this->extracted_comments != $other->extracted_comments ) {
 			$this->extracted_comments .= $other->extracted_comments;
 		}
-		
+
 	}
 }
 endif;
\ No newline at end of file
--- a/web/wp-includes/pomo/mo.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/pomo/mo.php	Wed Dec 19 17:46:52 2012 -0800
@@ -2,7 +2,7 @@
 /**
  * Class for working with MO files
  *
- * @version $Id: mo.php 602 2011-01-30 12:43:29Z nbachiyski $
+ * @version $Id: mo.php 718 2012-10-31 00:32:02Z nbachiyski $
  * @package pomo
  * @subpackage mo
  */
@@ -34,7 +34,7 @@
 		fclose($fh);
 		return $res;
 	}
-	
+
 	function export() {
 		$tmp_fh = fopen("php://temp", 'r+');
 		if ( !$tmp_fh ) return false;
@@ -42,9 +42,21 @@
 		rewind( $tmp_fh );
 		return stream_get_contents( $tmp_fh );
 	}
-	
+
+	function is_entry_good_for_export( $entry ) {
+		if ( empty( $entry->translations ) ) {
+			return false;
+		}
+
+		if ( !array_filter( $entry->translations ) ) {
+			return false;
+		}
+
+		return true;
+	}
+
 	function export_to_file_handle($fh) {
-		$entries = array_filter($this->entries, create_function('$e', 'return !empty($e->translations);'));
+		$entries = array_filter( $this->entries, array( $this, 'is_entry_good_for_export' ) );
 		ksort($entries);
 		$magic = 0x950412de;
 		$revision = 0;
@@ -57,7 +69,7 @@
 		fwrite($fh, pack('V*', $magic, $revision, $total, $originals_lenghts_addr,
 			$translations_lenghts_addr, $size_of_hash, $hash_addr));
 		fseek($fh, $originals_lenghts_addr);
-		
+
 		// headers' msgid is an empty string
 		fwrite($fh, pack('VV', 0, $current_addr));
 		$current_addr++;
@@ -69,24 +81,24 @@
 			fwrite($fh, pack('VV', $length, $current_addr));
 			$current_addr += $length + 1; // account for the NULL byte after
 		}
-		
+
 		$exported_headers = $this->export_headers();
 		fwrite($fh, pack('VV', strlen($exported_headers), $current_addr));
 		$current_addr += strlen($exported_headers) + 1;
 		$translations_table = $exported_headers . chr(0);
-		
+
 		foreach($entries as $entry) {
 			$translations_table .= $this->export_translations($entry) . chr(0);
 			$length = strlen($this->export_translations($entry));
 			fwrite($fh, pack('VV', $length, $current_addr));
 			$current_addr += $length + 1;
 		}
-		
+
 		fwrite($fh, $originals_table);
 		fwrite($fh, $translations_table);
 		return true;
 	}
-	
+
 	function export_original($entry) {
 		//TODO: warnings for control characters
 		$exported = $entry->singular;
@@ -94,12 +106,12 @@
 		if (!is_null($entry->context)) $exported = $entry->context . chr(4) . $exported;
 		return $exported;
 	}
-	
+
 	function export_translations($entry) {
 		//TODO: warnings for control characters
 		return implode(chr(0), $entry->translations);
 	}
-	
+
 	function export_headers() {
 		$exported = '';
 		foreach($this->headers as $header => $value) {
@@ -195,8 +207,7 @@
 			$translation = $reader->substr( $strings, $t['pos'], $t['length'] );
 
 			if ('' === $original) {
-				$headers = $this->make_headers($translation);
-				$this->set_headers($headers);
+				$this->set_headers($this->make_headers($translation));
 			} else {
 				$entry = &$this->make_entry($original, $translation);
 				$this->entries[$entry->key()] = &$entry;
@@ -208,7 +219,7 @@
 	/**
 	 * Build a Translation_Entry from original string and translation strings,
 	 * found in a MO file
-	 * 
+	 *
 	 * @static
 	 * @param string $original original string to translate from MO file. Might contain
 	 * 	0x04 as context separator or 0x00 as singular/plural separator
--- a/web/wp-includes/pomo/po.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/pomo/po.php	Wed Dec 19 17:46:52 2012 -0800
@@ -2,7 +2,7 @@
 /**
  * Class for working with PO files
  *
- * @version $Id: po.php 589 2010-12-18 01:40:57Z nbachiyski $
+ * @version $Id: po.php 718 2012-10-31 00:32:02Z nbachiyski $
  * @package pomo
  * @subpackage po
  */
@@ -18,7 +18,7 @@
  */
 if ( !class_exists( 'PO' ) ):
 class PO extends Gettext_Translations {
-	
+
 	var $comments_before_headers = '';
 
 	/**
@@ -80,10 +80,10 @@
 		if (false === $res) return false;
 		return fclose($fh);
 	}
-	
+
 	/**
 	 * Text to include as a comment before the start of the PO contents
-	 * 
+	 *
 	 * Doesn't need to include # in the beginning of lines, these are added automatically
 	 */
 	function set_comment_before_headers( $text ) {
@@ -120,10 +120,10 @@
 		$po = str_replace("$newline$quote$quote", '', $po);
 		return $po;
 	}
-	
+
 	/**
 	 * Gives back the original string from a PO-formatted string
-	 * 
+	 *
 	 * @static
 	 * @param string $string PO-formatted string
 	 * @return string enascaped string
@@ -153,7 +153,7 @@
 	}
 
 	/**
-	 * Inserts $with in the beginning of every new line of $string and 
+	 * Inserts $with in the beginning of every new line of $string and
 	 * returns the modified string
 	 *
 	 * @static
@@ -229,9 +229,15 @@
 			}
 		}
 		PO::read_line($f, 'clear');
-		return $res !== false;
+		if ( false === $res ) {
+			return false;
+		}
+		if ( ! $this->headers && ! $this->entries ) {
+			return false;
+		}
+		return true;
 	}
-	
+
 	function read_entry($f, $lineno = 0) {
 		$entry = new Translation_Entry();
 		// where were we in the last step
@@ -336,7 +342,7 @@
 		}
 		return array('entry' => $entry, 'lineno' => $lineno);
 	}
-	
+
 	function read_line($f, $action = 'read') {
 		static $last_line = '';
 		static $use_last_line = false;
@@ -349,11 +355,12 @@
 			return true;
 		}
 		$line = $use_last_line? $last_line : fgets($f);
+		$line = ( "\r\n" == substr( $line, -2 ) ) ? rtrim( $line, "\r\n" ) . "\n" : $line;
 		$last_line = $line;
 		$use_last_line = false;
 		return $line;
 	}
-	
+
 	function add_comment_to_entry(&$entry, $po_comment_line) {
 		$first_two = substr($po_comment_line, 0, 2);
 		$comment = trim(substr($po_comment_line, 2));
@@ -367,11 +374,11 @@
 			$entry->translator_comments = trim($entry->translator_comments . "\n" . $comment);
 		}
 	}
-	
+
 	function trim_quotes($s) {
 		if ( substr($s, 0, 1) == '"') $s = substr($s, 1);
 		if ( substr($s, -1, 1) == '"') $s = substr($s, 0, -1);
 		return $s;
 	}
 }
-endif;
\ No newline at end of file
+endif;
--- a/web/wp-includes/pomo/streams.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/pomo/streams.php	Wed Dec 19 17:46:52 2012 -0800
@@ -3,22 +3,22 @@
  * Classes, which help reading streams of data from files.
  * Based on the classes from Danilo Segan <danilo@kvota.net>
  *
- * @version $Id: streams.php 597 2011-01-16 20:14:36Z nbachiyski $
+ * @version $Id: streams.php 718 2012-10-31 00:32:02Z nbachiyski $
  * @package pomo
  * @subpackage streams
  */
 
 if ( !class_exists( 'POMO_Reader' ) ):
 class POMO_Reader {
-	
+
 	var $endian = 'little';
 	var $_post = '';
-	
+
 	function POMO_Reader() {
 		$this->is_overloaded = ((ini_get("mbstring.func_overload") & 2) != 0) && function_exists('mb_substr');
 		$this->_pos = 0;
 	}
-	
+
 	/**
 	 * Sets the endianness of the file.
 	 *
@@ -57,8 +57,8 @@
 		$endian_letter = ('big' == $this->endian)? 'N' : 'V';
 		return unpack($endian_letter.$count, $bytes);
 	}
-	
-	
+
+
 	function substr($string, $start, $length) {
 		if ($this->is_overloaded) {
 			return mb_substr($string, $start, $length, 'ascii');
@@ -66,7 +66,7 @@
 			return substr($string, $start, $length);
 		}
 	}
-	
+
 	function strlen($string) {
 		if ($this->is_overloaded) {
 			return mb_strlen($string, 'ascii');
@@ -74,7 +74,7 @@
 			return strlen($string);
 		}
 	}
-	
+
 	function str_split($string, $chunk_size) {
 		if (!function_exists('str_split')) {
 			$length = $this->strlen($string);
@@ -86,8 +86,8 @@
 			return str_split( $string, $chunk_size );
 		}
 	}
-	
-		
+
+
 	function pos() {
 		return $this->_pos;
 	}
@@ -95,7 +95,7 @@
 	function is_resource() {
 		return true;
 	}
-	
+
 	function close() {
 		return true;
 	}
@@ -108,11 +108,11 @@
 		parent::POMO_Reader();
 		$this->_f = fopen($filename, 'rb');
 	}
-	
+
 	function read($bytes) {
 		return fread($this->_f, $bytes);
 	}
-	
+
 	function seekto($pos) {
 		if ( -1 == fseek($this->_f, $pos, SEEK_SET)) {
 			return false;
@@ -120,19 +120,19 @@
 		$this->_pos = $pos;
 		return true;
 	}
-	
+
 	function is_resource() {
 		return is_resource($this->_f);
 	}
-	
+
 	function feof() {
 		return feof($this->_f);
 	}
-	
+
 	function close() {
 		return fclose($this->_f);
 	}
-	
+
 	function read_all() {
 		$all = '';
 		while ( !$this->feof() )
@@ -148,9 +148,9 @@
  * of a physical file.
  */
 class POMO_StringReader extends POMO_Reader {
-	
+
 	var $_str = '';
-	
+
 	function POMO_StringReader($str = '') {
 		parent::POMO_Reader();
 		$this->_str = $str;
@@ -178,7 +178,7 @@
 	function read_all() {
 		return $this->substr($this->_str, $this->_pos, $this->strlen($this->_str));
 	}
-	
+
 }
 endif;
 
--- a/web/wp-includes/pomo/translations.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/pomo/translations.php	Wed Dec 19 17:46:52 2012 -0800
@@ -2,7 +2,7 @@
 /**
  * Class for a set of entries for translation and their associated headers
  *
- * @version $Id: translations.php 590 2010-12-20 19:58:37Z nbachiyski $
+ * @version $Id: translations.php 718 2012-10-31 00:32:02Z nbachiyski $
  * @package pomo
  * @subpackage translations
  */
@@ -29,7 +29,7 @@
 		$this->entries[$key] = &$entry;
 		return true;
 	}
-	
+
 	function add_entry_or_merge($entry) {
 		if (is_array($entry)) {
 			$entry = new Translation_Entry($entry);
@@ -121,7 +121,7 @@
 			$this->entries[$entry->key()] = $entry;
 		}
 	}
-	
+
 	function merge_originals_with(&$other) {
 		foreach( $other->entries as $entry ) {
 			if ( !isset( $this->entries[$entry->key()] ) )
@@ -134,7 +134,7 @@
 
 class Gettext_Translations extends Translations {
 	/**
-	 * The gettext implmentation of select_plural_form.
+	 * The gettext implementation of select_plural_form.
 	 *
 	 * It lives in this class, because there are more than one descendand, which will use it and
 	 * they can't share it effectively.
@@ -148,7 +148,7 @@
 		}
 		return call_user_func($this->_gettext_select_plural_form, $count);
 	}
-	
+
 	function nplurals_and_expression_from_header($header) {
 		if (preg_match('/^\s*nplurals\s*=\s*(\d+)\s*;\s+plural\s*=\s*(.+)$/', $header, $matches)) {
 			$nplurals = (int)$matches[1];
@@ -174,7 +174,7 @@
 	/**
 	 * Adds parantheses to the inner parts of ternary operators in
 	 * plural expressions, because PHP evaluates ternary oerators from left to right
-	 * 
+	 *
 	 * @param string $expression the expression without parentheses
 	 * @return string the expression with parentheses added
 	 */
@@ -202,7 +202,7 @@
 		}
 		return rtrim($res, ';');
 	}
-	
+
 	function make_headers($translation) {
 		$headers = array();
 		// sometimes \ns are used instead of real new lines
@@ -215,7 +215,7 @@
 		}
 		return $headers;
 	}
-	
+
 	function set_header($header, $value) {
 		parent::set_header($header, $value);
 		if ('Plural-Forms' == $header) {
@@ -234,7 +234,7 @@
 class NOOP_Translations {
 	var $entries = array();
 	var $headers = array();
-	
+
 	function add_entry($entry) {
 		return true;
 	}
--- a/web/wp-includes/post-template.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/post-template.php	Wed Dec 19 17:46:52 2012 -0800
@@ -26,8 +26,7 @@
  * @return int
  */
 function get_the_ID() {
-	global $post;
-	return $post->ID;
+	return get_post()->ID;
 }
 
 /**
@@ -97,24 +96,25 @@
  *
  * @since 0.71
  *
- * @param int $id Optional. Post ID.
+ * @param mixed $post Optional. Post ID or object.
  * @return string
  */
-function get_the_title( $id = 0 ) {
-	$post = &get_post($id);
+function get_the_title( $post = 0 ) {
+	$post = get_post( $post );
 
-	$title = isset($post->post_title) ? $post->post_title : '';
-	$id = isset($post->ID) ? $post->ID : (int) $id;
+	$title = isset( $post->post_title ) ? $post->post_title : '';
+	$id = isset( $post->ID ) ? $post->ID : 0;
 
-	if ( !is_admin() ) {
-		if ( !empty($post->post_password) ) {
-			$protected_title_format = apply_filters('protected_title_format', __('Protected: %s'));
-			$title = sprintf($protected_title_format, $title);
-		} else if ( isset($post->post_status) && 'private' == $post->post_status ) {
-			$private_title_format = apply_filters('private_title_format', __('Private: %s'));
-			$title = sprintf($private_title_format, $title);
+	if ( ! is_admin() ) {
+		if ( ! empty( $post->post_password ) ) {
+			$protected_title_format = apply_filters( 'protected_title_format', __( 'Protected: %s' ) );
+			$title = sprintf( $protected_title_format, $title );
+		} else if ( isset( $post->post_status ) && 'private' == $post->post_status ) {
+			$private_title_format = apply_filters( 'private_title_format', __( 'Private: %s' ) );
+			$title = sprintf( $private_title_format, $title );
 		}
 	}
+
 	return apply_filters( 'the_title', $title, $id );
 }
 
@@ -148,7 +148,7 @@
  * @return string
  */
 function get_the_guid( $id = 0 ) {
-	$post = &get_post($id);
+	$post = get_post($id);
 
 	return apply_filters('get_the_guid', $post->guid);
 }
@@ -177,8 +177,10 @@
  * @param bool $stripteaser Optional. Strip teaser content before the more text. Default is false.
  * @return string
  */
-function get_the_content($more_link_text = null, $stripteaser = false) {
-	global $post, $more, $page, $pages, $multipage, $preview;
+function get_the_content( $more_link_text = null, $stripteaser = false ) {
+	global $more, $page, $pages, $multipage, $preview;
+
+	$post = get_post();
 
 	if ( null === $more_link_text )
 		$more_link_text = __( '(more...)' );
@@ -187,7 +189,7 @@
 	$hasTeaser = false;
 
 	// If post password required and it doesn't match the cookie.
-	if ( post_password_required($post) )
+	if ( post_password_required() )
 		return get_the_password_form();
 
 	if ( $page > count($pages) ) // if the requested page doesn't exist
@@ -231,7 +233,7 @@
  * @since 3.1.0
  * @access private
  * @param array $match Match array from preg_replace_callback
- * @returns string
+ * @return string
  */
 function _convert_urlencoded_to_entities( $match ) {
 	return '&#' . base_convert( $match[1], 16, 10 ) . ';';
@@ -259,14 +261,13 @@
 	if ( !empty( $deprecated ) )
 		_deprecated_argument( __FUNCTION__, '2.3' );
 
-	global $post;
-	$output = $post->post_excerpt;
-	if ( post_password_required($post) ) {
-		$output = __('There is no excerpt because this is a protected post.');
-		return $output;
+	$post = get_post();
+
+	if ( post_password_required() ) {
+		return __( 'There is no excerpt because this is a protected post.' );
 	}
 
-	return apply_filters('get_the_excerpt', $output);
+	return apply_filters( 'get_the_excerpt', $post->post_excerpt );
 }
 
 /**
@@ -278,7 +279,7 @@
  * @return bool
  */
 function has_excerpt( $id = 0 ) {
-	$post = &get_post( $id );
+	$post = get_post( $id );
 	return ( !empty( $post->post_excerpt ) );
 }
 
@@ -321,7 +322,8 @@
 		return $classes;
 
 	$classes[] = 'post-' . $post->ID;
-	$classes[] = $post->post_type;
+	if ( ! is_admin() )
+		$classes[] = $post->post_type;
 	$classes[] = 'type-' . $post->post_type;
 	$classes[] = 'status-' . $post->post_status;
 
@@ -427,17 +429,19 @@
 		$post = $wp_query->get_queried_object();
 
 		$classes[] = 'single';
-		$classes[] = 'single-' . sanitize_html_class($post->post_type, $post_id);
-		$classes[] = 'postid-' . $post_id;
+		if ( isset( $post->post_type ) ) {
+			$classes[] = 'single-' . sanitize_html_class($post->post_type, $post_id);
+			$classes[] = 'postid-' . $post_id;
 
-		// Post Format
-		if ( post_type_supports( $post->post_type, 'post-formats' ) ) {
-			$post_format = get_post_format( $post->ID );
+			// Post Format
+			if ( post_type_supports( $post->post_type, 'post-formats' ) ) {
+				$post_format = get_post_format( $post->ID );
 
-			if ( $post_format && !is_wp_error($post_format) )
-				$classes[] = 'single-format-' . sanitize_html_class( $post_format );
-			else
-				$classes[] = 'single-format-standard';
+				if ( $post_format && !is_wp_error($post_format) )
+					$classes[] = 'single-format-' . sanitize_html_class( $post_format );
+				else
+					$classes[] = 'single-format-standard';
+			}
 		}
 
 		if ( is_attachment() ) {
@@ -453,30 +457,38 @@
 		} else if ( is_author() ) {
 			$author = $wp_query->get_queried_object();
 			$classes[] = 'author';
-			$classes[] = 'author-' . sanitize_html_class( $author->user_nicename , $author->ID );
-			$classes[] = 'author-' . $author->ID;
+			if ( isset( $author->user_nicename ) ) {
+				$classes[] = 'author-' . sanitize_html_class( $author->user_nicename, $author->ID );
+				$classes[] = 'author-' . $author->ID;
+			}
 		} elseif ( is_category() ) {
 			$cat = $wp_query->get_queried_object();
 			$classes[] = 'category';
-			$classes[] = 'category-' . sanitize_html_class( $cat->slug, $cat->term_id );
-			$classes[] = 'category-' . $cat->term_id;
+			if ( isset( $cat->term_id ) ) {
+				$classes[] = 'category-' . sanitize_html_class( $cat->slug, $cat->term_id );
+				$classes[] = 'category-' . $cat->term_id;
+			}
 		} elseif ( is_tag() ) {
 			$tags = $wp_query->get_queried_object();
 			$classes[] = 'tag';
-			$classes[] = 'tag-' . sanitize_html_class( $tags->slug, $tags->term_id );
-			$classes[] = 'tag-' . $tags->term_id;
+			if ( isset( $tags->term_id ) ) {
+				$classes[] = 'tag-' . sanitize_html_class( $tags->slug, $tags->term_id );
+				$classes[] = 'tag-' . $tags->term_id;
+			}
 		} elseif ( is_tax() ) {
 			$term = $wp_query->get_queried_object();
-			$classes[] = 'tax-' . sanitize_html_class( $term->taxonomy );
-			$classes[] = 'term-' . sanitize_html_class( $term->slug, $term->term_id );
-			$classes[] = 'term-' . $term->term_id;
+			if ( isset( $term->term_id ) ) {
+				$classes[] = 'tax-' . sanitize_html_class( $term->taxonomy );
+				$classes[] = 'term-' . sanitize_html_class( $term->slug, $term->term_id );
+				$classes[] = 'term-' . $term->term_id;
+			}
 		}
 	} elseif ( is_page() ) {
 		$classes[] = 'page';
 
 		$page_id = $wp_query->get_queried_object_id();
 
-		$post = get_page($page_id);
+		$post = get_post($page_id);
 
 		$classes[] = 'page-id-' . $page_id;
 
@@ -498,8 +510,10 @@
 	if ( is_user_logged_in() )
 		$classes[] = 'logged-in';
 
-	if ( is_admin_bar_showing() )
+	if ( is_admin_bar_showing() ) {
 		$classes[] = 'admin-bar';
+		$classes[] = 'no-customize-support';
+	}
 
 	if ( get_theme_mod( 'background_color' ) || get_background_image() )
 		$classes[] = 'custom-background';
@@ -575,20 +589,6 @@
 }
 
 /**
- * Display "sticky" CSS class, if a post is sticky.
- *
- * @since 2.7.0
- *
- * @param int $post_id An optional post ID.
- */
-function sticky_class( $post_id = null ) {
-	if ( !is_sticky($post_id) )
-		return;
-
-	echo " sticky";
-}
-
-/**
  * Page Template Functions for usage in Themes
  *
  * @package WordPress
@@ -692,7 +692,8 @@
  * @return string Link.
  */
 function _wp_link_page( $i ) {
-	global $post, $wp_rewrite;
+	global $wp_rewrite;
+	$post = get_post();
 
 	if ( 1 == $i ) {
 		$url = get_permalink();
@@ -881,6 +882,7 @@
  * @since 2.7.0
  *
  * @param array|string $args
+ * @return string html menu
  */
 function wp_page_menu( $args = array() ) {
 	$defaults = array('sort_column' => 'menu_order, post_title', 'menu_class' => 'menu', 'echo' => true, 'link_before' => '', 'link_after' => '');
@@ -945,7 +947,7 @@
 		$walker = $r['walker'];
 
 	$args = array($pages, $depth, $r, $current_page);
-	return call_user_func_array(array(&$walker, 'walk'), $args);
+	return call_user_func_array(array($walker, 'walk'), $args);
 }
 
 /**
@@ -962,7 +964,7 @@
 	else
 		$walker = $args[2]['walker'];
 
-	return call_user_func_array(array(&$walker, 'walk'), $args);
+	return call_user_func_array(array($walker, 'walk'), $args);
 }
 
 /**
@@ -994,6 +996,7 @@
 	 *
 	 * @param string $output Passed by reference. Used to append additional content.
 	 * @param int $depth Depth of page. Used for padding.
+	 * @param array $args
 	 */
 	function start_lvl( &$output, $depth = 0, $args = array() ) {
 		$indent = str_repeat("\t", $depth);
@@ -1006,6 +1009,7 @@
 	 *
 	 * @param string $output Passed by reference. Used to append additional content.
 	 * @param int $depth Depth of page. Used for padding.
+	 * @param array $args
 	 */
 	function end_lvl( &$output, $depth = 0, $args = array() ) {
 		$indent = str_repeat("\t", $depth);
@@ -1031,9 +1035,8 @@
 		extract($args, EXTR_SKIP);
 		$css_class = array('page_item', 'page-item-'.$page->ID);
 		if ( !empty($current_page) ) {
-			$_current_page = get_page( $current_page );
-			_get_post_ancestors($_current_page);
-			if ( isset($_current_page->ancestors) && in_array($page->ID, (array) $_current_page->ancestors) )
+			$_current_page = get_post( $current_page );
+			if ( in_array( $page->ID, $_current_page->ancestors ) )
 				$css_class[] = 'current_page_ancestor';
 			if ( $page->ID == $current_page )
 				$css_class[] = 'current_page_item';
@@ -1064,6 +1067,7 @@
 	 * @param string $output Passed by reference. Used to append additional content.
 	 * @param object $page Page data object. Not used.
 	 * @param int $depth Depth of page. Not Used.
+	 * @param array $args
 	 */
 	function end_el( &$output, $page, $depth = 0, $args = array() ) {
 		$output .= "</li>\n";
@@ -1102,6 +1106,7 @@
 	 * @param object $page Page data object.
 	 * @param int $depth Depth of page in reference to parent pages. Used for padding.
 	 * @param array $args Uses 'selected' argument for selected page to set selected HTML attribute for option element.
+	 * @param int $id
 	 */
 	function start_el(&$output, $page, $depth, $args, $id = 0) {
 		$pad = str_repeat('&nbsp;', $depth * 3);
@@ -1150,12 +1155,12 @@
  * @param string $size Optional, default is 'thumbnail'. Size of image, either array or string.
  * @param bool $permalink Optional, default is false. Whether to add permalink to image.
  * @param bool $icon Optional, default is false. Whether to include icon.
- * @param string $text Optional, default is false. If string, then will be link text.
+ * @param string|bool $text Optional, default is false. If string, then will be link text.
  * @return string HTML content.
  */
 function wp_get_attachment_link( $id = 0, $size = 'thumbnail', $permalink = false, $icon = false, $text = false ) {
 	$id = intval( $id );
-	$_post = & get_post( $id );
+	$_post = get_post( $id );
 
 	if ( empty( $_post ) || ( 'attachment' != $_post->post_type ) || ! $url = wp_get_attachment_url( $_post->ID ) )
 		return __( 'Missing Attachment' );
@@ -1188,7 +1193,7 @@
  * @return string
  */
 function prepend_attachment($content) {
-	global $post;
+	$post = get_post();
 
 	if ( empty($post->post_type) || $post->post_type != 'attachment' )
 		return $content;
@@ -1215,7 +1220,7 @@
  * @return string HTML content for password form for password protected post.
  */
 function get_the_password_form() {
-	global $post;
+	$post = get_post();
 	$label = 'pwbox-' . ( empty($post->ID) ? rand() : $post->ID );
 	$output = '<form action="' . esc_url( site_url( 'wp-login.php?action=postpass', 'login_post' ) ) . '" method="post">
 	<p>' . __("This post is password protected. To view it please enter your password below:") . '</p>
@@ -1261,7 +1266,7 @@
  *
  * @since 3.4.0
  *
- * @param int $id The page ID to check. Defaults to the current post, when used in the loop.
+ * @param int $post_id The page ID to check. Defaults to the current post, when used in the loop.
  * @return string|bool Page template filename. Returns an empty string when the default page template
  * 	is in use. Returns false if the post is not a page.
  */
@@ -1432,9 +1437,9 @@
 	<col style="width: 33%" />
 <thead>
 <tr>
-	<th scope="col"><?php /* translators: column name in revisons */ _ex( 'Old', 'revisions column name' ); ?></th>
-	<th scope="col"><?php /* translators: column name in revisons */ _ex( 'New', 'revisions column name' ); ?></th>
-	<th scope="col"><?php /* translators: column name in revisons */ _ex( 'Date Created', 'revisions column name' ); ?></th>
+	<th scope="col"><?php /* translators: column name in revisions */ _ex( 'Old', 'revisions column name' ); ?></th>
+	<th scope="col"><?php /* translators: column name in revisions */ _ex( 'New', 'revisions column name' ); ?></th>
+	<th scope="col"><?php /* translators: column name in revisions */ _ex( 'Date Created', 'revisions column name' ); ?></th>
 	<th scope="col"><?php _e( 'Author' ); ?></th>
 	<th scope="col" class="action-links"><?php _e( 'Actions' ); ?></th>
 </tr>
--- a/web/wp-includes/post.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/post.php	Wed Dec 19 17:46:52 2012 -0800
@@ -52,21 +52,27 @@
 
 	register_post_type( 'attachment', array(
 		'labels' => array(
-			'name' => __( 'Media' ),
-			'edit_item' => __( 'Edit Media' ),
+			'name' => _x('Media', 'post type general name'),
+			'name_admin_bar' => _x( 'Media', 'add new from admin bar' ),
+			'add_new' => _x( 'Add New', 'add new media' ),
+ 			'edit_item' => __( 'Edit Media' ),
+ 			'view_item' => __( 'View Attachment Page' ),
 		),
 		'public' => true,
-		'show_ui' => false,
+		'show_ui' => true,
 		'_builtin' => true, /* internal use only. don't use this when registering your own post type. */
-		'_edit_link' => 'media.php?attachment_id=%d', /* internal use only. don't use this when registering your own post type. */
+		'_edit_link' => 'post.php?post=%d', /* internal use only. don't use this when registering your own post type. */
 		'capability_type' => 'post',
+		'capabilities' => array(
+			'create_posts' => 'upload_files',
+		),
 		'map_meta_cap' => true,
 		'hierarchical' => false,
 		'rewrite' => false,
 		'query_var' => false,
 		'show_in_nav_menus' => false,
 		'delete_with_user' => true,
-		'supports' => array( 'comments', 'author' ),
+		'supports' => array( 'title', 'author', 'comments' ),
 	) );
 
 	register_post_type( 'revision', array(
@@ -204,9 +210,10 @@
 		return false;
 
 	$file = apply_filters( 'update_attached_file', $file, $attachment_id );
-	$file = _wp_relative_upload_path($file);
-
-	return update_post_meta( $attachment_id, '_wp_attached_file', $file );
+	if ( $file = _wp_relative_upload_path( $file ) )
+		return update_post_meta( $attachment_id, '_wp_attached_file', $file );
+	else
+		return delete_post_meta( $attachment_id, '_wp_attached_file' );
 }
 
 /**
@@ -223,11 +230,10 @@
 function _wp_relative_upload_path( $path ) {
 	$new_path = $path;
 
-	if ( ($uploads = wp_upload_dir()) && false === $uploads['error'] ) {
-		if ( 0 === strpos($new_path, $uploads['basedir']) ) {
-				$new_path = str_replace($uploads['basedir'], '', $new_path);
-				$new_path = ltrim($new_path, '/');
-		}
+	$uploads = wp_upload_dir();
+	if ( 0 === strpos( $new_path, $uploads['basedir'] ) ) {
+			$new_path = str_replace( $uploads['basedir'], '', $new_path );
+			$new_path = ltrim( $new_path, '/' );
 	}
 
 	return apply_filters( '_wp_relative_upload_path', $new_path, $path );
@@ -372,56 +378,297 @@
  * @uses $wpdb
  * @link http://codex.wordpress.org/Function_Reference/get_post
  *
- * @param int|object $post Post ID or post object.
+ * @param int|object $post Post ID or post object. Optional, default is the current post from the loop.
  * @param string $output Optional, default is Object. Either OBJECT, ARRAY_A, or ARRAY_N.
  * @param string $filter Optional, default is raw.
- * @return mixed Post data
+ * @return WP_Post|null WP_Post on success or null on failure
+ */
+function get_post( $post = null, $output = OBJECT, $filter = 'raw' ) {
+	if ( empty( $post ) && isset( $GLOBALS['post'] ) )
+		$post = $GLOBALS['post'];
+
+	if ( is_a( $post, 'WP_Post' ) ) {
+		$_post = $post;
+	} elseif ( is_object( $post ) ) {
+		if ( empty( $post->filter ) ) {
+			$_post = sanitize_post( $post, 'raw' );
+			$_post = new WP_Post( $_post );
+		} elseif ( 'raw' == $post->filter ) {
+			$_post = new WP_Post( $post );
+		} else {
+			$_post = WP_Post::get_instance( $post->ID );
+		}
+	} else {
+		$_post = WP_Post::get_instance( $post );
+	}
+
+	if ( ! $_post )
+		return null;
+
+	$_post = $_post->filter( $filter );
+
+	if ( $output == ARRAY_A )
+		return $_post->to_array();
+	elseif ( $output == ARRAY_N )
+		return array_values( $_post->to_array() );
+
+	return $_post;
+}
+
+/**
+ * WordPress Post class.
+ *
+ * @since 3.5.0
+ *
  */
-function &get_post(&$post, $output = OBJECT, $filter = 'raw') {
-	global $wpdb;
-	$null = null;
-
-	if ( empty($post) ) {
-		if ( isset($GLOBALS['post']) )
-			$_post = & $GLOBALS['post'];
-		else
-			return $null;
-	} elseif ( is_object($post) && empty($post->filter) ) {
-		_get_post_ancestors($post);
-		$_post = sanitize_post($post, 'raw');
-		wp_cache_add($post->ID, $_post, 'posts');
-	} elseif ( is_object($post) && 'raw' == $post->filter ) {
-		$_post = $post;
-	} else {
-		if ( is_object($post) )
-			$post_id = $post->ID;
-		else
-			$post_id = $post;
+final class WP_Post {
+
+	/**
+	 *
+	 * @var int
+	 */
+	public $ID;
+
+	/**
+	 *
+	 * @var int
+	 */
+	public $post_author = 0;
+
+	/**
+	 *
+	 * @var string
+	 */
+	public $post_date = '0000-00-00 00:00:00';
+
+	/**
+	 *
+	 * @var string
+	 */
+	public $post_date_gmt = '0000-00-00 00:00:00';
+
+	/**
+	 *
+	 * @var string
+	 */
+	public $post_content = '';
+
+	/**
+	 *
+	 * @var string
+	 */
+	public $post_title = '';
+
+	/**
+	 *
+	 * @var string
+	 */
+	public $post_excerpt = '';
+
+	/**
+	 *
+	 * @var string
+	 */
+	public $post_status = 'publish';
+
+	/**
+	 *
+	 * @var string
+	 */
+	public $comment_status = 'open';
+
+	/**
+	 *
+	 * @var string
+	 */
+	public $ping_status = 'open';
+
+	/**
+	 *
+	 * @var string
+	 */
+	public $post_password = '';
+
+	/**
+	 *
+	 * @var string
+	 */
+	public $post_name = '';
+
+	/**
+	 *
+	 * @var string
+	 */
+	public $to_ping = '';
+
+	/**
+	 *
+	 * @var string
+	 */
+	public $pinged = '';
+
+	/**
+	 *
+	 * @var string
+	 */
+	public $post_modified = '0000-00-00 00:00:00';
+
+	/**
+	 *
+	 * @var string
+	 */
+	public $post_modified_gmt = '0000-00-00 00:00:00';
+
+	/**
+	 *
+	 * @var string
+	 */
+	public $post_content_filtered = '';
+
+	/**
+	 *
+	 * @var int
+	 */
+	public $post_parent = 0;
+
+	/**
+	 *
+	 * @var string
+	 */
+	public $guid = '';
+
+	/**
+	 *
+	 * @var int
+	 */
+	public $menu_order = 0;
+
+	/**
+	 *
+	 * @var string
+	 */
+	public $post_type = 'post';
+
+	/**
+	 *
+	 * @var string
+	 */
+	public $post_mime_type = '';
+
+	/**
+	 *
+	 * @var int
+	 */
+	public $comment_count = 0;
+
+	/**
+	 *
+	 * @var string
+	 */
+	public $filter;
+
+	public static function get_instance( $post_id ) {
+		global $wpdb;
 
 		$post_id = (int) $post_id;
-		if ( ! $_post = wp_cache_get($post_id, 'posts') ) {
-			$_post = $wpdb->get_row($wpdb->prepare("SELECT * FROM $wpdb->posts WHERE ID = %d LIMIT 1", $post_id));
+		if ( ! $post_id )
+			return false;
+
+		$_post = wp_cache_get( $post_id, 'posts' );
+
+		if ( ! $_post ) {
+			$_post = $wpdb->get_row( $wpdb->prepare( "SELECT * FROM $wpdb->posts WHERE ID = %d LIMIT 1", $post_id ) );
+
 			if ( ! $_post )
-				return $null;
-			_get_post_ancestors($_post);
-			$_post = sanitize_post($_post, 'raw');
-			wp_cache_add($_post->ID, $_post, 'posts');
+				return false;
+
+			$_post = sanitize_post( $_post, 'raw' );
+			wp_cache_add( $_post->ID, $_post, 'posts' );
+		} elseif ( empty( $_post->filter ) ) {
+			$_post = sanitize_post( $_post, 'raw' );
 		}
+
+		return new WP_Post( $_post );
+	}
+
+	public function __construct( $post ) {
+		foreach ( get_object_vars( $post ) as $key => $value )
+			$this->$key = $value;
+	}
+
+	public function __isset( $key ) {
+		if ( 'ancestors' == $key )
+			return true;
+
+		if ( 'page_template' == $key )
+			return ( 'page' == $this->post_type );
+
+		if ( 'post_category' == $key )
+		   return true;
+
+		if ( 'tags_input' == $key )
+		   return true;
+
+		return metadata_exists( 'post', $this->ID, $key );
 	}
 
-	if ($filter != 'raw')
-		$_post = sanitize_post($_post, $filter);
-
-	if ( $output == OBJECT ) {
-		return $_post;
-	} elseif ( $output == ARRAY_A ) {
-		$__post = get_object_vars($_post);
-		return $__post;
-	} elseif ( $output == ARRAY_N ) {
-		$__post = array_values(get_object_vars($_post));
-		return $__post;
-	} else {
-		return $_post;
+	public function __get( $key ) {
+		if ( 'page_template' == $key && $this->__isset( $key ) ) {
+			return get_post_meta( $this->ID, '_wp_page_template', true );
+		}
+
+		if ( 'post_category' == $key ) {
+			if ( is_object_in_taxonomy( $this->post_type, 'category' ) )
+				$terms = get_the_terms( $this, 'category' );
+
+			if ( empty( $terms ) )
+				return array();
+
+			return wp_list_pluck( $terms, 'term_id' );
+		}
+
+		if ( 'tags_input' == $key ) {
+			if ( is_object_in_taxonomy( $this->post_type, 'post_tag' ) )
+				$terms = get_the_terms( $this, 'post_tag' );
+
+			if ( empty( $terms ) )
+				return array();
+
+			return wp_list_pluck( $terms, 'name' );
+		}
+
+		// Rest of the values need filtering
+
+		if ( 'ancestors' == $key )
+			$value = get_post_ancestors( $this );
+		else
+			$value = get_post_meta( $this->ID, $key, true );
+
+		if ( $this->filter )
+			$value = sanitize_post_field( $key, $value, $this->ID, $this->filter );
+
+		return $value;
+	}
+
+	public function filter( $filter ) {
+		if ( $this->filter == $filter )
+			return $this;
+
+		if ( $filter == 'raw' )
+			return self::get_instance( $this->ID );
+
+		return sanitize_post( $this, $filter );
+	}
+
+	public function to_array() {
+		$post = get_object_vars( $this );
+
+		foreach ( array( 'ancestors', 'page_template', 'post_category', 'tags_input' ) as $key ) {
+			if ( $this->__isset( $key ) )
+				$post[ $key ] = $this->__get( $key );
+		}
+
+		return $post;
 	}
 }
 
@@ -433,16 +680,28 @@
  * @param int|object $post Post ID or post object
  * @return array Ancestor IDs or empty array if none are found.
  */
-function get_post_ancestors($post) {
-	$post = get_post($post);
-
-	if ( ! isset( $post->ancestors ) )
-		_get_post_ancestors( $post );
-
-	if ( ! empty( $post->ancestors ) )
-		return $post->ancestors;
-
-	return array();
+function get_post_ancestors( $post ) {
+	if ( ! $post )
+		return false;
+
+	$post = get_post( $post );
+
+	if ( empty( $post->post_parent ) || $post->post_parent == $post->ID )
+		return array();
+
+	$ancestors = array();
+
+	$id = $ancestors[] = $post->post_parent;
+
+	while ( $ancestor = get_post( $id ) ) {
+		// Loop detection: If the ancestor has been seen before, break.
+		if ( empty( $ancestor->post_parent ) || ( $ancestor->post_parent == $post->ID ) || in_array( $ancestor->post_parent, $ancestors ) )
+			break;
+
+		$id = $ancestors[] = $ancestor->post_parent;
+	}
+
+	return $ancestors;
 }
 
 /**
@@ -460,16 +719,12 @@
  * @param string $field Post field name
  * @param id $post Post ID
  * @param string $context Optional. How to filter the field. Default is display.
- * @return WP_Error|string Value in post field or WP_Error on failure
+ * @return bool|string False on failure or returns the value in post field
  */
 function get_post_field( $field, $post, $context = 'display' ) {
-	$post = (int) $post;
 	$post = get_post( $post );
 
-	if ( is_wp_error($post) )
-		return $post;
-
-	if ( !is_object($post) )
+	if ( !$post )
 		return '';
 
 	if ( !isset($post->$field) )
@@ -490,7 +745,7 @@
  * @return bool|string False on failure or returns the mime type
  */
 function get_post_mime_type($ID = '') {
-	$post = & get_post($ID);
+	$post = get_post($ID);
 
 	if ( is_object($post) )
 		return $post->post_mime_type;
@@ -671,7 +926,19 @@
 		$wp_post_statuses = array();
 
 	// Args prefixed with an underscore are reserved for internal use.
-	$defaults = array('label' => false, 'label_count' => false, 'exclude_from_search' => null, '_builtin' => false, '_edit_link' => 'post.php?post=%d', 'capability_type' => 'post', 'hierarchical' => false, 'public' => null, 'internal' => null, 'protected' => null, 'private' => null, 'show_in_admin_all' => null, 'publicly_queryable' => null, 'show_in_admin_status_list' => null, 'show_in_admin_all_list' => null, 'single_view_cap' => null);
+	$defaults = array(
+		'label' => false,
+		'label_count' => false,
+		'exclude_from_search' => null,
+		'_builtin' => false,
+		'public' => null,
+		'internal' => null,
+		'protected' => null,
+		'private' => null,
+		'publicly_queryable' => null,
+		'show_in_admin_status_list' => null,
+		'show_in_admin_all_list' => null,
+	);
 	$args = wp_parse_args($args, $defaults);
 	$args = (object) $args;
 
@@ -703,10 +970,7 @@
 		$args->show_in_admin_all_list = !$args->internal;
 
 	if ( null === $args->show_in_admin_status_list )
-			$args->show_in_admin_status_list = !$args->internal;
-
-	if ( null === $args->single_view_cap )
-		$args->single_view_cap = $args->public ? '' : 'edit';
+		$args->show_in_admin_status_list = !$args->internal;
 
 	if ( false === $args->label )
 		$args->label = $post_status;
@@ -804,19 +1068,12 @@
  *
  * @uses $post The Loop current post global
  *
- * @param mixed $the_post Optional. Post object or post ID.
+ * @param mixed $post Optional. Post object or post ID.
  * @return bool|string post type or false on failure.
  */
-function get_post_type( $the_post = false ) {
-	global $post;
-
-	if ( false === $the_post )
-		$the_post = $post;
-	elseif ( is_numeric($the_post) )
-		$the_post = get_post($the_post);
-
-	if ( is_object($the_post) )
-		return $the_post->post_type;
+function get_post_type( $post = null ) {
+	if ( $post = get_post( $post ) )
+		return $post->post_type;
 
 	return false;
 }
@@ -1020,7 +1277,7 @@
 	if ( ! empty($args->supports) ) {
 		add_post_type_support($post_type, $args->supports);
 		unset($args->supports);
-	} else {
+	} elseif ( false !== $args->supports ) {
 		// Add default features
 		add_post_type_support($post_type, array('title', 'editor'));
 	}
@@ -1028,7 +1285,8 @@
 	if ( false !== $args->query_var && !empty($wp) ) {
 		if ( true === $args->query_var )
 			$args->query_var = $post_type;
-		$args->query_var = sanitize_title_with_dashes($args->query_var);
+		else
+			$args->query_var = sanitize_title_with_dashes($args->query_var);
 		$wp->add_query_var($args->query_var);
 	}
 
@@ -1182,6 +1440,10 @@
 
 	$capabilities = array_merge( $default_capabilities, $args->capabilities );
 
+	// Post creation capability simply maps to edit_posts by default:
+	if ( ! isset( $capabilities['create_posts'] ) )
+		$capabilities['create_posts'] = $capabilities['edit_posts'];
+
 	// Remember meta capabilities for future reference.
 	if ( $args->map_meta_cap )
 		_post_type_meta_capabilities( $capabilities );
@@ -1245,7 +1507,11 @@
 		'all_items' => array( __( 'All Posts' ), __( 'All Pages' ) )
 	);
 	$nohier_vs_hier_defaults['menu_name'] = $nohier_vs_hier_defaults['name'];
-	return _get_custom_object_labels( $post_type_object, $nohier_vs_hier_defaults );
+
+	$labels = _get_custom_object_labels( $post_type_object, $nohier_vs_hier_defaults );
+
+	$post_type = $post_type_object->name;
+	return apply_filters( "post_type_labels_{$post_type}", $labels );
 }
 
 /**
@@ -1668,9 +1934,9 @@
  * @since 2.3.0
  * @uses sanitize_post_field() Used to sanitize the fields.
  *
- * @param object|array $post The Post Object or Array
+ * @param object|WP_Post|array $post The Post Object or Array
  * @param string $context Optional, default is 'display'. How to sanitize post fields.
- * @return object|array The now sanitized Post Object or Array (will be the same type as $post)
+ * @return object|WP_Post|array The now sanitized Post Object or Array (will be the same type as $post)
  */
 function sanitize_post($post, $context = 'display') {
 	if ( is_object($post) ) {
@@ -1917,6 +2183,23 @@
 }
 
 /**
+ * Get default post mime types
+ *
+ * @since 2.9.0
+ *
+ * @return array
+ */
+function get_post_mime_types() {
+	$post_mime_types = array(	//	array( adj, noun )
+		'image' => array(__('Images'), __('Manage Images'), _n_noop('Image <span class="count">(%s)</span>', 'Images <span class="count">(%s)</span>')),
+		'audio' => array(__('Audio'), __('Manage Audio'), _n_noop('Audio <span class="count">(%s)</span>', 'Audio <span class="count">(%s)</span>')),
+		'video' => array(__('Video'), __('Manage Video'), _n_noop('Video <span class="count">(%s)</span>', 'Video <span class="count">(%s)</span>')),
+	);
+
+	return apply_filters('post_mime_types', $post_mime_types);
+}
+
+/**
  * Check a MIME-Type against a list.
  *
  * If the wildcard_mime_types parameter is a string, it must be comma separated
@@ -2086,8 +2369,8 @@
 
 	clean_post_cache( $post );
 
-	if ( is_post_type_hierarchical( $post->post_type ) ) {
-		foreach ( (array) $children as $child )
+	if ( is_post_type_hierarchical( $post->post_type ) && $children ) {
+		foreach ( $children as $child )
 			clean_post_cache( $child );
 	}
 
@@ -2115,7 +2398,7 @@
 	if ( !EMPTY_TRASH_DAYS )
 		return wp_delete_post($post_id, true);
 
-	if ( !$post = wp_get_single_post($post_id, ARRAY_A) )
+	if ( !$post = get_post($post_id, ARRAY_A) )
 		return $post;
 
 	if ( $post['post_status'] == 'trash' )
@@ -2147,7 +2430,7 @@
  * @return mixed False on failure
  */
 function wp_untrash_post($post_id = 0) {
-	if ( !$post = wp_get_single_post($post_id, ARRAY_A) )
+	if ( !$post = get_post($post_id, ARRAY_A) )
 		return $post;
 
 	if ( $post['post_status'] != 'trash' )
@@ -2378,49 +2661,6 @@
 }
 
 /**
- * Retrieve a single post, based on post ID.
- *
- * Has categories in 'post_category' property or key. Has tags in 'tags_input'
- * property or key.
- *
- * @since 1.0.0
- *
- * @param int $postid Post ID.
- * @param string $mode How to return result, either OBJECT, ARRAY_N, or ARRAY_A.
- * @return object|array Post object or array holding post contents and information
- */
-function wp_get_single_post($postid = 0, $mode = OBJECT) {
-	$postid = (int) $postid;
-
-	$post = get_post($postid, $mode);
-
-	if (
-		( OBJECT == $mode && empty( $post->ID ) ) ||
-		( OBJECT != $mode && empty( $post['ID'] ) )
-	)
-		return ( OBJECT == $mode ? null : array() );
-
-	// Set categories and tags
-	if ( $mode == OBJECT ) {
-		$post->post_category = array();
-		if ( is_object_in_taxonomy($post->post_type, 'category') )
-			$post->post_category = wp_get_post_categories($postid);
-		$post->tags_input = array();
-		if ( is_object_in_taxonomy($post->post_type, 'post_tag') )
-			$post->tags_input = wp_get_post_tags($postid, array('fields' => 'names'));
-	} else {
-		$post['post_category'] = array();
-		if ( is_object_in_taxonomy($post['post_type'], 'category') )
-			$post['post_category'] = wp_get_post_categories($postid);
-		$post['tags_input'] = array();
-		if ( is_object_in_taxonomy($post['post_type'], 'post_tag') )
-			$post['tags_input'] = wp_get_post_tags($postid, array('fields' => 'names'));
-	}
-
-	return $post;
-}
-
-/**
  * Insert a post.
  *
  * If the $postarr parameter has 'ID' set to a value, then post will be updated.
@@ -2547,6 +2787,18 @@
 	if ( empty($post_date) || '0000-00-00 00:00:00' == $post_date )
 		$post_date = current_time('mysql');
 
+		// validate the date
+		$mm = substr( $post_date, 5, 2 );
+		$jj = substr( $post_date, 8, 2 );
+		$aa = substr( $post_date, 0, 4 );
+		$valid_date = wp_checkdate( $mm, $jj, $aa, $post_date );
+		if ( !$valid_date ) {
+			if ( $wp_error )
+				return new WP_Error( 'invalid_date', __( 'Whoops, the provided date is invalid.' ) );
+			else
+				return 0;
+		}
+
 	if ( empty($post_date_gmt) || '0000-00-00 00:00:00' == $post_date_gmt ) {
 		if ( !in_array( $post_status, array( 'draft', 'pending', 'auto-draft' ) ) )
 			$post_date_gmt = get_gmt_from_date($post_date);
@@ -2667,18 +2919,18 @@
 
 	$current_guid = get_post_field( 'guid', $post_ID );
 
-	clean_post_cache( $post_ID );
-
 	// Set GUID
 	if ( !$update && '' == $current_guid )
 		$wpdb->update( $wpdb->posts, array( 'guid' => get_permalink( $post_ID ) ), $where );
 
+	clean_post_cache( $post_ID );
+
 	$post = get_post($post_ID);
 
 	if ( !empty($page_template) && 'page' == $data['post_type'] ) {
 		$post->page_template = $page_template;
-		$page_templates = get_page_templates();
-		if ( 'default' != $page_template && !in_array($page_template, $page_templates) ) {
+		$page_templates = wp_get_theme()->get_page_templates();
+		if ( 'default' != $page_template && ! isset( $page_templates[ $page_template ] ) ) {
 			if ( $wp_error )
 				return new WP_Error('invalid_page_template', __('The page template is invalid.'));
 			else
@@ -2710,9 +2962,10 @@
  * @since 1.0.0
  *
  * @param array|object $postarr Post data. Arrays are expected to be escaped, objects are not.
- * @return int 0 on failure, Post ID on success.
+ * @param bool $wp_error Optional. Allow return of WP_Error on failure.
+ * @return int|WP_Error The value 0 or WP_Error on failure. The post ID on success.
  */
-function wp_update_post($postarr = array()) {
+function wp_update_post( $postarr = array(), $wp_error = false ) {
 	if ( is_object($postarr) ) {
 		// non-escaped post was passed
 		$postarr = get_object_vars($postarr);
@@ -2720,7 +2973,7 @@
 	}
 
 	// First, get all of the original fields
-	$post = wp_get_single_post($postarr['ID'], ARRAY_A);
+	$post = get_post($postarr['ID'], ARRAY_A);
 
 	// Escape data pulled from DB.
 	$post = add_magic_quotes($post);
@@ -2750,39 +3003,25 @@
 	if ($postarr['post_type'] == 'attachment')
 		return wp_insert_attachment($postarr);
 
-	return wp_insert_post($postarr);
+	return wp_insert_post( $postarr, $wp_error );
 }
 
 /**
  * Publish a post by transitioning the post status.
  *
  * @since 2.1.0
- * @uses $wpdb
- * @uses do_action() Calls 'edit_post', 'save_post', and 'wp_insert_post' on post_id and post data.
- *
- * @param int $post_id Post ID.
- * @return null
+ * @uses wp_update_post()
+ *
+ * @param mixed $post Post ID or object.
  */
-function wp_publish_post($post_id) {
-	global $wpdb;
-
-	$post = get_post($post_id);
-
-	if ( empty($post) )
+function wp_publish_post( $post ) {
+	if ( ! $post = get_post( $post ) )
 		return;
-
 	if ( 'publish' == $post->post_status )
 		return;
 
-	$wpdb->update( $wpdb->posts, array( 'post_status' => 'publish' ), array( 'ID' => $post_id ) );
-
-	$old_status = $post->post_status;
 	$post->post_status = 'publish';
-	wp_transition_post_status('publish', $old_status, $post);
-
-	do_action('edit_post', $post_id, $post);
-	do_action('save_post', $post_id, $post);
-	do_action('wp_insert_post', $post_id, $post);
+	wp_update_post( $post );
 }
 
 /**
@@ -2837,6 +3076,8 @@
 
 	global $wpdb, $wp_rewrite;
 
+	$original_slug = $slug;
+
 	$feeds = $wp_rewrite->feeds;
 	if ( ! is_array( $feeds ) )
 		$feeds = array();
@@ -2857,6 +3098,8 @@
 			$slug = $alt_post_name;
 		}
 	} elseif ( in_array( $post_type, $hierarchical_post_types ) ) {
+		if ( 'nav_menu_item' == $post_type )
+			return $slug;
 		// Page slugs must be unique within their own trees. Pages are in a separate
 		// namespace than posts so page slugs are allowed to overlap post slugs.
 		$check_sql = "SELECT post_name FROM $wpdb->posts WHERE post_name = %s AND post_type IN ( '" . implode( "', '", esc_sql( $hierarchical_post_types ) ) . "' ) AND ID != %d AND post_parent = %d LIMIT 1";
@@ -2887,7 +3130,7 @@
 		}
 	}
 
-	return apply_filters( 'wp_unique_post_slug', $slug, $post_ID, $post_status, $post_type, $post_parent );
+	return apply_filters( 'wp_unique_post_slug', $slug, $post_ID, $post_status, $post_type, $post_parent, $original_slug );
 }
 
 /**
@@ -2953,11 +3196,10 @@
 	// Hierarchical taxonomies must always pass IDs rather than names so that children with the same
 	// names but different parents aren't confused.
 	if ( is_taxonomy_hierarchical( $taxonomy ) ) {
-		$tags = array_map( 'intval', $tags );
-		$tags = array_unique( $tags );
+		$tags = array_unique( array_map( 'intval', $tags ) );
 	}
 
-	return wp_set_object_terms($post_id, $tags, $taxonomy, $append);
+	return wp_set_object_terms( $post_id, $tags, $taxonomy, $append );
 }
 
 /**
@@ -2986,12 +3228,7 @@
 		return true;
 	}
 
-	if ( !empty($post_categories) ) {
-		$post_categories = array_map('intval', $post_categories);
-		$post_categories = array_unique($post_categories);
-	}
-
-	return wp_set_object_terms($post_ID, $post_categories, 'category');
+	return wp_set_post_terms($post_ID, $post_categories, 'category');
 }
 
 /**
@@ -3127,7 +3364,7 @@
 function trackback_url_list($tb_list, $post_id) {
 	if ( ! empty( $tb_list ) ) {
 		// get post data
-		$postdata = wp_get_single_post($post_id, ARRAY_A);
+		$postdata = get_post($post_id, ARRAY_A);
 
 		// import postdata as variables
 		extract($postdata, EXTR_SKIP);
@@ -3174,16 +3411,18 @@
 /**
  * Retrieves page data given a page ID or page object.
  *
+ * Use get_post() instead of get_page().
+ *
  * @since 1.5.1
+ * @deprecated 3.5.0
  *
  * @param mixed $page Page object or page ID. Passed by reference.
  * @param string $output What to output. OBJECT, ARRAY_A, or ARRAY_N.
  * @param string $filter How the return value should be filtered.
- * @return mixed Page data.
+ * @return WP_Post|null WP_Post on success or null on failure
  */
-function &get_page(&$page, $output = OBJECT, $filter = 'raw') {
-	$p = get_post($page, $output, $filter);
-	return $p;
+function get_page( $page, $output = OBJECT, $filter = 'raw') {
+	return get_post( $page, $output, $filter );
 }
 
 /**
@@ -3195,7 +3434,7 @@
  * @param string $page_path Page path
  * @param string $output Optional. Output type. OBJECT, ARRAY_N, or ARRAY_A. Default OBJECT.
  * @param string $post_type Optional. Post type. Default page.
- * @return mixed Null when complete.
+ * @return WP_Post|null WP_Post on success or null on failure
  */
 function get_page_by_path($page_path, $output = OBJECT, $post_type = 'page') {
 	global $wpdb;
@@ -3210,7 +3449,7 @@
 	$in_string = "'". implode( "','", $parts ) . "'";
 	$post_type_sql = $post_type;
 	$wpdb->escape_by_ref( $post_type_sql );
-	$pages = $wpdb->get_results( "SELECT ID, post_name, post_parent FROM $wpdb->posts WHERE post_name IN ($in_string) AND (post_type = '$post_type_sql' OR post_type = 'attachment')", OBJECT_K );
+	$pages = $wpdb->get_results( "SELECT ID, post_name, post_parent, post_type FROM $wpdb->posts WHERE post_name IN ($in_string) AND (post_type = '$post_type_sql' OR post_type = 'attachment')", OBJECT_K );
 
 	$revparts = array_reverse( $parts );
 
@@ -3229,13 +3468,14 @@
 
 			if ( $p->post_parent == 0 && $count+1 == count( $revparts ) && $p->post_name == $revparts[ $count ] ) {
 				$foundid = $page->ID;
-				break;
+				if ( $page->post_type == $post_type )
+					break;
 			}
 		}
 	}
 
 	if ( $foundid )
-		return get_page( $foundid, $output );
+		return get_post( $foundid, $output );
 
 	return null;
 }
@@ -3249,13 +3489,13 @@
  * @param string $page_title Page title
  * @param string $output Optional. Output type. OBJECT, ARRAY_N, or ARRAY_A. Default OBJECT.
  * @param string $post_type Optional. Post type. Default page.
- * @return mixed
+ * @return WP_Post|null WP_Post on success or null on failure
  */
 function get_page_by_title($page_title, $output = OBJECT, $post_type = 'page' ) {
 	global $wpdb;
 	$page = $wpdb->get_var( $wpdb->prepare( "SELECT ID FROM $wpdb->posts WHERE post_title = %s AND post_type= %s", $page_title, $post_type ) );
 	if ( $page )
-		return get_page($page, $output);
+		return get_post( $page, $output );
 
 	return null;
 }
@@ -3273,7 +3513,7 @@
  * @param array $pages List of pages' objects.
  * @return array
  */
-function &get_page_children($page_id, $pages) {
+function get_page_children($page_id, $pages) {
 	$page_list = array();
 	foreach ( (array) $pages as $page ) {
 		if ( $page->post_parent == $page_id ) {
@@ -3297,7 +3537,7 @@
  * @param int $page_id Parent page ID.
  * @return array A list arranged by hierarchy. Children immediately follow their parents.
  */
-function &get_page_hierarchy( &$pages, $page_id = 0 ) {
+function get_page_hierarchy( &$pages, $page_id = 0 ) {
 	if ( empty( $pages ) ) {
 		$result = array();
 		return $result;
@@ -3342,16 +3582,11 @@
  */
 function get_page_uri($page) {
 	if ( ! is_object($page) )
-		$page = get_page($page);
+		$page = get_post( $page );
 	$uri = $page->post_name;
 
-	// A page cannot be it's own parent.
-	if ( $page->post_parent == $page->ID )
-		return $uri;
-
-	while ($page->post_parent != 0) {
-		$page = get_page($page->post_parent);
-		$uri = $page->post_name . "/" . $uri;
+	foreach ( $page->ancestors as $parent ) {
+		$uri = get_post( $parent )->post_name . "/" . $uri;
 	}
 
 	return $uri;
@@ -3370,9 +3605,11 @@
  * @param mixed $args Optional. Array or string of options that overrides defaults.
  * @return array List of pages matching defaults or $args
  */
-function &get_pages($args = '') {
+function get_pages($args = '') {
 	global $wpdb;
 
+	$pages = false;
+
 	$defaults = array(
 		'child_of' => 0, 'sort_order' => 'ASC',
 		'sort_column' => 'post_title', 'hierarchical' => 1,
@@ -3391,19 +3628,21 @@
 	// Make sure the post type is hierarchical
 	$hierarchical_post_types = get_post_types( array( 'hierarchical' => true ) );
 	if ( !in_array( $post_type, $hierarchical_post_types ) )
-		return false;
+		return $pages;
 
 	// Make sure we have a valid post status
 	if ( !is_array( $post_status ) )
 		$post_status = explode( ',', $post_status );
 	if ( array_diff( $post_status, get_post_stati() ) )
-		return false;
+		return $pages;
 
 	$cache = array();
 	$key = md5( serialize( compact(array_keys($defaults)) ) );
 	if ( $cache = wp_cache_get( 'get_pages', 'posts' ) ) {
-		if ( is_array($cache) && isset( $cache[ $key ] ) ) {
-			$pages = apply_filters('get_pages', $cache[ $key ], $r );
+		if ( is_array($cache) && isset( $cache[ $key ] ) && is_array( $cache[ $key ] ) ) {
+			// Convert to WP_Post instances
+			$pages = array_map( 'get_post', $cache[ $key ] );
+			$pages = apply_filters( 'get_pages', $pages, $r );
 			return $pages;
 		}
 	}
@@ -3559,7 +3798,7 @@
 	update_post_cache( $pages );
 
 	if ( $child_of || $hierarchical )
-		$pages = & get_page_children($child_of, $pages);
+		$pages = get_page_children($child_of, $pages);
 
 	if ( !empty($exclude_tree) ) {
 		$exclude = (int) $exclude_tree;
@@ -3578,6 +3817,9 @@
 	$cache[ $key ] = $pages;
 	wp_cache_set( 'get_pages', $cache, 'posts' );
 
+	// Convert to WP_Post instances
+	$pages = array_map( 'get_post', $pages );
+
 	$pages = apply_filters('get_pages', $pages, $r);
 
 	return $pages;
@@ -3601,7 +3843,7 @@
 	if (strpos($url, home_url('/?attachment_id=')) !== false)
 		return true;
 	if ( $id = url_to_postid($url) ) {
-		$post = & get_post($id);
+		$post = get_post($id);
 		if ( 'attachment' == $post->post_type )
 			return true;
 	}
@@ -3676,13 +3918,12 @@
 	if ( ! in_array( $post_status, array( 'inherit', 'private' ) ) )
 		$post_status = 'inherit';
 
+	if ( !empty($post_category) )
+		$post_category = array_filter($post_category); // Filter out empty terms
+
 	// Make sure we set a valid category.
-	if ( !isset($post_category) || 0 == count($post_category) || !is_array($post_category) ) {
-		// 'post' requires at least one category.
-		if ( 'post' == $post_type )
-			$post_category = array( get_option('default_category') );
-		else
-			$post_category = array();
+	if ( empty($post_category) || 0 == count($post_category) || !is_array($post_category) ) {
+		$post_category = array();
 	}
 
 	// Are we updating or creating?
@@ -3767,7 +4008,22 @@
 		$wpdb->update( $wpdb->posts, compact("post_name"), array( 'ID' => $post_ID ) );
 	}
 
-	wp_set_post_categories($post_ID, $post_category);
+	if ( is_object_in_taxonomy($post_type, 'category') )
+		wp_set_post_categories( $post_ID, $post_category );
+
+	if ( isset( $tags_input ) && is_object_in_taxonomy($post_type, 'post_tag') )
+		wp_set_post_tags( $post_ID, $tags_input );
+
+	// support for all custom taxonomies
+	if ( !empty($tax_input) ) {
+		foreach ( $tax_input as $taxonomy => $tags ) {
+			$taxonomy_obj = get_taxonomy($taxonomy);
+			if ( is_array($tags) ) // array = hierarchical, string = non-hierarchical.
+				$tags = array_filter($tags);
+			if ( current_user_can($taxonomy_obj->cap->assign_terms) )
+				wp_set_post_terms( $post_ID, $tags, $taxonomy );
+		}
+	}
 
 	if ( $file )
 		update_attached_file( $post_ID, $file );
@@ -3897,7 +4153,7 @@
  */
 function wp_get_attachment_metadata( $post_id = 0, $unfiltered = false ) {
 	$post_id = (int) $post_id;
-	if ( !$post =& get_post( $post_id ) )
+	if ( !$post = get_post( $post_id ) )
 		return false;
 
 	$data = get_post_meta( $post->ID, '_wp_attachment_metadata', true );
@@ -3919,12 +4175,13 @@
  */
 function wp_update_attachment_metadata( $post_id, $data ) {
 	$post_id = (int) $post_id;
-	if ( !$post =& get_post( $post_id ) )
+	if ( !$post = get_post( $post_id ) )
 		return false;
 
-	$data = apply_filters( 'wp_update_attachment_metadata', $data, $post->ID );
-
-	return update_post_meta( $post->ID, '_wp_attachment_metadata', $data);
+	if ( $data = apply_filters( 'wp_update_attachment_metadata', $data, $post->ID ) )
+		return update_post_meta( $post->ID, '_wp_attachment_metadata', $data );
+	else
+		return delete_post_meta( $post->ID, '_wp_attachment_metadata' );
 }
 
 /**
@@ -3937,7 +4194,7 @@
  */
 function wp_get_attachment_url( $post_id = 0 ) {
 	$post_id = (int) $post_id;
-	if ( !$post =& get_post( $post_id ) )
+	if ( !$post = get_post( $post_id ) )
 		return false;
 
 	if ( 'attachment' != $post->post_type )
@@ -3976,7 +4233,7 @@
  */
 function wp_get_attachment_thumb_file( $post_id = 0 ) {
 	$post_id = (int) $post_id;
-	if ( !$post =& get_post( $post_id ) )
+	if ( !$post = get_post( $post_id ) )
 		return false;
 	if ( !is_array( $imagedata = wp_get_attachment_metadata( $post->ID ) ) )
 		return false;
@@ -3998,7 +4255,7 @@
  */
 function wp_get_attachment_thumb_url( $post_id = 0 ) {
 	$post_id = (int) $post_id;
-	if ( !$post =& get_post( $post_id ) )
+	if ( !$post = get_post( $post_id ) )
 		return false;
 	if ( !$url = wp_get_attachment_url( $post->ID ) )
 		return false;
@@ -4025,7 +4282,7 @@
  */
 function wp_attachment_is_image( $post_id = 0 ) {
 	$post_id = (int) $post_id;
-	if ( !$post =& get_post( $post_id ) )
+	if ( !$post = get_post( $post_id ) )
 		return false;
 
 	if ( !$file = get_attached_file( $post->ID ) )
@@ -4033,7 +4290,7 @@
 
 	$ext = preg_match('/\.([^.]+)$/', $file, $matches) ? strtolower($matches[1]) : false;
 
-	$image_exts = array('jpg', 'jpeg', 'gif', 'png');
+	$image_exts = array( 'jpg', 'jpeg', 'jpe', 'gif', 'png' );
 
 	if ( 'image/' == substr($post->post_mime_type, 0, 6) || $ext && 'import' == $post->post_mime_type && in_array($ext, $image_exts) )
 		return true;
@@ -4051,12 +4308,13 @@
 function wp_mime_type_icon( $mime = 0 ) {
 	if ( !is_numeric($mime) )
 		$icon = wp_cache_get("mime_type_icon_$mime");
+
+	$post_id = 0;
 	if ( empty($icon) ) {
-		$post_id = 0;
 		$post_mimes = array();
 		if ( is_numeric($mime) ) {
 			$mime = (int) $mime;
-			if ( $post =& get_post( $mime ) ) {
+			if ( $post = get_post( $mime ) ) {
 				$post_id = (int) $post->ID;
 				$ext = preg_replace('/^.+?\.([^.]+)$/', '$1', $post->guid);
 				if ( !empty($ext) ) {
@@ -4098,7 +4356,7 @@
 					closedir($dh);
 				}
 			}
-			wp_cache_set('icon_files', $icon_files, 600);
+			wp_cache_add( 'icon_files', $icon_files, 'default', 600 );
 		}
 
 		// Icon basename - extension = MIME wildcard
@@ -4118,7 +4376,7 @@
 			if ( isset($types[$wilds[0]])) {
 				$icon = $types[$wilds[0]];
 				if ( !is_numeric($mime) )
-					wp_cache_set("mime_type_icon_$mime", $icon);
+					wp_cache_add("mime_type_icon_$mime", $icon);
 				break;
 			}
 		}
@@ -4195,9 +4453,10 @@
  * @param string $post_type Post type.
  * @param bool $full Optional. Returns a full WHERE statement instead of just an 'andalso' term.
  * @param int $post_author Optional. Query posts having a single author ID.
+ * @param bool $public_only Optional. Only return public posts. Skips cap checks for $current_user.  Default is false.
  * @return string SQL WHERE code that can be added to a query.
  */
-function get_posts_by_author_sql( $post_type, $full = true, $post_author = null ) {
+function get_posts_by_author_sql( $post_type, $full = true, $post_author = null, $public_only = false ) {
 	global $user_ID, $wpdb;
 
 	// Private posts
@@ -4221,18 +4480,21 @@
 
 	$sql .= "(post_status = 'publish'";
 
-	if ( current_user_can( $cap ) ) {
-		// Does the user have the capability to view private posts? Guess so.
-		$sql .= " OR post_status = 'private'";
-	} elseif ( is_user_logged_in() ) {
-		// Users can view their own private posts.
-		$id = (int) $user_ID;
-		if ( null === $post_author || ! $full ) {
-			$sql .= " OR post_status = 'private' AND post_author = $id";
-		} elseif ( $id == (int) $post_author ) {
+	// Only need to check the cap if $public_only is false
+	if ( false === $public_only ) {
+		if ( current_user_can( $cap ) ) {
+			// Does the user have the capability to view private posts? Guess so.
 			$sql .= " OR post_status = 'private'";
+		} elseif ( is_user_logged_in() ) {
+			// Users can view their own private posts.
+			$id = (int) $user_ID;
+			if ( null === $post_author || ! $full ) {
+				$sql .= " OR post_status = 'private' AND post_author = $id";
+			} elseif ( $id == (int) $post_author ) {
+				$sql .= " OR post_status = 'private'";
+			} // else none
 		} // else none
-	} // else none
+	}
 
 	$sql .= ')';
 
@@ -4351,8 +4613,6 @@
  * Cleaning means delete from the cache of the post. Will call to clean the term
  * object cache associated with the post ID.
  *
- * clean_post_cache() will call itself recursively for each child post.
- *
  * This function not run if $_wp_suspend_cache_invalidation is not empty. See
  * wp_suspend_cache_invalidation().
  *
@@ -4383,23 +4643,13 @@
 
 	do_action( 'clean_post_cache', $post->ID, $post );
 
+	if ( is_post_type_hierarchical( $post->post_type ) )
+		wp_cache_delete( 'get_pages', 'posts' );
+
 	if ( 'page' == $post->post_type ) {
 		wp_cache_delete( 'all_page_ids', 'posts' );
-		wp_cache_delete( 'get_pages', 'posts' );
 		do_action( 'clean_page_cache', $post->ID );
 	}
-
-	if ( $children = $wpdb->get_results( $wpdb->prepare("SELECT ID, post_type FROM $wpdb->posts WHERE post_parent = %d", $post->ID) ) ) {
-		foreach ( $children as $child ) {
-			// Loop detection
-			if ( $child->ID == $post->ID )
-				continue;
-			clean_post_cache( $child );
-		}
-	}
-
-	if ( is_multisite() )
-		wp_cache_delete( $wpdb->blogid . '-' . $post->ID, 'global-posts' );
 }
 
 /**
@@ -4430,8 +4680,8 @@
 	foreach ( $posts as $post )
 		$post_ids[] = $post->ID;
 
-	if ( empty($post_type) )
-		$post_type = 'post';
+	if ( ! $post_type )
+		$post_type = 'any';
 
 	if ( $update_term_cache ) {
 		if ( is_array($post_type) ) {
@@ -4571,9 +4821,8 @@
  * @since 2.3.0
  * @access private
  * @uses $wpdb
- * @uses XMLRPC_REQUEST and APP_REQUEST constants.
+ * @uses XMLRPC_REQUEST constant.
  * @uses do_action() Calls 'xmlprc_publish_post' on post ID if XMLRPC_REQUEST is defined.
- * @uses do_action() Calls 'app_publish_post' on post ID if APP_REQUEST is defined.
  *
  * @param int $post_id The ID in the database table of the post being published
  */
@@ -4582,8 +4831,6 @@
 
 	if ( defined('XMLRPC_REQUEST') )
 		do_action('xmlrpc_publish_post', $post_id);
-	if ( defined('APP_REQUEST') )
-		do_action('app_publish_post', $post_id);
 
 	if ( defined('WP_IMPORTING') )
 		return;
@@ -4596,58 +4843,6 @@
 }
 
 /**
- * Hook used to prevent page/post cache from staying dirty when a post is saved.
- *
- * @since 2.3.0
- * @access private
- *
- * @param int $post_id The ID in the database table for the $post
- * @param object $post Object type containing the post information
- */
-function _save_post_hook( $post_id, $post ) {
-	clean_post_cache( $post );
-}
-
-/**
- * Retrieve post ancestors and append to post ancestors property.
- *
- * Will only retrieve ancestors once, if property is already set, then nothing
- * will be done. If there is not a parent post, or post ID and post parent ID
- * are the same then nothing will be done.
- *
- * The parameter is passed by reference, so nothing needs to be returned. The
- * property will be updated and can be referenced after the function is
- * complete. The post parent will be an ancestor and the parent of the post
- * parent will be an ancestor. There will only be two ancestors at the most.
- *
- * @since 2.5.0
- * @access private
- * @uses $wpdb
- *
- * @param object $_post Post data.
- * @return null When nothing needs to be done.
- */
-function _get_post_ancestors(&$_post) {
-	global $wpdb;
-
-	if ( isset($_post->ancestors) )
-		return;
-
-	$_post->ancestors = array();
-
-	if ( empty($_post->post_parent) || $_post->ID == $_post->post_parent )
-		return;
-
-	$id = $_post->ancestors[] = (int) $_post->post_parent;
-	while ( $ancestor = $wpdb->get_var( $wpdb->prepare("SELECT `post_parent` FROM $wpdb->posts WHERE ID = %d LIMIT 1", $id) ) ) {
-		// Loop detection: If the ancestor has been seen before, break.
-		if ( ( $ancestor == $_post->ID ) || in_array($ancestor,  $_post->ancestors) )
-			break;
-		$id = $_post->ancestors[] = (int) $ancestor;
-	}
-}
-
-/**
  * Determines which fields of posts are to be saved in revisions.
  *
  * Does two things. If passed a post *array*, it will return a post array ready
@@ -4726,6 +4921,9 @@
 	if ( !$post = get_post( $post_id, ARRAY_A ) )
 		return;
 
+	if ( 'auto-draft' == $post['post_status'] )
+		return;
+
 	if ( !post_type_supports($post['post_type'], 'revisions') )
 		return;
 
@@ -4890,7 +5088,7 @@
  * @param string $filter Optional sanitation filter. @see sanitize_post()
  * @return mixed Null if error or post object if success
  */
-function &wp_get_post_revision(&$post, $output = OBJECT, $filter = 'raw') {
+function wp_get_post_revision(&$post, $output = OBJECT, $filter = 'raw') {
 	$null = null;
 	if ( !$revision = get_post( $post, OBJECT, $filter ) )
 		return $revision;
@@ -5166,10 +5364,10 @@
 	$post = get_post( $post );
 	$thumbnail_id = absint( $thumbnail_id );
 	if ( $post && $thumbnail_id && get_post( $thumbnail_id ) ) {
-		$thumbnail_html = wp_get_attachment_image( $thumbnail_id, 'thumbnail' );
-		if ( ! empty( $thumbnail_html ) ) {
+		if ( $thumbnail_html = wp_get_attachment_image( $thumbnail_id, 'thumbnail' ) )
 			return update_post_meta( $post->ID, '_thumbnail_id', $thumbnail_id );
-		}
+		else
+			return delete_post_meta( $post->ID, '_thumbnail_id' );
 	}
 	return false;
 }
--- a/web/wp-includes/query.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/query.php	Wed Dec 19 17:46:52 2012 -0800
@@ -86,8 +86,7 @@
  * @param string $query
  * @return array List of posts
  */
-function &query_posts($query) {
-	unset($GLOBALS['wp_query']);
+function query_posts($query) {
 	$GLOBALS['wp_query'] = new WP_Query();
 	return $GLOBALS['wp_query']->query($query);
 }
@@ -103,7 +102,6 @@
  * @uses $wp_query
  */
 function wp_reset_query() {
-	unset($GLOBALS['wp_query']);
 	$GLOBALS['wp_query'] = $GLOBALS['wp_the_query'];
 	wp_reset_postdata();
 }
@@ -128,7 +126,7 @@
  */
 
 /**
- * Is the query for an archive page?
+ * Is the query for an existing archive page?
  *
  * Month, Year, Category, Author, Post Type archive...
  *
@@ -150,7 +148,7 @@
 }
 
 /**
- * Is the query for a post type archive page?
+ * Is the query for an existing post type archive page?
  *
  * @see WP_Query::is_post_type_archive()
  * @since 3.1.0
@@ -171,7 +169,7 @@
 }
 
 /**
- * Is the query for an attachment page?
+ * Is the query for an existing attachment page?
  *
  * @see WP_Query::is_attachment()
  * @since 2.0.0
@@ -191,7 +189,7 @@
 }
 
 /**
- * Is the query for an author archive page?
+ * Is the query for an existing author archive page?
  *
  * If the $author parameter is specified, this function will additionally
  * check if the query is for one of the authors specified.
@@ -215,7 +213,7 @@
 }
 
 /**
- * Is the query for a category archive page?
+ * Is the query for an existing category archive page?
  *
  * If the $category parameter is specified, this function will additionally
  * check if the query is for one of the categories specified.
@@ -239,7 +237,7 @@
 }
 
 /**
- * Is the query for a tag archive page?
+ * Is the query for an existing tag archive page?
  *
  * If the $tag parameter is specified, this function will additionally
  * check if the query is for one of the tags specified.
@@ -263,7 +261,7 @@
 }
 
 /**
- * Is the query for a taxonomy archive page?
+ * Is the query for an existing taxonomy archive page?
  *
  * If the $taxonomy parameter is specified, this function will additionally
  * check if the query is for that specific $taxonomy.
@@ -312,7 +310,7 @@
 }
 
 /**
- * Is the query for a date archive?
+ * Is the query for an existing date archive?
  *
  * @see WP_Query::is_date()
  * @since 1.5.0
@@ -332,7 +330,7 @@
 }
 
 /**
- * Is the query for a day archive?
+ * Is the query for an existing day archive?
  *
  * @see WP_Query::is_day()
  * @since 1.5.0
@@ -452,7 +450,7 @@
 }
 
 /**
- * Is the query for a month archive?
+ * Is the query for an existing month archive?
  *
  * @see WP_Query::is_month()
  * @since 1.5.0
@@ -472,7 +470,7 @@
 }
 
 /**
- * Is the query for a single page?
+ * Is the query for an existing single page?
  *
  * If the $page parameter is specified, this function will additionally
  * check if the query is for one of the pages specified.
@@ -579,7 +577,7 @@
 }
 
 /**
- * Is the query for a single post?
+ * Is the query for an existing single post?
  *
  * Works for any post type, except attachments and pages
  *
@@ -608,7 +606,7 @@
 }
 
 /**
- * Is the query for a single post of any post type (post, attachment, page, ... )?
+ * Is the query for an existing single post of any post type (post, attachment, page, ... )?
  *
  * If the $post_types parameter is specified, this function will additionally
  * check if the query is for one of the Posts Types specified.
@@ -675,7 +673,7 @@
 }
 
 /**
- * Is the query for a specific year?
+ * Is the query for an existing year archive?
  *
  * @see WP_Query::is_year()
  * @since 1.5.0
@@ -979,7 +977,9 @@
 	var $comment;
 
 	/**
-	 * Amount of posts if limit clause was not used.
+	 * The amount of found posts for the current query.
+	 *
+	 * If limit clause was not used, equals $post_count.
 	 *
 	 * @since 2.1.0
 	 * @access public
@@ -1398,6 +1398,7 @@
 			, 's'
 			, 'sentence'
 			, 'fields'
+			, 'menu_order'
 		);
 
 		foreach ( $keys as $key ) {
@@ -1452,6 +1453,7 @@
 		if ( '' !== $qv['hour'] ) $qv['hour'] = absint($qv['hour']);
 		if ( '' !== $qv['minute'] ) $qv['minute'] = absint($qv['minute']);
 		if ( '' !== $qv['second'] ) $qv['second'] = absint($qv['second']);
+		if ( '' !== $qv['menu_order'] ) $qv['menu_order'] = absint($qv['menu_order']);
 
 		// Compat. Map subpost to attachment.
 		if ( '' != $qv['subpost'] )
@@ -1785,13 +1787,13 @@
 		// Tag stuff
 		if ( '' != $q['tag'] && !$this->is_singular && $this->query_vars_changed ) {
 			if ( strpos($q['tag'], ',') !== false ) {
-				$tags = preg_split('/[,\s]+/', $q['tag']);
+				$tags = preg_split('/[,\r\n\t ]+/', $q['tag']);
 				foreach ( (array) $tags as $tag ) {
 					$tag = sanitize_term_field('slug', $tag, 0, 'post_tag', 'db');
 					$q['tag_slug__in'][] = $tag;
 				}
-			} else if ( preg_match('/[+\s]+/', $q['tag']) || !empty($q['cat']) ) {
-				$tags = preg_split('/[+\s]+/', $q['tag']);
+			} else if ( preg_match('/[+\r\n\t ]+/', $q['tag']) || !empty($q['cat']) ) {
+				$tags = preg_split('/[+\r\n\t ]+/', $q['tag']);
 				foreach ( (array) $tags as $tag ) {
 					$tag = sanitize_term_field('slug', $tag, 0, 'post_tag', 'db');
 					$q['tag_slug__and'][] = $tag;
@@ -1914,7 +1916,7 @@
 	 *
 	 * @return array List of posts.
 	 */
-	function &get_posts() {
+	function get_posts() {
 		global $wpdb, $user_ID, $_wp_using_ext_object_cache;
 
 		$this->parse_query();
@@ -2040,6 +2042,9 @@
 				$fields = "$wpdb->posts.*";
 		}
 
+		if ( '' !== $q['menu_order'] )
+			$where .= " AND $wpdb->posts.menu_order = " . $q['menu_order'];
+
 		// If a month is specified in the querystring, load that month
 		if ( $q['m'] ) {
 			$q['m'] = '' . preg_replace('|[^0-9]|', '', $q['m']);
@@ -2128,7 +2133,7 @@
 				$q['pagename'] = sanitize_title_for_query( wp_basename( $q['pagename'] ) );
 				$q['name'] = $q['pagename'];
 				$where .= " AND ($wpdb->posts.ID = '$reqpage')";
-				$reqpage_obj = get_page($reqpage);
+				$reqpage_obj = get_post( $reqpage );
 				if ( is_object($reqpage_obj) && 'attachment' == $reqpage_obj->post_type ) {
 					$this->is_attachment = true;
 					$post_type = $q['post_type'] = 'attachment';
@@ -2177,6 +2182,8 @@
 		if ( !empty($q['s']) ) {
 			// added slashes screw with quote grouping when done early, so done later
 			$q['s'] = stripslashes($q['s']);
+			if ( empty( $_GET['s'] ) && $this->is_main_query() )
+				$q['s'] = urldecode($q['s']);
 			if ( !empty($q['sentence']) ) {
 				$q['search_terms'] = array($q['s']);
 			} else {
@@ -2213,7 +2220,17 @@
 
 		if ( $this->is_tax ) {
 			if ( empty($post_type) ) {
-				$post_type = 'any';
+				// Do a fully inclusive search for currently registered post types of queried taxonomies
+				$post_type = array();
+				$taxonomies = wp_list_pluck( $this->tax_query->queries, 'taxonomy' );
+				foreach ( get_post_types( array( 'exclude_from_search' => false ) ) as $pt ) {
+					$object_taxonomies = $pt === 'attachment' ? get_taxonomies_for_attachments() : get_object_taxonomies( $pt );
+					if ( array_intersect( $taxonomies, $object_taxonomies ) )
+						$post_type[] = $pt;
+				}
+				if ( ! $post_type )
+					$post_type = 'any';
+
 				$post_status_join = true;
 			} elseif ( in_array('attachment', (array) $post_type) ) {
 				$post_status_join = true;
@@ -2324,6 +2341,8 @@
 			$orderby = "$wpdb->posts.post_date " . $q['order'];
 		} elseif ( 'none' == $q['orderby'] ) {
 			$orderby = '';
+		} elseif ( $q['orderby'] == 'post__in' && ! empty( $post__in ) ) {
+			$orderby = "FIELD( {$wpdb->posts}.ID, $post__in )";
 		} else {
 			// Used to filter values
 			$allowed_keys = array('name', 'author', 'date', 'title', 'modified', 'menu_order', 'parent', 'ID', 'rand', 'comment_count');
@@ -2386,7 +2405,7 @@
 		if ( 'any' == $post_type ) {
 			$in_search_post_types = get_post_types( array('exclude_from_search' => false) );
 			if ( ! empty( $in_search_post_types ) )
-				$where .= $wpdb->prepare(" AND $wpdb->posts.post_type IN ('" . join("', '", $in_search_post_types ) . "')");
+				$where .= " AND $wpdb->posts.post_type IN ('" . join("', '", $in_search_post_types ) . "')";
 		} elseif ( !empty( $post_type ) && is_array( $post_type ) ) {
 			$where .= " AND $wpdb->posts.post_type IN ('" . join("', '", $post_type) . "')";
 		} elseif ( ! empty( $post_type ) ) {
@@ -2612,13 +2631,17 @@
 		}
 
 		if ( 'ids' == $q['fields'] ) {
-			$this->posts = $wpdb->get_col($this->request);
+			$this->posts = $wpdb->get_col( $this->request );
+			$this->post_count = count( $this->posts );
+			$this->set_found_posts( $q, $limits );
 
 			return $this->posts;
 		}
 
 		if ( 'id=>parent' == $q['fields'] ) {
-			$this->posts = $wpdb->get_results($this->request);
+			$this->posts = $wpdb->get_results( $this->request );
+			$this->post_count = count( $this->posts );
+			$this->set_found_posts( $q, $limits );
 
 			$r = array();
 			foreach ( $this->posts as $post )
@@ -2640,13 +2663,10 @@
 			$ids = $wpdb->get_col( $this->request );
 
 			if ( $ids ) {
+				$this->posts = $ids;
 				$this->set_found_posts( $q, $limits );
-
 				_prime_post_caches( $ids, $q['update_post_term_cache'], $q['update_post_meta_cache'] );
-
-				$this->posts = array_map( 'get_post', $ids );
 			} else {
-				$this->found_posts = $this->max_num_pages = 0;
 				$this->posts = array();
 			}
 		} else {
@@ -2654,6 +2674,10 @@
 			$this->set_found_posts( $q, $limits );
 		}
 
+		// Convert to WP_Post objects
+		if ( $this->posts )
+			$this->posts = array_map( 'get_post', $this->posts );
+
 		// Raw results filter. Prior to status checks.
 		if ( !$q['suppress_filters'] )
 			$this->posts = apply_filters_ref_array('posts_results', array( $this->posts, &$this ) );
@@ -2700,7 +2724,7 @@
 			}
 
 			if ( $this->is_preview && $this->posts && current_user_can( $edit_cap, $this->posts[0]->ID ) )
-				$this->posts[0] = apply_filters_ref_array('the_preview', array( $this->posts[0], &$this ));
+				$this->posts[0] = get_post( apply_filters_ref_array( 'the_preview', array( $this->posts[0], &$this ) ) );
 		}
 
 		// Put sticky posts at the top of the posts array
@@ -2730,24 +2754,15 @@
 
 			// Fetch sticky posts that weren't in the query results
 			if ( !empty($sticky_posts) ) {
-				$stickies__in = implode(',', array_map( 'absint', $sticky_posts ));
-				// honor post type(s) if not set to any
-				$stickies_where = '';
-				if ( 'any' != $post_type && '' != $post_type ) {
-					if ( is_array( $post_type ) ) {
-						$post_types = join( "', '", $post_type );
-					} else {
-						$post_types = $post_type;
-					}
-					$stickies_where = "AND $wpdb->posts.post_type IN ('" . $post_types . "')";
-				}
-
-				$stickies = $wpdb->get_results( "SELECT * FROM $wpdb->posts WHERE $wpdb->posts.ID IN ($stickies__in) $stickies_where" );
+				$stickies = get_posts( array(
+					'post__in' => $sticky_posts,
+					'post_type' => $post_type,
+					'post_status' => 'publish',
+					'nopaging' => true
+				) );
+
 				foreach ( $stickies as $sticky_post ) {
-					// Ignore sticky posts the current user cannot read or are not published.
-					if ( 'publish' != $sticky_post->post_status )
-						continue;
-					array_splice($this->posts, $sticky_offset, 0, array($sticky_post));
+					array_splice( $this->posts, $sticky_offset, 0, array( $sticky_post ) );
 					$sticky_offset++;
 				}
 			}
@@ -2756,33 +2771,49 @@
 		if ( !$q['suppress_filters'] )
 			$this->posts = apply_filters_ref_array('the_posts', array( $this->posts, &$this ) );
 
-		$this->post_count = count($this->posts);
-
-		// Always sanitize
-		foreach ( $this->posts as $i => $post ) {
-			$this->posts[$i] = sanitize_post( $post, 'raw' );
-		}
-
-		if ( $q['cache_results'] )
-			update_post_caches($this->posts, $post_type, $q['update_post_term_cache'], $q['update_post_meta_cache']);
-
-		if ( $this->post_count > 0 ) {
-			$this->post = $this->posts[0];
+		// Ensure that any posts added/modified via one of the filters above are
+		// of the type WP_Post and are filtered.
+		if ( $this->posts ) {
+			$this->post_count = count( $this->posts );
+
+			$this->posts = array_map( 'get_post', $this->posts );
+
+			if ( $q['cache_results'] )
+				update_post_caches($this->posts, $post_type, $q['update_post_term_cache'], $q['update_post_meta_cache']);
+
+			$this->post = reset( $this->posts );
+		} else {
+			$this->post_count = 0;
+			$this->posts = array();
 		}
 
 		return $this->posts;
 	}
 
+	/**
+	 * Set up the amount of found posts and the number of pages (if limit clause was used)
+	 * for the current query.
+	 *
+	 * @since 3.5.0
+	 * @access private
+	 */
 	function set_found_posts( $q, $limits ) {
 		global $wpdb;
 
-		if ( $q['no_found_rows'] || empty( $limits ) )
+		// Bail if posts is an empty array. Continue if posts is an empty string
+		// null, or false to accommodate caching plugins that fill posts later.
+		if ( $q['no_found_rows'] || ( is_array( $this->posts ) && ! $this->posts ) )
 			return;
 
-		$this->found_posts = $wpdb->get_var( apply_filters_ref_array( 'found_posts_query', array( 'SELECT FOUND_ROWS()', &$this ) ) );
+		if ( ! empty( $limits ) )
+			$this->found_posts = $wpdb->get_var( apply_filters_ref_array( 'found_posts_query', array( 'SELECT FOUND_ROWS()', &$this ) ) );
+		else
+			$this->found_posts = count( $this->posts );
+
 		$this->found_posts = apply_filters_ref_array( 'found_posts', array( $this->found_posts, &$this ) );
 
-		$this->max_num_pages = ceil( $this->found_posts / $q['posts_per_page'] );
+		if ( ! empty( $limits ) )
+			$this->max_num_pages = ceil( $this->found_posts / $q['posts_per_page'] );
 	}
 
 	/**
@@ -2791,7 +2822,7 @@
 	 * @since 1.5.0
 	 * @access public
 	 *
-	 * @return object Next post.
+	 * @return WP_Post Next post.
 	 */
 	function next_post() {
 
@@ -2935,7 +2966,7 @@
 	 * @param string $query URL query string.
 	 * @return array List of posts.
 	 */
-	function &query( $query ) {
+	function query( $query ) {
 		$this->init();
 		$this->query = $this->query_vars = wp_parse_args( $query );
 		return $this->get_posts();
@@ -2967,10 +2998,10 @@
 
 			if ( 'term_id' == $query['field'] )
 				$term = get_term( reset( $query['terms'] ), $query['taxonomy'] );
-			else
+			elseif ( $query['terms'] )
 				$term = get_term_by( $query['field'], reset( $query['terms'] ), $query['taxonomy'] );
 
-			if ( $term && ! is_wp_error($term) )  {
+			if ( ! empty( $term ) && ! is_wp_error( $term ) )  {
 				$this->queried_object = $term;
 				$this->queried_object_id = (int) $term->term_id;
 
@@ -2981,7 +3012,7 @@
 			$this->queried_object = get_post_type_object( $this->get('post_type') );
 		} elseif ( $this->is_posts_page ) {
 			$page_for_posts = get_option('page_for_posts');
-			$this->queried_object = get_page( $page_for_posts );
+			$this->queried_object = get_post( $page_for_posts );
 			$this->queried_object_id = (int) $this->queried_object->ID;
 		} elseif ( $this->is_singular && !is_null($this->post) ) {
 			$this->queried_object = $this->post;
@@ -3030,7 +3061,7 @@
 	}
 
 	/**
- 	 * Is the query for an archive page?
+ 	 * Is the query for an existing archive page?
  	 *
  	 * Month, Year, Category, Author, Post Type archive...
 	 *
@@ -3043,7 +3074,7 @@
 	}
 
 	/**
-	 * Is the query for a post type archive page?
+	 * Is the query for an existing post type archive page?
 	 *
 	 * @since 3.1.0
 	 *
@@ -3060,7 +3091,7 @@
 	}
 
 	/**
-	 * Is the query for an attachment page?
+	 * Is the query for an existing attachment page?
 	 *
 	 * @since 3.1.0
 	 *
@@ -3071,7 +3102,7 @@
 	}
 
 	/**
-	 * Is the query for an author archive page?
+	 * Is the query for an existing author archive page?
 	 *
 	 * If the $author parameter is specified, this function will additionally
 	 * check if the query is for one of the authors specified.
@@ -3103,7 +3134,7 @@
 	}
 
 	/**
-	 * Is the query for a category archive page?
+	 * Is the query for an existing category archive page?
 	 *
 	 * If the $category parameter is specified, this function will additionally
 	 * check if the query is for one of the categories specified.
@@ -3135,7 +3166,7 @@
 	}
 
 	/**
-	 * Is the query for a tag archive page?
+	 * Is the query for an existing tag archive page?
 	 *
 	 * If the $tag parameter is specified, this function will additionally
 	 * check if the query is for one of the tags specified.
@@ -3163,7 +3194,7 @@
 	}
 
 	/**
-	 * Is the query for a taxonomy archive page?
+	 * Is the query for an existing taxonomy archive page?
 	 *
 	 * If the $taxonomy parameter is specified, this function will additionally
 	 * check if the query is for that specific $taxonomy.
@@ -3191,8 +3222,13 @@
 		$tax_array = array_intersect( array_keys( $wp_taxonomies ), (array) $taxonomy );
 		$term_array = (array) $term;
 
-		if ( empty( $term ) ) // Only a Taxonomy provided
-			return isset( $queried_object->taxonomy ) && count( $tax_array ) && in_array( $queried_object->taxonomy, $tax_array );
+		// Check that the taxonomy matches.
+		if ( ! ( isset( $queried_object->taxonomy ) && count( $tax_array ) && in_array( $queried_object->taxonomy, $tax_array ) ) )
+			return false;
+
+		// Only a Taxonomy provided.
+		if ( empty( $term ) )
+			return true;
 
 		return isset( $queried_object->term_id ) &&
 			count( array_intersect(
@@ -3213,7 +3249,7 @@
 	}
 
 	/**
-	 * Is the query for a date archive?
+	 * Is the query for an existing date archive?
 	 *
 	 * @since 3.1.0
 	 *
@@ -3224,7 +3260,7 @@
 	}
 
 	/**
-	 * Is the query for a day archive?
+	 * Is the query for an existing day archive?
 	 *
 	 * @since 3.1.0
 	 *
@@ -3311,7 +3347,7 @@
 	}
 
 	/**
-	 * Is the query for a month archive?
+	 * Is the query for an existing month archive?
 	 *
 	 * @since 3.1.0
 	 *
@@ -3322,7 +3358,7 @@
 	}
 
 	/**
-	 * Is the query for a single page?
+	 * Is the query for an existing single page?
 	 *
 	 * If the $page parameter is specified, this function will additionally
 	 * check if the query is for one of the pages specified.
@@ -3401,7 +3437,7 @@
 	}
 
 	/**
-	 * Is the query for a single post?
+	 * Is the query for an existing single post?
 	 *
 	 * Works for any post type, except attachments and pages
 	 *
@@ -3438,7 +3474,7 @@
 	}
 
 	/**
-	 * Is the query for a single post of any post type (post, attachment, page, ... )?
+	 * Is the query for an existing single post of any post type (post, attachment, page, ... )?
 	 *
 	 * If the $post_types parameter is specified, this function will additionally
 	 * check if the query is for one of the Posts Types specified.
@@ -3483,7 +3519,7 @@
 	}
 
 	/**
-	 * Is the query for a specific year?
+	 * Is the query for an existing year archive?
 	 *
 	 * @since 3.1.0
 	 *
--- a/web/wp-includes/rewrite.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/rewrite.php	Wed Dec 19 17:46:52 2012 -0800
@@ -1525,8 +1525,11 @@
 		$home_path = parse_url( home_url() );
 		$robots_rewrite = ( empty( $home_path['path'] ) || '/' == $home_path['path'] ) ? array( 'robots\.txt$' => $this->index . '?robots=1' ) : array();
 
-		// Old feed files
-		$old_feed_files = array( '.*wp-(atom|rdf|rss|rss2|feed|commentsrss2)\.php$' => $this->index . '?feed=old' );
+		// Old feed and service files
+		$deprecated_files = array(
+			'.*wp-(atom|rdf|rss|rss2|feed|commentsrss2)\.php$' => $this->index . '?feed=old',
+			'.*wp-app\.php(/.*)?$' => $this->index . '?error=403',
+		);
 
 		// Registration rules
 		$registration_pages = array();
@@ -1585,9 +1588,9 @@
 
 		// Put them together.
 		if ( $this->use_verbose_page_rules )
-			$this->rules = array_merge($this->extra_rules_top, $robots_rewrite, $old_feed_files, $registration_pages, $root_rewrite, $comments_rewrite, $search_rewrite,  $author_rewrite, $date_rewrite, $page_rewrite, $post_rewrite, $this->extra_rules);
+			$this->rules = array_merge($this->extra_rules_top, $robots_rewrite, $deprecated_files, $registration_pages, $root_rewrite, $comments_rewrite, $search_rewrite,  $author_rewrite, $date_rewrite, $page_rewrite, $post_rewrite, $this->extra_rules);
 		else
-			$this->rules = array_merge($this->extra_rules_top, $robots_rewrite, $old_feed_files, $registration_pages, $root_rewrite, $comments_rewrite, $search_rewrite,  $author_rewrite, $date_rewrite, $post_rewrite, $page_rewrite, $this->extra_rules);
+			$this->rules = array_merge($this->extra_rules_top, $robots_rewrite, $deprecated_files, $registration_pages, $root_rewrite, $comments_rewrite, $search_rewrite,  $author_rewrite, $date_rewrite, $post_rewrite, $page_rewrite, $this->extra_rules);
 
 		do_action_ref_array('generate_rewrite_rules', array(&$this));
 		$this->rules = apply_filters('rewrite_rules_array', $this->rules);
@@ -1638,7 +1641,7 @@
 		if ( ! $this->using_permalinks() )
 			return '';
 
-		$site_root = parse_url(get_option('siteurl'));
+		$site_root = parse_url( site_url() );
 		if ( isset( $site_root['path'] ) )
 			$site_root = trailingslashit($site_root['path']);
 
@@ -1726,75 +1729,17 @@
 		<rewrite>
 			<rules>';
 		}
-		if ( !is_multisite() ) {
-			$rules .= '
-				<rule name="wordpress" patternSyntax="Wildcard">
-					<match url="*" />
-						<conditions>
-							<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
-							<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
-						</conditions>
-					<action type="Rewrite" url="index.php" />
-				</rule>';
-		} else {
-			if (is_subdomain_install()) {
-				$rules .= '
-				<rule name="wordpress - Rule 1" stopProcessing="true">
-					<match url="^index\.php$" ignoreCase="false" />
-					<action type="None" />
-				</rule>
-				<rule name="wordpress - Rule 2" stopProcessing="true">
-					<match url="^files/(.+)" ignoreCase="false" />
-					<action type="Rewrite" url="wp-includes/ms-files.php?file={R:1}" appendQueryString="false" />
-				</rule>
-				<rule name="wordpress - Rule 3" stopProcessing="true">
-					<match url="^" ignoreCase="false" />
-					<conditions logicalGrouping="MatchAny">
-						<add input="{REQUEST_FILENAME}" matchType="IsFile" ignoreCase="false" />
-						<add input="{REQUEST_FILENAME}" matchType="IsDirectory" ignoreCase="false" />
+
+		$rules .= '
+			<rule name="wordpress" patternSyntax="Wildcard">
+				<match url="*" />
+					<conditions>
+						<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
+						<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
 					</conditions>
-					<action type="None" />
-				</rule>
-				<rule name="wordpress - Rule 4" stopProcessing="true">
-					<match url="." ignoreCase="false" />
-					<action type="Rewrite" url="index.php" />
-				</rule>';
-			} else {
-				$rules .= '
-				<rule name="wordpress - Rule 1" stopProcessing="true">
-					<match url="^index\.php$" ignoreCase="false" />
-					<action type="None" />
-				</rule>
-				<rule name="wordpress - Rule 2" stopProcessing="true">
-					<match url="^([_0-9a-zA-Z-]+/)?files/(.+)" ignoreCase="false" />
-					<action type="Rewrite" url="wp-includes/ms-files.php?file={R:2}" appendQueryString="false" />
-				</rule>
-				<rule name="wordpress - Rule 3" stopProcessing="true">
-					<match url="^([_0-9a-zA-Z-]+/)?wp-admin$" ignoreCase="false" />
-					<action type="Redirect" url="{R:1}wp-admin/" redirectType="Permanent" />
-				</rule>
-				<rule name="wordpress - Rule 4" stopProcessing="true">
-					<match url="^" ignoreCase="false" />
-					<conditions logicalGrouping="MatchAny">
-						<add input="{REQUEST_FILENAME}" matchType="IsFile" ignoreCase="false" />
-						<add input="{REQUEST_FILENAME}" matchType="IsDirectory" ignoreCase="false" />
-					</conditions>
-					<action type="None" />
-				</rule>
-				<rule name="wordpress - Rule 5" stopProcessing="true">
-					<match url="^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*)" ignoreCase="false" />
-					<action type="Rewrite" url="{R:1}" />
-				</rule>
-				<rule name="wordpress - Rule 6" stopProcessing="true">
-					<match url="^([_0-9a-zA-Z-]+/)?(.*\.php)$" ignoreCase="false" />
-					<action type="Rewrite" url="{R:2}" />
-				</rule>
-				<rule name="wordpress - Rule 7" stopProcessing="true">
-					<match url="." ignoreCase="false" />
-					<action type="Rewrite" url="index.php" />
-				</rule>';
-			}
-		}
+				<action type="Rewrite" url="index.php" />
+			</rule>';
+
 		if ( $add_parent_tags ) {
 			$rules .= '
 			</rules>
@@ -1995,9 +1940,10 @@
 	 */
 	function set_permalink_structure($permalink_structure) {
 		if ( $permalink_structure != $this->permalink_structure ) {
+			$old_permalink_structure = $this->permalink_structure;
 			update_option('permalink_structure', $permalink_structure);
 			$this->init();
-			do_action('permalink_structure_changed', $this->permalink_structure, $permalink_structure);
+			do_action('permalink_structure_changed', $old_permalink_structure, $permalink_structure);
 		}
 	}
 
--- a/web/wp-includes/script-loader.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/script-loader.php	Wed Dec 19 17:46:52 2012 -0800
@@ -57,9 +57,14 @@
 	$scripts->default_version = get_bloginfo( 'version' );
 	$scripts->default_dirs = array('/wp-admin/js/', '/wp-includes/js/');
 
-	$suffix = defined('SCRIPT_DEBUG') && SCRIPT_DEBUG ? '.dev' : '';
+	$suffix = defined('SCRIPT_DEBUG') && SCRIPT_DEBUG ? '' : '.min';
 
-	$scripts->add( 'utils', "/wp-admin/js/utils$suffix.js" );
+	$scripts->add( 'utils', "/wp-includes/js/utils$suffix.js" );
+	did_action( 'init' ) && $scripts->localize( 'utils', 'userSettings', array(
+		'url' => (string) SITECOOKIEPATH,
+		'uid' => (string) get_current_user_id(),
+		'time' => (string) time(),
+	) );
 
 	$scripts->add( 'common', "/wp-admin/js/common$suffix.js", array('jquery', 'hoverIntent', 'utils'), false, 1 );
 	did_action( 'init' ) && $scripts->localize( 'common', 'commonL10n', array(
@@ -90,8 +95,6 @@
 
 	$scripts->add( 'wp-fullscreen', "/wp-admin/js/wp-fullscreen$suffix.js", array('jquery'), false, 1 );
 
-	$scripts->add( 'prototype', '/wp-includes/js/prototype.js', array(), '1.6.1');
-
 	$scripts->add( 'wp-ajax-response', "/wp-includes/js/wp-ajax-response$suffix.js", array('jquery'), false, 1 );
 	did_action( 'init' ) && $scripts->localize( 'wp-ajax-response', 'wpAjax', array(
 		'noPerm' => __('You do not have permission to do that.'),
@@ -105,62 +108,67 @@
 
 	$scripts->add( 'autosave', "/wp-includes/js/autosave$suffix.js", array('schedule', 'wp-ajax-response'), false, 1 );
 
-	$scripts->add( 'wp-lists', "/wp-includes/js/wp-lists$suffix.js", array('wp-ajax-response'), false, 1 );
+	$scripts->add( 'wp-lists', "/wp-includes/js/wp-lists$suffix.js", array( 'wp-ajax-response', 'jquery-color' ), false, 1 );
 
-	$scripts->add( 'scriptaculous-root', '/wp-includes/js/scriptaculous/wp-scriptaculous.js', array('prototype'), '1.8.3');
-	$scripts->add( 'scriptaculous-builder', '/wp-includes/js/scriptaculous/builder.js', array('scriptaculous-root'), '1.8.3');
-	$scripts->add( 'scriptaculous-dragdrop', '/wp-includes/js/scriptaculous/dragdrop.js', array('scriptaculous-builder', 'scriptaculous-effects'), '1.8.3');
-	$scripts->add( 'scriptaculous-effects', '/wp-includes/js/scriptaculous/effects.js', array('scriptaculous-root'), '1.8.3');
-	$scripts->add( 'scriptaculous-slider', '/wp-includes/js/scriptaculous/slider.js', array('scriptaculous-effects'), '1.8.3');
-	$scripts->add( 'scriptaculous-sound', '/wp-includes/js/scriptaculous/sound.js', array( 'scriptaculous-root' ), '1.8.3' );
-	$scripts->add( 'scriptaculous-controls', '/wp-includes/js/scriptaculous/controls.js', array('scriptaculous-root'), '1.8.3');
-	$scripts->add( 'scriptaculous', '', array('scriptaculous-dragdrop', 'scriptaculous-slider', 'scriptaculous-controls'), '1.8.3');
+	// WordPress no longer uses or bundles Prototype or script.aculo.us. These are now pulled from an external source.
+	$scripts->add( 'prototype', '//ajax.googleapis.com/ajax/libs/prototype/1.7.1.0/prototype.js', array(), '1.7.1');
+	$scripts->add( 'scriptaculous-root', '//ajax.googleapis.com/ajax/libs/scriptaculous/1.9.0/scriptaculous.js', array('prototype'), '1.9.0');
+	$scripts->add( 'scriptaculous-builder', '//ajax.googleapis.com/ajax/libs/scriptaculous/1.9.0/builder.js', array('scriptaculous-root'), '1.9.0');
+	$scripts->add( 'scriptaculous-dragdrop', '//ajax.googleapis.com/ajax/libs/scriptaculous/1.9.0/dragdrop.js', array('scriptaculous-builder', 'scriptaculous-effects'), '1.9.0');
+	$scripts->add( 'scriptaculous-effects', '//ajax.googleapis.com/ajax/libs/scriptaculous/1.9.0/effects.js', array('scriptaculous-root'), '1.9.0');
+	$scripts->add( 'scriptaculous-slider', '//ajax.googleapis.com/ajax/libs/scriptaculous/1.9.0/slider.js', array('scriptaculous-effects'), '1.9.0');
+	$scripts->add( 'scriptaculous-sound', '//ajax.googleapis.com/ajax/libs/scriptaculous/1.9.0/sound.js', array( 'scriptaculous-root' ), '1.9.0' );
+	$scripts->add( 'scriptaculous-controls', '//ajax.googleapis.com/ajax/libs/scriptaculous/1.9.0/controls.js', array('scriptaculous-root'), '1.9.0');
+	$scripts->add( 'scriptaculous', false, array('scriptaculous-dragdrop', 'scriptaculous-slider', 'scriptaculous-controls') );
 
 	// not used in core, replaced by Jcrop.js
 	$scripts->add( 'cropper', '/wp-includes/js/crop/cropper.js', array('scriptaculous-dragdrop') );
 
-	$scripts->add( 'jquery', '/wp-includes/js/jquery/jquery.js', array(), '1.7.2' );
+	$scripts->add( 'jquery', '/wp-includes/js/jquery/jquery.js', array(), '1.8.3' );
 
 	// full jQuery UI
-	$scripts->add( 'jquery-ui-core', '/wp-includes/js/jquery/ui/jquery.ui.core.min.js', array('jquery'), '1.8.20', 1 );
-	$scripts->add( 'jquery-effects-core', '/wp-includes/js/jquery/ui/jquery.effects.core.min.js', array('jquery'), '1.8.20', 1 );
+	$scripts->add( 'jquery-ui-core', '/wp-includes/js/jquery/ui/jquery.ui.core.min.js', array('jquery'), '1.9.2', 1 );
+	$scripts->add( 'jquery-effects-core', '/wp-includes/js/jquery/ui/jquery.ui.effect.min.js', array('jquery'), '1.9.2', 1 );
 
-	$scripts->add( 'jquery-effects-blind', '/wp-includes/js/jquery/ui/jquery.effects.blind.min.js', array('jquery-effects-core'), '1.8.20', 1 );
-	$scripts->add( 'jquery-effects-bounce', '/wp-includes/js/jquery/ui/jquery.effects.bounce.min.js', array('jquery-effects-core'), '1.8.20', 1 );
-	$scripts->add( 'jquery-effects-clip', '/wp-includes/js/jquery/ui/jquery.effects.clip.min.js', array('jquery-effects-core'), '1.8.20', 1 );
-	$scripts->add( 'jquery-effects-drop', '/wp-includes/js/jquery/ui/jquery.effects.drop.min.js', array('jquery-effects-core'), '1.8.20', 1 );
-	$scripts->add( 'jquery-effects-explode', '/wp-includes/js/jquery/ui/jquery.effects.explode.min.js', array('jquery-effects-core'), '1.8.20', 1 );
-	$scripts->add( 'jquery-effects-fade', '/wp-includes/js/jquery/ui/jquery.effects.fade.min.js', array('jquery-effects-core'), '1.8.20', 1 );
-	$scripts->add( 'jquery-effects-fold', '/wp-includes/js/jquery/ui/jquery.effects.fold.min.js', array('jquery-effects-core'), '1.8.20', 1 );
-	$scripts->add( 'jquery-effects-highlight', '/wp-includes/js/jquery/ui/jquery.effects.highlight.min.js', array('jquery-effects-core'), '1.8.20', 1 );
-	$scripts->add( 'jquery-effects-pulsate', '/wp-includes/js/jquery/ui/jquery.effects.pulsate.min.js', array('jquery-effects-core'), '1.8.20', 1 );
-	$scripts->add( 'jquery-effects-scale', '/wp-includes/js/jquery/ui/jquery.effects.scale.min.js', array('jquery-effects-core'), '1.8.20', 1 );
-	$scripts->add( 'jquery-effects-shake', '/wp-includes/js/jquery/ui/jquery.effects.shake.min.js', array('jquery-effects-core'), '1.8.20', 1 );
-	$scripts->add( 'jquery-effects-slide', '/wp-includes/js/jquery/ui/jquery.effects.slide.min.js', array('jquery-effects-core'), '1.8.20', 1 );
-	$scripts->add( 'jquery-effects-transfer', '/wp-includes/js/jquery/ui/jquery.effects.transfer.min.js', array('jquery-effects-core'), '1.8.20', 1 );
+	$scripts->add( 'jquery-effects-blind', '/wp-includes/js/jquery/ui/jquery.ui.effect-blind.min.js', array('jquery-effects-core'), '1.9.2', 1 );
+	$scripts->add( 'jquery-effects-bounce', '/wp-includes/js/jquery/ui/jquery.ui.effect-bounce.min.js', array('jquery-effects-core'), '1.9.2', 1 );
+	$scripts->add( 'jquery-effects-clip', '/wp-includes/js/jquery/ui/jquery.ui.effect-clip.min.js', array('jquery-effects-core'), '1.9.2', 1 );
+	$scripts->add( 'jquery-effects-drop', '/wp-includes/js/jquery/ui/jquery.ui.effect-drop.min.js', array('jquery-effects-core'), '1.9.2', 1 );
+	$scripts->add( 'jquery-effects-explode', '/wp-includes/js/jquery/ui/jquery.ui.effect-explode.min.js', array('jquery-effects-core'), '1.9.2', 1 );
+	$scripts->add( 'jquery-effects-fade', '/wp-includes/js/jquery/ui/jquery.ui.effect-fade.min.js', array('jquery-effects-core'), '1.9.2', 1 );
+	$scripts->add( 'jquery-effects-fold', '/wp-includes/js/jquery/ui/jquery.ui.effect-fold.min.js', array('jquery-effects-core'), '1.9.2', 1 );
+	$scripts->add( 'jquery-effects-highlight', '/wp-includes/js/jquery/ui/jquery.ui.effect-highlight.min.js', array('jquery-effects-core'), '1.9.2', 1 );
+	$scripts->add( 'jquery-effects-pulsate', '/wp-includes/js/jquery/ui/jquery.ui.effect-pulsate.min.js', array('jquery-effects-core'), '1.9.2', 1 );
+	$scripts->add( 'jquery-effects-scale', '/wp-includes/js/jquery/ui/jquery.ui.effect-scale.min.js', array('jquery-effects-core'), '1.9.2', 1 );
+	$scripts->add( 'jquery-effects-shake', '/wp-includes/js/jquery/ui/jquery.ui.effect-shake.min.js', array('jquery-effects-core'), '1.9.2', 1 );
+	$scripts->add( 'jquery-effects-slide', '/wp-includes/js/jquery/ui/jquery.ui.effect-slide.min.js', array('jquery-effects-core'), '1.9.2', 1 );
+	$scripts->add( 'jquery-effects-transfer', '/wp-includes/js/jquery/ui/jquery.ui.effect-transfer.min.js', array('jquery-effects-core'), '1.9.2', 1 );
 
-	$scripts->add( 'jquery-ui-accordion', '/wp-includes/js/jquery/ui/jquery.ui.accordion.min.js', array('jquery-ui-core', 'jquery-ui-widget'), '1.8.20', 1 );
-	$scripts->add( 'jquery-ui-autocomplete', '/wp-includes/js/jquery/ui/jquery.ui.autocomplete.min.js', array('jquery-ui-core', 'jquery-ui-widget', 'jquery-ui-position'), '1.8.20', 1 );
-	$scripts->add( 'jquery-ui-button', '/wp-includes/js/jquery/ui/jquery.ui.button.min.js', array('jquery-ui-core', 'jquery-ui-widget'), '1.8.20', 1 );
-	$scripts->add( 'jquery-ui-datepicker', '/wp-includes/js/jquery/ui/jquery.ui.datepicker.min.js', array('jquery-ui-core'), '1.8.20', 1 );
-	$scripts->add( 'jquery-ui-dialog', '/wp-includes/js/jquery/ui/jquery.ui.dialog.min.js', array('jquery-ui-resizable', 'jquery-ui-draggable', 'jquery-ui-button', 'jquery-ui-position'), '1.8.20', 1 );
-	$scripts->add( 'jquery-ui-draggable', '/wp-includes/js/jquery/ui/jquery.ui.draggable.min.js', array('jquery-ui-core', 'jquery-ui-mouse'), '1.8.20', 1 );
-	$scripts->add( 'jquery-ui-droppable', '/wp-includes/js/jquery/ui/jquery.ui.droppable.min.js', array('jquery-ui-draggable'), '1.8.20', 1 );
-	$scripts->add( 'jquery-ui-mouse', '/wp-includes/js/jquery/ui/jquery.ui.mouse.min.js', array('jquery-ui-widget'), '1.8.20', 1 );
-	$scripts->add( 'jquery-ui-position', '/wp-includes/js/jquery/ui/jquery.ui.position.min.js', array('jquery'), '1.8.20', 1 );
-	$scripts->add( 'jquery-ui-progressbar', '/wp-includes/js/jquery/ui/jquery.ui.progressbar.min.js', array('jquery-ui-widget'), '1.8.20', 1 );
-	$scripts->add( 'jquery-ui-resizable', '/wp-includes/js/jquery/ui/jquery.ui.resizable.min.js', array('jquery-ui-core', 'jquery-ui-mouse'), '1.8.20', 1 );
-	$scripts->add( 'jquery-ui-selectable', '/wp-includes/js/jquery/ui/jquery.ui.selectable.min.js', array('jquery-ui-core', 'jquery-ui-mouse'), '1.8.20', 1 );
-	$scripts->add( 'jquery-ui-slider', '/wp-includes/js/jquery/ui/jquery.ui.slider.min.js', array('jquery-ui-core', 'jquery-ui-mouse'), '1.8.20', 1 );
-	$scripts->add( 'jquery-ui-sortable', '/wp-includes/js/jquery/ui/jquery.ui.sortable.min.js', array('jquery-ui-core', 'jquery-ui-mouse'), '1.8.20', 1 );
-	$scripts->add( 'jquery-ui-tabs', '/wp-includes/js/jquery/ui/jquery.ui.tabs.min.js', array('jquery-ui-core', 'jquery-ui-widget'), '1.8.20', 1 );
-	$scripts->add( 'jquery-ui-widget', '/wp-includes/js/jquery/ui/jquery.ui.widget.min.js', array('jquery'), '1.8.20', 1 );
+	$scripts->add( 'jquery-ui-accordion', '/wp-includes/js/jquery/ui/jquery.ui.accordion.min.js', array('jquery-ui-core', 'jquery-ui-widget'), '1.9.2', 1 );
+	$scripts->add( 'jquery-ui-autocomplete', '/wp-includes/js/jquery/ui/jquery.ui.autocomplete.min.js', array('jquery-ui-core', 'jquery-ui-widget', 'jquery-ui-position', 'jquery-ui-menu'), '1.9.2', 1 );
+	$scripts->add( 'jquery-ui-button', '/wp-includes/js/jquery/ui/jquery.ui.button.min.js', array('jquery-ui-core', 'jquery-ui-widget'), '1.9.2', 1 );
+	$scripts->add( 'jquery-ui-datepicker', '/wp-includes/js/jquery/ui/jquery.ui.datepicker.min.js', array('jquery-ui-core'), '1.9.2', 1 );
+	$scripts->add( 'jquery-ui-dialog', '/wp-includes/js/jquery/ui/jquery.ui.dialog.min.js', array('jquery-ui-resizable', 'jquery-ui-draggable', 'jquery-ui-button', 'jquery-ui-position'), '1.9.2', 1 );
+	$scripts->add( 'jquery-ui-draggable', '/wp-includes/js/jquery/ui/jquery.ui.draggable.min.js', array('jquery-ui-core', 'jquery-ui-mouse'), '1.9.2', 1 );
+	$scripts->add( 'jquery-ui-droppable', '/wp-includes/js/jquery/ui/jquery.ui.droppable.min.js', array('jquery-ui-draggable'), '1.9.2', 1 );
+	$scripts->add( 'jquery-ui-menu', '/wp-includes/js/jquery/ui/jquery.ui.menu.min.js', array( 'jquery-ui-core', 'jquery-ui-widget', 'jquery-ui-position' ), '1.9.2', 1 );
+	$scripts->add( 'jquery-ui-mouse', '/wp-includes/js/jquery/ui/jquery.ui.mouse.min.js', array('jquery-ui-widget'), '1.9.2', 1 );
+	$scripts->add( 'jquery-ui-position', '/wp-includes/js/jquery/ui/jquery.ui.position.min.js', array('jquery'), '1.9.2', 1 );
+	$scripts->add( 'jquery-ui-progressbar', '/wp-includes/js/jquery/ui/jquery.ui.progressbar.min.js', array('jquery-ui-widget'), '1.9.2', 1 );
+	$scripts->add( 'jquery-ui-resizable', '/wp-includes/js/jquery/ui/jquery.ui.resizable.min.js', array('jquery-ui-core', 'jquery-ui-mouse'), '1.9.2', 1 );
+	$scripts->add( 'jquery-ui-selectable', '/wp-includes/js/jquery/ui/jquery.ui.selectable.min.js', array('jquery-ui-core', 'jquery-ui-mouse'), '1.9.2', 1 );
+	$scripts->add( 'jquery-ui-slider', '/wp-includes/js/jquery/ui/jquery.ui.slider.min.js', array('jquery-ui-core', 'jquery-ui-mouse'), '1.9.2', 1 );
+	$scripts->add( 'jquery-ui-sortable', '/wp-includes/js/jquery/ui/jquery.ui.sortable.min.js', array('jquery-ui-core', 'jquery-ui-mouse'), '1.9.2', 1 );
+	$scripts->add( 'jquery-ui-spinner', '/wp-includes/js/jquery/ui/jquery.ui.spinner.min.js', array( 'jquery-ui-core', 'jquery-ui-widget', 'jquery-ui-button' ), '1.9.2', 1 );
+	$scripts->add( 'jquery-ui-tabs', '/wp-includes/js/jquery/ui/jquery.ui.tabs.min.js', array('jquery-ui-core', 'jquery-ui-widget'), '1.9.2', 1 );
+	$scripts->add( 'jquery-ui-tooltip', '/wp-includes/js/jquery/ui/jquery.ui.tooltip.min.js', array( 'jquery-ui-core', 'jquery-ui-widget', 'jquery-ui-position' ), '1.9.2', 1 );
+	$scripts->add( 'jquery-ui-widget', '/wp-includes/js/jquery/ui/jquery.ui.widget.min.js', array('jquery'), '1.9.2', 1 );
 
 	// deprecated, not used in core, most functionality is included in jQuery 1.3
 	$scripts->add( 'jquery-form', "/wp-includes/js/jquery/jquery.form$suffix.js", array('jquery'), '2.73', 1 );
 
 	// jQuery plugins
-	$scripts->add( 'jquery-color', "/wp-includes/js/jquery/jquery.color$suffix.js", array('jquery'), '2.0-4561m', 1 );
+	$scripts->add( 'jquery-color', "/wp-includes/js/jquery/jquery.color.min.js", array('jquery'), '2.1.0', 1 );
 	$scripts->add( 'suggest', "/wp-includes/js/jquery/suggest$suffix.js", array('jquery'), '1.1-20110113', 1 );
 	$scripts->add( 'schedule', '/wp-includes/js/jquery/jquery.schedule.js', array('jquery'), '20m', 1 );
 	$scripts->add( 'jquery-query', "/wp-includes/js/jquery/jquery.query.js", array('jquery'), '2.1.7', 1 );
@@ -168,8 +176,9 @@
 	$scripts->add( 'jquery-hotkeys', "/wp-includes/js/jquery/jquery.hotkeys$suffix.js", array('jquery'), '0.0.2m', 1 );
 	$scripts->add( 'jquery-table-hotkeys', "/wp-includes/js/jquery/jquery.table-hotkeys$suffix.js", array('jquery', 'jquery-hotkeys'), false, 1 );
 	$scripts->add( 'jquery-touch-punch', "/wp-includes/js/jquery/jquery.ui.touch-punch.js", array('jquery-ui-widget', 'jquery-ui-mouse'), '0.2.2', 1 );
+	$scripts->add( 'jquery-masonry', "/wp-includes/js/jquery/jquery.masonry.min.js", array('jquery'), '2.1.05', 1 );
 
-	$scripts->add( 'thickbox', "/wp-includes/js/thickbox/thickbox.js", array('jquery'), '3.1-20111117', 1 );
+	$scripts->add( 'thickbox', "/wp-includes/js/thickbox/thickbox.js", array('jquery'), '3.1-20121105', 1 );
 	did_action( 'init' ) && $scripts->localize( 'thickbox', 'thickboxL10n', array(
 			'next' => __('Next &gt;'),
 			'prev' => __('&lt; Prev'),
@@ -181,7 +190,7 @@
 			'closeImage' => includes_url('js/thickbox/tb-close.png')
 	) );
 
-	$scripts->add( 'jcrop', "/wp-includes/js/jcrop/jquery.Jcrop$suffix.js", array('jquery'), '0.9.8-20110113');
+	$scripts->add( 'jcrop', "/wp-includes/js/jcrop/jquery.Jcrop.min.js", array('jquery'), '0.9.10');
 
 	$scripts->add( 'swfobject', "/wp-includes/js/swfobject.js", array(), '2.2-20120417');
 
@@ -217,7 +226,7 @@
 		'error_uploading' => __('&#8220;%s&#8221; has failed to upload.')
 	);
 
-	$scripts->add( 'plupload', '/wp-includes/js/plupload/plupload.js', '1.5.4' );
+	$scripts->add( 'plupload', '/wp-includes/js/plupload/plupload.js', array(), '1.5.4' );
 	$scripts->add( 'plupload-html5', '/wp-includes/js/plupload/plupload.html5.js', array('plupload'), '1.5.4' );
 	$scripts->add( 'plupload-flash', '/wp-includes/js/plupload/plupload.flash.js', array('plupload'), '1.5.4' );
 	$scripts->add( 'plupload-silverlight', '/wp-includes/js/plupload/plupload.silverlight.js', array('plupload'), '1.5.4' );
@@ -229,7 +238,7 @@
 	$scripts->add( 'plupload-handlers', "/wp-includes/js/plupload/handlers$suffix.js", array('plupload-all', 'jquery') );
 	did_action( 'init' ) && $scripts->localize( 'plupload-handlers', 'pluploadL10n', $uploader_l10n );
 
-	$scripts->add( 'wp-plupload', "/wp-includes/js/plupload/wp-plupload$suffix.js", array('plupload-all', 'jquery', 'json2') );
+	$scripts->add( 'wp-plupload', "/wp-includes/js/plupload/wp-plupload$suffix.js", array('plupload-all', 'jquery', 'json2', 'media-models'), false, 1 );
 	did_action( 'init' ) && $scripts->localize( 'wp-plupload', 'pluploadL10n', $uploader_l10n );
 
 	// keep 'swfupload' for back-compat.
@@ -252,6 +261,9 @@
 
 	$scripts->add( 'json2', "/wp-includes/js/json2$suffix.js", array(), '2011-02-23');
 
+	$scripts->add( 'underscore', '/wp-includes/js/underscore.min.js', array(), '1.4.0', 1 );
+	$scripts->add( 'backbone', '/wp-includes/js/backbone.min.js', array('underscore','jquery'), '0.9.2', 1 );
+
 	$scripts->add( 'imgareaselect', "/wp-includes/js/imgareaselect/jquery.imgareaselect$suffix.js", array('jquery'), '0.9.8', 1 );
 
 	$scripts->add( 'password-strength-meter', "/wp-admin/js/password-strength-meter$suffix.js", array('jquery'), false, 1 );
@@ -291,7 +303,7 @@
 		'type' => 'characters' == _x( 'words', 'word count: words or characters?' ) ? 'c' : 'w',
 	) );
 
-	$scripts->add( 'media-upload', "/wp-admin/js/media-upload$suffix.js", array( 'thickbox' ), false, 1 );
+	$scripts->add( 'media-upload', "/wp-admin/js/media-upload$suffix.js", array( 'thickbox', 'shortcode' ), false, 1 );
 
 	$scripts->add( 'hoverIntent', "/wp-includes/js/hoverIntent$suffix.js", array('jquery'), 'r6', 1 );
 
@@ -306,8 +318,26 @@
 		'cancel'    => __( 'Cancel' ),
 		'close'     => __( 'Close' ),
 		'cheatin'   => __( 'Cheatin&#8217; uh?' ),
+
+		// Used for overriding the file types allowed in plupload.
+		'allowedFiles' => __( 'Allowed Files' ),
 	) );
 
+	$scripts->add( 'shortcode', "/wp-includes/js/shortcode$suffix.js", array( 'underscore' ), false, 1 );
+	$scripts->add( 'media-models', "/wp-includes/js/media-models$suffix.js", array( 'backbone', 'jquery' ), false, 1 );
+	did_action( 'init' ) && $scripts->localize( 'media-models', '_wpMediaModelsL10n', array(
+		'settings' => array(
+			'ajaxurl' => admin_url( 'admin-ajax.php', 'relative' ),
+			'post' => array( 'id' => 0 ),
+		),
+	) );
+
+	// To enqueue media-views or media-editor, call wp_enqueue_media().
+	// Both rely on numerous settings, styles, and templates to operate correctly.
+	$scripts->add( 'media-views',  "/wp-includes/js/media-views$suffix.js",  array( 'utils', 'media-models', 'wp-plupload', 'jquery-ui-sortable' ), false, 1 );
+	$scripts->add( 'media-editor', "/wp-includes/js/media-editor$suffix.js", array( 'shortcode', 'media-views' ), false, 1 );
+	$scripts->add( 'mce-view', "/wp-includes/js/mce-view$suffix.js", array( 'shortcode', 'media-models' ), false, 1 );
+
 	if ( is_admin() ) {
 		$scripts->add( 'ajaxcat', "/wp-admin/js/cat$suffix.js", array( 'wp-lists' ) );
 		$scripts->add_data( 'ajaxcat', 'group', 1 );
@@ -361,9 +391,9 @@
 			'comma' => _x( ',', 'tag delimiter' ),
 		) );
 
-		$scripts->add( 'link', "/wp-admin/js/link$suffix.js", array('wp-lists', 'postbox'), false, 1 );
+		$scripts->add( 'link', "/wp-admin/js/link$suffix.js", array( 'wp-lists', 'postbox' ), false, 1 );
 
-		$scripts->add( 'comment', "/wp-admin/js/comment$suffix.js", array('jquery') );
+		$scripts->add( 'comment', "/wp-admin/js/comment$suffix.js", array( 'jquery', 'postbox' ) );
 		$scripts->add_data( 'comment', 'group', 1 );
 		did_action( 'init' ) && $scripts->localize( 'comment', 'commentL10n', array(
 			'submittedOn' => __('Submitted on:')
@@ -399,6 +429,15 @@
 
 		$scripts->add( 'farbtastic', '/wp-admin/js/farbtastic.js', array('jquery'), '1.2' );
 
+		$scripts->add( 'iris', '/wp-admin/js/iris.min.js', array( 'jquery-ui-draggable', 'jquery-ui-slider', 'jquery-touch-punch' ), false, 1 );
+		$scripts->add( 'wp-color-picker', "/wp-admin/js/color-picker$suffix.js", array( 'iris' ), false, 1 );
+		did_action( 'init' ) && $scripts->localize( 'wp-color-picker', 'wpColorPickerL10n', array(
+			'clear' => __( 'Clear' ),
+			'defaultString' => __( 'Default' ),
+			'pick' => __( 'Select Color' ),
+			'current' => __( 'Current Color' ),
+		) );
+
 		$scripts->add( 'dashboard', "/wp-admin/js/dashboard$suffix.js", array( 'jquery', 'admin-comments', 'postbox' ), false, 1 );
 
 		$scripts->add( 'list-revisions', "/wp-includes/js/wp-list-revisions$suffix.js" );
@@ -419,14 +458,15 @@
 		) );
 
 		// Navigation Menus
-		$scripts->add( 'nav-menu', "/wp-admin/js/nav-menu$suffix.js", array('jquery-ui-sortable') );
+		$scripts->add( 'nav-menu', "/wp-admin/js/nav-menu$suffix.js", array( 'jquery-ui-sortable', 'jquery-ui-draggable', 'jquery-ui-droppable', 'wp-lists', 'postbox' ) );
 		did_action( 'init' ) && $scripts->localize( 'nav-menu', 'navMenuL10n', array(
 			'noResultsFound' => _x('No results found.', 'search results'),
 			'warnDeleteMenu' => __( "You are about to permanently delete this menu. \n 'Cancel' to stop, 'OK' to delete." ),
 			'saveAlert' => __('The changes you made will be lost if you navigate away from this page.')
 		) );
 
-		$scripts->add( 'custom-background', "/wp-admin/js/custom-background$suffix.js", array('farbtastic'), false, 1 );
+		$scripts->add( 'custom-header', "/wp-admin/js/custom-header.js", array( 'jquery-masonry' ), false, 1 );
+		$scripts->add( 'custom-background', "/wp-admin/js/custom-background$suffix.js", array( 'wp-color-picker', 'media-views' ), false, 1 );
 		$scripts->add( 'media-gallery', "/wp-admin/js/media-gallery$suffix.js", array('jquery'), false, 1 );
 	}
 }
@@ -457,10 +497,10 @@
 	$styles->text_direction = function_exists( 'is_rtl' ) && is_rtl() ? 'rtl' : 'ltr';
 	$styles->default_dirs = array('/wp-admin/', '/wp-includes/css/');
 
-	$suffix = defined('SCRIPT_DEBUG') && SCRIPT_DEBUG ? '.dev' : '';
+	$suffix = defined('SCRIPT_DEBUG') && SCRIPT_DEBUG ? '' : '.min';
 
-	$rtl_styles = array( 'wp-admin', 'ie', 'media', 'admin-bar', 'wplink', 'customize-controls' );
-	// Any rtl stylesheets that don't have a .dev version for ltr
+	$rtl_styles = array( 'wp-admin', 'ie', 'media', 'admin-bar', 'customize-controls', 'media-views', 'wp-color-picker' );
+	// Any rtl stylesheets that don't have a .min version
 	$no_suffix = array( 'farbtastic' );
 
 	$styles->add( 'wp-admin', "/wp-admin/css/wp-admin$suffix.css" );
@@ -469,23 +509,26 @@
 	$styles->add_data( 'ie', 'conditional', 'lte IE 7' );
 
 	// Register "meta" stylesheet for admin colors. All colors-* style sheets should have the same version string.
-	$styles->add( 'colors', true, array('wp-admin') );
+	$styles->add( 'colors', true, array('wp-admin', 'buttons') );
 
 	// do not refer to these directly, the right one is queued by the above "meta" colors handle
-	$styles->add( 'colors-fresh', "/wp-admin/css/colors-fresh$suffix.css", array('wp-admin') );
-	$styles->add( 'colors-classic', "/wp-admin/css/colors-classic$suffix.css", array('wp-admin') );
+	$styles->add( 'colors-fresh', "/wp-admin/css/colors-fresh$suffix.css", array('wp-admin', 'buttons') );
+	$styles->add( 'colors-classic', "/wp-admin/css/colors-classic$suffix.css", array('wp-admin', 'buttons') );
 
 	$styles->add( 'media', "/wp-admin/css/media$suffix.css" );
-	$styles->add( 'install', "/wp-admin/css/install$suffix.css" );
-	$styles->add( 'thickbox', '/wp-includes/js/thickbox/thickbox.css' );
+	$styles->add( 'install', "/wp-admin/css/install$suffix.css", array('buttons') );
+	$styles->add( 'thickbox', '/wp-includes/js/thickbox/thickbox.css', array(), '20121105' );
 	$styles->add( 'farbtastic', '/wp-admin/css/farbtastic.css', array(), '1.3u1' );
-	$styles->add( 'jcrop', '/wp-includes/js/jcrop/jquery.Jcrop.css', array(), '0.9.8' );
+	$styles->add( 'wp-color-picker', "/wp-admin/css/color-picker$suffix.css" );
+	$styles->add( 'jcrop', "/wp-includes/js/jcrop/jquery.Jcrop.min.css", array(), '0.9.10' );
 	$styles->add( 'imgareaselect', '/wp-includes/js/imgareaselect/imgareaselect.css', array(), '0.9.8' );
 	$styles->add( 'admin-bar', "/wp-includes/css/admin-bar$suffix.css" );
 	$styles->add( 'wp-jquery-ui-dialog', "/wp-includes/css/jquery-ui-dialog$suffix.css" );
 	$styles->add( 'editor-buttons', "/wp-includes/css/editor$suffix.css" );
 	$styles->add( 'wp-pointer', "/wp-includes/css/wp-pointer$suffix.css" );
 	$styles->add( 'customize-controls', "/wp-admin/css/customize-controls$suffix.css", array( 'wp-admin', 'colors', 'ie' ) );
+	$styles->add( 'media-views', "/wp-includes/css/media-views$suffix.css", array( 'buttons' ) );
+	$styles->add( 'buttons', "/wp-includes/css/buttons$suffix.css" );
 
 	foreach ( $rtl_styles as $rtl_style ) {
 		$styles->add_data( $rtl_style, 'rtl', true );
@@ -503,10 +546,10 @@
  * @return array Reordered array, if needed.
  */
 function wp_prototype_before_jquery( $js_array ) {
-	if ( false === $jquery = array_search( 'jquery', $js_array, true ) )
+	if ( false === $prototype = array_search( 'prototype', $js_array, true ) )
 		return $js_array;
 
-	if ( false === $prototype = array_search( 'prototype', $js_array, true ) )
+	if ( false === $jquery = array_search( 'jquery', $js_array, true ) )
 		return $js_array;
 
 	if ( $prototype < $jquery )
@@ -572,7 +615,7 @@
 		$url = $color->url;
 
 		if ( defined('SCRIPT_DEBUG') && SCRIPT_DEBUG )
-			$url = preg_replace('/.css$|.css(?=\?)/', '.dev.css', $url);
+			$url = preg_replace( '/.min.css$|.min.css(?=\?)/', '.css', $url );
 
 		if ( isset($parsed['query']) && $parsed['query'] ) {
 			wp_parse_str( $parsed['query'], $qv );
@@ -646,7 +689,7 @@
 	if ( $zip && defined('ENFORCE_GZIP') && ENFORCE_GZIP )
 		$zip = 'gzip';
 
-	if ( !empty($wp_scripts->concat) ) {
+	if ( $concat = trim( $wp_scripts->concat, ', ' ) ) {
 
 		if ( !empty($wp_scripts->print_code) ) {
 			echo "\n<script type='text/javascript'>\n";
@@ -656,7 +699,10 @@
 			echo "</script>\n";
 		}
 
-		$src = $wp_scripts->base_url . "/wp-admin/load-scripts.php?c={$zip}&load=" . trim($wp_scripts->concat, ', ') . '&ver=' . $wp_scripts->default_version;
+		$concat = str_split( $concat, 128 );
+		$concat = 'load[]=' . implode( '&load[]=', $concat );
+
+		$src = $wp_scripts->base_url . "/wp-admin/load-scripts.php?c={$zip}&" . $concat . '&ver=' . $wp_scripts->default_version;
 		echo "<script type='text/javascript' src='" . esc_attr($src) . "'></script>\n";
 	}
 
--- a/web/wp-includes/shortcodes.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/shortcodes.php	Wed Dec 19 17:46:52 2012 -0800
@@ -177,11 +177,12 @@
 	$tagregexp = join( '|', array_map('preg_quote', $tagnames) );
 
 	// WARNING! Do not change this regex without changing do_shortcode_tag() and strip_shortcode_tag()
+	// Also, see shortcode_unautop() and shortcode.js.
 	return
 		  '\\['                              // Opening bracket
 		. '(\\[?)'                           // 1: Optional second opening bracket for escaping shortcodes: [[tag]]
 		. "($tagregexp)"                     // 2: Shortcode name
-		. '\\b'                              // Word boundary
+		. '(?![\\w-])'                       // Not followed by word character or hyphen
 		. '('                                // 3: Unroll the loop: Inside the opening shortcode tag
 		.     '[^\\]\\/]*'                   // Not a closing bracket or forward slash
 		.     '(?:'
--- a/web/wp-includes/taxonomy.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/taxonomy.php	Wed Dec 19 17:46:52 2012 -0800
@@ -47,6 +47,7 @@
 		'rewrite' => $rewrite['category'],
 		'public' => true,
 		'show_ui' => true,
+		'show_admin_column' => true,
 		'_builtin' => true,
 	) );
 
@@ -56,6 +57,7 @@
 		'rewrite' => $rewrite['post_tag'],
 		'public' => true,
 		'show_ui' => true,
+		'show_admin_column' => true,
 		'_builtin' => true,
 	) );
 
@@ -89,6 +91,12 @@
 			'add_or_remove_items' => null,
 			'choose_from_most_used' => null,
 		),
+		'capabilities' => array(
+			'manage_terms' => 'manage_links',
+			'edit_terms'   => 'manage_links',
+			'delete_terms' => 'manage_links',
+			'assign_terms' => 'manage_links',
+		),
 		'query_var' => false,
 		'rewrite' => false,
 		'public' => false,
@@ -301,6 +309,7 @@
  * @param string $taxonomy Name of taxonomy object
  * @param array|string $object_type Name of the object type for the taxonomy object.
  * @param array|string $args See above description for the two keys values.
+ * @return null|WP_Error WP_Error if errors, otherwise null.
  */
 function register_taxonomy( $taxonomy, $object_type, $args = array() ) {
 	global $wp_taxonomies, $wp;
@@ -322,10 +331,14 @@
 					);
 	$args = wp_parse_args($args, $defaults);
 
+	if ( strlen( $taxonomy ) > 32 )
+		return new WP_Error( 'taxonomy_too_long', __( 'Taxonomies cannot exceed 32 characters in length' ) );
+
 	if ( false !== $args['query_var'] && !empty($wp) ) {
 		if ( true === $args['query_var'] )
 			$args['query_var'] = $taxonomy;
-		$args['query_var'] = sanitize_title_with_dashes($args['query_var']);
+		else
+			$args['query_var'] = sanitize_title_with_dashes($args['query_var']);
 		$wp->add_query_var($args['query_var']);
 	}
 
@@ -651,23 +664,26 @@
 		$join = '';
 		$where = array();
 		$i = 0;
-
-		foreach ( $this->queries as $query ) {
+		$count = count( $this->queries );
+
+		foreach ( $this->queries as $index => $query ) {
 			$this->clean_query( $query );
 
-			if ( is_wp_error( $query ) ) {
+			if ( is_wp_error( $query ) )
 				return self::$no_results;
-			}
 
 			extract( $query );
 
 			if ( 'IN' == $operator ) {
 
 				if ( empty( $terms ) ) {
-					if ( 'OR' == $this->relation )
+					if ( 'OR' == $this->relation ) {
+						if ( ( $index + 1 === $count ) && empty( $where ) )
+							return self::$no_results;
 						continue;
-					else
+					} else {
 						return self::$no_results;
+					}
 				}
 
 				$terms = implode( ',', $terms );
@@ -711,7 +727,7 @@
 			$i++;
 		}
 
-		if ( !empty( $where ) )
+		if ( ! empty( $where ) )
 			$where = ' AND ( ' . implode( " $this->relation ", $where ) . ' )';
 		else
 			$where = '';
@@ -756,12 +772,11 @@
 	 * Transforms a single query, from one field to another.
 	 *
 	 * @since 3.2.0
-	 * @access private
 	 *
 	 * @param array &$query The single query
 	 * @param string $resulting_field The resulting field
 	 */
-	private function transform_query( &$query, $resulting_field ) {
+	public function transform_query( &$query, $resulting_field ) {
 		global $wpdb;
 
 		if ( empty( $query['terms'] ) )
@@ -784,7 +799,14 @@
 					AND $wpdb->terms.{$query['field']} IN ($terms)
 				" );
 				break;
-
+			case 'term_taxonomy_id':
+				$terms = implode( ',', array_map( 'intval', $query['terms'] ) );
+				$terms = $wpdb->get_col( "
+					SELECT $resulting_field
+					FROM $wpdb->term_taxonomy
+					WHERE term_taxonomy_id IN ($terms)
+				" );
+				break;
 			default:
 				$terms = implode( ',', array_map( 'intval', $query['terms'] ) );
 				$terms = $wpdb->get_col( "
@@ -845,7 +867,7 @@
  * @return mixed|null|WP_Error Term Row from database. Will return null if $term is empty. If taxonomy does not
  * exist then WP_Error will be returned.
  */
-function &get_term($term, $taxonomy, $output = OBJECT, $filter = 'raw') {
+function get_term($term, $taxonomy, $output = OBJECT, $filter = 'raw') {
 	global $wpdb;
 	$null = null;
 
@@ -1162,15 +1184,13 @@
  * @param string|array $args The values of what to search for when returning terms
  * @return array|WP_Error List of Term Objects and their children. Will return WP_Error, if any of $taxonomies do not exist.
  */
-function &get_terms($taxonomies, $args = '') {
+function get_terms($taxonomies, $args = '') {
 	global $wpdb;
 	$empty_array = array();
 
-	$single_taxonomy = false;
-	if ( !is_array($taxonomies) ) {
-		$single_taxonomy = true;
-		$taxonomies = array($taxonomies);
-	}
+	$single_taxonomy = ! is_array( $taxonomies ) || 1 === count( $taxonomies );
+	if ( ! is_array( $taxonomies ) )
+		$taxonomies = array( $taxonomies );
 
 	foreach ( $taxonomies as $taxonomy ) {
 		if ( ! taxonomy_exists($taxonomy) ) {
@@ -1384,7 +1404,7 @@
 	}
 
 	if ( empty($terms) ) {
-		wp_cache_add( $cache_key, array(), 'terms', 86400 ); // one day
+		wp_cache_add( $cache_key, array(), 'terms', DAY_IN_SECONDS );
 		$terms = apply_filters('get_terms', array(), $taxonomies, $args);
 		return $terms;
 	}
@@ -1392,7 +1412,7 @@
 	if ( $child_of ) {
 		$children = _get_term_hierarchy($taxonomies[0]);
 		if ( ! empty($children) )
-			$terms = & _get_term_children($child_of, $terms, $taxonomies[0]);
+			$terms = _get_term_children($child_of, $terms, $taxonomies[0]);
 	}
 
 	// Update term counts to include children.
@@ -1435,7 +1455,7 @@
 		$terms = array_slice($terms, $offset, $number);
 	}
 
-	wp_cache_add( $cache_key, $terms, 'terms', 86400 ); // one day
+	wp_cache_add( $cache_key, $terms, 'terms', DAY_IN_SECONDS );
 
 	$terms = apply_filters('get_terms', $terms, $taxonomies, $args);
 	return $terms;
@@ -1665,7 +1685,7 @@
  *
  * @param string $taxonomy Taxonomy name
  * @param array|string $args Overwrite defaults. See get_terms()
- * @return int How many terms are in $taxonomy
+ * @return int|WP_Error How many terms are in $taxonomy. WP_Error if $taxonomy does not exist.
  */
 function wp_count_terms( $taxonomy, $args = array() ) {
 	$defaults = array('hide_empty' => false);
@@ -1802,6 +1822,9 @@
 	foreach ( $tax_object->object_type as $object_type )
 		clean_object_term_cache( $objects, $object_type );
 
+	// Get the object before deletion so we can pass to actions below
+	$deleted_term = get_term( $term, $taxonomy );
+
 	do_action( 'delete_term_taxonomy', $tt_id );
 	$wpdb->delete( $wpdb->term_taxonomy, array( 'term_taxonomy_id' => $tt_id ) );
 	do_action( 'deleted_term_taxonomy', $tt_id );
@@ -1812,8 +1835,8 @@
 
 	clean_term_cache($term, $taxonomy);
 
-	do_action('delete_term', $term, $tt_id, $taxonomy);
-	do_action("delete_$taxonomy", $term, $tt_id);
+	do_action( 'delete_term', $term, $tt_id, $taxonomy, $deleted_term );
+	do_action( "delete_$taxonomy", $term, $tt_id, $deleted_term );
 
 	return true;
 }
@@ -2211,9 +2234,12 @@
 			if ( in_array($tt_id, $final_tt_ids) )
 				$values[] = $wpdb->prepare( "(%d, %d, %d)", $object_id, $tt_id, ++$term_order);
 		if ( $values )
-			$wpdb->query("INSERT INTO $wpdb->term_relationships (object_id, term_taxonomy_id, term_order) VALUES " . join(',', $values) . " ON DUPLICATE KEY UPDATE term_order = VALUES(term_order)");
+			if ( false === $wpdb->query( "INSERT INTO $wpdb->term_relationships (object_id, term_taxonomy_id, term_order) VALUES " . join( ',', $values ) . " ON DUPLICATE KEY UPDATE term_order = VALUES(term_order)" ) )
+				return new WP_Error( 'db_insert_error', __( 'Could not insert term relationship into the database' ), $wpdb->last_error );
 	}
 
+	wp_cache_delete( $object_id, $taxonomy . '_relationships' );
+
 	do_action('set_object_terms', $object_id, $terms, $tt_ids, $taxonomy, $append, $old_tt_ids);
 	return $tt_ids;
 }
@@ -2540,8 +2566,10 @@
 	if ( !is_array($object_ids) )
 		$object_ids = array($object_ids);
 
+	$taxonomies = get_object_taxonomies( $object_type );
+
 	foreach ( $object_ids as $id )
-		foreach ( get_object_taxonomies($object_type) as $taxonomy )
+		foreach ( $taxonomies as $taxonomy )
 			wp_cache_delete($id, "{$taxonomy}_relationships");
 
 	do_action('clean_object_term_cache', $object_ids, $object_type);
@@ -2620,7 +2648,7 @@
  * @param string $taxonomy Taxonomy Name
  * @return bool|array Empty array if $terms found, but not $taxonomy. False if nothing is in cache for $taxonomy and $id.
  */
-function &get_object_term_cache($id, $taxonomy) {
+function get_object_term_cache($id, $taxonomy) {
 	$cache = wp_cache_get($id, "{$taxonomy}_relationships");
 	return $cache;
 }
@@ -2766,7 +2794,7 @@
  * @param string $taxonomy The taxonomy which determines the hierarchy of the terms.
  * @return array The subset of $terms that are descendants of $term_id.
  */
-function &_get_term_children($term_id, $terms, $taxonomy) {
+function _get_term_children($term_id, $terms, $taxonomy) {
 	$empty_array = array();
 	if ( empty($terms) )
 		return $empty_array;
@@ -2964,9 +2992,9 @@
 
 	if ( !is_object($term) ) {
 		if ( is_int($term) ) {
-			$term = &get_term($term, $taxonomy);
+			$term = get_term($term, $taxonomy);
 		} else {
-			$term = &get_term_by('slug', $term, $taxonomy);
+			$term = get_term_by('slug', $term, $taxonomy);
 		}
 	}
 
@@ -3063,10 +3091,7 @@
  * @return array
  */
 function get_the_taxonomies($post = 0, $args = array() ) {
-	if ( is_int($post) )
-		$post =& get_post($post);
-	elseif ( !is_object($post) )
-		$post =& $GLOBALS['post'];
+	$post = get_post( $post );
 
 	$args = wp_parse_args( $args, array(
 		'template' => '%s: %l.',
@@ -3088,7 +3113,7 @@
 			$t['template'] = $template;
 
 		$terms = get_object_term_cache($post->ID, $taxonomy);
-		if ( empty($terms) )
+		if ( false === $terms )
 			$terms = wp_get_object_terms($post->ID, $taxonomy, $t['args']);
 
 		$links = array();
@@ -3112,7 +3137,7 @@
  * @return array
  */
 function get_post_taxonomies($post = 0) {
-	$post =& get_post($post);
+	$post = get_post( $post );
 
 	return get_object_taxonomies($post);
 }
@@ -3138,7 +3163,7 @@
 		return new WP_Error( 'invalid_object', __( 'Invalid object ID' ) );
 
 	$object_terms = get_object_term_cache( $object_id, $taxonomy );
-	if ( empty( $object_terms ) )
+	if ( false === $object_terms )
 		 $object_terms = wp_get_object_terms( $object_id, $taxonomy );
 
 	if ( is_wp_error( $object_terms ) )
@@ -3211,16 +3236,8 @@
 			$ancestors[] = (int) $term->parent;
 			$term = get_term($term->parent, $object_type);
 		}
-	} elseif ( null !== get_post_type_object( $object_type ) ) {
-		$object = get_post($object_id);
-		if ( ! is_wp_error( $object ) && isset( $object->ancestors ) && is_array( $object->ancestors ) )
-			$ancestors = $object->ancestors;
-		else {
-			while ( ! is_wp_error($object) && ! empty( $object->post_parent ) && ! in_array( $object->post_parent, $ancestors ) ) {
-				$ancestors[] = (int) $object->post_parent;
-				$object = get_post($object->post_parent);
-			}
-		}
+	} elseif ( post_type_exists( $object_type ) ) {
+		$ancestors = get_post_ancestors($object_id);
 	}
 
 	return apply_filters('get_ancestors', $ancestors, $object_id, $object_type);
--- a/web/wp-includes/template-loader.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/template-loader.php	Wed Dec 19 17:46:52 2012 -0800
@@ -6,6 +6,10 @@
 if ( defined('WP_USE_THEMES') && WP_USE_THEMES )
 	do_action('template_redirect');
 
+// Halt template load for HEAD requests. Performance bump. See #14348
+if ( 'HEAD' === $_SERVER['REQUEST_METHOD'] && apply_filters( 'exit_on_http_head', true ) )
+	exit();
+
 // Process feeds and trackbacks even if not using themes.
 if ( is_robots() ) :
 	do_action('do_robots');
--- a/web/wp-includes/template.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/template.php	Wed Dec 19 17:46:52 2012 -0800
@@ -59,11 +59,11 @@
  * @return string
  */
 function get_archive_template() {
-	$post_type = get_query_var( 'post_type' );
+	$post_types = get_query_var( 'post_type' );
 
 	$templates = array();
 
-	if ( $post_type )
+	foreach ( (array) $post_types as $post_type )
 		$templates[] = "archive-{$post_type}.php";
 	$templates[] = 'archive.php';
 
@@ -82,8 +82,10 @@
 
 	$templates = array();
 
-	$templates[] = "author-{$author->user_nicename}.php";
-	$templates[] = "author-{$author->ID}.php";
+	if ( $author ) {
+		$templates[] = "author-{$author->user_nicename}.php";
+		$templates[] = "author-{$author->ID}.php";
+	}
 	$templates[] = 'author.php';
 
 	return get_query_template( 'author', $templates );
@@ -106,8 +108,10 @@
 
 	$templates = array();
 
-	$templates[] = "category-{$category->slug}.php";
-	$templates[] = "category-{$category->term_id}.php";
+	if ( $category ) {
+		$templates[] = "category-{$category->slug}.php";
+		$templates[] = "category-{$category->term_id}.php";
+	}
 	$templates[] = 'category.php';
 
 	return get_query_template( 'category', $templates );
@@ -130,8 +134,10 @@
 
 	$templates = array();
 
-	$templates[] = "tag-{$tag->slug}.php";
-	$templates[] = "tag-{$tag->term_id}.php";
+	if ( $tag ) {
+		$templates[] = "tag-{$tag->slug}.php";
+		$templates[] = "tag-{$tag->term_id}.php";
+	}
 	$templates[] = 'tag.php';
 
 	return get_query_template( 'tag', $templates );
@@ -156,12 +162,14 @@
  */
 function get_taxonomy_template() {
 	$term = get_queried_object();
-	$taxonomy = $term->taxonomy;
 
 	$templates = array();
 
-	$templates[] = "taxonomy-$taxonomy-{$term->slug}.php";
-	$templates[] = "taxonomy-$taxonomy.php";
+	if ( $term ) {
+		$taxonomy = $term->taxonomy;
+		$templates[] = "taxonomy-$taxonomy-{$term->slug}.php";
+		$templates[] = "taxonomy-$taxonomy.php";
+	}
 	$templates[] = 'taxonomy.php';
 
 	return get_query_template( 'taxonomy', $templates );
@@ -280,7 +288,8 @@
 
 	$templates = array();
 
-	$templates[] = "single-{$object->post_type}.php";
+	if ( $object )
+		$templates[] = "single-{$object->post_type}.php";
 	$templates[] = "single.php";
 
 	return get_query_template( 'single', $templates );
@@ -303,15 +312,21 @@
  */
 function get_attachment_template() {
 	global $posts;
-	$type = explode('/', $posts[0]->post_mime_type);
-	if ( $template = get_query_template($type[0]) )
-		return $template;
-	elseif ( $template = get_query_template($type[1]) )
-		return $template;
-	elseif ( $template = get_query_template("$type[0]_$type[1]") )
-		return $template;
-	else
-		return get_query_template('attachment');
+
+	if ( ! empty( $posts ) && isset( $posts[0]->post_mime_type ) ) {
+		$type = explode( '/', $posts[0]->post_mime_type );
+
+		if ( ! empty( $type ) ) {
+			if ( $template = get_query_template( $type[0] ) )
+				return $template;
+			elseif ( $template = get_query_template( $type[1] ) )
+				return $template;
+			elseif ( $template = get_query_template( "$type[0]_$type[1]" ) )
+				return $template;
+		}
+	}
+
+	return get_query_template( 'attachment' );
 }
 
 /**
--- a/web/wp-includes/theme-compat/comments-popup.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/theme-compat/comments-popup.php	Wed Dec 19 17:46:52 2012 -0800
@@ -32,7 +32,7 @@
 ?>
 <h2 id="comments"><?php _e('Comments'); ?></h2>
 
-<p><a href="<?php echo get_post_comments_feed_link($post->ID); ?>"><?php _e('<abbr title="Really Simple Syndication">RSS</abbr> feed for comments on this post.'); ?></a></p>
+<p><a href="<?php echo esc_url( get_post_comments_feed_link($post->ID) ); ?>"><?php _e('<abbr title="Really Simple Syndication">RSS</abbr> feed for comments on this post.'); ?></a></p>
 
 <?php if ( pings_open() ) { ?>
 <p><?php printf(__('The <abbr title="Universal Resource Locator">URL</abbr> to TrackBack this entry is: <em>%s</em>'), get_trackback_url()); ?></p>
@@ -68,7 +68,7 @@
 
 <form action="<?php echo get_option('siteurl'); ?>/wp-comments-post.php" method="post" id="commentform">
 <?php if ( $user_ID ) : ?>
-	<p><?php printf(__('Logged in as <a href="%1$s">%2$s</a>. <a href="%3$s" title="Log out of this account">Log out &raquo;</a>'), get_option('siteurl') . '/wp-admin/profile.php', $user_identity, wp_logout_url(get_permalink())); ?></p>
+	<p><?php printf(__('Logged in as <a href="%1$s">%2$s</a>. <a href="%3$s" title="Log out of this account">Log out &raquo;</a>'), get_edit_user_link(), $user_identity, wp_logout_url(get_permalink())); ?></p>
 <?php else : ?>
 	<p>
 	  <input type="text" name="author" id="author" class="textarea" value="<?php echo esc_attr($comment_author); ?>" size="28" tabindex="1" />
--- a/web/wp-includes/theme-compat/comments.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/theme-compat/comments.php	Wed Dec 19 17:46:52 2012 -0800
@@ -69,7 +69,7 @@
 
 <?php if ( is_user_logged_in() ) : ?>
 
-<p><?php printf(__('Logged in as <a href="%1$s">%2$s</a>.'), get_option('siteurl') . '/wp-admin/profile.php', $user_identity); ?> <a href="<?php echo wp_logout_url(get_permalink()); ?>" title="<?php esc_attr_e('Log out of this account'); ?>"><?php _e('Log out &raquo;'); ?></a></p>
+<p><?php printf(__('Logged in as <a href="%1$s">%2$s</a>.'), get_edit_user_link(), $user_identity); ?> <a href="<?php echo wp_logout_url(get_permalink()); ?>" title="<?php esc_attr_e('Log out of this account'); ?>"><?php _e('Log out &raquo;'); ?></a></p>
 
 <?php else : ?>
 
--- a/web/wp-includes/theme.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/theme.php	Wed Dec 19 17:46:52 2012 -0800
@@ -107,6 +107,18 @@
 }
 
 /**
+ * Clears the cache held by get_theme_roots() and WP_Theme.
+ *
+ * @since 3.5.0
+ */
+function wp_clean_themes_cache() {
+	delete_site_transient('update_themes');
+	search_theme_directories( true );
+	foreach ( wp_get_themes( array( 'errors' => null ) ) as $theme )
+		$theme->cache_delete();
+}
+
+/**
  * Whether a child theme is in use.
  *
  * @since 3.0.0
@@ -638,15 +650,17 @@
 }
 
 /**
- * Switches current theme to new template and stylesheet names.
+ * Switches the theme.
+ *
+ * Accepts one argument: $stylesheet of the theme. It also accepts an additional function signature
+ * of two arguments: $template then $stylesheet. This is for backwards compatibility.
  *
  * @since 2.5.0
  * @uses do_action() Calls 'switch_theme' action, passing the new theme.
  *
- * @param string $template Template name
- * @param string $stylesheet Stylesheet name.
+ * @param string $stylesheet Stylesheet name
  */
-function switch_theme( $template, $stylesheet ) {
+function switch_theme( $stylesheet ) {
 	global $wp_theme_directories, $sidebars_widgets;
 
 	if ( is_array( $sidebars_widgets ) )
@@ -654,7 +668,13 @@
 
 	$old_theme  = wp_get_theme();
 	$new_theme = wp_get_theme( $stylesheet );
-	$new_name  = $new_theme->get('Name');
+
+	if ( func_num_args() > 1 ) {
+		$template = $stylesheet;
+		$stylesheet = func_get_arg( 1 );
+	} else {
+		$template = $new_theme->get_template();
+	}
 
 	update_option( 'template', $template );
 	update_option( 'stylesheet', $stylesheet );
@@ -662,8 +682,13 @@
 	if ( count( $wp_theme_directories ) > 1 ) {
 		update_option( 'template_root', get_raw_theme_root( $template, true ) );
 		update_option( 'stylesheet_root', get_raw_theme_root( $stylesheet, true ) );
+	} else {
+		delete_option( 'template_root' );
+		delete_option( 'stylesheet_root' );
 	}
 
+	$new_name  = $new_theme->get('Name');
+
 	update_option( 'current_theme', $new_name );
 
 	if ( is_admin() && false === get_option( 'theme_mods_' . $stylesheet ) ) {
@@ -694,17 +719,17 @@
 		return true;
 
 	if ( get_template() != WP_DEFAULT_THEME && !file_exists(get_template_directory() . '/index.php') ) {
-		switch_theme( WP_DEFAULT_THEME, WP_DEFAULT_THEME );
+		switch_theme( WP_DEFAULT_THEME );
 		return false;
 	}
 
 	if ( get_stylesheet() != WP_DEFAULT_THEME && !file_exists(get_template_directory() . '/style.css') ) {
-		switch_theme( WP_DEFAULT_THEME, WP_DEFAULT_THEME );
+		switch_theme( WP_DEFAULT_THEME );
 		return false;
 	}
 
 	if ( is_child_theme() && ! file_exists( get_stylesheet_directory() . '/style.css' ) ) {
-		switch_theme( WP_DEFAULT_THEME, WP_DEFAULT_THEME );
+		switch_theme( WP_DEFAULT_THEME );
 		return false;
 	}
 
@@ -869,12 +894,7 @@
 	if ( is_random_header_image() )
 		$url = get_random_header_image();
 
-	if ( is_ssl() )
-		$url = str_replace( 'http://', 'https://', $url );
-	else
-		$url = str_replace( 'https://', 'http://', $url );
-
-	return esc_url_raw( $url );
+	return esc_url_raw( set_url_scheme( $url ) );
 }
 
 /**
@@ -1008,7 +1028,30 @@
  * @return object
  */
 function get_custom_header() {
-	$data = is_random_header_image()? _get_random_header_data() : get_theme_mod( 'header_image_data' );
+	global $_wp_default_headers;
+
+	if ( is_random_header_image() ) {
+		$data = _get_random_header_data();
+	} else {
+		$data = get_theme_mod( 'header_image_data' );
+		if ( ! $data && current_theme_supports( 'custom-header', 'default-image' ) ) {
+			$directory_args = array( get_template_directory_uri(), get_stylesheet_directory_uri() );
+			$data = array();
+			$data['url'] = $data['thumbnail_url'] = vsprintf( get_theme_support( 'custom-header', 'default-image' ), $directory_args );
+			if ( ! empty( $_wp_default_headers ) ) {
+				foreach ( (array) $_wp_default_headers as $default_header ) {
+					$url = vsprintf( $default_header['url'], $directory_args );
+					if ( $data['url'] == $url ) {
+						$data = $default_header;
+						$data['url'] = $url;
+						$data['thumbnail_url'] = vsprintf( $data['thumbnail_url'], $directory_args );
+						break;
+					}
+				}
+			}
+		}
+	}
+
 	$default = array(
 		'url'           => '',
 		'thumbnail_url' => '',
@@ -1103,7 +1146,7 @@
  */
 function _custom_background_cb() {
 	// $background is the saved custom image, or the default image.
-	$background = get_background_image();
+	$background = set_url_scheme( get_background_image() );
 
 	// $color is the saved custom color.
 	// A default has to be specified in style.css. It will not be printed here.
@@ -1446,6 +1489,8 @@
 
 	switch ( $feature ) {
 		case 'custom-header' :
+			if ( false === did_action( 'wp_loaded', '_custom_header_background_just_in_time' ) )
+				break;
 			$support = get_theme_support( 'custom-header' );
 			if ( $support[0]['wp-head-callback'] )
 				remove_action( 'wp_head', $support[0]['wp-head-callback'] );
@@ -1454,6 +1499,8 @@
 			break;
 
 		case 'custom-background' :
+			if ( false === did_action( 'wp_loaded', '_custom_header_background_just_in_time' ) )
+				break;
 			$support = get_theme_support( 'custom-background' );
 			remove_action( 'wp_head', $support[0]['wp-head-callback'] );
 			remove_action( 'admin_menu', array( $GLOBALS['custom_background'], 'init' ) );
@@ -1669,7 +1716,7 @@
 			request = true;
 <?php		endif; ?>
 
-			b[c] = b[c].replace( rcs, '' );
+			b[c] = b[c].replace( rcs, ' ' );
 			b[c] += ( window.postMessage && request ? ' ' : ' no-' ) + cs;
 		}());
 	</script>
--- a/web/wp-includes/update.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/update.php	Wed Dec 19 17:46:52 2012 -0800
@@ -155,14 +155,14 @@
 	// Check for update on a different schedule, depending on the page.
 	switch ( current_filter() ) {
 		case 'load-update-core.php' :
-			$timeout = 60; // 1 min
+			$timeout = MINUTE_IN_SECONDS;
 			break;
 		case 'load-plugins.php' :
 		case 'load-update.php' :
-			$timeout = 3600; // 1 hour
+			$timeout = HOUR_IN_SECONDS;
 			break;
 		default :
-			$timeout = 43200; // 12 hours
+			$timeout = 12 * HOUR_IN_SECONDS;
 	}
 
 	$time_not_changed = isset( $current->last_checked ) && $timeout > ( time() - $current->last_checked );
@@ -264,14 +264,14 @@
 	// Check for update on a different schedule, depending on the page.
 	switch ( current_filter() ) {
 		case 'load-update-core.php' :
-			$timeout = 60; // 1 min
+			$timeout = MINUTE_IN_SECONDS;
 			break;
 		case 'load-themes.php' :
 		case 'load-update.php' :
-			$timeout = 3600; // 1 hour
+			$timeout = HOUR_IN_SECONDS;
 			break;
 		default :
-			$timeout = 43200; // 12 hours
+			$timeout = 12 * HOUR_IN_SECONDS;
 	}
 
 	$time_not_changed = isset( $last_update->last_checked ) && $timeout > ( time( ) - $last_update->last_checked );
@@ -279,8 +279,6 @@
 	if ( $time_not_changed ) {
 		$theme_changed = false;
 		foreach ( $checked as $slug => $v ) {
-			$update_request->checked[ $slug ] = $v;
-
 			if ( !isset( $last_update->checked[ $slug ] ) || strval($last_update->checked[ $slug ]) !== strval($v) )
 				$theme_changed = true;
 		}
@@ -354,17 +352,17 @@
 	}
 
 	$counts['total'] = $counts['plugins'] + $counts['themes'] + $counts['wordpress'];
-	$update_title = array();
+	$titles = array();
 	if ( $counts['wordpress'] )
-		$update_title[] = sprintf(__('%d WordPress Update'), $counts['wordpress']);
+		$titles['wordpress'] = sprintf( __( '%d WordPress Update'), $counts['wordpress'] );
 	if ( $counts['plugins'] )
-		$update_title[] = sprintf(_n('%d Plugin Update', '%d Plugin Updates', $counts['plugins']), $counts['plugins']);
+		$titles['plugins'] = sprintf( _n( '%d Plugin Update', '%d Plugin Updates', $counts['plugins'] ), $counts['plugins'] );
 	if ( $counts['themes'] )
-		$update_title[] = sprintf(_n('%d Theme Update', '%d Theme Updates', $counts['themes']), $counts['themes']);
+		$titles['themes'] = sprintf( _n( '%d Theme Update', '%d Theme Updates', $counts['themes'] ), $counts['themes'] );
 
-	$update_title = ! empty( $update_title ) ? esc_attr( implode( ', ', $update_title ) ) : '';
+	$update_title = $titles ? esc_attr( implode( ', ', $titles ) ) : '';
 
-	return array( 'counts' => $counts, 'title' => $update_title );
+	return apply_filters( 'wp_get_update_data', array( 'counts' => $counts, 'title' => $update_title ), $titles );
 }
 
 function _maybe_update_core() {
@@ -373,7 +371,7 @@
 	$current = get_site_transient( 'update_core' );
 
 	if ( isset( $current->last_checked ) &&
-		43200 > ( time() - $current->last_checked ) &&
+		12 * HOUR_IN_SECONDS > ( time() - $current->last_checked ) &&
 		isset( $current->version_checked ) &&
 		$current->version_checked == $wp_version )
 		return;
@@ -392,7 +390,7 @@
  */
 function _maybe_update_plugins() {
 	$current = get_site_transient( 'update_plugins' );
-	if ( isset( $current->last_checked ) && 43200 > ( time() - $current->last_checked ) )
+	if ( isset( $current->last_checked ) && 12 * HOUR_IN_SECONDS > ( time() - $current->last_checked ) )
 		return;
 	wp_update_plugins();
 }
@@ -408,7 +406,7 @@
  */
 function _maybe_update_themes( ) {
 	$current = get_site_transient( 'update_themes' );
-	if ( isset( $current->last_checked ) && 43200 > ( time( ) - $current->last_checked ) )
+	if ( isset( $current->last_checked ) && 12 * HOUR_IN_SECONDS > ( time( ) - $current->last_checked ) )
 		return;
 
 	wp_update_themes();
--- a/web/wp-includes/user.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/user.php	Wed Dec 19 17:46:52 2012 -0800
@@ -84,33 +84,32 @@
 		return $error;
 	}
 
-	$userdata = get_user_by('login', $username);
+	$user = get_user_by('login', $username);
 
-	if ( !$userdata )
+	if ( !$user )
 		return new WP_Error('invalid_username', sprintf(__('<strong>ERROR</strong>: Invalid username. <a href="%s" title="Password Lost and Found">Lost your password</a>?'), wp_lostpassword_url()));
 
 	if ( is_multisite() ) {
 		// Is user marked as spam?
-		if ( 1 == $userdata->spam)
+		if ( 1 == $user->spam)
 			return new WP_Error('invalid_username', __('<strong>ERROR</strong>: Your account has been marked as a spammer.'));
 
 		// Is a user's blog marked as spam?
-		if ( !is_super_admin( $userdata->ID ) && isset($userdata->primary_blog) ) {
-			$details = get_blog_details( $userdata->primary_blog );
+		if ( !is_super_admin( $user->ID ) && isset($user->primary_blog) ) {
+			$details = get_blog_details( $user->primary_blog );
 			if ( is_object( $details ) && $details->spam == 1 )
 				return new WP_Error('blog_suspended', __('Site Suspended.'));
 		}
 	}
 
-	$userdata = apply_filters('wp_authenticate_user', $userdata, $password);
-	if ( is_wp_error($userdata) )
-		return $userdata;
+	$user = apply_filters('wp_authenticate_user', $user, $password);
+	if ( is_wp_error($user) )
+		return $user;
 
-	if ( !wp_check_password($password, $userdata->user_pass, $userdata->ID) )
+	if ( !wp_check_password($password, $user->user_pass, $user->ID) )
 		return new WP_Error( 'incorrect_password', sprintf( __( '<strong>ERROR</strong>: The password you entered for the username <strong>%1$s</strong> is incorrect. <a href="%2$s" title="Password Lost and Found">Lost your password</a>?' ),
 		$username, wp_lostpassword_url() ) );
 
-	$user =  new WP_User($userdata->ID);
 	return $user;
 }
 
@@ -166,10 +165,11 @@
  * @since 3.0.0
  *
  * @param array $users Array of user IDs.
- * @param string|array $post_type Optional. Post type to check. Defaults to post.
+ * @param string $post_type Optional. Post type to check. Defaults to post.
+ * @param bool $public_only Optional. Only return counts for public posts.  Defaults to false.
  * @return array Amount of posts each user has written.
  */
-function count_many_users_posts( $users, $post_type = 'post' ) {
+function count_many_users_posts( $users, $post_type = 'post', $public_only = false ) {
 	global $wpdb;
 
 	$count = array();
@@ -177,7 +177,7 @@
 		return $count;
 
 	$userlist = implode( ',', array_map( 'absint', $users ) );
-	$where = get_posts_by_author_sql( $post_type );
+	$where = get_posts_by_author_sql( $post_type, true, null, $public_only );
 
 	$result = $wpdb->get_results( "SELECT post_author, COUNT(*) FROM $wpdb->posts $where AND post_author IN ($userlist) GROUP BY post_author", ARRAY_N );
 	foreach ( $result as $row ) {
@@ -192,24 +192,6 @@
 	return $count;
 }
 
-/**
- * Check that the user login name and password is correct.
- *
- * @since 0.71
- * @todo xmlrpc only. Maybe move to xmlrpc.php.
- *
- * @param string $user_login User name.
- * @param string $user_pass User password.
- * @return bool False if does not authenticate, true if username and password authenticates.
- */
-function user_pass_ok($user_login, $user_pass) {
-	$user = wp_authenticate($user_login, $user_pass);
-	if ( is_wp_error($user) )
-		return false;
-
-	return true;
-}
-
 //
 // User option functions
 //
@@ -255,11 +237,9 @@
 		_deprecated_argument( __FUNCTION__, '3.0' );
 
 	if ( empty( $user ) )
-		$user = wp_get_current_user();
-	else
-		$user = new WP_User( $user );
+		$user = get_current_user_id();
 
-	if ( ! $user->exists() )
+	if ( ! $user = get_userdata( $user ) )
 		return false;
 
 	if ( $user->has_prop( $wpdb->prefix . $option ) ) // Blog specific
@@ -335,6 +315,15 @@
 class WP_User_Query {
 
 	/**
+	 * Query vars, after parsing
+	 *
+	 * @since 3.5.0
+	 * @access public
+	 * @var array
+	 */
+	var $query_vars = array();
+
+	/**
 	 * List of found user ids
 	 *
 	 * @since 3.1.0
@@ -402,7 +391,7 @@
 	function prepare_query() {
 		global $wpdb;
 
-		$qv = &$this->query_vars;
+		$qv =& $this->query_vars;
 
 		if ( is_array( $qv['fields'] ) ) {
 			$qv['fields'] = array_unique( $qv['fields'] );
@@ -417,7 +406,7 @@
 			$this->query_fields = "$wpdb->users.ID";
 		}
 
-		if ( $this->query_vars['count_total'] )
+		if ( $qv['count_total'] )
 			$this->query_fields = 'SQL_CALC_FOUND_ROWS ' . $this->query_fields;
 
 		$this->query_from = "FROM $wpdb->users";
@@ -549,29 +538,64 @@
 	function query() {
 		global $wpdb;
 
-		if ( is_array( $this->query_vars['fields'] ) || 'all' == $this->query_vars['fields'] ) {
+		$qv =& $this->query_vars;
+
+		if ( is_array( $qv['fields'] ) || 'all' == $qv['fields'] ) {
 			$this->results = $wpdb->get_results("SELECT $this->query_fields $this->query_from $this->query_where $this->query_orderby $this->query_limit");
 		} else {
 			$this->results = $wpdb->get_col("SELECT $this->query_fields $this->query_from $this->query_where $this->query_orderby $this->query_limit");
 		}
 
-		if ( $this->query_vars['count_total'] )
+		if ( $qv['count_total'] )
 			$this->total_users = $wpdb->get_var( apply_filters( 'found_users_query', 'SELECT FOUND_ROWS()' ) );
 
 		if ( !$this->results )
 			return;
 
-		if ( 'all_with_meta' == $this->query_vars['fields'] ) {
+		if ( 'all_with_meta' == $qv['fields'] ) {
 			cache_users( $this->results );
 
 			$r = array();
 			foreach ( $this->results as $userid )
-				$r[ $userid ] = new WP_User( $userid, '', $this->query_vars['blog_id'] );
+				$r[ $userid ] = new WP_User( $userid, '', $qv['blog_id'] );
 
 			$this->results = $r;
+		} elseif ( 'all' == $qv['fields'] ) {
+			foreach ( $this->results as $key => $user ) {
+				$this->results[ $key ] = new WP_User( $user );
+			}
 		}
 	}
 
+	/**
+	 * Retrieve query variable.
+	 *
+	 * @since 3.5.0
+	 * @access public
+	 *
+	 * @param string $query_var Query variable key.
+	 * @return mixed
+	 */
+	function get( $query_var ) {
+		if ( isset( $this->query_vars[$query_var] ) )
+			return $this->query_vars[$query_var];
+
+		return null;
+	}
+
+	/**
+	 * Set query variable.
+	 *
+	 * @since 3.5.0
+	 * @access public
+	 *
+	 * @param string $query_var Query variable key.
+	 * @param mixed $value Query variable value.
+	 */
+	function set( $query_var, $value ) {
+		$this->query_vars[$query_var] = $value;
+	}
+
 	/*
 	 * Used internally to generate an SQL string for searching across multiple columns
 	 *
@@ -676,6 +700,9 @@
 		$blogs[ $blog_id ]->path = '';
 		$blogs[ $blog_id ]->site_id = 1;
 		$blogs[ $blog_id ]->siteurl = get_option('siteurl');
+		$blogs[ $blog_id ]->archived = 0;
+		$blogs[ $blog_id ]->spam = 0;
+		$blogs[ $blog_id ]->deleted = 0;
 		return $blogs;
 	}
 
@@ -691,6 +718,9 @@
 				'path'        => $blog->path,
 				'site_id'     => $blog->site_id,
 				'siteurl'     => $blog->siteurl,
+				'archived'    => 0,
+				'spam'        => 0,
+				'deleted'     => 0
 			);
 		}
 		unset( $keys[ $wpdb->base_prefix . 'capabilities' ] );
@@ -717,6 +747,9 @@
 				'path'        => $blog->path,
 				'site_id'     => $blog->site_id,
 				'siteurl'     => $blog->siteurl,
+				'archived'    => 0,
+				'spam'        => 0,
+				'deleted'     => 0
 			);
 		}
 	}
@@ -920,33 +953,31 @@
  * @global int $user_ID The ID of the user
  * @global string $user_email The email address of the user
  * @global string $user_url The url in the user's profile
- * @global string $user_pass_md5 MD5 of the user's password
  * @global string $user_identity The display name of the user
  *
  * @param int $for_user_id Optional. User ID to set up global data.
  */
 function setup_userdata($for_user_id = '') {
-	global $user_login, $userdata, $user_level, $user_ID, $user_email, $user_url, $user_pass_md5, $user_identity;
+	global $user_login, $userdata, $user_level, $user_ID, $user_email, $user_url, $user_identity;
 
 	if ( '' == $for_user_id )
-		$user = wp_get_current_user();
-	else
-		$user = new WP_User($for_user_id);
+		$for_user_id = get_current_user_id();
+	$user = get_userdata( $for_user_id );
 
-	$userdata   = null;
-	$user_ID    = (int) $user->ID;
-	$user_level = (int) isset($user->user_level) ? $user->user_level : 0;
-
-	if ( ! $user->exists() ) {
-		$user_login = $user_email = $user_url = $user_pass_md5 = $user_identity = '';
+	if ( ! $user ) {
+		$user_ID = 0;
+		$user_level = 0;
+		$userdata = null;
+		$user_login = $user_email = $user_url = $user_identity = '';
 		return;
 	}
 
+	$user_ID    = (int) $user->ID;
+	$user_level = (int) $user->user_level;
 	$userdata   = $user;
 	$user_login = $user->user_login;
 	$user_email = $user->user_email;
 	$user_url   = $user->user_url;
-	$user_pass_md5 = md5( $user->user_pass );
 	$user_identity = $user->display_name;
 }
 
@@ -1221,7 +1252,7 @@
  * 'ID' - An integer that will be used for updating an existing user.
  * 'user_pass' - A string that contains the plain text password for the user.
  * 'user_login' - A string that contains the user's username for logging in.
- * 'user_nicename' - A string that contains a nicer looking name for the user.
+ * 'user_nicename' - A string that contains a URL-friendly name for the user.
  *		The default is the user's username.
  * 'user_url' - A string containing the user's URL for the user's web site.
  * 'user_email' - A string containing the user's email address.
@@ -1245,13 +1276,18 @@
  * @uses do_action() Calls 'profile_update' hook when updating giving the user's ID
  * @uses do_action() Calls 'user_register' hook when creating a new user giving the user's ID
  *
- * @param array $userdata An array of user data.
+ * @param mixed $userdata An array of user data or a user object of type stdClass or WP_User.
  * @return int|WP_Error The newly created user's ID or a WP_Error object if the user could not be created.
  */
-function wp_insert_user($userdata) {
+function wp_insert_user( $userdata ) {
 	global $wpdb;
 
-	extract($userdata, EXTR_SKIP);
+	if ( is_a( $userdata, 'stdClass' ) )
+		$userdata = get_object_vars( $userdata );
+	elseif ( is_a( $userdata, 'WP_User' ) )
+		$userdata = $userdata->to_array();
+
+	extract( $userdata, EXTR_SKIP );
 
 	// Are we updating or creating?
 	if ( !empty($ID) ) {
@@ -1274,7 +1310,7 @@
 		return new WP_Error('empty_user_login', __('Cannot create a user with an empty login name.') );
 
 	if ( !$update && username_exists( $user_login ) )
-		return new WP_Error('existing_user_login', __('This username is already registered.') );
+		return new WP_Error( 'existing_user_login', __( 'Sorry, that username already exists!' ) );
 
 	if ( empty($user_nicename) )
 		$user_nicename = sanitize_title( $user_login );
@@ -1289,11 +1325,7 @@
 	$user_email = apply_filters('pre_user_email', $user_email);
 
 	if ( !$update && ! defined( 'WP_IMPORTING' ) && email_exists($user_email) )
-		return new WP_Error('existing_user_email', __('This email address is already registered.') );
-
-	if ( empty($display_name) )
-		$display_name = $user_login;
-	$display_name = apply_filters('pre_user_display_name', $display_name);
+		return new WP_Error( 'existing_user_email', __( 'Sorry, that email address is already used!' ) );
 
 	if ( empty($nickname) )
 		$nickname = $user_login;
@@ -1307,6 +1339,21 @@
 		$last_name = '';
 	$last_name = apply_filters('pre_user_last_name', $last_name);
 
+	if ( empty( $display_name ) ) {
+		if ( $update )
+			$display_name = $user_login;
+		elseif ( $first_name && $last_name )
+			/* translators: 1: first name, 2: last name */
+			$display_name = sprintf( _x( '%1$s %2$s', 'Display name based on first name and last name' ), $first_name, $last_name );
+		elseif ( $first_name )
+			$display_name = $first_name;
+		elseif ( $last_name )
+			$display_name = $last_name;
+		else
+			$display_name = $user_login;
+	}
+	$display_name = apply_filters( 'pre_user_display_name', $display_name );
+
 	if ( empty($description) )
 		$description = '';
 	$description = apply_filters('pre_user_description', $description);
@@ -1392,16 +1439,21 @@
  * @see wp_insert_user() For what fields can be set in $userdata
  * @uses wp_insert_user() Used to update existing user or add new one if user doesn't exist already
  *
- * @param array $userdata An array of user data.
- * @return int The updated user's ID.
+ * @param mixed $userdata An array of user data or a user object of type stdClass or WP_User.
+ * @return int|WP_Error The updated user's ID or a WP_Error object if the user could not be updated.
  */
 function wp_update_user($userdata) {
+	if ( is_a( $userdata, 'stdClass' ) )
+		$userdata = get_object_vars( $userdata );
+	elseif ( is_a( $userdata, 'WP_User' ) )
+		$userdata = $userdata->to_array();
+
 	$ID = (int) $userdata['ID'];
 
 	// First, get all of the original fields
 	$user_obj = get_userdata( $ID );
 
-	$user = get_object_vars( $user_obj->data );
+	$user = $user_obj->to_array();
 
 	// Add additional custom fields
 	foreach ( _get_additional_user_keys( $user_obj ) as $key ) {
@@ -1461,10 +1513,10 @@
 /**
  * Return a list of meta keys that wp_insert_user() is supposed to set.
  *
+ * @since 3.3.0
  * @access private
- * @since 3.3.0
  *
- * @param object $user WP_User instance
+ * @param object $user WP_User instance.
  * @return array
  */
 function _get_additional_user_keys( $user ) {
@@ -1473,12 +1525,12 @@
 }
 
 /**
- * Set up the default contact methods
+ * Set up the default contact methods.
  *
+ * @since 2.9.0
  * @access private
- * @since
  *
- * @param object $user User data object (optional)
+ * @param object $user User data object (optional).
  * @return array $user_contactmethods Array of contact methods and their labels.
  */
 function _wp_get_user_contactmethods( $user = null ) {
--- a/web/wp-includes/vars.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/vars.php	Wed Dec 19 17:46:52 2012 -0800
@@ -116,7 +116,8 @@
 		|| strpos($_SERVER['HTTP_USER_AGENT'], 'Silk/') !== false
 		|| strpos($_SERVER['HTTP_USER_AGENT'], 'Kindle') !== false
 		|| strpos($_SERVER['HTTP_USER_AGENT'], 'BlackBerry') !== false
-		|| strpos($_SERVER['HTTP_USER_AGENT'], 'Opera Mini') !== false ) {
+		|| strpos($_SERVER['HTTP_USER_AGENT'], 'Opera Mini') !== false
+		|| strpos($_SERVER['HTTP_USER_AGENT'], 'Opera Mobi') !== false ) {
 			$is_mobile = true;
 	} else {
 		$is_mobile = false;
--- a/web/wp-includes/version.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/version.php	Wed Dec 19 17:46:52 2012 -0800
@@ -4,28 +4,21 @@
  *
  * @global string $wp_version
  */
-$wp_version = '3.4.2';
+$wp_version = '3.5';
 
 /**
  * Holds the WordPress DB revision, increments when changes are made to the WordPress DB schema.
  *
  * @global int $wp_db_version
  */
-$wp_db_version = 21707;
+$wp_db_version = 22441;
 
 /**
  * Holds the TinyMCE version
  *
  * @global string $tinymce_version
  */
-$tinymce_version = '349-21274';
-
-/**
- * Holds the cache manifest version
- *
- * @global string $manifest_version
- */
-$manifest_version = '20111113';
+$tinymce_version = '358-23156';
 
 /**
  * Holds the required PHP version
--- a/web/wp-includes/widgets.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/widgets.php	Wed Dec 19 17:46:52 2012 -0800
@@ -152,15 +152,15 @@
 	}
 
 	function _get_display_callback() {
-		return array(&$this, 'display_callback');
+		return array($this, 'display_callback');
 	}
 
 	function _get_update_callback() {
-		return array(&$this, 'update_callback');
+		return array($this, 'update_callback');
 	}
 
 	function _get_form_callback() {
-		return array(&$this, 'form_callback');
+		return array($this, 'form_callback');
 	}
 
 	/** Generate the actual widget content.
@@ -317,7 +317,7 @@
 	var $widgets = array();
 
 	function WP_Widget_Factory() {
-		add_action( 'widgets_init', array( &$this, '_register_widgets' ), 100 );
+		add_action( 'widgets_init', array( $this, '_register_widgets' ), 100 );
 	}
 
 	function register($widget_class) {
--- a/web/wp-includes/wp-db.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/wp-db.php	Wed Dec 19 17:46:52 2012 -0800
@@ -88,7 +88,7 @@
 	/**
 	 * Count of rows returned by previous query
 	 *
-	 * @since 1.2.0
+	 * @since 0.71
 	 * @access private
 	 * @var int
 	 */
@@ -113,9 +113,9 @@
 	var $insert_id = 0;
 
 	/**
-	 * Saved result of the last query made
+	 * Last query made
 	 *
-	 * @since 1.2.0
+	 * @since 0.71
 	 * @access private
 	 * @var array
 	 */
@@ -124,20 +124,29 @@
 	/**
 	 * Results of the last query made
 	 *
-	 * @since 1.0.0
+	 * @since 0.71
 	 * @access private
 	 * @var array|null
 	 */
 	var $last_result;
 
 	/**
+	 * MySQL result, which is either a resource or boolean.
+	 *
+	 * @since 0.71
+	 * @access protected
+	 * @var mixed
+	 */
+	protected $result;
+
+	/**
 	 * Saved info on the table column
 	 *
-	 * @since 1.2.0
-	 * @access private
+	 * @since 0.71
+	 * @access protected
 	 * @var array
 	 */
-	var $col_info;
+	protected $col_info;
 
 	/**
 	 * Saved queries that were executed
@@ -155,7 +164,7 @@
 	 * in a single database. The second reason is for possible
 	 * security precautions.
 	 *
-	 * @since 0.71
+	 * @since 2.5.0
 	 * @access private
 	 * @var string
 	 */
@@ -164,7 +173,7 @@
 	/**
 	 * Whether the database queries are ready to start executing.
 	 *
-	 * @since 2.5.0
+	 * @since 2.3.2
 	 * @access private
 	 * @var bool
 	 */
@@ -445,10 +454,46 @@
 	 * Database Username
 	 *
 	 * @since 2.9.0
-	 * @access private
+	 * @access protected
+	 * @var string
+	 */
+	protected $dbuser;
+
+	/**
+	 * Database Password
+	 *
+	 * @since 3.1.0
+	 * @access protected
 	 * @var string
 	 */
-	var $dbuser;
+	protected $dbpassword;
+
+	/**
+	 * Database Name
+	 *
+	 * @since 3.1.0
+	 * @access protected
+	 * @var string
+	 */
+	protected $dbname;
+
+	/**
+	 * Database Host
+	 *
+	 * @since 3.1.0
+	 * @access protected
+	 * @var string
+	 */
+	protected $dbhost;
+
+	/**
+	 * Database Handle
+	 *
+	 * @since 0.71
+	 * @access protected
+	 * @var string
+	 */
+	protected $dbh;
 
 	/**
 	 * A textual description of the last query/get_row/get_var call
@@ -489,7 +534,7 @@
 	 * @param string $dbhost MySQL database host
 	 */
 	function __construct( $dbuser, $dbpassword, $dbname, $dbhost ) {
-		register_shutdown_function( array( &$this, '__destruct' ) );
+		register_shutdown_function( array( $this, '__destruct' ) );
 
 		if ( WP_DEBUG )
 			$this->show_errors();
@@ -516,6 +561,57 @@
 	}
 
 	/**
+	 * PHP5 style magic getter, used to lazy-load expensive data.
+	 *
+	 * @since 3.5.0
+	 *
+	 * @param string $name The private member to get, and optionally process
+	 * @return mixed The private member
+	 */
+	function __get( $name ) {
+		if ( 'col_info' == $name )
+			$this->load_col_info();
+
+		return $this->$name;
+	}
+
+	/**
+	 * Magic function, for backwards compatibility
+	 *
+	 * @since 3.5.0
+	 *
+	 * @param string $name  The private member to set
+	 * @param mixed  $value The value to set
+	 */
+	function __set( $name, $value ) {
+		$this->$name = $value;
+	}
+
+	/**
+	 * Magic function, for backwards compatibility
+	 *
+	 * @since 3.5.0
+	 *
+	 * @param string $name  The private member to check
+	 *
+	 * @return bool If the member is set or not
+	 */
+	function __isset( $name ) {
+		return isset( $this->$name );
+	}
+
+	/**
+	 * Magic function, for backwards compatibility
+	 *
+	 * @since 3.5.0
+	 *
+	 * @param string $name  The private member to unset
+	 */
+	function __unset( $name ) {
+		unset( $this->$name );
+	}
+
+	/**
 	 * Set $this->charset and $this->collate
 	 *
 	 * @since 3.1.0
@@ -850,7 +946,8 @@
 	 * @return void
 	 */
 	function escape_by_ref( &$string ) {
-		$string = $this->_real_escape( $string );
+		if ( ! is_float( $string ) )
+			$string = $this->_real_escape( $string );
 	}
 
 	/**
@@ -890,7 +987,7 @@
 	 * @return null|false|string Sanitized query string, null if there is no query, false if there is an error and string
 	 * 	if there was something to prepare
 	 */
-	function prepare( $query = null ) { // ( $query, *$args )
+	function prepare( $query, $args ) {
 		if ( is_null( $query ) )
 			return;
 
@@ -901,8 +998,9 @@
 			$args = $args[0];
 		$query = str_replace( "'%s'", '%s', $query ); // in case someone mistakenly already singlequoted it
 		$query = str_replace( '"%s"', '%s', $query ); // doublequote unquoting
+		$query = preg_replace( '|(?<!%)%f|' , '%F', $query ); // Force floats to be locale unaware
 		$query = preg_replace( '|(?<!%)%s|', "'%s'", $query ); // quote the strings, avoiding escaped strings like %%s
-		array_walk( $args, array( &$this, 'escape_by_ref' ) );
+		array_walk( $args, array( $this, 'escape_by_ref' ) );
 		return @vsprintf( $query, $args );
 	}
 
@@ -932,11 +1030,7 @@
 		else
 			$error_str = sprintf( __( 'WordPress database error %1$s for query %2$s' ), $str, $this->last_query );
 
-		if ( function_exists( 'error_log' )
-			&& ( $log_file = @ini_get( 'error_log' ) )
-			&& ( 'syslog' == $log_file || @is_writable( $log_file ) )
-			)
-			@error_log( $error_str );
+		error_log( $error_str );
 
 		// Are we showing errors?
 		if ( ! $this->show_errors )
@@ -1023,6 +1117,9 @@
 		$this->last_result = array();
 		$this->col_info    = null;
 		$this->last_query  = null;
+
+		if ( is_resource( $this->result ) )
+			mysql_free_result( $this->result );
 	}
 
 	/**
@@ -1034,10 +1131,13 @@
 
 		$this->is_mysql = true;
 
+		$new_link = defined( 'MYSQL_NEW_LINK' ) ? MYSQL_NEW_LINK : true;
+		$client_flags = defined( 'MYSQL_CLIENT_FLAGS' ) ? MYSQL_CLIENT_FLAGS : 0;
+
 		if ( WP_DEBUG ) {
-			$this->dbh = mysql_connect( $this->dbhost, $this->dbuser, $this->dbpassword, true );
+			$this->dbh = mysql_connect( $this->dbhost, $this->dbuser, $this->dbpassword, $new_link, $client_flags );
 		} else {
-			$this->dbh = @mysql_connect( $this->dbhost, $this->dbuser, $this->dbpassword, true );
+			$this->dbh = @mysql_connect( $this->dbhost, $this->dbuser, $this->dbpassword, $new_link, $client_flags );
 		}
 
 		if ( !$this->dbh ) {
@@ -1104,30 +1204,23 @@
 			return false;
 		}
 
-		if ( preg_match( '/^\s*(create|alter|truncate|drop) /i', $query ) ) {
+		if ( preg_match( '/^\s*(create|alter|truncate|drop)\s/i', $query ) ) {
 			$return_val = $this->result;
-		} elseif ( preg_match( '/^\s*(insert|delete|update|replace) /i', $query ) ) {
+		} elseif ( preg_match( '/^\s*(insert|delete|update|replace)\s/i', $query ) ) {
 			$this->rows_affected = mysql_affected_rows( $this->dbh );
 			// Take note of the insert_id
-			if ( preg_match( '/^\s*(insert|replace) /i', $query ) ) {
+			if ( preg_match( '/^\s*(insert|replace)\s/i', $query ) ) {
 				$this->insert_id = mysql_insert_id($this->dbh);
 			}
 			// Return number of rows affected
 			$return_val = $this->rows_affected;
 		} else {
-			$i = 0;
-			while ( $i < @mysql_num_fields( $this->result ) ) {
-				$this->col_info[$i] = @mysql_fetch_field( $this->result );
-				$i++;
-			}
 			$num_rows = 0;
 			while ( $row = @mysql_fetch_object( $this->result ) ) {
 				$this->last_result[$num_rows] = $row;
 				$num_rows++;
 			}
 
-			@mysql_free_result( $this->result );
-
 			// Log number of rows the query returned
 			// and return number of rows selected
 			$this->num_rows = $num_rows;
@@ -1456,6 +1549,22 @@
 	}
 
 	/**
+	 * Load the column metadata from the last query.
+	 *
+	 * @since 3.5.0
+	 *
+	 * @access protected
+	 */
+	protected function load_col_info() {
+		if ( $this->col_info )
+			return;
+
+		for ( $i = 0; $i < @mysql_num_fields( $this->result ); $i++ ) {
+			$this->col_info[ $i ] = @mysql_fetch_field( $this->result, $i );
+		}
+	}
+
+	/**
 	 * Retrieve column metadata from the last query.
 	 *
 	 * @since 0.71
@@ -1465,6 +1574,8 @@
 	 * @return mixed Column Results
 	 */
 	function get_col_info( $info_type = 'name', $col_offset = -1 ) {
+		$this->load_col_info();
+
 		if ( $this->col_info ) {
 			if ( $col_offset == -1 ) {
 				$i = 0;
@@ -1506,7 +1617,7 @@
 	/**
 	 * Wraps errors in a nice header and footer and dies.
 	 *
-	 * Will not die if wpdb::$show_errors is true
+	 * Will not die if wpdb::$show_errors is false.
 	 *
 	 * @since 1.5.0
 	 *
@@ -1547,14 +1658,35 @@
 	 * Called when WordPress is generating the table scheme.
 	 *
 	 * @since 2.5.0
+	 * @deprecated 3.5.0
+	 * @deprecated Use wpdb::has_cap( 'collation' )
 	 *
 	 * @return bool True if collation is supported, false if version does not
 	 */
 	function supports_collation() {
+		_deprecated_function( __FUNCTION__, '3.5', 'wpdb::has_cap( \'collation\' )' );
 		return $this->has_cap( 'collation' );
 	}
 
 	/**
+	 * The database character collate.
+	 *
+	 * @since 3.5.0
+	 *
+	 * @return string The database character collate.
+	 */
+	public function get_charset_collate() {
+		$charset_collate = '';
+
+		if ( ! empty( $this->charset ) )
+			$charset_collate = "DEFAULT CHARACTER SET $this->charset";
+		if ( ! empty( $this->collate ) )
+			$charset_collate .= " COLLATE $this->collate";
+
+		return $charset_collate;
+	}
+
+	/**
 	 * Determine if a database supports a particular feature
 	 *
 	 * @since 2.7.0
--- a/web/wp-includes/wp-diff.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-includes/wp-diff.php	Wed Dec 19 17:46:52 2012 -0800
@@ -422,7 +422,7 @@
 		$chars2 = count_chars($string2);
 
 		// L1-norm of difference vector.
-		$difference = array_sum( array_map( array(&$this, 'difference'), $chars1, $chars2 ) );
+		$difference = array_sum( array_map( array($this, 'difference'), $chars1, $chars2 ) );
 
 		// $string1 has zero length? Odd. Give huge penalty by not dividing.
 		if ( !$string1 )
--- a/web/wp-load.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-load.php	Wed Dec 19 17:46:52 2012 -0800
@@ -57,7 +57,7 @@
 	$die  = __( "There doesn't seem to be a <code>wp-config.php</code> file. I need this before we can get started." ) . '</p>';
 	$die .= '<p>' . __( "Need more help? <a href='http://codex.wordpress.org/Editing_wp-config.php'>We got it</a>." ) . '</p>';
 	$die .= '<p>' . __( "You can create a <code>wp-config.php</code> file through a web interface, but this doesn't work for all server setups. The safest way is to manually create the file." ) . '</p>';
-	$die .= '<p><a href="' . $path . '" class="button">' . __( "Create a Configuration File" ) . '</a>';
+	$die .= '<p><a href="' . $path . '" class="button button-large">' . __( "Create a Configuration File" ) . '</a>';
 
 	wp_die( $die, __( 'WordPress &rsaquo; Error' ) );
 }
--- a/web/wp-login.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-login.php	Wed Dec 19 17:46:52 2012 -0800
@@ -12,12 +12,12 @@
 require( dirname(__FILE__) . '/wp-load.php' );
 
 // Redirect to https login if forced to use SSL
-if ( force_ssl_admin() && !is_ssl() ) {
+if ( force_ssl_admin() && ! is_ssl() ) {
 	if ( 0 === strpos($_SERVER['REQUEST_URI'], 'http') ) {
-		wp_redirect(preg_replace('|^http://|', 'https://', $_SERVER['REQUEST_URI']));
+		wp_redirect( set_url_scheme( $_SERVER['REQUEST_URI'], 'https' ) );
 		exit();
 	} else {
-		wp_redirect('https://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI']);
+		wp_redirect( 'https://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'] );
 		exit();
 	}
 }
@@ -39,7 +39,7 @@
  * @param WP_Error $wp_error Optional. WordPress Error Object
  */
 function login_header($title = 'Log In', $message = '', $wp_error = '') {
-	global $error, $interim_login, $current_site;
+	global $error, $interim_login, $current_site, $action;
 
 	// Don't index any of these forms
 	add_action( 'login_head', 'wp_no_robots' );
@@ -86,9 +86,15 @@
 	if ( $interim_login )
 		$login_header_url = '#';
 
+	$classes = array( 'login-action-' . $action, 'wp-core-ui' );
+	if ( wp_is_mobile() )
+		$classes[] = 'mobile';
+	if ( is_rtl() )
+		$classes[] = 'rtl';
+	$classes = apply_filters( 'login_body_class', $classes, $action );
 	?>
 	</head>
-	<body class="login<?php if ( wp_is_mobile() ) echo ' mobile'; ?>">
+	<body class="login <?php echo esc_attr( implode( ' ', $classes ) ); ?>">
 	<div id="login">
 		<h1><a href="<?php echo esc_url( $login_header_url ); ?>" title="<?php echo esc_attr( $login_header_title ); ?>"><?php bloginfo( 'name' ); ?></a></h1>
 	<?php
@@ -309,7 +315,7 @@
 		$errors->add( 'invalid_username', __( '<strong>ERROR</strong>: This username is invalid because it uses illegal characters. Please enter a valid username.' ) );
 		$sanitized_user_login = '';
 	} elseif ( username_exists( $sanitized_user_login ) ) {
-		$errors->add( 'username_exists', __( '<strong>ERROR</strong>: This username is already registered, please choose another one.' ) );
+		$errors->add( 'username_exists', __( '<strong>ERROR</strong>: This username is already registered. Please choose another one.' ) );
 	}
 
 	// Check the e-mail address
@@ -361,13 +367,13 @@
 
 header('Content-Type: '.get_bloginfo('html_type').'; charset='.get_bloginfo('charset'));
 
-if ( defined('RELOCATE') ) { // Move flag is set
+if ( defined( 'RELOCATE' ) && RELOCATE ) { // Move flag is set
 	if ( isset( $_SERVER['PATH_INFO'] ) && ($_SERVER['PATH_INFO'] != $_SERVER['PHP_SELF']) )
 		$_SERVER['PHP_SELF'] = str_replace( $_SERVER['PATH_INFO'], '', $_SERVER['PHP_SELF'] );
 
-	$schema = is_ssl() ? 'https://' : 'http://';
-	if ( dirname($schema . $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF']) != get_option('siteurl') )
-		update_option('siteurl', dirname($schema . $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF']) );
+	$url = dirname( set_url_scheme( 'http://' .  $_SERVER['HTTP_HOST'] . $_SERVER['PHP_SELF'] ) );
+	if ( $url != get_option( 'siteurl' ) )
+		update_option( 'siteurl', $url );
 }
 
 //Set a cookie now to see if they are supported by the browser.
@@ -390,7 +396,7 @@
 	}
 
 	// 10 days
-	setcookie( 'wp-postpass_' . COOKIEHASH, $wp_hasher->HashPassword( stripslashes( $_POST['post_password'] ) ), time() + 864000, COOKIEPATH );
+	setcookie( 'wp-postpass_' . COOKIEHASH, $wp_hasher->HashPassword( stripslashes( $_POST['post_password'] ) ), time() + 10 * DAY_IN_SECONDS, COOKIEPATH );
 
 	wp_safe_redirect( wp_get_referer() );
 	exit();
@@ -432,11 +438,11 @@
 <form name="lostpasswordform" id="lostpasswordform" action="<?php echo esc_url( site_url( 'wp-login.php?action=lostpassword', 'login_post' ) ); ?>" method="post">
 	<p>
 		<label for="user_login" ><?php _e('Username or E-mail:') ?><br />
-		<input type="text" name="user_login" id="user_login" class="input" value="<?php echo esc_attr($user_login); ?>" size="20" tabindex="10" /></label>
+		<input type="text" name="user_login" id="user_login" class="input" value="<?php echo esc_attr($user_login); ?>" size="20" /></label>
 	</p>
 <?php do_action('lostpassword_form'); ?>
 	<input type="hidden" name="redirect_to" value="<?php echo esc_attr( $redirect_to ); ?>" />
-	<p class="submit"><input type="submit" name="wp-submit" id="wp-submit" class="button-primary" value="<?php esc_attr_e('Get New Password'); ?>" tabindex="100" /></p>
+	<p class="submit"><input type="submit" name="wp-submit" id="wp-submit" class="button button-primary button-large" value="<?php esc_attr_e('Get New Password'); ?>" /></p>
 </form>
 
 <p id="nav">
@@ -459,11 +465,14 @@
 		exit;
 	}
 
-	$errors = '';
+	$errors = new WP_Error();
 
-	if ( isset($_POST['pass1']) && $_POST['pass1'] != $_POST['pass2'] ) {
-		$errors = new WP_Error('password_reset_mismatch', __('The passwords do not match.'));
-	} elseif ( isset($_POST['pass1']) && !empty($_POST['pass1']) ) {
+	if ( isset($_POST['pass1']) && $_POST['pass1'] != $_POST['pass2'] )
+		$errors->add( 'password_reset_mismatch', __( 'The passwords do not match.' ) );
+
+	do_action( 'validate_password_reset', $errors, $user );
+
+	if ( ( ! $errors->get_error_code() ) && isset( $_POST['pass1'] ) && !empty( $_POST['pass1'] ) ) {
 		reset_password($user, $_POST['pass1']);
 		login_header( __( 'Password Reset' ), '<p class="message reset-pass">' . __( 'Your password has been reset.' ) . ' <a href="' . esc_url( wp_login_url() ) . '">' . __( 'Log in' ) . '</a></p>' );
 		login_footer();
@@ -492,7 +501,7 @@
 	<p class="description indicator-hint"><?php _e('Hint: The password should be at least seven characters long. To make it stronger, use upper and lower case letters, numbers and symbols like ! " ? $ % ^ &amp; ).'); ?></p>
 
 	<br class="clear" />
-	<p class="submit"><input type="submit" name="wp-submit" id="wp-submit" class="button-primary" value="<?php esc_attr_e('Reset Password'); ?>" tabindex="100" /></p>
+	<p class="submit"><input type="submit" name="wp-submit" id="wp-submit" class="button button-primary button-large" value="<?php esc_attr_e('Reset Password'); ?>" /></p>
 </form>
 
 <p id="nav">
@@ -509,7 +518,7 @@
 case 'register' :
 	if ( is_multisite() ) {
 		// Multisite uses wp-signup.php
-		wp_redirect( apply_filters( 'wp_signup_location', site_url('wp-signup.php') ) );
+		wp_redirect( apply_filters( 'wp_signup_location', network_site_url('wp-signup.php') ) );
 		exit;
 	}
 
@@ -538,17 +547,17 @@
 <form name="registerform" id="registerform" action="<?php echo esc_url( site_url('wp-login.php?action=register', 'login_post') ); ?>" method="post">
 	<p>
 		<label for="user_login"><?php _e('Username') ?><br />
-		<input type="text" name="user_login" id="user_login" class="input" value="<?php echo esc_attr(stripslashes($user_login)); ?>" size="20" tabindex="10" /></label>
+		<input type="text" name="user_login" id="user_login" class="input" value="<?php echo esc_attr(stripslashes($user_login)); ?>" size="20" /></label>
 	</p>
 	<p>
 		<label for="user_email"><?php _e('E-mail') ?><br />
-		<input type="email" name="user_email" id="user_email" class="input" value="<?php echo esc_attr(stripslashes($user_email)); ?>" size="25" tabindex="20" /></label>
+		<input type="text" name="user_email" id="user_email" class="input" value="<?php echo esc_attr(stripslashes($user_email)); ?>" size="25" /></label>
 	</p>
 <?php do_action('register_form'); ?>
 	<p id="reg_passmail"><?php _e('A password will be e-mailed to you.') ?></p>
 	<br class="clear" />
 	<input type="hidden" name="redirect_to" value="<?php echo esc_attr( $redirect_to ); ?>" />
-	<p class="submit"><input type="submit" name="wp-submit" id="wp-submit" class="button-primary" value="<?php esc_attr_e('Register'); ?>" tabindex="100" /></p>
+	<p class="submit"><input type="submit" name="wp-submit" id="wp-submit" class="button button-primary button-large" value="<?php esc_attr_e('Register'); ?>" /></p>
 </form>
 
 <p id="nav">
@@ -671,16 +680,16 @@
 <form name="loginform" id="loginform" action="<?php echo esc_url( site_url( 'wp-login.php', 'login_post' ) ); ?>" method="post">
 	<p>
 		<label for="user_login"><?php _e('Username') ?><br />
-		<input type="text" name="log" id="user_login" class="input" value="<?php echo esc_attr($user_login); ?>" size="20" tabindex="10" /></label>
+		<input type="text" name="log" id="user_login" class="input" value="<?php echo esc_attr($user_login); ?>" size="20" /></label>
 	</p>
 	<p>
 		<label for="user_pass"><?php _e('Password') ?><br />
-		<input type="password" name="pwd" id="user_pass" class="input" value="" size="20" tabindex="20" /></label>
+		<input type="password" name="pwd" id="user_pass" class="input" value="" size="20" /></label>
 	</p>
 <?php do_action('login_form'); ?>
-	<p class="forgetmenot"><label for="rememberme"><input name="rememberme" type="checkbox" id="rememberme" value="forever" tabindex="90"<?php checked( $rememberme ); ?> /> <?php esc_attr_e('Remember Me'); ?></label></p>
+	<p class="forgetmenot"><label for="rememberme"><input name="rememberme" type="checkbox" id="rememberme" value="forever" <?php checked( $rememberme ); ?> /> <?php esc_attr_e('Remember Me'); ?></label></p>
 	<p class="submit">
-		<input type="submit" name="wp-submit" id="wp-submit" class="button-primary" value="<?php esc_attr_e('Log In'); ?>" tabindex="100" />
+		<input type="submit" name="wp-submit" id="wp-submit" class="button button-primary button-large" value="<?php esc_attr_e('Log In'); ?>" />
 <?php	if ( $interim_login ) { ?>
 		<input type="hidden" name="interim-login" value="1" />
 <?php	} else { ?>
--- a/web/wp-mail.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-mail.php	Wed Dec 19 17:46:52 2012 -0800
@@ -30,7 +30,7 @@
 
 set_transient('mailserver_last_checked', true, WP_MAIL_INTERVAL);
 
-$time_difference = get_option('gmt_offset') * 3600;
+$time_difference = get_option('gmt_offset') * HOUR_IN_SECONDS;
 
 $phone_delim = '::';
 
--- a/web/wp-settings.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-settings.php	Wed Dec 19 17:46:52 2012 -0800
@@ -32,16 +32,12 @@
 @ini_set( 'magic_quotes_runtime', 0 );
 @ini_set( 'magic_quotes_sybase',  0 );
 
-// Set default timezone in PHP 5.
-if ( function_exists( 'date_default_timezone_set' ) )
-	date_default_timezone_set( 'UTC' );
+// WordPress calculates offsets from UTC.
+date_default_timezone_set( 'UTC' );
 
 // Turn register_globals off.
 wp_unregister_GLOBALS();
 
-// Ensure these global variables do not exist so they do not interfere with WordPress.
-unset( $wp_filter, $cache_lastcommentmodified );
-
 // Standardize $_SERVER variables across setups.
 wp_fix_server_vars();
 
@@ -138,6 +134,7 @@
 require( ABSPATH . WPINC . '/update.php' );
 require( ABSPATH . WPINC . '/canonical.php' );
 require( ABSPATH . WPINC . '/shortcodes.php' );
+require( ABSPATH . WPINC . '/class-wp-embed.php' );
 require( ABSPATH . WPINC . '/media.php' );
 require( ABSPATH . WPINC . '/http.php' );
 require( ABSPATH . WPINC . '/class-http.php' );
@@ -232,7 +229,7 @@
  * @global object $wp_query
  * @since 1.5.0
  */
-$wp_query =& $wp_the_query;
+$wp_query = $wp_the_query;
 
 /**
  * Holds the WordPress Rewrite object for creating pretty URLs
@@ -255,6 +252,13 @@
  */
 $GLOBALS['wp_widget_factory'] = new WP_Widget_Factory();
 
+/**
+ * WordPress User Roles
+ * @global object $wp_roles
+ * @since 2.0.0
+ */
+$GLOBALS['wp_roles'] = new WP_Roles();
+
 do_action( 'setup_theme' );
 
 // Define the template related constants.
--- a/web/wp-signup.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/wp-signup.php	Wed Dec 19 17:46:52 2012 -0800
@@ -23,7 +23,7 @@
 }
 
 if ( !is_main_site() ) {
-	wp_redirect( network_home_url( 'wp-signup.php' ) );
+	wp_redirect( network_site_url( 'wp-signup.php' ) );
 	die();
 }
 
@@ -390,11 +390,7 @@
 if ( $active_signup == 'none' ) {
 	_e( 'Registration has been disabled.' );
 } elseif ( $active_signup == 'blog' && !is_user_logged_in() ) {
-	if ( is_ssl() )
-		$proto = 'https://';
-	else
-		$proto = 'http://';
-	$login_url = site_url( 'wp-login.php?redirect_to=' . urlencode($proto . $_SERVER['HTTP_HOST'] . '/wp-signup.php' ));
+	$login_url = site_url( 'wp-login.php?redirect_to=' . urlencode( network_site_url( 'wp-signup.php' ) ) );
 	echo sprintf( __( 'You must first <a href="%s">log in</a>, and then you can create a new site.' ), $login_url );
 } else {
 	$stage = isset( $_POST['stage'] ) ?  $_POST['stage'] : 'default';
--- a/web/xmlrpc.php	Wed Dec 19 12:35:13 2012 -0800
+++ b/web/xmlrpc.php	Wed Dec 19 17:46:52 2012 -0800
@@ -42,7 +42,7 @@
       <api name="Movable Type" blogID="1" preferred="false" apiLink="<?php echo site_url('xmlrpc.php', 'rpc') ?>" />
       <api name="MetaWeblog" blogID="1" preferred="false" apiLink="<?php echo site_url('xmlrpc.php', 'rpc') ?>" />
       <api name="Blogger" blogID="1" preferred="false" apiLink="<?php echo site_url('xmlrpc.php', 'rpc') ?>" />
-      <api name="Atom" blogID="" preferred="false" apiLink="<?php echo site_url('wp-app.php/service', 'rpc') ?>" />
+      <?php do_action( 'xmlrpc_rsd_apis' ); ?>
     </apis>
   </service>
 </rsd>